From 175b6037d90bbfaabba8b504c71f2b004338b220 Mon Sep 17 00:00:00 2001 From: Jess Breckenridge Date: Tue, 2 May 2017 14:41:15 -0600 Subject: [PATCH] - Modifications so that development is easier. - Striving for clone && boostrap and test simplicity. - Modifications strive to use go 1.7 in repo directory. - Moved libs to src directory where go expects them. --- script/env | 9 + test.sh | 2 +- vendor/github.com/BurntSushi/toml/.gitignore | 5 - vendor/github.com/BurntSushi/toml/.travis.yml | 12 - vendor/github.com/BurntSushi/toml/COMPATIBLE | 3 - vendor/github.com/BurntSushi/toml/COPYING | 14 - vendor/github.com/BurntSushi/toml/Makefile | 19 - vendor/github.com/BurntSushi/toml/README.md | 220 - .../toml/cmd/toml-test-decoder/COPYING | 14 - .../toml/cmd/toml-test-decoder/README.md | 14 - .../toml/cmd/toml-test-decoder/main.go | 90 - .../toml/cmd/toml-test-encoder/COPYING | 14 - .../toml/cmd/toml-test-encoder/README.md | 14 - .../toml/cmd/toml-test-encoder/main.go | 131 - .../BurntSushi/toml/cmd/tomlv/COPYING | 14 - .../BurntSushi/toml/cmd/tomlv/README.md | 22 - .../BurntSushi/toml/cmd/tomlv/main.go | 61 - vendor/github.com/BurntSushi/toml/decode.go | 472 - .../github.com/BurntSushi/toml/decode_meta.go | 99 - .../github.com/BurntSushi/toml/decode_test.go | 540 - vendor/github.com/BurntSushi/toml/doc.go | 27 - vendor/github.com/BurntSushi/toml/encode.go | 515 - .../github.com/BurntSushi/toml/encode_test.go | 506 - .../BurntSushi/toml/encoding_types.go | 19 - .../BurntSushi/toml/encoding_types_1.1.go | 18 - vendor/github.com/BurntSushi/toml/lex.go | 734 - vendor/github.com/BurntSushi/toml/parse.go | 417 - vendor/github.com/BurntSushi/toml/session.vim | 1 - .../github.com/BurntSushi/toml/type_check.go | 85 - .../github.com/BurntSushi/toml/type_fields.go | 241 - .../github.com/go-sql-driver/mysql/.gitignore | 8 - .../go-sql-driver/mysql/.travis.yml | 10 - vendor/github.com/go-sql-driver/mysql/AUTHORS | 46 - .../go-sql-driver/mysql/CHANGELOG.md | 92 - .../go-sql-driver/mysql/CONTRIBUTING.md | 40 - vendor/github.com/go-sql-driver/mysql/LICENSE | 373 - .../github.com/go-sql-driver/mysql/README.md | 386 - .../go-sql-driver/mysql/appengine.go | 19 - .../github.com/go-sql-driver/mysql/buffer.go | 136 - .../go-sql-driver/mysql/collations.go | 250 - .../go-sql-driver/mysql/connection.go | 403 - .../github.com/go-sql-driver/mysql/const.go | 162 - .../github.com/go-sql-driver/mysql/driver.go | 149 - .../github.com/go-sql-driver/mysql/errors.go | 131 - .../github.com/go-sql-driver/mysql/infile.go | 182 - .../github.com/go-sql-driver/mysql/packets.go | 1182 - .../github.com/go-sql-driver/mysql/result.go | 22 - vendor/github.com/go-sql-driver/mysql/rows.go | 106 - .../go-sql-driver/mysql/statement.go | 150 - .../go-sql-driver/mysql/transaction.go | 31 - .../github.com/go-sql-driver/mysql/utils.go | 973 - vendor/github.com/jmoiron/sqlx/.gitignore | 24 - vendor/github.com/jmoiron/sqlx/LICENSE | 23 - vendor/github.com/jmoiron/sqlx/README.md | 258 - vendor/github.com/jmoiron/sqlx/bind.go | 84 - vendor/github.com/jmoiron/sqlx/doc.go | 12 - vendor/github.com/jmoiron/sqlx/named.go | 321 - vendor/github.com/jmoiron/sqlx/named_test.go | 227 - .../jmoiron/sqlx/reflectx/README.md | 17 - .../jmoiron/sqlx/reflectx/reflect.go | 250 - .../jmoiron/sqlx/reflectx/reflect_test.go | 216 - vendor/github.com/jmoiron/sqlx/sqlx.go | 986 - vendor/github.com/jmoiron/sqlx/sqlx_test.go | 1311 - .../github.com/jmoiron/sqlx/types/README.md | 5 - vendor/github.com/jmoiron/sqlx/types/types.go | 95 - .../jmoiron/sqlx/types/types_test.go | 42 - vendor/github.com/juju/errors/LICENSE | 191 - vendor/github.com/juju/errors/Makefile | 11 - vendor/github.com/juju/errors/README.md | 536 - vendor/github.com/juju/errors/doc.go | 81 - vendor/github.com/juju/errors/error.go | 122 - vendor/github.com/juju/errors/error_test.go | 161 - vendor/github.com/juju/errors/errortypes.go | 284 - .../github.com/juju/errors/errortypes_test.go | 173 - vendor/github.com/juju/errors/example_test.go | 23 - vendor/github.com/juju/errors/export_test.go | 12 - vendor/github.com/juju/errors/functions.go | 330 - .../github.com/juju/errors/functions_test.go | 305 - vendor/github.com/juju/errors/package_test.go | 95 - vendor/github.com/juju/errors/path.go | 35 - vendor/github.com/juju/errors/path_test.go | 29 - vendor/github.com/ngaut/deadline/rw.go | 50 - vendor/github.com/ngaut/log/LICENSE | 165 - vendor/github.com/ngaut/log/README.md | 2 - vendor/github.com/ngaut/log/crash_unix.go | 18 - vendor/github.com/ngaut/log/crash_win.go | 37 - vendor/github.com/ngaut/log/log.go | 380 - vendor/github.com/ngaut/log/log_test.go | 197 - vendor/github.com/ngaut/pools/id_pool.go | 72 - vendor/github.com/ngaut/pools/id_pool_test.go | 118 - vendor/github.com/ngaut/pools/numbered.go | 149 - .../github.com/ngaut/pools/numbered_test.go | 84 - .../github.com/ngaut/pools/resource_pool.go | 228 - .../ngaut/pools/resource_pool_test.go | 487 - vendor/github.com/ngaut/pools/roundrobin.go | 214 - .../github.com/ngaut/pools/roundrobin_test.go | 126 - vendor/github.com/ngaut/pools/vitess_license | 28 - vendor/github.com/ngaut/sync2/atomic.go | 114 - vendor/github.com/ngaut/sync2/atomic_test.go | 32 - vendor/github.com/ngaut/sync2/cond.go | 56 - vendor/github.com/ngaut/sync2/cond_test.go | 276 - vendor/github.com/ngaut/sync2/semaphore.go | 55 - .../github.com/ngaut/sync2/semaphore_test.go | 41 - .../github.com/ngaut/sync2/service_manager.go | 121 - .../ngaut/sync2/service_manager_test.go | 176 - vendor/github.com/ngaut/sync2/vitess_license | 28 - vendor/github.com/ngaut/systimemon/LICENSE | 201 - vendor/github.com/ngaut/systimemon/README.md | 2 - .../ngaut/systimemon/systime_mon.go | 24 - .../ngaut/systimemon/systime_mon_test.go | 28 - vendor/github.com/outbrain/golib/log/log.go | 258 - .../outbrain/golib/sqlutils/sqlutils.go | 333 - .../github.com/outbrain/golib/tests/spec.go | 76 - vendor/github.com/satori/go.uuid/.travis.yml | 8 - vendor/github.com/satori/go.uuid/LICENSE | 20 - vendor/github.com/satori/go.uuid/README.md | 66 - .../satori/go.uuid/benchmarks_test.go | 114 - vendor/github.com/satori/go.uuid/uuid.go | 361 - vendor/github.com/satori/go.uuid/uuid_test.go | 399 - .../github.com/siddontang/go-mysql/.gitignore | 3 - .../siddontang/go-mysql/.travis.yml | 32 - vendor/github.com/siddontang/go-mysql/LICENSE | 20 - .../github.com/siddontang/go-mysql/Makefile | 33 - .../github.com/siddontang/go-mysql/README.md | 229 - .../vendor/github.com/BurntSushi/toml/COPYING | 14 - .../github.com/BurntSushi/toml/decode.go | 492 - .../github.com/BurntSushi/toml/decode_meta.go | 122 - .../vendor/github.com/BurntSushi/toml/doc.go | 27 - .../github.com/BurntSushi/toml/encode.go | 551 - .../BurntSushi/toml/encoding_types.go | 19 - .../BurntSushi/toml/encoding_types_1.1.go | 18 - .../vendor/github.com/BurntSushi/toml/lex.go | 874 - .../github.com/BurntSushi/toml/parse.go | 498 - .../github.com/BurntSushi/toml/type_check.go | 91 - .../github.com/BurntSushi/toml/type_fields.go | 241 - .../github.com/go-sql-driver/mysql/LICENSE | 373 - .../go-sql-driver/mysql/appengine.go | 19 - .../github.com/go-sql-driver/mysql/buffer.go | 147 - .../go-sql-driver/mysql/collations.go | 250 - .../go-sql-driver/mysql/connection.go | 372 - .../github.com/go-sql-driver/mysql/const.go | 163 - .../github.com/go-sql-driver/mysql/driver.go | 167 - .../github.com/go-sql-driver/mysql/dsn.go | 513 - .../github.com/go-sql-driver/mysql/errors.go | 131 - .../github.com/go-sql-driver/mysql/infile.go | 181 - .../github.com/go-sql-driver/mysql/packets.go | 1243 - .../github.com/go-sql-driver/mysql/result.go | 22 - .../github.com/go-sql-driver/mysql/rows.go | 112 - .../go-sql-driver/mysql/statement.go | 150 - .../go-sql-driver/mysql/transaction.go | 31 - .../github.com/go-sql-driver/mysql/utils.go | 740 - .../vendor/github.com/jmoiron/sqlx/LICENSE | 23 - .../vendor/github.com/jmoiron/sqlx/bind.go | 186 - .../vendor/github.com/jmoiron/sqlx/doc.go | 12 - .../vendor/github.com/jmoiron/sqlx/named.go | 336 - .../jmoiron/sqlx/reflectx/reflect.go | 371 - .../vendor/github.com/jmoiron/sqlx/sqlx.go | 992 - .../vendor/github.com/juju/errors/LICENSE | 191 - .../vendor/github.com/juju/errors/doc.go | 81 - .../vendor/github.com/juju/errors/error.go | 145 - .../github.com/juju/errors/errortypes.go | 284 - .../github.com/juju/errors/functions.go | 330 - .../vendor/github.com/juju/errors/path.go | 38 - .../vendor/github.com/ngaut/log/LICENSE | 165 - .../vendor/github.com/ngaut/log/crash_unix.go | 18 - .../vendor/github.com/ngaut/log/crash_win.go | 37 - .../vendor/github.com/ngaut/log/log.go | 380 - .../github.com/pingcap/check/benchmark.go | 187 - .../vendor/github.com/pingcap/check/check.go | 954 - .../github.com/pingcap/check/checkers.go | 458 - .../github.com/pingcap/check/checkers2.go | 131 - .../github.com/pingcap/check/compare.go | 161 - .../github.com/pingcap/check/helpers.go | 231 - .../github.com/pingcap/check/printer.go | 168 - .../vendor/github.com/pingcap/check/run.go | 175 - .../vendor/github.com/satori/go.uuid/LICENSE | 20 - .../vendor/github.com/satori/go.uuid/uuid.go | 488 - .../vendor/github.com/siddontang/go/LICENSE | 20 - .../github.com/siddontang/go/hack/hack.go | 27 - .../siddontang/go/ioutil2/ioutil.go | 39 - .../siddontang/go/ioutil2/sectionwriter.go | 69 - .../github.com/siddontang/go/sync2/atomic.go | 146 - .../siddontang/go/sync2/semaphore.go | 65 - .../_vendor/vendor/golang.org/x/net/LICENSE | 27 - .../_vendor/vendor/golang.org/x/net/PATENTS | 22 - .../golang.org/x/net/context/context.go | 447 - .../siddontang/go-mysql/canal/canal.go | 307 - .../siddontang/go-mysql/canal/canal_test.go | 94 - .../siddontang/go-mysql/canal/config.go | 79 - .../siddontang/go-mysql/canal/dump.go | 120 - .../siddontang/go-mysql/canal/handler.go | 41 - .../siddontang/go-mysql/canal/master.go | 89 - .../siddontang/go-mysql/canal/rows.go | 59 - .../siddontang/go-mysql/canal/sync.go | 137 - .../siddontang/go-mysql/client/auth.go | 174 - .../siddontang/go-mysql/client/client_test.go | 352 - .../siddontang/go-mysql/client/conn.go | 254 - .../siddontang/go-mysql/client/req.go | 72 - .../siddontang/go-mysql/client/resp.go | 219 - .../siddontang/go-mysql/client/stmt.go | 216 - .../go-mysql/cmd/go-binlogparser/main.go | 28 - .../siddontang/go-mysql/cmd/go-canal/main.go | 101 - .../go-mysql/cmd/go-mysqlbinlog/main.go | 76 - .../go-mysql/cmd/go-mysqldump/main.go | 66 - .../siddontang/go-mysql/docker/Makefile | 53 - .../siddontang/go-mysql/driver/dirver_test.go | 73 - .../siddontang/go-mysql/driver/driver.go | 230 - .../siddontang/go-mysql/dump/dump.go | 161 - .../siddontang/go-mysql/dump/dump_test.go | 198 - .../siddontang/go-mysql/dump/parser.go | 188 - .../siddontang/go-mysql/failover/const.go | 11 - .../siddontang/go-mysql/failover/doc.go | 8 - .../siddontang/go-mysql/failover/failover.go | 68 - .../go-mysql/failover/failover_test.go | 176 - .../siddontang/go-mysql/failover/handler.go | 22 - .../go-mysql/failover/mariadb_gtid_handler.go | 142 - .../go-mysql/failover/mysql_gtid_handler.go | 141 - .../siddontang/go-mysql/failover/server.go | 174 - .../github.com/siddontang/go-mysql/glide.lock | 30 - .../github.com/siddontang/go-mysql/glide.yaml | 26 - .../siddontang/go-mysql/mysql/const.go | 164 - .../siddontang/go-mysql/mysql/errcode.go | 870 - .../siddontang/go-mysql/mysql/errname.go | 868 - .../siddontang/go-mysql/mysql/error.go | 59 - .../siddontang/go-mysql/mysql/field.go | 157 - .../siddontang/go-mysql/mysql/gtid.go | 25 - .../siddontang/go-mysql/mysql/mariadb_gtid.go | 80 - .../siddontang/go-mysql/mysql/mysql_gtid.go | 409 - .../siddontang/go-mysql/mysql/mysql_test.go | 153 - .../siddontang/go-mysql/mysql/parse_binary.go | 53 - .../siddontang/go-mysql/mysql/position.go | 33 - .../siddontang/go-mysql/mysql/result.go | 14 - .../siddontang/go-mysql/mysql/resultset.go | 438 - .../go-mysql/mysql/resultset_helper.go | 205 - .../siddontang/go-mysql/mysql/state.go | 233 - .../siddontang/go-mysql/mysql/util.go | 354 - .../siddontang/go-mysql/packet/conn.go | 163 - .../siddontang/go-mysql/replication/backup.go | 97 - .../go-mysql/replication/binlogstreamer.go | 61 - .../go-mysql/replication/binlogsyncer.go | 590 - .../siddontang/go-mysql/replication/const.go | 185 - .../siddontang/go-mysql/replication/doc.go | 8 - .../siddontang/go-mysql/replication/event.go | 458 - .../go-mysql/replication/generic_event.go | 171 - .../go-mysql/replication/json_binary.go | 479 - .../siddontang/go-mysql/replication/parser.go | 268 - .../go-mysql/replication/parser_test.go | 42 - .../go-mysql/replication/replication_test.go | 396 - .../go-mysql/replication/row_event.go | 816 - .../go-mysql/replication/row_event_test.go | 431 - .../siddontang/go-mysql/schema/schema.go | 215 - .../siddontang/go-mysql/schema/schema_test.go | 84 - .../siddontang/go-mysql/server/auth.go | 119 - .../siddontang/go-mysql/server/command.go | 151 - .../siddontang/go-mysql/server/conn.go | 113 - .../siddontang/go-mysql/server/resp.go | 142 - .../siddontang/go-mysql/server/server_test.go | 230 - .../siddontang/go-mysql/server/stmt.go | 363 - .../siddontang/go-mysql/vitess_license | 28 - vendor/github.com/siddontang/go/hack/hack.go | 27 - .../siddontang/go/hack/hack_test.go | 36 - .../golang.org/x/crypto/ssh/agent/client.go | 659 - .../x/crypto/ssh/agent/client_test.go | 343 - .../x/crypto/ssh/agent/example_test.go | 40 - .../golang.org/x/crypto/ssh/agent/forward.go | 103 - .../golang.org/x/crypto/ssh/agent/keyring.go | 215 - .../x/crypto/ssh/agent/keyring_test.go | 76 - .../golang.org/x/crypto/ssh/agent/server.go | 451 - .../x/crypto/ssh/agent/server_test.go | 207 - .../x/crypto/ssh/agent/testdata_test.go | 64 - .../golang.org/x/crypto/ssh/benchmark_test.go | 122 - vendor/golang.org/x/crypto/ssh/buffer.go | 98 - vendor/golang.org/x/crypto/ssh/buffer_test.go | 87 - vendor/golang.org/x/crypto/ssh/certs.go | 503 - vendor/golang.org/x/crypto/ssh/certs_test.go | 216 - vendor/golang.org/x/crypto/ssh/channel.go | 633 - vendor/golang.org/x/crypto/ssh/cipher.go | 579 - vendor/golang.org/x/crypto/ssh/cipher_test.go | 127 - vendor/golang.org/x/crypto/ssh/client.go | 213 - vendor/golang.org/x/crypto/ssh/client_auth.go | 473 - .../x/crypto/ssh/client_auth_test.go | 472 - vendor/golang.org/x/crypto/ssh/client_test.go | 39 - vendor/golang.org/x/crypto/ssh/common.go | 356 - vendor/golang.org/x/crypto/ssh/connection.go | 143 - vendor/golang.org/x/crypto/ssh/doc.go | 18 - .../golang.org/x/crypto/ssh/example_test.go | 262 - vendor/golang.org/x/crypto/ssh/handshake.go | 460 - .../golang.org/x/crypto/ssh/handshake_test.go | 486 - vendor/golang.org/x/crypto/ssh/kex.go | 540 - vendor/golang.org/x/crypto/ssh/kex_test.go | 50 - vendor/golang.org/x/crypto/ssh/keys.go | 905 - vendor/golang.org/x/crypto/ssh/keys_test.go | 474 - vendor/golang.org/x/crypto/ssh/mac.go | 57 - .../golang.org/x/crypto/ssh/mempipe_test.go | 110 - vendor/golang.org/x/crypto/ssh/messages.go | 758 - .../golang.org/x/crypto/ssh/messages_test.go | 288 - vendor/golang.org/x/crypto/ssh/mux.go | 330 - vendor/golang.org/x/crypto/ssh/mux_test.go | 502 - vendor/golang.org/x/crypto/ssh/server.go | 488 - vendor/golang.org/x/crypto/ssh/session.go | 627 - .../golang.org/x/crypto/ssh/session_test.go | 770 - vendor/golang.org/x/crypto/ssh/tcpip.go | 407 - vendor/golang.org/x/crypto/ssh/tcpip_test.go | 20 - .../x/crypto/ssh/terminal/terminal.go | 924 - .../x/crypto/ssh/terminal/terminal_test.go | 306 - .../golang.org/x/crypto/ssh/terminal/util.go | 133 - .../x/crypto/ssh/terminal/util_bsd.go | 12 - .../x/crypto/ssh/terminal/util_linux.go | 11 - .../x/crypto/ssh/terminal/util_plan9.go | 58 - .../x/crypto/ssh/terminal/util_solaris.go | 73 - .../x/crypto/ssh/terminal/util_windows.go | 174 - .../x/crypto/ssh/test/agent_unix_test.go | 59 - .../golang.org/x/crypto/ssh/test/cert_test.go | 47 - vendor/golang.org/x/crypto/ssh/test/doc.go | 7 - .../x/crypto/ssh/test/forward_unix_test.go | 160 - .../x/crypto/ssh/test/session_test.go | 365 - .../x/crypto/ssh/test/tcpip_test.go | 46 - .../x/crypto/ssh/test/test_unix_test.go | 268 - .../x/crypto/ssh/test/testdata_test.go | 64 - .../golang.org/x/crypto/ssh/testdata/doc.go | 8 - .../golang.org/x/crypto/ssh/testdata/keys.go | 120 - .../golang.org/x/crypto/ssh/testdata_test.go | 63 - vendor/golang.org/x/crypto/ssh/transport.go | 333 - .../golang.org/x/crypto/ssh/transport_test.go | 109 - vendor/golang.org/x/net/context/context.go | 156 - .../golang.org/x/net/context/context_test.go | 583 - .../x/net/context/ctxhttp/ctxhttp.go | 74 - .../x/net/context/ctxhttp/ctxhttp_17_test.go | 28 - .../x/net/context/ctxhttp/ctxhttp_pre17.go | 147 - .../net/context/ctxhttp/ctxhttp_pre17_test.go | 79 - .../x/net/context/ctxhttp/ctxhttp_test.go | 105 - vendor/golang.org/x/net/context/go17.go | 72 - vendor/golang.org/x/net/context/pre_go17.go | 300 - .../x/net/context/withtimeout_test.go | 26 - .../x/text/encoding/charmap/charmap.go | 209 - .../x/text/encoding/charmap/charmap_test.go | 45 - .../x/text/encoding/charmap/maketables.go | 524 - .../x/text/encoding/charmap/tables.go | 6706 --- vendor/golang.org/x/text/encoding/encoding.go | 335 - .../x/text/encoding/encoding_test.go | 1128 - .../x/text/encoding/example_test.go | 42 - .../x/text/encoding/htmlindex/gen.go | 167 - .../x/text/encoding/htmlindex/htmlindex.go | 86 - .../text/encoding/htmlindex/htmlindex_test.go | 144 - .../x/text/encoding/htmlindex/map.go | 105 - .../x/text/encoding/htmlindex/tables.go | 352 - .../x/text/encoding/ianaindex/example_test.go | 26 - .../x/text/encoding/ianaindex/ianaindex.go | 64 - .../text/encoding/internal/identifier/gen.go | 137 - .../internal/identifier/identifier.go | 81 - .../text/encoding/internal/identifier/mib.go | 1621 - .../x/text/encoding/internal/internal.go | 75 - .../x/text/encoding/japanese/all.go | 12 - .../x/text/encoding/japanese/all_test.go | 80 - .../x/text/encoding/japanese/eucjp.go | 211 - .../x/text/encoding/japanese/iso2022jp.go | 296 - .../x/text/encoding/japanese/maketables.go | 161 - .../x/text/encoding/japanese/shiftjis.go | 189 - .../x/text/encoding/japanese/tables.go | 26971 ---------- .../x/text/encoding/korean/all_test.go | 47 - .../x/text/encoding/korean/euckr.go | 178 - .../x/text/encoding/korean/maketables.go | 143 - .../x/text/encoding/korean/tables.go | 34152 ------------ .../x/text/encoding/simplifiedchinese/all.go | 12 - .../encoding/simplifiedchinese/all_test.go | 50 - .../x/text/encoding/simplifiedchinese/gbk.go | 281 - .../encoding/simplifiedchinese/hzgb2312.go | 240 - .../encoding/simplifiedchinese/maketables.go | 161 - .../text/encoding/simplifiedchinese/tables.go | 43999 ---------------- .../encoding/testdata/candide-gb18030.txt | 510 - .../encoding/testdata/candide-utf-16le.txt | Bin 51932 -> 0 bytes .../encoding/testdata/candide-utf-32be.txt | Bin 103864 -> 0 bytes .../text/encoding/testdata/candide-utf-8.txt | 510 - .../testdata/candide-windows-1252.txt | 510 - .../encoding/testdata/rashomon-euc-jp.txt | 178 - .../testdata/rashomon-iso-2022-jp.txt | 178 - .../encoding/testdata/rashomon-shift-jis.txt | 178 - .../text/encoding/testdata/rashomon-utf-8.txt | 178 - ...nzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt | 107 - .../sunzi-bingfa-gb-levels-1-and-2-utf-8.txt | 107 - .../testdata/sunzi-bingfa-simplified-gbk.txt | 107 - .../sunzi-bingfa-simplified-utf-8.txt | 107 - .../sunzi-bingfa-traditional-big5.txt | 106 - .../sunzi-bingfa-traditional-utf-8.txt | 106 - .../testdata/unsu-joh-eun-nal-euc-kr.txt | 175 - .../testdata/unsu-joh-eun-nal-utf-8.txt | 175 - .../encoding/traditionalchinese/all_test.go | 45 - .../text/encoding/traditionalchinese/big5.go | 198 - .../encoding/traditionalchinese/maketables.go | 140 - .../encoding/traditionalchinese/tables.go | 37142 ------------- .../x/text/encoding/unicode/override.go | 82 - .../x/text/encoding/unicode/unicode.go | 434 - .../x/text/encoding/unicode/unicode_test.go | 178 - .../x/text/encoding/unicode/utf32/utf32.go | 296 - .../text/encoding/unicode/utf32/utf32_test.go | 210 - .../x/text/transform/examples_test.go | 37 - .../golang.org/x/text/transform/transform.go | 661 - .../x/text/transform/transform_test.go | 1317 - vendor/gopkg.in/gcfg.v1/LICENSE | 28 - vendor/gopkg.in/gcfg.v1/README | 4 - vendor/gopkg.in/gcfg.v1/doc.go | 118 - vendor/gopkg.in/gcfg.v1/example_test.go | 132 - vendor/gopkg.in/gcfg.v1/go1_0.go | 7 - vendor/gopkg.in/gcfg.v1/go1_2.go | 9 - vendor/gopkg.in/gcfg.v1/issues_test.go | 63 - vendor/gopkg.in/gcfg.v1/read.go | 188 - vendor/gopkg.in/gcfg.v1/read_test.go | 338 - vendor/gopkg.in/gcfg.v1/scanner/errors.go | 121 - .../gopkg.in/gcfg.v1/scanner/example_test.go | 46 - vendor/gopkg.in/gcfg.v1/scanner/scanner.go | 342 - .../gopkg.in/gcfg.v1/scanner/scanner_test.go | 417 - vendor/gopkg.in/gcfg.v1/set.go | 301 - .../gopkg.in/gcfg.v1/testdata/gcfg_test.gcfg | 3 - .../gcfg.v1/testdata/gcfg_unicode_test.gcfg | 3 - vendor/gopkg.in/gcfg.v1/token/position.go | 435 - .../gopkg.in/gcfg.v1/token/position_test.go | 181 - vendor/gopkg.in/gcfg.v1/token/serialize.go | 56 - .../gopkg.in/gcfg.v1/token/serialize_test.go | 111 - vendor/gopkg.in/gcfg.v1/token/token.go | 83 - vendor/gopkg.in/gcfg.v1/types/bool.go | 23 - vendor/gopkg.in/gcfg.v1/types/doc.go | 4 - vendor/gopkg.in/gcfg.v1/types/enum.go | 44 - vendor/gopkg.in/gcfg.v1/types/enum_test.go | 29 - vendor/gopkg.in/gcfg.v1/types/int.go | 86 - vendor/gopkg.in/gcfg.v1/types/int_test.go | 67 - vendor/gopkg.in/gcfg.v1/types/scan.go | 23 - vendor/gopkg.in/gcfg.v1/types/scan_test.go | 36 - 427 files changed, 10 insertions(+), 234832 deletions(-) create mode 100755 script/env delete mode 100644 vendor/github.com/BurntSushi/toml/.gitignore delete mode 100644 vendor/github.com/BurntSushi/toml/.travis.yml delete mode 100644 vendor/github.com/BurntSushi/toml/COMPATIBLE delete mode 100644 vendor/github.com/BurntSushi/toml/COPYING delete mode 100644 vendor/github.com/BurntSushi/toml/Makefile delete mode 100644 vendor/github.com/BurntSushi/toml/README.md delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/README.md delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/main.go delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/README.md delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/main.go delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/tomlv/COPYING delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/tomlv/README.md delete mode 100644 vendor/github.com/BurntSushi/toml/cmd/tomlv/main.go delete mode 100644 vendor/github.com/BurntSushi/toml/decode.go delete mode 100644 vendor/github.com/BurntSushi/toml/decode_meta.go delete mode 100644 vendor/github.com/BurntSushi/toml/decode_test.go delete mode 100644 vendor/github.com/BurntSushi/toml/doc.go delete mode 100644 vendor/github.com/BurntSushi/toml/encode.go delete mode 100644 vendor/github.com/BurntSushi/toml/encode_test.go delete mode 100644 vendor/github.com/BurntSushi/toml/encoding_types.go delete mode 100644 vendor/github.com/BurntSushi/toml/encoding_types_1.1.go delete mode 100644 vendor/github.com/BurntSushi/toml/lex.go delete mode 100644 vendor/github.com/BurntSushi/toml/parse.go delete mode 100644 vendor/github.com/BurntSushi/toml/session.vim delete mode 100644 vendor/github.com/BurntSushi/toml/type_check.go delete mode 100644 vendor/github.com/BurntSushi/toml/type_fields.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/.gitignore delete mode 100644 vendor/github.com/go-sql-driver/mysql/.travis.yml delete mode 100644 vendor/github.com/go-sql-driver/mysql/AUTHORS delete mode 100644 vendor/github.com/go-sql-driver/mysql/CHANGELOG.md delete mode 100644 vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md delete mode 100644 vendor/github.com/go-sql-driver/mysql/LICENSE delete mode 100644 vendor/github.com/go-sql-driver/mysql/README.md delete mode 100644 vendor/github.com/go-sql-driver/mysql/appengine.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/buffer.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/collations.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/connection.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/const.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/driver.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/errors.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/infile.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/packets.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/result.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/rows.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/statement.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/transaction.go delete mode 100644 vendor/github.com/go-sql-driver/mysql/utils.go delete mode 100644 vendor/github.com/jmoiron/sqlx/.gitignore delete mode 100644 vendor/github.com/jmoiron/sqlx/LICENSE delete mode 100644 vendor/github.com/jmoiron/sqlx/README.md delete mode 100644 vendor/github.com/jmoiron/sqlx/bind.go delete mode 100644 vendor/github.com/jmoiron/sqlx/doc.go delete mode 100644 vendor/github.com/jmoiron/sqlx/named.go delete mode 100644 vendor/github.com/jmoiron/sqlx/named_test.go delete mode 100644 vendor/github.com/jmoiron/sqlx/reflectx/README.md delete mode 100644 vendor/github.com/jmoiron/sqlx/reflectx/reflect.go delete mode 100644 vendor/github.com/jmoiron/sqlx/reflectx/reflect_test.go delete mode 100644 vendor/github.com/jmoiron/sqlx/sqlx.go delete mode 100644 vendor/github.com/jmoiron/sqlx/sqlx_test.go delete mode 100644 vendor/github.com/jmoiron/sqlx/types/README.md delete mode 100644 vendor/github.com/jmoiron/sqlx/types/types.go delete mode 100644 vendor/github.com/jmoiron/sqlx/types/types_test.go delete mode 100644 vendor/github.com/juju/errors/LICENSE delete mode 100644 vendor/github.com/juju/errors/Makefile delete mode 100644 vendor/github.com/juju/errors/README.md delete mode 100644 vendor/github.com/juju/errors/doc.go delete mode 100644 vendor/github.com/juju/errors/error.go delete mode 100644 vendor/github.com/juju/errors/error_test.go delete mode 100644 vendor/github.com/juju/errors/errortypes.go delete mode 100644 vendor/github.com/juju/errors/errortypes_test.go delete mode 100644 vendor/github.com/juju/errors/example_test.go delete mode 100644 vendor/github.com/juju/errors/export_test.go delete mode 100644 vendor/github.com/juju/errors/functions.go delete mode 100644 vendor/github.com/juju/errors/functions_test.go delete mode 100644 vendor/github.com/juju/errors/package_test.go delete mode 100644 vendor/github.com/juju/errors/path.go delete mode 100644 vendor/github.com/juju/errors/path_test.go delete mode 100644 vendor/github.com/ngaut/deadline/rw.go delete mode 100644 vendor/github.com/ngaut/log/LICENSE delete mode 100644 vendor/github.com/ngaut/log/README.md delete mode 100644 vendor/github.com/ngaut/log/crash_unix.go delete mode 100644 vendor/github.com/ngaut/log/crash_win.go delete mode 100644 vendor/github.com/ngaut/log/log.go delete mode 100644 vendor/github.com/ngaut/log/log_test.go delete mode 100644 vendor/github.com/ngaut/pools/id_pool.go delete mode 100644 vendor/github.com/ngaut/pools/id_pool_test.go delete mode 100644 vendor/github.com/ngaut/pools/numbered.go delete mode 100644 vendor/github.com/ngaut/pools/numbered_test.go delete mode 100644 vendor/github.com/ngaut/pools/resource_pool.go delete mode 100644 vendor/github.com/ngaut/pools/resource_pool_test.go delete mode 100644 vendor/github.com/ngaut/pools/roundrobin.go delete mode 100644 vendor/github.com/ngaut/pools/roundrobin_test.go delete mode 100644 vendor/github.com/ngaut/pools/vitess_license delete mode 100644 vendor/github.com/ngaut/sync2/atomic.go delete mode 100644 vendor/github.com/ngaut/sync2/atomic_test.go delete mode 100644 vendor/github.com/ngaut/sync2/cond.go delete mode 100644 vendor/github.com/ngaut/sync2/cond_test.go delete mode 100644 vendor/github.com/ngaut/sync2/semaphore.go delete mode 100644 vendor/github.com/ngaut/sync2/semaphore_test.go delete mode 100644 vendor/github.com/ngaut/sync2/service_manager.go delete mode 100644 vendor/github.com/ngaut/sync2/service_manager_test.go delete mode 100644 vendor/github.com/ngaut/sync2/vitess_license delete mode 100644 vendor/github.com/ngaut/systimemon/LICENSE delete mode 100644 vendor/github.com/ngaut/systimemon/README.md delete mode 100644 vendor/github.com/ngaut/systimemon/systime_mon.go delete mode 100644 vendor/github.com/ngaut/systimemon/systime_mon_test.go delete mode 100644 vendor/github.com/outbrain/golib/log/log.go delete mode 100644 vendor/github.com/outbrain/golib/sqlutils/sqlutils.go delete mode 100644 vendor/github.com/outbrain/golib/tests/spec.go delete mode 100644 vendor/github.com/satori/go.uuid/.travis.yml delete mode 100644 vendor/github.com/satori/go.uuid/LICENSE delete mode 100644 vendor/github.com/satori/go.uuid/README.md delete mode 100644 vendor/github.com/satori/go.uuid/benchmarks_test.go delete mode 100644 vendor/github.com/satori/go.uuid/uuid.go delete mode 100644 vendor/github.com/satori/go.uuid/uuid_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/.gitignore delete mode 100644 vendor/github.com/siddontang/go-mysql/.travis.yml delete mode 100644 vendor/github.com/siddontang/go-mysql/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/Makefile delete mode 100644 vendor/github.com/siddontang/go-mysql/README.md delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/COPYING delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode_meta.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/doc.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encode.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/lex.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/parse.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_check.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_fields.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/appengine.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/buffer.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/collations.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/connection.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/const.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/driver.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/dsn.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/errors.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/infile.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/packets.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/result.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/rows.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/statement.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/transaction.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/utils.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/bind.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/doc.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/named.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/sqlx.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/doc.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/error.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/errortypes.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/functions.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/path.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_unix.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_win.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/log.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/benchmark.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/check.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers2.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/compare.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/helpers.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/printer.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/run.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/uuid.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/hack/hack.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/ioutil.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/sectionwriter.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/atomic.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/semaphore.go delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/LICENSE delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/PATENTS delete mode 100644 vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/context/context.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/canal.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/canal_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/config.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/dump.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/handler.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/master.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/rows.go delete mode 100644 vendor/github.com/siddontang/go-mysql/canal/sync.go delete mode 100644 vendor/github.com/siddontang/go-mysql/client/auth.go delete mode 100644 vendor/github.com/siddontang/go-mysql/client/client_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/client/conn.go delete mode 100644 vendor/github.com/siddontang/go-mysql/client/req.go delete mode 100644 vendor/github.com/siddontang/go-mysql/client/resp.go delete mode 100644 vendor/github.com/siddontang/go-mysql/client/stmt.go delete mode 100644 vendor/github.com/siddontang/go-mysql/cmd/go-binlogparser/main.go delete mode 100644 vendor/github.com/siddontang/go-mysql/cmd/go-canal/main.go delete mode 100644 vendor/github.com/siddontang/go-mysql/cmd/go-mysqlbinlog/main.go delete mode 100644 vendor/github.com/siddontang/go-mysql/cmd/go-mysqldump/main.go delete mode 100644 vendor/github.com/siddontang/go-mysql/docker/Makefile delete mode 100644 vendor/github.com/siddontang/go-mysql/driver/dirver_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/driver/driver.go delete mode 100644 vendor/github.com/siddontang/go-mysql/dump/dump.go delete mode 100644 vendor/github.com/siddontang/go-mysql/dump/dump_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/dump/parser.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/const.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/doc.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/failover.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/failover_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/handler.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/mariadb_gtid_handler.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/mysql_gtid_handler.go delete mode 100644 vendor/github.com/siddontang/go-mysql/failover/server.go delete mode 100644 vendor/github.com/siddontang/go-mysql/glide.lock delete mode 100644 vendor/github.com/siddontang/go-mysql/glide.yaml delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/const.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/errcode.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/errname.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/error.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/field.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/gtid.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/mariadb_gtid.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/mysql_gtid.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/mysql_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/parse_binary.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/position.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/result.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/resultset.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/resultset_helper.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/state.go delete mode 100644 vendor/github.com/siddontang/go-mysql/mysql/util.go delete mode 100644 vendor/github.com/siddontang/go-mysql/packet/conn.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/backup.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/binlogstreamer.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/binlogsyncer.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/const.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/doc.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/event.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/generic_event.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/json_binary.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/parser.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/parser_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/replication_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/row_event.go delete mode 100644 vendor/github.com/siddontang/go-mysql/replication/row_event_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/schema/schema.go delete mode 100644 vendor/github.com/siddontang/go-mysql/schema/schema_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/server/auth.go delete mode 100644 vendor/github.com/siddontang/go-mysql/server/command.go delete mode 100644 vendor/github.com/siddontang/go-mysql/server/conn.go delete mode 100644 vendor/github.com/siddontang/go-mysql/server/resp.go delete mode 100644 vendor/github.com/siddontang/go-mysql/server/server_test.go delete mode 100644 vendor/github.com/siddontang/go-mysql/server/stmt.go delete mode 100644 vendor/github.com/siddontang/go-mysql/vitess_license delete mode 100644 vendor/github.com/siddontang/go/hack/hack.go delete mode 100644 vendor/github.com/siddontang/go/hack/hack_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/client.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/client_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/example_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/forward.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/keyring.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/keyring_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/server.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/server_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/agent/testdata_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/benchmark_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/buffer.go delete mode 100644 vendor/golang.org/x/crypto/ssh/buffer_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/certs.go delete mode 100644 vendor/golang.org/x/crypto/ssh/certs_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/channel.go delete mode 100644 vendor/golang.org/x/crypto/ssh/cipher.go delete mode 100644 vendor/golang.org/x/crypto/ssh/cipher_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/client.go delete mode 100644 vendor/golang.org/x/crypto/ssh/client_auth.go delete mode 100644 vendor/golang.org/x/crypto/ssh/client_auth_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/client_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/common.go delete mode 100644 vendor/golang.org/x/crypto/ssh/connection.go delete mode 100644 vendor/golang.org/x/crypto/ssh/doc.go delete mode 100644 vendor/golang.org/x/crypto/ssh/example_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/handshake.go delete mode 100644 vendor/golang.org/x/crypto/ssh/handshake_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/kex.go delete mode 100644 vendor/golang.org/x/crypto/ssh/kex_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/keys.go delete mode 100644 vendor/golang.org/x/crypto/ssh/keys_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/mac.go delete mode 100644 vendor/golang.org/x/crypto/ssh/mempipe_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/messages.go delete mode 100644 vendor/golang.org/x/crypto/ssh/messages_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/mux.go delete mode 100644 vendor/golang.org/x/crypto/ssh/mux_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/server.go delete mode 100644 vendor/golang.org/x/crypto/ssh/session.go delete mode 100644 vendor/golang.org/x/crypto/ssh/session_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/tcpip.go delete mode 100644 vendor/golang.org/x/crypto/ssh/tcpip_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/terminal.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_linux.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go delete mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_windows.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/cert_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/doc.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/session_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/tcpip_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/test_unix_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/test/testdata_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/testdata/doc.go delete mode 100644 vendor/golang.org/x/crypto/ssh/testdata/keys.go delete mode 100644 vendor/golang.org/x/crypto/ssh/testdata_test.go delete mode 100644 vendor/golang.org/x/crypto/ssh/transport.go delete mode 100644 vendor/golang.org/x/crypto/ssh/transport_test.go delete mode 100644 vendor/golang.org/x/net/context/context.go delete mode 100644 vendor/golang.org/x/net/context/context_test.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17_test.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp_test.go delete mode 100644 vendor/golang.org/x/net/context/go17.go delete mode 100644 vendor/golang.org/x/net/context/pre_go17.go delete mode 100644 vendor/golang.org/x/net/context/withtimeout_test.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/charmap.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/charmap_test.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/encoding.go delete mode 100644 vendor/golang.org/x/text/encoding/encoding_test.go delete mode 100644 vendor/golang.org/x/text/encoding/example_test.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/gen.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/htmlindex_test.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/map.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/ianaindex/example_test.go delete mode 100644 vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/gen.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/identifier.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/mib.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/internal.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/all.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/all_test.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/eucjp.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/iso2022jp.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/shiftjis.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/all_test.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/euckr.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/all.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/all_test.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/rashomon-shift-jis.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/rashomon-utf-8.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt delete mode 100644 vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/big5.go delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/override.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/unicode.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/unicode_test.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go delete mode 100644 vendor/golang.org/x/text/transform/examples_test.go delete mode 100644 vendor/golang.org/x/text/transform/transform.go delete mode 100644 vendor/golang.org/x/text/transform/transform_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/LICENSE delete mode 100644 vendor/gopkg.in/gcfg.v1/README delete mode 100644 vendor/gopkg.in/gcfg.v1/doc.go delete mode 100644 vendor/gopkg.in/gcfg.v1/example_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/go1_0.go delete mode 100644 vendor/gopkg.in/gcfg.v1/go1_2.go delete mode 100644 vendor/gopkg.in/gcfg.v1/issues_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/read.go delete mode 100644 vendor/gopkg.in/gcfg.v1/read_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/scanner/errors.go delete mode 100644 vendor/gopkg.in/gcfg.v1/scanner/example_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/scanner/scanner.go delete mode 100644 vendor/gopkg.in/gcfg.v1/scanner/scanner_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/set.go delete mode 100644 vendor/gopkg.in/gcfg.v1/testdata/gcfg_test.gcfg delete mode 100644 vendor/gopkg.in/gcfg.v1/testdata/gcfg_unicode_test.gcfg delete mode 100644 vendor/gopkg.in/gcfg.v1/token/position.go delete mode 100644 vendor/gopkg.in/gcfg.v1/token/position_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/token/serialize.go delete mode 100644 vendor/gopkg.in/gcfg.v1/token/serialize_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/token/token.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/bool.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/doc.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/enum.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/enum_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/int.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/int_test.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/scan.go delete mode 100644 vendor/gopkg.in/gcfg.v1/types/scan_test.go diff --git a/script/env b/script/env new file mode 100755 index 0000000..b724183 --- /dev/null +++ b/script/env @@ -0,0 +1,9 @@ +#!/bin/bash + +## Set all environmental variables here. + +export ROOTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" +export GOPATH=$ROOTDIR/.gopath +export GOPATH=$GOPATH:$ROOTDIR/vendor/:$ROOTDIR/.vendor/go17/usr/local/go/ +export GOROOT=$ROOTDIR/.vendor/go17/usr/local/go/ +export GOCMD=$ROOTDIR/.vendor/go17/usr/local/go/bin/go diff --git a/test.sh b/test.sh index 57b976d..5050979 100755 --- a/test.sh +++ b/test.sh @@ -7,7 +7,7 @@ retval=0 for testsuite in base mysql sql do pushd go/${testsuite} > /dev/null; - go test $*; + $GOCMD test $*; [ $? -ne 0 ] && retval=1 popd > /dev/null; done diff --git a/vendor/github.com/BurntSushi/toml/.gitignore b/vendor/github.com/BurntSushi/toml/.gitignore deleted file mode 100644 index 0cd3800..0000000 --- a/vendor/github.com/BurntSushi/toml/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -TAGS -tags -.*.swp -tomlcheck/tomlcheck -toml.test diff --git a/vendor/github.com/BurntSushi/toml/.travis.yml b/vendor/github.com/BurntSushi/toml/.travis.yml deleted file mode 100644 index 43caf6d..0000000 --- a/vendor/github.com/BurntSushi/toml/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: go -go: - - 1.1 - - 1.2 - - tip -install: - - go install ./... - - go get github.com/BurntSushi/toml-test -script: - - export PATH="$PATH:$HOME/gopath/bin" - - make test - diff --git a/vendor/github.com/BurntSushi/toml/COMPATIBLE b/vendor/github.com/BurntSushi/toml/COMPATIBLE deleted file mode 100644 index 21e0938..0000000 --- a/vendor/github.com/BurntSushi/toml/COMPATIBLE +++ /dev/null @@ -1,3 +0,0 @@ -Compatible with TOML version -[v0.2.0](https://github.com/mojombo/toml/blob/master/versions/toml-v0.2.0.md) - diff --git a/vendor/github.com/BurntSushi/toml/COPYING b/vendor/github.com/BurntSushi/toml/COPYING deleted file mode 100644 index 5a8e332..0000000 --- a/vendor/github.com/BurntSushi/toml/COPYING +++ /dev/null @@ -1,14 +0,0 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - diff --git a/vendor/github.com/BurntSushi/toml/Makefile b/vendor/github.com/BurntSushi/toml/Makefile deleted file mode 100644 index 3600848..0000000 --- a/vendor/github.com/BurntSushi/toml/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -install: - go install ./... - -test: install - go test -v - toml-test toml-test-decoder - toml-test -encoder toml-test-encoder - -fmt: - gofmt -w *.go */*.go - colcheck *.go */*.go - -tags: - find ./ -name '*.go' -print0 | xargs -0 gotags > TAGS - -push: - git push origin master - git push github master - diff --git a/vendor/github.com/BurntSushi/toml/README.md b/vendor/github.com/BurntSushi/toml/README.md deleted file mode 100644 index 380bb36..0000000 --- a/vendor/github.com/BurntSushi/toml/README.md +++ /dev/null @@ -1,220 +0,0 @@ -## TOML parser and encoder for Go with reflection - -TOML stands for Tom's Obvious, Minimal Language. This Go package provides a -reflection interface similar to Go's standard library `json` and `xml` -packages. This package also supports the `encoding.TextUnmarshaler` and -`encoding.TextMarshaler` interfaces so that you can define custom data -representations. (There is an example of this below.) - -Spec: https://github.com/mojombo/toml - -Compatible with TOML version -[v0.2.0](https://github.com/mojombo/toml/blob/master/versions/toml-v0.2.0.md) - -Documentation: http://godoc.org/github.com/BurntSushi/toml - -Installation: - -```bash -go get github.com/BurntSushi/toml -``` - -Try the toml validator: - -```bash -go get github.com/BurntSushi/toml/cmd/tomlv -tomlv some-toml-file.toml -``` - -[![Build status](https://api.travis-ci.org/BurntSushi/toml.png)](https://travis-ci.org/BurntSushi/toml) - - -### Testing - -This package passes all tests in -[toml-test](https://github.com/BurntSushi/toml-test) for both the decoder -and the encoder. - -### Examples - -This package works similarly to how the Go standard library handles `XML` -and `JSON`. Namely, data is loaded into Go values via reflection. - -For the simplest example, consider some TOML file as just a list of keys -and values: - -```toml -Age = 25 -Cats = [ "Cauchy", "Plato" ] -Pi = 3.14 -Perfection = [ 6, 28, 496, 8128 ] -DOB = 1987-07-05T05:45:00Z -``` - -Which could be defined in Go as: - -```go -type Config struct { - Age int - Cats []string - Pi float64 - Perfection []int - DOB time.Time // requires `import time` -} -``` - -And then decoded with: - -```go -var conf Config -if _, err := toml.Decode(tomlData, &conf); err != nil { - // handle error -} -``` - -You can also use struct tags if your struct field name doesn't map to a TOML -key value directly: - -```toml -some_key_NAME = "wat" -``` - -```go -type TOML struct { - ObscureKey string `toml:"some_key_NAME"` -} -``` - -### Using the `encoding.TextUnmarshaler` interface - -Here's an example that automatically parses duration strings into -`time.Duration` values: - -```toml -[[song]] -name = "Thunder Road" -duration = "4m49s" - -[[song]] -name = "Stairway to Heaven" -duration = "8m03s" -``` - -Which can be decoded with: - -```go -type song struct { - Name string - Duration duration -} -type songs struct { - Song []song -} -var favorites songs -if _, err := Decode(blob, &favorites); err != nil { - log.Fatal(err) -} - -for _, s := range favorites.Song { - fmt.Printf("%s (%s)\n", s.Name, s.Duration) -} -``` - -And you'll also need a `duration` type that satisfies the -`encoding.TextUnmarshaler` interface: - -```go -type duration struct { - time.Duration -} - -func (d *duration) UnmarshalText(text []byte) error { - var err error - d.Duration, err = time.ParseDuration(string(text)) - return err -} -``` - -### More complex usage - -Here's an example of how to load the example from the official spec page: - -```toml -# This is a TOML document. Boom. - -title = "TOML Example" - -[owner] -name = "Tom Preston-Werner" -organization = "GitHub" -bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." -dob = 1979-05-27T07:32:00Z # First class dates? Why not? - -[database] -server = "192.168.1.1" -ports = [ 8001, 8001, 8002 ] -connection_max = 5000 -enabled = true - -[servers] - - # You can indent as you please. Tabs or spaces. TOML don't care. - [servers.alpha] - ip = "10.0.0.1" - dc = "eqdc10" - - [servers.beta] - ip = "10.0.0.2" - dc = "eqdc10" - -[clients] -data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it - -# Line breaks are OK when inside arrays -hosts = [ - "alpha", - "omega" -] -``` - -And the corresponding Go types are: - -```go -type tomlConfig struct { - Title string - Owner ownerInfo - DB database `toml:"database"` - Servers map[string]server - Clients clients -} - -type ownerInfo struct { - Name string - Org string `toml:"organization"` - Bio string - DOB time.Time -} - -type database struct { - Server string - Ports []int - ConnMax int `toml:"connection_max"` - Enabled bool -} - -type server struct { - IP string - DC string -} - -type clients struct { - Data [][]interface{} - Hosts []string -} -``` - -Note that a case insensitive match will be tried if an exact match can't be -found. - -A working example of the above can be found in `_examples/example.{go,toml}`. - diff --git a/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING b/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING deleted file mode 100644 index 5a8e332..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING +++ /dev/null @@ -1,14 +0,0 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - diff --git a/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/README.md b/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/README.md deleted file mode 100644 index 24421eb..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Implements the TOML test suite interface - -This is an implementation of the interface expected by -[toml-test](https://github.com/BurntSushi/toml-test) for my -[toml parser written in Go](https://github.com/BurntSushi/toml). -In particular, it maps TOML data on `stdin` to a JSON format on `stdout`. - - -Compatible with TOML version -[v0.2.0](https://github.com/mojombo/toml/blob/master/versions/toml-v0.2.0.md) - -Compatible with `toml-test` version -[v0.2.0](https://github.com/BurntSushi/toml-test/tree/v0.2.0) - diff --git a/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/main.go b/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/main.go deleted file mode 100644 index 14e7557..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/main.go +++ /dev/null @@ -1,90 +0,0 @@ -// Command toml-test-decoder satisfies the toml-test interface for testing -// TOML decoders. Namely, it accepts TOML on stdin and outputs JSON on stdout. -package main - -import ( - "encoding/json" - "flag" - "fmt" - "log" - "os" - "path" - "time" - - "github.com/BurntSushi/toml" -) - -func init() { - log.SetFlags(0) - - flag.Usage = usage - flag.Parse() -} - -func usage() { - log.Printf("Usage: %s < toml-file\n", path.Base(os.Args[0])) - flag.PrintDefaults() - - os.Exit(1) -} - -func main() { - if flag.NArg() != 0 { - flag.Usage() - } - - var tmp interface{} - if _, err := toml.DecodeReader(os.Stdin, &tmp); err != nil { - log.Fatalf("Error decoding TOML: %s", err) - } - - typedTmp := translate(tmp) - if err := json.NewEncoder(os.Stdout).Encode(typedTmp); err != nil { - log.Fatalf("Error encoding JSON: %s", err) - } -} - -func translate(tomlData interface{}) interface{} { - switch orig := tomlData.(type) { - case map[string]interface{}: - typed := make(map[string]interface{}, len(orig)) - for k, v := range orig { - typed[k] = translate(v) - } - return typed - case []map[string]interface{}: - typed := make([]map[string]interface{}, len(orig)) - for i, v := range orig { - typed[i] = translate(v).(map[string]interface{}) - } - return typed - case []interface{}: - typed := make([]interface{}, len(orig)) - for i, v := range orig { - typed[i] = translate(v) - } - - // We don't really need to tag arrays, but let's be future proof. - // (If TOML ever supports tuples, we'll need this.) - return tag("array", typed) - case time.Time: - return tag("datetime", orig.Format("2006-01-02T15:04:05Z")) - case bool: - return tag("bool", fmt.Sprintf("%v", orig)) - case int64: - return tag("integer", fmt.Sprintf("%d", orig)) - case float64: - return tag("float", fmt.Sprintf("%v", orig)) - case string: - return tag("string", orig) - } - - panic(fmt.Sprintf("Unknown type: %T", tomlData)) -} - -func tag(typeName string, data interface{}) map[string]interface{} { - return map[string]interface{}{ - "type": typeName, - "value": data, - } -} diff --git a/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING b/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING deleted file mode 100644 index 5a8e332..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING +++ /dev/null @@ -1,14 +0,0 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - diff --git a/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/README.md b/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/README.md deleted file mode 100644 index 45a603f..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Implements the TOML test suite interface for TOML encoders - -This is an implementation of the interface expected by -[toml-test](https://github.com/BurntSushi/toml-test) for the -[TOML encoder](https://github.com/BurntSushi/toml). -In particular, it maps JSON data on `stdin` to a TOML format on `stdout`. - - -Compatible with TOML version -[v0.2.0](https://github.com/mojombo/toml/blob/master/versions/toml-v0.2.0.md) - -Compatible with `toml-test` version -[v0.2.0](https://github.com/BurntSushi/toml-test/tree/v0.2.0) - diff --git a/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/main.go b/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/main.go deleted file mode 100644 index 092cc68..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/main.go +++ /dev/null @@ -1,131 +0,0 @@ -// Command toml-test-encoder satisfies the toml-test interface for testing -// TOML encoders. Namely, it accepts JSON on stdin and outputs TOML on stdout. -package main - -import ( - "encoding/json" - "flag" - "log" - "os" - "path" - "strconv" - "time" - - "github.com/BurntSushi/toml" -) - -func init() { - log.SetFlags(0) - - flag.Usage = usage - flag.Parse() -} - -func usage() { - log.Printf("Usage: %s < json-file\n", path.Base(os.Args[0])) - flag.PrintDefaults() - - os.Exit(1) -} - -func main() { - if flag.NArg() != 0 { - flag.Usage() - } - - var tmp interface{} - if err := json.NewDecoder(os.Stdin).Decode(&tmp); err != nil { - log.Fatalf("Error decoding JSON: %s", err) - } - - tomlData := translate(tmp) - if err := toml.NewEncoder(os.Stdout).Encode(tomlData); err != nil { - log.Fatalf("Error encoding TOML: %s", err) - } -} - -func translate(typedJson interface{}) interface{} { - switch v := typedJson.(type) { - case map[string]interface{}: - if len(v) == 2 && in("type", v) && in("value", v) { - return untag(v) - } - m := make(map[string]interface{}, len(v)) - for k, v2 := range v { - m[k] = translate(v2) - } - return m - case []interface{}: - tabArray := make([]map[string]interface{}, len(v)) - for i := range v { - if m, ok := translate(v[i]).(map[string]interface{}); ok { - tabArray[i] = m - } else { - log.Fatalf("JSON arrays may only contain objects. This " + - "corresponds to only tables being allowed in " + - "TOML table arrays.") - } - } - return tabArray - } - log.Fatalf("Unrecognized JSON format '%T'.", typedJson) - panic("unreachable") -} - -func untag(typed map[string]interface{}) interface{} { - t := typed["type"].(string) - v := typed["value"] - switch t { - case "string": - return v.(string) - case "integer": - v := v.(string) - n, err := strconv.Atoi(v) - if err != nil { - log.Fatalf("Could not parse '%s' as integer: %s", v, err) - } - return n - case "float": - v := v.(string) - f, err := strconv.ParseFloat(v, 64) - if err != nil { - log.Fatalf("Could not parse '%s' as float64: %s", v, err) - } - return f - case "datetime": - v := v.(string) - t, err := time.Parse("2006-01-02T15:04:05Z", v) - if err != nil { - log.Fatalf("Could not parse '%s' as a datetime: %s", v, err) - } - return t - case "bool": - v := v.(string) - switch v { - case "true": - return true - case "false": - return false - } - log.Fatalf("Could not parse '%s' as a boolean.", v) - case "array": - v := v.([]interface{}) - array := make([]interface{}, len(v)) - for i := range v { - if m, ok := v[i].(map[string]interface{}); ok { - array[i] = untag(m) - } else { - log.Fatalf("Arrays may only contain other arrays or "+ - "primitive values, but found a '%T'.", m) - } - } - return array - } - log.Fatalf("Unrecognized tag type '%s'.", t) - panic("unreachable") -} - -func in(key string, m map[string]interface{}) bool { - _, ok := m[key] - return ok -} diff --git a/vendor/github.com/BurntSushi/toml/cmd/tomlv/COPYING b/vendor/github.com/BurntSushi/toml/cmd/tomlv/COPYING deleted file mode 100644 index 5a8e332..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/tomlv/COPYING +++ /dev/null @@ -1,14 +0,0 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - diff --git a/vendor/github.com/BurntSushi/toml/cmd/tomlv/README.md b/vendor/github.com/BurntSushi/toml/cmd/tomlv/README.md deleted file mode 100644 index 5df0dc3..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/tomlv/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# TOML Validator - -If Go is installed, it's simple to try it out: - -```bash -go get github.com/BurntSushi/toml/cmd/tomlv -tomlv some-toml-file.toml -``` - -You can see the types of every key in a TOML file with: - -```bash -tomlv -types some-toml-file.toml -``` - -At the moment, only one error message is reported at a time. Error messages -include line numbers. No output means that the files given are valid TOML, or -there is a bug in `tomlv`. - -Compatible with TOML version -[v0.1.0](https://github.com/mojombo/toml/blob/master/versions/toml-v0.1.0.md) - diff --git a/vendor/github.com/BurntSushi/toml/cmd/tomlv/main.go b/vendor/github.com/BurntSushi/toml/cmd/tomlv/main.go deleted file mode 100644 index c7d689a..0000000 --- a/vendor/github.com/BurntSushi/toml/cmd/tomlv/main.go +++ /dev/null @@ -1,61 +0,0 @@ -// Command tomlv validates TOML documents and prints each key's type. -package main - -import ( - "flag" - "fmt" - "log" - "os" - "path" - "strings" - "text/tabwriter" - - "github.com/BurntSushi/toml" -) - -var ( - flagTypes = false -) - -func init() { - log.SetFlags(0) - - flag.BoolVar(&flagTypes, "types", flagTypes, - "When set, the types of every defined key will be shown.") - - flag.Usage = usage - flag.Parse() -} - -func usage() { - log.Printf("Usage: %s toml-file [ toml-file ... ]\n", - path.Base(os.Args[0])) - flag.PrintDefaults() - - os.Exit(1) -} - -func main() { - if flag.NArg() < 1 { - flag.Usage() - } - for _, f := range flag.Args() { - var tmp interface{} - md, err := toml.DecodeFile(f, &tmp) - if err != nil { - log.Fatalf("Error in '%s': %s", f, err) - } - if flagTypes { - printTypes(md) - } - } -} - -func printTypes(md toml.MetaData) { - tabw := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) - for _, key := range md.Keys() { - fmt.Fprintf(tabw, "%s%s\t%s\n", - strings.Repeat(" ", len(key)-1), key, md.Type(key...)) - } - tabw.Flush() -} diff --git a/vendor/github.com/BurntSushi/toml/decode.go b/vendor/github.com/BurntSushi/toml/decode.go deleted file mode 100644 index b6d75d0..0000000 --- a/vendor/github.com/BurntSushi/toml/decode.go +++ /dev/null @@ -1,472 +0,0 @@ -package toml - -import ( - "fmt" - "io" - "io/ioutil" - "math" - "reflect" - "strings" - "time" -) - -var e = fmt.Errorf - -// Primitive is a TOML value that hasn't been decoded into a Go value. -// When using the various `Decode*` functions, the type `Primitive` may -// be given to any value, and its decoding will be delayed. -// -// A `Primitive` value can be decoded using the `PrimitiveDecode` function. -// -// The underlying representation of a `Primitive` value is subject to change. -// Do not rely on it. -// -// N.B. Primitive values are still parsed, so using them will only avoid -// the overhead of reflection. They can be useful when you don't know the -// exact type of TOML data until run time. -type Primitive struct { - undecoded interface{} - context Key -} - -// DEPRECATED! -// -// Use MetaData.PrimitiveDecode instead. -func PrimitiveDecode(primValue Primitive, v interface{}) error { - md := MetaData{decoded: make(map[string]bool)} - return md.unify(primValue.undecoded, rvalue(v)) -} - -// PrimitiveDecode is just like the other `Decode*` functions, except it -// decodes a TOML value that has already been parsed. Valid primitive values -// can *only* be obtained from values filled by the decoder functions, -// including this method. (i.e., `v` may contain more `Primitive` -// values.) -// -// Meta data for primitive values is included in the meta data returned by -// the `Decode*` functions with one exception: keys returned by the Undecoded -// method will only reflect keys that were decoded. Namely, any keys hidden -// behind a Primitive will be considered undecoded. Executing this method will -// update the undecoded keys in the meta data. (See the example.) -func (md *MetaData) PrimitiveDecode(primValue Primitive, v interface{}) error { - md.context = primValue.context - defer func() { md.context = nil }() - return md.unify(primValue.undecoded, rvalue(v)) -} - -// Decode will decode the contents of `data` in TOML format into a pointer -// `v`. -// -// TOML hashes correspond to Go structs or maps. (Dealer's choice. They can be -// used interchangeably.) -// -// TOML arrays of tables correspond to either a slice of structs or a slice -// of maps. -// -// TOML datetimes correspond to Go `time.Time` values. -// -// All other TOML types (float, string, int, bool and array) correspond -// to the obvious Go types. -// -// An exception to the above rules is if a type implements the -// encoding.TextUnmarshaler interface. In this case, any primitive TOML value -// (floats, strings, integers, booleans and datetimes) will be converted to -// a byte string and given to the value's UnmarshalText method. See the -// Unmarshaler example for a demonstration with time duration strings. -// -// Key mapping -// -// TOML keys can map to either keys in a Go map or field names in a Go -// struct. The special `toml` struct tag may be used to map TOML keys to -// struct fields that don't match the key name exactly. (See the example.) -// A case insensitive match to struct names will be tried if an exact match -// can't be found. -// -// The mapping between TOML values and Go values is loose. That is, there -// may exist TOML values that cannot be placed into your representation, and -// there may be parts of your representation that do not correspond to -// TOML values. This loose mapping can be made stricter by using the IsDefined -// and/or Undecoded methods on the MetaData returned. -// -// This decoder will not handle cyclic types. If a cyclic type is passed, -// `Decode` will not terminate. -func Decode(data string, v interface{}) (MetaData, error) { - p, err := parse(data) - if err != nil { - return MetaData{}, err - } - md := MetaData{ - p.mapping, p.types, p.ordered, - make(map[string]bool, len(p.ordered)), nil, - } - return md, md.unify(p.mapping, rvalue(v)) -} - -// DecodeFile is just like Decode, except it will automatically read the -// contents of the file at `fpath` and decode it for you. -func DecodeFile(fpath string, v interface{}) (MetaData, error) { - bs, err := ioutil.ReadFile(fpath) - if err != nil { - return MetaData{}, err - } - return Decode(string(bs), v) -} - -// DecodeReader is just like Decode, except it will consume all bytes -// from the reader and decode it for you. -func DecodeReader(r io.Reader, v interface{}) (MetaData, error) { - bs, err := ioutil.ReadAll(r) - if err != nil { - return MetaData{}, err - } - return Decode(string(bs), v) -} - -// unify performs a sort of type unification based on the structure of `rv`, -// which is the client representation. -// -// Any type mismatch produces an error. Finding a type that we don't know -// how to handle produces an unsupported type error. -func (md *MetaData) unify(data interface{}, rv reflect.Value) error { - // Special case. Look for a `Primitive` value. - if rv.Type() == reflect.TypeOf((*Primitive)(nil)).Elem() { - // Save the undecoded data and the key context into the primitive - // value. - context := make(Key, len(md.context)) - copy(context, md.context) - rv.Set(reflect.ValueOf(Primitive{ - undecoded: data, - context: context, - })) - return nil - } - - // Special case. Handle time.Time values specifically. - // TODO: Remove this code when we decide to drop support for Go 1.1. - // This isn't necessary in Go 1.2 because time.Time satisfies the encoding - // interfaces. - if rv.Type().AssignableTo(rvalue(time.Time{}).Type()) { - return md.unifyDatetime(data, rv) - } - - // Special case. Look for a value satisfying the TextUnmarshaler interface. - if v, ok := rv.Interface().(TextUnmarshaler); ok { - return md.unifyText(data, v) - } - // BUG(burntsushi) - // The behavior here is incorrect whenever a Go type satisfies the - // encoding.TextUnmarshaler interface but also corresponds to a TOML - // hash or array. In particular, the unmarshaler should only be applied - // to primitive TOML values. But at this point, it will be applied to - // all kinds of values and produce an incorrect error whenever those values - // are hashes or arrays (including arrays of tables). - - k := rv.Kind() - - // laziness - if k >= reflect.Int && k <= reflect.Uint64 { - return md.unifyInt(data, rv) - } - switch k { - case reflect.Ptr: - elem := reflect.New(rv.Type().Elem()) - err := md.unify(data, reflect.Indirect(elem)) - if err != nil { - return err - } - rv.Set(elem) - return nil - case reflect.Struct: - return md.unifyStruct(data, rv) - case reflect.Map: - return md.unifyMap(data, rv) - case reflect.Array: - return md.unifyArray(data, rv) - case reflect.Slice: - return md.unifySlice(data, rv) - case reflect.String: - return md.unifyString(data, rv) - case reflect.Bool: - return md.unifyBool(data, rv) - case reflect.Interface: - // we only support empty interfaces. - if rv.NumMethod() > 0 { - return e("Unsupported type '%s'.", rv.Kind()) - } - return md.unifyAnything(data, rv) - case reflect.Float32: - fallthrough - case reflect.Float64: - return md.unifyFloat64(data, rv) - } - return e("Unsupported type '%s'.", rv.Kind()) -} - -func (md *MetaData) unifyStruct(mapping interface{}, rv reflect.Value) error { - tmap, ok := mapping.(map[string]interface{}) - if !ok { - return mismatch(rv, "map", mapping) - } - - for key, datum := range tmap { - var f *field - fields := cachedTypeFields(rv.Type()) - for i := range fields { - ff := &fields[i] - if ff.name == key { - f = ff - break - } - if f == nil && strings.EqualFold(ff.name, key) { - f = ff - } - } - if f != nil { - subv := rv - for _, i := range f.index { - subv = indirect(subv.Field(i)) - } - if isUnifiable(subv) { - md.decoded[md.context.add(key).String()] = true - md.context = append(md.context, key) - if err := md.unify(datum, subv); err != nil { - return e("Type mismatch for '%s.%s': %s", - rv.Type().String(), f.name, err) - } - md.context = md.context[0 : len(md.context)-1] - } else if f.name != "" { - // Bad user! No soup for you! - return e("Field '%s.%s' is unexported, and therefore cannot "+ - "be loaded with reflection.", rv.Type().String(), f.name) - } - } - } - return nil -} - -func (md *MetaData) unifyMap(mapping interface{}, rv reflect.Value) error { - tmap, ok := mapping.(map[string]interface{}) - if !ok { - return badtype("map", mapping) - } - if rv.IsNil() { - rv.Set(reflect.MakeMap(rv.Type())) - } - for k, v := range tmap { - md.decoded[md.context.add(k).String()] = true - md.context = append(md.context, k) - - rvkey := indirect(reflect.New(rv.Type().Key())) - rvval := reflect.Indirect(reflect.New(rv.Type().Elem())) - if err := md.unify(v, rvval); err != nil { - return err - } - md.context = md.context[0 : len(md.context)-1] - - rvkey.SetString(k) - rv.SetMapIndex(rvkey, rvval) - } - return nil -} - -func (md *MetaData) unifyArray(data interface{}, rv reflect.Value) error { - datav := reflect.ValueOf(data) - if datav.Kind() != reflect.Slice { - return badtype("slice", data) - } - sliceLen := datav.Len() - if sliceLen != rv.Len() { - return e("expected array length %d; got TOML array of length %d", - rv.Len(), sliceLen) - } - return md.unifySliceArray(datav, rv) -} - -func (md *MetaData) unifySlice(data interface{}, rv reflect.Value) error { - datav := reflect.ValueOf(data) - if datav.Kind() != reflect.Slice { - return badtype("slice", data) - } - sliceLen := datav.Len() - if rv.IsNil() { - rv.Set(reflect.MakeSlice(rv.Type(), sliceLen, sliceLen)) - } - return md.unifySliceArray(datav, rv) -} - -func (md *MetaData) unifySliceArray(data, rv reflect.Value) error { - sliceLen := data.Len() - for i := 0; i < sliceLen; i++ { - v := data.Index(i).Interface() - sliceval := indirect(rv.Index(i)) - if err := md.unify(v, sliceval); err != nil { - return err - } - } - return nil -} - -func (md *MetaData) unifyDatetime(data interface{}, rv reflect.Value) error { - if _, ok := data.(time.Time); ok { - rv.Set(reflect.ValueOf(data)) - return nil - } - return badtype("time.Time", data) -} - -func (md *MetaData) unifyString(data interface{}, rv reflect.Value) error { - if s, ok := data.(string); ok { - rv.SetString(s) - return nil - } - return badtype("string", data) -} - -func (md *MetaData) unifyFloat64(data interface{}, rv reflect.Value) error { - if num, ok := data.(float64); ok { - switch rv.Kind() { - case reflect.Float32: - fallthrough - case reflect.Float64: - rv.SetFloat(num) - default: - panic("bug") - } - return nil - } - return badtype("float", data) -} - -func (md *MetaData) unifyInt(data interface{}, rv reflect.Value) error { - if num, ok := data.(int64); ok { - if rv.Kind() >= reflect.Int && rv.Kind() <= reflect.Int64 { - switch rv.Kind() { - case reflect.Int, reflect.Int64: - // No bounds checking necessary. - case reflect.Int8: - if num < math.MinInt8 || num > math.MaxInt8 { - return e("Value '%d' is out of range for int8.", num) - } - case reflect.Int16: - if num < math.MinInt16 || num > math.MaxInt16 { - return e("Value '%d' is out of range for int16.", num) - } - case reflect.Int32: - if num < math.MinInt32 || num > math.MaxInt32 { - return e("Value '%d' is out of range for int32.", num) - } - } - rv.SetInt(num) - } else if rv.Kind() >= reflect.Uint && rv.Kind() <= reflect.Uint64 { - unum := uint64(num) - switch rv.Kind() { - case reflect.Uint, reflect.Uint64: - // No bounds checking necessary. - case reflect.Uint8: - if num < 0 || unum > math.MaxUint8 { - return e("Value '%d' is out of range for uint8.", num) - } - case reflect.Uint16: - if num < 0 || unum > math.MaxUint16 { - return e("Value '%d' is out of range for uint16.", num) - } - case reflect.Uint32: - if num < 0 || unum > math.MaxUint32 { - return e("Value '%d' is out of range for uint32.", num) - } - } - rv.SetUint(unum) - } else { - panic("unreachable") - } - return nil - } - return badtype("integer", data) -} - -func (md *MetaData) unifyBool(data interface{}, rv reflect.Value) error { - if b, ok := data.(bool); ok { - rv.SetBool(b) - return nil - } - return badtype("boolean", data) -} - -func (md *MetaData) unifyAnything(data interface{}, rv reflect.Value) error { - rv.Set(reflect.ValueOf(data)) - return nil -} - -func (md *MetaData) unifyText(data interface{}, v TextUnmarshaler) error { - var s string - switch sdata := data.(type) { - case TextMarshaler: - text, err := sdata.MarshalText() - if err != nil { - return err - } - s = string(text) - case fmt.Stringer: - s = sdata.String() - case string: - s = sdata - case bool: - s = fmt.Sprintf("%v", sdata) - case int64: - s = fmt.Sprintf("%d", sdata) - case float64: - s = fmt.Sprintf("%f", sdata) - default: - return badtype("primitive (string-like)", data) - } - if err := v.UnmarshalText([]byte(s)); err != nil { - return err - } - return nil -} - -// rvalue returns a reflect.Value of `v`. All pointers are resolved. -func rvalue(v interface{}) reflect.Value { - return indirect(reflect.ValueOf(v)) -} - -// indirect returns the value pointed to by a pointer. -// Pointers are followed until the value is not a pointer. -// New values are allocated for each nil pointer. -// -// An exception to this rule is if the value satisfies an interface of -// interest to us (like encoding.TextUnmarshaler). -func indirect(v reflect.Value) reflect.Value { - if v.Kind() != reflect.Ptr { - if v.CanAddr() { - pv := v.Addr() - if _, ok := pv.Interface().(TextUnmarshaler); ok { - return pv - } - } - return v - } - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - return indirect(reflect.Indirect(v)) -} - -func isUnifiable(rv reflect.Value) bool { - if rv.CanSet() { - return true - } - if _, ok := rv.Interface().(TextUnmarshaler); ok { - return true - } - return false -} - -func badtype(expected string, data interface{}) error { - return e("Expected %s but found '%T'.", expected, data) -} - -func mismatch(user reflect.Value, expected string, data interface{}) error { - return e("Type mismatch for %s. Expected %s but found '%T'.", - user.Type().String(), expected, data) -} diff --git a/vendor/github.com/BurntSushi/toml/decode_meta.go b/vendor/github.com/BurntSushi/toml/decode_meta.go deleted file mode 100644 index c811445..0000000 --- a/vendor/github.com/BurntSushi/toml/decode_meta.go +++ /dev/null @@ -1,99 +0,0 @@ -package toml - -import "strings" - -// MetaData allows access to meta information about TOML data that may not -// be inferrable via reflection. In particular, whether a key has been defined -// and the TOML type of a key. -type MetaData struct { - mapping map[string]interface{} - types map[string]tomlType - keys []Key - decoded map[string]bool - context Key // Used only during decoding. -} - -// IsDefined returns true if the key given exists in the TOML data. The key -// should be specified hierarchially. e.g., -// -// // access the TOML key 'a.b.c' -// IsDefined("a", "b", "c") -// -// IsDefined will return false if an empty key given. Keys are case sensitive. -func (md *MetaData) IsDefined(key ...string) bool { - if len(key) == 0 { - return false - } - - var hash map[string]interface{} - var ok bool - var hashOrVal interface{} = md.mapping - for _, k := range key { - if hash, ok = hashOrVal.(map[string]interface{}); !ok { - return false - } - if hashOrVal, ok = hash[k]; !ok { - return false - } - } - return true -} - -// Type returns a string representation of the type of the key specified. -// -// Type will return the empty string if given an empty key or a key that -// does not exist. Keys are case sensitive. -func (md *MetaData) Type(key ...string) string { - fullkey := strings.Join(key, ".") - if typ, ok := md.types[fullkey]; ok { - return typ.typeString() - } - return "" -} - -// Key is the type of any TOML key, including key groups. Use (MetaData).Keys -// to get values of this type. -type Key []string - -func (k Key) String() string { - return strings.Join(k, ".") -} - -func (k Key) add(piece string) Key { - newKey := make(Key, len(k)+1) - copy(newKey, k) - newKey[len(k)] = piece - return newKey -} - -// Keys returns a slice of every key in the TOML data, including key groups. -// Each key is itself a slice, where the first element is the top of the -// hierarchy and the last is the most specific. -// -// The list will have the same order as the keys appeared in the TOML data. -// -// All keys returned are non-empty. -func (md *MetaData) Keys() []Key { - return md.keys -} - -// Undecoded returns all keys that have not been decoded in the order in which -// they appear in the original TOML document. -// -// This includes keys that haven't been decoded because of a Primitive value. -// Once the Primitive value is decoded, the keys will be considered decoded. -// -// Also note that decoding into an empty interface will result in no decoding, -// and so no keys will be considered decoded. -// -// In this sense, the Undecoded keys correspond to keys in the TOML document -// that do not have a concrete type in your representation. -func (md *MetaData) Undecoded() []Key { - undecoded := make([]Key, 0, len(md.keys)) - for _, key := range md.keys { - if !md.decoded[key.String()] { - undecoded = append(undecoded, key) - } - } - return undecoded -} diff --git a/vendor/github.com/BurntSushi/toml/decode_test.go b/vendor/github.com/BurntSushi/toml/decode_test.go deleted file mode 100644 index b940333..0000000 --- a/vendor/github.com/BurntSushi/toml/decode_test.go +++ /dev/null @@ -1,540 +0,0 @@ -package toml - -import ( - "fmt" - "log" - "reflect" - "testing" - "time" -) - -func init() { - log.SetFlags(0) -} - -func TestDecodeSimple(t *testing.T) { - var testSimple = ` -age = 250 -andrew = "gallant" -kait = "brady" -now = 1987-07-05T05:45:00Z -yesOrNo = true -pi = 3.14 -colors = [ - ["red", "green", "blue"], - ["cyan", "magenta", "yellow", "black"], -] - -[My.Cats] -plato = "cat 1" -cauchy = "cat 2" -` - - type cats struct { - Plato string - Cauchy string - } - type simple struct { - Age int - Colors [][]string - Pi float64 - YesOrNo bool - Now time.Time - Andrew string - Kait string - My map[string]cats - } - - var val simple - _, err := Decode(testSimple, &val) - if err != nil { - t.Fatal(err) - } - - now, err := time.Parse("2006-01-02T15:04:05", "1987-07-05T05:45:00") - if err != nil { - panic(err) - } - var answer = simple{ - Age: 250, - Andrew: "gallant", - Kait: "brady", - Now: now, - YesOrNo: true, - Pi: 3.14, - Colors: [][]string{ - {"red", "green", "blue"}, - {"cyan", "magenta", "yellow", "black"}, - }, - My: map[string]cats{ - "Cats": cats{Plato: "cat 1", Cauchy: "cat 2"}, - }, - } - if !reflect.DeepEqual(val, answer) { - t.Fatalf("Expected\n-----\n%#v\n-----\nbut got\n-----\n%#v\n", - answer, val) - } -} - -func TestDecodeEmbedded(t *testing.T) { - type Dog struct{ Name string } - type Age int - - tests := map[string]struct { - input string - decodeInto interface{} - wantDecoded interface{} - }{ - "embedded struct": { - input: `Name = "milton"`, - decodeInto: &struct{ Dog }{}, - wantDecoded: &struct{ Dog }{Dog{"milton"}}, - }, - "embedded non-nil pointer to struct": { - input: `Name = "milton"`, - decodeInto: &struct{ *Dog }{}, - wantDecoded: &struct{ *Dog }{&Dog{"milton"}}, - }, - "embedded nil pointer to struct": { - input: ``, - decodeInto: &struct{ *Dog }{}, - wantDecoded: &struct{ *Dog }{nil}, - }, - "embedded int": { - input: `Age = -5`, - decodeInto: &struct{ Age }{}, - wantDecoded: &struct{ Age }{-5}, - }, - } - - for label, test := range tests { - _, err := Decode(test.input, test.decodeInto) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(test.wantDecoded, test.decodeInto) { - t.Errorf("%s: want decoded == %+v, got %+v", - label, test.wantDecoded, test.decodeInto) - } - } -} - -func TestTableArrays(t *testing.T) { - var tomlTableArrays = ` -[[albums]] -name = "Born to Run" - - [[albums.songs]] - name = "Jungleland" - - [[albums.songs]] - name = "Meeting Across the River" - -[[albums]] -name = "Born in the USA" - - [[albums.songs]] - name = "Glory Days" - - [[albums.songs]] - name = "Dancing in the Dark" -` - - type Song struct { - Name string - } - - type Album struct { - Name string - Songs []Song - } - - type Music struct { - Albums []Album - } - - expected := Music{[]Album{ - {"Born to Run", []Song{{"Jungleland"}, {"Meeting Across the River"}}}, - {"Born in the USA", []Song{{"Glory Days"}, {"Dancing in the Dark"}}}, - }} - var got Music - if _, err := Decode(tomlTableArrays, &got); err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(expected, got) { - t.Fatalf("\n%#v\n!=\n%#v\n", expected, got) - } -} - -// Case insensitive matching tests. -// A bit more comprehensive than needed given the current implementation, -// but implementations change. -// Probably still missing demonstrations of some ugly corner cases regarding -// case insensitive matching and multiple fields. -func TestCase(t *testing.T) { - var caseToml = ` -tOpString = "string" -tOpInt = 1 -tOpFloat = 1.1 -tOpBool = true -tOpdate = 2006-01-02T15:04:05Z -tOparray = [ "array" ] -Match = "i should be in Match only" -MatcH = "i should be in MatcH only" -once = "just once" -[nEst.eD] -nEstedString = "another string" -` - - type InsensitiveEd struct { - NestedString string - } - - type InsensitiveNest struct { - Ed InsensitiveEd - } - - type Insensitive struct { - TopString string - TopInt int - TopFloat float64 - TopBool bool - TopDate time.Time - TopArray []string - Match string - MatcH string - Once string - OncE string - Nest InsensitiveNest - } - - tme, err := time.Parse(time.RFC3339, time.RFC3339[:len(time.RFC3339)-5]) - if err != nil { - panic(err) - } - expected := Insensitive{ - TopString: "string", - TopInt: 1, - TopFloat: 1.1, - TopBool: true, - TopDate: tme, - TopArray: []string{"array"}, - MatcH: "i should be in MatcH only", - Match: "i should be in Match only", - Once: "just once", - OncE: "", - Nest: InsensitiveNest{ - Ed: InsensitiveEd{NestedString: "another string"}, - }, - } - var got Insensitive - if _, err := Decode(caseToml, &got); err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(expected, got) { - t.Fatalf("\n%#v\n!=\n%#v\n", expected, got) - } -} - -func TestPointers(t *testing.T) { - type Object struct { - Type string - Description string - } - - type Dict struct { - NamedObject map[string]*Object - BaseObject *Object - Strptr *string - Strptrs []*string - } - s1, s2, s3 := "blah", "abc", "def" - expected := &Dict{ - Strptr: &s1, - Strptrs: []*string{&s2, &s3}, - NamedObject: map[string]*Object{ - "foo": {"FOO", "fooooo!!!"}, - "bar": {"BAR", "ba-ba-ba-ba-barrrr!!!"}, - }, - BaseObject: &Object{"BASE", "da base"}, - } - - ex1 := ` -Strptr = "blah" -Strptrs = ["abc", "def"] - -[NamedObject.foo] -Type = "FOO" -Description = "fooooo!!!" - -[NamedObject.bar] -Type = "BAR" -Description = "ba-ba-ba-ba-barrrr!!!" - -[BaseObject] -Type = "BASE" -Description = "da base" -` - dict := new(Dict) - _, err := Decode(ex1, dict) - if err != nil { - t.Errorf("Decode error: %v", err) - } - if !reflect.DeepEqual(expected, dict) { - t.Fatalf("\n%#v\n!=\n%#v\n", expected, dict) - } -} - -type sphere struct { - Center [3]float64 - Radius float64 -} - -func TestDecodeSimpleArray(t *testing.T) { - var s1 sphere - if _, err := Decode(`center = [0.0, 1.5, 0.0]`, &s1); err != nil { - t.Fatal(err) - } -} - -func TestDecodeArrayWrongSize(t *testing.T) { - var s1 sphere - if _, err := Decode(`center = [0.1, 2.3]`, &s1); err == nil { - t.Fatal("Expected array type mismatch error") - } -} - -func TestDecodeLargeIntoSmallInt(t *testing.T) { - type table struct { - Value int8 - } - var tab table - if _, err := Decode(`value = 500`, &tab); err == nil { - t.Fatal("Expected integer out-of-bounds error.") - } -} - -func TestDecodeSizedInts(t *testing.T) { - type table struct { - U8 uint8 - U16 uint16 - U32 uint32 - U64 uint64 - U uint - I8 int8 - I16 int16 - I32 int32 - I64 int64 - I int - } - answer := table{1, 1, 1, 1, 1, -1, -1, -1, -1, -1} - toml := ` - u8 = 1 - u16 = 1 - u32 = 1 - u64 = 1 - u = 1 - i8 = -1 - i16 = -1 - i32 = -1 - i64 = -1 - i = -1 - ` - var tab table - if _, err := Decode(toml, &tab); err != nil { - t.Fatal(err.Error()) - } - if answer != tab { - t.Fatalf("Expected %#v but got %#v", answer, tab) - } -} - -func ExampleMetaData_PrimitiveDecode() { - var md MetaData - var err error - - var tomlBlob = ` -ranking = ["Springsteen", "J Geils"] - -[bands.Springsteen] -started = 1973 -albums = ["Greetings", "WIESS", "Born to Run", "Darkness"] - -[bands.J Geils] -started = 1970 -albums = ["The J. Geils Band", "Full House", "Blow Your Face Out"] -` - - type band struct { - Started int - Albums []string - } - type classics struct { - Ranking []string - Bands map[string]Primitive - } - - // Do the initial decode. Reflection is delayed on Primitive values. - var music classics - if md, err = Decode(tomlBlob, &music); err != nil { - log.Fatal(err) - } - - // MetaData still includes information on Primitive values. - fmt.Printf("Is `bands.Springsteen` defined? %v\n", - md.IsDefined("bands", "Springsteen")) - - // Decode primitive data into Go values. - for _, artist := range music.Ranking { - // A band is a primitive value, so we need to decode it to get a - // real `band` value. - primValue := music.Bands[artist] - - var aBand band - if err = md.PrimitiveDecode(primValue, &aBand); err != nil { - log.Fatal(err) - } - fmt.Printf("%s started in %d.\n", artist, aBand.Started) - } - // Check to see if there were any fields left undecoded. - // Note that this won't be empty before decoding the Primitive value! - fmt.Printf("Undecoded: %q\n", md.Undecoded()) - - // Output: - // Is `bands.Springsteen` defined? true - // Springsteen started in 1973. - // J Geils started in 1970. - // Undecoded: [] -} - -func ExampleDecode() { - var tomlBlob = ` -# Some comments. -[alpha] -ip = "10.0.0.1" - - [alpha.config] - Ports = [ 8001, 8002 ] - Location = "Toronto" - Created = 1987-07-05T05:45:00Z - -[beta] -ip = "10.0.0.2" - - [beta.config] - Ports = [ 9001, 9002 ] - Location = "New Jersey" - Created = 1887-01-05T05:55:00Z -` - - type serverConfig struct { - Ports []int - Location string - Created time.Time - } - - type server struct { - IP string `toml:"ip"` - Config serverConfig `toml:"config"` - } - - type servers map[string]server - - var config servers - if _, err := Decode(tomlBlob, &config); err != nil { - log.Fatal(err) - } - - for _, name := range []string{"alpha", "beta"} { - s := config[name] - fmt.Printf("Server: %s (ip: %s) in %s created on %s\n", - name, s.IP, s.Config.Location, - s.Config.Created.Format("2006-01-02")) - fmt.Printf("Ports: %v\n", s.Config.Ports) - } - - // Output: - // Server: alpha (ip: 10.0.0.1) in Toronto created on 1987-07-05 - // Ports: [8001 8002] - // Server: beta (ip: 10.0.0.2) in New Jersey created on 1887-01-05 - // Ports: [9001 9002] -} - -type duration struct { - time.Duration -} - -func (d *duration) UnmarshalText(text []byte) error { - var err error - d.Duration, err = time.ParseDuration(string(text)) - return err -} - -// Example Unmarshaler shows how to decode TOML strings into your own -// custom data type. -func Example_unmarshaler() { - blob := ` -[[song]] -name = "Thunder Road" -duration = "4m49s" - -[[song]] -name = "Stairway to Heaven" -duration = "8m03s" -` - type song struct { - Name string - Duration duration - } - type songs struct { - Song []song - } - var favorites songs - if _, err := Decode(blob, &favorites); err != nil { - log.Fatal(err) - } - - // Code to implement the TextUnmarshaler interface for `duration`: - // - // type duration struct { - // time.Duration - // } - // - // func (d *duration) UnmarshalText(text []byte) error { - // var err error - // d.Duration, err = time.ParseDuration(string(text)) - // return err - // } - - for _, s := range favorites.Song { - fmt.Printf("%s (%s)\n", s.Name, s.Duration) - } - // Output: - // Thunder Road (4m49s) - // Stairway to Heaven (8m3s) -} - -// Example StrictDecoding shows how to detect whether there are keys in the -// TOML document that weren't decoded into the value given. This is useful -// for returning an error to the user if they've included extraneous fields -// in their configuration. -func Example_strictDecoding() { - var blob = ` -key1 = "value1" -key2 = "value2" -key3 = "value3" -` - type config struct { - Key1 string - Key3 string - } - - var conf config - md, err := Decode(blob, &conf) - if err != nil { - log.Fatal(err) - } - fmt.Printf("Undecoded keys: %q\n", md.Undecoded()) - // Output: - // Undecoded keys: ["key2"] -} diff --git a/vendor/github.com/BurntSushi/toml/doc.go b/vendor/github.com/BurntSushi/toml/doc.go deleted file mode 100644 index fe26800..0000000 --- a/vendor/github.com/BurntSushi/toml/doc.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Package toml provides facilities for decoding and encoding TOML configuration -files via reflection. There is also support for delaying decoding with -the Primitive type, and querying the set of keys in a TOML document with the -MetaData type. - -The specification implemented: https://github.com/mojombo/toml - -The sub-command github.com/BurntSushi/toml/cmd/tomlv can be used to verify -whether a file is a valid TOML document. It can also be used to print the -type of each key in a TOML document. - -Testing - -There are two important types of tests used for this package. The first is -contained inside '*_test.go' files and uses the standard Go unit testing -framework. These tests are primarily devoted to holistically testing the -decoder and encoder. - -The second type of testing is used to verify the implementation's adherence -to the TOML specification. These tests have been factored into their own -project: https://github.com/BurntSushi/toml-test - -The reason the tests are in a separate project is so that they can be used by -any implementation of TOML. Namely, it is language agnostic. -*/ -package toml diff --git a/vendor/github.com/BurntSushi/toml/encode.go b/vendor/github.com/BurntSushi/toml/encode.go deleted file mode 100644 index 3618713..0000000 --- a/vendor/github.com/BurntSushi/toml/encode.go +++ /dev/null @@ -1,515 +0,0 @@ -package toml - -import ( - "bufio" - "errors" - "fmt" - "io" - "reflect" - "sort" - "strconv" - "strings" - "time" -) - -type tomlEncodeError struct{ error } - -var ( - errArrayMixedElementTypes = errors.New( - "can't encode array with mixed element types") - errArrayNilElement = errors.New( - "can't encode array with nil element") - errNonString = errors.New( - "can't encode a map with non-string key type") - errAnonNonStruct = errors.New( - "can't encode an anonymous field that is not a struct") - errArrayNoTable = errors.New( - "TOML array element can't contain a table") - errNoKey = errors.New( - "top-level values must be a Go map or struct") - errAnything = errors.New("") // used in testing -) - -var quotedReplacer = strings.NewReplacer( - "\t", "\\t", - "\n", "\\n", - "\r", "\\r", - "\"", "\\\"", - "\\", "\\\\", -) - -// Encoder controls the encoding of Go values to a TOML document to some -// io.Writer. -// -// The indentation level can be controlled with the Indent field. -type Encoder struct { - // A single indentation level. By default it is two spaces. - Indent string - - // hasWritten is whether we have written any output to w yet. - hasWritten bool - w *bufio.Writer -} - -// NewEncoder returns a TOML encoder that encodes Go values to the io.Writer -// given. By default, a single indentation level is 2 spaces. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - w: bufio.NewWriter(w), - Indent: " ", - } -} - -// Encode writes a TOML representation of the Go value to the underlying -// io.Writer. If the value given cannot be encoded to a valid TOML document, -// then an error is returned. -// -// The mapping between Go values and TOML values should be precisely the same -// as for the Decode* functions. Similarly, the TextMarshaler interface is -// supported by encoding the resulting bytes as strings. (If you want to write -// arbitrary binary data then you will need to use something like base64 since -// TOML does not have any binary types.) -// -// When encoding TOML hashes (i.e., Go maps or structs), keys without any -// sub-hashes are encoded first. -// -// If a Go map is encoded, then its keys are sorted alphabetically for -// deterministic output. More control over this behavior may be provided if -// there is demand for it. -// -// Encoding Go values without a corresponding TOML representation---like map -// types with non-string keys---will cause an error to be returned. Similarly -// for mixed arrays/slices, arrays/slices with nil elements, embedded -// non-struct types and nested slices containing maps or structs. -// (e.g., [][]map[string]string is not allowed but []map[string]string is OK -// and so is []map[string][]string.) -func (enc *Encoder) Encode(v interface{}) error { - rv := eindirect(reflect.ValueOf(v)) - if err := enc.safeEncode(Key([]string{}), rv); err != nil { - return err - } - return enc.w.Flush() -} - -func (enc *Encoder) safeEncode(key Key, rv reflect.Value) (err error) { - defer func() { - if r := recover(); r != nil { - if terr, ok := r.(tomlEncodeError); ok { - err = terr.error - return - } - panic(r) - } - }() - enc.encode(key, rv) - return nil -} - -func (enc *Encoder) encode(key Key, rv reflect.Value) { - // Special case. Time needs to be in ISO8601 format. - // Special case. If we can marshal the type to text, then we used that. - // Basically, this prevents the encoder for handling these types as - // generic structs (or whatever the underlying type of a TextMarshaler is). - switch rv.Interface().(type) { - case time.Time, TextMarshaler: - enc.keyEqElement(key, rv) - return - } - - k := rv.Kind() - switch k { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, - reflect.Uint64, - reflect.Float32, reflect.Float64, reflect.String, reflect.Bool: - enc.keyEqElement(key, rv) - case reflect.Array, reflect.Slice: - if typeEqual(tomlArrayHash, tomlTypeOfGo(rv)) { - enc.eArrayOfTables(key, rv) - } else { - enc.keyEqElement(key, rv) - } - case reflect.Interface: - if rv.IsNil() { - return - } - enc.encode(key, rv.Elem()) - case reflect.Map: - if rv.IsNil() { - return - } - enc.eTable(key, rv) - case reflect.Ptr: - if rv.IsNil() { - return - } - enc.encode(key, rv.Elem()) - case reflect.Struct: - enc.eTable(key, rv) - default: - panic(e("Unsupported type for key '%s': %s", key, k)) - } -} - -// eElement encodes any value that can be an array element (primitives and -// arrays). -func (enc *Encoder) eElement(rv reflect.Value) { - switch v := rv.Interface().(type) { - case time.Time: - // Special case time.Time as a primitive. Has to come before - // TextMarshaler below because time.Time implements - // encoding.TextMarshaler, but we need to always use UTC. - enc.wf(v.In(time.FixedZone("UTC", 0)).Format("2006-01-02T15:04:05Z")) - return - case TextMarshaler: - // Special case. Use text marshaler if it's available for this value. - if s, err := v.MarshalText(); err != nil { - encPanic(err) - } else { - enc.writeQuoted(string(s)) - } - return - } - switch rv.Kind() { - case reflect.Bool: - enc.wf(strconv.FormatBool(rv.Bool())) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - enc.wf(strconv.FormatInt(rv.Int(), 10)) - case reflect.Uint, reflect.Uint8, reflect.Uint16, - reflect.Uint32, reflect.Uint64: - enc.wf(strconv.FormatUint(rv.Uint(), 10)) - case reflect.Float32: - enc.wf(floatAddDecimal(strconv.FormatFloat(rv.Float(), 'f', -1, 32))) - case reflect.Float64: - enc.wf(floatAddDecimal(strconv.FormatFloat(rv.Float(), 'f', -1, 64))) - case reflect.Array, reflect.Slice: - enc.eArrayOrSliceElement(rv) - case reflect.Interface: - enc.eElement(rv.Elem()) - case reflect.String: - enc.writeQuoted(rv.String()) - default: - panic(e("Unexpected primitive type: %s", rv.Kind())) - } -} - -// By the TOML spec, all floats must have a decimal with at least one -// number on either side. -func floatAddDecimal(fstr string) string { - if !strings.Contains(fstr, ".") { - return fstr + ".0" - } - return fstr -} - -func (enc *Encoder) writeQuoted(s string) { - enc.wf("\"%s\"", quotedReplacer.Replace(s)) -} - -func (enc *Encoder) eArrayOrSliceElement(rv reflect.Value) { - length := rv.Len() - enc.wf("[") - for i := 0; i < length; i++ { - elem := rv.Index(i) - enc.eElement(elem) - if i != length-1 { - enc.wf(", ") - } - } - enc.wf("]") -} - -func (enc *Encoder) eArrayOfTables(key Key, rv reflect.Value) { - if len(key) == 0 { - encPanic(errNoKey) - } - panicIfInvalidKey(key, true) - for i := 0; i < rv.Len(); i++ { - trv := rv.Index(i) - if isNil(trv) { - continue - } - enc.newline() - enc.wf("%s[[%s]]", enc.indentStr(key), key.String()) - enc.newline() - enc.eMapOrStruct(key, trv) - } -} - -func (enc *Encoder) eTable(key Key, rv reflect.Value) { - if len(key) == 1 { - // Output an extra new line between top-level tables. - // (The newline isn't written if nothing else has been written though.) - enc.newline() - } - if len(key) > 0 { - panicIfInvalidKey(key, true) - enc.wf("%s[%s]", enc.indentStr(key), key.String()) - enc.newline() - } - enc.eMapOrStruct(key, rv) -} - -func (enc *Encoder) eMapOrStruct(key Key, rv reflect.Value) { - switch rv := eindirect(rv); rv.Kind() { - case reflect.Map: - enc.eMap(key, rv) - case reflect.Struct: - enc.eStruct(key, rv) - default: - panic("eTable: unhandled reflect.Value Kind: " + rv.Kind().String()) - } -} - -func (enc *Encoder) eMap(key Key, rv reflect.Value) { - rt := rv.Type() - if rt.Key().Kind() != reflect.String { - encPanic(errNonString) - } - - // Sort keys so that we have deterministic output. And write keys directly - // underneath this key first, before writing sub-structs or sub-maps. - var mapKeysDirect, mapKeysSub []string - for _, mapKey := range rv.MapKeys() { - k := mapKey.String() - if typeIsHash(tomlTypeOfGo(rv.MapIndex(mapKey))) { - mapKeysSub = append(mapKeysSub, k) - } else { - mapKeysDirect = append(mapKeysDirect, k) - } - } - - var writeMapKeys = func(mapKeys []string) { - sort.Strings(mapKeys) - for _, mapKey := range mapKeys { - mrv := rv.MapIndex(reflect.ValueOf(mapKey)) - if isNil(mrv) { - // Don't write anything for nil fields. - continue - } - enc.encode(key.add(mapKey), mrv) - } - } - writeMapKeys(mapKeysDirect) - writeMapKeys(mapKeysSub) -} - -func (enc *Encoder) eStruct(key Key, rv reflect.Value) { - // Write keys for fields directly under this key first, because if we write - // a field that creates a new table, then all keys under it will be in that - // table (not the one we're writing here). - rt := rv.Type() - var fieldsDirect, fieldsSub [][]int - var addFields func(rt reflect.Type, rv reflect.Value, start []int) - addFields = func(rt reflect.Type, rv reflect.Value, start []int) { - for i := 0; i < rt.NumField(); i++ { - f := rt.Field(i) - // skip unexporded fields - if f.PkgPath != "" { - continue - } - frv := rv.Field(i) - if f.Anonymous { - frv := eindirect(frv) - t := frv.Type() - if t.Kind() != reflect.Struct { - encPanic(errAnonNonStruct) - } - addFields(t, frv, f.Index) - } else if typeIsHash(tomlTypeOfGo(frv)) { - fieldsSub = append(fieldsSub, append(start, f.Index...)) - } else { - fieldsDirect = append(fieldsDirect, append(start, f.Index...)) - } - } - } - addFields(rt, rv, nil) - - var writeFields = func(fields [][]int) { - for _, fieldIndex := range fields { - sft := rt.FieldByIndex(fieldIndex) - sf := rv.FieldByIndex(fieldIndex) - if isNil(sf) { - // Don't write anything for nil fields. - continue - } - - keyName := sft.Tag.Get("toml") - if keyName == "-" { - continue - } - if keyName == "" { - keyName = sft.Name - } - enc.encode(key.add(keyName), sf) - } - } - writeFields(fieldsDirect) - writeFields(fieldsSub) -} - -// tomlTypeName returns the TOML type name of the Go value's type. It is used to -// determine whether the types of array elements are mixed (which is forbidden). -// If the Go value is nil, then it is illegal for it to be an array element, and -// valueIsNil is returned as true. - -// Returns the TOML type of a Go value. The type may be `nil`, which means -// no concrete TOML type could be found. -func tomlTypeOfGo(rv reflect.Value) tomlType { - if isNil(rv) || !rv.IsValid() { - return nil - } - switch rv.Kind() { - case reflect.Bool: - return tomlBool - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, - reflect.Uint64: - return tomlInteger - case reflect.Float32, reflect.Float64: - return tomlFloat - case reflect.Array, reflect.Slice: - if typeEqual(tomlHash, tomlArrayType(rv)) { - return tomlArrayHash - } else { - return tomlArray - } - case reflect.Ptr, reflect.Interface: - return tomlTypeOfGo(rv.Elem()) - case reflect.String: - return tomlString - case reflect.Map: - return tomlHash - case reflect.Struct: - switch rv.Interface().(type) { - case time.Time: - return tomlDatetime - case TextMarshaler: - return tomlString - default: - return tomlHash - } - default: - panic("unexpected reflect.Kind: " + rv.Kind().String()) - } -} - -// tomlArrayType returns the element type of a TOML array. The type returned -// may be nil if it cannot be determined (e.g., a nil slice or a zero length -// slize). This function may also panic if it finds a type that cannot be -// expressed in TOML (such as nil elements, heterogeneous arrays or directly -// nested arrays of tables). -func tomlArrayType(rv reflect.Value) tomlType { - if isNil(rv) || !rv.IsValid() || rv.Len() == 0 { - return nil - } - firstType := tomlTypeOfGo(rv.Index(0)) - if firstType == nil { - encPanic(errArrayNilElement) - } - - rvlen := rv.Len() - for i := 1; i < rvlen; i++ { - elem := rv.Index(i) - switch elemType := tomlTypeOfGo(elem); { - case elemType == nil: - encPanic(errArrayNilElement) - case !typeEqual(firstType, elemType): - encPanic(errArrayMixedElementTypes) - } - } - // If we have a nested array, then we must make sure that the nested - // array contains ONLY primitives. - // This checks arbitrarily nested arrays. - if typeEqual(firstType, tomlArray) || typeEqual(firstType, tomlArrayHash) { - nest := tomlArrayType(eindirect(rv.Index(0))) - if typeEqual(nest, tomlHash) || typeEqual(nest, tomlArrayHash) { - encPanic(errArrayNoTable) - } - } - return firstType -} - -func (enc *Encoder) newline() { - if enc.hasWritten { - enc.wf("\n") - } -} - -func (enc *Encoder) keyEqElement(key Key, val reflect.Value) { - if len(key) == 0 { - encPanic(errNoKey) - } - panicIfInvalidKey(key, false) - enc.wf("%s%s = ", enc.indentStr(key), key[len(key)-1]) - enc.eElement(val) - enc.newline() -} - -func (enc *Encoder) wf(format string, v ...interface{}) { - if _, err := fmt.Fprintf(enc.w, format, v...); err != nil { - encPanic(err) - } - enc.hasWritten = true -} - -func (enc *Encoder) indentStr(key Key) string { - return strings.Repeat(enc.Indent, len(key)-1) -} - -func encPanic(err error) { - panic(tomlEncodeError{err}) -} - -func eindirect(v reflect.Value) reflect.Value { - switch v.Kind() { - case reflect.Ptr, reflect.Interface: - return eindirect(v.Elem()) - default: - return v - } -} - -func isNil(rv reflect.Value) bool { - switch rv.Kind() { - case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: - return rv.IsNil() - default: - return false - } -} - -func panicIfInvalidKey(key Key, hash bool) { - if hash { - for _, k := range key { - if !isValidTableName(k) { - encPanic(e("Key '%s' is not a valid table name. Table names "+ - "cannot contain '[', ']' or '.'.", key.String())) - } - } - } else { - if !isValidKeyName(key[len(key)-1]) { - encPanic(e("Key '%s' is not a name. Key names "+ - "cannot contain whitespace.", key.String())) - } - } -} - -func isValidTableName(s string) bool { - if len(s) == 0 { - return false - } - for _, r := range s { - if r == '[' || r == ']' || r == '.' { - return false - } - } - return true -} - -func isValidKeyName(s string) bool { - if len(s) == 0 { - return false - } - return true -} diff --git a/vendor/github.com/BurntSushi/toml/encode_test.go b/vendor/github.com/BurntSushi/toml/encode_test.go deleted file mode 100644 index 74a5ee5..0000000 --- a/vendor/github.com/BurntSushi/toml/encode_test.go +++ /dev/null @@ -1,506 +0,0 @@ -package toml - -import ( - "bytes" - "fmt" - "log" - "net" - "testing" - "time" -) - -func TestEncodeRoundTrip(t *testing.T) { - type Config struct { - Age int - Cats []string - Pi float64 - Perfection []int - DOB time.Time - Ipaddress net.IP - } - - var inputs = Config{ - 13, - []string{"one", "two", "three"}, - 3.145, - []int{11, 2, 3, 4}, - time.Now(), - net.ParseIP("192.168.59.254"), - } - - var firstBuffer bytes.Buffer - e := NewEncoder(&firstBuffer) - err := e.Encode(inputs) - if err != nil { - t.Fatal(err) - } - var outputs Config - if _, err := Decode(firstBuffer.String(), &outputs); err != nil { - log.Printf("Could not decode:\n-----\n%s\n-----\n", - firstBuffer.String()) - t.Fatal(err) - } - - // could test each value individually, but I'm lazy - var secondBuffer bytes.Buffer - e2 := NewEncoder(&secondBuffer) - err = e2.Encode(outputs) - if err != nil { - t.Fatal(err) - } - if firstBuffer.String() != secondBuffer.String() { - t.Error( - firstBuffer.String(), - "\n\n is not identical to\n\n", - secondBuffer.String()) - } -} - -// XXX(burntsushi) -// I think these tests probably should be removed. They are good, but they -// ought to be obsolete by toml-test. -func TestEncode(t *testing.T) { - type Embedded struct { - Int int `toml:"_int"` - } - type NonStruct int - - date := time.Date(2014, 5, 11, 20, 30, 40, 0, time.FixedZone("IST", 3600)) - dateStr := "2014-05-11T19:30:40Z" - - tests := map[string]struct { - input interface{} - wantOutput string - wantError error - }{ - "bool field": { - input: struct { - BoolTrue bool - BoolFalse bool - }{true, false}, - wantOutput: "BoolTrue = true\nBoolFalse = false\n", - }, - "int fields": { - input: struct { - Int int - Int8 int8 - Int16 int16 - Int32 int32 - Int64 int64 - }{1, 2, 3, 4, 5}, - wantOutput: "Int = 1\nInt8 = 2\nInt16 = 3\nInt32 = 4\nInt64 = 5\n", - }, - "uint fields": { - input: struct { - Uint uint - Uint8 uint8 - Uint16 uint16 - Uint32 uint32 - Uint64 uint64 - }{1, 2, 3, 4, 5}, - wantOutput: "Uint = 1\nUint8 = 2\nUint16 = 3\nUint32 = 4" + - "\nUint64 = 5\n", - }, - "float fields": { - input: struct { - Float32 float32 - Float64 float64 - }{1.5, 2.5}, - wantOutput: "Float32 = 1.5\nFloat64 = 2.5\n", - }, - "string field": { - input: struct{ String string }{"foo"}, - wantOutput: "String = \"foo\"\n", - }, - "string field and unexported field": { - input: struct { - String string - unexported int - }{"foo", 0}, - wantOutput: "String = \"foo\"\n", - }, - "datetime field in UTC": { - input: struct{ Date time.Time }{date}, - wantOutput: fmt.Sprintf("Date = %s\n", dateStr), - }, - "datetime field as primitive": { - // Using a map here to fail if isStructOrMap() returns true for - // time.Time. - input: map[string]interface{}{ - "Date": date, - "Int": 1, - }, - wantOutput: fmt.Sprintf("Date = %s\nInt = 1\n", dateStr), - }, - "array fields": { - input: struct { - IntArray0 [0]int - IntArray3 [3]int - }{[0]int{}, [3]int{1, 2, 3}}, - wantOutput: "IntArray0 = []\nIntArray3 = [1, 2, 3]\n", - }, - "slice fields": { - input: struct{ IntSliceNil, IntSlice0, IntSlice3 []int }{ - nil, []int{}, []int{1, 2, 3}, - }, - wantOutput: "IntSlice0 = []\nIntSlice3 = [1, 2, 3]\n", - }, - "datetime slices": { - input: struct{ DatetimeSlice []time.Time }{ - []time.Time{date, date}, - }, - wantOutput: fmt.Sprintf("DatetimeSlice = [%s, %s]\n", - dateStr, dateStr), - }, - "nested arrays and slices": { - input: struct { - SliceOfArrays [][2]int - ArrayOfSlices [2][]int - SliceOfArraysOfSlices [][2][]int - ArrayOfSlicesOfArrays [2][][2]int - SliceOfMixedArrays [][2]interface{} - ArrayOfMixedSlices [2][]interface{} - }{ - [][2]int{{1, 2}, {3, 4}}, - [2][]int{{1, 2}, {3, 4}}, - [][2][]int{ - { - {1, 2}, {3, 4}, - }, - { - {5, 6}, {7, 8}, - }, - }, - [2][][2]int{ - { - {1, 2}, {3, 4}, - }, - { - {5, 6}, {7, 8}, - }, - }, - [][2]interface{}{ - {1, 2}, {"a", "b"}, - }, - [2][]interface{}{ - {1, 2}, {"a", "b"}, - }, - }, - wantOutput: `SliceOfArrays = [[1, 2], [3, 4]] -ArrayOfSlices = [[1, 2], [3, 4]] -SliceOfArraysOfSlices = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]] -ArrayOfSlicesOfArrays = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]] -SliceOfMixedArrays = [[1, 2], ["a", "b"]] -ArrayOfMixedSlices = [[1, 2], ["a", "b"]] -`, - }, - "empty slice": { - input: struct{ Empty []interface{} }{[]interface{}{}}, - wantOutput: "Empty = []\n", - }, - "(error) slice with element type mismatch (string and integer)": { - input: struct{ Mixed []interface{} }{[]interface{}{1, "a"}}, - wantError: errArrayMixedElementTypes, - }, - "(error) slice with element type mismatch (integer and float)": { - input: struct{ Mixed []interface{} }{[]interface{}{1, 2.5}}, - wantError: errArrayMixedElementTypes, - }, - "slice with elems of differing Go types, same TOML types": { - input: struct { - MixedInts []interface{} - MixedFloats []interface{} - }{ - []interface{}{ - int(1), int8(2), int16(3), int32(4), int64(5), - uint(1), uint8(2), uint16(3), uint32(4), uint64(5), - }, - []interface{}{float32(1.5), float64(2.5)}, - }, - wantOutput: "MixedInts = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]\n" + - "MixedFloats = [1.5, 2.5]\n", - }, - "(error) slice w/ element type mismatch (one is nested array)": { - input: struct{ Mixed []interface{} }{ - []interface{}{1, []interface{}{2}}, - }, - wantError: errArrayMixedElementTypes, - }, - "(error) slice with 1 nil element": { - input: struct{ NilElement1 []interface{} }{[]interface{}{nil}}, - wantError: errArrayNilElement, - }, - "(error) slice with 1 nil element (and other non-nil elements)": { - input: struct{ NilElement []interface{} }{ - []interface{}{1, nil}, - }, - wantError: errArrayNilElement, - }, - "simple map": { - input: map[string]int{"a": 1, "b": 2}, - wantOutput: "a = 1\nb = 2\n", - }, - "map with interface{} value type": { - input: map[string]interface{}{"a": 1, "b": "c"}, - wantOutput: "a = 1\nb = \"c\"\n", - }, - "map with interface{} value type, some of which are structs": { - input: map[string]interface{}{ - "a": struct{ Int int }{2}, - "b": 1, - }, - wantOutput: "b = 1\n\n[a]\n Int = 2\n", - }, - "nested map": { - input: map[string]map[string]int{ - "a": {"b": 1}, - "c": {"d": 2}, - }, - wantOutput: "[a]\n b = 1\n\n[c]\n d = 2\n", - }, - "nested struct": { - input: struct{ Struct struct{ Int int } }{ - struct{ Int int }{1}, - }, - wantOutput: "[Struct]\n Int = 1\n", - }, - "nested struct and non-struct field": { - input: struct { - Struct struct{ Int int } - Bool bool - }{struct{ Int int }{1}, true}, - wantOutput: "Bool = true\n\n[Struct]\n Int = 1\n", - }, - "2 nested structs": { - input: struct{ Struct1, Struct2 struct{ Int int } }{ - struct{ Int int }{1}, struct{ Int int }{2}, - }, - wantOutput: "[Struct1]\n Int = 1\n\n[Struct2]\n Int = 2\n", - }, - "deeply nested structs": { - input: struct { - Struct1, Struct2 struct{ Struct3 *struct{ Int int } } - }{ - struct{ Struct3 *struct{ Int int } }{&struct{ Int int }{1}}, - struct{ Struct3 *struct{ Int int } }{nil}, - }, - wantOutput: "[Struct1]\n [Struct1.Struct3]\n Int = 1" + - "\n\n[Struct2]\n", - }, - "nested struct with nil struct elem": { - input: struct { - Struct struct{ Inner *struct{ Int int } } - }{ - struct{ Inner *struct{ Int int } }{nil}, - }, - wantOutput: "[Struct]\n", - }, - "nested struct with no fields": { - input: struct { - Struct struct{ Inner struct{} } - }{ - struct{ Inner struct{} }{struct{}{}}, - }, - wantOutput: "[Struct]\n [Struct.Inner]\n", - }, - "struct with tags": { - input: struct { - Struct struct { - Int int `toml:"_int"` - } `toml:"_struct"` - Bool bool `toml:"_bool"` - }{ - struct { - Int int `toml:"_int"` - }{1}, true, - }, - wantOutput: "_bool = true\n\n[_struct]\n _int = 1\n", - }, - "embedded struct": { - input: struct{ Embedded }{Embedded{1}}, - wantOutput: "_int = 1\n", - }, - "embedded *struct": { - input: struct{ *Embedded }{&Embedded{1}}, - wantOutput: "_int = 1\n", - }, - "nested embedded struct": { - input: struct { - Struct struct{ Embedded } `toml:"_struct"` - }{struct{ Embedded }{Embedded{1}}}, - wantOutput: "[_struct]\n _int = 1\n", - }, - "nested embedded *struct": { - input: struct { - Struct struct{ *Embedded } `toml:"_struct"` - }{struct{ *Embedded }{&Embedded{1}}}, - wantOutput: "[_struct]\n _int = 1\n", - }, - "array of tables": { - input: struct { - Structs []*struct{ Int int } `toml:"struct"` - }{ - []*struct{ Int int }{{1}, {3}}, - }, - wantOutput: "[[struct]]\n Int = 1\n\n[[struct]]\n Int = 3\n", - }, - "array of tables order": { - input: map[string]interface{}{ - "map": map[string]interface{}{ - "zero": 5, - "arr": []map[string]int{ - map[string]int{ - "friend": 5, - }, - }, - }, - }, - wantOutput: "[map]\n zero = 5\n\n [[map.arr]]\n friend = 5\n", - }, - "(error) top-level slice": { - input: []struct{ Int int }{{1}, {2}, {3}}, - wantError: errNoKey, - }, - "(error) slice of slice": { - input: struct { - Slices [][]struct{ Int int } - }{ - [][]struct{ Int int }{{{1}}, {{2}}, {{3}}}, - }, - wantError: errArrayNoTable, - }, - "(error) map no string key": { - input: map[int]string{1: ""}, - wantError: errNonString, - }, - "(error) anonymous non-struct": { - input: struct{ NonStruct }{5}, - wantError: errAnonNonStruct, - }, - "(error) empty key name": { - input: map[string]int{"": 1}, - wantError: errAnything, - }, - "(error) empty map name": { - input: map[string]interface{}{ - "": map[string]int{"v": 1}, - }, - wantError: errAnything, - }, - } - for label, test := range tests { - encodeExpected(t, label, test.input, test.wantOutput, test.wantError) - } -} - -func TestEncodeNestedTableArrays(t *testing.T) { - type song struct { - Name string `toml:"name"` - } - type album struct { - Name string `toml:"name"` - Songs []song `toml:"songs"` - } - type springsteen struct { - Albums []album `toml:"albums"` - } - value := springsteen{ - []album{ - {"Born to Run", - []song{{"Jungleland"}, {"Meeting Across the River"}}}, - {"Born in the USA", - []song{{"Glory Days"}, {"Dancing in the Dark"}}}, - }, - } - expected := `[[albums]] - name = "Born to Run" - - [[albums.songs]] - name = "Jungleland" - - [[albums.songs]] - name = "Meeting Across the River" - -[[albums]] - name = "Born in the USA" - - [[albums.songs]] - name = "Glory Days" - - [[albums.songs]] - name = "Dancing in the Dark" -` - encodeExpected(t, "nested table arrays", value, expected, nil) -} - -func TestEncodeArrayHashWithNormalHashOrder(t *testing.T) { - type Alpha struct { - V int - } - type Beta struct { - V int - } - type Conf struct { - V int - A Alpha - B []Beta - } - - val := Conf{ - V: 1, - A: Alpha{2}, - B: []Beta{{3}}, - } - expected := "V = 1\n\n[A]\n V = 2\n\n[[B]]\n V = 3\n" - encodeExpected(t, "array hash with normal hash order", val, expected, nil) -} - -func encodeExpected( - t *testing.T, label string, val interface{}, wantStr string, wantErr error, -) { - var buf bytes.Buffer - enc := NewEncoder(&buf) - err := enc.Encode(val) - if err != wantErr { - if wantErr != nil { - if wantErr == errAnything && err != nil { - return - } - t.Errorf("%s: want Encode error %v, got %v", label, wantErr, err) - } else { - t.Errorf("%s: Encode failed: %s", label, err) - } - } - if err != nil { - return - } - if got := buf.String(); wantStr != got { - t.Errorf("%s: want\n-----\n%q\n-----\nbut got\n-----\n%q\n-----\n", - label, wantStr, got) - } -} - -func ExampleEncoder_Encode() { - date, _ := time.Parse(time.RFC822, "14 Mar 10 18:00 UTC") - var config = map[string]interface{}{ - "date": date, - "counts": []int{1, 1, 2, 3, 5, 8}, - "hash": map[string]string{ - "key1": "val1", - "key2": "val2", - }, - } - buf := new(bytes.Buffer) - if err := NewEncoder(buf).Encode(config); err != nil { - log.Fatal(err) - } - fmt.Println(buf.String()) - - // Output: - // counts = [1, 1, 2, 3, 5, 8] - // date = 2010-03-14T18:00:00Z - // - // [hash] - // key1 = "val1" - // key2 = "val2" -} diff --git a/vendor/github.com/BurntSushi/toml/encoding_types.go b/vendor/github.com/BurntSushi/toml/encoding_types.go deleted file mode 100644 index 140c44c..0000000 --- a/vendor/github.com/BurntSushi/toml/encoding_types.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build go1.2 - -package toml - -// In order to support Go 1.1, we define our own TextMarshaler and -// TextUnmarshaler types. For Go 1.2+, we just alias them with the -// standard library interfaces. - -import ( - "encoding" -) - -// TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here -// so that Go 1.1 can be supported. -type TextMarshaler encoding.TextMarshaler - -// TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined here -// so that Go 1.1 can be supported. -type TextUnmarshaler encoding.TextUnmarshaler diff --git a/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go b/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go deleted file mode 100644 index fb285e7..0000000 --- a/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go +++ /dev/null @@ -1,18 +0,0 @@ -// +build !go1.2 - -package toml - -// These interfaces were introduced in Go 1.2, so we add them manually when -// compiling for Go 1.1. - -// TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here -// so that Go 1.1 can be supported. -type TextMarshaler interface { - MarshalText() (text []byte, err error) -} - -// TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined here -// so that Go 1.1 can be supported. -type TextUnmarshaler interface { - UnmarshalText(text []byte) error -} diff --git a/vendor/github.com/BurntSushi/toml/lex.go b/vendor/github.com/BurntSushi/toml/lex.go deleted file mode 100644 index 3821fa2..0000000 --- a/vendor/github.com/BurntSushi/toml/lex.go +++ /dev/null @@ -1,734 +0,0 @@ -package toml - -import ( - "fmt" - "strings" - "unicode/utf8" -) - -type itemType int - -const ( - itemError itemType = iota - itemNIL // used in the parser to indicate no type - itemEOF - itemText - itemString - itemBool - itemInteger - itemFloat - itemDatetime - itemArray // the start of an array - itemArrayEnd - itemTableStart - itemTableEnd - itemArrayTableStart - itemArrayTableEnd - itemKeyStart - itemCommentStart -) - -const ( - eof = 0 - tableStart = '[' - tableEnd = ']' - arrayTableStart = '[' - arrayTableEnd = ']' - tableSep = '.' - keySep = '=' - arrayStart = '[' - arrayEnd = ']' - arrayValTerm = ',' - commentStart = '#' - stringStart = '"' - stringEnd = '"' -) - -type stateFn func(lx *lexer) stateFn - -type lexer struct { - input string - start int - pos int - width int - line int - state stateFn - items chan item - - // A stack of state functions used to maintain context. - // The idea is to reuse parts of the state machine in various places. - // For example, values can appear at the top level or within arbitrarily - // nested arrays. The last state on the stack is used after a value has - // been lexed. Similarly for comments. - stack []stateFn -} - -type item struct { - typ itemType - val string - line int -} - -func (lx *lexer) nextItem() item { - for { - select { - case item := <-lx.items: - return item - default: - lx.state = lx.state(lx) - } - } -} - -func lex(input string) *lexer { - lx := &lexer{ - input: input + "\n", - state: lexTop, - line: 1, - items: make(chan item, 10), - stack: make([]stateFn, 0, 10), - } - return lx -} - -func (lx *lexer) push(state stateFn) { - lx.stack = append(lx.stack, state) -} - -func (lx *lexer) pop() stateFn { - if len(lx.stack) == 0 { - return lx.errorf("BUG in lexer: no states to pop.") - } - last := lx.stack[len(lx.stack)-1] - lx.stack = lx.stack[0 : len(lx.stack)-1] - return last -} - -func (lx *lexer) current() string { - return lx.input[lx.start:lx.pos] -} - -func (lx *lexer) emit(typ itemType) { - lx.items <- item{typ, lx.current(), lx.line} - lx.start = lx.pos -} - -func (lx *lexer) emitTrim(typ itemType) { - lx.items <- item{typ, strings.TrimSpace(lx.current()), lx.line} - lx.start = lx.pos -} - -func (lx *lexer) next() (r rune) { - if lx.pos >= len(lx.input) { - lx.width = 0 - return eof - } - - if lx.input[lx.pos] == '\n' { - lx.line++ - } - r, lx.width = utf8.DecodeRuneInString(lx.input[lx.pos:]) - lx.pos += lx.width - return r -} - -// ignore skips over the pending input before this point. -func (lx *lexer) ignore() { - lx.start = lx.pos -} - -// backup steps back one rune. Can be called only once per call of next. -func (lx *lexer) backup() { - lx.pos -= lx.width - if lx.pos < len(lx.input) && lx.input[lx.pos] == '\n' { - lx.line-- - } -} - -// accept consumes the next rune if it's equal to `valid`. -func (lx *lexer) accept(valid rune) bool { - if lx.next() == valid { - return true - } - lx.backup() - return false -} - -// peek returns but does not consume the next rune in the input. -func (lx *lexer) peek() rune { - r := lx.next() - lx.backup() - return r -} - -// errorf stops all lexing by emitting an error and returning `nil`. -// Note that any value that is a character is escaped if it's a special -// character (new lines, tabs, etc.). -func (lx *lexer) errorf(format string, values ...interface{}) stateFn { - lx.items <- item{ - itemError, - fmt.Sprintf(format, values...), - lx.line, - } - return nil -} - -// lexTop consumes elements at the top level of TOML data. -func lexTop(lx *lexer) stateFn { - r := lx.next() - if isWhitespace(r) || isNL(r) { - return lexSkip(lx, lexTop) - } - - switch r { - case commentStart: - lx.push(lexTop) - return lexCommentStart - case tableStart: - return lexTableStart - case eof: - if lx.pos > lx.start { - return lx.errorf("Unexpected EOF.") - } - lx.emit(itemEOF) - return nil - } - - // At this point, the only valid item can be a key, so we back up - // and let the key lexer do the rest. - lx.backup() - lx.push(lexTopEnd) - return lexKeyStart -} - -// lexTopEnd is entered whenever a top-level item has been consumed. (A value -// or a table.) It must see only whitespace, and will turn back to lexTop -// upon a new line. If it sees EOF, it will quit the lexer successfully. -func lexTopEnd(lx *lexer) stateFn { - r := lx.next() - switch { - case r == commentStart: - // a comment will read to a new line for us. - lx.push(lexTop) - return lexCommentStart - case isWhitespace(r): - return lexTopEnd - case isNL(r): - lx.ignore() - return lexTop - case r == eof: - lx.ignore() - return lexTop - } - return lx.errorf("Expected a top-level item to end with a new line, "+ - "comment or EOF, but got %q instead.", r) -} - -// lexTable lexes the beginning of a table. Namely, it makes sure that -// it starts with a character other than '.' and ']'. -// It assumes that '[' has already been consumed. -// It also handles the case that this is an item in an array of tables. -// e.g., '[[name]]'. -func lexTableStart(lx *lexer) stateFn { - if lx.peek() == arrayTableStart { - lx.next() - lx.emit(itemArrayTableStart) - lx.push(lexArrayTableEnd) - } else { - lx.emit(itemTableStart) - lx.push(lexTableEnd) - } - return lexTableNameStart -} - -func lexTableEnd(lx *lexer) stateFn { - lx.emit(itemTableEnd) - return lexTopEnd -} - -func lexArrayTableEnd(lx *lexer) stateFn { - if r := lx.next(); r != arrayTableEnd { - return lx.errorf("Expected end of table array name delimiter %q, "+ - "but got %q instead.", arrayTableEnd, r) - } - lx.emit(itemArrayTableEnd) - return lexTopEnd -} - -func lexTableNameStart(lx *lexer) stateFn { - switch lx.next() { - case tableEnd, eof: - return lx.errorf("Unexpected end of table. (Tables cannot " + - "be empty.)") - case tableSep: - return lx.errorf("Unexpected table separator. (Tables cannot " + - "be empty.)") - } - return lexTableName -} - -// lexTableName lexes the name of a table. It assumes that at least one -// valid character for the table has already been read. -func lexTableName(lx *lexer) stateFn { - switch lx.peek() { - case eof: - return lx.errorf("Unexpected end of table name %q.", lx.current()) - case tableStart: - return lx.errorf("Table names cannot contain %q or %q.", - tableStart, tableEnd) - case tableEnd: - lx.emit(itemText) - lx.next() - return lx.pop() - case tableSep: - lx.emit(itemText) - lx.next() - lx.ignore() - return lexTableNameStart - } - lx.next() - return lexTableName -} - -// lexKeyStart consumes a key name up until the first non-whitespace character. -// lexKeyStart will ignore whitespace. -func lexKeyStart(lx *lexer) stateFn { - r := lx.peek() - switch { - case r == keySep: - return lx.errorf("Unexpected key separator %q.", keySep) - case isWhitespace(r) || isNL(r): - lx.next() - return lexSkip(lx, lexKeyStart) - } - - lx.ignore() - lx.emit(itemKeyStart) - lx.next() - return lexKey -} - -// lexKey consumes the text of a key. Assumes that the first character (which -// is not whitespace) has already been consumed. -func lexKey(lx *lexer) stateFn { - r := lx.peek() - - // Keys cannot contain a '#' character. - if r == commentStart { - return lx.errorf("Key cannot contain a '#' character.") - } - - // XXX: Possible divergence from spec? - // "Keys start with the first non-whitespace character and end with the - // last non-whitespace character before the equals sign." - // Note here that whitespace is either a tab or a space. - // But we'll call it quits if we see a new line too. - if isNL(r) { - lx.emitTrim(itemText) - return lexKeyEnd - } - - // Let's also call it quits if we see an equals sign. - if r == keySep { - lx.emitTrim(itemText) - return lexKeyEnd - } - - lx.next() - return lexKey -} - -// lexKeyEnd consumes the end of a key (up to the key separator). -// Assumes that any whitespace after a key has been consumed. -func lexKeyEnd(lx *lexer) stateFn { - r := lx.next() - if r == keySep { - return lexSkip(lx, lexValue) - } - return lx.errorf("Expected key separator %q, but got %q instead.", - keySep, r) -} - -// lexValue starts the consumption of a value anywhere a value is expected. -// lexValue will ignore whitespace. -// After a value is lexed, the last state on the next is popped and returned. -func lexValue(lx *lexer) stateFn { - // We allow whitespace to precede a value, but NOT new lines. - // In array syntax, the array states are responsible for ignoring new lines. - r := lx.next() - if isWhitespace(r) { - return lexSkip(lx, lexValue) - } - - switch { - case r == arrayStart: - lx.ignore() - lx.emit(itemArray) - return lexArrayValue - case r == stringStart: - lx.ignore() // ignore the '"' - return lexString - case r == 't': - return lexTrue - case r == 'f': - return lexFalse - case r == '-': - return lexNumberStart - case isDigit(r): - lx.backup() // avoid an extra state and use the same as above - return lexNumberOrDateStart - case r == '.': // special error case, be kind to users - return lx.errorf("Floats must start with a digit, not '.'.") - } - return lx.errorf("Expected value but found %q instead.", r) -} - -// lexArrayValue consumes one value in an array. It assumes that '[' or ',' -// have already been consumed. All whitespace and new lines are ignored. -func lexArrayValue(lx *lexer) stateFn { - r := lx.next() - switch { - case isWhitespace(r) || isNL(r): - return lexSkip(lx, lexArrayValue) - case r == commentStart: - lx.push(lexArrayValue) - return lexCommentStart - case r == arrayValTerm: - return lx.errorf("Unexpected array value terminator %q.", - arrayValTerm) - case r == arrayEnd: - return lexArrayEnd - } - - lx.backup() - lx.push(lexArrayValueEnd) - return lexValue -} - -// lexArrayValueEnd consumes the cruft between values of an array. Namely, -// it ignores whitespace and expects either a ',' or a ']'. -func lexArrayValueEnd(lx *lexer) stateFn { - r := lx.next() - switch { - case isWhitespace(r) || isNL(r): - return lexSkip(lx, lexArrayValueEnd) - case r == commentStart: - lx.push(lexArrayValueEnd) - return lexCommentStart - case r == arrayValTerm: - lx.ignore() - return lexArrayValue // move on to the next value - case r == arrayEnd: - return lexArrayEnd - } - return lx.errorf("Expected an array value terminator %q or an array "+ - "terminator %q, but got %q instead.", arrayValTerm, arrayEnd, r) -} - -// lexArrayEnd finishes the lexing of an array. It assumes that a ']' has -// just been consumed. -func lexArrayEnd(lx *lexer) stateFn { - lx.ignore() - lx.emit(itemArrayEnd) - return lx.pop() -} - -// lexString consumes the inner contents of a string. It assumes that the -// beginning '"' has already been consumed and ignored. -func lexString(lx *lexer) stateFn { - r := lx.next() - switch { - case isNL(r): - return lx.errorf("Strings cannot contain new lines.") - case r == '\\': - return lexStringEscape - case r == stringEnd: - lx.backup() - lx.emit(itemString) - lx.next() - lx.ignore() - return lx.pop() - } - return lexString -} - -// lexStringEscape consumes an escaped character. It assumes that the preceding -// '\\' has already been consumed. -func lexStringEscape(lx *lexer) stateFn { - r := lx.next() - switch r { - case 'b': - fallthrough - case 't': - fallthrough - case 'n': - fallthrough - case 'f': - fallthrough - case 'r': - fallthrough - case '"': - fallthrough - case '/': - fallthrough - case '\\': - return lexString - case 'u': - return lexStringUnicode - } - return lx.errorf("Invalid escape character %q. Only the following "+ - "escape characters are allowed: "+ - "\\b, \\t, \\n, \\f, \\r, \\\", \\/, \\\\, and \\uXXXX.", r) -} - -// lexStringBinary consumes two hexadecimal digits following '\x'. It assumes -// that the '\x' has already been consumed. -func lexStringUnicode(lx *lexer) stateFn { - var r rune - - for i := 0; i < 4; i++ { - r = lx.next() - if !isHexadecimal(r) { - return lx.errorf("Expected four hexadecimal digits after '\\x', "+ - "but got '%s' instead.", lx.current()) - } - } - return lexString -} - -// lexNumberOrDateStart consumes either a (positive) integer, float or datetime. -// It assumes that NO negative sign has been consumed. -func lexNumberOrDateStart(lx *lexer) stateFn { - r := lx.next() - if !isDigit(r) { - if r == '.' { - return lx.errorf("Floats must start with a digit, not '.'.") - } else { - return lx.errorf("Expected a digit but got %q.", r) - } - } - return lexNumberOrDate -} - -// lexNumberOrDate consumes either a (positive) integer, float or datetime. -func lexNumberOrDate(lx *lexer) stateFn { - r := lx.next() - switch { - case r == '-': - if lx.pos-lx.start != 5 { - return lx.errorf("All ISO8601 dates must be in full Zulu form.") - } - return lexDateAfterYear - case isDigit(r): - return lexNumberOrDate - case r == '.': - return lexFloatStart - } - - lx.backup() - lx.emit(itemInteger) - return lx.pop() -} - -// lexDateAfterYear consumes a full Zulu Datetime in ISO8601 format. -// It assumes that "YYYY-" has already been consumed. -func lexDateAfterYear(lx *lexer) stateFn { - formats := []rune{ - // digits are '0'. - // everything else is direct equality. - '0', '0', '-', '0', '0', - 'T', - '0', '0', ':', '0', '0', ':', '0', '0', - 'Z', - } - for _, f := range formats { - r := lx.next() - if f == '0' { - if !isDigit(r) { - return lx.errorf("Expected digit in ISO8601 datetime, "+ - "but found %q instead.", r) - } - } else if f != r { - return lx.errorf("Expected %q in ISO8601 datetime, "+ - "but found %q instead.", f, r) - } - } - lx.emit(itemDatetime) - return lx.pop() -} - -// lexNumberStart consumes either an integer or a float. It assumes that a -// negative sign has already been read, but that *no* digits have been consumed. -// lexNumberStart will move to the appropriate integer or float states. -func lexNumberStart(lx *lexer) stateFn { - // we MUST see a digit. Even floats have to start with a digit. - r := lx.next() - if !isDigit(r) { - if r == '.' { - return lx.errorf("Floats must start with a digit, not '.'.") - } else { - return lx.errorf("Expected a digit but got %q.", r) - } - } - return lexNumber -} - -// lexNumber consumes an integer or a float after seeing the first digit. -func lexNumber(lx *lexer) stateFn { - r := lx.next() - switch { - case isDigit(r): - return lexNumber - case r == '.': - return lexFloatStart - } - - lx.backup() - lx.emit(itemInteger) - return lx.pop() -} - -// lexFloatStart starts the consumption of digits of a float after a '.'. -// Namely, at least one digit is required. -func lexFloatStart(lx *lexer) stateFn { - r := lx.next() - if !isDigit(r) { - return lx.errorf("Floats must have a digit after the '.', but got "+ - "%q instead.", r) - } - return lexFloat -} - -// lexFloat consumes the digits of a float after a '.'. -// Assumes that one digit has been consumed after a '.' already. -func lexFloat(lx *lexer) stateFn { - r := lx.next() - if isDigit(r) { - return lexFloat - } - - lx.backup() - lx.emit(itemFloat) - return lx.pop() -} - -// lexConst consumes the s[1:] in s. It assumes that s[0] has already been -// consumed. -func lexConst(lx *lexer, s string) stateFn { - for i := range s[1:] { - if r := lx.next(); r != rune(s[i+1]) { - return lx.errorf("Expected %q, but found %q instead.", s[:i+1], - s[:i]+string(r)) - } - } - return nil -} - -// lexTrue consumes the "rue" in "true". It assumes that 't' has already -// been consumed. -func lexTrue(lx *lexer) stateFn { - if fn := lexConst(lx, "true"); fn != nil { - return fn - } - lx.emit(itemBool) - return lx.pop() -} - -// lexFalse consumes the "alse" in "false". It assumes that 'f' has already -// been consumed. -func lexFalse(lx *lexer) stateFn { - if fn := lexConst(lx, "false"); fn != nil { - return fn - } - lx.emit(itemBool) - return lx.pop() -} - -// lexCommentStart begins the lexing of a comment. It will emit -// itemCommentStart and consume no characters, passing control to lexComment. -func lexCommentStart(lx *lexer) stateFn { - lx.ignore() - lx.emit(itemCommentStart) - return lexComment -} - -// lexComment lexes an entire comment. It assumes that '#' has been consumed. -// It will consume *up to* the first new line character, and pass control -// back to the last state on the stack. -func lexComment(lx *lexer) stateFn { - r := lx.peek() - if isNL(r) || r == eof { - lx.emit(itemText) - return lx.pop() - } - lx.next() - return lexComment -} - -// lexSkip ignores all slurped input and moves on to the next state. -func lexSkip(lx *lexer, nextState stateFn) stateFn { - return func(lx *lexer) stateFn { - lx.ignore() - return nextState - } -} - -// isWhitespace returns true if `r` is a whitespace character according -// to the spec. -func isWhitespace(r rune) bool { - return r == '\t' || r == ' ' -} - -func isNL(r rune) bool { - return r == '\n' || r == '\r' -} - -func isDigit(r rune) bool { - return r >= '0' && r <= '9' -} - -func isHexadecimal(r rune) bool { - return (r >= '0' && r <= '9') || - (r >= 'a' && r <= 'f') || - (r >= 'A' && r <= 'F') -} - -func (itype itemType) String() string { - switch itype { - case itemError: - return "Error" - case itemNIL: - return "NIL" - case itemEOF: - return "EOF" - case itemText: - return "Text" - case itemString: - return "String" - case itemBool: - return "Bool" - case itemInteger: - return "Integer" - case itemFloat: - return "Float" - case itemDatetime: - return "DateTime" - case itemTableStart: - return "TableStart" - case itemTableEnd: - return "TableEnd" - case itemKeyStart: - return "KeyStart" - case itemArray: - return "Array" - case itemArrayEnd: - return "ArrayEnd" - case itemCommentStart: - return "CommentStart" - } - panic(fmt.Sprintf("BUG: Unknown type '%d'.", int(itype))) -} - -func (item item) String() string { - return fmt.Sprintf("(%s, %s)", item.typ.String(), item.val) -} diff --git a/vendor/github.com/BurntSushi/toml/parse.go b/vendor/github.com/BurntSushi/toml/parse.go deleted file mode 100644 index 43afe3c..0000000 --- a/vendor/github.com/BurntSushi/toml/parse.go +++ /dev/null @@ -1,417 +0,0 @@ -package toml - -import ( - "fmt" - "log" - "strconv" - "strings" - "time" - "unicode/utf8" -) - -type parser struct { - mapping map[string]interface{} - types map[string]tomlType - lx *lexer - - // A list of keys in the order that they appear in the TOML data. - ordered []Key - - // the full key for the current hash in scope - context Key - - // the base key name for everything except hashes - currentKey string - - // rough approximation of line number - approxLine int - - // A map of 'key.group.names' to whether they were created implicitly. - implicits map[string]bool -} - -type parseError string - -func (pe parseError) Error() string { - return string(pe) -} - -func parse(data string) (p *parser, err error) { - defer func() { - if r := recover(); r != nil { - var ok bool - if err, ok = r.(parseError); ok { - return - } - panic(r) - } - }() - - p = &parser{ - mapping: make(map[string]interface{}), - types: make(map[string]tomlType), - lx: lex(data), - ordered: make([]Key, 0), - implicits: make(map[string]bool), - } - for { - item := p.next() - if item.typ == itemEOF { - break - } - p.topLevel(item) - } - - return p, nil -} - -func (p *parser) panicf(format string, v ...interface{}) { - msg := fmt.Sprintf("Near line %d, key '%s': %s", - p.approxLine, p.current(), fmt.Sprintf(format, v...)) - panic(parseError(msg)) -} - -func (p *parser) next() item { - it := p.lx.nextItem() - if it.typ == itemError { - p.panicf("Near line %d: %s", it.line, it.val) - } - return it -} - -func (p *parser) bug(format string, v ...interface{}) { - log.Fatalf("BUG: %s\n\n", fmt.Sprintf(format, v...)) -} - -func (p *parser) expect(typ itemType) item { - it := p.next() - p.assertEqual(typ, it.typ) - return it -} - -func (p *parser) assertEqual(expected, got itemType) { - if expected != got { - p.bug("Expected '%s' but got '%s'.", expected, got) - } -} - -func (p *parser) topLevel(item item) { - switch item.typ { - case itemCommentStart: - p.approxLine = item.line - p.expect(itemText) - case itemTableStart: - kg := p.expect(itemText) - p.approxLine = kg.line - - key := make(Key, 0) - for ; kg.typ == itemText; kg = p.next() { - key = append(key, kg.val) - } - p.assertEqual(itemTableEnd, kg.typ) - - p.establishContext(key, false) - p.setType("", tomlHash) - p.ordered = append(p.ordered, key) - case itemArrayTableStart: - kg := p.expect(itemText) - p.approxLine = kg.line - - key := make(Key, 0) - for ; kg.typ == itemText; kg = p.next() { - key = append(key, kg.val) - } - p.assertEqual(itemArrayTableEnd, kg.typ) - - p.establishContext(key, true) - p.setType("", tomlArrayHash) - p.ordered = append(p.ordered, key) - case itemKeyStart: - kname := p.expect(itemText) - p.currentKey = kname.val - p.approxLine = kname.line - - val, typ := p.value(p.next()) - p.setValue(p.currentKey, val) - p.setType(p.currentKey, typ) - p.ordered = append(p.ordered, p.context.add(p.currentKey)) - - p.currentKey = "" - default: - p.bug("Unexpected type at top level: %s", item.typ) - } -} - -// value translates an expected value from the lexer into a Go value wrapped -// as an empty interface. -func (p *parser) value(it item) (interface{}, tomlType) { - switch it.typ { - case itemString: - return p.replaceUnicode(replaceEscapes(it.val)), p.typeOfPrimitive(it) - case itemBool: - switch it.val { - case "true": - return true, p.typeOfPrimitive(it) - case "false": - return false, p.typeOfPrimitive(it) - } - p.bug("Expected boolean value, but got '%s'.", it.val) - case itemInteger: - num, err := strconv.ParseInt(it.val, 10, 64) - if err != nil { - // See comment below for floats describing why we make a - // distinction between a bug and a user error. - if e, ok := err.(*strconv.NumError); ok && - e.Err == strconv.ErrRange { - - p.panicf("Integer '%s' is out of the range of 64-bit "+ - "signed integers.", it.val) - } else { - p.bug("Expected integer value, but got '%s'.", it.val) - } - } - return num, p.typeOfPrimitive(it) - case itemFloat: - num, err := strconv.ParseFloat(it.val, 64) - if err != nil { - // Distinguish float values. Normally, it'd be a bug if the lexer - // provides an invalid float, but it's possible that the float is - // out of range of valid values (which the lexer cannot determine). - // So mark the former as a bug but the latter as a legitimate user - // error. - // - // This is also true for integers. - if e, ok := err.(*strconv.NumError); ok && - e.Err == strconv.ErrRange { - - p.panicf("Float '%s' is out of the range of 64-bit "+ - "IEEE-754 floating-point numbers.", it.val) - } else { - p.bug("Expected float value, but got '%s'.", it.val) - } - } - return num, p.typeOfPrimitive(it) - case itemDatetime: - t, err := time.Parse("2006-01-02T15:04:05Z", it.val) - if err != nil { - p.bug("Expected Zulu formatted DateTime, but got '%s'.", it.val) - } - return t, p.typeOfPrimitive(it) - case itemArray: - array := make([]interface{}, 0) - types := make([]tomlType, 0) - - for it = p.next(); it.typ != itemArrayEnd; it = p.next() { - if it.typ == itemCommentStart { - p.expect(itemText) - continue - } - - val, typ := p.value(it) - array = append(array, val) - types = append(types, typ) - } - return array, p.typeOfArray(types) - } - p.bug("Unexpected value type: %s", it.typ) - panic("unreachable") -} - -// establishContext sets the current context of the parser, -// where the context is either a hash or an array of hashes. Which one is -// set depends on the value of the `array` parameter. -// -// Establishing the context also makes sure that the key isn't a duplicate, and -// will create implicit hashes automatically. -func (p *parser) establishContext(key Key, array bool) { - var ok bool - - // Always start at the top level and drill down for our context. - hashContext := p.mapping - keyContext := make(Key, 0) - - // We only need implicit hashes for key[0:-1] - for _, k := range key[0 : len(key)-1] { - _, ok = hashContext[k] - keyContext = append(keyContext, k) - - // No key? Make an implicit hash and move on. - if !ok { - p.addImplicit(keyContext) - hashContext[k] = make(map[string]interface{}) - } - - // If the hash context is actually an array of tables, then set - // the hash context to the last element in that array. - // - // Otherwise, it better be a table, since this MUST be a key group (by - // virtue of it not being the last element in a key). - switch t := hashContext[k].(type) { - case []map[string]interface{}: - hashContext = t[len(t)-1] - case map[string]interface{}: - hashContext = t - default: - p.panicf("Key '%s' was already created as a hash.", keyContext) - } - } - - p.context = keyContext - if array { - // If this is the first element for this array, then allocate a new - // list of tables for it. - k := key[len(key)-1] - if _, ok := hashContext[k]; !ok { - hashContext[k] = make([]map[string]interface{}, 0, 5) - } - - // Add a new table. But make sure the key hasn't already been used - // for something else. - if hash, ok := hashContext[k].([]map[string]interface{}); ok { - hashContext[k] = append(hash, make(map[string]interface{})) - } else { - p.panicf("Key '%s' was already created and cannot be used as "+ - "an array.", keyContext) - } - } else { - p.setValue(key[len(key)-1], make(map[string]interface{})) - } - p.context = append(p.context, key[len(key)-1]) -} - -// setValue sets the given key to the given value in the current context. -// It will make sure that the key hasn't already been defined, account for -// implicit key groups. -func (p *parser) setValue(key string, value interface{}) { - var tmpHash interface{} - var ok bool - - hash := p.mapping - keyContext := make(Key, 0) - for _, k := range p.context { - keyContext = append(keyContext, k) - if tmpHash, ok = hash[k]; !ok { - p.bug("Context for key '%s' has not been established.", keyContext) - } - switch t := tmpHash.(type) { - case []map[string]interface{}: - // The context is a table of hashes. Pick the most recent table - // defined as the current hash. - hash = t[len(t)-1] - case map[string]interface{}: - hash = t - default: - p.bug("Expected hash to have type 'map[string]interface{}', but "+ - "it has '%T' instead.", tmpHash) - } - } - keyContext = append(keyContext, key) - - if _, ok := hash[key]; ok { - // Typically, if the given key has already been set, then we have - // to raise an error since duplicate keys are disallowed. However, - // it's possible that a key was previously defined implicitly. In this - // case, it is allowed to be redefined concretely. (See the - // `tests/valid/implicit-and-explicit-after.toml` test in `toml-test`.) - // - // But we have to make sure to stop marking it as an implicit. (So that - // another redefinition provokes an error.) - // - // Note that since it has already been defined (as a hash), we don't - // want to overwrite it. So our business is done. - if p.isImplicit(keyContext) { - p.removeImplicit(keyContext) - return - } - - // Otherwise, we have a concrete key trying to override a previous - // key, which is *always* wrong. - p.panicf("Key '%s' has already been defined.", keyContext) - } - hash[key] = value -} - -// setType sets the type of a particular value at a given key. -// It should be called immediately AFTER setValue. -// -// Note that if `key` is empty, then the type given will be applied to the -// current context (which is either a table or an array of tables). -func (p *parser) setType(key string, typ tomlType) { - keyContext := make(Key, 0, len(p.context)+1) - for _, k := range p.context { - keyContext = append(keyContext, k) - } - if len(key) > 0 { // allow type setting for hashes - keyContext = append(keyContext, key) - } - p.types[keyContext.String()] = typ -} - -// addImplicit sets the given Key as having been created implicitly. -func (p *parser) addImplicit(key Key) { - p.implicits[key.String()] = true -} - -// removeImplicit stops tagging the given key as having been implicitly created. -func (p *parser) removeImplicit(key Key) { - p.implicits[key.String()] = false -} - -// isImplicit returns true if the key group pointed to by the key was created -// implicitly. -func (p *parser) isImplicit(key Key) bool { - return p.implicits[key.String()] -} - -// current returns the full key name of the current context. -func (p *parser) current() string { - if len(p.currentKey) == 0 { - return p.context.String() - } - if len(p.context) == 0 { - return p.currentKey - } - return fmt.Sprintf("%s.%s", p.context, p.currentKey) -} - -func replaceEscapes(s string) string { - return strings.NewReplacer( - "\\b", "\u0008", - "\\t", "\u0009", - "\\n", "\u000A", - "\\f", "\u000C", - "\\r", "\u000D", - "\\\"", "\u0022", - "\\/", "\u002F", - "\\\\", "\u005C", - ).Replace(s) -} - -func (p *parser) replaceUnicode(s string) string { - indexEsc := func() int { - return strings.Index(s, "\\u") - } - for i := indexEsc(); i != -1; i = indexEsc() { - asciiBytes := s[i+2 : i+6] - s = strings.Replace(s, s[i:i+6], p.asciiEscapeToUnicode(asciiBytes), -1) - } - return s -} - -func (p *parser) asciiEscapeToUnicode(s string) string { - hex, err := strconv.ParseUint(strings.ToLower(s), 16, 32) - if err != nil { - p.bug("Could not parse '%s' as a hexadecimal number, but the "+ - "lexer claims it's OK: %s", s, err) - } - - // BUG(burntsushi) - // I honestly don't understand how this works. I can't seem - // to find a way to make this fail. I figured this would fail on invalid - // UTF-8 characters like U+DCFF, but it doesn't. - r := string(rune(hex)) - if !utf8.ValidString(r) { - p.panicf("Escaped character '\\u%s' is not valid UTF-8.", s) - } - return string(r) -} diff --git a/vendor/github.com/BurntSushi/toml/session.vim b/vendor/github.com/BurntSushi/toml/session.vim deleted file mode 100644 index 562164b..0000000 --- a/vendor/github.com/BurntSushi/toml/session.vim +++ /dev/null @@ -1 +0,0 @@ -au BufWritePost *.go silent!make tags > /dev/null 2>&1 diff --git a/vendor/github.com/BurntSushi/toml/type_check.go b/vendor/github.com/BurntSushi/toml/type_check.go deleted file mode 100644 index 79dac6b..0000000 --- a/vendor/github.com/BurntSushi/toml/type_check.go +++ /dev/null @@ -1,85 +0,0 @@ -package toml - -// tomlType represents any Go type that corresponds to a TOML type. -// While the first draft of the TOML spec has a simplistic type system that -// probably doesn't need this level of sophistication, we seem to be militating -// toward adding real composite types. -type tomlType interface { - typeString() string -} - -// typeEqual accepts any two types and returns true if they are equal. -func typeEqual(t1, t2 tomlType) bool { - if t1 == nil || t2 == nil { - return false - } - return t1.typeString() == t2.typeString() -} - -func typeIsHash(t tomlType) bool { - return typeEqual(t, tomlHash) || typeEqual(t, tomlArrayHash) -} - -type tomlBaseType string - -func (btype tomlBaseType) typeString() string { - return string(btype) -} - -func (btype tomlBaseType) String() string { - return btype.typeString() -} - -var ( - tomlInteger tomlBaseType = "Integer" - tomlFloat tomlBaseType = "Float" - tomlDatetime tomlBaseType = "Datetime" - tomlString tomlBaseType = "String" - tomlBool tomlBaseType = "Bool" - tomlArray tomlBaseType = "Array" - tomlHash tomlBaseType = "Hash" - tomlArrayHash tomlBaseType = "ArrayHash" -) - -// typeOfPrimitive returns a tomlType of any primitive value in TOML. -// Primitive values are: Integer, Float, Datetime, String and Bool. -// -// Passing a lexer item other than the following will cause a BUG message -// to occur: itemString, itemBool, itemInteger, itemFloat, itemDatetime. -func (p *parser) typeOfPrimitive(lexItem item) tomlType { - switch lexItem.typ { - case itemInteger: - return tomlInteger - case itemFloat: - return tomlFloat - case itemDatetime: - return tomlDatetime - case itemString: - return tomlString - case itemBool: - return tomlBool - } - p.bug("Cannot infer primitive type of lex item '%s'.", lexItem) - panic("unreachable") -} - -// typeOfArray returns a tomlType for an array given a list of types of its -// values. -// -// In the current spec, if an array is homogeneous, then its type is always -// "Array". If the array is not homogeneous, an error is generated. -func (p *parser) typeOfArray(types []tomlType) tomlType { - // Empty arrays are cool. - if len(types) == 0 { - return tomlArray - } - - theType := types[0] - for _, t := range types[1:] { - if !typeEqual(theType, t) { - p.panicf("Array contains values of type '%s' and '%s', but arrays "+ - "must be homogeneous.", theType, t) - } - } - return tomlArray -} diff --git a/vendor/github.com/BurntSushi/toml/type_fields.go b/vendor/github.com/BurntSushi/toml/type_fields.go deleted file mode 100644 index 7592f87..0000000 --- a/vendor/github.com/BurntSushi/toml/type_fields.go +++ /dev/null @@ -1,241 +0,0 @@ -package toml - -// Struct field handling is adapted from code in encoding/json: -// -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the Go distribution. - -import ( - "reflect" - "sort" - "sync" -) - -// A field represents a single field found in a struct. -type field struct { - name string // the name of the field (`toml` tag included) - tag bool // whether field has a `toml` tag - index []int // represents the depth of an anonymous field - typ reflect.Type // the type of the field -} - -// byName sorts field by name, breaking ties with depth, -// then breaking ties with "name came from toml tag", then -// breaking ties with index sequence. -type byName []field - -func (x byName) Len() int { return len(x) } - -func (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x byName) Less(i, j int) bool { - if x[i].name != x[j].name { - return x[i].name < x[j].name - } - if len(x[i].index) != len(x[j].index) { - return len(x[i].index) < len(x[j].index) - } - if x[i].tag != x[j].tag { - return x[i].tag - } - return byIndex(x).Less(i, j) -} - -// byIndex sorts field by index sequence. -type byIndex []field - -func (x byIndex) Len() int { return len(x) } - -func (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x byIndex) Less(i, j int) bool { - for k, xik := range x[i].index { - if k >= len(x[j].index) { - return false - } - if xik != x[j].index[k] { - return xik < x[j].index[k] - } - } - return len(x[i].index) < len(x[j].index) -} - -// typeFields returns a list of fields that TOML should recognize for the given -// type. The algorithm is breadth-first search over the set of structs to -// include - the top struct and then any reachable anonymous structs. -func typeFields(t reflect.Type) []field { - // Anonymous fields to explore at the current level and the next. - current := []field{} - next := []field{{typ: t}} - - // Count of queued names for current level and the next. - count := map[reflect.Type]int{} - nextCount := map[reflect.Type]int{} - - // Types already visited at an earlier level. - visited := map[reflect.Type]bool{} - - // Fields found. - var fields []field - - for len(next) > 0 { - current, next = next, current[:0] - count, nextCount = nextCount, map[reflect.Type]int{} - - for _, f := range current { - if visited[f.typ] { - continue - } - visited[f.typ] = true - - // Scan f.typ for fields to include. - for i := 0; i < f.typ.NumField(); i++ { - sf := f.typ.Field(i) - if sf.PkgPath != "" { // unexported - continue - } - name := sf.Tag.Get("toml") - if name == "-" { - continue - } - index := make([]int, len(f.index)+1) - copy(index, f.index) - index[len(f.index)] = i - - ft := sf.Type - if ft.Name() == "" && ft.Kind() == reflect.Ptr { - // Follow pointer. - ft = ft.Elem() - } - - // Record found field and index sequence. - if name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct { - tagged := name != "" - if name == "" { - name = sf.Name - } - fields = append(fields, field{name, tagged, index, ft}) - if count[f.typ] > 1 { - // If there were multiple instances, add a second, - // so that the annihilation code will see a duplicate. - // It only cares about the distinction between 1 or 2, - // so don't bother generating any more copies. - fields = append(fields, fields[len(fields)-1]) - } - continue - } - - // Record new anonymous struct to explore in next round. - nextCount[ft]++ - if nextCount[ft] == 1 { - f := field{name: ft.Name(), index: index, typ: ft} - next = append(next, f) - } - } - } - } - - sort.Sort(byName(fields)) - - // Delete all fields that are hidden by the Go rules for embedded fields, - // except that fields with TOML tags are promoted. - - // The fields are sorted in primary order of name, secondary order - // of field index length. Loop over names; for each name, delete - // hidden fields by choosing the one dominant field that survives. - out := fields[:0] - for advance, i := 0, 0; i < len(fields); i += advance { - // One iteration per name. - // Find the sequence of fields with the name of this first field. - fi := fields[i] - name := fi.name - for advance = 1; i+advance < len(fields); advance++ { - fj := fields[i+advance] - if fj.name != name { - break - } - } - if advance == 1 { // Only one field with this name - out = append(out, fi) - continue - } - dominant, ok := dominantField(fields[i : i+advance]) - if ok { - out = append(out, dominant) - } - } - - fields = out - sort.Sort(byIndex(fields)) - - return fields -} - -// dominantField looks through the fields, all of which are known to -// have the same name, to find the single field that dominates the -// others using Go's embedding rules, modified by the presence of -// TOML tags. If there are multiple top-level fields, the boolean -// will be false: This condition is an error in Go and we skip all -// the fields. -func dominantField(fields []field) (field, bool) { - // The fields are sorted in increasing index-length order. The winner - // must therefore be one with the shortest index length. Drop all - // longer entries, which is easy: just truncate the slice. - length := len(fields[0].index) - tagged := -1 // Index of first tagged field. - for i, f := range fields { - if len(f.index) > length { - fields = fields[:i] - break - } - if f.tag { - if tagged >= 0 { - // Multiple tagged fields at the same level: conflict. - // Return no field. - return field{}, false - } - tagged = i - } - } - if tagged >= 0 { - return fields[tagged], true - } - // All remaining fields have the same length. If there's more than one, - // we have a conflict (two fields named "X" at the same level) and we - // return no field. - if len(fields) > 1 { - return field{}, false - } - return fields[0], true -} - -var fieldCache struct { - sync.RWMutex - m map[reflect.Type][]field -} - -// cachedTypeFields is like typeFields but uses a cache to avoid repeated work. -func cachedTypeFields(t reflect.Type) []field { - fieldCache.RLock() - f := fieldCache.m[t] - fieldCache.RUnlock() - if f != nil { - return f - } - - // Compute fields without lock. - // Might duplicate effort but won't hold other computations back. - f = typeFields(t) - if f == nil { - f = []field{} - } - - fieldCache.Lock() - if fieldCache.m == nil { - fieldCache.m = map[reflect.Type][]field{} - } - fieldCache.m[t] = f - fieldCache.Unlock() - return f -} diff --git a/vendor/github.com/go-sql-driver/mysql/.gitignore b/vendor/github.com/go-sql-driver/mysql/.gitignore deleted file mode 100644 index ba8e0cb..0000000 --- a/vendor/github.com/go-sql-driver/mysql/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -Icon? -ehthumbs.db -Thumbs.db diff --git a/vendor/github.com/go-sql-driver/mysql/.travis.yml b/vendor/github.com/go-sql-driver/mysql/.travis.yml deleted file mode 100644 index 2f4e3c2..0000000 --- a/vendor/github.com/go-sql-driver/mysql/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -sudo: false -language: go -go: - - 1.2 - - 1.3 - - 1.4 - - tip - -before_script: - - mysql -e 'create database gotest;' diff --git a/vendor/github.com/go-sql-driver/mysql/AUTHORS b/vendor/github.com/go-sql-driver/mysql/AUTHORS deleted file mode 100644 index 6dd0167..0000000 --- a/vendor/github.com/go-sql-driver/mysql/AUTHORS +++ /dev/null @@ -1,46 +0,0 @@ -# This is the official list of Go-MySQL-Driver authors for copyright purposes. - -# If you are submitting a patch, please add your name or the name of the -# organization which holds the copyright to this list in alphabetical order. - -# Names should be added to this file as -# Name -# The email address is not required for organizations. -# Please keep the list sorted. - - -# Individual Persons - -Aaron Hopkins -Arne Hormann -Carlos Nieto -Chris Moos -DisposaBoy -Frederick Mayle -Gustavo Kristic -Hanno Braun -Henri Yandell -Hirotaka Yamamoto -INADA Naoki -James Harr -Jian Zhen -Joshua Prunier -Julien Schmidt -Kamil Dziedzic -Leonardo YongUk Kim -Lucas Liu -Luke Scott -Michael Woolnough -Nicola Peduzzi -Runrioter Wung -Soroush Pour -Stan Putrya -Xiaobing Jiang -Xiuming Chen -Julien Lefevre - -# Organizations - -Barracuda Networks, Inc. -Google Inc. -Stripe Inc. diff --git a/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md b/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md deleted file mode 100644 index 161ad0f..0000000 --- a/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md +++ /dev/null @@ -1,92 +0,0 @@ -## HEAD - -Changes: - - - Go 1.1 is no longer supported - - Use decimals field from MySQL to format time types (#249) - - Buffer optimizations (#269) - - TLS ServerName defaults to the host (#283) - -Bugfixes: - - - Enable microsecond resolution on TIME, DATETIME and TIMESTAMP (#249) - - Fixed handling of queries without columns and rows (#255) - - Fixed a panic when SetKeepAlive() failed (#298) - -New Features: - - Support for returning table alias on Columns() (#289) - - Placeholder interpolation, can be actived with the DSN parameter `interpolateParams=true` (#309, #318) - - -## Version 1.2 (2014-06-03) - -Changes: - - - We switched back to a "rolling release". `go get` installs the current master branch again - - Version v1 of the driver will not be maintained anymore. Go 1.0 is no longer supported by this driver - - Exported errors to allow easy checking from application code - - Enabled TCP Keepalives on TCP connections - - Optimized INFILE handling (better buffer size calculation, lazy init, ...) - - The DSN parser also checks for a missing separating slash - - Faster binary date / datetime to string formatting - - Also exported the MySQLWarning type - - mysqlConn.Close returns the first error encountered instead of ignoring all errors - - writePacket() automatically writes the packet size to the header - - readPacket() uses an iterative approach instead of the recursive approach to merge splitted packets - -New Features: - - - `RegisterDial` allows the usage of a custom dial function to establish the network connection - - Setting the connection collation is possible with the `collation` DSN parameter. This parameter should be preferred over the `charset` parameter - - Logging of critical errors is configurable with `SetLogger` - - Google CloudSQL support - -Bugfixes: - - - Allow more than 32 parameters in prepared statements - - Various old_password fixes - - Fixed TestConcurrent test to pass Go's race detection - - Fixed appendLengthEncodedInteger for large numbers - - Renamed readLengthEnodedString to readLengthEncodedString and skipLengthEnodedString to skipLengthEncodedString (fixed typo) - - -## Version 1.1 (2013-11-02) - -Changes: - - - Go-MySQL-Driver now requires Go 1.1 - - Connections now use the collation `utf8_general_ci` by default. Adding `&charset=UTF8` to the DSN should not be necessary anymore - - Made closing rows and connections error tolerant. This allows for example deferring rows.Close() without checking for errors - - `[]byte(nil)` is now treated as a NULL value. Before, it was treated like an empty string / `[]byte("")` - - DSN parameter values must now be url.QueryEscape'ed. This allows text values to contain special characters, such as '&'. - - Use the IO buffer also for writing. This results in zero allocations (by the driver) for most queries - - Optimized the buffer for reading - - stmt.Query now caches column metadata - - New Logo - - Changed the copyright header to include all contributors - - Improved the LOAD INFILE documentation - - The driver struct is now exported to make the driver directly accessible - - Refactored the driver tests - - Added more benchmarks and moved all to a separate file - - Other small refactoring - -New Features: - - - Added *old_passwords* support: Required in some cases, but must be enabled by adding `allowOldPasswords=true` to the DSN since it is insecure - - Added a `clientFoundRows` parameter: Return the number of matching rows instead of the number of rows changed on UPDATEs - - Added TLS/SSL support: Use a TLS/SSL encrypted connection to the server. Custom TLS configs can be registered and used - -Bugfixes: - - - Fixed MySQL 4.1 support: MySQL 4.1 sends packets with lengths which differ from the specification - - Convert to DB timezone when inserting `time.Time` - - Splitted packets (more than 16MB) are now merged correctly - - Fixed false positive `io.EOF` errors when the data was fully read - - Avoid panics on reuse of closed connections - - Fixed empty string producing false nil values - - Fixed sign byte for positive TIME fields - - -## Version 1.0 (2013-05-14) - -Initial Release diff --git a/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md b/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md deleted file mode 100644 index f87c198..0000000 --- a/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md +++ /dev/null @@ -1,40 +0,0 @@ -# Contributing Guidelines - -## Reporting Issues - -Before creating a new Issue, please check first if a similar Issue [already exists](https://github.com/go-sql-driver/mysql/issues?state=open) or was [recently closed](https://github.com/go-sql-driver/mysql/issues?direction=desc&page=1&sort=updated&state=closed). - -Please provide the following minimum information: -* Your Go-MySQL-Driver version (or git SHA) -* Your Go version (run `go version` in your console) -* A detailed issue description -* Error Log if present -* If possible, a short example - - -## Contributing Code - -By contributing to this project, you share your code under the Mozilla Public License 2, as specified in the LICENSE file. -Don't forget to add yourself to the AUTHORS file. - -### Pull Requests Checklist - -Please check the following points before submitting your pull request: -- [x] Code compiles correctly -- [x] Created tests, if possible -- [x] All tests pass -- [x] Extended the README / documentation, if necessary -- [x] Added yourself to the AUTHORS file - -### Code Review - -Everyone is invited to review and comment on pull requests. -If it looks fine to you, comment with "LGTM" (Looks good to me). - -If changes are required, notice the reviewers with "PTAL" (Please take another look) after committing the fixes. - -Before merging the Pull Request, at least one [team member](https://github.com/go-sql-driver?tab=members) must have commented with "LGTM". - -## Development Ideas - -If you are looking for ideas for code contributions, please check our [Development Ideas](https://github.com/go-sql-driver/mysql/wiki/Development-Ideas) Wiki page. diff --git a/vendor/github.com/go-sql-driver/mysql/LICENSE b/vendor/github.com/go-sql-driver/mysql/LICENSE deleted file mode 100644 index 14e2f77..0000000 --- a/vendor/github.com/go-sql-driver/mysql/LICENSE +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/vendor/github.com/go-sql-driver/mysql/README.md b/vendor/github.com/go-sql-driver/mysql/README.md deleted file mode 100644 index 706b7ef..0000000 --- a/vendor/github.com/go-sql-driver/mysql/README.md +++ /dev/null @@ -1,386 +0,0 @@ -# Go-MySQL-Driver - -A MySQL-Driver for Go's [database/sql](http://golang.org/pkg/database/sql) package - -![Go-MySQL-Driver logo](https://raw.github.com/wiki/go-sql-driver/mysql/gomysql_m.png "Golang Gopher holding the MySQL Dolphin") - -**Latest stable Release:** [Version 1.2 (June 03, 2014)](https://github.com/go-sql-driver/mysql/releases) - -[![Build Status](https://travis-ci.org/go-sql-driver/mysql.png?branch=master)](https://travis-ci.org/go-sql-driver/mysql) - ---------------------------------------- - * [Features](#features) - * [Requirements](#requirements) - * [Installation](#installation) - * [Usage](#usage) - * [DSN (Data Source Name)](#dsn-data-source-name) - * [Password](#password) - * [Protocol](#protocol) - * [Address](#address) - * [Parameters](#parameters) - * [Examples](#examples) - * [LOAD DATA LOCAL INFILE support](#load-data-local-infile-support) - * [time.Time support](#timetime-support) - * [Unicode support](#unicode-support) - * [Testing / Development](#testing--development) - * [License](#license) - ---------------------------------------- - -## Features - * Lightweight and [fast](https://github.com/go-sql-driver/sql-benchmark "golang MySQL-Driver performance") - * Native Go implementation. No C-bindings, just pure Go - * Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or [custom protocols](http://godoc.org/github.com/go-sql-driver/mysql#DialFunc) - * Automatic handling of broken connections - * Automatic Connection Pooling *(by database/sql package)* - * Supports queries larger than 16MB - * Full [`sql.RawBytes`](http://golang.org/pkg/database/sql/#RawBytes) support. - * Intelligent `LONG DATA` handling in prepared statements - * Secure `LOAD DATA LOCAL INFILE` support with file Whitelisting and `io.Reader` support - * Optional `time.Time` parsing - * Optional placeholder interpolation - -## Requirements - * Go 1.2 or higher - * MySQL (4.1+), MariaDB, Percona Server, Google CloudSQL or Sphinx (2.2.3+) - ---------------------------------------- - -## Installation -Simple install the package to your [$GOPATH](http://code.google.com/p/go-wiki/wiki/GOPATH "GOPATH") with the [go tool](http://golang.org/cmd/go/ "go command") from shell: -```bash -$ go get github.com/go-sql-driver/mysql -``` -Make sure [Git is installed](http://git-scm.com/downloads) on your machine and in your system's `PATH`. - -## Usage -_Go MySQL Driver_ is an implementation of Go's `database/sql/driver` interface. You only need to import the driver and can use the full [`database/sql`](http://golang.org/pkg/database/sql) API then. - -Use `mysql` as `driverName` and a valid [DSN](#dsn-data-source-name) as `dataSourceName`: -```go -import "database/sql" -import _ "github.com/go-sql-driver/mysql" - -db, err := sql.Open("mysql", "user:password@/dbname") -``` - -[Examples are available in our Wiki](https://github.com/go-sql-driver/mysql/wiki/Examples "Go-MySQL-Driver Examples"). - - -### DSN (Data Source Name) - -The Data Source Name has a common format, like e.g. [PEAR DB](http://pear.php.net/manual/en/package.database.db.intro-dsn.php) uses it, but without type-prefix (optional parts marked by squared brackets): -``` -[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN] -``` - -A DSN in its fullest form: -``` -username:password@protocol(address)/dbname?param=value -``` - -Except for the databasename, all values are optional. So the minimal DSN is: -``` -/dbname -``` - -If you do not want to preselect a database, leave `dbname` empty: -``` -/ -``` -This has the same effect as an empty DSN string: -``` - -``` - -#### Password -Passwords can consist of any character. Escaping is **not** necessary. - -#### Protocol -See [net.Dial](http://golang.org/pkg/net/#Dial) for more information which networks are available. -In general you should use an Unix domain socket if available and TCP otherwise for best performance. - -#### Address -For TCP and UDP networks, addresses have the form `host:port`. -If `host` is a literal IPv6 address, it must be enclosed in square brackets. -The functions [net.JoinHostPort](http://golang.org/pkg/net/#JoinHostPort) and [net.SplitHostPort](http://golang.org/pkg/net/#SplitHostPort) manipulate addresses in this form. - -For Unix domain sockets the address is the absolute path to the MySQL-Server-socket, e.g. `/var/run/mysqld/mysqld.sock` or `/tmp/mysql.sock`. - -#### Parameters -*Parameters are case-sensitive!* - -Notice that any of `true`, `TRUE`, `True` or `1` is accepted to stand for a true boolean value. Not surprisingly, false can be specified as any of: `false`, `FALSE`, `False` or `0`. - -##### `allowAllFiles` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`allowAllFiles=true` disables the file Whitelist for `LOAD DATA LOCAL INFILE` and allows *all* files. -[*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html) - -##### `allowCleartextPasswords` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`allowCleartextPasswords=true` allows using the [cleartext client side plugin](http://dev.mysql.com/doc/en/cleartext-authentication-plugin.html) if required by an account, such as one defined with the [PAM authentication plugin](http://dev.mysql.com/doc/en/pam-authentication-plugin.html). Sending passwords in clear text may be a security problem in some configurations. To avoid problems if there is any possibility that the password would be intercepted, clients should connect to MySQL Server using a method that protects the password. Possibilities include [TLS / SSL](#tls), IPsec, or a private network. - -##### `allowOldPasswords` - -``` -Type: bool -Valid Values: true, false -Default: false -``` -`allowOldPasswords=true` allows the usage of the insecure old password method. This should be avoided, but is necessary in some cases. See also [the old_passwords wiki page](https://github.com/go-sql-driver/mysql/wiki/old_passwords). - -##### `charset` - -``` -Type: string -Valid Values: -Default: none -``` - -Sets the charset used for client-server interaction (`"SET NAMES "`). If multiple charsets are set (separated by a comma), the following charset is used if setting the charset failes. This enables for example support for `utf8mb4` ([introduced in MySQL 5.5.3](http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html)) with fallback to `utf8` for older servers (`charset=utf8mb4,utf8`). - -Usage of the `charset` parameter is discouraged because it issues additional queries to the server. -Unless you need the fallback behavior, please use `collation` instead. - -##### `collation` - -``` -Type: string -Valid Values: -Default: utf8_general_ci -``` - -Sets the collation used for client-server interaction on connection. In contrast to `charset`, `collation` does not issue additional queries. If the specified collation is unavailable on the target server, the connection will fail. - -A list of valid charsets for a server is retrievable with `SHOW COLLATION`. - -##### `clientFoundRows` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`clientFoundRows=true` causes an UPDATE to return the number of matching rows instead of the number of rows changed. - -##### `columnsWithAlias` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -When `columnsWithAlias` is true, calls to `sql.Rows.Columns()` will return the table alias and the column name separated by a dot. For example: - -``` -SELECT u.id FROM users as u -``` - -will return `u.id` instead of just `id` if `columnsWithAlias=true`. - -##### `interpolateParams` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -If `interpolateParams` is true, placeholders (`?`) in calls to `db.Query()` and `db.Exec()` are interpolated into a single query string with given parameters. This reduces the number of roundtrips, since the driver has to prepare a statement, execute it with given parameters and close the statement again with `interpolateParams=false`. - -*This can not be used together with the multibyte encodings BIG5, CP932, GB2312, GBK or SJIS. These are blacklisted as they may [introduce a SQL injection vulnerability](http://stackoverflow.com/a/12118602/3430118)!* - -##### `loc` - -``` -Type: string -Valid Values: -Default: UTC -``` - -Sets the location for time.Time values (when using `parseTime=true`). *"Local"* sets the system's location. See [time.LoadLocation](http://golang.org/pkg/time/#LoadLocation) for details. - -Note that this sets the location for time.Time values but does not change MySQL's [time_zone setting](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html). For that see the [time_zone system variable](#system-variables), which can also be set as a DSN parameter. - -Please keep in mind, that param values must be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed. Alternatively you can manually replace the `/` with `%2F`. For example `US/Pacific` would be `loc=US%2FPacific`. - - -##### `parseTime` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`parseTime=true` changes the output type of `DATE` and `DATETIME` values to `time.Time` instead of `[]byte` / `string` - - -##### `strict` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`strict=true` enables the strict mode in which MySQL warnings are treated as errors. - -By default MySQL also treats notes as warnings. Use [`sql_notes=false`](http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sql_notes) to ignore notes. See the [examples](#examples) for an DSN example. - - -##### `timeout` - -``` -Type: decimal number -Default: OS default -``` - -*Driver* side connection timeout. The value must be a string of decimal numbers, each with optional fraction and a unit suffix ( *"ms"*, *"s"*, *"m"*, *"h"* ), such as *"30s"*, *"0.5m"* or *"1m30s"*. To set a server side timeout, use the parameter [`wait_timeout`](http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout). - - -##### `tls` - -``` -Type: bool / string -Valid Values: true, false, skip-verify, -Default: false -``` - -`tls=true` enables TLS / SSL encrypted connection to the server. Use `skip-verify` if you want to use a self-signed or invalid certificate (server side). Use a custom value registered with [`mysql.RegisterTLSConfig`](http://godoc.org/github.com/go-sql-driver/mysql#RegisterTLSConfig). - - -##### System Variables - -All other parameters are interpreted as system variables: - * `autocommit`: `"SET autocommit="` - * [`time_zone`](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html): `"SET time_zone="` - * [`tx_isolation`](https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_tx_isolation): `"SET tx_isolation="` - * `param`: `"SET ="` - -*The values must be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed!* - -#### Examples -``` -user@unix(/path/to/socket)/dbname -``` - -``` -root:pw@unix(/tmp/mysql.sock)/myDatabase?loc=Local -``` - -``` -user:password@tcp(localhost:5555)/dbname?tls=skip-verify&autocommit=true -``` - -Use the [strict mode](#strict) but ignore notes: -``` -user:password@/dbname?strict=true&sql_notes=false -``` - -TCP via IPv6: -``` -user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname?timeout=90s&collation=utf8mb4_unicode_ci -``` - -TCP on a remote host, e.g. Amazon RDS: -``` -id:password@tcp(your-amazonaws-uri.com:3306)/dbname -``` - -Google Cloud SQL on App Engine: -``` -user@cloudsql(project-id:instance-name)/dbname -``` - -TCP using default port (3306) on localhost: -``` -user:password@tcp/dbname?charset=utf8mb4,utf8&sys_var=esc%40ped -``` - -Use the default protocol (tcp) and host (localhost:3306): -``` -user:password@/dbname -``` - -No Database preselected: -``` -user:password@/ -``` - -### `LOAD DATA LOCAL INFILE` support -For this feature you need direct access to the package. Therefore you must change the import path (no `_`): -```go -import "github.com/go-sql-driver/mysql" -``` - -Files must be whitelisted by registering them with `mysql.RegisterLocalFile(filepath)` (recommended) or the Whitelist check must be deactivated by using the DSN parameter `allowAllFiles=true` ([*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html)). - -To use a `io.Reader` a handler function must be registered with `mysql.RegisterReaderHandler(name, handler)` which returns a `io.Reader` or `io.ReadCloser`. The Reader is available with the filepath `Reader::` then. Choose different names for different handlers and `DeregisterReaderHandler` when you don't need it anymore. - -See the [godoc of Go-MySQL-Driver](http://godoc.org/github.com/go-sql-driver/mysql "golang mysql driver documentation") for details. - - -### `time.Time` support -The default internal output type of MySQL `DATE` and `DATETIME` values is `[]byte` which allows you to scan the value into a `[]byte`, `string` or `sql.RawBytes` variable in your programm. - -However, many want to scan MySQL `DATE` and `DATETIME` values into `time.Time` variables, which is the logical opposite in Go to `DATE` and `DATETIME` in MySQL. You can do that by changing the internal output type from `[]byte` to `time.Time` with the DSN parameter `parseTime=true`. You can set the default [`time.Time` location](http://golang.org/pkg/time/#Location) with the `loc` DSN parameter. - -**Caution:** As of Go 1.1, this makes `time.Time` the only variable type you can scan `DATE` and `DATETIME` values into. This breaks for example [`sql.RawBytes` support](https://github.com/go-sql-driver/mysql/wiki/Examples#rawbytes). - -Alternatively you can use the [`NullTime`](http://godoc.org/github.com/go-sql-driver/mysql#NullTime) type as the scan destination, which works with both `time.Time` and `string` / `[]byte`. - - -### Unicode support -Since version 1.1 Go-MySQL-Driver automatically uses the collation `utf8_general_ci` by default. - -Other collations / charsets can be set using the [`collation`](#collation) DSN parameter. - -Version 1.0 of the driver recommended adding `&charset=utf8` (alias for `SET NAMES utf8`) to the DSN to enable proper UTF-8 support. This is not necessary anymore. The [`collation`](#collation) parameter should be preferred to set another collation / charset than the default. - -See http://dev.mysql.com/doc/refman/5.7/en/charset-unicode.html for more details on MySQL's Unicode support. - - -## Testing / Development -To run the driver tests you may need to adjust the configuration. See the [Testing Wiki-Page](https://github.com/go-sql-driver/mysql/wiki/Testing "Testing") for details. - -Go-MySQL-Driver is not feature-complete yet. Your help is very appreciated. -If you want to contribute, you can work on an [open issue](https://github.com/go-sql-driver/mysql/issues?state=open) or review a [pull request](https://github.com/go-sql-driver/mysql/pulls). - -See the [Contribution Guidelines](https://github.com/go-sql-driver/mysql/blob/master/CONTRIBUTING.md) for details. - ---------------------------------------- - -## License -Go-MySQL-Driver is licensed under the [Mozilla Public License Version 2.0](https://raw.github.com/go-sql-driver/mysql/master/LICENSE) - -Mozilla summarizes the license scope as follows: -> MPL: The copyleft applies to any files containing MPLed code. - - -That means: - * You can **use** the **unchanged** source code both in private and commercially - * When distributing, you **must publish** the source code of any **changed files** licensed under the MPL 2.0 under a) the MPL 2.0 itself or b) a compatible license (e.g. GPL 3.0 or Apache License 2.0) - * You **needn't publish** the source code of your library as long as the files licensed under the MPL 2.0 are **unchanged** - -Please read the [MPL 2.0 FAQ](http://www.mozilla.org/MPL/2.0/FAQ.html) if you have further questions regarding the license. - -You can read the full terms here: [LICENSE](https://raw.github.com/go-sql-driver/mysql/master/LICENSE) - -![Go Gopher and MySQL Dolphin](https://raw.github.com/wiki/go-sql-driver/mysql/go-mysql-driver_m.jpg "Golang Gopher transporting the MySQL Dolphin in a wheelbarrow") - diff --git a/vendor/github.com/go-sql-driver/mysql/appengine.go b/vendor/github.com/go-sql-driver/mysql/appengine.go deleted file mode 100644 index 565614e..0000000 --- a/vendor/github.com/go-sql-driver/mysql/appengine.go +++ /dev/null @@ -1,19 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -// +build appengine - -package mysql - -import ( - "appengine/cloudsql" -) - -func init() { - RegisterDial("cloudsql", cloudsql.Dial) -} diff --git a/vendor/github.com/go-sql-driver/mysql/buffer.go b/vendor/github.com/go-sql-driver/mysql/buffer.go deleted file mode 100644 index 509ce89..0000000 --- a/vendor/github.com/go-sql-driver/mysql/buffer.go +++ /dev/null @@ -1,136 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import "io" - -const defaultBufSize = 4096 - -// A buffer which is used for both reading and writing. -// This is possible since communication on each connection is synchronous. -// In other words, we can't write and read simultaneously on the same connection. -// The buffer is similar to bufio.Reader / Writer but zero-copy-ish -// Also highly optimized for this particular use case. -type buffer struct { - buf []byte - rd io.Reader - idx int - length int -} - -func newBuffer(rd io.Reader) buffer { - var b [defaultBufSize]byte - return buffer{ - buf: b[:], - rd: rd, - } -} - -// fill reads into the buffer until at least _need_ bytes are in it -func (b *buffer) fill(need int) error { - n := b.length - - // move existing data to the beginning - if n > 0 && b.idx > 0 { - copy(b.buf[0:n], b.buf[b.idx:]) - } - - // grow buffer if necessary - // TODO: let the buffer shrink again at some point - // Maybe keep the org buf slice and swap back? - if need > len(b.buf) { - // Round up to the next multiple of the default size - newBuf := make([]byte, ((need/defaultBufSize)+1)*defaultBufSize) - copy(newBuf, b.buf) - b.buf = newBuf - } - - b.idx = 0 - - for { - nn, err := b.rd.Read(b.buf[n:]) - n += nn - - switch err { - case nil: - if n < need { - continue - } - b.length = n - return nil - - case io.EOF: - if n >= need { - b.length = n - return nil - } - return io.ErrUnexpectedEOF - - default: - return err - } - } -} - -// returns next N bytes from buffer. -// The returned slice is only guaranteed to be valid until the next read -func (b *buffer) readNext(need int) ([]byte, error) { - if b.length < need { - // refill - if err := b.fill(need); err != nil { - return nil, err - } - } - - offset := b.idx - b.idx += need - b.length -= need - return b.buf[offset:b.idx], nil -} - -// returns a buffer with the requested size. -// If possible, a slice from the existing buffer is returned. -// Otherwise a bigger buffer is made. -// Only one buffer (total) can be used at a time. -func (b *buffer) takeBuffer(length int) []byte { - if b.length > 0 { - return nil - } - - // test (cheap) general case first - if length <= defaultBufSize || length <= cap(b.buf) { - return b.buf[:length] - } - - if length < maxPacketSize { - b.buf = make([]byte, length) - return b.buf - } - return make([]byte, length) -} - -// shortcut which can be used if the requested buffer is guaranteed to be -// smaller than defaultBufSize -// Only one buffer (total) can be used at a time. -func (b *buffer) takeSmallBuffer(length int) []byte { - if b.length == 0 { - return b.buf[:length] - } - return nil -} - -// takeCompleteBuffer returns the complete existing buffer. -// This can be used if the necessary buffer size is unknown. -// Only one buffer (total) can be used at a time. -func (b *buffer) takeCompleteBuffer() []byte { - if b.length == 0 { - return b.buf - } - return nil -} diff --git a/vendor/github.com/go-sql-driver/mysql/collations.go b/vendor/github.com/go-sql-driver/mysql/collations.go deleted file mode 100644 index 6c1d613..0000000 --- a/vendor/github.com/go-sql-driver/mysql/collations.go +++ /dev/null @@ -1,250 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2014 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -const defaultCollation byte = 33 // utf8_general_ci - -// A list of available collations mapped to the internal ID. -// To update this map use the following MySQL query: -// SELECT COLLATION_NAME, ID FROM information_schema.COLLATIONS -var collations = map[string]byte{ - "big5_chinese_ci": 1, - "latin2_czech_cs": 2, - "dec8_swedish_ci": 3, - "cp850_general_ci": 4, - "latin1_german1_ci": 5, - "hp8_english_ci": 6, - "koi8r_general_ci": 7, - "latin1_swedish_ci": 8, - "latin2_general_ci": 9, - "swe7_swedish_ci": 10, - "ascii_general_ci": 11, - "ujis_japanese_ci": 12, - "sjis_japanese_ci": 13, - "cp1251_bulgarian_ci": 14, - "latin1_danish_ci": 15, - "hebrew_general_ci": 16, - "tis620_thai_ci": 18, - "euckr_korean_ci": 19, - "latin7_estonian_cs": 20, - "latin2_hungarian_ci": 21, - "koi8u_general_ci": 22, - "cp1251_ukrainian_ci": 23, - "gb2312_chinese_ci": 24, - "greek_general_ci": 25, - "cp1250_general_ci": 26, - "latin2_croatian_ci": 27, - "gbk_chinese_ci": 28, - "cp1257_lithuanian_ci": 29, - "latin5_turkish_ci": 30, - "latin1_german2_ci": 31, - "armscii8_general_ci": 32, - "utf8_general_ci": 33, - "cp1250_czech_cs": 34, - "ucs2_general_ci": 35, - "cp866_general_ci": 36, - "keybcs2_general_ci": 37, - "macce_general_ci": 38, - "macroman_general_ci": 39, - "cp852_general_ci": 40, - "latin7_general_ci": 41, - "latin7_general_cs": 42, - "macce_bin": 43, - "cp1250_croatian_ci": 44, - "utf8mb4_general_ci": 45, - "utf8mb4_bin": 46, - "latin1_bin": 47, - "latin1_general_ci": 48, - "latin1_general_cs": 49, - "cp1251_bin": 50, - "cp1251_general_ci": 51, - "cp1251_general_cs": 52, - "macroman_bin": 53, - "utf16_general_ci": 54, - "utf16_bin": 55, - "utf16le_general_ci": 56, - "cp1256_general_ci": 57, - "cp1257_bin": 58, - "cp1257_general_ci": 59, - "utf32_general_ci": 60, - "utf32_bin": 61, - "utf16le_bin": 62, - "binary": 63, - "armscii8_bin": 64, - "ascii_bin": 65, - "cp1250_bin": 66, - "cp1256_bin": 67, - "cp866_bin": 68, - "dec8_bin": 69, - "greek_bin": 70, - "hebrew_bin": 71, - "hp8_bin": 72, - "keybcs2_bin": 73, - "koi8r_bin": 74, - "koi8u_bin": 75, - "latin2_bin": 77, - "latin5_bin": 78, - "latin7_bin": 79, - "cp850_bin": 80, - "cp852_bin": 81, - "swe7_bin": 82, - "utf8_bin": 83, - "big5_bin": 84, - "euckr_bin": 85, - "gb2312_bin": 86, - "gbk_bin": 87, - "sjis_bin": 88, - "tis620_bin": 89, - "ucs2_bin": 90, - "ujis_bin": 91, - "geostd8_general_ci": 92, - "geostd8_bin": 93, - "latin1_spanish_ci": 94, - "cp932_japanese_ci": 95, - "cp932_bin": 96, - "eucjpms_japanese_ci": 97, - "eucjpms_bin": 98, - "cp1250_polish_ci": 99, - "utf16_unicode_ci": 101, - "utf16_icelandic_ci": 102, - "utf16_latvian_ci": 103, - "utf16_romanian_ci": 104, - "utf16_slovenian_ci": 105, - "utf16_polish_ci": 106, - "utf16_estonian_ci": 107, - "utf16_spanish_ci": 108, - "utf16_swedish_ci": 109, - "utf16_turkish_ci": 110, - "utf16_czech_ci": 111, - "utf16_danish_ci": 112, - "utf16_lithuanian_ci": 113, - "utf16_slovak_ci": 114, - "utf16_spanish2_ci": 115, - "utf16_roman_ci": 116, - "utf16_persian_ci": 117, - "utf16_esperanto_ci": 118, - "utf16_hungarian_ci": 119, - "utf16_sinhala_ci": 120, - "utf16_german2_ci": 121, - "utf16_croatian_ci": 122, - "utf16_unicode_520_ci": 123, - "utf16_vietnamese_ci": 124, - "ucs2_unicode_ci": 128, - "ucs2_icelandic_ci": 129, - "ucs2_latvian_ci": 130, - "ucs2_romanian_ci": 131, - "ucs2_slovenian_ci": 132, - "ucs2_polish_ci": 133, - "ucs2_estonian_ci": 134, - "ucs2_spanish_ci": 135, - "ucs2_swedish_ci": 136, - "ucs2_turkish_ci": 137, - "ucs2_czech_ci": 138, - "ucs2_danish_ci": 139, - "ucs2_lithuanian_ci": 140, - "ucs2_slovak_ci": 141, - "ucs2_spanish2_ci": 142, - "ucs2_roman_ci": 143, - "ucs2_persian_ci": 144, - "ucs2_esperanto_ci": 145, - "ucs2_hungarian_ci": 146, - "ucs2_sinhala_ci": 147, - "ucs2_german2_ci": 148, - "ucs2_croatian_ci": 149, - "ucs2_unicode_520_ci": 150, - "ucs2_vietnamese_ci": 151, - "ucs2_general_mysql500_ci": 159, - "utf32_unicode_ci": 160, - "utf32_icelandic_ci": 161, - "utf32_latvian_ci": 162, - "utf32_romanian_ci": 163, - "utf32_slovenian_ci": 164, - "utf32_polish_ci": 165, - "utf32_estonian_ci": 166, - "utf32_spanish_ci": 167, - "utf32_swedish_ci": 168, - "utf32_turkish_ci": 169, - "utf32_czech_ci": 170, - "utf32_danish_ci": 171, - "utf32_lithuanian_ci": 172, - "utf32_slovak_ci": 173, - "utf32_spanish2_ci": 174, - "utf32_roman_ci": 175, - "utf32_persian_ci": 176, - "utf32_esperanto_ci": 177, - "utf32_hungarian_ci": 178, - "utf32_sinhala_ci": 179, - "utf32_german2_ci": 180, - "utf32_croatian_ci": 181, - "utf32_unicode_520_ci": 182, - "utf32_vietnamese_ci": 183, - "utf8_unicode_ci": 192, - "utf8_icelandic_ci": 193, - "utf8_latvian_ci": 194, - "utf8_romanian_ci": 195, - "utf8_slovenian_ci": 196, - "utf8_polish_ci": 197, - "utf8_estonian_ci": 198, - "utf8_spanish_ci": 199, - "utf8_swedish_ci": 200, - "utf8_turkish_ci": 201, - "utf8_czech_ci": 202, - "utf8_danish_ci": 203, - "utf8_lithuanian_ci": 204, - "utf8_slovak_ci": 205, - "utf8_spanish2_ci": 206, - "utf8_roman_ci": 207, - "utf8_persian_ci": 208, - "utf8_esperanto_ci": 209, - "utf8_hungarian_ci": 210, - "utf8_sinhala_ci": 211, - "utf8_german2_ci": 212, - "utf8_croatian_ci": 213, - "utf8_unicode_520_ci": 214, - "utf8_vietnamese_ci": 215, - "utf8_general_mysql500_ci": 223, - "utf8mb4_unicode_ci": 224, - "utf8mb4_icelandic_ci": 225, - "utf8mb4_latvian_ci": 226, - "utf8mb4_romanian_ci": 227, - "utf8mb4_slovenian_ci": 228, - "utf8mb4_polish_ci": 229, - "utf8mb4_estonian_ci": 230, - "utf8mb4_spanish_ci": 231, - "utf8mb4_swedish_ci": 232, - "utf8mb4_turkish_ci": 233, - "utf8mb4_czech_ci": 234, - "utf8mb4_danish_ci": 235, - "utf8mb4_lithuanian_ci": 236, - "utf8mb4_slovak_ci": 237, - "utf8mb4_spanish2_ci": 238, - "utf8mb4_roman_ci": 239, - "utf8mb4_persian_ci": 240, - "utf8mb4_esperanto_ci": 241, - "utf8mb4_hungarian_ci": 242, - "utf8mb4_sinhala_ci": 243, - "utf8mb4_german2_ci": 244, - "utf8mb4_croatian_ci": 245, - "utf8mb4_unicode_520_ci": 246, - "utf8mb4_vietnamese_ci": 247, -} - -// A blacklist of collations which is unsafe to interpolate parameters. -// These multibyte encodings may contains 0x5c (`\`) in their trailing bytes. -var unsafeCollations = map[byte]bool{ - 1: true, // big5_chinese_ci - 13: true, // sjis_japanese_ci - 28: true, // gbk_chinese_ci - 84: true, // big5_bin - 86: true, // gb2312_bin - 87: true, // gbk_bin - 88: true, // sjis_bin - 95: true, // cp932_japanese_ci - 96: true, // cp932_bin -} diff --git a/vendor/github.com/go-sql-driver/mysql/connection.go b/vendor/github.com/go-sql-driver/mysql/connection.go deleted file mode 100644 index 72ed09d..0000000 --- a/vendor/github.com/go-sql-driver/mysql/connection.go +++ /dev/null @@ -1,403 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "crypto/tls" - "database/sql/driver" - "errors" - "net" - "strconv" - "strings" - "time" -) - -type mysqlConn struct { - buf buffer - netConn net.Conn - affectedRows uint64 - insertId uint64 - cfg *config - maxPacketAllowed int - maxWriteSize int - flags clientFlag - status statusFlag - sequence uint8 - parseTime bool - strict bool -} - -type config struct { - user string - passwd string - net string - addr string - dbname string - params map[string]string - loc *time.Location - tls *tls.Config - timeout time.Duration - collation uint8 - allowAllFiles bool - allowOldPasswords bool - allowCleartextPasswords bool - clientFoundRows bool - columnsWithAlias bool - interpolateParams bool -} - -// Handles parameters set in DSN after the connection is established -func (mc *mysqlConn) handleParams() (err error) { - for param, val := range mc.cfg.params { - switch param { - // Charset - case "charset": - charsets := strings.Split(val, ",") - for i := range charsets { - // ignore errors here - a charset may not exist - err = mc.exec("SET NAMES " + charsets[i]) - if err == nil { - break - } - } - if err != nil { - return - } - - // time.Time parsing - case "parseTime": - var isBool bool - mc.parseTime, isBool = readBool(val) - if !isBool { - return errors.New("Invalid Bool value: " + val) - } - - // Strict mode - case "strict": - var isBool bool - mc.strict, isBool = readBool(val) - if !isBool { - return errors.New("Invalid Bool value: " + val) - } - - // Compression - case "compress": - err = errors.New("Compression not implemented yet") - return - - // System Vars - default: - err = mc.exec("SET " + param + "=" + val + "") - if err != nil { - return - } - } - } - - return -} - -func (mc *mysqlConn) Begin() (driver.Tx, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - err := mc.exec("START TRANSACTION") - if err == nil { - return &mysqlTx{mc}, err - } - - return nil, err -} - -func (mc *mysqlConn) Close() (err error) { - // Makes Close idempotent - if mc.netConn != nil { - err = mc.writeCommandPacket(comQuit) - if err == nil { - err = mc.netConn.Close() - } else { - mc.netConn.Close() - } - mc.netConn = nil - } - - mc.cfg = nil - mc.buf.rd = nil - - return -} - -func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := mc.writeCommandPacketStr(comStmtPrepare, query) - if err != nil { - return nil, err - } - - stmt := &mysqlStmt{ - mc: mc, - } - - // Read Result - columnCount, err := stmt.readPrepareResultPacket() - if err == nil { - if stmt.paramCount > 0 { - if err = mc.readUntilEOF(); err != nil { - return nil, err - } - } - - if columnCount > 0 { - err = mc.readUntilEOF() - } - } - - return stmt, err -} - -func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (string, error) { - buf := mc.buf.takeCompleteBuffer() - if buf == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return "", driver.ErrBadConn - } - buf = buf[:0] - argPos := 0 - - for i := 0; i < len(query); i++ { - q := strings.IndexByte(query[i:], '?') - if q == -1 { - buf = append(buf, query[i:]...) - break - } - buf = append(buf, query[i:i+q]...) - i += q - - arg := args[argPos] - argPos++ - - if arg == nil { - buf = append(buf, "NULL"...) - continue - } - - switch v := arg.(type) { - case int64: - buf = strconv.AppendInt(buf, v, 10) - case float64: - buf = strconv.AppendFloat(buf, v, 'g', -1, 64) - case bool: - if v { - buf = append(buf, '1') - } else { - buf = append(buf, '0') - } - case time.Time: - if v.IsZero() { - buf = append(buf, "'0000-00-00'"...) - } else { - v := v.In(mc.cfg.loc) - v = v.Add(time.Nanosecond * 500) // To round under microsecond - year := v.Year() - year100 := year / 100 - year1 := year % 100 - month := v.Month() - day := v.Day() - hour := v.Hour() - minute := v.Minute() - second := v.Second() - micro := v.Nanosecond() / 1000 - - buf = append(buf, []byte{ - '\'', - digits10[year100], digits01[year100], - digits10[year1], digits01[year1], - '-', - digits10[month], digits01[month], - '-', - digits10[day], digits01[day], - ' ', - digits10[hour], digits01[hour], - ':', - digits10[minute], digits01[minute], - ':', - digits10[second], digits01[second], - }...) - - if micro != 0 { - micro10000 := micro / 10000 - micro100 := micro / 100 % 100 - micro1 := micro % 100 - buf = append(buf, []byte{ - '.', - digits10[micro10000], digits01[micro10000], - digits10[micro100], digits01[micro100], - digits10[micro1], digits01[micro1], - }...) - } - buf = append(buf, '\'') - } - case []byte: - if v == nil { - buf = append(buf, "NULL"...) - } else { - buf = append(buf, "_binary'"...) - if mc.status&statusNoBackslashEscapes == 0 { - buf = escapeBytesBackslash(buf, v) - } else { - buf = escapeBytesQuotes(buf, v) - } - buf = append(buf, '\'') - } - case string: - buf = append(buf, '\'') - if mc.status&statusNoBackslashEscapes == 0 { - buf = escapeStringBackslash(buf, v) - } else { - buf = escapeStringQuotes(buf, v) - } - buf = append(buf, '\'') - default: - return "", driver.ErrSkip - } - - if len(buf)+4 > mc.maxPacketAllowed { - return "", driver.ErrSkip - } - } - if argPos != len(args) { - return "", driver.ErrSkip - } - return string(buf), nil -} - -func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - if len(args) != 0 { - if !mc.cfg.interpolateParams { - return nil, driver.ErrSkip - } - // try to interpolate the parameters to save extra roundtrips for preparing and closing a statement - prepared, err := mc.interpolateParams(query, args) - if err != nil { - return nil, err - } - query = prepared - args = nil - } - mc.affectedRows = 0 - mc.insertId = 0 - - err := mc.exec(query) - if err == nil { - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, err - } - return nil, err -} - -// Internal function to execute commands -func (mc *mysqlConn) exec(query string) error { - // Send command - err := mc.writeCommandPacketStr(comQuery, query) - if err != nil { - return err - } - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil && resLen > 0 { - if err = mc.readUntilEOF(); err != nil { - return err - } - - err = mc.readUntilEOF() - } - - return err -} - -func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - if len(args) != 0 { - if !mc.cfg.interpolateParams { - return nil, driver.ErrSkip - } - // try client-side prepare to reduce roundtrip - prepared, err := mc.interpolateParams(query, args) - if err != nil { - return nil, err - } - query = prepared - args = nil - } - // Send command - err := mc.writeCommandPacketStr(comQuery, query) - if err == nil { - // Read Result - var resLen int - resLen, err = mc.readResultSetHeaderPacket() - if err == nil { - rows := new(textRows) - rows.mc = mc - - if resLen == 0 { - // no columns, no more data - return emptyRows{}, nil - } - // Columns - rows.columns, err = mc.readColumns(resLen) - return rows, err - } - } - return nil, err -} - -// Gets the value of the given MySQL System Variable -// The returned byte slice is only valid until the next read -func (mc *mysqlConn) getSystemVar(name string) ([]byte, error) { - // Send command - if err := mc.writeCommandPacketStr(comQuery, "SELECT @@"+name); err != nil { - return nil, err - } - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil { - rows := new(textRows) - rows.mc = mc - - if resLen > 0 { - // Columns - if err := mc.readUntilEOF(); err != nil { - return nil, err - } - } - - dest := make([]driver.Value, resLen) - if err = rows.readRow(dest); err == nil { - return dest[0].([]byte), mc.readUntilEOF() - } - } - return nil, err -} diff --git a/vendor/github.com/go-sql-driver/mysql/const.go b/vendor/github.com/go-sql-driver/mysql/const.go deleted file mode 100644 index dddc129..0000000 --- a/vendor/github.com/go-sql-driver/mysql/const.go +++ /dev/null @@ -1,162 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -const ( - minProtocolVersion byte = 10 - maxPacketSize = 1<<24 - 1 - timeFormat = "2006-01-02 15:04:05.999999" -) - -// MySQL constants documentation: -// http://dev.mysql.com/doc/internals/en/client-server-protocol.html - -const ( - iOK byte = 0x00 - iLocalInFile byte = 0xfb - iEOF byte = 0xfe - iERR byte = 0xff -) - -// https://dev.mysql.com/doc/internals/en/capability-flags.html#packet-Protocol::CapabilityFlags -type clientFlag uint32 - -const ( - clientLongPassword clientFlag = 1 << iota - clientFoundRows - clientLongFlag - clientConnectWithDB - clientNoSchema - clientCompress - clientODBC - clientLocalFiles - clientIgnoreSpace - clientProtocol41 - clientInteractive - clientSSL - clientIgnoreSIGPIPE - clientTransactions - clientReserved - clientSecureConn - clientMultiStatements - clientMultiResults - clientPSMultiResults - clientPluginAuth - clientConnectAttrs - clientPluginAuthLenEncClientData - clientCanHandleExpiredPasswords - clientSessionTrack - clientDeprecateEOF -) - -const ( - comQuit byte = iota + 1 - comInitDB - comQuery - comFieldList - comCreateDB - comDropDB - comRefresh - comShutdown - comStatistics - comProcessInfo - comConnect - comProcessKill - comDebug - comPing - comTime - comDelayedInsert - comChangeUser - comBinlogDump - comTableDump - comConnectOut - comRegisterSlave - comStmtPrepare - comStmtExecute - comStmtSendLongData - comStmtClose - comStmtReset - comSetOption - comStmtFetch -) - -// https://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnType -const ( - fieldTypeDecimal byte = iota - fieldTypeTiny - fieldTypeShort - fieldTypeLong - fieldTypeFloat - fieldTypeDouble - fieldTypeNULL - fieldTypeTimestamp - fieldTypeLongLong - fieldTypeInt24 - fieldTypeDate - fieldTypeTime - fieldTypeDateTime - fieldTypeYear - fieldTypeNewDate - fieldTypeVarChar - fieldTypeBit -) -const ( - fieldTypeNewDecimal byte = iota + 0xf6 - fieldTypeEnum - fieldTypeSet - fieldTypeTinyBLOB - fieldTypeMediumBLOB - fieldTypeLongBLOB - fieldTypeBLOB - fieldTypeVarString - fieldTypeString - fieldTypeGeometry -) - -type fieldFlag uint16 - -const ( - flagNotNULL fieldFlag = 1 << iota - flagPriKey - flagUniqueKey - flagMultipleKey - flagBLOB - flagUnsigned - flagZeroFill - flagBinary - flagEnum - flagAutoIncrement - flagTimestamp - flagSet - flagUnknown1 - flagUnknown2 - flagUnknown3 - flagUnknown4 -) - -// http://dev.mysql.com/doc/internals/en/status-flags.html -type statusFlag uint16 - -const ( - statusInTrans statusFlag = 1 << iota - statusInAutocommit - statusReserved // Not in documentation - statusMoreResultsExists - statusNoGoodIndexUsed - statusNoIndexUsed - statusCursorExists - statusLastRowSent - statusDbDropped - statusNoBackslashEscapes - statusMetadataChanged - statusQueryWasSlow - statusPsOutParams - statusInTransReadonly - statusSessionStateChanged -) diff --git a/vendor/github.com/go-sql-driver/mysql/driver.go b/vendor/github.com/go-sql-driver/mysql/driver.go deleted file mode 100644 index d310624..0000000 --- a/vendor/github.com/go-sql-driver/mysql/driver.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// The driver should be used via the database/sql package: -// -// import "database/sql" -// import _ "github.com/go-sql-driver/mysql" -// -// db, err := sql.Open("mysql", "user:password@/dbname") -// -// See https://github.com/go-sql-driver/mysql#usage for details -package mysql - -import ( - "database/sql" - "database/sql/driver" - "net" -) - -// This struct is exported to make the driver directly accessible. -// In general the driver is used via the database/sql package. -type MySQLDriver struct{} - -// DialFunc is a function which can be used to establish the network connection. -// Custom dial functions must be registered with RegisterDial -type DialFunc func(addr string) (net.Conn, error) - -var dials map[string]DialFunc - -// RegisterDial registers a custom dial function. It can then be used by the -// network address mynet(addr), where mynet is the registered new network. -// addr is passed as a parameter to the dial function. -func RegisterDial(net string, dial DialFunc) { - if dials == nil { - dials = make(map[string]DialFunc) - } - dials[net] = dial -} - -// Open new Connection. -// See https://github.com/go-sql-driver/mysql#dsn-data-source-name for how -// the DSN string is formated -func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { - var err error - - // New mysqlConn - mc := &mysqlConn{ - maxPacketAllowed: maxPacketSize, - maxWriteSize: maxPacketSize - 1, - } - mc.cfg, err = parseDSN(dsn) - if err != nil { - return nil, err - } - - // Connect to Server - if dial, ok := dials[mc.cfg.net]; ok { - mc.netConn, err = dial(mc.cfg.addr) - } else { - nd := net.Dialer{Timeout: mc.cfg.timeout} - mc.netConn, err = nd.Dial(mc.cfg.net, mc.cfg.addr) - } - if err != nil { - return nil, err - } - - // Enable TCP Keepalives on TCP connections - if tc, ok := mc.netConn.(*net.TCPConn); ok { - if err := tc.SetKeepAlive(true); err != nil { - // Don't send COM_QUIT before handshake. - mc.netConn.Close() - mc.netConn = nil - return nil, err - } - } - - mc.buf = newBuffer(mc.netConn) - - // Reading Handshake Initialization Packet - cipher, err := mc.readInitPacket() - if err != nil { - mc.Close() - return nil, err - } - - // Send Client Authentication Packet - if err = mc.writeAuthPacket(cipher); err != nil { - mc.Close() - return nil, err - } - - // Read Result Packet - err = mc.readResultOK() - if err != nil { - // Retry with old authentication method, if allowed - if mc.cfg != nil && mc.cfg.allowOldPasswords && err == ErrOldPassword { - if err = mc.writeOldAuthPacket(cipher); err != nil { - mc.Close() - return nil, err - } - if err = mc.readResultOK(); err != nil { - mc.Close() - return nil, err - } - } else if mc.cfg != nil && mc.cfg.allowCleartextPasswords && err == ErrCleartextPassword { - if err = mc.writeClearAuthPacket(); err != nil { - mc.Close() - return nil, err - } - if err = mc.readResultOK(); err != nil { - mc.Close() - return nil, err - } - } else { - mc.Close() - return nil, err - } - - } - - // Get max allowed packet size - maxap, err := mc.getSystemVar("max_allowed_packet") - if err != nil { - mc.Close() - return nil, err - } - mc.maxPacketAllowed = stringToInt(maxap) - 1 - if mc.maxPacketAllowed < maxPacketSize { - mc.maxWriteSize = mc.maxPacketAllowed - } - - // Handle DSN Params - err = mc.handleParams() - if err != nil { - mc.Close() - return nil, err - } - - return mc, nil -} - -func init() { - sql.Register("mysql", &MySQLDriver{}) -} diff --git a/vendor/github.com/go-sql-driver/mysql/errors.go b/vendor/github.com/go-sql-driver/mysql/errors.go deleted file mode 100644 index 44cf30d..0000000 --- a/vendor/github.com/go-sql-driver/mysql/errors.go +++ /dev/null @@ -1,131 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "errors" - "fmt" - "io" - "log" - "os" -) - -// Various errors the driver might return. Can change between driver versions. -var ( - ErrInvalidConn = errors.New("Invalid Connection") - ErrMalformPkt = errors.New("Malformed Packet") - ErrNoTLS = errors.New("TLS encryption requested but server does not support TLS") - ErrOldPassword = errors.New("This user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") - ErrCleartextPassword = errors.New("This user requires clear text authentication. If you still want to use it, please add 'allowCleartextPasswords=1' to your DSN.") - ErrUnknownPlugin = errors.New("The authentication plugin is not supported.") - ErrOldProtocol = errors.New("MySQL-Server does not support required Protocol 41+") - ErrPktSync = errors.New("Commands out of sync. You can't run this command now") - ErrPktSyncMul = errors.New("Commands out of sync. Did you run multiple statements at once?") - ErrPktTooLarge = errors.New("Packet for query is too large. You can change this value on the server by adjusting the 'max_allowed_packet' variable.") - ErrBusyBuffer = errors.New("Busy buffer") -) - -var errLog Logger = log.New(os.Stderr, "[MySQL] ", log.Ldate|log.Ltime|log.Lshortfile) - -// Logger is used to log critical error messages. -type Logger interface { - Print(v ...interface{}) -} - -// SetLogger is used to set the logger for critical errors. -// The initial logger is os.Stderr. -func SetLogger(logger Logger) error { - if logger == nil { - return errors.New("logger is nil") - } - errLog = logger - return nil -} - -// MySQLError is an error type which represents a single MySQL error -type MySQLError struct { - Number uint16 - Message string -} - -func (me *MySQLError) Error() string { - return fmt.Sprintf("Error %d: %s", me.Number, me.Message) -} - -// MySQLWarnings is an error type which represents a group of one or more MySQL -// warnings -type MySQLWarnings []MySQLWarning - -func (mws MySQLWarnings) Error() string { - var msg string - for i, warning := range mws { - if i > 0 { - msg += "\r\n" - } - msg += fmt.Sprintf( - "%s %s: %s", - warning.Level, - warning.Code, - warning.Message, - ) - } - return msg -} - -// MySQLWarning is an error type which represents a single MySQL warning. -// Warnings are returned in groups only. See MySQLWarnings -type MySQLWarning struct { - Level string - Code string - Message string -} - -func (mc *mysqlConn) getWarnings() (err error) { - rows, err := mc.Query("SHOW WARNINGS", nil) - if err != nil { - return - } - - var warnings = MySQLWarnings{} - var values = make([]driver.Value, 3) - - for { - err = rows.Next(values) - switch err { - case nil: - warning := MySQLWarning{} - - if raw, ok := values[0].([]byte); ok { - warning.Level = string(raw) - } else { - warning.Level = fmt.Sprintf("%s", values[0]) - } - if raw, ok := values[1].([]byte); ok { - warning.Code = string(raw) - } else { - warning.Code = fmt.Sprintf("%s", values[1]) - } - if raw, ok := values[2].([]byte); ok { - warning.Message = string(raw) - } else { - warning.Message = fmt.Sprintf("%s", values[0]) - } - - warnings = append(warnings, warning) - - case io.EOF: - return warnings - - default: - rows.Close() - return - } - } -} diff --git a/vendor/github.com/go-sql-driver/mysql/infile.go b/vendor/github.com/go-sql-driver/mysql/infile.go deleted file mode 100644 index 84c53a9..0000000 --- a/vendor/github.com/go-sql-driver/mysql/infile.go +++ /dev/null @@ -1,182 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "fmt" - "io" - "os" - "strings" - "sync" -) - -var ( - fileRegister map[string]bool - fileRegisterLock sync.RWMutex - readerRegister map[string]func() io.Reader - readerRegisterLock sync.RWMutex -) - -// RegisterLocalFile adds the given file to the file whitelist, -// so that it can be used by "LOAD DATA LOCAL INFILE ". -// Alternatively you can allow the use of all local files with -// the DSN parameter 'allowAllFiles=true' -// -// filePath := "/home/gopher/data.csv" -// mysql.RegisterLocalFile(filePath) -// err := db.Exec("LOAD DATA LOCAL INFILE '" + filePath + "' INTO TABLE foo") -// if err != nil { -// ... -// -func RegisterLocalFile(filePath string) { - fileRegisterLock.Lock() - // lazy map init - if fileRegister == nil { - fileRegister = make(map[string]bool) - } - - fileRegister[strings.Trim(filePath, `"`)] = true - fileRegisterLock.Unlock() -} - -// DeregisterLocalFile removes the given filepath from the whitelist. -func DeregisterLocalFile(filePath string) { - fileRegisterLock.Lock() - delete(fileRegister, strings.Trim(filePath, `"`)) - fileRegisterLock.Unlock() -} - -// RegisterReaderHandler registers a handler function which is used -// to receive a io.Reader. -// The Reader can be used by "LOAD DATA LOCAL INFILE Reader::". -// If the handler returns a io.ReadCloser Close() is called when the -// request is finished. -// -// mysql.RegisterReaderHandler("data", func() io.Reader { -// var csvReader io.Reader // Some Reader that returns CSV data -// ... // Open Reader here -// return csvReader -// }) -// err := db.Exec("LOAD DATA LOCAL INFILE 'Reader::data' INTO TABLE foo") -// if err != nil { -// ... -// -func RegisterReaderHandler(name string, handler func() io.Reader) { - readerRegisterLock.Lock() - // lazy map init - if readerRegister == nil { - readerRegister = make(map[string]func() io.Reader) - } - - readerRegister[name] = handler - readerRegisterLock.Unlock() -} - -// DeregisterReaderHandler removes the ReaderHandler function with -// the given name from the registry. -func DeregisterReaderHandler(name string) { - readerRegisterLock.Lock() - delete(readerRegister, name) - readerRegisterLock.Unlock() -} - -func deferredClose(err *error, closer io.Closer) { - closeErr := closer.Close() - if *err == nil { - *err = closeErr - } -} - -func (mc *mysqlConn) handleInFileRequest(name string) (err error) { - var rdr io.Reader - var data []byte - - if idx := strings.Index(name, "Reader::"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader - // The server might return an an absolute path. See issue #355. - name = name[idx+8:] - - readerRegisterLock.RLock() - handler, inMap := readerRegister[name] - readerRegisterLock.RUnlock() - - if inMap { - rdr = handler() - if rdr != nil { - data = make([]byte, 4+mc.maxWriteSize) - - if cl, ok := rdr.(io.Closer); ok { - defer deferredClose(&err, cl) - } - } else { - err = fmt.Errorf("Reader '%s' is ", name) - } - } else { - err = fmt.Errorf("Reader '%s' is not registered", name) - } - } else { // File - name = strings.Trim(name, `"`) - fileRegisterLock.RLock() - fr := fileRegister[name] - fileRegisterLock.RUnlock() - if mc.cfg.allowAllFiles || fr { - var file *os.File - var fi os.FileInfo - - if file, err = os.Open(name); err == nil { - defer deferredClose(&err, file) - - // get file size - if fi, err = file.Stat(); err == nil { - rdr = file - if fileSize := int(fi.Size()); fileSize <= mc.maxWriteSize { - data = make([]byte, 4+fileSize) - } else if fileSize <= mc.maxPacketAllowed { - data = make([]byte, 4+mc.maxWriteSize) - } else { - err = fmt.Errorf("Local File '%s' too large: Size: %d, Max: %d", name, fileSize, mc.maxPacketAllowed) - } - } - } - } else { - err = fmt.Errorf("Local File '%s' is not registered. Use the DSN parameter 'allowAllFiles=true' to allow all files", name) - } - } - - // send content packets - if err == nil { - var n int - for err == nil { - n, err = rdr.Read(data[4:]) - if n > 0 { - if ioErr := mc.writePacket(data[:4+n]); ioErr != nil { - return ioErr - } - } - } - if err == io.EOF { - err = nil - } - } - - // send empty packet (termination) - if data == nil { - data = make([]byte, 4) - } - if ioErr := mc.writePacket(data[:4]); ioErr != nil { - return ioErr - } - - // read OK packet - if err == nil { - return mc.readResultOK() - } else { - mc.readPacket() - } - return err -} diff --git a/vendor/github.com/go-sql-driver/mysql/packets.go b/vendor/github.com/go-sql-driver/mysql/packets.go deleted file mode 100644 index 76cb7c8..0000000 --- a/vendor/github.com/go-sql-driver/mysql/packets.go +++ /dev/null @@ -1,1182 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "bytes" - "crypto/tls" - "database/sql/driver" - "encoding/binary" - "fmt" - "io" - "math" - "time" -) - -// Packets documentation: -// http://dev.mysql.com/doc/internals/en/client-server-protocol.html - -// Read packet to buffer 'data' -func (mc *mysqlConn) readPacket() ([]byte, error) { - var payload []byte - for { - // Read packet header - data, err := mc.buf.readNext(4) - if err != nil { - errLog.Print(err) - mc.Close() - return nil, driver.ErrBadConn - } - - // Packet Length [24 bit] - pktLen := int(uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16) - - if pktLen < 1 { - errLog.Print(ErrMalformPkt) - mc.Close() - return nil, driver.ErrBadConn - } - - // Check Packet Sync [8 bit] - if data[3] != mc.sequence { - if data[3] > mc.sequence { - return nil, ErrPktSyncMul - } else { - return nil, ErrPktSync - } - } - mc.sequence++ - - // Read packet body [pktLen bytes] - data, err = mc.buf.readNext(pktLen) - if err != nil { - errLog.Print(err) - mc.Close() - return nil, driver.ErrBadConn - } - - isLastPacket := (pktLen < maxPacketSize) - - // Zero allocations for non-splitting packets - if isLastPacket && payload == nil { - return data, nil - } - - payload = append(payload, data...) - - if isLastPacket { - return payload, nil - } - } -} - -// Write packet buffer 'data' -func (mc *mysqlConn) writePacket(data []byte) error { - pktLen := len(data) - 4 - - if pktLen > mc.maxPacketAllowed { - return ErrPktTooLarge - } - - for { - var size int - if pktLen >= maxPacketSize { - data[0] = 0xff - data[1] = 0xff - data[2] = 0xff - size = maxPacketSize - } else { - data[0] = byte(pktLen) - data[1] = byte(pktLen >> 8) - data[2] = byte(pktLen >> 16) - size = pktLen - } - data[3] = mc.sequence - - // Write packet - n, err := mc.netConn.Write(data[:4+size]) - if err == nil && n == 4+size { - mc.sequence++ - if size != maxPacketSize { - return nil - } - pktLen -= size - data = data[size:] - continue - } - - // Handle error - if err == nil { // n != len(data) - errLog.Print(ErrMalformPkt) - } else { - errLog.Print(err) - } - return driver.ErrBadConn - } -} - -/****************************************************************************** -* Initialisation Process * -******************************************************************************/ - -// Handshake Initialization Packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::Handshake -func (mc *mysqlConn) readInitPacket() ([]byte, error) { - data, err := mc.readPacket() - if err != nil { - return nil, err - } - - if data[0] == iERR { - return nil, mc.handleErrorPacket(data) - } - - // protocol version [1 byte] - if data[0] < minProtocolVersion { - return nil, fmt.Errorf( - "Unsupported MySQL Protocol Version %d. Protocol Version %d or higher is required", - data[0], - minProtocolVersion, - ) - } - - // server version [null terminated string] - // connection id [4 bytes] - pos := 1 + bytes.IndexByte(data[1:], 0x00) + 1 + 4 - - // first part of the password cipher [8 bytes] - cipher := data[pos : pos+8] - - // (filler) always 0x00 [1 byte] - pos += 8 + 1 - - // capability flags (lower 2 bytes) [2 bytes] - mc.flags = clientFlag(binary.LittleEndian.Uint16(data[pos : pos+2])) - if mc.flags&clientProtocol41 == 0 { - return nil, ErrOldProtocol - } - if mc.flags&clientSSL == 0 && mc.cfg.tls != nil { - return nil, ErrNoTLS - } - pos += 2 - - if len(data) > pos { - // character set [1 byte] - // status flags [2 bytes] - // capability flags (upper 2 bytes) [2 bytes] - // length of auth-plugin-data [1 byte] - // reserved (all [00]) [10 bytes] - pos += 1 + 2 + 2 + 1 + 10 - - // second part of the password cipher [mininum 13 bytes], - // where len=MAX(13, length of auth-plugin-data - 8) - // - // The web documentation is ambiguous about the length. However, - // according to mysql-5.7/sql/auth/sql_authentication.cc line 538, - // the 13th byte is "\0 byte, terminating the second part of - // a scramble". So the second part of the password cipher is - // a NULL terminated string that's at least 13 bytes with the - // last byte being NULL. - // - // The official Python library uses the fixed length 12 - // which seems to work but technically could have a hidden bug. - cipher = append(cipher, data[pos:pos+12]...) - - // TODO: Verify string termination - // EOF if version (>= 5.5.7 and < 5.5.10) or (>= 5.6.0 and < 5.6.2) - // \NUL otherwise - // - //if data[len(data)-1] == 0 { - // return - //} - //return ErrMalformPkt - - // make a memory safe copy of the cipher slice - var b [20]byte - copy(b[:], cipher) - return b[:], nil - } - - // make a memory safe copy of the cipher slice - var b [8]byte - copy(b[:], cipher) - return b[:], nil -} - -// Client Authentication Packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse -func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { - // Adjust client flags based on server support - clientFlags := clientProtocol41 | - clientSecureConn | - clientLongPassword | - clientTransactions | - clientLocalFiles | - clientPluginAuth | - mc.flags&clientLongFlag - - if mc.cfg.clientFoundRows { - clientFlags |= clientFoundRows - } - - // To enable TLS / SSL - if mc.cfg.tls != nil { - clientFlags |= clientSSL - } - - // User Password - scrambleBuff := scramblePassword(cipher, []byte(mc.cfg.passwd)) - - pktLen := 4 + 4 + 1 + 23 + len(mc.cfg.user) + 1 + 1 + len(scrambleBuff) + 21 + 1 - - // To specify a db name - if n := len(mc.cfg.dbname); n > 0 { - clientFlags |= clientConnectWithDB - pktLen += n + 1 - } - - // Calculate packet length and get buffer with that size - data := mc.buf.takeSmallBuffer(pktLen + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // ClientFlags [32 bit] - data[4] = byte(clientFlags) - data[5] = byte(clientFlags >> 8) - data[6] = byte(clientFlags >> 16) - data[7] = byte(clientFlags >> 24) - - // MaxPacketSize [32 bit] (none) - data[8] = 0x00 - data[9] = 0x00 - data[10] = 0x00 - data[11] = 0x00 - - // Charset [1 byte] - data[12] = mc.cfg.collation - - // SSL Connection Request Packet - // http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::SSLRequest - if mc.cfg.tls != nil { - // Send TLS / SSL request packet - if err := mc.writePacket(data[:(4+4+1+23)+4]); err != nil { - return err - } - - // Switch to TLS - tlsConn := tls.Client(mc.netConn, mc.cfg.tls) - if err := tlsConn.Handshake(); err != nil { - return err - } - mc.netConn = tlsConn - mc.buf.rd = tlsConn - } - - // Filler [23 bytes] (all 0x00) - pos := 13 - for ; pos < 13+23; pos++ { - data[pos] = 0 - } - - // User [null terminated string] - if len(mc.cfg.user) > 0 { - pos += copy(data[pos:], mc.cfg.user) - } - data[pos] = 0x00 - pos++ - - // ScrambleBuffer [length encoded integer] - data[pos] = byte(len(scrambleBuff)) - pos += 1 + copy(data[pos+1:], scrambleBuff) - - // Databasename [null terminated string] - if len(mc.cfg.dbname) > 0 { - pos += copy(data[pos:], mc.cfg.dbname) - data[pos] = 0x00 - pos++ - } - - // Assume native client during response - pos += copy(data[pos:], "mysql_native_password") - data[pos] = 0x00 - - // Send Auth packet - return mc.writePacket(data) -} - -// Client old authentication packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeOldAuthPacket(cipher []byte) error { - // User password - scrambleBuff := scrambleOldPassword(cipher, []byte(mc.cfg.passwd)) - - // Calculate the packet length and add a tailing 0 - pktLen := len(scrambleBuff) + 1 - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the scrambled password [null terminated string] - copy(data[4:], scrambleBuff) - data[4+pktLen-1] = 0x00 - - return mc.writePacket(data) -} - -// Client clear text authentication packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeClearAuthPacket() error { - // Calculate the packet length and add a tailing 0 - pktLen := len(mc.cfg.passwd) + 1 - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the clear password [null terminated string] - copy(data[4:], mc.cfg.passwd) - data[4+pktLen-1] = 0x00 - - return mc.writePacket(data) -} - -/****************************************************************************** -* Command Packets * -******************************************************************************/ - -func (mc *mysqlConn) writeCommandPacket(command byte) error { - // Reset Packet Sequence - mc.sequence = 0 - - data := mc.buf.takeSmallBuffer(4 + 1) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Send CMD packet - return mc.writePacket(data) -} - -func (mc *mysqlConn) writeCommandPacketStr(command byte, arg string) error { - // Reset Packet Sequence - mc.sequence = 0 - - pktLen := 1 + len(arg) - data := mc.buf.takeBuffer(pktLen + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Add arg - copy(data[5:], arg) - - // Send CMD packet - return mc.writePacket(data) -} - -func (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error { - // Reset Packet Sequence - mc.sequence = 0 - - data := mc.buf.takeSmallBuffer(4 + 1 + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Add arg [32 bit] - data[5] = byte(arg) - data[6] = byte(arg >> 8) - data[7] = byte(arg >> 16) - data[8] = byte(arg >> 24) - - // Send CMD packet - return mc.writePacket(data) -} - -/****************************************************************************** -* Result Packets * -******************************************************************************/ - -// Returns error if Packet is not an 'Result OK'-Packet -func (mc *mysqlConn) readResultOK() error { - data, err := mc.readPacket() - if err == nil { - // packet indicator - switch data[0] { - - case iOK: - return mc.handleOkPacket(data) - - case iEOF: - if len(data) > 1 { - plugin := string(data[1:bytes.IndexByte(data, 0x00)]) - if plugin == "mysql_old_password" { - // using old_passwords - return ErrOldPassword - } else if plugin == "mysql_clear_password" { - // using clear text password - return ErrCleartextPassword - } else { - return ErrUnknownPlugin - } - } else { - return ErrOldPassword - } - - default: // Error otherwise - return mc.handleErrorPacket(data) - } - } - return err -} - -// Result Set Header Packet -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::Resultset -func (mc *mysqlConn) readResultSetHeaderPacket() (int, error) { - data, err := mc.readPacket() - if err == nil { - switch data[0] { - - case iOK: - return 0, mc.handleOkPacket(data) - - case iERR: - return 0, mc.handleErrorPacket(data) - - case iLocalInFile: - return 0, mc.handleInFileRequest(string(data[1:])) - } - - // column count - num, _, n := readLengthEncodedInteger(data) - if n-len(data) == 0 { - return int(num), nil - } - - return 0, ErrMalformPkt - } - return 0, err -} - -// Error Packet -// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-ERR_Packet -func (mc *mysqlConn) handleErrorPacket(data []byte) error { - if data[0] != iERR { - return ErrMalformPkt - } - - // 0xff [1 byte] - - // Error Number [16 bit uint] - errno := binary.LittleEndian.Uint16(data[1:3]) - - pos := 3 - - // SQL State [optional: # + 5bytes string] - if data[3] == 0x23 { - //sqlstate := string(data[4 : 4+5]) - pos = 9 - } - - // Error Message [string] - return &MySQLError{ - Number: errno, - Message: string(data[pos:]), - } -} - -// Ok Packet -// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-OK_Packet -func (mc *mysqlConn) handleOkPacket(data []byte) error { - var n, m int - - // 0x00 [1 byte] - - // Affected rows [Length Coded Binary] - mc.affectedRows, _, n = readLengthEncodedInteger(data[1:]) - - // Insert id [Length Coded Binary] - mc.insertId, _, m = readLengthEncodedInteger(data[1+n:]) - - // server_status [2 bytes] - mc.status = statusFlag(data[1+n+m]) | statusFlag(data[1+n+m+1])<<8 - - // warning count [2 bytes] - if !mc.strict { - return nil - } else { - pos := 1 + n + m + 2 - if binary.LittleEndian.Uint16(data[pos:pos+2]) > 0 { - return mc.getWarnings() - } - return nil - } -} - -// Read Packets as Field Packets until EOF-Packet or an Error appears -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnDefinition41 -func (mc *mysqlConn) readColumns(count int) ([]mysqlField, error) { - columns := make([]mysqlField, count) - - for i := 0; ; i++ { - data, err := mc.readPacket() - if err != nil { - return nil, err - } - - // EOF Packet - if data[0] == iEOF && (len(data) == 5 || len(data) == 1) { - if i == count { - return columns, nil - } - return nil, fmt.Errorf("ColumnsCount mismatch n:%d len:%d", count, len(columns)) - } - - // Catalog - pos, err := skipLengthEncodedString(data) - if err != nil { - return nil, err - } - - // Database [len coded string] - n, err := skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - - // Table [len coded string] - if mc.cfg.columnsWithAlias { - tableName, _, n, err := readLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - columns[i].tableName = string(tableName) - } else { - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - } - - // Original table [len coded string] - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - - // Name [len coded string] - name, _, n, err := readLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - columns[i].name = string(name) - pos += n - - // Original name [len coded string] - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - - // Filler [uint8] - // Charset [charset, collation uint8] - // Length [uint32] - pos += n + 1 + 2 + 4 - - // Field type [uint8] - columns[i].fieldType = data[pos] - pos++ - - // Flags [uint16] - columns[i].flags = fieldFlag(binary.LittleEndian.Uint16(data[pos : pos+2])) - pos += 2 - - // Decimals [uint8] - columns[i].decimals = data[pos] - //pos++ - - // Default value [len coded binary] - //if pos < len(data) { - // defaultVal, _, err = bytesToLengthCodedBinary(data[pos:]) - //} - } -} - -// Read Packets as Field Packets until EOF-Packet or an Error appears -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::ResultsetRow -func (rows *textRows) readRow(dest []driver.Value) error { - mc := rows.mc - - data, err := mc.readPacket() - if err != nil { - return err - } - - // EOF Packet - if data[0] == iEOF && len(data) == 5 { - rows.mc = nil - return io.EOF - } - if data[0] == iERR { - rows.mc = nil - return mc.handleErrorPacket(data) - } - - // RowSet Packet - var n int - var isNull bool - pos := 0 - - for i := range dest { - // Read bytes and convert to string - dest[i], isNull, n, err = readLengthEncodedString(data[pos:]) - pos += n - if err == nil { - if !isNull { - if !mc.parseTime { - continue - } else { - switch rows.columns[i].fieldType { - case fieldTypeTimestamp, fieldTypeDateTime, - fieldTypeDate, fieldTypeNewDate: - dest[i], err = parseDateTime( - string(dest[i].([]byte)), - mc.cfg.loc, - ) - if err == nil { - continue - } - default: - continue - } - } - - } else { - dest[i] = nil - continue - } - } - return err // err != nil - } - - return nil -} - -// Reads Packets until EOF-Packet or an Error appears. Returns count of Packets read -func (mc *mysqlConn) readUntilEOF() error { - for { - data, err := mc.readPacket() - - // No Err and no EOF Packet - if err == nil && data[0] != iEOF { - continue - } - return err // Err or EOF - } -} - -/****************************************************************************** -* Prepared Statements * -******************************************************************************/ - -// Prepare Result Packets -// http://dev.mysql.com/doc/internals/en/com-stmt-prepare-response.html -func (stmt *mysqlStmt) readPrepareResultPacket() (uint16, error) { - data, err := stmt.mc.readPacket() - if err == nil { - // packet indicator [1 byte] - if data[0] != iOK { - return 0, stmt.mc.handleErrorPacket(data) - } - - // statement id [4 bytes] - stmt.id = binary.LittleEndian.Uint32(data[1:5]) - - // Column count [16 bit uint] - columnCount := binary.LittleEndian.Uint16(data[5:7]) - - // Param count [16 bit uint] - stmt.paramCount = int(binary.LittleEndian.Uint16(data[7:9])) - - // Reserved [8 bit] - - // Warning count [16 bit uint] - if !stmt.mc.strict { - return columnCount, nil - } else { - // Check for warnings count > 0, only available in MySQL > 4.1 - if len(data) >= 12 && binary.LittleEndian.Uint16(data[10:12]) > 0 { - return columnCount, stmt.mc.getWarnings() - } - return columnCount, nil - } - } - return 0, err -} - -// http://dev.mysql.com/doc/internals/en/com-stmt-send-long-data.html -func (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error { - maxLen := stmt.mc.maxPacketAllowed - 1 - pktLen := maxLen - - // After the header (bytes 0-3) follows before the data: - // 1 byte command - // 4 bytes stmtID - // 2 bytes paramID - const dataOffset = 1 + 4 + 2 - - // Can not use the write buffer since - // a) the buffer is too small - // b) it is in use - data := make([]byte, 4+1+4+2+len(arg)) - - copy(data[4+dataOffset:], arg) - - for argLen := len(arg); argLen > 0; argLen -= pktLen - dataOffset { - if dataOffset+argLen < maxLen { - pktLen = dataOffset + argLen - } - - stmt.mc.sequence = 0 - // Add command byte [1 byte] - data[4] = comStmtSendLongData - - // Add stmtID [32 bit] - data[5] = byte(stmt.id) - data[6] = byte(stmt.id >> 8) - data[7] = byte(stmt.id >> 16) - data[8] = byte(stmt.id >> 24) - - // Add paramID [16 bit] - data[9] = byte(paramID) - data[10] = byte(paramID >> 8) - - // Send CMD packet - err := stmt.mc.writePacket(data[:4+pktLen]) - if err == nil { - data = data[pktLen-dataOffset:] - continue - } - return err - - } - - // Reset Packet Sequence - stmt.mc.sequence = 0 - return nil -} - -// Execute Prepared Statement -// http://dev.mysql.com/doc/internals/en/com-stmt-execute.html -func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error { - if len(args) != stmt.paramCount { - return fmt.Errorf( - "Arguments count mismatch (Got: %d Has: %d)", - len(args), - stmt.paramCount, - ) - } - - const minPktLen = 4 + 1 + 4 + 1 + 4 - mc := stmt.mc - - // Reset packet-sequence - mc.sequence = 0 - - var data []byte - - if len(args) == 0 { - data = mc.buf.takeBuffer(minPktLen) - } else { - data = mc.buf.takeCompleteBuffer() - } - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // command [1 byte] - data[4] = comStmtExecute - - // statement_id [4 bytes] - data[5] = byte(stmt.id) - data[6] = byte(stmt.id >> 8) - data[7] = byte(stmt.id >> 16) - data[8] = byte(stmt.id >> 24) - - // flags (0: CURSOR_TYPE_NO_CURSOR) [1 byte] - data[9] = 0x00 - - // iteration_count (uint32(1)) [4 bytes] - data[10] = 0x01 - data[11] = 0x00 - data[12] = 0x00 - data[13] = 0x00 - - if len(args) > 0 { - pos := minPktLen - - var nullMask []byte - if maskLen, typesLen := (len(args)+7)/8, 1+2*len(args); pos+maskLen+typesLen >= len(data) { - // buffer has to be extended but we don't know by how much so - // we depend on append after all data with known sizes fit. - // We stop at that because we deal with a lot of columns here - // which makes the required allocation size hard to guess. - tmp := make([]byte, pos+maskLen+typesLen) - copy(tmp[:pos], data[:pos]) - data = tmp - nullMask = data[pos : pos+maskLen] - pos += maskLen - } else { - nullMask = data[pos : pos+maskLen] - for i := 0; i < maskLen; i++ { - nullMask[i] = 0 - } - pos += maskLen - } - - // newParameterBoundFlag 1 [1 byte] - data[pos] = 0x01 - pos++ - - // type of each parameter [len(args)*2 bytes] - paramTypes := data[pos:] - pos += len(args) * 2 - - // value of each parameter [n bytes] - paramValues := data[pos:pos] - valuesCap := cap(paramValues) - - for i, arg := range args { - // build NULL-bitmap - if arg == nil { - nullMask[i/8] |= 1 << (uint(i) & 7) - paramTypes[i+i] = fieldTypeNULL - paramTypes[i+i+1] = 0x00 - continue - } - - // cache types and values - switch v := arg.(type) { - case int64: - paramTypes[i+i] = fieldTypeLongLong - paramTypes[i+i+1] = 0x00 - - if cap(paramValues)-len(paramValues)-8 >= 0 { - paramValues = paramValues[:len(paramValues)+8] - binary.LittleEndian.PutUint64( - paramValues[len(paramValues)-8:], - uint64(v), - ) - } else { - paramValues = append(paramValues, - uint64ToBytes(uint64(v))..., - ) - } - - case float64: - paramTypes[i+i] = fieldTypeDouble - paramTypes[i+i+1] = 0x00 - - if cap(paramValues)-len(paramValues)-8 >= 0 { - paramValues = paramValues[:len(paramValues)+8] - binary.LittleEndian.PutUint64( - paramValues[len(paramValues)-8:], - math.Float64bits(v), - ) - } else { - paramValues = append(paramValues, - uint64ToBytes(math.Float64bits(v))..., - ) - } - - case bool: - paramTypes[i+i] = fieldTypeTiny - paramTypes[i+i+1] = 0x00 - - if v { - paramValues = append(paramValues, 0x01) - } else { - paramValues = append(paramValues, 0x00) - } - - case []byte: - // Common case (non-nil value) first - if v != nil { - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 { - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(v)), - ) - paramValues = append(paramValues, v...) - } else { - if err := stmt.writeCommandLongData(i, v); err != nil { - return err - } - } - continue - } - - // Handle []byte(nil) as a NULL value - nullMask[i/8] |= 1 << (uint(i) & 7) - paramTypes[i+i] = fieldTypeNULL - paramTypes[i+i+1] = 0x00 - - case string: - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 { - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(v)), - ) - paramValues = append(paramValues, v...) - } else { - if err := stmt.writeCommandLongData(i, []byte(v)); err != nil { - return err - } - } - - case time.Time: - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - var val []byte - if v.IsZero() { - val = []byte("0000-00-00") - } else { - val = []byte(v.In(mc.cfg.loc).Format(timeFormat)) - } - - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(val)), - ) - paramValues = append(paramValues, val...) - - default: - return fmt.Errorf("Can't convert type: %T", arg) - } - } - - // Check if param values exceeded the available buffer - // In that case we must build the data packet with the new values buffer - if valuesCap != cap(paramValues) { - data = append(data[:pos], paramValues...) - mc.buf.buf = data - } - - pos += len(paramValues) - data = data[:pos] - } - - return mc.writePacket(data) -} - -// http://dev.mysql.com/doc/internals/en/binary-protocol-resultset-row.html -func (rows *binaryRows) readRow(dest []driver.Value) error { - data, err := rows.mc.readPacket() - if err != nil { - return err - } - - // packet indicator [1 byte] - if data[0] != iOK { - rows.mc = nil - // EOF Packet - if data[0] == iEOF && len(data) == 5 { - return io.EOF - } - - // Error otherwise - return rows.mc.handleErrorPacket(data) - } - - // NULL-bitmap, [(column-count + 7 + 2) / 8 bytes] - pos := 1 + (len(dest)+7+2)>>3 - nullMask := data[1:pos] - - for i := range dest { - // Field is NULL - // (byte >> bit-pos) % 2 == 1 - if ((nullMask[(i+2)>>3] >> uint((i+2)&7)) & 1) == 1 { - dest[i] = nil - continue - } - - // Convert to byte-coded string - switch rows.columns[i].fieldType { - case fieldTypeNULL: - dest[i] = nil - continue - - // Numeric Types - case fieldTypeTiny: - if rows.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(data[pos]) - } else { - dest[i] = int64(int8(data[pos])) - } - pos++ - continue - - case fieldTypeShort, fieldTypeYear: - if rows.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(binary.LittleEndian.Uint16(data[pos : pos+2])) - } else { - dest[i] = int64(int16(binary.LittleEndian.Uint16(data[pos : pos+2]))) - } - pos += 2 - continue - - case fieldTypeInt24, fieldTypeLong: - if rows.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(binary.LittleEndian.Uint32(data[pos : pos+4])) - } else { - dest[i] = int64(int32(binary.LittleEndian.Uint32(data[pos : pos+4]))) - } - pos += 4 - continue - - case fieldTypeLongLong: - if rows.columns[i].flags&flagUnsigned != 0 { - val := binary.LittleEndian.Uint64(data[pos : pos+8]) - if val > math.MaxInt64 { - dest[i] = uint64ToString(val) - } else { - dest[i] = int64(val) - } - } else { - dest[i] = int64(binary.LittleEndian.Uint64(data[pos : pos+8])) - } - pos += 8 - continue - - case fieldTypeFloat: - dest[i] = float64(math.Float32frombits(binary.LittleEndian.Uint32(data[pos : pos+4]))) - pos += 4 - continue - - case fieldTypeDouble: - dest[i] = math.Float64frombits(binary.LittleEndian.Uint64(data[pos : pos+8])) - pos += 8 - continue - - // Length coded Binary Strings - case fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar, - fieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB, - fieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB, - fieldTypeVarString, fieldTypeString, fieldTypeGeometry: - var isNull bool - var n int - dest[i], isNull, n, err = readLengthEncodedString(data[pos:]) - pos += n - if err == nil { - if !isNull { - continue - } else { - dest[i] = nil - continue - } - } - return err - - case - fieldTypeDate, fieldTypeNewDate, // Date YYYY-MM-DD - fieldTypeTime, // Time [-][H]HH:MM:SS[.fractal] - fieldTypeTimestamp, fieldTypeDateTime: // Timestamp YYYY-MM-DD HH:MM:SS[.fractal] - - num, isNull, n := readLengthEncodedInteger(data[pos:]) - pos += n - - switch { - case isNull: - dest[i] = nil - continue - case rows.columns[i].fieldType == fieldTypeTime: - // database/sql does not support an equivalent to TIME, return a string - var dstlen uint8 - switch decimals := rows.columns[i].decimals; decimals { - case 0x00, 0x1f: - dstlen = 8 - case 1, 2, 3, 4, 5, 6: - dstlen = 8 + 1 + decimals - default: - return fmt.Errorf( - "MySQL protocol error, illegal decimals value %d", - rows.columns[i].decimals, - ) - } - dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, true) - case rows.mc.parseTime: - dest[i], err = parseBinaryDateTime(num, data[pos:], rows.mc.cfg.loc) - default: - var dstlen uint8 - if rows.columns[i].fieldType == fieldTypeDate { - dstlen = 10 - } else { - switch decimals := rows.columns[i].decimals; decimals { - case 0x00, 0x1f: - dstlen = 19 - case 1, 2, 3, 4, 5, 6: - dstlen = 19 + 1 + decimals - default: - return fmt.Errorf( - "MySQL protocol error, illegal decimals value %d", - rows.columns[i].decimals, - ) - } - } - dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, false) - } - - if err == nil { - pos += int(num) - continue - } else { - return err - } - - // Please report if this happens! - default: - return fmt.Errorf("Unknown FieldType %d", rows.columns[i].fieldType) - } - } - - return nil -} diff --git a/vendor/github.com/go-sql-driver/mysql/result.go b/vendor/github.com/go-sql-driver/mysql/result.go deleted file mode 100644 index c6438d0..0000000 --- a/vendor/github.com/go-sql-driver/mysql/result.go +++ /dev/null @@ -1,22 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -type mysqlResult struct { - affectedRows int64 - insertId int64 -} - -func (res *mysqlResult) LastInsertId() (int64, error) { - return res.insertId, nil -} - -func (res *mysqlResult) RowsAffected() (int64, error) { - return res.affectedRows, nil -} diff --git a/vendor/github.com/go-sql-driver/mysql/rows.go b/vendor/github.com/go-sql-driver/mysql/rows.go deleted file mode 100644 index ba606e1..0000000 --- a/vendor/github.com/go-sql-driver/mysql/rows.go +++ /dev/null @@ -1,106 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "io" -) - -type mysqlField struct { - tableName string - name string - flags fieldFlag - fieldType byte - decimals byte -} - -type mysqlRows struct { - mc *mysqlConn - columns []mysqlField -} - -type binaryRows struct { - mysqlRows -} - -type textRows struct { - mysqlRows -} - -type emptyRows struct{} - -func (rows *mysqlRows) Columns() []string { - columns := make([]string, len(rows.columns)) - if rows.mc.cfg.columnsWithAlias { - for i := range columns { - if tableName := rows.columns[i].tableName; len(tableName) > 0 { - columns[i] = tableName + "." + rows.columns[i].name - } else { - columns[i] = rows.columns[i].name - } - } - } else { - for i := range columns { - columns[i] = rows.columns[i].name - } - } - return columns -} - -func (rows *mysqlRows) Close() error { - mc := rows.mc - if mc == nil { - return nil - } - if mc.netConn == nil { - return ErrInvalidConn - } - - // Remove unread packets from stream - err := mc.readUntilEOF() - rows.mc = nil - return err -} - -func (rows *binaryRows) Next(dest []driver.Value) error { - if mc := rows.mc; mc != nil { - if mc.netConn == nil { - return ErrInvalidConn - } - - // Fetch next row from stream - return rows.readRow(dest) - } - return io.EOF -} - -func (rows *textRows) Next(dest []driver.Value) error { - if mc := rows.mc; mc != nil { - if mc.netConn == nil { - return ErrInvalidConn - } - - // Fetch next row from stream - return rows.readRow(dest) - } - return io.EOF -} - -func (rows emptyRows) Columns() []string { - return nil -} - -func (rows emptyRows) Close() error { - return nil -} - -func (rows emptyRows) Next(dest []driver.Value) error { - return io.EOF -} diff --git a/vendor/github.com/go-sql-driver/mysql/statement.go b/vendor/github.com/go-sql-driver/mysql/statement.go deleted file mode 100644 index 6e869b3..0000000 --- a/vendor/github.com/go-sql-driver/mysql/statement.go +++ /dev/null @@ -1,150 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "fmt" - "reflect" - "strconv" -) - -type mysqlStmt struct { - mc *mysqlConn - id uint32 - paramCount int - columns []mysqlField // cached from the first query -} - -func (stmt *mysqlStmt) Close() error { - if stmt.mc == nil || stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return driver.ErrBadConn - } - - err := stmt.mc.writeCommandPacketUint32(comStmtClose, stmt.id) - stmt.mc = nil - return err -} - -func (stmt *mysqlStmt) NumInput() int { - return stmt.paramCount -} - -func (stmt *mysqlStmt) ColumnConverter(idx int) driver.ValueConverter { - return converter{} -} - -func (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) { - if stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := stmt.writeExecutePacket(args) - if err != nil { - return nil, err - } - - mc := stmt.mc - - mc.affectedRows = 0 - mc.insertId = 0 - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil { - if resLen > 0 { - // Columns - err = mc.readUntilEOF() - if err != nil { - return nil, err - } - - // Rows - err = mc.readUntilEOF() - } - if err == nil { - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, nil - } - } - - return nil, err -} - -func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) { - if stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := stmt.writeExecutePacket(args) - if err != nil { - return nil, err - } - - mc := stmt.mc - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return nil, err - } - - rows := new(binaryRows) - rows.mc = mc - - if resLen > 0 { - // Columns - // If not cached, read them and cache them - if stmt.columns == nil { - rows.columns, err = mc.readColumns(resLen) - stmt.columns = rows.columns - } else { - rows.columns = stmt.columns - err = mc.readUntilEOF() - } - } - - return rows, err -} - -type converter struct{} - -func (c converter) ConvertValue(v interface{}) (driver.Value, error) { - if driver.IsValue(v) { - return v, nil - } - - rv := reflect.ValueOf(v) - switch rv.Kind() { - case reflect.Ptr: - // indirect pointers - if rv.IsNil() { - return nil, nil - } - return c.ConvertValue(rv.Elem().Interface()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return rv.Int(), nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32: - return int64(rv.Uint()), nil - case reflect.Uint64: - u64 := rv.Uint() - if u64 >= 1<<63 { - return strconv.FormatUint(u64, 10), nil - } - return int64(u64), nil - case reflect.Float32, reflect.Float64: - return rv.Float(), nil - } - return nil, fmt.Errorf("unsupported type %T, a %s", v, rv.Kind()) -} diff --git a/vendor/github.com/go-sql-driver/mysql/transaction.go b/vendor/github.com/go-sql-driver/mysql/transaction.go deleted file mode 100644 index 33c749b..0000000 --- a/vendor/github.com/go-sql-driver/mysql/transaction.go +++ /dev/null @@ -1,31 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -type mysqlTx struct { - mc *mysqlConn -} - -func (tx *mysqlTx) Commit() (err error) { - if tx.mc == nil || tx.mc.netConn == nil { - return ErrInvalidConn - } - err = tx.mc.exec("COMMIT") - tx.mc = nil - return -} - -func (tx *mysqlTx) Rollback() (err error) { - if tx.mc == nil || tx.mc.netConn == nil { - return ErrInvalidConn - } - err = tx.mc.exec("ROLLBACK") - tx.mc = nil - return -} diff --git a/vendor/github.com/go-sql-driver/mysql/utils.go b/vendor/github.com/go-sql-driver/mysql/utils.go deleted file mode 100644 index 6a26ad1..0000000 --- a/vendor/github.com/go-sql-driver/mysql/utils.go +++ /dev/null @@ -1,973 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "crypto/sha1" - "crypto/tls" - "database/sql/driver" - "encoding/binary" - "errors" - "fmt" - "io" - "net" - "net/url" - "strings" - "time" -) - -var ( - tlsConfigRegister map[string]*tls.Config // Register for custom tls.Configs - - errInvalidDSNUnescaped = errors.New("Invalid DSN: Did you forget to escape a param value?") - errInvalidDSNAddr = errors.New("Invalid DSN: Network Address not terminated (missing closing brace)") - errInvalidDSNNoSlash = errors.New("Invalid DSN: Missing the slash separating the database name") - errInvalidDSNUnsafeCollation = errors.New("Invalid DSN: interpolateParams can be used with ascii, latin1, utf8 and utf8mb4 charset") -) - -func init() { - tlsConfigRegister = make(map[string]*tls.Config) -} - -// RegisterTLSConfig registers a custom tls.Config to be used with sql.Open. -// Use the key as a value in the DSN where tls=value. -// -// rootCertPool := x509.NewCertPool() -// pem, err := ioutil.ReadFile("/path/ca-cert.pem") -// if err != nil { -// log.Fatal(err) -// } -// if ok := rootCertPool.AppendCertsFromPEM(pem); !ok { -// log.Fatal("Failed to append PEM.") -// } -// clientCert := make([]tls.Certificate, 0, 1) -// certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem") -// if err != nil { -// log.Fatal(err) -// } -// clientCert = append(clientCert, certs) -// mysql.RegisterTLSConfig("custom", &tls.Config{ -// RootCAs: rootCertPool, -// Certificates: clientCert, -// }) -// db, err := sql.Open("mysql", "user@tcp(localhost:3306)/test?tls=custom") -// -func RegisterTLSConfig(key string, config *tls.Config) error { - if _, isBool := readBool(key); isBool || strings.ToLower(key) == "skip-verify" { - return fmt.Errorf("Key '%s' is reserved", key) - } - - tlsConfigRegister[key] = config - return nil -} - -// DeregisterTLSConfig removes the tls.Config associated with key. -func DeregisterTLSConfig(key string) { - delete(tlsConfigRegister, key) -} - -// parseDSN parses the DSN string to a config -func parseDSN(dsn string) (cfg *config, err error) { - // New config with some default values - cfg = &config{ - loc: time.UTC, - collation: defaultCollation, - } - - // [user[:password]@][net[(addr)]]/dbname[?param1=value1¶mN=valueN] - // Find the last '/' (since the password or the net addr might contain a '/') - foundSlash := false - for i := len(dsn) - 1; i >= 0; i-- { - if dsn[i] == '/' { - foundSlash = true - var j, k int - - // left part is empty if i <= 0 - if i > 0 { - // [username[:password]@][protocol[(address)]] - // Find the last '@' in dsn[:i] - for j = i; j >= 0; j-- { - if dsn[j] == '@' { - // username[:password] - // Find the first ':' in dsn[:j] - for k = 0; k < j; k++ { - if dsn[k] == ':' { - cfg.passwd = dsn[k+1 : j] - break - } - } - cfg.user = dsn[:k] - - break - } - } - - // [protocol[(address)]] - // Find the first '(' in dsn[j+1:i] - for k = j + 1; k < i; k++ { - if dsn[k] == '(' { - // dsn[i-1] must be == ')' if an address is specified - if dsn[i-1] != ')' { - if strings.ContainsRune(dsn[k+1:i], ')') { - return nil, errInvalidDSNUnescaped - } - return nil, errInvalidDSNAddr - } - cfg.addr = dsn[k+1 : i-1] - break - } - } - cfg.net = dsn[j+1 : k] - } - - // dbname[?param1=value1&...¶mN=valueN] - // Find the first '?' in dsn[i+1:] - for j = i + 1; j < len(dsn); j++ { - if dsn[j] == '?' { - if err = parseDSNParams(cfg, dsn[j+1:]); err != nil { - return - } - break - } - } - cfg.dbname = dsn[i+1 : j] - - break - } - } - - if !foundSlash && len(dsn) > 0 { - return nil, errInvalidDSNNoSlash - } - - if cfg.interpolateParams && unsafeCollations[cfg.collation] { - return nil, errInvalidDSNUnsafeCollation - } - - // Set default network if empty - if cfg.net == "" { - cfg.net = "tcp" - } - - // Set default address if empty - if cfg.addr == "" { - switch cfg.net { - case "tcp": - cfg.addr = "127.0.0.1:3306" - case "unix": - cfg.addr = "/tmp/mysql.sock" - default: - return nil, errors.New("Default addr for network '" + cfg.net + "' unknown") - } - - } - - return -} - -// parseDSNParams parses the DSN "query string" -// Values must be url.QueryEscape'ed -func parseDSNParams(cfg *config, params string) (err error) { - for _, v := range strings.Split(params, "&") { - param := strings.SplitN(v, "=", 2) - if len(param) != 2 { - continue - } - - // cfg params - switch value := param[1]; param[0] { - - // Enable client side placeholder substitution - case "interpolateParams": - var isBool bool - cfg.interpolateParams, isBool = readBool(value) - if !isBool { - return fmt.Errorf("Invalid Bool value: %s", value) - } - - // Disable INFILE whitelist / enable all files - case "allowAllFiles": - var isBool bool - cfg.allowAllFiles, isBool = readBool(value) - if !isBool { - return fmt.Errorf("Invalid Bool value: %s", value) - } - - // Use cleartext authentication mode (MySQL 5.5.10+) - case "allowCleartextPasswords": - var isBool bool - cfg.allowCleartextPasswords, isBool = readBool(value) - if !isBool { - return fmt.Errorf("Invalid Bool value: %s", value) - } - - // Use old authentication mode (pre MySQL 4.1) - case "allowOldPasswords": - var isBool bool - cfg.allowOldPasswords, isBool = readBool(value) - if !isBool { - return fmt.Errorf("Invalid Bool value: %s", value) - } - - // Switch "rowsAffected" mode - case "clientFoundRows": - var isBool bool - cfg.clientFoundRows, isBool = readBool(value) - if !isBool { - return fmt.Errorf("Invalid Bool value: %s", value) - } - - // Collation - case "collation": - collation, ok := collations[value] - if !ok { - // Note possibility for false negatives: - // could be triggered although the collation is valid if the - // collations map does not contain entries the server supports. - err = errors.New("unknown collation") - return - } - cfg.collation = collation - break - - case "columnsWithAlias": - var isBool bool - cfg.columnsWithAlias, isBool = readBool(value) - if !isBool { - return fmt.Errorf("Invalid Bool value: %s", value) - } - - // Time Location - case "loc": - if value, err = url.QueryUnescape(value); err != nil { - return - } - cfg.loc, err = time.LoadLocation(value) - if err != nil { - return - } - - // Dial Timeout - case "timeout": - cfg.timeout, err = time.ParseDuration(value) - if err != nil { - return - } - - // TLS-Encryption - case "tls": - boolValue, isBool := readBool(value) - if isBool { - if boolValue { - cfg.tls = &tls.Config{} - } - } else { - if strings.ToLower(value) == "skip-verify" { - cfg.tls = &tls.Config{InsecureSkipVerify: true} - } else if tlsConfig, ok := tlsConfigRegister[value]; ok { - if len(tlsConfig.ServerName) == 0 && !tlsConfig.InsecureSkipVerify { - host, _, err := net.SplitHostPort(cfg.addr) - if err == nil { - tlsConfig.ServerName = host - } - } - - cfg.tls = tlsConfig - } else { - return fmt.Errorf("Invalid value / unknown config name: %s", value) - } - } - - default: - // lazy init - if cfg.params == nil { - cfg.params = make(map[string]string) - } - - if cfg.params[param[0]], err = url.QueryUnescape(value); err != nil { - return - } - } - } - - return -} - -// Returns the bool value of the input. -// The 2nd return value indicates if the input was a valid bool value -func readBool(input string) (value bool, valid bool) { - switch input { - case "1", "true", "TRUE", "True": - return true, true - case "0", "false", "FALSE", "False": - return false, true - } - - // Not a valid bool value - return -} - -/****************************************************************************** -* Authentication * -******************************************************************************/ - -// Encrypt password using 4.1+ method -func scramblePassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - // stage1Hash = SHA1(password) - crypt := sha1.New() - crypt.Write(password) - stage1 := crypt.Sum(nil) - - // scrambleHash = SHA1(scramble + SHA1(stage1Hash)) - // inner Hash - crypt.Reset() - crypt.Write(stage1) - hash := crypt.Sum(nil) - - // outer Hash - crypt.Reset() - crypt.Write(scramble) - crypt.Write(hash) - scramble = crypt.Sum(nil) - - // token = scrambleHash XOR stage1Hash - for i := range scramble { - scramble[i] ^= stage1[i] - } - return scramble -} - -// Encrypt password using pre 4.1 (old password) method -// https://github.com/atcurtis/mariadb/blob/master/mysys/my_rnd.c -type myRnd struct { - seed1, seed2 uint32 -} - -const myRndMaxVal = 0x3FFFFFFF - -// Pseudo random number generator -func newMyRnd(seed1, seed2 uint32) *myRnd { - return &myRnd{ - seed1: seed1 % myRndMaxVal, - seed2: seed2 % myRndMaxVal, - } -} - -// Tested to be equivalent to MariaDB's floating point variant -// http://play.golang.org/p/QHvhd4qved -// http://play.golang.org/p/RG0q4ElWDx -func (r *myRnd) NextByte() byte { - r.seed1 = (r.seed1*3 + r.seed2) % myRndMaxVal - r.seed2 = (r.seed1 + r.seed2 + 33) % myRndMaxVal - - return byte(uint64(r.seed1) * 31 / myRndMaxVal) -} - -// Generate binary hash from byte string using insecure pre 4.1 method -func pwHash(password []byte) (result [2]uint32) { - var add uint32 = 7 - var tmp uint32 - - result[0] = 1345345333 - result[1] = 0x12345671 - - for _, c := range password { - // skip spaces and tabs in password - if c == ' ' || c == '\t' { - continue - } - - tmp = uint32(c) - result[0] ^= (((result[0] & 63) + add) * tmp) + (result[0] << 8) - result[1] += (result[1] << 8) ^ result[0] - add += tmp - } - - // Remove sign bit (1<<31)-1) - result[0] &= 0x7FFFFFFF - result[1] &= 0x7FFFFFFF - - return -} - -// Encrypt password using insecure pre 4.1 method -func scrambleOldPassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - scramble = scramble[:8] - - hashPw := pwHash(password) - hashSc := pwHash(scramble) - - r := newMyRnd(hashPw[0]^hashSc[0], hashPw[1]^hashSc[1]) - - var out [8]byte - for i := range out { - out[i] = r.NextByte() + 64 - } - - mask := r.NextByte() - for i := range out { - out[i] ^= mask - } - - return out[:] -} - -/****************************************************************************** -* Time related utils * -******************************************************************************/ - -// NullTime represents a time.Time that may be NULL. -// NullTime implements the Scanner interface so -// it can be used as a scan destination: -// -// var nt NullTime -// err := db.QueryRow("SELECT time FROM foo WHERE id=?", id).Scan(&nt) -// ... -// if nt.Valid { -// // use nt.Time -// } else { -// // NULL value -// } -// -// This NullTime implementation is not driver-specific -type NullTime struct { - Time time.Time - Valid bool // Valid is true if Time is not NULL -} - -// Scan implements the Scanner interface. -// The value type must be time.Time or string / []byte (formatted time-string), -// otherwise Scan fails. -func (nt *NullTime) Scan(value interface{}) (err error) { - if value == nil { - nt.Time, nt.Valid = time.Time{}, false - return - } - - switch v := value.(type) { - case time.Time: - nt.Time, nt.Valid = v, true - return - case []byte: - nt.Time, err = parseDateTime(string(v), time.UTC) - nt.Valid = (err == nil) - return - case string: - nt.Time, err = parseDateTime(v, time.UTC) - nt.Valid = (err == nil) - return - } - - nt.Valid = false - return fmt.Errorf("Can't convert %T to time.Time", value) -} - -// Value implements the driver Valuer interface. -func (nt NullTime) Value() (driver.Value, error) { - if !nt.Valid { - return nil, nil - } - return nt.Time, nil -} - -func parseDateTime(str string, loc *time.Location) (t time.Time, err error) { - base := "0000-00-00 00:00:00.0000000" - switch len(str) { - case 10, 19, 21, 22, 23, 24, 25, 26: // up to "YYYY-MM-DD HH:MM:SS.MMMMMM" - if str == base[:len(str)] { - return - } - t, err = time.Parse(timeFormat[:len(str)], str) - default: - err = fmt.Errorf("Invalid Time-String: %s", str) - return - } - - // Adjust location - if err == nil && loc != time.UTC { - y, mo, d := t.Date() - h, mi, s := t.Clock() - t, err = time.Date(y, mo, d, h, mi, s, t.Nanosecond(), loc), nil - } - - return -} - -func parseBinaryDateTime(num uint64, data []byte, loc *time.Location) (driver.Value, error) { - switch num { - case 0: - return time.Time{}, nil - case 4: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - 0, 0, 0, 0, - loc, - ), nil - case 7: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - int(data[4]), // hour - int(data[5]), // minutes - int(data[6]), // seconds - 0, - loc, - ), nil - case 11: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - int(data[4]), // hour - int(data[5]), // minutes - int(data[6]), // seconds - int(binary.LittleEndian.Uint32(data[7:11]))*1000, // nanoseconds - loc, - ), nil - } - return nil, fmt.Errorf("Invalid DATETIME-packet length %d", num) -} - -// zeroDateTime is used in formatBinaryDateTime to avoid an allocation -// if the DATE or DATETIME has the zero value. -// It must never be changed. -// The current behavior depends on database/sql copying the result. -var zeroDateTime = []byte("0000-00-00 00:00:00.000000") - -const digits01 = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" -const digits10 = "0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999" - -func formatBinaryDateTime(src []byte, length uint8, justTime bool) (driver.Value, error) { - // length expects the deterministic length of the zero value, - // negative time and 100+ hours are automatically added if needed - if len(src) == 0 { - if justTime { - return zeroDateTime[11 : 11+length], nil - } - return zeroDateTime[:length], nil - } - var dst []byte // return value - var pt, p1, p2, p3 byte // current digit pair - var zOffs byte // offset of value in zeroDateTime - if justTime { - switch length { - case - 8, // time (can be up to 10 when negative and 100+ hours) - 10, 11, 12, 13, 14, 15: // time with fractional seconds - default: - return nil, fmt.Errorf("illegal TIME length %d", length) - } - switch len(src) { - case 8, 12: - default: - return nil, fmt.Errorf("Invalid TIME-packet length %d", len(src)) - } - // +2 to enable negative time and 100+ hours - dst = make([]byte, 0, length+2) - if src[0] == 1 { - dst = append(dst, '-') - } - if src[1] != 0 { - hour := uint16(src[1])*24 + uint16(src[5]) - pt = byte(hour / 100) - p1 = byte(hour - 100*uint16(pt)) - dst = append(dst, digits01[pt]) - } else { - p1 = src[5] - } - zOffs = 11 - src = src[6:] - } else { - switch length { - case 10, 19, 21, 22, 23, 24, 25, 26: - default: - t := "DATE" - if length > 10 { - t += "TIME" - } - return nil, fmt.Errorf("illegal %s length %d", t, length) - } - switch len(src) { - case 4, 7, 11: - default: - t := "DATE" - if length > 10 { - t += "TIME" - } - return nil, fmt.Errorf("illegal %s-packet length %d", t, len(src)) - } - dst = make([]byte, 0, length) - // start with the date - year := binary.LittleEndian.Uint16(src[:2]) - pt = byte(year / 100) - p1 = byte(year - 100*uint16(pt)) - p2, p3 = src[2], src[3] - dst = append(dst, - digits10[pt], digits01[pt], - digits10[p1], digits01[p1], '-', - digits10[p2], digits01[p2], '-', - digits10[p3], digits01[p3], - ) - if length == 10 { - return dst, nil - } - if len(src) == 4 { - return append(dst, zeroDateTime[10:length]...), nil - } - dst = append(dst, ' ') - p1 = src[4] // hour - src = src[5:] - } - // p1 is 2-digit hour, src is after hour - p2, p3 = src[0], src[1] - dst = append(dst, - digits10[p1], digits01[p1], ':', - digits10[p2], digits01[p2], ':', - digits10[p3], digits01[p3], - ) - if length <= byte(len(dst)) { - return dst, nil - } - src = src[2:] - if len(src) == 0 { - return append(dst, zeroDateTime[19:zOffs+length]...), nil - } - microsecs := binary.LittleEndian.Uint32(src[:4]) - p1 = byte(microsecs / 10000) - microsecs -= 10000 * uint32(p1) - p2 = byte(microsecs / 100) - microsecs -= 100 * uint32(p2) - p3 = byte(microsecs) - switch decimals := zOffs + length - 20; decimals { - default: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - digits10[p3], digits01[p3], - ), nil - case 1: - return append(dst, '.', - digits10[p1], - ), nil - case 2: - return append(dst, '.', - digits10[p1], digits01[p1], - ), nil - case 3: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], - ), nil - case 4: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - ), nil - case 5: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - digits10[p3], - ), nil - } -} - -/****************************************************************************** -* Convert from and to bytes * -******************************************************************************/ - -func uint64ToBytes(n uint64) []byte { - return []byte{ - byte(n), - byte(n >> 8), - byte(n >> 16), - byte(n >> 24), - byte(n >> 32), - byte(n >> 40), - byte(n >> 48), - byte(n >> 56), - } -} - -func uint64ToString(n uint64) []byte { - var a [20]byte - i := 20 - - // U+0030 = 0 - // ... - // U+0039 = 9 - - var q uint64 - for n >= 10 { - i-- - q = n / 10 - a[i] = uint8(n-q*10) + 0x30 - n = q - } - - i-- - a[i] = uint8(n) + 0x30 - - return a[i:] -} - -// treats string value as unsigned integer representation -func stringToInt(b []byte) int { - val := 0 - for i := range b { - val *= 10 - val += int(b[i] - 0x30) - } - return val -} - -// returns the string read as a bytes slice, wheter the value is NULL, -// the number of bytes read and an error, in case the string is longer than -// the input slice -func readLengthEncodedString(b []byte) ([]byte, bool, int, error) { - // Get length - num, isNull, n := readLengthEncodedInteger(b) - if num < 1 { - return b[n:n], isNull, n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return b[n-int(num) : n], false, n, nil - } - return nil, false, n, io.EOF -} - -// returns the number of bytes skipped and an error, in case the string is -// longer than the input slice -func skipLengthEncodedString(b []byte) (int, error) { - // Get length - num, _, n := readLengthEncodedInteger(b) - if num < 1 { - return n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return n, nil - } - return n, io.EOF -} - -// returns the number read, whether the value is NULL and the number of bytes read -func readLengthEncodedInteger(b []byte) (uint64, bool, int) { - // See issue #349 - if len(b) == 0 { - return 0, true, 1 - } - switch b[0] { - - // 251: NULL - case 0xfb: - return 0, true, 1 - - // 252: value of following 2 - case 0xfc: - return uint64(b[1]) | uint64(b[2])<<8, false, 3 - - // 253: value of following 3 - case 0xfd: - return uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16, false, 4 - - // 254: value of following 8 - case 0xfe: - return uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16 | - uint64(b[4])<<24 | uint64(b[5])<<32 | uint64(b[6])<<40 | - uint64(b[7])<<48 | uint64(b[8])<<56, - false, 9 - } - - // 0-250: value of first byte - return uint64(b[0]), false, 1 -} - -// encodes a uint64 value and appends it to the given bytes slice -func appendLengthEncodedInteger(b []byte, n uint64) []byte { - switch { - case n <= 250: - return append(b, byte(n)) - - case n <= 0xffff: - return append(b, 0xfc, byte(n), byte(n>>8)) - - case n <= 0xffffff: - return append(b, 0xfd, byte(n), byte(n>>8), byte(n>>16)) - } - return append(b, 0xfe, byte(n), byte(n>>8), byte(n>>16), byte(n>>24), - byte(n>>32), byte(n>>40), byte(n>>48), byte(n>>56)) -} - -// reserveBuffer checks cap(buf) and expand buffer to len(buf) + appendSize. -// If cap(buf) is not enough, reallocate new buffer. -func reserveBuffer(buf []byte, appendSize int) []byte { - newSize := len(buf) + appendSize - if cap(buf) < newSize { - // Grow buffer exponentially - newBuf := make([]byte, len(buf)*2+appendSize) - copy(newBuf, buf) - buf = newBuf - } - return buf[:newSize] -} - -// escapeBytesBackslash escapes []byte with backslashes (\) -// This escapes the contents of a string (provided as []byte) by adding backslashes before special -// characters, and turning others into specific escape sequences, such as -// turning newlines into \n and null bytes into \0. -// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L823-L932 -func escapeBytesBackslash(buf, v []byte) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for _, c := range v { - switch c { - case '\x00': - buf[pos] = '\\' - buf[pos+1] = '0' - pos += 2 - case '\n': - buf[pos] = '\\' - buf[pos+1] = 'n' - pos += 2 - case '\r': - buf[pos] = '\\' - buf[pos+1] = 'r' - pos += 2 - case '\x1a': - buf[pos] = '\\' - buf[pos+1] = 'Z' - pos += 2 - case '\'': - buf[pos] = '\\' - buf[pos+1] = '\'' - pos += 2 - case '"': - buf[pos] = '\\' - buf[pos+1] = '"' - pos += 2 - case '\\': - buf[pos] = '\\' - buf[pos+1] = '\\' - pos += 2 - default: - buf[pos] = c - pos += 1 - } - } - - return buf[:pos] -} - -// escapeStringBackslash is similar to escapeBytesBackslash but for string. -func escapeStringBackslash(buf []byte, v string) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for i := 0; i < len(v); i++ { - c := v[i] - switch c { - case '\x00': - buf[pos] = '\\' - buf[pos+1] = '0' - pos += 2 - case '\n': - buf[pos] = '\\' - buf[pos+1] = 'n' - pos += 2 - case '\r': - buf[pos] = '\\' - buf[pos+1] = 'r' - pos += 2 - case '\x1a': - buf[pos] = '\\' - buf[pos+1] = 'Z' - pos += 2 - case '\'': - buf[pos] = '\\' - buf[pos+1] = '\'' - pos += 2 - case '"': - buf[pos] = '\\' - buf[pos+1] = '"' - pos += 2 - case '\\': - buf[pos] = '\\' - buf[pos+1] = '\\' - pos += 2 - default: - buf[pos] = c - pos += 1 - } - } - - return buf[:pos] -} - -// escapeBytesQuotes escapes apostrophes in []byte by doubling them up. -// This escapes the contents of a string by doubling up any apostrophes that -// it contains. This is used when the NO_BACKSLASH_ESCAPES SQL_MODE is in -// effect on the server. -// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L963-L1038 -func escapeBytesQuotes(buf, v []byte) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for _, c := range v { - if c == '\'' { - buf[pos] = '\'' - buf[pos+1] = '\'' - pos += 2 - } else { - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeStringQuotes is similar to escapeBytesQuotes but for string. -func escapeStringQuotes(buf []byte, v string) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for i := 0; i < len(v); i++ { - c := v[i] - if c == '\'' { - buf[pos] = '\'' - buf[pos+1] = '\'' - pos += 2 - } else { - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} diff --git a/vendor/github.com/jmoiron/sqlx/.gitignore b/vendor/github.com/jmoiron/sqlx/.gitignore deleted file mode 100644 index 529841c..0000000 --- a/vendor/github.com/jmoiron/sqlx/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -tags -environ diff --git a/vendor/github.com/jmoiron/sqlx/LICENSE b/vendor/github.com/jmoiron/sqlx/LICENSE deleted file mode 100644 index 0d31edf..0000000 --- a/vendor/github.com/jmoiron/sqlx/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - Copyright (c) 2013, Jason Moiron - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - diff --git a/vendor/github.com/jmoiron/sqlx/README.md b/vendor/github.com/jmoiron/sqlx/README.md deleted file mode 100644 index 4e3eb6d..0000000 --- a/vendor/github.com/jmoiron/sqlx/README.md +++ /dev/null @@ -1,258 +0,0 @@ -#sqlx - -[![Build Status](https://drone.io/github.com/jmoiron/sqlx/status.png)](https://drone.io/github.com/jmoiron/sqlx/latest) [![Godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/jmoiron/sqlx) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/jmoiron/sqlx/master/LICENSE) - -sqlx is a library which provides a set of extensions on go's standard -`database/sql` library. The sqlx versions of `sql.DB`, `sql.TX`, `sql.Stmt`, -et al. all leave the underlying interfaces untouched, so that their interfaces -are a superset on the standard ones. This makes it relatively painless to -integrate existing codebases using database/sql with sqlx. - -Major additional concepts are: - -* Marshal rows into structs (with embedded struct support), maps, and slices -* Named parameter support including prepared statements -* `Get` and `Select` to go quickly from query to struct/slice -* `LoadFile` for executing statements from a file - -There is now some [fairly comprehensive documentation](http://jmoiron.github.io/sqlx/) for sqlx. -You can also read the usage below for a quick sample on how sqlx works, or check out the [API -documentation on godoc](http://godoc.org/github.com/jmoiron/sqlx). - -## Recent Changes - -The ability to use basic types as Select and Get destinations was added. This -is only valid when there is one column in the result set, and both functions -return an error if this isn't the case. This allows for much simpler patterns -of access for single column results: - -```go -var count int -err := db.Get(&count, "SELECT count(*) FROM person;") - -var names []string -err := db.Select(&names, "SELECT name FROM person;") -``` - -See the note on Scannability at the bottom of this README for some more info. - -### Backwards Compatibility - -There is no Go1-like promise of absolute stability, but I take the issue -seriously and will maintain the library in a compatible state unless vital -bugs prevent me from doing so. Since [#59](https://github.com/jmoiron/sqlx/issues/59) and [#60](https://github.com/jmoiron/sqlx/issues/60) necessitated -breaking behavior, a wider API cleanup was done at the time of fixing. - -## install - - go get github.com/jmoiron/sqlx - -## issues - -Row headers can be ambiguous (`SELECT 1 AS a, 2 AS a`), and the result of -`Columns()` can have duplicate names on queries like: - -```sql -SELECT a.id, a.name, b.id, b.name FROM foos AS a JOIN foos AS b ON a.parent = b.id; -``` - -making a struct or map destination ambiguous. Use `AS` in your queries -to give rows distinct names, `rows.Scan` to scan them manually, or -`SliceScan` to get a slice of results. - -## usage - -Below is an example which shows some common use cases for sqlx. Check -[sqlx_test.go](https://github.com/jmoiron/sqlx/blob/master/sqlx_test.go) for more -usage. - - -```go -package main - -import ( - _ "github.com/lib/pq" - "database/sql" - "github.com/jmoiron/sqlx" - "log" -) - -var schema = ` -CREATE TABLE person ( - first_name text, - last_name text, - email text -); - -CREATE TABLE place ( - country text, - city text NULL, - telcode integer -)` - -type Person struct { - FirstName string `db:"first_name"` - LastName string `db:"last_name"` - Email string -} - -type Place struct { - Country string - City sql.NullString - TelCode int -} - -func main() { - // this connects & tries a simple 'SELECT 1', panics on error - // use sqlx.Open() for sql.Open() semantics - db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable") - if err != nil { - log.Fatalln(err) - } - - // exec the schema or fail; multi-statement Exec behavior varies between - // database drivers; pq will exec them all, sqlite3 won't, ymmv - db.MustExec(schema) - - tx := db.MustBegin() - tx.MustExec("INSERT INTO person (first_name, last_name, email) VALUES ($1, $2, $3)", "Jason", "Moiron", "jmoiron@jmoiron.net") - tx.MustExec("INSERT INTO person (first_name, last_name, email) VALUES ($1, $2, $3)", "John", "Doe", "johndoeDNE@gmail.net") - tx.MustExec("INSERT INTO place (country, city, telcode) VALUES ($1, $2, $3)", "United States", "New York", "1") - tx.MustExec("INSERT INTO place (country, telcode) VALUES ($1, $2)", "Hong Kong", "852") - tx.MustExec("INSERT INTO place (country, telcode) VALUES ($1, $2)", "Singapore", "65") - // Named queries can use structs, so if you have an existing struct (i.e. person := &Person{}) that you have populated, you can pass it in as &person - tx.NamedExec("INSERT INTO person (first_name, last_name, email) VALUES (:first_name, :last_name, :email)", &Person{"Jane", "Citizen", "jane.citzen@example.com"}) - tx.Commit() - - // Query the database, storing results in a []Person (wrapped in []interface{}) - people := []Person{} - db.Select(&people, "SELECT * FROM person ORDER BY first_name ASC") - jason, john := people[0], people[1] - - fmt.Printf("%#v\n%#v", jason, john) - // Person{FirstName:"Jason", LastName:"Moiron", Email:"jmoiron@jmoiron.net"} - // Person{FirstName:"John", LastName:"Doe", Email:"johndoeDNE@gmail.net"} - - // You can also get a single result, a la QueryRow - jason = Person{} - err = db.Get(&jason, "SELECT * FROM person WHERE first_name=$1", "Jason") - fmt.Printf("%#v\n", jason) - // Person{FirstName:"Jason", LastName:"Moiron", Email:"jmoiron@jmoiron.net"} - - // if you have null fields and use SELECT *, you must use sql.Null* in your struct - places := []Place{} - err = db.Select(&places, "SELECT * FROM place ORDER BY telcode ASC") - if err != nil { - fmt.Println(err) - return - } - usa, singsing, honkers := places[0], places[1], places[2] - - fmt.Printf("%#v\n%#v\n%#v\n", usa, singsing, honkers) - // Place{Country:"United States", City:sql.NullString{String:"New York", Valid:true}, TelCode:1} - // Place{Country:"Singapore", City:sql.NullString{String:"", Valid:false}, TelCode:65} - // Place{Country:"Hong Kong", City:sql.NullString{String:"", Valid:false}, TelCode:852} - - // Loop through rows using only one struct - place := Place{} - rows, err := db.Queryx("SELECT * FROM place") - for rows.Next() { - err := rows.StructScan(&place) - if err != nil { - log.Fatalln(err) - } - fmt.Printf("%#v\n", place) - } - // Place{Country:"United States", City:sql.NullString{String:"New York", Valid:true}, TelCode:1} - // Place{Country:"Hong Kong", City:sql.NullString{String:"", Valid:false}, TelCode:852} - // Place{Country:"Singapore", City:sql.NullString{String:"", Valid:false}, TelCode:65} - - // Named queries, using `:name` as the bindvar. Automatic bindvar support - // which takes into account the dbtype based on the driverName on sqlx.Open/Connect - _, err = db.NamedExec(`INSERT INTO person (first_name,last_name,email) VALUES (:first,:last,:email)`, - map[string]interface{}{ - "first": "Bin", - "last": "Smuth", - "email": "bensmith@allblacks.nz", - }) - - // Selects Mr. Smith from the database - rows, err = db.NamedQuery(`SELECT * FROM person WHERE first_name=:fn`, map[string]interface{}{"fn": "Bin"}) - - // Named queries can also use structs. Their bind names follow the same rules - // as the name -> db mapping, so struct fields are lowercased and the `db` tag - // is taken into consideration. - rows, err = db.NamedQuery(`SELECT * FROM person WHERE first_name=:first_name`, jason) -} -``` - -## Scannability - -Get and Select are able to take base types, so the following is now possible: - -```go -var name string -db.Get(&name, "SELECT first_name FROM person WHERE id=$1", 10) - -var ids []int64 -db.Select(&ids, "SELECT id FROM person LIMIT 20;") -``` - -This can get complicated with destination types which are structs, like `sql.NullString`. Because of this, straightforward rules for *scannability* had to be developed. Iff something is "Scannable", then it is used directly in `rows.Scan`; if it's not, then the standard sqlx struct rules apply. - -Something is scannable if any of the following are true: - -* It is not a struct, ie. `reflect.ValueOf(v).Kind() != reflect.Struct` -* It implements the `sql.Scanner` interface -* It has no exported fields (eg. `time.Time`) - -## embedded structs - -Scan targets obey Go attribute rules directly, including nested embedded structs. Older versions of sqlx would attempt to also descend into non-embedded structs, but this is no longer supported. - -Go makes *accessing* '[ambiguous selectors](http://play.golang.org/p/MGRxdjLaUc)' a compile time error, defining structs with ambiguous selectors is legal. Sqlx will decide which field to use on a struct based on a breadth first search of the struct and any structs it embeds, as specified by the order of the fields as accessible by `reflect`, which generally means in source-order. This means that sqlx chooses the outer-most, top-most matching name for targets, even when the selector might technically be ambiguous. - -## scan safety - -By default, scanning into structs requires the structs to have fields for all of the -columns in the query. This was done for a few reasons: - -* A mistake in naming during development could lead you to believe that data is - being written to a field when actually it can't be found and it is being dropped -* This behavior mirrors the behavior of the Go compiler with respect to unused - variables -* Selecting more data than you need is wasteful (more data on the wire, more time - marshalling, etc) - -Unlike Marshallers in the stdlib, the programmer scanning an sql result into a struct -will generally have a full understanding of what the underlying data model is *and* -full control over the SQL statement. - -Despite this, there are use cases where it's convenient to be able to ignore unknown -columns. In most of these cases, you might be better off with `ScanSlice`, but where -you want to still use structs, there is now the `Unsafe` method. Its usage is most -simply shown in an example: - -```go - db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable") - if err != nil { - log.Fatal(err) - } - - type Person { - Name string - } - var p Person - - // This fails, because there is no destination for location in Person - err = db.Get(&p, "SELECT name, location FROM person LIMIT 1") - - udb := db.Unsafe() - - // This succeeds and just sets `Name` in the p struct - err = udb.Get(&p, "SELECT name, location FROM person LIMIT 1") -``` - -The `Unsafe` method is implemented on `Tx`, `DB`, and `Stmt`. When you use an unsafe -`Tx` or `DB` to create a new `Tx` or `Stmt`, those inherit its lack of safety. - diff --git a/vendor/github.com/jmoiron/sqlx/bind.go b/vendor/github.com/jmoiron/sqlx/bind.go deleted file mode 100644 index 2f1ec2b..0000000 --- a/vendor/github.com/jmoiron/sqlx/bind.go +++ /dev/null @@ -1,84 +0,0 @@ -package sqlx - -import ( - "bytes" - "strconv" -) - -// Bindvar types supported by Rebind, BindMap and BindStruct. -const ( - UNKNOWN = iota - QUESTION - DOLLAR - NAMED -) - -// BindType returns the bindtype for a given database given a drivername. -func BindType(driverName string) int { - switch driverName { - case "postgres", "pgx": - return DOLLAR - case "mysql": - return QUESTION - case "sqlite3": - return QUESTION - case "oci8": - return NAMED - } - return UNKNOWN -} - -// FIXME: this should be able to be tolerant of escaped ?'s in queries without -// losing much speed, and should be to avoid confusion. - -// FIXME: this is now produces the wrong results for oracle's NAMED bindtype - -// Rebind a query from the default bindtype (QUESTION) to the target bindtype. -func Rebind(bindType int, query string) string { - if bindType != DOLLAR { - return query - } - - qb := []byte(query) - // Add space enough for 10 params before we have to allocate - rqb := make([]byte, 0, len(qb)+10) - j := 1 - for _, b := range qb { - if b == '?' { - rqb = append(rqb, '$') - for _, b := range strconv.Itoa(j) { - rqb = append(rqb, byte(b)) - } - j++ - } else { - rqb = append(rqb, b) - } - } - return string(rqb) -} - -// Experimental implementation of Rebind which uses a bytes.Buffer. The code is -// much simpler and should be more resistant to odd unicode, but it is twice as -// slow. Kept here for benchmarking purposes and to possibly replace Rebind if -// problems arise with its somewhat naive handling of unicode. - -func rebindBuff(bindType int, query string) string { - if bindType != DOLLAR { - return query - } - - b := make([]byte, 0, len(query)) - rqb := bytes.NewBuffer(b) - j := 1 - for _, r := range query { - if r == '?' { - rqb.WriteRune('$') - rqb.WriteString(strconv.Itoa(j)) - j++ - } else { - rqb.WriteRune(r) - } - } - - return rqb.String() -} diff --git a/vendor/github.com/jmoiron/sqlx/doc.go b/vendor/github.com/jmoiron/sqlx/doc.go deleted file mode 100644 index e2b4e60..0000000 --- a/vendor/github.com/jmoiron/sqlx/doc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Package sqlx provides general purpose extensions to database/sql. -// -// It is intended to seamlessly wrap database/sql and provide convenience -// methods which are useful in the development of database driven applications. -// None of the underlying database/sql methods are changed. Instead all extended -// behavior is implemented through new methods defined on wrapper types. -// -// Additions include scanning into structs, named query support, rebinding -// queries for different drivers, convenient shorthands for common error handling -// and more. -// -package sqlx diff --git a/vendor/github.com/jmoiron/sqlx/named.go b/vendor/github.com/jmoiron/sqlx/named.go deleted file mode 100644 index d753518..0000000 --- a/vendor/github.com/jmoiron/sqlx/named.go +++ /dev/null @@ -1,321 +0,0 @@ -package sqlx - -// Named Query Support -// -// * BindMap - bind query bindvars to map/struct args -// * NamedExec, NamedQuery - named query w/ struct or map -// * NamedStmt - a pre-compiled named query which is a prepared statement -// -// Internal Interfaces: -// -// * compileNamedQuery - rebind a named query, returning a query and list of names -// * bindArgs, bindMapArgs, bindAnyArgs - given a list of names, return an arglist -// -import ( - "database/sql" - "errors" - "fmt" - "reflect" - "strconv" - "unicode" - - "github.com/jmoiron/sqlx/reflectx" -) - -// NamedStmt is a prepared statement that executes named queries. Prepare it -// how you would execute a NamedQuery, but pass in a struct or map when executing. -type NamedStmt struct { - Params []string - QueryString string - Stmt *Stmt -} - -// Close closes the named statement. -func (n *NamedStmt) Close() error { - return n.Stmt.Close() -} - -// Exec executes a named statement using the struct passed. -func (n *NamedStmt) Exec(arg interface{}) (sql.Result, error) { - args, err := bindAnyArgs(n.Params, arg, n.Stmt.Mapper) - if err != nil { - return *new(sql.Result), err - } - return n.Stmt.Exec(args...) -} - -// Query executes a named statement using the struct argument, returning rows. -func (n *NamedStmt) Query(arg interface{}) (*sql.Rows, error) { - args, err := bindAnyArgs(n.Params, arg, n.Stmt.Mapper) - if err != nil { - return nil, err - } - return n.Stmt.Query(args...) -} - -// QueryRow executes a named statement against the database. Because sqlx cannot -// create a *sql.Row with an error condition pre-set for binding errors, sqlx -// returns a *sqlx.Row instead. -func (n *NamedStmt) QueryRow(arg interface{}) *Row { - args, err := bindAnyArgs(n.Params, arg, n.Stmt.Mapper) - if err != nil { - return &Row{err: err} - } - return n.Stmt.QueryRowx(args...) -} - -// MustExec execs a NamedStmt, panicing on error -func (n *NamedStmt) MustExec(arg interface{}) sql.Result { - res, err := n.Exec(arg) - if err != nil { - panic(err) - } - return res -} - -// Queryx using this NamedStmt -func (n *NamedStmt) Queryx(arg interface{}) (*Rows, error) { - r, err := n.Query(arg) - if err != nil { - return nil, err - } - return &Rows{Rows: r, Mapper: n.Stmt.Mapper}, err -} - -// QueryRowx this NamedStmt. Because of limitations with QueryRow, this is -// an alias for QueryRow. -func (n *NamedStmt) QueryRowx(arg interface{}) *Row { - return n.QueryRow(arg) -} - -// Select using this NamedStmt -func (n *NamedStmt) Select(dest interface{}, arg interface{}) error { - rows, err := n.Query(arg) - if err != nil { - return err - } - // if something happens here, we want to make sure the rows are Closed - defer rows.Close() - return scanAll(rows, dest, false) -} - -// Get using this NamedStmt -func (n *NamedStmt) Get(dest interface{}, arg interface{}) error { - r := n.QueryRowx(arg) - return r.scanAny(dest, false) -} - -// A union interface of preparer and binder, required to be able to prepare -// named statements (as the bindtype must be determined). -type namedPreparer interface { - Preparer - binder -} - -func prepareNamed(p namedPreparer, query string) (*NamedStmt, error) { - bindType := BindType(p.DriverName()) - q, args, err := compileNamedQuery([]byte(query), bindType) - if err != nil { - return nil, err - } - stmt, err := Preparex(p, q) - if err != nil { - return nil, err - } - return &NamedStmt{ - QueryString: q, - Params: args, - Stmt: stmt, - }, nil -} - -func bindAnyArgs(names []string, arg interface{}, m *reflectx.Mapper) ([]interface{}, error) { - if maparg, ok := arg.(map[string]interface{}); ok { - return bindMapArgs(names, maparg) - } - return bindArgs(names, arg, m) -} - -// private interface to generate a list of interfaces from a given struct -// type, given a list of names to pull out of the struct. Used by public -// BindStruct interface. -func bindArgs(names []string, arg interface{}, m *reflectx.Mapper) ([]interface{}, error) { - arglist := make([]interface{}, 0, len(names)) - - // grab the indirected value of arg - v := reflect.ValueOf(arg) - for v = reflect.ValueOf(arg); v.Kind() == reflect.Ptr; { - v = v.Elem() - } - - fields := m.TraversalsByName(v.Type(), names) - for i, t := range fields { - if len(t) == 0 { - return arglist, fmt.Errorf("could not find name %s in %#v", names[i], arg) - } - val := reflectx.FieldByIndexesReadOnly(v, t) - arglist = append(arglist, val.Interface()) - } - - return arglist, nil -} - -// like bindArgs, but for maps. -func bindMapArgs(names []string, arg map[string]interface{}) ([]interface{}, error) { - arglist := make([]interface{}, 0, len(names)) - - for _, name := range names { - val, ok := arg[name] - if !ok { - return arglist, fmt.Errorf("could not find name %s in %#v", name, arg) - } - arglist = append(arglist, val) - } - return arglist, nil -} - -// bindStruct binds a named parameter query with fields from a struct argument. -// The rules for binding field names to parameter names follow the same -// conventions as for StructScan, including obeying the `db` struct tags. -func bindStruct(bindType int, query string, arg interface{}, m *reflectx.Mapper) (string, []interface{}, error) { - bound, names, err := compileNamedQuery([]byte(query), bindType) - if err != nil { - return "", []interface{}{}, err - } - - arglist, err := bindArgs(names, arg, m) - if err != nil { - return "", []interface{}{}, err - } - - return bound, arglist, nil -} - -// bindMap binds a named parameter query with a map of arguments. -func bindMap(bindType int, query string, args map[string]interface{}) (string, []interface{}, error) { - bound, names, err := compileNamedQuery([]byte(query), bindType) - if err != nil { - return "", []interface{}{}, err - } - - arglist, err := bindMapArgs(names, args) - return bound, arglist, err -} - -// -- Compilation of Named Queries - -// Allow digits and letters in bind params; additionally runes are -// checked against underscores, meaning that bind params can have be -// alphanumeric with underscores. Mind the difference between unicode -// digits and numbers, where '5' is a digit but '五' is not. -var allowedBindRunes = []*unicode.RangeTable{unicode.Letter, unicode.Digit} - -// FIXME: this function isn't safe for unicode named params, as a failing test -// can testify. This is not a regression but a failure of the original code -// as well. It should be modified to range over runes in a string rather than -// bytes, even though this is less convenient and slower. Hopefully the -// addition of the prepared NamedStmt (which will only do this once) will make -// up for the slightly slower ad-hoc NamedExec/NamedQuery. - -// compile a NamedQuery into an unbound query (using the '?' bindvar) and -// a list of names. -func compileNamedQuery(qs []byte, bindType int) (query string, names []string, err error) { - names = make([]string, 0, 10) - rebound := make([]byte, 0, len(qs)) - - inName := false - last := len(qs) - 1 - currentVar := 1 - name := make([]byte, 0, 10) - - for i, b := range qs { - // a ':' while we're in a name is an error - if b == ':' { - // if this is the second ':' in a '::' escape sequence, append a ':' - if inName && i > 0 && qs[i-1] == ':' { - rebound = append(rebound, ':') - inName = false - continue - } else if inName { - err = errors.New("unexpected `:` while reading named param at " + strconv.Itoa(i)) - return query, names, err - } - inName = true - name = []byte{} - // if we're in a name, and this is an allowed character, continue - } else if inName && (unicode.IsOneOf(allowedBindRunes, rune(b)) || b == '_') && i != last { - // append the byte to the name if we are in a name and not on the last byte - name = append(name, b) - // if we're in a name and it's not an allowed character, the name is done - } else if inName { - inName = false - // if this is the final byte of the string and it is part of the name, then - // make sure to add it to the name - if i == last && unicode.IsOneOf(allowedBindRunes, rune(b)) { - name = append(name, b) - } - // add the string representation to the names list - names = append(names, string(name)) - // add a proper bindvar for the bindType - switch bindType { - // oracle only supports named type bind vars even for positional - case NAMED: - rebound = append(rebound, ':') - rebound = append(rebound, name...) - case QUESTION, UNKNOWN: - rebound = append(rebound, '?') - case DOLLAR: - rebound = append(rebound, '$') - for _, b := range strconv.Itoa(currentVar) { - rebound = append(rebound, byte(b)) - } - currentVar++ - } - // add this byte to string unless it was not part of the name - if i != last { - rebound = append(rebound, b) - } else if !unicode.IsOneOf(allowedBindRunes, rune(b)) { - rebound = append(rebound, b) - } - } else { - // this is a normal byte and should just go onto the rebound query - rebound = append(rebound, b) - } - } - - return string(rebound), names, err -} - -// Bind binds a struct or a map to a query with named parameters. -func BindNamed(bindType int, query string, arg interface{}) (string, []interface{}, error) { - return bindNamedMapper(bindType, query, arg, mapper()) -} - -func bindNamedMapper(bindType int, query string, arg interface{}, m *reflectx.Mapper) (string, []interface{}, error) { - if maparg, ok := arg.(map[string]interface{}); ok { - return bindMap(bindType, query, maparg) - } - return bindStruct(bindType, query, arg, m) -} - -// NamedQuery binds a named query and then runs Query on the result using the -// provided Ext (sqlx.Tx, sqlx.Db). It works with both structs and with -// map[string]interface{} types. -func NamedQuery(e Ext, query string, arg interface{}) (*Rows, error) { - q, args, err := bindNamedMapper(BindType(e.DriverName()), query, arg, mapperFor(e)) - if err != nil { - return nil, err - } - return e.Queryx(q, args...) -} - -// NamedExec uses BindStruct to get a query executable by the driver and -// then runs Exec on the result. Returns an error from the binding -// or the query excution itself. -func NamedExec(e Ext, query string, arg interface{}) (sql.Result, error) { - q, args, err := bindNamedMapper(BindType(e.DriverName()), query, arg, mapperFor(e)) - if err != nil { - return nil, err - } - return e.Exec(q, args...) -} diff --git a/vendor/github.com/jmoiron/sqlx/named_test.go b/vendor/github.com/jmoiron/sqlx/named_test.go deleted file mode 100644 index d3459a8..0000000 --- a/vendor/github.com/jmoiron/sqlx/named_test.go +++ /dev/null @@ -1,227 +0,0 @@ -package sqlx - -import ( - "database/sql" - "testing" -) - -func TestCompileQuery(t *testing.T) { - table := []struct { - Q, R, D, N string - V []string - }{ - // basic test for named parameters, invalid char ',' terminating - { - Q: `INSERT INTO foo (a,b,c,d) VALUES (:name, :age, :first, :last)`, - R: `INSERT INTO foo (a,b,c,d) VALUES (?, ?, ?, ?)`, - D: `INSERT INTO foo (a,b,c,d) VALUES ($1, $2, $3, $4)`, - N: `INSERT INTO foo (a,b,c,d) VALUES (:name, :age, :first, :last)`, - V: []string{"name", "age", "first", "last"}, - }, - // This query tests a named parameter ending the string as well as numbers - { - Q: `SELECT * FROM a WHERE first_name=:name1 AND last_name=:name2`, - R: `SELECT * FROM a WHERE first_name=? AND last_name=?`, - D: `SELECT * FROM a WHERE first_name=$1 AND last_name=$2`, - N: `SELECT * FROM a WHERE first_name=:name1 AND last_name=:name2`, - V: []string{"name1", "name2"}, - }, - { - Q: `SELECT "::foo" FROM a WHERE first_name=:name1 AND last_name=:name2`, - R: `SELECT ":foo" FROM a WHERE first_name=? AND last_name=?`, - D: `SELECT ":foo" FROM a WHERE first_name=$1 AND last_name=$2`, - N: `SELECT ":foo" FROM a WHERE first_name=:name1 AND last_name=:name2`, - V: []string{"name1", "name2"}, - }, - { - Q: `SELECT 'a::b::c' || first_name, '::::ABC::_::' FROM person WHERE first_name=:first_name AND last_name=:last_name`, - R: `SELECT 'a:b:c' || first_name, '::ABC:_:' FROM person WHERE first_name=? AND last_name=?`, - D: `SELECT 'a:b:c' || first_name, '::ABC:_:' FROM person WHERE first_name=$1 AND last_name=$2`, - N: `SELECT 'a:b:c' || first_name, '::ABC:_:' FROM person WHERE first_name=:first_name AND last_name=:last_name`, - V: []string{"first_name", "last_name"}, - }, - /* This unicode awareness test sadly fails, because of our byte-wise worldview. - * We could certainly iterate by Rune instead, though it's a great deal slower, - * it's probably the RightWay(tm) - { - Q: `INSERT INTO foo (a,b,c,d) VALUES (:あ, :b, :キコ, :名前)`, - R: `INSERT INTO foo (a,b,c,d) VALUES (?, ?, ?, ?)`, - D: `INSERT INTO foo (a,b,c,d) VALUES ($1, $2, $3, $4)`, - N: []string{"name", "age", "first", "last"}, - }, - */ - } - - for _, test := range table { - qr, names, err := compileNamedQuery([]byte(test.Q), QUESTION) - if err != nil { - t.Error(err) - } - if qr != test.R { - t.Errorf("expected %s, got %s", test.R, qr) - } - if len(names) != len(test.V) { - t.Errorf("expected %#v, got %#v", test.V, names) - } else { - for i, name := range names { - if name != test.V[i] { - t.Errorf("expected %dth name to be %s, got %s", i+1, test.V[i], name) - } - } - } - qd, _, _ := compileNamedQuery([]byte(test.Q), DOLLAR) - if qd != test.D { - t.Errorf("\nexpected: `%s`\ngot: `%s`", test.D, qd) - } - - qq, _, _ := compileNamedQuery([]byte(test.Q), NAMED) - if qq != test.N { - t.Errorf("\nexpected: `%s`\ngot: `%s`\n(len: %d vs %d)", test.N, qq, len(test.N), len(qq)) - } - } -} - -type Test struct { - t *testing.T -} - -func (t Test) Error(err error, msg ...interface{}) { - if err != nil { - if len(msg) == 0 { - t.t.Error(err) - } else { - t.t.Error(msg...) - } - } -} - -func (t Test) Errorf(err error, format string, args ...interface{}) { - if err != nil { - t.t.Errorf(format, args...) - } -} - -func TestNamedQueries(t *testing.T) { - RunWithSchema(defaultSchema, t, func(db *DB, t *testing.T) { - loadDefaultFixture(db, t) - test := Test{t} - var ns *NamedStmt - var err error - - // Check that invalid preparations fail - ns, err = db.PrepareNamed("SELECT * FROM person WHERE first_name=:first:name") - if err == nil { - t.Error("Expected an error with invalid prepared statement.") - } - - ns, err = db.PrepareNamed("invalid sql") - if err == nil { - t.Error("Expected an error with invalid prepared statement.") - } - - // Check closing works as anticipated - ns, err = db.PrepareNamed("SELECT * FROM person WHERE first_name=:first_name") - test.Error(err) - err = ns.Close() - test.Error(err) - - ns, err = db.PrepareNamed(` - SELECT first_name, last_name, email - FROM person WHERE first_name=:first_name AND email=:email`) - test.Error(err) - - // test Queryx w/ uses Query - p := Person{FirstName: "Jason", LastName: "Moiron", Email: "jmoiron@jmoiron.net"} - - rows, err := ns.Queryx(p) - test.Error(err) - for rows.Next() { - var p2 Person - rows.StructScan(&p2) - if p.FirstName != p2.FirstName { - t.Errorf("got %s, expected %s", p.FirstName, p2.FirstName) - } - if p.LastName != p2.LastName { - t.Errorf("got %s, expected %s", p.LastName, p2.LastName) - } - if p.Email != p2.Email { - t.Errorf("got %s, expected %s", p.Email, p2.Email) - } - } - - // test Select - people := make([]Person, 0, 5) - err = ns.Select(&people, p) - test.Error(err) - - if len(people) != 1 { - t.Errorf("got %d results, expected %d", len(people), 1) - } - if p.FirstName != people[0].FirstName { - t.Errorf("got %s, expected %s", p.FirstName, people[0].FirstName) - } - if p.LastName != people[0].LastName { - t.Errorf("got %s, expected %s", p.LastName, people[0].LastName) - } - if p.Email != people[0].Email { - t.Errorf("got %s, expected %s", p.Email, people[0].Email) - } - - // test Exec - ns, err = db.PrepareNamed(` - INSERT INTO person (first_name, last_name, email) - VALUES (:first_name, :last_name, :email)`) - test.Error(err) - - js := Person{ - FirstName: "Julien", - LastName: "Savea", - Email: "jsavea@ab.co.nz", - } - _, err = ns.Exec(js) - test.Error(err) - - // Make sure we can pull him out again - p2 := Person{} - db.Get(&p2, db.Rebind("SELECT * FROM person WHERE email=?"), js.Email) - if p2.Email != js.Email { - t.Errorf("expected %s, got %s", js.Email, p2.Email) - } - - // test Txn NamedStmts - tx := db.MustBegin() - txns := tx.NamedStmt(ns) - - // We're going to add Steven in this txn - sl := Person{ - FirstName: "Steven", - LastName: "Luatua", - Email: "sluatua@ab.co.nz", - } - - _, err = txns.Exec(sl) - test.Error(err) - // then rollback... - tx.Rollback() - // looking for Steven after a rollback should fail - err = db.Get(&p2, db.Rebind("SELECT * FROM person WHERE email=?"), sl.Email) - if err != sql.ErrNoRows { - t.Errorf("expected no rows error, got %v", err) - } - - // now do the same, but commit - tx = db.MustBegin() - txns = tx.NamedStmt(ns) - _, err = txns.Exec(sl) - test.Error(err) - tx.Commit() - - // looking for Steven after a Commit should succeed - err = db.Get(&p2, db.Rebind("SELECT * FROM person WHERE email=?"), sl.Email) - test.Error(err) - if p2.Email != sl.Email { - t.Errorf("expected %s, got %s", sl.Email, p2.Email) - } - - }) -} diff --git a/vendor/github.com/jmoiron/sqlx/reflectx/README.md b/vendor/github.com/jmoiron/sqlx/reflectx/README.md deleted file mode 100644 index 76f1b5d..0000000 --- a/vendor/github.com/jmoiron/sqlx/reflectx/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# reflectx - -The sqlx package has special reflect needs. In particular, it needs to: - -* be able to map a name to a field -* understand embedded structs -* understand mapping names to fields by a particular tag -* user specified name -> field mapping functions - -These behaviors mimic the behaviors by the standard library marshallers and also the -behavior of standard Go accessors. - -The first two are amply taken care of by `Reflect.Value.FieldByName`, and the third is -addressed by `Reflect.Value.FieldByNameFunc`, but these don't quite understand struct -tags in the ways that are vital to most marshalers, and they are slow. - -This reflectx package extends reflect to achieve these goals. diff --git a/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go b/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go deleted file mode 100644 index 847b760..0000000 --- a/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go +++ /dev/null @@ -1,250 +0,0 @@ -// Package reflect implements extensions to the standard reflect lib suitable -// for implementing marshaling and unmarshaling packages. The main Mapper type -// allows for Go-compatible named atribute access, including accessing embedded -// struct attributes and the ability to use functions and struct tags to -// customize field names. -// -package reflectx - -import "sync" - -import ( - "reflect" - "runtime" -) - -type fieldMap map[string][]int - -// Mapper is a general purpose mapper of names to struct fields. A Mapper -// behaves like most marshallers, optionally obeying a field tag for name -// mapping and a function to provide a basic mapping of fields to names. -type Mapper struct { - cache map[reflect.Type]fieldMap - tagName string - mapFunc func(string) string - mutex sync.Mutex -} - -// NewMapper returns a new mapper which optionally obeys the field tag given -// by tagName. If tagName is the empty string, it is ignored. -func NewMapper(tagName string) *Mapper { - return &Mapper{ - cache: make(map[reflect.Type]fieldMap), - tagName: tagName, - } -} - -// NewMapperFunc returns a new mapper which optionally obeys a field tag and -// a struct field name mapper func given by f. Tags will take precedence, but -// for any other field, the mapped name will be f(field.Name) -func NewMapperFunc(tagName string, f func(string) string) *Mapper { - return &Mapper{ - cache: make(map[reflect.Type]fieldMap), - tagName: tagName, - mapFunc: f, - } -} - -// TypeMap returns a mapping of field strings to int slices representing -// the traversal down the struct to reach the field. -func (m *Mapper) TypeMap(t reflect.Type) fieldMap { - m.mutex.Lock() - mapping, ok := m.cache[t] - if !ok { - mapping = getMapping(t, m.tagName, m.mapFunc) - m.cache[t] = mapping - } - m.mutex.Unlock() - return mapping -} - -// FieldMap returns the mapper's mapping of field names to reflect values. Panics -// if v's Kind is not Struct, or v is not Indirectable to a struct kind. -func (m *Mapper) FieldMap(v reflect.Value) map[string]reflect.Value { - v = reflect.Indirect(v) - mustBe(v, reflect.Struct) - - r := map[string]reflect.Value{} - nm := m.TypeMap(v.Type()) - for tagName, indexes := range nm { - r[tagName] = FieldByIndexes(v, indexes) - } - return r -} - -// FieldByName returns a field by the its mapped name as a reflect.Value. -// Panics if v's Kind is not Struct or v is not Indirectable to a struct Kind. -// Returns zero Value if the name is not found. -func (m *Mapper) FieldByName(v reflect.Value, name string) reflect.Value { - v = reflect.Indirect(v) - mustBe(v, reflect.Struct) - - nm := m.TypeMap(v.Type()) - traversal, ok := nm[name] - if !ok { - return *new(reflect.Value) - } - return FieldByIndexes(v, traversal) -} - -// FieldsByName returns a slice of values corresponding to the slice of names -// for the value. Panics if v's Kind is not Struct or v is not Indirectable -// to a struct Kind. Returns zero Value for each name not found. -func (m *Mapper) FieldsByName(v reflect.Value, names []string) []reflect.Value { - v = reflect.Indirect(v) - mustBe(v, reflect.Struct) - - nm := m.TypeMap(v.Type()) - - vals := make([]reflect.Value, 0, len(names)) - for _, name := range names { - traversal, ok := nm[name] - if !ok { - vals = append(vals, *new(reflect.Value)) - } else { - vals = append(vals, FieldByIndexes(v, traversal)) - } - } - return vals -} - -// Traversals by name returns a slice of int slices which represent the struct -// traversals for each mapped name. Panics if t is not a struct or Indirectable -// to a struct. Returns empty int slice for each name not found. -func (m *Mapper) TraversalsByName(t reflect.Type, names []string) [][]int { - t = Deref(t) - mustBe(t, reflect.Struct) - nm := m.TypeMap(t) - - r := make([][]int, 0, len(names)) - for _, name := range names { - traversal, ok := nm[name] - if !ok { - r = append(r, []int{}) - } else { - r = append(r, traversal) - } - } - return r -} - -// FieldByIndexes returns a value for a particular struct traversal. -func FieldByIndexes(v reflect.Value, indexes []int) reflect.Value { - for _, i := range indexes { - v = reflect.Indirect(v).Field(i) - // if this is a pointer, it's possible it is nil - if v.Kind() == reflect.Ptr && v.IsNil() { - alloc := reflect.New(Deref(v.Type())) - v.Set(alloc) - } - } - return v -} - -// FieldByIndexesReadOnly returns a value for a particular struct traversal, -// but is not concerned with allocating nil pointers because the value is -// going to be used for reading and not setting. -func FieldByIndexesReadOnly(v reflect.Value, indexes []int) reflect.Value { - for _, i := range indexes { - v = reflect.Indirect(v).Field(i) - } - return v -} - -// Deref is Indirect for reflect.Types -func Deref(t reflect.Type) reflect.Type { - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - return t -} - -// -- helpers & utilities -- - -type Kinder interface { - Kind() reflect.Kind -} - -// mustBe checks a value against a kind, panicing with a reflect.ValueError -// if the kind isn't that which is required. -func mustBe(v Kinder, expected reflect.Kind) { - k := v.Kind() - if k != expected { - panic(&reflect.ValueError{Method: methodName(), Kind: k}) - } -} - -// methodName is returns the caller of the function calling methodName -func methodName() string { - pc, _, _, _ := runtime.Caller(2) - f := runtime.FuncForPC(pc) - if f == nil { - return "unknown method" - } - return f.Name() -} - -type typeQueue struct { - t reflect.Type - p []int -} - -// A copying append that creates a new slice each time. -func apnd(is []int, i int) []int { - x := make([]int, len(is)+1) - for p, n := range is { - x[p] = n - } - x[len(x)-1] = i - return x -} - -// getMapping returns a mapping for the t type, using the tagName and the mapFunc -// to determine the canonical names of fields. -func getMapping(t reflect.Type, tagName string, mapFunc func(string) string) fieldMap { - queue := []typeQueue{} - queue = append(queue, typeQueue{Deref(t), []int{}}) - m := fieldMap{} - for len(queue) != 0 { - // pop the first item off of the queue - tq := queue[0] - queue = queue[1:] - // iterate through all of its fields - for fieldPos := 0; fieldPos < tq.t.NumField(); fieldPos++ { - f := tq.t.Field(fieldPos) - - name := f.Tag.Get(tagName) - if len(name) == 0 { - if mapFunc != nil { - name = mapFunc(f.Name) - } else { - name = f.Name - } - } - - // if the name is "-", disabled via a tag, skip it - if name == "-" { - continue - } - - // skip unexported fields - if len(f.PkgPath) != 0 { - continue - } - - // bfs search of anonymous embedded structs - if f.Anonymous { - queue = append(queue, typeQueue{Deref(f.Type), apnd(tq.p, fieldPos)}) - continue - } - - // if the name is shadowed by an earlier identical name in the search, skip it - if _, ok := m[name]; ok { - continue - } - // add it to the map at the current position - m[name] = apnd(tq.p, fieldPos) - } - } - return m -} diff --git a/vendor/github.com/jmoiron/sqlx/reflectx/reflect_test.go b/vendor/github.com/jmoiron/sqlx/reflectx/reflect_test.go deleted file mode 100644 index e0a40f6..0000000 --- a/vendor/github.com/jmoiron/sqlx/reflectx/reflect_test.go +++ /dev/null @@ -1,216 +0,0 @@ -package reflectx - -import ( - "reflect" - "strings" - "testing" -) - -func ival(v reflect.Value) int { - return v.Interface().(int) -} - -func TestBasic(t *testing.T) { - type Foo struct { - A int - B int - C int - } - - f := Foo{1, 2, 3} - fv := reflect.ValueOf(f) - m := NewMapper("") - - v := m.FieldByName(fv, "A") - if ival(v) != f.A { - t.Errorf("Expecting %d, got %d", ival(v), f.A) - } - v = m.FieldByName(fv, "B") - if ival(v) != f.B { - t.Errorf("Expecting %d, got %d", f.B, ival(v)) - } - v = m.FieldByName(fv, "C") - if ival(v) != f.C { - t.Errorf("Expecting %d, got %d", f.C, ival(v)) - } -} - -func TestEmbedded(t *testing.T) { - type Foo struct { - A int - } - - type Bar struct { - Foo - B int - } - - type Baz struct { - A int - Bar - } - - m := NewMapper("") - - z := Baz{} - z.A = 1 - z.B = 2 - z.Bar.Foo.A = 3 - zv := reflect.ValueOf(z) - - v := m.FieldByName(zv, "A") - if ival(v) != z.A { - t.Errorf("Expecting %d, got %d", ival(v), z.A) - } - v = m.FieldByName(zv, "B") - if ival(v) != z.B { - t.Errorf("Expecting %d, got %d", ival(v), z.B) - } -} - -func TestMapping(t *testing.T) { - type Person struct { - ID int - Name string - WearsGlasses bool `db:"wears_glasses"` - } - - m := NewMapperFunc("db", strings.ToLower) - p := Person{1, "Jason", true} - mapping := m.TypeMap(reflect.TypeOf(p)) - - for _, key := range []string{"id", "name", "wears_glasses"} { - if _, ok := mapping[key]; !ok { - t.Errorf("Expecting to find key %s in mapping but did not.", key) - } - } - - type SportsPerson struct { - Weight int - Age int - Person - } - s := SportsPerson{Weight: 100, Age: 30, Person: p} - mapping = m.TypeMap(reflect.TypeOf(s)) - for _, key := range []string{"id", "name", "wears_glasses", "weight", "age"} { - if _, ok := mapping[key]; !ok { - t.Errorf("Expecting to find key %s in mapping but did not.", key) - } - - } - - type RugbyPlayer struct { - Position int - IsIntense bool `db:"is_intense"` - IsAllBlack bool `db:"-"` - SportsPerson - } - r := RugbyPlayer{12, true, false, s} - mapping = m.TypeMap(reflect.TypeOf(r)) - for _, key := range []string{"id", "name", "wears_glasses", "weight", "age", "position", "is_intense"} { - if _, ok := mapping[key]; !ok { - t.Errorf("Expecting to find key %s in mapping but did not.", key) - } - } - - if _, ok := mapping["isallblack"]; ok { - t.Errorf("Expecting to ignore `IsAllBlack` field") - } - - type EmbeddedLiteral struct { - Embedded struct { - Person string - Position int - } - IsIntense bool - } - - e := EmbeddedLiteral{} - mapping = m.TypeMap(reflect.TypeOf(e)) - //fmt.Printf("Mapping: %#v\n", mapping) - - //f := FieldByIndexes(reflect.ValueOf(e), mapping["isintense"]) - //fmt.Println(f, f.Interface()) - - //tbn := m.TraversalsByName(reflect.TypeOf(e), []string{"isintense"}) - //fmt.Printf("%#v\n", tbn) - -} - -type E1 struct { - A int -} -type E2 struct { - E1 - B int -} -type E3 struct { - E2 - C int -} -type E4 struct { - E3 - D int -} - -func BenchmarkFieldNameL1(b *testing.B) { - e4 := E4{D: 1} - for i := 0; i < b.N; i++ { - v := reflect.ValueOf(e4) - f := v.FieldByName("D") - if f.Interface().(int) != 1 { - b.Fatal("Wrong value.") - } - } -} - -func BenchmarkFieldNameL4(b *testing.B) { - e4 := E4{} - e4.A = 1 - for i := 0; i < b.N; i++ { - v := reflect.ValueOf(e4) - f := v.FieldByName("A") - if f.Interface().(int) != 1 { - b.Fatal("Wrong value.") - } - } -} - -func BenchmarkFieldPosL1(b *testing.B) { - e4 := E4{D: 1} - for i := 0; i < b.N; i++ { - v := reflect.ValueOf(e4) - f := v.Field(1) - if f.Interface().(int) != 1 { - b.Fatal("Wrong value.") - } - } -} - -func BenchmarkFieldPosL4(b *testing.B) { - e4 := E4{} - e4.A = 1 - for i := 0; i < b.N; i++ { - v := reflect.ValueOf(e4) - f := v.Field(0) - f = f.Field(0) - f = f.Field(0) - f = f.Field(0) - if f.Interface().(int) != 1 { - b.Fatal("Wrong value.") - } - } -} - -func BenchmarkFieldByIndexL4(b *testing.B) { - e4 := E4{} - e4.A = 1 - idx := []int{0, 0, 0, 0} - for i := 0; i < b.N; i++ { - v := reflect.ValueOf(e4) - f := FieldByIndexes(v, idx) - if f.Interface().(int) != 1 { - b.Fatal("Wrong value.") - } - } -} diff --git a/vendor/github.com/jmoiron/sqlx/sqlx.go b/vendor/github.com/jmoiron/sqlx/sqlx.go deleted file mode 100644 index d195705..0000000 --- a/vendor/github.com/jmoiron/sqlx/sqlx.go +++ /dev/null @@ -1,986 +0,0 @@ -package sqlx - -import ( - "database/sql" - "database/sql/driver" - "errors" - "fmt" - - "io/ioutil" - "path/filepath" - "reflect" - "strings" - - "github.com/jmoiron/sqlx/reflectx" -) - -// Although the NameMapper is convenient, in practice it should not -// be relied on except for application code. If you are writing a library -// that uses sqlx, you should be aware that the name mappings you expect -// can be overridded by your user's application. - -// NameMapper is used to map column names to struct field names. By default, -// it uses strings.ToLower to lowercase struct field names. It can be set -// to whatever you want, but it is encouraged to be set before sqlx is used -// as name-to-field mappings are cached after first use on a type. -var NameMapper = strings.ToLower -var origMapper = reflect.ValueOf(NameMapper) - -// Rather than creating on init, this is created when necessary so that -// importers have time to customize the NameMapper. -var mpr *reflectx.Mapper - -// mapper returns a valid mapper using the configured NameMapper func. -func mapper() *reflectx.Mapper { - if mpr == nil { - mpr = reflectx.NewMapperFunc("db", NameMapper) - } else if origMapper != reflect.ValueOf(NameMapper) { - // if NameMapper has changed, create a new mapper - mpr = reflectx.NewMapperFunc("db", NameMapper) - origMapper = reflect.ValueOf(NameMapper) - } - return mpr -} - -// isScannable takes the reflect.Type and the actual dest value and returns -// whether or not it's Scannable. Something is scannable if: -// * it is not a struct -// * it implements sql.Scanner -// * it has no exported fields -func isScannable(t reflect.Type) bool { - if reflect.PtrTo(t).Implements(_scannerInterface) { - return true - } - if t.Kind() != reflect.Struct { - return true - } - - // it's not important that we use the right mapper for this particular object, - // we're only concerned on how many exported fields this struct has - m := mapper() - if len(m.TypeMap(t)) == 0 { - return true - } - return false -} - -// ColScanner is an interface used by MapScan and SliceScan -type ColScanner interface { - Columns() ([]string, error) - Scan(dest ...interface{}) error - Err() error -} - -// Queryer is an interface used by Get and Select -type Queryer interface { - Query(query string, args ...interface{}) (*sql.Rows, error) - Queryx(query string, args ...interface{}) (*Rows, error) - QueryRowx(query string, args ...interface{}) *Row -} - -// Execer is an interface used by MustExec and LoadFile -type Execer interface { - Exec(query string, args ...interface{}) (sql.Result, error) -} - -// Binder is an interface for something which can bind queries (Tx, DB) -type binder interface { - DriverName() string - Rebind(string) string - BindNamed(string, interface{}) (string, []interface{}, error) -} - -// Ext is a union interface which can bind, query, and exec, used by -// NamedQuery and NamedExec. -type Ext interface { - binder - Queryer - Execer -} - -// Preparer is an interface used by Preparex. -type Preparer interface { - Prepare(query string) (*sql.Stmt, error) -} - -// determine if any of our extensions are unsafe -func isUnsafe(i interface{}) bool { - switch i.(type) { - case Row: - return i.(Row).unsafe - case *Row: - return i.(*Row).unsafe - case Rows: - return i.(Rows).unsafe - case *Rows: - return i.(*Rows).unsafe - case Stmt: - return i.(Stmt).unsafe - case qStmt: - return i.(qStmt).Stmt.unsafe - case *qStmt: - return i.(*qStmt).Stmt.unsafe - case DB: - return i.(DB).unsafe - case *DB: - return i.(*DB).unsafe - case Tx: - return i.(Tx).unsafe - case *Tx: - return i.(*Tx).unsafe - case sql.Rows, *sql.Rows: - return false - default: - return false - } -} - -func mapperFor(i interface{}) *reflectx.Mapper { - switch i.(type) { - case DB: - return i.(DB).Mapper - case *DB: - return i.(*DB).Mapper - case Tx: - return i.(Tx).Mapper - case *Tx: - return i.(*Tx).Mapper - default: - return mapper() - } -} - -var _scannerInterface = reflect.TypeOf((*sql.Scanner)(nil)).Elem() -var _valuerInterface = reflect.TypeOf((*driver.Valuer)(nil)).Elem() - -// Row is a reimplementation of sql.Row in order to gain access to the underlying -// sql.Rows.Columns() data, necessary for StructScan. -type Row struct { - err error - unsafe bool - rows *sql.Rows - Mapper *reflectx.Mapper -} - -// Scan is a fixed implementation of sql.Row.Scan, which does not discard the -// underlying error from the internal rows object if it exists. -func (r *Row) Scan(dest ...interface{}) error { - if r.err != nil { - return r.err - } - - // TODO(bradfitz): for now we need to defensively clone all - // []byte that the driver returned (not permitting - // *RawBytes in Rows.Scan), since we're about to close - // the Rows in our defer, when we return from this function. - // the contract with the driver.Next(...) interface is that it - // can return slices into read-only temporary memory that's - // only valid until the next Scan/Close. But the TODO is that - // for a lot of drivers, this copy will be unnecessary. We - // should provide an optional interface for drivers to - // implement to say, "don't worry, the []bytes that I return - // from Next will not be modified again." (for instance, if - // they were obtained from the network anyway) But for now we - // don't care. - defer r.rows.Close() - for _, dp := range dest { - if _, ok := dp.(*sql.RawBytes); ok { - return errors.New("sql: RawBytes isn't allowed on Row.Scan") - } - } - - if !r.rows.Next() { - if err := r.rows.Err(); err != nil { - return err - } - return sql.ErrNoRows - } - err := r.rows.Scan(dest...) - if err != nil { - return err - } - // Make sure the query can be processed to completion with no errors. - if err := r.rows.Close(); err != nil { - return err - } - return nil -} - -// Columns returns the underlying sql.Rows.Columns(), or the deferred error usually -// returned by Row.Scan() -func (r *Row) Columns() ([]string, error) { - if r.err != nil { - return []string{}, r.err - } - return r.rows.Columns() -} - -// Err returns the error encountered while scanning. -func (r *Row) Err() error { - return r.err -} - -// DB is a wrapper around sql.DB which keeps track of the driverName upon Open, -// used mostly to automatically bind named queries using the right bindvars. -type DB struct { - *sql.DB - driverName string - unsafe bool - Mapper *reflectx.Mapper -} - -// NewDb returns a new sqlx DB wrapper for a pre-existing *sql.DB. The -// driverName of the original database is required for named query support. -func NewDb(db *sql.DB, driverName string) *DB { - return &DB{DB: db, driverName: driverName, Mapper: mapper()} -} - -// DriverName returns the driverName passed to the Open function for this DB. -func (db *DB) DriverName() string { - return db.driverName -} - -// Open is the same as sql.Open, but returns an *sqlx.DB instead. -func Open(driverName, dataSourceName string) (*DB, error) { - db, err := sql.Open(driverName, dataSourceName) - if err != nil { - return nil, err - } - return &DB{DB: db, driverName: driverName, Mapper: mapper()}, err -} - -// MustOpen is the same as sql.Open, but returns an *sqlx.DB instead and panics on error. -func MustOpen(driverName, dataSourceName string) *DB { - db, err := Open(driverName, dataSourceName) - if err != nil { - panic(err) - } - return db -} - -// MapperFunc sets a new mapper for this db using the default sqlx struct tag -// and the provided mapper function. -func (db *DB) MapperFunc(mf func(string) string) { - db.Mapper = reflectx.NewMapperFunc("db", mf) -} - -// Rebind transforms a query from QUESTION to the DB driver's bindvar type. -func (db *DB) Rebind(query string) string { - return Rebind(BindType(db.driverName), query) -} - -// Unsafe returns a version of DB which will silently succeed to scan when -// columns in the SQL result have no fields in the destination struct. -// sqlx.Stmt and sqlx.Tx which are created from this DB will inherit its -// safety behavior. -func (db *DB) Unsafe() *DB { - return &DB{DB: db.DB, driverName: db.driverName, unsafe: true, Mapper: db.Mapper} -} - -// BindNamed binds a query using the DB driver's bindvar type. -func (db *DB) BindNamed(query string, arg interface{}) (string, []interface{}, error) { - return BindNamed(BindType(db.driverName), query, arg) -} - -// NamedQuery using this DB. -func (db *DB) NamedQuery(query string, arg interface{}) (*Rows, error) { - return NamedQuery(db, query, arg) -} - -// NamedExec using this DB. -func (db *DB) NamedExec(query string, arg interface{}) (sql.Result, error) { - return NamedExec(db, query, arg) -} - -// Select using this DB. -func (db *DB) Select(dest interface{}, query string, args ...interface{}) error { - return Select(db, dest, query, args...) -} - -// Get using this DB. -func (db *DB) Get(dest interface{}, query string, args ...interface{}) error { - return Get(db, dest, query, args...) -} - -// MustBegin starts a transaction, and panics on error. Returns an *sqlx.Tx instead -// of an *sql.Tx. -func (db *DB) MustBegin() *Tx { - tx, err := db.Beginx() - if err != nil { - panic(err) - } - return tx -} - -// Beginx begins a transaction and returns an *sqlx.Tx instead of an *sql.Tx. -func (db *DB) Beginx() (*Tx, error) { - tx, err := db.DB.Begin() - if err != nil { - return nil, err - } - return &Tx{Tx: tx, driverName: db.driverName, unsafe: db.unsafe, Mapper: db.Mapper}, err -} - -// Queryx queries the database and returns an *sqlx.Rows. -func (db *DB) Queryx(query string, args ...interface{}) (*Rows, error) { - r, err := db.DB.Query(query, args...) - if err != nil { - return nil, err - } - return &Rows{Rows: r, unsafe: db.unsafe, Mapper: db.Mapper}, err -} - -// QueryRowx queries the database and returns an *sqlx.Row. -func (db *DB) QueryRowx(query string, args ...interface{}) *Row { - rows, err := db.DB.Query(query, args...) - return &Row{rows: rows, err: err, unsafe: db.unsafe, Mapper: db.Mapper} -} - -// MustExec (panic) runs MustExec using this database. -func (db *DB) MustExec(query string, args ...interface{}) sql.Result { - return MustExec(db, query, args...) -} - -// Preparex returns an sqlx.Stmt instead of a sql.Stmt -func (db *DB) Preparex(query string) (*Stmt, error) { - return Preparex(db, query) -} - -// PrepareNamed returns an sqlx.NamedStmt -func (db *DB) PrepareNamed(query string) (*NamedStmt, error) { - return prepareNamed(db, query) -} - -// Tx is an sqlx wrapper around sql.Tx with extra functionality -type Tx struct { - *sql.Tx - driverName string - unsafe bool - Mapper *reflectx.Mapper -} - -// DriverName returns the driverName used by the DB which began this transaction. -func (tx *Tx) DriverName() string { - return tx.driverName -} - -// Rebind a query within a transaction's bindvar type. -func (tx *Tx) Rebind(query string) string { - return Rebind(BindType(tx.driverName), query) -} - -// Unsafe returns a version of Tx which will silently succeed to scan when -// columns in the SQL result have no fields in the destination struct. -func (tx *Tx) Unsafe() *Tx { - return &Tx{Tx: tx.Tx, driverName: tx.driverName, unsafe: true, Mapper: tx.Mapper} -} - -// BindNamed binds a query within a transaction's bindvar type. -func (tx *Tx) BindNamed(query string, arg interface{}) (string, []interface{}, error) { - return BindNamed(BindType(tx.driverName), query, arg) -} - -// NamedQuery within a transaction. -func (tx *Tx) NamedQuery(query string, arg interface{}) (*Rows, error) { - return NamedQuery(tx, query, arg) -} - -// NamedExec a named query within a transaction. -func (tx *Tx) NamedExec(query string, arg interface{}) (sql.Result, error) { - return NamedExec(tx, query, arg) -} - -// Select within a transaction. -func (tx *Tx) Select(dest interface{}, query string, args ...interface{}) error { - return Select(tx, dest, query, args...) -} - -// Queryx within a transaction. -func (tx *Tx) Queryx(query string, args ...interface{}) (*Rows, error) { - r, err := tx.Tx.Query(query, args...) - if err != nil { - return nil, err - } - return &Rows{Rows: r, unsafe: tx.unsafe, Mapper: tx.Mapper}, err -} - -// QueryRowx within a transaction. -func (tx *Tx) QueryRowx(query string, args ...interface{}) *Row { - rows, err := tx.Tx.Query(query, args...) - return &Row{rows: rows, err: err, unsafe: tx.unsafe, Mapper: tx.Mapper} -} - -// Get within a transaction. -func (tx *Tx) Get(dest interface{}, query string, args ...interface{}) error { - return Get(tx, dest, query, args...) -} - -// MustExec runs MustExec within a transaction. -func (tx *Tx) MustExec(query string, args ...interface{}) sql.Result { - return MustExec(tx, query, args...) -} - -// Preparex a statement within a transaction. -func (tx *Tx) Preparex(query string) (*Stmt, error) { - return Preparex(tx, query) -} - -// Stmtx returns a version of the prepared statement which runs within a transaction. Provided -// stmt can be either *sql.Stmt or *sqlx.Stmt. -func (tx *Tx) Stmtx(stmt interface{}) *Stmt { - var st sql.Stmt - var s *sql.Stmt - switch stmt.(type) { - case sql.Stmt: - st = stmt.(sql.Stmt) - s = &st - case Stmt: - s = stmt.(Stmt).Stmt - case *Stmt: - s = stmt.(*Stmt).Stmt - case *sql.Stmt: - s = stmt.(*sql.Stmt) - } - return &Stmt{Stmt: tx.Stmt(s), Mapper: tx.Mapper} -} - -// NamedStmt returns a version of the prepared statement which runs within a transaction. -func (tx *Tx) NamedStmt(stmt *NamedStmt) *NamedStmt { - return &NamedStmt{ - QueryString: stmt.QueryString, - Params: stmt.Params, - Stmt: tx.Stmtx(stmt.Stmt), - } -} - -// PrepareNamed returns an sqlx.NamedStmt -func (tx *Tx) PrepareNamed(query string) (*NamedStmt, error) { - return prepareNamed(tx, query) -} - -// Stmt is an sqlx wrapper around sql.Stmt with extra functionality -type Stmt struct { - *sql.Stmt - unsafe bool - Mapper *reflectx.Mapper -} - -// Unsafe returns a version of Stmt which will silently succeed to scan when -// columns in the SQL result have no fields in the destination struct. -func (s *Stmt) Unsafe() *Stmt { - return &Stmt{Stmt: s.Stmt, unsafe: true, Mapper: s.Mapper} -} - -// Select using the prepared statement. -func (s *Stmt) Select(dest interface{}, args ...interface{}) error { - return Select(&qStmt{*s}, dest, "", args...) -} - -// Get using the prepared statement. -func (s *Stmt) Get(dest interface{}, args ...interface{}) error { - return Get(&qStmt{*s}, dest, "", args...) -} - -// MustExec (panic) using this statement. Note that the query portion of the error -// output will be blank, as Stmt does not expose its query. -func (s *Stmt) MustExec(args ...interface{}) sql.Result { - return MustExec(&qStmt{*s}, "", args...) -} - -// QueryRowx using this statement. -func (s *Stmt) QueryRowx(args ...interface{}) *Row { - qs := &qStmt{*s} - return qs.QueryRowx("", args...) -} - -// Queryx using this statement. -func (s *Stmt) Queryx(args ...interface{}) (*Rows, error) { - qs := &qStmt{*s} - return qs.Queryx("", args...) -} - -// qStmt is an unexposed wrapper which lets you use a Stmt as a Queryer & Execer by -// implementing those interfaces and ignoring the `query` argument. -type qStmt struct{ Stmt } - -func (q *qStmt) Query(query string, args ...interface{}) (*sql.Rows, error) { - return q.Stmt.Query(args...) -} - -func (q *qStmt) Queryx(query string, args ...interface{}) (*Rows, error) { - r, err := q.Stmt.Query(args...) - if err != nil { - return nil, err - } - return &Rows{Rows: r, unsafe: q.Stmt.unsafe, Mapper: q.Stmt.Mapper}, err -} - -func (q *qStmt) QueryRowx(query string, args ...interface{}) *Row { - rows, err := q.Stmt.Query(args...) - return &Row{rows: rows, err: err, unsafe: q.Stmt.unsafe, Mapper: q.Stmt.Mapper} -} - -func (q *qStmt) Exec(query string, args ...interface{}) (sql.Result, error) { - return q.Stmt.Exec(args...) -} - -// Rows is a wrapper around sql.Rows which caches costly reflect operations -// during a looped StructScan -type Rows struct { - *sql.Rows - unsafe bool - Mapper *reflectx.Mapper - // these fields cache memory use for a rows during iteration w/ structScan - started bool - fields [][]int - values []interface{} -} - -// SliceScan using this Rows. -func (r *Rows) SliceScan() ([]interface{}, error) { - return SliceScan(r) -} - -// MapScan using this Rows. -func (r *Rows) MapScan(dest map[string]interface{}) error { - return MapScan(r, dest) -} - -// StructScan is like sql.Rows.Scan, but scans a single Row into a single Struct. -// Use this and iterate over Rows manually when the memory load of Select() might be -// prohibitive. *Rows.StructScan caches the reflect work of matching up column -// positions to fields to avoid that overhead per scan, which means it is not safe -// to run StructScan on the same Rows instance with different struct types. -func (r *Rows) StructScan(dest interface{}) error { - v := reflect.ValueOf(dest) - - if v.Kind() != reflect.Ptr { - return errors.New("must pass a pointer, not a value, to StructScan destination") - } - - v = reflect.Indirect(v) - - if !r.started { - columns, err := r.Columns() - if err != nil { - return err - } - m := r.Mapper - - r.fields = m.TraversalsByName(v.Type(), columns) - // if we are not unsafe and are missing fields, return an error - if f, err := missingFields(r.fields); err != nil && !r.unsafe { - return fmt.Errorf("missing destination name %s", columns[f]) - } - r.values = make([]interface{}, len(columns)) - r.started = true - } - - err := fieldsByTraversal(v, r.fields, r.values, true) - if err != nil { - return err - } - // scan into the struct field pointers and append to our results - err = r.Scan(r.values...) - if err != nil { - return err - } - return r.Err() -} - -// Connect to a database and verify with a ping. -func Connect(driverName, dataSourceName string) (*DB, error) { - db, err := Open(driverName, dataSourceName) - if err != nil { - return db, err - } - err = db.Ping() - return db, err -} - -// MustConnect connects to a database and panics on error. -func MustConnect(driverName, dataSourceName string) *DB { - db, err := Connect(driverName, dataSourceName) - if err != nil { - panic(err) - } - return db -} - -// Preparex prepares a statement. -func Preparex(p Preparer, query string) (*Stmt, error) { - s, err := p.Prepare(query) - if err != nil { - return nil, err - } - return &Stmt{Stmt: s, unsafe: isUnsafe(p), Mapper: mapperFor(p)}, err -} - -// Select executes a query using the provided Queryer, and StructScans each row -// into dest, which must be a slice. If the slice elements are scannable, then -// the result set must have only one column. Otherwise, StructScan is used. -// The *sql.Rows are closed automatically. -func Select(q Queryer, dest interface{}, query string, args ...interface{}) error { - rows, err := q.Queryx(query, args...) - if err != nil { - return err - } - // if something happens here, we want to make sure the rows are Closed - defer rows.Close() - return scanAll(rows, dest, false) -} - -// Get does a QueryRow using the provided Queryer, and scans the resulting row -// to dest. If dest is scannable, the result must only have one column. Otherwise, -// StructScan is used. Get will return sql.ErrNoRows like row.Scan would. -func Get(q Queryer, dest interface{}, query string, args ...interface{}) error { - r := q.QueryRowx(query, args...) - return r.scanAny(dest, false) -} - -// LoadFile exec's every statement in a file (as a single call to Exec). -// LoadFile may return a nil *sql.Result if errors are encountered locating or -// reading the file at path. LoadFile reads the entire file into memory, so it -// is not suitable for loading large data dumps, but can be useful for initializing -// schemas or loading indexes. -// -// FIXME: this does not really work with multi-statement files for mattn/go-sqlite3 -// or the go-mysql-driver/mysql drivers; pq seems to be an exception here. Detecting -// this by requiring something with DriverName() and then attempting to split the -// queries will be difficult to get right, and its current driver-specific behavior -// is deemed at least not complex in its incorrectness. -func LoadFile(e Execer, path string) (*sql.Result, error) { - realpath, err := filepath.Abs(path) - if err != nil { - return nil, err - } - contents, err := ioutil.ReadFile(realpath) - if err != nil { - return nil, err - } - res, err := e.Exec(string(contents)) - return &res, err -} - -// MustExec execs the query using e and panics if there was an error. -func MustExec(e Execer, query string, args ...interface{}) sql.Result { - res, err := e.Exec(query, args...) - if err != nil { - panic(err) - } - return res -} - -// SliceScan using this Rows. -func (r *Row) SliceScan() ([]interface{}, error) { - return SliceScan(r) -} - -// MapScan using this Rows. -func (r *Row) MapScan(dest map[string]interface{}) error { - return MapScan(r, dest) -} - -func (r *Row) scanAny(dest interface{}, structOnly bool) error { - if r.err != nil { - return r.err - } - defer r.rows.Close() - - v := reflect.ValueOf(dest) - if v.Kind() != reflect.Ptr { - return errors.New("must pass a pointer, not a value, to StructScan destination") - } - if v.IsNil() { - return errors.New("nil pointer passed to StructScan destination") - } - - base := reflectx.Deref(v.Type()) - scannable := isScannable(base) - - if structOnly && scannable { - return structOnlyError(base) - } - - columns, err := r.Columns() - if err != nil { - return err - } - - if scannable && len(columns) > 1 { - return fmt.Errorf("scannable dest type %s with >1 columns (%d) in result", base.Kind(), len(columns)) - } - - if scannable { - return r.Scan(dest) - } - - m := r.Mapper - - fields := m.TraversalsByName(v.Type(), columns) - // if we are not unsafe and are missing fields, return an error - if f, err := missingFields(fields); err != nil && !r.unsafe { - return fmt.Errorf("missing destination name %s", columns[f]) - } - values := make([]interface{}, len(columns)) - - err = fieldsByTraversal(v, fields, values, true) - if err != nil { - return err - } - // scan into the struct field pointers and append to our results - return r.Scan(values...) -} - -// StructScan a single Row into dest. -func (r *Row) StructScan(dest interface{}) error { - return r.scanAny(dest, true) -} - -// SliceScan a row, returning a []interface{} with values similar to MapScan. -// This function is primarly intended for use where the number of columns -// is not known. Because you can pass an []interface{} directly to Scan, -// it's recommended that you do that as it will not have to allocate new -// slices per row. -func SliceScan(r ColScanner) ([]interface{}, error) { - // ignore r.started, since we needn't use reflect for anything. - columns, err := r.Columns() - if err != nil { - return []interface{}{}, err - } - - values := make([]interface{}, len(columns)) - for i := range values { - values[i] = new(interface{}) - } - - err = r.Scan(values...) - - if err != nil { - return values, err - } - - for i := range columns { - values[i] = *(values[i].(*interface{})) - } - - return values, r.Err() -} - -// MapScan scans a single Row into the dest map[string]interface{}. -// Use this to get results for SQL that might not be under your control -// (for instance, if you're building an interface for an SQL server that -// executes SQL from input). Please do not use this as a primary interface! -// This will modify the map sent to it in place, so reuse the same map with -// care. Columns which occur more than once in the result will overwrite -// eachother! -func MapScan(r ColScanner, dest map[string]interface{}) error { - // ignore r.started, since we needn't use reflect for anything. - columns, err := r.Columns() - if err != nil { - return err - } - - values := make([]interface{}, len(columns)) - for i := range values { - values[i] = new(interface{}) - } - - err = r.Scan(values...) - if err != nil { - return err - } - - for i, column := range columns { - dest[column] = *(values[i].(*interface{})) - } - - return r.Err() -} - -type rowsi interface { - Close() error - Columns() ([]string, error) - Err() error - Next() bool - Scan(...interface{}) error -} - -// structOnlyError returns an error appropriate for type when a non-scannable -// struct is expected but something else is given -func structOnlyError(t reflect.Type) error { - isStruct := t.Kind() == reflect.Struct - isScanner := reflect.PtrTo(t).Implements(_scannerInterface) - if !isStruct { - return fmt.Errorf("expected %s but got %s", reflect.Struct, t.Kind()) - } - if isScanner { - return fmt.Errorf("structscan expects a struct dest but the provided struct type %s implements scanner", t.Name()) - } - return fmt.Errorf("expected a struct, but struct %s has no exported fields", t.Name()) -} - -// scanAll scans all rows into a destination, which must be a slice of any -// type. If the destination slice type is a Struct, then StructScan will be -// used on each row. If the destination is some other kind of base type, then -// each row must only have one column which can scan into that type. This -// allows you to do something like: -// -// rows, _ := db.Query("select id from people;") -// var ids []int -// scanAll(rows, &ids, false) -// -// and ids will be a list of the id results. I realize that this is a desirable -// interface to expose to users, but for now it will only be exposed via changes -// to `Get` and `Select`. The reason that this has been implemented like this is -// this is the only way to not duplicate reflect work in the new API while -// maintaining backwards compatibility. -func scanAll(rows rowsi, dest interface{}, structOnly bool) error { - var v, vp reflect.Value - - value := reflect.ValueOf(dest) - - // json.Unmarshal returns errors for these - if value.Kind() != reflect.Ptr { - return errors.New("must pass a pointer, not a value, to StructScan destination") - } - if value.IsNil() { - return errors.New("nil pointer passed to StructScan destination") - } - direct := reflect.Indirect(value) - - slice, err := baseType(value.Type(), reflect.Slice) - if err != nil { - return err - } - - isPtr := slice.Elem().Kind() == reflect.Ptr - base := reflectx.Deref(slice.Elem()) - scannable := isScannable(base) - - if structOnly && scannable { - return structOnlyError(base) - } - - columns, err := rows.Columns() - if err != nil { - return err - } - - // if it's a base type make sure it only has 1 column; if not return an error - if scannable && len(columns) > 1 { - return fmt.Errorf("non-struct dest type %s with >1 columns (%d)", base.Kind(), len(columns)) - } - - if !scannable { - var values []interface{} - var m *reflectx.Mapper - - switch rows.(type) { - case *Rows: - m = rows.(*Rows).Mapper - default: - m = mapper() - } - - fields := m.TraversalsByName(base, columns) - // if we are not unsafe and are missing fields, return an error - if f, err := missingFields(fields); err != nil && !isUnsafe(rows) { - return fmt.Errorf("missing destination name %s", columns[f]) - } - values = make([]interface{}, len(columns)) - - for rows.Next() { - // create a new struct type (which returns PtrTo) and indirect it - vp = reflect.New(base) - v = reflect.Indirect(vp) - - err = fieldsByTraversal(v, fields, values, true) - - // scan into the struct field pointers and append to our results - err = rows.Scan(values...) - if err != nil { - return err - } - - if isPtr { - direct.Set(reflect.Append(direct, vp)) - } else { - direct.Set(reflect.Append(direct, v)) - } - } - } else { - for rows.Next() { - vp = reflect.New(base) - err = rows.Scan(vp.Interface()) - // append - if isPtr { - direct.Set(reflect.Append(direct, vp)) - } else { - direct.Set(reflect.Append(direct, reflect.Indirect(vp))) - } - } - } - - return rows.Err() -} - -// FIXME: StructScan was the very first bit of API in sqlx, and now unfortunately -// it doesn't really feel like it's named properly. There is an incongruency -// between this and the way that StructScan (which might better be ScanStruct -// anyway) works on a rows object. - -// StructScan all rows from an sql.Rows or an sqlx.Rows into the dest slice. -// StructScan will scan in the entire rows result, so if you need do not want to -// allocate structs for the entire result, use Queryx and see sqlx.Rows.StructScan. -// If rows is sqlx.Rows, it will use its mapper, otherwise it will use the default. -func StructScan(rows rowsi, dest interface{}) error { - return scanAll(rows, dest, true) - -} - -// reflect helpers - -func baseType(t reflect.Type, expected reflect.Kind) (reflect.Type, error) { - t = reflectx.Deref(t) - if t.Kind() != expected { - return nil, fmt.Errorf("expected %s but got %s", expected, t.Kind()) - } - return t, nil -} - -// fieldsByName fills a values interface with fields from the passed value based -// on the traversals in int. If ptrs is true, return addresses instead of values. -// We write this instead of using FieldsByName to save allocations and map lookups -// when iterating over many rows. Empty traversals will get an interface pointer. -// Because of the necessity of requesting ptrs or values, it's considered a bit too -// specialized for inclusion in reflectx itself. -func fieldsByTraversal(v reflect.Value, traversals [][]int, values []interface{}, ptrs bool) error { - v = reflect.Indirect(v) - if v.Kind() != reflect.Struct { - return errors.New("argument not a struct") - } - - for i, traversal := range traversals { - if len(traversal) == 0 { - values[i] = new(interface{}) - continue - } - f := reflectx.FieldByIndexes(v, traversal) - if ptrs { - values[i] = f.Addr().Interface() - } else { - values[i] = f.Interface() - } - } - return nil -} - -func missingFields(transversals [][]int) (field int, err error) { - for i, t := range transversals { - if len(t) == 0 { - return i, errors.New("missing field") - } - } - return 0, nil -} diff --git a/vendor/github.com/jmoiron/sqlx/sqlx_test.go b/vendor/github.com/jmoiron/sqlx/sqlx_test.go deleted file mode 100644 index bc13485..0000000 --- a/vendor/github.com/jmoiron/sqlx/sqlx_test.go +++ /dev/null @@ -1,1311 +0,0 @@ -// The following environment variables, if set, will be used: -// -// * SQLX_SQLITE_DSN -// * SQLX_POSTGRES_DSN -// * SQLX_MYSQL_DSN -// -// Set any of these variables to 'skip' to skip them. Note that for MySQL, -// the string '?parseTime=True' will be appended to the DSN if it's not there -// already. -// -package sqlx - -import ( - "database/sql" - "fmt" - "log" - "os" - "strings" - "testing" - "time" - - _ "github.com/go-sql-driver/mysql" - "github.com/jmoiron/sqlx/reflectx" - _ "github.com/lib/pq" - _ "github.com/mattn/go-sqlite3" -) - -/* compile time checks that Db, Tx, Stmt (qStmt) implement expected interfaces */ -var _, _ Ext = &DB{}, &Tx{} -var _, _ ColScanner = &Row{}, &Rows{} -var _ Queryer = &qStmt{} -var _ Execer = &qStmt{} - -var TestPostgres = true -var TestSqlite = true -var TestMysql = true - -var sldb *DB -var pgdb *DB -var mysqldb *DB -var active = []*DB{} - -func init() { - ConnectAll() -} - -func ConnectAll() { - var err error - - pgdsn := os.Getenv("SQLX_POSTGRES_DSN") - mydsn := os.Getenv("SQLX_MYSQL_DSN") - sqdsn := os.Getenv("SQLX_SQLITE_DSN") - - TestPostgres = pgdsn != "skip" - TestMysql = mydsn != "skip" - TestSqlite = sqdsn != "skip" - - if TestPostgres { - pgdb, err = Connect("postgres", pgdsn) - if err != nil { - fmt.Printf("Disabling PG tests:\n %v\n", err) - TestPostgres = false - } - } else { - fmt.Println("Disabling Postgres tests.") - } - - if TestMysql { - mysqldb, err = Connect("mysql", mydsn) - if err != nil { - fmt.Printf("Disabling MySQL tests:\n %v", err) - TestMysql = false - } - } else { - fmt.Println("Disabling MySQL tests.") - } - - if TestSqlite { - sldb, err = Connect("sqlite3", sqdsn) - if err != nil { - fmt.Printf("Disabling SQLite:\n %v", err) - TestSqlite = false - } - } else { - fmt.Println("Disabling SQLite tests.") - } -} - -type Schema struct { - create string - drop string -} - -func (s Schema) Postgres() (string, string) { - return s.create, s.drop -} - -func (s Schema) MySQL() (string, string) { - return strings.Replace(s.create, `"`, "`", -1), s.drop -} - -func (s Schema) Sqlite3() (string, string) { - return strings.Replace(s.create, `now()`, `CURRENT_TIMESTAMP`, -1), s.drop -} - -var defaultSchema = Schema{ - create: ` -CREATE TABLE person ( - first_name text, - last_name text, - email text, - added_at timestamp default now() -); - -CREATE TABLE place ( - country text, - city text NULL, - telcode integer -); - -CREATE TABLE capplace ( - "COUNTRY" text, - "CITY" text NULL, - "TELCODE" integer -); - -CREATE TABLE nullperson ( - first_name text NULL, - last_name text NULL, - email text NULL -); -`, - drop: ` -drop table person; -drop table place; -drop table capplace; -drop table nullperson; -`, -} - -type Person struct { - FirstName string `db:"first_name"` - LastName string `db:"last_name"` - Email string - AddedAt time.Time `db:"added_at"` -} - -type Person2 struct { - FirstName sql.NullString `db:"first_name"` - LastName sql.NullString `db:"last_name"` - Email sql.NullString -} - -type Place struct { - Country string - City sql.NullString - TelCode int -} - -type PlacePtr struct { - Country string - City *string - TelCode int -} - -type PersonPlace struct { - Person - Place -} - -type PersonPlacePtr struct { - *Person - *Place -} - -type EmbedConflict struct { - FirstName string `db:"first_name"` - Person -} - -type Loop1 struct { - Person -} - -type Loop2 struct { - Loop1 -} - -type Loop3 struct { - Loop2 -} - -type SliceMember struct { - Country string - City sql.NullString - TelCode int - People []Person `db:"-"` - Addresses []Place `db:"-"` -} - -// Note that because of field map caching, we need a new type here -// if we've used Place already soemwhere in sqlx -type CPlace Place - -func MultiExec(e Execer, query string) { - stmts := strings.Split(query, ";\n") - if len(strings.Trim(stmts[len(stmts)-1], " \n\t\r")) == 0 { - stmts = stmts[:len(stmts)-1] - } - for _, s := range stmts { - _, err := e.Exec(s) - if err != nil { - fmt.Println(err, s) - } - } -} - -func RunWithSchema(schema Schema, t *testing.T, test func(db *DB, t *testing.T)) { - runner := func(db *DB, t *testing.T, create, drop string) { - defer func() { - MultiExec(db, drop) - }() - - MultiExec(db, create) - test(db, t) - } - - if TestPostgres { - create, drop := schema.Postgres() - runner(pgdb, t, create, drop) - } - if TestSqlite { - create, drop := schema.Sqlite3() - runner(sldb, t, create, drop) - } - if TestMysql { - create, drop := schema.MySQL() - runner(mysqldb, t, create, drop) - } -} - -func loadDefaultFixture(db *DB, t *testing.T) { - tx := db.MustBegin() - tx.MustExec(tx.Rebind("INSERT INTO person (first_name, last_name, email) VALUES (?, ?, ?)"), "Jason", "Moiron", "jmoiron@jmoiron.net") - tx.MustExec(tx.Rebind("INSERT INTO person (first_name, last_name, email) VALUES (?, ?, ?)"), "John", "Doe", "johndoeDNE@gmail.net") - tx.MustExec(tx.Rebind("INSERT INTO place (country, city, telcode) VALUES (?, ?, ?)"), "United States", "New York", "1") - tx.MustExec(tx.Rebind("INSERT INTO place (country, telcode) VALUES (?, ?)"), "Hong Kong", "852") - tx.MustExec(tx.Rebind("INSERT INTO place (country, telcode) VALUES (?, ?)"), "Singapore", "65") - if db.DriverName() == "mysql" { - tx.MustExec(tx.Rebind("INSERT INTO capplace (`COUNTRY`, `TELCODE`) VALUES (?, ?)"), "Sarf Efrica", "27") - } else { - tx.MustExec(tx.Rebind("INSERT INTO capplace (\"COUNTRY\", \"TELCODE\") VALUES (?, ?)"), "Sarf Efrica", "27") - } - tx.Commit() -} - -// Test a new backwards compatible feature, that missing scan destinations -// will silently scan into sql.RawText rather than failing/panicing -func TestMissingNames(t *testing.T) { - RunWithSchema(defaultSchema, t, func(db *DB, t *testing.T) { - loadDefaultFixture(db, t) - type PersonPlus struct { - FirstName string `db:"first_name"` - LastName string `db:"last_name"` - Email string - //AddedAt time.Time `db:"added_at"` - } - - // test Select first - pps := []PersonPlus{} - // pps lacks added_at destination - err := db.Select(&pps, "SELECT * FROM person") - if err == nil { - t.Error("Expected missing name from Select to fail, but it did not.") - } - - // test Get - pp := PersonPlus{} - err = db.Get(&pp, "SELECT * FROM person LIMIT 1") - if err == nil { - t.Error("Expected missing name Get to fail, but it did not.") - } - - // test naked StructScan - pps = []PersonPlus{} - rows, err := db.Query("SELECT * FROM person LIMIT 1") - if err != nil { - t.Fatal(err) - } - rows.Next() - err = StructScan(rows, &pps) - if err == nil { - t.Error("Expected missing name in StructScan to fail, but it did not.") - } - rows.Close() - - // now try various things with unsafe set. - db = db.Unsafe() - pps = []PersonPlus{} - err = db.Select(&pps, "SELECT * FROM person") - if err != nil { - t.Error(err) - } - - // test Get - pp = PersonPlus{} - err = db.Get(&pp, "SELECT * FROM person LIMIT 1") - if err != nil { - t.Error(err) - } - - // test naked StructScan - pps = []PersonPlus{} - rowsx, err := db.Queryx("SELECT * FROM person LIMIT 1") - if err != nil { - t.Fatal(err) - } - rowsx.Next() - err = StructScan(rowsx, &pps) - if err != nil { - t.Error(err) - } - rowsx.Close() - - }) -} - -func TestEmbeddedStructs(t *testing.T) { - RunWithSchema(defaultSchema, t, func(db *DB, t *testing.T) { - loadDefaultFixture(db, t) - peopleAndPlaces := []PersonPlace{} - err := db.Select( - &peopleAndPlaces, - `SELECT person.*, place.* FROM - person natural join place`) - if err != nil { - t.Fatal(err) - } - for _, pp := range peopleAndPlaces { - if len(pp.Person.FirstName) == 0 { - t.Errorf("Expected non zero lengthed first name.") - } - if len(pp.Place.Country) == 0 { - t.Errorf("Expected non zero lengthed country.") - } - } - - // test embedded structs with StructScan - rows, err := db.Queryx( - `SELECT person.*, place.* FROM - person natural join place`) - if err != nil { - t.Error(err) - } - - perp := PersonPlace{} - rows.Next() - err = rows.StructScan(&perp) - if err != nil { - t.Error(err) - } - - if len(perp.Person.FirstName) == 0 { - t.Errorf("Expected non zero lengthed first name.") - } - if len(perp.Place.Country) == 0 { - t.Errorf("Expected non zero lengthed country.") - } - - rows.Close() - - // test the same for embedded pointer structs - peopleAndPlacesPtrs := []PersonPlacePtr{} - err = db.Select( - &peopleAndPlacesPtrs, - `SELECT person.*, place.* FROM - person natural join place`) - if err != nil { - t.Fatal(err) - } - for _, pp := range peopleAndPlacesPtrs { - if len(pp.Person.FirstName) == 0 { - t.Errorf("Expected non zero lengthed first name.") - } - if len(pp.Place.Country) == 0 { - t.Errorf("Expected non zero lengthed country.") - } - } - - // test "deep nesting" - l3s := []Loop3{} - err = db.Select(&l3s, `select * from person`) - if err != nil { - t.Fatal(err) - } - for _, l3 := range l3s { - if len(l3.Loop2.Loop1.Person.FirstName) == 0 { - t.Errorf("Expected non zero lengthed first name.") - } - } - - // test "embed conflicts" - ec := []EmbedConflict{} - err = db.Select(&ec, `select * from person`) - // I'm torn between erroring here or having some kind of working behavior - // in order to allow for more flexibility in destination structs - if err != nil { - t.Errorf("Was not expecting an error on embed conflicts.") - } - }) -} - -func TestSelectSliceMapTime(t *testing.T) { - RunWithSchema(defaultSchema, t, func(db *DB, t *testing.T) { - loadDefaultFixture(db, t) - rows, err := db.Queryx("SELECT * FROM person") - if err != nil { - t.Fatal(err) - } - for rows.Next() { - _, err := rows.SliceScan() - if err != nil { - t.Error(err) - } - } - - rows, err = db.Queryx("SELECT * FROM person") - if err != nil { - t.Fatal(err) - } - for rows.Next() { - m := map[string]interface{}{} - err := rows.MapScan(m) - if err != nil { - t.Error(err) - } - } - - }) -} - -func TestNilReceiver(t *testing.T) { - RunWithSchema(defaultSchema, t, func(db *DB, t *testing.T) { - loadDefaultFixture(db, t) - var p *Person - err := db.Get(p, "SELECT * FROM person LIMIT 1") - if err == nil { - t.Error("Expected error when getting into nil struct ptr.") - } - var pp *[]Person - err = db.Select(pp, "SELECT * FROM person") - if err == nil { - t.Error("Expected an error when selecting into nil slice ptr.") - } - }) -} - -func TestNamedQuery(t *testing.T) { - var schema = Schema{ - create: ` - CREATE TABLE person ( - first_name text NULL, - last_name text NULL, - email text NULL - ); - CREATE TABLE jsperson ( - "FIRST" text NULL, - last_name text NULL, - "EMAIL" text NULL - );`, - drop: ` - drop table person; - drop table jsperson; - `, - } - - RunWithSchema(schema, t, func(db *DB, t *testing.T) { - type Person struct { - FirstName sql.NullString `db:"first_name"` - LastName sql.NullString `db:"last_name"` - Email sql.NullString - } - - p := Person{ - FirstName: sql.NullString{"ben", true}, - LastName: sql.NullString{"doe", true}, - Email: sql.NullString{"ben@doe.com", true}, - } - - q1 := `INSERT INTO person (first_name, last_name, email) VALUES (:first_name, :last_name, :email)` - _, err := db.NamedExec(q1, p) - if err != nil { - log.Fatal(err) - } - - p2 := &Person{} - rows, err := db.NamedQuery("SELECT * FROM person WHERE first_name=:first_name", p) - if err != nil { - log.Fatal(err) - } - for rows.Next() { - err = rows.StructScan(p2) - if err != nil { - t.Error(err) - } - if p2.FirstName.String != "ben" { - t.Error("Expected first name of `ben`, got " + p2.FirstName.String) - } - if p2.LastName.String != "doe" { - t.Error("Expected first name of `doe`, got " + p2.LastName.String) - } - } - - // these are tests for #73; they verify that named queries work if you've - // changed the db mapper. This code checks both NamedQuery "ad-hoc" style - // queries and NamedStmt queries, which use different code paths internally. - old := *db.Mapper - - type JsonPerson struct { - FirstName sql.NullString `json:"FIRST"` - LastName sql.NullString `json:"last_name"` - Email sql.NullString - } - - jp := JsonPerson{ - FirstName: sql.NullString{"ben", true}, - LastName: sql.NullString{"smith", true}, - Email: sql.NullString{"ben@smith.com", true}, - } - - db.Mapper = reflectx.NewMapperFunc("json", strings.ToUpper) - - // prepare queries for case sensitivity to test our ToUpper function. - // postgres and sqlite accept "", but mysql uses ``; since Go's multi-line - // strings are `` we use "" by default and swap out for MySQL - pdb := func(s string, db *DB) string { - if db.DriverName() == "mysql" { - return strings.Replace(s, `"`, "`", -1) - } - return s - } - - q1 = `INSERT INTO jsperson ("FIRST", last_name, "EMAIL") VALUES (:FIRST, :last_name, :EMAIL)` - _, err = db.NamedExec(pdb(q1, db), jp) - if err != nil { - t.Fatal(err, db.DriverName()) - } - - // Checks that a person pulled out of the db matches the one we put in - check := func(t *testing.T, rows *Rows) { - jp = JsonPerson{} - for rows.Next() { - err = rows.StructScan(&jp) - if err != nil { - t.Error(err) - } - if jp.FirstName.String != "ben" { - t.Errorf("Expected first name of `ben`, got `%s` (%s) ", jp.FirstName.String, db.DriverName()) - } - if jp.LastName.String != "smith" { - t.Errorf("Expected LastName of `smith`, got `%s` (%s)", jp.LastName.String, db.DriverName()) - } - if jp.Email.String != "ben@smith.com" { - t.Errorf("Expected first name of `doe`, got `%s` (%s)", jp.Email.String, db.DriverName()) - } - } - } - - ns, err := db.PrepareNamed(pdb(` - SELECT * FROM jsperson - WHERE - "FIRST"=:FIRST AND - last_name=:last_name AND - "EMAIL"=:EMAIL - `, db)) - - if err != nil { - t.Fatal(err) - } - rows, err = ns.Queryx(jp) - if err != nil { - t.Fatal(err) - } - - check(t, rows) - - // Check exactly the same thing, but with db.NamedQuery, which does not go - // through the PrepareNamed/NamedStmt path. - rows, err = db.NamedQuery(pdb(` - SELECT * FROM jsperson - WHERE - "FIRST"=:FIRST AND - last_name=:last_name AND - "EMAIL"=:EMAIL - `, db), jp) - if err != nil { - t.Fatal(err) - } - - check(t, rows) - - db.Mapper = &old - - }) -} - -func TestNilInserts(t *testing.T) { - var schema = Schema{ - create: ` - CREATE TABLE tt ( - id integer, - value text NULL DEFAULT NULL - );`, - drop: "drop table tt;", - } - - RunWithSchema(schema, t, func(db *DB, t *testing.T) { - type TT struct { - Id int - Value *string - } - var v, v2 TT - r := db.Rebind - - db.MustExec(r(`INSERT INTO tt (id) VALUES (1)`)) - db.Get(&v, r(`SELECT * FROM tt`)) - if v.Id != 1 { - t.Errorf("Expecting id of 1, got %v", v.Id) - } - if v.Value != nil { - t.Errorf("Expecting NULL to map to nil, got %s", v.Value) - } - - v.Id = 2 - // NOTE: this incidentally uncovered a bug which was that named queries with - // pointer destinations would not work if the passed value here was not addressable, - // as reflectx.FieldByIndexes attempts to allocate nil pointer receivers for - // writing. This was fixed by creating & using the reflectx.FieldByIndexesReadOnly - // function. This next line is important as it provides the only coverage for this. - db.NamedExec(`INSERT INTO tt (id, value) VALUES (:id, :value)`, v) - - db.Get(&v2, r(`SELECT * FROM tt WHERE id=2`)) - if v.Id != v2.Id { - t.Errorf("%v != %v", v.Id, v2.Id) - } - if v2.Value != nil { - t.Errorf("Expecting NULL to map to nil, got %s", v.Value) - } - }) -} - -func TestScanError(t *testing.T) { - var schema = Schema{ - create: ` - CREATE TABLE kv ( - k text, - v integer - );`, - drop: `drop table kv;`, - } - - RunWithSchema(schema, t, func(db *DB, t *testing.T) { - type WrongTypes struct { - K int - V string - } - _, err := db.Exec(db.Rebind("INSERT INTO kv (k, v) VALUES (?, ?)"), "hi", 1) - if err != nil { - t.Error(err) - } - - rows, err := db.Queryx("SELECT * FROM kv") - if err != nil { - t.Error(err) - } - for rows.Next() { - var wt WrongTypes - err := rows.StructScan(&wt) - if err == nil { - t.Errorf("%s: Scanning wrong types into keys should have errored.", db.DriverName()) - } - } - }) -} - -// FIXME: this function is kinda big but it slows things down to be constantly -// loading and reloading the schema.. - -func TestUsage(t *testing.T) { - RunWithSchema(defaultSchema, t, func(db *DB, t *testing.T) { - loadDefaultFixture(db, t) - slicemembers := []SliceMember{} - err := db.Select(&slicemembers, "SELECT * FROM place ORDER BY telcode ASC") - if err != nil { - t.Fatal(err) - } - - people := []Person{} - - err = db.Select(&people, "SELECT * FROM person ORDER BY first_name ASC") - if err != nil { - t.Fatal(err) - } - - jason, john := people[0], people[1] - if jason.FirstName != "Jason" { - t.Errorf("Expecting FirstName of Jason, got %s", jason.FirstName) - } - if jason.LastName != "Moiron" { - t.Errorf("Expecting LastName of Moiron, got %s", jason.LastName) - } - if jason.Email != "jmoiron@jmoiron.net" { - t.Errorf("Expecting Email of jmoiron@jmoiron.net, got %s", jason.Email) - } - if john.FirstName != "John" || john.LastName != "Doe" || john.Email != "johndoeDNE@gmail.net" { - t.Errorf("John Doe's person record not what expected: Got %v\n", john) - } - - jason = Person{} - err = db.Get(&jason, db.Rebind("SELECT * FROM person WHERE first_name=?"), "Jason") - - if err != nil { - t.Fatal(err) - } - if jason.FirstName != "Jason" { - t.Errorf("Expecting to get back Jason, but got %v\n", jason.FirstName) - } - - err = db.Get(&jason, db.Rebind("SELECT * FROM person WHERE first_name=?"), "Foobar") - if err == nil { - t.Errorf("Expecting an error, got nil\n") - } - if err != sql.ErrNoRows { - t.Errorf("Expected sql.ErrNoRows, got %v\n", err) - } - - // The following tests check statement reuse, which was actually a problem - // due to copying being done when creating Stmt's which was eventually removed - stmt1, err := db.Preparex(db.Rebind("SELECT * FROM person WHERE first_name=?")) - if err != nil { - t.Fatal(err) - } - jason = Person{} - - row := stmt1.QueryRowx("DoesNotExist") - row.Scan(&jason) - row = stmt1.QueryRowx("DoesNotExist") - row.Scan(&jason) - - err = stmt1.Get(&jason, "DoesNotExist User") - if err == nil { - t.Error("Expected an error") - } - err = stmt1.Get(&jason, "DoesNotExist User 2") - - stmt2, err := db.Preparex(db.Rebind("SELECT * FROM person WHERE first_name=?")) - if err != nil { - t.Fatal(err) - } - jason = Person{} - tx, err := db.Beginx() - if err != nil { - t.Fatal(err) - } - tstmt2 := tx.Stmtx(stmt2) - row2 := tstmt2.QueryRowx("Jason") - err = row2.StructScan(&jason) - if err != nil { - t.Error(err) - } - tx.Commit() - - places := []*Place{} - err = db.Select(&places, "SELECT telcode FROM place ORDER BY telcode ASC") - usa, singsing, honkers := places[0], places[1], places[2] - - if usa.TelCode != 1 || honkers.TelCode != 852 || singsing.TelCode != 65 { - t.Errorf("Expected integer telcodes to work, got %#v", places) - } - - placesptr := []PlacePtr{} - err = db.Select(&placesptr, "SELECT * FROM place ORDER BY telcode ASC") - if err != nil { - t.Error(err) - } - //fmt.Printf("%#v\n%#v\n%#v\n", placesptr[0], placesptr[1], placesptr[2]) - - // if you have null fields and use SELECT *, you must use sql.Null* in your struct - // this test also verifies that you can use either a []Struct{} or a []*Struct{} - places2 := []Place{} - err = db.Select(&places2, "SELECT * FROM place ORDER BY telcode ASC") - usa, singsing, honkers = &places2[0], &places2[1], &places2[2] - - // this should return a type error that &p is not a pointer to a struct slice - p := Place{} - err = db.Select(&p, "SELECT * FROM place ORDER BY telcode ASC") - if err == nil { - t.Errorf("Expected an error, argument to select should be a pointer to a struct slice") - } - - // this should be an error - pl := []Place{} - err = db.Select(pl, "SELECT * FROM place ORDER BY telcode ASC") - if err == nil { - t.Errorf("Expected an error, argument to select should be a pointer to a struct slice, not a slice.") - } - - if usa.TelCode != 1 || honkers.TelCode != 852 || singsing.TelCode != 65 { - t.Errorf("Expected integer telcodes to work, got %#v", places) - } - - stmt, err := db.Preparex(db.Rebind("SELECT country, telcode FROM place WHERE telcode > ? ORDER BY telcode ASC")) - if err != nil { - t.Error(err) - } - - places = []*Place{} - err = stmt.Select(&places, 10) - if len(places) != 2 { - t.Error("Expected 2 places, got 0.") - } - if err != nil { - t.Fatal(err) - } - singsing, honkers = places[0], places[1] - if singsing.TelCode != 65 || honkers.TelCode != 852 { - t.Errorf("Expected the right telcodes, got %#v", places) - } - - rows, err := db.Queryx("SELECT * FROM place") - if err != nil { - t.Fatal(err) - } - place := Place{} - for rows.Next() { - err = rows.StructScan(&place) - if err != nil { - t.Fatal(err) - } - } - - rows, err = db.Queryx("SELECT * FROM place") - if err != nil { - t.Fatal(err) - } - m := map[string]interface{}{} - for rows.Next() { - err = rows.MapScan(m) - if err != nil { - t.Fatal(err) - } - _, ok := m["country"] - if !ok { - t.Errorf("Expected key `country` in map but could not find it (%#v)\n", m) - } - } - - rows, err = db.Queryx("SELECT * FROM place") - if err != nil { - t.Fatal(err) - } - for rows.Next() { - s, err := rows.SliceScan() - if err != nil { - t.Error(err) - } - if len(s) != 3 { - t.Errorf("Expected 3 columns in result, got %d\n", len(s)) - } - } - - // test advanced querying - // test that NamedExec works with a map as well as a struct - _, err = db.NamedExec("INSERT INTO person (first_name, last_name, email) VALUES (:first, :last, :email)", map[string]interface{}{ - "first": "Bin", - "last": "Smuth", - "email": "bensmith@allblacks.nz", - }) - if err != nil { - t.Fatal(err) - } - - // ensure that if the named param happens right at the end it still works - // ensure that NamedQuery works with a map[string]interface{} - rows, err = db.NamedQuery("SELECT * FROM person WHERE first_name=:first", map[string]interface{}{"first": "Bin"}) - if err != nil { - t.Fatal(err) - } - - ben := &Person{} - for rows.Next() { - err = rows.StructScan(ben) - if err != nil { - t.Fatal(err) - } - if ben.FirstName != "Bin" { - t.Fatal("Expected first name of `Bin`, got " + ben.FirstName) - } - if ben.LastName != "Smuth" { - t.Fatal("Expected first name of `Smuth`, got " + ben.LastName) - } - } - - ben.FirstName = "Ben" - ben.LastName = "Smith" - ben.Email = "binsmuth@allblacks.nz" - - // Insert via a named query using the struct - _, err = db.NamedExec("INSERT INTO person (first_name, last_name, email) VALUES (:first_name, :last_name, :email)", ben) - - if err != nil { - t.Fatal(err) - } - - rows, err = db.NamedQuery("SELECT * FROM person WHERE first_name=:first_name", ben) - if err != nil { - t.Fatal(err) - } - for rows.Next() { - err = rows.StructScan(ben) - if err != nil { - t.Fatal(err) - } - if ben.FirstName != "Ben" { - t.Fatal("Expected first name of `Ben`, got " + ben.FirstName) - } - if ben.LastName != "Smith" { - t.Fatal("Expected first name of `Smith`, got " + ben.LastName) - } - } - // ensure that Get does not panic on emppty result set - person := &Person{} - err = db.Get(person, "SELECT * FROM person WHERE first_name=$1", "does-not-exist") - if err == nil { - t.Fatal("Should have got an error for Get on non-existant row.") - } - - // lets test prepared statements some more - - stmt, err = db.Preparex(db.Rebind("SELECT * FROM person WHERE first_name=?")) - if err != nil { - t.Fatal(err) - } - rows, err = stmt.Queryx("Ben") - if err != nil { - t.Fatal(err) - } - for rows.Next() { - err = rows.StructScan(ben) - if err != nil { - t.Fatal(err) - } - if ben.FirstName != "Ben" { - t.Fatal("Expected first name of `Ben`, got " + ben.FirstName) - } - if ben.LastName != "Smith" { - t.Fatal("Expected first name of `Smith`, got " + ben.LastName) - } - } - - john = Person{} - stmt, err = db.Preparex(db.Rebind("SELECT * FROM person WHERE first_name=?")) - if err != nil { - t.Error(err) - } - err = stmt.Get(&john, "John") - if err != nil { - t.Error(err) - } - - // test name mapping - // THIS USED TO WORK BUT WILL NO LONGER WORK. - db.MapperFunc(strings.ToUpper) - rsa := CPlace{} - err = db.Get(&rsa, "SELECT * FROM capplace;") - if err != nil { - t.Error(err, "in db:", db.DriverName()) - } - db.MapperFunc(strings.ToLower) - - // create a copy and change the mapper, then verify the copy behaves - // differently from the original. - dbCopy := NewDb(db.DB, db.DriverName()) - dbCopy.MapperFunc(strings.ToUpper) - err = dbCopy.Get(&rsa, "SELECT * FROM capplace;") - if err != nil { - fmt.Println(db.DriverName()) - t.Error(err) - } - - err = db.Get(&rsa, "SELECT * FROM cappplace;") - if err == nil { - t.Error("Expected no error, got ", err) - } - - // test base type slices - var sdest []string - rows, err = db.Queryx("SELECT email FROM person ORDER BY email ASC;") - if err != nil { - t.Error(err) - } - err = scanAll(rows, &sdest, false) - if err != nil { - t.Error(err) - } - - // test Get with base types - var count int - err = db.Get(&count, "SELECT count(*) FROM person;") - if err != nil { - t.Error(err) - } - if count != len(sdest) { - t.Errorf("Expected %d == %d (count(*) vs len(SELECT ..)", count, len(sdest)) - } - - // test Get and Select with time.Time, #84 - var addedAt time.Time - err = db.Get(&addedAt, "SELECT added_at FROM person LIMIT 1;") - if err != nil { - t.Error(err) - } - - var addedAts []time.Time - err = db.Select(&addedAts, "SELECT added_at FROM person;") - if err != nil { - t.Error(err) - } - - // test it on a double pointer - var pcount *int - err = db.Get(&pcount, "SELECT count(*) FROM person;") - if err != nil { - t.Error(err) - } - if *pcount != count { - t.Error("expected %d = %d", *pcount, count) - } - - // test Select... - sdest = []string{} - err = db.Select(&sdest, "SELECT first_name FROM person ORDER BY first_name ASC;") - if err != nil { - t.Error(err) - } - expected := []string{"Ben", "Bin", "Jason", "John"} - for i, got := range sdest { - if got != expected[i] { - t.Errorf("Expected %d result to be %s, but got %s", i, expected[i], got) - } - } - - var nsdest []sql.NullString - err = db.Select(&nsdest, "SELECT city FROM place ORDER BY city ASC") - if err != nil { - t.Error(err) - } - for _, val := range nsdest { - if val.Valid && val.String != "New York" { - t.Errorf("expected single valid result to be `New York`, but got %s", val.String) - } - } - }) -} - -type Product struct { - ProductID int -} - -// tests that sqlx will not panic when the wrong driver is passed because -// of an automatic nil dereference in sqlx.Open(), which was fixed. -func TestDoNotPanicOnConnect(t *testing.T) { - _, err := Connect("bogus", "hehe") - if err == nil { - t.Errorf("Should return error when using bogus driverName") - } -} -func TestRebind(t *testing.T) { - q1 := `INSERT INTO foo (a, b, c, d, e, f, g, h, i) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` - q2 := `INSERT INTO foo (a, b, c) VALUES (?, ?, "foo"), ("Hi", ?, ?)` - - s1 := Rebind(DOLLAR, q1) - s2 := Rebind(DOLLAR, q2) - - if s1 != `INSERT INTO foo (a, b, c, d, e, f, g, h, i) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)` { - t.Errorf("q1 failed") - } - - if s2 != `INSERT INTO foo (a, b, c) VALUES ($1, $2, "foo"), ("Hi", $3, $4)` { - t.Errorf("q2 failed") - } -} - -func TestBindMap(t *testing.T) { - // Test that it works.. - q1 := `INSERT INTO foo (a, b, c, d) VALUES (:name, :age, :first, :last)` - am := map[string]interface{}{ - "name": "Jason Moiron", - "age": 30, - "first": "Jason", - "last": "Moiron", - } - - bq, args, _ := bindMap(QUESTION, q1, am) - expect := `INSERT INTO foo (a, b, c, d) VALUES (?, ?, ?, ?)` - if bq != expect { - t.Errorf("Interpolation of query failed: got `%v`, expected `%v`\n", bq, expect) - } - - if args[0].(string) != "Jason Moiron" { - t.Errorf("Expected `Jason Moiron`, got %v\n", args[0]) - } - - if args[1].(int) != 30 { - t.Errorf("Expected 30, got %v\n", args[1]) - } - - if args[2].(string) != "Jason" { - t.Errorf("Expected Jason, got %v\n", args[2]) - } - - if args[3].(string) != "Moiron" { - t.Errorf("Expected Moiron, got %v\n", args[3]) - } -} - -func TestBindStruct(t *testing.T) { - var err error - - q1 := `INSERT INTO foo (a, b, c, d) VALUES (:name, :age, :first, :last)` - - type tt struct { - Name string - Age int - First string - Last string - } - - type tt2 struct { - Field1 string `db:"field_1"` - Field2 string `db:"field_2"` - } - - type tt3 struct { - tt2 - Name string - } - - am := tt{"Jason Moiron", 30, "Jason", "Moiron"} - - bq, args, _ := bindStruct(QUESTION, q1, am, mapper()) - expect := `INSERT INTO foo (a, b, c, d) VALUES (?, ?, ?, ?)` - if bq != expect { - t.Errorf("Interpolation of query failed: got `%v`, expected `%v`\n", bq, expect) - } - - if args[0].(string) != "Jason Moiron" { - t.Errorf("Expected `Jason Moiron`, got %v\n", args[0]) - } - - if args[1].(int) != 30 { - t.Errorf("Expected 30, got %v\n", args[1]) - } - - if args[2].(string) != "Jason" { - t.Errorf("Expected Jason, got %v\n", args[2]) - } - - if args[3].(string) != "Moiron" { - t.Errorf("Expected Moiron, got %v\n", args[3]) - } - - am2 := tt2{"Hello", "World"} - bq, args, _ = bindStruct(QUESTION, "INSERT INTO foo (a, b) VALUES (:field_2, :field_1)", am2, mapper()) - expect = `INSERT INTO foo (a, b) VALUES (?, ?)` - if bq != expect { - t.Errorf("Interpolation of query failed: got `%v`, expected `%v`\n", bq, expect) - } - - if args[0].(string) != "World" { - t.Errorf("Expected 'World', got %s\n", args[0].(string)) - } - if args[1].(string) != "Hello" { - t.Errorf("Expected 'Hello', got %s\n", args[1].(string)) - } - - am3 := tt3{Name: "Hello!"} - am3.Field1 = "Hello" - am3.Field2 = "World" - - bq, args, err = bindStruct(QUESTION, "INSERT INTO foo (a, b, c) VALUES (:name, :field_1, :field_2)", am3, mapper()) - - if err != nil { - t.Fatal(err) - } - - expect = `INSERT INTO foo (a, b, c) VALUES (?, ?, ?)` - if bq != expect { - t.Errorf("Interpolation of query failed: got `%v`, expected `%v`\n", bq, expect) - } - - if args[0].(string) != "Hello!" { - t.Errorf("Expected 'Hello!', got %s\n", args[0].(string)) - } - if args[1].(string) != "Hello" { - t.Errorf("Expected 'Hello', got %s\n", args[1].(string)) - } - if args[2].(string) != "World" { - t.Errorf("Expected 'World', got %s\n", args[0].(string)) - } -} - -func TestEmbeddedLiterals(t *testing.T) { - var schema = Schema{ - create: ` - CREATE TABLE x ( - k text - );`, - drop: `drop table x;`, - } - - RunWithSchema(schema, t, func(db *DB, t *testing.T) { - type t1 struct { - K *string - } - type t2 struct { - Inline struct { - F string - } - K *string - } - - db.MustExec(db.Rebind("INSERT INTO x (k) VALUES (?), (?), (?);"), "one", "two", "three") - - target := t1{} - err := db.Get(&target, db.Rebind("SELECT * FROM x WHERE k=?"), "one") - if err != nil { - t.Error(err) - } - if *target.K != "one" { - t.Error("Expected target.K to be `one`, got ", target.K) - } - - target2 := t2{} - err = db.Get(&target2, db.Rebind("SELECT * FROM x WHERE k=?"), "one") - if err != nil { - t.Error(err) - } - if *target2.K != "one" { - t.Errorf("Expected target2.K to be `one`, got `%v`", target2.K) - } - - }) -} - -func BenchmarkBindStruct(b *testing.B) { - b.StopTimer() - q1 := `INSERT INTO foo (a, b, c, d) VALUES (:name, :age, :first, :last)` - type t struct { - Name string - Age int - First string - Last string - } - am := t{"Jason Moiron", 30, "Jason", "Moiron"} - b.StartTimer() - for i := 0; i < b.N; i++ { - bindStruct(DOLLAR, q1, am, mapper()) - //bindMap(QUESTION, q1, am) - } -} - -func BenchmarkBindMap(b *testing.B) { - b.StopTimer() - q1 := `INSERT INTO foo (a, b, c, d) VALUES (:name, :age, :first, :last)` - am := map[string]interface{}{ - "name": "Jason Moiron", - "age": 30, - "first": "Jason", - "last": "Moiron", - } - b.StartTimer() - for i := 0; i < b.N; i++ { - bindMap(DOLLAR, q1, am) - //bindMap(QUESTION, q1, am) - } -} - -func BenchmarkRebind(b *testing.B) { - b.StopTimer() - q1 := `INSERT INTO foo (a, b, c, d, e, f, g, h, i) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)` - q2 := `INSERT INTO foo (a, b, c) VALUES (?, ?, "foo"), ("Hi", ?, ?)` - b.StartTimer() - - for i := 0; i < b.N; i++ { - Rebind(DOLLAR, q1) - Rebind(DOLLAR, q2) - } -} - -func BenchmarkRebindBuffer(b *testing.B) { - b.StopTimer() - q1 := `INSERT INTO foo (a, b, c, d, e, f, g, h, i) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)` - q2 := `INSERT INTO foo (a, b, c) VALUES (?, ?, "foo"), ("Hi", ?, ?)` - b.StartTimer() - - for i := 0; i < b.N; i++ { - rebindBuff(DOLLAR, q1) - rebindBuff(DOLLAR, q2) - } -} diff --git a/vendor/github.com/jmoiron/sqlx/types/README.md b/vendor/github.com/jmoiron/sqlx/types/README.md deleted file mode 100644 index 713abe5..0000000 --- a/vendor/github.com/jmoiron/sqlx/types/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# types - -The types package provides some useful types which implement the `sql.Scanner` -and `driver.Valuer` interfaces, suitable for use as scan and value targets with -database/sql. diff --git a/vendor/github.com/jmoiron/sqlx/types/types.go b/vendor/github.com/jmoiron/sqlx/types/types.go deleted file mode 100644 index f1700b6..0000000 --- a/vendor/github.com/jmoiron/sqlx/types/types.go +++ /dev/null @@ -1,95 +0,0 @@ -package types - -import ( - "bytes" - "compress/gzip" - "database/sql/driver" - "encoding/json" - "errors" - - "io/ioutil" -) - -type GzippedText []byte - -func (g GzippedText) Value() (driver.Value, error) { - b := make([]byte, 0, len(g)) - buf := bytes.NewBuffer(b) - w := gzip.NewWriter(buf) - w.Write(g) - w.Close() - return buf.Bytes(), nil - -} - -func (g *GzippedText) Scan(src interface{}) error { - var source []byte - switch src.(type) { - case string: - source = []byte(src.(string)) - case []byte: - source = src.([]byte) - default: - return errors.New("Incompatible type for GzippedText") - } - reader, err := gzip.NewReader(bytes.NewReader(source)) - defer reader.Close() - b, err := ioutil.ReadAll(reader) - if err != nil { - return err - } - *g = GzippedText(b) - return nil -} - -// JsonText is a json.RawMessage, which is a []byte underneath. -// Value() validates the json format in the source, and returns an error if -// the json is not valid. Scan does no validation. JsonText additionally -// implements `Unmarshal`, which unmarshals the json within to an interface{} -type JsonText json.RawMessage - -// Returns the *j as the JSON encoding of j. -func (j *JsonText) MarshalJSON() ([]byte, error) { - return *j, nil -} - -// UnmarshalJSON sets *j to a copy of data -func (j *JsonText) UnmarshalJSON(data []byte) error { - if j == nil { - return errors.New("JsonText: UnmarshalJSON on nil pointer") - } - *j = append((*j)[0:0], data...) - return nil - -} - -// Value returns j as a value. This does a validating unmarshal into another -// RawMessage. If j is invalid json, it returns an error. -func (j JsonText) Value() (driver.Value, error) { - var m json.RawMessage - var err = j.Unmarshal(&m) - if err != nil { - return []byte{}, err - } - return []byte(j), nil -} - -// Scan stores the src in *j. No validation is done. -func (j *JsonText) Scan(src interface{}) error { - var source []byte - switch src.(type) { - case string: - source = []byte(src.(string)) - case []byte: - source = src.([]byte) - default: - return errors.New("Incompatible type for JsonText") - } - *j = JsonText(append((*j)[0:0], source...)) - return nil -} - -// Unmarshal unmarshal's the json in j to v, as in json.Unmarshal. -func (j *JsonText) Unmarshal(v interface{}) error { - return json.Unmarshal([]byte(*j), v) -} diff --git a/vendor/github.com/jmoiron/sqlx/types/types_test.go b/vendor/github.com/jmoiron/sqlx/types/types_test.go deleted file mode 100644 index e5c9e1a..0000000 --- a/vendor/github.com/jmoiron/sqlx/types/types_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package types - -import "testing" - -func TestGzipText(t *testing.T) { - g := GzippedText("Hello, world") - v, err := g.Value() - if err != nil { - t.Errorf("Was not expecting an error") - } - err = (&g).Scan(v) - if err != nil { - t.Errorf("Was not expecting an error") - } - if string(g) != "Hello, world" { - t.Errorf("Was expecting the string we sent in (Hello World), got %s", string(g)) - } -} - -func TestJsonText(t *testing.T) { - j := JsonText(`{"foo": 1, "bar": 2}`) - v, err := j.Value() - if err != nil { - t.Errorf("Was not expecting an error") - } - err = (&j).Scan(v) - if err != nil { - t.Errorf("Was not expecting an error") - } - m := map[string]interface{}{} - j.Unmarshal(&m) - - if m["foo"].(float64) != 1 || m["bar"].(float64) != 2 { - t.Errorf("Expected valid json but got some garbage instead? %#v", m) - } - - j = JsonText(`{"foo": 1, invalid, false}`) - v, err = j.Value() - if err == nil { - t.Errorf("Was expecting invalid json to fail!") - } -} diff --git a/vendor/github.com/juju/errors/LICENSE b/vendor/github.com/juju/errors/LICENSE deleted file mode 100644 index ade9307..0000000 --- a/vendor/github.com/juju/errors/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ -All files in this repository are licensed as follows. If you contribute -to this repository, it is assumed that you license your contribution -under the same license unless you state otherwise. - -All files Copyright (C) 2015 Canonical Ltd. unless otherwise specified in the file. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to -convey to a third party a Combined Work that links statically or dynamically -to this Library without providing any Minimal Corresponding Source or -Minimal Application Code as set out in 4d or providing the installation -information set out in section 4e, provided that you comply with the other -provisions of LGPL3 and provided that you meet, for the Application the -terms and conditions of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception -statement from your version. This exception does not (and cannot) modify any -license terms which apply to the Application, with which you must still -comply. - - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser 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 -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/vendor/github.com/juju/errors/Makefile b/vendor/github.com/juju/errors/Makefile deleted file mode 100644 index ab7c2e6..0000000 --- a/vendor/github.com/juju/errors/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -default: check - -check: - go test && go test -compiler gccgo - -docs: - godoc2md github.com/juju/errors > README.md - sed -i 's|\[godoc-link-here\]|[![GoDoc](https://godoc.org/github.com/juju/errors?status.svg)](https://godoc.org/github.com/juju/errors)|' README.md - - -.PHONY: default check docs diff --git a/vendor/github.com/juju/errors/README.md b/vendor/github.com/juju/errors/README.md deleted file mode 100644 index ee24891..0000000 --- a/vendor/github.com/juju/errors/README.md +++ /dev/null @@ -1,536 +0,0 @@ - -# errors - import "github.com/juju/errors" - -[![GoDoc](https://godoc.org/github.com/juju/errors?status.svg)](https://godoc.org/github.com/juju/errors) - -The juju/errors provides an easy way to annotate errors without losing the -orginal error context. - -The exported `New` and `Errorf` functions are designed to replace the -`errors.New` and `fmt.Errorf` functions respectively. The same underlying -error is there, but the package also records the location at which the error -was created. - -A primary use case for this library is to add extra context any time an -error is returned from a function. - - - if err := SomeFunc(); err != nil { - return err - } - -This instead becomes: - - - if err := SomeFunc(); err != nil { - return errors.Trace(err) - } - -which just records the file and line number of the Trace call, or - - - if err := SomeFunc(); err != nil { - return errors.Annotate(err, "more context") - } - -which also adds an annotation to the error. - -When you want to check to see if an error is of a particular type, a helper -function is normally exported by the package that returned the error, like the -`os` package does. The underlying cause of the error is available using the -`Cause` function. - - - os.IsNotExist(errors.Cause(err)) - -The result of the `Error()` call on an annotated error is the annotations joined -with colons, then the result of the `Error()` method for the underlying error -that was the cause. - - - err := errors.Errorf("original") - err = errors.Annotatef(err, "context") - err = errors.Annotatef(err, "more context") - err.Error() -> "more context: context: original" - -Obviously recording the file, line and functions is not very useful if you -cannot get them back out again. - - - errors.ErrorStack(err) - -will return something like: - - - first error - github.com/juju/errors/annotation_test.go:193: - github.com/juju/errors/annotation_test.go:194: annotation - github.com/juju/errors/annotation_test.go:195: - github.com/juju/errors/annotation_test.go:196: more context - github.com/juju/errors/annotation_test.go:197: - -The first error was generated by an external system, so there was no location -associated. The second, fourth, and last lines were generated with Trace calls, -and the other two through Annotate. - -Sometimes when responding to an error you want to return a more specific error -for the situation. - - - if err := FindField(field); err != nil { - return errors.Wrap(err, errors.NotFoundf(field)) - } - -This returns an error where the complete error stack is still available, and -`errors.Cause()` will return the `NotFound` error. - - - - - - -## func AlreadyExistsf -``` go -func AlreadyExistsf(format string, args ...interface{}) error -``` -AlreadyExistsf returns an error which satisfies IsAlreadyExists(). - - -## func Annotate -``` go -func Annotate(other error, message string) error -``` -Annotate is used to add extra context to an existing error. The location of -the Annotate call is recorded with the annotations. The file, line and -function are also recorded. - -For example: - - - if err := SomeFunc(); err != nil { - return errors.Annotate(err, "failed to frombulate") - } - - -## func Annotatef -``` go -func Annotatef(other error, format string, args ...interface{}) error -``` -Annotatef is used to add extra context to an existing error. The location of -the Annotate call is recorded with the annotations. The file, line and -function are also recorded. - -For example: - - - if err := SomeFunc(); err != nil { - return errors.Annotatef(err, "failed to frombulate the %s", arg) - } - - -## func Cause -``` go -func Cause(err error) error -``` -Cause returns the cause of the given error. This will be either the -original error, or the result of a Wrap or Mask call. - -Cause is the usual way to diagnose errors that may have been wrapped by -the other errors functions. - - -## func DeferredAnnotatef -``` go -func DeferredAnnotatef(err *error, format string, args ...interface{}) -``` -DeferredAnnotatef annotates the given error (when it is not nil) with the given -format string and arguments (like fmt.Sprintf). If *err is nil, DeferredAnnotatef -does nothing. This method is used in a defer statement in order to annotate any -resulting error with the same message. - -For example: - - - defer DeferredAnnotatef(&err, "failed to frombulate the %s", arg) - - -## func Details -``` go -func Details(err error) string -``` -Details returns information about the stack of errors wrapped by err, in -the format: - - - [{filename:99: error one} {otherfile:55: cause of error one}] - -This is a terse alternative to ErrorStack as it returns a single line. - - -## func ErrorStack -``` go -func ErrorStack(err error) string -``` -ErrorStack returns a string representation of the annotated error. If the -error passed as the parameter is not an annotated error, the result is -simply the result of the Error() method on that error. - -If the error is an annotated error, a multi-line string is returned where -each line represents one entry in the annotation stack. The full filename -from the call stack is used in the output. - - - first error - github.com/juju/errors/annotation_test.go:193: - github.com/juju/errors/annotation_test.go:194: annotation - github.com/juju/errors/annotation_test.go:195: - github.com/juju/errors/annotation_test.go:196: more context - github.com/juju/errors/annotation_test.go:197: - - -## func Errorf -``` go -func Errorf(format string, args ...interface{}) error -``` -Errorf creates a new annotated error and records the location that the -error is created. This should be a drop in replacement for fmt.Errorf. - -For example: - - - return errors.Errorf("validation failed: %s", message) - - -## func IsAlreadyExists -``` go -func IsAlreadyExists(err error) bool -``` -IsAlreadyExists reports whether the error was created with -AlreadyExistsf() or NewAlreadyExists(). - - -## func IsNotFound -``` go -func IsNotFound(err error) bool -``` -IsNotFound reports whether err was created with NotFoundf() or -NewNotFound(). - - -## func IsNotImplemented -``` go -func IsNotImplemented(err error) bool -``` -IsNotImplemented reports whether err was created with -NotImplementedf() or NewNotImplemented(). - - -## func IsNotSupported -``` go -func IsNotSupported(err error) bool -``` -IsNotSupported reports whether the error was created with -NotSupportedf() or NewNotSupported(). - - -## func IsNotValid -``` go -func IsNotValid(err error) bool -``` -IsNotValid reports whether the error was created with NotValidf() or -NewNotValid(). - - -## func IsUnauthorized -``` go -func IsUnauthorized(err error) bool -``` -IsUnauthorized reports whether err was created with Unauthorizedf() or -NewUnauthorized(). - - -## func Mask -``` go -func Mask(other error) error -``` -Mask hides the underlying error type, and records the location of the masking. - - -## func Maskf -``` go -func Maskf(other error, format string, args ...interface{}) error -``` -Mask masks the given error with the given format string and arguments (like -fmt.Sprintf), returning a new error that maintains the error stack, but -hides the underlying error type. The error string still contains the full -annotations. If you want to hide the annotations, call Wrap. - - -## func New -``` go -func New(message string) error -``` -New is a drop in replacement for the standard libary errors module that records -the location that the error is created. - -For example: - - - return errors.New("validation failed") - - -## func NewAlreadyExists -``` go -func NewAlreadyExists(err error, msg string) error -``` -NewAlreadyExists returns an error which wraps err and satisfies -IsAlreadyExists(). - - -## func NewNotFound -``` go -func NewNotFound(err error, msg string) error -``` -NewNotFound returns an error which wraps err that satisfies -IsNotFound(). - - -## func NewNotImplemented -``` go -func NewNotImplemented(err error, msg string) error -``` -NewNotImplemented returns an error which wraps err and satisfies -IsNotImplemented(). - - -## func NewNotSupported -``` go -func NewNotSupported(err error, msg string) error -``` -NewNotSupported returns an error which wraps err and satisfies -IsNotSupported(). - - -## func NewNotValid -``` go -func NewNotValid(err error, msg string) error -``` -NewNotValid returns an error which wraps err and satisfies IsNotValid(). - - -## func NewUnauthorized -``` go -func NewUnauthorized(err error, msg string) error -``` -NewUnauthorized returns an error which wraps err and satisfies -IsUnauthorized(). - - -## func NotFoundf -``` go -func NotFoundf(format string, args ...interface{}) error -``` -NotFoundf returns an error which satisfies IsNotFound(). - - -## func NotImplementedf -``` go -func NotImplementedf(format string, args ...interface{}) error -``` -NotImplementedf returns an error which satisfies IsNotImplemented(). - - -## func NotSupportedf -``` go -func NotSupportedf(format string, args ...interface{}) error -``` -NotSupportedf returns an error which satisfies IsNotSupported(). - - -## func NotValidf -``` go -func NotValidf(format string, args ...interface{}) error -``` -NotValidf returns an error which satisfies IsNotValid(). - - -## func Trace -``` go -func Trace(other error) error -``` -Trace adds the location of the Trace call to the stack. The Cause of the -resulting error is the same as the error parameter. If the other error is -nil, the result will be nil. - -For example: - - - if err := SomeFunc(); err != nil { - return errors.Trace(err) - } - - -## func Unauthorizedf -``` go -func Unauthorizedf(format string, args ...interface{}) error -``` -Unauthorizedf returns an error which satisfies IsUnauthorized(). - - -## func Wrap -``` go -func Wrap(other, newDescriptive error) error -``` -Wrap changes the Cause of the error. The location of the Wrap call is also -stored in the error stack. - -For example: - - - if err := SomeFunc(); err != nil { - newErr := &packageError{"more context", private_value} - return errors.Wrap(err, newErr) - } - - -## func Wrapf -``` go -func Wrapf(other, newDescriptive error, format string, args ...interface{}) error -``` -Wrapf changes the Cause of the error, and adds an annotation. The location -of the Wrap call is also stored in the error stack. - -For example: - - - if err := SomeFunc(); err != nil { - return errors.Wrapf(err, simpleErrorType, "invalid value %q", value) - } - - - -## type Err -``` go -type Err struct { - // contains filtered or unexported fields -} -``` -Err holds a description of an error along with information about -where the error was created. - -It may be embedded in custom error types to add extra information that -this errors package can understand. - - - - - - - - - -### func NewErr -``` go -func NewErr(format string, args ...interface{}) Err -``` -NewErr is used to return an Err for the purpose of embedding in other -structures. The location is not specified, and needs to be set with a call -to SetLocation. - -For example: - - - type FooError struct { - errors.Err - code int - } - - func NewFooError(code int) error { - err := &FooError{errors.NewErr("foo"), code} - err.SetLocation(1) - return err - } - - - - -### func (\*Err) Cause -``` go -func (e *Err) Cause() error -``` -The Cause of an error is the most recent error in the error stack that -meets one of these criteria: the original error that was raised; the new -error that was passed into the Wrap function; the most recently masked -error; or nil if the error itself is considered the Cause. Normally this -method is not invoked directly, but instead through the Cause stand alone -function. - - - -### func (\*Err) Error -``` go -func (e *Err) Error() string -``` -Error implements error.Error. - - - -### func (\*Err) Location -``` go -func (e *Err) Location() (filename string, line int) -``` -Location is the file and line of where the error was most recently -created or annotated. - - - -### func (\*Err) Message -``` go -func (e *Err) Message() string -``` -Message returns the message stored with the most recent location. This is -the empty string if the most recent call was Trace, or the message stored -with Annotate or Mask. - - - -### func (\*Err) SetLocation -``` go -func (e *Err) SetLocation(callDepth int) -``` -SetLocation records the source location of the error at callDepth stack -frames above the call. - - - -### func (\*Err) StackTrace -``` go -func (e *Err) StackTrace() []string -``` -StackTrace returns one string for each location recorded in the stack of -errors. The first value is the originating error, with a line for each -other annotation or tracing of the error. - - - -### func (\*Err) Underlying -``` go -func (e *Err) Underlying() error -``` -Underlying returns the previous error in the error stack, if any. A client -should not ever really call this method. It is used to build the error -stack and should not be introspected by client calls. Or more -specifically, clients should not depend on anything but the `Cause` of an -error. - - - - - - - - - -- - - -Generated by [godoc2md](http://godoc.org/github.com/davecheney/godoc2md) \ No newline at end of file diff --git a/vendor/github.com/juju/errors/doc.go b/vendor/github.com/juju/errors/doc.go deleted file mode 100644 index 35b119a..0000000 --- a/vendor/github.com/juju/errors/doc.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -/* -[godoc-link-here] - -The juju/errors provides an easy way to annotate errors without losing the -orginal error context. - -The exported `New` and `Errorf` functions are designed to replace the -`errors.New` and `fmt.Errorf` functions respectively. The same underlying -error is there, but the package also records the location at which the error -was created. - -A primary use case for this library is to add extra context any time an -error is returned from a function. - - if err := SomeFunc(); err != nil { - return err - } - -This instead becomes: - - if err := SomeFunc(); err != nil { - return errors.Trace(err) - } - -which just records the file and line number of the Trace call, or - - if err := SomeFunc(); err != nil { - return errors.Annotate(err, "more context") - } - -which also adds an annotation to the error. - -When you want to check to see if an error is of a particular type, a helper -function is normally exported by the package that returned the error, like the -`os` package does. The underlying cause of the error is available using the -`Cause` function. - - os.IsNotExist(errors.Cause(err)) - -The result of the `Error()` call on an annotated error is the annotations joined -with colons, then the result of the `Error()` method for the underlying error -that was the cause. - - err := errors.Errorf("original") - err = errors.Annotatef(err, "context") - err = errors.Annotatef(err, "more context") - err.Error() -> "more context: context: original" - -Obviously recording the file, line and functions is not very useful if you -cannot get them back out again. - - errors.ErrorStack(err) - -will return something like: - - first error - github.com/juju/errors/annotation_test.go:193: - github.com/juju/errors/annotation_test.go:194: annotation - github.com/juju/errors/annotation_test.go:195: - github.com/juju/errors/annotation_test.go:196: more context - github.com/juju/errors/annotation_test.go:197: - -The first error was generated by an external system, so there was no location -associated. The second, fourth, and last lines were generated with Trace calls, -and the other two through Annotate. - -Sometimes when responding to an error you want to return a more specific error -for the situation. - - if err := FindField(field); err != nil { - return errors.Wrap(err, errors.NotFoundf(field)) - } - -This returns an error where the complete error stack is still available, and -`errors.Cause()` will return the `NotFound` error. - -*/ -package errors diff --git a/vendor/github.com/juju/errors/error.go b/vendor/github.com/juju/errors/error.go deleted file mode 100644 index 4799acb..0000000 --- a/vendor/github.com/juju/errors/error.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "fmt" - "reflect" - "runtime" -) - -// Err holds a description of an error along with information about -// where the error was created. -// -// It may be embedded in custom error types to add extra information that -// this errors package can understand. -type Err struct { - // message holds an annotation of the error. - message string - - // cause holds the cause of the error as returned - // by the Cause method. - cause error - - // previous holds the previous error in the error stack, if any. - previous error - - // file and line hold the source code location where the error was - // created. - file string - line int -} - -// NewErr is used to return an Err for the purpose of embedding in other -// structures. The location is not specified, and needs to be set with a call -// to SetLocation. -// -// For example: -// type FooError struct { -// errors.Err -// code int -// } -// -// func NewFooError(code int) error { -// err := &FooError{errors.NewErr("foo"), code} -// err.SetLocation(1) -// return err -// } -func NewErr(format string, args ...interface{}) Err { - return Err{ - message: fmt.Sprintf(format, args...), - } -} - -// Location is the file and line of where the error was most recently -// created or annotated. -func (e *Err) Location() (filename string, line int) { - return e.file, e.line -} - -// Underlying returns the previous error in the error stack, if any. A client -// should not ever really call this method. It is used to build the error -// stack and should not be introspected by client calls. Or more -// specifically, clients should not depend on anything but the `Cause` of an -// error. -func (e *Err) Underlying() error { - return e.previous -} - -// The Cause of an error is the most recent error in the error stack that -// meets one of these criteria: the original error that was raised; the new -// error that was passed into the Wrap function; the most recently masked -// error; or nil if the error itself is considered the Cause. Normally this -// method is not invoked directly, but instead through the Cause stand alone -// function. -func (e *Err) Cause() error { - return e.cause -} - -// Message returns the message stored with the most recent location. This is -// the empty string if the most recent call was Trace, or the message stored -// with Annotate or Mask. -func (e *Err) Message() string { - return e.message -} - -// Error implements error.Error. -func (e *Err) Error() string { - // We want to walk up the stack of errors showing the annotations - // as long as the cause is the same. - err := e.previous - if !sameError(Cause(err), e.cause) && e.cause != nil { - err = e.cause - } - switch { - case err == nil: - return e.message - case e.message == "": - return err.Error() - } - return fmt.Sprintf("%s: %v", e.message, err) -} - -// SetLocation records the source location of the error at callDepth stack -// frames above the call. -func (e *Err) SetLocation(callDepth int) { - _, file, line, _ := runtime.Caller(callDepth + 1) - e.file = trimGoPath(file) - e.line = line -} - -// StackTrace returns one string for each location recorded in the stack of -// errors. The first value is the originating error, with a line for each -// other annotation or tracing of the error. -func (e *Err) StackTrace() []string { - return errorStack(e) -} - -// Ideally we'd have a way to check identity, but deep equals will do. -func sameError(e1, e2 error) bool { - return reflect.DeepEqual(e1, e2) -} diff --git a/vendor/github.com/juju/errors/error_test.go b/vendor/github.com/juju/errors/error_test.go deleted file mode 100644 index ac1d2b4..0000000 --- a/vendor/github.com/juju/errors/error_test.go +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors_test - -import ( - "fmt" - "runtime" - - jc "github.com/juju/testing/checkers" - gc "gopkg.in/check.v1" - - "github.com/juju/errors" -) - -type errorsSuite struct{} - -var _ = gc.Suite(&errorsSuite{}) - -var someErr = errors.New("some error") //err varSomeErr - -func (*errorsSuite) TestErrorString(c *gc.C) { - for i, test := range []struct { - message string - generator func() error - expected string - }{ - { - message: "uncomparable errors", - generator: func() error { - err := errors.Annotatef(newNonComparableError("uncomparable"), "annotation") - return errors.Annotatef(err, "another") - }, - expected: "another: annotation: uncomparable", - }, { - message: "Errorf", - generator: func() error { - return errors.Errorf("first error") - }, - expected: "first error", - }, { - message: "annotated error", - generator: func() error { - err := errors.Errorf("first error") - return errors.Annotatef(err, "annotation") - }, - expected: "annotation: first error", - }, { - message: "test annotation format", - generator: func() error { - err := errors.Errorf("first %s", "error") - return errors.Annotatef(err, "%s", "annotation") - }, - expected: "annotation: first error", - }, { - message: "wrapped error", - generator: func() error { - err := newError("first error") - return errors.Wrap(err, newError("detailed error")) - }, - expected: "detailed error", - }, { - message: "wrapped annotated error", - generator: func() error { - err := errors.Errorf("first error") - err = errors.Annotatef(err, "annotated") - return errors.Wrap(err, fmt.Errorf("detailed error")) - }, - expected: "detailed error", - }, { - message: "annotated wrapped error", - generator: func() error { - err := errors.Errorf("first error") - err = errors.Wrap(err, fmt.Errorf("detailed error")) - return errors.Annotatef(err, "annotated") - }, - expected: "annotated: detailed error", - }, { - message: "traced, and annotated", - generator: func() error { - err := errors.New("first error") - err = errors.Trace(err) - err = errors.Annotate(err, "some context") - err = errors.Trace(err) - err = errors.Annotate(err, "more context") - return errors.Trace(err) - }, - expected: "more context: some context: first error", - }, { - message: "traced, and annotated, masked and annotated", - generator: func() error { - err := errors.New("first error") - err = errors.Trace(err) - err = errors.Annotate(err, "some context") - err = errors.Maskf(err, "masked") - err = errors.Annotate(err, "more context") - return errors.Trace(err) - }, - expected: "more context: masked: some context: first error", - }, - } { - c.Logf("%v: %s", i, test.message) - err := test.generator() - ok := c.Check(err.Error(), gc.Equals, test.expected) - if !ok { - c.Logf("%#v", test.generator()) - } - } -} - -type embed struct { - errors.Err -} - -func newEmbed(format string, args ...interface{}) *embed { - err := &embed{errors.NewErr(format, args...)} - err.SetLocation(1) - return err -} - -func (*errorsSuite) TestNewErr(c *gc.C) { - if runtime.Compiler == "gccgo" { - c.Skip("gccgo can't determine the location") - } - err := newEmbed("testing %d", 42) //err embedErr - c.Assert(err.Error(), gc.Equals, "testing 42") - c.Assert(errors.Cause(err), gc.Equals, err) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["embedErr"].String()) -} - -var _ error = (*embed)(nil) - -// This is an uncomparable error type, as it is a struct that supports the -// error interface (as opposed to a pointer type). -type error_ struct { - info string - slice []string -} - -// Create a non-comparable error -func newNonComparableError(message string) error { - return error_{info: message} -} - -func (e error_) Error() string { - return e.info -} - -func newError(message string) error { - return testError{message} -} - -// The testError is a value type error for ease of seeing results -// when the test fails. -type testError struct { - message string -} - -func (e testError) Error() string { - return e.message -} diff --git a/vendor/github.com/juju/errors/errortypes.go b/vendor/github.com/juju/errors/errortypes.go deleted file mode 100644 index 10b3b19..0000000 --- a/vendor/github.com/juju/errors/errortypes.go +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "fmt" -) - -// wrap is a helper to construct an *wrapper. -func wrap(err error, format, suffix string, args ...interface{}) Err { - newErr := Err{ - message: fmt.Sprintf(format+suffix, args...), - previous: err, - } - newErr.SetLocation(2) - return newErr -} - -// notFound represents an error when something has not been found. -type notFound struct { - Err -} - -// NotFoundf returns an error which satisfies IsNotFound(). -func NotFoundf(format string, args ...interface{}) error { - return ¬Found{wrap(nil, format, " not found", args...)} -} - -// NewNotFound returns an error which wraps err that satisfies -// IsNotFound(). -func NewNotFound(err error, msg string) error { - return ¬Found{wrap(err, msg, "")} -} - -// IsNotFound reports whether err was created with NotFoundf() or -// NewNotFound(). -func IsNotFound(err error) bool { - err = Cause(err) - _, ok := err.(*notFound) - return ok -} - -// userNotFound represents an error when an inexistent user is looked up. -type userNotFound struct { - Err -} - -// UserNotFoundf returns an error which satisfies IsUserNotFound(). -func UserNotFoundf(format string, args ...interface{}) error { - return &userNotFound{wrap(nil, format, " user not found", args...)} -} - -// NewUserNotFound returns an error which wraps err and satisfies -// IsUserNotFound(). -func NewUserNotFound(err error, msg string) error { - return &userNotFound{wrap(err, msg, "")} -} - -// IsUserNotFound reports whether err was created with UserNotFoundf() or -// NewUserNotFound(). -func IsUserNotFound(err error) bool { - err = Cause(err) - _, ok := err.(*userNotFound) - return ok -} - -// unauthorized represents an error when an operation is unauthorized. -type unauthorized struct { - Err -} - -// Unauthorizedf returns an error which satisfies IsUnauthorized(). -func Unauthorizedf(format string, args ...interface{}) error { - return &unauthorized{wrap(nil, format, "", args...)} -} - -// NewUnauthorized returns an error which wraps err and satisfies -// IsUnauthorized(). -func NewUnauthorized(err error, msg string) error { - return &unauthorized{wrap(err, msg, "")} -} - -// IsUnauthorized reports whether err was created with Unauthorizedf() or -// NewUnauthorized(). -func IsUnauthorized(err error) bool { - err = Cause(err) - _, ok := err.(*unauthorized) - return ok -} - -// notImplemented represents an error when something is not -// implemented. -type notImplemented struct { - Err -} - -// NotImplementedf returns an error which satisfies IsNotImplemented(). -func NotImplementedf(format string, args ...interface{}) error { - return ¬Implemented{wrap(nil, format, " not implemented", args...)} -} - -// NewNotImplemented returns an error which wraps err and satisfies -// IsNotImplemented(). -func NewNotImplemented(err error, msg string) error { - return ¬Implemented{wrap(err, msg, "")} -} - -// IsNotImplemented reports whether err was created with -// NotImplementedf() or NewNotImplemented(). -func IsNotImplemented(err error) bool { - err = Cause(err) - _, ok := err.(*notImplemented) - return ok -} - -// alreadyExists represents and error when something already exists. -type alreadyExists struct { - Err -} - -// AlreadyExistsf returns an error which satisfies IsAlreadyExists(). -func AlreadyExistsf(format string, args ...interface{}) error { - return &alreadyExists{wrap(nil, format, " already exists", args...)} -} - -// NewAlreadyExists returns an error which wraps err and satisfies -// IsAlreadyExists(). -func NewAlreadyExists(err error, msg string) error { - return &alreadyExists{wrap(err, msg, "")} -} - -// IsAlreadyExists reports whether the error was created with -// AlreadyExistsf() or NewAlreadyExists(). -func IsAlreadyExists(err error) bool { - err = Cause(err) - _, ok := err.(*alreadyExists) - return ok -} - -// notSupported represents an error when something is not supported. -type notSupported struct { - Err -} - -// NotSupportedf returns an error which satisfies IsNotSupported(). -func NotSupportedf(format string, args ...interface{}) error { - return ¬Supported{wrap(nil, format, " not supported", args...)} -} - -// NewNotSupported returns an error which wraps err and satisfies -// IsNotSupported(). -func NewNotSupported(err error, msg string) error { - return ¬Supported{wrap(err, msg, "")} -} - -// IsNotSupported reports whether the error was created with -// NotSupportedf() or NewNotSupported(). -func IsNotSupported(err error) bool { - err = Cause(err) - _, ok := err.(*notSupported) - return ok -} - -// notValid represents an error when something is not valid. -type notValid struct { - Err -} - -// NotValidf returns an error which satisfies IsNotValid(). -func NotValidf(format string, args ...interface{}) error { - return ¬Valid{wrap(nil, format, " not valid", args...)} -} - -// NewNotValid returns an error which wraps err and satisfies IsNotValid(). -func NewNotValid(err error, msg string) error { - return ¬Valid{wrap(err, msg, "")} -} - -// IsNotValid reports whether the error was created with NotValidf() or -// NewNotValid(). -func IsNotValid(err error) bool { - err = Cause(err) - _, ok := err.(*notValid) - return ok -} - -// notProvisioned represents an error when something is not yet provisioned. -type notProvisioned struct { - Err -} - -// NotProvisionedf returns an error which satisfies IsNotProvisioned(). -func NotProvisionedf(format string, args ...interface{}) error { - return ¬Provisioned{wrap(nil, format, " not provisioned", args...)} -} - -// NewNotProvisioned returns an error which wraps err that satisfies -// IsNotProvisioned(). -func NewNotProvisioned(err error, msg string) error { - return ¬Provisioned{wrap(err, msg, "")} -} - -// IsNotProvisioned reports whether err was created with NotProvisionedf() or -// NewNotProvisioned(). -func IsNotProvisioned(err error) bool { - err = Cause(err) - _, ok := err.(*notProvisioned) - return ok -} - -// notAssigned represents an error when something is not yet assigned to -// something else. -type notAssigned struct { - Err -} - -// NotAssignedf returns an error which satisfies IsNotAssigned(). -func NotAssignedf(format string, args ...interface{}) error { - return ¬Assigned{wrap(nil, format, " not assigned", args...)} -} - -// NewNotAssigned returns an error which wraps err that satisfies -// IsNotAssigned(). -func NewNotAssigned(err error, msg string) error { - return ¬Assigned{wrap(err, msg, "")} -} - -// IsNotAssigned reports whether err was created with NotAssignedf() or -// NewNotAssigned(). -func IsNotAssigned(err error) bool { - err = Cause(err) - _, ok := err.(*notAssigned) - return ok -} - -// badRequest represents an error when a request has bad parameters. -type badRequest struct { - Err -} - -// BadRequestf returns an error which satisfies IsBadRequest(). -func BadRequestf(format string, args ...interface{}) error { - return &badRequest{wrap(nil, format, "", args...)} -} - -// NewBadRequest returns an error which wraps err that satisfies -// IsBadRequest(). -func NewBadRequest(err error, msg string) error { - return &badRequest{wrap(err, msg, "")} -} - -// IsBadRequest reports whether err was created with BadRequestf() or -// NewBadRequest(). -func IsBadRequest(err error) bool { - err = Cause(err) - _, ok := err.(*badRequest) - return ok -} - -// methodNotAllowed represents an error when an HTTP request -// is made with an inappropriate method. -type methodNotAllowed struct { - Err -} - -// MethodNotAllowedf returns an error which satisfies IsMethodNotAllowed(). -func MethodNotAllowedf(format string, args ...interface{}) error { - return &methodNotAllowed{wrap(nil, format, "", args...)} -} - -// NewMethodNotAllowed returns an error which wraps err that satisfies -// IsMethodNotAllowed(). -func NewMethodNotAllowed(err error, msg string) error { - return &methodNotAllowed{wrap(err, msg, "")} -} - -// IsMethodNotAllowed reports whether err was created with MethodNotAllowedf() or -// NewMethodNotAllowed(). -func IsMethodNotAllowed(err error) bool { - err = Cause(err) - _, ok := err.(*methodNotAllowed) - return ok -} diff --git a/vendor/github.com/juju/errors/errortypes_test.go b/vendor/github.com/juju/errors/errortypes_test.go deleted file mode 100644 index 7cc2da9..0000000 --- a/vendor/github.com/juju/errors/errortypes_test.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors_test - -import ( - stderrors "errors" - "fmt" - "reflect" - "runtime" - - "github.com/juju/errors" - jc "github.com/juju/testing/checkers" - gc "gopkg.in/check.v1" -) - -// errorInfo holds information about a single error type: a satisfier -// function, wrapping and variable arguments constructors and message -// suffix. -type errorInfo struct { - satisfier func(error) bool - argsConstructor func(string, ...interface{}) error - wrapConstructor func(error, string) error - suffix string -} - -// allErrors holds information for all defined errors. When adding new -// errors, add them here as well to include them in tests. -var allErrors = []*errorInfo{ - &errorInfo{errors.IsNotFound, errors.NotFoundf, errors.NewNotFound, " not found"}, - &errorInfo{errors.IsUserNotFound, errors.UserNotFoundf, errors.NewUserNotFound, " user not found"}, - &errorInfo{errors.IsUnauthorized, errors.Unauthorizedf, errors.NewUnauthorized, ""}, - &errorInfo{errors.IsNotImplemented, errors.NotImplementedf, errors.NewNotImplemented, " not implemented"}, - &errorInfo{errors.IsAlreadyExists, errors.AlreadyExistsf, errors.NewAlreadyExists, " already exists"}, - &errorInfo{errors.IsNotSupported, errors.NotSupportedf, errors.NewNotSupported, " not supported"}, - &errorInfo{errors.IsNotValid, errors.NotValidf, errors.NewNotValid, " not valid"}, - &errorInfo{errors.IsNotProvisioned, errors.NotProvisionedf, errors.NewNotProvisioned, " not provisioned"}, - &errorInfo{errors.IsNotAssigned, errors.NotAssignedf, errors.NewNotAssigned, " not assigned"}, - &errorInfo{errors.IsMethodNotAllowed, errors.MethodNotAllowedf, errors.NewMethodNotAllowed, ""}, - &errorInfo{errors.IsBadRequest, errors.BadRequestf, errors.NewBadRequest, ""}, -} - -type errorTypeSuite struct{} - -var _ = gc.Suite(&errorTypeSuite{}) - -func (t *errorInfo) satisfierName() string { - value := reflect.ValueOf(t.satisfier) - f := runtime.FuncForPC(value.Pointer()) - return f.Name() -} - -func (t *errorInfo) equal(t0 *errorInfo) bool { - if t0 == nil { - return false - } - return t.satisfierName() == t0.satisfierName() -} - -type errorTest struct { - err error - message string - errInfo *errorInfo -} - -func deferredAnnotatef(err error, format string, args ...interface{}) error { - errors.DeferredAnnotatef(&err, format, args...) - return err -} - -func mustSatisfy(c *gc.C, err error, errInfo *errorInfo) { - if errInfo != nil { - msg := fmt.Sprintf("%#v must satisfy %v", err, errInfo.satisfierName()) - c.Check(err, jc.Satisfies, errInfo.satisfier, gc.Commentf(msg)) - } -} - -func mustNotSatisfy(c *gc.C, err error, errInfo *errorInfo) { - if errInfo != nil { - msg := fmt.Sprintf("%#v must not satisfy %v", err, errInfo.satisfierName()) - c.Check(err, gc.Not(jc.Satisfies), errInfo.satisfier, gc.Commentf(msg)) - } -} - -func checkErrorMatches(c *gc.C, err error, message string, errInfo *errorInfo) { - if message == "" { - c.Check(err, gc.IsNil) - c.Check(errInfo, gc.IsNil) - } else { - c.Check(err, gc.ErrorMatches, message) - } -} - -func runErrorTests(c *gc.C, errorTests []errorTest, checkMustSatisfy bool) { - for i, t := range errorTests { - c.Logf("test %d: %T: %v", i, t.err, t.err) - checkErrorMatches(c, t.err, t.message, t.errInfo) - if checkMustSatisfy { - mustSatisfy(c, t.err, t.errInfo) - } - - // Check all other satisfiers to make sure none match. - for _, otherErrInfo := range allErrors { - if checkMustSatisfy && otherErrInfo.equal(t.errInfo) { - continue - } - mustNotSatisfy(c, t.err, otherErrInfo) - } - } -} - -func (*errorTypeSuite) TestDeferredAnnotatef(c *gc.C) { - // Ensure DeferredAnnotatef annotates the errors. - errorTests := []errorTest{} - for _, errInfo := range allErrors { - errorTests = append(errorTests, []errorTest{{ - deferredAnnotatef(nil, "comment"), - "", - nil, - }, { - deferredAnnotatef(stderrors.New("blast"), "comment"), - "comment: blast", - nil, - }, { - deferredAnnotatef(errInfo.argsConstructor("foo %d", 42), "comment %d", 69), - "comment 69: foo 42" + errInfo.suffix, - errInfo, - }, { - deferredAnnotatef(errInfo.argsConstructor(""), "comment"), - "comment: " + errInfo.suffix, - errInfo, - }, { - deferredAnnotatef(errInfo.wrapConstructor(stderrors.New("pow!"), "woo"), "comment"), - "comment: woo: pow!", - errInfo, - }}...) - } - - runErrorTests(c, errorTests, true) -} - -func (*errorTypeSuite) TestAllErrors(c *gc.C) { - errorTests := []errorTest{} - for _, errInfo := range allErrors { - errorTests = append(errorTests, []errorTest{{ - nil, - "", - nil, - }, { - errInfo.argsConstructor("foo %d", 42), - "foo 42" + errInfo.suffix, - errInfo, - }, { - errInfo.argsConstructor(""), - errInfo.suffix, - errInfo, - }, { - errInfo.wrapConstructor(stderrors.New("pow!"), "prefix"), - "prefix: pow!", - errInfo, - }, { - errInfo.wrapConstructor(stderrors.New("pow!"), ""), - "pow!", - errInfo, - }, { - errInfo.wrapConstructor(nil, "prefix"), - "prefix", - errInfo, - }}...) - } - - runErrorTests(c, errorTests, true) -} diff --git a/vendor/github.com/juju/errors/example_test.go b/vendor/github.com/juju/errors/example_test.go deleted file mode 100644 index 2a79cf4..0000000 --- a/vendor/github.com/juju/errors/example_test.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors_test - -import ( - "fmt" - - "github.com/juju/errors" -) - -func ExampleTrace() { - var err1 error = fmt.Errorf("something wicked this way comes") - var err2 error = nil - - // Tracing a non nil error will return an error - fmt.Println(errors.Trace(err1)) - // Tracing nil will return nil - fmt.Println(errors.Trace(err2)) - - // Output: something wicked this way comes - // -} diff --git a/vendor/github.com/juju/errors/export_test.go b/vendor/github.com/juju/errors/export_test.go deleted file mode 100644 index db57ec8..0000000 --- a/vendor/github.com/juju/errors/export_test.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -// Since variables are declared before the init block, in order to get the goPath -// we need to return it rather than just reference it. -func GoPath() string { - return goPath -} - -var TrimGoPath = trimGoPath diff --git a/vendor/github.com/juju/errors/functions.go b/vendor/github.com/juju/errors/functions.go deleted file mode 100644 index 994208d..0000000 --- a/vendor/github.com/juju/errors/functions.go +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "fmt" - "strings" -) - -// New is a drop in replacement for the standard libary errors module that records -// the location that the error is created. -// -// For example: -// return errors.New("validation failed") -// -func New(message string) error { - err := &Err{message: message} - err.SetLocation(1) - return err -} - -// Errorf creates a new annotated error and records the location that the -// error is created. This should be a drop in replacement for fmt.Errorf. -// -// For example: -// return errors.Errorf("validation failed: %s", message) -// -func Errorf(format string, args ...interface{}) error { - err := &Err{message: fmt.Sprintf(format, args...)} - err.SetLocation(1) - return err -} - -// Trace adds the location of the Trace call to the stack. The Cause of the -// resulting error is the same as the error parameter. If the other error is -// nil, the result will be nil. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Trace(err) -// } -// -func Trace(other error) error { - if other == nil { - return nil - } - err := &Err{previous: other, cause: Cause(other)} - err.SetLocation(1) - return err -} - -// Annotate is used to add extra context to an existing error. The location of -// the Annotate call is recorded with the annotations. The file, line and -// function are also recorded. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Annotate(err, "failed to frombulate") -// } -// -func Annotate(other error, message string) error { - if other == nil { - return nil - } - err := &Err{ - previous: other, - cause: Cause(other), - message: message, - } - err.SetLocation(1) - return err -} - -// Annotatef is used to add extra context to an existing error. The location of -// the Annotate call is recorded with the annotations. The file, line and -// function are also recorded. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Annotatef(err, "failed to frombulate the %s", arg) -// } -// -func Annotatef(other error, format string, args ...interface{}) error { - if other == nil { - return nil - } - err := &Err{ - previous: other, - cause: Cause(other), - message: fmt.Sprintf(format, args...), - } - err.SetLocation(1) - return err -} - -// DeferredAnnotatef annotates the given error (when it is not nil) with the given -// format string and arguments (like fmt.Sprintf). If *err is nil, DeferredAnnotatef -// does nothing. This method is used in a defer statement in order to annotate any -// resulting error with the same message. -// -// For example: -// -// defer DeferredAnnotatef(&err, "failed to frombulate the %s", arg) -// -func DeferredAnnotatef(err *error, format string, args ...interface{}) { - if *err == nil { - return - } - newErr := &Err{ - message: fmt.Sprintf(format, args...), - cause: Cause(*err), - previous: *err, - } - newErr.SetLocation(1) - *err = newErr -} - -// Wrap changes the Cause of the error. The location of the Wrap call is also -// stored in the error stack. -// -// For example: -// if err := SomeFunc(); err != nil { -// newErr := &packageError{"more context", private_value} -// return errors.Wrap(err, newErr) -// } -// -func Wrap(other, newDescriptive error) error { - err := &Err{ - previous: other, - cause: newDescriptive, - } - err.SetLocation(1) - return err -} - -// Wrapf changes the Cause of the error, and adds an annotation. The location -// of the Wrap call is also stored in the error stack. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Wrapf(err, simpleErrorType, "invalid value %q", value) -// } -// -func Wrapf(other, newDescriptive error, format string, args ...interface{}) error { - err := &Err{ - message: fmt.Sprintf(format, args...), - previous: other, - cause: newDescriptive, - } - err.SetLocation(1) - return err -} - -// Mask masks the given error with the given format string and arguments (like -// fmt.Sprintf), returning a new error that maintains the error stack, but -// hides the underlying error type. The error string still contains the full -// annotations. If you want to hide the annotations, call Wrap. -func Maskf(other error, format string, args ...interface{}) error { - if other == nil { - return nil - } - err := &Err{ - message: fmt.Sprintf(format, args...), - previous: other, - } - err.SetLocation(1) - return err -} - -// Mask hides the underlying error type, and records the location of the masking. -func Mask(other error) error { - if other == nil { - return nil - } - err := &Err{ - previous: other, - } - err.SetLocation(1) - return err -} - -// Cause returns the cause of the given error. This will be either the -// original error, or the result of a Wrap or Mask call. -// -// Cause is the usual way to diagnose errors that may have been wrapped by -// the other errors functions. -func Cause(err error) error { - var diag error - if err, ok := err.(causer); ok { - diag = err.Cause() - } - if diag != nil { - return diag - } - return err -} - -type causer interface { - Cause() error -} - -type wrapper interface { - // Message returns the top level error message, - // not including the message from the Previous - // error. - Message() string - - // Underlying returns the Previous error, or nil - // if there is none. - Underlying() error -} - -type locationer interface { - Location() (string, int) -} - -var ( - _ wrapper = (*Err)(nil) - _ locationer = (*Err)(nil) - _ causer = (*Err)(nil) -) - -// Details returns information about the stack of errors wrapped by err, in -// the format: -// -// [{filename:99: error one} {otherfile:55: cause of error one}] -// -// This is a terse alternative to ErrorStack as it returns a single line. -func Details(err error) string { - if err == nil { - return "[]" - } - var s []byte - s = append(s, '[') - for { - s = append(s, '{') - if err, ok := err.(locationer); ok { - file, line := err.Location() - if file != "" { - s = append(s, fmt.Sprintf("%s:%d", file, line)...) - s = append(s, ": "...) - } - } - if cerr, ok := err.(wrapper); ok { - s = append(s, cerr.Message()...) - err = cerr.Underlying() - } else { - s = append(s, err.Error()...) - err = nil - } - s = append(s, '}') - if err == nil { - break - } - s = append(s, ' ') - } - s = append(s, ']') - return string(s) -} - -// ErrorStack returns a string representation of the annotated error. If the -// error passed as the parameter is not an annotated error, the result is -// simply the result of the Error() method on that error. -// -// If the error is an annotated error, a multi-line string is returned where -// each line represents one entry in the annotation stack. The full filename -// from the call stack is used in the output. -// -// first error -// github.com/juju/errors/annotation_test.go:193: -// github.com/juju/errors/annotation_test.go:194: annotation -// github.com/juju/errors/annotation_test.go:195: -// github.com/juju/errors/annotation_test.go:196: more context -// github.com/juju/errors/annotation_test.go:197: -func ErrorStack(err error) string { - return strings.Join(errorStack(err), "\n") -} - -func errorStack(err error) []string { - if err == nil { - return nil - } - - // We want the first error first - var lines []string - for { - var buff []byte - if err, ok := err.(locationer); ok { - file, line := err.Location() - // Strip off the leading GOPATH/src path elements. - file = trimGoPath(file) - if file != "" { - buff = append(buff, fmt.Sprintf("%s:%d", file, line)...) - buff = append(buff, ": "...) - } - } - if cerr, ok := err.(wrapper); ok { - message := cerr.Message() - buff = append(buff, message...) - // If there is a cause for this error, and it is different to the cause - // of the underlying error, then output the error string in the stack trace. - var cause error - if err1, ok := err.(causer); ok { - cause = err1.Cause() - } - err = cerr.Underlying() - if cause != nil && !sameError(Cause(err), cause) { - if message != "" { - buff = append(buff, ": "...) - } - buff = append(buff, cause.Error()...) - } - } else { - buff = append(buff, err.Error()...) - err = nil - } - lines = append(lines, string(buff)) - if err == nil { - break - } - } - // reverse the lines to get the original error, which was at the end of - // the list, back to the start. - var result []string - for i := len(lines); i > 0; i-- { - result = append(result, lines[i-1]) - } - return result -} diff --git a/vendor/github.com/juju/errors/functions_test.go b/vendor/github.com/juju/errors/functions_test.go deleted file mode 100644 index 7b1e43b..0000000 --- a/vendor/github.com/juju/errors/functions_test.go +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors_test - -import ( - "fmt" - "os" - "path/filepath" - "runtime" - "strings" - - jc "github.com/juju/testing/checkers" - gc "gopkg.in/check.v1" - - "github.com/juju/errors" -) - -type functionSuite struct { -} - -var _ = gc.Suite(&functionSuite{}) - -func (*functionSuite) TestNew(c *gc.C) { - err := errors.New("testing") //err newTest - c.Assert(err.Error(), gc.Equals, "testing") - c.Assert(errors.Cause(err), gc.Equals, err) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["newTest"].String()) -} - -func (*functionSuite) TestErrorf(c *gc.C) { - err := errors.Errorf("testing %d", 42) //err errorfTest - c.Assert(err.Error(), gc.Equals, "testing 42") - c.Assert(errors.Cause(err), gc.Equals, err) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["errorfTest"].String()) -} - -func (*functionSuite) TestTrace(c *gc.C) { - first := errors.New("first") - err := errors.Trace(first) //err traceTest - c.Assert(err.Error(), gc.Equals, "first") - c.Assert(errors.Cause(err), gc.Equals, first) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["traceTest"].String()) - - c.Assert(errors.Trace(nil), gc.IsNil) -} - -func (*functionSuite) TestAnnotate(c *gc.C) { - first := errors.New("first") - err := errors.Annotate(first, "annotation") //err annotateTest - c.Assert(err.Error(), gc.Equals, "annotation: first") - c.Assert(errors.Cause(err), gc.Equals, first) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["annotateTest"].String()) - - c.Assert(errors.Annotate(nil, "annotate"), gc.IsNil) -} - -func (*functionSuite) TestAnnotatef(c *gc.C) { - first := errors.New("first") - err := errors.Annotatef(first, "annotation %d", 2) //err annotatefTest - c.Assert(err.Error(), gc.Equals, "annotation 2: first") - c.Assert(errors.Cause(err), gc.Equals, first) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["annotatefTest"].String()) - - c.Assert(errors.Annotatef(nil, "annotate"), gc.IsNil) -} - -func (*functionSuite) TestDeferredAnnotatef(c *gc.C) { - // NOTE: this test fails with gccgo - if runtime.Compiler == "gccgo" { - c.Skip("gccgo can't determine the location") - } - first := errors.New("first") - test := func() (err error) { - defer errors.DeferredAnnotatef(&err, "deferred %s", "annotate") - return first - } //err deferredAnnotate - err := test() - c.Assert(err.Error(), gc.Equals, "deferred annotate: first") - c.Assert(errors.Cause(err), gc.Equals, first) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["deferredAnnotate"].String()) - - err = nil - errors.DeferredAnnotatef(&err, "deferred %s", "annotate") - c.Assert(err, gc.IsNil) -} - -func (*functionSuite) TestWrap(c *gc.C) { - first := errors.New("first") //err wrapFirst - detailed := errors.New("detailed") - err := errors.Wrap(first, detailed) //err wrapTest - c.Assert(err.Error(), gc.Equals, "detailed") - c.Assert(errors.Cause(err), gc.Equals, detailed) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["wrapFirst"].String()) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["wrapTest"].String()) -} - -func (*functionSuite) TestWrapOfNil(c *gc.C) { - detailed := errors.New("detailed") - err := errors.Wrap(nil, detailed) //err nilWrapTest - c.Assert(err.Error(), gc.Equals, "detailed") - c.Assert(errors.Cause(err), gc.Equals, detailed) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["nilWrapTest"].String()) -} - -func (*functionSuite) TestWrapf(c *gc.C) { - first := errors.New("first") //err wrapfFirst - detailed := errors.New("detailed") - err := errors.Wrapf(first, detailed, "value %d", 42) //err wrapfTest - c.Assert(err.Error(), gc.Equals, "value 42: detailed") - c.Assert(errors.Cause(err), gc.Equals, detailed) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["wrapfFirst"].String()) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["wrapfTest"].String()) -} - -func (*functionSuite) TestWrapfOfNil(c *gc.C) { - detailed := errors.New("detailed") - err := errors.Wrapf(nil, detailed, "value %d", 42) //err nilWrapfTest - c.Assert(err.Error(), gc.Equals, "value 42: detailed") - c.Assert(errors.Cause(err), gc.Equals, detailed) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["nilWrapfTest"].String()) -} - -func (*functionSuite) TestMask(c *gc.C) { - first := errors.New("first") - err := errors.Mask(first) //err maskTest - c.Assert(err.Error(), gc.Equals, "first") - c.Assert(errors.Cause(err), gc.Equals, err) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["maskTest"].String()) - - c.Assert(errors.Mask(nil), gc.IsNil) -} - -func (*functionSuite) TestMaskf(c *gc.C) { - first := errors.New("first") - err := errors.Maskf(first, "masked %d", 42) //err maskfTest - c.Assert(err.Error(), gc.Equals, "masked 42: first") - c.Assert(errors.Cause(err), gc.Equals, err) - c.Assert(errors.Details(err), jc.Contains, tagToLocation["maskfTest"].String()) - - c.Assert(errors.Maskf(nil, "mask"), gc.IsNil) -} - -func (*functionSuite) TestCause(c *gc.C) { - c.Assert(errors.Cause(nil), gc.IsNil) - c.Assert(errors.Cause(someErr), gc.Equals, someErr) - - fmtErr := fmt.Errorf("simple") - c.Assert(errors.Cause(fmtErr), gc.Equals, fmtErr) - - err := errors.Wrap(someErr, fmtErr) - c.Assert(errors.Cause(err), gc.Equals, fmtErr) - - err = errors.Annotate(err, "annotated") - c.Assert(errors.Cause(err), gc.Equals, fmtErr) - - err = errors.Maskf(err, "maksed") - c.Assert(errors.Cause(err), gc.Equals, err) - - // Look for a file that we know isn't there. - dir := c.MkDir() - _, err = os.Stat(filepath.Join(dir, "not-there")) - c.Assert(os.IsNotExist(err), jc.IsTrue) - - err = errors.Annotatef(err, "wrap it") - // Now the error itself isn't a 'IsNotExist'. - c.Assert(os.IsNotExist(err), jc.IsFalse) - // However if we use the Check method, it is. - c.Assert(os.IsNotExist(errors.Cause(err)), jc.IsTrue) -} - -func (s *functionSuite) TestDetails(c *gc.C) { - if runtime.Compiler == "gccgo" { - c.Skip("gccgo can't determine the location") - } - c.Assert(errors.Details(nil), gc.Equals, "[]") - - otherErr := fmt.Errorf("other") - checkDetails(c, otherErr, "[{other}]") - - err0 := newEmbed("foo") //err TestStack#0 - checkDetails(c, err0, "[{$TestStack#0$: foo}]") - - err1 := errors.Annotate(err0, "bar") //err TestStack#1 - checkDetails(c, err1, "[{$TestStack#1$: bar} {$TestStack#0$: foo}]") - - err2 := errors.Trace(err1) //err TestStack#2 - checkDetails(c, err2, "[{$TestStack#2$: } {$TestStack#1$: bar} {$TestStack#0$: foo}]") -} - -type tracer interface { - StackTrace() []string -} - -func (*functionSuite) TestErrorStack(c *gc.C) { - for i, test := range []struct { - message string - generator func() error - expected string - tracer bool - }{ - { - message: "nil", - generator: func() error { - return nil - }, - }, { - message: "raw error", - generator: func() error { - return fmt.Errorf("raw") - }, - expected: "raw", - }, { - message: "single error stack", - generator: func() error { - return errors.New("first error") //err single - }, - expected: "$single$: first error", - tracer: true, - }, { - message: "annotated error", - generator: func() error { - err := errors.New("first error") //err annotated-0 - return errors.Annotate(err, "annotation") //err annotated-1 - }, - expected: "" + - "$annotated-0$: first error\n" + - "$annotated-1$: annotation", - tracer: true, - }, { - message: "wrapped error", - generator: func() error { - err := errors.New("first error") //err wrapped-0 - return errors.Wrap(err, newError("detailed error")) //err wrapped-1 - }, - expected: "" + - "$wrapped-0$: first error\n" + - "$wrapped-1$: detailed error", - tracer: true, - }, { - message: "annotated wrapped error", - generator: func() error { - err := errors.Errorf("first error") //err ann-wrap-0 - err = errors.Wrap(err, fmt.Errorf("detailed error")) //err ann-wrap-1 - return errors.Annotatef(err, "annotated") //err ann-wrap-2 - }, - expected: "" + - "$ann-wrap-0$: first error\n" + - "$ann-wrap-1$: detailed error\n" + - "$ann-wrap-2$: annotated", - tracer: true, - }, { - message: "traced, and annotated", - generator: func() error { - err := errors.New("first error") //err stack-0 - err = errors.Trace(err) //err stack-1 - err = errors.Annotate(err, "some context") //err stack-2 - err = errors.Trace(err) //err stack-3 - err = errors.Annotate(err, "more context") //err stack-4 - return errors.Trace(err) //err stack-5 - }, - expected: "" + - "$stack-0$: first error\n" + - "$stack-1$: \n" + - "$stack-2$: some context\n" + - "$stack-3$: \n" + - "$stack-4$: more context\n" + - "$stack-5$: ", - tracer: true, - }, { - message: "uncomparable, wrapped with a value error", - generator: func() error { - err := newNonComparableError("first error") //err mixed-0 - err = errors.Trace(err) //err mixed-1 - err = errors.Wrap(err, newError("value error")) //err mixed-2 - err = errors.Maskf(err, "masked") //err mixed-3 - err = errors.Annotate(err, "more context") //err mixed-4 - return errors.Trace(err) //err mixed-5 - }, - expected: "" + - "first error\n" + - "$mixed-1$: \n" + - "$mixed-2$: value error\n" + - "$mixed-3$: masked\n" + - "$mixed-4$: more context\n" + - "$mixed-5$: ", - tracer: true, - }, - } { - c.Logf("%v: %s", i, test.message) - err := test.generator() - expected := replaceLocations(test.expected) - stack := errors.ErrorStack(err) - ok := c.Check(stack, gc.Equals, expected) - if !ok { - c.Logf("%#v", err) - } - tracer, ok := err.(tracer) - c.Check(ok, gc.Equals, test.tracer) - if ok { - stackTrace := tracer.StackTrace() - c.Check(stackTrace, gc.DeepEquals, strings.Split(stack, "\n")) - } - } -} diff --git a/vendor/github.com/juju/errors/package_test.go b/vendor/github.com/juju/errors/package_test.go deleted file mode 100644 index 5bbb8f0..0000000 --- a/vendor/github.com/juju/errors/package_test.go +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors_test - -import ( - "fmt" - "io/ioutil" - "strings" - "testing" - - gc "gopkg.in/check.v1" - - "github.com/juju/errors" -) - -func Test(t *testing.T) { - gc.TestingT(t) -} - -func checkDetails(c *gc.C, err error, details string) { - c.Assert(err, gc.NotNil) - expectedDetails := replaceLocations(details) - c.Assert(errors.Details(err), gc.Equals, expectedDetails) -} - -func checkErr(c *gc.C, err, cause error, msg string, details string) { - c.Assert(err, gc.NotNil) - c.Assert(err.Error(), gc.Equals, msg) - c.Assert(errors.Cause(err), gc.Equals, cause) - expectedDetails := replaceLocations(details) - c.Assert(errors.Details(err), gc.Equals, expectedDetails) -} - -func replaceLocations(line string) string { - result := "" - for { - i := strings.Index(line, "$") - if i == -1 { - break - } - result += line[0:i] - line = line[i+1:] - i = strings.Index(line, "$") - if i == -1 { - panic("no second $") - } - result += location(line[0:i]).String() - line = line[i+1:] - } - result += line - return result -} - -func location(tag string) Location { - loc, ok := tagToLocation[tag] - if !ok { - panic(fmt.Sprintf("tag %q not found", tag)) - } - return loc -} - -type Location struct { - file string - line int -} - -func (loc Location) String() string { - return fmt.Sprintf("%s:%d", loc.file, loc.line) -} - -var tagToLocation = make(map[string]Location) - -func setLocationsForErrorTags(filename string) { - data, err := ioutil.ReadFile(filename) - if err != nil { - panic(err) - } - filename = "github.com/juju/errors/" + filename - lines := strings.Split(string(data), "\n") - for i, line := range lines { - if j := strings.Index(line, "//err "); j >= 0 { - tag := line[j+len("//err "):] - if _, found := tagToLocation[tag]; found { - panic(fmt.Sprintf("tag %q already processed previously", tag)) - } - tagToLocation[tag] = Location{file: filename, line: i + 1} - } - } -} - -func init() { - setLocationsForErrorTags("error_test.go") - setLocationsForErrorTags("functions_test.go") -} diff --git a/vendor/github.com/juju/errors/path.go b/vendor/github.com/juju/errors/path.go deleted file mode 100644 index 3ec517c..0000000 --- a/vendor/github.com/juju/errors/path.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "runtime" - "strings" -) - -// prefixSize is used internally to trim the user specific path from the -// front of the returned filenames from the runtime call stack. -var prefixSize int - -// goPath is the deduced path based on the location of this file as compiled. -var goPath string - -func init() { - _, file, _, ok := runtime.Caller(0) - if ok { - // We know that the end of the file should be: - // github.com/juju/errors/path.go - size := len(file) - suffix := len("github.com/juju/errors/path.go") - goPath = file[:size-suffix] - prefixSize = len(goPath) - } -} - -func trimGoPath(filename string) string { - if strings.HasPrefix(filename, goPath) { - return filename[prefixSize:] - } - return filename -} diff --git a/vendor/github.com/juju/errors/path_test.go b/vendor/github.com/juju/errors/path_test.go deleted file mode 100644 index ef4f34f..0000000 --- a/vendor/github.com/juju/errors/path_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors_test - -import ( - "path" - - gc "gopkg.in/check.v1" - - "github.com/juju/errors" -) - -type pathSuite struct{} - -var _ = gc.Suite(&pathSuite{}) - -func (*pathSuite) TestGoPathSet(c *gc.C) { - c.Assert(errors.GoPath(), gc.Not(gc.Equals), "") -} - -func (*pathSuite) TestTrimGoPath(c *gc.C) { - relativeImport := "github.com/foo/bar/baz.go" - filename := path.Join(errors.GoPath(), relativeImport) - c.Assert(errors.TrimGoPath(filename), gc.Equals, relativeImport) - - absoluteImport := "/usr/share/foo/bar/baz.go" - c.Assert(errors.TrimGoPath(absoluteImport), gc.Equals, absoluteImport) -} diff --git a/vendor/github.com/ngaut/deadline/rw.go b/vendor/github.com/ngaut/deadline/rw.go deleted file mode 100644 index 19d4368..0000000 --- a/vendor/github.com/ngaut/deadline/rw.go +++ /dev/null @@ -1,50 +0,0 @@ -package deadline - -import ( - "io" - "time" -) - -type DeadlineReader interface { - io.Reader - SetReadDeadline(t time.Time) error -} - -type DeadlineWriter interface { - io.Writer - SetWriteDeadline(t time.Time) error -} - -type DeadlineReadWriter interface { - io.ReadWriter - SetReadDeadline(t time.Time) error - SetWriteDeadline(t time.Time) error -} - -type deadlineReader struct { - DeadlineReader - timeout time.Duration -} - -func (r *deadlineReader) Read(p []byte) (int, error) { - r.DeadlineReader.SetReadDeadline(time.Now().Add(r.timeout)) - return r.DeadlineReader.Read(p) -} - -func NewDeadlineReader(r DeadlineReader, timeout time.Duration) io.Reader { - return &deadlineReader{DeadlineReader: r, timeout: timeout} -} - -type deadlineWriter struct { - DeadlineWriter - timeout time.Duration -} - -func (r *deadlineWriter) Write(p []byte) (int, error) { - r.DeadlineWriter.SetWriteDeadline(time.Now().Add(r.timeout)) - return r.DeadlineWriter.Write(p) -} - -func NewDeadlineWriter(r DeadlineWriter, timeout time.Duration) io.Writer { - return &deadlineWriter{DeadlineWriter: r, timeout: timeout} -} diff --git a/vendor/github.com/ngaut/log/LICENSE b/vendor/github.com/ngaut/log/LICENSE deleted file mode 100644 index 6600f1c..0000000 --- a/vendor/github.com/ngaut/log/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ -GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser 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 -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/vendor/github.com/ngaut/log/README.md b/vendor/github.com/ngaut/log/README.md deleted file mode 100644 index e0e857e..0000000 --- a/vendor/github.com/ngaut/log/README.md +++ /dev/null @@ -1,2 +0,0 @@ -logging -======= diff --git a/vendor/github.com/ngaut/log/crash_unix.go b/vendor/github.com/ngaut/log/crash_unix.go deleted file mode 100644 index 37f407d..0000000 --- a/vendor/github.com/ngaut/log/crash_unix.go +++ /dev/null @@ -1,18 +0,0 @@ -// +build freebsd openbsd netbsd dragonfly darwin linux - -package log - -import ( - "log" - "os" - "syscall" -) - -func CrashLog(file string) { - f, err := os.OpenFile(file, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) - if err != nil { - log.Println(err.Error()) - } else { - syscall.Dup2(int(f.Fd()), 2) - } -} diff --git a/vendor/github.com/ngaut/log/crash_win.go b/vendor/github.com/ngaut/log/crash_win.go deleted file mode 100644 index 7d612ee..0000000 --- a/vendor/github.com/ngaut/log/crash_win.go +++ /dev/null @@ -1,37 +0,0 @@ -// +build windows - -package log - -import ( - "log" - "os" - "syscall" -) - -var ( - kernel32 = syscall.MustLoadDLL("kernel32.dll") - procSetStdHandle = kernel32.MustFindProc("SetStdHandle") -) - -func setStdHandle(stdhandle int32, handle syscall.Handle) error { - r0, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) - if r0 == 0 { - if e1 != 0 { - return error(e1) - } - return syscall.EINVAL - } - return nil -} - -func CrashLog(file string) { - f, err := os.OpenFile(file, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) - if err != nil { - log.Println(err.Error()) - } else { - err = setStdHandle(syscall.STD_ERROR_HANDLE, syscall.Handle(f.Fd())) - if err != nil { - log.Println(err.Error()) - } - } -} diff --git a/vendor/github.com/ngaut/log/log.go b/vendor/github.com/ngaut/log/log.go deleted file mode 100644 index 896b393..0000000 --- a/vendor/github.com/ngaut/log/log.go +++ /dev/null @@ -1,380 +0,0 @@ -//high level log wrapper, so it can output different log based on level -package log - -import ( - "fmt" - "io" - "log" - "os" - "runtime" - "sync" - "time" -) - -const ( - Ldate = log.Ldate - Llongfile = log.Llongfile - Lmicroseconds = log.Lmicroseconds - Lshortfile = log.Lshortfile - LstdFlags = log.LstdFlags - Ltime = log.Ltime -) - -type ( - LogLevel int - LogType int -) - -const ( - LOG_FATAL = LogType(0x1) - LOG_ERROR = LogType(0x2) - LOG_WARNING = LogType(0x4) - LOG_INFO = LogType(0x8) - LOG_DEBUG = LogType(0x10) -) - -const ( - LOG_LEVEL_NONE = LogLevel(0x0) - LOG_LEVEL_FATAL = LOG_LEVEL_NONE | LogLevel(LOG_FATAL) - LOG_LEVEL_ERROR = LOG_LEVEL_FATAL | LogLevel(LOG_ERROR) - LOG_LEVEL_WARN = LOG_LEVEL_ERROR | LogLevel(LOG_WARNING) - LOG_LEVEL_INFO = LOG_LEVEL_WARN | LogLevel(LOG_INFO) - LOG_LEVEL_DEBUG = LOG_LEVEL_INFO | LogLevel(LOG_DEBUG) - LOG_LEVEL_ALL = LOG_LEVEL_DEBUG -) - -const FORMAT_TIME_DAY string = "20060102" -const FORMAT_TIME_HOUR string = "2006010215" - -var _log *logger = New() - -func init() { - SetFlags(Ldate | Ltime | Lshortfile) - SetHighlighting(runtime.GOOS != "windows") -} - -func Logger() *log.Logger { - return _log._log -} - -func SetLevel(level LogLevel) { - _log.SetLevel(level) -} -func GetLogLevel() LogLevel { - return _log.level -} - -func SetOutput(out io.Writer) { - _log.SetOutput(out) -} - -func SetOutputByName(path string) error { - return _log.SetOutputByName(path) -} - -func SetFlags(flags int) { - _log._log.SetFlags(flags) -} - -func Info(v ...interface{}) { - _log.Info(v...) -} - -func Infof(format string, v ...interface{}) { - _log.Infof(format, v...) -} - -func Debug(v ...interface{}) { - _log.Debug(v...) -} - -func Debugf(format string, v ...interface{}) { - _log.Debugf(format, v...) -} - -func Warn(v ...interface{}) { - _log.Warning(v...) -} - -func Warnf(format string, v ...interface{}) { - _log.Warningf(format, v...) -} - -func Warning(v ...interface{}) { - _log.Warning(v...) -} - -func Warningf(format string, v ...interface{}) { - _log.Warningf(format, v...) -} - -func Error(v ...interface{}) { - _log.Error(v...) -} - -func Errorf(format string, v ...interface{}) { - _log.Errorf(format, v...) -} - -func Fatal(v ...interface{}) { - _log.Fatal(v...) -} - -func Fatalf(format string, v ...interface{}) { - _log.Fatalf(format, v...) -} - -func SetLevelByString(level string) { - _log.SetLevelByString(level) -} - -func SetHighlighting(highlighting bool) { - _log.SetHighlighting(highlighting) -} - -func SetRotateByDay() { - _log.SetRotateByDay() -} - -func SetRotateByHour() { - _log.SetRotateByHour() -} - -type logger struct { - _log *log.Logger - level LogLevel - highlighting bool - - dailyRolling bool - hourRolling bool - - fileName string - logSuffix string - fd *os.File - - lock sync.Mutex -} - -func (l *logger) SetHighlighting(highlighting bool) { - l.highlighting = highlighting -} - -func (l *logger) SetLevel(level LogLevel) { - l.level = level -} - -func (l *logger) SetLevelByString(level string) { - l.level = StringToLogLevel(level) -} - -func (l *logger) SetRotateByDay() { - l.dailyRolling = true - l.logSuffix = genDayTime(time.Now()) -} - -func (l *logger) SetRotateByHour() { - l.hourRolling = true - l.logSuffix = genHourTime(time.Now()) -} - -func (l *logger) rotate() error { - l.lock.Lock() - defer l.lock.Unlock() - - var suffix string - if l.dailyRolling { - suffix = genDayTime(time.Now()) - } else if l.hourRolling { - suffix = genHourTime(time.Now()) - } else { - return nil - } - - // Notice: if suffix is not equal to l.LogSuffix, then rotate - if suffix != l.logSuffix { - err := l.doRotate(suffix) - if err != nil { - return err - } - } - - return nil -} - -func (l *logger) doRotate(suffix string) error { - // Notice: Not check error, is this ok? - l.fd.Close() - - lastFileName := l.fileName + "." + l.logSuffix - err := os.Rename(l.fileName, lastFileName) - if err != nil { - return err - } - - err = l.SetOutputByName(l.fileName) - if err != nil { - return err - } - - l.logSuffix = suffix - - return nil -} - -func (l *logger) SetOutput(out io.Writer) { - l._log = log.New(out, l._log.Prefix(), l._log.Flags()) -} - -func (l *logger) SetOutputByName(path string) error { - f, err := os.OpenFile(path, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) - if err != nil { - log.Fatal(err) - } - - l.SetOutput(f) - - l.fileName = path - l.fd = f - - return err -} - -func (l *logger) log(t LogType, v ...interface{}) { - if l.level|LogLevel(t) != l.level { - return - } - - err := l.rotate() - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - return - } - - v1 := make([]interface{}, len(v)+2) - logStr, logColor := LogTypeToString(t) - if l.highlighting { - v1[0] = "\033" + logColor + "m[" + logStr + "]" - copy(v1[1:], v) - v1[len(v)+1] = "\033[0m" - } else { - v1[0] = "[" + logStr + "]" - copy(v1[1:], v) - v1[len(v)+1] = "" - } - - s := fmt.Sprintln(v1...) - l._log.Output(4, s) -} - -func (l *logger) logf(t LogType, format string, v ...interface{}) { - if l.level|LogLevel(t) != l.level { - return - } - - err := l.rotate() - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - return - } - - logStr, logColor := LogTypeToString(t) - var s string - if l.highlighting { - s = "\033" + logColor + "m[" + logStr + "] " + fmt.Sprintf(format, v...) + "\033[0m" - } else { - s = "[" + logStr + "] " + fmt.Sprintf(format, v...) - } - l._log.Output(4, s) -} - -func (l *logger) Fatal(v ...interface{}) { - l.log(LOG_FATAL, v...) - os.Exit(-1) -} - -func (l *logger) Fatalf(format string, v ...interface{}) { - l.logf(LOG_FATAL, format, v...) - os.Exit(-1) -} - -func (l *logger) Error(v ...interface{}) { - l.log(LOG_ERROR, v...) -} - -func (l *logger) Errorf(format string, v ...interface{}) { - l.logf(LOG_ERROR, format, v...) -} - -func (l *logger) Warning(v ...interface{}) { - l.log(LOG_WARNING, v...) -} - -func (l *logger) Warningf(format string, v ...interface{}) { - l.logf(LOG_WARNING, format, v...) -} - -func (l *logger) Debug(v ...interface{}) { - l.log(LOG_DEBUG, v...) -} - -func (l *logger) Debugf(format string, v ...interface{}) { - l.logf(LOG_DEBUG, format, v...) -} - -func (l *logger) Info(v ...interface{}) { - l.log(LOG_INFO, v...) -} - -func (l *logger) Infof(format string, v ...interface{}) { - l.logf(LOG_INFO, format, v...) -} - -func StringToLogLevel(level string) LogLevel { - switch level { - case "fatal": - return LOG_LEVEL_FATAL - case "error": - return LOG_LEVEL_ERROR - case "warn": - return LOG_LEVEL_WARN - case "warning": - return LOG_LEVEL_WARN - case "debug": - return LOG_LEVEL_DEBUG - case "info": - return LOG_LEVEL_INFO - } - return LOG_LEVEL_ALL -} - -func LogTypeToString(t LogType) (string, string) { - switch t { - case LOG_FATAL: - return "fatal", "[0;31" - case LOG_ERROR: - return "error", "[0;31" - case LOG_WARNING: - return "warning", "[0;33" - case LOG_DEBUG: - return "debug", "[0;36" - case LOG_INFO: - return "info", "[0;37" - } - return "unknown", "[0;37" -} - -func genDayTime(t time.Time) string { - return t.Format(FORMAT_TIME_DAY) -} - -func genHourTime(t time.Time) string { - return t.Format(FORMAT_TIME_HOUR) -} - -func New() *logger { - return Newlogger(os.Stderr, "") -} - -func Newlogger(w io.Writer, prefix string) *logger { - return &logger{_log: log.New(w, prefix, LstdFlags), level: LOG_LEVEL_ALL, highlighting: true} -} diff --git a/vendor/github.com/ngaut/log/log_test.go b/vendor/github.com/ngaut/log/log_test.go deleted file mode 100644 index adbcfb3..0000000 --- a/vendor/github.com/ngaut/log/log_test.go +++ /dev/null @@ -1,197 +0,0 @@ -package log - -import ( - "bufio" - "fmt" - "io" - "os" - "strings" - "testing" - "time" -) - -func isFileExists(name string) bool { - f, err := os.Stat(name) - if err != nil { - if os.IsNotExist(err) { - return false - } - } - - if f.IsDir() { - return false - } - - return true -} - -func parseDate(value string, format string) (time.Time, error) { - tt, err := time.ParseInLocation(format, value, time.Local) - if err != nil { - fmt.Println("[Error]" + err.Error()) - return tt, err - } - - return tt, nil -} - -func checkLogData(fileName string, containData string, num int64) error { - input, err := os.OpenFile(fileName, os.O_RDONLY, 0) - if err != nil { - return err - } - defer input.Close() - - var lineNum int64 - br := bufio.NewReader(input) - for { - line, err := br.ReadString('\n') - if err == io.EOF { - break - } - - realLine := strings.TrimRight(line, "\n") - if strings.Contains(realLine, containData) { - lineNum += 1 - } - } - - // check whether num is equal to lineNum - if lineNum != num { - return fmt.Errorf("checkLogData fail - %d vs %d", lineNum, num) - } - - return nil -} - -func TestDayRotateCase(t *testing.T) { - _log = New() - - logName := "example_day_test.log" - if isFileExists(logName) { - err := os.Remove(logName) - if err != nil { - t.Errorf("Remove old log file fail - %s, %s\n", err.Error(), logName) - } - } - - SetRotateByDay() - err := SetOutputByName(logName) - if err != nil { - t.Errorf("SetOutputByName fail - %s, %s\n", err.Error(), logName) - } - - if _log.logSuffix == "" { - t.Errorf("bad log suffix fail - %s\n", _log.logSuffix) - } - - day, err := parseDate(_log.logSuffix, FORMAT_TIME_DAY) - if err != nil { - t.Errorf("parseDate fail - %s, %s\n", err.Error(), _log.logSuffix) - } - - _log.Info("Test data") - _log.Infof("Test data - %s", day.String()) - - // mock log suffix to check rotate - lastDay := day.AddDate(0, 0, -1) - _log.logSuffix = genDayTime(lastDay) - oldLogSuffix := _log.logSuffix - - _log.Info("Test new data") - _log.Infof("Test new data - %s", day.String()) - - err = _log.fd.Close() - if err != nil { - t.Errorf("close log fd fail - %s, %s\n", err.Error(), _log.fileName) - } - - // check both old and new log file datas - oldLogName := logName + "." + oldLogSuffix - err = checkLogData(oldLogName, "Test data", 2) - if err != nil { - t.Errorf("old log file checkLogData fail - %s, %s\n", err.Error(), oldLogName) - } - - err = checkLogData(logName, "Test new data", 2) - if err != nil { - t.Errorf("new log file checkLogData fail - %s, %s\n", err.Error(), logName) - } - - // remove test log files - err = os.Remove(oldLogName) - if err != nil { - t.Errorf("Remove final old log file fail - %s, %s\n", err.Error(), oldLogName) - } - - err = os.Remove(logName) - if err != nil { - t.Errorf("Remove final new log file fail - %s, %s\n", err.Error(), logName) - } -} - -func TestHourRotateCase(t *testing.T) { - _log = New() - - logName := "example_hour_test.log" - if isFileExists(logName) { - err := os.Remove(logName) - if err != nil { - t.Errorf("Remove old log file fail - %s, %s\n", err.Error(), logName) - } - } - - SetRotateByHour() - err := SetOutputByName(logName) - if err != nil { - t.Errorf("SetOutputByName fail - %s, %s\n", err.Error(), logName) - } - - if _log.logSuffix == "" { - t.Errorf("bad log suffix fail - %s\n", _log.logSuffix) - } - - hour, err := parseDate(_log.logSuffix, FORMAT_TIME_HOUR) - if err != nil { - t.Errorf("parseDate fail - %s, %s\n", err.Error(), _log.logSuffix) - } - - _log.Info("Test data") - _log.Infof("Test data - %s", hour.String()) - - // mock log suffix to check rotate - lastHour := hour.Add(time.Duration(-1 * time.Hour)) - _log.logSuffix = genHourTime(lastHour) - oldLogSuffix := _log.logSuffix - - _log.Info("Test new data") - _log.Infof("Test new data - %s", hour.String()) - - err = _log.fd.Close() - if err != nil { - t.Errorf("close log fd fail - %s, %s\n", err.Error(), _log.fileName) - } - - // check both old and new log file datas - oldLogName := logName + "." + oldLogSuffix - err = checkLogData(oldLogName, "Test data", 2) - if err != nil { - t.Errorf("old log file checkLogData fail - %s, %s\n", err.Error(), oldLogName) - } - - err = checkLogData(logName, "Test new data", 2) - if err != nil { - t.Errorf("new log file checkLogData fail - %s, %s\n", err.Error(), logName) - } - - // remove test log files - err = os.Remove(oldLogName) - if err != nil { - t.Errorf("Remove final old log file fail - %s, %s\n", err.Error(), oldLogName) - } - - err = os.Remove(logName) - if err != nil { - t.Errorf("Remove final new log file fail - %s, %s\n", err.Error(), logName) - } -} diff --git a/vendor/github.com/ngaut/pools/id_pool.go b/vendor/github.com/ngaut/pools/id_pool.go deleted file mode 100644 index 31db606..0000000 --- a/vendor/github.com/ngaut/pools/id_pool.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2014, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "fmt" - "sync" -) - -// IDPool is used to ensure that the set of IDs in use concurrently never -// contains any duplicates. The IDs start at 1 and increase without bound, but -// will never be larger than the peak number of concurrent uses. -// -// IDPool's Get() and Set() methods can be used concurrently. -type IDPool struct { - sync.Mutex - - // used holds the set of values that have been returned to us with Put(). - used map[uint32]bool - // maxUsed remembers the largest value we've given out. - maxUsed uint32 -} - -// NewIDPool creates and initializes an IDPool. -func NewIDPool() *IDPool { - return &IDPool{ - used: make(map[uint32]bool), - } -} - -// Get returns an ID that is unique among currently active users of this pool. -func (pool *IDPool) Get() (id uint32) { - pool.Lock() - defer pool.Unlock() - - // Pick a value that's been returned, if any. - for key, _ := range pool.used { - delete(pool.used, key) - return key - } - - // No recycled IDs are available, so increase the pool size. - pool.maxUsed += 1 - return pool.maxUsed -} - -// Put recycles an ID back into the pool for others to use. Putting back a value -// or 0, or a value that is not currently "checked out", will result in a panic -// because that should never happen except in the case of a programming error. -func (pool *IDPool) Put(id uint32) { - pool.Lock() - defer pool.Unlock() - - if id < 1 || id > pool.maxUsed { - panic(fmt.Errorf("IDPool.Put(%v): invalid value, must be in the range [1,%v]", id, pool.maxUsed)) - } - - if pool.used[id] { - panic(fmt.Errorf("IDPool.Put(%v): can't put value that was already recycled", id)) - } - - // If we're recycling maxUsed, just shrink the pool. - if id == pool.maxUsed { - pool.maxUsed = id - 1 - return - } - - // Add it to the set of recycled IDs. - pool.used[id] = true -} diff --git a/vendor/github.com/ngaut/pools/id_pool_test.go b/vendor/github.com/ngaut/pools/id_pool_test.go deleted file mode 100644 index a437874..0000000 --- a/vendor/github.com/ngaut/pools/id_pool_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2014, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "reflect" - "strings" - "testing" -) - -func (pool *IDPool) want(want *IDPool, t *testing.T) { - if pool.maxUsed != want.maxUsed { - t.Errorf("pool.maxUsed = %#v, want %#v", pool.maxUsed, want.maxUsed) - } - - if !reflect.DeepEqual(pool.used, want.used) { - t.Errorf("pool.used = %#v, want %#v", pool.used, want.used) - } -} - -func TestIDPoolFirstGet(t *testing.T) { - pool := NewIDPool() - - if got := pool.Get(); got != 1 { - t.Errorf("pool.Get() = %v, want 1", got) - } - - pool.want(&IDPool{used: map[uint32]bool{}, maxUsed: 1}, t) -} - -func TestIDPoolSecondGet(t *testing.T) { - pool := NewIDPool() - pool.Get() - - if got := pool.Get(); got != 2 { - t.Errorf("pool.Get() = %v, want 2", got) - } - - pool.want(&IDPool{used: map[uint32]bool{}, maxUsed: 2}, t) -} - -func TestIDPoolPutToUsedSet(t *testing.T) { - pool := NewIDPool() - id1 := pool.Get() - pool.Get() - pool.Put(id1) - - pool.want(&IDPool{used: map[uint32]bool{1: true}, maxUsed: 2}, t) -} - -func TestIDPoolPutMaxUsed1(t *testing.T) { - pool := NewIDPool() - id1 := pool.Get() - pool.Put(id1) - - pool.want(&IDPool{used: map[uint32]bool{}, maxUsed: 0}, t) -} - -func TestIDPoolPutMaxUsed2(t *testing.T) { - pool := NewIDPool() - pool.Get() - id2 := pool.Get() - pool.Put(id2) - - pool.want(&IDPool{used: map[uint32]bool{}, maxUsed: 1}, t) -} - -func TestIDPoolGetFromUsedSet(t *testing.T) { - pool := NewIDPool() - id1 := pool.Get() - pool.Get() - pool.Put(id1) - - if got := pool.Get(); got != 1 { - t.Errorf("pool.Get() = %v, want 1", got) - } - - pool.want(&IDPool{used: map[uint32]bool{}, maxUsed: 2}, t) -} - -func wantError(want string, t *testing.T) { - rec := recover() - if rec == nil { - t.Errorf("expected panic, but there wasn't one") - } - err, ok := rec.(error) - if !ok || !strings.Contains(err.Error(), want) { - t.Errorf("wrong error, got '%v', want '%v'", err, want) - } -} - -func TestIDPoolPut0(t *testing.T) { - pool := NewIDPool() - pool.Get() - - defer wantError("invalid value", t) - pool.Put(0) -} - -func TestIDPoolPutInvalid(t *testing.T) { - pool := NewIDPool() - pool.Get() - - defer wantError("invalid value", t) - pool.Put(5) -} - -func TestIDPoolPutDuplicate(t *testing.T) { - pool := NewIDPool() - pool.Get() - pool.Get() - pool.Put(1) - - defer wantError("already recycled", t) - pool.Put(1) -} diff --git a/vendor/github.com/ngaut/pools/numbered.go b/vendor/github.com/ngaut/pools/numbered.go deleted file mode 100644 index e170e03..0000000 --- a/vendor/github.com/ngaut/pools/numbered.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "fmt" - "sync" - "time" -) - -// Numbered allows you to manage resources by tracking them with numbers. -// There are no interface restrictions on what you can track. -type Numbered struct { - mu sync.Mutex - empty *sync.Cond // Broadcast when pool becomes empty - resources map[int64]*numberedWrapper -} - -type numberedWrapper struct { - val interface{} - inUse bool - purpose string - timeCreated time.Time - timeUsed time.Time -} - -func NewNumbered() *Numbered { - n := &Numbered{resources: make(map[int64]*numberedWrapper)} - n.empty = sync.NewCond(&n.mu) - return n -} - -// Register starts tracking a resource by the supplied id. -// It does not lock the object. -// It returns an error if the id already exists. -func (nu *Numbered) Register(id int64, val interface{}) error { - nu.mu.Lock() - defer nu.mu.Unlock() - if _, ok := nu.resources[id]; ok { - return fmt.Errorf("already present") - } - now := time.Now() - nu.resources[id] = &numberedWrapper{ - val: val, - timeCreated: now, - timeUsed: now, - } - return nil -} - -// Unregiester forgets the specified resource. -// If the resource is not present, it's ignored. -func (nu *Numbered) Unregister(id int64) { - nu.mu.Lock() - defer nu.mu.Unlock() - delete(nu.resources, id) - if len(nu.resources) == 0 { - nu.empty.Broadcast() - } -} - -// Get locks the resource for use. It accepts a purpose as a string. -// If it cannot be found, it returns a "not found" error. If in use, -// it returns a "in use: purpose" error. -func (nu *Numbered) Get(id int64, purpose string) (val interface{}, err error) { - nu.mu.Lock() - defer nu.mu.Unlock() - nw, ok := nu.resources[id] - if !ok { - return nil, fmt.Errorf("not found") - } - if nw.inUse { - return nil, fmt.Errorf("in use: %s", nw.purpose) - } - nw.inUse = true - nw.purpose = purpose - return nw.val, nil -} - -// Put unlocks a resource for someone else to use. -func (nu *Numbered) Put(id int64) { - nu.mu.Lock() - defer nu.mu.Unlock() - if nw, ok := nu.resources[id]; ok { - nw.inUse = false - nw.purpose = "" - nw.timeUsed = time.Now() - } -} - -// GetOutdated returns a list of resources that are older than age, and locks them. -// It does not return any resources that are already locked. -func (nu *Numbered) GetOutdated(age time.Duration, purpose string) (vals []interface{}) { - nu.mu.Lock() - defer nu.mu.Unlock() - now := time.Now() - for _, nw := range nu.resources { - if nw.inUse { - continue - } - if nw.timeCreated.Add(age).Sub(now) <= 0 { - nw.inUse = true - nw.purpose = purpose - vals = append(vals, nw.val) - } - } - return vals -} - -// GetIdle returns a list of resurces that have been idle for longer -// than timeout, and locks them. It does not return any resources that -// are already locked. -func (nu *Numbered) GetIdle(timeout time.Duration, purpose string) (vals []interface{}) { - nu.mu.Lock() - defer nu.mu.Unlock() - now := time.Now() - for _, nw := range nu.resources { - if nw.inUse { - continue - } - if nw.timeUsed.Add(timeout).Sub(now) <= 0 { - nw.inUse = true - nw.purpose = purpose - vals = append(vals, nw.val) - } - } - return vals -} - -// WaitForEmpty returns as soon as the pool becomes empty -func (nu *Numbered) WaitForEmpty() { - nu.mu.Lock() - defer nu.mu.Unlock() - for len(nu.resources) != 0 { - nu.empty.Wait() - } -} - -func (nu *Numbered) StatsJSON() string { - return fmt.Sprintf("{\"Size\": %v}", nu.Size()) -} - -func (nu *Numbered) Size() (size int64) { - nu.mu.Lock() - defer nu.mu.Unlock() - return int64(len(nu.resources)) -} diff --git a/vendor/github.com/ngaut/pools/numbered_test.go b/vendor/github.com/ngaut/pools/numbered_test.go deleted file mode 100644 index 54d5946..0000000 --- a/vendor/github.com/ngaut/pools/numbered_test.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "testing" - "time" -) - -func TestNumbered(t *testing.T) { - id := int64(0) - p := NewNumbered() - - var err error - if err = p.Register(id, id); err != nil { - t.Errorf("Error %v", err) - } - if err = p.Register(id, id); err.Error() != "already present" { - t.Errorf("want 'already present', got '%v'", err) - } - var v interface{} - if v, err = p.Get(id, "test"); err != nil { - t.Errorf("Error %v", err) - } - if v.(int64) != id { - t.Errorf("want %v, got %v", id, v.(int64)) - } - if v, err = p.Get(id, "test1"); err.Error() != "in use: test" { - t.Errorf("want 'in use: test', got '%v'", err) - } - p.Put(id) - if v, err = p.Get(1, "test2"); err.Error() != "not found" { - t.Errorf("want 'not found', got '%v'", err) - } - p.Unregister(1) // Should not fail - p.Unregister(0) - // p is now empty - - p.Register(id, id) - id++ - p.Register(id, id) - time.Sleep(300 * time.Millisecond) - id++ - p.Register(id, id) - time.Sleep(100 * time.Millisecond) - - // p has 0, 1, 2 (0 & 1 are aged) - vals := p.GetOutdated(200*time.Millisecond, "by outdated") - if len(vals) != 2 { - t.Errorf("want 2, got %v", len(vals)) - } - if v, err = p.Get(vals[0].(int64), "test1"); err.Error() != "in use: by outdated" { - t.Errorf("want 'in use: by outdated', got '%v'", err) - } - for _, v := range vals { - p.Put(v.(int64)) - } - time.Sleep(100 * time.Millisecond) - - // p has 0, 1, 2 (2 is idle) - vals = p.GetIdle(200*time.Millisecond, "by idle") - if len(vals) != 1 { - t.Errorf("want 1, got %v", len(vals)) - } - if v, err = p.Get(vals[0].(int64), "test1"); err.Error() != "in use: by idle" { - t.Errorf("want 'in use: by idle', got '%v'", err) - } - if vals[0].(int64) != 2 { - t.Errorf("want 2, got %v", vals[0]) - } - p.Unregister(vals[0].(int64)) - - // p has 0 & 1 - if p.Size() != 2 { - t.Errorf("want 2, got %v", p.Size()) - } - go func() { - p.Unregister(0) - p.Unregister(1) - }() - p.WaitForEmpty() -} diff --git a/vendor/github.com/ngaut/pools/resource_pool.go b/vendor/github.com/ngaut/pools/resource_pool.go deleted file mode 100644 index b02cf04..0000000 --- a/vendor/github.com/ngaut/pools/resource_pool.go +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package pools provides functionality to manage and reuse resources -// like connections. -package pools - -import ( - "fmt" - "time" - - "github.com/ngaut/sync2" -) - -var ( - CLOSED_ERR = fmt.Errorf("ResourcePool is closed") -) - -// Factory is a function that can be used to create a resource. -type Factory func() (Resource, error) - -// Every resource needs to suport the Resource interface. -// Thread synchronization between Close() and IsClosed() -// is the responsibility the caller. -type Resource interface { - Close() -} - -// ResourcePool allows you to use a pool of resources. -type ResourcePool struct { - resources chan resourceWrapper - factory Factory - capacity sync2.AtomicInt64 - idleTimeout sync2.AtomicDuration - - // stats - waitCount sync2.AtomicInt64 - waitTime sync2.AtomicDuration -} - -type resourceWrapper struct { - resource Resource - timeUsed time.Time -} - -// NewResourcePool creates a new ResourcePool pool. -// capacity is the initial capacity of the pool. -// maxCap is the maximum capacity. -// If a resource is unused beyond idleTimeout, it's discarded. -// An idleTimeout of 0 means that there is no timeout. -func NewResourcePool(factory Factory, capacity, maxCap int, idleTimeout time.Duration) *ResourcePool { - if capacity <= 0 || maxCap <= 0 || capacity > maxCap { - panic(fmt.Errorf("Invalid/out of range capacity")) - } - rp := &ResourcePool{ - resources: make(chan resourceWrapper, maxCap), - factory: factory, - capacity: sync2.AtomicInt64(capacity), - idleTimeout: sync2.AtomicDuration(idleTimeout), - } - for i := 0; i < capacity; i++ { - rp.resources <- resourceWrapper{} - } - return rp -} - -// Close empties the pool calling Close on all its resources. -// You can call Close while there are outstanding resources. -// It waits for all resources to be returned (Put). -// After a Close, Get and TryGet are not allowed. -func (rp *ResourcePool) Close() { - rp.SetCapacity(0) -} - -func (rp *ResourcePool) IsClosed() (closed bool) { - return rp.capacity.Get() == 0 -} - -// Get will return the next available resource. If capacity -// has not been reached, it will create a new one using the factory. Otherwise, -// it will indefinitely wait till the next resource becomes available. -func (rp *ResourcePool) Get() (resource Resource, err error) { - return rp.get(true) -} - -// TryGet will return the next available resource. If none is available, and capacity -// has not been reached, it will create a new one using the factory. Otherwise, -// it will return nil with no error. -func (rp *ResourcePool) TryGet() (resource Resource, err error) { - return rp.get(false) -} - -func (rp *ResourcePool) get(wait bool) (resource Resource, err error) { - // Fetch - var wrapper resourceWrapper - var ok bool - select { - case wrapper, ok = <-rp.resources: - default: - if !wait { - return nil, nil - } - startTime := time.Now() - wrapper, ok = <-rp.resources - rp.recordWait(startTime) - } - if !ok { - return nil, CLOSED_ERR - } - - // Unwrap - timeout := rp.idleTimeout.Get() - if wrapper.resource != nil && timeout > 0 && wrapper.timeUsed.Add(timeout).Sub(time.Now()) < 0 { - wrapper.resource.Close() - wrapper.resource = nil - } - if wrapper.resource == nil { - wrapper.resource, err = rp.factory() - if err != nil { - rp.resources <- resourceWrapper{} - } - } - return wrapper.resource, err -} - -// Put will return a resource to the pool. For every successful Get, -// a corresponding Put is required. If you no longer need a resource, -// you will need to call Put(nil) instead of returning the closed resource. -// The will eventually cause a new resource to be created in its place. -func (rp *ResourcePool) Put(resource Resource) { - var wrapper resourceWrapper - if resource != nil { - wrapper = resourceWrapper{resource, time.Now()} - } - select { - case rp.resources <- wrapper: - default: - panic(fmt.Errorf("Attempt to Put into a full ResourcePool")) - } -} - -// SetCapacity changes the capacity of the pool. -// You can use it to shrink or expand, but not beyond -// the max capacity. If the change requires the pool -// to be shrunk, SetCapacity waits till the necessary -// number of resources are returned to the pool. -// A SetCapacity of 0 is equivalent to closing the ResourcePool. -func (rp *ResourcePool) SetCapacity(capacity int) error { - if capacity < 0 || capacity > cap(rp.resources) { - return fmt.Errorf("capacity %d is out of range", capacity) - } - - // Atomically swap new capacity with old, but only - // if old capacity is non-zero. - var oldcap int - for { - oldcap = int(rp.capacity.Get()) - if oldcap == 0 { - return CLOSED_ERR - } - if oldcap == capacity { - return nil - } - if rp.capacity.CompareAndSwap(int64(oldcap), int64(capacity)) { - break - } - } - - if capacity < oldcap { - for i := 0; i < oldcap-capacity; i++ { - wrapper := <-rp.resources - if wrapper.resource != nil { - wrapper.resource.Close() - } - } - } else { - for i := 0; i < capacity-oldcap; i++ { - rp.resources <- resourceWrapper{} - } - } - if capacity == 0 { - close(rp.resources) - } - return nil -} - -func (rp *ResourcePool) recordWait(start time.Time) { - rp.waitCount.Add(1) - rp.waitTime.Add(time.Now().Sub(start)) -} - -func (rp *ResourcePool) SetIdleTimeout(idleTimeout time.Duration) { - rp.idleTimeout.Set(idleTimeout) -} - -func (rp *ResourcePool) StatsJSON() string { - c, a, mx, wc, wt, it := rp.Stats() - return fmt.Sprintf(`{"Capacity": %v, "Available": %v, "MaxCapacity": %v, "WaitCount": %v, "WaitTime": %v, "IdleTimeout": %v}`, c, a, mx, wc, int64(wt), int64(it)) -} - -func (rp *ResourcePool) Stats() (capacity, available, maxCap, waitCount int64, waitTime, idleTimeout time.Duration) { - return rp.Capacity(), rp.Available(), rp.MaxCap(), rp.WaitCount(), rp.WaitTime(), rp.IdleTimeout() -} - -func (rp *ResourcePool) Capacity() int64 { - return rp.capacity.Get() -} - -func (rp *ResourcePool) Available() int64 { - return int64(len(rp.resources)) -} - -func (rp *ResourcePool) MaxCap() int64 { - return int64(cap(rp.resources)) -} - -func (rp *ResourcePool) WaitCount() int64 { - return rp.waitCount.Get() -} - -func (rp *ResourcePool) WaitTime() time.Duration { - return rp.waitTime.Get() -} - -func (rp *ResourcePool) IdleTimeout() time.Duration { - return rp.idleTimeout.Get() -} diff --git a/vendor/github.com/ngaut/pools/resource_pool_test.go b/vendor/github.com/ngaut/pools/resource_pool_test.go deleted file mode 100644 index 27820dd..0000000 --- a/vendor/github.com/ngaut/pools/resource_pool_test.go +++ /dev/null @@ -1,487 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "errors" - "testing" - "time" - - "github.com/ngaut/sync2" -) - -var lastId, count sync2.AtomicInt64 - -type TestResource struct { - num int64 - closed bool -} - -func (tr *TestResource) Close() { - if !tr.closed { - count.Add(-1) - tr.closed = true - } -} - -func (tr *TestResource) IsClosed() bool { - return tr.closed -} - -func PoolFactory() (Resource, error) { - count.Add(1) - return &TestResource{lastId.Add(1), false}, nil -} - -func FailFactory() (Resource, error) { - return nil, errors.New("Failed") -} - -func SlowFailFactory() (Resource, error) { - time.Sleep(10 * time.Nanosecond) - return nil, errors.New("Failed") -} - -func TestOpen(t *testing.T) { - lastId.Set(0) - count.Set(0) - p := NewResourcePool(PoolFactory, 6, 6, time.Second) - p.SetCapacity(5) - var resources [10]Resource - - // Test Get - for i := 0; i < 5; i++ { - r, err := p.Get() - resources[i] = r - if err != nil { - t.Errorf("Unexpected error %v", err) - } - _, available, _, waitCount, waitTime, _ := p.Stats() - if available != int64(5-i-1) { - t.Errorf("expecting %d, received %d", 5-i-1, available) - } - if waitCount != 0 { - t.Errorf("expecting 0, received %d", waitCount) - } - if waitTime != 0 { - t.Errorf("expecting 0, received %d", waitTime) - } - if lastId.Get() != int64(i+1) { - t.Errorf("Expecting %d, received %d", i+1, lastId.Get()) - } - if count.Get() != int64(i+1) { - t.Errorf("Expecting %d, received %d", i+1, count.Get()) - } - } - - // Test TryGet - r, err := p.TryGet() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - if r != nil { - t.Errorf("Expecting nil") - } - for i := 0; i < 5; i++ { - p.Put(resources[i]) - _, available, _, _, _, _ := p.Stats() - if available != int64(i+1) { - t.Errorf("expecting %d, received %d", 5-i-1, available) - } - } - for i := 0; i < 5; i++ { - r, err := p.TryGet() - resources[i] = r - if err != nil { - t.Errorf("Unexpected error %v", err) - } - if r == nil { - t.Errorf("Expecting non-nil") - } - if lastId.Get() != 5 { - t.Errorf("Expecting 5, received %d", lastId.Get()) - } - if count.Get() != 5 { - t.Errorf("Expecting 5, received %d", count.Get()) - } - } - - // Test that Get waits - ch := make(chan bool) - go func() { - for i := 0; i < 5; i++ { - r, err := p.Get() - if err != nil { - t.Errorf("Get failed: %v", err) - } - resources[i] = r - } - for i := 0; i < 5; i++ { - p.Put(resources[i]) - } - ch <- true - }() - for i := 0; i < 5; i++ { - // Sleep to ensure the goroutine waits - time.Sleep(10 * time.Nanosecond) - p.Put(resources[i]) - } - <-ch - _, _, _, waitCount, waitTime, _ := p.Stats() - if waitCount != 5 { - t.Errorf("Expecting 5, received %d", waitCount) - } - if waitTime == 0 { - t.Errorf("Expecting non-zero") - } - if lastId.Get() != 5 { - t.Errorf("Expecting 5, received %d", lastId.Get()) - } - - // Test Close resource - r, err = p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - r.Close() - p.Put(nil) - if count.Get() != 4 { - t.Errorf("Expecting 4, received %d", count.Get()) - } - for i := 0; i < 5; i++ { - r, err := p.Get() - if err != nil { - t.Errorf("Get failed: %v", err) - } - resources[i] = r - } - for i := 0; i < 5; i++ { - p.Put(resources[i]) - } - if count.Get() != 5 { - t.Errorf("Expecting 5, received %d", count.Get()) - } - if lastId.Get() != 6 { - t.Errorf("Expecting 6, received %d", lastId.Get()) - } - - // SetCapacity - p.SetCapacity(3) - if count.Get() != 3 { - t.Errorf("Expecting 3, received %d", count.Get()) - } - if lastId.Get() != 6 { - t.Errorf("Expecting 6, received %d", lastId.Get()) - } - capacity, available, _, _, _, _ := p.Stats() - if capacity != 3 { - t.Errorf("Expecting 3, received %d", capacity) - } - if available != 3 { - t.Errorf("Expecting 3, received %d", available) - } - p.SetCapacity(6) - capacity, available, _, _, _, _ = p.Stats() - if capacity != 6 { - t.Errorf("Expecting 6, received %d", capacity) - } - if available != 6 { - t.Errorf("Expecting 6, received %d", available) - } - for i := 0; i < 6; i++ { - r, err := p.Get() - if err != nil { - t.Errorf("Get failed: %v", err) - } - resources[i] = r - } - for i := 0; i < 6; i++ { - p.Put(resources[i]) - } - if count.Get() != 6 { - t.Errorf("Expecting 5, received %d", count.Get()) - } - if lastId.Get() != 9 { - t.Errorf("Expecting 9, received %d", lastId.Get()) - } - - // Close - p.Close() - capacity, available, _, _, _, _ = p.Stats() - if capacity != 0 { - t.Errorf("Expecting 0, received %d", capacity) - } - if available != 0 { - t.Errorf("Expecting 0, received %d", available) - } - if count.Get() != 0 { - t.Errorf("Expecting 0, received %d", count.Get()) - } -} - -func TestShrinking(t *testing.T) { - lastId.Set(0) - count.Set(0) - p := NewResourcePool(PoolFactory, 5, 5, time.Second) - var resources [10]Resource - // Leave one empty slot in the pool - for i := 0; i < 4; i++ { - r, err := p.Get() - if err != nil { - t.Errorf("Get failed: %v", err) - } - resources[i] = r - } - go p.SetCapacity(3) - time.Sleep(10 * time.Nanosecond) - stats := p.StatsJSON() - expected := `{"Capacity": 3, "Available": 0, "MaxCapacity": 5, "WaitCount": 0, "WaitTime": 0, "IdleTimeout": 1000000000}` - if stats != expected { - t.Errorf(`expecting '%s', received '%s'`, expected, stats) - } - - // TryGet is allowed when shrinking - r, err := p.TryGet() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - if r != nil { - t.Errorf("Expecting nil") - } - - // Get is allowed when shrinking, but it will wait - getdone := make(chan bool) - go func() { - r, err := p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - p.Put(r) - getdone <- true - }() - - // Put is allowed when shrinking. It's necessary. - for i := 0; i < 4; i++ { - p.Put(resources[i]) - } - // Wait for Get test to complete - <-getdone - stats = p.StatsJSON() - expected = `{"Capacity": 3, "Available": 3, "MaxCapacity": 5, "WaitCount": 0, "WaitTime": 0, "IdleTimeout": 1000000000}` - if stats != expected { - t.Errorf(`expecting '%s', received '%s'`, expected, stats) - } - if count.Get() != 3 { - t.Errorf("Expecting 3, received %d", count.Get()) - } - - // Ensure no deadlock if SetCapacity is called after we start - // waiting for a resource - for i := 0; i < 3; i++ { - resources[i], err = p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - } - // This will wait because pool is empty - go func() { - r, err := p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - p.Put(r) - getdone <- true - }() - time.Sleep(10 * time.Nanosecond) - - // This will wait till we Put - go p.SetCapacity(2) - time.Sleep(10 * time.Nanosecond) - - // This should not hang - for i := 0; i < 3; i++ { - p.Put(resources[i]) - } - <-getdone - capacity, available, _, _, _, _ := p.Stats() - if capacity != 2 { - t.Errorf("Expecting 2, received %d", capacity) - } - if available != 2 { - t.Errorf("Expecting 2, received %d", available) - } - if count.Get() != 2 { - t.Errorf("Expecting 2, received %d", count.Get()) - } - - // Test race condition of SetCapacity with itself - p.SetCapacity(3) - for i := 0; i < 3; i++ { - resources[i], err = p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - } - // This will wait because pool is empty - go func() { - r, err := p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - p.Put(r) - getdone <- true - }() - time.Sleep(10 * time.Nanosecond) - - // This will wait till we Put - go p.SetCapacity(2) - time.Sleep(10 * time.Nanosecond) - go p.SetCapacity(4) - time.Sleep(10 * time.Nanosecond) - - // This should not hang - for i := 0; i < 3; i++ { - p.Put(resources[i]) - } - <-getdone - - err = p.SetCapacity(-1) - if err == nil { - t.Errorf("Expecting error") - } - err = p.SetCapacity(255555) - if err == nil { - t.Errorf("Expecting error") - } - - capacity, available, _, _, _, _ = p.Stats() - if capacity != 4 { - t.Errorf("Expecting 4, received %d", capacity) - } - if available != 4 { - t.Errorf("Expecting 4, received %d", available) - } -} - -func TestClosing(t *testing.T) { - lastId.Set(0) - count.Set(0) - p := NewResourcePool(PoolFactory, 5, 5, time.Second) - var resources [10]Resource - for i := 0; i < 5; i++ { - r, err := p.Get() - if err != nil { - t.Errorf("Get failed: %v", err) - } - resources[i] = r - } - ch := make(chan bool) - go func() { - p.Close() - ch <- true - }() - - // Wait for goroutine to call Close - time.Sleep(10 * time.Nanosecond) - stats := p.StatsJSON() - expected := `{"Capacity": 0, "Available": 0, "MaxCapacity": 5, "WaitCount": 0, "WaitTime": 0, "IdleTimeout": 1000000000}` - if stats != expected { - t.Errorf(`expecting '%s', received '%s'`, expected, stats) - } - - // Put is allowed when closing - for i := 0; i < 5; i++ { - p.Put(resources[i]) - } - - // Wait for Close to return - <-ch - - // SetCapacity must be ignored after Close - err := p.SetCapacity(1) - if err == nil { - t.Errorf("expecting error") - } - - stats = p.StatsJSON() - expected = `{"Capacity": 0, "Available": 0, "MaxCapacity": 5, "WaitCount": 0, "WaitTime": 0, "IdleTimeout": 1000000000}` - if stats != expected { - t.Errorf(`expecting '%s', received '%s'`, expected, stats) - } - if lastId.Get() != 5 { - t.Errorf("Expecting 5, received %d", count.Get()) - } - if count.Get() != 0 { - t.Errorf("Expecting 0, received %d", count.Get()) - } -} - -func TestIdleTimeout(t *testing.T) { - lastId.Set(0) - count.Set(0) - p := NewResourcePool(PoolFactory, 1, 1, 10*time.Nanosecond) - defer p.Close() - - r, err := p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - p.Put(r) - if lastId.Get() != 1 { - t.Errorf("Expecting 1, received %d", count.Get()) - } - if count.Get() != 1 { - t.Errorf("Expecting 1, received %d", count.Get()) - } - time.Sleep(20 * time.Nanosecond) - r, err = p.Get() - if err != nil { - t.Errorf("Unexpected error %v", err) - } - if lastId.Get() != 2 { - t.Errorf("Expecting 2, received %d", count.Get()) - } - if count.Get() != 1 { - t.Errorf("Expecting 1, received %d", count.Get()) - } - p.Put(r) -} - -func TestCreateFail(t *testing.T) { - lastId.Set(0) - count.Set(0) - p := NewResourcePool(FailFactory, 5, 5, time.Second) - defer p.Close() - if _, err := p.Get(); err.Error() != "Failed" { - t.Errorf("Expecting Failed, received %v", err) - } - stats := p.StatsJSON() - expected := `{"Capacity": 5, "Available": 5, "MaxCapacity": 5, "WaitCount": 0, "WaitTime": 0, "IdleTimeout": 1000000000}` - if stats != expected { - t.Errorf(`expecting '%s', received '%s'`, expected, stats) - } -} - -func TestSlowCreateFail(t *testing.T) { - lastId.Set(0) - count.Set(0) - p := NewResourcePool(SlowFailFactory, 2, 2, time.Second) - defer p.Close() - ch := make(chan bool) - // The third Get should not wait indefinitely - for i := 0; i < 3; i++ { - go func() { - p.Get() - ch <- true - }() - } - for i := 0; i < 3; i++ { - <-ch - } - _, available, _, _, _, _ := p.Stats() - if available != 2 { - t.Errorf("Expecting 2, received %d", available) - } -} diff --git a/vendor/github.com/ngaut/pools/roundrobin.go b/vendor/github.com/ngaut/pools/roundrobin.go deleted file mode 100644 index b06985f..0000000 --- a/vendor/github.com/ngaut/pools/roundrobin.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "fmt" - "sync" - "time" -) - -// RoundRobin is deprecated. Use ResourcePool instead. -// RoundRobin allows you to use a pool of resources in a round robin fashion. -type RoundRobin struct { - mu sync.Mutex - available *sync.Cond - resources chan fifoWrapper - size int64 - factory Factory - idleTimeout time.Duration - - // stats - waitCount int64 - waitTime time.Duration -} - -type fifoWrapper struct { - resource Resource - timeUsed time.Time -} - -// NewRoundRobin creates a new RoundRobin pool. -// capacity is the maximum number of resources RoundRobin will create. -// factory will be the function used to create resources. -// If a resource is unused beyond idleTimeout, it's discarded. -func NewRoundRobin(capacity int, idleTimeout time.Duration) *RoundRobin { - r := &RoundRobin{ - resources: make(chan fifoWrapper, capacity), - size: 0, - idleTimeout: idleTimeout, - } - r.available = sync.NewCond(&r.mu) - return r -} - -// Open starts allowing the creation of resources -func (rr *RoundRobin) Open(factory Factory) { - rr.mu.Lock() - defer rr.mu.Unlock() - rr.factory = factory -} - -// Close empties the pool calling Close on all its resources. -// It waits for all resources to be returned (Put). -func (rr *RoundRobin) Close() { - rr.mu.Lock() - defer rr.mu.Unlock() - for rr.size > 0 { - select { - case fw := <-rr.resources: - go fw.resource.Close() - rr.size-- - default: - rr.available.Wait() - } - } - rr.factory = nil -} - -func (rr *RoundRobin) IsClosed() bool { - return rr.factory == nil -} - -// Get will return the next available resource. If none is available, and capacity -// has not been reached, it will create a new one using the factory. Otherwise, -// it will indefinitely wait till the next resource becomes available. -func (rr *RoundRobin) Get() (resource Resource, err error) { - return rr.get(true) -} - -// TryGet will return the next available resource. If none is available, and capacity -// has not been reached, it will create a new one using the factory. Otherwise, -// it will return nil with no error. -func (rr *RoundRobin) TryGet() (resource Resource, err error) { - return rr.get(false) -} - -func (rr *RoundRobin) get(wait bool) (resource Resource, err error) { - rr.mu.Lock() - defer rr.mu.Unlock() - // Any waits in this loop will release the lock, and it will be - // reacquired before the waits return. - for { - select { - case fw := <-rr.resources: - // Found a free resource in the channel - if rr.idleTimeout > 0 && fw.timeUsed.Add(rr.idleTimeout).Sub(time.Now()) < 0 { - // resource has been idle for too long. Discard & go for next. - go fw.resource.Close() - rr.size-- - // Nobody else should be waiting, but signal anyway. - rr.available.Signal() - continue - } - return fw.resource, nil - default: - // resource channel is empty - if rr.size >= int64(cap(rr.resources)) { - // The pool is full - if wait { - start := time.Now() - rr.available.Wait() - rr.recordWait(start) - continue - } - return nil, nil - } - // Pool is not full. Create a resource. - if resource, err = rr.waitForCreate(); err != nil { - // size was decremented, and somebody could be waiting. - rr.available.Signal() - return nil, err - } - // Creation successful. Account for this by incrementing size. - rr.size++ - return resource, err - } - } -} - -func (rr *RoundRobin) recordWait(start time.Time) { - rr.waitCount++ - rr.waitTime += time.Now().Sub(start) -} - -func (rr *RoundRobin) waitForCreate() (resource Resource, err error) { - // Prevent thundering herd: increment size before creating resource, and decrement after. - rr.size++ - rr.mu.Unlock() - defer func() { - rr.mu.Lock() - rr.size-- - }() - return rr.factory() -} - -// Put will return a resource to the pool. You MUST return every resource to the pool, -// even if it's closed. If a resource is closed, you should call Put(nil). -func (rr *RoundRobin) Put(resource Resource) { - rr.mu.Lock() - defer rr.available.Signal() - defer rr.mu.Unlock() - - if rr.size > int64(cap(rr.resources)) { - if resource != nil { - go resource.Close() - } - rr.size-- - } else if resource == nil { - rr.size-- - } else { - if len(rr.resources) == cap(rr.resources) { - panic("unexpected") - } - rr.resources <- fifoWrapper{resource, time.Now()} - } -} - -// Set capacity changes the capacity of the pool. -// You can use it to expand or shrink. -func (rr *RoundRobin) SetCapacity(capacity int) error { - rr.mu.Lock() - defer rr.available.Broadcast() - defer rr.mu.Unlock() - - nr := make(chan fifoWrapper, capacity) - // This loop transfers resources from the old channel - // to the new one, until it fills up or runs out. - // It discards extras, if any. - for { - select { - case fw := <-rr.resources: - if len(nr) < cap(nr) { - nr <- fw - } else { - go fw.resource.Close() - rr.size-- - } - continue - default: - } - break - } - rr.resources = nr - return nil -} - -func (rr *RoundRobin) SetIdleTimeout(idleTimeout time.Duration) { - rr.mu.Lock() - defer rr.mu.Unlock() - rr.idleTimeout = idleTimeout -} - -func (rr *RoundRobin) StatsJSON() string { - s, c, a, wc, wt, it := rr.Stats() - return fmt.Sprintf("{\"Size\": %v, \"Capacity\": %v, \"Available\": %v, \"WaitCount\": %v, \"WaitTime\": %v, \"IdleTimeout\": %v}", s, c, a, wc, int64(wt), int64(it)) -} - -func (rr *RoundRobin) Stats() (size, capacity, available, waitCount int64, waitTime, idleTimeout time.Duration) { - rr.mu.Lock() - defer rr.mu.Unlock() - return rr.size, int64(cap(rr.resources)), int64(len(rr.resources)), rr.waitCount, rr.waitTime, rr.idleTimeout -} diff --git a/vendor/github.com/ngaut/pools/roundrobin_test.go b/vendor/github.com/ngaut/pools/roundrobin_test.go deleted file mode 100644 index 870503d..0000000 --- a/vendor/github.com/ngaut/pools/roundrobin_test.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pools - -import ( - "testing" - "time" -) - -func TestPool(t *testing.T) { - lastId.Set(0) - p := NewRoundRobin(5, time.Duration(10e9)) - p.Open(PoolFactory) - defer p.Close() - - for i := 0; i < 2; i++ { - r, err := p.TryGet() - if err != nil { - t.Errorf("TryGet failed: %v", err) - } - if r.(*TestResource).num != 1 { - t.Errorf("Expecting 1, received %d", r.(*TestResource).num) - } - p.Put(r) - } - // p = [1] - - all := make([]Resource, 5) - for i := 0; i < 5; i++ { - if all[i], _ = p.TryGet(); all[i] == nil { - t.Errorf("TryGet failed with nil") - } - } - // all = [1-5], p is empty - if none, _ := p.TryGet(); none != nil { - t.Errorf("TryGet failed with non-nil") - } - - ch := make(chan bool) - go ResourceWait(p, t, ch) - time.Sleep(1e8) - for i := 0; i < 5; i++ { - p.Put(all[i]) - } - // p = [1-5] - <-ch - // p = [1-5] - if p.waitCount != 1 { - t.Errorf("Expecting 1, received %d", p.waitCount) - } - - for i := 0; i < 5; i++ { - all[i], _ = p.Get() - } - // all = [1-5], p is empty - all[0].(*TestResource).Close() - p.Put(nil) - for i := 1; i < 5; i++ { - p.Put(all[i]) - } - // p = [2-5] - - for i := 0; i < 4; i++ { - r, _ := p.Get() - if r.(*TestResource).num != int64(i+2) { - t.Errorf("Expecting %d, received %d", i+2, r.(*TestResource).num) - } - p.Put(r) - } - - p.SetCapacity(3) - // p = [2-4] - if p.size != 3 { - t.Errorf("Expecting 3, received %d", p.size) - } - - p.SetIdleTimeout(time.Duration(1e8)) - time.Sleep(2e8) - r, _ := p.Get() - if r.(*TestResource).num != 6 { - t.Errorf("Expecting 6, received %d", r.(*TestResource).num) - } - p.Put(r) - // p = [6] -} - -func TestPoolFail(t *testing.T) { - p := NewRoundRobin(5, time.Duration(10e9)) - p.Open(FailFactory) - defer p.Close() - if _, err := p.Get(); err.Error() != "Failed" { - t.Errorf("Expecting Failed, received %v", err) - } -} - -func TestPoolFullFail(t *testing.T) { - p := NewRoundRobin(2, time.Duration(10e9)) - p.Open(SlowFailFactory) - defer p.Close() - ch := make(chan bool) - // The third get should not wait indefinitely - for i := 0; i < 3; i++ { - go func() { - p.Get() - ch <- true - }() - } - for i := 0; i < 3; i++ { - <-ch - } -} - -func ResourceWait(p *RoundRobin, t *testing.T, ch chan bool) { - for i := 0; i < 5; i++ { - if r, err := p.Get(); err != nil { - t.Errorf("TryGet failed: %v", err) - } else if r.(*TestResource).num != int64(i+1) { - t.Errorf("Expecting %d, received %d", i+1, r.(*TestResource).num) - } else { - p.Put(r) - } - } - ch <- true -} diff --git a/vendor/github.com/ngaut/pools/vitess_license b/vendor/github.com/ngaut/pools/vitess_license deleted file mode 100644 index 989d02e..0000000 --- a/vendor/github.com/ngaut/pools/vitess_license +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2012, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/ngaut/sync2/atomic.go b/vendor/github.com/ngaut/sync2/atomic.go deleted file mode 100644 index 909f3b1..0000000 --- a/vendor/github.com/ngaut/sync2/atomic.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2013, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "sync" - "sync/atomic" - "time" -) - -type AtomicInt32 int32 - -func (i *AtomicInt32) Add(n int32) int32 { - return atomic.AddInt32((*int32)(i), n) -} - -func (i *AtomicInt32) Set(n int32) { - atomic.StoreInt32((*int32)(i), n) -} - -func (i *AtomicInt32) Get() int32 { - return atomic.LoadInt32((*int32)(i)) -} - -func (i *AtomicInt32) CompareAndSwap(oldval, newval int32) (swapped bool) { - return atomic.CompareAndSwapInt32((*int32)(i), oldval, newval) -} - -type AtomicUint32 uint32 - -func (i *AtomicUint32) Add(n uint32) uint32 { - return atomic.AddUint32((*uint32)(i), n) -} - -func (i *AtomicUint32) Set(n uint32) { - atomic.StoreUint32((*uint32)(i), n) -} - -func (i *AtomicUint32) Get() uint32 { - return atomic.LoadUint32((*uint32)(i)) -} - -func (i *AtomicUint32) CompareAndSwap(oldval, newval uint32) (swapped bool) { - return atomic.CompareAndSwapUint32((*uint32)(i), oldval, newval) -} - -type AtomicInt64 int64 - -func (i *AtomicInt64) Add(n int64) int64 { - return atomic.AddInt64((*int64)(i), n) -} - -func (i *AtomicInt64) Set(n int64) { - atomic.StoreInt64((*int64)(i), n) -} - -func (i *AtomicInt64) Get() int64 { - return atomic.LoadInt64((*int64)(i)) -} - -func (i *AtomicInt64) CompareAndSwap(oldval, newval int64) (swapped bool) { - return atomic.CompareAndSwapInt64((*int64)(i), oldval, newval) -} - -type AtomicDuration int64 - -func (d *AtomicDuration) Add(duration time.Duration) time.Duration { - return time.Duration(atomic.AddInt64((*int64)(d), int64(duration))) -} - -func (d *AtomicDuration) Set(duration time.Duration) { - atomic.StoreInt64((*int64)(d), int64(duration)) -} - -func (d *AtomicDuration) Get() time.Duration { - return time.Duration(atomic.LoadInt64((*int64)(d))) -} - -func (d *AtomicDuration) CompareAndSwap(oldval, newval time.Duration) (swapped bool) { - return atomic.CompareAndSwapInt64((*int64)(d), int64(oldval), int64(newval)) -} - -// AtomicString gives you atomic-style APIs for string, but -// it's only a convenience wrapper that uses a mutex. So, it's -// not as efficient as the rest of the atomic types. -type AtomicString struct { - mu sync.Mutex - str string -} - -func (s *AtomicString) Set(str string) { - s.mu.Lock() - s.str = str - s.mu.Unlock() -} - -func (s *AtomicString) Get() string { - s.mu.Lock() - str := s.str - s.mu.Unlock() - return str -} - -func (s *AtomicString) CompareAndSwap(oldval, newval string) (swqpped bool) { - s.mu.Lock() - defer s.mu.Unlock() - if s.str == oldval { - s.str = newval - return true - } - return false -} diff --git a/vendor/github.com/ngaut/sync2/atomic_test.go b/vendor/github.com/ngaut/sync2/atomic_test.go deleted file mode 100644 index 7261159..0000000 --- a/vendor/github.com/ngaut/sync2/atomic_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2013, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "testing" -) - -func TestAtomicString(t *testing.T) { - var s AtomicString - if s.Get() != "" { - t.Errorf("want empty, got %s", s.Get()) - } - s.Set("a") - if s.Get() != "a" { - t.Errorf("want a, got %s", s.Get()) - } - if s.CompareAndSwap("b", "c") { - t.Errorf("want false, got true") - } - if s.Get() != "a" { - t.Errorf("want a, got %s", s.Get()) - } - if !s.CompareAndSwap("a", "c") { - t.Errorf("want true, got false") - } - if s.Get() != "c" { - t.Errorf("want c, got %s", s.Get()) - } -} diff --git a/vendor/github.com/ngaut/sync2/cond.go b/vendor/github.com/ngaut/sync2/cond.go deleted file mode 100644 index dea11ae..0000000 --- a/vendor/github.com/ngaut/sync2/cond.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2013, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "sync" -) - -// Cond is an alternate implementation of sync.Cond -type Cond struct { - L sync.Locker - sema chan struct{} - waiters AtomicInt64 -} - -func NewCond(l sync.Locker) *Cond { - return &Cond{L: l, sema: make(chan struct{})} -} - -func (c *Cond) Wait() { - c.waiters.Add(1) - c.L.Unlock() - <-c.sema - c.L.Lock() -} - -func (c *Cond) Signal() { - for { - w := c.waiters.Get() - if w == 0 { - return - } - if c.waiters.CompareAndSwap(w, w-1) { - break - } - } - c.sema <- struct{}{} -} - -func (c *Cond) Broadcast() { - var w int64 - for { - w = c.waiters.Get() - if w == 0 { - return - } - if c.waiters.CompareAndSwap(w, 0) { - break - } - } - for i := int64(0); i < w; i++ { - c.sema <- struct{}{} - } -} diff --git a/vendor/github.com/ngaut/sync2/cond_test.go b/vendor/github.com/ngaut/sync2/cond_test.go deleted file mode 100644 index 4dd3929..0000000 --- a/vendor/github.com/ngaut/sync2/cond_test.go +++ /dev/null @@ -1,276 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -package sync2 - -import ( - "fmt" - "runtime" - "sync" - "testing" -) - -func TestCondSignal(t *testing.T) { - var m sync.Mutex - c := NewCond(&m) - n := 2 - running := make(chan bool, n) - awake := make(chan bool, n) - for i := 0; i < n; i++ { - go func() { - m.Lock() - running <- true - c.Wait() - awake <- true - m.Unlock() - }() - } - for i := 0; i < n; i++ { - <-running // Wait for everyone to run. - } - for n > 0 { - select { - case <-awake: - t.Fatal("goroutine not asleep") - default: - } - m.Lock() - c.Signal() - m.Unlock() - <-awake // Will deadlock if no goroutine wakes up - select { - case <-awake: - t.Fatal("too many goroutines awake") - default: - } - n-- - } - c.Signal() -} - -func TestCondSignalGenerations(t *testing.T) { - var m sync.Mutex - c := NewCond(&m) - n := 100 - running := make(chan bool, n) - awake := make(chan int, n) - for i := 0; i < n; i++ { - go func(i int) { - m.Lock() - running <- true - c.Wait() - awake <- i - m.Unlock() - }(i) - if i > 0 { - a := <-awake - if a != i-1 { - t.Fatalf("wrong goroutine woke up: want %d, got %d", i-1, a) - } - } - <-running - m.Lock() - c.Signal() - m.Unlock() - } -} - -func TestCondBroadcast(t *testing.T) { - var m sync.Mutex - c := NewCond(&m) - n := 200 - running := make(chan int, n) - awake := make(chan int, n) - exit := false - for i := 0; i < n; i++ { - go func(g int) { - m.Lock() - for !exit { - running <- g - c.Wait() - awake <- g - } - m.Unlock() - }(i) - } - for i := 0; i < n; i++ { - for i := 0; i < n; i++ { - <-running // Will deadlock unless n are running. - } - if i == n-1 { - m.Lock() - exit = true - m.Unlock() - } - select { - case <-awake: - t.Fatal("goroutine not asleep") - default: - } - m.Lock() - c.Broadcast() - m.Unlock() - seen := make([]bool, n) - for i := 0; i < n; i++ { - g := <-awake - if seen[g] { - t.Fatal("goroutine woke up twice") - } - seen[g] = true - } - } - select { - case <-running: - t.Fatal("goroutine did not exit") - default: - } - c.Broadcast() -} - -func TestRace(t *testing.T) { - x := 0 - c := NewCond(&sync.Mutex{}) - done := make(chan bool) - go func() { - c.L.Lock() - x = 1 - c.Wait() - if x != 2 { - t.Fatal("want 2") - } - x = 3 - c.Signal() - c.L.Unlock() - done <- true - }() - go func() { - c.L.Lock() - for { - if x == 1 { - x = 2 - c.Signal() - break - } - c.L.Unlock() - runtime.Gosched() - c.L.Lock() - } - c.L.Unlock() - done <- true - }() - go func() { - c.L.Lock() - for { - if x == 2 { - c.Wait() - if x != 3 { - t.Fatal("want 3") - } - break - } - if x == 3 { - break - } - c.L.Unlock() - runtime.Gosched() - c.L.Lock() - } - c.L.Unlock() - done <- true - }() - <-done - <-done - <-done -} - -// Bench: Rename this function to TestBench for running benchmarks -func Bench(t *testing.T) { - waitvals := []int{1, 2, 4, 8} - maxprocs := []int{1, 2, 4} - fmt.Printf("procs\twaiters\told\tnew\tdelta\n") - for _, procs := range maxprocs { - runtime.GOMAXPROCS(procs) - for _, waiters := range waitvals { - oldbench := func(b *testing.B) { - benchmarkCond(b, waiters) - } - oldbr := testing.Benchmark(oldbench) - newbench := func(b *testing.B) { - benchmarkCond2(b, waiters) - } - newbr := testing.Benchmark(newbench) - oldns := oldbr.NsPerOp() - newns := newbr.NsPerOp() - percent := float64(newns-oldns) * 100.0 / float64(oldns) - fmt.Printf("%d\t%d\t%d\t%d\t%6.2f%%\n", procs, waiters, oldns, newns, percent) - } - } -} - -func benchmarkCond2(b *testing.B, waiters int) { - c := NewCond(&sync.Mutex{}) - done := make(chan bool) - id := 0 - - for routine := 0; routine < waiters+1; routine++ { - go func() { - for i := 0; i < b.N; i++ { - c.L.Lock() - if id == -1 { - c.L.Unlock() - break - } - id++ - if id == waiters+1 { - id = 0 - c.Broadcast() - } else { - c.Wait() - } - c.L.Unlock() - } - c.L.Lock() - id = -1 - c.Broadcast() - c.L.Unlock() - done <- true - }() - } - for routine := 0; routine < waiters+1; routine++ { - <-done - } -} - -func benchmarkCond(b *testing.B, waiters int) { - c := sync.NewCond(&sync.Mutex{}) - done := make(chan bool) - id := 0 - - for routine := 0; routine < waiters+1; routine++ { - go func() { - for i := 0; i < b.N; i++ { - c.L.Lock() - if id == -1 { - c.L.Unlock() - break - } - id++ - if id == waiters+1 { - id = 0 - c.Broadcast() - } else { - c.Wait() - } - c.L.Unlock() - } - c.L.Lock() - id = -1 - c.Broadcast() - c.L.Unlock() - done <- true - }() - } - for routine := 0; routine < waiters+1; routine++ { - <-done - } -} diff --git a/vendor/github.com/ngaut/sync2/semaphore.go b/vendor/github.com/ngaut/sync2/semaphore.go deleted file mode 100644 index 190a27d..0000000 --- a/vendor/github.com/ngaut/sync2/semaphore.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -// What's in a name? Channels have all you need to emulate a counting -// semaphore with a boatload of extra functionality. However, in some -// cases, you just want a familiar API. - -import ( - "time" -) - -// Semaphore is a counting semaphore with the option to -// specify a timeout. -type Semaphore struct { - slots chan struct{} - timeout time.Duration -} - -// NewSemaphore creates a Semaphore. The count parameter must be a positive -// number. A timeout of zero means that there is no timeout. -func NewSemaphore(count int, timeout time.Duration) *Semaphore { - sem := &Semaphore{ - slots: make(chan struct{}, count), - timeout: timeout, - } - for i := 0; i < count; i++ { - sem.slots <- struct{}{} - } - return sem -} - -// Acquire returns true on successful acquisition, and -// false on a timeout. -func (sem *Semaphore) Acquire() bool { - if sem.timeout == 0 { - <-sem.slots - return true - } - select { - case <-sem.slots: - return true - case <-time.After(sem.timeout): - return false - } -} - -// Release releases the acquired semaphore. You must -// not release more than the number of semaphores you've -// acquired. -func (sem *Semaphore) Release() { - sem.slots <- struct{}{} -} diff --git a/vendor/github.com/ngaut/sync2/semaphore_test.go b/vendor/github.com/ngaut/sync2/semaphore_test.go deleted file mode 100644 index 207c8f9..0000000 --- a/vendor/github.com/ngaut/sync2/semaphore_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "testing" - "time" -) - -func TestSemaNoTimeout(t *testing.T) { - s := NewSemaphore(1, 0) - s.Acquire() - released := false - go func() { - time.Sleep(10 * time.Millisecond) - released = true - s.Release() - }() - s.Acquire() - if !released { - t.Errorf("want true, got false") - } -} - -func TestSemaTimeout(t *testing.T) { - s := NewSemaphore(1, 5*time.Millisecond) - s.Acquire() - go func() { - time.Sleep(10 * time.Millisecond) - s.Release() - }() - if ok := s.Acquire(); ok { - t.Errorf("want false, got true") - } - time.Sleep(10 * time.Millisecond) - if ok := s.Acquire(); !ok { - t.Errorf("want true, got false") - } -} diff --git a/vendor/github.com/ngaut/sync2/service_manager.go b/vendor/github.com/ngaut/sync2/service_manager.go deleted file mode 100644 index 4b85e01..0000000 --- a/vendor/github.com/ngaut/sync2/service_manager.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2013, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "sync" -) - -// These are the three predefined states of a service. -const ( - SERVICE_STOPPED = iota - SERVICE_RUNNING - SERVICE_SHUTTING_DOWN -) - -var stateNames = []string{ - "Stopped", - "Running", - "ShuttingDown", -} - -// ServiceManager manages the state of a service through its lifecycle. -type ServiceManager struct { - mu sync.Mutex - wg sync.WaitGroup - err error // err is the error returned from the service function. - state AtomicInt64 - // shutdown is created when the service starts and is closed when the service - // enters the SERVICE_SHUTTING_DOWN state. - shutdown chan struct{} -} - -// Go tries to change the state from SERVICE_STOPPED to SERVICE_RUNNING. -// -// If the current state is not SERVICE_STOPPED (already running), it returns -// false immediately. -// -// On successful transition, it launches the service as a goroutine and returns -// true. The service function is responsible for returning on its own when -// requested, either by regularly checking svc.IsRunning(), or by waiting for -// the svc.ShuttingDown channel to be closed. -// -// When the service func returns, the state is reverted to SERVICE_STOPPED. -func (svm *ServiceManager) Go(service func(svc *ServiceContext) error) bool { - svm.mu.Lock() - defer svm.mu.Unlock() - if !svm.state.CompareAndSwap(SERVICE_STOPPED, SERVICE_RUNNING) { - return false - } - svm.wg.Add(1) - svm.err = nil - svm.shutdown = make(chan struct{}) - go func() { - svm.err = service(&ServiceContext{ShuttingDown: svm.shutdown}) - svm.state.Set(SERVICE_STOPPED) - svm.wg.Done() - }() - return true -} - -// Stop tries to change the state from SERVICE_RUNNING to SERVICE_SHUTTING_DOWN. -// If the current state is not SERVICE_RUNNING, it returns false immediately. -// On successul transition, it waits for the service to finish, and returns true. -// You are allowed to Go() again after a Stop(). -func (svm *ServiceManager) Stop() bool { - svm.mu.Lock() - defer svm.mu.Unlock() - if !svm.state.CompareAndSwap(SERVICE_RUNNING, SERVICE_SHUTTING_DOWN) { - return false - } - // Signal the service that we've transitioned to SERVICE_SHUTTING_DOWN. - close(svm.shutdown) - svm.shutdown = nil - svm.wg.Wait() - return true -} - -// Wait waits for the service to terminate if it's currently running. -func (svm *ServiceManager) Wait() { - svm.wg.Wait() -} - -// Join waits for the service to terminate and returns the value returned by the -// service function. -func (svm *ServiceManager) Join() error { - svm.wg.Wait() - return svm.err -} - -// State returns the current state of the service. -// This should only be used to report the current state. -func (svm *ServiceManager) State() int64 { - return svm.state.Get() -} - -// StateName returns the name of the current state. -func (svm *ServiceManager) StateName() string { - return stateNames[svm.State()] -} - -// ServiceContext is passed into the service function to give it access to -// information about the running service. -type ServiceContext struct { - // ShuttingDown is a channel that the service can select on to be notified - // when it should shut down. The channel is closed when the state transitions - // from SERVICE_RUNNING to SERVICE_SHUTTING_DOWN. - ShuttingDown chan struct{} -} - -// IsRunning returns true if the ServiceContext.ShuttingDown channel has not -// been closed yet. -func (svc *ServiceContext) IsRunning() bool { - select { - case <-svc.ShuttingDown: - return false - default: - return true - } -} diff --git a/vendor/github.com/ngaut/sync2/service_manager_test.go b/vendor/github.com/ngaut/sync2/service_manager_test.go deleted file mode 100644 index a41912e..0000000 --- a/vendor/github.com/ngaut/sync2/service_manager_test.go +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2013, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "fmt" - "testing" - "time" -) - -type testService struct { - activated AtomicInt64 - t *testing.T -} - -func (ts *testService) service(svc *ServiceContext) error { - if !ts.activated.CompareAndSwap(0, 1) { - ts.t.Fatalf("service called more than once") - } - for svc.IsRunning() { - time.Sleep(10 * time.Millisecond) - - } - if !ts.activated.CompareAndSwap(1, 0) { - ts.t.Fatalf("service ended more than once") - } - return nil -} - -func (ts *testService) selectService(svc *ServiceContext) error { - if !ts.activated.CompareAndSwap(0, 1) { - ts.t.Fatalf("service called more than once") - } -serviceLoop: - for svc.IsRunning() { - select { - case <-time.After(1 * time.Second): - ts.t.Errorf("service didn't stop when shutdown channel was closed") - case <-svc.ShuttingDown: - break serviceLoop - } - } - if !ts.activated.CompareAndSwap(1, 0) { - ts.t.Fatalf("service ended more than once") - } - return nil -} - -func TestServiceManager(t *testing.T) { - ts := &testService{t: t} - var sm ServiceManager - if sm.StateName() != "Stopped" { - t.Errorf("want Stopped, got %s", sm.StateName()) - } - result := sm.Go(ts.service) - if !result { - t.Errorf("want true, got false") - } - if sm.StateName() != "Running" { - t.Errorf("want Running, got %s", sm.StateName()) - } - time.Sleep(5 * time.Millisecond) - if val := ts.activated.Get(); val != 1 { - t.Errorf("want 1, got %d", val) - } - result = sm.Go(ts.service) - if result { - t.Errorf("want false, got true") - } - result = sm.Stop() - if !result { - t.Errorf("want true, got false") - } - if val := ts.activated.Get(); val != 0 { - t.Errorf("want 0, got %d", val) - } - result = sm.Stop() - if result { - t.Errorf("want false, got true") - } - sm.state.Set(SERVICE_SHUTTING_DOWN) - if sm.StateName() != "ShuttingDown" { - t.Errorf("want ShuttingDown, got %s", sm.StateName()) - } -} - -func TestServiceManagerSelect(t *testing.T) { - ts := &testService{t: t} - var sm ServiceManager - if sm.StateName() != "Stopped" { - t.Errorf("want Stopped, got %s", sm.StateName()) - } - result := sm.Go(ts.selectService) - if !result { - t.Errorf("want true, got false") - } - if sm.StateName() != "Running" { - t.Errorf("want Running, got %s", sm.StateName()) - } - time.Sleep(5 * time.Millisecond) - if val := ts.activated.Get(); val != 1 { - t.Errorf("want 1, got %d", val) - } - result = sm.Go(ts.service) - if result { - t.Errorf("want false, got true") - } - result = sm.Stop() - if !result { - t.Errorf("want true, got false") - } - if val := ts.activated.Get(); val != 0 { - t.Errorf("want 0, got %d", val) - } - result = sm.Stop() - if result { - t.Errorf("want false, got true") - } - sm.state.Set(SERVICE_SHUTTING_DOWN) - if sm.StateName() != "ShuttingDown" { - t.Errorf("want ShuttingDown, got %s", sm.StateName()) - } -} - -func TestServiceManagerWaitNotRunning(t *testing.T) { - done := make(chan struct{}) - var sm ServiceManager - go func() { - sm.Wait() - close(done) - }() - select { - case <-done: - case <-time.After(1 * time.Second): - t.Errorf("Wait() blocked even though service wasn't running.") - } -} - -func TestServiceManagerWait(t *testing.T) { - done := make(chan struct{}) - stop := make(chan struct{}) - var sm ServiceManager - sm.Go(func(*ServiceContext) error { - <-stop - return nil - }) - go func() { - sm.Wait() - close(done) - }() - time.Sleep(100 * time.Millisecond) - select { - case <-done: - t.Errorf("Wait() didn't block while service was still running.") - default: - } - close(stop) - select { - case <-done: - case <-time.After(100 * time.Millisecond): - t.Errorf("Wait() didn't unblock when service stopped.") - } -} - -func TestServiceManagerJoin(t *testing.T) { - want := "error 123" - var sm ServiceManager - sm.Go(func(*ServiceContext) error { - return fmt.Errorf("error 123") - }) - if got := sm.Join().Error(); got != want { - t.Errorf("Join().Error() = %#v, want %#v", got, want) - } -} diff --git a/vendor/github.com/ngaut/sync2/vitess_license b/vendor/github.com/ngaut/sync2/vitess_license deleted file mode 100644 index 989d02e..0000000 --- a/vendor/github.com/ngaut/sync2/vitess_license +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2012, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/ngaut/systimemon/LICENSE b/vendor/github.com/ngaut/systimemon/LICENSE deleted file mode 100644 index 8dada3e..0000000 --- a/vendor/github.com/ngaut/systimemon/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/ngaut/systimemon/README.md b/vendor/github.com/ngaut/systimemon/README.md deleted file mode 100644 index 39e3630..0000000 --- a/vendor/github.com/ngaut/systimemon/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# systimemon -System time monitor diff --git a/vendor/github.com/ngaut/systimemon/systime_mon.go b/vendor/github.com/ngaut/systimemon/systime_mon.go deleted file mode 100644 index 0d3defe..0000000 --- a/vendor/github.com/ngaut/systimemon/systime_mon.go +++ /dev/null @@ -1,24 +0,0 @@ -package systimemon - -import ( - "time" - - "github.com/ngaut/log" -) - -// StartMonitor will call systimeErrHandler if system time jump backward. -func StartMonitor(now func() time.Time, systimeErrHandler func()) { - log.Info("start system time monitor") - tick := time.NewTicker(100 * time.Millisecond) - defer tick.Stop() - for { - last := now() - select { - case <-tick.C: - if now().Sub(last) < 0 { - log.Errorf("system time jump backward, last:%v", last) - systimeErrHandler() - } - } - } -} diff --git a/vendor/github.com/ngaut/systimemon/systime_mon_test.go b/vendor/github.com/ngaut/systimemon/systime_mon_test.go deleted file mode 100644 index 3f6dc1b..0000000 --- a/vendor/github.com/ngaut/systimemon/systime_mon_test.go +++ /dev/null @@ -1,28 +0,0 @@ -package systimemon - -import ( - "testing" - "time" -) - -func TestSystimeMonitor(t *testing.T) { - jumpForward := false - trigged := false - go StartMonitor( - func() time.Time { - if !trigged { - trigged = true - return time.Now() - } - - return time.Now().Add(-2 * time.Second) - }, func() { - jumpForward = true - }) - - time.Sleep(1 * time.Second) - - if !jumpForward { - t.Error("should detect time error") - } -} diff --git a/vendor/github.com/outbrain/golib/log/log.go b/vendor/github.com/outbrain/golib/log/log.go deleted file mode 100644 index d3e9c59..0000000 --- a/vendor/github.com/outbrain/golib/log/log.go +++ /dev/null @@ -1,258 +0,0 @@ -/* - Copyright 2014 Outbrain Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package log - -import ( - "errors" - "fmt" - "log/syslog" - "os" - "runtime/debug" - "time" -) - -// LogLevel indicates the severity of a log entry -type LogLevel int - -func (this LogLevel) String() string { - switch this { - case FATAL: - return "FATAL" - case CRITICAL: - return "CRITICAL" - case ERROR: - return "ERROR" - case WARNING: - return "WARNING" - case NOTICE: - return "NOTICE" - case INFO: - return "INFO" - case DEBUG: - return "DEBUG" - } - return "unknown" -} - -func LogLevelFromString(logLevelName string) (LogLevel, error) { - switch logLevelName { - case "FATAL": - return FATAL, nil - case "CRITICAL": - return CRITICAL, nil - case "ERROR": - return ERROR, nil - case "WARNING": - return WARNING, nil - case "NOTICE": - return NOTICE, nil - case "INFO": - return INFO, nil - case "DEBUG": - return DEBUG, nil - } - return 0, fmt.Errorf("Unknown LogLevel name: %+v", logLevelName) -} - -const ( - FATAL LogLevel = iota - CRITICAL - ERROR - WARNING - NOTICE - INFO - DEBUG -) - -const TimeFormat = "2006-01-02 15:04:05" - -// globalLogLevel indicates the global level filter for all logs (only entries with level equals or higher -// than this value will be logged) -var globalLogLevel LogLevel = DEBUG -var printStackTrace bool = false - -// syslogWriter is optional, and defaults to nil (disabled) -var syslogLevel LogLevel = ERROR -var syslogWriter *syslog.Writer - -// SetPrintStackTrace enables/disables dumping the stack upon error logging -func SetPrintStackTrace(shouldPrintStackTrace bool) { - printStackTrace = shouldPrintStackTrace -} - -// SetLevel sets the global log level. Only entries with level equals or higher than -// this value will be logged -func SetLevel(logLevel LogLevel) { - globalLogLevel = logLevel -} - -// GetLevel returns current global log level -func GetLevel() LogLevel { - return globalLogLevel -} - -// EnableSyslogWriter enables, if possible, writes to syslog. These will execute _in addition_ to normal logging -func EnableSyslogWriter(tag string) (err error) { - syslogWriter, err = syslog.New(syslog.LOG_ERR, tag) - if err != nil { - syslogWriter = nil - } - return err -} - -// SetSyslogLevel sets the minimal syslog level. Only entries with level equals or higher than -// this value will be logged. However, this is also capped by the global log level. That is, -// messages with lower level than global-log-level will be discarded at any case. -func SetSyslogLevel(logLevel LogLevel) { - syslogLevel = logLevel -} - -// logFormattedEntry nicely formats and emits a log entry -func logFormattedEntry(logLevel LogLevel, message string, args ...interface{}) string { - if logLevel > globalLogLevel { - return "" - } - msgArgs := fmt.Sprintf(message, args...) - entryString := fmt.Sprintf("%s %s %s", time.Now().Format(TimeFormat), logLevel, msgArgs) - fmt.Fprintln(os.Stderr, entryString) - - if syslogWriter != nil { - go func() error { - if logLevel > syslogLevel { - return nil - } - switch logLevel { - case FATAL: - return syslogWriter.Emerg(msgArgs) - case CRITICAL: - return syslogWriter.Crit(msgArgs) - case ERROR: - return syslogWriter.Err(msgArgs) - case WARNING: - return syslogWriter.Warning(msgArgs) - case NOTICE: - return syslogWriter.Notice(msgArgs) - case INFO: - return syslogWriter.Info(msgArgs) - case DEBUG: - return syslogWriter.Debug(msgArgs) - } - return nil - }() - } - return entryString -} - -// logEntry emits a formatted log entry -func logEntry(logLevel LogLevel, message string, args ...interface{}) string { - entryString := message - for _, s := range args { - entryString += fmt.Sprintf(" %s", s) - } - return logFormattedEntry(logLevel, entryString) -} - -// logErrorEntry emits a log entry based on given error object -func logErrorEntry(logLevel LogLevel, err error) error { - if err == nil { - // No error - return nil - } - entryString := fmt.Sprintf("%+v", err) - logEntry(logLevel, entryString) - if printStackTrace { - debug.PrintStack() - } - return err -} - -func Debug(message string, args ...interface{}) string { - return logEntry(DEBUG, message, args...) -} - -func Debugf(message string, args ...interface{}) string { - return logFormattedEntry(DEBUG, message, args...) -} - -func Info(message string, args ...interface{}) string { - return logEntry(INFO, message, args...) -} - -func Infof(message string, args ...interface{}) string { - return logFormattedEntry(INFO, message, args...) -} - -func Notice(message string, args ...interface{}) string { - return logEntry(NOTICE, message, args...) -} - -func Noticef(message string, args ...interface{}) string { - return logFormattedEntry(NOTICE, message, args...) -} - -func Warning(message string, args ...interface{}) error { - return errors.New(logEntry(WARNING, message, args...)) -} - -func Warningf(message string, args ...interface{}) error { - return errors.New(logFormattedEntry(WARNING, message, args...)) -} - -func Error(message string, args ...interface{}) error { - return errors.New(logEntry(ERROR, message, args...)) -} - -func Errorf(message string, args ...interface{}) error { - return errors.New(logFormattedEntry(ERROR, message, args...)) -} - -func Errore(err error) error { - return logErrorEntry(ERROR, err) -} - -func Critical(message string, args ...interface{}) error { - return errors.New(logEntry(CRITICAL, message, args...)) -} - -func Criticalf(message string, args ...interface{}) error { - return errors.New(logFormattedEntry(CRITICAL, message, args...)) -} - -func Criticale(err error) error { - return logErrorEntry(CRITICAL, err) -} - -// Fatal emits a FATAL level entry and exists the program -func Fatal(message string, args ...interface{}) error { - logEntry(FATAL, message, args...) - os.Exit(1) - return errors.New(logEntry(CRITICAL, message, args...)) -} - -// Fatalf emits a FATAL level entry and exists the program -func Fatalf(message string, args ...interface{}) error { - logFormattedEntry(FATAL, message, args...) - os.Exit(1) - return errors.New(logFormattedEntry(CRITICAL, message, args...)) -} - -// Fatale emits a FATAL level entry and exists the program -func Fatale(err error) error { - logErrorEntry(FATAL, err) - os.Exit(1) - return err -} diff --git a/vendor/github.com/outbrain/golib/sqlutils/sqlutils.go b/vendor/github.com/outbrain/golib/sqlutils/sqlutils.go deleted file mode 100644 index 8d98690..0000000 --- a/vendor/github.com/outbrain/golib/sqlutils/sqlutils.go +++ /dev/null @@ -1,333 +0,0 @@ -/* - Copyright 2014 Outbrain Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package sqlutils - -import ( - "database/sql" - "encoding/json" - "errors" - "fmt" - _ "github.com/go-sql-driver/mysql" - "github.com/outbrain/golib/log" - "strconv" - "strings" - "sync" -) - -// RowMap represents one row in a result set. Its objective is to allow -// for easy, typed getters by column name. -type RowMap map[string]CellData - -// Cell data is the result of a single (atomic) column in a single row -type CellData sql.NullString - -func (this *CellData) MarshalJSON() ([]byte, error) { - if this.Valid { - return json.Marshal(this.String) - } else { - return json.Marshal(nil) - } -} - -func (this *CellData) NullString() *sql.NullString { - return (*sql.NullString)(this) -} - -// RowData is the result of a single row, in positioned array format -type RowData []CellData - -// MarshalJSON will marshal this map as JSON -func (this *RowData) MarshalJSON() ([]byte, error) { - cells := make([](*CellData), len(*this), len(*this)) - for i, val := range *this { - d := CellData(val) - cells[i] = &d - } - return json.Marshal(cells) -} - -// ResultData is an ordered row set of RowData -type ResultData []RowData - -var EmptyResultData = ResultData{} - -func (this *RowMap) GetString(key string) string { - return (*this)[key].String -} - -// GetStringD returns a string from the map, or a default value if the key does not exist -func (this *RowMap) GetStringD(key string, def string) string { - if cell, ok := (*this)[key]; ok { - return cell.String - } - return def -} - -func (this *RowMap) GetInt64(key string) int64 { - res, _ := strconv.ParseInt(this.GetString(key), 10, 0) - return res -} - -func (this *RowMap) GetNullInt64(key string) sql.NullInt64 { - i, err := strconv.ParseInt(this.GetString(key), 10, 0) - if err == nil { - return sql.NullInt64{Int64: i, Valid: true} - } else { - return sql.NullInt64{Valid: false} - } -} - -func (this *RowMap) GetInt(key string) int { - res, _ := strconv.Atoi(this.GetString(key)) - return res -} - -func (this *RowMap) GetIntD(key string, def int) int { - res, err := strconv.Atoi(this.GetString(key)) - if err != nil { - return def - } - return res -} - -func (this *RowMap) GetUint(key string) uint { - res, _ := strconv.Atoi(this.GetString(key)) - return uint(res) -} - -func (this *RowMap) GetUintD(key string, def uint) uint { - res, err := strconv.Atoi(this.GetString(key)) - if err != nil { - return def - } - return uint(res) -} - -func (this *RowMap) GetBool(key string) bool { - return this.GetInt(key) != 0 -} - -// knownDBs is a DB cache by uri -var knownDBs map[string]*sql.DB = make(map[string]*sql.DB) -var knownDBsMutex = &sync.Mutex{} - -// GetDB returns a DB instance based on uri. -// bool result indicates whether the DB was returned from cache; err -func GetDB(mysql_uri string) (*sql.DB, bool, error) { - knownDBsMutex.Lock() - defer func() { - knownDBsMutex.Unlock() - }() - - var exists bool - if _, exists = knownDBs[mysql_uri]; !exists { - if db, err := sql.Open("mysql", mysql_uri); err == nil { - knownDBs[mysql_uri] = db - } else { - return db, exists, err - } - } - return knownDBs[mysql_uri], exists, nil -} - -// RowToArray is a convenience function, typically not called directly, which maps a -// single read database row into a NullString -func RowToArray(rows *sql.Rows, columns []string) []CellData { - buff := make([]interface{}, len(columns)) - data := make([]CellData, len(columns)) - for i, _ := range buff { - buff[i] = data[i].NullString() - } - rows.Scan(buff...) - return data -} - -// ScanRowsToArrays is a convenience function, typically not called directly, which maps rows -// already read from the databse into arrays of NullString -func ScanRowsToArrays(rows *sql.Rows, on_row func([]CellData) error) error { - columns, _ := rows.Columns() - for rows.Next() { - arr := RowToArray(rows, columns) - err := on_row(arr) - if err != nil { - return err - } - } - return nil -} - -func rowToMap(row []CellData, columns []string) map[string]CellData { - m := make(map[string]CellData) - for k, data_col := range row { - m[columns[k]] = data_col - } - return m -} - -// ScanRowsToMaps is a convenience function, typically not called directly, which maps rows -// already read from the databse into RowMap entries. -func ScanRowsToMaps(rows *sql.Rows, on_row func(RowMap) error) error { - columns, _ := rows.Columns() - err := ScanRowsToArrays(rows, func(arr []CellData) error { - m := rowToMap(arr, columns) - err := on_row(m) - if err != nil { - return err - } - return nil - }) - return err -} - -// QueryRowsMap is a convenience function allowing querying a result set while poviding a callback -// function activated per read row. -func QueryRowsMap(db *sql.DB, query string, on_row func(RowMap) error, args ...interface{}) error { - var err error - defer func() { - if derr := recover(); derr != nil { - err = errors.New(fmt.Sprintf("QueryRowsMap unexpected error: %+v", derr)) - } - }() - - rows, err := db.Query(query, args...) - defer rows.Close() - if err != nil && err != sql.ErrNoRows { - return log.Errore(err) - } - err = ScanRowsToMaps(rows, on_row) - return err -} - -// queryResultData returns a raw array of rows for a given query, optionally reading and returning column names -func queryResultData(db *sql.DB, query string, retrieveColumns bool, args ...interface{}) (ResultData, []string, error) { - var err error - defer func() { - if derr := recover(); derr != nil { - err = errors.New(fmt.Sprintf("QueryRowsMap unexpected error: %+v", derr)) - } - }() - - columns := []string{} - rows, err := db.Query(query, args...) - defer rows.Close() - if err != nil && err != sql.ErrNoRows { - return EmptyResultData, columns, log.Errore(err) - } - if retrieveColumns { - // Don't pay if you don't want to - columns, _ = rows.Columns() - } - resultData := ResultData{} - err = ScanRowsToArrays(rows, func(rowData []CellData) error { - resultData = append(resultData, rowData) - return nil - }) - return resultData, columns, err -} - -// QueryResultData returns a raw array of rows -func QueryResultData(db *sql.DB, query string, args ...interface{}) (ResultData, error) { - resultData, _, err := queryResultData(db, query, false, args...) - return resultData, err -} - -// QueryResultDataNamed returns a raw array of rows, with column names -func QueryResultDataNamed(db *sql.DB, query string, args ...interface{}) (ResultData, []string, error) { - return queryResultData(db, query, true, args...) -} - -// QueryRowsMapBuffered reads data from the database into a buffer, and only then applies the given function per row. -// This allows the application to take its time with processing the data, albeit consuming as much memory as required by -// the result set. -func QueryRowsMapBuffered(db *sql.DB, query string, on_row func(RowMap) error, args ...interface{}) error { - resultData, columns, err := queryResultData(db, query, true, args...) - if err != nil { - // Already logged - return err - } - for _, row := range resultData { - err = on_row(rowToMap(row, columns)) - if err != nil { - return err - } - } - return nil -} - -// ExecNoPrepare executes given query using given args on given DB, without using prepared statements. -func ExecNoPrepare(db *sql.DB, query string, args ...interface{}) (sql.Result, error) { - var err error - defer func() { - if derr := recover(); derr != nil { - err = errors.New(fmt.Sprintf("ExecNoPrepare unexpected error: %+v", derr)) - } - }() - - var res sql.Result - res, err = db.Exec(query, args...) - if err != nil { - log.Errore(err) - } - return res, err -} - -// ExecQuery executes given query using given args on given DB. It will safele prepare, execute and close -// the statement. -func execInternal(silent bool, db *sql.DB, query string, args ...interface{}) (sql.Result, error) { - var err error - defer func() { - if derr := recover(); derr != nil { - err = errors.New(fmt.Sprintf("execInternal unexpected error: %+v", derr)) - } - }() - - stmt, err := db.Prepare(query) - if err != nil { - return nil, err - } - defer stmt.Close() - var res sql.Result - res, err = stmt.Exec(args...) - if err != nil && !silent { - log.Errore(err) - } - return res, err -} - -// Exec executes given query using given args on given DB. It will safele prepare, execute and close -// the statement. -func Exec(db *sql.DB, query string, args ...interface{}) (sql.Result, error) { - return execInternal(false, db, query, args...) -} - -// ExecSilently acts like Exec but does not report any error -func ExecSilently(db *sql.DB, query string, args ...interface{}) (sql.Result, error) { - return execInternal(true, db, query, args...) -} - -func InClauseStringValues(terms []string) string { - quoted := []string{} - for _, s := range terms { - quoted = append(quoted, fmt.Sprintf("'%s'", strings.Replace(s, ",", "''", -1))) - } - return strings.Join(quoted, ", ") -} - -// Convert variable length arguments into arguments array -func Args(args ...interface{}) []interface{} { - return args -} diff --git a/vendor/github.com/outbrain/golib/tests/spec.go b/vendor/github.com/outbrain/golib/tests/spec.go deleted file mode 100644 index 27b15b6..0000000 --- a/vendor/github.com/outbrain/golib/tests/spec.go +++ /dev/null @@ -1,76 +0,0 @@ -package tests - -import ( - "testing" -) - -// Spec is an access point to test Expections -type Spec struct { - t *testing.T -} - -// S generates a spec. You will want to use it once in a test file, once in a test or once per each check -func S(t *testing.T) *Spec { - return &Spec{t: t} -} - -// ExpectNil expects given value to be nil, or errors -func (spec *Spec) ExpectNil(actual interface{}) { - if actual == nil { - return - } - spec.t.Errorf("Expected %+v to be nil", actual) -} - -// ExpectNotNil expects given value to be not nil, or errors -func (spec *Spec) ExpectNotNil(actual interface{}) { - if actual != nil { - return - } - spec.t.Errorf("Expected %+v to be not nil", actual) -} - -// ExpectEquals expects given values to be equal (comparison via `==`), or errors -func (spec *Spec) ExpectEquals(actual, value interface{}) { - if actual == value { - return - } - spec.t.Errorf("Expected %+v, got %+v", value, actual) -} - -// ExpectNotEquals expects given values to be nonequal (comparison via `==`), or errors -func (spec *Spec) ExpectNotEquals(actual, value interface{}) { - if !(actual == value) { - return - } - spec.t.Errorf("Expected not %+v", value) -} - -// ExpectEqualsAny expects given actual to equal (comparison via `==`) at least one of given values, or errors -func (spec *Spec) ExpectEqualsAny(actual interface{}, values ...interface{}) { - for _, value := range values { - if actual == value { - return - } - } - spec.t.Errorf("Expected %+v to equal any of given values", actual) -} - -// ExpectNotEqualsAny expects given actual to be nonequal (comparison via `==`)tp any of given values, or errors -func (spec *Spec) ExpectNotEqualsAny(actual interface{}, values ...interface{}) { - for _, value := range values { - if actual == value { - spec.t.Errorf("Expected not %+v", value) - } - } -} - -// ExpectFalse expects given values to be false, or errors -func (spec *Spec) ExpectFalse(actual interface{}) { - spec.ExpectEquals(actual, false) -} - -// ExpectTrue expects given values to be true, or errors -func (spec *Spec) ExpectTrue(actual interface{}) { - spec.ExpectEquals(actual, true) -} diff --git a/vendor/github.com/satori/go.uuid/.travis.yml b/vendor/github.com/satori/go.uuid/.travis.yml deleted file mode 100644 index 56ab36c..0000000 --- a/vendor/github.com/satori/go.uuid/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: go -go: - - 1.0 - - 1.1 - - 1.2 - - 1.3 -notifications: - email: false diff --git a/vendor/github.com/satori/go.uuid/LICENSE b/vendor/github.com/satori/go.uuid/LICENSE deleted file mode 100644 index e085b25..0000000 --- a/vendor/github.com/satori/go.uuid/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (C) 2013-2014 by Maxim Bublis - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/satori/go.uuid/README.md b/vendor/github.com/satori/go.uuid/README.md deleted file mode 100644 index a863495..0000000 --- a/vendor/github.com/satori/go.uuid/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# UUID package for Go language - -[![Build Status](https://travis-ci.org/satori/go.uuid.png?branch=master)](https://travis-ci.org/satori/go.uuid) -[![GoDoc](http://godoc.org/github.com/satori/go.uuid?status.png)](http://godoc.org/github.com/satori/go.uuid) - -This package provides pure Go implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs. - -With 100% test coverage and benchmarks out of box. - -Supported versions: -* Version 1, based on timestamp and MAC address (RFC 4122) -* Version 2, based on timestamp, MAC address and POSIX UID/GID (DCE 1.1) -* Version 3, based on MD5 hashing (RFC 4122) -* Version 4, based on random numbers (RFC 4122) -* Version 5, based on SHA-1 hashing (RFC 4122) - -## Installation - -Use the `go` command: - - $ go get github.com/satori/go.uuid - -## Requirements - -UUID package requires any stable version of Go Programming Language. - -It is tested against following versions of Go: 1.0, 1.1, 1.2 - -## Example - -```go -package main - -import ( - "fmt" - "github.com/satori/go.uuid" -) - -func main() { - // Creating UUID Version 4 - u1 := uuid.NewV4() - fmt.Printf("UUIDv4: %s\n", u1) - - // Parsing UUID from string input - u2, err := uuid.FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - if err != nil { - fmt.Printf("Something gone wrong: %s", err) - } - fmt.Printf("Successfully parsed: %s", u2) -} -``` - -## Documentation - -[Documentation](http://godoc.org/github.com/satori/go.uuid) is hosted at GoDoc project. - -## Links -* [RFC 4122](http://tools.ietf.org/html/rfc4122) -* [DCE 1.1: Authentication and Security Services](http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01) - -## Copyright - -Copyright (C) 2013-2014 by Maxim Bublis . - -UUID package released under MIT License. -See [LICENSE](https://github.com/satori/go.uuid/blob/master/LICENSE) for details. diff --git a/vendor/github.com/satori/go.uuid/benchmarks_test.go b/vendor/github.com/satori/go.uuid/benchmarks_test.go deleted file mode 100644 index 6a8bf7e..0000000 --- a/vendor/github.com/satori/go.uuid/benchmarks_test.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (C) 2013-2014 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -package uuid - -import ( - "testing" -) - -func BenchmarkFromBytes(b *testing.B) { - bytes := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - for i := 0; i < b.N; i++ { - FromBytes(bytes) - } -} - -func BenchmarkFromString(b *testing.B) { - s := "6ba7b810-9dad-11d1-80b4-00c04fd430c8" - for i := 0; i < b.N; i++ { - FromString(s) - } -} - -func BenchmarkFromStringUrn(b *testing.B) { - s := "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" - for i := 0; i < b.N; i++ { - FromString(s) - } -} - -func BenchmarkFromStringWithBrackets(b *testing.B) { - s := "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}" - for i := 0; i < b.N; i++ { - FromString(s) - } -} - -func BenchmarkNewV1(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV1() - } -} - -func BenchmarkNewV2(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV2(DomainPerson) - } -} - -func BenchmarkNewV3(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV3(NamespaceDNS, "www.example.com") - } -} - -func BenchmarkNewV4(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV4() - } -} - -func BenchmarkNewV5(b *testing.B) { - for i := 0; i < b.N; i++ { - NewV5(NamespaceDNS, "www.example.com") - } -} - -func BenchmarkMarshalBinary(b *testing.B) { - u := NewV4() - for i := 0; i < b.N; i++ { - u.MarshalBinary() - } -} - -func BenchmarkMarshalText(b *testing.B) { - u := NewV4() - for i := 0; i < b.N; i++ { - u.MarshalText() - } -} - -func BenchmarkUnmarshalBinary(b *testing.B) { - bytes := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - u := UUID{} - for i := 0; i < b.N; i++ { - u.UnmarshalBinary(bytes) - } -} - -func BenchmarkUnmarshalText(b *testing.B) { - bytes := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - u := UUID{} - for i := 0; i < b.N; i++ { - u.UnmarshalText(bytes) - } -} diff --git a/vendor/github.com/satori/go.uuid/uuid.go b/vendor/github.com/satori/go.uuid/uuid.go deleted file mode 100644 index 44a235f..0000000 --- a/vendor/github.com/satori/go.uuid/uuid.go +++ /dev/null @@ -1,361 +0,0 @@ -// Copyright (C) 2013-2014 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// Package uuid provides implementation of Universally Unique Identifier (UUID). -// Supported versions are 1, 3, 4 and 5 (as specified in RFC 4122) and -// version 2 (as specified in DCE 1.1). -package uuid - -import ( - "bytes" - "crypto/md5" - "crypto/rand" - "crypto/sha1" - "encoding/binary" - "encoding/hex" - "fmt" - "hash" - "net" - "os" - "sync" - "time" -) - -// UUID layout variants. -const ( - VariantNCS = iota - VariantRFC4122 - VariantMicrosoft - VariantFuture -) - -// UUID DCE domains. -const ( - DomainPerson = iota - DomainGroup - DomainOrg -) - -// Difference in 100-nanosecond intervals between -// UUID epoch (October 15, 1582) and Unix epoch (January 1, 1970). -const epochStart = 122192928000000000 - -// UUID v1/v2 storage. -var ( - storageMutex sync.Mutex - clockSequence uint16 - lastTime uint64 - hardwareAddr [6]byte - posixUID = uint32(os.Getuid()) - posixGID = uint32(os.Getgid()) -) - -// String parse helpers. -var ( - urnPrefix = []byte("urn:uuid:") - byteGroups = []int{8, 4, 4, 4, 12} -) - -// Epoch calculation function -var epochFunc func() uint64 - -// Initialize storage -func init() { - buf := make([]byte, 2) - rand.Read(buf) - clockSequence = binary.BigEndian.Uint16(buf) - - // Initialize hardwareAddr randomly in case - // of real network interfaces absence - rand.Read(hardwareAddr[:]) - - // Set multicast bit as recommended in RFC 4122 - hardwareAddr[0] |= 0x01 - - interfaces, err := net.Interfaces() - if err == nil { - for _, iface := range interfaces { - if len(iface.HardwareAddr) >= 6 { - copy(hardwareAddr[:], iface.HardwareAddr) - break - } - } - } - epochFunc = unixTimeFunc -} - -// Returns difference in 100-nanosecond intervals between -// UUID epoch (October 15, 1582) and current time. -// This is default epoch calculation function. -func unixTimeFunc() uint64 { - return epochStart + uint64(time.Now().UnixNano()/100) -} - -// UUID representation compliant with specification -// described in RFC 4122. -type UUID [16]byte - -// Predefined namespace UUIDs. -var ( - NamespaceDNS, _ = FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - NamespaceURL, _ = FromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8") - NamespaceOID, _ = FromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8") - NamespaceX500, _ = FromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8") -) - -// And returns result of binary AND of two UUIDs. -func And(u1 UUID, u2 UUID) UUID { - u := UUID{} - for i := 0; i < 16; i++ { - u[i] = u1[i] & u2[i] - } - return u -} - -// Or returns result of binary OR of two UUIDs. -func Or(u1 UUID, u2 UUID) UUID { - u := UUID{} - for i := 0; i < 16; i++ { - u[i] = u1[i] | u2[i] - } - return u -} - -// Equal returns true if u1 and u2 equals, otherwise returns false. -func Equal(u1 UUID, u2 UUID) bool { - return bytes.Equal(u1[:], u2[:]) -} - -// Version returns algorithm version used to generate UUID. -func (u UUID) Version() uint { - return uint(u[6] >> 4) -} - -// Variant returns UUID layout variant. -func (u UUID) Variant() uint { - switch { - case (u[8] & 0x80) == 0x00: - return VariantNCS - case (u[8]&0xc0)|0x80 == 0x80: - return VariantRFC4122 - case (u[8]&0xe0)|0xc0 == 0xc0: - return VariantMicrosoft - } - return VariantFuture -} - -// Bytes returns bytes slice representation of UUID. -func (u UUID) Bytes() []byte { - return u[:] -} - -// Returns canonical string representation of UUID: -// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. -func (u UUID) String() string { - return fmt.Sprintf("%x-%x-%x-%x-%x", - u[:4], u[4:6], u[6:8], u[8:10], u[10:]) -} - -// SetVersion sets version bits. -func (u *UUID) SetVersion(v byte) { - u[6] = (u[6] & 0x0f) | (v << 4) -} - -// SetVariant sets variant bits as described in RFC 4122. -func (u *UUID) SetVariant() { - u[8] = (u[8] & 0xbf) | 0x80 -} - -// MarshalText implements the encoding.TextMarshaler interface. -// The encoding is the same as returned by String. -func (u UUID) MarshalText() (text []byte, err error) { - text = []byte(u.String()) - return -} - -// UnmarshalText implements the encoding.TextUnmarshaler interface. -// Following formats are supported: -// "6ba7b810-9dad-11d1-80b4-00c04fd430c8", -// "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}", -// "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" -func (u *UUID) UnmarshalText(text []byte) (err error) { - if len(text) < 32 { - err = fmt.Errorf("uuid: invalid UUID string: %s", text) - return - } - - if bytes.Equal(text[:9], urnPrefix) { - text = text[9:] - } else if text[0] == '{' { - text = text[1:] - } - - b := u[:] - - for _, byteGroup := range byteGroups { - if text[0] == '-' { - text = text[1:] - } - - _, err = hex.Decode(b[:byteGroup/2], text[:byteGroup]) - - if err != nil { - return - } - - text = text[byteGroup:] - b = b[byteGroup/2:] - } - - return -} - -// MarshalBinary implements the encoding.BinaryMarshaler interface. -func (u UUID) MarshalBinary() (data []byte, err error) { - data = u.Bytes() - return -} - -// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. -// It will return error if the slice isn't 16 bytes long. -func (u *UUID) UnmarshalBinary(data []byte) (err error) { - if len(data) != 16 { - err = fmt.Errorf("uuid: UUID must be exactly 16 bytes long, got %d bytes", len(data)) - return - } - copy(u[:], data) - - return -} - -// FromBytes returns UUID converted from raw byte slice input. -// It will return error if the slice isn't 16 bytes long. -func FromBytes(input []byte) (u UUID, err error) { - err = u.UnmarshalBinary(input) - return -} - -// FromString returns UUID parsed from string input. -// Input is expected in a form accepted by UnmarshalText. -func FromString(input string) (u UUID, err error) { - err = u.UnmarshalText([]byte(input)) - return -} - -// Returns UUID v1/v2 storage state. -// Returns epoch timestamp and clock sequence. -func getStorage() (uint64, uint16) { - storageMutex.Lock() - defer storageMutex.Unlock() - - timeNow := epochFunc() - // Clock changed backwards since last UUID generation. - // Should increase clock sequence. - if timeNow <= lastTime { - clockSequence++ - } - lastTime = timeNow - - return timeNow, clockSequence -} - -// NewV1 returns UUID based on current timestamp and MAC address. -func NewV1() UUID { - u := UUID{} - - timeNow, clockSeq := getStorage() - - binary.BigEndian.PutUint32(u[0:], uint32(timeNow)) - binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32)) - binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48)) - binary.BigEndian.PutUint16(u[8:], clockSeq) - - copy(u[10:], hardwareAddr[:]) - - u.SetVersion(1) - u.SetVariant() - - return u -} - -// NewV2 returns DCE Security UUID based on POSIX UID/GID. -func NewV2(domain byte) UUID { - u := UUID{} - - switch domain { - case DomainPerson: - binary.BigEndian.PutUint32(u[0:], posixUID) - case DomainGroup: - binary.BigEndian.PutUint32(u[0:], posixGID) - } - - timeNow, clockSeq := getStorage() - - binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32)) - binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48)) - binary.BigEndian.PutUint16(u[8:], clockSeq) - u[9] = domain - - copy(u[10:], hardwareAddr[:]) - - u.SetVersion(2) - u.SetVariant() - - return u -} - -// NewV3 returns UUID based on MD5 hash of namespace UUID and name. -func NewV3(ns UUID, name string) UUID { - u := newFromHash(md5.New(), ns, name) - u.SetVersion(3) - u.SetVariant() - - return u -} - -// NewV4 returns random generated UUID. -func NewV4() UUID { - u := UUID{} - rand.Read(u[:]) - u.SetVersion(4) - u.SetVariant() - - return u -} - -// NewV5 returns UUID based on SHA-1 hash of namespace UUID and name. -func NewV5(ns UUID, name string) UUID { - u := newFromHash(sha1.New(), ns, name) - u.SetVersion(5) - u.SetVariant() - - return u -} - -// Returns UUID based on hashing of namespace UUID and name. -func newFromHash(h hash.Hash, ns UUID, name string) UUID { - u := UUID{} - h.Write(ns[:]) - h.Write([]byte(name)) - copy(u[:], h.Sum(nil)) - - return u -} diff --git a/vendor/github.com/satori/go.uuid/uuid_test.go b/vendor/github.com/satori/go.uuid/uuid_test.go deleted file mode 100644 index 0bc85b2..0000000 --- a/vendor/github.com/satori/go.uuid/uuid_test.go +++ /dev/null @@ -1,399 +0,0 @@ -// Copyright (C) 2013 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -package uuid - -import ( - "bytes" - "testing" -) - -func TestBytes(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - bytes1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - if !bytes.Equal(u.Bytes(), bytes1) { - t.Errorf("Incorrect bytes representation for UUID: %s", u) - } -} - -func TestString(t *testing.T) { - if NamespaceDNS.String() != "6ba7b810-9dad-11d1-80b4-00c04fd430c8" { - t.Errorf("Incorrect string representation for UUID: %s", NamespaceDNS.String()) - } -} - -func TestEqual(t *testing.T) { - if !Equal(NamespaceDNS, NamespaceDNS) { - t.Errorf("Incorrect comparison of %s and %s", NamespaceDNS, NamespaceDNS) - } - - if Equal(NamespaceDNS, NamespaceURL) { - t.Errorf("Incorrect comparison of %s and %s", NamespaceDNS, NamespaceURL) - } -} - -func TestOr(t *testing.T) { - u1 := UUID{0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff} - u2 := UUID{0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00} - - u := UUID{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} - - if !Equal(u, Or(u1, u2)) { - t.Errorf("Incorrect bitwise OR result %s", Or(u1, u2)) - } -} - -func TestAnd(t *testing.T) { - u1 := UUID{0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff} - u2 := UUID{0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00} - - u := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if !Equal(u, And(u1, u2)) { - t.Errorf("Incorrect bitwise AND result %s", And(u1, u2)) - } -} - -func TestVersion(t *testing.T) { - u := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u.Version() != 1 { - t.Errorf("Incorrect version for UUID: %d", u.Version()) - } -} - -func TestSetVersion(t *testing.T) { - u := UUID{} - u.SetVersion(4) - - if u.Version() != 4 { - t.Errorf("Incorrect version for UUID after u.setVersion(4): %d", u.Version()) - } -} - -func TestVariant(t *testing.T) { - u1 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u1.Variant() != VariantNCS { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantNCS, u1.Variant()) - } - - u2 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u2.Variant() != VariantRFC4122 { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantRFC4122, u2.Variant()) - } - - u3 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u3.Variant() != VariantMicrosoft { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantMicrosoft, u3.Variant()) - } - - u4 := UUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} - - if u4.Variant() != VariantFuture { - t.Errorf("Incorrect variant for UUID variant %d: %d", VariantFuture, u4.Variant()) - } -} - -func TestSetVariant(t *testing.T) { - u := new(UUID) - u.SetVariant() - - if u.Variant() != VariantRFC4122 { - t.Errorf("Incorrect variant for UUID after u.setVariant(): %d", u.Variant()) - } -} - -func TestFromBytes(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - u1, err := FromBytes(b1) - if err != nil { - t.Errorf("Error parsing UUID from bytes: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte{} - - _, err = FromBytes(b2) - if err == nil { - t.Errorf("Should return error parsing from empty byte slice, got %s", err) - } -} - -func TestMarshalBinary(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - b2, err := u.MarshalBinary() - if err != nil { - t.Errorf("Error marshaling UUID: %s", err) - } - - if !bytes.Equal(b1, b2) { - t.Errorf("Marshaled UUID should be %s, got %s", b1, b2) - } -} - -func TestUnmarshalBinary(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - u1 := UUID{} - err := u1.UnmarshalBinary(b1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte{} - u2 := UUID{} - - err = u2.UnmarshalBinary(b2) - if err == nil { - t.Errorf("Should return error unmarshalling from empty byte slice, got %s", err) - } -} - -func TestFromString(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - - s1 := "6ba7b810-9dad-11d1-80b4-00c04fd430c8" - s2 := "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}" - s3 := "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" - - _, err := FromString("") - if err == nil { - t.Errorf("Should return error trying to parse empty string, got %s", err) - } - - u1, err := FromString(s1) - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - u2, err := FromString(s2) - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - if !Equal(u, u2) { - t.Errorf("UUIDs should be equal: %s and %s", u, u2) - } - - u3, err := FromString(s3) - if err != nil { - t.Errorf("Error parsing UUID from string: %s", err) - } - - if !Equal(u, u3) { - t.Errorf("UUIDs should be equal: %s and %s", u, u3) - } -} - -func TestMarshalText(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - - b2, err := u.MarshalText() - if err != nil { - t.Errorf("Error marshaling UUID: %s", err) - } - - if !bytes.Equal(b1, b2) { - t.Errorf("Marshaled UUID should be %s, got %s", b1, b2) - } -} - -func TestUnmarshalText(t *testing.T) { - u := UUID{0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1, 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8} - b1 := []byte("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - - u1 := UUID{} - err := u1.UnmarshalText(b1) - if err != nil { - t.Errorf("Error unmarshaling UUID: %s", err) - } - - if !Equal(u, u1) { - t.Errorf("UUIDs should be equal: %s and %s", u, u1) - } - - b2 := []byte("") - u2 := UUID{} - - err = u2.UnmarshalText(b2) - if err == nil { - t.Errorf("Should return error trying to unmarshal from empty string") - } -} - -func TestNewV1(t *testing.T) { - u := NewV1() - - if u.Version() != 1 { - t.Errorf("UUIDv1 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv1 generated with incorrect variant: %d", u.Variant()) - } - - u1 := NewV1() - u2 := NewV1() - - if Equal(u1, u2) { - t.Errorf("UUIDv1 generated two equal UUIDs: %s and %s", u1, u2) - } - - oldFunc := epochFunc - epochFunc = func() uint64 { return 0 } - - u3 := NewV1() - u4 := NewV1() - - if Equal(u3, u4) { - t.Errorf("UUIDv1 generated two equal UUIDs: %s and %s", u3, u4) - } - - epochFunc = oldFunc -} - -func TestNewV2(t *testing.T) { - u1 := NewV2(DomainPerson) - - if u1.Version() != 2 { - t.Errorf("UUIDv2 generated with incorrect version: %d", u1.Version()) - } - - if u1.Variant() != VariantRFC4122 { - t.Errorf("UUIDv2 generated with incorrect variant: %d", u1.Variant()) - } - - u2 := NewV2(DomainGroup) - - if u2.Version() != 2 { - t.Errorf("UUIDv2 generated with incorrect version: %d", u2.Version()) - } - - if u2.Variant() != VariantRFC4122 { - t.Errorf("UUIDv2 generated with incorrect variant: %d", u2.Variant()) - } -} - -func TestNewV3(t *testing.T) { - u := NewV3(NamespaceDNS, "www.example.com") - - if u.Version() != 3 { - t.Errorf("UUIDv3 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv3 generated with incorrect variant: %d", u.Variant()) - } - - if u.String() != "5df41881-3aed-3515-88a7-2f4a814cf09e" { - t.Errorf("UUIDv3 generated incorrectly: %s", u.String()) - } - - u = NewV3(NamespaceDNS, "python.org") - - if u.String() != "6fa459ea-ee8a-3ca4-894e-db77e160355e" { - t.Errorf("UUIDv3 generated incorrectly: %s", u.String()) - } - - u1 := NewV3(NamespaceDNS, "golang.org") - u2 := NewV3(NamespaceDNS, "golang.org") - if !Equal(u1, u2) { - t.Errorf("UUIDv3 generated different UUIDs for same namespace and name: %s and %s", u1, u2) - } - - u3 := NewV3(NamespaceDNS, "example.com") - if Equal(u1, u3) { - t.Errorf("UUIDv3 generated same UUIDs for different names in same namespace: %s and %s", u1, u2) - } - - u4 := NewV3(NamespaceURL, "golang.org") - if Equal(u1, u4) { - t.Errorf("UUIDv3 generated same UUIDs for sane names in different namespaces: %s and %s", u1, u4) - } -} - -func TestNewV4(t *testing.T) { - u := NewV4() - - if u.Version() != 4 { - t.Errorf("UUIDv4 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv4 generated with incorrect variant: %d", u.Variant()) - } -} - -func TestNewV5(t *testing.T) { - u := NewV5(NamespaceDNS, "www.example.com") - - if u.Version() != 5 { - t.Errorf("UUIDv5 generated with incorrect version: %d", u.Version()) - } - - if u.Variant() != VariantRFC4122 { - t.Errorf("UUIDv5 generated with incorrect variant: %d", u.Variant()) - } - - u = NewV5(NamespaceDNS, "python.org") - - if u.String() != "886313e1-3b8a-5372-9b90-0c9aee199e5d" { - t.Errorf("UUIDv5 generated incorrectly: %s", u.String()) - } - - u1 := NewV5(NamespaceDNS, "golang.org") - u2 := NewV5(NamespaceDNS, "golang.org") - if !Equal(u1, u2) { - t.Errorf("UUIDv5 generated different UUIDs for same namespace and name: %s and %s", u1, u2) - } - - u3 := NewV5(NamespaceDNS, "example.com") - if Equal(u1, u3) { - t.Errorf("UUIDv5 generated same UUIDs for different names in same namespace: %s and %s", u1, u2) - } - - u4 := NewV5(NamespaceURL, "golang.org") - if Equal(u1, u4) { - t.Errorf("UUIDv3 generated same UUIDs for sane names in different namespaces: %s and %s", u1, u4) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/.gitignore b/vendor/github.com/siddontang/go-mysql/.gitignore deleted file mode 100644 index 68da35e..0000000 --- a/vendor/github.com/siddontang/go-mysql/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -var -bin -.idea \ No newline at end of file diff --git a/vendor/github.com/siddontang/go-mysql/.travis.yml b/vendor/github.com/siddontang/go-mysql/.travis.yml deleted file mode 100644 index cc0db3c..0000000 --- a/vendor/github.com/siddontang/go-mysql/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -language: go - -go: - - 1.6 - - 1.7 - -dist: trusty -sudo: required -addons: - apt: - packages: - - mysql-server-5.6 - - mysql-client-core-5.6 - - mysql-client-5.6 - -before_script: - # stop mysql and use row-based format binlog - - "sudo /etc/init.d/mysql stop || true" - - "echo '[mysqld]' | sudo tee /etc/mysql/conf.d/replication.cnf" - - "echo 'server-id=1' | sudo tee -a /etc/mysql/conf.d/replication.cnf" - - "echo 'log-bin=mysql' | sudo tee -a /etc/mysql/conf.d/replication.cnf" - - "echo 'binlog-format = row' | sudo tee -a /etc/mysql/conf.d/replication.cnf" - - # Start mysql (avoid errors to have logs) - - "sudo /etc/init.d/mysql start || true" - - "sudo tail -1000 /var/log/syslog" - - - mysql -e "CREATE DATABASE IF NOT EXISTS test;" -uroot - - -script: - - make test \ No newline at end of file diff --git a/vendor/github.com/siddontang/go-mysql/LICENSE b/vendor/github.com/siddontang/go-mysql/LICENSE deleted file mode 100644 index 80511a0..0000000 --- a/vendor/github.com/siddontang/go-mysql/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 siddontang - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/siddontang/go-mysql/Makefile b/vendor/github.com/siddontang/go-mysql/Makefile deleted file mode 100644 index 92744b1..0000000 --- a/vendor/github.com/siddontang/go-mysql/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -all: build - -build: - rm -rf vendor && ln -s _vendor/vendor vendor - go build -o bin/go-mysqlbinlog cmd/go-mysqlbinlog/main.go - go build -o bin/go-mysqldump cmd/go-mysqldump/main.go - go build -o bin/go-canal cmd/go-canal/main.go - go build -o bin/go-binlogparser cmd/go-binlogparser/main.go - rm -rf vendor - -test: - rm -rf vendor && ln -s _vendor/vendor vendor - go test --race -timeout 2m ./... - rm -rf vendor - -clean: - go clean -i ./... - @rm -rf ./bin - -update_vendor: - which glide >/dev/null || curl https://glide.sh/get | sh - which glide-vc || go get -v -u github.com/sgotti/glide-vc - rm -r vendor && mv _vendor/vendor vendor || true - rm -rf _vendor -ifdef PKG - glide get --strip-vendor --skip-test ${PKG} -else - glide update --strip-vendor --skip-test -endif - @echo "removing test files" - glide vc --only-code --no-tests - mkdir -p _vendor - mv vendor _vendor/vendor diff --git a/vendor/github.com/siddontang/go-mysql/README.md b/vendor/github.com/siddontang/go-mysql/README.md deleted file mode 100644 index 4ae6697..0000000 --- a/vendor/github.com/siddontang/go-mysql/README.md +++ /dev/null @@ -1,229 +0,0 @@ -# go-mysql - -A pure go library to handle MySQL network protocol and replication. - -## Replication - -Replication package handles MySQL replication protocol like [python-mysql-replication](https://github.com/noplay/python-mysql-replication). - -You can use it as a MySQL slave to sync binlog from master then do something, like updating cache, etc... - -### Example - -```go -import ( - "github.com/siddontang/go-mysql/replication" - "os" -) -// Create a binlog syncer with a unique server id, the server id must be different from other MySQL's. -// flavor is mysql or mariadb -cfg := replication.BinlogSyncerConfig { - ServerID: 100, - Flavor: "mysql", - Host: "127.0.0.1", - Port: 3306, - User: "root", - Password: "", -} -syncer := replication.NewBinlogSyncer(&cfg) - -// Start sync with sepcified binlog file and position -streamer, _ := syncer.StartSync(mysql.Position{binlogFile, binlogPos}) - -// or you can start a gtid replication like -// streamer, _ := syncer.StartSyncGTID(gtidSet) -// the mysql GTID set likes this "de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2" -// the mariadb GTID set likes this "0-1-100" - -for { - ev, _ := streamer.GetEvent(context.Background()) - // Dump event - ev.Dump(os.Stdout) -} - -// or we can use a timeout context -for { - ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) - e, _ := s.GetEvent(ctx) - cancel() - - if err == context.DeadlineExceeded { - // meet timeout - continue - } - - ev.Dump(os.Stdout) -} -``` - -The output looks: - -``` -=== RotateEvent === -Date: 1970-01-01 08:00:00 -Log position: 0 -Event size: 43 -Position: 4 -Next log name: mysql.000002 - -=== FormatDescriptionEvent === -Date: 2014-12-18 16:36:09 -Log position: 120 -Event size: 116 -Version: 4 -Server version: 5.6.19-log -Create date: 2014-12-18 16:36:09 - -=== QueryEvent === -Date: 2014-12-18 16:38:24 -Log position: 259 -Event size: 139 -Salve proxy ID: 1 -Execution time: 0 -Error code: 0 -Schema: test -Query: DROP TABLE IF EXISTS `test_replication` /* generated by server */ -``` - -## Canal - -Canal is a package that can sync your MySQL into everywhere, like Redis, Elasticsearch. - -First, canal will dump your MySQL data then sync changed data using binlog incrementally. - -You must use ROW format for binlog, full binlog row image is preferred, because we may meet some errors when primary key changed in update for minimal or noblob row image. - -A simple example: - -``` -cfg := NewDefaultConfig() -cfg.Addr = "127.0.0.1:3306" -cfg.User = "root" -// We only care table canal_test in test db -cfg.Dump.TableDB = "test" -cfg.Dump.Tables = []string{"canal_test"} - -c, err := NewCanal(cfg) - -type myRowsEventHandler struct { -} - -func (h *myRowsEventHandler) Do(e *RowsEvent) error { - log.Infof("%s %v\n", e.Action, e.Rows) - return nil -} - -func (h *myRowsEventHandler) String() string { - return "myRowsEventHandler" -} - -// Register a handler to handle RowsEvent -c.RegRowsEventHandler(&MyRowsEventHandler{}) - -// Start canal -c.Start() -``` - -You can see [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) for how to sync MySQL data into Elasticsearch. - -## Client - -Client package supports a simple MySQL connection driver which you can use it to communicate with MySQL server. - -### Example - -```go -import ( - "github.com/siddontang/go-mysql/client" -) - -// Connect MySQL at 127.0.0.1:3306, with user root, an empty passowrd and database test -conn, _ := client.Connect("127.0.0.1:3306", "root", "", "test") - -conn.Ping() - -// Insert -r, _ := conn.Execute(`insert into table (id, name) values (1, "abc")`) - -// Get last insert id -println(r.InsertId) - -// Select -r, _ := conn.Execute(`select id, name from table where id = 1`) - -// Handle resultset -v, _ := r.GetInt(0, 0) -v, _ = r.GetIntByName(0, "id") -``` - -## Server - -Server package supplies a framework to implement a simple MySQL server which can handle the packets from the MySQL client. -You can use it to build your own MySQL proxy. - -### Example - -```go -import ( - "github.com/siddontang/go-mysql/server" - "net" -) - -l, _ := net.Listen("tcp", "127.0.0.1:4000") - -c, _ := l.Accept() - -// Create a connection with user root and an empty passowrd -// We only an empty handler to handle command too -conn, _ := server.NewConn(c, "root", "", server.EmptyHandler{}) - -for { - conn.HandleCommand() -} -``` - -Another shell - -``` -mysql -h127.0.0.1 -P4000 -uroot -p -//Becuase empty handler does nothing, so here the MySQL client can only connect the proxy server. :-) -``` - -## Failover - -Failover supports to promote a new master and let other slaves replicate from it automatically when the old master was down. - -Failover supports MySQL >= 5.6.9 with GTID mode, if you use lower version, e.g, MySQL 5.0 - 5.5, please use [MHA](http://code.google.com/p/mysql-master-ha/) or [orchestrator](https://github.com/outbrain/orchestrator). - -At the same time, Failover supports MariaDB >= 10.0.9 with GTID mode too. - -Why only GTID? Supporting failover with no GTID mode is very hard, because slave can not find the proper binlog filename and position with the new master. -Although there are many companies use MySQL 5.0 - 5.5, I think upgrade MySQL to 5.6 or higher is easy. - -## Driver - -Driver is the package that you can use go-mysql with go database/sql like other drivers. A simple example: - -``` -import ( - "database/sql" - - - "github.com/siddontang/go-mysql/driver" -) - -func main() { - // dsn format: "user:password@addr?dbname" - dsn := "root@127.0.0.1:3306?test" - db, _ := sql.Open(dsn) - db.Close() -} -``` - -We pass all tests in https://github.com/bradfitz/go-sql-test using go-mysql driver. :-) - -## Feedback - -go-mysql is still in development, your feedback is very welcome. - - -Gmail: siddontang@gmail.com diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/COPYING b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/COPYING deleted file mode 100644 index 5a8e332..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/COPYING +++ /dev/null @@ -1,14 +0,0 @@ - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. - diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode.go deleted file mode 100644 index 6c7d398..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode.go +++ /dev/null @@ -1,492 +0,0 @@ -package toml - -import ( - "fmt" - "io" - "io/ioutil" - "math" - "reflect" - "strings" - "time" -) - -var e = fmt.Errorf - -// Unmarshaler is the interface implemented by objects that can unmarshal a -// TOML description of themselves. -type Unmarshaler interface { - UnmarshalTOML(interface{}) error -} - -// Unmarshal decodes the contents of `p` in TOML format into a pointer `v`. -func Unmarshal(p []byte, v interface{}) error { - _, err := Decode(string(p), v) - return err -} - -// Primitive is a TOML value that hasn't been decoded into a Go value. -// When using the various `Decode*` functions, the type `Primitive` may -// be given to any value, and its decoding will be delayed. -// -// A `Primitive` value can be decoded using the `PrimitiveDecode` function. -// -// The underlying representation of a `Primitive` value is subject to change. -// Do not rely on it. -// -// N.B. Primitive values are still parsed, so using them will only avoid -// the overhead of reflection. They can be useful when you don't know the -// exact type of TOML data until run time. -type Primitive struct { - undecoded interface{} - context Key -} - -// DEPRECATED! -// -// Use MetaData.PrimitiveDecode instead. -func PrimitiveDecode(primValue Primitive, v interface{}) error { - md := MetaData{decoded: make(map[string]bool)} - return md.unify(primValue.undecoded, rvalue(v)) -} - -// PrimitiveDecode is just like the other `Decode*` functions, except it -// decodes a TOML value that has already been parsed. Valid primitive values -// can *only* be obtained from values filled by the decoder functions, -// including this method. (i.e., `v` may contain more `Primitive` -// values.) -// -// Meta data for primitive values is included in the meta data returned by -// the `Decode*` functions with one exception: keys returned by the Undecoded -// method will only reflect keys that were decoded. Namely, any keys hidden -// behind a Primitive will be considered undecoded. Executing this method will -// update the undecoded keys in the meta data. (See the example.) -func (md *MetaData) PrimitiveDecode(primValue Primitive, v interface{}) error { - md.context = primValue.context - defer func() { md.context = nil }() - return md.unify(primValue.undecoded, rvalue(v)) -} - -// Decode will decode the contents of `data` in TOML format into a pointer -// `v`. -// -// TOML hashes correspond to Go structs or maps. (Dealer's choice. They can be -// used interchangeably.) -// -// TOML arrays of tables correspond to either a slice of structs or a slice -// of maps. -// -// TOML datetimes correspond to Go `time.Time` values. -// -// All other TOML types (float, string, int, bool and array) correspond -// to the obvious Go types. -// -// An exception to the above rules is if a type implements the -// encoding.TextUnmarshaler interface. In this case, any primitive TOML value -// (floats, strings, integers, booleans and datetimes) will be converted to -// a byte string and given to the value's UnmarshalText method. See the -// Unmarshaler example for a demonstration with time duration strings. -// -// Key mapping -// -// TOML keys can map to either keys in a Go map or field names in a Go -// struct. The special `toml` struct tag may be used to map TOML keys to -// struct fields that don't match the key name exactly. (See the example.) -// A case insensitive match to struct names will be tried if an exact match -// can't be found. -// -// The mapping between TOML values and Go values is loose. That is, there -// may exist TOML values that cannot be placed into your representation, and -// there may be parts of your representation that do not correspond to -// TOML values. This loose mapping can be made stricter by using the IsDefined -// and/or Undecoded methods on the MetaData returned. -// -// This decoder will not handle cyclic types. If a cyclic type is passed, -// `Decode` will not terminate. -func Decode(data string, v interface{}) (MetaData, error) { - p, err := parse(data) - if err != nil { - return MetaData{}, err - } - md := MetaData{ - p.mapping, p.types, p.ordered, - make(map[string]bool, len(p.ordered)), nil, - } - return md, md.unify(p.mapping, rvalue(v)) -} - -// DecodeFile is just like Decode, except it will automatically read the -// contents of the file at `fpath` and decode it for you. -func DecodeFile(fpath string, v interface{}) (MetaData, error) { - bs, err := ioutil.ReadFile(fpath) - if err != nil { - return MetaData{}, err - } - return Decode(string(bs), v) -} - -// DecodeReader is just like Decode, except it will consume all bytes -// from the reader and decode it for you. -func DecodeReader(r io.Reader, v interface{}) (MetaData, error) { - bs, err := ioutil.ReadAll(r) - if err != nil { - return MetaData{}, err - } - return Decode(string(bs), v) -} - -// unify performs a sort of type unification based on the structure of `rv`, -// which is the client representation. -// -// Any type mismatch produces an error. Finding a type that we don't know -// how to handle produces an unsupported type error. -func (md *MetaData) unify(data interface{}, rv reflect.Value) error { - - // Special case. Look for a `Primitive` value. - if rv.Type() == reflect.TypeOf((*Primitive)(nil)).Elem() { - // Save the undecoded data and the key context into the primitive - // value. - context := make(Key, len(md.context)) - copy(context, md.context) - rv.Set(reflect.ValueOf(Primitive{ - undecoded: data, - context: context, - })) - return nil - } - - // Special case. Unmarshaler Interface support. - if rv.CanAddr() { - if v, ok := rv.Addr().Interface().(Unmarshaler); ok { - return v.UnmarshalTOML(data) - } - } - - // Special case. Handle time.Time values specifically. - // TODO: Remove this code when we decide to drop support for Go 1.1. - // This isn't necessary in Go 1.2 because time.Time satisfies the encoding - // interfaces. - if rv.Type().AssignableTo(rvalue(time.Time{}).Type()) { - return md.unifyDatetime(data, rv) - } - - // Special case. Look for a value satisfying the TextUnmarshaler interface. - if v, ok := rv.Interface().(TextUnmarshaler); ok { - return md.unifyText(data, v) - } - // BUG(burntsushi) - // The behavior here is incorrect whenever a Go type satisfies the - // encoding.TextUnmarshaler interface but also corresponds to a TOML - // hash or array. In particular, the unmarshaler should only be applied - // to primitive TOML values. But at this point, it will be applied to - // all kinds of values and produce an incorrect error whenever those values - // are hashes or arrays (including arrays of tables). - - k := rv.Kind() - - // laziness - if k >= reflect.Int && k <= reflect.Uint64 { - return md.unifyInt(data, rv) - } - switch k { - case reflect.Ptr: - elem := reflect.New(rv.Type().Elem()) - err := md.unify(data, reflect.Indirect(elem)) - if err != nil { - return err - } - rv.Set(elem) - return nil - case reflect.Struct: - return md.unifyStruct(data, rv) - case reflect.Map: - return md.unifyMap(data, rv) - case reflect.Array: - return md.unifyArray(data, rv) - case reflect.Slice: - return md.unifySlice(data, rv) - case reflect.String: - return md.unifyString(data, rv) - case reflect.Bool: - return md.unifyBool(data, rv) - case reflect.Interface: - // we only support empty interfaces. - if rv.NumMethod() > 0 { - return e("Unsupported type '%s'.", rv.Kind()) - } - return md.unifyAnything(data, rv) - case reflect.Float32: - fallthrough - case reflect.Float64: - return md.unifyFloat64(data, rv) - } - return e("Unsupported type '%s'.", rv.Kind()) -} - -func (md *MetaData) unifyStruct(mapping interface{}, rv reflect.Value) error { - tmap, ok := mapping.(map[string]interface{}) - if !ok { - return mismatch(rv, "map", mapping) - } - - for key, datum := range tmap { - var f *field - fields := cachedTypeFields(rv.Type()) - for i := range fields { - ff := &fields[i] - if ff.name == key { - f = ff - break - } - if f == nil && strings.EqualFold(ff.name, key) { - f = ff - } - } - if f != nil { - subv := rv - for _, i := range f.index { - subv = indirect(subv.Field(i)) - } - if isUnifiable(subv) { - md.decoded[md.context.add(key).String()] = true - md.context = append(md.context, key) - if err := md.unify(datum, subv); err != nil { - return e("Type mismatch for '%s.%s': %s", - rv.Type().String(), f.name, err) - } - md.context = md.context[0 : len(md.context)-1] - } else if f.name != "" { - // Bad user! No soup for you! - return e("Field '%s.%s' is unexported, and therefore cannot "+ - "be loaded with reflection.", rv.Type().String(), f.name) - } - } - } - return nil -} - -func (md *MetaData) unifyMap(mapping interface{}, rv reflect.Value) error { - tmap, ok := mapping.(map[string]interface{}) - if !ok { - return badtype("map", mapping) - } - if rv.IsNil() { - rv.Set(reflect.MakeMap(rv.Type())) - } - for k, v := range tmap { - md.decoded[md.context.add(k).String()] = true - md.context = append(md.context, k) - - rvkey := indirect(reflect.New(rv.Type().Key())) - rvval := reflect.Indirect(reflect.New(rv.Type().Elem())) - if err := md.unify(v, rvval); err != nil { - return err - } - md.context = md.context[0 : len(md.context)-1] - - rvkey.SetString(k) - rv.SetMapIndex(rvkey, rvval) - } - return nil -} - -func (md *MetaData) unifyArray(data interface{}, rv reflect.Value) error { - datav := reflect.ValueOf(data) - if datav.Kind() != reflect.Slice { - return badtype("slice", data) - } - sliceLen := datav.Len() - if sliceLen != rv.Len() { - return e("expected array length %d; got TOML array of length %d", - rv.Len(), sliceLen) - } - return md.unifySliceArray(datav, rv) -} - -func (md *MetaData) unifySlice(data interface{}, rv reflect.Value) error { - datav := reflect.ValueOf(data) - if datav.Kind() != reflect.Slice { - return badtype("slice", data) - } - sliceLen := datav.Len() - if rv.IsNil() { - rv.Set(reflect.MakeSlice(rv.Type(), sliceLen, sliceLen)) - } - return md.unifySliceArray(datav, rv) -} - -func (md *MetaData) unifySliceArray(data, rv reflect.Value) error { - sliceLen := data.Len() - for i := 0; i < sliceLen; i++ { - v := data.Index(i).Interface() - sliceval := indirect(rv.Index(i)) - if err := md.unify(v, sliceval); err != nil { - return err - } - } - return nil -} - -func (md *MetaData) unifyDatetime(data interface{}, rv reflect.Value) error { - if _, ok := data.(time.Time); ok { - rv.Set(reflect.ValueOf(data)) - return nil - } - return badtype("time.Time", data) -} - -func (md *MetaData) unifyString(data interface{}, rv reflect.Value) error { - if s, ok := data.(string); ok { - rv.SetString(s) - return nil - } - return badtype("string", data) -} - -func (md *MetaData) unifyFloat64(data interface{}, rv reflect.Value) error { - if num, ok := data.(float64); ok { - switch rv.Kind() { - case reflect.Float32: - fallthrough - case reflect.Float64: - rv.SetFloat(num) - default: - panic("bug") - } - return nil - } - return badtype("float", data) -} - -func (md *MetaData) unifyInt(data interface{}, rv reflect.Value) error { - if num, ok := data.(int64); ok { - if rv.Kind() >= reflect.Int && rv.Kind() <= reflect.Int64 { - switch rv.Kind() { - case reflect.Int, reflect.Int64: - // No bounds checking necessary. - case reflect.Int8: - if num < math.MinInt8 || num > math.MaxInt8 { - return e("Value '%d' is out of range for int8.", num) - } - case reflect.Int16: - if num < math.MinInt16 || num > math.MaxInt16 { - return e("Value '%d' is out of range for int16.", num) - } - case reflect.Int32: - if num < math.MinInt32 || num > math.MaxInt32 { - return e("Value '%d' is out of range for int32.", num) - } - } - rv.SetInt(num) - } else if rv.Kind() >= reflect.Uint && rv.Kind() <= reflect.Uint64 { - unum := uint64(num) - switch rv.Kind() { - case reflect.Uint, reflect.Uint64: - // No bounds checking necessary. - case reflect.Uint8: - if num < 0 || unum > math.MaxUint8 { - return e("Value '%d' is out of range for uint8.", num) - } - case reflect.Uint16: - if num < 0 || unum > math.MaxUint16 { - return e("Value '%d' is out of range for uint16.", num) - } - case reflect.Uint32: - if num < 0 || unum > math.MaxUint32 { - return e("Value '%d' is out of range for uint32.", num) - } - } - rv.SetUint(unum) - } else { - panic("unreachable") - } - return nil - } - return badtype("integer", data) -} - -func (md *MetaData) unifyBool(data interface{}, rv reflect.Value) error { - if b, ok := data.(bool); ok { - rv.SetBool(b) - return nil - } - return badtype("boolean", data) -} - -func (md *MetaData) unifyAnything(data interface{}, rv reflect.Value) error { - rv.Set(reflect.ValueOf(data)) - return nil -} - -func (md *MetaData) unifyText(data interface{}, v TextUnmarshaler) error { - var s string - switch sdata := data.(type) { - case TextMarshaler: - text, err := sdata.MarshalText() - if err != nil { - return err - } - s = string(text) - case fmt.Stringer: - s = sdata.String() - case string: - s = sdata - case bool: - s = fmt.Sprintf("%v", sdata) - case int64: - s = fmt.Sprintf("%d", sdata) - case float64: - s = fmt.Sprintf("%f", sdata) - default: - return badtype("primitive (string-like)", data) - } - if err := v.UnmarshalText([]byte(s)); err != nil { - return err - } - return nil -} - -// rvalue returns a reflect.Value of `v`. All pointers are resolved. -func rvalue(v interface{}) reflect.Value { - return indirect(reflect.ValueOf(v)) -} - -// indirect returns the value pointed to by a pointer. -// Pointers are followed until the value is not a pointer. -// New values are allocated for each nil pointer. -// -// An exception to this rule is if the value satisfies an interface of -// interest to us (like encoding.TextUnmarshaler). -func indirect(v reflect.Value) reflect.Value { - if v.Kind() != reflect.Ptr { - if v.CanAddr() { - pv := v.Addr() - if _, ok := pv.Interface().(TextUnmarshaler); ok { - return pv - } - } - return v - } - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - return indirect(reflect.Indirect(v)) -} - -func isUnifiable(rv reflect.Value) bool { - if rv.CanSet() { - return true - } - if _, ok := rv.Interface().(TextUnmarshaler); ok { - return true - } - return false -} - -func badtype(expected string, data interface{}) error { - return e("Expected %s but found '%T'.", expected, data) -} - -func mismatch(user reflect.Value, expected string, data interface{}) error { - return e("Type mismatch for %s. Expected %s but found '%T'.", - user.Type().String(), expected, data) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode_meta.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode_meta.go deleted file mode 100644 index ef6f545..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/decode_meta.go +++ /dev/null @@ -1,122 +0,0 @@ -package toml - -import "strings" - -// MetaData allows access to meta information about TOML data that may not -// be inferrable via reflection. In particular, whether a key has been defined -// and the TOML type of a key. -type MetaData struct { - mapping map[string]interface{} - types map[string]tomlType - keys []Key - decoded map[string]bool - context Key // Used only during decoding. -} - -// IsDefined returns true if the key given exists in the TOML data. The key -// should be specified hierarchially. e.g., -// -// // access the TOML key 'a.b.c' -// IsDefined("a", "b", "c") -// -// IsDefined will return false if an empty key given. Keys are case sensitive. -func (md *MetaData) IsDefined(key ...string) bool { - if len(key) == 0 { - return false - } - - var hash map[string]interface{} - var ok bool - var hashOrVal interface{} = md.mapping - for _, k := range key { - if hash, ok = hashOrVal.(map[string]interface{}); !ok { - return false - } - if hashOrVal, ok = hash[k]; !ok { - return false - } - } - return true -} - -// Type returns a string representation of the type of the key specified. -// -// Type will return the empty string if given an empty key or a key that -// does not exist. Keys are case sensitive. -func (md *MetaData) Type(key ...string) string { - fullkey := strings.Join(key, ".") - if typ, ok := md.types[fullkey]; ok { - return typ.typeString() - } - return "" -} - -// Key is the type of any TOML key, including key groups. Use (MetaData).Keys -// to get values of this type. -type Key []string - -func (k Key) String() string { - return strings.Join(k, ".") -} - -func (k Key) maybeQuotedAll() string { - var ss []string - for i := range k { - ss = append(ss, k.maybeQuoted(i)) - } - return strings.Join(ss, ".") -} - -func (k Key) maybeQuoted(i int) string { - quote := false - for _, c := range k[i] { - if !isBareKeyChar(c) { - quote = true - break - } - } - if quote { - return "\"" + strings.Replace(k[i], "\"", "\\\"", -1) + "\"" - } else { - return k[i] - } -} - -func (k Key) add(piece string) Key { - newKey := make(Key, len(k)+1) - copy(newKey, k) - newKey[len(k)] = piece - return newKey -} - -// Keys returns a slice of every key in the TOML data, including key groups. -// Each key is itself a slice, where the first element is the top of the -// hierarchy and the last is the most specific. -// -// The list will have the same order as the keys appeared in the TOML data. -// -// All keys returned are non-empty. -func (md *MetaData) Keys() []Key { - return md.keys -} - -// Undecoded returns all keys that have not been decoded in the order in which -// they appear in the original TOML document. -// -// This includes keys that haven't been decoded because of a Primitive value. -// Once the Primitive value is decoded, the keys will be considered decoded. -// -// Also note that decoding into an empty interface will result in no decoding, -// and so no keys will be considered decoded. -// -// In this sense, the Undecoded keys correspond to keys in the TOML document -// that do not have a concrete type in your representation. -func (md *MetaData) Undecoded() []Key { - undecoded := make([]Key, 0, len(md.keys)) - for _, key := range md.keys { - if !md.decoded[key.String()] { - undecoded = append(undecoded, key) - } - } - return undecoded -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/doc.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/doc.go deleted file mode 100644 index fe26800..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/doc.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Package toml provides facilities for decoding and encoding TOML configuration -files via reflection. There is also support for delaying decoding with -the Primitive type, and querying the set of keys in a TOML document with the -MetaData type. - -The specification implemented: https://github.com/mojombo/toml - -The sub-command github.com/BurntSushi/toml/cmd/tomlv can be used to verify -whether a file is a valid TOML document. It can also be used to print the -type of each key in a TOML document. - -Testing - -There are two important types of tests used for this package. The first is -contained inside '*_test.go' files and uses the standard Go unit testing -framework. These tests are primarily devoted to holistically testing the -decoder and encoder. - -The second type of testing is used to verify the implementation's adherence -to the TOML specification. These tests have been factored into their own -project: https://github.com/BurntSushi/toml-test - -The reason the tests are in a separate project is so that they can be used by -any implementation of TOML. Namely, it is language agnostic. -*/ -package toml diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encode.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encode.go deleted file mode 100644 index c7e227c..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encode.go +++ /dev/null @@ -1,551 +0,0 @@ -package toml - -import ( - "bufio" - "errors" - "fmt" - "io" - "reflect" - "sort" - "strconv" - "strings" - "time" -) - -type tomlEncodeError struct{ error } - -var ( - errArrayMixedElementTypes = errors.New( - "can't encode array with mixed element types") - errArrayNilElement = errors.New( - "can't encode array with nil element") - errNonString = errors.New( - "can't encode a map with non-string key type") - errAnonNonStruct = errors.New( - "can't encode an anonymous field that is not a struct") - errArrayNoTable = errors.New( - "TOML array element can't contain a table") - errNoKey = errors.New( - "top-level values must be a Go map or struct") - errAnything = errors.New("") // used in testing -) - -var quotedReplacer = strings.NewReplacer( - "\t", "\\t", - "\n", "\\n", - "\r", "\\r", - "\"", "\\\"", - "\\", "\\\\", -) - -// Encoder controls the encoding of Go values to a TOML document to some -// io.Writer. -// -// The indentation level can be controlled with the Indent field. -type Encoder struct { - // A single indentation level. By default it is two spaces. - Indent string - - // hasWritten is whether we have written any output to w yet. - hasWritten bool - w *bufio.Writer -} - -// NewEncoder returns a TOML encoder that encodes Go values to the io.Writer -// given. By default, a single indentation level is 2 spaces. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - w: bufio.NewWriter(w), - Indent: " ", - } -} - -// Encode writes a TOML representation of the Go value to the underlying -// io.Writer. If the value given cannot be encoded to a valid TOML document, -// then an error is returned. -// -// The mapping between Go values and TOML values should be precisely the same -// as for the Decode* functions. Similarly, the TextMarshaler interface is -// supported by encoding the resulting bytes as strings. (If you want to write -// arbitrary binary data then you will need to use something like base64 since -// TOML does not have any binary types.) -// -// When encoding TOML hashes (i.e., Go maps or structs), keys without any -// sub-hashes are encoded first. -// -// If a Go map is encoded, then its keys are sorted alphabetically for -// deterministic output. More control over this behavior may be provided if -// there is demand for it. -// -// Encoding Go values without a corresponding TOML representation---like map -// types with non-string keys---will cause an error to be returned. Similarly -// for mixed arrays/slices, arrays/slices with nil elements, embedded -// non-struct types and nested slices containing maps or structs. -// (e.g., [][]map[string]string is not allowed but []map[string]string is OK -// and so is []map[string][]string.) -func (enc *Encoder) Encode(v interface{}) error { - rv := eindirect(reflect.ValueOf(v)) - if err := enc.safeEncode(Key([]string{}), rv); err != nil { - return err - } - return enc.w.Flush() -} - -func (enc *Encoder) safeEncode(key Key, rv reflect.Value) (err error) { - defer func() { - if r := recover(); r != nil { - if terr, ok := r.(tomlEncodeError); ok { - err = terr.error - return - } - panic(r) - } - }() - enc.encode(key, rv) - return nil -} - -func (enc *Encoder) encode(key Key, rv reflect.Value) { - // Special case. Time needs to be in ISO8601 format. - // Special case. If we can marshal the type to text, then we used that. - // Basically, this prevents the encoder for handling these types as - // generic structs (or whatever the underlying type of a TextMarshaler is). - switch rv.Interface().(type) { - case time.Time, TextMarshaler: - enc.keyEqElement(key, rv) - return - } - - k := rv.Kind() - switch k { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, - reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, - reflect.Uint64, - reflect.Float32, reflect.Float64, reflect.String, reflect.Bool: - enc.keyEqElement(key, rv) - case reflect.Array, reflect.Slice: - if typeEqual(tomlArrayHash, tomlTypeOfGo(rv)) { - enc.eArrayOfTables(key, rv) - } else { - enc.keyEqElement(key, rv) - } - case reflect.Interface: - if rv.IsNil() { - return - } - enc.encode(key, rv.Elem()) - case reflect.Map: - if rv.IsNil() { - return - } - enc.eTable(key, rv) - case reflect.Ptr: - if rv.IsNil() { - return - } - enc.encode(key, rv.Elem()) - case reflect.Struct: - enc.eTable(key, rv) - default: - panic(e("Unsupported type for key '%s': %s", key, k)) - } -} - -// eElement encodes any value that can be an array element (primitives and -// arrays). -func (enc *Encoder) eElement(rv reflect.Value) { - switch v := rv.Interface().(type) { - case time.Time: - // Special case time.Time as a primitive. Has to come before - // TextMarshaler below because time.Time implements - // encoding.TextMarshaler, but we need to always use UTC. - enc.wf(v.In(time.FixedZone("UTC", 0)).Format("2006-01-02T15:04:05Z")) - return - case TextMarshaler: - // Special case. Use text marshaler if it's available for this value. - if s, err := v.MarshalText(); err != nil { - encPanic(err) - } else { - enc.writeQuoted(string(s)) - } - return - } - switch rv.Kind() { - case reflect.Bool: - enc.wf(strconv.FormatBool(rv.Bool())) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, - reflect.Int64: - enc.wf(strconv.FormatInt(rv.Int(), 10)) - case reflect.Uint, reflect.Uint8, reflect.Uint16, - reflect.Uint32, reflect.Uint64: - enc.wf(strconv.FormatUint(rv.Uint(), 10)) - case reflect.Float32: - enc.wf(floatAddDecimal(strconv.FormatFloat(rv.Float(), 'f', -1, 32))) - case reflect.Float64: - enc.wf(floatAddDecimal(strconv.FormatFloat(rv.Float(), 'f', -1, 64))) - case reflect.Array, reflect.Slice: - enc.eArrayOrSliceElement(rv) - case reflect.Interface: - enc.eElement(rv.Elem()) - case reflect.String: - enc.writeQuoted(rv.String()) - default: - panic(e("Unexpected primitive type: %s", rv.Kind())) - } -} - -// By the TOML spec, all floats must have a decimal with at least one -// number on either side. -func floatAddDecimal(fstr string) string { - if !strings.Contains(fstr, ".") { - return fstr + ".0" - } - return fstr -} - -func (enc *Encoder) writeQuoted(s string) { - enc.wf("\"%s\"", quotedReplacer.Replace(s)) -} - -func (enc *Encoder) eArrayOrSliceElement(rv reflect.Value) { - length := rv.Len() - enc.wf("[") - for i := 0; i < length; i++ { - elem := rv.Index(i) - enc.eElement(elem) - if i != length-1 { - enc.wf(", ") - } - } - enc.wf("]") -} - -func (enc *Encoder) eArrayOfTables(key Key, rv reflect.Value) { - if len(key) == 0 { - encPanic(errNoKey) - } - for i := 0; i < rv.Len(); i++ { - trv := rv.Index(i) - if isNil(trv) { - continue - } - panicIfInvalidKey(key) - enc.newline() - enc.wf("%s[[%s]]", enc.indentStr(key), key.maybeQuotedAll()) - enc.newline() - enc.eMapOrStruct(key, trv) - } -} - -func (enc *Encoder) eTable(key Key, rv reflect.Value) { - panicIfInvalidKey(key) - if len(key) == 1 { - // Output an extra new line between top-level tables. - // (The newline isn't written if nothing else has been written though.) - enc.newline() - } - if len(key) > 0 { - enc.wf("%s[%s]", enc.indentStr(key), key.maybeQuotedAll()) - enc.newline() - } - enc.eMapOrStruct(key, rv) -} - -func (enc *Encoder) eMapOrStruct(key Key, rv reflect.Value) { - switch rv := eindirect(rv); rv.Kind() { - case reflect.Map: - enc.eMap(key, rv) - case reflect.Struct: - enc.eStruct(key, rv) - default: - panic("eTable: unhandled reflect.Value Kind: " + rv.Kind().String()) - } -} - -func (enc *Encoder) eMap(key Key, rv reflect.Value) { - rt := rv.Type() - if rt.Key().Kind() != reflect.String { - encPanic(errNonString) - } - - // Sort keys so that we have deterministic output. And write keys directly - // underneath this key first, before writing sub-structs or sub-maps. - var mapKeysDirect, mapKeysSub []string - for _, mapKey := range rv.MapKeys() { - k := mapKey.String() - if typeIsHash(tomlTypeOfGo(rv.MapIndex(mapKey))) { - mapKeysSub = append(mapKeysSub, k) - } else { - mapKeysDirect = append(mapKeysDirect, k) - } - } - - var writeMapKeys = func(mapKeys []string) { - sort.Strings(mapKeys) - for _, mapKey := range mapKeys { - mrv := rv.MapIndex(reflect.ValueOf(mapKey)) - if isNil(mrv) { - // Don't write anything for nil fields. - continue - } - enc.encode(key.add(mapKey), mrv) - } - } - writeMapKeys(mapKeysDirect) - writeMapKeys(mapKeysSub) -} - -func (enc *Encoder) eStruct(key Key, rv reflect.Value) { - // Write keys for fields directly under this key first, because if we write - // a field that creates a new table, then all keys under it will be in that - // table (not the one we're writing here). - rt := rv.Type() - var fieldsDirect, fieldsSub [][]int - var addFields func(rt reflect.Type, rv reflect.Value, start []int) - addFields = func(rt reflect.Type, rv reflect.Value, start []int) { - for i := 0; i < rt.NumField(); i++ { - f := rt.Field(i) - // skip unexporded fields - if f.PkgPath != "" { - continue - } - frv := rv.Field(i) - if f.Anonymous { - frv := eindirect(frv) - t := frv.Type() - if t.Kind() != reflect.Struct { - encPanic(errAnonNonStruct) - } - addFields(t, frv, f.Index) - } else if typeIsHash(tomlTypeOfGo(frv)) { - fieldsSub = append(fieldsSub, append(start, f.Index...)) - } else { - fieldsDirect = append(fieldsDirect, append(start, f.Index...)) - } - } - } - addFields(rt, rv, nil) - - var writeFields = func(fields [][]int) { - for _, fieldIndex := range fields { - sft := rt.FieldByIndex(fieldIndex) - sf := rv.FieldByIndex(fieldIndex) - if isNil(sf) { - // Don't write anything for nil fields. - continue - } - - keyName := sft.Tag.Get("toml") - if keyName == "-" { - continue - } - if keyName == "" { - keyName = sft.Name - } - - keyName, opts := getOptions(keyName) - if _, ok := opts["omitempty"]; ok && isEmpty(sf) { - continue - } else if _, ok := opts["omitzero"]; ok && isZero(sf) { - continue - } - - enc.encode(key.add(keyName), sf) - } - } - writeFields(fieldsDirect) - writeFields(fieldsSub) -} - -// tomlTypeName returns the TOML type name of the Go value's type. It is -// used to determine whether the types of array elements are mixed (which is -// forbidden). If the Go value is nil, then it is illegal for it to be an array -// element, and valueIsNil is returned as true. - -// Returns the TOML type of a Go value. The type may be `nil`, which means -// no concrete TOML type could be found. -func tomlTypeOfGo(rv reflect.Value) tomlType { - if isNil(rv) || !rv.IsValid() { - return nil - } - switch rv.Kind() { - case reflect.Bool: - return tomlBool - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, - reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, - reflect.Uint64: - return tomlInteger - case reflect.Float32, reflect.Float64: - return tomlFloat - case reflect.Array, reflect.Slice: - if typeEqual(tomlHash, tomlArrayType(rv)) { - return tomlArrayHash - } else { - return tomlArray - } - case reflect.Ptr, reflect.Interface: - return tomlTypeOfGo(rv.Elem()) - case reflect.String: - return tomlString - case reflect.Map: - return tomlHash - case reflect.Struct: - switch rv.Interface().(type) { - case time.Time: - return tomlDatetime - case TextMarshaler: - return tomlString - default: - return tomlHash - } - default: - panic("unexpected reflect.Kind: " + rv.Kind().String()) - } -} - -// tomlArrayType returns the element type of a TOML array. The type returned -// may be nil if it cannot be determined (e.g., a nil slice or a zero length -// slize). This function may also panic if it finds a type that cannot be -// expressed in TOML (such as nil elements, heterogeneous arrays or directly -// nested arrays of tables). -func tomlArrayType(rv reflect.Value) tomlType { - if isNil(rv) || !rv.IsValid() || rv.Len() == 0 { - return nil - } - firstType := tomlTypeOfGo(rv.Index(0)) - if firstType == nil { - encPanic(errArrayNilElement) - } - - rvlen := rv.Len() - for i := 1; i < rvlen; i++ { - elem := rv.Index(i) - switch elemType := tomlTypeOfGo(elem); { - case elemType == nil: - encPanic(errArrayNilElement) - case !typeEqual(firstType, elemType): - encPanic(errArrayMixedElementTypes) - } - } - // If we have a nested array, then we must make sure that the nested - // array contains ONLY primitives. - // This checks arbitrarily nested arrays. - if typeEqual(firstType, tomlArray) || typeEqual(firstType, tomlArrayHash) { - nest := tomlArrayType(eindirect(rv.Index(0))) - if typeEqual(nest, tomlHash) || typeEqual(nest, tomlArrayHash) { - encPanic(errArrayNoTable) - } - } - return firstType -} - -func getOptions(keyName string) (string, map[string]struct{}) { - opts := make(map[string]struct{}) - ss := strings.Split(keyName, ",") - name := ss[0] - if len(ss) > 1 { - for _, opt := range ss { - opts[opt] = struct{}{} - } - } - - return name, opts -} - -func isZero(rv reflect.Value) bool { - switch rv.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - if rv.Int() == 0 { - return true - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - if rv.Uint() == 0 { - return true - } - case reflect.Float32, reflect.Float64: - if rv.Float() == 0.0 { - return true - } - } - - return false -} - -func isEmpty(rv reflect.Value) bool { - switch rv.Kind() { - case reflect.String: - if len(strings.TrimSpace(rv.String())) == 0 { - return true - } - case reflect.Array, reflect.Slice, reflect.Map: - if rv.Len() == 0 { - return true - } - } - - return false -} - -func (enc *Encoder) newline() { - if enc.hasWritten { - enc.wf("\n") - } -} - -func (enc *Encoder) keyEqElement(key Key, val reflect.Value) { - if len(key) == 0 { - encPanic(errNoKey) - } - panicIfInvalidKey(key) - enc.wf("%s%s = ", enc.indentStr(key), key.maybeQuoted(len(key)-1)) - enc.eElement(val) - enc.newline() -} - -func (enc *Encoder) wf(format string, v ...interface{}) { - if _, err := fmt.Fprintf(enc.w, format, v...); err != nil { - encPanic(err) - } - enc.hasWritten = true -} - -func (enc *Encoder) indentStr(key Key) string { - return strings.Repeat(enc.Indent, len(key)-1) -} - -func encPanic(err error) { - panic(tomlEncodeError{err}) -} - -func eindirect(v reflect.Value) reflect.Value { - switch v.Kind() { - case reflect.Ptr, reflect.Interface: - return eindirect(v.Elem()) - default: - return v - } -} - -func isNil(rv reflect.Value) bool { - switch rv.Kind() { - case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: - return rv.IsNil() - default: - return false - } -} - -func panicIfInvalidKey(key Key) { - for _, k := range key { - if len(k) == 0 { - encPanic(e("Key '%s' is not a valid table name. Key names "+ - "cannot be empty.", key.maybeQuotedAll())) - } - } -} - -func isValidKeyName(s string) bool { - return len(s) != 0 -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types.go deleted file mode 100644 index d36e1dd..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build go1.2 - -package toml - -// In order to support Go 1.1, we define our own TextMarshaler and -// TextUnmarshaler types. For Go 1.2+, we just alias them with the -// standard library interfaces. - -import ( - "encoding" -) - -// TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here -// so that Go 1.1 can be supported. -type TextMarshaler encoding.TextMarshaler - -// TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined -// here so that Go 1.1 can be supported. -type TextUnmarshaler encoding.TextUnmarshaler diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go deleted file mode 100644 index e8d503d..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/encoding_types_1.1.go +++ /dev/null @@ -1,18 +0,0 @@ -// +build !go1.2 - -package toml - -// These interfaces were introduced in Go 1.2, so we add them manually when -// compiling for Go 1.1. - -// TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here -// so that Go 1.1 can be supported. -type TextMarshaler interface { - MarshalText() (text []byte, err error) -} - -// TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined -// here so that Go 1.1 can be supported. -type TextUnmarshaler interface { - UnmarshalText(text []byte) error -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/lex.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/lex.go deleted file mode 100644 index 2191228..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/lex.go +++ /dev/null @@ -1,874 +0,0 @@ -package toml - -import ( - "fmt" - "strings" - "unicode/utf8" -) - -type itemType int - -const ( - itemError itemType = iota - itemNIL // used in the parser to indicate no type - itemEOF - itemText - itemString - itemRawString - itemMultilineString - itemRawMultilineString - itemBool - itemInteger - itemFloat - itemDatetime - itemArray // the start of an array - itemArrayEnd - itemTableStart - itemTableEnd - itemArrayTableStart - itemArrayTableEnd - itemKeyStart - itemCommentStart -) - -const ( - eof = 0 - tableStart = '[' - tableEnd = ']' - arrayTableStart = '[' - arrayTableEnd = ']' - tableSep = '.' - keySep = '=' - arrayStart = '[' - arrayEnd = ']' - arrayValTerm = ',' - commentStart = '#' - stringStart = '"' - stringEnd = '"' - rawStringStart = '\'' - rawStringEnd = '\'' -) - -type stateFn func(lx *lexer) stateFn - -type lexer struct { - input string - start int - pos int - width int - line int - state stateFn - items chan item - - // A stack of state functions used to maintain context. - // The idea is to reuse parts of the state machine in various places. - // For example, values can appear at the top level or within arbitrarily - // nested arrays. The last state on the stack is used after a value has - // been lexed. Similarly for comments. - stack []stateFn -} - -type item struct { - typ itemType - val string - line int -} - -func (lx *lexer) nextItem() item { - for { - select { - case item := <-lx.items: - return item - default: - lx.state = lx.state(lx) - } - } -} - -func lex(input string) *lexer { - lx := &lexer{ - input: input + "\n", - state: lexTop, - line: 1, - items: make(chan item, 10), - stack: make([]stateFn, 0, 10), - } - return lx -} - -func (lx *lexer) push(state stateFn) { - lx.stack = append(lx.stack, state) -} - -func (lx *lexer) pop() stateFn { - if len(lx.stack) == 0 { - return lx.errorf("BUG in lexer: no states to pop.") - } - last := lx.stack[len(lx.stack)-1] - lx.stack = lx.stack[0 : len(lx.stack)-1] - return last -} - -func (lx *lexer) current() string { - return lx.input[lx.start:lx.pos] -} - -func (lx *lexer) emit(typ itemType) { - lx.items <- item{typ, lx.current(), lx.line} - lx.start = lx.pos -} - -func (lx *lexer) emitTrim(typ itemType) { - lx.items <- item{typ, strings.TrimSpace(lx.current()), lx.line} - lx.start = lx.pos -} - -func (lx *lexer) next() (r rune) { - if lx.pos >= len(lx.input) { - lx.width = 0 - return eof - } - - if lx.input[lx.pos] == '\n' { - lx.line++ - } - r, lx.width = utf8.DecodeRuneInString(lx.input[lx.pos:]) - lx.pos += lx.width - return r -} - -// ignore skips over the pending input before this point. -func (lx *lexer) ignore() { - lx.start = lx.pos -} - -// backup steps back one rune. Can be called only once per call of next. -func (lx *lexer) backup() { - lx.pos -= lx.width - if lx.pos < len(lx.input) && lx.input[lx.pos] == '\n' { - lx.line-- - } -} - -// accept consumes the next rune if it's equal to `valid`. -func (lx *lexer) accept(valid rune) bool { - if lx.next() == valid { - return true - } - lx.backup() - return false -} - -// peek returns but does not consume the next rune in the input. -func (lx *lexer) peek() rune { - r := lx.next() - lx.backup() - return r -} - -// errorf stops all lexing by emitting an error and returning `nil`. -// Note that any value that is a character is escaped if it's a special -// character (new lines, tabs, etc.). -func (lx *lexer) errorf(format string, values ...interface{}) stateFn { - lx.items <- item{ - itemError, - fmt.Sprintf(format, values...), - lx.line, - } - return nil -} - -// lexTop consumes elements at the top level of TOML data. -func lexTop(lx *lexer) stateFn { - r := lx.next() - if isWhitespace(r) || isNL(r) { - return lexSkip(lx, lexTop) - } - - switch r { - case commentStart: - lx.push(lexTop) - return lexCommentStart - case tableStart: - return lexTableStart - case eof: - if lx.pos > lx.start { - return lx.errorf("Unexpected EOF.") - } - lx.emit(itemEOF) - return nil - } - - // At this point, the only valid item can be a key, so we back up - // and let the key lexer do the rest. - lx.backup() - lx.push(lexTopEnd) - return lexKeyStart -} - -// lexTopEnd is entered whenever a top-level item has been consumed. (A value -// or a table.) It must see only whitespace, and will turn back to lexTop -// upon a new line. If it sees EOF, it will quit the lexer successfully. -func lexTopEnd(lx *lexer) stateFn { - r := lx.next() - switch { - case r == commentStart: - // a comment will read to a new line for us. - lx.push(lexTop) - return lexCommentStart - case isWhitespace(r): - return lexTopEnd - case isNL(r): - lx.ignore() - return lexTop - case r == eof: - lx.ignore() - return lexTop - } - return lx.errorf("Expected a top-level item to end with a new line, "+ - "comment or EOF, but got %q instead.", r) -} - -// lexTable lexes the beginning of a table. Namely, it makes sure that -// it starts with a character other than '.' and ']'. -// It assumes that '[' has already been consumed. -// It also handles the case that this is an item in an array of tables. -// e.g., '[[name]]'. -func lexTableStart(lx *lexer) stateFn { - if lx.peek() == arrayTableStart { - lx.next() - lx.emit(itemArrayTableStart) - lx.push(lexArrayTableEnd) - } else { - lx.emit(itemTableStart) - lx.push(lexTableEnd) - } - return lexTableNameStart -} - -func lexTableEnd(lx *lexer) stateFn { - lx.emit(itemTableEnd) - return lexTopEnd -} - -func lexArrayTableEnd(lx *lexer) stateFn { - if r := lx.next(); r != arrayTableEnd { - return lx.errorf("Expected end of table array name delimiter %q, "+ - "but got %q instead.", arrayTableEnd, r) - } - lx.emit(itemArrayTableEnd) - return lexTopEnd -} - -func lexTableNameStart(lx *lexer) stateFn { - switch r := lx.peek(); { - case r == tableEnd || r == eof: - return lx.errorf("Unexpected end of table name. (Table names cannot " + - "be empty.)") - case r == tableSep: - return lx.errorf("Unexpected table separator. (Table names cannot " + - "be empty.)") - case r == stringStart || r == rawStringStart: - lx.ignore() - lx.push(lexTableNameEnd) - return lexValue // reuse string lexing - case isWhitespace(r): - return lexTableNameStart - default: - return lexBareTableName - } -} - -// lexTableName lexes the name of a table. It assumes that at least one -// valid character for the table has already been read. -func lexBareTableName(lx *lexer) stateFn { - switch r := lx.next(); { - case isBareKeyChar(r): - return lexBareTableName - case r == tableSep || r == tableEnd: - lx.backup() - lx.emitTrim(itemText) - return lexTableNameEnd - default: - return lx.errorf("Bare keys cannot contain %q.", r) - } -} - -// lexTableNameEnd reads the end of a piece of a table name, optionally -// consuming whitespace. -func lexTableNameEnd(lx *lexer) stateFn { - switch r := lx.next(); { - case isWhitespace(r): - return lexTableNameEnd - case r == tableSep: - lx.ignore() - return lexTableNameStart - case r == tableEnd: - return lx.pop() - default: - return lx.errorf("Expected '.' or ']' to end table name, but got %q "+ - "instead.", r) - } -} - -// lexKeyStart consumes a key name up until the first non-whitespace character. -// lexKeyStart will ignore whitespace. -func lexKeyStart(lx *lexer) stateFn { - r := lx.peek() - switch { - case r == keySep: - return lx.errorf("Unexpected key separator %q.", keySep) - case isWhitespace(r) || isNL(r): - lx.next() - return lexSkip(lx, lexKeyStart) - case r == stringStart || r == rawStringStart: - lx.ignore() - lx.emit(itemKeyStart) - lx.push(lexKeyEnd) - return lexValue // reuse string lexing - default: - lx.ignore() - lx.emit(itemKeyStart) - return lexBareKey - } -} - -// lexBareKey consumes the text of a bare key. Assumes that the first character -// (which is not whitespace) has not yet been consumed. -func lexBareKey(lx *lexer) stateFn { - switch r := lx.next(); { - case isBareKeyChar(r): - return lexBareKey - case isWhitespace(r): - lx.emitTrim(itemText) - return lexKeyEnd - case r == keySep: - lx.backup() - lx.emitTrim(itemText) - return lexKeyEnd - default: - return lx.errorf("Bare keys cannot contain %q.", r) - } -} - -// lexKeyEnd consumes the end of a key and trims whitespace (up to the key -// separator). -func lexKeyEnd(lx *lexer) stateFn { - switch r := lx.next(); { - case r == keySep: - return lexSkip(lx, lexValue) - case isWhitespace(r): - return lexSkip(lx, lexKeyEnd) - default: - return lx.errorf("Expected key separator %q, but got %q instead.", - keySep, r) - } -} - -// lexValue starts the consumption of a value anywhere a value is expected. -// lexValue will ignore whitespace. -// After a value is lexed, the last state on the next is popped and returned. -func lexValue(lx *lexer) stateFn { - // We allow whitespace to precede a value, but NOT new lines. - // In array syntax, the array states are responsible for ignoring new - // lines. - r := lx.next() - if isWhitespace(r) { - return lexSkip(lx, lexValue) - } - - switch { - case r == arrayStart: - lx.ignore() - lx.emit(itemArray) - return lexArrayValue - case r == stringStart: - if lx.accept(stringStart) { - if lx.accept(stringStart) { - lx.ignore() // Ignore """ - return lexMultilineString - } - lx.backup() - } - lx.ignore() // ignore the '"' - return lexString - case r == rawStringStart: - if lx.accept(rawStringStart) { - if lx.accept(rawStringStart) { - lx.ignore() // Ignore """ - return lexMultilineRawString - } - lx.backup() - } - lx.ignore() // ignore the "'" - return lexRawString - case r == 't': - return lexTrue - case r == 'f': - return lexFalse - case r == '-': - return lexNumberStart - case isDigit(r): - lx.backup() // avoid an extra state and use the same as above - return lexNumberOrDateStart - case r == '.': // special error case, be kind to users - return lx.errorf("Floats must start with a digit, not '.'.") - } - return lx.errorf("Expected value but found %q instead.", r) -} - -// lexArrayValue consumes one value in an array. It assumes that '[' or ',' -// have already been consumed. All whitespace and new lines are ignored. -func lexArrayValue(lx *lexer) stateFn { - r := lx.next() - switch { - case isWhitespace(r) || isNL(r): - return lexSkip(lx, lexArrayValue) - case r == commentStart: - lx.push(lexArrayValue) - return lexCommentStart - case r == arrayValTerm: - return lx.errorf("Unexpected array value terminator %q.", - arrayValTerm) - case r == arrayEnd: - return lexArrayEnd - } - - lx.backup() - lx.push(lexArrayValueEnd) - return lexValue -} - -// lexArrayValueEnd consumes the cruft between values of an array. Namely, -// it ignores whitespace and expects either a ',' or a ']'. -func lexArrayValueEnd(lx *lexer) stateFn { - r := lx.next() - switch { - case isWhitespace(r) || isNL(r): - return lexSkip(lx, lexArrayValueEnd) - case r == commentStart: - lx.push(lexArrayValueEnd) - return lexCommentStart - case r == arrayValTerm: - lx.ignore() - return lexArrayValue // move on to the next value - case r == arrayEnd: - return lexArrayEnd - } - return lx.errorf("Expected an array value terminator %q or an array "+ - "terminator %q, but got %q instead.", arrayValTerm, arrayEnd, r) -} - -// lexArrayEnd finishes the lexing of an array. It assumes that a ']' has -// just been consumed. -func lexArrayEnd(lx *lexer) stateFn { - lx.ignore() - lx.emit(itemArrayEnd) - return lx.pop() -} - -// lexString consumes the inner contents of a string. It assumes that the -// beginning '"' has already been consumed and ignored. -func lexString(lx *lexer) stateFn { - r := lx.next() - switch { - case isNL(r): - return lx.errorf("Strings cannot contain new lines.") - case r == '\\': - lx.push(lexString) - return lexStringEscape - case r == stringEnd: - lx.backup() - lx.emit(itemString) - lx.next() - lx.ignore() - return lx.pop() - } - return lexString -} - -// lexMultilineString consumes the inner contents of a string. It assumes that -// the beginning '"""' has already been consumed and ignored. -func lexMultilineString(lx *lexer) stateFn { - r := lx.next() - switch { - case r == '\\': - return lexMultilineStringEscape - case r == stringEnd: - if lx.accept(stringEnd) { - if lx.accept(stringEnd) { - lx.backup() - lx.backup() - lx.backup() - lx.emit(itemMultilineString) - lx.next() - lx.next() - lx.next() - lx.ignore() - return lx.pop() - } - lx.backup() - } - } - return lexMultilineString -} - -// lexRawString consumes a raw string. Nothing can be escaped in such a string. -// It assumes that the beginning "'" has already been consumed and ignored. -func lexRawString(lx *lexer) stateFn { - r := lx.next() - switch { - case isNL(r): - return lx.errorf("Strings cannot contain new lines.") - case r == rawStringEnd: - lx.backup() - lx.emit(itemRawString) - lx.next() - lx.ignore() - return lx.pop() - } - return lexRawString -} - -// lexMultilineRawString consumes a raw string. Nothing can be escaped in such -// a string. It assumes that the beginning "'" has already been consumed and -// ignored. -func lexMultilineRawString(lx *lexer) stateFn { - r := lx.next() - switch { - case r == rawStringEnd: - if lx.accept(rawStringEnd) { - if lx.accept(rawStringEnd) { - lx.backup() - lx.backup() - lx.backup() - lx.emit(itemRawMultilineString) - lx.next() - lx.next() - lx.next() - lx.ignore() - return lx.pop() - } - lx.backup() - } - } - return lexMultilineRawString -} - -// lexMultilineStringEscape consumes an escaped character. It assumes that the -// preceding '\\' has already been consumed. -func lexMultilineStringEscape(lx *lexer) stateFn { - // Handle the special case first: - if isNL(lx.next()) { - lx.next() - return lexMultilineString - } else { - lx.backup() - lx.push(lexMultilineString) - return lexStringEscape(lx) - } -} - -func lexStringEscape(lx *lexer) stateFn { - r := lx.next() - switch r { - case 'b': - fallthrough - case 't': - fallthrough - case 'n': - fallthrough - case 'f': - fallthrough - case 'r': - fallthrough - case '"': - fallthrough - case '\\': - return lx.pop() - case 'u': - return lexShortUnicodeEscape - case 'U': - return lexLongUnicodeEscape - } - return lx.errorf("Invalid escape character %q. Only the following "+ - "escape characters are allowed: "+ - "\\b, \\t, \\n, \\f, \\r, \\\", \\/, \\\\, "+ - "\\uXXXX and \\UXXXXXXXX.", r) -} - -func lexShortUnicodeEscape(lx *lexer) stateFn { - var r rune - for i := 0; i < 4; i++ { - r = lx.next() - if !isHexadecimal(r) { - return lx.errorf("Expected four hexadecimal digits after '\\u', "+ - "but got '%s' instead.", lx.current()) - } - } - return lx.pop() -} - -func lexLongUnicodeEscape(lx *lexer) stateFn { - var r rune - for i := 0; i < 8; i++ { - r = lx.next() - if !isHexadecimal(r) { - return lx.errorf("Expected eight hexadecimal digits after '\\U', "+ - "but got '%s' instead.", lx.current()) - } - } - return lx.pop() -} - -// lexNumberOrDateStart consumes either a (positive) integer, float or -// datetime. It assumes that NO negative sign has been consumed. -func lexNumberOrDateStart(lx *lexer) stateFn { - r := lx.next() - if !isDigit(r) { - if r == '.' { - return lx.errorf("Floats must start with a digit, not '.'.") - } else { - return lx.errorf("Expected a digit but got %q.", r) - } - } - return lexNumberOrDate -} - -// lexNumberOrDate consumes either a (positive) integer, float or datetime. -func lexNumberOrDate(lx *lexer) stateFn { - r := lx.next() - switch { - case r == '-': - if lx.pos-lx.start != 5 { - return lx.errorf("All ISO8601 dates must be in full Zulu form.") - } - return lexDateAfterYear - case isDigit(r): - return lexNumberOrDate - case r == '.': - return lexFloatStart - } - - lx.backup() - lx.emit(itemInteger) - return lx.pop() -} - -// lexDateAfterYear consumes a full Zulu Datetime in ISO8601 format. -// It assumes that "YYYY-" has already been consumed. -func lexDateAfterYear(lx *lexer) stateFn { - formats := []rune{ - // digits are '0'. - // everything else is direct equality. - '0', '0', '-', '0', '0', - 'T', - '0', '0', ':', '0', '0', ':', '0', '0', - 'Z', - } - for _, f := range formats { - r := lx.next() - if f == '0' { - if !isDigit(r) { - return lx.errorf("Expected digit in ISO8601 datetime, "+ - "but found %q instead.", r) - } - } else if f != r { - return lx.errorf("Expected %q in ISO8601 datetime, "+ - "but found %q instead.", f, r) - } - } - lx.emit(itemDatetime) - return lx.pop() -} - -// lexNumberStart consumes either an integer or a float. It assumes that -// a negative sign has already been read, but that *no* digits have been -// consumed. lexNumberStart will move to the appropriate integer or float -// states. -func lexNumberStart(lx *lexer) stateFn { - // we MUST see a digit. Even floats have to start with a digit. - r := lx.next() - if !isDigit(r) { - if r == '.' { - return lx.errorf("Floats must start with a digit, not '.'.") - } else { - return lx.errorf("Expected a digit but got %q.", r) - } - } - return lexNumber -} - -// lexNumber consumes an integer or a float after seeing the first digit. -func lexNumber(lx *lexer) stateFn { - r := lx.next() - switch { - case isDigit(r): - return lexNumber - case r == '.': - return lexFloatStart - } - - lx.backup() - lx.emit(itemInteger) - return lx.pop() -} - -// lexFloatStart starts the consumption of digits of a float after a '.'. -// Namely, at least one digit is required. -func lexFloatStart(lx *lexer) stateFn { - r := lx.next() - if !isDigit(r) { - return lx.errorf("Floats must have a digit after the '.', but got "+ - "%q instead.", r) - } - return lexFloat -} - -// lexFloat consumes the digits of a float after a '.'. -// Assumes that one digit has been consumed after a '.' already. -func lexFloat(lx *lexer) stateFn { - r := lx.next() - if isDigit(r) { - return lexFloat - } - - lx.backup() - lx.emit(itemFloat) - return lx.pop() -} - -// lexConst consumes the s[1:] in s. It assumes that s[0] has already been -// consumed. -func lexConst(lx *lexer, s string) stateFn { - for i := range s[1:] { - if r := lx.next(); r != rune(s[i+1]) { - return lx.errorf("Expected %q, but found %q instead.", s[:i+1], - s[:i]+string(r)) - } - } - return nil -} - -// lexTrue consumes the "rue" in "true". It assumes that 't' has already -// been consumed. -func lexTrue(lx *lexer) stateFn { - if fn := lexConst(lx, "true"); fn != nil { - return fn - } - lx.emit(itemBool) - return lx.pop() -} - -// lexFalse consumes the "alse" in "false". It assumes that 'f' has already -// been consumed. -func lexFalse(lx *lexer) stateFn { - if fn := lexConst(lx, "false"); fn != nil { - return fn - } - lx.emit(itemBool) - return lx.pop() -} - -// lexCommentStart begins the lexing of a comment. It will emit -// itemCommentStart and consume no characters, passing control to lexComment. -func lexCommentStart(lx *lexer) stateFn { - lx.ignore() - lx.emit(itemCommentStart) - return lexComment -} - -// lexComment lexes an entire comment. It assumes that '#' has been consumed. -// It will consume *up to* the first new line character, and pass control -// back to the last state on the stack. -func lexComment(lx *lexer) stateFn { - r := lx.peek() - if isNL(r) || r == eof { - lx.emit(itemText) - return lx.pop() - } - lx.next() - return lexComment -} - -// lexSkip ignores all slurped input and moves on to the next state. -func lexSkip(lx *lexer, nextState stateFn) stateFn { - return func(lx *lexer) stateFn { - lx.ignore() - return nextState - } -} - -// isWhitespace returns true if `r` is a whitespace character according -// to the spec. -func isWhitespace(r rune) bool { - return r == '\t' || r == ' ' -} - -func isNL(r rune) bool { - return r == '\n' || r == '\r' -} - -func isDigit(r rune) bool { - return r >= '0' && r <= '9' -} - -func isHexadecimal(r rune) bool { - return (r >= '0' && r <= '9') || - (r >= 'a' && r <= 'f') || - (r >= 'A' && r <= 'F') -} - -func isBareKeyChar(r rune) bool { - return (r >= 'A' && r <= 'Z') || - (r >= 'a' && r <= 'z') || - (r >= '0' && r <= '9') || - r == '_' || - r == '-' -} - -func (itype itemType) String() string { - switch itype { - case itemError: - return "Error" - case itemNIL: - return "NIL" - case itemEOF: - return "EOF" - case itemText: - return "Text" - case itemString: - return "String" - case itemRawString: - return "String" - case itemMultilineString: - return "String" - case itemRawMultilineString: - return "String" - case itemBool: - return "Bool" - case itemInteger: - return "Integer" - case itemFloat: - return "Float" - case itemDatetime: - return "DateTime" - case itemTableStart: - return "TableStart" - case itemTableEnd: - return "TableEnd" - case itemKeyStart: - return "KeyStart" - case itemArray: - return "Array" - case itemArrayEnd: - return "ArrayEnd" - case itemCommentStart: - return "CommentStart" - } - panic(fmt.Sprintf("BUG: Unknown type '%d'.", int(itype))) -} - -func (item item) String() string { - return fmt.Sprintf("(%s, %s)", item.typ.String(), item.val) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/parse.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/parse.go deleted file mode 100644 index c6069be..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/parse.go +++ /dev/null @@ -1,498 +0,0 @@ -package toml - -import ( - "fmt" - "log" - "strconv" - "strings" - "time" - "unicode" - "unicode/utf8" -) - -type parser struct { - mapping map[string]interface{} - types map[string]tomlType - lx *lexer - - // A list of keys in the order that they appear in the TOML data. - ordered []Key - - // the full key for the current hash in scope - context Key - - // the base key name for everything except hashes - currentKey string - - // rough approximation of line number - approxLine int - - // A map of 'key.group.names' to whether they were created implicitly. - implicits map[string]bool -} - -type parseError string - -func (pe parseError) Error() string { - return string(pe) -} - -func parse(data string) (p *parser, err error) { - defer func() { - if r := recover(); r != nil { - var ok bool - if err, ok = r.(parseError); ok { - return - } - panic(r) - } - }() - - p = &parser{ - mapping: make(map[string]interface{}), - types: make(map[string]tomlType), - lx: lex(data), - ordered: make([]Key, 0), - implicits: make(map[string]bool), - } - for { - item := p.next() - if item.typ == itemEOF { - break - } - p.topLevel(item) - } - - return p, nil -} - -func (p *parser) panicf(format string, v ...interface{}) { - msg := fmt.Sprintf("Near line %d (last key parsed '%s'): %s", - p.approxLine, p.current(), fmt.Sprintf(format, v...)) - panic(parseError(msg)) -} - -func (p *parser) next() item { - it := p.lx.nextItem() - if it.typ == itemError { - p.panicf("%s", it.val) - } - return it -} - -func (p *parser) bug(format string, v ...interface{}) { - log.Fatalf("BUG: %s\n\n", fmt.Sprintf(format, v...)) -} - -func (p *parser) expect(typ itemType) item { - it := p.next() - p.assertEqual(typ, it.typ) - return it -} - -func (p *parser) assertEqual(expected, got itemType) { - if expected != got { - p.bug("Expected '%s' but got '%s'.", expected, got) - } -} - -func (p *parser) topLevel(item item) { - switch item.typ { - case itemCommentStart: - p.approxLine = item.line - p.expect(itemText) - case itemTableStart: - kg := p.next() - p.approxLine = kg.line - - var key Key - for ; kg.typ != itemTableEnd && kg.typ != itemEOF; kg = p.next() { - key = append(key, p.keyString(kg)) - } - p.assertEqual(itemTableEnd, kg.typ) - - p.establishContext(key, false) - p.setType("", tomlHash) - p.ordered = append(p.ordered, key) - case itemArrayTableStart: - kg := p.next() - p.approxLine = kg.line - - var key Key - for ; kg.typ != itemArrayTableEnd && kg.typ != itemEOF; kg = p.next() { - key = append(key, p.keyString(kg)) - } - p.assertEqual(itemArrayTableEnd, kg.typ) - - p.establishContext(key, true) - p.setType("", tomlArrayHash) - p.ordered = append(p.ordered, key) - case itemKeyStart: - kname := p.next() - p.approxLine = kname.line - p.currentKey = p.keyString(kname) - - val, typ := p.value(p.next()) - p.setValue(p.currentKey, val) - p.setType(p.currentKey, typ) - p.ordered = append(p.ordered, p.context.add(p.currentKey)) - p.currentKey = "" - default: - p.bug("Unexpected type at top level: %s", item.typ) - } -} - -// Gets a string for a key (or part of a key in a table name). -func (p *parser) keyString(it item) string { - switch it.typ { - case itemText: - return it.val - case itemString, itemMultilineString, - itemRawString, itemRawMultilineString: - s, _ := p.value(it) - return s.(string) - default: - p.bug("Unexpected key type: %s", it.typ) - panic("unreachable") - } -} - -// value translates an expected value from the lexer into a Go value wrapped -// as an empty interface. -func (p *parser) value(it item) (interface{}, tomlType) { - switch it.typ { - case itemString: - return p.replaceEscapes(it.val), p.typeOfPrimitive(it) - case itemMultilineString: - trimmed := stripFirstNewline(stripEscapedWhitespace(it.val)) - return p.replaceEscapes(trimmed), p.typeOfPrimitive(it) - case itemRawString: - return it.val, p.typeOfPrimitive(it) - case itemRawMultilineString: - return stripFirstNewline(it.val), p.typeOfPrimitive(it) - case itemBool: - switch it.val { - case "true": - return true, p.typeOfPrimitive(it) - case "false": - return false, p.typeOfPrimitive(it) - } - p.bug("Expected boolean value, but got '%s'.", it.val) - case itemInteger: - num, err := strconv.ParseInt(it.val, 10, 64) - if err != nil { - // See comment below for floats describing why we make a - // distinction between a bug and a user error. - if e, ok := err.(*strconv.NumError); ok && - e.Err == strconv.ErrRange { - - p.panicf("Integer '%s' is out of the range of 64-bit "+ - "signed integers.", it.val) - } else { - p.bug("Expected integer value, but got '%s'.", it.val) - } - } - return num, p.typeOfPrimitive(it) - case itemFloat: - num, err := strconv.ParseFloat(it.val, 64) - if err != nil { - // Distinguish float values. Normally, it'd be a bug if the lexer - // provides an invalid float, but it's possible that the float is - // out of range of valid values (which the lexer cannot determine). - // So mark the former as a bug but the latter as a legitimate user - // error. - // - // This is also true for integers. - if e, ok := err.(*strconv.NumError); ok && - e.Err == strconv.ErrRange { - - p.panicf("Float '%s' is out of the range of 64-bit "+ - "IEEE-754 floating-point numbers.", it.val) - } else { - p.bug("Expected float value, but got '%s'.", it.val) - } - } - return num, p.typeOfPrimitive(it) - case itemDatetime: - t, err := time.Parse("2006-01-02T15:04:05Z", it.val) - if err != nil { - p.bug("Expected Zulu formatted DateTime, but got '%s'.", it.val) - } - return t, p.typeOfPrimitive(it) - case itemArray: - array := make([]interface{}, 0) - types := make([]tomlType, 0) - - for it = p.next(); it.typ != itemArrayEnd; it = p.next() { - if it.typ == itemCommentStart { - p.expect(itemText) - continue - } - - val, typ := p.value(it) - array = append(array, val) - types = append(types, typ) - } - return array, p.typeOfArray(types) - } - p.bug("Unexpected value type: %s", it.typ) - panic("unreachable") -} - -// establishContext sets the current context of the parser, -// where the context is either a hash or an array of hashes. Which one is -// set depends on the value of the `array` parameter. -// -// Establishing the context also makes sure that the key isn't a duplicate, and -// will create implicit hashes automatically. -func (p *parser) establishContext(key Key, array bool) { - var ok bool - - // Always start at the top level and drill down for our context. - hashContext := p.mapping - keyContext := make(Key, 0) - - // We only need implicit hashes for key[0:-1] - for _, k := range key[0 : len(key)-1] { - _, ok = hashContext[k] - keyContext = append(keyContext, k) - - // No key? Make an implicit hash and move on. - if !ok { - p.addImplicit(keyContext) - hashContext[k] = make(map[string]interface{}) - } - - // If the hash context is actually an array of tables, then set - // the hash context to the last element in that array. - // - // Otherwise, it better be a table, since this MUST be a key group (by - // virtue of it not being the last element in a key). - switch t := hashContext[k].(type) { - case []map[string]interface{}: - hashContext = t[len(t)-1] - case map[string]interface{}: - hashContext = t - default: - p.panicf("Key '%s' was already created as a hash.", keyContext) - } - } - - p.context = keyContext - if array { - // If this is the first element for this array, then allocate a new - // list of tables for it. - k := key[len(key)-1] - if _, ok := hashContext[k]; !ok { - hashContext[k] = make([]map[string]interface{}, 0, 5) - } - - // Add a new table. But make sure the key hasn't already been used - // for something else. - if hash, ok := hashContext[k].([]map[string]interface{}); ok { - hashContext[k] = append(hash, make(map[string]interface{})) - } else { - p.panicf("Key '%s' was already created and cannot be used as "+ - "an array.", keyContext) - } - } else { - p.setValue(key[len(key)-1], make(map[string]interface{})) - } - p.context = append(p.context, key[len(key)-1]) -} - -// setValue sets the given key to the given value in the current context. -// It will make sure that the key hasn't already been defined, account for -// implicit key groups. -func (p *parser) setValue(key string, value interface{}) { - var tmpHash interface{} - var ok bool - - hash := p.mapping - keyContext := make(Key, 0) - for _, k := range p.context { - keyContext = append(keyContext, k) - if tmpHash, ok = hash[k]; !ok { - p.bug("Context for key '%s' has not been established.", keyContext) - } - switch t := tmpHash.(type) { - case []map[string]interface{}: - // The context is a table of hashes. Pick the most recent table - // defined as the current hash. - hash = t[len(t)-1] - case map[string]interface{}: - hash = t - default: - p.bug("Expected hash to have type 'map[string]interface{}', but "+ - "it has '%T' instead.", tmpHash) - } - } - keyContext = append(keyContext, key) - - if _, ok := hash[key]; ok { - // Typically, if the given key has already been set, then we have - // to raise an error since duplicate keys are disallowed. However, - // it's possible that a key was previously defined implicitly. In this - // case, it is allowed to be redefined concretely. (See the - // `tests/valid/implicit-and-explicit-after.toml` test in `toml-test`.) - // - // But we have to make sure to stop marking it as an implicit. (So that - // another redefinition provokes an error.) - // - // Note that since it has already been defined (as a hash), we don't - // want to overwrite it. So our business is done. - if p.isImplicit(keyContext) { - p.removeImplicit(keyContext) - return - } - - // Otherwise, we have a concrete key trying to override a previous - // key, which is *always* wrong. - p.panicf("Key '%s' has already been defined.", keyContext) - } - hash[key] = value -} - -// setType sets the type of a particular value at a given key. -// It should be called immediately AFTER setValue. -// -// Note that if `key` is empty, then the type given will be applied to the -// current context (which is either a table or an array of tables). -func (p *parser) setType(key string, typ tomlType) { - keyContext := make(Key, 0, len(p.context)+1) - for _, k := range p.context { - keyContext = append(keyContext, k) - } - if len(key) > 0 { // allow type setting for hashes - keyContext = append(keyContext, key) - } - p.types[keyContext.String()] = typ -} - -// addImplicit sets the given Key as having been created implicitly. -func (p *parser) addImplicit(key Key) { - p.implicits[key.String()] = true -} - -// removeImplicit stops tagging the given key as having been implicitly -// created. -func (p *parser) removeImplicit(key Key) { - p.implicits[key.String()] = false -} - -// isImplicit returns true if the key group pointed to by the key was created -// implicitly. -func (p *parser) isImplicit(key Key) bool { - return p.implicits[key.String()] -} - -// current returns the full key name of the current context. -func (p *parser) current() string { - if len(p.currentKey) == 0 { - return p.context.String() - } - if len(p.context) == 0 { - return p.currentKey - } - return fmt.Sprintf("%s.%s", p.context, p.currentKey) -} - -func stripFirstNewline(s string) string { - if len(s) == 0 || s[0] != '\n' { - return s - } - return s[1:len(s)] -} - -func stripEscapedWhitespace(s string) string { - esc := strings.Split(s, "\\\n") - if len(esc) > 1 { - for i := 1; i < len(esc); i++ { - esc[i] = strings.TrimLeftFunc(esc[i], unicode.IsSpace) - } - } - return strings.Join(esc, "") -} - -func (p *parser) replaceEscapes(str string) string { - var replaced []rune - s := []byte(str) - r := 0 - for r < len(s) { - if s[r] != '\\' { - c, size := utf8.DecodeRune(s[r:]) - r += size - replaced = append(replaced, c) - continue - } - r += 1 - if r >= len(s) { - p.bug("Escape sequence at end of string.") - return "" - } - switch s[r] { - default: - p.bug("Expected valid escape code after \\, but got %q.", s[r]) - return "" - case 'b': - replaced = append(replaced, rune(0x0008)) - r += 1 - case 't': - replaced = append(replaced, rune(0x0009)) - r += 1 - case 'n': - replaced = append(replaced, rune(0x000A)) - r += 1 - case 'f': - replaced = append(replaced, rune(0x000C)) - r += 1 - case 'r': - replaced = append(replaced, rune(0x000D)) - r += 1 - case '"': - replaced = append(replaced, rune(0x0022)) - r += 1 - case '\\': - replaced = append(replaced, rune(0x005C)) - r += 1 - case 'u': - // At this point, we know we have a Unicode escape of the form - // `uXXXX` at [r, r+5). (Because the lexer guarantees this - // for us.) - escaped := p.asciiEscapeToUnicode(s[r+1 : r+5]) - replaced = append(replaced, escaped) - r += 5 - case 'U': - // At this point, we know we have a Unicode escape of the form - // `uXXXX` at [r, r+9). (Because the lexer guarantees this - // for us.) - escaped := p.asciiEscapeToUnicode(s[r+1 : r+9]) - replaced = append(replaced, escaped) - r += 9 - } - } - return string(replaced) -} - -func (p *parser) asciiEscapeToUnicode(bs []byte) rune { - s := string(bs) - hex, err := strconv.ParseUint(strings.ToLower(s), 16, 32) - if err != nil { - p.bug("Could not parse '%s' as a hexadecimal number, but the "+ - "lexer claims it's OK: %s", s, err) - } - - // BUG(burntsushi) - // I honestly don't understand how this works. I can't seem - // to find a way to make this fail. I figured this would fail on invalid - // UTF-8 characters like U+DCFF, but it doesn't. - if !utf8.ValidString(string(rune(hex))) { - p.panicf("Escaped character '\\u%s' is not valid UTF-8.", s) - } - return rune(hex) -} - -func isStringType(ty itemType) bool { - return ty == itemString || ty == itemMultilineString || - ty == itemRawString || ty == itemRawMultilineString -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_check.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_check.go deleted file mode 100644 index c73f8af..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_check.go +++ /dev/null @@ -1,91 +0,0 @@ -package toml - -// tomlType represents any Go type that corresponds to a TOML type. -// While the first draft of the TOML spec has a simplistic type system that -// probably doesn't need this level of sophistication, we seem to be militating -// toward adding real composite types. -type tomlType interface { - typeString() string -} - -// typeEqual accepts any two types and returns true if they are equal. -func typeEqual(t1, t2 tomlType) bool { - if t1 == nil || t2 == nil { - return false - } - return t1.typeString() == t2.typeString() -} - -func typeIsHash(t tomlType) bool { - return typeEqual(t, tomlHash) || typeEqual(t, tomlArrayHash) -} - -type tomlBaseType string - -func (btype tomlBaseType) typeString() string { - return string(btype) -} - -func (btype tomlBaseType) String() string { - return btype.typeString() -} - -var ( - tomlInteger tomlBaseType = "Integer" - tomlFloat tomlBaseType = "Float" - tomlDatetime tomlBaseType = "Datetime" - tomlString tomlBaseType = "String" - tomlBool tomlBaseType = "Bool" - tomlArray tomlBaseType = "Array" - tomlHash tomlBaseType = "Hash" - tomlArrayHash tomlBaseType = "ArrayHash" -) - -// typeOfPrimitive returns a tomlType of any primitive value in TOML. -// Primitive values are: Integer, Float, Datetime, String and Bool. -// -// Passing a lexer item other than the following will cause a BUG message -// to occur: itemString, itemBool, itemInteger, itemFloat, itemDatetime. -func (p *parser) typeOfPrimitive(lexItem item) tomlType { - switch lexItem.typ { - case itemInteger: - return tomlInteger - case itemFloat: - return tomlFloat - case itemDatetime: - return tomlDatetime - case itemString: - return tomlString - case itemMultilineString: - return tomlString - case itemRawString: - return tomlString - case itemRawMultilineString: - return tomlString - case itemBool: - return tomlBool - } - p.bug("Cannot infer primitive type of lex item '%s'.", lexItem) - panic("unreachable") -} - -// typeOfArray returns a tomlType for an array given a list of types of its -// values. -// -// In the current spec, if an array is homogeneous, then its type is always -// "Array". If the array is not homogeneous, an error is generated. -func (p *parser) typeOfArray(types []tomlType) tomlType { - // Empty arrays are cool. - if len(types) == 0 { - return tomlArray - } - - theType := types[0] - for _, t := range types[1:] { - if !typeEqual(theType, t) { - p.panicf("Array contains values of type '%s' and '%s', but "+ - "arrays must be homogeneous.", theType, t) - } - } - return tomlArray -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_fields.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_fields.go deleted file mode 100644 index 7592f87..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/BurntSushi/toml/type_fields.go +++ /dev/null @@ -1,241 +0,0 @@ -package toml - -// Struct field handling is adapted from code in encoding/json: -// -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the Go distribution. - -import ( - "reflect" - "sort" - "sync" -) - -// A field represents a single field found in a struct. -type field struct { - name string // the name of the field (`toml` tag included) - tag bool // whether field has a `toml` tag - index []int // represents the depth of an anonymous field - typ reflect.Type // the type of the field -} - -// byName sorts field by name, breaking ties with depth, -// then breaking ties with "name came from toml tag", then -// breaking ties with index sequence. -type byName []field - -func (x byName) Len() int { return len(x) } - -func (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x byName) Less(i, j int) bool { - if x[i].name != x[j].name { - return x[i].name < x[j].name - } - if len(x[i].index) != len(x[j].index) { - return len(x[i].index) < len(x[j].index) - } - if x[i].tag != x[j].tag { - return x[i].tag - } - return byIndex(x).Less(i, j) -} - -// byIndex sorts field by index sequence. -type byIndex []field - -func (x byIndex) Len() int { return len(x) } - -func (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x byIndex) Less(i, j int) bool { - for k, xik := range x[i].index { - if k >= len(x[j].index) { - return false - } - if xik != x[j].index[k] { - return xik < x[j].index[k] - } - } - return len(x[i].index) < len(x[j].index) -} - -// typeFields returns a list of fields that TOML should recognize for the given -// type. The algorithm is breadth-first search over the set of structs to -// include - the top struct and then any reachable anonymous structs. -func typeFields(t reflect.Type) []field { - // Anonymous fields to explore at the current level and the next. - current := []field{} - next := []field{{typ: t}} - - // Count of queued names for current level and the next. - count := map[reflect.Type]int{} - nextCount := map[reflect.Type]int{} - - // Types already visited at an earlier level. - visited := map[reflect.Type]bool{} - - // Fields found. - var fields []field - - for len(next) > 0 { - current, next = next, current[:0] - count, nextCount = nextCount, map[reflect.Type]int{} - - for _, f := range current { - if visited[f.typ] { - continue - } - visited[f.typ] = true - - // Scan f.typ for fields to include. - for i := 0; i < f.typ.NumField(); i++ { - sf := f.typ.Field(i) - if sf.PkgPath != "" { // unexported - continue - } - name := sf.Tag.Get("toml") - if name == "-" { - continue - } - index := make([]int, len(f.index)+1) - copy(index, f.index) - index[len(f.index)] = i - - ft := sf.Type - if ft.Name() == "" && ft.Kind() == reflect.Ptr { - // Follow pointer. - ft = ft.Elem() - } - - // Record found field and index sequence. - if name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct { - tagged := name != "" - if name == "" { - name = sf.Name - } - fields = append(fields, field{name, tagged, index, ft}) - if count[f.typ] > 1 { - // If there were multiple instances, add a second, - // so that the annihilation code will see a duplicate. - // It only cares about the distinction between 1 or 2, - // so don't bother generating any more copies. - fields = append(fields, fields[len(fields)-1]) - } - continue - } - - // Record new anonymous struct to explore in next round. - nextCount[ft]++ - if nextCount[ft] == 1 { - f := field{name: ft.Name(), index: index, typ: ft} - next = append(next, f) - } - } - } - } - - sort.Sort(byName(fields)) - - // Delete all fields that are hidden by the Go rules for embedded fields, - // except that fields with TOML tags are promoted. - - // The fields are sorted in primary order of name, secondary order - // of field index length. Loop over names; for each name, delete - // hidden fields by choosing the one dominant field that survives. - out := fields[:0] - for advance, i := 0, 0; i < len(fields); i += advance { - // One iteration per name. - // Find the sequence of fields with the name of this first field. - fi := fields[i] - name := fi.name - for advance = 1; i+advance < len(fields); advance++ { - fj := fields[i+advance] - if fj.name != name { - break - } - } - if advance == 1 { // Only one field with this name - out = append(out, fi) - continue - } - dominant, ok := dominantField(fields[i : i+advance]) - if ok { - out = append(out, dominant) - } - } - - fields = out - sort.Sort(byIndex(fields)) - - return fields -} - -// dominantField looks through the fields, all of which are known to -// have the same name, to find the single field that dominates the -// others using Go's embedding rules, modified by the presence of -// TOML tags. If there are multiple top-level fields, the boolean -// will be false: This condition is an error in Go and we skip all -// the fields. -func dominantField(fields []field) (field, bool) { - // The fields are sorted in increasing index-length order. The winner - // must therefore be one with the shortest index length. Drop all - // longer entries, which is easy: just truncate the slice. - length := len(fields[0].index) - tagged := -1 // Index of first tagged field. - for i, f := range fields { - if len(f.index) > length { - fields = fields[:i] - break - } - if f.tag { - if tagged >= 0 { - // Multiple tagged fields at the same level: conflict. - // Return no field. - return field{}, false - } - tagged = i - } - } - if tagged >= 0 { - return fields[tagged], true - } - // All remaining fields have the same length. If there's more than one, - // we have a conflict (two fields named "X" at the same level) and we - // return no field. - if len(fields) > 1 { - return field{}, false - } - return fields[0], true -} - -var fieldCache struct { - sync.RWMutex - m map[reflect.Type][]field -} - -// cachedTypeFields is like typeFields but uses a cache to avoid repeated work. -func cachedTypeFields(t reflect.Type) []field { - fieldCache.RLock() - f := fieldCache.m[t] - fieldCache.RUnlock() - if f != nil { - return f - } - - // Compute fields without lock. - // Might duplicate effort but won't hold other computations back. - f = typeFields(t) - if f == nil { - f = []field{} - } - - fieldCache.Lock() - if fieldCache.m == nil { - fieldCache.m = map[reflect.Type][]field{} - } - fieldCache.m[t] = f - fieldCache.Unlock() - return f -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/LICENSE deleted file mode 100644 index 14e2f77..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/LICENSE +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/appengine.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/appengine.go deleted file mode 100644 index 565614e..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/appengine.go +++ /dev/null @@ -1,19 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -// +build appengine - -package mysql - -import ( - "appengine/cloudsql" -) - -func init() { - RegisterDial("cloudsql", cloudsql.Dial) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/buffer.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/buffer.go deleted file mode 100644 index 2001fea..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/buffer.go +++ /dev/null @@ -1,147 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "io" - "net" - "time" -) - -const defaultBufSize = 4096 - -// A buffer which is used for both reading and writing. -// This is possible since communication on each connection is synchronous. -// In other words, we can't write and read simultaneously on the same connection. -// The buffer is similar to bufio.Reader / Writer but zero-copy-ish -// Also highly optimized for this particular use case. -type buffer struct { - buf []byte - nc net.Conn - idx int - length int - timeout time.Duration -} - -func newBuffer(nc net.Conn) buffer { - var b [defaultBufSize]byte - return buffer{ - buf: b[:], - nc: nc, - } -} - -// fill reads into the buffer until at least _need_ bytes are in it -func (b *buffer) fill(need int) error { - n := b.length - - // move existing data to the beginning - if n > 0 && b.idx > 0 { - copy(b.buf[0:n], b.buf[b.idx:]) - } - - // grow buffer if necessary - // TODO: let the buffer shrink again at some point - // Maybe keep the org buf slice and swap back? - if need > len(b.buf) { - // Round up to the next multiple of the default size - newBuf := make([]byte, ((need/defaultBufSize)+1)*defaultBufSize) - copy(newBuf, b.buf) - b.buf = newBuf - } - - b.idx = 0 - - for { - if b.timeout > 0 { - if err := b.nc.SetReadDeadline(time.Now().Add(b.timeout)); err != nil { - return err - } - } - - nn, err := b.nc.Read(b.buf[n:]) - n += nn - - switch err { - case nil: - if n < need { - continue - } - b.length = n - return nil - - case io.EOF: - if n >= need { - b.length = n - return nil - } - return io.ErrUnexpectedEOF - - default: - return err - } - } -} - -// returns next N bytes from buffer. -// The returned slice is only guaranteed to be valid until the next read -func (b *buffer) readNext(need int) ([]byte, error) { - if b.length < need { - // refill - if err := b.fill(need); err != nil { - return nil, err - } - } - - offset := b.idx - b.idx += need - b.length -= need - return b.buf[offset:b.idx], nil -} - -// returns a buffer with the requested size. -// If possible, a slice from the existing buffer is returned. -// Otherwise a bigger buffer is made. -// Only one buffer (total) can be used at a time. -func (b *buffer) takeBuffer(length int) []byte { - if b.length > 0 { - return nil - } - - // test (cheap) general case first - if length <= defaultBufSize || length <= cap(b.buf) { - return b.buf[:length] - } - - if length < maxPacketSize { - b.buf = make([]byte, length) - return b.buf - } - return make([]byte, length) -} - -// shortcut which can be used if the requested buffer is guaranteed to be -// smaller than defaultBufSize -// Only one buffer (total) can be used at a time. -func (b *buffer) takeSmallBuffer(length int) []byte { - if b.length == 0 { - return b.buf[:length] - } - return nil -} - -// takeCompleteBuffer returns the complete existing buffer. -// This can be used if the necessary buffer size is unknown. -// Only one buffer (total) can be used at a time. -func (b *buffer) takeCompleteBuffer() []byte { - if b.length == 0 { - return b.buf - } - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/collations.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/collations.go deleted file mode 100644 index 82079cf..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/collations.go +++ /dev/null @@ -1,250 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2014 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -const defaultCollation = "utf8_general_ci" - -// A list of available collations mapped to the internal ID. -// To update this map use the following MySQL query: -// SELECT COLLATION_NAME, ID FROM information_schema.COLLATIONS -var collations = map[string]byte{ - "big5_chinese_ci": 1, - "latin2_czech_cs": 2, - "dec8_swedish_ci": 3, - "cp850_general_ci": 4, - "latin1_german1_ci": 5, - "hp8_english_ci": 6, - "koi8r_general_ci": 7, - "latin1_swedish_ci": 8, - "latin2_general_ci": 9, - "swe7_swedish_ci": 10, - "ascii_general_ci": 11, - "ujis_japanese_ci": 12, - "sjis_japanese_ci": 13, - "cp1251_bulgarian_ci": 14, - "latin1_danish_ci": 15, - "hebrew_general_ci": 16, - "tis620_thai_ci": 18, - "euckr_korean_ci": 19, - "latin7_estonian_cs": 20, - "latin2_hungarian_ci": 21, - "koi8u_general_ci": 22, - "cp1251_ukrainian_ci": 23, - "gb2312_chinese_ci": 24, - "greek_general_ci": 25, - "cp1250_general_ci": 26, - "latin2_croatian_ci": 27, - "gbk_chinese_ci": 28, - "cp1257_lithuanian_ci": 29, - "latin5_turkish_ci": 30, - "latin1_german2_ci": 31, - "armscii8_general_ci": 32, - "utf8_general_ci": 33, - "cp1250_czech_cs": 34, - "ucs2_general_ci": 35, - "cp866_general_ci": 36, - "keybcs2_general_ci": 37, - "macce_general_ci": 38, - "macroman_general_ci": 39, - "cp852_general_ci": 40, - "latin7_general_ci": 41, - "latin7_general_cs": 42, - "macce_bin": 43, - "cp1250_croatian_ci": 44, - "utf8mb4_general_ci": 45, - "utf8mb4_bin": 46, - "latin1_bin": 47, - "latin1_general_ci": 48, - "latin1_general_cs": 49, - "cp1251_bin": 50, - "cp1251_general_ci": 51, - "cp1251_general_cs": 52, - "macroman_bin": 53, - "utf16_general_ci": 54, - "utf16_bin": 55, - "utf16le_general_ci": 56, - "cp1256_general_ci": 57, - "cp1257_bin": 58, - "cp1257_general_ci": 59, - "utf32_general_ci": 60, - "utf32_bin": 61, - "utf16le_bin": 62, - "binary": 63, - "armscii8_bin": 64, - "ascii_bin": 65, - "cp1250_bin": 66, - "cp1256_bin": 67, - "cp866_bin": 68, - "dec8_bin": 69, - "greek_bin": 70, - "hebrew_bin": 71, - "hp8_bin": 72, - "keybcs2_bin": 73, - "koi8r_bin": 74, - "koi8u_bin": 75, - "latin2_bin": 77, - "latin5_bin": 78, - "latin7_bin": 79, - "cp850_bin": 80, - "cp852_bin": 81, - "swe7_bin": 82, - "utf8_bin": 83, - "big5_bin": 84, - "euckr_bin": 85, - "gb2312_bin": 86, - "gbk_bin": 87, - "sjis_bin": 88, - "tis620_bin": 89, - "ucs2_bin": 90, - "ujis_bin": 91, - "geostd8_general_ci": 92, - "geostd8_bin": 93, - "latin1_spanish_ci": 94, - "cp932_japanese_ci": 95, - "cp932_bin": 96, - "eucjpms_japanese_ci": 97, - "eucjpms_bin": 98, - "cp1250_polish_ci": 99, - "utf16_unicode_ci": 101, - "utf16_icelandic_ci": 102, - "utf16_latvian_ci": 103, - "utf16_romanian_ci": 104, - "utf16_slovenian_ci": 105, - "utf16_polish_ci": 106, - "utf16_estonian_ci": 107, - "utf16_spanish_ci": 108, - "utf16_swedish_ci": 109, - "utf16_turkish_ci": 110, - "utf16_czech_ci": 111, - "utf16_danish_ci": 112, - "utf16_lithuanian_ci": 113, - "utf16_slovak_ci": 114, - "utf16_spanish2_ci": 115, - "utf16_roman_ci": 116, - "utf16_persian_ci": 117, - "utf16_esperanto_ci": 118, - "utf16_hungarian_ci": 119, - "utf16_sinhala_ci": 120, - "utf16_german2_ci": 121, - "utf16_croatian_ci": 122, - "utf16_unicode_520_ci": 123, - "utf16_vietnamese_ci": 124, - "ucs2_unicode_ci": 128, - "ucs2_icelandic_ci": 129, - "ucs2_latvian_ci": 130, - "ucs2_romanian_ci": 131, - "ucs2_slovenian_ci": 132, - "ucs2_polish_ci": 133, - "ucs2_estonian_ci": 134, - "ucs2_spanish_ci": 135, - "ucs2_swedish_ci": 136, - "ucs2_turkish_ci": 137, - "ucs2_czech_ci": 138, - "ucs2_danish_ci": 139, - "ucs2_lithuanian_ci": 140, - "ucs2_slovak_ci": 141, - "ucs2_spanish2_ci": 142, - "ucs2_roman_ci": 143, - "ucs2_persian_ci": 144, - "ucs2_esperanto_ci": 145, - "ucs2_hungarian_ci": 146, - "ucs2_sinhala_ci": 147, - "ucs2_german2_ci": 148, - "ucs2_croatian_ci": 149, - "ucs2_unicode_520_ci": 150, - "ucs2_vietnamese_ci": 151, - "ucs2_general_mysql500_ci": 159, - "utf32_unicode_ci": 160, - "utf32_icelandic_ci": 161, - "utf32_latvian_ci": 162, - "utf32_romanian_ci": 163, - "utf32_slovenian_ci": 164, - "utf32_polish_ci": 165, - "utf32_estonian_ci": 166, - "utf32_spanish_ci": 167, - "utf32_swedish_ci": 168, - "utf32_turkish_ci": 169, - "utf32_czech_ci": 170, - "utf32_danish_ci": 171, - "utf32_lithuanian_ci": 172, - "utf32_slovak_ci": 173, - "utf32_spanish2_ci": 174, - "utf32_roman_ci": 175, - "utf32_persian_ci": 176, - "utf32_esperanto_ci": 177, - "utf32_hungarian_ci": 178, - "utf32_sinhala_ci": 179, - "utf32_german2_ci": 180, - "utf32_croatian_ci": 181, - "utf32_unicode_520_ci": 182, - "utf32_vietnamese_ci": 183, - "utf8_unicode_ci": 192, - "utf8_icelandic_ci": 193, - "utf8_latvian_ci": 194, - "utf8_romanian_ci": 195, - "utf8_slovenian_ci": 196, - "utf8_polish_ci": 197, - "utf8_estonian_ci": 198, - "utf8_spanish_ci": 199, - "utf8_swedish_ci": 200, - "utf8_turkish_ci": 201, - "utf8_czech_ci": 202, - "utf8_danish_ci": 203, - "utf8_lithuanian_ci": 204, - "utf8_slovak_ci": 205, - "utf8_spanish2_ci": 206, - "utf8_roman_ci": 207, - "utf8_persian_ci": 208, - "utf8_esperanto_ci": 209, - "utf8_hungarian_ci": 210, - "utf8_sinhala_ci": 211, - "utf8_german2_ci": 212, - "utf8_croatian_ci": 213, - "utf8_unicode_520_ci": 214, - "utf8_vietnamese_ci": 215, - "utf8_general_mysql500_ci": 223, - "utf8mb4_unicode_ci": 224, - "utf8mb4_icelandic_ci": 225, - "utf8mb4_latvian_ci": 226, - "utf8mb4_romanian_ci": 227, - "utf8mb4_slovenian_ci": 228, - "utf8mb4_polish_ci": 229, - "utf8mb4_estonian_ci": 230, - "utf8mb4_spanish_ci": 231, - "utf8mb4_swedish_ci": 232, - "utf8mb4_turkish_ci": 233, - "utf8mb4_czech_ci": 234, - "utf8mb4_danish_ci": 235, - "utf8mb4_lithuanian_ci": 236, - "utf8mb4_slovak_ci": 237, - "utf8mb4_spanish2_ci": 238, - "utf8mb4_roman_ci": 239, - "utf8mb4_persian_ci": 240, - "utf8mb4_esperanto_ci": 241, - "utf8mb4_hungarian_ci": 242, - "utf8mb4_sinhala_ci": 243, - "utf8mb4_german2_ci": 244, - "utf8mb4_croatian_ci": 245, - "utf8mb4_unicode_520_ci": 246, - "utf8mb4_vietnamese_ci": 247, -} - -// A blacklist of collations which is unsafe to interpolate parameters. -// These multibyte encodings may contains 0x5c (`\`) in their trailing bytes. -var unsafeCollations = map[string]bool{ - "big5_chinese_ci": true, - "sjis_japanese_ci": true, - "gbk_chinese_ci": true, - "big5_bin": true, - "gb2312_bin": true, - "gbk_bin": true, - "sjis_bin": true, - "cp932_japanese_ci": true, - "cp932_bin": true, -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/connection.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/connection.go deleted file mode 100644 index c3899de..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/connection.go +++ /dev/null @@ -1,372 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "net" - "strconv" - "strings" - "time" -) - -type mysqlConn struct { - buf buffer - netConn net.Conn - affectedRows uint64 - insertId uint64 - cfg *Config - maxPacketAllowed int - maxWriteSize int - writeTimeout time.Duration - flags clientFlag - status statusFlag - sequence uint8 - parseTime bool - strict bool -} - -// Handles parameters set in DSN after the connection is established -func (mc *mysqlConn) handleParams() (err error) { - for param, val := range mc.cfg.Params { - switch param { - // Charset - case "charset": - charsets := strings.Split(val, ",") - for i := range charsets { - // ignore errors here - a charset may not exist - err = mc.exec("SET NAMES " + charsets[i]) - if err == nil { - break - } - } - if err != nil { - return - } - - // System Vars - default: - err = mc.exec("SET " + param + "=" + val + "") - if err != nil { - return - } - } - } - - return -} - -func (mc *mysqlConn) Begin() (driver.Tx, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - err := mc.exec("START TRANSACTION") - if err == nil { - return &mysqlTx{mc}, err - } - - return nil, err -} - -func (mc *mysqlConn) Close() (err error) { - // Makes Close idempotent - if mc.netConn != nil { - err = mc.writeCommandPacket(comQuit) - } - - mc.cleanup() - - return -} - -// Closes the network connection and unsets internal variables. Do not call this -// function after successfully authentication, call Close instead. This function -// is called before auth or on auth failure because MySQL will have already -// closed the network connection. -func (mc *mysqlConn) cleanup() { - // Makes cleanup idempotent - if mc.netConn != nil { - if err := mc.netConn.Close(); err != nil { - errLog.Print(err) - } - mc.netConn = nil - } - mc.cfg = nil - mc.buf.nc = nil -} - -func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := mc.writeCommandPacketStr(comStmtPrepare, query) - if err != nil { - return nil, err - } - - stmt := &mysqlStmt{ - mc: mc, - } - - // Read Result - columnCount, err := stmt.readPrepareResultPacket() - if err == nil { - if stmt.paramCount > 0 { - if err = mc.readUntilEOF(); err != nil { - return nil, err - } - } - - if columnCount > 0 { - err = mc.readUntilEOF() - } - } - - return stmt, err -} - -func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (string, error) { - buf := mc.buf.takeCompleteBuffer() - if buf == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return "", driver.ErrBadConn - } - buf = buf[:0] - argPos := 0 - - for i := 0; i < len(query); i++ { - q := strings.IndexByte(query[i:], '?') - if q == -1 { - buf = append(buf, query[i:]...) - break - } - buf = append(buf, query[i:i+q]...) - i += q - - arg := args[argPos] - argPos++ - - if arg == nil { - buf = append(buf, "NULL"...) - continue - } - - switch v := arg.(type) { - case int64: - buf = strconv.AppendInt(buf, v, 10) - case float64: - buf = strconv.AppendFloat(buf, v, 'g', -1, 64) - case bool: - if v { - buf = append(buf, '1') - } else { - buf = append(buf, '0') - } - case time.Time: - if v.IsZero() { - buf = append(buf, "'0000-00-00'"...) - } else { - v := v.In(mc.cfg.Loc) - v = v.Add(time.Nanosecond * 500) // To round under microsecond - year := v.Year() - year100 := year / 100 - year1 := year % 100 - month := v.Month() - day := v.Day() - hour := v.Hour() - minute := v.Minute() - second := v.Second() - micro := v.Nanosecond() / 1000 - - buf = append(buf, []byte{ - '\'', - digits10[year100], digits01[year100], - digits10[year1], digits01[year1], - '-', - digits10[month], digits01[month], - '-', - digits10[day], digits01[day], - ' ', - digits10[hour], digits01[hour], - ':', - digits10[minute], digits01[minute], - ':', - digits10[second], digits01[second], - }...) - - if micro != 0 { - micro10000 := micro / 10000 - micro100 := micro / 100 % 100 - micro1 := micro % 100 - buf = append(buf, []byte{ - '.', - digits10[micro10000], digits01[micro10000], - digits10[micro100], digits01[micro100], - digits10[micro1], digits01[micro1], - }...) - } - buf = append(buf, '\'') - } - case []byte: - if v == nil { - buf = append(buf, "NULL"...) - } else { - buf = append(buf, "_binary'"...) - if mc.status&statusNoBackslashEscapes == 0 { - buf = escapeBytesBackslash(buf, v) - } else { - buf = escapeBytesQuotes(buf, v) - } - buf = append(buf, '\'') - } - case string: - buf = append(buf, '\'') - if mc.status&statusNoBackslashEscapes == 0 { - buf = escapeStringBackslash(buf, v) - } else { - buf = escapeStringQuotes(buf, v) - } - buf = append(buf, '\'') - default: - return "", driver.ErrSkip - } - - if len(buf)+4 > mc.maxPacketAllowed { - return "", driver.ErrSkip - } - } - if argPos != len(args) { - return "", driver.ErrSkip - } - return string(buf), nil -} - -func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - if len(args) != 0 { - if !mc.cfg.InterpolateParams { - return nil, driver.ErrSkip - } - // try to interpolate the parameters to save extra roundtrips for preparing and closing a statement - prepared, err := mc.interpolateParams(query, args) - if err != nil { - return nil, err - } - query = prepared - args = nil - } - mc.affectedRows = 0 - mc.insertId = 0 - - err := mc.exec(query) - if err == nil { - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, err - } - return nil, err -} - -// Internal function to execute commands -func (mc *mysqlConn) exec(query string) error { - // Send command - err := mc.writeCommandPacketStr(comQuery, query) - if err != nil { - return err - } - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil && resLen > 0 { - if err = mc.readUntilEOF(); err != nil { - return err - } - - err = mc.readUntilEOF() - } - - return err -} - -func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - if len(args) != 0 { - if !mc.cfg.InterpolateParams { - return nil, driver.ErrSkip - } - // try client-side prepare to reduce roundtrip - prepared, err := mc.interpolateParams(query, args) - if err != nil { - return nil, err - } - query = prepared - args = nil - } - // Send command - err := mc.writeCommandPacketStr(comQuery, query) - if err == nil { - // Read Result - var resLen int - resLen, err = mc.readResultSetHeaderPacket() - if err == nil { - rows := new(textRows) - rows.mc = mc - - if resLen == 0 { - // no columns, no more data - return emptyRows{}, nil - } - // Columns - rows.columns, err = mc.readColumns(resLen) - return rows, err - } - } - return nil, err -} - -// Gets the value of the given MySQL System Variable -// The returned byte slice is only valid until the next read -func (mc *mysqlConn) getSystemVar(name string) ([]byte, error) { - // Send command - if err := mc.writeCommandPacketStr(comQuery, "SELECT @@"+name); err != nil { - return nil, err - } - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil { - rows := new(textRows) - rows.mc = mc - rows.columns = []mysqlField{{fieldType: fieldTypeVarChar}} - - if resLen > 0 { - // Columns - if err := mc.readUntilEOF(); err != nil { - return nil, err - } - } - - dest := make([]driver.Value, resLen) - if err = rows.readRow(dest); err == nil { - return dest[0].([]byte), mc.readUntilEOF() - } - } - return nil, err -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/const.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/const.go deleted file mode 100644 index 88cfff3..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/const.go +++ /dev/null @@ -1,163 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -const ( - minProtocolVersion byte = 10 - maxPacketSize = 1<<24 - 1 - timeFormat = "2006-01-02 15:04:05.999999" -) - -// MySQL constants documentation: -// http://dev.mysql.com/doc/internals/en/client-server-protocol.html - -const ( - iOK byte = 0x00 - iLocalInFile byte = 0xfb - iEOF byte = 0xfe - iERR byte = 0xff -) - -// https://dev.mysql.com/doc/internals/en/capability-flags.html#packet-Protocol::CapabilityFlags -type clientFlag uint32 - -const ( - clientLongPassword clientFlag = 1 << iota - clientFoundRows - clientLongFlag - clientConnectWithDB - clientNoSchema - clientCompress - clientODBC - clientLocalFiles - clientIgnoreSpace - clientProtocol41 - clientInteractive - clientSSL - clientIgnoreSIGPIPE - clientTransactions - clientReserved - clientSecureConn - clientMultiStatements - clientMultiResults - clientPSMultiResults - clientPluginAuth - clientConnectAttrs - clientPluginAuthLenEncClientData - clientCanHandleExpiredPasswords - clientSessionTrack - clientDeprecateEOF -) - -const ( - comQuit byte = iota + 1 - comInitDB - comQuery - comFieldList - comCreateDB - comDropDB - comRefresh - comShutdown - comStatistics - comProcessInfo - comConnect - comProcessKill - comDebug - comPing - comTime - comDelayedInsert - comChangeUser - comBinlogDump - comTableDump - comConnectOut - comRegisterSlave - comStmtPrepare - comStmtExecute - comStmtSendLongData - comStmtClose - comStmtReset - comSetOption - comStmtFetch -) - -// https://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnType -const ( - fieldTypeDecimal byte = iota - fieldTypeTiny - fieldTypeShort - fieldTypeLong - fieldTypeFloat - fieldTypeDouble - fieldTypeNULL - fieldTypeTimestamp - fieldTypeLongLong - fieldTypeInt24 - fieldTypeDate - fieldTypeTime - fieldTypeDateTime - fieldTypeYear - fieldTypeNewDate - fieldTypeVarChar - fieldTypeBit -) -const ( - fieldTypeJSON byte = iota + 0xf5 - fieldTypeNewDecimal - fieldTypeEnum - fieldTypeSet - fieldTypeTinyBLOB - fieldTypeMediumBLOB - fieldTypeLongBLOB - fieldTypeBLOB - fieldTypeVarString - fieldTypeString - fieldTypeGeometry -) - -type fieldFlag uint16 - -const ( - flagNotNULL fieldFlag = 1 << iota - flagPriKey - flagUniqueKey - flagMultipleKey - flagBLOB - flagUnsigned - flagZeroFill - flagBinary - flagEnum - flagAutoIncrement - flagTimestamp - flagSet - flagUnknown1 - flagUnknown2 - flagUnknown3 - flagUnknown4 -) - -// http://dev.mysql.com/doc/internals/en/status-flags.html -type statusFlag uint16 - -const ( - statusInTrans statusFlag = 1 << iota - statusInAutocommit - statusReserved // Not in documentation - statusMoreResultsExists - statusNoGoodIndexUsed - statusNoIndexUsed - statusCursorExists - statusLastRowSent - statusDbDropped - statusNoBackslashEscapes - statusMetadataChanged - statusQueryWasSlow - statusPsOutParams - statusInTransReadonly - statusSessionStateChanged -) diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/driver.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/driver.go deleted file mode 100644 index 899f955..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/driver.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -// Package mysql provides a MySQL driver for Go's database/sql package -// -// The driver should be used via the database/sql package: -// -// import "database/sql" -// import _ "github.com/go-sql-driver/mysql" -// -// db, err := sql.Open("mysql", "user:password@/dbname") -// -// See https://github.com/go-sql-driver/mysql#usage for details -package mysql - -import ( - "database/sql" - "database/sql/driver" - "net" -) - -// MySQLDriver is exported to make the driver directly accessible. -// In general the driver is used via the database/sql package. -type MySQLDriver struct{} - -// DialFunc is a function which can be used to establish the network connection. -// Custom dial functions must be registered with RegisterDial -type DialFunc func(addr string) (net.Conn, error) - -var dials map[string]DialFunc - -// RegisterDial registers a custom dial function. It can then be used by the -// network address mynet(addr), where mynet is the registered new network. -// addr is passed as a parameter to the dial function. -func RegisterDial(net string, dial DialFunc) { - if dials == nil { - dials = make(map[string]DialFunc) - } - dials[net] = dial -} - -// Open new Connection. -// See https://github.com/go-sql-driver/mysql#dsn-data-source-name for how -// the DSN string is formated -func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { - var err error - - // New mysqlConn - mc := &mysqlConn{ - maxPacketAllowed: maxPacketSize, - maxWriteSize: maxPacketSize - 1, - } - mc.cfg, err = ParseDSN(dsn) - if err != nil { - return nil, err - } - mc.parseTime = mc.cfg.ParseTime - mc.strict = mc.cfg.Strict - - // Connect to Server - if dial, ok := dials[mc.cfg.Net]; ok { - mc.netConn, err = dial(mc.cfg.Addr) - } else { - nd := net.Dialer{Timeout: mc.cfg.Timeout} - mc.netConn, err = nd.Dial(mc.cfg.Net, mc.cfg.Addr) - } - if err != nil { - return nil, err - } - - // Enable TCP Keepalives on TCP connections - if tc, ok := mc.netConn.(*net.TCPConn); ok { - if err := tc.SetKeepAlive(true); err != nil { - // Don't send COM_QUIT before handshake. - mc.netConn.Close() - mc.netConn = nil - return nil, err - } - } - - mc.buf = newBuffer(mc.netConn) - - // Set I/O timeouts - mc.buf.timeout = mc.cfg.ReadTimeout - mc.writeTimeout = mc.cfg.WriteTimeout - - // Reading Handshake Initialization Packet - cipher, err := mc.readInitPacket() - if err != nil { - mc.cleanup() - return nil, err - } - - // Send Client Authentication Packet - if err = mc.writeAuthPacket(cipher); err != nil { - mc.cleanup() - return nil, err - } - - // Handle response to auth packet, switch methods if possible - if err = handleAuthResult(mc, cipher); err != nil { - // Authentication failed and MySQL has already closed the connection - // (https://dev.mysql.com/doc/internals/en/authentication-fails.html). - // Do not send COM_QUIT, just cleanup and return the error. - mc.cleanup() - return nil, err - } - - // Get max allowed packet size - maxap, err := mc.getSystemVar("max_allowed_packet") - if err != nil { - mc.Close() - return nil, err - } - mc.maxPacketAllowed = stringToInt(maxap) - 1 - if mc.maxPacketAllowed < maxPacketSize { - mc.maxWriteSize = mc.maxPacketAllowed - } - - // Handle DSN Params - err = mc.handleParams() - if err != nil { - mc.Close() - return nil, err - } - - return mc, nil -} - -func handleAuthResult(mc *mysqlConn, cipher []byte) error { - // Read Result Packet - err := mc.readResultOK() - if err == nil { - return nil // auth successful - } - - if mc.cfg == nil { - return err // auth failed and retry not possible - } - - // Retry auth if configured to do so. - if mc.cfg.AllowOldPasswords && err == ErrOldPassword { - // Retry with old authentication method. Note: there are edge cases - // where this should work but doesn't; this is currently "wontfix": - // https://github.com/go-sql-driver/mysql/issues/184 - if err = mc.writeOldAuthPacket(cipher); err != nil { - return err - } - err = mc.readResultOK() - } else if mc.cfg.AllowCleartextPasswords && err == ErrCleartextPassword { - // Retry with clear text password for - // http://dev.mysql.com/doc/refman/5.7/en/cleartext-authentication-plugin.html - // http://dev.mysql.com/doc/refman/5.7/en/pam-authentication-plugin.html - if err = mc.writeClearAuthPacket(); err != nil { - return err - } - err = mc.readResultOK() - } - return err -} - -func init() { - sql.Register("mysql", &MySQLDriver{}) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/dsn.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/dsn.go deleted file mode 100644 index 73138bc..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/dsn.go +++ /dev/null @@ -1,513 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2016 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "bytes" - "crypto/tls" - "errors" - "fmt" - "net" - "net/url" - "strings" - "time" -) - -var ( - errInvalidDSNUnescaped = errors.New("invalid DSN: did you forget to escape a param value?") - errInvalidDSNAddr = errors.New("invalid DSN: network address not terminated (missing closing brace)") - errInvalidDSNNoSlash = errors.New("invalid DSN: missing the slash separating the database name") - errInvalidDSNUnsafeCollation = errors.New("invalid DSN: interpolateParams can not be used with unsafe collations") -) - -// Config is a configuration parsed from a DSN string -type Config struct { - User string // Username - Passwd string // Password (requires User) - Net string // Network type - Addr string // Network address (requires Net) - DBName string // Database name - Params map[string]string // Connection parameters - Collation string // Connection collation - Loc *time.Location // Location for time.Time values - TLSConfig string // TLS configuration name - tls *tls.Config // TLS configuration - Timeout time.Duration // Dial timeout - ReadTimeout time.Duration // I/O read timeout - WriteTimeout time.Duration // I/O write timeout - - AllowAllFiles bool // Allow all files to be used with LOAD DATA LOCAL INFILE - AllowCleartextPasswords bool // Allows the cleartext client side plugin - AllowOldPasswords bool // Allows the old insecure password method - ClientFoundRows bool // Return number of matching rows instead of rows changed - ColumnsWithAlias bool // Prepend table alias to column names - InterpolateParams bool // Interpolate placeholders into query string - MultiStatements bool // Allow multiple statements in one query - ParseTime bool // Parse time values to time.Time - Strict bool // Return warnings as errors -} - -// FormatDSN formats the given Config into a DSN string which can be passed to -// the driver. -func (cfg *Config) FormatDSN() string { - var buf bytes.Buffer - - // [username[:password]@] - if len(cfg.User) > 0 { - buf.WriteString(cfg.User) - if len(cfg.Passwd) > 0 { - buf.WriteByte(':') - buf.WriteString(cfg.Passwd) - } - buf.WriteByte('@') - } - - // [protocol[(address)]] - if len(cfg.Net) > 0 { - buf.WriteString(cfg.Net) - if len(cfg.Addr) > 0 { - buf.WriteByte('(') - buf.WriteString(cfg.Addr) - buf.WriteByte(')') - } - } - - // /dbname - buf.WriteByte('/') - buf.WriteString(cfg.DBName) - - // [?param1=value1&...¶mN=valueN] - hasParam := false - - if cfg.AllowAllFiles { - hasParam = true - buf.WriteString("?allowAllFiles=true") - } - - if cfg.AllowCleartextPasswords { - if hasParam { - buf.WriteString("&allowCleartextPasswords=true") - } else { - hasParam = true - buf.WriteString("?allowCleartextPasswords=true") - } - } - - if cfg.AllowOldPasswords { - if hasParam { - buf.WriteString("&allowOldPasswords=true") - } else { - hasParam = true - buf.WriteString("?allowOldPasswords=true") - } - } - - if cfg.ClientFoundRows { - if hasParam { - buf.WriteString("&clientFoundRows=true") - } else { - hasParam = true - buf.WriteString("?clientFoundRows=true") - } - } - - if col := cfg.Collation; col != defaultCollation && len(col) > 0 { - if hasParam { - buf.WriteString("&collation=") - } else { - hasParam = true - buf.WriteString("?collation=") - } - buf.WriteString(col) - } - - if cfg.ColumnsWithAlias { - if hasParam { - buf.WriteString("&columnsWithAlias=true") - } else { - hasParam = true - buf.WriteString("?columnsWithAlias=true") - } - } - - if cfg.InterpolateParams { - if hasParam { - buf.WriteString("&interpolateParams=true") - } else { - hasParam = true - buf.WriteString("?interpolateParams=true") - } - } - - if cfg.Loc != time.UTC && cfg.Loc != nil { - if hasParam { - buf.WriteString("&loc=") - } else { - hasParam = true - buf.WriteString("?loc=") - } - buf.WriteString(url.QueryEscape(cfg.Loc.String())) - } - - if cfg.MultiStatements { - if hasParam { - buf.WriteString("&multiStatements=true") - } else { - hasParam = true - buf.WriteString("?multiStatements=true") - } - } - - if cfg.ParseTime { - if hasParam { - buf.WriteString("&parseTime=true") - } else { - hasParam = true - buf.WriteString("?parseTime=true") - } - } - - if cfg.ReadTimeout > 0 { - if hasParam { - buf.WriteString("&readTimeout=") - } else { - hasParam = true - buf.WriteString("?readTimeout=") - } - buf.WriteString(cfg.ReadTimeout.String()) - } - - if cfg.Strict { - if hasParam { - buf.WriteString("&strict=true") - } else { - hasParam = true - buf.WriteString("?strict=true") - } - } - - if cfg.Timeout > 0 { - if hasParam { - buf.WriteString("&timeout=") - } else { - hasParam = true - buf.WriteString("?timeout=") - } - buf.WriteString(cfg.Timeout.String()) - } - - if len(cfg.TLSConfig) > 0 { - if hasParam { - buf.WriteString("&tls=") - } else { - hasParam = true - buf.WriteString("?tls=") - } - buf.WriteString(url.QueryEscape(cfg.TLSConfig)) - } - - if cfg.WriteTimeout > 0 { - if hasParam { - buf.WriteString("&writeTimeout=") - } else { - hasParam = true - buf.WriteString("?writeTimeout=") - } - buf.WriteString(cfg.WriteTimeout.String()) - } - - // other params - if cfg.Params != nil { - for param, value := range cfg.Params { - if hasParam { - buf.WriteByte('&') - } else { - hasParam = true - buf.WriteByte('?') - } - - buf.WriteString(param) - buf.WriteByte('=') - buf.WriteString(url.QueryEscape(value)) - } - } - - return buf.String() -} - -// ParseDSN parses the DSN string to a Config -func ParseDSN(dsn string) (cfg *Config, err error) { - // New config with some default values - cfg = &Config{ - Loc: time.UTC, - Collation: defaultCollation, - } - - // [user[:password]@][net[(addr)]]/dbname[?param1=value1¶mN=valueN] - // Find the last '/' (since the password or the net addr might contain a '/') - foundSlash := false - for i := len(dsn) - 1; i >= 0; i-- { - if dsn[i] == '/' { - foundSlash = true - var j, k int - - // left part is empty if i <= 0 - if i > 0 { - // [username[:password]@][protocol[(address)]] - // Find the last '@' in dsn[:i] - for j = i; j >= 0; j-- { - if dsn[j] == '@' { - // username[:password] - // Find the first ':' in dsn[:j] - for k = 0; k < j; k++ { - if dsn[k] == ':' { - cfg.Passwd = dsn[k+1 : j] - break - } - } - cfg.User = dsn[:k] - - break - } - } - - // [protocol[(address)]] - // Find the first '(' in dsn[j+1:i] - for k = j + 1; k < i; k++ { - if dsn[k] == '(' { - // dsn[i-1] must be == ')' if an address is specified - if dsn[i-1] != ')' { - if strings.ContainsRune(dsn[k+1:i], ')') { - return nil, errInvalidDSNUnescaped - } - return nil, errInvalidDSNAddr - } - cfg.Addr = dsn[k+1 : i-1] - break - } - } - cfg.Net = dsn[j+1 : k] - } - - // dbname[?param1=value1&...¶mN=valueN] - // Find the first '?' in dsn[i+1:] - for j = i + 1; j < len(dsn); j++ { - if dsn[j] == '?' { - if err = parseDSNParams(cfg, dsn[j+1:]); err != nil { - return - } - break - } - } - cfg.DBName = dsn[i+1 : j] - - break - } - } - - if !foundSlash && len(dsn) > 0 { - return nil, errInvalidDSNNoSlash - } - - if cfg.InterpolateParams && unsafeCollations[cfg.Collation] { - return nil, errInvalidDSNUnsafeCollation - } - - // Set default network if empty - if cfg.Net == "" { - cfg.Net = "tcp" - } - - // Set default address if empty - if cfg.Addr == "" { - switch cfg.Net { - case "tcp": - cfg.Addr = "127.0.0.1:3306" - case "unix": - cfg.Addr = "/tmp/mysql.sock" - default: - return nil, errors.New("default addr for network '" + cfg.Net + "' unknown") - } - - } - - return -} - -// parseDSNParams parses the DSN "query string" -// Values must be url.QueryEscape'ed -func parseDSNParams(cfg *Config, params string) (err error) { - for _, v := range strings.Split(params, "&") { - param := strings.SplitN(v, "=", 2) - if len(param) != 2 { - continue - } - - // cfg params - switch value := param[1]; param[0] { - - // Disable INFILE whitelist / enable all files - case "allowAllFiles": - var isBool bool - cfg.AllowAllFiles, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Use cleartext authentication mode (MySQL 5.5.10+) - case "allowCleartextPasswords": - var isBool bool - cfg.AllowCleartextPasswords, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Use old authentication mode (pre MySQL 4.1) - case "allowOldPasswords": - var isBool bool - cfg.AllowOldPasswords, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Switch "rowsAffected" mode - case "clientFoundRows": - var isBool bool - cfg.ClientFoundRows, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Collation - case "collation": - cfg.Collation = value - break - - case "columnsWithAlias": - var isBool bool - cfg.ColumnsWithAlias, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Compression - case "compress": - return errors.New("compression not implemented yet") - - // Enable client side placeholder substitution - case "interpolateParams": - var isBool bool - cfg.InterpolateParams, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Time Location - case "loc": - if value, err = url.QueryUnescape(value); err != nil { - return - } - cfg.Loc, err = time.LoadLocation(value) - if err != nil { - return - } - - // multiple statements in one query - case "multiStatements": - var isBool bool - cfg.MultiStatements, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // time.Time parsing - case "parseTime": - var isBool bool - cfg.ParseTime, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // I/O read Timeout - case "readTimeout": - cfg.ReadTimeout, err = time.ParseDuration(value) - if err != nil { - return - } - - // Strict mode - case "strict": - var isBool bool - cfg.Strict, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Dial Timeout - case "timeout": - cfg.Timeout, err = time.ParseDuration(value) - if err != nil { - return - } - - // TLS-Encryption - case "tls": - boolValue, isBool := readBool(value) - if isBool { - if boolValue { - cfg.TLSConfig = "true" - cfg.tls = &tls.Config{} - } else { - cfg.TLSConfig = "false" - } - } else if vl := strings.ToLower(value); vl == "skip-verify" { - cfg.TLSConfig = vl - cfg.tls = &tls.Config{InsecureSkipVerify: true} - } else { - name, err := url.QueryUnescape(value) - if err != nil { - return fmt.Errorf("invalid value for TLS config name: %v", err) - } - - if tlsConfig, ok := tlsConfigRegister[name]; ok { - if len(tlsConfig.ServerName) == 0 && !tlsConfig.InsecureSkipVerify { - host, _, err := net.SplitHostPort(cfg.Addr) - if err == nil { - tlsConfig.ServerName = host - } - } - - cfg.TLSConfig = name - cfg.tls = tlsConfig - } else { - return errors.New("invalid value / unknown config name: " + name) - } - } - - // I/O write Timeout - case "writeTimeout": - cfg.WriteTimeout, err = time.ParseDuration(value) - if err != nil { - return - } - - default: - // lazy init - if cfg.Params == nil { - cfg.Params = make(map[string]string) - } - - if cfg.Params[param[0]], err = url.QueryUnescape(value); err != nil { - return - } - } - } - - return -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/errors.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/errors.go deleted file mode 100644 index 1543a80..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/errors.go +++ /dev/null @@ -1,131 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "errors" - "fmt" - "io" - "log" - "os" -) - -// Various errors the driver might return. Can change between driver versions. -var ( - ErrInvalidConn = errors.New("invalid connection") - ErrMalformPkt = errors.New("malformed packet") - ErrNoTLS = errors.New("TLS requested but server does not support TLS") - ErrOldPassword = errors.New("this user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") - ErrCleartextPassword = errors.New("this user requires clear text authentication. If you still want to use it, please add 'allowCleartextPasswords=1' to your DSN") - ErrUnknownPlugin = errors.New("this authentication plugin is not supported") - ErrOldProtocol = errors.New("MySQL server does not support required protocol 41+") - ErrPktSync = errors.New("commands out of sync. You can't run this command now") - ErrPktSyncMul = errors.New("commands out of sync. Did you run multiple statements at once?") - ErrPktTooLarge = errors.New("packet for query is too large. Try adjusting the 'max_allowed_packet' variable on the server") - ErrBusyBuffer = errors.New("busy buffer") -) - -var errLog = Logger(log.New(os.Stderr, "[mysql] ", log.Ldate|log.Ltime|log.Lshortfile)) - -// Logger is used to log critical error messages. -type Logger interface { - Print(v ...interface{}) -} - -// SetLogger is used to set the logger for critical errors. -// The initial logger is os.Stderr. -func SetLogger(logger Logger) error { - if logger == nil { - return errors.New("logger is nil") - } - errLog = logger - return nil -} - -// MySQLError is an error type which represents a single MySQL error -type MySQLError struct { - Number uint16 - Message string -} - -func (me *MySQLError) Error() string { - return fmt.Sprintf("Error %d: %s", me.Number, me.Message) -} - -// MySQLWarnings is an error type which represents a group of one or more MySQL -// warnings -type MySQLWarnings []MySQLWarning - -func (mws MySQLWarnings) Error() string { - var msg string - for i, warning := range mws { - if i > 0 { - msg += "\r\n" - } - msg += fmt.Sprintf( - "%s %s: %s", - warning.Level, - warning.Code, - warning.Message, - ) - } - return msg -} - -// MySQLWarning is an error type which represents a single MySQL warning. -// Warnings are returned in groups only. See MySQLWarnings -type MySQLWarning struct { - Level string - Code string - Message string -} - -func (mc *mysqlConn) getWarnings() (err error) { - rows, err := mc.Query("SHOW WARNINGS", nil) - if err != nil { - return - } - - var warnings = MySQLWarnings{} - var values = make([]driver.Value, 3) - - for { - err = rows.Next(values) - switch err { - case nil: - warning := MySQLWarning{} - - if raw, ok := values[0].([]byte); ok { - warning.Level = string(raw) - } else { - warning.Level = fmt.Sprintf("%s", values[0]) - } - if raw, ok := values[1].([]byte); ok { - warning.Code = string(raw) - } else { - warning.Code = fmt.Sprintf("%s", values[1]) - } - if raw, ok := values[2].([]byte); ok { - warning.Message = string(raw) - } else { - warning.Message = fmt.Sprintf("%s", values[0]) - } - - warnings = append(warnings, warning) - - case io.EOF: - return warnings - - default: - rows.Close() - return - } - } -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/infile.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/infile.go deleted file mode 100644 index 0f975bb..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/infile.go +++ /dev/null @@ -1,181 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "fmt" - "io" - "os" - "strings" - "sync" -) - -var ( - fileRegister map[string]bool - fileRegisterLock sync.RWMutex - readerRegister map[string]func() io.Reader - readerRegisterLock sync.RWMutex -) - -// RegisterLocalFile adds the given file to the file whitelist, -// so that it can be used by "LOAD DATA LOCAL INFILE ". -// Alternatively you can allow the use of all local files with -// the DSN parameter 'allowAllFiles=true' -// -// filePath := "/home/gopher/data.csv" -// mysql.RegisterLocalFile(filePath) -// err := db.Exec("LOAD DATA LOCAL INFILE '" + filePath + "' INTO TABLE foo") -// if err != nil { -// ... -// -func RegisterLocalFile(filePath string) { - fileRegisterLock.Lock() - // lazy map init - if fileRegister == nil { - fileRegister = make(map[string]bool) - } - - fileRegister[strings.Trim(filePath, `"`)] = true - fileRegisterLock.Unlock() -} - -// DeregisterLocalFile removes the given filepath from the whitelist. -func DeregisterLocalFile(filePath string) { - fileRegisterLock.Lock() - delete(fileRegister, strings.Trim(filePath, `"`)) - fileRegisterLock.Unlock() -} - -// RegisterReaderHandler registers a handler function which is used -// to receive a io.Reader. -// The Reader can be used by "LOAD DATA LOCAL INFILE Reader::". -// If the handler returns a io.ReadCloser Close() is called when the -// request is finished. -// -// mysql.RegisterReaderHandler("data", func() io.Reader { -// var csvReader io.Reader // Some Reader that returns CSV data -// ... // Open Reader here -// return csvReader -// }) -// err := db.Exec("LOAD DATA LOCAL INFILE 'Reader::data' INTO TABLE foo") -// if err != nil { -// ... -// -func RegisterReaderHandler(name string, handler func() io.Reader) { - readerRegisterLock.Lock() - // lazy map init - if readerRegister == nil { - readerRegister = make(map[string]func() io.Reader) - } - - readerRegister[name] = handler - readerRegisterLock.Unlock() -} - -// DeregisterReaderHandler removes the ReaderHandler function with -// the given name from the registry. -func DeregisterReaderHandler(name string) { - readerRegisterLock.Lock() - delete(readerRegister, name) - readerRegisterLock.Unlock() -} - -func deferredClose(err *error, closer io.Closer) { - closeErr := closer.Close() - if *err == nil { - *err = closeErr - } -} - -func (mc *mysqlConn) handleInFileRequest(name string) (err error) { - var rdr io.Reader - var data []byte - packetSize := 16 * 1024 // 16KB is small enough for disk readahead and large enough for TCP - if mc.maxWriteSize < packetSize { - packetSize = mc.maxWriteSize - } - - if idx := strings.Index(name, "Reader::"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader - // The server might return an an absolute path. See issue #355. - name = name[idx+8:] - - readerRegisterLock.RLock() - handler, inMap := readerRegister[name] - readerRegisterLock.RUnlock() - - if inMap { - rdr = handler() - if rdr != nil { - if cl, ok := rdr.(io.Closer); ok { - defer deferredClose(&err, cl) - } - } else { - err = fmt.Errorf("Reader '%s' is ", name) - } - } else { - err = fmt.Errorf("Reader '%s' is not registered", name) - } - } else { // File - name = strings.Trim(name, `"`) - fileRegisterLock.RLock() - fr := fileRegister[name] - fileRegisterLock.RUnlock() - if mc.cfg.AllowAllFiles || fr { - var file *os.File - var fi os.FileInfo - - if file, err = os.Open(name); err == nil { - defer deferredClose(&err, file) - - // get file size - if fi, err = file.Stat(); err == nil { - rdr = file - if fileSize := int(fi.Size()); fileSize < packetSize { - packetSize = fileSize - } - } - } - } else { - err = fmt.Errorf("local file '%s' is not registered", name) - } - } - - // send content packets - if err == nil { - data := make([]byte, 4+packetSize) - var n int - for err == nil { - n, err = rdr.Read(data[4:]) - if n > 0 { - if ioErr := mc.writePacket(data[:4+n]); ioErr != nil { - return ioErr - } - } - } - if err == io.EOF { - err = nil - } - } - - // send empty packet (termination) - if data == nil { - data = make([]byte, 4) - } - if ioErr := mc.writePacket(data[:4]); ioErr != nil { - return ioErr - } - - // read OK packet - if err == nil { - return mc.readResultOK() - } - - mc.readPacket() - return err -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/packets.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/packets.go deleted file mode 100644 index 8d91665..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/packets.go +++ /dev/null @@ -1,1243 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "bytes" - "crypto/tls" - "database/sql/driver" - "encoding/binary" - "errors" - "fmt" - "io" - "math" - "time" -) - -// Packets documentation: -// http://dev.mysql.com/doc/internals/en/client-server-protocol.html - -// Read packet to buffer 'data' -func (mc *mysqlConn) readPacket() ([]byte, error) { - var payload []byte - for { - // Read packet header - data, err := mc.buf.readNext(4) - if err != nil { - errLog.Print(err) - mc.Close() - return nil, driver.ErrBadConn - } - - // Packet Length [24 bit] - pktLen := int(uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16) - - if pktLen < 1 { - errLog.Print(ErrMalformPkt) - mc.Close() - return nil, driver.ErrBadConn - } - - // Check Packet Sync [8 bit] - if data[3] != mc.sequence { - if data[3] > mc.sequence { - return nil, ErrPktSyncMul - } - return nil, ErrPktSync - } - mc.sequence++ - - // Read packet body [pktLen bytes] - data, err = mc.buf.readNext(pktLen) - if err != nil { - errLog.Print(err) - mc.Close() - return nil, driver.ErrBadConn - } - - isLastPacket := (pktLen < maxPacketSize) - - // Zero allocations for non-splitting packets - if isLastPacket && payload == nil { - return data, nil - } - - payload = append(payload, data...) - - if isLastPacket { - return payload, nil - } - } -} - -// Write packet buffer 'data' -func (mc *mysqlConn) writePacket(data []byte) error { - pktLen := len(data) - 4 - - if pktLen > mc.maxPacketAllowed { - return ErrPktTooLarge - } - - for { - var size int - if pktLen >= maxPacketSize { - data[0] = 0xff - data[1] = 0xff - data[2] = 0xff - size = maxPacketSize - } else { - data[0] = byte(pktLen) - data[1] = byte(pktLen >> 8) - data[2] = byte(pktLen >> 16) - size = pktLen - } - data[3] = mc.sequence - - // Write packet - if mc.writeTimeout > 0 { - if err := mc.netConn.SetWriteDeadline(time.Now().Add(mc.writeTimeout)); err != nil { - return err - } - } - - n, err := mc.netConn.Write(data[:4+size]) - if err == nil && n == 4+size { - mc.sequence++ - if size != maxPacketSize { - return nil - } - pktLen -= size - data = data[size:] - continue - } - - // Handle error - if err == nil { // n != len(data) - errLog.Print(ErrMalformPkt) - } else { - errLog.Print(err) - } - return driver.ErrBadConn - } -} - -/****************************************************************************** -* Initialisation Process * -******************************************************************************/ - -// Handshake Initialization Packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::Handshake -func (mc *mysqlConn) readInitPacket() ([]byte, error) { - data, err := mc.readPacket() - if err != nil { - return nil, err - } - - if data[0] == iERR { - return nil, mc.handleErrorPacket(data) - } - - // protocol version [1 byte] - if data[0] < minProtocolVersion { - return nil, fmt.Errorf( - "unsupported protocol version %d. Version %d or higher is required", - data[0], - minProtocolVersion, - ) - } - - // server version [null terminated string] - // connection id [4 bytes] - pos := 1 + bytes.IndexByte(data[1:], 0x00) + 1 + 4 - - // first part of the password cipher [8 bytes] - cipher := data[pos : pos+8] - - // (filler) always 0x00 [1 byte] - pos += 8 + 1 - - // capability flags (lower 2 bytes) [2 bytes] - mc.flags = clientFlag(binary.LittleEndian.Uint16(data[pos : pos+2])) - if mc.flags&clientProtocol41 == 0 { - return nil, ErrOldProtocol - } - if mc.flags&clientSSL == 0 && mc.cfg.tls != nil { - return nil, ErrNoTLS - } - pos += 2 - - if len(data) > pos { - // character set [1 byte] - // status flags [2 bytes] - // capability flags (upper 2 bytes) [2 bytes] - // length of auth-plugin-data [1 byte] - // reserved (all [00]) [10 bytes] - pos += 1 + 2 + 2 + 1 + 10 - - // second part of the password cipher [mininum 13 bytes], - // where len=MAX(13, length of auth-plugin-data - 8) - // - // The web documentation is ambiguous about the length. However, - // according to mysql-5.7/sql/auth/sql_authentication.cc line 538, - // the 13th byte is "\0 byte, terminating the second part of - // a scramble". So the second part of the password cipher is - // a NULL terminated string that's at least 13 bytes with the - // last byte being NULL. - // - // The official Python library uses the fixed length 12 - // which seems to work but technically could have a hidden bug. - cipher = append(cipher, data[pos:pos+12]...) - - // TODO: Verify string termination - // EOF if version (>= 5.5.7 and < 5.5.10) or (>= 5.6.0 and < 5.6.2) - // \NUL otherwise - // - //if data[len(data)-1] == 0 { - // return - //} - //return ErrMalformPkt - - // make a memory safe copy of the cipher slice - var b [20]byte - copy(b[:], cipher) - return b[:], nil - } - - // make a memory safe copy of the cipher slice - var b [8]byte - copy(b[:], cipher) - return b[:], nil -} - -// Client Authentication Packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse -func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { - // Adjust client flags based on server support - clientFlags := clientProtocol41 | - clientSecureConn | - clientLongPassword | - clientTransactions | - clientLocalFiles | - clientPluginAuth | - clientMultiResults | - mc.flags&clientLongFlag - - if mc.cfg.ClientFoundRows { - clientFlags |= clientFoundRows - } - - // To enable TLS / SSL - if mc.cfg.tls != nil { - clientFlags |= clientSSL - } - - if mc.cfg.MultiStatements { - clientFlags |= clientMultiStatements - } - - // User Password - scrambleBuff := scramblePassword(cipher, []byte(mc.cfg.Passwd)) - - pktLen := 4 + 4 + 1 + 23 + len(mc.cfg.User) + 1 + 1 + len(scrambleBuff) + 21 + 1 - - // To specify a db name - if n := len(mc.cfg.DBName); n > 0 { - clientFlags |= clientConnectWithDB - pktLen += n + 1 - } - - // Calculate packet length and get buffer with that size - data := mc.buf.takeSmallBuffer(pktLen + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // ClientFlags [32 bit] - data[4] = byte(clientFlags) - data[5] = byte(clientFlags >> 8) - data[6] = byte(clientFlags >> 16) - data[7] = byte(clientFlags >> 24) - - // MaxPacketSize [32 bit] (none) - data[8] = 0x00 - data[9] = 0x00 - data[10] = 0x00 - data[11] = 0x00 - - // Charset [1 byte] - var found bool - data[12], found = collations[mc.cfg.Collation] - if !found { - // Note possibility for false negatives: - // could be triggered although the collation is valid if the - // collations map does not contain entries the server supports. - return errors.New("unknown collation") - } - - // SSL Connection Request Packet - // http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::SSLRequest - if mc.cfg.tls != nil { - // Send TLS / SSL request packet - if err := mc.writePacket(data[:(4+4+1+23)+4]); err != nil { - return err - } - - // Switch to TLS - tlsConn := tls.Client(mc.netConn, mc.cfg.tls) - if err := tlsConn.Handshake(); err != nil { - return err - } - mc.netConn = tlsConn - mc.buf.nc = tlsConn - } - - // Filler [23 bytes] (all 0x00) - pos := 13 - for ; pos < 13+23; pos++ { - data[pos] = 0 - } - - // User [null terminated string] - if len(mc.cfg.User) > 0 { - pos += copy(data[pos:], mc.cfg.User) - } - data[pos] = 0x00 - pos++ - - // ScrambleBuffer [length encoded integer] - data[pos] = byte(len(scrambleBuff)) - pos += 1 + copy(data[pos+1:], scrambleBuff) - - // Databasename [null terminated string] - if len(mc.cfg.DBName) > 0 { - pos += copy(data[pos:], mc.cfg.DBName) - data[pos] = 0x00 - pos++ - } - - // Assume native client during response - pos += copy(data[pos:], "mysql_native_password") - data[pos] = 0x00 - - // Send Auth packet - return mc.writePacket(data) -} - -// Client old authentication packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeOldAuthPacket(cipher []byte) error { - // User password - scrambleBuff := scrambleOldPassword(cipher, []byte(mc.cfg.Passwd)) - - // Calculate the packet length and add a tailing 0 - pktLen := len(scrambleBuff) + 1 - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the scrambled password [null terminated string] - copy(data[4:], scrambleBuff) - data[4+pktLen-1] = 0x00 - - return mc.writePacket(data) -} - -// Client clear text authentication packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeClearAuthPacket() error { - // Calculate the packet length and add a tailing 0 - pktLen := len(mc.cfg.Passwd) + 1 - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the clear password [null terminated string] - copy(data[4:], mc.cfg.Passwd) - data[4+pktLen-1] = 0x00 - - return mc.writePacket(data) -} - -/****************************************************************************** -* Command Packets * -******************************************************************************/ - -func (mc *mysqlConn) writeCommandPacket(command byte) error { - // Reset Packet Sequence - mc.sequence = 0 - - data := mc.buf.takeSmallBuffer(4 + 1) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Send CMD packet - return mc.writePacket(data) -} - -func (mc *mysqlConn) writeCommandPacketStr(command byte, arg string) error { - // Reset Packet Sequence - mc.sequence = 0 - - pktLen := 1 + len(arg) - data := mc.buf.takeBuffer(pktLen + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Add arg - copy(data[5:], arg) - - // Send CMD packet - return mc.writePacket(data) -} - -func (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error { - // Reset Packet Sequence - mc.sequence = 0 - - data := mc.buf.takeSmallBuffer(4 + 1 + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Add arg [32 bit] - data[5] = byte(arg) - data[6] = byte(arg >> 8) - data[7] = byte(arg >> 16) - data[8] = byte(arg >> 24) - - // Send CMD packet - return mc.writePacket(data) -} - -/****************************************************************************** -* Result Packets * -******************************************************************************/ - -// Returns error if Packet is not an 'Result OK'-Packet -func (mc *mysqlConn) readResultOK() error { - data, err := mc.readPacket() - if err == nil { - // packet indicator - switch data[0] { - - case iOK: - return mc.handleOkPacket(data) - - case iEOF: - if len(data) > 1 { - plugin := string(data[1:bytes.IndexByte(data, 0x00)]) - if plugin == "mysql_old_password" { - // using old_passwords - return ErrOldPassword - } else if plugin == "mysql_clear_password" { - // using clear text password - return ErrCleartextPassword - } else { - return ErrUnknownPlugin - } - } else { - return ErrOldPassword - } - - default: // Error otherwise - return mc.handleErrorPacket(data) - } - } - return err -} - -// Result Set Header Packet -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::Resultset -func (mc *mysqlConn) readResultSetHeaderPacket() (int, error) { - data, err := mc.readPacket() - if err == nil { - switch data[0] { - - case iOK: - return 0, mc.handleOkPacket(data) - - case iERR: - return 0, mc.handleErrorPacket(data) - - case iLocalInFile: - return 0, mc.handleInFileRequest(string(data[1:])) - } - - // column count - num, _, n := readLengthEncodedInteger(data) - if n-len(data) == 0 { - return int(num), nil - } - - return 0, ErrMalformPkt - } - return 0, err -} - -// Error Packet -// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-ERR_Packet -func (mc *mysqlConn) handleErrorPacket(data []byte) error { - if data[0] != iERR { - return ErrMalformPkt - } - - // 0xff [1 byte] - - // Error Number [16 bit uint] - errno := binary.LittleEndian.Uint16(data[1:3]) - - pos := 3 - - // SQL State [optional: # + 5bytes string] - if data[3] == 0x23 { - //sqlstate := string(data[4 : 4+5]) - pos = 9 - } - - // Error Message [string] - return &MySQLError{ - Number: errno, - Message: string(data[pos:]), - } -} - -func readStatus(b []byte) statusFlag { - return statusFlag(b[0]) | statusFlag(b[1])<<8 -} - -// Ok Packet -// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-OK_Packet -func (mc *mysqlConn) handleOkPacket(data []byte) error { - var n, m int - - // 0x00 [1 byte] - - // Affected rows [Length Coded Binary] - mc.affectedRows, _, n = readLengthEncodedInteger(data[1:]) - - // Insert id [Length Coded Binary] - mc.insertId, _, m = readLengthEncodedInteger(data[1+n:]) - - // server_status [2 bytes] - mc.status = readStatus(data[1+n+m : 1+n+m+2]) - if err := mc.discardResults(); err != nil { - return err - } - - // warning count [2 bytes] - if !mc.strict { - return nil - } - - pos := 1 + n + m + 2 - if binary.LittleEndian.Uint16(data[pos:pos+2]) > 0 { - return mc.getWarnings() - } - return nil -} - -// Read Packets as Field Packets until EOF-Packet or an Error appears -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnDefinition41 -func (mc *mysqlConn) readColumns(count int) ([]mysqlField, error) { - columns := make([]mysqlField, count) - - for i := 0; ; i++ { - data, err := mc.readPacket() - if err != nil { - return nil, err - } - - // EOF Packet - if data[0] == iEOF && (len(data) == 5 || len(data) == 1) { - if i == count { - return columns, nil - } - return nil, fmt.Errorf("column count mismatch n:%d len:%d", count, len(columns)) - } - - // Catalog - pos, err := skipLengthEncodedString(data) - if err != nil { - return nil, err - } - - // Database [len coded string] - n, err := skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - - // Table [len coded string] - if mc.cfg.ColumnsWithAlias { - tableName, _, n, err := readLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - columns[i].tableName = string(tableName) - } else { - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - } - - // Original table [len coded string] - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - - // Name [len coded string] - name, _, n, err := readLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - columns[i].name = string(name) - pos += n - - // Original name [len coded string] - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - - // Filler [uint8] - // Charset [charset, collation uint8] - // Length [uint32] - pos += n + 1 + 2 + 4 - - // Field type [uint8] - columns[i].fieldType = data[pos] - pos++ - - // Flags [uint16] - columns[i].flags = fieldFlag(binary.LittleEndian.Uint16(data[pos : pos+2])) - pos += 2 - - // Decimals [uint8] - columns[i].decimals = data[pos] - //pos++ - - // Default value [len coded binary] - //if pos < len(data) { - // defaultVal, _, err = bytesToLengthCodedBinary(data[pos:]) - //} - } -} - -// Read Packets as Field Packets until EOF-Packet or an Error appears -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::ResultsetRow -func (rows *textRows) readRow(dest []driver.Value) error { - mc := rows.mc - - data, err := mc.readPacket() - if err != nil { - return err - } - - // EOF Packet - if data[0] == iEOF && len(data) == 5 { - // server_status [2 bytes] - rows.mc.status = readStatus(data[3:]) - if err := rows.mc.discardResults(); err != nil { - return err - } - rows.mc = nil - return io.EOF - } - if data[0] == iERR { - rows.mc = nil - return mc.handleErrorPacket(data) - } - - // RowSet Packet - var n int - var isNull bool - pos := 0 - - for i := range dest { - // Read bytes and convert to string - dest[i], isNull, n, err = readLengthEncodedString(data[pos:]) - pos += n - if err == nil { - if !isNull { - if !mc.parseTime { - continue - } else { - switch rows.columns[i].fieldType { - case fieldTypeTimestamp, fieldTypeDateTime, - fieldTypeDate, fieldTypeNewDate: - dest[i], err = parseDateTime( - string(dest[i].([]byte)), - mc.cfg.Loc, - ) - if err == nil { - continue - } - default: - continue - } - } - - } else { - dest[i] = nil - continue - } - } - return err // err != nil - } - - return nil -} - -// Reads Packets until EOF-Packet or an Error appears. Returns count of Packets read -func (mc *mysqlConn) readUntilEOF() error { - for { - data, err := mc.readPacket() - - // No Err and no EOF Packet - if err == nil && data[0] != iEOF { - continue - } - if err == nil && data[0] == iEOF && len(data) == 5 { - mc.status = readStatus(data[3:]) - } - - return err // Err or EOF - } -} - -/****************************************************************************** -* Prepared Statements * -******************************************************************************/ - -// Prepare Result Packets -// http://dev.mysql.com/doc/internals/en/com-stmt-prepare-response.html -func (stmt *mysqlStmt) readPrepareResultPacket() (uint16, error) { - data, err := stmt.mc.readPacket() - if err == nil { - // packet indicator [1 byte] - if data[0] != iOK { - return 0, stmt.mc.handleErrorPacket(data) - } - - // statement id [4 bytes] - stmt.id = binary.LittleEndian.Uint32(data[1:5]) - - // Column count [16 bit uint] - columnCount := binary.LittleEndian.Uint16(data[5:7]) - - // Param count [16 bit uint] - stmt.paramCount = int(binary.LittleEndian.Uint16(data[7:9])) - - // Reserved [8 bit] - - // Warning count [16 bit uint] - if !stmt.mc.strict { - return columnCount, nil - } - - // Check for warnings count > 0, only available in MySQL > 4.1 - if len(data) >= 12 && binary.LittleEndian.Uint16(data[10:12]) > 0 { - return columnCount, stmt.mc.getWarnings() - } - return columnCount, nil - } - return 0, err -} - -// http://dev.mysql.com/doc/internals/en/com-stmt-send-long-data.html -func (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error { - maxLen := stmt.mc.maxPacketAllowed - 1 - pktLen := maxLen - - // After the header (bytes 0-3) follows before the data: - // 1 byte command - // 4 bytes stmtID - // 2 bytes paramID - const dataOffset = 1 + 4 + 2 - - // Can not use the write buffer since - // a) the buffer is too small - // b) it is in use - data := make([]byte, 4+1+4+2+len(arg)) - - copy(data[4+dataOffset:], arg) - - for argLen := len(arg); argLen > 0; argLen -= pktLen - dataOffset { - if dataOffset+argLen < maxLen { - pktLen = dataOffset + argLen - } - - stmt.mc.sequence = 0 - // Add command byte [1 byte] - data[4] = comStmtSendLongData - - // Add stmtID [32 bit] - data[5] = byte(stmt.id) - data[6] = byte(stmt.id >> 8) - data[7] = byte(stmt.id >> 16) - data[8] = byte(stmt.id >> 24) - - // Add paramID [16 bit] - data[9] = byte(paramID) - data[10] = byte(paramID >> 8) - - // Send CMD packet - err := stmt.mc.writePacket(data[:4+pktLen]) - if err == nil { - data = data[pktLen-dataOffset:] - continue - } - return err - - } - - // Reset Packet Sequence - stmt.mc.sequence = 0 - return nil -} - -// Execute Prepared Statement -// http://dev.mysql.com/doc/internals/en/com-stmt-execute.html -func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error { - if len(args) != stmt.paramCount { - return fmt.Errorf( - "argument count mismatch (got: %d; has: %d)", - len(args), - stmt.paramCount, - ) - } - - const minPktLen = 4 + 1 + 4 + 1 + 4 - mc := stmt.mc - - // Reset packet-sequence - mc.sequence = 0 - - var data []byte - - if len(args) == 0 { - data = mc.buf.takeBuffer(minPktLen) - } else { - data = mc.buf.takeCompleteBuffer() - } - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // command [1 byte] - data[4] = comStmtExecute - - // statement_id [4 bytes] - data[5] = byte(stmt.id) - data[6] = byte(stmt.id >> 8) - data[7] = byte(stmt.id >> 16) - data[8] = byte(stmt.id >> 24) - - // flags (0: CURSOR_TYPE_NO_CURSOR) [1 byte] - data[9] = 0x00 - - // iteration_count (uint32(1)) [4 bytes] - data[10] = 0x01 - data[11] = 0x00 - data[12] = 0x00 - data[13] = 0x00 - - if len(args) > 0 { - pos := minPktLen - - var nullMask []byte - if maskLen, typesLen := (len(args)+7)/8, 1+2*len(args); pos+maskLen+typesLen >= len(data) { - // buffer has to be extended but we don't know by how much so - // we depend on append after all data with known sizes fit. - // We stop at that because we deal with a lot of columns here - // which makes the required allocation size hard to guess. - tmp := make([]byte, pos+maskLen+typesLen) - copy(tmp[:pos], data[:pos]) - data = tmp - nullMask = data[pos : pos+maskLen] - pos += maskLen - } else { - nullMask = data[pos : pos+maskLen] - for i := 0; i < maskLen; i++ { - nullMask[i] = 0 - } - pos += maskLen - } - - // newParameterBoundFlag 1 [1 byte] - data[pos] = 0x01 - pos++ - - // type of each parameter [len(args)*2 bytes] - paramTypes := data[pos:] - pos += len(args) * 2 - - // value of each parameter [n bytes] - paramValues := data[pos:pos] - valuesCap := cap(paramValues) - - for i, arg := range args { - // build NULL-bitmap - if arg == nil { - nullMask[i/8] |= 1 << (uint(i) & 7) - paramTypes[i+i] = fieldTypeNULL - paramTypes[i+i+1] = 0x00 - continue - } - - // cache types and values - switch v := arg.(type) { - case int64: - paramTypes[i+i] = fieldTypeLongLong - paramTypes[i+i+1] = 0x00 - - if cap(paramValues)-len(paramValues)-8 >= 0 { - paramValues = paramValues[:len(paramValues)+8] - binary.LittleEndian.PutUint64( - paramValues[len(paramValues)-8:], - uint64(v), - ) - } else { - paramValues = append(paramValues, - uint64ToBytes(uint64(v))..., - ) - } - - case float64: - paramTypes[i+i] = fieldTypeDouble - paramTypes[i+i+1] = 0x00 - - if cap(paramValues)-len(paramValues)-8 >= 0 { - paramValues = paramValues[:len(paramValues)+8] - binary.LittleEndian.PutUint64( - paramValues[len(paramValues)-8:], - math.Float64bits(v), - ) - } else { - paramValues = append(paramValues, - uint64ToBytes(math.Float64bits(v))..., - ) - } - - case bool: - paramTypes[i+i] = fieldTypeTiny - paramTypes[i+i+1] = 0x00 - - if v { - paramValues = append(paramValues, 0x01) - } else { - paramValues = append(paramValues, 0x00) - } - - case []byte: - // Common case (non-nil value) first - if v != nil { - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 { - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(v)), - ) - paramValues = append(paramValues, v...) - } else { - if err := stmt.writeCommandLongData(i, v); err != nil { - return err - } - } - continue - } - - // Handle []byte(nil) as a NULL value - nullMask[i/8] |= 1 << (uint(i) & 7) - paramTypes[i+i] = fieldTypeNULL - paramTypes[i+i+1] = 0x00 - - case string: - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 { - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(v)), - ) - paramValues = append(paramValues, v...) - } else { - if err := stmt.writeCommandLongData(i, []byte(v)); err != nil { - return err - } - } - - case time.Time: - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - var val []byte - if v.IsZero() { - val = []byte("0000-00-00") - } else { - val = []byte(v.In(mc.cfg.Loc).Format(timeFormat)) - } - - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(val)), - ) - paramValues = append(paramValues, val...) - - default: - return fmt.Errorf("can not convert type: %T", arg) - } - } - - // Check if param values exceeded the available buffer - // In that case we must build the data packet with the new values buffer - if valuesCap != cap(paramValues) { - data = append(data[:pos], paramValues...) - mc.buf.buf = data - } - - pos += len(paramValues) - data = data[:pos] - } - - return mc.writePacket(data) -} - -func (mc *mysqlConn) discardResults() error { - for mc.status&statusMoreResultsExists != 0 { - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return err - } - if resLen > 0 { - // columns - if err := mc.readUntilEOF(); err != nil { - return err - } - // rows - if err := mc.readUntilEOF(); err != nil { - return err - } - } else { - mc.status &^= statusMoreResultsExists - } - } - return nil -} - -// http://dev.mysql.com/doc/internals/en/binary-protocol-resultset-row.html -func (rows *binaryRows) readRow(dest []driver.Value) error { - data, err := rows.mc.readPacket() - if err != nil { - return err - } - - // packet indicator [1 byte] - if data[0] != iOK { - // EOF Packet - if data[0] == iEOF && len(data) == 5 { - rows.mc.status = readStatus(data[3:]) - if err := rows.mc.discardResults(); err != nil { - return err - } - rows.mc = nil - return io.EOF - } - rows.mc = nil - - // Error otherwise - return rows.mc.handleErrorPacket(data) - } - - // NULL-bitmap, [(column-count + 7 + 2) / 8 bytes] - pos := 1 + (len(dest)+7+2)>>3 - nullMask := data[1:pos] - - for i := range dest { - // Field is NULL - // (byte >> bit-pos) % 2 == 1 - if ((nullMask[(i+2)>>3] >> uint((i+2)&7)) & 1) == 1 { - dest[i] = nil - continue - } - - // Convert to byte-coded string - switch rows.columns[i].fieldType { - case fieldTypeNULL: - dest[i] = nil - continue - - // Numeric Types - case fieldTypeTiny: - if rows.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(data[pos]) - } else { - dest[i] = int64(int8(data[pos])) - } - pos++ - continue - - case fieldTypeShort, fieldTypeYear: - if rows.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(binary.LittleEndian.Uint16(data[pos : pos+2])) - } else { - dest[i] = int64(int16(binary.LittleEndian.Uint16(data[pos : pos+2]))) - } - pos += 2 - continue - - case fieldTypeInt24, fieldTypeLong: - if rows.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(binary.LittleEndian.Uint32(data[pos : pos+4])) - } else { - dest[i] = int64(int32(binary.LittleEndian.Uint32(data[pos : pos+4]))) - } - pos += 4 - continue - - case fieldTypeLongLong: - if rows.columns[i].flags&flagUnsigned != 0 { - val := binary.LittleEndian.Uint64(data[pos : pos+8]) - if val > math.MaxInt64 { - dest[i] = uint64ToString(val) - } else { - dest[i] = int64(val) - } - } else { - dest[i] = int64(binary.LittleEndian.Uint64(data[pos : pos+8])) - } - pos += 8 - continue - - case fieldTypeFloat: - dest[i] = float32(math.Float32frombits(binary.LittleEndian.Uint32(data[pos : pos+4]))) - pos += 4 - continue - - case fieldTypeDouble: - dest[i] = math.Float64frombits(binary.LittleEndian.Uint64(data[pos : pos+8])) - pos += 8 - continue - - // Length coded Binary Strings - case fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar, - fieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB, - fieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB, - fieldTypeVarString, fieldTypeString, fieldTypeGeometry, fieldTypeJSON: - var isNull bool - var n int - dest[i], isNull, n, err = readLengthEncodedString(data[pos:]) - pos += n - if err == nil { - if !isNull { - continue - } else { - dest[i] = nil - continue - } - } - return err - - case - fieldTypeDate, fieldTypeNewDate, // Date YYYY-MM-DD - fieldTypeTime, // Time [-][H]HH:MM:SS[.fractal] - fieldTypeTimestamp, fieldTypeDateTime: // Timestamp YYYY-MM-DD HH:MM:SS[.fractal] - - num, isNull, n := readLengthEncodedInteger(data[pos:]) - pos += n - - switch { - case isNull: - dest[i] = nil - continue - case rows.columns[i].fieldType == fieldTypeTime: - // database/sql does not support an equivalent to TIME, return a string - var dstlen uint8 - switch decimals := rows.columns[i].decimals; decimals { - case 0x00, 0x1f: - dstlen = 8 - case 1, 2, 3, 4, 5, 6: - dstlen = 8 + 1 + decimals - default: - return fmt.Errorf( - "protocol error, illegal decimals value %d", - rows.columns[i].decimals, - ) - } - dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, true) - case rows.mc.parseTime: - dest[i], err = parseBinaryDateTime(num, data[pos:], rows.mc.cfg.Loc) - default: - var dstlen uint8 - if rows.columns[i].fieldType == fieldTypeDate { - dstlen = 10 - } else { - switch decimals := rows.columns[i].decimals; decimals { - case 0x00, 0x1f: - dstlen = 19 - case 1, 2, 3, 4, 5, 6: - dstlen = 19 + 1 + decimals - default: - return fmt.Errorf( - "protocol error, illegal decimals value %d", - rows.columns[i].decimals, - ) - } - } - dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, false) - } - - if err == nil { - pos += int(num) - continue - } else { - return err - } - - // Please report if this happens! - default: - return fmt.Errorf("unknown field type %d", rows.columns[i].fieldType) - } - } - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/result.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/result.go deleted file mode 100644 index c6438d0..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/result.go +++ /dev/null @@ -1,22 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -type mysqlResult struct { - affectedRows int64 - insertId int64 -} - -func (res *mysqlResult) LastInsertId() (int64, error) { - return res.insertId, nil -} - -func (res *mysqlResult) RowsAffected() (int64, error) { - return res.affectedRows, nil -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/rows.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/rows.go deleted file mode 100644 index c08255e..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/rows.go +++ /dev/null @@ -1,112 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "io" -) - -type mysqlField struct { - tableName string - name string - flags fieldFlag - fieldType byte - decimals byte -} - -type mysqlRows struct { - mc *mysqlConn - columns []mysqlField -} - -type binaryRows struct { - mysqlRows -} - -type textRows struct { - mysqlRows -} - -type emptyRows struct{} - -func (rows *mysqlRows) Columns() []string { - columns := make([]string, len(rows.columns)) - if rows.mc != nil && rows.mc.cfg.ColumnsWithAlias { - for i := range columns { - if tableName := rows.columns[i].tableName; len(tableName) > 0 { - columns[i] = tableName + "." + rows.columns[i].name - } else { - columns[i] = rows.columns[i].name - } - } - } else { - for i := range columns { - columns[i] = rows.columns[i].name - } - } - return columns -} - -func (rows *mysqlRows) Close() error { - mc := rows.mc - if mc == nil { - return nil - } - if mc.netConn == nil { - return ErrInvalidConn - } - - // Remove unread packets from stream - err := mc.readUntilEOF() - if err == nil { - if err = mc.discardResults(); err != nil { - return err - } - } - - rows.mc = nil - return err -} - -func (rows *binaryRows) Next(dest []driver.Value) error { - if mc := rows.mc; mc != nil { - if mc.netConn == nil { - return ErrInvalidConn - } - - // Fetch next row from stream - return rows.readRow(dest) - } - return io.EOF -} - -func (rows *textRows) Next(dest []driver.Value) error { - if mc := rows.mc; mc != nil { - if mc.netConn == nil { - return ErrInvalidConn - } - - // Fetch next row from stream - return rows.readRow(dest) - } - return io.EOF -} - -func (rows emptyRows) Columns() []string { - return nil -} - -func (rows emptyRows) Close() error { - return nil -} - -func (rows emptyRows) Next(dest []driver.Value) error { - return io.EOF -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/statement.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/statement.go deleted file mode 100644 index ead9a6b..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/statement.go +++ /dev/null @@ -1,150 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "database/sql/driver" - "fmt" - "reflect" - "strconv" -) - -type mysqlStmt struct { - mc *mysqlConn - id uint32 - paramCount int - columns []mysqlField // cached from the first query -} - -func (stmt *mysqlStmt) Close() error { - if stmt.mc == nil || stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return driver.ErrBadConn - } - - err := stmt.mc.writeCommandPacketUint32(comStmtClose, stmt.id) - stmt.mc = nil - return err -} - -func (stmt *mysqlStmt) NumInput() int { - return stmt.paramCount -} - -func (stmt *mysqlStmt) ColumnConverter(idx int) driver.ValueConverter { - return converter{} -} - -func (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) { - if stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := stmt.writeExecutePacket(args) - if err != nil { - return nil, err - } - - mc := stmt.mc - - mc.affectedRows = 0 - mc.insertId = 0 - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil { - if resLen > 0 { - // Columns - err = mc.readUntilEOF() - if err != nil { - return nil, err - } - - // Rows - err = mc.readUntilEOF() - } - if err == nil { - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, nil - } - } - - return nil, err -} - -func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) { - if stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := stmt.writeExecutePacket(args) - if err != nil { - return nil, err - } - - mc := stmt.mc - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return nil, err - } - - rows := new(binaryRows) - - if resLen > 0 { - rows.mc = mc - // Columns - // If not cached, read them and cache them - if stmt.columns == nil { - rows.columns, err = mc.readColumns(resLen) - stmt.columns = rows.columns - } else { - rows.columns = stmt.columns - err = mc.readUntilEOF() - } - } - - return rows, err -} - -type converter struct{} - -func (c converter) ConvertValue(v interface{}) (driver.Value, error) { - if driver.IsValue(v) { - return v, nil - } - - rv := reflect.ValueOf(v) - switch rv.Kind() { - case reflect.Ptr: - // indirect pointers - if rv.IsNil() { - return nil, nil - } - return c.ConvertValue(rv.Elem().Interface()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return rv.Int(), nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32: - return int64(rv.Uint()), nil - case reflect.Uint64: - u64 := rv.Uint() - if u64 >= 1<<63 { - return strconv.FormatUint(u64, 10), nil - } - return int64(u64), nil - case reflect.Float32, reflect.Float64: - return rv.Float(), nil - } - return nil, fmt.Errorf("unsupported type %T, a %s", v, rv.Kind()) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/transaction.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/transaction.go deleted file mode 100644 index 33c749b..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/transaction.go +++ /dev/null @@ -1,31 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -type mysqlTx struct { - mc *mysqlConn -} - -func (tx *mysqlTx) Commit() (err error) { - if tx.mc == nil || tx.mc.netConn == nil { - return ErrInvalidConn - } - err = tx.mc.exec("COMMIT") - tx.mc = nil - return -} - -func (tx *mysqlTx) Rollback() (err error) { - if tx.mc == nil || tx.mc.netConn == nil { - return ErrInvalidConn - } - err = tx.mc.exec("ROLLBACK") - tx.mc = nil - return -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/utils.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/utils.go deleted file mode 100644 index d523b7f..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/go-sql-driver/mysql/utils.go +++ /dev/null @@ -1,740 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at http://mozilla.org/MPL/2.0/. - -package mysql - -import ( - "crypto/sha1" - "crypto/tls" - "database/sql/driver" - "encoding/binary" - "fmt" - "io" - "strings" - "time" -) - -var ( - tlsConfigRegister map[string]*tls.Config // Register for custom tls.Configs -) - -// RegisterTLSConfig registers a custom tls.Config to be used with sql.Open. -// Use the key as a value in the DSN where tls=value. -// -// rootCertPool := x509.NewCertPool() -// pem, err := ioutil.ReadFile("/path/ca-cert.pem") -// if err != nil { -// log.Fatal(err) -// } -// if ok := rootCertPool.AppendCertsFromPEM(pem); !ok { -// log.Fatal("Failed to append PEM.") -// } -// clientCert := make([]tls.Certificate, 0, 1) -// certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem") -// if err != nil { -// log.Fatal(err) -// } -// clientCert = append(clientCert, certs) -// mysql.RegisterTLSConfig("custom", &tls.Config{ -// RootCAs: rootCertPool, -// Certificates: clientCert, -// }) -// db, err := sql.Open("mysql", "user@tcp(localhost:3306)/test?tls=custom") -// -func RegisterTLSConfig(key string, config *tls.Config) error { - if _, isBool := readBool(key); isBool || strings.ToLower(key) == "skip-verify" { - return fmt.Errorf("key '%s' is reserved", key) - } - - if tlsConfigRegister == nil { - tlsConfigRegister = make(map[string]*tls.Config) - } - - tlsConfigRegister[key] = config - return nil -} - -// DeregisterTLSConfig removes the tls.Config associated with key. -func DeregisterTLSConfig(key string) { - if tlsConfigRegister != nil { - delete(tlsConfigRegister, key) - } -} - -// Returns the bool value of the input. -// The 2nd return value indicates if the input was a valid bool value -func readBool(input string) (value bool, valid bool) { - switch input { - case "1", "true", "TRUE", "True": - return true, true - case "0", "false", "FALSE", "False": - return false, true - } - - // Not a valid bool value - return -} - -/****************************************************************************** -* Authentication * -******************************************************************************/ - -// Encrypt password using 4.1+ method -func scramblePassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - // stage1Hash = SHA1(password) - crypt := sha1.New() - crypt.Write(password) - stage1 := crypt.Sum(nil) - - // scrambleHash = SHA1(scramble + SHA1(stage1Hash)) - // inner Hash - crypt.Reset() - crypt.Write(stage1) - hash := crypt.Sum(nil) - - // outer Hash - crypt.Reset() - crypt.Write(scramble) - crypt.Write(hash) - scramble = crypt.Sum(nil) - - // token = scrambleHash XOR stage1Hash - for i := range scramble { - scramble[i] ^= stage1[i] - } - return scramble -} - -// Encrypt password using pre 4.1 (old password) method -// https://github.com/atcurtis/mariadb/blob/master/mysys/my_rnd.c -type myRnd struct { - seed1, seed2 uint32 -} - -const myRndMaxVal = 0x3FFFFFFF - -// Pseudo random number generator -func newMyRnd(seed1, seed2 uint32) *myRnd { - return &myRnd{ - seed1: seed1 % myRndMaxVal, - seed2: seed2 % myRndMaxVal, - } -} - -// Tested to be equivalent to MariaDB's floating point variant -// http://play.golang.org/p/QHvhd4qved -// http://play.golang.org/p/RG0q4ElWDx -func (r *myRnd) NextByte() byte { - r.seed1 = (r.seed1*3 + r.seed2) % myRndMaxVal - r.seed2 = (r.seed1 + r.seed2 + 33) % myRndMaxVal - - return byte(uint64(r.seed1) * 31 / myRndMaxVal) -} - -// Generate binary hash from byte string using insecure pre 4.1 method -func pwHash(password []byte) (result [2]uint32) { - var add uint32 = 7 - var tmp uint32 - - result[0] = 1345345333 - result[1] = 0x12345671 - - for _, c := range password { - // skip spaces and tabs in password - if c == ' ' || c == '\t' { - continue - } - - tmp = uint32(c) - result[0] ^= (((result[0] & 63) + add) * tmp) + (result[0] << 8) - result[1] += (result[1] << 8) ^ result[0] - add += tmp - } - - // Remove sign bit (1<<31)-1) - result[0] &= 0x7FFFFFFF - result[1] &= 0x7FFFFFFF - - return -} - -// Encrypt password using insecure pre 4.1 method -func scrambleOldPassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - scramble = scramble[:8] - - hashPw := pwHash(password) - hashSc := pwHash(scramble) - - r := newMyRnd(hashPw[0]^hashSc[0], hashPw[1]^hashSc[1]) - - var out [8]byte - for i := range out { - out[i] = r.NextByte() + 64 - } - - mask := r.NextByte() - for i := range out { - out[i] ^= mask - } - - return out[:] -} - -/****************************************************************************** -* Time related utils * -******************************************************************************/ - -// NullTime represents a time.Time that may be NULL. -// NullTime implements the Scanner interface so -// it can be used as a scan destination: -// -// var nt NullTime -// err := db.QueryRow("SELECT time FROM foo WHERE id=?", id).Scan(&nt) -// ... -// if nt.Valid { -// // use nt.Time -// } else { -// // NULL value -// } -// -// This NullTime implementation is not driver-specific -type NullTime struct { - Time time.Time - Valid bool // Valid is true if Time is not NULL -} - -// Scan implements the Scanner interface. -// The value type must be time.Time or string / []byte (formatted time-string), -// otherwise Scan fails. -func (nt *NullTime) Scan(value interface{}) (err error) { - if value == nil { - nt.Time, nt.Valid = time.Time{}, false - return - } - - switch v := value.(type) { - case time.Time: - nt.Time, nt.Valid = v, true - return - case []byte: - nt.Time, err = parseDateTime(string(v), time.UTC) - nt.Valid = (err == nil) - return - case string: - nt.Time, err = parseDateTime(v, time.UTC) - nt.Valid = (err == nil) - return - } - - nt.Valid = false - return fmt.Errorf("Can't convert %T to time.Time", value) -} - -// Value implements the driver Valuer interface. -func (nt NullTime) Value() (driver.Value, error) { - if !nt.Valid { - return nil, nil - } - return nt.Time, nil -} - -func parseDateTime(str string, loc *time.Location) (t time.Time, err error) { - base := "0000-00-00 00:00:00.0000000" - switch len(str) { - case 10, 19, 21, 22, 23, 24, 25, 26: // up to "YYYY-MM-DD HH:MM:SS.MMMMMM" - if str == base[:len(str)] { - return - } - t, err = time.Parse(timeFormat[:len(str)], str) - default: - err = fmt.Errorf("invalid time string: %s", str) - return - } - - // Adjust location - if err == nil && loc != time.UTC { - y, mo, d := t.Date() - h, mi, s := t.Clock() - t, err = time.Date(y, mo, d, h, mi, s, t.Nanosecond(), loc), nil - } - - return -} - -func parseBinaryDateTime(num uint64, data []byte, loc *time.Location) (driver.Value, error) { - switch num { - case 0: - return time.Time{}, nil - case 4: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - 0, 0, 0, 0, - loc, - ), nil - case 7: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - int(data[4]), // hour - int(data[5]), // minutes - int(data[6]), // seconds - 0, - loc, - ), nil - case 11: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - int(data[4]), // hour - int(data[5]), // minutes - int(data[6]), // seconds - int(binary.LittleEndian.Uint32(data[7:11]))*1000, // nanoseconds - loc, - ), nil - } - return nil, fmt.Errorf("invalid DATETIME packet length %d", num) -} - -// zeroDateTime is used in formatBinaryDateTime to avoid an allocation -// if the DATE or DATETIME has the zero value. -// It must never be changed. -// The current behavior depends on database/sql copying the result. -var zeroDateTime = []byte("0000-00-00 00:00:00.000000") - -const digits01 = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" -const digits10 = "0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999" - -func formatBinaryDateTime(src []byte, length uint8, justTime bool) (driver.Value, error) { - // length expects the deterministic length of the zero value, - // negative time and 100+ hours are automatically added if needed - if len(src) == 0 { - if justTime { - return zeroDateTime[11 : 11+length], nil - } - return zeroDateTime[:length], nil - } - var dst []byte // return value - var pt, p1, p2, p3 byte // current digit pair - var zOffs byte // offset of value in zeroDateTime - if justTime { - switch length { - case - 8, // time (can be up to 10 when negative and 100+ hours) - 10, 11, 12, 13, 14, 15: // time with fractional seconds - default: - return nil, fmt.Errorf("illegal TIME length %d", length) - } - switch len(src) { - case 8, 12: - default: - return nil, fmt.Errorf("invalid TIME packet length %d", len(src)) - } - // +2 to enable negative time and 100+ hours - dst = make([]byte, 0, length+2) - if src[0] == 1 { - dst = append(dst, '-') - } - if src[1] != 0 { - hour := uint16(src[1])*24 + uint16(src[5]) - pt = byte(hour / 100) - p1 = byte(hour - 100*uint16(pt)) - dst = append(dst, digits01[pt]) - } else { - p1 = src[5] - } - zOffs = 11 - src = src[6:] - } else { - switch length { - case 10, 19, 21, 22, 23, 24, 25, 26: - default: - t := "DATE" - if length > 10 { - t += "TIME" - } - return nil, fmt.Errorf("illegal %s length %d", t, length) - } - switch len(src) { - case 4, 7, 11: - default: - t := "DATE" - if length > 10 { - t += "TIME" - } - return nil, fmt.Errorf("illegal %s packet length %d", t, len(src)) - } - dst = make([]byte, 0, length) - // start with the date - year := binary.LittleEndian.Uint16(src[:2]) - pt = byte(year / 100) - p1 = byte(year - 100*uint16(pt)) - p2, p3 = src[2], src[3] - dst = append(dst, - digits10[pt], digits01[pt], - digits10[p1], digits01[p1], '-', - digits10[p2], digits01[p2], '-', - digits10[p3], digits01[p3], - ) - if length == 10 { - return dst, nil - } - if len(src) == 4 { - return append(dst, zeroDateTime[10:length]...), nil - } - dst = append(dst, ' ') - p1 = src[4] // hour - src = src[5:] - } - // p1 is 2-digit hour, src is after hour - p2, p3 = src[0], src[1] - dst = append(dst, - digits10[p1], digits01[p1], ':', - digits10[p2], digits01[p2], ':', - digits10[p3], digits01[p3], - ) - if length <= byte(len(dst)) { - return dst, nil - } - src = src[2:] - if len(src) == 0 { - return append(dst, zeroDateTime[19:zOffs+length]...), nil - } - microsecs := binary.LittleEndian.Uint32(src[:4]) - p1 = byte(microsecs / 10000) - microsecs -= 10000 * uint32(p1) - p2 = byte(microsecs / 100) - microsecs -= 100 * uint32(p2) - p3 = byte(microsecs) - switch decimals := zOffs + length - 20; decimals { - default: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - digits10[p3], digits01[p3], - ), nil - case 1: - return append(dst, '.', - digits10[p1], - ), nil - case 2: - return append(dst, '.', - digits10[p1], digits01[p1], - ), nil - case 3: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], - ), nil - case 4: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - ), nil - case 5: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - digits10[p3], - ), nil - } -} - -/****************************************************************************** -* Convert from and to bytes * -******************************************************************************/ - -func uint64ToBytes(n uint64) []byte { - return []byte{ - byte(n), - byte(n >> 8), - byte(n >> 16), - byte(n >> 24), - byte(n >> 32), - byte(n >> 40), - byte(n >> 48), - byte(n >> 56), - } -} - -func uint64ToString(n uint64) []byte { - var a [20]byte - i := 20 - - // U+0030 = 0 - // ... - // U+0039 = 9 - - var q uint64 - for n >= 10 { - i-- - q = n / 10 - a[i] = uint8(n-q*10) + 0x30 - n = q - } - - i-- - a[i] = uint8(n) + 0x30 - - return a[i:] -} - -// treats string value as unsigned integer representation -func stringToInt(b []byte) int { - val := 0 - for i := range b { - val *= 10 - val += int(b[i] - 0x30) - } - return val -} - -// returns the string read as a bytes slice, wheter the value is NULL, -// the number of bytes read and an error, in case the string is longer than -// the input slice -func readLengthEncodedString(b []byte) ([]byte, bool, int, error) { - // Get length - num, isNull, n := readLengthEncodedInteger(b) - if num < 1 { - return b[n:n], isNull, n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return b[n-int(num) : n], false, n, nil - } - return nil, false, n, io.EOF -} - -// returns the number of bytes skipped and an error, in case the string is -// longer than the input slice -func skipLengthEncodedString(b []byte) (int, error) { - // Get length - num, _, n := readLengthEncodedInteger(b) - if num < 1 { - return n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return n, nil - } - return n, io.EOF -} - -// returns the number read, whether the value is NULL and the number of bytes read -func readLengthEncodedInteger(b []byte) (uint64, bool, int) { - // See issue #349 - if len(b) == 0 { - return 0, true, 1 - } - switch b[0] { - - // 251: NULL - case 0xfb: - return 0, true, 1 - - // 252: value of following 2 - case 0xfc: - return uint64(b[1]) | uint64(b[2])<<8, false, 3 - - // 253: value of following 3 - case 0xfd: - return uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16, false, 4 - - // 254: value of following 8 - case 0xfe: - return uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16 | - uint64(b[4])<<24 | uint64(b[5])<<32 | uint64(b[6])<<40 | - uint64(b[7])<<48 | uint64(b[8])<<56, - false, 9 - } - - // 0-250: value of first byte - return uint64(b[0]), false, 1 -} - -// encodes a uint64 value and appends it to the given bytes slice -func appendLengthEncodedInteger(b []byte, n uint64) []byte { - switch { - case n <= 250: - return append(b, byte(n)) - - case n <= 0xffff: - return append(b, 0xfc, byte(n), byte(n>>8)) - - case n <= 0xffffff: - return append(b, 0xfd, byte(n), byte(n>>8), byte(n>>16)) - } - return append(b, 0xfe, byte(n), byte(n>>8), byte(n>>16), byte(n>>24), - byte(n>>32), byte(n>>40), byte(n>>48), byte(n>>56)) -} - -// reserveBuffer checks cap(buf) and expand buffer to len(buf) + appendSize. -// If cap(buf) is not enough, reallocate new buffer. -func reserveBuffer(buf []byte, appendSize int) []byte { - newSize := len(buf) + appendSize - if cap(buf) < newSize { - // Grow buffer exponentially - newBuf := make([]byte, len(buf)*2+appendSize) - copy(newBuf, buf) - buf = newBuf - } - return buf[:newSize] -} - -// escapeBytesBackslash escapes []byte with backslashes (\) -// This escapes the contents of a string (provided as []byte) by adding backslashes before special -// characters, and turning others into specific escape sequences, such as -// turning newlines into \n and null bytes into \0. -// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L823-L932 -func escapeBytesBackslash(buf, v []byte) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for _, c := range v { - switch c { - case '\x00': - buf[pos] = '\\' - buf[pos+1] = '0' - pos += 2 - case '\n': - buf[pos] = '\\' - buf[pos+1] = 'n' - pos += 2 - case '\r': - buf[pos] = '\\' - buf[pos+1] = 'r' - pos += 2 - case '\x1a': - buf[pos] = '\\' - buf[pos+1] = 'Z' - pos += 2 - case '\'': - buf[pos] = '\\' - buf[pos+1] = '\'' - pos += 2 - case '"': - buf[pos] = '\\' - buf[pos+1] = '"' - pos += 2 - case '\\': - buf[pos] = '\\' - buf[pos+1] = '\\' - pos += 2 - default: - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeStringBackslash is similar to escapeBytesBackslash but for string. -func escapeStringBackslash(buf []byte, v string) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for i := 0; i < len(v); i++ { - c := v[i] - switch c { - case '\x00': - buf[pos] = '\\' - buf[pos+1] = '0' - pos += 2 - case '\n': - buf[pos] = '\\' - buf[pos+1] = 'n' - pos += 2 - case '\r': - buf[pos] = '\\' - buf[pos+1] = 'r' - pos += 2 - case '\x1a': - buf[pos] = '\\' - buf[pos+1] = 'Z' - pos += 2 - case '\'': - buf[pos] = '\\' - buf[pos+1] = '\'' - pos += 2 - case '"': - buf[pos] = '\\' - buf[pos+1] = '"' - pos += 2 - case '\\': - buf[pos] = '\\' - buf[pos+1] = '\\' - pos += 2 - default: - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeBytesQuotes escapes apostrophes in []byte by doubling them up. -// This escapes the contents of a string by doubling up any apostrophes that -// it contains. This is used when the NO_BACKSLASH_ESCAPES SQL_MODE is in -// effect on the server. -// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L963-L1038 -func escapeBytesQuotes(buf, v []byte) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for _, c := range v { - if c == '\'' { - buf[pos] = '\'' - buf[pos+1] = '\'' - pos += 2 - } else { - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeStringQuotes is similar to escapeBytesQuotes but for string. -func escapeStringQuotes(buf []byte, v string) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for i := 0; i < len(v); i++ { - c := v[i] - if c == '\'' { - buf[pos] = '\'' - buf[pos+1] = '\'' - pos += 2 - } else { - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/LICENSE deleted file mode 100644 index 0d31edf..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - Copyright (c) 2013, Jason Moiron - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/bind.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/bind.go deleted file mode 100644 index 564635c..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/bind.go +++ /dev/null @@ -1,186 +0,0 @@ -package sqlx - -import ( - "bytes" - "errors" - "reflect" - "strconv" - "strings" - - "github.com/jmoiron/sqlx/reflectx" -) - -// Bindvar types supported by Rebind, BindMap and BindStruct. -const ( - UNKNOWN = iota - QUESTION - DOLLAR - NAMED -) - -// BindType returns the bindtype for a given database given a drivername. -func BindType(driverName string) int { - switch driverName { - case "postgres", "pgx": - return DOLLAR - case "mysql": - return QUESTION - case "sqlite3": - return QUESTION - case "oci8": - return NAMED - } - return UNKNOWN -} - -// FIXME: this should be able to be tolerant of escaped ?'s in queries without -// losing much speed, and should be to avoid confusion. - -// Rebind a query from the default bindtype (QUESTION) to the target bindtype. -func Rebind(bindType int, query string) string { - switch bindType { - case QUESTION, UNKNOWN: - return query - } - - qb := []byte(query) - // Add space enough for 10 params before we have to allocate - rqb := make([]byte, 0, len(qb)+10) - j := 1 - for _, b := range qb { - if b == '?' { - switch bindType { - case DOLLAR: - rqb = append(rqb, '$') - case NAMED: - rqb = append(rqb, ':', 'a', 'r', 'g') - } - for _, b := range strconv.Itoa(j) { - rqb = append(rqb, byte(b)) - } - j++ - } else { - rqb = append(rqb, b) - } - } - return string(rqb) -} - -// Experimental implementation of Rebind which uses a bytes.Buffer. The code is -// much simpler and should be more resistant to odd unicode, but it is twice as -// slow. Kept here for benchmarking purposes and to possibly replace Rebind if -// problems arise with its somewhat naive handling of unicode. -func rebindBuff(bindType int, query string) string { - if bindType != DOLLAR { - return query - } - - b := make([]byte, 0, len(query)) - rqb := bytes.NewBuffer(b) - j := 1 - for _, r := range query { - if r == '?' { - rqb.WriteRune('$') - rqb.WriteString(strconv.Itoa(j)) - j++ - } else { - rqb.WriteRune(r) - } - } - - return rqb.String() -} - -// In expands slice values in args, returning the modified query string -// and a new arg list that can be executed by a database. The `query` should -// use the `?` bindVar. The return value uses the `?` bindVar. -func In(query string, args ...interface{}) (string, []interface{}, error) { - // argMeta stores reflect.Value and length for slices and - // the value itself for non-slice arguments - type argMeta struct { - v reflect.Value - i interface{} - length int - } - - var flatArgsCount int - var anySlices bool - - meta := make([]argMeta, len(args)) - - for i, arg := range args { - v := reflect.ValueOf(arg) - t := reflectx.Deref(v.Type()) - - if t.Kind() == reflect.Slice { - meta[i].length = v.Len() - meta[i].v = v - - anySlices = true - flatArgsCount += meta[i].length - - if meta[i].length == 0 { - return "", nil, errors.New("empty slice passed to 'in' query") - } - } else { - meta[i].i = arg - flatArgsCount++ - } - } - - // don't do any parsing if there aren't any slices; note that this means - // some errors that we might have caught below will not be returned. - if !anySlices { - return query, args, nil - } - - newArgs := make([]interface{}, 0, flatArgsCount) - - var arg, offset int - var buf bytes.Buffer - - for i := strings.IndexByte(query[offset:], '?'); i != -1; i = strings.IndexByte(query[offset:], '?') { - if arg >= len(meta) { - // if an argument wasn't passed, lets return an error; this is - // not actually how database/sql Exec/Query works, but since we are - // creating an argument list programmatically, we want to be able - // to catch these programmer errors earlier. - return "", nil, errors.New("number of bindVars exceeds arguments") - } - - argMeta := meta[arg] - arg++ - - // not a slice, continue. - // our questionmark will either be written before the next expansion - // of a slice or after the loop when writing the rest of the query - if argMeta.length == 0 { - offset = offset + i + 1 - newArgs = append(newArgs, argMeta.i) - continue - } - - // write everything up to and including our ? character - buf.WriteString(query[:offset+i+1]) - - newArgs = append(newArgs, argMeta.v.Index(0).Interface()) - - for si := 1; si < argMeta.length; si++ { - buf.WriteString(", ?") - newArgs = append(newArgs, argMeta.v.Index(si).Interface()) - } - - // slice the query and reset the offset. this avoids some bookkeeping for - // the write after the loop - query = query[offset+i+1:] - offset = 0 - } - - buf.WriteString(query) - - if arg < len(meta) { - return "", nil, errors.New("number of bindVars less than number arguments") - } - - return buf.String(), newArgs, nil -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/doc.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/doc.go deleted file mode 100644 index e2b4e60..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/doc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Package sqlx provides general purpose extensions to database/sql. -// -// It is intended to seamlessly wrap database/sql and provide convenience -// methods which are useful in the development of database driven applications. -// None of the underlying database/sql methods are changed. Instead all extended -// behavior is implemented through new methods defined on wrapper types. -// -// Additions include scanning into structs, named query support, rebinding -// queries for different drivers, convenient shorthands for common error handling -// and more. -// -package sqlx diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/named.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/named.go deleted file mode 100644 index 4df8095..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/named.go +++ /dev/null @@ -1,336 +0,0 @@ -package sqlx - -// Named Query Support -// -// * BindMap - bind query bindvars to map/struct args -// * NamedExec, NamedQuery - named query w/ struct or map -// * NamedStmt - a pre-compiled named query which is a prepared statement -// -// Internal Interfaces: -// -// * compileNamedQuery - rebind a named query, returning a query and list of names -// * bindArgs, bindMapArgs, bindAnyArgs - given a list of names, return an arglist -// -import ( - "database/sql" - "errors" - "fmt" - "reflect" - "strconv" - "unicode" - - "github.com/jmoiron/sqlx/reflectx" -) - -// NamedStmt is a prepared statement that executes named queries. Prepare it -// how you would execute a NamedQuery, but pass in a struct or map when executing. -type NamedStmt struct { - Params []string - QueryString string - Stmt *Stmt -} - -// Close closes the named statement. -func (n *NamedStmt) Close() error { - return n.Stmt.Close() -} - -// Exec executes a named statement using the struct passed. -func (n *NamedStmt) Exec(arg interface{}) (sql.Result, error) { - args, err := bindAnyArgs(n.Params, arg, n.Stmt.Mapper) - if err != nil { - return *new(sql.Result), err - } - return n.Stmt.Exec(args...) -} - -// Query executes a named statement using the struct argument, returning rows. -func (n *NamedStmt) Query(arg interface{}) (*sql.Rows, error) { - args, err := bindAnyArgs(n.Params, arg, n.Stmt.Mapper) - if err != nil { - return nil, err - } - return n.Stmt.Query(args...) -} - -// QueryRow executes a named statement against the database. Because sqlx cannot -// create a *sql.Row with an error condition pre-set for binding errors, sqlx -// returns a *sqlx.Row instead. -func (n *NamedStmt) QueryRow(arg interface{}) *Row { - args, err := bindAnyArgs(n.Params, arg, n.Stmt.Mapper) - if err != nil { - return &Row{err: err} - } - return n.Stmt.QueryRowx(args...) -} - -// MustExec execs a NamedStmt, panicing on error -func (n *NamedStmt) MustExec(arg interface{}) sql.Result { - res, err := n.Exec(arg) - if err != nil { - panic(err) - } - return res -} - -// Queryx using this NamedStmt -func (n *NamedStmt) Queryx(arg interface{}) (*Rows, error) { - r, err := n.Query(arg) - if err != nil { - return nil, err - } - return &Rows{Rows: r, Mapper: n.Stmt.Mapper, unsafe: isUnsafe(n)}, err -} - -// QueryRowx this NamedStmt. Because of limitations with QueryRow, this is -// an alias for QueryRow. -func (n *NamedStmt) QueryRowx(arg interface{}) *Row { - return n.QueryRow(arg) -} - -// Select using this NamedStmt -func (n *NamedStmt) Select(dest interface{}, arg interface{}) error { - rows, err := n.Queryx(arg) - if err != nil { - return err - } - // if something happens here, we want to make sure the rows are Closed - defer rows.Close() - return scanAll(rows, dest, false) -} - -// Get using this NamedStmt -func (n *NamedStmt) Get(dest interface{}, arg interface{}) error { - r := n.QueryRowx(arg) - return r.scanAny(dest, false) -} - -// Unsafe creates an unsafe version of the NamedStmt -func (n *NamedStmt) Unsafe() *NamedStmt { - r := &NamedStmt{Params: n.Params, Stmt: n.Stmt, QueryString: n.QueryString} - r.Stmt.unsafe = true - return r -} - -// A union interface of preparer and binder, required to be able to prepare -// named statements (as the bindtype must be determined). -type namedPreparer interface { - Preparer - binder -} - -func prepareNamed(p namedPreparer, query string) (*NamedStmt, error) { - bindType := BindType(p.DriverName()) - q, args, err := compileNamedQuery([]byte(query), bindType) - if err != nil { - return nil, err - } - stmt, err := Preparex(p, q) - if err != nil { - return nil, err - } - return &NamedStmt{ - QueryString: q, - Params: args, - Stmt: stmt, - }, nil -} - -func bindAnyArgs(names []string, arg interface{}, m *reflectx.Mapper) ([]interface{}, error) { - if maparg, ok := arg.(map[string]interface{}); ok { - return bindMapArgs(names, maparg) - } - return bindArgs(names, arg, m) -} - -// private interface to generate a list of interfaces from a given struct -// type, given a list of names to pull out of the struct. Used by public -// BindStruct interface. -func bindArgs(names []string, arg interface{}, m *reflectx.Mapper) ([]interface{}, error) { - arglist := make([]interface{}, 0, len(names)) - - // grab the indirected value of arg - v := reflect.ValueOf(arg) - for v = reflect.ValueOf(arg); v.Kind() == reflect.Ptr; { - v = v.Elem() - } - - fields := m.TraversalsByName(v.Type(), names) - for i, t := range fields { - if len(t) == 0 { - return arglist, fmt.Errorf("could not find name %s in %#v", names[i], arg) - } - val := reflectx.FieldByIndexesReadOnly(v, t) - arglist = append(arglist, val.Interface()) - } - - return arglist, nil -} - -// like bindArgs, but for maps. -func bindMapArgs(names []string, arg map[string]interface{}) ([]interface{}, error) { - arglist := make([]interface{}, 0, len(names)) - - for _, name := range names { - val, ok := arg[name] - if !ok { - return arglist, fmt.Errorf("could not find name %s in %#v", name, arg) - } - arglist = append(arglist, val) - } - return arglist, nil -} - -// bindStruct binds a named parameter query with fields from a struct argument. -// The rules for binding field names to parameter names follow the same -// conventions as for StructScan, including obeying the `db` struct tags. -func bindStruct(bindType int, query string, arg interface{}, m *reflectx.Mapper) (string, []interface{}, error) { - bound, names, err := compileNamedQuery([]byte(query), bindType) - if err != nil { - return "", []interface{}{}, err - } - - arglist, err := bindArgs(names, arg, m) - if err != nil { - return "", []interface{}{}, err - } - - return bound, arglist, nil -} - -// bindMap binds a named parameter query with a map of arguments. -func bindMap(bindType int, query string, args map[string]interface{}) (string, []interface{}, error) { - bound, names, err := compileNamedQuery([]byte(query), bindType) - if err != nil { - return "", []interface{}{}, err - } - - arglist, err := bindMapArgs(names, args) - return bound, arglist, err -} - -// -- Compilation of Named Queries - -// Allow digits and letters in bind params; additionally runes are -// checked against underscores, meaning that bind params can have be -// alphanumeric with underscores. Mind the difference between unicode -// digits and numbers, where '5' is a digit but '五' is not. -var allowedBindRunes = []*unicode.RangeTable{unicode.Letter, unicode.Digit} - -// FIXME: this function isn't safe for unicode named params, as a failing test -// can testify. This is not a regression but a failure of the original code -// as well. It should be modified to range over runes in a string rather than -// bytes, even though this is less convenient and slower. Hopefully the -// addition of the prepared NamedStmt (which will only do this once) will make -// up for the slightly slower ad-hoc NamedExec/NamedQuery. - -// compile a NamedQuery into an unbound query (using the '?' bindvar) and -// a list of names. -func compileNamedQuery(qs []byte, bindType int) (query string, names []string, err error) { - names = make([]string, 0, 10) - rebound := make([]byte, 0, len(qs)) - - inName := false - last := len(qs) - 1 - currentVar := 1 - name := make([]byte, 0, 10) - - for i, b := range qs { - // a ':' while we're in a name is an error - if b == ':' { - // if this is the second ':' in a '::' escape sequence, append a ':' - if inName && i > 0 && qs[i-1] == ':' { - rebound = append(rebound, ':') - inName = false - continue - } else if inName { - err = errors.New("unexpected `:` while reading named param at " + strconv.Itoa(i)) - return query, names, err - } - inName = true - name = []byte{} - // if we're in a name, and this is an allowed character, continue - } else if inName && (unicode.IsOneOf(allowedBindRunes, rune(b)) || b == '_') && i != last { - // append the byte to the name if we are in a name and not on the last byte - name = append(name, b) - // if we're in a name and it's not an allowed character, the name is done - } else if inName { - inName = false - // if this is the final byte of the string and it is part of the name, then - // make sure to add it to the name - if i == last && unicode.IsOneOf(allowedBindRunes, rune(b)) { - name = append(name, b) - } - // add the string representation to the names list - names = append(names, string(name)) - // add a proper bindvar for the bindType - switch bindType { - // oracle only supports named type bind vars even for positional - case NAMED: - rebound = append(rebound, ':') - rebound = append(rebound, name...) - case QUESTION, UNKNOWN: - rebound = append(rebound, '?') - case DOLLAR: - rebound = append(rebound, '$') - for _, b := range strconv.Itoa(currentVar) { - rebound = append(rebound, byte(b)) - } - currentVar++ - } - // add this byte to string unless it was not part of the name - if i != last { - rebound = append(rebound, b) - } else if !unicode.IsOneOf(allowedBindRunes, rune(b)) { - rebound = append(rebound, b) - } - } else { - // this is a normal byte and should just go onto the rebound query - rebound = append(rebound, b) - } - } - - return string(rebound), names, err -} - -// BindNamed binds a struct or a map to a query with named parameters. -// DEPRECATED: use sqlx.Named` instead of this, it may be removed in future. -func BindNamed(bindType int, query string, arg interface{}) (string, []interface{}, error) { - return bindNamedMapper(bindType, query, arg, mapper()) -} - -// Named takes a query using named parameters and an argument and -// returns a new query with a list of args that can be executed by -// a database. The return value uses the `?` bindvar. -func Named(query string, arg interface{}) (string, []interface{}, error) { - return bindNamedMapper(QUESTION, query, arg, mapper()) -} - -func bindNamedMapper(bindType int, query string, arg interface{}, m *reflectx.Mapper) (string, []interface{}, error) { - if maparg, ok := arg.(map[string]interface{}); ok { - return bindMap(bindType, query, maparg) - } - return bindStruct(bindType, query, arg, m) -} - -// NamedQuery binds a named query and then runs Query on the result using the -// provided Ext (sqlx.Tx, sqlx.Db). It works with both structs and with -// map[string]interface{} types. -func NamedQuery(e Ext, query string, arg interface{}) (*Rows, error) { - q, args, err := bindNamedMapper(BindType(e.DriverName()), query, arg, mapperFor(e)) - if err != nil { - return nil, err - } - return e.Queryx(q, args...) -} - -// NamedExec uses BindStruct to get a query executable by the driver and -// then runs Exec on the result. Returns an error from the binding -// or the query excution itself. -func NamedExec(e Ext, query string, arg interface{}) (sql.Result, error) { - q, args, err := bindNamedMapper(BindType(e.DriverName()), query, arg, mapperFor(e)) - if err != nil { - return nil, err - } - return e.Exec(q, args...) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go deleted file mode 100644 index 5728011..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/reflectx/reflect.go +++ /dev/null @@ -1,371 +0,0 @@ -// Package reflectx implements extensions to the standard reflect lib suitable -// for implementing marshaling and unmarshaling packages. The main Mapper type -// allows for Go-compatible named atribute access, including accessing embedded -// struct attributes and the ability to use functions and struct tags to -// customize field names. -// -package reflectx - -import ( - "fmt" - "reflect" - "runtime" - "strings" - "sync" -) - -// A FieldInfo is a collection of metadata about a struct field. -type FieldInfo struct { - Index []int - Path string - Field reflect.StructField - Zero reflect.Value - Name string - Options map[string]string - Embedded bool - Children []*FieldInfo - Parent *FieldInfo -} - -// A StructMap is an index of field metadata for a struct. -type StructMap struct { - Tree *FieldInfo - Index []*FieldInfo - Paths map[string]*FieldInfo - Names map[string]*FieldInfo -} - -// GetByPath returns a *FieldInfo for a given string path. -func (f StructMap) GetByPath(path string) *FieldInfo { - return f.Paths[path] -} - -// GetByTraversal returns a *FieldInfo for a given integer path. It is -// analagous to reflect.FieldByIndex. -func (f StructMap) GetByTraversal(index []int) *FieldInfo { - if len(index) == 0 { - return nil - } - - tree := f.Tree - for _, i := range index { - if i >= len(tree.Children) || tree.Children[i] == nil { - return nil - } - tree = tree.Children[i] - } - return tree -} - -// Mapper is a general purpose mapper of names to struct fields. A Mapper -// behaves like most marshallers, optionally obeying a field tag for name -// mapping and a function to provide a basic mapping of fields to names. -type Mapper struct { - cache map[reflect.Type]*StructMap - tagName string - tagMapFunc func(string) string - mapFunc func(string) string - mutex sync.Mutex -} - -// NewMapper returns a new mapper which optionally obeys the field tag given -// by tagName. If tagName is the empty string, it is ignored. -func NewMapper(tagName string) *Mapper { - return &Mapper{ - cache: make(map[reflect.Type]*StructMap), - tagName: tagName, - } -} - -// NewMapperTagFunc returns a new mapper which contains a mapper for field names -// AND a mapper for tag values. This is useful for tags like json which can -// have values like "name,omitempty". -func NewMapperTagFunc(tagName string, mapFunc, tagMapFunc func(string) string) *Mapper { - return &Mapper{ - cache: make(map[reflect.Type]*StructMap), - tagName: tagName, - mapFunc: mapFunc, - tagMapFunc: tagMapFunc, - } -} - -// NewMapperFunc returns a new mapper which optionally obeys a field tag and -// a struct field name mapper func given by f. Tags will take precedence, but -// for any other field, the mapped name will be f(field.Name) -func NewMapperFunc(tagName string, f func(string) string) *Mapper { - return &Mapper{ - cache: make(map[reflect.Type]*StructMap), - tagName: tagName, - mapFunc: f, - } -} - -// TypeMap returns a mapping of field strings to int slices representing -// the traversal down the struct to reach the field. -func (m *Mapper) TypeMap(t reflect.Type) *StructMap { - m.mutex.Lock() - mapping, ok := m.cache[t] - if !ok { - mapping = getMapping(t, m.tagName, m.mapFunc, m.tagMapFunc) - m.cache[t] = mapping - } - m.mutex.Unlock() - return mapping -} - -// FieldMap returns the mapper's mapping of field names to reflect values. Panics -// if v's Kind is not Struct, or v is not Indirectable to a struct kind. -func (m *Mapper) FieldMap(v reflect.Value) map[string]reflect.Value { - v = reflect.Indirect(v) - mustBe(v, reflect.Struct) - - r := map[string]reflect.Value{} - tm := m.TypeMap(v.Type()) - for tagName, fi := range tm.Names { - r[tagName] = FieldByIndexes(v, fi.Index) - } - return r -} - -// FieldByName returns a field by the its mapped name as a reflect.Value. -// Panics if v's Kind is not Struct or v is not Indirectable to a struct Kind. -// Returns zero Value if the name is not found. -func (m *Mapper) FieldByName(v reflect.Value, name string) reflect.Value { - v = reflect.Indirect(v) - mustBe(v, reflect.Struct) - - tm := m.TypeMap(v.Type()) - fi, ok := tm.Names[name] - if !ok { - return v - } - return FieldByIndexes(v, fi.Index) -} - -// FieldsByName returns a slice of values corresponding to the slice of names -// for the value. Panics if v's Kind is not Struct or v is not Indirectable -// to a struct Kind. Returns zero Value for each name not found. -func (m *Mapper) FieldsByName(v reflect.Value, names []string) []reflect.Value { - v = reflect.Indirect(v) - mustBe(v, reflect.Struct) - - tm := m.TypeMap(v.Type()) - vals := make([]reflect.Value, 0, len(names)) - for _, name := range names { - fi, ok := tm.Names[name] - if !ok { - vals = append(vals, *new(reflect.Value)) - } else { - vals = append(vals, FieldByIndexes(v, fi.Index)) - } - } - return vals -} - -// TraversalsByName returns a slice of int slices which represent the struct -// traversals for each mapped name. Panics if t is not a struct or Indirectable -// to a struct. Returns empty int slice for each name not found. -func (m *Mapper) TraversalsByName(t reflect.Type, names []string) [][]int { - t = Deref(t) - mustBe(t, reflect.Struct) - tm := m.TypeMap(t) - - r := make([][]int, 0, len(names)) - for _, name := range names { - fi, ok := tm.Names[name] - if !ok { - r = append(r, []int{}) - } else { - r = append(r, fi.Index) - } - } - return r -} - -// FieldByIndexes returns a value for a particular struct traversal. -func FieldByIndexes(v reflect.Value, indexes []int) reflect.Value { - for _, i := range indexes { - v = reflect.Indirect(v).Field(i) - // if this is a pointer, it's possible it is nil - if v.Kind() == reflect.Ptr && v.IsNil() { - alloc := reflect.New(Deref(v.Type())) - v.Set(alloc) - } - if v.Kind() == reflect.Map && v.IsNil() { - v.Set(reflect.MakeMap(v.Type())) - } - } - return v -} - -// FieldByIndexesReadOnly returns a value for a particular struct traversal, -// but is not concerned with allocating nil pointers because the value is -// going to be used for reading and not setting. -func FieldByIndexesReadOnly(v reflect.Value, indexes []int) reflect.Value { - for _, i := range indexes { - v = reflect.Indirect(v).Field(i) - } - return v -} - -// Deref is Indirect for reflect.Types -func Deref(t reflect.Type) reflect.Type { - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - return t -} - -// -- helpers & utilities -- - -type kinder interface { - Kind() reflect.Kind -} - -// mustBe checks a value against a kind, panicing with a reflect.ValueError -// if the kind isn't that which is required. -func mustBe(v kinder, expected reflect.Kind) { - k := v.Kind() - if k != expected { - panic(&reflect.ValueError{Method: methodName(), Kind: k}) - } -} - -// methodName is returns the caller of the function calling methodName -func methodName() string { - pc, _, _, _ := runtime.Caller(2) - f := runtime.FuncForPC(pc) - if f == nil { - return "unknown method" - } - return f.Name() -} - -type typeQueue struct { - t reflect.Type - fi *FieldInfo - pp string // Parent path -} - -// A copying append that creates a new slice each time. -func apnd(is []int, i int) []int { - x := make([]int, len(is)+1) - for p, n := range is { - x[p] = n - } - x[len(x)-1] = i - return x -} - -// getMapping returns a mapping for the t type, using the tagName, mapFunc and -// tagMapFunc to determine the canonical names of fields. -func getMapping(t reflect.Type, tagName string, mapFunc, tagMapFunc func(string) string) *StructMap { - m := []*FieldInfo{} - - root := &FieldInfo{} - queue := []typeQueue{} - queue = append(queue, typeQueue{Deref(t), root, ""}) - - for len(queue) != 0 { - // pop the first item off of the queue - tq := queue[0] - queue = queue[1:] - nChildren := 0 - if tq.t.Kind() == reflect.Struct { - nChildren = tq.t.NumField() - } - tq.fi.Children = make([]*FieldInfo, nChildren) - - // iterate through all of its fields - for fieldPos := 0; fieldPos < nChildren; fieldPos++ { - f := tq.t.Field(fieldPos) - - fi := FieldInfo{} - fi.Field = f - fi.Zero = reflect.New(f.Type).Elem() - fi.Options = map[string]string{} - - var tag, name string - if tagName != "" && strings.Contains(string(f.Tag), tagName+":") { - tag = f.Tag.Get(tagName) - name = tag - } else { - if mapFunc != nil { - name = mapFunc(f.Name) - } - } - - parts := strings.Split(name, ",") - if len(parts) > 1 { - name = parts[0] - for _, opt := range parts[1:] { - kv := strings.Split(opt, "=") - if len(kv) > 1 { - fi.Options[kv[0]] = kv[1] - } else { - fi.Options[kv[0]] = "" - } - } - } - - if tagMapFunc != nil { - tag = tagMapFunc(tag) - } - - fi.Name = name - - if tq.pp == "" || (tq.pp == "" && tag == "") { - fi.Path = fi.Name - } else { - fi.Path = fmt.Sprintf("%s.%s", tq.pp, fi.Name) - } - - // if the name is "-", disabled via a tag, skip it - if name == "-" { - continue - } - - // skip unexported fields - if len(f.PkgPath) != 0 { - continue - } - - // bfs search of anonymous embedded structs - if f.Anonymous { - pp := tq.pp - if tag != "" { - pp = fi.Path - } - - fi.Embedded = true - fi.Index = apnd(tq.fi.Index, fieldPos) - nChildren := 0 - ft := Deref(f.Type) - if ft.Kind() == reflect.Struct { - nChildren = ft.NumField() - } - fi.Children = make([]*FieldInfo, nChildren) - queue = append(queue, typeQueue{Deref(f.Type), &fi, pp}) - } else if fi.Zero.Kind() == reflect.Struct || (fi.Zero.Kind() == reflect.Ptr && fi.Zero.Type().Elem().Kind() == reflect.Struct) { - fi.Index = apnd(tq.fi.Index, fieldPos) - fi.Children = make([]*FieldInfo, Deref(f.Type).NumField()) - queue = append(queue, typeQueue{Deref(f.Type), &fi, fi.Path}) - } - - fi.Index = apnd(tq.fi.Index, fieldPos) - fi.Parent = tq.fi - tq.fi.Children[fieldPos] = &fi - m = append(m, &fi) - } - } - - flds := &StructMap{Index: m, Tree: root, Paths: map[string]*FieldInfo{}, Names: map[string]*FieldInfo{}} - for _, fi := range flds.Index { - flds.Paths[fi.Path] = fi - if fi.Name != "" && !fi.Embedded { - flds.Names[fi.Path] = fi - } - } - - return flds -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/sqlx.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/sqlx.go deleted file mode 100644 index b1ba4cf..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/jmoiron/sqlx/sqlx.go +++ /dev/null @@ -1,992 +0,0 @@ -package sqlx - -import ( - "database/sql" - "database/sql/driver" - "errors" - "fmt" - - "io/ioutil" - "path/filepath" - "reflect" - "strings" - - "github.com/jmoiron/sqlx/reflectx" -) - -// Although the NameMapper is convenient, in practice it should not -// be relied on except for application code. If you are writing a library -// that uses sqlx, you should be aware that the name mappings you expect -// can be overridded by your user's application. - -// NameMapper is used to map column names to struct field names. By default, -// it uses strings.ToLower to lowercase struct field names. It can be set -// to whatever you want, but it is encouraged to be set before sqlx is used -// as name-to-field mappings are cached after first use on a type. -var NameMapper = strings.ToLower -var origMapper = reflect.ValueOf(NameMapper) - -// Rather than creating on init, this is created when necessary so that -// importers have time to customize the NameMapper. -var mpr *reflectx.Mapper - -// mapper returns a valid mapper using the configured NameMapper func. -func mapper() *reflectx.Mapper { - if mpr == nil { - mpr = reflectx.NewMapperFunc("db", NameMapper) - } else if origMapper != reflect.ValueOf(NameMapper) { - // if NameMapper has changed, create a new mapper - mpr = reflectx.NewMapperFunc("db", NameMapper) - origMapper = reflect.ValueOf(NameMapper) - } - return mpr -} - -// isScannable takes the reflect.Type and the actual dest value and returns -// whether or not it's Scannable. Something is scannable if: -// * it is not a struct -// * it implements sql.Scanner -// * it has no exported fields -func isScannable(t reflect.Type) bool { - if reflect.PtrTo(t).Implements(_scannerInterface) { - return true - } - if t.Kind() != reflect.Struct { - return true - } - - // it's not important that we use the right mapper for this particular object, - // we're only concerned on how many exported fields this struct has - m := mapper() - if len(m.TypeMap(t).Index) == 0 { - return true - } - return false -} - -// ColScanner is an interface used by MapScan and SliceScan -type ColScanner interface { - Columns() ([]string, error) - Scan(dest ...interface{}) error - Err() error -} - -// Queryer is an interface used by Get and Select -type Queryer interface { - Query(query string, args ...interface{}) (*sql.Rows, error) - Queryx(query string, args ...interface{}) (*Rows, error) - QueryRowx(query string, args ...interface{}) *Row -} - -// Execer is an interface used by MustExec and LoadFile -type Execer interface { - Exec(query string, args ...interface{}) (sql.Result, error) -} - -// Binder is an interface for something which can bind queries (Tx, DB) -type binder interface { - DriverName() string - Rebind(string) string - BindNamed(string, interface{}) (string, []interface{}, error) -} - -// Ext is a union interface which can bind, query, and exec, used by -// NamedQuery and NamedExec. -type Ext interface { - binder - Queryer - Execer -} - -// Preparer is an interface used by Preparex. -type Preparer interface { - Prepare(query string) (*sql.Stmt, error) -} - -// determine if any of our extensions are unsafe -func isUnsafe(i interface{}) bool { - switch v := i.(type) { - case Row: - return v.unsafe - case *Row: - return v.unsafe - case Rows: - return v.unsafe - case *Rows: - return v.unsafe - case NamedStmt: - return v.Stmt.unsafe - case *NamedStmt: - return v.Stmt.unsafe - case Stmt: - return v.unsafe - case *Stmt: - return v.unsafe - case qStmt: - return v.unsafe - case *qStmt: - return v.unsafe - case DB: - return v.unsafe - case *DB: - return v.unsafe - case Tx: - return v.unsafe - case *Tx: - return v.unsafe - case sql.Rows, *sql.Rows: - return false - default: - return false - } -} - -func mapperFor(i interface{}) *reflectx.Mapper { - switch i.(type) { - case DB: - return i.(DB).Mapper - case *DB: - return i.(*DB).Mapper - case Tx: - return i.(Tx).Mapper - case *Tx: - return i.(*Tx).Mapper - default: - return mapper() - } -} - -var _scannerInterface = reflect.TypeOf((*sql.Scanner)(nil)).Elem() -var _valuerInterface = reflect.TypeOf((*driver.Valuer)(nil)).Elem() - -// Row is a reimplementation of sql.Row in order to gain access to the underlying -// sql.Rows.Columns() data, necessary for StructScan. -type Row struct { - err error - unsafe bool - rows *sql.Rows - Mapper *reflectx.Mapper -} - -// Scan is a fixed implementation of sql.Row.Scan, which does not discard the -// underlying error from the internal rows object if it exists. -func (r *Row) Scan(dest ...interface{}) error { - if r.err != nil { - return r.err - } - - // TODO(bradfitz): for now we need to defensively clone all - // []byte that the driver returned (not permitting - // *RawBytes in Rows.Scan), since we're about to close - // the Rows in our defer, when we return from this function. - // the contract with the driver.Next(...) interface is that it - // can return slices into read-only temporary memory that's - // only valid until the next Scan/Close. But the TODO is that - // for a lot of drivers, this copy will be unnecessary. We - // should provide an optional interface for drivers to - // implement to say, "don't worry, the []bytes that I return - // from Next will not be modified again." (for instance, if - // they were obtained from the network anyway) But for now we - // don't care. - defer r.rows.Close() - for _, dp := range dest { - if _, ok := dp.(*sql.RawBytes); ok { - return errors.New("sql: RawBytes isn't allowed on Row.Scan") - } - } - - if !r.rows.Next() { - if err := r.rows.Err(); err != nil { - return err - } - return sql.ErrNoRows - } - err := r.rows.Scan(dest...) - if err != nil { - return err - } - // Make sure the query can be processed to completion with no errors. - if err := r.rows.Close(); err != nil { - return err - } - return nil -} - -// Columns returns the underlying sql.Rows.Columns(), or the deferred error usually -// returned by Row.Scan() -func (r *Row) Columns() ([]string, error) { - if r.err != nil { - return []string{}, r.err - } - return r.rows.Columns() -} - -// Err returns the error encountered while scanning. -func (r *Row) Err() error { - return r.err -} - -// DB is a wrapper around sql.DB which keeps track of the driverName upon Open, -// used mostly to automatically bind named queries using the right bindvars. -type DB struct { - *sql.DB - driverName string - unsafe bool - Mapper *reflectx.Mapper -} - -// NewDb returns a new sqlx DB wrapper for a pre-existing *sql.DB. The -// driverName of the original database is required for named query support. -func NewDb(db *sql.DB, driverName string) *DB { - return &DB{DB: db, driverName: driverName, Mapper: mapper()} -} - -// DriverName returns the driverName passed to the Open function for this DB. -func (db *DB) DriverName() string { - return db.driverName -} - -// Open is the same as sql.Open, but returns an *sqlx.DB instead. -func Open(driverName, dataSourceName string) (*DB, error) { - db, err := sql.Open(driverName, dataSourceName) - if err != nil { - return nil, err - } - return &DB{DB: db, driverName: driverName, Mapper: mapper()}, err -} - -// MustOpen is the same as sql.Open, but returns an *sqlx.DB instead and panics on error. -func MustOpen(driverName, dataSourceName string) *DB { - db, err := Open(driverName, dataSourceName) - if err != nil { - panic(err) - } - return db -} - -// MapperFunc sets a new mapper for this db using the default sqlx struct tag -// and the provided mapper function. -func (db *DB) MapperFunc(mf func(string) string) { - db.Mapper = reflectx.NewMapperFunc("db", mf) -} - -// Rebind transforms a query from QUESTION to the DB driver's bindvar type. -func (db *DB) Rebind(query string) string { - return Rebind(BindType(db.driverName), query) -} - -// Unsafe returns a version of DB which will silently succeed to scan when -// columns in the SQL result have no fields in the destination struct. -// sqlx.Stmt and sqlx.Tx which are created from this DB will inherit its -// safety behavior. -func (db *DB) Unsafe() *DB { - return &DB{DB: db.DB, driverName: db.driverName, unsafe: true, Mapper: db.Mapper} -} - -// BindNamed binds a query using the DB driver's bindvar type. -func (db *DB) BindNamed(query string, arg interface{}) (string, []interface{}, error) { - return bindNamedMapper(BindType(db.driverName), query, arg, db.Mapper) -} - -// NamedQuery using this DB. -func (db *DB) NamedQuery(query string, arg interface{}) (*Rows, error) { - return NamedQuery(db, query, arg) -} - -// NamedExec using this DB. -func (db *DB) NamedExec(query string, arg interface{}) (sql.Result, error) { - return NamedExec(db, query, arg) -} - -// Select using this DB. -func (db *DB) Select(dest interface{}, query string, args ...interface{}) error { - return Select(db, dest, query, args...) -} - -// Get using this DB. -func (db *DB) Get(dest interface{}, query string, args ...interface{}) error { - return Get(db, dest, query, args...) -} - -// MustBegin starts a transaction, and panics on error. Returns an *sqlx.Tx instead -// of an *sql.Tx. -func (db *DB) MustBegin() *Tx { - tx, err := db.Beginx() - if err != nil { - panic(err) - } - return tx -} - -// Beginx begins a transaction and returns an *sqlx.Tx instead of an *sql.Tx. -func (db *DB) Beginx() (*Tx, error) { - tx, err := db.DB.Begin() - if err != nil { - return nil, err - } - return &Tx{Tx: tx, driverName: db.driverName, unsafe: db.unsafe, Mapper: db.Mapper}, err -} - -// Queryx queries the database and returns an *sqlx.Rows. -func (db *DB) Queryx(query string, args ...interface{}) (*Rows, error) { - r, err := db.DB.Query(query, args...) - if err != nil { - return nil, err - } - return &Rows{Rows: r, unsafe: db.unsafe, Mapper: db.Mapper}, err -} - -// QueryRowx queries the database and returns an *sqlx.Row. -func (db *DB) QueryRowx(query string, args ...interface{}) *Row { - rows, err := db.DB.Query(query, args...) - return &Row{rows: rows, err: err, unsafe: db.unsafe, Mapper: db.Mapper} -} - -// MustExec (panic) runs MustExec using this database. -func (db *DB) MustExec(query string, args ...interface{}) sql.Result { - return MustExec(db, query, args...) -} - -// Preparex returns an sqlx.Stmt instead of a sql.Stmt -func (db *DB) Preparex(query string) (*Stmt, error) { - return Preparex(db, query) -} - -// PrepareNamed returns an sqlx.NamedStmt -func (db *DB) PrepareNamed(query string) (*NamedStmt, error) { - return prepareNamed(db, query) -} - -// Tx is an sqlx wrapper around sql.Tx with extra functionality -type Tx struct { - *sql.Tx - driverName string - unsafe bool - Mapper *reflectx.Mapper -} - -// DriverName returns the driverName used by the DB which began this transaction. -func (tx *Tx) DriverName() string { - return tx.driverName -} - -// Rebind a query within a transaction's bindvar type. -func (tx *Tx) Rebind(query string) string { - return Rebind(BindType(tx.driverName), query) -} - -// Unsafe returns a version of Tx which will silently succeed to scan when -// columns in the SQL result have no fields in the destination struct. -func (tx *Tx) Unsafe() *Tx { - return &Tx{Tx: tx.Tx, driverName: tx.driverName, unsafe: true, Mapper: tx.Mapper} -} - -// BindNamed binds a query within a transaction's bindvar type. -func (tx *Tx) BindNamed(query string, arg interface{}) (string, []interface{}, error) { - return bindNamedMapper(BindType(tx.driverName), query, arg, tx.Mapper) -} - -// NamedQuery within a transaction. -func (tx *Tx) NamedQuery(query string, arg interface{}) (*Rows, error) { - return NamedQuery(tx, query, arg) -} - -// NamedExec a named query within a transaction. -func (tx *Tx) NamedExec(query string, arg interface{}) (sql.Result, error) { - return NamedExec(tx, query, arg) -} - -// Select within a transaction. -func (tx *Tx) Select(dest interface{}, query string, args ...interface{}) error { - return Select(tx, dest, query, args...) -} - -// Queryx within a transaction. -func (tx *Tx) Queryx(query string, args ...interface{}) (*Rows, error) { - r, err := tx.Tx.Query(query, args...) - if err != nil { - return nil, err - } - return &Rows{Rows: r, unsafe: tx.unsafe, Mapper: tx.Mapper}, err -} - -// QueryRowx within a transaction. -func (tx *Tx) QueryRowx(query string, args ...interface{}) *Row { - rows, err := tx.Tx.Query(query, args...) - return &Row{rows: rows, err: err, unsafe: tx.unsafe, Mapper: tx.Mapper} -} - -// Get within a transaction. -func (tx *Tx) Get(dest interface{}, query string, args ...interface{}) error { - return Get(tx, dest, query, args...) -} - -// MustExec runs MustExec within a transaction. -func (tx *Tx) MustExec(query string, args ...interface{}) sql.Result { - return MustExec(tx, query, args...) -} - -// Preparex a statement within a transaction. -func (tx *Tx) Preparex(query string) (*Stmt, error) { - return Preparex(tx, query) -} - -// Stmtx returns a version of the prepared statement which runs within a transaction. Provided -// stmt can be either *sql.Stmt or *sqlx.Stmt. -func (tx *Tx) Stmtx(stmt interface{}) *Stmt { - var s *sql.Stmt - switch v := stmt.(type) { - case Stmt: - s = v.Stmt - case *Stmt: - s = v.Stmt - case sql.Stmt: - s = &v - case *sql.Stmt: - s = v - default: - panic(fmt.Sprintf("non-statement type %v passed to Stmtx", reflect.ValueOf(stmt).Type())) - } - return &Stmt{Stmt: tx.Stmt(s), Mapper: tx.Mapper} -} - -// NamedStmt returns a version of the prepared statement which runs within a transaction. -func (tx *Tx) NamedStmt(stmt *NamedStmt) *NamedStmt { - return &NamedStmt{ - QueryString: stmt.QueryString, - Params: stmt.Params, - Stmt: tx.Stmtx(stmt.Stmt), - } -} - -// PrepareNamed returns an sqlx.NamedStmt -func (tx *Tx) PrepareNamed(query string) (*NamedStmt, error) { - return prepareNamed(tx, query) -} - -// Stmt is an sqlx wrapper around sql.Stmt with extra functionality -type Stmt struct { - *sql.Stmt - unsafe bool - Mapper *reflectx.Mapper -} - -// Unsafe returns a version of Stmt which will silently succeed to scan when -// columns in the SQL result have no fields in the destination struct. -func (s *Stmt) Unsafe() *Stmt { - return &Stmt{Stmt: s.Stmt, unsafe: true, Mapper: s.Mapper} -} - -// Select using the prepared statement. -func (s *Stmt) Select(dest interface{}, args ...interface{}) error { - return Select(&qStmt{s}, dest, "", args...) -} - -// Get using the prepared statement. -func (s *Stmt) Get(dest interface{}, args ...interface{}) error { - return Get(&qStmt{s}, dest, "", args...) -} - -// MustExec (panic) using this statement. Note that the query portion of the error -// output will be blank, as Stmt does not expose its query. -func (s *Stmt) MustExec(args ...interface{}) sql.Result { - return MustExec(&qStmt{s}, "", args...) -} - -// QueryRowx using this statement. -func (s *Stmt) QueryRowx(args ...interface{}) *Row { - qs := &qStmt{s} - return qs.QueryRowx("", args...) -} - -// Queryx using this statement. -func (s *Stmt) Queryx(args ...interface{}) (*Rows, error) { - qs := &qStmt{s} - return qs.Queryx("", args...) -} - -// qStmt is an unexposed wrapper which lets you use a Stmt as a Queryer & Execer by -// implementing those interfaces and ignoring the `query` argument. -type qStmt struct{ *Stmt } - -func (q *qStmt) Query(query string, args ...interface{}) (*sql.Rows, error) { - return q.Stmt.Query(args...) -} - -func (q *qStmt) Queryx(query string, args ...interface{}) (*Rows, error) { - r, err := q.Stmt.Query(args...) - if err != nil { - return nil, err - } - return &Rows{Rows: r, unsafe: q.Stmt.unsafe, Mapper: q.Stmt.Mapper}, err -} - -func (q *qStmt) QueryRowx(query string, args ...interface{}) *Row { - rows, err := q.Stmt.Query(args...) - return &Row{rows: rows, err: err, unsafe: q.Stmt.unsafe, Mapper: q.Stmt.Mapper} -} - -func (q *qStmt) Exec(query string, args ...interface{}) (sql.Result, error) { - return q.Stmt.Exec(args...) -} - -// Rows is a wrapper around sql.Rows which caches costly reflect operations -// during a looped StructScan -type Rows struct { - *sql.Rows - unsafe bool - Mapper *reflectx.Mapper - // these fields cache memory use for a rows during iteration w/ structScan - started bool - fields [][]int - values []interface{} -} - -// SliceScan using this Rows. -func (r *Rows) SliceScan() ([]interface{}, error) { - return SliceScan(r) -} - -// MapScan using this Rows. -func (r *Rows) MapScan(dest map[string]interface{}) error { - return MapScan(r, dest) -} - -// StructScan is like sql.Rows.Scan, but scans a single Row into a single Struct. -// Use this and iterate over Rows manually when the memory load of Select() might be -// prohibitive. *Rows.StructScan caches the reflect work of matching up column -// positions to fields to avoid that overhead per scan, which means it is not safe -// to run StructScan on the same Rows instance with different struct types. -func (r *Rows) StructScan(dest interface{}) error { - v := reflect.ValueOf(dest) - - if v.Kind() != reflect.Ptr { - return errors.New("must pass a pointer, not a value, to StructScan destination") - } - - v = reflect.Indirect(v) - - if !r.started { - columns, err := r.Columns() - if err != nil { - return err - } - m := r.Mapper - - r.fields = m.TraversalsByName(v.Type(), columns) - // if we are not unsafe and are missing fields, return an error - if f, err := missingFields(r.fields); err != nil && !r.unsafe { - return fmt.Errorf("missing destination name %s", columns[f]) - } - r.values = make([]interface{}, len(columns)) - r.started = true - } - - err := fieldsByTraversal(v, r.fields, r.values, true) - if err != nil { - return err - } - // scan into the struct field pointers and append to our results - err = r.Scan(r.values...) - if err != nil { - return err - } - return r.Err() -} - -// Connect to a database and verify with a ping. -func Connect(driverName, dataSourceName string) (*DB, error) { - db, err := Open(driverName, dataSourceName) - if err != nil { - return db, err - } - err = db.Ping() - return db, err -} - -// MustConnect connects to a database and panics on error. -func MustConnect(driverName, dataSourceName string) *DB { - db, err := Connect(driverName, dataSourceName) - if err != nil { - panic(err) - } - return db -} - -// Preparex prepares a statement. -func Preparex(p Preparer, query string) (*Stmt, error) { - s, err := p.Prepare(query) - if err != nil { - return nil, err - } - return &Stmt{Stmt: s, unsafe: isUnsafe(p), Mapper: mapperFor(p)}, err -} - -// Select executes a query using the provided Queryer, and StructScans each row -// into dest, which must be a slice. If the slice elements are scannable, then -// the result set must have only one column. Otherwise, StructScan is used. -// The *sql.Rows are closed automatically. -func Select(q Queryer, dest interface{}, query string, args ...interface{}) error { - rows, err := q.Queryx(query, args...) - if err != nil { - return err - } - // if something happens here, we want to make sure the rows are Closed - defer rows.Close() - return scanAll(rows, dest, false) -} - -// Get does a QueryRow using the provided Queryer, and scans the resulting row -// to dest. If dest is scannable, the result must only have one column. Otherwise, -// StructScan is used. Get will return sql.ErrNoRows like row.Scan would. -func Get(q Queryer, dest interface{}, query string, args ...interface{}) error { - r := q.QueryRowx(query, args...) - return r.scanAny(dest, false) -} - -// LoadFile exec's every statement in a file (as a single call to Exec). -// LoadFile may return a nil *sql.Result if errors are encountered locating or -// reading the file at path. LoadFile reads the entire file into memory, so it -// is not suitable for loading large data dumps, but can be useful for initializing -// schemas or loading indexes. -// -// FIXME: this does not really work with multi-statement files for mattn/go-sqlite3 -// or the go-mysql-driver/mysql drivers; pq seems to be an exception here. Detecting -// this by requiring something with DriverName() and then attempting to split the -// queries will be difficult to get right, and its current driver-specific behavior -// is deemed at least not complex in its incorrectness. -func LoadFile(e Execer, path string) (*sql.Result, error) { - realpath, err := filepath.Abs(path) - if err != nil { - return nil, err - } - contents, err := ioutil.ReadFile(realpath) - if err != nil { - return nil, err - } - res, err := e.Exec(string(contents)) - return &res, err -} - -// MustExec execs the query using e and panics if there was an error. -func MustExec(e Execer, query string, args ...interface{}) sql.Result { - res, err := e.Exec(query, args...) - if err != nil { - panic(err) - } - return res -} - -// SliceScan using this Rows. -func (r *Row) SliceScan() ([]interface{}, error) { - return SliceScan(r) -} - -// MapScan using this Rows. -func (r *Row) MapScan(dest map[string]interface{}) error { - return MapScan(r, dest) -} - -func (r *Row) scanAny(dest interface{}, structOnly bool) error { - if r.err != nil { - return r.err - } - defer r.rows.Close() - - v := reflect.ValueOf(dest) - if v.Kind() != reflect.Ptr { - return errors.New("must pass a pointer, not a value, to StructScan destination") - } - if v.IsNil() { - return errors.New("nil pointer passed to StructScan destination") - } - - base := reflectx.Deref(v.Type()) - scannable := isScannable(base) - - if structOnly && scannable { - return structOnlyError(base) - } - - columns, err := r.Columns() - if err != nil { - return err - } - - if scannable && len(columns) > 1 { - return fmt.Errorf("scannable dest type %s with >1 columns (%d) in result", base.Kind(), len(columns)) - } - - if scannable { - return r.Scan(dest) - } - - m := r.Mapper - - fields := m.TraversalsByName(v.Type(), columns) - // if we are not unsafe and are missing fields, return an error - if f, err := missingFields(fields); err != nil && !r.unsafe { - return fmt.Errorf("missing destination name %s", columns[f]) - } - values := make([]interface{}, len(columns)) - - err = fieldsByTraversal(v, fields, values, true) - if err != nil { - return err - } - // scan into the struct field pointers and append to our results - return r.Scan(values...) -} - -// StructScan a single Row into dest. -func (r *Row) StructScan(dest interface{}) error { - return r.scanAny(dest, true) -} - -// SliceScan a row, returning a []interface{} with values similar to MapScan. -// This function is primarly intended for use where the number of columns -// is not known. Because you can pass an []interface{} directly to Scan, -// it's recommended that you do that as it will not have to allocate new -// slices per row. -func SliceScan(r ColScanner) ([]interface{}, error) { - // ignore r.started, since we needn't use reflect for anything. - columns, err := r.Columns() - if err != nil { - return []interface{}{}, err - } - - values := make([]interface{}, len(columns)) - for i := range values { - values[i] = new(interface{}) - } - - err = r.Scan(values...) - - if err != nil { - return values, err - } - - for i := range columns { - values[i] = *(values[i].(*interface{})) - } - - return values, r.Err() -} - -// MapScan scans a single Row into the dest map[string]interface{}. -// Use this to get results for SQL that might not be under your control -// (for instance, if you're building an interface for an SQL server that -// executes SQL from input). Please do not use this as a primary interface! -// This will modify the map sent to it in place, so reuse the same map with -// care. Columns which occur more than once in the result will overwrite -// eachother! -func MapScan(r ColScanner, dest map[string]interface{}) error { - // ignore r.started, since we needn't use reflect for anything. - columns, err := r.Columns() - if err != nil { - return err - } - - values := make([]interface{}, len(columns)) - for i := range values { - values[i] = new(interface{}) - } - - err = r.Scan(values...) - if err != nil { - return err - } - - for i, column := range columns { - dest[column] = *(values[i].(*interface{})) - } - - return r.Err() -} - -type rowsi interface { - Close() error - Columns() ([]string, error) - Err() error - Next() bool - Scan(...interface{}) error -} - -// structOnlyError returns an error appropriate for type when a non-scannable -// struct is expected but something else is given -func structOnlyError(t reflect.Type) error { - isStruct := t.Kind() == reflect.Struct - isScanner := reflect.PtrTo(t).Implements(_scannerInterface) - if !isStruct { - return fmt.Errorf("expected %s but got %s", reflect.Struct, t.Kind()) - } - if isScanner { - return fmt.Errorf("structscan expects a struct dest but the provided struct type %s implements scanner", t.Name()) - } - return fmt.Errorf("expected a struct, but struct %s has no exported fields", t.Name()) -} - -// scanAll scans all rows into a destination, which must be a slice of any -// type. If the destination slice type is a Struct, then StructScan will be -// used on each row. If the destination is some other kind of base type, then -// each row must only have one column which can scan into that type. This -// allows you to do something like: -// -// rows, _ := db.Query("select id from people;") -// var ids []int -// scanAll(rows, &ids, false) -// -// and ids will be a list of the id results. I realize that this is a desirable -// interface to expose to users, but for now it will only be exposed via changes -// to `Get` and `Select`. The reason that this has been implemented like this is -// this is the only way to not duplicate reflect work in the new API while -// maintaining backwards compatibility. -func scanAll(rows rowsi, dest interface{}, structOnly bool) error { - var v, vp reflect.Value - - value := reflect.ValueOf(dest) - - // json.Unmarshal returns errors for these - if value.Kind() != reflect.Ptr { - return errors.New("must pass a pointer, not a value, to StructScan destination") - } - if value.IsNil() { - return errors.New("nil pointer passed to StructScan destination") - } - direct := reflect.Indirect(value) - - slice, err := baseType(value.Type(), reflect.Slice) - if err != nil { - return err - } - - isPtr := slice.Elem().Kind() == reflect.Ptr - base := reflectx.Deref(slice.Elem()) - scannable := isScannable(base) - - if structOnly && scannable { - return structOnlyError(base) - } - - columns, err := rows.Columns() - if err != nil { - return err - } - - // if it's a base type make sure it only has 1 column; if not return an error - if scannable && len(columns) > 1 { - return fmt.Errorf("non-struct dest type %s with >1 columns (%d)", base.Kind(), len(columns)) - } - - if !scannable { - var values []interface{} - var m *reflectx.Mapper - - switch rows.(type) { - case *Rows: - m = rows.(*Rows).Mapper - default: - m = mapper() - } - - fields := m.TraversalsByName(base, columns) - // if we are not unsafe and are missing fields, return an error - if f, err := missingFields(fields); err != nil && !isUnsafe(rows) { - return fmt.Errorf("missing destination name %s", columns[f]) - } - values = make([]interface{}, len(columns)) - - for rows.Next() { - // create a new struct type (which returns PtrTo) and indirect it - vp = reflect.New(base) - v = reflect.Indirect(vp) - - err = fieldsByTraversal(v, fields, values, true) - - // scan into the struct field pointers and append to our results - err = rows.Scan(values...) - if err != nil { - return err - } - - if isPtr { - direct.Set(reflect.Append(direct, vp)) - } else { - direct.Set(reflect.Append(direct, v)) - } - } - } else { - for rows.Next() { - vp = reflect.New(base) - err = rows.Scan(vp.Interface()) - // append - if isPtr { - direct.Set(reflect.Append(direct, vp)) - } else { - direct.Set(reflect.Append(direct, reflect.Indirect(vp))) - } - } - } - - return rows.Err() -} - -// FIXME: StructScan was the very first bit of API in sqlx, and now unfortunately -// it doesn't really feel like it's named properly. There is an incongruency -// between this and the way that StructScan (which might better be ScanStruct -// anyway) works on a rows object. - -// StructScan all rows from an sql.Rows or an sqlx.Rows into the dest slice. -// StructScan will scan in the entire rows result, so if you need do not want to -// allocate structs for the entire result, use Queryx and see sqlx.Rows.StructScan. -// If rows is sqlx.Rows, it will use its mapper, otherwise it will use the default. -func StructScan(rows rowsi, dest interface{}) error { - return scanAll(rows, dest, true) - -} - -// reflect helpers - -func baseType(t reflect.Type, expected reflect.Kind) (reflect.Type, error) { - t = reflectx.Deref(t) - if t.Kind() != expected { - return nil, fmt.Errorf("expected %s but got %s", expected, t.Kind()) - } - return t, nil -} - -// fieldsByName fills a values interface with fields from the passed value based -// on the traversals in int. If ptrs is true, return addresses instead of values. -// We write this instead of using FieldsByName to save allocations and map lookups -// when iterating over many rows. Empty traversals will get an interface pointer. -// Because of the necessity of requesting ptrs or values, it's considered a bit too -// specialized for inclusion in reflectx itself. -func fieldsByTraversal(v reflect.Value, traversals [][]int, values []interface{}, ptrs bool) error { - v = reflect.Indirect(v) - if v.Kind() != reflect.Struct { - return errors.New("argument not a struct") - } - - for i, traversal := range traversals { - if len(traversal) == 0 { - values[i] = new(interface{}) - continue - } - f := reflectx.FieldByIndexes(v, traversal) - if ptrs { - values[i] = f.Addr().Interface() - } else { - values[i] = f.Interface() - } - } - return nil -} - -func missingFields(transversals [][]int) (field int, err error) { - for i, t := range transversals { - if len(t) == 0 { - return i, errors.New("missing field") - } - } - return 0, nil -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/LICENSE deleted file mode 100644 index ade9307..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ -All files in this repository are licensed as follows. If you contribute -to this repository, it is assumed that you license your contribution -under the same license unless you state otherwise. - -All files Copyright (C) 2015 Canonical Ltd. unless otherwise specified in the file. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to -convey to a third party a Combined Work that links statically or dynamically -to this Library without providing any Minimal Corresponding Source or -Minimal Application Code as set out in 4d or providing the installation -information set out in section 4e, provided that you comply with the other -provisions of LGPL3 and provided that you meet, for the Application the -terms and conditions of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception -statement from your version. This exception does not (and cannot) modify any -license terms which apply to the Application, with which you must still -comply. - - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser 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 -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/doc.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/doc.go deleted file mode 100644 index 35b119a..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/doc.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -/* -[godoc-link-here] - -The juju/errors provides an easy way to annotate errors without losing the -orginal error context. - -The exported `New` and `Errorf` functions are designed to replace the -`errors.New` and `fmt.Errorf` functions respectively. The same underlying -error is there, but the package also records the location at which the error -was created. - -A primary use case for this library is to add extra context any time an -error is returned from a function. - - if err := SomeFunc(); err != nil { - return err - } - -This instead becomes: - - if err := SomeFunc(); err != nil { - return errors.Trace(err) - } - -which just records the file and line number of the Trace call, or - - if err := SomeFunc(); err != nil { - return errors.Annotate(err, "more context") - } - -which also adds an annotation to the error. - -When you want to check to see if an error is of a particular type, a helper -function is normally exported by the package that returned the error, like the -`os` package does. The underlying cause of the error is available using the -`Cause` function. - - os.IsNotExist(errors.Cause(err)) - -The result of the `Error()` call on an annotated error is the annotations joined -with colons, then the result of the `Error()` method for the underlying error -that was the cause. - - err := errors.Errorf("original") - err = errors.Annotatef(err, "context") - err = errors.Annotatef(err, "more context") - err.Error() -> "more context: context: original" - -Obviously recording the file, line and functions is not very useful if you -cannot get them back out again. - - errors.ErrorStack(err) - -will return something like: - - first error - github.com/juju/errors/annotation_test.go:193: - github.com/juju/errors/annotation_test.go:194: annotation - github.com/juju/errors/annotation_test.go:195: - github.com/juju/errors/annotation_test.go:196: more context - github.com/juju/errors/annotation_test.go:197: - -The first error was generated by an external system, so there was no location -associated. The second, fourth, and last lines were generated with Trace calls, -and the other two through Annotate. - -Sometimes when responding to an error you want to return a more specific error -for the situation. - - if err := FindField(field); err != nil { - return errors.Wrap(err, errors.NotFoundf(field)) - } - -This returns an error where the complete error stack is still available, and -`errors.Cause()` will return the `NotFound` error. - -*/ -package errors diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/error.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/error.go deleted file mode 100644 index 8c51c45..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/error.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "fmt" - "reflect" - "runtime" -) - -// Err holds a description of an error along with information about -// where the error was created. -// -// It may be embedded in custom error types to add extra information that -// this errors package can understand. -type Err struct { - // message holds an annotation of the error. - message string - - // cause holds the cause of the error as returned - // by the Cause method. - cause error - - // previous holds the previous error in the error stack, if any. - previous error - - // file and line hold the source code location where the error was - // created. - file string - line int -} - -// NewErr is used to return an Err for the purpose of embedding in other -// structures. The location is not specified, and needs to be set with a call -// to SetLocation. -// -// For example: -// type FooError struct { -// errors.Err -// code int -// } -// -// func NewFooError(code int) error { -// err := &FooError{errors.NewErr("foo"), code} -// err.SetLocation(1) -// return err -// } -func NewErr(format string, args ...interface{}) Err { - return Err{ - message: fmt.Sprintf(format, args...), - } -} - -// NewErrWithCause is used to return an Err with case by other error for the purpose of embedding in other -// structures. The location is not specified, and needs to be set with a call -// to SetLocation. -// -// For example: -// type FooError struct { -// errors.Err -// code int -// } -// -// func (e *FooError) Annotate(format string, args ...interface{}) error { -// err := &FooError{errors.NewErrWithCause(e.Err, format, args...), e.code} -// err.SetLocation(1) -// return err -// }) -func NewErrWithCause(other error, format string, args ...interface{}) Err { - return Err{ - message: fmt.Sprintf(format, args...), - cause: Cause(other), - previous: other, - } -} - -// Location is the file and line of where the error was most recently -// created or annotated. -func (e *Err) Location() (filename string, line int) { - return e.file, e.line -} - -// Underlying returns the previous error in the error stack, if any. A client -// should not ever really call this method. It is used to build the error -// stack and should not be introspected by client calls. Or more -// specifically, clients should not depend on anything but the `Cause` of an -// error. -func (e *Err) Underlying() error { - return e.previous -} - -// The Cause of an error is the most recent error in the error stack that -// meets one of these criteria: the original error that was raised; the new -// error that was passed into the Wrap function; the most recently masked -// error; or nil if the error itself is considered the Cause. Normally this -// method is not invoked directly, but instead through the Cause stand alone -// function. -func (e *Err) Cause() error { - return e.cause -} - -// Message returns the message stored with the most recent location. This is -// the empty string if the most recent call was Trace, or the message stored -// with Annotate or Mask. -func (e *Err) Message() string { - return e.message -} - -// Error implements error.Error. -func (e *Err) Error() string { - // We want to walk up the stack of errors showing the annotations - // as long as the cause is the same. - err := e.previous - if !sameError(Cause(err), e.cause) && e.cause != nil { - err = e.cause - } - switch { - case err == nil: - return e.message - case e.message == "": - return err.Error() - } - return fmt.Sprintf("%s: %v", e.message, err) -} - -// SetLocation records the source location of the error at callDepth stack -// frames above the call. -func (e *Err) SetLocation(callDepth int) { - _, file, line, _ := runtime.Caller(callDepth + 1) - e.file = trimGoPath(file) - e.line = line -} - -// StackTrace returns one string for each location recorded in the stack of -// errors. The first value is the originating error, with a line for each -// other annotation or tracing of the error. -func (e *Err) StackTrace() []string { - return errorStack(e) -} - -// Ideally we'd have a way to check identity, but deep equals will do. -func sameError(e1, e2 error) bool { - return reflect.DeepEqual(e1, e2) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/errortypes.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/errortypes.go deleted file mode 100644 index 10b3b19..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/errortypes.go +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "fmt" -) - -// wrap is a helper to construct an *wrapper. -func wrap(err error, format, suffix string, args ...interface{}) Err { - newErr := Err{ - message: fmt.Sprintf(format+suffix, args...), - previous: err, - } - newErr.SetLocation(2) - return newErr -} - -// notFound represents an error when something has not been found. -type notFound struct { - Err -} - -// NotFoundf returns an error which satisfies IsNotFound(). -func NotFoundf(format string, args ...interface{}) error { - return ¬Found{wrap(nil, format, " not found", args...)} -} - -// NewNotFound returns an error which wraps err that satisfies -// IsNotFound(). -func NewNotFound(err error, msg string) error { - return ¬Found{wrap(err, msg, "")} -} - -// IsNotFound reports whether err was created with NotFoundf() or -// NewNotFound(). -func IsNotFound(err error) bool { - err = Cause(err) - _, ok := err.(*notFound) - return ok -} - -// userNotFound represents an error when an inexistent user is looked up. -type userNotFound struct { - Err -} - -// UserNotFoundf returns an error which satisfies IsUserNotFound(). -func UserNotFoundf(format string, args ...interface{}) error { - return &userNotFound{wrap(nil, format, " user not found", args...)} -} - -// NewUserNotFound returns an error which wraps err and satisfies -// IsUserNotFound(). -func NewUserNotFound(err error, msg string) error { - return &userNotFound{wrap(err, msg, "")} -} - -// IsUserNotFound reports whether err was created with UserNotFoundf() or -// NewUserNotFound(). -func IsUserNotFound(err error) bool { - err = Cause(err) - _, ok := err.(*userNotFound) - return ok -} - -// unauthorized represents an error when an operation is unauthorized. -type unauthorized struct { - Err -} - -// Unauthorizedf returns an error which satisfies IsUnauthorized(). -func Unauthorizedf(format string, args ...interface{}) error { - return &unauthorized{wrap(nil, format, "", args...)} -} - -// NewUnauthorized returns an error which wraps err and satisfies -// IsUnauthorized(). -func NewUnauthorized(err error, msg string) error { - return &unauthorized{wrap(err, msg, "")} -} - -// IsUnauthorized reports whether err was created with Unauthorizedf() or -// NewUnauthorized(). -func IsUnauthorized(err error) bool { - err = Cause(err) - _, ok := err.(*unauthorized) - return ok -} - -// notImplemented represents an error when something is not -// implemented. -type notImplemented struct { - Err -} - -// NotImplementedf returns an error which satisfies IsNotImplemented(). -func NotImplementedf(format string, args ...interface{}) error { - return ¬Implemented{wrap(nil, format, " not implemented", args...)} -} - -// NewNotImplemented returns an error which wraps err and satisfies -// IsNotImplemented(). -func NewNotImplemented(err error, msg string) error { - return ¬Implemented{wrap(err, msg, "")} -} - -// IsNotImplemented reports whether err was created with -// NotImplementedf() or NewNotImplemented(). -func IsNotImplemented(err error) bool { - err = Cause(err) - _, ok := err.(*notImplemented) - return ok -} - -// alreadyExists represents and error when something already exists. -type alreadyExists struct { - Err -} - -// AlreadyExistsf returns an error which satisfies IsAlreadyExists(). -func AlreadyExistsf(format string, args ...interface{}) error { - return &alreadyExists{wrap(nil, format, " already exists", args...)} -} - -// NewAlreadyExists returns an error which wraps err and satisfies -// IsAlreadyExists(). -func NewAlreadyExists(err error, msg string) error { - return &alreadyExists{wrap(err, msg, "")} -} - -// IsAlreadyExists reports whether the error was created with -// AlreadyExistsf() or NewAlreadyExists(). -func IsAlreadyExists(err error) bool { - err = Cause(err) - _, ok := err.(*alreadyExists) - return ok -} - -// notSupported represents an error when something is not supported. -type notSupported struct { - Err -} - -// NotSupportedf returns an error which satisfies IsNotSupported(). -func NotSupportedf(format string, args ...interface{}) error { - return ¬Supported{wrap(nil, format, " not supported", args...)} -} - -// NewNotSupported returns an error which wraps err and satisfies -// IsNotSupported(). -func NewNotSupported(err error, msg string) error { - return ¬Supported{wrap(err, msg, "")} -} - -// IsNotSupported reports whether the error was created with -// NotSupportedf() or NewNotSupported(). -func IsNotSupported(err error) bool { - err = Cause(err) - _, ok := err.(*notSupported) - return ok -} - -// notValid represents an error when something is not valid. -type notValid struct { - Err -} - -// NotValidf returns an error which satisfies IsNotValid(). -func NotValidf(format string, args ...interface{}) error { - return ¬Valid{wrap(nil, format, " not valid", args...)} -} - -// NewNotValid returns an error which wraps err and satisfies IsNotValid(). -func NewNotValid(err error, msg string) error { - return ¬Valid{wrap(err, msg, "")} -} - -// IsNotValid reports whether the error was created with NotValidf() or -// NewNotValid(). -func IsNotValid(err error) bool { - err = Cause(err) - _, ok := err.(*notValid) - return ok -} - -// notProvisioned represents an error when something is not yet provisioned. -type notProvisioned struct { - Err -} - -// NotProvisionedf returns an error which satisfies IsNotProvisioned(). -func NotProvisionedf(format string, args ...interface{}) error { - return ¬Provisioned{wrap(nil, format, " not provisioned", args...)} -} - -// NewNotProvisioned returns an error which wraps err that satisfies -// IsNotProvisioned(). -func NewNotProvisioned(err error, msg string) error { - return ¬Provisioned{wrap(err, msg, "")} -} - -// IsNotProvisioned reports whether err was created with NotProvisionedf() or -// NewNotProvisioned(). -func IsNotProvisioned(err error) bool { - err = Cause(err) - _, ok := err.(*notProvisioned) - return ok -} - -// notAssigned represents an error when something is not yet assigned to -// something else. -type notAssigned struct { - Err -} - -// NotAssignedf returns an error which satisfies IsNotAssigned(). -func NotAssignedf(format string, args ...interface{}) error { - return ¬Assigned{wrap(nil, format, " not assigned", args...)} -} - -// NewNotAssigned returns an error which wraps err that satisfies -// IsNotAssigned(). -func NewNotAssigned(err error, msg string) error { - return ¬Assigned{wrap(err, msg, "")} -} - -// IsNotAssigned reports whether err was created with NotAssignedf() or -// NewNotAssigned(). -func IsNotAssigned(err error) bool { - err = Cause(err) - _, ok := err.(*notAssigned) - return ok -} - -// badRequest represents an error when a request has bad parameters. -type badRequest struct { - Err -} - -// BadRequestf returns an error which satisfies IsBadRequest(). -func BadRequestf(format string, args ...interface{}) error { - return &badRequest{wrap(nil, format, "", args...)} -} - -// NewBadRequest returns an error which wraps err that satisfies -// IsBadRequest(). -func NewBadRequest(err error, msg string) error { - return &badRequest{wrap(err, msg, "")} -} - -// IsBadRequest reports whether err was created with BadRequestf() or -// NewBadRequest(). -func IsBadRequest(err error) bool { - err = Cause(err) - _, ok := err.(*badRequest) - return ok -} - -// methodNotAllowed represents an error when an HTTP request -// is made with an inappropriate method. -type methodNotAllowed struct { - Err -} - -// MethodNotAllowedf returns an error which satisfies IsMethodNotAllowed(). -func MethodNotAllowedf(format string, args ...interface{}) error { - return &methodNotAllowed{wrap(nil, format, "", args...)} -} - -// NewMethodNotAllowed returns an error which wraps err that satisfies -// IsMethodNotAllowed(). -func NewMethodNotAllowed(err error, msg string) error { - return &methodNotAllowed{wrap(err, msg, "")} -} - -// IsMethodNotAllowed reports whether err was created with MethodNotAllowedf() or -// NewMethodNotAllowed(). -func IsMethodNotAllowed(err error) bool { - err = Cause(err) - _, ok := err.(*methodNotAllowed) - return ok -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/functions.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/functions.go deleted file mode 100644 index 994208d..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/functions.go +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "fmt" - "strings" -) - -// New is a drop in replacement for the standard libary errors module that records -// the location that the error is created. -// -// For example: -// return errors.New("validation failed") -// -func New(message string) error { - err := &Err{message: message} - err.SetLocation(1) - return err -} - -// Errorf creates a new annotated error and records the location that the -// error is created. This should be a drop in replacement for fmt.Errorf. -// -// For example: -// return errors.Errorf("validation failed: %s", message) -// -func Errorf(format string, args ...interface{}) error { - err := &Err{message: fmt.Sprintf(format, args...)} - err.SetLocation(1) - return err -} - -// Trace adds the location of the Trace call to the stack. The Cause of the -// resulting error is the same as the error parameter. If the other error is -// nil, the result will be nil. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Trace(err) -// } -// -func Trace(other error) error { - if other == nil { - return nil - } - err := &Err{previous: other, cause: Cause(other)} - err.SetLocation(1) - return err -} - -// Annotate is used to add extra context to an existing error. The location of -// the Annotate call is recorded with the annotations. The file, line and -// function are also recorded. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Annotate(err, "failed to frombulate") -// } -// -func Annotate(other error, message string) error { - if other == nil { - return nil - } - err := &Err{ - previous: other, - cause: Cause(other), - message: message, - } - err.SetLocation(1) - return err -} - -// Annotatef is used to add extra context to an existing error. The location of -// the Annotate call is recorded with the annotations. The file, line and -// function are also recorded. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Annotatef(err, "failed to frombulate the %s", arg) -// } -// -func Annotatef(other error, format string, args ...interface{}) error { - if other == nil { - return nil - } - err := &Err{ - previous: other, - cause: Cause(other), - message: fmt.Sprintf(format, args...), - } - err.SetLocation(1) - return err -} - -// DeferredAnnotatef annotates the given error (when it is not nil) with the given -// format string and arguments (like fmt.Sprintf). If *err is nil, DeferredAnnotatef -// does nothing. This method is used in a defer statement in order to annotate any -// resulting error with the same message. -// -// For example: -// -// defer DeferredAnnotatef(&err, "failed to frombulate the %s", arg) -// -func DeferredAnnotatef(err *error, format string, args ...interface{}) { - if *err == nil { - return - } - newErr := &Err{ - message: fmt.Sprintf(format, args...), - cause: Cause(*err), - previous: *err, - } - newErr.SetLocation(1) - *err = newErr -} - -// Wrap changes the Cause of the error. The location of the Wrap call is also -// stored in the error stack. -// -// For example: -// if err := SomeFunc(); err != nil { -// newErr := &packageError{"more context", private_value} -// return errors.Wrap(err, newErr) -// } -// -func Wrap(other, newDescriptive error) error { - err := &Err{ - previous: other, - cause: newDescriptive, - } - err.SetLocation(1) - return err -} - -// Wrapf changes the Cause of the error, and adds an annotation. The location -// of the Wrap call is also stored in the error stack. -// -// For example: -// if err := SomeFunc(); err != nil { -// return errors.Wrapf(err, simpleErrorType, "invalid value %q", value) -// } -// -func Wrapf(other, newDescriptive error, format string, args ...interface{}) error { - err := &Err{ - message: fmt.Sprintf(format, args...), - previous: other, - cause: newDescriptive, - } - err.SetLocation(1) - return err -} - -// Mask masks the given error with the given format string and arguments (like -// fmt.Sprintf), returning a new error that maintains the error stack, but -// hides the underlying error type. The error string still contains the full -// annotations. If you want to hide the annotations, call Wrap. -func Maskf(other error, format string, args ...interface{}) error { - if other == nil { - return nil - } - err := &Err{ - message: fmt.Sprintf(format, args...), - previous: other, - } - err.SetLocation(1) - return err -} - -// Mask hides the underlying error type, and records the location of the masking. -func Mask(other error) error { - if other == nil { - return nil - } - err := &Err{ - previous: other, - } - err.SetLocation(1) - return err -} - -// Cause returns the cause of the given error. This will be either the -// original error, or the result of a Wrap or Mask call. -// -// Cause is the usual way to diagnose errors that may have been wrapped by -// the other errors functions. -func Cause(err error) error { - var diag error - if err, ok := err.(causer); ok { - diag = err.Cause() - } - if diag != nil { - return diag - } - return err -} - -type causer interface { - Cause() error -} - -type wrapper interface { - // Message returns the top level error message, - // not including the message from the Previous - // error. - Message() string - - // Underlying returns the Previous error, or nil - // if there is none. - Underlying() error -} - -type locationer interface { - Location() (string, int) -} - -var ( - _ wrapper = (*Err)(nil) - _ locationer = (*Err)(nil) - _ causer = (*Err)(nil) -) - -// Details returns information about the stack of errors wrapped by err, in -// the format: -// -// [{filename:99: error one} {otherfile:55: cause of error one}] -// -// This is a terse alternative to ErrorStack as it returns a single line. -func Details(err error) string { - if err == nil { - return "[]" - } - var s []byte - s = append(s, '[') - for { - s = append(s, '{') - if err, ok := err.(locationer); ok { - file, line := err.Location() - if file != "" { - s = append(s, fmt.Sprintf("%s:%d", file, line)...) - s = append(s, ": "...) - } - } - if cerr, ok := err.(wrapper); ok { - s = append(s, cerr.Message()...) - err = cerr.Underlying() - } else { - s = append(s, err.Error()...) - err = nil - } - s = append(s, '}') - if err == nil { - break - } - s = append(s, ' ') - } - s = append(s, ']') - return string(s) -} - -// ErrorStack returns a string representation of the annotated error. If the -// error passed as the parameter is not an annotated error, the result is -// simply the result of the Error() method on that error. -// -// If the error is an annotated error, a multi-line string is returned where -// each line represents one entry in the annotation stack. The full filename -// from the call stack is used in the output. -// -// first error -// github.com/juju/errors/annotation_test.go:193: -// github.com/juju/errors/annotation_test.go:194: annotation -// github.com/juju/errors/annotation_test.go:195: -// github.com/juju/errors/annotation_test.go:196: more context -// github.com/juju/errors/annotation_test.go:197: -func ErrorStack(err error) string { - return strings.Join(errorStack(err), "\n") -} - -func errorStack(err error) []string { - if err == nil { - return nil - } - - // We want the first error first - var lines []string - for { - var buff []byte - if err, ok := err.(locationer); ok { - file, line := err.Location() - // Strip off the leading GOPATH/src path elements. - file = trimGoPath(file) - if file != "" { - buff = append(buff, fmt.Sprintf("%s:%d", file, line)...) - buff = append(buff, ": "...) - } - } - if cerr, ok := err.(wrapper); ok { - message := cerr.Message() - buff = append(buff, message...) - // If there is a cause for this error, and it is different to the cause - // of the underlying error, then output the error string in the stack trace. - var cause error - if err1, ok := err.(causer); ok { - cause = err1.Cause() - } - err = cerr.Underlying() - if cause != nil && !sameError(Cause(err), cause) { - if message != "" { - buff = append(buff, ": "...) - } - buff = append(buff, cause.Error()...) - } - } else { - buff = append(buff, err.Error()...) - err = nil - } - lines = append(lines, string(buff)) - if err == nil { - break - } - } - // reverse the lines to get the original error, which was at the end of - // the list, back to the start. - var result []string - for i := len(lines); i > 0; i-- { - result = append(result, lines[i-1]) - } - return result -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/path.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/path.go deleted file mode 100644 index a7b726a..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/juju/errors/path.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013, 2014 Canonical Ltd. -// Licensed under the LGPLv3, see LICENCE file for details. - -package errors - -import ( - "runtime" - "strings" -) - -// prefixSize is used internally to trim the user specific path from the -// front of the returned filenames from the runtime call stack. -var prefixSize int - -// goPath is the deduced path based on the location of this file as compiled. -var goPath string - -func init() { - _, file, _, ok := runtime.Caller(0) - if file == "?" { - return - } - if ok { - // We know that the end of the file should be: - // github.com/juju/errors/path.go - size := len(file) - suffix := len("github.com/juju/errors/path.go") - goPath = file[:size-suffix] - prefixSize = len(goPath) - } -} - -func trimGoPath(filename string) string { - if strings.HasPrefix(filename, goPath) { - return filename[prefixSize:] - } - return filename -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/LICENSE deleted file mode 100644 index 6600f1c..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ -GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser 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 -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_unix.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_unix.go deleted file mode 100644 index 37f407d..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_unix.go +++ /dev/null @@ -1,18 +0,0 @@ -// +build freebsd openbsd netbsd dragonfly darwin linux - -package log - -import ( - "log" - "os" - "syscall" -) - -func CrashLog(file string) { - f, err := os.OpenFile(file, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) - if err != nil { - log.Println(err.Error()) - } else { - syscall.Dup2(int(f.Fd()), 2) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_win.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_win.go deleted file mode 100644 index 7d612ee..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/crash_win.go +++ /dev/null @@ -1,37 +0,0 @@ -// +build windows - -package log - -import ( - "log" - "os" - "syscall" -) - -var ( - kernel32 = syscall.MustLoadDLL("kernel32.dll") - procSetStdHandle = kernel32.MustFindProc("SetStdHandle") -) - -func setStdHandle(stdhandle int32, handle syscall.Handle) error { - r0, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) - if r0 == 0 { - if e1 != 0 { - return error(e1) - } - return syscall.EINVAL - } - return nil -} - -func CrashLog(file string) { - f, err := os.OpenFile(file, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) - if err != nil { - log.Println(err.Error()) - } else { - err = setStdHandle(syscall.STD_ERROR_HANDLE, syscall.Handle(f.Fd())) - if err != nil { - log.Println(err.Error()) - } - } -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/log.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/log.go deleted file mode 100644 index 896b393..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/ngaut/log/log.go +++ /dev/null @@ -1,380 +0,0 @@ -//high level log wrapper, so it can output different log based on level -package log - -import ( - "fmt" - "io" - "log" - "os" - "runtime" - "sync" - "time" -) - -const ( - Ldate = log.Ldate - Llongfile = log.Llongfile - Lmicroseconds = log.Lmicroseconds - Lshortfile = log.Lshortfile - LstdFlags = log.LstdFlags - Ltime = log.Ltime -) - -type ( - LogLevel int - LogType int -) - -const ( - LOG_FATAL = LogType(0x1) - LOG_ERROR = LogType(0x2) - LOG_WARNING = LogType(0x4) - LOG_INFO = LogType(0x8) - LOG_DEBUG = LogType(0x10) -) - -const ( - LOG_LEVEL_NONE = LogLevel(0x0) - LOG_LEVEL_FATAL = LOG_LEVEL_NONE | LogLevel(LOG_FATAL) - LOG_LEVEL_ERROR = LOG_LEVEL_FATAL | LogLevel(LOG_ERROR) - LOG_LEVEL_WARN = LOG_LEVEL_ERROR | LogLevel(LOG_WARNING) - LOG_LEVEL_INFO = LOG_LEVEL_WARN | LogLevel(LOG_INFO) - LOG_LEVEL_DEBUG = LOG_LEVEL_INFO | LogLevel(LOG_DEBUG) - LOG_LEVEL_ALL = LOG_LEVEL_DEBUG -) - -const FORMAT_TIME_DAY string = "20060102" -const FORMAT_TIME_HOUR string = "2006010215" - -var _log *logger = New() - -func init() { - SetFlags(Ldate | Ltime | Lshortfile) - SetHighlighting(runtime.GOOS != "windows") -} - -func Logger() *log.Logger { - return _log._log -} - -func SetLevel(level LogLevel) { - _log.SetLevel(level) -} -func GetLogLevel() LogLevel { - return _log.level -} - -func SetOutput(out io.Writer) { - _log.SetOutput(out) -} - -func SetOutputByName(path string) error { - return _log.SetOutputByName(path) -} - -func SetFlags(flags int) { - _log._log.SetFlags(flags) -} - -func Info(v ...interface{}) { - _log.Info(v...) -} - -func Infof(format string, v ...interface{}) { - _log.Infof(format, v...) -} - -func Debug(v ...interface{}) { - _log.Debug(v...) -} - -func Debugf(format string, v ...interface{}) { - _log.Debugf(format, v...) -} - -func Warn(v ...interface{}) { - _log.Warning(v...) -} - -func Warnf(format string, v ...interface{}) { - _log.Warningf(format, v...) -} - -func Warning(v ...interface{}) { - _log.Warning(v...) -} - -func Warningf(format string, v ...interface{}) { - _log.Warningf(format, v...) -} - -func Error(v ...interface{}) { - _log.Error(v...) -} - -func Errorf(format string, v ...interface{}) { - _log.Errorf(format, v...) -} - -func Fatal(v ...interface{}) { - _log.Fatal(v...) -} - -func Fatalf(format string, v ...interface{}) { - _log.Fatalf(format, v...) -} - -func SetLevelByString(level string) { - _log.SetLevelByString(level) -} - -func SetHighlighting(highlighting bool) { - _log.SetHighlighting(highlighting) -} - -func SetRotateByDay() { - _log.SetRotateByDay() -} - -func SetRotateByHour() { - _log.SetRotateByHour() -} - -type logger struct { - _log *log.Logger - level LogLevel - highlighting bool - - dailyRolling bool - hourRolling bool - - fileName string - logSuffix string - fd *os.File - - lock sync.Mutex -} - -func (l *logger) SetHighlighting(highlighting bool) { - l.highlighting = highlighting -} - -func (l *logger) SetLevel(level LogLevel) { - l.level = level -} - -func (l *logger) SetLevelByString(level string) { - l.level = StringToLogLevel(level) -} - -func (l *logger) SetRotateByDay() { - l.dailyRolling = true - l.logSuffix = genDayTime(time.Now()) -} - -func (l *logger) SetRotateByHour() { - l.hourRolling = true - l.logSuffix = genHourTime(time.Now()) -} - -func (l *logger) rotate() error { - l.lock.Lock() - defer l.lock.Unlock() - - var suffix string - if l.dailyRolling { - suffix = genDayTime(time.Now()) - } else if l.hourRolling { - suffix = genHourTime(time.Now()) - } else { - return nil - } - - // Notice: if suffix is not equal to l.LogSuffix, then rotate - if suffix != l.logSuffix { - err := l.doRotate(suffix) - if err != nil { - return err - } - } - - return nil -} - -func (l *logger) doRotate(suffix string) error { - // Notice: Not check error, is this ok? - l.fd.Close() - - lastFileName := l.fileName + "." + l.logSuffix - err := os.Rename(l.fileName, lastFileName) - if err != nil { - return err - } - - err = l.SetOutputByName(l.fileName) - if err != nil { - return err - } - - l.logSuffix = suffix - - return nil -} - -func (l *logger) SetOutput(out io.Writer) { - l._log = log.New(out, l._log.Prefix(), l._log.Flags()) -} - -func (l *logger) SetOutputByName(path string) error { - f, err := os.OpenFile(path, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) - if err != nil { - log.Fatal(err) - } - - l.SetOutput(f) - - l.fileName = path - l.fd = f - - return err -} - -func (l *logger) log(t LogType, v ...interface{}) { - if l.level|LogLevel(t) != l.level { - return - } - - err := l.rotate() - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - return - } - - v1 := make([]interface{}, len(v)+2) - logStr, logColor := LogTypeToString(t) - if l.highlighting { - v1[0] = "\033" + logColor + "m[" + logStr + "]" - copy(v1[1:], v) - v1[len(v)+1] = "\033[0m" - } else { - v1[0] = "[" + logStr + "]" - copy(v1[1:], v) - v1[len(v)+1] = "" - } - - s := fmt.Sprintln(v1...) - l._log.Output(4, s) -} - -func (l *logger) logf(t LogType, format string, v ...interface{}) { - if l.level|LogLevel(t) != l.level { - return - } - - err := l.rotate() - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - return - } - - logStr, logColor := LogTypeToString(t) - var s string - if l.highlighting { - s = "\033" + logColor + "m[" + logStr + "] " + fmt.Sprintf(format, v...) + "\033[0m" - } else { - s = "[" + logStr + "] " + fmt.Sprintf(format, v...) - } - l._log.Output(4, s) -} - -func (l *logger) Fatal(v ...interface{}) { - l.log(LOG_FATAL, v...) - os.Exit(-1) -} - -func (l *logger) Fatalf(format string, v ...interface{}) { - l.logf(LOG_FATAL, format, v...) - os.Exit(-1) -} - -func (l *logger) Error(v ...interface{}) { - l.log(LOG_ERROR, v...) -} - -func (l *logger) Errorf(format string, v ...interface{}) { - l.logf(LOG_ERROR, format, v...) -} - -func (l *logger) Warning(v ...interface{}) { - l.log(LOG_WARNING, v...) -} - -func (l *logger) Warningf(format string, v ...interface{}) { - l.logf(LOG_WARNING, format, v...) -} - -func (l *logger) Debug(v ...interface{}) { - l.log(LOG_DEBUG, v...) -} - -func (l *logger) Debugf(format string, v ...interface{}) { - l.logf(LOG_DEBUG, format, v...) -} - -func (l *logger) Info(v ...interface{}) { - l.log(LOG_INFO, v...) -} - -func (l *logger) Infof(format string, v ...interface{}) { - l.logf(LOG_INFO, format, v...) -} - -func StringToLogLevel(level string) LogLevel { - switch level { - case "fatal": - return LOG_LEVEL_FATAL - case "error": - return LOG_LEVEL_ERROR - case "warn": - return LOG_LEVEL_WARN - case "warning": - return LOG_LEVEL_WARN - case "debug": - return LOG_LEVEL_DEBUG - case "info": - return LOG_LEVEL_INFO - } - return LOG_LEVEL_ALL -} - -func LogTypeToString(t LogType) (string, string) { - switch t { - case LOG_FATAL: - return "fatal", "[0;31" - case LOG_ERROR: - return "error", "[0;31" - case LOG_WARNING: - return "warning", "[0;33" - case LOG_DEBUG: - return "debug", "[0;36" - case LOG_INFO: - return "info", "[0;37" - } - return "unknown", "[0;37" -} - -func genDayTime(t time.Time) string { - return t.Format(FORMAT_TIME_DAY) -} - -func genHourTime(t time.Time) string { - return t.Format(FORMAT_TIME_HOUR) -} - -func New() *logger { - return Newlogger(os.Stderr, "") -} - -func Newlogger(w io.Writer, prefix string) *logger { - return &logger{_log: log.New(w, prefix, LstdFlags), level: LOG_LEVEL_ALL, highlighting: true} -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/benchmark.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/benchmark.go deleted file mode 100644 index 46ea9dc..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/benchmark.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright (c) 2012 The Go Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package check - -import ( - "fmt" - "runtime" - "time" -) - -var memStats runtime.MemStats - -// testingB is a type passed to Benchmark functions to manage benchmark -// timing and to specify the number of iterations to run. -type timer struct { - start time.Time // Time test or benchmark started - duration time.Duration - N int - bytes int64 - timerOn bool - benchTime time.Duration - // The initial states of memStats.Mallocs and memStats.TotalAlloc. - startAllocs uint64 - startBytes uint64 - // The net total of this test after being run. - netAllocs uint64 - netBytes uint64 -} - -// StartTimer starts timing a test. This function is called automatically -// before a benchmark starts, but it can also used to resume timing after -// a call to StopTimer. -func (c *C) StartTimer() { - if !c.timerOn { - c.start = time.Now() - c.timerOn = true - - runtime.ReadMemStats(&memStats) - c.startAllocs = memStats.Mallocs - c.startBytes = memStats.TotalAlloc - } -} - -// StopTimer stops timing a test. This can be used to pause the timer -// while performing complex initialization that you don't -// want to measure. -func (c *C) StopTimer() { - if c.timerOn { - c.duration += time.Now().Sub(c.start) - c.timerOn = false - runtime.ReadMemStats(&memStats) - c.netAllocs += memStats.Mallocs - c.startAllocs - c.netBytes += memStats.TotalAlloc - c.startBytes - } -} - -// ResetTimer sets the elapsed benchmark time to zero. -// It does not affect whether the timer is running. -func (c *C) ResetTimer() { - if c.timerOn { - c.start = time.Now() - runtime.ReadMemStats(&memStats) - c.startAllocs = memStats.Mallocs - c.startBytes = memStats.TotalAlloc - } - c.duration = 0 - c.netAllocs = 0 - c.netBytes = 0 -} - -// SetBytes informs the number of bytes that the benchmark processes -// on each iteration. If this is called in a benchmark it will also -// report MB/s. -func (c *C) SetBytes(n int64) { - c.bytes = n -} - -func (c *C) nsPerOp() int64 { - if c.N <= 0 { - return 0 - } - return c.duration.Nanoseconds() / int64(c.N) -} - -func (c *C) mbPerSec() float64 { - if c.bytes <= 0 || c.duration <= 0 || c.N <= 0 { - return 0 - } - return (float64(c.bytes) * float64(c.N) / 1e6) / c.duration.Seconds() -} - -func (c *C) timerString() string { - if c.N <= 0 { - return fmt.Sprintf("%3.3fs", float64(c.duration.Nanoseconds())/1e9) - } - mbs := c.mbPerSec() - mb := "" - if mbs != 0 { - mb = fmt.Sprintf("\t%7.2f MB/s", mbs) - } - nsop := c.nsPerOp() - ns := fmt.Sprintf("%10d ns/op", nsop) - if c.N > 0 && nsop < 100 { - // The format specifiers here make sure that - // the ones digits line up for all three possible formats. - if nsop < 10 { - ns = fmt.Sprintf("%13.2f ns/op", float64(c.duration.Nanoseconds())/float64(c.N)) - } else { - ns = fmt.Sprintf("%12.1f ns/op", float64(c.duration.Nanoseconds())/float64(c.N)) - } - } - memStats := "" - if c.benchMem { - allocedBytes := fmt.Sprintf("%8d B/op", int64(c.netBytes)/int64(c.N)) - allocs := fmt.Sprintf("%8d allocs/op", int64(c.netAllocs)/int64(c.N)) - memStats = fmt.Sprintf("\t%s\t%s", allocedBytes, allocs) - } - return fmt.Sprintf("%8d\t%s%s%s", c.N, ns, mb, memStats) -} - -func min(x, y int) int { - if x > y { - return y - } - return x -} - -func max(x, y int) int { - if x < y { - return y - } - return x -} - -// roundDown10 rounds a number down to the nearest power of 10. -func roundDown10(n int) int { - var tens = 0 - // tens = floor(log_10(n)) - for n > 10 { - n = n / 10 - tens++ - } - // result = 10^tens - result := 1 - for i := 0; i < tens; i++ { - result *= 10 - } - return result -} - -// roundUp rounds x up to a number of the form [1eX, 2eX, 5eX]. -func roundUp(n int) int { - base := roundDown10(n) - if n < (2 * base) { - return 2 * base - } - if n < (5 * base) { - return 5 * base - } - return 10 * base -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/check.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/check.go deleted file mode 100644 index c99392a..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/check.go +++ /dev/null @@ -1,954 +0,0 @@ -// Package check is a rich testing extension for Go's testing package. -// -// For details about the project, see: -// -// http://labix.org/gocheck -// -package check - -import ( - "bytes" - "errors" - "fmt" - "io" - "math/rand" - "os" - "path" - "path/filepath" - "reflect" - "regexp" - "runtime" - "strconv" - "strings" - "sync" - "sync/atomic" - "time" -) - -// ----------------------------------------------------------------------- -// Internal type which deals with suite method calling. - -const ( - fixtureKd = iota - testKd -) - -type funcKind int - -const ( - succeededSt = iota - failedSt - skippedSt - panickedSt - fixturePanickedSt - missedSt -) - -type funcStatus uint32 - -// A method value can't reach its own Method structure. -type methodType struct { - reflect.Value - Info reflect.Method -} - -func newMethod(receiver reflect.Value, i int) *methodType { - return &methodType{receiver.Method(i), receiver.Type().Method(i)} -} - -func (method *methodType) PC() uintptr { - return method.Info.Func.Pointer() -} - -func (method *methodType) suiteName() string { - t := method.Info.Type.In(0) - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - return t.Name() -} - -func (method *methodType) String() string { - return method.suiteName() + "." + method.Info.Name -} - -func (method *methodType) matches(re *regexp.Regexp) bool { - return (re.MatchString(method.Info.Name) || - re.MatchString(method.suiteName()) || - re.MatchString(method.String())) -} - -type C struct { - method *methodType - kind funcKind - testName string - _status funcStatus - logb *logger - logw io.Writer - done chan *C - reason string - mustFail bool - tempDir *tempDir - benchMem bool - startTime time.Time - timer -} - -func (c *C) status() funcStatus { - return funcStatus(atomic.LoadUint32((*uint32)(&c._status))) -} - -func (c *C) setStatus(s funcStatus) { - atomic.StoreUint32((*uint32)(&c._status), uint32(s)) -} - -func (c *C) stopNow() { - runtime.Goexit() -} - -// logger is a concurrency safe byte.Buffer -type logger struct { - sync.Mutex - writer bytes.Buffer -} - -func (l *logger) Write(buf []byte) (int, error) { - l.Lock() - defer l.Unlock() - return l.writer.Write(buf) -} - -func (l *logger) WriteTo(w io.Writer) (int64, error) { - l.Lock() - defer l.Unlock() - return l.writer.WriteTo(w) -} - -func (l *logger) String() string { - l.Lock() - defer l.Unlock() - return l.writer.String() -} - -// ----------------------------------------------------------------------- -// Handling of temporary files and directories. - -type tempDir struct { - sync.Mutex - path string - counter int -} - -func (td *tempDir) newPath() string { - td.Lock() - defer td.Unlock() - if td.path == "" { - var err error - for i := 0; i != 100; i++ { - path := fmt.Sprintf("%s%ccheck-%d", os.TempDir(), os.PathSeparator, rand.Int()) - if err = os.Mkdir(path, 0700); err == nil { - td.path = path - break - } - } - if td.path == "" { - panic("Couldn't create temporary directory: " + err.Error()) - } - } - result := filepath.Join(td.path, strconv.Itoa(td.counter)) - td.counter += 1 - return result -} - -func (td *tempDir) removeAll() { - td.Lock() - defer td.Unlock() - if td.path != "" { - err := os.RemoveAll(td.path) - if err != nil { - fmt.Fprintf(os.Stderr, "WARNING: Error cleaning up temporaries: "+err.Error()) - } - } -} - -// Create a new temporary directory which is automatically removed after -// the suite finishes running. -func (c *C) MkDir() string { - path := c.tempDir.newPath() - if err := os.Mkdir(path, 0700); err != nil { - panic(fmt.Sprintf("Couldn't create temporary directory %s: %s", path, err.Error())) - } - return path -} - -// ----------------------------------------------------------------------- -// Low-level logging functions. - -func (c *C) log(args ...interface{}) { - c.writeLog([]byte(fmt.Sprint(args...) + "\n")) -} - -func (c *C) logf(format string, args ...interface{}) { - c.writeLog([]byte(fmt.Sprintf(format+"\n", args...))) -} - -func (c *C) logNewLine() { - c.writeLog([]byte{'\n'}) -} - -func (c *C) writeLog(buf []byte) { - c.logb.Write(buf) - if c.logw != nil { - c.logw.Write(buf) - } -} - -func hasStringOrError(x interface{}) (ok bool) { - _, ok = x.(fmt.Stringer) - if ok { - return - } - _, ok = x.(error) - return -} - -func (c *C) logValue(label string, value interface{}) { - if label == "" { - if hasStringOrError(value) { - c.logf("... %#v (%q)", value, value) - } else { - c.logf("... %#v", value) - } - } else if value == nil { - c.logf("... %s = nil", label) - } else { - if hasStringOrError(value) { - fv := fmt.Sprintf("%#v", value) - qv := fmt.Sprintf("%q", value) - if fv != qv { - c.logf("... %s %s = %s (%s)", label, reflect.TypeOf(value), fv, qv) - return - } - } - if s, ok := value.(string); ok && isMultiLine(s) { - c.logf(`... %s %s = "" +`, label, reflect.TypeOf(value)) - c.logMultiLine(s) - } else { - c.logf("... %s %s = %#v", label, reflect.TypeOf(value), value) - } - } -} - -func (c *C) logMultiLine(s string) { - b := make([]byte, 0, len(s)*2) - i := 0 - n := len(s) - for i < n { - j := i + 1 - for j < n && s[j-1] != '\n' { - j++ - } - b = append(b, "... "...) - b = strconv.AppendQuote(b, s[i:j]) - if j < n { - b = append(b, " +"...) - } - b = append(b, '\n') - i = j - } - c.writeLog(b) -} - -func isMultiLine(s string) bool { - for i := 0; i+1 < len(s); i++ { - if s[i] == '\n' { - return true - } - } - return false -} - -func (c *C) logString(issue string) { - c.log("... ", issue) -} - -func (c *C) logCaller(skip int) { - // This is a bit heavier than it ought to be. - skip += 1 // Our own frame. - pc, callerFile, callerLine, ok := runtime.Caller(skip) - if !ok { - return - } - var testFile string - var testLine int - testFunc := runtime.FuncForPC(c.method.PC()) - if runtime.FuncForPC(pc) != testFunc { - for { - skip += 1 - if pc, file, line, ok := runtime.Caller(skip); ok { - // Note that the test line may be different on - // distinct calls for the same test. Showing - // the "internal" line is helpful when debugging. - if runtime.FuncForPC(pc) == testFunc { - testFile, testLine = file, line - break - } - } else { - break - } - } - } - if testFile != "" && (testFile != callerFile || testLine != callerLine) { - c.logCode(testFile, testLine) - } - c.logCode(callerFile, callerLine) -} - -func (c *C) logCode(path string, line int) { - c.logf("%s:%d:", nicePath(path), line) - code, err := printLine(path, line) - if code == "" { - code = "..." // XXX Open the file and take the raw line. - if err != nil { - code += err.Error() - } - } - c.log(indent(code, " ")) -} - -var valueGo = filepath.Join("reflect", "value.go") -var asmGo = filepath.Join("runtime", "asm_") - -func (c *C) logPanic(skip int, value interface{}) { - skip++ // Our own frame. - initialSkip := skip - for ; ; skip++ { - if pc, file, line, ok := runtime.Caller(skip); ok { - if skip == initialSkip { - c.logf("... Panic: %s (PC=0x%X)\n", value, pc) - } - name := niceFuncName(pc) - path := nicePath(file) - if strings.Contains(path, "/gopkg.in/check.v") { - continue - } - if name == "Value.call" && strings.HasSuffix(path, valueGo) { - continue - } - if (name == "call16" || name == "call32") && strings.Contains(path, asmGo) { - continue - } - c.logf("%s:%d\n in %s", nicePath(file), line, name) - } else { - break - } - } -} - -func (c *C) logSoftPanic(issue string) { - c.log("... Panic: ", issue) -} - -func (c *C) logArgPanic(method *methodType, expectedType string) { - c.logf("... Panic: %s argument should be %s", - niceFuncName(method.PC()), expectedType) -} - -// ----------------------------------------------------------------------- -// Some simple formatting helpers. - -var initWD, initWDErr = os.Getwd() - -func init() { - if initWDErr == nil { - initWD = strings.Replace(initWD, "\\", "/", -1) + "/" - } -} - -func nicePath(path string) string { - if initWDErr == nil { - if strings.HasPrefix(path, initWD) { - return path[len(initWD):] - } - } - return path -} - -func niceFuncPath(pc uintptr) string { - function := runtime.FuncForPC(pc) - if function != nil { - filename, line := function.FileLine(pc) - return fmt.Sprintf("%s:%d", nicePath(filename), line) - } - return "" -} - -func niceFuncName(pc uintptr) string { - function := runtime.FuncForPC(pc) - if function != nil { - name := path.Base(function.Name()) - if i := strings.Index(name, "."); i > 0 { - name = name[i+1:] - } - if strings.HasPrefix(name, "(*") { - if i := strings.Index(name, ")"); i > 0 { - name = name[2:i] + name[i+1:] - } - } - if i := strings.LastIndex(name, ".*"); i != -1 { - name = name[:i] + "." + name[i+2:] - } - if i := strings.LastIndex(name, "·"); i != -1 { - name = name[:i] + "." + name[i+2:] - } - return name - } - return "" -} - -// ----------------------------------------------------------------------- -// Result tracker to aggregate call results. - -type Result struct { - Succeeded int - Failed int - Skipped int - Panicked int - FixturePanicked int - ExpectedFailures int - Missed int // Not even tried to run, related to a panic in the fixture. - RunError error // Houston, we've got a problem. - WorkDir string // If KeepWorkDir is true -} - -type resultTracker struct { - result Result - _lastWasProblem bool - _waiting int - _missed int - _expectChan chan *C - _doneChan chan *C - _stopChan chan bool -} - -func newResultTracker() *resultTracker { - return &resultTracker{_expectChan: make(chan *C), // Synchronous - _doneChan: make(chan *C, 32), // Asynchronous - _stopChan: make(chan bool)} // Synchronous -} - -func (tracker *resultTracker) start() { - go tracker._loopRoutine() -} - -func (tracker *resultTracker) waitAndStop() { - <-tracker._stopChan -} - -func (tracker *resultTracker) expectCall(c *C) { - tracker._expectChan <- c -} - -func (tracker *resultTracker) callDone(c *C) { - tracker._doneChan <- c -} - -func (tracker *resultTracker) _loopRoutine() { - for { - var c *C - if tracker._waiting > 0 { - // Calls still running. Can't stop. - select { - // XXX Reindent this (not now to make diff clear) - case c = <-tracker._expectChan: - tracker._waiting += 1 - case c = <-tracker._doneChan: - tracker._waiting -= 1 - switch c.status() { - case succeededSt: - if c.kind == testKd { - if c.mustFail { - tracker.result.ExpectedFailures++ - } else { - tracker.result.Succeeded++ - } - } - case failedSt: - tracker.result.Failed++ - case panickedSt: - if c.kind == fixtureKd { - tracker.result.FixturePanicked++ - } else { - tracker.result.Panicked++ - } - case fixturePanickedSt: - // Track it as missed, since the panic - // was on the fixture, not on the test. - tracker.result.Missed++ - case missedSt: - tracker.result.Missed++ - case skippedSt: - if c.kind == testKd { - tracker.result.Skipped++ - } - } - } - } else { - // No calls. Can stop, but no done calls here. - select { - case tracker._stopChan <- true: - return - case c = <-tracker._expectChan: - tracker._waiting += 1 - case c = <-tracker._doneChan: - panic("Tracker got an unexpected done call.") - } - } - } -} - -// ----------------------------------------------------------------------- -// The underlying suite runner. - -type suiteRunner struct { - suite interface{} - setUpSuite, tearDownSuite *methodType - setUpTest, tearDownTest *methodType - tests []*methodType - tracker *resultTracker - tempDir *tempDir - keepDir bool - output *outputWriter - reportedProblemLast bool - benchTime time.Duration - benchMem bool -} - -type RunConf struct { - Output io.Writer - Stream bool - Verbose bool - Filter string - Benchmark bool - BenchmarkTime time.Duration // Defaults to 1 second - BenchmarkMem bool - KeepWorkDir bool -} - -// Create a new suiteRunner able to run all methods in the given suite. -func newSuiteRunner(suite interface{}, runConf *RunConf) *suiteRunner { - var conf RunConf - if runConf != nil { - conf = *runConf - } - if conf.Output == nil { - conf.Output = os.Stdout - } - if conf.Benchmark { - conf.Verbose = true - } - - suiteType := reflect.TypeOf(suite) - suiteNumMethods := suiteType.NumMethod() - suiteValue := reflect.ValueOf(suite) - - runner := &suiteRunner{ - suite: suite, - output: newOutputWriter(conf.Output, conf.Stream, conf.Verbose), - tracker: newResultTracker(), - benchTime: conf.BenchmarkTime, - benchMem: conf.BenchmarkMem, - tempDir: &tempDir{}, - keepDir: conf.KeepWorkDir, - tests: make([]*methodType, 0, suiteNumMethods), - } - if runner.benchTime == 0 { - runner.benchTime = 1 * time.Second - } - - var filterRegexp *regexp.Regexp - if conf.Filter != "" { - if regexp, err := regexp.Compile(conf.Filter); err != nil { - msg := "Bad filter expression: " + err.Error() - runner.tracker.result.RunError = errors.New(msg) - return runner - } else { - filterRegexp = regexp - } - } - - for i := 0; i != suiteNumMethods; i++ { - method := newMethod(suiteValue, i) - switch method.Info.Name { - case "SetUpSuite": - runner.setUpSuite = method - case "TearDownSuite": - runner.tearDownSuite = method - case "SetUpTest": - runner.setUpTest = method - case "TearDownTest": - runner.tearDownTest = method - default: - prefix := "Test" - if conf.Benchmark { - prefix = "Benchmark" - } - if !strings.HasPrefix(method.Info.Name, prefix) { - continue - } - if filterRegexp == nil || method.matches(filterRegexp) { - runner.tests = append(runner.tests, method) - } - } - } - return runner -} - -// Run all methods in the given suite. -func (runner *suiteRunner) run() *Result { - if runner.tracker.result.RunError == nil && len(runner.tests) > 0 { - runner.tracker.start() - if runner.checkFixtureArgs() { - c := runner.runFixture(runner.setUpSuite, "", nil) - if c == nil || c.status() == succeededSt { - for i := 0; i != len(runner.tests); i++ { - c := runner.runTest(runner.tests[i]) - if c.status() == fixturePanickedSt { - runner.skipTests(missedSt, runner.tests[i+1:]) - break - } - } - } else if c != nil && c.status() == skippedSt { - runner.skipTests(skippedSt, runner.tests) - } else { - runner.skipTests(missedSt, runner.tests) - } - runner.runFixture(runner.tearDownSuite, "", nil) - } else { - runner.skipTests(missedSt, runner.tests) - } - runner.tracker.waitAndStop() - if runner.keepDir { - runner.tracker.result.WorkDir = runner.tempDir.path - } else { - runner.tempDir.removeAll() - } - } - return &runner.tracker.result -} - -// Create a call object with the given suite method, and fork a -// goroutine with the provided dispatcher for running it. -func (runner *suiteRunner) forkCall(method *methodType, kind funcKind, testName string, logb *logger, dispatcher func(c *C)) *C { - var logw io.Writer - if runner.output.Stream { - logw = runner.output - } - if logb == nil { - logb = new(logger) - } - c := &C{ - method: method, - kind: kind, - testName: testName, - logb: logb, - logw: logw, - tempDir: runner.tempDir, - done: make(chan *C, 1), - timer: timer{benchTime: runner.benchTime}, - startTime: time.Now(), - benchMem: runner.benchMem, - } - runner.tracker.expectCall(c) - go (func() { - runner.reportCallStarted(c) - defer runner.callDone(c) - dispatcher(c) - })() - return c -} - -// Same as forkCall(), but wait for call to finish before returning. -func (runner *suiteRunner) runFunc(method *methodType, kind funcKind, testName string, logb *logger, dispatcher func(c *C)) *C { - c := runner.forkCall(method, kind, testName, logb, dispatcher) - <-c.done - return c -} - -// Handle a finished call. If there were any panics, update the call status -// accordingly. Then, mark the call as done and report to the tracker. -func (runner *suiteRunner) callDone(c *C) { - value := recover() - if value != nil { - switch v := value.(type) { - case *fixturePanic: - if v.status == skippedSt { - c.setStatus(skippedSt) - } else { - c.logSoftPanic("Fixture has panicked (see related PANIC)") - c.setStatus(fixturePanickedSt) - } - default: - c.logPanic(1, value) - c.setStatus(panickedSt) - } - } - if c.mustFail { - switch c.status() { - case failedSt: - c.setStatus(succeededSt) - case succeededSt: - c.setStatus(failedSt) - c.logString("Error: Test succeeded, but was expected to fail") - c.logString("Reason: " + c.reason) - } - } - - runner.reportCallDone(c) - c.done <- c -} - -// Runs a fixture call synchronously. The fixture will still be run in a -// goroutine like all suite methods, but this method will not return -// while the fixture goroutine is not done, because the fixture must be -// run in a desired order. -func (runner *suiteRunner) runFixture(method *methodType, testName string, logb *logger) *C { - if method != nil { - c := runner.runFunc(method, fixtureKd, testName, logb, func(c *C) { - c.ResetTimer() - c.StartTimer() - defer c.StopTimer() - c.method.Call([]reflect.Value{reflect.ValueOf(c)}) - }) - return c - } - return nil -} - -// Run the fixture method with runFixture(), but panic with a fixturePanic{} -// in case the fixture method panics. This makes it easier to track the -// fixture panic together with other call panics within forkTest(). -func (runner *suiteRunner) runFixtureWithPanic(method *methodType, testName string, logb *logger, skipped *bool) *C { - if skipped != nil && *skipped { - return nil - } - c := runner.runFixture(method, testName, logb) - if c != nil && c.status() != succeededSt { - if skipped != nil { - *skipped = c.status() == skippedSt - } - panic(&fixturePanic{c.status(), method}) - } - return c -} - -type fixturePanic struct { - status funcStatus - method *methodType -} - -// Run the suite test method, together with the test-specific fixture, -// asynchronously. -func (runner *suiteRunner) forkTest(method *methodType) *C { - testName := method.String() - return runner.forkCall(method, testKd, testName, nil, func(c *C) { - var skipped bool - defer runner.runFixtureWithPanic(runner.tearDownTest, testName, nil, &skipped) - defer c.StopTimer() - benchN := 1 - for { - runner.runFixtureWithPanic(runner.setUpTest, testName, c.logb, &skipped) - mt := c.method.Type() - if mt.NumIn() != 1 || mt.In(0) != reflect.TypeOf(c) { - // Rather than a plain panic, provide a more helpful message when - // the argument type is incorrect. - c.setStatus(panickedSt) - c.logArgPanic(c.method, "*check.C") - return - } - if strings.HasPrefix(c.method.Info.Name, "Test") { - c.ResetTimer() - c.StartTimer() - c.method.Call([]reflect.Value{reflect.ValueOf(c)}) - return - } - if !strings.HasPrefix(c.method.Info.Name, "Benchmark") { - panic("unexpected method prefix: " + c.method.Info.Name) - } - - runtime.GC() - c.N = benchN - c.ResetTimer() - c.StartTimer() - c.method.Call([]reflect.Value{reflect.ValueOf(c)}) - c.StopTimer() - if c.status() != succeededSt || c.duration >= c.benchTime || benchN >= 1e9 { - return - } - perOpN := int(1e9) - if c.nsPerOp() != 0 { - perOpN = int(c.benchTime.Nanoseconds() / c.nsPerOp()) - } - - // Logic taken from the stock testing package: - // - Run more iterations than we think we'll need for a second (1.5x). - // - Don't grow too fast in case we had timing errors previously. - // - Be sure to run at least one more than last time. - benchN = max(min(perOpN+perOpN/2, 100*benchN), benchN+1) - benchN = roundUp(benchN) - - skipped = true // Don't run the deferred one if this panics. - runner.runFixtureWithPanic(runner.tearDownTest, testName, nil, nil) - skipped = false - } - }) -} - -// Same as forkTest(), but wait for the test to finish before returning. -func (runner *suiteRunner) runTest(method *methodType) *C { - c := runner.forkTest(method) - <-c.done - return c -} - -// Helper to mark tests as skipped or missed. A bit heavy for what -// it does, but it enables homogeneous handling of tracking, including -// nice verbose output. -func (runner *suiteRunner) skipTests(status funcStatus, methods []*methodType) { - for _, method := range methods { - runner.runFunc(method, testKd, "", nil, func(c *C) { - c.setStatus(status) - }) - } -} - -// Verify if the fixture arguments are *check.C. In case of errors, -// log the error as a panic in the fixture method call, and return false. -func (runner *suiteRunner) checkFixtureArgs() bool { - succeeded := true - argType := reflect.TypeOf(&C{}) - for _, method := range []*methodType{runner.setUpSuite, runner.tearDownSuite, runner.setUpTest, runner.tearDownTest} { - if method != nil { - mt := method.Type() - if mt.NumIn() != 1 || mt.In(0) != argType { - succeeded = false - runner.runFunc(method, fixtureKd, "", nil, func(c *C) { - c.logArgPanic(method, "*check.C") - c.setStatus(panickedSt) - }) - } - } - } - return succeeded -} - -func (runner *suiteRunner) reportCallStarted(c *C) { - runner.output.WriteCallStarted("START", c) -} - -func (runner *suiteRunner) reportCallDone(c *C) { - runner.tracker.callDone(c) - switch c.status() { - case succeededSt: - if c.mustFail { - runner.output.WriteCallSuccess("FAIL EXPECTED", c) - } else { - runner.output.WriteCallSuccess("PASS", c) - } - case skippedSt: - runner.output.WriteCallSuccess("SKIP", c) - case failedSt: - runner.output.WriteCallProblem("FAIL", c) - case panickedSt: - runner.output.WriteCallProblem("PANIC", c) - case fixturePanickedSt: - // That's a testKd call reporting that its fixture - // has panicked. The fixture call which caused the - // panic itself was tracked above. We'll report to - // aid debugging. - runner.output.WriteCallProblem("PANIC", c) - case missedSt: - runner.output.WriteCallSuccess("MISS", c) - } -} - -// ----------------------------------------------------------------------- -// Output writer manages atomic output writing according to settings. - -type outputWriter struct { - m sync.Mutex - writer io.Writer - wroteCallProblemLast bool - Stream bool - Verbose bool -} - -func newOutputWriter(writer io.Writer, stream, verbose bool) *outputWriter { - return &outputWriter{writer: writer, Stream: stream, Verbose: verbose} -} - -func (ow *outputWriter) Write(content []byte) (n int, err error) { - ow.m.Lock() - n, err = ow.writer.Write(content) - ow.m.Unlock() - return -} - -func (ow *outputWriter) WriteCallStarted(label string, c *C) { - if ow.Stream { - header := renderCallHeader(label, c, "", "\n") - ow.m.Lock() - ow.writer.Write([]byte(header)) - ow.m.Unlock() - } -} - -func (ow *outputWriter) WriteCallProblem(label string, c *C) { - var prefix string - if !ow.Stream { - prefix = "\n-----------------------------------" + - "-----------------------------------\n" - } - header := renderCallHeader(label, c, prefix, "\n\n") - ow.m.Lock() - ow.wroteCallProblemLast = true - ow.writer.Write([]byte(header)) - if !ow.Stream { - c.logb.WriteTo(ow.writer) - } - ow.m.Unlock() -} - -func (ow *outputWriter) WriteCallSuccess(label string, c *C) { - if ow.Stream || (ow.Verbose && c.kind == testKd) { - // TODO Use a buffer here. - var suffix string - if c.reason != "" { - suffix = " (" + c.reason + ")" - } - if c.status() == succeededSt { - suffix += "\t" + c.timerString() - } - suffix += "\n" - if ow.Stream { - suffix += "\n" - } - header := renderCallHeader(label, c, "", suffix) - ow.m.Lock() - // Resist temptation of using line as prefix above due to race. - if !ow.Stream && ow.wroteCallProblemLast { - header = "\n-----------------------------------" + - "-----------------------------------\n" + - header - } - ow.wroteCallProblemLast = false - ow.writer.Write([]byte(header)) - ow.m.Unlock() - } -} - -func renderCallHeader(label string, c *C, prefix, suffix string) string { - pc := c.method.PC() - return fmt.Sprintf("%s%s: %s: %s%s", prefix, label, niceFuncPath(pc), - niceFuncName(pc), suffix) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers.go deleted file mode 100644 index bac3387..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers.go +++ /dev/null @@ -1,458 +0,0 @@ -package check - -import ( - "fmt" - "reflect" - "regexp" -) - -// ----------------------------------------------------------------------- -// CommentInterface and Commentf helper, to attach extra information to checks. - -type comment struct { - format string - args []interface{} -} - -// Commentf returns an infomational value to use with Assert or Check calls. -// If the checker test fails, the provided arguments will be passed to -// fmt.Sprintf, and will be presented next to the logged failure. -// -// For example: -// -// c.Assert(v, Equals, 42, Commentf("Iteration #%d failed.", i)) -// -// Note that if the comment is constant, a better option is to -// simply use a normal comment right above or next to the line, as -// it will also get printed with any errors: -// -// c.Assert(l, Equals, 8192) // Ensure buffer size is correct (bug #123) -// -func Commentf(format string, args ...interface{}) CommentInterface { - return &comment{format, args} -} - -// CommentInterface must be implemented by types that attach extra -// information to failed checks. See the Commentf function for details. -type CommentInterface interface { - CheckCommentString() string -} - -func (c *comment) CheckCommentString() string { - return fmt.Sprintf(c.format, c.args...) -} - -// ----------------------------------------------------------------------- -// The Checker interface. - -// The Checker interface must be provided by checkers used with -// the Assert and Check verification methods. -type Checker interface { - Info() *CheckerInfo - Check(params []interface{}, names []string) (result bool, error string) -} - -// See the Checker interface. -type CheckerInfo struct { - Name string - Params []string -} - -func (info *CheckerInfo) Info() *CheckerInfo { - return info -} - -// ----------------------------------------------------------------------- -// Not checker logic inverter. - -// The Not checker inverts the logic of the provided checker. The -// resulting checker will succeed where the original one failed, and -// vice-versa. -// -// For example: -// -// c.Assert(a, Not(Equals), b) -// -func Not(checker Checker) Checker { - return ¬Checker{checker} -} - -type notChecker struct { - sub Checker -} - -func (checker *notChecker) Info() *CheckerInfo { - info := *checker.sub.Info() - info.Name = "Not(" + info.Name + ")" - return &info -} - -func (checker *notChecker) Check(params []interface{}, names []string) (result bool, error string) { - result, error = checker.sub.Check(params, names) - result = !result - return -} - -// ----------------------------------------------------------------------- -// IsNil checker. - -type isNilChecker struct { - *CheckerInfo -} - -// The IsNil checker tests whether the obtained value is nil. -// -// For example: -// -// c.Assert(err, IsNil) -// -var IsNil Checker = &isNilChecker{ - &CheckerInfo{Name: "IsNil", Params: []string{"value"}}, -} - -func (checker *isNilChecker) Check(params []interface{}, names []string) (result bool, error string) { - return isNil(params[0]), "" -} - -func isNil(obtained interface{}) (result bool) { - if obtained == nil { - result = true - } else { - switch v := reflect.ValueOf(obtained); v.Kind() { - case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: - return v.IsNil() - } - } - return -} - -// ----------------------------------------------------------------------- -// NotNil checker. Alias for Not(IsNil), since it's so common. - -type notNilChecker struct { - *CheckerInfo -} - -// The NotNil checker verifies that the obtained value is not nil. -// -// For example: -// -// c.Assert(iface, NotNil) -// -// This is an alias for Not(IsNil), made available since it's a -// fairly common check. -// -var NotNil Checker = ¬NilChecker{ - &CheckerInfo{Name: "NotNil", Params: []string{"value"}}, -} - -func (checker *notNilChecker) Check(params []interface{}, names []string) (result bool, error string) { - return !isNil(params[0]), "" -} - -// ----------------------------------------------------------------------- -// Equals checker. - -type equalsChecker struct { - *CheckerInfo -} - -// The Equals checker verifies that the obtained value is equal to -// the expected value, according to usual Go semantics for ==. -// -// For example: -// -// c.Assert(value, Equals, 42) -// -var Equals Checker = &equalsChecker{ - &CheckerInfo{Name: "Equals", Params: []string{"obtained", "expected"}}, -} - -func (checker *equalsChecker) Check(params []interface{}, names []string) (result bool, error string) { - defer func() { - if v := recover(); v != nil { - result = false - error = fmt.Sprint(v) - } - }() - return params[0] == params[1], "" -} - -// ----------------------------------------------------------------------- -// DeepEquals checker. - -type deepEqualsChecker struct { - *CheckerInfo -} - -// The DeepEquals checker verifies that the obtained value is deep-equal to -// the expected value. The check will work correctly even when facing -// slices, interfaces, and values of different types (which always fail -// the test). -// -// For example: -// -// c.Assert(value, DeepEquals, 42) -// c.Assert(array, DeepEquals, []string{"hi", "there"}) -// -var DeepEquals Checker = &deepEqualsChecker{ - &CheckerInfo{Name: "DeepEquals", Params: []string{"obtained", "expected"}}, -} - -func (checker *deepEqualsChecker) Check(params []interface{}, names []string) (result bool, error string) { - return reflect.DeepEqual(params[0], params[1]), "" -} - -// ----------------------------------------------------------------------- -// HasLen checker. - -type hasLenChecker struct { - *CheckerInfo -} - -// The HasLen checker verifies that the obtained value has the -// provided length. In many cases this is superior to using Equals -// in conjuction with the len function because in case the check -// fails the value itself will be printed, instead of its length, -// providing more details for figuring the problem. -// -// For example: -// -// c.Assert(list, HasLen, 5) -// -var HasLen Checker = &hasLenChecker{ - &CheckerInfo{Name: "HasLen", Params: []string{"obtained", "n"}}, -} - -func (checker *hasLenChecker) Check(params []interface{}, names []string) (result bool, error string) { - n, ok := params[1].(int) - if !ok { - return false, "n must be an int" - } - value := reflect.ValueOf(params[0]) - switch value.Kind() { - case reflect.Map, reflect.Array, reflect.Slice, reflect.Chan, reflect.String: - default: - return false, "obtained value type has no length" - } - return value.Len() == n, "" -} - -// ----------------------------------------------------------------------- -// ErrorMatches checker. - -type errorMatchesChecker struct { - *CheckerInfo -} - -// The ErrorMatches checker verifies that the error value -// is non nil and matches the regular expression provided. -// -// For example: -// -// c.Assert(err, ErrorMatches, "perm.*denied") -// -var ErrorMatches Checker = errorMatchesChecker{ - &CheckerInfo{Name: "ErrorMatches", Params: []string{"value", "regex"}}, -} - -func (checker errorMatchesChecker) Check(params []interface{}, names []string) (result bool, errStr string) { - if params[0] == nil { - return false, "Error value is nil" - } - err, ok := params[0].(error) - if !ok { - return false, "Value is not an error" - } - params[0] = err.Error() - names[0] = "error" - return matches(params[0], params[1]) -} - -// ----------------------------------------------------------------------- -// Matches checker. - -type matchesChecker struct { - *CheckerInfo -} - -// The Matches checker verifies that the string provided as the obtained -// value (or the string resulting from obtained.String()) matches the -// regular expression provided. -// -// For example: -// -// c.Assert(err, Matches, "perm.*denied") -// -var Matches Checker = &matchesChecker{ - &CheckerInfo{Name: "Matches", Params: []string{"value", "regex"}}, -} - -func (checker *matchesChecker) Check(params []interface{}, names []string) (result bool, error string) { - return matches(params[0], params[1]) -} - -func matches(value, regex interface{}) (result bool, error string) { - reStr, ok := regex.(string) - if !ok { - return false, "Regex must be a string" - } - valueStr, valueIsStr := value.(string) - if !valueIsStr { - if valueWithStr, valueHasStr := value.(fmt.Stringer); valueHasStr { - valueStr, valueIsStr = valueWithStr.String(), true - } - } - if valueIsStr { - matches, err := regexp.MatchString("^"+reStr+"$", valueStr) - if err != nil { - return false, "Can't compile regex: " + err.Error() - } - return matches, "" - } - return false, "Obtained value is not a string and has no .String()" -} - -// ----------------------------------------------------------------------- -// Panics checker. - -type panicsChecker struct { - *CheckerInfo -} - -// The Panics checker verifies that calling the provided zero-argument -// function will cause a panic which is deep-equal to the provided value. -// -// For example: -// -// c.Assert(func() { f(1, 2) }, Panics, &SomeErrorType{"BOOM"}). -// -// -var Panics Checker = &panicsChecker{ - &CheckerInfo{Name: "Panics", Params: []string{"function", "expected"}}, -} - -func (checker *panicsChecker) Check(params []interface{}, names []string) (result bool, error string) { - f := reflect.ValueOf(params[0]) - if f.Kind() != reflect.Func || f.Type().NumIn() != 0 { - return false, "Function must take zero arguments" - } - defer func() { - // If the function has not panicked, then don't do the check. - if error != "" { - return - } - params[0] = recover() - names[0] = "panic" - result = reflect.DeepEqual(params[0], params[1]) - }() - f.Call(nil) - return false, "Function has not panicked" -} - -type panicMatchesChecker struct { - *CheckerInfo -} - -// The PanicMatches checker verifies that calling the provided zero-argument -// function will cause a panic with an error value matching -// the regular expression provided. -// -// For example: -// -// c.Assert(func() { f(1, 2) }, PanicMatches, `open.*: no such file or directory`). -// -// -var PanicMatches Checker = &panicMatchesChecker{ - &CheckerInfo{Name: "PanicMatches", Params: []string{"function", "expected"}}, -} - -func (checker *panicMatchesChecker) Check(params []interface{}, names []string) (result bool, errmsg string) { - f := reflect.ValueOf(params[0]) - if f.Kind() != reflect.Func || f.Type().NumIn() != 0 { - return false, "Function must take zero arguments" - } - defer func() { - // If the function has not panicked, then don't do the check. - if errmsg != "" { - return - } - obtained := recover() - names[0] = "panic" - if e, ok := obtained.(error); ok { - params[0] = e.Error() - } else if _, ok := obtained.(string); ok { - params[0] = obtained - } else { - errmsg = "Panic value is not a string or an error" - return - } - result, errmsg = matches(params[0], params[1]) - }() - f.Call(nil) - return false, "Function has not panicked" -} - -// ----------------------------------------------------------------------- -// FitsTypeOf checker. - -type fitsTypeChecker struct { - *CheckerInfo -} - -// The FitsTypeOf checker verifies that the obtained value is -// assignable to a variable with the same type as the provided -// sample value. -// -// For example: -// -// c.Assert(value, FitsTypeOf, int64(0)) -// c.Assert(value, FitsTypeOf, os.Error(nil)) -// -var FitsTypeOf Checker = &fitsTypeChecker{ - &CheckerInfo{Name: "FitsTypeOf", Params: []string{"obtained", "sample"}}, -} - -func (checker *fitsTypeChecker) Check(params []interface{}, names []string) (result bool, error string) { - obtained := reflect.ValueOf(params[0]) - sample := reflect.ValueOf(params[1]) - if !obtained.IsValid() { - return false, "" - } - if !sample.IsValid() { - return false, "Invalid sample value" - } - return obtained.Type().AssignableTo(sample.Type()), "" -} - -// ----------------------------------------------------------------------- -// Implements checker. - -type implementsChecker struct { - *CheckerInfo -} - -// The Implements checker verifies that the obtained value -// implements the interface specified via a pointer to an interface -// variable. -// -// For example: -// -// var e os.Error -// c.Assert(err, Implements, &e) -// -var Implements Checker = &implementsChecker{ - &CheckerInfo{Name: "Implements", Params: []string{"obtained", "ifaceptr"}}, -} - -func (checker *implementsChecker) Check(params []interface{}, names []string) (result bool, error string) { - obtained := reflect.ValueOf(params[0]) - ifaceptr := reflect.ValueOf(params[1]) - if !obtained.IsValid() { - return false, "" - } - if !ifaceptr.IsValid() || ifaceptr.Kind() != reflect.Ptr || ifaceptr.Elem().Kind() != reflect.Interface { - return false, "ifaceptr should be a pointer to an interface variable" - } - return obtained.Type().Implements(ifaceptr.Elem().Type()), "" -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers2.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers2.go deleted file mode 100644 index c09bcdc..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/checkers2.go +++ /dev/null @@ -1,131 +0,0 @@ -// Extensions to the go-check unittest framework. -// -// NOTE: see https://github.com/go-check/check/pull/6 for reasons why these -// checkers live here. -package check - -import ( - "bytes" - "reflect" -) - -// ----------------------------------------------------------------------- -// IsTrue / IsFalse checker. - -type isBoolValueChecker struct { - *CheckerInfo - expected bool -} - -func (checker *isBoolValueChecker) Check( - params []interface{}, - names []string) ( - result bool, - error string) { - - obtained, ok := params[0].(bool) - if !ok { - return false, "Argument to " + checker.Name + " must be bool" - } - - return obtained == checker.expected, "" -} - -// The IsTrue checker verifies that the obtained value is true. -// -// For example: -// -// c.Assert(value, IsTrue) -// -var IsTrue Checker = &isBoolValueChecker{ - &CheckerInfo{Name: "IsTrue", Params: []string{"obtained"}}, - true, -} - -// The IsFalse checker verifies that the obtained value is false. -// -// For example: -// -// c.Assert(value, IsFalse) -// -var IsFalse Checker = &isBoolValueChecker{ - &CheckerInfo{Name: "IsFalse", Params: []string{"obtained"}}, - false, -} - -// ----------------------------------------------------------------------- -// BytesEquals checker. - -type bytesEquals struct{} - -func (b *bytesEquals) Check(params []interface{}, names []string) (bool, string) { - if len(params) != 2 { - return false, "BytesEqual takes 2 bytestring arguments" - } - b1, ok1 := params[0].([]byte) - b2, ok2 := params[1].([]byte) - - if !(ok1 && ok2) { - return false, "Arguments to BytesEqual must both be bytestrings" - } - - return bytes.Equal(b1, b2), "" -} - -func (b *bytesEquals) Info() *CheckerInfo { - return &CheckerInfo{ - Name: "BytesEquals", - Params: []string{"bytes_one", "bytes_two"}, - } -} - -// BytesEquals checker compares two bytes sequence using bytes.Equal. -// -// For example: -// -// c.Assert(b, BytesEquals, []byte("bar")) -// -// Main difference between DeepEquals and BytesEquals is that BytesEquals treats -// `nil` as empty byte sequence while DeepEquals doesn't. -// -// c.Assert(nil, BytesEquals, []byte("")) // succeeds -// c.Assert(nil, DeepEquals, []byte("")) // fails -var BytesEquals = &bytesEquals{} - -// ----------------------------------------------------------------------- -// HasKey checker. - -type hasKey struct{} - -func (h *hasKey) Check(params []interface{}, names []string) (bool, string) { - if len(params) != 2 { - return false, "HasKey takes 2 arguments: a map and a key" - } - - mapValue := reflect.ValueOf(params[0]) - if mapValue.Kind() != reflect.Map { - return false, "First argument to HasKey must be a map" - } - - keyValue := reflect.ValueOf(params[1]) - if !keyValue.Type().AssignableTo(mapValue.Type().Key()) { - return false, "Second argument must be assignable to the map key type" - } - - return mapValue.MapIndex(keyValue).IsValid(), "" -} - -func (h *hasKey) Info() *CheckerInfo { - return &CheckerInfo{ - Name: "HasKey", - Params: []string{"obtained", "key"}, - } -} - -// The HasKey checker verifies that the obtained map contains the given key. -// -// For example: -// -// c.Assert(myMap, HasKey, "foo") -// -var HasKey = &hasKey{} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/compare.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/compare.go deleted file mode 100644 index 7005cba..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/compare.go +++ /dev/null @@ -1,161 +0,0 @@ -package check - -import ( - "bytes" - "fmt" - "reflect" - "time" -) - -type compareFunc func(v1 interface{}, v2 interface{}) (bool, error) - -type valueCompare struct { - Name string - - Func compareFunc - - Operator string -} - -// v1 and v2 must have the same type -// return >0 if v1 > v2 -// return 0 if v1 = v2 -// return <0 if v1 < v2 -// now we only support int, uint, float64, string and []byte comparison -func compare(v1 interface{}, v2 interface{}) (int, error) { - value1 := reflect.ValueOf(v1) - value2 := reflect.ValueOf(v2) - - switch v1.(type) { - case int, int8, int16, int32, int64: - a1 := value1.Int() - a2 := value2.Int() - if a1 > a2 { - return 1, nil - } else if a1 == a2 { - return 0, nil - } - return -1, nil - case uint, uint8, uint16, uint32, uint64: - a1 := value1.Uint() - a2 := value2.Uint() - if a1 > a2 { - return 1, nil - } else if a1 == a2 { - return 0, nil - } - return -1, nil - case float32, float64: - a1 := value1.Float() - a2 := value2.Float() - if a1 > a2 { - return 1, nil - } else if a1 == a2 { - return 0, nil - } - return -1, nil - case string: - a1 := value1.String() - a2 := value2.String() - if a1 > a2 { - return 1, nil - } else if a1 == a2 { - return 0, nil - } - return -1, nil - case []byte: - a1 := value1.Bytes() - a2 := value2.Bytes() - return bytes.Compare(a1, a2), nil - case time.Time: - a1 := v1.(time.Time) - a2 := v2.(time.Time) - if a1.After(a2) { - return 1, nil - } else if a1.Equal(a2) { - return 0, nil - } - return -1, nil - case time.Duration: - a1 := v1.(time.Duration) - a2 := v2.(time.Duration) - if a1 > a2 { - return 1, nil - } else if a1 == a2 { - return 0, nil - } - return -1, nil - default: - return 0, fmt.Errorf("type %T is not supported now", v1) - } -} - -func less(v1 interface{}, v2 interface{}) (bool, error) { - n, err := compare(v1, v2) - if err != nil { - return false, err - } - - return n < 0, nil -} - -func lessEqual(v1 interface{}, v2 interface{}) (bool, error) { - n, err := compare(v1, v2) - if err != nil { - return false, err - } - - return n <= 0, nil -} - -func greater(v1 interface{}, v2 interface{}) (bool, error) { - n, err := compare(v1, v2) - if err != nil { - return false, err - } - - return n > 0, nil -} - -func greaterEqual(v1 interface{}, v2 interface{}) (bool, error) { - n, err := compare(v1, v2) - if err != nil { - return false, err - } - - return n >= 0, nil -} - -func (v *valueCompare) Check(params []interface{}, names []string) (bool, string) { - if len(params) != 2 { - return false, fmt.Sprintf("%s needs 2 arguments", v.Name) - } - - v1 := params[0] - v2 := params[1] - v1Type := reflect.TypeOf(v1) - v2Type := reflect.TypeOf(v2) - - if v1Type.Kind() != v2Type.Kind() { - return false, fmt.Sprintf("%s needs two same type, but %s != %s", v.Name, v1Type.Kind(), v2Type.Kind()) - } - - b, err := v.Func(v1, v2) - if err != nil { - return false, fmt.Sprintf("%s check err %v", v.Name, err) - } - - return b, "" -} - -func (v *valueCompare) Info() *CheckerInfo { - return &CheckerInfo{ - Name: v.Name, - Params: []string{"compare_one", "compare_two"}, - } -} - -var Less = &valueCompare{Name: "Less", Func: less, Operator: "<"} -var LessEqual = &valueCompare{Name: "LessEqual", Func: lessEqual, Operator: "<="} -var Greater = &valueCompare{Name: "Greater", Func: greater, Operator: ">"} -var GreaterEqual = &valueCompare{Name: "GreaterEqual", Func: greaterEqual, Operator: ">="} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/helpers.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/helpers.go deleted file mode 100644 index 58a733b..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/helpers.go +++ /dev/null @@ -1,231 +0,0 @@ -package check - -import ( - "fmt" - "strings" - "time" -) - -// TestName returns the current test name in the form "SuiteName.TestName" -func (c *C) TestName() string { - return c.testName -} - -// ----------------------------------------------------------------------- -// Basic succeeding/failing logic. - -// Failed returns whether the currently running test has already failed. -func (c *C) Failed() bool { - return c.status() == failedSt -} - -// Fail marks the currently running test as failed. -// -// Something ought to have been previously logged so the developer can tell -// what went wrong. The higher level helper functions will fail the test -// and do the logging properly. -func (c *C) Fail() { - c.setStatus(failedSt) -} - -// FailNow marks the currently running test as failed and stops running it. -// Something ought to have been previously logged so the developer can tell -// what went wrong. The higher level helper functions will fail the test -// and do the logging properly. -func (c *C) FailNow() { - c.Fail() - c.stopNow() -} - -// Succeed marks the currently running test as succeeded, undoing any -// previous failures. -func (c *C) Succeed() { - c.setStatus(succeededSt) -} - -// SucceedNow marks the currently running test as succeeded, undoing any -// previous failures, and stops running the test. -func (c *C) SucceedNow() { - c.Succeed() - c.stopNow() -} - -// ExpectFailure informs that the running test is knowingly broken for -// the provided reason. If the test does not fail, an error will be reported -// to raise attention to this fact. This method is useful to temporarily -// disable tests which cover well known problems until a better time to -// fix the problem is found, without forgetting about the fact that a -// failure still exists. -func (c *C) ExpectFailure(reason string) { - if reason == "" { - panic("Missing reason why the test is expected to fail") - } - c.mustFail = true - c.reason = reason -} - -// Skip skips the running test for the provided reason. If run from within -// SetUpTest, the individual test being set up will be skipped, and if run -// from within SetUpSuite, the whole suite is skipped. -func (c *C) Skip(reason string) { - if reason == "" { - panic("Missing reason why the test is being skipped") - } - c.reason = reason - c.setStatus(skippedSt) - c.stopNow() -} - -// ----------------------------------------------------------------------- -// Basic logging. - -// GetTestLog returns the current test error output. -func (c *C) GetTestLog() string { - return c.logb.String() -} - -// Log logs some information into the test error output. -// The provided arguments are assembled together into a string with fmt.Sprint. -func (c *C) Log(args ...interface{}) { - c.log(args...) -} - -// Log logs some information into the test error output. -// The provided arguments are assembled together into a string with fmt.Sprintf. -func (c *C) Logf(format string, args ...interface{}) { - c.logf(format, args...) -} - -// Output enables *C to be used as a logger in functions that require only -// the minimum interface of *log.Logger. -func (c *C) Output(calldepth int, s string) error { - d := time.Now().Sub(c.startTime) - msec := d / time.Millisecond - sec := d / time.Second - min := d / time.Minute - - c.Logf("[LOG] %d:%02d.%03d %s", min, sec%60, msec%1000, s) - return nil -} - -// Error logs an error into the test error output and marks the test as failed. -// The provided arguments are assembled together into a string with fmt.Sprint. -func (c *C) Error(args ...interface{}) { - c.logCaller(1) - c.logString(fmt.Sprint("Error: ", fmt.Sprint(args...))) - c.logNewLine() - c.Fail() -} - -// Errorf logs an error into the test error output and marks the test as failed. -// The provided arguments are assembled together into a string with fmt.Sprintf. -func (c *C) Errorf(format string, args ...interface{}) { - c.logCaller(1) - c.logString(fmt.Sprintf("Error: "+format, args...)) - c.logNewLine() - c.Fail() -} - -// Fatal logs an error into the test error output, marks the test as failed, and -// stops the test execution. The provided arguments are assembled together into -// a string with fmt.Sprint. -func (c *C) Fatal(args ...interface{}) { - c.logCaller(1) - c.logString(fmt.Sprint("Error: ", fmt.Sprint(args...))) - c.logNewLine() - c.FailNow() -} - -// Fatlaf logs an error into the test error output, marks the test as failed, and -// stops the test execution. The provided arguments are assembled together into -// a string with fmt.Sprintf. -func (c *C) Fatalf(format string, args ...interface{}) { - c.logCaller(1) - c.logString(fmt.Sprint("Error: ", fmt.Sprintf(format, args...))) - c.logNewLine() - c.FailNow() -} - -// ----------------------------------------------------------------------- -// Generic checks and assertions based on checkers. - -// Check verifies if the first value matches the expected value according -// to the provided checker. If they do not match, an error is logged, the -// test is marked as failed, and the test execution continues. -// -// Some checkers may not need the expected argument (e.g. IsNil). -// -// Extra arguments provided to the function are logged next to the reported -// problem when the matching fails. -func (c *C) Check(obtained interface{}, checker Checker, args ...interface{}) bool { - return c.internalCheck("Check", obtained, checker, args...) -} - -// Assert ensures that the first value matches the expected value according -// to the provided checker. If they do not match, an error is logged, the -// test is marked as failed, and the test execution stops. -// -// Some checkers may not need the expected argument (e.g. IsNil). -// -// Extra arguments provided to the function are logged next to the reported -// problem when the matching fails. -func (c *C) Assert(obtained interface{}, checker Checker, args ...interface{}) { - if !c.internalCheck("Assert", obtained, checker, args...) { - c.stopNow() - } -} - -func (c *C) internalCheck(funcName string, obtained interface{}, checker Checker, args ...interface{}) bool { - if checker == nil { - c.logCaller(2) - c.logString(fmt.Sprintf("%s(obtained, nil!?, ...):", funcName)) - c.logString("Oops.. you've provided a nil checker!") - c.logNewLine() - c.Fail() - return false - } - - // If the last argument is a bug info, extract it out. - var comment CommentInterface - if len(args) > 0 { - if c, ok := args[len(args)-1].(CommentInterface); ok { - comment = c - args = args[:len(args)-1] - } - } - - params := append([]interface{}{obtained}, args...) - info := checker.Info() - - if len(params) != len(info.Params) { - names := append([]string{info.Params[0], info.Name}, info.Params[1:]...) - c.logCaller(2) - c.logString(fmt.Sprintf("%s(%s):", funcName, strings.Join(names, ", "))) - c.logString(fmt.Sprintf("Wrong number of parameters for %s: want %d, got %d", info.Name, len(names), len(params)+1)) - c.logNewLine() - c.Fail() - return false - } - - // Copy since it may be mutated by Check. - names := append([]string{}, info.Params...) - - // Do the actual check. - result, error := checker.Check(params, names) - if !result || error != "" { - c.logCaller(2) - for i := 0; i != len(params); i++ { - c.logValue(names[i], params[i]) - } - if comment != nil { - c.logString(comment.CheckCommentString()) - } - if error != "" { - c.logString(error) - } - c.logNewLine() - c.Fail() - return false - } - return true -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/printer.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/printer.go deleted file mode 100644 index e0f7557..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/printer.go +++ /dev/null @@ -1,168 +0,0 @@ -package check - -import ( - "bytes" - "go/ast" - "go/parser" - "go/printer" - "go/token" - "os" -) - -func indent(s, with string) (r string) { - eol := true - for i := 0; i != len(s); i++ { - c := s[i] - switch { - case eol && c == '\n' || c == '\r': - case c == '\n' || c == '\r': - eol = true - case eol: - eol = false - s = s[:i] + with + s[i:] - i += len(with) - } - } - return s -} - -func printLine(filename string, line int) (string, error) { - fset := token.NewFileSet() - file, err := os.Open(filename) - if err != nil { - return "", err - } - fnode, err := parser.ParseFile(fset, filename, file, parser.ParseComments) - if err != nil { - return "", err - } - config := &printer.Config{Mode: printer.UseSpaces, Tabwidth: 4} - lp := &linePrinter{fset: fset, fnode: fnode, line: line, config: config} - ast.Walk(lp, fnode) - result := lp.output.Bytes() - // Comments leave \n at the end. - n := len(result) - for n > 0 && result[n-1] == '\n' { - n-- - } - return string(result[:n]), nil -} - -type linePrinter struct { - config *printer.Config - fset *token.FileSet - fnode *ast.File - line int - output bytes.Buffer - stmt ast.Stmt -} - -func (lp *linePrinter) emit() bool { - if lp.stmt != nil { - lp.trim(lp.stmt) - lp.printWithComments(lp.stmt) - lp.stmt = nil - return true - } - return false -} - -func (lp *linePrinter) printWithComments(n ast.Node) { - nfirst := lp.fset.Position(n.Pos()).Line - nlast := lp.fset.Position(n.End()).Line - for _, g := range lp.fnode.Comments { - cfirst := lp.fset.Position(g.Pos()).Line - clast := lp.fset.Position(g.End()).Line - if clast == nfirst-1 && lp.fset.Position(n.Pos()).Column == lp.fset.Position(g.Pos()).Column { - for _, c := range g.List { - lp.output.WriteString(c.Text) - lp.output.WriteByte('\n') - } - } - if cfirst >= nfirst && cfirst <= nlast && n.End() <= g.List[0].Slash { - // The printer will not include the comment if it starts past - // the node itself. Trick it into printing by overlapping the - // slash with the end of the statement. - g.List[0].Slash = n.End() - 1 - } - } - node := &printer.CommentedNode{n, lp.fnode.Comments} - lp.config.Fprint(&lp.output, lp.fset, node) -} - -func (lp *linePrinter) Visit(n ast.Node) (w ast.Visitor) { - if n == nil { - if lp.output.Len() == 0 { - lp.emit() - } - return nil - } - first := lp.fset.Position(n.Pos()).Line - last := lp.fset.Position(n.End()).Line - if first <= lp.line && last >= lp.line { - // Print the innermost statement containing the line. - if stmt, ok := n.(ast.Stmt); ok { - if _, ok := n.(*ast.BlockStmt); !ok { - lp.stmt = stmt - } - } - if first == lp.line && lp.emit() { - return nil - } - return lp - } - return nil -} - -func (lp *linePrinter) trim(n ast.Node) bool { - stmt, ok := n.(ast.Stmt) - if !ok { - return true - } - line := lp.fset.Position(n.Pos()).Line - if line != lp.line { - return false - } - switch stmt := stmt.(type) { - case *ast.IfStmt: - stmt.Body = lp.trimBlock(stmt.Body) - case *ast.SwitchStmt: - stmt.Body = lp.trimBlock(stmt.Body) - case *ast.TypeSwitchStmt: - stmt.Body = lp.trimBlock(stmt.Body) - case *ast.CaseClause: - stmt.Body = lp.trimList(stmt.Body) - case *ast.CommClause: - stmt.Body = lp.trimList(stmt.Body) - case *ast.BlockStmt: - stmt.List = lp.trimList(stmt.List) - } - return true -} - -func (lp *linePrinter) trimBlock(stmt *ast.BlockStmt) *ast.BlockStmt { - if !lp.trim(stmt) { - return lp.emptyBlock(stmt) - } - stmt.Rbrace = stmt.Lbrace - return stmt -} - -func (lp *linePrinter) trimList(stmts []ast.Stmt) []ast.Stmt { - for i := 0; i != len(stmts); i++ { - if !lp.trim(stmts[i]) { - stmts[i] = lp.emptyStmt(stmts[i]) - break - } - } - return stmts -} - -func (lp *linePrinter) emptyStmt(n ast.Node) *ast.ExprStmt { - return &ast.ExprStmt{&ast.Ellipsis{n.Pos(), nil}} -} - -func (lp *linePrinter) emptyBlock(n ast.Node) *ast.BlockStmt { - p := n.Pos() - return &ast.BlockStmt{p, []ast.Stmt{lp.emptyStmt(n)}, p} -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/run.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/run.go deleted file mode 100644 index da8fd79..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/pingcap/check/run.go +++ /dev/null @@ -1,175 +0,0 @@ -package check - -import ( - "bufio" - "flag" - "fmt" - "os" - "testing" - "time" -) - -// ----------------------------------------------------------------------- -// Test suite registry. - -var allSuites []interface{} - -// Suite registers the given value as a test suite to be run. Any methods -// starting with the Test prefix in the given value will be considered as -// a test method. -func Suite(suite interface{}) interface{} { - allSuites = append(allSuites, suite) - return suite -} - -// ----------------------------------------------------------------------- -// Public running interface. - -var ( - oldFilterFlag = flag.String("gocheck.f", "", "Regular expression selecting which tests and/or suites to run") - oldVerboseFlag = flag.Bool("gocheck.v", false, "Verbose mode") - oldStreamFlag = flag.Bool("gocheck.vv", false, "Super verbose mode (disables output caching)") - oldBenchFlag = flag.Bool("gocheck.b", false, "Run benchmarks") - oldBenchTime = flag.Duration("gocheck.btime", 1*time.Second, "approximate run time for each benchmark") - oldListFlag = flag.Bool("gocheck.list", false, "List the names of all tests that will be run") - oldWorkFlag = flag.Bool("gocheck.work", false, "Display and do not remove the test working directory") - - newFilterFlag = flag.String("check.f", "", "Regular expression selecting which tests and/or suites to run") - newVerboseFlag = flag.Bool("check.v", false, "Verbose mode") - newStreamFlag = flag.Bool("check.vv", false, "Super verbose mode (disables output caching)") - newBenchFlag = flag.Bool("check.b", false, "Run benchmarks") - newBenchTime = flag.Duration("check.btime", 1*time.Second, "approximate run time for each benchmark") - newBenchMem = flag.Bool("check.bmem", false, "Report memory benchmarks") - newListFlag = flag.Bool("check.list", false, "List the names of all tests that will be run") - newWorkFlag = flag.Bool("check.work", false, "Display and do not remove the test working directory") -) - -// TestingT runs all test suites registered with the Suite function, -// printing results to stdout, and reporting any failures back to -// the "testing" package. -func TestingT(testingT *testing.T) { - benchTime := *newBenchTime - if benchTime == 1*time.Second { - benchTime = *oldBenchTime - } - conf := &RunConf{ - Filter: *oldFilterFlag + *newFilterFlag, - Verbose: *oldVerboseFlag || *newVerboseFlag, - Stream: *oldStreamFlag || *newStreamFlag, - Benchmark: *oldBenchFlag || *newBenchFlag, - BenchmarkTime: benchTime, - BenchmarkMem: *newBenchMem, - KeepWorkDir: *oldWorkFlag || *newWorkFlag, - } - if *oldListFlag || *newListFlag { - w := bufio.NewWriter(os.Stdout) - for _, name := range ListAll(conf) { - fmt.Fprintln(w, name) - } - w.Flush() - return - } - result := RunAll(conf) - println(result.String()) - if !result.Passed() { - testingT.Fail() - } -} - -// RunAll runs all test suites registered with the Suite function, using the -// provided run configuration. -func RunAll(runConf *RunConf) *Result { - result := Result{} - for _, suite := range allSuites { - result.Add(Run(suite, runConf)) - } - return &result -} - -// Run runs the provided test suite using the provided run configuration. -func Run(suite interface{}, runConf *RunConf) *Result { - runner := newSuiteRunner(suite, runConf) - return runner.run() -} - -// ListAll returns the names of all the test functions registered with the -// Suite function that will be run with the provided run configuration. -func ListAll(runConf *RunConf) []string { - var names []string - for _, suite := range allSuites { - names = append(names, List(suite, runConf)...) - } - return names -} - -// List returns the names of the test functions in the given -// suite that will be run with the provided run configuration. -func List(suite interface{}, runConf *RunConf) []string { - var names []string - runner := newSuiteRunner(suite, runConf) - for _, t := range runner.tests { - names = append(names, t.String()) - } - return names -} - -// ----------------------------------------------------------------------- -// Result methods. - -func (r *Result) Add(other *Result) { - r.Succeeded += other.Succeeded - r.Skipped += other.Skipped - r.Failed += other.Failed - r.Panicked += other.Panicked - r.FixturePanicked += other.FixturePanicked - r.ExpectedFailures += other.ExpectedFailures - r.Missed += other.Missed - if r.WorkDir != "" && other.WorkDir != "" { - r.WorkDir += ":" + other.WorkDir - } else if other.WorkDir != "" { - r.WorkDir = other.WorkDir - } -} - -func (r *Result) Passed() bool { - return (r.Failed == 0 && r.Panicked == 0 && - r.FixturePanicked == 0 && r.Missed == 0 && - r.RunError == nil) -} - -func (r *Result) String() string { - if r.RunError != nil { - return "ERROR: " + r.RunError.Error() - } - - var value string - if r.Failed == 0 && r.Panicked == 0 && r.FixturePanicked == 0 && - r.Missed == 0 { - value = "OK: " - } else { - value = "OOPS: " - } - value += fmt.Sprintf("%d passed", r.Succeeded) - if r.Skipped != 0 { - value += fmt.Sprintf(", %d skipped", r.Skipped) - } - if r.ExpectedFailures != 0 { - value += fmt.Sprintf(", %d expected failures", r.ExpectedFailures) - } - if r.Failed != 0 { - value += fmt.Sprintf(", %d FAILED", r.Failed) - } - if r.Panicked != 0 { - value += fmt.Sprintf(", %d PANICKED", r.Panicked) - } - if r.FixturePanicked != 0 { - value += fmt.Sprintf(", %d FIXTURE-PANICKED", r.FixturePanicked) - } - if r.Missed != 0 { - value += fmt.Sprintf(", %d MISSED", r.Missed) - } - if r.WorkDir != "" { - value += "\nWORK=" + r.WorkDir - } - return value -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/LICENSE deleted file mode 100644 index 488357b..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (C) 2013-2016 by Maxim Bublis - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/uuid.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/uuid.go deleted file mode 100644 index 9c7fbaa..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/satori/go.uuid/uuid.go +++ /dev/null @@ -1,488 +0,0 @@ -// Copyright (C) 2013-2015 by Maxim Bublis -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// Package uuid provides implementation of Universally Unique Identifier (UUID). -// Supported versions are 1, 3, 4 and 5 (as specified in RFC 4122) and -// version 2 (as specified in DCE 1.1). -package uuid - -import ( - "bytes" - "crypto/md5" - "crypto/rand" - "crypto/sha1" - "database/sql/driver" - "encoding/binary" - "encoding/hex" - "fmt" - "hash" - "net" - "os" - "sync" - "time" -) - -// UUID layout variants. -const ( - VariantNCS = iota - VariantRFC4122 - VariantMicrosoft - VariantFuture -) - -// UUID DCE domains. -const ( - DomainPerson = iota - DomainGroup - DomainOrg -) - -// Difference in 100-nanosecond intervals between -// UUID epoch (October 15, 1582) and Unix epoch (January 1, 1970). -const epochStart = 122192928000000000 - -// Used in string method conversion -const dash byte = '-' - -// UUID v1/v2 storage. -var ( - storageMutex sync.Mutex - storageOnce sync.Once - epochFunc = unixTimeFunc - clockSequence uint16 - lastTime uint64 - hardwareAddr [6]byte - posixUID = uint32(os.Getuid()) - posixGID = uint32(os.Getgid()) -) - -// String parse helpers. -var ( - urnPrefix = []byte("urn:uuid:") - byteGroups = []int{8, 4, 4, 4, 12} -) - -func initClockSequence() { - buf := make([]byte, 2) - safeRandom(buf) - clockSequence = binary.BigEndian.Uint16(buf) -} - -func initHardwareAddr() { - interfaces, err := net.Interfaces() - if err == nil { - for _, iface := range interfaces { - if len(iface.HardwareAddr) >= 6 { - copy(hardwareAddr[:], iface.HardwareAddr) - return - } - } - } - - // Initialize hardwareAddr randomly in case - // of real network interfaces absence - safeRandom(hardwareAddr[:]) - - // Set multicast bit as recommended in RFC 4122 - hardwareAddr[0] |= 0x01 -} - -func initStorage() { - initClockSequence() - initHardwareAddr() -} - -func safeRandom(dest []byte) { - if _, err := rand.Read(dest); err != nil { - panic(err) - } -} - -// Returns difference in 100-nanosecond intervals between -// UUID epoch (October 15, 1582) and current time. -// This is default epoch calculation function. -func unixTimeFunc() uint64 { - return epochStart + uint64(time.Now().UnixNano()/100) -} - -// UUID representation compliant with specification -// described in RFC 4122. -type UUID [16]byte - -// NullUUID can be used with the standard sql package to represent a -// UUID value that can be NULL in the database -type NullUUID struct { - UUID UUID - Valid bool -} - -// The nil UUID is special form of UUID that is specified to have all -// 128 bits set to zero. -var Nil = UUID{} - -// Predefined namespace UUIDs. -var ( - NamespaceDNS, _ = FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") - NamespaceURL, _ = FromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8") - NamespaceOID, _ = FromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8") - NamespaceX500, _ = FromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8") -) - -// And returns result of binary AND of two UUIDs. -func And(u1 UUID, u2 UUID) UUID { - u := UUID{} - for i := 0; i < 16; i++ { - u[i] = u1[i] & u2[i] - } - return u -} - -// Or returns result of binary OR of two UUIDs. -func Or(u1 UUID, u2 UUID) UUID { - u := UUID{} - for i := 0; i < 16; i++ { - u[i] = u1[i] | u2[i] - } - return u -} - -// Equal returns true if u1 and u2 equals, otherwise returns false. -func Equal(u1 UUID, u2 UUID) bool { - return bytes.Equal(u1[:], u2[:]) -} - -// Version returns algorithm version used to generate UUID. -func (u UUID) Version() uint { - return uint(u[6] >> 4) -} - -// Variant returns UUID layout variant. -func (u UUID) Variant() uint { - switch { - case (u[8] & 0x80) == 0x00: - return VariantNCS - case (u[8]&0xc0)|0x80 == 0x80: - return VariantRFC4122 - case (u[8]&0xe0)|0xc0 == 0xc0: - return VariantMicrosoft - } - return VariantFuture -} - -// Bytes returns bytes slice representation of UUID. -func (u UUID) Bytes() []byte { - return u[:] -} - -// Returns canonical string representation of UUID: -// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. -func (u UUID) String() string { - buf := make([]byte, 36) - - hex.Encode(buf[0:8], u[0:4]) - buf[8] = dash - hex.Encode(buf[9:13], u[4:6]) - buf[13] = dash - hex.Encode(buf[14:18], u[6:8]) - buf[18] = dash - hex.Encode(buf[19:23], u[8:10]) - buf[23] = dash - hex.Encode(buf[24:], u[10:]) - - return string(buf) -} - -// SetVersion sets version bits. -func (u *UUID) SetVersion(v byte) { - u[6] = (u[6] & 0x0f) | (v << 4) -} - -// SetVariant sets variant bits as described in RFC 4122. -func (u *UUID) SetVariant() { - u[8] = (u[8] & 0xbf) | 0x80 -} - -// MarshalText implements the encoding.TextMarshaler interface. -// The encoding is the same as returned by String. -func (u UUID) MarshalText() (text []byte, err error) { - text = []byte(u.String()) - return -} - -// UnmarshalText implements the encoding.TextUnmarshaler interface. -// Following formats are supported: -// "6ba7b810-9dad-11d1-80b4-00c04fd430c8", -// "{6ba7b810-9dad-11d1-80b4-00c04fd430c8}", -// "urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8" -func (u *UUID) UnmarshalText(text []byte) (err error) { - if len(text) < 32 { - err = fmt.Errorf("uuid: UUID string too short: %s", text) - return - } - - t := text[:] - braced := false - - if bytes.Equal(t[:9], urnPrefix) { - t = t[9:] - } else if t[0] == '{' { - braced = true - t = t[1:] - } - - b := u[:] - - for i, byteGroup := range byteGroups { - if i > 0 && t[0] == '-' { - t = t[1:] - } else if i > 0 && t[0] != '-' { - err = fmt.Errorf("uuid: invalid string format") - return - } - - if i == 2 { - if !bytes.Contains([]byte("012345"), []byte{t[0]}) { - err = fmt.Errorf("uuid: invalid version number: %s", t[0]) - return - } - } - - if len(t) < byteGroup { - err = fmt.Errorf("uuid: UUID string too short: %s", text) - return - } - - if i == 4 && len(t) > byteGroup && - ((braced && t[byteGroup] != '}') || len(t[byteGroup:]) > 1 || !braced) { - err = fmt.Errorf("uuid: UUID string too long: %s", t) - return - } - - _, err = hex.Decode(b[:byteGroup/2], t[:byteGroup]) - - if err != nil { - return - } - - t = t[byteGroup:] - b = b[byteGroup/2:] - } - - return -} - -// MarshalBinary implements the encoding.BinaryMarshaler interface. -func (u UUID) MarshalBinary() (data []byte, err error) { - data = u.Bytes() - return -} - -// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. -// It will return error if the slice isn't 16 bytes long. -func (u *UUID) UnmarshalBinary(data []byte) (err error) { - if len(data) != 16 { - err = fmt.Errorf("uuid: UUID must be exactly 16 bytes long, got %d bytes", len(data)) - return - } - copy(u[:], data) - - return -} - -// Value implements the driver.Valuer interface. -func (u UUID) Value() (driver.Value, error) { - return u.String(), nil -} - -// Scan implements the sql.Scanner interface. -// A 16-byte slice is handled by UnmarshalBinary, while -// a longer byte slice or a string is handled by UnmarshalText. -func (u *UUID) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - if len(src) == 16 { - return u.UnmarshalBinary(src) - } - return u.UnmarshalText(src) - - case string: - return u.UnmarshalText([]byte(src)) - } - - return fmt.Errorf("uuid: cannot convert %T to UUID", src) -} - -// Value implements the driver.Valuer interface. -func (u NullUUID) Value() (driver.Value, error) { - if !u.Valid { - return nil, nil - } - // Delegate to UUID Value function - return u.UUID.Value() -} - -// Scan implements the sql.Scanner interface. -func (u *NullUUID) Scan(src interface{}) error { - if src == nil { - u.UUID, u.Valid = Nil, false - return nil - } - - // Delegate to UUID Scan function - u.Valid = true - return u.UUID.Scan(src) -} - -// FromBytes returns UUID converted from raw byte slice input. -// It will return error if the slice isn't 16 bytes long. -func FromBytes(input []byte) (u UUID, err error) { - err = u.UnmarshalBinary(input) - return -} - -// FromBytesOrNil returns UUID converted from raw byte slice input. -// Same behavior as FromBytes, but returns a Nil UUID on error. -func FromBytesOrNil(input []byte) UUID { - uuid, err := FromBytes(input) - if err != nil { - return Nil - } - return uuid -} - -// FromString returns UUID parsed from string input. -// Input is expected in a form accepted by UnmarshalText. -func FromString(input string) (u UUID, err error) { - err = u.UnmarshalText([]byte(input)) - return -} - -// FromStringOrNil returns UUID parsed from string input. -// Same behavior as FromString, but returns a Nil UUID on error. -func FromStringOrNil(input string) UUID { - uuid, err := FromString(input) - if err != nil { - return Nil - } - return uuid -} - -// Returns UUID v1/v2 storage state. -// Returns epoch timestamp, clock sequence, and hardware address. -func getStorage() (uint64, uint16, []byte) { - storageOnce.Do(initStorage) - - storageMutex.Lock() - defer storageMutex.Unlock() - - timeNow := epochFunc() - // Clock changed backwards since last UUID generation. - // Should increase clock sequence. - if timeNow <= lastTime { - clockSequence++ - } - lastTime = timeNow - - return timeNow, clockSequence, hardwareAddr[:] -} - -// NewV1 returns UUID based on current timestamp and MAC address. -func NewV1() UUID { - u := UUID{} - - timeNow, clockSeq, hardwareAddr := getStorage() - - binary.BigEndian.PutUint32(u[0:], uint32(timeNow)) - binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32)) - binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48)) - binary.BigEndian.PutUint16(u[8:], clockSeq) - - copy(u[10:], hardwareAddr) - - u.SetVersion(1) - u.SetVariant() - - return u -} - -// NewV2 returns DCE Security UUID based on POSIX UID/GID. -func NewV2(domain byte) UUID { - u := UUID{} - - timeNow, clockSeq, hardwareAddr := getStorage() - - switch domain { - case DomainPerson: - binary.BigEndian.PutUint32(u[0:], posixUID) - case DomainGroup: - binary.BigEndian.PutUint32(u[0:], posixGID) - } - - binary.BigEndian.PutUint16(u[4:], uint16(timeNow>>32)) - binary.BigEndian.PutUint16(u[6:], uint16(timeNow>>48)) - binary.BigEndian.PutUint16(u[8:], clockSeq) - u[9] = domain - - copy(u[10:], hardwareAddr) - - u.SetVersion(2) - u.SetVariant() - - return u -} - -// NewV3 returns UUID based on MD5 hash of namespace UUID and name. -func NewV3(ns UUID, name string) UUID { - u := newFromHash(md5.New(), ns, name) - u.SetVersion(3) - u.SetVariant() - - return u -} - -// NewV4 returns random generated UUID. -func NewV4() UUID { - u := UUID{} - safeRandom(u[:]) - u.SetVersion(4) - u.SetVariant() - - return u -} - -// NewV5 returns UUID based on SHA-1 hash of namespace UUID and name. -func NewV5(ns UUID, name string) UUID { - u := newFromHash(sha1.New(), ns, name) - u.SetVersion(5) - u.SetVariant() - - return u -} - -// Returns UUID based on hashing of namespace UUID and name. -func newFromHash(h hash.Hash, ns UUID, name string) UUID { - u := UUID{} - h.Write(ns[:]) - h.Write([]byte(name)) - copy(u[:], h.Sum(nil)) - - return u -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/LICENSE deleted file mode 100644 index 80511a0..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 siddontang - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/hack/hack.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/hack/hack.go deleted file mode 100644 index 74ee83c..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/hack/hack.go +++ /dev/null @@ -1,27 +0,0 @@ -package hack - -import ( - "reflect" - "unsafe" -) - -// no copy to change slice to string -// use your own risk -func String(b []byte) (s string) { - pbytes := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - pstring := (*reflect.StringHeader)(unsafe.Pointer(&s)) - pstring.Data = pbytes.Data - pstring.Len = pbytes.Len - return -} - -// no copy to change string to slice -// use your own risk -func Slice(s string) (b []byte) { - pbytes := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - pstring := (*reflect.StringHeader)(unsafe.Pointer(&s)) - pbytes.Data = pstring.Data - pbytes.Len = pstring.Len - pbytes.Cap = pstring.Len - return -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/ioutil.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/ioutil.go deleted file mode 100644 index c99c987..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/ioutil.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ioutil2 - -import ( - "io" - "io/ioutil" - "os" - "path" -) - -// Write file to temp and atomically move when everything else succeeds. -func WriteFileAtomic(filename string, data []byte, perm os.FileMode) error { - dir, name := path.Split(filename) - f, err := ioutil.TempFile(dir, name) - if err != nil { - return err - } - n, err := f.Write(data) - f.Close() - if err == nil && n < len(data) { - err = io.ErrShortWrite - } else { - err = os.Chmod(f.Name(), perm) - } - if err != nil { - os.Remove(f.Name()) - return err - } - return os.Rename(f.Name(), filename) -} - -// Check file exists or not -func FileExists(name string) bool { - _, err := os.Stat(name) - return !os.IsNotExist(err) -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/sectionwriter.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/sectionwriter.go deleted file mode 100644 index c02ab0d..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/ioutil2/sectionwriter.go +++ /dev/null @@ -1,69 +0,0 @@ -package ioutil2 - -import ( - "errors" - "io" -) - -var ErrExceedLimit = errors.New("write exceed limit") - -func NewSectionWriter(w io.WriterAt, off int64, n int64) *SectionWriter { - return &SectionWriter{w, off, off, off + n} -} - -type SectionWriter struct { - w io.WriterAt - base int64 - off int64 - limit int64 -} - -func (s *SectionWriter) Write(p []byte) (n int, err error) { - if s.off >= s.limit { - return 0, ErrExceedLimit - } - - if max := s.limit - s.off; int64(len(p)) > max { - return 0, ErrExceedLimit - } - - n, err = s.w.WriteAt(p, s.off) - s.off += int64(n) - return -} - -var errWhence = errors.New("Seek: invalid whence") -var errOffset = errors.New("Seek: invalid offset") - -func (s *SectionWriter) Seek(offset int64, whence int) (int64, error) { - switch whence { - default: - return 0, errWhence - case 0: - offset += s.base - case 1: - offset += s.off - case 2: - offset += s.limit - } - if offset < s.base { - return 0, errOffset - } - s.off = offset - return offset - s.base, nil -} - -func (s *SectionWriter) WriteAt(p []byte, off int64) (n int, err error) { - if off < 0 || off >= s.limit-s.base { - return 0, errOffset - } - off += s.base - if max := s.limit - off; int64(len(p)) > max { - return 0, ErrExceedLimit - } - - return s.w.WriteAt(p, off) -} - -// Size returns the size of the section in bytes. -func (s *SectionWriter) Size() int64 { return s.limit - s.base } diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/atomic.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/atomic.go deleted file mode 100644 index 424a974..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/atomic.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2013, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync2 - -import ( - "sync" - "sync/atomic" - "time" -) - -type AtomicInt32 int32 - -func (i *AtomicInt32) Add(n int32) int32 { - return atomic.AddInt32((*int32)(i), n) -} - -func (i *AtomicInt32) Set(n int32) { - atomic.StoreInt32((*int32)(i), n) -} - -func (i *AtomicInt32) Get() int32 { - return atomic.LoadInt32((*int32)(i)) -} - -func (i *AtomicInt32) CompareAndSwap(oldval, newval int32) (swapped bool) { - return atomic.CompareAndSwapInt32((*int32)(i), oldval, newval) -} - -type AtomicUint32 uint32 - -func (i *AtomicUint32) Add(n uint32) uint32 { - return atomic.AddUint32((*uint32)(i), n) -} - -func (i *AtomicUint32) Set(n uint32) { - atomic.StoreUint32((*uint32)(i), n) -} - -func (i *AtomicUint32) Get() uint32 { - return atomic.LoadUint32((*uint32)(i)) -} - -func (i *AtomicUint32) CompareAndSwap(oldval, newval uint32) (swapped bool) { - return atomic.CompareAndSwapUint32((*uint32)(i), oldval, newval) -} - -type AtomicInt64 int64 - -func (i *AtomicInt64) Add(n int64) int64 { - return atomic.AddInt64((*int64)(i), n) -} - -func (i *AtomicInt64) Set(n int64) { - atomic.StoreInt64((*int64)(i), n) -} - -func (i *AtomicInt64) Get() int64 { - return atomic.LoadInt64((*int64)(i)) -} - -func (i *AtomicInt64) CompareAndSwap(oldval, newval int64) (swapped bool) { - return atomic.CompareAndSwapInt64((*int64)(i), oldval, newval) -} - -type AtomicUint64 uint64 - -func (i *AtomicUint64) Add(n uint64) uint64 { - return atomic.AddUint64((*uint64)(i), n) -} - -func (i *AtomicUint64) Set(n uint64) { - atomic.StoreUint64((*uint64)(i), n) -} - -func (i *AtomicUint64) Get() uint64 { - return atomic.LoadUint64((*uint64)(i)) -} - -func (i *AtomicUint64) CompareAndSwap(oldval, newval uint64) (swapped bool) { - return atomic.CompareAndSwapUint64((*uint64)(i), oldval, newval) -} - -type AtomicDuration int64 - -func (d *AtomicDuration) Add(duration time.Duration) time.Duration { - return time.Duration(atomic.AddInt64((*int64)(d), int64(duration))) -} - -func (d *AtomicDuration) Set(duration time.Duration) { - atomic.StoreInt64((*int64)(d), int64(duration)) -} - -func (d *AtomicDuration) Get() time.Duration { - return time.Duration(atomic.LoadInt64((*int64)(d))) -} - -func (d *AtomicDuration) CompareAndSwap(oldval, newval time.Duration) (swapped bool) { - return atomic.CompareAndSwapInt64((*int64)(d), int64(oldval), int64(newval)) -} - -// AtomicString gives you atomic-style APIs for string, but -// it's only a convenience wrapper that uses a mutex. So, it's -// not as efficient as the rest of the atomic types. -type AtomicString struct { - mu sync.Mutex - str string -} - -func (s *AtomicString) Set(str string) { - s.mu.Lock() - s.str = str - s.mu.Unlock() -} - -func (s *AtomicString) Get() string { - s.mu.Lock() - str := s.str - s.mu.Unlock() - return str -} - -func (s *AtomicString) CompareAndSwap(oldval, newval string) (swqpped bool) { - s.mu.Lock() - defer s.mu.Unlock() - if s.str == oldval { - s.str = newval - return true - } - return false -} - -type AtomicBool int32 - -func (b *AtomicBool) Set(v bool) { - if v { - atomic.StoreInt32((*int32)(b), 1) - } else { - atomic.StoreInt32((*int32)(b), 0) - } -} - -func (b *AtomicBool) Get() bool { - return atomic.LoadInt32((*int32)(b)) == 1 -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/semaphore.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/semaphore.go deleted file mode 100644 index d310da7..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/github.com/siddontang/go/sync2/semaphore.go +++ /dev/null @@ -1,65 +0,0 @@ -package sync2 - -import ( - "sync" - "sync/atomic" - "time" -) - -func NewSemaphore(initialCount int) *Semaphore { - res := &Semaphore{ - counter: int64(initialCount), - } - res.cond.L = &res.lock - return res -} - -type Semaphore struct { - lock sync.Mutex - cond sync.Cond - counter int64 -} - -func (s *Semaphore) Release() { - s.lock.Lock() - s.counter += 1 - if s.counter >= 0 { - s.cond.Signal() - } - s.lock.Unlock() -} - -func (s *Semaphore) Acquire() { - s.lock.Lock() - for s.counter < 1 { - s.cond.Wait() - } - s.counter -= 1 - s.lock.Unlock() -} - -func (s *Semaphore) AcquireTimeout(timeout time.Duration) bool { - done := make(chan bool, 1) - // Gate used to communicate between the threads and decide what the result - // is. If the main thread decides, we have timed out, otherwise we succeed. - decided := new(int32) - go func() { - s.Acquire() - if atomic.SwapInt32(decided, 1) == 0 { - done <- true - } else { - // If we already decided the result, and this thread did not win - s.Release() - } - }() - select { - case <-done: - return true - case <-time.NewTimer(timeout).C: - if atomic.SwapInt32(decided, 1) == 1 { - // The other thread already decided the result - return true - } - return false - } -} diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/LICENSE b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/LICENSE deleted file mode 100644 index 6a66aea..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/PATENTS b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/context/context.go b/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/context/context.go deleted file mode 100644 index 77b64d0..0000000 --- a/vendor/github.com/siddontang/go-mysql/_vendor/vendor/golang.org/x/net/context/context.go +++ /dev/null @@ -1,447 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package context defines the Context type, which carries deadlines, -// cancelation signals, and other request-scoped values across API boundaries -// and between processes. -// -// Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must -// propagate the Context, optionally replacing it with a modified copy created -// using WithDeadline, WithTimeout, WithCancel, or WithValue. -// -// Programs that use Contexts should follow these rules to keep interfaces -// consistent across packages and enable static analysis tools to check context -// propagation: -// -// Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first -// parameter, typically named ctx: -// -// func DoSomething(ctx context.Context, arg Arg) error { -// // ... use ctx ... -// } -// -// Do not pass a nil Context, even if a function permits it. Pass context.TODO -// if you are unsure about which Context to use. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -// -// The same Context may be passed to functions running in different goroutines; -// Contexts are safe for simultaneous use by multiple goroutines. -// -// See http://blog.golang.org/context for example code for a server that uses -// Contexts. -package context // import "golang.org/x/net/context" - -import ( - "errors" - "fmt" - "sync" - "time" -) - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - // - // WithCancel arranges for Done to be closed when cancel is called; - // WithDeadline arranges for Done to be closed when the deadline - // expires; WithTimeout arranges for Done to be closed when the timeout - // elapses. - // - // Done is provided for use in select statements: - // - // // Stream generates values with DoSomething and sends them to out - // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out <-chan Value) error { - // for { - // v, err := DoSomething(ctx) - // if err != nil { - // return err - // } - // select { - // case <-ctx.Done(): - // return ctx.Err() - // case out <- v: - // } - // } - // } - // - // See http://blog.golang.org/pipelines for more examples of how to use - // a Done channel for cancelation. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - // - // A key identifies a specific value in a Context. Functions that wish - // to store values in Context typically allocate a key in a global - // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; - // packages should define keys as an unexported type to avoid - // collisions. - // - // Packages that define a Context key should provide type-safe accessors - // for the values stores using that key: - // - // // Package user defines a User type that's stored in Contexts. - // package user - // - // import "golang.org/x/net/context" - // - // // User is the type of value stored in the Contexts. - // type User struct {...} - // - // // key is an unexported type for keys defined in this package. - // // This prevents collisions with keys defined in other packages. - // type key int - // - // // userKey is the key for user.User values in Contexts. It is - // // unexported; clients use user.NewContext and user.FromContext - // // instead of using this key directly. - // var userKey key = 0 - // - // // NewContext returns a new Context that carries value u. - // func NewContext(ctx context.Context, u *User) context.Context { - // return context.WithValue(ctx, userKey, u) - // } - // - // // FromContext returns the User value stored in ctx, if any. - // func FromContext(ctx context.Context) (*User, bool) { - // u, ok := ctx.Value(userKey).(*User) - // return u, ok - // } - Value(key interface{}) interface{} -} - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - -// Background returns a non-nil, empty Context. It is never canceled, has no -// values, and has no deadline. It is typically used by the main function, -// initialization, and tests, and as the top-level Context for incoming -// requests. -func Background() Context { - return background -} - -// TODO returns a non-nil, empty Context. Code should use context.TODO when -// it's unclear which Context to use or it is not yet available (because the -// surrounding function has not yet been extended to accept a Context -// parameter). TODO is recognized by static analysis tools that determine -// whether Contexts are propagated correctly in a program. -func TODO() Context { - return todo -} - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc func() - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, &c) - return &c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) cancelCtx { - return cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return &c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/canal.go b/vendor/github.com/siddontang/go-mysql/canal/canal.go deleted file mode 100644 index cdeaf98..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/canal.go +++ /dev/null @@ -1,307 +0,0 @@ -package canal - -import ( - "fmt" - "io/ioutil" - "os" - "path" - "strconv" - "strings" - "sync" - - "github.com/juju/errors" - "github.com/ngaut/log" - "github.com/siddontang/go-mysql/client" - "github.com/siddontang/go-mysql/dump" - "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go-mysql/replication" - "github.com/siddontang/go-mysql/schema" - "github.com/siddontang/go/sync2" -) - -var errCanalClosed = errors.New("canal was closed") - -// Canal can sync your MySQL data into everywhere, like Elasticsearch, Redis, etc... -// MySQL must open row format for binlog -type Canal struct { - m sync.Mutex - - cfg *Config - - master *masterInfo - dumper *dump.Dumper - dumpDoneCh chan struct{} - syncer *replication.BinlogSyncer - - rsLock sync.Mutex - rsHandlers []RowsEventHandler - - connLock sync.Mutex - conn *client.Conn - - wg sync.WaitGroup - - tableLock sync.Mutex - tables map[string]*schema.Table - - quit chan struct{} - closed sync2.AtomicBool -} - -func NewCanal(cfg *Config) (*Canal, error) { - c := new(Canal) - c.cfg = cfg - c.closed.Set(false) - c.quit = make(chan struct{}) - - os.MkdirAll(cfg.DataDir, 0755) - - c.dumpDoneCh = make(chan struct{}) - c.rsHandlers = make([]RowsEventHandler, 0, 4) - c.tables = make(map[string]*schema.Table) - - var err error - if c.master, err = loadMasterInfo(c.masterInfoPath()); err != nil { - return nil, errors.Trace(err) - } else if len(c.master.Addr) != 0 && c.master.Addr != c.cfg.Addr { - log.Infof("MySQL addr %s in old master.info, but new %s, reset", c.master.Addr, c.cfg.Addr) - // may use another MySQL, reset - c.master = &masterInfo{} - } - - c.master.Addr = c.cfg.Addr - - if err := c.prepareDumper(); err != nil { - return nil, errors.Trace(err) - } - - if err = c.prepareSyncer(); err != nil { - return nil, errors.Trace(err) - } - - if err := c.checkBinlogRowFormat(); err != nil { - return nil, errors.Trace(err) - } - - return c, nil -} - -func (c *Canal) prepareDumper() error { - var err error - dumpPath := c.cfg.Dump.ExecutionPath - if len(dumpPath) == 0 { - // ignore mysqldump, use binlog only - return nil - } - - if c.dumper, err = dump.NewDumper(dumpPath, - c.cfg.Addr, c.cfg.User, c.cfg.Password); err != nil { - return errors.Trace(err) - } - - if c.dumper == nil { - //no mysqldump, use binlog only - return nil - } - - dbs := c.cfg.Dump.Databases - tables := c.cfg.Dump.Tables - tableDB := c.cfg.Dump.TableDB - - if len(tables) == 0 { - c.dumper.AddDatabases(dbs...) - } else { - c.dumper.AddTables(tableDB, tables...) - } - - for _, ignoreTable := range c.cfg.Dump.IgnoreTables { - if seps := strings.Split(ignoreTable, ","); len(seps) == 2 { - c.dumper.AddIgnoreTables(seps[0], seps[1]) - } - } - - if c.cfg.Dump.DiscardErr { - c.dumper.SetErrOut(ioutil.Discard) - } else { - c.dumper.SetErrOut(os.Stderr) - } - - return nil -} - -func (c *Canal) Start() error { - c.wg.Add(1) - go c.run() - - return nil -} - -func (c *Canal) run() error { - defer c.wg.Done() - - if err := c.tryDump(); err != nil { - log.Errorf("canal dump mysql err: %v", err) - return errors.Trace(err) - } - - close(c.dumpDoneCh) - - if err := c.startSyncBinlog(); err != nil { - if !c.isClosed() { - log.Errorf("canal start sync binlog err: %v", err) - } - return errors.Trace(err) - } - - return nil -} - -func (c *Canal) isClosed() bool { - return c.closed.Get() -} - -func (c *Canal) Close() { - log.Infof("close canal") - - c.m.Lock() - defer c.m.Unlock() - - if c.isClosed() { - return - } - - c.closed.Set(true) - - close(c.quit) - - c.connLock.Lock() - c.conn.Close() - c.conn = nil - c.connLock.Unlock() - - if c.syncer != nil { - c.syncer.Close() - c.syncer = nil - } - - c.master.Close() - - c.wg.Wait() -} - -func (c *Canal) WaitDumpDone() <-chan struct{} { - return c.dumpDoneCh -} - -func (c *Canal) GetTable(db string, table string) (*schema.Table, error) { - key := fmt.Sprintf("%s.%s", db, table) - c.tableLock.Lock() - t, ok := c.tables[key] - c.tableLock.Unlock() - - if ok { - return t, nil - } - - t, err := schema.NewTable(c, db, table) - if err != nil { - return nil, errors.Trace(err) - } - - c.tableLock.Lock() - c.tables[key] = t - c.tableLock.Unlock() - - return t, nil -} - -// Check MySQL binlog row image, must be in FULL, MINIMAL, NOBLOB -func (c *Canal) CheckBinlogRowImage(image string) error { - // need to check MySQL binlog row image? full, minimal or noblob? - // now only log - if c.cfg.Flavor == mysql.MySQLFlavor { - if res, err := c.Execute(`SHOW GLOBAL VARIABLES LIKE "binlog_row_image"`); err != nil { - return errors.Trace(err) - } else { - // MySQL has binlog row image from 5.6, so older will return empty - rowImage, _ := res.GetString(0, 1) - if rowImage != "" && !strings.EqualFold(rowImage, image) { - return errors.Errorf("MySQL uses %s binlog row image, but we want %s", rowImage, image) - } - } - } - - return nil -} - -func (c *Canal) checkBinlogRowFormat() error { - res, err := c.Execute(`SHOW GLOBAL VARIABLES LIKE "binlog_format";`) - if err != nil { - return errors.Trace(err) - } else if f, _ := res.GetString(0, 1); f != "ROW" { - return errors.Errorf("binlog must ROW format, but %s now", f) - } - - return nil -} - -func (c *Canal) prepareSyncer() error { - seps := strings.Split(c.cfg.Addr, ":") - if len(seps) != 2 { - return errors.Errorf("invalid mysql addr format %s, must host:port", c.cfg.Addr) - } - - port, err := strconv.ParseUint(seps[1], 10, 16) - if err != nil { - return errors.Trace(err) - } - - cfg := replication.BinlogSyncerConfig{ - ServerID: c.cfg.ServerID, - Flavor: c.cfg.Flavor, - Host: seps[0], - Port: uint16(port), - User: c.cfg.User, - Password: c.cfg.Password, - } - - c.syncer = replication.NewBinlogSyncer(&cfg) - - return nil -} - -func (c *Canal) masterInfoPath() string { - return path.Join(c.cfg.DataDir, "master.info") -} - -// Execute a SQL -func (c *Canal) Execute(cmd string, args ...interface{}) (rr *mysql.Result, err error) { - c.connLock.Lock() - defer c.connLock.Unlock() - - retryNum := 3 - for i := 0; i < retryNum; i++ { - if c.conn == nil { - c.conn, err = client.Connect(c.cfg.Addr, c.cfg.User, c.cfg.Password, "") - if err != nil { - return nil, errors.Trace(err) - } - } - - rr, err = c.conn.Execute(cmd, args...) - if err != nil && !mysql.ErrorEqual(err, mysql.ErrBadConn) { - return - } else if mysql.ErrorEqual(err, mysql.ErrBadConn) { - c.conn.Close() - c.conn = nil - continue - } else { - return - } - } - return -} - -func (c *Canal) SyncedPosition() mysql.Position { - return c.master.Pos() -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/canal_test.go b/vendor/github.com/siddontang/go-mysql/canal/canal_test.go deleted file mode 100644 index b83c79e..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/canal_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package canal - -import ( - "flag" - "fmt" - "os" - "testing" - - "github.com/ngaut/log" - . "github.com/pingcap/check" - "github.com/siddontang/go-mysql/mysql" -) - -var testHost = flag.String("host", "127.0.0.1", "MySQL host") - -func Test(t *testing.T) { - TestingT(t) -} - -type canalTestSuite struct { - c *Canal -} - -var _ = Suite(&canalTestSuite{}) - -func (s *canalTestSuite) SetUpSuite(c *C) { - cfg := NewDefaultConfig() - cfg.Addr = fmt.Sprintf("%s:3306", *testHost) - cfg.User = "root" - cfg.Dump.ExecutionPath = "mysqldump" - cfg.Dump.TableDB = "test" - cfg.Dump.Tables = []string{"canal_test"} - - os.RemoveAll(cfg.DataDir) - - var err error - s.c, err = NewCanal(cfg) - c.Assert(err, IsNil) - - sql := ` - CREATE TABLE IF NOT EXISTS test.canal_test ( - id int AUTO_INCREMENT, - name varchar(100), - PRIMARY KEY(id) - )ENGINE=innodb; - ` - - s.execute(c, sql) - - s.execute(c, "DELETE FROM test.canal_test") - s.execute(c, "INSERT INTO test.canal_test (name) VALUES (?), (?), (?)", "a", "b", "c") - - s.execute(c, "SET GLOBAL binlog_format = 'ROW'") - - s.c.RegRowsEventHandler(&testRowsEventHandler{}) - err = s.c.Start() - c.Assert(err, IsNil) -} - -func (s *canalTestSuite) TearDownSuite(c *C) { - if s.c != nil { - s.c.Close() - s.c = nil - } -} - -func (s *canalTestSuite) execute(c *C, query string, args ...interface{}) *mysql.Result { - r, err := s.c.Execute(query, args...) - c.Assert(err, IsNil) - return r -} - -type testRowsEventHandler struct { -} - -func (h *testRowsEventHandler) Do(e *RowsEvent) error { - log.Infof("%s %v\n", e.Action, e.Rows) - return nil -} - -func (h *testRowsEventHandler) String() string { - return "testRowsEventHandler" -} - -func (s *canalTestSuite) TestCanal(c *C) { - <-s.c.WaitDumpDone() - - for i := 1; i < 10; i++ { - s.execute(c, "INSERT INTO test.canal_test (name) VALUES (?)", fmt.Sprintf("%d", i)) - } - - err := s.c.CatchMasterPos(100) - c.Assert(err, IsNil) -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/config.go b/vendor/github.com/siddontang/go-mysql/canal/config.go deleted file mode 100644 index f9bb262..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/config.go +++ /dev/null @@ -1,79 +0,0 @@ -package canal - -import ( - "io/ioutil" - "math/rand" - "time" - - "github.com/BurntSushi/toml" - "github.com/juju/errors" -) - -type DumpConfig struct { - // mysqldump execution path, like mysqldump or /usr/bin/mysqldump, etc... - // If not set, ignore using mysqldump. - ExecutionPath string `toml:"mysqldump"` - - // Will override Databases, tables is in database table_db - Tables []string `toml:"tables"` - TableDB string `toml:"table_db"` - - Databases []string `toml:"dbs"` - - // Ignore table format is db.table - IgnoreTables []string `toml:"ignore_tables"` - - // If true, discard error msg, else, output to stderr - DiscardErr bool `toml:"discard_err"` -} - -type Config struct { - Addr string `toml:"addr"` - User string `toml:"user"` - Password string `toml:"password"` - - ServerID uint32 `toml:"server_id"` - Flavor string `toml:"flavor"` - DataDir string `toml:"data_dir"` - - Dump DumpConfig `toml:"dump"` -} - -func NewConfigWithFile(name string) (*Config, error) { - data, err := ioutil.ReadFile(name) - if err != nil { - return nil, errors.Trace(err) - } - - return NewConfig(string(data)) -} - -func NewConfig(data string) (*Config, error) { - var c Config - - _, err := toml.Decode(data, &c) - if err != nil { - return nil, errors.Trace(err) - } - - return &c, nil -} - -func NewDefaultConfig() *Config { - c := new(Config) - - c.Addr = "127.0.0.1:3306" - c.User = "root" - c.Password = "" - - rand.Seed(time.Now().Unix()) - c.ServerID = uint32(rand.Intn(1000)) + 1001 - - c.Flavor = "mysql" - - c.DataDir = "./var" - c.Dump.ExecutionPath = "mysqldump" - c.Dump.DiscardErr = true - - return c -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/dump.go b/vendor/github.com/siddontang/go-mysql/canal/dump.go deleted file mode 100644 index 4adec2a..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/dump.go +++ /dev/null @@ -1,120 +0,0 @@ -package canal - -import ( - "strconv" - "time" - - "github.com/juju/errors" - "github.com/ngaut/log" - "github.com/siddontang/go-mysql/dump" - "github.com/siddontang/go-mysql/schema" -) - -type dumpParseHandler struct { - c *Canal - name string - pos uint64 -} - -func (h *dumpParseHandler) BinLog(name string, pos uint64) error { - h.name = name - h.pos = pos - return nil -} - -func (h *dumpParseHandler) Data(db string, table string, values []string) error { - if h.c.isClosed() { - return errCanalClosed - } - - tableInfo, err := h.c.GetTable(db, table) - if err != nil { - log.Errorf("get %s.%s information err: %v", db, table, err) - return errors.Trace(err) - } - - vs := make([]interface{}, len(values)) - - for i, v := range values { - if v == "NULL" { - vs[i] = nil - } else if v[0] != '\'' { - if tableInfo.Columns[i].Type == schema.TYPE_NUMBER { - n, err := strconv.ParseInt(v, 10, 64) - if err != nil { - log.Errorf("parse row %v at %d error %v, skip", values, i, err) - return dump.ErrSkip - } - vs[i] = n - } else if tableInfo.Columns[i].Type == schema.TYPE_FLOAT { - f, err := strconv.ParseFloat(v, 64) - if err != nil { - log.Errorf("parse row %v at %d error %v, skip", values, i, err) - return dump.ErrSkip - } - vs[i] = f - } else { - log.Errorf("parse row %v error, invalid type at %d, skip", values, i) - return dump.ErrSkip - } - } else { - vs[i] = v[1 : len(v)-1] - } - } - - events := newRowsEvent(tableInfo, InsertAction, [][]interface{}{vs}) - return h.c.travelRowsEventHandler(events) -} - -func (c *Canal) AddDumpDatabases(dbs ...string) { - if c.dumper == nil { - return - } - - c.dumper.AddDatabases(dbs...) -} - -func (c *Canal) AddDumpTables(db string, tables ...string) { - if c.dumper == nil { - return - } - - c.dumper.AddTables(db, tables...) -} - -func (c *Canal) AddDumpIgnoreTables(db string, tables ...string) { - if c.dumper == nil { - return - } - - c.dumper.AddIgnoreTables(db, tables...) -} - -func (c *Canal) tryDump() error { - if len(c.master.Name) > 0 && c.master.Position > 0 { - // we will sync with binlog name and position - log.Infof("skip dump, use last binlog replication pos (%s, %d)", c.master.Name, c.master.Position) - return nil - } - - if c.dumper == nil { - log.Info("skip dump, no mysqldump") - return nil - } - - h := &dumpParseHandler{c: c} - - start := time.Now() - log.Info("try dump MySQL and parse") - if err := c.dumper.DumpAndParse(h); err != nil { - return errors.Trace(err) - } - - log.Infof("dump MySQL and parse OK, use %0.2f seconds, start binlog replication at (%s, %d)", - time.Now().Sub(start).Seconds(), h.name, h.pos) - - c.master.Update(h.name, uint32(h.pos)) - c.master.Save(true) - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/handler.go b/vendor/github.com/siddontang/go-mysql/canal/handler.go deleted file mode 100644 index e361181..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/handler.go +++ /dev/null @@ -1,41 +0,0 @@ -package canal - -import ( - "github.com/juju/errors" - "github.com/ngaut/log" - "github.com/siddontang/go-mysql/mysql" -) - -var ( - ErrHandleInterrupted = errors.New("do handler error, interrupted") -) - -type RowsEventHandler interface { - // Handle RowsEvent, if return ErrHandleInterrupted, canal will - // stop the sync - Do(e *RowsEvent) error - String() string -} - -func (c *Canal) RegRowsEventHandler(h RowsEventHandler) { - c.rsLock.Lock() - c.rsHandlers = append(c.rsHandlers, h) - c.rsLock.Unlock() -} - -func (c *Canal) travelRowsEventHandler(e *RowsEvent) error { - c.rsLock.Lock() - defer c.rsLock.Unlock() - - var err error - for _, h := range c.rsHandlers { - if err = h.Do(e); err != nil && !mysql.ErrorEqual(err, ErrHandleInterrupted) { - log.Errorf("handle %v err: %v", h, err) - } else if mysql.ErrorEqual(err, ErrHandleInterrupted) { - log.Errorf("handle %v err, interrupted", h) - return ErrHandleInterrupted - } - - } - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/master.go b/vendor/github.com/siddontang/go-mysql/canal/master.go deleted file mode 100644 index 6897d05..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/master.go +++ /dev/null @@ -1,89 +0,0 @@ -package canal - -import ( - "bytes" - "os" - "sync" - "time" - - "github.com/BurntSushi/toml" - "github.com/juju/errors" - "github.com/ngaut/log" - "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go/ioutil2" -) - -type masterInfo struct { - Addr string `toml:"addr"` - Name string `toml:"bin_name"` - Position uint32 `toml:"bin_pos"` - - name string - - l sync.Mutex - - lastSaveTime time.Time -} - -func loadMasterInfo(name string) (*masterInfo, error) { - var m masterInfo - - m.name = name - - f, err := os.Open(name) - if err != nil && !os.IsNotExist(errors.Cause(err)) { - return nil, errors.Trace(err) - } else if os.IsNotExist(errors.Cause(err)) { - return &m, nil - } - defer f.Close() - - _, err = toml.DecodeReader(f, &m) - - return &m, err -} - -func (m *masterInfo) Save(force bool) error { - m.l.Lock() - defer m.l.Unlock() - - n := time.Now() - if !force && n.Sub(m.lastSaveTime) < time.Second { - return nil - } - - var buf bytes.Buffer - e := toml.NewEncoder(&buf) - - e.Encode(m) - - var err error - if err = ioutil2.WriteFileAtomic(m.name, buf.Bytes(), 0644); err != nil { - log.Errorf("canal save master info to file %s err %v", m.name, err) - } - - m.lastSaveTime = n - - return errors.Trace(err) -} - -func (m *masterInfo) Update(name string, pos uint32) { - m.l.Lock() - m.Name = name - m.Position = pos - m.l.Unlock() -} - -func (m *masterInfo) Pos() mysql.Position { - var pos mysql.Position - m.l.Lock() - pos.Name = m.Name - pos.Pos = m.Position - m.l.Unlock() - - return pos -} - -func (m *masterInfo) Close() { - m.Save(true) -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/rows.go b/vendor/github.com/siddontang/go-mysql/canal/rows.go deleted file mode 100644 index 5c5e467..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/rows.go +++ /dev/null @@ -1,59 +0,0 @@ -package canal - -import ( - "fmt" - - "github.com/juju/errors" - "github.com/siddontang/go-mysql/schema" -) - -const ( - UpdateAction = "update" - InsertAction = "insert" - DeleteAction = "delete" -) - -type RowsEvent struct { - Table *schema.Table - Action string - // changed row list - // binlog has three update event version, v0, v1 and v2. - // for v1 and v2, the rows number must be even. - // Two rows for one event, format is [before update row, after update row] - // for update v0, only one row for a event, and we don't support this version. - Rows [][]interface{} -} - -func newRowsEvent(table *schema.Table, action string, rows [][]interface{}) *RowsEvent { - e := new(RowsEvent) - - e.Table = table - e.Action = action - e.Rows = rows - - return e -} - -// Get primary keys in one row for a table, a table may use multi fields as the PK -func GetPKValues(table *schema.Table, row []interface{}) ([]interface{}, error) { - indexes := table.PKColumns - if len(indexes) == 0 { - return nil, errors.Errorf("table %s has no PK", table) - } else if len(table.Columns) != len(row) { - return nil, errors.Errorf("table %s has %d columns, but row data %v len is %d", table, - len(table.Columns), row, len(row)) - } - - values := make([]interface{}, 0, len(indexes)) - - for _, index := range indexes { - values = append(values, row[index]) - } - - return values, nil -} - -// String implements fmt.Stringer interface. -func (r *RowsEvent) String() string { - return fmt.Sprintf("%s %s %v", r.Action, r.Table, r.Rows) -} diff --git a/vendor/github.com/siddontang/go-mysql/canal/sync.go b/vendor/github.com/siddontang/go-mysql/canal/sync.go deleted file mode 100644 index e76eea4..0000000 --- a/vendor/github.com/siddontang/go-mysql/canal/sync.go +++ /dev/null @@ -1,137 +0,0 @@ -package canal - -import ( - "time" - - "golang.org/x/net/context" - - "github.com/juju/errors" - "github.com/ngaut/log" - "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go-mysql/replication" -) - -func (c *Canal) startSyncBinlog() error { - pos := mysql.Position{c.master.Name, c.master.Position} - - log.Infof("start sync binlog at %v", pos) - - s, err := c.syncer.StartSync(pos) - if err != nil { - return errors.Errorf("start sync replication at %v error %v", pos, err) - } - - timeout := time.Second - forceSavePos := false - for { - ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) - ev, err := s.GetEvent(ctx) - cancel() - - if err == context.DeadlineExceeded { - timeout = 2 * timeout - continue - } - - if err != nil { - return errors.Trace(err) - } - - timeout = time.Second - - //next binlog pos - pos.Pos = ev.Header.LogPos - - forceSavePos = false - - // We only save position with RotateEvent and XIDEvent. - // For RowsEvent, we can't save the position until meeting XIDEvent - // which tells the whole transaction is over. - // TODO: If we meet any DDL query, we must save too. - switch e := ev.Event.(type) { - case *replication.RotateEvent: - pos.Name = string(e.NextLogName) - pos.Pos = uint32(e.Position) - // r.ev <- pos - forceSavePos = true - log.Infof("rotate binlog to %v", pos) - case *replication.RowsEvent: - // we only focus row based event - if err = c.handleRowsEvent(ev); err != nil { - log.Errorf("handle rows event error %v", err) - return errors.Trace(err) - } - continue - case *replication.XIDEvent: - // try to save the position later - default: - continue - } - - c.master.Update(pos.Name, pos.Pos) - c.master.Save(forceSavePos) - } - - return nil -} - -func (c *Canal) handleRowsEvent(e *replication.BinlogEvent) error { - ev := e.Event.(*replication.RowsEvent) - - // Caveat: table may be altered at runtime. - schema := string(ev.Table.Schema) - table := string(ev.Table.Table) - - t, err := c.GetTable(schema, table) - if err != nil { - return errors.Trace(err) - } - var action string - switch e.Header.EventType { - case replication.WRITE_ROWS_EVENTv1, replication.WRITE_ROWS_EVENTv2: - action = InsertAction - case replication.DELETE_ROWS_EVENTv1, replication.DELETE_ROWS_EVENTv2: - action = DeleteAction - case replication.UPDATE_ROWS_EVENTv1, replication.UPDATE_ROWS_EVENTv2: - action = UpdateAction - default: - return errors.Errorf("%s not supported now", e.Header.EventType) - } - events := newRowsEvent(t, action, ev.Rows) - return c.travelRowsEventHandler(events) -} - -func (c *Canal) WaitUntilPos(pos mysql.Position, timeout int) error { - if timeout <= 0 { - timeout = 60 - } - - timer := time.NewTimer(time.Duration(timeout) * time.Second) - for { - select { - case <-timer.C: - return errors.Errorf("wait position %v err", pos) - default: - curpos := c.master.Pos() - if curpos.Compare(pos) >= 0 { - return nil - } else { - time.Sleep(100 * time.Millisecond) - } - } - } - - return nil -} - -func (c *Canal) CatchMasterPos(timeout int) error { - rr, err := c.Execute("SHOW MASTER STATUS") - if err != nil { - return errors.Trace(err) - } - - name, _ := rr.GetString(0, 0) - pos, _ := rr.GetInt(0, 1) - - return c.WaitUntilPos(mysql.Position{name, uint32(pos)}, timeout) -} diff --git a/vendor/github.com/siddontang/go-mysql/client/auth.go b/vendor/github.com/siddontang/go-mysql/client/auth.go deleted file mode 100644 index 85b688c..0000000 --- a/vendor/github.com/siddontang/go-mysql/client/auth.go +++ /dev/null @@ -1,174 +0,0 @@ -package client - -import ( - "bytes" - "crypto/tls" - "encoding/binary" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go-mysql/packet" -) - -func (c *Conn) readInitialHandshake() error { - data, err := c.ReadPacket() - if err != nil { - return errors.Trace(err) - } - - if data[0] == ERR_HEADER { - return errors.New("read initial handshake error") - } - - if data[0] < MinProtocolVersion { - return errors.Errorf("invalid protocol version %d, must >= 10", data[0]) - } - - //skip mysql version - //mysql version end with 0x00 - pos := 1 + bytes.IndexByte(data[1:], 0x00) + 1 - - //connection id length is 4 - c.connectionID = uint32(binary.LittleEndian.Uint32(data[pos : pos+4])) - pos += 4 - - c.salt = []byte{} - c.salt = append(c.salt, data[pos:pos+8]...) - - //skip filter - pos += 8 + 1 - - //capability lower 2 bytes - c.capability = uint32(binary.LittleEndian.Uint16(data[pos : pos+2])) - - pos += 2 - - if len(data) > pos { - //skip server charset - //c.charset = data[pos] - pos += 1 - - c.status = binary.LittleEndian.Uint16(data[pos : pos+2]) - pos += 2 - - c.capability = uint32(binary.LittleEndian.Uint16(data[pos:pos+2]))<<16 | c.capability - - pos += 2 - - //skip auth data len or [00] - //skip reserved (all [00]) - pos += 10 + 1 - - // The documentation is ambiguous about the length. - // The official Python library uses the fixed length 12 - // mysql-proxy also use 12 - // which is not documented but seems to work. - c.salt = append(c.salt, data[pos:pos+12]...) - } - - return nil -} - -func (c *Conn) writeAuthHandshake() error { - // Adjust client capability flags based on server support - capability := CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION | - CLIENT_LONG_PASSWORD | CLIENT_TRANSACTIONS | CLIENT_LONG_FLAG - - // To enable TLS / SSL - if c.TLSConfig != nil { - capability |= CLIENT_PLUGIN_AUTH - capability |= CLIENT_SSL - } - - capability &= c.capability - - //packet length - //capbility 4 - //max-packet size 4 - //charset 1 - //reserved all[0] 23 - length := 4 + 4 + 1 + 23 - - //username - length += len(c.user) + 1 - - //we only support secure connection - auth := CalcPassword(c.salt, []byte(c.password)) - - length += 1 + len(auth) - - if len(c.db) > 0 { - capability |= CLIENT_CONNECT_WITH_DB - - length += len(c.db) + 1 - } - - // mysql_native_password + null-terminated - length += 21 + 1 - - c.capability = capability - - data := make([]byte, length+4) - - //capability [32 bit] - data[4] = byte(capability) - data[5] = byte(capability >> 8) - data[6] = byte(capability >> 16) - data[7] = byte(capability >> 24) - - //MaxPacketSize [32 bit] (none) - //data[8] = 0x00 - //data[9] = 0x00 - //data[10] = 0x00 - //data[11] = 0x00 - - //Charset [1 byte] - //use default collation id 33 here, is utf-8 - data[12] = byte(DEFAULT_COLLATION_ID) - - // SSL Connection Request Packet - // http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::SSLRequest - if c.TLSConfig != nil { - // Send TLS / SSL request packet - if err := c.WritePacket(data[:(4+4+1+23)+4]); err != nil { - return err - } - - // Switch to TLS - tlsConn := tls.Client(c.Conn.Conn, c.TLSConfig) - if err := tlsConn.Handshake(); err != nil { - return err - } - - currentSequence := c.Sequence - c.Conn = packet.NewConn(tlsConn) - c.Sequence = currentSequence - } - - //Filler [23 bytes] (all 0x00) - pos := 13 + 23 - - //User [null terminated string] - if len(c.user) > 0 { - pos += copy(data[pos:], c.user) - } - data[pos] = 0x00 - pos++ - - // auth [length encoded integer] - data[pos] = byte(len(auth)) - pos += 1 + copy(data[pos+1:], auth) - - // db [null terminated string] - if len(c.db) > 0 { - pos += copy(data[pos:], c.db) - data[pos] = 0x00 - pos++ - } - - // Assume native client during response - pos += copy(data[pos:], "mysql_native_password") - data[pos] = 0x00 - - return c.WritePacket(data) -} diff --git a/vendor/github.com/siddontang/go-mysql/client/client_test.go b/vendor/github.com/siddontang/go-mysql/client/client_test.go deleted file mode 100644 index 85dd8f2..0000000 --- a/vendor/github.com/siddontang/go-mysql/client/client_test.go +++ /dev/null @@ -1,352 +0,0 @@ -package client - -import ( - "crypto/tls" - "flag" - "fmt" - "strings" - "testing" - - . "github.com/pingcap/check" - - "github.com/siddontang/go-mysql/mysql" -) - -var testHost = flag.String("host", "127.0.0.1", "MySQL server host") -var testPort = flag.Int("port", 3306, "MySQL server port") -var testUser = flag.String("user", "root", "MySQL user") -var testPassword = flag.String("pass", "", "MySQL password") -var testDB = flag.String("db", "test", "MySQL test database") - -func Test(t *testing.T) { - TestingT(t) -} - -type clientTestSuite struct { - c *Conn -} - -var _ = Suite(&clientTestSuite{}) - -func (s *clientTestSuite) SetUpSuite(c *C) { - var err error - addr := fmt.Sprintf("%s:%d", *testHost, *testPort) - s.c, err = Connect(addr, *testUser, *testPassword, *testDB) - if err != nil { - c.Fatal(err) - } - - s.testConn_CreateTable(c) - s.testStmt_CreateTable(c) -} - -func (s *clientTestSuite) TearDownSuite(c *C) { - if s.c == nil { - return - } - - s.testConn_DropTable(c) - s.testStmt_DropTable(c) - - if s.c != nil { - s.c.Close() - } -} - -func (s *clientTestSuite) testConn_DropTable(c *C) { - _, err := s.c.Execute("drop table if exists mixer_test_conn") - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) testConn_CreateTable(c *C) { - str := `CREATE TABLE IF NOT EXISTS mixer_test_conn ( - id BIGINT(64) UNSIGNED NOT NULL, - str VARCHAR(256), - f DOUBLE, - e enum("test1", "test2"), - u tinyint unsigned, - i tinyint, - PRIMARY KEY (id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8` - - _, err := s.c.Execute(str) - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) TestConn_Ping(c *C) { - err := s.c.Ping() - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) TestConn_TLS(c *C) { - // Verify that the provided tls.Config is used when attempting to connect to mysql. - // An empty tls.Config will result in a connection error. - addr := fmt.Sprintf("%s:%d", *testHost, *testPort) - _, err := Connect(addr, *testUser, *testPassword, *testDB, func(c *Conn) { - c.TLSConfig = &tls.Config{} - }) - if err == nil { - c.Fatal("expected error") - } - - expected := "either ServerName or InsecureSkipVerify must be specified in the tls.Config" - if !strings.Contains(err.Error(), expected) { - c.Fatal("expected '%s' to contain '%s'", err.Error(), expected) - } -} - -func (s *clientTestSuite) TestConn_Insert(c *C) { - str := `insert into mixer_test_conn (id, str, f, e) values(1, "a", 3.14, "test1")` - - pkg, err := s.c.Execute(str) - c.Assert(err, IsNil) - c.Assert(pkg.AffectedRows, Equals, uint64(1)) -} - -func (s *clientTestSuite) TestConn_Select(c *C) { - str := `select str, f, e from mixer_test_conn where id = 1` - - result, err := s.c.Execute(str) - c.Assert(err, IsNil) - c.Assert(result.Fields, HasLen, 3) - c.Assert(result.Values, HasLen, 1) - - ss, _ := result.GetString(0, 0) - c.Assert(ss, Equals, "a") - - f, _ := result.GetFloat(0, 1) - c.Assert(f, Equals, float64(3.14)) - - e, _ := result.GetString(0, 2) - c.Assert(e, Equals, "test1") - - ss, _ = result.GetStringByName(0, "str") - c.Assert(ss, Equals, "a") - - f, _ = result.GetFloatByName(0, "f") - c.Assert(f, Equals, float64(3.14)) - - e, _ = result.GetStringByName(0, "e") - c.Assert(e, Equals, "test1") -} - -func (s *clientTestSuite) TestConn_Escape(c *C) { - e := `""''\abc` - str := fmt.Sprintf(`insert into mixer_test_conn (id, str) values(5, "%s")`, - mysql.Escape(e)) - - _, err := s.c.Execute(str) - c.Assert(err, IsNil) - - str = `select str from mixer_test_conn where id = ?` - - r, err := s.c.Execute(str, 5) - c.Assert(err, IsNil) - - ss, _ := r.GetString(0, 0) - c.Assert(ss, Equals, e) -} - -func (s *clientTestSuite) TestConn_SetCharset(c *C) { - err := s.c.SetCharset("gb2312") - c.Assert(err, IsNil) - - err = s.c.SetCharset("utf8") - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) testStmt_DropTable(c *C) { - str := `drop table if exists mixer_test_stmt` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - _, err = stmt.Execute() - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) testStmt_CreateTable(c *C) { - str := `CREATE TABLE IF NOT EXISTS mixer_test_stmt ( - id BIGINT(64) UNSIGNED NOT NULL, - str VARCHAR(256), - f DOUBLE, - e enum("test1", "test2"), - u tinyint unsigned, - i tinyint, - PRIMARY KEY (id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - _, err = stmt.Execute() - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) TestStmt_Delete(c *C) { - str := `delete from mixer_test_stmt` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - _, err = stmt.Execute() - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) TestStmt_Insert(c *C) { - str := `insert into mixer_test_stmt (id, str, f, e, u, i) values (?, ?, ?, ?, ?, ?)` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - r, err := stmt.Execute(1, "a", 3.14, "test1", 255, -127) - c.Assert(err, IsNil) - - c.Assert(r.AffectedRows, Equals, uint64(1)) -} - -func (s *clientTestSuite) TestStmt_Select(c *C) { - str := `select str, f, e from mixer_test_stmt where id = ?` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - result, err := stmt.Execute(1) - c.Assert(err, IsNil) - c.Assert(result.Values, HasLen, 1) - c.Assert(result.Fields, HasLen, 3) - - ss, _ := result.GetString(0, 0) - c.Assert(ss, Equals, "a") - - f, _ := result.GetFloat(0, 1) - c.Assert(f, Equals, float64(3.14)) - - e, _ := result.GetString(0, 2) - c.Assert(e, Equals, "test1") - - ss, _ = result.GetStringByName(0, "str") - c.Assert(ss, Equals, "a") - - f, _ = result.GetFloatByName(0, "f") - c.Assert(f, Equals, float64(3.14)) - - e, _ = result.GetStringByName(0, "e") - c.Assert(e, Equals, "test1") - -} - -func (s *clientTestSuite) TestStmt_NULL(c *C) { - str := `insert into mixer_test_stmt (id, str, f, e) values (?, ?, ?, ?)` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - result, err := stmt.Execute(2, nil, 3.14, nil) - c.Assert(err, IsNil) - - c.Assert(result.AffectedRows, Equals, uint64(1)) - - stmt.Close() - - str = `select * from mixer_test_stmt where id = ?` - stmt, err = s.c.Prepare(str) - defer stmt.Close() - - c.Assert(err, IsNil) - - result, err = stmt.Execute(2) - b, err := result.IsNullByName(0, "id") - c.Assert(err, IsNil) - c.Assert(b, Equals, false) - - b, err = result.IsNullByName(0, "str") - c.Assert(err, IsNil) - c.Assert(b, Equals, true) - - b, err = result.IsNullByName(0, "f") - c.Assert(err, IsNil) - c.Assert(b, Equals, false) - - b, err = result.IsNullByName(0, "e") - c.Assert(err, IsNil) - c.Assert(b, Equals, true) -} - -func (s *clientTestSuite) TestStmt_Unsigned(c *C) { - str := `insert into mixer_test_stmt (id, u) values (?, ?)` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - defer stmt.Close() - - result, err := stmt.Execute(3, uint8(255)) - c.Assert(err, IsNil) - c.Assert(result.AffectedRows, Equals, uint64(1)) - - str = `select u from mixer_test_stmt where id = ?` - - stmt, err = s.c.Prepare(str) - c.Assert(err, IsNil) - defer stmt.Close() - - result, err = stmt.Execute(3) - c.Assert(err, IsNil) - - u, err := result.GetUint(0, 0) - c.Assert(err, IsNil) - c.Assert(u, Equals, uint64(255)) -} - -func (s *clientTestSuite) TestStmt_Signed(c *C) { - str := `insert into mixer_test_stmt (id, i) values (?, ?)` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - defer stmt.Close() - - _, err = stmt.Execute(4, 127) - c.Assert(err, IsNil) - - _, err = stmt.Execute(uint64(18446744073709551516), int8(-128)) - c.Assert(err, IsNil) -} - -func (s *clientTestSuite) TestStmt_Trans(c *C) { - _, err := s.c.Execute(`insert into mixer_test_stmt (id, str) values (1002, "abc")`) - c.Assert(err, IsNil) - - err = s.c.Begin() - c.Assert(err, IsNil) - - str := `select str from mixer_test_stmt where id = ?` - - stmt, err := s.c.Prepare(str) - c.Assert(err, IsNil) - - defer stmt.Close() - - _, err = stmt.Execute(1002) - c.Assert(err, IsNil) - - err = s.c.Commit() - c.Assert(err, IsNil) - - r, err := stmt.Execute(1002) - c.Assert(err, IsNil) - - str, _ = r.GetString(0, 0) - c.Assert(str, Equals, `abc`) -} diff --git a/vendor/github.com/siddontang/go-mysql/client/conn.go b/vendor/github.com/siddontang/go-mysql/client/conn.go deleted file mode 100644 index 54ee3f0..0000000 --- a/vendor/github.com/siddontang/go-mysql/client/conn.go +++ /dev/null @@ -1,254 +0,0 @@ -package client - -import ( - "crypto/tls" - "fmt" - "net" - "strings" - "time" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go-mysql/packet" -) - -type Conn struct { - *packet.Conn - - user string - password string - db string - TLSConfig *tls.Config - - capability uint32 - - status uint16 - - charset string - - salt []byte - - connectionID uint32 -} - -func getNetProto(addr string) string { - proto := "tcp" - if strings.Contains(addr, "/") { - proto = "unix" - } - return proto -} - -// Connect to a MySQL server, addr can be ip:port, or a unix socket domain like /var/sock. -// Accepts a series of configuration functions as a variadic argument. -func Connect(addr string, user string, password string, dbName string, options ...func(*Conn)) (*Conn, error) { - proto := getNetProto(addr) - - c := new(Conn) - - var err error - conn, err := net.DialTimeout(proto, addr, 10*time.Second) - if err != nil { - return nil, errors.Trace(err) - } - - c.Conn = packet.NewConn(conn) - c.user = user - c.password = password - c.db = dbName - - //use default charset here, utf-8 - c.charset = DEFAULT_CHARSET - - // Apply configuration functions. - for i := range options { - options[i](c) - } - - if err = c.handshake(); err != nil { - return nil, errors.Trace(err) - } - - return c, nil -} - -func (c *Conn) handshake() error { - var err error - if err = c.readInitialHandshake(); err != nil { - c.Close() - return errors.Trace(err) - } - - if err := c.writeAuthHandshake(); err != nil { - c.Close() - - return errors.Trace(err) - } - - if _, err := c.readOK(); err != nil { - c.Close() - return errors.Trace(err) - } - - return nil -} - -func (c *Conn) Close() error { - return c.Conn.Close() -} - -func (c *Conn) Ping() error { - if err := c.writeCommand(COM_PING); err != nil { - return errors.Trace(err) - } - - if _, err := c.readOK(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (c *Conn) UseDB(dbName string) error { - if c.db == dbName { - return nil - } - - if err := c.writeCommandStr(COM_INIT_DB, dbName); err != nil { - return errors.Trace(err) - } - - if _, err := c.readOK(); err != nil { - return errors.Trace(err) - } - - c.db = dbName - return nil -} - -func (c *Conn) GetDB() string { - return c.db -} - -func (c *Conn) Execute(command string, args ...interface{}) (*Result, error) { - if len(args) == 0 { - return c.exec(command) - } else { - if s, err := c.Prepare(command); err != nil { - return nil, errors.Trace(err) - } else { - var r *Result - r, err = s.Execute(args...) - s.Close() - return r, err - } - } -} - -func (c *Conn) Begin() error { - _, err := c.exec("BEGIN") - return errors.Trace(err) -} - -func (c *Conn) Commit() error { - _, err := c.exec("COMMIT") - return errors.Trace(err) -} - -func (c *Conn) Rollback() error { - _, err := c.exec("ROLLBACK") - return errors.Trace(err) -} - -func (c *Conn) SetCharset(charset string) error { - if c.charset == charset { - return nil - } - - if _, err := c.exec(fmt.Sprintf("SET NAMES %s", charset)); err != nil { - return errors.Trace(err) - } else { - c.charset = charset - return nil - } -} - -func (c *Conn) FieldList(table string, wildcard string) ([]*Field, error) { - if err := c.writeCommandStrStr(COM_FIELD_LIST, table, wildcard); err != nil { - return nil, errors.Trace(err) - } - - data, err := c.ReadPacket() - if err != nil { - return nil, errors.Trace(err) - } - - fs := make([]*Field, 0, 4) - var f *Field - if data[0] == ERR_HEADER { - return nil, c.handleErrorPacket(data) - } else { - for { - if data, err = c.ReadPacket(); err != nil { - return nil, errors.Trace(err) - } - - // EOF Packet - if c.isEOFPacket(data) { - return fs, nil - } - - if f, err = FieldData(data).Parse(); err != nil { - return nil, errors.Trace(err) - } - fs = append(fs, f) - } - } - return nil, fmt.Errorf("field list error") -} - -func (c *Conn) SetAutoCommit() error { - if !c.IsAutoCommit() { - if _, err := c.exec("SET AUTOCOMMIT = 1"); err != nil { - return errors.Trace(err) - } - } - return nil -} - -func (c *Conn) IsAutoCommit() bool { - return c.status&SERVER_STATUS_AUTOCOMMIT > 0 -} - -func (c *Conn) IsInTransaction() bool { - return c.status&SERVER_STATUS_IN_TRANS > 0 -} - -func (c *Conn) GetCharset() string { - return c.charset -} - -func (c *Conn) GetConnectionID() uint32 { - return c.connectionID -} - -func (c *Conn) HandleOKPacket(data []byte) *Result { - r, _ := c.handleOKPacket(data) - return r -} - -func (c *Conn) HandleErrorPacket(data []byte) error { - return c.handleErrorPacket(data) -} - -func (c *Conn) ReadOKPacket() (*Result, error) { - return c.readOK() -} - -func (c *Conn) exec(query string) (*Result, error) { - if err := c.writeCommandStr(COM_QUERY, query); err != nil { - return nil, errors.Trace(err) - } - - return c.readResult(false) -} diff --git a/vendor/github.com/siddontang/go-mysql/client/req.go b/vendor/github.com/siddontang/go-mysql/client/req.go deleted file mode 100644 index dde03e7..0000000 --- a/vendor/github.com/siddontang/go-mysql/client/req.go +++ /dev/null @@ -1,72 +0,0 @@ -package client - -func (c *Conn) writeCommand(command byte) error { - c.ResetSequence() - - return c.WritePacket([]byte{ - 0x01, //1 bytes long - 0x00, - 0x00, - 0x00, //sequence - command, - }) -} - -func (c *Conn) writeCommandBuf(command byte, arg []byte) error { - c.ResetSequence() - - length := len(arg) + 1 - - data := make([]byte, length+4) - - data[4] = command - - copy(data[5:], arg) - - return c.WritePacket(data) -} - -func (c *Conn) writeCommandStr(command byte, arg string) error { - c.ResetSequence() - - length := len(arg) + 1 - - data := make([]byte, length+4) - - data[4] = command - - copy(data[5:], arg) - - return c.WritePacket(data) -} - -func (c *Conn) writeCommandUint32(command byte, arg uint32) error { - c.ResetSequence() - - return c.WritePacket([]byte{ - 0x05, //5 bytes long - 0x00, - 0x00, - 0x00, //sequence - - command, - - byte(arg), - byte(arg >> 8), - byte(arg >> 16), - byte(arg >> 24), - }) -} - -func (c *Conn) writeCommandStrStr(command byte, arg1 string, arg2 string) error { - c.ResetSequence() - - data := make([]byte, 4, 6+len(arg1)+len(arg2)) - - data = append(data, command) - data = append(data, arg1...) - data = append(data, 0) - data = append(data, arg2...) - - return c.WritePacket(data) -} diff --git a/vendor/github.com/siddontang/go-mysql/client/resp.go b/vendor/github.com/siddontang/go-mysql/client/resp.go deleted file mode 100644 index 4e5f855..0000000 --- a/vendor/github.com/siddontang/go-mysql/client/resp.go +++ /dev/null @@ -1,219 +0,0 @@ -package client - -import ( - "encoding/binary" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go/hack" -) - -func (c *Conn) readUntilEOF() (err error) { - var data []byte - - for { - data, err = c.ReadPacket() - - if err != nil { - return - } - - // EOF Packet - if c.isEOFPacket(data) { - return - } - } - return -} - -func (c *Conn) isEOFPacket(data []byte) bool { - return data[0] == EOF_HEADER && len(data) <= 5 -} - -func (c *Conn) handleOKPacket(data []byte) (*Result, error) { - var n int - var pos int = 1 - - r := new(Result) - - r.AffectedRows, _, n = LengthEncodedInt(data[pos:]) - pos += n - r.InsertId, _, n = LengthEncodedInt(data[pos:]) - pos += n - - if c.capability&CLIENT_PROTOCOL_41 > 0 { - r.Status = binary.LittleEndian.Uint16(data[pos:]) - c.status = r.Status - pos += 2 - - //todo:strict_mode, check warnings as error - //Warnings := binary.LittleEndian.Uint16(data[pos:]) - //pos += 2 - } else if c.capability&CLIENT_TRANSACTIONS > 0 { - r.Status = binary.LittleEndian.Uint16(data[pos:]) - c.status = r.Status - pos += 2 - } - - //new ok package will check CLIENT_SESSION_TRACK too, but I don't support it now. - - //skip info - return r, nil -} - -func (c *Conn) handleErrorPacket(data []byte) error { - e := new(MyError) - - var pos int = 1 - - e.Code = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - if c.capability&CLIENT_PROTOCOL_41 > 0 { - //skip '#' - pos++ - e.State = hack.String(data[pos : pos+5]) - pos += 5 - } - - e.Message = hack.String(data[pos:]) - - return e -} - -func (c *Conn) readOK() (*Result, error) { - data, err := c.ReadPacket() - if err != nil { - return nil, errors.Trace(err) - } - - if data[0] == OK_HEADER { - return c.handleOKPacket(data) - } else if data[0] == ERR_HEADER { - return nil, c.handleErrorPacket(data) - } else { - return nil, errors.New("invalid ok packet") - } -} - -func (c *Conn) readResult(binary bool) (*Result, error) { - data, err := c.ReadPacket() - if err != nil { - return nil, errors.Trace(err) - } - - if data[0] == OK_HEADER { - return c.handleOKPacket(data) - } else if data[0] == ERR_HEADER { - return nil, c.handleErrorPacket(data) - } else if data[0] == LocalInFile_HEADER { - return nil, ErrMalformPacket - } - - return c.readResultset(data, binary) -} - -func (c *Conn) readResultset(data []byte, binary bool) (*Result, error) { - result := &Result{ - Status: 0, - InsertId: 0, - AffectedRows: 0, - - Resultset: &Resultset{}, - } - - // column count - count, _, n := LengthEncodedInt(data) - - if n-len(data) != 0 { - return nil, ErrMalformPacket - } - - result.Fields = make([]*Field, count) - result.FieldNames = make(map[string]int, count) - - if err := c.readResultColumns(result); err != nil { - return nil, errors.Trace(err) - } - - if err := c.readResultRows(result, binary); err != nil { - return nil, errors.Trace(err) - } - - return result, nil -} - -func (c *Conn) readResultColumns(result *Result) (err error) { - var i int = 0 - var data []byte - - for { - data, err = c.ReadPacket() - if err != nil { - return - } - - // EOF Packet - if c.isEOFPacket(data) { - if c.capability&CLIENT_PROTOCOL_41 > 0 { - //result.Warnings = binary.LittleEndian.Uint16(data[1:]) - //todo add strict_mode, warning will be treat as error - result.Status = binary.LittleEndian.Uint16(data[3:]) - c.status = result.Status - } - - if i != len(result.Fields) { - err = ErrMalformPacket - } - - return - } - - result.Fields[i], err = FieldData(data).Parse() - if err != nil { - return - } - - result.FieldNames[hack.String(result.Fields[i].Name)] = i - - i++ - } -} - -func (c *Conn) readResultRows(result *Result, isBinary bool) (err error) { - var data []byte - - for { - data, err = c.ReadPacket() - - if err != nil { - return - } - - // EOF Packet - if c.isEOFPacket(data) { - if c.capability&CLIENT_PROTOCOL_41 > 0 { - //result.Warnings = binary.LittleEndian.Uint16(data[1:]) - //todo add strict_mode, warning will be treat as error - result.Status = binary.LittleEndian.Uint16(data[3:]) - c.status = result.Status - } - - break - } - - result.RowDatas = append(result.RowDatas, data) - } - - result.Values = make([][]interface{}, len(result.RowDatas)) - - for i := range result.Values { - result.Values[i], err = result.RowDatas[i].Parse(result.Fields, isBinary) - - if err != nil { - return errors.Trace(err) - } - } - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/client/stmt.go b/vendor/github.com/siddontang/go-mysql/client/stmt.go deleted file mode 100644 index fd2dfd7..0000000 --- a/vendor/github.com/siddontang/go-mysql/client/stmt.go +++ /dev/null @@ -1,216 +0,0 @@ -package client - -import ( - "encoding/binary" - "fmt" - "math" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" -) - -type Stmt struct { - conn *Conn - id uint32 - query string - - params int - columns int -} - -func (s *Stmt) ParamNum() int { - return s.params -} - -func (s *Stmt) ColumnNum() int { - return s.columns -} - -func (s *Stmt) Execute(args ...interface{}) (*Result, error) { - if err := s.write(args...); err != nil { - return nil, errors.Trace(err) - } - - return s.conn.readResult(true) -} - -func (s *Stmt) Close() error { - if err := s.conn.writeCommandUint32(COM_STMT_CLOSE, s.id); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (s *Stmt) write(args ...interface{}) error { - paramsNum := s.params - - if len(args) != paramsNum { - return fmt.Errorf("argument mismatch, need %d but got %d", s.params, len(args)) - } - - paramTypes := make([]byte, paramsNum<<1) - paramValues := make([][]byte, paramsNum) - - //NULL-bitmap, length: (num-params+7) - nullBitmap := make([]byte, (paramsNum+7)>>3) - - var length int = int(1 + 4 + 1 + 4 + ((paramsNum + 7) >> 3) + 1 + (paramsNum << 1)) - - var newParamBoundFlag byte = 0 - - for i := range args { - if args[i] == nil { - nullBitmap[i/8] |= (1 << (uint(i) % 8)) - paramTypes[i<<1] = MYSQL_TYPE_NULL - continue - } - - newParamBoundFlag = 1 - - switch v := args[i].(type) { - case int8: - paramTypes[i<<1] = MYSQL_TYPE_TINY - paramValues[i] = []byte{byte(v)} - case int16: - paramTypes[i<<1] = MYSQL_TYPE_SHORT - paramValues[i] = Uint16ToBytes(uint16(v)) - case int32: - paramTypes[i<<1] = MYSQL_TYPE_LONG - paramValues[i] = Uint32ToBytes(uint32(v)) - case int: - paramTypes[i<<1] = MYSQL_TYPE_LONGLONG - paramValues[i] = Uint64ToBytes(uint64(v)) - case int64: - paramTypes[i<<1] = MYSQL_TYPE_LONGLONG - paramValues[i] = Uint64ToBytes(uint64(v)) - case uint8: - paramTypes[i<<1] = MYSQL_TYPE_TINY - paramTypes[(i<<1)+1] = 0x80 - paramValues[i] = []byte{v} - case uint16: - paramTypes[i<<1] = MYSQL_TYPE_SHORT - paramTypes[(i<<1)+1] = 0x80 - paramValues[i] = Uint16ToBytes(uint16(v)) - case uint32: - paramTypes[i<<1] = MYSQL_TYPE_LONG - paramTypes[(i<<1)+1] = 0x80 - paramValues[i] = Uint32ToBytes(uint32(v)) - case uint: - paramTypes[i<<1] = MYSQL_TYPE_LONGLONG - paramTypes[(i<<1)+1] = 0x80 - paramValues[i] = Uint64ToBytes(uint64(v)) - case uint64: - paramTypes[i<<1] = MYSQL_TYPE_LONGLONG - paramTypes[(i<<1)+1] = 0x80 - paramValues[i] = Uint64ToBytes(uint64(v)) - case bool: - paramTypes[i<<1] = MYSQL_TYPE_TINY - if v { - paramValues[i] = []byte{1} - } else { - paramValues[i] = []byte{0} - - } - case float32: - paramTypes[i<<1] = MYSQL_TYPE_FLOAT - paramValues[i] = Uint32ToBytes(math.Float32bits(v)) - case float64: - paramTypes[i<<1] = MYSQL_TYPE_DOUBLE - paramValues[i] = Uint64ToBytes(math.Float64bits(v)) - case string: - paramTypes[i<<1] = MYSQL_TYPE_STRING - paramValues[i] = append(PutLengthEncodedInt(uint64(len(v))), v...) - case []byte: - paramTypes[i<<1] = MYSQL_TYPE_STRING - paramValues[i] = append(PutLengthEncodedInt(uint64(len(v))), v...) - default: - return fmt.Errorf("invalid argument type %T", args[i]) - } - - length += len(paramValues[i]) - } - - data := make([]byte, 4, 4+length) - - data = append(data, COM_STMT_EXECUTE) - data = append(data, byte(s.id), byte(s.id>>8), byte(s.id>>16), byte(s.id>>24)) - - //flag: CURSOR_TYPE_NO_CURSOR - data = append(data, 0x00) - - //iteration-count, always 1 - data = append(data, 1, 0, 0, 0) - - if s.params > 0 { - data = append(data, nullBitmap...) - - //new-params-bound-flag - data = append(data, newParamBoundFlag) - - if newParamBoundFlag == 1 { - //type of each parameter, length: num-params * 2 - data = append(data, paramTypes...) - - //value of each parameter - for _, v := range paramValues { - data = append(data, v...) - } - } - } - - s.conn.ResetSequence() - - return s.conn.WritePacket(data) -} - -func (c *Conn) Prepare(query string) (*Stmt, error) { - if err := c.writeCommandStr(COM_STMT_PREPARE, query); err != nil { - return nil, errors.Trace(err) - } - - data, err := c.ReadPacket() - if err != nil { - return nil, errors.Trace(err) - } - - if data[0] == ERR_HEADER { - return nil, c.handleErrorPacket(data) - } else if data[0] != OK_HEADER { - return nil, ErrMalformPacket - } - - s := new(Stmt) - s.conn = c - - pos := 1 - - //for statement id - s.id = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - //number columns - s.columns = int(binary.LittleEndian.Uint16(data[pos:])) - pos += 2 - - //number params - s.params = int(binary.LittleEndian.Uint16(data[pos:])) - pos += 2 - - //warnings - //warnings = binary.LittleEndian.Uint16(data[pos:]) - - if s.params > 0 { - if err := s.conn.readUntilEOF(); err != nil { - return nil, errors.Trace(err) - } - } - - if s.columns > 0 { - if err := s.conn.readUntilEOF(); err != nil { - return nil, errors.Trace(err) - } - } - - return s, nil -} diff --git a/vendor/github.com/siddontang/go-mysql/cmd/go-binlogparser/main.go b/vendor/github.com/siddontang/go-mysql/cmd/go-binlogparser/main.go deleted file mode 100644 index 3990d00..0000000 --- a/vendor/github.com/siddontang/go-mysql/cmd/go-binlogparser/main.go +++ /dev/null @@ -1,28 +0,0 @@ -package main - -import ( - "flag" - "os" - - "github.com/siddontang/go-mysql/replication" -) - -var name = flag.String("name", "", "binlog file name") -var offset = flag.Int64("offset", 0, "parse start offset") - -func main() { - flag.Parse() - - p := replication.NewBinlogParser() - - f := func(e *replication.BinlogEvent) error { - e.Dump(os.Stdout) - return nil - } - - err := p.ParseFile(*name, *offset, f) - - if err != nil { - println(err) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/cmd/go-canal/main.go b/vendor/github.com/siddontang/go-mysql/cmd/go-canal/main.go deleted file mode 100644 index 4d0c1df..0000000 --- a/vendor/github.com/siddontang/go-mysql/cmd/go-canal/main.go +++ /dev/null @@ -1,101 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" - "os/signal" - "strings" - "syscall" - - "github.com/siddontang/go-mysql/canal" -) - -var host = flag.String("host", "127.0.0.1", "MySQL host") -var port = flag.Int("port", 3306, "MySQL port") -var user = flag.String("user", "root", "MySQL user, must have replication privilege") -var password = flag.String("password", "", "MySQL password") - -var flavor = flag.String("flavor", "mysql", "Flavor: mysql or mariadb") - -var dataDir = flag.String("data-dir", "./var", "Path to store data, like master.info") - -var serverID = flag.Int("server-id", 101, "Unique Server ID") -var mysqldump = flag.String("mysqldump", "mysqldump", "mysqldump execution path") - -var dbs = flag.String("dbs", "test", "dump databases, seperated by comma") -var tables = flag.String("tables", "", "dump tables, seperated by comma, will overwrite dbs") -var tableDB = flag.String("table_db", "test", "database for dump tables") -var ignoreTables = flag.String("ignore_tables", "", "ignore tables, must be database.table format, separated by comma") - -func main() { - flag.Parse() - - cfg := canal.NewDefaultConfig() - cfg.Addr = fmt.Sprintf("%s:%d", *host, *port) - cfg.User = *user - cfg.Password = *password - cfg.Flavor = *flavor - cfg.DataDir = *dataDir - - cfg.ServerID = uint32(*serverID) - cfg.Dump.ExecutionPath = *mysqldump - cfg.Dump.DiscardErr = false - - c, err := canal.NewCanal(cfg) - if err != nil { - fmt.Printf("create canal err %v", err) - os.Exit(1) - } - - if len(*ignoreTables) == 0 { - subs := strings.Split(*ignoreTables, ",") - for _, sub := range subs { - if seps := strings.Split(sub, "."); len(seps) == 2 { - c.AddDumpIgnoreTables(seps[0], seps[1]) - } - } - } - - if len(*tables) > 0 && len(*tableDB) > 0 { - subs := strings.Split(*tables, ",") - c.AddDumpTables(*tableDB, subs...) - } else if len(*dbs) > 0 { - subs := strings.Split(*dbs, ",") - c.AddDumpDatabases(subs...) - } - - c.RegRowsEventHandler(&handler{}) - - err = c.Start() - if err != nil { - fmt.Printf("start canal err %V", err) - os.Exit(1) - } - - sc := make(chan os.Signal, 1) - signal.Notify(sc, - os.Kill, - os.Interrupt, - syscall.SIGHUP, - syscall.SIGINT, - syscall.SIGTERM, - syscall.SIGQUIT) - - <-sc - - c.Close() -} - -type handler struct { -} - -func (h *handler) Do(e *canal.RowsEvent) error { - fmt.Printf("%v\n", e) - - return nil -} - -func (h *handler) String() string { - return "TestHandler" -} diff --git a/vendor/github.com/siddontang/go-mysql/cmd/go-mysqlbinlog/main.go b/vendor/github.com/siddontang/go-mysql/cmd/go-mysqlbinlog/main.go deleted file mode 100644 index 5521c97..0000000 --- a/vendor/github.com/siddontang/go-mysql/cmd/go-mysqlbinlog/main.go +++ /dev/null @@ -1,76 +0,0 @@ -// go-mysqlbinlog: a simple binlog tool to sync remote MySQL binlog. -// go-mysqlbinlog supports semi-sync mode like facebook mysqlbinlog. -// see http://yoshinorimatsunobu.blogspot.com/2014/04/semi-synchronous-replication-at-facebook.html -package main - -import ( - "flag" - "fmt" - "os" - - "golang.org/x/net/context" - - "github.com/juju/errors" - "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go-mysql/replication" -) - -var host = flag.String("host", "127.0.0.1", "MySQL host") -var port = flag.Int("port", 3306, "MySQL port") -var user = flag.String("user", "root", "MySQL user, must have replication privilege") -var password = flag.String("password", "", "MySQL password") - -var flavor = flag.String("flavor", "mysql", "Flavor: mysql or mariadb") - -var file = flag.String("file", "", "Binlog filename") -var pos = flag.Int("pos", 4, "Binlog position") - -var semiSync = flag.Bool("semisync", false, "Support semi sync") -var backupPath = flag.String("backup_path", "", "backup path to store binlog files") - -var rawMode = flag.Bool("raw", false, "Use raw mode") - -func main() { - flag.Parse() - - cfg := replication.BinlogSyncerConfig{ - ServerID: 101, - Flavor: *flavor, - - Host: *host, - Port: uint16(*port), - User: *user, - Password: *password, - RawModeEanbled: *rawMode, - SemiSyncEnabled: *semiSync, - } - - b := replication.NewBinlogSyncer(&cfg) - - pos := mysql.Position{*file, uint32(*pos)} - if len(*backupPath) > 0 { - // Backup will always use RawMode. - err := b.StartBackup(*backupPath, pos, 0) - if err != nil { - fmt.Printf("Start backup error: %v\n", errors.ErrorStack(err)) - return - } - } else { - s, err := b.StartSync(pos) - if err != nil { - fmt.Printf("Start sync error: %v\n", errors.ErrorStack(err)) - return - } - - for { - e, err := s.GetEvent(context.Background()) - if err != nil { - fmt.Printf("Get event error: %v\n", errors.ErrorStack(err)) - return - } - - e.Dump(os.Stdout) - } - } - -} diff --git a/vendor/github.com/siddontang/go-mysql/cmd/go-mysqldump/main.go b/vendor/github.com/siddontang/go-mysql/cmd/go-mysqldump/main.go deleted file mode 100644 index 80a145a..0000000 --- a/vendor/github.com/siddontang/go-mysql/cmd/go-mysqldump/main.go +++ /dev/null @@ -1,66 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" - "strings" - - "github.com/juju/errors" - "github.com/siddontang/go-mysql/dump" -) - -var addr = flag.String("addr", "127.0.0.1:3306", "MySQL addr") -var user = flag.String("user", "root", "MySQL user") -var password = flag.String("password", "", "MySQL password") -var execution = flag.String("exec", "mysqldump", "mysqldump execution path") -var output = flag.String("o", "", "dump output, empty for stdout") - -var dbs = flag.String("dbs", "", "dump databases, seperated by comma") -var tables = flag.String("tables", "", "dump tables, seperated by comma, will overwrite dbs") -var tableDB = flag.String("table_db", "", "database for dump tables") -var ignoreTables = flag.String("ignore_tables", "", "ignore tables, must be database.table format, separated by comma") - -func main() { - flag.Parse() - - d, err := dump.NewDumper(*execution, *addr, *user, *password) - if err != nil { - fmt.Printf("Create Dumper error %v\n", errors.ErrorStack(err)) - os.Exit(1) - } - - if len(*ignoreTables) == 0 { - subs := strings.Split(*ignoreTables, ",") - for _, sub := range subs { - if seps := strings.Split(sub, "."); len(seps) == 2 { - d.AddIgnoreTables(seps[0], seps[1]) - } - } - } - - if len(*tables) > 0 && len(*tableDB) > 0 { - subs := strings.Split(*tables, ",") - d.AddTables(*tableDB, subs...) - } else if len(*dbs) > 0 { - subs := strings.Split(*dbs, ",") - d.AddDatabases(subs...) - } - - var f = os.Stdout - - if len(*output) > 0 { - f, err = os.OpenFile(*output, os.O_CREATE|os.O_WRONLY, 0644) - if err != nil { - fmt.Printf("Open file error %v\n", errors.ErrorStack(err)) - os.Exit(1) - } - } - - defer f.Close() - - if err = d.Dump(f); err != nil { - fmt.Printf("Dump MySQL error %v\n", errors.ErrorStack(err)) - os.Exit(1) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/docker/Makefile b/vendor/github.com/siddontang/go-mysql/docker/Makefile deleted file mode 100644 index afce000..0000000 --- a/vendor/github.com/siddontang/go-mysql/docker/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -MYSQL_IMAGE=siddontang/mysql:latest -MARIADB_IMAGE=siddontang/mariadb:latest - -all: run_mysql1 run_mysql2 run_mysql3 run_mariadb1 run_mariadb2 run_mariadb3 - -run_mysql1: - @docker run -d -p 3306:3306 --name=mysql1 -e "GTID_MODE=on" -e "SERVER_ID=1" ${MYSQL_IMAGE} - -run_mysql2: - @docker run -d -p 3307:3306 --name=mysql2 -e "GTID_MODE=on" -e "SERVER_ID=2" ${MYSQL_IMAGE} - -run_mysql3: - @docker run -d -p 3308:3306 --name=mysql3 -e "GTID_MODE=on" -e "SERVER_ID=3" ${MYSQL_IMAGE} - -run_mariadb1: - @docker run -d -p 3316:3306 --name=mariadb1 -e "SERVER_ID=4" ${MARIADB_IMAGE} - -run_mariadb2: - @docker run -d -p 3317:3306 --name=mariadb2 -e "SERVER_ID=5" ${MARIADB_IMAGE} - -run_mariadb3: - @docker run -d -p 3318:3306 --name=mariadb3 -e "SERVER_ID=6" ${MARIADB_IMAGE} - -image_mysql: - @docker pull ${MYSQL_IMAGE} - -image_maridb: - @docker pull ${MARIADB_IMAGE} - -image: image_mysql image_maridb - -stop_mysql1: - @docker stop mysql1 - -stop_mysql2: - @docker stop mysql2 - -stop_mysql3: - @docker stop mysql3 - -stop_mariadb1: - @docker stop mariadb1 - -stop_mariadb2: - @docker stop mariadb2 - -stop_mariadb3: - @docker stop mariadb3 - -stop: stop_mysql1 stop_mysql2 stop_mysql3 stop_mariadb1 stop_mariadb2 stop_mariadb3 - -clean: - @docker rm -f mysql1 mysql2 mysql3 mariadb1 mariadb2 mariadb3 diff --git a/vendor/github.com/siddontang/go-mysql/driver/dirver_test.go b/vendor/github.com/siddontang/go-mysql/driver/dirver_test.go deleted file mode 100644 index 54a72cb..0000000 --- a/vendor/github.com/siddontang/go-mysql/driver/dirver_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package driver - -import ( - "flag" - "fmt" - "testing" - - "github.com/jmoiron/sqlx" - . "github.com/pingcap/check" -) - -// Use docker mysql to test, mysql is 3306 -var testHost = flag.String("host", "127.0.0.1", "MySQL master host") - -func TestDriver(t *testing.T) { - TestingT(t) -} - -type testDriverSuite struct { - db *sqlx.DB -} - -var _ = Suite(&testDriverSuite{}) - -func (s *testDriverSuite) SetUpSuite(c *C) { - dsn := fmt.Sprintf("root@%s:3306?test", *testHost) - - var err error - s.db, err = sqlx.Open("mysql", dsn) - c.Assert(err, IsNil) -} - -func (s *testDriverSuite) TearDownSuite(c *C) { - if s.db != nil { - s.db.Close() - } -} - -func (s *testDriverSuite) TestConn(c *C) { - var n int - err := s.db.Get(&n, "SELECT 1") - c.Assert(err, IsNil) - c.Assert(n, Equals, 1) - - _, err = s.db.Exec("USE test") - c.Assert(err, IsNil) -} - -func (s *testDriverSuite) TestStmt(c *C) { - stmt, err := s.db.Preparex("SELECT ? + ?") - c.Assert(err, IsNil) - - var n int - err = stmt.Get(&n, 1, 1) - c.Assert(err, IsNil) - c.Assert(n, Equals, 2) - - err = stmt.Close() - c.Assert(err, IsNil) -} - -func (s *testDriverSuite) TestTransaction(c *C) { - tx, err := s.db.Beginx() - c.Assert(err, IsNil) - - var n int - err = tx.Get(&n, "SELECT 1") - c.Assert(err, IsNil) - c.Assert(n, Equals, 1) - - err = tx.Commit() - c.Assert(err, IsNil) -} diff --git a/vendor/github.com/siddontang/go-mysql/driver/driver.go b/vendor/github.com/siddontang/go-mysql/driver/driver.go deleted file mode 100644 index 6263929..0000000 --- a/vendor/github.com/siddontang/go-mysql/driver/driver.go +++ /dev/null @@ -1,230 +0,0 @@ -// This package implements database/sql/driver interface, -// so we can use go-mysql with database/sql -package driver - -import ( - "database/sql" - sqldriver "database/sql/driver" - "fmt" - "io" - "strings" - - "github.com/juju/errors" - "github.com/siddontang/go-mysql/client" - "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go/hack" -) - -type driver struct { -} - -// DSN user:password@addr[?db] -func (d driver) Open(dsn string) (sqldriver.Conn, error) { - seps := strings.Split(dsn, "@") - if len(seps) != 2 { - return nil, errors.Errorf("invalid dsn, must user:password@addr[?db]") - } - - var user string - var password string - var addr string - var db string - - if ss := strings.Split(seps[0], ":"); len(ss) == 2 { - user, password = ss[0], ss[1] - } else if len(ss) == 1 { - user = ss[0] - } else { - return nil, errors.Errorf("invalid dsn, must user:password@addr[?db]") - } - - if ss := strings.Split(seps[1], "?"); len(ss) == 2 { - addr, db = ss[0], ss[1] - } else if len(ss) == 1 { - addr = ss[0] - } else { - return nil, errors.Errorf("invalid dsn, must user:password@addr[?db]") - } - - c, err := client.Connect(addr, user, password, db) - if err != nil { - return nil, err - } - - return &conn{c}, nil -} - -type conn struct { - *client.Conn -} - -func (c *conn) Prepare(query string) (sqldriver.Stmt, error) { - st, err := c.Conn.Prepare(query) - if err != nil { - return nil, errors.Trace(err) - } - - return &stmt{st}, nil -} - -func (c *conn) Close() error { - return c.Conn.Close() -} - -func (c *conn) Begin() (sqldriver.Tx, error) { - err := c.Conn.Begin() - if err != nil { - return nil, errors.Trace(err) - } - - return &tx{c.Conn}, nil -} - -func buildArgs(args []sqldriver.Value) []interface{} { - a := make([]interface{}, len(args)) - - for i, arg := range args { - a[i] = arg - } - - return a -} - -func replyError(err error) error { - if mysql.ErrorEqual(err, mysql.ErrBadConn) { - return sqldriver.ErrBadConn - } else { - return errors.Trace(err) - } -} - -func (c *conn) Exec(query string, args []sqldriver.Value) (sqldriver.Result, error) { - a := buildArgs(args) - r, err := c.Conn.Execute(query, a...) - if err != nil { - return nil, replyError(err) - } - return &result{r}, nil -} - -func (c *conn) Query(query string, args []sqldriver.Value) (sqldriver.Rows, error) { - a := buildArgs(args) - r, err := c.Conn.Execute(query, a...) - if err != nil { - return nil, replyError(err) - } - return newRows(r.Resultset) -} - -type stmt struct { - *client.Stmt -} - -func (s *stmt) Close() error { - return s.Stmt.Close() -} - -func (s *stmt) NumInput() int { - return s.Stmt.ParamNum() -} - -func (s *stmt) Exec(args []sqldriver.Value) (sqldriver.Result, error) { - a := buildArgs(args) - r, err := s.Stmt.Execute(a...) - if err != nil { - return nil, replyError(err) - } - return &result{r}, nil -} - -func (s *stmt) Query(args []sqldriver.Value) (sqldriver.Rows, error) { - a := buildArgs(args) - r, err := s.Stmt.Execute(a...) - if err != nil { - return nil, replyError(err) - } - return newRows(r.Resultset) -} - -type tx struct { - *client.Conn -} - -func (t *tx) Commit() error { - return t.Conn.Commit() -} - -func (t *tx) Rollback() error { - return t.Conn.Rollback() -} - -type result struct { - *mysql.Result -} - -func (r *result) LastInsertId() (int64, error) { - return int64(r.Result.InsertId), nil -} - -func (r *result) RowsAffected() (int64, error) { - return int64(r.Result.AffectedRows), nil -} - -type rows struct { - *mysql.Resultset - - columns []string - step int -} - -func newRows(r *mysql.Resultset) (*rows, error) { - if r == nil { - return nil, fmt.Errorf("invalid mysql query, no correct result") - } - - rs := new(rows) - rs.Resultset = r - - rs.columns = make([]string, len(r.Fields)) - - for i, f := range r.Fields { - rs.columns[i] = hack.String(f.Name) - } - rs.step = 0 - - return rs, nil -} - -func (r *rows) Columns() []string { - return r.columns -} - -func (r *rows) Close() error { - r.step = -1 - return nil -} - -func (r *rows) Next(dest []sqldriver.Value) error { - if r.step >= r.Resultset.RowNumber() { - return io.EOF - } else if r.step == -1 { - return io.ErrUnexpectedEOF - } - - for i := 0; i < r.Resultset.ColumnNumber(); i++ { - value, err := r.Resultset.GetValue(r.step, i) - if err != nil { - return err - } - - dest[i] = sqldriver.Value(value) - } - - r.step++ - - return nil -} - -func init() { - sql.Register("mysql", driver{}) -} diff --git a/vendor/github.com/siddontang/go-mysql/dump/dump.go b/vendor/github.com/siddontang/go-mysql/dump/dump.go deleted file mode 100644 index a6ff209..0000000 --- a/vendor/github.com/siddontang/go-mysql/dump/dump.go +++ /dev/null @@ -1,161 +0,0 @@ -package dump - -import ( - "fmt" - "io" - "os" - "os/exec" - "strings" - - "github.com/juju/errors" -) - -// Unlick mysqldump, Dumper is designed for parsing and syning data easily. -type Dumper struct { - // mysqldump execution path, like mysqldump or /usr/bin/mysqldump, etc... - ExecutionPath string - - Addr string - User string - Password string - - // Will override Databases - Tables []string - TableDB string - - Databases []string - - IgnoreTables map[string][]string - - ErrOut io.Writer -} - -func NewDumper(executionPath string, addr string, user string, password string) (*Dumper, error) { - if len(executionPath) == 0 { - return nil, nil - } - - path, err := exec.LookPath(executionPath) - if err != nil { - return nil, errors.Trace(err) - } - - d := new(Dumper) - d.ExecutionPath = path - d.Addr = addr - d.User = user - d.Password = password - d.Tables = make([]string, 0, 16) - d.Databases = make([]string, 0, 16) - d.IgnoreTables = make(map[string][]string) - - d.ErrOut = os.Stderr - - return d, nil -} - -func (d *Dumper) SetErrOut(o io.Writer) { - d.ErrOut = o -} - -func (d *Dumper) AddDatabases(dbs ...string) { - d.Databases = append(d.Databases, dbs...) -} - -func (d *Dumper) AddTables(db string, tables ...string) { - if d.TableDB != db { - d.TableDB = db - d.Tables = d.Tables[0:0] - } - - d.Tables = append(d.Tables, tables...) -} - -func (d *Dumper) AddIgnoreTables(db string, tables ...string) { - t, _ := d.IgnoreTables[db] - t = append(t, tables...) - d.IgnoreTables[db] = t -} - -func (d *Dumper) Reset() { - d.Tables = d.Tables[0:0] - d.TableDB = "" - d.IgnoreTables = make(map[string][]string) - d.Databases = d.Databases[0:0] -} - -func (d *Dumper) Dump(w io.Writer) error { - args := make([]string, 0, 16) - - // Common args - seps := strings.Split(d.Addr, ":") - args = append(args, fmt.Sprintf("--host=%s", seps[0])) - if len(seps) > 1 { - args = append(args, fmt.Sprintf("--port=%s", seps[1])) - } - - args = append(args, fmt.Sprintf("--user=%s", d.User)) - args = append(args, fmt.Sprintf("--password=%s", d.Password)) - - args = append(args, "--master-data") - args = append(args, "--single-transaction") - args = append(args, "--skip-lock-tables") - - // Disable uncessary data - args = append(args, "--compact") - args = append(args, "--skip-opt") - args = append(args, "--quick") - - // We only care about data - args = append(args, "--no-create-info") - - // Multi row is easy for us to parse the data - args = append(args, "--skip-extended-insert") - - for db, tables := range d.IgnoreTables { - for _, table := range tables { - args = append(args, fmt.Sprintf("--ignore-table=%s.%s", db, table)) - } - } - - if len(d.Tables) == 0 && len(d.Databases) == 0 { - args = append(args, "--all-databases") - } else if len(d.Tables) == 0 { - args = append(args, "--databases") - args = append(args, d.Databases...) - } else { - args = append(args, d.TableDB) - args = append(args, d.Tables...) - - // If we only dump some tables, the dump data will not have database name - // which makes us hard to parse, so here we add it manually. - - w.Write([]byte(fmt.Sprintf("USE `%s`;\n", d.TableDB))) - } - - cmd := exec.Command(d.ExecutionPath, args...) - - cmd.Stderr = d.ErrOut - cmd.Stdout = w - - return cmd.Run() -} - -// Dump MySQL and parse immediately -func (d *Dumper) DumpAndParse(h ParseHandler) error { - r, w := io.Pipe() - - done := make(chan error, 1) - go func() { - err := Parse(r, h) - r.CloseWithError(err) - done <- err - }() - - err := d.Dump(w) - w.CloseWithError(err) - - err = <-done - - return errors.Trace(err) -} diff --git a/vendor/github.com/siddontang/go-mysql/dump/dump_test.go b/vendor/github.com/siddontang/go-mysql/dump/dump_test.go deleted file mode 100644 index 39e430f..0000000 --- a/vendor/github.com/siddontang/go-mysql/dump/dump_test.go +++ /dev/null @@ -1,198 +0,0 @@ -package dump - -import ( - "bytes" - "flag" - "fmt" - "io/ioutil" - "os" - "testing" - - . "github.com/pingcap/check" - "github.com/siddontang/go-mysql/client" -) - -// use docker mysql for test -var host = flag.String("host", "127.0.0.1", "MySQL host") -var port = flag.Int("port", 3306, "MySQL host") - -var execution = flag.String("exec", "mysqldump", "mysqldump execution path") - -func Test(t *testing.T) { - TestingT(t) -} - -type schemaTestSuite struct { - conn *client.Conn - d *Dumper -} - -var _ = Suite(&schemaTestSuite{}) - -func (s *schemaTestSuite) SetUpSuite(c *C) { - var err error - s.conn, err = client.Connect(fmt.Sprintf("%s:%d", *host, *port), "root", "", "") - c.Assert(err, IsNil) - - s.d, err = NewDumper(*execution, fmt.Sprintf("%s:%d", *host, *port), "root", "") - c.Assert(err, IsNil) - c.Assert(s.d, NotNil) - - s.d.SetErrOut(os.Stderr) - - _, err = s.conn.Execute("CREATE DATABASE IF NOT EXISTS test1") - c.Assert(err, IsNil) - - _, err = s.conn.Execute("CREATE DATABASE IF NOT EXISTS test2") - c.Assert(err, IsNil) - - str := `CREATE TABLE IF NOT EXISTS test%d.t%d ( - id int AUTO_INCREMENT, - name varchar(256), - PRIMARY KEY(id) - ) ENGINE=INNODB` - _, err = s.conn.Execute(fmt.Sprintf(str, 1, 1)) - c.Assert(err, IsNil) - - _, err = s.conn.Execute(fmt.Sprintf(str, 2, 1)) - c.Assert(err, IsNil) - - _, err = s.conn.Execute(fmt.Sprintf(str, 1, 2)) - c.Assert(err, IsNil) - - _, err = s.conn.Execute(fmt.Sprintf(str, 2, 2)) - c.Assert(err, IsNil) - - str = `INSERT INTO test%d.t%d (name) VALUES ("a"), ("b"), ("\\"), ("''")` - - _, err = s.conn.Execute(fmt.Sprintf(str, 1, 1)) - c.Assert(err, IsNil) - - _, err = s.conn.Execute(fmt.Sprintf(str, 2, 1)) - c.Assert(err, IsNil) - - _, err = s.conn.Execute(fmt.Sprintf(str, 1, 2)) - c.Assert(err, IsNil) - - _, err = s.conn.Execute(fmt.Sprintf(str, 2, 2)) - c.Assert(err, IsNil) -} - -func (s *schemaTestSuite) TearDownSuite(c *C) { - if s.conn != nil { - _, err := s.conn.Execute("DROP DATABASE IF EXISTS test1") - c.Assert(err, IsNil) - - _, err = s.conn.Execute("DROP DATABASE IF EXISTS test2") - c.Assert(err, IsNil) - - s.conn.Close() - } -} - -func (s *schemaTestSuite) TestDump(c *C) { - // Using mysql 5.7 can't work, error: - // mysqldump: Error 1412: Table definition has changed, - // please retry transaction when dumping table `test_replication` at row: 0 - // err := s.d.Dump(ioutil.Discard) - // c.Assert(err, IsNil) - - s.d.AddDatabases("test1", "test2") - - s.d.AddIgnoreTables("test1", "t2") - - err := s.d.Dump(ioutil.Discard) - c.Assert(err, IsNil) - - s.d.AddTables("test1", "t1") - - err = s.d.Dump(ioutil.Discard) - c.Assert(err, IsNil) -} - -type testParseHandler struct { -} - -func (h *testParseHandler) BinLog(name string, pos uint64) error { - return nil -} - -func (h *testParseHandler) Data(schema string, table string, values []string) error { - return nil -} - -func (s *parserTestSuite) TestParseFindTable(c *C) { - tbl := []struct { - sql string - table string - }{ - {"INSERT INTO `note` VALUES ('title', 'here is sql: INSERT INTO `table` VALUES (\\'some value\\')');", "note"}, - {"INSERT INTO `note` VALUES ('1', '2', '3');", "note"}, - {"INSERT INTO `a.b` VALUES ('1');", "a.b"}, - } - - for _, t := range tbl { - res := valuesExp.FindAllStringSubmatch(t.sql, -1)[0][1] - c.Assert(res, Equals, t.table) - } -} - -type parserTestSuite struct { -} - -var _ = Suite(&parserTestSuite{}) - -func (s *parserTestSuite) TestUnescape(c *C) { - tbl := []struct { - escaped string - expected string - }{ - {`\\n`, `\n`}, - {`\\t`, `\t`}, - {`\\"`, `\"`}, - {`\\'`, `\'`}, - {`\\0`, `\0`}, - {`\\b`, `\b`}, - {`\\Z`, `\Z`}, - {`\\r`, `\r`}, - {`abc`, `abc`}, - {`abc\`, `abc`}, - {`ab\c`, `abc`}, - {`\abc`, `abc`}, - } - - for _, t := range tbl { - unesacped := unescapeString(t.escaped) - c.Assert(unesacped, Equals, t.expected) - } -} - -func (s *schemaTestSuite) TestParse(c *C) { - var buf bytes.Buffer - - s.d.Reset() - - s.d.AddDatabases("test1", "test2") - - err := s.d.Dump(&buf) - c.Assert(err, IsNil) - - err = Parse(&buf, new(testParseHandler)) - c.Assert(err, IsNil) -} - -func (s *parserTestSuite) TestParseValue(c *C) { - str := `'abc\\',''` - values, err := parseValues(str) - c.Assert(err, IsNil) - c.Assert(values, DeepEquals, []string{`'abc\'`, `''`}) - - str = `123,'\Z#÷QÎx£. Æ‘ÇoPâÅ_\r—\\','','qn'` - values, err = parseValues(str) - c.Assert(err, IsNil) - c.Assert(values, HasLen, 4) - - str = `123,'\Z#÷QÎx£. Æ‘ÇoPâÅ_\r—\\','','qn\'` - values, err = parseValues(str) - c.Assert(err, NotNil) -} diff --git a/vendor/github.com/siddontang/go-mysql/dump/parser.go b/vendor/github.com/siddontang/go-mysql/dump/parser.go deleted file mode 100644 index 69f65c7..0000000 --- a/vendor/github.com/siddontang/go-mysql/dump/parser.go +++ /dev/null @@ -1,188 +0,0 @@ -package dump - -import ( - "bufio" - "fmt" - "io" - "regexp" - "strconv" - - "github.com/juju/errors" - "github.com/siddontang/go-mysql/mysql" -) - -var ( - ErrSkip = errors.New("Handler error, but skipped") -) - -type ParseHandler interface { - // Parse CHANGE MASTER TO MASTER_LOG_FILE=name, MASTER_LOG_POS=pos; - BinLog(name string, pos uint64) error - - Data(schema string, table string, values []string) error -} - -var binlogExp *regexp.Regexp -var useExp *regexp.Regexp -var valuesExp *regexp.Regexp - -func init() { - binlogExp = regexp.MustCompile("^CHANGE MASTER TO MASTER_LOG_FILE='(.+)', MASTER_LOG_POS=(\\d+);") - useExp = regexp.MustCompile("^USE `(.+)`;") - valuesExp = regexp.MustCompile("^INSERT INTO `(.+?)` VALUES \\((.+)\\);$") -} - -// Parse the dump data with Dumper generate. -// It can not parse all the data formats with mysqldump outputs -func Parse(r io.Reader, h ParseHandler) error { - rb := bufio.NewReaderSize(r, 1024*16) - - var db string - var binlogParsed bool - - for { - line, err := rb.ReadString('\n') - if err != nil && err != io.EOF { - return errors.Trace(err) - } else if mysql.ErrorEqual(err, io.EOF) { - break - } - - line = line[0 : len(line)-1] - - if !binlogParsed { - if m := binlogExp.FindAllStringSubmatch(line, -1); len(m) == 1 { - name := m[0][1] - pos, err := strconv.ParseUint(m[0][2], 10, 64) - if err != nil { - return errors.Errorf("parse binlog %v err, invalid number", line) - } - - if err = h.BinLog(name, pos); err != nil && err != ErrSkip { - return errors.Trace(err) - } - - binlogParsed = true - } - } - - if m := useExp.FindAllStringSubmatch(line, -1); len(m) == 1 { - db = m[0][1] - } - - if m := valuesExp.FindAllStringSubmatch(line, -1); len(m) == 1 { - table := m[0][1] - - values, err := parseValues(m[0][2]) - if err != nil { - return errors.Errorf("parse values %v err", line) - } - - if err = h.Data(db, table, values); err != nil && err != ErrSkip { - return errors.Trace(err) - } - } - } - - return nil -} - -func parseValues(str string) ([]string, error) { - // values are seperated by comma, but we can not split using comma directly - // string is enclosed by single quote - - // a simple implementation, may be more robust later. - - values := make([]string, 0, 8) - - i := 0 - for i < len(str) { - if str[i] != '\'' { - // no string, read until comma - j := i + 1 - for ; j < len(str) && str[j] != ','; j++ { - } - values = append(values, str[i:j]) - // skip , - i = j + 1 - } else { - // read string until another single quote - j := i + 1 - - escaped := false - for j < len(str) { - if str[j] == '\\' { - // skip escaped character - j += 2 - escaped = true - continue - } else if str[j] == '\'' { - break - } else { - j++ - } - } - - if j >= len(str) { - return nil, fmt.Errorf("parse quote values error") - } - - value := str[i : j+1] - if escaped { - value = unescapeString(value) - } - values = append(values, value) - // skip ' and , - i = j + 2 - } - - // need skip blank??? - } - - return values, nil -} - -// unescapeString un-escapes the string. -// mysqldump will escape the string when dumps, -// Refer http://dev.mysql.com/doc/refman/5.7/en/string-literals.html -func unescapeString(s string) string { - i := 0 - - value := make([]byte, 0, len(s)) - for i < len(s) { - if s[i] == '\\' { - j := i + 1 - if j == len(s) { - // The last char is \, remove - break - } - - value = append(value, unescapeChar(s[j])) - i += 2 - } else { - value = append(value, s[i]) - i++ - } - } - - return string(value) -} - -func unescapeChar(ch byte) byte { - // \" \' \\ \n \0 \b \Z \r \t ==> escape to one char - switch ch { - case 'n': - ch = '\n' - case '0': - ch = 0 - case 'b': - ch = 8 - case 'Z': - ch = 26 - case 'r': - ch = '\r' - case 't': - ch = '\t' - } - return ch -} diff --git a/vendor/github.com/siddontang/go-mysql/failover/const.go b/vendor/github.com/siddontang/go-mysql/failover/const.go deleted file mode 100644 index 15e27d2..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/const.go +++ /dev/null @@ -1,11 +0,0 @@ -package failover - -const ( - IOThreadType = "IO_THREAD" - SQLThreadType = "SQL_THREAD" -) - -const ( - GTIDModeOn = "ON" - GTIDModeOff = "OFF" -) diff --git a/vendor/github.com/siddontang/go-mysql/failover/doc.go b/vendor/github.com/siddontang/go-mysql/failover/doc.go deleted file mode 100644 index feb037d..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// Failover supports to promote a new master and let other slaves -// replicate from it automatically. -// -// Failover does not support monitoring whether a master is alive or not, -// and will think the master is down. -// -// This package is still in development and could not be used in production environment. -package failover diff --git a/vendor/github.com/siddontang/go-mysql/failover/failover.go b/vendor/github.com/siddontang/go-mysql/failover/failover.go deleted file mode 100644 index 945c046..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/failover.go +++ /dev/null @@ -1,68 +0,0 @@ -package failover - -import ( - "github.com/juju/errors" - "github.com/siddontang/go-mysql/mysql" -) - -// Failover will do below things after the master down -// 1. Elect a slave which has the most up-to-date data with old master -// 2. Promote the slave to new master -// 3. Change other slaves to the new master -// -// Limitation: -// 1, All slaves must have the same master before, Failover will check using master server id or uuid -// 2, If the failover error, the whole topology may be wrong, we must handle this error manually -// 3, Slaves must have same replication mode, all use GTID or not -// -func Failover(flavor string, slaves []*Server) ([]*Server, error) { - var h Handler - var err error - - switch flavor { - case mysql.MySQLFlavor: - h = new(MysqlGTIDHandler) - case mysql.MariaDBFlavor: - return nil, errors.Errorf("MariaDB failover is not supported now") - default: - return nil, errors.Errorf("invalid flavor %s", flavor) - } - - // First check slaves use gtid or not - if err := h.CheckGTIDMode(slaves); err != nil { - return nil, errors.Trace(err) - } - - // Stop all slave IO_THREAD and wait the relay log done - for _, slave := range slaves { - if err = h.WaitRelayLogDone(slave); err != nil { - return nil, errors.Trace(err) - } - } - - var bestSlave *Server - // Find best slave which has the most up-to-data data - if bestSlaves, err := h.FindBestSlaves(slaves); err != nil { - return nil, errors.Trace(err) - } else { - bestSlave = bestSlaves[0] - } - - // Promote the best slave to master - if err = h.Promote(bestSlave); err != nil { - return nil, errors.Trace(err) - } - - // Change master - for i := 0; i < len(slaves); i++ { - if bestSlave == slaves[i] { - continue - } - - if err = h.ChangeMasterTo(slaves[i], bestSlave); err != nil { - return nil, errors.Trace(err) - } - } - - return slaves, nil -} diff --git a/vendor/github.com/siddontang/go-mysql/failover/failover_test.go b/vendor/github.com/siddontang/go-mysql/failover/failover_test.go deleted file mode 100644 index f3e4f19..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/failover_test.go +++ /dev/null @@ -1,176 +0,0 @@ -package failover - -import ( - "flag" - "fmt" - "testing" - - . "github.com/pingcap/check" -) - -// We will use go-mysql docker to test -// go-mysql docker will build mysql 1-3 instances -var host = flag.String("host", "127.0.0.1", "go-mysql docker container address") -var enable_failover_test = flag.Bool("test-failover", false, "enable test failover") - -func Test(t *testing.T) { - TestingT(t) -} - -type failoverTestSuite struct { - s []*Server -} - -var _ = Suite(&failoverTestSuite{}) - -func (s *failoverTestSuite) SetUpSuite(c *C) { - if !*enable_failover_test { - c.Skip("skip test failover") - } - - ports := []int{3306, 3307, 3308, 3316, 3317, 3318} - - s.s = make([]*Server, len(ports)) - - for i := 0; i < len(ports); i++ { - s.s[i] = NewServer(fmt.Sprintf("%s:%d", *host, ports[i]), User{"root", ""}, User{"root", ""}) - } - - var err error - for i := 0; i < len(ports); i++ { - err = s.s[i].StopSlave() - c.Assert(err, IsNil) - - err = s.s[i].ResetSlaveALL() - c.Assert(err, IsNil) - - _, err = s.s[i].Execute(`SET GLOBAL BINLOG_FORMAT = "ROW"`) - c.Assert(err, IsNil) - - _, err = s.s[i].Execute("DROP TABLE IF EXISTS test.go_mysql_test") - c.Assert(err, IsNil) - - _, err = s.s[i].Execute("CREATE TABLE IF NOT EXISTS test.go_mysql_test (id INT AUTO_INCREMENT, name VARCHAR(256), PRIMARY KEY(id)) engine=innodb") - c.Assert(err, IsNil) - - err = s.s[i].ResetMaster() - c.Assert(err, IsNil) - } -} - -func (s *failoverTestSuite) TearDownSuite(c *C) { -} - -func (s *failoverTestSuite) TestMysqlFailover(c *C) { - h := new(MysqlGTIDHandler) - - m := s.s[0] - s1 := s.s[1] - s2 := s.s[2] - - s.testFailover(c, h, m, s1, s2) -} - -func (s *failoverTestSuite) TestMariadbFailover(c *C) { - h := new(MariadbGTIDHandler) - - for i := 3; i <= 5; i++ { - _, err := s.s[i].Execute("SET GLOBAL gtid_slave_pos = ''") - c.Assert(err, IsNil) - } - - m := s.s[3] - s1 := s.s[4] - s2 := s.s[5] - - s.testFailover(c, h, m, s1, s2) -} - -func (s *failoverTestSuite) testFailover(c *C, h Handler, m *Server, s1 *Server, s2 *Server) { - var err error - err = h.ChangeMasterTo(s1, m) - c.Assert(err, IsNil) - - err = h.ChangeMasterTo(s2, m) - c.Assert(err, IsNil) - - id := s.checkInsert(c, m, "a") - - err = h.WaitCatchMaster(s1, m) - c.Assert(err, IsNil) - - err = h.WaitCatchMaster(s2, m) - c.Assert(err, IsNil) - - s.checkSelect(c, s1, id, "a") - s.checkSelect(c, s2, id, "a") - - err = s2.StopSlaveIOThread() - c.Assert(err, IsNil) - - id = s.checkInsert(c, m, "b") - id = s.checkInsert(c, m, "c") - - err = h.WaitCatchMaster(s1, m) - c.Assert(err, IsNil) - - s.checkSelect(c, s1, id, "c") - - best, err := h.FindBestSlaves([]*Server{s1, s2}) - c.Assert(err, IsNil) - c.Assert(best, DeepEquals, []*Server{s1}) - - // promote s1 to master - err = h.Promote(s1) - c.Assert(err, IsNil) - - // change s2 to master s1 - err = h.ChangeMasterTo(s2, s1) - c.Assert(err, IsNil) - - err = h.WaitCatchMaster(s2, s1) - c.Assert(err, IsNil) - - s.checkSelect(c, s2, id, "c") - - // change m to master s1 - err = h.ChangeMasterTo(m, s1) - c.Assert(err, IsNil) - - m, s1 = s1, m - id = s.checkInsert(c, m, "d") - - err = h.WaitCatchMaster(s1, m) - c.Assert(err, IsNil) - - err = h.WaitCatchMaster(s2, m) - c.Assert(err, IsNil) - - best, err = h.FindBestSlaves([]*Server{s1, s2}) - c.Assert(err, IsNil) - c.Assert(best, DeepEquals, []*Server{s1, s2}) - - err = s2.StopSlaveIOThread() - c.Assert(err, IsNil) - - id = s.checkInsert(c, m, "e") - err = h.WaitCatchMaster(s1, m) - - best, err = h.FindBestSlaves([]*Server{s1, s2}) - c.Assert(err, IsNil) - c.Assert(best, DeepEquals, []*Server{s1}) -} - -func (s *failoverTestSuite) checkSelect(c *C, m *Server, id uint64, name string) { - rr, err := m.Execute("SELECT name FROM test.go_mysql_test WHERE id = ?", id) - c.Assert(err, IsNil) - str, _ := rr.GetString(0, 0) - c.Assert(str, Equals, name) -} - -func (s *failoverTestSuite) checkInsert(c *C, m *Server, name string) uint64 { - r, err := m.Execute("INSERT INTO test.go_mysql_test (name) VALUES (?)", name) - c.Assert(err, IsNil) - - return r.InsertId -} diff --git a/vendor/github.com/siddontang/go-mysql/failover/handler.go b/vendor/github.com/siddontang/go-mysql/failover/handler.go deleted file mode 100644 index f750767..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/handler.go +++ /dev/null @@ -1,22 +0,0 @@ -package failover - -type Handler interface { - // Promote slave s to master - Promote(s *Server) error - - // Change slave s to master m and replicate from it - ChangeMasterTo(s *Server, m *Server) error - - // Ensure all relay log done, it will stop slave IO_THREAD - // You must start slave again if you want to do replication continuatively - WaitRelayLogDone(s *Server) error - - // Wait until slave s catch all data from master m at current time - WaitCatchMaster(s *Server, m *Server) error - - // Find best slave which has the most up-to-date data from master - FindBestSlaves(slaves []*Server) ([]*Server, error) - - // Check all slaves have gtid enabled - CheckGTIDMode(slaves []*Server) error -} diff --git a/vendor/github.com/siddontang/go-mysql/failover/mariadb_gtid_handler.go b/vendor/github.com/siddontang/go-mysql/failover/mariadb_gtid_handler.go deleted file mode 100644 index 5c8bd64..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/mariadb_gtid_handler.go +++ /dev/null @@ -1,142 +0,0 @@ -package failover - -import ( - "fmt" - "net" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" -) - -// Limiatation -// + Multi source replication is not supported -// + Slave can not handle write transactions, so maybe readonly or strict_mode = 1 is better -type MariadbGTIDHandler struct { - Handler -} - -func (h *MariadbGTIDHandler) Promote(s *Server) error { - if err := h.WaitRelayLogDone(s); err != nil { - return errors.Trace(err) - } - - if err := s.StopSlave(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (h *MariadbGTIDHandler) FindBestSlaves(slaves []*Server) ([]*Server, error) { - bestSlaves := []*Server{} - - ps := make([]uint64, len(slaves)) - - lastIndex := -1 - var seq uint64 - - for i, slave := range slaves { - rr, err := slave.Execute("SELECT @@gtid_current_pos") - - if err != nil { - return nil, errors.Trace(err) - } - - str, _ := rr.GetString(0, 0) - if len(str) == 0 { - seq = 0 - } else { - g, err := ParseMariadbGTIDSet(str) - if err != nil { - return nil, errors.Trace(err) - } - - seq = g.(MariadbGTID).SequenceNumber - } - - ps[i] = seq - - if lastIndex == -1 { - lastIndex = i - bestSlaves = []*Server{slave} - } else { - if ps[lastIndex] < seq { - lastIndex = i - bestSlaves = []*Server{slave} - } else if ps[lastIndex] == seq { - // these two slaves have same data, - bestSlaves = append(bestSlaves, slave) - } - } - } - - return bestSlaves, nil -} - -const changeMasterToWithCurrentPos = `CHANGE MASTER TO - MASTER_HOST = "%s", MASTER_PORT = %s, - MASTER_USER = "%s", MASTER_PASSWORD = "%s", - MASTER_USE_GTID = current_pos` - -func (h *MariadbGTIDHandler) ChangeMasterTo(s *Server, m *Server) error { - if err := h.WaitRelayLogDone(s); err != nil { - return errors.Trace(err) - } - - if err := s.StopSlave(); err != nil { - return errors.Trace(err) - } - - if err := s.ResetSlave(); err != nil { - return errors.Trace(err) - } - - host, port, _ := net.SplitHostPort(m.Addr) - - if _, err := s.Execute(fmt.Sprintf(changeMasterToWithCurrentPos, - host, port, m.ReplUser.Name, m.ReplUser.Password)); err != nil { - return errors.Trace(err) - } - - if err := s.StartSlave(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (h *MariadbGTIDHandler) WaitRelayLogDone(s *Server) error { - if err := s.StopSlaveIOThread(); err != nil { - return errors.Trace(err) - } - - r, err := s.SlaveStatus() - if err != nil { - return errors.Trace(err) - } - - fname, _ := r.GetStringByName(0, "Master_Log_File") - pos, _ := r.GetIntByName(0, "Read_Master_Log_Pos") - - return s.MasterPosWait(Position{fname, uint32(pos)}, 0) -} - -func (h *MariadbGTIDHandler) WaitCatchMaster(s *Server, m *Server) error { - r, err := m.Execute("SELECT @@gtid_binlog_pos") - if err != nil { - return errors.Trace(err) - } - - pos, _ := r.GetString(0, 0) - - return h.waitUntilAfterGTID(s, pos) -} - -func (h *MariadbGTIDHandler) CheckGTIDMode(slaves []*Server) error { - return nil -} - -func (h *MariadbGTIDHandler) waitUntilAfterGTID(s *Server, pos string) error { - _, err := s.Execute(fmt.Sprintf("SELECT MASTER_GTID_WAIT('%s')", pos)) - return err -} diff --git a/vendor/github.com/siddontang/go-mysql/failover/mysql_gtid_handler.go b/vendor/github.com/siddontang/go-mysql/failover/mysql_gtid_handler.go deleted file mode 100644 index 322913c..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/mysql_gtid_handler.go +++ /dev/null @@ -1,141 +0,0 @@ -package failover - -import ( - "fmt" - "net" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" -) - -type MysqlGTIDHandler struct { - Handler -} - -func (h *MysqlGTIDHandler) Promote(s *Server) error { - if err := h.WaitRelayLogDone(s); err != nil { - return errors.Trace(err) - } - - if err := s.StopSlave(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (h *MysqlGTIDHandler) FindBestSlaves(slaves []*Server) ([]*Server, error) { - // MHA use Relay_Master_Log_File and Exec_Master_Log_Pos to determind which is the best slave - - bestSlaves := []*Server{} - - ps := make([]Position, len(slaves)) - - lastIndex := -1 - - for i, slave := range slaves { - pos, err := slave.FetchSlaveExecutePos() - - if err != nil { - return nil, errors.Trace(err) - } - - ps[i] = pos - - if lastIndex == -1 { - lastIndex = i - bestSlaves = []*Server{slave} - } else { - switch ps[lastIndex].Compare(pos) { - case 1: - //do nothing - case -1: - lastIndex = i - bestSlaves = []*Server{slave} - case 0: - // these two slaves have same data, - bestSlaves = append(bestSlaves, slave) - } - } - } - - return bestSlaves, nil -} - -const changeMasterToWithAuto = `CHANGE MASTER TO - MASTER_HOST = "%s", MASTER_PORT = %s, - MASTER_USER = "%s", MASTER_PASSWORD = "%s", - MASTER_AUTO_POSITION = 1` - -func (h *MysqlGTIDHandler) ChangeMasterTo(s *Server, m *Server) error { - if err := h.WaitRelayLogDone(s); err != nil { - return errors.Trace(err) - } - - if err := s.StopSlave(); err != nil { - return errors.Trace(err) - } - - if err := s.ResetSlave(); err != nil { - return errors.Trace(err) - } - - host, port, _ := net.SplitHostPort(m.Addr) - - if _, err := s.Execute(fmt.Sprintf(changeMasterToWithAuto, - host, port, m.ReplUser.Name, m.ReplUser.Password)); err != nil { - return errors.Trace(err) - } - - if err := s.StartSlave(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (h *MysqlGTIDHandler) WaitRelayLogDone(s *Server) error { - if err := s.StopSlaveIOThread(); err != nil { - return errors.Trace(err) - } - - r, err := s.SlaveStatus() - if err != nil { - return errors.Trace(err) - } - - retrieved, _ := r.GetStringByName(0, "Retrieved_Gtid_Set") - - // may only support MySQL version >= 5.6.9 - // see http://dev.mysql.com/doc/refman/5.6/en/gtid-functions.html - return h.waitUntilAfterGTIDs(s, retrieved) -} - -func (h *MysqlGTIDHandler) WaitCatchMaster(s *Server, m *Server) error { - r, err := m.MasterStatus() - if err != nil { - return errors.Trace(err) - } - - masterGTIDSet, _ := r.GetStringByName(0, "Executed_Gtid_Set") - - return h.waitUntilAfterGTIDs(s, masterGTIDSet) -} - -func (h *MysqlGTIDHandler) CheckGTIDMode(slaves []*Server) error { - for i := 0; i < len(slaves); i++ { - mode, err := slaves[i].MysqlGTIDMode() - if err != nil { - return errors.Trace(err) - } else if mode != GTIDModeOn { - return errors.Errorf("%s use not GTID mode", slaves[i].Addr) - } - } - - return nil -} - -func (h *MysqlGTIDHandler) waitUntilAfterGTIDs(s *Server, gtids string) error { - _, err := s.Execute(fmt.Sprintf("SELECT WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS('%s')", gtids)) - return err -} diff --git a/vendor/github.com/siddontang/go-mysql/failover/server.go b/vendor/github.com/siddontang/go-mysql/failover/server.go deleted file mode 100644 index ff87464..0000000 --- a/vendor/github.com/siddontang/go-mysql/failover/server.go +++ /dev/null @@ -1,174 +0,0 @@ -package failover - -import ( - "fmt" - - "github.com/siddontang/go-mysql/client" - . "github.com/siddontang/go-mysql/mysql" -) - -type User struct { - Name string - Password string -} - -type Server struct { - Addr string - - User User - ReplUser User - - conn *client.Conn -} - -func NewServer(addr string, user User, replUser User) *Server { - s := new(Server) - - s.Addr = addr - - s.User = user - s.ReplUser = replUser - - return s -} - -func (s *Server) Close() { - if s.conn != nil { - s.conn.Close() - } -} - -func (s *Server) Execute(cmd string, args ...interface{}) (r *Result, err error) { - retryNum := 3 - for i := 0; i < retryNum; i++ { - if s.conn == nil { - s.conn, err = client.Connect(s.Addr, s.User.Name, s.User.Password, "") - if err != nil { - return nil, err - } - } - - r, err = s.conn.Execute(cmd, args...) - if err != nil && ErrorEqual(err, ErrBadConn) { - return - } else if ErrorEqual(err, ErrBadConn) { - s.conn = nil - continue - } else { - return - } - } - return -} - -func (s *Server) StartSlave() error { - _, err := s.Execute("START SLAVE") - return err -} - -func (s *Server) StopSlave() error { - _, err := s.Execute("STOP SLAVE") - return err -} - -func (s *Server) StopSlaveIOThread() error { - _, err := s.Execute("STOP SLAVE IO_THREAD") - return err -} - -func (s *Server) SlaveStatus() (*Resultset, error) { - r, err := s.Execute("SHOW SLAVE STATUS") - if err != nil { - return nil, err - } else { - return r.Resultset, nil - } -} - -func (s *Server) MasterStatus() (*Resultset, error) { - r, err := s.Execute("SHOW MASTER STATUS") - if err != nil { - return nil, err - } else { - return r.Resultset, nil - } -} - -func (s *Server) ResetSlave() error { - _, err := s.Execute("RESET SLAVE") - return err -} - -func (s *Server) ResetSlaveALL() error { - _, err := s.Execute("RESET SLAVE ALL") - return err -} - -func (s *Server) ResetMaster() error { - _, err := s.Execute("RESET MASTER") - return err -} - -func (s *Server) MysqlGTIDMode() (string, error) { - r, err := s.Execute("SELECT @@gtid_mode") - if err != nil { - return GTIDModeOff, err - } - on, _ := r.GetString(0, 0) - if on != GTIDModeOn { - return GTIDModeOff, nil - } else { - return GTIDModeOn, nil - } -} - -func (s *Server) SetReadonly(b bool) error { - var err error - if b { - _, err = s.Execute("SET GLOBAL read_only = ON") - } else { - _, err = s.Execute("SET GLOBAL read_only = OFF") - } - return err -} - -func (s *Server) LockTables() error { - _, err := s.Execute("FLUSH TABLES WITH READ LOCK") - return err -} - -func (s *Server) UnlockTables() error { - _, err := s.Execute("UNLOCK TABLES") - return err -} - -// Get current binlog filename and position read from master -func (s *Server) FetchSlaveReadPos() (Position, error) { - r, err := s.SlaveStatus() - if err != nil { - return Position{}, err - } - - fname, _ := r.GetStringByName(0, "Master_Log_File") - pos, _ := r.GetIntByName(0, "Read_Master_Log_Pos") - - return Position{fname, uint32(pos)}, nil -} - -// Get current executed binlog filename and position from master -func (s *Server) FetchSlaveExecutePos() (Position, error) { - r, err := s.SlaveStatus() - if err != nil { - return Position{}, err - } - - fname, _ := r.GetStringByName(0, "Relay_Master_Log_File") - pos, _ := r.GetIntByName(0, "Exec_Master_Log_Pos") - - return Position{fname, uint32(pos)}, nil -} - -func (s *Server) MasterPosWait(pos Position, timeout int) error { - _, err := s.Execute(fmt.Sprintf("SELECT MASTER_POS_WAIT('%s', %d, %d)", pos.Name, pos.Pos, timeout)) - return err -} diff --git a/vendor/github.com/siddontang/go-mysql/glide.lock b/vendor/github.com/siddontang/go-mysql/glide.lock deleted file mode 100644 index 7d71953..0000000 --- a/vendor/github.com/siddontang/go-mysql/glide.lock +++ /dev/null @@ -1,30 +0,0 @@ -hash: 1a3d05afef96cd7601a004e573b128db9051eecd1b5d0a3d69d3fa1ee1a3e3b8 -updated: 2016-09-03T12:30:00.028685232+08:00 -imports: -- name: github.com/BurntSushi/toml - version: 056c9bc7be7190eaa7715723883caffa5f8fa3e4 -- name: github.com/go-sql-driver/mysql - version: 3654d25ec346ee8ce71a68431025458d52a38ac0 -- name: github.com/jmoiron/sqlx - version: 54aec3fd91a2b2129ffaca0d652b8a9223ee2d9e - subpackages: - - reflectx -- name: github.com/juju/errors - version: 6f54ff6318409d31ff16261533ce2c8381a4fd5d -- name: github.com/ngaut/log - version: cec23d3e10b016363780d894a0eb732a12c06e02 -- name: github.com/pingcap/check - version: ce8a2f822ab1e245a4eefcef2996531c79c943f1 -- name: github.com/satori/go.uuid - version: 879c5887cd475cd7864858769793b2ceb0d44feb -- name: github.com/siddontang/go - version: 354e14e6c093c661abb29fd28403b3c19cff5514 - subpackages: - - hack - - ioutil2 - - sync2 -- name: golang.org/x/net - version: 6acef71eb69611914f7a30939ea9f6e194c78172 - subpackages: - - context -testImports: [] diff --git a/vendor/github.com/siddontang/go-mysql/glide.yaml b/vendor/github.com/siddontang/go-mysql/glide.yaml deleted file mode 100644 index 3561648..0000000 --- a/vendor/github.com/siddontang/go-mysql/glide.yaml +++ /dev/null @@ -1,26 +0,0 @@ -package: github.com/siddontang/go-mysql -import: -- package: github.com/BurntSushi/toml - version: 056c9bc7be7190eaa7715723883caffa5f8fa3e4 -- package: github.com/go-sql-driver/mysql - version: 3654d25ec346ee8ce71a68431025458d52a38ac0 -- package: github.com/jmoiron/sqlx - version: 54aec3fd91a2b2129ffaca0d652b8a9223ee2d9e - subpackages: - - reflectx -- package: github.com/juju/errors - version: 6f54ff6318409d31ff16261533ce2c8381a4fd5d -- package: github.com/ngaut/log - version: cec23d3e10b016363780d894a0eb732a12c06e02 -- package: github.com/pingcap/check - version: ce8a2f822ab1e245a4eefcef2996531c79c943f1 -- package: github.com/satori/go.uuid - version: ^1.1.0 -- package: github.com/siddontang/go - version: 354e14e6c093c661abb29fd28403b3c19cff5514 - subpackages: - - hack - - ioutil2 - - sync2 -- package: golang.org/x/net - version: 6acef71eb69611914f7a30939ea9f6e194c78172 diff --git a/vendor/github.com/siddontang/go-mysql/mysql/const.go b/vendor/github.com/siddontang/go-mysql/mysql/const.go deleted file mode 100644 index 2f4ab63..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/const.go +++ /dev/null @@ -1,164 +0,0 @@ -package mysql - -const ( - MinProtocolVersion byte = 10 - MaxPayloadLen int = 1<<24 - 1 - TimeFormat string = "2006-01-02 15:04:05" -) - -var ( - // maybe you can change for your specified name - ServerVersion string = "go-mysql-0.1" -) - -const ( - OK_HEADER byte = 0x00 - ERR_HEADER byte = 0xff - EOF_HEADER byte = 0xfe - LocalInFile_HEADER byte = 0xfb -) - -const ( - SERVER_STATUS_IN_TRANS uint16 = 0x0001 - SERVER_STATUS_AUTOCOMMIT uint16 = 0x0002 - SERVER_MORE_RESULTS_EXISTS uint16 = 0x0008 - SERVER_STATUS_NO_GOOD_INDEX_USED uint16 = 0x0010 - SERVER_STATUS_NO_INDEX_USED uint16 = 0x0020 - SERVER_STATUS_CURSOR_EXISTS uint16 = 0x0040 - SERVER_STATUS_LAST_ROW_SEND uint16 = 0x0080 - SERVER_STATUS_DB_DROPPED uint16 = 0x0100 - SERVER_STATUS_NO_BACKSLASH_ESCAPED uint16 = 0x0200 - SERVER_STATUS_METADATA_CHANGED uint16 = 0x0400 - SERVER_QUERY_WAS_SLOW uint16 = 0x0800 - SERVER_PS_OUT_PARAMS uint16 = 0x1000 -) - -const ( - COM_SLEEP byte = iota - 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 -) - -const ( - CLIENT_LONG_PASSWORD uint32 = 1 << iota - 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_SECURE_CONNECTION - CLIENT_MULTI_STATEMENTS - CLIENT_MULTI_RESULTS - CLIENT_PS_MULTI_RESULTS - CLIENT_PLUGIN_AUTH - CLIENT_CONNECT_ATTRS - CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA -) - -const ( - MYSQL_TYPE_DECIMAL byte = iota - 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 5.6 - MYSQL_TYPE_TIMESTAMP2 - MYSQL_TYPE_DATETIME2 - MYSQL_TYPE_TIME2 -) - -const ( - MYSQL_TYPE_JSON byte = iota + 0xf5 - MYSQL_TYPE_NEWDECIMAL - 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 -) - -const ( - NOT_NULL_FLAG = 1 - PRI_KEY_FLAG = 2 - UNIQUE_KEY_FLAG = 4 - BLOB_FLAG = 16 - UNSIGNED_FLAG = 32 - ZEROFILL_FLAG = 64 - BINARY_FLAG = 128 - ENUM_FLAG = 256 - AUTO_INCREMENT_FLAG = 512 - TIMESTAMP_FLAG = 1024 - SET_FLAG = 2048 - NUM_FLAG = 32768 - PART_KEY_FLAG = 16384 - GROUP_FLAG = 32768 - UNIQUE_FLAG = 65536 -) - -const ( - AUTH_NAME = "mysql_native_password" - DEFAULT_CHARSET = "utf8" - DEFAULT_COLLATION_ID uint8 = 33 - DEFAULT_COLLATION_NAME string = "utf8_general_ci" -) - -// Like vitess, use flavor for different MySQL versions, -const ( - MySQLFlavor = "mysql" - MariaDBFlavor = "mariadb" -) diff --git a/vendor/github.com/siddontang/go-mysql/mysql/errcode.go b/vendor/github.com/siddontang/go-mysql/mysql/errcode.go deleted file mode 100644 index 8acff1a..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/errcode.go +++ /dev/null @@ -1,870 +0,0 @@ -package mysql - -const ( - ER_ERROR_FIRST uint16 = 1000 - ER_HASHCHK = 1000 - ER_NISAMCHK = 1001 - ER_NO = 1002 - ER_YES = 1003 - ER_CANT_CREATE_FILE = 1004 - ER_CANT_CREATE_TABLE = 1005 - ER_CANT_CREATE_DB = 1006 - ER_DB_CREATE_EXISTS = 1007 - ER_DB_DROP_EXISTS = 1008 - ER_DB_DROP_DELETE = 1009 - ER_DB_DROP_RMDIR = 1010 - ER_CANT_DELETE_FILE = 1011 - ER_CANT_FIND_SYSTEM_REC = 1012 - ER_CANT_GET_STAT = 1013 - ER_CANT_GET_WD = 1014 - ER_CANT_LOCK = 1015 - ER_CANT_OPEN_FILE = 1016 - ER_FILE_NOT_FOUND = 1017 - ER_CANT_READ_DIR = 1018 - ER_CANT_SET_WD = 1019 - ER_CHECKREAD = 1020 - ER_DISK_FULL = 1021 - ER_DUP_KEY = 1022 - ER_ERROR_ON_CLOSE = 1023 - ER_ERROR_ON_READ = 1024 - ER_ERROR_ON_RENAME = 1025 - ER_ERROR_ON_WRITE = 1026 - ER_FILE_USED = 1027 - ER_FILSORT_ABORT = 1028 - ER_FORM_NOT_FOUND = 1029 - ER_GET_ERRNO = 1030 - ER_ILLEGAL_HA = 1031 - ER_KEY_NOT_FOUND = 1032 - ER_NOT_FORM_FILE = 1033 - ER_NOT_KEYFILE = 1034 - ER_OLD_KEYFILE = 1035 - ER_OPEN_AS_READONLY = 1036 - ER_OUTOFMEMORY = 1037 - ER_OUT_OF_SORTMEMORY = 1038 - ER_UNEXPECTED_EOF = 1039 - ER_CON_COUNT_ERROR = 1040 - ER_OUT_OF_RESOURCES = 1041 - ER_BAD_HOST_ERROR = 1042 - ER_HANDSHAKE_ERROR = 1043 - ER_DBACCESS_DENIED_ERROR = 1044 - ER_ACCESS_DENIED_ERROR = 1045 - ER_NO_DB_ERROR = 1046 - ER_UNKNOWN_COM_ERROR = 1047 - ER_BAD_NULL_ERROR = 1048 - ER_BAD_DB_ERROR = 1049 - ER_TABLE_EXISTS_ERROR = 1050 - ER_BAD_TABLE_ERROR = 1051 - ER_NON_UNIQ_ERROR = 1052 - ER_SERVER_SHUTDOWN = 1053 - ER_BAD_FIELD_ERROR = 1054 - ER_WRONG_FIELD_WITH_GROUP = 1055 - ER_WRONG_GROUP_FIELD = 1056 - ER_WRONG_SUM_SELECT = 1057 - ER_WRONG_VALUE_COUNT = 1058 - ER_TOO_LONG_IDENT = 1059 - ER_DUP_FIELDNAME = 1060 - ER_DUP_KEYNAME = 1061 - ER_DUP_ENTRY = 1062 - ER_WRONG_FIELD_SPEC = 1063 - ER_PARSE_ERROR = 1064 - ER_EMPTY_QUERY = 1065 - ER_NONUNIQ_TABLE = 1066 - ER_INVALID_DEFAULT = 1067 - ER_MULTIPLE_PRI_KEY = 1068 - ER_TOO_MANY_KEYS = 1069 - ER_TOO_MANY_KEY_PARTS = 1070 - ER_TOO_LONG_KEY = 1071 - ER_KEY_COLUMN_DOES_NOT_EXITS = 1072 - ER_BLOB_USED_AS_KEY = 1073 - ER_TOO_BIG_FIELDLENGTH = 1074 - ER_WRONG_AUTO_KEY = 1075 - ER_READY = 1076 - ER_NORMAL_SHUTDOWN = 1077 - ER_GOT_SIGNAL = 1078 - ER_SHUTDOWN_COMPLETE = 1079 - ER_FORCING_CLOSE = 1080 - ER_IPSOCK_ERROR = 1081 - ER_NO_SUCH_INDEX = 1082 - ER_WRONG_FIELD_TERMINATORS = 1083 - ER_BLOBS_AND_NO_TERMINATED = 1084 - ER_TEXTFILE_NOT_READABLE = 1085 - ER_FILE_EXISTS_ERROR = 1086 - ER_LOAD_INFO = 1087 - ER_ALTER_INFO = 1088 - ER_WRONG_SUB_KEY = 1089 - ER_CANT_REMOVE_ALL_FIELDS = 1090 - ER_CANT_DROP_FIELD_OR_KEY = 1091 - ER_INSERT_INFO = 1092 - ER_UPDATE_TABLE_USED = 1093 - ER_NO_SUCH_THREAD = 1094 - ER_KILL_DENIED_ERROR = 1095 - ER_NO_TABLES_USED = 1096 - ER_TOO_BIG_SET = 1097 - ER_NO_UNIQUE_LOGFILE = 1098 - ER_TABLE_NOT_LOCKED_FOR_WRITE = 1099 - ER_TABLE_NOT_LOCKED = 1100 - ER_BLOB_CANT_HAVE_DEFAULT = 1101 - ER_WRONG_DB_NAME = 1102 - ER_WRONG_TABLE_NAME = 1103 - ER_TOO_BIG_SELECT = 1104 - ER_UNKNOWN_ERROR = 1105 - ER_UNKNOWN_PROCEDURE = 1106 - ER_WRONG_PARAMCOUNT_TO_PROCEDURE = 1107 - ER_WRONG_PARAMETERS_TO_PROCEDURE = 1108 - ER_UNKNOWN_TABLE = 1109 - ER_FIELD_SPECIFIED_TWICE = 1110 - ER_INVALID_GROUP_FUNC_USE = 1111 - ER_UNSUPPORTED_EXTENSION = 1112 - ER_TABLE_MUST_HAVE_COLUMNS = 1113 - ER_RECORD_FILE_FULL = 1114 - ER_UNKNOWN_CHARACTER_SET = 1115 - ER_TOO_MANY_TABLES = 1116 - ER_TOO_MANY_FIELDS = 1117 - ER_TOO_BIG_ROWSIZE = 1118 - ER_STACK_OVERRUN = 1119 - ER_WRONG_OUTER_JOIN = 1120 - ER_NULL_COLUMN_IN_INDEX = 1121 - ER_CANT_FIND_UDF = 1122 - ER_CANT_INITIALIZE_UDF = 1123 - ER_UDF_NO_PATHS = 1124 - ER_UDF_EXISTS = 1125 - ER_CANT_OPEN_LIBRARY = 1126 - ER_CANT_FIND_DL_ENTRY = 1127 - ER_FUNCTION_NOT_DEFINED = 1128 - ER_HOST_IS_BLOCKED = 1129 - ER_HOST_NOT_PRIVILEGED = 1130 - ER_PASSWORD_ANONYMOUS_USER = 1131 - ER_PASSWORD_NOT_ALLOWED = 1132 - ER_PASSWORD_NO_MATCH = 1133 - ER_UPDATE_INFO = 1134 - ER_CANT_CREATE_THREAD = 1135 - ER_WRONG_VALUE_COUNT_ON_ROW = 1136 - ER_CANT_REOPEN_TABLE = 1137 - ER_INVALID_USE_OF_NULL = 1138 - ER_REGEXP_ERROR = 1139 - ER_MIX_OF_GROUP_FUNC_AND_FIELDS = 1140 - ER_NONEXISTING_GRANT = 1141 - ER_TABLEACCESS_DENIED_ERROR = 1142 - ER_COLUMNACCESS_DENIED_ERROR = 1143 - ER_ILLEGAL_GRANT_FOR_TABLE = 1144 - ER_GRANT_WRONG_HOST_OR_USER = 1145 - ER_NO_SUCH_TABLE = 1146 - ER_NONEXISTING_TABLE_GRANT = 1147 - ER_NOT_ALLOWED_COMMAND = 1148 - ER_SYNTAX_ERROR = 1149 - ER_DELAYED_CANT_CHANGE_LOCK = 1150 - ER_TOO_MANY_DELAYED_THREADS = 1151 - ER_ABORTING_CONNECTION = 1152 - ER_NET_PACKET_TOO_LARGE = 1153 - ER_NET_READ_ERROR_FROM_PIPE = 1154 - ER_NET_FCNTL_ERROR = 1155 - ER_NET_PACKETS_OUT_OF_ORDER = 1156 - ER_NET_UNCOMPRESS_ERROR = 1157 - ER_NET_READ_ERROR = 1158 - ER_NET_READ_INTERRUPTED = 1159 - ER_NET_ERROR_ON_WRITE = 1160 - ER_NET_WRITE_INTERRUPTED = 1161 - ER_TOO_LONG_STRING = 1162 - ER_TABLE_CANT_HANDLE_BLOB = 1163 - ER_TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164 - ER_DELAYED_INSERT_TABLE_LOCKED = 1165 - ER_WRONG_COLUMN_NAME = 1166 - ER_WRONG_KEY_COLUMN = 1167 - ER_WRONG_MRG_TABLE = 1168 - ER_DUP_UNIQUE = 1169 - ER_BLOB_KEY_WITHOUT_LENGTH = 1170 - ER_PRIMARY_CANT_HAVE_NULL = 1171 - ER_TOO_MANY_ROWS = 1172 - ER_REQUIRES_PRIMARY_KEY = 1173 - ER_NO_RAID_COMPILED = 1174 - ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175 - ER_KEY_DOES_NOT_EXITS = 1176 - ER_CHECK_NO_SUCH_TABLE = 1177 - ER_CHECK_NOT_IMPLEMENTED = 1178 - ER_CANT_DO_THIS_DURING_AN_TRANSACTION = 1179 - ER_ERROR_DURING_COMMIT = 1180 - ER_ERROR_DURING_ROLLBACK = 1181 - ER_ERROR_DURING_FLUSH_LOGS = 1182 - ER_ERROR_DURING_CHECKPOINT = 1183 - ER_NEW_ABORTING_CONNECTION = 1184 - ER_DUMP_NOT_IMPLEMENTED = 1185 - ER_FLUSH_MASTER_BINLOG_CLOSED = 1186 - ER_INDEX_REBUILD = 1187 - ER_MASTER = 1188 - ER_MASTER_NET_READ = 1189 - ER_MASTER_NET_WRITE = 1190 - ER_FT_MATCHING_KEY_NOT_FOUND = 1191 - ER_LOCK_OR_ACTIVE_TRANSACTION = 1192 - ER_UNKNOWN_SYSTEM_VARIABLE = 1193 - ER_CRASHED_ON_USAGE = 1194 - ER_CRASHED_ON_REPAIR = 1195 - ER_WARNING_NOT_COMPLETE_ROLLBACK = 1196 - ER_TRANS_CACHE_FULL = 1197 - ER_SLAVE_MUST_STOP = 1198 - ER_SLAVE_NOT_RUNNING = 1199 - ER_BAD_SLAVE = 1200 - ER_MASTER_INFO = 1201 - ER_SLAVE_THREAD = 1202 - ER_TOO_MANY_USER_CONNECTIONS = 1203 - ER_SET_CONSTANTS_ONLY = 1204 - ER_LOCK_WAIT_TIMEOUT = 1205 - ER_LOCK_TABLE_FULL = 1206 - ER_READ_ONLY_TRANSACTION = 1207 - ER_DROP_DB_WITH_READ_LOCK = 1208 - ER_CREATE_DB_WITH_READ_LOCK = 1209 - ER_WRONG_ARGUMENTS = 1210 - ER_NO_PERMISSION_TO_CREATE_USER = 1211 - ER_UNION_TABLES_IN_DIFFERENT_DIR = 1212 - ER_LOCK_DEADLOCK = 1213 - ER_TABLE_CANT_HANDLE_FT = 1214 - ER_CANNOT_ADD_FOREIGN = 1215 - ER_NO_REFERENCED_ROW = 1216 - ER_ROW_IS_REFERENCED = 1217 - ER_CONNECT_TO_MASTER = 1218 - ER_QUERY_ON_MASTER = 1219 - ER_ERROR_WHEN_EXECUTING_COMMAND = 1220 - ER_WRONG_USAGE = 1221 - ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222 - ER_CANT_UPDATE_WITH_READLOCK = 1223 - ER_MIXING_NOT_ALLOWED = 1224 - ER_DUP_ARGUMENT = 1225 - ER_USER_LIMIT_REACHED = 1226 - ER_SPECIFIC_ACCESS_DENIED_ERROR = 1227 - ER_LOCAL_VARIABLE = 1228 - ER_GLOBAL_VARIABLE = 1229 - ER_NO_DEFAULT = 1230 - ER_WRONG_VALUE_FOR_VAR = 1231 - ER_WRONG_TYPE_FOR_VAR = 1232 - ER_VAR_CANT_BE_READ = 1233 - ER_CANT_USE_OPTION_HERE = 1234 - ER_NOT_SUPPORTED_YET = 1235 - ER_MASTER_FATAL_ERROR_READING_BINLOG = 1236 - ER_SLAVE_IGNORED_TABLE = 1237 - ER_INCORRECT_GLOBAL_LOCAL_VAR = 1238 - ER_WRONG_FK_DEF = 1239 - ER_KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240 - ER_OPERAND_COLUMNS = 1241 - ER_SUBQUERY_NO_1_ROW = 1242 - ER_UNKNOWN_STMT_HANDLER = 1243 - ER_CORRUPT_HELP_DB = 1244 - ER_CYCLIC_REFERENCE = 1245 - ER_AUTO_CONVERT = 1246 - ER_ILLEGAL_REFERENCE = 1247 - ER_DERIVED_MUST_HAVE_ALIAS = 1248 - ER_SELECT_REDUCED = 1249 - ER_TABLENAME_NOT_ALLOWED_HERE = 1250 - ER_NOT_SUPPORTED_AUTH_MODE = 1251 - ER_SPATIAL_CANT_HAVE_NULL = 1252 - ER_COLLATION_CHARSET_MISMATCH = 1253 - ER_SLAVE_WAS_RUNNING = 1254 - ER_SLAVE_WAS_NOT_RUNNING = 1255 - ER_TOO_BIG_FOR_UNCOMPRESS = 1256 - ER_ZLIB_Z_MEM_ERROR = 1257 - ER_ZLIB_Z_BUF_ERROR = 1258 - ER_ZLIB_Z_DATA_ERROR = 1259 - ER_CUT_VALUE_GROUP_CONCAT = 1260 - ER_WARN_TOO_FEW_RECORDS = 1261 - ER_WARN_TOO_MANY_RECORDS = 1262 - ER_WARN_NULL_TO_NOTNULL = 1263 - ER_WARN_DATA_OUT_OF_RANGE = 1264 - WARN_DATA_TRUNCATED = 1265 - ER_WARN_USING_OTHER_HANDLER = 1266 - ER_CANT_AGGREGATE_2COLLATIONS = 1267 - ER_DROP_USER = 1268 - ER_REVOKE_GRANTS = 1269 - ER_CANT_AGGREGATE_3COLLATIONS = 1270 - ER_CANT_AGGREGATE_NCOLLATIONS = 1271 - ER_VARIABLE_IS_NOT_STRUCT = 1272 - ER_UNKNOWN_COLLATION = 1273 - ER_SLAVE_IGNORED_SSL_PARAMS = 1274 - ER_SERVER_IS_IN_SECURE_AUTH_MODE = 1275 - ER_WARN_FIELD_RESOLVED = 1276 - ER_BAD_SLAVE_UNTIL_COND = 1277 - ER_MISSING_SKIP_SLAVE = 1278 - ER_UNTIL_COND_IGNORED = 1279 - ER_WRONG_NAME_FOR_INDEX = 1280 - ER_WRONG_NAME_FOR_CATALOG = 1281 - ER_WARN_QC_RESIZE = 1282 - ER_BAD_FT_COLUMN = 1283 - ER_UNKNOWN_KEY_CACHE = 1284 - ER_WARN_HOSTNAME_WONT_WORK = 1285 - ER_UNKNOWN_STORAGE_ENGINE = 1286 - ER_WARN_DEPRECATED_SYNTAX = 1287 - ER_NON_UPDATABLE_TABLE = 1288 - ER_FEATURE_DISABLED = 1289 - ER_OPTION_PREVENTS_STATEMENT = 1290 - ER_DUPLICATED_VALUE_IN_TYPE = 1291 - ER_TRUNCATED_WRONG_VALUE = 1292 - ER_TOO_MUCH_AUTO_TIMESTAMP_COLS = 1293 - ER_INVALID_ON_UPDATE = 1294 - ER_UNSUPPORTED_PS = 1295 - ER_GET_ERRMSG = 1296 - ER_GET_TEMPORARY_ERRMSG = 1297 - ER_UNKNOWN_TIME_ZONE = 1298 - ER_WARN_INVALID_TIMESTAMP = 1299 - ER_INVALID_CHARACTER_STRING = 1300 - ER_WARN_ALLOWED_PACKET_OVERFLOWED = 1301 - ER_CONFLICTING_DECLARATIONS = 1302 - ER_SP_NO_RECURSIVE_CREATE = 1303 - ER_SP_ALREADY_EXISTS = 1304 - ER_SP_DOES_NOT_EXIST = 1305 - ER_SP_DROP_FAILED = 1306 - ER_SP_STORE_FAILED = 1307 - ER_SP_LILABEL_MISMATCH = 1308 - ER_SP_LABEL_REDEFINE = 1309 - ER_SP_LABEL_MISMATCH = 1310 - ER_SP_UNINIT_VAR = 1311 - ER_SP_BADSELECT = 1312 - ER_SP_BADRETURN = 1313 - ER_SP_BADSTATEMENT = 1314 - ER_UPDATE_LOG_DEPRECATED_IGNORED = 1315 - ER_UPDATE_LOG_DEPRECATED_TRANSLATED = 1316 - ER_QUERY_INTERRUPTED = 1317 - ER_SP_WRONG_NO_OF_ARGS = 1318 - ER_SP_COND_MISMATCH = 1319 - ER_SP_NORETURN = 1320 - ER_SP_NORETURNEND = 1321 - ER_SP_BAD_CURSOR_QUERY = 1322 - ER_SP_BAD_CURSOR_SELECT = 1323 - ER_SP_CURSOR_MISMATCH = 1324 - ER_SP_CURSOR_ALREADY_OPEN = 1325 - ER_SP_CURSOR_NOT_OPEN = 1326 - ER_SP_UNDECLARED_VAR = 1327 - ER_SP_WRONG_NO_OF_FETCH_ARGS = 1328 - ER_SP_FETCH_NO_DATA = 1329 - ER_SP_DUP_PARAM = 1330 - ER_SP_DUP_VAR = 1331 - ER_SP_DUP_COND = 1332 - ER_SP_DUP_CURS = 1333 - ER_SP_CANT_ALTER = 1334 - ER_SP_SUBSELECT_NYI = 1335 - ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336 - ER_SP_VARCOND_AFTER_CURSHNDLR = 1337 - ER_SP_CURSOR_AFTER_HANDLER = 1338 - ER_SP_CASE_NOT_FOUND = 1339 - ER_FPARSER_TOO_BIG_FILE = 1340 - ER_FPARSER_BAD_HEADER = 1341 - ER_FPARSER_EOF_IN_COMMENT = 1342 - ER_FPARSER_ERROR_IN_PARAMETER = 1343 - ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344 - ER_VIEW_NO_EXPLAIN = 1345 - ER_FRM_UNKNOWN_TYPE = 1346 - ER_WRONG_OBJECT = 1347 - ER_NONUPDATEABLE_COLUMN = 1348 - ER_VIEW_SELECT_DERIVED = 1349 - ER_VIEW_SELECT_CLAUSE = 1350 - ER_VIEW_SELECT_VARIABLE = 1351 - ER_VIEW_SELECT_TMPTABLE = 1352 - ER_VIEW_WRONG_LIST = 1353 - ER_WARN_VIEW_MERGE = 1354 - ER_WARN_VIEW_WITHOUT_KEY = 1355 - ER_VIEW_INVALID = 1356 - ER_SP_NO_DROP_SP = 1357 - ER_SP_GOTO_IN_HNDLR = 1358 - ER_TRG_ALREADY_EXISTS = 1359 - ER_TRG_DOES_NOT_EXIST = 1360 - ER_TRG_ON_VIEW_OR_TEMP_TABLE = 1361 - ER_TRG_CANT_CHANGE_ROW = 1362 - ER_TRG_NO_SUCH_ROW_IN_TRG = 1363 - ER_NO_DEFAULT_FOR_FIELD = 1364 - ER_DIVISION_BY_ZERO = 1365 - ER_TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366 - ER_ILLEGAL_VALUE_FOR_TYPE = 1367 - ER_VIEW_NONUPD_CHECK = 1368 - ER_VIEW_CHECK_FAILED = 1369 - ER_PROCACCESS_DENIED_ERROR = 1370 - ER_RELAY_LOG_FAIL = 1371 - ER_PASSWD_LENGTH = 1372 - ER_UNKNOWN_TARGET_BINLOG = 1373 - ER_IO_ERR_LOG_INDEX_READ = 1374 - ER_BINLOG_PURGE_PROHIBITED = 1375 - ER_FSEEK_FAIL = 1376 - ER_BINLOG_PURGE_FATAL_ERR = 1377 - ER_LOG_IN_USE = 1378 - ER_LOG_PURGE_UNKNOWN_ERR = 1379 - ER_RELAY_LOG_INIT = 1380 - ER_NO_BINARY_LOGGING = 1381 - ER_RESERVED_SYNTAX = 1382 - ER_WSAS_FAILED = 1383 - ER_DIFF_GROUPS_PROC = 1384 - ER_NO_GROUP_FOR_PROC = 1385 - ER_ORDER_WITH_PROC = 1386 - ER_LOGGING_PROHIBIT_CHANGING_OF = 1387 - ER_NO_FILE_MAPPING = 1388 - ER_WRONG_MAGIC = 1389 - ER_PS_MANY_PARAM = 1390 - ER_KEY_PART_0 = 1391 - ER_VIEW_CHECKSUM = 1392 - ER_VIEW_MULTIUPDATE = 1393 - ER_VIEW_NO_INSERT_FIELD_LIST = 1394 - ER_VIEW_DELETE_MERGE_VIEW = 1395 - ER_CANNOT_USER = 1396 - ER_XAER_NOTA = 1397 - ER_XAER_INVAL = 1398 - ER_XAER_RMFAIL = 1399 - ER_XAER_OUTSIDE = 1400 - ER_XAER_RMERR = 1401 - ER_XA_RBROLLBACK = 1402 - ER_NONEXISTING_PROC_GRANT = 1403 - ER_PROC_AUTO_GRANT_FAIL = 1404 - ER_PROC_AUTO_REVOKE_FAIL = 1405 - ER_DATA_TOO_LONG = 1406 - ER_SP_BAD_SQLSTATE = 1407 - ER_STARTUP = 1408 - ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409 - ER_CANT_CREATE_USER_WITH_GRANT = 1410 - ER_WRONG_VALUE_FOR_TYPE = 1411 - ER_TABLE_DEF_CHANGED = 1412 - ER_SP_DUP_HANDLER = 1413 - ER_SP_NOT_VAR_ARG = 1414 - ER_SP_NO_RETSET = 1415 - ER_CANT_CREATE_GEOMETRY_OBJECT = 1416 - ER_FAILED_ROUTINE_BREAK_BINLOG = 1417 - ER_BINLOG_UNSAFE_ROUTINE = 1418 - ER_BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419 - ER_EXEC_STMT_WITH_OPEN_CURSOR = 1420 - ER_STMT_HAS_NO_OPEN_CURSOR = 1421 - ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422 - ER_NO_DEFAULT_FOR_VIEW_FIELD = 1423 - ER_SP_NO_RECURSION = 1424 - ER_TOO_BIG_SCALE = 1425 - ER_TOO_BIG_PRECISION = 1426 - ER_M_BIGGER_THAN_D = 1427 - ER_WRONG_LOCK_OF_SYSTEM_TABLE = 1428 - ER_CONNECT_TO_FOREIGN_DATA_SOURCE = 1429 - ER_QUERY_ON_FOREIGN_DATA_SOURCE = 1430 - ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431 - ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432 - ER_FOREIGN_DATA_STRING_INVALID = 1433 - ER_CANT_CREATE_FEDERATED_TABLE = 1434 - ER_TRG_IN_WRONG_SCHEMA = 1435 - ER_STACK_OVERRUN_NEED_MORE = 1436 - ER_TOO_LONG_BODY = 1437 - ER_WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438 - ER_TOO_BIG_DISPLAYWIDTH = 1439 - ER_XAER_DUPID = 1440 - ER_DATETIME_FUNCTION_OVERFLOW = 1441 - ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442 - ER_VIEW_PREVENT_UPDATE = 1443 - ER_PS_NO_RECURSION = 1444 - ER_SP_CANT_SET_AUTOCOMMIT = 1445 - ER_MALFORMED_DEFINER = 1446 - ER_VIEW_FRM_NO_USER = 1447 - ER_VIEW_OTHER_USER = 1448 - ER_NO_SUCH_USER = 1449 - ER_FORBID_SCHEMA_CHANGE = 1450 - ER_ROW_IS_REFERENCED_2 = 1451 - ER_NO_REFERENCED_ROW_2 = 1452 - ER_SP_BAD_VAR_SHADOW = 1453 - ER_TRG_NO_DEFINER = 1454 - ER_OLD_FILE_FORMAT = 1455 - ER_SP_RECURSION_LIMIT = 1456 - ER_SP_PROC_TABLE_CORRUPT = 1457 - ER_SP_WRONG_NAME = 1458 - ER_TABLE_NEEDS_UPGRADE = 1459 - ER_SP_NO_AGGREGATE = 1460 - ER_MAX_PREPARED_STMT_COUNT_REACHED = 1461 - ER_VIEW_RECURSIVE = 1462 - ER_NON_GROUPING_FIELD_USED = 1463 - ER_TABLE_CANT_HANDLE_SPKEYS = 1464 - ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465 - ER_REMOVED_SPACES = 1466 - ER_AUTOINC_READ_FAILED = 1467 - ER_USERNAME = 1468 - ER_HOSTNAME = 1469 - ER_WRONG_STRING_LENGTH = 1470 - ER_NON_INSERTABLE_TABLE = 1471 - ER_ADMIN_WRONG_MRG_TABLE = 1472 - ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT = 1473 - ER_NAME_BECOMES_EMPTY = 1474 - ER_AMBIGUOUS_FIELD_TERM = 1475 - ER_FOREIGN_SERVER_EXISTS = 1476 - ER_FOREIGN_SERVER_DOESNT_EXIST = 1477 - ER_ILLEGAL_HA_CREATE_OPTION = 1478 - ER_PARTITION_REQUIRES_VALUES_ERROR = 1479 - ER_PARTITION_WRONG_VALUES_ERROR = 1480 - ER_PARTITION_MAXVALUE_ERROR = 1481 - ER_PARTITION_SUBPARTITION_ERROR = 1482 - ER_PARTITION_SUBPART_MIX_ERROR = 1483 - ER_PARTITION_WRONG_NO_PART_ERROR = 1484 - ER_PARTITION_WRONG_NO_SUBPART_ERROR = 1485 - ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR = 1486 - ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR = 1487 - ER_FIELD_NOT_FOUND_PART_ERROR = 1488 - ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR = 1489 - ER_INCONSISTENT_PARTITION_INFO_ERROR = 1490 - ER_PARTITION_FUNC_NOT_ALLOWED_ERROR = 1491 - ER_PARTITIONS_MUST_BE_DEFINED_ERROR = 1492 - ER_RANGE_NOT_INCREASING_ERROR = 1493 - ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR = 1494 - ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR = 1495 - ER_PARTITION_ENTRY_ERROR = 1496 - ER_MIX_HANDLER_ERROR = 1497 - ER_PARTITION_NOT_DEFINED_ERROR = 1498 - ER_TOO_MANY_PARTITIONS_ERROR = 1499 - ER_SUBPARTITION_ERROR = 1500 - ER_CANT_CREATE_HANDLER_FILE = 1501 - ER_BLOB_FIELD_IN_PART_FUNC_ERROR = 1502 - ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF = 1503 - ER_NO_PARTS_ERROR = 1504 - ER_PARTITION_MGMT_ON_NONPARTITIONED = 1505 - ER_FOREIGN_KEY_ON_PARTITIONED = 1506 - ER_DROP_PARTITION_NON_EXISTENT = 1507 - ER_DROP_LAST_PARTITION = 1508 - ER_COALESCE_ONLY_ON_HASH_PARTITION = 1509 - ER_REORG_HASH_ONLY_ON_SAME_NO = 1510 - ER_REORG_NO_PARAM_ERROR = 1511 - ER_ONLY_ON_RANGE_LIST_PARTITION = 1512 - ER_ADD_PARTITION_SUBPART_ERROR = 1513 - ER_ADD_PARTITION_NO_NEW_PARTITION = 1514 - ER_COALESCE_PARTITION_NO_PARTITION = 1515 - ER_REORG_PARTITION_NOT_EXIST = 1516 - ER_SAME_NAME_PARTITION = 1517 - ER_NO_BINLOG_ERROR = 1518 - ER_CONSECUTIVE_REORG_PARTITIONS = 1519 - ER_REORG_OUTSIDE_RANGE = 1520 - ER_PARTITION_FUNCTION_FAILURE = 1521 - ER_PART_STATE_ERROR = 1522 - ER_LIMITED_PART_RANGE = 1523 - ER_PLUGIN_IS_NOT_LOADED = 1524 - ER_WRONG_VALUE = 1525 - ER_NO_PARTITION_FOR_GIVEN_VALUE = 1526 - ER_FILEGROUP_OPTION_ONLY_ONCE = 1527 - ER_CREATE_FILEGROUP_FAILED = 1528 - ER_DROP_FILEGROUP_FAILED = 1529 - ER_TABLESPACE_AUTO_EXTEND_ERROR = 1530 - ER_WRONG_SIZE_NUMBER = 1531 - ER_SIZE_OVERFLOW_ERROR = 1532 - ER_ALTER_FILEGROUP_FAILED = 1533 - ER_BINLOG_ROW_LOGGING_FAILED = 1534 - ER_BINLOG_ROW_WRONG_TABLE_DEF = 1535 - ER_BINLOG_ROW_RBR_TO_SBR = 1536 - ER_EVENT_ALREADY_EXISTS = 1537 - ER_EVENT_STORE_FAILED = 1538 - ER_EVENT_DOES_NOT_EXIST = 1539 - ER_EVENT_CANT_ALTER = 1540 - ER_EVENT_DROP_FAILED = 1541 - ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG = 1542 - ER_EVENT_ENDS_BEFORE_STARTS = 1543 - ER_EVENT_EXEC_TIME_IN_THE_PAST = 1544 - ER_EVENT_OPEN_TABLE_FAILED = 1545 - ER_EVENT_NEITHER_M_EXPR_NOR_M_AT = 1546 - ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED = 1547 - ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE = 1548 - ER_EVENT_CANNOT_DELETE = 1549 - ER_EVENT_COMPILE_ERROR = 1550 - ER_EVENT_SAME_NAME = 1551 - ER_EVENT_DATA_TOO_LONG = 1552 - ER_DROP_INDEX_FK = 1553 - ER_WARN_DEPRECATED_SYNTAX_WITH_VER = 1554 - ER_CANT_WRITE_LOCK_LOG_TABLE = 1555 - ER_CANT_LOCK_LOG_TABLE = 1556 - ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED = 1557 - ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE = 1558 - ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR = 1559 - ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1560 - ER_NDB_CANT_SWITCH_BINLOG_FORMAT = 1561 - ER_PARTITION_NO_TEMPORARY = 1562 - ER_PARTITION_CONST_DOMAIN_ERROR = 1563 - ER_PARTITION_FUNCTION_IS_NOT_ALLOWED = 1564 - ER_DDL_LOG_ERROR = 1565 - ER_NULL_IN_VALUES_LESS_THAN = 1566 - ER_WRONG_PARTITION_NAME = 1567 - ER_CANT_CHANGE_TX_CHARACTERISTICS = 1568 - ER_DUP_ENTRY_AUTOINCREMENT_CASE = 1569 - ER_EVENT_MODIFY_QUEUE_ERROR = 1570 - ER_EVENT_SET_VAR_ERROR = 1571 - ER_PARTITION_MERGE_ERROR = 1572 - ER_CANT_ACTIVATE_LOG = 1573 - ER_RBR_NOT_AVAILABLE = 1574 - ER_BASE64_DECODE_ERROR = 1575 - ER_EVENT_RECURSION_FORBIDDEN = 1576 - ER_EVENTS_DB_ERROR = 1577 - ER_ONLY_INTEGERS_ALLOWED = 1578 - ER_UNSUPORTED_LOG_ENGINE = 1579 - ER_BAD_LOG_STATEMENT = 1580 - ER_CANT_RENAME_LOG_TABLE = 1581 - ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT = 1582 - ER_WRONG_PARAMETERS_TO_NATIVE_FCT = 1583 - ER_WRONG_PARAMETERS_TO_STORED_FCT = 1584 - ER_NATIVE_FCT_NAME_COLLISION = 1585 - ER_DUP_ENTRY_WITH_KEY_NAME = 1586 - ER_BINLOG_PURGE_EMFILE = 1587 - ER_EVENT_CANNOT_CREATE_IN_THE_PAST = 1588 - ER_EVENT_CANNOT_ALTER_IN_THE_PAST = 1589 - ER_SLAVE_INCIDENT = 1590 - ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT = 1591 - ER_BINLOG_UNSAFE_STATEMENT = 1592 - ER_SLAVE_FATAL_ERROR = 1593 - ER_SLAVE_RELAY_LOG_READ_FAILURE = 1594 - ER_SLAVE_RELAY_LOG_WRITE_FAILURE = 1595 - ER_SLAVE_CREATE_EVENT_FAILURE = 1596 - ER_SLAVE_MASTER_COM_FAILURE = 1597 - ER_BINLOG_LOGGING_IMPOSSIBLE = 1598 - ER_VIEW_NO_CREATION_CTX = 1599 - ER_VIEW_INVALID_CREATION_CTX = 1600 - ER_SR_INVALID_CREATION_CTX = 1601 - ER_TRG_CORRUPTED_FILE = 1602 - ER_TRG_NO_CREATION_CTX = 1603 - ER_TRG_INVALID_CREATION_CTX = 1604 - ER_EVENT_INVALID_CREATION_CTX = 1605 - ER_TRG_CANT_OPEN_TABLE = 1606 - ER_CANT_CREATE_SROUTINE = 1607 - ER_NEVER_USED = 1608 - ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT = 1609 - ER_SLAVE_CORRUPT_EVENT = 1610 - ER_LOAD_DATA_INVALID_COLUMN = 1611 - ER_LOG_PURGE_NO_FILE = 1612 - ER_XA_RBTIMEOUT = 1613 - ER_XA_RBDEADLOCK = 1614 - ER_NEED_REPREPARE = 1615 - ER_DELAYED_NOT_SUPPORTED = 1616 - WARN_NO_MASTER_INFO = 1617 - WARN_OPTION_IGNORED = 1618 - WARN_PLUGIN_DELETE_BUILTIN = 1619 - WARN_PLUGIN_BUSY = 1620 - ER_VARIABLE_IS_READONLY = 1621 - ER_WARN_ENGINE_TRANSACTION_ROLLBACK = 1622 - ER_SLAVE_HEARTBEAT_FAILURE = 1623 - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE = 1624 - ER_NDB_REPLICATION_SCHEMA_ERROR = 1625 - ER_CONFLICT_FN_PARSE_ERROR = 1626 - ER_EXCEPTIONS_WRITE_ERROR = 1627 - ER_TOO_LONG_TABLE_COMMENT = 1628 - ER_TOO_LONG_FIELD_COMMENT = 1629 - ER_FUNC_INEXISTENT_NAME_COLLISION = 1630 - ER_DATABASE_NAME = 1631 - ER_TABLE_NAME = 1632 - ER_PARTITION_NAME = 1633 - ER_SUBPARTITION_NAME = 1634 - ER_TEMPORARY_NAME = 1635 - ER_RENAMED_NAME = 1636 - ER_TOO_MANY_CONCURRENT_TRXS = 1637 - WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED = 1638 - ER_DEBUG_SYNC_TIMEOUT = 1639 - ER_DEBUG_SYNC_HIT_LIMIT = 1640 - ER_DUP_SIGNAL_SET = 1641 - ER_SIGNAL_WARN = 1642 - ER_SIGNAL_NOT_FOUND = 1643 - ER_SIGNAL_EXCEPTION = 1644 - ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER = 1645 - ER_SIGNAL_BAD_CONDITION_TYPE = 1646 - WARN_COND_ITEM_TRUNCATED = 1647 - ER_COND_ITEM_TOO_LONG = 1648 - ER_UNKNOWN_LOCALE = 1649 - ER_SLAVE_IGNORE_SERVER_IDS = 1650 - ER_QUERY_CACHE_DISABLED = 1651 - ER_SAME_NAME_PARTITION_FIELD = 1652 - ER_PARTITION_COLUMN_LIST_ERROR = 1653 - ER_WRONG_TYPE_COLUMN_VALUE_ERROR = 1654 - ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR = 1655 - ER_MAXVALUE_IN_VALUES_IN = 1656 - ER_TOO_MANY_VALUES_ERROR = 1657 - ER_ROW_SINGLE_PARTITION_FIELD_ERROR = 1658 - ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD = 1659 - ER_PARTITION_FIELDS_TOO_LONG = 1660 - ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE = 1661 - ER_BINLOG_ROW_MODE_AND_STMT_ENGINE = 1662 - ER_BINLOG_UNSAFE_AND_STMT_ENGINE = 1663 - ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE = 1664 - ER_BINLOG_STMT_MODE_AND_ROW_ENGINE = 1665 - ER_BINLOG_ROW_INJECTION_AND_STMT_MODE = 1666 - ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1667 - ER_BINLOG_UNSAFE_LIMIT = 1668 - ER_BINLOG_UNSAFE_INSERT_DELAYED = 1669 - ER_BINLOG_UNSAFE_SYSTEM_TABLE = 1670 - ER_BINLOG_UNSAFE_AUTOINC_COLUMNS = 1671 - ER_BINLOG_UNSAFE_UDF = 1672 - ER_BINLOG_UNSAFE_SYSTEM_VARIABLE = 1673 - ER_BINLOG_UNSAFE_SYSTEM_FUNCTION = 1674 - ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS = 1675 - ER_MESSAGE_AND_STATEMENT = 1676 - ER_SLAVE_CONVERSION_FAILED = 1677 - ER_SLAVE_CANT_CREATE_CONVERSION = 1678 - ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1679 - ER_PATH_LENGTH = 1680 - ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT = 1681 - ER_WRONG_NATIVE_TABLE_STRUCTURE = 1682 - ER_WRONG_PERFSCHEMA_USAGE = 1683 - ER_WARN_I_S_SKIPPED_TABLE = 1684 - ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1685 - ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1686 - ER_SPATIAL_MUST_HAVE_GEOM_COL = 1687 - ER_TOO_LONG_INDEX_COMMENT = 1688 - ER_LOCK_ABORTED = 1689 - ER_DATA_OUT_OF_RANGE = 1690 - ER_WRONG_SPVAR_TYPE_IN_LIMIT = 1691 - ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1692 - ER_BINLOG_UNSAFE_MIXED_STATEMENT = 1693 - ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1694 - ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1695 - ER_FAILED_READ_FROM_PAR_FILE = 1696 - ER_VALUES_IS_NOT_INT_TYPE_ERROR = 1697 - ER_ACCESS_DENIED_NO_PASSWORD_ERROR = 1698 - ER_SET_PASSWORD_AUTH_PLUGIN = 1699 - ER_GRANT_PLUGIN_USER_EXISTS = 1700 - ER_TRUNCATE_ILLEGAL_FK = 1701 - ER_PLUGIN_IS_PERMANENT = 1702 - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN = 1703 - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX = 1704 - ER_STMT_CACHE_FULL = 1705 - ER_MULTI_UPDATE_KEY_CONFLICT = 1706 - ER_TABLE_NEEDS_REBUILD = 1707 - WARN_OPTION_BELOW_LIMIT = 1708 - ER_INDEX_COLUMN_TOO_LONG = 1709 - ER_ERROR_IN_TRIGGER_BODY = 1710 - ER_ERROR_IN_UNKNOWN_TRIGGER_BODY = 1711 - ER_INDEX_CORRUPT = 1712 - ER_UNDO_RECORD_TOO_BIG = 1713 - ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT = 1714 - ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE = 1715 - ER_BINLOG_UNSAFE_REPLACE_SELECT = 1716 - ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT = 1717 - ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT = 1718 - ER_BINLOG_UNSAFE_UPDATE_IGNORE = 1719 - ER_PLUGIN_NO_UNINSTALL = 1720 - ER_PLUGIN_NO_INSTALL = 1721 - ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT = 1722 - ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC = 1723 - ER_BINLOG_UNSAFE_INSERT_TWO_KEYS = 1724 - ER_TABLE_IN_FK_CHECK = 1725 - ER_UNSUPPORTED_ENGINE = 1726 - ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST = 1727 - ER_CANNOT_LOAD_FROM_TABLE_V2 = 1728 - ER_MASTER_DELAY_VALUE_OUT_OF_RANGE = 1729 - ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT = 1730 - ER_PARTITION_EXCHANGE_DIFFERENT_OPTION = 1731 - ER_PARTITION_EXCHANGE_PART_TABLE = 1732 - ER_PARTITION_EXCHANGE_TEMP_TABLE = 1733 - ER_PARTITION_INSTEAD_OF_SUBPARTITION = 1734 - ER_UNKNOWN_PARTITION = 1735 - ER_TABLES_DIFFERENT_METADATA = 1736 - ER_ROW_DOES_NOT_MATCH_PARTITION = 1737 - ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX = 1738 - ER_WARN_INDEX_NOT_APPLICABLE = 1739 - ER_PARTITION_EXCHANGE_FOREIGN_KEY = 1740 - ER_NO_SUCH_KEY_VALUE = 1741 - ER_RPL_INFO_DATA_TOO_LONG = 1742 - ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE = 1743 - ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE = 1744 - ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX = 1745 - ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT = 1746 - ER_PARTITION_CLAUSE_ON_NONPARTITIONED = 1747 - ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET = 1748 - ER_NO_SUCH_PARTITION__UNUSED = 1749 - ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE = 1750 - ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE = 1751 - ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE = 1752 - ER_MTS_FEATURE_IS_NOT_SUPPORTED = 1753 - ER_MTS_UPDATED_DBS_GREATER_MAX = 1754 - ER_MTS_CANT_PARALLEL = 1755 - ER_MTS_INCONSISTENT_DATA = 1756 - ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING = 1757 - ER_DA_INVALID_CONDITION_NUMBER = 1758 - ER_INSECURE_PLAIN_TEXT = 1759 - ER_INSECURE_CHANGE_MASTER = 1760 - ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO = 1761 - ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO = 1762 - ER_SQLTHREAD_WITH_SECURE_SLAVE = 1763 - ER_TABLE_HAS_NO_FT = 1764 - ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER = 1765 - ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION = 1766 - ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST = 1767 - ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION_WHEN_GTID_NEXT_LIST_IS_NULL = 1768 - ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION = 1769 - ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL = 1770 - ER_SKIPPING_LOGGED_TRANSACTION = 1771 - ER_MALFORMED_GTID_SET_SPECIFICATION = 1772 - ER_MALFORMED_GTID_SET_ENCODING = 1773 - ER_MALFORMED_GTID_SPECIFICATION = 1774 - ER_GNO_EXHAUSTED = 1775 - ER_BAD_SLAVE_AUTO_POSITION = 1776 - ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON = 1777 - ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET = 1778 - ER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON = 1779 - ER_GTID_MODE_REQUIRES_BINLOG = 1780 - ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF = 1781 - ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON = 1782 - ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF = 1783 - ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF = 1784 - ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE = 1785 - ER_GTID_UNSAFE_CREATE_SELECT = 1786 - ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION = 1787 - ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME = 1788 - ER_MASTER_HAS_PURGED_REQUIRED_GTIDS = 1789 - ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID = 1790 - ER_UNKNOWN_EXPLAIN_FORMAT = 1791 - ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION = 1792 - ER_TOO_LONG_TABLE_PARTITION_COMMENT = 1793 - ER_SLAVE_CONFIGURATION = 1794 - ER_INNODB_FT_LIMIT = 1795 - ER_INNODB_NO_FT_TEMP_TABLE = 1796 - ER_INNODB_FT_WRONG_DOCID_COLUMN = 1797 - ER_INNODB_FT_WRONG_DOCID_INDEX = 1798 - ER_INNODB_ONLINE_LOG_TOO_BIG = 1799 - ER_UNKNOWN_ALTER_ALGORITHM = 1800 - ER_UNKNOWN_ALTER_LOCK = 1801 - ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS = 1802 - ER_MTS_RECOVERY_FAILURE = 1803 - ER_MTS_RESET_WORKERS = 1804 - ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2 = 1805 - ER_SLAVE_SILENT_RETRY_TRANSACTION = 1806 - ER_DISCARD_FK_CHECKS_RUNNING = 1807 - ER_TABLE_SCHEMA_MISMATCH = 1808 - ER_TABLE_IN_SYSTEM_TABLESPACE = 1809 - ER_IO_READ_ERROR = 1810 - ER_IO_WRITE_ERROR = 1811 - ER_TABLESPACE_MISSING = 1812 - ER_TABLESPACE_EXISTS = 1813 - ER_TABLESPACE_DISCARDED = 1814 - ER_INTERNAL_ERROR = 1815 - ER_INNODB_IMPORT_ERROR = 1816 - ER_INNODB_INDEX_CORRUPT = 1817 - ER_INVALID_YEAR_COLUMN_LENGTH = 1818 - ER_NOT_VALID_PASSWORD = 1819 - ER_MUST_CHANGE_PASSWORD = 1820 - ER_FK_NO_INDEX_CHILD = 1821 - ER_FK_NO_INDEX_PARENT = 1822 - ER_FK_FAIL_ADD_SYSTEM = 1823 - ER_FK_CANNOT_OPEN_PARENT = 1824 - ER_FK_INCORRECT_OPTION = 1825 - ER_FK_DUP_NAME = 1826 - ER_PASSWORD_FORMAT = 1827 - ER_FK_COLUMN_CANNOT_DROP = 1828 - ER_FK_COLUMN_CANNOT_DROP_CHILD = 1829 - ER_FK_COLUMN_NOT_NULL = 1830 - ER_DUP_INDEX = 1831 - ER_FK_COLUMN_CANNOT_CHANGE = 1832 - ER_FK_COLUMN_CANNOT_CHANGE_CHILD = 1833 - ER_FK_CANNOT_DELETE_PARENT = 1834 - ER_MALFORMED_PACKET = 1835 - ER_READ_ONLY_MODE = 1836 - ER_GTID_NEXT_TYPE_UNDEFINED_GROUP = 1837 - ER_VARIABLE_NOT_SETTABLE_IN_SP = 1838 - ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF = 1839 - ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY = 1840 - ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY = 1841 - ER_GTID_PURGED_WAS_CHANGED = 1842 - ER_GTID_EXECUTED_WAS_CHANGED = 1843 - ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES = 1844 - ER_ALTER_OPERATION_NOT_SUPPORTED = 1845 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON = 1846 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY = 1847 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION = 1848 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME = 1849 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE = 1850 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK = 1851 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE = 1852 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK = 1853 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC = 1854 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS = 1855 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS = 1856 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS = 1857 - ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE = 1858 - ER_DUP_UNKNOWN_IN_INDEX = 1859 - ER_IDENT_CAUSES_TOO_LONG_PATH = 1860 - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL = 1861 - ER_MUST_CHANGE_PASSWORD_LOGIN = 1862 - ER_ROW_IN_WRONG_PARTITION = 1863 - ER_ERROR_LAST = 1863 -) diff --git a/vendor/github.com/siddontang/go-mysql/mysql/errname.go b/vendor/github.com/siddontang/go-mysql/mysql/errname.go deleted file mode 100644 index 7f8575a..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/errname.go +++ /dev/null @@ -1,868 +0,0 @@ -package mysql - -var MySQLErrName = map[uint16]string{ - ER_HASHCHK: "hashchk", - ER_NISAMCHK: "isamchk", - ER_NO: "NO", - ER_YES: "YES", - ER_CANT_CREATE_FILE: "Can't create file '%-.200s' (errno: %d - %s)", - ER_CANT_CREATE_TABLE: "Can't create table '%-.200s' (errno: %d)", - ER_CANT_CREATE_DB: "Can't create database '%-.192s' (errno: %d)", - ER_DB_CREATE_EXISTS: "Can't create database '%-.192s'; database exists", - ER_DB_DROP_EXISTS: "Can't drop database '%-.192s'; database doesn't exist", - ER_DB_DROP_DELETE: "Error dropping database (can't delete '%-.192s', errno: %d)", - ER_DB_DROP_RMDIR: "Error dropping database (can't rmdir '%-.192s', errno: %d)", - ER_CANT_DELETE_FILE: "Error on delete of '%-.192s' (errno: %d - %s)", - ER_CANT_FIND_SYSTEM_REC: "Can't read record in system table", - ER_CANT_GET_STAT: "Can't get status of '%-.200s' (errno: %d - %s)", - ER_CANT_GET_WD: "Can't get working directory (errno: %d - %s)", - ER_CANT_LOCK: "Can't lock file (errno: %d - %s)", - ER_CANT_OPEN_FILE: "Can't open file: '%-.200s' (errno: %d - %s)", - ER_FILE_NOT_FOUND: "Can't find file: '%-.200s' (errno: %d - %s)", - ER_CANT_READ_DIR: "Can't read dir of '%-.192s' (errno: %d - %s)", - ER_CANT_SET_WD: "Can't change dir to '%-.192s' (errno: %d - %s)", - ER_CHECKREAD: "Record has changed since last read in table '%-.192s'", - ER_DISK_FULL: "Disk full (%s); waiting for someone to free some space... (errno: %d - %s)", - ER_DUP_KEY: "Can't write; duplicate key in table '%-.192s'", - ER_ERROR_ON_CLOSE: "Error on close of '%-.192s' (errno: %d - %s)", - ER_ERROR_ON_READ: "Error reading file '%-.200s' (errno: %d - %s)", - ER_ERROR_ON_RENAME: "Error on rename of '%-.210s' to '%-.210s' (errno: %d - %s)", - ER_ERROR_ON_WRITE: "Error writing file '%-.200s' (errno: %d - %s)", - ER_FILE_USED: "'%-.192s' is locked against change", - ER_FILSORT_ABORT: "Sort aborted", - ER_FORM_NOT_FOUND: "View '%-.192s' doesn't exist for '%-.192s'", - ER_GET_ERRNO: "Got error %d from storage engine", - ER_ILLEGAL_HA: "Table storage engine for '%-.192s' doesn't have this option", - ER_KEY_NOT_FOUND: "Can't find record in '%-.192s'", - ER_NOT_FORM_FILE: "Incorrect information in file: '%-.200s'", - ER_NOT_KEYFILE: "Incorrect key file for table '%-.200s'; try to repair it", - ER_OLD_KEYFILE: "Old key file for table '%-.192s'; repair it!", - ER_OPEN_AS_READONLY: "Table '%-.192s' is read only", - ER_OUTOFMEMORY: "Out of memory; restart server and try again (needed %d bytes)", - ER_OUT_OF_SORTMEMORY: "Out of sort memory, consider increasing server sort buffer size", - ER_UNEXPECTED_EOF: "Unexpected EOF found when reading file '%-.192s' (errno: %d - %s)", - ER_CON_COUNT_ERROR: "Too many connections", - ER_OUT_OF_RESOURCES: "Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space", - ER_BAD_HOST_ERROR: "Can't get hostname for your address", - ER_HANDSHAKE_ERROR: "Bad handshake", - ER_DBACCESS_DENIED_ERROR: "Access denied for user '%-.48s'@'%-.64s' to database '%-.192s'", - ER_ACCESS_DENIED_ERROR: "Access denied for user '%-.48s'@'%-.64s' (using password: %s)", - ER_NO_DB_ERROR: "No database selected", - ER_UNKNOWN_COM_ERROR: "Unknown command", - ER_BAD_NULL_ERROR: "Column '%-.192s' cannot be null", - ER_BAD_DB_ERROR: "Unknown database '%-.192s'", - ER_TABLE_EXISTS_ERROR: "Table '%-.192s' already exists", - ER_BAD_TABLE_ERROR: "Unknown table '%-.100s'", - ER_NON_UNIQ_ERROR: "Column '%-.192s' in %-.192s is ambiguous", - ER_SERVER_SHUTDOWN: "Server shutdown in progress", - ER_BAD_FIELD_ERROR: "Unknown column '%-.192s' in '%-.192s'", - ER_WRONG_FIELD_WITH_GROUP: "'%-.192s' isn't in GROUP BY", - ER_WRONG_GROUP_FIELD: "Can't group on '%-.192s'", - ER_WRONG_SUM_SELECT: "Statement has sum functions and columns in same statement", - ER_WRONG_VALUE_COUNT: "Column count doesn't match value count", - ER_TOO_LONG_IDENT: "Identifier name '%-.100s' is too long", - ER_DUP_FIELDNAME: "Duplicate column name '%-.192s'", - ER_DUP_KEYNAME: "Duplicate key name '%-.192s'", - ER_DUP_ENTRY: "Duplicate entry '%-.192s' for key %d", - ER_WRONG_FIELD_SPEC: "Incorrect column specifier for column '%-.192s'", - ER_PARSE_ERROR: "%s near '%-.80s' at line %d", - ER_EMPTY_QUERY: "Query was empty", - ER_NONUNIQ_TABLE: "Not unique table/alias: '%-.192s'", - ER_INVALID_DEFAULT: "Invalid default value for '%-.192s'", - ER_MULTIPLE_PRI_KEY: "Multiple primary key defined", - ER_TOO_MANY_KEYS: "Too many keys specified; max %d keys allowed", - ER_TOO_MANY_KEY_PARTS: "Too many key parts specified; max %d parts allowed", - ER_TOO_LONG_KEY: "Specified key was too long; max key length is %d bytes", - ER_KEY_COLUMN_DOES_NOT_EXITS: "Key column '%-.192s' doesn't exist in table", - ER_BLOB_USED_AS_KEY: "BLOB column '%-.192s' can't be used in key specification with the used table type", - ER_TOO_BIG_FIELDLENGTH: "Column length too big for column '%-.192s' (max = %lu); use BLOB or TEXT instead", - ER_WRONG_AUTO_KEY: "Incorrect table definition; there can be only one auto column and it must be defined as a key", - ER_READY: "%s: ready for connections.\nVersion: '%s' socket: '%s' port: %d", - ER_NORMAL_SHUTDOWN: "%s: Normal shutdown\n", - ER_GOT_SIGNAL: "%s: Got signal %d. Aborting!\n", - ER_SHUTDOWN_COMPLETE: "%s: Shutdown complete\n", - ER_FORCING_CLOSE: "%s: Forcing close of thread %ld user: '%-.48s'\n", - ER_IPSOCK_ERROR: "Can't create IP socket", - ER_NO_SUCH_INDEX: "Table '%-.192s' has no index like the one used in CREATE INDEX; recreate the table", - ER_WRONG_FIELD_TERMINATORS: "Field separator argument is not what is expected; check the manual", - ER_BLOBS_AND_NO_TERMINATED: "You can't use fixed rowlength with BLOBs; please use 'fields terminated by'", - ER_TEXTFILE_NOT_READABLE: "The file '%-.128s' must be in the database directory or be readable by all", - ER_FILE_EXISTS_ERROR: "File '%-.200s' already exists", - ER_LOAD_INFO: "Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld", - ER_ALTER_INFO: "Records: %ld Duplicates: %ld", - ER_WRONG_SUB_KEY: "Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys", - ER_CANT_REMOVE_ALL_FIELDS: "You can't delete all columns with ALTER TABLE; use DROP TABLE instead", - ER_CANT_DROP_FIELD_OR_KEY: "Can't DROP '%-.192s'; check that column/key exists", - ER_INSERT_INFO: "Records: %ld Duplicates: %ld Warnings: %ld", - ER_UPDATE_TABLE_USED: "You can't specify target table '%-.192s' for update in FROM clause", - ER_NO_SUCH_THREAD: "Unknown thread id: %lu", - ER_KILL_DENIED_ERROR: "You are not owner of thread %lu", - ER_NO_TABLES_USED: "No tables used", - ER_TOO_BIG_SET: "Too many strings for column %-.192s and SET", - ER_NO_UNIQUE_LOGFILE: "Can't generate a unique log-filename %-.200s.(1-999)\n", - ER_TABLE_NOT_LOCKED_FOR_WRITE: "Table '%-.192s' was locked with a READ lock and can't be updated", - ER_TABLE_NOT_LOCKED: "Table '%-.192s' was not locked with LOCK TABLES", - ER_BLOB_CANT_HAVE_DEFAULT: "BLOB/TEXT column '%-.192s' can't have a default value", - ER_WRONG_DB_NAME: "Incorrect database name '%-.100s'", - ER_WRONG_TABLE_NAME: "Incorrect table name '%-.100s'", - ER_TOO_BIG_SELECT: "The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay", - ER_UNKNOWN_ERROR: "Unknown error", - ER_UNKNOWN_PROCEDURE: "Unknown procedure '%-.192s'", - ER_WRONG_PARAMCOUNT_TO_PROCEDURE: "Incorrect parameter count to procedure '%-.192s'", - ER_WRONG_PARAMETERS_TO_PROCEDURE: "Incorrect parameters to procedure '%-.192s'", - ER_UNKNOWN_TABLE: "Unknown table '%-.192s' in %-.32s", - ER_FIELD_SPECIFIED_TWICE: "Column '%-.192s' specified twice", - ER_INVALID_GROUP_FUNC_USE: "Invalid use of group function", - ER_UNSUPPORTED_EXTENSION: "Table '%-.192s' uses an extension that doesn't exist in this MySQL version", - ER_TABLE_MUST_HAVE_COLUMNS: "A table must have at least 1 column", - ER_RECORD_FILE_FULL: "The table '%-.192s' is full", - ER_UNKNOWN_CHARACTER_SET: "Unknown character set: '%-.64s'", - ER_TOO_MANY_TABLES: "Too many tables; MySQL can only use %d tables in a join", - ER_TOO_MANY_FIELDS: "Too many columns", - ER_TOO_BIG_ROWSIZE: "Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs", - ER_STACK_OVERRUN: "Thread stack overrun: Used: %ld of a %ld stack. Use 'mysqld --thread_stack=#' to specify a bigger stack if needed", - ER_WRONG_OUTER_JOIN: "Cross dependency found in OUTER JOIN; examine your ON conditions", - ER_NULL_COLUMN_IN_INDEX: "Table handler doesn't support NULL in given index. Please change column '%-.192s' to be NOT NULL or use another handler", - ER_CANT_FIND_UDF: "Can't load function '%-.192s'", - ER_CANT_INITIALIZE_UDF: "Can't initialize function '%-.192s'; %-.80s", - ER_UDF_NO_PATHS: "No paths allowed for shared library", - ER_UDF_EXISTS: "Function '%-.192s' already exists", - ER_CANT_OPEN_LIBRARY: "Can't open shared library '%-.192s' (errno: %d %-.128s)", - ER_CANT_FIND_DL_ENTRY: "Can't find symbol '%-.128s' in library", - ER_FUNCTION_NOT_DEFINED: "Function '%-.192s' is not defined", - ER_HOST_IS_BLOCKED: "Host '%-.64s' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'", - ER_HOST_NOT_PRIVILEGED: "Host '%-.64s' is not allowed to connect to this MySQL server", - ER_PASSWORD_ANONYMOUS_USER: "You are using MySQL as an anonymous user and anonymous users are not allowed to change passwords", - ER_PASSWORD_NOT_ALLOWED: "You must have privileges to update tables in the mysql database to be able to change passwords for others", - ER_PASSWORD_NO_MATCH: "Can't find any matching row in the user table", - ER_UPDATE_INFO: "Rows matched: %ld Changed: %ld Warnings: %ld", - ER_CANT_CREATE_THREAD: "Can't create a new thread (errno %d); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug", - ER_WRONG_VALUE_COUNT_ON_ROW: "Column count doesn't match value count at row %ld", - ER_CANT_REOPEN_TABLE: "Can't reopen table: '%-.192s'", - ER_INVALID_USE_OF_NULL: "Invalid use of NULL value", - ER_REGEXP_ERROR: "Got error '%-.64s' from regexp", - ER_MIX_OF_GROUP_FUNC_AND_FIELDS: "Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause", - ER_NONEXISTING_GRANT: "There is no such grant defined for user '%-.48s' on host '%-.64s'", - ER_TABLEACCESS_DENIED_ERROR: "%-.128s command denied to user '%-.48s'@'%-.64s' for table '%-.64s'", - ER_COLUMNACCESS_DENIED_ERROR: "%-.16s command denied to user '%-.48s'@'%-.64s' for column '%-.192s' in table '%-.192s'", - ER_ILLEGAL_GRANT_FOR_TABLE: "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used", - ER_GRANT_WRONG_HOST_OR_USER: "The host or user argument to GRANT is too long", - ER_NO_SUCH_TABLE: "Table '%-.192s.%-.192s' doesn't exist", - ER_NONEXISTING_TABLE_GRANT: "There is no such grant defined for user '%-.48s' on host '%-.64s' on table '%-.192s'", - ER_NOT_ALLOWED_COMMAND: "The used command is not allowed with this MySQL version", - ER_SYNTAX_ERROR: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use", - ER_DELAYED_CANT_CHANGE_LOCK: "Delayed insert thread couldn't get requested lock for table %-.192s", - ER_TOO_MANY_DELAYED_THREADS: "Too many delayed threads in use", - ER_ABORTING_CONNECTION: "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)", - ER_NET_PACKET_TOO_LARGE: "Got a packet bigger than 'max_allowed_packet' bytes", - ER_NET_READ_ERROR_FROM_PIPE: "Got a read error from the connection pipe", - ER_NET_FCNTL_ERROR: "Got an error from fcntl()", - ER_NET_PACKETS_OUT_OF_ORDER: "Got packets out of order", - ER_NET_UNCOMPRESS_ERROR: "Couldn't uncompress communication packet", - ER_NET_READ_ERROR: "Got an error reading communication packets", - ER_NET_READ_INTERRUPTED: "Got timeout reading communication packets", - ER_NET_ERROR_ON_WRITE: "Got an error writing communication packets", - ER_NET_WRITE_INTERRUPTED: "Got timeout writing communication packets", - ER_TOO_LONG_STRING: "Result string is longer than 'max_allowed_packet' bytes", - ER_TABLE_CANT_HANDLE_BLOB: "The used table type doesn't support BLOB/TEXT columns", - ER_TABLE_CANT_HANDLE_AUTO_INCREMENT: "The used table type doesn't support AUTO_INCREMENT columns", - ER_DELAYED_INSERT_TABLE_LOCKED: "INSERT DELAYED can't be used with table '%-.192s' because it is locked with LOCK TABLES", - ER_WRONG_COLUMN_NAME: "Incorrect column name '%-.100s'", - ER_WRONG_KEY_COLUMN: "The used storage engine can't index column '%-.192s'", - ER_WRONG_MRG_TABLE: "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist", - ER_DUP_UNIQUE: "Can't write, because of unique constraint, to table '%-.192s'", - ER_BLOB_KEY_WITHOUT_LENGTH: "BLOB/TEXT column '%-.192s' used in key specification without a key length", - ER_PRIMARY_CANT_HAVE_NULL: "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead", - ER_TOO_MANY_ROWS: "Result consisted of more than one row", - ER_REQUIRES_PRIMARY_KEY: "This table type requires a primary key", - ER_NO_RAID_COMPILED: "This version of MySQL is not compiled with RAID support", - ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE: "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column", - ER_KEY_DOES_NOT_EXITS: "Key '%-.192s' doesn't exist in table '%-.192s'", - ER_CHECK_NO_SUCH_TABLE: "Can't open table", - ER_CHECK_NOT_IMPLEMENTED: "The storage engine for the table doesn't support %s", - ER_CANT_DO_THIS_DURING_AN_TRANSACTION: "You are not allowed to execute this command in a transaction", - ER_ERROR_DURING_COMMIT: "Got error %d during COMMIT", - ER_ERROR_DURING_ROLLBACK: "Got error %d during ROLLBACK", - ER_ERROR_DURING_FLUSH_LOGS: "Got error %d during FLUSH_LOGS", - ER_ERROR_DURING_CHECKPOINT: "Got error %d during CHECKPOINT", - ER_NEW_ABORTING_CONNECTION: "Aborted connection %ld to db: '%-.192s' user: '%-.48s' host: '%-.64s' (%-.64s)", - ER_DUMP_NOT_IMPLEMENTED: "The storage engine for the table does not support binary table dump", - ER_FLUSH_MASTER_BINLOG_CLOSED: "Binlog closed, cannot RESET MASTER", - ER_INDEX_REBUILD: "Failed rebuilding the index of dumped table '%-.192s'", - ER_MASTER: "Error from master: '%-.64s'", - ER_MASTER_NET_READ: "Net error reading from master", - ER_MASTER_NET_WRITE: "Net error writing to master", - ER_FT_MATCHING_KEY_NOT_FOUND: "Can't find FULLTEXT index matching the column list", - ER_LOCK_OR_ACTIVE_TRANSACTION: "Can't execute the given command because you have active locked tables or an active transaction", - ER_UNKNOWN_SYSTEM_VARIABLE: "Unknown system variable '%-.64s'", - ER_CRASHED_ON_USAGE: "Table '%-.192s' is marked as crashed and should be repaired", - ER_CRASHED_ON_REPAIR: "Table '%-.192s' is marked as crashed and last (automatic?) repair failed", - ER_WARNING_NOT_COMPLETE_ROLLBACK: "Some non-transactional changed tables couldn't be rolled back", - ER_TRANS_CACHE_FULL: "Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again", - ER_SLAVE_MUST_STOP: "This operation cannot be performed with a running slave; run STOP SLAVE first", - ER_SLAVE_NOT_RUNNING: "This operation requires a running slave; configure slave and do START SLAVE", - ER_BAD_SLAVE: "The server is not configured as slave; fix in config file or with CHANGE MASTER TO", - ER_MASTER_INFO: "Could not initialize master info structure; more error messages can be found in the MySQL error log", - ER_SLAVE_THREAD: "Could not create slave thread; check system resources", - ER_TOO_MANY_USER_CONNECTIONS: "User %-.64s already has more than 'max_user_connections' active connections", - ER_SET_CONSTANTS_ONLY: "You may only use constant expressions with SET", - ER_LOCK_WAIT_TIMEOUT: "Lock wait timeout exceeded; try restarting transaction", - ER_LOCK_TABLE_FULL: "The total number of locks exceeds the lock table size", - ER_READ_ONLY_TRANSACTION: "Update locks cannot be acquired during a READ UNCOMMITTED transaction", - ER_DROP_DB_WITH_READ_LOCK: "DROP DATABASE not allowed while thread is holding global read lock", - ER_CREATE_DB_WITH_READ_LOCK: "CREATE DATABASE not allowed while thread is holding global read lock", - ER_WRONG_ARGUMENTS: "Incorrect arguments to %s", - ER_NO_PERMISSION_TO_CREATE_USER: "'%-.48s'@'%-.64s' is not allowed to create new users", - ER_UNION_TABLES_IN_DIFFERENT_DIR: "Incorrect table definition; all MERGE tables must be in the same database", - ER_LOCK_DEADLOCK: "Deadlock found when trying to get lock; try restarting transaction", - ER_TABLE_CANT_HANDLE_FT: "The used table type doesn't support FULLTEXT indexes", - ER_CANNOT_ADD_FOREIGN: "Cannot add foreign key constraint", - ER_NO_REFERENCED_ROW: "Cannot add or update a child row: a foreign key constraint fails", - ER_ROW_IS_REFERENCED: "Cannot delete or update a parent row: a foreign key constraint fails", - ER_CONNECT_TO_MASTER: "Error connecting to master: %-.128s", - ER_QUERY_ON_MASTER: "Error running query on master: %-.128s", - ER_ERROR_WHEN_EXECUTING_COMMAND: "Error when executing command %s: %-.128s", - ER_WRONG_USAGE: "Incorrect usage of %s and %s", - ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT: "The used SELECT statements have a different number of columns", - ER_CANT_UPDATE_WITH_READLOCK: "Can't execute the query because you have a conflicting read lock", - ER_MIXING_NOT_ALLOWED: "Mixing of transactional and non-transactional tables is disabled", - ER_DUP_ARGUMENT: "Option '%s' used twice in statement", - ER_USER_LIMIT_REACHED: "User '%-.64s' has exceeded the '%s' resource (current value: %ld)", - ER_SPECIFIC_ACCESS_DENIED_ERROR: "Access denied; you need (at least one of) the %-.128s privilege(s) for this operation", - ER_LOCAL_VARIABLE: "Variable '%-.64s' is a SESSION variable and can't be used with SET GLOBAL", - ER_GLOBAL_VARIABLE: "Variable '%-.64s' is a GLOBAL variable and should be set with SET GLOBAL", - ER_NO_DEFAULT: "Variable '%-.64s' doesn't have a default value", - ER_WRONG_VALUE_FOR_VAR: "Variable '%-.64s' can't be set to the value of '%-.200s'", - ER_WRONG_TYPE_FOR_VAR: "Incorrect argument type to variable '%-.64s'", - ER_VAR_CANT_BE_READ: "Variable '%-.64s' can only be set, not read", - ER_CANT_USE_OPTION_HERE: "Incorrect usage/placement of '%s'", - ER_NOT_SUPPORTED_YET: "This version of MySQL doesn't yet support '%s'", - ER_MASTER_FATAL_ERROR_READING_BINLOG: "Got fatal error %d from master when reading data from binary log: '%-.320s'", - ER_SLAVE_IGNORED_TABLE: "Slave SQL thread ignored the query because of replicate-*-table rules", - ER_INCORRECT_GLOBAL_LOCAL_VAR: "Variable '%-.192s' is a %s variable", - ER_WRONG_FK_DEF: "Incorrect foreign key definition for '%-.192s': %s", - ER_KEY_REF_DO_NOT_MATCH_TABLE_REF: "Key reference and table reference don't match", - ER_OPERAND_COLUMNS: "Operand should contain %d column(s)", - ER_SUBQUERY_NO_1_ROW: "Subquery returns more than 1 row", - ER_UNKNOWN_STMT_HANDLER: "Unknown prepared statement handler (%.*s) given to %s", - ER_CORRUPT_HELP_DB: "Help database is corrupt or does not exist", - ER_CYCLIC_REFERENCE: "Cyclic reference on subqueries", - ER_AUTO_CONVERT: "Converting column '%s' from %s to %s", - ER_ILLEGAL_REFERENCE: "Reference '%-.64s' not supported (%s)", - ER_DERIVED_MUST_HAVE_ALIAS: "Every derived table must have its own alias", - ER_SELECT_REDUCED: "Select %u was reduced during optimization", - ER_TABLENAME_NOT_ALLOWED_HERE: "Table '%-.192s' from one of the SELECTs cannot be used in %-.32s", - ER_NOT_SUPPORTED_AUTH_MODE: "Client does not support authentication protocol requested by server; consider upgrading MySQL client", - ER_SPATIAL_CANT_HAVE_NULL: "All parts of a SPATIAL index must be NOT NULL", - ER_COLLATION_CHARSET_MISMATCH: "COLLATION '%s' is not valid for CHARACTER SET '%s'", - ER_SLAVE_WAS_RUNNING: "Slave is already running", - ER_SLAVE_WAS_NOT_RUNNING: "Slave already has been stopped", - ER_TOO_BIG_FOR_UNCOMPRESS: "Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)", - ER_ZLIB_Z_MEM_ERROR: "ZLIB: Not enough memory", - ER_ZLIB_Z_BUF_ERROR: "ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)", - ER_ZLIB_Z_DATA_ERROR: "ZLIB: Input data corrupted", - ER_CUT_VALUE_GROUP_CONCAT: "Row %u was cut by GROUP_CONCAT()", - ER_WARN_TOO_FEW_RECORDS: "Row %ld doesn't contain data for all columns", - ER_WARN_TOO_MANY_RECORDS: "Row %ld was truncated; it contained more data than there were input columns", - ER_WARN_NULL_TO_NOTNULL: "Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld", - ER_WARN_DATA_OUT_OF_RANGE: "Out of range value for column '%s' at row %ld", - WARN_DATA_TRUNCATED: "Data truncated for column '%s' at row %ld", - ER_WARN_USING_OTHER_HANDLER: "Using storage engine %s for table '%s'", - ER_CANT_AGGREGATE_2COLLATIONS: "Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'", - ER_DROP_USER: "Cannot drop one or more of the requested users", - ER_REVOKE_GRANTS: "Can't revoke all privileges for one or more of the requested users", - ER_CANT_AGGREGATE_3COLLATIONS: "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'", - ER_CANT_AGGREGATE_NCOLLATIONS: "Illegal mix of collations for operation '%s'", - ER_VARIABLE_IS_NOT_STRUCT: "Variable '%-.64s' is not a variable component (can't be used as XXXX.variable_name)", - ER_UNKNOWN_COLLATION: "Unknown collation: '%-.64s'", - ER_SLAVE_IGNORED_SSL_PARAMS: "SSL parameters in CHANGE MASTER are ignored because this MySQL slave was compiled without SSL support; they can be used later if MySQL slave with SSL is started", - ER_SERVER_IS_IN_SECURE_AUTH_MODE: "Server is running in --secure-auth mode, but '%s'@'%s' has a password in the old format; please change the password to the new format", - ER_WARN_FIELD_RESOLVED: "Field or reference '%-.192s%s%-.192s%s%-.192s' of SELECT #%d was resolved in SELECT #%d", - ER_BAD_SLAVE_UNTIL_COND: "Incorrect parameter or combination of parameters for START SLAVE UNTIL", - ER_MISSING_SKIP_SLAVE: "It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart", - ER_UNTIL_COND_IGNORED: "SQL thread is not to be started so UNTIL options are ignored", - ER_WRONG_NAME_FOR_INDEX: "Incorrect index name '%-.100s'", - ER_WRONG_NAME_FOR_CATALOG: "Incorrect catalog name '%-.100s'", - ER_WARN_QC_RESIZE: "Query cache failed to set size %lu; new query cache size is %lu", - ER_BAD_FT_COLUMN: "Column '%-.192s' cannot be part of FULLTEXT index", - ER_UNKNOWN_KEY_CACHE: "Unknown key cache '%-.100s'", - ER_WARN_HOSTNAME_WONT_WORK: "MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work", - ER_UNKNOWN_STORAGE_ENGINE: "Unknown storage engine '%s'", - ER_WARN_DEPRECATED_SYNTAX: "'%s' is deprecated and will be removed in a future release. Please use %s instead", - ER_NON_UPDATABLE_TABLE: "The target table %-.100s of the %s is not updatable", - ER_FEATURE_DISABLED: "The '%s' feature is disabled; you need MySQL built with '%s' to have it working", - ER_OPTION_PREVENTS_STATEMENT: "The MySQL server is running with the %s option so it cannot execute this statement", - ER_DUPLICATED_VALUE_IN_TYPE: "Column '%-.100s' has duplicated value '%-.64s' in %s", - ER_TRUNCATED_WRONG_VALUE: "Truncated incorrect %-.32s value: '%-.128s'", - ER_TOO_MUCH_AUTO_TIMESTAMP_COLS: "Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause", - ER_INVALID_ON_UPDATE: "Invalid ON UPDATE clause for '%-.192s' column", - ER_UNSUPPORTED_PS: "This command is not supported in the prepared statement protocol yet", - ER_GET_ERRMSG: "Got error %d '%-.100s' from %s", - ER_GET_TEMPORARY_ERRMSG: "Got temporary error %d '%-.100s' from %s", - ER_UNKNOWN_TIME_ZONE: "Unknown or incorrect time zone: '%-.64s'", - ER_WARN_INVALID_TIMESTAMP: "Invalid TIMESTAMP value in column '%s' at row %ld", - ER_INVALID_CHARACTER_STRING: "Invalid %s character string: '%.64s'", - ER_WARN_ALLOWED_PACKET_OVERFLOWED: "Result of %s() was larger than max_allowed_packet (%ld) - truncated", - ER_CONFLICTING_DECLARATIONS: "Conflicting declarations: '%s%s' and '%s%s'", - ER_SP_NO_RECURSIVE_CREATE: "Can't create a %s from within another stored routine", - ER_SP_ALREADY_EXISTS: "%s %s already exists", - ER_SP_DOES_NOT_EXIST: "%s %s does not exist", - ER_SP_DROP_FAILED: "Failed to DROP %s %s", - ER_SP_STORE_FAILED: "Failed to CREATE %s %s", - ER_SP_LILABEL_MISMATCH: "%s with no matching label: %s", - ER_SP_LABEL_REDEFINE: "Redefining label %s", - ER_SP_LABEL_MISMATCH: "End-label %s without match", - ER_SP_UNINIT_VAR: "Referring to uninitialized variable %s", - ER_SP_BADSELECT: "PROCEDURE %s can't return a result set in the given context", - ER_SP_BADRETURN: "RETURN is only allowed in a FUNCTION", - ER_SP_BADSTATEMENT: "%s is not allowed in stored procedures", - ER_UPDATE_LOG_DEPRECATED_IGNORED: "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored.", - ER_UPDATE_LOG_DEPRECATED_TRANSLATED: "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN.", - ER_QUERY_INTERRUPTED: "Query execution was interrupted", - ER_SP_WRONG_NO_OF_ARGS: "Incorrect number of arguments for %s %s; expected %u, got %u", - ER_SP_COND_MISMATCH: "Undefined CONDITION: %s", - ER_SP_NORETURN: "No RETURN found in FUNCTION %s", - ER_SP_NORETURNEND: "FUNCTION %s ended without RETURN", - ER_SP_BAD_CURSOR_QUERY: "Cursor statement must be a SELECT", - ER_SP_BAD_CURSOR_SELECT: "Cursor SELECT must not have INTO", - ER_SP_CURSOR_MISMATCH: "Undefined CURSOR: %s", - ER_SP_CURSOR_ALREADY_OPEN: "Cursor is already open", - ER_SP_CURSOR_NOT_OPEN: "Cursor is not open", - ER_SP_UNDECLARED_VAR: "Undeclared variable: %s", - ER_SP_WRONG_NO_OF_FETCH_ARGS: "Incorrect number of FETCH variables", - ER_SP_FETCH_NO_DATA: "No data - zero rows fetched, selected, or processed", - ER_SP_DUP_PARAM: "Duplicate parameter: %s", - ER_SP_DUP_VAR: "Duplicate variable: %s", - ER_SP_DUP_COND: "Duplicate condition: %s", - ER_SP_DUP_CURS: "Duplicate cursor: %s", - ER_SP_CANT_ALTER: "Failed to ALTER %s %s", - ER_SP_SUBSELECT_NYI: "Subquery value not supported", - ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG: "%s is not allowed in stored function or trigger", - ER_SP_VARCOND_AFTER_CURSHNDLR: "Variable or condition declaration after cursor or handler declaration", - ER_SP_CURSOR_AFTER_HANDLER: "Cursor declaration after handler declaration", - ER_SP_CASE_NOT_FOUND: "Case not found for CASE statement", - ER_FPARSER_TOO_BIG_FILE: "Configuration file '%-.192s' is too big", - ER_FPARSER_BAD_HEADER: "Malformed file type header in file '%-.192s'", - ER_FPARSER_EOF_IN_COMMENT: "Unexpected end of file while parsing comment '%-.200s'", - ER_FPARSER_ERROR_IN_PARAMETER: "Error while parsing parameter '%-.192s' (line: '%-.192s')", - ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER: "Unexpected end of file while skipping unknown parameter '%-.192s'", - ER_VIEW_NO_EXPLAIN: "EXPLAIN/SHOW can not be issued; lacking privileges for underlying table", - ER_FRM_UNKNOWN_TYPE: "File '%-.192s' has unknown type '%-.64s' in its header", - ER_WRONG_OBJECT: "'%-.192s.%-.192s' is not %s", - ER_NONUPDATEABLE_COLUMN: "Column '%-.192s' is not updatable", - ER_VIEW_SELECT_DERIVED: "View's SELECT contains a subquery in the FROM clause", - ER_VIEW_SELECT_CLAUSE: "View's SELECT contains a '%s' clause", - ER_VIEW_SELECT_VARIABLE: "View's SELECT contains a variable or parameter", - ER_VIEW_SELECT_TMPTABLE: "View's SELECT refers to a temporary table '%-.192s'", - ER_VIEW_WRONG_LIST: "View's SELECT and view's field list have different column counts", - ER_WARN_VIEW_MERGE: "View merge algorithm can't be used here for now (assumed undefined algorithm)", - ER_WARN_VIEW_WITHOUT_KEY: "View being updated does not have complete key of underlying table in it", - ER_VIEW_INVALID: "View '%-.192s.%-.192s' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them", - ER_SP_NO_DROP_SP: "Can't drop or alter a %s from within another stored routine", - ER_SP_GOTO_IN_HNDLR: "GOTO is not allowed in a stored procedure handler", - ER_TRG_ALREADY_EXISTS: "Trigger already exists", - ER_TRG_DOES_NOT_EXIST: "Trigger does not exist", - ER_TRG_ON_VIEW_OR_TEMP_TABLE: "Trigger's '%-.192s' is view or temporary table", - ER_TRG_CANT_CHANGE_ROW: "Updating of %s row is not allowed in %strigger", - ER_TRG_NO_SUCH_ROW_IN_TRG: "There is no %s row in %s trigger", - ER_NO_DEFAULT_FOR_FIELD: "Field '%-.192s' doesn't have a default value", - ER_DIVISION_BY_ZERO: "Division by 0", - ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: "Incorrect %-.32s value: '%-.128s' for column '%.192s' at row %ld", - ER_ILLEGAL_VALUE_FOR_TYPE: "Illegal %s '%-.192s' value found during parsing", - ER_VIEW_NONUPD_CHECK: "CHECK OPTION on non-updatable view '%-.192s.%-.192s'", - ER_VIEW_CHECK_FAILED: "CHECK OPTION failed '%-.192s.%-.192s'", - ER_PROCACCESS_DENIED_ERROR: "%-.16s command denied to user '%-.48s'@'%-.64s' for routine '%-.192s'", - ER_RELAY_LOG_FAIL: "Failed purging old relay logs: %s", - ER_PASSWD_LENGTH: "Password hash should be a %d-digit hexadecimal number", - ER_UNKNOWN_TARGET_BINLOG: "Target log not found in binlog index", - ER_IO_ERR_LOG_INDEX_READ: "I/O error reading log index file", - ER_BINLOG_PURGE_PROHIBITED: "Server configuration does not permit binlog purge", - ER_FSEEK_FAIL: "Failed on fseek()", - ER_BINLOG_PURGE_FATAL_ERR: "Fatal error during log purge", - ER_LOG_IN_USE: "A purgeable log is in use, will not purge", - ER_LOG_PURGE_UNKNOWN_ERR: "Unknown error during log purge", - ER_RELAY_LOG_INIT: "Failed initializing relay log position: %s", - ER_NO_BINARY_LOGGING: "You are not using binary logging", - ER_RESERVED_SYNTAX: "The '%-.64s' syntax is reserved for purposes internal to the MySQL server", - ER_WSAS_FAILED: "WSAStartup Failed", - ER_DIFF_GROUPS_PROC: "Can't handle procedures with different groups yet", - ER_NO_GROUP_FOR_PROC: "Select must have a group with this procedure", - ER_ORDER_WITH_PROC: "Can't use ORDER clause with this procedure", - ER_LOGGING_PROHIBIT_CHANGING_OF: "Binary logging and replication forbid changing the global server %s", - ER_NO_FILE_MAPPING: "Can't map file: %-.200s, errno: %d", - ER_WRONG_MAGIC: "Wrong magic in %-.64s", - ER_PS_MANY_PARAM: "Prepared statement contains too many placeholders", - ER_KEY_PART_0: "Key part '%-.192s' length cannot be 0", - ER_VIEW_CHECKSUM: "View text checksum failed", - ER_VIEW_MULTIUPDATE: "Can not modify more than one base table through a join view '%-.192s.%-.192s'", - ER_VIEW_NO_INSERT_FIELD_LIST: "Can not insert into join view '%-.192s.%-.192s' without fields list", - ER_VIEW_DELETE_MERGE_VIEW: "Can not delete from join view '%-.192s.%-.192s'", - ER_CANNOT_USER: "Operation %s failed for %.256s", - ER_XAER_NOTA: "XAER_NOTA: Unknown XID", - ER_XAER_INVAL: "XAER_INVAL: Invalid arguments (or unsupported command)", - ER_XAER_RMFAIL: "XAER_RMFAIL: The command cannot be executed when global transaction is in the %.64s state", - ER_XAER_OUTSIDE: "XAER_OUTSIDE: Some work is done outside global transaction", - ER_XAER_RMERR: "XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency", - ER_XA_RBROLLBACK: "XA_RBROLLBACK: Transaction branch was rolled back", - ER_NONEXISTING_PROC_GRANT: "There is no such grant defined for user '%-.48s' on host '%-.64s' on routine '%-.192s'", - ER_PROC_AUTO_GRANT_FAIL: "Failed to grant EXECUTE and ALTER ROUTINE privileges", - ER_PROC_AUTO_REVOKE_FAIL: "Failed to revoke all privileges to dropped routine", - ER_DATA_TOO_LONG: "Data too long for column '%s' at row %ld", - ER_SP_BAD_SQLSTATE: "Bad SQLSTATE: '%s'", - ER_STARTUP: "%s: ready for connections.\nVersion: '%s' socket: '%s' port: %d %s", - ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR: "Can't load value from file with fixed size rows to variable", - ER_CANT_CREATE_USER_WITH_GRANT: "You are not allowed to create a user with GRANT", - ER_WRONG_VALUE_FOR_TYPE: "Incorrect %-.32s value: '%-.128s' for function %-.32s", - ER_TABLE_DEF_CHANGED: "Table definition has changed, please retry transaction", - ER_SP_DUP_HANDLER: "Duplicate handler declared in the same block", - ER_SP_NOT_VAR_ARG: "OUT or INOUT argument %d for routine %s is not a variable or NEW pseudo-variable in BEFORE trigger", - ER_SP_NO_RETSET: "Not allowed to return a result set from a %s", - ER_CANT_CREATE_GEOMETRY_OBJECT: "Cannot get geometry object from data you send to the GEOMETRY field", - ER_FAILED_ROUTINE_BREAK_BINLOG: "A routine failed and has neither NO SQL nor READS SQL DATA in its declaration and binary logging is enabled; if non-transactional tables were updated, the binary log will miss their changes", - ER_BINLOG_UNSAFE_ROUTINE: "This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)", - ER_BINLOG_CREATE_ROUTINE_NEED_SUPER: "You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)", - ER_EXEC_STMT_WITH_OPEN_CURSOR: "You can't execute a prepared statement which has an open cursor associated with it. Reset the statement to re-execute it.", - ER_STMT_HAS_NO_OPEN_CURSOR: "The statement (%lu) has no open cursor.", - ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG: "Explicit or implicit commit is not allowed in stored function or trigger.", - ER_NO_DEFAULT_FOR_VIEW_FIELD: "Field of view '%-.192s.%-.192s' underlying table doesn't have a default value", - ER_SP_NO_RECURSION: "Recursive stored functions and triggers are not allowed.", - ER_TOO_BIG_SCALE: "Too big scale %d specified for column '%-.192s'. Maximum is %lu.", - ER_TOO_BIG_PRECISION: "Too big precision %d specified for column '%-.192s'. Maximum is %lu.", - ER_M_BIGGER_THAN_D: "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%-.192s').", - ER_WRONG_LOCK_OF_SYSTEM_TABLE: "You can't combine write-locking of system tables with other tables or lock types", - ER_CONNECT_TO_FOREIGN_DATA_SOURCE: "Unable to connect to foreign data source: %.64s", - ER_QUERY_ON_FOREIGN_DATA_SOURCE: "There was a problem processing the query on the foreign data source. Data source error: %-.64s", - ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST: "The foreign data source you are trying to reference does not exist. Data source error: %-.64s", - ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE: "Can't create federated table. The data source connection string '%-.64s' is not in the correct format", - ER_FOREIGN_DATA_STRING_INVALID: "The data source connection string '%-.64s' is not in the correct format", - ER_CANT_CREATE_FEDERATED_TABLE: "Can't create federated table. Foreign data src error: %-.64s", - ER_TRG_IN_WRONG_SCHEMA: "Trigger in wrong schema", - ER_STACK_OVERRUN_NEED_MORE: "Thread stack overrun: %ld bytes used of a %ld byte stack, and %ld bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.", - ER_TOO_LONG_BODY: "Routine body for '%-.100s' is too long", - ER_WARN_CANT_DROP_DEFAULT_KEYCACHE: "Cannot drop default keycache", - ER_TOO_BIG_DISPLAYWIDTH: "Display width out of range for column '%-.192s' (max = %lu)", - ER_XAER_DUPID: "XAER_DUPID: The XID already exists", - ER_DATETIME_FUNCTION_OVERFLOW: "Datetime function: %-.32s field overflow", - ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG: "Can't update table '%-.192s' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.", - ER_VIEW_PREVENT_UPDATE: "The definition of table '%-.192s' prevents operation %.192s on table '%-.192s'.", - ER_PS_NO_RECURSION: "The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner", - ER_SP_CANT_SET_AUTOCOMMIT: "Not allowed to set autocommit from a stored function or trigger", - ER_MALFORMED_DEFINER: "Definer is not fully qualified", - ER_VIEW_FRM_NO_USER: "View '%-.192s'.'%-.192s' has no definer information (old table format). Current user is used as definer. Please recreate the view!", - ER_VIEW_OTHER_USER: "You need the SUPER privilege for creation view with '%-.192s'@'%-.192s' definer", - ER_NO_SUCH_USER: "The user specified as a definer ('%-.64s'@'%-.64s') does not exist", - ER_FORBID_SCHEMA_CHANGE: "Changing schema from '%-.192s' to '%-.192s' is not allowed.", - ER_ROW_IS_REFERENCED_2: "Cannot delete or update a parent row: a foreign key constraint fails (%.192s)", - ER_NO_REFERENCED_ROW_2: "Cannot add or update a child row: a foreign key constraint fails (%.192s)", - ER_SP_BAD_VAR_SHADOW: "Variable '%-.64s' must be quoted with `...`, or renamed", - ER_TRG_NO_DEFINER: "No definer attribute for trigger '%-.192s'.'%-.192s'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.", - ER_OLD_FILE_FORMAT: "'%-.192s' has an old format, you should re-create the '%s' object(s)", - ER_SP_RECURSION_LIMIT: "Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %.192s", - ER_SP_PROC_TABLE_CORRUPT: "Failed to load routine %-.192s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)", - ER_SP_WRONG_NAME: "Incorrect routine name '%-.192s'", - ER_TABLE_NEEDS_UPGRADE: "Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" or dump/reload to fix it!", - ER_SP_NO_AGGREGATE: "AGGREGATE is not supported for stored functions", - ER_MAX_PREPARED_STMT_COUNT_REACHED: "Can't create more than max_prepared_stmt_count statements (current value: %lu)", - ER_VIEW_RECURSIVE: "`%-.192s`.`%-.192s` contains view recursion", - ER_NON_GROUPING_FIELD_USED: "Non-grouping field '%-.192s' is used in %-.64s clause", - ER_TABLE_CANT_HANDLE_SPKEYS: "The used table type doesn't support SPATIAL indexes", - ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA: "Triggers can not be created on system tables", - ER_REMOVED_SPACES: "Leading spaces are removed from name '%s'", - ER_AUTOINC_READ_FAILED: "Failed to read auto-increment value from storage engine", - ER_USERNAME: "user name", - ER_HOSTNAME: "host name", - ER_WRONG_STRING_LENGTH: "String '%-.70s' is too long for %s (should be no longer than %d)", - ER_NON_INSERTABLE_TABLE: "The target table %-.100s of the %s is not insertable-into", - ER_ADMIN_WRONG_MRG_TABLE: "Table '%-.64s' is differently defined or of non-MyISAM type or doesn't exist", - ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT: "Too high level of nesting for select", - ER_NAME_BECOMES_EMPTY: "Name '%-.64s' has become ''", - ER_AMBIGUOUS_FIELD_TERM: "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY", - ER_FOREIGN_SERVER_EXISTS: "The foreign server, %s, you are trying to create already exists.", - ER_FOREIGN_SERVER_DOESNT_EXIST: "The foreign server name you are trying to reference does not exist. Data source error: %-.64s", - ER_ILLEGAL_HA_CREATE_OPTION: "Table storage engine '%-.64s' does not support the create option '%.64s'", - ER_PARTITION_REQUIRES_VALUES_ERROR: "Syntax error: %-.64s PARTITIONING requires definition of VALUES %-.64s for each partition", - ER_PARTITION_WRONG_VALUES_ERROR: "Only %-.64s PARTITIONING can use VALUES %-.64s in partition definition", - ER_PARTITION_MAXVALUE_ERROR: "MAXVALUE can only be used in last partition definition", - ER_PARTITION_SUBPARTITION_ERROR: "Subpartitions can only be hash partitions and by key", - ER_PARTITION_SUBPART_MIX_ERROR: "Must define subpartitions on all partitions if on one partition", - ER_PARTITION_WRONG_NO_PART_ERROR: "Wrong number of partitions defined, mismatch with previous setting", - ER_PARTITION_WRONG_NO_SUBPART_ERROR: "Wrong number of subpartitions defined, mismatch with previous setting", - ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR: "Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed", - ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR: "Expression in RANGE/LIST VALUES must be constant", - ER_FIELD_NOT_FOUND_PART_ERROR: "Field in list of fields for partition function not found in table", - ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR: "List of fields is only allowed in KEY partitions", - ER_INCONSISTENT_PARTITION_INFO_ERROR: "The partition info in the frm file is not consistent with what can be written into the frm file", - ER_PARTITION_FUNC_NOT_ALLOWED_ERROR: "The %-.192s function returns the wrong type", - ER_PARTITIONS_MUST_BE_DEFINED_ERROR: "For %-.64s partitions each partition must be defined", - ER_RANGE_NOT_INCREASING_ERROR: "VALUES LESS THAN value must be strictly increasing for each partition", - ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR: "VALUES value must be of same type as partition function", - ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR: "Multiple definition of same constant in list partitioning", - ER_PARTITION_ENTRY_ERROR: "Partitioning can not be used stand-alone in query", - ER_MIX_HANDLER_ERROR: "The mix of handlers in the partitions is not allowed in this version of MySQL", - ER_PARTITION_NOT_DEFINED_ERROR: "For the partitioned engine it is necessary to define all %-.64s", - ER_TOO_MANY_PARTITIONS_ERROR: "Too many partitions (including subpartitions) were defined", - ER_SUBPARTITION_ERROR: "It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning", - ER_CANT_CREATE_HANDLER_FILE: "Failed to create specific handler file", - ER_BLOB_FIELD_IN_PART_FUNC_ERROR: "A BLOB field is not allowed in partition function", - ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF: "A %-.192s must include all columns in the table's partitioning function", - ER_NO_PARTS_ERROR: "Number of %-.64s = 0 is not an allowed value", - ER_PARTITION_MGMT_ON_NONPARTITIONED: "Partition management on a not partitioned table is not possible", - ER_FOREIGN_KEY_ON_PARTITIONED: "Foreign key clause is not yet supported in conjunction with partitioning", - ER_DROP_PARTITION_NON_EXISTENT: "Error in list of partitions to %-.64s", - ER_DROP_LAST_PARTITION: "Cannot remove all partitions, use DROP TABLE instead", - ER_COALESCE_ONLY_ON_HASH_PARTITION: "COALESCE PARTITION can only be used on HASH/KEY partitions", - ER_REORG_HASH_ONLY_ON_SAME_NO: "REORGANIZE PARTITION can only be used to reorganize partitions not to change their numbers", - ER_REORG_NO_PARAM_ERROR: "REORGANIZE PARTITION without parameters can only be used on auto-partitioned tables using HASH PARTITIONs", - ER_ONLY_ON_RANGE_LIST_PARTITION: "%-.64s PARTITION can only be used on RANGE/LIST partitions", - ER_ADD_PARTITION_SUBPART_ERROR: "Trying to Add partition(s) with wrong number of subpartitions", - ER_ADD_PARTITION_NO_NEW_PARTITION: "At least one partition must be added", - ER_COALESCE_PARTITION_NO_PARTITION: "At least one partition must be coalesced", - ER_REORG_PARTITION_NOT_EXIST: "More partitions to reorganize than there are partitions", - ER_SAME_NAME_PARTITION: "Duplicate partition name %-.192s", - ER_NO_BINLOG_ERROR: "It is not allowed to shut off binlog on this command", - ER_CONSECUTIVE_REORG_PARTITIONS: "When reorganizing a set of partitions they must be in consecutive order", - ER_REORG_OUTSIDE_RANGE: "Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range", - ER_PARTITION_FUNCTION_FAILURE: "Partition function not supported in this version for this handler", - ER_PART_STATE_ERROR: "Partition state cannot be defined from CREATE/ALTER TABLE", - ER_LIMITED_PART_RANGE: "The %-.64s handler only supports 32 bit integers in VALUES", - ER_PLUGIN_IS_NOT_LOADED: "Plugin '%-.192s' is not loaded", - ER_WRONG_VALUE: "Incorrect %-.32s value: '%-.128s'", - ER_NO_PARTITION_FOR_GIVEN_VALUE: "Table has no partition for value %-.64s", - ER_FILEGROUP_OPTION_ONLY_ONCE: "It is not allowed to specify %s more than once", - ER_CREATE_FILEGROUP_FAILED: "Failed to create %s", - ER_DROP_FILEGROUP_FAILED: "Failed to drop %s", - ER_TABLESPACE_AUTO_EXTEND_ERROR: "The handler doesn't support autoextend of tablespaces", - ER_WRONG_SIZE_NUMBER: "A size parameter was incorrectly specified, either number or on the form 10M", - ER_SIZE_OVERFLOW_ERROR: "The size number was correct but we don't allow the digit part to be more than 2 billion", - ER_ALTER_FILEGROUP_FAILED: "Failed to alter: %s", - ER_BINLOG_ROW_LOGGING_FAILED: "Writing one row to the row-based binary log failed", - ER_BINLOG_ROW_WRONG_TABLE_DEF: "Table definition on master and slave does not match: %s", - ER_BINLOG_ROW_RBR_TO_SBR: "Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events", - ER_EVENT_ALREADY_EXISTS: "Event '%-.192s' already exists", - ER_EVENT_STORE_FAILED: "Failed to store event %s. Error code %d from storage engine.", - ER_EVENT_DOES_NOT_EXIST: "Unknown event '%-.192s'", - ER_EVENT_CANT_ALTER: "Failed to alter event '%-.192s'", - ER_EVENT_DROP_FAILED: "Failed to drop %s", - ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG: "INTERVAL is either not positive or too big", - ER_EVENT_ENDS_BEFORE_STARTS: "ENDS is either invalid or before STARTS", - ER_EVENT_EXEC_TIME_IN_THE_PAST: "Event execution time is in the past. Event has been disabled", - ER_EVENT_OPEN_TABLE_FAILED: "Failed to open mysql.event", - ER_EVENT_NEITHER_M_EXPR_NOR_M_AT: "No datetime expression provided", - ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED: "Column count of mysql.%s is wrong. Expected %d, found %d. The table is probably corrupted", - ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE: "Cannot load from mysql.%s. The table is probably corrupted", - ER_EVENT_CANNOT_DELETE: "Failed to delete the event from mysql.event", - ER_EVENT_COMPILE_ERROR: "Error during compilation of event's body", - ER_EVENT_SAME_NAME: "Same old and new event name", - ER_EVENT_DATA_TOO_LONG: "Data for column '%s' too long", - ER_DROP_INDEX_FK: "Cannot drop index '%-.192s': needed in a foreign key constraint", - ER_WARN_DEPRECATED_SYNTAX_WITH_VER: "The syntax '%s' is deprecated and will be removed in MySQL %s. Please use %s instead", - ER_CANT_WRITE_LOCK_LOG_TABLE: "You can't write-lock a log table. Only read access is possible", - ER_CANT_LOCK_LOG_TABLE: "You can't use locks with log tables.", - ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED: "Upholding foreign key constraints for table '%.192s', entry '%-.192s', key %d would lead to a duplicate entry", - ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE: "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error.", - ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR: "Cannot switch out of the row-based binary log format when the session has open temporary tables", - ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT: "Cannot change the binary logging format inside a stored function or trigger", - ER_NDB_CANT_SWITCH_BINLOG_FORMAT: "The NDB cluster engine does not support changing the binlog format on the fly yet", - ER_PARTITION_NO_TEMPORARY: "Cannot create temporary table with partitions", - ER_PARTITION_CONST_DOMAIN_ERROR: "Partition constant is out of partition function domain", - ER_PARTITION_FUNCTION_IS_NOT_ALLOWED: "This partition function is not allowed", - ER_DDL_LOG_ERROR: "Error in DDL log", - ER_NULL_IN_VALUES_LESS_THAN: "Not allowed to use NULL value in VALUES LESS THAN", - ER_WRONG_PARTITION_NAME: "Incorrect partition name", - ER_CANT_CHANGE_TX_CHARACTERISTICS: "Transaction characteristics can't be changed while a transaction is in progress", - ER_DUP_ENTRY_AUTOINCREMENT_CASE: "ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '%-.192s' for key '%-.192s'", - ER_EVENT_MODIFY_QUEUE_ERROR: "Internal scheduler error %d", - ER_EVENT_SET_VAR_ERROR: "Error during starting/stopping of the scheduler. Error code %u", - ER_PARTITION_MERGE_ERROR: "Engine cannot be used in partitioned tables", - ER_CANT_ACTIVATE_LOG: "Cannot activate '%-.64s' log", - ER_RBR_NOT_AVAILABLE: "The server was not built with row-based replication", - ER_BASE64_DECODE_ERROR: "Decoding of base64 string failed", - ER_EVENT_RECURSION_FORBIDDEN: "Recursion of EVENT DDL statements is forbidden when body is present", - ER_EVENTS_DB_ERROR: "Cannot proceed because system tables used by Event Scheduler were found damaged at server start", - ER_ONLY_INTEGERS_ALLOWED: "Only integers allowed as number here", - ER_UNSUPORTED_LOG_ENGINE: "This storage engine cannot be used for log tables\"", - ER_BAD_LOG_STATEMENT: "You cannot '%s' a log table if logging is enabled", - ER_CANT_RENAME_LOG_TABLE: "Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'", - ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT: "Incorrect parameter count in the call to native function '%-.192s'", - ER_WRONG_PARAMETERS_TO_NATIVE_FCT: "Incorrect parameters in the call to native function '%-.192s'", - ER_WRONG_PARAMETERS_TO_STORED_FCT: "Incorrect parameters in the call to stored function '%-.192s'", - ER_NATIVE_FCT_NAME_COLLISION: "This function '%-.192s' has the same name as a native function", - ER_DUP_ENTRY_WITH_KEY_NAME: "Duplicate entry '%-.64s' for key '%-.192s'", - ER_BINLOG_PURGE_EMFILE: "Too many files opened, please execute the command again", - ER_EVENT_CANNOT_CREATE_IN_THE_PAST: "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.", - ER_EVENT_CANNOT_ALTER_IN_THE_PAST: "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future.", - ER_SLAVE_INCIDENT: "The incident %s occured on the master. Message: %-.64s", - ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT: "Table has no partition for some existing values", - ER_BINLOG_UNSAFE_STATEMENT: "Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. %s", - ER_SLAVE_FATAL_ERROR: "Fatal error: %s", - ER_SLAVE_RELAY_LOG_READ_FAILURE: "Relay log read failure: %s", - ER_SLAVE_RELAY_LOG_WRITE_FAILURE: "Relay log write failure: %s", - ER_SLAVE_CREATE_EVENT_FAILURE: "Failed to create %s", - ER_SLAVE_MASTER_COM_FAILURE: "Master command %s failed: %s", - ER_BINLOG_LOGGING_IMPOSSIBLE: "Binary logging not possible. Message: %s", - ER_VIEW_NO_CREATION_CTX: "View `%-.64s`.`%-.64s` has no creation context", - ER_VIEW_INVALID_CREATION_CTX: "Creation context of view `%-.64s`.`%-.64s' is invalid", - ER_SR_INVALID_CREATION_CTX: "Creation context of stored routine `%-.64s`.`%-.64s` is invalid", - ER_TRG_CORRUPTED_FILE: "Corrupted TRG file for table `%-.64s`.`%-.64s`", - ER_TRG_NO_CREATION_CTX: "Triggers for table `%-.64s`.`%-.64s` have no creation context", - ER_TRG_INVALID_CREATION_CTX: "Trigger creation context of table `%-.64s`.`%-.64s` is invalid", - ER_EVENT_INVALID_CREATION_CTX: "Creation context of event `%-.64s`.`%-.64s` is invalid", - ER_TRG_CANT_OPEN_TABLE: "Cannot open table for trigger `%-.64s`.`%-.64s`", - ER_CANT_CREATE_SROUTINE: "Cannot create stored routine `%-.64s`. Check warnings", - ER_NEVER_USED: "Ambiguous slave modes combination. %s", - ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT: "The BINLOG statement of type `%s` was not preceded by a format description BINLOG statement.", - ER_SLAVE_CORRUPT_EVENT: "Corrupted replication event was detected", - ER_LOAD_DATA_INVALID_COLUMN: "Invalid column reference (%-.64s) in LOAD DATA", - ER_LOG_PURGE_NO_FILE: "Being purged log %s was not found", - ER_XA_RBTIMEOUT: "XA_RBTIMEOUT: Transaction branch was rolled back: took too long", - ER_XA_RBDEADLOCK: "XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected", - ER_NEED_REPREPARE: "Prepared statement needs to be re-prepared", - ER_DELAYED_NOT_SUPPORTED: "DELAYED option not supported for table '%-.192s'", - WARN_NO_MASTER_INFO: "The master info structure does not exist", - WARN_OPTION_IGNORED: "<%-.64s> option ignored", - WARN_PLUGIN_DELETE_BUILTIN: "Built-in plugins cannot be deleted", - WARN_PLUGIN_BUSY: "Plugin is busy and will be uninstalled on shutdown", - ER_VARIABLE_IS_READONLY: "%s variable '%s' is read-only. Use SET %s to assign the value", - ER_WARN_ENGINE_TRANSACTION_ROLLBACK: "Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted", - ER_SLAVE_HEARTBEAT_FAILURE: "Unexpected master's heartbeat data: %s", - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE: "The requested value for the heartbeat period is either negative or exceeds the maximum allowed (%s seconds).", - ER_NDB_REPLICATION_SCHEMA_ERROR: "Bad schema for mysql.ndb_replication table. Message: %-.64s", - ER_CONFLICT_FN_PARSE_ERROR: "Error in parsing conflict function. Message: %-.64s", - ER_EXCEPTIONS_WRITE_ERROR: "Write to exceptions table failed. Message: %-.128s\"", - ER_TOO_LONG_TABLE_COMMENT: "Comment for table '%-.64s' is too long (max = %lu)", - ER_TOO_LONG_FIELD_COMMENT: "Comment for field '%-.64s' is too long (max = %lu)", - ER_FUNC_INEXISTENT_NAME_COLLISION: "FUNCTION %s does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual", - ER_DATABASE_NAME: "Database", - ER_TABLE_NAME: "Table", - ER_PARTITION_NAME: "Partition", - ER_SUBPARTITION_NAME: "Subpartition", - ER_TEMPORARY_NAME: "Temporary", - ER_RENAMED_NAME: "Renamed", - ER_TOO_MANY_CONCURRENT_TRXS: "Too many active concurrent transactions", - WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED: "Non-ASCII separator arguments are not fully supported", - ER_DEBUG_SYNC_TIMEOUT: "debug sync point wait timed out", - ER_DEBUG_SYNC_HIT_LIMIT: "debug sync point hit limit reached", - ER_DUP_SIGNAL_SET: "Duplicate condition information item '%s'", - ER_SIGNAL_WARN: "Unhandled user-defined warning condition", - ER_SIGNAL_NOT_FOUND: "Unhandled user-defined not found condition", - ER_SIGNAL_EXCEPTION: "Unhandled user-defined exception condition", - ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER: "RESIGNAL when handler not active", - ER_SIGNAL_BAD_CONDITION_TYPE: "SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE", - WARN_COND_ITEM_TRUNCATED: "Data truncated for condition item '%s'", - ER_COND_ITEM_TOO_LONG: "Data too long for condition item '%s'", - ER_UNKNOWN_LOCALE: "Unknown locale: '%-.64s'", - ER_SLAVE_IGNORE_SERVER_IDS: "The requested server id %d clashes with the slave startup option --replicate-same-server-id", - ER_QUERY_CACHE_DISABLED: "Query cache is disabled; restart the server with query_cache_type=1 to enable it", - ER_SAME_NAME_PARTITION_FIELD: "Duplicate partition field name '%-.192s'", - ER_PARTITION_COLUMN_LIST_ERROR: "Inconsistency in usage of column lists for partitioning", - ER_WRONG_TYPE_COLUMN_VALUE_ERROR: "Partition column values of incorrect type", - ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR: "Too many fields in '%-.192s'", - ER_MAXVALUE_IN_VALUES_IN: "Cannot use MAXVALUE as value in VALUES IN", - ER_TOO_MANY_VALUES_ERROR: "Cannot have more than one value for this type of %-.64s partitioning", - ER_ROW_SINGLE_PARTITION_FIELD_ERROR: "Row expressions in VALUES IN only allowed for multi-field column partitioning", - ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD: "Field '%-.192s' is of a not allowed type for this type of partitioning", - ER_PARTITION_FIELDS_TOO_LONG: "The total length of the partitioning fields is too large", - ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE: "Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.", - ER_BINLOG_ROW_MODE_AND_STMT_ENGINE: "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging.", - ER_BINLOG_UNSAFE_AND_STMT_ENGINE: "Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. %s", - ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE: "Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging.", - ER_BINLOG_STMT_MODE_AND_ROW_ENGINE: "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.%s", - ER_BINLOG_ROW_INJECTION_AND_STMT_MODE: "Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.", - ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE: "Cannot execute statement: impossible to write to binary log since more than one engine is involved and at least one engine is self-logging.", - ER_BINLOG_UNSAFE_LIMIT: "The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.", - ER_BINLOG_UNSAFE_INSERT_DELAYED: "The statement is unsafe because it uses INSERT DELAYED. This is unsafe because the times when rows are inserted cannot be predicted.", - ER_BINLOG_UNSAFE_SYSTEM_TABLE: "The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.", - ER_BINLOG_UNSAFE_AUTOINC_COLUMNS: "Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly.", - ER_BINLOG_UNSAFE_UDF: "Statement is unsafe because it uses a UDF which may not return the same value on the slave.", - ER_BINLOG_UNSAFE_SYSTEM_VARIABLE: "Statement is unsafe because it uses a system variable that may have a different value on the slave.", - ER_BINLOG_UNSAFE_SYSTEM_FUNCTION: "Statement is unsafe because it uses a system function that may return a different value on the slave.", - ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS: "Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction.", - ER_MESSAGE_AND_STATEMENT: "%s Statement: %s", - ER_SLAVE_CONVERSION_FAILED: "Column %d of table '%-.192s.%-.192s' cannot be converted from type '%-.32s' to type '%-.32s'", - ER_SLAVE_CANT_CREATE_CONVERSION: "Can't create conversion table for table '%-.192s.%-.192s'", - ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT: "Cannot modify @@session.binlog_format inside a transaction", - ER_PATH_LENGTH: "The path specified for %.64s is too long.", - ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT: "'%s' is deprecated and will be removed in a future release.", - ER_WRONG_NATIVE_TABLE_STRUCTURE: "Native table '%-.64s'.'%-.64s' has the wrong structure", - ER_WRONG_PERFSCHEMA_USAGE: "Invalid performance_schema usage.", - ER_WARN_I_S_SKIPPED_TABLE: "Table '%s'.'%s' was skipped since its definition is being modified by concurrent DDL statement", - ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT: "Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction", - ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT: "Cannot change the binlog direct flag inside a stored function or trigger", - ER_SPATIAL_MUST_HAVE_GEOM_COL: "A SPATIAL index may only contain a geometrical type column", - ER_TOO_LONG_INDEX_COMMENT: "Comment for index '%-.64s' is too long (max = %lu)", - ER_LOCK_ABORTED: "Wait on a lock was aborted due to a pending exclusive lock", - ER_DATA_OUT_OF_RANGE: "%s value is out of range in '%s'", - ER_WRONG_SPVAR_TYPE_IN_LIMIT: "A variable of a non-integer based type in LIMIT clause", - ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE: "Mixing self-logging and non-self-logging engines in a statement is unsafe.", - ER_BINLOG_UNSAFE_MIXED_STATEMENT: "Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them.", - ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN: "Cannot modify @@session.sql_log_bin inside a transaction", - ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN: "Cannot change the sql_log_bin inside a stored function or trigger", - ER_FAILED_READ_FROM_PAR_FILE: "Failed to read from the .par file", - ER_VALUES_IS_NOT_INT_TYPE_ERROR: "VALUES value for partition '%-.64s' must have type INT", - ER_ACCESS_DENIED_NO_PASSWORD_ERROR: "Access denied for user '%-.48s'@'%-.64s'", - ER_SET_PASSWORD_AUTH_PLUGIN: "SET PASSWORD has no significance for users authenticating via plugins", - ER_GRANT_PLUGIN_USER_EXISTS: "GRANT with IDENTIFIED WITH is illegal because the user %-.*s already exists", - ER_TRUNCATE_ILLEGAL_FK: "Cannot truncate a table referenced in a foreign key constraint (%.192s)", - ER_PLUGIN_IS_PERMANENT: "Plugin '%s' is force_plus_permanent and can not be unloaded", - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN: "The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled.", - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX: "The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout.", - ER_STMT_CACHE_FULL: "Multi-row statements required more than 'max_binlog_stmt_cache_size' bytes of storage; increase this mysqld variable and try again", - ER_MULTI_UPDATE_KEY_CONFLICT: "Primary key/partition key update is not allowed since the table is updated both as '%-.192s' and '%-.192s'.", - ER_TABLE_NEEDS_REBUILD: "Table rebuild required. Please do \"ALTER TABLE `%-.32s` FORCE\" or dump/reload to fix it!", - WARN_OPTION_BELOW_LIMIT: "The value of '%s' should be no less than the value of '%s'", - ER_INDEX_COLUMN_TOO_LONG: "Index column size too large. The maximum column size is %lu bytes.", - ER_ERROR_IN_TRIGGER_BODY: "Trigger '%-.64s' has an error in its body: '%-.256s'", - ER_ERROR_IN_UNKNOWN_TRIGGER_BODY: "Unknown trigger has an error in its body: '%-.256s'", - ER_INDEX_CORRUPT: "Index %s is corrupted", - ER_UNDO_RECORD_TOO_BIG: "Undo log record is too big.", - ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT: "INSERT IGNORE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE: "INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_REPLACE_SELECT: "REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT: "CREATE... IGNORE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT: "CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_UPDATE_IGNORE: "UPDATE IGNORE is unsafe because the order in which rows are updated determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave.", - ER_PLUGIN_NO_UNINSTALL: "Plugin '%s' is marked as not dynamically uninstallable. You have to stop the server to uninstall it.", - ER_PLUGIN_NO_INSTALL: "Plugin '%s' is marked as not dynamically installable. You have to stop the server to install it.", - ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT: "Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC: "CREATE TABLE... SELECT... on a table with an auto-increment column is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are inserted. This order cannot be predicted and may differ on master and the slave.", - ER_BINLOG_UNSAFE_INSERT_TWO_KEYS: "INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe", - ER_TABLE_IN_FK_CHECK: "Table is being used in foreign key check.", - ER_UNSUPPORTED_ENGINE: "Storage engine '%s' does not support system tables. [%s.%s]", - ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST: "INSERT into autoincrement field which is not the first part in the composed primary key is unsafe.", - ER_CANNOT_LOAD_FROM_TABLE_V2: "Cannot load from %s.%s. The table is probably corrupted", - ER_MASTER_DELAY_VALUE_OUT_OF_RANGE: "The requested value %u for the master delay exceeds the maximum %u", - ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT: "Only Format_description_log_event and row events are allowed in BINLOG statements (but %s was provided)", - ER_PARTITION_EXCHANGE_DIFFERENT_OPTION: "Non matching attribute '%-.64s' between partition and table", - ER_PARTITION_EXCHANGE_PART_TABLE: "Table to exchange with partition is partitioned: '%-.64s'", - ER_PARTITION_EXCHANGE_TEMP_TABLE: "Table to exchange with partition is temporary: '%-.64s'", - ER_PARTITION_INSTEAD_OF_SUBPARTITION: "Subpartitioned table, use subpartition instead of partition", - ER_UNKNOWN_PARTITION: "Unknown partition '%-.64s' in table '%-.64s'", - ER_TABLES_DIFFERENT_METADATA: "Tables have different definitions", - ER_ROW_DOES_NOT_MATCH_PARTITION: "Found a row that does not match the partition", - ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX: "Option binlog_cache_size (%lu) is greater than max_binlog_cache_size (%lu); setting binlog_cache_size equal to max_binlog_cache_size.", - ER_WARN_INDEX_NOT_APPLICABLE: "Cannot use %-.64s access on index '%-.64s' due to type or collation conversion on field '%-.64s'", - ER_PARTITION_EXCHANGE_FOREIGN_KEY: "Table to exchange with partition has foreign key references: '%-.64s'", - ER_NO_SUCH_KEY_VALUE: "Key value '%-.192s' was not found in table '%-.192s.%-.192s'", - ER_RPL_INFO_DATA_TOO_LONG: "Data for column '%s' too long", - ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE: "Replication event checksum verification failed while reading from network.", - ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE: "Replication event checksum verification failed while reading from a log file.", - ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX: "Option binlog_stmt_cache_size (%lu) is greater than max_binlog_stmt_cache_size (%lu); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.", - ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT: "Can't update table '%-.192s' while '%-.192s' is being created.", - ER_PARTITION_CLAUSE_ON_NONPARTITIONED: "PARTITION () clause on non partitioned table", - ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET: "Found a row not matching the given partition set", - ER_NO_SUCH_PARTITION__UNUSED: "partition '%-.64s' doesn't exist", - ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE: "Failure while changing the type of replication repository: %s.", - ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE: "The creation of some temporary tables could not be rolled back.", - ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE: "Some temporary tables were dropped, but these operations could not be rolled back.", - ER_MTS_FEATURE_IS_NOT_SUPPORTED: "%s is not supported in multi-threaded slave mode. %s", - ER_MTS_UPDATED_DBS_GREATER_MAX: "The number of modified databases exceeds the maximum %d; the database names will not be included in the replication event metadata.", - ER_MTS_CANT_PARALLEL: "Cannot execute the current event group in the parallel mode. Encountered event %s, relay-log name %s, position %s which prevents execution of this event group in parallel mode. Reason: %s.", - ER_MTS_INCONSISTENT_DATA: "%s", - ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING: "FULLTEXT index is not supported for partitioned tables.", - ER_DA_INVALID_CONDITION_NUMBER: "Invalid condition number", - ER_INSECURE_PLAIN_TEXT: "Sending passwords in plain text without SSL/TLS is extremely insecure.", - ER_INSECURE_CHANGE_MASTER: "Storing MySQL user name or password information in the master.info repository is not secure and is therefore not recommended. Please see the MySQL Manual for more about this issue and possible alternatives.", - ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO: "Foreign key constraint for table '%.192s', record '%-.192s' would lead to a duplicate entry in table '%.192s', key '%.192s'", - ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO: "Foreign key constraint for table '%.192s', record '%-.192s' would lead to a duplicate entry in a child table", - ER_SQLTHREAD_WITH_SECURE_SLAVE: "Setting authentication options is not possible when only the Slave SQL Thread is being started.", - ER_TABLE_HAS_NO_FT: "The table does not have FULLTEXT index to support this query", - ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER: "The system variable %.200s cannot be set in stored functions or triggers.", - ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION: "The system variable %.200s cannot be set when there is an ongoing transaction.", - ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST: "The system variable @@SESSION.GTID_NEXT has the value %.200s, which is not listed in @@SESSION.GTID_NEXT_LIST.", - ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION_WHEN_GTID_NEXT_LIST_IS_NULL: "When @@SESSION.GTID_NEXT_LIST == NULL, the system variable @@SESSION.GTID_NEXT cannot change inside a transaction.", - ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION: "The statement 'SET %.200s' cannot invoke a stored function.", - ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL: "The system variable @@SESSION.GTID_NEXT cannot be 'AUTOMATIC' when @@SESSION.GTID_NEXT_LIST is non-NULL.", - ER_SKIPPING_LOGGED_TRANSACTION: "Skipping transaction %.200s because it has already been executed and logged.", - ER_MALFORMED_GTID_SET_SPECIFICATION: "Malformed GTID set specification '%.200s'.", - ER_MALFORMED_GTID_SET_ENCODING: "Malformed GTID set encoding.", - ER_MALFORMED_GTID_SPECIFICATION: "Malformed GTID specification '%.200s'.", - ER_GNO_EXHAUSTED: "Impossible to generate Global Transaction Identifier: the integer component reached the maximal value. Restart the server with a new server_uuid.", - ER_BAD_SLAVE_AUTO_POSITION: "Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.", - ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON: "CHANGE MASTER TO MASTER_AUTO_POSITION = 1 can only be executed when @@GLOBAL.GTID_MODE = ON.", - ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET: "Cannot execute statements with implicit commit inside a transaction when @@SESSION.GTID_NEXT != AUTOMATIC or @@SESSION.GTID_NEXT_LIST != NULL.", - ER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON: "@@GLOBAL.GTID_MODE = ON or UPGRADE_STEP_2 requires @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1.", - ER_GTID_MODE_REQUIRES_BINLOG: "@@GLOBAL.GTID_MODE = ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates.", - ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF: "@@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.", - ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON: "@@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MODE = ON.", - ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF: "@@SESSION.GTID_NEXT_LIST cannot be set to a non-NULL value when @@GLOBAL.GTID_MODE = OFF.", - ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF: "Found a Gtid_log_event or Previous_gtids_log_event when @@GLOBAL.GTID_MODE = OFF.", - ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE: "When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.", - ER_GTID_UNSAFE_CREATE_SELECT: "CREATE TABLE ... SELECT is forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1.", - ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION: "When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, the statements CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can be executed in a non-transactional context only, and require that AUTOCOMMIT = 1.", - ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME: "The value of @@GLOBAL.GTID_MODE can only change one step at a time: OFF <-> UPGRADE_STEP_1 <-> UPGRADE_STEP_2 <-> ON. Also note that this value must be stepped up or down simultaneously on all servers; see the Manual for instructions.", - ER_MASTER_HAS_PURGED_REQUIRED_GTIDS: "The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.", - ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID: "@@SESSION.GTID_NEXT cannot be changed by a client that owns a GTID. The client owns %s. Ownership is released on COMMIT or ROLLBACK.", - ER_UNKNOWN_EXPLAIN_FORMAT: "Unknown EXPLAIN format name: '%s'", - ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION: "Cannot execute statement in a READ ONLY transaction.", - ER_TOO_LONG_TABLE_PARTITION_COMMENT: "Comment for table partition '%-.64s' is too long (max = %lu)", - ER_SLAVE_CONFIGURATION: "Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.", - ER_INNODB_FT_LIMIT: "InnoDB presently supports one FULLTEXT index creation at a time", - ER_INNODB_NO_FT_TEMP_TABLE: "Cannot create FULLTEXT index on temporary InnoDB table", - ER_INNODB_FT_WRONG_DOCID_COLUMN: "Column '%-.192s' is of wrong type for an InnoDB FULLTEXT index", - ER_INNODB_FT_WRONG_DOCID_INDEX: "Index '%-.192s' is of wrong type for an InnoDB FULLTEXT index", - ER_INNODB_ONLINE_LOG_TOO_BIG: "Creating index '%-.192s' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again.", - ER_UNKNOWN_ALTER_ALGORITHM: "Unknown ALGORITHM '%s'", - ER_UNKNOWN_ALTER_LOCK: "Unknown LOCK type '%s'", - ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS: "CHANGE MASTER cannot be executed when the slave was stopped with an error or killed in MTS mode. Consider using RESET SLAVE or START SLAVE UNTIL.", - ER_MTS_RECOVERY_FAILURE: "Cannot recover after SLAVE errored out in parallel execution mode. Additional error messages can be found in the MySQL error log.", - ER_MTS_RESET_WORKERS: "Cannot clean up worker info tables. Additional error messages can be found in the MySQL error log.", - ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2: "Column count of %s.%s is wrong. Expected %d, found %d. The table is probably corrupted", - ER_SLAVE_SILENT_RETRY_TRANSACTION: "Slave must silently retry current transaction", - ER_DISCARD_FK_CHECKS_RUNNING: "There is a foreign key check running on table '%-.192s'. Cannot discard the table.", - ER_TABLE_SCHEMA_MISMATCH: "Schema mismatch (%s)", - ER_TABLE_IN_SYSTEM_TABLESPACE: "Table '%-.192s' in system tablespace", - ER_IO_READ_ERROR: "IO Read error: (%lu, %s) %s", - ER_IO_WRITE_ERROR: "IO Write error: (%lu, %s) %s", - ER_TABLESPACE_MISSING: "Tablespace is missing for table '%-.192s'", - ER_TABLESPACE_EXISTS: "Tablespace for table '%-.192s' exists. Please DISCARD the tablespace before IMPORT.", - ER_TABLESPACE_DISCARDED: "Tablespace has been discarded for table '%-.192s'", - ER_INTERNAL_ERROR: "Internal error: %s", - ER_INNODB_IMPORT_ERROR: "ALTER TABLE '%-.192s' IMPORT TABLESPACE failed with error %lu : '%s'", - ER_INNODB_INDEX_CORRUPT: "Index corrupt: %s", - ER_INVALID_YEAR_COLUMN_LENGTH: "YEAR(%lu) column type is deprecated. Creating YEAR(4) column instead.", - ER_NOT_VALID_PASSWORD: "Your password does not satisfy the current policy requirements", - ER_MUST_CHANGE_PASSWORD: "You must SET PASSWORD before executing this statement", - ER_FK_NO_INDEX_CHILD: "Failed to add the foreign key constaint. Missing index for constraint '%s' in the foreign table '%s'", - ER_FK_NO_INDEX_PARENT: "Failed to add the foreign key constaint. Missing index for constraint '%s' in the referenced table '%s'", - ER_FK_FAIL_ADD_SYSTEM: "Failed to add the foreign key constraint '%s' to system tables", - ER_FK_CANNOT_OPEN_PARENT: "Failed to open the referenced table '%s'", - ER_FK_INCORRECT_OPTION: "Failed to add the foreign key constraint on table '%s'. Incorrect options in FOREIGN KEY constraint '%s'", - ER_FK_DUP_NAME: "Duplicate foreign key constraint name '%s'", - ER_PASSWORD_FORMAT: "The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.", - ER_FK_COLUMN_CANNOT_DROP: "Cannot drop column '%-.192s': needed in a foreign key constraint '%-.192s'", - ER_FK_COLUMN_CANNOT_DROP_CHILD: "Cannot drop column '%-.192s': needed in a foreign key constraint '%-.192s' of table '%-.192s'", - ER_FK_COLUMN_NOT_NULL: "Column '%-.192s' cannot be NOT NULL: needed in a foreign key constraint '%-.192s' SET NULL", - ER_DUP_INDEX: "Duplicate index '%-.64s' defined on the table '%-.64s.%-.64s'. This is deprecated and will be disallowed in a future release.", - ER_FK_COLUMN_CANNOT_CHANGE: "Cannot change column '%-.192s': used in a foreign key constraint '%-.192s'", - ER_FK_COLUMN_CANNOT_CHANGE_CHILD: "Cannot change column '%-.192s': used in a foreign key constraint '%-.192s' of table '%-.192s'", - ER_FK_CANNOT_DELETE_PARENT: "Cannot delete rows from table which is parent in a foreign key constraint '%-.192s' of table '%-.192s'", - ER_MALFORMED_PACKET: "Malformed communication packet.", - ER_READ_ONLY_MODE: "Running in read-only mode", - ER_GTID_NEXT_TYPE_UNDEFINED_GROUP: "When @@SESSION.GTID_NEXT is set to a GTID, you must explicitly set it again after a COMMIT or ROLLBACK. If you see this error message in the slave SQL thread, it means that a table in the current transaction is transactional on the master and non-transactional on the slave. In a client connection, it means that you executed SET @@SESSION.GTID_NEXT before a transaction and forgot to set @@SESSION.GTID_NEXT to a different identifier or to 'AUTOMATIC' after COMMIT or ROLLBACK. Current @@SESSION.GTID_NEXT is '%s'.", - ER_VARIABLE_NOT_SETTABLE_IN_SP: "The system variable %.200s cannot be set in stored procedures.", - ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF: "@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_MODE = ON.", - ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY: "@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.", - ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY: "@@GLOBAL.GTID_PURGED can only be set when there are no ongoing transactions (not even in other clients).", - ER_GTID_PURGED_WAS_CHANGED: "@@GLOBAL.GTID_PURGED was changed from '%s' to '%s'.", - ER_GTID_EXECUTED_WAS_CHANGED: "@@GLOBAL.GTID_EXECUTED was changed from '%s' to '%s'.", - ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES: "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT, and both replicated and non replicated tables are written to.", - ER_ALTER_OPERATION_NOT_SUPPORTED: "%s is not supported for this operation. Try %s.", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON: "%s is not supported. Reason: %s. Try %s.", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY: "COPY algorithm requires a lock", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION: "Partition specific operations do not yet support LOCK/ALGORITHM", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME: "Columns participating in a foreign key are renamed", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE: "Cannot change column type INPLACE", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK: "Adding foreign keys needs foreign_key_checks=OFF", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE: "Creating unique indexes with IGNORE requires COPY algorithm to remove duplicate rows", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK: "Dropping a primary key is not allowed without also adding a new primary key", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC: "Adding an auto-increment column requires a lock", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS: "Cannot replace hidden FTS_DOC_ID with a user-visible one", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS: "Cannot drop or rename FTS_DOC_ID", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS: "Fulltext index creation requires a lock", - ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE: "sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction", - ER_DUP_UNKNOWN_IN_INDEX: "Duplicate entry for key '%-.192s'", - ER_IDENT_CAUSES_TOO_LONG_PATH: "Long database name and identifier for object resulted in path length exceeding %d characters. Path: '%s'.", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL: "cannot silently convert NULL values, as required in this SQL_MODE", - ER_MUST_CHANGE_PASSWORD_LOGIN: "Your password has expired. To log in you must change it using a client that supports expired passwords.", - ER_ROW_IN_WRONG_PARTITION: "Found a row in wrong partition %s", -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/error.go b/vendor/github.com/siddontang/go-mysql/mysql/error.go deleted file mode 100644 index 227e70e..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/error.go +++ /dev/null @@ -1,59 +0,0 @@ -package mysql - -import ( - "fmt" - - "github.com/juju/errors" -) - -var ( - ErrBadConn = errors.New("connection was bad") - ErrMalformPacket = errors.New("Malform packet error") - - ErrTxDone = errors.New("sql: Transaction has already been committed or rolled back") -) - -type MyError struct { - Code uint16 - Message string - State string -} - -func (e *MyError) Error() string { - return fmt.Sprintf("ERROR %d (%s): %s", e.Code, e.State, e.Message) -} - -//default mysql error, must adapt errname message format -func NewDefaultError(errCode uint16, args ...interface{}) *MyError { - e := new(MyError) - e.Code = errCode - - if s, ok := MySQLState[errCode]; ok { - e.State = s - } else { - e.State = DEFAULT_MYSQL_STATE - } - - if format, ok := MySQLErrName[errCode]; ok { - e.Message = fmt.Sprintf(format, args...) - } else { - e.Message = fmt.Sprint(args...) - } - - return e -} - -func NewError(errCode uint16, message string) *MyError { - e := new(MyError) - e.Code = errCode - - if s, ok := MySQLState[errCode]; ok { - e.State = s - } else { - e.State = DEFAULT_MYSQL_STATE - } - - e.Message = message - - return e -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/field.go b/vendor/github.com/siddontang/go-mysql/mysql/field.go deleted file mode 100644 index c26f6a2..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/field.go +++ /dev/null @@ -1,157 +0,0 @@ -package mysql - -import ( - "encoding/binary" -) - -type FieldData []byte - -type Field struct { - Data FieldData - Schema []byte - Table []byte - OrgTable []byte - Name []byte - OrgName []byte - Charset uint16 - ColumnLength uint32 - Type uint8 - Flag uint16 - Decimal uint8 - - DefaultValueLength uint64 - DefaultValue []byte -} - -func (p FieldData) Parse() (f *Field, err error) { - f = new(Field) - - f.Data = p - - var n int - pos := 0 - //skip catelog, always def - n, err = SkipLengthEnodedString(p) - if err != nil { - return - } - pos += n - - //schema - f.Schema, _, n, err = LengthEnodedString(p[pos:]) - if err != nil { - return - } - pos += n - - //table - f.Table, _, n, err = LengthEnodedString(p[pos:]) - if err != nil { - return - } - pos += n - - //org_table - f.OrgTable, _, n, err = LengthEnodedString(p[pos:]) - if err != nil { - return - } - pos += n - - //name - f.Name, _, n, err = LengthEnodedString(p[pos:]) - if err != nil { - return - } - pos += n - - //org_name - f.OrgName, _, n, err = LengthEnodedString(p[pos:]) - if err != nil { - return - } - pos += n - - //skip oc - pos += 1 - - //charset - f.Charset = binary.LittleEndian.Uint16(p[pos:]) - pos += 2 - - //column length - f.ColumnLength = binary.LittleEndian.Uint32(p[pos:]) - pos += 4 - - //type - f.Type = p[pos] - pos++ - - //flag - f.Flag = binary.LittleEndian.Uint16(p[pos:]) - pos += 2 - - //decimals 1 - f.Decimal = p[pos] - pos++ - - //filter [0x00][0x00] - pos += 2 - - f.DefaultValue = nil - //if more data, command was field list - if len(p) > pos { - //length of default value lenenc-int - f.DefaultValueLength, _, n = LengthEncodedInt(p[pos:]) - pos += n - - if pos+int(f.DefaultValueLength) > len(p) { - err = ErrMalformPacket - return - } - - //default value string[$len] - f.DefaultValue = p[pos:(pos + int(f.DefaultValueLength))] - } - - return -} - -func (f *Field) Dump() []byte { - if f == nil { - f = &Field{} - } - if f.Data != nil { - return []byte(f.Data) - } - - l := len(f.Schema) + len(f.Table) + len(f.OrgTable) + len(f.Name) + len(f.OrgName) + len(f.DefaultValue) + 48 - - data := make([]byte, 0, l) - - data = append(data, PutLengthEncodedString([]byte("def"))...) - - data = append(data, PutLengthEncodedString(f.Schema)...) - - data = append(data, PutLengthEncodedString(f.Table)...) - data = append(data, PutLengthEncodedString(f.OrgTable)...) - - data = append(data, PutLengthEncodedString(f.Name)...) - data = append(data, PutLengthEncodedString(f.OrgName)...) - - data = append(data, 0x0c) - - data = append(data, Uint16ToBytes(f.Charset)...) - data = append(data, Uint32ToBytes(f.ColumnLength)...) - data = append(data, f.Type) - data = append(data, Uint16ToBytes(f.Flag)...) - data = append(data, f.Decimal) - data = append(data, 0, 0) - - if f.DefaultValue != nil { - data = append(data, Uint64ToBytes(f.DefaultValueLength)...) - data = append(data, f.DefaultValue...) - } - - return data -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/gtid.go b/vendor/github.com/siddontang/go-mysql/mysql/gtid.go deleted file mode 100644 index db0d638..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/gtid.go +++ /dev/null @@ -1,25 +0,0 @@ -package mysql - -import "github.com/juju/errors" - -type GTIDSet interface { - String() string - - // Encode GTID set into binary format used in binlog dump commands - Encode() []byte - - Equal(o GTIDSet) bool - - Contain(o GTIDSet) bool -} - -func ParseGTIDSet(flavor string, s string) (GTIDSet, error) { - switch flavor { - case MySQLFlavor: - return ParseMysqlGTIDSet(s) - case MariaDBFlavor: - return ParseMariadbGTIDSet(s) - default: - return nil, errors.Errorf("invalid flavor %s", flavor) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/mariadb_gtid.go b/vendor/github.com/siddontang/go-mysql/mysql/mariadb_gtid.go deleted file mode 100644 index ea89458..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/mariadb_gtid.go +++ /dev/null @@ -1,80 +0,0 @@ -package mysql - -import ( - "fmt" - "strconv" - "strings" - - "github.com/juju/errors" -) - -type MariadbGTID struct { - DomainID uint32 - ServerID uint32 - SequenceNumber uint64 -} - -// We don't support multi source replication, so the mariadb gtid set may have only domain-server-sequence -func ParseMariadbGTIDSet(str string) (GTIDSet, error) { - if len(str) == 0 { - return MariadbGTID{0, 0, 0}, nil - } - - seps := strings.Split(str, "-") - - var gtid MariadbGTID - - if len(seps) != 3 { - return gtid, errors.Errorf("invalid Mariadb GTID %v, must domain-server-sequence", str) - } - - domainID, err := strconv.ParseUint(seps[0], 10, 32) - if err != nil { - return gtid, errors.Errorf("invalid MariaDB GTID Domain ID (%v): %v", seps[0], err) - } - - serverID, err := strconv.ParseUint(seps[1], 10, 32) - if err != nil { - return gtid, errors.Errorf("invalid MariaDB GTID Server ID (%v): %v", seps[1], err) - } - - sequenceID, err := strconv.ParseUint(seps[2], 10, 64) - if err != nil { - return gtid, errors.Errorf("invalid MariaDB GTID Sequence number (%v): %v", seps[2], err) - } - - return MariadbGTID{ - DomainID: uint32(domainID), - ServerID: uint32(serverID), - SequenceNumber: sequenceID}, nil -} - -func (gtid MariadbGTID) String() string { - if gtid.DomainID == 0 && gtid.ServerID == 0 && gtid.SequenceNumber == 0 { - return "" - } - - return fmt.Sprintf("%d-%d-%d", gtid.DomainID, gtid.ServerID, gtid.SequenceNumber) -} - -func (gtid MariadbGTID) Encode() []byte { - return []byte(gtid.String()) -} - -func (gtid MariadbGTID) Equal(o GTIDSet) bool { - other, ok := o.(MariadbGTID) - if !ok { - return false - } - - return gtid == other -} - -func (gtid MariadbGTID) Contain(o GTIDSet) bool { - other, ok := o.(MariadbGTID) - if !ok { - return false - } - - return gtid.DomainID == other.DomainID && gtid.SequenceNumber >= other.SequenceNumber -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/mysql_gtid.go b/vendor/github.com/siddontang/go-mysql/mysql/mysql_gtid.go deleted file mode 100644 index c54ded0..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/mysql_gtid.go +++ /dev/null @@ -1,409 +0,0 @@ -package mysql - -import ( - "bytes" - "encoding/binary" - "fmt" - "io" - "sort" - "strconv" - "strings" - - "github.com/juju/errors" - "github.com/satori/go.uuid" - "github.com/siddontang/go/hack" -) - -// Like MySQL GTID Interval struct, [start, stop), left closed and right open -// See MySQL rpl_gtid.h -type Interval struct { - // The first GID of this interval. - Start int64 - // The first GID after this interval. - Stop int64 -} - -// Interval is [start, stop), but the GTID string's format is [n] or [n1-n2], closed interval -func parseInterval(str string) (i Interval, err error) { - p := strings.Split(str, "-") - switch len(p) { - case 1: - i.Start, err = strconv.ParseInt(p[0], 10, 64) - i.Stop = i.Start + 1 - case 2: - i.Start, err = strconv.ParseInt(p[0], 10, 64) - i.Stop, err = strconv.ParseInt(p[1], 10, 64) - i.Stop = i.Stop + 1 - default: - err = errors.Errorf("invalid interval format, must n[-n]") - } - - if err != nil { - return - } - - if i.Stop <= i.Start { - err = errors.Errorf("invalid interval format, must n[-n] and the end must >= start") - } - - return -} - -func (i Interval) String() string { - if i.Stop == i.Start+1 { - return fmt.Sprintf("%d", i.Start) - } else { - return fmt.Sprintf("%d-%d", i.Start, i.Stop-1) - } -} - -type IntervalSlice []Interval - -func (s IntervalSlice) Len() int { - return len(s) -} - -func (s IntervalSlice) Less(i, j int) bool { - if s[i].Start < s[j].Start { - return true - } else if s[i].Start > s[j].Start { - return false - } else { - return s[i].Stop < s[j].Stop - } -} - -func (s IntervalSlice) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} - -func (s IntervalSlice) Sort() { - sort.Sort(s) -} - -func (s IntervalSlice) Normalize() IntervalSlice { - var n IntervalSlice - if len(s) == 0 { - return n - } - - s.Sort() - - n = append(n, s[0]) - - for i := 1; i < len(s); i++ { - last := n[len(n)-1] - if s[i].Start > last.Stop { - n = append(n, s[i]) - continue - } else { - n[len(n)-1] = Interval{last.Start, s[i].Stop} - } - } - - return n -} - -// Return true if sub in s -func (s IntervalSlice) Contain(sub IntervalSlice) bool { - j := 0 - for i := 0; i < len(sub); i++ { - for ; j < len(s); j++ { - if sub[i].Start > s[j].Stop { - continue - } else { - break - } - } - if j == len(s) { - return false - } - - if sub[i].Start < s[j].Start || sub[i].Stop > s[j].Stop { - return false - } - } - - return true -} - -func (s IntervalSlice) Equal(o IntervalSlice) bool { - if len(s) != len(o) { - return false - } - - for i := 0; i < len(s); i++ { - if s[i].Start != o[i].Start || s[i].Stop != o[i].Stop { - return false - } - } - - return true -} - -func (s IntervalSlice) Compare(o IntervalSlice) int { - if s.Equal(o) { - return 0 - } else if s.Contain(o) { - return 1 - } else { - return -1 - } -} - -// Refer http://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html -type UUIDSet struct { - SID uuid.UUID - - Intervals IntervalSlice -} - -func ParseUUIDSet(str string) (*UUIDSet, error) { - str = strings.TrimSpace(str) - sep := strings.Split(str, ":") - if len(sep) < 2 { - return nil, errors.Errorf("invalid GTID format, must UUID:interval[:interval]") - } - - var err error - s := new(UUIDSet) - if s.SID, err = uuid.FromString(sep[0]); err != nil { - return nil, errors.Trace(err) - } - - // Handle interval - for i := 1; i < len(sep); i++ { - if in, err := parseInterval(sep[i]); err != nil { - return nil, errors.Trace(err) - } else { - s.Intervals = append(s.Intervals, in) - } - } - - s.Intervals = s.Intervals.Normalize() - - return s, nil -} - -func NewUUIDSet(sid uuid.UUID, in ...Interval) *UUIDSet { - s := new(UUIDSet) - s.SID = sid - - s.Intervals = in - s.Intervals = s.Intervals.Normalize() - - return s -} - -func (s *UUIDSet) Contain(sub *UUIDSet) bool { - if !bytes.Equal(s.SID.Bytes(), sub.SID.Bytes()) { - return false - } - - return s.Intervals.Contain(sub.Intervals) -} - -func (s *UUIDSet) Bytes() []byte { - var buf bytes.Buffer - - buf.WriteString(s.SID.String()) - - for _, i := range s.Intervals { - buf.WriteString(":") - buf.WriteString(i.String()) - } - - return buf.Bytes() -} - -func (s *UUIDSet) AddInterval(in IntervalSlice) { - s.Intervals = append(s.Intervals, in...) - s.Intervals = s.Intervals.Normalize() -} - -func (s *UUIDSet) String() string { - return hack.String(s.Bytes()) -} - -func (s *UUIDSet) encode(w io.Writer) { - w.Write(s.SID.Bytes()) - n := int64(len(s.Intervals)) - - binary.Write(w, binary.LittleEndian, n) - - for _, i := range s.Intervals { - binary.Write(w, binary.LittleEndian, i.Start) - binary.Write(w, binary.LittleEndian, i.Stop) - } -} - -func (s *UUIDSet) Encode() []byte { - var buf bytes.Buffer - - s.encode(&buf) - - return buf.Bytes() -} - -func (s *UUIDSet) decode(data []byte) (int, error) { - if len(data) < 24 { - return 0, errors.Errorf("invalid uuid set buffer, less 24") - } - - pos := 0 - var err error - if s.SID, err = uuid.FromBytes(data[0:16]); err != nil { - return 0, err - } - pos += 16 - - n := int64(binary.LittleEndian.Uint64(data[pos : pos+8])) - pos += 8 - if len(data) < int(16*n)+pos { - return 0, errors.Errorf("invalid uuid set buffer, must %d, but %d", pos+int(16*n), len(data)) - } - - s.Intervals = make([]Interval, 0, n) - - var in Interval - for i := int64(0); i < n; i++ { - in.Start = int64(binary.LittleEndian.Uint64(data[pos : pos+8])) - pos += 8 - in.Stop = int64(binary.LittleEndian.Uint64(data[pos : pos+8])) - pos += 8 - s.Intervals = append(s.Intervals, in) - } - - return pos, nil -} - -func (s *UUIDSet) Decode(data []byte) error { - n, err := s.decode(data) - if n != len(data) { - return errors.Errorf("invalid uuid set buffer, must %d, but %d", n, len(data)) - } - return err -} - -type MysqlGTIDSet struct { - Sets map[string]*UUIDSet -} - -func ParseMysqlGTIDSet(str string) (GTIDSet, error) { - s := new(MysqlGTIDSet) - - sp := strings.Split(str, ",") - - s.Sets = make(map[string]*UUIDSet, len(sp)) - - //todo, handle redundant same uuid - for i := 0; i < len(sp); i++ { - if set, err := ParseUUIDSet(sp[i]); err != nil { - return nil, errors.Trace(err) - } else { - s.AddSet(set) - } - - } - return s, nil -} - -func DecodeMysqlGTIDSet(data []byte) (*MysqlGTIDSet, error) { - s := new(MysqlGTIDSet) - - if len(data) < 8 { - return nil, errors.Errorf("invalid gtid set buffer, less 4") - } - - n := int(binary.LittleEndian.Uint64(data)) - s.Sets = make(map[string]*UUIDSet, n) - - pos := 8 - - for i := 0; i < n; i++ { - set := new(UUIDSet) - if n, err := set.decode(data[pos:]); err != nil { - return nil, errors.Trace(err) - } else { - pos += n - - s.AddSet(set) - } - } - return s, nil -} - -func (s *MysqlGTIDSet) AddSet(set *UUIDSet) { - sid := set.SID.String() - o, ok := s.Sets[sid] - if ok { - o.AddInterval(set.Intervals) - } else { - s.Sets[sid] = set - } -} - -func (s *MysqlGTIDSet) Contain(o GTIDSet) bool { - sub, ok := o.(*MysqlGTIDSet) - if !ok { - return false - } - - for key, set := range sub.Sets { - o, ok := s.Sets[key] - if !ok { - return false - } - - if !o.Contain(set) { - return false - } - } - - return true -} - -func (s *MysqlGTIDSet) Equal(o GTIDSet) bool { - sub, ok := o.(*MysqlGTIDSet) - if !ok { - return false - } - - for key, set := range sub.Sets { - o, ok := s.Sets[key] - if !ok { - return false - } - - if !o.Intervals.Equal(set.Intervals) { - return false - } - } - - return true - -} - -func (s *MysqlGTIDSet) String() string { - var buf bytes.Buffer - sep := "" - for _, set := range s.Sets { - buf.WriteString(sep) - buf.WriteString(set.String()) - sep = "," - } - - return hack.String(buf.Bytes()) -} - -func (s *MysqlGTIDSet) Encode() []byte { - var buf bytes.Buffer - - binary.Write(&buf, binary.LittleEndian, uint64(len(s.Sets))) - - for i, _ := range s.Sets { - s.Sets[i].encode(&buf) - } - - return buf.Bytes() -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/mysql_test.go b/vendor/github.com/siddontang/go-mysql/mysql/mysql_test.go deleted file mode 100644 index 8fbaaab..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/mysql_test.go +++ /dev/null @@ -1,153 +0,0 @@ -package mysql - -import ( - "testing" - - "github.com/pingcap/check" -) - -func Test(t *testing.T) { - check.TestingT(t) -} - -type mysqlTestSuite struct { -} - -var _ = check.Suite(&mysqlTestSuite{}) - -func (s *mysqlTestSuite) SetUpSuite(c *check.C) { - -} - -func (s *mysqlTestSuite) TearDownSuite(c *check.C) { - -} - -func (t *mysqlTestSuite) TestMysqlGTIDInterval(c *check.C) { - i, err := parseInterval("1-2") - c.Assert(err, check.IsNil) - c.Assert(i, check.DeepEquals, Interval{1, 3}) - - i, err = parseInterval("1") - c.Assert(err, check.IsNil) - c.Assert(i, check.DeepEquals, Interval{1, 2}) - - i, err = parseInterval("1-1") - c.Assert(err, check.IsNil) - c.Assert(i, check.DeepEquals, Interval{1, 2}) - - i, err = parseInterval("1-2") - c.Assert(err, check.IsNil) -} - -func (t *mysqlTestSuite) TestMysqlGTIDIntervalSlice(c *check.C) { - i := IntervalSlice{Interval{1, 2}, Interval{2, 4}, Interval{2, 3}} - i.Sort() - c.Assert(i, check.DeepEquals, IntervalSlice{Interval{1, 2}, Interval{2, 3}, Interval{2, 4}}) - n := i.Normalize() - c.Assert(n, check.DeepEquals, IntervalSlice{Interval{1, 4}}) - - i = IntervalSlice{Interval{1, 2}, Interval{3, 5}, Interval{1, 3}} - i.Sort() - c.Assert(i, check.DeepEquals, IntervalSlice{Interval{1, 2}, Interval{1, 3}, Interval{3, 5}}) - n = i.Normalize() - c.Assert(n, check.DeepEquals, IntervalSlice{Interval{1, 5}}) - - i = IntervalSlice{Interval{1, 2}, Interval{4, 5}, Interval{1, 3}} - i.Sort() - c.Assert(i, check.DeepEquals, IntervalSlice{Interval{1, 2}, Interval{1, 3}, Interval{4, 5}}) - n = i.Normalize() - c.Assert(n, check.DeepEquals, IntervalSlice{Interval{1, 3}, Interval{4, 5}}) - - n1 := IntervalSlice{Interval{1, 3}, Interval{4, 5}} - n2 := IntervalSlice{Interval{1, 2}} - - c.Assert(n1.Contain(n2), check.Equals, true) - c.Assert(n2.Contain(n1), check.Equals, false) - - n1 = IntervalSlice{Interval{1, 3}, Interval{4, 5}} - n2 = IntervalSlice{Interval{1, 6}} - - c.Assert(n1.Contain(n2), check.Equals, false) - c.Assert(n2.Contain(n1), check.Equals, true) -} - -func (t *mysqlTestSuite) TestMysqlGTIDCodec(c *check.C) { - us, err := ParseUUIDSet("de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2") - c.Assert(err, check.IsNil) - - c.Assert(us.String(), check.Equals, "de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2") - - buf := us.Encode() - err = us.Decode(buf) - c.Assert(err, check.IsNil) - - gs, err := ParseMysqlGTIDSet("de278ad0-2106-11e4-9f8e-6edd0ca20947:1-2,de278ad0-2106-11e4-9f8e-6edd0ca20948:1-2") - c.Assert(err, check.IsNil) - - buf = gs.Encode() - o, err := DecodeMysqlGTIDSet(buf) - c.Assert(err, check.IsNil) - c.Assert(gs, check.DeepEquals, o) -} - -func (t *mysqlTestSuite) TestMysqlGTIDContain(c *check.C) { - g1, err := ParseMysqlGTIDSet("3E11FA47-71CA-11E1-9E33-C80AA9429562:23") - c.Assert(err, check.IsNil) - - g2, err := ParseMysqlGTIDSet("3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57") - c.Assert(err, check.IsNil) - - c.Assert(g2.Contain(g1), check.Equals, true) - c.Assert(g1.Contain(g2), check.Equals, false) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryInt8(c *check.C) { - i8 := ParseBinaryInt8([]byte{128}) - c.Assert(i8, check.Equals, int8(-128)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryUint8(c *check.C) { - u8 := ParseBinaryUint8([]byte{128}) - c.Assert(u8, check.Equals, uint8(128)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryInt16(c *check.C) { - i16 := ParseBinaryInt16([]byte{1, 128}) - c.Assert(i16, check.Equals, int16(-128*256+1)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryUint16(c *check.C) { - u16 := ParseBinaryUint16([]byte{1, 128}) - c.Assert(u16, check.Equals, uint16(128*256+1)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryInt24(c *check.C) { - i32 := ParseBinaryInt24([]byte{1, 2, 128}) - c.Assert(i32, check.Equals, int32(-128*65536+2*256+1)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryUint24(c *check.C) { - u32 := ParseBinaryUint24([]byte{1, 2, 128}) - c.Assert(u32, check.Equals, uint32(128*65536+2*256+1)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryInt32(c *check.C) { - i32 := ParseBinaryInt32([]byte{1, 2, 3, 128}) - c.Assert(i32, check.Equals, int32(-128*16777216+3*65536+2*256+1)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryUint32(c *check.C) { - u32 := ParseBinaryUint32([]byte{1, 2, 3, 128}) - c.Assert(u32, check.Equals, uint32(128*16777216+3*65536+2*256+1)) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryInt64(c *check.C) { - i64 := ParseBinaryInt64([]byte{1, 2, 3, 4, 5, 6, 7, 128}) - c.Assert(i64, check.Equals, -128*int64(72057594037927936)+7*int64(281474976710656)+6*int64(1099511627776)+5*int64(4294967296)+4*16777216+3*65536+2*256+1) -} - -func (t *mysqlTestSuite) TestMysqlParseBinaryUint64(c *check.C) { - u64 := ParseBinaryUint64([]byte{1, 2, 3, 4, 5, 6, 7, 128}) - c.Assert(u64, check.Equals, 128*uint64(72057594037927936)+7*uint64(281474976710656)+6*uint64(1099511627776)+5*uint64(4294967296)+4*16777216+3*65536+2*256+1) -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/parse_binary.go b/vendor/github.com/siddontang/go-mysql/mysql/parse_binary.go deleted file mode 100644 index b9b8179..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/parse_binary.go +++ /dev/null @@ -1,53 +0,0 @@ -package mysql - -import ( - "encoding/binary" - "math" -) - -func ParseBinaryInt8(data []byte) int8 { - return int8(data[0]) -} -func ParseBinaryUint8(data []byte) uint8 { - return data[0] -} - -func ParseBinaryInt16(data []byte) int16 { - return int16(binary.LittleEndian.Uint16(data)) -} -func ParseBinaryUint16(data []byte) uint16 { - return binary.LittleEndian.Uint16(data) -} - -func ParseBinaryInt24(data []byte) int32 { - u32 := uint32(ParseBinaryUint24(data)) - if u32&0x00800000 != 0 { - u32 |= 0xFF000000 - } - return int32(u32) -} -func ParseBinaryUint24(data []byte) uint32 { - return uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16 -} - -func ParseBinaryInt32(data []byte) int32 { - return int32(binary.LittleEndian.Uint32(data)) -} -func ParseBinaryUint32(data []byte) uint32 { - return binary.LittleEndian.Uint32(data) -} - -func ParseBinaryInt64(data []byte) int64 { - return int64(binary.LittleEndian.Uint64(data)) -} -func ParseBinaryUint64(data []byte) uint64 { - return binary.LittleEndian.Uint64(data) -} - -func ParseBinaryFloat32(data []byte) float32 { - return math.Float32frombits(binary.LittleEndian.Uint32(data)) -} - -func ParseBinaryFloat64(data []byte) float64 { - return math.Float64frombits(binary.LittleEndian.Uint64(data)) -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/position.go b/vendor/github.com/siddontang/go-mysql/mysql/position.go deleted file mode 100644 index bee5485..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/position.go +++ /dev/null @@ -1,33 +0,0 @@ -package mysql - -import ( - "fmt" -) - -// For binlog filename + position based replication -type Position struct { - Name string - Pos uint32 -} - -func (p Position) Compare(o Position) int { - // First compare binlog name - if p.Name > o.Name { - return 1 - } else if p.Name < o.Name { - return -1 - } else { - // Same binlog file, compare position - if p.Pos > o.Pos { - return 1 - } else if p.Pos < o.Pos { - return -1 - } else { - return 0 - } - } -} - -func (p Position) String() string { - return fmt.Sprintf("(%s, %d)", p.Name, p.Pos) -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/result.go b/vendor/github.com/siddontang/go-mysql/mysql/result.go deleted file mode 100644 index d6c80e4..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/result.go +++ /dev/null @@ -1,14 +0,0 @@ -package mysql - -type Result struct { - Status uint16 - - InsertId uint64 - AffectedRows uint64 - - *Resultset -} - -type Executer interface { - Execute(query string, args ...interface{}) (*Result, error) -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/resultset.go b/vendor/github.com/siddontang/go-mysql/mysql/resultset.go deleted file mode 100644 index a50d9f8..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/resultset.go +++ /dev/null @@ -1,438 +0,0 @@ -package mysql - -import ( - "fmt" - "strconv" - - "github.com/juju/errors" - "github.com/siddontang/go/hack" -) - -type RowData []byte - -func (p RowData) Parse(f []*Field, binary bool) ([]interface{}, error) { - if binary { - return p.ParseBinary(f) - } else { - return p.ParseText(f) - } -} - -func (p RowData) ParseText(f []*Field) ([]interface{}, error) { - data := make([]interface{}, len(f)) - - var err error - var v []byte - var isNull bool - var pos int = 0 - var n int = 0 - - for i := range f { - v, isNull, n, err = LengthEnodedString(p[pos:]) - if err != nil { - return nil, errors.Trace(err) - } - - pos += n - - if isNull { - data[i] = nil - } else { - isUnsigned := f[i].Flag&UNSIGNED_FLAG != 0 - - switch f[i].Type { - case MYSQL_TYPE_TINY, MYSQL_TYPE_SHORT, MYSQL_TYPE_INT24, - MYSQL_TYPE_LONGLONG, MYSQL_TYPE_YEAR: - if isUnsigned { - data[i], err = strconv.ParseUint(string(v), 10, 64) - } else { - data[i], err = strconv.ParseInt(string(v), 10, 64) - } - case MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE: - data[i], err = strconv.ParseFloat(string(v), 64) - default: - data[i] = v - } - - if err != nil { - return nil, errors.Trace(err) - } - } - } - - return data, nil -} - -func (p RowData) ParseBinary(f []*Field) ([]interface{}, error) { - data := make([]interface{}, len(f)) - - if p[0] != OK_HEADER { - return nil, ErrMalformPacket - } - - pos := 1 + ((len(f) + 7 + 2) >> 3) - - nullBitmap := p[1:pos] - - var isNull bool - var n int - var err error - var v []byte - for i := range data { - if nullBitmap[(i+2)/8]&(1<<(uint(i+2)%8)) > 0 { - data[i] = nil - continue - } - - isUnsigned := f[i].Flag&UNSIGNED_FLAG != 0 - - switch f[i].Type { - case MYSQL_TYPE_NULL: - data[i] = nil - continue - - case MYSQL_TYPE_TINY: - if isUnsigned { - data[i] = ParseBinaryUint8(p[pos : pos+1]) - } else { - data[i] = ParseBinaryInt8(p[pos : pos+1]) - } - pos++ - continue - - case MYSQL_TYPE_SHORT, MYSQL_TYPE_YEAR: - if isUnsigned { - data[i] = ParseBinaryUint16(p[pos : pos+2]) - } else { - data[i] = ParseBinaryInt16(p[pos : pos+2]) - } - pos += 2 - continue - - case MYSQL_TYPE_INT24: - if isUnsigned { - data[i] = ParseBinaryUint24(p[pos : pos+3]) - } else { - data[i] = ParseBinaryInt24(p[pos : pos+3]) - } - pos += 4 - continue - - case MYSQL_TYPE_LONG: - if isUnsigned { - data[i] = ParseBinaryUint32(p[pos : pos+4]) - } else { - data[i] = ParseBinaryInt32(p[pos : pos+4]) - } - pos += 4 - continue - - case MYSQL_TYPE_LONGLONG: - if isUnsigned { - data[i] = ParseBinaryUint64(p[pos : pos+8]) - } else { - data[i] = ParseBinaryInt64(p[pos : pos+8]) - } - pos += 8 - continue - - case MYSQL_TYPE_FLOAT: - data[i] = ParseBinaryFloat32(p[pos : pos+4]) - pos += 4 - continue - - case MYSQL_TYPE_DOUBLE: - data[i] = ParseBinaryFloat64(p[pos : pos+8]) - pos += 8 - continue - - case MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, - MYSQL_TYPE_BIT, 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: - v, isNull, n, err = LengthEnodedString(p[pos:]) - pos += n - if err != nil { - return nil, errors.Trace(err) - } - - if !isNull { - data[i] = v - continue - } else { - data[i] = nil - continue - } - case MYSQL_TYPE_DATE, MYSQL_TYPE_NEWDATE: - var num uint64 - num, isNull, n = LengthEncodedInt(p[pos:]) - - pos += n - - if isNull { - data[i] = nil - continue - } - - data[i], err = FormatBinaryDate(int(num), p[pos:]) - pos += int(num) - - if err != nil { - return nil, errors.Trace(err) - } - - case MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_DATETIME: - var num uint64 - num, isNull, n = LengthEncodedInt(p[pos:]) - - pos += n - - if isNull { - data[i] = nil - continue - } - - data[i], err = FormatBinaryDateTime(int(num), p[pos:]) - pos += int(num) - - if err != nil { - return nil, errors.Trace(err) - } - - case MYSQL_TYPE_TIME: - var num uint64 - num, isNull, n = LengthEncodedInt(p[pos:]) - - pos += n - - if isNull { - data[i] = nil - continue - } - - data[i], err = FormatBinaryTime(int(num), p[pos:]) - pos += int(num) - - if err != nil { - return nil, errors.Trace(err) - } - - default: - return nil, errors.Errorf("Stmt Unknown FieldType %d %s", f[i].Type, f[i].Name) - } - } - - return data, nil -} - -type Resultset struct { - Fields []*Field - FieldNames map[string]int - Values [][]interface{} - - RowDatas []RowData -} - -func (r *Resultset) RowNumber() int { - return len(r.Values) -} - -func (r *Resultset) ColumnNumber() int { - return len(r.Fields) -} - -func (r *Resultset) GetValue(row, column int) (interface{}, error) { - if row >= len(r.Values) || row < 0 { - return nil, errors.Errorf("invalid row index %d", row) - } - - if column >= len(r.Fields) || column < 0 { - return nil, errors.Errorf("invalid column index %d", column) - } - - return r.Values[row][column], nil -} - -func (r *Resultset) NameIndex(name string) (int, error) { - if column, ok := r.FieldNames[name]; ok { - return column, nil - } else { - return 0, errors.Errorf("invalid field name %s", name) - } -} - -func (r *Resultset) GetValueByName(row int, name string) (interface{}, error) { - if column, err := r.NameIndex(name); err != nil { - return nil, errors.Trace(err) - } else { - return r.GetValue(row, column) - } -} - -func (r *Resultset) IsNull(row, column int) (bool, error) { - d, err := r.GetValue(row, column) - if err != nil { - return false, err - } - - return d == nil, nil -} - -func (r *Resultset) IsNullByName(row int, name string) (bool, error) { - if column, err := r.NameIndex(name); err != nil { - return false, err - } else { - return r.IsNull(row, column) - } -} - -func (r *Resultset) GetUint(row, column int) (uint64, error) { - d, err := r.GetValue(row, column) - if err != nil { - return 0, err - } - - switch v := d.(type) { - case int: - return uint64(v), nil - case int8: - return uint64(v), nil - case int16: - return uint64(v), nil - case int32: - return uint64(v), nil - case int64: - return uint64(v), nil - case uint: - return uint64(v), nil - case uint8: - return uint64(v), nil - case uint16: - return uint64(v), nil - case uint32: - return uint64(v), nil - case uint64: - return uint64(v), nil - case float32: - return uint64(v), nil - case float64: - return uint64(v), nil - case string: - return strconv.ParseUint(v, 10, 64) - case []byte: - return strconv.ParseUint(string(v), 10, 64) - case nil: - return 0, nil - default: - return 0, errors.Errorf("data type is %T", v) - } -} - -func (r *Resultset) GetUintByName(row int, name string) (uint64, error) { - if column, err := r.NameIndex(name); err != nil { - return 0, err - } else { - return r.GetUint(row, column) - } -} - -func (r *Resultset) GetInt(row, column int) (int64, error) { - v, err := r.GetUint(row, column) - if err != nil { - return 0, err - } - - return int64(v), nil -} - -func (r *Resultset) GetIntByName(row int, name string) (int64, error) { - v, err := r.GetUintByName(row, name) - if err != nil { - return 0, err - } - - return int64(v), nil -} - -func (r *Resultset) GetFloat(row, column int) (float64, error) { - d, err := r.GetValue(row, column) - if err != nil { - return 0, err - } - - switch v := d.(type) { - case int: - return float64(v), nil - case int8: - return float64(v), nil - case int16: - return float64(v), nil - case int32: - return float64(v), nil - case int64: - return float64(v), nil - case uint: - return float64(v), nil - case uint8: - return float64(v), nil - case uint16: - return float64(v), nil - case uint32: - return float64(v), nil - case uint64: - return float64(v), nil - case float32: - return float64(v), nil - case float64: - return v, nil - case string: - return strconv.ParseFloat(v, 64) - case []byte: - return strconv.ParseFloat(string(v), 64) - case nil: - return 0, nil - default: - return 0, errors.Errorf("data type is %T", v) - } -} - -func (r *Resultset) GetFloatByName(row int, name string) (float64, error) { - if column, err := r.NameIndex(name); err != nil { - return 0, err - } else { - return r.GetFloat(row, column) - } -} - -func (r *Resultset) GetString(row, column int) (string, error) { - d, err := r.GetValue(row, column) - if err != nil { - return "", err - } - - switch v := d.(type) { - case string: - return v, nil - case []byte: - return hack.String(v), nil - case int, int8, int16, int32, int64, - uint, uint8, uint16, uint32, uint64: - return fmt.Sprintf("%d", v), nil - case float32: - return strconv.FormatFloat(float64(v), 'f', -1, 64), nil - case float64: - return strconv.FormatFloat(v, 'f', -1, 64), nil - case nil: - return "", nil - default: - return "", errors.Errorf("data type is %T", v) - } -} - -func (r *Resultset) GetStringByName(row int, name string) (string, error) { - if column, err := r.NameIndex(name); err != nil { - return "", err - } else { - return r.GetString(row, column) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/resultset_helper.go b/vendor/github.com/siddontang/go-mysql/mysql/resultset_helper.go deleted file mode 100644 index 488d253..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/resultset_helper.go +++ /dev/null @@ -1,205 +0,0 @@ -package mysql - -import ( - "math" - "strconv" - - "github.com/juju/errors" - "github.com/siddontang/go/hack" -) - -func formatTextValue(value interface{}) ([]byte, error) { - switch v := value.(type) { - case int8: - return strconv.AppendInt(nil, int64(v), 10), nil - case int16: - return strconv.AppendInt(nil, int64(v), 10), nil - case int32: - return strconv.AppendInt(nil, int64(v), 10), nil - case int64: - return strconv.AppendInt(nil, int64(v), 10), nil - case int: - return strconv.AppendInt(nil, int64(v), 10), nil - case uint8: - return strconv.AppendUint(nil, uint64(v), 10), nil - case uint16: - return strconv.AppendUint(nil, uint64(v), 10), nil - case uint32: - return strconv.AppendUint(nil, uint64(v), 10), nil - case uint64: - return strconv.AppendUint(nil, uint64(v), 10), nil - case uint: - return strconv.AppendUint(nil, uint64(v), 10), nil - case float32: - return strconv.AppendFloat(nil, float64(v), 'f', -1, 64), nil - case float64: - return strconv.AppendFloat(nil, float64(v), 'f', -1, 64), nil - case []byte: - return v, nil - case string: - return hack.Slice(v), nil - default: - return nil, errors.Errorf("invalid type %T", value) - } -} - -func formatBinaryValue(value interface{}) ([]byte, error) { - switch v := value.(type) { - case int8: - return Uint64ToBytes(uint64(v)), nil - case int16: - return Uint64ToBytes(uint64(v)), nil - case int32: - return Uint64ToBytes(uint64(v)), nil - case int64: - return Uint64ToBytes(uint64(v)), nil - case int: - return Uint64ToBytes(uint64(v)), nil - case uint8: - return Uint64ToBytes(uint64(v)), nil - case uint16: - return Uint64ToBytes(uint64(v)), nil - case uint32: - return Uint64ToBytes(uint64(v)), nil - case uint64: - return Uint64ToBytes(uint64(v)), nil - case uint: - return Uint64ToBytes(uint64(v)), nil - case float32: - return Uint64ToBytes(math.Float64bits(float64(v))), nil - case float64: - return Uint64ToBytes(math.Float64bits(v)), nil - case []byte: - return v, nil - case string: - return hack.Slice(v), nil - default: - return nil, errors.Errorf("invalid type %T", value) - } -} -func formatField(field *Field, value interface{}) error { - switch value.(type) { - case int8, int16, int32, int64, int: - field.Charset = 63 - field.Type = MYSQL_TYPE_LONGLONG - field.Flag = BINARY_FLAG | NOT_NULL_FLAG - case uint8, uint16, uint32, uint64, uint: - field.Charset = 63 - field.Type = MYSQL_TYPE_LONGLONG - field.Flag = BINARY_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG - case float32, float64: - field.Charset = 63 - field.Type = MYSQL_TYPE_DOUBLE - field.Flag = BINARY_FLAG | NOT_NULL_FLAG - case string, []byte: - field.Charset = 33 - field.Type = MYSQL_TYPE_VAR_STRING - default: - return errors.Errorf("unsupport type %T for resultset", value) - } - return nil -} - -func BuildSimpleTextResultset(names []string, values [][]interface{}) (*Resultset, error) { - r := new(Resultset) - - r.Fields = make([]*Field, len(names)) - - var b []byte - var err error - - for i, vs := range values { - if len(vs) != len(r.Fields) { - return nil, errors.Errorf("row %d has %d column not equal %d", i, len(vs), len(r.Fields)) - } - - var row []byte - for j, value := range vs { - if i == 0 { - field := &Field{} - r.Fields[j] = field - field.Name = hack.Slice(names[j]) - - if err = formatField(field, value); err != nil { - return nil, errors.Trace(err) - } - } - b, err = formatTextValue(value) - - if err != nil { - return nil, errors.Trace(err) - } - - row = append(row, PutLengthEncodedString(b)...) - } - - r.RowDatas = append(r.RowDatas, row) - } - - return r, nil -} - -func BuildSimpleBinaryResultset(names []string, values [][]interface{}) (*Resultset, error) { - r := new(Resultset) - - r.Fields = make([]*Field, len(names)) - - var b []byte - var err error - - bitmapLen := ((len(names) + 7 + 2) >> 3) - - for i, vs := range values { - if len(vs) != len(r.Fields) { - return nil, errors.Errorf("row %d has %d column not equal %d", i, len(vs), len(r.Fields)) - } - - var row []byte - nullBitmap := make([]byte, bitmapLen) - - row = append(row, 0) - row = append(row, nullBitmap...) - - for j, value := range vs { - if i == 0 { - field := &Field{} - r.Fields[j] = field - field.Name = hack.Slice(names[j]) - - if err = formatField(field, value); err != nil { - return nil, errors.Trace(err) - } - } - if value == nil { - nullBitmap[(i+2)/8] |= (1 << (uint(i+2) % 8)) - continue - } - - b, err = formatBinaryValue(value) - - if err != nil { - return nil, errors.Trace(err) - } - - if r.Fields[j].Type == MYSQL_TYPE_VAR_STRING { - row = append(row, PutLengthEncodedString(b)...) - } else { - row = append(row, b...) - } - } - - copy(row[1:], nullBitmap) - - r.RowDatas = append(r.RowDatas, row) - } - - return r, nil -} - -func BuildSimpleResultset(names []string, values [][]interface{}, binary bool) (*Resultset, error) { - if binary { - return BuildSimpleBinaryResultset(names, values) - } else { - return BuildSimpleTextResultset(names, values) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/state.go b/vendor/github.com/siddontang/go-mysql/mysql/state.go deleted file mode 100644 index 568d84b..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/state.go +++ /dev/null @@ -1,233 +0,0 @@ -package mysql - -const ( - DEFAULT_MYSQL_STATE = "HY000" -) - -var MySQLState = map[uint16]string{ - ER_DUP_KEY: "23000", - ER_OUTOFMEMORY: "HY001", - ER_OUT_OF_SORTMEMORY: "HY001", - ER_CON_COUNT_ERROR: "08004", - ER_BAD_HOST_ERROR: "08S01", - ER_HANDSHAKE_ERROR: "08S01", - ER_DBACCESS_DENIED_ERROR: "42000", - ER_ACCESS_DENIED_ERROR: "28000", - ER_NO_DB_ERROR: "3D000", - ER_UNKNOWN_COM_ERROR: "08S01", - ER_BAD_NULL_ERROR: "23000", - ER_BAD_DB_ERROR: "42000", - ER_TABLE_EXISTS_ERROR: "42S01", - ER_BAD_TABLE_ERROR: "42S02", - ER_NON_UNIQ_ERROR: "23000", - ER_SERVER_SHUTDOWN: "08S01", - ER_BAD_FIELD_ERROR: "42S22", - ER_WRONG_FIELD_WITH_GROUP: "42000", - ER_WRONG_SUM_SELECT: "42000", - ER_WRONG_GROUP_FIELD: "42000", - ER_WRONG_VALUE_COUNT: "21S01", - ER_TOO_LONG_IDENT: "42000", - ER_DUP_FIELDNAME: "42S21", - ER_DUP_KEYNAME: "42000", - ER_DUP_ENTRY: "23000", - ER_WRONG_FIELD_SPEC: "42000", - ER_PARSE_ERROR: "42000", - ER_EMPTY_QUERY: "42000", - ER_NONUNIQ_TABLE: "42000", - ER_INVALID_DEFAULT: "42000", - ER_MULTIPLE_PRI_KEY: "42000", - ER_TOO_MANY_KEYS: "42000", - ER_TOO_MANY_KEY_PARTS: "42000", - ER_TOO_LONG_KEY: "42000", - ER_KEY_COLUMN_DOES_NOT_EXITS: "42000", - ER_BLOB_USED_AS_KEY: "42000", - ER_TOO_BIG_FIELDLENGTH: "42000", - ER_WRONG_AUTO_KEY: "42000", - ER_FORCING_CLOSE: "08S01", - ER_IPSOCK_ERROR: "08S01", - ER_NO_SUCH_INDEX: "42S12", - ER_WRONG_FIELD_TERMINATORS: "42000", - ER_BLOBS_AND_NO_TERMINATED: "42000", - ER_CANT_REMOVE_ALL_FIELDS: "42000", - ER_CANT_DROP_FIELD_OR_KEY: "42000", - ER_BLOB_CANT_HAVE_DEFAULT: "42000", - ER_WRONG_DB_NAME: "42000", - ER_WRONG_TABLE_NAME: "42000", - ER_TOO_BIG_SELECT: "42000", - ER_UNKNOWN_PROCEDURE: "42000", - ER_WRONG_PARAMCOUNT_TO_PROCEDURE: "42000", - ER_UNKNOWN_TABLE: "42S02", - ER_FIELD_SPECIFIED_TWICE: "42000", - ER_UNSUPPORTED_EXTENSION: "42000", - ER_TABLE_MUST_HAVE_COLUMNS: "42000", - ER_UNKNOWN_CHARACTER_SET: "42000", - ER_TOO_BIG_ROWSIZE: "42000", - ER_WRONG_OUTER_JOIN: "42000", - ER_NULL_COLUMN_IN_INDEX: "42000", - ER_PASSWORD_ANONYMOUS_USER: "42000", - ER_PASSWORD_NOT_ALLOWED: "42000", - ER_PASSWORD_NO_MATCH: "42000", - ER_WRONG_VALUE_COUNT_ON_ROW: "21S01", - ER_INVALID_USE_OF_NULL: "22004", - ER_REGEXP_ERROR: "42000", - ER_MIX_OF_GROUP_FUNC_AND_FIELDS: "42000", - ER_NONEXISTING_GRANT: "42000", - ER_TABLEACCESS_DENIED_ERROR: "42000", - ER_COLUMNACCESS_DENIED_ERROR: "42000", - ER_ILLEGAL_GRANT_FOR_TABLE: "42000", - ER_GRANT_WRONG_HOST_OR_USER: "42000", - ER_NO_SUCH_TABLE: "42S02", - ER_NONEXISTING_TABLE_GRANT: "42000", - ER_NOT_ALLOWED_COMMAND: "42000", - ER_SYNTAX_ERROR: "42000", - ER_ABORTING_CONNECTION: "08S01", - ER_NET_PACKET_TOO_LARGE: "08S01", - ER_NET_READ_ERROR_FROM_PIPE: "08S01", - ER_NET_FCNTL_ERROR: "08S01", - ER_NET_PACKETS_OUT_OF_ORDER: "08S01", - ER_NET_UNCOMPRESS_ERROR: "08S01", - ER_NET_READ_ERROR: "08S01", - ER_NET_READ_INTERRUPTED: "08S01", - ER_NET_ERROR_ON_WRITE: "08S01", - ER_NET_WRITE_INTERRUPTED: "08S01", - ER_TOO_LONG_STRING: "42000", - ER_TABLE_CANT_HANDLE_BLOB: "42000", - ER_TABLE_CANT_HANDLE_AUTO_INCREMENT: "42000", - ER_WRONG_COLUMN_NAME: "42000", - ER_WRONG_KEY_COLUMN: "42000", - ER_DUP_UNIQUE: "23000", - ER_BLOB_KEY_WITHOUT_LENGTH: "42000", - ER_PRIMARY_CANT_HAVE_NULL: "42000", - ER_TOO_MANY_ROWS: "42000", - ER_REQUIRES_PRIMARY_KEY: "42000", - ER_KEY_DOES_NOT_EXITS: "42000", - ER_CHECK_NO_SUCH_TABLE: "42000", - ER_CHECK_NOT_IMPLEMENTED: "42000", - ER_CANT_DO_THIS_DURING_AN_TRANSACTION: "25000", - ER_NEW_ABORTING_CONNECTION: "08S01", - ER_MASTER_NET_READ: "08S01", - ER_MASTER_NET_WRITE: "08S01", - ER_TOO_MANY_USER_CONNECTIONS: "42000", - ER_READ_ONLY_TRANSACTION: "25000", - ER_NO_PERMISSION_TO_CREATE_USER: "42000", - ER_LOCK_DEADLOCK: "40001", - ER_NO_REFERENCED_ROW: "23000", - ER_ROW_IS_REFERENCED: "23000", - ER_CONNECT_TO_MASTER: "08S01", - ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT: "21000", - ER_USER_LIMIT_REACHED: "42000", - ER_SPECIFIC_ACCESS_DENIED_ERROR: "42000", - ER_NO_DEFAULT: "42000", - ER_WRONG_VALUE_FOR_VAR: "42000", - ER_WRONG_TYPE_FOR_VAR: "42000", - ER_CANT_USE_OPTION_HERE: "42000", - ER_NOT_SUPPORTED_YET: "42000", - ER_WRONG_FK_DEF: "42000", - ER_OPERAND_COLUMNS: "21000", - ER_SUBQUERY_NO_1_ROW: "21000", - ER_ILLEGAL_REFERENCE: "42S22", - ER_DERIVED_MUST_HAVE_ALIAS: "42000", - ER_SELECT_REDUCED: "01000", - ER_TABLENAME_NOT_ALLOWED_HERE: "42000", - ER_NOT_SUPPORTED_AUTH_MODE: "08004", - ER_SPATIAL_CANT_HAVE_NULL: "42000", - ER_COLLATION_CHARSET_MISMATCH: "42000", - ER_WARN_TOO_FEW_RECORDS: "01000", - ER_WARN_TOO_MANY_RECORDS: "01000", - ER_WARN_NULL_TO_NOTNULL: "22004", - ER_WARN_DATA_OUT_OF_RANGE: "22003", - WARN_DATA_TRUNCATED: "01000", - ER_WRONG_NAME_FOR_INDEX: "42000", - ER_WRONG_NAME_FOR_CATALOG: "42000", - ER_UNKNOWN_STORAGE_ENGINE: "42000", - ER_TRUNCATED_WRONG_VALUE: "22007", - ER_SP_NO_RECURSIVE_CREATE: "2F003", - ER_SP_ALREADY_EXISTS: "42000", - ER_SP_DOES_NOT_EXIST: "42000", - ER_SP_LILABEL_MISMATCH: "42000", - ER_SP_LABEL_REDEFINE: "42000", - ER_SP_LABEL_MISMATCH: "42000", - ER_SP_UNINIT_VAR: "01000", - ER_SP_BADSELECT: "0A000", - ER_SP_BADRETURN: "42000", - ER_SP_BADSTATEMENT: "0A000", - ER_UPDATE_LOG_DEPRECATED_IGNORED: "42000", - ER_UPDATE_LOG_DEPRECATED_TRANSLATED: "42000", - ER_QUERY_INTERRUPTED: "70100", - ER_SP_WRONG_NO_OF_ARGS: "42000", - ER_SP_COND_MISMATCH: "42000", - ER_SP_NORETURN: "42000", - ER_SP_NORETURNEND: "2F005", - ER_SP_BAD_CURSOR_QUERY: "42000", - ER_SP_BAD_CURSOR_SELECT: "42000", - ER_SP_CURSOR_MISMATCH: "42000", - ER_SP_CURSOR_ALREADY_OPEN: "24000", - ER_SP_CURSOR_NOT_OPEN: "24000", - ER_SP_UNDECLARED_VAR: "42000", - ER_SP_FETCH_NO_DATA: "02000", - ER_SP_DUP_PARAM: "42000", - ER_SP_DUP_VAR: "42000", - ER_SP_DUP_COND: "42000", - ER_SP_DUP_CURS: "42000", - ER_SP_SUBSELECT_NYI: "0A000", - ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG: "0A000", - ER_SP_VARCOND_AFTER_CURSHNDLR: "42000", - ER_SP_CURSOR_AFTER_HANDLER: "42000", - ER_SP_CASE_NOT_FOUND: "20000", - ER_DIVISION_BY_ZERO: "22012", - ER_ILLEGAL_VALUE_FOR_TYPE: "22007", - ER_PROCACCESS_DENIED_ERROR: "42000", - ER_XAER_NOTA: "XAE04", - ER_XAER_INVAL: "XAE05", - ER_XAER_RMFAIL: "XAE07", - ER_XAER_OUTSIDE: "XAE09", - ER_XAER_RMERR: "XAE03", - ER_XA_RBROLLBACK: "XA100", - ER_NONEXISTING_PROC_GRANT: "42000", - ER_DATA_TOO_LONG: "22001", - ER_SP_BAD_SQLSTATE: "42000", - ER_CANT_CREATE_USER_WITH_GRANT: "42000", - ER_SP_DUP_HANDLER: "42000", - ER_SP_NOT_VAR_ARG: "42000", - ER_SP_NO_RETSET: "0A000", - ER_CANT_CREATE_GEOMETRY_OBJECT: "22003", - ER_TOO_BIG_SCALE: "42000", - ER_TOO_BIG_PRECISION: "42000", - ER_M_BIGGER_THAN_D: "42000", - ER_TOO_LONG_BODY: "42000", - ER_TOO_BIG_DISPLAYWIDTH: "42000", - ER_XAER_DUPID: "XAE08", - ER_DATETIME_FUNCTION_OVERFLOW: "22008", - ER_ROW_IS_REFERENCED_2: "23000", - ER_NO_REFERENCED_ROW_2: "23000", - ER_SP_BAD_VAR_SHADOW: "42000", - ER_SP_WRONG_NAME: "42000", - ER_SP_NO_AGGREGATE: "42000", - ER_MAX_PREPARED_STMT_COUNT_REACHED: "42000", - ER_NON_GROUPING_FIELD_USED: "42000", - ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED: "23000", - ER_CANT_CHANGE_TX_CHARACTERISTICS: "25001", - ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT: "42000", - ER_WRONG_PARAMETERS_TO_NATIVE_FCT: "42000", - ER_WRONG_PARAMETERS_TO_STORED_FCT: "42000", - ER_DUP_ENTRY_WITH_KEY_NAME: "23000", - ER_XA_RBTIMEOUT: "XA106", - ER_XA_RBDEADLOCK: "XA102", - ER_FUNC_INEXISTENT_NAME_COLLISION: "42000", - ER_DUP_SIGNAL_SET: "42000", - ER_SIGNAL_WARN: "01000", - ER_SIGNAL_NOT_FOUND: "02000", - ER_SIGNAL_EXCEPTION: "HY000", - ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER: "0K000", - ER_SPATIAL_MUST_HAVE_GEOM_COL: "42000", - ER_DATA_OUT_OF_RANGE: "22003", - ER_ACCESS_DENIED_NO_PASSWORD_ERROR: "28000", - ER_TRUNCATE_ILLEGAL_FK: "42000", - ER_DA_INVALID_CONDITION_NUMBER: "35000", - ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO: "23000", - ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO: "23000", - ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION: "25006", - ER_ALTER_OPERATION_NOT_SUPPORTED: "0A000", - ER_ALTER_OPERATION_NOT_SUPPORTED_REASON: "0A000", - ER_DUP_UNKNOWN_IN_INDEX: "23000", -} diff --git a/vendor/github.com/siddontang/go-mysql/mysql/util.go b/vendor/github.com/siddontang/go-mysql/mysql/util.go deleted file mode 100644 index 7fe41fa..0000000 --- a/vendor/github.com/siddontang/go-mysql/mysql/util.go +++ /dev/null @@ -1,354 +0,0 @@ -package mysql - -import ( - "crypto/rand" - "crypto/sha1" - "encoding/binary" - "fmt" - "io" - "runtime" - "strings" - - "github.com/juju/errors" - "github.com/siddontang/go/hack" -) - -func Pstack() string { - buf := make([]byte, 1024) - n := runtime.Stack(buf, false) - return string(buf[0:n]) -} - -func CalcPassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - // stage1Hash = SHA1(password) - crypt := sha1.New() - crypt.Write(password) - stage1 := crypt.Sum(nil) - - // scrambleHash = SHA1(scramble + SHA1(stage1Hash)) - // inner Hash - crypt.Reset() - crypt.Write(stage1) - hash := crypt.Sum(nil) - - // outer Hash - crypt.Reset() - crypt.Write(scramble) - crypt.Write(hash) - scramble = crypt.Sum(nil) - - // token = scrambleHash XOR stage1Hash - for i := range scramble { - scramble[i] ^= stage1[i] - } - return scramble -} - -func RandomBuf(size int) ([]byte, error) { - buf := make([]byte, size) - - if _, err := io.ReadFull(rand.Reader, buf); err != nil { - return nil, errors.Trace(err) - } - - // avoid to generate '\0' - for i, b := range buf { - if uint8(b) == 0 { - buf[i] = '0' - } - } - - return buf, nil -} - -// little endian -func FixedLengthInt(buf []byte) uint64 { - var num uint64 = 0 - for i, b := range buf { - num |= uint64(b) << (uint(i) * 8) - } - return num -} - -// big endian -func BFixedLengthInt(buf []byte) uint64 { - var num uint64 = 0 - for i, b := range buf { - num |= uint64(b) << (uint(len(buf)-i-1) * 8) - } - return num -} - -func LengthEncodedInt(b []byte) (num uint64, isNull bool, n int) { - switch b[0] { - - // 251: NULL - case 0xfb: - n = 1 - isNull = true - return - - // 252: value of following 2 - case 0xfc: - num = uint64(b[1]) | uint64(b[2])<<8 - n = 3 - return - - // 253: value of following 3 - case 0xfd: - num = uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16 - n = 4 - return - - // 254: value of following 8 - case 0xfe: - num = uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16 | - uint64(b[4])<<24 | uint64(b[5])<<32 | uint64(b[6])<<40 | - uint64(b[7])<<48 | uint64(b[8])<<56 - n = 9 - return - } - - // 0-250: value of first byte - num = uint64(b[0]) - n = 1 - return -} - -func PutLengthEncodedInt(n uint64) []byte { - switch { - case n <= 250: - return []byte{byte(n)} - - case n <= 0xffff: - return []byte{0xfc, byte(n), byte(n >> 8)} - - case n <= 0xffffff: - return []byte{0xfd, byte(n), byte(n >> 8), byte(n >> 16)} - - case n <= 0xffffffffffffffff: - return []byte{0xfe, byte(n), byte(n >> 8), byte(n >> 16), byte(n >> 24), - byte(n >> 32), byte(n >> 40), byte(n >> 48), byte(n >> 56)} - } - return nil -} - -func LengthEnodedString(b []byte) ([]byte, bool, int, error) { - // Get length - num, isNull, n := LengthEncodedInt(b) - if num < 1 { - return nil, isNull, n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return b[n-int(num) : n], false, n, nil - } - return nil, false, n, io.EOF -} - -func SkipLengthEnodedString(b []byte) (int, error) { - // Get length - num, _, n := LengthEncodedInt(b) - if num < 1 { - return n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return n, nil - } - return n, io.EOF -} - -func PutLengthEncodedString(b []byte) []byte { - data := make([]byte, 0, len(b)+9) - data = append(data, PutLengthEncodedInt(uint64(len(b)))...) - data = append(data, b...) - return data -} - -func Uint16ToBytes(n uint16) []byte { - return []byte{ - byte(n), - byte(n >> 8), - } -} - -func Uint32ToBytes(n uint32) []byte { - return []byte{ - byte(n), - byte(n >> 8), - byte(n >> 16), - byte(n >> 24), - } -} - -func Uint64ToBytes(n uint64) []byte { - return []byte{ - byte(n), - byte(n >> 8), - byte(n >> 16), - byte(n >> 24), - byte(n >> 32), - byte(n >> 40), - byte(n >> 48), - byte(n >> 56), - } -} - -func FormatBinaryDate(n int, data []byte) ([]byte, error) { - switch n { - case 0: - return []byte("0000-00-00"), nil - case 4: - return []byte(fmt.Sprintf("%04d-%02d-%02d", - binary.LittleEndian.Uint16(data[:2]), - data[2], - data[3])), nil - default: - return nil, errors.Errorf("invalid date packet length %d", n) - } -} - -func FormatBinaryDateTime(n int, data []byte) ([]byte, error) { - switch n { - case 0: - return []byte("0000-00-00 00:00:00"), nil - case 4: - return []byte(fmt.Sprintf("%04d-%02d-%02d 00:00:00", - binary.LittleEndian.Uint16(data[:2]), - data[2], - data[3])), nil - case 7: - return []byte(fmt.Sprintf( - "%04d-%02d-%02d %02d:%02d:%02d", - binary.LittleEndian.Uint16(data[:2]), - data[2], - data[3], - data[4], - data[5], - data[6])), nil - case 11: - return []byte(fmt.Sprintf( - "%04d-%02d-%02d %02d:%02d:%02d.%06d", - binary.LittleEndian.Uint16(data[:2]), - data[2], - data[3], - data[4], - data[5], - data[6], - binary.LittleEndian.Uint32(data[7:11]))), nil - default: - return nil, errors.Errorf("invalid datetime packet length %d", n) - } -} - -func FormatBinaryTime(n int, data []byte) ([]byte, error) { - if n == 0 { - return []byte("0000-00-00"), nil - } - - var sign byte - if data[0] == 1 { - sign = byte('-') - } - - switch n { - case 8: - return []byte(fmt.Sprintf( - "%c%02d:%02d:%02d", - sign, - uint16(data[1])*24+uint16(data[5]), - data[6], - data[7], - )), nil - case 12: - return []byte(fmt.Sprintf( - "%c%02d:%02d:%02d.%06d", - sign, - uint16(data[1])*24+uint16(data[5]), - data[6], - data[7], - binary.LittleEndian.Uint32(data[8:12]), - )), nil - default: - return nil, errors.Errorf("invalid time packet length %d", n) - } -} - -var ( - DONTESCAPE = byte(255) - - EncodeMap [256]byte -) - -// only support utf-8 -func Escape(sql string) string { - dest := make([]byte, 0, 2*len(sql)) - - for _, w := range hack.Slice(sql) { - if c := EncodeMap[w]; c == DONTESCAPE { - dest = append(dest, w) - } else { - dest = append(dest, '\\', c) - } - } - - return string(dest) -} - -func GetNetProto(addr string) string { - if strings.Contains(addr, "/") { - return "unix" - } else { - return "tcp" - } -} - -// ErrorEqual returns a boolean indicating whether err1 is equal to err2. -func ErrorEqual(err1, err2 error) bool { - e1 := errors.Cause(err1) - e2 := errors.Cause(err2) - - if e1 == e2 { - return true - } - - if e1 == nil || e2 == nil { - return e1 == e2 - } - - return e1.Error() == e2.Error() -} - -var encodeRef = map[byte]byte{ - '\x00': '0', - '\'': '\'', - '"': '"', - '\b': 'b', - '\n': 'n', - '\r': 'r', - '\t': 't', - 26: 'Z', // ctl-Z - '\\': '\\', -} - -func init() { - for i := range EncodeMap { - EncodeMap[i] = DONTESCAPE - } - for i := range EncodeMap { - if to, ok := encodeRef[byte(i)]; ok { - EncodeMap[byte(i)] = to - } - } -} diff --git a/vendor/github.com/siddontang/go-mysql/packet/conn.go b/vendor/github.com/siddontang/go-mysql/packet/conn.go deleted file mode 100644 index 3772e1a..0000000 --- a/vendor/github.com/siddontang/go-mysql/packet/conn.go +++ /dev/null @@ -1,163 +0,0 @@ -package packet - -import ( - "bufio" - "bytes" - "io" - "net" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" -) - -/* - Conn is the base class to handle MySQL protocol. -*/ -type Conn struct { - net.Conn - br *bufio.Reader - - Sequence uint8 -} - -func NewConn(conn net.Conn) *Conn { - c := new(Conn) - - c.br = bufio.NewReaderSize(conn, 4096) - c.Conn = conn - - return c -} - -func (c *Conn) ReadPacket() ([]byte, error) { - var buf bytes.Buffer - - if err := c.ReadPacketTo(&buf); err != nil { - return nil, errors.Trace(err) - } else { - return buf.Bytes(), nil - } - - // header := []byte{0, 0, 0, 0} - - // if _, err := io.ReadFull(c.br, header); err != nil { - // return nil, ErrBadConn - // } - - // length := int(uint32(header[0]) | uint32(header[1])<<8 | uint32(header[2])<<16) - // if length < 1 { - // return nil, fmt.Errorf("invalid payload length %d", length) - // } - - // sequence := uint8(header[3]) - - // if sequence != c.Sequence { - // return nil, fmt.Errorf("invalid sequence %d != %d", sequence, c.Sequence) - // } - - // c.Sequence++ - - // data := make([]byte, length) - // if _, err := io.ReadFull(c.br, data); err != nil { - // return nil, ErrBadConn - // } else { - // if length < MaxPayloadLen { - // return data, nil - // } - - // var buf []byte - // buf, err = c.ReadPacket() - // if err != nil { - // return nil, ErrBadConn - // } else { - // return append(data, buf...), nil - // } - // } -} - -func (c *Conn) ReadPacketTo(w io.Writer) error { - header := []byte{0, 0, 0, 0} - - if _, err := io.ReadFull(c.br, header); err != nil { - return ErrBadConn - } - - length := int(uint32(header[0]) | uint32(header[1])<<8 | uint32(header[2])<<16) - if length < 1 { - return errors.Errorf("invalid payload length %d", length) - } - - sequence := uint8(header[3]) - - if sequence != c.Sequence { - return errors.Errorf("invalid sequence %d != %d", sequence, c.Sequence) - } - - c.Sequence++ - - if n, err := io.CopyN(w, c.br, int64(length)); err != nil { - return ErrBadConn - } else if n != int64(length) { - return ErrBadConn - } else { - if length < MaxPayloadLen { - return nil - } - - if err := c.ReadPacketTo(w); err != nil { - return err - } - } - - return nil -} - -// data already has 4 bytes header -// will modify data inplace -func (c *Conn) WritePacket(data []byte) error { - length := len(data) - 4 - - for length >= MaxPayloadLen { - data[0] = 0xff - data[1] = 0xff - data[2] = 0xff - - data[3] = c.Sequence - - if n, err := c.Write(data[:4+MaxPayloadLen]); err != nil { - return ErrBadConn - } else if n != (4 + MaxPayloadLen) { - return ErrBadConn - } else { - c.Sequence++ - length -= MaxPayloadLen - data = data[MaxPayloadLen:] - } - } - - data[0] = byte(length) - data[1] = byte(length >> 8) - data[2] = byte(length >> 16) - data[3] = c.Sequence - - if n, err := c.Write(data); err != nil { - return ErrBadConn - } else if n != len(data) { - return ErrBadConn - } else { - c.Sequence++ - return nil - } -} - -func (c *Conn) ResetSequence() { - c.Sequence = 0 -} - -func (c *Conn) Close() error { - c.Sequence = 0 - if c.Conn != nil { - return c.Conn.Close() - } - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/backup.go b/vendor/github.com/siddontang/go-mysql/replication/backup.go deleted file mode 100644 index 744c38c..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/backup.go +++ /dev/null @@ -1,97 +0,0 @@ -package replication - -import ( - "io" - "os" - "path" - "time" - - "golang.org/x/net/context" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" -) - -// Like mysqlbinlog remote raw backup -// Backup remote binlog from position (filename, offset) and write in backupDir -func (b *BinlogSyncer) StartBackup(backupDir string, p Position, timeout time.Duration) error { - if timeout == 0 { - // a very long timeout here - timeout = 30 * 3600 * 24 * time.Second - } - - // Force use raw mode - b.parser.SetRawMode(true) - - os.MkdirAll(backupDir, 0755) - - s, err := b.StartSync(p) - if err != nil { - return errors.Trace(err) - } - - var filename string - var offset uint32 - - var f *os.File - defer func() { - if f != nil { - f.Close() - } - }() - - for { - ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) - e, err := s.GetEvent(ctx) - cancel() - - if err == context.DeadlineExceeded { - return nil - } - - if err != nil { - return errors.Trace(err) - } - - offset = e.Header.LogPos - - if e.Header.EventType == ROTATE_EVENT { - rotateEvent := e.Event.(*RotateEvent) - filename = string(rotateEvent.NextLogName) - - if e.Header.Timestamp == 0 || offset == 0 { - // fake rotate event - continue - } - } else if e.Header.EventType == FORMAT_DESCRIPTION_EVENT { - // FormateDescriptionEvent is the first event in binlog, we will close old one and create a new - - if f != nil { - f.Close() - } - - if len(filename) == 0 { - return errors.Errorf("empty binlog filename for FormateDescriptionEvent") - } - - f, err = os.OpenFile(path.Join(backupDir, filename), os.O_CREATE|os.O_WRONLY, 0644) - if err != nil { - return errors.Trace(err) - } - - // write binlog header fe'bin' - if _, err = f.Write(BinLogFileHeader); err != nil { - return errors.Trace(err) - } - - } - - if n, err := f.Write(e.RawData); err != nil { - return errors.Trace(err) - } else if n != len(e.RawData) { - return errors.Trace(io.ErrShortWrite) - } - } - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/binlogstreamer.go b/vendor/github.com/siddontang/go-mysql/replication/binlogstreamer.go deleted file mode 100644 index e5b165c..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/binlogstreamer.go +++ /dev/null @@ -1,61 +0,0 @@ -package replication - -import ( - "golang.org/x/net/context" - - "github.com/juju/errors" - "github.com/ngaut/log" -) - -var ( - ErrNeedSyncAgain = errors.New("Last sync error or closed, try sync and get event again") - ErrSyncClosed = errors.New("Sync was closed") -) - -// BinlogStreamer gets the streaming event. -type BinlogStreamer struct { - ch chan *BinlogEvent - ech chan error - err error -} - -// GetEvent gets the binlog event one by one, it will block until Syncer receives any events from MySQL -// or meets a sync error. You can pass a context (like Cancel or Timeout) to break the block. -func (s *BinlogStreamer) GetEvent(ctx context.Context) (*BinlogEvent, error) { - if s.err != nil { - return nil, ErrNeedSyncAgain - } - - select { - case c := <-s.ch: - return c, nil - case s.err = <-s.ech: - return nil, s.err - case <-ctx.Done(): - return nil, ctx.Err() - } -} - -func (s *BinlogStreamer) close() { - s.closeWithError(ErrSyncClosed) -} - -func (s *BinlogStreamer) closeWithError(err error) { - if err == nil { - err = ErrSyncClosed - } - log.Errorf("close sync with err: %v", err) - select { - case s.ech <- err: - default: - } -} - -func newBinlogStreamer() *BinlogStreamer { - s := new(BinlogStreamer) - - s.ch = make(chan *BinlogEvent, 10240) - s.ech = make(chan error, 4) - - return s -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/binlogsyncer.go b/vendor/github.com/siddontang/go-mysql/replication/binlogsyncer.go deleted file mode 100644 index 90bf691..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/binlogsyncer.go +++ /dev/null @@ -1,590 +0,0 @@ -package replication - -import ( - "crypto/tls" - "encoding/binary" - "fmt" - "os" - "sync" - "time" - - "golang.org/x/net/context" - - "github.com/juju/errors" - "github.com/ngaut/log" - "github.com/siddontang/go-mysql/client" - . "github.com/siddontang/go-mysql/mysql" -) - -var ( - errSyncRunning = errors.New("Sync is running, must Close first") -) - -// BinlogSyncerConfig is the configuration for BinlogSyncer. -type BinlogSyncerConfig struct { - // ServerID is the unique ID in cluster. - ServerID uint32 - // Flavor is "mysql" or "mariadb", if not set, use "mysql" default. - Flavor string - - // Host is for MySQL server host. - Host string - // Port is for MySQL server port. - Port uint16 - // User is for MySQL user. - User string - // Password is for MySQL password. - Password string - - // Localhost is local hostname if register salve. - // If not set, use os.Hostname() instead. - Localhost string - - // SemiSyncEnabled enables semi-sync or not. - SemiSyncEnabled bool - - // RawModeEanbled is for not parsing binlog event. - RawModeEanbled bool - - // If not nil, use the provided tls.Config to connect to the database using TLS/SSL. - TLSConfig *tls.Config -} - -// BinlogSyncer syncs binlog event from server. -type BinlogSyncer struct { - m sync.RWMutex - - cfg *BinlogSyncerConfig - - c *client.Conn - - wg sync.WaitGroup - - parser *BinlogParser - - nextPos Position - - running bool - - ctx context.Context - cancel context.CancelFunc -} - -// NewBinlogSyncer creates the BinlogSyncer with cfg. -func NewBinlogSyncer(cfg *BinlogSyncerConfig) *BinlogSyncer { - log.Infof("create BinlogSyncer with config %v", cfg) - - b := new(BinlogSyncer) - - b.cfg = cfg - b.parser = NewBinlogParser() - b.parser.SetRawMode(b.cfg.RawModeEanbled) - - b.running = false - b.ctx, b.cancel = context.WithCancel(context.Background()) - - return b -} - -// Close closes the BinlogSyncer. -func (b *BinlogSyncer) Close() { - b.m.Lock() - defer b.m.Unlock() - - b.close() -} - -func (b *BinlogSyncer) close() { - if b.isClosed() { - return - } - - log.Info("syncer is closing...") - - b.running = false - b.cancel() - - if b.c != nil { - b.c.SetReadDeadline(time.Now().Add(100 * time.Millisecond)) - } - - b.wg.Wait() - - if b.c != nil { - b.c.Close() - } - - log.Info("syncer is closed") -} - -func (b *BinlogSyncer) isClosed() bool { - select { - case <-b.ctx.Done(): - return true - default: - return false - } -} - -func (b *BinlogSyncer) registerSlave() error { - if b.c != nil { - b.c.Close() - } - - log.Infof("register slave for master server %s:%d", b.cfg.Host, b.cfg.Port) - var err error - b.c, err = client.Connect(fmt.Sprintf("%s:%d", b.cfg.Host, b.cfg.Port), b.cfg.User, b.cfg.Password, "", func(c *client.Conn) { - c.TLSConfig = b.cfg.TLSConfig - }) - if err != nil { - return errors.Trace(err) - } - - //for mysql 5.6+, binlog has a crc32 checksum - //before mysql 5.6, this will not work, don't matter.:-) - if r, err := b.c.Execute("SHOW GLOBAL VARIABLES LIKE 'BINLOG_CHECKSUM'"); err != nil { - return errors.Trace(err) - } else { - s, _ := r.GetString(0, 1) - if s != "" { - // maybe CRC32 or NONE - - // mysqlbinlog.cc use NONE, see its below comments: - // Make a notice to the server that this client - // is checksum-aware. It does not need the first fake Rotate - // necessary checksummed. - // That preference is specified below. - - if _, err = b.c.Execute(`SET @master_binlog_checksum='NONE'`); err != nil { - return errors.Trace(err) - } - - // if _, err = b.c.Execute(`SET @master_binlog_checksum=@@global.binlog_checksum`); err != nil { - // return errors.Trace(err) - // } - - } - } - - if b.cfg.Flavor == MariaDBFlavor { - // Refer https://github.com/alibaba/canal/wiki/BinlogChange(MariaDB5&10) - // Tell the server that we understand GTIDs by setting our slave capability - // to MARIA_SLAVE_CAPABILITY_GTID = 4 (MariaDB >= 10.0.1). - if _, err := b.c.Execute("SET @mariadb_slave_capability=4"); err != nil { - return errors.Errorf("failed to set @mariadb_slave_capability=4: %v", err) - } - } - - if err = b.writeRegisterSlaveCommand(); err != nil { - return errors.Trace(err) - } - - if _, err = b.c.ReadOKPacket(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (b *BinlogSyncer) enalbeSemiSync() error { - if !b.cfg.SemiSyncEnabled { - return nil - } - - if r, err := b.c.Execute("SHOW VARIABLES LIKE 'rpl_semi_sync_master_enabled';"); err != nil { - return errors.Trace(err) - } else { - s, _ := r.GetString(0, 1) - if s != "ON" { - log.Errorf("master does not support semi synchronous replication, use no semi-sync") - b.cfg.SemiSyncEnabled = false - return nil - } - } - - _, err := b.c.Execute(`SET @rpl_semi_sync_slave = 1;`) - if err != nil { - return errors.Trace(err) - } - - return nil -} - -func (b *BinlogSyncer) prepare() error { - if b.isClosed() { - return errors.Trace(ErrSyncClosed) - } - - if err := b.registerSlave(); err != nil { - return errors.Trace(err) - } - - if err := b.enalbeSemiSync(); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (b *BinlogSyncer) startDumpStream() *BinlogStreamer { - b.running = true - - s := newBinlogStreamer() - - b.wg.Add(1) - go b.onStream(s) - return s -} - -// StartSync starts syncing from the `pos` position. -func (b *BinlogSyncer) StartSync(pos Position) (*BinlogStreamer, error) { - log.Infof("begin to sync binlog from position %s", pos) - - b.m.Lock() - defer b.m.Unlock() - - if b.running { - return nil, errors.Trace(errSyncRunning) - } - - if err := b.prepareSyncPos(pos); err != nil { - return nil, errors.Trace(err) - } - - return b.startDumpStream(), nil -} - -// StartSyncGTID starts syncing from the `gset` GTIDSet. -func (b *BinlogSyncer) StartSyncGTID(gset GTIDSet) (*BinlogStreamer, error) { - log.Infof("begin to sync binlog from GTID %s", gset) - - b.m.Lock() - defer b.m.Unlock() - - if b.running { - return nil, errors.Trace(errSyncRunning) - } - - if err := b.prepare(); err != nil { - return nil, errors.Trace(err) - } - - var err error - if b.cfg.Flavor != MariaDBFlavor { - // default use MySQL - err = b.writeBinlogDumpMysqlGTIDCommand(gset) - } else { - err = b.writeBinlogDumpMariadbGTIDCommand(gset) - } - - if err != nil { - return nil, err - } - - return b.startDumpStream(), nil -} - -func (b *BinlogSyncer) writeBinglogDumpCommand(p Position) error { - b.c.ResetSequence() - - data := make([]byte, 4+1+4+2+4+len(p.Name)) - - pos := 4 - data[pos] = COM_BINLOG_DUMP - pos++ - - binary.LittleEndian.PutUint32(data[pos:], p.Pos) - pos += 4 - - binary.LittleEndian.PutUint16(data[pos:], BINLOG_DUMP_NEVER_STOP) - pos += 2 - - binary.LittleEndian.PutUint32(data[pos:], b.cfg.ServerID) - pos += 4 - - copy(data[pos:], p.Name) - - return b.c.WritePacket(data) -} - -func (b *BinlogSyncer) writeBinlogDumpMysqlGTIDCommand(gset GTIDSet) error { - p := Position{"", 4} - gtidData := gset.Encode() - - b.c.ResetSequence() - - data := make([]byte, 4+1+2+4+4+len(p.Name)+8+4+len(gtidData)) - pos := 4 - data[pos] = COM_BINLOG_DUMP_GTID - pos++ - - binary.LittleEndian.PutUint16(data[pos:], 0) - pos += 2 - - binary.LittleEndian.PutUint32(data[pos:], b.cfg.ServerID) - pos += 4 - - binary.LittleEndian.PutUint32(data[pos:], uint32(len(p.Name))) - pos += 4 - - n := copy(data[pos:], p.Name) - pos += n - - binary.LittleEndian.PutUint64(data[pos:], uint64(p.Pos)) - pos += 8 - - binary.LittleEndian.PutUint32(data[pos:], uint32(len(gtidData))) - pos += 4 - n = copy(data[pos:], gtidData) - pos += n - - data = data[0:pos] - - return b.c.WritePacket(data) -} - -func (b *BinlogSyncer) writeBinlogDumpMariadbGTIDCommand(gset GTIDSet) error { - // Copy from vitess - - startPos := gset.String() - - // Set the slave_connect_state variable before issuing COM_BINLOG_DUMP to - // provide the start position in GTID form. - query := fmt.Sprintf("SET @slave_connect_state='%s'", startPos) - - if _, err := b.c.Execute(query); err != nil { - return errors.Errorf("failed to set @slave_connect_state='%s': %v", startPos, err) - } - - // Real slaves set this upon connecting if their gtid_strict_mode option was - // enabled. We always use gtid_strict_mode because we need it to make our - // internal GTID comparisons safe. - if _, err := b.c.Execute("SET @slave_gtid_strict_mode=1"); err != nil { - return errors.Errorf("failed to set @slave_gtid_strict_mode=1: %v", err) - } - - // Since we use @slave_connect_state, the file and position here are ignored. - return b.writeBinglogDumpCommand(Position{"", 0}) -} - -// localHostname returns the hostname that register slave would register as. -func (b *BinlogSyncer) localHostname() string { - if len(b.cfg.Localhost) == 0 { - h, _ := os.Hostname() - return h - } - return b.cfg.Localhost -} - -func (b *BinlogSyncer) writeRegisterSlaveCommand() error { - b.c.ResetSequence() - - hostname := b.localHostname() - - // This should be the name of slave host not the host we are connecting to. - data := make([]byte, 4+1+4+1+len(hostname)+1+len(b.cfg.User)+1+len(b.cfg.Password)+2+4+4) - pos := 4 - - data[pos] = COM_REGISTER_SLAVE - pos++ - - binary.LittleEndian.PutUint32(data[pos:], b.cfg.ServerID) - pos += 4 - - // This should be the name of slave hostname not the host we are connecting to. - data[pos] = uint8(len(hostname)) - pos++ - n := copy(data[pos:], hostname) - pos += n - - data[pos] = uint8(len(b.cfg.User)) - pos++ - n = copy(data[pos:], b.cfg.User) - pos += n - - data[pos] = uint8(len(b.cfg.Password)) - pos++ - n = copy(data[pos:], b.cfg.Password) - pos += n - - binary.LittleEndian.PutUint16(data[pos:], b.cfg.Port) - pos += 2 - - //replication rank, not used - binary.LittleEndian.PutUint32(data[pos:], 0) - pos += 4 - - // master ID, 0 is OK - binary.LittleEndian.PutUint32(data[pos:], 0) - - return b.c.WritePacket(data) -} - -func (b *BinlogSyncer) replySemiSyncACK(p Position) error { - b.c.ResetSequence() - - data := make([]byte, 4+1+8+len(p.Name)) - pos := 4 - // semi sync indicator - data[pos] = SemiSyncIndicator - pos++ - - binary.LittleEndian.PutUint64(data[pos:], uint64(p.Pos)) - pos += 8 - - copy(data[pos:], p.Name) - - err := b.c.WritePacket(data) - if err != nil { - return errors.Trace(err) - } - - _, err = b.c.ReadOKPacket() - if err != nil { - } - return errors.Trace(err) -} - -func (b *BinlogSyncer) retrySync() error { - b.m.Lock() - defer b.m.Unlock() - - log.Infof("begin to re-sync from %s", b.nextPos) - - b.parser.Reset() - if err := b.prepareSyncPos(b.nextPos); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (b *BinlogSyncer) prepareSyncPos(pos Position) error { - // always start from position 4 - if pos.Pos < 4 { - pos.Pos = 4 - } - - if err := b.prepare(); err != nil { - return errors.Trace(err) - } - - if err := b.writeBinglogDumpCommand(pos); err != nil { - return errors.Trace(err) - } - - return nil -} - -func (b *BinlogSyncer) onStream(s *BinlogStreamer) { - defer func() { - if e := recover(); e != nil { - s.closeWithError(fmt.Errorf("Err: %v\n Stack: %s", e, Pstack())) - } - b.wg.Done() - }() - - for { - data, err := b.c.ReadPacket() - if err != nil { - log.Error(err) - - // we meet connection error, should re-connect again with - // last nextPos we got. - if len(b.nextPos.Name) == 0 { - // we can't get the correct position, close. - s.closeWithError(err) - return - } - - // TODO: add a max retry count. - for { - select { - case <-b.ctx.Done(): - s.close() - return - case <-time.After(time.Second): - if err = b.retrySync(); err != nil { - log.Errorf("retry sync err: %v, wait 1s and retry again", err) - continue - } - } - - break - } - - // we connect the server and begin to re-sync again. - continue - } - - switch data[0] { - case OK_HEADER: - if err = b.parseEvent(s, data); err != nil { - s.closeWithError(err) - return - } - case ERR_HEADER: - err = b.c.HandleErrorPacket(data) - s.closeWithError(err) - return - case EOF_HEADER: - // Refer http://dev.mysql.com/doc/internals/en/packet-EOF_Packet.html - // In the MySQL client/server protocol, EOF and OK packets serve the same purpose. - // Some users told me that they received EOF packet here, but I don't know why. - // So we only log a message and retry ReadPacket. - log.Info("receive EOF packet, retry ReadPacket") - continue - default: - log.Errorf("invalid stream header %c", data[0]) - continue - } - } -} - -func (b *BinlogSyncer) parseEvent(s *BinlogStreamer, data []byte) error { - //skip OK byte, 0x00 - data = data[1:] - - needACK := false - if b.cfg.SemiSyncEnabled && (data[0] == SemiSyncIndicator) { - needACK = (data[1] == 0x01) - //skip semi sync header - data = data[2:] - } - - e, err := b.parser.parse(data) - if err != nil { - return errors.Trace(err) - } - - if e.Header.LogPos > 0 { - // Some events like FormatDescriptionEvent return 0, ignore. - b.nextPos.Pos = e.Header.LogPos - } - - if re, ok := e.Event.(*RotateEvent); ok { - b.nextPos.Name = string(re.NextLogName) - b.nextPos.Pos = uint32(re.Position) - log.Infof("rotate to %s", b.nextPos) - } - - needStop := false - select { - case s.ch <- e: - case <-b.ctx.Done(): - needStop = true - } - - if needACK { - err := b.replySemiSyncACK(b.nextPos) - if err != nil { - return errors.Trace(err) - } - } - - if needStop { - return errors.New("sync is been closing...") - } - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/const.go b/vendor/github.com/siddontang/go-mysql/replication/const.go deleted file mode 100644 index ef82b6c..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/const.go +++ /dev/null @@ -1,185 +0,0 @@ -package replication - -const ( - //we only support MySQL 5.0.0+ binlog format, maybe??? - MinBinlogVersion = 4 -) - -var ( - //binlog header [ fe `bin` ] - BinLogFileHeader []byte = []byte{0xfe, 0x62, 0x69, 0x6e} - - SemiSyncIndicator byte = 0xef -) - -const ( - LOG_EVENT_BINLOG_IN_USE_F uint16 = 0x0001 - LOG_EVENT_FORCED_ROTATE_F uint16 = 0x0002 - LOG_EVENT_THREAD_SPECIFIC_F uint16 = 0x0004 - LOG_EVENT_SUPPRESS_USE_F uint16 = 0x0008 - LOG_EVENT_UPDATE_TABLE_MAP_VERSION_F uint16 = 0x0010 - LOG_EVENT_ARTIFICIAL_F uint16 = 0x0020 - LOG_EVENT_RELAY_LOG_F uint16 = 0x0040 - LOG_EVENT_IGNORABLE_F uint16 = 0x0080 - LOG_EVENT_NO_FILTER_F uint16 = 0x0100 - LOG_EVENT_MTS_ISOLATE_F uint16 = 0x0200 -) - -const ( - BINLOG_DUMP_NEVER_STOP uint16 = 0x00 - BINLOG_DUMP_NON_BLOCK uint16 = 0x01 - BINLOG_THROUGH_POSITION uint16 = 0x02 - BINLOG_THROUGH_GTID uint16 = 0x04 -) - -const ( - BINLOG_ROW_IMAGE_FULL = "FULL" - BINLOG_ROW_IAMGE_MINIMAL = "MINIMAL" - BINLOG_ROW_IMAGE_NOBLOB = "NOBLOB" -) - -type EventType byte - -const ( - UNKNOWN_EVENT EventType = iota - START_EVENT_V3 - QUERY_EVENT - STOP_EVENT - ROTATE_EVENT - INTVAR_EVENT - LOAD_EVENT - SLAVE_EVENT - CREATE_FILE_EVENT - APPEND_BLOCK_EVENT - EXEC_LOAD_EVENT - DELETE_FILE_EVENT - NEW_LOAD_EVENT - RAND_EVENT - USER_VAR_EVENT - FORMAT_DESCRIPTION_EVENT - XID_EVENT - BEGIN_LOAD_QUERY_EVENT - EXECUTE_LOAD_QUERY_EVENT - TABLE_MAP_EVENT - WRITE_ROWS_EVENTv0 - UPDATE_ROWS_EVENTv0 - DELETE_ROWS_EVENTv0 - WRITE_ROWS_EVENTv1 - UPDATE_ROWS_EVENTv1 - DELETE_ROWS_EVENTv1 - INCIDENT_EVENT - HEARTBEAT_EVENT - IGNORABLE_EVENT - ROWS_QUERY_EVENT - WRITE_ROWS_EVENTv2 - UPDATE_ROWS_EVENTv2 - DELETE_ROWS_EVENTv2 - GTID_EVENT - ANONYMOUS_GTID_EVENT - PREVIOUS_GTIDS_EVENT -) - -const ( - // MariaDB event starts from 160 - MARIADB_ANNOTATE_ROWS_EVENT EventType = 160 + iota - MARIADB_BINLOG_CHECKPOINT_EVENT - MARIADB_GTID_EVENT - MARIADB_GTID_LIST_EVENT -) - -func (e EventType) String() string { - switch e { - case UNKNOWN_EVENT: - return "UnknownEvent" - case START_EVENT_V3: - return "StartEventV3" - case QUERY_EVENT: - return "QueryEvent" - case STOP_EVENT: - return "StopEvent" - case ROTATE_EVENT: - return "RotateEvent" - case INTVAR_EVENT: - return "IntVarEvent" - case LOAD_EVENT: - return "LoadEvent" - case SLAVE_EVENT: - return "SlaveEvent" - case CREATE_FILE_EVENT: - return "CreateFileEvent" - case APPEND_BLOCK_EVENT: - return "AppendBlockEvent" - case EXEC_LOAD_EVENT: - return "ExecLoadEvent" - case DELETE_FILE_EVENT: - return "DeleteFileEvent" - case NEW_LOAD_EVENT: - return "NewLoadEvent" - case RAND_EVENT: - return "RandEvent" - case USER_VAR_EVENT: - return "UserVarEvent" - case FORMAT_DESCRIPTION_EVENT: - return "FormatDescriptionEvent" - case XID_EVENT: - return "XIDEvent" - case BEGIN_LOAD_QUERY_EVENT: - return "BeginLoadQueryEvent" - case EXECUTE_LOAD_QUERY_EVENT: - return "ExectueLoadQueryEvent" - case TABLE_MAP_EVENT: - return "TableMapEvent" - case WRITE_ROWS_EVENTv0: - return "WriteRowsEventV0" - case UPDATE_ROWS_EVENTv0: - return "UpdateRowsEventV0" - case DELETE_ROWS_EVENTv0: - return "DeleteRowsEventV0" - case WRITE_ROWS_EVENTv1: - return "WriteRowsEventV1" - case UPDATE_ROWS_EVENTv1: - return "UpdateRowsEventV1" - case DELETE_ROWS_EVENTv1: - return "DeleteRowsEventV1" - case INCIDENT_EVENT: - return "IncidentEvent" - case HEARTBEAT_EVENT: - return "HeartbeatEvent" - case IGNORABLE_EVENT: - return "IgnorableEvent" - case ROWS_QUERY_EVENT: - return "RowsQueryEvent" - case WRITE_ROWS_EVENTv2: - return "WriteRowsEventV2" - case UPDATE_ROWS_EVENTv2: - return "UpdateRowsEventV2" - case DELETE_ROWS_EVENTv2: - return "DeleteRowsEventV2" - case GTID_EVENT: - return "GTIDEvent" - case ANONYMOUS_GTID_EVENT: - return "AnonymousGTIDEvent" - case PREVIOUS_GTIDS_EVENT: - return "PreviousGTIDsEvent" - case MARIADB_ANNOTATE_ROWS_EVENT: - return "MariadbAnnotateRowsEvent" - case MARIADB_BINLOG_CHECKPOINT_EVENT: - return "MariadbBinLogCheckPointEvent" - case MARIADB_GTID_EVENT: - return "MariadbGTIDEvent" - case MARIADB_GTID_LIST_EVENT: - return "MariadbGTIDListEvent" - - default: - return "UnknownEvent" - } -} - -const ( - BINLOG_CHECKSUM_ALG_OFF byte = 0 // Events are without checksum though its generator - // is checksum-capable New Master (NM). - BINLOG_CHECKSUM_ALG_CRC32 byte = 1 // CRC32 of zlib algorithm. - // BINLOG_CHECKSUM_ALG_ENUM_END, // the cut line: valid alg range is [1, 0x7f]. - BINLOG_CHECKSUM_ALG_UNDEF byte = 255 // special value to tag undetermined yet checksum - // or events from checksum-unaware servers -) diff --git a/vendor/github.com/siddontang/go-mysql/replication/doc.go b/vendor/github.com/siddontang/go-mysql/replication/doc.go deleted file mode 100644 index 790eb45..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -/* -Replication package is to handle MySQL replication protocol. - -Todo: - -+ Get table information when handing rows event. -*/ -package replication diff --git a/vendor/github.com/siddontang/go-mysql/replication/event.go b/vendor/github.com/siddontang/go-mysql/replication/event.go deleted file mode 100644 index 1a0d2c6..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/event.go +++ /dev/null @@ -1,458 +0,0 @@ -package replication - -import ( - "encoding/binary" - //"encoding/hex" - "fmt" - "io" - "strconv" - "strings" - "time" - "unicode" - - "github.com/juju/errors" - "github.com/satori/go.uuid" - . "github.com/siddontang/go-mysql/mysql" -) - -const ( - EventHeaderSize = 19 -) - -type BinlogEvent struct { - // raw binlog data, including crc32 checksum if exists - RawData []byte - - Header *EventHeader - Event Event -} - -func (e *BinlogEvent) Dump(w io.Writer) { - e.Header.Dump(w) - e.Event.Dump(w) -} - -type Event interface { - //Dump Event, format like python-mysql-replication - Dump(w io.Writer) - - Decode(data []byte) error -} - -type EventError struct { - Header *EventHeader - - //Error message - Err string - - //Event data - Data []byte -} - -func (e *EventError) Error() string { - return e.Err -} - -type EventHeader struct { - Timestamp uint32 - EventType EventType - ServerID uint32 - EventSize uint32 - LogPos uint32 - Flags uint16 -} - -func (h *EventHeader) Decode(data []byte) error { - if len(data) < EventHeaderSize { - return errors.Errorf("header size too short %d, must 19", len(data)) - } - - pos := 0 - - h.Timestamp = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - h.EventType = EventType(data[pos]) - pos++ - - h.ServerID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - h.EventSize = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - h.LogPos = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - h.Flags = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - if h.EventSize < uint32(EventHeaderSize) { - return errors.Errorf("invalid event size %d, must >= 19", h.EventSize) - } - - return nil -} - -func (h *EventHeader) Dump(w io.Writer) { - fmt.Fprintf(w, "=== %s ===\n", EventType(h.EventType)) - fmt.Fprintf(w, "Date: %s\n", time.Unix(int64(h.Timestamp), 0).Format(TimeFormat)) - fmt.Fprintf(w, "Log position: %d\n", h.LogPos) - fmt.Fprintf(w, "Event size: %d\n", h.EventSize) -} - -var ( - checksumVersionSplitMysql []int = []int{5, 6, 1} - checksumVersionProductMysql int = (checksumVersionSplitMysql[0]*256+checksumVersionSplitMysql[1])*256 + checksumVersionSplitMysql[2] - - checksumVersionSplitMariaDB []int = []int{5, 3, 0} - checksumVersionProductMariaDB int = (checksumVersionSplitMariaDB[0]*256+checksumVersionSplitMariaDB[1])*256 + checksumVersionSplitMariaDB[2] -) - -// server version format X.Y.Zabc, a is not . or number -func splitServerVersion(server string) []int { - seps := strings.Split(server, ".") - if len(seps) < 3 { - return []int{0, 0, 0} - } - - x, _ := strconv.Atoi(seps[0]) - y, _ := strconv.Atoi(seps[1]) - - index := 0 - for i, c := range seps[2] { - if !unicode.IsNumber(c) { - index = i - break - } - } - - z, _ := strconv.Atoi(seps[2][0:index]) - - return []int{x, y, z} -} - -func calcVersionProduct(server string) int { - versionSplit := splitServerVersion(server) - - return ((versionSplit[0]*256+versionSplit[1])*256 + versionSplit[2]) -} - -type FormatDescriptionEvent struct { - Version uint16 - //len = 50 - ServerVersion []byte - CreateTimestamp uint32 - EventHeaderLength uint8 - EventTypeHeaderLengths []byte - - // 0 is off, 1 is for CRC32, 255 is undefined - ChecksumAlgorithm byte -} - -func (e *FormatDescriptionEvent) Decode(data []byte) error { - pos := 0 - e.Version = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - e.ServerVersion = make([]byte, 50) - copy(e.ServerVersion, data[pos:]) - pos += 50 - - e.CreateTimestamp = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.EventHeaderLength = data[pos] - pos++ - - if e.EventHeaderLength != byte(EventHeaderSize) { - return errors.Errorf("invalid event header length %d, must 19", e.EventHeaderLength) - } - - server := string(e.ServerVersion) - checksumProduct := checksumVersionProductMysql - if strings.Contains(strings.ToLower(server), "mariadb") { - checksumProduct = checksumVersionProductMariaDB - } - - if calcVersionProduct(string(e.ServerVersion)) >= checksumProduct { - // here, the last 5 bytes is 1 byte check sum alg type and 4 byte checksum if exists - e.ChecksumAlgorithm = data[len(data)-5] - e.EventTypeHeaderLengths = data[pos : len(data)-5] - } else { - e.ChecksumAlgorithm = BINLOG_CHECKSUM_ALG_UNDEF - e.EventTypeHeaderLengths = data[pos:] - } - - return nil -} - -func (e *FormatDescriptionEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Version: %d\n", e.Version) - fmt.Fprintf(w, "Server version: %s\n", e.ServerVersion) - //fmt.Fprintf(w, "Create date: %s\n", time.Unix(int64(e.CreateTimestamp), 0).Format(TimeFormat)) - fmt.Fprintf(w, "Checksum algorithm: %d\n", e.ChecksumAlgorithm) - //fmt.Fprintf(w, "Event header lengths: \n%s", hex.Dump(e.EventTypeHeaderLengths)) - fmt.Fprintln(w) -} - -type RotateEvent struct { - Position uint64 - NextLogName []byte -} - -func (e *RotateEvent) Decode(data []byte) error { - e.Position = binary.LittleEndian.Uint64(data[0:]) - e.NextLogName = data[8:] - - return nil -} - -func (e *RotateEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Position: %d\n", e.Position) - fmt.Fprintf(w, "Next log name: %s\n", e.NextLogName) - fmt.Fprintln(w) -} - -type XIDEvent struct { - XID uint64 -} - -func (e *XIDEvent) Decode(data []byte) error { - e.XID = binary.LittleEndian.Uint64(data) - return nil -} - -func (e *XIDEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "XID: %d\n", e.XID) - fmt.Fprintln(w) -} - -type QueryEvent struct { - SlaveProxyID uint32 - ExecutionTime uint32 - ErrorCode uint16 - StatusVars []byte - Schema []byte - Query []byte -} - -func (e *QueryEvent) Decode(data []byte) error { - pos := 0 - - e.SlaveProxyID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.ExecutionTime = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - schemaLength := uint8(data[pos]) - pos++ - - e.ErrorCode = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - statusVarsLength := binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - e.StatusVars = data[pos : pos+int(statusVarsLength)] - pos += int(statusVarsLength) - - e.Schema = data[pos : pos+int(schemaLength)] - pos += int(schemaLength) - - //skip 0x00 - pos++ - - e.Query = data[pos:] - return nil -} - -func (e *QueryEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Slave proxy ID: %d\n", e.SlaveProxyID) - fmt.Fprintf(w, "Execution time: %d\n", e.ExecutionTime) - fmt.Fprintf(w, "Error code: %d\n", e.ErrorCode) - //fmt.Fprintf(w, "Status vars: \n%s", hex.Dump(e.StatusVars)) - fmt.Fprintf(w, "Schema: %s\n", e.Schema) - fmt.Fprintf(w, "Query: %s\n", e.Query) - fmt.Fprintln(w) -} - -type GTIDEvent struct { - CommitFlag uint8 - SID []byte - GNO int64 -} - -func (e *GTIDEvent) Decode(data []byte) error { - e.CommitFlag = uint8(data[0]) - - e.SID = data[1:17] - - e.GNO = int64(binary.LittleEndian.Uint64(data[17:])) - return nil -} - -func (e *GTIDEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Commit flag: %d\n", e.CommitFlag) - u, _ := uuid.FromBytes(e.SID) - fmt.Fprintf(w, "GTID_NEXT: %s:%d\n", u.String(), e.GNO) - fmt.Fprintln(w) -} - -type BeginLoadQueryEvent struct { - FileID uint32 - BlockData []byte -} - -func (e *BeginLoadQueryEvent) Decode(data []byte) error { - pos := 0 - - e.FileID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.BlockData = data[pos:] - - return nil -} - -func (e *BeginLoadQueryEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "File ID: %d\n", e.FileID) - fmt.Fprintf(w, "Block data: %s\n", e.BlockData) - fmt.Fprintln(w) -} - -type ExecuteLoadQueryEvent struct { - SlaveProxyID uint32 - ExecutionTime uint32 - SchemaLength uint8 - ErrorCode uint16 - StatusVars uint16 - FileID uint32 - StartPos uint32 - EndPos uint32 - DupHandlingFlags uint8 -} - -func (e *ExecuteLoadQueryEvent) Decode(data []byte) error { - pos := 0 - - e.SlaveProxyID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.ExecutionTime = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.SchemaLength = uint8(data[pos]) - pos++ - - e.ErrorCode = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - e.StatusVars = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - e.FileID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.StartPos = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.EndPos = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - e.DupHandlingFlags = uint8(data[pos]) - - return nil -} - -func (e *ExecuteLoadQueryEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Slave proxy ID: %d\n", e.SlaveProxyID) - fmt.Fprintf(w, "Execution time: %d\n", e.ExecutionTime) - fmt.Fprintf(w, "Schame length: %d\n", e.SchemaLength) - fmt.Fprintf(w, "Error code: %d\n", e.ErrorCode) - fmt.Fprintf(w, "Status vars length: %d\n", e.StatusVars) - fmt.Fprintf(w, "File ID: %d\n", e.FileID) - fmt.Fprintf(w, "Start pos: %d\n", e.StartPos) - fmt.Fprintf(w, "End pos: %d\n", e.EndPos) - fmt.Fprintf(w, "Dup handling flags: %d\n", e.DupHandlingFlags) - fmt.Fprintln(w) -} - -// case MARIADB_ANNOTATE_ROWS_EVENT: -// return "MariadbAnnotateRowsEvent" - -type MariadbAnnotaeRowsEvent struct { - Query []byte -} - -func (e *MariadbAnnotaeRowsEvent) Decode(data []byte) error { - e.Query = data - return nil -} - -func (e *MariadbAnnotaeRowsEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Query: %s\n", e.Query) - fmt.Fprintln(w) -} - -type MariadbBinlogCheckPointEvent struct { - Info []byte -} - -func (e *MariadbBinlogCheckPointEvent) Decode(data []byte) error { - e.Info = data - return nil -} - -func (e *MariadbBinlogCheckPointEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Info: %s\n", e.Info) - fmt.Fprintln(w) -} - -type MariadbGTIDEvent struct { - GTID MariadbGTID -} - -func (e *MariadbGTIDEvent) Decode(data []byte) error { - e.GTID.SequenceNumber = binary.LittleEndian.Uint64(data) - e.GTID.DomainID = binary.LittleEndian.Uint32(data[8:]) - - // we don't care commit id now, maybe later - - return nil -} - -func (e *MariadbGTIDEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "GTID: %s\n", e.GTID) - fmt.Fprintln(w) -} - -type MariadbGTIDListEvent struct { - GTIDs []MariadbGTID -} - -func (e *MariadbGTIDListEvent) Decode(data []byte) error { - pos := 0 - v := binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - - count := v & uint32((1<<28)-1) - - e.GTIDs = make([]MariadbGTID, count) - - for i := uint32(0); i < count; i++ { - e.GTIDs[i].DomainID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - e.GTIDs[i].ServerID = binary.LittleEndian.Uint32(data[pos:]) - pos += 4 - e.GTIDs[i].SequenceNumber = binary.LittleEndian.Uint64(data[pos:]) - } - - return nil -} - -func (e *MariadbGTIDListEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Lists: %v\n", e.GTIDs) - fmt.Fprintln(w) -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/generic_event.go b/vendor/github.com/siddontang/go-mysql/replication/generic_event.go deleted file mode 100644 index b0fa83a..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/generic_event.go +++ /dev/null @@ -1,171 +0,0 @@ -package replication - -import ( - "encoding/hex" - "fmt" - "io" -) - -// we don't parse all event, so some we will use GenericEvent instead -type GenericEvent struct { - Data []byte -} - -func (e *GenericEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Event data: \n%s", hex.Dump(e.Data)) - fmt.Fprintln(w) -} - -func (e *GenericEvent) Decode(data []byte) error { - e.Data = data - - return nil -} - -//below events are generic events, maybe later I will consider handle some. - -// type StartEventV3 struct { -// Version uint16 -// ServerVersion [50]byte -// CreateTimestamp uint32 -// } - -// type StopEvent struct{} - -// type LoadEvent struct { -// SlaveProxyID uint32 -// ExecTime uint32 -// SkipLines uint32 -// TableNameLen uint8 -// SchemaLen uint8 -// NumFileds uint32 -// FieldTerm uint8 -// EnclosedBy uint8 -// LineTerm uint8 -// LineStart uint8 -// EscapedBy uint8 -// OptFlags uint8 -// EmptyFlags uint8 - -// //len = 1 * NumFields -// FieldNameLengths []byte - -// //len = sum(FieldNameLengths) + NumFields -// //array of nul-terminated strings -// FieldNames []byte - -// //len = TableNameLen + 1, nul-terminated string -// TableName []byte - -// //len = SchemaLen + 1, nul-terminated string -// SchemaName []byte - -// //string.NUL -// FileName []byte -// } - -// type NewLoadEvent struct { -// SlaveProxyID uint32 -// ExecTime uint32 -// SkipLines uint32 -// TableNameLen uint8 -// SchemaLen uint8 -// NumFields uint32 -// FieldTermLen uint8 -// FieldTerm []byte -// EnclosedByLen uint8 -// EnclosedBy []byte -// LineTermLen uint8 -// LineTerm []byte -// LineStartLen uint8 -// LineStart []byte -// EscapedByLen uint8 -// EscapedBy []byte -// OptFlags uint8 - -// //len = 1 * NumFields -// FieldNameLengths []byte - -// //len = sum(FieldNameLengths) + NumFields -// //array of nul-terminated strings -// FieldNames []byte - -// //len = TableNameLen, nul-terminated string -// TableName []byte - -// //len = SchemaLen, nul-terminated string -// SchemaName []byte - -// //string.EOF -// FileName []byte -// } - -// type CreateFileEvent struct { -// FileID uint32 -// BlockData []byte -// } - -// type AppendBlockEvent struct { -// FileID uint32 -// BlockData []byte -// } - -// type ExecLoadEvent struct { -// FileID uint32 -// } - -// type BeginLoadQueryEvent struct { -// FileID uint32 -// BlockData []byte -// } - -// type ExecuteLoadQueryEvent struct { -// SlaveProxyID uint32 -// ExecutionTime uint32 -// SchemaLength uint8 -// ErrorCode uint16 -// StatusVarsLength uint16 - -// FileID uint32 -// StartPos uint32 -// EndPos uint32 -// DupHandlingFlags uint8 -// } - -// type DeleteFileEvent struct { -// FileID uint32 -// } - -// type RandEvent struct { -// Seed1 uint64 -// Seed2 uint64 -// } - -// type IntVarEvent struct { -// Type uint8 -// Value uint64 -// } - -// type UserVarEvent struct { -// NameLength uint32 -// Name []byte -// IsNull uint8 - -// //if not is null -// Type uint8 -// Charset uint32 -// ValueLength uint32 -// Value []byte - -// //if more data -// Flags uint8 -// } - -// type IncidentEvent struct { -// Type uint16 -// MessageLength uint8 -// Message []byte -// } - -// type HeartbeatEvent struct { -// } diff --git a/vendor/github.com/siddontang/go-mysql/replication/json_binary.go b/vendor/github.com/siddontang/go-mysql/replication/json_binary.go deleted file mode 100644 index 83b69d0..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/json_binary.go +++ /dev/null @@ -1,479 +0,0 @@ -package replication - -import ( - "encoding/json" - "fmt" - "math" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go/hack" -) - -const ( - JSONB_SMALL_OBJECT byte = iota // small JSON object - JSONB_LARGE_OBJECT // large JSON object - JSONB_SMALL_ARRAY // small JSON array - JSONB_LARGE_ARRAY // large JSON array - JSONB_LITERAL // literal (true/false/null) - JSONB_INT16 // int16 - JSONB_UINT16 // uint16 - JSONB_INT32 // int32 - JSONB_UINT32 // uint32 - JSONB_INT64 // int64 - JSONB_UINT64 // uint64 - JSONB_DOUBLE // double - JSONB_STRING // string - JSONB_OPAQUE byte = 0x0f // custom data (any MySQL data type) -) - -const ( - JSONB_NULL_LITERAL byte = 0x00 - JSONB_TRUE_LITERAL byte = 0x01 - JSONB_FALSE_LITERAL byte = 0x02 -) - -const ( - jsonbSmallOffsetSize = 2 - jsonbLargeOffsetSize = 4 - - jsonbKeyEntrySizeSmall = 2 + jsonbSmallOffsetSize - jsonbKeyEntrySizeLarge = 2 + jsonbLargeOffsetSize - - jsonbValueEntrySizeSmall = 1 + jsonbSmallOffsetSize - jsonbValueEntrySizeLarge = 1 + jsonbLargeOffsetSize -) - -func jsonbGetOffsetSize(isSmall bool) int { - if isSmall { - return jsonbSmallOffsetSize - } - - return jsonbLargeOffsetSize -} - -func jsonbGetKeyEntrySize(isSmall bool) int { - if isSmall { - return jsonbKeyEntrySizeSmall - } - - return jsonbKeyEntrySizeLarge -} - -func jsonbGetValueEntrySize(isSmall bool) int { - if isSmall { - return jsonbValueEntrySizeSmall - } - - return jsonbValueEntrySizeLarge -} - -// decodeJsonBinary decodes the JSON binary encoding data and returns -// the common JSON encoding data. -func decodeJsonBinary(data []byte) ([]byte, error) { - d := new(jsonBinaryDecoder) - - if d.isDataShort(data, 1) { - return nil, d.err - } - - v := d.decodeValue(data[0], data[1:]) - if d.err != nil { - return nil, d.err - } - - return json.Marshal(v) -} - -type jsonBinaryDecoder struct { - err error -} - -func (d *jsonBinaryDecoder) decodeValue(tp byte, data []byte) interface{} { - if d.err != nil { - return nil - } - - switch tp { - case JSONB_SMALL_OBJECT: - return d.decodeObjectOrArray(data, true, true) - case JSONB_LARGE_OBJECT: - return d.decodeObjectOrArray(data, false, true) - case JSONB_SMALL_ARRAY: - return d.decodeObjectOrArray(data, true, false) - case JSONB_LARGE_ARRAY: - return d.decodeObjectOrArray(data, false, false) - case JSONB_LITERAL: - return d.decodeLiteral(data) - case JSONB_INT16: - return d.decodeInt16(data) - case JSONB_UINT16: - return d.decodeUint16(data) - case JSONB_INT32: - return d.decodeInt32(data) - case JSONB_UINT32: - return d.decodeUint32(data) - case JSONB_INT64: - return d.decodeInt64(data) - case JSONB_UINT64: - return d.decodeUint64(data) - case JSONB_DOUBLE: - return d.decodeDouble(data) - case JSONB_STRING: - return d.decodeString(data) - case JSONB_OPAQUE: - return d.decodeOpaque(data) - default: - d.err = errors.Errorf("invalid json type %d", tp) - } - - return nil -} - -func (d *jsonBinaryDecoder) decodeObjectOrArray(data []byte, isSmall bool, isObject bool) interface{} { - offsetSize := jsonbGetOffsetSize(isSmall) - if d.isDataShort(data, 2*offsetSize) { - return nil - } - - count := d.decodeCount(data, isSmall) - size := d.decodeCount(data[offsetSize:], isSmall) - - if d.isDataShort(data, int(size)) { - return nil - } - - keyEntrySize := jsonbGetKeyEntrySize(isSmall) - valueEntrySize := jsonbGetValueEntrySize(isSmall) - - headerSize := 2*offsetSize + count*valueEntrySize - - if isObject { - headerSize += count * keyEntrySize - } - - if headerSize > size { - d.err = errors.Errorf("header size %d > size %d", headerSize, size) - return nil - } - - var keys []string - if isObject { - keys = make([]string, count) - for i := 0; i < count; i++ { - // decode key - entryOffset := 2*offsetSize + keyEntrySize*i - keyOffset := d.decodeCount(data[entryOffset:], isSmall) - keyLength := int(d.decodeUint16(data[entryOffset+offsetSize:])) - - // Key must start after value entry - if keyOffset < headerSize { - d.err = errors.Errorf("invalid key offset %d, must > %d", keyOffset, headerSize) - return nil - } - - if d.isDataShort(data, keyOffset+keyLength) { - return nil - } - - keys[i] = hack.String(data[keyOffset : keyOffset+keyLength]) - } - } - - if d.err != nil { - return nil - } - - values := make([]interface{}, count) - for i := 0; i < count; i++ { - // decode value - entryOffset := 2*offsetSize + valueEntrySize*i - if isObject { - entryOffset += keyEntrySize * count - } - - tp := data[entryOffset] - - if isInlineValue(tp, isSmall) { - values[i] = d.decodeValue(tp, data[entryOffset+1:entryOffset+valueEntrySize]) - continue - } - - valueOffset := d.decodeCount(data[entryOffset+1:], isSmall) - - if d.isDataShort(data, valueOffset) { - return nil - } - - values[i] = d.decodeValue(tp, data[valueOffset:]) - } - - if d.err != nil { - return nil - } - - if !isObject { - return values - } - - m := make(map[string]interface{}, count) - for i := 0; i < count; i++ { - m[keys[i]] = values[i] - } - - return m -} - -func isInlineValue(tp byte, isSmall bool) bool { - switch tp { - case JSONB_INT16, JSONB_UINT16, JSONB_LITERAL: - return true - case JSONB_INT32, JSONB_UINT32: - return !isSmall - } - - return false -} - -func (d *jsonBinaryDecoder) decodeLiteral(data []byte) interface{} { - if d.isDataShort(data, 1) { - return nil - } - - tp := data[0] - - switch tp { - case JSONB_NULL_LITERAL: - return nil - case JSONB_TRUE_LITERAL: - return true - case JSONB_FALSE_LITERAL: - return false - } - - d.err = errors.Errorf("invalid literal %c", tp) - - return nil -} - -func (d *jsonBinaryDecoder) isDataShort(data []byte, expected int) bool { - if d.err != nil { - return true - } - - if len(data) < expected { - d.err = errors.Errorf("data len %d < expected %d", len(data), expected) - } - - return d.err != nil -} - -func (d *jsonBinaryDecoder) decodeInt16(data []byte) int16 { - if d.isDataShort(data, 2) { - return 0 - } - - v := ParseBinaryInt16(data[0:2]) - return v -} - -func (d *jsonBinaryDecoder) decodeUint16(data []byte) uint16 { - if d.isDataShort(data, 2) { - return 0 - } - - v := ParseBinaryUint16(data[0:2]) - return v -} - -func (d *jsonBinaryDecoder) decodeInt32(data []byte) int32 { - if d.isDataShort(data, 4) { - return 0 - } - - v := ParseBinaryInt32(data[0:4]) - return v -} - -func (d *jsonBinaryDecoder) decodeUint32(data []byte) uint32 { - if d.isDataShort(data, 4) { - return 0 - } - - v := ParseBinaryUint32(data[0:4]) - return v -} - -func (d *jsonBinaryDecoder) decodeInt64(data []byte) int64 { - if d.isDataShort(data, 8) { - return 0 - } - - v := ParseBinaryInt64(data[0:8]) - return v -} - -func (d *jsonBinaryDecoder) decodeUint64(data []byte) uint64 { - if d.isDataShort(data, 8) { - return 0 - } - - v := ParseBinaryUint64(data[0:8]) - return v -} - -func (d *jsonBinaryDecoder) decodeDouble(data []byte) float64 { - if d.isDataShort(data, 8) { - return 0 - } - - v := ParseBinaryFloat64(data[0:8]) - return v -} - -func (d *jsonBinaryDecoder) decodeString(data []byte) string { - if d.err != nil { - return "" - } - - l, n := d.decodeVariableLength(data) - - if d.isDataShort(data, int(l)+n) { - return "" - } - - data = data[n:] - - v := hack.String(data[0:l]) - return v -} - -func (d *jsonBinaryDecoder) decodeOpaque(data []byte) interface{} { - if d.isDataShort(data, 1) { - return nil - } - - tp := data[0] - data = data[1:] - - l, n := d.decodeVariableLength(data) - - if d.isDataShort(data, int(l)+n) { - return nil - } - - data = data[n : int(l)+n] - - switch tp { - case MYSQL_TYPE_NEWDECIMAL: - return d.decodeDecimal(data) - case MYSQL_TYPE_TIME: - return d.decodeTime(data) - case MYSQL_TYPE_DATE, MYSQL_TYPE_DATETIME, MYSQL_TYPE_TIMESTAMP: - return d.decodeDateTime(data) - default: - return hack.String(data) - } - - return nil -} - -func (d *jsonBinaryDecoder) decodeDecimal(data []byte) interface{} { - precision := int(data[0]) - scale := int(data[1]) - - v, _, err := decodeDecimal(data[2:], precision, scale) - d.err = err - - return v -} - -func (d *jsonBinaryDecoder) decodeTime(data []byte) interface{} { - v := d.decodeInt64(data) - - if v == 0 { - return "00:00:00" - } - - sign := "" - if v < 0 { - sign = "-" - v = -v - } - - intPart := v >> 24 - hour := (intPart >> 12) % (1 << 10) - min := (intPart >> 6) % (1 << 6) - sec := intPart % (1 << 6) - frac := v % (1 << 24) - - return fmt.Sprintf("%s%02d:%02d:%02d.%06d", sign, hour, min, sec, frac) -} - -func (d *jsonBinaryDecoder) decodeDateTime(data []byte) interface{} { - v := d.decodeInt64(data) - if v == 0 { - return "0000-00-00 00:00:00" - } - - // handle negative? - if v < 0 { - v = -v - } - - intPart := v >> 24 - ymd := intPart >> 17 - ym := ymd >> 5 - hms := intPart % (1 << 17) - - year := ym / 13 - month := ym % 13 - day := ymd % (1 << 5) - hour := (hms >> 12) - minute := (hms >> 6) % (1 << 6) - second := hms % (1 << 6) - frac := v % (1 << 24) - - return fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d.%06d", year, month, day, hour, minute, second, frac) - -} - -func (d *jsonBinaryDecoder) decodeCount(data []byte, isSmall bool) int { - if isSmall { - v := d.decodeUint16(data) - return int(v) - } - - return int(d.decodeUint32(data)) -} - -func (d *jsonBinaryDecoder) decodeVariableLength(data []byte) (int, int) { - // The max size for variable length is math.MaxUint32, so - // here we can use 5 bytes to save it. - maxCount := 5 - if len(data) < maxCount { - maxCount = len(data) - } - - pos := 0 - length := uint64(0) - for ; pos < maxCount; pos++ { - v := data[pos] - length = (length << 7) + uint64(v&0x7F) - - if v&0x80 == 0 { - if length > math.MaxUint32 { - d.err = errors.Errorf("variable length %d must <= %d", length, math.MaxUint32) - return 0, 0 - } - - pos += 1 - // TODO: should consider length overflow int here. - return int(length), pos - } - } - - d.err = errors.New("decode variable length failed") - - return 0, 0 -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/parser.go b/vendor/github.com/siddontang/go-mysql/replication/parser.go deleted file mode 100644 index cfc97e4..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/parser.go +++ /dev/null @@ -1,268 +0,0 @@ -package replication - -import ( - "bytes" - "fmt" - "io" - "os" - - "github.com/juju/errors" -) - -type BinlogParser struct { - format *FormatDescriptionEvent - - tables map[uint64]*TableMapEvent - - // for rawMode, we only parse FormatDescriptionEvent and RotateEvent - rawMode bool -} - -func NewBinlogParser() *BinlogParser { - p := new(BinlogParser) - - p.tables = make(map[uint64]*TableMapEvent) - - return p -} - -func (p *BinlogParser) Reset() { - p.format = nil -} - -type OnEventFunc func(*BinlogEvent) error - -func (p *BinlogParser) ParseFile(name string, offset int64, onEvent OnEventFunc) error { - f, err := os.Open(name) - if err != nil { - return errors.Trace(err) - } - defer f.Close() - - b := make([]byte, 4) - if _, err = f.Read(b); err != nil { - return errors.Trace(err) - } else if !bytes.Equal(b, BinLogFileHeader) { - return errors.Errorf("%s is not a valid binlog file, head 4 bytes must fe'bin' ", name) - } - - if offset < 4 { - offset = 4 - } - - if _, err = f.Seek(offset, os.SEEK_SET); err != nil { - return errors.Errorf("seek %s to %d error %v", name, offset, err) - } - - return p.parseReader(f, onEvent) -} - -func (p *BinlogParser) parseReader(r io.Reader, onEvent OnEventFunc) error { - p.Reset() - - var err error - var n int64 - - for { - headBuf := make([]byte, EventHeaderSize) - - if _, err = io.ReadFull(r, headBuf); err == io.EOF { - return nil - } else if err != nil { - return errors.Trace(err) - } - - var h *EventHeader - h, err = p.parseHeader(headBuf) - if err != nil { - return errors.Trace(err) - } - - if h.EventSize <= uint32(EventHeaderSize) { - return errors.Errorf("invalid event header, event size is %d, too small", h.EventSize) - - } - - var buf bytes.Buffer - if n, err = io.CopyN(&buf, r, int64(h.EventSize)-int64(EventHeaderSize)); err != nil { - return errors.Errorf("get event body err %v, need %d - %d, but got %d", err, h.EventSize, EventHeaderSize, n) - } - - data := buf.Bytes() - rawData := data - - eventLen := int(h.EventSize) - EventHeaderSize - - if len(data) != eventLen { - return errors.Errorf("invalid data size %d in event %s, less event length %d", len(data), h.EventType, eventLen) - } - - var e Event - e, err = p.parseEvent(h, data) - if err != nil { - break - } - - if err = onEvent(&BinlogEvent{rawData, h, e}); err != nil { - return errors.Trace(err) - } - } - - return nil -} - -func (p *BinlogParser) SetRawMode(mode bool) { - p.rawMode = mode -} - -func (p *BinlogParser) parseHeader(data []byte) (*EventHeader, error) { - h := new(EventHeader) - err := h.Decode(data) - if err != nil { - return nil, err - } - - return h, nil -} - -func (p *BinlogParser) parseEvent(h *EventHeader, data []byte) (Event, error) { - var e Event - - if h.EventType == FORMAT_DESCRIPTION_EVENT { - p.format = &FormatDescriptionEvent{} - e = p.format - } else { - if p.format != nil && p.format.ChecksumAlgorithm == BINLOG_CHECKSUM_ALG_CRC32 { - data = data[0 : len(data)-4] - } - - if h.EventType == ROTATE_EVENT { - e = &RotateEvent{} - } else if !p.rawMode { - switch h.EventType { - case QUERY_EVENT: - e = &QueryEvent{} - case XID_EVENT: - e = &XIDEvent{} - case TABLE_MAP_EVENT: - te := &TableMapEvent{} - if p.format.EventTypeHeaderLengths[TABLE_MAP_EVENT-1] == 6 { - te.tableIDSize = 4 - } else { - te.tableIDSize = 6 - } - e = te - case WRITE_ROWS_EVENTv0, - UPDATE_ROWS_EVENTv0, - DELETE_ROWS_EVENTv0, - WRITE_ROWS_EVENTv1, - DELETE_ROWS_EVENTv1, - UPDATE_ROWS_EVENTv1, - WRITE_ROWS_EVENTv2, - UPDATE_ROWS_EVENTv2, - DELETE_ROWS_EVENTv2: - e = p.newRowsEvent(h) - case ROWS_QUERY_EVENT: - e = &RowsQueryEvent{} - case GTID_EVENT: - e = >IDEvent{} - case BEGIN_LOAD_QUERY_EVENT: - e = &BeginLoadQueryEvent{} - case EXECUTE_LOAD_QUERY_EVENT: - e = &ExecuteLoadQueryEvent{} - case MARIADB_ANNOTATE_ROWS_EVENT: - e = &MariadbAnnotaeRowsEvent{} - case MARIADB_BINLOG_CHECKPOINT_EVENT: - e = &MariadbBinlogCheckPointEvent{} - case MARIADB_GTID_LIST_EVENT: - e = &MariadbGTIDListEvent{} - case MARIADB_GTID_EVENT: - ee := &MariadbGTIDEvent{} - ee.GTID.ServerID = h.ServerID - e = ee - default: - e = &GenericEvent{} - } - } else { - e = &GenericEvent{} - } - } - - if err := e.Decode(data); err != nil { - return nil, &EventError{h, err.Error(), data} - } - - if te, ok := e.(*TableMapEvent); ok { - p.tables[te.TableID] = te - } - - if re, ok := e.(*RowsEvent); ok { - if (re.Flags & RowsEventStmtEndFlag) > 0 { - // Refer https://github.com/alibaba/canal/blob/38cc81b7dab29b51371096fb6763ca3a8432ffee/dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/event/RowsLogEvent.java#L176 - p.tables = make(map[uint64]*TableMapEvent) - } - } - - return e, nil -} - -func (p *BinlogParser) parse(data []byte) (*BinlogEvent, error) { - rawData := data - - h, err := p.parseHeader(data) - - if err != nil { - return nil, err - } - - data = data[EventHeaderSize:] - eventLen := int(h.EventSize) - EventHeaderSize - - if len(data) != eventLen { - return nil, fmt.Errorf("invalid data size %d in event %s, less event length %d", len(data), h.EventType, eventLen) - } - - e, err := p.parseEvent(h, data) - if err != nil { - return nil, err - } - - return &BinlogEvent{rawData, h, e}, nil -} - -func (p *BinlogParser) newRowsEvent(h *EventHeader) *RowsEvent { - e := &RowsEvent{} - if p.format.EventTypeHeaderLengths[h.EventType-1] == 6 { - e.tableIDSize = 4 - } else { - e.tableIDSize = 6 - } - - e.needBitmap2 = false - e.tables = p.tables - - switch h.EventType { - case WRITE_ROWS_EVENTv0: - e.Version = 0 - case UPDATE_ROWS_EVENTv0: - e.Version = 0 - case DELETE_ROWS_EVENTv0: - e.Version = 0 - case WRITE_ROWS_EVENTv1: - e.Version = 1 - case DELETE_ROWS_EVENTv1: - e.Version = 1 - case UPDATE_ROWS_EVENTv1: - e.Version = 1 - e.needBitmap2 = true - case WRITE_ROWS_EVENTv2: - e.Version = 2 - case UPDATE_ROWS_EVENTv2: - e.Version = 2 - e.needBitmap2 = true - case DELETE_ROWS_EVENTv2: - e.Version = 2 - } - - return e -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/parser_test.go b/vendor/github.com/siddontang/go-mysql/replication/parser_test.go deleted file mode 100644 index 52f5f1f..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/parser_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package replication - -import ( - . "github.com/pingcap/check" -) - -func (t *testSyncerSuite) TestIndexOutOfRange(c *C) { - parser := NewBinlogParser() - - parser.format = &FormatDescriptionEvent{ - Version: 0x4, - ServerVersion: []uint8{0x35, 0x2e, 0x36, 0x2e, 0x32, 0x30, 0x2d, 0x6c, 0x6f, 0x67, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, - CreateTimestamp: 0x0, - EventHeaderLength: 0x13, - EventTypeHeaderLengths: []uint8{0x38, 0xd, 0x0, 0x8, 0x0, 0x12, 0x0, 0x4, 0x4, 0x4, 0x4, 0x12, 0x0, 0x0, 0x5c, 0x0, 0x4, 0x1a, 0x8, 0x0, 0x0, 0x0, 0x8, 0x8, 0x8, 0x2, 0x0, 0x0, 0x0, 0xa, 0xa, 0xa, 0x19, 0x19, 0x0}, - ChecksumAlgorithm: 0x1, - } - - parser.tables = map[uint64]*TableMapEvent{ - 0x3043b: &TableMapEvent{tableIDSize: 6, TableID: 0x3043b, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x61, 0x70, 0x70, 0x5f, 0x63, 0x72, 0x6f, 0x6e}, ColumnCount: 0x15, ColumnType: []uint8{0x3, 0xf, 0xc, 0xc, 0xf, 0x3, 0xc, 0x3, 0xfc, 0xf, 0x1, 0xfe, 0x2, 0xc, 0xf, 0xf, 0xc, 0xf, 0xf, 0x3, 0xf}, ColumnMeta: []uint16{0x0, 0x180, 0x0, 0x0, 0x2fd, 0x0, 0x0, 0x0, 0x2, 0x180, 0x0, 0xfe78, 0x0, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x0, 0x2fd}, NullBitmap: []uint8{0xf8, 0xfb, 0x17}}, - 0x30453: &TableMapEvent{tableIDSize: 6, TableID: 0x30453, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x73, 0x74, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70}, ColumnCount: 0x36, ColumnType: []uint8{0x3, 0x3, 0x3, 0x3, 0x3, 0xf, 0xf, 0x8, 0x3, 0x3, 0x3, 0xf, 0xf, 0x1, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xfe, 0x12, 0xf, 0xf, 0xf, 0xf6, 0x1, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xfe, 0xf6, 0x12, 0x3, 0xf, 0xf, 0x1, 0x1, 0x12, 0xf, 0xf, 0xf, 0xf, 0x3, 0xf, 0x3}, ColumnMeta: []uint16{0x0, 0x0, 0x0, 0x0, 0x0, 0x2fd, 0x12c, 0x0, 0x0, 0x0, 0x0, 0x180, 0x180, 0x0, 0x30, 0x180, 0x180, 0x180, 0x30, 0xc0, 0xfe03, 0x0, 0x180, 0x180, 0x180, 0xc02, 0x0, 0x5a, 0x5a, 0x5a, 0x5a, 0x2fd, 0x2fd, 0x2fd, 0xc0, 0x12c, 0x30, 0xc, 0xfe06, 0xb02, 0x0, 0x0, 0x180, 0x180, 0x0, 0x0, 0x0, 0x180, 0x180, 0x2d, 0x2fd, 0x0, 0x2fd, 0x0}, NullBitmap: []uint8{0xee, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x17}}, - 0x30504: &TableMapEvent{tableIDSize: 6, TableID: 0x30504, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70}, ColumnCount: 0x13, ColumnType: []uint8{0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0xf, 0xc, 0xc, 0xc, 0xf, 0xf, 0x3, 0xf}, ColumnMeta: []uint16{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x180, 0x180, 0x0, 0x2fd}, NullBitmap: []uint8{0x6, 0xfb, 0x5}}, - 0x30450: &TableMapEvent{tableIDSize: 6, TableID: 0x30450, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74}, ColumnCount: 0x16, ColumnType: []uint8{0x3, 0xfc, 0xc, 0x3, 0xc, 0xf, 0x3, 0xf, 0xc, 0xf, 0xf, 0xf, 0xf, 0x3, 0xc, 0xf, 0xf, 0xf, 0xf, 0x3, 0x3, 0xf}, ColumnMeta: []uint16{0x0, 0x2, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x180, 0x0, 0x180, 0x180, 0x2fd, 0x2d, 0x0, 0x0, 0x180, 0x180, 0x2fd, 0x2d, 0x0, 0x0, 0x2fd}, NullBitmap: []uint8{0xfe, 0xff, 0x2f}}, - 0x305bb: &TableMapEvent{tableIDSize: 6, TableID: 0x305bb, Flags: 0x1, Schema: []uint8{0x79, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x67, 0x6f}, Table: []uint8{0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x6c, 0x6f, 0x67}, ColumnCount: 0x11, ColumnType: []uint8{0x3, 0x3, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xc, 0xf, 0xf, 0xc, 0xf, 0xf, 0x3, 0xf}, ColumnMeta: []uint16{0x0, 0x0, 0x2fd, 0x12c, 0x2fd, 0x2fd, 0x2d, 0x12c, 0x2fd, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x0, 0x2fd}, NullBitmap: []uint8{0xfe, 0x7f, 0x1}}, - 0x16c36b: &TableMapEvent{tableIDSize: 6, TableID: 0x16c36b, Flags: 0x1, Schema: []uint8{0x61, 0x63, 0x70}, Table: []uint8{0x73, 0x74, 0x67, 0x5f, 0x6d, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x32}, ColumnCount: 0xe, ColumnType: []uint8{0x8, 0x8, 0x3, 0x3, 0x2, 0x2, 0xf, 0x12, 0xf, 0xf, 0x12, 0xf, 0xf, 0xf}, ColumnMeta: []uint16{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x2fd}, NullBitmap: []uint8{0xba, 0x3f}}, - 0x16c368: &TableMapEvent{tableIDSize: 6, TableID: 0x16c368, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x73, 0x74, 0x67, 0x5f, 0x6d, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x32}, ColumnCount: 0xe, ColumnType: []uint8{0x8, 0x8, 0x3, 0x3, 0x2, 0x2, 0xf, 0x12, 0xf, 0xf, 0x12, 0xf, 0xf, 0xf}, ColumnMeta: []uint16{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x2fd}, NullBitmap: []uint8{0xba, 0x3f}}, - 0x3045a: &TableMapEvent{tableIDSize: 6, TableID: 0x3045a, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x63, 0x6f, 0x6e, 0x73}, ColumnCount: 0x1e, ColumnType: []uint8{0x3, 0x3, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xfe, 0x12, 0xf, 0xf, 0xf, 0xf6, 0xf, 0xf, 0xf, 0xf, 0x1, 0x1, 0x1, 0x12, 0xf, 0xf, 0x12, 0xf, 0xf, 0x3, 0xf, 0x1}, ColumnMeta: []uint16{0x0, 0x0, 0x30, 0x180, 0x180, 0x180, 0x30, 0xc0, 0xfe03, 0x0, 0x180, 0x180, 0x180, 0xc02, 0x180, 0x180, 0x180, 0x180, 0x0, 0x0, 0x0, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x0, 0x2fd, 0x0}, NullBitmap: []uint8{0xfc, 0xff, 0xe3, 0x37}}, - 0x3045f: &TableMapEvent{tableIDSize: 6, TableID: 0x3045f, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72}, ColumnCount: 0x19, ColumnType: []uint8{0x3, 0x3, 0x3, 0x1, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xfe, 0x3, 0xc, 0x1, 0xc, 0xf, 0xf, 0xc, 0xf, 0xf, 0x3, 0xf, 0x4, 0x4}, ColumnMeta: []uint16{0x0, 0x0, 0x0, 0x0, 0x2fd, 0x2fd, 0x2fd, 0xc0, 0x12c, 0x30, 0xc, 0xfe06, 0x0, 0x0, 0x0, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x0, 0x2fd, 0x4, 0x4}, NullBitmap: []uint8{0xf0, 0xef, 0x5f, 0x0}}, - 0x3065f: &TableMapEvent{tableIDSize: 6, TableID: 0x3065f, Flags: 0x1, Schema: []uint8{0x73, 0x65, 0x69, 0x75, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72}, Table: []uint8{0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x6f, 0x75, 0x74, 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72}, ColumnCount: 0xd, ColumnType: []uint8{0x3, 0x3, 0x3, 0x3, 0x1, 0x12, 0xf, 0xf, 0x12, 0xf, 0xf, 0x3, 0xf}, ColumnMeta: []uint16{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x180, 0x180, 0x0, 0x180, 0x180, 0x0, 0x2fd}, NullBitmap: []uint8{0xe0, 0x17}}, - } - - _, err := parser.parse([]byte{ - /* 0x00, */ 0xc1, 0x86, 0x8e, 0x55, 0x1e, 0xa5, 0x14, 0x80, 0xa, 0x55, 0x0, 0x0, 0x0, 0x7, 0xc, - 0xbf, 0xe, 0x0, 0x0, 0x5f, 0x6, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0xd, 0xff, - 0x0, 0x0, 0x19, 0x63, 0x7, 0x0, 0xca, 0x61, 0x5, 0x0, 0x5e, 0xf7, 0xc, 0x0, 0xf5, 0x7, - 0x0, 0x0, 0x1, 0x99, 0x96, 0x76, 0x74, 0xdd, 0x10, 0x0, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, - 0x5f, 0x64, 0x62, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6, 0x0, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0xb1, 0x3c, 0x38, 0xcb, - }) - - c.Assert(err, IsNil) -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/replication_test.go b/vendor/github.com/siddontang/go-mysql/replication/replication_test.go deleted file mode 100644 index 8af37be..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/replication_test.go +++ /dev/null @@ -1,396 +0,0 @@ -package replication - -import ( - "flag" - "fmt" - "os" - "sync" - "testing" - "time" - - "golang.org/x/net/context" - - . "github.com/pingcap/check" - uuid "github.com/satori/go.uuid" - "github.com/siddontang/go-mysql/client" - "github.com/siddontang/go-mysql/mysql" -) - -// Use docker mysql to test, mysql is 3306, mariadb is 3316 -var testHost = flag.String("host", "127.0.0.1", "MySQL master host") - -var testOutputLogs = flag.Bool("out", false, "output binlog event") - -func TestBinLogSyncer(t *testing.T) { - TestingT(t) -} - -type testSyncerSuite struct { - b *BinlogSyncer - c *client.Conn - - wg sync.WaitGroup - - flavor string -} - -var _ = Suite(&testSyncerSuite{}) - -func (t *testSyncerSuite) SetUpSuite(c *C) { - -} - -func (t *testSyncerSuite) TearDownSuite(c *C) { -} - -func (t *testSyncerSuite) SetUpTest(c *C) { -} - -func (t *testSyncerSuite) TearDownTest(c *C) { - if t.b != nil { - t.b.Close() - t.b = nil - } - - if t.c != nil { - t.c.Close() - t.c = nil - } -} - -func (t *testSyncerSuite) testExecute(c *C, query string) { - _, err := t.c.Execute(query) - c.Assert(err, IsNil) -} - -func (t *testSyncerSuite) testSync(c *C, s *BinlogStreamer) { - t.wg.Add(1) - go func() { - defer t.wg.Done() - - if s == nil { - return - } - - eventCount := 0 - for { - ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) - e, err := s.GetEvent(ctx) - cancel() - - if err == context.DeadlineExceeded { - eventCount += 1 - return - } - - c.Assert(err, IsNil) - - if *testOutputLogs { - e.Dump(os.Stdout) - os.Stdout.Sync() - } - } - }() - - //use mixed format - t.testExecute(c, "SET SESSION binlog_format = 'MIXED'") - - str := `DROP TABLE IF EXISTS test_replication` - t.testExecute(c, str) - - str = `CREATE TABLE test_replication ( - id BIGINT(64) UNSIGNED NOT NULL AUTO_INCREMENT, - str VARCHAR(256), - f FLOAT, - d DOUBLE, - de DECIMAL(10,2), - i INT, - bi BIGINT, - e enum ("e1", "e2"), - b BIT(8), - y YEAR, - da DATE, - ts TIMESTAMP, - dt DATETIME, - tm TIME, - t TEXT, - bb BLOB, - se SET('a', 'b', 'c'), - PRIMARY KEY (id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8` - - t.testExecute(c, str) - - //use row format - t.testExecute(c, "SET SESSION binlog_format = 'ROW'") - - t.testExecute(c, `INSERT INTO test_replication (str, f, i, e, b, y, da, ts, dt, tm, de, t, bb, se) - VALUES ("3", -3.14, 10, "e1", 0b0011, 1985, - "2012-05-07", "2012-05-07 14:01:01", "2012-05-07 14:01:01", - "14:01:01", -45363.64, "abc", "12345", "a,b")`) - - id := 100 - - if t.flavor == mysql.MySQLFlavor { - t.testExecute(c, "SET SESSION binlog_row_image = 'MINIMAL'") - - t.testExecute(c, fmt.Sprintf(`INSERT INTO test_replication (id, str, f, i, bb, de) VALUES (%d, "4", -3.14, 100, "abc", -45635.64)`, id)) - t.testExecute(c, fmt.Sprintf(`UPDATE test_replication SET f = -12.14, de = 555.34 WHERE id = %d`, id)) - t.testExecute(c, fmt.Sprintf(`DELETE FROM test_replication WHERE id = %d`, id)) - } - - // check whether we can create the table including the json field - str = `DROP TABLE IF EXISTS test_json` - t.testExecute(c, str) - - str = `CREATE TABLE test_json ( - id BIGINT(64) UNSIGNED NOT NULL AUTO_INCREMENT, - c1 JSON, - c2 DECIMAL(10, 0), - PRIMARY KEY (id) - ) ENGINE=InnoDB` - - if _, err := t.c.Execute(str); err == nil { - t.testExecute(c, `INSERT INTO test_json (c2) VALUES (1)`) - t.testExecute(c, `INSERT INTO test_json (c1, c2) VALUES ('{"key1": "value1", "key2": "value2"}', 1)`) - } - - t.testExecute(c, "DROP TABLE IF EXISTS test_json_v2") - - str = `CREATE TABLE test_json_v2 ( - id INT, - c JSON, - PRIMARY KEY (id) - ) ENGINE=InnoDB` - - if _, err := t.c.Execute(str); err == nil { - tbls := []string{ - // Refer: https://github.com/shyiko/mysql-binlog-connector-java/blob/c8e81c879710dc19941d952f9031b0a98f8b7c02/src/test/java/com/github/shyiko/mysql/binlog/event/deserialization/json/JsonBinaryValueIntegrationTest.java#L84 - // License: https://github.com/shyiko/mysql-binlog-connector-java#license - `INSERT INTO test_json_v2 VALUES (0, NULL)`, - `INSERT INTO test_json_v2 VALUES (1, '{\"a\": 2}')`, - `INSERT INTO test_json_v2 VALUES (2, '[1,2]')`, - `INSERT INTO test_json_v2 VALUES (3, '{\"a\":\"b\", \"c\":\"d\",\"ab\":\"abc\", \"bc\": [\"x\", \"y\"]}')`, - `INSERT INTO test_json_v2 VALUES (4, '[\"here\", [\"I\", \"am\"], \"!!!\"]')`, - `INSERT INTO test_json_v2 VALUES (5, '\"scalar string\"')`, - `INSERT INTO test_json_v2 VALUES (6, 'true')`, - `INSERT INTO test_json_v2 VALUES (7, 'false')`, - `INSERT INTO test_json_v2 VALUES (8, 'null')`, - `INSERT INTO test_json_v2 VALUES (9, '-1')`, - `INSERT INTO test_json_v2 VALUES (10, CAST(CAST(1 AS UNSIGNED) AS JSON))`, - `INSERT INTO test_json_v2 VALUES (11, '32767')`, - `INSERT INTO test_json_v2 VALUES (12, '32768')`, - `INSERT INTO test_json_v2 VALUES (13, '-32768')`, - `INSERT INTO test_json_v2 VALUES (14, '-32769')`, - `INSERT INTO test_json_v2 VALUES (15, '2147483647')`, - `INSERT INTO test_json_v2 VALUES (16, '2147483648')`, - `INSERT INTO test_json_v2 VALUES (17, '-2147483648')`, - `INSERT INTO test_json_v2 VALUES (18, '-2147483649')`, - `INSERT INTO test_json_v2 VALUES (19, '18446744073709551615')`, - `INSERT INTO test_json_v2 VALUES (20, '18446744073709551616')`, - `INSERT INTO test_json_v2 VALUES (21, '3.14')`, - `INSERT INTO test_json_v2 VALUES (22, '{}')`, - `INSERT INTO test_json_v2 VALUES (23, '[]')`, - `INSERT INTO test_json_v2 VALUES (24, CAST(CAST('2015-01-15 23:24:25' AS DATETIME) AS JSON))`, - `INSERT INTO test_json_v2 VALUES (25, CAST(CAST('23:24:25' AS TIME) AS JSON))`, - `INSERT INTO test_json_v2 VALUES (125, CAST(CAST('23:24:25.12' AS TIME(3)) AS JSON))`, - `INSERT INTO test_json_v2 VALUES (225, CAST(CAST('23:24:25.0237' AS TIME(3)) AS JSON))`, - `INSERT INTO test_json_v2 VALUES (26, CAST(CAST('2015-01-15' AS DATE) AS JSON))`, - `INSERT INTO test_json_v2 VALUES (27, CAST(TIMESTAMP'2015-01-15 23:24:25' AS JSON))`, - `INSERT INTO test_json_v2 VALUES (127, CAST(TIMESTAMP'2015-01-15 23:24:25.12' AS JSON))`, - `INSERT INTO test_json_v2 VALUES (227, CAST(TIMESTAMP'2015-01-15 23:24:25.0237' AS JSON))`, - `INSERT INTO test_json_v2 VALUES (327, CAST(UNIX_TIMESTAMP('2015-01-15 23:24:25') AS JSON))`, - `INSERT INTO test_json_v2 VALUES (28, CAST(ST_GeomFromText('POINT(1 1)') AS JSON))`, - `INSERT INTO test_json_v2 VALUES (29, CAST('[]' AS CHAR CHARACTER SET 'ascii'))`, - // TODO: 30 and 31 are BIT type from JSON_TYPE, may support later. - `INSERT INTO test_json_v2 VALUES (30, CAST(x'cafe' AS JSON))`, - `INSERT INTO test_json_v2 VALUES (31, CAST(x'cafebabe' AS JSON))`, - `INSERT INTO test_json_v2 VALUES (100, CONCAT('{\"', REPEAT('a', 64 * 1024 - 1), '\":123}'))`, - } - - for _, query := range tbls { - t.testExecute(c, query) - } - - // If MySQL supports JSON, it must supports GEOMETRY. - t.testExecute(c, "DROP TABLE IF EXISTS test_geo") - - str = `CREATE TABLE test_geo (g GEOMETRY)` - _, err = t.c.Execute(str) - c.Assert(err, IsNil) - - tbls = []string{ - `INSERT INTO test_geo VALUES (POINT(1, 1))`, - `INSERT INTO test_geo VALUES (LINESTRING(POINT(0,0), POINT(1,1), POINT(2,2)))`, - // TODO: add more geometry tests - } - - for _, query := range tbls { - t.testExecute(c, query) - } - } - - t.wg.Wait() -} - -func (t *testSyncerSuite) setupTest(c *C, flavor string) { - var port uint16 = 3306 - switch flavor { - case mysql.MariaDBFlavor: - port = 3316 - } - - t.flavor = flavor - - var err error - if t.c != nil { - t.c.Close() - } - - t.c, err = client.Connect(fmt.Sprintf("%s:%d", *testHost, port), "root", "", "") - if err != nil { - c.Skip(err.Error()) - } - - // _, err = t.c.Execute("CREATE DATABASE IF NOT EXISTS test") - // c.Assert(err, IsNil) - - _, err = t.c.Execute("USE test") - c.Assert(err, IsNil) - - if t.b != nil { - t.b.Close() - } - - cfg := BinlogSyncerConfig{ - ServerID: 100, - Flavor: flavor, - Host: *testHost, - Port: port, - User: "root", - Password: "", - } - - t.b = NewBinlogSyncer(&cfg) -} - -func (t *testSyncerSuite) testPositionSync(c *C) { - //get current master binlog file and position - r, err := t.c.Execute("SHOW MASTER STATUS") - c.Assert(err, IsNil) - binFile, _ := r.GetString(0, 0) - binPos, _ := r.GetInt(0, 1) - - s, err := t.b.StartSync(mysql.Position{binFile, uint32(binPos)}) - c.Assert(err, IsNil) - - // Test re-sync. - time.Sleep(100 * time.Millisecond) - t.b.c.SetReadDeadline(time.Now().Add(time.Millisecond)) - time.Sleep(100 * time.Millisecond) - - t.testSync(c, s) -} - -func (t *testSyncerSuite) TestMysqlPositionSync(c *C) { - t.setupTest(c, mysql.MySQLFlavor) - t.testPositionSync(c) -} - -func (t *testSyncerSuite) TestMysqlGTIDSync(c *C) { - t.setupTest(c, mysql.MySQLFlavor) - - r, err := t.c.Execute("SELECT @@gtid_mode") - c.Assert(err, IsNil) - modeOn, _ := r.GetString(0, 0) - if modeOn != "ON" { - c.Skip("GTID mode is not ON") - } - - r, err = t.c.Execute("SHOW GLOBAL VARIABLES LIKE 'SERVER_UUID'") - c.Assert(err, IsNil) - - var masterUuid uuid.UUID - if s, _ := r.GetString(0, 1); len(s) > 0 && s != "NONE" { - masterUuid, err = uuid.FromString(s) - c.Assert(err, IsNil) - } - - set, _ := mysql.ParseMysqlGTIDSet(fmt.Sprintf("%s:%d-%d", masterUuid.String(), 1, 2)) - - s, err := t.b.StartSyncGTID(set) - c.Assert(err, IsNil) - - t.testSync(c, s) -} - -func (t *testSyncerSuite) TestMariadbPositionSync(c *C) { - t.setupTest(c, mysql.MariaDBFlavor) - - t.testPositionSync(c) -} - -func (t *testSyncerSuite) TestMariadbGTIDSync(c *C) { - t.setupTest(c, mysql.MariaDBFlavor) - - // get current master gtid binlog pos - r, err := t.c.Execute("SELECT @@gtid_binlog_pos") - c.Assert(err, IsNil) - - str, _ := r.GetString(0, 0) - set, _ := mysql.ParseMariadbGTIDSet(str) - - s, err := t.b.StartSyncGTID(set) - c.Assert(err, IsNil) - - t.testSync(c, s) -} - -func (t *testSyncerSuite) TestMysqlSemiPositionSync(c *C) { - t.setupTest(c, mysql.MySQLFlavor) - - t.b.cfg.SemiSyncEnabled = true - - t.testPositionSync(c) -} - -func (t *testSyncerSuite) TestMysqlBinlogCodec(c *C) { - t.setupTest(c, mysql.MySQLFlavor) - - t.testExecute(c, "RESET MASTER") - - var wg sync.WaitGroup - wg.Add(1) - defer wg.Wait() - - go func() { - defer wg.Done() - - t.testSync(c, nil) - - t.testExecute(c, "FLUSH LOGS") - - t.testSync(c, nil) - }() - - os.RemoveAll("./var") - - err := t.b.StartBackup("./var", mysql.Position{"", uint32(0)}, 2*time.Second) - c.Assert(err, IsNil) - - p := NewBinlogParser() - - f := func(e *BinlogEvent) error { - if *testOutputLogs { - e.Dump(os.Stdout) - os.Stdout.Sync() - } - return nil - } - - err = p.ParseFile("./var/mysql.000001", 0, f) - c.Assert(err, IsNil) - - err = p.ParseFile("./var/mysql.000002", 0, f) - c.Assert(err, IsNil) -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/row_event.go b/vendor/github.com/siddontang/go-mysql/replication/row_event.go deleted file mode 100644 index 0bcb5f6..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/row_event.go +++ /dev/null @@ -1,816 +0,0 @@ -package replication - -import ( - "bytes" - "encoding/binary" - "encoding/hex" - "fmt" - "io" - "strconv" - "time" - - "github.com/juju/errors" - "github.com/ngaut/log" - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go/hack" -) - -type TableMapEvent struct { - tableIDSize int - - TableID uint64 - - Flags uint16 - - Schema []byte - Table []byte - - ColumnCount uint64 - ColumnType []byte - ColumnMeta []uint16 - - //len = (ColumnCount + 7) / 8 - NullBitmap []byte -} - -func (e *TableMapEvent) Decode(data []byte) error { - pos := 0 - e.TableID = FixedLengthInt(data[0:e.tableIDSize]) - pos += e.tableIDSize - - e.Flags = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - schemaLength := data[pos] - pos++ - - e.Schema = data[pos : pos+int(schemaLength)] - pos += int(schemaLength) - - //skip 0x00 - pos++ - - tableLength := data[pos] - pos++ - - e.Table = data[pos : pos+int(tableLength)] - pos += int(tableLength) - - //skip 0x00 - pos++ - - var n int - e.ColumnCount, _, n = LengthEncodedInt(data[pos:]) - pos += n - - e.ColumnType = data[pos : pos+int(e.ColumnCount)] - pos += int(e.ColumnCount) - - var err error - var metaData []byte - if metaData, _, n, err = LengthEnodedString(data[pos:]); err != nil { - return errors.Trace(err) - } - - if err = e.decodeMeta(metaData); err != nil { - return errors.Trace(err) - } - - pos += n - - if len(data[pos:]) != bitmapByteSize(int(e.ColumnCount)) { - return io.EOF - } - - e.NullBitmap = data[pos:] - - return nil -} - -func bitmapByteSize(columnCount int) int { - return int(columnCount+7) / 8 -} - -// see mysql sql/log_event.h -/* - 0 byte - MYSQL_TYPE_DECIMAL - MYSQL_TYPE_TINY - MYSQL_TYPE_SHORT - MYSQL_TYPE_LONG - MYSQL_TYPE_NULL - MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_LONGLONG - MYSQL_TYPE_INT24 - MYSQL_TYPE_DATE - MYSQL_TYPE_TIME - MYSQL_TYPE_DATETIME - MYSQL_TYPE_YEAR - - 1 byte - MYSQL_TYPE_FLOAT - MYSQL_TYPE_DOUBLE - MYSQL_TYPE_BLOB - MYSQL_TYPE_GEOMETRY - - //maybe - MYSQL_TYPE_TIME2 - MYSQL_TYPE_DATETIME2 - MYSQL_TYPE_TIMESTAMP2 - - 2 byte - MYSQL_TYPE_VARCHAR - MYSQL_TYPE_BIT - MYSQL_TYPE_NEWDECIMAL - MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_STRING - - This enumeration value is only used internally and cannot exist in a binlog. - MYSQL_TYPE_NEWDATE - MYSQL_TYPE_ENUM - MYSQL_TYPE_SET - MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_MEDIUM_BLOB - MYSQL_TYPE_LONG_BLOB -*/ -func (e *TableMapEvent) decodeMeta(data []byte) error { - pos := 0 - e.ColumnMeta = make([]uint16, e.ColumnCount) - for i, t := range e.ColumnType { - switch t { - case MYSQL_TYPE_STRING: - var x uint16 = uint16(data[pos]) << 8 //real type - x += uint16(data[pos+1]) //pack or field length - e.ColumnMeta[i] = x - pos += 2 - case MYSQL_TYPE_NEWDECIMAL: - var x uint16 = uint16(data[pos]) << 8 //precision - x += uint16(data[pos+1]) //decimals - e.ColumnMeta[i] = x - pos += 2 - case MYSQL_TYPE_VAR_STRING, - MYSQL_TYPE_VARCHAR, - MYSQL_TYPE_BIT: - e.ColumnMeta[i] = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - case MYSQL_TYPE_BLOB, - MYSQL_TYPE_DOUBLE, - MYSQL_TYPE_FLOAT, - MYSQL_TYPE_GEOMETRY, - MYSQL_TYPE_JSON: - e.ColumnMeta[i] = uint16(data[pos]) - pos++ - case MYSQL_TYPE_TIME2, - MYSQL_TYPE_DATETIME2, - MYSQL_TYPE_TIMESTAMP2: - e.ColumnMeta[i] = uint16(data[pos]) - pos++ - case MYSQL_TYPE_NEWDATE, - MYSQL_TYPE_ENUM, - MYSQL_TYPE_SET, - MYSQL_TYPE_TINY_BLOB, - MYSQL_TYPE_MEDIUM_BLOB, - MYSQL_TYPE_LONG_BLOB: - return errors.Errorf("unsupport type in binlog %d", t) - default: - e.ColumnMeta[i] = 0 - } - } - - return nil -} - -func (e *TableMapEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "TableID: %d\n", e.TableID) - fmt.Fprintf(w, "TableID size: %d\n", e.tableIDSize) - fmt.Fprintf(w, "Flags: %d\n", e.Flags) - fmt.Fprintf(w, "Schema: %s\n", e.Schema) - fmt.Fprintf(w, "Table: %s\n", e.Table) - fmt.Fprintf(w, "Column count: %d\n", e.ColumnCount) - fmt.Fprintf(w, "Column type: \n%s", hex.Dump(e.ColumnType)) - fmt.Fprintf(w, "NULL bitmap: \n%s", hex.Dump(e.NullBitmap)) - fmt.Fprintln(w) -} - -// RowsEventStmtEndFlag is set in the end of the statement. -const RowsEventStmtEndFlag = 0x01 - -type RowsEvent struct { - //0, 1, 2 - Version int - - tableIDSize int - tables map[uint64]*TableMapEvent - needBitmap2 bool - - Table *TableMapEvent - - TableID uint64 - - Flags uint16 - - //if version == 2 - ExtraData []byte - - //lenenc_int - ColumnCount uint64 - //len = (ColumnCount + 7) / 8 - ColumnBitmap1 []byte - - //if UPDATE_ROWS_EVENTv1 or v2 - //len = (ColumnCount + 7) / 8 - ColumnBitmap2 []byte - - //rows: invalid: int64, float64, bool, []byte, string - Rows [][]interface{} -} - -func (e *RowsEvent) Decode(data []byte) error { - pos := 0 - e.TableID = FixedLengthInt(data[0:e.tableIDSize]) - pos += e.tableIDSize - - e.Flags = binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - if e.Version == 2 { - dataLen := binary.LittleEndian.Uint16(data[pos:]) - pos += 2 - - e.ExtraData = data[pos : pos+int(dataLen-2)] - pos += int(dataLen - 2) - } - - var n int - e.ColumnCount, _, n = LengthEncodedInt(data[pos:]) - pos += n - - bitCount := bitmapByteSize(int(e.ColumnCount)) - e.ColumnBitmap1 = data[pos : pos+bitCount] - pos += bitCount - - if e.needBitmap2 { - e.ColumnBitmap2 = data[pos : pos+bitCount] - pos += bitCount - } - - var ok bool - e.Table, ok = e.tables[e.TableID] - if !ok { - return errors.Errorf("invalid table id %d, no correspond table map event", e.TableID) - } - - var err error - - // ... repeat rows until event-end - defer func() { - if r := recover(); r != nil { - log.Fatalf("parse rows event panic %v, data %q, parsed rows %#v, table map %#v\n%s", r, data, e, e.Table, Pstack()) - } - }() - - for pos < len(data) { - if n, err = e.decodeRows(data[pos:], e.Table, e.ColumnBitmap1); err != nil { - return errors.Trace(err) - } - pos += n - - if e.needBitmap2 { - if n, err = e.decodeRows(data[pos:], e.Table, e.ColumnBitmap2); err != nil { - return errors.Trace(err) - } - pos += n - } - } - - return nil -} - -func isBitSet(bitmap []byte, i int) bool { - return bitmap[i>>3]&(1<<(uint(i)&7)) > 0 -} - -func (e *RowsEvent) decodeRows(data []byte, table *TableMapEvent, bitmap []byte) (int, error) { - row := make([]interface{}, e.ColumnCount) - - pos := 0 - - // refer: https://github.com/alibaba/canal/blob/c3e38e50e269adafdd38a48c63a1740cde304c67/dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/event/RowsLogBuffer.java#L63 - count := 0 - for i := 0; i < int(e.ColumnCount); i++ { - if isBitSet(bitmap, i) { - count++ - } - } - count = (count + 7) / 8 - - nullBitmap := data[pos : pos+count] - pos += count - - nullbitIndex := 0 - - var n int - var err error - for i := 0; i < int(e.ColumnCount); i++ { - if !isBitSet(bitmap, i) { - continue - } - - isNull := (uint32(nullBitmap[nullbitIndex/8]) >> uint32(nullbitIndex%8)) & 0x01 - nullbitIndex++ - - if isNull > 0 { - row[i] = nil - continue - } - - row[i], n, err = e.decodeValue(data[pos:], table.ColumnType[i], table.ColumnMeta[i]) - - if err != nil { - return 0, err - } - pos += n - } - - e.Rows = append(e.Rows, row) - return pos, nil -} - -// see mysql sql/log_event.cc log_event_print_value -func (e *RowsEvent) decodeValue(data []byte, tp byte, meta uint16) (v interface{}, n int, err error) { - var length int = 0 - - if tp == MYSQL_TYPE_STRING { - if meta >= 256 { - b0 := uint8(meta >> 8) - b1 := uint8(meta & 0xFF) - - if b0&0x30 != 0x30 { - length = int(uint16(b1) | (uint16((b0&0x30)^0x30) << 4)) - tp = byte(b0 | 0x30) - } else { - length = int(meta & 0xFF) - tp = b0 - } - } else { - length = int(meta) - } - } - - switch tp { - case MYSQL_TYPE_NULL: - return nil, 0, nil - case MYSQL_TYPE_LONG: - n = 4 - v = ParseBinaryInt32(data) - case MYSQL_TYPE_TINY: - n = 1 - v = ParseBinaryInt8(data) - case MYSQL_TYPE_SHORT: - n = 2 - v = ParseBinaryInt16(data) - case MYSQL_TYPE_INT24: - n = 3 - v = ParseBinaryInt24(data) - case MYSQL_TYPE_LONGLONG: - n = 8 - v = ParseBinaryInt64(data) - case MYSQL_TYPE_NEWDECIMAL: - prec := uint8(meta >> 8) - scale := uint8(meta & 0xFF) - v, n, err = decodeDecimal(data, int(prec), int(scale)) - case MYSQL_TYPE_FLOAT: - n = 4 - v = ParseBinaryFloat32(data) - case MYSQL_TYPE_DOUBLE: - n = 8 - v = ParseBinaryFloat64(data) - case MYSQL_TYPE_BIT: - nbits := ((meta >> 8) * 8) + (meta & 0xFF) - n = int(nbits+7) / 8 - - //use int64 for bit - v, err = decodeBit(data, int(nbits), int(n)) - case MYSQL_TYPE_TIMESTAMP: - n = 4 - t := binary.LittleEndian.Uint32(data) - v = time.Unix(int64(t), 0) - case MYSQL_TYPE_TIMESTAMP2: - v, n, err = decodeTimestamp2(data, meta) - case MYSQL_TYPE_DATETIME: - n = 8 - i64 := binary.LittleEndian.Uint64(data) - d := i64 / 1000000 - t := i64 % 1000000 - v = time.Date(int(d/10000), - time.Month((d%10000)/100), - int(d%100), - int(t/10000), - int((t%10000)/100), - int(t%100), - 0, - time.UTC).Format(TimeFormat) - case MYSQL_TYPE_DATETIME2: - v, n, err = decodeDatetime2(data, meta) - case MYSQL_TYPE_TIME: - n = 3 - i32 := uint32(FixedLengthInt(data[0:3])) - if i32 == 0 { - v = "00:00:00" - } else { - sign := "" - if i32 < 0 { - sign = "-" - } - v = fmt.Sprintf("%s%02d:%02d:%02d", sign, i32/10000, (i32%10000)/100, i32%100) - } - case MYSQL_TYPE_TIME2: - v, n, err = decodeTime2(data, meta) - case MYSQL_TYPE_DATE: - n = 3 - i32 := uint32(FixedLengthInt(data[0:3])) - if i32 == 0 { - v = "0000-00-00" - } else { - v = fmt.Sprintf("%04d-%02d-%02d", i32/(16*32), i32/32%16, i32%32) - } - - case MYSQL_TYPE_YEAR: - n = 1 - v = int(data[0]) + 1900 - case MYSQL_TYPE_ENUM: - l := meta & 0xFF - switch l { - case 1: - v = int64(data[0]) - n = 1 - case 2: - v = int64(binary.BigEndian.Uint16(data)) - n = 2 - default: - err = fmt.Errorf("Unknown ENUM packlen=%d", l) - } - case MYSQL_TYPE_SET: - n = int(meta & 0xFF) - nbits := n * 8 - - v, err = decodeBit(data, nbits, n) - case MYSQL_TYPE_BLOB: - v, n, err = decodeBlob(data, meta) - case MYSQL_TYPE_VARCHAR, - MYSQL_TYPE_VAR_STRING: - length = int(meta) - v, n = decodeString(data, length) - case MYSQL_TYPE_STRING: - v, n = decodeString(data, length) - case MYSQL_TYPE_JSON: - // Refer https://github.com/shyiko/mysql-binlog-connector-java/blob/8f9132ee773317e00313204beeae8ddcaa43c1b4/src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/AbstractRowsEventDataDeserializer.java#L344 - length = int(binary.LittleEndian.Uint32(data[0:])) - n = length + int(meta) - v, err = decodeJsonBinary(data[meta:n]) - case MYSQL_TYPE_GEOMETRY: - // MySQL saves Geometry as Blob in binlog - // Seem that the binary format is SRID (4 bytes) + WKB, outer can use - // MySQL GeoFromWKB or others to create the geometry data. - // Refer https://dev.mysql.com/doc/refman/5.7/en/gis-wkb-functions.html - // I also find some go libs to handle WKB if possible - // see https://github.com/twpayne/go-geom or https://github.com/paulmach/go.geo - v, n, err = decodeBlob(data, meta) - default: - err = fmt.Errorf("unsupport type %d in binlog and don't know how to handle", tp) - } - return -} - -func decodeString(data []byte, length int) (v string, n int) { - if length < 256 { - length = int(data[0]) - - n = int(length) + 1 - v = hack.String(data[1:n]) - } else { - length = int(binary.LittleEndian.Uint16(data[0:])) - n = length + 2 - v = hack.String(data[2:n]) - } - - return -} - -const digitsPerInteger int = 9 - -var compressedBytes = []int{0, 1, 1, 2, 2, 3, 3, 4, 4, 4} - -func decodeDecimalDecompressValue(compIndx int, data []byte, mask uint8) (size int, value uint32) { - size = compressedBytes[compIndx] - databuff := make([]byte, size) - for i := 0; i < size; i++ { - databuff[i] = data[i] ^ mask - } - value = uint32(BFixedLengthInt(databuff)) - return -} - -func decodeDecimal(data []byte, precision int, decimals int) (float64, int, error) { - //see python mysql replication and https://github.com/jeremycole/mysql_binlog - integral := (precision - decimals) - uncompIntegral := int(integral / digitsPerInteger) - uncompFractional := int(decimals / digitsPerInteger) - compIntegral := integral - (uncompIntegral * digitsPerInteger) - compFractional := decimals - (uncompFractional * digitsPerInteger) - - binSize := uncompIntegral*4 + compressedBytes[compIntegral] + - uncompFractional*4 + compressedBytes[compFractional] - - buf := make([]byte, binSize) - copy(buf, data[:binSize]) - - //must copy the data for later change - data = buf - - // Support negative - // The sign is encoded in the high bit of the the byte - // But this bit can also be used in the value - value := uint32(data[0]) - var res bytes.Buffer - var mask uint32 = 0 - if value&0x80 == 0 { - mask = uint32((1 << 32) - 1) - res.WriteString("-") - } - - //clear sign - data[0] ^= 0x80 - - pos, value := decodeDecimalDecompressValue(compIntegral, data, uint8(mask)) - res.WriteString(fmt.Sprintf("%d", value)) - - for i := 0; i < uncompIntegral; i++ { - value = binary.BigEndian.Uint32(data[pos:]) ^ mask - pos += 4 - res.WriteString(fmt.Sprintf("%09d", value)) - } - - res.WriteString(".") - - for i := 0; i < uncompFractional; i++ { - value = binary.BigEndian.Uint32(data[pos:]) ^ mask - pos += 4 - res.WriteString(fmt.Sprintf("%09d", value)) - } - - if size, value := decodeDecimalDecompressValue(compFractional, data[pos:], uint8(mask)); size > 0 { - res.WriteString(fmt.Sprintf("%0*d", compFractional, value)) - pos += size - } - - f, err := strconv.ParseFloat(hack.String(res.Bytes()), 64) - return f, pos, err -} - -func decodeBit(data []byte, nbits int, length int) (value int64, err error) { - if nbits > 1 { - switch length { - case 1: - value = int64(data[0]) - case 2: - value = int64(binary.BigEndian.Uint16(data)) - case 3: - value = int64(BFixedLengthInt(data[0:3])) - case 4: - value = int64(binary.BigEndian.Uint32(data)) - case 5: - value = int64(BFixedLengthInt(data[0:5])) - case 6: - value = int64(BFixedLengthInt(data[0:6])) - case 7: - value = int64(BFixedLengthInt(data[0:7])) - case 8: - value = int64(binary.BigEndian.Uint64(data)) - default: - err = fmt.Errorf("invalid bit length %d", length) - } - } else { - if length != 1 { - err = fmt.Errorf("invalid bit length %d", length) - } else { - value = int64(data[0]) - } - } - return -} - -func decodeTimestamp2(data []byte, dec uint16) (interface{}, int, error) { - //get timestamp binary length - n := int(4 + (dec+1)/2) - sec := int64(binary.BigEndian.Uint32(data[0:4])) - usec := int64(0) - switch dec { - case 1, 2: - usec = int64(data[4]) * 10000 - case 3, 4: - usec = int64(binary.BigEndian.Uint16(data[4:])) * 100 - case 5, 6: - usec = int64(BFixedLengthInt(data[4:7])) - } - - if sec == 0 { - return "0000-00-00 00:00:00", n, nil - } - - t := time.Unix(sec, usec*1000) - return t, n, nil -} - -const DATETIMEF_INT_OFS int64 = 0x8000000000 - -func decodeDatetime2(data []byte, dec uint16) (interface{}, int, error) { - //get datetime binary length - n := int(5 + (dec+1)/2) - - intPart := int64(BFixedLengthInt(data[0:5])) - DATETIMEF_INT_OFS - var frac int64 = 0 - - switch dec { - case 1, 2: - frac = int64(data[5]) * 10000 - case 3, 4: - frac = int64(binary.BigEndian.Uint16(data[5:7])) * 100 - case 5, 6: - frac = int64(BFixedLengthInt(data[5:8])) - } - - if intPart == 0 { - return "0000-00-00 00:00:00", n, nil - } - - tmp := intPart<<24 + frac - //handle sign??? - if tmp < 0 { - tmp = -tmp - } - - var secPart int64 = tmp % (1 << 24) - ymdhms := tmp >> 24 - - ymd := ymdhms >> 17 - ym := ymd >> 5 - hms := ymdhms % (1 << 17) - - day := int(ymd % (1 << 5)) - month := int(ym % 13) - year := int(ym / 13) - - second := int(hms % (1 << 6)) - minute := int((hms >> 6) % (1 << 6)) - hour := int((hms >> 12)) - - if secPart != 0 { - return fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d.%d", year, month, day, hour, minute, second, secPart), n, nil // commented by Shlomi Noach. Yes I know about `git blame` - } - return fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second), n, nil // commented by Shlomi Noach. Yes I know about `git blame` -} - -const TIMEF_OFS int64 = 0x800000000000 -const TIMEF_INT_OFS int64 = 0x800000 - -func decodeTime2(data []byte, dec uint16) (string, int, error) { - //time binary length - n := int(3 + (dec+1)/2) - - tmp := int64(0) - intPart := int64(0) - frac := int64(0) - switch dec { - case 1: - case 2: - intPart = int64(BFixedLengthInt(data[0:3])) - TIMEF_INT_OFS - frac = int64(data[3]) - if intPart < 0 && frac > 0 { - /* - 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) */ - } - tmp = intPart<<24 + frac*10000 - case 3: - case 4: - intPart = int64(BFixedLengthInt(data[0:3])) - TIMEF_INT_OFS - frac = int64(binary.BigEndian.Uint16(data[3:5])) - if intPart < 0 && frac > 0 { - /* - 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) */ - } - tmp = intPart<<24 + frac*100 - - case 5: - case 6: - tmp = int64(BFixedLengthInt(data[0:6])) - TIMEF_OFS - default: - intPart = int64(BFixedLengthInt(data[0:3])) - TIMEF_INT_OFS - tmp = intPart << 24 - } - - if intPart == 0 { - return "00:00:00", n, nil - } - - hms := int64(0) - sign := "" - if tmp < 0 { - tmp = -tmp - sign = "-" - } - - hms = tmp >> 24 - - hour := (hms >> 12) % (1 << 10) /* 10 bits starting at 12th */ - minute := (hms >> 6) % (1 << 6) /* 6 bits starting at 6th */ - second := hms % (1 << 6) /* 6 bits starting at 0th */ - secPart := tmp % (1 << 24) - - if secPart != 0 { - return fmt.Sprintf("%s%02d:%02d:%02d.%06d", sign, hour, minute, second, secPart), n, nil - } - - return fmt.Sprintf("%s%02d:%02d:%02d", sign, hour, minute, second), n, nil -} - -func decodeBlob(data []byte, meta uint16) (v []byte, n int, err error) { - var length int - switch meta { - case 1: - length = int(data[0]) - v = data[1 : 1+length] - n = length + 1 - case 2: - length = int(binary.LittleEndian.Uint16(data)) - v = data[2 : 2+length] - n = length + 2 - case 3: - length = int(FixedLengthInt(data[0:3])) - v = data[3 : 3+length] - n = length + 3 - case 4: - length = int(binary.LittleEndian.Uint32(data)) - v = data[4 : 4+length] - n = length + 4 - default: - err = fmt.Errorf("invalid blob packlen = %d", meta) - } - - return -} - -func (e *RowsEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "TableID: %d\n", e.TableID) - fmt.Fprintf(w, "Flags: %d\n", e.Flags) - fmt.Fprintf(w, "Column count: %d\n", e.ColumnCount) - - fmt.Fprintf(w, "Values:\n") - for _, rows := range e.Rows { - fmt.Fprintf(w, "--\n") - for j, d := range rows { - if _, ok := d.([]byte); ok { - fmt.Fprintf(w, "%d:%q\n", j, d) - } else { - fmt.Fprintf(w, "%d:%#v\n", j, d) - } - } - } - fmt.Fprintln(w) -} - -type RowsQueryEvent struct { - Query []byte -} - -func (e *RowsQueryEvent) Decode(data []byte) error { - //ignore length byte 1 - e.Query = data[1:] - return nil -} - -func (e *RowsQueryEvent) Dump(w io.Writer) { - fmt.Fprintf(w, "Query: %s\n", e.Query) - fmt.Fprintln(w) -} diff --git a/vendor/github.com/siddontang/go-mysql/replication/row_event_test.go b/vendor/github.com/siddontang/go-mysql/replication/row_event_test.go deleted file mode 100644 index 2d63bb5..0000000 --- a/vendor/github.com/siddontang/go-mysql/replication/row_event_test.go +++ /dev/null @@ -1,431 +0,0 @@ -package replication - -import ( - "fmt" - - . "github.com/pingcap/check" -) - -type testDecodeSuite struct{} - -var _ = Suite(&testDecodeSuite{}) - -type decodeDecimalChecker struct { - *CheckerInfo -} - -func (_ *decodeDecimalChecker) Check(params []interface{}, names []string) (bool, string) { - var test int - val := struct { - Value float64 - Pos int - Err error - EValue float64 - EPos int - EErr error - }{} - - for i, name := range names { - switch name { - case "obtainedValue": - val.Value, _ = params[i].(float64) - case "obtainedPos": - val.Pos, _ = params[i].(int) - case "obtainedErr": - val.Err, _ = params[i].(error) - case "expectedValue": - val.EValue, _ = params[i].(float64) - case "expectedPos": - val.EPos, _ = params[i].(int) - case "expectedErr": - val.EErr, _ = params[i].(error) - case "caseNumber": - test = params[i].(int) - } - } - errorMsgFmt := fmt.Sprintf("For Test %v: ", test) + "Did not get expected %v(%v), got %v instead." - if val.Err != val.EErr { - return false, fmt.Sprintf(errorMsgFmt, "error", val.EErr, val.Err) - } - if val.Pos != val.EPos { - return false, fmt.Sprintf(errorMsgFmt, "position", val.EPos, val.Pos) - } - if val.Value != val.EValue { - return false, fmt.Sprintf(errorMsgFmt, "value", val.EValue, val.Value) - } - return true, "" -} - -var DecodeDecimalsEquals = &decodeDecimalChecker{ - &CheckerInfo{Name: "Equals", Params: []string{"obtainedValue", "obtainedPos", "obtainedErr", "expectedValue", "expectedPos", "expectedErr", "caseNumber"}}, -} - -func (_ *testDecodeSuite) TestDecodeDecimal(c *C) { - // _PLACEHOLDER_ := 0 - testcases := []struct { - Data []byte - Precision int - Decimals int - Expected float64 - ExpectedPos int - ExpectedErr error - }{ - // These are cases from the mysql test cases - /* - -- Generated with gentestsql.go -- - DROP TABLE IF EXISTS decodedecimal; - CREATE TABLE decodedecimal ( - id int(11) not null auto_increment, - v4_2 decimal(4,2), - v5_0 decimal(5,0), - v7_3 decimal(7,3), - v10_2 decimal(10,2), - v10_3 decimal(10,3), - v13_2 decimal(13,2), - v15_14 decimal(15,14), - v20_10 decimal(20,10), - v30_5 decimal(30,5), - v30_20 decimal(30,20), - v30_25 decimal(30,25), - prec int(11), - scale int(11), - PRIMARY KEY(id) - ) engine=InnoDB; - INSERT INTO decodedecimal (v4_2,v5_0,v7_3,v10_2,v10_3,v13_2,v15_14,v20_10,v30_5,v30_20,v30_25,prec,scale) VALUES - ("-10.55","-10.55","-10.55","-10.55","-10.55","-10.55","-10.55","-10.55","-10.55","-10.55","-10.55",4,2), - ("0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345","0.0123456789012345678912345",30,25), - ("12345","12345","12345","12345","12345","12345","12345","12345","12345","12345","12345",5,0), - ("12345","12345","12345","12345","12345","12345","12345","12345","12345","12345","12345",10,3), - ("123.45","123.45","123.45","123.45","123.45","123.45","123.45","123.45","123.45","123.45","123.45",10,3), - ("-123.45","-123.45","-123.45","-123.45","-123.45","-123.45","-123.45","-123.45","-123.45","-123.45","-123.45",20,10), - (".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",15,14), - (".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",".00012345000098765",22,20), - (".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",".12345000098765",30,20), - ("-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765","-.000000012345000098765",30,20), - ("1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5","1234500009876.5",30,5), - ("111111111.11","111111111.11","111111111.11","111111111.11","111111111.11","111111111.11","111111111.11","111111111.11","111111111.11","111111111.11","111111111.11",10,2), - ("000000000.01","000000000.01","000000000.01","000000000.01","000000000.01","000000000.01","000000000.01","000000000.01","000000000.01","000000000.01","000000000.01",7,3), - ("123.4","123.4","123.4","123.4","123.4","123.4","123.4","123.4","123.4","123.4","123.4",10,2), - ("-562.58","-562.58","-562.58","-562.58","-562.58","-562.58","-562.58","-562.58","-562.58","-562.58","-562.58",13,2), - ("-3699.01","-3699.01","-3699.01","-3699.01","-3699.01","-3699.01","-3699.01","-3699.01","-3699.01","-3699.01","-3699.01",13,2), - ("-1948.14","-1948.14","-1948.14","-1948.14","-1948.14","-1948.14","-1948.14","-1948.14","-1948.14","-1948.14","-1948.14",13,2) - ; - select * from decodedecimal; - +----+--------+-------+-----------+-------------+-------------+----------------+-------------------+-----------------------+---------------------+---------------------------------+---------------------------------+------+-------+ - | id | v4_2 | v5_0 | v7_3 | v10_2 | v10_3 | v13_2 | v15_14 | v20_10 | v30_5 | v30_20 | v30_25 | prec | scale | - +----+--------+-------+-----------+-------------+-------------+----------------+-------------------+-----------------------+---------------------+---------------------------------+---------------------------------+------+-------+ - | 1 | -10.55 | -11 | -10.550 | -10.55 | -10.550 | -10.55 | -9.99999999999999 | -10.5500000000 | -10.55000 | -10.55000000000000000000 | -10.5500000000000000000000000 | 4 | 2 | - | 2 | 0.01 | 0 | 0.012 | 0.01 | 0.012 | 0.01 | 0.01234567890123 | 0.0123456789 | 0.01235 | 0.01234567890123456789 | 0.0123456789012345678912345 | 30 | 25 | - | 3 | 99.99 | 12345 | 9999.999 | 12345.00 | 12345.000 | 12345.00 | 9.99999999999999 | 12345.0000000000 | 12345.00000 | 12345.00000000000000000000 | 12345.0000000000000000000000000 | 5 | 0 | - | 4 | 99.99 | 12345 | 9999.999 | 12345.00 | 12345.000 | 12345.00 | 9.99999999999999 | 12345.0000000000 | 12345.00000 | 12345.00000000000000000000 | 12345.0000000000000000000000000 | 10 | 3 | - | 5 | 99.99 | 123 | 123.450 | 123.45 | 123.450 | 123.45 | 9.99999999999999 | 123.4500000000 | 123.45000 | 123.45000000000000000000 | 123.4500000000000000000000000 | 10 | 3 | - | 6 | -99.99 | -123 | -123.450 | -123.45 | -123.450 | -123.45 | -9.99999999999999 | -123.4500000000 | -123.45000 | -123.45000000000000000000 | -123.4500000000000000000000000 | 20 | 10 | - | 7 | 0.00 | 0 | 0.000 | 0.00 | 0.000 | 0.00 | 0.00012345000099 | 0.0001234500 | 0.00012 | 0.00012345000098765000 | 0.0001234500009876500000000 | 15 | 14 | - | 8 | 0.00 | 0 | 0.000 | 0.00 | 0.000 | 0.00 | 0.00012345000099 | 0.0001234500 | 0.00012 | 0.00012345000098765000 | 0.0001234500009876500000000 | 22 | 20 | - | 9 | 0.12 | 0 | 0.123 | 0.12 | 0.123 | 0.12 | 0.12345000098765 | 0.1234500010 | 0.12345 | 0.12345000098765000000 | 0.1234500009876500000000000 | 30 | 20 | - | 10 | 0.00 | 0 | 0.000 | 0.00 | 0.000 | 0.00 | -0.00000001234500 | -0.0000000123 | 0.00000 | -0.00000001234500009877 | -0.0000000123450000987650000 | 30 | 20 | - | 11 | 99.99 | 99999 | 9999.999 | 99999999.99 | 9999999.999 | 99999999999.99 | 9.99999999999999 | 9999999999.9999999999 | 1234500009876.50000 | 9999999999.99999999999999999999 | 99999.9999999999999999999999999 | 30 | 5 | - | 12 | 99.99 | 99999 | 9999.999 | 99999999.99 | 9999999.999 | 111111111.11 | 9.99999999999999 | 111111111.1100000000 | 111111111.11000 | 111111111.11000000000000000000 | 99999.9999999999999999999999999 | 10 | 2 | - | 13 | 0.01 | 0 | 0.010 | 0.01 | 0.010 | 0.01 | 0.01000000000000 | 0.0100000000 | 0.01000 | 0.01000000000000000000 | 0.0100000000000000000000000 | 7 | 3 | - | 14 | 99.99 | 123 | 123.400 | 123.40 | 123.400 | 123.40 | 9.99999999999999 | 123.4000000000 | 123.40000 | 123.40000000000000000000 | 123.4000000000000000000000000 | 10 | 2 | - | 15 | -99.99 | -563 | -562.580 | -562.58 | -562.580 | -562.58 | -9.99999999999999 | -562.5800000000 | -562.58000 | -562.58000000000000000000 | -562.5800000000000000000000000 | 13 | 2 | - | 16 | -99.99 | -3699 | -3699.010 | -3699.01 | -3699.010 | -3699.01 | -9.99999999999999 | -3699.0100000000 | -3699.01000 | -3699.01000000000000000000 | -3699.0100000000000000000000000 | 13 | 2 | - | 17 | -99.99 | -1948 | -1948.140 | -1948.14 | -1948.140 | -1948.14 | -9.99999999999999 | -1948.1400000000 | -1948.14000 | -1948.14000000000000000000 | -1948.1400000000000000000000000 | 13 | 2 | - +----+--------+-------+-----------+-------------+-------------+----------------+-------------------+-----------------------+---------------------+---------------------------------+---------------------------------+------+-------+ - */ - {[]byte{117, 200, 127, 255}, 4, 2, float64(-10.55), 2, nil}, - {[]byte{127, 255, 244, 127, 245}, 5, 0, float64(-11), 3, nil}, - {[]byte{127, 245, 253, 217, 127, 255}, 7, 3, float64(-10.550), 4, nil}, - {[]byte{127, 255, 255, 245, 200, 127, 255}, 10, 2, float64(-10.55), 5, nil}, - {[]byte{127, 255, 255, 245, 253, 217, 127, 255}, 10, 3, float64(-10.550), 6, nil}, - {[]byte{127, 255, 255, 255, 245, 200, 118, 196}, 13, 2, float64(-10.55), 6, nil}, - {[]byte{118, 196, 101, 54, 0, 254, 121, 96, 127, 255}, 15, 14, float64(-9.99999999999999), 8, nil}, - {[]byte{127, 255, 255, 255, 245, 223, 55, 170, 127, 255, 127, 255}, 20, 10, float64(-10.5500000000), 10, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 255, 41, 39, 127, 255}, 30, 5, float64(-10.55000), 15, nil}, - {[]byte{127, 255, 255, 255, 245, 223, 55, 170, 127, 255, 255, 255, 255, 255, 127, 255}, 30, 20, float64(-10.55000000000000000000), 14, nil}, - {[]byte{127, 255, 245, 223, 55, 170, 127, 255, 255, 255, 255, 255, 255, 255, 255, 4, 0}, 30, 25, float64(-10.5500000000000000000000000), 15, nil}, - {[]byte{128, 1, 128, 0}, 4, 2, float64(0.01), 2, nil}, - {[]byte{128, 0, 0, 128, 0}, 5, 0, float64(0), 3, nil}, - {[]byte{128, 0, 0, 12, 128, 0}, 7, 3, float64(0.012), 4, nil}, - {[]byte{128, 0, 0, 0, 1, 128, 0}, 10, 2, float64(0.01), 5, nil}, - {[]byte{128, 0, 0, 0, 0, 12, 128, 0}, 10, 3, float64(0.012), 6, nil}, - {[]byte{128, 0, 0, 0, 0, 1, 128, 0}, 13, 2, float64(0.01), 6, nil}, - {[]byte{128, 0, 188, 97, 78, 1, 96, 11, 128, 0}, 15, 14, float64(0.01234567890123), 8, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 188, 97, 78, 9, 128, 0}, 20, 10, float64(0.0123456789), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 211, 128, 0}, 30, 5, float64(0.01235), 15, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 188, 97, 78, 53, 183, 191, 135, 89, 128, 0}, 30, 20, float64(0.01234567890123456789), 14, nil}, - {[]byte{128, 0, 0, 0, 188, 97, 78, 53, 183, 191, 135, 0, 135, 253, 217, 30, 0}, 30, 25, float64(0.0123456789012345678912345), 15, nil}, - {[]byte{227, 99, 128, 48}, 4, 2, float64(99.99), 2, nil}, - {[]byte{128, 48, 57, 167, 15}, 5, 0, float64(12345), 3, nil}, - {[]byte{167, 15, 3, 231, 128, 0}, 7, 3, float64(9999.999), 4, nil}, - {[]byte{128, 0, 48, 57, 0, 128, 0}, 10, 2, float64(12345.00), 5, nil}, - {[]byte{128, 0, 48, 57, 0, 0, 128, 0}, 10, 3, float64(12345.000), 6, nil}, - {[]byte{128, 0, 0, 48, 57, 0, 137, 59}, 13, 2, float64(12345.00), 6, nil}, - {[]byte{137, 59, 154, 201, 255, 1, 134, 159, 128, 0}, 15, 14, float64(9.99999999999999), 8, nil}, - {[]byte{128, 0, 0, 48, 57, 0, 0, 0, 0, 0, 128, 0}, 20, 10, float64(12345.0000000000), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 57, 0, 0, 0, 128, 0}, 30, 5, float64(12345.00000), 15, nil}, - {[]byte{128, 0, 0, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 48}, 30, 20, float64(12345.00000000000000000000), 14, nil}, - {[]byte{128, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0}, 30, 25, float64(12345.0000000000000000000000000), 15, nil}, - {[]byte{227, 99, 128, 48}, 4, 2, float64(99.99), 2, nil}, - {[]byte{128, 48, 57, 167, 15}, 5, 0, float64(12345), 3, nil}, - {[]byte{167, 15, 3, 231, 128, 0}, 7, 3, float64(9999.999), 4, nil}, - {[]byte{128, 0, 48, 57, 0, 128, 0}, 10, 2, float64(12345.00), 5, nil}, - {[]byte{128, 0, 48, 57, 0, 0, 128, 0}, 10, 3, float64(12345.000), 6, nil}, - {[]byte{128, 0, 0, 48, 57, 0, 137, 59}, 13, 2, float64(12345.00), 6, nil}, - {[]byte{137, 59, 154, 201, 255, 1, 134, 159, 128, 0}, 15, 14, float64(9.99999999999999), 8, nil}, - {[]byte{128, 0, 0, 48, 57, 0, 0, 0, 0, 0, 128, 0}, 20, 10, float64(12345.0000000000), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 57, 0, 0, 0, 128, 0}, 30, 5, float64(12345.00000), 15, nil}, - {[]byte{128, 0, 0, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 48}, 30, 20, float64(12345.00000000000000000000), 14, nil}, - {[]byte{128, 48, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0}, 30, 25, float64(12345.0000000000000000000000000), 15, nil}, - {[]byte{227, 99, 128, 0}, 4, 2, float64(99.99), 2, nil}, - {[]byte{128, 0, 123, 128, 123}, 5, 0, float64(123), 3, nil}, - {[]byte{128, 123, 1, 194, 128, 0}, 7, 3, float64(123.450), 4, nil}, - {[]byte{128, 0, 0, 123, 45, 128, 0}, 10, 2, float64(123.45), 5, nil}, - {[]byte{128, 0, 0, 123, 1, 194, 128, 0}, 10, 3, float64(123.450), 6, nil}, - {[]byte{128, 0, 0, 0, 123, 45, 137, 59}, 13, 2, float64(123.45), 6, nil}, - {[]byte{137, 59, 154, 201, 255, 1, 134, 159, 128, 0}, 15, 14, float64(9.99999999999999), 8, nil}, - {[]byte{128, 0, 0, 0, 123, 26, 210, 116, 128, 0, 128, 0}, 20, 10, float64(123.4500000000), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 175, 200, 128, 0}, 30, 5, float64(123.45000), 15, nil}, - {[]byte{128, 0, 0, 0, 123, 26, 210, 116, 128, 0, 0, 0, 0, 0, 128, 0}, 30, 20, float64(123.45000000000000000000), 14, nil}, - {[]byte{128, 0, 123, 26, 210, 116, 128, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0}, 30, 25, float64(123.4500000000000000000000000), 15, nil}, - {[]byte{28, 156, 127, 255}, 4, 2, float64(-99.99), 2, nil}, - {[]byte{127, 255, 132, 127, 132}, 5, 0, float64(-123), 3, nil}, - {[]byte{127, 132, 254, 61, 127, 255}, 7, 3, float64(-123.450), 4, nil}, - {[]byte{127, 255, 255, 132, 210, 127, 255}, 10, 2, float64(-123.45), 5, nil}, - {[]byte{127, 255, 255, 132, 254, 61, 127, 255}, 10, 3, float64(-123.450), 6, nil}, - {[]byte{127, 255, 255, 255, 132, 210, 118, 196}, 13, 2, float64(-123.45), 6, nil}, - {[]byte{118, 196, 101, 54, 0, 254, 121, 96, 127, 255}, 15, 14, float64(-9.99999999999999), 8, nil}, - {[]byte{127, 255, 255, 255, 132, 229, 45, 139, 127, 255, 127, 255}, 20, 10, float64(-123.4500000000), 10, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 132, 255, 80, 55, 127, 255}, 30, 5, float64(-123.45000), 15, nil}, - {[]byte{127, 255, 255, 255, 132, 229, 45, 139, 127, 255, 255, 255, 255, 255, 127, 255}, 30, 20, float64(-123.45000000000000000000), 14, nil}, - {[]byte{127, 255, 132, 229, 45, 139, 127, 255, 255, 255, 255, 255, 255, 255, 255, 20, 0}, 30, 25, float64(-123.4500000000000000000000000), 15, nil}, - {[]byte{128, 0, 128, 0}, 4, 2, float64(0.00), 2, nil}, - {[]byte{128, 0, 0, 128, 0}, 5, 0, float64(0), 3, nil}, - {[]byte{128, 0, 0, 0, 128, 0}, 7, 3, float64(0.000), 4, nil}, - {[]byte{128, 0, 0, 0, 0, 128, 0}, 10, 2, float64(0.00), 5, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 128, 0}, 10, 3, float64(0.000), 6, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 128, 0}, 13, 2, float64(0.00), 6, nil}, - {[]byte{128, 0, 1, 226, 58, 0, 0, 99, 128, 0}, 15, 14, float64(0.00012345000099), 8, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 1, 226, 58, 0, 128, 0}, 20, 10, float64(0.0001234500), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 128, 0}, 30, 5, float64(0.00012), 15, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 1, 226, 58, 0, 15, 18, 2, 0, 128, 0}, 30, 20, float64(0.00012345000098765000), 14, nil}, - {[]byte{128, 0, 0, 0, 1, 226, 58, 0, 15, 18, 2, 0, 0, 0, 0, 15, 0}, 30, 25, float64(0.0001234500009876500000000), 15, nil}, - {[]byte{128, 0, 128, 0}, 4, 2, float64(0.00), 2, nil}, - {[]byte{128, 0, 0, 128, 0}, 5, 0, float64(0), 3, nil}, - {[]byte{128, 0, 0, 0, 128, 0}, 7, 3, float64(0.000), 4, nil}, - {[]byte{128, 0, 0, 0, 0, 128, 0}, 10, 2, float64(0.00), 5, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 128, 0}, 10, 3, float64(0.000), 6, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 128, 0}, 13, 2, float64(0.00), 6, nil}, - {[]byte{128, 0, 1, 226, 58, 0, 0, 99, 128, 0}, 15, 14, float64(0.00012345000099), 8, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 1, 226, 58, 0, 128, 0}, 20, 10, float64(0.0001234500), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 128, 0}, 30, 5, float64(0.00012), 15, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 1, 226, 58, 0, 15, 18, 2, 0, 128, 0}, 30, 20, float64(0.00012345000098765000), 14, nil}, - {[]byte{128, 0, 0, 0, 1, 226, 58, 0, 15, 18, 2, 0, 0, 0, 0, 22, 0}, 30, 25, float64(0.0001234500009876500000000), 15, nil}, - {[]byte{128, 12, 128, 0}, 4, 2, float64(0.12), 2, nil}, - {[]byte{128, 0, 0, 128, 0}, 5, 0, float64(0), 3, nil}, - {[]byte{128, 0, 0, 123, 128, 0}, 7, 3, float64(0.123), 4, nil}, - {[]byte{128, 0, 0, 0, 12, 128, 0}, 10, 2, float64(0.12), 5, nil}, - {[]byte{128, 0, 0, 0, 0, 123, 128, 0}, 10, 3, float64(0.123), 6, nil}, - {[]byte{128, 0, 0, 0, 0, 12, 128, 7}, 13, 2, float64(0.12), 6, nil}, - {[]byte{128, 7, 91, 178, 144, 1, 129, 205, 128, 0}, 15, 14, float64(0.12345000098765), 8, nil}, - {[]byte{128, 0, 0, 0, 0, 7, 91, 178, 145, 0, 128, 0}, 20, 10, float64(0.1234500010), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 57, 128, 0}, 30, 5, float64(0.12345), 15, nil}, - {[]byte{128, 0, 0, 0, 0, 7, 91, 178, 144, 58, 222, 87, 208, 0, 128, 0}, 30, 20, float64(0.12345000098765000000), 14, nil}, - {[]byte{128, 0, 0, 7, 91, 178, 144, 58, 222, 87, 208, 0, 0, 0, 0, 30, 0}, 30, 25, float64(0.1234500009876500000000000), 15, nil}, - {[]byte{128, 0, 128, 0}, 4, 2, float64(0.00), 2, nil}, - {[]byte{128, 0, 0, 128, 0}, 5, 0, float64(0), 3, nil}, - {[]byte{128, 0, 0, 0, 128, 0}, 7, 3, float64(0.000), 4, nil}, - {[]byte{128, 0, 0, 0, 0, 128, 0}, 10, 2, float64(0.00), 5, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 128, 0}, 10, 3, float64(0.000), 6, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 127, 255}, 13, 2, float64(0.00), 6, nil}, - {[]byte{127, 255, 255, 255, 243, 255, 121, 59, 127, 255}, 15, 14, float64(-0.00000001234500), 8, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 243, 252, 128, 0}, 20, 10, float64(-0.0000000123), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 255}, 30, 5, float64(0.00000), 15, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 243, 235, 111, 183, 93, 178, 127, 255}, 30, 20, float64(-0.00000001234500009877), 14, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 243, 235, 111, 183, 93, 255, 139, 69, 47, 30, 0}, 30, 25, float64(-0.0000000123450000987650000), 15, nil}, - {[]byte{227, 99, 129, 134}, 4, 2, float64(99.99), 2, nil}, - {[]byte{129, 134, 159, 167, 15}, 5, 0, float64(99999), 3, nil}, - {[]byte{167, 15, 3, 231, 133, 245}, 7, 3, float64(9999.999), 4, nil}, - {[]byte{133, 245, 224, 255, 99, 128, 152}, 10, 2, float64(99999999.99), 5, nil}, - {[]byte{128, 152, 150, 127, 3, 231, 227, 59}, 10, 3, float64(9999999.999), 6, nil}, - {[]byte{227, 59, 154, 201, 255, 99, 137, 59}, 13, 2, float64(99999999999.99), 6, nil}, - {[]byte{137, 59, 154, 201, 255, 1, 134, 159, 137, 59}, 15, 14, float64(9.99999999999999), 8, nil}, - {[]byte{137, 59, 154, 201, 255, 59, 154, 201, 255, 9, 128, 0}, 20, 10, float64(9999999999.9999999999), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 4, 210, 29, 205, 139, 148, 0, 195, 80, 137, 59}, 30, 5, float64(1234500009876.50000), 15, nil}, - {[]byte{137, 59, 154, 201, 255, 59, 154, 201, 255, 59, 154, 201, 255, 99, 129, 134}, 30, 20, float64(9999999999.99999999999999999999), 14, nil}, - {[]byte{129, 134, 159, 59, 154, 201, 255, 59, 154, 201, 255, 0, 152, 150, 127, 30, 0}, 30, 25, float64(99999.9999999999999999999999999), 15, nil}, - {[]byte{227, 99, 129, 134}, 4, 2, float64(99.99), 2, nil}, - {[]byte{129, 134, 159, 167, 15}, 5, 0, float64(99999), 3, nil}, - {[]byte{167, 15, 3, 231, 133, 245}, 7, 3, float64(9999.999), 4, nil}, - {[]byte{133, 245, 224, 255, 99, 128, 152}, 10, 2, float64(99999999.99), 5, nil}, - {[]byte{128, 152, 150, 127, 3, 231, 128, 6}, 10, 3, float64(9999999.999), 6, nil}, - {[]byte{128, 6, 159, 107, 199, 11, 137, 59}, 13, 2, float64(111111111.11), 6, nil}, - {[]byte{137, 59, 154, 201, 255, 1, 134, 159, 128, 6}, 15, 14, float64(9.99999999999999), 8, nil}, - {[]byte{128, 6, 159, 107, 199, 6, 142, 119, 128, 0, 128, 0}, 20, 10, float64(111111111.1100000000), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 6, 159, 107, 199, 0, 42, 248, 128, 6}, 30, 5, float64(111111111.11000), 15, nil}, - {[]byte{128, 6, 159, 107, 199, 6, 142, 119, 128, 0, 0, 0, 0, 0, 129, 134}, 30, 20, float64(111111111.11000000000000000000), 14, nil}, - {[]byte{129, 134, 159, 59, 154, 201, 255, 59, 154, 201, 255, 0, 152, 150, 127, 10, 0}, 30, 25, float64(99999.9999999999999999999999999), 15, nil}, - {[]byte{128, 1, 128, 0}, 4, 2, float64(0.01), 2, nil}, - {[]byte{128, 0, 0, 128, 0}, 5, 0, float64(0), 3, nil}, - {[]byte{128, 0, 0, 10, 128, 0}, 7, 3, float64(0.010), 4, nil}, - {[]byte{128, 0, 0, 0, 1, 128, 0}, 10, 2, float64(0.01), 5, nil}, - {[]byte{128, 0, 0, 0, 0, 10, 128, 0}, 10, 3, float64(0.010), 6, nil}, - {[]byte{128, 0, 0, 0, 0, 1, 128, 0}, 13, 2, float64(0.01), 6, nil}, - {[]byte{128, 0, 152, 150, 128, 0, 0, 0, 128, 0}, 15, 14, float64(0.01000000000000), 8, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 152, 150, 128, 0, 128, 0}, 20, 10, float64(0.0100000000), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 232, 128, 0}, 30, 5, float64(0.01000), 15, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 152, 150, 128, 0, 0, 0, 0, 0, 128, 0}, 30, 20, float64(0.01000000000000000000), 14, nil}, - {[]byte{128, 0, 0, 0, 152, 150, 128, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0}, 30, 25, float64(0.0100000000000000000000000), 15, nil}, - {[]byte{227, 99, 128, 0}, 4, 2, float64(99.99), 2, nil}, - {[]byte{128, 0, 123, 128, 123}, 5, 0, float64(123), 3, nil}, - {[]byte{128, 123, 1, 144, 128, 0}, 7, 3, float64(123.400), 4, nil}, - {[]byte{128, 0, 0, 123, 40, 128, 0}, 10, 2, float64(123.40), 5, nil}, - {[]byte{128, 0, 0, 123, 1, 144, 128, 0}, 10, 3, float64(123.400), 6, nil}, - {[]byte{128, 0, 0, 0, 123, 40, 137, 59}, 13, 2, float64(123.40), 6, nil}, - {[]byte{137, 59, 154, 201, 255, 1, 134, 159, 128, 0}, 15, 14, float64(9.99999999999999), 8, nil}, - {[]byte{128, 0, 0, 0, 123, 23, 215, 132, 0, 0, 128, 0}, 20, 10, float64(123.4000000000), 10, nil}, - {[]byte{128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 156, 64, 128, 0}, 30, 5, float64(123.40000), 15, nil}, - {[]byte{128, 0, 0, 0, 123, 23, 215, 132, 0, 0, 0, 0, 0, 0, 128, 0}, 30, 20, float64(123.40000000000000000000), 14, nil}, - {[]byte{128, 0, 123, 23, 215, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0}, 30, 25, float64(123.4000000000000000000000000), 15, nil}, - {[]byte{28, 156, 127, 253}, 4, 2, float64(-99.99), 2, nil}, - {[]byte{127, 253, 204, 125, 205}, 5, 0, float64(-563), 3, nil}, - {[]byte{125, 205, 253, 187, 127, 255}, 7, 3, float64(-562.580), 4, nil}, - {[]byte{127, 255, 253, 205, 197, 127, 255}, 10, 2, float64(-562.58), 5, nil}, - {[]byte{127, 255, 253, 205, 253, 187, 127, 255}, 10, 3, float64(-562.580), 6, nil}, - {[]byte{127, 255, 255, 253, 205, 197, 118, 196}, 13, 2, float64(-562.58), 6, nil}, - {[]byte{118, 196, 101, 54, 0, 254, 121, 96, 127, 255}, 15, 14, float64(-9.99999999999999), 8, nil}, - {[]byte{127, 255, 255, 253, 205, 221, 109, 230, 255, 255, 127, 255}, 20, 10, float64(-562.5800000000), 10, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 205, 255, 29, 111, 127, 255}, 30, 5, float64(-562.58000), 15, nil}, - {[]byte{127, 255, 255, 253, 205, 221, 109, 230, 255, 255, 255, 255, 255, 255, 127, 253}, 30, 20, float64(-562.58000000000000000000), 14, nil}, - {[]byte{127, 253, 205, 221, 109, 230, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0}, 30, 25, float64(-562.5800000000000000000000000), 15, nil}, - {[]byte{28, 156, 127, 241}, 4, 2, float64(-99.99), 2, nil}, - {[]byte{127, 241, 140, 113, 140}, 5, 0, float64(-3699), 3, nil}, - {[]byte{113, 140, 255, 245, 127, 255}, 7, 3, float64(-3699.010), 4, nil}, - {[]byte{127, 255, 241, 140, 254, 127, 255}, 10, 2, float64(-3699.01), 5, nil}, - {[]byte{127, 255, 241, 140, 255, 245, 127, 255}, 10, 3, float64(-3699.010), 6, nil}, - {[]byte{127, 255, 255, 241, 140, 254, 118, 196}, 13, 2, float64(-3699.01), 6, nil}, - {[]byte{118, 196, 101, 54, 0, 254, 121, 96, 127, 255}, 15, 14, float64(-9.99999999999999), 8, nil}, - {[]byte{127, 255, 255, 241, 140, 255, 103, 105, 127, 255, 127, 255}, 20, 10, float64(-3699.0100000000), 10, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 140, 255, 252, 23, 127, 255}, 30, 5, float64(-3699.01000), 15, nil}, - {[]byte{127, 255, 255, 241, 140, 255, 103, 105, 127, 255, 255, 255, 255, 255, 127, 241}, 30, 20, float64(-3699.01000000000000000000), 14, nil}, - {[]byte{127, 241, 140, 255, 103, 105, 127, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0}, 30, 25, float64(-3699.0100000000000000000000000), 15, nil}, - {[]byte{28, 156, 127, 248}, 4, 2, float64(-99.99), 2, nil}, - {[]byte{127, 248, 99, 120, 99}, 5, 0, float64(-1948), 3, nil}, - {[]byte{120, 99, 255, 115, 127, 255}, 7, 3, float64(-1948.140), 4, nil}, - {[]byte{127, 255, 248, 99, 241, 127, 255}, 10, 2, float64(-1948.14), 5, nil}, - {[]byte{127, 255, 248, 99, 255, 115, 127, 255}, 10, 3, float64(-1948.140), 6, nil}, - {[]byte{127, 255, 255, 248, 99, 241, 118, 196}, 13, 2, float64(-1948.14), 6, nil}, - {[]byte{118, 196, 101, 54, 0, 254, 121, 96, 127, 255}, 15, 14, float64(-9.99999999999999), 8, nil}, - {[]byte{127, 255, 255, 248, 99, 247, 167, 196, 255, 255, 127, 255}, 20, 10, float64(-1948.1400000000), 10, nil}, - {[]byte{127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 99, 255, 201, 79, 127, 255}, 30, 5, float64(-1948.14000), 15, nil}, - {[]byte{127, 255, 255, 248, 99, 247, 167, 196, 255, 255, 255, 255, 255, 255, 127, 248}, 30, 20, float64(-1948.14000000000000000000), 14, nil}, - {[]byte{127, 248, 99, 247, 167, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0}, 30, 25, float64(-1948.1400000000000000000000000), 15, nil}, - } - for i, tc := range testcases { - value, pos, err := decodeDecimal(tc.Data, tc.Precision, tc.Decimals) - c.Assert(value, DecodeDecimalsEquals, pos, err, tc.Expected, tc.ExpectedPos, tc.ExpectedErr, i) - } -} - -func (_ *testDecodeSuite) TestLastNull(c *C) { - // Table format: - // desc funnytable; - // +-------+------------+------+-----+---------+-------+ - // | Field | Type | Null | Key | Default | Extra | - // +-------+------------+------+-----+---------+-------+ - // | value | tinyint(4) | YES | | NULL | | - // +-------+------------+------+-----+---------+-------+ - - // insert into funnytable values (1), (2), (null); - // insert into funnytable values (1), (null), (2); - // all must get 3 rows - - tableMapEventData := []byte("\xd3\x01\x00\x00\x00\x00\x01\x00\x04test\x00\nfunnytable\x00\x01\x01\x00\x01") - - tableMapEvent := new(TableMapEvent) - tableMapEvent.tableIDSize = 6 - err := tableMapEvent.Decode(tableMapEventData) - c.Assert(err, IsNil) - - rows := new(RowsEvent) - rows.tableIDSize = 6 - rows.tables = make(map[uint64]*TableMapEvent) - rows.tables[tableMapEvent.TableID] = tableMapEvent - rows.Version = 2 - - tbls := [][]byte{ - []byte("\xd3\x01\x00\x00\x00\x00\x01\x00\x02\x00\x01\xff\xfe\x01\xff\xfe\x02"), - []byte("\xd3\x01\x00\x00\x00\x00\x01\x00\x02\x00\x01\xff\xfe\x01\xfe\x02\xff"), - } - - for _, tbl := range tbls { - rows.Rows = nil - err = rows.Decode(tbl) - c.Assert(err, IsNil) - c.Assert(rows.Rows, HasLen, 3) - } -} - -func (_ *testDecodeSuite) TestParseRowPanic(c *C) { - tableMapEvent := new(TableMapEvent) - tableMapEvent.tableIDSize = 6 - tableMapEvent.TableID = 1810 - tableMapEvent.ColumnType = []byte{3, 15, 15, 15, 9, 15, 15, 252, 3, 3, 3, 15, 3, 3, 3, 15, 3, 15, 1, 15, 3, 1, 252, 15, 15, 15} - tableMapEvent.ColumnMeta = []uint16{0, 108, 60, 765, 0, 765, 765, 4, 0, 0, 0, 765, 0, 0, 0, 3, 0, 3, 0, 765, 0, 0, 2, 108, 108, 108} - - rows := new(RowsEvent) - rows.tableIDSize = 6 - rows.tables = make(map[uint64]*TableMapEvent) - rows.tables[tableMapEvent.TableID] = tableMapEvent - rows.Version = 2 - - data := []byte{18, 7, 0, 0, 0, 0, 1, 0, 2, 0, 26, 1, 1, 16, 252, 248, 142, 63, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0} - - err := rows.Decode(data) - c.Assert(err, IsNil) - c.Assert(rows.Rows[0][0], Equals, int32(16270)) -} - -func (_ *testDecodeSuite) TestParseJson(c *C) { - // Table format: - // mysql> desc t10; - // +-------+---------------+------+-----+---------+-------+ - // | Field | Type | Null | Key | Default | Extra | - // +-------+---------------+------+-----+---------+-------+ - // | c1 | json | YES | | NULL | | - // | c2 | decimal(10,0) | YES | | NULL | | - // +-------+---------------+------+-----+---------+-------+ - - // CREATE TABLE `t10` ( - // `c1` json DEFAULT NULL, - // `c2` decimal(10,0) - // ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - // INSERT INTO `t10` (`c2`) VALUES (1); - // INSERT INTO `t10` (`c1`, `c2`) VALUES ('{"key1": "value1", "key2": "value2"}', 1); - - tableMapEventData := []byte("m\x00\x00\x00\x00\x00\x01\x00\x04test\x00\x03t10\x00\x02\xf5\xf6\x03\x04\n\x00\x03") - - tableMapEvent := new(TableMapEvent) - tableMapEvent.tableIDSize = 6 - err := tableMapEvent.Decode(tableMapEventData) - c.Assert(err, IsNil) - - rows := new(RowsEvent) - rows.tableIDSize = 6 - rows.tables = make(map[uint64]*TableMapEvent) - rows.tables[tableMapEvent.TableID] = tableMapEvent - rows.Version = 2 - - tbls := [][]byte{ - []byte("m\x00\x00\x00\x00\x00\x01\x00\x02\x00\x02\xff\xfd\x80\x00\x00\x00\x01"), - []byte("m\x00\x00\x00\x00\x00\x01\x00\x02\x00\x02\xff\xfc)\x00\x00\x00\x00\x02\x00(\x00\x12\x00\x04\x00\x16\x00\x04\x00\f\x1a\x00\f!\x00key1key2\x06value1\x06value2\x80\x00\x00\x00\x01"), - } - - for _, tbl := range tbls { - rows.Rows = nil - err = rows.Decode(tbl) - c.Assert(err, IsNil) - c.Assert(rows.Rows[0][1], Equals, float64(1)) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/schema/schema.go b/vendor/github.com/siddontang/go-mysql/schema/schema.go deleted file mode 100644 index 86d2128..0000000 --- a/vendor/github.com/siddontang/go-mysql/schema/schema.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2012, Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package schema - -import ( - "fmt" - "strings" - - "github.com/juju/errors" - "github.com/siddontang/go-mysql/mysql" -) - -const ( - TYPE_NUMBER = iota + 1 // tinyint, smallint, mediumint, int, bigint, year - TYPE_FLOAT // float, double - TYPE_ENUM // enum - TYPE_SET // set - TYPE_STRING // other - TYPE_DATETIME // datetime - TYPE_TIMESTAMP // timestamp - TYPE_DATE // date - TYPE_TIME // time - TYPE_BIT // bit - TYPE_JSON // json -) - -type TableColumn struct { - Name string - Type int - IsAuto bool - EnumValues []string - SetValues []string -} - -type Index struct { - Name string - Columns []string - Cardinality []uint64 -} - -type Table struct { - Schema string - Name string - - Columns []TableColumn - Indexes []*Index - PKColumns []int -} - -func (ta *Table) String() string { - return fmt.Sprintf("%s.%s", ta.Schema, ta.Name) -} - -func (ta *Table) AddColumn(name string, columnType string, extra string) { - index := len(ta.Columns) - ta.Columns = append(ta.Columns, TableColumn{Name: name}) - - if strings.Contains(columnType, "int") || strings.HasPrefix(columnType, "year") { - ta.Columns[index].Type = TYPE_NUMBER - } else if strings.HasPrefix(columnType, "float") || - strings.HasPrefix(columnType, "double") || - strings.HasPrefix(columnType, "decimal") { - ta.Columns[index].Type = TYPE_FLOAT - } else if strings.HasPrefix(columnType, "enum") { - ta.Columns[index].Type = TYPE_ENUM - ta.Columns[index].EnumValues = strings.Split(strings.Replace( - strings.TrimSuffix( - strings.TrimPrefix( - columnType, "enum("), - ")"), - "'", "", -1), - ",") - } else if strings.HasPrefix(columnType, "set") { - ta.Columns[index].Type = TYPE_SET - ta.Columns[index].SetValues = strings.Split(strings.Replace( - strings.TrimSuffix( - strings.TrimPrefix( - columnType, "set("), - ")"), - "'", "", -1), - ",") - } else if strings.HasPrefix(columnType, "datetime") { - ta.Columns[index].Type = TYPE_DATETIME - } else if strings.HasPrefix(columnType, "timestamp") { - ta.Columns[index].Type = TYPE_TIMESTAMP - } else if strings.HasPrefix(columnType, "time") { - ta.Columns[index].Type = TYPE_TIME - } else if "date" == columnType { - ta.Columns[index].Type = TYPE_DATE - } else if strings.HasPrefix(columnType, "bit") { - ta.Columns[index].Type = TYPE_BIT - } else if strings.HasPrefix(columnType, "json") { - ta.Columns[index].Type = TYPE_JSON - } else { - ta.Columns[index].Type = TYPE_STRING - } - - if extra == "auto_increment" { - ta.Columns[index].IsAuto = true - } -} - -func (ta *Table) FindColumn(name string) int { - for i, col := range ta.Columns { - if col.Name == name { - return i - } - } - return -1 -} - -func (ta *Table) GetPKColumn(index int) *TableColumn { - return &ta.Columns[ta.PKColumns[index]] -} - -func (ta *Table) AddIndex(name string) (index *Index) { - index = NewIndex(name) - ta.Indexes = append(ta.Indexes, index) - return index -} - -func NewIndex(name string) *Index { - return &Index{name, make([]string, 0, 8), make([]uint64, 0, 8)} -} - -func (idx *Index) AddColumn(name string, cardinality uint64) { - idx.Columns = append(idx.Columns, name) - if cardinality == 0 { - cardinality = uint64(len(idx.Cardinality) + 1) - } - idx.Cardinality = append(idx.Cardinality, cardinality) -} - -func (idx *Index) FindColumn(name string) int { - for i, colName := range idx.Columns { - if name == colName { - return i - } - } - return -1 -} - -func NewTable(conn mysql.Executer, schema string, name string) (*Table, error) { - ta := &Table{ - Schema: schema, - Name: name, - Columns: make([]TableColumn, 0, 16), - Indexes: make([]*Index, 0, 8), - } - - if err := ta.fetchColumns(conn); err != nil { - return nil, err - } - - if err := ta.fetchIndexes(conn); err != nil { - return nil, err - } - - return ta, nil -} - -func (ta *Table) fetchColumns(conn mysql.Executer) error { - r, err := conn.Execute(fmt.Sprintf("describe `%s`.`%s`", ta.Schema, ta.Name)) - if err != nil { - return errors.Trace(err) - } - - for i := 0; i < r.RowNumber(); i++ { - name, _ := r.GetString(i, 0) - colType, _ := r.GetString(i, 1) - extra, _ := r.GetString(i, 5) - - ta.AddColumn(name, colType, extra) - } - - return nil -} - -func (ta *Table) fetchIndexes(conn mysql.Executer) error { - r, err := conn.Execute(fmt.Sprintf("show index from `%s`.`%s`", ta.Schema, ta.Name)) - if err != nil { - return errors.Trace(err) - } - var currentIndex *Index - currentName := "" - - for i := 0; i < r.RowNumber(); i++ { - indexName, _ := r.GetString(i, 2) - if currentName != indexName { - currentIndex = ta.AddIndex(indexName) - currentName = indexName - } - cardinality, _ := r.GetUint(i, 6) - colName, _ := r.GetString(i, 4) - currentIndex.AddColumn(colName, cardinality) - } - - if len(ta.Indexes) == 0 { - return nil - } - - pkIndex := ta.Indexes[0] - if pkIndex.Name != "PRIMARY" { - return nil - } - - ta.PKColumns = make([]int, len(pkIndex.Columns)) - for i, pkCol := range pkIndex.Columns { - ta.PKColumns[i] = ta.FindColumn(pkCol) - } - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/schema/schema_test.go b/vendor/github.com/siddontang/go-mysql/schema/schema_test.go deleted file mode 100644 index 327c622..0000000 --- a/vendor/github.com/siddontang/go-mysql/schema/schema_test.go +++ /dev/null @@ -1,84 +0,0 @@ -package schema - -import ( - "flag" - "fmt" - "testing" - - . "github.com/pingcap/check" - "github.com/siddontang/go-mysql/client" -) - -// use docker mysql for test -var host = flag.String("host", "127.0.0.1", "MySQL host") - -func Test(t *testing.T) { - TestingT(t) -} - -type schemaTestSuite struct { - conn *client.Conn -} - -var _ = Suite(&schemaTestSuite{}) - -func (s *schemaTestSuite) SetUpSuite(c *C) { - var err error - s.conn, err = client.Connect(fmt.Sprintf("%s:%d", *host, 3306), "root", "", "test") - c.Assert(err, IsNil) -} - -func (s *schemaTestSuite) TearDownSuite(c *C) { - if s.conn != nil { - s.conn.Close() - } -} - -func (s *schemaTestSuite) TestSchema(c *C) { - _, err := s.conn.Execute(`DROP TABLE IF EXISTS schema_test`) - c.Assert(err, IsNil) - - str := ` - CREATE TABLE IF NOT EXISTS schema_test ( - id INT, - id1 INT, - id2 INT, - name VARCHAR(256), - e ENUM("a", "b", "c"), - se SET('a', 'b', 'c'), - f FLOAT, - d DECIMAL(2, 1), - PRIMARY KEY(id2, id), - UNIQUE (id1), - INDEX name_idx (name) - ) ENGINE = INNODB; - ` - - _, err = s.conn.Execute(str) - c.Assert(err, IsNil) - - ta, err := NewTable(s.conn, "test", "schema_test") - c.Assert(err, IsNil) - - c.Assert(ta.Columns, HasLen, 8) - c.Assert(ta.Indexes, HasLen, 3) - c.Assert(ta.PKColumns, DeepEquals, []int{2, 0}) - c.Assert(ta.Indexes[0].Columns, HasLen, 2) - c.Assert(ta.Indexes[0].Name, Equals, "PRIMARY") - c.Assert(ta.Indexes[2].Name, Equals, "name_idx") - c.Assert(ta.Columns[4].EnumValues, DeepEquals, []string{"a", "b", "c"}) - c.Assert(ta.Columns[5].SetValues, DeepEquals, []string{"a", "b", "c"}) - c.Assert(ta.Columns[7].Type, Equals, TYPE_FLOAT) -} - -func (s *schemaTestSuite) TestQuoteSchema(c *C) { - str := "CREATE TABLE IF NOT EXISTS `a-b_test` (`a.b` INT) ENGINE = INNODB" - - _, err := s.conn.Execute(str) - c.Assert(err, IsNil) - - ta, err := NewTable(s.conn, "test", "a-b_test") - c.Assert(err, IsNil) - - c.Assert(ta.Columns[0].Name, Equals, "a.b") -} diff --git a/vendor/github.com/siddontang/go-mysql/server/auth.go b/vendor/github.com/siddontang/go-mysql/server/auth.go deleted file mode 100644 index b66ea4e..0000000 --- a/vendor/github.com/siddontang/go-mysql/server/auth.go +++ /dev/null @@ -1,119 +0,0 @@ -package server - -import ( - "bytes" - "encoding/binary" - - . "github.com/siddontang/go-mysql/mysql" -) - -func (c *Conn) writeInitialHandshake() error { - capability := CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | - CLIENT_CONNECT_WITH_DB | CLIENT_PROTOCOL_41 | - CLIENT_TRANSACTIONS | CLIENT_SECURE_CONNECTION - - data := make([]byte, 4, 128) - - //min version 10 - data = append(data, 10) - - //server version[00] - data = append(data, ServerVersion...) - data = append(data, 0) - - //connection id - data = append(data, byte(c.connectionID), byte(c.connectionID>>8), byte(c.connectionID>>16), byte(c.connectionID>>24)) - - //auth-plugin-data-part-1 - data = append(data, c.salt[0:8]...) - - //filter [00] - data = append(data, 0) - - //capability flag lower 2 bytes, using default capability here - data = append(data, byte(capability), byte(capability>>8)) - - //charset, utf-8 default - data = append(data, uint8(DEFAULT_COLLATION_ID)) - - //status - data = append(data, byte(c.status), byte(c.status>>8)) - - //below 13 byte may not be used - //capability flag upper 2 bytes, using default capability here - data = append(data, byte(capability>>16), byte(capability>>24)) - - //filter [0x15], for wireshark dump, value is 0x15 - data = append(data, 0x15) - - //reserved 10 [00] - data = append(data, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - - //auth-plugin-data-part-2 - data = append(data, c.salt[8:]...) - - //filter [00] - data = append(data, 0) - - return c.WritePacket(data) -} - -func (c *Conn) readHandshakeResponse(password string) error { - data, err := c.ReadPacket() - - if err != nil { - return err - } - - pos := 0 - - //capability - c.capability = binary.LittleEndian.Uint32(data[:4]) - pos += 4 - - //skip max packet size - pos += 4 - - //charset, skip, if you want to use another charset, use set names - //c.collation = CollationId(data[pos]) - pos++ - - //skip reserved 23[00] - pos += 23 - - //user name - user := string(data[pos : pos+bytes.IndexByte(data[pos:], 0)]) - pos += len(user) + 1 - - if c.user != user { - return NewDefaultError(ER_NO_SUCH_USER, user, c.RemoteAddr().String()) - } - - //auth length and auth - authLen := int(data[pos]) - pos++ - auth := data[pos : pos+authLen] - - checkAuth := CalcPassword(c.salt, []byte(password)) - - if !bytes.Equal(auth, checkAuth) { - return NewDefaultError(ER_ACCESS_DENIED_ERROR, c.RemoteAddr().String(), c.user, "Yes") - } - - pos += authLen - - if c.capability|CLIENT_CONNECT_WITH_DB > 0 { - if len(data[pos:]) == 0 { - return nil - } - - db := string(data[pos : pos+bytes.IndexByte(data[pos:], 0)]) - pos += len(db) + 1 - - if err = c.h.UseDB(db); err != nil { - return err - } - } - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/server/command.go b/vendor/github.com/siddontang/go-mysql/server/command.go deleted file mode 100644 index fb7dcdf..0000000 --- a/vendor/github.com/siddontang/go-mysql/server/command.go +++ /dev/null @@ -1,151 +0,0 @@ -package server - -import ( - "bytes" - "fmt" - - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go/hack" -) - -type Handler interface { - //handle COM_INIT_DB command, you can check whether the dbName is valid, or other. - UseDB(dbName string) error - //handle COM_QUERY comamnd, like SELECT, INSERT, UPDATE, etc... - //If Result has a Resultset (SELECT, SHOW, etc...), we will send this as the repsonse, otherwise, we will send Result - HandleQuery(query string) (*Result, error) - //handle COM_FILED_LIST command - HandleFieldList(table string, fieldWildcard string) ([]*Field, error) - //handle COM_STMT_PREPARE, params is the param number for this statement, columns is the column number - //context will be used later for statement execute - HandleStmtPrepare(query string) (params int, columns int, context interface{}, err error) - //handle COM_STMT_EXECUTE, context is the previous one set in prepare - //query is the statement prepare query, and args is the params for this statement - HandleStmtExecute(context interface{}, query string, args []interface{}) (*Result, error) - //handle COM_STMT_CLOSE, context is the previous one set in prepare - //this handler has no response - HandleStmtClose(context interface{}) error -} - -func (c *Conn) HandleCommand() error { - if c.Conn == nil { - return fmt.Errorf("connection closed") - } - - data, err := c.ReadPacket() - if err != nil { - c.Close() - c.Conn = nil - return err - } - - v := c.dispatch(data) - - err = c.writeValue(v) - - if c.Conn != nil { - c.ResetSequence() - } - - if err != nil { - c.Close() - c.Conn = nil - } - return err -} - -func (c *Conn) dispatch(data []byte) interface{} { - cmd := data[0] - data = data[1:] - - switch cmd { - case COM_QUIT: - c.Close() - c.Conn = nil - return noResponse{} - case COM_QUERY: - if r, err := c.h.HandleQuery(hack.String(data)); err != nil { - return err - } else { - return r - } - case COM_PING: - return nil - case COM_INIT_DB: - if err := c.h.UseDB(hack.String(data)); err != nil { - return err - } else { - return nil - } - case COM_FIELD_LIST: - index := bytes.IndexByte(data, 0x00) - table := hack.String(data[0:index]) - wildcard := hack.String(data[index+1:]) - - if fs, err := c.h.HandleFieldList(table, wildcard); err != nil { - return err - } else { - return fs - } - case COM_STMT_PREPARE: - c.stmtID++ - st := new(Stmt) - st.ID = c.stmtID - st.Query = hack.String(data) - var err error - if st.Params, st.Columns, st.Context, err = c.h.HandleStmtPrepare(st.Query); err != nil { - return err - } else { - st.ResetParams() - c.stmts[c.stmtID] = st - return st - } - case COM_STMT_EXECUTE: - if r, err := c.handleStmtExecute(data); err != nil { - return err - } else { - return r - } - case COM_STMT_CLOSE: - c.handleStmtClose(data) - return noResponse{} - case COM_STMT_SEND_LONG_DATA: - c.handleStmtSendLongData(data) - return noResponse{} - case COM_STMT_RESET: - if r, err := c.handleStmtReset(data); err != nil { - return err - } else { - return r - } - default: - msg := fmt.Sprintf("command %d is not supported now", cmd) - return NewError(ER_UNKNOWN_ERROR, msg) - } - - return fmt.Errorf("command %d is not handled correctly", cmd) -} - -type EmptyHandler struct { -} - -func (h EmptyHandler) UseDB(dbName string) error { - return nil -} -func (h EmptyHandler) HandleQuery(query string) (*Result, error) { - return nil, fmt.Errorf("not supported now") -} - -func (h EmptyHandler) HandleFieldList(table string, fieldWildcard string) ([]*Field, error) { - return nil, fmt.Errorf("not supported now") -} -func (h EmptyHandler) HandleStmtPrepare(query string) (int, int, interface{}, error) { - return 0, 0, nil, fmt.Errorf("not supported now") -} -func (h EmptyHandler) HandleStmtExecute(context interface{}, query string, args []interface{}) (*Result, error) { - return nil, fmt.Errorf("not supported now") -} - -func (h EmptyHandler) HandleStmtClose(context interface{}) error { - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/server/conn.go b/vendor/github.com/siddontang/go-mysql/server/conn.go deleted file mode 100644 index d6ea846..0000000 --- a/vendor/github.com/siddontang/go-mysql/server/conn.go +++ /dev/null @@ -1,113 +0,0 @@ -package server - -import ( - "net" - "sync/atomic" - - . "github.com/siddontang/go-mysql/mysql" - "github.com/siddontang/go-mysql/packet" - "github.com/siddontang/go/sync2" -) - -/* - Conn acts like a MySQL server connection, you can use MySQL client to communicate with it. -*/ -type Conn struct { - *packet.Conn - - capability uint32 - - connectionID uint32 - - status uint16 - - user string - - salt []byte - - h Handler - - stmts map[uint32]*Stmt - stmtID uint32 - - closed sync2.AtomicBool -} - -var baseConnID uint32 = 10000 - -func NewConn(conn net.Conn, user string, password string, h Handler) (*Conn, error) { - c := new(Conn) - - c.h = h - - c.user = user - c.Conn = packet.NewConn(conn) - - c.connectionID = atomic.AddUint32(&baseConnID, 1) - - c.stmts = make(map[uint32]*Stmt) - - c.salt, _ = RandomBuf(20) - - c.closed.Set(false) - - if err := c.handshake(password); err != nil { - c.Close() - return nil, err - } - - return c, nil -} - -func (c *Conn) handshake(password string) error { - if err := c.writeInitialHandshake(); err != nil { - return err - } - - if err := c.readHandshakeResponse(password); err != nil { - c.writeError(err) - - return err - } - - if err := c.writeOK(nil); err != nil { - return err - } - - c.ResetSequence() - - return nil -} - -func (c *Conn) Close() { - c.closed.Set(true) - c.Conn.Close() -} - -func (c *Conn) Closed() bool { - return c.closed.Get() -} - -func (c *Conn) GetUser() string { - return c.user -} - -func (c *Conn) ConnectionID() uint32 { - return c.connectionID -} - -func (c *Conn) IsAutoCommit() bool { - return c.status&SERVER_STATUS_AUTOCOMMIT > 0 -} - -func (c *Conn) IsInTransaction() bool { - return c.status&SERVER_STATUS_IN_TRANS > 0 -} - -func (c *Conn) SetInTransaction() { - c.status |= SERVER_STATUS_IN_TRANS -} - -func (c *Conn) ClearInTransaction() { - c.status &= ^SERVER_STATUS_IN_TRANS -} diff --git a/vendor/github.com/siddontang/go-mysql/server/resp.go b/vendor/github.com/siddontang/go-mysql/server/resp.go deleted file mode 100644 index 1123032..0000000 --- a/vendor/github.com/siddontang/go-mysql/server/resp.go +++ /dev/null @@ -1,142 +0,0 @@ -package server - -import ( - "fmt" - - . "github.com/siddontang/go-mysql/mysql" -) - -func (c *Conn) writeOK(r *Result) error { - if r == nil { - r = &Result{} - } - - r.Status |= c.status - - data := make([]byte, 4, 32) - - data = append(data, OK_HEADER) - - data = append(data, PutLengthEncodedInt(r.AffectedRows)...) - data = append(data, PutLengthEncodedInt(r.InsertId)...) - - if c.capability&CLIENT_PROTOCOL_41 > 0 { - data = append(data, byte(r.Status), byte(r.Status>>8)) - data = append(data, 0, 0) - } - - return c.WritePacket(data) -} - -func (c *Conn) writeError(e error) error { - var m *MyError - var ok bool - if m, ok = e.(*MyError); !ok { - m = NewError(ER_UNKNOWN_ERROR, e.Error()) - } - - data := make([]byte, 4, 16+len(m.Message)) - - data = append(data, ERR_HEADER) - data = append(data, byte(m.Code), byte(m.Code>>8)) - - if c.capability&CLIENT_PROTOCOL_41 > 0 { - data = append(data, '#') - data = append(data, m.State...) - } - - data = append(data, m.Message...) - - return c.WritePacket(data) -} - -func (c *Conn) writeEOF() error { - data := make([]byte, 4, 9) - - data = append(data, EOF_HEADER) - if c.capability&CLIENT_PROTOCOL_41 > 0 { - data = append(data, 0, 0) - data = append(data, byte(c.status), byte(c.status>>8)) - } - - return c.WritePacket(data) -} - -func (c *Conn) writeResultset(r *Resultset) error { - columnLen := PutLengthEncodedInt(uint64(len(r.Fields))) - - data := make([]byte, 4, 1024) - - data = append(data, columnLen...) - if err := c.WritePacket(data); err != nil { - return err - } - - for _, v := range r.Fields { - data = data[0:4] - data = append(data, v.Dump()...) - if err := c.WritePacket(data); err != nil { - return err - } - } - - if err := c.writeEOF(); err != nil { - return err - } - - for _, v := range r.RowDatas { - data = data[0:4] - data = append(data, v...) - if err := c.WritePacket(data); err != nil { - return err - } - } - - if err := c.writeEOF(); err != nil { - return err - } - - return nil -} - -func (c *Conn) writeFieldList(fs []*Field) error { - data := make([]byte, 4, 1024) - - for _, v := range fs { - data = data[0:4] - data = append(data, v.Dump()...) - if err := c.WritePacket(data); err != nil { - return err - } - } - - if err := c.writeEOF(); err != nil { - return err - } - return nil -} - -type noResponse struct{} - -func (c *Conn) writeValue(value interface{}) error { - switch v := value.(type) { - case noResponse: - return nil - case error: - return c.writeError(v) - case nil: - return c.writeOK(nil) - case *Result: - if v != nil && v.Resultset != nil { - return c.writeResultset(v.Resultset) - } else { - return c.writeOK(v) - } - case []*Field: - return c.writeFieldList(v) - case *Stmt: - return c.writePrepare(v) - default: - return fmt.Errorf("invalid response type %T", value) - } -} diff --git a/vendor/github.com/siddontang/go-mysql/server/server_test.go b/vendor/github.com/siddontang/go-mysql/server/server_test.go deleted file mode 100644 index 54bcf05..0000000 --- a/vendor/github.com/siddontang/go-mysql/server/server_test.go +++ /dev/null @@ -1,230 +0,0 @@ -package server - -import ( - "database/sql" - "flag" - "fmt" - "net" - "strings" - "testing" - "time" - - _ "github.com/go-sql-driver/mysql" - "github.com/juju/errors" - . "github.com/pingcap/check" - mysql "github.com/siddontang/go-mysql/mysql" -) - -var testAddr = flag.String("addr", "127.0.0.1:4000", "MySQL proxy server address") -var testUser = flag.String("user", "root", "MySQL user") -var testPassword = flag.String("pass", "", "MySQL password") -var testDB = flag.String("db", "test", "MySQL test database") - -func Test(t *testing.T) { - TestingT(t) -} - -type serverTestSuite struct { - db *sql.DB - - l net.Listener -} - -var _ = Suite(&serverTestSuite{}) - -type testHandler struct { - s *serverTestSuite -} - -func (h *testHandler) UseDB(dbName string) error { - return nil -} - -func (h *testHandler) handleQuery(query string, binary bool) (*mysql.Result, error) { - ss := strings.Split(query, " ") - switch strings.ToLower(ss[0]) { - case "select": - var r *mysql.Resultset - var err error - //for handle go mysql driver select @@max_allowed_packet - if strings.Contains(strings.ToLower(query), "max_allowed_packet") { - r, err = mysql.BuildSimpleResultset([]string{"@@max_allowed_packet"}, [][]interface{}{ - []interface{}{mysql.MaxPayloadLen}, - }, binary) - } else { - r, err = mysql.BuildSimpleResultset([]string{"a", "b"}, [][]interface{}{ - []interface{}{1, "hello world"}, - }, binary) - } - - if err != nil { - return nil, errors.Trace(err) - } else { - return &mysql.Result{0, 0, 0, r}, nil - } - case "insert": - return &mysql.Result{0, 1, 0, nil}, nil - case "delete": - return &mysql.Result{0, 0, 1, nil}, nil - case "update": - return &mysql.Result{0, 0, 1, nil}, nil - case "replace": - return &mysql.Result{0, 0, 1, nil}, nil - default: - return nil, fmt.Errorf("invalid query %s", query) - } - - return nil, nil -} - -func (h *testHandler) HandleQuery(query string) (*mysql.Result, error) { - return h.handleQuery(query, false) -} - -func (h *testHandler) HandleFieldList(table string, fieldWildcard string) ([]*mysql.Field, error) { - return nil, nil -} -func (h *testHandler) HandleStmtPrepare(sql string) (params int, columns int, ctx interface{}, err error) { - ss := strings.Split(sql, " ") - switch strings.ToLower(ss[0]) { - case "select": - params = 1 - columns = 2 - case "insert": - params = 2 - columns = 0 - case "replace": - params = 2 - columns = 0 - case "update": - params = 1 - columns = 0 - case "delete": - params = 1 - columns = 0 - default: - err = fmt.Errorf("invalid prepare %s", sql) - } - return params, columns, nil, err -} - -func (h *testHandler) HandleStmtClose(context interface{}) error { - return nil -} - -func (h *testHandler) HandleStmtExecute(ctx interface{}, query string, args []interface{}) (*mysql.Result, error) { - return h.handleQuery(query, true) -} - -func (s *serverTestSuite) SetUpSuite(c *C) { - var err error - - s.l, err = net.Listen("tcp", *testAddr) - c.Assert(err, IsNil) - - go s.onAccept(c) - - time.Sleep(500 * time.Millisecond) - - s.db, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s", *testUser, *testPassword, *testAddr, *testDB)) - c.Assert(err, IsNil) - - s.db.SetMaxIdleConns(4) -} - -func (s *serverTestSuite) TearDownSuite(c *C) { - if s.db != nil { - s.db.Close() - } - - if s.l != nil { - s.l.Close() - } -} - -func (s *serverTestSuite) onAccept(c *C) { - for { - conn, err := s.l.Accept() - if err != nil { - return - } - - go s.onConn(conn, c) - } -} - -func (s *serverTestSuite) onConn(conn net.Conn, c *C) { - co, err := NewConn(conn, *testUser, *testPassword, &testHandler{s}) - c.Assert(err, IsNil) - - for { - err = co.HandleCommand() - if err != nil { - return - } - } -} - -func (s *serverTestSuite) TestSelect(c *C) { - var a int64 - var b string - - err := s.db.QueryRow("SELECT a, b FROM tbl WHERE id=1").Scan(&a, &b) - c.Assert(err, IsNil) - c.Assert(a, Equals, int64(1)) - c.Assert(b, Equals, "hello world") -} - -func (s *serverTestSuite) TestExec(c *C) { - r, err := s.db.Exec("INSERT INTO tbl (a, b) values (1, \"hello world\")") - c.Assert(err, IsNil) - i, _ := r.LastInsertId() - c.Assert(i, Equals, int64(1)) - - r, err = s.db.Exec("REPLACE INTO tbl (a, b) values (1, \"hello world\")") - c.Assert(err, IsNil) - i, _ = r.RowsAffected() - c.Assert(i, Equals, int64(1)) - - r, err = s.db.Exec("UPDATE tbl SET b = \"abc\" where a = 1") - c.Assert(err, IsNil) - i, _ = r.RowsAffected() - c.Assert(i, Equals, int64(1)) - - r, err = s.db.Exec("DELETE FROM tbl where a = 1") - c.Assert(err, IsNil) - i, _ = r.RowsAffected() - c.Assert(i, Equals, int64(1)) -} - -func (s *serverTestSuite) TestStmtSelect(c *C) { - var a int64 - var b string - - err := s.db.QueryRow("SELECT a, b FROM tbl WHERE id=?", 1).Scan(&a, &b) - c.Assert(err, IsNil) - c.Assert(a, Equals, int64(1)) - c.Assert(b, Equals, "hello world") -} - -func (s *serverTestSuite) TestStmtExec(c *C) { - r, err := s.db.Exec("INSERT INTO tbl (a, b) values (?, ?)", 1, "hello world") - c.Assert(err, IsNil) - i, _ := r.LastInsertId() - c.Assert(i, Equals, int64(1)) - - r, err = s.db.Exec("REPLACE INTO tbl (a, b) values (?, ?)", 1, "hello world") - c.Assert(err, IsNil) - i, _ = r.RowsAffected() - c.Assert(i, Equals, int64(1)) - - r, err = s.db.Exec("UPDATE tbl SET b = \"abc\" where a = ?", 1) - c.Assert(err, IsNil) - i, _ = r.RowsAffected() - c.Assert(i, Equals, int64(1)) - - r, err = s.db.Exec("DELETE FROM tbl where a = ?", 1) - c.Assert(err, IsNil) - i, _ = r.RowsAffected() - c.Assert(i, Equals, int64(1)) -} diff --git a/vendor/github.com/siddontang/go-mysql/server/stmt.go b/vendor/github.com/siddontang/go-mysql/server/stmt.go deleted file mode 100644 index 7a325d7..0000000 --- a/vendor/github.com/siddontang/go-mysql/server/stmt.go +++ /dev/null @@ -1,363 +0,0 @@ -package server - -import ( - "encoding/binary" - "fmt" - "math" - "strconv" - - "github.com/juju/errors" - . "github.com/siddontang/go-mysql/mysql" -) - -var paramFieldData []byte -var columnFieldData []byte - -func init() { - var p = &Field{Name: []byte("?")} - var c = &Field{} - - paramFieldData = p.Dump() - columnFieldData = c.Dump() -} - -type Stmt struct { - ID uint32 - Query string - - Params int - Columns int - - Args []interface{} - - Context interface{} -} - -func (s *Stmt) Rest(params int, columns int, context interface{}) { - s.Params = params - s.Columns = columns - s.Context = context - s.ResetParams() -} - -func (s *Stmt) ResetParams() { - s.Args = make([]interface{}, s.Params) -} - -func (c *Conn) writePrepare(s *Stmt) error { - data := make([]byte, 4, 128) - - //status ok - data = append(data, 0) - //stmt id - data = append(data, Uint32ToBytes(s.ID)...) - //number columns - data = append(data, Uint16ToBytes(uint16(s.Columns))...) - //number params - data = append(data, Uint16ToBytes(uint16(s.Params))...) - //filter [00] - data = append(data, 0) - //warning count - data = append(data, 0, 0) - - if err := c.WritePacket(data); err != nil { - return err - } - - if s.Params > 0 { - for i := 0; i < s.Params; i++ { - data = data[0:4] - data = append(data, []byte(paramFieldData)...) - - if err := c.WritePacket(data); err != nil { - return errors.Trace(err) - } - } - - if err := c.writeEOF(); err != nil { - return err - } - } - - if s.Columns > 0 { - for i := 0; i < s.Columns; i++ { - data = data[0:4] - data = append(data, []byte(columnFieldData)...) - - if err := c.WritePacket(data); err != nil { - return errors.Trace(err) - } - } - - if err := c.writeEOF(); err != nil { - return err - } - - } - return nil -} - -func (c *Conn) handleStmtExecute(data []byte) (*Result, error) { - if len(data) < 9 { - return nil, ErrMalformPacket - } - - pos := 0 - id := binary.LittleEndian.Uint32(data[0:4]) - pos += 4 - - s, ok := c.stmts[id] - if !ok { - return nil, NewDefaultError(ER_UNKNOWN_STMT_HANDLER, - strconv.FormatUint(uint64(id), 10), "stmt_execute") - } - - flag := data[pos] - pos++ - //now we only support CURSOR_TYPE_NO_CURSOR flag - if flag != 0 { - return nil, NewError(ER_UNKNOWN_ERROR, fmt.Sprintf("unsupported flag %d", flag)) - } - - //skip iteration-count, always 1 - pos += 4 - - var nullBitmaps []byte - var paramTypes []byte - var paramValues []byte - - paramNum := s.Params - - if paramNum > 0 { - nullBitmapLen := (s.Params + 7) >> 3 - if len(data) < (pos + nullBitmapLen + 1) { - return nil, ErrMalformPacket - } - nullBitmaps = data[pos : pos+nullBitmapLen] - pos += nullBitmapLen - - //new param bound flag - if data[pos] == 1 { - pos++ - if len(data) < (pos + (paramNum << 1)) { - return nil, ErrMalformPacket - } - - paramTypes = data[pos : pos+(paramNum<<1)] - pos += (paramNum << 1) - - paramValues = data[pos:] - } - - if err := c.bindStmtArgs(s, nullBitmaps, paramTypes, paramValues); err != nil { - return nil, errors.Trace(err) - } - } - - var r *Result - var err error - if r, err = c.h.HandleStmtExecute(s.Context, s.Query, s.Args); err != nil { - return nil, errors.Trace(err) - } - - s.ResetParams() - - return r, nil -} - -func (c *Conn) bindStmtArgs(s *Stmt, nullBitmap, paramTypes, paramValues []byte) error { - args := s.Args - - pos := 0 - - var v []byte - var n int = 0 - var isNull bool - var err error - - for i := 0; i < s.Params; i++ { - if nullBitmap[i>>3]&(1<<(uint(i)%8)) > 0 { - args[i] = nil - continue - } - - tp := paramTypes[i<<1] - isUnsigned := (paramTypes[(i<<1)+1] & 0x80) > 0 - - switch tp { - case MYSQL_TYPE_NULL: - args[i] = nil - continue - - case MYSQL_TYPE_TINY: - if len(paramValues) < (pos + 1) { - return ErrMalformPacket - } - - if isUnsigned { - args[i] = uint8(paramValues[pos]) - } else { - args[i] = int8(paramValues[pos]) - } - - pos++ - continue - - case MYSQL_TYPE_SHORT, MYSQL_TYPE_YEAR: - if len(paramValues) < (pos + 2) { - return ErrMalformPacket - } - - if isUnsigned { - args[i] = uint16(binary.LittleEndian.Uint16(paramValues[pos : pos+2])) - } else { - args[i] = int16((binary.LittleEndian.Uint16(paramValues[pos : pos+2]))) - } - pos += 2 - continue - - case MYSQL_TYPE_INT24, MYSQL_TYPE_LONG: - if len(paramValues) < (pos + 4) { - return ErrMalformPacket - } - - if isUnsigned { - args[i] = uint32(binary.LittleEndian.Uint32(paramValues[pos : pos+4])) - } else { - args[i] = int32(binary.LittleEndian.Uint32(paramValues[pos : pos+4])) - } - pos += 4 - continue - - case MYSQL_TYPE_LONGLONG: - if len(paramValues) < (pos + 8) { - return ErrMalformPacket - } - - if isUnsigned { - args[i] = binary.LittleEndian.Uint64(paramValues[pos : pos+8]) - } else { - args[i] = int64(binary.LittleEndian.Uint64(paramValues[pos : pos+8])) - } - pos += 8 - continue - - case MYSQL_TYPE_FLOAT: - if len(paramValues) < (pos + 4) { - return ErrMalformPacket - } - - args[i] = float32(math.Float32frombits(binary.LittleEndian.Uint32(paramValues[pos : pos+4]))) - pos += 4 - continue - - case MYSQL_TYPE_DOUBLE: - if len(paramValues) < (pos + 8) { - return ErrMalformPacket - } - - args[i] = math.Float64frombits(binary.LittleEndian.Uint64(paramValues[pos : pos+8])) - pos += 8 - continue - - case MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, - MYSQL_TYPE_BIT, 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_DATE, MYSQL_TYPE_NEWDATE, - MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_DATETIME, MYSQL_TYPE_TIME: - if len(paramValues) < (pos + 1) { - return ErrMalformPacket - } - - v, isNull, n, err = LengthEnodedString(paramValues[pos:]) - pos += n - if err != nil { - return errors.Trace(err) - } - - if !isNull { - args[i] = v - continue - } else { - args[i] = nil - continue - } - default: - return errors.Errorf("Stmt Unknown FieldType %d", tp) - } - } - return nil -} - -// stmt send long data command has no repsonse -func (c *Conn) handleStmtSendLongData(data []byte) error { - if len(data) < 6 { - return nil - } - - id := binary.LittleEndian.Uint32(data[0:4]) - - s, ok := c.stmts[id] - if !ok { - return nil - } - - paramId := binary.LittleEndian.Uint16(data[4:6]) - if paramId >= uint16(s.Params) { - return nil - } - - if s.Args[paramId] == nil { - s.Args[paramId] = data[6:] - } else { - if b, ok := s.Args[paramId].([]byte); ok { - b = append(b, data[6:]...) - s.Args[paramId] = b - } else { - return nil - } - } - - return nil -} - -func (c *Conn) handleStmtReset(data []byte) (*Result, error) { - if len(data) < 4 { - return nil, ErrMalformPacket - } - - id := binary.LittleEndian.Uint32(data[0:4]) - - s, ok := c.stmts[id] - if !ok { - return nil, NewDefaultError(ER_UNKNOWN_STMT_HANDLER, - strconv.FormatUint(uint64(id), 10), "stmt_reset") - } - - s.ResetParams() - - return &Result{}, nil -} - -// stmt close command has no repsonse -func (c *Conn) handleStmtClose(data []byte) error { - if len(data) < 4 { - return nil - } - - id := binary.LittleEndian.Uint32(data[0:4]) - - stmt, ok := c.stmts[id] - if !ok { - return nil - } - - if err := c.h.HandleStmtClose(stmt.Context); err != nil { - return err - } - - delete(c.stmts, id) - - return nil -} diff --git a/vendor/github.com/siddontang/go-mysql/vitess_license b/vendor/github.com/siddontang/go-mysql/vitess_license deleted file mode 100644 index 989d02e..0000000 --- a/vendor/github.com/siddontang/go-mysql/vitess_license +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2012, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/siddontang/go/hack/hack.go b/vendor/github.com/siddontang/go/hack/hack.go deleted file mode 100644 index 74ee83c..0000000 --- a/vendor/github.com/siddontang/go/hack/hack.go +++ /dev/null @@ -1,27 +0,0 @@ -package hack - -import ( - "reflect" - "unsafe" -) - -// no copy to change slice to string -// use your own risk -func String(b []byte) (s string) { - pbytes := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - pstring := (*reflect.StringHeader)(unsafe.Pointer(&s)) - pstring.Data = pbytes.Data - pstring.Len = pbytes.Len - return -} - -// no copy to change string to slice -// use your own risk -func Slice(s string) (b []byte) { - pbytes := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - pstring := (*reflect.StringHeader)(unsafe.Pointer(&s)) - pbytes.Data = pstring.Data - pbytes.Len = pstring.Len - pbytes.Cap = pstring.Len - return -} diff --git a/vendor/github.com/siddontang/go/hack/hack_test.go b/vendor/github.com/siddontang/go/hack/hack_test.go deleted file mode 100644 index 7b11b0b..0000000 --- a/vendor/github.com/siddontang/go/hack/hack_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package hack - -import ( - "bytes" - "testing" -) - -func TestString(t *testing.T) { - b := []byte("hello world") - a := String(b) - - if a != "hello world" { - t.Fatal(a) - } - - b[0] = 'a' - - if a != "aello world" { - t.Fatal(a) - } - - b = append(b, "abc"...) - if a != "aello world" { - t.Fatal(a) - } -} - -func TestByte(t *testing.T) { - a := "hello world" - - b := Slice(a) - - if !bytes.Equal(b, []byte("hello world")) { - t.Fatal(string(b)) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/client.go b/vendor/golang.org/x/crypto/ssh/agent/client.go deleted file mode 100644 index ecfd7c5..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/client.go +++ /dev/null @@ -1,659 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package agent implements the ssh-agent protocol, and provides both -// a client and a server. The client can talk to a standard ssh-agent -// that uses UNIX sockets, and one could implement an alternative -// ssh-agent process using the sample server. -// -// References: -// [PROTOCOL.agent]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.agent?rev=HEAD -package agent // import "golang.org/x/crypto/ssh/agent" - -import ( - "bytes" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "encoding/base64" - "encoding/binary" - "errors" - "fmt" - "io" - "math/big" - "sync" - - "golang.org/x/crypto/ed25519" - "golang.org/x/crypto/ssh" -) - -// Agent represents the capabilities of an ssh-agent. -type Agent interface { - // List returns the identities known to the agent. - List() ([]*Key, error) - - // Sign has the agent sign the data using a protocol 2 key as defined - // in [PROTOCOL.agent] section 2.6.2. - Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) - - // Add adds a private key to the agent. - Add(key AddedKey) error - - // Remove removes all identities with the given public key. - Remove(key ssh.PublicKey) error - - // RemoveAll removes all identities. - RemoveAll() error - - // Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. - Lock(passphrase []byte) error - - // Unlock undoes the effect of Lock - Unlock(passphrase []byte) error - - // Signers returns signers for all the known keys. - Signers() ([]ssh.Signer, error) -} - -// AddedKey describes an SSH key to be added to an Agent. -type AddedKey struct { - // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or - // *ecdsa.PrivateKey, which will be inserted into the agent. - PrivateKey interface{} - // Certificate, if not nil, is communicated to the agent and will be - // stored with the key. - Certificate *ssh.Certificate - // Comment is an optional, free-form string. - Comment string - // LifetimeSecs, if not zero, is the number of seconds that the - // agent will store the key for. - LifetimeSecs uint32 - // ConfirmBeforeUse, if true, requests that the agent confirm with the - // user before each use of this key. - ConfirmBeforeUse bool -} - -// See [PROTOCOL.agent], section 3. -const ( - agentRequestV1Identities = 1 - agentRemoveAllV1Identities = 9 - - // 3.2 Requests from client to agent for protocol 2 key operations - agentAddIdentity = 17 - agentRemoveIdentity = 18 - agentRemoveAllIdentities = 19 - agentAddIdConstrained = 25 - - // 3.3 Key-type independent requests from client to agent - agentAddSmartcardKey = 20 - agentRemoveSmartcardKey = 21 - agentLock = 22 - agentUnlock = 23 - agentAddSmartcardKeyConstrained = 26 - - // 3.7 Key constraint identifiers - agentConstrainLifetime = 1 - agentConstrainConfirm = 2 -) - -// maxAgentResponseBytes is the maximum agent reply size that is accepted. This -// is a sanity check, not a limit in the spec. -const maxAgentResponseBytes = 16 << 20 - -// Agent messages: -// These structures mirror the wire format of the corresponding ssh agent -// messages found in [PROTOCOL.agent]. - -// 3.4 Generic replies from agent to client -const agentFailure = 5 - -type failureAgentMsg struct{} - -const agentSuccess = 6 - -type successAgentMsg struct{} - -// See [PROTOCOL.agent], section 2.5.2. -const agentRequestIdentities = 11 - -type requestIdentitiesAgentMsg struct{} - -// See [PROTOCOL.agent], section 2.5.2. -const agentIdentitiesAnswer = 12 - -type identitiesAnswerAgentMsg struct { - NumKeys uint32 `sshtype:"12"` - Keys []byte `ssh:"rest"` -} - -// See [PROTOCOL.agent], section 2.6.2. -const agentSignRequest = 13 - -type signRequestAgentMsg struct { - KeyBlob []byte `sshtype:"13"` - Data []byte - Flags uint32 -} - -// See [PROTOCOL.agent], section 2.6.2. - -// 3.6 Replies from agent to client for protocol 2 key operations -const agentSignResponse = 14 - -type signResponseAgentMsg struct { - SigBlob []byte `sshtype:"14"` -} - -type publicKey struct { - Format string - Rest []byte `ssh:"rest"` -} - -// Key represents a protocol 2 public key as defined in -// [PROTOCOL.agent], section 2.5.2. -type Key struct { - Format string - Blob []byte - Comment string -} - -func clientErr(err error) error { - return fmt.Errorf("agent: client error: %v", err) -} - -// String returns the storage form of an agent key with the format, base64 -// encoded serialized key, and the comment if it is not empty. -func (k *Key) String() string { - s := string(k.Format) + " " + base64.StdEncoding.EncodeToString(k.Blob) - - if k.Comment != "" { - s += " " + k.Comment - } - - return s -} - -// Type returns the public key type. -func (k *Key) Type() string { - return k.Format -} - -// Marshal returns key blob to satisfy the ssh.PublicKey interface. -func (k *Key) Marshal() []byte { - return k.Blob -} - -// Verify satisfies the ssh.PublicKey interface. -func (k *Key) Verify(data []byte, sig *ssh.Signature) error { - pubKey, err := ssh.ParsePublicKey(k.Blob) - if err != nil { - return fmt.Errorf("agent: bad public key: %v", err) - } - return pubKey.Verify(data, sig) -} - -type wireKey struct { - Format string - Rest []byte `ssh:"rest"` -} - -func parseKey(in []byte) (out *Key, rest []byte, err error) { - var record struct { - Blob []byte - Comment string - Rest []byte `ssh:"rest"` - } - - if err := ssh.Unmarshal(in, &record); err != nil { - return nil, nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(record.Blob, &wk); err != nil { - return nil, nil, err - } - - return &Key{ - Format: wk.Format, - Blob: record.Blob, - Comment: record.Comment, - }, record.Rest, nil -} - -// client is a client for an ssh-agent process. -type client struct { - // conn is typically a *net.UnixConn - conn io.ReadWriter - // mu is used to prevent concurrent access to the agent - mu sync.Mutex -} - -// NewClient returns an Agent that talks to an ssh-agent process over -// the given connection. -func NewClient(rw io.ReadWriter) Agent { - return &client{conn: rw} -} - -// call sends an RPC to the agent. On success, the reply is -// unmarshaled into reply and replyType is set to the first byte of -// the reply, which contains the type of the message. -func (c *client) call(req []byte) (reply interface{}, err error) { - c.mu.Lock() - defer c.mu.Unlock() - - msg := make([]byte, 4+len(req)) - binary.BigEndian.PutUint32(msg, uint32(len(req))) - copy(msg[4:], req) - if _, err = c.conn.Write(msg); err != nil { - return nil, clientErr(err) - } - - var respSizeBuf [4]byte - if _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil { - return nil, clientErr(err) - } - respSize := binary.BigEndian.Uint32(respSizeBuf[:]) - if respSize > maxAgentResponseBytes { - return nil, clientErr(err) - } - - buf := make([]byte, respSize) - if _, err = io.ReadFull(c.conn, buf); err != nil { - return nil, clientErr(err) - } - reply, err = unmarshal(buf) - if err != nil { - return nil, clientErr(err) - } - return reply, err -} - -func (c *client) simpleCall(req []byte) error { - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -func (c *client) RemoveAll() error { - return c.simpleCall([]byte{agentRemoveAllIdentities}) -} - -func (c *client) Remove(key ssh.PublicKey) error { - req := ssh.Marshal(&agentRemoveIdentityMsg{ - KeyBlob: key.Marshal(), - }) - return c.simpleCall(req) -} - -func (c *client) Lock(passphrase []byte) error { - req := ssh.Marshal(&agentLockMsg{ - Passphrase: passphrase, - }) - return c.simpleCall(req) -} - -func (c *client) Unlock(passphrase []byte) error { - req := ssh.Marshal(&agentUnlockMsg{ - Passphrase: passphrase, - }) - return c.simpleCall(req) -} - -// List returns the identities known to the agent. -func (c *client) List() ([]*Key, error) { - // see [PROTOCOL.agent] section 2.5.2. - req := []byte{agentRequestIdentities} - - msg, err := c.call(req) - if err != nil { - return nil, err - } - - switch msg := msg.(type) { - case *identitiesAnswerAgentMsg: - if msg.NumKeys > maxAgentResponseBytes/8 { - return nil, errors.New("agent: too many keys in agent reply") - } - keys := make([]*Key, msg.NumKeys) - data := msg.Keys - for i := uint32(0); i < msg.NumKeys; i++ { - var key *Key - var err error - if key, data, err = parseKey(data); err != nil { - return nil, err - } - keys[i] = key - } - return keys, nil - case *failureAgentMsg: - return nil, errors.New("agent: failed to list keys") - } - panic("unreachable") -} - -// Sign has the agent sign the data using a protocol 2 key as defined -// in [PROTOCOL.agent] section 2.6.2. -func (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { - req := ssh.Marshal(signRequestAgentMsg{ - KeyBlob: key.Marshal(), - Data: data, - }) - - msg, err := c.call(req) - if err != nil { - return nil, err - } - - switch msg := msg.(type) { - case *signResponseAgentMsg: - var sig ssh.Signature - if err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil { - return nil, err - } - - return &sig, nil - case *failureAgentMsg: - return nil, errors.New("agent: failed to sign challenge") - } - panic("unreachable") -} - -// unmarshal parses an agent message in packet, returning the parsed -// form and the message type of packet. -func unmarshal(packet []byte) (interface{}, error) { - if len(packet) < 1 { - return nil, errors.New("agent: empty packet") - } - var msg interface{} - switch packet[0] { - case agentFailure: - return new(failureAgentMsg), nil - case agentSuccess: - return new(successAgentMsg), nil - case agentIdentitiesAnswer: - msg = new(identitiesAnswerAgentMsg) - case agentSignResponse: - msg = new(signResponseAgentMsg) - case agentV1IdentitiesAnswer: - msg = new(agentV1IdentityMsg) - default: - return nil, fmt.Errorf("agent: unknown type tag %d", packet[0]) - } - if err := ssh.Unmarshal(packet, msg); err != nil { - return nil, err - } - return msg, nil -} - -type rsaKeyMsg struct { - Type string `sshtype:"17|25"` - N *big.Int - E *big.Int - D *big.Int - Iqmp *big.Int // IQMP = Inverse Q Mod P - P *big.Int - Q *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type dsaKeyMsg struct { - Type string `sshtype:"17|25"` - P *big.Int - Q *big.Int - G *big.Int - Y *big.Int - X *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ecdsaKeyMsg struct { - Type string `sshtype:"17|25"` - Curve string - KeyBytes []byte - D *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ed25519KeyMsg struct { - Type string `sshtype:"17|25"` - Pub []byte - Priv []byte - Comments string - Constraints []byte `ssh:"rest"` -} - -// Insert adds a private key to the agent. -func (c *client) insertKey(s interface{}, comment string, constraints []byte) error { - var req []byte - switch k := s.(type) { - case *rsa.PrivateKey: - if len(k.Primes) != 2 { - return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) - } - k.Precompute() - req = ssh.Marshal(rsaKeyMsg{ - Type: ssh.KeyAlgoRSA, - N: k.N, - E: big.NewInt(int64(k.E)), - D: k.D, - Iqmp: k.Precomputed.Qinv, - P: k.Primes[0], - Q: k.Primes[1], - Comments: comment, - Constraints: constraints, - }) - case *dsa.PrivateKey: - req = ssh.Marshal(dsaKeyMsg{ - Type: ssh.KeyAlgoDSA, - P: k.P, - Q: k.Q, - G: k.G, - Y: k.Y, - X: k.X, - Comments: comment, - Constraints: constraints, - }) - case *ecdsa.PrivateKey: - nistID := fmt.Sprintf("nistp%d", k.Params().BitSize) - req = ssh.Marshal(ecdsaKeyMsg{ - Type: "ecdsa-sha2-" + nistID, - Curve: nistID, - KeyBytes: elliptic.Marshal(k.Curve, k.X, k.Y), - D: k.D, - Comments: comment, - Constraints: constraints, - }) - case *ed25519.PrivateKey: - req = ssh.Marshal(ed25519KeyMsg{ - Type: ssh.KeyAlgoED25519, - Pub: []byte(*k)[32:], - Priv: []byte(*k), - Comments: comment, - Constraints: constraints, - }) - default: - return fmt.Errorf("agent: unsupported key type %T", s) - } - - // if constraints are present then the message type needs to be changed. - if len(constraints) != 0 { - req[0] = agentAddIdConstrained - } - - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -type rsaCertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - D *big.Int - Iqmp *big.Int // IQMP = Inverse Q Mod P - P *big.Int - Q *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type dsaCertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - X *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ecdsaCertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - D *big.Int - Comments string - Constraints []byte `ssh:"rest"` -} - -type ed25519CertMsg struct { - Type string `sshtype:"17|25"` - CertBytes []byte - Pub []byte - Priv []byte - Comments string - Constraints []byte `ssh:"rest"` -} - -// Add adds a private key to the agent. If a certificate is given, -// that certificate is added instead as public key. -func (c *client) Add(key AddedKey) error { - var constraints []byte - - if secs := key.LifetimeSecs; secs != 0 { - constraints = append(constraints, agentConstrainLifetime) - - var secsBytes [4]byte - binary.BigEndian.PutUint32(secsBytes[:], secs) - constraints = append(constraints, secsBytes[:]...) - } - - if key.ConfirmBeforeUse { - constraints = append(constraints, agentConstrainConfirm) - } - - if cert := key.Certificate; cert == nil { - return c.insertKey(key.PrivateKey, key.Comment, constraints) - } else { - return c.insertCert(key.PrivateKey, cert, key.Comment, constraints) - } -} - -func (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment string, constraints []byte) error { - var req []byte - switch k := s.(type) { - case *rsa.PrivateKey: - if len(k.Primes) != 2 { - return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) - } - k.Precompute() - req = ssh.Marshal(rsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - D: k.D, - Iqmp: k.Precomputed.Qinv, - P: k.Primes[0], - Q: k.Primes[1], - Comments: comment, - Constraints: constraints, - }) - case *dsa.PrivateKey: - req = ssh.Marshal(dsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - X: k.X, - Comments: comment, - Constraints: constraints, - }) - case *ecdsa.PrivateKey: - req = ssh.Marshal(ecdsaCertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - D: k.D, - Comments: comment, - Constraints: constraints, - }) - case *ed25519.PrivateKey: - req = ssh.Marshal(ed25519CertMsg{ - Type: cert.Type(), - CertBytes: cert.Marshal(), - Pub: []byte(*k)[32:], - Priv: []byte(*k), - Comments: comment, - Constraints: constraints, - }) - default: - return fmt.Errorf("agent: unsupported key type %T", s) - } - - // if constraints are present then the message type needs to be changed. - if len(constraints) != 0 { - req[0] = agentAddIdConstrained - } - - signer, err := ssh.NewSignerFromKey(s) - if err != nil { - return err - } - if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { - return errors.New("agent: signer and cert have different public key") - } - - resp, err := c.call(req) - if err != nil { - return err - } - if _, ok := resp.(*successAgentMsg); ok { - return nil - } - return errors.New("agent: failure") -} - -// Signers provides a callback for client authentication. -func (c *client) Signers() ([]ssh.Signer, error) { - keys, err := c.List() - if err != nil { - return nil, err - } - - var result []ssh.Signer - for _, k := range keys { - result = append(result, &agentKeyringSigner{c, k}) - } - return result, nil -} - -type agentKeyringSigner struct { - agent *client - pub ssh.PublicKey -} - -func (s *agentKeyringSigner) PublicKey() ssh.PublicKey { - return s.pub -} - -func (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) (*ssh.Signature, error) { - // The agent has its own entropy source, so the rand argument is ignored. - return s.agent.Sign(s.pub, data) -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/client_test.go b/vendor/golang.org/x/crypto/ssh/agent/client_test.go deleted file mode 100644 index e33d471..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/client_test.go +++ /dev/null @@ -1,343 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "bytes" - "crypto/rand" - "errors" - "net" - "os" - "os/exec" - "path/filepath" - "strconv" - "testing" - "time" - - "golang.org/x/crypto/ssh" -) - -// startAgent executes ssh-agent, and returns a Agent interface to it. -func startAgent(t *testing.T) (client Agent, socket string, cleanup func()) { - if testing.Short() { - // ssh-agent is not always available, and the key - // types supported vary by platform. - t.Skip("skipping test due to -short") - } - - bin, err := exec.LookPath("ssh-agent") - if err != nil { - t.Skip("could not find ssh-agent") - } - - cmd := exec.Command(bin, "-s") - out, err := cmd.Output() - if err != nil { - t.Fatalf("cmd.Output: %v", err) - } - - /* Output looks like: - - SSH_AUTH_SOCK=/tmp/ssh-P65gpcqArqvH/agent.15541; export SSH_AUTH_SOCK; - SSH_AGENT_PID=15542; export SSH_AGENT_PID; - echo Agent pid 15542; - */ - fields := bytes.Split(out, []byte(";")) - line := bytes.SplitN(fields[0], []byte("="), 2) - line[0] = bytes.TrimLeft(line[0], "\n") - if string(line[0]) != "SSH_AUTH_SOCK" { - t.Fatalf("could not find key SSH_AUTH_SOCK in %q", fields[0]) - } - socket = string(line[1]) - - line = bytes.SplitN(fields[2], []byte("="), 2) - line[0] = bytes.TrimLeft(line[0], "\n") - if string(line[0]) != "SSH_AGENT_PID" { - t.Fatalf("could not find key SSH_AGENT_PID in %q", fields[2]) - } - pidStr := line[1] - pid, err := strconv.Atoi(string(pidStr)) - if err != nil { - t.Fatalf("Atoi(%q): %v", pidStr, err) - } - - conn, err := net.Dial("unix", string(socket)) - if err != nil { - t.Fatalf("net.Dial: %v", err) - } - - ac := NewClient(conn) - return ac, socket, func() { - proc, _ := os.FindProcess(pid) - if proc != nil { - proc.Kill() - } - conn.Close() - os.RemoveAll(filepath.Dir(socket)) - } -} - -func testAgent(t *testing.T, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { - agent, _, cleanup := startAgent(t) - defer cleanup() - - testAgentInterface(t, agent, key, cert, lifetimeSecs) -} - -func testKeyring(t *testing.T, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { - a := NewKeyring() - testAgentInterface(t, a, key, cert, lifetimeSecs) -} - -func testAgentInterface(t *testing.T, agent Agent, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { - signer, err := ssh.NewSignerFromKey(key) - if err != nil { - t.Fatalf("NewSignerFromKey(%T): %v", key, err) - } - // The agent should start up empty. - if keys, err := agent.List(); err != nil { - t.Fatalf("RequestIdentities: %v", err) - } else if len(keys) > 0 { - t.Fatalf("got %d keys, want 0: %v", len(keys), keys) - } - - // Attempt to insert the key, with certificate if specified. - var pubKey ssh.PublicKey - if cert != nil { - err = agent.Add(AddedKey{ - PrivateKey: key, - Certificate: cert, - Comment: "comment", - LifetimeSecs: lifetimeSecs, - }) - pubKey = cert - } else { - err = agent.Add(AddedKey{PrivateKey: key, Comment: "comment", LifetimeSecs: lifetimeSecs}) - pubKey = signer.PublicKey() - } - if err != nil { - t.Fatalf("insert(%T): %v", key, err) - } - - // Did the key get inserted successfully? - if keys, err := agent.List(); err != nil { - t.Fatalf("List: %v", err) - } else if len(keys) != 1 { - t.Fatalf("got %v, want 1 key", keys) - } else if keys[0].Comment != "comment" { - t.Fatalf("key comment: got %v, want %v", keys[0].Comment, "comment") - } else if !bytes.Equal(keys[0].Blob, pubKey.Marshal()) { - t.Fatalf("key mismatch") - } - - // Can the agent make a valid signature? - data := []byte("hello") - sig, err := agent.Sign(pubKey, data) - if err != nil { - t.Fatalf("Sign(%s): %v", pubKey.Type(), err) - } - - if err := pubKey.Verify(data, sig); err != nil { - t.Fatalf("Verify(%s): %v", pubKey.Type(), err) - } - - // If the key has a lifetime, is it removed when it should be? - if lifetimeSecs > 0 { - time.Sleep(time.Second*time.Duration(lifetimeSecs) + 100*time.Millisecond) - keys, err := agent.List() - if err != nil { - t.Fatalf("List: %v", err) - } - if len(keys) > 0 { - t.Fatalf("key not expired") - } - } - -} - -func TestAgent(t *testing.T) { - for _, keyType := range []string{"rsa", "dsa", "ecdsa", "ed25519"} { - testAgent(t, testPrivateKeys[keyType], nil, 0) - testKeyring(t, testPrivateKeys[keyType], nil, 1) - } -} - -func TestCert(t *testing.T) { - cert := &ssh.Certificate{ - Key: testPublicKeys["rsa"], - ValidBefore: ssh.CertTimeInfinity, - CertType: ssh.UserCert, - } - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - - testAgent(t, testPrivateKeys["rsa"], cert, 0) - testKeyring(t, testPrivateKeys["rsa"], cert, 1) -} - -// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and -// therefore is buffered (net.Pipe deadlocks if both sides start with -// a write.) -func netPipe() (net.Conn, net.Conn, error) { - listener, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - return nil, nil, err - } - defer listener.Close() - c1, err := net.Dial("tcp", listener.Addr().String()) - if err != nil { - return nil, nil, err - } - - c2, err := listener.Accept() - if err != nil { - c1.Close() - return nil, nil, err - } - - return c1, c2, nil -} - -func TestAuth(t *testing.T) { - a, b, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - - defer a.Close() - defer b.Close() - - agent, _, cleanup := startAgent(t) - defer cleanup() - - if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment"}); err != nil { - t.Errorf("Add: %v", err) - } - - serverConf := ssh.ServerConfig{} - serverConf.AddHostKey(testSigners["rsa"]) - serverConf.PublicKeyCallback = func(c ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { - if bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { - return nil, nil - } - - return nil, errors.New("pubkey rejected") - } - - go func() { - conn, _, _, err := ssh.NewServerConn(a, &serverConf) - if err != nil { - t.Fatalf("Server: %v", err) - } - conn.Close() - }() - - conf := ssh.ClientConfig{} - conf.Auth = append(conf.Auth, ssh.PublicKeysCallback(agent.Signers)) - conn, _, _, err := ssh.NewClientConn(b, "", &conf) - if err != nil { - t.Fatalf("NewClientConn: %v", err) - } - conn.Close() -} - -func TestLockClient(t *testing.T) { - agent, _, cleanup := startAgent(t) - defer cleanup() - testLockAgent(agent, t) -} - -func testLockAgent(agent Agent, t *testing.T) { - if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment 1"}); err != nil { - t.Errorf("Add: %v", err) - } - if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["dsa"], Comment: "comment dsa"}); err != nil { - t.Errorf("Add: %v", err) - } - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 2 { - t.Errorf("Want 2 keys, got %v", keys) - } - - passphrase := []byte("secret") - if err := agent.Lock(passphrase); err != nil { - t.Errorf("Lock: %v", err) - } - - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 0 { - t.Errorf("Want 0 keys, got %v", keys) - } - - signer, _ := ssh.NewSignerFromKey(testPrivateKeys["rsa"]) - if _, err := agent.Sign(signer.PublicKey(), []byte("hello")); err == nil { - t.Fatalf("Sign did not fail") - } - - if err := agent.Remove(signer.PublicKey()); err == nil { - t.Fatalf("Remove did not fail") - } - - if err := agent.RemoveAll(); err == nil { - t.Fatalf("RemoveAll did not fail") - } - - if err := agent.Unlock(nil); err == nil { - t.Errorf("Unlock with wrong passphrase succeeded") - } - if err := agent.Unlock(passphrase); err != nil { - t.Errorf("Unlock: %v", err) - } - - if err := agent.Remove(signer.PublicKey()); err != nil { - t.Fatalf("Remove: %v", err) - } - - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 1 { - t.Errorf("Want 1 keys, got %v", keys) - } -} - -func TestAgentLifetime(t *testing.T) { - agent, _, cleanup := startAgent(t) - defer cleanup() - - for _, keyType := range []string{"rsa", "dsa", "ecdsa"} { - // Add private keys to the agent. - err := agent.Add(AddedKey{ - PrivateKey: testPrivateKeys[keyType], - Comment: "comment", - LifetimeSecs: 1, - }) - if err != nil { - t.Fatalf("add: %v", err) - } - // Add certs to the agent. - cert := &ssh.Certificate{ - Key: testPublicKeys[keyType], - ValidBefore: ssh.CertTimeInfinity, - CertType: ssh.UserCert, - } - cert.SignCert(rand.Reader, testSigners[keyType]) - err = agent.Add(AddedKey{ - PrivateKey: testPrivateKeys[keyType], - Certificate: cert, - Comment: "comment", - LifetimeSecs: 1, - }) - if err != nil { - t.Fatalf("add: %v", err) - } - } - time.Sleep(1100 * time.Millisecond) - if keys, err := agent.List(); err != nil { - t.Errorf("List: %v", err) - } else if len(keys) != 0 { - t.Errorf("Want 0 keys, got %v", len(keys)) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/example_test.go b/vendor/golang.org/x/crypto/ssh/agent/example_test.go deleted file mode 100644 index c1130f7..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/example_test.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent_test - -import ( - "log" - "os" - "net" - - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/agent" -) - -func ExampleClientAgent() { - // ssh-agent has a UNIX socket under $SSH_AUTH_SOCK - socket := os.Getenv("SSH_AUTH_SOCK") - conn, err := net.Dial("unix", socket) - if err != nil { - log.Fatalf("net.Dial: %v", err) - } - agentClient := agent.NewClient(conn) - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - // Use a callback rather than PublicKeys - // so we only consult the agent once the remote server - // wants it. - ssh.PublicKeysCallback(agentClient.Signers), - }, - } - - sshc, err := ssh.Dial("tcp", "localhost:22", config) - if err != nil { - log.Fatalf("Dial: %v", err) - } - // .. use sshc - sshc.Close() -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/forward.go b/vendor/golang.org/x/crypto/ssh/agent/forward.go deleted file mode 100644 index fd24ba9..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/forward.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "errors" - "io" - "net" - "sync" - - "golang.org/x/crypto/ssh" -) - -// RequestAgentForwarding sets up agent forwarding for the session. -// ForwardToAgent or ForwardToRemote should be called to route -// the authentication requests. -func RequestAgentForwarding(session *ssh.Session) error { - ok, err := session.SendRequest("auth-agent-req@openssh.com", true, nil) - if err != nil { - return err - } - if !ok { - return errors.New("forwarding request denied") - } - return nil -} - -// ForwardToAgent routes authentication requests to the given keyring. -func ForwardToAgent(client *ssh.Client, keyring Agent) error { - channels := client.HandleChannelOpen(channelType) - if channels == nil { - return errors.New("agent: already have handler for " + channelType) - } - - go func() { - for ch := range channels { - channel, reqs, err := ch.Accept() - if err != nil { - continue - } - go ssh.DiscardRequests(reqs) - go func() { - ServeAgent(keyring, channel) - channel.Close() - }() - } - }() - return nil -} - -const channelType = "auth-agent@openssh.com" - -// ForwardToRemote routes authentication requests to the ssh-agent -// process serving on the given unix socket. -func ForwardToRemote(client *ssh.Client, addr string) error { - channels := client.HandleChannelOpen(channelType) - if channels == nil { - return errors.New("agent: already have handler for " + channelType) - } - conn, err := net.Dial("unix", addr) - if err != nil { - return err - } - conn.Close() - - go func() { - for ch := range channels { - channel, reqs, err := ch.Accept() - if err != nil { - continue - } - go ssh.DiscardRequests(reqs) - go forwardUnixSocket(channel, addr) - } - }() - return nil -} - -func forwardUnixSocket(channel ssh.Channel, addr string) { - conn, err := net.Dial("unix", addr) - if err != nil { - return - } - - var wg sync.WaitGroup - wg.Add(2) - go func() { - io.Copy(conn, channel) - conn.(*net.UnixConn).CloseWrite() - wg.Done() - }() - go func() { - io.Copy(channel, conn) - channel.CloseWrite() - wg.Done() - }() - - wg.Wait() - conn.Close() - channel.Close() -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/keyring.go b/vendor/golang.org/x/crypto/ssh/agent/keyring.go deleted file mode 100644 index a6ba06a..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/keyring.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "bytes" - "crypto/rand" - "crypto/subtle" - "errors" - "fmt" - "sync" - "time" - - "golang.org/x/crypto/ssh" -) - -type privKey struct { - signer ssh.Signer - comment string - expire *time.Time -} - -type keyring struct { - mu sync.Mutex - keys []privKey - - locked bool - passphrase []byte -} - -var errLocked = errors.New("agent: locked") - -// NewKeyring returns an Agent that holds keys in memory. It is safe -// for concurrent use by multiple goroutines. -func NewKeyring() Agent { - return &keyring{} -} - -// RemoveAll removes all identities. -func (r *keyring) RemoveAll() error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - r.keys = nil - return nil -} - -// removeLocked does the actual key removal. The caller must already be holding the -// keyring mutex. -func (r *keyring) removeLocked(want []byte) error { - found := false - for i := 0; i < len(r.keys); { - if bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) { - found = true - r.keys[i] = r.keys[len(r.keys)-1] - r.keys = r.keys[:len(r.keys)-1] - continue - } else { - i++ - } - } - - if !found { - return errors.New("agent: key not found") - } - return nil -} - -// Remove removes all identities with the given public key. -func (r *keyring) Remove(key ssh.PublicKey) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - return r.removeLocked(key.Marshal()) -} - -// Lock locks the agent. Sign and Remove will fail, and List will return an empty list. -func (r *keyring) Lock(passphrase []byte) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - - r.locked = true - r.passphrase = passphrase - return nil -} - -// Unlock undoes the effect of Lock -func (r *keyring) Unlock(passphrase []byte) error { - r.mu.Lock() - defer r.mu.Unlock() - if !r.locked { - return errors.New("agent: not locked") - } - if len(passphrase) != len(r.passphrase) || 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) { - return fmt.Errorf("agent: incorrect passphrase") - } - - r.locked = false - r.passphrase = nil - return nil -} - -// expireKeysLocked removes expired keys from the keyring. If a key was added -// with a lifetimesecs contraint and seconds >= lifetimesecs seconds have -// ellapsed, it is removed. The caller *must* be holding the keyring mutex. -func (r *keyring) expireKeysLocked() { - for _, k := range r.keys { - if k.expire != nil && time.Now().After(*k.expire) { - r.removeLocked(k.signer.PublicKey().Marshal()) - } - } -} - -// List returns the identities known to the agent. -func (r *keyring) List() ([]*Key, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - // section 2.7: locked agents return empty. - return nil, nil - } - - r.expireKeysLocked() - var ids []*Key - for _, k := range r.keys { - pub := k.signer.PublicKey() - ids = append(ids, &Key{ - Format: pub.Type(), - Blob: pub.Marshal(), - Comment: k.comment}) - } - return ids, nil -} - -// Insert adds a private key to the keyring. If a certificate -// is given, that certificate is added as public key. Note that -// any constraints given are ignored. -func (r *keyring) Add(key AddedKey) error { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return errLocked - } - signer, err := ssh.NewSignerFromKey(key.PrivateKey) - - if err != nil { - return err - } - - if cert := key.Certificate; cert != nil { - signer, err = ssh.NewCertSigner(cert, signer) - if err != nil { - return err - } - } - - p := privKey{ - signer: signer, - comment: key.Comment, - } - - if key.LifetimeSecs > 0 { - t := time.Now().Add(time.Duration(key.LifetimeSecs) * time.Second) - p.expire = &t - } - - r.keys = append(r.keys, p) - - return nil -} - -// Sign returns a signature for the data. -func (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return nil, errLocked - } - - r.expireKeysLocked() - wanted := key.Marshal() - for _, k := range r.keys { - if bytes.Equal(k.signer.PublicKey().Marshal(), wanted) { - return k.signer.Sign(rand.Reader, data) - } - } - return nil, errors.New("not found") -} - -// Signers returns signers for all the known keys. -func (r *keyring) Signers() ([]ssh.Signer, error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.locked { - return nil, errLocked - } - - r.expireKeysLocked() - s := make([]ssh.Signer, 0, len(r.keys)) - for _, k := range r.keys { - s = append(s, k.signer) - } - return s, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go b/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go deleted file mode 100644 index e5d50e7..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import "testing" - -func addTestKey(t *testing.T, a Agent, keyName string) { - err := a.Add(AddedKey{ - PrivateKey: testPrivateKeys[keyName], - Comment: keyName, - }) - if err != nil { - t.Fatalf("failed to add key %q: %v", keyName, err) - } -} - -func removeTestKey(t *testing.T, a Agent, keyName string) { - err := a.Remove(testPublicKeys[keyName]) - if err != nil { - t.Fatalf("failed to remove key %q: %v", keyName, err) - } -} - -func validateListedKeys(t *testing.T, a Agent, expectedKeys []string) { - listedKeys, err := a.List() - if err != nil { - t.Fatalf("failed to list keys: %v", err) - return - } - actualKeys := make(map[string]bool) - for _, key := range listedKeys { - actualKeys[key.Comment] = true - } - - matchedKeys := make(map[string]bool) - for _, expectedKey := range expectedKeys { - if !actualKeys[expectedKey] { - t.Fatalf("expected key %q, but was not found", expectedKey) - } else { - matchedKeys[expectedKey] = true - } - } - - for actualKey := range actualKeys { - if !matchedKeys[actualKey] { - t.Fatalf("key %q was found, but was not expected", actualKey) - } - } -} - -func TestKeyringAddingAndRemoving(t *testing.T) { - keyNames := []string{"dsa", "ecdsa", "rsa", "user"} - - // add all test private keys - k := NewKeyring() - for _, keyName := range keyNames { - addTestKey(t, k, keyName) - } - validateListedKeys(t, k, keyNames) - - // remove a key in the middle - keyToRemove := keyNames[1] - keyNames = append(keyNames[:1], keyNames[2:]...) - - removeTestKey(t, k, keyToRemove) - validateListedKeys(t, k, keyNames) - - // remove all keys - err := k.RemoveAll() - if err != nil { - t.Fatalf("failed to remove all keys: %v", err) - } - validateListedKeys(t, k, []string{}) -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/server.go b/vendor/golang.org/x/crypto/ssh/agent/server.go deleted file mode 100644 index 68a333f..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/server.go +++ /dev/null @@ -1,451 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "encoding/binary" - "errors" - "fmt" - "io" - "log" - "math/big" - - "golang.org/x/crypto/ed25519" - "golang.org/x/crypto/ssh" -) - -// Server wraps an Agent and uses it to implement the agent side of -// the SSH-agent, wire protocol. -type server struct { - agent Agent -} - -func (s *server) processRequestBytes(reqData []byte) []byte { - rep, err := s.processRequest(reqData) - if err != nil { - if err != errLocked { - // TODO(hanwen): provide better logging interface? - log.Printf("agent %d: %v", reqData[0], err) - } - return []byte{agentFailure} - } - - if err == nil && rep == nil { - return []byte{agentSuccess} - } - - return ssh.Marshal(rep) -} - -func marshalKey(k *Key) []byte { - var record struct { - Blob []byte - Comment string - } - record.Blob = k.Marshal() - record.Comment = k.Comment - - return ssh.Marshal(&record) -} - -// See [PROTOCOL.agent], section 2.5.1. -const agentV1IdentitiesAnswer = 2 - -type agentV1IdentityMsg struct { - Numkeys uint32 `sshtype:"2"` -} - -type agentRemoveIdentityMsg struct { - KeyBlob []byte `sshtype:"18"` -} - -type agentLockMsg struct { - Passphrase []byte `sshtype:"22"` -} - -type agentUnlockMsg struct { - Passphrase []byte `sshtype:"23"` -} - -func (s *server) processRequest(data []byte) (interface{}, error) { - switch data[0] { - case agentRequestV1Identities: - return &agentV1IdentityMsg{0}, nil - - case agentRemoveAllV1Identities: - return nil, nil - - case agentRemoveIdentity: - var req agentRemoveIdentityMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { - return nil, err - } - - return nil, s.agent.Remove(&Key{Format: wk.Format, Blob: req.KeyBlob}) - - case agentRemoveAllIdentities: - return nil, s.agent.RemoveAll() - - case agentLock: - var req agentLockMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - return nil, s.agent.Lock(req.Passphrase) - - case agentUnlock: - var req agentLockMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - return nil, s.agent.Unlock(req.Passphrase) - - case agentSignRequest: - var req signRequestAgentMsg - if err := ssh.Unmarshal(data, &req); err != nil { - return nil, err - } - - var wk wireKey - if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { - return nil, err - } - - k := &Key{ - Format: wk.Format, - Blob: req.KeyBlob, - } - - sig, err := s.agent.Sign(k, req.Data) // TODO(hanwen): flags. - if err != nil { - return nil, err - } - return &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil - - case agentRequestIdentities: - keys, err := s.agent.List() - if err != nil { - return nil, err - } - - rep := identitiesAnswerAgentMsg{ - NumKeys: uint32(len(keys)), - } - for _, k := range keys { - rep.Keys = append(rep.Keys, marshalKey(k)...) - } - return rep, nil - - case agentAddIdConstrained, agentAddIdentity: - return nil, s.insertIdentity(data) - } - - return nil, fmt.Errorf("unknown opcode %d", data[0]) -} - -func parseRSAKey(req []byte) (*AddedKey, error) { - var k rsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - if k.E.BitLen() > 30 { - return nil, errors.New("agent: RSA public exponent too large") - } - priv := &rsa.PrivateKey{ - PublicKey: rsa.PublicKey{ - E: int(k.E.Int64()), - N: k.N, - }, - D: k.D, - Primes: []*big.Int{k.P, k.Q}, - } - priv.Precompute() - - return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil -} - -func parseEd25519Key(req []byte) (*AddedKey, error) { - var k ed25519KeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - priv := ed25519.PrivateKey(k.Priv) - return &AddedKey{PrivateKey: &priv, Comment: k.Comments}, nil -} - -func parseDSAKey(req []byte) (*AddedKey, error) { - var k dsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - priv := &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: k.P, - Q: k.Q, - G: k.G, - }, - Y: k.Y, - }, - X: k.X, - } - - return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil -} - -func unmarshalECDSA(curveName string, keyBytes []byte, privScalar *big.Int) (priv *ecdsa.PrivateKey, err error) { - priv = &ecdsa.PrivateKey{ - D: privScalar, - } - - switch curveName { - case "nistp256": - priv.Curve = elliptic.P256() - case "nistp384": - priv.Curve = elliptic.P384() - case "nistp521": - priv.Curve = elliptic.P521() - default: - return nil, fmt.Errorf("agent: unknown curve %q", curveName) - } - - priv.X, priv.Y = elliptic.Unmarshal(priv.Curve, keyBytes) - if priv.X == nil || priv.Y == nil { - return nil, errors.New("agent: point not on curve") - } - - return priv, nil -} - -func parseEd25519Cert(req []byte) (*AddedKey, error) { - var k ed25519CertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - priv := ed25519.PrivateKey(k.Priv) - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad ED25519 certificate") - } - return &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}, nil -} - -func parseECDSAKey(req []byte) (*AddedKey, error) { - var k ecdsaKeyMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - - priv, err := unmarshalECDSA(k.Curve, k.KeyBytes, k.D) - if err != nil { - return nil, err - } - - return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil -} - -func parseRSACert(req []byte) (*AddedKey, error) { - var k rsaCertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad RSA certificate") - } - - // An RSA publickey as marshaled by rsaPublicKey.Marshal() in keys.go - var rsaPub struct { - Name string - E *big.Int - N *big.Int - } - if err := ssh.Unmarshal(cert.Key.Marshal(), &rsaPub); err != nil { - return nil, fmt.Errorf("agent: Unmarshal failed to parse public key: %v", err) - } - - if rsaPub.E.BitLen() > 30 { - return nil, errors.New("agent: RSA public exponent too large") - } - - priv := rsa.PrivateKey{ - PublicKey: rsa.PublicKey{ - E: int(rsaPub.E.Int64()), - N: rsaPub.N, - }, - D: k.D, - Primes: []*big.Int{k.Q, k.P}, - } - priv.Precompute() - - return &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}, nil -} - -func parseDSACert(req []byte) (*AddedKey, error) { - var k dsaCertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad DSA certificate") - } - - // A DSA publickey as marshaled by dsaPublicKey.Marshal() in keys.go - var w struct { - Name string - P, Q, G, Y *big.Int - } - if err := ssh.Unmarshal(cert.Key.Marshal(), &w); err != nil { - return nil, fmt.Errorf("agent: Unmarshal failed to parse public key: %v", err) - } - - priv := &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: w.P, - Q: w.Q, - G: w.G, - }, - Y: w.Y, - }, - X: k.X, - } - - return &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}, nil -} - -func parseECDSACert(req []byte) (*AddedKey, error) { - var k ecdsaCertMsg - if err := ssh.Unmarshal(req, &k); err != nil { - return nil, err - } - - pubKey, err := ssh.ParsePublicKey(k.CertBytes) - if err != nil { - return nil, err - } - cert, ok := pubKey.(*ssh.Certificate) - if !ok { - return nil, errors.New("agent: bad ECDSA certificate") - } - - // An ECDSA publickey as marshaled by ecdsaPublicKey.Marshal() in keys.go - var ecdsaPub struct { - Name string - ID string - Key []byte - } - if err := ssh.Unmarshal(cert.Key.Marshal(), &ecdsaPub); err != nil { - return nil, err - } - - priv, err := unmarshalECDSA(ecdsaPub.ID, ecdsaPub.Key, k.D) - if err != nil { - return nil, err - } - - return &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}, nil -} - -func (s *server) insertIdentity(req []byte) error { - var record struct { - Type string `sshtype:"17|25"` - Rest []byte `ssh:"rest"` - } - - if err := ssh.Unmarshal(req, &record); err != nil { - return err - } - - var addedKey *AddedKey - var err error - - switch record.Type { - case ssh.KeyAlgoRSA: - addedKey, err = parseRSAKey(req) - case ssh.KeyAlgoDSA: - addedKey, err = parseDSAKey(req) - case ssh.KeyAlgoECDSA256, ssh.KeyAlgoECDSA384, ssh.KeyAlgoECDSA521: - addedKey, err = parseECDSAKey(req) - case ssh.KeyAlgoED25519: - addedKey, err = parseEd25519Key(req) - case ssh.CertAlgoRSAv01: - addedKey, err = parseRSACert(req) - case ssh.CertAlgoDSAv01: - addedKey, err = parseDSACert(req) - case ssh.CertAlgoECDSA256v01, ssh.CertAlgoECDSA384v01, ssh.CertAlgoECDSA521v01: - addedKey, err = parseECDSACert(req) - case ssh.CertAlgoED25519v01: - addedKey, err = parseEd25519Cert(req) - default: - return fmt.Errorf("agent: not implemented: %q", record.Type) - } - - if err != nil { - return err - } - return s.agent.Add(*addedKey) -} - -// ServeAgent serves the agent protocol on the given connection. It -// returns when an I/O error occurs. -func ServeAgent(agent Agent, c io.ReadWriter) error { - s := &server{agent} - - var length [4]byte - for { - if _, err := io.ReadFull(c, length[:]); err != nil { - return err - } - l := binary.BigEndian.Uint32(length[:]) - if l > maxAgentResponseBytes { - // We also cap requests. - return fmt.Errorf("agent: request too large: %d", l) - } - - req := make([]byte, l) - if _, err := io.ReadFull(c, req); err != nil { - return err - } - - repData := s.processRequestBytes(req) - if len(repData) > maxAgentResponseBytes { - return fmt.Errorf("agent: reply too large: %d bytes", len(repData)) - } - - binary.BigEndian.PutUint32(length[:], uint32(len(repData))) - if _, err := c.Write(length[:]); err != nil { - return err - } - if _, err := c.Write(repData); err != nil { - return err - } - } -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/server_test.go b/vendor/golang.org/x/crypto/ssh/agent/server_test.go deleted file mode 100644 index ec9cdee..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/server_test.go +++ /dev/null @@ -1,207 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package agent - -import ( - "crypto" - "crypto/rand" - "fmt" - "testing" - - "golang.org/x/crypto/ssh" -) - -func TestServer(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - client := NewClient(c1) - - go ServeAgent(NewKeyring(), c2) - - testAgentInterface(t, client, testPrivateKeys["rsa"], nil, 0) -} - -func TestLockServer(t *testing.T) { - testLockAgent(NewKeyring(), t) -} - -func TestSetupForwardAgent(t *testing.T) { - a, b, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - - defer a.Close() - defer b.Close() - - _, socket, cleanup := startAgent(t) - defer cleanup() - - serverConf := ssh.ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["rsa"]) - incoming := make(chan *ssh.ServerConn, 1) - go func() { - conn, _, _, err := ssh.NewServerConn(a, &serverConf) - if err != nil { - t.Fatalf("Server: %v", err) - } - incoming <- conn - }() - - conf := ssh.ClientConfig{} - conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf) - if err != nil { - t.Fatalf("NewClientConn: %v", err) - } - client := ssh.NewClient(conn, chans, reqs) - - if err := ForwardToRemote(client, socket); err != nil { - t.Fatalf("SetupForwardAgent: %v", err) - } - - server := <-incoming - ch, reqs, err := server.OpenChannel(channelType, nil) - if err != nil { - t.Fatalf("OpenChannel(%q): %v", channelType, err) - } - go ssh.DiscardRequests(reqs) - - agentClient := NewClient(ch) - testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil, 0) - conn.Close() -} - -func TestV1ProtocolMessages(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - c := NewClient(c1) - - go ServeAgent(NewKeyring(), c2) - - testV1ProtocolMessages(t, c.(*client)) -} - -func testV1ProtocolMessages(t *testing.T, c *client) { - reply, err := c.call([]byte{agentRequestV1Identities}) - if err != nil { - t.Fatalf("v1 request all failed: %v", err) - } - if msg, ok := reply.(*agentV1IdentityMsg); !ok || msg.Numkeys != 0 { - t.Fatalf("invalid request all response: %#v", reply) - } - - reply, err = c.call([]byte{agentRemoveAllV1Identities}) - if err != nil { - t.Fatalf("v1 remove all failed: %v", err) - } - if _, ok := reply.(*successAgentMsg); !ok { - t.Fatalf("invalid remove all response: %#v", reply) - } -} - -func verifyKey(sshAgent Agent) error { - keys, err := sshAgent.List() - if err != nil { - return fmt.Errorf("listing keys: %v", err) - } - - if len(keys) != 1 { - return fmt.Errorf("bad number of keys found. expected 1, got %d", len(keys)) - } - - buf := make([]byte, 128) - if _, err := rand.Read(buf); err != nil { - return fmt.Errorf("rand: %v", err) - } - - sig, err := sshAgent.Sign(keys[0], buf) - if err != nil { - return fmt.Errorf("sign: %v", err) - } - - if err := keys[0].Verify(buf, sig); err != nil { - return fmt.Errorf("verify: %v", err) - } - return nil -} - -func addKeyToAgent(key crypto.PrivateKey) error { - sshAgent := NewKeyring() - if err := sshAgent.Add(AddedKey{PrivateKey: key}); err != nil { - return fmt.Errorf("add: %v", err) - } - return verifyKey(sshAgent) -} - -func TestKeyTypes(t *testing.T) { - for k, v := range testPrivateKeys { - if err := addKeyToAgent(v); err != nil { - t.Errorf("error adding key type %s, %v", k, err) - } - if err := addCertToAgentSock(v, nil); err != nil { - t.Errorf("error adding key type %s, %v", k, err) - } - } -} - -func addCertToAgentSock(key crypto.PrivateKey, cert *ssh.Certificate) error { - a, b, err := netPipe() - if err != nil { - return err - } - agentServer := NewKeyring() - go ServeAgent(agentServer, a) - - agentClient := NewClient(b) - if err := agentClient.Add(AddedKey{PrivateKey: key, Certificate: cert}); err != nil { - return fmt.Errorf("add: %v", err) - } - return verifyKey(agentClient) -} - -func addCertToAgent(key crypto.PrivateKey, cert *ssh.Certificate) error { - sshAgent := NewKeyring() - if err := sshAgent.Add(AddedKey{PrivateKey: key, Certificate: cert}); err != nil { - return fmt.Errorf("add: %v", err) - } - return verifyKey(sshAgent) -} - -func TestCertTypes(t *testing.T) { - for keyType, key := range testPublicKeys { - cert := &ssh.Certificate{ - ValidPrincipals: []string{"gopher1"}, - ValidAfter: 0, - ValidBefore: ssh.CertTimeInfinity, - Key: key, - Serial: 1, - CertType: ssh.UserCert, - SignatureKey: testPublicKeys["rsa"], - Permissions: ssh.Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - if err := cert.SignCert(rand.Reader, testSigners["rsa"]); err != nil { - t.Fatalf("signcert: %v", err) - } - if err := addCertToAgent(testPrivateKeys[keyType], cert); err != nil { - t.Fatalf("%v", err) - } - if err := addCertToAgentSock(testPrivateKeys[keyType], cert); err != nil { - t.Fatalf("%v", err) - } - } -} diff --git a/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go b/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go deleted file mode 100644 index cc42a87..0000000 --- a/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// IMPLEMENTATION NOTE: To avoid a package loop, this file is in three places: -// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three -// instances. - -package agent - -import ( - "crypto/rand" - "fmt" - - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/testdata" -) - -var ( - testPrivateKeys map[string]interface{} - testSigners map[string]ssh.Signer - testPublicKeys map[string]ssh.PublicKey -) - -func init() { - var err error - - n := len(testdata.PEMBytes) - testPrivateKeys = make(map[string]interface{}, n) - testSigners = make(map[string]ssh.Signer, n) - testPublicKeys = make(map[string]ssh.PublicKey, n) - for t, k := range testdata.PEMBytes { - testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) - if err != nil { - panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) - } - testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) - if err != nil { - panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) - } - testPublicKeys[t] = testSigners[t].PublicKey() - } - - // Create a cert and sign it for use in tests. - testCert := &ssh.Certificate{ - Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage - ValidAfter: 0, // unix epoch - ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. - Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - Key: testPublicKeys["ecdsa"], - SignatureKey: testPublicKeys["rsa"], - Permissions: ssh.Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - testCert.SignCert(rand.Reader, testSigners["rsa"]) - testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] - testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) - if err != nil { - panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/benchmark_test.go b/vendor/golang.org/x/crypto/ssh/benchmark_test.go deleted file mode 100644 index d9f7eb9..0000000 --- a/vendor/golang.org/x/crypto/ssh/benchmark_test.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "errors" - "io" - "net" - "testing" -) - -type server struct { - *ServerConn - chans <-chan NewChannel -} - -func newServer(c net.Conn, conf *ServerConfig) (*server, error) { - sconn, chans, reqs, err := NewServerConn(c, conf) - if err != nil { - return nil, err - } - go DiscardRequests(reqs) - return &server{sconn, chans}, nil -} - -func (s *server) Accept() (NewChannel, error) { - n, ok := <-s.chans - if !ok { - return nil, io.EOF - } - return n, nil -} - -func sshPipe() (Conn, *server, error) { - c1, c2, err := netPipe() - if err != nil { - return nil, nil, err - } - - clientConf := ClientConfig{ - User: "user", - } - serverConf := ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["ecdsa"]) - done := make(chan *server, 1) - go func() { - server, err := newServer(c2, &serverConf) - if err != nil { - done <- nil - } - done <- server - }() - - client, _, reqs, err := NewClientConn(c1, "", &clientConf) - if err != nil { - return nil, nil, err - } - - server := <-done - if server == nil { - return nil, nil, errors.New("server handshake failed.") - } - go DiscardRequests(reqs) - - return client, server, nil -} - -func BenchmarkEndToEnd(b *testing.B) { - b.StopTimer() - - client, server, err := sshPipe() - if err != nil { - b.Fatalf("sshPipe: %v", err) - } - - defer client.Close() - defer server.Close() - - size := (1 << 20) - input := make([]byte, size) - output := make([]byte, size) - b.SetBytes(int64(size)) - done := make(chan int, 1) - - go func() { - newCh, err := server.Accept() - if err != nil { - b.Fatalf("Client: %v", err) - } - ch, incoming, err := newCh.Accept() - go DiscardRequests(incoming) - for i := 0; i < b.N; i++ { - if _, err := io.ReadFull(ch, output); err != nil { - b.Fatalf("ReadFull: %v", err) - } - } - ch.Close() - done <- 1 - }() - - ch, in, err := client.OpenChannel("speed", nil) - if err != nil { - b.Fatalf("OpenChannel: %v", err) - } - go DiscardRequests(in) - - b.ResetTimer() - b.StartTimer() - for i := 0; i < b.N; i++ { - if _, err := ch.Write(input); err != nil { - b.Fatalf("WriteFull: %v", err) - } - } - ch.Close() - b.StopTimer() - - <-done -} diff --git a/vendor/golang.org/x/crypto/ssh/buffer.go b/vendor/golang.org/x/crypto/ssh/buffer.go deleted file mode 100644 index 6931b51..0000000 --- a/vendor/golang.org/x/crypto/ssh/buffer.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "io" - "sync" -) - -// buffer provides a linked list buffer for data exchange -// between producer and consumer. Theoretically the buffer is -// of unlimited capacity as it does no allocation of its own. -type buffer struct { - // protects concurrent access to head, tail and closed - *sync.Cond - - head *element // the buffer that will be read first - tail *element // the buffer that will be read last - - closed bool -} - -// An element represents a single link in a linked list. -type element struct { - buf []byte - next *element -} - -// newBuffer returns an empty buffer that is not closed. -func newBuffer() *buffer { - e := new(element) - b := &buffer{ - Cond: newCond(), - head: e, - tail: e, - } - return b -} - -// write makes buf available for Read to receive. -// buf must not be modified after the call to write. -func (b *buffer) write(buf []byte) { - b.Cond.L.Lock() - e := &element{buf: buf} - b.tail.next = e - b.tail = e - b.Cond.Signal() - b.Cond.L.Unlock() -} - -// eof closes the buffer. Reads from the buffer once all -// the data has been consumed will receive os.EOF. -func (b *buffer) eof() error { - b.Cond.L.Lock() - b.closed = true - b.Cond.Signal() - b.Cond.L.Unlock() - return nil -} - -// Read reads data from the internal buffer in buf. Reads will block -// if no data is available, or until the buffer is closed. -func (b *buffer) Read(buf []byte) (n int, err error) { - b.Cond.L.Lock() - defer b.Cond.L.Unlock() - - for len(buf) > 0 { - // if there is data in b.head, copy it - if len(b.head.buf) > 0 { - r := copy(buf, b.head.buf) - buf, b.head.buf = buf[r:], b.head.buf[r:] - n += r - continue - } - // if there is a next buffer, make it the head - if len(b.head.buf) == 0 && b.head != b.tail { - b.head = b.head.next - continue - } - - // if at least one byte has been copied, return - if n > 0 { - break - } - - // if nothing was read, and there is nothing outstanding - // check to see if the buffer is closed. - if b.closed { - err = io.EOF - break - } - // out of buffers, wait for producer - b.Cond.Wait() - } - return -} diff --git a/vendor/golang.org/x/crypto/ssh/buffer_test.go b/vendor/golang.org/x/crypto/ssh/buffer_test.go deleted file mode 100644 index d5781cb..0000000 --- a/vendor/golang.org/x/crypto/ssh/buffer_test.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "io" - "testing" -) - -var alphabet = []byte("abcdefghijklmnopqrstuvwxyz") - -func TestBufferReadwrite(t *testing.T) { - b := newBuffer() - b.write(alphabet[:10]) - r, _ := b.Read(make([]byte, 10)) - if r != 10 { - t.Fatalf("Expected written == read == 10, written: 10, read %d", r) - } - - b = newBuffer() - b.write(alphabet[:5]) - r, _ = b.Read(make([]byte, 10)) - if r != 5 { - t.Fatalf("Expected written == read == 5, written: 5, read %d", r) - } - - b = newBuffer() - b.write(alphabet[:10]) - r, _ = b.Read(make([]byte, 5)) - if r != 5 { - t.Fatalf("Expected written == 10, read == 5, written: 10, read %d", r) - } - - b = newBuffer() - b.write(alphabet[:5]) - b.write(alphabet[5:15]) - r, _ = b.Read(make([]byte, 10)) - r2, _ := b.Read(make([]byte, 10)) - if r != 10 || r2 != 5 || 15 != r+r2 { - t.Fatal("Expected written == read == 15") - } -} - -func TestBufferClose(t *testing.T) { - b := newBuffer() - b.write(alphabet[:10]) - b.eof() - _, err := b.Read(make([]byte, 5)) - if err != nil { - t.Fatal("expected read of 5 to not return EOF") - } - b = newBuffer() - b.write(alphabet[:10]) - b.eof() - r, err := b.Read(make([]byte, 5)) - r2, err2 := b.Read(make([]byte, 10)) - if r != 5 || r2 != 5 || err != nil || err2 != nil { - t.Fatal("expected reads of 5 and 5") - } - - b = newBuffer() - b.write(alphabet[:10]) - b.eof() - r, err = b.Read(make([]byte, 5)) - r2, err2 = b.Read(make([]byte, 10)) - r3, err3 := b.Read(make([]byte, 10)) - if r != 5 || r2 != 5 || r3 != 0 || err != nil || err2 != nil || err3 != io.EOF { - t.Fatal("expected reads of 5 and 5 and 0, with EOF") - } - - b = newBuffer() - b.write(make([]byte, 5)) - b.write(make([]byte, 10)) - b.eof() - r, err = b.Read(make([]byte, 9)) - r2, err2 = b.Read(make([]byte, 3)) - r3, err3 = b.Read(make([]byte, 3)) - r4, err4 := b.Read(make([]byte, 10)) - if err != nil || err2 != nil || err3 != nil || err4 != io.EOF { - t.Fatalf("Expected EOF on forth read only, err=%v, err2=%v, err3=%v, err4=%v", err, err2, err3, err4) - } - if r != 9 || r2 != 3 || r3 != 3 || r4 != 0 { - t.Fatal("Expected written == read == 15", r, r2, r3, r4) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/certs.go b/vendor/golang.org/x/crypto/ssh/certs.go deleted file mode 100644 index 6331c94..0000000 --- a/vendor/golang.org/x/crypto/ssh/certs.go +++ /dev/null @@ -1,503 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" - "sort" - "time" -) - -// These constants from [PROTOCOL.certkeys] represent the algorithm names -// for certificate types supported by this package. -const ( - CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" - CertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" - CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" - CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" - CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" - CertAlgoED25519v01 = "ssh-ed25519-cert-v01@openssh.com" -) - -// Certificate types distinguish between host and user -// certificates. The values can be set in the CertType field of -// Certificate. -const ( - UserCert = 1 - HostCert = 2 -) - -// Signature represents a cryptographic signature. -type Signature struct { - Format string - Blob []byte -} - -// CertTimeInfinity can be used for OpenSSHCertV01.ValidBefore to indicate that -// a certificate does not expire. -const CertTimeInfinity = 1<<64 - 1 - -// An Certificate represents an OpenSSH certificate as defined in -// [PROTOCOL.certkeys]?rev=1.8. -type Certificate struct { - Nonce []byte - Key PublicKey - Serial uint64 - CertType uint32 - KeyId string - ValidPrincipals []string - ValidAfter uint64 - ValidBefore uint64 - Permissions - Reserved []byte - SignatureKey PublicKey - Signature *Signature -} - -// genericCertData holds the key-independent part of the certificate data. -// Overall, certificates contain an nonce, public key fields and -// key-independent fields. -type genericCertData struct { - Serial uint64 - CertType uint32 - KeyId string - ValidPrincipals []byte - ValidAfter uint64 - ValidBefore uint64 - CriticalOptions []byte - Extensions []byte - Reserved []byte - SignatureKey []byte - Signature []byte -} - -func marshalStringList(namelist []string) []byte { - var to []byte - for _, name := range namelist { - s := struct{ N string }{name} - to = append(to, Marshal(&s)...) - } - return to -} - -type optionsTuple struct { - Key string - Value []byte -} - -type optionsTupleValue struct { - Value string -} - -// serialize a map of critical options or extensions -// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, -// we need two length prefixes for a non-empty string value -func marshalTuples(tups map[string]string) []byte { - keys := make([]string, 0, len(tups)) - for key := range tups { - keys = append(keys, key) - } - sort.Strings(keys) - - var ret []byte - for _, key := range keys { - s := optionsTuple{Key: key} - if value := tups[key]; len(value) > 0 { - s.Value = Marshal(&optionsTupleValue{value}) - } - ret = append(ret, Marshal(&s)...) - } - return ret -} - -// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, -// we need two length prefixes for a non-empty option value -func parseTuples(in []byte) (map[string]string, error) { - tups := map[string]string{} - var lastKey string - var haveLastKey bool - - for len(in) > 0 { - var key, val, extra []byte - var ok bool - - if key, in, ok = parseString(in); !ok { - return nil, errShortRead - } - keyStr := string(key) - // according to [PROTOCOL.certkeys], the names must be in - // lexical order. - if haveLastKey && keyStr <= lastKey { - return nil, fmt.Errorf("ssh: certificate options are not in lexical order") - } - lastKey, haveLastKey = keyStr, true - // the next field is a data field, which if non-empty has a string embedded - if val, in, ok = parseString(in); !ok { - return nil, errShortRead - } - if len(val) > 0 { - val, extra, ok = parseString(val) - if !ok { - return nil, errShortRead - } - if len(extra) > 0 { - return nil, fmt.Errorf("ssh: unexpected trailing data after certificate option value") - } - tups[keyStr] = string(val) - } else { - tups[keyStr] = "" - } - } - return tups, nil -} - -func parseCert(in []byte, privAlgo string) (*Certificate, error) { - nonce, rest, ok := parseString(in) - if !ok { - return nil, errShortRead - } - - key, rest, err := parsePubKey(rest, privAlgo) - if err != nil { - return nil, err - } - - var g genericCertData - if err := Unmarshal(rest, &g); err != nil { - return nil, err - } - - c := &Certificate{ - Nonce: nonce, - Key: key, - Serial: g.Serial, - CertType: g.CertType, - KeyId: g.KeyId, - ValidAfter: g.ValidAfter, - ValidBefore: g.ValidBefore, - } - - for principals := g.ValidPrincipals; len(principals) > 0; { - principal, rest, ok := parseString(principals) - if !ok { - return nil, errShortRead - } - c.ValidPrincipals = append(c.ValidPrincipals, string(principal)) - principals = rest - } - - c.CriticalOptions, err = parseTuples(g.CriticalOptions) - if err != nil { - return nil, err - } - c.Extensions, err = parseTuples(g.Extensions) - if err != nil { - return nil, err - } - c.Reserved = g.Reserved - k, err := ParsePublicKey(g.SignatureKey) - if err != nil { - return nil, err - } - - c.SignatureKey = k - c.Signature, rest, ok = parseSignatureBody(g.Signature) - if !ok || len(rest) > 0 { - return nil, errors.New("ssh: signature parse error") - } - - return c, nil -} - -type openSSHCertSigner struct { - pub *Certificate - signer Signer -} - -// NewCertSigner returns a Signer that signs with the given Certificate, whose -// private key is held by signer. It returns an error if the public key in cert -// doesn't match the key used by signer. -func NewCertSigner(cert *Certificate, signer Signer) (Signer, error) { - if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { - return nil, errors.New("ssh: signer and cert have different public key") - } - - return &openSSHCertSigner{cert, signer}, nil -} - -func (s *openSSHCertSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { - return s.signer.Sign(rand, data) -} - -func (s *openSSHCertSigner) PublicKey() PublicKey { - return s.pub -} - -const sourceAddressCriticalOption = "source-address" - -// CertChecker does the work of verifying a certificate. Its methods -// can be plugged into ClientConfig.HostKeyCallback and -// ServerConfig.PublicKeyCallback. For the CertChecker to work, -// minimally, the IsAuthority callback should be set. -type CertChecker struct { - // SupportedCriticalOptions lists the CriticalOptions that the - // server application layer understands. These are only used - // for user certificates. - SupportedCriticalOptions []string - - // IsAuthority should return true if the key is recognized as - // an authority. This allows for certificates to be signed by other - // certificates. - IsAuthority func(auth PublicKey) bool - - // Clock is used for verifying time stamps. If nil, time.Now - // is used. - Clock func() time.Time - - // UserKeyFallback is called when CertChecker.Authenticate encounters a - // public key that is not a certificate. It must implement validation - // of user keys or else, if nil, all such keys are rejected. - UserKeyFallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) - - // HostKeyFallback is called when CertChecker.CheckHostKey encounters a - // public key that is not a certificate. It must implement host key - // validation or else, if nil, all such keys are rejected. - HostKeyFallback func(addr string, remote net.Addr, key PublicKey) error - - // IsRevoked is called for each certificate so that revocation checking - // can be implemented. It should return true if the given certificate - // is revoked and false otherwise. If nil, no certificates are - // considered to have been revoked. - IsRevoked func(cert *Certificate) bool -} - -// CheckHostKey checks a host key certificate. This method can be -// plugged into ClientConfig.HostKeyCallback. -func (c *CertChecker) CheckHostKey(addr string, remote net.Addr, key PublicKey) error { - cert, ok := key.(*Certificate) - if !ok { - if c.HostKeyFallback != nil { - return c.HostKeyFallback(addr, remote, key) - } - return errors.New("ssh: non-certificate host key") - } - if cert.CertType != HostCert { - return fmt.Errorf("ssh: certificate presented as a host key has type %d", cert.CertType) - } - - return c.CheckCert(addr, cert) -} - -// Authenticate checks a user certificate. Authenticate can be used as -// a value for ServerConfig.PublicKeyCallback. -func (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permissions, error) { - cert, ok := pubKey.(*Certificate) - if !ok { - if c.UserKeyFallback != nil { - return c.UserKeyFallback(conn, pubKey) - } - return nil, errors.New("ssh: normal key pairs not accepted") - } - - if cert.CertType != UserCert { - return nil, fmt.Errorf("ssh: cert has type %d", cert.CertType) - } - - if err := c.CheckCert(conn.User(), cert); err != nil { - return nil, err - } - - return &cert.Permissions, nil -} - -// CheckCert checks CriticalOptions, ValidPrincipals, revocation, timestamp and -// the signature of the certificate. -func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { - if c.IsRevoked != nil && c.IsRevoked(cert) { - return fmt.Errorf("ssh: certicate serial %d revoked", cert.Serial) - } - - for opt, _ := range cert.CriticalOptions { - // sourceAddressCriticalOption will be enforced by - // serverAuthenticate - if opt == sourceAddressCriticalOption { - continue - } - - found := false - for _, supp := range c.SupportedCriticalOptions { - if supp == opt { - found = true - break - } - } - if !found { - return fmt.Errorf("ssh: unsupported critical option %q in certificate", opt) - } - } - - if len(cert.ValidPrincipals) > 0 { - // By default, certs are valid for all users/hosts. - found := false - for _, p := range cert.ValidPrincipals { - if p == principal { - found = true - break - } - } - if !found { - return fmt.Errorf("ssh: principal %q not in the set of valid principals for given certificate: %q", principal, cert.ValidPrincipals) - } - } - - if !c.IsAuthority(cert.SignatureKey) { - return fmt.Errorf("ssh: certificate signed by unrecognized authority") - } - - clock := c.Clock - if clock == nil { - clock = time.Now - } - - unixNow := clock().Unix() - if after := int64(cert.ValidAfter); after < 0 || unixNow < int64(cert.ValidAfter) { - return fmt.Errorf("ssh: cert is not yet valid") - } - if before := int64(cert.ValidBefore); cert.ValidBefore != uint64(CertTimeInfinity) && (unixNow >= before || before < 0) { - return fmt.Errorf("ssh: cert has expired") - } - if err := cert.SignatureKey.Verify(cert.bytesForSigning(), cert.Signature); err != nil { - return fmt.Errorf("ssh: certificate signature does not verify") - } - - return nil -} - -// SignCert sets c.SignatureKey to the authority's public key and stores a -// Signature, by authority, in the certificate. -func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { - c.Nonce = make([]byte, 32) - if _, err := io.ReadFull(rand, c.Nonce); err != nil { - return err - } - c.SignatureKey = authority.PublicKey() - - sig, err := authority.Sign(rand, c.bytesForSigning()) - if err != nil { - return err - } - c.Signature = sig - return nil -} - -var certAlgoNames = map[string]string{ - KeyAlgoRSA: CertAlgoRSAv01, - KeyAlgoDSA: CertAlgoDSAv01, - KeyAlgoECDSA256: CertAlgoECDSA256v01, - KeyAlgoECDSA384: CertAlgoECDSA384v01, - KeyAlgoECDSA521: CertAlgoECDSA521v01, - KeyAlgoED25519: CertAlgoED25519v01, -} - -// certToPrivAlgo returns the underlying algorithm for a certificate algorithm. -// Panics if a non-certificate algorithm is passed. -func certToPrivAlgo(algo string) string { - for privAlgo, pubAlgo := range certAlgoNames { - if pubAlgo == algo { - return privAlgo - } - } - panic("unknown cert algorithm") -} - -func (cert *Certificate) bytesForSigning() []byte { - c2 := *cert - c2.Signature = nil - out := c2.Marshal() - // Drop trailing signature length. - return out[:len(out)-4] -} - -// Marshal serializes c into OpenSSH's wire format. It is part of the -// PublicKey interface. -func (c *Certificate) Marshal() []byte { - generic := genericCertData{ - Serial: c.Serial, - CertType: c.CertType, - KeyId: c.KeyId, - ValidPrincipals: marshalStringList(c.ValidPrincipals), - ValidAfter: uint64(c.ValidAfter), - ValidBefore: uint64(c.ValidBefore), - CriticalOptions: marshalTuples(c.CriticalOptions), - Extensions: marshalTuples(c.Extensions), - Reserved: c.Reserved, - SignatureKey: c.SignatureKey.Marshal(), - } - if c.Signature != nil { - generic.Signature = Marshal(c.Signature) - } - genericBytes := Marshal(&generic) - keyBytes := c.Key.Marshal() - _, keyBytes, _ = parseString(keyBytes) - prefix := Marshal(&struct { - Name string - Nonce []byte - Key []byte `ssh:"rest"` - }{c.Type(), c.Nonce, keyBytes}) - - result := make([]byte, 0, len(prefix)+len(genericBytes)) - result = append(result, prefix...) - result = append(result, genericBytes...) - return result -} - -// Type returns the key name. It is part of the PublicKey interface. -func (c *Certificate) Type() string { - algo, ok := certAlgoNames[c.Key.Type()] - if !ok { - panic("unknown cert key type " + c.Key.Type()) - } - return algo -} - -// Verify verifies a signature against the certificate's public -// key. It is part of the PublicKey interface. -func (c *Certificate) Verify(data []byte, sig *Signature) error { - return c.Key.Verify(data, sig) -} - -func parseSignatureBody(in []byte) (out *Signature, rest []byte, ok bool) { - format, in, ok := parseString(in) - if !ok { - return - } - - out = &Signature{ - Format: string(format), - } - - if out.Blob, in, ok = parseString(in); !ok { - return - } - - return out, in, ok -} - -func parseSignature(in []byte) (out *Signature, rest []byte, ok bool) { - sigBytes, rest, ok := parseString(in) - if !ok { - return - } - - out, trailing, ok := parseSignatureBody(sigBytes) - if !ok || len(trailing) > 0 { - return nil, nil, false - } - return -} diff --git a/vendor/golang.org/x/crypto/ssh/certs_test.go b/vendor/golang.org/x/crypto/ssh/certs_test.go deleted file mode 100644 index c5f2e53..0000000 --- a/vendor/golang.org/x/crypto/ssh/certs_test.go +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto/rand" - "reflect" - "testing" - "time" -) - -// Cert generated by ssh-keygen 6.0p1 Debian-4. -// % ssh-keygen -s ca-key -I test user-key -const exampleSSHCert = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgb1srW/W3ZDjYAO45xLYAwzHBDLsJ4Ux6ICFIkTjb1LEAAAADAQABAAAAYQCkoR51poH0wE8w72cqSB8Sszx+vAhzcMdCO0wqHTj7UNENHWEXGrU0E0UQekD7U+yhkhtoyjbPOVIP7hNa6aRk/ezdh/iUnCIt4Jt1v3Z1h1P+hA4QuYFMHNB+rmjPwAcAAAAAAAAAAAAAAAEAAAAEdGVzdAAAAAAAAAAAAAAAAP//////////AAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAAHcAAAAHc3NoLXJzYQAAAAMBAAEAAABhANFS2kaktpSGc+CcmEKPyw9mJC4nZKxHKTgLVZeaGbFZOvJTNzBspQHdy7Q1uKSfktxpgjZnksiu/tFF9ngyY2KFoc+U88ya95IZUycBGCUbBQ8+bhDtw/icdDGQD5WnUwAAAG8AAAAHc3NoLXJzYQAAAGC8Y9Z2LQKhIhxf52773XaWrXdxP0t3GBVo4A10vUWiYoAGepr6rQIoGGXFxT4B9Gp+nEBJjOwKDXPrAevow0T9ca8gZN+0ykbhSrXLE5Ao48rqr3zP4O1/9P7e6gp0gw8=` - -func TestParseCert(t *testing.T) { - authKeyBytes := []byte(exampleSSHCert) - - key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) - if err != nil { - t.Fatalf("ParseAuthorizedKey: %v", err) - } - if len(rest) > 0 { - t.Errorf("rest: got %q, want empty", rest) - } - - if _, ok := key.(*Certificate); !ok { - t.Fatalf("got %v (%T), want *Certificate", key, key) - } - - marshaled := MarshalAuthorizedKey(key) - // Before comparison, remove the trailing newline that - // MarshalAuthorizedKey adds. - marshaled = marshaled[:len(marshaled)-1] - if !bytes.Equal(authKeyBytes, marshaled) { - t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) - } -} - -// Cert generated by ssh-keygen OpenSSH_6.8p1 OS X 10.10.3 -// % ssh-keygen -s ca -I testcert -O source-address=192.168.1.0/24 -O force-command=/bin/sleep user.pub -// user.pub key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMN -// Critical Options: -// force-command /bin/sleep -// source-address 192.168.1.0/24 -// Extensions: -// permit-X11-forwarding -// permit-agent-forwarding -// permit-port-forwarding -// permit-pty -// permit-user-rc -const exampleSSHCertWithOptions = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgDyysCJY0XrO1n03EeRRoITnTPdjENFmWDs9X58PP3VUAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMNAAAAAAAAAAAAAAABAAAACHRlc3RjZXJ0AAAAAAAAAAAAAAAA//////////8AAABLAAAADWZvcmNlLWNvbW1hbmQAAAAOAAAACi9iaW4vc2xlZXAAAAAOc291cmNlLWFkZHJlc3MAAAASAAAADjE5Mi4xNjguMS4wLzI0AAAAggAAABVwZXJtaXQtWDExLWZvcndhcmRpbmcAAAAAAAAAF3Blcm1pdC1hZ2VudC1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtcG9ydC1mb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAABFwAAAAdzc2gtcnNhAAAAAwEAAQAAAQEAwU+c5ui5A8+J/CFpjW8wCa52bEODA808WWQDCSuTG/eMXNf59v9Y8Pk0F1E9dGCosSNyVcB/hacUrc6He+i97+HJCyKavBsE6GDxrjRyxYqAlfcOXi/IVmaUGiO8OQ39d4GHrjToInKvExSUeleQyH4Y4/e27T/pILAqPFL3fyrvMLT5qU9QyIt6zIpa7GBP5+urouNavMprV3zsfIqNBbWypinOQAw823a5wN+zwXnhZrgQiHZ/USG09Y6k98y1dTVz8YHlQVR4D3lpTAsKDKJ5hCH9WU4fdf+lU8OyNGaJ/vz0XNqxcToe1l4numLTnaoSuH89pHryjqurB7lJKwAAAQ8AAAAHc3NoLXJzYQAAAQCaHvUIoPL1zWUHIXLvu96/HU1s/i4CAW2IIEuGgxCUCiFj6vyTyYtgxQxcmbfZf6eaITlS6XJZa7Qq4iaFZh75C1DXTX8labXhRSD4E2t//AIP9MC1rtQC5xo6FmbQ+BoKcDskr+mNACcbRSxs3IL3bwCfWDnIw2WbVox9ZdcthJKk4UoCW4ix4QwdHw7zlddlz++fGEEVhmTbll1SUkycGApPFBsAYRTMupUJcYPIeReBI/m8XfkoMk99bV8ZJQTAd7OekHY2/48Ff53jLmyDjP7kNw1F8OaPtkFs6dGJXta4krmaekPy87j+35In5hFj7yoOqvSbmYUkeX70/GGQ` - -func TestParseCertWithOptions(t *testing.T) { - opts := map[string]string{ - "source-address": "192.168.1.0/24", - "force-command": "/bin/sleep", - } - exts := map[string]string{ - "permit-X11-forwarding": "", - "permit-agent-forwarding": "", - "permit-port-forwarding": "", - "permit-pty": "", - "permit-user-rc": "", - } - authKeyBytes := []byte(exampleSSHCertWithOptions) - - key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) - if err != nil { - t.Fatalf("ParseAuthorizedKey: %v", err) - } - if len(rest) > 0 { - t.Errorf("rest: got %q, want empty", rest) - } - cert, ok := key.(*Certificate) - if !ok { - t.Fatalf("got %v (%T), want *Certificate", key, key) - } - if !reflect.DeepEqual(cert.CriticalOptions, opts) { - t.Errorf("unexpected critical options - got %v, want %v", cert.CriticalOptions, opts) - } - if !reflect.DeepEqual(cert.Extensions, exts) { - t.Errorf("unexpected Extensions - got %v, want %v", cert.Extensions, exts) - } - marshaled := MarshalAuthorizedKey(key) - // Before comparison, remove the trailing newline that - // MarshalAuthorizedKey adds. - marshaled = marshaled[:len(marshaled)-1] - if !bytes.Equal(authKeyBytes, marshaled) { - t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) - } -} - -func TestValidateCert(t *testing.T) { - key, _, _, _, err := ParseAuthorizedKey([]byte(exampleSSHCert)) - if err != nil { - t.Fatalf("ParseAuthorizedKey: %v", err) - } - validCert, ok := key.(*Certificate) - if !ok { - t.Fatalf("got %v (%T), want *Certificate", key, key) - } - checker := CertChecker{} - checker.IsAuthority = func(k PublicKey) bool { - return bytes.Equal(k.Marshal(), validCert.SignatureKey.Marshal()) - } - - if err := checker.CheckCert("user", validCert); err != nil { - t.Errorf("Unable to validate certificate: %v", err) - } - invalidCert := &Certificate{ - Key: testPublicKeys["rsa"], - SignatureKey: testPublicKeys["ecdsa"], - ValidBefore: CertTimeInfinity, - Signature: &Signature{}, - } - if err := checker.CheckCert("user", invalidCert); err == nil { - t.Error("Invalid cert signature passed validation") - } -} - -func TestValidateCertTime(t *testing.T) { - cert := Certificate{ - ValidPrincipals: []string{"user"}, - Key: testPublicKeys["rsa"], - ValidAfter: 50, - ValidBefore: 100, - } - - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - - for ts, ok := range map[int64]bool{ - 25: false, - 50: true, - 99: true, - 100: false, - 125: false, - } { - checker := CertChecker{ - Clock: func() time.Time { return time.Unix(ts, 0) }, - } - checker.IsAuthority = func(k PublicKey) bool { - return bytes.Equal(k.Marshal(), - testPublicKeys["ecdsa"].Marshal()) - } - - if v := checker.CheckCert("user", &cert); (v == nil) != ok { - t.Errorf("Authenticate(%d): %v", ts, v) - } - } -} - -// TODO(hanwen): tests for -// -// host keys: -// * fallbacks - -func TestHostKeyCert(t *testing.T) { - cert := &Certificate{ - ValidPrincipals: []string{"hostname", "hostname.domain"}, - Key: testPublicKeys["rsa"], - ValidBefore: CertTimeInfinity, - CertType: HostCert, - } - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - - checker := &CertChecker{ - IsAuthority: func(p PublicKey) bool { - return bytes.Equal(testPublicKeys["ecdsa"].Marshal(), p.Marshal()) - }, - } - - certSigner, err := NewCertSigner(cert, testSigners["rsa"]) - if err != nil { - t.Errorf("NewCertSigner: %v", err) - } - - for _, name := range []string{"hostname", "otherhost"} { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - errc := make(chan error) - - go func() { - conf := ServerConfig{ - NoClientAuth: true, - } - conf.AddHostKey(certSigner) - _, _, _, err := NewServerConn(c1, &conf) - errc <- err - }() - - config := &ClientConfig{ - User: "user", - HostKeyCallback: checker.CheckHostKey, - } - _, _, _, err = NewClientConn(c2, name, config) - - succeed := name == "hostname" - if (err == nil) != succeed { - t.Fatalf("NewClientConn(%q): %v", name, err) - } - - err = <-errc - if (err == nil) != succeed { - t.Fatalf("NewServerConn(%q): %v", name, err) - } - } -} diff --git a/vendor/golang.org/x/crypto/ssh/channel.go b/vendor/golang.org/x/crypto/ssh/channel.go deleted file mode 100644 index 6d709b5..0000000 --- a/vendor/golang.org/x/crypto/ssh/channel.go +++ /dev/null @@ -1,633 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "encoding/binary" - "errors" - "fmt" - "io" - "log" - "sync" -) - -const ( - minPacketLength = 9 - // channelMaxPacket contains the maximum number of bytes that will be - // sent in a single packet. As per RFC 4253, section 6.1, 32k is also - // the minimum. - channelMaxPacket = 1 << 15 - // We follow OpenSSH here. - channelWindowSize = 64 * channelMaxPacket -) - -// NewChannel represents an incoming request to a channel. It must either be -// accepted for use by calling Accept, or rejected by calling Reject. -type NewChannel interface { - // Accept accepts the channel creation request. It returns the Channel - // and a Go channel containing SSH requests. The Go channel must be - // serviced otherwise the Channel will hang. - Accept() (Channel, <-chan *Request, error) - - // Reject rejects the channel creation request. After calling - // this, no other methods on the Channel may be called. - Reject(reason RejectionReason, message string) error - - // ChannelType returns the type of the channel, as supplied by the - // client. - ChannelType() string - - // ExtraData returns the arbitrary payload for this channel, as supplied - // by the client. This data is specific to the channel type. - ExtraData() []byte -} - -// A Channel is an ordered, reliable, flow-controlled, duplex stream -// that is multiplexed over an SSH connection. -type Channel interface { - // Read reads up to len(data) bytes from the channel. - Read(data []byte) (int, error) - - // Write writes len(data) bytes to the channel. - Write(data []byte) (int, error) - - // Close signals end of channel use. No data may be sent after this - // call. - Close() error - - // CloseWrite signals the end of sending in-band - // data. Requests may still be sent, and the other side may - // still send data - CloseWrite() error - - // SendRequest sends a channel request. If wantReply is true, - // it will wait for a reply and return the result as a - // boolean, otherwise the return value will be false. Channel - // requests are out-of-band messages so they may be sent even - // if the data stream is closed or blocked by flow control. - // If the channel is closed before a reply is returned, io.EOF - // is returned. - SendRequest(name string, wantReply bool, payload []byte) (bool, error) - - // Stderr returns an io.ReadWriter that writes to this channel - // with the extended data type set to stderr. Stderr may - // safely be read and written from a different goroutine than - // Read and Write respectively. - Stderr() io.ReadWriter -} - -// Request is a request sent outside of the normal stream of -// data. Requests can either be specific to an SSH channel, or they -// can be global. -type Request struct { - Type string - WantReply bool - Payload []byte - - ch *channel - mux *mux -} - -// Reply sends a response to a request. It must be called for all requests -// where WantReply is true and is a no-op otherwise. The payload argument is -// ignored for replies to channel-specific requests. -func (r *Request) Reply(ok bool, payload []byte) error { - if !r.WantReply { - return nil - } - - if r.ch == nil { - return r.mux.ackRequest(ok, payload) - } - - return r.ch.ackRequest(ok) -} - -// RejectionReason is an enumeration used when rejecting channel creation -// requests. See RFC 4254, section 5.1. -type RejectionReason uint32 - -const ( - Prohibited RejectionReason = iota + 1 - ConnectionFailed - UnknownChannelType - ResourceShortage -) - -// String converts the rejection reason to human readable form. -func (r RejectionReason) String() string { - switch r { - case Prohibited: - return "administratively prohibited" - case ConnectionFailed: - return "connect failed" - case UnknownChannelType: - return "unknown channel type" - case ResourceShortage: - return "resource shortage" - } - return fmt.Sprintf("unknown reason %d", int(r)) -} - -func min(a uint32, b int) uint32 { - if a < uint32(b) { - return a - } - return uint32(b) -} - -type channelDirection uint8 - -const ( - channelInbound channelDirection = iota - channelOutbound -) - -// channel is an implementation of the Channel interface that works -// with the mux class. -type channel struct { - // R/O after creation - chanType string - extraData []byte - localId, remoteId uint32 - - // maxIncomingPayload and maxRemotePayload are the maximum - // payload sizes of normal and extended data packets for - // receiving and sending, respectively. The wire packet will - // be 9 or 13 bytes larger (excluding encryption overhead). - maxIncomingPayload uint32 - maxRemotePayload uint32 - - mux *mux - - // decided is set to true if an accept or reject message has been sent - // (for outbound channels) or received (for inbound channels). - decided bool - - // direction contains either channelOutbound, for channels created - // locally, or channelInbound, for channels created by the peer. - direction channelDirection - - // Pending internal channel messages. - msg chan interface{} - - // Since requests have no ID, there can be only one request - // with WantReply=true outstanding. This lock is held by a - // goroutine that has such an outgoing request pending. - sentRequestMu sync.Mutex - - incomingRequests chan *Request - - sentEOF bool - - // thread-safe data - remoteWin window - pending *buffer - extPending *buffer - - // windowMu protects myWindow, the flow-control window. - windowMu sync.Mutex - myWindow uint32 - - // writeMu serializes calls to mux.conn.writePacket() and - // protects sentClose and packetPool. This mutex must be - // different from windowMu, as writePacket can block if there - // is a key exchange pending. - writeMu sync.Mutex - sentClose bool - - // packetPool has a buffer for each extended channel ID to - // save allocations during writes. - packetPool map[uint32][]byte -} - -// writePacket sends a packet. If the packet is a channel close, it updates -// sentClose. This method takes the lock c.writeMu. -func (c *channel) writePacket(packet []byte) error { - c.writeMu.Lock() - if c.sentClose { - c.writeMu.Unlock() - return io.EOF - } - c.sentClose = (packet[0] == msgChannelClose) - err := c.mux.conn.writePacket(packet) - c.writeMu.Unlock() - return err -} - -func (c *channel) sendMessage(msg interface{}) error { - if debugMux { - log.Printf("send(%d): %#v", c.mux.chanList.offset, msg) - } - - p := Marshal(msg) - binary.BigEndian.PutUint32(p[1:], c.remoteId) - return c.writePacket(p) -} - -// WriteExtended writes data to a specific extended stream. These streams are -// used, for example, for stderr. -func (c *channel) WriteExtended(data []byte, extendedCode uint32) (n int, err error) { - if c.sentEOF { - return 0, io.EOF - } - // 1 byte message type, 4 bytes remoteId, 4 bytes data length - opCode := byte(msgChannelData) - headerLength := uint32(9) - if extendedCode > 0 { - headerLength += 4 - opCode = msgChannelExtendedData - } - - c.writeMu.Lock() - packet := c.packetPool[extendedCode] - // We don't remove the buffer from packetPool, so - // WriteExtended calls from different goroutines will be - // flagged as errors by the race detector. - c.writeMu.Unlock() - - for len(data) > 0 { - space := min(c.maxRemotePayload, len(data)) - if space, err = c.remoteWin.reserve(space); err != nil { - return n, err - } - if want := headerLength + space; uint32(cap(packet)) < want { - packet = make([]byte, want) - } else { - packet = packet[:want] - } - - todo := data[:space] - - packet[0] = opCode - binary.BigEndian.PutUint32(packet[1:], c.remoteId) - if extendedCode > 0 { - binary.BigEndian.PutUint32(packet[5:], uint32(extendedCode)) - } - binary.BigEndian.PutUint32(packet[headerLength-4:], uint32(len(todo))) - copy(packet[headerLength:], todo) - if err = c.writePacket(packet); err != nil { - return n, err - } - - n += len(todo) - data = data[len(todo):] - } - - c.writeMu.Lock() - c.packetPool[extendedCode] = packet - c.writeMu.Unlock() - - return n, err -} - -func (c *channel) handleData(packet []byte) error { - headerLen := 9 - isExtendedData := packet[0] == msgChannelExtendedData - if isExtendedData { - headerLen = 13 - } - if len(packet) < headerLen { - // malformed data packet - return parseError(packet[0]) - } - - var extended uint32 - if isExtendedData { - extended = binary.BigEndian.Uint32(packet[5:]) - } - - length := binary.BigEndian.Uint32(packet[headerLen-4 : headerLen]) - if length == 0 { - return nil - } - if length > c.maxIncomingPayload { - // TODO(hanwen): should send Disconnect? - return errors.New("ssh: incoming packet exceeds maximum payload size") - } - - data := packet[headerLen:] - if length != uint32(len(data)) { - return errors.New("ssh: wrong packet length") - } - - c.windowMu.Lock() - if c.myWindow < length { - c.windowMu.Unlock() - // TODO(hanwen): should send Disconnect with reason? - return errors.New("ssh: remote side wrote too much") - } - c.myWindow -= length - c.windowMu.Unlock() - - if extended == 1 { - c.extPending.write(data) - } else if extended > 0 { - // discard other extended data. - } else { - c.pending.write(data) - } - return nil -} - -func (c *channel) adjustWindow(n uint32) error { - c.windowMu.Lock() - // Since myWindow is managed on our side, and can never exceed - // the initial window setting, we don't worry about overflow. - c.myWindow += uint32(n) - c.windowMu.Unlock() - return c.sendMessage(windowAdjustMsg{ - AdditionalBytes: uint32(n), - }) -} - -func (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error) { - switch extended { - case 1: - n, err = c.extPending.Read(data) - case 0: - n, err = c.pending.Read(data) - default: - return 0, fmt.Errorf("ssh: extended code %d unimplemented", extended) - } - - if n > 0 { - err = c.adjustWindow(uint32(n)) - // sendWindowAdjust can return io.EOF if the remote - // peer has closed the connection, however we want to - // defer forwarding io.EOF to the caller of Read until - // the buffer has been drained. - if n > 0 && err == io.EOF { - err = nil - } - } - - return n, err -} - -func (c *channel) close() { - c.pending.eof() - c.extPending.eof() - close(c.msg) - close(c.incomingRequests) - c.writeMu.Lock() - // This is not necessary for a normal channel teardown, but if - // there was another error, it is. - c.sentClose = true - c.writeMu.Unlock() - // Unblock writers. - c.remoteWin.close() -} - -// responseMessageReceived is called when a success or failure message is -// received on a channel to check that such a message is reasonable for the -// given channel. -func (c *channel) responseMessageReceived() error { - if c.direction == channelInbound { - return errors.New("ssh: channel response message received on inbound channel") - } - if c.decided { - return errors.New("ssh: duplicate response received for channel") - } - c.decided = true - return nil -} - -func (c *channel) handlePacket(packet []byte) error { - switch packet[0] { - case msgChannelData, msgChannelExtendedData: - return c.handleData(packet) - case msgChannelClose: - c.sendMessage(channelCloseMsg{PeersId: c.remoteId}) - c.mux.chanList.remove(c.localId) - c.close() - return nil - case msgChannelEOF: - // RFC 4254 is mute on how EOF affects dataExt messages but - // it is logical to signal EOF at the same time. - c.extPending.eof() - c.pending.eof() - return nil - } - - decoded, err := decode(packet) - if err != nil { - return err - } - - switch msg := decoded.(type) { - case *channelOpenFailureMsg: - if err := c.responseMessageReceived(); err != nil { - return err - } - c.mux.chanList.remove(msg.PeersId) - c.msg <- msg - case *channelOpenConfirmMsg: - if err := c.responseMessageReceived(); err != nil { - return err - } - if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { - return fmt.Errorf("ssh: invalid MaxPacketSize %d from peer", msg.MaxPacketSize) - } - c.remoteId = msg.MyId - c.maxRemotePayload = msg.MaxPacketSize - c.remoteWin.add(msg.MyWindow) - c.msg <- msg - case *windowAdjustMsg: - if !c.remoteWin.add(msg.AdditionalBytes) { - return fmt.Errorf("ssh: invalid window update for %d bytes", msg.AdditionalBytes) - } - case *channelRequestMsg: - req := Request{ - Type: msg.Request, - WantReply: msg.WantReply, - Payload: msg.RequestSpecificData, - ch: c, - } - - c.incomingRequests <- &req - default: - c.msg <- msg - } - return nil -} - -func (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel { - ch := &channel{ - remoteWin: window{Cond: newCond()}, - myWindow: channelWindowSize, - pending: newBuffer(), - extPending: newBuffer(), - direction: direction, - incomingRequests: make(chan *Request, 16), - msg: make(chan interface{}, 16), - chanType: chanType, - extraData: extraData, - mux: m, - packetPool: make(map[uint32][]byte), - } - ch.localId = m.chanList.add(ch) - return ch -} - -var errUndecided = errors.New("ssh: must Accept or Reject channel") -var errDecidedAlready = errors.New("ssh: can call Accept or Reject only once") - -type extChannel struct { - code uint32 - ch *channel -} - -func (e *extChannel) Write(data []byte) (n int, err error) { - return e.ch.WriteExtended(data, e.code) -} - -func (e *extChannel) Read(data []byte) (n int, err error) { - return e.ch.ReadExtended(data, e.code) -} - -func (c *channel) Accept() (Channel, <-chan *Request, error) { - if c.decided { - return nil, nil, errDecidedAlready - } - c.maxIncomingPayload = channelMaxPacket - confirm := channelOpenConfirmMsg{ - PeersId: c.remoteId, - MyId: c.localId, - MyWindow: c.myWindow, - MaxPacketSize: c.maxIncomingPayload, - } - c.decided = true - if err := c.sendMessage(confirm); err != nil { - return nil, nil, err - } - - return c, c.incomingRequests, nil -} - -func (ch *channel) Reject(reason RejectionReason, message string) error { - if ch.decided { - return errDecidedAlready - } - reject := channelOpenFailureMsg{ - PeersId: ch.remoteId, - Reason: reason, - Message: message, - Language: "en", - } - ch.decided = true - return ch.sendMessage(reject) -} - -func (ch *channel) Read(data []byte) (int, error) { - if !ch.decided { - return 0, errUndecided - } - return ch.ReadExtended(data, 0) -} - -func (ch *channel) Write(data []byte) (int, error) { - if !ch.decided { - return 0, errUndecided - } - return ch.WriteExtended(data, 0) -} - -func (ch *channel) CloseWrite() error { - if !ch.decided { - return errUndecided - } - ch.sentEOF = true - return ch.sendMessage(channelEOFMsg{ - PeersId: ch.remoteId}) -} - -func (ch *channel) Close() error { - if !ch.decided { - return errUndecided - } - - return ch.sendMessage(channelCloseMsg{ - PeersId: ch.remoteId}) -} - -// Extended returns an io.ReadWriter that sends and receives data on the given, -// SSH extended stream. Such streams are used, for example, for stderr. -func (ch *channel) Extended(code uint32) io.ReadWriter { - if !ch.decided { - return nil - } - return &extChannel{code, ch} -} - -func (ch *channel) Stderr() io.ReadWriter { - return ch.Extended(1) -} - -func (ch *channel) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { - if !ch.decided { - return false, errUndecided - } - - if wantReply { - ch.sentRequestMu.Lock() - defer ch.sentRequestMu.Unlock() - } - - msg := channelRequestMsg{ - PeersId: ch.remoteId, - Request: name, - WantReply: wantReply, - RequestSpecificData: payload, - } - - if err := ch.sendMessage(msg); err != nil { - return false, err - } - - if wantReply { - m, ok := (<-ch.msg) - if !ok { - return false, io.EOF - } - switch m.(type) { - case *channelRequestFailureMsg: - return false, nil - case *channelRequestSuccessMsg: - return true, nil - default: - return false, fmt.Errorf("ssh: unexpected response to channel request: %#v", m) - } - } - - return false, nil -} - -// ackRequest either sends an ack or nack to the channel request. -func (ch *channel) ackRequest(ok bool) error { - if !ch.decided { - return errUndecided - } - - var msg interface{} - if !ok { - msg = channelRequestFailureMsg{ - PeersId: ch.remoteId, - } - } else { - msg = channelRequestSuccessMsg{ - PeersId: ch.remoteId, - } - } - return ch.sendMessage(msg) -} - -func (ch *channel) ChannelType() string { - return ch.chanType -} - -func (ch *channel) ExtraData() []byte { - return ch.extraData -} diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go deleted file mode 100644 index 34d3917..0000000 --- a/vendor/golang.org/x/crypto/ssh/cipher.go +++ /dev/null @@ -1,579 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto/aes" - "crypto/cipher" - "crypto/des" - "crypto/rc4" - "crypto/subtle" - "encoding/binary" - "errors" - "fmt" - "hash" - "io" - "io/ioutil" -) - -const ( - packetSizeMultiple = 16 // TODO(huin) this should be determined by the cipher. - - // RFC 4253 section 6.1 defines a minimum packet size of 32768 that implementations - // MUST be able to process (plus a few more kilobytes for padding and mac). The RFC - // indicates implementations SHOULD be able to handle larger packet sizes, but then - // waffles on about reasonable limits. - // - // OpenSSH caps their maxPacket at 256kB so we choose to do - // the same. maxPacket is also used to ensure that uint32 - // length fields do not overflow, so it should remain well - // below 4G. - maxPacket = 256 * 1024 -) - -// noneCipher implements cipher.Stream and provides no encryption. It is used -// by the transport before the first key-exchange. -type noneCipher struct{} - -func (c noneCipher) XORKeyStream(dst, src []byte) { - copy(dst, src) -} - -func newAESCTR(key, iv []byte) (cipher.Stream, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - return cipher.NewCTR(c, iv), nil -} - -func newRC4(key, iv []byte) (cipher.Stream, error) { - return rc4.NewCipher(key) -} - -type streamCipherMode struct { - keySize int - ivSize int - skip int - createFunc func(key, iv []byte) (cipher.Stream, error) -} - -func (c *streamCipherMode) createStream(key, iv []byte) (cipher.Stream, error) { - if len(key) < c.keySize { - panic("ssh: key length too small for cipher") - } - if len(iv) < c.ivSize { - panic("ssh: iv too small for cipher") - } - - stream, err := c.createFunc(key[:c.keySize], iv[:c.ivSize]) - if err != nil { - return nil, err - } - - var streamDump []byte - if c.skip > 0 { - streamDump = make([]byte, 512) - } - - for remainingToDump := c.skip; remainingToDump > 0; { - dumpThisTime := remainingToDump - if dumpThisTime > len(streamDump) { - dumpThisTime = len(streamDump) - } - stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) - remainingToDump -= dumpThisTime - } - - return stream, nil -} - -// cipherModes documents properties of supported ciphers. Ciphers not included -// are not supported and will not be negotiated, even if explicitly requested in -// ClientConfig.Crypto.Ciphers. -var cipherModes = map[string]*streamCipherMode{ - // Ciphers from RFC4344, which introduced many CTR-based ciphers. Algorithms - // are defined in the order specified in the RFC. - "aes128-ctr": {16, aes.BlockSize, 0, newAESCTR}, - "aes192-ctr": {24, aes.BlockSize, 0, newAESCTR}, - "aes256-ctr": {32, aes.BlockSize, 0, newAESCTR}, - - // Ciphers from RFC4345, which introduces security-improved arcfour ciphers. - // They are defined in the order specified in the RFC. - "arcfour128": {16, 0, 1536, newRC4}, - "arcfour256": {32, 0, 1536, newRC4}, - - // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. - // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and - // RC4) has problems with weak keys, and should be used with caution." - // RFC4345 introduces improved versions of Arcfour. - "arcfour": {16, 0, 0, newRC4}, - - // AES-GCM is not a stream cipher, so it is constructed with a - // special case. If we add any more non-stream ciphers, we - // should invest a cleaner way to do this. - gcmCipherID: {16, 12, 0, nil}, - - // CBC mode is insecure and so is not included in the default config. - // (See http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf). If absolutely - // needed, it's possible to specify a custom Config to enable it. - // You should expect that an active attacker can recover plaintext if - // you do. - aes128cbcID: {16, aes.BlockSize, 0, nil}, - - // 3des-cbc is insecure and is disabled by default. - tripledescbcID: {24, des.BlockSize, 0, nil}, -} - -// prefixLen is the length of the packet prefix that contains the packet length -// and number of padding bytes. -const prefixLen = 5 - -// streamPacketCipher is a packetCipher using a stream cipher. -type streamPacketCipher struct { - mac hash.Hash - cipher cipher.Stream - - // The following members are to avoid per-packet allocations. - prefix [prefixLen]byte - seqNumBytes [4]byte - padding [2 * packetSizeMultiple]byte - packetData []byte - macResult []byte -} - -// readPacket reads and decrypt a single packet from the reader argument. -func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - if _, err := io.ReadFull(r, s.prefix[:]); err != nil { - return nil, err - } - - s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) - length := binary.BigEndian.Uint32(s.prefix[0:4]) - paddingLength := uint32(s.prefix[4]) - - var macSize uint32 - if s.mac != nil { - s.mac.Reset() - binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) - s.mac.Write(s.seqNumBytes[:]) - s.mac.Write(s.prefix[:]) - macSize = uint32(s.mac.Size()) - } - - if length <= paddingLength+1 { - return nil, errors.New("ssh: invalid packet length, packet too small") - } - - if length > maxPacket { - return nil, errors.New("ssh: invalid packet length, packet too large") - } - - // the maxPacket check above ensures that length-1+macSize - // does not overflow. - if uint32(cap(s.packetData)) < length-1+macSize { - s.packetData = make([]byte, length-1+macSize) - } else { - s.packetData = s.packetData[:length-1+macSize] - } - - if _, err := io.ReadFull(r, s.packetData); err != nil { - return nil, err - } - mac := s.packetData[length-1:] - data := s.packetData[:length-1] - s.cipher.XORKeyStream(data, data) - - if s.mac != nil { - s.mac.Write(data) - s.macResult = s.mac.Sum(s.macResult[:0]) - if subtle.ConstantTimeCompare(s.macResult, mac) != 1 { - return nil, errors.New("ssh: MAC failure") - } - } - - return s.packetData[:length-paddingLength-1], nil -} - -// writePacket encrypts and sends a packet of data to the writer argument -func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - if len(packet) > maxPacket { - return errors.New("ssh: packet too large") - } - - paddingLength := packetSizeMultiple - (prefixLen+len(packet))%packetSizeMultiple - if paddingLength < 4 { - paddingLength += packetSizeMultiple - } - - length := len(packet) + 1 + paddingLength - binary.BigEndian.PutUint32(s.prefix[:], uint32(length)) - s.prefix[4] = byte(paddingLength) - padding := s.padding[:paddingLength] - if _, err := io.ReadFull(rand, padding); err != nil { - return err - } - - if s.mac != nil { - s.mac.Reset() - binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) - s.mac.Write(s.seqNumBytes[:]) - s.mac.Write(s.prefix[:]) - s.mac.Write(packet) - s.mac.Write(padding) - } - - s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) - s.cipher.XORKeyStream(packet, packet) - s.cipher.XORKeyStream(padding, padding) - - if _, err := w.Write(s.prefix[:]); err != nil { - return err - } - if _, err := w.Write(packet); err != nil { - return err - } - if _, err := w.Write(padding); err != nil { - return err - } - - if s.mac != nil { - s.macResult = s.mac.Sum(s.macResult[:0]) - if _, err := w.Write(s.macResult); err != nil { - return err - } - } - - return nil -} - -type gcmCipher struct { - aead cipher.AEAD - prefix [4]byte - iv []byte - buf []byte -} - -func newGCMCipher(iv, key, macKey []byte) (packetCipher, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - aead, err := cipher.NewGCM(c) - if err != nil { - return nil, err - } - - return &gcmCipher{ - aead: aead, - iv: iv, - }, nil -} - -const gcmTagSize = 16 - -func (c *gcmCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - // Pad out to multiple of 16 bytes. This is different from the - // stream cipher because that encrypts the length too. - padding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple) - if padding < 4 { - padding += packetSizeMultiple - } - - length := uint32(len(packet) + int(padding) + 1) - binary.BigEndian.PutUint32(c.prefix[:], length) - if _, err := w.Write(c.prefix[:]); err != nil { - return err - } - - if cap(c.buf) < int(length) { - c.buf = make([]byte, length) - } else { - c.buf = c.buf[:length] - } - - c.buf[0] = padding - copy(c.buf[1:], packet) - if _, err := io.ReadFull(rand, c.buf[1+len(packet):]); err != nil { - return err - } - c.buf = c.aead.Seal(c.buf[:0], c.iv, c.buf, c.prefix[:]) - if _, err := w.Write(c.buf); err != nil { - return err - } - c.incIV() - - return nil -} - -func (c *gcmCipher) incIV() { - for i := 4 + 7; i >= 4; i-- { - c.iv[i]++ - if c.iv[i] != 0 { - break - } - } -} - -func (c *gcmCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - if _, err := io.ReadFull(r, c.prefix[:]); err != nil { - return nil, err - } - length := binary.BigEndian.Uint32(c.prefix[:]) - if length > maxPacket { - return nil, errors.New("ssh: max packet length exceeded.") - } - - if cap(c.buf) < int(length+gcmTagSize) { - c.buf = make([]byte, length+gcmTagSize) - } else { - c.buf = c.buf[:length+gcmTagSize] - } - - if _, err := io.ReadFull(r, c.buf); err != nil { - return nil, err - } - - plain, err := c.aead.Open(c.buf[:0], c.iv, c.buf, c.prefix[:]) - if err != nil { - return nil, err - } - c.incIV() - - padding := plain[0] - if padding < 4 || padding >= 20 { - return nil, fmt.Errorf("ssh: illegal padding %d", padding) - } - - if int(padding+1) >= len(plain) { - return nil, fmt.Errorf("ssh: padding %d too large", padding) - } - plain = plain[1 : length-uint32(padding)] - return plain, nil -} - -// cbcCipher implements aes128-cbc cipher defined in RFC 4253 section 6.1 -type cbcCipher struct { - mac hash.Hash - macSize uint32 - decrypter cipher.BlockMode - encrypter cipher.BlockMode - - // The following members are to avoid per-packet allocations. - seqNumBytes [4]byte - packetData []byte - macResult []byte - - // Amount of data we should still read to hide which - // verification error triggered. - oracleCamouflage uint32 -} - -func newCBCCipher(c cipher.Block, iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - cbc := &cbcCipher{ - mac: macModes[algs.MAC].new(macKey), - decrypter: cipher.NewCBCDecrypter(c, iv), - encrypter: cipher.NewCBCEncrypter(c, iv), - packetData: make([]byte, 1024), - } - if cbc.mac != nil { - cbc.macSize = uint32(cbc.mac.Size()) - } - - return cbc, nil -} - -func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - c, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - cbc, err := newCBCCipher(c, iv, key, macKey, algs) - if err != nil { - return nil, err - } - - return cbc, nil -} - -func newTripleDESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { - c, err := des.NewTripleDESCipher(key) - if err != nil { - return nil, err - } - - cbc, err := newCBCCipher(c, iv, key, macKey, algs) - if err != nil { - return nil, err - } - - return cbc, nil -} - -func maxUInt32(a, b int) uint32 { - if a > b { - return uint32(a) - } - return uint32(b) -} - -const ( - cbcMinPacketSizeMultiple = 8 - cbcMinPacketSize = 16 - cbcMinPaddingSize = 4 -) - -// cbcError represents a verification error that may leak information. -type cbcError string - -func (e cbcError) Error() string { return string(e) } - -func (c *cbcCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { - p, err := c.readPacketLeaky(seqNum, r) - if err != nil { - if _, ok := err.(cbcError); ok { - // Verification error: read a fixed amount of - // data, to make distinguishing between - // failing MAC and failing length check more - // difficult. - io.CopyN(ioutil.Discard, r, int64(c.oracleCamouflage)) - } - } - return p, err -} - -func (c *cbcCipher) readPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { - blockSize := c.decrypter.BlockSize() - - // Read the header, which will include some of the subsequent data in the - // case of block ciphers - this is copied back to the payload later. - // How many bytes of payload/padding will be read with this first read. - firstBlockLength := uint32((prefixLen + blockSize - 1) / blockSize * blockSize) - firstBlock := c.packetData[:firstBlockLength] - if _, err := io.ReadFull(r, firstBlock); err != nil { - return nil, err - } - - c.oracleCamouflage = maxPacket + 4 + c.macSize - firstBlockLength - - c.decrypter.CryptBlocks(firstBlock, firstBlock) - length := binary.BigEndian.Uint32(firstBlock[:4]) - if length > maxPacket { - return nil, cbcError("ssh: packet too large") - } - if length+4 < maxUInt32(cbcMinPacketSize, blockSize) { - // The minimum size of a packet is 16 (or the cipher block size, whichever - // is larger) bytes. - return nil, cbcError("ssh: packet too small") - } - // The length of the packet (including the length field but not the MAC) must - // be a multiple of the block size or 8, whichever is larger. - if (length+4)%maxUInt32(cbcMinPacketSizeMultiple, blockSize) != 0 { - return nil, cbcError("ssh: invalid packet length multiple") - } - - paddingLength := uint32(firstBlock[4]) - if paddingLength < cbcMinPaddingSize || length <= paddingLength+1 { - return nil, cbcError("ssh: invalid packet length") - } - - // Positions within the c.packetData buffer: - macStart := 4 + length - paddingStart := macStart - paddingLength - - // Entire packet size, starting before length, ending at end of mac. - entirePacketSize := macStart + c.macSize - - // Ensure c.packetData is large enough for the entire packet data. - if uint32(cap(c.packetData)) < entirePacketSize { - // Still need to upsize and copy, but this should be rare at runtime, only - // on upsizing the packetData buffer. - c.packetData = make([]byte, entirePacketSize) - copy(c.packetData, firstBlock) - } else { - c.packetData = c.packetData[:entirePacketSize] - } - - if n, err := io.ReadFull(r, c.packetData[firstBlockLength:]); err != nil { - return nil, err - } else { - c.oracleCamouflage -= uint32(n) - } - - remainingCrypted := c.packetData[firstBlockLength:macStart] - c.decrypter.CryptBlocks(remainingCrypted, remainingCrypted) - - mac := c.packetData[macStart:] - if c.mac != nil { - c.mac.Reset() - binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) - c.mac.Write(c.seqNumBytes[:]) - c.mac.Write(c.packetData[:macStart]) - c.macResult = c.mac.Sum(c.macResult[:0]) - if subtle.ConstantTimeCompare(c.macResult, mac) != 1 { - return nil, cbcError("ssh: MAC failure") - } - } - - return c.packetData[prefixLen:paddingStart], nil -} - -func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { - effectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize()) - - // Length of encrypted portion of the packet (header, payload, padding). - // Enforce minimum padding and packet size. - encLength := maxUInt32(prefixLen+len(packet)+cbcMinPaddingSize, cbcMinPaddingSize) - // Enforce block size. - encLength = (encLength + effectiveBlockSize - 1) / effectiveBlockSize * effectiveBlockSize - - length := encLength - 4 - paddingLength := int(length) - (1 + len(packet)) - - // Overall buffer contains: header, payload, padding, mac. - // Space for the MAC is reserved in the capacity but not the slice length. - bufferSize := encLength + c.macSize - if uint32(cap(c.packetData)) < bufferSize { - c.packetData = make([]byte, encLength, bufferSize) - } else { - c.packetData = c.packetData[:encLength] - } - - p := c.packetData - - // Packet header. - binary.BigEndian.PutUint32(p, length) - p = p[4:] - p[0] = byte(paddingLength) - - // Payload. - p = p[1:] - copy(p, packet) - - // Padding. - p = p[len(packet):] - if _, err := io.ReadFull(rand, p); err != nil { - return err - } - - if c.mac != nil { - c.mac.Reset() - binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) - c.mac.Write(c.seqNumBytes[:]) - c.mac.Write(c.packetData) - // The MAC is now appended into the capacity reserved for it earlier. - c.packetData = c.mac.Sum(c.packetData) - } - - c.encrypter.CryptBlocks(c.packetData[:encLength], c.packetData[:encLength]) - - if _, err := w.Write(c.packetData); err != nil { - return err - } - - return nil -} diff --git a/vendor/golang.org/x/crypto/ssh/cipher_test.go b/vendor/golang.org/x/crypto/ssh/cipher_test.go deleted file mode 100644 index eced8d8..0000000 --- a/vendor/golang.org/x/crypto/ssh/cipher_test.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto" - "crypto/aes" - "crypto/rand" - "testing" -) - -func TestDefaultCiphersExist(t *testing.T) { - for _, cipherAlgo := range supportedCiphers { - if _, ok := cipherModes[cipherAlgo]; !ok { - t.Errorf("default cipher %q is unknown", cipherAlgo) - } - } -} - -func TestPacketCiphers(t *testing.T) { - // Still test aes128cbc cipher although it's commented out. - cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} - defer delete(cipherModes, aes128cbcID) - - for cipher := range cipherModes { - kr := &kexResult{Hash: crypto.SHA1} - algs := directionAlgorithms{ - Cipher: cipher, - MAC: "hmac-sha1", - Compression: "none", - } - client, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Errorf("newPacketCipher(client, %q): %v", cipher, err) - continue - } - server, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Errorf("newPacketCipher(client, %q): %v", cipher, err) - continue - } - - want := "bla bla" - input := []byte(want) - buf := &bytes.Buffer{} - if err := client.writePacket(0, buf, rand.Reader, input); err != nil { - t.Errorf("writePacket(%q): %v", cipher, err) - continue - } - - packet, err := server.readPacket(0, buf) - if err != nil { - t.Errorf("readPacket(%q): %v", cipher, err) - continue - } - - if string(packet) != want { - t.Errorf("roundtrip(%q): got %q, want %q", cipher, packet, want) - } - } -} - -func TestCBCOracleCounterMeasure(t *testing.T) { - cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} - defer delete(cipherModes, aes128cbcID) - - kr := &kexResult{Hash: crypto.SHA1} - algs := directionAlgorithms{ - Cipher: aes128cbcID, - MAC: "hmac-sha1", - Compression: "none", - } - client, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Fatalf("newPacketCipher(client): %v", err) - } - - want := "bla bla" - input := []byte(want) - buf := &bytes.Buffer{} - if err := client.writePacket(0, buf, rand.Reader, input); err != nil { - t.Errorf("writePacket: %v", err) - } - - packetSize := buf.Len() - buf.Write(make([]byte, 2*maxPacket)) - - // We corrupt each byte, but this usually will only test the - // 'packet too large' or 'MAC failure' cases. - lastRead := -1 - for i := 0; i < packetSize; i++ { - server, err := newPacketCipher(clientKeys, algs, kr) - if err != nil { - t.Fatalf("newPacketCipher(client): %v", err) - } - - fresh := &bytes.Buffer{} - fresh.Write(buf.Bytes()) - fresh.Bytes()[i] ^= 0x01 - - before := fresh.Len() - _, err = server.readPacket(0, fresh) - if err == nil { - t.Errorf("corrupt byte %d: readPacket succeeded ", i) - continue - } - if _, ok := err.(cbcError); !ok { - t.Errorf("corrupt byte %d: got %v (%T), want cbcError", i, err, err) - continue - } - - after := fresh.Len() - bytesRead := before - after - if bytesRead < maxPacket { - t.Errorf("corrupt byte %d: read %d bytes, want more than %d", i, bytesRead, maxPacket) - continue - } - - if i > 0 && bytesRead != lastRead { - t.Errorf("corrupt byte %d: read %d bytes, want %d bytes read", i, bytesRead, lastRead) - } - lastRead = bytesRead - } -} diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go deleted file mode 100644 index 0212a20..0000000 --- a/vendor/golang.org/x/crypto/ssh/client.go +++ /dev/null @@ -1,213 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "errors" - "fmt" - "net" - "sync" - "time" -) - -// Client implements a traditional SSH client that supports shells, -// subprocesses, port forwarding and tunneled dialing. -type Client struct { - Conn - - forwards forwardList // forwarded tcpip connections from the remote side - mu sync.Mutex - channelHandlers map[string]chan NewChannel -} - -// HandleChannelOpen returns a channel on which NewChannel requests -// for the given type are sent. If the type already is being handled, -// nil is returned. The channel is closed when the connection is closed. -func (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel { - c.mu.Lock() - defer c.mu.Unlock() - if c.channelHandlers == nil { - // The SSH channel has been closed. - c := make(chan NewChannel) - close(c) - return c - } - - ch := c.channelHandlers[channelType] - if ch != nil { - return nil - } - - ch = make(chan NewChannel, 16) - c.channelHandlers[channelType] = ch - return ch -} - -// NewClient creates a Client on top of the given connection. -func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client { - conn := &Client{ - Conn: c, - channelHandlers: make(map[string]chan NewChannel, 1), - } - - go conn.handleGlobalRequests(reqs) - go conn.handleChannelOpens(chans) - go func() { - conn.Wait() - conn.forwards.closeAll() - }() - go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-tcpip")) - return conn -} - -// NewClientConn establishes an authenticated SSH connection using c -// as the underlying transport. The Request and NewChannel channels -// must be serviced or the connection will hang. -func NewClientConn(c net.Conn, addr string, config *ClientConfig) (Conn, <-chan NewChannel, <-chan *Request, error) { - fullConf := *config - fullConf.SetDefaults() - conn := &connection{ - sshConn: sshConn{conn: c}, - } - - if err := conn.clientHandshake(addr, &fullConf); err != nil { - c.Close() - return nil, nil, nil, fmt.Errorf("ssh: handshake failed: %v", err) - } - conn.mux = newMux(conn.transport) - return conn, conn.mux.incomingChannels, conn.mux.incomingRequests, nil -} - -// clientHandshake performs the client side key exchange. See RFC 4253 Section -// 7. -func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) error { - if config.ClientVersion != "" { - c.clientVersion = []byte(config.ClientVersion) - } else { - c.clientVersion = []byte(packageVersion) - } - var err error - c.serverVersion, err = exchangeVersions(c.sshConn.conn, c.clientVersion) - if err != nil { - return err - } - - c.transport = newClientTransport( - newTransport(c.sshConn.conn, config.Rand, true /* is client */), - c.clientVersion, c.serverVersion, config, dialAddress, c.sshConn.RemoteAddr()) - if err := c.transport.requestInitialKeyChange(); err != nil { - return err - } - - // We just did the key change, so the session ID is established. - c.sessionID = c.transport.getSessionID() - - return c.clientAuthenticate(config) -} - -// verifyHostKeySignature verifies the host key obtained in the key -// exchange. -func verifyHostKeySignature(hostKey PublicKey, result *kexResult) error { - sig, rest, ok := parseSignatureBody(result.Signature) - if len(rest) > 0 || !ok { - return errors.New("ssh: signature parse error") - } - - return hostKey.Verify(result.H, sig) -} - -// NewSession opens a new Session for this client. (A session is a remote -// execution of a program.) -func (c *Client) NewSession() (*Session, error) { - ch, in, err := c.OpenChannel("session", nil) - if err != nil { - return nil, err - } - return newSession(ch, in) -} - -func (c *Client) handleGlobalRequests(incoming <-chan *Request) { - for r := range incoming { - // This handles keepalive messages and matches - // the behaviour of OpenSSH. - r.Reply(false, nil) - } -} - -// handleChannelOpens channel open messages from the remote side. -func (c *Client) handleChannelOpens(in <-chan NewChannel) { - for ch := range in { - c.mu.Lock() - handler := c.channelHandlers[ch.ChannelType()] - c.mu.Unlock() - - if handler != nil { - handler <- ch - } else { - ch.Reject(UnknownChannelType, fmt.Sprintf("unknown channel type: %v", ch.ChannelType())) - } - } - - c.mu.Lock() - for _, ch := range c.channelHandlers { - close(ch) - } - c.channelHandlers = nil - c.mu.Unlock() -} - -// Dial starts a client connection to the given SSH server. It is a -// convenience function that connects to the given network address, -// initiates the SSH handshake, and then sets up a Client. For access -// to incoming channels and requests, use net.Dial with NewClientConn -// instead. -func Dial(network, addr string, config *ClientConfig) (*Client, error) { - conn, err := net.DialTimeout(network, addr, config.Timeout) - if err != nil { - return nil, err - } - c, chans, reqs, err := NewClientConn(conn, addr, config) - if err != nil { - return nil, err - } - return NewClient(c, chans, reqs), nil -} - -// A ClientConfig structure is used to configure a Client. It must not be -// modified after having been passed to an SSH function. -type ClientConfig struct { - // Config contains configuration that is shared between clients and - // servers. - Config - - // User contains the username to authenticate as. - User string - - // Auth contains possible authentication methods to use with the - // server. Only the first instance of a particular RFC 4252 method will - // be used during authentication. - Auth []AuthMethod - - // HostKeyCallback, if not nil, is called during the cryptographic - // handshake to validate the server's host key. A nil HostKeyCallback - // implies that all host keys are accepted. - HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error - - // ClientVersion contains the version identification string that will - // be used for the connection. If empty, a reasonable default is used. - ClientVersion string - - // HostKeyAlgorithms lists the key types that the client will - // accept from the server as host key, in order of - // preference. If empty, a reasonable default is used. Any - // string returned from PublicKey.Type method may be used, or - // any of the CertAlgoXxxx and KeyAlgoXxxx constants. - HostKeyAlgorithms []string - - // Timeout is the maximum amount of time for the TCP connection to establish. - // - // A Timeout of zero means no timeout. - Timeout time.Duration -} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go deleted file mode 100644 index 294af0d..0000000 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ /dev/null @@ -1,473 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "errors" - "fmt" - "io" -) - -// clientAuthenticate authenticates with the remote server. See RFC 4252. -func (c *connection) clientAuthenticate(config *ClientConfig) error { - // initiate user auth session - if err := c.transport.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})); err != nil { - return err - } - packet, err := c.transport.readPacket() - if err != nil { - return err - } - var serviceAccept serviceAcceptMsg - if err := Unmarshal(packet, &serviceAccept); err != nil { - return err - } - - // during the authentication phase the client first attempts the "none" method - // then any untried methods suggested by the server. - tried := make(map[string]bool) - var lastMethods []string - for auth := AuthMethod(new(noneAuth)); auth != nil; { - ok, methods, err := auth.auth(c.transport.getSessionID(), config.User, c.transport, config.Rand) - if err != nil { - return err - } - if ok { - // success - return nil - } - tried[auth.method()] = true - if methods == nil { - methods = lastMethods - } - lastMethods = methods - - auth = nil - - findNext: - for _, a := range config.Auth { - candidateMethod := a.method() - if tried[candidateMethod] { - continue - } - for _, meth := range methods { - if meth == candidateMethod { - auth = a - break findNext - } - } - } - } - return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", keys(tried)) -} - -func keys(m map[string]bool) []string { - s := make([]string, 0, len(m)) - - for key := range m { - s = append(s, key) - } - return s -} - -// An AuthMethod represents an instance of an RFC 4252 authentication method. -type AuthMethod interface { - // auth authenticates user over transport t. - // Returns true if authentication is successful. - // If authentication is not successful, a []string of alternative - // method names is returned. If the slice is nil, it will be ignored - // and the previous set of possible methods will be reused. - auth(session []byte, user string, p packetConn, rand io.Reader) (bool, []string, error) - - // method returns the RFC 4252 method name. - method() string -} - -// "none" authentication, RFC 4252 section 5.2. -type noneAuth int - -func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - if err := c.writePacket(Marshal(&userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: "none", - })); err != nil { - return false, nil, err - } - - return handleAuthResponse(c) -} - -func (n *noneAuth) method() string { - return "none" -} - -// passwordCallback is an AuthMethod that fetches the password through -// a function call, e.g. by prompting the user. -type passwordCallback func() (password string, err error) - -func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - type passwordAuthMsg struct { - User string `sshtype:"50"` - Service string - Method string - Reply bool - Password string - } - - pw, err := cb() - // REVIEW NOTE: is there a need to support skipping a password attempt? - // The program may only find out that the user doesn't have a password - // when prompting. - if err != nil { - return false, nil, err - } - - if err := c.writePacket(Marshal(&passwordAuthMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - Reply: false, - Password: pw, - })); err != nil { - return false, nil, err - } - - return handleAuthResponse(c) -} - -func (cb passwordCallback) method() string { - return "password" -} - -// Password returns an AuthMethod using the given password. -func Password(secret string) AuthMethod { - return passwordCallback(func() (string, error) { return secret, nil }) -} - -// PasswordCallback returns an AuthMethod that uses a callback for -// fetching a password. -func PasswordCallback(prompt func() (secret string, err error)) AuthMethod { - return passwordCallback(prompt) -} - -type publickeyAuthMsg struct { - User string `sshtype:"50"` - Service string - Method string - // HasSig indicates to the receiver packet that the auth request is signed and - // should be used for authentication of the request. - HasSig bool - Algoname string - PubKey []byte - // Sig is tagged with "rest" so Marshal will exclude it during - // validateKey - Sig []byte `ssh:"rest"` -} - -// publicKeyCallback is an AuthMethod that uses a set of key -// pairs for authentication. -type publicKeyCallback func() ([]Signer, error) - -func (cb publicKeyCallback) method() string { - return "publickey" -} - -func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - // Authentication is performed in two stages. The first stage sends an - // enquiry to test if each key is acceptable to the remote. The second - // stage attempts to authenticate with the valid keys obtained in the - // first stage. - - signers, err := cb() - if err != nil { - return false, nil, err - } - var validKeys []Signer - for _, signer := range signers { - if ok, err := validateKey(signer.PublicKey(), user, c); ok { - validKeys = append(validKeys, signer) - } else { - if err != nil { - return false, nil, err - } - } - } - - // methods that may continue if this auth is not successful. - var methods []string - for _, signer := range validKeys { - pub := signer.PublicKey() - - pubKey := pub.Marshal() - sign, err := signer.Sign(rand, buildDataSignedForAuth(session, userAuthRequestMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - }, []byte(pub.Type()), pubKey)) - if err != nil { - return false, nil, err - } - - // manually wrap the serialized signature in a string - s := Marshal(sign) - sig := make([]byte, stringLength(len(s))) - marshalString(sig, s) - msg := publickeyAuthMsg{ - User: user, - Service: serviceSSH, - Method: cb.method(), - HasSig: true, - Algoname: pub.Type(), - PubKey: pubKey, - Sig: sig, - } - p := Marshal(&msg) - if err := c.writePacket(p); err != nil { - return false, nil, err - } - var success bool - success, methods, err = handleAuthResponse(c) - if err != nil { - return false, nil, err - } - if success { - return success, methods, err - } - } - return false, methods, nil -} - -// validateKey validates the key provided is acceptable to the server. -func validateKey(key PublicKey, user string, c packetConn) (bool, error) { - pubKey := key.Marshal() - msg := publickeyAuthMsg{ - User: user, - Service: serviceSSH, - Method: "publickey", - HasSig: false, - Algoname: key.Type(), - PubKey: pubKey, - } - if err := c.writePacket(Marshal(&msg)); err != nil { - return false, err - } - - return confirmKeyAck(key, c) -} - -func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { - pubKey := key.Marshal() - algoname := key.Type() - - for { - packet, err := c.readPacket() - if err != nil { - return false, err - } - switch packet[0] { - case msgUserAuthBanner: - // TODO(gpaul): add callback to present the banner to the user - case msgUserAuthPubKeyOk: - var msg userAuthPubKeyOkMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, err - } - if msg.Algo != algoname || !bytes.Equal(msg.PubKey, pubKey) { - return false, nil - } - return true, nil - case msgUserAuthFailure: - return false, nil - default: - return false, unexpectedMessageError(msgUserAuthSuccess, packet[0]) - } - } -} - -// PublicKeys returns an AuthMethod that uses the given key -// pairs. -func PublicKeys(signers ...Signer) AuthMethod { - return publicKeyCallback(func() ([]Signer, error) { return signers, nil }) -} - -// PublicKeysCallback returns an AuthMethod that runs the given -// function to obtain a list of key pairs. -func PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMethod { - return publicKeyCallback(getSigners) -} - -// handleAuthResponse returns whether the preceding authentication request succeeded -// along with a list of remaining authentication methods to try next and -// an error if an unexpected response was received. -func handleAuthResponse(c packetConn) (bool, []string, error) { - for { - packet, err := c.readPacket() - if err != nil { - return false, nil, err - } - - switch packet[0] { - case msgUserAuthBanner: - // TODO: add callback to present the banner to the user - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - return false, msg.Methods, nil - case msgUserAuthSuccess: - return true, nil, nil - default: - return false, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) - } - } -} - -// KeyboardInteractiveChallenge should print questions, optionally -// disabling echoing (e.g. for passwords), and return all the answers. -// Challenge may be called multiple times in a single session. After -// successful authentication, the server may send a challenge with no -// questions, for which the user and instruction messages should be -// printed. RFC 4256 section 3.3 details how the UI should behave for -// both CLI and GUI environments. -type KeyboardInteractiveChallenge func(user, instruction string, questions []string, echos []bool) (answers []string, err error) - -// KeyboardInteractive returns a AuthMethod using a prompt/response -// sequence controlled by the server. -func KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod { - return challenge -} - -func (cb KeyboardInteractiveChallenge) method() string { - return "keyboard-interactive" -} - -func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { - type initiateMsg struct { - User string `sshtype:"50"` - Service string - Method string - Language string - Submethods string - } - - if err := c.writePacket(Marshal(&initiateMsg{ - User: user, - Service: serviceSSH, - Method: "keyboard-interactive", - })); err != nil { - return false, nil, err - } - - for { - packet, err := c.readPacket() - if err != nil { - return false, nil, err - } - - // like handleAuthResponse, but with less options. - switch packet[0] { - case msgUserAuthBanner: - // TODO: Print banners during userauth. - continue - case msgUserAuthInfoRequest: - // OK - case msgUserAuthFailure: - var msg userAuthFailureMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - return false, msg.Methods, nil - case msgUserAuthSuccess: - return true, nil, nil - default: - return false, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) - } - - var msg userAuthInfoRequestMsg - if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err - } - - // Manually unpack the prompt/echo pairs. - rest := msg.Prompts - var prompts []string - var echos []bool - for i := 0; i < int(msg.NumPrompts); i++ { - prompt, r, ok := parseString(rest) - if !ok || len(r) == 0 { - return false, nil, errors.New("ssh: prompt format error") - } - prompts = append(prompts, string(prompt)) - echos = append(echos, r[0] != 0) - rest = r[1:] - } - - if len(rest) != 0 { - return false, nil, errors.New("ssh: extra data following keyboard-interactive pairs") - } - - answers, err := cb(msg.User, msg.Instruction, prompts, echos) - if err != nil { - return false, nil, err - } - - if len(answers) != len(prompts) { - return false, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") - } - responseLength := 1 + 4 - for _, a := range answers { - responseLength += stringLength(len(a)) - } - serialized := make([]byte, responseLength) - p := serialized - p[0] = msgUserAuthInfoResponse - p = p[1:] - p = marshalUint32(p, uint32(len(answers))) - for _, a := range answers { - p = marshalString(p, []byte(a)) - } - - if err := c.writePacket(serialized); err != nil { - return false, nil, err - } - } -} - -type retryableAuthMethod struct { - authMethod AuthMethod - maxTries int -} - -func (r *retryableAuthMethod) auth(session []byte, user string, c packetConn, rand io.Reader) (ok bool, methods []string, err error) { - for i := 0; r.maxTries <= 0 || i < r.maxTries; i++ { - ok, methods, err = r.authMethod.auth(session, user, c, rand) - if ok || err != nil { // either success or error terminate - return ok, methods, err - } - } - return ok, methods, err -} - -func (r *retryableAuthMethod) method() string { - return r.authMethod.method() -} - -// RetryableAuthMethod is a decorator for other auth methods enabling them to -// be retried up to maxTries before considering that AuthMethod itself failed. -// If maxTries is <= 0, will retry indefinitely -// -// This is useful for interactive clients using challenge/response type -// authentication (e.g. Keyboard-Interactive, Password, etc) where the user -// could mistype their response resulting in the server issuing a -// SSH_MSG_USERAUTH_FAILURE (rfc4252 #8 [password] and rfc4256 #3.4 -// [keyboard-interactive]); Without this decorator, the non-retryable -// AuthMethod would be removed from future consideration, and never tried again -// (and so the user would never be able to retry their entry). -func RetryableAuthMethod(auth AuthMethod, maxTries int) AuthMethod { - return &retryableAuthMethod{authMethod: auth, maxTries: maxTries} -} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth_test.go b/vendor/golang.org/x/crypto/ssh/client_auth_test.go deleted file mode 100644 index 1409276..0000000 --- a/vendor/golang.org/x/crypto/ssh/client_auth_test.go +++ /dev/null @@ -1,472 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto/rand" - "errors" - "fmt" - "os" - "strings" - "testing" -) - -type keyboardInteractive map[string]string - -func (cr keyboardInteractive) Challenge(user string, instruction string, questions []string, echos []bool) ([]string, error) { - var answers []string - for _, q := range questions { - answers = append(answers, cr[q]) - } - return answers, nil -} - -// reused internally by tests -var clientPassword = "tiger" - -// tryAuth runs a handshake with a given config against an SSH server -// with config serverConfig -func tryAuth(t *testing.T, config *ClientConfig) error { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - certChecker := CertChecker{ - IsAuthority: func(k PublicKey) bool { - return bytes.Equal(k.Marshal(), testPublicKeys["ecdsa"].Marshal()) - }, - UserKeyFallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { - if conn.User() == "testuser" && bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { - return nil, nil - } - - return nil, fmt.Errorf("pubkey for %q not acceptable", conn.User()) - }, - IsRevoked: func(c *Certificate) bool { - return c.Serial == 666 - }, - } - - serverConfig := &ServerConfig{ - PasswordCallback: func(conn ConnMetadata, pass []byte) (*Permissions, error) { - if conn.User() == "testuser" && string(pass) == clientPassword { - return nil, nil - } - return nil, errors.New("password auth failed") - }, - PublicKeyCallback: certChecker.Authenticate, - KeyboardInteractiveCallback: func(conn ConnMetadata, challenge KeyboardInteractiveChallenge) (*Permissions, error) { - ans, err := challenge("user", - "instruction", - []string{"question1", "question2"}, - []bool{true, true}) - if err != nil { - return nil, err - } - ok := conn.User() == "testuser" && ans[0] == "answer1" && ans[1] == "answer2" - if ok { - challenge("user", "motd", nil, nil) - return nil, nil - } - return nil, errors.New("keyboard-interactive failed") - }, - AuthLogCallback: func(conn ConnMetadata, method string, err error) { - t.Logf("user %q, method %q: %v", conn.User(), method, err) - }, - } - serverConfig.AddHostKey(testSigners["rsa"]) - - go newServer(c1, serverConfig) - _, _, _, err = NewClientConn(c2, "", config) - return err -} - -func TestClientAuthPublicKey(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - }, - } - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodPassword(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - Password(clientPassword), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodFallback(t *testing.T) { - var passwordCalled bool - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - PasswordCallback( - func() (string, error) { - passwordCalled = true - return "WRONG", nil - }), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } - - if passwordCalled { - t.Errorf("password auth tried before public-key auth.") - } -} - -func TestAuthMethodWrongPassword(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - Password("wrong"), - PublicKeys(testSigners["rsa"]), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodKeyboardInteractive(t *testing.T) { - answers := keyboardInteractive(map[string]string{ - "question1": "answer1", - "question2": "answer2", - }) - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - KeyboardInteractive(answers.Challenge), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -func TestAuthMethodWrongKeyboardInteractive(t *testing.T) { - answers := keyboardInteractive(map[string]string{ - "question1": "answer1", - "question2": "WRONG", - }) - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - KeyboardInteractive(answers.Challenge), - }, - } - - if err := tryAuth(t, config); err == nil { - t.Fatalf("wrong answers should not have authenticated with KeyboardInteractive") - } -} - -// the mock server will only authenticate ssh-rsa keys -func TestAuthMethodInvalidPublicKey(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["dsa"]), - }, - } - - if err := tryAuth(t, config); err == nil { - t.Fatalf("dsa private key should not have authenticated with rsa public key") - } -} - -// the client should authenticate with the second key -func TestAuthMethodRSAandDSA(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["dsa"], testSigners["rsa"]), - }, - } - if err := tryAuth(t, config); err != nil { - t.Fatalf("client could not authenticate with rsa key: %v", err) - } -} - -func TestClientHMAC(t *testing.T) { - for _, mac := range supportedMACs { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - }, - Config: Config{ - MACs: []string{mac}, - }, - } - if err := tryAuth(t, config); err != nil { - t.Fatalf("client could not authenticate with mac algo %s: %v", mac, err) - } - } -} - -// issue 4285. -func TestClientUnsupportedCipher(t *testing.T) { - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(), - }, - Config: Config{ - Ciphers: []string{"aes128-cbc"}, // not currently supported - }, - } - if err := tryAuth(t, config); err == nil { - t.Errorf("expected no ciphers in common") - } -} - -func TestClientUnsupportedKex(t *testing.T) { - if os.Getenv("GO_BUILDER_NAME") != "" { - t.Skip("skipping known-flaky test on the Go build dashboard; see golang.org/issue/15198") - } - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - PublicKeys(), - }, - Config: Config{ - KeyExchanges: []string{"diffie-hellman-group-exchange-sha256"}, // not currently supported - }, - } - if err := tryAuth(t, config); err == nil || !strings.Contains(err.Error(), "common algorithm") { - t.Errorf("got %v, expected 'common algorithm'", err) - } -} - -func TestClientLoginCert(t *testing.T) { - cert := &Certificate{ - Key: testPublicKeys["rsa"], - ValidBefore: CertTimeInfinity, - CertType: UserCert, - } - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - certSigner, err := NewCertSigner(cert, testSigners["rsa"]) - if err != nil { - t.Fatalf("NewCertSigner: %v", err) - } - - clientConfig := &ClientConfig{ - User: "user", - } - clientConfig.Auth = append(clientConfig.Auth, PublicKeys(certSigner)) - - t.Log("should succeed") - if err := tryAuth(t, clientConfig); err != nil { - t.Errorf("cert login failed: %v", err) - } - - t.Log("corrupted signature") - cert.Signature.Blob[0]++ - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with corrupted sig") - } - - t.Log("revoked") - cert.Serial = 666 - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("revoked cert login succeeded") - } - cert.Serial = 1 - - t.Log("sign with wrong key") - cert.SignCert(rand.Reader, testSigners["dsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with non-authoritative key") - } - - t.Log("host cert") - cert.CertType = HostCert - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with wrong type") - } - cert.CertType = UserCert - - t.Log("principal specified") - cert.ValidPrincipals = []string{"user"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err != nil { - t.Errorf("cert login failed: %v", err) - } - - t.Log("wrong principal specified") - cert.ValidPrincipals = []string{"fred"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with wrong principal") - } - cert.ValidPrincipals = nil - - t.Log("added critical option") - cert.CriticalOptions = map[string]string{"root-access": "yes"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login passed with unrecognized critical option") - } - - t.Log("allowed source address") - cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42/24"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err != nil { - t.Errorf("cert login with source-address failed: %v", err) - } - - t.Log("disallowed source address") - cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42"} - cert.SignCert(rand.Reader, testSigners["ecdsa"]) - if err := tryAuth(t, clientConfig); err == nil { - t.Errorf("cert login with source-address succeeded") - } -} - -func testPermissionsPassing(withPermissions bool, t *testing.T) { - serverConfig := &ServerConfig{ - PublicKeyCallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { - if conn.User() == "nopermissions" { - return nil, nil - } else { - return &Permissions{}, nil - } - }, - } - serverConfig.AddHostKey(testSigners["rsa"]) - - clientConfig := &ClientConfig{ - Auth: []AuthMethod{ - PublicKeys(testSigners["rsa"]), - }, - } - if withPermissions { - clientConfig.User = "permissions" - } else { - clientConfig.User = "nopermissions" - } - - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewClientConn(c2, "", clientConfig) - serverConn, err := newServer(c1, serverConfig) - if err != nil { - t.Fatal(err) - } - if p := serverConn.Permissions; (p != nil) != withPermissions { - t.Fatalf("withPermissions is %t, but Permissions object is %#v", withPermissions, p) - } -} - -func TestPermissionsPassing(t *testing.T) { - testPermissionsPassing(true, t) -} - -func TestNoPermissionsPassing(t *testing.T) { - testPermissionsPassing(false, t) -} - -func TestRetryableAuth(t *testing.T) { - n := 0 - passwords := []string{"WRONG1", "WRONG2"} - - config := &ClientConfig{ - User: "testuser", - Auth: []AuthMethod{ - RetryableAuthMethod(PasswordCallback(func() (string, error) { - p := passwords[n] - n++ - return p, nil - }), 2), - PublicKeys(testSigners["rsa"]), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } - if n != 2 { - t.Fatalf("Did not try all passwords") - } -} - -func ExampleRetryableAuthMethod(t *testing.T) { - user := "testuser" - NumberOfPrompts := 3 - - // Normally this would be a callback that prompts the user to answer the - // provided questions - Cb := func(user, instruction string, questions []string, echos []bool) (answers []string, err error) { - return []string{"answer1", "answer2"}, nil - } - - config := &ClientConfig{ - User: user, - Auth: []AuthMethod{ - RetryableAuthMethod(KeyboardInteractiveChallenge(Cb), NumberOfPrompts), - }, - } - - if err := tryAuth(t, config); err != nil { - t.Fatalf("unable to dial remote side: %s", err) - } -} - -// Test if username is received on server side when NoClientAuth is used -func TestClientAuthNone(t *testing.T) { - user := "testuser" - serverConfig := &ServerConfig{ - NoClientAuth: true, - } - serverConfig.AddHostKey(testSigners["rsa"]) - - clientConfig := &ClientConfig{ - User: user, - } - - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewClientConn(c2, "", clientConfig) - serverConn, err := newServer(c1, serverConfig) - if err != nil { - t.Fatalf("newServer: %v", err) - } - if serverConn.User() != user { - t.Fatalf("server: got %q, want %q", serverConn.User(), user) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/client_test.go b/vendor/golang.org/x/crypto/ssh/client_test.go deleted file mode 100644 index 1fe790c..0000000 --- a/vendor/golang.org/x/crypto/ssh/client_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "net" - "testing" -) - -func testClientVersion(t *testing.T, config *ClientConfig, expected string) { - clientConn, serverConn := net.Pipe() - defer clientConn.Close() - receivedVersion := make(chan string, 1) - go func() { - version, err := readVersion(serverConn) - if err != nil { - receivedVersion <- "" - } else { - receivedVersion <- string(version) - } - serverConn.Close() - }() - NewClientConn(clientConn, "", config) - actual := <-receivedVersion - if actual != expected { - t.Fatalf("got %s; want %s", actual, expected) - } -} - -func TestCustomClientVersion(t *testing.T) { - version := "Test-Client-Version-0.0" - testClientVersion(t, &ClientConfig{ClientVersion: version}, version) -} - -func TestDefaultClientVersion(t *testing.T) { - testClientVersion(t, &ClientConfig{}, packageVersion) -} diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go deleted file mode 100644 index 2c72ab5..0000000 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto" - "crypto/rand" - "fmt" - "io" - "sync" - - _ "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" -) - -// These are string constants in the SSH protocol. -const ( - compressionNone = "none" - serviceUserAuth = "ssh-userauth" - serviceSSH = "ssh-connection" -) - -// supportedCiphers specifies the supported ciphers in preference order. -var supportedCiphers = []string{ - "aes128-ctr", "aes192-ctr", "aes256-ctr", - "aes128-gcm@openssh.com", - "arcfour256", "arcfour128", -} - -// supportedKexAlgos specifies the supported key-exchange algorithms in -// preference order. -var supportedKexAlgos = []string{ - kexAlgoCurve25519SHA256, - // P384 and P521 are not constant-time yet, but since we don't - // reuse ephemeral keys, using them for ECDH should be OK. - kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, - kexAlgoDH14SHA1, kexAlgoDH1SHA1, -} - -// supportedKexAlgos specifies the supported host-key algorithms (i.e. methods -// of authenticating servers) in preference order. -var supportedHostKeyAlgos = []string{ - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, - CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01, - - KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - KeyAlgoRSA, KeyAlgoDSA, - - KeyAlgoED25519, -} - -// supportedMACs specifies a default set of MAC algorithms in preference order. -// This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed -// because they have reached the end of their useful life. -var supportedMACs = []string{ - "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96", -} - -var supportedCompressions = []string{compressionNone} - -// hashFuncs keeps the mapping of supported algorithms to their respective -// hashes needed for signature verification. -var hashFuncs = map[string]crypto.Hash{ - KeyAlgoRSA: crypto.SHA1, - KeyAlgoDSA: crypto.SHA1, - KeyAlgoECDSA256: crypto.SHA256, - KeyAlgoECDSA384: crypto.SHA384, - KeyAlgoECDSA521: crypto.SHA512, - CertAlgoRSAv01: crypto.SHA1, - CertAlgoDSAv01: crypto.SHA1, - CertAlgoECDSA256v01: crypto.SHA256, - CertAlgoECDSA384v01: crypto.SHA384, - CertAlgoECDSA521v01: crypto.SHA512, -} - -// unexpectedMessageError results when the SSH message that we received didn't -// match what we wanted. -func unexpectedMessageError(expected, got uint8) error { - return fmt.Errorf("ssh: unexpected message type %d (expected %d)", got, expected) -} - -// parseError results from a malformed SSH message. -func parseError(tag uint8) error { - return fmt.Errorf("ssh: parse error in message type %d", tag) -} - -func findCommon(what string, client []string, server []string) (common string, err error) { - for _, c := range client { - for _, s := range server { - if c == s { - return c, nil - } - } - } - return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) -} - -type directionAlgorithms struct { - Cipher string - MAC string - Compression string -} - -type algorithms struct { - kex string - hostKey string - w directionAlgorithms - r directionAlgorithms -} - -func findAgreedAlgorithms(clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { - result := &algorithms{} - - result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) - if err != nil { - return - } - - result.hostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos) - if err != nil { - return - } - - result.w.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) - if err != nil { - return - } - - result.r.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) - if err != nil { - return - } - - result.w.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) - if err != nil { - return - } - - result.r.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) - if err != nil { - return - } - - result.w.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) - if err != nil { - return - } - - result.r.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) - if err != nil { - return - } - - return result, nil -} - -// If rekeythreshold is too small, we can't make any progress sending -// stuff. -const minRekeyThreshold uint64 = 256 - -// Config contains configuration data common to both ServerConfig and -// ClientConfig. -type Config struct { - // Rand provides the source of entropy for cryptographic - // primitives. If Rand is nil, the cryptographic random reader - // in package crypto/rand will be used. - Rand io.Reader - - // The maximum number of bytes sent or received after which a - // new key is negotiated. It must be at least 256. If - // unspecified, 1 gigabyte is used. - RekeyThreshold uint64 - - // The allowed key exchanges algorithms. If unspecified then a - // default set of algorithms is used. - KeyExchanges []string - - // The allowed cipher algorithms. If unspecified then a sensible - // default is used. - Ciphers []string - - // The allowed MAC algorithms. If unspecified then a sensible default - // is used. - MACs []string -} - -// SetDefaults sets sensible values for unset fields in config. This is -// exported for testing: Configs passed to SSH functions are copied and have -// default values set automatically. -func (c *Config) SetDefaults() { - if c.Rand == nil { - c.Rand = rand.Reader - } - if c.Ciphers == nil { - c.Ciphers = supportedCiphers - } - var ciphers []string - for _, c := range c.Ciphers { - if cipherModes[c] != nil { - // reject the cipher if we have no cipherModes definition - ciphers = append(ciphers, c) - } - } - c.Ciphers = ciphers - - if c.KeyExchanges == nil { - c.KeyExchanges = supportedKexAlgos - } - - if c.MACs == nil { - c.MACs = supportedMACs - } - - if c.RekeyThreshold == 0 { - // RFC 4253, section 9 suggests rekeying after 1G. - c.RekeyThreshold = 1 << 30 - } - if c.RekeyThreshold < minRekeyThreshold { - c.RekeyThreshold = minRekeyThreshold - } -} - -// buildDataSignedForAuth returns the data that is signed in order to prove -// possession of a private key. See RFC 4252, section 7. -func buildDataSignedForAuth(sessionId []byte, req userAuthRequestMsg, algo, pubKey []byte) []byte { - data := struct { - Session []byte - Type byte - User string - Service string - Method string - Sign bool - Algo []byte - PubKey []byte - }{ - sessionId, - msgUserAuthRequest, - req.User, - req.Service, - req.Method, - true, - algo, - pubKey, - } - return Marshal(data) -} - -func appendU16(buf []byte, n uint16) []byte { - return append(buf, byte(n>>8), byte(n)) -} - -func appendU32(buf []byte, n uint32) []byte { - return append(buf, byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) -} - -func appendU64(buf []byte, n uint64) []byte { - return append(buf, - byte(n>>56), byte(n>>48), byte(n>>40), byte(n>>32), - byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) -} - -func appendInt(buf []byte, n int) []byte { - return appendU32(buf, uint32(n)) -} - -func appendString(buf []byte, s string) []byte { - buf = appendU32(buf, uint32(len(s))) - buf = append(buf, s...) - return buf -} - -func appendBool(buf []byte, b bool) []byte { - if b { - return append(buf, 1) - } - return append(buf, 0) -} - -// newCond is a helper to hide the fact that there is no usable zero -// value for sync.Cond. -func newCond() *sync.Cond { return sync.NewCond(new(sync.Mutex)) } - -// window represents the buffer available to clients -// wishing to write to a channel. -type window struct { - *sync.Cond - win uint32 // RFC 4254 5.2 says the window size can grow to 2^32-1 - writeWaiters int - closed bool -} - -// add adds win to the amount of window available -// for consumers. -func (w *window) add(win uint32) bool { - // a zero sized window adjust is a noop. - if win == 0 { - return true - } - w.L.Lock() - if w.win+win < win { - w.L.Unlock() - return false - } - w.win += win - // It is unusual that multiple goroutines would be attempting to reserve - // window space, but not guaranteed. Use broadcast to notify all waiters - // that additional window is available. - w.Broadcast() - w.L.Unlock() - return true -} - -// close sets the window to closed, so all reservations fail -// immediately. -func (w *window) close() { - w.L.Lock() - w.closed = true - w.Broadcast() - w.L.Unlock() -} - -// reserve reserves win from the available window capacity. -// If no capacity remains, reserve will block. reserve may -// return less than requested. -func (w *window) reserve(win uint32) (uint32, error) { - var err error - w.L.Lock() - w.writeWaiters++ - w.Broadcast() - for w.win == 0 && !w.closed { - w.Wait() - } - w.writeWaiters-- - if w.win < win { - win = w.win - } - w.win -= win - if w.closed { - err = io.EOF - } - w.L.Unlock() - return win, err -} - -// waitWriterBlocked waits until some goroutine is blocked for further -// writes. It is used in tests only. -func (w *window) waitWriterBlocked() { - w.Cond.L.Lock() - for w.writeWaiters == 0 { - w.Cond.Wait() - } - w.Cond.L.Unlock() -} diff --git a/vendor/golang.org/x/crypto/ssh/connection.go b/vendor/golang.org/x/crypto/ssh/connection.go deleted file mode 100644 index e786f2f..0000000 --- a/vendor/golang.org/x/crypto/ssh/connection.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "fmt" - "net" -) - -// OpenChannelError is returned if the other side rejects an -// OpenChannel request. -type OpenChannelError struct { - Reason RejectionReason - Message string -} - -func (e *OpenChannelError) Error() string { - return fmt.Sprintf("ssh: rejected: %s (%s)", e.Reason, e.Message) -} - -// ConnMetadata holds metadata for the connection. -type ConnMetadata interface { - // User returns the user ID for this connection. - User() string - - // SessionID returns the sesson hash, also denoted by H. - SessionID() []byte - - // ClientVersion returns the client's version string as hashed - // into the session ID. - ClientVersion() []byte - - // ServerVersion returns the server's version string as hashed - // into the session ID. - ServerVersion() []byte - - // RemoteAddr returns the remote address for this connection. - RemoteAddr() net.Addr - - // LocalAddr returns the local address for this connection. - LocalAddr() net.Addr -} - -// Conn represents an SSH connection for both server and client roles. -// Conn is the basis for implementing an application layer, such -// as ClientConn, which implements the traditional shell access for -// clients. -type Conn interface { - ConnMetadata - - // SendRequest sends a global request, and returns the - // reply. If wantReply is true, it returns the response status - // and payload. See also RFC4254, section 4. - SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) - - // OpenChannel tries to open an channel. If the request is - // rejected, it returns *OpenChannelError. On success it returns - // the SSH Channel and a Go channel for incoming, out-of-band - // requests. The Go channel must be serviced, or the - // connection will hang. - OpenChannel(name string, data []byte) (Channel, <-chan *Request, error) - - // Close closes the underlying network connection - Close() error - - // Wait blocks until the connection has shut down, and returns the - // error causing the shutdown. - Wait() error - - // TODO(hanwen): consider exposing: - // RequestKeyChange - // Disconnect -} - -// DiscardRequests consumes and rejects all requests from the -// passed-in channel. -func DiscardRequests(in <-chan *Request) { - for req := range in { - if req.WantReply { - req.Reply(false, nil) - } - } -} - -// A connection represents an incoming connection. -type connection struct { - transport *handshakeTransport - sshConn - - // The connection protocol. - *mux -} - -func (c *connection) Close() error { - return c.sshConn.conn.Close() -} - -// sshconn provides net.Conn metadata, but disallows direct reads and -// writes. -type sshConn struct { - conn net.Conn - - user string - sessionID []byte - clientVersion []byte - serverVersion []byte -} - -func dup(src []byte) []byte { - dst := make([]byte, len(src)) - copy(dst, src) - return dst -} - -func (c *sshConn) User() string { - return c.user -} - -func (c *sshConn) RemoteAddr() net.Addr { - return c.conn.RemoteAddr() -} - -func (c *sshConn) Close() error { - return c.conn.Close() -} - -func (c *sshConn) LocalAddr() net.Addr { - return c.conn.LocalAddr() -} - -func (c *sshConn) SessionID() []byte { - return dup(c.sessionID) -} - -func (c *sshConn) ClientVersion() []byte { - return dup(c.clientVersion) -} - -func (c *sshConn) ServerVersion() []byte { - return dup(c.serverVersion) -} diff --git a/vendor/golang.org/x/crypto/ssh/doc.go b/vendor/golang.org/x/crypto/ssh/doc.go deleted file mode 100644 index d6be894..0000000 --- a/vendor/golang.org/x/crypto/ssh/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package ssh implements an SSH client and server. - -SSH is a transport security protocol, an authentication protocol and a -family of application protocols. The most typical application level -protocol is a remote shell and this is specifically implemented. However, -the multiplexed nature of SSH is exposed to users that wish to support -others. - -References: - [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD - [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 -*/ -package ssh // import "golang.org/x/crypto/ssh" diff --git a/vendor/golang.org/x/crypto/ssh/example_test.go b/vendor/golang.org/x/crypto/ssh/example_test.go deleted file mode 100644 index 4d2eabd..0000000 --- a/vendor/golang.org/x/crypto/ssh/example_test.go +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh_test - -import ( - "bytes" - "fmt" - "io/ioutil" - "log" - "net" - "net/http" - - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/terminal" -) - -func ExampleNewServerConn() { - // Public key authentication is done by comparing - // the public key of a received connection - // with the entries in the authorized_keys file. - authorizedKeysBytes, err := ioutil.ReadFile("authorized_keys") - if err != nil { - log.Fatalf("Failed to load authorized_keys, err: %v", err) - } - - authorizedKeysMap := map[string]bool{} - for len(authorizedKeysBytes) > 0 { - pubKey, _, _, rest, err := ssh.ParseAuthorizedKey(authorizedKeysBytes) - if err != nil { - log.Fatal(err) - } - - authorizedKeysMap[string(pubKey.Marshal())] = true - authorizedKeysBytes = rest - } - - // An SSH server is represented by a ServerConfig, which holds - // certificate details and handles authentication of ServerConns. - config := &ssh.ServerConfig{ - // Remove to disable password auth. - PasswordCallback: func(c ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) { - // Should use constant-time compare (or better, salt+hash) in - // a production setting. - if c.User() == "testuser" && string(pass) == "tiger" { - return nil, nil - } - return nil, fmt.Errorf("password rejected for %q", c.User()) - }, - - // Remove to disable public key auth. - PublicKeyCallback: func(c ssh.ConnMetadata, pubKey ssh.PublicKey) (*ssh.Permissions, error) { - if authorizedKeysMap[string(pubKey.Marshal())] { - return nil, nil - } - return nil, fmt.Errorf("unknown public key for %q", c.User()) - }, - } - - privateBytes, err := ioutil.ReadFile("id_rsa") - if err != nil { - log.Fatal("Failed to load private key: ", err) - } - - private, err := ssh.ParsePrivateKey(privateBytes) - if err != nil { - log.Fatal("Failed to parse private key: ", err) - } - - config.AddHostKey(private) - - // Once a ServerConfig has been configured, connections can be - // accepted. - listener, err := net.Listen("tcp", "0.0.0.0:2022") - if err != nil { - log.Fatal("failed to listen for connection: ", err) - } - nConn, err := listener.Accept() - if err != nil { - log.Fatal("failed to accept incoming connection: ", err) - } - - // Before use, a handshake must be performed on the incoming - // net.Conn. - _, chans, reqs, err := ssh.NewServerConn(nConn, config) - if err != nil { - log.Fatal("failed to handshake: ", err) - } - // The incoming Request channel must be serviced. - go ssh.DiscardRequests(reqs) - - // Service the incoming Channel channel. - - // Service the incoming Channel channel. - for newChannel := range chans { - // Channels have a type, depending on the application level - // protocol intended. In the case of a shell, the type is - // "session" and ServerShell may be used to present a simple - // terminal interface. - if newChannel.ChannelType() != "session" { - newChannel.Reject(ssh.UnknownChannelType, "unknown channel type") - continue - } - channel, requests, err := newChannel.Accept() - if err != nil { - log.Fatalf("Could not accept channel: %v", err) - } - - // Sessions have out-of-band requests such as "shell", - // "pty-req" and "env". Here we handle only the - // "shell" request. - go func(in <-chan *ssh.Request) { - for req := range in { - req.Reply(req.Type == "shell", nil) - } - }(requests) - - term := terminal.NewTerminal(channel, "> ") - - go func() { - defer channel.Close() - for { - line, err := term.ReadLine() - if err != nil { - break - } - fmt.Println(line) - } - }() - } -} - -func ExampleDial() { - // An SSH client is represented with a ClientConn. - // - // To authenticate with the remote server you must pass at least one - // implementation of AuthMethod via the Auth field in ClientConfig. - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - ssh.Password("yourpassword"), - }, - } - client, err := ssh.Dial("tcp", "yourserver.com:22", config) - if err != nil { - log.Fatal("Failed to dial: ", err) - } - - // Each ClientConn can support multiple interactive sessions, - // represented by a Session. - session, err := client.NewSession() - if err != nil { - log.Fatal("Failed to create session: ", err) - } - defer session.Close() - - // Once a Session is created, you can execute a single command on - // the remote side using the Run method. - var b bytes.Buffer - session.Stdout = &b - if err := session.Run("/usr/bin/whoami"); err != nil { - log.Fatal("Failed to run: " + err.Error()) - } - fmt.Println(b.String()) -} - -func ExamplePublicKeys() { - // A public key may be used to authenticate against the remote - // server by using an unencrypted PEM-encoded private key file. - // - // If you have an encrypted private key, the crypto/x509 package - // can be used to decrypt it. - key, err := ioutil.ReadFile("/home/user/.ssh/id_rsa") - if err != nil { - log.Fatalf("unable to read private key: %v", err) - } - - // Create the Signer for this private key. - signer, err := ssh.ParsePrivateKey(key) - if err != nil { - log.Fatalf("unable to parse private key: %v", err) - } - - config := &ssh.ClientConfig{ - User: "user", - Auth: []ssh.AuthMethod{ - // Use the PublicKeys method for remote authentication. - ssh.PublicKeys(signer), - }, - } - - // Connect to the remote server and perform the SSH handshake. - client, err := ssh.Dial("tcp", "host.com:22", config) - if err != nil { - log.Fatalf("unable to connect: %v", err) - } - defer client.Close() -} - -func ExampleClient_Listen() { - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - ssh.Password("password"), - }, - } - // Dial your ssh server. - conn, err := ssh.Dial("tcp", "localhost:22", config) - if err != nil { - log.Fatal("unable to connect: ", err) - } - defer conn.Close() - - // Request the remote side to open port 8080 on all interfaces. - l, err := conn.Listen("tcp", "0.0.0.0:8080") - if err != nil { - log.Fatal("unable to register tcp forward: ", err) - } - defer l.Close() - - // Serve HTTP with your SSH server acting as a reverse proxy. - http.Serve(l, http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { - fmt.Fprintf(resp, "Hello world!\n") - })) -} - -func ExampleSession_RequestPty() { - // Create client config - config := &ssh.ClientConfig{ - User: "username", - Auth: []ssh.AuthMethod{ - ssh.Password("password"), - }, - } - // Connect to ssh server - conn, err := ssh.Dial("tcp", "localhost:22", config) - if err != nil { - log.Fatal("unable to connect: ", err) - } - defer conn.Close() - // Create a session - session, err := conn.NewSession() - if err != nil { - log.Fatal("unable to create session: ", err) - } - defer session.Close() - // Set up terminal modes - modes := ssh.TerminalModes{ - ssh.ECHO: 0, // disable echoing - ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud - ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud - } - // Request pseudo terminal - if err := session.RequestPty("xterm", 40, 80, modes); err != nil { - log.Fatal("request for pseudo terminal failed: ", err) - } - // Start remote shell - if err := session.Shell(); err != nil { - log.Fatal("failed to start shell: ", err) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go deleted file mode 100644 index 37d42e4..0000000 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ /dev/null @@ -1,460 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto/rand" - "errors" - "fmt" - "io" - "log" - "net" - "sync" -) - -// debugHandshake, if set, prints messages sent and received. Key -// exchange messages are printed as if DH were used, so the debug -// messages are wrong when using ECDH. -const debugHandshake = false - -// keyingTransport is a packet based transport that supports key -// changes. It need not be thread-safe. It should pass through -// msgNewKeys in both directions. -type keyingTransport interface { - packetConn - - // prepareKeyChange sets up a key change. The key change for a - // direction will be effected if a msgNewKeys message is sent - // or received. - prepareKeyChange(*algorithms, *kexResult) error -} - -// handshakeTransport implements rekeying on top of a keyingTransport -// and offers a thread-safe writePacket() interface. -type handshakeTransport struct { - conn keyingTransport - config *Config - - serverVersion []byte - clientVersion []byte - - // hostKeys is non-empty if we are the server. In that case, - // it contains all host keys that can be used to sign the - // connection. - hostKeys []Signer - - // hostKeyAlgorithms is non-empty if we are the client. In that case, - // we accept these key types from the server as host key. - hostKeyAlgorithms []string - - // On read error, incoming is closed, and readError is set. - incoming chan []byte - readError error - - // data for host key checking - hostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error - dialAddress string - remoteAddr net.Addr - - readSinceKex uint64 - - // Protects the writing side of the connection - mu sync.Mutex - cond *sync.Cond - sentInitPacket []byte - sentInitMsg *kexInitMsg - writtenSinceKex uint64 - writeError error - - // The session ID or nil if first kex did not complete yet. - sessionID []byte -} - -func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, serverVersion []byte) *handshakeTransport { - t := &handshakeTransport{ - conn: conn, - serverVersion: serverVersion, - clientVersion: clientVersion, - incoming: make(chan []byte, 16), - config: config, - } - t.cond = sync.NewCond(&t.mu) - return t -} - -func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ClientConfig, dialAddr string, addr net.Addr) *handshakeTransport { - t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) - t.dialAddress = dialAddr - t.remoteAddr = addr - t.hostKeyCallback = config.HostKeyCallback - if config.HostKeyAlgorithms != nil { - t.hostKeyAlgorithms = config.HostKeyAlgorithms - } else { - t.hostKeyAlgorithms = supportedHostKeyAlgos - } - go t.readLoop() - return t -} - -func newServerTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ServerConfig) *handshakeTransport { - t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) - t.hostKeys = config.hostKeys - go t.readLoop() - return t -} - -func (t *handshakeTransport) getSessionID() []byte { - return t.sessionID -} - -func (t *handshakeTransport) id() string { - if len(t.hostKeys) > 0 { - return "server" - } - return "client" -} - -func (t *handshakeTransport) readPacket() ([]byte, error) { - p, ok := <-t.incoming - if !ok { - return nil, t.readError - } - return p, nil -} - -func (t *handshakeTransport) readLoop() { - for { - p, err := t.readOnePacket() - if err != nil { - t.readError = err - close(t.incoming) - break - } - if p[0] == msgIgnore || p[0] == msgDebug { - continue - } - t.incoming <- p - } - - // If we can't read, declare the writing part dead too. - t.mu.Lock() - defer t.mu.Unlock() - if t.writeError == nil { - t.writeError = t.readError - } - t.cond.Broadcast() -} - -func (t *handshakeTransport) readOnePacket() ([]byte, error) { - if t.readSinceKex > t.config.RekeyThreshold { - if err := t.requestKeyChange(); err != nil { - return nil, err - } - } - - p, err := t.conn.readPacket() - if err != nil { - return nil, err - } - - t.readSinceKex += uint64(len(p)) - if debugHandshake { - if p[0] == msgChannelData || p[0] == msgChannelExtendedData { - log.Printf("%s got data (packet %d bytes)", t.id(), len(p)) - } else { - msg, err := decode(p) - log.Printf("%s got %T %v (%v)", t.id(), msg, msg, err) - } - } - if p[0] != msgKexInit { - return p, nil - } - - t.mu.Lock() - - firstKex := t.sessionID == nil - - err = t.enterKeyExchangeLocked(p) - if err != nil { - // drop connection - t.conn.Close() - t.writeError = err - } - - if debugHandshake { - log.Printf("%s exited key exchange (first %v), err %v", t.id(), firstKex, err) - } - - // Unblock writers. - t.sentInitMsg = nil - t.sentInitPacket = nil - t.cond.Broadcast() - t.writtenSinceKex = 0 - t.mu.Unlock() - - if err != nil { - return nil, err - } - - t.readSinceKex = 0 - - // By default, a key exchange is hidden from higher layers by - // translating it into msgIgnore. - successPacket := []byte{msgIgnore} - if firstKex { - // sendKexInit() for the first kex waits for - // msgNewKeys so the authentication process is - // guaranteed to happen over an encrypted transport. - successPacket = []byte{msgNewKeys} - } - - return successPacket, nil -} - -// keyChangeCategory describes whether a key exchange is the first on a -// connection, or a subsequent one. -type keyChangeCategory bool - -const ( - firstKeyExchange keyChangeCategory = true - subsequentKeyExchange keyChangeCategory = false -) - -// sendKexInit sends a key change message, and returns the message -// that was sent. After initiating the key change, all writes will be -// blocked until the change is done, and a failed key change will -// close the underlying transport. This function is safe for -// concurrent use by multiple goroutines. -func (t *handshakeTransport) sendKexInit(isFirst keyChangeCategory) error { - var err error - - t.mu.Lock() - // If this is the initial key change, but we already have a sessionID, - // then do nothing because the key exchange has already completed - // asynchronously. - if !isFirst || t.sessionID == nil { - _, _, err = t.sendKexInitLocked(isFirst) - } - t.mu.Unlock() - if err != nil { - return err - } - if isFirst { - if packet, err := t.readPacket(); err != nil { - return err - } else if packet[0] != msgNewKeys { - return unexpectedMessageError(msgNewKeys, packet[0]) - } - } - return nil -} - -func (t *handshakeTransport) requestInitialKeyChange() error { - return t.sendKexInit(firstKeyExchange) -} - -func (t *handshakeTransport) requestKeyChange() error { - return t.sendKexInit(subsequentKeyExchange) -} - -// sendKexInitLocked sends a key change message. t.mu must be locked -// while this happens. -func (t *handshakeTransport) sendKexInitLocked(isFirst keyChangeCategory) (*kexInitMsg, []byte, error) { - // kexInits may be sent either in response to the other side, - // or because our side wants to initiate a key change, so we - // may have already sent a kexInit. In that case, don't send a - // second kexInit. - if t.sentInitMsg != nil { - return t.sentInitMsg, t.sentInitPacket, nil - } - - msg := &kexInitMsg{ - KexAlgos: t.config.KeyExchanges, - CiphersClientServer: t.config.Ciphers, - CiphersServerClient: t.config.Ciphers, - MACsClientServer: t.config.MACs, - MACsServerClient: t.config.MACs, - CompressionClientServer: supportedCompressions, - CompressionServerClient: supportedCompressions, - } - io.ReadFull(rand.Reader, msg.Cookie[:]) - - if len(t.hostKeys) > 0 { - for _, k := range t.hostKeys { - msg.ServerHostKeyAlgos = append( - msg.ServerHostKeyAlgos, k.PublicKey().Type()) - } - } else { - msg.ServerHostKeyAlgos = t.hostKeyAlgorithms - } - packet := Marshal(msg) - - // writePacket destroys the contents, so save a copy. - packetCopy := make([]byte, len(packet)) - copy(packetCopy, packet) - - if err := t.conn.writePacket(packetCopy); err != nil { - return nil, nil, err - } - - t.sentInitMsg = msg - t.sentInitPacket = packet - return msg, packet, nil -} - -func (t *handshakeTransport) writePacket(p []byte) error { - t.mu.Lock() - defer t.mu.Unlock() - - if t.writtenSinceKex > t.config.RekeyThreshold { - t.sendKexInitLocked(subsequentKeyExchange) - } - for t.sentInitMsg != nil && t.writeError == nil { - t.cond.Wait() - } - if t.writeError != nil { - return t.writeError - } - t.writtenSinceKex += uint64(len(p)) - - switch p[0] { - case msgKexInit: - return errors.New("ssh: only handshakeTransport can send kexInit") - case msgNewKeys: - return errors.New("ssh: only handshakeTransport can send newKeys") - default: - return t.conn.writePacket(p) - } -} - -func (t *handshakeTransport) Close() error { - return t.conn.Close() -} - -// enterKeyExchange runs the key exchange. t.mu must be held while running this. -func (t *handshakeTransport) enterKeyExchangeLocked(otherInitPacket []byte) error { - if debugHandshake { - log.Printf("%s entered key exchange", t.id()) - } - myInit, myInitPacket, err := t.sendKexInitLocked(subsequentKeyExchange) - if err != nil { - return err - } - - otherInit := &kexInitMsg{} - if err := Unmarshal(otherInitPacket, otherInit); err != nil { - return err - } - - magics := handshakeMagics{ - clientVersion: t.clientVersion, - serverVersion: t.serverVersion, - clientKexInit: otherInitPacket, - serverKexInit: myInitPacket, - } - - clientInit := otherInit - serverInit := myInit - if len(t.hostKeys) == 0 { - clientInit = myInit - serverInit = otherInit - - magics.clientKexInit = myInitPacket - magics.serverKexInit = otherInitPacket - } - - algs, err := findAgreedAlgorithms(clientInit, serverInit) - if err != nil { - return err - } - - // We don't send FirstKexFollows, but we handle receiving it. - // - // RFC 4253 section 7 defines the kex and the agreement method for - // first_kex_packet_follows. It states that the guessed packet - // should be ignored if the "kex algorithm and/or the host - // key algorithm is guessed wrong (server and client have - // different preferred algorithm), or if any of the other - // algorithms cannot be agreed upon". The other algorithms have - // already been checked above so the kex algorithm and host key - // algorithm are checked here. - if otherInit.FirstKexFollows && (clientInit.KexAlgos[0] != serverInit.KexAlgos[0] || clientInit.ServerHostKeyAlgos[0] != serverInit.ServerHostKeyAlgos[0]) { - // other side sent a kex message for the wrong algorithm, - // which we have to ignore. - if _, err := t.conn.readPacket(); err != nil { - return err - } - } - - kex, ok := kexAlgoMap[algs.kex] - if !ok { - return fmt.Errorf("ssh: unexpected key exchange algorithm %v", algs.kex) - } - - var result *kexResult - if len(t.hostKeys) > 0 { - result, err = t.server(kex, algs, &magics) - } else { - result, err = t.client(kex, algs, &magics) - } - - if err != nil { - return err - } - - if t.sessionID == nil { - t.sessionID = result.H - } - result.SessionID = t.sessionID - - t.conn.prepareKeyChange(algs, result) - if err = t.conn.writePacket([]byte{msgNewKeys}); err != nil { - return err - } - if packet, err := t.conn.readPacket(); err != nil { - return err - } else if packet[0] != msgNewKeys { - return unexpectedMessageError(msgNewKeys, packet[0]) - } - - return nil -} - -func (t *handshakeTransport) server(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { - var hostKey Signer - for _, k := range t.hostKeys { - if algs.hostKey == k.PublicKey().Type() { - hostKey = k - } - } - - r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey) - return r, err -} - -func (t *handshakeTransport) client(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { - result, err := kex.Client(t.conn, t.config.Rand, magics) - if err != nil { - return nil, err - } - - hostKey, err := ParsePublicKey(result.HostKey) - if err != nil { - return nil, err - } - - if err := verifyHostKeySignature(hostKey, result); err != nil { - return nil, err - } - - if t.hostKeyCallback != nil { - err = t.hostKeyCallback(t.dialAddress, t.remoteAddr, hostKey) - if err != nil { - return nil, err - } - } - - return result, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/handshake_test.go b/vendor/golang.org/x/crypto/ssh/handshake_test.go deleted file mode 100644 index da53d3a..0000000 --- a/vendor/golang.org/x/crypto/ssh/handshake_test.go +++ /dev/null @@ -1,486 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto/rand" - "errors" - "fmt" - "net" - "reflect" - "runtime" - "strings" - "sync" - "testing" -) - -type testChecker struct { - calls []string -} - -func (t *testChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { - if dialAddr == "bad" { - return fmt.Errorf("dialAddr is bad") - } - - if tcpAddr, ok := addr.(*net.TCPAddr); !ok || tcpAddr == nil { - return fmt.Errorf("testChecker: got %T want *net.TCPAddr", addr) - } - - t.calls = append(t.calls, fmt.Sprintf("%s %v %s %x", dialAddr, addr, key.Type(), key.Marshal())) - - return nil -} - -// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and -// therefore is buffered (net.Pipe deadlocks if both sides start with -// a write.) -func netPipe() (net.Conn, net.Conn, error) { - listener, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - return nil, nil, err - } - defer listener.Close() - c1, err := net.Dial("tcp", listener.Addr().String()) - if err != nil { - return nil, nil, err - } - - c2, err := listener.Accept() - if err != nil { - c1.Close() - return nil, nil, err - } - - return c1, c2, nil -} - -func handshakePair(clientConf *ClientConfig, addr string) (client *handshakeTransport, server *handshakeTransport, err error) { - a, b, err := netPipe() - if err != nil { - return nil, nil, err - } - - trC := newTransport(a, rand.Reader, true) - trS := newTransport(b, rand.Reader, false) - clientConf.SetDefaults() - - v := []byte("version") - client = newClientTransport(trC, v, v, clientConf, addr, a.RemoteAddr()) - - serverConf := &ServerConfig{} - serverConf.AddHostKey(testSigners["ecdsa"]) - serverConf.AddHostKey(testSigners["rsa"]) - serverConf.SetDefaults() - server = newServerTransport(trS, v, v, serverConf) - - return client, server, nil -} - -func TestHandshakeBasic(t *testing.T) { - if runtime.GOOS == "plan9" { - t.Skip("see golang.org/issue/7237") - } - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - - defer trC.Close() - defer trS.Close() - - go func() { - // Client writes a bunch of stuff, and does a key - // change in the middle. This should not confuse the - // handshake in progress - for i := 0; i < 10; i++ { - p := []byte{msgRequestSuccess, byte(i)} - if err := trC.writePacket(p); err != nil { - t.Fatalf("sendPacket: %v", err) - } - if i == 5 { - // halfway through, we request a key change. - err := trC.sendKexInit(subsequentKeyExchange) - if err != nil { - t.Fatalf("sendKexInit: %v", err) - } - } - } - trC.Close() - }() - - // Server checks that client messages come in cleanly - i := 0 - for { - p, err := trS.readPacket() - if err != nil { - break - } - if p[0] == msgNewKeys { - continue - } - want := []byte{msgRequestSuccess, byte(i)} - if bytes.Compare(p, want) != 0 { - t.Errorf("message %d: got %q, want %q", i, p, want) - } - i++ - } - if i != 10 { - t.Errorf("received %d messages, want 10.", i) - } - - // If all went well, we registered exactly 1 key change. - if len(checker.calls) != 1 { - t.Fatalf("got %d host key checks, want 1", len(checker.calls)) - } - - pub := testSigners["ecdsa"].PublicKey() - want := fmt.Sprintf("%s %v %s %x", "addr", trC.remoteAddr, pub.Type(), pub.Marshal()) - if want != checker.calls[0] { - t.Errorf("got %q want %q for host key check", checker.calls[0], want) - } -} - -func TestHandshakeError(t *testing.T) { - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "bad") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - defer trC.Close() - defer trS.Close() - - // send a packet - packet := []byte{msgRequestSuccess, 42} - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - - // Now request a key change. - err = trC.sendKexInit(subsequentKeyExchange) - if err != nil { - t.Errorf("sendKexInit: %v", err) - } - - // the key change will fail, and afterwards we can't write. - if err := trC.writePacket([]byte{msgRequestSuccess, 43}); err == nil { - t.Errorf("writePacket after botched rekey succeeded.") - } - - readback, err := trS.readPacket() - if err != nil { - t.Fatalf("server closed too soon: %v", err) - } - if bytes.Compare(readback, packet) != 0 { - t.Errorf("got %q want %q", readback, packet) - } - readback, err = trS.readPacket() - if err == nil { - t.Errorf("got a message %q after failed key change", readback) - } -} - -func TestForceFirstKex(t *testing.T) { - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - - defer trC.Close() - defer trS.Close() - - trC.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})) - - // We setup the initial key exchange, but the remote side - // tries to send serviceRequestMsg in cleartext, which is - // disallowed. - - err = trS.sendKexInit(firstKeyExchange) - if err == nil { - t.Errorf("server first kex init should reject unexpected packet") - } -} - -func TestHandshakeTwice(t *testing.T) { - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - - defer trC.Close() - defer trS.Close() - - // Both sides should ask for the first key exchange first. - err = trS.sendKexInit(firstKeyExchange) - if err != nil { - t.Errorf("server sendKexInit: %v", err) - } - - err = trC.sendKexInit(firstKeyExchange) - if err != nil { - t.Errorf("client sendKexInit: %v", err) - } - - sent := 0 - // send a packet - packet := make([]byte, 5) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - sent++ - - // Send another packet. Use a fresh one, since writePacket destroys. - packet = make([]byte, 5) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - sent++ - - // 2nd key change. - err = trC.sendKexInit(subsequentKeyExchange) - if err != nil { - t.Errorf("sendKexInit: %v", err) - } - - packet = make([]byte, 5) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - sent++ - - packet = make([]byte, 5) - packet[0] = msgRequestSuccess - for i := 0; i < sent; i++ { - msg, err := trS.readPacket() - if err != nil { - t.Fatalf("server closed too soon: %v", err) - } - - if bytes.Compare(msg, packet) != 0 { - t.Errorf("packet %d: got %q want %q", i, msg, packet) - } - } - if len(checker.calls) != 2 { - t.Errorf("got %d key changes, want 2", len(checker.calls)) - } -} - -func TestHandshakeAutoRekeyWrite(t *testing.T) { - checker := &testChecker{} - clientConf := &ClientConfig{HostKeyCallback: checker.Check} - clientConf.RekeyThreshold = 500 - trC, trS, err := handshakePair(clientConf, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - defer trC.Close() - defer trS.Close() - - for i := 0; i < 5; i++ { - packet := make([]byte, 251) - packet[0] = msgRequestSuccess - if err := trC.writePacket(packet); err != nil { - t.Errorf("writePacket: %v", err) - } - } - - j := 0 - for ; j < 5; j++ { - _, err := trS.readPacket() - if err != nil { - break - } - } - - if j != 5 { - t.Errorf("got %d, want 5 messages", j) - } - - if len(checker.calls) != 2 { - t.Errorf("got %d key changes, wanted 2", len(checker.calls)) - } -} - -type syncChecker struct { - called chan int -} - -func (t *syncChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { - t.called <- 1 - return nil -} - -func TestHandshakeAutoRekeyRead(t *testing.T) { - sync := &syncChecker{make(chan int, 2)} - clientConf := &ClientConfig{ - HostKeyCallback: sync.Check, - } - clientConf.RekeyThreshold = 500 - - trC, trS, err := handshakePair(clientConf, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - defer trC.Close() - defer trS.Close() - - packet := make([]byte, 501) - packet[0] = msgRequestSuccess - if err := trS.writePacket(packet); err != nil { - t.Fatalf("writePacket: %v", err) - } - // While we read out the packet, a key change will be - // initiated. - if _, err := trC.readPacket(); err != nil { - t.Fatalf("readPacket(client): %v", err) - } - - <-sync.called -} - -// errorKeyingTransport generates errors after a given number of -// read/write operations. -type errorKeyingTransport struct { - packetConn - readLeft, writeLeft int -} - -func (n *errorKeyingTransport) prepareKeyChange(*algorithms, *kexResult) error { - return nil -} -func (n *errorKeyingTransport) getSessionID() []byte { - return nil -} - -func (n *errorKeyingTransport) writePacket(packet []byte) error { - if n.writeLeft == 0 { - n.Close() - return errors.New("barf") - } - - n.writeLeft-- - return n.packetConn.writePacket(packet) -} - -func (n *errorKeyingTransport) readPacket() ([]byte, error) { - if n.readLeft == 0 { - n.Close() - return nil, errors.New("barf") - } - - n.readLeft-- - return n.packetConn.readPacket() -} - -func TestHandshakeErrorHandlingRead(t *testing.T) { - for i := 0; i < 20; i++ { - testHandshakeErrorHandlingN(t, i, -1) - } -} - -func TestHandshakeErrorHandlingWrite(t *testing.T) { - for i := 0; i < 20; i++ { - testHandshakeErrorHandlingN(t, -1, i) - } -} - -// testHandshakeErrorHandlingN runs handshakes, injecting errors. If -// handshakeTransport deadlocks, the go runtime will detect it and -// panic. -func testHandshakeErrorHandlingN(t *testing.T, readLimit, writeLimit int) { - msg := Marshal(&serviceRequestMsg{strings.Repeat("x", int(minRekeyThreshold)/4)}) - - a, b := memPipe() - defer a.Close() - defer b.Close() - - key := testSigners["ecdsa"] - serverConf := Config{RekeyThreshold: minRekeyThreshold} - serverConf.SetDefaults() - serverConn := newHandshakeTransport(&errorKeyingTransport{a, readLimit, writeLimit}, &serverConf, []byte{'a'}, []byte{'b'}) - serverConn.hostKeys = []Signer{key} - go serverConn.readLoop() - - clientConf := Config{RekeyThreshold: 10 * minRekeyThreshold} - clientConf.SetDefaults() - clientConn := newHandshakeTransport(&errorKeyingTransport{b, -1, -1}, &clientConf, []byte{'a'}, []byte{'b'}) - clientConn.hostKeyAlgorithms = []string{key.PublicKey().Type()} - go clientConn.readLoop() - - var wg sync.WaitGroup - wg.Add(4) - - for _, hs := range []packetConn{serverConn, clientConn} { - go func(c packetConn) { - for { - err := c.writePacket(msg) - if err != nil { - break - } - } - wg.Done() - }(hs) - go func(c packetConn) { - for { - _, err := c.readPacket() - if err != nil { - break - } - } - wg.Done() - }(hs) - } - - wg.Wait() -} - -func TestDisconnect(t *testing.T) { - if runtime.GOOS == "plan9" { - t.Skip("see golang.org/issue/7237") - } - checker := &testChecker{} - trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") - if err != nil { - t.Fatalf("handshakePair: %v", err) - } - - defer trC.Close() - defer trS.Close() - - trC.writePacket([]byte{msgRequestSuccess, 0, 0}) - errMsg := &disconnectMsg{ - Reason: 42, - Message: "such is life", - } - trC.writePacket(Marshal(errMsg)) - trC.writePacket([]byte{msgRequestSuccess, 0, 0}) - - packet, err := trS.readPacket() - if err != nil { - t.Fatalf("readPacket 1: %v", err) - } - if packet[0] != msgRequestSuccess { - t.Errorf("got packet %v, want packet type %d", packet, msgRequestSuccess) - } - - _, err = trS.readPacket() - if err == nil { - t.Errorf("readPacket 2 succeeded") - } else if !reflect.DeepEqual(err, errMsg) { - t.Errorf("got error %#v, want %#v", err, errMsg) - } - - _, err = trS.readPacket() - if err == nil { - t.Errorf("readPacket 3 succeeded") - } -} diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go deleted file mode 100644 index c87fbeb..0000000 --- a/vendor/golang.org/x/crypto/ssh/kex.go +++ /dev/null @@ -1,540 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "crypto" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/subtle" - "errors" - "io" - "math/big" - - "golang.org/x/crypto/curve25519" -) - -const ( - kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" - kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" - kexAlgoECDH256 = "ecdh-sha2-nistp256" - kexAlgoECDH384 = "ecdh-sha2-nistp384" - kexAlgoECDH521 = "ecdh-sha2-nistp521" - kexAlgoCurve25519SHA256 = "curve25519-sha256@libssh.org" -) - -// kexResult captures the outcome of a key exchange. -type kexResult struct { - // Session hash. See also RFC 4253, section 8. - H []byte - - // Shared secret. See also RFC 4253, section 8. - K []byte - - // Host key as hashed into H. - HostKey []byte - - // Signature of H. - Signature []byte - - // A cryptographic hash function that matches the security - // level of the key exchange algorithm. It is used for - // calculating H, and for deriving keys from H and K. - Hash crypto.Hash - - // The session ID, which is the first H computed. This is used - // to derive key material inside the transport. - SessionID []byte -} - -// handshakeMagics contains data that is always included in the -// session hash. -type handshakeMagics struct { - clientVersion, serverVersion []byte - clientKexInit, serverKexInit []byte -} - -func (m *handshakeMagics) write(w io.Writer) { - writeString(w, m.clientVersion) - writeString(w, m.serverVersion) - writeString(w, m.clientKexInit) - writeString(w, m.serverKexInit) -} - -// kexAlgorithm abstracts different key exchange algorithms. -type kexAlgorithm interface { - // Server runs server-side key agreement, signing the result - // with a hostkey. - Server(p packetConn, rand io.Reader, magics *handshakeMagics, s Signer) (*kexResult, error) - - // Client runs the client-side key agreement. Caller is - // responsible for verifying the host key signature. - Client(p packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) -} - -// dhGroup is a multiplicative group suitable for implementing Diffie-Hellman key agreement. -type dhGroup struct { - g, p, pMinus1 *big.Int -} - -func (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { - if theirPublic.Cmp(bigOne) <= 0 || theirPublic.Cmp(group.pMinus1) >= 0 { - return nil, errors.New("ssh: DH parameter out of bounds") - } - return new(big.Int).Exp(theirPublic, myPrivate, group.p), nil -} - -func (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { - hashFunc := crypto.SHA1 - - var x *big.Int - for { - var err error - if x, err = rand.Int(randSource, group.pMinus1); err != nil { - return nil, err - } - if x.Sign() > 0 { - break - } - } - - X := new(big.Int).Exp(group.g, x, group.p) - kexDHInit := kexDHInitMsg{ - X: X, - } - if err := c.writePacket(Marshal(&kexDHInit)); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var kexDHReply kexDHReplyMsg - if err = Unmarshal(packet, &kexDHReply); err != nil { - return nil, err - } - - kInt, err := group.diffieHellman(kexDHReply.Y, x) - if err != nil { - return nil, err - } - - h := hashFunc.New() - magics.write(h) - writeString(h, kexDHReply.HostKey) - writeInt(h, X) - writeInt(h, kexDHReply.Y) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: kexDHReply.HostKey, - Signature: kexDHReply.Signature, - Hash: crypto.SHA1, - }, nil -} - -func (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - hashFunc := crypto.SHA1 - packet, err := c.readPacket() - if err != nil { - return - } - var kexDHInit kexDHInitMsg - if err = Unmarshal(packet, &kexDHInit); err != nil { - return - } - - var y *big.Int - for { - if y, err = rand.Int(randSource, group.pMinus1); err != nil { - return - } - if y.Sign() > 0 { - break - } - } - - Y := new(big.Int).Exp(group.g, y, group.p) - kInt, err := group.diffieHellman(kexDHInit.X, y) - if err != nil { - return nil, err - } - - hostKeyBytes := priv.PublicKey().Marshal() - - h := hashFunc.New() - magics.write(h) - writeString(h, hostKeyBytes) - writeInt(h, kexDHInit.X) - writeInt(h, Y) - - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - H := h.Sum(nil) - - // H is already a hash, but the hostkey signing will apply its - // own key-specific hash algorithm. - sig, err := signAndMarshal(priv, randSource, H) - if err != nil { - return nil, err - } - - kexDHReply := kexDHReplyMsg{ - HostKey: hostKeyBytes, - Y: Y, - Signature: sig, - } - packet = Marshal(&kexDHReply) - - err = c.writePacket(packet) - return &kexResult{ - H: H, - K: K, - HostKey: hostKeyBytes, - Signature: sig, - Hash: crypto.SHA1, - }, nil -} - -// ecdh performs Elliptic Curve Diffie-Hellman key exchange as -// described in RFC 5656, section 4. -type ecdh struct { - curve elliptic.Curve -} - -func (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { - ephKey, err := ecdsa.GenerateKey(kex.curve, rand) - if err != nil { - return nil, err - } - - kexInit := kexECDHInitMsg{ - ClientPubKey: elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y), - } - - serialized := Marshal(&kexInit) - if err := c.writePacket(serialized); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var reply kexECDHReplyMsg - if err = Unmarshal(packet, &reply); err != nil { - return nil, err - } - - x, y, err := unmarshalECKey(kex.curve, reply.EphemeralPubKey) - if err != nil { - return nil, err - } - - // generate shared secret - secret, _ := kex.curve.ScalarMult(x, y, ephKey.D.Bytes()) - - h := ecHash(kex.curve).New() - magics.write(h) - writeString(h, reply.HostKey) - writeString(h, kexInit.ClientPubKey) - writeString(h, reply.EphemeralPubKey) - K := make([]byte, intLength(secret)) - marshalInt(K, secret) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: reply.HostKey, - Signature: reply.Signature, - Hash: ecHash(kex.curve), - }, nil -} - -// unmarshalECKey parses and checks an EC key. -func unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) { - x, y = elliptic.Unmarshal(curve, pubkey) - if x == nil { - return nil, nil, errors.New("ssh: elliptic.Unmarshal failure") - } - if !validateECPublicKey(curve, x, y) { - return nil, nil, errors.New("ssh: public key not on curve") - } - return x, y, nil -} - -// validateECPublicKey checks that the point is a valid public key for -// the given curve. See [SEC1], 3.2.2 -func validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool { - if x.Sign() == 0 && y.Sign() == 0 { - return false - } - - if x.Cmp(curve.Params().P) >= 0 { - return false - } - - if y.Cmp(curve.Params().P) >= 0 { - return false - } - - if !curve.IsOnCurve(x, y) { - return false - } - - // We don't check if N * PubKey == 0, since - // - // - the NIST curves have cofactor = 1, so this is implicit. - // (We don't foresee an implementation that supports non NIST - // curves) - // - // - for ephemeral keys, we don't need to worry about small - // subgroup attacks. - return true -} - -func (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var kexECDHInit kexECDHInitMsg - if err = Unmarshal(packet, &kexECDHInit); err != nil { - return nil, err - } - - clientX, clientY, err := unmarshalECKey(kex.curve, kexECDHInit.ClientPubKey) - if err != nil { - return nil, err - } - - // We could cache this key across multiple users/multiple - // connection attempts, but the benefit is small. OpenSSH - // generates a new key for each incoming connection. - ephKey, err := ecdsa.GenerateKey(kex.curve, rand) - if err != nil { - return nil, err - } - - hostKeyBytes := priv.PublicKey().Marshal() - - serializedEphKey := elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y) - - // generate shared secret - secret, _ := kex.curve.ScalarMult(clientX, clientY, ephKey.D.Bytes()) - - h := ecHash(kex.curve).New() - magics.write(h) - writeString(h, hostKeyBytes) - writeString(h, kexECDHInit.ClientPubKey) - writeString(h, serializedEphKey) - - K := make([]byte, intLength(secret)) - marshalInt(K, secret) - h.Write(K) - - H := h.Sum(nil) - - // H is already a hash, but the hostkey signing will apply its - // own key-specific hash algorithm. - sig, err := signAndMarshal(priv, rand, H) - if err != nil { - return nil, err - } - - reply := kexECDHReplyMsg{ - EphemeralPubKey: serializedEphKey, - HostKey: hostKeyBytes, - Signature: sig, - } - - serialized := Marshal(&reply) - if err := c.writePacket(serialized); err != nil { - return nil, err - } - - return &kexResult{ - H: H, - K: K, - HostKey: reply.HostKey, - Signature: sig, - Hash: ecHash(kex.curve), - }, nil -} - -var kexAlgoMap = map[string]kexAlgorithm{} - -func init() { - // This is the group called diffie-hellman-group1-sha1 in RFC - // 4253 and Oakley Group 2 in RFC 2409. - p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF", 16) - kexAlgoMap[kexAlgoDH1SHA1] = &dhGroup{ - g: new(big.Int).SetInt64(2), - p: p, - pMinus1: new(big.Int).Sub(p, bigOne), - } - - // This is the group called diffie-hellman-group14-sha1 in RFC - // 4253 and Oakley Group 14 in RFC 3526. - p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) - - kexAlgoMap[kexAlgoDH14SHA1] = &dhGroup{ - g: new(big.Int).SetInt64(2), - p: p, - pMinus1: new(big.Int).Sub(p, bigOne), - } - - kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} - kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} - kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} - kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} -} - -// curve25519sha256 implements the curve25519-sha256@libssh.org key -// agreement protocol, as described in -// https://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt -type curve25519sha256 struct{} - -type curve25519KeyPair struct { - priv [32]byte - pub [32]byte -} - -func (kp *curve25519KeyPair) generate(rand io.Reader) error { - if _, err := io.ReadFull(rand, kp.priv[:]); err != nil { - return err - } - curve25519.ScalarBaseMult(&kp.pub, &kp.priv) - return nil -} - -// curve25519Zeros is just an array of 32 zero bytes so that we have something -// convenient to compare against in order to reject curve25519 points with the -// wrong order. -var curve25519Zeros [32]byte - -func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { - var kp curve25519KeyPair - if err := kp.generate(rand); err != nil { - return nil, err - } - if err := c.writePacket(Marshal(&kexECDHInitMsg{kp.pub[:]})); err != nil { - return nil, err - } - - packet, err := c.readPacket() - if err != nil { - return nil, err - } - - var reply kexECDHReplyMsg - if err = Unmarshal(packet, &reply); err != nil { - return nil, err - } - if len(reply.EphemeralPubKey) != 32 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong length") - } - - var servPub, secret [32]byte - copy(servPub[:], reply.EphemeralPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &servPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") - } - - h := crypto.SHA256.New() - magics.write(h) - writeString(h, reply.HostKey) - writeString(h, kp.pub[:]) - writeString(h, reply.EphemeralPubKey) - - kInt := new(big.Int).SetBytes(secret[:]) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - return &kexResult{ - H: h.Sum(nil), - K: K, - HostKey: reply.HostKey, - Signature: reply.Signature, - Hash: crypto.SHA256, - }, nil -} - -func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { - packet, err := c.readPacket() - if err != nil { - return - } - var kexInit kexECDHInitMsg - if err = Unmarshal(packet, &kexInit); err != nil { - return - } - - if len(kexInit.ClientPubKey) != 32 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong length") - } - - var kp curve25519KeyPair - if err := kp.generate(rand); err != nil { - return nil, err - } - - var clientPub, secret [32]byte - copy(clientPub[:], kexInit.ClientPubKey) - curve25519.ScalarMult(&secret, &kp.priv, &clientPub) - if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { - return nil, errors.New("ssh: peer's curve25519 public value has wrong order") - } - - hostKeyBytes := priv.PublicKey().Marshal() - - h := crypto.SHA256.New() - magics.write(h) - writeString(h, hostKeyBytes) - writeString(h, kexInit.ClientPubKey) - writeString(h, kp.pub[:]) - - kInt := new(big.Int).SetBytes(secret[:]) - K := make([]byte, intLength(kInt)) - marshalInt(K, kInt) - h.Write(K) - - H := h.Sum(nil) - - sig, err := signAndMarshal(priv, rand, H) - if err != nil { - return nil, err - } - - reply := kexECDHReplyMsg{ - EphemeralPubKey: kp.pub[:], - HostKey: hostKeyBytes, - Signature: sig, - } - if err := c.writePacket(Marshal(&reply)); err != nil { - return nil, err - } - return &kexResult{ - H: H, - K: K, - HostKey: hostKeyBytes, - Signature: sig, - Hash: crypto.SHA256, - }, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/kex_test.go b/vendor/golang.org/x/crypto/ssh/kex_test.go deleted file mode 100644 index 12ca0ac..0000000 --- a/vendor/golang.org/x/crypto/ssh/kex_test.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -// Key exchange tests. - -import ( - "crypto/rand" - "reflect" - "testing" -) - -func TestKexes(t *testing.T) { - type kexResultErr struct { - result *kexResult - err error - } - - for name, kex := range kexAlgoMap { - a, b := memPipe() - - s := make(chan kexResultErr, 1) - c := make(chan kexResultErr, 1) - var magics handshakeMagics - go func() { - r, e := kex.Client(a, rand.Reader, &magics) - a.Close() - c <- kexResultErr{r, e} - }() - go func() { - r, e := kex.Server(b, rand.Reader, &magics, testSigners["ecdsa"]) - b.Close() - s <- kexResultErr{r, e} - }() - - clientRes := <-c - serverRes := <-s - if clientRes.err != nil { - t.Errorf("client: %v", clientRes.err) - } - if serverRes.err != nil { - t.Errorf("server: %v", serverRes.err) - } - if !reflect.DeepEqual(clientRes.result, serverRes.result) { - t.Errorf("kex %q: mismatch %#v, %#v", name, clientRes.result, serverRes.result) - } - } -} diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go deleted file mode 100644 index 21f7d0d..0000000 --- a/vendor/golang.org/x/crypto/ssh/keys.go +++ /dev/null @@ -1,905 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/md5" - "crypto/rsa" - "crypto/sha256" - "crypto/x509" - "encoding/asn1" - "encoding/base64" - "encoding/hex" - "encoding/pem" - "errors" - "fmt" - "io" - "math/big" - "strings" - - "golang.org/x/crypto/ed25519" -) - -// These constants represent the algorithm names for key types supported by this -// package. -const ( - KeyAlgoRSA = "ssh-rsa" - KeyAlgoDSA = "ssh-dss" - KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" - KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" - KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" - KeyAlgoED25519 = "ssh-ed25519" -) - -// parsePubKey parses a public key of the given algorithm. -// Use ParsePublicKey for keys with prepended algorithm. -func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) { - switch algo { - case KeyAlgoRSA: - return parseRSA(in) - case KeyAlgoDSA: - return parseDSA(in) - case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521: - return parseECDSA(in) - case KeyAlgoED25519: - return parseED25519(in) - case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01: - cert, err := parseCert(in, certToPrivAlgo(algo)) - if err != nil { - return nil, nil, err - } - return cert, nil, nil - } - return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", algo) -} - -// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format -// (see sshd(8) manual page) once the options and key type fields have been -// removed. -func parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) { - in = bytes.TrimSpace(in) - - i := bytes.IndexAny(in, " \t") - if i == -1 { - i = len(in) - } - base64Key := in[:i] - - key := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key))) - n, err := base64.StdEncoding.Decode(key, base64Key) - if err != nil { - return nil, "", err - } - key = key[:n] - out, err = ParsePublicKey(key) - if err != nil { - return nil, "", err - } - comment = string(bytes.TrimSpace(in[i:])) - return out, comment, nil -} - -// ParseKnownHosts parses an entry in the format of the known_hosts file. -// -// The known_hosts format is documented in the sshd(8) manual page. This -// function will parse a single entry from in. On successful return, marker -// will contain the optional marker value (i.e. "cert-authority" or "revoked") -// or else be empty, hosts will contain the hosts that this entry matches, -// pubKey will contain the public key and comment will contain any trailing -// comment at the end of the line. See the sshd(8) manual page for the various -// forms that a host string can take. -// -// The unparsed remainder of the input will be returned in rest. This function -// can be called repeatedly to parse multiple entries. -// -// If no entries were found in the input then err will be io.EOF. Otherwise a -// non-nil err value indicates a parse error. -func ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey, comment string, rest []byte, err error) { - for len(in) > 0 { - end := bytes.IndexByte(in, '\n') - if end != -1 { - rest = in[end+1:] - in = in[:end] - } else { - rest = nil - } - - end = bytes.IndexByte(in, '\r') - if end != -1 { - in = in[:end] - } - - in = bytes.TrimSpace(in) - if len(in) == 0 || in[0] == '#' { - in = rest - continue - } - - i := bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - // Strip out the beginning of the known_host key. - // This is either an optional marker or a (set of) hostname(s). - keyFields := bytes.Fields(in) - if len(keyFields) < 3 || len(keyFields) > 5 { - return "", nil, nil, "", nil, errors.New("ssh: invalid entry in known_hosts data") - } - - // keyFields[0] is either "@cert-authority", "@revoked" or a comma separated - // list of hosts - marker := "" - if keyFields[0][0] == '@' { - marker = string(keyFields[0][1:]) - keyFields = keyFields[1:] - } - - hosts := string(keyFields[0]) - // keyFields[1] contains the key type (e.g. “ssh-rsa”). - // However, that information is duplicated inside the - // base64-encoded key and so is ignored here. - - key := bytes.Join(keyFields[2:], []byte(" ")) - if pubKey, comment, err = parseAuthorizedKey(key); err != nil { - return "", nil, nil, "", nil, err - } - - return marker, strings.Split(hosts, ","), pubKey, comment, rest, nil - } - - return "", nil, nil, "", nil, io.EOF -} - -// ParseAuthorizedKeys parses a public key from an authorized_keys -// file used in OpenSSH according to the sshd(8) manual page. -func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { - for len(in) > 0 { - end := bytes.IndexByte(in, '\n') - if end != -1 { - rest = in[end+1:] - in = in[:end] - } else { - rest = nil - } - - end = bytes.IndexByte(in, '\r') - if end != -1 { - in = in[:end] - } - - in = bytes.TrimSpace(in) - if len(in) == 0 || in[0] == '#' { - in = rest - continue - } - - i := bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - return out, comment, options, rest, nil - } - - // No key type recognised. Maybe there's an options field at - // the beginning. - var b byte - inQuote := false - var candidateOptions []string - optionStart := 0 - for i, b = range in { - isEnd := !inQuote && (b == ' ' || b == '\t') - if (b == ',' && !inQuote) || isEnd { - if i-optionStart > 0 { - candidateOptions = append(candidateOptions, string(in[optionStart:i])) - } - optionStart = i + 1 - } - if isEnd { - break - } - if b == '"' && (i == 0 || (i > 0 && in[i-1] != '\\')) { - inQuote = !inQuote - } - } - for i < len(in) && (in[i] == ' ' || in[i] == '\t') { - i++ - } - if i == len(in) { - // Invalid line: unmatched quote - in = rest - continue - } - - in = in[i:] - i = bytes.IndexAny(in, " \t") - if i == -1 { - in = rest - continue - } - - if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - options = candidateOptions - return out, comment, options, rest, nil - } - - in = rest - continue - } - - return nil, "", nil, nil, errors.New("ssh: no key found") -} - -// ParsePublicKey parses an SSH public key formatted for use in -// the SSH wire protocol according to RFC 4253, section 6.6. -func ParsePublicKey(in []byte) (out PublicKey, err error) { - algo, in, ok := parseString(in) - if !ok { - return nil, errShortRead - } - var rest []byte - out, rest, err = parsePubKey(in, string(algo)) - if len(rest) > 0 { - return nil, errors.New("ssh: trailing junk in public key") - } - - return out, err -} - -// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH -// authorized_keys file. The return value ends with newline. -func MarshalAuthorizedKey(key PublicKey) []byte { - b := &bytes.Buffer{} - b.WriteString(key.Type()) - b.WriteByte(' ') - e := base64.NewEncoder(base64.StdEncoding, b) - e.Write(key.Marshal()) - e.Close() - b.WriteByte('\n') - return b.Bytes() -} - -// PublicKey is an abstraction of different types of public keys. -type PublicKey interface { - // Type returns the key's type, e.g. "ssh-rsa". - Type() string - - // Marshal returns the serialized key data in SSH wire format, - // with the name prefix. - Marshal() []byte - - // Verify that sig is a signature on the given data using this - // key. This function will hash the data appropriately first. - Verify(data []byte, sig *Signature) error -} - -// CryptoPublicKey, if implemented by a PublicKey, -// returns the underlying crypto.PublicKey form of the key. -type CryptoPublicKey interface { - CryptoPublicKey() crypto.PublicKey -} - -// A Signer can create signatures that verify against a public key. -type Signer interface { - // PublicKey returns an associated PublicKey instance. - PublicKey() PublicKey - - // Sign returns raw signature for the given data. This method - // will apply the hash specified for the keytype to the data. - Sign(rand io.Reader, data []byte) (*Signature, error) -} - -type rsaPublicKey rsa.PublicKey - -func (r *rsaPublicKey) Type() string { - return "ssh-rsa" -} - -// parseRSA parses an RSA key according to RFC 4253, section 6.6. -func parseRSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - E *big.Int - N *big.Int - Rest []byte `ssh:"rest"` - } - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - if w.E.BitLen() > 24 { - return nil, nil, errors.New("ssh: exponent too large") - } - e := w.E.Int64() - if e < 3 || e&1 == 0 { - return nil, nil, errors.New("ssh: incorrect exponent") - } - - var key rsa.PublicKey - key.E = int(e) - key.N = w.N - return (*rsaPublicKey)(&key), w.Rest, nil -} - -func (r *rsaPublicKey) Marshal() []byte { - e := new(big.Int).SetInt64(int64(r.E)) - // RSA publickey struct layout should match the struct used by - // parseRSACert in the x/crypto/ssh/agent package. - wirekey := struct { - Name string - E *big.Int - N *big.Int - }{ - KeyAlgoRSA, - e, - r.N, - } - return Marshal(&wirekey) -} - -func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != r.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) - } - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), crypto.SHA1, digest, sig.Blob) -} - -func (r *rsaPublicKey) CryptoPublicKey() crypto.PublicKey { - return (*rsa.PublicKey)(r) -} - -type dsaPublicKey dsa.PublicKey - -func (r *dsaPublicKey) Type() string { - return "ssh-dss" -} - -// parseDSA parses an DSA key according to RFC 4253, section 6.6. -func parseDSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - P, Q, G, Y *big.Int - Rest []byte `ssh:"rest"` - } - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := &dsaPublicKey{ - Parameters: dsa.Parameters{ - P: w.P, - Q: w.Q, - G: w.G, - }, - Y: w.Y, - } - return key, w.Rest, nil -} - -func (k *dsaPublicKey) Marshal() []byte { - // DSA publickey struct layout should match the struct used by - // parseDSACert in the x/crypto/ssh/agent package. - w := struct { - Name string - P, Q, G, Y *big.Int - }{ - k.Type(), - k.P, - k.Q, - k.G, - k.Y, - } - - return Marshal(&w) -} - -func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != k.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) - } - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - - // Per RFC 4253, section 6.6, - // The value for 'dss_signature_blob' is encoded as a string containing - // r, followed by s (which are 160-bit integers, without lengths or - // padding, unsigned, and in network byte order). - // For DSS purposes, sig.Blob should be exactly 40 bytes in length. - if len(sig.Blob) != 40 { - return errors.New("ssh: DSA signature parse error") - } - r := new(big.Int).SetBytes(sig.Blob[:20]) - s := new(big.Int).SetBytes(sig.Blob[20:]) - if dsa.Verify((*dsa.PublicKey)(k), digest, r, s) { - return nil - } - return errors.New("ssh: signature did not verify") -} - -func (k *dsaPublicKey) CryptoPublicKey() crypto.PublicKey { - return (*dsa.PublicKey)(k) -} - -type dsaPrivateKey struct { - *dsa.PrivateKey -} - -func (k *dsaPrivateKey) PublicKey() PublicKey { - return (*dsaPublicKey)(&k.PrivateKey.PublicKey) -} - -func (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { - h := crypto.SHA1.New() - h.Write(data) - digest := h.Sum(nil) - r, s, err := dsa.Sign(rand, k.PrivateKey, digest) - if err != nil { - return nil, err - } - - sig := make([]byte, 40) - rb := r.Bytes() - sb := s.Bytes() - - copy(sig[20-len(rb):20], rb) - copy(sig[40-len(sb):], sb) - - return &Signature{ - Format: k.PublicKey().Type(), - Blob: sig, - }, nil -} - -type ecdsaPublicKey ecdsa.PublicKey - -func (key *ecdsaPublicKey) Type() string { - return "ecdsa-sha2-" + key.nistID() -} - -func (key *ecdsaPublicKey) nistID() string { - switch key.Params().BitSize { - case 256: - return "nistp256" - case 384: - return "nistp384" - case 521: - return "nistp521" - } - panic("ssh: unsupported ecdsa key size") -} - -type ed25519PublicKey ed25519.PublicKey - -func (key ed25519PublicKey) Type() string { - return KeyAlgoED25519 -} - -func parseED25519(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - KeyBytes []byte - Rest []byte `ssh:"rest"` - } - - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := ed25519.PublicKey(w.KeyBytes) - - return (ed25519PublicKey)(key), w.Rest, nil -} - -func (key ed25519PublicKey) Marshal() []byte { - w := struct { - Name string - KeyBytes []byte - }{ - KeyAlgoED25519, - []byte(key), - } - return Marshal(&w) -} - -func (key ed25519PublicKey) Verify(b []byte, sig *Signature) error { - if sig.Format != key.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) - } - - edKey := (ed25519.PublicKey)(key) - if ok := ed25519.Verify(edKey, b, sig.Blob); !ok { - return errors.New("ssh: signature did not verify") - } - - return nil -} - -func (k ed25519PublicKey) CryptoPublicKey() crypto.PublicKey { - return ed25519.PublicKey(k) -} - -func supportedEllipticCurve(curve elliptic.Curve) bool { - return curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521() -} - -// ecHash returns the hash to match the given elliptic curve, see RFC -// 5656, section 6.2.1 -func ecHash(curve elliptic.Curve) crypto.Hash { - bitSize := curve.Params().BitSize - switch { - case bitSize <= 256: - return crypto.SHA256 - case bitSize <= 384: - return crypto.SHA384 - } - return crypto.SHA512 -} - -// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1. -func parseECDSA(in []byte) (out PublicKey, rest []byte, err error) { - var w struct { - Curve string - KeyBytes []byte - Rest []byte `ssh:"rest"` - } - - if err := Unmarshal(in, &w); err != nil { - return nil, nil, err - } - - key := new(ecdsa.PublicKey) - - switch w.Curve { - case "nistp256": - key.Curve = elliptic.P256() - case "nistp384": - key.Curve = elliptic.P384() - case "nistp521": - key.Curve = elliptic.P521() - default: - return nil, nil, errors.New("ssh: unsupported curve") - } - - key.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes) - if key.X == nil || key.Y == nil { - return nil, nil, errors.New("ssh: invalid curve point") - } - return (*ecdsaPublicKey)(key), w.Rest, nil -} - -func (key *ecdsaPublicKey) Marshal() []byte { - // See RFC 5656, section 3.1. - keyBytes := elliptic.Marshal(key.Curve, key.X, key.Y) - // ECDSA publickey struct layout should match the struct used by - // parseECDSACert in the x/crypto/ssh/agent package. - w := struct { - Name string - ID string - Key []byte - }{ - key.Type(), - key.nistID(), - keyBytes, - } - - return Marshal(&w) -} - -func (key *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { - if sig.Format != key.Type() { - return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) - } - - h := ecHash(key.Curve).New() - h.Write(data) - digest := h.Sum(nil) - - // Per RFC 5656, section 3.1.2, - // The ecdsa_signature_blob value has the following specific encoding: - // mpint r - // mpint s - var ecSig struct { - R *big.Int - S *big.Int - } - - if err := Unmarshal(sig.Blob, &ecSig); err != nil { - return err - } - - if ecdsa.Verify((*ecdsa.PublicKey)(key), digest, ecSig.R, ecSig.S) { - return nil - } - return errors.New("ssh: signature did not verify") -} - -func (k *ecdsaPublicKey) CryptoPublicKey() crypto.PublicKey { - return (*ecdsa.PublicKey)(k) -} - -// NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey, -// *ecdsa.PrivateKey or any other crypto.Signer and returns a corresponding -// Signer instance. ECDSA keys must use P-256, P-384 or P-521. -func NewSignerFromKey(key interface{}) (Signer, error) { - switch key := key.(type) { - case crypto.Signer: - return NewSignerFromSigner(key) - case *dsa.PrivateKey: - return &dsaPrivateKey{key}, nil - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } -} - -type wrappedSigner struct { - signer crypto.Signer - pubKey PublicKey -} - -// NewSignerFromSigner takes any crypto.Signer implementation and -// returns a corresponding Signer interface. This can be used, for -// example, with keys kept in hardware modules. -func NewSignerFromSigner(signer crypto.Signer) (Signer, error) { - pubKey, err := NewPublicKey(signer.Public()) - if err != nil { - return nil, err - } - - return &wrappedSigner{signer, pubKey}, nil -} - -func (s *wrappedSigner) PublicKey() PublicKey { - return s.pubKey -} - -func (s *wrappedSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { - var hashFunc crypto.Hash - - switch key := s.pubKey.(type) { - case *rsaPublicKey, *dsaPublicKey: - hashFunc = crypto.SHA1 - case *ecdsaPublicKey: - hashFunc = ecHash(key.Curve) - case ed25519PublicKey: - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } - - var digest []byte - if hashFunc != 0 { - h := hashFunc.New() - h.Write(data) - digest = h.Sum(nil) - } else { - digest = data - } - - signature, err := s.signer.Sign(rand, digest, hashFunc) - if err != nil { - return nil, err - } - - // crypto.Signer.Sign is expected to return an ASN.1-encoded signature - // for ECDSA and DSA, but that's not the encoding expected by SSH, so - // re-encode. - switch s.pubKey.(type) { - case *ecdsaPublicKey, *dsaPublicKey: - type asn1Signature struct { - R, S *big.Int - } - asn1Sig := new(asn1Signature) - _, err := asn1.Unmarshal(signature, asn1Sig) - if err != nil { - return nil, err - } - - switch s.pubKey.(type) { - case *ecdsaPublicKey: - signature = Marshal(asn1Sig) - - case *dsaPublicKey: - signature = make([]byte, 40) - r := asn1Sig.R.Bytes() - s := asn1Sig.S.Bytes() - copy(signature[20-len(r):20], r) - copy(signature[40-len(s):40], s) - } - } - - return &Signature{ - Format: s.pubKey.Type(), - Blob: signature, - }, nil -} - -// NewPublicKey takes an *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey, -// or ed25519.PublicKey returns a corresponding PublicKey instance. -// ECDSA keys must use P-256, P-384 or P-521. -func NewPublicKey(key interface{}) (PublicKey, error) { - switch key := key.(type) { - case *rsa.PublicKey: - return (*rsaPublicKey)(key), nil - case *ecdsa.PublicKey: - if !supportedEllipticCurve(key.Curve) { - return nil, errors.New("ssh: only P-256, P-384 and P-521 EC keys are supported.") - } - return (*ecdsaPublicKey)(key), nil - case *dsa.PublicKey: - return (*dsaPublicKey)(key), nil - case ed25519.PublicKey: - return (ed25519PublicKey)(key), nil - default: - return nil, fmt.Errorf("ssh: unsupported key type %T", key) - } -} - -// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports -// the same keys as ParseRawPrivateKey. -func ParsePrivateKey(pemBytes []byte) (Signer, error) { - key, err := ParseRawPrivateKey(pemBytes) - if err != nil { - return nil, err - } - - return NewSignerFromKey(key) -} - -// encryptedBlock tells whether a private key is -// encrypted by examining its Proc-Type header -// for a mention of ENCRYPTED -// according to RFC 1421 Section 4.6.1.1. -func encryptedBlock(block *pem.Block) bool { - return strings.Contains(block.Headers["Proc-Type"], "ENCRYPTED") -} - -// ParseRawPrivateKey returns a private key from a PEM encoded private key. It -// supports RSA (PKCS#1), DSA (OpenSSL), and ECDSA private keys. -func ParseRawPrivateKey(pemBytes []byte) (interface{}, error) { - block, _ := pem.Decode(pemBytes) - if block == nil { - return nil, errors.New("ssh: no key found") - } - - if encryptedBlock(block) { - return nil, errors.New("ssh: cannot decode encrypted private keys") - } - - switch block.Type { - case "RSA PRIVATE KEY": - return x509.ParsePKCS1PrivateKey(block.Bytes) - case "EC PRIVATE KEY": - return x509.ParseECPrivateKey(block.Bytes) - case "DSA PRIVATE KEY": - return ParseDSAPrivateKey(block.Bytes) - case "OPENSSH PRIVATE KEY": - return parseOpenSSHPrivateKey(block.Bytes) - default: - return nil, fmt.Errorf("ssh: unsupported key type %q", block.Type) - } -} - -// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as -// specified by the OpenSSL DSA man page. -func ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) { - var k struct { - Version int - P *big.Int - Q *big.Int - G *big.Int - Priv *big.Int - Pub *big.Int - } - rest, err := asn1.Unmarshal(der, &k) - if err != nil { - return nil, errors.New("ssh: failed to parse DSA key: " + err.Error()) - } - if len(rest) > 0 { - return nil, errors.New("ssh: garbage after DSA key") - } - - return &dsa.PrivateKey{ - PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: k.P, - Q: k.Q, - G: k.G, - }, - Y: k.Priv, - }, - X: k.Pub, - }, nil -} - -// Implemented based on the documentation at -// https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key -func parseOpenSSHPrivateKey(key []byte) (*ed25519.PrivateKey, error) { - magic := append([]byte("openssh-key-v1"), 0) - if !bytes.Equal(magic, key[0:len(magic)]) { - return nil, errors.New("ssh: invalid openssh private key format") - } - remaining := key[len(magic):] - - var w struct { - CipherName string - KdfName string - KdfOpts string - NumKeys uint32 - PubKey []byte - PrivKeyBlock []byte - } - - if err := Unmarshal(remaining, &w); err != nil { - return nil, err - } - - pk1 := struct { - Check1 uint32 - Check2 uint32 - Keytype string - Pub []byte - Priv []byte - Comment string - Pad []byte `ssh:"rest"` - }{} - - if err := Unmarshal(w.PrivKeyBlock, &pk1); err != nil { - return nil, err - } - - if pk1.Check1 != pk1.Check2 { - return nil, errors.New("ssh: checkint mismatch") - } - - // we only handle ed25519 keys currently - if pk1.Keytype != KeyAlgoED25519 { - return nil, errors.New("ssh: unhandled key type") - } - - for i, b := range pk1.Pad { - if int(b) != i+1 { - return nil, errors.New("ssh: padding not as expected") - } - } - - if len(pk1.Priv) != ed25519.PrivateKeySize { - return nil, errors.New("ssh: private key unexpected length") - } - - pk := ed25519.PrivateKey(make([]byte, ed25519.PrivateKeySize)) - copy(pk, pk1.Priv) - return &pk, nil -} - -// FingerprintLegacyMD5 returns the user presentation of the key's -// fingerprint as described by RFC 4716 section 4. -func FingerprintLegacyMD5(pubKey PublicKey) string { - md5sum := md5.Sum(pubKey.Marshal()) - hexarray := make([]string, len(md5sum)) - for i, c := range md5sum { - hexarray[i] = hex.EncodeToString([]byte{c}) - } - return strings.Join(hexarray, ":") -} - -// FingerprintSHA256 returns the user presentation of the key's -// fingerprint as unpadded base64 encoded sha256 hash. -// This format was introduced from OpenSSH 6.8. -// https://www.openssh.com/txt/release-6.8 -// https://tools.ietf.org/html/rfc4648#section-3.2 (unpadded base64 encoding) -func FingerprintSHA256(pubKey PublicKey) string { - sha256sum := sha256.Sum256(pubKey.Marshal()) - hash := base64.RawStdEncoding.EncodeToString(sha256sum[:]) - return "SHA256:" + hash -} diff --git a/vendor/golang.org/x/crypto/ssh/keys_test.go b/vendor/golang.org/x/crypto/ssh/keys_test.go deleted file mode 100644 index a65e87e..0000000 --- a/vendor/golang.org/x/crypto/ssh/keys_test.go +++ /dev/null @@ -1,474 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/rsa" - "encoding/base64" - "fmt" - "reflect" - "strings" - "testing" - - "golang.org/x/crypto/ed25519" - "golang.org/x/crypto/ssh/testdata" -) - -func rawKey(pub PublicKey) interface{} { - switch k := pub.(type) { - case *rsaPublicKey: - return (*rsa.PublicKey)(k) - case *dsaPublicKey: - return (*dsa.PublicKey)(k) - case *ecdsaPublicKey: - return (*ecdsa.PublicKey)(k) - case ed25519PublicKey: - return (ed25519.PublicKey)(k) - case *Certificate: - return k - } - panic("unknown key type") -} - -func TestKeyMarshalParse(t *testing.T) { - for _, priv := range testSigners { - pub := priv.PublicKey() - roundtrip, err := ParsePublicKey(pub.Marshal()) - if err != nil { - t.Errorf("ParsePublicKey(%T): %v", pub, err) - } - - k1 := rawKey(pub) - k2 := rawKey(roundtrip) - - if !reflect.DeepEqual(k1, k2) { - t.Errorf("got %#v in roundtrip, want %#v", k2, k1) - } - } -} - -func TestUnsupportedCurves(t *testing.T) { - raw, err := ecdsa.GenerateKey(elliptic.P224(), rand.Reader) - if err != nil { - t.Fatalf("GenerateKey: %v", err) - } - - if _, err = NewSignerFromKey(raw); err == nil || !strings.Contains(err.Error(), "only P-256") { - t.Fatalf("NewPrivateKey should not succeed with P-224, got: %v", err) - } - - if _, err = NewPublicKey(&raw.PublicKey); err == nil || !strings.Contains(err.Error(), "only P-256") { - t.Fatalf("NewPublicKey should not succeed with P-224, got: %v", err) - } -} - -func TestNewPublicKey(t *testing.T) { - for _, k := range testSigners { - raw := rawKey(k.PublicKey()) - // Skip certificates, as NewPublicKey does not support them. - if _, ok := raw.(*Certificate); ok { - continue - } - pub, err := NewPublicKey(raw) - if err != nil { - t.Errorf("NewPublicKey(%#v): %v", raw, err) - } - if !reflect.DeepEqual(k.PublicKey(), pub) { - t.Errorf("NewPublicKey(%#v) = %#v, want %#v", raw, pub, k.PublicKey()) - } - } -} - -func TestKeySignVerify(t *testing.T) { - for _, priv := range testSigners { - pub := priv.PublicKey() - - data := []byte("sign me") - sig, err := priv.Sign(rand.Reader, data) - if err != nil { - t.Fatalf("Sign(%T): %v", priv, err) - } - - if err := pub.Verify(data, sig); err != nil { - t.Errorf("publicKey.Verify(%T): %v", priv, err) - } - sig.Blob[5]++ - if err := pub.Verify(data, sig); err == nil { - t.Errorf("publicKey.Verify on broken sig did not fail") - } - } -} - -func TestParseRSAPrivateKey(t *testing.T) { - key := testPrivateKeys["rsa"] - - rsa, ok := key.(*rsa.PrivateKey) - if !ok { - t.Fatalf("got %T, want *rsa.PrivateKey", rsa) - } - - if err := rsa.Validate(); err != nil { - t.Errorf("Validate: %v", err) - } -} - -func TestParseECPrivateKey(t *testing.T) { - key := testPrivateKeys["ecdsa"] - - ecKey, ok := key.(*ecdsa.PrivateKey) - if !ok { - t.Fatalf("got %T, want *ecdsa.PrivateKey", ecKey) - } - - if !validateECPublicKey(ecKey.Curve, ecKey.X, ecKey.Y) { - t.Fatalf("public key does not validate.") - } -} - -// See Issue https://github.com/golang/go/issues/6650. -func TestParseEncryptedPrivateKeysFails(t *testing.T) { - const wantSubstring = "encrypted" - for i, tt := range testdata.PEMEncryptedKeys { - _, err := ParsePrivateKey(tt.PEMBytes) - if err == nil { - t.Errorf("#%d key %s: ParsePrivateKey successfully parsed, expected an error", i, tt.Name) - continue - } - - if !strings.Contains(err.Error(), wantSubstring) { - t.Errorf("#%d key %s: got error %q, want substring %q", i, tt.Name, err, wantSubstring) - } - } -} - -func TestParseDSA(t *testing.T) { - // We actually exercise the ParsePrivateKey codepath here, as opposed to - // using the ParseRawPrivateKey+NewSignerFromKey path that testdata_test.go - // uses. - s, err := ParsePrivateKey(testdata.PEMBytes["dsa"]) - if err != nil { - t.Fatalf("ParsePrivateKey returned error: %s", err) - } - - data := []byte("sign me") - sig, err := s.Sign(rand.Reader, data) - if err != nil { - t.Fatalf("dsa.Sign: %v", err) - } - - if err := s.PublicKey().Verify(data, sig); err != nil { - t.Errorf("Verify failed: %v", err) - } -} - -// Tests for authorized_keys parsing. - -// getTestKey returns a public key, and its base64 encoding. -func getTestKey() (PublicKey, string) { - k := testPublicKeys["rsa"] - - b := &bytes.Buffer{} - e := base64.NewEncoder(base64.StdEncoding, b) - e.Write(k.Marshal()) - e.Close() - - return k, b.String() -} - -func TestMarshalParsePublicKey(t *testing.T) { - pub, pubSerialized := getTestKey() - line := fmt.Sprintf("%s %s user@host", pub.Type(), pubSerialized) - - authKeys := MarshalAuthorizedKey(pub) - actualFields := strings.Fields(string(authKeys)) - if len(actualFields) == 0 { - t.Fatalf("failed authKeys: %v", authKeys) - } - - // drop the comment - expectedFields := strings.Fields(line)[0:2] - - if !reflect.DeepEqual(actualFields, expectedFields) { - t.Errorf("got %v, expected %v", actualFields, expectedFields) - } - - actPub, _, _, _, err := ParseAuthorizedKey([]byte(line)) - if err != nil { - t.Fatalf("cannot parse %v: %v", line, err) - } - if !reflect.DeepEqual(actPub, pub) { - t.Errorf("got %v, expected %v", actPub, pub) - } -} - -type authResult struct { - pubKey PublicKey - options []string - comments string - rest string - ok bool -} - -func testAuthorizedKeys(t *testing.T, authKeys []byte, expected []authResult) { - rest := authKeys - var values []authResult - for len(rest) > 0 { - var r authResult - var err error - r.pubKey, r.comments, r.options, rest, err = ParseAuthorizedKey(rest) - r.ok = (err == nil) - t.Log(err) - r.rest = string(rest) - values = append(values, r) - } - - if !reflect.DeepEqual(values, expected) { - t.Errorf("got %#v, expected %#v", values, expected) - } -} - -func TestAuthorizedKeyBasic(t *testing.T) { - pub, pubSerialized := getTestKey() - line := "ssh-rsa " + pubSerialized + " user@host" - testAuthorizedKeys(t, []byte(line), - []authResult{ - {pub, nil, "user@host", "", true}, - }) -} - -func TestAuth(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithOptions := []string{ - `# comments to ignore before any keys...`, - ``, - `env="HOME=/home/root",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`, - `# comments to ignore, along with a blank line`, - ``, - `env="HOME=/home/root2" ssh-rsa ` + pubSerialized + ` user2@host2`, - ``, - `# more comments, plus a invalid entry`, - `ssh-rsa data-that-will-not-parse user@host3`, - } - for _, eol := range []string{"\n", "\r\n"} { - authOptions := strings.Join(authWithOptions, eol) - rest2 := strings.Join(authWithOptions[3:], eol) - rest3 := strings.Join(authWithOptions[6:], eol) - testAuthorizedKeys(t, []byte(authOptions), []authResult{ - {pub, []string{`env="HOME=/home/root"`, "no-port-forwarding"}, "user@host", rest2, true}, - {pub, []string{`env="HOME=/home/root2"`}, "user2@host2", rest3, true}, - {nil, nil, "", "", false}, - }) - } -} - -func TestAuthWithQuotedSpaceInEnv(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithQuotedSpaceInEnv := []byte(`env="HOME=/home/root dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) - testAuthorizedKeys(t, []byte(authWithQuotedSpaceInEnv), []authResult{ - {pub, []string{`env="HOME=/home/root dir"`, "no-port-forwarding"}, "user@host", "", true}, - }) -} - -func TestAuthWithQuotedCommaInEnv(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithQuotedCommaInEnv := []byte(`env="HOME=/home/root,dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) - testAuthorizedKeys(t, []byte(authWithQuotedCommaInEnv), []authResult{ - {pub, []string{`env="HOME=/home/root,dir"`, "no-port-forwarding"}, "user@host", "", true}, - }) -} - -func TestAuthWithQuotedQuoteInEnv(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithQuotedQuoteInEnv := []byte(`env="HOME=/home/\"root dir",no-port-forwarding` + "\t" + `ssh-rsa` + "\t" + pubSerialized + ` user@host`) - authWithDoubleQuotedQuote := []byte(`no-port-forwarding,env="HOME=/home/ \"root dir\"" ssh-rsa ` + pubSerialized + "\t" + `user@host`) - testAuthorizedKeys(t, []byte(authWithQuotedQuoteInEnv), []authResult{ - {pub, []string{`env="HOME=/home/\"root dir"`, "no-port-forwarding"}, "user@host", "", true}, - }) - - testAuthorizedKeys(t, []byte(authWithDoubleQuotedQuote), []authResult{ - {pub, []string{"no-port-forwarding", `env="HOME=/home/ \"root dir\""`}, "user@host", "", true}, - }) -} - -func TestAuthWithInvalidSpace(t *testing.T) { - _, pubSerialized := getTestKey() - authWithInvalidSpace := []byte(`env="HOME=/home/root dir", no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host -#more to follow but still no valid keys`) - testAuthorizedKeys(t, []byte(authWithInvalidSpace), []authResult{ - {nil, nil, "", "", false}, - }) -} - -func TestAuthWithMissingQuote(t *testing.T) { - pub, pubSerialized := getTestKey() - authWithMissingQuote := []byte(`env="HOME=/home/root,no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host -env="HOME=/home/root",shared-control ssh-rsa ` + pubSerialized + ` user@host`) - - testAuthorizedKeys(t, []byte(authWithMissingQuote), []authResult{ - {pub, []string{`env="HOME=/home/root"`, `shared-control`}, "user@host", "", true}, - }) -} - -func TestInvalidEntry(t *testing.T) { - authInvalid := []byte(`ssh-rsa`) - _, _, _, _, err := ParseAuthorizedKey(authInvalid) - if err == nil { - t.Errorf("got valid entry for %q", authInvalid) - } -} - -var knownHostsParseTests = []struct { - input string - err string - - marker string - comment string - hosts []string - rest string -}{ - { - "", - "EOF", - - "", "", nil, "", - }, - { - "# Just a comment", - "EOF", - - "", "", nil, "", - }, - { - " \t ", - "EOF", - - "", "", nil, "", - }, - { - "localhost ssh-rsa {RSAPUB}", - "", - - "", "", []string{"localhost"}, "", - }, - { - "localhost\tssh-rsa {RSAPUB}", - "", - - "", "", []string{"localhost"}, "", - }, - { - "localhost\tssh-rsa {RSAPUB}\tcomment comment", - "", - - "", "comment comment", []string{"localhost"}, "", - }, - { - "localhost\tssh-rsa {RSAPUB}\tcomment comment\n", - "", - - "", "comment comment", []string{"localhost"}, "", - }, - { - "localhost\tssh-rsa {RSAPUB}\tcomment comment\r\n", - "", - - "", "comment comment", []string{"localhost"}, "", - }, - { - "localhost\tssh-rsa {RSAPUB}\tcomment comment\r\nnext line", - "", - - "", "comment comment", []string{"localhost"}, "next line", - }, - { - "localhost,[host2:123]\tssh-rsa {RSAPUB}\tcomment comment", - "", - - "", "comment comment", []string{"localhost", "[host2:123]"}, "", - }, - { - "@marker \tlocalhost,[host2:123]\tssh-rsa {RSAPUB}", - "", - - "marker", "", []string{"localhost", "[host2:123]"}, "", - }, - { - "@marker \tlocalhost,[host2:123]\tssh-rsa aabbccdd", - "short read", - - "", "", nil, "", - }, -} - -func TestKnownHostsParsing(t *testing.T) { - rsaPub, rsaPubSerialized := getTestKey() - - for i, test := range knownHostsParseTests { - var expectedKey PublicKey - const rsaKeyToken = "{RSAPUB}" - - input := test.input - if strings.Contains(input, rsaKeyToken) { - expectedKey = rsaPub - input = strings.Replace(test.input, rsaKeyToken, rsaPubSerialized, -1) - } - - marker, hosts, pubKey, comment, rest, err := ParseKnownHosts([]byte(input)) - if err != nil { - if len(test.err) == 0 { - t.Errorf("#%d: unexpectedly failed with %q", i, err) - } else if !strings.Contains(err.Error(), test.err) { - t.Errorf("#%d: expected error containing %q, but got %q", i, test.err, err) - } - continue - } else if len(test.err) != 0 { - t.Errorf("#%d: succeeded but expected error including %q", i, test.err) - continue - } - - if !reflect.DeepEqual(expectedKey, pubKey) { - t.Errorf("#%d: expected key %#v, but got %#v", i, expectedKey, pubKey) - } - - if marker != test.marker { - t.Errorf("#%d: expected marker %q, but got %q", i, test.marker, marker) - } - - if comment != test.comment { - t.Errorf("#%d: expected comment %q, but got %q", i, test.comment, comment) - } - - if !reflect.DeepEqual(test.hosts, hosts) { - t.Errorf("#%d: expected hosts %#v, but got %#v", i, test.hosts, hosts) - } - - if rest := string(rest); rest != test.rest { - t.Errorf("#%d: expected remaining input to be %q, but got %q", i, test.rest, rest) - } - } -} - -func TestFingerprintLegacyMD5(t *testing.T) { - pub, _ := getTestKey() - fingerprint := FingerprintLegacyMD5(pub) - want := "fb:61:6d:1a:e3:f0:95:45:3c:a0:79:be:4a:93:63:66" // ssh-keygen -lf -E md5 rsa - if fingerprint != want { - t.Errorf("got fingerprint %q want %q", fingerprint, want) - } -} - -func TestFingerprintSHA256(t *testing.T) { - pub, _ := getTestKey() - fingerprint := FingerprintSHA256(pub) - want := "SHA256:Anr3LjZK8YVpjrxu79myrW9Hrb/wpcMNpVvTq/RcBm8" // ssh-keygen -lf rsa - if fingerprint != want { - t.Errorf("got fingerprint %q want %q", fingerprint, want) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go deleted file mode 100644 index 07744ad..0000000 --- a/vendor/golang.org/x/crypto/ssh/mac.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -// Message authentication support - -import ( - "crypto/hmac" - "crypto/sha1" - "crypto/sha256" - "hash" -) - -type macMode struct { - keySize int - new func(key []byte) hash.Hash -} - -// truncatingMAC wraps around a hash.Hash and truncates the output digest to -// a given size. -type truncatingMAC struct { - length int - hmac hash.Hash -} - -func (t truncatingMAC) Write(data []byte) (int, error) { - return t.hmac.Write(data) -} - -func (t truncatingMAC) Sum(in []byte) []byte { - out := t.hmac.Sum(in) - return out[:len(in)+t.length] -} - -func (t truncatingMAC) Reset() { - t.hmac.Reset() -} - -func (t truncatingMAC) Size() int { - return t.length -} - -func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } - -var macModes = map[string]*macMode{ - "hmac-sha2-256": {32, func(key []byte) hash.Hash { - return hmac.New(sha256.New, key) - }}, - "hmac-sha1": {20, func(key []byte) hash.Hash { - return hmac.New(sha1.New, key) - }}, - "hmac-sha1-96": {20, func(key []byte) hash.Hash { - return truncatingMAC{12, hmac.New(sha1.New, key)} - }}, -} diff --git a/vendor/golang.org/x/crypto/ssh/mempipe_test.go b/vendor/golang.org/x/crypto/ssh/mempipe_test.go deleted file mode 100644 index 8697cd6..0000000 --- a/vendor/golang.org/x/crypto/ssh/mempipe_test.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "io" - "sync" - "testing" -) - -// An in-memory packetConn. It is safe to call Close and writePacket -// from different goroutines. -type memTransport struct { - eof bool - pending [][]byte - write *memTransport - sync.Mutex - *sync.Cond -} - -func (t *memTransport) readPacket() ([]byte, error) { - t.Lock() - defer t.Unlock() - for { - if len(t.pending) > 0 { - r := t.pending[0] - t.pending = t.pending[1:] - return r, nil - } - if t.eof { - return nil, io.EOF - } - t.Cond.Wait() - } -} - -func (t *memTransport) closeSelf() error { - t.Lock() - defer t.Unlock() - if t.eof { - return io.EOF - } - t.eof = true - t.Cond.Broadcast() - return nil -} - -func (t *memTransport) Close() error { - err := t.write.closeSelf() - t.closeSelf() - return err -} - -func (t *memTransport) writePacket(p []byte) error { - t.write.Lock() - defer t.write.Unlock() - if t.write.eof { - return io.EOF - } - c := make([]byte, len(p)) - copy(c, p) - t.write.pending = append(t.write.pending, c) - t.write.Cond.Signal() - return nil -} - -func memPipe() (a, b packetConn) { - t1 := memTransport{} - t2 := memTransport{} - t1.write = &t2 - t2.write = &t1 - t1.Cond = sync.NewCond(&t1.Mutex) - t2.Cond = sync.NewCond(&t2.Mutex) - return &t1, &t2 -} - -func TestMemPipe(t *testing.T) { - a, b := memPipe() - if err := a.writePacket([]byte{42}); err != nil { - t.Fatalf("writePacket: %v", err) - } - if err := a.Close(); err != nil { - t.Fatal("Close: ", err) - } - p, err := b.readPacket() - if err != nil { - t.Fatal("readPacket: ", err) - } - if len(p) != 1 || p[0] != 42 { - t.Fatalf("got %v, want {42}", p) - } - p, err = b.readPacket() - if err != io.EOF { - t.Fatalf("got %v, %v, want EOF", p, err) - } -} - -func TestDoubleClose(t *testing.T) { - a, _ := memPipe() - err := a.Close() - if err != nil { - t.Errorf("Close: %v", err) - } - err = a.Close() - if err != io.EOF { - t.Errorf("expect EOF on double close.") - } -} diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go deleted file mode 100644 index e6ecd3a..0000000 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ /dev/null @@ -1,758 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - "math/big" - "reflect" - "strconv" - "strings" -) - -// These are SSH message type numbers. They are scattered around several -// documents but many were taken from [SSH-PARAMETERS]. -const ( - msgIgnore = 2 - msgUnimplemented = 3 - msgDebug = 4 - msgNewKeys = 21 - - // Standard authentication messages - msgUserAuthSuccess = 52 - msgUserAuthBanner = 53 -) - -// SSH messages: -// -// These structures mirror the wire format of the corresponding SSH messages. -// They are marshaled using reflection with the marshal and unmarshal functions -// in this file. The only wrinkle is that a final member of type []byte with a -// ssh tag of "rest" receives the remainder of a packet when unmarshaling. - -// See RFC 4253, section 11.1. -const msgDisconnect = 1 - -// disconnectMsg is the message that signals a disconnect. It is also -// the error type returned from mux.Wait() -type disconnectMsg struct { - Reason uint32 `sshtype:"1"` - Message string - Language string -} - -func (d *disconnectMsg) Error() string { - return fmt.Sprintf("ssh: disconnect, reason %d: %s", d.Reason, d.Message) -} - -// See RFC 4253, section 7.1. -const msgKexInit = 20 - -type kexInitMsg struct { - Cookie [16]byte `sshtype:"20"` - KexAlgos []string - ServerHostKeyAlgos []string - CiphersClientServer []string - CiphersServerClient []string - MACsClientServer []string - MACsServerClient []string - CompressionClientServer []string - CompressionServerClient []string - LanguagesClientServer []string - LanguagesServerClient []string - FirstKexFollows bool - Reserved uint32 -} - -// See RFC 4253, section 8. - -// Diffie-Helman -const msgKexDHInit = 30 - -type kexDHInitMsg struct { - X *big.Int `sshtype:"30"` -} - -const msgKexECDHInit = 30 - -type kexECDHInitMsg struct { - ClientPubKey []byte `sshtype:"30"` -} - -const msgKexECDHReply = 31 - -type kexECDHReplyMsg struct { - HostKey []byte `sshtype:"31"` - EphemeralPubKey []byte - Signature []byte -} - -const msgKexDHReply = 31 - -type kexDHReplyMsg struct { - HostKey []byte `sshtype:"31"` - Y *big.Int - Signature []byte -} - -// See RFC 4253, section 10. -const msgServiceRequest = 5 - -type serviceRequestMsg struct { - Service string `sshtype:"5"` -} - -// See RFC 4253, section 10. -const msgServiceAccept = 6 - -type serviceAcceptMsg struct { - Service string `sshtype:"6"` -} - -// See RFC 4252, section 5. -const msgUserAuthRequest = 50 - -type userAuthRequestMsg struct { - User string `sshtype:"50"` - Service string - Method string - Payload []byte `ssh:"rest"` -} - -// Used for debug printouts of packets. -type userAuthSuccessMsg struct { -} - -// See RFC 4252, section 5.1 -const msgUserAuthFailure = 51 - -type userAuthFailureMsg struct { - Methods []string `sshtype:"51"` - PartialSuccess bool -} - -// See RFC 4256, section 3.2 -const msgUserAuthInfoRequest = 60 -const msgUserAuthInfoResponse = 61 - -type userAuthInfoRequestMsg struct { - User string `sshtype:"60"` - Instruction string - DeprecatedLanguage string - NumPrompts uint32 - Prompts []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpen = 90 - -type channelOpenMsg struct { - ChanType string `sshtype:"90"` - PeersId uint32 - PeersWindow uint32 - MaxPacketSize uint32 - TypeSpecificData []byte `ssh:"rest"` -} - -const msgChannelExtendedData = 95 -const msgChannelData = 94 - -// Used for debug print outs of packets. -type channelDataMsg struct { - PeersId uint32 `sshtype:"94"` - Length uint32 - Rest []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpenConfirm = 91 - -type channelOpenConfirmMsg struct { - PeersId uint32 `sshtype:"91"` - MyId uint32 - MyWindow uint32 - MaxPacketSize uint32 - TypeSpecificData []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.1. -const msgChannelOpenFailure = 92 - -type channelOpenFailureMsg struct { - PeersId uint32 `sshtype:"92"` - Reason RejectionReason - Message string - Language string -} - -const msgChannelRequest = 98 - -type channelRequestMsg struct { - PeersId uint32 `sshtype:"98"` - Request string - WantReply bool - RequestSpecificData []byte `ssh:"rest"` -} - -// See RFC 4254, section 5.4. -const msgChannelSuccess = 99 - -type channelRequestSuccessMsg struct { - PeersId uint32 `sshtype:"99"` -} - -// See RFC 4254, section 5.4. -const msgChannelFailure = 100 - -type channelRequestFailureMsg struct { - PeersId uint32 `sshtype:"100"` -} - -// See RFC 4254, section 5.3 -const msgChannelClose = 97 - -type channelCloseMsg struct { - PeersId uint32 `sshtype:"97"` -} - -// See RFC 4254, section 5.3 -const msgChannelEOF = 96 - -type channelEOFMsg struct { - PeersId uint32 `sshtype:"96"` -} - -// See RFC 4254, section 4 -const msgGlobalRequest = 80 - -type globalRequestMsg struct { - Type string `sshtype:"80"` - WantReply bool - Data []byte `ssh:"rest"` -} - -// See RFC 4254, section 4 -const msgRequestSuccess = 81 - -type globalRequestSuccessMsg struct { - Data []byte `ssh:"rest" sshtype:"81"` -} - -// See RFC 4254, section 4 -const msgRequestFailure = 82 - -type globalRequestFailureMsg struct { - Data []byte `ssh:"rest" sshtype:"82"` -} - -// See RFC 4254, section 5.2 -const msgChannelWindowAdjust = 93 - -type windowAdjustMsg struct { - PeersId uint32 `sshtype:"93"` - AdditionalBytes uint32 -} - -// See RFC 4252, section 7 -const msgUserAuthPubKeyOk = 60 - -type userAuthPubKeyOkMsg struct { - Algo string `sshtype:"60"` - PubKey []byte -} - -// typeTags returns the possible type bytes for the given reflect.Type, which -// should be a struct. The possible values are separated by a '|' character. -func typeTags(structType reflect.Type) (tags []byte) { - tagStr := structType.Field(0).Tag.Get("sshtype") - - for _, tag := range strings.Split(tagStr, "|") { - i, err := strconv.Atoi(tag) - if err == nil { - tags = append(tags, byte(i)) - } - } - - return tags -} - -func fieldError(t reflect.Type, field int, problem string) error { - if problem != "" { - problem = ": " + problem - } - return fmt.Errorf("ssh: unmarshal error for field %s of type %s%s", t.Field(field).Name, t.Name(), problem) -} - -var errShortRead = errors.New("ssh: short read") - -// Unmarshal parses data in SSH wire format into a structure. The out -// argument should be a pointer to struct. If the first member of the -// struct has the "sshtype" tag set to a '|'-separated set of numbers -// in decimal, the packet must start with one of those numbers. In -// case of error, Unmarshal returns a ParseError or -// UnexpectedMessageError. -func Unmarshal(data []byte, out interface{}) error { - v := reflect.ValueOf(out).Elem() - structType := v.Type() - expectedTypes := typeTags(structType) - - var expectedType byte - if len(expectedTypes) > 0 { - expectedType = expectedTypes[0] - } - - if len(data) == 0 { - return parseError(expectedType) - } - - if len(expectedTypes) > 0 { - goodType := false - for _, e := range expectedTypes { - if e > 0 && data[0] == e { - goodType = true - break - } - } - if !goodType { - return fmt.Errorf("ssh: unexpected message type %d (expected one of %v)", data[0], expectedTypes) - } - data = data[1:] - } - - var ok bool - for i := 0; i < v.NumField(); i++ { - field := v.Field(i) - t := field.Type() - switch t.Kind() { - case reflect.Bool: - if len(data) < 1 { - return errShortRead - } - field.SetBool(data[0] != 0) - data = data[1:] - case reflect.Array: - if t.Elem().Kind() != reflect.Uint8 { - return fieldError(structType, i, "array of unsupported type") - } - if len(data) < t.Len() { - return errShortRead - } - for j, n := 0, t.Len(); j < n; j++ { - field.Index(j).Set(reflect.ValueOf(data[j])) - } - data = data[t.Len():] - case reflect.Uint64: - var u64 uint64 - if u64, data, ok = parseUint64(data); !ok { - return errShortRead - } - field.SetUint(u64) - case reflect.Uint32: - var u32 uint32 - if u32, data, ok = parseUint32(data); !ok { - return errShortRead - } - field.SetUint(uint64(u32)) - case reflect.Uint8: - if len(data) < 1 { - return errShortRead - } - field.SetUint(uint64(data[0])) - data = data[1:] - case reflect.String: - var s []byte - if s, data, ok = parseString(data); !ok { - return fieldError(structType, i, "") - } - field.SetString(string(s)) - case reflect.Slice: - switch t.Elem().Kind() { - case reflect.Uint8: - if structType.Field(i).Tag.Get("ssh") == "rest" { - field.Set(reflect.ValueOf(data)) - data = nil - } else { - var s []byte - if s, data, ok = parseString(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(s)) - } - case reflect.String: - var nl []string - if nl, data, ok = parseNameList(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(nl)) - default: - return fieldError(structType, i, "slice of unsupported type") - } - case reflect.Ptr: - if t == bigIntType { - var n *big.Int - if n, data, ok = parseInt(data); !ok { - return errShortRead - } - field.Set(reflect.ValueOf(n)) - } else { - return fieldError(structType, i, "pointer to unsupported type") - } - default: - return fieldError(structType, i, fmt.Sprintf("unsupported type: %v", t)) - } - } - - if len(data) != 0 { - return parseError(expectedType) - } - - return nil -} - -// Marshal serializes the message in msg to SSH wire format. The msg -// argument should be a struct or pointer to struct. If the first -// member has the "sshtype" tag set to a number in decimal, that -// number is prepended to the result. If the last of member has the -// "ssh" tag set to "rest", its contents are appended to the output. -func Marshal(msg interface{}) []byte { - out := make([]byte, 0, 64) - return marshalStruct(out, msg) -} - -func marshalStruct(out []byte, msg interface{}) []byte { - v := reflect.Indirect(reflect.ValueOf(msg)) - msgTypes := typeTags(v.Type()) - if len(msgTypes) > 0 { - out = append(out, msgTypes[0]) - } - - for i, n := 0, v.NumField(); i < n; i++ { - field := v.Field(i) - switch t := field.Type(); t.Kind() { - case reflect.Bool: - var v uint8 - if field.Bool() { - v = 1 - } - out = append(out, v) - case reflect.Array: - if t.Elem().Kind() != reflect.Uint8 { - panic(fmt.Sprintf("array of non-uint8 in field %d: %T", i, field.Interface())) - } - for j, l := 0, t.Len(); j < l; j++ { - out = append(out, uint8(field.Index(j).Uint())) - } - case reflect.Uint32: - out = appendU32(out, uint32(field.Uint())) - case reflect.Uint64: - out = appendU64(out, uint64(field.Uint())) - case reflect.Uint8: - out = append(out, uint8(field.Uint())) - case reflect.String: - s := field.String() - out = appendInt(out, len(s)) - out = append(out, s...) - case reflect.Slice: - switch t.Elem().Kind() { - case reflect.Uint8: - if v.Type().Field(i).Tag.Get("ssh") != "rest" { - out = appendInt(out, field.Len()) - } - out = append(out, field.Bytes()...) - case reflect.String: - offset := len(out) - out = appendU32(out, 0) - if n := field.Len(); n > 0 { - for j := 0; j < n; j++ { - f := field.Index(j) - if j != 0 { - out = append(out, ',') - } - out = append(out, f.String()...) - } - // overwrite length value - binary.BigEndian.PutUint32(out[offset:], uint32(len(out)-offset-4)) - } - default: - panic(fmt.Sprintf("slice of unknown type in field %d: %T", i, field.Interface())) - } - case reflect.Ptr: - if t == bigIntType { - var n *big.Int - nValue := reflect.ValueOf(&n) - nValue.Elem().Set(field) - needed := intLength(n) - oldLength := len(out) - - if cap(out)-len(out) < needed { - newOut := make([]byte, len(out), 2*(len(out)+needed)) - copy(newOut, out) - out = newOut - } - out = out[:oldLength+needed] - marshalInt(out[oldLength:], n) - } else { - panic(fmt.Sprintf("pointer to unknown type in field %d: %T", i, field.Interface())) - } - } - } - - return out -} - -var bigOne = big.NewInt(1) - -func parseString(in []byte) (out, rest []byte, ok bool) { - if len(in) < 4 { - return - } - length := binary.BigEndian.Uint32(in) - in = in[4:] - if uint32(len(in)) < length { - return - } - out = in[:length] - rest = in[length:] - ok = true - return -} - -var ( - comma = []byte{','} - emptyNameList = []string{} -) - -func parseNameList(in []byte) (out []string, rest []byte, ok bool) { - contents, rest, ok := parseString(in) - if !ok { - return - } - if len(contents) == 0 { - out = emptyNameList - return - } - parts := bytes.Split(contents, comma) - out = make([]string, len(parts)) - for i, part := range parts { - out[i] = string(part) - } - return -} - -func parseInt(in []byte) (out *big.Int, rest []byte, ok bool) { - contents, rest, ok := parseString(in) - if !ok { - return - } - out = new(big.Int) - - if len(contents) > 0 && contents[0]&0x80 == 0x80 { - // This is a negative number - notBytes := make([]byte, len(contents)) - for i := range notBytes { - notBytes[i] = ^contents[i] - } - out.SetBytes(notBytes) - out.Add(out, bigOne) - out.Neg(out) - } else { - // Positive number - out.SetBytes(contents) - } - ok = true - return -} - -func parseUint32(in []byte) (uint32, []byte, bool) { - if len(in) < 4 { - return 0, nil, false - } - return binary.BigEndian.Uint32(in), in[4:], true -} - -func parseUint64(in []byte) (uint64, []byte, bool) { - if len(in) < 8 { - return 0, nil, false - } - return binary.BigEndian.Uint64(in), in[8:], true -} - -func intLength(n *big.Int) int { - length := 4 /* length bytes */ - if n.Sign() < 0 { - nMinus1 := new(big.Int).Neg(n) - nMinus1.Sub(nMinus1, bigOne) - bitLen := nMinus1.BitLen() - if bitLen%8 == 0 { - // The number will need 0xff padding - length++ - } - length += (bitLen + 7) / 8 - } else if n.Sign() == 0 { - // A zero is the zero length string - } else { - bitLen := n.BitLen() - if bitLen%8 == 0 { - // The number will need 0x00 padding - length++ - } - length += (bitLen + 7) / 8 - } - - return length -} - -func marshalUint32(to []byte, n uint32) []byte { - binary.BigEndian.PutUint32(to, n) - return to[4:] -} - -func marshalUint64(to []byte, n uint64) []byte { - binary.BigEndian.PutUint64(to, n) - return to[8:] -} - -func marshalInt(to []byte, n *big.Int) []byte { - lengthBytes := to - to = to[4:] - length := 0 - - if n.Sign() < 0 { - // A negative number has to be converted to two's-complement - // form. So we'll subtract 1 and invert. If the - // most-significant-bit isn't set then we'll need to pad the - // beginning with 0xff in order to keep the number negative. - nMinus1 := new(big.Int).Neg(n) - nMinus1.Sub(nMinus1, bigOne) - bytes := nMinus1.Bytes() - for i := range bytes { - bytes[i] ^= 0xff - } - if len(bytes) == 0 || bytes[0]&0x80 == 0 { - to[0] = 0xff - to = to[1:] - length++ - } - nBytes := copy(to, bytes) - to = to[nBytes:] - length += nBytes - } else if n.Sign() == 0 { - // A zero is the zero length string - } else { - bytes := n.Bytes() - if len(bytes) > 0 && bytes[0]&0x80 != 0 { - // We'll have to pad this with a 0x00 in order to - // stop it looking like a negative number. - to[0] = 0 - to = to[1:] - length++ - } - nBytes := copy(to, bytes) - to = to[nBytes:] - length += nBytes - } - - lengthBytes[0] = byte(length >> 24) - lengthBytes[1] = byte(length >> 16) - lengthBytes[2] = byte(length >> 8) - lengthBytes[3] = byte(length) - return to -} - -func writeInt(w io.Writer, n *big.Int) { - length := intLength(n) - buf := make([]byte, length) - marshalInt(buf, n) - w.Write(buf) -} - -func writeString(w io.Writer, s []byte) { - var lengthBytes [4]byte - lengthBytes[0] = byte(len(s) >> 24) - lengthBytes[1] = byte(len(s) >> 16) - lengthBytes[2] = byte(len(s) >> 8) - lengthBytes[3] = byte(len(s)) - w.Write(lengthBytes[:]) - w.Write(s) -} - -func stringLength(n int) int { - return 4 + n -} - -func marshalString(to []byte, s []byte) []byte { - to[0] = byte(len(s) >> 24) - to[1] = byte(len(s) >> 16) - to[2] = byte(len(s) >> 8) - to[3] = byte(len(s)) - to = to[4:] - copy(to, s) - return to[len(s):] -} - -var bigIntType = reflect.TypeOf((*big.Int)(nil)) - -// Decode a packet into its corresponding message. -func decode(packet []byte) (interface{}, error) { - var msg interface{} - switch packet[0] { - case msgDisconnect: - msg = new(disconnectMsg) - case msgServiceRequest: - msg = new(serviceRequestMsg) - case msgServiceAccept: - msg = new(serviceAcceptMsg) - case msgKexInit: - msg = new(kexInitMsg) - case msgKexDHInit: - msg = new(kexDHInitMsg) - case msgKexDHReply: - msg = new(kexDHReplyMsg) - case msgUserAuthRequest: - msg = new(userAuthRequestMsg) - case msgUserAuthSuccess: - return new(userAuthSuccessMsg), nil - case msgUserAuthFailure: - msg = new(userAuthFailureMsg) - case msgUserAuthPubKeyOk: - msg = new(userAuthPubKeyOkMsg) - case msgGlobalRequest: - msg = new(globalRequestMsg) - case msgRequestSuccess: - msg = new(globalRequestSuccessMsg) - case msgRequestFailure: - msg = new(globalRequestFailureMsg) - case msgChannelOpen: - msg = new(channelOpenMsg) - case msgChannelData: - msg = new(channelDataMsg) - case msgChannelOpenConfirm: - msg = new(channelOpenConfirmMsg) - case msgChannelOpenFailure: - msg = new(channelOpenFailureMsg) - case msgChannelWindowAdjust: - msg = new(windowAdjustMsg) - case msgChannelEOF: - msg = new(channelEOFMsg) - case msgChannelClose: - msg = new(channelCloseMsg) - case msgChannelRequest: - msg = new(channelRequestMsg) - case msgChannelSuccess: - msg = new(channelRequestSuccessMsg) - case msgChannelFailure: - msg = new(channelRequestFailureMsg) - default: - return nil, unexpectedMessageError(0, packet[0]) - } - if err := Unmarshal(packet, msg); err != nil { - return nil, err - } - return msg, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/messages_test.go b/vendor/golang.org/x/crypto/ssh/messages_test.go deleted file mode 100644 index e790764..0000000 --- a/vendor/golang.org/x/crypto/ssh/messages_test.go +++ /dev/null @@ -1,288 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "math/big" - "math/rand" - "reflect" - "testing" - "testing/quick" -) - -var intLengthTests = []struct { - val, length int -}{ - {0, 4 + 0}, - {1, 4 + 1}, - {127, 4 + 1}, - {128, 4 + 2}, - {-1, 4 + 1}, -} - -func TestIntLength(t *testing.T) { - for _, test := range intLengthTests { - v := new(big.Int).SetInt64(int64(test.val)) - length := intLength(v) - if length != test.length { - t.Errorf("For %d, got length %d but expected %d", test.val, length, test.length) - } - } -} - -type msgAllTypes struct { - Bool bool `sshtype:"21"` - Array [16]byte - Uint64 uint64 - Uint32 uint32 - Uint8 uint8 - String string - Strings []string - Bytes []byte - Int *big.Int - Rest []byte `ssh:"rest"` -} - -func (t *msgAllTypes) Generate(rand *rand.Rand, size int) reflect.Value { - m := &msgAllTypes{} - m.Bool = rand.Intn(2) == 1 - randomBytes(m.Array[:], rand) - m.Uint64 = uint64(rand.Int63n(1<<63 - 1)) - m.Uint32 = uint32(rand.Intn((1 << 31) - 1)) - m.Uint8 = uint8(rand.Intn(1 << 8)) - m.String = string(m.Array[:]) - m.Strings = randomNameList(rand) - m.Bytes = m.Array[:] - m.Int = randomInt(rand) - m.Rest = m.Array[:] - return reflect.ValueOf(m) -} - -func TestMarshalUnmarshal(t *testing.T) { - rand := rand.New(rand.NewSource(0)) - iface := &msgAllTypes{} - ty := reflect.ValueOf(iface).Type() - - n := 100 - if testing.Short() { - n = 5 - } - for j := 0; j < n; j++ { - v, ok := quick.Value(ty, rand) - if !ok { - t.Errorf("failed to create value") - break - } - - m1 := v.Elem().Interface() - m2 := iface - - marshaled := Marshal(m1) - if err := Unmarshal(marshaled, m2); err != nil { - t.Errorf("Unmarshal %#v: %s", m1, err) - break - } - - if !reflect.DeepEqual(v.Interface(), m2) { - t.Errorf("got: %#v\nwant:%#v\n%x", m2, m1, marshaled) - break - } - } -} - -func TestUnmarshalEmptyPacket(t *testing.T) { - var b []byte - var m channelRequestSuccessMsg - if err := Unmarshal(b, &m); err == nil { - t.Fatalf("unmarshal of empty slice succeeded") - } -} - -func TestUnmarshalUnexpectedPacket(t *testing.T) { - type S struct { - I uint32 `sshtype:"43"` - S string - B bool - } - - s := S{11, "hello", true} - packet := Marshal(s) - packet[0] = 42 - roundtrip := S{} - err := Unmarshal(packet, &roundtrip) - if err == nil { - t.Fatal("expected error, not nil") - } -} - -func TestMarshalPtr(t *testing.T) { - s := struct { - S string - }{"hello"} - - m1 := Marshal(s) - m2 := Marshal(&s) - if !bytes.Equal(m1, m2) { - t.Errorf("got %q, want %q for marshaled pointer", m2, m1) - } -} - -func TestBareMarshalUnmarshal(t *testing.T) { - type S struct { - I uint32 - S string - B bool - } - - s := S{42, "hello", true} - packet := Marshal(s) - roundtrip := S{} - Unmarshal(packet, &roundtrip) - - if !reflect.DeepEqual(s, roundtrip) { - t.Errorf("got %#v, want %#v", roundtrip, s) - } -} - -func TestBareMarshal(t *testing.T) { - type S2 struct { - I uint32 - } - s := S2{42} - packet := Marshal(s) - i, rest, ok := parseUint32(packet) - if len(rest) > 0 || !ok { - t.Errorf("parseInt(%q): parse error", packet) - } - if i != s.I { - t.Errorf("got %d, want %d", i, s.I) - } -} - -func TestUnmarshalShortKexInitPacket(t *testing.T) { - // This used to panic. - // Issue 11348 - packet := []byte{0x14, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xff, 0xff, 0xff, 0xff} - kim := &kexInitMsg{} - if err := Unmarshal(packet, kim); err == nil { - t.Error("truncated packet unmarshaled without error") - } -} - -func TestMarshalMultiTag(t *testing.T) { - var res struct { - A uint32 `sshtype:"1|2"` - } - - good1 := struct { - A uint32 `sshtype:"1"` - }{ - 1, - } - good2 := struct { - A uint32 `sshtype:"2"` - }{ - 1, - } - - if e := Unmarshal(Marshal(good1), &res); e != nil { - t.Errorf("error unmarshaling multipart tag: %v", e) - } - - if e := Unmarshal(Marshal(good2), &res); e != nil { - t.Errorf("error unmarshaling multipart tag: %v", e) - } - - bad1 := struct { - A uint32 `sshtype:"3"` - }{ - 1, - } - if e := Unmarshal(Marshal(bad1), &res); e == nil { - t.Errorf("bad struct unmarshaled without error") - } -} - -func randomBytes(out []byte, rand *rand.Rand) { - for i := 0; i < len(out); i++ { - out[i] = byte(rand.Int31()) - } -} - -func randomNameList(rand *rand.Rand) []string { - ret := make([]string, rand.Int31()&15) - for i := range ret { - s := make([]byte, 1+(rand.Int31()&15)) - for j := range s { - s[j] = 'a' + uint8(rand.Int31()&15) - } - ret[i] = string(s) - } - return ret -} - -func randomInt(rand *rand.Rand) *big.Int { - return new(big.Int).SetInt64(int64(int32(rand.Uint32()))) -} - -func (*kexInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { - ki := &kexInitMsg{} - randomBytes(ki.Cookie[:], rand) - ki.KexAlgos = randomNameList(rand) - ki.ServerHostKeyAlgos = randomNameList(rand) - ki.CiphersClientServer = randomNameList(rand) - ki.CiphersServerClient = randomNameList(rand) - ki.MACsClientServer = randomNameList(rand) - ki.MACsServerClient = randomNameList(rand) - ki.CompressionClientServer = randomNameList(rand) - ki.CompressionServerClient = randomNameList(rand) - ki.LanguagesClientServer = randomNameList(rand) - ki.LanguagesServerClient = randomNameList(rand) - if rand.Int31()&1 == 1 { - ki.FirstKexFollows = true - } - return reflect.ValueOf(ki) -} - -func (*kexDHInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { - dhi := &kexDHInitMsg{} - dhi.X = randomInt(rand) - return reflect.ValueOf(dhi) -} - -var ( - _kexInitMsg = new(kexInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() - _kexDHInitMsg = new(kexDHInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() - - _kexInit = Marshal(_kexInitMsg) - _kexDHInit = Marshal(_kexDHInitMsg) -) - -func BenchmarkMarshalKexInitMsg(b *testing.B) { - for i := 0; i < b.N; i++ { - Marshal(_kexInitMsg) - } -} - -func BenchmarkUnmarshalKexInitMsg(b *testing.B) { - m := new(kexInitMsg) - for i := 0; i < b.N; i++ { - Unmarshal(_kexInit, m) - } -} - -func BenchmarkMarshalKexDHInitMsg(b *testing.B) { - for i := 0; i < b.N; i++ { - Marshal(_kexDHInitMsg) - } -} - -func BenchmarkUnmarshalKexDHInitMsg(b *testing.B) { - m := new(kexDHInitMsg) - for i := 0; i < b.N; i++ { - Unmarshal(_kexDHInit, m) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/mux.go b/vendor/golang.org/x/crypto/ssh/mux.go deleted file mode 100644 index f3a3ddd..0000000 --- a/vendor/golang.org/x/crypto/ssh/mux.go +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "encoding/binary" - "fmt" - "io" - "log" - "sync" - "sync/atomic" -) - -// debugMux, if set, causes messages in the connection protocol to be -// logged. -const debugMux = false - -// chanList is a thread safe channel list. -type chanList struct { - // protects concurrent access to chans - sync.Mutex - - // chans are indexed by the local id of the channel, which the - // other side should send in the PeersId field. - chans []*channel - - // This is a debugging aid: it offsets all IDs by this - // amount. This helps distinguish otherwise identical - // server/client muxes - offset uint32 -} - -// Assigns a channel ID to the given channel. -func (c *chanList) add(ch *channel) uint32 { - c.Lock() - defer c.Unlock() - for i := range c.chans { - if c.chans[i] == nil { - c.chans[i] = ch - return uint32(i) + c.offset - } - } - c.chans = append(c.chans, ch) - return uint32(len(c.chans)-1) + c.offset -} - -// getChan returns the channel for the given ID. -func (c *chanList) getChan(id uint32) *channel { - id -= c.offset - - c.Lock() - defer c.Unlock() - if id < uint32(len(c.chans)) { - return c.chans[id] - } - return nil -} - -func (c *chanList) remove(id uint32) { - id -= c.offset - c.Lock() - if id < uint32(len(c.chans)) { - c.chans[id] = nil - } - c.Unlock() -} - -// dropAll forgets all channels it knows, returning them in a slice. -func (c *chanList) dropAll() []*channel { - c.Lock() - defer c.Unlock() - var r []*channel - - for _, ch := range c.chans { - if ch == nil { - continue - } - r = append(r, ch) - } - c.chans = nil - return r -} - -// mux represents the state for the SSH connection protocol, which -// multiplexes many channels onto a single packet transport. -type mux struct { - conn packetConn - chanList chanList - - incomingChannels chan NewChannel - - globalSentMu sync.Mutex - globalResponses chan interface{} - incomingRequests chan *Request - - errCond *sync.Cond - err error -} - -// When debugging, each new chanList instantiation has a different -// offset. -var globalOff uint32 - -func (m *mux) Wait() error { - m.errCond.L.Lock() - defer m.errCond.L.Unlock() - for m.err == nil { - m.errCond.Wait() - } - return m.err -} - -// newMux returns a mux that runs over the given connection. -func newMux(p packetConn) *mux { - m := &mux{ - conn: p, - incomingChannels: make(chan NewChannel, 16), - globalResponses: make(chan interface{}, 1), - incomingRequests: make(chan *Request, 16), - errCond: newCond(), - } - if debugMux { - m.chanList.offset = atomic.AddUint32(&globalOff, 1) - } - - go m.loop() - return m -} - -func (m *mux) sendMessage(msg interface{}) error { - p := Marshal(msg) - if debugMux { - log.Printf("send global(%d): %#v", m.chanList.offset, msg) - } - return m.conn.writePacket(p) -} - -func (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) { - if wantReply { - m.globalSentMu.Lock() - defer m.globalSentMu.Unlock() - } - - if err := m.sendMessage(globalRequestMsg{ - Type: name, - WantReply: wantReply, - Data: payload, - }); err != nil { - return false, nil, err - } - - if !wantReply { - return false, nil, nil - } - - msg, ok := <-m.globalResponses - if !ok { - return false, nil, io.EOF - } - switch msg := msg.(type) { - case *globalRequestFailureMsg: - return false, msg.Data, nil - case *globalRequestSuccessMsg: - return true, msg.Data, nil - default: - return false, nil, fmt.Errorf("ssh: unexpected response to request: %#v", msg) - } -} - -// ackRequest must be called after processing a global request that -// has WantReply set. -func (m *mux) ackRequest(ok bool, data []byte) error { - if ok { - return m.sendMessage(globalRequestSuccessMsg{Data: data}) - } - return m.sendMessage(globalRequestFailureMsg{Data: data}) -} - -func (m *mux) Close() error { - return m.conn.Close() -} - -// loop runs the connection machine. It will process packets until an -// error is encountered. To synchronize on loop exit, use mux.Wait. -func (m *mux) loop() { - var err error - for err == nil { - err = m.onePacket() - } - - for _, ch := range m.chanList.dropAll() { - ch.close() - } - - close(m.incomingChannels) - close(m.incomingRequests) - close(m.globalResponses) - - m.conn.Close() - - m.errCond.L.Lock() - m.err = err - m.errCond.Broadcast() - m.errCond.L.Unlock() - - if debugMux { - log.Println("loop exit", err) - } -} - -// onePacket reads and processes one packet. -func (m *mux) onePacket() error { - packet, err := m.conn.readPacket() - if err != nil { - return err - } - - if debugMux { - if packet[0] == msgChannelData || packet[0] == msgChannelExtendedData { - log.Printf("decoding(%d): data packet - %d bytes", m.chanList.offset, len(packet)) - } else { - p, _ := decode(packet) - log.Printf("decoding(%d): %d %#v - %d bytes", m.chanList.offset, packet[0], p, len(packet)) - } - } - - switch packet[0] { - case msgChannelOpen: - return m.handleChannelOpen(packet) - case msgGlobalRequest, msgRequestSuccess, msgRequestFailure: - return m.handleGlobalPacket(packet) - } - - // assume a channel packet. - if len(packet) < 5 { - return parseError(packet[0]) - } - id := binary.BigEndian.Uint32(packet[1:]) - ch := m.chanList.getChan(id) - if ch == nil { - return fmt.Errorf("ssh: invalid channel %d", id) - } - - return ch.handlePacket(packet) -} - -func (m *mux) handleGlobalPacket(packet []byte) error { - msg, err := decode(packet) - if err != nil { - return err - } - - switch msg := msg.(type) { - case *globalRequestMsg: - m.incomingRequests <- &Request{ - Type: msg.Type, - WantReply: msg.WantReply, - Payload: msg.Data, - mux: m, - } - case *globalRequestSuccessMsg, *globalRequestFailureMsg: - m.globalResponses <- msg - default: - panic(fmt.Sprintf("not a global message %#v", msg)) - } - - return nil -} - -// handleChannelOpen schedules a channel to be Accept()ed. -func (m *mux) handleChannelOpen(packet []byte) error { - var msg channelOpenMsg - if err := Unmarshal(packet, &msg); err != nil { - return err - } - - if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { - failMsg := channelOpenFailureMsg{ - PeersId: msg.PeersId, - Reason: ConnectionFailed, - Message: "invalid request", - Language: "en_US.UTF-8", - } - return m.sendMessage(failMsg) - } - - c := m.newChannel(msg.ChanType, channelInbound, msg.TypeSpecificData) - c.remoteId = msg.PeersId - c.maxRemotePayload = msg.MaxPacketSize - c.remoteWin.add(msg.PeersWindow) - m.incomingChannels <- c - return nil -} - -func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) { - ch, err := m.openChannel(chanType, extra) - if err != nil { - return nil, nil, err - } - - return ch, ch.incomingRequests, nil -} - -func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { - ch := m.newChannel(chanType, channelOutbound, extra) - - ch.maxIncomingPayload = channelMaxPacket - - open := channelOpenMsg{ - ChanType: chanType, - PeersWindow: ch.myWindow, - MaxPacketSize: ch.maxIncomingPayload, - TypeSpecificData: extra, - PeersId: ch.localId, - } - if err := m.sendMessage(open); err != nil { - return nil, err - } - - switch msg := (<-ch.msg).(type) { - case *channelOpenConfirmMsg: - return ch, nil - case *channelOpenFailureMsg: - return nil, &OpenChannelError{msg.Reason, msg.Message} - default: - return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/mux_test.go b/vendor/golang.org/x/crypto/ssh/mux_test.go deleted file mode 100644 index 591aae8..0000000 --- a/vendor/golang.org/x/crypto/ssh/mux_test.go +++ /dev/null @@ -1,502 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "io" - "io/ioutil" - "sync" - "testing" -) - -func muxPair() (*mux, *mux) { - a, b := memPipe() - - s := newMux(a) - c := newMux(b) - - return s, c -} - -// Returns both ends of a channel, and the mux for the the 2nd -// channel. -func channelPair(t *testing.T) (*channel, *channel, *mux) { - c, s := muxPair() - - res := make(chan *channel, 1) - go func() { - newCh, ok := <-s.incomingChannels - if !ok { - t.Fatalf("No incoming channel") - } - if newCh.ChannelType() != "chan" { - t.Fatalf("got type %q want chan", newCh.ChannelType()) - } - ch, _, err := newCh.Accept() - if err != nil { - t.Fatalf("Accept %v", err) - } - res <- ch.(*channel) - }() - - ch, err := c.openChannel("chan", nil) - if err != nil { - t.Fatalf("OpenChannel: %v", err) - } - - return <-res, ch, c -} - -// Test that stderr and stdout can be addressed from different -// goroutines. This is intended for use with the race detector. -func TestMuxChannelExtendedThreadSafety(t *testing.T) { - writer, reader, mux := channelPair(t) - defer writer.Close() - defer reader.Close() - defer mux.Close() - - var wr, rd sync.WaitGroup - magic := "hello world" - - wr.Add(2) - go func() { - io.WriteString(writer, magic) - wr.Done() - }() - go func() { - io.WriteString(writer.Stderr(), magic) - wr.Done() - }() - - rd.Add(2) - go func() { - c, err := ioutil.ReadAll(reader) - if string(c) != magic { - t.Fatalf("stdout read got %q, want %q (error %s)", c, magic, err) - } - rd.Done() - }() - go func() { - c, err := ioutil.ReadAll(reader.Stderr()) - if string(c) != magic { - t.Fatalf("stderr read got %q, want %q (error %s)", c, magic, err) - } - rd.Done() - }() - - wr.Wait() - writer.CloseWrite() - rd.Wait() -} - -func TestMuxReadWrite(t *testing.T) { - s, c, mux := channelPair(t) - defer s.Close() - defer c.Close() - defer mux.Close() - - magic := "hello world" - magicExt := "hello stderr" - go func() { - _, err := s.Write([]byte(magic)) - if err != nil { - t.Fatalf("Write: %v", err) - } - _, err = s.Extended(1).Write([]byte(magicExt)) - if err != nil { - t.Fatalf("Write: %v", err) - } - err = s.Close() - if err != nil { - t.Fatalf("Close: %v", err) - } - }() - - var buf [1024]byte - n, err := c.Read(buf[:]) - if err != nil { - t.Fatalf("server Read: %v", err) - } - got := string(buf[:n]) - if got != magic { - t.Fatalf("server: got %q want %q", got, magic) - } - - n, err = c.Extended(1).Read(buf[:]) - if err != nil { - t.Fatalf("server Read: %v", err) - } - - got = string(buf[:n]) - if got != magicExt { - t.Fatalf("server: got %q want %q", got, magic) - } -} - -func TestMuxChannelOverflow(t *testing.T) { - reader, writer, mux := channelPair(t) - defer reader.Close() - defer writer.Close() - defer mux.Close() - - wDone := make(chan int, 1) - go func() { - if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { - t.Errorf("could not fill window: %v", err) - } - writer.Write(make([]byte, 1)) - wDone <- 1 - }() - writer.remoteWin.waitWriterBlocked() - - // Send 1 byte. - packet := make([]byte, 1+4+4+1) - packet[0] = msgChannelData - marshalUint32(packet[1:], writer.remoteId) - marshalUint32(packet[5:], uint32(1)) - packet[9] = 42 - - if err := writer.mux.conn.writePacket(packet); err != nil { - t.Errorf("could not send packet") - } - if _, err := reader.SendRequest("hello", true, nil); err == nil { - t.Errorf("SendRequest succeeded.") - } - <-wDone -} - -func TestMuxChannelCloseWriteUnblock(t *testing.T) { - reader, writer, mux := channelPair(t) - defer reader.Close() - defer writer.Close() - defer mux.Close() - - wDone := make(chan int, 1) - go func() { - if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { - t.Errorf("could not fill window: %v", err) - } - if _, err := writer.Write(make([]byte, 1)); err != io.EOF { - t.Errorf("got %v, want EOF for unblock write", err) - } - wDone <- 1 - }() - - writer.remoteWin.waitWriterBlocked() - reader.Close() - <-wDone -} - -func TestMuxConnectionCloseWriteUnblock(t *testing.T) { - reader, writer, mux := channelPair(t) - defer reader.Close() - defer writer.Close() - defer mux.Close() - - wDone := make(chan int, 1) - go func() { - if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { - t.Errorf("could not fill window: %v", err) - } - if _, err := writer.Write(make([]byte, 1)); err != io.EOF { - t.Errorf("got %v, want EOF for unblock write", err) - } - wDone <- 1 - }() - - writer.remoteWin.waitWriterBlocked() - mux.Close() - <-wDone -} - -func TestMuxReject(t *testing.T) { - client, server := muxPair() - defer server.Close() - defer client.Close() - - go func() { - ch, ok := <-server.incomingChannels - if !ok { - t.Fatalf("Accept") - } - if ch.ChannelType() != "ch" || string(ch.ExtraData()) != "extra" { - t.Fatalf("unexpected channel: %q, %q", ch.ChannelType(), ch.ExtraData()) - } - ch.Reject(RejectionReason(42), "message") - }() - - ch, err := client.openChannel("ch", []byte("extra")) - if ch != nil { - t.Fatal("openChannel not rejected") - } - - ocf, ok := err.(*OpenChannelError) - if !ok { - t.Errorf("got %#v want *OpenChannelError", err) - } else if ocf.Reason != 42 || ocf.Message != "message" { - t.Errorf("got %#v, want {Reason: 42, Message: %q}", ocf, "message") - } - - want := "ssh: rejected: unknown reason 42 (message)" - if err.Error() != want { - t.Errorf("got %q, want %q", err.Error(), want) - } -} - -func TestMuxChannelRequest(t *testing.T) { - client, server, mux := channelPair(t) - defer server.Close() - defer client.Close() - defer mux.Close() - - var received int - var wg sync.WaitGroup - wg.Add(1) - go func() { - for r := range server.incomingRequests { - received++ - r.Reply(r.Type == "yes", nil) - } - wg.Done() - }() - _, err := client.SendRequest("yes", false, nil) - if err != nil { - t.Fatalf("SendRequest: %v", err) - } - ok, err := client.SendRequest("yes", true, nil) - if err != nil { - t.Fatalf("SendRequest: %v", err) - } - - if !ok { - t.Errorf("SendRequest(yes): %v", ok) - - } - - ok, err = client.SendRequest("no", true, nil) - if err != nil { - t.Fatalf("SendRequest: %v", err) - } - if ok { - t.Errorf("SendRequest(no): %v", ok) - - } - - client.Close() - wg.Wait() - - if received != 3 { - t.Errorf("got %d requests, want %d", received, 3) - } -} - -func TestMuxGlobalRequest(t *testing.T) { - clientMux, serverMux := muxPair() - defer serverMux.Close() - defer clientMux.Close() - - var seen bool - go func() { - for r := range serverMux.incomingRequests { - seen = seen || r.Type == "peek" - if r.WantReply { - err := r.Reply(r.Type == "yes", - append([]byte(r.Type), r.Payload...)) - if err != nil { - t.Errorf("AckRequest: %v", err) - } - } - } - }() - - _, _, err := clientMux.SendRequest("peek", false, nil) - if err != nil { - t.Errorf("SendRequest: %v", err) - } - - ok, data, err := clientMux.SendRequest("yes", true, []byte("a")) - if !ok || string(data) != "yesa" || err != nil { - t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", - ok, data, err) - } - if ok, data, err := clientMux.SendRequest("yes", true, []byte("a")); !ok || string(data) != "yesa" || err != nil { - t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", - ok, data, err) - } - - if ok, data, err := clientMux.SendRequest("no", true, []byte("a")); ok || string(data) != "noa" || err != nil { - t.Errorf("SendRequest(\"no\", true, \"a\"): %v %v %v", - ok, data, err) - } - - if !seen { - t.Errorf("never saw 'peek' request") - } -} - -func TestMuxGlobalRequestUnblock(t *testing.T) { - clientMux, serverMux := muxPair() - defer serverMux.Close() - defer clientMux.Close() - - result := make(chan error, 1) - go func() { - _, _, err := clientMux.SendRequest("hello", true, nil) - result <- err - }() - - <-serverMux.incomingRequests - serverMux.conn.Close() - err := <-result - - if err != io.EOF { - t.Errorf("want EOF, got %v", io.EOF) - } -} - -func TestMuxChannelRequestUnblock(t *testing.T) { - a, b, connB := channelPair(t) - defer a.Close() - defer b.Close() - defer connB.Close() - - result := make(chan error, 1) - go func() { - _, err := a.SendRequest("hello", true, nil) - result <- err - }() - - <-b.incomingRequests - connB.conn.Close() - err := <-result - - if err != io.EOF { - t.Errorf("want EOF, got %v", err) - } -} - -func TestMuxCloseChannel(t *testing.T) { - r, w, mux := channelPair(t) - defer mux.Close() - defer r.Close() - defer w.Close() - - result := make(chan error, 1) - go func() { - var b [1024]byte - _, err := r.Read(b[:]) - result <- err - }() - if err := w.Close(); err != nil { - t.Errorf("w.Close: %v", err) - } - - if _, err := w.Write([]byte("hello")); err != io.EOF { - t.Errorf("got err %v, want io.EOF after Close", err) - } - - if err := <-result; err != io.EOF { - t.Errorf("got %v (%T), want io.EOF", err, err) - } -} - -func TestMuxCloseWriteChannel(t *testing.T) { - r, w, mux := channelPair(t) - defer mux.Close() - - result := make(chan error, 1) - go func() { - var b [1024]byte - _, err := r.Read(b[:]) - result <- err - }() - if err := w.CloseWrite(); err != nil { - t.Errorf("w.CloseWrite: %v", err) - } - - if _, err := w.Write([]byte("hello")); err != io.EOF { - t.Errorf("got err %v, want io.EOF after CloseWrite", err) - } - - if err := <-result; err != io.EOF { - t.Errorf("got %v (%T), want io.EOF", err, err) - } -} - -func TestMuxInvalidRecord(t *testing.T) { - a, b := muxPair() - defer a.Close() - defer b.Close() - - packet := make([]byte, 1+4+4+1) - packet[0] = msgChannelData - marshalUint32(packet[1:], 29348723 /* invalid channel id */) - marshalUint32(packet[5:], 1) - packet[9] = 42 - - a.conn.writePacket(packet) - go a.SendRequest("hello", false, nil) - // 'a' wrote an invalid packet, so 'b' has exited. - req, ok := <-b.incomingRequests - if ok { - t.Errorf("got request %#v after receiving invalid packet", req) - } -} - -func TestZeroWindowAdjust(t *testing.T) { - a, b, mux := channelPair(t) - defer a.Close() - defer b.Close() - defer mux.Close() - - go func() { - io.WriteString(a, "hello") - // bogus adjust. - a.sendMessage(windowAdjustMsg{}) - io.WriteString(a, "world") - a.Close() - }() - - want := "helloworld" - c, _ := ioutil.ReadAll(b) - if string(c) != want { - t.Errorf("got %q want %q", c, want) - } -} - -func TestMuxMaxPacketSize(t *testing.T) { - a, b, mux := channelPair(t) - defer a.Close() - defer b.Close() - defer mux.Close() - - large := make([]byte, a.maxRemotePayload+1) - packet := make([]byte, 1+4+4+1+len(large)) - packet[0] = msgChannelData - marshalUint32(packet[1:], a.remoteId) - marshalUint32(packet[5:], uint32(len(large))) - packet[9] = 42 - - if err := a.mux.conn.writePacket(packet); err != nil { - t.Errorf("could not send packet") - } - - go a.SendRequest("hello", false, nil) - - _, ok := <-b.incomingRequests - if ok { - t.Errorf("connection still alive after receiving large packet.") - } -} - -// Don't ship code with debug=true. -func TestDebug(t *testing.T) { - if debugMux { - t.Error("mux debug switched on") - } - if debugHandshake { - t.Error("handshake debug switched on") - } -} diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go deleted file mode 100644 index 37df1b3..0000000 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ /dev/null @@ -1,488 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "errors" - "fmt" - "io" - "net" -) - -// The Permissions type holds fine-grained permissions that are -// specific to a user or a specific authentication method for a -// user. Permissions, except for "source-address", must be enforced in -// the server application layer, after successful authentication. The -// Permissions are passed on in ServerConn so a server implementation -// can honor them. -type Permissions struct { - // Critical options restrict default permissions. Common - // restrictions are "source-address" and "force-command". If - // the server cannot enforce the restriction, or does not - // recognize it, the user should not authenticate. - CriticalOptions map[string]string - - // Extensions are extra functionality that the server may - // offer on authenticated connections. Common extensions are - // "permit-agent-forwarding", "permit-X11-forwarding". Lack of - // support for an extension does not preclude authenticating a - // user. - Extensions map[string]string -} - -// ServerConfig holds server specific configuration data. -type ServerConfig struct { - // Config contains configuration shared between client and server. - Config - - hostKeys []Signer - - // NoClientAuth is true if clients are allowed to connect without - // authenticating. - NoClientAuth bool - - // PasswordCallback, if non-nil, is called when a user - // attempts to authenticate using a password. - PasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error) - - // PublicKeyCallback, if non-nil, is called when a client attempts public - // key authentication. It must return true if the given public key is - // valid for the given user. For example, see CertChecker.Authenticate. - PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) - - // KeyboardInteractiveCallback, if non-nil, is called when - // keyboard-interactive authentication is selected (RFC - // 4256). The client object's Challenge function should be - // used to query the user. The callback may offer multiple - // Challenge rounds. To avoid information leaks, the client - // should be presented a challenge even if the user is - // unknown. - KeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error) - - // AuthLogCallback, if non-nil, is called to log all authentication - // attempts. - AuthLogCallback func(conn ConnMetadata, method string, err error) - - // ServerVersion is the version identification string to announce in - // the public handshake. - // If empty, a reasonable default is used. - // Note that RFC 4253 section 4.2 requires that this string start with - // "SSH-2.0-". - ServerVersion string -} - -// AddHostKey adds a private key as a host key. If an existing host -// key exists with the same algorithm, it is overwritten. Each server -// config must have at least one host key. -func (s *ServerConfig) AddHostKey(key Signer) { - for i, k := range s.hostKeys { - if k.PublicKey().Type() == key.PublicKey().Type() { - s.hostKeys[i] = key - return - } - } - - s.hostKeys = append(s.hostKeys, key) -} - -// cachedPubKey contains the results of querying whether a public key is -// acceptable for a user. -type cachedPubKey struct { - user string - pubKeyData []byte - result error - perms *Permissions -} - -const maxCachedPubKeys = 16 - -// pubKeyCache caches tests for public keys. Since SSH clients -// will query whether a public key is acceptable before attempting to -// authenticate with it, we end up with duplicate queries for public -// key validity. The cache only applies to a single ServerConn. -type pubKeyCache struct { - keys []cachedPubKey -} - -// get returns the result for a given user/algo/key tuple. -func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { - for _, k := range c.keys { - if k.user == user && bytes.Equal(k.pubKeyData, pubKeyData) { - return k, true - } - } - return cachedPubKey{}, false -} - -// add adds the given tuple to the cache. -func (c *pubKeyCache) add(candidate cachedPubKey) { - if len(c.keys) < maxCachedPubKeys { - c.keys = append(c.keys, candidate) - } -} - -// ServerConn is an authenticated SSH connection, as seen from the -// server -type ServerConn struct { - Conn - - // If the succeeding authentication callback returned a - // non-nil Permissions pointer, it is stored here. - Permissions *Permissions -} - -// NewServerConn starts a new SSH server with c as the underlying -// transport. It starts with a handshake and, if the handshake is -// unsuccessful, it closes the connection and returns an error. The -// Request and NewChannel channels must be serviced, or the connection -// will hang. -func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewChannel, <-chan *Request, error) { - fullConf := *config - fullConf.SetDefaults() - s := &connection{ - sshConn: sshConn{conn: c}, - } - perms, err := s.serverHandshake(&fullConf) - if err != nil { - c.Close() - return nil, nil, nil, err - } - return &ServerConn{s, perms}, s.mux.incomingChannels, s.mux.incomingRequests, nil -} - -// signAndMarshal signs the data with the appropriate algorithm, -// and serializes the result in SSH wire format. -func signAndMarshal(k Signer, rand io.Reader, data []byte) ([]byte, error) { - sig, err := k.Sign(rand, data) - if err != nil { - return nil, err - } - - return Marshal(sig), nil -} - -// handshake performs key exchange and user authentication. -func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) { - if len(config.hostKeys) == 0 { - return nil, errors.New("ssh: server has no host keys") - } - - if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && config.KeyboardInteractiveCallback == nil { - return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") - } - - if config.ServerVersion != "" { - s.serverVersion = []byte(config.ServerVersion) - } else { - s.serverVersion = []byte(packageVersion) - } - var err error - s.clientVersion, err = exchangeVersions(s.sshConn.conn, s.serverVersion) - if err != nil { - return nil, err - } - - tr := newTransport(s.sshConn.conn, config.Rand, false /* not client */) - s.transport = newServerTransport(tr, s.clientVersion, s.serverVersion, config) - - if err := s.transport.requestInitialKeyChange(); err != nil { - return nil, err - } - - // We just did the key change, so the session ID is established. - s.sessionID = s.transport.getSessionID() - - var packet []byte - if packet, err = s.transport.readPacket(); err != nil { - return nil, err - } - - var serviceRequest serviceRequestMsg - if err = Unmarshal(packet, &serviceRequest); err != nil { - return nil, err - } - if serviceRequest.Service != serviceUserAuth { - return nil, errors.New("ssh: requested service '" + serviceRequest.Service + "' before authenticating") - } - serviceAccept := serviceAcceptMsg{ - Service: serviceUserAuth, - } - if err := s.transport.writePacket(Marshal(&serviceAccept)); err != nil { - return nil, err - } - - perms, err := s.serverAuthenticate(config) - if err != nil { - return nil, err - } - s.mux = newMux(s.transport) - return perms, err -} - -func isAcceptableAlgo(algo string) bool { - switch algo { - case KeyAlgoRSA, KeyAlgoDSA, KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, KeyAlgoED25519, - CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: - return true - } - return false -} - -func checkSourceAddress(addr net.Addr, sourceAddr string) error { - if addr == nil { - return errors.New("ssh: no address known for client, but source-address match required") - } - - tcpAddr, ok := addr.(*net.TCPAddr) - if !ok { - return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr) - } - - if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil { - if bytes.Equal(allowedIP, tcpAddr.IP) { - return nil - } - } else { - _, ipNet, err := net.ParseCIDR(sourceAddr) - if err != nil { - return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err) - } - - if ipNet.Contains(tcpAddr.IP) { - return nil - } - } - - return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr) -} - -func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { - var err error - var cache pubKeyCache - var perms *Permissions - -userAuthLoop: - for { - var userAuthReq userAuthRequestMsg - if packet, err := s.transport.readPacket(); err != nil { - return nil, err - } else if err = Unmarshal(packet, &userAuthReq); err != nil { - return nil, err - } - - if userAuthReq.Service != serviceSSH { - return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service) - } - - s.user = userAuthReq.User - perms = nil - authErr := errors.New("no auth passed yet") - - switch userAuthReq.Method { - case "none": - if config.NoClientAuth { - authErr = nil - } - case "password": - if config.PasswordCallback == nil { - authErr = errors.New("ssh: password auth not configured") - break - } - payload := userAuthReq.Payload - if len(payload) < 1 || payload[0] != 0 { - return nil, parseError(msgUserAuthRequest) - } - payload = payload[1:] - password, payload, ok := parseString(payload) - if !ok || len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - - perms, authErr = config.PasswordCallback(s, password) - case "keyboard-interactive": - if config.KeyboardInteractiveCallback == nil { - authErr = errors.New("ssh: keyboard-interactive auth not configubred") - break - } - - prompter := &sshClientKeyboardInteractive{s} - perms, authErr = config.KeyboardInteractiveCallback(s, prompter.Challenge) - case "publickey": - if config.PublicKeyCallback == nil { - authErr = errors.New("ssh: publickey auth not configured") - break - } - payload := userAuthReq.Payload - if len(payload) < 1 { - return nil, parseError(msgUserAuthRequest) - } - isQuery := payload[0] == 0 - payload = payload[1:] - algoBytes, payload, ok := parseString(payload) - if !ok { - return nil, parseError(msgUserAuthRequest) - } - algo := string(algoBytes) - if !isAcceptableAlgo(algo) { - authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) - break - } - - pubKeyData, payload, ok := parseString(payload) - if !ok { - return nil, parseError(msgUserAuthRequest) - } - - pubKey, err := ParsePublicKey(pubKeyData) - if err != nil { - return nil, err - } - - candidate, ok := cache.get(s.user, pubKeyData) - if !ok { - candidate.user = s.user - candidate.pubKeyData = pubKeyData - candidate.perms, candidate.result = config.PublicKeyCallback(s, pubKey) - if candidate.result == nil && candidate.perms != nil && candidate.perms.CriticalOptions != nil && candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { - candidate.result = checkSourceAddress( - s.RemoteAddr(), - candidate.perms.CriticalOptions[sourceAddressCriticalOption]) - } - cache.add(candidate) - } - - if isQuery { - // The client can query if the given public key - // would be okay. - if len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - - if candidate.result == nil { - okMsg := userAuthPubKeyOkMsg{ - Algo: algo, - PubKey: pubKeyData, - } - if err = s.transport.writePacket(Marshal(&okMsg)); err != nil { - return nil, err - } - continue userAuthLoop - } - authErr = candidate.result - } else { - sig, payload, ok := parseSignature(payload) - if !ok || len(payload) > 0 { - return nil, parseError(msgUserAuthRequest) - } - // Ensure the public key algo and signature algo - // are supported. Compare the private key - // algorithm name that corresponds to algo with - // sig.Format. This is usually the same, but - // for certs, the names differ. - if !isAcceptableAlgo(sig.Format) { - break - } - signedData := buildDataSignedForAuth(s.transport.getSessionID(), userAuthReq, algoBytes, pubKeyData) - - if err := pubKey.Verify(signedData, sig); err != nil { - return nil, err - } - - authErr = candidate.result - perms = candidate.perms - } - default: - authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method) - } - - if config.AuthLogCallback != nil { - config.AuthLogCallback(s, userAuthReq.Method, authErr) - } - - if authErr == nil { - break userAuthLoop - } - - var failureMsg userAuthFailureMsg - if config.PasswordCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "password") - } - if config.PublicKeyCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "publickey") - } - if config.KeyboardInteractiveCallback != nil { - failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") - } - - if len(failureMsg.Methods) == 0 { - return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") - } - - if err = s.transport.writePacket(Marshal(&failureMsg)); err != nil { - return nil, err - } - } - - if err = s.transport.writePacket([]byte{msgUserAuthSuccess}); err != nil { - return nil, err - } - return perms, nil -} - -// sshClientKeyboardInteractive implements a ClientKeyboardInteractive by -// asking the client on the other side of a ServerConn. -type sshClientKeyboardInteractive struct { - *connection -} - -func (c *sshClientKeyboardInteractive) Challenge(user, instruction string, questions []string, echos []bool) (answers []string, err error) { - if len(questions) != len(echos) { - return nil, errors.New("ssh: echos and questions must have equal length") - } - - var prompts []byte - for i := range questions { - prompts = appendString(prompts, questions[i]) - prompts = appendBool(prompts, echos[i]) - } - - if err := c.transport.writePacket(Marshal(&userAuthInfoRequestMsg{ - Instruction: instruction, - NumPrompts: uint32(len(questions)), - Prompts: prompts, - })); err != nil { - return nil, err - } - - packet, err := c.transport.readPacket() - if err != nil { - return nil, err - } - if packet[0] != msgUserAuthInfoResponse { - return nil, unexpectedMessageError(msgUserAuthInfoResponse, packet[0]) - } - packet = packet[1:] - - n, packet, ok := parseUint32(packet) - if !ok || int(n) != len(questions) { - return nil, parseError(msgUserAuthInfoResponse) - } - - for i := uint32(0); i < n; i++ { - ans, rest, ok := parseString(packet) - if !ok { - return nil, parseError(msgUserAuthInfoResponse) - } - - answers = append(answers, string(ans)) - packet = rest - } - if len(packet) != 0 { - return nil, errors.New("ssh: junk at end of message") - } - - return answers, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/session.go b/vendor/golang.org/x/crypto/ssh/session.go deleted file mode 100644 index 17e2aa8..0000000 --- a/vendor/golang.org/x/crypto/ssh/session.go +++ /dev/null @@ -1,627 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -// Session implements an interactive session described in -// "RFC 4254, section 6". - -import ( - "bytes" - "encoding/binary" - "errors" - "fmt" - "io" - "io/ioutil" - "sync" -) - -type Signal string - -// POSIX signals as listed in RFC 4254 Section 6.10. -const ( - SIGABRT Signal = "ABRT" - SIGALRM Signal = "ALRM" - SIGFPE Signal = "FPE" - SIGHUP Signal = "HUP" - SIGILL Signal = "ILL" - SIGINT Signal = "INT" - SIGKILL Signal = "KILL" - SIGPIPE Signal = "PIPE" - SIGQUIT Signal = "QUIT" - SIGSEGV Signal = "SEGV" - SIGTERM Signal = "TERM" - SIGUSR1 Signal = "USR1" - SIGUSR2 Signal = "USR2" -) - -var signals = map[Signal]int{ - SIGABRT: 6, - SIGALRM: 14, - SIGFPE: 8, - SIGHUP: 1, - SIGILL: 4, - SIGINT: 2, - SIGKILL: 9, - SIGPIPE: 13, - SIGQUIT: 3, - SIGSEGV: 11, - SIGTERM: 15, -} - -type TerminalModes map[uint8]uint32 - -// POSIX terminal mode flags as listed in RFC 4254 Section 8. -const ( - tty_OP_END = 0 - VINTR = 1 - VQUIT = 2 - VERASE = 3 - VKILL = 4 - VEOF = 5 - VEOL = 6 - VEOL2 = 7 - VSTART = 8 - VSTOP = 9 - VSUSP = 10 - VDSUSP = 11 - VREPRINT = 12 - VWERASE = 13 - VLNEXT = 14 - VFLUSH = 15 - VSWTCH = 16 - VSTATUS = 17 - VDISCARD = 18 - IGNPAR = 30 - PARMRK = 31 - INPCK = 32 - ISTRIP = 33 - INLCR = 34 - IGNCR = 35 - ICRNL = 36 - IUCLC = 37 - IXON = 38 - IXANY = 39 - IXOFF = 40 - IMAXBEL = 41 - ISIG = 50 - ICANON = 51 - XCASE = 52 - ECHO = 53 - ECHOE = 54 - ECHOK = 55 - ECHONL = 56 - NOFLSH = 57 - TOSTOP = 58 - IEXTEN = 59 - ECHOCTL = 60 - ECHOKE = 61 - PENDIN = 62 - OPOST = 70 - OLCUC = 71 - ONLCR = 72 - OCRNL = 73 - ONOCR = 74 - ONLRET = 75 - CS7 = 90 - CS8 = 91 - PARENB = 92 - PARODD = 93 - TTY_OP_ISPEED = 128 - TTY_OP_OSPEED = 129 -) - -// A Session represents a connection to a remote command or shell. -type Session struct { - // Stdin specifies the remote process's standard input. - // If Stdin is nil, the remote process reads from an empty - // bytes.Buffer. - Stdin io.Reader - - // Stdout and Stderr specify the remote process's standard - // output and error. - // - // If either is nil, Run connects the corresponding file - // descriptor to an instance of ioutil.Discard. There is a - // fixed amount of buffering that is shared for the two streams. - // If either blocks it may eventually cause the remote - // command to block. - Stdout io.Writer - Stderr io.Writer - - ch Channel // the channel backing this session - started bool // true once Start, Run or Shell is invoked. - copyFuncs []func() error - errors chan error // one send per copyFunc - - // true if pipe method is active - stdinpipe, stdoutpipe, stderrpipe bool - - // stdinPipeWriter is non-nil if StdinPipe has not been called - // and Stdin was specified by the user; it is the write end of - // a pipe connecting Session.Stdin to the stdin channel. - stdinPipeWriter io.WriteCloser - - exitStatus chan error -} - -// SendRequest sends an out-of-band channel request on the SSH channel -// underlying the session. -func (s *Session) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { - return s.ch.SendRequest(name, wantReply, payload) -} - -func (s *Session) Close() error { - return s.ch.Close() -} - -// RFC 4254 Section 6.4. -type setenvRequest struct { - Name string - Value string -} - -// Setenv sets an environment variable that will be applied to any -// command executed by Shell or Run. -func (s *Session) Setenv(name, value string) error { - msg := setenvRequest{ - Name: name, - Value: value, - } - ok, err := s.ch.SendRequest("env", true, Marshal(&msg)) - if err == nil && !ok { - err = errors.New("ssh: setenv failed") - } - return err -} - -// RFC 4254 Section 6.2. -type ptyRequestMsg struct { - Term string - Columns uint32 - Rows uint32 - Width uint32 - Height uint32 - Modelist string -} - -// RequestPty requests the association of a pty with the session on the remote host. -func (s *Session) RequestPty(term string, h, w int, termmodes TerminalModes) error { - var tm []byte - for k, v := range termmodes { - kv := struct { - Key byte - Val uint32 - }{k, v} - - tm = append(tm, Marshal(&kv)...) - } - tm = append(tm, tty_OP_END) - req := ptyRequestMsg{ - Term: term, - Columns: uint32(w), - Rows: uint32(h), - Width: uint32(w * 8), - Height: uint32(h * 8), - Modelist: string(tm), - } - ok, err := s.ch.SendRequest("pty-req", true, Marshal(&req)) - if err == nil && !ok { - err = errors.New("ssh: pty-req failed") - } - return err -} - -// RFC 4254 Section 6.5. -type subsystemRequestMsg struct { - Subsystem string -} - -// RequestSubsystem requests the association of a subsystem with the session on the remote host. -// A subsystem is a predefined command that runs in the background when the ssh session is initiated -func (s *Session) RequestSubsystem(subsystem string) error { - msg := subsystemRequestMsg{ - Subsystem: subsystem, - } - ok, err := s.ch.SendRequest("subsystem", true, Marshal(&msg)) - if err == nil && !ok { - err = errors.New("ssh: subsystem request failed") - } - return err -} - -// RFC 4254 Section 6.9. -type signalMsg struct { - Signal string -} - -// Signal sends the given signal to the remote process. -// sig is one of the SIG* constants. -func (s *Session) Signal(sig Signal) error { - msg := signalMsg{ - Signal: string(sig), - } - - _, err := s.ch.SendRequest("signal", false, Marshal(&msg)) - return err -} - -// RFC 4254 Section 6.5. -type execMsg struct { - Command string -} - -// Start runs cmd on the remote host. Typically, the remote -// server passes cmd to the shell for interpretation. -// A Session only accepts one call to Run, Start or Shell. -func (s *Session) Start(cmd string) error { - if s.started { - return errors.New("ssh: session already started") - } - req := execMsg{ - Command: cmd, - } - - ok, err := s.ch.SendRequest("exec", true, Marshal(&req)) - if err == nil && !ok { - err = fmt.Errorf("ssh: command %v failed", cmd) - } - if err != nil { - return err - } - return s.start() -} - -// Run runs cmd on the remote host. Typically, the remote -// server passes cmd to the shell for interpretation. -// A Session only accepts one call to Run, Start, Shell, Output, -// or CombinedOutput. -// -// The returned error is nil if the command runs, has no problems -// copying stdin, stdout, and stderr, and exits with a zero exit -// status. -// -// If the remote server does not send an exit status, an error of type -// *ExitMissingError is returned. If the command completes -// unsuccessfully or is interrupted by a signal, the error is of type -// *ExitError. Other error types may be returned for I/O problems. -func (s *Session) Run(cmd string) error { - err := s.Start(cmd) - if err != nil { - return err - } - return s.Wait() -} - -// Output runs cmd on the remote host and returns its standard output. -func (s *Session) Output(cmd string) ([]byte, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - var b bytes.Buffer - s.Stdout = &b - err := s.Run(cmd) - return b.Bytes(), err -} - -type singleWriter struct { - b bytes.Buffer - mu sync.Mutex -} - -func (w *singleWriter) Write(p []byte) (int, error) { - w.mu.Lock() - defer w.mu.Unlock() - return w.b.Write(p) -} - -// CombinedOutput runs cmd on the remote host and returns its combined -// standard output and standard error. -func (s *Session) CombinedOutput(cmd string) ([]byte, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - if s.Stderr != nil { - return nil, errors.New("ssh: Stderr already set") - } - var b singleWriter - s.Stdout = &b - s.Stderr = &b - err := s.Run(cmd) - return b.b.Bytes(), err -} - -// Shell starts a login shell on the remote host. A Session only -// accepts one call to Run, Start, Shell, Output, or CombinedOutput. -func (s *Session) Shell() error { - if s.started { - return errors.New("ssh: session already started") - } - - ok, err := s.ch.SendRequest("shell", true, nil) - if err == nil && !ok { - return errors.New("ssh: could not start shell") - } - if err != nil { - return err - } - return s.start() -} - -func (s *Session) start() error { - s.started = true - - type F func(*Session) - for _, setupFd := range []F{(*Session).stdin, (*Session).stdout, (*Session).stderr} { - setupFd(s) - } - - s.errors = make(chan error, len(s.copyFuncs)) - for _, fn := range s.copyFuncs { - go func(fn func() error) { - s.errors <- fn() - }(fn) - } - return nil -} - -// Wait waits for the remote command to exit. -// -// The returned error is nil if the command runs, has no problems -// copying stdin, stdout, and stderr, and exits with a zero exit -// status. -// -// If the remote server does not send an exit status, an error of type -// *ExitMissingError is returned. If the command completes -// unsuccessfully or is interrupted by a signal, the error is of type -// *ExitError. Other error types may be returned for I/O problems. -func (s *Session) Wait() error { - if !s.started { - return errors.New("ssh: session not started") - } - waitErr := <-s.exitStatus - - if s.stdinPipeWriter != nil { - s.stdinPipeWriter.Close() - } - var copyError error - for _ = range s.copyFuncs { - if err := <-s.errors; err != nil && copyError == nil { - copyError = err - } - } - if waitErr != nil { - return waitErr - } - return copyError -} - -func (s *Session) wait(reqs <-chan *Request) error { - wm := Waitmsg{status: -1} - // Wait for msg channel to be closed before returning. - for msg := range reqs { - switch msg.Type { - case "exit-status": - wm.status = int(binary.BigEndian.Uint32(msg.Payload)) - case "exit-signal": - var sigval struct { - Signal string - CoreDumped bool - Error string - Lang string - } - if err := Unmarshal(msg.Payload, &sigval); err != nil { - return err - } - - // Must sanitize strings? - wm.signal = sigval.Signal - wm.msg = sigval.Error - wm.lang = sigval.Lang - default: - // This handles keepalives and matches - // OpenSSH's behaviour. - if msg.WantReply { - msg.Reply(false, nil) - } - } - } - if wm.status == 0 { - return nil - } - if wm.status == -1 { - // exit-status was never sent from server - if wm.signal == "" { - // signal was not sent either. RFC 4254 - // section 6.10 recommends against this - // behavior, but it is allowed, so we let - // clients handle it. - return &ExitMissingError{} - } - wm.status = 128 - if _, ok := signals[Signal(wm.signal)]; ok { - wm.status += signals[Signal(wm.signal)] - } - } - - return &ExitError{wm} -} - -// ExitMissingError is returned if a session is torn down cleanly, but -// the server sends no confirmation of the exit status. -type ExitMissingError struct{} - -func (e *ExitMissingError) Error() string { - return "wait: remote command exited without exit status or exit signal" -} - -func (s *Session) stdin() { - if s.stdinpipe { - return - } - var stdin io.Reader - if s.Stdin == nil { - stdin = new(bytes.Buffer) - } else { - r, w := io.Pipe() - go func() { - _, err := io.Copy(w, s.Stdin) - w.CloseWithError(err) - }() - stdin, s.stdinPipeWriter = r, w - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.ch, stdin) - if err1 := s.ch.CloseWrite(); err == nil && err1 != io.EOF { - err = err1 - } - return err - }) -} - -func (s *Session) stdout() { - if s.stdoutpipe { - return - } - if s.Stdout == nil { - s.Stdout = ioutil.Discard - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.Stdout, s.ch) - return err - }) -} - -func (s *Session) stderr() { - if s.stderrpipe { - return - } - if s.Stderr == nil { - s.Stderr = ioutil.Discard - } - s.copyFuncs = append(s.copyFuncs, func() error { - _, err := io.Copy(s.Stderr, s.ch.Stderr()) - return err - }) -} - -// sessionStdin reroutes Close to CloseWrite. -type sessionStdin struct { - io.Writer - ch Channel -} - -func (s *sessionStdin) Close() error { - return s.ch.CloseWrite() -} - -// StdinPipe returns a pipe that will be connected to the -// remote command's standard input when the command starts. -func (s *Session) StdinPipe() (io.WriteCloser, error) { - if s.Stdin != nil { - return nil, errors.New("ssh: Stdin already set") - } - if s.started { - return nil, errors.New("ssh: StdinPipe after process started") - } - s.stdinpipe = true - return &sessionStdin{s.ch, s.ch}, nil -} - -// StdoutPipe returns a pipe that will be connected to the -// remote command's standard output when the command starts. -// There is a fixed amount of buffering that is shared between -// stdout and stderr streams. If the StdoutPipe reader is -// not serviced fast enough it may eventually cause the -// remote command to block. -func (s *Session) StdoutPipe() (io.Reader, error) { - if s.Stdout != nil { - return nil, errors.New("ssh: Stdout already set") - } - if s.started { - return nil, errors.New("ssh: StdoutPipe after process started") - } - s.stdoutpipe = true - return s.ch, nil -} - -// StderrPipe returns a pipe that will be connected to the -// remote command's standard error when the command starts. -// There is a fixed amount of buffering that is shared between -// stdout and stderr streams. If the StderrPipe reader is -// not serviced fast enough it may eventually cause the -// remote command to block. -func (s *Session) StderrPipe() (io.Reader, error) { - if s.Stderr != nil { - return nil, errors.New("ssh: Stderr already set") - } - if s.started { - return nil, errors.New("ssh: StderrPipe after process started") - } - s.stderrpipe = true - return s.ch.Stderr(), nil -} - -// newSession returns a new interactive session on the remote host. -func newSession(ch Channel, reqs <-chan *Request) (*Session, error) { - s := &Session{ - ch: ch, - } - s.exitStatus = make(chan error, 1) - go func() { - s.exitStatus <- s.wait(reqs) - }() - - return s, nil -} - -// An ExitError reports unsuccessful completion of a remote command. -type ExitError struct { - Waitmsg -} - -func (e *ExitError) Error() string { - return e.Waitmsg.String() -} - -// Waitmsg stores the information about an exited remote command -// as reported by Wait. -type Waitmsg struct { - status int - signal string - msg string - lang string -} - -// ExitStatus returns the exit status of the remote command. -func (w Waitmsg) ExitStatus() int { - return w.status -} - -// Signal returns the exit signal of the remote command if -// it was terminated violently. -func (w Waitmsg) Signal() string { - return w.signal -} - -// Msg returns the exit message given by the remote command -func (w Waitmsg) Msg() string { - return w.msg -} - -// Lang returns the language tag. See RFC 3066 -func (w Waitmsg) Lang() string { - return w.lang -} - -func (w Waitmsg) String() string { - str := fmt.Sprintf("Process exited with status %v", w.status) - if w.signal != "" { - str += fmt.Sprintf(" from signal %v", w.signal) - } - if w.msg != "" { - str += fmt.Sprintf(". Reason was: %v", w.msg) - } - return str -} diff --git a/vendor/golang.org/x/crypto/ssh/session_test.go b/vendor/golang.org/x/crypto/ssh/session_test.go deleted file mode 100644 index f35a378..0000000 --- a/vendor/golang.org/x/crypto/ssh/session_test.go +++ /dev/null @@ -1,770 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -// Session tests. - -import ( - "bytes" - crypto_rand "crypto/rand" - "errors" - "io" - "io/ioutil" - "math/rand" - "net" - "testing" - - "golang.org/x/crypto/ssh/terminal" -) - -type serverType func(Channel, <-chan *Request, *testing.T) - -// dial constructs a new test server and returns a *ClientConn. -func dial(handler serverType, t *testing.T) *Client { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - - go func() { - defer c1.Close() - conf := ServerConfig{ - NoClientAuth: true, - } - conf.AddHostKey(testSigners["rsa"]) - - _, chans, reqs, err := NewServerConn(c1, &conf) - if err != nil { - t.Fatalf("Unable to handshake: %v", err) - } - go DiscardRequests(reqs) - - for newCh := range chans { - if newCh.ChannelType() != "session" { - newCh.Reject(UnknownChannelType, "unknown channel type") - continue - } - - ch, inReqs, err := newCh.Accept() - if err != nil { - t.Errorf("Accept: %v", err) - continue - } - go func() { - handler(ch, inReqs, t) - }() - } - }() - - config := &ClientConfig{ - User: "testuser", - } - - conn, chans, reqs, err := NewClientConn(c2, "", config) - if err != nil { - t.Fatalf("unable to dial remote side: %v", err) - } - - return NewClient(conn, chans, reqs) -} - -// Test a simple string is returned to session.Stdout. -func TestSessionShell(t *testing.T) { - conn := dial(shellHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - stdout := new(bytes.Buffer) - session.Stdout = stdout - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %s", err) - } - if err := session.Wait(); err != nil { - t.Fatalf("Remote command did not exit cleanly: %v", err) - } - actual := stdout.String() - if actual != "golang" { - t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) - } -} - -// TODO(dfc) add support for Std{in,err}Pipe when the Server supports it. - -// Test a simple string is returned via StdoutPipe. -func TestSessionStdoutPipe(t *testing.T) { - conn := dial(shellHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("Unable to request StdoutPipe(): %v", err) - } - var buf bytes.Buffer - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - done := make(chan bool, 1) - go func() { - if _, err := io.Copy(&buf, stdout); err != nil { - t.Errorf("Copy of stdout failed: %v", err) - } - done <- true - }() - if err := session.Wait(); err != nil { - t.Fatalf("Remote command did not exit cleanly: %v", err) - } - <-done - actual := buf.String() - if actual != "golang" { - t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) - } -} - -// Test that a simple string is returned via the Output helper, -// and that stderr is discarded. -func TestSessionOutput(t *testing.T) { - conn := dial(fixedOutputHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - - buf, err := session.Output("") // cmd is ignored by fixedOutputHandler - if err != nil { - t.Error("Remote command did not exit cleanly:", err) - } - w := "this-is-stdout." - g := string(buf) - if g != w { - t.Error("Remote command did not return expected string:") - t.Logf("want %q", w) - t.Logf("got %q", g) - } -} - -// Test that both stdout and stderr are returned -// via the CombinedOutput helper. -func TestSessionCombinedOutput(t *testing.T) { - conn := dial(fixedOutputHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - - buf, err := session.CombinedOutput("") // cmd is ignored by fixedOutputHandler - if err != nil { - t.Error("Remote command did not exit cleanly:", err) - } - const stdout = "this-is-stdout." - const stderr = "this-is-stderr." - g := string(buf) - if g != stdout+stderr && g != stderr+stdout { - t.Error("Remote command did not return expected string:") - t.Logf("want %q, or %q", stdout+stderr, stderr+stdout) - t.Logf("got %q", g) - } -} - -// Test non-0 exit status is returned correctly. -func TestExitStatusNonZero(t *testing.T) { - conn := dial(exitStatusNonZeroHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.ExitStatus() != 15 { - t.Fatalf("expected command to exit with 15 but got %v", e.ExitStatus()) - } -} - -// Test 0 exit status is returned correctly. -func TestExitStatusZero(t *testing.T) { - conn := dial(exitStatusZeroHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err != nil { - t.Fatalf("expected nil but got %v", err) - } -} - -// Test exit signal and status are both returned correctly. -func TestExitSignalAndStatus(t *testing.T) { - conn := dial(exitSignalAndStatusHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.Signal() != "TERM" || e.ExitStatus() != 15 { - t.Fatalf("expected command to exit with signal TERM and status 15 but got signal %s and status %v", e.Signal(), e.ExitStatus()) - } -} - -// Test exit signal and status are both returned correctly. -func TestKnownExitSignalOnly(t *testing.T) { - conn := dial(exitSignalHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.Signal() != "TERM" || e.ExitStatus() != 143 { - t.Fatalf("expected command to exit with signal TERM and status 143 but got signal %s and status %v", e.Signal(), e.ExitStatus()) - } -} - -// Test exit signal and status are both returned correctly. -func TestUnknownExitSignal(t *testing.T) { - conn := dial(exitSignalUnknownHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - e, ok := err.(*ExitError) - if !ok { - t.Fatalf("expected *ExitError but got %T", err) - } - if e.Signal() != "SYS" || e.ExitStatus() != 128 { - t.Fatalf("expected command to exit with signal SYS and status 128 but got signal %s and status %v", e.Signal(), e.ExitStatus()) - } -} - -func TestExitWithoutStatusOrSignal(t *testing.T) { - conn := dial(exitWithoutSignalOrStatus, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatalf("Unable to request new session: %v", err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err == nil { - t.Fatalf("expected command to fail but it didn't") - } - if _, ok := err.(*ExitMissingError); !ok { - t.Fatalf("got %T want *ExitMissingError", err) - } -} - -// windowTestBytes is the number of bytes that we'll send to the SSH server. -const windowTestBytes = 16000 * 200 - -// TestServerWindow writes random data to the server. The server is expected to echo -// the same data back, which is compared against the original. -func TestServerWindow(t *testing.T) { - origBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) - io.CopyN(origBuf, crypto_rand.Reader, windowTestBytes) - origBytes := origBuf.Bytes() - - conn := dial(echoHandler, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatal(err) - } - defer session.Close() - result := make(chan []byte) - - go func() { - defer close(result) - echoedBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) - serverStdout, err := session.StdoutPipe() - if err != nil { - t.Errorf("StdoutPipe failed: %v", err) - return - } - n, err := copyNRandomly("stdout", echoedBuf, serverStdout, windowTestBytes) - if err != nil && err != io.EOF { - t.Errorf("Read only %d bytes from server, expected %d: %v", n, windowTestBytes, err) - } - result <- echoedBuf.Bytes() - }() - - serverStdin, err := session.StdinPipe() - if err != nil { - t.Fatalf("StdinPipe failed: %v", err) - } - written, err := copyNRandomly("stdin", serverStdin, origBuf, windowTestBytes) - if err != nil { - t.Fatalf("failed to copy origBuf to serverStdin: %v", err) - } - if written != windowTestBytes { - t.Fatalf("Wrote only %d of %d bytes to server", written, windowTestBytes) - } - - echoedBytes := <-result - - if !bytes.Equal(origBytes, echoedBytes) { - t.Fatalf("Echoed buffer differed from original, orig %d, echoed %d", len(origBytes), len(echoedBytes)) - } -} - -// Verify the client can handle a keepalive packet from the server. -func TestClientHandlesKeepalives(t *testing.T) { - conn := dial(channelKeepaliveSender, t) - defer conn.Close() - session, err := conn.NewSession() - if err != nil { - t.Fatal(err) - } - defer session.Close() - if err := session.Shell(); err != nil { - t.Fatalf("Unable to execute command: %v", err) - } - err = session.Wait() - if err != nil { - t.Fatalf("expected nil but got: %v", err) - } -} - -type exitStatusMsg struct { - Status uint32 -} - -type exitSignalMsg struct { - Signal string - CoreDumped bool - Errmsg string - Lang string -} - -func handleTerminalRequests(in <-chan *Request) { - for req := range in { - ok := false - switch req.Type { - case "shell": - ok = true - if len(req.Payload) > 0 { - // We don't accept any commands, only the default shell. - ok = false - } - case "env": - ok = true - } - req.Reply(ok, nil) - } -} - -func newServerShell(ch Channel, in <-chan *Request, prompt string) *terminal.Terminal { - term := terminal.NewTerminal(ch, prompt) - go handleTerminalRequests(in) - return term -} - -func exitStatusZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - // this string is returned to stdout - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendStatus(0, ch, t) -} - -func exitStatusNonZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendStatus(15, ch, t) -} - -func exitSignalAndStatusHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendStatus(15, ch, t) - sendSignal("TERM", ch, t) -} - -func exitSignalHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendSignal("TERM", ch, t) -} - -func exitSignalUnknownHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - sendSignal("SYS", ch, t) -} - -func exitWithoutSignalOrStatus(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) -} - -func shellHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - // this string is returned to stdout - shell := newServerShell(ch, in, "golang") - readLine(shell, t) - sendStatus(0, ch, t) -} - -// Ignores the command, writes fixed strings to stderr and stdout. -// Strings are "this-is-stdout." and "this-is-stderr.". -func fixedOutputHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - _, err := ch.Read(nil) - - req, ok := <-in - if !ok { - t.Fatalf("error: expected channel request, got: %#v", err) - return - } - - // ignore request, always send some text - req.Reply(true, nil) - - _, err = io.WriteString(ch, "this-is-stdout.") - if err != nil { - t.Fatalf("error writing on server: %v", err) - } - _, err = io.WriteString(ch.Stderr(), "this-is-stderr.") - if err != nil { - t.Fatalf("error writing on server: %v", err) - } - sendStatus(0, ch, t) -} - -func readLine(shell *terminal.Terminal, t *testing.T) { - if _, err := shell.ReadLine(); err != nil && err != io.EOF { - t.Errorf("unable to read line: %v", err) - } -} - -func sendStatus(status uint32, ch Channel, t *testing.T) { - msg := exitStatusMsg{ - Status: status, - } - if _, err := ch.SendRequest("exit-status", false, Marshal(&msg)); err != nil { - t.Errorf("unable to send status: %v", err) - } -} - -func sendSignal(signal string, ch Channel, t *testing.T) { - sig := exitSignalMsg{ - Signal: signal, - CoreDumped: false, - Errmsg: "Process terminated", - Lang: "en-GB-oed", - } - if _, err := ch.SendRequest("exit-signal", false, Marshal(&sig)); err != nil { - t.Errorf("unable to send signal: %v", err) - } -} - -func discardHandler(ch Channel, t *testing.T) { - defer ch.Close() - io.Copy(ioutil.Discard, ch) -} - -func echoHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - if n, err := copyNRandomly("echohandler", ch, ch, windowTestBytes); err != nil { - t.Errorf("short write, wrote %d, expected %d: %v ", n, windowTestBytes, err) - } -} - -// copyNRandomly copies n bytes from src to dst. It uses a variable, and random, -// buffer size to exercise more code paths. -func copyNRandomly(title string, dst io.Writer, src io.Reader, n int) (int, error) { - var ( - buf = make([]byte, 32*1024) - written int - remaining = n - ) - for remaining > 0 { - l := rand.Intn(1 << 15) - if remaining < l { - l = remaining - } - nr, er := src.Read(buf[:l]) - nw, ew := dst.Write(buf[:nr]) - remaining -= nw - written += nw - if ew != nil { - return written, ew - } - if nr != nw { - return written, io.ErrShortWrite - } - if er != nil && er != io.EOF { - return written, er - } - } - return written, nil -} - -func channelKeepaliveSender(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - shell := newServerShell(ch, in, "> ") - readLine(shell, t) - if _, err := ch.SendRequest("keepalive@openssh.com", true, nil); err != nil { - t.Errorf("unable to send channel keepalive request: %v", err) - } - sendStatus(0, ch, t) -} - -func TestClientWriteEOF(t *testing.T) { - conn := dial(simpleEchoHandler, t) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatal(err) - } - defer session.Close() - stdin, err := session.StdinPipe() - if err != nil { - t.Fatalf("StdinPipe failed: %v", err) - } - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("StdoutPipe failed: %v", err) - } - - data := []byte(`0000`) - _, err = stdin.Write(data) - if err != nil { - t.Fatalf("Write failed: %v", err) - } - stdin.Close() - - res, err := ioutil.ReadAll(stdout) - if err != nil { - t.Fatalf("Read failed: %v", err) - } - - if !bytes.Equal(data, res) { - t.Fatalf("Read differed from write, wrote: %v, read: %v", data, res) - } -} - -func simpleEchoHandler(ch Channel, in <-chan *Request, t *testing.T) { - defer ch.Close() - data, err := ioutil.ReadAll(ch) - if err != nil { - t.Errorf("handler read error: %v", err) - } - _, err = ch.Write(data) - if err != nil { - t.Errorf("handler write error: %v", err) - } -} - -func TestSessionID(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - serverID := make(chan []byte, 1) - clientID := make(chan []byte, 1) - - serverConf := &ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["ecdsa"]) - clientConf := &ClientConfig{ - User: "user", - } - - go func() { - conn, chans, reqs, err := NewServerConn(c1, serverConf) - if err != nil { - t.Fatalf("server handshake: %v", err) - } - serverID <- conn.SessionID() - go DiscardRequests(reqs) - for ch := range chans { - ch.Reject(Prohibited, "") - } - }() - - go func() { - conn, chans, reqs, err := NewClientConn(c2, "", clientConf) - if err != nil { - t.Fatalf("client handshake: %v", err) - } - clientID <- conn.SessionID() - go DiscardRequests(reqs) - for ch := range chans { - ch.Reject(Prohibited, "") - } - }() - - s := <-serverID - c := <-clientID - if bytes.Compare(s, c) != 0 { - t.Errorf("server session ID (%x) != client session ID (%x)", s, c) - } else if len(s) == 0 { - t.Errorf("client and server SessionID were empty.") - } -} - -type noReadConn struct { - readSeen bool - net.Conn -} - -func (c *noReadConn) Close() error { - return nil -} - -func (c *noReadConn) Read(b []byte) (int, error) { - c.readSeen = true - return 0, errors.New("noReadConn error") -} - -func TestInvalidServerConfiguration(t *testing.T) { - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - serveConn := noReadConn{Conn: c1} - serverConf := &ServerConfig{} - - NewServerConn(&serveConn, serverConf) - if serveConn.readSeen { - t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing host key") - } - - serverConf.AddHostKey(testSigners["ecdsa"]) - - NewServerConn(&serveConn, serverConf) - if serveConn.readSeen { - t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing authentication method") - } -} - -func TestHostKeyAlgorithms(t *testing.T) { - serverConf := &ServerConfig{ - NoClientAuth: true, - } - serverConf.AddHostKey(testSigners["rsa"]) - serverConf.AddHostKey(testSigners["ecdsa"]) - - connect := func(clientConf *ClientConfig, want string) { - var alg string - clientConf.HostKeyCallback = func(h string, a net.Addr, key PublicKey) error { - alg = key.Type() - return nil - } - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewServerConn(c1, serverConf) - _, _, _, err = NewClientConn(c2, "", clientConf) - if err != nil { - t.Fatalf("NewClientConn: %v", err) - } - if alg != want { - t.Errorf("selected key algorithm %s, want %s", alg, want) - } - } - - // By default, we get the preferred algorithm, which is ECDSA 256. - - clientConf := &ClientConfig{} - connect(clientConf, KeyAlgoECDSA256) - - // Client asks for RSA explicitly. - clientConf.HostKeyAlgorithms = []string{KeyAlgoRSA} - connect(clientConf, KeyAlgoRSA) - - c1, c2, err := netPipe() - if err != nil { - t.Fatalf("netPipe: %v", err) - } - defer c1.Close() - defer c2.Close() - - go NewServerConn(c1, serverConf) - clientConf.HostKeyAlgorithms = []string{"nonexistent-hostkey-algo"} - _, _, _, err = NewClientConn(c2, "", clientConf) - if err == nil { - t.Fatal("succeeded connecting with unknown hostkey algorithm") - } -} diff --git a/vendor/golang.org/x/crypto/ssh/tcpip.go b/vendor/golang.org/x/crypto/ssh/tcpip.go deleted file mode 100644 index 6151241..0000000 --- a/vendor/golang.org/x/crypto/ssh/tcpip.go +++ /dev/null @@ -1,407 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "errors" - "fmt" - "io" - "math/rand" - "net" - "strconv" - "strings" - "sync" - "time" -) - -// Listen requests the remote peer open a listening socket on -// addr. Incoming connections will be available by calling Accept on -// the returned net.Listener. The listener must be serviced, or the -// SSH connection may hang. -func (c *Client) Listen(n, addr string) (net.Listener, error) { - laddr, err := net.ResolveTCPAddr(n, addr) - if err != nil { - return nil, err - } - return c.ListenTCP(laddr) -} - -// Automatic port allocation is broken with OpenSSH before 6.0. See -// also https://bugzilla.mindrot.org/show_bug.cgi?id=2017. In -// particular, OpenSSH 5.9 sends a channelOpenMsg with port number 0, -// rather than the actual port number. This means you can never open -// two different listeners with auto allocated ports. We work around -// this by trying explicit ports until we succeed. - -const openSSHPrefix = "OpenSSH_" - -var portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano())) - -// isBrokenOpenSSHVersion returns true if the given version string -// specifies a version of OpenSSH that is known to have a bug in port -// forwarding. -func isBrokenOpenSSHVersion(versionStr string) bool { - i := strings.Index(versionStr, openSSHPrefix) - if i < 0 { - return false - } - i += len(openSSHPrefix) - j := i - for ; j < len(versionStr); j++ { - if versionStr[j] < '0' || versionStr[j] > '9' { - break - } - } - version, _ := strconv.Atoi(versionStr[i:j]) - return version < 6 -} - -// autoPortListenWorkaround simulates automatic port allocation by -// trying random ports repeatedly. -func (c *Client) autoPortListenWorkaround(laddr *net.TCPAddr) (net.Listener, error) { - var sshListener net.Listener - var err error - const tries = 10 - for i := 0; i < tries; i++ { - addr := *laddr - addr.Port = 1024 + portRandomizer.Intn(60000) - sshListener, err = c.ListenTCP(&addr) - if err == nil { - laddr.Port = addr.Port - return sshListener, err - } - } - return nil, fmt.Errorf("ssh: listen on random port failed after %d tries: %v", tries, err) -} - -// RFC 4254 7.1 -type channelForwardMsg struct { - addr string - rport uint32 -} - -// ListenTCP requests the remote peer open a listening socket -// on laddr. Incoming connections will be available by calling -// Accept on the returned net.Listener. -func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { - if laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) { - return c.autoPortListenWorkaround(laddr) - } - - m := channelForwardMsg{ - laddr.IP.String(), - uint32(laddr.Port), - } - // send message - ok, resp, err := c.SendRequest("tcpip-forward", true, Marshal(&m)) - if err != nil { - return nil, err - } - if !ok { - return nil, errors.New("ssh: tcpip-forward request denied by peer") - } - - // If the original port was 0, then the remote side will - // supply a real port number in the response. - if laddr.Port == 0 { - var p struct { - Port uint32 - } - if err := Unmarshal(resp, &p); err != nil { - return nil, err - } - laddr.Port = int(p.Port) - } - - // Register this forward, using the port number we obtained. - ch := c.forwards.add(*laddr) - - return &tcpListener{laddr, c, ch}, nil -} - -// forwardList stores a mapping between remote -// forward requests and the tcpListeners. -type forwardList struct { - sync.Mutex - entries []forwardEntry -} - -// forwardEntry represents an established mapping of a laddr on a -// remote ssh server to a channel connected to a tcpListener. -type forwardEntry struct { - laddr net.TCPAddr - c chan forward -} - -// forward represents an incoming forwarded tcpip connection. The -// arguments to add/remove/lookup should be address as specified in -// the original forward-request. -type forward struct { - newCh NewChannel // the ssh client channel underlying this forward - raddr *net.TCPAddr // the raddr of the incoming connection -} - -func (l *forwardList) add(addr net.TCPAddr) chan forward { - l.Lock() - defer l.Unlock() - f := forwardEntry{ - addr, - make(chan forward, 1), - } - l.entries = append(l.entries, f) - return f.c -} - -// See RFC 4254, section 7.2 -type forwardedTCPPayload struct { - Addr string - Port uint32 - OriginAddr string - OriginPort uint32 -} - -// parseTCPAddr parses the originating address from the remote into a *net.TCPAddr. -func parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) { - if port == 0 || port > 65535 { - return nil, fmt.Errorf("ssh: port number out of range: %d", port) - } - ip := net.ParseIP(string(addr)) - if ip == nil { - return nil, fmt.Errorf("ssh: cannot parse IP address %q", addr) - } - return &net.TCPAddr{IP: ip, Port: int(port)}, nil -} - -func (l *forwardList) handleChannels(in <-chan NewChannel) { - for ch := range in { - var payload forwardedTCPPayload - if err := Unmarshal(ch.ExtraData(), &payload); err != nil { - ch.Reject(ConnectionFailed, "could not parse forwarded-tcpip payload: "+err.Error()) - continue - } - - // RFC 4254 section 7.2 specifies that incoming - // addresses should list the address, in string - // format. It is implied that this should be an IP - // address, as it would be impossible to connect to it - // otherwise. - laddr, err := parseTCPAddr(payload.Addr, payload.Port) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } - raddr, err := parseTCPAddr(payload.OriginAddr, payload.OriginPort) - if err != nil { - ch.Reject(ConnectionFailed, err.Error()) - continue - } - - if ok := l.forward(*laddr, *raddr, ch); !ok { - // Section 7.2, implementations MUST reject spurious incoming - // connections. - ch.Reject(Prohibited, "no forward for address") - continue - } - } -} - -// remove removes the forward entry, and the channel feeding its -// listener. -func (l *forwardList) remove(addr net.TCPAddr) { - l.Lock() - defer l.Unlock() - for i, f := range l.entries { - if addr.IP.Equal(f.laddr.IP) && addr.Port == f.laddr.Port { - l.entries = append(l.entries[:i], l.entries[i+1:]...) - close(f.c) - return - } - } -} - -// closeAll closes and clears all forwards. -func (l *forwardList) closeAll() { - l.Lock() - defer l.Unlock() - for _, f := range l.entries { - close(f.c) - } - l.entries = nil -} - -func (l *forwardList) forward(laddr, raddr net.TCPAddr, ch NewChannel) bool { - l.Lock() - defer l.Unlock() - for _, f := range l.entries { - if laddr.IP.Equal(f.laddr.IP) && laddr.Port == f.laddr.Port { - f.c <- forward{ch, &raddr} - return true - } - } - return false -} - -type tcpListener struct { - laddr *net.TCPAddr - - conn *Client - in <-chan forward -} - -// Accept waits for and returns the next connection to the listener. -func (l *tcpListener) Accept() (net.Conn, error) { - s, ok := <-l.in - if !ok { - return nil, io.EOF - } - ch, incoming, err := s.newCh.Accept() - if err != nil { - return nil, err - } - go DiscardRequests(incoming) - - return &tcpChanConn{ - Channel: ch, - laddr: l.laddr, - raddr: s.raddr, - }, nil -} - -// Close closes the listener. -func (l *tcpListener) Close() error { - m := channelForwardMsg{ - l.laddr.IP.String(), - uint32(l.laddr.Port), - } - - // this also closes the listener. - l.conn.forwards.remove(*l.laddr) - ok, _, err := l.conn.SendRequest("cancel-tcpip-forward", true, Marshal(&m)) - if err == nil && !ok { - err = errors.New("ssh: cancel-tcpip-forward failed") - } - return err -} - -// Addr returns the listener's network address. -func (l *tcpListener) Addr() net.Addr { - return l.laddr -} - -// Dial initiates a connection to the addr from the remote host. -// The resulting connection has a zero LocalAddr() and RemoteAddr(). -func (c *Client) Dial(n, addr string) (net.Conn, error) { - // Parse the address into host and numeric port. - host, portString, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - port, err := strconv.ParseUint(portString, 10, 16) - if err != nil { - return nil, err - } - // Use a zero address for local and remote address. - zeroAddr := &net.TCPAddr{ - IP: net.IPv4zero, - Port: 0, - } - ch, err := c.dial(net.IPv4zero.String(), 0, host, int(port)) - if err != nil { - return nil, err - } - return &tcpChanConn{ - Channel: ch, - laddr: zeroAddr, - raddr: zeroAddr, - }, nil -} - -// DialTCP connects to the remote address raddr on the network net, -// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used -// as the local address for the connection. -func (c *Client) DialTCP(n string, laddr, raddr *net.TCPAddr) (net.Conn, error) { - if laddr == nil { - laddr = &net.TCPAddr{ - IP: net.IPv4zero, - Port: 0, - } - } - ch, err := c.dial(laddr.IP.String(), laddr.Port, raddr.IP.String(), raddr.Port) - if err != nil { - return nil, err - } - return &tcpChanConn{ - Channel: ch, - laddr: laddr, - raddr: raddr, - }, nil -} - -// RFC 4254 7.2 -type channelOpenDirectMsg struct { - raddr string - rport uint32 - laddr string - lport uint32 -} - -func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel, error) { - msg := channelOpenDirectMsg{ - raddr: raddr, - rport: uint32(rport), - laddr: laddr, - lport: uint32(lport), - } - ch, in, err := c.OpenChannel("direct-tcpip", Marshal(&msg)) - if err != nil { - return nil, err - } - go DiscardRequests(in) - return ch, err -} - -type tcpChan struct { - Channel // the backing channel -} - -// tcpChanConn fulfills the net.Conn interface without -// the tcpChan having to hold laddr or raddr directly. -type tcpChanConn struct { - Channel - laddr, raddr net.Addr -} - -// LocalAddr returns the local network address. -func (t *tcpChanConn) LocalAddr() net.Addr { - return t.laddr -} - -// RemoteAddr returns the remote network address. -func (t *tcpChanConn) RemoteAddr() net.Addr { - return t.raddr -} - -// SetDeadline sets the read and write deadlines associated -// with the connection. -func (t *tcpChanConn) SetDeadline(deadline time.Time) error { - if err := t.SetReadDeadline(deadline); err != nil { - return err - } - return t.SetWriteDeadline(deadline) -} - -// SetReadDeadline sets the read deadline. -// A zero value for t means Read will not time out. -// After the deadline, the error from Read will implement net.Error -// with Timeout() == true. -func (t *tcpChanConn) SetReadDeadline(deadline time.Time) error { - return errors.New("ssh: tcpChan: deadline not supported") -} - -// SetWriteDeadline exists to satisfy the net.Conn interface -// but is not implemented by this type. It always returns an error. -func (t *tcpChanConn) SetWriteDeadline(deadline time.Time) error { - return errors.New("ssh: tcpChan: deadline not supported") -} diff --git a/vendor/golang.org/x/crypto/ssh/tcpip_test.go b/vendor/golang.org/x/crypto/ssh/tcpip_test.go deleted file mode 100644 index f1265cb..0000000 --- a/vendor/golang.org/x/crypto/ssh/tcpip_test.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "testing" -) - -func TestAutoPortListenBroken(t *testing.T) { - broken := "SSH-2.0-OpenSSH_5.9hh11" - works := "SSH-2.0-OpenSSH_6.1" - if !isBrokenOpenSSHVersion(broken) { - t.Errorf("version %q not marked as broken", broken) - } - if isBrokenOpenSSHVersion(works) { - t.Errorf("version %q marked as broken", works) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go deleted file mode 100644 index 5ea89a2..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go +++ /dev/null @@ -1,924 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package terminal - -import ( - "bytes" - "io" - "sync" - "unicode/utf8" -) - -// EscapeCodes contains escape sequences that can be written to the terminal in -// order to achieve different styles of text. -type EscapeCodes struct { - // Foreground colors - Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte - - // Reset all attributes - Reset []byte -} - -var vt100EscapeCodes = EscapeCodes{ - Black: []byte{keyEscape, '[', '3', '0', 'm'}, - Red: []byte{keyEscape, '[', '3', '1', 'm'}, - Green: []byte{keyEscape, '[', '3', '2', 'm'}, - Yellow: []byte{keyEscape, '[', '3', '3', 'm'}, - Blue: []byte{keyEscape, '[', '3', '4', 'm'}, - Magenta: []byte{keyEscape, '[', '3', '5', 'm'}, - Cyan: []byte{keyEscape, '[', '3', '6', 'm'}, - White: []byte{keyEscape, '[', '3', '7', 'm'}, - - Reset: []byte{keyEscape, '[', '0', 'm'}, -} - -// Terminal contains the state for running a VT100 terminal that is capable of -// reading lines of input. -type Terminal struct { - // AutoCompleteCallback, if non-null, is called for each keypress with - // the full input line and the current position of the cursor (in - // bytes, as an index into |line|). If it returns ok=false, the key - // press is processed normally. Otherwise it returns a replacement line - // and the new cursor position. - AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool) - - // Escape contains a pointer to the escape codes for this terminal. - // It's always a valid pointer, although the escape codes themselves - // may be empty if the terminal doesn't support them. - Escape *EscapeCodes - - // lock protects the terminal and the state in this object from - // concurrent processing of a key press and a Write() call. - lock sync.Mutex - - c io.ReadWriter - prompt []rune - - // line is the current line being entered. - line []rune - // pos is the logical position of the cursor in line - pos int - // echo is true if local echo is enabled - echo bool - // pasteActive is true iff there is a bracketed paste operation in - // progress. - pasteActive bool - - // cursorX contains the current X value of the cursor where the left - // edge is 0. cursorY contains the row number where the first row of - // the current line is 0. - cursorX, cursorY int - // maxLine is the greatest value of cursorY so far. - maxLine int - - termWidth, termHeight int - - // outBuf contains the terminal data to be sent. - outBuf []byte - // remainder contains the remainder of any partial key sequences after - // a read. It aliases into inBuf. - remainder []byte - inBuf [256]byte - - // history contains previously entered commands so that they can be - // accessed with the up and down keys. - history stRingBuffer - // historyIndex stores the currently accessed history entry, where zero - // means the immediately previous entry. - historyIndex int - // When navigating up and down the history it's possible to return to - // the incomplete, initial line. That value is stored in - // historyPending. - historyPending string -} - -// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is -// a local terminal, that terminal must first have been put into raw mode. -// prompt is a string that is written at the start of each input line (i.e. -// "> "). -func NewTerminal(c io.ReadWriter, prompt string) *Terminal { - return &Terminal{ - Escape: &vt100EscapeCodes, - c: c, - prompt: []rune(prompt), - termWidth: 80, - termHeight: 24, - echo: true, - historyIndex: -1, - } -} - -const ( - keyCtrlD = 4 - keyCtrlU = 21 - keyEnter = '\r' - keyEscape = 27 - keyBackspace = 127 - keyUnknown = 0xd800 /* UTF-16 surrogate area */ + iota - keyUp - keyDown - keyLeft - keyRight - keyAltLeft - keyAltRight - keyHome - keyEnd - keyDeleteWord - keyDeleteLine - keyClearScreen - keyPasteStart - keyPasteEnd -) - -var ( - crlf = []byte{'\r', '\n'} - pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'} - pasteEnd = []byte{keyEscape, '[', '2', '0', '1', '~'} -) - -// bytesToKey tries to parse a key sequence from b. If successful, it returns -// the key and the remainder of the input. Otherwise it returns utf8.RuneError. -func bytesToKey(b []byte, pasteActive bool) (rune, []byte) { - if len(b) == 0 { - return utf8.RuneError, nil - } - - if !pasteActive { - switch b[0] { - case 1: // ^A - return keyHome, b[1:] - case 5: // ^E - return keyEnd, b[1:] - case 8: // ^H - return keyBackspace, b[1:] - case 11: // ^K - return keyDeleteLine, b[1:] - case 12: // ^L - return keyClearScreen, b[1:] - case 23: // ^W - return keyDeleteWord, b[1:] - } - } - - if b[0] != keyEscape { - if !utf8.FullRune(b) { - return utf8.RuneError, b - } - r, l := utf8.DecodeRune(b) - return r, b[l:] - } - - if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' { - switch b[2] { - case 'A': - return keyUp, b[3:] - case 'B': - return keyDown, b[3:] - case 'C': - return keyRight, b[3:] - case 'D': - return keyLeft, b[3:] - case 'H': - return keyHome, b[3:] - case 'F': - return keyEnd, b[3:] - } - } - - if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' { - switch b[5] { - case 'C': - return keyAltRight, b[6:] - case 'D': - return keyAltLeft, b[6:] - } - } - - if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) { - return keyPasteStart, b[6:] - } - - if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) { - return keyPasteEnd, b[6:] - } - - // If we get here then we have a key that we don't recognise, or a - // partial sequence. It's not clear how one should find the end of a - // sequence without knowing them all, but it seems that [a-zA-Z~] only - // appears at the end of a sequence. - for i, c := range b[0:] { - if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' { - return keyUnknown, b[i+1:] - } - } - - return utf8.RuneError, b -} - -// queue appends data to the end of t.outBuf -func (t *Terminal) queue(data []rune) { - t.outBuf = append(t.outBuf, []byte(string(data))...) -} - -var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} -var space = []rune{' '} - -func isPrintable(key rune) bool { - isInSurrogateArea := key >= 0xd800 && key <= 0xdbff - return key >= 32 && !isInSurrogateArea -} - -// moveCursorToPos appends data to t.outBuf which will move the cursor to the -// given, logical position in the text. -func (t *Terminal) moveCursorToPos(pos int) { - if !t.echo { - return - } - - x := visualLength(t.prompt) + pos - y := x / t.termWidth - x = x % t.termWidth - - up := 0 - if y < t.cursorY { - up = t.cursorY - y - } - - down := 0 - if y > t.cursorY { - down = y - t.cursorY - } - - left := 0 - if x < t.cursorX { - left = t.cursorX - x - } - - right := 0 - if x > t.cursorX { - right = x - t.cursorX - } - - t.cursorX = x - t.cursorY = y - t.move(up, down, left, right) -} - -func (t *Terminal) move(up, down, left, right int) { - movement := make([]rune, 3*(up+down+left+right)) - m := movement - for i := 0; i < up; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'A' - m = m[3:] - } - for i := 0; i < down; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'B' - m = m[3:] - } - for i := 0; i < left; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'D' - m = m[3:] - } - for i := 0; i < right; i++ { - m[0] = keyEscape - m[1] = '[' - m[2] = 'C' - m = m[3:] - } - - t.queue(movement) -} - -func (t *Terminal) clearLineToRight() { - op := []rune{keyEscape, '[', 'K'} - t.queue(op) -} - -const maxLineLength = 4096 - -func (t *Terminal) setLine(newLine []rune, newPos int) { - if t.echo { - t.moveCursorToPos(0) - t.writeLine(newLine) - for i := len(newLine); i < len(t.line); i++ { - t.writeLine(space) - } - t.moveCursorToPos(newPos) - } - t.line = newLine - t.pos = newPos -} - -func (t *Terminal) advanceCursor(places int) { - t.cursorX += places - t.cursorY += t.cursorX / t.termWidth - if t.cursorY > t.maxLine { - t.maxLine = t.cursorY - } - t.cursorX = t.cursorX % t.termWidth - - if places > 0 && t.cursorX == 0 { - // Normally terminals will advance the current position - // when writing a character. But that doesn't happen - // for the last character in a line. However, when - // writing a character (except a new line) that causes - // a line wrap, the position will be advanced two - // places. - // - // So, if we are stopping at the end of a line, we - // need to write a newline so that our cursor can be - // advanced to the next line. - t.outBuf = append(t.outBuf, '\r', '\n') - } -} - -func (t *Terminal) eraseNPreviousChars(n int) { - if n == 0 { - return - } - - if t.pos < n { - n = t.pos - } - t.pos -= n - t.moveCursorToPos(t.pos) - - copy(t.line[t.pos:], t.line[n+t.pos:]) - t.line = t.line[:len(t.line)-n] - if t.echo { - t.writeLine(t.line[t.pos:]) - for i := 0; i < n; i++ { - t.queue(space) - } - t.advanceCursor(n) - t.moveCursorToPos(t.pos) - } -} - -// countToLeftWord returns then number of characters from the cursor to the -// start of the previous word. -func (t *Terminal) countToLeftWord() int { - if t.pos == 0 { - return 0 - } - - pos := t.pos - 1 - for pos > 0 { - if t.line[pos] != ' ' { - break - } - pos-- - } - for pos > 0 { - if t.line[pos] == ' ' { - pos++ - break - } - pos-- - } - - return t.pos - pos -} - -// countToRightWord returns then number of characters from the cursor to the -// start of the next word. -func (t *Terminal) countToRightWord() int { - pos := t.pos - for pos < len(t.line) { - if t.line[pos] == ' ' { - break - } - pos++ - } - for pos < len(t.line) { - if t.line[pos] != ' ' { - break - } - pos++ - } - return pos - t.pos -} - -// visualLength returns the number of visible glyphs in s. -func visualLength(runes []rune) int { - inEscapeSeq := false - length := 0 - - for _, r := range runes { - switch { - case inEscapeSeq: - if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') { - inEscapeSeq = false - } - case r == '\x1b': - inEscapeSeq = true - default: - length++ - } - } - - return length -} - -// handleKey processes the given key and, optionally, returns a line of text -// that the user has entered. -func (t *Terminal) handleKey(key rune) (line string, ok bool) { - if t.pasteActive && key != keyEnter { - t.addKeyToLine(key) - return - } - - switch key { - case keyBackspace: - if t.pos == 0 { - return - } - t.eraseNPreviousChars(1) - case keyAltLeft: - // move left by a word. - t.pos -= t.countToLeftWord() - t.moveCursorToPos(t.pos) - case keyAltRight: - // move right by a word. - t.pos += t.countToRightWord() - t.moveCursorToPos(t.pos) - case keyLeft: - if t.pos == 0 { - return - } - t.pos-- - t.moveCursorToPos(t.pos) - case keyRight: - if t.pos == len(t.line) { - return - } - t.pos++ - t.moveCursorToPos(t.pos) - case keyHome: - if t.pos == 0 { - return - } - t.pos = 0 - t.moveCursorToPos(t.pos) - case keyEnd: - if t.pos == len(t.line) { - return - } - t.pos = len(t.line) - t.moveCursorToPos(t.pos) - case keyUp: - entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1) - if !ok { - return "", false - } - if t.historyIndex == -1 { - t.historyPending = string(t.line) - } - t.historyIndex++ - runes := []rune(entry) - t.setLine(runes, len(runes)) - case keyDown: - switch t.historyIndex { - case -1: - return - case 0: - runes := []rune(t.historyPending) - t.setLine(runes, len(runes)) - t.historyIndex-- - default: - entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1) - if ok { - t.historyIndex-- - runes := []rune(entry) - t.setLine(runes, len(runes)) - } - } - case keyEnter: - t.moveCursorToPos(len(t.line)) - t.queue([]rune("\r\n")) - line = string(t.line) - ok = true - t.line = t.line[:0] - t.pos = 0 - t.cursorX = 0 - t.cursorY = 0 - t.maxLine = 0 - case keyDeleteWord: - // Delete zero or more spaces and then one or more characters. - t.eraseNPreviousChars(t.countToLeftWord()) - case keyDeleteLine: - // Delete everything from the current cursor position to the - // end of line. - for i := t.pos; i < len(t.line); i++ { - t.queue(space) - t.advanceCursor(1) - } - t.line = t.line[:t.pos] - t.moveCursorToPos(t.pos) - case keyCtrlD: - // Erase the character under the current position. - // The EOF case when the line is empty is handled in - // readLine(). - if t.pos < len(t.line) { - t.pos++ - t.eraseNPreviousChars(1) - } - case keyCtrlU: - t.eraseNPreviousChars(t.pos) - case keyClearScreen: - // Erases the screen and moves the cursor to the home position. - t.queue([]rune("\x1b[2J\x1b[H")) - t.queue(t.prompt) - t.cursorX, t.cursorY = 0, 0 - t.advanceCursor(visualLength(t.prompt)) - t.setLine(t.line, t.pos) - default: - if t.AutoCompleteCallback != nil { - prefix := string(t.line[:t.pos]) - suffix := string(t.line[t.pos:]) - - t.lock.Unlock() - newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key) - t.lock.Lock() - - if completeOk { - t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos])) - return - } - } - if !isPrintable(key) { - return - } - if len(t.line) == maxLineLength { - return - } - t.addKeyToLine(key) - } - return -} - -// addKeyToLine inserts the given key at the current position in the current -// line. -func (t *Terminal) addKeyToLine(key rune) { - if len(t.line) == cap(t.line) { - newLine := make([]rune, len(t.line), 2*(1+len(t.line))) - copy(newLine, t.line) - t.line = newLine - } - t.line = t.line[:len(t.line)+1] - copy(t.line[t.pos+1:], t.line[t.pos:]) - t.line[t.pos] = key - if t.echo { - t.writeLine(t.line[t.pos:]) - } - t.pos++ - t.moveCursorToPos(t.pos) -} - -func (t *Terminal) writeLine(line []rune) { - for len(line) != 0 { - remainingOnLine := t.termWidth - t.cursorX - todo := len(line) - if todo > remainingOnLine { - todo = remainingOnLine - } - t.queue(line[:todo]) - t.advanceCursor(visualLength(line[:todo])) - line = line[todo:] - } -} - -// writeWithCRLF writes buf to w but replaces all occurances of \n with \r\n. -func writeWithCRLF(w io.Writer, buf []byte) (n int, err error) { - for len(buf) > 0 { - i := bytes.IndexByte(buf, '\n') - todo := len(buf) - if i >= 0 { - todo = i - } - - var nn int - nn, err = w.Write(buf[:todo]) - n += nn - if err != nil { - return n, err - } - buf = buf[todo:] - - if i >= 0 { - if _, err = w.Write(crlf); err != nil { - return n, err - } - n += 1 - buf = buf[1:] - } - } - - return n, nil -} - -func (t *Terminal) Write(buf []byte) (n int, err error) { - t.lock.Lock() - defer t.lock.Unlock() - - if t.cursorX == 0 && t.cursorY == 0 { - // This is the easy case: there's nothing on the screen that we - // have to move out of the way. - return writeWithCRLF(t.c, buf) - } - - // We have a prompt and possibly user input on the screen. We - // have to clear it first. - t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */) - t.cursorX = 0 - t.clearLineToRight() - - for t.cursorY > 0 { - t.move(1 /* up */, 0, 0, 0) - t.cursorY-- - t.clearLineToRight() - } - - if _, err = t.c.Write(t.outBuf); err != nil { - return - } - t.outBuf = t.outBuf[:0] - - if n, err = writeWithCRLF(t.c, buf); err != nil { - return - } - - t.writeLine(t.prompt) - if t.echo { - t.writeLine(t.line) - } - - t.moveCursorToPos(t.pos) - - if _, err = t.c.Write(t.outBuf); err != nil { - return - } - t.outBuf = t.outBuf[:0] - return -} - -// ReadPassword temporarily changes the prompt and reads a password, without -// echo, from the terminal. -func (t *Terminal) ReadPassword(prompt string) (line string, err error) { - t.lock.Lock() - defer t.lock.Unlock() - - oldPrompt := t.prompt - t.prompt = []rune(prompt) - t.echo = false - - line, err = t.readLine() - - t.prompt = oldPrompt - t.echo = true - - return -} - -// ReadLine returns a line of input from the terminal. -func (t *Terminal) ReadLine() (line string, err error) { - t.lock.Lock() - defer t.lock.Unlock() - - return t.readLine() -} - -func (t *Terminal) readLine() (line string, err error) { - // t.lock must be held at this point - - if t.cursorX == 0 && t.cursorY == 0 { - t.writeLine(t.prompt) - t.c.Write(t.outBuf) - t.outBuf = t.outBuf[:0] - } - - lineIsPasted := t.pasteActive - - for { - rest := t.remainder - lineOk := false - for !lineOk { - var key rune - key, rest = bytesToKey(rest, t.pasteActive) - if key == utf8.RuneError { - break - } - if !t.pasteActive { - if key == keyCtrlD { - if len(t.line) == 0 { - return "", io.EOF - } - } - if key == keyPasteStart { - t.pasteActive = true - if len(t.line) == 0 { - lineIsPasted = true - } - continue - } - } else if key == keyPasteEnd { - t.pasteActive = false - continue - } - if !t.pasteActive { - lineIsPasted = false - } - line, lineOk = t.handleKey(key) - } - if len(rest) > 0 { - n := copy(t.inBuf[:], rest) - t.remainder = t.inBuf[:n] - } else { - t.remainder = nil - } - t.c.Write(t.outBuf) - t.outBuf = t.outBuf[:0] - if lineOk { - if t.echo { - t.historyIndex = -1 - t.history.Add(line) - } - if lineIsPasted { - err = ErrPasteIndicator - } - return - } - - // t.remainder is a slice at the beginning of t.inBuf - // containing a partial key sequence - readBuf := t.inBuf[len(t.remainder):] - var n int - - t.lock.Unlock() - n, err = t.c.Read(readBuf) - t.lock.Lock() - - if err != nil { - return - } - - t.remainder = t.inBuf[:n+len(t.remainder)] - } - - panic("unreachable") // for Go 1.0. -} - -// SetPrompt sets the prompt to be used when reading subsequent lines. -func (t *Terminal) SetPrompt(prompt string) { - t.lock.Lock() - defer t.lock.Unlock() - - t.prompt = []rune(prompt) -} - -func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) { - // Move cursor to column zero at the start of the line. - t.move(t.cursorY, 0, t.cursorX, 0) - t.cursorX, t.cursorY = 0, 0 - t.clearLineToRight() - for t.cursorY < numPrevLines { - // Move down a line - t.move(0, 1, 0, 0) - t.cursorY++ - t.clearLineToRight() - } - // Move back to beginning. - t.move(t.cursorY, 0, 0, 0) - t.cursorX, t.cursorY = 0, 0 - - t.queue(t.prompt) - t.advanceCursor(visualLength(t.prompt)) - t.writeLine(t.line) - t.moveCursorToPos(t.pos) -} - -func (t *Terminal) SetSize(width, height int) error { - t.lock.Lock() - defer t.lock.Unlock() - - if width == 0 { - width = 1 - } - - oldWidth := t.termWidth - t.termWidth, t.termHeight = width, height - - switch { - case width == oldWidth: - // If the width didn't change then nothing else needs to be - // done. - return nil - case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0: - // If there is nothing on current line and no prompt printed, - // just do nothing - return nil - case width < oldWidth: - // Some terminals (e.g. xterm) will truncate lines that were - // too long when shinking. Others, (e.g. gnome-terminal) will - // attempt to wrap them. For the former, repainting t.maxLine - // works great, but that behaviour goes badly wrong in the case - // of the latter because they have doubled every full line. - - // We assume that we are working on a terminal that wraps lines - // and adjust the cursor position based on every previous line - // wrapping and turning into two. This causes the prompt on - // xterms to move upwards, which isn't great, but it avoids a - // huge mess with gnome-terminal. - if t.cursorX >= t.termWidth { - t.cursorX = t.termWidth - 1 - } - t.cursorY *= 2 - t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2) - case width > oldWidth: - // If the terminal expands then our position calculations will - // be wrong in the future because we think the cursor is - // |t.pos| chars into the string, but there will be a gap at - // the end of any wrapped line. - // - // But the position will actually be correct until we move, so - // we can move back to the beginning and repaint everything. - t.clearAndRepaintLinePlusNPrevious(t.maxLine) - } - - _, err := t.c.Write(t.outBuf) - t.outBuf = t.outBuf[:0] - return err -} - -type pasteIndicatorError struct{} - -func (pasteIndicatorError) Error() string { - return "terminal: ErrPasteIndicator not correctly handled" -} - -// ErrPasteIndicator may be returned from ReadLine as the error, in addition -// to valid line data. It indicates that bracketed paste mode is enabled and -// that the returned line consists only of pasted data. Programs may wish to -// interpret pasted data more literally than typed data. -var ErrPasteIndicator = pasteIndicatorError{} - -// SetBracketedPasteMode requests that the terminal bracket paste operations -// with markers. Not all terminals support this but, if it is supported, then -// enabling this mode will stop any autocomplete callback from running due to -// pastes. Additionally, any lines that are completely pasted will be returned -// from ReadLine with the error set to ErrPasteIndicator. -func (t *Terminal) SetBracketedPasteMode(on bool) { - if on { - io.WriteString(t.c, "\x1b[?2004h") - } else { - io.WriteString(t.c, "\x1b[?2004l") - } -} - -// stRingBuffer is a ring buffer of strings. -type stRingBuffer struct { - // entries contains max elements. - entries []string - max int - // head contains the index of the element most recently added to the ring. - head int - // size contains the number of elements in the ring. - size int -} - -func (s *stRingBuffer) Add(a string) { - if s.entries == nil { - const defaultNumEntries = 100 - s.entries = make([]string, defaultNumEntries) - s.max = defaultNumEntries - } - - s.head = (s.head + 1) % s.max - s.entries[s.head] = a - if s.size < s.max { - s.size++ - } -} - -// NthPreviousEntry returns the value passed to the nth previous call to Add. -// If n is zero then the immediately prior value is returned, if one, then the -// next most recent, and so on. If such an element doesn't exist then ok is -// false. -func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { - if n >= s.size { - return "", false - } - index := s.head - n - if index < 0 { - index += s.max - } - return s.entries[index], true -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go deleted file mode 100644 index 1d54c4f..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package terminal - -import ( - "bytes" - "io" - "os" - "testing" -) - -type MockTerminal struct { - toSend []byte - bytesPerRead int - received []byte -} - -func (c *MockTerminal) Read(data []byte) (n int, err error) { - n = len(data) - if n == 0 { - return - } - if n > len(c.toSend) { - n = len(c.toSend) - } - if n == 0 { - return 0, io.EOF - } - if c.bytesPerRead > 0 && n > c.bytesPerRead { - n = c.bytesPerRead - } - copy(data, c.toSend[:n]) - c.toSend = c.toSend[n:] - return -} - -func (c *MockTerminal) Write(data []byte) (n int, err error) { - c.received = append(c.received, data...) - return len(data), nil -} - -func TestClose(t *testing.T) { - c := &MockTerminal{} - ss := NewTerminal(c, "> ") - line, err := ss.ReadLine() - if line != "" { - t.Errorf("Expected empty line but got: %s", line) - } - if err != io.EOF { - t.Errorf("Error should have been EOF but got: %s", err) - } -} - -var keyPressTests = []struct { - in string - line string - err error - throwAwayLines int -}{ - { - err: io.EOF, - }, - { - in: "\r", - line: "", - }, - { - in: "foo\r", - line: "foo", - }, - { - in: "a\x1b[Cb\r", // right - line: "ab", - }, - { - in: "a\x1b[Db\r", // left - line: "ba", - }, - { - in: "a\177b\r", // backspace - line: "b", - }, - { - in: "\x1b[A\r", // up - }, - { - in: "\x1b[B\r", // down - }, - { - in: "line\x1b[A\x1b[B\r", // up then down - line: "line", - }, - { - in: "line1\rline2\x1b[A\r", // recall previous line. - line: "line1", - throwAwayLines: 1, - }, - { - // recall two previous lines and append. - in: "line1\rline2\rline3\x1b[A\x1b[Axxx\r", - line: "line1xxx", - throwAwayLines: 2, - }, - { - // Ctrl-A to move to beginning of line followed by ^K to kill - // line. - in: "a b \001\013\r", - line: "", - }, - { - // Ctrl-A to move to beginning of line, Ctrl-E to move to end, - // finally ^K to kill nothing. - in: "a b \001\005\013\r", - line: "a b ", - }, - { - in: "\027\r", - line: "", - }, - { - in: "a\027\r", - line: "", - }, - { - in: "a \027\r", - line: "", - }, - { - in: "a b\027\r", - line: "a ", - }, - { - in: "a b \027\r", - line: "a ", - }, - { - in: "one two thr\x1b[D\027\r", - line: "one two r", - }, - { - in: "\013\r", - line: "", - }, - { - in: "a\013\r", - line: "a", - }, - { - in: "ab\x1b[D\013\r", - line: "a", - }, - { - in: "Ξεσκεπάζω\r", - line: "Ξεσκεπάζω", - }, - { - in: "£\r\x1b[A\177\r", // non-ASCII char, enter, up, backspace. - line: "", - throwAwayLines: 1, - }, - { - in: "£\r££\x1b[A\x1b[B\177\r", // non-ASCII char, enter, 2x non-ASCII, up, down, backspace, enter. - line: "£", - throwAwayLines: 1, - }, - { - // Ctrl-D at the end of the line should be ignored. - in: "a\004\r", - line: "a", - }, - { - // a, b, left, Ctrl-D should erase the b. - in: "ab\x1b[D\004\r", - line: "a", - }, - { - // a, b, c, d, left, left, ^U should erase to the beginning of - // the line. - in: "abcd\x1b[D\x1b[D\025\r", - line: "cd", - }, - { - // Bracketed paste mode: control sequences should be returned - // verbatim in paste mode. - in: "abc\x1b[200~de\177f\x1b[201~\177\r", - line: "abcde\177", - }, - { - // Enter in bracketed paste mode should still work. - in: "abc\x1b[200~d\refg\x1b[201~h\r", - line: "efgh", - throwAwayLines: 1, - }, - { - // Lines consisting entirely of pasted data should be indicated as such. - in: "\x1b[200~a\r", - line: "a", - err: ErrPasteIndicator, - }, -} - -func TestKeyPresses(t *testing.T) { - for i, test := range keyPressTests { - for j := 1; j < len(test.in); j++ { - c := &MockTerminal{ - toSend: []byte(test.in), - bytesPerRead: j, - } - ss := NewTerminal(c, "> ") - for k := 0; k < test.throwAwayLines; k++ { - _, err := ss.ReadLine() - if err != nil { - t.Errorf("Throwaway line %d from test %d resulted in error: %s", k, i, err) - } - } - line, err := ss.ReadLine() - if line != test.line { - t.Errorf("Line resulting from test %d (%d bytes per read) was '%s', expected '%s'", i, j, line, test.line) - break - } - if err != test.err { - t.Errorf("Error resulting from test %d (%d bytes per read) was '%v', expected '%v'", i, j, err, test.err) - break - } - } - } -} - -func TestPasswordNotSaved(t *testing.T) { - c := &MockTerminal{ - toSend: []byte("password\r\x1b[A\r"), - bytesPerRead: 1, - } - ss := NewTerminal(c, "> ") - pw, _ := ss.ReadPassword("> ") - if pw != "password" { - t.Fatalf("failed to read password, got %s", pw) - } - line, _ := ss.ReadLine() - if len(line) > 0 { - t.Fatalf("password was saved in history") - } -} - -var setSizeTests = []struct { - width, height int -}{ - {40, 13}, - {80, 24}, - {132, 43}, -} - -func TestTerminalSetSize(t *testing.T) { - for _, setSize := range setSizeTests { - c := &MockTerminal{ - toSend: []byte("password\r\x1b[A\r"), - bytesPerRead: 1, - } - ss := NewTerminal(c, "> ") - ss.SetSize(setSize.width, setSize.height) - pw, _ := ss.ReadPassword("Password: ") - if pw != "password" { - t.Fatalf("failed to read password, got %s", pw) - } - if string(c.received) != "Password: \r\n" { - t.Errorf("failed to set the temporary prompt expected %q, got %q", "Password: ", c.received) - } - } -} - -func TestMakeRawState(t *testing.T) { - fd := int(os.Stdout.Fd()) - if !IsTerminal(fd) { - t.Skip("stdout is not a terminal; skipping test") - } - - st, err := GetState(fd) - if err != nil { - t.Fatalf("failed to get terminal state from GetState: %s", err) - } - defer Restore(fd, st) - raw, err := MakeRaw(fd) - if err != nil { - t.Fatalf("failed to get terminal state from MakeRaw: %s", err) - } - - if *st != *raw { - t.Errorf("states do not match; was %v, expected %v", raw, st) - } -} - -func TestOutputNewlines(t *testing.T) { - // \n should be changed to \r\n in terminal output. - buf := new(bytes.Buffer) - term := NewTerminal(buf, ">") - - term.Write([]byte("1\n2\n")) - output := string(buf.Bytes()) - const expected = "1\r\n2\r\n" - - if output != expected { - t.Errorf("incorrect output: was %q, expected %q", output, expected) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util.go b/vendor/golang.org/x/crypto/ssh/terminal/util.go deleted file mode 100644 index c869213..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/util.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package terminal // import "golang.org/x/crypto/ssh/terminal" - -import ( - "io" - "syscall" - "unsafe" -) - -// State contains the state of a terminal. -type State struct { - termios syscall.Termios -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - var termios syscall.Termios - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) - return err == 0 -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - var oldState State - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { - return nil, err - } - - newState := oldState.termios - // This attempts to replicate the behaviour documented for cfmakeraw in - // the termios(3) manpage. - newState.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON - newState.Oflag &^= syscall.OPOST - newState.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN - newState.Cflag &^= syscall.CSIZE | syscall.PARENB - newState.Cflag |= syscall.CS8 - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { - return nil, err - } - - return &oldState, nil -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - var oldState State - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { - return nil, err - } - - return &oldState, nil -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func Restore(fd int, state *State) error { - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&state.termios)), 0, 0, 0) - return err -} - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (width, height int, err error) { - var dimensions [4]uint16 - - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&dimensions)), 0, 0, 0); err != 0 { - return -1, -1, err - } - return int(dimensions[1]), int(dimensions[0]), nil -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - var oldState syscall.Termios - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0); err != 0 { - return nil, err - } - - newState := oldState - newState.Lflag &^= syscall.ECHO - newState.Lflag |= syscall.ICANON | syscall.ISIG - newState.Iflag |= syscall.ICRNL - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { - return nil, err - } - - defer func() { - syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0) - }() - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(fd, buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go b/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go deleted file mode 100644 index 9c1ffd1..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd netbsd openbsd - -package terminal - -import "syscall" - -const ioctlReadTermios = syscall.TIOCGETA -const ioctlWriteTermios = syscall.TIOCSETA diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go b/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go deleted file mode 100644 index 5883b22..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package terminal - -// These constants are declared here, rather than importing -// them from the syscall package as some syscall packages, even -// on linux, for example gccgo, do not declare them. -const ioctlReadTermios = 0x5401 // syscall.TCGETS -const ioctlWriteTermios = 0x5402 // syscall.TCSETS diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go b/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go deleted file mode 100644 index 799f049..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package terminal - -import ( - "fmt" - "runtime" -) - -type State struct{} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - return false -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func Restore(fd int, state *State) error { - return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (width, height int, err error) { - return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go b/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go deleted file mode 100644 index 07eb5ed..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build solaris - -package terminal // import "golang.org/x/crypto/ssh/terminal" - -import ( - "golang.org/x/sys/unix" - "io" - "syscall" -) - -// State contains the state of a terminal. -type State struct { - termios syscall.Termios -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - // see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c - var termio unix.Termio - err := unix.IoctlSetTermio(fd, unix.TCGETA, &termio) - return err == nil -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - // see also: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c - val, err := unix.IoctlGetTermios(fd, unix.TCGETS) - if err != nil { - return nil, err - } - oldState := *val - - newState := oldState - newState.Lflag &^= syscall.ECHO - newState.Lflag |= syscall.ICANON | syscall.ISIG - newState.Iflag |= syscall.ICRNL - err = unix.IoctlSetTermios(fd, unix.TCSETS, &newState) - if err != nil { - return nil, err - } - - defer unix.IoctlSetTermios(fd, unix.TCSETS, &oldState) - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(fd, buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go deleted file mode 100644 index ae9fa9e..0000000 --- a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -// Package terminal provides support functions for dealing with terminals, as -// commonly found on UNIX systems. -// -// Putting a terminal into raw mode is the most common requirement: -// -// oldState, err := terminal.MakeRaw(0) -// if err != nil { -// panic(err) -// } -// defer terminal.Restore(0, oldState) -package terminal - -import ( - "io" - "syscall" - "unsafe" -) - -const ( - enableLineInput = 2 - enableEchoInput = 4 - enableProcessedInput = 1 - enableWindowInput = 8 - enableMouseInput = 16 - enableInsertMode = 32 - enableQuickEditMode = 64 - enableExtendedFlags = 128 - enableAutoPosition = 256 - enableProcessedOutput = 1 - enableWrapAtEolOutput = 2 -) - -var kernel32 = syscall.NewLazyDLL("kernel32.dll") - -var ( - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procSetConsoleMode = kernel32.NewProc("SetConsoleMode") - procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") -) - -type ( - short int16 - word uint16 - - coord struct { - x short - y short - } - smallRect struct { - left short - top short - right short - bottom short - } - consoleScreenBufferInfo struct { - size coord - cursorPosition coord - attributes word - window smallRect - maximumWindowSize coord - } -) - -type State struct { - mode uint32 -} - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd int) bool { - var st uint32 - r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - return r != 0 && e == 0 -} - -// MakeRaw put the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -func MakeRaw(fd int) (*State, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - raw := st &^ (enableEchoInput | enableProcessedInput | enableLineInput | enableProcessedOutput) - _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(raw), 0) - if e != 0 { - return nil, error(e) - } - return &State{st}, nil -} - -// GetState returns the current state of a terminal which may be useful to -// restore the terminal after a signal. -func GetState(fd int) (*State, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - return &State{st}, nil -} - -// Restore restores the terminal connected to the given file descriptor to a -// previous state. -func Restore(fd int, state *State) error { - _, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(state.mode), 0) - return err -} - -// GetSize returns the dimensions of the given terminal. -func GetSize(fd int) (width, height int, err error) { - var info consoleScreenBufferInfo - _, _, e := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&info)), 0) - if e != 0 { - return 0, 0, error(e) - } - return int(info.size.x), int(info.size.y), nil -} - -// ReadPassword reads a line of input from a terminal without local echo. This -// is commonly used for inputting passwords and other sensitive data. The slice -// returned does not include the \n. -func ReadPassword(fd int) ([]byte, error) { - var st uint32 - _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) - if e != 0 { - return nil, error(e) - } - old := st - - st &^= (enableEchoInput) - st |= (enableProcessedInput | enableLineInput | enableProcessedOutput) - _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) - if e != 0 { - return nil, error(e) - } - - defer func() { - syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(old), 0) - }() - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(syscall.Handle(fd), buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - if n > 0 && buf[n-1] == '\r' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go b/vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go deleted file mode 100644 index f481253..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package test - -import ( - "bytes" - "testing" - - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/agent" -) - -func TestAgentForward(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - keyring := agent.NewKeyring() - if err := keyring.Add(agent.AddedKey{PrivateKey: testPrivateKeys["dsa"]}); err != nil { - t.Fatalf("Error adding key: %s", err) - } - if err := keyring.Add(agent.AddedKey{ - PrivateKey: testPrivateKeys["dsa"], - ConfirmBeforeUse: true, - LifetimeSecs: 3600, - }); err != nil { - t.Fatalf("Error adding key with constraints: %s", err) - } - pub := testPublicKeys["dsa"] - - sess, err := conn.NewSession() - if err != nil { - t.Fatalf("NewSession: %v", err) - } - if err := agent.RequestAgentForwarding(sess); err != nil { - t.Fatalf("RequestAgentForwarding: %v", err) - } - - if err := agent.ForwardToAgent(conn, keyring); err != nil { - t.Fatalf("SetupForwardKeyring: %v", err) - } - out, err := sess.CombinedOutput("ssh-add -L") - if err != nil { - t.Fatalf("running ssh-add: %v, out %s", err, out) - } - key, _, _, _, err := ssh.ParseAuthorizedKey(out) - if err != nil { - t.Fatalf("ParseAuthorizedKey(%q): %v", out, err) - } - - if !bytes.Equal(key.Marshal(), pub.Marshal()) { - t.Fatalf("got key %s, want %s", ssh.MarshalAuthorizedKey(key), ssh.MarshalAuthorizedKey(pub)) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/test/cert_test.go b/vendor/golang.org/x/crypto/ssh/test/cert_test.go deleted file mode 100644 index 364790f..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/cert_test.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package test - -import ( - "crypto/rand" - "testing" - - "golang.org/x/crypto/ssh" -) - -func TestCertLogin(t *testing.T) { - s := newServer(t) - defer s.Shutdown() - - // Use a key different from the default. - clientKey := testSigners["dsa"] - caAuthKey := testSigners["ecdsa"] - cert := &ssh.Certificate{ - Key: clientKey.PublicKey(), - ValidPrincipals: []string{username()}, - CertType: ssh.UserCert, - ValidBefore: ssh.CertTimeInfinity, - } - if err := cert.SignCert(rand.Reader, caAuthKey); err != nil { - t.Fatalf("SetSignature: %v", err) - } - - certSigner, err := ssh.NewCertSigner(cert, clientKey) - if err != nil { - t.Fatalf("NewCertSigner: %v", err) - } - - conf := &ssh.ClientConfig{ - User: username(), - } - conf.Auth = append(conf.Auth, ssh.PublicKeys(certSigner)) - client, err := s.TryDial(conf) - if err != nil { - t.Fatalf("TryDial: %v", err) - } - client.Close() -} diff --git a/vendor/golang.org/x/crypto/ssh/test/doc.go b/vendor/golang.org/x/crypto/ssh/test/doc.go deleted file mode 100644 index 3f9b334..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This package contains integration tests for the -// golang.org/x/crypto/ssh package. -package test // import "golang.org/x/crypto/ssh/test" diff --git a/vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go b/vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go deleted file mode 100644 index 877a88c..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package test - -import ( - "bytes" - "io" - "io/ioutil" - "math/rand" - "net" - "testing" - "time" -) - -func TestPortForward(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - sshListener, err := conn.Listen("tcp", "localhost:0") - if err != nil { - t.Fatal(err) - } - - go func() { - sshConn, err := sshListener.Accept() - if err != nil { - t.Fatalf("listen.Accept failed: %v", err) - } - - _, err = io.Copy(sshConn, sshConn) - if err != nil && err != io.EOF { - t.Fatalf("ssh client copy: %v", err) - } - sshConn.Close() - }() - - forwardedAddr := sshListener.Addr().String() - tcpConn, err := net.Dial("tcp", forwardedAddr) - if err != nil { - t.Fatalf("TCP dial failed: %v", err) - } - - readChan := make(chan []byte) - go func() { - data, _ := ioutil.ReadAll(tcpConn) - readChan <- data - }() - - // Invent some data. - data := make([]byte, 100*1000) - for i := range data { - data[i] = byte(i % 255) - } - - var sent []byte - for len(sent) < 1000*1000 { - // Send random sized chunks - m := rand.Intn(len(data)) - n, err := tcpConn.Write(data[:m]) - if err != nil { - break - } - sent = append(sent, data[:n]...) - } - if err := tcpConn.(*net.TCPConn).CloseWrite(); err != nil { - t.Errorf("tcpConn.CloseWrite: %v", err) - } - - read := <-readChan - - if len(sent) != len(read) { - t.Fatalf("got %d bytes, want %d", len(read), len(sent)) - } - if bytes.Compare(sent, read) != 0 { - t.Fatalf("read back data does not match") - } - - if err := sshListener.Close(); err != nil { - t.Fatalf("sshListener.Close: %v", err) - } - - // Check that the forward disappeared. - tcpConn, err = net.Dial("tcp", forwardedAddr) - if err == nil { - tcpConn.Close() - t.Errorf("still listening to %s after closing", forwardedAddr) - } -} - -func TestAcceptClose(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - - sshListener, err := conn.Listen("tcp", "localhost:0") - if err != nil { - t.Fatal(err) - } - - quit := make(chan error, 1) - go func() { - for { - c, err := sshListener.Accept() - if err != nil { - quit <- err - break - } - c.Close() - } - }() - sshListener.Close() - - select { - case <-time.After(1 * time.Second): - t.Errorf("timeout: listener did not close.") - case err := <-quit: - t.Logf("quit as expected (error %v)", err) - } -} - -// Check that listeners exit if the underlying client transport dies. -func TestPortForwardConnectionClose(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - - sshListener, err := conn.Listen("tcp", "localhost:0") - if err != nil { - t.Fatal(err) - } - - quit := make(chan error, 1) - go func() { - for { - c, err := sshListener.Accept() - if err != nil { - quit <- err - break - } - c.Close() - } - }() - - // It would be even nicer if we closed the server side, but it - // is more involved as the fd for that side is dup()ed. - server.clientConn.Close() - - select { - case <-time.After(1 * time.Second): - t.Errorf("timeout: listener did not close.") - case err := <-quit: - t.Logf("quit as expected (error %v)", err) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/test/session_test.go b/vendor/golang.org/x/crypto/ssh/test/session_test.go deleted file mode 100644 index fc7e471..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/session_test.go +++ /dev/null @@ -1,365 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !windows - -package test - -// Session functional tests. - -import ( - "bytes" - "errors" - "io" - "strings" - "testing" - - "golang.org/x/crypto/ssh" -) - -func TestRunCommandSuccess(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - err = session.Run("true") - if err != nil { - t.Fatalf("session failed: %v", err) - } -} - -func TestHostKeyCheck(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - - conf := clientConfig() - hostDB := hostKeyDB() - conf.HostKeyCallback = hostDB.Check - - // change the keys. - hostDB.keys[ssh.KeyAlgoRSA][25]++ - hostDB.keys[ssh.KeyAlgoDSA][25]++ - hostDB.keys[ssh.KeyAlgoECDSA256][25]++ - - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - t.Fatalf("dial should have failed.") - } else if !strings.Contains(err.Error(), "host key mismatch") { - t.Fatalf("'host key mismatch' not found in %v", err) - } -} - -func TestRunCommandStdin(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - r, w := io.Pipe() - defer r.Close() - defer w.Close() - session.Stdin = r - - err = session.Run("true") - if err != nil { - t.Fatalf("session failed: %v", err) - } -} - -func TestRunCommandStdinError(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - r, w := io.Pipe() - defer r.Close() - session.Stdin = r - pipeErr := errors.New("closing write end of pipe") - w.CloseWithError(pipeErr) - - err = session.Run("true") - if err != pipeErr { - t.Fatalf("expected %v, found %v", pipeErr, err) - } -} - -func TestRunCommandFailed(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - err = session.Run(`bash -c "kill -9 $$"`) - if err == nil { - t.Fatalf("session succeeded: %v", err) - } -} - -func TestRunCommandWeClosed(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - err = session.Shell() - if err != nil { - t.Fatalf("shell failed: %v", err) - } - err = session.Close() - if err != nil { - t.Fatalf("shell failed: %v", err) - } -} - -func TestFuncLargeRead(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("unable to create new session: %s", err) - } - - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("unable to acquire stdout pipe: %s", err) - } - - err = session.Start("dd if=/dev/urandom bs=2048 count=1024") - if err != nil { - t.Fatalf("unable to execute remote command: %s", err) - } - - buf := new(bytes.Buffer) - n, err := io.Copy(buf, stdout) - if err != nil { - t.Fatalf("error reading from remote stdout: %s", err) - } - - if n != 2048*1024 { - t.Fatalf("Expected %d bytes but read only %d from remote command", 2048, n) - } -} - -func TestKeyChange(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - hostDB := hostKeyDB() - conf.HostKeyCallback = hostDB.Check - conf.RekeyThreshold = 1024 - conn := server.Dial(conf) - defer conn.Close() - - for i := 0; i < 4; i++ { - session, err := conn.NewSession() - if err != nil { - t.Fatalf("unable to create new session: %s", err) - } - - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("unable to acquire stdout pipe: %s", err) - } - - err = session.Start("dd if=/dev/urandom bs=1024 count=1") - if err != nil { - t.Fatalf("unable to execute remote command: %s", err) - } - buf := new(bytes.Buffer) - n, err := io.Copy(buf, stdout) - if err != nil { - t.Fatalf("error reading from remote stdout: %s", err) - } - - want := int64(1024) - if n != want { - t.Fatalf("Expected %d bytes but read only %d from remote command", want, n) - } - } - - if changes := hostDB.checkCount; changes < 4 { - t.Errorf("got %d key changes, want 4", changes) - } -} - -func TestInvalidTerminalMode(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - if err = session.RequestPty("vt100", 80, 40, ssh.TerminalModes{255: 1984}); err == nil { - t.Fatalf("req-pty failed: successful request with invalid mode") - } -} - -func TestValidTerminalMode(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - conn := server.Dial(clientConfig()) - defer conn.Close() - - session, err := conn.NewSession() - if err != nil { - t.Fatalf("session failed: %v", err) - } - defer session.Close() - - stdout, err := session.StdoutPipe() - if err != nil { - t.Fatalf("unable to acquire stdout pipe: %s", err) - } - - stdin, err := session.StdinPipe() - if err != nil { - t.Fatalf("unable to acquire stdin pipe: %s", err) - } - - tm := ssh.TerminalModes{ssh.ECHO: 0} - if err = session.RequestPty("xterm", 80, 40, tm); err != nil { - t.Fatalf("req-pty failed: %s", err) - } - - err = session.Shell() - if err != nil { - t.Fatalf("session failed: %s", err) - } - - stdin.Write([]byte("stty -a && exit\n")) - - var buf bytes.Buffer - if _, err := io.Copy(&buf, stdout); err != nil { - t.Fatalf("reading failed: %s", err) - } - - if sttyOutput := buf.String(); !strings.Contains(sttyOutput, "-echo ") { - t.Fatalf("terminal mode failure: expected -echo in stty output, got %s", sttyOutput) - } -} - -func TestCiphers(t *testing.T) { - var config ssh.Config - config.SetDefaults() - cipherOrder := config.Ciphers - // These ciphers will not be tested when commented out in cipher.go it will - // fallback to the next available as per line 292. - cipherOrder = append(cipherOrder, "aes128-cbc", "3des-cbc") - - for _, ciph := range cipherOrder { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - conf.Ciphers = []string{ciph} - // Don't fail if sshd doesn't have the cipher. - conf.Ciphers = append(conf.Ciphers, cipherOrder...) - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - } else { - t.Fatalf("failed for cipher %q", ciph) - } - } -} - -func TestMACs(t *testing.T) { - var config ssh.Config - config.SetDefaults() - macOrder := config.MACs - - for _, mac := range macOrder { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - conf.MACs = []string{mac} - // Don't fail if sshd doesn't have the MAC. - conf.MACs = append(conf.MACs, macOrder...) - if conn, err := server.TryDial(conf); err == nil { - conn.Close() - } else { - t.Fatalf("failed for MAC %q", mac) - } - } -} - -func TestKeyExchanges(t *testing.T) { - var config ssh.Config - config.SetDefaults() - kexOrder := config.KeyExchanges - for _, kex := range kexOrder { - server := newServer(t) - defer server.Shutdown() - conf := clientConfig() - // Don't fail if sshd doesn't have the kex. - conf.KeyExchanges = append([]string{kex}, kexOrder...) - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - } else { - t.Errorf("failed for kex %q", kex) - } - } -} - -func TestClientAuthAlgorithms(t *testing.T) { - for _, key := range []string{ - "rsa", - "dsa", - "ecdsa", - "ed25519", - } { - server := newServer(t) - conf := clientConfig() - conf.SetDefaults() - conf.Auth = []ssh.AuthMethod{ - ssh.PublicKeys(testSigners[key]), - } - - conn, err := server.TryDial(conf) - if err == nil { - conn.Close() - } else { - t.Errorf("failed for key %q", key) - } - - server.Shutdown() - } -} diff --git a/vendor/golang.org/x/crypto/ssh/test/tcpip_test.go b/vendor/golang.org/x/crypto/ssh/test/tcpip_test.go deleted file mode 100644 index a2eb935..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/tcpip_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !windows - -package test - -// direct-tcpip functional tests - -import ( - "io" - "net" - "testing" -) - -func TestDial(t *testing.T) { - server := newServer(t) - defer server.Shutdown() - sshConn := server.Dial(clientConfig()) - defer sshConn.Close() - - l, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatalf("Listen: %v", err) - } - defer l.Close() - - go func() { - for { - c, err := l.Accept() - if err != nil { - break - } - - io.WriteString(c, c.RemoteAddr().String()) - c.Close() - } - }() - - conn, err := sshConn.Dial("tcp", l.Addr().String()) - if err != nil { - t.Fatalf("Dial: %v", err) - } - defer conn.Close() -} diff --git a/vendor/golang.org/x/crypto/ssh/test/test_unix_test.go b/vendor/golang.org/x/crypto/ssh/test/test_unix_test.go deleted file mode 100644 index 3bfd881..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/test_unix_test.go +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd plan9 - -package test - -// functional test harness for unix. - -import ( - "bytes" - "fmt" - "io/ioutil" - "log" - "net" - "os" - "os/exec" - "os/user" - "path/filepath" - "testing" - "text/template" - - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/testdata" -) - -const sshd_config = ` -Protocol 2 -HostKey {{.Dir}}/id_rsa -HostKey {{.Dir}}/id_dsa -HostKey {{.Dir}}/id_ecdsa -Pidfile {{.Dir}}/sshd.pid -#UsePrivilegeSeparation no -KeyRegenerationInterval 3600 -ServerKeyBits 768 -SyslogFacility AUTH -LogLevel DEBUG2 -LoginGraceTime 120 -PermitRootLogin no -StrictModes no -RSAAuthentication yes -PubkeyAuthentication yes -AuthorizedKeysFile {{.Dir}}/authorized_keys -TrustedUserCAKeys {{.Dir}}/id_ecdsa.pub -IgnoreRhosts yes -RhostsRSAAuthentication no -HostbasedAuthentication no -PubkeyAcceptedKeyTypes=* -` - -var configTmpl = template.Must(template.New("").Parse(sshd_config)) - -type server struct { - t *testing.T - cleanup func() // executed during Shutdown - configfile string - cmd *exec.Cmd - output bytes.Buffer // holds stderr from sshd process - - // Client half of the network connection. - clientConn net.Conn -} - -func username() string { - var username string - if user, err := user.Current(); err == nil { - username = user.Username - } else { - // user.Current() currently requires cgo. If an error is - // returned attempt to get the username from the environment. - log.Printf("user.Current: %v; falling back on $USER", err) - username = os.Getenv("USER") - } - if username == "" { - panic("Unable to get username") - } - return username -} - -type storedHostKey struct { - // keys map from an algorithm string to binary key data. - keys map[string][]byte - - // checkCount counts the Check calls. Used for testing - // rekeying. - checkCount int -} - -func (k *storedHostKey) Add(key ssh.PublicKey) { - if k.keys == nil { - k.keys = map[string][]byte{} - } - k.keys[key.Type()] = key.Marshal() -} - -func (k *storedHostKey) Check(addr string, remote net.Addr, key ssh.PublicKey) error { - k.checkCount++ - algo := key.Type() - - if k.keys == nil || bytes.Compare(key.Marshal(), k.keys[algo]) != 0 { - return fmt.Errorf("host key mismatch. Got %q, want %q", key, k.keys[algo]) - } - return nil -} - -func hostKeyDB() *storedHostKey { - keyChecker := &storedHostKey{} - keyChecker.Add(testPublicKeys["ecdsa"]) - keyChecker.Add(testPublicKeys["rsa"]) - keyChecker.Add(testPublicKeys["dsa"]) - return keyChecker -} - -func clientConfig() *ssh.ClientConfig { - config := &ssh.ClientConfig{ - User: username(), - Auth: []ssh.AuthMethod{ - ssh.PublicKeys(testSigners["user"]), - }, - HostKeyCallback: hostKeyDB().Check, - } - return config -} - -// unixConnection creates two halves of a connected net.UnixConn. It -// is used for connecting the Go SSH client with sshd without opening -// ports. -func unixConnection() (*net.UnixConn, *net.UnixConn, error) { - dir, err := ioutil.TempDir("", "unixConnection") - if err != nil { - return nil, nil, err - } - defer os.Remove(dir) - - addr := filepath.Join(dir, "ssh") - listener, err := net.Listen("unix", addr) - if err != nil { - return nil, nil, err - } - defer listener.Close() - c1, err := net.Dial("unix", addr) - if err != nil { - return nil, nil, err - } - - c2, err := listener.Accept() - if err != nil { - c1.Close() - return nil, nil, err - } - - return c1.(*net.UnixConn), c2.(*net.UnixConn), nil -} - -func (s *server) TryDial(config *ssh.ClientConfig) (*ssh.Client, error) { - sshd, err := exec.LookPath("sshd") - if err != nil { - s.t.Skipf("skipping test: %v", err) - } - - c1, c2, err := unixConnection() - if err != nil { - s.t.Fatalf("unixConnection: %v", err) - } - - s.cmd = exec.Command(sshd, "-f", s.configfile, "-i", "-e") - f, err := c2.File() - if err != nil { - s.t.Fatalf("UnixConn.File: %v", err) - } - defer f.Close() - s.cmd.Stdin = f - s.cmd.Stdout = f - s.cmd.Stderr = &s.output - if err := s.cmd.Start(); err != nil { - s.t.Fail() - s.Shutdown() - s.t.Fatalf("s.cmd.Start: %v", err) - } - s.clientConn = c1 - conn, chans, reqs, err := ssh.NewClientConn(c1, "", config) - if err != nil { - return nil, err - } - return ssh.NewClient(conn, chans, reqs), nil -} - -func (s *server) Dial(config *ssh.ClientConfig) *ssh.Client { - conn, err := s.TryDial(config) - if err != nil { - s.t.Fail() - s.Shutdown() - s.t.Fatalf("ssh.Client: %v", err) - } - return conn -} - -func (s *server) Shutdown() { - if s.cmd != nil && s.cmd.Process != nil { - // Don't check for errors; if it fails it's most - // likely "os: process already finished", and we don't - // care about that. Use os.Interrupt, so child - // processes are killed too. - s.cmd.Process.Signal(os.Interrupt) - s.cmd.Wait() - } - if s.t.Failed() { - // log any output from sshd process - s.t.Logf("sshd: %s", s.output.String()) - } - s.cleanup() -} - -func writeFile(path string, contents []byte) { - f, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) - if err != nil { - panic(err) - } - defer f.Close() - if _, err := f.Write(contents); err != nil { - panic(err) - } -} - -// newServer returns a new mock ssh server. -func newServer(t *testing.T) *server { - if testing.Short() { - t.Skip("skipping test due to -short") - } - dir, err := ioutil.TempDir("", "sshtest") - if err != nil { - t.Fatal(err) - } - f, err := os.Create(filepath.Join(dir, "sshd_config")) - if err != nil { - t.Fatal(err) - } - err = configTmpl.Execute(f, map[string]string{ - "Dir": dir, - }) - if err != nil { - t.Fatal(err) - } - f.Close() - - for k, v := range testdata.PEMBytes { - filename := "id_" + k - writeFile(filepath.Join(dir, filename), v) - writeFile(filepath.Join(dir, filename+".pub"), ssh.MarshalAuthorizedKey(testPublicKeys[k])) - } - - var authkeys bytes.Buffer - for k, _ := range testdata.PEMBytes { - authkeys.Write(ssh.MarshalAuthorizedKey(testPublicKeys[k])) - } - writeFile(filepath.Join(dir, "authorized_keys"), authkeys.Bytes()) - - return &server{ - t: t, - configfile: f.Name(), - cleanup: func() { - if err := os.RemoveAll(dir); err != nil { - t.Error(err) - } - }, - } -} diff --git a/vendor/golang.org/x/crypto/ssh/test/testdata_test.go b/vendor/golang.org/x/crypto/ssh/test/testdata_test.go deleted file mode 100644 index a053f67..0000000 --- a/vendor/golang.org/x/crypto/ssh/test/testdata_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// IMPLEMENTATION NOTE: To avoid a package loop, this file is in three places: -// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three -// instances. - -package test - -import ( - "crypto/rand" - "fmt" - - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/testdata" -) - -var ( - testPrivateKeys map[string]interface{} - testSigners map[string]ssh.Signer - testPublicKeys map[string]ssh.PublicKey -) - -func init() { - var err error - - n := len(testdata.PEMBytes) - testPrivateKeys = make(map[string]interface{}, n) - testSigners = make(map[string]ssh.Signer, n) - testPublicKeys = make(map[string]ssh.PublicKey, n) - for t, k := range testdata.PEMBytes { - testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) - if err != nil { - panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) - } - testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) - if err != nil { - panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) - } - testPublicKeys[t] = testSigners[t].PublicKey() - } - - // Create a cert and sign it for use in tests. - testCert := &ssh.Certificate{ - Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage - ValidAfter: 0, // unix epoch - ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. - Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - Key: testPublicKeys["ecdsa"], - SignatureKey: testPublicKeys["rsa"], - Permissions: ssh.Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - testCert.SignCert(rand.Reader, testSigners["rsa"]) - testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] - testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) - if err != nil { - panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/testdata/doc.go b/vendor/golang.org/x/crypto/ssh/testdata/doc.go deleted file mode 100644 index fcae47c..0000000 --- a/vendor/golang.org/x/crypto/ssh/testdata/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This package contains test data shared between the various subpackages of -// the golang.org/x/crypto/ssh package. Under no circumstance should -// this data be used for production code. -package testdata // import "golang.org/x/crypto/ssh/testdata" diff --git a/vendor/golang.org/x/crypto/ssh/testdata/keys.go b/vendor/golang.org/x/crypto/ssh/testdata/keys.go deleted file mode 100644 index 736dad9..0000000 --- a/vendor/golang.org/x/crypto/ssh/testdata/keys.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package testdata - -var PEMBytes = map[string][]byte{ - "dsa": []byte(`-----BEGIN DSA PRIVATE KEY----- -MIIBuwIBAAKBgQD6PDSEyXiI9jfNs97WuM46MSDCYlOqWw80ajN16AohtBncs1YB -lHk//dQOvCYOsYaE+gNix2jtoRjwXhDsc25/IqQbU1ahb7mB8/rsaILRGIbA5WH3 -EgFtJmXFovDz3if6F6TzvhFpHgJRmLYVR8cqsezL3hEZOvvs2iH7MorkxwIVAJHD -nD82+lxh2fb4PMsIiaXudAsBAoGAQRf7Q/iaPRn43ZquUhd6WwvirqUj+tkIu6eV -2nZWYmXLlqFQKEy4Tejl7Wkyzr2OSYvbXLzo7TNxLKoWor6ips0phYPPMyXld14r -juhT24CrhOzuLMhDduMDi032wDIZG4Y+K7ElU8Oufn8Sj5Wge8r6ANmmVgmFfynr -FhdYCngCgYEA3ucGJ93/Mx4q4eKRDxcWD3QzWyqpbRVRRV1Vmih9Ha/qC994nJFz -DQIdjxDIT2Rk2AGzMqFEB68Zc3O+Wcsmz5eWWzEwFxaTwOGWTyDqsDRLm3fD+QYj -nOwuxb0Kce+gWI8voWcqC9cyRm09jGzu2Ab3Bhtpg8JJ8L7gS3MRZK4CFEx4UAfY -Fmsr0W6fHB9nhS4/UXM8 ------END DSA PRIVATE KEY----- -`), - "ecdsa": []byte(`-----BEGIN EC PRIVATE KEY----- -MHcCAQEEINGWx0zo6fhJ/0EAfrPzVFyFC9s18lBt3cRoEDhS3ARooAoGCCqGSM49 -AwEHoUQDQgAEi9Hdw6KvZcWxfg2IDhA7UkpDtzzt6ZqJXSsFdLd+Kx4S3Sx4cVO+ -6/ZOXRnPmNAlLUqjShUsUBBngG0u2fqEqA== ------END EC PRIVATE KEY----- -`), - "rsa": []byte(`-----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQC8A6FGHDiWCSREAXCq6yBfNVr0xCVG2CzvktFNRpue+RXrGs/2 -a6ySEJQb3IYquw7HlJgu6fg3WIWhOmHCjfpG0PrL4CRwbqQ2LaPPXhJErWYejcD8 -Di00cF3677+G10KMZk9RXbmHtuBFZT98wxg8j+ZsBMqGM1+7yrWUvynswQIDAQAB -AoGAJMCk5vqfSRzyXOTXLGIYCuR4Kj6pdsbNSeuuRGfYBeR1F2c/XdFAg7D/8s5R -38p/Ih52/Ty5S8BfJtwtvgVY9ecf/JlU/rl/QzhG8/8KC0NG7KsyXklbQ7gJT8UT -Ojmw5QpMk+rKv17ipDVkQQmPaj+gJXYNAHqImke5mm/K/h0CQQDciPmviQ+DOhOq -2ZBqUfH8oXHgFmp7/6pXw80DpMIxgV3CwkxxIVx6a8lVH9bT/AFySJ6vXq4zTuV9 -6QmZcZzDAkEA2j/UXJPIs1fQ8z/6sONOkU/BjtoePFIWJlRxdN35cZjXnBraX5UR -fFHkePv4YwqmXNqrBOvSu+w2WdSDci+IKwJAcsPRc/jWmsrJW1q3Ha0hSf/WG/Bu -X7MPuXaKpP/DkzGoUmb8ks7yqj6XWnYkPNLjCc8izU5vRwIiyWBRf4mxMwJBAILa -NDvRS0rjwt6lJGv7zPZoqDc65VfrK2aNyHx2PgFyzwrEOtuF57bu7pnvEIxpLTeM -z26i6XVMeYXAWZMTloMCQBbpGgEERQpeUknLBqUHhg/wXF6+lFA+vEGnkY+Dwab2 -KCXFGd+SQ5GdUcEMe9isUH6DYj/6/yCDoFrXXmpQb+M= ------END RSA PRIVATE KEY----- -`), - "ed25519": []byte(`-----BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW -QyNTUxOQAAACA+3f7hS7g5UWwXOGVTrMfhmxyrjqz7Sxxbx7I1j8DvvwAAAJhAFfkOQBX5 -DgAAAAtzc2gtZWQyNTUxOQAAACA+3f7hS7g5UWwXOGVTrMfhmxyrjqz7Sxxbx7I1j8Dvvw -AAAEAaYmXltfW6nhRo3iWGglRB48lYq0z0Q3I3KyrdutEr6j7d/uFLuDlRbBc4ZVOsx+Gb -HKuOrPtLHFvHsjWPwO+/AAAAE2dhcnRvbm1AZ2FydG9ubS14cHMBAg== ------END OPENSSH PRIVATE KEY----- -`), - "user": []byte(`-----BEGIN EC PRIVATE KEY----- -MHcCAQEEILYCAeq8f7V4vSSypRw7pxy8yz3V5W4qg8kSC3zJhqpQoAoGCCqGSM49 -AwEHoUQDQgAEYcO2xNKiRUYOLEHM7VYAp57HNyKbOdYtHD83Z4hzNPVC4tM5mdGD -PLL8IEwvYu2wq+lpXfGQnNMbzYf9gspG0w== ------END EC PRIVATE KEY----- -`), -} - -var PEMEncryptedKeys = []struct { - Name string - EncryptionKey string - PEMBytes []byte -}{ - 0: { - Name: "rsa-encrypted", - EncryptionKey: "r54-G0pher_t3st$", - PEMBytes: []byte(`-----BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-128-CBC,3E1714DE130BC5E81327F36564B05462 - -MqW88sud4fnWk/Jk3fkjh7ydu51ZkHLN5qlQgA4SkAXORPPMj2XvqZOv1v2LOgUV -dUevUn8PZK7a9zbZg4QShUSzwE5k6wdB7XKPyBgI39mJ79GBd2U4W3h6KT6jIdWA -goQpluxkrzr2/X602IaxLEre97FT9mpKC6zxKCLvyFWVIP9n3OSFS47cTTXyFr+l -7PdRhe60nn6jSBgUNk/Q1lAvEQ9fufdPwDYY93F1wyJ6lOr0F1+mzRrMbH67NyKs -rG8J1Fa7cIIre7ueKIAXTIne7OAWqpU9UDgQatDtZTbvA7ciqGsSFgiwwW13N+Rr -hN8MkODKs9cjtONxSKi05s206A3NDU6STtZ3KuPDjFE1gMJODotOuqSM+cxKfyFq -wxpk/CHYCDdMAVBSwxb/vraOHamylL4uCHpJdBHypzf2HABt+lS8Su23uAmL87DR -yvyCS/lmpuNTndef6qHPRkoW2EV3xqD3ovosGf7kgwGJUk2ZpCLVteqmYehKlZDK -r/Jy+J26ooI2jIg9bjvD1PZq+Mv+2dQ1RlDrPG3PB+rEixw6vBaL9x3jatCd4ej7 -XG7lb3qO9xFpLsx89tkEcvpGR+broSpUJ6Mu5LBCVmrvqHjvnDhrZVz1brMiQtU9 -iMZbgXqDLXHd6ERWygk7OTU03u+l1gs+KGMfmS0h0ZYw6KGVLgMnsoxqd6cFSKNB -8Ohk9ZTZGCiovlXBUepyu8wKat1k8YlHSfIHoRUJRhhcd7DrmojC+bcbMIZBU22T -Pl2ftVRGtcQY23lYd0NNKfebF7ncjuLWQGy+vZW+7cgfI6wPIbfYfP6g7QAutk6W -KQx0AoX5woZ6cNxtpIrymaVjSMRRBkKQrJKmRp3pC/lul5E5P2cueMs1fj4OHTbJ -lAUv88ywr+R+mRgYQlFW/XQ653f6DT4t6+njfO9oBcPrQDASZel3LjXLpjjYG/N5 -+BWnVexuJX9ika8HJiFl55oqaKb+WknfNhk5cPY+x7SDV9ywQeMiDZpr0ffeYAEP -LlwwiWRDYpO+uwXHSFF3+JjWwjhs8m8g99iFb7U93yKgBB12dCEPPa2ZeH9wUHMJ -sreYhNuq6f4iWWSXpzN45inQqtTi8jrJhuNLTT543ErW7DtntBO2rWMhff3aiXbn -Uy3qzZM1nPbuCGuBmP9L2dJ3Z5ifDWB4JmOyWY4swTZGt9AVmUxMIKdZpRONx8vz -I9u9nbVPGZBcou50Pa0qTLbkWsSL94MNXrARBxzhHC9Zs6XNEtwN7mOuii7uMkVc -adrxgknBH1J1N+NX/eTKzUwJuPvDtA+Z5ILWNN9wpZT/7ed8zEnKHPNUexyeT5g3 -uw9z9jH7ffGxFYlx87oiVPHGOrCXYZYW5uoZE31SCBkbtNuffNRJRKIFeipmpJ3P -7bpAG+kGHMelQH6b+5K1Qgsv4tpuSyKeTKpPFH9Av5nN4P1ZBm9N80tzbNWqjSJm -S7rYdHnuNEVnUGnRmEUMmVuYZnNBEVN/fP2m2SEwXcP3Uh7TiYlcWw10ygaGmOr7 -MvMLGkYgQ4Utwnd98mtqa0jr0hK2TcOSFir3AqVvXN3XJj4cVULkrXe4Im1laWgp ------END RSA PRIVATE KEY----- -`), - }, - - 1: { - Name: "dsa-encrypted", - EncryptionKey: "qG0pher-dsa_t3st$", - PEMBytes: []byte(`-----BEGIN DSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-128-CBC,7CE7A6E4A647DC01AF860210B15ADE3E - -hvnBpI99Hceq/55pYRdOzBLntIEis02JFNXuLEydWL+RJBFDn7tA+vXec0ERJd6J -G8JXlSOAhmC2H4uK3q2xR8/Y3yL95n6OIcjvCBiLsV+o3jj1MYJmErxP6zRtq4w3 -JjIjGHWmaYFSxPKQ6e8fs74HEqaeMV9ONUoTtB+aISmgaBL15Fcoayg245dkBvVl -h5Kqspe7yvOBmzA3zjRuxmSCqKJmasXM7mqs3vIrMxZE3XPo1/fWKcPuExgpVQoT -HkJZEoIEIIPnPMwT2uYbFJSGgPJVMDT84xz7yvjCdhLmqrsXgs5Qw7Pw0i0c0BUJ -b7fDJ2UhdiwSckWGmIhTLlJZzr8K+JpjCDlP+REYBI5meB7kosBnlvCEHdw2EJkH -0QDc/2F4xlVrHOLbPRFyu1Oi2Gvbeoo9EsM/DThpd1hKAlb0sF5Y0y0d+owv0PnE -R/4X3HWfIdOHsDUvJ8xVWZ4BZk9Zk9qol045DcFCehpr/3hslCrKSZHakLt9GI58 -vVQJ4L0aYp5nloLfzhViZtKJXRLkySMKdzYkIlNmW1oVGl7tce5UCNI8Nok4j6yn -IiHM7GBn+0nJoKTXsOGMIBe3ulKlKVxLjEuk9yivh/8= ------END DSA PRIVATE KEY----- -`), - }, -} diff --git a/vendor/golang.org/x/crypto/ssh/testdata_test.go b/vendor/golang.org/x/crypto/ssh/testdata_test.go deleted file mode 100644 index 2da8c79..0000000 --- a/vendor/golang.org/x/crypto/ssh/testdata_test.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// IMPLEMENTATION NOTE: To avoid a package loop, this file is in three places: -// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three -// instances. - -package ssh - -import ( - "crypto/rand" - "fmt" - - "golang.org/x/crypto/ssh/testdata" -) - -var ( - testPrivateKeys map[string]interface{} - testSigners map[string]Signer - testPublicKeys map[string]PublicKey -) - -func init() { - var err error - - n := len(testdata.PEMBytes) - testPrivateKeys = make(map[string]interface{}, n) - testSigners = make(map[string]Signer, n) - testPublicKeys = make(map[string]PublicKey, n) - for t, k := range testdata.PEMBytes { - testPrivateKeys[t], err = ParseRawPrivateKey(k) - if err != nil { - panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) - } - testSigners[t], err = NewSignerFromKey(testPrivateKeys[t]) - if err != nil { - panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) - } - testPublicKeys[t] = testSigners[t].PublicKey() - } - - // Create a cert and sign it for use in tests. - testCert := &Certificate{ - Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage - ValidAfter: 0, // unix epoch - ValidBefore: CertTimeInfinity, // The end of currently representable time. - Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil - Key: testPublicKeys["ecdsa"], - SignatureKey: testPublicKeys["rsa"], - Permissions: Permissions{ - CriticalOptions: map[string]string{}, - Extensions: map[string]string{}, - }, - } - testCert.SignCert(rand.Reader, testSigners["rsa"]) - testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] - testSigners["cert"], err = NewCertSigner(testCert, testSigners["ecdsa"]) - if err != nil { - panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) - } -} diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go deleted file mode 100644 index 62fba62..0000000 --- a/vendor/golang.org/x/crypto/ssh/transport.go +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bufio" - "errors" - "io" -) - -const ( - gcmCipherID = "aes128-gcm@openssh.com" - aes128cbcID = "aes128-cbc" - tripledescbcID = "3des-cbc" -) - -// packetConn represents a transport that implements packet based -// operations. -type packetConn interface { - // Encrypt and send a packet of data to the remote peer. - writePacket(packet []byte) error - - // Read a packet from the connection - readPacket() ([]byte, error) - - // Close closes the write-side of the connection. - Close() error -} - -// transport is the keyingTransport that implements the SSH packet -// protocol. -type transport struct { - reader connectionState - writer connectionState - - bufReader *bufio.Reader - bufWriter *bufio.Writer - rand io.Reader - - io.Closer -} - -// packetCipher represents a combination of SSH encryption/MAC -// protocol. A single instance should be used for one direction only. -type packetCipher interface { - // writePacket encrypts the packet and writes it to w. The - // contents of the packet are generally scrambled. - writePacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error - - // readPacket reads and decrypts a packet of data. The - // returned packet may be overwritten by future calls of - // readPacket. - readPacket(seqnum uint32, r io.Reader) ([]byte, error) -} - -// connectionState represents one side (read or write) of the -// connection. This is necessary because each direction has its own -// keys, and can even have its own algorithms -type connectionState struct { - packetCipher - seqNum uint32 - dir direction - pendingKeyChange chan packetCipher -} - -// prepareKeyChange sets up key material for a keychange. The key changes in -// both directions are triggered by reading and writing a msgNewKey packet -// respectively. -func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { - if ciph, err := newPacketCipher(t.reader.dir, algs.r, kexResult); err != nil { - return err - } else { - t.reader.pendingKeyChange <- ciph - } - - if ciph, err := newPacketCipher(t.writer.dir, algs.w, kexResult); err != nil { - return err - } else { - t.writer.pendingKeyChange <- ciph - } - - return nil -} - -// Read and decrypt next packet. -func (t *transport) readPacket() ([]byte, error) { - return t.reader.readPacket(t.bufReader) -} - -func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) { - packet, err := s.packetCipher.readPacket(s.seqNum, r) - s.seqNum++ - if err == nil && len(packet) == 0 { - err = errors.New("ssh: zero length packet") - } - - if len(packet) > 0 { - switch packet[0] { - case msgNewKeys: - select { - case cipher := <-s.pendingKeyChange: - s.packetCipher = cipher - default: - return nil, errors.New("ssh: got bogus newkeys message.") - } - - case msgDisconnect: - // Transform a disconnect message into an - // error. Since this is lowest level at which - // we interpret message types, doing it here - // ensures that we don't have to handle it - // elsewhere. - var msg disconnectMsg - if err := Unmarshal(packet, &msg); err != nil { - return nil, err - } - return nil, &msg - } - } - - // The packet may point to an internal buffer, so copy the - // packet out here. - fresh := make([]byte, len(packet)) - copy(fresh, packet) - - return fresh, err -} - -func (t *transport) writePacket(packet []byte) error { - return t.writer.writePacket(t.bufWriter, t.rand, packet) -} - -func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte) error { - changeKeys := len(packet) > 0 && packet[0] == msgNewKeys - - err := s.packetCipher.writePacket(s.seqNum, w, rand, packet) - if err != nil { - return err - } - if err = w.Flush(); err != nil { - return err - } - s.seqNum++ - if changeKeys { - select { - case cipher := <-s.pendingKeyChange: - s.packetCipher = cipher - default: - panic("ssh: no key material for msgNewKeys") - } - } - return err -} - -func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport { - t := &transport{ - bufReader: bufio.NewReader(rwc), - bufWriter: bufio.NewWriter(rwc), - rand: rand, - reader: connectionState{ - packetCipher: &streamPacketCipher{cipher: noneCipher{}}, - pendingKeyChange: make(chan packetCipher, 1), - }, - writer: connectionState{ - packetCipher: &streamPacketCipher{cipher: noneCipher{}}, - pendingKeyChange: make(chan packetCipher, 1), - }, - Closer: rwc, - } - if isClient { - t.reader.dir = serverKeys - t.writer.dir = clientKeys - } else { - t.reader.dir = clientKeys - t.writer.dir = serverKeys - } - - return t -} - -type direction struct { - ivTag []byte - keyTag []byte - macKeyTag []byte -} - -var ( - serverKeys = direction{[]byte{'B'}, []byte{'D'}, []byte{'F'}} - clientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}} -) - -// generateKeys generates key material for IV, MAC and encryption. -func generateKeys(d direction, algs directionAlgorithms, kex *kexResult) (iv, key, macKey []byte) { - cipherMode := cipherModes[algs.Cipher] - macMode := macModes[algs.MAC] - - iv = make([]byte, cipherMode.ivSize) - key = make([]byte, cipherMode.keySize) - macKey = make([]byte, macMode.keySize) - - generateKeyMaterial(iv, d.ivTag, kex) - generateKeyMaterial(key, d.keyTag, kex) - generateKeyMaterial(macKey, d.macKeyTag, kex) - return -} - -// setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as -// described in RFC 4253, section 6.4. direction should either be serverKeys -// (to setup server->client keys) or clientKeys (for client->server keys). -func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { - iv, key, macKey := generateKeys(d, algs, kex) - - if algs.Cipher == gcmCipherID { - return newGCMCipher(iv, key, macKey) - } - - if algs.Cipher == aes128cbcID { - return newAESCBCCipher(iv, key, macKey, algs) - } - - if algs.Cipher == tripledescbcID { - return newTripleDESCBCCipher(iv, key, macKey, algs) - } - - c := &streamPacketCipher{ - mac: macModes[algs.MAC].new(macKey), - } - c.macResult = make([]byte, c.mac.Size()) - - var err error - c.cipher, err = cipherModes[algs.Cipher].createStream(key, iv) - if err != nil { - return nil, err - } - - return c, nil -} - -// generateKeyMaterial fills out with key material generated from tag, K, H -// and sessionId, as specified in RFC 4253, section 7.2. -func generateKeyMaterial(out, tag []byte, r *kexResult) { - var digestsSoFar []byte - - h := r.Hash.New() - for len(out) > 0 { - h.Reset() - h.Write(r.K) - h.Write(r.H) - - if len(digestsSoFar) == 0 { - h.Write(tag) - h.Write(r.SessionID) - } else { - h.Write(digestsSoFar) - } - - digest := h.Sum(nil) - n := copy(out, digest) - out = out[n:] - if len(out) > 0 { - digestsSoFar = append(digestsSoFar, digest...) - } - } -} - -const packageVersion = "SSH-2.0-Go" - -// Sends and receives a version line. The versionLine string should -// be US ASCII, start with "SSH-2.0-", and should not include a -// newline. exchangeVersions returns the other side's version line. -func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) { - // Contrary to the RFC, we do not ignore lines that don't - // start with "SSH-2.0-" to make the library usable with - // nonconforming servers. - for _, c := range versionLine { - // The spec disallows non US-ASCII chars, and - // specifically forbids null chars. - if c < 32 { - return nil, errors.New("ssh: junk character in version line") - } - } - if _, err = rw.Write(append(versionLine, '\r', '\n')); err != nil { - return - } - - them, err = readVersion(rw) - return them, err -} - -// maxVersionStringBytes is the maximum number of bytes that we'll -// accept as a version string. RFC 4253 section 4.2 limits this at 255 -// chars -const maxVersionStringBytes = 255 - -// Read version string as specified by RFC 4253, section 4.2. -func readVersion(r io.Reader) ([]byte, error) { - versionString := make([]byte, 0, 64) - var ok bool - var buf [1]byte - - for len(versionString) < maxVersionStringBytes { - _, err := io.ReadFull(r, buf[:]) - if err != nil { - return nil, err - } - // The RFC says that the version should be terminated with \r\n - // but several SSH servers actually only send a \n. - if buf[0] == '\n' { - ok = true - break - } - - // non ASCII chars are disallowed, but we are lenient, - // since Go doesn't use null-terminated strings. - - // The RFC allows a comment after a space, however, - // all of it (version and comments) goes into the - // session hash. - versionString = append(versionString, buf[0]) - } - - if !ok { - return nil, errors.New("ssh: overflow reading version string") - } - - // There might be a '\r' on the end which we should remove. - if len(versionString) > 0 && versionString[len(versionString)-1] == '\r' { - versionString = versionString[:len(versionString)-1] - } - return versionString, nil -} diff --git a/vendor/golang.org/x/crypto/ssh/transport_test.go b/vendor/golang.org/x/crypto/ssh/transport_test.go deleted file mode 100644 index 92d83ab..0000000 --- a/vendor/golang.org/x/crypto/ssh/transport_test.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ssh - -import ( - "bytes" - "crypto/rand" - "encoding/binary" - "strings" - "testing" -) - -func TestReadVersion(t *testing.T) { - longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] - cases := map[string]string{ - "SSH-2.0-bla\r\n": "SSH-2.0-bla", - "SSH-2.0-bla\n": "SSH-2.0-bla", - longversion + "\r\n": longversion, - } - - for in, want := range cases { - result, err := readVersion(bytes.NewBufferString(in)) - if err != nil { - t.Errorf("readVersion(%q): %s", in, err) - } - got := string(result) - if got != want { - t.Errorf("got %q, want %q", got, want) - } - } -} - -func TestReadVersionError(t *testing.T) { - longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] - cases := []string{ - longversion + "too-long\r\n", - } - for _, in := range cases { - if _, err := readVersion(bytes.NewBufferString(in)); err == nil { - t.Errorf("readVersion(%q) should have failed", in) - } - } -} - -func TestExchangeVersionsBasic(t *testing.T) { - v := "SSH-2.0-bla" - buf := bytes.NewBufferString(v + "\r\n") - them, err := exchangeVersions(buf, []byte("xyz")) - if err != nil { - t.Errorf("exchangeVersions: %v", err) - } - - if want := "SSH-2.0-bla"; string(them) != want { - t.Errorf("got %q want %q for our version", them, want) - } -} - -func TestExchangeVersions(t *testing.T) { - cases := []string{ - "not\x000allowed", - "not allowed\n", - } - for _, c := range cases { - buf := bytes.NewBufferString("SSH-2.0-bla\r\n") - if _, err := exchangeVersions(buf, []byte(c)); err == nil { - t.Errorf("exchangeVersions(%q): should have failed", c) - } - } -} - -type closerBuffer struct { - bytes.Buffer -} - -func (b *closerBuffer) Close() error { - return nil -} - -func TestTransportMaxPacketWrite(t *testing.T) { - buf := &closerBuffer{} - tr := newTransport(buf, rand.Reader, true) - huge := make([]byte, maxPacket+1) - err := tr.writePacket(huge) - if err == nil { - t.Errorf("transport accepted write for a huge packet.") - } -} - -func TestTransportMaxPacketReader(t *testing.T) { - var header [5]byte - huge := make([]byte, maxPacket+128) - binary.BigEndian.PutUint32(header[0:], uint32(len(huge))) - // padding. - header[4] = 0 - - buf := &closerBuffer{} - buf.Write(header[:]) - buf.Write(huge) - - tr := newTransport(buf, rand.Reader, true) - _, err := tr.readPacket() - if err == nil { - t.Errorf("transport succeeded reading huge packet.") - } else if !strings.Contains(err.Error(), "large") { - t.Errorf("got %q, should mention %q", err.Error(), "large") - } -} diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go deleted file mode 100644 index f143ed6..0000000 --- a/vendor/golang.org/x/net/context/context.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package context defines the Context type, which carries deadlines, -// cancelation signals, and other request-scoped values across API boundaries -// and between processes. -// -// Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must -// propagate the Context, optionally replacing it with a modified copy created -// using WithDeadline, WithTimeout, WithCancel, or WithValue. -// -// Programs that use Contexts should follow these rules to keep interfaces -// consistent across packages and enable static analysis tools to check context -// propagation: -// -// Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first -// parameter, typically named ctx: -// -// func DoSomething(ctx context.Context, arg Arg) error { -// // ... use ctx ... -// } -// -// Do not pass a nil Context, even if a function permits it. Pass context.TODO -// if you are unsure about which Context to use. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -// -// The same Context may be passed to functions running in different goroutines; -// Contexts are safe for simultaneous use by multiple goroutines. -// -// See http://blog.golang.org/context for example code for a server that uses -// Contexts. -package context // import "golang.org/x/net/context" - -import "time" - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - // - // WithCancel arranges for Done to be closed when cancel is called; - // WithDeadline arranges for Done to be closed when the deadline - // expires; WithTimeout arranges for Done to be closed when the timeout - // elapses. - // - // Done is provided for use in select statements: - // - // // Stream generates values with DoSomething and sends them to out - // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out chan<- Value) error { - // for { - // v, err := DoSomething(ctx) - // if err != nil { - // return err - // } - // select { - // case <-ctx.Done(): - // return ctx.Err() - // case out <- v: - // } - // } - // } - // - // See http://blog.golang.org/pipelines for more examples of how to use - // a Done channel for cancelation. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - // - // A key identifies a specific value in a Context. Functions that wish - // to store values in Context typically allocate a key in a global - // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; - // packages should define keys as an unexported type to avoid - // collisions. - // - // Packages that define a Context key should provide type-safe accessors - // for the values stores using that key: - // - // // Package user defines a User type that's stored in Contexts. - // package user - // - // import "golang.org/x/net/context" - // - // // User is the type of value stored in the Contexts. - // type User struct {...} - // - // // key is an unexported type for keys defined in this package. - // // This prevents collisions with keys defined in other packages. - // type key int - // - // // userKey is the key for user.User values in Contexts. It is - // // unexported; clients use user.NewContext and user.FromContext - // // instead of using this key directly. - // var userKey key = 0 - // - // // NewContext returns a new Context that carries value u. - // func NewContext(ctx context.Context, u *User) context.Context { - // return context.WithValue(ctx, userKey, u) - // } - // - // // FromContext returns the User value stored in ctx, if any. - // func FromContext(ctx context.Context) (*User, bool) { - // u, ok := ctx.Value(userKey).(*User) - // return u, ok - // } - Value(key interface{}) interface{} -} - -// Background returns a non-nil, empty Context. It is never canceled, has no -// values, and has no deadline. It is typically used by the main function, -// initialization, and tests, and as the top-level Context for incoming -// requests. -func Background() Context { - return background -} - -// TODO returns a non-nil, empty Context. Code should use context.TODO when -// it's unclear which Context to use or it is not yet available (because the -// surrounding function has not yet been extended to accept a Context -// parameter). TODO is recognized by static analysis tools that determine -// whether Contexts are propagated correctly in a program. -func TODO() Context { - return todo -} - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc func() diff --git a/vendor/golang.org/x/net/context/context_test.go b/vendor/golang.org/x/net/context/context_test.go deleted file mode 100644 index 6284413..0000000 --- a/vendor/golang.org/x/net/context/context_test.go +++ /dev/null @@ -1,583 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.7 - -package context - -import ( - "fmt" - "math/rand" - "runtime" - "strings" - "sync" - "testing" - "time" -) - -// otherContext is a Context that's not one of the types defined in context.go. -// This lets us test code paths that differ based on the underlying type of the -// Context. -type otherContext struct { - Context -} - -func TestBackground(t *testing.T) { - c := Background() - if c == nil { - t.Fatalf("Background returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.Background"; got != want { - t.Errorf("Background().String() = %q want %q", got, want) - } -} - -func TestTODO(t *testing.T) { - c := TODO() - if c == nil { - t.Fatalf("TODO returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.TODO"; got != want { - t.Errorf("TODO().String() = %q want %q", got, want) - } -} - -func TestWithCancel(t *testing.T) { - c1, cancel := WithCancel(Background()) - - if got, want := fmt.Sprint(c1), "context.Background.WithCancel"; got != want { - t.Errorf("c1.String() = %q want %q", got, want) - } - - o := otherContext{c1} - c2, _ := WithCancel(o) - contexts := []Context{c1, o, c2} - - for i, c := range contexts { - if d := c.Done(); d == nil { - t.Errorf("c[%d].Done() == %v want non-nil", i, d) - } - if e := c.Err(); e != nil { - t.Errorf("c[%d].Err() == %v want nil", i, e) - } - - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - } - - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - - for i, c := range contexts { - select { - case <-c.Done(): - default: - t.Errorf("<-c[%d].Done() blocked, but shouldn't have", i) - } - if e := c.Err(); e != Canceled { - t.Errorf("c[%d].Err() == %v want %v", i, e, Canceled) - } - } -} - -func TestParentFinishesChild(t *testing.T) { - // Context tree: - // parent -> cancelChild - // parent -> valueChild -> timerChild - parent, cancel := WithCancel(Background()) - cancelChild, stop := WithCancel(parent) - defer stop() - valueChild := WithValue(parent, "key", "value") - timerChild, stop := WithTimeout(valueChild, 10000*time.Hour) - defer stop() - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-cancelChild.Done(): - t.Errorf("<-cancelChild.Done() == %v want nothing (it should block)", x) - case x := <-timerChild.Done(): - t.Errorf("<-timerChild.Done() == %v want nothing (it should block)", x) - case x := <-valueChild.Done(): - t.Errorf("<-valueChild.Done() == %v want nothing (it should block)", x) - default: - } - - // The parent's children should contain the two cancelable children. - pc := parent.(*cancelCtx) - cc := cancelChild.(*cancelCtx) - tc := timerChild.(*timerCtx) - pc.mu.Lock() - if len(pc.children) != 2 || !pc.children[cc] || !pc.children[tc] { - t.Errorf("bad linkage: pc.children = %v, want %v and %v", - pc.children, cc, tc) - } - pc.mu.Unlock() - - if p, ok := parentCancelCtx(cc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(cancelChild.Context) = %v, %v want %v, true", p, ok, pc) - } - if p, ok := parentCancelCtx(tc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(timerChild.Context) = %v, %v want %v, true", p, ok, pc) - } - - cancel() - - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("pc.cancel didn't clear pc.children = %v", pc.children) - } - pc.mu.Unlock() - - // parent and children should all be finished. - check := func(ctx Context, name string) { - select { - case <-ctx.Done(): - default: - t.Errorf("<-%s.Done() blocked, but shouldn't have", name) - } - if e := ctx.Err(); e != Canceled { - t.Errorf("%s.Err() == %v want %v", name, e, Canceled) - } - } - check(parent, "parent") - check(cancelChild, "cancelChild") - check(valueChild, "valueChild") - check(timerChild, "timerChild") - - // WithCancel should return a canceled context on a canceled parent. - precanceledChild := WithValue(parent, "key", "value") - select { - case <-precanceledChild.Done(): - default: - t.Errorf("<-precanceledChild.Done() blocked, but shouldn't have") - } - if e := precanceledChild.Err(); e != Canceled { - t.Errorf("precanceledChild.Err() == %v want %v", e, Canceled) - } -} - -func TestChildFinishesFirst(t *testing.T) { - cancelable, stop := WithCancel(Background()) - defer stop() - for _, parent := range []Context{Background(), cancelable} { - child, cancel := WithCancel(parent) - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-child.Done(): - t.Errorf("<-child.Done() == %v want nothing (it should block)", x) - default: - } - - cc := child.(*cancelCtx) - pc, pcok := parent.(*cancelCtx) // pcok == false when parent == Background() - if p, ok := parentCancelCtx(cc.Context); ok != pcok || (ok && pc != p) { - t.Errorf("bad linkage: parentCancelCtx(cc.Context) = %v, %v want %v, %v", p, ok, pc, pcok) - } - - if pcok { - pc.mu.Lock() - if len(pc.children) != 1 || !pc.children[cc] { - t.Errorf("bad linkage: pc.children = %v, cc = %v", pc.children, cc) - } - pc.mu.Unlock() - } - - cancel() - - if pcok { - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("child's cancel didn't remove self from pc.children = %v", pc.children) - } - pc.mu.Unlock() - } - - // child should be finished. - select { - case <-child.Done(): - default: - t.Errorf("<-child.Done() blocked, but shouldn't have") - } - if e := child.Err(); e != Canceled { - t.Errorf("child.Err() == %v want %v", e, Canceled) - } - - // parent should not be finished. - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - default: - } - if e := parent.Err(); e != nil { - t.Errorf("parent.Err() == %v want nil", e) - } - } -} - -func testDeadline(c Context, wait time.Duration, t *testing.T) { - select { - case <-time.After(wait): - t.Fatalf("context should have timed out") - case <-c.Done(): - } - if e := c.Err(); e != DeadlineExceeded { - t.Errorf("c.Err() == %v want %v", e, DeadlineExceeded) - } -} - -func TestDeadline(t *testing.T) { - t.Parallel() - const timeUnit = 500 * time.Millisecond - c, _ := WithDeadline(Background(), time.Now().Add(1*timeUnit)) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 2*timeUnit, t) - - c, _ = WithDeadline(Background(), time.Now().Add(1*timeUnit)) - o := otherContext{c} - testDeadline(o, 2*timeUnit, t) - - c, _ = WithDeadline(Background(), time.Now().Add(1*timeUnit)) - o = otherContext{c} - c, _ = WithDeadline(o, time.Now().Add(3*timeUnit)) - testDeadline(c, 2*timeUnit, t) -} - -func TestTimeout(t *testing.T) { - t.Parallel() - const timeUnit = 500 * time.Millisecond - c, _ := WithTimeout(Background(), 1*timeUnit) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 2*timeUnit, t) - - c, _ = WithTimeout(Background(), 1*timeUnit) - o := otherContext{c} - testDeadline(o, 2*timeUnit, t) - - c, _ = WithTimeout(Background(), 1*timeUnit) - o = otherContext{c} - c, _ = WithTimeout(o, 3*timeUnit) - testDeadline(c, 2*timeUnit, t) -} - -func TestCanceledTimeout(t *testing.T) { - t.Parallel() - const timeUnit = 500 * time.Millisecond - c, _ := WithTimeout(Background(), 2*timeUnit) - o := otherContext{c} - c, cancel := WithTimeout(o, 4*timeUnit) - cancel() - time.Sleep(1 * timeUnit) // let cancelation propagate - select { - case <-c.Done(): - default: - t.Errorf("<-c.Done() blocked, but shouldn't have") - } - if e := c.Err(); e != Canceled { - t.Errorf("c.Err() == %v want %v", e, Canceled) - } -} - -type key1 int -type key2 int - -var k1 = key1(1) -var k2 = key2(1) // same int as k1, different type -var k3 = key2(3) // same type as k2, different int - -func TestValues(t *testing.T) { - check := func(c Context, nm, v1, v2, v3 string) { - if v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 { - t.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0) - } - if v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 { - t.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0) - } - if v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 { - t.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0) - } - } - - c0 := Background() - check(c0, "c0", "", "", "") - - c1 := WithValue(Background(), k1, "c1k1") - check(c1, "c1", "c1k1", "", "") - - if got, want := fmt.Sprint(c1), `context.Background.WithValue(1, "c1k1")`; got != want { - t.Errorf("c.String() = %q want %q", got, want) - } - - c2 := WithValue(c1, k2, "c2k2") - check(c2, "c2", "c1k1", "c2k2", "") - - c3 := WithValue(c2, k3, "c3k3") - check(c3, "c2", "c1k1", "c2k2", "c3k3") - - c4 := WithValue(c3, k1, nil) - check(c4, "c4", "", "c2k2", "c3k3") - - o0 := otherContext{Background()} - check(o0, "o0", "", "", "") - - o1 := otherContext{WithValue(Background(), k1, "c1k1")} - check(o1, "o1", "c1k1", "", "") - - o2 := WithValue(o1, k2, "o2k2") - check(o2, "o2", "c1k1", "o2k2", "") - - o3 := otherContext{c4} - check(o3, "o3", "", "c2k2", "c3k3") - - o4 := WithValue(o3, k3, nil) - check(o4, "o4", "", "c2k2", "") -} - -func TestAllocs(t *testing.T) { - bg := Background() - for _, test := range []struct { - desc string - f func() - limit float64 - gccgoLimit float64 - }{ - { - desc: "Background()", - f: func() { Background() }, - limit: 0, - gccgoLimit: 0, - }, - { - desc: fmt.Sprintf("WithValue(bg, %v, nil)", k1), - f: func() { - c := WithValue(bg, k1, nil) - c.Value(k1) - }, - limit: 3, - gccgoLimit: 3, - }, - { - desc: "WithTimeout(bg, 15*time.Millisecond)", - f: func() { - c, _ := WithTimeout(bg, 15*time.Millisecond) - <-c.Done() - }, - limit: 8, - gccgoLimit: 16, - }, - { - desc: "WithCancel(bg)", - f: func() { - c, cancel := WithCancel(bg) - cancel() - <-c.Done() - }, - limit: 5, - gccgoLimit: 8, - }, - { - desc: "WithTimeout(bg, 100*time.Millisecond)", - f: func() { - c, cancel := WithTimeout(bg, 100*time.Millisecond) - cancel() - <-c.Done() - }, - limit: 8, - gccgoLimit: 25, - }, - } { - limit := test.limit - if runtime.Compiler == "gccgo" { - // gccgo does not yet do escape analysis. - // TODO(iant): Remove this when gccgo does do escape analysis. - limit = test.gccgoLimit - } - if n := testing.AllocsPerRun(100, test.f); n > limit { - t.Errorf("%s allocs = %f want %d", test.desc, n, int(limit)) - } - } -} - -func TestSimultaneousCancels(t *testing.T) { - root, cancel := WithCancel(Background()) - m := map[Context]CancelFunc{root: cancel} - q := []Context{root} - // Create a tree of contexts. - for len(q) != 0 && len(m) < 100 { - parent := q[0] - q = q[1:] - for i := 0; i < 4; i++ { - ctx, cancel := WithCancel(parent) - m[ctx] = cancel - q = append(q, ctx) - } - } - // Start all the cancels in a random order. - var wg sync.WaitGroup - wg.Add(len(m)) - for _, cancel := range m { - go func(cancel CancelFunc) { - cancel() - wg.Done() - }(cancel) - } - // Wait on all the contexts in a random order. - for ctx := range m { - select { - case <-ctx.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for <-ctx.Done(); stacks:\n%s", buf[:n]) - } - } - // Wait for all the cancel functions to return. - done := make(chan struct{}) - go func() { - wg.Wait() - close(done) - }() - select { - case <-done: - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for cancel functions; stacks:\n%s", buf[:n]) - } -} - -func TestInterlockedCancels(t *testing.T) { - parent, cancelParent := WithCancel(Background()) - child, cancelChild := WithCancel(parent) - go func() { - parent.Done() - cancelChild() - }() - cancelParent() - select { - case <-child.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for child.Done(); stacks:\n%s", buf[:n]) - } -} - -func TestLayersCancel(t *testing.T) { - testLayers(t, time.Now().UnixNano(), false) -} - -func TestLayersTimeout(t *testing.T) { - testLayers(t, time.Now().UnixNano(), true) -} - -func testLayers(t *testing.T, seed int64, testTimeout bool) { - rand.Seed(seed) - errorf := func(format string, a ...interface{}) { - t.Errorf(fmt.Sprintf("seed=%d: %s", seed, format), a...) - } - const ( - timeout = 200 * time.Millisecond - minLayers = 30 - ) - type value int - var ( - vals []*value - cancels []CancelFunc - numTimers int - ctx = Background() - ) - for i := 0; i < minLayers || numTimers == 0 || len(cancels) == 0 || len(vals) == 0; i++ { - switch rand.Intn(3) { - case 0: - v := new(value) - ctx = WithValue(ctx, v, v) - vals = append(vals, v) - case 1: - var cancel CancelFunc - ctx, cancel = WithCancel(ctx) - cancels = append(cancels, cancel) - case 2: - var cancel CancelFunc - ctx, cancel = WithTimeout(ctx, timeout) - cancels = append(cancels, cancel) - numTimers++ - } - } - checkValues := func(when string) { - for _, key := range vals { - if val := ctx.Value(key).(*value); key != val { - errorf("%s: ctx.Value(%p) = %p want %p", when, key, val, key) - } - } - } - select { - case <-ctx.Done(): - errorf("ctx should not be canceled yet") - default: - } - if s, prefix := fmt.Sprint(ctx), "context.Background."; !strings.HasPrefix(s, prefix) { - t.Errorf("ctx.String() = %q want prefix %q", s, prefix) - } - t.Log(ctx) - checkValues("before cancel") - if testTimeout { - select { - case <-ctx.Done(): - case <-time.After(timeout + 100*time.Millisecond): - errorf("ctx should have timed out") - } - checkValues("after timeout") - } else { - cancel := cancels[rand.Intn(len(cancels))] - cancel() - select { - case <-ctx.Done(): - default: - errorf("ctx should be canceled") - } - checkValues("after cancel") - } -} - -func TestCancelRemoves(t *testing.T) { - checkChildren := func(when string, ctx Context, want int) { - if got := len(ctx.(*cancelCtx).children); got != want { - t.Errorf("%s: context has %d children, want %d", when, got, want) - } - } - - ctx, _ := WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel := WithCancel(ctx) - checkChildren("with WithCancel child ", ctx, 1) - cancel() - checkChildren("after cancelling WithCancel child", ctx, 0) - - ctx, _ = WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel = WithTimeout(ctx, 60*time.Minute) - checkChildren("with WithTimeout child ", ctx, 1) - cancel() - checkChildren("after cancelling WithTimeout child", ctx, 0) -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go deleted file mode 100644 index 606cf1f..0000000 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.7 - -// Package ctxhttp provides helper functions for performing context-aware HTTP requests. -package ctxhttp // import "golang.org/x/net/context/ctxhttp" - -import ( - "io" - "net/http" - "net/url" - "strings" - - "golang.org/x/net/context" -) - -// Do sends an HTTP request with the provided http.Client and returns -// an HTTP response. -// -// If the client is nil, http.DefaultClient is used. -// -// The provided ctx must be non-nil. If it is canceled or times out, -// ctx.Err() will be returned. -func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { - if client == nil { - client = http.DefaultClient - } - resp, err := client.Do(req.WithContext(ctx)) - // If we got an error, and the context has been canceled, - // the context's error is probably more useful. - if err != nil { - select { - case <-ctx.Done(): - err = ctx.Err() - default: - } - } - return resp, err -} - -// Get issues a GET request via the Do function. -func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Head issues a HEAD request via the Do function. -func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("HEAD", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Post issues a POST request via the Do function. -func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { - req, err := http.NewRequest("POST", url, body) - if err != nil { - return nil, err - } - req.Header.Set("Content-Type", bodyType) - return Do(ctx, client, req) -} - -// PostForm issues a POST request via the Do function. -func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { - return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go deleted file mode 100644 index 9f0f90f..0000000 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !plan9,go1.7 - -package ctxhttp - -import ( - "io" - "net/http" - "net/http/httptest" - "testing" - - "context" -) - -func TestGo17Context(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, "ok") - })) - ctx := context.Background() - resp, err := Get(ctx, http.DefaultClient, ts.URL) - if resp == nil || err != nil { - t.Fatalf("error received from client: %v %v", err, resp) - } - resp.Body.Close() -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go deleted file mode 100644 index 926870c..0000000 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.7 - -package ctxhttp // import "golang.org/x/net/context/ctxhttp" - -import ( - "io" - "net/http" - "net/url" - "strings" - - "golang.org/x/net/context" -) - -func nop() {} - -var ( - testHookContextDoneBeforeHeaders = nop - testHookDoReturned = nop - testHookDidBodyClose = nop -) - -// Do sends an HTTP request with the provided http.Client and returns an HTTP response. -// If the client is nil, http.DefaultClient is used. -// If the context is canceled or times out, ctx.Err() will be returned. -func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { - if client == nil { - client = http.DefaultClient - } - - // TODO(djd): Respect any existing value of req.Cancel. - cancel := make(chan struct{}) - req.Cancel = cancel - - type responseAndError struct { - resp *http.Response - err error - } - result := make(chan responseAndError, 1) - - // Make local copies of test hooks closed over by goroutines below. - // Prevents data races in tests. - testHookDoReturned := testHookDoReturned - testHookDidBodyClose := testHookDidBodyClose - - go func() { - resp, err := client.Do(req) - testHookDoReturned() - result <- responseAndError{resp, err} - }() - - var resp *http.Response - - select { - case <-ctx.Done(): - testHookContextDoneBeforeHeaders() - close(cancel) - // Clean up after the goroutine calling client.Do: - go func() { - if r := <-result; r.resp != nil { - testHookDidBodyClose() - r.resp.Body.Close() - } - }() - return nil, ctx.Err() - case r := <-result: - var err error - resp, err = r.resp, r.err - if err != nil { - return resp, err - } - } - - c := make(chan struct{}) - go func() { - select { - case <-ctx.Done(): - close(cancel) - case <-c: - // The response's Body is closed. - } - }() - resp.Body = ¬ifyingReader{resp.Body, c} - - return resp, nil -} - -// Get issues a GET request via the Do function. -func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Head issues a HEAD request via the Do function. -func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("HEAD", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Post issues a POST request via the Do function. -func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { - req, err := http.NewRequest("POST", url, body) - if err != nil { - return nil, err - } - req.Header.Set("Content-Type", bodyType) - return Do(ctx, client, req) -} - -// PostForm issues a POST request via the Do function. -func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { - return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) -} - -// notifyingReader is an io.ReadCloser that closes the notify channel after -// Close is called or a Read fails on the underlying ReadCloser. -type notifyingReader struct { - io.ReadCloser - notify chan<- struct{} -} - -func (r *notifyingReader) Read(p []byte) (int, error) { - n, err := r.ReadCloser.Read(p) - if err != nil && r.notify != nil { - close(r.notify) - r.notify = nil - } - return n, err -} - -func (r *notifyingReader) Close() error { - err := r.ReadCloser.Close() - if r.notify != nil { - close(r.notify) - r.notify = nil - } - return err -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17_test.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17_test.go deleted file mode 100644 index 9159cf0..0000000 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !plan9,!go1.7 - -package ctxhttp - -import ( - "net" - "net/http" - "net/http/httptest" - "sync" - "testing" - "time" - - "golang.org/x/net/context" -) - -// golang.org/issue/14065 -func TestClosesResponseBodyOnCancel(t *testing.T) { - defer func() { testHookContextDoneBeforeHeaders = nop }() - defer func() { testHookDoReturned = nop }() - defer func() { testHookDidBodyClose = nop }() - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) - defer ts.Close() - - ctx, cancel := context.WithCancel(context.Background()) - - // closed when Do enters select case <-ctx.Done() - enteredDonePath := make(chan struct{}) - - testHookContextDoneBeforeHeaders = func() { - close(enteredDonePath) - } - - testHookDoReturned = func() { - // We now have the result (the Flush'd headers) at least, - // so we can cancel the request. - cancel() - - // But block the client.Do goroutine from sending - // until Do enters into the <-ctx.Done() path, since - // otherwise if both channels are readable, select - // picks a random one. - <-enteredDonePath - } - - sawBodyClose := make(chan struct{}) - testHookDidBodyClose = func() { close(sawBodyClose) } - - tr := &http.Transport{} - defer tr.CloseIdleConnections() - c := &http.Client{Transport: tr} - req, _ := http.NewRequest("GET", ts.URL, nil) - _, doErr := Do(ctx, c, req) - - select { - case <-sawBodyClose: - case <-time.After(5 * time.Second): - t.Fatal("timeout waiting for body to close") - } - - if doErr != ctx.Err() { - t.Errorf("Do error = %v; want %v", doErr, ctx.Err()) - } -} - -type noteCloseConn struct { - net.Conn - onceClose sync.Once - closefn func() -} - -func (c *noteCloseConn) Close() error { - c.onceClose.Do(c.closefn) - return c.Conn.Close() -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_test.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_test.go deleted file mode 100644 index 1e41551..0000000 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_test.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !plan9 - -package ctxhttp - -import ( - "io" - "io/ioutil" - "net/http" - "net/http/httptest" - "testing" - "time" - - "golang.org/x/net/context" -) - -const ( - requestDuration = 100 * time.Millisecond - requestBody = "ok" -) - -func okHandler(w http.ResponseWriter, r *http.Request) { - time.Sleep(requestDuration) - io.WriteString(w, requestBody) -} - -func TestNoTimeout(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(okHandler)) - defer ts.Close() - - ctx := context.Background() - res, err := Get(ctx, nil, ts.URL) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - slurp, err := ioutil.ReadAll(res.Body) - if err != nil { - t.Fatal(err) - } - if string(slurp) != requestBody { - t.Errorf("body = %q; want %q", slurp, requestBody) - } -} - -func TestCancelBeforeHeaders(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - - blockServer := make(chan struct{}) - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - cancel() - <-blockServer - io.WriteString(w, requestBody) - })) - defer ts.Close() - defer close(blockServer) - - res, err := Get(ctx, nil, ts.URL) - if err == nil { - res.Body.Close() - t.Fatal("Get returned unexpected nil error") - } - if err != context.Canceled { - t.Errorf("err = %v; want %v", err, context.Canceled) - } -} - -func TestCancelAfterHangingRequest(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - w.(http.Flusher).Flush() - <-w.(http.CloseNotifier).CloseNotify() - })) - defer ts.Close() - - ctx, cancel := context.WithCancel(context.Background()) - resp, err := Get(ctx, nil, ts.URL) - if err != nil { - t.Fatalf("unexpected error in Get: %v", err) - } - - // Cancel befer reading the body. - // Reading Request.Body should fail, since the request was - // canceled before anything was written. - cancel() - - done := make(chan struct{}) - - go func() { - b, err := ioutil.ReadAll(resp.Body) - if len(b) != 0 || err == nil { - t.Errorf(`Read got (%q, %v); want ("", error)`, b, err) - } - close(done) - }() - - select { - case <-time.After(1 * time.Second): - t.Errorf("Test timed out") - case <-done: - } -} diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go deleted file mode 100644 index d20f52b..0000000 --- a/vendor/golang.org/x/net/context/go17.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.7 - -package context - -import ( - "context" // standard library's context, as of Go 1.7 - "time" -) - -var ( - todo = context.TODO() - background = context.Background() -) - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = context.Canceled - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = context.DeadlineExceeded - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - ctx, f := context.WithCancel(parent) - return ctx, CancelFunc(f) -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - ctx, f := context.WithDeadline(parent, deadline) - return ctx, CancelFunc(f) -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return context.WithValue(parent, key, val) -} diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go deleted file mode 100644 index 0f35592..0000000 --- a/vendor/golang.org/x/net/context/pre_go17.go +++ /dev/null @@ -1,300 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.7 - -package context - -import ( - "errors" - "fmt" - "sync" - "time" -) - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, c) - return c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) *cancelCtx { - return &cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - *cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/vendor/golang.org/x/net/context/withtimeout_test.go b/vendor/golang.org/x/net/context/withtimeout_test.go deleted file mode 100644 index a6754dc..0000000 --- a/vendor/golang.org/x/net/context/withtimeout_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context_test - -import ( - "fmt" - "time" - - "golang.org/x/net/context" -) - -func ExampleWithTimeout() { - // Pass a context with a timeout to tell a blocking function that it - // should abandon its work after the timeout elapses. - ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) - select { - case <-time.After(200 * time.Millisecond): - fmt.Println("overslept") - case <-ctx.Done(): - fmt.Println(ctx.Err()) // prints "context deadline exceeded" - } - // Output: - // context deadline exceeded -} diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap.go b/vendor/golang.org/x/text/encoding/charmap/charmap.go deleted file mode 100644 index 6e62a83..0000000 --- a/vendor/golang.org/x/text/encoding/charmap/charmap.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run maketables.go - -// Package charmap provides simple character encodings such as IBM Code Page 437 -// and Windows 1252. -package charmap // import "golang.org/x/text/encoding/charmap" - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// These encodings vary only in the way clients should interpret them. Their -// coded character set is identical and a single implementation can be shared. -var ( - // ISO8859_6E is the ISO 8859-6E encoding. - ISO8859_6E encoding.Encoding = &iso8859_6E - - // ISO8859_6I is the ISO 8859-6I encoding. - ISO8859_6I encoding.Encoding = &iso8859_6I - - // ISO8859_8E is the ISO 8859-8E encoding. - ISO8859_8E encoding.Encoding = &iso8859_8E - - // ISO8859_8I is the ISO 8859-8I encoding. - ISO8859_8I encoding.Encoding = &iso8859_8I - - iso8859_6E = internal.Encoding{ - ISO8859_6, - "ISO-8859-6E", - identifier.ISO88596E, - } - - iso8859_6I = internal.Encoding{ - ISO8859_6, - "ISO-8859-6I", - identifier.ISO88596I, - } - - iso8859_8E = internal.Encoding{ - ISO8859_8, - "ISO-8859-8E", - identifier.ISO88598E, - } - - iso8859_8I = internal.Encoding{ - ISO8859_8, - "ISO-8859-8I", - identifier.ISO88598I, - } -) - -// All is a list of all defined encodings in this package. -var All = listAll - -// TODO: implement these encodings, in order of importance. -// ASCII, ISO8859_1: Rather common. Close to Windows 1252. -// ISO8859_9: Close to Windows 1254. - -// utf8Enc holds a rune's UTF-8 encoding in data[:len]. -type utf8Enc struct { - len uint8 - data [3]byte -} - -// charmap describes an 8-bit character set encoding. -type charmap struct { - // name is the encoding's name. - name string - // mib is the encoding type of this encoder. - mib identifier.MIB - // asciiSuperset states whether the encoding is a superset of ASCII. - asciiSuperset bool - // low is the lower bound of the encoded byte for a non-ASCII rune. If - // charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. - low uint8 - // replacement is the encoded replacement character. - replacement byte - // decode is the map from encoded byte to UTF-8. - decode [256]utf8Enc - // encoding is the map from runes to encoded bytes. Each entry is a - // uint32: the high 8 bits are the encoded byte and the low 24 bits are - // the rune. The table entries are sorted by ascending rune. - encode [256]uint32 -} - -func (m *charmap) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: charmapDecoder{charmap: m}} -} - -func (m *charmap) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: charmapEncoder{charmap: m}} -} - -func (m *charmap) String() string { - return m.name -} - -func (m *charmap) ID() (mib identifier.MIB, other string) { - return m.mib, "" -} - -// charmapDecoder implements transform.Transformer by decoding to UTF-8. -type charmapDecoder struct { - transform.NopResetter - charmap *charmap -} - -func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for i, c := range src { - if m.charmap.asciiSuperset && c < utf8.RuneSelf { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = c - nDst++ - nSrc = i + 1 - continue - } - - decode := &m.charmap.decode[c] - n := int(decode.len) - if nDst+n > len(dst) { - err = transform.ErrShortDst - break - } - // It's 15% faster to avoid calling copy for these tiny slices. - for j := 0; j < n; j++ { - dst[nDst] = decode.data[j] - nDst++ - } - nSrc = i + 1 - } - return nDst, nSrc, err -} - -// charmapEncoder implements transform.Transformer by encoding from UTF-8. -type charmapEncoder struct { - transform.NopResetter - charmap *charmap -} - -func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for nSrc < len(src) { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - if m.charmap.asciiSuperset { - nSrc++ - dst[nDst] = uint8(r) - nDst++ - continue - } - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - } else { - err = internal.RepertoireError(m.charmap.replacement) - } - break - } - } - - // Binary search in [low, high) for that rune in the m.charmap.encode table. - for low, high := int(m.charmap.low), 0x100; ; { - if low >= high { - err = internal.RepertoireError(m.charmap.replacement) - break loop - } - mid := (low + high) / 2 - got := m.charmap.encode[mid] - gotRune := rune(got & (1<<24 - 1)) - if gotRune < r { - low = mid + 1 - } else if gotRune > r { - high = mid - } else { - dst[nDst] = byte(got >> 24) - nDst++ - break - } - } - nSrc += size - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap_test.go b/vendor/golang.org/x/text/encoding/charmap/charmap_test.go deleted file mode 100644 index aa54fe2..0000000 --- a/vendor/golang.org/x/text/encoding/charmap/charmap_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package charmap - -import ( - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/transform" -) - -func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Decode", e.NewDecoder(), nil -} -func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement -} - -func TestNonRepertoire(t *testing.T) { - testCases := []struct { - init func(e encoding.Encoding) (string, transform.Transformer, error) - e encoding.Encoding - src, want string - }{ - {dec, Windows1252, "\x81", "\ufffd"}, - - {enc, Windows1252, "갂", ""}, - {enc, Windows1252, "a갂", "a"}, - {enc, Windows1252, "\u00E9갂", "\xE9"}, - } - for _, tc := range testCases { - dir, tr, wantErr := tc.init(tc.e) - - dst, _, err := transform.String(tr, tc.src) - if err != wantErr { - t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr) - } - if got := string(dst); got != tc.want { - t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/charmap/maketables.go b/vendor/golang.org/x/text/encoding/charmap/maketables.go deleted file mode 100644 index 9672c55..0000000 --- a/vendor/golang.org/x/text/encoding/charmap/maketables.go +++ /dev/null @@ -1,524 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/internal/gen" -) - -const ascii = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + - "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + - ` !"#$%&'()*+,-./0123456789:;<=>?` + - `@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` + - "`abcdefghijklmnopqrstuvwxyz{|}~\u007f" - -var encodings = []struct { - name string - mib string - comment string - varName string - replacement byte - mapping string -}{ - { - "IBM Code Page 437", - "PC8CodePage437", - "", - "CodePage437", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM437-2.1.2.ucm", - }, - { - "IBM Code Page 850", - "PC850Multilingual", - "", - "CodePage850", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM850-2.1.2.ucm", - }, - { - "IBM Code Page 852", - "PCp852", - "", - "CodePage852", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM852-2.1.2.ucm", - }, - { - "IBM Code Page 855", - "IBM855", - "", - "CodePage855", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM855-2.1.2.ucm", - }, - { - "Windows Code Page 858", // PC latin1 with Euro - "IBM00858", - "", - "CodePage858", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-858-2000.ucm", - }, - { - "IBM Code Page 860", - "IBM860", - "", - "CodePage860", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM860-2.1.2.ucm", - }, - { - "IBM Code Page 862", - "PC862LatinHebrew", - "", - "CodePage862", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM862-2.1.2.ucm", - }, - { - "IBM Code Page 863", - "IBM863", - "", - "CodePage863", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM863-2.1.2.ucm", - }, - { - "IBM Code Page 865", - "IBM865", - "", - "CodePage865", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM865-2.1.2.ucm", - }, - { - "IBM Code Page 866", - "IBM866", - "", - "CodePage866", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-ibm866.txt", - }, - { - "ISO 8859-1", - "ISOLatin1", - "", - "ISO8859_1", - encoding.ASCIISub, - "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_1-1998.ucm", - }, - { - "ISO 8859-2", - "ISOLatin2", - "", - "ISO8859_2", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-2.txt", - }, - { - "ISO 8859-3", - "ISOLatin3", - "", - "ISO8859_3", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-3.txt", - }, - { - "ISO 8859-4", - "ISOLatin4", - "", - "ISO8859_4", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-4.txt", - }, - { - "ISO 8859-5", - "ISOLatinCyrillic", - "", - "ISO8859_5", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-5.txt", - }, - { - "ISO 8859-6", - "ISOLatinArabic", - "", - "ISO8859_6,ISO8859_6E,ISO8859_6I", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-6.txt", - }, - { - "ISO 8859-7", - "ISOLatinGreek", - "", - "ISO8859_7", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-7.txt", - }, - { - "ISO 8859-8", - "ISOLatinHebrew", - "", - "ISO8859_8,ISO8859_8E,ISO8859_8I", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-8.txt", - }, - { - "ISO 8859-10", - "ISOLatin6", - "", - "ISO8859_10", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-10.txt", - }, - { - "ISO 8859-13", - "ISO885913", - "", - "ISO8859_13", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-13.txt", - }, - { - "ISO 8859-14", - "ISO885914", - "", - "ISO8859_14", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-14.txt", - }, - { - "ISO 8859-15", - "ISO885915", - "", - "ISO8859_15", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-15.txt", - }, - { - "ISO 8859-16", - "ISO885916", - "", - "ISO8859_16", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-iso-8859-16.txt", - }, - { - "KOI8-R", - "KOI8R", - "", - "KOI8R", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-koi8-r.txt", - }, - { - "KOI8-U", - "KOI8U", - "", - "KOI8U", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-koi8-u.txt", - }, - { - "Macintosh", - "Macintosh", - "", - "Macintosh", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-macintosh.txt", - }, - { - "Macintosh Cyrillic", - "MacintoshCyrillic", - "", - "MacintoshCyrillic", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt", - }, - { - "Windows 874", - "Windows874", - "", - "Windows874", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-874.txt", - }, - { - "Windows 1250", - "Windows1250", - "", - "Windows1250", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1250.txt", - }, - { - "Windows 1251", - "Windows1251", - "", - "Windows1251", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1251.txt", - }, - { - "Windows 1252", - "Windows1252", - "", - "Windows1252", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1252.txt", - }, - { - "Windows 1253", - "Windows1253", - "", - "Windows1253", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1253.txt", - }, - { - "Windows 1254", - "Windows1254", - "", - "Windows1254", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1254.txt", - }, - { - "Windows 1255", - "Windows1255", - "", - "Windows1255", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1255.txt", - }, - { - "Windows 1256", - "Windows1256", - "", - "Windows1256", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1256.txt", - }, - { - "Windows 1257", - "Windows1257", - "", - "Windows1257", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1257.txt", - }, - { - "Windows 1258", - "Windows1258", - "", - "Windows1258", - encoding.ASCIISub, - "http://encoding.spec.whatwg.org/index-windows-1258.txt", - }, - { - "X-User-Defined", - "XUserDefined", - "It is defined at http://encoding.spec.whatwg.org/#x-user-defined", - "XUserDefined", - encoding.ASCIISub, - ascii + - "\uf780\uf781\uf782\uf783\uf784\uf785\uf786\uf787" + - "\uf788\uf789\uf78a\uf78b\uf78c\uf78d\uf78e\uf78f" + - "\uf790\uf791\uf792\uf793\uf794\uf795\uf796\uf797" + - "\uf798\uf799\uf79a\uf79b\uf79c\uf79d\uf79e\uf79f" + - "\uf7a0\uf7a1\uf7a2\uf7a3\uf7a4\uf7a5\uf7a6\uf7a7" + - "\uf7a8\uf7a9\uf7aa\uf7ab\uf7ac\uf7ad\uf7ae\uf7af" + - "\uf7b0\uf7b1\uf7b2\uf7b3\uf7b4\uf7b5\uf7b6\uf7b7" + - "\uf7b8\uf7b9\uf7ba\uf7bb\uf7bc\uf7bd\uf7be\uf7bf" + - "\uf7c0\uf7c1\uf7c2\uf7c3\uf7c4\uf7c5\uf7c6\uf7c7" + - "\uf7c8\uf7c9\uf7ca\uf7cb\uf7cc\uf7cd\uf7ce\uf7cf" + - "\uf7d0\uf7d1\uf7d2\uf7d3\uf7d4\uf7d5\uf7d6\uf7d7" + - "\uf7d8\uf7d9\uf7da\uf7db\uf7dc\uf7dd\uf7de\uf7df" + - "\uf7e0\uf7e1\uf7e2\uf7e3\uf7e4\uf7e5\uf7e6\uf7e7" + - "\uf7e8\uf7e9\uf7ea\uf7eb\uf7ec\uf7ed\uf7ee\uf7ef" + - "\uf7f0\uf7f1\uf7f2\uf7f3\uf7f4\uf7f5\uf7f6\uf7f7" + - "\uf7f8\uf7f9\uf7fa\uf7fb\uf7fc\uf7fd\uf7fe\uf7ff", - }, -} - -func getWHATWG(url string) string { - res, err := http.Get(url) - if err != nil { - log.Fatalf("%q: Get: %v", url, err) - } - defer res.Body.Close() - - mapping := make([]rune, 128) - for i := range mapping { - mapping[i] = '\ufffd' - } - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := 0, 0 - if _, err := fmt.Sscanf(s, "%d\t0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 128 <= x { - log.Fatalf("code %d is out of range", x) - } - if 0x80 <= y && y < 0xa0 { - // We diverge from the WHATWG spec by mapping control characters - // in the range [0x80, 0xa0) to U+FFFD. - continue - } - mapping[x] = rune(y) - } - return ascii + string(mapping) -} - -func getUCM(url string) string { - res, err := http.Get(url) - if err != nil { - log.Fatalf("%q: Get: %v", url, err) - } - defer res.Body.Close() - - mapping := make([]rune, 256) - for i := range mapping { - mapping[i] = '\ufffd' - } - - charsFound := 0 - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - var c byte - var r rune - if _, err := fmt.Sscanf(s, ` \x%x |0`, &r, &c); err != nil { - continue - } - mapping[c] = r - charsFound++ - } - - if charsFound < 200 { - log.Fatalf("%q: only %d characters found (wrong page format?)", url, charsFound) - } - - return string(mapping) -} - -func main() { - mibs := map[string]bool{} - all := []string{} - - w := gen.NewCodeWriter() - defer w.WriteGoFile("tables.go", "charmap") - - printf := func(s string, a ...interface{}) { fmt.Fprintf(w, s, a...) } - - printf("import (\n") - printf("\t\"golang.org/x/text/encoding\"\n") - printf("\t\"golang.org/x/text/encoding/internal/identifier\"\n") - printf(")\n\n") - for _, e := range encodings { - varNames := strings.Split(e.varName, ",") - all = append(all, varNames...) - varName := varNames[0] - switch { - case strings.HasPrefix(e.mapping, "http://encoding.spec.whatwg.org/"): - e.mapping = getWHATWG(e.mapping) - case strings.HasPrefix(e.mapping, "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/"): - e.mapping = getUCM(e.mapping) - } - - asciiSuperset, low := strings.HasPrefix(e.mapping, ascii), 0x00 - if asciiSuperset { - low = 0x80 - } - lvn := 1 - if strings.HasPrefix(varName, "ISO") || strings.HasPrefix(varName, "KOI") { - lvn = 3 - } - lowerVarName := strings.ToLower(varName[:lvn]) + varName[lvn:] - printf("// %s is the %s encoding.\n", varName, e.name) - if e.comment != "" { - printf("//\n// %s\n", e.comment) - } - printf("var %s encoding.Encoding = &%s\n\nvar %s = charmap{\nname: %q,\n", - varName, lowerVarName, lowerVarName, e.name) - if mibs[e.mib] { - log.Fatalf("MIB type %q declared multiple times.", e.mib) - } - printf("mib: identifier.%s,\n", e.mib) - printf("asciiSuperset: %t,\n", asciiSuperset) - printf("low: 0x%02x,\n", low) - printf("replacement: 0x%02x,\n", e.replacement) - - printf("decode: [256]utf8Enc{\n") - i, backMapping := 0, map[rune]byte{} - for _, c := range e.mapping { - if _, ok := backMapping[c]; !ok && c != utf8.RuneError { - backMapping[c] = byte(i) - } - var buf [8]byte - n := utf8.EncodeRune(buf[:], c) - if n > 3 { - panic(fmt.Sprintf("rune %q (%U) is too long", c, c)) - } - printf("{%d,[3]byte{0x%02x,0x%02x,0x%02x}},", n, buf[0], buf[1], buf[2]) - if i%2 == 1 { - printf("\n") - } - i++ - } - printf("},\n") - - printf("encode: [256]uint32{\n") - encode := make([]uint32, 0, 256) - for c, i := range backMapping { - encode = append(encode, uint32(i)<<24|uint32(c)) - } - sort.Sort(byRune(encode)) - for len(encode) < cap(encode) { - encode = append(encode, encode[len(encode)-1]) - } - for i, enc := range encode { - printf("0x%08x,", enc) - if i%8 == 7 { - printf("\n") - } - } - printf("},\n}\n") - - // Add an estimate of the size of a single charmap{} struct value, which - // includes two 256 elem arrays of 4 bytes and some extra fields, which - // align to 3 uint64s on 64-bit architectures. - w.Size += 2*4*256 + 3*8 - } - // TODO: add proper line breaking. - printf("var listAll = []encoding.Encoding{\n%s,\n}\n\n", strings.Join(all, ",\n")) -} - -type byRune []uint32 - -func (b byRune) Len() int { return len(b) } -func (b byRune) Less(i, j int) bool { return b[i]&0xffffff < b[j]&0xffffff } -func (b byRune) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/charmap/tables.go b/vendor/golang.org/x/text/encoding/charmap/tables.go deleted file mode 100644 index 5ae8dbc..0000000 --- a/vendor/golang.org/x/text/encoding/charmap/tables.go +++ /dev/null @@ -1,6706 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package charmap - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" -) - -// CodePage437 is the IBM Code Page 437 encoding. -var CodePage437 encoding.Encoding = &codePage437 - -var codePage437 = charmap{ - name: "IBM Code Page 437", - mib: identifier.PC8CodePage437, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, - 0x990000d6, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, - 0x910000e6, 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, - 0x8c0000ee, 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage850 is the IBM Code Page 850 encoding. -var CodePage850 encoding.Encoding = &codePage850 - -var codePage850 = charmap{ - name: "IBM Code Page 850", - mib: identifier.PC850Multilingual, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0xd5000131, 0x9f000192, 0xf2002017, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage852 is the IBM Code Page 852 encoding. -var CodePage852 encoding.Encoding = &codePage852 - -var codePage852 = charmap{ - name: "IBM Code Page 852", - mib: identifier.PCp852, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xa5, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbe, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc4, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc4, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x8f, 0x00}}, {2, [3]byte{0xc5, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc5, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x84, 0x00}}, {2, [3]byte{0xc5, 0x88, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xf50000a7, 0xf90000a8, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xf80000b0, - 0xef0000b4, 0xf70000b8, 0xaf0000bb, 0xb50000c1, 0xb60000c2, 0x8e0000c4, 0x800000c7, 0x900000c9, - 0xd30000cb, 0xd60000cd, 0xd70000ce, 0xe00000d3, 0xe20000d4, 0x990000d6, 0x9e0000d7, 0xe90000da, - 0x9a0000dc, 0xed0000dd, 0xe10000df, 0xa00000e1, 0x830000e2, 0x840000e4, 0x870000e7, 0x820000e9, - 0x890000eb, 0xa10000ed, 0x8c0000ee, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0xa30000fa, - 0x810000fc, 0xec0000fd, 0xc6000102, 0xc7000103, 0xa4000104, 0xa5000105, 0x8f000106, 0x86000107, - 0xac00010c, 0x9f00010d, 0xd200010e, 0xd400010f, 0xd1000110, 0xd0000111, 0xa8000118, 0xa9000119, - 0xb700011a, 0xd800011b, 0x91000139, 0x9200013a, 0x9500013d, 0x9600013e, 0x9d000141, 0x88000142, - 0xe3000143, 0xe4000144, 0xd5000147, 0xe5000148, 0x8a000150, 0x8b000151, 0xe8000154, 0xea000155, - 0xfc000158, 0xfd000159, 0x9700015a, 0x9800015b, 0xb800015e, 0xad00015f, 0xe6000160, 0xe7000161, - 0xdd000162, 0xee000163, 0x9b000164, 0x9c000165, 0xde00016e, 0x8500016f, 0xeb000170, 0xfb000171, - 0x8d000179, 0xab00017a, 0xbd00017b, 0xbe00017c, 0xa600017d, 0xa700017e, 0xf30002c7, 0xf40002d8, - 0xfa0002d9, 0xf20002db, 0xf10002dd, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage855 is the IBM Code Page 855 encoding. -var CodePage855 encoding.Encoding = &codePage855 - -var codePage855 = charmap{ - name: "IBM Code Page 855", - mib: identifier.IBM855, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x93, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x84, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xd1, 0x97, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x8a, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xae, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0xb5, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xb3, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd1, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd0, 0xaf, 0x00}}, {2, [3]byte{0xd1, 0x80, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0xa1, 0x00}}, {2, [3]byte{0xd1, 0x82, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xa3, 0x00}}, {2, [3]byte{0xd0, 0xb6, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xab, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0xa9, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xfd0000a7, 0xae0000ab, 0xf00000ad, 0xaf0000bb, 0x85000401, 0x81000402, - 0x83000403, 0x87000404, 0x89000405, 0x8b000406, 0x8d000407, 0x8f000408, 0x91000409, 0x9300040a, - 0x9500040b, 0x9700040c, 0x9900040e, 0x9b00040f, 0xa1000410, 0xa3000411, 0xec000412, 0xad000413, - 0xa7000414, 0xa9000415, 0xea000416, 0xf4000417, 0xb8000418, 0xbe000419, 0xc700041a, 0xd100041b, - 0xd300041c, 0xd500041d, 0xd700041e, 0xdd00041f, 0xe2000420, 0xe4000421, 0xe6000422, 0xe8000423, - 0xab000424, 0xb6000425, 0xa5000426, 0xfc000427, 0xf6000428, 0xfa000429, 0x9f00042a, 0xf200042b, - 0xee00042c, 0xf800042d, 0x9d00042e, 0xe000042f, 0xa0000430, 0xa2000431, 0xeb000432, 0xac000433, - 0xa6000434, 0xa8000435, 0xe9000436, 0xf3000437, 0xb7000438, 0xbd000439, 0xc600043a, 0xd000043b, - 0xd200043c, 0xd400043d, 0xd600043e, 0xd800043f, 0xe1000440, 0xe3000441, 0xe5000442, 0xe7000443, - 0xaa000444, 0xb5000445, 0xa4000446, 0xfb000447, 0xf5000448, 0xf9000449, 0x9e00044a, 0xf100044b, - 0xed00044c, 0xf700044d, 0x9c00044e, 0xde00044f, 0x84000451, 0x80000452, 0x82000453, 0x86000454, - 0x88000455, 0x8a000456, 0x8c000457, 0x8e000458, 0x90000459, 0x9200045a, 0x9400045b, 0x9600045c, - 0x9800045e, 0x9a00045f, 0xef002116, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage858 is the Windows Code Page 858 encoding. -var CodePage858 encoding.Encoding = &codePage858 - -var codePage858 = charmap{ - name: "Windows Code Page 858", - mib: identifier.IBM00858, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0x9f000192, 0xf2002017, 0xd50020ac, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage860 is the IBM Code Page 860 encoding. -var CodePage860 encoding.Encoding = &codePage860 - -var codePage860 = charmap{ - name: "IBM Code Page 860", - mib: identifier.IBM860, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, - 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, - 0xa80000bf, 0x910000c0, 0x860000c1, 0x8f0000c2, 0x8e0000c3, 0x800000c7, 0x920000c8, 0x900000c9, - 0x890000ca, 0x980000cc, 0x8b0000cd, 0xa50000d1, 0xa90000d2, 0x9f0000d3, 0x8c0000d4, 0x990000d5, - 0x9d0000d9, 0x960000da, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e3, - 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x8d0000ec, 0xa10000ed, 0xa40000f1, 0x950000f2, - 0xa20000f3, 0x930000f4, 0x940000f5, 0xf60000f7, 0x970000f9, 0xa30000fa, 0x810000fc, 0xe2000393, - 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, - 0xe50003c3, 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, - 0xef002229, 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage862 is the IBM Code Page 862 encoding. -var CodePage862 encoding.Encoding = &codePage862 - -var codePage862 = charmap{ - name: "IBM Code Page 862", - mib: identifier.PC862LatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0xa50000d1, 0xe10000df, 0xa00000e1, 0xa10000ed, 0xa40000f1, 0xa20000f3, - 0xf60000f7, 0xa30000fa, 0x9f000192, 0xe2000393, 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, - 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, 0xe70003c4, 0xed0003c6, 0x800005d0, - 0x810005d1, 0x820005d2, 0x830005d3, 0x840005d4, 0x850005d5, 0x860005d6, 0x870005d7, 0x880005d8, - 0x890005d9, 0x8a0005da, 0x8b0005db, 0x8c0005dc, 0x8d0005dd, 0x8e0005de, 0x8f0005df, 0x900005e0, - 0x910005e1, 0x920005e2, 0x930005e3, 0x940005e4, 0x950005e5, 0x960005e6, 0x970005e7, 0x980005e8, - 0x990005e9, 0x9a0005ea, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage863 is the IBM Code Page 863 encoding. -var CodePage863 encoding.Encoding = &codePage863 - -var codePage863 = charmap{ - name: "IBM Code Page 863", - mib: identifier.IBM863, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0x9b0000a2, 0x9c0000a3, 0x980000a4, 0xa00000a6, 0x8f0000a7, 0xa40000a8, 0xae0000ab, - 0xaa0000ac, 0xa70000af, 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xa60000b3, 0xa10000b4, 0xe60000b5, - 0x860000b6, 0xfa0000b7, 0xa50000b8, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xad0000be, 0x8e0000c0, - 0x840000c2, 0x800000c7, 0x910000c8, 0x900000c9, 0x920000ca, 0x940000cb, 0xa80000ce, 0x950000cf, - 0x990000d4, 0x9d0000d9, 0x9e0000db, 0x9a0000dc, 0xe10000df, 0x850000e0, 0x830000e2, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8c0000ee, 0x8b0000ef, 0xa20000f3, 0x930000f4, - 0xf60000f7, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0x8d002017, 0xfc00207f, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage865 is the IBM Code Page 865 encoding. -var CodePage865 encoding.Encoding = &codePage865 - -var codePage865 = charmap{ - name: "IBM Code Page 865", - mib: identifier.IBM865, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9c0000a3, 0xaf0000a4, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, - 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xac0000bc, 0xab0000bd, 0xa80000bf, - 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, 0x990000d6, 0x9d0000d8, - 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, 0x910000e6, - 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, - 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0x9b0000f8, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage866 is the IBM Code Page 866 encoding. -var CodePage866 encoding.Encoding = &codePage866 - -var codePage866 = charmap{ - name: "IBM Code Page 866", - mib: identifier.IBM866, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xfd0000a4, 0xf80000b0, 0xfa0000b7, 0xf0000401, 0xf2000404, 0xf4000407, 0xf600040e, - 0x80000410, 0x81000411, 0x82000412, 0x83000413, 0x84000414, 0x85000415, 0x86000416, 0x87000417, - 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, - 0x90000420, 0x91000421, 0x92000422, 0x93000423, 0x94000424, 0x95000425, 0x96000426, 0x97000427, - 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, - 0xa0000430, 0xa1000431, 0xa2000432, 0xa3000433, 0xa4000434, 0xa5000435, 0xa6000436, 0xa7000437, - 0xa8000438, 0xa9000439, 0xaa00043a, 0xab00043b, 0xac00043c, 0xad00043d, 0xae00043e, 0xaf00043f, - 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, 0xe7000447, - 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, 0xef00044f, - 0xf1000451, 0xf3000454, 0xf5000457, 0xf700045e, 0xfc002116, 0xf9002219, 0xfb00221a, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// ISO8859_1 is the ISO 8859-1 encoding. -var ISO8859_1 encoding.Encoding = &iso8859_1 - -var iso8859_1 = charmap{ - name: "ISO 8859-1", - mib: identifier.ISOLatin1, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, - 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, - 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, - 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - }, -} - -// ISO8859_2 is the ISO 8859-2 encoding. -var ISO8859_2 encoding.Encoding = &iso8859_2 - -var iso8859_2 = charmap{ - name: "ISO 8859-2", - mib: identifier.ISOLatin2, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xbe, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb40000b4, 0xb80000b8, - 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, - 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, - 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, 0xfd0000fd, 0xc3000102, - 0xe3000103, 0xa1000104, 0xb1000105, 0xc6000106, 0xe6000107, 0xc800010c, 0xe800010d, 0xcf00010e, - 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, 0xec00011b, 0xc5000139, - 0xe500013a, 0xa500013d, 0xb500013e, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, 0xd2000147, - 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, 0xf8000159, 0xa600015a, - 0xb600015b, 0xaa00015e, 0xba00015f, 0xa9000160, 0xb9000161, 0xde000162, 0xfe000163, 0xab000164, - 0xbb000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0xac000179, 0xbc00017a, 0xaf00017b, - 0xbf00017c, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xa20002d8, 0xff0002d9, 0xb20002db, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - }, -} - -// ISO8859_3 is the ISO 8859-3 encoding. -var ISO8859_3 encoding.Encoding = &iso8859_3 - -var iso8859_3 = charmap{ - name: "ISO 8859-3", - mib: identifier.ISOLatin3, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa6, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc4, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc4, 0x9e, 0x00}}, - {2, [3]byte{0xc4, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc4, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc4, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0xb5, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x8a, 0x00}}, - {2, [3]byte{0xc4, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc4, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xac, 0x00}}, - {2, [3]byte{0xc5, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0x9d, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0x9d, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb70000b7, 0xb80000b8, 0xbd0000bd, 0xc00000c0, 0xc10000c1, - 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, - 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, - 0xd70000d7, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, - 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, - 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf60000f6, - 0xf70000f7, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc6000108, 0xe6000109, 0xc500010a, - 0xe500010b, 0xd800011c, 0xf800011d, 0xab00011e, 0xbb00011f, 0xd5000120, 0xf5000121, 0xa6000124, - 0xb6000125, 0xa1000126, 0xb1000127, 0xa9000130, 0xb9000131, 0xac000134, 0xbc000135, 0xde00015c, - 0xfe00015d, 0xaa00015e, 0xba00015f, 0xdd00016c, 0xfd00016d, 0xaf00017b, 0xbf00017c, 0xa20002d8, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - }, -} - -// ISO8859_4 is the ISO 8859-4 encoding. -var ISO8859_4 encoding.Encoding = &iso8859_4 - -var iso8859_4 = charmap{ - name: "ISO 8859-4", - mib: identifier.ISOLatin4, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0x96, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc5, 0xa7, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0xaa, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xaf0000af, 0xb00000b0, 0xb40000b4, - 0xb80000b8, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, - 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xf40000f4, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc0000100, 0xe0000101, - 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, 0xd0000110, 0xf0000111, 0xaa000112, 0xba000113, - 0xcc000116, 0xec000117, 0xca000118, 0xea000119, 0xab000122, 0xbb000123, 0xa5000128, 0xb5000129, - 0xcf00012a, 0xef00012b, 0xc700012e, 0xe700012f, 0xd3000136, 0xf3000137, 0xa2000138, 0xa600013b, - 0xb600013c, 0xd1000145, 0xf1000146, 0xbd00014a, 0xbf00014b, 0xd200014c, 0xf200014d, 0xa3000156, - 0xb3000157, 0xa9000160, 0xb9000161, 0xac000166, 0xbc000167, 0xdd000168, 0xfd000169, 0xde00016a, - 0xfe00016b, 0xd9000172, 0xf9000173, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xff0002d9, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - }, -} - -// ISO8859_5 is the ISO 8859-5 encoding. -var ISO8859_5 encoding.Encoding = &iso8859_5 - -var iso8859_5 = charmap{ - name: "ISO 8859-5", - mib: identifier.ISOLatinCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0x88, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xfd0000a7, 0xad0000ad, 0xa1000401, 0xa2000402, 0xa3000403, 0xa4000404, 0xa5000405, - 0xa6000406, 0xa7000407, 0xa8000408, 0xa9000409, 0xaa00040a, 0xab00040b, 0xac00040c, 0xae00040e, - 0xaf00040f, 0xb0000410, 0xb1000411, 0xb2000412, 0xb3000413, 0xb4000414, 0xb5000415, 0xb6000416, - 0xb7000417, 0xb8000418, 0xb9000419, 0xba00041a, 0xbb00041b, 0xbc00041c, 0xbd00041d, 0xbe00041e, - 0xbf00041f, 0xc0000420, 0xc1000421, 0xc2000422, 0xc3000423, 0xc4000424, 0xc5000425, 0xc6000426, - 0xc7000427, 0xc8000428, 0xc9000429, 0xca00042a, 0xcb00042b, 0xcc00042c, 0xcd00042d, 0xce00042e, - 0xcf00042f, 0xd0000430, 0xd1000431, 0xd2000432, 0xd3000433, 0xd4000434, 0xd5000435, 0xd6000436, - 0xd7000437, 0xd8000438, 0xd9000439, 0xda00043a, 0xdb00043b, 0xdc00043c, 0xdd00043d, 0xde00043e, - 0xdf00043f, 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, - 0xe7000447, 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, - 0xef00044f, 0xf1000451, 0xf2000452, 0xf3000453, 0xf4000454, 0xf5000455, 0xf6000456, 0xf7000457, - 0xf8000458, 0xf9000459, 0xfa00045a, 0xfb00045b, 0xfc00045c, 0xfe00045e, 0xff00045f, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - }, -} - -// ISO8859_6 is the ISO 8859-6 encoding. -var ISO8859_6 encoding.Encoding = &iso8859_6 - -var iso8859_6 = charmap{ - name: "ISO 8859-6", - mib: identifier.ISOLatinArabic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd8, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9b, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xd8, 0xb7, 0x00}}, - {2, [3]byte{0xd8, 0xb8, 0x00}}, {2, [3]byte{0xd8, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0xba, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xd9, 0x84, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xd9, 0x89, 0x00}}, - {2, [3]byte{0xd9, 0x8a, 0x00}}, {2, [3]byte{0xd9, 0x8b, 0x00}}, - {2, [3]byte{0xd9, 0x8c, 0x00}}, {2, [3]byte{0xd9, 0x8d, 0x00}}, - {2, [3]byte{0xd9, 0x8e, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xd9, 0x91, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xad0000ad, 0xac00060c, 0xbb00061b, 0xbf00061f, 0xc1000621, 0xc2000622, - 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, - 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, - 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, 0xd7000637, 0xd8000638, 0xd9000639, 0xda00063a, - 0xe0000640, 0xe1000641, 0xe2000642, 0xe3000643, 0xe4000644, 0xe5000645, 0xe6000646, 0xe7000647, - 0xe8000648, 0xe9000649, 0xea00064a, 0xeb00064b, 0xec00064c, 0xed00064d, 0xee00064e, 0xef00064f, - 0xf0000650, 0xf1000651, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - }, -} - -// ISO8859_7 is the ISO 8859-7 encoding. -var ISO8859_7 encoding.Encoding = &iso8859_7 - -var iso8859_7 = charmap{ - name: "ISO 8859-7", - mib: identifier.ISOLatinGreek, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x82, 0xaf}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xcd, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, - 0xaa00037a, 0xb4000384, 0xb5000385, 0xb6000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, - 0xbe00038e, 0xbf00038f, 0xc0000390, 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, - 0xc6000396, 0xc7000397, 0xc8000398, 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, - 0xce00039e, 0xcf00039f, 0xd00003a0, 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, - 0xd70003a7, 0xd80003a8, 0xd90003a9, 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, - 0xdf0003af, 0xe00003b0, 0xe10003b1, 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, - 0xe70003b7, 0xe80003b8, 0xe90003b9, 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, - 0xef0003bf, 0xf00003c0, 0xf10003c1, 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, - 0xf70003c7, 0xf80003c8, 0xf90003c9, 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, - 0xaf002015, 0xa1002018, 0xa2002019, 0xa40020ac, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - }, -} - -// ISO8859_8 is the ISO 8859-8 encoding. -var ISO8859_8 encoding.Encoding = &iso8859_8 - -var iso8859_8 = charmap{ - name: "ISO 8859-8", - mib: identifier.ISOLatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xaa0000d7, 0xba0000f7, 0xe00005d0, 0xe10005d1, - 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, - 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, - 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, - 0xfa0005ea, 0xfd00200e, 0xfe00200f, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - }, -} - -// ISO8859_10 is the ISO 8859-10 encoding. -var ISO8859_10 encoding.Encoding = &iso8859_10 - -var iso8859_10 = charmap{ - name: "ISO 8859-10", - mib: identifier.ISOLatin6, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa6, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x91, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0xb8, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xad0000ad, 0xb00000b0, 0xb70000b7, 0xc10000c1, 0xc20000c2, 0xc30000c3, - 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xda0000da, 0xdb0000db, - 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf00000f0, - 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, - 0xfd0000fd, 0xfe0000fe, 0xc0000100, 0xe0000101, 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, - 0xa9000110, 0xb9000111, 0xa2000112, 0xb2000113, 0xcc000116, 0xec000117, 0xca000118, 0xea000119, - 0xa3000122, 0xb3000123, 0xa5000128, 0xb5000129, 0xa400012a, 0xb400012b, 0xc700012e, 0xe700012f, - 0xa6000136, 0xb6000137, 0xff000138, 0xa800013b, 0xb800013c, 0xd1000145, 0xf1000146, 0xaf00014a, - 0xbf00014b, 0xd200014c, 0xf200014d, 0xaa000160, 0xba000161, 0xab000166, 0xbb000167, 0xd7000168, - 0xf7000169, 0xae00016a, 0xbe00016b, 0xd9000172, 0xf9000173, 0xac00017d, 0xbc00017e, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - }, -} - -// ISO8859_13 is the ISO 8859-13 encoding. -var ISO8859_13 encoding.Encoding = &iso8859_13 - -var iso8859_13 = charmap{ - name: "ISO 8859-13", - mib: identifier.ISO885913, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, - 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb50000b5, - 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, - 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, - 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, - 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, - 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, - 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, - 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, - 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, - 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, 0xff002019, 0xb400201c, 0xa100201d, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - }, -} - -// ISO8859_14 is the ISO 8859-14 encoding. -var ISO8859_14 encoding.Encoding = &iso8859_14 - -var iso8859_14 = charmap{ - name: "ISO 8859-14", - mib: identifier.ISO885914, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe1, 0xb8, 0x82}}, - {3, [3]byte{0xe1, 0xb8, 0x83}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0x8a, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x8a}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x80}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x82}}, {3, [3]byte{0xe1, 0xb8, 0x8b}}, - {3, [3]byte{0xe1, 0xbb, 0xb2}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x9e}}, {3, [3]byte{0xe1, 0xb8, 0x9f}}, - {2, [3]byte{0xc4, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {3, [3]byte{0xe1, 0xb9, 0x80}}, {3, [3]byte{0xe1, 0xb9, 0x81}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0x96}}, - {3, [3]byte{0xe1, 0xba, 0x81}}, {3, [3]byte{0xe1, 0xb9, 0x97}}, - {3, [3]byte{0xe1, 0xba, 0x83}}, {3, [3]byte{0xe1, 0xb9, 0xa0}}, - {3, [3]byte{0xe1, 0xbb, 0xb3}}, {3, [3]byte{0xe1, 0xba, 0x84}}, - {3, [3]byte{0xe1, 0xba, 0x85}}, {3, [3]byte{0xe1, 0xb9, 0xa1}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc5, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xaa}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc5, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xab}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa70000a7, 0xa90000a9, 0xad0000ad, 0xae0000ae, 0xb60000b6, 0xc00000c0, - 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xd90000d9, 0xda0000da, - 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, - 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, - 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, - 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, - 0xff0000ff, 0xa400010a, 0xa500010b, 0xb2000120, 0xb3000121, 0xd0000174, 0xf0000175, 0xde000176, - 0xfe000177, 0xaf000178, 0xa1001e02, 0xa2001e03, 0xa6001e0a, 0xab001e0b, 0xb0001e1e, 0xb1001e1f, - 0xb4001e40, 0xb5001e41, 0xb7001e56, 0xb9001e57, 0xbb001e60, 0xbf001e61, 0xd7001e6a, 0xf7001e6b, - 0xa8001e80, 0xb8001e81, 0xaa001e82, 0xba001e83, 0xbd001e84, 0xbe001e85, 0xac001ef2, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - }, -} - -// ISO8859_15 is the ISO 8859-15 encoding. -var ISO8859_15 encoding.Encoding = &iso8859_15 - -var iso8859_15 = charmap{ - name: "ISO 8859-15", - mib: identifier.ISO885915, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa70000a7, 0xa90000a9, 0xaa0000aa, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0xbc000152, 0xbd000153, 0xa6000160, 0xa8000161, 0xbe000178, 0xb400017d, 0xb800017e, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - }, -} - -// ISO8859_16 is the ISO 8859-16 encoding. -var ISO8859_16 encoding.Encoding = &iso8859_16 - -var iso8859_16 = charmap{ - name: "ISO 8859-16", - mib: identifier.ISO885916, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc8, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc8, 0x99, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0x98, 0x00}}, - {2, [3]byte{0xc8, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0x9b, 0x00}}, - {2, [3]byte{0xc5, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc8, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb60000b6, - 0xb70000b7, 0xbb0000bb, 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe60000e6, 0xe70000e7, 0xe80000e8, - 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf20000f2, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xff0000ff, - 0xc3000102, 0xe3000103, 0xa1000104, 0xa2000105, 0xc5000106, 0xe5000107, 0xb200010c, 0xb900010d, - 0xd0000110, 0xf0000111, 0xdd000118, 0xfd000119, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, - 0xd5000150, 0xf5000151, 0xbc000152, 0xbd000153, 0xd700015a, 0xf700015b, 0xa6000160, 0xa8000161, - 0xd8000170, 0xf8000171, 0xbe000178, 0xac000179, 0xae00017a, 0xaf00017b, 0xbf00017c, 0xb400017d, - 0xb800017e, 0xaa000218, 0xba000219, 0xde00021a, 0xfe00021b, 0xb500201d, 0xa500201e, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - }, -} - -// KOI8R is the KOI8-R encoding. -var KOI8R encoding.Encoding = &koi8R - -var koi8R = charmap{ - name: "KOI8-R", - mib: identifier.KOI8R, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa5}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xe1000410, - 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, - 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, - 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, - 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, - 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, - 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, - 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, - 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, - 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, 0x9b002321, 0x80002500, - 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, 0x87002524, 0x8800252c, - 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa4002553, 0xa5002554, 0xa6002555, - 0xa7002556, 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xad00255c, 0xae00255d, - 0xaf00255e, 0xb000255f, 0xb1002560, 0xb2002561, 0xb4002562, 0xb5002563, 0xb6002564, 0xb7002565, - 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0xbd00256b, 0xbe00256c, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// KOI8U is the KOI8-U encoding. -var KOI8U encoding.Encoding = &koi8U - -var koi8U = charmap{ - name: "KOI8-U", - mib: identifier.KOI8U, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {2, [3]byte{0xd2, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xb4000404, - 0xb6000406, 0xb7000407, 0xbe00040e, 0xe1000410, 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, - 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, - 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, - 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, - 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, - 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, - 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, - 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, - 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, 0xa4000454, 0xa6000456, 0xa7000457, 0xae00045e, - 0xbd000490, 0xad000491, 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, - 0x9b002321, 0x80002500, 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, - 0x87002524, 0x8800252c, 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa5002554, - 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xaf00255e, 0xb000255f, 0xb1002560, - 0xb2002561, 0xb5002563, 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// Macintosh is the Macintosh encoding. -var Macintosh encoding.Encoding = &macintosh - -var macintosh = charmap{ - name: "Macintosh", - mib: identifier.Macintosh, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x91, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x82}}, {3, [3]byte{0xe2, 0x88, 0x91}}, - {3, [3]byte{0xe2, 0x88, 0x8f}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0xab}}, {2, [3]byte{0xc2, 0xaa, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x97, 0x8a}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe2, 0x81, 0x84}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {3, [3]byte{0xe2, 0x80, 0xb9}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xac, 0x81}}, {3, [3]byte{0xef, 0xac, 0x82}}, - {3, [3]byte{0xe2, 0x80, 0xa1}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {3, [3]byte{0xe2, 0x80, 0xb0}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {2, [3]byte{0xc3, 0x8c, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {3, [3]byte{0xef, 0xa3, 0xbf}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x99, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {2, [3]byte{0xcb, 0x9c, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xcb, 0x98, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xcb, 0x9a, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xc10000a1, 0xa20000a2, 0xa30000a3, 0xb40000a5, 0xa40000a7, 0xac0000a8, 0xa90000a9, - 0xbb0000aa, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xf80000af, 0xa10000b0, 0xb10000b1, 0xab0000b4, - 0xb50000b5, 0xa60000b6, 0xe10000b7, 0xfc0000b8, 0xbc0000ba, 0xc80000bb, 0xc00000bf, 0xcb0000c0, - 0xe70000c1, 0xe50000c2, 0xcc0000c3, 0x800000c4, 0x810000c5, 0xae0000c6, 0x820000c7, 0xe90000c8, - 0x830000c9, 0xe60000ca, 0xe80000cb, 0xed0000cc, 0xea0000cd, 0xeb0000ce, 0xec0000cf, 0x840000d1, - 0xf10000d2, 0xee0000d3, 0xef0000d4, 0xcd0000d5, 0x850000d6, 0xaf0000d8, 0xf40000d9, 0xf20000da, - 0xf30000db, 0x860000dc, 0xa70000df, 0x880000e0, 0x870000e1, 0x890000e2, 0x8b0000e3, 0x8a0000e4, - 0x8c0000e5, 0xbe0000e6, 0x8d0000e7, 0x8f0000e8, 0x8e0000e9, 0x900000ea, 0x910000eb, 0x930000ec, - 0x920000ed, 0x940000ee, 0x950000ef, 0x960000f1, 0x980000f2, 0x970000f3, 0x990000f4, 0x9b0000f5, - 0x9a0000f6, 0xd60000f7, 0xbf0000f8, 0x9d0000f9, 0x9c0000fa, 0x9e0000fb, 0x9f0000fc, 0xd80000ff, - 0xf5000131, 0xce000152, 0xcf000153, 0xd9000178, 0xc4000192, 0xf60002c6, 0xff0002c7, 0xf90002d8, - 0xfa0002d9, 0xfb0002da, 0xfe0002db, 0xf70002dc, 0xfd0002dd, 0xbd0003a9, 0xb90003c0, 0xd0002013, - 0xd1002014, 0xd4002018, 0xd5002019, 0xe200201a, 0xd200201c, 0xd300201d, 0xe300201e, 0xa0002020, - 0xe0002021, 0xa5002022, 0xc9002026, 0xe4002030, 0xdc002039, 0xdd00203a, 0xda002044, 0xdb0020ac, - 0xaa002122, 0xb6002202, 0xc6002206, 0xb800220f, 0xb7002211, 0xc300221a, 0xb000221e, 0xba00222b, - 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, 0xd70025ca, 0xf000f8ff, 0xde00fb01, 0xdf00fb02, - }, -} - -// MacintoshCyrillic is the Macintosh Cyrillic encoding. -var MacintoshCyrillic encoding.Encoding = &macintoshCyrillic - -var macintoshCyrillic = charmap{ - name: "Macintosh Cyrillic", - mib: identifier.MacintoshCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xd2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xd0, 0x83, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x9a, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x8f, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xa30000a3, 0xa40000a7, 0xa90000a9, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xa10000b0, - 0xb10000b1, 0xb50000b5, 0xa60000b6, 0xc80000bb, 0xd60000f7, 0xc4000192, 0xdd000401, 0xab000402, - 0xae000403, 0xb8000404, 0xc1000405, 0xa7000406, 0xba000407, 0xb7000408, 0xbc000409, 0xbe00040a, - 0xcb00040b, 0xcd00040c, 0xd800040e, 0xda00040f, 0x80000410, 0x81000411, 0x82000412, 0x83000413, - 0x84000414, 0x85000415, 0x86000416, 0x87000417, 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, - 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, 0x90000420, 0x91000421, 0x92000422, 0x93000423, - 0x94000424, 0x95000425, 0x96000426, 0x97000427, 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, - 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, 0xe0000430, 0xe1000431, 0xe2000432, 0xe3000433, - 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, 0xeb00043b, - 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, 0xf3000443, - 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, 0xfb00044b, - 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xdf00044f, 0xde000451, 0xac000452, 0xaf000453, 0xb9000454, - 0xcf000455, 0xb4000456, 0xbb000457, 0xc0000458, 0xbd000459, 0xbf00045a, 0xcc00045b, 0xce00045c, - 0xd900045e, 0xdb00045f, 0xa2000490, 0xb6000491, 0xd0002013, 0xd1002014, 0xd4002018, 0xd5002019, - 0xd200201c, 0xd300201d, 0xd700201e, 0xa0002020, 0xa5002022, 0xc9002026, 0xff0020ac, 0xdc002116, - 0xaa002122, 0xc6002206, 0xc300221a, 0xb000221e, 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, - }, -} - -// Windows874 is the Windows 874 encoding. -var Windows874 encoding.Encoding = &windows874 - -var windows874 = charmap{ - name: "Windows 874", - mib: identifier.Windows874, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe0, 0xb8, 0x81}}, - {3, [3]byte{0xe0, 0xb8, 0x82}}, {3, [3]byte{0xe0, 0xb8, 0x83}}, - {3, [3]byte{0xe0, 0xb8, 0x84}}, {3, [3]byte{0xe0, 0xb8, 0x85}}, - {3, [3]byte{0xe0, 0xb8, 0x86}}, {3, [3]byte{0xe0, 0xb8, 0x87}}, - {3, [3]byte{0xe0, 0xb8, 0x88}}, {3, [3]byte{0xe0, 0xb8, 0x89}}, - {3, [3]byte{0xe0, 0xb8, 0x8a}}, {3, [3]byte{0xe0, 0xb8, 0x8b}}, - {3, [3]byte{0xe0, 0xb8, 0x8c}}, {3, [3]byte{0xe0, 0xb8, 0x8d}}, - {3, [3]byte{0xe0, 0xb8, 0x8e}}, {3, [3]byte{0xe0, 0xb8, 0x8f}}, - {3, [3]byte{0xe0, 0xb8, 0x90}}, {3, [3]byte{0xe0, 0xb8, 0x91}}, - {3, [3]byte{0xe0, 0xb8, 0x92}}, {3, [3]byte{0xe0, 0xb8, 0x93}}, - {3, [3]byte{0xe0, 0xb8, 0x94}}, {3, [3]byte{0xe0, 0xb8, 0x95}}, - {3, [3]byte{0xe0, 0xb8, 0x96}}, {3, [3]byte{0xe0, 0xb8, 0x97}}, - {3, [3]byte{0xe0, 0xb8, 0x98}}, {3, [3]byte{0xe0, 0xb8, 0x99}}, - {3, [3]byte{0xe0, 0xb8, 0x9a}}, {3, [3]byte{0xe0, 0xb8, 0x9b}}, - {3, [3]byte{0xe0, 0xb8, 0x9c}}, {3, [3]byte{0xe0, 0xb8, 0x9d}}, - {3, [3]byte{0xe0, 0xb8, 0x9e}}, {3, [3]byte{0xe0, 0xb8, 0x9f}}, - {3, [3]byte{0xe0, 0xb8, 0xa0}}, {3, [3]byte{0xe0, 0xb8, 0xa1}}, - {3, [3]byte{0xe0, 0xb8, 0xa2}}, {3, [3]byte{0xe0, 0xb8, 0xa3}}, - {3, [3]byte{0xe0, 0xb8, 0xa4}}, {3, [3]byte{0xe0, 0xb8, 0xa5}}, - {3, [3]byte{0xe0, 0xb8, 0xa6}}, {3, [3]byte{0xe0, 0xb8, 0xa7}}, - {3, [3]byte{0xe0, 0xb8, 0xa8}}, {3, [3]byte{0xe0, 0xb8, 0xa9}}, - {3, [3]byte{0xe0, 0xb8, 0xaa}}, {3, [3]byte{0xe0, 0xb8, 0xab}}, - {3, [3]byte{0xe0, 0xb8, 0xac}}, {3, [3]byte{0xe0, 0xb8, 0xad}}, - {3, [3]byte{0xe0, 0xb8, 0xae}}, {3, [3]byte{0xe0, 0xb8, 0xaf}}, - {3, [3]byte{0xe0, 0xb8, 0xb0}}, {3, [3]byte{0xe0, 0xb8, 0xb1}}, - {3, [3]byte{0xe0, 0xb8, 0xb2}}, {3, [3]byte{0xe0, 0xb8, 0xb3}}, - {3, [3]byte{0xe0, 0xb8, 0xb4}}, {3, [3]byte{0xe0, 0xb8, 0xb5}}, - {3, [3]byte{0xe0, 0xb8, 0xb6}}, {3, [3]byte{0xe0, 0xb8, 0xb7}}, - {3, [3]byte{0xe0, 0xb8, 0xb8}}, {3, [3]byte{0xe0, 0xb8, 0xb9}}, - {3, [3]byte{0xe0, 0xb8, 0xba}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe0, 0xb8, 0xbf}}, - {3, [3]byte{0xe0, 0xb9, 0x80}}, {3, [3]byte{0xe0, 0xb9, 0x81}}, - {3, [3]byte{0xe0, 0xb9, 0x82}}, {3, [3]byte{0xe0, 0xb9, 0x83}}, - {3, [3]byte{0xe0, 0xb9, 0x84}}, {3, [3]byte{0xe0, 0xb9, 0x85}}, - {3, [3]byte{0xe0, 0xb9, 0x86}}, {3, [3]byte{0xe0, 0xb9, 0x87}}, - {3, [3]byte{0xe0, 0xb9, 0x88}}, {3, [3]byte{0xe0, 0xb9, 0x89}}, - {3, [3]byte{0xe0, 0xb9, 0x8a}}, {3, [3]byte{0xe0, 0xb9, 0x8b}}, - {3, [3]byte{0xe0, 0xb9, 0x8c}}, {3, [3]byte{0xe0, 0xb9, 0x8d}}, - {3, [3]byte{0xe0, 0xb9, 0x8e}}, {3, [3]byte{0xe0, 0xb9, 0x8f}}, - {3, [3]byte{0xe0, 0xb9, 0x90}}, {3, [3]byte{0xe0, 0xb9, 0x91}}, - {3, [3]byte{0xe0, 0xb9, 0x92}}, {3, [3]byte{0xe0, 0xb9, 0x93}}, - {3, [3]byte{0xe0, 0xb9, 0x94}}, {3, [3]byte{0xe0, 0xb9, 0x95}}, - {3, [3]byte{0xe0, 0xb9, 0x96}}, {3, [3]byte{0xe0, 0xb9, 0x97}}, - {3, [3]byte{0xe0, 0xb9, 0x98}}, {3, [3]byte{0xe0, 0xb9, 0x99}}, - {3, [3]byte{0xe0, 0xb9, 0x9a}}, {3, [3]byte{0xe0, 0xb9, 0x9b}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa1000e01, 0xa2000e02, 0xa3000e03, 0xa4000e04, 0xa5000e05, 0xa6000e06, 0xa7000e07, - 0xa8000e08, 0xa9000e09, 0xaa000e0a, 0xab000e0b, 0xac000e0c, 0xad000e0d, 0xae000e0e, 0xaf000e0f, - 0xb0000e10, 0xb1000e11, 0xb2000e12, 0xb3000e13, 0xb4000e14, 0xb5000e15, 0xb6000e16, 0xb7000e17, - 0xb8000e18, 0xb9000e19, 0xba000e1a, 0xbb000e1b, 0xbc000e1c, 0xbd000e1d, 0xbe000e1e, 0xbf000e1f, - 0xc0000e20, 0xc1000e21, 0xc2000e22, 0xc3000e23, 0xc4000e24, 0xc5000e25, 0xc6000e26, 0xc7000e27, - 0xc8000e28, 0xc9000e29, 0xca000e2a, 0xcb000e2b, 0xcc000e2c, 0xcd000e2d, 0xce000e2e, 0xcf000e2f, - 0xd0000e30, 0xd1000e31, 0xd2000e32, 0xd3000e33, 0xd4000e34, 0xd5000e35, 0xd6000e36, 0xd7000e37, - 0xd8000e38, 0xd9000e39, 0xda000e3a, 0xdf000e3f, 0xe0000e40, 0xe1000e41, 0xe2000e42, 0xe3000e43, - 0xe4000e44, 0xe5000e45, 0xe6000e46, 0xe7000e47, 0xe8000e48, 0xe9000e49, 0xea000e4a, 0xeb000e4b, - 0xec000e4c, 0xed000e4d, 0xee000e4e, 0xef000e4f, 0xf0000e50, 0xf1000e51, 0xf2000e52, 0xf3000e53, - 0xf4000e54, 0xf5000e55, 0xf6000e56, 0xf7000e57, 0xf8000e58, 0xf9000e59, 0xfa000e5a, 0xfb000e5b, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x9300201c, 0x9400201d, 0x95002022, 0x85002026, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - }, -} - -// Windows1250 is the Windows 1250 encoding. -var Windows1250 encoding.Encoding = &windows1250 - -var windows1250 = charmap{ - name: "Windows 1250", - mib: identifier.Windows1250, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc4, 0xbd, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xbb0000bb, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, - 0xcd0000cd, 0xce0000ce, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, - 0xdd0000dd, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, - 0xed0000ed, 0xee0000ee, 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, - 0xfd0000fd, 0xc3000102, 0xe3000103, 0xa5000104, 0xb9000105, 0xc6000106, 0xe6000107, 0xc800010c, - 0xe800010d, 0xcf00010e, 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, - 0xec00011b, 0xc5000139, 0xe500013a, 0xbc00013d, 0xbe00013e, 0xa3000141, 0xb3000142, 0xd1000143, - 0xf1000144, 0xd2000147, 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, - 0xf8000159, 0x8c00015a, 0x9c00015b, 0xaa00015e, 0xba00015f, 0x8a000160, 0x9a000161, 0xde000162, - 0xfe000163, 0x8d000164, 0x9d000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0x8f000179, - 0x9f00017a, 0xaf00017b, 0xbf00017c, 0x8e00017d, 0x9e00017e, 0xa10002c7, 0xa20002d8, 0xff0002d9, - 0xb20002db, 0xbd0002dd, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1251 is the Windows 1251 encoding. -var Windows1251 encoding.Encoding = &windows1251 - -var windows1251 = charmap{ - name: "Windows 1251", - mib: identifier.Windows1251, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0x8b, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9c, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x96, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, - 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xa8000401, - 0x80000402, 0x81000403, 0xaa000404, 0xbd000405, 0xb2000406, 0xaf000407, 0xa3000408, 0x8a000409, - 0x8c00040a, 0x8e00040b, 0x8d00040c, 0xa100040e, 0x8f00040f, 0xc0000410, 0xc1000411, 0xc2000412, - 0xc3000413, 0xc4000414, 0xc5000415, 0xc6000416, 0xc7000417, 0xc8000418, 0xc9000419, 0xca00041a, - 0xcb00041b, 0xcc00041c, 0xcd00041d, 0xce00041e, 0xcf00041f, 0xd0000420, 0xd1000421, 0xd2000422, - 0xd3000423, 0xd4000424, 0xd5000425, 0xd6000426, 0xd7000427, 0xd8000428, 0xd9000429, 0xda00042a, - 0xdb00042b, 0xdc00042c, 0xdd00042d, 0xde00042e, 0xdf00042f, 0xe0000430, 0xe1000431, 0xe2000432, - 0xe3000433, 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, - 0xeb00043b, 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, - 0xf3000443, 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, - 0xfb00044b, 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xff00044f, 0xb8000451, 0x90000452, 0x83000453, - 0xba000454, 0xbe000455, 0xb3000456, 0xbf000457, 0xbc000458, 0x9a000459, 0x9c00045a, 0x9e00045b, - 0x9d00045c, 0xa200045e, 0x9f00045f, 0xa5000490, 0xb4000491, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x880020ac, 0xb9002116, 0x99002122, 0x99002122, - }, -} - -// Windows1252 is the Windows 1252 encoding. -var Windows1252 encoding.Encoding = &windows1252 - -var windows1252 = charmap{ - name: "Windows 1252", - mib: identifier.Windows1252, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0x8c000152, 0x9c000153, 0x8a000160, 0x9a000161, 0x9f000178, 0x8e00017d, 0x9e00017e, 0x83000192, - 0x880002c6, 0x980002dc, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1253 is the Windows 1253 encoding. -var Windows1253 encoding.Encoding = &windows1253 - -var windows1253 = charmap{ - name: "Windows 1253", - mib: identifier.Windows1253, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, - 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, 0x83000192, 0xb4000384, 0xa1000385, - 0xa2000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, 0xbe00038e, 0xbf00038f, 0xc0000390, - 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, 0xc6000396, 0xc7000397, 0xc8000398, - 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, 0xce00039e, 0xcf00039f, 0xd00003a0, - 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, 0xd70003a7, 0xd80003a8, 0xd90003a9, - 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, 0xdf0003af, 0xe00003b0, 0xe10003b1, - 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, 0xe70003b7, 0xe80003b8, 0xe90003b9, - 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, 0xef0003bf, 0xf00003c0, 0xf10003c1, - 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, 0xf70003c7, 0xf80003c8, 0xf90003c9, - 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, 0x96002013, 0x97002014, 0xaf002015, - 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, - 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1254 is the Windows 1254 encoding. -var Windows1254 encoding.Encoding = &windows1254 - -var windows1254 = charmap{ - name: "Windows 1254", - mib: identifier.Windows1254, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, - 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, - 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, - 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0x8c000152, 0x9c000153, - 0xde00015e, 0xfe00015f, 0x8a000160, 0x9a000161, 0x9f000178, 0x83000192, 0x880002c6, 0x980002dc, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, - 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1255 is the Windows 1255 encoding. -var Windows1255 encoding.Encoding = &windows1255 - -var windows1255 = charmap{ - name: "Windows 1255", - mib: identifier.Windows1255, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xaa}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xd6, 0xb0, 0x00}}, {2, [3]byte{0xd6, 0xb1, 0x00}}, - {2, [3]byte{0xd6, 0xb2, 0x00}}, {2, [3]byte{0xd6, 0xb3, 0x00}}, - {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}}, - {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}}, - {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, - {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}}, - {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}}, - {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}}, - {2, [3]byte{0xd7, 0x82, 0x00}}, {2, [3]byte{0xd7, 0x83, 0x00}}, - {2, [3]byte{0xd7, 0xb0, 0x00}}, {2, [3]byte{0xd7, 0xb1, 0x00}}, - {2, [3]byte{0xd7, 0xb2, 0x00}}, {2, [3]byte{0xd7, 0xb3, 0x00}}, - {2, [3]byte{0xd7, 0xb4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192, - 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5, - 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, 0xce0005be, - 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, 0xe20005d2, - 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, 0xea0005da, - 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, 0xf20005e2, - 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, 0xfa0005ea, - 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, 0x800020ac, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1256 is the Windows 1256 encoding. -var Windows1256 encoding.Encoding = &windows1256 - -var windows1256 = charmap{ - name: "Windows 1256", - mib: identifier.Windows1256, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xd9, 0xbe, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd9, 0xb9, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xda, 0x86, 0x00}}, - {2, [3]byte{0xda, 0x98, 0x00}}, {2, [3]byte{0xda, 0x88, 0x00}}, - {2, [3]byte{0xda, 0xaf, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xda, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xda, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8c}}, - {3, [3]byte{0xe2, 0x80, 0x8d}}, {2, [3]byte{0xda, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd8, 0x8c, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xda, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0x9b, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {2, [3]byte{0xdb, 0x81, 0x00}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xd8, 0xb7, 0x00}}, {2, [3]byte{0xd8, 0xb8, 0x00}}, - {2, [3]byte{0xd8, 0xb9, 0x00}}, {2, [3]byte{0xd8, 0xba, 0x00}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xd9, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xd9, 0x89, 0x00}}, {2, [3]byte{0xd9, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xd9, 0x8b, 0x00}}, {2, [3]byte{0xd9, 0x8c, 0x00}}, - {2, [3]byte{0xd9, 0x8d, 0x00}}, {2, [3]byte{0xd9, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xd9, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {2, [3]byte{0xdb, 0x92, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xd70000d7, 0xe00000e0, 0xe20000e2, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xee0000ee, 0xef0000ef, 0xf40000f4, 0xf70000f7, - 0xf90000f9, 0xfb0000fb, 0xfc0000fc, 0x8c000152, 0x9c000153, 0x83000192, 0x880002c6, 0xa100060c, - 0xba00061b, 0xbf00061f, 0xc1000621, 0xc2000622, 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, - 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, - 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, - 0xd8000637, 0xd9000638, 0xda000639, 0xdb00063a, 0xdc000640, 0xdd000641, 0xde000642, 0xdf000643, - 0xe1000644, 0xe3000645, 0xe4000646, 0xe5000647, 0xe6000648, 0xec000649, 0xed00064a, 0xf000064b, - 0xf100064c, 0xf200064d, 0xf300064e, 0xf500064f, 0xf6000650, 0xf8000651, 0xfa000652, 0x8a000679, - 0x8100067e, 0x8d000686, 0x8f000688, 0x9a000691, 0x8e000698, 0x980006a9, 0x900006af, 0x9f0006ba, - 0xaa0006be, 0xc00006c1, 0xff0006d2, 0x9d00200c, 0x9e00200d, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, - }, -} - -// Windows1257 is the Windows 1257 encoding. -var Windows1257 encoding.Encoding = &windows1257 - -var windows1257 = charmap{ - name: "Windows 1257", - mib: identifier.Windows1257, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x87, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0x8d0000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0x9d0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0x8f0000b8, 0xb90000b9, 0xbb0000bb, - 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, - 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, - 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, - 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, - 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, - 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, - 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, - 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, - 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, - 0x8e0002c7, 0xff0002d9, 0x9e0002db, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, - 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, - 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1258 is the Windows 1258 encoding. -var Windows1258 encoding.Encoding = &windows1258 - -var windows1258 = charmap{ - name: "Windows 1258", - mib: identifier.Windows1258, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xcc, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xcc, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc6, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc6, 0xaf, 0x00}}, - {2, [3]byte{0xcc, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xcc, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xcc, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc6, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc6, 0xb0, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xab}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd30000d3, - 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xc3000102, 0xe3000103, 0xd0000110, 0xf0000111, 0x8c000152, 0x9c000153, - 0x9f000178, 0x83000192, 0xd50001a0, 0xf50001a1, 0xdd0001af, 0xfd0001b0, 0x880002c6, 0x980002dc, - 0xcc000300, 0xec000301, 0xde000303, 0xd2000309, 0xf2000323, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xfe0020ab, 0x800020ac, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// XUserDefined is the X-User-Defined encoding. -// -// It is defined at http://encoding.spec.whatwg.org/#x-user-defined -var XUserDefined encoding.Encoding = &xUserDefined - -var xUserDefined = charmap{ - name: "X-User-Defined", - mib: identifier.XUserDefined, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0x9e, 0x80}}, {3, [3]byte{0xef, 0x9e, 0x81}}, - {3, [3]byte{0xef, 0x9e, 0x82}}, {3, [3]byte{0xef, 0x9e, 0x83}}, - {3, [3]byte{0xef, 0x9e, 0x84}}, {3, [3]byte{0xef, 0x9e, 0x85}}, - {3, [3]byte{0xef, 0x9e, 0x86}}, {3, [3]byte{0xef, 0x9e, 0x87}}, - {3, [3]byte{0xef, 0x9e, 0x88}}, {3, [3]byte{0xef, 0x9e, 0x89}}, - {3, [3]byte{0xef, 0x9e, 0x8a}}, {3, [3]byte{0xef, 0x9e, 0x8b}}, - {3, [3]byte{0xef, 0x9e, 0x8c}}, {3, [3]byte{0xef, 0x9e, 0x8d}}, - {3, [3]byte{0xef, 0x9e, 0x8e}}, {3, [3]byte{0xef, 0x9e, 0x8f}}, - {3, [3]byte{0xef, 0x9e, 0x90}}, {3, [3]byte{0xef, 0x9e, 0x91}}, - {3, [3]byte{0xef, 0x9e, 0x92}}, {3, [3]byte{0xef, 0x9e, 0x93}}, - {3, [3]byte{0xef, 0x9e, 0x94}}, {3, [3]byte{0xef, 0x9e, 0x95}}, - {3, [3]byte{0xef, 0x9e, 0x96}}, {3, [3]byte{0xef, 0x9e, 0x97}}, - {3, [3]byte{0xef, 0x9e, 0x98}}, {3, [3]byte{0xef, 0x9e, 0x99}}, - {3, [3]byte{0xef, 0x9e, 0x9a}}, {3, [3]byte{0xef, 0x9e, 0x9b}}, - {3, [3]byte{0xef, 0x9e, 0x9c}}, {3, [3]byte{0xef, 0x9e, 0x9d}}, - {3, [3]byte{0xef, 0x9e, 0x9e}}, {3, [3]byte{0xef, 0x9e, 0x9f}}, - {3, [3]byte{0xef, 0x9e, 0xa0}}, {3, [3]byte{0xef, 0x9e, 0xa1}}, - {3, [3]byte{0xef, 0x9e, 0xa2}}, {3, [3]byte{0xef, 0x9e, 0xa3}}, - {3, [3]byte{0xef, 0x9e, 0xa4}}, {3, [3]byte{0xef, 0x9e, 0xa5}}, - {3, [3]byte{0xef, 0x9e, 0xa6}}, {3, [3]byte{0xef, 0x9e, 0xa7}}, - {3, [3]byte{0xef, 0x9e, 0xa8}}, {3, [3]byte{0xef, 0x9e, 0xa9}}, - {3, [3]byte{0xef, 0x9e, 0xaa}}, {3, [3]byte{0xef, 0x9e, 0xab}}, - {3, [3]byte{0xef, 0x9e, 0xac}}, {3, [3]byte{0xef, 0x9e, 0xad}}, - {3, [3]byte{0xef, 0x9e, 0xae}}, {3, [3]byte{0xef, 0x9e, 0xaf}}, - {3, [3]byte{0xef, 0x9e, 0xb0}}, {3, [3]byte{0xef, 0x9e, 0xb1}}, - {3, [3]byte{0xef, 0x9e, 0xb2}}, {3, [3]byte{0xef, 0x9e, 0xb3}}, - {3, [3]byte{0xef, 0x9e, 0xb4}}, {3, [3]byte{0xef, 0x9e, 0xb5}}, - {3, [3]byte{0xef, 0x9e, 0xb6}}, {3, [3]byte{0xef, 0x9e, 0xb7}}, - {3, [3]byte{0xef, 0x9e, 0xb8}}, {3, [3]byte{0xef, 0x9e, 0xb9}}, - {3, [3]byte{0xef, 0x9e, 0xba}}, {3, [3]byte{0xef, 0x9e, 0xbb}}, - {3, [3]byte{0xef, 0x9e, 0xbc}}, {3, [3]byte{0xef, 0x9e, 0xbd}}, - {3, [3]byte{0xef, 0x9e, 0xbe}}, {3, [3]byte{0xef, 0x9e, 0xbf}}, - {3, [3]byte{0xef, 0x9f, 0x80}}, {3, [3]byte{0xef, 0x9f, 0x81}}, - {3, [3]byte{0xef, 0x9f, 0x82}}, {3, [3]byte{0xef, 0x9f, 0x83}}, - {3, [3]byte{0xef, 0x9f, 0x84}}, {3, [3]byte{0xef, 0x9f, 0x85}}, - {3, [3]byte{0xef, 0x9f, 0x86}}, {3, [3]byte{0xef, 0x9f, 0x87}}, - {3, [3]byte{0xef, 0x9f, 0x88}}, {3, [3]byte{0xef, 0x9f, 0x89}}, - {3, [3]byte{0xef, 0x9f, 0x8a}}, {3, [3]byte{0xef, 0x9f, 0x8b}}, - {3, [3]byte{0xef, 0x9f, 0x8c}}, {3, [3]byte{0xef, 0x9f, 0x8d}}, - {3, [3]byte{0xef, 0x9f, 0x8e}}, {3, [3]byte{0xef, 0x9f, 0x8f}}, - {3, [3]byte{0xef, 0x9f, 0x90}}, {3, [3]byte{0xef, 0x9f, 0x91}}, - {3, [3]byte{0xef, 0x9f, 0x92}}, {3, [3]byte{0xef, 0x9f, 0x93}}, - {3, [3]byte{0xef, 0x9f, 0x94}}, {3, [3]byte{0xef, 0x9f, 0x95}}, - {3, [3]byte{0xef, 0x9f, 0x96}}, {3, [3]byte{0xef, 0x9f, 0x97}}, - {3, [3]byte{0xef, 0x9f, 0x98}}, {3, [3]byte{0xef, 0x9f, 0x99}}, - {3, [3]byte{0xef, 0x9f, 0x9a}}, {3, [3]byte{0xef, 0x9f, 0x9b}}, - {3, [3]byte{0xef, 0x9f, 0x9c}}, {3, [3]byte{0xef, 0x9f, 0x9d}}, - {3, [3]byte{0xef, 0x9f, 0x9e}}, {3, [3]byte{0xef, 0x9f, 0x9f}}, - {3, [3]byte{0xef, 0x9f, 0xa0}}, {3, [3]byte{0xef, 0x9f, 0xa1}}, - {3, [3]byte{0xef, 0x9f, 0xa2}}, {3, [3]byte{0xef, 0x9f, 0xa3}}, - {3, [3]byte{0xef, 0x9f, 0xa4}}, {3, [3]byte{0xef, 0x9f, 0xa5}}, - {3, [3]byte{0xef, 0x9f, 0xa6}}, {3, [3]byte{0xef, 0x9f, 0xa7}}, - {3, [3]byte{0xef, 0x9f, 0xa8}}, {3, [3]byte{0xef, 0x9f, 0xa9}}, - {3, [3]byte{0xef, 0x9f, 0xaa}}, {3, [3]byte{0xef, 0x9f, 0xab}}, - {3, [3]byte{0xef, 0x9f, 0xac}}, {3, [3]byte{0xef, 0x9f, 0xad}}, - {3, [3]byte{0xef, 0x9f, 0xae}}, {3, [3]byte{0xef, 0x9f, 0xaf}}, - {3, [3]byte{0xef, 0x9f, 0xb0}}, {3, [3]byte{0xef, 0x9f, 0xb1}}, - {3, [3]byte{0xef, 0x9f, 0xb2}}, {3, [3]byte{0xef, 0x9f, 0xb3}}, - {3, [3]byte{0xef, 0x9f, 0xb4}}, {3, [3]byte{0xef, 0x9f, 0xb5}}, - {3, [3]byte{0xef, 0x9f, 0xb6}}, {3, [3]byte{0xef, 0x9f, 0xb7}}, - {3, [3]byte{0xef, 0x9f, 0xb8}}, {3, [3]byte{0xef, 0x9f, 0xb9}}, - {3, [3]byte{0xef, 0x9f, 0xba}}, {3, [3]byte{0xef, 0x9f, 0xbb}}, - {3, [3]byte{0xef, 0x9f, 0xbc}}, {3, [3]byte{0xef, 0x9f, 0xbd}}, - {3, [3]byte{0xef, 0x9f, 0xbe}}, {3, [3]byte{0xef, 0x9f, 0xbf}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x8000f780, 0x8100f781, 0x8200f782, 0x8300f783, 0x8400f784, 0x8500f785, 0x8600f786, 0x8700f787, - 0x8800f788, 0x8900f789, 0x8a00f78a, 0x8b00f78b, 0x8c00f78c, 0x8d00f78d, 0x8e00f78e, 0x8f00f78f, - 0x9000f790, 0x9100f791, 0x9200f792, 0x9300f793, 0x9400f794, 0x9500f795, 0x9600f796, 0x9700f797, - 0x9800f798, 0x9900f799, 0x9a00f79a, 0x9b00f79b, 0x9c00f79c, 0x9d00f79d, 0x9e00f79e, 0x9f00f79f, - 0xa000f7a0, 0xa100f7a1, 0xa200f7a2, 0xa300f7a3, 0xa400f7a4, 0xa500f7a5, 0xa600f7a6, 0xa700f7a7, - 0xa800f7a8, 0xa900f7a9, 0xaa00f7aa, 0xab00f7ab, 0xac00f7ac, 0xad00f7ad, 0xae00f7ae, 0xaf00f7af, - 0xb000f7b0, 0xb100f7b1, 0xb200f7b2, 0xb300f7b3, 0xb400f7b4, 0xb500f7b5, 0xb600f7b6, 0xb700f7b7, - 0xb800f7b8, 0xb900f7b9, 0xba00f7ba, 0xbb00f7bb, 0xbc00f7bc, 0xbd00f7bd, 0xbe00f7be, 0xbf00f7bf, - 0xc000f7c0, 0xc100f7c1, 0xc200f7c2, 0xc300f7c3, 0xc400f7c4, 0xc500f7c5, 0xc600f7c6, 0xc700f7c7, - 0xc800f7c8, 0xc900f7c9, 0xca00f7ca, 0xcb00f7cb, 0xcc00f7cc, 0xcd00f7cd, 0xce00f7ce, 0xcf00f7cf, - 0xd000f7d0, 0xd100f7d1, 0xd200f7d2, 0xd300f7d3, 0xd400f7d4, 0xd500f7d5, 0xd600f7d6, 0xd700f7d7, - 0xd800f7d8, 0xd900f7d9, 0xda00f7da, 0xdb00f7db, 0xdc00f7dc, 0xdd00f7dd, 0xde00f7de, 0xdf00f7df, - 0xe000f7e0, 0xe100f7e1, 0xe200f7e2, 0xe300f7e3, 0xe400f7e4, 0xe500f7e5, 0xe600f7e6, 0xe700f7e7, - 0xe800f7e8, 0xe900f7e9, 0xea00f7ea, 0xeb00f7eb, 0xec00f7ec, 0xed00f7ed, 0xee00f7ee, 0xef00f7ef, - 0xf000f7f0, 0xf100f7f1, 0xf200f7f2, 0xf300f7f3, 0xf400f7f4, 0xf500f7f5, 0xf600f7f6, 0xf700f7f7, - 0xf800f7f8, 0xf900f7f9, 0xfa00f7fa, 0xfb00f7fb, 0xfc00f7fc, 0xfd00f7fd, 0xfe00f7fe, 0xff00f7ff, - }, -} -var listAll = []encoding.Encoding{ - CodePage437, - CodePage850, - CodePage852, - CodePage855, - CodePage858, - CodePage860, - CodePage862, - CodePage863, - CodePage865, - CodePage866, - ISO8859_1, - ISO8859_2, - ISO8859_3, - ISO8859_4, - ISO8859_5, - ISO8859_6, - ISO8859_6E, - ISO8859_6I, - ISO8859_7, - ISO8859_8, - ISO8859_8E, - ISO8859_8I, - ISO8859_10, - ISO8859_13, - ISO8859_14, - ISO8859_15, - ISO8859_16, - KOI8R, - KOI8U, - Macintosh, - MacintoshCyrillic, - Windows874, - Windows1250, - Windows1251, - Windows1252, - Windows1253, - Windows1254, - Windows1255, - Windows1256, - Windows1257, - Windows1258, - XUserDefined, -} - -// Total table size 78736 bytes (76KiB); checksum: 811C9DC5 diff --git a/vendor/golang.org/x/text/encoding/encoding.go b/vendor/golang.org/x/text/encoding/encoding.go deleted file mode 100644 index 221f175..0000000 --- a/vendor/golang.org/x/text/encoding/encoding.go +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package encoding defines an interface for character encodings, such as Shift -// JIS and Windows 1252, that can convert to and from UTF-8. -// -// Encoding implementations are provided in other packages, such as -// golang.org/x/text/encoding/charmap and -// golang.org/x/text/encoding/japanese. -package encoding // import "golang.org/x/text/encoding" - -import ( - "errors" - "io" - "strconv" - "unicode/utf8" - - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// TODO: -// - There seems to be some inconsistency in when decoders return errors -// and when not. Also documentation seems to suggest they shouldn't return -// errors at all (except for UTF-16). -// - Encoders seem to rely on or at least benefit from the input being in NFC -// normal form. Perhaps add an example how users could prepare their output. - -// Encoding is a character set encoding that can be transformed to and from -// UTF-8. -type Encoding interface { - // NewDecoder returns a Decoder. - NewDecoder() *Decoder - - // NewEncoder returns an Encoder. - NewEncoder() *Encoder -} - -// A Decoder converts bytes to UTF-8. It implements transform.Transformer. -// -// Transforming source bytes that are not of that encoding will not result in an -// error per se. Each byte that cannot be transcoded will be represented in the -// output by the UTF-8 encoding of '\uFFFD', the replacement rune. -type Decoder struct { - transform.Transformer - - // This forces external creators of Decoders to use names in struct - // initializers, allowing for future extendibility without having to break - // code. - _ struct{} -} - -// Bytes converts the given encoded bytes to UTF-8. It returns the converted -// bytes or nil, err if any error occurred. -func (d *Decoder) Bytes(b []byte) ([]byte, error) { - b, _, err := transform.Bytes(d, b) - if err != nil { - return nil, err - } - return b, nil -} - -// String converts the given encoded string to UTF-8. It returns the converted -// string or "", err if any error occurred. -func (d *Decoder) String(s string) (string, error) { - s, _, err := transform.String(d, s) - if err != nil { - return "", err - } - return s, nil -} - -// Reader wraps another Reader to decode its bytes. -// -// The Decoder may not be used for any other operation as long as the returned -// Reader is in use. -func (d *Decoder) Reader(r io.Reader) io.Reader { - return transform.NewReader(r, d) -} - -// An Encoder converts bytes from UTF-8. It implements transform.Transformer. -// -// Each rune that cannot be transcoded will result in an error. In this case, -// the transform will consume all source byte up to, not including the offending -// rune. Transforming source bytes that are not valid UTF-8 will be replaced by -// `\uFFFD`. To return early with an error instead, use transform.Chain to -// preprocess the data with a UTF8Validator. -type Encoder struct { - transform.Transformer - - // This forces external creators of Encoders to use names in struct - // initializers, allowing for future extendibility without having to break - // code. - _ struct{} -} - -// Bytes converts bytes from UTF-8. It returns the converted bytes or nil, err if -// any error occurred. -func (e *Encoder) Bytes(b []byte) ([]byte, error) { - b, _, err := transform.Bytes(e, b) - if err != nil { - return nil, err - } - return b, nil -} - -// String converts a string from UTF-8. It returns the converted string or -// "", err if any error occurred. -func (e *Encoder) String(s string) (string, error) { - s, _, err := transform.String(e, s) - if err != nil { - return "", err - } - return s, nil -} - -// Writer wraps another Writer to encode its UTF-8 output. -// -// The Encoder may not be used for any other operation as long as the returned -// Writer is in use. -func (e *Encoder) Writer(w io.Writer) io.Writer { - return transform.NewWriter(w, e) -} - -// ASCIISub is the ASCII substitute character, as recommended by -// http://unicode.org/reports/tr36/#Text_Comparison -const ASCIISub = '\x1a' - -// Nop is the nop encoding. Its transformed bytes are the same as the source -// bytes; it does not replace invalid UTF-8 sequences. -var Nop Encoding = nop{} - -type nop struct{} - -func (nop) NewDecoder() *Decoder { - return &Decoder{Transformer: transform.Nop} -} -func (nop) NewEncoder() *Encoder { - return &Encoder{Transformer: transform.Nop} -} - -// Replacement is the replacement encoding. Decoding from the replacement -// encoding yields a single '\uFFFD' replacement rune. Encoding from UTF-8 to -// the replacement encoding yields the same as the source bytes except that -// invalid UTF-8 is converted to '\uFFFD'. -// -// It is defined at http://encoding.spec.whatwg.org/#replacement -var Replacement Encoding = replacement{} - -type replacement struct{} - -func (replacement) NewDecoder() *Decoder { - return &Decoder{Transformer: replacementDecoder{}} -} - -func (replacement) NewEncoder() *Encoder { - return &Encoder{Transformer: replacementEncoder{}} -} - -func (replacement) ID() (mib identifier.MIB, other string) { - return identifier.Replacement, "" -} - -type replacementDecoder struct{ transform.NopResetter } - -func (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(dst) < 3 { - return 0, 0, transform.ErrShortDst - } - if atEOF { - const fffd = "\ufffd" - dst[0] = fffd[0] - dst[1] = fffd[1] - dst[2] = fffd[2] - nDst = 3 - } - return nDst, len(src), nil -} - -type replacementEncoder struct{ transform.NopResetter } - -func (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - r = '\ufffd' - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -// HTMLEscapeUnsupported wraps encoders to replace source runes outside the -// repertoire of the destination encoding with HTML escape sequences. -// -// This wrapper exists to comply to URL and HTML forms requiring a -// non-terminating legacy encoder. The produced sequences may lead to data -// loss as they are indistinguishable from legitimate input. To avoid this -// issue, use UTF-8 encodings whenever possible. -func HTMLEscapeUnsupported(e *Encoder) *Encoder { - return &Encoder{Transformer: &errorHandler{e, errorToHTML}} -} - -// ReplaceUnsupported wraps encoders to replace source runes outside the -// repertoire of the destination encoding with an encoding-specific -// replacement. -// -// This wrapper is only provided for backwards compatibility and legacy -// handling. Its use is strongly discouraged. Use UTF-8 whenever possible. -func ReplaceUnsupported(e *Encoder) *Encoder { - return &Encoder{Transformer: &errorHandler{e, errorToReplacement}} -} - -type errorHandler struct { - *Encoder - handler func(dst []byte, r rune, err repertoireError) (n int, ok bool) -} - -// TODO: consider making this error public in some form. -type repertoireError interface { - Replacement() byte -} - -func (h errorHandler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - nDst, nSrc, err = h.Transformer.Transform(dst, src, atEOF) - for err != nil { - rerr, ok := err.(repertoireError) - if !ok { - return nDst, nSrc, err - } - r, sz := utf8.DecodeRune(src[nSrc:]) - n, ok := h.handler(dst[nDst:], r, rerr) - if !ok { - return nDst, nSrc, transform.ErrShortDst - } - err = nil - nDst += n - if nSrc += sz; nSrc < len(src) { - var dn, sn int - dn, sn, err = h.Transformer.Transform(dst[nDst:], src[nSrc:], atEOF) - nDst += dn - nSrc += sn - } - } - return nDst, nSrc, err -} - -func errorToHTML(dst []byte, r rune, err repertoireError) (n int, ok bool) { - buf := [8]byte{} - b := strconv.AppendUint(buf[:0], uint64(r), 10) - if n = len(b) + len("&#;"); n >= len(dst) { - return 0, false - } - dst[0] = '&' - dst[1] = '#' - dst[copy(dst[2:], b)+2] = ';' - return n, true -} - -func errorToReplacement(dst []byte, r rune, err repertoireError) (n int, ok bool) { - if len(dst) == 0 { - return 0, false - } - dst[0] = err.Replacement() - return 1, true -} - -// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8. -var ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8") - -// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first -// input byte that is not valid UTF-8. -var UTF8Validator transform.Transformer = utf8Validator{} - -type utf8Validator struct{ transform.NopResetter } - -func (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n = len(dst) - } - for i := 0; i < n; { - if c := src[i]; c < utf8.RuneSelf { - dst[i] = c - i++ - continue - } - _, size := utf8.DecodeRune(src[i:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - err = ErrInvalidUTF8 - if !atEOF && !utf8.FullRune(src[i:]) { - err = transform.ErrShortSrc - } - return i, i, err - } - if i+size > len(dst) { - return i, i, transform.ErrShortDst - } - for ; size > 0; size-- { - dst[i] = src[i] - i++ - } - } - if len(src) > len(dst) { - err = transform.ErrShortDst - } - return n, n, err -} diff --git a/vendor/golang.org/x/text/encoding/encoding_test.go b/vendor/golang.org/x/text/encoding/encoding_test.go deleted file mode 100644 index 0cf203f..0000000 --- a/vendor/golang.org/x/text/encoding/encoding_test.go +++ /dev/null @@ -1,1128 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package encoding_test - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "strings" - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/japanese" - "golang.org/x/text/encoding/korean" - "golang.org/x/text/encoding/simplifiedchinese" - "golang.org/x/text/encoding/traditionalchinese" - "golang.org/x/text/encoding/unicode" - "golang.org/x/text/encoding/unicode/utf32" - "golang.org/x/text/transform" -) - -func trim(s string) string { - if len(s) < 120 { - return s - } - return s[:50] + "..." + s[len(s)-50:] -} - -var basicTestCases = []struct { - e encoding.Encoding - encPrefix string - encSuffix string - encoded string - utf8 string -}{ - // The encoded forms can be verified by the iconv program: - // $ echo 月日は百代 | iconv -f UTF-8 -t SHIFT-JIS | xxd - - // Charmap tests. - { - e: charmap.CodePage437, - encoded: "H\x82ll\x93 \x9d\xa7\xf4\x9c\xbe", - utf8: "Héllô ¥º⌠£╛", - }, - { - e: charmap.CodePage866, - encoded: "H\xf3\xd3o \x98\xfd\x9f\xdd\xa1", - utf8: "Hє╙o Ш¤Я▌б", - }, - { - e: charmap.ISO8859_2, - encoded: "Hel\xe5\xf5", - utf8: "Helĺő", - }, - { - e: charmap.ISO8859_3, - encoded: "He\xbd\xd4", - utf8: "He½Ô", - }, - { - e: charmap.ISO8859_4, - encoded: "Hel\xb6\xf8", - utf8: "Helļø", - }, - { - e: charmap.ISO8859_5, - encoded: "H\xd7\xc6o", - utf8: "HзЦo", - }, - { - e: charmap.ISO8859_6, - encoded: "Hel\xc2\xc9", - utf8: "Helآة", - }, - { - e: charmap.ISO8859_7, - encoded: "H\xeel\xebo", - utf8: "Hξlλo", - }, - { - e: charmap.ISO8859_8, - encoded: "Hel\xf5\xed", - utf8: "Helץם", - }, - { - e: charmap.ISO8859_10, - encoded: "H\xea\xbfo", - utf8: "Hęŋo", - }, - { - e: charmap.ISO8859_13, - encoded: "H\xe6l\xf9o", - utf8: "Hęlło", - }, - { - e: charmap.ISO8859_14, - encoded: "He\xfe\xd0o", - utf8: "HeŷŴo", - }, - { - e: charmap.ISO8859_15, - encoded: "H\xa4ll\xd8", - utf8: "H€llØ", - }, - { - e: charmap.ISO8859_16, - encoded: "H\xe6ll\xbd", - utf8: "Hællœ", - }, - { - e: charmap.KOI8R, - encoded: "He\x93\xad\x9c", - utf8: "He⌠╜°", - }, - { - e: charmap.KOI8U, - encoded: "He\x93\xad\x9c", - utf8: "He⌠ґ°", - }, - { - e: charmap.Macintosh, - encoded: "He\xdf\xd7", - utf8: "Hefl◊", - }, - { - e: charmap.MacintoshCyrillic, - encoded: "He\xbe\x94", - utf8: "HeЊФ", - }, - { - e: charmap.Windows874, - encoded: "He\xb7\xf0", - utf8: "Heท๐", - }, - { - e: charmap.Windows1250, - encoded: "He\xe5\xe5o", - utf8: "Heĺĺo", - }, - { - e: charmap.Windows1251, - encoded: "H\xball\xfe", - utf8: "Hєllю", - }, - { - e: charmap.Windows1252, - encoded: "H\xe9ll\xf4 \xa5\xbA\xae\xa3\xd0", - utf8: "Héllô ¥º®£Ð", - }, - { - e: charmap.Windows1253, - encoded: "H\xe5ll\xd6", - utf8: "HεllΦ", - }, - { - e: charmap.Windows1254, - encoded: "\xd0ello", - utf8: "Ğello", - }, - { - e: charmap.Windows1255, - encoded: "He\xd4o", - utf8: "Heװo", - }, - { - e: charmap.Windows1256, - encoded: "H\xdbllo", - utf8: "Hغllo", - }, - { - e: charmap.Windows1257, - encoded: "He\xeflo", - utf8: "Heļlo", - }, - { - e: charmap.Windows1258, - encoded: "Hell\xf5", - utf8: "Hellơ", - }, - { - e: charmap.XUserDefined, - encoded: "\x00\x40\x7f\x80\xab\xff", - utf8: "\u0000\u0040\u007f\uf780\uf7ab\uf7ff", - }, - - // UTF-16 tests. - { - e: utf16BEIB, - encoded: "\x00\x57\x00\xe4\xd8\x35\xdd\x65", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf16BEEB, - encPrefix: "\xfe\xff", - encoded: "\x00\x57\x00\xe4\xd8\x35\xdd\x65", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf16LEIB, - encoded: "\x57\x00\xe4\x00\x35\xd8\x65\xdd", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf16LEEB, - encPrefix: "\xff\xfe", - encoded: "\x57\x00\xe4\x00\x35\xd8\x65\xdd", - utf8: "\x57\u00e4\U0001d565", - }, - - // UTF-32 tests. - { - e: utf32BEIB, - encoded: "\x00\x00\x00\x57\x00\x00\x00\xe4\x00\x01\xd5\x65", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf32.UTF32(utf32.BigEndian, utf32.ExpectBOM), - encPrefix: "\x00\x00\xfe\xff", - encoded: "\x00\x00\x00\x57\x00\x00\x00\xe4\x00\x01\xd5\x65", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf32.UTF32(utf32.LittleEndian, utf32.IgnoreBOM), - encoded: "\x57\x00\x00\x00\xe4\x00\x00\x00\x65\xd5\x01\x00", - utf8: "\x57\u00e4\U0001d565", - }, - { - e: utf32.UTF32(utf32.LittleEndian, utf32.ExpectBOM), - encPrefix: "\xff\xfe\x00\x00", - encoded: "\x57\x00\x00\x00\xe4\x00\x00\x00\x65\xd5\x01\x00", - utf8: "\x57\u00e4\U0001d565", - }, - - // Chinese tests. - // - // "\u0081\u00de\u00df\u00e0\u00e1\u00e2\u00e3\uffff\U00010000" is a - // nonsense string that contains GB18030 encodable codepoints of which - // only U+00E0 and U+00E1 are GBK encodable. - // - // "A\u3000\u554a\u4e02\u4e90\u72dc\u7349\u02ca\u2588Z€" is a nonsense - // string that contains ASCII and GBK encodable codepoints from Levels - // 1-5 as well as the Euro sign. - // - // "A\u43f0\u4c32\U00027267\u3000\U0002910d\u79d4Z€" is a nonsense string - // that contains ASCII and Big5 encodable codepoints from the Basic - // Multilingual Plane and the Supplementary Ideographic Plane as well as - // the Euro sign. - // - // "花间一壶酒,独酌无相亲。" (simplified) and - // "花間一壺酒,獨酌無相親。" (traditional) - // are from the 8th century poem "Yuè Xià Dú Zhuó". - { - e: simplifiedchinese.GB18030, - encoded: "\x81\x30\x81\x31\x81\x30\x89\x37\x81\x30\x89\x38\xa8\xa4\xa8\xa2" + - "\x81\x30\x89\x39\x81\x30\x8a\x30\x84\x31\xa4\x39\x90\x30\x81\x30", - utf8: "\u0081\u00de\u00df\u00e0\u00e1\u00e2\u00e3\uffff\U00010000", - }, - { - e: simplifiedchinese.GB18030, - encoded: "\xbb\xa8\xbc\xe4\xd2\xbb\xba\xf8\xbe\xc6\xa3\xac\xb6\xc0\xd7\xc3" + - "\xce\xde\xcf\xe0\xc7\xd7\xa1\xa3", - utf8: "花间一壶酒,独酌无相亲。", - }, - { - e: simplifiedchinese.GBK, - encoded: "A\xa1\xa1\xb0\xa1\x81\x40\x81\x80\xaa\x40\xaa\x80\xa8\x40\xa8\x80Z\x80", - utf8: "A\u3000\u554a\u4e02\u4e90\u72dc\u7349\u02ca\u2588Z€", - }, - { - e: simplifiedchinese.GBK, - encoded: "\xbb\xa8\xbc\xe4\xd2\xbb\xba\xf8\xbe\xc6\xa3\xac\xb6\xc0\xd7\xc3" + - "\xce\xde\xcf\xe0\xc7\xd7\xa1\xa3", - utf8: "花间一壶酒,独酌无相亲。", - }, - { - e: simplifiedchinese.HZGB2312, - encoded: "A~{\x21\x21~~\x30\x21~}Z~~", - utf8: "A\u3000~\u554aZ~", - }, - { - e: simplifiedchinese.HZGB2312, - encPrefix: "~{", - encoded: ";(F#,6@WCN^O`GW!#", - utf8: "花间一壶酒,独酌无相亲。", - }, - { - e: traditionalchinese.Big5, - encoded: "A\x87\x40\x87\x41\x87\x45\xa1\x40\xfe\xfd\xfe\xfeZ\xa3\xe1", - utf8: "A\u43f0\u4c32\U00027267\u3000\U0002910d\u79d4Z€", - }, - { - e: traditionalchinese.Big5, - encoded: "\xaa\xe1\xb6\xa1\xa4\x40\xb3\xfd\xb0\x73\xa1\x41\xbf\x57\xb0\x75" + - "\xb5\x4c\xac\xdb\xbf\xcb\xa1\x43", - utf8: "花間一壺酒,獨酌無相親。", - }, - - // Japanese tests. - // - // "A。カ゚ 0208: etc 0212: etc" is a nonsense string that contains ASCII, half-width - // kana, JIS X 0208 (including two near the kink in the Shift JIS second byte - // encoding) and JIS X 0212 encodable codepoints. - // - // "月日は百代の過客にして、行かふ年も又旅人也。" is from the 17th century poem - // "Oku no Hosomichi" and contains both hiragana and kanji. - { - e: japanese.EUCJP, - encoded: "A\x8e\xa1\x8e\xb6\x8e\xdf " + - "0208: \xa1\xa1\xa1\xa2\xa1\xdf\xa1\xe0\xa1\xfd\xa1\xfe\xa2\xa1\xa2\xa2\xf4\xa6 " + - "0212: \x8f\xa2\xaf\x8f\xed\xe3", - utf8: "A。カ゚ " + - "0208: \u3000\u3001\u00d7\u00f7\u25ce\u25c7\u25c6\u25a1\u7199 " + - "0212: \u02d8\u9fa5", - }, - { - e: japanese.EUCJP, - encoded: "\xb7\xee\xc6\xfc\xa4\xcf\xc9\xb4\xc2\xe5\xa4\xce\xb2\xe1\xb5\xd2" + - "\xa4\xcb\xa4\xb7\xa4\xc6\xa1\xa2\xb9\xd4\xa4\xab\xa4\xd5\xc7\xaf" + - "\xa4\xe2\xcb\xf4\xce\xb9\xbf\xcd\xcc\xe9\xa1\xa3", - utf8: "月日は百代の過客にして、行かふ年も又旅人也。", - }, - { - e: japanese.ISO2022JP, - encSuffix: "\x1b\x28\x42", - encoded: "\x1b\x28\x49\x21\x36\x5f\x1b\x28\x42 " + - "0208: \x1b\x24\x42\x21\x21\x21\x22\x21\x5f\x21\x60\x21\x7d\x21\x7e\x22\x21\x22\x22\x74\x26", - utf8: "。カ゚ " + - "0208: \u3000\u3001\u00d7\u00f7\u25ce\u25c7\u25c6\u25a1\u7199", - }, - { - e: japanese.ISO2022JP, - encPrefix: "\x1b\x24\x42", - encSuffix: "\x1b\x28\x42", - encoded: "\x37\x6e\x46\x7c\x24\x4f\x49\x34\x42\x65\x24\x4e\x32\x61\x35\x52" + - "\x24\x4b\x24\x37\x24\x46\x21\x22\x39\x54\x24\x2b\x24\x55\x47\x2f" + - "\x24\x62\x4b\x74\x4e\x39\x3f\x4d\x4c\x69\x21\x23", - utf8: "月日は百代の過客にして、行かふ年も又旅人也。", - }, - { - e: japanese.ShiftJIS, - encoded: "A\xa1\xb6\xdf " + - "0208: \x81\x40\x81\x41\x81\x7e\x81\x80\x81\x9d\x81\x9e\x81\x9f\x81\xa0\xea\xa4", - utf8: "A。カ゚ " + - "0208: \u3000\u3001\u00d7\u00f7\u25ce\u25c7\u25c6\u25a1\u7199", - }, - { - e: japanese.ShiftJIS, - encoded: "\x8c\x8e\x93\xfa\x82\xcd\x95\x53\x91\xe3\x82\xcc\x89\xdf\x8b\x71" + - "\x82\xc9\x82\xb5\x82\xc4\x81\x41\x8d\x73\x82\xa9\x82\xd3\x94\x4e" + - "\x82\xe0\x96\x94\x97\xb7\x90\x6c\x96\xe7\x81\x42", - utf8: "月日は百代の過客にして、行かふ年も又旅人也。", - }, - - // Korean tests. - // - // "A\uac02\uac35\uac56\ud401B\ud408\ud620\ud624C\u4f3d\u8a70D" is a - // nonsense string that contains ASCII, Hangul and CJK ideographs. - // - // "세계야, 안녕" translates as "Hello, world". - { - e: korean.EUCKR, - encoded: "A\x81\x41\x81\x61\x81\x81\xc6\xfeB\xc7\xa1\xc7\xfe\xc8\xa1C\xca\xa1\xfd\xfeD", - utf8: "A\uac02\uac35\uac56\ud401B\ud408\ud620\ud624C\u4f3d\u8a70D", - }, - { - e: korean.EUCKR, - encoded: "\xbc\xbc\xb0\xe8\xbe\xdf\x2c\x20\xbe\xc8\xb3\xe7", - utf8: "세계야, 안녕", - }, -} - -func TestBasics(t *testing.T) { - for _, tc := range basicTestCases { - for _, direction := range []string{"Decode", "Encode"} { - var coder Transcoder - var want, src, wPrefix, sPrefix, wSuffix, sSuffix string - if direction == "Decode" { - coder, want, src = tc.e.NewDecoder(), tc.utf8, tc.encoded - wPrefix, sPrefix, wSuffix, sSuffix = "", tc.encPrefix, "", tc.encSuffix - } else { - coder, want, src = tc.e.NewEncoder(), tc.encoded, tc.utf8 - wPrefix, sPrefix, wSuffix, sSuffix = tc.encPrefix, "", tc.encSuffix, "" - } - - dst := make([]byte, len(wPrefix)+len(want)+len(wSuffix)) - nDst, nSrc, err := coder.Transform(dst, []byte(sPrefix+src+sSuffix), true) - if err != nil { - t.Errorf("%v: %s: %v", tc.e, direction, err) - continue - } - if nDst != len(wPrefix)+len(want)+len(wSuffix) { - t.Errorf("%v: %s: nDst got %d, want %d", - tc.e, direction, nDst, len(wPrefix)+len(want)+len(wSuffix)) - continue - } - if nSrc != len(sPrefix)+len(src)+len(sSuffix) { - t.Errorf("%v: %s: nSrc got %d, want %d", - tc.e, direction, nSrc, len(sPrefix)+len(src)+len(sSuffix)) - continue - } - if got := string(dst); got != wPrefix+want+wSuffix { - t.Errorf("%v: %s:\ngot %q\nwant %q", - tc.e, direction, got, wPrefix+want+wSuffix) - continue - } - - for _, n := range []int{0, 1, 2, 10, 123, 4567} { - input := sPrefix + strings.Repeat(src, n) + sSuffix - g, err := coder.String(input) - if err != nil { - t.Errorf("%v: %s: Bytes: n=%d: %v", tc.e, direction, n, err) - continue - } - if len(g) == 0 && len(input) == 0 { - // If the input is empty then the output can be empty, - // regardless of whatever wPrefix is. - continue - } - got1, want1 := string(g), wPrefix+strings.Repeat(want, n)+wSuffix - if got1 != want1 { - t.Errorf("%v: %s: ReadAll: n=%d\ngot %q\nwant %q", - tc.e, direction, n, trim(got1), trim(want1)) - continue - } - } - } - } -} - -// TestBig5CircumflexAndMacron tests the special cases listed in -// http://encoding.spec.whatwg.org/#big5 -// Note that these special cases aren't preserved by round-tripping through -// decoding and encoding (since -// http://encoding.spec.whatwg.org/index-big5.txt does not have an entry for -// U+0304 or U+030C), so we can't test this in TestBasics. -func TestBig5CircumflexAndMacron(t *testing.T) { - src := "\x88\x5f\x88\x60\x88\x61\x88\x62\x88\x63\x88\x64\x88\x65\x88\x66 " + - "\x88\xa2\x88\xa3\x88\xa4\x88\xa5\x88\xa6" - want := "ÓǑÒ\u00ca\u0304Ế\u00ca\u030cỀÊ " + - "ü\u00ea\u0304ế\u00ea\u030cề" - dst, err := ioutil.ReadAll(transform.NewReader( - strings.NewReader(src), traditionalchinese.Big5.NewDecoder())) - if err != nil { - t.Fatal(err) - } - if got := string(dst); got != want { - t.Fatalf("\ngot %q\nwant %q", got, want) - } -} - -func TestEncodeInvalidUTF8(t *testing.T) { - inputs := []string{ - "hello.", - "wo\ufffdld.", - "ABC\xff\x80\x80", // Invalid UTF-8. - "\x80\x80\x80\x80\x80", - "\x80\x80D\x80\x80", // Valid rune at "D". - "E\xed\xa0\x80\xed\xbf\xbfF", // Two invalid UTF-8 runes (surrogates). - "G", - "H\xe2\x82", // U+20AC in UTF-8 is "\xe2\x82\xac", which we split over two - "\xacI\xe2\x82", // input lines. It maps to 0x80 in the Windows-1252 encoding. - } - // Each invalid source byte becomes '\x1a'. - want := strings.Replace("hello.wo?ld.ABC??????????D??E??????FGH\x80I??", "?", "\x1a", -1) - - transformer := encoding.ReplaceUnsupported(charmap.Windows1252.NewEncoder()) - gotBuf := make([]byte, 0, 1024) - src := make([]byte, 0, 1024) - for i, input := range inputs { - dst := make([]byte, 1024) - src = append(src, input...) - atEOF := i == len(inputs)-1 - nDst, nSrc, err := transformer.Transform(dst, src, atEOF) - gotBuf = append(gotBuf, dst[:nDst]...) - src = src[nSrc:] - if err != nil && err != transform.ErrShortSrc { - t.Fatalf("i=%d: %v", i, err) - } - if atEOF && err != nil { - t.Fatalf("i=%d: atEOF: %v", i, err) - } - } - if got := string(gotBuf); got != want { - t.Fatalf("\ngot %+q\nwant %+q", got, want) - } -} - -func TestReplacement(t *testing.T) { - for _, direction := range []string{"Decode", "Encode"} { - enc, want := (transform.Transformer)(nil), "" - if direction == "Decode" { - enc = encoding.Replacement.NewDecoder() - want = "\ufffd" - } else { - enc = encoding.Replacement.NewEncoder() - want = "AB\x00CD\ufffdYZ" - } - sr := strings.NewReader("AB\x00CD\x80YZ") - g, err := ioutil.ReadAll(transform.NewReader(sr, enc)) - if err != nil { - t.Errorf("%s: ReadAll: %v", direction, err) - continue - } - if got := string(g); got != want { - t.Errorf("%s:\ngot %q\nwant %q", direction, got, want) - continue - } - } -} - -func TestUTF8Validator(t *testing.T) { - testCases := []struct { - desc string - dstSize int - src string - atEOF bool - want string - wantErr error - }{ - { - "empty input", - 100, - "", - false, - "", - nil, - }, - { - "valid 1-byte 1-rune input", - 100, - "a", - false, - "a", - nil, - }, - { - "valid 3-byte 1-rune input", - 100, - "\u1234", - false, - "\u1234", - nil, - }, - { - "valid 5-byte 3-rune input", - 100, - "a\u0100\u0101", - false, - "a\u0100\u0101", - nil, - }, - { - "perfectly sized dst (non-ASCII)", - 5, - "a\u0100\u0101", - false, - "a\u0100\u0101", - nil, - }, - { - "short dst (non-ASCII)", - 4, - "a\u0100\u0101", - false, - "a\u0100", - transform.ErrShortDst, - }, - { - "perfectly sized dst (ASCII)", - 5, - "abcde", - false, - "abcde", - nil, - }, - { - "short dst (ASCII)", - 4, - "abcde", - false, - "abcd", - transform.ErrShortDst, - }, - { - "partial input (!EOF)", - 100, - "a\u0100\xf1", - false, - "a\u0100", - transform.ErrShortSrc, - }, - { - "invalid input (EOF)", - 100, - "a\u0100\xf1", - true, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - { - "invalid input (!EOF)", - 100, - "a\u0100\x80", - false, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - { - "invalid input (above U+10FFFF)", - 100, - "a\u0100\xf7\xbf\xbf\xbf", - false, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - { - "invalid input (surrogate half)", - 100, - "a\u0100\xed\xa0\x80", - false, - "a\u0100", - encoding.ErrInvalidUTF8, - }, - } - for _, tc := range testCases { - dst := make([]byte, tc.dstSize) - nDst, nSrc, err := encoding.UTF8Validator.Transform(dst, []byte(tc.src), tc.atEOF) - if nDst < 0 || len(dst) < nDst { - t.Errorf("%s: nDst=%d out of range", tc.desc, nDst) - continue - } - got := string(dst[:nDst]) - if got != tc.want || nSrc != len(tc.want) || err != tc.wantErr { - t.Errorf("%s:\ngot %+q, %d, %v\nwant %+q, %d, %v", - tc.desc, got, nSrc, err, tc.want, len(tc.want), tc.wantErr) - continue - } - } -} - -var ( - utf16LEIB = unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM) // UTF-16LE (atypical interpretation) - utf16LEUB = unicode.UTF16(unicode.LittleEndian, unicode.UseBOM) // UTF-16, LE - utf16LEEB = unicode.UTF16(unicode.LittleEndian, unicode.ExpectBOM) // UTF-16, LE, Expect - utf16BEIB = unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM) // UTF-16BE (atypical interpretation) - utf16BEUB = unicode.UTF16(unicode.BigEndian, unicode.UseBOM) // UTF-16 default - utf16BEEB = unicode.UTF16(unicode.BigEndian, unicode.ExpectBOM) // UTF-16 Expect -) - -func TestUTF16(t *testing.T) { - testCases := []struct { - desc string - src string - notEOF bool // the inverse of atEOF - sizeDst int - want string - nSrc int - err error - t transform.Transformer - }{{ - desc: "utf-16 IgnoreBOM dec: empty string", - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16 UseBOM dec: empty string", - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16 ExpectBOM dec: empty string", - err: unicode.ErrMissingBOM, - t: utf16BEEB.NewDecoder(), - }, { - desc: "utf-16 dec: BOM determines encoding BE (RFC 2781:3.3)", - src: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 12, - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16 dec: BOM determines encoding LE (RFC 2781:3.3)", - src: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 12, - t: utf16LEUB.NewDecoder(), - }, { - desc: "utf-16 dec: BOM determines encoding LE, change default (RFC 2781:3.3)", - src: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 12, - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16 dec: Fail on missing BOM when required", - src: "\x08\xD8\x45\xDF\x3D\x00\xFF\xFE\xFE\xFF\x00\x52\x00\x61", - sizeDst: 100, - want: "", - nSrc: 0, - err: unicode.ErrMissingBOM, - t: utf16BEEB.NewDecoder(), - }, { - desc: "utf-16 dec: SHOULD interpret text as big-endian when BOM not present (RFC 2781:4.3)", - src: "\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 10, - t: utf16BEUB.NewDecoder(), - }, { - // This is an error according to RFC 2781. But errors in RFC 2781 are - // open to interpretations, so I guess this is fine. - desc: "utf-16le dec: incorrect BOM is an error (RFC 2781:4.1)", - src: "\xFE\xFF\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - sizeDst: 100, - want: "\uFFFE\U00012345=Ra", - nSrc: 12, - t: utf16LEIB.NewDecoder(), - }, { - desc: "utf-16 enc: SHOULD write BOM (RFC 2781:3.3)", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - nSrc: 7, - t: utf16LEUB.NewEncoder(), - }, { - desc: "utf-16 enc: SHOULD write BOM (RFC 2781:3.3)", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - nSrc: 7, - t: utf16BEUB.NewEncoder(), - }, { - desc: "utf-16le enc: MUST NOT write BOM (RFC 2781:3.3)", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\x08\xD8\x45\xDF\x3D\x00\x52\x00\x61\x00", - nSrc: 7, - t: utf16LEIB.NewEncoder(), - }, { - desc: "utf-16be dec: incorrect UTF-16: odd bytes", - src: "\x00", - sizeDst: 100, - want: "\uFFFD", - nSrc: 1, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: unpaired surrogate, odd bytes", - src: "\xD8\x45\x00", - sizeDst: 100, - want: "\uFFFD\uFFFD", - nSrc: 3, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: unpaired low surrogate + valid text", - src: "\xD8\x45\x00a", - sizeDst: 100, - want: "\uFFFDa", - nSrc: 4, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: unpaired low surrogate + valid text + single byte", - src: "\xD8\x45\x00ab", - sizeDst: 100, - want: "\uFFFDa\uFFFD", - nSrc: 5, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16le dec: unpaired high surrogate", - src: "\x00\x00\x00\xDC\x12\xD8", - sizeDst: 100, - want: "\x00\uFFFD\uFFFD", - nSrc: 6, - t: utf16LEIB.NewDecoder(), - }, { - desc: "utf-16be dec: two unpaired low surrogates", - src: "\xD8\x45\xD8\x12", - sizeDst: 100, - want: "\uFFFD\uFFFD", - nSrc: 4, - t: utf16BEIB.NewDecoder(), - }, { - desc: "utf-16be dec: short dst", - src: "\x00a", - sizeDst: 0, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16be dec: short dst surrogate", - src: "\xD8\xF5\xDC\x12", - sizeDst: 3, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16be dec: short dst trailing byte", - src: "\x00", - sizeDst: 2, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16be dec: short src", - src: "\x00", - notEOF: true, - sizeDst: 3, - want: "", - nSrc: 0, - t: utf16BEIB.NewDecoder(), - err: transform.ErrShortSrc, - }, { - desc: "utf-16 enc", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - nSrc: 7, - t: utf16BEUB.NewEncoder(), - }, { - desc: "utf-16 enc: short dst normal", - src: "\U00012345=Ra", - sizeDst: 9, - want: "\xD8\x08\xDF\x45\x00\x3D\x00\x52", - nSrc: 6, - t: utf16BEIB.NewEncoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16 enc: short dst surrogate", - src: "\U00012345=Ra", - sizeDst: 3, - want: "", - nSrc: 0, - t: utf16BEIB.NewEncoder(), - err: transform.ErrShortDst, - }, { - desc: "utf-16 enc: short src", - src: "\U00012345=Ra\xC2", - notEOF: true, - sizeDst: 100, - want: "\xD8\x08\xDF\x45\x00\x3D\x00\x52\x00\x61", - nSrc: 7, - t: utf16BEIB.NewEncoder(), - err: transform.ErrShortSrc, - }, { - desc: "utf-16be dec: don't change byte order mid-stream", - src: "\xFE\xFF\xD8\x08\xDF\x45\x00\x3D\xFF\xFE\x00\x52\x00\x61", - sizeDst: 100, - want: "\U00012345=\ufffeRa", - nSrc: 14, - t: utf16BEUB.NewDecoder(), - }, { - desc: "utf-16le dec: don't change byte order mid-stream", - src: "\xFF\xFE\x08\xD8\x45\xDF\x3D\x00\xFF\xFE\xFE\xFF\x52\x00\x61\x00", - sizeDst: 100, - want: "\U00012345=\ufeff\ufffeRa", - nSrc: 16, - t: utf16LEUB.NewDecoder(), - }} - for i, tc := range testCases { - b := make([]byte, tc.sizeDst) - nDst, nSrc, err := tc.t.Transform(b, []byte(tc.src), !tc.notEOF) - if err != tc.err { - t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) - } - if got := string(b[:nDst]); got != tc.want { - t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) - } - if nSrc != tc.nSrc { - t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) - } - } -} - -func TestErrorHandler(t *testing.T) { - testCases := []struct { - desc string - handler func(*encoding.Encoder) *encoding.Encoder - sizeDst int - src, want string - nSrc int - err error - }{ - { - desc: "one rune replacement", - handler: encoding.ReplaceUnsupported, - sizeDst: 100, - src: "\uAC00", - want: "\x1a", - nSrc: 3, - }, - { - desc: "mid-stream rune replacement", - handler: encoding.ReplaceUnsupported, - sizeDst: 100, - src: "a\uAC00bcd\u00e9", - want: "a\x1abcd\xe9", - nSrc: 9, - }, - { - desc: "at end rune replacement", - handler: encoding.ReplaceUnsupported, - sizeDst: 10, - src: "\u00e9\uAC00", - want: "\xe9\x1a", - nSrc: 5, - }, - { - desc: "short buffer replacement", - handler: encoding.ReplaceUnsupported, - sizeDst: 1, - src: "\u00e9\uAC00", - want: "\xe9", - nSrc: 2, - err: transform.ErrShortDst, - }, - { - desc: "one rune html escape", - handler: encoding.HTMLEscapeUnsupported, - sizeDst: 100, - src: "\uAC00", - want: "가", - nSrc: 3, - }, - { - desc: "mid-stream html escape", - handler: encoding.HTMLEscapeUnsupported, - sizeDst: 100, - src: "\u00e9\uAC00dcba", - want: "\xe9가dcba", - nSrc: 9, - }, - { - desc: "short buffer html escape", - handler: encoding.HTMLEscapeUnsupported, - sizeDst: 9, - src: "ab\uAC01", - want: "ab", - nSrc: 2, - err: transform.ErrShortDst, - }, - } - for i, tc := range testCases { - tr := tc.handler(charmap.Windows1250.NewEncoder()) - b := make([]byte, tc.sizeDst) - nDst, nSrc, err := tr.Transform(b, []byte(tc.src), true) - if err != tc.err { - t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) - } - if got := string(b[:nDst]); got != tc.want { - t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) - } - if nSrc != tc.nSrc { - t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) - } - - } -} -func TestBOMOverride(t *testing.T) { - dec := unicode.BOMOverride(charmap.CodePage437.NewDecoder()) - dst := make([]byte, 100) - for i, tc := range []struct { - src string - atEOF bool - dst string - nSrc int - err error - }{ - 0: {"H\x82ll\x93", true, "Héllô", 5, nil}, - 1: {"\uFEFFHéllö", true, "Héllö", 10, nil}, - 2: {"\xFE\xFF\x00H\x00e\x00l\x00l\x00o", true, "Hello", 12, nil}, - 3: {"\xFF\xFEH\x00e\x00l\x00l\x00o\x00", true, "Hello", 12, nil}, - 4: {"\uFEFF", true, "", 3, nil}, - 5: {"\xFE\xFF", true, "", 2, nil}, - 6: {"\xFF\xFE", true, "", 2, nil}, - 7: {"\xEF\xBB", true, "\u2229\u2557", 2, nil}, - 8: {"\xEF", true, "\u2229", 1, nil}, - 9: {"", true, "", 0, nil}, - 10: {"\xFE", true, "\u25a0", 1, nil}, - 11: {"\xFF", true, "\u00a0", 1, nil}, - 12: {"\xEF\xBB", false, "", 0, transform.ErrShortSrc}, - 13: {"\xEF", false, "", 0, transform.ErrShortSrc}, - 14: {"", false, "", 0, transform.ErrShortSrc}, - 15: {"\xFE", false, "", 0, transform.ErrShortSrc}, - 16: {"\xFF", false, "", 0, transform.ErrShortSrc}, - 17: {"\xFF\xFE", false, "", 0, transform.ErrShortSrc}, - } { - dec.Reset() - nDst, nSrc, err := dec.Transform(dst, []byte(tc.src), tc.atEOF) - got := string(dst[:nDst]) - if nSrc != tc.nSrc { - t.Errorf("%d: nSrc: got %d; want %d", i, nSrc, tc.nSrc) - } - if got != tc.dst { - t.Errorf("%d: got %+q; want %+q", i, got, tc.dst) - } - if err != tc.err { - t.Errorf("%d: error: got %v; want %v", i, err, tc.err) - } - } -} - -// testdataFiles are files in testdata/*.txt. -var testdataFiles = []struct { - enc encoding.Encoding - basename, ext string -}{ - {charmap.Windows1252, "candide", "windows-1252"}, - {japanese.EUCJP, "rashomon", "euc-jp"}, - {japanese.ISO2022JP, "rashomon", "iso-2022-jp"}, - {japanese.ShiftJIS, "rashomon", "shift-jis"}, - {korean.EUCKR, "unsu-joh-eun-nal", "euc-kr"}, - {simplifiedchinese.GBK, "sunzi-bingfa-simplified", "gbk"}, - {simplifiedchinese.HZGB2312, "sunzi-bingfa-gb-levels-1-and-2", "hz-gb2312"}, - {traditionalchinese.Big5, "sunzi-bingfa-traditional", "big5"}, - {utf16LEIB, "candide", "utf-16le"}, - {unicode.UTF8, "candide", "utf-8"}, - {utf32BEIB, "candide", "utf-32be"}, - - // GB18030 is a superset of GBK and is nominally a Simplified Chinese - // encoding, but it can also represent the entire Basic Multilingual - // Plane, including codepoints like 'â' that aren't encodable by GBK. - // GB18030 on Simplified Chinese should perform similarly to GBK on - // Simplified Chinese. GB18030 on "candide" is more interesting. - {simplifiedchinese.GB18030, "candide", "gb18030"}, -} - -// Encoder or Decoder -type Transcoder interface { - transform.Transformer - Bytes([]byte) ([]byte, error) - String(string) (string, error) -} - -func load(direction string, enc encoding.Encoding) ([]byte, []byte, Transcoder, error) { - basename, ext, count := "", "", 0 - for _, tf := range testdataFiles { - if tf.enc == enc { - basename, ext = tf.basename, tf.ext - count++ - } - } - if count != 1 { - if count == 0 { - return nil, nil, nil, fmt.Errorf("no testdataFiles for %s", enc) - } - return nil, nil, nil, fmt.Errorf("too many testdataFiles for %s", enc) - } - dstFile := fmt.Sprintf("testdata/%s-%s.txt", basename, ext) - srcFile := fmt.Sprintf("testdata/%s-utf-8.txt", basename) - var coder Transcoder = encoding.ReplaceUnsupported(enc.NewEncoder()) - if direction == "Decode" { - dstFile, srcFile = srcFile, dstFile - coder = enc.NewDecoder() - } - dst, err := ioutil.ReadFile(dstFile) - if err != nil { - return nil, nil, nil, err - } - src, err := ioutil.ReadFile(srcFile) - if err != nil { - return nil, nil, nil, err - } - return dst, src, coder, nil -} - -func TestFiles(t *testing.T) { - for _, dir := range []string{"Decode", "Encode"} { - for _, tf := range testdataFiles { - dst, src, transformer, err := load(dir, tf.enc) - if err != nil { - t.Errorf("%s, %s: load: %v", dir, tf.enc, err) - continue - } - buf, err := transformer.Bytes(src) - if err != nil { - t.Errorf("%s, %s: transform: %v", dir, tf.enc, err) - continue - } - if !bytes.Equal(buf, dst) { - t.Errorf("%s, %s: transformed bytes did not match golden file", dir, tf.enc) - continue - } - } - } -} - -func benchmark(b *testing.B, direction string, enc encoding.Encoding) { - _, src, transformer, err := load(direction, enc) - if err != nil { - b.Fatal(err) - } - b.SetBytes(int64(len(src))) - b.ResetTimer() - for i := 0; i < b.N; i++ { - r := transform.NewReader(bytes.NewReader(src), transformer) - io.Copy(ioutil.Discard, r) - } -} - -func BenchmarkBig5Decoder(b *testing.B) { benchmark(b, "Decode", traditionalchinese.Big5) } -func BenchmarkBig5Encoder(b *testing.B) { benchmark(b, "Encode", traditionalchinese.Big5) } -func BenchmarkCharmapDecoder(b *testing.B) { benchmark(b, "Decode", charmap.Windows1252) } -func BenchmarkCharmapEncoder(b *testing.B) { benchmark(b, "Encode", charmap.Windows1252) } -func BenchmarkEUCJPDecoder(b *testing.B) { benchmark(b, "Decode", japanese.EUCJP) } -func BenchmarkEUCJPEncoder(b *testing.B) { benchmark(b, "Encode", japanese.EUCJP) } -func BenchmarkEUCKRDecoder(b *testing.B) { benchmark(b, "Decode", korean.EUCKR) } -func BenchmarkEUCKREncoder(b *testing.B) { benchmark(b, "Encode", korean.EUCKR) } -func BenchmarkGB18030Decoder(b *testing.B) { benchmark(b, "Decode", simplifiedchinese.GB18030) } -func BenchmarkGB18030Encoder(b *testing.B) { benchmark(b, "Encode", simplifiedchinese.GB18030) } -func BenchmarkGBKDecoder(b *testing.B) { benchmark(b, "Decode", simplifiedchinese.GBK) } -func BenchmarkGBKEncoder(b *testing.B) { benchmark(b, "Encode", simplifiedchinese.GBK) } -func BenchmarkHZGB2312Decoder(b *testing.B) { benchmark(b, "Decode", simplifiedchinese.HZGB2312) } -func BenchmarkHZGB2312Encoder(b *testing.B) { benchmark(b, "Encode", simplifiedchinese.HZGB2312) } -func BenchmarkISO2022JPDecoder(b *testing.B) { benchmark(b, "Decode", japanese.ISO2022JP) } -func BenchmarkISO2022JPEncoder(b *testing.B) { benchmark(b, "Encode", japanese.ISO2022JP) } -func BenchmarkShiftJISDecoder(b *testing.B) { benchmark(b, "Decode", japanese.ShiftJIS) } -func BenchmarkShiftJISEncoder(b *testing.B) { benchmark(b, "Encode", japanese.ShiftJIS) } -func BenchmarkUTF8Decoder(b *testing.B) { benchmark(b, "Decode", unicode.UTF8) } -func BenchmarkUTF8Encoder(b *testing.B) { benchmark(b, "Encode", unicode.UTF8) } -func BenchmarkUTF16Decoder(b *testing.B) { benchmark(b, "Decode", utf16LEIB) } -func BenchmarkUTF16Encoder(b *testing.B) { benchmark(b, "Encode", utf16LEIB) } -func BenchmarkUTF32Decoder(b *testing.B) { benchmark(b, "Decode", utf32BEIB) } -func BenchmarkUTF32Encoder(b *testing.B) { benchmark(b, "Encode", utf32BEIB) } - -var utf32BEIB = utf32.UTF32(utf32.BigEndian, utf32.IgnoreBOM) diff --git a/vendor/golang.org/x/text/encoding/example_test.go b/vendor/golang.org/x/text/encoding/example_test.go deleted file mode 100644 index 4f92353..0000000 --- a/vendor/golang.org/x/text/encoding/example_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package encoding_test - -import ( - "fmt" - "io" - "os" - "strings" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/unicode" - "golang.org/x/text/transform" -) - -func ExampleDecodeWindows1252() { - sr := strings.NewReader("Gar\xe7on !") - tr := charmap.Windows1252.NewDecoder().Reader(sr) - io.Copy(os.Stdout, tr) - // Output: Garçon ! -} - -func ExampleUTF8Validator() { - for i := 0; i < 2; i++ { - var transformer transform.Transformer - transformer = unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM).NewEncoder() - if i == 1 { - transformer = transform.Chain(encoding.UTF8Validator, transformer) - } - dst := make([]byte, 256) - src := []byte("abc\xffxyz") // src is invalid UTF-8. - nDst, nSrc, err := transformer.Transform(dst, src, true) - fmt.Printf("i=%d: produced %q, consumed %q, error %v\n", - i, dst[:nDst], src[:nSrc], err) - } - // Output: - // i=0: produced "\x00a\x00b\x00c\xff\xfd\x00x\x00y\x00z", consumed "abc\xffxyz", error - // i=1: produced "\x00a\x00b\x00c", consumed "abc", error encoding: invalid UTF-8 -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/gen.go b/vendor/golang.org/x/text/encoding/htmlindex/gen.go deleted file mode 100644 index d10e5e0..0000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/gen.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "encoding/json" - "fmt" - "log" - "strings" - - "golang.org/x/text/internal/gen" -) - -type group struct { - Encodings []struct { - Labels []string - Name string - } -} - -func main() { - gen.Init() - - r := gen.Open("http://www.w3.org/TR", "w3", "encoding/indexes/encodings.json") - var groups []group - if err := json.NewDecoder(r).Decode(&groups); err != nil { - log.Fatalf("Error reading encodings.json: %v", err) - } - - w := &bytes.Buffer{} - fmt.Fprintln(w, "type htmlEncoding byte") - fmt.Fprintln(w, "const (") - for i, g := range groups { - for _, e := range g.Encodings { - name := consts[e.Name] - if name == "" { - log.Fatalf("No const defined for %s.", e.Name) - } - if i == 0 { - fmt.Fprintf(w, "%s htmlEncoding = iota\n", name) - } else { - fmt.Fprintf(w, "%s\n", name) - } - } - } - fmt.Fprintln(w, "numEncodings") - fmt.Fprint(w, ")\n\n") - - fmt.Fprintln(w, "var canonical = [numEncodings]string{") - for _, g := range groups { - for _, e := range g.Encodings { - fmt.Fprintf(w, "%q,\n", e.Name) - } - } - fmt.Fprint(w, "}\n\n") - - fmt.Fprintln(w, "var nameMap = map[string]htmlEncoding{") - for _, g := range groups { - for _, e := range g.Encodings { - for _, l := range e.Labels { - fmt.Fprintf(w, "%q: %s,\n", l, consts[e.Name]) - } - } - } - fmt.Fprint(w, "}\n\n") - - var tags []string - fmt.Fprintln(w, "var localeMap = []htmlEncoding{") - for _, loc := range locales { - tags = append(tags, loc.tag) - fmt.Fprintf(w, "%s, // %s \n", consts[loc.name], loc.tag) - } - fmt.Fprint(w, "}\n\n") - - fmt.Fprintf(w, "const locales = %q\n", strings.Join(tags, " ")) - - gen.WriteGoFile("tables.go", "htmlindex", w.Bytes()) -} - -// consts maps canonical encoding name to internal constant. -var consts = map[string]string{ - "utf-8": "utf8", - "ibm866": "ibm866", - "iso-8859-2": "iso8859_2", - "iso-8859-3": "iso8859_3", - "iso-8859-4": "iso8859_4", - "iso-8859-5": "iso8859_5", - "iso-8859-6": "iso8859_6", - "iso-8859-7": "iso8859_7", - "iso-8859-8": "iso8859_8", - "iso-8859-8-i": "iso8859_8I", - "iso-8859-10": "iso8859_10", - "iso-8859-13": "iso8859_13", - "iso-8859-14": "iso8859_14", - "iso-8859-15": "iso8859_15", - "iso-8859-16": "iso8859_16", - "koi8-r": "koi8r", - "koi8-u": "koi8u", - "macintosh": "macintosh", - "windows-874": "windows874", - "windows-1250": "windows1250", - "windows-1251": "windows1251", - "windows-1252": "windows1252", - "windows-1253": "windows1253", - "windows-1254": "windows1254", - "windows-1255": "windows1255", - "windows-1256": "windows1256", - "windows-1257": "windows1257", - "windows-1258": "windows1258", - "x-mac-cyrillic": "macintoshCyrillic", - "gbk": "gbk", - "gb18030": "gb18030", - // "hz-gb-2312": "hzgb2312", // Was removed from WhatWG - "big5": "big5", - "euc-jp": "eucjp", - "iso-2022-jp": "iso2022jp", - "shift_jis": "shiftJIS", - "euc-kr": "euckr", - "replacement": "replacement", - "utf-16be": "utf16be", - "utf-16le": "utf16le", - "x-user-defined": "xUserDefined", -} - -// locales is taken from -// https://html.spec.whatwg.org/multipage/syntax.html#encoding-sniffing-algorithm. -var locales = []struct{ tag, name string }{ - {"und", "windows-1252"}, // The default value. - {"ar", "windows-1256"}, - {"ba", "windows-1251"}, - {"be", "windows-1251"}, - {"bg", "windows-1251"}, - {"cs", "windows-1250"}, - {"el", "iso-8859-7"}, - {"et", "windows-1257"}, - {"fa", "windows-1256"}, - {"he", "windows-1255"}, - {"hr", "windows-1250"}, - {"hu", "iso-8859-2"}, - {"ja", "shift_jis"}, - {"kk", "windows-1251"}, - {"ko", "euc-kr"}, - {"ku", "windows-1254"}, - {"ky", "windows-1251"}, - {"lt", "windows-1257"}, - {"lv", "windows-1257"}, - {"mk", "windows-1251"}, - {"pl", "iso-8859-2"}, - {"ru", "windows-1251"}, - {"sah", "windows-1251"}, - {"sk", "windows-1250"}, - {"sl", "iso-8859-2"}, - {"sr", "windows-1251"}, - {"tg", "windows-1251"}, - {"th", "windows-874"}, - {"tr", "windows-1254"}, - {"tt", "windows-1251"}, - {"uk", "windows-1251"}, - {"vi", "windows-1258"}, - {"zh-hans", "gb18030"}, - {"zh-hant", "big5"}, -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go b/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go deleted file mode 100644 index 70f2ac4..0000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package htmlindex maps character set encoding names to Encodings as -// recommended by the W3C for use in HTML 5. See http://www.w3.org/TR/encoding. -package htmlindex - -// TODO: perhaps have a "bare" version of the index (used by this package) that -// is not pre-loaded with all encodings. Global variables in encodings prevent -// the linker from being able to purge unneeded tables. This means that -// referencing all encodings, as this package does for the default index, links -// in all encodings unconditionally. -// -// This issue can be solved by either solving the linking issue (see -// https://github.com/golang/go/issues/6330) or refactoring the encoding tables -// (e.g. moving the tables to internal packages that do not use global -// variables). - -// TODO: allow canonicalizing names - -import ( - "errors" - "strings" - "sync" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/language" -) - -var ( - errInvalidName = errors.New("htmlindex: invalid encoding name") - errUnknown = errors.New("htmlindex: unknown Encoding") - errUnsupported = errors.New("htmlindex: this encoding is not supported") -) - -var ( - matcherOnce sync.Once - matcher language.Matcher -) - -// LanguageDefault returns the canonical name of the default encoding for a -// given language. -func LanguageDefault(tag language.Tag) string { - matcherOnce.Do(func() { - tags := []language.Tag{} - for _, t := range strings.Split(locales, " ") { - tags = append(tags, language.MustParse(t)) - } - matcher = language.NewMatcher(tags) - }) - _, i, _ := matcher.Match(tag) - return canonical[localeMap[i]] // Default is Windows-1252. -} - -// Get returns an Encoding for one of the names listed in -// http://www.w3.org/TR/encoding using the Default Index. Matching is case- -// insensitive. -func Get(name string) (encoding.Encoding, error) { - x, ok := nameMap[strings.ToLower(strings.TrimSpace(name))] - if !ok { - return nil, errInvalidName - } - return encodings[x], nil -} - -// Name reports the canonical name of the given Encoding. It will return -// an error if e is not associated with a supported encoding scheme. -func Name(e encoding.Encoding) (string, error) { - id, ok := e.(identifier.Interface) - if !ok { - return "", errUnknown - } - mib, _ := id.ID() - if mib == 0 { - return "", errUnknown - } - v, ok := mibMap[mib] - if !ok { - return "", errUnsupported - } - return canonical[v], nil -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex_test.go b/vendor/golang.org/x/text/encoding/htmlindex/htmlindex_test.go deleted file mode 100644 index 3fdab0f..0000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex_test.go +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package htmlindex - -import ( - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/encoding/unicode" - "golang.org/x/text/language" -) - -func TestGet(t *testing.T) { - for i, tc := range []struct { - name string - canonical string - err error - }{ - {"utf-8", "utf-8", nil}, - {" utf-8 ", "utf-8", nil}, - {" l5 ", "windows-1254", nil}, - {"latin5 ", "windows-1254", nil}, - {"latin 5", "", errInvalidName}, - {"latin-5", "", errInvalidName}, - } { - enc, err := Get(tc.name) - if err != tc.err { - t.Errorf("%d: error was %v; want %v", i, err, tc.err) - } - if err != nil { - continue - } - if got, err := Name(enc); got != tc.canonical { - t.Errorf("%d: Name(Get(%q)) = %q; want %q (%v)", i, tc.name, got, tc.canonical, err) - } - } -} - -func TestTables(t *testing.T) { - for name, index := range nameMap { - got, err := Get(name) - if err != nil { - t.Errorf("%s:err: expected non-nil error", name) - } - if want := encodings[index]; got != want { - t.Errorf("%s:encoding: got %v; want %v", name, got, want) - } - mib, _ := got.(identifier.Interface).ID() - if mibMap[mib] != index { - t.Errorf("%s:mibMab: got %d; want %d", name, mibMap[mib], index) - } - } -} - -func TestName(t *testing.T) { - for i, tc := range []struct { - desc string - enc encoding.Encoding - name string - err error - }{{ - "defined encoding", - charmap.ISO8859_2, - "iso-8859-2", - nil, - }, { - "defined Unicode encoding", - unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - "utf-16be", - nil, - }, { - "undefined Unicode encoding in HTML standard", - unicode.UTF16(unicode.BigEndian, unicode.UseBOM), - "", - errUnsupported, - }, { - "undefined other encoding in HTML standard", - charmap.CodePage437, - "", - errUnsupported, - }, { - "unknown encoding", - encoding.Nop, - "", - errUnknown, - }} { - name, err := Name(tc.enc) - if name != tc.name || err != tc.err { - t.Errorf("%d:%s: got %q, %v; want %q, %v", i, tc.desc, name, err, tc.name, tc.err) - } - } -} - -func TestLanguageDefault(t *testing.T) { - for _, tc := range []struct{ tag, want string }{ - {"und", "windows-1252"}, // The default value. - {"ar", "windows-1256"}, - {"ba", "windows-1251"}, - {"be", "windows-1251"}, - {"bg", "windows-1251"}, - {"cs", "windows-1250"}, - {"el", "iso-8859-7"}, - {"et", "windows-1257"}, - {"fa", "windows-1256"}, - {"he", "windows-1255"}, - {"hr", "windows-1250"}, - {"hu", "iso-8859-2"}, - {"ja", "shift_jis"}, - {"kk", "windows-1251"}, - {"ko", "euc-kr"}, - {"ku", "windows-1254"}, - {"ky", "windows-1251"}, - {"lt", "windows-1257"}, - {"lv", "windows-1257"}, - {"mk", "windows-1251"}, - {"pl", "iso-8859-2"}, - {"ru", "windows-1251"}, - {"sah", "windows-1251"}, - {"sk", "windows-1250"}, - {"sl", "iso-8859-2"}, - {"sr", "windows-1251"}, - {"tg", "windows-1251"}, - {"th", "windows-874"}, - {"tr", "windows-1254"}, - {"tt", "windows-1251"}, - {"uk", "windows-1251"}, - {"vi", "windows-1258"}, - {"zh-hans", "gb18030"}, - {"zh-hant", "big5"}, - // Variants and close approximates of the above. - {"ar_EG", "windows-1256"}, - {"bs", "windows-1250"}, // Bosnian Latin maps to Croatian. - // Use default fallback in case of miss. - {"nl", "windows-1252"}, - } { - if got := LanguageDefault(language.MustParse(tc.tag)); got != tc.want { - t.Errorf("LanguageDefault(%s) = %s; want %s", tc.tag, got, tc.want) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/map.go b/vendor/golang.org/x/text/encoding/htmlindex/map.go deleted file mode 100644 index c614390..0000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/map.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package htmlindex - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/encoding/japanese" - "golang.org/x/text/encoding/korean" - "golang.org/x/text/encoding/simplifiedchinese" - "golang.org/x/text/encoding/traditionalchinese" - "golang.org/x/text/encoding/unicode" -) - -// mibMap maps a MIB identifier to an htmlEncoding index. -var mibMap = map[identifier.MIB]htmlEncoding{ - identifier.UTF8: utf8, - identifier.UTF16BE: utf16be, - identifier.UTF16LE: utf16le, - identifier.IBM866: ibm866, - identifier.ISOLatin2: iso8859_2, - identifier.ISOLatin3: iso8859_3, - identifier.ISOLatin4: iso8859_4, - identifier.ISOLatinCyrillic: iso8859_5, - identifier.ISOLatinArabic: iso8859_6, - identifier.ISOLatinGreek: iso8859_7, - identifier.ISOLatinHebrew: iso8859_8, - identifier.ISO88598I: iso8859_8I, - identifier.ISOLatin6: iso8859_10, - identifier.ISO885913: iso8859_13, - identifier.ISO885914: iso8859_14, - identifier.ISO885915: iso8859_15, - identifier.ISO885916: iso8859_16, - identifier.KOI8R: koi8r, - identifier.KOI8U: koi8u, - identifier.Macintosh: macintosh, - identifier.MacintoshCyrillic: macintoshCyrillic, - identifier.Windows874: windows874, - identifier.Windows1250: windows1250, - identifier.Windows1251: windows1251, - identifier.Windows1252: windows1252, - identifier.Windows1253: windows1253, - identifier.Windows1254: windows1254, - identifier.Windows1255: windows1255, - identifier.Windows1256: windows1256, - identifier.Windows1257: windows1257, - identifier.Windows1258: windows1258, - identifier.XUserDefined: xUserDefined, - identifier.GBK: gbk, - identifier.GB18030: gb18030, - identifier.Big5: big5, - identifier.EUCPkdFmtJapanese: eucjp, - identifier.ISO2022JP: iso2022jp, - identifier.ShiftJIS: shiftJIS, - identifier.EUCKR: euckr, - identifier.Replacement: replacement, -} - -// encodings maps the internal htmlEncoding to an Encoding. -// TODO: consider using a reusable index in encoding/internal. -var encodings = [numEncodings]encoding.Encoding{ - utf8: unicode.UTF8, - ibm866: charmap.CodePage866, - iso8859_2: charmap.ISO8859_2, - iso8859_3: charmap.ISO8859_3, - iso8859_4: charmap.ISO8859_4, - iso8859_5: charmap.ISO8859_5, - iso8859_6: charmap.ISO8859_6, - iso8859_7: charmap.ISO8859_7, - iso8859_8: charmap.ISO8859_8, - iso8859_8I: charmap.ISO8859_8I, - iso8859_10: charmap.ISO8859_10, - iso8859_13: charmap.ISO8859_13, - iso8859_14: charmap.ISO8859_14, - iso8859_15: charmap.ISO8859_15, - iso8859_16: charmap.ISO8859_16, - koi8r: charmap.KOI8R, - koi8u: charmap.KOI8U, - macintosh: charmap.Macintosh, - windows874: charmap.Windows874, - windows1250: charmap.Windows1250, - windows1251: charmap.Windows1251, - windows1252: charmap.Windows1252, - windows1253: charmap.Windows1253, - windows1254: charmap.Windows1254, - windows1255: charmap.Windows1255, - windows1256: charmap.Windows1256, - windows1257: charmap.Windows1257, - windows1258: charmap.Windows1258, - macintoshCyrillic: charmap.MacintoshCyrillic, - gbk: simplifiedchinese.GBK, - gb18030: simplifiedchinese.GB18030, - big5: traditionalchinese.Big5, - eucjp: japanese.EUCJP, - iso2022jp: japanese.ISO2022JP, - shiftJIS: japanese.ShiftJIS, - euckr: korean.EUCKR, - replacement: encoding.Replacement, - utf16be: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - utf16le: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), - xUserDefined: charmap.XUserDefined, -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/golang.org/x/text/encoding/htmlindex/tables.go deleted file mode 100644 index 78950d3..0000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/tables.go +++ /dev/null @@ -1,352 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package htmlindex - -type htmlEncoding byte - -const ( - utf8 htmlEncoding = iota - ibm866 - iso8859_2 - iso8859_3 - iso8859_4 - iso8859_5 - iso8859_6 - iso8859_7 - iso8859_8 - iso8859_8I - iso8859_10 - iso8859_13 - iso8859_14 - iso8859_15 - iso8859_16 - koi8r - koi8u - macintosh - windows874 - windows1250 - windows1251 - windows1252 - windows1253 - windows1254 - windows1255 - windows1256 - windows1257 - windows1258 - macintoshCyrillic - gbk - gb18030 - big5 - eucjp - iso2022jp - shiftJIS - euckr - replacement - utf16be - utf16le - xUserDefined - numEncodings -) - -var canonical = [numEncodings]string{ - "utf-8", - "ibm866", - "iso-8859-2", - "iso-8859-3", - "iso-8859-4", - "iso-8859-5", - "iso-8859-6", - "iso-8859-7", - "iso-8859-8", - "iso-8859-8-i", - "iso-8859-10", - "iso-8859-13", - "iso-8859-14", - "iso-8859-15", - "iso-8859-16", - "koi8-r", - "koi8-u", - "macintosh", - "windows-874", - "windows-1250", - "windows-1251", - "windows-1252", - "windows-1253", - "windows-1254", - "windows-1255", - "windows-1256", - "windows-1257", - "windows-1258", - "x-mac-cyrillic", - "gbk", - "gb18030", - "big5", - "euc-jp", - "iso-2022-jp", - "shift_jis", - "euc-kr", - "replacement", - "utf-16be", - "utf-16le", - "x-user-defined", -} - -var nameMap = map[string]htmlEncoding{ - "unicode-1-1-utf-8": utf8, - "utf-8": utf8, - "utf8": utf8, - "866": ibm866, - "cp866": ibm866, - "csibm866": ibm866, - "ibm866": ibm866, - "csisolatin2": iso8859_2, - "iso-8859-2": iso8859_2, - "iso-ir-101": iso8859_2, - "iso8859-2": iso8859_2, - "iso88592": iso8859_2, - "iso_8859-2": iso8859_2, - "iso_8859-2:1987": iso8859_2, - "l2": iso8859_2, - "latin2": iso8859_2, - "csisolatin3": iso8859_3, - "iso-8859-3": iso8859_3, - "iso-ir-109": iso8859_3, - "iso8859-3": iso8859_3, - "iso88593": iso8859_3, - "iso_8859-3": iso8859_3, - "iso_8859-3:1988": iso8859_3, - "l3": iso8859_3, - "latin3": iso8859_3, - "csisolatin4": iso8859_4, - "iso-8859-4": iso8859_4, - "iso-ir-110": iso8859_4, - "iso8859-4": iso8859_4, - "iso88594": iso8859_4, - "iso_8859-4": iso8859_4, - "iso_8859-4:1988": iso8859_4, - "l4": iso8859_4, - "latin4": iso8859_4, - "csisolatincyrillic": iso8859_5, - "cyrillic": iso8859_5, - "iso-8859-5": iso8859_5, - "iso-ir-144": iso8859_5, - "iso8859-5": iso8859_5, - "iso88595": iso8859_5, - "iso_8859-5": iso8859_5, - "iso_8859-5:1988": iso8859_5, - "arabic": iso8859_6, - "asmo-708": iso8859_6, - "csiso88596e": iso8859_6, - "csiso88596i": iso8859_6, - "csisolatinarabic": iso8859_6, - "ecma-114": iso8859_6, - "iso-8859-6": iso8859_6, - "iso-8859-6-e": iso8859_6, - "iso-8859-6-i": iso8859_6, - "iso-ir-127": iso8859_6, - "iso8859-6": iso8859_6, - "iso88596": iso8859_6, - "iso_8859-6": iso8859_6, - "iso_8859-6:1987": iso8859_6, - "csisolatingreek": iso8859_7, - "ecma-118": iso8859_7, - "elot_928": iso8859_7, - "greek": iso8859_7, - "greek8": iso8859_7, - "iso-8859-7": iso8859_7, - "iso-ir-126": iso8859_7, - "iso8859-7": iso8859_7, - "iso88597": iso8859_7, - "iso_8859-7": iso8859_7, - "iso_8859-7:1987": iso8859_7, - "sun_eu_greek": iso8859_7, - "csiso88598e": iso8859_8, - "csisolatinhebrew": iso8859_8, - "hebrew": iso8859_8, - "iso-8859-8": iso8859_8, - "iso-8859-8-e": iso8859_8, - "iso-ir-138": iso8859_8, - "iso8859-8": iso8859_8, - "iso88598": iso8859_8, - "iso_8859-8": iso8859_8, - "iso_8859-8:1988": iso8859_8, - "visual": iso8859_8, - "csiso88598i": iso8859_8I, - "iso-8859-8-i": iso8859_8I, - "logical": iso8859_8I, - "csisolatin6": iso8859_10, - "iso-8859-10": iso8859_10, - "iso-ir-157": iso8859_10, - "iso8859-10": iso8859_10, - "iso885910": iso8859_10, - "l6": iso8859_10, - "latin6": iso8859_10, - "iso-8859-13": iso8859_13, - "iso8859-13": iso8859_13, - "iso885913": iso8859_13, - "iso-8859-14": iso8859_14, - "iso8859-14": iso8859_14, - "iso885914": iso8859_14, - "csisolatin9": iso8859_15, - "iso-8859-15": iso8859_15, - "iso8859-15": iso8859_15, - "iso885915": iso8859_15, - "iso_8859-15": iso8859_15, - "l9": iso8859_15, - "iso-8859-16": iso8859_16, - "cskoi8r": koi8r, - "koi": koi8r, - "koi8": koi8r, - "koi8-r": koi8r, - "koi8_r": koi8r, - "koi8-ru": koi8u, - "koi8-u": koi8u, - "csmacintosh": macintosh, - "mac": macintosh, - "macintosh": macintosh, - "x-mac-roman": macintosh, - "dos-874": windows874, - "iso-8859-11": windows874, - "iso8859-11": windows874, - "iso885911": windows874, - "tis-620": windows874, - "windows-874": windows874, - "cp1250": windows1250, - "windows-1250": windows1250, - "x-cp1250": windows1250, - "cp1251": windows1251, - "windows-1251": windows1251, - "x-cp1251": windows1251, - "ansi_x3.4-1968": windows1252, - "ascii": windows1252, - "cp1252": windows1252, - "cp819": windows1252, - "csisolatin1": windows1252, - "ibm819": windows1252, - "iso-8859-1": windows1252, - "iso-ir-100": windows1252, - "iso8859-1": windows1252, - "iso88591": windows1252, - "iso_8859-1": windows1252, - "iso_8859-1:1987": windows1252, - "l1": windows1252, - "latin1": windows1252, - "us-ascii": windows1252, - "windows-1252": windows1252, - "x-cp1252": windows1252, - "cp1253": windows1253, - "windows-1253": windows1253, - "x-cp1253": windows1253, - "cp1254": windows1254, - "csisolatin5": windows1254, - "iso-8859-9": windows1254, - "iso-ir-148": windows1254, - "iso8859-9": windows1254, - "iso88599": windows1254, - "iso_8859-9": windows1254, - "iso_8859-9:1989": windows1254, - "l5": windows1254, - "latin5": windows1254, - "windows-1254": windows1254, - "x-cp1254": windows1254, - "cp1255": windows1255, - "windows-1255": windows1255, - "x-cp1255": windows1255, - "cp1256": windows1256, - "windows-1256": windows1256, - "x-cp1256": windows1256, - "cp1257": windows1257, - "windows-1257": windows1257, - "x-cp1257": windows1257, - "cp1258": windows1258, - "windows-1258": windows1258, - "x-cp1258": windows1258, - "x-mac-cyrillic": macintoshCyrillic, - "x-mac-ukrainian": macintoshCyrillic, - "chinese": gbk, - "csgb2312": gbk, - "csiso58gb231280": gbk, - "gb2312": gbk, - "gb_2312": gbk, - "gb_2312-80": gbk, - "gbk": gbk, - "iso-ir-58": gbk, - "x-gbk": gbk, - "gb18030": gb18030, - "big5": big5, - "big5-hkscs": big5, - "cn-big5": big5, - "csbig5": big5, - "x-x-big5": big5, - "cseucpkdfmtjapanese": eucjp, - "euc-jp": eucjp, - "x-euc-jp": eucjp, - "csiso2022jp": iso2022jp, - "iso-2022-jp": iso2022jp, - "csshiftjis": shiftJIS, - "ms932": shiftJIS, - "ms_kanji": shiftJIS, - "shift-jis": shiftJIS, - "shift_jis": shiftJIS, - "sjis": shiftJIS, - "windows-31j": shiftJIS, - "x-sjis": shiftJIS, - "cseuckr": euckr, - "csksc56011987": euckr, - "euc-kr": euckr, - "iso-ir-149": euckr, - "korean": euckr, - "ks_c_5601-1987": euckr, - "ks_c_5601-1989": euckr, - "ksc5601": euckr, - "ksc_5601": euckr, - "windows-949": euckr, - "csiso2022kr": replacement, - "hz-gb-2312": replacement, - "iso-2022-cn": replacement, - "iso-2022-cn-ext": replacement, - "iso-2022-kr": replacement, - "utf-16be": utf16be, - "utf-16": utf16le, - "utf-16le": utf16le, - "x-user-defined": xUserDefined, -} - -var localeMap = []htmlEncoding{ - windows1252, // und - windows1256, // ar - windows1251, // ba - windows1251, // be - windows1251, // bg - windows1250, // cs - iso8859_7, // el - windows1257, // et - windows1256, // fa - windows1255, // he - windows1250, // hr - iso8859_2, // hu - shiftJIS, // ja - windows1251, // kk - euckr, // ko - windows1254, // ku - windows1251, // ky - windows1257, // lt - windows1257, // lv - windows1251, // mk - iso8859_2, // pl - windows1251, // ru - windows1251, // sah - windows1250, // sk - iso8859_2, // sl - windows1251, // sr - windows1251, // tg - windows874, // th - windows1254, // tr - windows1251, // tt - windows1251, // uk - windows1258, // vi - gb18030, // zh-hans - big5, // zh-hant -} - -const locales = "und ar ba be bg cs el et fa he hr hu ja kk ko ku ky lt lv mk pl ru sah sk sl sr tg th tr tt uk vi zh-hans zh-hant" diff --git a/vendor/golang.org/x/text/encoding/ianaindex/example_test.go b/vendor/golang.org/x/text/encoding/ianaindex/example_test.go deleted file mode 100644 index b305732..0000000 --- a/vendor/golang.org/x/text/encoding/ianaindex/example_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package ianaindex_test - -import ( - "fmt" - - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/ianaindex" -) - -func ExampleIndex() { - fmt.Println(ianaindex.MIME.Name(charmap.ISO8859_7)) - - fmt.Println(ianaindex.IANA.Name(charmap.ISO8859_7)) - - e, _ := ianaindex.IANA.Get("cp437") - fmt.Println(ianaindex.IANA.Name(e)) - - // TODO: Output: - // ISO-8859-7 - // ISO8859_7:1987 - // IBM437 -} diff --git a/vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go b/vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go deleted file mode 100644 index da899e0..0000000 --- a/vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ianaindex maps names to Encodings as specified by the IANA registry. -// This includes both the MIME and IANA names. -// -// See http://www.iana.org/assignments/character-sets/character-sets.xhtml for -// more details. -package ianaindex - -import ( - "golang.org/x/text/encoding" -) - -// TODO: allow users to specify their own aliases? -// TODO: allow users to specify their own indexes? -// TODO: allow canonicalizing names - -// NOTE: only use these top-level variables if we can get the linker to drop -// the indexes when they are not used. Make them a function or perhaps only -// support MIME otherwise. - -var ( - // MIME is an index to map MIME names. It does not support aliases. - MIME *Index - - // IANA is an index that supports all names and aliases using IANA names as - // the canonical identifier. - IANA *Index -) - -// Index maps names registered by IANA to Encodings. -type Index struct { -} - -// Get returns an Encoding for IANA-registered names. Matching is -// case-insensitive. -func (x *Index) Get(name string) (encoding.Encoding, error) { - panic("TODO: implement") -} - -// Name reports the canonical name of the given Encoding. It will return an -// error if the e is not associated with a known encoding scheme. -func (x *Index) Name(e encoding.Encoding) (string, error) { - panic("TODO: implement") -} - -// TODO: the coverage of this index is rather spotty. Allowing users to set -// encodings would allow: -// - users to increase coverage -// - allow a partially loaded set of encodings in case the user doesn't need to -// them all. -// - write an OS-specific wrapper for supported encodings and set them. -// The exact definition of Set depends a bit on if and how we want to let users -// write their own Encoding implementations. Also, it is not possible yet to -// only partially load the encodings without doing some refactoring. Until this -// is solved, we might as well not support Set. -// // Set sets the e to be used for the encoding scheme identified by name. Only -// // canonical names may be used. An empty name assigns e to its internally -// // associated encoding scheme. -// func (x *Index) Set(name string, e encoding.Encoding) error { -// panic("TODO: implement") -// } diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go b/vendor/golang.org/x/text/encoding/internal/identifier/gen.go deleted file mode 100644 index 0c8eba7..0000000 --- a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -import ( - "bytes" - "encoding/xml" - "fmt" - "io" - "log" - "strings" - - "golang.org/x/text/internal/gen" -) - -type registry struct { - XMLName xml.Name `xml:"registry"` - Updated string `xml:"updated"` - Registry []struct { - ID string `xml:"id,attr"` - Record []struct { - Name string `xml:"name"` - Xref []struct { - Type string `xml:"type,attr"` - Data string `xml:"data,attr"` - } `xml:"xref"` - Desc struct { - Data string `xml:",innerxml"` - // Any []struct { - // Data string `xml:",chardata"` - // } `xml:",any"` - // Data string `xml:",chardata"` - } `xml:"description,"` - MIB string `xml:"value"` - Alias []string `xml:"alias"` - MIME string `xml:"preferred_alias"` - } `xml:"record"` - } `xml:"registry"` -} - -func main() { - r := gen.OpenIANAFile("assignments/character-sets/character-sets.xml") - reg := ®istry{} - if err := xml.NewDecoder(r).Decode(®); err != nil && err != io.EOF { - log.Fatalf("Error decoding charset registry: %v", err) - } - if len(reg.Registry) == 0 || reg.Registry[0].ID != "character-sets-1" { - log.Fatalf("Unexpected ID %s", reg.Registry[0].ID) - } - - w := &bytes.Buffer{} - fmt.Fprintf(w, "const (\n") - for _, rec := range reg.Registry[0].Record { - constName := "" - for _, a := range rec.Alias { - if strings.HasPrefix(a, "cs") && strings.IndexByte(a, '-') == -1 { - // Some of the constant definitions have comments in them. Strip those. - constName = strings.Title(strings.SplitN(a[2:], "\n", 2)[0]) - } - } - if constName == "" { - switch rec.MIB { - case "2085": - constName = "HZGB2312" // Not listed as alias for some reason. - default: - log.Fatalf("No cs alias defined for %s.", rec.MIB) - } - } - if rec.MIME != "" { - rec.MIME = fmt.Sprintf(" (MIME: %s)", rec.MIME) - } - fmt.Fprintf(w, "// %s is the MIB identifier with IANA name %s%s.\n//\n", constName, rec.Name, rec.MIME) - if len(rec.Desc.Data) > 0 { - fmt.Fprint(w, "// ") - d := xml.NewDecoder(strings.NewReader(rec.Desc.Data)) - inElem := true - attr := "" - for { - t, err := d.Token() - if err != nil { - if err != io.EOF { - log.Fatal(err) - } - break - } - switch x := t.(type) { - case xml.CharData: - attr = "" // Don't need attribute info. - a := bytes.Split([]byte(x), []byte("\n")) - for i, b := range a { - if b = bytes.TrimSpace(b); len(b) != 0 { - if !inElem && i > 0 { - fmt.Fprint(w, "\n// ") - } - inElem = false - fmt.Fprintf(w, "%s ", string(b)) - } - } - case xml.StartElement: - if x.Name.Local == "xref" { - inElem = true - use := false - for _, a := range x.Attr { - if a.Name.Local == "type" { - use = use || a.Value != "person" - } - if a.Name.Local == "data" && use { - attr = a.Value + " " - } - } - } - case xml.EndElement: - inElem = false - fmt.Fprint(w, attr) - } - } - fmt.Fprint(w, "\n") - } - for _, x := range rec.Xref { - switch x.Type { - case "rfc": - fmt.Fprintf(w, "// Reference: %s\n", strings.ToUpper(x.Data)) - case "uri": - fmt.Fprintf(w, "// Reference: %s\n", x.Data) - } - } - fmt.Fprintf(w, "%s MIB = %s\n", constName, rec.MIB) - fmt.Fprintln(w) - } - fmt.Fprintln(w, ")") - - gen.WriteGoFile("mib.go", "identifier", w.Bytes()) -} diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go deleted file mode 100644 index 2a2da0e..0000000 --- a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package identifier defines the contract between implementations of Encoding -// and Index by defining identifiers that uniquely identify standardized coded -// character sets (CCS) and character encoding schemes (CES), which we will -// together refer to as encodings, for which Encoding implementations provide -// converters to and from UTF-8. This package is typically only of concern to -// implementers of Indexes and Encodings. -// -// One part of the identifier is the MIB code, which is defined by IANA and -// uniquely identifies a CCS or CES. Each code is associated with data that -// references authorities, official documentation as well as aliases and MIME -// names. -// -// Not all CESs are covered by the IANA registry. The "other" string that is -// returned by ID can be used to identify other character sets or versions of -// existing ones. -// -// It is recommended that each package that provides a set of Encodings provide -// the All and Common variables to reference all supported encodings and -// commonly used subset. This allows Index implementations to include all -// available encodings without explicitly referencing or knowing about them. -package identifier - -// Note: this package is internal, but could be made public if there is a need -// for writing third-party Indexes and Encodings. - -// References: -// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt -// - http://www.iana.org/assignments/character-sets/character-sets.xhtml -// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib -// - http://www.ietf.org/rfc/rfc2978.txt -// - http://www.unicode.org/reports/tr22/ -// - http://www.w3.org/TR/encoding/ -// - http://www.w3.org/TR/encoding/indexes/encodings.json -// - https://encoding.spec.whatwg.org/ -// - https://tools.ietf.org/html/rfc6657#section-5 - -// Interface can be implemented by Encodings to define the CCS or CES for which -// it implements conversions. -type Interface interface { - // ID returns an encoding identifier. Exactly one of the mib and other - // values should be non-zero. - // - // In the usual case it is only necessary to indicate the MIB code. The - // other string can be used to specify encodings for which there is no MIB, - // such as "x-mac-dingbat". - // - // The other string may only contain the characters a-z, A-Z, 0-9, - and _. - ID() (mib MIB, other string) - - // NOTE: the restrictions on the encoding are to allow extending the syntax - // with additional information such as versions, vendors and other variants. -} - -// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds -// some identifiers for some encodings that are not covered by the IANA -// standard. -// -// See http://www.iana.org/assignments/ianacharset-mib. -type MIB uint16 - -// These additional MIB types are not defined in IANA. They are added because -// they are common and defined within the text repo. -const ( - // Unofficial marks the start of encodings not registered by IANA. - Unofficial MIB = 10000 + iota - - // Replacement is the WhatWG replacement encoding. - Replacement - - // XUserDefined is the code for x-user-defined. - XUserDefined - - // MacintoshCyrillic is the code for x-mac-cyrillic. - MacintoshCyrillic -) diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go deleted file mode 100644 index 915abfa..0000000 --- a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go +++ /dev/null @@ -1,1621 +0,0 @@ -// This file was generated by go generate; DO NOT EDIT - -package identifier - -const ( - // ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII). - // - // ANSI X3.4-1986 - // Reference: RFC2046 - ASCII MIB = 3 - - // ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin1 MIB = 4 - - // ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin2 MIB = 5 - - // ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin3 MIB = 6 - - // ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin4 MIB = 7 - - // ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinCyrillic MIB = 8 - - // ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinArabic MIB = 9 - - // ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1947 - // Reference: RFC1345 - ISOLatinGreek MIB = 10 - - // ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinHebrew MIB = 11 - - // ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin5 MIB = 12 - - // ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin6 MIB = 13 - - // ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add. - // - // ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983 - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOTextComm MIB = 14 - - // HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201. - // - // JIS X 0201-1976. One byte only, this is equivalent to - // JIS/Roman (similar to ASCII) plus eight-bit half-width - // Katakana - // Reference: RFC1345 - HalfWidthKatakana MIB = 15 - - // JISEncoding is the MIB identifier with IANA name JIS_Encoding. - // - // JIS X 0202-1991. Uses ISO 2022 escape sequences to - // shift code sets as documented in JIS X 0202-1991. - JISEncoding MIB = 16 - - // ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS). - // - // This charset is an extension of csHalfWidthKatakana by - // adding graphic characters in JIS X 0208. The CCS's are - // JIS X0201:1997 and JIS X0208:1997. The - // complete definition is shown in Appendix 1 of JIS - // X0208:1997. - // This charset can be used for the top-level media type "text". - ShiftJIS MIB = 17 - - // EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP). - // - // Standardized by OSF, UNIX International, and UNIX Systems - // Laboratories Pacific. Uses ISO 2022 rules to select - // code set 0: US-ASCII (a single 7-bit byte set) - // code set 1: JIS X0208-1990 (a double 8-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // requiring SS2 as the character prefix - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // requiring SS3 as the character prefix - EUCPkdFmtJapanese MIB = 18 - - // EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese. - // - // Used in Japan. Each character is 2 octets. - // code set 0: US-ASCII (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = 20-7E - // code set 1: JIS X0208-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = A0-FF - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in - // the first byte - // and 21-7E in the second byte - EUCFixWidJapanese MIB = 19 - - // ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO4UnitedKingdom MIB = 20 - - // ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO11SwedishForNames MIB = 21 - - // ISO15Italian is the MIB identifier with IANA name IT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO15Italian MIB = 22 - - // ISO17Spanish is the MIB identifier with IANA name ES. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO17Spanish MIB = 23 - - // ISO21German is the MIB identifier with IANA name DIN_66003. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO21German MIB = 24 - - // ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO60Norwegian1 MIB = 25 - - // ISO69French is the MIB identifier with IANA name NF_Z_62-010. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO69French MIB = 26 - - // ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1. - // - // Universal Transfer Format (1), this is the multibyte - // encoding, that subsets ASCII-7. It does not have byte - // ordering issues. - ISO10646UTF1 MIB = 27 - - // ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO646basic1983 MIB = 28 - - // INVARIANT is the MIB identifier with IANA name INVARIANT. - // - // Reference: RFC1345 - INVARIANT MIB = 29 - - // ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2IntlRefVersion MIB = 30 - - // NATSSEFI is the MIB identifier with IANA name NATS-SEFI. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFI MIB = 31 - - // NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFIADD MIB = 32 - - // NATSDANO is the MIB identifier with IANA name NATS-DANO. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANO MIB = 33 - - // NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANOADD MIB = 34 - - // ISO10Swedish is the MIB identifier with IANA name SEN_850200_B. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10Swedish MIB = 35 - - // KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - KSC56011987 MIB = 36 - - // ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR). - // - // rfc1557 (see also KS_C_5601-1987) - // Reference: RFC1557 - ISO2022KR MIB = 37 - - // EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR). - // - // rfc1557 (see also KS_C_5861-1992) - // Reference: RFC1557 - EUCKR MIB = 38 - - // ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP). - // - // rfc1468 (see also rfc2237 ) - // Reference: RFC1468 - ISO2022JP MIB = 39 - - // ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2). - // - // rfc1554 - // Reference: RFC1554 - ISO2022JP2 MIB = 40 - - // ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO13JISC6220jp MIB = 41 - - // ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO14JISC6220ro MIB = 42 - - // ISO16Portuguese is the MIB identifier with IANA name PT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO16Portuguese MIB = 43 - - // ISO18Greek7Old is the MIB identifier with IANA name greek7-old. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO18Greek7Old MIB = 44 - - // ISO19LatinGreek is the MIB identifier with IANA name latin-greek. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO19LatinGreek MIB = 45 - - // ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO25French MIB = 46 - - // ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO27LatinGreek1 MIB = 47 - - // ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5427Cyrillic MIB = 48 - - // ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO42JISC62261978 MIB = 49 - - // ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO47BSViewdata MIB = 50 - - // ISO49INIS is the MIB identifier with IANA name INIS. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO49INIS MIB = 51 - - // ISO50INIS8 is the MIB identifier with IANA name INIS-8. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO50INIS8 MIB = 52 - - // ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO51INISCyrillic MIB = 53 - - // ISO54271981 is the MIB identifier with IANA name ISO_5427:1981. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO54271981 MIB = 54 - - // ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5428Greek MIB = 55 - - // ISO57GB1988 is the MIB identifier with IANA name GB_1988-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO57GB1988 MIB = 56 - - // ISO58GB231280 is the MIB identifier with IANA name GB_2312-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO58GB231280 MIB = 57 - - // ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO61Norwegian2 MIB = 58 - - // ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO70VideotexSupp1 MIB = 59 - - // ISO84Portuguese2 is the MIB identifier with IANA name PT2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO84Portuguese2 MIB = 60 - - // ISO85Spanish2 is the MIB identifier with IANA name ES2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO85Spanish2 MIB = 61 - - // ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO86Hungarian MIB = 62 - - // ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO87JISX0208 MIB = 63 - - // ISO88Greek7 is the MIB identifier with IANA name greek7. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO88Greek7 MIB = 64 - - // ISO89ASMO449 is the MIB identifier with IANA name ASMO_449. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO89ASMO449 MIB = 65 - - // ISO90 is the MIB identifier with IANA name iso-ir-90. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO90 MIB = 66 - - // ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO91JISC62291984a MIB = 67 - - // ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO92JISC62991984b MIB = 68 - - // ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO93JIS62291984badd MIB = 69 - - // ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO94JIS62291984hand MIB = 70 - - // ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO95JIS62291984handadd MIB = 71 - - // ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO96JISC62291984kana MIB = 72 - - // ISO2033 is the MIB identifier with IANA name ISO_2033-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2033 MIB = 73 - - // ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO99NAPLPS MIB = 74 - - // ISO102T617bit is the MIB identifier with IANA name T.61-7bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO102T617bit MIB = 75 - - // ISO103T618bit is the MIB identifier with IANA name T.61-8bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO103T618bit MIB = 76 - - // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic. - // - // ISO registry - // (formerly ECMA - // registry ) - ISO111ECMACyrillic MIB = 77 - - // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO121Canadian1 MIB = 78 - - // ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO122Canadian2 MIB = 79 - - // ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO123CSAZ24341985gr MIB = 80 - - // ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88596E MIB = 81 - - // ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88596I MIB = 82 - - // ISO128T101G2 is the MIB identifier with IANA name T.101-G2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO128T101G2 MIB = 83 - - // ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88598E MIB = 84 - - // ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88598I MIB = 85 - - // ISO139CSN369103 is the MIB identifier with IANA name CSN_369103. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO139CSN369103 MIB = 86 - - // ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO141JUSIB1002 MIB = 87 - - // ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO143IECP271 MIB = 88 - - // ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO146Serbian MIB = 89 - - // ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO147Macedonian MIB = 90 - - // ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO150GreekCCITT MIB = 91 - - // ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO151Cuba MIB = 92 - - // ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO6937Add MIB = 93 - - // ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO153GOST1976874 MIB = 94 - - // ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO8859Supp MIB = 95 - - // ISO10367Box is the MIB identifier with IANA name ISO_10367-box. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10367Box MIB = 96 - - // ISO158Lap is the MIB identifier with IANA name latin-lap. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO158Lap MIB = 97 - - // ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO159JISX02121990 MIB = 98 - - // ISO646Danish is the MIB identifier with IANA name DS_2089. - // - // Danish Standard, DS 2089, February 1974 - // Reference: RFC1345 - ISO646Danish MIB = 99 - - // USDK is the MIB identifier with IANA name us-dk. - // - // Reference: RFC1345 - USDK MIB = 100 - - // DKUS is the MIB identifier with IANA name dk-us. - // - // Reference: RFC1345 - DKUS MIB = 101 - - // KSC5636 is the MIB identifier with IANA name KSC5636. - // - // Reference: RFC1345 - KSC5636 MIB = 102 - - // Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7. - // - // rfc1642 - // Reference: RFC1642 - Unicode11UTF7 MIB = 103 - - // ISO2022CN is the MIB identifier with IANA name ISO-2022-CN. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CN MIB = 104 - - // ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CNEXT MIB = 105 - - // UTF8 is the MIB identifier with IANA name UTF-8. - // - // rfc3629 - // Reference: RFC3629 - UTF8 MIB = 106 - - // ISO885913 is the MIB identifier with IANA name ISO-8859-13. - // - // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-13 http://www.iana.org/assignments/charset-reg/ISO-8859-13 - ISO885913 MIB = 109 - - // ISO885914 is the MIB identifier with IANA name ISO-8859-14. - // - // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-14 - ISO885914 MIB = 110 - - // ISO885915 is the MIB identifier with IANA name ISO-8859-15. - // - // ISO - // Please see: http://www.iana.org/assignments/charset-reg/ISO-8859-15 - ISO885915 MIB = 111 - - // ISO885916 is the MIB identifier with IANA name ISO-8859-16. - // - // ISO - ISO885916 MIB = 112 - - // GBK is the MIB identifier with IANA name GBK. - // - // Chinese IT Standardization Technical Committee - // Please see: http://www.iana.org/assignments/charset-reg/GBK - GBK MIB = 113 - - // GB18030 is the MIB identifier with IANA name GB18030. - // - // Chinese IT Standardization Technical Committee - // Please see: http://www.iana.org/assignments/charset-reg/GB18030 - GB18030 MIB = 114 - - // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 - OSDEBCDICDF0415 MIB = 115 - - // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV - OSDEBCDICDF03IRV MIB = 116 - - // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 - OSDEBCDICDF041 MIB = 117 - - // ISO115481 is the MIB identifier with IANA name ISO-11548-1. - // - // See http://www.iana.org/assignments/charset-reg/ISO-11548-1 - ISO115481 MIB = 118 - - // KZ1048 is the MIB identifier with IANA name KZ-1048. - // - // See http://www.iana.org/assignments/charset-reg/KZ-1048 - KZ1048 MIB = 119 - - // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2. - // - // the 2-octet Basic Multilingual Plane, aka Unicode - // this needs to specify network byte order: the standard - // does not specify (it is a 16-bit integer space) - Unicode MIB = 1000 - - // UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4. - // - // the full code space. (same comment about byte order, - // these are 31-bit numbers. - UCS4 MIB = 1001 - - // UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic. - // - // ASCII subset of Unicode. Basic Latin = collection 1 - // See ISO 10646, Appendix A - UnicodeASCII MIB = 1002 - - // UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1. - // - // ISO Latin-1 subset of Unicode. Basic Latin and Latin-1 - // Supplement = collections 1 and 2. See ISO 10646, - // Appendix A. See rfc1815 . - UnicodeLatin1 MIB = 1003 - - // UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1. - // - // ISO 10646 Japanese, see rfc1815 . - UnicodeJapanese MIB = 1004 - - // UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261. - // - // IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261 - UnicodeIBM1261 MIB = 1005 - - // UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268. - // - // IBM Latin-4 Extended Presentation Set, GCSGID: 1268 - UnicodeIBM1268 MIB = 1006 - - // UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276. - // - // IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276 - UnicodeIBM1276 MIB = 1007 - - // UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264. - // - // IBM Arabic Presentation Set, GCSGID: 1264 - UnicodeIBM1264 MIB = 1008 - - // UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265. - // - // IBM Hebrew Presentation Set, GCSGID: 1265 - UnicodeIBM1265 MIB = 1009 - - // Unicode11 is the MIB identifier with IANA name UNICODE-1-1. - // - // rfc1641 - // Reference: RFC1641 - Unicode11 MIB = 1010 - - // SCSU is the MIB identifier with IANA name SCSU. - // - // SCSU See http://www.iana.org/assignments/charset-reg/SCSU - SCSU MIB = 1011 - - // UTF7 is the MIB identifier with IANA name UTF-7. - // - // rfc2152 - // Reference: RFC2152 - UTF7 MIB = 1012 - - // UTF16BE is the MIB identifier with IANA name UTF-16BE. - // - // rfc2781 - // Reference: RFC2781 - UTF16BE MIB = 1013 - - // UTF16LE is the MIB identifier with IANA name UTF-16LE. - // - // rfc2781 - // Reference: RFC2781 - UTF16LE MIB = 1014 - - // UTF16 is the MIB identifier with IANA name UTF-16. - // - // rfc2781 - // Reference: RFC2781 - UTF16 MIB = 1015 - - // CESU8 is the MIB identifier with IANA name CESU-8. - // - // http://www.unicode.org/unicode/reports/tr26 - CESU8 MIB = 1016 - - // UTF32 is the MIB identifier with IANA name UTF-32. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32 MIB = 1017 - - // UTF32BE is the MIB identifier with IANA name UTF-32BE. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32BE MIB = 1018 - - // UTF32LE is the MIB identifier with IANA name UTF-32LE. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32LE MIB = 1019 - - // BOCU1 is the MIB identifier with IANA name BOCU-1. - // - // http://www.unicode.org/notes/tn6/ - BOCU1 MIB = 1020 - - // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.0. - // PCL Symbol Set id: 9U - Windows30Latin1 MIB = 2000 - - // Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.1. - // PCL Symbol Set id: 19U - Windows31Latin1 MIB = 2001 - - // Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2. - // - // Extended ISO 8859-2. Latin-2 for Windows 3.1. - // PCL Symbol Set id: 9E - Windows31Latin2 MIB = 2002 - - // Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5. - // - // Extended ISO 8859-9. Latin-5 for Windows 3.1 - // PCL Symbol Set id: 5T - Windows31Latin5 MIB = 2003 - - // HPRoman8 is the MIB identifier with IANA name hp-roman8. - // - // LaserJet IIP Printer User's Manual, - // HP part no 33471-90901, Hewlet-Packard, June 1989. - // Reference: RFC1345 - HPRoman8 MIB = 2004 - - // AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 10J - AdobeStandardEncoding MIB = 2005 - - // VenturaUS is the MIB identifier with IANA name Ventura-US. - // - // Ventura US. ASCII plus characters typically used in - // publishing, like pilcrow, copyright, registered, trade mark, - // section, dagger, and double dagger in the range A0 (hex) - // to FF (hex). - // PCL Symbol Set id: 14J - VenturaUS MIB = 2006 - - // VenturaInternational is the MIB identifier with IANA name Ventura-International. - // - // Ventura International. ASCII plus coded characters similar - // to Roman8. - // PCL Symbol Set id: 13J - VenturaInternational MIB = 2007 - - // DECMCS is the MIB identifier with IANA name DEC-MCS. - // - // VAX/VMS User's Manual, - // Order Number: AI-Y517A-TE, April 1986. - // Reference: RFC1345 - DECMCS MIB = 2008 - - // PC850Multilingual is the MIB identifier with IANA name IBM850. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC850Multilingual MIB = 2009 - - // PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian. - // - // PC Danish Norwegian - // 8-bit PC set for Danish Norwegian - // PCL Symbol Set id: 11U - PC8DanishNorwegian MIB = 2012 - - // PC862LatinHebrew is the MIB identifier with IANA name IBM862. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC862LatinHebrew MIB = 2013 - - // PC8Turkish is the MIB identifier with IANA name PC8-Turkish. - // - // PC Latin Turkish. PCL Symbol Set id: 9T - PC8Turkish MIB = 2014 - - // IBMSymbols is the MIB identifier with IANA name IBM-Symbols. - // - // Presentation Set, CPGID: 259 - IBMSymbols MIB = 2015 - - // IBMThai is the MIB identifier with IANA name IBM-Thai. - // - // Presentation Set, CPGID: 838 - IBMThai MIB = 2016 - - // HPLegal is the MIB identifier with IANA name HP-Legal. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 1U - HPLegal MIB = 2017 - - // HPPiFont is the MIB identifier with IANA name HP-Pi-font. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 15U - HPPiFont MIB = 2018 - - // HPMath8 is the MIB identifier with IANA name HP-Math8. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 8M - HPMath8 MIB = 2019 - - // HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 5M - HPPSMath MIB = 2020 - - // HPDesktop is the MIB identifier with IANA name HP-DeskTop. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 7J - HPDesktop MIB = 2021 - - // VenturaMath is the MIB identifier with IANA name Ventura-Math. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6M - VenturaMath MIB = 2022 - - // MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6J - MicrosoftPublishing MIB = 2023 - - // Windows31J is the MIB identifier with IANA name Windows-31J. - // - // Windows Japanese. A further extension of Shift_JIS - // to include NEC special characters (Row 13), NEC - // selection of IBM extensions (Rows 89 to 92), and IBM - // extensions (Rows 115 to 119). The CCS's are - // JIS X0201:1997, JIS X0208:1997, and these extensions. - // This charset can be used for the top-level media type "text", - // but it is of limited or specialized use (see rfc2278 ). - // PCL Symbol Set id: 19K - Windows31J MIB = 2024 - - // GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312). - // - // Chinese for People's Republic of China (PRC) mixed one byte, - // two byte set: - // 20-7E = one byte ASCII - // A1-FE = two byte PRC Kanji - // See GB 2312-80 - // PCL Symbol Set Id: 18C - GB2312 MIB = 2025 - - // Big5 is the MIB identifier with IANA name Big5 (MIME: Big5). - // - // Chinese for Taiwan Multi-byte set. - // PCL Symbol Set Id: 18T - Big5 MIB = 2026 - - // Macintosh is the MIB identifier with IANA name macintosh. - // - // The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991 - // Reference: RFC1345 - Macintosh MIB = 2027 - - // IBM037 is the MIB identifier with IANA name IBM037. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM037 MIB = 2028 - - // IBM038 is the MIB identifier with IANA name IBM038. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM038 MIB = 2029 - - // IBM273 is the MIB identifier with IANA name IBM273. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM273 MIB = 2030 - - // IBM274 is the MIB identifier with IANA name IBM274. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM274 MIB = 2031 - - // IBM275 is the MIB identifier with IANA name IBM275. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM275 MIB = 2032 - - // IBM277 is the MIB identifier with IANA name IBM277. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM277 MIB = 2033 - - // IBM278 is the MIB identifier with IANA name IBM278. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM278 MIB = 2034 - - // IBM280 is the MIB identifier with IANA name IBM280. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM280 MIB = 2035 - - // IBM281 is the MIB identifier with IANA name IBM281. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM281 MIB = 2036 - - // IBM284 is the MIB identifier with IANA name IBM284. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM284 MIB = 2037 - - // IBM285 is the MIB identifier with IANA name IBM285. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM285 MIB = 2038 - - // IBM290 is the MIB identifier with IANA name IBM290. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM290 MIB = 2039 - - // IBM297 is the MIB identifier with IANA name IBM297. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM297 MIB = 2040 - - // IBM420 is the MIB identifier with IANA name IBM420. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990, - // IBM NLS RM p 11-11 - // Reference: RFC1345 - IBM420 MIB = 2041 - - // IBM423 is the MIB identifier with IANA name IBM423. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM423 MIB = 2042 - - // IBM424 is the MIB identifier with IANA name IBM424. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM424 MIB = 2043 - - // PC8CodePage437 is the MIB identifier with IANA name IBM437. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC8CodePage437 MIB = 2011 - - // IBM500 is the MIB identifier with IANA name IBM500. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM500 MIB = 2044 - - // IBM851 is the MIB identifier with IANA name IBM851. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM851 MIB = 2045 - - // PCp852 is the MIB identifier with IANA name IBM852. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PCp852 MIB = 2010 - - // IBM855 is the MIB identifier with IANA name IBM855. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM855 MIB = 2046 - - // IBM857 is the MIB identifier with IANA name IBM857. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM857 MIB = 2047 - - // IBM860 is the MIB identifier with IANA name IBM860. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM860 MIB = 2048 - - // IBM861 is the MIB identifier with IANA name IBM861. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM861 MIB = 2049 - - // IBM863 is the MIB identifier with IANA name IBM863. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM863 MIB = 2050 - - // IBM864 is the MIB identifier with IANA name IBM864. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM864 MIB = 2051 - - // IBM865 is the MIB identifier with IANA name IBM865. - // - // IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987) - // Reference: RFC1345 - IBM865 MIB = 2052 - - // IBM868 is the MIB identifier with IANA name IBM868. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM868 MIB = 2053 - - // IBM869 is the MIB identifier with IANA name IBM869. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM869 MIB = 2054 - - // IBM870 is the MIB identifier with IANA name IBM870. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM870 MIB = 2055 - - // IBM871 is the MIB identifier with IANA name IBM871. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM871 MIB = 2056 - - // IBM880 is the MIB identifier with IANA name IBM880. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM880 MIB = 2057 - - // IBM891 is the MIB identifier with IANA name IBM891. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM891 MIB = 2058 - - // IBM903 is the MIB identifier with IANA name IBM903. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM903 MIB = 2059 - - // IBBM904 is the MIB identifier with IANA name IBM904. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBBM904 MIB = 2060 - - // IBM905 is the MIB identifier with IANA name IBM905. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM905 MIB = 2061 - - // IBM918 is the MIB identifier with IANA name IBM918. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM918 MIB = 2062 - - // IBM1026 is the MIB identifier with IANA name IBM1026. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM1026 MIB = 2063 - - // IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - IBMEBCDICATDE MIB = 2064 - - // EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICATDEA MIB = 2065 - - // EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICCAFR MIB = 2066 - - // EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNO MIB = 2067 - - // EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNOA MIB = 2068 - - // EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISE MIB = 2069 - - // EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISEA MIB = 2070 - - // EBCDICFR is the MIB identifier with IANA name EBCDIC-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFR MIB = 2071 - - // EBCDICIT is the MIB identifier with IANA name EBCDIC-IT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICIT MIB = 2072 - - // EBCDICPT is the MIB identifier with IANA name EBCDIC-PT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICPT MIB = 2073 - - // EBCDICES is the MIB identifier with IANA name EBCDIC-ES. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICES MIB = 2074 - - // EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESA MIB = 2075 - - // EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESS MIB = 2076 - - // EBCDICUK is the MIB identifier with IANA name EBCDIC-UK. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUK MIB = 2077 - - // EBCDICUS is the MIB identifier with IANA name EBCDIC-US. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUS MIB = 2078 - - // Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT. - // - // Reference: RFC1428 - Unknown8BiT MIB = 2079 - - // Mnemonic is the MIB identifier with IANA name MNEMONIC. - // - // rfc1345 , also known as "mnemonic+ascii+38" - // Reference: RFC1345 - Mnemonic MIB = 2080 - - // Mnem is the MIB identifier with IANA name MNEM. - // - // rfc1345 , also known as "mnemonic+ascii+8200" - // Reference: RFC1345 - Mnem MIB = 2081 - - // VISCII is the MIB identifier with IANA name VISCII. - // - // rfc1456 - // Reference: RFC1456 - VISCII MIB = 2082 - - // VIQR is the MIB identifier with IANA name VIQR. - // - // rfc1456 - // Reference: RFC1456 - VIQR MIB = 2083 - - // KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R). - // - // rfc1489 , based on GOST-19768-74, ISO-6937/8, - // INIS-Cyrillic, ISO-5427. - // Reference: RFC1489 - KOI8R MIB = 2084 - - // HZGB2312 is the MIB identifier with IANA name HZ-GB-2312. - // - // rfc1842 , rfc1843 rfc1843 rfc1842 - HZGB2312 MIB = 2085 - - // IBM866 is the MIB identifier with IANA name IBM866. - // - // IBM NLDG Volume 2 (SE09-8002-03) August 1994 - IBM866 MIB = 2086 - - // PC775Baltic is the MIB identifier with IANA name IBM775. - // - // HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996 - PC775Baltic MIB = 2087 - - // KOI8U is the MIB identifier with IANA name KOI8-U. - // - // rfc2319 - // Reference: RFC2319 - KOI8U MIB = 2088 - - // IBM00858 is the MIB identifier with IANA name IBM00858. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM00858 - IBM00858 MIB = 2089 - - // IBM00924 is the MIB identifier with IANA name IBM00924. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM00924 - IBM00924 MIB = 2090 - - // IBM01140 is the MIB identifier with IANA name IBM01140. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01140 - IBM01140 MIB = 2091 - - // IBM01141 is the MIB identifier with IANA name IBM01141. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01141 - IBM01141 MIB = 2092 - - // IBM01142 is the MIB identifier with IANA name IBM01142. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01142 - IBM01142 MIB = 2093 - - // IBM01143 is the MIB identifier with IANA name IBM01143. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01143 - IBM01143 MIB = 2094 - - // IBM01144 is the MIB identifier with IANA name IBM01144. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01144 - IBM01144 MIB = 2095 - - // IBM01145 is the MIB identifier with IANA name IBM01145. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01145 - IBM01145 MIB = 2096 - - // IBM01146 is the MIB identifier with IANA name IBM01146. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01146 - IBM01146 MIB = 2097 - - // IBM01147 is the MIB identifier with IANA name IBM01147. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01147 - IBM01147 MIB = 2098 - - // IBM01148 is the MIB identifier with IANA name IBM01148. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01148 - IBM01148 MIB = 2099 - - // IBM01149 is the MIB identifier with IANA name IBM01149. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01149 - IBM01149 MIB = 2100 - - // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS. - // - // See http://www.iana.org/assignments/charset-reg/Big5-HKSCS - Big5HKSCS MIB = 2101 - - // IBM1047 is the MIB identifier with IANA name IBM1047. - // - // IBM1047 (EBCDIC Latin 1/Open Systems) http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf - IBM1047 MIB = 2102 - - // PTCP154 is the MIB identifier with IANA name PTCP154. - // - // See http://www.iana.org/assignments/charset-reg/PTCP154 - PTCP154 MIB = 2103 - - // Amiga1251 is the MIB identifier with IANA name Amiga-1251. - // - // See http://www.amiga.ultranet.ru/Amiga-1251.html - Amiga1251 MIB = 2104 - - // KOI7switched is the MIB identifier with IANA name KOI7-switched. - // - // See http://www.iana.org/assignments/charset-reg/KOI7-switched - KOI7switched MIB = 2105 - - // BRF is the MIB identifier with IANA name BRF. - // - // See http://www.iana.org/assignments/charset-reg/BRF - BRF MIB = 2106 - - // TSCII is the MIB identifier with IANA name TSCII. - // - // See http://www.iana.org/assignments/charset-reg/TSCII - TSCII MIB = 2107 - - // CP51932 is the MIB identifier with IANA name CP51932. - // - // See http://www.iana.org/assignments/charset-reg/CP51932 - CP51932 MIB = 2108 - - // Windows874 is the MIB identifier with IANA name windows-874. - // - // See http://www.iana.org/assignments/charset-reg/windows-874 - Windows874 MIB = 2109 - - // Windows1250 is the MIB identifier with IANA name windows-1250. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1250 - Windows1250 MIB = 2250 - - // Windows1251 is the MIB identifier with IANA name windows-1251. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1251 - Windows1251 MIB = 2251 - - // Windows1252 is the MIB identifier with IANA name windows-1252. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1252 - Windows1252 MIB = 2252 - - // Windows1253 is the MIB identifier with IANA name windows-1253. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1253 - Windows1253 MIB = 2253 - - // Windows1254 is the MIB identifier with IANA name windows-1254. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1254 - Windows1254 MIB = 2254 - - // Windows1255 is the MIB identifier with IANA name windows-1255. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1255 - Windows1255 MIB = 2255 - - // Windows1256 is the MIB identifier with IANA name windows-1256. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1256 - Windows1256 MIB = 2256 - - // Windows1257 is the MIB identifier with IANA name windows-1257. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1257 - Windows1257 MIB = 2257 - - // Windows1258 is the MIB identifier with IANA name windows-1258. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1258 - Windows1258 MIB = 2258 - - // TIS620 is the MIB identifier with IANA name TIS-620. - // - // Thai Industrial Standards Institute (TISI) - TIS620 MIB = 2259 - - // CP50220 is the MIB identifier with IANA name CP50220. - // - // See http://www.iana.org/assignments/charset-reg/CP50220 - CP50220 MIB = 2260 -) diff --git a/vendor/golang.org/x/text/encoding/internal/internal.go b/vendor/golang.org/x/text/encoding/internal/internal.go deleted file mode 100644 index 75a5fd1..0000000 --- a/vendor/golang.org/x/text/encoding/internal/internal.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package internal contains code that is shared among encoding implementations. -package internal - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// Encoding is an implementation of the Encoding interface that adds the String -// and ID methods to an existing encoding. -type Encoding struct { - encoding.Encoding - Name string - MIB identifier.MIB -} - -// _ verifies that Encoding implements identifier.Interface. -var _ identifier.Interface = (*Encoding)(nil) - -func (e *Encoding) String() string { - return e.Name -} - -func (e *Encoding) ID() (mib identifier.MIB, other string) { - return e.MIB, "" -} - -// SimpleEncoding is an Encoding that combines two Transformers. -type SimpleEncoding struct { - Decoder transform.Transformer - Encoder transform.Transformer -} - -func (e *SimpleEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: e.Decoder} -} - -func (e *SimpleEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: e.Encoder} -} - -// FuncEncoding is an Encoding that combines two functions returning a new -// Transformer. -type FuncEncoding struct { - Decoder func() transform.Transformer - Encoder func() transform.Transformer -} - -func (e FuncEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: e.Decoder()} -} - -func (e FuncEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: e.Encoder()} -} - -// A RepertoireError indicates a rune is not in the repertoire of a destination -// encoding. It is associated with an encoding-specific suggested replacement -// byte. -type RepertoireError byte - -// Error implements the error interrface. -func (r RepertoireError) Error() string { - return "encoding: rune not supported by encoding." -} - -// Replacement returns the replacement string associated with this error. -func (r RepertoireError) Replacement() byte { return byte(r) } - -var ErrASCIIReplacement = RepertoireError(encoding.ASCIISub) diff --git a/vendor/golang.org/x/text/encoding/japanese/all.go b/vendor/golang.org/x/text/encoding/japanese/all.go deleted file mode 100644 index 6cfa8de..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/all.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "golang.org/x/text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS} diff --git a/vendor/golang.org/x/text/encoding/japanese/all_test.go b/vendor/golang.org/x/text/encoding/japanese/all_test.go deleted file mode 100644 index fe397aa..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/all_test.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/transform" -) - -func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Decode", e.NewDecoder(), nil -} -func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement -} - -func TestNonRepertoire(t *testing.T) { - testCases := []struct { - init func(e encoding.Encoding) (string, transform.Transformer, error) - e encoding.Encoding - src, want string - }{ - {dec, EUCJP, "\xfe\xfc", "\ufffd"}, - {dec, ISO2022JP, "\x1b$B\x7e\x7e", "\ufffd"}, - {dec, ShiftJIS, "\xef\xfc", "\ufffd"}, - - {enc, EUCJP, "갂", ""}, - {enc, EUCJP, "a갂", "a"}, - {enc, EUCJP, "丌갂", "\x8f\xb0\xa4"}, - - {enc, ISO2022JP, "갂", ""}, - {enc, ISO2022JP, "a갂", "a"}, - {enc, ISO2022JP, "朗갂", "\x1b$BzF\x1b(B"}, // switch back to ASCII mode at end - - {enc, ShiftJIS, "갂", ""}, - {enc, ShiftJIS, "a갂", "a"}, - {enc, ShiftJIS, "\u2190갂", "\x81\xa9"}, - } - for _, tc := range testCases { - dir, tr, wantErr := tc.init(tc.e) - - dst, _, err := transform.String(tr, tc.src) - if err != wantErr { - t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr) - } - if got := string(dst); got != tc.want { - t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) - } - } -} - -func TestCorrect(t *testing.T) { - testCases := []struct { - init func(e encoding.Encoding) (string, transform.Transformer, error) - e encoding.Encoding - src, want string - }{ - {dec, ShiftJIS, "\x9f\xfc", "滌"}, - {dec, ShiftJIS, "\xfb\xfc", "髙"}, - {dec, ShiftJIS, "\xfa\xb1", "﨑"}, - {enc, ShiftJIS, "滌", "\x9f\xfc"}, - {enc, ShiftJIS, "﨑", "\xed\x95"}, - } - for _, tc := range testCases { - dir, tr, _ := tc.init(tc.e) - - dst, _, err := transform.String(tr, tc.src) - if err != nil { - t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, nil) - } - if got := string(dst); got != tc.want { - t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/japanese/eucjp.go b/vendor/golang.org/x/text/encoding/japanese/eucjp.go deleted file mode 100644 index 40f9b05..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/eucjp.go +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// EUCJP is the EUC-JP encoding. -var EUCJP encoding.Encoding = &eucJP - -var eucJP = internal.Encoding{ - &internal.SimpleEncoding{eucJPDecoder{}, eucJPEncoder{}}, - "EUC-JP", - identifier.EUCPkdFmtJapanese, -} - -var errInvalidEUCJP = errors.New("japanese: invalid EUC-JP encoding") - -type eucJPDecoder struct{ transform.NopResetter } - -func (eucJPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case c0 == 0x8e: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xdf < c1 { - err = errInvalidEUCJP - break loop - } - r, size = rune(c1)+(0xff61-0xa1), 2 - - case c0 == 0x8f: - if nSrc+2 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - err = errInvalidEUCJP - break loop - } - c2 := src[nSrc+2] - if c2 < 0xa1 || 0xfe < c2 { - err = errInvalidEUCJP - break loop - } - r, size = '\ufffd', 3 - if i := int(c1-0xa1)*94 + int(c2-0xa1); i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - case 0xa1 <= c0 && c0 <= 0xfe: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - err = errInvalidEUCJP - break loop - } - r, size = '\ufffd', 2 - if i := int(c0-0xa1)*94 + int(c1-0xa1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - err = errInvalidEUCJP - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidEUCJP - } - return nDst, nSrc, err -} - -type eucJPEncoder struct{ transform.NopResetter } - -func (eucJPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2or3 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2or3 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2or3 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2or3 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2or3 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto write2 - } - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2or3 - } - } - err = internal.ErrASCIIReplacement - break - } - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2or3: - if r>>tableShift == jis0208 { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - } else { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = 0x8f - nDst++ - } - dst[nDst+0] = 0xa1 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0xa1 + uint8(r)&codeMask - nDst += 2 - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x8e - dst[nDst+1] = uint8(r - (0xff61 - 0xa1)) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 6 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go b/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go deleted file mode 100644 index b63e7d5..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// ISO2022JP is the ISO-2022-JP encoding. -var ISO2022JP encoding.Encoding = &iso2022JP - -var iso2022JP = internal.Encoding{ - internal.FuncEncoding{iso2022JPNewDecoder, iso2022JPNewEncoder}, - "ISO-2022-JP", - identifier.ISO2022JP, -} - -func iso2022JPNewDecoder() transform.Transformer { - return new(iso2022JPDecoder) -} - -func iso2022JPNewEncoder() transform.Transformer { - return new(iso2022JPEncoder) -} - -var errInvalidISO2022JP = errors.New("japanese: invalid ISO-2022-JP encoding") - -const ( - asciiState = iota - katakanaState - jis0208State - jis0212State -) - -const asciiEsc = 0x1b - -type iso2022JPDecoder int - -func (d *iso2022JPDecoder) Reset() { - *d = asciiState -} - -func (d *iso2022JPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - err = errInvalidISO2022JP - break loop - } - - if c0 == asciiEsc { - if nSrc+2 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 3 - c1 := src[nSrc+1] - c2 := src[nSrc+2] - switch { - case c1 == '$' && (c2 == '@' || c2 == 'B'): - *d = jis0208State - continue - case c1 == '$' && c2 == '(': - if nSrc+3 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 4 - if src[nSrc]+3 == 'D' { - *d = jis0212State - continue - } - case c1 == '(' && (c2 == 'B' || c2 == 'J'): - *d = asciiState - continue - case c1 == '(' && c2 == 'I': - *d = katakanaState - continue - } - err = errInvalidISO2022JP - break loop - } - - switch *d { - case asciiState: - r, size = rune(c0), 1 - - case katakanaState: - if c0 < 0x21 || 0x60 <= c0 { - err = errInvalidISO2022JP - break loop - } - r, size = rune(c0)+(0xff61-0x21), 1 - - default: - if c0 == 0x0a { - *d = asciiState - r, size = rune(c0), 1 - break - } - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 2 - c1 := src[nSrc+1] - i := int(c0-0x21)*94 + int(c1-0x21) - if *d == jis0208State && i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - } else if *d == jis0212State && i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - } else { - r = '\ufffd' - break - } - if r == 0 { - r = '\ufffd' - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidISO2022JP - } - return nDst, nSrc, err -} - -type iso2022JPEncoder int - -func (e *iso2022JPEncoder) Reset() { - *e = asciiState -} - -func (e *iso2022JPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - // - // http://encoding.spec.whatwg.org/#iso-2022-jp says that "the index jis0212 - // is not used by the iso-2022-jp encoder due to lack of widespread support". - // - // TODO: do we have to special-case U+00A5 and U+203E, as per - // http://encoding.spec.whatwg.org/#iso-2022-jp - // Doing so would mean that "\u00a5" would not be preserved - // after an encode-decode round trip. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto writeKatakana - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto writeJIS - } - } - - // Switch back to ASCII state in case of error so that an ASCII - // replacement character can be written in the correct state. - if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - err = internal.ErrASCIIReplacement - break - } - - if *e != asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - writeJIS: - if *e != jis0208State { - if nDst+5 > len(dst) { - err = transform.ErrShortDst - break - } - *e = jis0208State - dst[nDst+0] = asciiEsc - dst[nDst+1] = '$' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x21 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0x21 + uint8(r)&codeMask - nDst += 2 - continue - - writeKatakana: - if *e != katakanaState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = katakanaState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'I' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r - (0xff61 - 0x21)) - nDst++ - continue - } - if atEOF && err == nil && *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - } else { - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/japanese/maketables.go b/vendor/golang.org/x/text/encoding/japanese/maketables.go deleted file mode 100644 index d6c10de..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/maketables.go +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -// TODO: Emoji extensions? -// http://www.unicode.org/faq/emoji_dingbats.html -// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -type entry struct { - jisCode, table int -} - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.\n") - fmt.Printf(`package japanese // import "golang.org/x/text/encoding/japanese"` + "\n\n") - - reverse := [65536]entry{} - for i := range reverse { - reverse[i].table = -1 - } - - tables := []struct { - url string - name string - }{ - {"http://encoding.spec.whatwg.org/index-jis0208.txt", "0208"}, - {"http://encoding.spec.whatwg.org/index-jis0212.txt", "0212"}, - } - for i, table := range tables { - res, err := http.Get(table.url) - if err != nil { - log.Fatalf("%q: Get: %v", table.url, err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := 0, uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("%q: could not parse %q", table.url, s) - } - if x < 0 || 120*94 <= x { - log.Fatalf("%q: JIS code %d is out of range", table.url, x) - } - mapping[x] = y - if reverse[y].table == -1 { - reverse[y] = entry{jisCode: x, table: i} - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("%q: scanner error: %v", table.url, err) - } - - fmt.Printf("// jis%sDecode is the decoding table from JIS %s code to Unicode.\n// It is defined at %s\n", - table.name, table.name, table.url) - fmt.Printf("var jis%sDecode = [...]uint16{\n", table.name) - for i, m := range mapping { - if m != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, m) - } - } - fmt.Printf("}\n\n") - } - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v.table == -1 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const (\n") - fmt.Printf("\tjis0208 = 1\n") - fmt.Printf("\tjis0212 = 2\n") - fmt.Printf("\tcodeMask = 0x7f\n") - fmt.Printf("\tcodeShift = 7\n") - fmt.Printf("\ttableShift = 14\n") - fmt.Printf(")\n\n") - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to JIS code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("//\n") - fmt.Printf("// The high two bits of the value record whether the JIS code comes from the\n") - fmt.Printf("// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2).\n") - fmt.Printf("// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the\n") - fmt.Printf("// JIS code (94*j1 + j2) within that table.\n") - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x.table == -1 { - continue - } - fmt.Printf("\t%d - %d: jis%s<<14 | 0x%02X<<7 | 0x%02X,\n", - j, v.low, tables[x.table].name, x.jisCode/94, x.jisCode%94) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/japanese/shiftjis.go b/vendor/golang.org/x/text/encoding/japanese/shiftjis.go deleted file mode 100644 index 099aecc..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/shiftjis.go +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// ShiftJIS is the Shift JIS encoding, also known as Code Page 932 and -// Windows-31J. -var ShiftJIS encoding.Encoding = &shiftJIS - -var shiftJIS = internal.Encoding{ - &internal.SimpleEncoding{shiftJISDecoder{}, shiftJISEncoder{}}, - "Shift JIS", - identifier.ShiftJIS, -} - -var errInvalidShiftJIS = errors.New("japanese: invalid Shift JIS encoding") - -type shiftJISDecoder struct{ transform.NopResetter } - -func (shiftJISDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0xa1 <= c0 && c0 < 0xe0: - r, size = rune(c0)+(0xff61-0xa1), 1 - - case (0x81 <= c0 && c0 < 0xa0) || (0xe0 <= c0 && c0 < 0xfd): - if c0 <= 0x9f { - c0 -= 0x70 - } else { - c0 -= 0xb0 - } - c0 = 2*c0 - 0x21 - - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - switch { - case c1 < 0x40: - err = errInvalidShiftJIS - break loop - case c1 < 0x7f: - c0-- - c1 -= 0x40 - case c1 == 0x7f: - err = errInvalidShiftJIS - break loop - case c1 < 0x9f: - c0-- - c1 -= 0x41 - case c1 < 0xfd: - c1 -= 0x9f - default: - err = errInvalidShiftJIS - break loop - } - r, size = '\ufffd', 2 - if i := int(c0)*94 + int(c1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - err = errInvalidShiftJIS - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidShiftJIS - } - return nDst, nSrc, err -} - -type shiftJISEncoder struct{ transform.NopResetter } - -func (shiftJISEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break loop - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - r -= 0xff61 - 0xa1 - goto write1 - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - j1 := uint8(r>>codeShift) & codeMask - j2 := uint8(r) & codeMask - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break loop - } - if j1 <= 61 { - dst[nDst+0] = 129 + j1/2 - } else { - dst[nDst+0] = 193 + j1/2 - } - if j1&1 == 0 { - dst[nDst+1] = j2 + j2/63 + 64 - } else { - dst[nDst+1] = j2 + 159 - } - nDst += 2 - continue - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/japanese/tables.go b/vendor/golang.org/x/text/encoding/japanese/tables.go deleted file mode 100644 index 8717b79..0000000 --- a/vendor/golang.org/x/text/encoding/japanese/tables.go +++ /dev/null @@ -1,26971 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS. -package japanese // import "golang.org/x/text/encoding/japanese" - -// jis0208Decode is the decoding table from JIS 0208 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0208.txt -var jis0208Decode = [...]uint16{ - 0: 0x3000, - 1: 0x3001, - 2: 0x3002, - 3: 0xFF0C, - 4: 0xFF0E, - 5: 0x30FB, - 6: 0xFF1A, - 7: 0xFF1B, - 8: 0xFF1F, - 9: 0xFF01, - 10: 0x309B, - 11: 0x309C, - 12: 0x00B4, - 13: 0xFF40, - 14: 0x00A8, - 15: 0xFF3E, - 16: 0xFFE3, - 17: 0xFF3F, - 18: 0x30FD, - 19: 0x30FE, - 20: 0x309D, - 21: 0x309E, - 22: 0x3003, - 23: 0x4EDD, - 24: 0x3005, - 25: 0x3006, - 26: 0x3007, - 27: 0x30FC, - 28: 0x2015, - 29: 0x2010, - 30: 0xFF0F, - 31: 0xFF3C, - 32: 0xFF5E, - 33: 0x2225, - 34: 0xFF5C, - 35: 0x2026, - 36: 0x2025, - 37: 0x2018, - 38: 0x2019, - 39: 0x201C, - 40: 0x201D, - 41: 0xFF08, - 42: 0xFF09, - 43: 0x3014, - 44: 0x3015, - 45: 0xFF3B, - 46: 0xFF3D, - 47: 0xFF5B, - 48: 0xFF5D, - 49: 0x3008, - 50: 0x3009, - 51: 0x300A, - 52: 0x300B, - 53: 0x300C, - 54: 0x300D, - 55: 0x300E, - 56: 0x300F, - 57: 0x3010, - 58: 0x3011, - 59: 0xFF0B, - 60: 0xFF0D, - 61: 0x00B1, - 62: 0x00D7, - 63: 0x00F7, - 64: 0xFF1D, - 65: 0x2260, - 66: 0xFF1C, - 67: 0xFF1E, - 68: 0x2266, - 69: 0x2267, - 70: 0x221E, - 71: 0x2234, - 72: 0x2642, - 73: 0x2640, - 74: 0x00B0, - 75: 0x2032, - 76: 0x2033, - 77: 0x2103, - 78: 0xFFE5, - 79: 0xFF04, - 80: 0xFFE0, - 81: 0xFFE1, - 82: 0xFF05, - 83: 0xFF03, - 84: 0xFF06, - 85: 0xFF0A, - 86: 0xFF20, - 87: 0x00A7, - 88: 0x2606, - 89: 0x2605, - 90: 0x25CB, - 91: 0x25CF, - 92: 0x25CE, - 93: 0x25C7, - 94: 0x25C6, - 95: 0x25A1, - 96: 0x25A0, - 97: 0x25B3, - 98: 0x25B2, - 99: 0x25BD, - 100: 0x25BC, - 101: 0x203B, - 102: 0x3012, - 103: 0x2192, - 104: 0x2190, - 105: 0x2191, - 106: 0x2193, - 107: 0x3013, - 119: 0x2208, - 120: 0x220B, - 121: 0x2286, - 122: 0x2287, - 123: 0x2282, - 124: 0x2283, - 125: 0x222A, - 126: 0x2229, - 135: 0x2227, - 136: 0x2228, - 137: 0xFFE2, - 138: 0x21D2, - 139: 0x21D4, - 140: 0x2200, - 141: 0x2203, - 153: 0x2220, - 154: 0x22A5, - 155: 0x2312, - 156: 0x2202, - 157: 0x2207, - 158: 0x2261, - 159: 0x2252, - 160: 0x226A, - 161: 0x226B, - 162: 0x221A, - 163: 0x223D, - 164: 0x221D, - 165: 0x2235, - 166: 0x222B, - 167: 0x222C, - 175: 0x212B, - 176: 0x2030, - 177: 0x266F, - 178: 0x266D, - 179: 0x266A, - 180: 0x2020, - 181: 0x2021, - 182: 0x00B6, - 187: 0x25EF, - 203: 0xFF10, - 204: 0xFF11, - 205: 0xFF12, - 206: 0xFF13, - 207: 0xFF14, - 208: 0xFF15, - 209: 0xFF16, - 210: 0xFF17, - 211: 0xFF18, - 212: 0xFF19, - 220: 0xFF21, - 221: 0xFF22, - 222: 0xFF23, - 223: 0xFF24, - 224: 0xFF25, - 225: 0xFF26, - 226: 0xFF27, - 227: 0xFF28, - 228: 0xFF29, - 229: 0xFF2A, - 230: 0xFF2B, - 231: 0xFF2C, - 232: 0xFF2D, - 233: 0xFF2E, - 234: 0xFF2F, - 235: 0xFF30, - 236: 0xFF31, - 237: 0xFF32, - 238: 0xFF33, - 239: 0xFF34, - 240: 0xFF35, - 241: 0xFF36, - 242: 0xFF37, - 243: 0xFF38, - 244: 0xFF39, - 245: 0xFF3A, - 252: 0xFF41, - 253: 0xFF42, - 254: 0xFF43, - 255: 0xFF44, - 256: 0xFF45, - 257: 0xFF46, - 258: 0xFF47, - 259: 0xFF48, - 260: 0xFF49, - 261: 0xFF4A, - 262: 0xFF4B, - 263: 0xFF4C, - 264: 0xFF4D, - 265: 0xFF4E, - 266: 0xFF4F, - 267: 0xFF50, - 268: 0xFF51, - 269: 0xFF52, - 270: 0xFF53, - 271: 0xFF54, - 272: 0xFF55, - 273: 0xFF56, - 274: 0xFF57, - 275: 0xFF58, - 276: 0xFF59, - 277: 0xFF5A, - 282: 0x3041, - 283: 0x3042, - 284: 0x3043, - 285: 0x3044, - 286: 0x3045, - 287: 0x3046, - 288: 0x3047, - 289: 0x3048, - 290: 0x3049, - 291: 0x304A, - 292: 0x304B, - 293: 0x304C, - 294: 0x304D, - 295: 0x304E, - 296: 0x304F, - 297: 0x3050, - 298: 0x3051, - 299: 0x3052, - 300: 0x3053, - 301: 0x3054, - 302: 0x3055, - 303: 0x3056, - 304: 0x3057, - 305: 0x3058, - 306: 0x3059, - 307: 0x305A, - 308: 0x305B, - 309: 0x305C, - 310: 0x305D, - 311: 0x305E, - 312: 0x305F, - 313: 0x3060, - 314: 0x3061, - 315: 0x3062, - 316: 0x3063, - 317: 0x3064, - 318: 0x3065, - 319: 0x3066, - 320: 0x3067, - 321: 0x3068, - 322: 0x3069, - 323: 0x306A, - 324: 0x306B, - 325: 0x306C, - 326: 0x306D, - 327: 0x306E, - 328: 0x306F, - 329: 0x3070, - 330: 0x3071, - 331: 0x3072, - 332: 0x3073, - 333: 0x3074, - 334: 0x3075, - 335: 0x3076, - 336: 0x3077, - 337: 0x3078, - 338: 0x3079, - 339: 0x307A, - 340: 0x307B, - 341: 0x307C, - 342: 0x307D, - 343: 0x307E, - 344: 0x307F, - 345: 0x3080, - 346: 0x3081, - 347: 0x3082, - 348: 0x3083, - 349: 0x3084, - 350: 0x3085, - 351: 0x3086, - 352: 0x3087, - 353: 0x3088, - 354: 0x3089, - 355: 0x308A, - 356: 0x308B, - 357: 0x308C, - 358: 0x308D, - 359: 0x308E, - 360: 0x308F, - 361: 0x3090, - 362: 0x3091, - 363: 0x3092, - 364: 0x3093, - 376: 0x30A1, - 377: 0x30A2, - 378: 0x30A3, - 379: 0x30A4, - 380: 0x30A5, - 381: 0x30A6, - 382: 0x30A7, - 383: 0x30A8, - 384: 0x30A9, - 385: 0x30AA, - 386: 0x30AB, - 387: 0x30AC, - 388: 0x30AD, - 389: 0x30AE, - 390: 0x30AF, - 391: 0x30B0, - 392: 0x30B1, - 393: 0x30B2, - 394: 0x30B3, - 395: 0x30B4, - 396: 0x30B5, - 397: 0x30B6, - 398: 0x30B7, - 399: 0x30B8, - 400: 0x30B9, - 401: 0x30BA, - 402: 0x30BB, - 403: 0x30BC, - 404: 0x30BD, - 405: 0x30BE, - 406: 0x30BF, - 407: 0x30C0, - 408: 0x30C1, - 409: 0x30C2, - 410: 0x30C3, - 411: 0x30C4, - 412: 0x30C5, - 413: 0x30C6, - 414: 0x30C7, - 415: 0x30C8, - 416: 0x30C9, - 417: 0x30CA, - 418: 0x30CB, - 419: 0x30CC, - 420: 0x30CD, - 421: 0x30CE, - 422: 0x30CF, - 423: 0x30D0, - 424: 0x30D1, - 425: 0x30D2, - 426: 0x30D3, - 427: 0x30D4, - 428: 0x30D5, - 429: 0x30D6, - 430: 0x30D7, - 431: 0x30D8, - 432: 0x30D9, - 433: 0x30DA, - 434: 0x30DB, - 435: 0x30DC, - 436: 0x30DD, - 437: 0x30DE, - 438: 0x30DF, - 439: 0x30E0, - 440: 0x30E1, - 441: 0x30E2, - 442: 0x30E3, - 443: 0x30E4, - 444: 0x30E5, - 445: 0x30E6, - 446: 0x30E7, - 447: 0x30E8, - 448: 0x30E9, - 449: 0x30EA, - 450: 0x30EB, - 451: 0x30EC, - 452: 0x30ED, - 453: 0x30EE, - 454: 0x30EF, - 455: 0x30F0, - 456: 0x30F1, - 457: 0x30F2, - 458: 0x30F3, - 459: 0x30F4, - 460: 0x30F5, - 461: 0x30F6, - 470: 0x0391, - 471: 0x0392, - 472: 0x0393, - 473: 0x0394, - 474: 0x0395, - 475: 0x0396, - 476: 0x0397, - 477: 0x0398, - 478: 0x0399, - 479: 0x039A, - 480: 0x039B, - 481: 0x039C, - 482: 0x039D, - 483: 0x039E, - 484: 0x039F, - 485: 0x03A0, - 486: 0x03A1, - 487: 0x03A3, - 488: 0x03A4, - 489: 0x03A5, - 490: 0x03A6, - 491: 0x03A7, - 492: 0x03A8, - 493: 0x03A9, - 502: 0x03B1, - 503: 0x03B2, - 504: 0x03B3, - 505: 0x03B4, - 506: 0x03B5, - 507: 0x03B6, - 508: 0x03B7, - 509: 0x03B8, - 510: 0x03B9, - 511: 0x03BA, - 512: 0x03BB, - 513: 0x03BC, - 514: 0x03BD, - 515: 0x03BE, - 516: 0x03BF, - 517: 0x03C0, - 518: 0x03C1, - 519: 0x03C3, - 520: 0x03C4, - 521: 0x03C5, - 522: 0x03C6, - 523: 0x03C7, - 524: 0x03C8, - 525: 0x03C9, - 564: 0x0410, - 565: 0x0411, - 566: 0x0412, - 567: 0x0413, - 568: 0x0414, - 569: 0x0415, - 570: 0x0401, - 571: 0x0416, - 572: 0x0417, - 573: 0x0418, - 574: 0x0419, - 575: 0x041A, - 576: 0x041B, - 577: 0x041C, - 578: 0x041D, - 579: 0x041E, - 580: 0x041F, - 581: 0x0420, - 582: 0x0421, - 583: 0x0422, - 584: 0x0423, - 585: 0x0424, - 586: 0x0425, - 587: 0x0426, - 588: 0x0427, - 589: 0x0428, - 590: 0x0429, - 591: 0x042A, - 592: 0x042B, - 593: 0x042C, - 594: 0x042D, - 595: 0x042E, - 596: 0x042F, - 612: 0x0430, - 613: 0x0431, - 614: 0x0432, - 615: 0x0433, - 616: 0x0434, - 617: 0x0435, - 618: 0x0451, - 619: 0x0436, - 620: 0x0437, - 621: 0x0438, - 622: 0x0439, - 623: 0x043A, - 624: 0x043B, - 625: 0x043C, - 626: 0x043D, - 627: 0x043E, - 628: 0x043F, - 629: 0x0440, - 630: 0x0441, - 631: 0x0442, - 632: 0x0443, - 633: 0x0444, - 634: 0x0445, - 635: 0x0446, - 636: 0x0447, - 637: 0x0448, - 638: 0x0449, - 639: 0x044A, - 640: 0x044B, - 641: 0x044C, - 642: 0x044D, - 643: 0x044E, - 644: 0x044F, - 658: 0x2500, - 659: 0x2502, - 660: 0x250C, - 661: 0x2510, - 662: 0x2518, - 663: 0x2514, - 664: 0x251C, - 665: 0x252C, - 666: 0x2524, - 667: 0x2534, - 668: 0x253C, - 669: 0x2501, - 670: 0x2503, - 671: 0x250F, - 672: 0x2513, - 673: 0x251B, - 674: 0x2517, - 675: 0x2523, - 676: 0x2533, - 677: 0x252B, - 678: 0x253B, - 679: 0x254B, - 680: 0x2520, - 681: 0x252F, - 682: 0x2528, - 683: 0x2537, - 684: 0x253F, - 685: 0x251D, - 686: 0x2530, - 687: 0x2525, - 688: 0x2538, - 689: 0x2542, - 1128: 0x2460, - 1129: 0x2461, - 1130: 0x2462, - 1131: 0x2463, - 1132: 0x2464, - 1133: 0x2465, - 1134: 0x2466, - 1135: 0x2467, - 1136: 0x2468, - 1137: 0x2469, - 1138: 0x246A, - 1139: 0x246B, - 1140: 0x246C, - 1141: 0x246D, - 1142: 0x246E, - 1143: 0x246F, - 1144: 0x2470, - 1145: 0x2471, - 1146: 0x2472, - 1147: 0x2473, - 1148: 0x2160, - 1149: 0x2161, - 1150: 0x2162, - 1151: 0x2163, - 1152: 0x2164, - 1153: 0x2165, - 1154: 0x2166, - 1155: 0x2167, - 1156: 0x2168, - 1157: 0x2169, - 1159: 0x3349, - 1160: 0x3314, - 1161: 0x3322, - 1162: 0x334D, - 1163: 0x3318, - 1164: 0x3327, - 1165: 0x3303, - 1166: 0x3336, - 1167: 0x3351, - 1168: 0x3357, - 1169: 0x330D, - 1170: 0x3326, - 1171: 0x3323, - 1172: 0x332B, - 1173: 0x334A, - 1174: 0x333B, - 1175: 0x339C, - 1176: 0x339D, - 1177: 0x339E, - 1178: 0x338E, - 1179: 0x338F, - 1180: 0x33C4, - 1181: 0x33A1, - 1190: 0x337B, - 1191: 0x301D, - 1192: 0x301F, - 1193: 0x2116, - 1194: 0x33CD, - 1195: 0x2121, - 1196: 0x32A4, - 1197: 0x32A5, - 1198: 0x32A6, - 1199: 0x32A7, - 1200: 0x32A8, - 1201: 0x3231, - 1202: 0x3232, - 1203: 0x3239, - 1204: 0x337E, - 1205: 0x337D, - 1206: 0x337C, - 1207: 0x2252, - 1208: 0x2261, - 1209: 0x222B, - 1210: 0x222E, - 1211: 0x2211, - 1212: 0x221A, - 1213: 0x22A5, - 1214: 0x2220, - 1215: 0x221F, - 1216: 0x22BF, - 1217: 0x2235, - 1218: 0x2229, - 1219: 0x222A, - 1410: 0x4E9C, - 1411: 0x5516, - 1412: 0x5A03, - 1413: 0x963F, - 1414: 0x54C0, - 1415: 0x611B, - 1416: 0x6328, - 1417: 0x59F6, - 1418: 0x9022, - 1419: 0x8475, - 1420: 0x831C, - 1421: 0x7A50, - 1422: 0x60AA, - 1423: 0x63E1, - 1424: 0x6E25, - 1425: 0x65ED, - 1426: 0x8466, - 1427: 0x82A6, - 1428: 0x9BF5, - 1429: 0x6893, - 1430: 0x5727, - 1431: 0x65A1, - 1432: 0x6271, - 1433: 0x5B9B, - 1434: 0x59D0, - 1435: 0x867B, - 1436: 0x98F4, - 1437: 0x7D62, - 1438: 0x7DBE, - 1439: 0x9B8E, - 1440: 0x6216, - 1441: 0x7C9F, - 1442: 0x88B7, - 1443: 0x5B89, - 1444: 0x5EB5, - 1445: 0x6309, - 1446: 0x6697, - 1447: 0x6848, - 1448: 0x95C7, - 1449: 0x978D, - 1450: 0x674F, - 1451: 0x4EE5, - 1452: 0x4F0A, - 1453: 0x4F4D, - 1454: 0x4F9D, - 1455: 0x5049, - 1456: 0x56F2, - 1457: 0x5937, - 1458: 0x59D4, - 1459: 0x5A01, - 1460: 0x5C09, - 1461: 0x60DF, - 1462: 0x610F, - 1463: 0x6170, - 1464: 0x6613, - 1465: 0x6905, - 1466: 0x70BA, - 1467: 0x754F, - 1468: 0x7570, - 1469: 0x79FB, - 1470: 0x7DAD, - 1471: 0x7DEF, - 1472: 0x80C3, - 1473: 0x840E, - 1474: 0x8863, - 1475: 0x8B02, - 1476: 0x9055, - 1477: 0x907A, - 1478: 0x533B, - 1479: 0x4E95, - 1480: 0x4EA5, - 1481: 0x57DF, - 1482: 0x80B2, - 1483: 0x90C1, - 1484: 0x78EF, - 1485: 0x4E00, - 1486: 0x58F1, - 1487: 0x6EA2, - 1488: 0x9038, - 1489: 0x7A32, - 1490: 0x8328, - 1491: 0x828B, - 1492: 0x9C2F, - 1493: 0x5141, - 1494: 0x5370, - 1495: 0x54BD, - 1496: 0x54E1, - 1497: 0x56E0, - 1498: 0x59FB, - 1499: 0x5F15, - 1500: 0x98F2, - 1501: 0x6DEB, - 1502: 0x80E4, - 1503: 0x852D, - 1504: 0x9662, - 1505: 0x9670, - 1506: 0x96A0, - 1507: 0x97FB, - 1508: 0x540B, - 1509: 0x53F3, - 1510: 0x5B87, - 1511: 0x70CF, - 1512: 0x7FBD, - 1513: 0x8FC2, - 1514: 0x96E8, - 1515: 0x536F, - 1516: 0x9D5C, - 1517: 0x7ABA, - 1518: 0x4E11, - 1519: 0x7893, - 1520: 0x81FC, - 1521: 0x6E26, - 1522: 0x5618, - 1523: 0x5504, - 1524: 0x6B1D, - 1525: 0x851A, - 1526: 0x9C3B, - 1527: 0x59E5, - 1528: 0x53A9, - 1529: 0x6D66, - 1530: 0x74DC, - 1531: 0x958F, - 1532: 0x5642, - 1533: 0x4E91, - 1534: 0x904B, - 1535: 0x96F2, - 1536: 0x834F, - 1537: 0x990C, - 1538: 0x53E1, - 1539: 0x55B6, - 1540: 0x5B30, - 1541: 0x5F71, - 1542: 0x6620, - 1543: 0x66F3, - 1544: 0x6804, - 1545: 0x6C38, - 1546: 0x6CF3, - 1547: 0x6D29, - 1548: 0x745B, - 1549: 0x76C8, - 1550: 0x7A4E, - 1551: 0x9834, - 1552: 0x82F1, - 1553: 0x885B, - 1554: 0x8A60, - 1555: 0x92ED, - 1556: 0x6DB2, - 1557: 0x75AB, - 1558: 0x76CA, - 1559: 0x99C5, - 1560: 0x60A6, - 1561: 0x8B01, - 1562: 0x8D8A, - 1563: 0x95B2, - 1564: 0x698E, - 1565: 0x53AD, - 1566: 0x5186, - 1567: 0x5712, - 1568: 0x5830, - 1569: 0x5944, - 1570: 0x5BB4, - 1571: 0x5EF6, - 1572: 0x6028, - 1573: 0x63A9, - 1574: 0x63F4, - 1575: 0x6CBF, - 1576: 0x6F14, - 1577: 0x708E, - 1578: 0x7114, - 1579: 0x7159, - 1580: 0x71D5, - 1581: 0x733F, - 1582: 0x7E01, - 1583: 0x8276, - 1584: 0x82D1, - 1585: 0x8597, - 1586: 0x9060, - 1587: 0x925B, - 1588: 0x9D1B, - 1589: 0x5869, - 1590: 0x65BC, - 1591: 0x6C5A, - 1592: 0x7525, - 1593: 0x51F9, - 1594: 0x592E, - 1595: 0x5965, - 1596: 0x5F80, - 1597: 0x5FDC, - 1598: 0x62BC, - 1599: 0x65FA, - 1600: 0x6A2A, - 1601: 0x6B27, - 1602: 0x6BB4, - 1603: 0x738B, - 1604: 0x7FC1, - 1605: 0x8956, - 1606: 0x9D2C, - 1607: 0x9D0E, - 1608: 0x9EC4, - 1609: 0x5CA1, - 1610: 0x6C96, - 1611: 0x837B, - 1612: 0x5104, - 1613: 0x5C4B, - 1614: 0x61B6, - 1615: 0x81C6, - 1616: 0x6876, - 1617: 0x7261, - 1618: 0x4E59, - 1619: 0x4FFA, - 1620: 0x5378, - 1621: 0x6069, - 1622: 0x6E29, - 1623: 0x7A4F, - 1624: 0x97F3, - 1625: 0x4E0B, - 1626: 0x5316, - 1627: 0x4EEE, - 1628: 0x4F55, - 1629: 0x4F3D, - 1630: 0x4FA1, - 1631: 0x4F73, - 1632: 0x52A0, - 1633: 0x53EF, - 1634: 0x5609, - 1635: 0x590F, - 1636: 0x5AC1, - 1637: 0x5BB6, - 1638: 0x5BE1, - 1639: 0x79D1, - 1640: 0x6687, - 1641: 0x679C, - 1642: 0x67B6, - 1643: 0x6B4C, - 1644: 0x6CB3, - 1645: 0x706B, - 1646: 0x73C2, - 1647: 0x798D, - 1648: 0x79BE, - 1649: 0x7A3C, - 1650: 0x7B87, - 1651: 0x82B1, - 1652: 0x82DB, - 1653: 0x8304, - 1654: 0x8377, - 1655: 0x83EF, - 1656: 0x83D3, - 1657: 0x8766, - 1658: 0x8AB2, - 1659: 0x5629, - 1660: 0x8CA8, - 1661: 0x8FE6, - 1662: 0x904E, - 1663: 0x971E, - 1664: 0x868A, - 1665: 0x4FC4, - 1666: 0x5CE8, - 1667: 0x6211, - 1668: 0x7259, - 1669: 0x753B, - 1670: 0x81E5, - 1671: 0x82BD, - 1672: 0x86FE, - 1673: 0x8CC0, - 1674: 0x96C5, - 1675: 0x9913, - 1676: 0x99D5, - 1677: 0x4ECB, - 1678: 0x4F1A, - 1679: 0x89E3, - 1680: 0x56DE, - 1681: 0x584A, - 1682: 0x58CA, - 1683: 0x5EFB, - 1684: 0x5FEB, - 1685: 0x602A, - 1686: 0x6094, - 1687: 0x6062, - 1688: 0x61D0, - 1689: 0x6212, - 1690: 0x62D0, - 1691: 0x6539, - 1692: 0x9B41, - 1693: 0x6666, - 1694: 0x68B0, - 1695: 0x6D77, - 1696: 0x7070, - 1697: 0x754C, - 1698: 0x7686, - 1699: 0x7D75, - 1700: 0x82A5, - 1701: 0x87F9, - 1702: 0x958B, - 1703: 0x968E, - 1704: 0x8C9D, - 1705: 0x51F1, - 1706: 0x52BE, - 1707: 0x5916, - 1708: 0x54B3, - 1709: 0x5BB3, - 1710: 0x5D16, - 1711: 0x6168, - 1712: 0x6982, - 1713: 0x6DAF, - 1714: 0x788D, - 1715: 0x84CB, - 1716: 0x8857, - 1717: 0x8A72, - 1718: 0x93A7, - 1719: 0x9AB8, - 1720: 0x6D6C, - 1721: 0x99A8, - 1722: 0x86D9, - 1723: 0x57A3, - 1724: 0x67FF, - 1725: 0x86CE, - 1726: 0x920E, - 1727: 0x5283, - 1728: 0x5687, - 1729: 0x5404, - 1730: 0x5ED3, - 1731: 0x62E1, - 1732: 0x64B9, - 1733: 0x683C, - 1734: 0x6838, - 1735: 0x6BBB, - 1736: 0x7372, - 1737: 0x78BA, - 1738: 0x7A6B, - 1739: 0x899A, - 1740: 0x89D2, - 1741: 0x8D6B, - 1742: 0x8F03, - 1743: 0x90ED, - 1744: 0x95A3, - 1745: 0x9694, - 1746: 0x9769, - 1747: 0x5B66, - 1748: 0x5CB3, - 1749: 0x697D, - 1750: 0x984D, - 1751: 0x984E, - 1752: 0x639B, - 1753: 0x7B20, - 1754: 0x6A2B, - 1755: 0x6A7F, - 1756: 0x68B6, - 1757: 0x9C0D, - 1758: 0x6F5F, - 1759: 0x5272, - 1760: 0x559D, - 1761: 0x6070, - 1762: 0x62EC, - 1763: 0x6D3B, - 1764: 0x6E07, - 1765: 0x6ED1, - 1766: 0x845B, - 1767: 0x8910, - 1768: 0x8F44, - 1769: 0x4E14, - 1770: 0x9C39, - 1771: 0x53F6, - 1772: 0x691B, - 1773: 0x6A3A, - 1774: 0x9784, - 1775: 0x682A, - 1776: 0x515C, - 1777: 0x7AC3, - 1778: 0x84B2, - 1779: 0x91DC, - 1780: 0x938C, - 1781: 0x565B, - 1782: 0x9D28, - 1783: 0x6822, - 1784: 0x8305, - 1785: 0x8431, - 1786: 0x7CA5, - 1787: 0x5208, - 1788: 0x82C5, - 1789: 0x74E6, - 1790: 0x4E7E, - 1791: 0x4F83, - 1792: 0x51A0, - 1793: 0x5BD2, - 1794: 0x520A, - 1795: 0x52D8, - 1796: 0x52E7, - 1797: 0x5DFB, - 1798: 0x559A, - 1799: 0x582A, - 1800: 0x59E6, - 1801: 0x5B8C, - 1802: 0x5B98, - 1803: 0x5BDB, - 1804: 0x5E72, - 1805: 0x5E79, - 1806: 0x60A3, - 1807: 0x611F, - 1808: 0x6163, - 1809: 0x61BE, - 1810: 0x63DB, - 1811: 0x6562, - 1812: 0x67D1, - 1813: 0x6853, - 1814: 0x68FA, - 1815: 0x6B3E, - 1816: 0x6B53, - 1817: 0x6C57, - 1818: 0x6F22, - 1819: 0x6F97, - 1820: 0x6F45, - 1821: 0x74B0, - 1822: 0x7518, - 1823: 0x76E3, - 1824: 0x770B, - 1825: 0x7AFF, - 1826: 0x7BA1, - 1827: 0x7C21, - 1828: 0x7DE9, - 1829: 0x7F36, - 1830: 0x7FF0, - 1831: 0x809D, - 1832: 0x8266, - 1833: 0x839E, - 1834: 0x89B3, - 1835: 0x8ACC, - 1836: 0x8CAB, - 1837: 0x9084, - 1838: 0x9451, - 1839: 0x9593, - 1840: 0x9591, - 1841: 0x95A2, - 1842: 0x9665, - 1843: 0x97D3, - 1844: 0x9928, - 1845: 0x8218, - 1846: 0x4E38, - 1847: 0x542B, - 1848: 0x5CB8, - 1849: 0x5DCC, - 1850: 0x73A9, - 1851: 0x764C, - 1852: 0x773C, - 1853: 0x5CA9, - 1854: 0x7FEB, - 1855: 0x8D0B, - 1856: 0x96C1, - 1857: 0x9811, - 1858: 0x9854, - 1859: 0x9858, - 1860: 0x4F01, - 1861: 0x4F0E, - 1862: 0x5371, - 1863: 0x559C, - 1864: 0x5668, - 1865: 0x57FA, - 1866: 0x5947, - 1867: 0x5B09, - 1868: 0x5BC4, - 1869: 0x5C90, - 1870: 0x5E0C, - 1871: 0x5E7E, - 1872: 0x5FCC, - 1873: 0x63EE, - 1874: 0x673A, - 1875: 0x65D7, - 1876: 0x65E2, - 1877: 0x671F, - 1878: 0x68CB, - 1879: 0x68C4, - 1880: 0x6A5F, - 1881: 0x5E30, - 1882: 0x6BC5, - 1883: 0x6C17, - 1884: 0x6C7D, - 1885: 0x757F, - 1886: 0x7948, - 1887: 0x5B63, - 1888: 0x7A00, - 1889: 0x7D00, - 1890: 0x5FBD, - 1891: 0x898F, - 1892: 0x8A18, - 1893: 0x8CB4, - 1894: 0x8D77, - 1895: 0x8ECC, - 1896: 0x8F1D, - 1897: 0x98E2, - 1898: 0x9A0E, - 1899: 0x9B3C, - 1900: 0x4E80, - 1901: 0x507D, - 1902: 0x5100, - 1903: 0x5993, - 1904: 0x5B9C, - 1905: 0x622F, - 1906: 0x6280, - 1907: 0x64EC, - 1908: 0x6B3A, - 1909: 0x72A0, - 1910: 0x7591, - 1911: 0x7947, - 1912: 0x7FA9, - 1913: 0x87FB, - 1914: 0x8ABC, - 1915: 0x8B70, - 1916: 0x63AC, - 1917: 0x83CA, - 1918: 0x97A0, - 1919: 0x5409, - 1920: 0x5403, - 1921: 0x55AB, - 1922: 0x6854, - 1923: 0x6A58, - 1924: 0x8A70, - 1925: 0x7827, - 1926: 0x6775, - 1927: 0x9ECD, - 1928: 0x5374, - 1929: 0x5BA2, - 1930: 0x811A, - 1931: 0x8650, - 1932: 0x9006, - 1933: 0x4E18, - 1934: 0x4E45, - 1935: 0x4EC7, - 1936: 0x4F11, - 1937: 0x53CA, - 1938: 0x5438, - 1939: 0x5BAE, - 1940: 0x5F13, - 1941: 0x6025, - 1942: 0x6551, - 1943: 0x673D, - 1944: 0x6C42, - 1945: 0x6C72, - 1946: 0x6CE3, - 1947: 0x7078, - 1948: 0x7403, - 1949: 0x7A76, - 1950: 0x7AAE, - 1951: 0x7B08, - 1952: 0x7D1A, - 1953: 0x7CFE, - 1954: 0x7D66, - 1955: 0x65E7, - 1956: 0x725B, - 1957: 0x53BB, - 1958: 0x5C45, - 1959: 0x5DE8, - 1960: 0x62D2, - 1961: 0x62E0, - 1962: 0x6319, - 1963: 0x6E20, - 1964: 0x865A, - 1965: 0x8A31, - 1966: 0x8DDD, - 1967: 0x92F8, - 1968: 0x6F01, - 1969: 0x79A6, - 1970: 0x9B5A, - 1971: 0x4EA8, - 1972: 0x4EAB, - 1973: 0x4EAC, - 1974: 0x4F9B, - 1975: 0x4FA0, - 1976: 0x50D1, - 1977: 0x5147, - 1978: 0x7AF6, - 1979: 0x5171, - 1980: 0x51F6, - 1981: 0x5354, - 1982: 0x5321, - 1983: 0x537F, - 1984: 0x53EB, - 1985: 0x55AC, - 1986: 0x5883, - 1987: 0x5CE1, - 1988: 0x5F37, - 1989: 0x5F4A, - 1990: 0x602F, - 1991: 0x6050, - 1992: 0x606D, - 1993: 0x631F, - 1994: 0x6559, - 1995: 0x6A4B, - 1996: 0x6CC1, - 1997: 0x72C2, - 1998: 0x72ED, - 1999: 0x77EF, - 2000: 0x80F8, - 2001: 0x8105, - 2002: 0x8208, - 2003: 0x854E, - 2004: 0x90F7, - 2005: 0x93E1, - 2006: 0x97FF, - 2007: 0x9957, - 2008: 0x9A5A, - 2009: 0x4EF0, - 2010: 0x51DD, - 2011: 0x5C2D, - 2012: 0x6681, - 2013: 0x696D, - 2014: 0x5C40, - 2015: 0x66F2, - 2016: 0x6975, - 2017: 0x7389, - 2018: 0x6850, - 2019: 0x7C81, - 2020: 0x50C5, - 2021: 0x52E4, - 2022: 0x5747, - 2023: 0x5DFE, - 2024: 0x9326, - 2025: 0x65A4, - 2026: 0x6B23, - 2027: 0x6B3D, - 2028: 0x7434, - 2029: 0x7981, - 2030: 0x79BD, - 2031: 0x7B4B, - 2032: 0x7DCA, - 2033: 0x82B9, - 2034: 0x83CC, - 2035: 0x887F, - 2036: 0x895F, - 2037: 0x8B39, - 2038: 0x8FD1, - 2039: 0x91D1, - 2040: 0x541F, - 2041: 0x9280, - 2042: 0x4E5D, - 2043: 0x5036, - 2044: 0x53E5, - 2045: 0x533A, - 2046: 0x72D7, - 2047: 0x7396, - 2048: 0x77E9, - 2049: 0x82E6, - 2050: 0x8EAF, - 2051: 0x99C6, - 2052: 0x99C8, - 2053: 0x99D2, - 2054: 0x5177, - 2055: 0x611A, - 2056: 0x865E, - 2057: 0x55B0, - 2058: 0x7A7A, - 2059: 0x5076, - 2060: 0x5BD3, - 2061: 0x9047, - 2062: 0x9685, - 2063: 0x4E32, - 2064: 0x6ADB, - 2065: 0x91E7, - 2066: 0x5C51, - 2067: 0x5C48, - 2068: 0x6398, - 2069: 0x7A9F, - 2070: 0x6C93, - 2071: 0x9774, - 2072: 0x8F61, - 2073: 0x7AAA, - 2074: 0x718A, - 2075: 0x9688, - 2076: 0x7C82, - 2077: 0x6817, - 2078: 0x7E70, - 2079: 0x6851, - 2080: 0x936C, - 2081: 0x52F2, - 2082: 0x541B, - 2083: 0x85AB, - 2084: 0x8A13, - 2085: 0x7FA4, - 2086: 0x8ECD, - 2087: 0x90E1, - 2088: 0x5366, - 2089: 0x8888, - 2090: 0x7941, - 2091: 0x4FC2, - 2092: 0x50BE, - 2093: 0x5211, - 2094: 0x5144, - 2095: 0x5553, - 2096: 0x572D, - 2097: 0x73EA, - 2098: 0x578B, - 2099: 0x5951, - 2100: 0x5F62, - 2101: 0x5F84, - 2102: 0x6075, - 2103: 0x6176, - 2104: 0x6167, - 2105: 0x61A9, - 2106: 0x63B2, - 2107: 0x643A, - 2108: 0x656C, - 2109: 0x666F, - 2110: 0x6842, - 2111: 0x6E13, - 2112: 0x7566, - 2113: 0x7A3D, - 2114: 0x7CFB, - 2115: 0x7D4C, - 2116: 0x7D99, - 2117: 0x7E4B, - 2118: 0x7F6B, - 2119: 0x830E, - 2120: 0x834A, - 2121: 0x86CD, - 2122: 0x8A08, - 2123: 0x8A63, - 2124: 0x8B66, - 2125: 0x8EFD, - 2126: 0x981A, - 2127: 0x9D8F, - 2128: 0x82B8, - 2129: 0x8FCE, - 2130: 0x9BE8, - 2131: 0x5287, - 2132: 0x621F, - 2133: 0x6483, - 2134: 0x6FC0, - 2135: 0x9699, - 2136: 0x6841, - 2137: 0x5091, - 2138: 0x6B20, - 2139: 0x6C7A, - 2140: 0x6F54, - 2141: 0x7A74, - 2142: 0x7D50, - 2143: 0x8840, - 2144: 0x8A23, - 2145: 0x6708, - 2146: 0x4EF6, - 2147: 0x5039, - 2148: 0x5026, - 2149: 0x5065, - 2150: 0x517C, - 2151: 0x5238, - 2152: 0x5263, - 2153: 0x55A7, - 2154: 0x570F, - 2155: 0x5805, - 2156: 0x5ACC, - 2157: 0x5EFA, - 2158: 0x61B2, - 2159: 0x61F8, - 2160: 0x62F3, - 2161: 0x6372, - 2162: 0x691C, - 2163: 0x6A29, - 2164: 0x727D, - 2165: 0x72AC, - 2166: 0x732E, - 2167: 0x7814, - 2168: 0x786F, - 2169: 0x7D79, - 2170: 0x770C, - 2171: 0x80A9, - 2172: 0x898B, - 2173: 0x8B19, - 2174: 0x8CE2, - 2175: 0x8ED2, - 2176: 0x9063, - 2177: 0x9375, - 2178: 0x967A, - 2179: 0x9855, - 2180: 0x9A13, - 2181: 0x9E78, - 2182: 0x5143, - 2183: 0x539F, - 2184: 0x53B3, - 2185: 0x5E7B, - 2186: 0x5F26, - 2187: 0x6E1B, - 2188: 0x6E90, - 2189: 0x7384, - 2190: 0x73FE, - 2191: 0x7D43, - 2192: 0x8237, - 2193: 0x8A00, - 2194: 0x8AFA, - 2195: 0x9650, - 2196: 0x4E4E, - 2197: 0x500B, - 2198: 0x53E4, - 2199: 0x547C, - 2200: 0x56FA, - 2201: 0x59D1, - 2202: 0x5B64, - 2203: 0x5DF1, - 2204: 0x5EAB, - 2205: 0x5F27, - 2206: 0x6238, - 2207: 0x6545, - 2208: 0x67AF, - 2209: 0x6E56, - 2210: 0x72D0, - 2211: 0x7CCA, - 2212: 0x88B4, - 2213: 0x80A1, - 2214: 0x80E1, - 2215: 0x83F0, - 2216: 0x864E, - 2217: 0x8A87, - 2218: 0x8DE8, - 2219: 0x9237, - 2220: 0x96C7, - 2221: 0x9867, - 2222: 0x9F13, - 2223: 0x4E94, - 2224: 0x4E92, - 2225: 0x4F0D, - 2226: 0x5348, - 2227: 0x5449, - 2228: 0x543E, - 2229: 0x5A2F, - 2230: 0x5F8C, - 2231: 0x5FA1, - 2232: 0x609F, - 2233: 0x68A7, - 2234: 0x6A8E, - 2235: 0x745A, - 2236: 0x7881, - 2237: 0x8A9E, - 2238: 0x8AA4, - 2239: 0x8B77, - 2240: 0x9190, - 2241: 0x4E5E, - 2242: 0x9BC9, - 2243: 0x4EA4, - 2244: 0x4F7C, - 2245: 0x4FAF, - 2246: 0x5019, - 2247: 0x5016, - 2248: 0x5149, - 2249: 0x516C, - 2250: 0x529F, - 2251: 0x52B9, - 2252: 0x52FE, - 2253: 0x539A, - 2254: 0x53E3, - 2255: 0x5411, - 2256: 0x540E, - 2257: 0x5589, - 2258: 0x5751, - 2259: 0x57A2, - 2260: 0x597D, - 2261: 0x5B54, - 2262: 0x5B5D, - 2263: 0x5B8F, - 2264: 0x5DE5, - 2265: 0x5DE7, - 2266: 0x5DF7, - 2267: 0x5E78, - 2268: 0x5E83, - 2269: 0x5E9A, - 2270: 0x5EB7, - 2271: 0x5F18, - 2272: 0x6052, - 2273: 0x614C, - 2274: 0x6297, - 2275: 0x62D8, - 2276: 0x63A7, - 2277: 0x653B, - 2278: 0x6602, - 2279: 0x6643, - 2280: 0x66F4, - 2281: 0x676D, - 2282: 0x6821, - 2283: 0x6897, - 2284: 0x69CB, - 2285: 0x6C5F, - 2286: 0x6D2A, - 2287: 0x6D69, - 2288: 0x6E2F, - 2289: 0x6E9D, - 2290: 0x7532, - 2291: 0x7687, - 2292: 0x786C, - 2293: 0x7A3F, - 2294: 0x7CE0, - 2295: 0x7D05, - 2296: 0x7D18, - 2297: 0x7D5E, - 2298: 0x7DB1, - 2299: 0x8015, - 2300: 0x8003, - 2301: 0x80AF, - 2302: 0x80B1, - 2303: 0x8154, - 2304: 0x818F, - 2305: 0x822A, - 2306: 0x8352, - 2307: 0x884C, - 2308: 0x8861, - 2309: 0x8B1B, - 2310: 0x8CA2, - 2311: 0x8CFC, - 2312: 0x90CA, - 2313: 0x9175, - 2314: 0x9271, - 2315: 0x783F, - 2316: 0x92FC, - 2317: 0x95A4, - 2318: 0x964D, - 2319: 0x9805, - 2320: 0x9999, - 2321: 0x9AD8, - 2322: 0x9D3B, - 2323: 0x525B, - 2324: 0x52AB, - 2325: 0x53F7, - 2326: 0x5408, - 2327: 0x58D5, - 2328: 0x62F7, - 2329: 0x6FE0, - 2330: 0x8C6A, - 2331: 0x8F5F, - 2332: 0x9EB9, - 2333: 0x514B, - 2334: 0x523B, - 2335: 0x544A, - 2336: 0x56FD, - 2337: 0x7A40, - 2338: 0x9177, - 2339: 0x9D60, - 2340: 0x9ED2, - 2341: 0x7344, - 2342: 0x6F09, - 2343: 0x8170, - 2344: 0x7511, - 2345: 0x5FFD, - 2346: 0x60DA, - 2347: 0x9AA8, - 2348: 0x72DB, - 2349: 0x8FBC, - 2350: 0x6B64, - 2351: 0x9803, - 2352: 0x4ECA, - 2353: 0x56F0, - 2354: 0x5764, - 2355: 0x58BE, - 2356: 0x5A5A, - 2357: 0x6068, - 2358: 0x61C7, - 2359: 0x660F, - 2360: 0x6606, - 2361: 0x6839, - 2362: 0x68B1, - 2363: 0x6DF7, - 2364: 0x75D5, - 2365: 0x7D3A, - 2366: 0x826E, - 2367: 0x9B42, - 2368: 0x4E9B, - 2369: 0x4F50, - 2370: 0x53C9, - 2371: 0x5506, - 2372: 0x5D6F, - 2373: 0x5DE6, - 2374: 0x5DEE, - 2375: 0x67FB, - 2376: 0x6C99, - 2377: 0x7473, - 2378: 0x7802, - 2379: 0x8A50, - 2380: 0x9396, - 2381: 0x88DF, - 2382: 0x5750, - 2383: 0x5EA7, - 2384: 0x632B, - 2385: 0x50B5, - 2386: 0x50AC, - 2387: 0x518D, - 2388: 0x6700, - 2389: 0x54C9, - 2390: 0x585E, - 2391: 0x59BB, - 2392: 0x5BB0, - 2393: 0x5F69, - 2394: 0x624D, - 2395: 0x63A1, - 2396: 0x683D, - 2397: 0x6B73, - 2398: 0x6E08, - 2399: 0x707D, - 2400: 0x91C7, - 2401: 0x7280, - 2402: 0x7815, - 2403: 0x7826, - 2404: 0x796D, - 2405: 0x658E, - 2406: 0x7D30, - 2407: 0x83DC, - 2408: 0x88C1, - 2409: 0x8F09, - 2410: 0x969B, - 2411: 0x5264, - 2412: 0x5728, - 2413: 0x6750, - 2414: 0x7F6A, - 2415: 0x8CA1, - 2416: 0x51B4, - 2417: 0x5742, - 2418: 0x962A, - 2419: 0x583A, - 2420: 0x698A, - 2421: 0x80B4, - 2422: 0x54B2, - 2423: 0x5D0E, - 2424: 0x57FC, - 2425: 0x7895, - 2426: 0x9DFA, - 2427: 0x4F5C, - 2428: 0x524A, - 2429: 0x548B, - 2430: 0x643E, - 2431: 0x6628, - 2432: 0x6714, - 2433: 0x67F5, - 2434: 0x7A84, - 2435: 0x7B56, - 2436: 0x7D22, - 2437: 0x932F, - 2438: 0x685C, - 2439: 0x9BAD, - 2440: 0x7B39, - 2441: 0x5319, - 2442: 0x518A, - 2443: 0x5237, - 2444: 0x5BDF, - 2445: 0x62F6, - 2446: 0x64AE, - 2447: 0x64E6, - 2448: 0x672D, - 2449: 0x6BBA, - 2450: 0x85A9, - 2451: 0x96D1, - 2452: 0x7690, - 2453: 0x9BD6, - 2454: 0x634C, - 2455: 0x9306, - 2456: 0x9BAB, - 2457: 0x76BF, - 2458: 0x6652, - 2459: 0x4E09, - 2460: 0x5098, - 2461: 0x53C2, - 2462: 0x5C71, - 2463: 0x60E8, - 2464: 0x6492, - 2465: 0x6563, - 2466: 0x685F, - 2467: 0x71E6, - 2468: 0x73CA, - 2469: 0x7523, - 2470: 0x7B97, - 2471: 0x7E82, - 2472: 0x8695, - 2473: 0x8B83, - 2474: 0x8CDB, - 2475: 0x9178, - 2476: 0x9910, - 2477: 0x65AC, - 2478: 0x66AB, - 2479: 0x6B8B, - 2480: 0x4ED5, - 2481: 0x4ED4, - 2482: 0x4F3A, - 2483: 0x4F7F, - 2484: 0x523A, - 2485: 0x53F8, - 2486: 0x53F2, - 2487: 0x55E3, - 2488: 0x56DB, - 2489: 0x58EB, - 2490: 0x59CB, - 2491: 0x59C9, - 2492: 0x59FF, - 2493: 0x5B50, - 2494: 0x5C4D, - 2495: 0x5E02, - 2496: 0x5E2B, - 2497: 0x5FD7, - 2498: 0x601D, - 2499: 0x6307, - 2500: 0x652F, - 2501: 0x5B5C, - 2502: 0x65AF, - 2503: 0x65BD, - 2504: 0x65E8, - 2505: 0x679D, - 2506: 0x6B62, - 2507: 0x6B7B, - 2508: 0x6C0F, - 2509: 0x7345, - 2510: 0x7949, - 2511: 0x79C1, - 2512: 0x7CF8, - 2513: 0x7D19, - 2514: 0x7D2B, - 2515: 0x80A2, - 2516: 0x8102, - 2517: 0x81F3, - 2518: 0x8996, - 2519: 0x8A5E, - 2520: 0x8A69, - 2521: 0x8A66, - 2522: 0x8A8C, - 2523: 0x8AEE, - 2524: 0x8CC7, - 2525: 0x8CDC, - 2526: 0x96CC, - 2527: 0x98FC, - 2528: 0x6B6F, - 2529: 0x4E8B, - 2530: 0x4F3C, - 2531: 0x4F8D, - 2532: 0x5150, - 2533: 0x5B57, - 2534: 0x5BFA, - 2535: 0x6148, - 2536: 0x6301, - 2537: 0x6642, - 2538: 0x6B21, - 2539: 0x6ECB, - 2540: 0x6CBB, - 2541: 0x723E, - 2542: 0x74BD, - 2543: 0x75D4, - 2544: 0x78C1, - 2545: 0x793A, - 2546: 0x800C, - 2547: 0x8033, - 2548: 0x81EA, - 2549: 0x8494, - 2550: 0x8F9E, - 2551: 0x6C50, - 2552: 0x9E7F, - 2553: 0x5F0F, - 2554: 0x8B58, - 2555: 0x9D2B, - 2556: 0x7AFA, - 2557: 0x8EF8, - 2558: 0x5B8D, - 2559: 0x96EB, - 2560: 0x4E03, - 2561: 0x53F1, - 2562: 0x57F7, - 2563: 0x5931, - 2564: 0x5AC9, - 2565: 0x5BA4, - 2566: 0x6089, - 2567: 0x6E7F, - 2568: 0x6F06, - 2569: 0x75BE, - 2570: 0x8CEA, - 2571: 0x5B9F, - 2572: 0x8500, - 2573: 0x7BE0, - 2574: 0x5072, - 2575: 0x67F4, - 2576: 0x829D, - 2577: 0x5C61, - 2578: 0x854A, - 2579: 0x7E1E, - 2580: 0x820E, - 2581: 0x5199, - 2582: 0x5C04, - 2583: 0x6368, - 2584: 0x8D66, - 2585: 0x659C, - 2586: 0x716E, - 2587: 0x793E, - 2588: 0x7D17, - 2589: 0x8005, - 2590: 0x8B1D, - 2591: 0x8ECA, - 2592: 0x906E, - 2593: 0x86C7, - 2594: 0x90AA, - 2595: 0x501F, - 2596: 0x52FA, - 2597: 0x5C3A, - 2598: 0x6753, - 2599: 0x707C, - 2600: 0x7235, - 2601: 0x914C, - 2602: 0x91C8, - 2603: 0x932B, - 2604: 0x82E5, - 2605: 0x5BC2, - 2606: 0x5F31, - 2607: 0x60F9, - 2608: 0x4E3B, - 2609: 0x53D6, - 2610: 0x5B88, - 2611: 0x624B, - 2612: 0x6731, - 2613: 0x6B8A, - 2614: 0x72E9, - 2615: 0x73E0, - 2616: 0x7A2E, - 2617: 0x816B, - 2618: 0x8DA3, - 2619: 0x9152, - 2620: 0x9996, - 2621: 0x5112, - 2622: 0x53D7, - 2623: 0x546A, - 2624: 0x5BFF, - 2625: 0x6388, - 2626: 0x6A39, - 2627: 0x7DAC, - 2628: 0x9700, - 2629: 0x56DA, - 2630: 0x53CE, - 2631: 0x5468, - 2632: 0x5B97, - 2633: 0x5C31, - 2634: 0x5DDE, - 2635: 0x4FEE, - 2636: 0x6101, - 2637: 0x62FE, - 2638: 0x6D32, - 2639: 0x79C0, - 2640: 0x79CB, - 2641: 0x7D42, - 2642: 0x7E4D, - 2643: 0x7FD2, - 2644: 0x81ED, - 2645: 0x821F, - 2646: 0x8490, - 2647: 0x8846, - 2648: 0x8972, - 2649: 0x8B90, - 2650: 0x8E74, - 2651: 0x8F2F, - 2652: 0x9031, - 2653: 0x914B, - 2654: 0x916C, - 2655: 0x96C6, - 2656: 0x919C, - 2657: 0x4EC0, - 2658: 0x4F4F, - 2659: 0x5145, - 2660: 0x5341, - 2661: 0x5F93, - 2662: 0x620E, - 2663: 0x67D4, - 2664: 0x6C41, - 2665: 0x6E0B, - 2666: 0x7363, - 2667: 0x7E26, - 2668: 0x91CD, - 2669: 0x9283, - 2670: 0x53D4, - 2671: 0x5919, - 2672: 0x5BBF, - 2673: 0x6DD1, - 2674: 0x795D, - 2675: 0x7E2E, - 2676: 0x7C9B, - 2677: 0x587E, - 2678: 0x719F, - 2679: 0x51FA, - 2680: 0x8853, - 2681: 0x8FF0, - 2682: 0x4FCA, - 2683: 0x5CFB, - 2684: 0x6625, - 2685: 0x77AC, - 2686: 0x7AE3, - 2687: 0x821C, - 2688: 0x99FF, - 2689: 0x51C6, - 2690: 0x5FAA, - 2691: 0x65EC, - 2692: 0x696F, - 2693: 0x6B89, - 2694: 0x6DF3, - 2695: 0x6E96, - 2696: 0x6F64, - 2697: 0x76FE, - 2698: 0x7D14, - 2699: 0x5DE1, - 2700: 0x9075, - 2701: 0x9187, - 2702: 0x9806, - 2703: 0x51E6, - 2704: 0x521D, - 2705: 0x6240, - 2706: 0x6691, - 2707: 0x66D9, - 2708: 0x6E1A, - 2709: 0x5EB6, - 2710: 0x7DD2, - 2711: 0x7F72, - 2712: 0x66F8, - 2713: 0x85AF, - 2714: 0x85F7, - 2715: 0x8AF8, - 2716: 0x52A9, - 2717: 0x53D9, - 2718: 0x5973, - 2719: 0x5E8F, - 2720: 0x5F90, - 2721: 0x6055, - 2722: 0x92E4, - 2723: 0x9664, - 2724: 0x50B7, - 2725: 0x511F, - 2726: 0x52DD, - 2727: 0x5320, - 2728: 0x5347, - 2729: 0x53EC, - 2730: 0x54E8, - 2731: 0x5546, - 2732: 0x5531, - 2733: 0x5617, - 2734: 0x5968, - 2735: 0x59BE, - 2736: 0x5A3C, - 2737: 0x5BB5, - 2738: 0x5C06, - 2739: 0x5C0F, - 2740: 0x5C11, - 2741: 0x5C1A, - 2742: 0x5E84, - 2743: 0x5E8A, - 2744: 0x5EE0, - 2745: 0x5F70, - 2746: 0x627F, - 2747: 0x6284, - 2748: 0x62DB, - 2749: 0x638C, - 2750: 0x6377, - 2751: 0x6607, - 2752: 0x660C, - 2753: 0x662D, - 2754: 0x6676, - 2755: 0x677E, - 2756: 0x68A2, - 2757: 0x6A1F, - 2758: 0x6A35, - 2759: 0x6CBC, - 2760: 0x6D88, - 2761: 0x6E09, - 2762: 0x6E58, - 2763: 0x713C, - 2764: 0x7126, - 2765: 0x7167, - 2766: 0x75C7, - 2767: 0x7701, - 2768: 0x785D, - 2769: 0x7901, - 2770: 0x7965, - 2771: 0x79F0, - 2772: 0x7AE0, - 2773: 0x7B11, - 2774: 0x7CA7, - 2775: 0x7D39, - 2776: 0x8096, - 2777: 0x83D6, - 2778: 0x848B, - 2779: 0x8549, - 2780: 0x885D, - 2781: 0x88F3, - 2782: 0x8A1F, - 2783: 0x8A3C, - 2784: 0x8A54, - 2785: 0x8A73, - 2786: 0x8C61, - 2787: 0x8CDE, - 2788: 0x91A4, - 2789: 0x9266, - 2790: 0x937E, - 2791: 0x9418, - 2792: 0x969C, - 2793: 0x9798, - 2794: 0x4E0A, - 2795: 0x4E08, - 2796: 0x4E1E, - 2797: 0x4E57, - 2798: 0x5197, - 2799: 0x5270, - 2800: 0x57CE, - 2801: 0x5834, - 2802: 0x58CC, - 2803: 0x5B22, - 2804: 0x5E38, - 2805: 0x60C5, - 2806: 0x64FE, - 2807: 0x6761, - 2808: 0x6756, - 2809: 0x6D44, - 2810: 0x72B6, - 2811: 0x7573, - 2812: 0x7A63, - 2813: 0x84B8, - 2814: 0x8B72, - 2815: 0x91B8, - 2816: 0x9320, - 2817: 0x5631, - 2818: 0x57F4, - 2819: 0x98FE, - 2820: 0x62ED, - 2821: 0x690D, - 2822: 0x6B96, - 2823: 0x71ED, - 2824: 0x7E54, - 2825: 0x8077, - 2826: 0x8272, - 2827: 0x89E6, - 2828: 0x98DF, - 2829: 0x8755, - 2830: 0x8FB1, - 2831: 0x5C3B, - 2832: 0x4F38, - 2833: 0x4FE1, - 2834: 0x4FB5, - 2835: 0x5507, - 2836: 0x5A20, - 2837: 0x5BDD, - 2838: 0x5BE9, - 2839: 0x5FC3, - 2840: 0x614E, - 2841: 0x632F, - 2842: 0x65B0, - 2843: 0x664B, - 2844: 0x68EE, - 2845: 0x699B, - 2846: 0x6D78, - 2847: 0x6DF1, - 2848: 0x7533, - 2849: 0x75B9, - 2850: 0x771F, - 2851: 0x795E, - 2852: 0x79E6, - 2853: 0x7D33, - 2854: 0x81E3, - 2855: 0x82AF, - 2856: 0x85AA, - 2857: 0x89AA, - 2858: 0x8A3A, - 2859: 0x8EAB, - 2860: 0x8F9B, - 2861: 0x9032, - 2862: 0x91DD, - 2863: 0x9707, - 2864: 0x4EBA, - 2865: 0x4EC1, - 2866: 0x5203, - 2867: 0x5875, - 2868: 0x58EC, - 2869: 0x5C0B, - 2870: 0x751A, - 2871: 0x5C3D, - 2872: 0x814E, - 2873: 0x8A0A, - 2874: 0x8FC5, - 2875: 0x9663, - 2876: 0x976D, - 2877: 0x7B25, - 2878: 0x8ACF, - 2879: 0x9808, - 2880: 0x9162, - 2881: 0x56F3, - 2882: 0x53A8, - 2883: 0x9017, - 2884: 0x5439, - 2885: 0x5782, - 2886: 0x5E25, - 2887: 0x63A8, - 2888: 0x6C34, - 2889: 0x708A, - 2890: 0x7761, - 2891: 0x7C8B, - 2892: 0x7FE0, - 2893: 0x8870, - 2894: 0x9042, - 2895: 0x9154, - 2896: 0x9310, - 2897: 0x9318, - 2898: 0x968F, - 2899: 0x745E, - 2900: 0x9AC4, - 2901: 0x5D07, - 2902: 0x5D69, - 2903: 0x6570, - 2904: 0x67A2, - 2905: 0x8DA8, - 2906: 0x96DB, - 2907: 0x636E, - 2908: 0x6749, - 2909: 0x6919, - 2910: 0x83C5, - 2911: 0x9817, - 2912: 0x96C0, - 2913: 0x88FE, - 2914: 0x6F84, - 2915: 0x647A, - 2916: 0x5BF8, - 2917: 0x4E16, - 2918: 0x702C, - 2919: 0x755D, - 2920: 0x662F, - 2921: 0x51C4, - 2922: 0x5236, - 2923: 0x52E2, - 2924: 0x59D3, - 2925: 0x5F81, - 2926: 0x6027, - 2927: 0x6210, - 2928: 0x653F, - 2929: 0x6574, - 2930: 0x661F, - 2931: 0x6674, - 2932: 0x68F2, - 2933: 0x6816, - 2934: 0x6B63, - 2935: 0x6E05, - 2936: 0x7272, - 2937: 0x751F, - 2938: 0x76DB, - 2939: 0x7CBE, - 2940: 0x8056, - 2941: 0x58F0, - 2942: 0x88FD, - 2943: 0x897F, - 2944: 0x8AA0, - 2945: 0x8A93, - 2946: 0x8ACB, - 2947: 0x901D, - 2948: 0x9192, - 2949: 0x9752, - 2950: 0x9759, - 2951: 0x6589, - 2952: 0x7A0E, - 2953: 0x8106, - 2954: 0x96BB, - 2955: 0x5E2D, - 2956: 0x60DC, - 2957: 0x621A, - 2958: 0x65A5, - 2959: 0x6614, - 2960: 0x6790, - 2961: 0x77F3, - 2962: 0x7A4D, - 2963: 0x7C4D, - 2964: 0x7E3E, - 2965: 0x810A, - 2966: 0x8CAC, - 2967: 0x8D64, - 2968: 0x8DE1, - 2969: 0x8E5F, - 2970: 0x78A9, - 2971: 0x5207, - 2972: 0x62D9, - 2973: 0x63A5, - 2974: 0x6442, - 2975: 0x6298, - 2976: 0x8A2D, - 2977: 0x7A83, - 2978: 0x7BC0, - 2979: 0x8AAC, - 2980: 0x96EA, - 2981: 0x7D76, - 2982: 0x820C, - 2983: 0x8749, - 2984: 0x4ED9, - 2985: 0x5148, - 2986: 0x5343, - 2987: 0x5360, - 2988: 0x5BA3, - 2989: 0x5C02, - 2990: 0x5C16, - 2991: 0x5DDD, - 2992: 0x6226, - 2993: 0x6247, - 2994: 0x64B0, - 2995: 0x6813, - 2996: 0x6834, - 2997: 0x6CC9, - 2998: 0x6D45, - 2999: 0x6D17, - 3000: 0x67D3, - 3001: 0x6F5C, - 3002: 0x714E, - 3003: 0x717D, - 3004: 0x65CB, - 3005: 0x7A7F, - 3006: 0x7BAD, - 3007: 0x7DDA, - 3008: 0x7E4A, - 3009: 0x7FA8, - 3010: 0x817A, - 3011: 0x821B, - 3012: 0x8239, - 3013: 0x85A6, - 3014: 0x8A6E, - 3015: 0x8CCE, - 3016: 0x8DF5, - 3017: 0x9078, - 3018: 0x9077, - 3019: 0x92AD, - 3020: 0x9291, - 3021: 0x9583, - 3022: 0x9BAE, - 3023: 0x524D, - 3024: 0x5584, - 3025: 0x6F38, - 3026: 0x7136, - 3027: 0x5168, - 3028: 0x7985, - 3029: 0x7E55, - 3030: 0x81B3, - 3031: 0x7CCE, - 3032: 0x564C, - 3033: 0x5851, - 3034: 0x5CA8, - 3035: 0x63AA, - 3036: 0x66FE, - 3037: 0x66FD, - 3038: 0x695A, - 3039: 0x72D9, - 3040: 0x758F, - 3041: 0x758E, - 3042: 0x790E, - 3043: 0x7956, - 3044: 0x79DF, - 3045: 0x7C97, - 3046: 0x7D20, - 3047: 0x7D44, - 3048: 0x8607, - 3049: 0x8A34, - 3050: 0x963B, - 3051: 0x9061, - 3052: 0x9F20, - 3053: 0x50E7, - 3054: 0x5275, - 3055: 0x53CC, - 3056: 0x53E2, - 3057: 0x5009, - 3058: 0x55AA, - 3059: 0x58EE, - 3060: 0x594F, - 3061: 0x723D, - 3062: 0x5B8B, - 3063: 0x5C64, - 3064: 0x531D, - 3065: 0x60E3, - 3066: 0x60F3, - 3067: 0x635C, - 3068: 0x6383, - 3069: 0x633F, - 3070: 0x63BB, - 3071: 0x64CD, - 3072: 0x65E9, - 3073: 0x66F9, - 3074: 0x5DE3, - 3075: 0x69CD, - 3076: 0x69FD, - 3077: 0x6F15, - 3078: 0x71E5, - 3079: 0x4E89, - 3080: 0x75E9, - 3081: 0x76F8, - 3082: 0x7A93, - 3083: 0x7CDF, - 3084: 0x7DCF, - 3085: 0x7D9C, - 3086: 0x8061, - 3087: 0x8349, - 3088: 0x8358, - 3089: 0x846C, - 3090: 0x84BC, - 3091: 0x85FB, - 3092: 0x88C5, - 3093: 0x8D70, - 3094: 0x9001, - 3095: 0x906D, - 3096: 0x9397, - 3097: 0x971C, - 3098: 0x9A12, - 3099: 0x50CF, - 3100: 0x5897, - 3101: 0x618E, - 3102: 0x81D3, - 3103: 0x8535, - 3104: 0x8D08, - 3105: 0x9020, - 3106: 0x4FC3, - 3107: 0x5074, - 3108: 0x5247, - 3109: 0x5373, - 3110: 0x606F, - 3111: 0x6349, - 3112: 0x675F, - 3113: 0x6E2C, - 3114: 0x8DB3, - 3115: 0x901F, - 3116: 0x4FD7, - 3117: 0x5C5E, - 3118: 0x8CCA, - 3119: 0x65CF, - 3120: 0x7D9A, - 3121: 0x5352, - 3122: 0x8896, - 3123: 0x5176, - 3124: 0x63C3, - 3125: 0x5B58, - 3126: 0x5B6B, - 3127: 0x5C0A, - 3128: 0x640D, - 3129: 0x6751, - 3130: 0x905C, - 3131: 0x4ED6, - 3132: 0x591A, - 3133: 0x592A, - 3134: 0x6C70, - 3135: 0x8A51, - 3136: 0x553E, - 3137: 0x5815, - 3138: 0x59A5, - 3139: 0x60F0, - 3140: 0x6253, - 3141: 0x67C1, - 3142: 0x8235, - 3143: 0x6955, - 3144: 0x9640, - 3145: 0x99C4, - 3146: 0x9A28, - 3147: 0x4F53, - 3148: 0x5806, - 3149: 0x5BFE, - 3150: 0x8010, - 3151: 0x5CB1, - 3152: 0x5E2F, - 3153: 0x5F85, - 3154: 0x6020, - 3155: 0x614B, - 3156: 0x6234, - 3157: 0x66FF, - 3158: 0x6CF0, - 3159: 0x6EDE, - 3160: 0x80CE, - 3161: 0x817F, - 3162: 0x82D4, - 3163: 0x888B, - 3164: 0x8CB8, - 3165: 0x9000, - 3166: 0x902E, - 3167: 0x968A, - 3168: 0x9EDB, - 3169: 0x9BDB, - 3170: 0x4EE3, - 3171: 0x53F0, - 3172: 0x5927, - 3173: 0x7B2C, - 3174: 0x918D, - 3175: 0x984C, - 3176: 0x9DF9, - 3177: 0x6EDD, - 3178: 0x7027, - 3179: 0x5353, - 3180: 0x5544, - 3181: 0x5B85, - 3182: 0x6258, - 3183: 0x629E, - 3184: 0x62D3, - 3185: 0x6CA2, - 3186: 0x6FEF, - 3187: 0x7422, - 3188: 0x8A17, - 3189: 0x9438, - 3190: 0x6FC1, - 3191: 0x8AFE, - 3192: 0x8338, - 3193: 0x51E7, - 3194: 0x86F8, - 3195: 0x53EA, - 3196: 0x53E9, - 3197: 0x4F46, - 3198: 0x9054, - 3199: 0x8FB0, - 3200: 0x596A, - 3201: 0x8131, - 3202: 0x5DFD, - 3203: 0x7AEA, - 3204: 0x8FBF, - 3205: 0x68DA, - 3206: 0x8C37, - 3207: 0x72F8, - 3208: 0x9C48, - 3209: 0x6A3D, - 3210: 0x8AB0, - 3211: 0x4E39, - 3212: 0x5358, - 3213: 0x5606, - 3214: 0x5766, - 3215: 0x62C5, - 3216: 0x63A2, - 3217: 0x65E6, - 3218: 0x6B4E, - 3219: 0x6DE1, - 3220: 0x6E5B, - 3221: 0x70AD, - 3222: 0x77ED, - 3223: 0x7AEF, - 3224: 0x7BAA, - 3225: 0x7DBB, - 3226: 0x803D, - 3227: 0x80C6, - 3228: 0x86CB, - 3229: 0x8A95, - 3230: 0x935B, - 3231: 0x56E3, - 3232: 0x58C7, - 3233: 0x5F3E, - 3234: 0x65AD, - 3235: 0x6696, - 3236: 0x6A80, - 3237: 0x6BB5, - 3238: 0x7537, - 3239: 0x8AC7, - 3240: 0x5024, - 3241: 0x77E5, - 3242: 0x5730, - 3243: 0x5F1B, - 3244: 0x6065, - 3245: 0x667A, - 3246: 0x6C60, - 3247: 0x75F4, - 3248: 0x7A1A, - 3249: 0x7F6E, - 3250: 0x81F4, - 3251: 0x8718, - 3252: 0x9045, - 3253: 0x99B3, - 3254: 0x7BC9, - 3255: 0x755C, - 3256: 0x7AF9, - 3257: 0x7B51, - 3258: 0x84C4, - 3259: 0x9010, - 3260: 0x79E9, - 3261: 0x7A92, - 3262: 0x8336, - 3263: 0x5AE1, - 3264: 0x7740, - 3265: 0x4E2D, - 3266: 0x4EF2, - 3267: 0x5B99, - 3268: 0x5FE0, - 3269: 0x62BD, - 3270: 0x663C, - 3271: 0x67F1, - 3272: 0x6CE8, - 3273: 0x866B, - 3274: 0x8877, - 3275: 0x8A3B, - 3276: 0x914E, - 3277: 0x92F3, - 3278: 0x99D0, - 3279: 0x6A17, - 3280: 0x7026, - 3281: 0x732A, - 3282: 0x82E7, - 3283: 0x8457, - 3284: 0x8CAF, - 3285: 0x4E01, - 3286: 0x5146, - 3287: 0x51CB, - 3288: 0x558B, - 3289: 0x5BF5, - 3290: 0x5E16, - 3291: 0x5E33, - 3292: 0x5E81, - 3293: 0x5F14, - 3294: 0x5F35, - 3295: 0x5F6B, - 3296: 0x5FB4, - 3297: 0x61F2, - 3298: 0x6311, - 3299: 0x66A2, - 3300: 0x671D, - 3301: 0x6F6E, - 3302: 0x7252, - 3303: 0x753A, - 3304: 0x773A, - 3305: 0x8074, - 3306: 0x8139, - 3307: 0x8178, - 3308: 0x8776, - 3309: 0x8ABF, - 3310: 0x8ADC, - 3311: 0x8D85, - 3312: 0x8DF3, - 3313: 0x929A, - 3314: 0x9577, - 3315: 0x9802, - 3316: 0x9CE5, - 3317: 0x52C5, - 3318: 0x6357, - 3319: 0x76F4, - 3320: 0x6715, - 3321: 0x6C88, - 3322: 0x73CD, - 3323: 0x8CC3, - 3324: 0x93AE, - 3325: 0x9673, - 3326: 0x6D25, - 3327: 0x589C, - 3328: 0x690E, - 3329: 0x69CC, - 3330: 0x8FFD, - 3331: 0x939A, - 3332: 0x75DB, - 3333: 0x901A, - 3334: 0x585A, - 3335: 0x6802, - 3336: 0x63B4, - 3337: 0x69FB, - 3338: 0x4F43, - 3339: 0x6F2C, - 3340: 0x67D8, - 3341: 0x8FBB, - 3342: 0x8526, - 3343: 0x7DB4, - 3344: 0x9354, - 3345: 0x693F, - 3346: 0x6F70, - 3347: 0x576A, - 3348: 0x58F7, - 3349: 0x5B2C, - 3350: 0x7D2C, - 3351: 0x722A, - 3352: 0x540A, - 3353: 0x91E3, - 3354: 0x9DB4, - 3355: 0x4EAD, - 3356: 0x4F4E, - 3357: 0x505C, - 3358: 0x5075, - 3359: 0x5243, - 3360: 0x8C9E, - 3361: 0x5448, - 3362: 0x5824, - 3363: 0x5B9A, - 3364: 0x5E1D, - 3365: 0x5E95, - 3366: 0x5EAD, - 3367: 0x5EF7, - 3368: 0x5F1F, - 3369: 0x608C, - 3370: 0x62B5, - 3371: 0x633A, - 3372: 0x63D0, - 3373: 0x68AF, - 3374: 0x6C40, - 3375: 0x7887, - 3376: 0x798E, - 3377: 0x7A0B, - 3378: 0x7DE0, - 3379: 0x8247, - 3380: 0x8A02, - 3381: 0x8AE6, - 3382: 0x8E44, - 3383: 0x9013, - 3384: 0x90B8, - 3385: 0x912D, - 3386: 0x91D8, - 3387: 0x9F0E, - 3388: 0x6CE5, - 3389: 0x6458, - 3390: 0x64E2, - 3391: 0x6575, - 3392: 0x6EF4, - 3393: 0x7684, - 3394: 0x7B1B, - 3395: 0x9069, - 3396: 0x93D1, - 3397: 0x6EBA, - 3398: 0x54F2, - 3399: 0x5FB9, - 3400: 0x64A4, - 3401: 0x8F4D, - 3402: 0x8FED, - 3403: 0x9244, - 3404: 0x5178, - 3405: 0x586B, - 3406: 0x5929, - 3407: 0x5C55, - 3408: 0x5E97, - 3409: 0x6DFB, - 3410: 0x7E8F, - 3411: 0x751C, - 3412: 0x8CBC, - 3413: 0x8EE2, - 3414: 0x985B, - 3415: 0x70B9, - 3416: 0x4F1D, - 3417: 0x6BBF, - 3418: 0x6FB1, - 3419: 0x7530, - 3420: 0x96FB, - 3421: 0x514E, - 3422: 0x5410, - 3423: 0x5835, - 3424: 0x5857, - 3425: 0x59AC, - 3426: 0x5C60, - 3427: 0x5F92, - 3428: 0x6597, - 3429: 0x675C, - 3430: 0x6E21, - 3431: 0x767B, - 3432: 0x83DF, - 3433: 0x8CED, - 3434: 0x9014, - 3435: 0x90FD, - 3436: 0x934D, - 3437: 0x7825, - 3438: 0x783A, - 3439: 0x52AA, - 3440: 0x5EA6, - 3441: 0x571F, - 3442: 0x5974, - 3443: 0x6012, - 3444: 0x5012, - 3445: 0x515A, - 3446: 0x51AC, - 3447: 0x51CD, - 3448: 0x5200, - 3449: 0x5510, - 3450: 0x5854, - 3451: 0x5858, - 3452: 0x5957, - 3453: 0x5B95, - 3454: 0x5CF6, - 3455: 0x5D8B, - 3456: 0x60BC, - 3457: 0x6295, - 3458: 0x642D, - 3459: 0x6771, - 3460: 0x6843, - 3461: 0x68BC, - 3462: 0x68DF, - 3463: 0x76D7, - 3464: 0x6DD8, - 3465: 0x6E6F, - 3466: 0x6D9B, - 3467: 0x706F, - 3468: 0x71C8, - 3469: 0x5F53, - 3470: 0x75D8, - 3471: 0x7977, - 3472: 0x7B49, - 3473: 0x7B54, - 3474: 0x7B52, - 3475: 0x7CD6, - 3476: 0x7D71, - 3477: 0x5230, - 3478: 0x8463, - 3479: 0x8569, - 3480: 0x85E4, - 3481: 0x8A0E, - 3482: 0x8B04, - 3483: 0x8C46, - 3484: 0x8E0F, - 3485: 0x9003, - 3486: 0x900F, - 3487: 0x9419, - 3488: 0x9676, - 3489: 0x982D, - 3490: 0x9A30, - 3491: 0x95D8, - 3492: 0x50CD, - 3493: 0x52D5, - 3494: 0x540C, - 3495: 0x5802, - 3496: 0x5C0E, - 3497: 0x61A7, - 3498: 0x649E, - 3499: 0x6D1E, - 3500: 0x77B3, - 3501: 0x7AE5, - 3502: 0x80F4, - 3503: 0x8404, - 3504: 0x9053, - 3505: 0x9285, - 3506: 0x5CE0, - 3507: 0x9D07, - 3508: 0x533F, - 3509: 0x5F97, - 3510: 0x5FB3, - 3511: 0x6D9C, - 3512: 0x7279, - 3513: 0x7763, - 3514: 0x79BF, - 3515: 0x7BE4, - 3516: 0x6BD2, - 3517: 0x72EC, - 3518: 0x8AAD, - 3519: 0x6803, - 3520: 0x6A61, - 3521: 0x51F8, - 3522: 0x7A81, - 3523: 0x6934, - 3524: 0x5C4A, - 3525: 0x9CF6, - 3526: 0x82EB, - 3527: 0x5BC5, - 3528: 0x9149, - 3529: 0x701E, - 3530: 0x5678, - 3531: 0x5C6F, - 3532: 0x60C7, - 3533: 0x6566, - 3534: 0x6C8C, - 3535: 0x8C5A, - 3536: 0x9041, - 3537: 0x9813, - 3538: 0x5451, - 3539: 0x66C7, - 3540: 0x920D, - 3541: 0x5948, - 3542: 0x90A3, - 3543: 0x5185, - 3544: 0x4E4D, - 3545: 0x51EA, - 3546: 0x8599, - 3547: 0x8B0E, - 3548: 0x7058, - 3549: 0x637A, - 3550: 0x934B, - 3551: 0x6962, - 3552: 0x99B4, - 3553: 0x7E04, - 3554: 0x7577, - 3555: 0x5357, - 3556: 0x6960, - 3557: 0x8EDF, - 3558: 0x96E3, - 3559: 0x6C5D, - 3560: 0x4E8C, - 3561: 0x5C3C, - 3562: 0x5F10, - 3563: 0x8FE9, - 3564: 0x5302, - 3565: 0x8CD1, - 3566: 0x8089, - 3567: 0x8679, - 3568: 0x5EFF, - 3569: 0x65E5, - 3570: 0x4E73, - 3571: 0x5165, - 3572: 0x5982, - 3573: 0x5C3F, - 3574: 0x97EE, - 3575: 0x4EFB, - 3576: 0x598A, - 3577: 0x5FCD, - 3578: 0x8A8D, - 3579: 0x6FE1, - 3580: 0x79B0, - 3581: 0x7962, - 3582: 0x5BE7, - 3583: 0x8471, - 3584: 0x732B, - 3585: 0x71B1, - 3586: 0x5E74, - 3587: 0x5FF5, - 3588: 0x637B, - 3589: 0x649A, - 3590: 0x71C3, - 3591: 0x7C98, - 3592: 0x4E43, - 3593: 0x5EFC, - 3594: 0x4E4B, - 3595: 0x57DC, - 3596: 0x56A2, - 3597: 0x60A9, - 3598: 0x6FC3, - 3599: 0x7D0D, - 3600: 0x80FD, - 3601: 0x8133, - 3602: 0x81BF, - 3603: 0x8FB2, - 3604: 0x8997, - 3605: 0x86A4, - 3606: 0x5DF4, - 3607: 0x628A, - 3608: 0x64AD, - 3609: 0x8987, - 3610: 0x6777, - 3611: 0x6CE2, - 3612: 0x6D3E, - 3613: 0x7436, - 3614: 0x7834, - 3615: 0x5A46, - 3616: 0x7F75, - 3617: 0x82AD, - 3618: 0x99AC, - 3619: 0x4FF3, - 3620: 0x5EC3, - 3621: 0x62DD, - 3622: 0x6392, - 3623: 0x6557, - 3624: 0x676F, - 3625: 0x76C3, - 3626: 0x724C, - 3627: 0x80CC, - 3628: 0x80BA, - 3629: 0x8F29, - 3630: 0x914D, - 3631: 0x500D, - 3632: 0x57F9, - 3633: 0x5A92, - 3634: 0x6885, - 3635: 0x6973, - 3636: 0x7164, - 3637: 0x72FD, - 3638: 0x8CB7, - 3639: 0x58F2, - 3640: 0x8CE0, - 3641: 0x966A, - 3642: 0x9019, - 3643: 0x877F, - 3644: 0x79E4, - 3645: 0x77E7, - 3646: 0x8429, - 3647: 0x4F2F, - 3648: 0x5265, - 3649: 0x535A, - 3650: 0x62CD, - 3651: 0x67CF, - 3652: 0x6CCA, - 3653: 0x767D, - 3654: 0x7B94, - 3655: 0x7C95, - 3656: 0x8236, - 3657: 0x8584, - 3658: 0x8FEB, - 3659: 0x66DD, - 3660: 0x6F20, - 3661: 0x7206, - 3662: 0x7E1B, - 3663: 0x83AB, - 3664: 0x99C1, - 3665: 0x9EA6, - 3666: 0x51FD, - 3667: 0x7BB1, - 3668: 0x7872, - 3669: 0x7BB8, - 3670: 0x8087, - 3671: 0x7B48, - 3672: 0x6AE8, - 3673: 0x5E61, - 3674: 0x808C, - 3675: 0x7551, - 3676: 0x7560, - 3677: 0x516B, - 3678: 0x9262, - 3679: 0x6E8C, - 3680: 0x767A, - 3681: 0x9197, - 3682: 0x9AEA, - 3683: 0x4F10, - 3684: 0x7F70, - 3685: 0x629C, - 3686: 0x7B4F, - 3687: 0x95A5, - 3688: 0x9CE9, - 3689: 0x567A, - 3690: 0x5859, - 3691: 0x86E4, - 3692: 0x96BC, - 3693: 0x4F34, - 3694: 0x5224, - 3695: 0x534A, - 3696: 0x53CD, - 3697: 0x53DB, - 3698: 0x5E06, - 3699: 0x642C, - 3700: 0x6591, - 3701: 0x677F, - 3702: 0x6C3E, - 3703: 0x6C4E, - 3704: 0x7248, - 3705: 0x72AF, - 3706: 0x73ED, - 3707: 0x7554, - 3708: 0x7E41, - 3709: 0x822C, - 3710: 0x85E9, - 3711: 0x8CA9, - 3712: 0x7BC4, - 3713: 0x91C6, - 3714: 0x7169, - 3715: 0x9812, - 3716: 0x98EF, - 3717: 0x633D, - 3718: 0x6669, - 3719: 0x756A, - 3720: 0x76E4, - 3721: 0x78D0, - 3722: 0x8543, - 3723: 0x86EE, - 3724: 0x532A, - 3725: 0x5351, - 3726: 0x5426, - 3727: 0x5983, - 3728: 0x5E87, - 3729: 0x5F7C, - 3730: 0x60B2, - 3731: 0x6249, - 3732: 0x6279, - 3733: 0x62AB, - 3734: 0x6590, - 3735: 0x6BD4, - 3736: 0x6CCC, - 3737: 0x75B2, - 3738: 0x76AE, - 3739: 0x7891, - 3740: 0x79D8, - 3741: 0x7DCB, - 3742: 0x7F77, - 3743: 0x80A5, - 3744: 0x88AB, - 3745: 0x8AB9, - 3746: 0x8CBB, - 3747: 0x907F, - 3748: 0x975E, - 3749: 0x98DB, - 3750: 0x6A0B, - 3751: 0x7C38, - 3752: 0x5099, - 3753: 0x5C3E, - 3754: 0x5FAE, - 3755: 0x6787, - 3756: 0x6BD8, - 3757: 0x7435, - 3758: 0x7709, - 3759: 0x7F8E, - 3760: 0x9F3B, - 3761: 0x67CA, - 3762: 0x7A17, - 3763: 0x5339, - 3764: 0x758B, - 3765: 0x9AED, - 3766: 0x5F66, - 3767: 0x819D, - 3768: 0x83F1, - 3769: 0x8098, - 3770: 0x5F3C, - 3771: 0x5FC5, - 3772: 0x7562, - 3773: 0x7B46, - 3774: 0x903C, - 3775: 0x6867, - 3776: 0x59EB, - 3777: 0x5A9B, - 3778: 0x7D10, - 3779: 0x767E, - 3780: 0x8B2C, - 3781: 0x4FF5, - 3782: 0x5F6A, - 3783: 0x6A19, - 3784: 0x6C37, - 3785: 0x6F02, - 3786: 0x74E2, - 3787: 0x7968, - 3788: 0x8868, - 3789: 0x8A55, - 3790: 0x8C79, - 3791: 0x5EDF, - 3792: 0x63CF, - 3793: 0x75C5, - 3794: 0x79D2, - 3795: 0x82D7, - 3796: 0x9328, - 3797: 0x92F2, - 3798: 0x849C, - 3799: 0x86ED, - 3800: 0x9C2D, - 3801: 0x54C1, - 3802: 0x5F6C, - 3803: 0x658C, - 3804: 0x6D5C, - 3805: 0x7015, - 3806: 0x8CA7, - 3807: 0x8CD3, - 3808: 0x983B, - 3809: 0x654F, - 3810: 0x74F6, - 3811: 0x4E0D, - 3812: 0x4ED8, - 3813: 0x57E0, - 3814: 0x592B, - 3815: 0x5A66, - 3816: 0x5BCC, - 3817: 0x51A8, - 3818: 0x5E03, - 3819: 0x5E9C, - 3820: 0x6016, - 3821: 0x6276, - 3822: 0x6577, - 3823: 0x65A7, - 3824: 0x666E, - 3825: 0x6D6E, - 3826: 0x7236, - 3827: 0x7B26, - 3828: 0x8150, - 3829: 0x819A, - 3830: 0x8299, - 3831: 0x8B5C, - 3832: 0x8CA0, - 3833: 0x8CE6, - 3834: 0x8D74, - 3835: 0x961C, - 3836: 0x9644, - 3837: 0x4FAE, - 3838: 0x64AB, - 3839: 0x6B66, - 3840: 0x821E, - 3841: 0x8461, - 3842: 0x856A, - 3843: 0x90E8, - 3844: 0x5C01, - 3845: 0x6953, - 3846: 0x98A8, - 3847: 0x847A, - 3848: 0x8557, - 3849: 0x4F0F, - 3850: 0x526F, - 3851: 0x5FA9, - 3852: 0x5E45, - 3853: 0x670D, - 3854: 0x798F, - 3855: 0x8179, - 3856: 0x8907, - 3857: 0x8986, - 3858: 0x6DF5, - 3859: 0x5F17, - 3860: 0x6255, - 3861: 0x6CB8, - 3862: 0x4ECF, - 3863: 0x7269, - 3864: 0x9B92, - 3865: 0x5206, - 3866: 0x543B, - 3867: 0x5674, - 3868: 0x58B3, - 3869: 0x61A4, - 3870: 0x626E, - 3871: 0x711A, - 3872: 0x596E, - 3873: 0x7C89, - 3874: 0x7CDE, - 3875: 0x7D1B, - 3876: 0x96F0, - 3877: 0x6587, - 3878: 0x805E, - 3879: 0x4E19, - 3880: 0x4F75, - 3881: 0x5175, - 3882: 0x5840, - 3883: 0x5E63, - 3884: 0x5E73, - 3885: 0x5F0A, - 3886: 0x67C4, - 3887: 0x4E26, - 3888: 0x853D, - 3889: 0x9589, - 3890: 0x965B, - 3891: 0x7C73, - 3892: 0x9801, - 3893: 0x50FB, - 3894: 0x58C1, - 3895: 0x7656, - 3896: 0x78A7, - 3897: 0x5225, - 3898: 0x77A5, - 3899: 0x8511, - 3900: 0x7B86, - 3901: 0x504F, - 3902: 0x5909, - 3903: 0x7247, - 3904: 0x7BC7, - 3905: 0x7DE8, - 3906: 0x8FBA, - 3907: 0x8FD4, - 3908: 0x904D, - 3909: 0x4FBF, - 3910: 0x52C9, - 3911: 0x5A29, - 3912: 0x5F01, - 3913: 0x97AD, - 3914: 0x4FDD, - 3915: 0x8217, - 3916: 0x92EA, - 3917: 0x5703, - 3918: 0x6355, - 3919: 0x6B69, - 3920: 0x752B, - 3921: 0x88DC, - 3922: 0x8F14, - 3923: 0x7A42, - 3924: 0x52DF, - 3925: 0x5893, - 3926: 0x6155, - 3927: 0x620A, - 3928: 0x66AE, - 3929: 0x6BCD, - 3930: 0x7C3F, - 3931: 0x83E9, - 3932: 0x5023, - 3933: 0x4FF8, - 3934: 0x5305, - 3935: 0x5446, - 3936: 0x5831, - 3937: 0x5949, - 3938: 0x5B9D, - 3939: 0x5CF0, - 3940: 0x5CEF, - 3941: 0x5D29, - 3942: 0x5E96, - 3943: 0x62B1, - 3944: 0x6367, - 3945: 0x653E, - 3946: 0x65B9, - 3947: 0x670B, - 3948: 0x6CD5, - 3949: 0x6CE1, - 3950: 0x70F9, - 3951: 0x7832, - 3952: 0x7E2B, - 3953: 0x80DE, - 3954: 0x82B3, - 3955: 0x840C, - 3956: 0x84EC, - 3957: 0x8702, - 3958: 0x8912, - 3959: 0x8A2A, - 3960: 0x8C4A, - 3961: 0x90A6, - 3962: 0x92D2, - 3963: 0x98FD, - 3964: 0x9CF3, - 3965: 0x9D6C, - 3966: 0x4E4F, - 3967: 0x4EA1, - 3968: 0x508D, - 3969: 0x5256, - 3970: 0x574A, - 3971: 0x59A8, - 3972: 0x5E3D, - 3973: 0x5FD8, - 3974: 0x5FD9, - 3975: 0x623F, - 3976: 0x66B4, - 3977: 0x671B, - 3978: 0x67D0, - 3979: 0x68D2, - 3980: 0x5192, - 3981: 0x7D21, - 3982: 0x80AA, - 3983: 0x81A8, - 3984: 0x8B00, - 3985: 0x8C8C, - 3986: 0x8CBF, - 3987: 0x927E, - 3988: 0x9632, - 3989: 0x5420, - 3990: 0x982C, - 3991: 0x5317, - 3992: 0x50D5, - 3993: 0x535C, - 3994: 0x58A8, - 3995: 0x64B2, - 3996: 0x6734, - 3997: 0x7267, - 3998: 0x7766, - 3999: 0x7A46, - 4000: 0x91E6, - 4001: 0x52C3, - 4002: 0x6CA1, - 4003: 0x6B86, - 4004: 0x5800, - 4005: 0x5E4C, - 4006: 0x5954, - 4007: 0x672C, - 4008: 0x7FFB, - 4009: 0x51E1, - 4010: 0x76C6, - 4011: 0x6469, - 4012: 0x78E8, - 4013: 0x9B54, - 4014: 0x9EBB, - 4015: 0x57CB, - 4016: 0x59B9, - 4017: 0x6627, - 4018: 0x679A, - 4019: 0x6BCE, - 4020: 0x54E9, - 4021: 0x69D9, - 4022: 0x5E55, - 4023: 0x819C, - 4024: 0x6795, - 4025: 0x9BAA, - 4026: 0x67FE, - 4027: 0x9C52, - 4028: 0x685D, - 4029: 0x4EA6, - 4030: 0x4FE3, - 4031: 0x53C8, - 4032: 0x62B9, - 4033: 0x672B, - 4034: 0x6CAB, - 4035: 0x8FC4, - 4036: 0x4FAD, - 4037: 0x7E6D, - 4038: 0x9EBF, - 4039: 0x4E07, - 4040: 0x6162, - 4041: 0x6E80, - 4042: 0x6F2B, - 4043: 0x8513, - 4044: 0x5473, - 4045: 0x672A, - 4046: 0x9B45, - 4047: 0x5DF3, - 4048: 0x7B95, - 4049: 0x5CAC, - 4050: 0x5BC6, - 4051: 0x871C, - 4052: 0x6E4A, - 4053: 0x84D1, - 4054: 0x7A14, - 4055: 0x8108, - 4056: 0x5999, - 4057: 0x7C8D, - 4058: 0x6C11, - 4059: 0x7720, - 4060: 0x52D9, - 4061: 0x5922, - 4062: 0x7121, - 4063: 0x725F, - 4064: 0x77DB, - 4065: 0x9727, - 4066: 0x9D61, - 4067: 0x690B, - 4068: 0x5A7F, - 4069: 0x5A18, - 4070: 0x51A5, - 4071: 0x540D, - 4072: 0x547D, - 4073: 0x660E, - 4074: 0x76DF, - 4075: 0x8FF7, - 4076: 0x9298, - 4077: 0x9CF4, - 4078: 0x59EA, - 4079: 0x725D, - 4080: 0x6EC5, - 4081: 0x514D, - 4082: 0x68C9, - 4083: 0x7DBF, - 4084: 0x7DEC, - 4085: 0x9762, - 4086: 0x9EBA, - 4087: 0x6478, - 4088: 0x6A21, - 4089: 0x8302, - 4090: 0x5984, - 4091: 0x5B5F, - 4092: 0x6BDB, - 4093: 0x731B, - 4094: 0x76F2, - 4095: 0x7DB2, - 4096: 0x8017, - 4097: 0x8499, - 4098: 0x5132, - 4099: 0x6728, - 4100: 0x9ED9, - 4101: 0x76EE, - 4102: 0x6762, - 4103: 0x52FF, - 4104: 0x9905, - 4105: 0x5C24, - 4106: 0x623B, - 4107: 0x7C7E, - 4108: 0x8CB0, - 4109: 0x554F, - 4110: 0x60B6, - 4111: 0x7D0B, - 4112: 0x9580, - 4113: 0x5301, - 4114: 0x4E5F, - 4115: 0x51B6, - 4116: 0x591C, - 4117: 0x723A, - 4118: 0x8036, - 4119: 0x91CE, - 4120: 0x5F25, - 4121: 0x77E2, - 4122: 0x5384, - 4123: 0x5F79, - 4124: 0x7D04, - 4125: 0x85AC, - 4126: 0x8A33, - 4127: 0x8E8D, - 4128: 0x9756, - 4129: 0x67F3, - 4130: 0x85AE, - 4131: 0x9453, - 4132: 0x6109, - 4133: 0x6108, - 4134: 0x6CB9, - 4135: 0x7652, - 4136: 0x8AED, - 4137: 0x8F38, - 4138: 0x552F, - 4139: 0x4F51, - 4140: 0x512A, - 4141: 0x52C7, - 4142: 0x53CB, - 4143: 0x5BA5, - 4144: 0x5E7D, - 4145: 0x60A0, - 4146: 0x6182, - 4147: 0x63D6, - 4148: 0x6709, - 4149: 0x67DA, - 4150: 0x6E67, - 4151: 0x6D8C, - 4152: 0x7336, - 4153: 0x7337, - 4154: 0x7531, - 4155: 0x7950, - 4156: 0x88D5, - 4157: 0x8A98, - 4158: 0x904A, - 4159: 0x9091, - 4160: 0x90F5, - 4161: 0x96C4, - 4162: 0x878D, - 4163: 0x5915, - 4164: 0x4E88, - 4165: 0x4F59, - 4166: 0x4E0E, - 4167: 0x8A89, - 4168: 0x8F3F, - 4169: 0x9810, - 4170: 0x50AD, - 4171: 0x5E7C, - 4172: 0x5996, - 4173: 0x5BB9, - 4174: 0x5EB8, - 4175: 0x63DA, - 4176: 0x63FA, - 4177: 0x64C1, - 4178: 0x66DC, - 4179: 0x694A, - 4180: 0x69D8, - 4181: 0x6D0B, - 4182: 0x6EB6, - 4183: 0x7194, - 4184: 0x7528, - 4185: 0x7AAF, - 4186: 0x7F8A, - 4187: 0x8000, - 4188: 0x8449, - 4189: 0x84C9, - 4190: 0x8981, - 4191: 0x8B21, - 4192: 0x8E0A, - 4193: 0x9065, - 4194: 0x967D, - 4195: 0x990A, - 4196: 0x617E, - 4197: 0x6291, - 4198: 0x6B32, - 4199: 0x6C83, - 4200: 0x6D74, - 4201: 0x7FCC, - 4202: 0x7FFC, - 4203: 0x6DC0, - 4204: 0x7F85, - 4205: 0x87BA, - 4206: 0x88F8, - 4207: 0x6765, - 4208: 0x83B1, - 4209: 0x983C, - 4210: 0x96F7, - 4211: 0x6D1B, - 4212: 0x7D61, - 4213: 0x843D, - 4214: 0x916A, - 4215: 0x4E71, - 4216: 0x5375, - 4217: 0x5D50, - 4218: 0x6B04, - 4219: 0x6FEB, - 4220: 0x85CD, - 4221: 0x862D, - 4222: 0x89A7, - 4223: 0x5229, - 4224: 0x540F, - 4225: 0x5C65, - 4226: 0x674E, - 4227: 0x68A8, - 4228: 0x7406, - 4229: 0x7483, - 4230: 0x75E2, - 4231: 0x88CF, - 4232: 0x88E1, - 4233: 0x91CC, - 4234: 0x96E2, - 4235: 0x9678, - 4236: 0x5F8B, - 4237: 0x7387, - 4238: 0x7ACB, - 4239: 0x844E, - 4240: 0x63A0, - 4241: 0x7565, - 4242: 0x5289, - 4243: 0x6D41, - 4244: 0x6E9C, - 4245: 0x7409, - 4246: 0x7559, - 4247: 0x786B, - 4248: 0x7C92, - 4249: 0x9686, - 4250: 0x7ADC, - 4251: 0x9F8D, - 4252: 0x4FB6, - 4253: 0x616E, - 4254: 0x65C5, - 4255: 0x865C, - 4256: 0x4E86, - 4257: 0x4EAE, - 4258: 0x50DA, - 4259: 0x4E21, - 4260: 0x51CC, - 4261: 0x5BEE, - 4262: 0x6599, - 4263: 0x6881, - 4264: 0x6DBC, - 4265: 0x731F, - 4266: 0x7642, - 4267: 0x77AD, - 4268: 0x7A1C, - 4269: 0x7CE7, - 4270: 0x826F, - 4271: 0x8AD2, - 4272: 0x907C, - 4273: 0x91CF, - 4274: 0x9675, - 4275: 0x9818, - 4276: 0x529B, - 4277: 0x7DD1, - 4278: 0x502B, - 4279: 0x5398, - 4280: 0x6797, - 4281: 0x6DCB, - 4282: 0x71D0, - 4283: 0x7433, - 4284: 0x81E8, - 4285: 0x8F2A, - 4286: 0x96A3, - 4287: 0x9C57, - 4288: 0x9E9F, - 4289: 0x7460, - 4290: 0x5841, - 4291: 0x6D99, - 4292: 0x7D2F, - 4293: 0x985E, - 4294: 0x4EE4, - 4295: 0x4F36, - 4296: 0x4F8B, - 4297: 0x51B7, - 4298: 0x52B1, - 4299: 0x5DBA, - 4300: 0x601C, - 4301: 0x73B2, - 4302: 0x793C, - 4303: 0x82D3, - 4304: 0x9234, - 4305: 0x96B7, - 4306: 0x96F6, - 4307: 0x970A, - 4308: 0x9E97, - 4309: 0x9F62, - 4310: 0x66A6, - 4311: 0x6B74, - 4312: 0x5217, - 4313: 0x52A3, - 4314: 0x70C8, - 4315: 0x88C2, - 4316: 0x5EC9, - 4317: 0x604B, - 4318: 0x6190, - 4319: 0x6F23, - 4320: 0x7149, - 4321: 0x7C3E, - 4322: 0x7DF4, - 4323: 0x806F, - 4324: 0x84EE, - 4325: 0x9023, - 4326: 0x932C, - 4327: 0x5442, - 4328: 0x9B6F, - 4329: 0x6AD3, - 4330: 0x7089, - 4331: 0x8CC2, - 4332: 0x8DEF, - 4333: 0x9732, - 4334: 0x52B4, - 4335: 0x5A41, - 4336: 0x5ECA, - 4337: 0x5F04, - 4338: 0x6717, - 4339: 0x697C, - 4340: 0x6994, - 4341: 0x6D6A, - 4342: 0x6F0F, - 4343: 0x7262, - 4344: 0x72FC, - 4345: 0x7BED, - 4346: 0x8001, - 4347: 0x807E, - 4348: 0x874B, - 4349: 0x90CE, - 4350: 0x516D, - 4351: 0x9E93, - 4352: 0x7984, - 4353: 0x808B, - 4354: 0x9332, - 4355: 0x8AD6, - 4356: 0x502D, - 4357: 0x548C, - 4358: 0x8A71, - 4359: 0x6B6A, - 4360: 0x8CC4, - 4361: 0x8107, - 4362: 0x60D1, - 4363: 0x67A0, - 4364: 0x9DF2, - 4365: 0x4E99, - 4366: 0x4E98, - 4367: 0x9C10, - 4368: 0x8A6B, - 4369: 0x85C1, - 4370: 0x8568, - 4371: 0x6900, - 4372: 0x6E7E, - 4373: 0x7897, - 4374: 0x8155, - 4418: 0x5F0C, - 4419: 0x4E10, - 4420: 0x4E15, - 4421: 0x4E2A, - 4422: 0x4E31, - 4423: 0x4E36, - 4424: 0x4E3C, - 4425: 0x4E3F, - 4426: 0x4E42, - 4427: 0x4E56, - 4428: 0x4E58, - 4429: 0x4E82, - 4430: 0x4E85, - 4431: 0x8C6B, - 4432: 0x4E8A, - 4433: 0x8212, - 4434: 0x5F0D, - 4435: 0x4E8E, - 4436: 0x4E9E, - 4437: 0x4E9F, - 4438: 0x4EA0, - 4439: 0x4EA2, - 4440: 0x4EB0, - 4441: 0x4EB3, - 4442: 0x4EB6, - 4443: 0x4ECE, - 4444: 0x4ECD, - 4445: 0x4EC4, - 4446: 0x4EC6, - 4447: 0x4EC2, - 4448: 0x4ED7, - 4449: 0x4EDE, - 4450: 0x4EED, - 4451: 0x4EDF, - 4452: 0x4EF7, - 4453: 0x4F09, - 4454: 0x4F5A, - 4455: 0x4F30, - 4456: 0x4F5B, - 4457: 0x4F5D, - 4458: 0x4F57, - 4459: 0x4F47, - 4460: 0x4F76, - 4461: 0x4F88, - 4462: 0x4F8F, - 4463: 0x4F98, - 4464: 0x4F7B, - 4465: 0x4F69, - 4466: 0x4F70, - 4467: 0x4F91, - 4468: 0x4F6F, - 4469: 0x4F86, - 4470: 0x4F96, - 4471: 0x5118, - 4472: 0x4FD4, - 4473: 0x4FDF, - 4474: 0x4FCE, - 4475: 0x4FD8, - 4476: 0x4FDB, - 4477: 0x4FD1, - 4478: 0x4FDA, - 4479: 0x4FD0, - 4480: 0x4FE4, - 4481: 0x4FE5, - 4482: 0x501A, - 4483: 0x5028, - 4484: 0x5014, - 4485: 0x502A, - 4486: 0x5025, - 4487: 0x5005, - 4488: 0x4F1C, - 4489: 0x4FF6, - 4490: 0x5021, - 4491: 0x5029, - 4492: 0x502C, - 4493: 0x4FFE, - 4494: 0x4FEF, - 4495: 0x5011, - 4496: 0x5006, - 4497: 0x5043, - 4498: 0x5047, - 4499: 0x6703, - 4500: 0x5055, - 4501: 0x5050, - 4502: 0x5048, - 4503: 0x505A, - 4504: 0x5056, - 4505: 0x506C, - 4506: 0x5078, - 4507: 0x5080, - 4508: 0x509A, - 4509: 0x5085, - 4510: 0x50B4, - 4511: 0x50B2, - 4512: 0x50C9, - 4513: 0x50CA, - 4514: 0x50B3, - 4515: 0x50C2, - 4516: 0x50D6, - 4517: 0x50DE, - 4518: 0x50E5, - 4519: 0x50ED, - 4520: 0x50E3, - 4521: 0x50EE, - 4522: 0x50F9, - 4523: 0x50F5, - 4524: 0x5109, - 4525: 0x5101, - 4526: 0x5102, - 4527: 0x5116, - 4528: 0x5115, - 4529: 0x5114, - 4530: 0x511A, - 4531: 0x5121, - 4532: 0x513A, - 4533: 0x5137, - 4534: 0x513C, - 4535: 0x513B, - 4536: 0x513F, - 4537: 0x5140, - 4538: 0x5152, - 4539: 0x514C, - 4540: 0x5154, - 4541: 0x5162, - 4542: 0x7AF8, - 4543: 0x5169, - 4544: 0x516A, - 4545: 0x516E, - 4546: 0x5180, - 4547: 0x5182, - 4548: 0x56D8, - 4549: 0x518C, - 4550: 0x5189, - 4551: 0x518F, - 4552: 0x5191, - 4553: 0x5193, - 4554: 0x5195, - 4555: 0x5196, - 4556: 0x51A4, - 4557: 0x51A6, - 4558: 0x51A2, - 4559: 0x51A9, - 4560: 0x51AA, - 4561: 0x51AB, - 4562: 0x51B3, - 4563: 0x51B1, - 4564: 0x51B2, - 4565: 0x51B0, - 4566: 0x51B5, - 4567: 0x51BD, - 4568: 0x51C5, - 4569: 0x51C9, - 4570: 0x51DB, - 4571: 0x51E0, - 4572: 0x8655, - 4573: 0x51E9, - 4574: 0x51ED, - 4575: 0x51F0, - 4576: 0x51F5, - 4577: 0x51FE, - 4578: 0x5204, - 4579: 0x520B, - 4580: 0x5214, - 4581: 0x520E, - 4582: 0x5227, - 4583: 0x522A, - 4584: 0x522E, - 4585: 0x5233, - 4586: 0x5239, - 4587: 0x524F, - 4588: 0x5244, - 4589: 0x524B, - 4590: 0x524C, - 4591: 0x525E, - 4592: 0x5254, - 4593: 0x526A, - 4594: 0x5274, - 4595: 0x5269, - 4596: 0x5273, - 4597: 0x527F, - 4598: 0x527D, - 4599: 0x528D, - 4600: 0x5294, - 4601: 0x5292, - 4602: 0x5271, - 4603: 0x5288, - 4604: 0x5291, - 4605: 0x8FA8, - 4606: 0x8FA7, - 4607: 0x52AC, - 4608: 0x52AD, - 4609: 0x52BC, - 4610: 0x52B5, - 4611: 0x52C1, - 4612: 0x52CD, - 4613: 0x52D7, - 4614: 0x52DE, - 4615: 0x52E3, - 4616: 0x52E6, - 4617: 0x98ED, - 4618: 0x52E0, - 4619: 0x52F3, - 4620: 0x52F5, - 4621: 0x52F8, - 4622: 0x52F9, - 4623: 0x5306, - 4624: 0x5308, - 4625: 0x7538, - 4626: 0x530D, - 4627: 0x5310, - 4628: 0x530F, - 4629: 0x5315, - 4630: 0x531A, - 4631: 0x5323, - 4632: 0x532F, - 4633: 0x5331, - 4634: 0x5333, - 4635: 0x5338, - 4636: 0x5340, - 4637: 0x5346, - 4638: 0x5345, - 4639: 0x4E17, - 4640: 0x5349, - 4641: 0x534D, - 4642: 0x51D6, - 4643: 0x535E, - 4644: 0x5369, - 4645: 0x536E, - 4646: 0x5918, - 4647: 0x537B, - 4648: 0x5377, - 4649: 0x5382, - 4650: 0x5396, - 4651: 0x53A0, - 4652: 0x53A6, - 4653: 0x53A5, - 4654: 0x53AE, - 4655: 0x53B0, - 4656: 0x53B6, - 4657: 0x53C3, - 4658: 0x7C12, - 4659: 0x96D9, - 4660: 0x53DF, - 4661: 0x66FC, - 4662: 0x71EE, - 4663: 0x53EE, - 4664: 0x53E8, - 4665: 0x53ED, - 4666: 0x53FA, - 4667: 0x5401, - 4668: 0x543D, - 4669: 0x5440, - 4670: 0x542C, - 4671: 0x542D, - 4672: 0x543C, - 4673: 0x542E, - 4674: 0x5436, - 4675: 0x5429, - 4676: 0x541D, - 4677: 0x544E, - 4678: 0x548F, - 4679: 0x5475, - 4680: 0x548E, - 4681: 0x545F, - 4682: 0x5471, - 4683: 0x5477, - 4684: 0x5470, - 4685: 0x5492, - 4686: 0x547B, - 4687: 0x5480, - 4688: 0x5476, - 4689: 0x5484, - 4690: 0x5490, - 4691: 0x5486, - 4692: 0x54C7, - 4693: 0x54A2, - 4694: 0x54B8, - 4695: 0x54A5, - 4696: 0x54AC, - 4697: 0x54C4, - 4698: 0x54C8, - 4699: 0x54A8, - 4700: 0x54AB, - 4701: 0x54C2, - 4702: 0x54A4, - 4703: 0x54BE, - 4704: 0x54BC, - 4705: 0x54D8, - 4706: 0x54E5, - 4707: 0x54E6, - 4708: 0x550F, - 4709: 0x5514, - 4710: 0x54FD, - 4711: 0x54EE, - 4712: 0x54ED, - 4713: 0x54FA, - 4714: 0x54E2, - 4715: 0x5539, - 4716: 0x5540, - 4717: 0x5563, - 4718: 0x554C, - 4719: 0x552E, - 4720: 0x555C, - 4721: 0x5545, - 4722: 0x5556, - 4723: 0x5557, - 4724: 0x5538, - 4725: 0x5533, - 4726: 0x555D, - 4727: 0x5599, - 4728: 0x5580, - 4729: 0x54AF, - 4730: 0x558A, - 4731: 0x559F, - 4732: 0x557B, - 4733: 0x557E, - 4734: 0x5598, - 4735: 0x559E, - 4736: 0x55AE, - 4737: 0x557C, - 4738: 0x5583, - 4739: 0x55A9, - 4740: 0x5587, - 4741: 0x55A8, - 4742: 0x55DA, - 4743: 0x55C5, - 4744: 0x55DF, - 4745: 0x55C4, - 4746: 0x55DC, - 4747: 0x55E4, - 4748: 0x55D4, - 4749: 0x5614, - 4750: 0x55F7, - 4751: 0x5616, - 4752: 0x55FE, - 4753: 0x55FD, - 4754: 0x561B, - 4755: 0x55F9, - 4756: 0x564E, - 4757: 0x5650, - 4758: 0x71DF, - 4759: 0x5634, - 4760: 0x5636, - 4761: 0x5632, - 4762: 0x5638, - 4763: 0x566B, - 4764: 0x5664, - 4765: 0x562F, - 4766: 0x566C, - 4767: 0x566A, - 4768: 0x5686, - 4769: 0x5680, - 4770: 0x568A, - 4771: 0x56A0, - 4772: 0x5694, - 4773: 0x568F, - 4774: 0x56A5, - 4775: 0x56AE, - 4776: 0x56B6, - 4777: 0x56B4, - 4778: 0x56C2, - 4779: 0x56BC, - 4780: 0x56C1, - 4781: 0x56C3, - 4782: 0x56C0, - 4783: 0x56C8, - 4784: 0x56CE, - 4785: 0x56D1, - 4786: 0x56D3, - 4787: 0x56D7, - 4788: 0x56EE, - 4789: 0x56F9, - 4790: 0x5700, - 4791: 0x56FF, - 4792: 0x5704, - 4793: 0x5709, - 4794: 0x5708, - 4795: 0x570B, - 4796: 0x570D, - 4797: 0x5713, - 4798: 0x5718, - 4799: 0x5716, - 4800: 0x55C7, - 4801: 0x571C, - 4802: 0x5726, - 4803: 0x5737, - 4804: 0x5738, - 4805: 0x574E, - 4806: 0x573B, - 4807: 0x5740, - 4808: 0x574F, - 4809: 0x5769, - 4810: 0x57C0, - 4811: 0x5788, - 4812: 0x5761, - 4813: 0x577F, - 4814: 0x5789, - 4815: 0x5793, - 4816: 0x57A0, - 4817: 0x57B3, - 4818: 0x57A4, - 4819: 0x57AA, - 4820: 0x57B0, - 4821: 0x57C3, - 4822: 0x57C6, - 4823: 0x57D4, - 4824: 0x57D2, - 4825: 0x57D3, - 4826: 0x580A, - 4827: 0x57D6, - 4828: 0x57E3, - 4829: 0x580B, - 4830: 0x5819, - 4831: 0x581D, - 4832: 0x5872, - 4833: 0x5821, - 4834: 0x5862, - 4835: 0x584B, - 4836: 0x5870, - 4837: 0x6BC0, - 4838: 0x5852, - 4839: 0x583D, - 4840: 0x5879, - 4841: 0x5885, - 4842: 0x58B9, - 4843: 0x589F, - 4844: 0x58AB, - 4845: 0x58BA, - 4846: 0x58DE, - 4847: 0x58BB, - 4848: 0x58B8, - 4849: 0x58AE, - 4850: 0x58C5, - 4851: 0x58D3, - 4852: 0x58D1, - 4853: 0x58D7, - 4854: 0x58D9, - 4855: 0x58D8, - 4856: 0x58E5, - 4857: 0x58DC, - 4858: 0x58E4, - 4859: 0x58DF, - 4860: 0x58EF, - 4861: 0x58FA, - 4862: 0x58F9, - 4863: 0x58FB, - 4864: 0x58FC, - 4865: 0x58FD, - 4866: 0x5902, - 4867: 0x590A, - 4868: 0x5910, - 4869: 0x591B, - 4870: 0x68A6, - 4871: 0x5925, - 4872: 0x592C, - 4873: 0x592D, - 4874: 0x5932, - 4875: 0x5938, - 4876: 0x593E, - 4877: 0x7AD2, - 4878: 0x5955, - 4879: 0x5950, - 4880: 0x594E, - 4881: 0x595A, - 4882: 0x5958, - 4883: 0x5962, - 4884: 0x5960, - 4885: 0x5967, - 4886: 0x596C, - 4887: 0x5969, - 4888: 0x5978, - 4889: 0x5981, - 4890: 0x599D, - 4891: 0x4F5E, - 4892: 0x4FAB, - 4893: 0x59A3, - 4894: 0x59B2, - 4895: 0x59C6, - 4896: 0x59E8, - 4897: 0x59DC, - 4898: 0x598D, - 4899: 0x59D9, - 4900: 0x59DA, - 4901: 0x5A25, - 4902: 0x5A1F, - 4903: 0x5A11, - 4904: 0x5A1C, - 4905: 0x5A09, - 4906: 0x5A1A, - 4907: 0x5A40, - 4908: 0x5A6C, - 4909: 0x5A49, - 4910: 0x5A35, - 4911: 0x5A36, - 4912: 0x5A62, - 4913: 0x5A6A, - 4914: 0x5A9A, - 4915: 0x5ABC, - 4916: 0x5ABE, - 4917: 0x5ACB, - 4918: 0x5AC2, - 4919: 0x5ABD, - 4920: 0x5AE3, - 4921: 0x5AD7, - 4922: 0x5AE6, - 4923: 0x5AE9, - 4924: 0x5AD6, - 4925: 0x5AFA, - 4926: 0x5AFB, - 4927: 0x5B0C, - 4928: 0x5B0B, - 4929: 0x5B16, - 4930: 0x5B32, - 4931: 0x5AD0, - 4932: 0x5B2A, - 4933: 0x5B36, - 4934: 0x5B3E, - 4935: 0x5B43, - 4936: 0x5B45, - 4937: 0x5B40, - 4938: 0x5B51, - 4939: 0x5B55, - 4940: 0x5B5A, - 4941: 0x5B5B, - 4942: 0x5B65, - 4943: 0x5B69, - 4944: 0x5B70, - 4945: 0x5B73, - 4946: 0x5B75, - 4947: 0x5B78, - 4948: 0x6588, - 4949: 0x5B7A, - 4950: 0x5B80, - 4951: 0x5B83, - 4952: 0x5BA6, - 4953: 0x5BB8, - 4954: 0x5BC3, - 4955: 0x5BC7, - 4956: 0x5BC9, - 4957: 0x5BD4, - 4958: 0x5BD0, - 4959: 0x5BE4, - 4960: 0x5BE6, - 4961: 0x5BE2, - 4962: 0x5BDE, - 4963: 0x5BE5, - 4964: 0x5BEB, - 4965: 0x5BF0, - 4966: 0x5BF6, - 4967: 0x5BF3, - 4968: 0x5C05, - 4969: 0x5C07, - 4970: 0x5C08, - 4971: 0x5C0D, - 4972: 0x5C13, - 4973: 0x5C20, - 4974: 0x5C22, - 4975: 0x5C28, - 4976: 0x5C38, - 4977: 0x5C39, - 4978: 0x5C41, - 4979: 0x5C46, - 4980: 0x5C4E, - 4981: 0x5C53, - 4982: 0x5C50, - 4983: 0x5C4F, - 4984: 0x5B71, - 4985: 0x5C6C, - 4986: 0x5C6E, - 4987: 0x4E62, - 4988: 0x5C76, - 4989: 0x5C79, - 4990: 0x5C8C, - 4991: 0x5C91, - 4992: 0x5C94, - 4993: 0x599B, - 4994: 0x5CAB, - 4995: 0x5CBB, - 4996: 0x5CB6, - 4997: 0x5CBC, - 4998: 0x5CB7, - 4999: 0x5CC5, - 5000: 0x5CBE, - 5001: 0x5CC7, - 5002: 0x5CD9, - 5003: 0x5CE9, - 5004: 0x5CFD, - 5005: 0x5CFA, - 5006: 0x5CED, - 5007: 0x5D8C, - 5008: 0x5CEA, - 5009: 0x5D0B, - 5010: 0x5D15, - 5011: 0x5D17, - 5012: 0x5D5C, - 5013: 0x5D1F, - 5014: 0x5D1B, - 5015: 0x5D11, - 5016: 0x5D14, - 5017: 0x5D22, - 5018: 0x5D1A, - 5019: 0x5D19, - 5020: 0x5D18, - 5021: 0x5D4C, - 5022: 0x5D52, - 5023: 0x5D4E, - 5024: 0x5D4B, - 5025: 0x5D6C, - 5026: 0x5D73, - 5027: 0x5D76, - 5028: 0x5D87, - 5029: 0x5D84, - 5030: 0x5D82, - 5031: 0x5DA2, - 5032: 0x5D9D, - 5033: 0x5DAC, - 5034: 0x5DAE, - 5035: 0x5DBD, - 5036: 0x5D90, - 5037: 0x5DB7, - 5038: 0x5DBC, - 5039: 0x5DC9, - 5040: 0x5DCD, - 5041: 0x5DD3, - 5042: 0x5DD2, - 5043: 0x5DD6, - 5044: 0x5DDB, - 5045: 0x5DEB, - 5046: 0x5DF2, - 5047: 0x5DF5, - 5048: 0x5E0B, - 5049: 0x5E1A, - 5050: 0x5E19, - 5051: 0x5E11, - 5052: 0x5E1B, - 5053: 0x5E36, - 5054: 0x5E37, - 5055: 0x5E44, - 5056: 0x5E43, - 5057: 0x5E40, - 5058: 0x5E4E, - 5059: 0x5E57, - 5060: 0x5E54, - 5061: 0x5E5F, - 5062: 0x5E62, - 5063: 0x5E64, - 5064: 0x5E47, - 5065: 0x5E75, - 5066: 0x5E76, - 5067: 0x5E7A, - 5068: 0x9EBC, - 5069: 0x5E7F, - 5070: 0x5EA0, - 5071: 0x5EC1, - 5072: 0x5EC2, - 5073: 0x5EC8, - 5074: 0x5ED0, - 5075: 0x5ECF, - 5076: 0x5ED6, - 5077: 0x5EE3, - 5078: 0x5EDD, - 5079: 0x5EDA, - 5080: 0x5EDB, - 5081: 0x5EE2, - 5082: 0x5EE1, - 5083: 0x5EE8, - 5084: 0x5EE9, - 5085: 0x5EEC, - 5086: 0x5EF1, - 5087: 0x5EF3, - 5088: 0x5EF0, - 5089: 0x5EF4, - 5090: 0x5EF8, - 5091: 0x5EFE, - 5092: 0x5F03, - 5093: 0x5F09, - 5094: 0x5F5D, - 5095: 0x5F5C, - 5096: 0x5F0B, - 5097: 0x5F11, - 5098: 0x5F16, - 5099: 0x5F29, - 5100: 0x5F2D, - 5101: 0x5F38, - 5102: 0x5F41, - 5103: 0x5F48, - 5104: 0x5F4C, - 5105: 0x5F4E, - 5106: 0x5F2F, - 5107: 0x5F51, - 5108: 0x5F56, - 5109: 0x5F57, - 5110: 0x5F59, - 5111: 0x5F61, - 5112: 0x5F6D, - 5113: 0x5F73, - 5114: 0x5F77, - 5115: 0x5F83, - 5116: 0x5F82, - 5117: 0x5F7F, - 5118: 0x5F8A, - 5119: 0x5F88, - 5120: 0x5F91, - 5121: 0x5F87, - 5122: 0x5F9E, - 5123: 0x5F99, - 5124: 0x5F98, - 5125: 0x5FA0, - 5126: 0x5FA8, - 5127: 0x5FAD, - 5128: 0x5FBC, - 5129: 0x5FD6, - 5130: 0x5FFB, - 5131: 0x5FE4, - 5132: 0x5FF8, - 5133: 0x5FF1, - 5134: 0x5FDD, - 5135: 0x60B3, - 5136: 0x5FFF, - 5137: 0x6021, - 5138: 0x6060, - 5139: 0x6019, - 5140: 0x6010, - 5141: 0x6029, - 5142: 0x600E, - 5143: 0x6031, - 5144: 0x601B, - 5145: 0x6015, - 5146: 0x602B, - 5147: 0x6026, - 5148: 0x600F, - 5149: 0x603A, - 5150: 0x605A, - 5151: 0x6041, - 5152: 0x606A, - 5153: 0x6077, - 5154: 0x605F, - 5155: 0x604A, - 5156: 0x6046, - 5157: 0x604D, - 5158: 0x6063, - 5159: 0x6043, - 5160: 0x6064, - 5161: 0x6042, - 5162: 0x606C, - 5163: 0x606B, - 5164: 0x6059, - 5165: 0x6081, - 5166: 0x608D, - 5167: 0x60E7, - 5168: 0x6083, - 5169: 0x609A, - 5170: 0x6084, - 5171: 0x609B, - 5172: 0x6096, - 5173: 0x6097, - 5174: 0x6092, - 5175: 0x60A7, - 5176: 0x608B, - 5177: 0x60E1, - 5178: 0x60B8, - 5179: 0x60E0, - 5180: 0x60D3, - 5181: 0x60B4, - 5182: 0x5FF0, - 5183: 0x60BD, - 5184: 0x60C6, - 5185: 0x60B5, - 5186: 0x60D8, - 5187: 0x614D, - 5188: 0x6115, - 5189: 0x6106, - 5190: 0x60F6, - 5191: 0x60F7, - 5192: 0x6100, - 5193: 0x60F4, - 5194: 0x60FA, - 5195: 0x6103, - 5196: 0x6121, - 5197: 0x60FB, - 5198: 0x60F1, - 5199: 0x610D, - 5200: 0x610E, - 5201: 0x6147, - 5202: 0x613E, - 5203: 0x6128, - 5204: 0x6127, - 5205: 0x614A, - 5206: 0x613F, - 5207: 0x613C, - 5208: 0x612C, - 5209: 0x6134, - 5210: 0x613D, - 5211: 0x6142, - 5212: 0x6144, - 5213: 0x6173, - 5214: 0x6177, - 5215: 0x6158, - 5216: 0x6159, - 5217: 0x615A, - 5218: 0x616B, - 5219: 0x6174, - 5220: 0x616F, - 5221: 0x6165, - 5222: 0x6171, - 5223: 0x615F, - 5224: 0x615D, - 5225: 0x6153, - 5226: 0x6175, - 5227: 0x6199, - 5228: 0x6196, - 5229: 0x6187, - 5230: 0x61AC, - 5231: 0x6194, - 5232: 0x619A, - 5233: 0x618A, - 5234: 0x6191, - 5235: 0x61AB, - 5236: 0x61AE, - 5237: 0x61CC, - 5238: 0x61CA, - 5239: 0x61C9, - 5240: 0x61F7, - 5241: 0x61C8, - 5242: 0x61C3, - 5243: 0x61C6, - 5244: 0x61BA, - 5245: 0x61CB, - 5246: 0x7F79, - 5247: 0x61CD, - 5248: 0x61E6, - 5249: 0x61E3, - 5250: 0x61F6, - 5251: 0x61FA, - 5252: 0x61F4, - 5253: 0x61FF, - 5254: 0x61FD, - 5255: 0x61FC, - 5256: 0x61FE, - 5257: 0x6200, - 5258: 0x6208, - 5259: 0x6209, - 5260: 0x620D, - 5261: 0x620C, - 5262: 0x6214, - 5263: 0x621B, - 5264: 0x621E, - 5265: 0x6221, - 5266: 0x622A, - 5267: 0x622E, - 5268: 0x6230, - 5269: 0x6232, - 5270: 0x6233, - 5271: 0x6241, - 5272: 0x624E, - 5273: 0x625E, - 5274: 0x6263, - 5275: 0x625B, - 5276: 0x6260, - 5277: 0x6268, - 5278: 0x627C, - 5279: 0x6282, - 5280: 0x6289, - 5281: 0x627E, - 5282: 0x6292, - 5283: 0x6293, - 5284: 0x6296, - 5285: 0x62D4, - 5286: 0x6283, - 5287: 0x6294, - 5288: 0x62D7, - 5289: 0x62D1, - 5290: 0x62BB, - 5291: 0x62CF, - 5292: 0x62FF, - 5293: 0x62C6, - 5294: 0x64D4, - 5295: 0x62C8, - 5296: 0x62DC, - 5297: 0x62CC, - 5298: 0x62CA, - 5299: 0x62C2, - 5300: 0x62C7, - 5301: 0x629B, - 5302: 0x62C9, - 5303: 0x630C, - 5304: 0x62EE, - 5305: 0x62F1, - 5306: 0x6327, - 5307: 0x6302, - 5308: 0x6308, - 5309: 0x62EF, - 5310: 0x62F5, - 5311: 0x6350, - 5312: 0x633E, - 5313: 0x634D, - 5314: 0x641C, - 5315: 0x634F, - 5316: 0x6396, - 5317: 0x638E, - 5318: 0x6380, - 5319: 0x63AB, - 5320: 0x6376, - 5321: 0x63A3, - 5322: 0x638F, - 5323: 0x6389, - 5324: 0x639F, - 5325: 0x63B5, - 5326: 0x636B, - 5327: 0x6369, - 5328: 0x63BE, - 5329: 0x63E9, - 5330: 0x63C0, - 5331: 0x63C6, - 5332: 0x63E3, - 5333: 0x63C9, - 5334: 0x63D2, - 5335: 0x63F6, - 5336: 0x63C4, - 5337: 0x6416, - 5338: 0x6434, - 5339: 0x6406, - 5340: 0x6413, - 5341: 0x6426, - 5342: 0x6436, - 5343: 0x651D, - 5344: 0x6417, - 5345: 0x6428, - 5346: 0x640F, - 5347: 0x6467, - 5348: 0x646F, - 5349: 0x6476, - 5350: 0x644E, - 5351: 0x652A, - 5352: 0x6495, - 5353: 0x6493, - 5354: 0x64A5, - 5355: 0x64A9, - 5356: 0x6488, - 5357: 0x64BC, - 5358: 0x64DA, - 5359: 0x64D2, - 5360: 0x64C5, - 5361: 0x64C7, - 5362: 0x64BB, - 5363: 0x64D8, - 5364: 0x64C2, - 5365: 0x64F1, - 5366: 0x64E7, - 5367: 0x8209, - 5368: 0x64E0, - 5369: 0x64E1, - 5370: 0x62AC, - 5371: 0x64E3, - 5372: 0x64EF, - 5373: 0x652C, - 5374: 0x64F6, - 5375: 0x64F4, - 5376: 0x64F2, - 5377: 0x64FA, - 5378: 0x6500, - 5379: 0x64FD, - 5380: 0x6518, - 5381: 0x651C, - 5382: 0x6505, - 5383: 0x6524, - 5384: 0x6523, - 5385: 0x652B, - 5386: 0x6534, - 5387: 0x6535, - 5388: 0x6537, - 5389: 0x6536, - 5390: 0x6538, - 5391: 0x754B, - 5392: 0x6548, - 5393: 0x6556, - 5394: 0x6555, - 5395: 0x654D, - 5396: 0x6558, - 5397: 0x655E, - 5398: 0x655D, - 5399: 0x6572, - 5400: 0x6578, - 5401: 0x6582, - 5402: 0x6583, - 5403: 0x8B8A, - 5404: 0x659B, - 5405: 0x659F, - 5406: 0x65AB, - 5407: 0x65B7, - 5408: 0x65C3, - 5409: 0x65C6, - 5410: 0x65C1, - 5411: 0x65C4, - 5412: 0x65CC, - 5413: 0x65D2, - 5414: 0x65DB, - 5415: 0x65D9, - 5416: 0x65E0, - 5417: 0x65E1, - 5418: 0x65F1, - 5419: 0x6772, - 5420: 0x660A, - 5421: 0x6603, - 5422: 0x65FB, - 5423: 0x6773, - 5424: 0x6635, - 5425: 0x6636, - 5426: 0x6634, - 5427: 0x661C, - 5428: 0x664F, - 5429: 0x6644, - 5430: 0x6649, - 5431: 0x6641, - 5432: 0x665E, - 5433: 0x665D, - 5434: 0x6664, - 5435: 0x6667, - 5436: 0x6668, - 5437: 0x665F, - 5438: 0x6662, - 5439: 0x6670, - 5440: 0x6683, - 5441: 0x6688, - 5442: 0x668E, - 5443: 0x6689, - 5444: 0x6684, - 5445: 0x6698, - 5446: 0x669D, - 5447: 0x66C1, - 5448: 0x66B9, - 5449: 0x66C9, - 5450: 0x66BE, - 5451: 0x66BC, - 5452: 0x66C4, - 5453: 0x66B8, - 5454: 0x66D6, - 5455: 0x66DA, - 5456: 0x66E0, - 5457: 0x663F, - 5458: 0x66E6, - 5459: 0x66E9, - 5460: 0x66F0, - 5461: 0x66F5, - 5462: 0x66F7, - 5463: 0x670F, - 5464: 0x6716, - 5465: 0x671E, - 5466: 0x6726, - 5467: 0x6727, - 5468: 0x9738, - 5469: 0x672E, - 5470: 0x673F, - 5471: 0x6736, - 5472: 0x6741, - 5473: 0x6738, - 5474: 0x6737, - 5475: 0x6746, - 5476: 0x675E, - 5477: 0x6760, - 5478: 0x6759, - 5479: 0x6763, - 5480: 0x6764, - 5481: 0x6789, - 5482: 0x6770, - 5483: 0x67A9, - 5484: 0x677C, - 5485: 0x676A, - 5486: 0x678C, - 5487: 0x678B, - 5488: 0x67A6, - 5489: 0x67A1, - 5490: 0x6785, - 5491: 0x67B7, - 5492: 0x67EF, - 5493: 0x67B4, - 5494: 0x67EC, - 5495: 0x67B3, - 5496: 0x67E9, - 5497: 0x67B8, - 5498: 0x67E4, - 5499: 0x67DE, - 5500: 0x67DD, - 5501: 0x67E2, - 5502: 0x67EE, - 5503: 0x67B9, - 5504: 0x67CE, - 5505: 0x67C6, - 5506: 0x67E7, - 5507: 0x6A9C, - 5508: 0x681E, - 5509: 0x6846, - 5510: 0x6829, - 5511: 0x6840, - 5512: 0x684D, - 5513: 0x6832, - 5514: 0x684E, - 5515: 0x68B3, - 5516: 0x682B, - 5517: 0x6859, - 5518: 0x6863, - 5519: 0x6877, - 5520: 0x687F, - 5521: 0x689F, - 5522: 0x688F, - 5523: 0x68AD, - 5524: 0x6894, - 5525: 0x689D, - 5526: 0x689B, - 5527: 0x6883, - 5528: 0x6AAE, - 5529: 0x68B9, - 5530: 0x6874, - 5531: 0x68B5, - 5532: 0x68A0, - 5533: 0x68BA, - 5534: 0x690F, - 5535: 0x688D, - 5536: 0x687E, - 5537: 0x6901, - 5538: 0x68CA, - 5539: 0x6908, - 5540: 0x68D8, - 5541: 0x6922, - 5542: 0x6926, - 5543: 0x68E1, - 5544: 0x690C, - 5545: 0x68CD, - 5546: 0x68D4, - 5547: 0x68E7, - 5548: 0x68D5, - 5549: 0x6936, - 5550: 0x6912, - 5551: 0x6904, - 5552: 0x68D7, - 5553: 0x68E3, - 5554: 0x6925, - 5555: 0x68F9, - 5556: 0x68E0, - 5557: 0x68EF, - 5558: 0x6928, - 5559: 0x692A, - 5560: 0x691A, - 5561: 0x6923, - 5562: 0x6921, - 5563: 0x68C6, - 5564: 0x6979, - 5565: 0x6977, - 5566: 0x695C, - 5567: 0x6978, - 5568: 0x696B, - 5569: 0x6954, - 5570: 0x697E, - 5571: 0x696E, - 5572: 0x6939, - 5573: 0x6974, - 5574: 0x693D, - 5575: 0x6959, - 5576: 0x6930, - 5577: 0x6961, - 5578: 0x695E, - 5579: 0x695D, - 5580: 0x6981, - 5581: 0x696A, - 5582: 0x69B2, - 5583: 0x69AE, - 5584: 0x69D0, - 5585: 0x69BF, - 5586: 0x69C1, - 5587: 0x69D3, - 5588: 0x69BE, - 5589: 0x69CE, - 5590: 0x5BE8, - 5591: 0x69CA, - 5592: 0x69DD, - 5593: 0x69BB, - 5594: 0x69C3, - 5595: 0x69A7, - 5596: 0x6A2E, - 5597: 0x6991, - 5598: 0x69A0, - 5599: 0x699C, - 5600: 0x6995, - 5601: 0x69B4, - 5602: 0x69DE, - 5603: 0x69E8, - 5604: 0x6A02, - 5605: 0x6A1B, - 5606: 0x69FF, - 5607: 0x6B0A, - 5608: 0x69F9, - 5609: 0x69F2, - 5610: 0x69E7, - 5611: 0x6A05, - 5612: 0x69B1, - 5613: 0x6A1E, - 5614: 0x69ED, - 5615: 0x6A14, - 5616: 0x69EB, - 5617: 0x6A0A, - 5618: 0x6A12, - 5619: 0x6AC1, - 5620: 0x6A23, - 5621: 0x6A13, - 5622: 0x6A44, - 5623: 0x6A0C, - 5624: 0x6A72, - 5625: 0x6A36, - 5626: 0x6A78, - 5627: 0x6A47, - 5628: 0x6A62, - 5629: 0x6A59, - 5630: 0x6A66, - 5631: 0x6A48, - 5632: 0x6A38, - 5633: 0x6A22, - 5634: 0x6A90, - 5635: 0x6A8D, - 5636: 0x6AA0, - 5637: 0x6A84, - 5638: 0x6AA2, - 5639: 0x6AA3, - 5640: 0x6A97, - 5641: 0x8617, - 5642: 0x6ABB, - 5643: 0x6AC3, - 5644: 0x6AC2, - 5645: 0x6AB8, - 5646: 0x6AB3, - 5647: 0x6AAC, - 5648: 0x6ADE, - 5649: 0x6AD1, - 5650: 0x6ADF, - 5651: 0x6AAA, - 5652: 0x6ADA, - 5653: 0x6AEA, - 5654: 0x6AFB, - 5655: 0x6B05, - 5656: 0x8616, - 5657: 0x6AFA, - 5658: 0x6B12, - 5659: 0x6B16, - 5660: 0x9B31, - 5661: 0x6B1F, - 5662: 0x6B38, - 5663: 0x6B37, - 5664: 0x76DC, - 5665: 0x6B39, - 5666: 0x98EE, - 5667: 0x6B47, - 5668: 0x6B43, - 5669: 0x6B49, - 5670: 0x6B50, - 5671: 0x6B59, - 5672: 0x6B54, - 5673: 0x6B5B, - 5674: 0x6B5F, - 5675: 0x6B61, - 5676: 0x6B78, - 5677: 0x6B79, - 5678: 0x6B7F, - 5679: 0x6B80, - 5680: 0x6B84, - 5681: 0x6B83, - 5682: 0x6B8D, - 5683: 0x6B98, - 5684: 0x6B95, - 5685: 0x6B9E, - 5686: 0x6BA4, - 5687: 0x6BAA, - 5688: 0x6BAB, - 5689: 0x6BAF, - 5690: 0x6BB2, - 5691: 0x6BB1, - 5692: 0x6BB3, - 5693: 0x6BB7, - 5694: 0x6BBC, - 5695: 0x6BC6, - 5696: 0x6BCB, - 5697: 0x6BD3, - 5698: 0x6BDF, - 5699: 0x6BEC, - 5700: 0x6BEB, - 5701: 0x6BF3, - 5702: 0x6BEF, - 5703: 0x9EBE, - 5704: 0x6C08, - 5705: 0x6C13, - 5706: 0x6C14, - 5707: 0x6C1B, - 5708: 0x6C24, - 5709: 0x6C23, - 5710: 0x6C5E, - 5711: 0x6C55, - 5712: 0x6C62, - 5713: 0x6C6A, - 5714: 0x6C82, - 5715: 0x6C8D, - 5716: 0x6C9A, - 5717: 0x6C81, - 5718: 0x6C9B, - 5719: 0x6C7E, - 5720: 0x6C68, - 5721: 0x6C73, - 5722: 0x6C92, - 5723: 0x6C90, - 5724: 0x6CC4, - 5725: 0x6CF1, - 5726: 0x6CD3, - 5727: 0x6CBD, - 5728: 0x6CD7, - 5729: 0x6CC5, - 5730: 0x6CDD, - 5731: 0x6CAE, - 5732: 0x6CB1, - 5733: 0x6CBE, - 5734: 0x6CBA, - 5735: 0x6CDB, - 5736: 0x6CEF, - 5737: 0x6CD9, - 5738: 0x6CEA, - 5739: 0x6D1F, - 5740: 0x884D, - 5741: 0x6D36, - 5742: 0x6D2B, - 5743: 0x6D3D, - 5744: 0x6D38, - 5745: 0x6D19, - 5746: 0x6D35, - 5747: 0x6D33, - 5748: 0x6D12, - 5749: 0x6D0C, - 5750: 0x6D63, - 5751: 0x6D93, - 5752: 0x6D64, - 5753: 0x6D5A, - 5754: 0x6D79, - 5755: 0x6D59, - 5756: 0x6D8E, - 5757: 0x6D95, - 5758: 0x6FE4, - 5759: 0x6D85, - 5760: 0x6DF9, - 5761: 0x6E15, - 5762: 0x6E0A, - 5763: 0x6DB5, - 5764: 0x6DC7, - 5765: 0x6DE6, - 5766: 0x6DB8, - 5767: 0x6DC6, - 5768: 0x6DEC, - 5769: 0x6DDE, - 5770: 0x6DCC, - 5771: 0x6DE8, - 5772: 0x6DD2, - 5773: 0x6DC5, - 5774: 0x6DFA, - 5775: 0x6DD9, - 5776: 0x6DE4, - 5777: 0x6DD5, - 5778: 0x6DEA, - 5779: 0x6DEE, - 5780: 0x6E2D, - 5781: 0x6E6E, - 5782: 0x6E2E, - 5783: 0x6E19, - 5784: 0x6E72, - 5785: 0x6E5F, - 5786: 0x6E3E, - 5787: 0x6E23, - 5788: 0x6E6B, - 5789: 0x6E2B, - 5790: 0x6E76, - 5791: 0x6E4D, - 5792: 0x6E1F, - 5793: 0x6E43, - 5794: 0x6E3A, - 5795: 0x6E4E, - 5796: 0x6E24, - 5797: 0x6EFF, - 5798: 0x6E1D, - 5799: 0x6E38, - 5800: 0x6E82, - 5801: 0x6EAA, - 5802: 0x6E98, - 5803: 0x6EC9, - 5804: 0x6EB7, - 5805: 0x6ED3, - 5806: 0x6EBD, - 5807: 0x6EAF, - 5808: 0x6EC4, - 5809: 0x6EB2, - 5810: 0x6ED4, - 5811: 0x6ED5, - 5812: 0x6E8F, - 5813: 0x6EA5, - 5814: 0x6EC2, - 5815: 0x6E9F, - 5816: 0x6F41, - 5817: 0x6F11, - 5818: 0x704C, - 5819: 0x6EEC, - 5820: 0x6EF8, - 5821: 0x6EFE, - 5822: 0x6F3F, - 5823: 0x6EF2, - 5824: 0x6F31, - 5825: 0x6EEF, - 5826: 0x6F32, - 5827: 0x6ECC, - 5828: 0x6F3E, - 5829: 0x6F13, - 5830: 0x6EF7, - 5831: 0x6F86, - 5832: 0x6F7A, - 5833: 0x6F78, - 5834: 0x6F81, - 5835: 0x6F80, - 5836: 0x6F6F, - 5837: 0x6F5B, - 5838: 0x6FF3, - 5839: 0x6F6D, - 5840: 0x6F82, - 5841: 0x6F7C, - 5842: 0x6F58, - 5843: 0x6F8E, - 5844: 0x6F91, - 5845: 0x6FC2, - 5846: 0x6F66, - 5847: 0x6FB3, - 5848: 0x6FA3, - 5849: 0x6FA1, - 5850: 0x6FA4, - 5851: 0x6FB9, - 5852: 0x6FC6, - 5853: 0x6FAA, - 5854: 0x6FDF, - 5855: 0x6FD5, - 5856: 0x6FEC, - 5857: 0x6FD4, - 5858: 0x6FD8, - 5859: 0x6FF1, - 5860: 0x6FEE, - 5861: 0x6FDB, - 5862: 0x7009, - 5863: 0x700B, - 5864: 0x6FFA, - 5865: 0x7011, - 5866: 0x7001, - 5867: 0x700F, - 5868: 0x6FFE, - 5869: 0x701B, - 5870: 0x701A, - 5871: 0x6F74, - 5872: 0x701D, - 5873: 0x7018, - 5874: 0x701F, - 5875: 0x7030, - 5876: 0x703E, - 5877: 0x7032, - 5878: 0x7051, - 5879: 0x7063, - 5880: 0x7099, - 5881: 0x7092, - 5882: 0x70AF, - 5883: 0x70F1, - 5884: 0x70AC, - 5885: 0x70B8, - 5886: 0x70B3, - 5887: 0x70AE, - 5888: 0x70DF, - 5889: 0x70CB, - 5890: 0x70DD, - 5891: 0x70D9, - 5892: 0x7109, - 5893: 0x70FD, - 5894: 0x711C, - 5895: 0x7119, - 5896: 0x7165, - 5897: 0x7155, - 5898: 0x7188, - 5899: 0x7166, - 5900: 0x7162, - 5901: 0x714C, - 5902: 0x7156, - 5903: 0x716C, - 5904: 0x718F, - 5905: 0x71FB, - 5906: 0x7184, - 5907: 0x7195, - 5908: 0x71A8, - 5909: 0x71AC, - 5910: 0x71D7, - 5911: 0x71B9, - 5912: 0x71BE, - 5913: 0x71D2, - 5914: 0x71C9, - 5915: 0x71D4, - 5916: 0x71CE, - 5917: 0x71E0, - 5918: 0x71EC, - 5919: 0x71E7, - 5920: 0x71F5, - 5921: 0x71FC, - 5922: 0x71F9, - 5923: 0x71FF, - 5924: 0x720D, - 5925: 0x7210, - 5926: 0x721B, - 5927: 0x7228, - 5928: 0x722D, - 5929: 0x722C, - 5930: 0x7230, - 5931: 0x7232, - 5932: 0x723B, - 5933: 0x723C, - 5934: 0x723F, - 5935: 0x7240, - 5936: 0x7246, - 5937: 0x724B, - 5938: 0x7258, - 5939: 0x7274, - 5940: 0x727E, - 5941: 0x7282, - 5942: 0x7281, - 5943: 0x7287, - 5944: 0x7292, - 5945: 0x7296, - 5946: 0x72A2, - 5947: 0x72A7, - 5948: 0x72B9, - 5949: 0x72B2, - 5950: 0x72C3, - 5951: 0x72C6, - 5952: 0x72C4, - 5953: 0x72CE, - 5954: 0x72D2, - 5955: 0x72E2, - 5956: 0x72E0, - 5957: 0x72E1, - 5958: 0x72F9, - 5959: 0x72F7, - 5960: 0x500F, - 5961: 0x7317, - 5962: 0x730A, - 5963: 0x731C, - 5964: 0x7316, - 5965: 0x731D, - 5966: 0x7334, - 5967: 0x732F, - 5968: 0x7329, - 5969: 0x7325, - 5970: 0x733E, - 5971: 0x734E, - 5972: 0x734F, - 5973: 0x9ED8, - 5974: 0x7357, - 5975: 0x736A, - 5976: 0x7368, - 5977: 0x7370, - 5978: 0x7378, - 5979: 0x7375, - 5980: 0x737B, - 5981: 0x737A, - 5982: 0x73C8, - 5983: 0x73B3, - 5984: 0x73CE, - 5985: 0x73BB, - 5986: 0x73C0, - 5987: 0x73E5, - 5988: 0x73EE, - 5989: 0x73DE, - 5990: 0x74A2, - 5991: 0x7405, - 5992: 0x746F, - 5993: 0x7425, - 5994: 0x73F8, - 5995: 0x7432, - 5996: 0x743A, - 5997: 0x7455, - 5998: 0x743F, - 5999: 0x745F, - 6000: 0x7459, - 6001: 0x7441, - 6002: 0x745C, - 6003: 0x7469, - 6004: 0x7470, - 6005: 0x7463, - 6006: 0x746A, - 6007: 0x7476, - 6008: 0x747E, - 6009: 0x748B, - 6010: 0x749E, - 6011: 0x74A7, - 6012: 0x74CA, - 6013: 0x74CF, - 6014: 0x74D4, - 6015: 0x73F1, - 6016: 0x74E0, - 6017: 0x74E3, - 6018: 0x74E7, - 6019: 0x74E9, - 6020: 0x74EE, - 6021: 0x74F2, - 6022: 0x74F0, - 6023: 0x74F1, - 6024: 0x74F8, - 6025: 0x74F7, - 6026: 0x7504, - 6027: 0x7503, - 6028: 0x7505, - 6029: 0x750C, - 6030: 0x750E, - 6031: 0x750D, - 6032: 0x7515, - 6033: 0x7513, - 6034: 0x751E, - 6035: 0x7526, - 6036: 0x752C, - 6037: 0x753C, - 6038: 0x7544, - 6039: 0x754D, - 6040: 0x754A, - 6041: 0x7549, - 6042: 0x755B, - 6043: 0x7546, - 6044: 0x755A, - 6045: 0x7569, - 6046: 0x7564, - 6047: 0x7567, - 6048: 0x756B, - 6049: 0x756D, - 6050: 0x7578, - 6051: 0x7576, - 6052: 0x7586, - 6053: 0x7587, - 6054: 0x7574, - 6055: 0x758A, - 6056: 0x7589, - 6057: 0x7582, - 6058: 0x7594, - 6059: 0x759A, - 6060: 0x759D, - 6061: 0x75A5, - 6062: 0x75A3, - 6063: 0x75C2, - 6064: 0x75B3, - 6065: 0x75C3, - 6066: 0x75B5, - 6067: 0x75BD, - 6068: 0x75B8, - 6069: 0x75BC, - 6070: 0x75B1, - 6071: 0x75CD, - 6072: 0x75CA, - 6073: 0x75D2, - 6074: 0x75D9, - 6075: 0x75E3, - 6076: 0x75DE, - 6077: 0x75FE, - 6078: 0x75FF, - 6079: 0x75FC, - 6080: 0x7601, - 6081: 0x75F0, - 6082: 0x75FA, - 6083: 0x75F2, - 6084: 0x75F3, - 6085: 0x760B, - 6086: 0x760D, - 6087: 0x7609, - 6088: 0x761F, - 6089: 0x7627, - 6090: 0x7620, - 6091: 0x7621, - 6092: 0x7622, - 6093: 0x7624, - 6094: 0x7634, - 6095: 0x7630, - 6096: 0x763B, - 6097: 0x7647, - 6098: 0x7648, - 6099: 0x7646, - 6100: 0x765C, - 6101: 0x7658, - 6102: 0x7661, - 6103: 0x7662, - 6104: 0x7668, - 6105: 0x7669, - 6106: 0x766A, - 6107: 0x7667, - 6108: 0x766C, - 6109: 0x7670, - 6110: 0x7672, - 6111: 0x7676, - 6112: 0x7678, - 6113: 0x767C, - 6114: 0x7680, - 6115: 0x7683, - 6116: 0x7688, - 6117: 0x768B, - 6118: 0x768E, - 6119: 0x7696, - 6120: 0x7693, - 6121: 0x7699, - 6122: 0x769A, - 6123: 0x76B0, - 6124: 0x76B4, - 6125: 0x76B8, - 6126: 0x76B9, - 6127: 0x76BA, - 6128: 0x76C2, - 6129: 0x76CD, - 6130: 0x76D6, - 6131: 0x76D2, - 6132: 0x76DE, - 6133: 0x76E1, - 6134: 0x76E5, - 6135: 0x76E7, - 6136: 0x76EA, - 6137: 0x862F, - 6138: 0x76FB, - 6139: 0x7708, - 6140: 0x7707, - 6141: 0x7704, - 6142: 0x7729, - 6143: 0x7724, - 6144: 0x771E, - 6145: 0x7725, - 6146: 0x7726, - 6147: 0x771B, - 6148: 0x7737, - 6149: 0x7738, - 6150: 0x7747, - 6151: 0x775A, - 6152: 0x7768, - 6153: 0x776B, - 6154: 0x775B, - 6155: 0x7765, - 6156: 0x777F, - 6157: 0x777E, - 6158: 0x7779, - 6159: 0x778E, - 6160: 0x778B, - 6161: 0x7791, - 6162: 0x77A0, - 6163: 0x779E, - 6164: 0x77B0, - 6165: 0x77B6, - 6166: 0x77B9, - 6167: 0x77BF, - 6168: 0x77BC, - 6169: 0x77BD, - 6170: 0x77BB, - 6171: 0x77C7, - 6172: 0x77CD, - 6173: 0x77D7, - 6174: 0x77DA, - 6175: 0x77DC, - 6176: 0x77E3, - 6177: 0x77EE, - 6178: 0x77FC, - 6179: 0x780C, - 6180: 0x7812, - 6181: 0x7926, - 6182: 0x7820, - 6183: 0x792A, - 6184: 0x7845, - 6185: 0x788E, - 6186: 0x7874, - 6187: 0x7886, - 6188: 0x787C, - 6189: 0x789A, - 6190: 0x788C, - 6191: 0x78A3, - 6192: 0x78B5, - 6193: 0x78AA, - 6194: 0x78AF, - 6195: 0x78D1, - 6196: 0x78C6, - 6197: 0x78CB, - 6198: 0x78D4, - 6199: 0x78BE, - 6200: 0x78BC, - 6201: 0x78C5, - 6202: 0x78CA, - 6203: 0x78EC, - 6204: 0x78E7, - 6205: 0x78DA, - 6206: 0x78FD, - 6207: 0x78F4, - 6208: 0x7907, - 6209: 0x7912, - 6210: 0x7911, - 6211: 0x7919, - 6212: 0x792C, - 6213: 0x792B, - 6214: 0x7940, - 6215: 0x7960, - 6216: 0x7957, - 6217: 0x795F, - 6218: 0x795A, - 6219: 0x7955, - 6220: 0x7953, - 6221: 0x797A, - 6222: 0x797F, - 6223: 0x798A, - 6224: 0x799D, - 6225: 0x79A7, - 6226: 0x9F4B, - 6227: 0x79AA, - 6228: 0x79AE, - 6229: 0x79B3, - 6230: 0x79B9, - 6231: 0x79BA, - 6232: 0x79C9, - 6233: 0x79D5, - 6234: 0x79E7, - 6235: 0x79EC, - 6236: 0x79E1, - 6237: 0x79E3, - 6238: 0x7A08, - 6239: 0x7A0D, - 6240: 0x7A18, - 6241: 0x7A19, - 6242: 0x7A20, - 6243: 0x7A1F, - 6244: 0x7980, - 6245: 0x7A31, - 6246: 0x7A3B, - 6247: 0x7A3E, - 6248: 0x7A37, - 6249: 0x7A43, - 6250: 0x7A57, - 6251: 0x7A49, - 6252: 0x7A61, - 6253: 0x7A62, - 6254: 0x7A69, - 6255: 0x9F9D, - 6256: 0x7A70, - 6257: 0x7A79, - 6258: 0x7A7D, - 6259: 0x7A88, - 6260: 0x7A97, - 6261: 0x7A95, - 6262: 0x7A98, - 6263: 0x7A96, - 6264: 0x7AA9, - 6265: 0x7AC8, - 6266: 0x7AB0, - 6267: 0x7AB6, - 6268: 0x7AC5, - 6269: 0x7AC4, - 6270: 0x7ABF, - 6271: 0x9083, - 6272: 0x7AC7, - 6273: 0x7ACA, - 6274: 0x7ACD, - 6275: 0x7ACF, - 6276: 0x7AD5, - 6277: 0x7AD3, - 6278: 0x7AD9, - 6279: 0x7ADA, - 6280: 0x7ADD, - 6281: 0x7AE1, - 6282: 0x7AE2, - 6283: 0x7AE6, - 6284: 0x7AED, - 6285: 0x7AF0, - 6286: 0x7B02, - 6287: 0x7B0F, - 6288: 0x7B0A, - 6289: 0x7B06, - 6290: 0x7B33, - 6291: 0x7B18, - 6292: 0x7B19, - 6293: 0x7B1E, - 6294: 0x7B35, - 6295: 0x7B28, - 6296: 0x7B36, - 6297: 0x7B50, - 6298: 0x7B7A, - 6299: 0x7B04, - 6300: 0x7B4D, - 6301: 0x7B0B, - 6302: 0x7B4C, - 6303: 0x7B45, - 6304: 0x7B75, - 6305: 0x7B65, - 6306: 0x7B74, - 6307: 0x7B67, - 6308: 0x7B70, - 6309: 0x7B71, - 6310: 0x7B6C, - 6311: 0x7B6E, - 6312: 0x7B9D, - 6313: 0x7B98, - 6314: 0x7B9F, - 6315: 0x7B8D, - 6316: 0x7B9C, - 6317: 0x7B9A, - 6318: 0x7B8B, - 6319: 0x7B92, - 6320: 0x7B8F, - 6321: 0x7B5D, - 6322: 0x7B99, - 6323: 0x7BCB, - 6324: 0x7BC1, - 6325: 0x7BCC, - 6326: 0x7BCF, - 6327: 0x7BB4, - 6328: 0x7BC6, - 6329: 0x7BDD, - 6330: 0x7BE9, - 6331: 0x7C11, - 6332: 0x7C14, - 6333: 0x7BE6, - 6334: 0x7BE5, - 6335: 0x7C60, - 6336: 0x7C00, - 6337: 0x7C07, - 6338: 0x7C13, - 6339: 0x7BF3, - 6340: 0x7BF7, - 6341: 0x7C17, - 6342: 0x7C0D, - 6343: 0x7BF6, - 6344: 0x7C23, - 6345: 0x7C27, - 6346: 0x7C2A, - 6347: 0x7C1F, - 6348: 0x7C37, - 6349: 0x7C2B, - 6350: 0x7C3D, - 6351: 0x7C4C, - 6352: 0x7C43, - 6353: 0x7C54, - 6354: 0x7C4F, - 6355: 0x7C40, - 6356: 0x7C50, - 6357: 0x7C58, - 6358: 0x7C5F, - 6359: 0x7C64, - 6360: 0x7C56, - 6361: 0x7C65, - 6362: 0x7C6C, - 6363: 0x7C75, - 6364: 0x7C83, - 6365: 0x7C90, - 6366: 0x7CA4, - 6367: 0x7CAD, - 6368: 0x7CA2, - 6369: 0x7CAB, - 6370: 0x7CA1, - 6371: 0x7CA8, - 6372: 0x7CB3, - 6373: 0x7CB2, - 6374: 0x7CB1, - 6375: 0x7CAE, - 6376: 0x7CB9, - 6377: 0x7CBD, - 6378: 0x7CC0, - 6379: 0x7CC5, - 6380: 0x7CC2, - 6381: 0x7CD8, - 6382: 0x7CD2, - 6383: 0x7CDC, - 6384: 0x7CE2, - 6385: 0x9B3B, - 6386: 0x7CEF, - 6387: 0x7CF2, - 6388: 0x7CF4, - 6389: 0x7CF6, - 6390: 0x7CFA, - 6391: 0x7D06, - 6392: 0x7D02, - 6393: 0x7D1C, - 6394: 0x7D15, - 6395: 0x7D0A, - 6396: 0x7D45, - 6397: 0x7D4B, - 6398: 0x7D2E, - 6399: 0x7D32, - 6400: 0x7D3F, - 6401: 0x7D35, - 6402: 0x7D46, - 6403: 0x7D73, - 6404: 0x7D56, - 6405: 0x7D4E, - 6406: 0x7D72, - 6407: 0x7D68, - 6408: 0x7D6E, - 6409: 0x7D4F, - 6410: 0x7D63, - 6411: 0x7D93, - 6412: 0x7D89, - 6413: 0x7D5B, - 6414: 0x7D8F, - 6415: 0x7D7D, - 6416: 0x7D9B, - 6417: 0x7DBA, - 6418: 0x7DAE, - 6419: 0x7DA3, - 6420: 0x7DB5, - 6421: 0x7DC7, - 6422: 0x7DBD, - 6423: 0x7DAB, - 6424: 0x7E3D, - 6425: 0x7DA2, - 6426: 0x7DAF, - 6427: 0x7DDC, - 6428: 0x7DB8, - 6429: 0x7D9F, - 6430: 0x7DB0, - 6431: 0x7DD8, - 6432: 0x7DDD, - 6433: 0x7DE4, - 6434: 0x7DDE, - 6435: 0x7DFB, - 6436: 0x7DF2, - 6437: 0x7DE1, - 6438: 0x7E05, - 6439: 0x7E0A, - 6440: 0x7E23, - 6441: 0x7E21, - 6442: 0x7E12, - 6443: 0x7E31, - 6444: 0x7E1F, - 6445: 0x7E09, - 6446: 0x7E0B, - 6447: 0x7E22, - 6448: 0x7E46, - 6449: 0x7E66, - 6450: 0x7E3B, - 6451: 0x7E35, - 6452: 0x7E39, - 6453: 0x7E43, - 6454: 0x7E37, - 6455: 0x7E32, - 6456: 0x7E3A, - 6457: 0x7E67, - 6458: 0x7E5D, - 6459: 0x7E56, - 6460: 0x7E5E, - 6461: 0x7E59, - 6462: 0x7E5A, - 6463: 0x7E79, - 6464: 0x7E6A, - 6465: 0x7E69, - 6466: 0x7E7C, - 6467: 0x7E7B, - 6468: 0x7E83, - 6469: 0x7DD5, - 6470: 0x7E7D, - 6471: 0x8FAE, - 6472: 0x7E7F, - 6473: 0x7E88, - 6474: 0x7E89, - 6475: 0x7E8C, - 6476: 0x7E92, - 6477: 0x7E90, - 6478: 0x7E93, - 6479: 0x7E94, - 6480: 0x7E96, - 6481: 0x7E8E, - 6482: 0x7E9B, - 6483: 0x7E9C, - 6484: 0x7F38, - 6485: 0x7F3A, - 6486: 0x7F45, - 6487: 0x7F4C, - 6488: 0x7F4D, - 6489: 0x7F4E, - 6490: 0x7F50, - 6491: 0x7F51, - 6492: 0x7F55, - 6493: 0x7F54, - 6494: 0x7F58, - 6495: 0x7F5F, - 6496: 0x7F60, - 6497: 0x7F68, - 6498: 0x7F69, - 6499: 0x7F67, - 6500: 0x7F78, - 6501: 0x7F82, - 6502: 0x7F86, - 6503: 0x7F83, - 6504: 0x7F88, - 6505: 0x7F87, - 6506: 0x7F8C, - 6507: 0x7F94, - 6508: 0x7F9E, - 6509: 0x7F9D, - 6510: 0x7F9A, - 6511: 0x7FA3, - 6512: 0x7FAF, - 6513: 0x7FB2, - 6514: 0x7FB9, - 6515: 0x7FAE, - 6516: 0x7FB6, - 6517: 0x7FB8, - 6518: 0x8B71, - 6519: 0x7FC5, - 6520: 0x7FC6, - 6521: 0x7FCA, - 6522: 0x7FD5, - 6523: 0x7FD4, - 6524: 0x7FE1, - 6525: 0x7FE6, - 6526: 0x7FE9, - 6527: 0x7FF3, - 6528: 0x7FF9, - 6529: 0x98DC, - 6530: 0x8006, - 6531: 0x8004, - 6532: 0x800B, - 6533: 0x8012, - 6534: 0x8018, - 6535: 0x8019, - 6536: 0x801C, - 6537: 0x8021, - 6538: 0x8028, - 6539: 0x803F, - 6540: 0x803B, - 6541: 0x804A, - 6542: 0x8046, - 6543: 0x8052, - 6544: 0x8058, - 6545: 0x805A, - 6546: 0x805F, - 6547: 0x8062, - 6548: 0x8068, - 6549: 0x8073, - 6550: 0x8072, - 6551: 0x8070, - 6552: 0x8076, - 6553: 0x8079, - 6554: 0x807D, - 6555: 0x807F, - 6556: 0x8084, - 6557: 0x8086, - 6558: 0x8085, - 6559: 0x809B, - 6560: 0x8093, - 6561: 0x809A, - 6562: 0x80AD, - 6563: 0x5190, - 6564: 0x80AC, - 6565: 0x80DB, - 6566: 0x80E5, - 6567: 0x80D9, - 6568: 0x80DD, - 6569: 0x80C4, - 6570: 0x80DA, - 6571: 0x80D6, - 6572: 0x8109, - 6573: 0x80EF, - 6574: 0x80F1, - 6575: 0x811B, - 6576: 0x8129, - 6577: 0x8123, - 6578: 0x812F, - 6579: 0x814B, - 6580: 0x968B, - 6581: 0x8146, - 6582: 0x813E, - 6583: 0x8153, - 6584: 0x8151, - 6585: 0x80FC, - 6586: 0x8171, - 6587: 0x816E, - 6588: 0x8165, - 6589: 0x8166, - 6590: 0x8174, - 6591: 0x8183, - 6592: 0x8188, - 6593: 0x818A, - 6594: 0x8180, - 6595: 0x8182, - 6596: 0x81A0, - 6597: 0x8195, - 6598: 0x81A4, - 6599: 0x81A3, - 6600: 0x815F, - 6601: 0x8193, - 6602: 0x81A9, - 6603: 0x81B0, - 6604: 0x81B5, - 6605: 0x81BE, - 6606: 0x81B8, - 6607: 0x81BD, - 6608: 0x81C0, - 6609: 0x81C2, - 6610: 0x81BA, - 6611: 0x81C9, - 6612: 0x81CD, - 6613: 0x81D1, - 6614: 0x81D9, - 6615: 0x81D8, - 6616: 0x81C8, - 6617: 0x81DA, - 6618: 0x81DF, - 6619: 0x81E0, - 6620: 0x81E7, - 6621: 0x81FA, - 6622: 0x81FB, - 6623: 0x81FE, - 6624: 0x8201, - 6625: 0x8202, - 6626: 0x8205, - 6627: 0x8207, - 6628: 0x820A, - 6629: 0x820D, - 6630: 0x8210, - 6631: 0x8216, - 6632: 0x8229, - 6633: 0x822B, - 6634: 0x8238, - 6635: 0x8233, - 6636: 0x8240, - 6637: 0x8259, - 6638: 0x8258, - 6639: 0x825D, - 6640: 0x825A, - 6641: 0x825F, - 6642: 0x8264, - 6643: 0x8262, - 6644: 0x8268, - 6645: 0x826A, - 6646: 0x826B, - 6647: 0x822E, - 6648: 0x8271, - 6649: 0x8277, - 6650: 0x8278, - 6651: 0x827E, - 6652: 0x828D, - 6653: 0x8292, - 6654: 0x82AB, - 6655: 0x829F, - 6656: 0x82BB, - 6657: 0x82AC, - 6658: 0x82E1, - 6659: 0x82E3, - 6660: 0x82DF, - 6661: 0x82D2, - 6662: 0x82F4, - 6663: 0x82F3, - 6664: 0x82FA, - 6665: 0x8393, - 6666: 0x8303, - 6667: 0x82FB, - 6668: 0x82F9, - 6669: 0x82DE, - 6670: 0x8306, - 6671: 0x82DC, - 6672: 0x8309, - 6673: 0x82D9, - 6674: 0x8335, - 6675: 0x8334, - 6676: 0x8316, - 6677: 0x8332, - 6678: 0x8331, - 6679: 0x8340, - 6680: 0x8339, - 6681: 0x8350, - 6682: 0x8345, - 6683: 0x832F, - 6684: 0x832B, - 6685: 0x8317, - 6686: 0x8318, - 6687: 0x8385, - 6688: 0x839A, - 6689: 0x83AA, - 6690: 0x839F, - 6691: 0x83A2, - 6692: 0x8396, - 6693: 0x8323, - 6694: 0x838E, - 6695: 0x8387, - 6696: 0x838A, - 6697: 0x837C, - 6698: 0x83B5, - 6699: 0x8373, - 6700: 0x8375, - 6701: 0x83A0, - 6702: 0x8389, - 6703: 0x83A8, - 6704: 0x83F4, - 6705: 0x8413, - 6706: 0x83EB, - 6707: 0x83CE, - 6708: 0x83FD, - 6709: 0x8403, - 6710: 0x83D8, - 6711: 0x840B, - 6712: 0x83C1, - 6713: 0x83F7, - 6714: 0x8407, - 6715: 0x83E0, - 6716: 0x83F2, - 6717: 0x840D, - 6718: 0x8422, - 6719: 0x8420, - 6720: 0x83BD, - 6721: 0x8438, - 6722: 0x8506, - 6723: 0x83FB, - 6724: 0x846D, - 6725: 0x842A, - 6726: 0x843C, - 6727: 0x855A, - 6728: 0x8484, - 6729: 0x8477, - 6730: 0x846B, - 6731: 0x84AD, - 6732: 0x846E, - 6733: 0x8482, - 6734: 0x8469, - 6735: 0x8446, - 6736: 0x842C, - 6737: 0x846F, - 6738: 0x8479, - 6739: 0x8435, - 6740: 0x84CA, - 6741: 0x8462, - 6742: 0x84B9, - 6743: 0x84BF, - 6744: 0x849F, - 6745: 0x84D9, - 6746: 0x84CD, - 6747: 0x84BB, - 6748: 0x84DA, - 6749: 0x84D0, - 6750: 0x84C1, - 6751: 0x84C6, - 6752: 0x84D6, - 6753: 0x84A1, - 6754: 0x8521, - 6755: 0x84FF, - 6756: 0x84F4, - 6757: 0x8517, - 6758: 0x8518, - 6759: 0x852C, - 6760: 0x851F, - 6761: 0x8515, - 6762: 0x8514, - 6763: 0x84FC, - 6764: 0x8540, - 6765: 0x8563, - 6766: 0x8558, - 6767: 0x8548, - 6768: 0x8541, - 6769: 0x8602, - 6770: 0x854B, - 6771: 0x8555, - 6772: 0x8580, - 6773: 0x85A4, - 6774: 0x8588, - 6775: 0x8591, - 6776: 0x858A, - 6777: 0x85A8, - 6778: 0x856D, - 6779: 0x8594, - 6780: 0x859B, - 6781: 0x85EA, - 6782: 0x8587, - 6783: 0x859C, - 6784: 0x8577, - 6785: 0x857E, - 6786: 0x8590, - 6787: 0x85C9, - 6788: 0x85BA, - 6789: 0x85CF, - 6790: 0x85B9, - 6791: 0x85D0, - 6792: 0x85D5, - 6793: 0x85DD, - 6794: 0x85E5, - 6795: 0x85DC, - 6796: 0x85F9, - 6797: 0x860A, - 6798: 0x8613, - 6799: 0x860B, - 6800: 0x85FE, - 6801: 0x85FA, - 6802: 0x8606, - 6803: 0x8622, - 6804: 0x861A, - 6805: 0x8630, - 6806: 0x863F, - 6807: 0x864D, - 6808: 0x4E55, - 6809: 0x8654, - 6810: 0x865F, - 6811: 0x8667, - 6812: 0x8671, - 6813: 0x8693, - 6814: 0x86A3, - 6815: 0x86A9, - 6816: 0x86AA, - 6817: 0x868B, - 6818: 0x868C, - 6819: 0x86B6, - 6820: 0x86AF, - 6821: 0x86C4, - 6822: 0x86C6, - 6823: 0x86B0, - 6824: 0x86C9, - 6825: 0x8823, - 6826: 0x86AB, - 6827: 0x86D4, - 6828: 0x86DE, - 6829: 0x86E9, - 6830: 0x86EC, - 6831: 0x86DF, - 6832: 0x86DB, - 6833: 0x86EF, - 6834: 0x8712, - 6835: 0x8706, - 6836: 0x8708, - 6837: 0x8700, - 6838: 0x8703, - 6839: 0x86FB, - 6840: 0x8711, - 6841: 0x8709, - 6842: 0x870D, - 6843: 0x86F9, - 6844: 0x870A, - 6845: 0x8734, - 6846: 0x873F, - 6847: 0x8737, - 6848: 0x873B, - 6849: 0x8725, - 6850: 0x8729, - 6851: 0x871A, - 6852: 0x8760, - 6853: 0x875F, - 6854: 0x8778, - 6855: 0x874C, - 6856: 0x874E, - 6857: 0x8774, - 6858: 0x8757, - 6859: 0x8768, - 6860: 0x876E, - 6861: 0x8759, - 6862: 0x8753, - 6863: 0x8763, - 6864: 0x876A, - 6865: 0x8805, - 6866: 0x87A2, - 6867: 0x879F, - 6868: 0x8782, - 6869: 0x87AF, - 6870: 0x87CB, - 6871: 0x87BD, - 6872: 0x87C0, - 6873: 0x87D0, - 6874: 0x96D6, - 6875: 0x87AB, - 6876: 0x87C4, - 6877: 0x87B3, - 6878: 0x87C7, - 6879: 0x87C6, - 6880: 0x87BB, - 6881: 0x87EF, - 6882: 0x87F2, - 6883: 0x87E0, - 6884: 0x880F, - 6885: 0x880D, - 6886: 0x87FE, - 6887: 0x87F6, - 6888: 0x87F7, - 6889: 0x880E, - 6890: 0x87D2, - 6891: 0x8811, - 6892: 0x8816, - 6893: 0x8815, - 6894: 0x8822, - 6895: 0x8821, - 6896: 0x8831, - 6897: 0x8836, - 6898: 0x8839, - 6899: 0x8827, - 6900: 0x883B, - 6901: 0x8844, - 6902: 0x8842, - 6903: 0x8852, - 6904: 0x8859, - 6905: 0x885E, - 6906: 0x8862, - 6907: 0x886B, - 6908: 0x8881, - 6909: 0x887E, - 6910: 0x889E, - 6911: 0x8875, - 6912: 0x887D, - 6913: 0x88B5, - 6914: 0x8872, - 6915: 0x8882, - 6916: 0x8897, - 6917: 0x8892, - 6918: 0x88AE, - 6919: 0x8899, - 6920: 0x88A2, - 6921: 0x888D, - 6922: 0x88A4, - 6923: 0x88B0, - 6924: 0x88BF, - 6925: 0x88B1, - 6926: 0x88C3, - 6927: 0x88C4, - 6928: 0x88D4, - 6929: 0x88D8, - 6930: 0x88D9, - 6931: 0x88DD, - 6932: 0x88F9, - 6933: 0x8902, - 6934: 0x88FC, - 6935: 0x88F4, - 6936: 0x88E8, - 6937: 0x88F2, - 6938: 0x8904, - 6939: 0x890C, - 6940: 0x890A, - 6941: 0x8913, - 6942: 0x8943, - 6943: 0x891E, - 6944: 0x8925, - 6945: 0x892A, - 6946: 0x892B, - 6947: 0x8941, - 6948: 0x8944, - 6949: 0x893B, - 6950: 0x8936, - 6951: 0x8938, - 6952: 0x894C, - 6953: 0x891D, - 6954: 0x8960, - 6955: 0x895E, - 6956: 0x8966, - 6957: 0x8964, - 6958: 0x896D, - 6959: 0x896A, - 6960: 0x896F, - 6961: 0x8974, - 6962: 0x8977, - 6963: 0x897E, - 6964: 0x8983, - 6965: 0x8988, - 6966: 0x898A, - 6967: 0x8993, - 6968: 0x8998, - 6969: 0x89A1, - 6970: 0x89A9, - 6971: 0x89A6, - 6972: 0x89AC, - 6973: 0x89AF, - 6974: 0x89B2, - 6975: 0x89BA, - 6976: 0x89BD, - 6977: 0x89BF, - 6978: 0x89C0, - 6979: 0x89DA, - 6980: 0x89DC, - 6981: 0x89DD, - 6982: 0x89E7, - 6983: 0x89F4, - 6984: 0x89F8, - 6985: 0x8A03, - 6986: 0x8A16, - 6987: 0x8A10, - 6988: 0x8A0C, - 6989: 0x8A1B, - 6990: 0x8A1D, - 6991: 0x8A25, - 6992: 0x8A36, - 6993: 0x8A41, - 6994: 0x8A5B, - 6995: 0x8A52, - 6996: 0x8A46, - 6997: 0x8A48, - 6998: 0x8A7C, - 6999: 0x8A6D, - 7000: 0x8A6C, - 7001: 0x8A62, - 7002: 0x8A85, - 7003: 0x8A82, - 7004: 0x8A84, - 7005: 0x8AA8, - 7006: 0x8AA1, - 7007: 0x8A91, - 7008: 0x8AA5, - 7009: 0x8AA6, - 7010: 0x8A9A, - 7011: 0x8AA3, - 7012: 0x8AC4, - 7013: 0x8ACD, - 7014: 0x8AC2, - 7015: 0x8ADA, - 7016: 0x8AEB, - 7017: 0x8AF3, - 7018: 0x8AE7, - 7019: 0x8AE4, - 7020: 0x8AF1, - 7021: 0x8B14, - 7022: 0x8AE0, - 7023: 0x8AE2, - 7024: 0x8AF7, - 7025: 0x8ADE, - 7026: 0x8ADB, - 7027: 0x8B0C, - 7028: 0x8B07, - 7029: 0x8B1A, - 7030: 0x8AE1, - 7031: 0x8B16, - 7032: 0x8B10, - 7033: 0x8B17, - 7034: 0x8B20, - 7035: 0x8B33, - 7036: 0x97AB, - 7037: 0x8B26, - 7038: 0x8B2B, - 7039: 0x8B3E, - 7040: 0x8B28, - 7041: 0x8B41, - 7042: 0x8B4C, - 7043: 0x8B4F, - 7044: 0x8B4E, - 7045: 0x8B49, - 7046: 0x8B56, - 7047: 0x8B5B, - 7048: 0x8B5A, - 7049: 0x8B6B, - 7050: 0x8B5F, - 7051: 0x8B6C, - 7052: 0x8B6F, - 7053: 0x8B74, - 7054: 0x8B7D, - 7055: 0x8B80, - 7056: 0x8B8C, - 7057: 0x8B8E, - 7058: 0x8B92, - 7059: 0x8B93, - 7060: 0x8B96, - 7061: 0x8B99, - 7062: 0x8B9A, - 7063: 0x8C3A, - 7064: 0x8C41, - 7065: 0x8C3F, - 7066: 0x8C48, - 7067: 0x8C4C, - 7068: 0x8C4E, - 7069: 0x8C50, - 7070: 0x8C55, - 7071: 0x8C62, - 7072: 0x8C6C, - 7073: 0x8C78, - 7074: 0x8C7A, - 7075: 0x8C82, - 7076: 0x8C89, - 7077: 0x8C85, - 7078: 0x8C8A, - 7079: 0x8C8D, - 7080: 0x8C8E, - 7081: 0x8C94, - 7082: 0x8C7C, - 7083: 0x8C98, - 7084: 0x621D, - 7085: 0x8CAD, - 7086: 0x8CAA, - 7087: 0x8CBD, - 7088: 0x8CB2, - 7089: 0x8CB3, - 7090: 0x8CAE, - 7091: 0x8CB6, - 7092: 0x8CC8, - 7093: 0x8CC1, - 7094: 0x8CE4, - 7095: 0x8CE3, - 7096: 0x8CDA, - 7097: 0x8CFD, - 7098: 0x8CFA, - 7099: 0x8CFB, - 7100: 0x8D04, - 7101: 0x8D05, - 7102: 0x8D0A, - 7103: 0x8D07, - 7104: 0x8D0F, - 7105: 0x8D0D, - 7106: 0x8D10, - 7107: 0x9F4E, - 7108: 0x8D13, - 7109: 0x8CCD, - 7110: 0x8D14, - 7111: 0x8D16, - 7112: 0x8D67, - 7113: 0x8D6D, - 7114: 0x8D71, - 7115: 0x8D73, - 7116: 0x8D81, - 7117: 0x8D99, - 7118: 0x8DC2, - 7119: 0x8DBE, - 7120: 0x8DBA, - 7121: 0x8DCF, - 7122: 0x8DDA, - 7123: 0x8DD6, - 7124: 0x8DCC, - 7125: 0x8DDB, - 7126: 0x8DCB, - 7127: 0x8DEA, - 7128: 0x8DEB, - 7129: 0x8DDF, - 7130: 0x8DE3, - 7131: 0x8DFC, - 7132: 0x8E08, - 7133: 0x8E09, - 7134: 0x8DFF, - 7135: 0x8E1D, - 7136: 0x8E1E, - 7137: 0x8E10, - 7138: 0x8E1F, - 7139: 0x8E42, - 7140: 0x8E35, - 7141: 0x8E30, - 7142: 0x8E34, - 7143: 0x8E4A, - 7144: 0x8E47, - 7145: 0x8E49, - 7146: 0x8E4C, - 7147: 0x8E50, - 7148: 0x8E48, - 7149: 0x8E59, - 7150: 0x8E64, - 7151: 0x8E60, - 7152: 0x8E2A, - 7153: 0x8E63, - 7154: 0x8E55, - 7155: 0x8E76, - 7156: 0x8E72, - 7157: 0x8E7C, - 7158: 0x8E81, - 7159: 0x8E87, - 7160: 0x8E85, - 7161: 0x8E84, - 7162: 0x8E8B, - 7163: 0x8E8A, - 7164: 0x8E93, - 7165: 0x8E91, - 7166: 0x8E94, - 7167: 0x8E99, - 7168: 0x8EAA, - 7169: 0x8EA1, - 7170: 0x8EAC, - 7171: 0x8EB0, - 7172: 0x8EC6, - 7173: 0x8EB1, - 7174: 0x8EBE, - 7175: 0x8EC5, - 7176: 0x8EC8, - 7177: 0x8ECB, - 7178: 0x8EDB, - 7179: 0x8EE3, - 7180: 0x8EFC, - 7181: 0x8EFB, - 7182: 0x8EEB, - 7183: 0x8EFE, - 7184: 0x8F0A, - 7185: 0x8F05, - 7186: 0x8F15, - 7187: 0x8F12, - 7188: 0x8F19, - 7189: 0x8F13, - 7190: 0x8F1C, - 7191: 0x8F1F, - 7192: 0x8F1B, - 7193: 0x8F0C, - 7194: 0x8F26, - 7195: 0x8F33, - 7196: 0x8F3B, - 7197: 0x8F39, - 7198: 0x8F45, - 7199: 0x8F42, - 7200: 0x8F3E, - 7201: 0x8F4C, - 7202: 0x8F49, - 7203: 0x8F46, - 7204: 0x8F4E, - 7205: 0x8F57, - 7206: 0x8F5C, - 7207: 0x8F62, - 7208: 0x8F63, - 7209: 0x8F64, - 7210: 0x8F9C, - 7211: 0x8F9F, - 7212: 0x8FA3, - 7213: 0x8FAD, - 7214: 0x8FAF, - 7215: 0x8FB7, - 7216: 0x8FDA, - 7217: 0x8FE5, - 7218: 0x8FE2, - 7219: 0x8FEA, - 7220: 0x8FEF, - 7221: 0x9087, - 7222: 0x8FF4, - 7223: 0x9005, - 7224: 0x8FF9, - 7225: 0x8FFA, - 7226: 0x9011, - 7227: 0x9015, - 7228: 0x9021, - 7229: 0x900D, - 7230: 0x901E, - 7231: 0x9016, - 7232: 0x900B, - 7233: 0x9027, - 7234: 0x9036, - 7235: 0x9035, - 7236: 0x9039, - 7237: 0x8FF8, - 7238: 0x904F, - 7239: 0x9050, - 7240: 0x9051, - 7241: 0x9052, - 7242: 0x900E, - 7243: 0x9049, - 7244: 0x903E, - 7245: 0x9056, - 7246: 0x9058, - 7247: 0x905E, - 7248: 0x9068, - 7249: 0x906F, - 7250: 0x9076, - 7251: 0x96A8, - 7252: 0x9072, - 7253: 0x9082, - 7254: 0x907D, - 7255: 0x9081, - 7256: 0x9080, - 7257: 0x908A, - 7258: 0x9089, - 7259: 0x908F, - 7260: 0x90A8, - 7261: 0x90AF, - 7262: 0x90B1, - 7263: 0x90B5, - 7264: 0x90E2, - 7265: 0x90E4, - 7266: 0x6248, - 7267: 0x90DB, - 7268: 0x9102, - 7269: 0x9112, - 7270: 0x9119, - 7271: 0x9132, - 7272: 0x9130, - 7273: 0x914A, - 7274: 0x9156, - 7275: 0x9158, - 7276: 0x9163, - 7277: 0x9165, - 7278: 0x9169, - 7279: 0x9173, - 7280: 0x9172, - 7281: 0x918B, - 7282: 0x9189, - 7283: 0x9182, - 7284: 0x91A2, - 7285: 0x91AB, - 7286: 0x91AF, - 7287: 0x91AA, - 7288: 0x91B5, - 7289: 0x91B4, - 7290: 0x91BA, - 7291: 0x91C0, - 7292: 0x91C1, - 7293: 0x91C9, - 7294: 0x91CB, - 7295: 0x91D0, - 7296: 0x91D6, - 7297: 0x91DF, - 7298: 0x91E1, - 7299: 0x91DB, - 7300: 0x91FC, - 7301: 0x91F5, - 7302: 0x91F6, - 7303: 0x921E, - 7304: 0x91FF, - 7305: 0x9214, - 7306: 0x922C, - 7307: 0x9215, - 7308: 0x9211, - 7309: 0x925E, - 7310: 0x9257, - 7311: 0x9245, - 7312: 0x9249, - 7313: 0x9264, - 7314: 0x9248, - 7315: 0x9295, - 7316: 0x923F, - 7317: 0x924B, - 7318: 0x9250, - 7319: 0x929C, - 7320: 0x9296, - 7321: 0x9293, - 7322: 0x929B, - 7323: 0x925A, - 7324: 0x92CF, - 7325: 0x92B9, - 7326: 0x92B7, - 7327: 0x92E9, - 7328: 0x930F, - 7329: 0x92FA, - 7330: 0x9344, - 7331: 0x932E, - 7332: 0x9319, - 7333: 0x9322, - 7334: 0x931A, - 7335: 0x9323, - 7336: 0x933A, - 7337: 0x9335, - 7338: 0x933B, - 7339: 0x935C, - 7340: 0x9360, - 7341: 0x937C, - 7342: 0x936E, - 7343: 0x9356, - 7344: 0x93B0, - 7345: 0x93AC, - 7346: 0x93AD, - 7347: 0x9394, - 7348: 0x93B9, - 7349: 0x93D6, - 7350: 0x93D7, - 7351: 0x93E8, - 7352: 0x93E5, - 7353: 0x93D8, - 7354: 0x93C3, - 7355: 0x93DD, - 7356: 0x93D0, - 7357: 0x93C8, - 7358: 0x93E4, - 7359: 0x941A, - 7360: 0x9414, - 7361: 0x9413, - 7362: 0x9403, - 7363: 0x9407, - 7364: 0x9410, - 7365: 0x9436, - 7366: 0x942B, - 7367: 0x9435, - 7368: 0x9421, - 7369: 0x943A, - 7370: 0x9441, - 7371: 0x9452, - 7372: 0x9444, - 7373: 0x945B, - 7374: 0x9460, - 7375: 0x9462, - 7376: 0x945E, - 7377: 0x946A, - 7378: 0x9229, - 7379: 0x9470, - 7380: 0x9475, - 7381: 0x9477, - 7382: 0x947D, - 7383: 0x945A, - 7384: 0x947C, - 7385: 0x947E, - 7386: 0x9481, - 7387: 0x947F, - 7388: 0x9582, - 7389: 0x9587, - 7390: 0x958A, - 7391: 0x9594, - 7392: 0x9596, - 7393: 0x9598, - 7394: 0x9599, - 7395: 0x95A0, - 7396: 0x95A8, - 7397: 0x95A7, - 7398: 0x95AD, - 7399: 0x95BC, - 7400: 0x95BB, - 7401: 0x95B9, - 7402: 0x95BE, - 7403: 0x95CA, - 7404: 0x6FF6, - 7405: 0x95C3, - 7406: 0x95CD, - 7407: 0x95CC, - 7408: 0x95D5, - 7409: 0x95D4, - 7410: 0x95D6, - 7411: 0x95DC, - 7412: 0x95E1, - 7413: 0x95E5, - 7414: 0x95E2, - 7415: 0x9621, - 7416: 0x9628, - 7417: 0x962E, - 7418: 0x962F, - 7419: 0x9642, - 7420: 0x964C, - 7421: 0x964F, - 7422: 0x964B, - 7423: 0x9677, - 7424: 0x965C, - 7425: 0x965E, - 7426: 0x965D, - 7427: 0x965F, - 7428: 0x9666, - 7429: 0x9672, - 7430: 0x966C, - 7431: 0x968D, - 7432: 0x9698, - 7433: 0x9695, - 7434: 0x9697, - 7435: 0x96AA, - 7436: 0x96A7, - 7437: 0x96B1, - 7438: 0x96B2, - 7439: 0x96B0, - 7440: 0x96B4, - 7441: 0x96B6, - 7442: 0x96B8, - 7443: 0x96B9, - 7444: 0x96CE, - 7445: 0x96CB, - 7446: 0x96C9, - 7447: 0x96CD, - 7448: 0x894D, - 7449: 0x96DC, - 7450: 0x970D, - 7451: 0x96D5, - 7452: 0x96F9, - 7453: 0x9704, - 7454: 0x9706, - 7455: 0x9708, - 7456: 0x9713, - 7457: 0x970E, - 7458: 0x9711, - 7459: 0x970F, - 7460: 0x9716, - 7461: 0x9719, - 7462: 0x9724, - 7463: 0x972A, - 7464: 0x9730, - 7465: 0x9739, - 7466: 0x973D, - 7467: 0x973E, - 7468: 0x9744, - 7469: 0x9746, - 7470: 0x9748, - 7471: 0x9742, - 7472: 0x9749, - 7473: 0x975C, - 7474: 0x9760, - 7475: 0x9764, - 7476: 0x9766, - 7477: 0x9768, - 7478: 0x52D2, - 7479: 0x976B, - 7480: 0x9771, - 7481: 0x9779, - 7482: 0x9785, - 7483: 0x977C, - 7484: 0x9781, - 7485: 0x977A, - 7486: 0x9786, - 7487: 0x978B, - 7488: 0x978F, - 7489: 0x9790, - 7490: 0x979C, - 7491: 0x97A8, - 7492: 0x97A6, - 7493: 0x97A3, - 7494: 0x97B3, - 7495: 0x97B4, - 7496: 0x97C3, - 7497: 0x97C6, - 7498: 0x97C8, - 7499: 0x97CB, - 7500: 0x97DC, - 7501: 0x97ED, - 7502: 0x9F4F, - 7503: 0x97F2, - 7504: 0x7ADF, - 7505: 0x97F6, - 7506: 0x97F5, - 7507: 0x980F, - 7508: 0x980C, - 7509: 0x9838, - 7510: 0x9824, - 7511: 0x9821, - 7512: 0x9837, - 7513: 0x983D, - 7514: 0x9846, - 7515: 0x984F, - 7516: 0x984B, - 7517: 0x986B, - 7518: 0x986F, - 7519: 0x9870, - 7520: 0x9871, - 7521: 0x9874, - 7522: 0x9873, - 7523: 0x98AA, - 7524: 0x98AF, - 7525: 0x98B1, - 7526: 0x98B6, - 7527: 0x98C4, - 7528: 0x98C3, - 7529: 0x98C6, - 7530: 0x98E9, - 7531: 0x98EB, - 7532: 0x9903, - 7533: 0x9909, - 7534: 0x9912, - 7535: 0x9914, - 7536: 0x9918, - 7537: 0x9921, - 7538: 0x991D, - 7539: 0x991E, - 7540: 0x9924, - 7541: 0x9920, - 7542: 0x992C, - 7543: 0x992E, - 7544: 0x993D, - 7545: 0x993E, - 7546: 0x9942, - 7547: 0x9949, - 7548: 0x9945, - 7549: 0x9950, - 7550: 0x994B, - 7551: 0x9951, - 7552: 0x9952, - 7553: 0x994C, - 7554: 0x9955, - 7555: 0x9997, - 7556: 0x9998, - 7557: 0x99A5, - 7558: 0x99AD, - 7559: 0x99AE, - 7560: 0x99BC, - 7561: 0x99DF, - 7562: 0x99DB, - 7563: 0x99DD, - 7564: 0x99D8, - 7565: 0x99D1, - 7566: 0x99ED, - 7567: 0x99EE, - 7568: 0x99F1, - 7569: 0x99F2, - 7570: 0x99FB, - 7571: 0x99F8, - 7572: 0x9A01, - 7573: 0x9A0F, - 7574: 0x9A05, - 7575: 0x99E2, - 7576: 0x9A19, - 7577: 0x9A2B, - 7578: 0x9A37, - 7579: 0x9A45, - 7580: 0x9A42, - 7581: 0x9A40, - 7582: 0x9A43, - 7583: 0x9A3E, - 7584: 0x9A55, - 7585: 0x9A4D, - 7586: 0x9A5B, - 7587: 0x9A57, - 7588: 0x9A5F, - 7589: 0x9A62, - 7590: 0x9A65, - 7591: 0x9A64, - 7592: 0x9A69, - 7593: 0x9A6B, - 7594: 0x9A6A, - 7595: 0x9AAD, - 7596: 0x9AB0, - 7597: 0x9ABC, - 7598: 0x9AC0, - 7599: 0x9ACF, - 7600: 0x9AD1, - 7601: 0x9AD3, - 7602: 0x9AD4, - 7603: 0x9ADE, - 7604: 0x9ADF, - 7605: 0x9AE2, - 7606: 0x9AE3, - 7607: 0x9AE6, - 7608: 0x9AEF, - 7609: 0x9AEB, - 7610: 0x9AEE, - 7611: 0x9AF4, - 7612: 0x9AF1, - 7613: 0x9AF7, - 7614: 0x9AFB, - 7615: 0x9B06, - 7616: 0x9B18, - 7617: 0x9B1A, - 7618: 0x9B1F, - 7619: 0x9B22, - 7620: 0x9B23, - 7621: 0x9B25, - 7622: 0x9B27, - 7623: 0x9B28, - 7624: 0x9B29, - 7625: 0x9B2A, - 7626: 0x9B2E, - 7627: 0x9B2F, - 7628: 0x9B32, - 7629: 0x9B44, - 7630: 0x9B43, - 7631: 0x9B4F, - 7632: 0x9B4D, - 7633: 0x9B4E, - 7634: 0x9B51, - 7635: 0x9B58, - 7636: 0x9B74, - 7637: 0x9B93, - 7638: 0x9B83, - 7639: 0x9B91, - 7640: 0x9B96, - 7641: 0x9B97, - 7642: 0x9B9F, - 7643: 0x9BA0, - 7644: 0x9BA8, - 7645: 0x9BB4, - 7646: 0x9BC0, - 7647: 0x9BCA, - 7648: 0x9BB9, - 7649: 0x9BC6, - 7650: 0x9BCF, - 7651: 0x9BD1, - 7652: 0x9BD2, - 7653: 0x9BE3, - 7654: 0x9BE2, - 7655: 0x9BE4, - 7656: 0x9BD4, - 7657: 0x9BE1, - 7658: 0x9C3A, - 7659: 0x9BF2, - 7660: 0x9BF1, - 7661: 0x9BF0, - 7662: 0x9C15, - 7663: 0x9C14, - 7664: 0x9C09, - 7665: 0x9C13, - 7666: 0x9C0C, - 7667: 0x9C06, - 7668: 0x9C08, - 7669: 0x9C12, - 7670: 0x9C0A, - 7671: 0x9C04, - 7672: 0x9C2E, - 7673: 0x9C1B, - 7674: 0x9C25, - 7675: 0x9C24, - 7676: 0x9C21, - 7677: 0x9C30, - 7678: 0x9C47, - 7679: 0x9C32, - 7680: 0x9C46, - 7681: 0x9C3E, - 7682: 0x9C5A, - 7683: 0x9C60, - 7684: 0x9C67, - 7685: 0x9C76, - 7686: 0x9C78, - 7687: 0x9CE7, - 7688: 0x9CEC, - 7689: 0x9CF0, - 7690: 0x9D09, - 7691: 0x9D08, - 7692: 0x9CEB, - 7693: 0x9D03, - 7694: 0x9D06, - 7695: 0x9D2A, - 7696: 0x9D26, - 7697: 0x9DAF, - 7698: 0x9D23, - 7699: 0x9D1F, - 7700: 0x9D44, - 7701: 0x9D15, - 7702: 0x9D12, - 7703: 0x9D41, - 7704: 0x9D3F, - 7705: 0x9D3E, - 7706: 0x9D46, - 7707: 0x9D48, - 7708: 0x9D5D, - 7709: 0x9D5E, - 7710: 0x9D64, - 7711: 0x9D51, - 7712: 0x9D50, - 7713: 0x9D59, - 7714: 0x9D72, - 7715: 0x9D89, - 7716: 0x9D87, - 7717: 0x9DAB, - 7718: 0x9D6F, - 7719: 0x9D7A, - 7720: 0x9D9A, - 7721: 0x9DA4, - 7722: 0x9DA9, - 7723: 0x9DB2, - 7724: 0x9DC4, - 7725: 0x9DC1, - 7726: 0x9DBB, - 7727: 0x9DB8, - 7728: 0x9DBA, - 7729: 0x9DC6, - 7730: 0x9DCF, - 7731: 0x9DC2, - 7732: 0x9DD9, - 7733: 0x9DD3, - 7734: 0x9DF8, - 7735: 0x9DE6, - 7736: 0x9DED, - 7737: 0x9DEF, - 7738: 0x9DFD, - 7739: 0x9E1A, - 7740: 0x9E1B, - 7741: 0x9E1E, - 7742: 0x9E75, - 7743: 0x9E79, - 7744: 0x9E7D, - 7745: 0x9E81, - 7746: 0x9E88, - 7747: 0x9E8B, - 7748: 0x9E8C, - 7749: 0x9E92, - 7750: 0x9E95, - 7751: 0x9E91, - 7752: 0x9E9D, - 7753: 0x9EA5, - 7754: 0x9EA9, - 7755: 0x9EB8, - 7756: 0x9EAA, - 7757: 0x9EAD, - 7758: 0x9761, - 7759: 0x9ECC, - 7760: 0x9ECE, - 7761: 0x9ECF, - 7762: 0x9ED0, - 7763: 0x9ED4, - 7764: 0x9EDC, - 7765: 0x9EDE, - 7766: 0x9EDD, - 7767: 0x9EE0, - 7768: 0x9EE5, - 7769: 0x9EE8, - 7770: 0x9EEF, - 7771: 0x9EF4, - 7772: 0x9EF6, - 7773: 0x9EF7, - 7774: 0x9EF9, - 7775: 0x9EFB, - 7776: 0x9EFC, - 7777: 0x9EFD, - 7778: 0x9F07, - 7779: 0x9F08, - 7780: 0x76B7, - 7781: 0x9F15, - 7782: 0x9F21, - 7783: 0x9F2C, - 7784: 0x9F3E, - 7785: 0x9F4A, - 7786: 0x9F52, - 7787: 0x9F54, - 7788: 0x9F63, - 7789: 0x9F5F, - 7790: 0x9F60, - 7791: 0x9F61, - 7792: 0x9F66, - 7793: 0x9F67, - 7794: 0x9F6C, - 7795: 0x9F6A, - 7796: 0x9F77, - 7797: 0x9F72, - 7798: 0x9F76, - 7799: 0x9F95, - 7800: 0x9F9C, - 7801: 0x9FA0, - 7802: 0x582F, - 7803: 0x69C7, - 7804: 0x9059, - 7805: 0x7464, - 7806: 0x51DC, - 7807: 0x7199, - 8272: 0x7E8A, - 8273: 0x891C, - 8274: 0x9348, - 8275: 0x9288, - 8276: 0x84DC, - 8277: 0x4FC9, - 8278: 0x70BB, - 8279: 0x6631, - 8280: 0x68C8, - 8281: 0x92F9, - 8282: 0x66FB, - 8283: 0x5F45, - 8284: 0x4E28, - 8285: 0x4EE1, - 8286: 0x4EFC, - 8287: 0x4F00, - 8288: 0x4F03, - 8289: 0x4F39, - 8290: 0x4F56, - 8291: 0x4F92, - 8292: 0x4F8A, - 8293: 0x4F9A, - 8294: 0x4F94, - 8295: 0x4FCD, - 8296: 0x5040, - 8297: 0x5022, - 8298: 0x4FFF, - 8299: 0x501E, - 8300: 0x5046, - 8301: 0x5070, - 8302: 0x5042, - 8303: 0x5094, - 8304: 0x50F4, - 8305: 0x50D8, - 8306: 0x514A, - 8307: 0x5164, - 8308: 0x519D, - 8309: 0x51BE, - 8310: 0x51EC, - 8311: 0x5215, - 8312: 0x529C, - 8313: 0x52A6, - 8314: 0x52C0, - 8315: 0x52DB, - 8316: 0x5300, - 8317: 0x5307, - 8318: 0x5324, - 8319: 0x5372, - 8320: 0x5393, - 8321: 0x53B2, - 8322: 0x53DD, - 8323: 0xFA0E, - 8324: 0x549C, - 8325: 0x548A, - 8326: 0x54A9, - 8327: 0x54FF, - 8328: 0x5586, - 8329: 0x5759, - 8330: 0x5765, - 8331: 0x57AC, - 8332: 0x57C8, - 8333: 0x57C7, - 8334: 0xFA0F, - 8335: 0xFA10, - 8336: 0x589E, - 8337: 0x58B2, - 8338: 0x590B, - 8339: 0x5953, - 8340: 0x595B, - 8341: 0x595D, - 8342: 0x5963, - 8343: 0x59A4, - 8344: 0x59BA, - 8345: 0x5B56, - 8346: 0x5BC0, - 8347: 0x752F, - 8348: 0x5BD8, - 8349: 0x5BEC, - 8350: 0x5C1E, - 8351: 0x5CA6, - 8352: 0x5CBA, - 8353: 0x5CF5, - 8354: 0x5D27, - 8355: 0x5D53, - 8356: 0xFA11, - 8357: 0x5D42, - 8358: 0x5D6D, - 8359: 0x5DB8, - 8360: 0x5DB9, - 8361: 0x5DD0, - 8362: 0x5F21, - 8363: 0x5F34, - 8364: 0x5F67, - 8365: 0x5FB7, - 8366: 0x5FDE, - 8367: 0x605D, - 8368: 0x6085, - 8369: 0x608A, - 8370: 0x60DE, - 8371: 0x60D5, - 8372: 0x6120, - 8373: 0x60F2, - 8374: 0x6111, - 8375: 0x6137, - 8376: 0x6130, - 8377: 0x6198, - 8378: 0x6213, - 8379: 0x62A6, - 8380: 0x63F5, - 8381: 0x6460, - 8382: 0x649D, - 8383: 0x64CE, - 8384: 0x654E, - 8385: 0x6600, - 8386: 0x6615, - 8387: 0x663B, - 8388: 0x6609, - 8389: 0x662E, - 8390: 0x661E, - 8391: 0x6624, - 8392: 0x6665, - 8393: 0x6657, - 8394: 0x6659, - 8395: 0xFA12, - 8396: 0x6673, - 8397: 0x6699, - 8398: 0x66A0, - 8399: 0x66B2, - 8400: 0x66BF, - 8401: 0x66FA, - 8402: 0x670E, - 8403: 0xF929, - 8404: 0x6766, - 8405: 0x67BB, - 8406: 0x6852, - 8407: 0x67C0, - 8408: 0x6801, - 8409: 0x6844, - 8410: 0x68CF, - 8411: 0xFA13, - 8412: 0x6968, - 8413: 0xFA14, - 8414: 0x6998, - 8415: 0x69E2, - 8416: 0x6A30, - 8417: 0x6A6B, - 8418: 0x6A46, - 8419: 0x6A73, - 8420: 0x6A7E, - 8421: 0x6AE2, - 8422: 0x6AE4, - 8423: 0x6BD6, - 8424: 0x6C3F, - 8425: 0x6C5C, - 8426: 0x6C86, - 8427: 0x6C6F, - 8428: 0x6CDA, - 8429: 0x6D04, - 8430: 0x6D87, - 8431: 0x6D6F, - 8432: 0x6D96, - 8433: 0x6DAC, - 8434: 0x6DCF, - 8435: 0x6DF8, - 8436: 0x6DF2, - 8437: 0x6DFC, - 8438: 0x6E39, - 8439: 0x6E5C, - 8440: 0x6E27, - 8441: 0x6E3C, - 8442: 0x6EBF, - 8443: 0x6F88, - 8444: 0x6FB5, - 8445: 0x6FF5, - 8446: 0x7005, - 8447: 0x7007, - 8448: 0x7028, - 8449: 0x7085, - 8450: 0x70AB, - 8451: 0x710F, - 8452: 0x7104, - 8453: 0x715C, - 8454: 0x7146, - 8455: 0x7147, - 8456: 0xFA15, - 8457: 0x71C1, - 8458: 0x71FE, - 8459: 0x72B1, - 8460: 0x72BE, - 8461: 0x7324, - 8462: 0xFA16, - 8463: 0x7377, - 8464: 0x73BD, - 8465: 0x73C9, - 8466: 0x73D6, - 8467: 0x73E3, - 8468: 0x73D2, - 8469: 0x7407, - 8470: 0x73F5, - 8471: 0x7426, - 8472: 0x742A, - 8473: 0x7429, - 8474: 0x742E, - 8475: 0x7462, - 8476: 0x7489, - 8477: 0x749F, - 8478: 0x7501, - 8479: 0x756F, - 8480: 0x7682, - 8481: 0x769C, - 8482: 0x769E, - 8483: 0x769B, - 8484: 0x76A6, - 8485: 0xFA17, - 8486: 0x7746, - 8487: 0x52AF, - 8488: 0x7821, - 8489: 0x784E, - 8490: 0x7864, - 8491: 0x787A, - 8492: 0x7930, - 8493: 0xFA18, - 8494: 0xFA19, - 8495: 0xFA1A, - 8496: 0x7994, - 8497: 0xFA1B, - 8498: 0x799B, - 8499: 0x7AD1, - 8500: 0x7AE7, - 8501: 0xFA1C, - 8502: 0x7AEB, - 8503: 0x7B9E, - 8504: 0xFA1D, - 8505: 0x7D48, - 8506: 0x7D5C, - 8507: 0x7DB7, - 8508: 0x7DA0, - 8509: 0x7DD6, - 8510: 0x7E52, - 8511: 0x7F47, - 8512: 0x7FA1, - 8513: 0xFA1E, - 8514: 0x8301, - 8515: 0x8362, - 8516: 0x837F, - 8517: 0x83C7, - 8518: 0x83F6, - 8519: 0x8448, - 8520: 0x84B4, - 8521: 0x8553, - 8522: 0x8559, - 8523: 0x856B, - 8524: 0xFA1F, - 8525: 0x85B0, - 8526: 0xFA20, - 8527: 0xFA21, - 8528: 0x8807, - 8529: 0x88F5, - 8530: 0x8A12, - 8531: 0x8A37, - 8532: 0x8A79, - 8533: 0x8AA7, - 8534: 0x8ABE, - 8535: 0x8ADF, - 8536: 0xFA22, - 8537: 0x8AF6, - 8538: 0x8B53, - 8539: 0x8B7F, - 8540: 0x8CF0, - 8541: 0x8CF4, - 8542: 0x8D12, - 8543: 0x8D76, - 8544: 0xFA23, - 8545: 0x8ECF, - 8546: 0xFA24, - 8547: 0xFA25, - 8548: 0x9067, - 8549: 0x90DE, - 8550: 0xFA26, - 8551: 0x9115, - 8552: 0x9127, - 8553: 0x91DA, - 8554: 0x91D7, - 8555: 0x91DE, - 8556: 0x91ED, - 8557: 0x91EE, - 8558: 0x91E4, - 8559: 0x91E5, - 8560: 0x9206, - 8561: 0x9210, - 8562: 0x920A, - 8563: 0x923A, - 8564: 0x9240, - 8565: 0x923C, - 8566: 0x924E, - 8567: 0x9259, - 8568: 0x9251, - 8569: 0x9239, - 8570: 0x9267, - 8571: 0x92A7, - 8572: 0x9277, - 8573: 0x9278, - 8574: 0x92E7, - 8575: 0x92D7, - 8576: 0x92D9, - 8577: 0x92D0, - 8578: 0xFA27, - 8579: 0x92D5, - 8580: 0x92E0, - 8581: 0x92D3, - 8582: 0x9325, - 8583: 0x9321, - 8584: 0x92FB, - 8585: 0xFA28, - 8586: 0x931E, - 8587: 0x92FF, - 8588: 0x931D, - 8589: 0x9302, - 8590: 0x9370, - 8591: 0x9357, - 8592: 0x93A4, - 8593: 0x93C6, - 8594: 0x93DE, - 8595: 0x93F8, - 8596: 0x9431, - 8597: 0x9445, - 8598: 0x9448, - 8599: 0x9592, - 8600: 0xF9DC, - 8601: 0xFA29, - 8602: 0x969D, - 8603: 0x96AF, - 8604: 0x9733, - 8605: 0x973B, - 8606: 0x9743, - 8607: 0x974D, - 8608: 0x974F, - 8609: 0x9751, - 8610: 0x9755, - 8611: 0x9857, - 8612: 0x9865, - 8613: 0xFA2A, - 8614: 0xFA2B, - 8615: 0x9927, - 8616: 0xFA2C, - 8617: 0x999E, - 8618: 0x9A4E, - 8619: 0x9AD9, - 8620: 0x9ADC, - 8621: 0x9B75, - 8622: 0x9B72, - 8623: 0x9B8F, - 8624: 0x9BB1, - 8625: 0x9BBB, - 8626: 0x9C00, - 8627: 0x9D70, - 8628: 0x9D6B, - 8629: 0xFA2D, - 8630: 0x9E19, - 8631: 0x9ED1, - 8634: 0x2170, - 8635: 0x2171, - 8636: 0x2172, - 8637: 0x2173, - 8638: 0x2174, - 8639: 0x2175, - 8640: 0x2176, - 8641: 0x2177, - 8642: 0x2178, - 8643: 0x2179, - 8644: 0xFFE2, - 8645: 0xFFE4, - 8646: 0xFF07, - 8647: 0xFF02, - 10716: 0x2170, - 10717: 0x2171, - 10718: 0x2172, - 10719: 0x2173, - 10720: 0x2174, - 10721: 0x2175, - 10722: 0x2176, - 10723: 0x2177, - 10724: 0x2178, - 10725: 0x2179, - 10726: 0x2160, - 10727: 0x2161, - 10728: 0x2162, - 10729: 0x2163, - 10730: 0x2164, - 10731: 0x2165, - 10732: 0x2166, - 10733: 0x2167, - 10734: 0x2168, - 10735: 0x2169, - 10736: 0xFFE2, - 10737: 0xFFE4, - 10738: 0xFF07, - 10739: 0xFF02, - 10740: 0x3231, - 10741: 0x2116, - 10742: 0x2121, - 10743: 0x2235, - 10744: 0x7E8A, - 10745: 0x891C, - 10746: 0x9348, - 10747: 0x9288, - 10748: 0x84DC, - 10749: 0x4FC9, - 10750: 0x70BB, - 10751: 0x6631, - 10752: 0x68C8, - 10753: 0x92F9, - 10754: 0x66FB, - 10755: 0x5F45, - 10756: 0x4E28, - 10757: 0x4EE1, - 10758: 0x4EFC, - 10759: 0x4F00, - 10760: 0x4F03, - 10761: 0x4F39, - 10762: 0x4F56, - 10763: 0x4F92, - 10764: 0x4F8A, - 10765: 0x4F9A, - 10766: 0x4F94, - 10767: 0x4FCD, - 10768: 0x5040, - 10769: 0x5022, - 10770: 0x4FFF, - 10771: 0x501E, - 10772: 0x5046, - 10773: 0x5070, - 10774: 0x5042, - 10775: 0x5094, - 10776: 0x50F4, - 10777: 0x50D8, - 10778: 0x514A, - 10779: 0x5164, - 10780: 0x519D, - 10781: 0x51BE, - 10782: 0x51EC, - 10783: 0x5215, - 10784: 0x529C, - 10785: 0x52A6, - 10786: 0x52C0, - 10787: 0x52DB, - 10788: 0x5300, - 10789: 0x5307, - 10790: 0x5324, - 10791: 0x5372, - 10792: 0x5393, - 10793: 0x53B2, - 10794: 0x53DD, - 10795: 0xFA0E, - 10796: 0x549C, - 10797: 0x548A, - 10798: 0x54A9, - 10799: 0x54FF, - 10800: 0x5586, - 10801: 0x5759, - 10802: 0x5765, - 10803: 0x57AC, - 10804: 0x57C8, - 10805: 0x57C7, - 10806: 0xFA0F, - 10807: 0xFA10, - 10808: 0x589E, - 10809: 0x58B2, - 10810: 0x590B, - 10811: 0x5953, - 10812: 0x595B, - 10813: 0x595D, - 10814: 0x5963, - 10815: 0x59A4, - 10816: 0x59BA, - 10817: 0x5B56, - 10818: 0x5BC0, - 10819: 0x752F, - 10820: 0x5BD8, - 10821: 0x5BEC, - 10822: 0x5C1E, - 10823: 0x5CA6, - 10824: 0x5CBA, - 10825: 0x5CF5, - 10826: 0x5D27, - 10827: 0x5D53, - 10828: 0xFA11, - 10829: 0x5D42, - 10830: 0x5D6D, - 10831: 0x5DB8, - 10832: 0x5DB9, - 10833: 0x5DD0, - 10834: 0x5F21, - 10835: 0x5F34, - 10836: 0x5F67, - 10837: 0x5FB7, - 10838: 0x5FDE, - 10839: 0x605D, - 10840: 0x6085, - 10841: 0x608A, - 10842: 0x60DE, - 10843: 0x60D5, - 10844: 0x6120, - 10845: 0x60F2, - 10846: 0x6111, - 10847: 0x6137, - 10848: 0x6130, - 10849: 0x6198, - 10850: 0x6213, - 10851: 0x62A6, - 10852: 0x63F5, - 10853: 0x6460, - 10854: 0x649D, - 10855: 0x64CE, - 10856: 0x654E, - 10857: 0x6600, - 10858: 0x6615, - 10859: 0x663B, - 10860: 0x6609, - 10861: 0x662E, - 10862: 0x661E, - 10863: 0x6624, - 10864: 0x6665, - 10865: 0x6657, - 10866: 0x6659, - 10867: 0xFA12, - 10868: 0x6673, - 10869: 0x6699, - 10870: 0x66A0, - 10871: 0x66B2, - 10872: 0x66BF, - 10873: 0x66FA, - 10874: 0x670E, - 10875: 0xF929, - 10876: 0x6766, - 10877: 0x67BB, - 10878: 0x6852, - 10879: 0x67C0, - 10880: 0x6801, - 10881: 0x6844, - 10882: 0x68CF, - 10883: 0xFA13, - 10884: 0x6968, - 10885: 0xFA14, - 10886: 0x6998, - 10887: 0x69E2, - 10888: 0x6A30, - 10889: 0x6A6B, - 10890: 0x6A46, - 10891: 0x6A73, - 10892: 0x6A7E, - 10893: 0x6AE2, - 10894: 0x6AE4, - 10895: 0x6BD6, - 10896: 0x6C3F, - 10897: 0x6C5C, - 10898: 0x6C86, - 10899: 0x6C6F, - 10900: 0x6CDA, - 10901: 0x6D04, - 10902: 0x6D87, - 10903: 0x6D6F, - 10904: 0x6D96, - 10905: 0x6DAC, - 10906: 0x6DCF, - 10907: 0x6DF8, - 10908: 0x6DF2, - 10909: 0x6DFC, - 10910: 0x6E39, - 10911: 0x6E5C, - 10912: 0x6E27, - 10913: 0x6E3C, - 10914: 0x6EBF, - 10915: 0x6F88, - 10916: 0x6FB5, - 10917: 0x6FF5, - 10918: 0x7005, - 10919: 0x7007, - 10920: 0x7028, - 10921: 0x7085, - 10922: 0x70AB, - 10923: 0x710F, - 10924: 0x7104, - 10925: 0x715C, - 10926: 0x7146, - 10927: 0x7147, - 10928: 0xFA15, - 10929: 0x71C1, - 10930: 0x71FE, - 10931: 0x72B1, - 10932: 0x72BE, - 10933: 0x7324, - 10934: 0xFA16, - 10935: 0x7377, - 10936: 0x73BD, - 10937: 0x73C9, - 10938: 0x73D6, - 10939: 0x73E3, - 10940: 0x73D2, - 10941: 0x7407, - 10942: 0x73F5, - 10943: 0x7426, - 10944: 0x742A, - 10945: 0x7429, - 10946: 0x742E, - 10947: 0x7462, - 10948: 0x7489, - 10949: 0x749F, - 10950: 0x7501, - 10951: 0x756F, - 10952: 0x7682, - 10953: 0x769C, - 10954: 0x769E, - 10955: 0x769B, - 10956: 0x76A6, - 10957: 0xFA17, - 10958: 0x7746, - 10959: 0x52AF, - 10960: 0x7821, - 10961: 0x784E, - 10962: 0x7864, - 10963: 0x787A, - 10964: 0x7930, - 10965: 0xFA18, - 10966: 0xFA19, - 10967: 0xFA1A, - 10968: 0x7994, - 10969: 0xFA1B, - 10970: 0x799B, - 10971: 0x7AD1, - 10972: 0x7AE7, - 10973: 0xFA1C, - 10974: 0x7AEB, - 10975: 0x7B9E, - 10976: 0xFA1D, - 10977: 0x7D48, - 10978: 0x7D5C, - 10979: 0x7DB7, - 10980: 0x7DA0, - 10981: 0x7DD6, - 10982: 0x7E52, - 10983: 0x7F47, - 10984: 0x7FA1, - 10985: 0xFA1E, - 10986: 0x8301, - 10987: 0x8362, - 10988: 0x837F, - 10989: 0x83C7, - 10990: 0x83F6, - 10991: 0x8448, - 10992: 0x84B4, - 10993: 0x8553, - 10994: 0x8559, - 10995: 0x856B, - 10996: 0xFA1F, - 10997: 0x85B0, - 10998: 0xFA20, - 10999: 0xFA21, - 11000: 0x8807, - 11001: 0x88F5, - 11002: 0x8A12, - 11003: 0x8A37, - 11004: 0x8A79, - 11005: 0x8AA7, - 11006: 0x8ABE, - 11007: 0x8ADF, - 11008: 0xFA22, - 11009: 0x8AF6, - 11010: 0x8B53, - 11011: 0x8B7F, - 11012: 0x8CF0, - 11013: 0x8CF4, - 11014: 0x8D12, - 11015: 0x8D76, - 11016: 0xFA23, - 11017: 0x8ECF, - 11018: 0xFA24, - 11019: 0xFA25, - 11020: 0x9067, - 11021: 0x90DE, - 11022: 0xFA26, - 11023: 0x9115, - 11024: 0x9127, - 11025: 0x91DA, - 11026: 0x91D7, - 11027: 0x91DE, - 11028: 0x91ED, - 11029: 0x91EE, - 11030: 0x91E4, - 11031: 0x91E5, - 11032: 0x9206, - 11033: 0x9210, - 11034: 0x920A, - 11035: 0x923A, - 11036: 0x9240, - 11037: 0x923C, - 11038: 0x924E, - 11039: 0x9259, - 11040: 0x9251, - 11041: 0x9239, - 11042: 0x9267, - 11043: 0x92A7, - 11044: 0x9277, - 11045: 0x9278, - 11046: 0x92E7, - 11047: 0x92D7, - 11048: 0x92D9, - 11049: 0x92D0, - 11050: 0xFA27, - 11051: 0x92D5, - 11052: 0x92E0, - 11053: 0x92D3, - 11054: 0x9325, - 11055: 0x9321, - 11056: 0x92FB, - 11057: 0xFA28, - 11058: 0x931E, - 11059: 0x92FF, - 11060: 0x931D, - 11061: 0x9302, - 11062: 0x9370, - 11063: 0x9357, - 11064: 0x93A4, - 11065: 0x93C6, - 11066: 0x93DE, - 11067: 0x93F8, - 11068: 0x9431, - 11069: 0x9445, - 11070: 0x9448, - 11071: 0x9592, - 11072: 0xF9DC, - 11073: 0xFA29, - 11074: 0x969D, - 11075: 0x96AF, - 11076: 0x9733, - 11077: 0x973B, - 11078: 0x9743, - 11079: 0x974D, - 11080: 0x974F, - 11081: 0x9751, - 11082: 0x9755, - 11083: 0x9857, - 11084: 0x9865, - 11085: 0xFA2A, - 11086: 0xFA2B, - 11087: 0x9927, - 11088: 0xFA2C, - 11089: 0x999E, - 11090: 0x9A4E, - 11091: 0x9AD9, - 11092: 0x9ADC, - 11093: 0x9B75, - 11094: 0x9B72, - 11095: 0x9B8F, - 11096: 0x9BB1, - 11097: 0x9BBB, - 11098: 0x9C00, - 11099: 0x9D70, - 11100: 0x9D6B, - 11101: 0xFA2D, - 11102: 0x9E19, - 11103: 0x9ED1, -} - -// jis0212Decode is the decoding table from JIS 0212 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0212.txt -var jis0212Decode = [...]uint16{ - 108: 0x02D8, - 109: 0x02C7, - 110: 0x00B8, - 111: 0x02D9, - 112: 0x02DD, - 113: 0x00AF, - 114: 0x02DB, - 115: 0x02DA, - 116: 0xFF5E, - 117: 0x0384, - 118: 0x0385, - 127: 0x00A1, - 128: 0x00A6, - 129: 0x00BF, - 168: 0x00BA, - 169: 0x00AA, - 170: 0x00A9, - 171: 0x00AE, - 172: 0x2122, - 173: 0x00A4, - 174: 0x2116, - 534: 0x0386, - 535: 0x0388, - 536: 0x0389, - 537: 0x038A, - 538: 0x03AA, - 540: 0x038C, - 542: 0x038E, - 543: 0x03AB, - 545: 0x038F, - 550: 0x03AC, - 551: 0x03AD, - 552: 0x03AE, - 553: 0x03AF, - 554: 0x03CA, - 555: 0x0390, - 556: 0x03CC, - 557: 0x03C2, - 558: 0x03CD, - 559: 0x03CB, - 560: 0x03B0, - 561: 0x03CE, - 597: 0x0402, - 598: 0x0403, - 599: 0x0404, - 600: 0x0405, - 601: 0x0406, - 602: 0x0407, - 603: 0x0408, - 604: 0x0409, - 605: 0x040A, - 606: 0x040B, - 607: 0x040C, - 608: 0x040E, - 609: 0x040F, - 645: 0x0452, - 646: 0x0453, - 647: 0x0454, - 648: 0x0455, - 649: 0x0456, - 650: 0x0457, - 651: 0x0458, - 652: 0x0459, - 653: 0x045A, - 654: 0x045B, - 655: 0x045C, - 656: 0x045E, - 657: 0x045F, - 752: 0x00C6, - 753: 0x0110, - 755: 0x0126, - 757: 0x0132, - 759: 0x0141, - 760: 0x013F, - 762: 0x014A, - 763: 0x00D8, - 764: 0x0152, - 766: 0x0166, - 767: 0x00DE, - 784: 0x00E6, - 785: 0x0111, - 786: 0x00F0, - 787: 0x0127, - 788: 0x0131, - 789: 0x0133, - 790: 0x0138, - 791: 0x0142, - 792: 0x0140, - 793: 0x0149, - 794: 0x014B, - 795: 0x00F8, - 796: 0x0153, - 797: 0x00DF, - 798: 0x0167, - 799: 0x00FE, - 846: 0x00C1, - 847: 0x00C0, - 848: 0x00C4, - 849: 0x00C2, - 850: 0x0102, - 851: 0x01CD, - 852: 0x0100, - 853: 0x0104, - 854: 0x00C5, - 855: 0x00C3, - 856: 0x0106, - 857: 0x0108, - 858: 0x010C, - 859: 0x00C7, - 860: 0x010A, - 861: 0x010E, - 862: 0x00C9, - 863: 0x00C8, - 864: 0x00CB, - 865: 0x00CA, - 866: 0x011A, - 867: 0x0116, - 868: 0x0112, - 869: 0x0118, - 871: 0x011C, - 872: 0x011E, - 873: 0x0122, - 874: 0x0120, - 875: 0x0124, - 876: 0x00CD, - 877: 0x00CC, - 878: 0x00CF, - 879: 0x00CE, - 880: 0x01CF, - 881: 0x0130, - 882: 0x012A, - 883: 0x012E, - 884: 0x0128, - 885: 0x0134, - 886: 0x0136, - 887: 0x0139, - 888: 0x013D, - 889: 0x013B, - 890: 0x0143, - 891: 0x0147, - 892: 0x0145, - 893: 0x00D1, - 894: 0x00D3, - 895: 0x00D2, - 896: 0x00D6, - 897: 0x00D4, - 898: 0x01D1, - 899: 0x0150, - 900: 0x014C, - 901: 0x00D5, - 902: 0x0154, - 903: 0x0158, - 904: 0x0156, - 905: 0x015A, - 906: 0x015C, - 907: 0x0160, - 908: 0x015E, - 909: 0x0164, - 910: 0x0162, - 911: 0x00DA, - 912: 0x00D9, - 913: 0x00DC, - 914: 0x00DB, - 915: 0x016C, - 916: 0x01D3, - 917: 0x0170, - 918: 0x016A, - 919: 0x0172, - 920: 0x016E, - 921: 0x0168, - 922: 0x01D7, - 923: 0x01DB, - 924: 0x01D9, - 925: 0x01D5, - 926: 0x0174, - 927: 0x00DD, - 928: 0x0178, - 929: 0x0176, - 930: 0x0179, - 931: 0x017D, - 932: 0x017B, - 940: 0x00E1, - 941: 0x00E0, - 942: 0x00E4, - 943: 0x00E2, - 944: 0x0103, - 945: 0x01CE, - 946: 0x0101, - 947: 0x0105, - 948: 0x00E5, - 949: 0x00E3, - 950: 0x0107, - 951: 0x0109, - 952: 0x010D, - 953: 0x00E7, - 954: 0x010B, - 955: 0x010F, - 956: 0x00E9, - 957: 0x00E8, - 958: 0x00EB, - 959: 0x00EA, - 960: 0x011B, - 961: 0x0117, - 962: 0x0113, - 963: 0x0119, - 964: 0x01F5, - 965: 0x011D, - 966: 0x011F, - 968: 0x0121, - 969: 0x0125, - 970: 0x00ED, - 971: 0x00EC, - 972: 0x00EF, - 973: 0x00EE, - 974: 0x01D0, - 976: 0x012B, - 977: 0x012F, - 978: 0x0129, - 979: 0x0135, - 980: 0x0137, - 981: 0x013A, - 982: 0x013E, - 983: 0x013C, - 984: 0x0144, - 985: 0x0148, - 986: 0x0146, - 987: 0x00F1, - 988: 0x00F3, - 989: 0x00F2, - 990: 0x00F6, - 991: 0x00F4, - 992: 0x01D2, - 993: 0x0151, - 994: 0x014D, - 995: 0x00F5, - 996: 0x0155, - 997: 0x0159, - 998: 0x0157, - 999: 0x015B, - 1000: 0x015D, - 1001: 0x0161, - 1002: 0x015F, - 1003: 0x0165, - 1004: 0x0163, - 1005: 0x00FA, - 1006: 0x00F9, - 1007: 0x00FC, - 1008: 0x00FB, - 1009: 0x016D, - 1010: 0x01D4, - 1011: 0x0171, - 1012: 0x016B, - 1013: 0x0173, - 1014: 0x016F, - 1015: 0x0169, - 1016: 0x01D8, - 1017: 0x01DC, - 1018: 0x01DA, - 1019: 0x01D6, - 1020: 0x0175, - 1021: 0x00FD, - 1022: 0x00FF, - 1023: 0x0177, - 1024: 0x017A, - 1025: 0x017E, - 1026: 0x017C, - 1410: 0x4E02, - 1411: 0x4E04, - 1412: 0x4E05, - 1413: 0x4E0C, - 1414: 0x4E12, - 1415: 0x4E1F, - 1416: 0x4E23, - 1417: 0x4E24, - 1418: 0x4E28, - 1419: 0x4E2B, - 1420: 0x4E2E, - 1421: 0x4E2F, - 1422: 0x4E30, - 1423: 0x4E35, - 1424: 0x4E40, - 1425: 0x4E41, - 1426: 0x4E44, - 1427: 0x4E47, - 1428: 0x4E51, - 1429: 0x4E5A, - 1430: 0x4E5C, - 1431: 0x4E63, - 1432: 0x4E68, - 1433: 0x4E69, - 1434: 0x4E74, - 1435: 0x4E75, - 1436: 0x4E79, - 1437: 0x4E7F, - 1438: 0x4E8D, - 1439: 0x4E96, - 1440: 0x4E97, - 1441: 0x4E9D, - 1442: 0x4EAF, - 1443: 0x4EB9, - 1444: 0x4EC3, - 1445: 0x4ED0, - 1446: 0x4EDA, - 1447: 0x4EDB, - 1448: 0x4EE0, - 1449: 0x4EE1, - 1450: 0x4EE2, - 1451: 0x4EE8, - 1452: 0x4EEF, - 1453: 0x4EF1, - 1454: 0x4EF3, - 1455: 0x4EF5, - 1456: 0x4EFD, - 1457: 0x4EFE, - 1458: 0x4EFF, - 1459: 0x4F00, - 1460: 0x4F02, - 1461: 0x4F03, - 1462: 0x4F08, - 1463: 0x4F0B, - 1464: 0x4F0C, - 1465: 0x4F12, - 1466: 0x4F15, - 1467: 0x4F16, - 1468: 0x4F17, - 1469: 0x4F19, - 1470: 0x4F2E, - 1471: 0x4F31, - 1472: 0x4F60, - 1473: 0x4F33, - 1474: 0x4F35, - 1475: 0x4F37, - 1476: 0x4F39, - 1477: 0x4F3B, - 1478: 0x4F3E, - 1479: 0x4F40, - 1480: 0x4F42, - 1481: 0x4F48, - 1482: 0x4F49, - 1483: 0x4F4B, - 1484: 0x4F4C, - 1485: 0x4F52, - 1486: 0x4F54, - 1487: 0x4F56, - 1488: 0x4F58, - 1489: 0x4F5F, - 1490: 0x4F63, - 1491: 0x4F6A, - 1492: 0x4F6C, - 1493: 0x4F6E, - 1494: 0x4F71, - 1495: 0x4F77, - 1496: 0x4F78, - 1497: 0x4F79, - 1498: 0x4F7A, - 1499: 0x4F7D, - 1500: 0x4F7E, - 1501: 0x4F81, - 1502: 0x4F82, - 1503: 0x4F84, - 1504: 0x4F85, - 1505: 0x4F89, - 1506: 0x4F8A, - 1507: 0x4F8C, - 1508: 0x4F8E, - 1509: 0x4F90, - 1510: 0x4F92, - 1511: 0x4F93, - 1512: 0x4F94, - 1513: 0x4F97, - 1514: 0x4F99, - 1515: 0x4F9A, - 1516: 0x4F9E, - 1517: 0x4F9F, - 1518: 0x4FB2, - 1519: 0x4FB7, - 1520: 0x4FB9, - 1521: 0x4FBB, - 1522: 0x4FBC, - 1523: 0x4FBD, - 1524: 0x4FBE, - 1525: 0x4FC0, - 1526: 0x4FC1, - 1527: 0x4FC5, - 1528: 0x4FC6, - 1529: 0x4FC8, - 1530: 0x4FC9, - 1531: 0x4FCB, - 1532: 0x4FCC, - 1533: 0x4FCD, - 1534: 0x4FCF, - 1535: 0x4FD2, - 1536: 0x4FDC, - 1537: 0x4FE0, - 1538: 0x4FE2, - 1539: 0x4FF0, - 1540: 0x4FF2, - 1541: 0x4FFC, - 1542: 0x4FFD, - 1543: 0x4FFF, - 1544: 0x5000, - 1545: 0x5001, - 1546: 0x5004, - 1547: 0x5007, - 1548: 0x500A, - 1549: 0x500C, - 1550: 0x500E, - 1551: 0x5010, - 1552: 0x5013, - 1553: 0x5017, - 1554: 0x5018, - 1555: 0x501B, - 1556: 0x501C, - 1557: 0x501D, - 1558: 0x501E, - 1559: 0x5022, - 1560: 0x5027, - 1561: 0x502E, - 1562: 0x5030, - 1563: 0x5032, - 1564: 0x5033, - 1565: 0x5035, - 1566: 0x5040, - 1567: 0x5041, - 1568: 0x5042, - 1569: 0x5045, - 1570: 0x5046, - 1571: 0x504A, - 1572: 0x504C, - 1573: 0x504E, - 1574: 0x5051, - 1575: 0x5052, - 1576: 0x5053, - 1577: 0x5057, - 1578: 0x5059, - 1579: 0x505F, - 1580: 0x5060, - 1581: 0x5062, - 1582: 0x5063, - 1583: 0x5066, - 1584: 0x5067, - 1585: 0x506A, - 1586: 0x506D, - 1587: 0x5070, - 1588: 0x5071, - 1589: 0x503B, - 1590: 0x5081, - 1591: 0x5083, - 1592: 0x5084, - 1593: 0x5086, - 1594: 0x508A, - 1595: 0x508E, - 1596: 0x508F, - 1597: 0x5090, - 1598: 0x5092, - 1599: 0x5093, - 1600: 0x5094, - 1601: 0x5096, - 1602: 0x509B, - 1603: 0x509C, - 1604: 0x509E, - 1605: 0x509F, - 1606: 0x50A0, - 1607: 0x50A1, - 1608: 0x50A2, - 1609: 0x50AA, - 1610: 0x50AF, - 1611: 0x50B0, - 1612: 0x50B9, - 1613: 0x50BA, - 1614: 0x50BD, - 1615: 0x50C0, - 1616: 0x50C3, - 1617: 0x50C4, - 1618: 0x50C7, - 1619: 0x50CC, - 1620: 0x50CE, - 1621: 0x50D0, - 1622: 0x50D3, - 1623: 0x50D4, - 1624: 0x50D8, - 1625: 0x50DC, - 1626: 0x50DD, - 1627: 0x50DF, - 1628: 0x50E2, - 1629: 0x50E4, - 1630: 0x50E6, - 1631: 0x50E8, - 1632: 0x50E9, - 1633: 0x50EF, - 1634: 0x50F1, - 1635: 0x50F6, - 1636: 0x50FA, - 1637: 0x50FE, - 1638: 0x5103, - 1639: 0x5106, - 1640: 0x5107, - 1641: 0x5108, - 1642: 0x510B, - 1643: 0x510C, - 1644: 0x510D, - 1645: 0x510E, - 1646: 0x50F2, - 1647: 0x5110, - 1648: 0x5117, - 1649: 0x5119, - 1650: 0x511B, - 1651: 0x511C, - 1652: 0x511D, - 1653: 0x511E, - 1654: 0x5123, - 1655: 0x5127, - 1656: 0x5128, - 1657: 0x512C, - 1658: 0x512D, - 1659: 0x512F, - 1660: 0x5131, - 1661: 0x5133, - 1662: 0x5134, - 1663: 0x5135, - 1664: 0x5138, - 1665: 0x5139, - 1666: 0x5142, - 1667: 0x514A, - 1668: 0x514F, - 1669: 0x5153, - 1670: 0x5155, - 1671: 0x5157, - 1672: 0x5158, - 1673: 0x515F, - 1674: 0x5164, - 1675: 0x5166, - 1676: 0x517E, - 1677: 0x5183, - 1678: 0x5184, - 1679: 0x518B, - 1680: 0x518E, - 1681: 0x5198, - 1682: 0x519D, - 1683: 0x51A1, - 1684: 0x51A3, - 1685: 0x51AD, - 1686: 0x51B8, - 1687: 0x51BA, - 1688: 0x51BC, - 1689: 0x51BE, - 1690: 0x51BF, - 1691: 0x51C2, - 1692: 0x51C8, - 1693: 0x51CF, - 1694: 0x51D1, - 1695: 0x51D2, - 1696: 0x51D3, - 1697: 0x51D5, - 1698: 0x51D8, - 1699: 0x51DE, - 1700: 0x51E2, - 1701: 0x51E5, - 1702: 0x51EE, - 1703: 0x51F2, - 1704: 0x51F3, - 1705: 0x51F4, - 1706: 0x51F7, - 1707: 0x5201, - 1708: 0x5202, - 1709: 0x5205, - 1710: 0x5212, - 1711: 0x5213, - 1712: 0x5215, - 1713: 0x5216, - 1714: 0x5218, - 1715: 0x5222, - 1716: 0x5228, - 1717: 0x5231, - 1718: 0x5232, - 1719: 0x5235, - 1720: 0x523C, - 1721: 0x5245, - 1722: 0x5249, - 1723: 0x5255, - 1724: 0x5257, - 1725: 0x5258, - 1726: 0x525A, - 1727: 0x525C, - 1728: 0x525F, - 1729: 0x5260, - 1730: 0x5261, - 1731: 0x5266, - 1732: 0x526E, - 1733: 0x5277, - 1734: 0x5278, - 1735: 0x5279, - 1736: 0x5280, - 1737: 0x5282, - 1738: 0x5285, - 1739: 0x528A, - 1740: 0x528C, - 1741: 0x5293, - 1742: 0x5295, - 1743: 0x5296, - 1744: 0x5297, - 1745: 0x5298, - 1746: 0x529A, - 1747: 0x529C, - 1748: 0x52A4, - 1749: 0x52A5, - 1750: 0x52A6, - 1751: 0x52A7, - 1752: 0x52AF, - 1753: 0x52B0, - 1754: 0x52B6, - 1755: 0x52B7, - 1756: 0x52B8, - 1757: 0x52BA, - 1758: 0x52BB, - 1759: 0x52BD, - 1760: 0x52C0, - 1761: 0x52C4, - 1762: 0x52C6, - 1763: 0x52C8, - 1764: 0x52CC, - 1765: 0x52CF, - 1766: 0x52D1, - 1767: 0x52D4, - 1768: 0x52D6, - 1769: 0x52DB, - 1770: 0x52DC, - 1771: 0x52E1, - 1772: 0x52E5, - 1773: 0x52E8, - 1774: 0x52E9, - 1775: 0x52EA, - 1776: 0x52EC, - 1777: 0x52F0, - 1778: 0x52F1, - 1779: 0x52F4, - 1780: 0x52F6, - 1781: 0x52F7, - 1782: 0x5300, - 1783: 0x5303, - 1784: 0x530A, - 1785: 0x530B, - 1786: 0x530C, - 1787: 0x5311, - 1788: 0x5313, - 1789: 0x5318, - 1790: 0x531B, - 1791: 0x531C, - 1792: 0x531E, - 1793: 0x531F, - 1794: 0x5325, - 1795: 0x5327, - 1796: 0x5328, - 1797: 0x5329, - 1798: 0x532B, - 1799: 0x532C, - 1800: 0x532D, - 1801: 0x5330, - 1802: 0x5332, - 1803: 0x5335, - 1804: 0x533C, - 1805: 0x533D, - 1806: 0x533E, - 1807: 0x5342, - 1808: 0x534C, - 1809: 0x534B, - 1810: 0x5359, - 1811: 0x535B, - 1812: 0x5361, - 1813: 0x5363, - 1814: 0x5365, - 1815: 0x536C, - 1816: 0x536D, - 1817: 0x5372, - 1818: 0x5379, - 1819: 0x537E, - 1820: 0x5383, - 1821: 0x5387, - 1822: 0x5388, - 1823: 0x538E, - 1824: 0x5393, - 1825: 0x5394, - 1826: 0x5399, - 1827: 0x539D, - 1828: 0x53A1, - 1829: 0x53A4, - 1830: 0x53AA, - 1831: 0x53AB, - 1832: 0x53AF, - 1833: 0x53B2, - 1834: 0x53B4, - 1835: 0x53B5, - 1836: 0x53B7, - 1837: 0x53B8, - 1838: 0x53BA, - 1839: 0x53BD, - 1840: 0x53C0, - 1841: 0x53C5, - 1842: 0x53CF, - 1843: 0x53D2, - 1844: 0x53D3, - 1845: 0x53D5, - 1846: 0x53DA, - 1847: 0x53DD, - 1848: 0x53DE, - 1849: 0x53E0, - 1850: 0x53E6, - 1851: 0x53E7, - 1852: 0x53F5, - 1853: 0x5402, - 1854: 0x5413, - 1855: 0x541A, - 1856: 0x5421, - 1857: 0x5427, - 1858: 0x5428, - 1859: 0x542A, - 1860: 0x542F, - 1861: 0x5431, - 1862: 0x5434, - 1863: 0x5435, - 1864: 0x5443, - 1865: 0x5444, - 1866: 0x5447, - 1867: 0x544D, - 1868: 0x544F, - 1869: 0x545E, - 1870: 0x5462, - 1871: 0x5464, - 1872: 0x5466, - 1873: 0x5467, - 1874: 0x5469, - 1875: 0x546B, - 1876: 0x546D, - 1877: 0x546E, - 1878: 0x5474, - 1879: 0x547F, - 1880: 0x5481, - 1881: 0x5483, - 1882: 0x5485, - 1883: 0x5488, - 1884: 0x5489, - 1885: 0x548D, - 1886: 0x5491, - 1887: 0x5495, - 1888: 0x5496, - 1889: 0x549C, - 1890: 0x549F, - 1891: 0x54A1, - 1892: 0x54A6, - 1893: 0x54A7, - 1894: 0x54A9, - 1895: 0x54AA, - 1896: 0x54AD, - 1897: 0x54AE, - 1898: 0x54B1, - 1899: 0x54B7, - 1900: 0x54B9, - 1901: 0x54BA, - 1902: 0x54BB, - 1903: 0x54BF, - 1904: 0x54C6, - 1905: 0x54CA, - 1906: 0x54CD, - 1907: 0x54CE, - 1908: 0x54E0, - 1909: 0x54EA, - 1910: 0x54EC, - 1911: 0x54EF, - 1912: 0x54F6, - 1913: 0x54FC, - 1914: 0x54FE, - 1915: 0x54FF, - 1916: 0x5500, - 1917: 0x5501, - 1918: 0x5505, - 1919: 0x5508, - 1920: 0x5509, - 1921: 0x550C, - 1922: 0x550D, - 1923: 0x550E, - 1924: 0x5515, - 1925: 0x552A, - 1926: 0x552B, - 1927: 0x5532, - 1928: 0x5535, - 1929: 0x5536, - 1930: 0x553B, - 1931: 0x553C, - 1932: 0x553D, - 1933: 0x5541, - 1934: 0x5547, - 1935: 0x5549, - 1936: 0x554A, - 1937: 0x554D, - 1938: 0x5550, - 1939: 0x5551, - 1940: 0x5558, - 1941: 0x555A, - 1942: 0x555B, - 1943: 0x555E, - 1944: 0x5560, - 1945: 0x5561, - 1946: 0x5564, - 1947: 0x5566, - 1948: 0x557F, - 1949: 0x5581, - 1950: 0x5582, - 1951: 0x5586, - 1952: 0x5588, - 1953: 0x558E, - 1954: 0x558F, - 1955: 0x5591, - 1956: 0x5592, - 1957: 0x5593, - 1958: 0x5594, - 1959: 0x5597, - 1960: 0x55A3, - 1961: 0x55A4, - 1962: 0x55AD, - 1963: 0x55B2, - 1964: 0x55BF, - 1965: 0x55C1, - 1966: 0x55C3, - 1967: 0x55C6, - 1968: 0x55C9, - 1969: 0x55CB, - 1970: 0x55CC, - 1971: 0x55CE, - 1972: 0x55D1, - 1973: 0x55D2, - 1974: 0x55D3, - 1975: 0x55D7, - 1976: 0x55D8, - 1977: 0x55DB, - 1978: 0x55DE, - 1979: 0x55E2, - 1980: 0x55E9, - 1981: 0x55F6, - 1982: 0x55FF, - 1983: 0x5605, - 1984: 0x5608, - 1985: 0x560A, - 1986: 0x560D, - 1987: 0x560E, - 1988: 0x560F, - 1989: 0x5610, - 1990: 0x5611, - 1991: 0x5612, - 1992: 0x5619, - 1993: 0x562C, - 1994: 0x5630, - 1995: 0x5633, - 1996: 0x5635, - 1997: 0x5637, - 1998: 0x5639, - 1999: 0x563B, - 2000: 0x563C, - 2001: 0x563D, - 2002: 0x563F, - 2003: 0x5640, - 2004: 0x5641, - 2005: 0x5643, - 2006: 0x5644, - 2007: 0x5646, - 2008: 0x5649, - 2009: 0x564B, - 2010: 0x564D, - 2011: 0x564F, - 2012: 0x5654, - 2013: 0x565E, - 2014: 0x5660, - 2015: 0x5661, - 2016: 0x5662, - 2017: 0x5663, - 2018: 0x5666, - 2019: 0x5669, - 2020: 0x566D, - 2021: 0x566F, - 2022: 0x5671, - 2023: 0x5672, - 2024: 0x5675, - 2025: 0x5684, - 2026: 0x5685, - 2027: 0x5688, - 2028: 0x568B, - 2029: 0x568C, - 2030: 0x5695, - 2031: 0x5699, - 2032: 0x569A, - 2033: 0x569D, - 2034: 0x569E, - 2035: 0x569F, - 2036: 0x56A6, - 2037: 0x56A7, - 2038: 0x56A8, - 2039: 0x56A9, - 2040: 0x56AB, - 2041: 0x56AC, - 2042: 0x56AD, - 2043: 0x56B1, - 2044: 0x56B3, - 2045: 0x56B7, - 2046: 0x56BE, - 2047: 0x56C5, - 2048: 0x56C9, - 2049: 0x56CA, - 2050: 0x56CB, - 2051: 0x56CF, - 2052: 0x56D0, - 2053: 0x56CC, - 2054: 0x56CD, - 2055: 0x56D9, - 2056: 0x56DC, - 2057: 0x56DD, - 2058: 0x56DF, - 2059: 0x56E1, - 2060: 0x56E4, - 2061: 0x56E5, - 2062: 0x56E6, - 2063: 0x56E7, - 2064: 0x56E8, - 2065: 0x56F1, - 2066: 0x56EB, - 2067: 0x56ED, - 2068: 0x56F6, - 2069: 0x56F7, - 2070: 0x5701, - 2071: 0x5702, - 2072: 0x5707, - 2073: 0x570A, - 2074: 0x570C, - 2075: 0x5711, - 2076: 0x5715, - 2077: 0x571A, - 2078: 0x571B, - 2079: 0x571D, - 2080: 0x5720, - 2081: 0x5722, - 2082: 0x5723, - 2083: 0x5724, - 2084: 0x5725, - 2085: 0x5729, - 2086: 0x572A, - 2087: 0x572C, - 2088: 0x572E, - 2089: 0x572F, - 2090: 0x5733, - 2091: 0x5734, - 2092: 0x573D, - 2093: 0x573E, - 2094: 0x573F, - 2095: 0x5745, - 2096: 0x5746, - 2097: 0x574C, - 2098: 0x574D, - 2099: 0x5752, - 2100: 0x5762, - 2101: 0x5765, - 2102: 0x5767, - 2103: 0x5768, - 2104: 0x576B, - 2105: 0x576D, - 2106: 0x576E, - 2107: 0x576F, - 2108: 0x5770, - 2109: 0x5771, - 2110: 0x5773, - 2111: 0x5774, - 2112: 0x5775, - 2113: 0x5777, - 2114: 0x5779, - 2115: 0x577A, - 2116: 0x577B, - 2117: 0x577C, - 2118: 0x577E, - 2119: 0x5781, - 2120: 0x5783, - 2121: 0x578C, - 2122: 0x5794, - 2123: 0x5797, - 2124: 0x5799, - 2125: 0x579A, - 2126: 0x579C, - 2127: 0x579D, - 2128: 0x579E, - 2129: 0x579F, - 2130: 0x57A1, - 2131: 0x5795, - 2132: 0x57A7, - 2133: 0x57A8, - 2134: 0x57A9, - 2135: 0x57AC, - 2136: 0x57B8, - 2137: 0x57BD, - 2138: 0x57C7, - 2139: 0x57C8, - 2140: 0x57CC, - 2141: 0x57CF, - 2142: 0x57D5, - 2143: 0x57DD, - 2144: 0x57DE, - 2145: 0x57E4, - 2146: 0x57E6, - 2147: 0x57E7, - 2148: 0x57E9, - 2149: 0x57ED, - 2150: 0x57F0, - 2151: 0x57F5, - 2152: 0x57F6, - 2153: 0x57F8, - 2154: 0x57FD, - 2155: 0x57FE, - 2156: 0x57FF, - 2157: 0x5803, - 2158: 0x5804, - 2159: 0x5808, - 2160: 0x5809, - 2161: 0x57E1, - 2162: 0x580C, - 2163: 0x580D, - 2164: 0x581B, - 2165: 0x581E, - 2166: 0x581F, - 2167: 0x5820, - 2168: 0x5826, - 2169: 0x5827, - 2170: 0x582D, - 2171: 0x5832, - 2172: 0x5839, - 2173: 0x583F, - 2174: 0x5849, - 2175: 0x584C, - 2176: 0x584D, - 2177: 0x584F, - 2178: 0x5850, - 2179: 0x5855, - 2180: 0x585F, - 2181: 0x5861, - 2182: 0x5864, - 2183: 0x5867, - 2184: 0x5868, - 2185: 0x5878, - 2186: 0x587C, - 2187: 0x587F, - 2188: 0x5880, - 2189: 0x5881, - 2190: 0x5887, - 2191: 0x5888, - 2192: 0x5889, - 2193: 0x588A, - 2194: 0x588C, - 2195: 0x588D, - 2196: 0x588F, - 2197: 0x5890, - 2198: 0x5894, - 2199: 0x5896, - 2200: 0x589D, - 2201: 0x58A0, - 2202: 0x58A1, - 2203: 0x58A2, - 2204: 0x58A6, - 2205: 0x58A9, - 2206: 0x58B1, - 2207: 0x58B2, - 2208: 0x58C4, - 2209: 0x58BC, - 2210: 0x58C2, - 2211: 0x58C8, - 2212: 0x58CD, - 2213: 0x58CE, - 2214: 0x58D0, - 2215: 0x58D2, - 2216: 0x58D4, - 2217: 0x58D6, - 2218: 0x58DA, - 2219: 0x58DD, - 2220: 0x58E1, - 2221: 0x58E2, - 2222: 0x58E9, - 2223: 0x58F3, - 2224: 0x5905, - 2225: 0x5906, - 2226: 0x590B, - 2227: 0x590C, - 2228: 0x5912, - 2229: 0x5913, - 2230: 0x5914, - 2231: 0x8641, - 2232: 0x591D, - 2233: 0x5921, - 2234: 0x5923, - 2235: 0x5924, - 2236: 0x5928, - 2237: 0x592F, - 2238: 0x5930, - 2239: 0x5933, - 2240: 0x5935, - 2241: 0x5936, - 2242: 0x593F, - 2243: 0x5943, - 2244: 0x5946, - 2245: 0x5952, - 2246: 0x5953, - 2247: 0x5959, - 2248: 0x595B, - 2249: 0x595D, - 2250: 0x595E, - 2251: 0x595F, - 2252: 0x5961, - 2253: 0x5963, - 2254: 0x596B, - 2255: 0x596D, - 2256: 0x596F, - 2257: 0x5972, - 2258: 0x5975, - 2259: 0x5976, - 2260: 0x5979, - 2261: 0x597B, - 2262: 0x597C, - 2263: 0x598B, - 2264: 0x598C, - 2265: 0x598E, - 2266: 0x5992, - 2267: 0x5995, - 2268: 0x5997, - 2269: 0x599F, - 2270: 0x59A4, - 2271: 0x59A7, - 2272: 0x59AD, - 2273: 0x59AE, - 2274: 0x59AF, - 2275: 0x59B0, - 2276: 0x59B3, - 2277: 0x59B7, - 2278: 0x59BA, - 2279: 0x59BC, - 2280: 0x59C1, - 2281: 0x59C3, - 2282: 0x59C4, - 2283: 0x59C8, - 2284: 0x59CA, - 2285: 0x59CD, - 2286: 0x59D2, - 2287: 0x59DD, - 2288: 0x59DE, - 2289: 0x59DF, - 2290: 0x59E3, - 2291: 0x59E4, - 2292: 0x59E7, - 2293: 0x59EE, - 2294: 0x59EF, - 2295: 0x59F1, - 2296: 0x59F2, - 2297: 0x59F4, - 2298: 0x59F7, - 2299: 0x5A00, - 2300: 0x5A04, - 2301: 0x5A0C, - 2302: 0x5A0D, - 2303: 0x5A0E, - 2304: 0x5A12, - 2305: 0x5A13, - 2306: 0x5A1E, - 2307: 0x5A23, - 2308: 0x5A24, - 2309: 0x5A27, - 2310: 0x5A28, - 2311: 0x5A2A, - 2312: 0x5A2D, - 2313: 0x5A30, - 2314: 0x5A44, - 2315: 0x5A45, - 2316: 0x5A47, - 2317: 0x5A48, - 2318: 0x5A4C, - 2319: 0x5A50, - 2320: 0x5A55, - 2321: 0x5A5E, - 2322: 0x5A63, - 2323: 0x5A65, - 2324: 0x5A67, - 2325: 0x5A6D, - 2326: 0x5A77, - 2327: 0x5A7A, - 2328: 0x5A7B, - 2329: 0x5A7E, - 2330: 0x5A8B, - 2331: 0x5A90, - 2332: 0x5A93, - 2333: 0x5A96, - 2334: 0x5A99, - 2335: 0x5A9C, - 2336: 0x5A9E, - 2337: 0x5A9F, - 2338: 0x5AA0, - 2339: 0x5AA2, - 2340: 0x5AA7, - 2341: 0x5AAC, - 2342: 0x5AB1, - 2343: 0x5AB2, - 2344: 0x5AB3, - 2345: 0x5AB5, - 2346: 0x5AB8, - 2347: 0x5ABA, - 2348: 0x5ABB, - 2349: 0x5ABF, - 2350: 0x5AC4, - 2351: 0x5AC6, - 2352: 0x5AC8, - 2353: 0x5ACF, - 2354: 0x5ADA, - 2355: 0x5ADC, - 2356: 0x5AE0, - 2357: 0x5AE5, - 2358: 0x5AEA, - 2359: 0x5AEE, - 2360: 0x5AF5, - 2361: 0x5AF6, - 2362: 0x5AFD, - 2363: 0x5B00, - 2364: 0x5B01, - 2365: 0x5B08, - 2366: 0x5B17, - 2367: 0x5B34, - 2368: 0x5B19, - 2369: 0x5B1B, - 2370: 0x5B1D, - 2371: 0x5B21, - 2372: 0x5B25, - 2373: 0x5B2D, - 2374: 0x5B38, - 2375: 0x5B41, - 2376: 0x5B4B, - 2377: 0x5B4C, - 2378: 0x5B52, - 2379: 0x5B56, - 2380: 0x5B5E, - 2381: 0x5B68, - 2382: 0x5B6E, - 2383: 0x5B6F, - 2384: 0x5B7C, - 2385: 0x5B7D, - 2386: 0x5B7E, - 2387: 0x5B7F, - 2388: 0x5B81, - 2389: 0x5B84, - 2390: 0x5B86, - 2391: 0x5B8A, - 2392: 0x5B8E, - 2393: 0x5B90, - 2394: 0x5B91, - 2395: 0x5B93, - 2396: 0x5B94, - 2397: 0x5B96, - 2398: 0x5BA8, - 2399: 0x5BA9, - 2400: 0x5BAC, - 2401: 0x5BAD, - 2402: 0x5BAF, - 2403: 0x5BB1, - 2404: 0x5BB2, - 2405: 0x5BB7, - 2406: 0x5BBA, - 2407: 0x5BBC, - 2408: 0x5BC0, - 2409: 0x5BC1, - 2410: 0x5BCD, - 2411: 0x5BCF, - 2412: 0x5BD6, - 2413: 0x5BD7, - 2414: 0x5BD8, - 2415: 0x5BD9, - 2416: 0x5BDA, - 2417: 0x5BE0, - 2418: 0x5BEF, - 2419: 0x5BF1, - 2420: 0x5BF4, - 2421: 0x5BFD, - 2422: 0x5C0C, - 2423: 0x5C17, - 2424: 0x5C1E, - 2425: 0x5C1F, - 2426: 0x5C23, - 2427: 0x5C26, - 2428: 0x5C29, - 2429: 0x5C2B, - 2430: 0x5C2C, - 2431: 0x5C2E, - 2432: 0x5C30, - 2433: 0x5C32, - 2434: 0x5C35, - 2435: 0x5C36, - 2436: 0x5C59, - 2437: 0x5C5A, - 2438: 0x5C5C, - 2439: 0x5C62, - 2440: 0x5C63, - 2441: 0x5C67, - 2442: 0x5C68, - 2443: 0x5C69, - 2444: 0x5C6D, - 2445: 0x5C70, - 2446: 0x5C74, - 2447: 0x5C75, - 2448: 0x5C7A, - 2449: 0x5C7B, - 2450: 0x5C7C, - 2451: 0x5C7D, - 2452: 0x5C87, - 2453: 0x5C88, - 2454: 0x5C8A, - 2455: 0x5C8F, - 2456: 0x5C92, - 2457: 0x5C9D, - 2458: 0x5C9F, - 2459: 0x5CA0, - 2460: 0x5CA2, - 2461: 0x5CA3, - 2462: 0x5CA6, - 2463: 0x5CAA, - 2464: 0x5CB2, - 2465: 0x5CB4, - 2466: 0x5CB5, - 2467: 0x5CBA, - 2468: 0x5CC9, - 2469: 0x5CCB, - 2470: 0x5CD2, - 2471: 0x5CDD, - 2472: 0x5CD7, - 2473: 0x5CEE, - 2474: 0x5CF1, - 2475: 0x5CF2, - 2476: 0x5CF4, - 2477: 0x5D01, - 2478: 0x5D06, - 2479: 0x5D0D, - 2480: 0x5D12, - 2481: 0x5D2B, - 2482: 0x5D23, - 2483: 0x5D24, - 2484: 0x5D26, - 2485: 0x5D27, - 2486: 0x5D31, - 2487: 0x5D34, - 2488: 0x5D39, - 2489: 0x5D3D, - 2490: 0x5D3F, - 2491: 0x5D42, - 2492: 0x5D43, - 2493: 0x5D46, - 2494: 0x5D48, - 2495: 0x5D55, - 2496: 0x5D51, - 2497: 0x5D59, - 2498: 0x5D4A, - 2499: 0x5D5F, - 2500: 0x5D60, - 2501: 0x5D61, - 2502: 0x5D62, - 2503: 0x5D64, - 2504: 0x5D6A, - 2505: 0x5D6D, - 2506: 0x5D70, - 2507: 0x5D79, - 2508: 0x5D7A, - 2509: 0x5D7E, - 2510: 0x5D7F, - 2511: 0x5D81, - 2512: 0x5D83, - 2513: 0x5D88, - 2514: 0x5D8A, - 2515: 0x5D92, - 2516: 0x5D93, - 2517: 0x5D94, - 2518: 0x5D95, - 2519: 0x5D99, - 2520: 0x5D9B, - 2521: 0x5D9F, - 2522: 0x5DA0, - 2523: 0x5DA7, - 2524: 0x5DAB, - 2525: 0x5DB0, - 2526: 0x5DB4, - 2527: 0x5DB8, - 2528: 0x5DB9, - 2529: 0x5DC3, - 2530: 0x5DC7, - 2531: 0x5DCB, - 2532: 0x5DD0, - 2533: 0x5DCE, - 2534: 0x5DD8, - 2535: 0x5DD9, - 2536: 0x5DE0, - 2537: 0x5DE4, - 2538: 0x5DE9, - 2539: 0x5DF8, - 2540: 0x5DF9, - 2541: 0x5E00, - 2542: 0x5E07, - 2543: 0x5E0D, - 2544: 0x5E12, - 2545: 0x5E14, - 2546: 0x5E15, - 2547: 0x5E18, - 2548: 0x5E1F, - 2549: 0x5E20, - 2550: 0x5E2E, - 2551: 0x5E28, - 2552: 0x5E32, - 2553: 0x5E35, - 2554: 0x5E3E, - 2555: 0x5E4B, - 2556: 0x5E50, - 2557: 0x5E49, - 2558: 0x5E51, - 2559: 0x5E56, - 2560: 0x5E58, - 2561: 0x5E5B, - 2562: 0x5E5C, - 2563: 0x5E5E, - 2564: 0x5E68, - 2565: 0x5E6A, - 2566: 0x5E6B, - 2567: 0x5E6C, - 2568: 0x5E6D, - 2569: 0x5E6E, - 2570: 0x5E70, - 2571: 0x5E80, - 2572: 0x5E8B, - 2573: 0x5E8E, - 2574: 0x5EA2, - 2575: 0x5EA4, - 2576: 0x5EA5, - 2577: 0x5EA8, - 2578: 0x5EAA, - 2579: 0x5EAC, - 2580: 0x5EB1, - 2581: 0x5EB3, - 2582: 0x5EBD, - 2583: 0x5EBE, - 2584: 0x5EBF, - 2585: 0x5EC6, - 2586: 0x5ECC, - 2587: 0x5ECB, - 2588: 0x5ECE, - 2589: 0x5ED1, - 2590: 0x5ED2, - 2591: 0x5ED4, - 2592: 0x5ED5, - 2593: 0x5EDC, - 2594: 0x5EDE, - 2595: 0x5EE5, - 2596: 0x5EEB, - 2597: 0x5F02, - 2598: 0x5F06, - 2599: 0x5F07, - 2600: 0x5F08, - 2601: 0x5F0E, - 2602: 0x5F19, - 2603: 0x5F1C, - 2604: 0x5F1D, - 2605: 0x5F21, - 2606: 0x5F22, - 2607: 0x5F23, - 2608: 0x5F24, - 2609: 0x5F28, - 2610: 0x5F2B, - 2611: 0x5F2C, - 2612: 0x5F2E, - 2613: 0x5F30, - 2614: 0x5F34, - 2615: 0x5F36, - 2616: 0x5F3B, - 2617: 0x5F3D, - 2618: 0x5F3F, - 2619: 0x5F40, - 2620: 0x5F44, - 2621: 0x5F45, - 2622: 0x5F47, - 2623: 0x5F4D, - 2624: 0x5F50, - 2625: 0x5F54, - 2626: 0x5F58, - 2627: 0x5F5B, - 2628: 0x5F60, - 2629: 0x5F63, - 2630: 0x5F64, - 2631: 0x5F67, - 2632: 0x5F6F, - 2633: 0x5F72, - 2634: 0x5F74, - 2635: 0x5F75, - 2636: 0x5F78, - 2637: 0x5F7A, - 2638: 0x5F7D, - 2639: 0x5F7E, - 2640: 0x5F89, - 2641: 0x5F8D, - 2642: 0x5F8F, - 2643: 0x5F96, - 2644: 0x5F9C, - 2645: 0x5F9D, - 2646: 0x5FA2, - 2647: 0x5FA7, - 2648: 0x5FAB, - 2649: 0x5FA4, - 2650: 0x5FAC, - 2651: 0x5FAF, - 2652: 0x5FB0, - 2653: 0x5FB1, - 2654: 0x5FB8, - 2655: 0x5FC4, - 2656: 0x5FC7, - 2657: 0x5FC8, - 2658: 0x5FC9, - 2659: 0x5FCB, - 2660: 0x5FD0, - 2661: 0x5FD1, - 2662: 0x5FD2, - 2663: 0x5FD3, - 2664: 0x5FD4, - 2665: 0x5FDE, - 2666: 0x5FE1, - 2667: 0x5FE2, - 2668: 0x5FE8, - 2669: 0x5FE9, - 2670: 0x5FEA, - 2671: 0x5FEC, - 2672: 0x5FED, - 2673: 0x5FEE, - 2674: 0x5FEF, - 2675: 0x5FF2, - 2676: 0x5FF3, - 2677: 0x5FF6, - 2678: 0x5FFA, - 2679: 0x5FFC, - 2680: 0x6007, - 2681: 0x600A, - 2682: 0x600D, - 2683: 0x6013, - 2684: 0x6014, - 2685: 0x6017, - 2686: 0x6018, - 2687: 0x601A, - 2688: 0x601F, - 2689: 0x6024, - 2690: 0x602D, - 2691: 0x6033, - 2692: 0x6035, - 2693: 0x6040, - 2694: 0x6047, - 2695: 0x6048, - 2696: 0x6049, - 2697: 0x604C, - 2698: 0x6051, - 2699: 0x6054, - 2700: 0x6056, - 2701: 0x6057, - 2702: 0x605D, - 2703: 0x6061, - 2704: 0x6067, - 2705: 0x6071, - 2706: 0x607E, - 2707: 0x607F, - 2708: 0x6082, - 2709: 0x6086, - 2710: 0x6088, - 2711: 0x608A, - 2712: 0x608E, - 2713: 0x6091, - 2714: 0x6093, - 2715: 0x6095, - 2716: 0x6098, - 2717: 0x609D, - 2718: 0x609E, - 2719: 0x60A2, - 2720: 0x60A4, - 2721: 0x60A5, - 2722: 0x60A8, - 2723: 0x60B0, - 2724: 0x60B1, - 2725: 0x60B7, - 2726: 0x60BB, - 2727: 0x60BE, - 2728: 0x60C2, - 2729: 0x60C4, - 2730: 0x60C8, - 2731: 0x60C9, - 2732: 0x60CA, - 2733: 0x60CB, - 2734: 0x60CE, - 2735: 0x60CF, - 2736: 0x60D4, - 2737: 0x60D5, - 2738: 0x60D9, - 2739: 0x60DB, - 2740: 0x60DD, - 2741: 0x60DE, - 2742: 0x60E2, - 2743: 0x60E5, - 2744: 0x60F2, - 2745: 0x60F5, - 2746: 0x60F8, - 2747: 0x60FC, - 2748: 0x60FD, - 2749: 0x6102, - 2750: 0x6107, - 2751: 0x610A, - 2752: 0x610C, - 2753: 0x6110, - 2754: 0x6111, - 2755: 0x6112, - 2756: 0x6113, - 2757: 0x6114, - 2758: 0x6116, - 2759: 0x6117, - 2760: 0x6119, - 2761: 0x611C, - 2762: 0x611E, - 2763: 0x6122, - 2764: 0x612A, - 2765: 0x612B, - 2766: 0x6130, - 2767: 0x6131, - 2768: 0x6135, - 2769: 0x6136, - 2770: 0x6137, - 2771: 0x6139, - 2772: 0x6141, - 2773: 0x6145, - 2774: 0x6146, - 2775: 0x6149, - 2776: 0x615E, - 2777: 0x6160, - 2778: 0x616C, - 2779: 0x6172, - 2780: 0x6178, - 2781: 0x617B, - 2782: 0x617C, - 2783: 0x617F, - 2784: 0x6180, - 2785: 0x6181, - 2786: 0x6183, - 2787: 0x6184, - 2788: 0x618B, - 2789: 0x618D, - 2790: 0x6192, - 2791: 0x6193, - 2792: 0x6197, - 2793: 0x6198, - 2794: 0x619C, - 2795: 0x619D, - 2796: 0x619F, - 2797: 0x61A0, - 2798: 0x61A5, - 2799: 0x61A8, - 2800: 0x61AA, - 2801: 0x61AD, - 2802: 0x61B8, - 2803: 0x61B9, - 2804: 0x61BC, - 2805: 0x61C0, - 2806: 0x61C1, - 2807: 0x61C2, - 2808: 0x61CE, - 2809: 0x61CF, - 2810: 0x61D5, - 2811: 0x61DC, - 2812: 0x61DD, - 2813: 0x61DE, - 2814: 0x61DF, - 2815: 0x61E1, - 2816: 0x61E2, - 2817: 0x61E7, - 2818: 0x61E9, - 2819: 0x61E5, - 2820: 0x61EC, - 2821: 0x61ED, - 2822: 0x61EF, - 2823: 0x6201, - 2824: 0x6203, - 2825: 0x6204, - 2826: 0x6207, - 2827: 0x6213, - 2828: 0x6215, - 2829: 0x621C, - 2830: 0x6220, - 2831: 0x6222, - 2832: 0x6223, - 2833: 0x6227, - 2834: 0x6229, - 2835: 0x622B, - 2836: 0x6239, - 2837: 0x623D, - 2838: 0x6242, - 2839: 0x6243, - 2840: 0x6244, - 2841: 0x6246, - 2842: 0x624C, - 2843: 0x6250, - 2844: 0x6251, - 2845: 0x6252, - 2846: 0x6254, - 2847: 0x6256, - 2848: 0x625A, - 2849: 0x625C, - 2850: 0x6264, - 2851: 0x626D, - 2852: 0x626F, - 2853: 0x6273, - 2854: 0x627A, - 2855: 0x627D, - 2856: 0x628D, - 2857: 0x628E, - 2858: 0x628F, - 2859: 0x6290, - 2860: 0x62A6, - 2861: 0x62A8, - 2862: 0x62B3, - 2863: 0x62B6, - 2864: 0x62B7, - 2865: 0x62BA, - 2866: 0x62BE, - 2867: 0x62BF, - 2868: 0x62C4, - 2869: 0x62CE, - 2870: 0x62D5, - 2871: 0x62D6, - 2872: 0x62DA, - 2873: 0x62EA, - 2874: 0x62F2, - 2875: 0x62F4, - 2876: 0x62FC, - 2877: 0x62FD, - 2878: 0x6303, - 2879: 0x6304, - 2880: 0x630A, - 2881: 0x630B, - 2882: 0x630D, - 2883: 0x6310, - 2884: 0x6313, - 2885: 0x6316, - 2886: 0x6318, - 2887: 0x6329, - 2888: 0x632A, - 2889: 0x632D, - 2890: 0x6335, - 2891: 0x6336, - 2892: 0x6339, - 2893: 0x633C, - 2894: 0x6341, - 2895: 0x6342, - 2896: 0x6343, - 2897: 0x6344, - 2898: 0x6346, - 2899: 0x634A, - 2900: 0x634B, - 2901: 0x634E, - 2902: 0x6352, - 2903: 0x6353, - 2904: 0x6354, - 2905: 0x6358, - 2906: 0x635B, - 2907: 0x6365, - 2908: 0x6366, - 2909: 0x636C, - 2910: 0x636D, - 2911: 0x6371, - 2912: 0x6374, - 2913: 0x6375, - 2914: 0x6378, - 2915: 0x637C, - 2916: 0x637D, - 2917: 0x637F, - 2918: 0x6382, - 2919: 0x6384, - 2920: 0x6387, - 2921: 0x638A, - 2922: 0x6390, - 2923: 0x6394, - 2924: 0x6395, - 2925: 0x6399, - 2926: 0x639A, - 2927: 0x639E, - 2928: 0x63A4, - 2929: 0x63A6, - 2930: 0x63AD, - 2931: 0x63AE, - 2932: 0x63AF, - 2933: 0x63BD, - 2934: 0x63C1, - 2935: 0x63C5, - 2936: 0x63C8, - 2937: 0x63CE, - 2938: 0x63D1, - 2939: 0x63D3, - 2940: 0x63D4, - 2941: 0x63D5, - 2942: 0x63DC, - 2943: 0x63E0, - 2944: 0x63E5, - 2945: 0x63EA, - 2946: 0x63EC, - 2947: 0x63F2, - 2948: 0x63F3, - 2949: 0x63F5, - 2950: 0x63F8, - 2951: 0x63F9, - 2952: 0x6409, - 2953: 0x640A, - 2954: 0x6410, - 2955: 0x6412, - 2956: 0x6414, - 2957: 0x6418, - 2958: 0x641E, - 2959: 0x6420, - 2960: 0x6422, - 2961: 0x6424, - 2962: 0x6425, - 2963: 0x6429, - 2964: 0x642A, - 2965: 0x642F, - 2966: 0x6430, - 2967: 0x6435, - 2968: 0x643D, - 2969: 0x643F, - 2970: 0x644B, - 2971: 0x644F, - 2972: 0x6451, - 2973: 0x6452, - 2974: 0x6453, - 2975: 0x6454, - 2976: 0x645A, - 2977: 0x645B, - 2978: 0x645C, - 2979: 0x645D, - 2980: 0x645F, - 2981: 0x6460, - 2982: 0x6461, - 2983: 0x6463, - 2984: 0x646D, - 2985: 0x6473, - 2986: 0x6474, - 2987: 0x647B, - 2988: 0x647D, - 2989: 0x6485, - 2990: 0x6487, - 2991: 0x648F, - 2992: 0x6490, - 2993: 0x6491, - 2994: 0x6498, - 2995: 0x6499, - 2996: 0x649B, - 2997: 0x649D, - 2998: 0x649F, - 2999: 0x64A1, - 3000: 0x64A3, - 3001: 0x64A6, - 3002: 0x64A8, - 3003: 0x64AC, - 3004: 0x64B3, - 3005: 0x64BD, - 3006: 0x64BE, - 3007: 0x64BF, - 3008: 0x64C4, - 3009: 0x64C9, - 3010: 0x64CA, - 3011: 0x64CB, - 3012: 0x64CC, - 3013: 0x64CE, - 3014: 0x64D0, - 3015: 0x64D1, - 3016: 0x64D5, - 3017: 0x64D7, - 3018: 0x64E4, - 3019: 0x64E5, - 3020: 0x64E9, - 3021: 0x64EA, - 3022: 0x64ED, - 3023: 0x64F0, - 3024: 0x64F5, - 3025: 0x64F7, - 3026: 0x64FB, - 3027: 0x64FF, - 3028: 0x6501, - 3029: 0x6504, - 3030: 0x6508, - 3031: 0x6509, - 3032: 0x650A, - 3033: 0x650F, - 3034: 0x6513, - 3035: 0x6514, - 3036: 0x6516, - 3037: 0x6519, - 3038: 0x651B, - 3039: 0x651E, - 3040: 0x651F, - 3041: 0x6522, - 3042: 0x6526, - 3043: 0x6529, - 3044: 0x652E, - 3045: 0x6531, - 3046: 0x653A, - 3047: 0x653C, - 3048: 0x653D, - 3049: 0x6543, - 3050: 0x6547, - 3051: 0x6549, - 3052: 0x6550, - 3053: 0x6552, - 3054: 0x6554, - 3055: 0x655F, - 3056: 0x6560, - 3057: 0x6567, - 3058: 0x656B, - 3059: 0x657A, - 3060: 0x657D, - 3061: 0x6581, - 3062: 0x6585, - 3063: 0x658A, - 3064: 0x6592, - 3065: 0x6595, - 3066: 0x6598, - 3067: 0x659D, - 3068: 0x65A0, - 3069: 0x65A3, - 3070: 0x65A6, - 3071: 0x65AE, - 3072: 0x65B2, - 3073: 0x65B3, - 3074: 0x65B4, - 3075: 0x65BF, - 3076: 0x65C2, - 3077: 0x65C8, - 3078: 0x65C9, - 3079: 0x65CE, - 3080: 0x65D0, - 3081: 0x65D4, - 3082: 0x65D6, - 3083: 0x65D8, - 3084: 0x65DF, - 3085: 0x65F0, - 3086: 0x65F2, - 3087: 0x65F4, - 3088: 0x65F5, - 3089: 0x65F9, - 3090: 0x65FE, - 3091: 0x65FF, - 3092: 0x6600, - 3093: 0x6604, - 3094: 0x6608, - 3095: 0x6609, - 3096: 0x660D, - 3097: 0x6611, - 3098: 0x6612, - 3099: 0x6615, - 3100: 0x6616, - 3101: 0x661D, - 3102: 0x661E, - 3103: 0x6621, - 3104: 0x6622, - 3105: 0x6623, - 3106: 0x6624, - 3107: 0x6626, - 3108: 0x6629, - 3109: 0x662A, - 3110: 0x662B, - 3111: 0x662C, - 3112: 0x662E, - 3113: 0x6630, - 3114: 0x6631, - 3115: 0x6633, - 3116: 0x6639, - 3117: 0x6637, - 3118: 0x6640, - 3119: 0x6645, - 3120: 0x6646, - 3121: 0x664A, - 3122: 0x664C, - 3123: 0x6651, - 3124: 0x664E, - 3125: 0x6657, - 3126: 0x6658, - 3127: 0x6659, - 3128: 0x665B, - 3129: 0x665C, - 3130: 0x6660, - 3131: 0x6661, - 3132: 0x66FB, - 3133: 0x666A, - 3134: 0x666B, - 3135: 0x666C, - 3136: 0x667E, - 3137: 0x6673, - 3138: 0x6675, - 3139: 0x667F, - 3140: 0x6677, - 3141: 0x6678, - 3142: 0x6679, - 3143: 0x667B, - 3144: 0x6680, - 3145: 0x667C, - 3146: 0x668B, - 3147: 0x668C, - 3148: 0x668D, - 3149: 0x6690, - 3150: 0x6692, - 3151: 0x6699, - 3152: 0x669A, - 3153: 0x669B, - 3154: 0x669C, - 3155: 0x669F, - 3156: 0x66A0, - 3157: 0x66A4, - 3158: 0x66AD, - 3159: 0x66B1, - 3160: 0x66B2, - 3161: 0x66B5, - 3162: 0x66BB, - 3163: 0x66BF, - 3164: 0x66C0, - 3165: 0x66C2, - 3166: 0x66C3, - 3167: 0x66C8, - 3168: 0x66CC, - 3169: 0x66CE, - 3170: 0x66CF, - 3171: 0x66D4, - 3172: 0x66DB, - 3173: 0x66DF, - 3174: 0x66E8, - 3175: 0x66EB, - 3176: 0x66EC, - 3177: 0x66EE, - 3178: 0x66FA, - 3179: 0x6705, - 3180: 0x6707, - 3181: 0x670E, - 3182: 0x6713, - 3183: 0x6719, - 3184: 0x671C, - 3185: 0x6720, - 3186: 0x6722, - 3187: 0x6733, - 3188: 0x673E, - 3189: 0x6745, - 3190: 0x6747, - 3191: 0x6748, - 3192: 0x674C, - 3193: 0x6754, - 3194: 0x6755, - 3195: 0x675D, - 3196: 0x6766, - 3197: 0x676C, - 3198: 0x676E, - 3199: 0x6774, - 3200: 0x6776, - 3201: 0x677B, - 3202: 0x6781, - 3203: 0x6784, - 3204: 0x678E, - 3205: 0x678F, - 3206: 0x6791, - 3207: 0x6793, - 3208: 0x6796, - 3209: 0x6798, - 3210: 0x6799, - 3211: 0x679B, - 3212: 0x67B0, - 3213: 0x67B1, - 3214: 0x67B2, - 3215: 0x67B5, - 3216: 0x67BB, - 3217: 0x67BC, - 3218: 0x67BD, - 3219: 0x67F9, - 3220: 0x67C0, - 3221: 0x67C2, - 3222: 0x67C3, - 3223: 0x67C5, - 3224: 0x67C8, - 3225: 0x67C9, - 3226: 0x67D2, - 3227: 0x67D7, - 3228: 0x67D9, - 3229: 0x67DC, - 3230: 0x67E1, - 3231: 0x67E6, - 3232: 0x67F0, - 3233: 0x67F2, - 3234: 0x67F6, - 3235: 0x67F7, - 3236: 0x6852, - 3237: 0x6814, - 3238: 0x6819, - 3239: 0x681D, - 3240: 0x681F, - 3241: 0x6828, - 3242: 0x6827, - 3243: 0x682C, - 3244: 0x682D, - 3245: 0x682F, - 3246: 0x6830, - 3247: 0x6831, - 3248: 0x6833, - 3249: 0x683B, - 3250: 0x683F, - 3251: 0x6844, - 3252: 0x6845, - 3253: 0x684A, - 3254: 0x684C, - 3255: 0x6855, - 3256: 0x6857, - 3257: 0x6858, - 3258: 0x685B, - 3259: 0x686B, - 3260: 0x686E, - 3261: 0x686F, - 3262: 0x6870, - 3263: 0x6871, - 3264: 0x6872, - 3265: 0x6875, - 3266: 0x6879, - 3267: 0x687A, - 3268: 0x687B, - 3269: 0x687C, - 3270: 0x6882, - 3271: 0x6884, - 3272: 0x6886, - 3273: 0x6888, - 3274: 0x6896, - 3275: 0x6898, - 3276: 0x689A, - 3277: 0x689C, - 3278: 0x68A1, - 3279: 0x68A3, - 3280: 0x68A5, - 3281: 0x68A9, - 3282: 0x68AA, - 3283: 0x68AE, - 3284: 0x68B2, - 3285: 0x68BB, - 3286: 0x68C5, - 3287: 0x68C8, - 3288: 0x68CC, - 3289: 0x68CF, - 3290: 0x68D0, - 3291: 0x68D1, - 3292: 0x68D3, - 3293: 0x68D6, - 3294: 0x68D9, - 3295: 0x68DC, - 3296: 0x68DD, - 3297: 0x68E5, - 3298: 0x68E8, - 3299: 0x68EA, - 3300: 0x68EB, - 3301: 0x68EC, - 3302: 0x68ED, - 3303: 0x68F0, - 3304: 0x68F1, - 3305: 0x68F5, - 3306: 0x68F6, - 3307: 0x68FB, - 3308: 0x68FC, - 3309: 0x68FD, - 3310: 0x6906, - 3311: 0x6909, - 3312: 0x690A, - 3313: 0x6910, - 3314: 0x6911, - 3315: 0x6913, - 3316: 0x6916, - 3317: 0x6917, - 3318: 0x6931, - 3319: 0x6933, - 3320: 0x6935, - 3321: 0x6938, - 3322: 0x693B, - 3323: 0x6942, - 3324: 0x6945, - 3325: 0x6949, - 3326: 0x694E, - 3327: 0x6957, - 3328: 0x695B, - 3329: 0x6963, - 3330: 0x6964, - 3331: 0x6965, - 3332: 0x6966, - 3333: 0x6968, - 3334: 0x6969, - 3335: 0x696C, - 3336: 0x6970, - 3337: 0x6971, - 3338: 0x6972, - 3339: 0x697A, - 3340: 0x697B, - 3341: 0x697F, - 3342: 0x6980, - 3343: 0x698D, - 3344: 0x6992, - 3345: 0x6996, - 3346: 0x6998, - 3347: 0x69A1, - 3348: 0x69A5, - 3349: 0x69A6, - 3350: 0x69A8, - 3351: 0x69AB, - 3352: 0x69AD, - 3353: 0x69AF, - 3354: 0x69B7, - 3355: 0x69B8, - 3356: 0x69BA, - 3357: 0x69BC, - 3358: 0x69C5, - 3359: 0x69C8, - 3360: 0x69D1, - 3361: 0x69D6, - 3362: 0x69D7, - 3363: 0x69E2, - 3364: 0x69E5, - 3365: 0x69EE, - 3366: 0x69EF, - 3367: 0x69F1, - 3368: 0x69F3, - 3369: 0x69F5, - 3370: 0x69FE, - 3371: 0x6A00, - 3372: 0x6A01, - 3373: 0x6A03, - 3374: 0x6A0F, - 3375: 0x6A11, - 3376: 0x6A15, - 3377: 0x6A1A, - 3378: 0x6A1D, - 3379: 0x6A20, - 3380: 0x6A24, - 3381: 0x6A28, - 3382: 0x6A30, - 3383: 0x6A32, - 3384: 0x6A34, - 3385: 0x6A37, - 3386: 0x6A3B, - 3387: 0x6A3E, - 3388: 0x6A3F, - 3389: 0x6A45, - 3390: 0x6A46, - 3391: 0x6A49, - 3392: 0x6A4A, - 3393: 0x6A4E, - 3394: 0x6A50, - 3395: 0x6A51, - 3396: 0x6A52, - 3397: 0x6A55, - 3398: 0x6A56, - 3399: 0x6A5B, - 3400: 0x6A64, - 3401: 0x6A67, - 3402: 0x6A6A, - 3403: 0x6A71, - 3404: 0x6A73, - 3405: 0x6A7E, - 3406: 0x6A81, - 3407: 0x6A83, - 3408: 0x6A86, - 3409: 0x6A87, - 3410: 0x6A89, - 3411: 0x6A8B, - 3412: 0x6A91, - 3413: 0x6A9B, - 3414: 0x6A9D, - 3415: 0x6A9E, - 3416: 0x6A9F, - 3417: 0x6AA5, - 3418: 0x6AAB, - 3419: 0x6AAF, - 3420: 0x6AB0, - 3421: 0x6AB1, - 3422: 0x6AB4, - 3423: 0x6ABD, - 3424: 0x6ABE, - 3425: 0x6ABF, - 3426: 0x6AC6, - 3427: 0x6AC9, - 3428: 0x6AC8, - 3429: 0x6ACC, - 3430: 0x6AD0, - 3431: 0x6AD4, - 3432: 0x6AD5, - 3433: 0x6AD6, - 3434: 0x6ADC, - 3435: 0x6ADD, - 3436: 0x6AE4, - 3437: 0x6AE7, - 3438: 0x6AEC, - 3439: 0x6AF0, - 3440: 0x6AF1, - 3441: 0x6AF2, - 3442: 0x6AFC, - 3443: 0x6AFD, - 3444: 0x6B02, - 3445: 0x6B03, - 3446: 0x6B06, - 3447: 0x6B07, - 3448: 0x6B09, - 3449: 0x6B0F, - 3450: 0x6B10, - 3451: 0x6B11, - 3452: 0x6B17, - 3453: 0x6B1B, - 3454: 0x6B1E, - 3455: 0x6B24, - 3456: 0x6B28, - 3457: 0x6B2B, - 3458: 0x6B2C, - 3459: 0x6B2F, - 3460: 0x6B35, - 3461: 0x6B36, - 3462: 0x6B3B, - 3463: 0x6B3F, - 3464: 0x6B46, - 3465: 0x6B4A, - 3466: 0x6B4D, - 3467: 0x6B52, - 3468: 0x6B56, - 3469: 0x6B58, - 3470: 0x6B5D, - 3471: 0x6B60, - 3472: 0x6B67, - 3473: 0x6B6B, - 3474: 0x6B6E, - 3475: 0x6B70, - 3476: 0x6B75, - 3477: 0x6B7D, - 3478: 0x6B7E, - 3479: 0x6B82, - 3480: 0x6B85, - 3481: 0x6B97, - 3482: 0x6B9B, - 3483: 0x6B9F, - 3484: 0x6BA0, - 3485: 0x6BA2, - 3486: 0x6BA3, - 3487: 0x6BA8, - 3488: 0x6BA9, - 3489: 0x6BAC, - 3490: 0x6BAD, - 3491: 0x6BAE, - 3492: 0x6BB0, - 3493: 0x6BB8, - 3494: 0x6BB9, - 3495: 0x6BBD, - 3496: 0x6BBE, - 3497: 0x6BC3, - 3498: 0x6BC4, - 3499: 0x6BC9, - 3500: 0x6BCC, - 3501: 0x6BD6, - 3502: 0x6BDA, - 3503: 0x6BE1, - 3504: 0x6BE3, - 3505: 0x6BE6, - 3506: 0x6BE7, - 3507: 0x6BEE, - 3508: 0x6BF1, - 3509: 0x6BF7, - 3510: 0x6BF9, - 3511: 0x6BFF, - 3512: 0x6C02, - 3513: 0x6C04, - 3514: 0x6C05, - 3515: 0x6C09, - 3516: 0x6C0D, - 3517: 0x6C0E, - 3518: 0x6C10, - 3519: 0x6C12, - 3520: 0x6C19, - 3521: 0x6C1F, - 3522: 0x6C26, - 3523: 0x6C27, - 3524: 0x6C28, - 3525: 0x6C2C, - 3526: 0x6C2E, - 3527: 0x6C33, - 3528: 0x6C35, - 3529: 0x6C36, - 3530: 0x6C3A, - 3531: 0x6C3B, - 3532: 0x6C3F, - 3533: 0x6C4A, - 3534: 0x6C4B, - 3535: 0x6C4D, - 3536: 0x6C4F, - 3537: 0x6C52, - 3538: 0x6C54, - 3539: 0x6C59, - 3540: 0x6C5B, - 3541: 0x6C5C, - 3542: 0x6C6B, - 3543: 0x6C6D, - 3544: 0x6C6F, - 3545: 0x6C74, - 3546: 0x6C76, - 3547: 0x6C78, - 3548: 0x6C79, - 3549: 0x6C7B, - 3550: 0x6C85, - 3551: 0x6C86, - 3552: 0x6C87, - 3553: 0x6C89, - 3554: 0x6C94, - 3555: 0x6C95, - 3556: 0x6C97, - 3557: 0x6C98, - 3558: 0x6C9C, - 3559: 0x6C9F, - 3560: 0x6CB0, - 3561: 0x6CB2, - 3562: 0x6CB4, - 3563: 0x6CC2, - 3564: 0x6CC6, - 3565: 0x6CCD, - 3566: 0x6CCF, - 3567: 0x6CD0, - 3568: 0x6CD1, - 3569: 0x6CD2, - 3570: 0x6CD4, - 3571: 0x6CD6, - 3572: 0x6CDA, - 3573: 0x6CDC, - 3574: 0x6CE0, - 3575: 0x6CE7, - 3576: 0x6CE9, - 3577: 0x6CEB, - 3578: 0x6CEC, - 3579: 0x6CEE, - 3580: 0x6CF2, - 3581: 0x6CF4, - 3582: 0x6D04, - 3583: 0x6D07, - 3584: 0x6D0A, - 3585: 0x6D0E, - 3586: 0x6D0F, - 3587: 0x6D11, - 3588: 0x6D13, - 3589: 0x6D1A, - 3590: 0x6D26, - 3591: 0x6D27, - 3592: 0x6D28, - 3593: 0x6C67, - 3594: 0x6D2E, - 3595: 0x6D2F, - 3596: 0x6D31, - 3597: 0x6D39, - 3598: 0x6D3C, - 3599: 0x6D3F, - 3600: 0x6D57, - 3601: 0x6D5E, - 3602: 0x6D5F, - 3603: 0x6D61, - 3604: 0x6D65, - 3605: 0x6D67, - 3606: 0x6D6F, - 3607: 0x6D70, - 3608: 0x6D7C, - 3609: 0x6D82, - 3610: 0x6D87, - 3611: 0x6D91, - 3612: 0x6D92, - 3613: 0x6D94, - 3614: 0x6D96, - 3615: 0x6D97, - 3616: 0x6D98, - 3617: 0x6DAA, - 3618: 0x6DAC, - 3619: 0x6DB4, - 3620: 0x6DB7, - 3621: 0x6DB9, - 3622: 0x6DBD, - 3623: 0x6DBF, - 3624: 0x6DC4, - 3625: 0x6DC8, - 3626: 0x6DCA, - 3627: 0x6DCE, - 3628: 0x6DCF, - 3629: 0x6DD6, - 3630: 0x6DDB, - 3631: 0x6DDD, - 3632: 0x6DDF, - 3633: 0x6DE0, - 3634: 0x6DE2, - 3635: 0x6DE5, - 3636: 0x6DE9, - 3637: 0x6DEF, - 3638: 0x6DF0, - 3639: 0x6DF4, - 3640: 0x6DF6, - 3641: 0x6DFC, - 3642: 0x6E00, - 3643: 0x6E04, - 3644: 0x6E1E, - 3645: 0x6E22, - 3646: 0x6E27, - 3647: 0x6E32, - 3648: 0x6E36, - 3649: 0x6E39, - 3650: 0x6E3B, - 3651: 0x6E3C, - 3652: 0x6E44, - 3653: 0x6E45, - 3654: 0x6E48, - 3655: 0x6E49, - 3656: 0x6E4B, - 3657: 0x6E4F, - 3658: 0x6E51, - 3659: 0x6E52, - 3660: 0x6E53, - 3661: 0x6E54, - 3662: 0x6E57, - 3663: 0x6E5C, - 3664: 0x6E5D, - 3665: 0x6E5E, - 3666: 0x6E62, - 3667: 0x6E63, - 3668: 0x6E68, - 3669: 0x6E73, - 3670: 0x6E7B, - 3671: 0x6E7D, - 3672: 0x6E8D, - 3673: 0x6E93, - 3674: 0x6E99, - 3675: 0x6EA0, - 3676: 0x6EA7, - 3677: 0x6EAD, - 3678: 0x6EAE, - 3679: 0x6EB1, - 3680: 0x6EB3, - 3681: 0x6EBB, - 3682: 0x6EBF, - 3683: 0x6EC0, - 3684: 0x6EC1, - 3685: 0x6EC3, - 3686: 0x6EC7, - 3687: 0x6EC8, - 3688: 0x6ECA, - 3689: 0x6ECD, - 3690: 0x6ECE, - 3691: 0x6ECF, - 3692: 0x6EEB, - 3693: 0x6EED, - 3694: 0x6EEE, - 3695: 0x6EF9, - 3696: 0x6EFB, - 3697: 0x6EFD, - 3698: 0x6F04, - 3699: 0x6F08, - 3700: 0x6F0A, - 3701: 0x6F0C, - 3702: 0x6F0D, - 3703: 0x6F16, - 3704: 0x6F18, - 3705: 0x6F1A, - 3706: 0x6F1B, - 3707: 0x6F26, - 3708: 0x6F29, - 3709: 0x6F2A, - 3710: 0x6F2F, - 3711: 0x6F30, - 3712: 0x6F33, - 3713: 0x6F36, - 3714: 0x6F3B, - 3715: 0x6F3C, - 3716: 0x6F2D, - 3717: 0x6F4F, - 3718: 0x6F51, - 3719: 0x6F52, - 3720: 0x6F53, - 3721: 0x6F57, - 3722: 0x6F59, - 3723: 0x6F5A, - 3724: 0x6F5D, - 3725: 0x6F5E, - 3726: 0x6F61, - 3727: 0x6F62, - 3728: 0x6F68, - 3729: 0x6F6C, - 3730: 0x6F7D, - 3731: 0x6F7E, - 3732: 0x6F83, - 3733: 0x6F87, - 3734: 0x6F88, - 3735: 0x6F8B, - 3736: 0x6F8C, - 3737: 0x6F8D, - 3738: 0x6F90, - 3739: 0x6F92, - 3740: 0x6F93, - 3741: 0x6F94, - 3742: 0x6F96, - 3743: 0x6F9A, - 3744: 0x6F9F, - 3745: 0x6FA0, - 3746: 0x6FA5, - 3747: 0x6FA6, - 3748: 0x6FA7, - 3749: 0x6FA8, - 3750: 0x6FAE, - 3751: 0x6FAF, - 3752: 0x6FB0, - 3753: 0x6FB5, - 3754: 0x6FB6, - 3755: 0x6FBC, - 3756: 0x6FC5, - 3757: 0x6FC7, - 3758: 0x6FC8, - 3759: 0x6FCA, - 3760: 0x6FDA, - 3761: 0x6FDE, - 3762: 0x6FE8, - 3763: 0x6FE9, - 3764: 0x6FF0, - 3765: 0x6FF5, - 3766: 0x6FF9, - 3767: 0x6FFC, - 3768: 0x6FFD, - 3769: 0x7000, - 3770: 0x7005, - 3771: 0x7006, - 3772: 0x7007, - 3773: 0x700D, - 3774: 0x7017, - 3775: 0x7020, - 3776: 0x7023, - 3777: 0x702F, - 3778: 0x7034, - 3779: 0x7037, - 3780: 0x7039, - 3781: 0x703C, - 3782: 0x7043, - 3783: 0x7044, - 3784: 0x7048, - 3785: 0x7049, - 3786: 0x704A, - 3787: 0x704B, - 3788: 0x7054, - 3789: 0x7055, - 3790: 0x705D, - 3791: 0x705E, - 3792: 0x704E, - 3793: 0x7064, - 3794: 0x7065, - 3795: 0x706C, - 3796: 0x706E, - 3797: 0x7075, - 3798: 0x7076, - 3799: 0x707E, - 3800: 0x7081, - 3801: 0x7085, - 3802: 0x7086, - 3803: 0x7094, - 3804: 0x7095, - 3805: 0x7096, - 3806: 0x7097, - 3807: 0x7098, - 3808: 0x709B, - 3809: 0x70A4, - 3810: 0x70AB, - 3811: 0x70B0, - 3812: 0x70B1, - 3813: 0x70B4, - 3814: 0x70B7, - 3815: 0x70CA, - 3816: 0x70D1, - 3817: 0x70D3, - 3818: 0x70D4, - 3819: 0x70D5, - 3820: 0x70D6, - 3821: 0x70D8, - 3822: 0x70DC, - 3823: 0x70E4, - 3824: 0x70FA, - 3825: 0x7103, - 3826: 0x7104, - 3827: 0x7105, - 3828: 0x7106, - 3829: 0x7107, - 3830: 0x710B, - 3831: 0x710C, - 3832: 0x710F, - 3833: 0x711E, - 3834: 0x7120, - 3835: 0x712B, - 3836: 0x712D, - 3837: 0x712F, - 3838: 0x7130, - 3839: 0x7131, - 3840: 0x7138, - 3841: 0x7141, - 3842: 0x7145, - 3843: 0x7146, - 3844: 0x7147, - 3845: 0x714A, - 3846: 0x714B, - 3847: 0x7150, - 3848: 0x7152, - 3849: 0x7157, - 3850: 0x715A, - 3851: 0x715C, - 3852: 0x715E, - 3853: 0x7160, - 3854: 0x7168, - 3855: 0x7179, - 3856: 0x7180, - 3857: 0x7185, - 3858: 0x7187, - 3859: 0x718C, - 3860: 0x7192, - 3861: 0x719A, - 3862: 0x719B, - 3863: 0x71A0, - 3864: 0x71A2, - 3865: 0x71AF, - 3866: 0x71B0, - 3867: 0x71B2, - 3868: 0x71B3, - 3869: 0x71BA, - 3870: 0x71BF, - 3871: 0x71C0, - 3872: 0x71C1, - 3873: 0x71C4, - 3874: 0x71CB, - 3875: 0x71CC, - 3876: 0x71D3, - 3877: 0x71D6, - 3878: 0x71D9, - 3879: 0x71DA, - 3880: 0x71DC, - 3881: 0x71F8, - 3882: 0x71FE, - 3883: 0x7200, - 3884: 0x7207, - 3885: 0x7208, - 3886: 0x7209, - 3887: 0x7213, - 3888: 0x7217, - 3889: 0x721A, - 3890: 0x721D, - 3891: 0x721F, - 3892: 0x7224, - 3893: 0x722B, - 3894: 0x722F, - 3895: 0x7234, - 3896: 0x7238, - 3897: 0x7239, - 3898: 0x7241, - 3899: 0x7242, - 3900: 0x7243, - 3901: 0x7245, - 3902: 0x724E, - 3903: 0x724F, - 3904: 0x7250, - 3905: 0x7253, - 3906: 0x7255, - 3907: 0x7256, - 3908: 0x725A, - 3909: 0x725C, - 3910: 0x725E, - 3911: 0x7260, - 3912: 0x7263, - 3913: 0x7268, - 3914: 0x726B, - 3915: 0x726E, - 3916: 0x726F, - 3917: 0x7271, - 3918: 0x7277, - 3919: 0x7278, - 3920: 0x727B, - 3921: 0x727C, - 3922: 0x727F, - 3923: 0x7284, - 3924: 0x7289, - 3925: 0x728D, - 3926: 0x728E, - 3927: 0x7293, - 3928: 0x729B, - 3929: 0x72A8, - 3930: 0x72AD, - 3931: 0x72AE, - 3932: 0x72B1, - 3933: 0x72B4, - 3934: 0x72BE, - 3935: 0x72C1, - 3936: 0x72C7, - 3937: 0x72C9, - 3938: 0x72CC, - 3939: 0x72D5, - 3940: 0x72D6, - 3941: 0x72D8, - 3942: 0x72DF, - 3943: 0x72E5, - 3944: 0x72F3, - 3945: 0x72F4, - 3946: 0x72FA, - 3947: 0x72FB, - 3948: 0x72FE, - 3949: 0x7302, - 3950: 0x7304, - 3951: 0x7305, - 3952: 0x7307, - 3953: 0x730B, - 3954: 0x730D, - 3955: 0x7312, - 3956: 0x7313, - 3957: 0x7318, - 3958: 0x7319, - 3959: 0x731E, - 3960: 0x7322, - 3961: 0x7324, - 3962: 0x7327, - 3963: 0x7328, - 3964: 0x732C, - 3965: 0x7331, - 3966: 0x7332, - 3967: 0x7335, - 3968: 0x733A, - 3969: 0x733B, - 3970: 0x733D, - 3971: 0x7343, - 3972: 0x734D, - 3973: 0x7350, - 3974: 0x7352, - 3975: 0x7356, - 3976: 0x7358, - 3977: 0x735D, - 3978: 0x735E, - 3979: 0x735F, - 3980: 0x7360, - 3981: 0x7366, - 3982: 0x7367, - 3983: 0x7369, - 3984: 0x736B, - 3985: 0x736C, - 3986: 0x736E, - 3987: 0x736F, - 3988: 0x7371, - 3989: 0x7377, - 3990: 0x7379, - 3991: 0x737C, - 3992: 0x7380, - 3993: 0x7381, - 3994: 0x7383, - 3995: 0x7385, - 3996: 0x7386, - 3997: 0x738E, - 3998: 0x7390, - 3999: 0x7393, - 4000: 0x7395, - 4001: 0x7397, - 4002: 0x7398, - 4003: 0x739C, - 4004: 0x739E, - 4005: 0x739F, - 4006: 0x73A0, - 4007: 0x73A2, - 4008: 0x73A5, - 4009: 0x73A6, - 4010: 0x73AA, - 4011: 0x73AB, - 4012: 0x73AD, - 4013: 0x73B5, - 4014: 0x73B7, - 4015: 0x73B9, - 4016: 0x73BC, - 4017: 0x73BD, - 4018: 0x73BF, - 4019: 0x73C5, - 4020: 0x73C6, - 4021: 0x73C9, - 4022: 0x73CB, - 4023: 0x73CC, - 4024: 0x73CF, - 4025: 0x73D2, - 4026: 0x73D3, - 4027: 0x73D6, - 4028: 0x73D9, - 4029: 0x73DD, - 4030: 0x73E1, - 4031: 0x73E3, - 4032: 0x73E6, - 4033: 0x73E7, - 4034: 0x73E9, - 4035: 0x73F4, - 4036: 0x73F5, - 4037: 0x73F7, - 4038: 0x73F9, - 4039: 0x73FA, - 4040: 0x73FB, - 4041: 0x73FD, - 4042: 0x73FF, - 4043: 0x7400, - 4044: 0x7401, - 4045: 0x7404, - 4046: 0x7407, - 4047: 0x740A, - 4048: 0x7411, - 4049: 0x741A, - 4050: 0x741B, - 4051: 0x7424, - 4052: 0x7426, - 4053: 0x7428, - 4054: 0x7429, - 4055: 0x742A, - 4056: 0x742B, - 4057: 0x742C, - 4058: 0x742D, - 4059: 0x742E, - 4060: 0x742F, - 4061: 0x7430, - 4062: 0x7431, - 4063: 0x7439, - 4064: 0x7440, - 4065: 0x7443, - 4066: 0x7444, - 4067: 0x7446, - 4068: 0x7447, - 4069: 0x744B, - 4070: 0x744D, - 4071: 0x7451, - 4072: 0x7452, - 4073: 0x7457, - 4074: 0x745D, - 4075: 0x7462, - 4076: 0x7466, - 4077: 0x7467, - 4078: 0x7468, - 4079: 0x746B, - 4080: 0x746D, - 4081: 0x746E, - 4082: 0x7471, - 4083: 0x7472, - 4084: 0x7480, - 4085: 0x7481, - 4086: 0x7485, - 4087: 0x7486, - 4088: 0x7487, - 4089: 0x7489, - 4090: 0x748F, - 4091: 0x7490, - 4092: 0x7491, - 4093: 0x7492, - 4094: 0x7498, - 4095: 0x7499, - 4096: 0x749A, - 4097: 0x749C, - 4098: 0x749F, - 4099: 0x74A0, - 4100: 0x74A1, - 4101: 0x74A3, - 4102: 0x74A6, - 4103: 0x74A8, - 4104: 0x74A9, - 4105: 0x74AA, - 4106: 0x74AB, - 4107: 0x74AE, - 4108: 0x74AF, - 4109: 0x74B1, - 4110: 0x74B2, - 4111: 0x74B5, - 4112: 0x74B9, - 4113: 0x74BB, - 4114: 0x74BF, - 4115: 0x74C8, - 4116: 0x74C9, - 4117: 0x74CC, - 4118: 0x74D0, - 4119: 0x74D3, - 4120: 0x74D8, - 4121: 0x74DA, - 4122: 0x74DB, - 4123: 0x74DE, - 4124: 0x74DF, - 4125: 0x74E4, - 4126: 0x74E8, - 4127: 0x74EA, - 4128: 0x74EB, - 4129: 0x74EF, - 4130: 0x74F4, - 4131: 0x74FA, - 4132: 0x74FB, - 4133: 0x74FC, - 4134: 0x74FF, - 4135: 0x7506, - 4136: 0x7512, - 4137: 0x7516, - 4138: 0x7517, - 4139: 0x7520, - 4140: 0x7521, - 4141: 0x7524, - 4142: 0x7527, - 4143: 0x7529, - 4144: 0x752A, - 4145: 0x752F, - 4146: 0x7536, - 4147: 0x7539, - 4148: 0x753D, - 4149: 0x753E, - 4150: 0x753F, - 4151: 0x7540, - 4152: 0x7543, - 4153: 0x7547, - 4154: 0x7548, - 4155: 0x754E, - 4156: 0x7550, - 4157: 0x7552, - 4158: 0x7557, - 4159: 0x755E, - 4160: 0x755F, - 4161: 0x7561, - 4162: 0x756F, - 4163: 0x7571, - 4164: 0x7579, - 4165: 0x757A, - 4166: 0x757B, - 4167: 0x757C, - 4168: 0x757D, - 4169: 0x757E, - 4170: 0x7581, - 4171: 0x7585, - 4172: 0x7590, - 4173: 0x7592, - 4174: 0x7593, - 4175: 0x7595, - 4176: 0x7599, - 4177: 0x759C, - 4178: 0x75A2, - 4179: 0x75A4, - 4180: 0x75B4, - 4181: 0x75BA, - 4182: 0x75BF, - 4183: 0x75C0, - 4184: 0x75C1, - 4185: 0x75C4, - 4186: 0x75C6, - 4187: 0x75CC, - 4188: 0x75CE, - 4189: 0x75CF, - 4190: 0x75D7, - 4191: 0x75DC, - 4192: 0x75DF, - 4193: 0x75E0, - 4194: 0x75E1, - 4195: 0x75E4, - 4196: 0x75E7, - 4197: 0x75EC, - 4198: 0x75EE, - 4199: 0x75EF, - 4200: 0x75F1, - 4201: 0x75F9, - 4202: 0x7600, - 4203: 0x7602, - 4204: 0x7603, - 4205: 0x7604, - 4206: 0x7607, - 4207: 0x7608, - 4208: 0x760A, - 4209: 0x760C, - 4210: 0x760F, - 4211: 0x7612, - 4212: 0x7613, - 4213: 0x7615, - 4214: 0x7616, - 4215: 0x7619, - 4216: 0x761B, - 4217: 0x761C, - 4218: 0x761D, - 4219: 0x761E, - 4220: 0x7623, - 4221: 0x7625, - 4222: 0x7626, - 4223: 0x7629, - 4224: 0x762D, - 4225: 0x7632, - 4226: 0x7633, - 4227: 0x7635, - 4228: 0x7638, - 4229: 0x7639, - 4230: 0x763A, - 4231: 0x763C, - 4232: 0x764A, - 4233: 0x7640, - 4234: 0x7641, - 4235: 0x7643, - 4236: 0x7644, - 4237: 0x7645, - 4238: 0x7649, - 4239: 0x764B, - 4240: 0x7655, - 4241: 0x7659, - 4242: 0x765F, - 4243: 0x7664, - 4244: 0x7665, - 4245: 0x766D, - 4246: 0x766E, - 4247: 0x766F, - 4248: 0x7671, - 4249: 0x7674, - 4250: 0x7681, - 4251: 0x7685, - 4252: 0x768C, - 4253: 0x768D, - 4254: 0x7695, - 4255: 0x769B, - 4256: 0x769C, - 4257: 0x769D, - 4258: 0x769F, - 4259: 0x76A0, - 4260: 0x76A2, - 4261: 0x76A3, - 4262: 0x76A4, - 4263: 0x76A5, - 4264: 0x76A6, - 4265: 0x76A7, - 4266: 0x76A8, - 4267: 0x76AA, - 4268: 0x76AD, - 4269: 0x76BD, - 4270: 0x76C1, - 4271: 0x76C5, - 4272: 0x76C9, - 4273: 0x76CB, - 4274: 0x76CC, - 4275: 0x76CE, - 4276: 0x76D4, - 4277: 0x76D9, - 4278: 0x76E0, - 4279: 0x76E6, - 4280: 0x76E8, - 4281: 0x76EC, - 4282: 0x76F0, - 4283: 0x76F1, - 4284: 0x76F6, - 4285: 0x76F9, - 4286: 0x76FC, - 4287: 0x7700, - 4288: 0x7706, - 4289: 0x770A, - 4290: 0x770E, - 4291: 0x7712, - 4292: 0x7714, - 4293: 0x7715, - 4294: 0x7717, - 4295: 0x7719, - 4296: 0x771A, - 4297: 0x771C, - 4298: 0x7722, - 4299: 0x7728, - 4300: 0x772D, - 4301: 0x772E, - 4302: 0x772F, - 4303: 0x7734, - 4304: 0x7735, - 4305: 0x7736, - 4306: 0x7739, - 4307: 0x773D, - 4308: 0x773E, - 4309: 0x7742, - 4310: 0x7745, - 4311: 0x7746, - 4312: 0x774A, - 4313: 0x774D, - 4314: 0x774E, - 4315: 0x774F, - 4316: 0x7752, - 4317: 0x7756, - 4318: 0x7757, - 4319: 0x775C, - 4320: 0x775E, - 4321: 0x775F, - 4322: 0x7760, - 4323: 0x7762, - 4324: 0x7764, - 4325: 0x7767, - 4326: 0x776A, - 4327: 0x776C, - 4328: 0x7770, - 4329: 0x7772, - 4330: 0x7773, - 4331: 0x7774, - 4332: 0x777A, - 4333: 0x777D, - 4334: 0x7780, - 4335: 0x7784, - 4336: 0x778C, - 4337: 0x778D, - 4338: 0x7794, - 4339: 0x7795, - 4340: 0x7796, - 4341: 0x779A, - 4342: 0x779F, - 4343: 0x77A2, - 4344: 0x77A7, - 4345: 0x77AA, - 4346: 0x77AE, - 4347: 0x77AF, - 4348: 0x77B1, - 4349: 0x77B5, - 4350: 0x77BE, - 4351: 0x77C3, - 4352: 0x77C9, - 4353: 0x77D1, - 4354: 0x77D2, - 4355: 0x77D5, - 4356: 0x77D9, - 4357: 0x77DE, - 4358: 0x77DF, - 4359: 0x77E0, - 4360: 0x77E4, - 4361: 0x77E6, - 4362: 0x77EA, - 4363: 0x77EC, - 4364: 0x77F0, - 4365: 0x77F1, - 4366: 0x77F4, - 4367: 0x77F8, - 4368: 0x77FB, - 4369: 0x7805, - 4370: 0x7806, - 4371: 0x7809, - 4372: 0x780D, - 4373: 0x780E, - 4374: 0x7811, - 4375: 0x781D, - 4376: 0x7821, - 4377: 0x7822, - 4378: 0x7823, - 4379: 0x782D, - 4380: 0x782E, - 4381: 0x7830, - 4382: 0x7835, - 4383: 0x7837, - 4384: 0x7843, - 4385: 0x7844, - 4386: 0x7847, - 4387: 0x7848, - 4388: 0x784C, - 4389: 0x784E, - 4390: 0x7852, - 4391: 0x785C, - 4392: 0x785E, - 4393: 0x7860, - 4394: 0x7861, - 4395: 0x7863, - 4396: 0x7864, - 4397: 0x7868, - 4398: 0x786A, - 4399: 0x786E, - 4400: 0x787A, - 4401: 0x787E, - 4402: 0x788A, - 4403: 0x788F, - 4404: 0x7894, - 4405: 0x7898, - 4406: 0x78A1, - 4407: 0x789D, - 4408: 0x789E, - 4409: 0x789F, - 4410: 0x78A4, - 4411: 0x78A8, - 4412: 0x78AC, - 4413: 0x78AD, - 4414: 0x78B0, - 4415: 0x78B1, - 4416: 0x78B2, - 4417: 0x78B3, - 4418: 0x78BB, - 4419: 0x78BD, - 4420: 0x78BF, - 4421: 0x78C7, - 4422: 0x78C8, - 4423: 0x78C9, - 4424: 0x78CC, - 4425: 0x78CE, - 4426: 0x78D2, - 4427: 0x78D3, - 4428: 0x78D5, - 4429: 0x78D6, - 4430: 0x78E4, - 4431: 0x78DB, - 4432: 0x78DF, - 4433: 0x78E0, - 4434: 0x78E1, - 4435: 0x78E6, - 4436: 0x78EA, - 4437: 0x78F2, - 4438: 0x78F3, - 4439: 0x7900, - 4440: 0x78F6, - 4441: 0x78F7, - 4442: 0x78FA, - 4443: 0x78FB, - 4444: 0x78FF, - 4445: 0x7906, - 4446: 0x790C, - 4447: 0x7910, - 4448: 0x791A, - 4449: 0x791C, - 4450: 0x791E, - 4451: 0x791F, - 4452: 0x7920, - 4453: 0x7925, - 4454: 0x7927, - 4455: 0x7929, - 4456: 0x792D, - 4457: 0x7931, - 4458: 0x7934, - 4459: 0x7935, - 4460: 0x793B, - 4461: 0x793D, - 4462: 0x793F, - 4463: 0x7944, - 4464: 0x7945, - 4465: 0x7946, - 4466: 0x794A, - 4467: 0x794B, - 4468: 0x794F, - 4469: 0x7951, - 4470: 0x7954, - 4471: 0x7958, - 4472: 0x795B, - 4473: 0x795C, - 4474: 0x7967, - 4475: 0x7969, - 4476: 0x796B, - 4477: 0x7972, - 4478: 0x7979, - 4479: 0x797B, - 4480: 0x797C, - 4481: 0x797E, - 4482: 0x798B, - 4483: 0x798C, - 4484: 0x7991, - 4485: 0x7993, - 4486: 0x7994, - 4487: 0x7995, - 4488: 0x7996, - 4489: 0x7998, - 4490: 0x799B, - 4491: 0x799C, - 4492: 0x79A1, - 4493: 0x79A8, - 4494: 0x79A9, - 4495: 0x79AB, - 4496: 0x79AF, - 4497: 0x79B1, - 4498: 0x79B4, - 4499: 0x79B8, - 4500: 0x79BB, - 4501: 0x79C2, - 4502: 0x79C4, - 4503: 0x79C7, - 4504: 0x79C8, - 4505: 0x79CA, - 4506: 0x79CF, - 4507: 0x79D4, - 4508: 0x79D6, - 4509: 0x79DA, - 4510: 0x79DD, - 4511: 0x79DE, - 4512: 0x79E0, - 4513: 0x79E2, - 4514: 0x79E5, - 4515: 0x79EA, - 4516: 0x79EB, - 4517: 0x79ED, - 4518: 0x79F1, - 4519: 0x79F8, - 4520: 0x79FC, - 4521: 0x7A02, - 4522: 0x7A03, - 4523: 0x7A07, - 4524: 0x7A09, - 4525: 0x7A0A, - 4526: 0x7A0C, - 4527: 0x7A11, - 4528: 0x7A15, - 4529: 0x7A1B, - 4530: 0x7A1E, - 4531: 0x7A21, - 4532: 0x7A27, - 4533: 0x7A2B, - 4534: 0x7A2D, - 4535: 0x7A2F, - 4536: 0x7A30, - 4537: 0x7A34, - 4538: 0x7A35, - 4539: 0x7A38, - 4540: 0x7A39, - 4541: 0x7A3A, - 4542: 0x7A44, - 4543: 0x7A45, - 4544: 0x7A47, - 4545: 0x7A48, - 4546: 0x7A4C, - 4547: 0x7A55, - 4548: 0x7A56, - 4549: 0x7A59, - 4550: 0x7A5C, - 4551: 0x7A5D, - 4552: 0x7A5F, - 4553: 0x7A60, - 4554: 0x7A65, - 4555: 0x7A67, - 4556: 0x7A6A, - 4557: 0x7A6D, - 4558: 0x7A75, - 4559: 0x7A78, - 4560: 0x7A7E, - 4561: 0x7A80, - 4562: 0x7A82, - 4563: 0x7A85, - 4564: 0x7A86, - 4565: 0x7A8A, - 4566: 0x7A8B, - 4567: 0x7A90, - 4568: 0x7A91, - 4569: 0x7A94, - 4570: 0x7A9E, - 4571: 0x7AA0, - 4572: 0x7AA3, - 4573: 0x7AAC, - 4574: 0x7AB3, - 4575: 0x7AB5, - 4576: 0x7AB9, - 4577: 0x7ABB, - 4578: 0x7ABC, - 4579: 0x7AC6, - 4580: 0x7AC9, - 4581: 0x7ACC, - 4582: 0x7ACE, - 4583: 0x7AD1, - 4584: 0x7ADB, - 4585: 0x7AE8, - 4586: 0x7AE9, - 4587: 0x7AEB, - 4588: 0x7AEC, - 4589: 0x7AF1, - 4590: 0x7AF4, - 4591: 0x7AFB, - 4592: 0x7AFD, - 4593: 0x7AFE, - 4594: 0x7B07, - 4595: 0x7B14, - 4596: 0x7B1F, - 4597: 0x7B23, - 4598: 0x7B27, - 4599: 0x7B29, - 4600: 0x7B2A, - 4601: 0x7B2B, - 4602: 0x7B2D, - 4603: 0x7B2E, - 4604: 0x7B2F, - 4605: 0x7B30, - 4606: 0x7B31, - 4607: 0x7B34, - 4608: 0x7B3D, - 4609: 0x7B3F, - 4610: 0x7B40, - 4611: 0x7B41, - 4612: 0x7B47, - 4613: 0x7B4E, - 4614: 0x7B55, - 4615: 0x7B60, - 4616: 0x7B64, - 4617: 0x7B66, - 4618: 0x7B69, - 4619: 0x7B6A, - 4620: 0x7B6D, - 4621: 0x7B6F, - 4622: 0x7B72, - 4623: 0x7B73, - 4624: 0x7B77, - 4625: 0x7B84, - 4626: 0x7B89, - 4627: 0x7B8E, - 4628: 0x7B90, - 4629: 0x7B91, - 4630: 0x7B96, - 4631: 0x7B9B, - 4632: 0x7B9E, - 4633: 0x7BA0, - 4634: 0x7BA5, - 4635: 0x7BAC, - 4636: 0x7BAF, - 4637: 0x7BB0, - 4638: 0x7BB2, - 4639: 0x7BB5, - 4640: 0x7BB6, - 4641: 0x7BBA, - 4642: 0x7BBB, - 4643: 0x7BBC, - 4644: 0x7BBD, - 4645: 0x7BC2, - 4646: 0x7BC5, - 4647: 0x7BC8, - 4648: 0x7BCA, - 4649: 0x7BD4, - 4650: 0x7BD6, - 4651: 0x7BD7, - 4652: 0x7BD9, - 4653: 0x7BDA, - 4654: 0x7BDB, - 4655: 0x7BE8, - 4656: 0x7BEA, - 4657: 0x7BF2, - 4658: 0x7BF4, - 4659: 0x7BF5, - 4660: 0x7BF8, - 4661: 0x7BF9, - 4662: 0x7BFA, - 4663: 0x7BFC, - 4664: 0x7BFE, - 4665: 0x7C01, - 4666: 0x7C02, - 4667: 0x7C03, - 4668: 0x7C04, - 4669: 0x7C06, - 4670: 0x7C09, - 4671: 0x7C0B, - 4672: 0x7C0C, - 4673: 0x7C0E, - 4674: 0x7C0F, - 4675: 0x7C19, - 4676: 0x7C1B, - 4677: 0x7C20, - 4678: 0x7C25, - 4679: 0x7C26, - 4680: 0x7C28, - 4681: 0x7C2C, - 4682: 0x7C31, - 4683: 0x7C33, - 4684: 0x7C34, - 4685: 0x7C36, - 4686: 0x7C39, - 4687: 0x7C3A, - 4688: 0x7C46, - 4689: 0x7C4A, - 4690: 0x7C55, - 4691: 0x7C51, - 4692: 0x7C52, - 4693: 0x7C53, - 4694: 0x7C59, - 4695: 0x7C5A, - 4696: 0x7C5B, - 4697: 0x7C5C, - 4698: 0x7C5D, - 4699: 0x7C5E, - 4700: 0x7C61, - 4701: 0x7C63, - 4702: 0x7C67, - 4703: 0x7C69, - 4704: 0x7C6D, - 4705: 0x7C6E, - 4706: 0x7C70, - 4707: 0x7C72, - 4708: 0x7C79, - 4709: 0x7C7C, - 4710: 0x7C7D, - 4711: 0x7C86, - 4712: 0x7C87, - 4713: 0x7C8F, - 4714: 0x7C94, - 4715: 0x7C9E, - 4716: 0x7CA0, - 4717: 0x7CA6, - 4718: 0x7CB0, - 4719: 0x7CB6, - 4720: 0x7CB7, - 4721: 0x7CBA, - 4722: 0x7CBB, - 4723: 0x7CBC, - 4724: 0x7CBF, - 4725: 0x7CC4, - 4726: 0x7CC7, - 4727: 0x7CC8, - 4728: 0x7CC9, - 4729: 0x7CCD, - 4730: 0x7CCF, - 4731: 0x7CD3, - 4732: 0x7CD4, - 4733: 0x7CD5, - 4734: 0x7CD7, - 4735: 0x7CD9, - 4736: 0x7CDA, - 4737: 0x7CDD, - 4738: 0x7CE6, - 4739: 0x7CE9, - 4740: 0x7CEB, - 4741: 0x7CF5, - 4742: 0x7D03, - 4743: 0x7D07, - 4744: 0x7D08, - 4745: 0x7D09, - 4746: 0x7D0F, - 4747: 0x7D11, - 4748: 0x7D12, - 4749: 0x7D13, - 4750: 0x7D16, - 4751: 0x7D1D, - 4752: 0x7D1E, - 4753: 0x7D23, - 4754: 0x7D26, - 4755: 0x7D2A, - 4756: 0x7D2D, - 4757: 0x7D31, - 4758: 0x7D3C, - 4759: 0x7D3D, - 4760: 0x7D3E, - 4761: 0x7D40, - 4762: 0x7D41, - 4763: 0x7D47, - 4764: 0x7D48, - 4765: 0x7D4D, - 4766: 0x7D51, - 4767: 0x7D53, - 4768: 0x7D57, - 4769: 0x7D59, - 4770: 0x7D5A, - 4771: 0x7D5C, - 4772: 0x7D5D, - 4773: 0x7D65, - 4774: 0x7D67, - 4775: 0x7D6A, - 4776: 0x7D70, - 4777: 0x7D78, - 4778: 0x7D7A, - 4779: 0x7D7B, - 4780: 0x7D7F, - 4781: 0x7D81, - 4782: 0x7D82, - 4783: 0x7D83, - 4784: 0x7D85, - 4785: 0x7D86, - 4786: 0x7D88, - 4787: 0x7D8B, - 4788: 0x7D8C, - 4789: 0x7D8D, - 4790: 0x7D91, - 4791: 0x7D96, - 4792: 0x7D97, - 4793: 0x7D9D, - 4794: 0x7D9E, - 4795: 0x7DA6, - 4796: 0x7DA7, - 4797: 0x7DAA, - 4798: 0x7DB3, - 4799: 0x7DB6, - 4800: 0x7DB7, - 4801: 0x7DB9, - 4802: 0x7DC2, - 4803: 0x7DC3, - 4804: 0x7DC4, - 4805: 0x7DC5, - 4806: 0x7DC6, - 4807: 0x7DCC, - 4808: 0x7DCD, - 4809: 0x7DCE, - 4810: 0x7DD7, - 4811: 0x7DD9, - 4812: 0x7E00, - 4813: 0x7DE2, - 4814: 0x7DE5, - 4815: 0x7DE6, - 4816: 0x7DEA, - 4817: 0x7DEB, - 4818: 0x7DED, - 4819: 0x7DF1, - 4820: 0x7DF5, - 4821: 0x7DF6, - 4822: 0x7DF9, - 4823: 0x7DFA, - 4824: 0x7E08, - 4825: 0x7E10, - 4826: 0x7E11, - 4827: 0x7E15, - 4828: 0x7E17, - 4829: 0x7E1C, - 4830: 0x7E1D, - 4831: 0x7E20, - 4832: 0x7E27, - 4833: 0x7E28, - 4834: 0x7E2C, - 4835: 0x7E2D, - 4836: 0x7E2F, - 4837: 0x7E33, - 4838: 0x7E36, - 4839: 0x7E3F, - 4840: 0x7E44, - 4841: 0x7E45, - 4842: 0x7E47, - 4843: 0x7E4E, - 4844: 0x7E50, - 4845: 0x7E52, - 4846: 0x7E58, - 4847: 0x7E5F, - 4848: 0x7E61, - 4849: 0x7E62, - 4850: 0x7E65, - 4851: 0x7E6B, - 4852: 0x7E6E, - 4853: 0x7E6F, - 4854: 0x7E73, - 4855: 0x7E78, - 4856: 0x7E7E, - 4857: 0x7E81, - 4858: 0x7E86, - 4859: 0x7E87, - 4860: 0x7E8A, - 4861: 0x7E8D, - 4862: 0x7E91, - 4863: 0x7E95, - 4864: 0x7E98, - 4865: 0x7E9A, - 4866: 0x7E9D, - 4867: 0x7E9E, - 4868: 0x7F3C, - 4869: 0x7F3B, - 4870: 0x7F3D, - 4871: 0x7F3E, - 4872: 0x7F3F, - 4873: 0x7F43, - 4874: 0x7F44, - 4875: 0x7F47, - 4876: 0x7F4F, - 4877: 0x7F52, - 4878: 0x7F53, - 4879: 0x7F5B, - 4880: 0x7F5C, - 4881: 0x7F5D, - 4882: 0x7F61, - 4883: 0x7F63, - 4884: 0x7F64, - 4885: 0x7F65, - 4886: 0x7F66, - 4887: 0x7F6D, - 4888: 0x7F71, - 4889: 0x7F7D, - 4890: 0x7F7E, - 4891: 0x7F7F, - 4892: 0x7F80, - 4893: 0x7F8B, - 4894: 0x7F8D, - 4895: 0x7F8F, - 4896: 0x7F90, - 4897: 0x7F91, - 4898: 0x7F96, - 4899: 0x7F97, - 4900: 0x7F9C, - 4901: 0x7FA1, - 4902: 0x7FA2, - 4903: 0x7FA6, - 4904: 0x7FAA, - 4905: 0x7FAD, - 4906: 0x7FB4, - 4907: 0x7FBC, - 4908: 0x7FBF, - 4909: 0x7FC0, - 4910: 0x7FC3, - 4911: 0x7FC8, - 4912: 0x7FCE, - 4913: 0x7FCF, - 4914: 0x7FDB, - 4915: 0x7FDF, - 4916: 0x7FE3, - 4917: 0x7FE5, - 4918: 0x7FE8, - 4919: 0x7FEC, - 4920: 0x7FEE, - 4921: 0x7FEF, - 4922: 0x7FF2, - 4923: 0x7FFA, - 4924: 0x7FFD, - 4925: 0x7FFE, - 4926: 0x7FFF, - 4927: 0x8007, - 4928: 0x8008, - 4929: 0x800A, - 4930: 0x800D, - 4931: 0x800E, - 4932: 0x800F, - 4933: 0x8011, - 4934: 0x8013, - 4935: 0x8014, - 4936: 0x8016, - 4937: 0x801D, - 4938: 0x801E, - 4939: 0x801F, - 4940: 0x8020, - 4941: 0x8024, - 4942: 0x8026, - 4943: 0x802C, - 4944: 0x802E, - 4945: 0x8030, - 4946: 0x8034, - 4947: 0x8035, - 4948: 0x8037, - 4949: 0x8039, - 4950: 0x803A, - 4951: 0x803C, - 4952: 0x803E, - 4953: 0x8040, - 4954: 0x8044, - 4955: 0x8060, - 4956: 0x8064, - 4957: 0x8066, - 4958: 0x806D, - 4959: 0x8071, - 4960: 0x8075, - 4961: 0x8081, - 4962: 0x8088, - 4963: 0x808E, - 4964: 0x809C, - 4965: 0x809E, - 4966: 0x80A6, - 4967: 0x80A7, - 4968: 0x80AB, - 4969: 0x80B8, - 4970: 0x80B9, - 4971: 0x80C8, - 4972: 0x80CD, - 4973: 0x80CF, - 4974: 0x80D2, - 4975: 0x80D4, - 4976: 0x80D5, - 4977: 0x80D7, - 4978: 0x80D8, - 4979: 0x80E0, - 4980: 0x80ED, - 4981: 0x80EE, - 4982: 0x80F0, - 4983: 0x80F2, - 4984: 0x80F3, - 4985: 0x80F6, - 4986: 0x80F9, - 4987: 0x80FA, - 4988: 0x80FE, - 4989: 0x8103, - 4990: 0x810B, - 4991: 0x8116, - 4992: 0x8117, - 4993: 0x8118, - 4994: 0x811C, - 4995: 0x811E, - 4996: 0x8120, - 4997: 0x8124, - 4998: 0x8127, - 4999: 0x812C, - 5000: 0x8130, - 5001: 0x8135, - 5002: 0x813A, - 5003: 0x813C, - 5004: 0x8145, - 5005: 0x8147, - 5006: 0x814A, - 5007: 0x814C, - 5008: 0x8152, - 5009: 0x8157, - 5010: 0x8160, - 5011: 0x8161, - 5012: 0x8167, - 5013: 0x8168, - 5014: 0x8169, - 5015: 0x816D, - 5016: 0x816F, - 5017: 0x8177, - 5018: 0x8181, - 5019: 0x8190, - 5020: 0x8184, - 5021: 0x8185, - 5022: 0x8186, - 5023: 0x818B, - 5024: 0x818E, - 5025: 0x8196, - 5026: 0x8198, - 5027: 0x819B, - 5028: 0x819E, - 5029: 0x81A2, - 5030: 0x81AE, - 5031: 0x81B2, - 5032: 0x81B4, - 5033: 0x81BB, - 5034: 0x81CB, - 5035: 0x81C3, - 5036: 0x81C5, - 5037: 0x81CA, - 5038: 0x81CE, - 5039: 0x81CF, - 5040: 0x81D5, - 5041: 0x81D7, - 5042: 0x81DB, - 5043: 0x81DD, - 5044: 0x81DE, - 5045: 0x81E1, - 5046: 0x81E4, - 5047: 0x81EB, - 5048: 0x81EC, - 5049: 0x81F0, - 5050: 0x81F1, - 5051: 0x81F2, - 5052: 0x81F5, - 5053: 0x81F6, - 5054: 0x81F8, - 5055: 0x81F9, - 5056: 0x81FD, - 5057: 0x81FF, - 5058: 0x8200, - 5059: 0x8203, - 5060: 0x820F, - 5061: 0x8213, - 5062: 0x8214, - 5063: 0x8219, - 5064: 0x821A, - 5065: 0x821D, - 5066: 0x8221, - 5067: 0x8222, - 5068: 0x8228, - 5069: 0x8232, - 5070: 0x8234, - 5071: 0x823A, - 5072: 0x8243, - 5073: 0x8244, - 5074: 0x8245, - 5075: 0x8246, - 5076: 0x824B, - 5077: 0x824E, - 5078: 0x824F, - 5079: 0x8251, - 5080: 0x8256, - 5081: 0x825C, - 5082: 0x8260, - 5083: 0x8263, - 5084: 0x8267, - 5085: 0x826D, - 5086: 0x8274, - 5087: 0x827B, - 5088: 0x827D, - 5089: 0x827F, - 5090: 0x8280, - 5091: 0x8281, - 5092: 0x8283, - 5093: 0x8284, - 5094: 0x8287, - 5095: 0x8289, - 5096: 0x828A, - 5097: 0x828E, - 5098: 0x8291, - 5099: 0x8294, - 5100: 0x8296, - 5101: 0x8298, - 5102: 0x829A, - 5103: 0x829B, - 5104: 0x82A0, - 5105: 0x82A1, - 5106: 0x82A3, - 5107: 0x82A4, - 5108: 0x82A7, - 5109: 0x82A8, - 5110: 0x82A9, - 5111: 0x82AA, - 5112: 0x82AE, - 5113: 0x82B0, - 5114: 0x82B2, - 5115: 0x82B4, - 5116: 0x82B7, - 5117: 0x82BA, - 5118: 0x82BC, - 5119: 0x82BE, - 5120: 0x82BF, - 5121: 0x82C6, - 5122: 0x82D0, - 5123: 0x82D5, - 5124: 0x82DA, - 5125: 0x82E0, - 5126: 0x82E2, - 5127: 0x82E4, - 5128: 0x82E8, - 5129: 0x82EA, - 5130: 0x82ED, - 5131: 0x82EF, - 5132: 0x82F6, - 5133: 0x82F7, - 5134: 0x82FD, - 5135: 0x82FE, - 5136: 0x8300, - 5137: 0x8301, - 5138: 0x8307, - 5139: 0x8308, - 5140: 0x830A, - 5141: 0x830B, - 5142: 0x8354, - 5143: 0x831B, - 5144: 0x831D, - 5145: 0x831E, - 5146: 0x831F, - 5147: 0x8321, - 5148: 0x8322, - 5149: 0x832C, - 5150: 0x832D, - 5151: 0x832E, - 5152: 0x8330, - 5153: 0x8333, - 5154: 0x8337, - 5155: 0x833A, - 5156: 0x833C, - 5157: 0x833D, - 5158: 0x8342, - 5159: 0x8343, - 5160: 0x8344, - 5161: 0x8347, - 5162: 0x834D, - 5163: 0x834E, - 5164: 0x8351, - 5165: 0x8355, - 5166: 0x8356, - 5167: 0x8357, - 5168: 0x8370, - 5169: 0x8378, - 5170: 0x837D, - 5171: 0x837F, - 5172: 0x8380, - 5173: 0x8382, - 5174: 0x8384, - 5175: 0x8386, - 5176: 0x838D, - 5177: 0x8392, - 5178: 0x8394, - 5179: 0x8395, - 5180: 0x8398, - 5181: 0x8399, - 5182: 0x839B, - 5183: 0x839C, - 5184: 0x839D, - 5185: 0x83A6, - 5186: 0x83A7, - 5187: 0x83A9, - 5188: 0x83AC, - 5189: 0x83BE, - 5190: 0x83BF, - 5191: 0x83C0, - 5192: 0x83C7, - 5193: 0x83C9, - 5194: 0x83CF, - 5195: 0x83D0, - 5196: 0x83D1, - 5197: 0x83D4, - 5198: 0x83DD, - 5199: 0x8353, - 5200: 0x83E8, - 5201: 0x83EA, - 5202: 0x83F6, - 5203: 0x83F8, - 5204: 0x83F9, - 5205: 0x83FC, - 5206: 0x8401, - 5207: 0x8406, - 5208: 0x840A, - 5209: 0x840F, - 5210: 0x8411, - 5211: 0x8415, - 5212: 0x8419, - 5213: 0x83AD, - 5214: 0x842F, - 5215: 0x8439, - 5216: 0x8445, - 5217: 0x8447, - 5218: 0x8448, - 5219: 0x844A, - 5220: 0x844D, - 5221: 0x844F, - 5222: 0x8451, - 5223: 0x8452, - 5224: 0x8456, - 5225: 0x8458, - 5226: 0x8459, - 5227: 0x845A, - 5228: 0x845C, - 5229: 0x8460, - 5230: 0x8464, - 5231: 0x8465, - 5232: 0x8467, - 5233: 0x846A, - 5234: 0x8470, - 5235: 0x8473, - 5236: 0x8474, - 5237: 0x8476, - 5238: 0x8478, - 5239: 0x847C, - 5240: 0x847D, - 5241: 0x8481, - 5242: 0x8485, - 5243: 0x8492, - 5244: 0x8493, - 5245: 0x8495, - 5246: 0x849E, - 5247: 0x84A6, - 5248: 0x84A8, - 5249: 0x84A9, - 5250: 0x84AA, - 5251: 0x84AF, - 5252: 0x84B1, - 5253: 0x84B4, - 5254: 0x84BA, - 5255: 0x84BD, - 5256: 0x84BE, - 5257: 0x84C0, - 5258: 0x84C2, - 5259: 0x84C7, - 5260: 0x84C8, - 5261: 0x84CC, - 5262: 0x84CF, - 5263: 0x84D3, - 5264: 0x84DC, - 5265: 0x84E7, - 5266: 0x84EA, - 5267: 0x84EF, - 5268: 0x84F0, - 5269: 0x84F1, - 5270: 0x84F2, - 5271: 0x84F7, - 5272: 0x8532, - 5273: 0x84FA, - 5274: 0x84FB, - 5275: 0x84FD, - 5276: 0x8502, - 5277: 0x8503, - 5278: 0x8507, - 5279: 0x850C, - 5280: 0x850E, - 5281: 0x8510, - 5282: 0x851C, - 5283: 0x851E, - 5284: 0x8522, - 5285: 0x8523, - 5286: 0x8524, - 5287: 0x8525, - 5288: 0x8527, - 5289: 0x852A, - 5290: 0x852B, - 5291: 0x852F, - 5292: 0x8533, - 5293: 0x8534, - 5294: 0x8536, - 5295: 0x853F, - 5296: 0x8546, - 5297: 0x854F, - 5298: 0x8550, - 5299: 0x8551, - 5300: 0x8552, - 5301: 0x8553, - 5302: 0x8556, - 5303: 0x8559, - 5304: 0x855C, - 5305: 0x855D, - 5306: 0x855E, - 5307: 0x855F, - 5308: 0x8560, - 5309: 0x8561, - 5310: 0x8562, - 5311: 0x8564, - 5312: 0x856B, - 5313: 0x856F, - 5314: 0x8579, - 5315: 0x857A, - 5316: 0x857B, - 5317: 0x857D, - 5318: 0x857F, - 5319: 0x8581, - 5320: 0x8585, - 5321: 0x8586, - 5322: 0x8589, - 5323: 0x858B, - 5324: 0x858C, - 5325: 0x858F, - 5326: 0x8593, - 5327: 0x8598, - 5328: 0x859D, - 5329: 0x859F, - 5330: 0x85A0, - 5331: 0x85A2, - 5332: 0x85A5, - 5333: 0x85A7, - 5334: 0x85B4, - 5335: 0x85B6, - 5336: 0x85B7, - 5337: 0x85B8, - 5338: 0x85BC, - 5339: 0x85BD, - 5340: 0x85BE, - 5341: 0x85BF, - 5342: 0x85C2, - 5343: 0x85C7, - 5344: 0x85CA, - 5345: 0x85CB, - 5346: 0x85CE, - 5347: 0x85AD, - 5348: 0x85D8, - 5349: 0x85DA, - 5350: 0x85DF, - 5351: 0x85E0, - 5352: 0x85E6, - 5353: 0x85E8, - 5354: 0x85ED, - 5355: 0x85F3, - 5356: 0x85F6, - 5357: 0x85FC, - 5358: 0x85FF, - 5359: 0x8600, - 5360: 0x8604, - 5361: 0x8605, - 5362: 0x860D, - 5363: 0x860E, - 5364: 0x8610, - 5365: 0x8611, - 5366: 0x8612, - 5367: 0x8618, - 5368: 0x8619, - 5369: 0x861B, - 5370: 0x861E, - 5371: 0x8621, - 5372: 0x8627, - 5373: 0x8629, - 5374: 0x8636, - 5375: 0x8638, - 5376: 0x863A, - 5377: 0x863C, - 5378: 0x863D, - 5379: 0x8640, - 5380: 0x8642, - 5381: 0x8646, - 5382: 0x8652, - 5383: 0x8653, - 5384: 0x8656, - 5385: 0x8657, - 5386: 0x8658, - 5387: 0x8659, - 5388: 0x865D, - 5389: 0x8660, - 5390: 0x8661, - 5391: 0x8662, - 5392: 0x8663, - 5393: 0x8664, - 5394: 0x8669, - 5395: 0x866C, - 5396: 0x866F, - 5397: 0x8675, - 5398: 0x8676, - 5399: 0x8677, - 5400: 0x867A, - 5401: 0x868D, - 5402: 0x8691, - 5403: 0x8696, - 5404: 0x8698, - 5405: 0x869A, - 5406: 0x869C, - 5407: 0x86A1, - 5408: 0x86A6, - 5409: 0x86A7, - 5410: 0x86A8, - 5411: 0x86AD, - 5412: 0x86B1, - 5413: 0x86B3, - 5414: 0x86B4, - 5415: 0x86B5, - 5416: 0x86B7, - 5417: 0x86B8, - 5418: 0x86B9, - 5419: 0x86BF, - 5420: 0x86C0, - 5421: 0x86C1, - 5422: 0x86C3, - 5423: 0x86C5, - 5424: 0x86D1, - 5425: 0x86D2, - 5426: 0x86D5, - 5427: 0x86D7, - 5428: 0x86DA, - 5429: 0x86DC, - 5430: 0x86E0, - 5431: 0x86E3, - 5432: 0x86E5, - 5433: 0x86E7, - 5434: 0x8688, - 5435: 0x86FA, - 5436: 0x86FC, - 5437: 0x86FD, - 5438: 0x8704, - 5439: 0x8705, - 5440: 0x8707, - 5441: 0x870B, - 5442: 0x870E, - 5443: 0x870F, - 5444: 0x8710, - 5445: 0x8713, - 5446: 0x8714, - 5447: 0x8719, - 5448: 0x871E, - 5449: 0x871F, - 5450: 0x8721, - 5451: 0x8723, - 5452: 0x8728, - 5453: 0x872E, - 5454: 0x872F, - 5455: 0x8731, - 5456: 0x8732, - 5457: 0x8739, - 5458: 0x873A, - 5459: 0x873C, - 5460: 0x873D, - 5461: 0x873E, - 5462: 0x8740, - 5463: 0x8743, - 5464: 0x8745, - 5465: 0x874D, - 5466: 0x8758, - 5467: 0x875D, - 5468: 0x8761, - 5469: 0x8764, - 5470: 0x8765, - 5471: 0x876F, - 5472: 0x8771, - 5473: 0x8772, - 5474: 0x877B, - 5475: 0x8783, - 5476: 0x8784, - 5477: 0x8785, - 5478: 0x8786, - 5479: 0x8787, - 5480: 0x8788, - 5481: 0x8789, - 5482: 0x878B, - 5483: 0x878C, - 5484: 0x8790, - 5485: 0x8793, - 5486: 0x8795, - 5487: 0x8797, - 5488: 0x8798, - 5489: 0x8799, - 5490: 0x879E, - 5491: 0x87A0, - 5492: 0x87A3, - 5493: 0x87A7, - 5494: 0x87AC, - 5495: 0x87AD, - 5496: 0x87AE, - 5497: 0x87B1, - 5498: 0x87B5, - 5499: 0x87BE, - 5500: 0x87BF, - 5501: 0x87C1, - 5502: 0x87C8, - 5503: 0x87C9, - 5504: 0x87CA, - 5505: 0x87CE, - 5506: 0x87D5, - 5507: 0x87D6, - 5508: 0x87D9, - 5509: 0x87DA, - 5510: 0x87DC, - 5511: 0x87DF, - 5512: 0x87E2, - 5513: 0x87E3, - 5514: 0x87E4, - 5515: 0x87EA, - 5516: 0x87EB, - 5517: 0x87ED, - 5518: 0x87F1, - 5519: 0x87F3, - 5520: 0x87F8, - 5521: 0x87FA, - 5522: 0x87FF, - 5523: 0x8801, - 5524: 0x8803, - 5525: 0x8806, - 5526: 0x8809, - 5527: 0x880A, - 5528: 0x880B, - 5529: 0x8810, - 5530: 0x8819, - 5531: 0x8812, - 5532: 0x8813, - 5533: 0x8814, - 5534: 0x8818, - 5535: 0x881A, - 5536: 0x881B, - 5537: 0x881C, - 5538: 0x881E, - 5539: 0x881F, - 5540: 0x8828, - 5541: 0x882D, - 5542: 0x882E, - 5543: 0x8830, - 5544: 0x8832, - 5545: 0x8835, - 5546: 0x883A, - 5547: 0x883C, - 5548: 0x8841, - 5549: 0x8843, - 5550: 0x8845, - 5551: 0x8848, - 5552: 0x8849, - 5553: 0x884A, - 5554: 0x884B, - 5555: 0x884E, - 5556: 0x8851, - 5557: 0x8855, - 5558: 0x8856, - 5559: 0x8858, - 5560: 0x885A, - 5561: 0x885C, - 5562: 0x885F, - 5563: 0x8860, - 5564: 0x8864, - 5565: 0x8869, - 5566: 0x8871, - 5567: 0x8879, - 5568: 0x887B, - 5569: 0x8880, - 5570: 0x8898, - 5571: 0x889A, - 5572: 0x889B, - 5573: 0x889C, - 5574: 0x889F, - 5575: 0x88A0, - 5576: 0x88A8, - 5577: 0x88AA, - 5578: 0x88BA, - 5579: 0x88BD, - 5580: 0x88BE, - 5581: 0x88C0, - 5582: 0x88CA, - 5583: 0x88CB, - 5584: 0x88CC, - 5585: 0x88CD, - 5586: 0x88CE, - 5587: 0x88D1, - 5588: 0x88D2, - 5589: 0x88D3, - 5590: 0x88DB, - 5591: 0x88DE, - 5592: 0x88E7, - 5593: 0x88EF, - 5594: 0x88F0, - 5595: 0x88F1, - 5596: 0x88F5, - 5597: 0x88F7, - 5598: 0x8901, - 5599: 0x8906, - 5600: 0x890D, - 5601: 0x890E, - 5602: 0x890F, - 5603: 0x8915, - 5604: 0x8916, - 5605: 0x8918, - 5606: 0x8919, - 5607: 0x891A, - 5608: 0x891C, - 5609: 0x8920, - 5610: 0x8926, - 5611: 0x8927, - 5612: 0x8928, - 5613: 0x8930, - 5614: 0x8931, - 5615: 0x8932, - 5616: 0x8935, - 5617: 0x8939, - 5618: 0x893A, - 5619: 0x893E, - 5620: 0x8940, - 5621: 0x8942, - 5622: 0x8945, - 5623: 0x8946, - 5624: 0x8949, - 5625: 0x894F, - 5626: 0x8952, - 5627: 0x8957, - 5628: 0x895A, - 5629: 0x895B, - 5630: 0x895C, - 5631: 0x8961, - 5632: 0x8962, - 5633: 0x8963, - 5634: 0x896B, - 5635: 0x896E, - 5636: 0x8970, - 5637: 0x8973, - 5638: 0x8975, - 5639: 0x897A, - 5640: 0x897B, - 5641: 0x897C, - 5642: 0x897D, - 5643: 0x8989, - 5644: 0x898D, - 5645: 0x8990, - 5646: 0x8994, - 5647: 0x8995, - 5648: 0x899B, - 5649: 0x899C, - 5650: 0x899F, - 5651: 0x89A0, - 5652: 0x89A5, - 5653: 0x89B0, - 5654: 0x89B4, - 5655: 0x89B5, - 5656: 0x89B6, - 5657: 0x89B7, - 5658: 0x89BC, - 5659: 0x89D4, - 5660: 0x89D5, - 5661: 0x89D6, - 5662: 0x89D7, - 5663: 0x89D8, - 5664: 0x89E5, - 5665: 0x89E9, - 5666: 0x89EB, - 5667: 0x89ED, - 5668: 0x89F1, - 5669: 0x89F3, - 5670: 0x89F6, - 5671: 0x89F9, - 5672: 0x89FD, - 5673: 0x89FF, - 5674: 0x8A04, - 5675: 0x8A05, - 5676: 0x8A07, - 5677: 0x8A0F, - 5678: 0x8A11, - 5679: 0x8A12, - 5680: 0x8A14, - 5681: 0x8A15, - 5682: 0x8A1E, - 5683: 0x8A20, - 5684: 0x8A22, - 5685: 0x8A24, - 5686: 0x8A26, - 5687: 0x8A2B, - 5688: 0x8A2C, - 5689: 0x8A2F, - 5690: 0x8A35, - 5691: 0x8A37, - 5692: 0x8A3D, - 5693: 0x8A3E, - 5694: 0x8A40, - 5695: 0x8A43, - 5696: 0x8A45, - 5697: 0x8A47, - 5698: 0x8A49, - 5699: 0x8A4D, - 5700: 0x8A4E, - 5701: 0x8A53, - 5702: 0x8A56, - 5703: 0x8A57, - 5704: 0x8A58, - 5705: 0x8A5C, - 5706: 0x8A5D, - 5707: 0x8A61, - 5708: 0x8A65, - 5709: 0x8A67, - 5710: 0x8A75, - 5711: 0x8A76, - 5712: 0x8A77, - 5713: 0x8A79, - 5714: 0x8A7A, - 5715: 0x8A7B, - 5716: 0x8A7E, - 5717: 0x8A7F, - 5718: 0x8A80, - 5719: 0x8A83, - 5720: 0x8A86, - 5721: 0x8A8B, - 5722: 0x8A8F, - 5723: 0x8A90, - 5724: 0x8A92, - 5725: 0x8A96, - 5726: 0x8A97, - 5727: 0x8A99, - 5728: 0x8A9F, - 5729: 0x8AA7, - 5730: 0x8AA9, - 5731: 0x8AAE, - 5732: 0x8AAF, - 5733: 0x8AB3, - 5734: 0x8AB6, - 5735: 0x8AB7, - 5736: 0x8ABB, - 5737: 0x8ABE, - 5738: 0x8AC3, - 5739: 0x8AC6, - 5740: 0x8AC8, - 5741: 0x8AC9, - 5742: 0x8ACA, - 5743: 0x8AD1, - 5744: 0x8AD3, - 5745: 0x8AD4, - 5746: 0x8AD5, - 5747: 0x8AD7, - 5748: 0x8ADD, - 5749: 0x8ADF, - 5750: 0x8AEC, - 5751: 0x8AF0, - 5752: 0x8AF4, - 5753: 0x8AF5, - 5754: 0x8AF6, - 5755: 0x8AFC, - 5756: 0x8AFF, - 5757: 0x8B05, - 5758: 0x8B06, - 5759: 0x8B0B, - 5760: 0x8B11, - 5761: 0x8B1C, - 5762: 0x8B1E, - 5763: 0x8B1F, - 5764: 0x8B0A, - 5765: 0x8B2D, - 5766: 0x8B30, - 5767: 0x8B37, - 5768: 0x8B3C, - 5769: 0x8B42, - 5770: 0x8B43, - 5771: 0x8B44, - 5772: 0x8B45, - 5773: 0x8B46, - 5774: 0x8B48, - 5775: 0x8B52, - 5776: 0x8B53, - 5777: 0x8B54, - 5778: 0x8B59, - 5779: 0x8B4D, - 5780: 0x8B5E, - 5781: 0x8B63, - 5782: 0x8B6D, - 5783: 0x8B76, - 5784: 0x8B78, - 5785: 0x8B79, - 5786: 0x8B7C, - 5787: 0x8B7E, - 5788: 0x8B81, - 5789: 0x8B84, - 5790: 0x8B85, - 5791: 0x8B8B, - 5792: 0x8B8D, - 5793: 0x8B8F, - 5794: 0x8B94, - 5795: 0x8B95, - 5796: 0x8B9C, - 5797: 0x8B9E, - 5798: 0x8B9F, - 5799: 0x8C38, - 5800: 0x8C39, - 5801: 0x8C3D, - 5802: 0x8C3E, - 5803: 0x8C45, - 5804: 0x8C47, - 5805: 0x8C49, - 5806: 0x8C4B, - 5807: 0x8C4F, - 5808: 0x8C51, - 5809: 0x8C53, - 5810: 0x8C54, - 5811: 0x8C57, - 5812: 0x8C58, - 5813: 0x8C5B, - 5814: 0x8C5D, - 5815: 0x8C59, - 5816: 0x8C63, - 5817: 0x8C64, - 5818: 0x8C66, - 5819: 0x8C68, - 5820: 0x8C69, - 5821: 0x8C6D, - 5822: 0x8C73, - 5823: 0x8C75, - 5824: 0x8C76, - 5825: 0x8C7B, - 5826: 0x8C7E, - 5827: 0x8C86, - 5828: 0x8C87, - 5829: 0x8C8B, - 5830: 0x8C90, - 5831: 0x8C92, - 5832: 0x8C93, - 5833: 0x8C99, - 5834: 0x8C9B, - 5835: 0x8C9C, - 5836: 0x8CA4, - 5837: 0x8CB9, - 5838: 0x8CBA, - 5839: 0x8CC5, - 5840: 0x8CC6, - 5841: 0x8CC9, - 5842: 0x8CCB, - 5843: 0x8CCF, - 5844: 0x8CD6, - 5845: 0x8CD5, - 5846: 0x8CD9, - 5847: 0x8CDD, - 5848: 0x8CE1, - 5849: 0x8CE8, - 5850: 0x8CEC, - 5851: 0x8CEF, - 5852: 0x8CF0, - 5853: 0x8CF2, - 5854: 0x8CF5, - 5855: 0x8CF7, - 5856: 0x8CF8, - 5857: 0x8CFE, - 5858: 0x8CFF, - 5859: 0x8D01, - 5860: 0x8D03, - 5861: 0x8D09, - 5862: 0x8D12, - 5863: 0x8D17, - 5864: 0x8D1B, - 5865: 0x8D65, - 5866: 0x8D69, - 5867: 0x8D6C, - 5868: 0x8D6E, - 5869: 0x8D7F, - 5870: 0x8D82, - 5871: 0x8D84, - 5872: 0x8D88, - 5873: 0x8D8D, - 5874: 0x8D90, - 5875: 0x8D91, - 5876: 0x8D95, - 5877: 0x8D9E, - 5878: 0x8D9F, - 5879: 0x8DA0, - 5880: 0x8DA6, - 5881: 0x8DAB, - 5882: 0x8DAC, - 5883: 0x8DAF, - 5884: 0x8DB2, - 5885: 0x8DB5, - 5886: 0x8DB7, - 5887: 0x8DB9, - 5888: 0x8DBB, - 5889: 0x8DC0, - 5890: 0x8DC5, - 5891: 0x8DC6, - 5892: 0x8DC7, - 5893: 0x8DC8, - 5894: 0x8DCA, - 5895: 0x8DCE, - 5896: 0x8DD1, - 5897: 0x8DD4, - 5898: 0x8DD5, - 5899: 0x8DD7, - 5900: 0x8DD9, - 5901: 0x8DE4, - 5902: 0x8DE5, - 5903: 0x8DE7, - 5904: 0x8DEC, - 5905: 0x8DF0, - 5906: 0x8DBC, - 5907: 0x8DF1, - 5908: 0x8DF2, - 5909: 0x8DF4, - 5910: 0x8DFD, - 5911: 0x8E01, - 5912: 0x8E04, - 5913: 0x8E05, - 5914: 0x8E06, - 5915: 0x8E0B, - 5916: 0x8E11, - 5917: 0x8E14, - 5918: 0x8E16, - 5919: 0x8E20, - 5920: 0x8E21, - 5921: 0x8E22, - 5922: 0x8E23, - 5923: 0x8E26, - 5924: 0x8E27, - 5925: 0x8E31, - 5926: 0x8E33, - 5927: 0x8E36, - 5928: 0x8E37, - 5929: 0x8E38, - 5930: 0x8E39, - 5931: 0x8E3D, - 5932: 0x8E40, - 5933: 0x8E41, - 5934: 0x8E4B, - 5935: 0x8E4D, - 5936: 0x8E4E, - 5937: 0x8E4F, - 5938: 0x8E54, - 5939: 0x8E5B, - 5940: 0x8E5C, - 5941: 0x8E5D, - 5942: 0x8E5E, - 5943: 0x8E61, - 5944: 0x8E62, - 5945: 0x8E69, - 5946: 0x8E6C, - 5947: 0x8E6D, - 5948: 0x8E6F, - 5949: 0x8E70, - 5950: 0x8E71, - 5951: 0x8E79, - 5952: 0x8E7A, - 5953: 0x8E7B, - 5954: 0x8E82, - 5955: 0x8E83, - 5956: 0x8E89, - 5957: 0x8E90, - 5958: 0x8E92, - 5959: 0x8E95, - 5960: 0x8E9A, - 5961: 0x8E9B, - 5962: 0x8E9D, - 5963: 0x8E9E, - 5964: 0x8EA2, - 5965: 0x8EA7, - 5966: 0x8EA9, - 5967: 0x8EAD, - 5968: 0x8EAE, - 5969: 0x8EB3, - 5970: 0x8EB5, - 5971: 0x8EBA, - 5972: 0x8EBB, - 5973: 0x8EC0, - 5974: 0x8EC1, - 5975: 0x8EC3, - 5976: 0x8EC4, - 5977: 0x8EC7, - 5978: 0x8ECF, - 5979: 0x8ED1, - 5980: 0x8ED4, - 5981: 0x8EDC, - 5982: 0x8EE8, - 5983: 0x8EEE, - 5984: 0x8EF0, - 5985: 0x8EF1, - 5986: 0x8EF7, - 5987: 0x8EF9, - 5988: 0x8EFA, - 5989: 0x8EED, - 5990: 0x8F00, - 5991: 0x8F02, - 5992: 0x8F07, - 5993: 0x8F08, - 5994: 0x8F0F, - 5995: 0x8F10, - 5996: 0x8F16, - 5997: 0x8F17, - 5998: 0x8F18, - 5999: 0x8F1E, - 6000: 0x8F20, - 6001: 0x8F21, - 6002: 0x8F23, - 6003: 0x8F25, - 6004: 0x8F27, - 6005: 0x8F28, - 6006: 0x8F2C, - 6007: 0x8F2D, - 6008: 0x8F2E, - 6009: 0x8F34, - 6010: 0x8F35, - 6011: 0x8F36, - 6012: 0x8F37, - 6013: 0x8F3A, - 6014: 0x8F40, - 6015: 0x8F41, - 6016: 0x8F43, - 6017: 0x8F47, - 6018: 0x8F4F, - 6019: 0x8F51, - 6020: 0x8F52, - 6021: 0x8F53, - 6022: 0x8F54, - 6023: 0x8F55, - 6024: 0x8F58, - 6025: 0x8F5D, - 6026: 0x8F5E, - 6027: 0x8F65, - 6028: 0x8F9D, - 6029: 0x8FA0, - 6030: 0x8FA1, - 6031: 0x8FA4, - 6032: 0x8FA5, - 6033: 0x8FA6, - 6034: 0x8FB5, - 6035: 0x8FB6, - 6036: 0x8FB8, - 6037: 0x8FBE, - 6038: 0x8FC0, - 6039: 0x8FC1, - 6040: 0x8FC6, - 6041: 0x8FCA, - 6042: 0x8FCB, - 6043: 0x8FCD, - 6044: 0x8FD0, - 6045: 0x8FD2, - 6046: 0x8FD3, - 6047: 0x8FD5, - 6048: 0x8FE0, - 6049: 0x8FE3, - 6050: 0x8FE4, - 6051: 0x8FE8, - 6052: 0x8FEE, - 6053: 0x8FF1, - 6054: 0x8FF5, - 6055: 0x8FF6, - 6056: 0x8FFB, - 6057: 0x8FFE, - 6058: 0x9002, - 6059: 0x9004, - 6060: 0x9008, - 6061: 0x900C, - 6062: 0x9018, - 6063: 0x901B, - 6064: 0x9028, - 6065: 0x9029, - 6066: 0x902F, - 6067: 0x902A, - 6068: 0x902C, - 6069: 0x902D, - 6070: 0x9033, - 6071: 0x9034, - 6072: 0x9037, - 6073: 0x903F, - 6074: 0x9043, - 6075: 0x9044, - 6076: 0x904C, - 6077: 0x905B, - 6078: 0x905D, - 6079: 0x9062, - 6080: 0x9066, - 6081: 0x9067, - 6082: 0x906C, - 6083: 0x9070, - 6084: 0x9074, - 6085: 0x9079, - 6086: 0x9085, - 6087: 0x9088, - 6088: 0x908B, - 6089: 0x908C, - 6090: 0x908E, - 6091: 0x9090, - 6092: 0x9095, - 6093: 0x9097, - 6094: 0x9098, - 6095: 0x9099, - 6096: 0x909B, - 6097: 0x90A0, - 6098: 0x90A1, - 6099: 0x90A2, - 6100: 0x90A5, - 6101: 0x90B0, - 6102: 0x90B2, - 6103: 0x90B3, - 6104: 0x90B4, - 6105: 0x90B6, - 6106: 0x90BD, - 6107: 0x90CC, - 6108: 0x90BE, - 6109: 0x90C3, - 6110: 0x90C4, - 6111: 0x90C5, - 6112: 0x90C7, - 6113: 0x90C8, - 6114: 0x90D5, - 6115: 0x90D7, - 6116: 0x90D8, - 6117: 0x90D9, - 6118: 0x90DC, - 6119: 0x90DD, - 6120: 0x90DF, - 6121: 0x90E5, - 6122: 0x90D2, - 6123: 0x90F6, - 6124: 0x90EB, - 6125: 0x90EF, - 6126: 0x90F0, - 6127: 0x90F4, - 6128: 0x90FE, - 6129: 0x90FF, - 6130: 0x9100, - 6131: 0x9104, - 6132: 0x9105, - 6133: 0x9106, - 6134: 0x9108, - 6135: 0x910D, - 6136: 0x9110, - 6137: 0x9114, - 6138: 0x9116, - 6139: 0x9117, - 6140: 0x9118, - 6141: 0x911A, - 6142: 0x911C, - 6143: 0x911E, - 6144: 0x9120, - 6145: 0x9125, - 6146: 0x9122, - 6147: 0x9123, - 6148: 0x9127, - 6149: 0x9129, - 6150: 0x912E, - 6151: 0x912F, - 6152: 0x9131, - 6153: 0x9134, - 6154: 0x9136, - 6155: 0x9137, - 6156: 0x9139, - 6157: 0x913A, - 6158: 0x913C, - 6159: 0x913D, - 6160: 0x9143, - 6161: 0x9147, - 6162: 0x9148, - 6163: 0x914F, - 6164: 0x9153, - 6165: 0x9157, - 6166: 0x9159, - 6167: 0x915A, - 6168: 0x915B, - 6169: 0x9161, - 6170: 0x9164, - 6171: 0x9167, - 6172: 0x916D, - 6173: 0x9174, - 6174: 0x9179, - 6175: 0x917A, - 6176: 0x917B, - 6177: 0x9181, - 6178: 0x9183, - 6179: 0x9185, - 6180: 0x9186, - 6181: 0x918A, - 6182: 0x918E, - 6183: 0x9191, - 6184: 0x9193, - 6185: 0x9194, - 6186: 0x9195, - 6187: 0x9198, - 6188: 0x919E, - 6189: 0x91A1, - 6190: 0x91A6, - 6191: 0x91A8, - 6192: 0x91AC, - 6193: 0x91AD, - 6194: 0x91AE, - 6195: 0x91B0, - 6196: 0x91B1, - 6197: 0x91B2, - 6198: 0x91B3, - 6199: 0x91B6, - 6200: 0x91BB, - 6201: 0x91BC, - 6202: 0x91BD, - 6203: 0x91BF, - 6204: 0x91C2, - 6205: 0x91C3, - 6206: 0x91C5, - 6207: 0x91D3, - 6208: 0x91D4, - 6209: 0x91D7, - 6210: 0x91D9, - 6211: 0x91DA, - 6212: 0x91DE, - 6213: 0x91E4, - 6214: 0x91E5, - 6215: 0x91E9, - 6216: 0x91EA, - 6217: 0x91EC, - 6218: 0x91ED, - 6219: 0x91EE, - 6220: 0x91EF, - 6221: 0x91F0, - 6222: 0x91F1, - 6223: 0x91F7, - 6224: 0x91F9, - 6225: 0x91FB, - 6226: 0x91FD, - 6227: 0x9200, - 6228: 0x9201, - 6229: 0x9204, - 6230: 0x9205, - 6231: 0x9206, - 6232: 0x9207, - 6233: 0x9209, - 6234: 0x920A, - 6235: 0x920C, - 6236: 0x9210, - 6237: 0x9212, - 6238: 0x9213, - 6239: 0x9216, - 6240: 0x9218, - 6241: 0x921C, - 6242: 0x921D, - 6243: 0x9223, - 6244: 0x9224, - 6245: 0x9225, - 6246: 0x9226, - 6247: 0x9228, - 6248: 0x922E, - 6249: 0x922F, - 6250: 0x9230, - 6251: 0x9233, - 6252: 0x9235, - 6253: 0x9236, - 6254: 0x9238, - 6255: 0x9239, - 6256: 0x923A, - 6257: 0x923C, - 6258: 0x923E, - 6259: 0x9240, - 6260: 0x9242, - 6261: 0x9243, - 6262: 0x9246, - 6263: 0x9247, - 6264: 0x924A, - 6265: 0x924D, - 6266: 0x924E, - 6267: 0x924F, - 6268: 0x9251, - 6269: 0x9258, - 6270: 0x9259, - 6271: 0x925C, - 6272: 0x925D, - 6273: 0x9260, - 6274: 0x9261, - 6275: 0x9265, - 6276: 0x9267, - 6277: 0x9268, - 6278: 0x9269, - 6279: 0x926E, - 6280: 0x926F, - 6281: 0x9270, - 6282: 0x9275, - 6283: 0x9276, - 6284: 0x9277, - 6285: 0x9278, - 6286: 0x9279, - 6287: 0x927B, - 6288: 0x927C, - 6289: 0x927D, - 6290: 0x927F, - 6291: 0x9288, - 6292: 0x9289, - 6293: 0x928A, - 6294: 0x928D, - 6295: 0x928E, - 6296: 0x9292, - 6297: 0x9297, - 6298: 0x9299, - 6299: 0x929F, - 6300: 0x92A0, - 6301: 0x92A4, - 6302: 0x92A5, - 6303: 0x92A7, - 6304: 0x92A8, - 6305: 0x92AB, - 6306: 0x92AF, - 6307: 0x92B2, - 6308: 0x92B6, - 6309: 0x92B8, - 6310: 0x92BA, - 6311: 0x92BB, - 6312: 0x92BC, - 6313: 0x92BD, - 6314: 0x92BF, - 6315: 0x92C0, - 6316: 0x92C1, - 6317: 0x92C2, - 6318: 0x92C3, - 6319: 0x92C5, - 6320: 0x92C6, - 6321: 0x92C7, - 6322: 0x92C8, - 6323: 0x92CB, - 6324: 0x92CC, - 6325: 0x92CD, - 6326: 0x92CE, - 6327: 0x92D0, - 6328: 0x92D3, - 6329: 0x92D5, - 6330: 0x92D7, - 6331: 0x92D8, - 6332: 0x92D9, - 6333: 0x92DC, - 6334: 0x92DD, - 6335: 0x92DF, - 6336: 0x92E0, - 6337: 0x92E1, - 6338: 0x92E3, - 6339: 0x92E5, - 6340: 0x92E7, - 6341: 0x92E8, - 6342: 0x92EC, - 6343: 0x92EE, - 6344: 0x92F0, - 6345: 0x92F9, - 6346: 0x92FB, - 6347: 0x92FF, - 6348: 0x9300, - 6349: 0x9302, - 6350: 0x9308, - 6351: 0x930D, - 6352: 0x9311, - 6353: 0x9314, - 6354: 0x9315, - 6355: 0x931C, - 6356: 0x931D, - 6357: 0x931E, - 6358: 0x931F, - 6359: 0x9321, - 6360: 0x9324, - 6361: 0x9325, - 6362: 0x9327, - 6363: 0x9329, - 6364: 0x932A, - 6365: 0x9333, - 6366: 0x9334, - 6367: 0x9336, - 6368: 0x9337, - 6369: 0x9347, - 6370: 0x9348, - 6371: 0x9349, - 6372: 0x9350, - 6373: 0x9351, - 6374: 0x9352, - 6375: 0x9355, - 6376: 0x9357, - 6377: 0x9358, - 6378: 0x935A, - 6379: 0x935E, - 6380: 0x9364, - 6381: 0x9365, - 6382: 0x9367, - 6383: 0x9369, - 6384: 0x936A, - 6385: 0x936D, - 6386: 0x936F, - 6387: 0x9370, - 6388: 0x9371, - 6389: 0x9373, - 6390: 0x9374, - 6391: 0x9376, - 6392: 0x937A, - 6393: 0x937D, - 6394: 0x937F, - 6395: 0x9380, - 6396: 0x9381, - 6397: 0x9382, - 6398: 0x9388, - 6399: 0x938A, - 6400: 0x938B, - 6401: 0x938D, - 6402: 0x938F, - 6403: 0x9392, - 6404: 0x9395, - 6405: 0x9398, - 6406: 0x939B, - 6407: 0x939E, - 6408: 0x93A1, - 6409: 0x93A3, - 6410: 0x93A4, - 6411: 0x93A6, - 6412: 0x93A8, - 6413: 0x93AB, - 6414: 0x93B4, - 6415: 0x93B5, - 6416: 0x93B6, - 6417: 0x93BA, - 6418: 0x93A9, - 6419: 0x93C1, - 6420: 0x93C4, - 6421: 0x93C5, - 6422: 0x93C6, - 6423: 0x93C7, - 6424: 0x93C9, - 6425: 0x93CA, - 6426: 0x93CB, - 6427: 0x93CC, - 6428: 0x93CD, - 6429: 0x93D3, - 6430: 0x93D9, - 6431: 0x93DC, - 6432: 0x93DE, - 6433: 0x93DF, - 6434: 0x93E2, - 6435: 0x93E6, - 6436: 0x93E7, - 6437: 0x93F9, - 6438: 0x93F7, - 6439: 0x93F8, - 6440: 0x93FA, - 6441: 0x93FB, - 6442: 0x93FD, - 6443: 0x9401, - 6444: 0x9402, - 6445: 0x9404, - 6446: 0x9408, - 6447: 0x9409, - 6448: 0x940D, - 6449: 0x940E, - 6450: 0x940F, - 6451: 0x9415, - 6452: 0x9416, - 6453: 0x9417, - 6454: 0x941F, - 6455: 0x942E, - 6456: 0x942F, - 6457: 0x9431, - 6458: 0x9432, - 6459: 0x9433, - 6460: 0x9434, - 6461: 0x943B, - 6462: 0x943F, - 6463: 0x943D, - 6464: 0x9443, - 6465: 0x9445, - 6466: 0x9448, - 6467: 0x944A, - 6468: 0x944C, - 6469: 0x9455, - 6470: 0x9459, - 6471: 0x945C, - 6472: 0x945F, - 6473: 0x9461, - 6474: 0x9463, - 6475: 0x9468, - 6476: 0x946B, - 6477: 0x946D, - 6478: 0x946E, - 6479: 0x946F, - 6480: 0x9471, - 6481: 0x9472, - 6482: 0x9484, - 6483: 0x9483, - 6484: 0x9578, - 6485: 0x9579, - 6486: 0x957E, - 6487: 0x9584, - 6488: 0x9588, - 6489: 0x958C, - 6490: 0x958D, - 6491: 0x958E, - 6492: 0x959D, - 6493: 0x959E, - 6494: 0x959F, - 6495: 0x95A1, - 6496: 0x95A6, - 6497: 0x95A9, - 6498: 0x95AB, - 6499: 0x95AC, - 6500: 0x95B4, - 6501: 0x95B6, - 6502: 0x95BA, - 6503: 0x95BD, - 6504: 0x95BF, - 6505: 0x95C6, - 6506: 0x95C8, - 6507: 0x95C9, - 6508: 0x95CB, - 6509: 0x95D0, - 6510: 0x95D1, - 6511: 0x95D2, - 6512: 0x95D3, - 6513: 0x95D9, - 6514: 0x95DA, - 6515: 0x95DD, - 6516: 0x95DE, - 6517: 0x95DF, - 6518: 0x95E0, - 6519: 0x95E4, - 6520: 0x95E6, - 6521: 0x961D, - 6522: 0x961E, - 6523: 0x9622, - 6524: 0x9624, - 6525: 0x9625, - 6526: 0x9626, - 6527: 0x962C, - 6528: 0x9631, - 6529: 0x9633, - 6530: 0x9637, - 6531: 0x9638, - 6532: 0x9639, - 6533: 0x963A, - 6534: 0x963C, - 6535: 0x963D, - 6536: 0x9641, - 6537: 0x9652, - 6538: 0x9654, - 6539: 0x9656, - 6540: 0x9657, - 6541: 0x9658, - 6542: 0x9661, - 6543: 0x966E, - 6544: 0x9674, - 6545: 0x967B, - 6546: 0x967C, - 6547: 0x967E, - 6548: 0x967F, - 6549: 0x9681, - 6550: 0x9682, - 6551: 0x9683, - 6552: 0x9684, - 6553: 0x9689, - 6554: 0x9691, - 6555: 0x9696, - 6556: 0x969A, - 6557: 0x969D, - 6558: 0x969F, - 6559: 0x96A4, - 6560: 0x96A5, - 6561: 0x96A6, - 6562: 0x96A9, - 6563: 0x96AE, - 6564: 0x96AF, - 6565: 0x96B3, - 6566: 0x96BA, - 6567: 0x96CA, - 6568: 0x96D2, - 6569: 0x5DB2, - 6570: 0x96D8, - 6571: 0x96DA, - 6572: 0x96DD, - 6573: 0x96DE, - 6574: 0x96DF, - 6575: 0x96E9, - 6576: 0x96EF, - 6577: 0x96F1, - 6578: 0x96FA, - 6579: 0x9702, - 6580: 0x9703, - 6581: 0x9705, - 6582: 0x9709, - 6583: 0x971A, - 6584: 0x971B, - 6585: 0x971D, - 6586: 0x9721, - 6587: 0x9722, - 6588: 0x9723, - 6589: 0x9728, - 6590: 0x9731, - 6591: 0x9733, - 6592: 0x9741, - 6593: 0x9743, - 6594: 0x974A, - 6595: 0x974E, - 6596: 0x974F, - 6597: 0x9755, - 6598: 0x9757, - 6599: 0x9758, - 6600: 0x975A, - 6601: 0x975B, - 6602: 0x9763, - 6603: 0x9767, - 6604: 0x976A, - 6605: 0x976E, - 6606: 0x9773, - 6607: 0x9776, - 6608: 0x9777, - 6609: 0x9778, - 6610: 0x977B, - 6611: 0x977D, - 6612: 0x977F, - 6613: 0x9780, - 6614: 0x9789, - 6615: 0x9795, - 6616: 0x9796, - 6617: 0x9797, - 6618: 0x9799, - 6619: 0x979A, - 6620: 0x979E, - 6621: 0x979F, - 6622: 0x97A2, - 6623: 0x97AC, - 6624: 0x97AE, - 6625: 0x97B1, - 6626: 0x97B2, - 6627: 0x97B5, - 6628: 0x97B6, - 6629: 0x97B8, - 6630: 0x97B9, - 6631: 0x97BA, - 6632: 0x97BC, - 6633: 0x97BE, - 6634: 0x97BF, - 6635: 0x97C1, - 6636: 0x97C4, - 6637: 0x97C5, - 6638: 0x97C7, - 6639: 0x97C9, - 6640: 0x97CA, - 6641: 0x97CC, - 6642: 0x97CD, - 6643: 0x97CE, - 6644: 0x97D0, - 6645: 0x97D1, - 6646: 0x97D4, - 6647: 0x97D7, - 6648: 0x97D8, - 6649: 0x97D9, - 6650: 0x97DD, - 6651: 0x97DE, - 6652: 0x97E0, - 6653: 0x97DB, - 6654: 0x97E1, - 6655: 0x97E4, - 6656: 0x97EF, - 6657: 0x97F1, - 6658: 0x97F4, - 6659: 0x97F7, - 6660: 0x97F8, - 6661: 0x97FA, - 6662: 0x9807, - 6663: 0x980A, - 6664: 0x9819, - 6665: 0x980D, - 6666: 0x980E, - 6667: 0x9814, - 6668: 0x9816, - 6669: 0x981C, - 6670: 0x981E, - 6671: 0x9820, - 6672: 0x9823, - 6673: 0x9826, - 6674: 0x982B, - 6675: 0x982E, - 6676: 0x982F, - 6677: 0x9830, - 6678: 0x9832, - 6679: 0x9833, - 6680: 0x9835, - 6681: 0x9825, - 6682: 0x983E, - 6683: 0x9844, - 6684: 0x9847, - 6685: 0x984A, - 6686: 0x9851, - 6687: 0x9852, - 6688: 0x9853, - 6689: 0x9856, - 6690: 0x9857, - 6691: 0x9859, - 6692: 0x985A, - 6693: 0x9862, - 6694: 0x9863, - 6695: 0x9865, - 6696: 0x9866, - 6697: 0x986A, - 6698: 0x986C, - 6699: 0x98AB, - 6700: 0x98AD, - 6701: 0x98AE, - 6702: 0x98B0, - 6703: 0x98B4, - 6704: 0x98B7, - 6705: 0x98B8, - 6706: 0x98BA, - 6707: 0x98BB, - 6708: 0x98BF, - 6709: 0x98C2, - 6710: 0x98C5, - 6711: 0x98C8, - 6712: 0x98CC, - 6713: 0x98E1, - 6714: 0x98E3, - 6715: 0x98E5, - 6716: 0x98E6, - 6717: 0x98E7, - 6718: 0x98EA, - 6719: 0x98F3, - 6720: 0x98F6, - 6721: 0x9902, - 6722: 0x9907, - 6723: 0x9908, - 6724: 0x9911, - 6725: 0x9915, - 6726: 0x9916, - 6727: 0x9917, - 6728: 0x991A, - 6729: 0x991B, - 6730: 0x991C, - 6731: 0x991F, - 6732: 0x9922, - 6733: 0x9926, - 6734: 0x9927, - 6735: 0x992B, - 6736: 0x9931, - 6737: 0x9932, - 6738: 0x9933, - 6739: 0x9934, - 6740: 0x9935, - 6741: 0x9939, - 6742: 0x993A, - 6743: 0x993B, - 6744: 0x993C, - 6745: 0x9940, - 6746: 0x9941, - 6747: 0x9946, - 6748: 0x9947, - 6749: 0x9948, - 6750: 0x994D, - 6751: 0x994E, - 6752: 0x9954, - 6753: 0x9958, - 6754: 0x9959, - 6755: 0x995B, - 6756: 0x995C, - 6757: 0x995E, - 6758: 0x995F, - 6759: 0x9960, - 6760: 0x999B, - 6761: 0x999D, - 6762: 0x999F, - 6763: 0x99A6, - 6764: 0x99B0, - 6765: 0x99B1, - 6766: 0x99B2, - 6767: 0x99B5, - 6768: 0x99B9, - 6769: 0x99BA, - 6770: 0x99BD, - 6771: 0x99BF, - 6772: 0x99C3, - 6773: 0x99C9, - 6774: 0x99D3, - 6775: 0x99D4, - 6776: 0x99D9, - 6777: 0x99DA, - 6778: 0x99DC, - 6779: 0x99DE, - 6780: 0x99E7, - 6781: 0x99EA, - 6782: 0x99EB, - 6783: 0x99EC, - 6784: 0x99F0, - 6785: 0x99F4, - 6786: 0x99F5, - 6787: 0x99F9, - 6788: 0x99FD, - 6789: 0x99FE, - 6790: 0x9A02, - 6791: 0x9A03, - 6792: 0x9A04, - 6793: 0x9A0B, - 6794: 0x9A0C, - 6795: 0x9A10, - 6796: 0x9A11, - 6797: 0x9A16, - 6798: 0x9A1E, - 6799: 0x9A20, - 6800: 0x9A22, - 6801: 0x9A23, - 6802: 0x9A24, - 6803: 0x9A27, - 6804: 0x9A2D, - 6805: 0x9A2E, - 6806: 0x9A33, - 6807: 0x9A35, - 6808: 0x9A36, - 6809: 0x9A38, - 6810: 0x9A47, - 6811: 0x9A41, - 6812: 0x9A44, - 6813: 0x9A4A, - 6814: 0x9A4B, - 6815: 0x9A4C, - 6816: 0x9A4E, - 6817: 0x9A51, - 6818: 0x9A54, - 6819: 0x9A56, - 6820: 0x9A5D, - 6821: 0x9AAA, - 6822: 0x9AAC, - 6823: 0x9AAE, - 6824: 0x9AAF, - 6825: 0x9AB2, - 6826: 0x9AB4, - 6827: 0x9AB5, - 6828: 0x9AB6, - 6829: 0x9AB9, - 6830: 0x9ABB, - 6831: 0x9ABE, - 6832: 0x9ABF, - 6833: 0x9AC1, - 6834: 0x9AC3, - 6835: 0x9AC6, - 6836: 0x9AC8, - 6837: 0x9ACE, - 6838: 0x9AD0, - 6839: 0x9AD2, - 6840: 0x9AD5, - 6841: 0x9AD6, - 6842: 0x9AD7, - 6843: 0x9ADB, - 6844: 0x9ADC, - 6845: 0x9AE0, - 6846: 0x9AE4, - 6847: 0x9AE5, - 6848: 0x9AE7, - 6849: 0x9AE9, - 6850: 0x9AEC, - 6851: 0x9AF2, - 6852: 0x9AF3, - 6853: 0x9AF5, - 6854: 0x9AF9, - 6855: 0x9AFA, - 6856: 0x9AFD, - 6857: 0x9AFF, - 6858: 0x9B00, - 6859: 0x9B01, - 6860: 0x9B02, - 6861: 0x9B03, - 6862: 0x9B04, - 6863: 0x9B05, - 6864: 0x9B08, - 6865: 0x9B09, - 6866: 0x9B0B, - 6867: 0x9B0C, - 6868: 0x9B0D, - 6869: 0x9B0E, - 6870: 0x9B10, - 6871: 0x9B12, - 6872: 0x9B16, - 6873: 0x9B19, - 6874: 0x9B1B, - 6875: 0x9B1C, - 6876: 0x9B20, - 6877: 0x9B26, - 6878: 0x9B2B, - 6879: 0x9B2D, - 6880: 0x9B33, - 6881: 0x9B34, - 6882: 0x9B35, - 6883: 0x9B37, - 6884: 0x9B39, - 6885: 0x9B3A, - 6886: 0x9B3D, - 6887: 0x9B48, - 6888: 0x9B4B, - 6889: 0x9B4C, - 6890: 0x9B55, - 6891: 0x9B56, - 6892: 0x9B57, - 6893: 0x9B5B, - 6894: 0x9B5E, - 6895: 0x9B61, - 6896: 0x9B63, - 6897: 0x9B65, - 6898: 0x9B66, - 6899: 0x9B68, - 6900: 0x9B6A, - 6901: 0x9B6B, - 6902: 0x9B6C, - 6903: 0x9B6D, - 6904: 0x9B6E, - 6905: 0x9B73, - 6906: 0x9B75, - 6907: 0x9B77, - 6908: 0x9B78, - 6909: 0x9B79, - 6910: 0x9B7F, - 6911: 0x9B80, - 6912: 0x9B84, - 6913: 0x9B85, - 6914: 0x9B86, - 6915: 0x9B87, - 6916: 0x9B89, - 6917: 0x9B8A, - 6918: 0x9B8B, - 6919: 0x9B8D, - 6920: 0x9B8F, - 6921: 0x9B90, - 6922: 0x9B94, - 6923: 0x9B9A, - 6924: 0x9B9D, - 6925: 0x9B9E, - 6926: 0x9BA6, - 6927: 0x9BA7, - 6928: 0x9BA9, - 6929: 0x9BAC, - 6930: 0x9BB0, - 6931: 0x9BB1, - 6932: 0x9BB2, - 6933: 0x9BB7, - 6934: 0x9BB8, - 6935: 0x9BBB, - 6936: 0x9BBC, - 6937: 0x9BBE, - 6938: 0x9BBF, - 6939: 0x9BC1, - 6940: 0x9BC7, - 6941: 0x9BC8, - 6942: 0x9BCE, - 6943: 0x9BD0, - 6944: 0x9BD7, - 6945: 0x9BD8, - 6946: 0x9BDD, - 6947: 0x9BDF, - 6948: 0x9BE5, - 6949: 0x9BE7, - 6950: 0x9BEA, - 6951: 0x9BEB, - 6952: 0x9BEF, - 6953: 0x9BF3, - 6954: 0x9BF7, - 6955: 0x9BF8, - 6956: 0x9BF9, - 6957: 0x9BFA, - 6958: 0x9BFD, - 6959: 0x9BFF, - 6960: 0x9C00, - 6961: 0x9C02, - 6962: 0x9C0B, - 6963: 0x9C0F, - 6964: 0x9C11, - 6965: 0x9C16, - 6966: 0x9C18, - 6967: 0x9C19, - 6968: 0x9C1A, - 6969: 0x9C1C, - 6970: 0x9C1E, - 6971: 0x9C22, - 6972: 0x9C23, - 6973: 0x9C26, - 6974: 0x9C27, - 6975: 0x9C28, - 6976: 0x9C29, - 6977: 0x9C2A, - 6978: 0x9C31, - 6979: 0x9C35, - 6980: 0x9C36, - 6981: 0x9C37, - 6982: 0x9C3D, - 6983: 0x9C41, - 6984: 0x9C43, - 6985: 0x9C44, - 6986: 0x9C45, - 6987: 0x9C49, - 6988: 0x9C4A, - 6989: 0x9C4E, - 6990: 0x9C4F, - 6991: 0x9C50, - 6992: 0x9C53, - 6993: 0x9C54, - 6994: 0x9C56, - 6995: 0x9C58, - 6996: 0x9C5B, - 6997: 0x9C5D, - 6998: 0x9C5E, - 6999: 0x9C5F, - 7000: 0x9C63, - 7001: 0x9C69, - 7002: 0x9C6A, - 7003: 0x9C5C, - 7004: 0x9C6B, - 7005: 0x9C68, - 7006: 0x9C6E, - 7007: 0x9C70, - 7008: 0x9C72, - 7009: 0x9C75, - 7010: 0x9C77, - 7011: 0x9C7B, - 7012: 0x9CE6, - 7013: 0x9CF2, - 7014: 0x9CF7, - 7015: 0x9CF9, - 7016: 0x9D0B, - 7017: 0x9D02, - 7018: 0x9D11, - 7019: 0x9D17, - 7020: 0x9D18, - 7021: 0x9D1C, - 7022: 0x9D1D, - 7023: 0x9D1E, - 7024: 0x9D2F, - 7025: 0x9D30, - 7026: 0x9D32, - 7027: 0x9D33, - 7028: 0x9D34, - 7029: 0x9D3A, - 7030: 0x9D3C, - 7031: 0x9D45, - 7032: 0x9D3D, - 7033: 0x9D42, - 7034: 0x9D43, - 7035: 0x9D47, - 7036: 0x9D4A, - 7037: 0x9D53, - 7038: 0x9D54, - 7039: 0x9D5F, - 7040: 0x9D63, - 7041: 0x9D62, - 7042: 0x9D65, - 7043: 0x9D69, - 7044: 0x9D6A, - 7045: 0x9D6B, - 7046: 0x9D70, - 7047: 0x9D76, - 7048: 0x9D77, - 7049: 0x9D7B, - 7050: 0x9D7C, - 7051: 0x9D7E, - 7052: 0x9D83, - 7053: 0x9D84, - 7054: 0x9D86, - 7055: 0x9D8A, - 7056: 0x9D8D, - 7057: 0x9D8E, - 7058: 0x9D92, - 7059: 0x9D93, - 7060: 0x9D95, - 7061: 0x9D96, - 7062: 0x9D97, - 7063: 0x9D98, - 7064: 0x9DA1, - 7065: 0x9DAA, - 7066: 0x9DAC, - 7067: 0x9DAE, - 7068: 0x9DB1, - 7069: 0x9DB5, - 7070: 0x9DB9, - 7071: 0x9DBC, - 7072: 0x9DBF, - 7073: 0x9DC3, - 7074: 0x9DC7, - 7075: 0x9DC9, - 7076: 0x9DCA, - 7077: 0x9DD4, - 7078: 0x9DD5, - 7079: 0x9DD6, - 7080: 0x9DD7, - 7081: 0x9DDA, - 7082: 0x9DDE, - 7083: 0x9DDF, - 7084: 0x9DE0, - 7085: 0x9DE5, - 7086: 0x9DE7, - 7087: 0x9DE9, - 7088: 0x9DEB, - 7089: 0x9DEE, - 7090: 0x9DF0, - 7091: 0x9DF3, - 7092: 0x9DF4, - 7093: 0x9DFE, - 7094: 0x9E0A, - 7095: 0x9E02, - 7096: 0x9E07, - 7097: 0x9E0E, - 7098: 0x9E10, - 7099: 0x9E11, - 7100: 0x9E12, - 7101: 0x9E15, - 7102: 0x9E16, - 7103: 0x9E19, - 7104: 0x9E1C, - 7105: 0x9E1D, - 7106: 0x9E7A, - 7107: 0x9E7B, - 7108: 0x9E7C, - 7109: 0x9E80, - 7110: 0x9E82, - 7111: 0x9E83, - 7112: 0x9E84, - 7113: 0x9E85, - 7114: 0x9E87, - 7115: 0x9E8E, - 7116: 0x9E8F, - 7117: 0x9E96, - 7118: 0x9E98, - 7119: 0x9E9B, - 7120: 0x9E9E, - 7121: 0x9EA4, - 7122: 0x9EA8, - 7123: 0x9EAC, - 7124: 0x9EAE, - 7125: 0x9EAF, - 7126: 0x9EB0, - 7127: 0x9EB3, - 7128: 0x9EB4, - 7129: 0x9EB5, - 7130: 0x9EC6, - 7131: 0x9EC8, - 7132: 0x9ECB, - 7133: 0x9ED5, - 7134: 0x9EDF, - 7135: 0x9EE4, - 7136: 0x9EE7, - 7137: 0x9EEC, - 7138: 0x9EED, - 7139: 0x9EEE, - 7140: 0x9EF0, - 7141: 0x9EF1, - 7142: 0x9EF2, - 7143: 0x9EF5, - 7144: 0x9EF8, - 7145: 0x9EFF, - 7146: 0x9F02, - 7147: 0x9F03, - 7148: 0x9F09, - 7149: 0x9F0F, - 7150: 0x9F10, - 7151: 0x9F11, - 7152: 0x9F12, - 7153: 0x9F14, - 7154: 0x9F16, - 7155: 0x9F17, - 7156: 0x9F19, - 7157: 0x9F1A, - 7158: 0x9F1B, - 7159: 0x9F1F, - 7160: 0x9F22, - 7161: 0x9F26, - 7162: 0x9F2A, - 7163: 0x9F2B, - 7164: 0x9F2F, - 7165: 0x9F31, - 7166: 0x9F32, - 7167: 0x9F34, - 7168: 0x9F37, - 7169: 0x9F39, - 7170: 0x9F3A, - 7171: 0x9F3C, - 7172: 0x9F3D, - 7173: 0x9F3F, - 7174: 0x9F41, - 7175: 0x9F43, - 7176: 0x9F44, - 7177: 0x9F45, - 7178: 0x9F46, - 7179: 0x9F47, - 7180: 0x9F53, - 7181: 0x9F55, - 7182: 0x9F56, - 7183: 0x9F57, - 7184: 0x9F58, - 7185: 0x9F5A, - 7186: 0x9F5D, - 7187: 0x9F5E, - 7188: 0x9F68, - 7189: 0x9F69, - 7190: 0x9F6D, - 7191: 0x9F6E, - 7192: 0x9F6F, - 7193: 0x9F70, - 7194: 0x9F71, - 7195: 0x9F73, - 7196: 0x9F75, - 7197: 0x9F7A, - 7198: 0x9F7D, - 7199: 0x9F8F, - 7200: 0x9F90, - 7201: 0x9F91, - 7202: 0x9F92, - 7203: 0x9F94, - 7204: 0x9F96, - 7205: 0x9F97, - 7206: 0x9F9E, - 7207: 0x9FA1, - 7208: 0x9FA2, - 7209: 0x9FA3, - 7210: 0x9FA5, -} - -const ( - jis0208 = 1 - jis0212 = 2 - codeMask = 0x7f - codeShift = 7 - tableShift = 14 -) - -const numEncodeTables = 6 - -// encodeX are the encoding tables from Unicode to JIS code, -// sorted by decreasing length. -// encode0: 20902 entries for runes in [19968, 40870). -// encode1: 1632 entries for runes in [ 8208, 9840). -// encode2: 974 entries for runes in [12288, 13262). -// encode3: 959 entries for runes in [ 161, 1120). -// encode4: 261 entries for runes in [63785, 64046). -// encode5: 229 entries for runes in [65281, 65510). -// -// The high two bits of the value record whether the JIS code comes from the -// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2). -// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the -// JIS code (94*j1 + j2) within that table. - -const encode0Low, encode0High = 19968, 40870 - -var encode0 = [...]uint16{ - 19968 - 19968: jis0208<<14 | 0x0F<<7 | 0x4B, - 19969 - 19968: jis0208<<14 | 0x22<<7 | 0x59, - 19970 - 19968: jis0212<<14 | 0x0F<<7 | 0x00, - 19971 - 19968: jis0208<<14 | 0x1B<<7 | 0x16, - 19972 - 19968: jis0212<<14 | 0x0F<<7 | 0x01, - 19973 - 19968: jis0212<<14 | 0x0F<<7 | 0x02, - 19975 - 19968: jis0208<<14 | 0x2A<<7 | 0x5B, - 19976 - 19968: jis0208<<14 | 0x1D<<7 | 0x45, - 19977 - 19968: jis0208<<14 | 0x1A<<7 | 0x0F, - 19978 - 19968: jis0208<<14 | 0x1D<<7 | 0x44, - 19979 - 19968: jis0208<<14 | 0x11<<7 | 0x1B, - 19980 - 19968: jis0212<<14 | 0x0F<<7 | 0x03, - 19981 - 19968: jis0208<<14 | 0x28<<7 | 0x33, - 19982 - 19968: jis0208<<14 | 0x2C<<7 | 0x1E, - 19984 - 19968: jis0208<<14 | 0x2F<<7 | 0x01, - 19985 - 19968: jis0208<<14 | 0x10<<7 | 0x0E, - 19986 - 19968: jis0212<<14 | 0x0F<<7 | 0x04, - 19988 - 19968: jis0208<<14 | 0x12<<7 | 0x4D, - 19989 - 19968: jis0208<<14 | 0x2F<<7 | 0x02, - 19990 - 19968: jis0208<<14 | 0x1F<<7 | 0x03, - 19991 - 19968: jis0208<<14 | 0x31<<7 | 0x21, - 19992 - 19968: jis0208<<14 | 0x14<<7 | 0x35, - 19993 - 19968: jis0208<<14 | 0x29<<7 | 0x19, - 19998 - 19968: jis0208<<14 | 0x1D<<7 | 0x46, - 19999 - 19968: jis0212<<14 | 0x0F<<7 | 0x05, - 20001 - 19968: jis0208<<14 | 0x2D<<7 | 0x1D, - 20003 - 19968: jis0212<<14 | 0x0F<<7 | 0x06, - 20004 - 19968: jis0212<<14 | 0x0F<<7 | 0x07, - 20006 - 19968: jis0208<<14 | 0x29<<7 | 0x21, - 20008 - 19968: jis0208<<14 | 0x58<<7 | 0x0C, - 20010 - 19968: jis0208<<14 | 0x2F<<7 | 0x03, - 20011 - 19968: jis0212<<14 | 0x0F<<7 | 0x09, - 20013 - 19968: jis0208<<14 | 0x22<<7 | 0x45, - 20014 - 19968: jis0212<<14 | 0x0F<<7 | 0x0A, - 20015 - 19968: jis0212<<14 | 0x0F<<7 | 0x0B, - 20016 - 19968: jis0212<<14 | 0x0F<<7 | 0x0C, - 20017 - 19968: jis0208<<14 | 0x2F<<7 | 0x04, - 20018 - 19968: jis0208<<14 | 0x15<<7 | 0x59, - 20021 - 19968: jis0212<<14 | 0x0F<<7 | 0x0D, - 20022 - 19968: jis0208<<14 | 0x2F<<7 | 0x05, - 20024 - 19968: jis0208<<14 | 0x13<<7 | 0x3C, - 20025 - 19968: jis0208<<14 | 0x22<<7 | 0x0F, - 20027 - 19968: jis0208<<14 | 0x1B<<7 | 0x46, - 20028 - 19968: jis0208<<14 | 0x2F<<7 | 0x06, - 20031 - 19968: jis0208<<14 | 0x2F<<7 | 0x07, - 20032 - 19968: jis0212<<14 | 0x0F<<7 | 0x0E, - 20033 - 19968: jis0212<<14 | 0x0F<<7 | 0x0F, - 20034 - 19968: jis0208<<14 | 0x2F<<7 | 0x08, - 20035 - 19968: jis0208<<14 | 0x26<<7 | 0x14, - 20036 - 19968: jis0212<<14 | 0x0F<<7 | 0x10, - 20037 - 19968: jis0208<<14 | 0x14<<7 | 0x36, - 20039 - 19968: jis0212<<14 | 0x0F<<7 | 0x11, - 20043 - 19968: jis0208<<14 | 0x26<<7 | 0x16, - 20045 - 19968: jis0208<<14 | 0x25<<7 | 0x42, - 20046 - 19968: jis0208<<14 | 0x17<<7 | 0x22, - 20047 - 19968: jis0208<<14 | 0x2A<<7 | 0x12, - 20049 - 19968: jis0212<<14 | 0x0F<<7 | 0x12, - 20053 - 19968: jis0208<<14 | 0x48<<7 | 0x28, - 20054 - 19968: jis0208<<14 | 0x2F<<7 | 0x09, - 20055 - 19968: jis0208<<14 | 0x1D<<7 | 0x47, - 20056 - 19968: jis0208<<14 | 0x2F<<7 | 0x0A, - 20057 - 19968: jis0208<<14 | 0x11<<7 | 0x14, - 20058 - 19968: jis0212<<14 | 0x0F<<7 | 0x13, - 20060 - 19968: jis0212<<14 | 0x0F<<7 | 0x14, - 20061 - 19968: jis0208<<14 | 0x15<<7 | 0x44, - 20062 - 19968: jis0208<<14 | 0x17<<7 | 0x4F, - 20063 - 19968: jis0208<<14 | 0x2B<<7 | 0x48, - 20066 - 19968: jis0208<<14 | 0x35<<7 | 0x05, - 20067 - 19968: jis0212<<14 | 0x0F<<7 | 0x15, - 20072 - 19968: jis0212<<14 | 0x0F<<7 | 0x16, - 20073 - 19968: jis0212<<14 | 0x0F<<7 | 0x17, - 20081 - 19968: jis0208<<14 | 0x2C<<7 | 0x4F, - 20083 - 19968: jis0208<<14 | 0x25<<7 | 0x5C, - 20084 - 19968: jis0212<<14 | 0x0F<<7 | 0x18, - 20085 - 19968: jis0212<<14 | 0x0F<<7 | 0x19, - 20089 - 19968: jis0212<<14 | 0x0F<<7 | 0x1A, - 20094 - 19968: jis0208<<14 | 0x13<<7 | 0x04, - 20095 - 19968: jis0212<<14 | 0x0F<<7 | 0x1B, - 20096 - 19968: jis0208<<14 | 0x14<<7 | 0x14, - 20098 - 19968: jis0208<<14 | 0x2F<<7 | 0x0B, - 20101 - 19968: jis0208<<14 | 0x2F<<7 | 0x0C, - 20102 - 19968: jis0208<<14 | 0x2D<<7 | 0x1A, - 20104 - 19968: jis0208<<14 | 0x2C<<7 | 0x1C, - 20105 - 19968: jis0208<<14 | 0x20<<7 | 0x47, - 20106 - 19968: jis0208<<14 | 0x2F<<7 | 0x0E, - 20107 - 19968: jis0208<<14 | 0x1A<<7 | 0x55, - 20108 - 19968: jis0208<<14 | 0x25<<7 | 0x52, - 20109 - 19968: jis0212<<14 | 0x0F<<7 | 0x1C, - 20110 - 19968: jis0208<<14 | 0x2F<<7 | 0x11, - 20113 - 19968: jis0208<<14 | 0x10<<7 | 0x1D, - 20114 - 19968: jis0208<<14 | 0x17<<7 | 0x3E, - 20116 - 19968: jis0208<<14 | 0x17<<7 | 0x3D, - 20117 - 19968: jis0208<<14 | 0x0F<<7 | 0x45, - 20118 - 19968: jis0212<<14 | 0x0F<<7 | 0x1D, - 20119 - 19968: jis0212<<14 | 0x0F<<7 | 0x1E, - 20120 - 19968: jis0208<<14 | 0x2E<<7 | 0x2A, - 20121 - 19968: jis0208<<14 | 0x2E<<7 | 0x29, - 20123 - 19968: jis0208<<14 | 0x19<<7 | 0x12, - 20124 - 19968: jis0208<<14 | 0x0F<<7 | 0x00, - 20125 - 19968: jis0212<<14 | 0x0F<<7 | 0x1F, - 20126 - 19968: jis0208<<14 | 0x2F<<7 | 0x12, - 20127 - 19968: jis0208<<14 | 0x2F<<7 | 0x13, - 20128 - 19968: jis0208<<14 | 0x2F<<7 | 0x14, - 20129 - 19968: jis0208<<14 | 0x2A<<7 | 0x13, - 20130 - 19968: jis0208<<14 | 0x2F<<7 | 0x15, - 20132 - 19968: jis0208<<14 | 0x17<<7 | 0x51, - 20133 - 19968: jis0208<<14 | 0x0F<<7 | 0x46, - 20134 - 19968: jis0208<<14 | 0x2A<<7 | 0x51, - 20136 - 19968: jis0208<<14 | 0x14<<7 | 0x5B, - 20139 - 19968: jis0208<<14 | 0x14<<7 | 0x5C, - 20140 - 19968: jis0208<<14 | 0x14<<7 | 0x5D, - 20141 - 19968: jis0208<<14 | 0x23<<7 | 0x41, - 20142 - 19968: jis0208<<14 | 0x2D<<7 | 0x1B, - 20143 - 19968: jis0212<<14 | 0x0F<<7 | 0x20, - 20144 - 19968: jis0208<<14 | 0x2F<<7 | 0x16, - 20147 - 19968: jis0208<<14 | 0x2F<<7 | 0x17, - 20150 - 19968: jis0208<<14 | 0x2F<<7 | 0x18, - 20153 - 19968: jis0212<<14 | 0x0F<<7 | 0x21, - 20154 - 19968: jis0208<<14 | 0x1E<<7 | 0x2C, - 20160 - 19968: jis0208<<14 | 0x1C<<7 | 0x19, - 20161 - 19968: jis0208<<14 | 0x1E<<7 | 0x2D, - 20162 - 19968: jis0208<<14 | 0x2F<<7 | 0x1D, - 20163 - 19968: jis0212<<14 | 0x0F<<7 | 0x22, - 20164 - 19968: jis0208<<14 | 0x2F<<7 | 0x1B, - 20166 - 19968: jis0208<<14 | 0x2F<<7 | 0x1C, - 20167 - 19968: jis0208<<14 | 0x14<<7 | 0x37, - 20170 - 19968: jis0208<<14 | 0x19<<7 | 0x02, - 20171 - 19968: jis0208<<14 | 0x11<<7 | 0x4F, - 20173 - 19968: jis0208<<14 | 0x2F<<7 | 0x1A, - 20174 - 19968: jis0208<<14 | 0x2F<<7 | 0x19, - 20175 - 19968: jis0208<<14 | 0x29<<7 | 0x08, - 20176 - 19968: jis0212<<14 | 0x0F<<7 | 0x23, - 20180 - 19968: jis0208<<14 | 0x1A<<7 | 0x25, - 20181 - 19968: jis0208<<14 | 0x1A<<7 | 0x24, - 20182 - 19968: jis0208<<14 | 0x21<<7 | 0x1D, - 20183 - 19968: jis0208<<14 | 0x2F<<7 | 0x1E, - 20184 - 19968: jis0208<<14 | 0x28<<7 | 0x34, - 20185 - 19968: jis0208<<14 | 0x1F<<7 | 0x46, - 20186 - 19968: jis0212<<14 | 0x0F<<7 | 0x24, - 20187 - 19968: jis0212<<14 | 0x0F<<7 | 0x25, - 20189 - 19968: jis0208<<14 | 0x00<<7 | 0x17, - 20190 - 19968: jis0208<<14 | 0x2F<<7 | 0x1F, - 20191 - 19968: jis0208<<14 | 0x2F<<7 | 0x21, - 20192 - 19968: jis0212<<14 | 0x0F<<7 | 0x26, - 20193 - 19968: jis0208<<14 | 0x58<<7 | 0x0D, - 20194 - 19968: jis0212<<14 | 0x0F<<7 | 0x28, - 20195 - 19968: jis0208<<14 | 0x21<<7 | 0x44, - 20196 - 19968: jis0208<<14 | 0x2D<<7 | 0x40, - 20197 - 19968: jis0208<<14 | 0x0F<<7 | 0x29, - 20200 - 19968: jis0212<<14 | 0x0F<<7 | 0x29, - 20205 - 19968: jis0208<<14 | 0x2F<<7 | 0x20, - 20206 - 19968: jis0208<<14 | 0x11<<7 | 0x1D, - 20207 - 19968: jis0212<<14 | 0x0F<<7 | 0x2A, - 20208 - 19968: jis0208<<14 | 0x15<<7 | 0x23, - 20209 - 19968: jis0212<<14 | 0x0F<<7 | 0x2B, - 20210 - 19968: jis0208<<14 | 0x22<<7 | 0x46, - 20211 - 19968: jis0212<<14 | 0x0F<<7 | 0x2C, - 20213 - 19968: jis0212<<14 | 0x0F<<7 | 0x2D, - 20214 - 19968: jis0208<<14 | 0x16<<7 | 0x4E, - 20215 - 19968: jis0208<<14 | 0x2F<<7 | 0x22, - 20219 - 19968: jis0208<<14 | 0x26<<7 | 0x03, - 20220 - 19968: jis0208<<14 | 0x58<<7 | 0x0E, - 20221 - 19968: jis0212<<14 | 0x0F<<7 | 0x2E, - 20222 - 19968: jis0212<<14 | 0x0F<<7 | 0x2F, - 20223 - 19968: jis0212<<14 | 0x0F<<7 | 0x30, - 20224 - 19968: jis0208<<14 | 0x58<<7 | 0x0F, - 20225 - 19968: jis0208<<14 | 0x13<<7 | 0x4A, - 20226 - 19968: jis0212<<14 | 0x0F<<7 | 0x32, - 20227 - 19968: jis0208<<14 | 0x58<<7 | 0x10, - 20232 - 19968: jis0212<<14 | 0x0F<<7 | 0x34, - 20233 - 19968: jis0208<<14 | 0x2F<<7 | 0x23, - 20234 - 19968: jis0208<<14 | 0x0F<<7 | 0x2A, - 20235 - 19968: jis0212<<14 | 0x0F<<7 | 0x35, - 20236 - 19968: jis0212<<14 | 0x0F<<7 | 0x36, - 20237 - 19968: jis0208<<14 | 0x17<<7 | 0x3F, - 20238 - 19968: jis0208<<14 | 0x13<<7 | 0x4B, - 20239 - 19968: jis0208<<14 | 0x28<<7 | 0x59, - 20240 - 19968: jis0208<<14 | 0x27<<7 | 0x11, - 20241 - 19968: jis0208<<14 | 0x14<<7 | 0x38, - 20242 - 19968: jis0212<<14 | 0x0F<<7 | 0x37, - 20245 - 19968: jis0212<<14 | 0x0F<<7 | 0x38, - 20246 - 19968: jis0212<<14 | 0x0F<<7 | 0x39, - 20247 - 19968: jis0212<<14 | 0x0F<<7 | 0x3A, - 20249 - 19968: jis0212<<14 | 0x0F<<7 | 0x3B, - 20250 - 19968: jis0208<<14 | 0x11<<7 | 0x50, - 20252 - 19968: jis0208<<14 | 0x2F<<7 | 0x46, - 20253 - 19968: jis0208<<14 | 0x24<<7 | 0x20, - 20270 - 19968: jis0212<<14 | 0x0F<<7 | 0x3C, - 20271 - 19968: jis0208<<14 | 0x26<<7 | 0x4B, - 20272 - 19968: jis0208<<14 | 0x2F<<7 | 0x25, - 20273 - 19968: jis0212<<14 | 0x0F<<7 | 0x3D, - 20275 - 19968: jis0212<<14 | 0x0F<<7 | 0x3F, - 20276 - 19968: jis0208<<14 | 0x27<<7 | 0x1B, - 20277 - 19968: jis0212<<14 | 0x0F<<7 | 0x40, - 20278 - 19968: jis0208<<14 | 0x2D<<7 | 0x41, - 20279 - 19968: jis0212<<14 | 0x0F<<7 | 0x41, - 20280 - 19968: jis0208<<14 | 0x1E<<7 | 0x0C, - 20281 - 19968: jis0208<<14 | 0x58<<7 | 0x11, - 20282 - 19968: jis0208<<14 | 0x1A<<7 | 0x26, - 20283 - 19968: jis0212<<14 | 0x0F<<7 | 0x43, - 20284 - 19968: jis0208<<14 | 0x1A<<7 | 0x56, - 20285 - 19968: jis0208<<14 | 0x11<<7 | 0x1F, - 20286 - 19968: jis0212<<14 | 0x0F<<7 | 0x44, - 20288 - 19968: jis0212<<14 | 0x0F<<7 | 0x45, - 20290 - 19968: jis0212<<14 | 0x0F<<7 | 0x46, - 20291 - 19968: jis0208<<14 | 0x23<<7 | 0x30, - 20294 - 19968: jis0208<<14 | 0x22<<7 | 0x01, - 20295 - 19968: jis0208<<14 | 0x2F<<7 | 0x29, - 20296 - 19968: jis0212<<14 | 0x0F<<7 | 0x47, - 20297 - 19968: jis0212<<14 | 0x0F<<7 | 0x48, - 20299 - 19968: jis0212<<14 | 0x0F<<7 | 0x49, - 20300 - 19968: jis0212<<14 | 0x0F<<7 | 0x4A, - 20301 - 19968: jis0208<<14 | 0x0F<<7 | 0x2B, - 20302 - 19968: jis0208<<14 | 0x23<<7 | 0x42, - 20303 - 19968: jis0208<<14 | 0x1C<<7 | 0x1A, - 20304 - 19968: jis0208<<14 | 0x19<<7 | 0x13, - 20305 - 19968: jis0208<<14 | 0x2C<<7 | 0x03, - 20306 - 19968: jis0212<<14 | 0x0F<<7 | 0x4B, - 20307 - 19968: jis0208<<14 | 0x21<<7 | 0x2D, - 20308 - 19968: jis0212<<14 | 0x0F<<7 | 0x4C, - 20309 - 19968: jis0208<<14 | 0x11<<7 | 0x1E, - 20310 - 19968: jis0208<<14 | 0x58<<7 | 0x12, - 20311 - 19968: jis0208<<14 | 0x2F<<7 | 0x28, - 20312 - 19968: jis0212<<14 | 0x0F<<7 | 0x4E, - 20313 - 19968: jis0208<<14 | 0x2C<<7 | 0x1D, - 20314 - 19968: jis0208<<14 | 0x2F<<7 | 0x24, - 20315 - 19968: jis0208<<14 | 0x2F<<7 | 0x26, - 20316 - 19968: jis0208<<14 | 0x19<<7 | 0x4D, - 20317 - 19968: jis0208<<14 | 0x2F<<7 | 0x27, - 20318 - 19968: jis0208<<14 | 0x34<<7 | 0x03, - 20319 - 19968: jis0212<<14 | 0x0F<<7 | 0x4F, - 20320 - 19968: jis0212<<14 | 0x0F<<7 | 0x3E, - 20323 - 19968: jis0212<<14 | 0x0F<<7 | 0x50, - 20329 - 19968: jis0208<<14 | 0x2F<<7 | 0x2F, - 20330 - 19968: jis0212<<14 | 0x0F<<7 | 0x51, - 20332 - 19968: jis0212<<14 | 0x0F<<7 | 0x52, - 20334 - 19968: jis0212<<14 | 0x0F<<7 | 0x53, - 20335 - 19968: jis0208<<14 | 0x2F<<7 | 0x32, - 20336 - 19968: jis0208<<14 | 0x2F<<7 | 0x30, - 20337 - 19968: jis0212<<14 | 0x0F<<7 | 0x54, - 20339 - 19968: jis0208<<14 | 0x11<<7 | 0x21, - 20341 - 19968: jis0208<<14 | 0x29<<7 | 0x1A, - 20342 - 19968: jis0208<<14 | 0x2F<<7 | 0x2A, - 20343 - 19968: jis0212<<14 | 0x0F<<7 | 0x55, - 20344 - 19968: jis0212<<14 | 0x0F<<7 | 0x56, - 20345 - 19968: jis0212<<14 | 0x0F<<7 | 0x57, - 20346 - 19968: jis0212<<14 | 0x0F<<7 | 0x58, - 20347 - 19968: jis0208<<14 | 0x2F<<7 | 0x2E, - 20348 - 19968: jis0208<<14 | 0x17<<7 | 0x52, - 20349 - 19968: jis0212<<14 | 0x0F<<7 | 0x59, - 20350 - 19968: jis0212<<14 | 0x0F<<7 | 0x5A, - 20351 - 19968: jis0208<<14 | 0x1A<<7 | 0x27, - 20353 - 19968: jis0212<<14 | 0x0F<<7 | 0x5B, - 20354 - 19968: jis0212<<14 | 0x0F<<7 | 0x5C, - 20355 - 19968: jis0208<<14 | 0x13<<7 | 0x05, - 20356 - 19968: jis0212<<14 | 0x0F<<7 | 0x5D, - 20357 - 19968: jis0212<<14 | 0x10<<7 | 0x00, - 20358 - 19968: jis0208<<14 | 0x2F<<7 | 0x33, - 20360 - 19968: jis0208<<14 | 0x2F<<7 | 0x2B, - 20361 - 19968: jis0212<<14 | 0x10<<7 | 0x01, - 20362 - 19968: jis0208<<14 | 0x58<<7 | 0x14, - 20363 - 19968: jis0208<<14 | 0x2D<<7 | 0x42, - 20364 - 19968: jis0212<<14 | 0x10<<7 | 0x03, - 20365 - 19968: jis0208<<14 | 0x1A<<7 | 0x57, - 20366 - 19968: jis0212<<14 | 0x10<<7 | 0x04, - 20367 - 19968: jis0208<<14 | 0x2F<<7 | 0x2C, - 20368 - 19968: jis0212<<14 | 0x10<<7 | 0x05, - 20369 - 19968: jis0208<<14 | 0x2F<<7 | 0x31, - 20370 - 19968: jis0208<<14 | 0x58<<7 | 0x13, - 20371 - 19968: jis0212<<14 | 0x10<<7 | 0x07, - 20372 - 19968: jis0208<<14 | 0x58<<7 | 0x16, - 20374 - 19968: jis0208<<14 | 0x2F<<7 | 0x34, - 20375 - 19968: jis0212<<14 | 0x10<<7 | 0x09, - 20376 - 19968: jis0208<<14 | 0x2F<<7 | 0x2D, - 20377 - 19968: jis0212<<14 | 0x10<<7 | 0x0A, - 20378 - 19968: jis0208<<14 | 0x58<<7 | 0x15, - 20379 - 19968: jis0208<<14 | 0x15<<7 | 0x00, - 20381 - 19968: jis0208<<14 | 0x0F<<7 | 0x2C, - 20382 - 19968: jis0212<<14 | 0x10<<7 | 0x0C, - 20383 - 19968: jis0212<<14 | 0x10<<7 | 0x0D, - 20384 - 19968: jis0208<<14 | 0x15<<7 | 0x01, - 20385 - 19968: jis0208<<14 | 0x11<<7 | 0x20, - 20395 - 19968: jis0208<<14 | 0x34<<7 | 0x04, - 20397 - 19968: jis0208<<14 | 0x2A<<7 | 0x58, - 20398 - 19968: jis0208<<14 | 0x28<<7 | 0x4D, - 20399 - 19968: jis0208<<14 | 0x17<<7 | 0x53, - 20402 - 19968: jis0212<<14 | 0x10<<7 | 0x0E, - 20405 - 19968: jis0208<<14 | 0x1E<<7 | 0x0E, - 20406 - 19968: jis0208<<14 | 0x2D<<7 | 0x16, - 20407 - 19968: jis0212<<14 | 0x10<<7 | 0x0F, - 20409 - 19968: jis0212<<14 | 0x10<<7 | 0x10, - 20411 - 19968: jis0212<<14 | 0x10<<7 | 0x11, - 20412 - 19968: jis0212<<14 | 0x10<<7 | 0x12, - 20413 - 19968: jis0212<<14 | 0x10<<7 | 0x13, - 20414 - 19968: jis0212<<14 | 0x10<<7 | 0x14, - 20415 - 19968: jis0208<<14 | 0x29<<7 | 0x37, - 20416 - 19968: jis0212<<14 | 0x10<<7 | 0x15, - 20417 - 19968: jis0212<<14 | 0x10<<7 | 0x16, - 20418 - 19968: jis0208<<14 | 0x16<<7 | 0x17, - 20419 - 19968: jis0208<<14 | 0x21<<7 | 0x04, - 20420 - 19968: jis0208<<14 | 0x11<<7 | 0x43, - 20421 - 19968: jis0212<<14 | 0x10<<7 | 0x17, - 20422 - 19968: jis0212<<14 | 0x10<<7 | 0x18, - 20424 - 19968: jis0212<<14 | 0x10<<7 | 0x19, - 20425 - 19968: jis0208<<14 | 0x58<<7 | 0x05, - 20426 - 19968: jis0208<<14 | 0x1C<<7 | 0x32, - 20427 - 19968: jis0212<<14 | 0x10<<7 | 0x1B, - 20428 - 19968: jis0212<<14 | 0x10<<7 | 0x1C, - 20429 - 19968: jis0208<<14 | 0x58<<7 | 0x17, - 20430 - 19968: jis0208<<14 | 0x2F<<7 | 0x38, - 20431 - 19968: jis0212<<14 | 0x10<<7 | 0x1E, - 20432 - 19968: jis0208<<14 | 0x2F<<7 | 0x3D, - 20433 - 19968: jis0208<<14 | 0x2F<<7 | 0x3B, - 20434 - 19968: jis0212<<14 | 0x10<<7 | 0x1F, - 20436 - 19968: jis0208<<14 | 0x2F<<7 | 0x36, - 20439 - 19968: jis0208<<14 | 0x21<<7 | 0x0E, - 20440 - 19968: jis0208<<14 | 0x2F<<7 | 0x39, - 20442 - 19968: jis0208<<14 | 0x2F<<7 | 0x3C, - 20443 - 19968: jis0208<<14 | 0x2F<<7 | 0x3A, - 20444 - 19968: jis0212<<14 | 0x10<<7 | 0x20, - 20445 - 19968: jis0208<<14 | 0x29<<7 | 0x3C, - 20447 - 19968: jis0208<<14 | 0x2F<<7 | 0x37, - 20448 - 19968: jis0212<<14 | 0x10<<7 | 0x21, - 20449 - 19968: jis0208<<14 | 0x1E<<7 | 0x0D, - 20450 - 19968: jis0212<<14 | 0x10<<7 | 0x22, - 20451 - 19968: jis0208<<14 | 0x2A<<7 | 0x52, - 20452 - 19968: jis0208<<14 | 0x2F<<7 | 0x3E, - 20453 - 19968: jis0208<<14 | 0x2F<<7 | 0x3F, - 20462 - 19968: jis0208<<14 | 0x1C<<7 | 0x03, - 20463 - 19968: jis0208<<14 | 0x2F<<7 | 0x4C, - 20464 - 19968: jis0212<<14 | 0x10<<7 | 0x23, - 20466 - 19968: jis0212<<14 | 0x10<<7 | 0x24, - 20467 - 19968: jis0208<<14 | 0x26<<7 | 0x2F, - 20469 - 19968: jis0208<<14 | 0x28<<7 | 0x15, - 20470 - 19968: jis0208<<14 | 0x2F<<7 | 0x47, - 20472 - 19968: jis0208<<14 | 0x29<<7 | 0x4F, - 20474 - 19968: jis0208<<14 | 0x11<<7 | 0x15, - 20476 - 19968: jis0212<<14 | 0x10<<7 | 0x25, - 20477 - 19968: jis0212<<14 | 0x10<<7 | 0x26, - 20478 - 19968: jis0208<<14 | 0x2F<<7 | 0x4B, - 20479 - 19968: jis0208<<14 | 0x58<<7 | 0x1A, - 20480 - 19968: jis0212<<14 | 0x10<<7 | 0x28, - 20481 - 19968: jis0212<<14 | 0x10<<7 | 0x29, - 20484 - 19968: jis0212<<14 | 0x10<<7 | 0x2A, - 20485 - 19968: jis0208<<14 | 0x2F<<7 | 0x45, - 20486 - 19968: jis0208<<14 | 0x2F<<7 | 0x4E, - 20487 - 19968: jis0212<<14 | 0x10<<7 | 0x2B, - 20489 - 19968: jis0208<<14 | 0x20<<7 | 0x31, - 20490 - 19968: jis0212<<14 | 0x10<<7 | 0x2C, - 20491 - 19968: jis0208<<14 | 0x17<<7 | 0x23, - 20492 - 19968: jis0212<<14 | 0x10<<7 | 0x2D, - 20493 - 19968: jis0208<<14 | 0x26<<7 | 0x3B, - 20494 - 19968: jis0212<<14 | 0x10<<7 | 0x2E, - 20495 - 19968: jis0208<<14 | 0x3F<<7 | 0x26, - 20496 - 19968: jis0212<<14 | 0x10<<7 | 0x2F, - 20497 - 19968: jis0208<<14 | 0x2F<<7 | 0x4D, - 20498 - 19968: jis0208<<14 | 0x24<<7 | 0x3C, - 20499 - 19968: jis0212<<14 | 0x10<<7 | 0x30, - 20500 - 19968: jis0208<<14 | 0x2F<<7 | 0x42, - 20502 - 19968: jis0208<<14 | 0x17<<7 | 0x55, - 20503 - 19968: jis0212<<14 | 0x10<<7 | 0x31, - 20504 - 19968: jis0212<<14 | 0x10<<7 | 0x32, - 20505 - 19968: jis0208<<14 | 0x17<<7 | 0x54, - 20506 - 19968: jis0208<<14 | 0x2F<<7 | 0x40, - 20507 - 19968: jis0212<<14 | 0x10<<7 | 0x33, - 20508 - 19968: jis0212<<14 | 0x10<<7 | 0x34, - 20509 - 19968: jis0212<<14 | 0x10<<7 | 0x35, - 20510 - 19968: jis0208<<14 | 0x58<<7 | 0x1B, - 20511 - 19968: jis0208<<14 | 0x1B<<7 | 0x39, - 20513 - 19968: jis0208<<14 | 0x2F<<7 | 0x48, - 20514 - 19968: jis0208<<14 | 0x58<<7 | 0x19, - 20515 - 19968: jis0208<<14 | 0x29<<7 | 0x4E, - 20516 - 19968: jis0208<<14 | 0x22<<7 | 0x2C, - 20517 - 19968: jis0208<<14 | 0x2F<<7 | 0x44, - 20518 - 19968: jis0208<<14 | 0x16<<7 | 0x50, - 20519 - 19968: jis0212<<14 | 0x10<<7 | 0x38, - 20520 - 19968: jis0208<<14 | 0x2F<<7 | 0x41, - 20521 - 19968: jis0208<<14 | 0x2F<<7 | 0x49, - 20522 - 19968: jis0208<<14 | 0x2F<<7 | 0x43, - 20523 - 19968: jis0208<<14 | 0x2D<<7 | 0x30, - 20524 - 19968: jis0208<<14 | 0x2F<<7 | 0x4A, - 20525 - 19968: jis0208<<14 | 0x2E<<7 | 0x20, - 20526 - 19968: jis0212<<14 | 0x10<<7 | 0x39, - 20528 - 19968: jis0212<<14 | 0x10<<7 | 0x3A, - 20530 - 19968: jis0212<<14 | 0x10<<7 | 0x3B, - 20531 - 19968: jis0212<<14 | 0x10<<7 | 0x3C, - 20533 - 19968: jis0212<<14 | 0x10<<7 | 0x3D, - 20534 - 19968: jis0208<<14 | 0x15<<7 | 0x45, - 20537 - 19968: jis0208<<14 | 0x16<<7 | 0x4F, - 20539 - 19968: jis0212<<14 | 0x10<<7 | 0x55, - 20544 - 19968: jis0208<<14 | 0x58<<7 | 0x18, - 20545 - 19968: jis0212<<14 | 0x10<<7 | 0x3F, - 20546 - 19968: jis0208<<14 | 0x58<<7 | 0x1E, - 20547 - 19968: jis0208<<14 | 0x2F<<7 | 0x4F, - 20549 - 19968: jis0212<<14 | 0x10<<7 | 0x41, - 20550 - 19968: jis0208<<14 | 0x58<<7 | 0x1C, - 20551 - 19968: jis0208<<14 | 0x2F<<7 | 0x50, - 20552 - 19968: jis0208<<14 | 0x2F<<7 | 0x54, - 20553 - 19968: jis0208<<14 | 0x0F<<7 | 0x2D, - 20554 - 19968: jis0212<<14 | 0x10<<7 | 0x43, - 20556 - 19968: jis0212<<14 | 0x10<<7 | 0x44, - 20558 - 19968: jis0212<<14 | 0x10<<7 | 0x45, - 20559 - 19968: jis0208<<14 | 0x29<<7 | 0x2F, - 20560 - 19968: jis0208<<14 | 0x2F<<7 | 0x53, - 20561 - 19968: jis0212<<14 | 0x10<<7 | 0x46, - 20562 - 19968: jis0212<<14 | 0x10<<7 | 0x47, - 20563 - 19968: jis0212<<14 | 0x10<<7 | 0x48, - 20565 - 19968: jis0208<<14 | 0x2F<<7 | 0x52, - 20566 - 19968: jis0208<<14 | 0x2F<<7 | 0x56, - 20567 - 19968: jis0212<<14 | 0x10<<7 | 0x49, - 20569 - 19968: jis0212<<14 | 0x10<<7 | 0x4A, - 20570 - 19968: jis0208<<14 | 0x2F<<7 | 0x55, - 20572 - 19968: jis0208<<14 | 0x23<<7 | 0x43, - 20575 - 19968: jis0212<<14 | 0x10<<7 | 0x4B, - 20576 - 19968: jis0212<<14 | 0x10<<7 | 0x4C, - 20578 - 19968: jis0212<<14 | 0x10<<7 | 0x4D, - 20579 - 19968: jis0212<<14 | 0x10<<7 | 0x4E, - 20581 - 19968: jis0208<<14 | 0x16<<7 | 0x51, - 20582 - 19968: jis0212<<14 | 0x10<<7 | 0x4F, - 20583 - 19968: jis0212<<14 | 0x10<<7 | 0x50, - 20586 - 19968: jis0212<<14 | 0x10<<7 | 0x51, - 20588 - 19968: jis0208<<14 | 0x2F<<7 | 0x57, - 20589 - 19968: jis0212<<14 | 0x10<<7 | 0x52, - 20592 - 19968: jis0208<<14 | 0x58<<7 | 0x1D, - 20593 - 19968: jis0212<<14 | 0x10<<7 | 0x54, - 20594 - 19968: jis0208<<14 | 0x1B<<7 | 0x24, - 20596 - 19968: jis0208<<14 | 0x21<<7 | 0x05, - 20597 - 19968: jis0208<<14 | 0x23<<7 | 0x44, - 20598 - 19968: jis0208<<14 | 0x15<<7 | 0x55, - 20600 - 19968: jis0208<<14 | 0x2F<<7 | 0x58, - 20605 - 19968: jis0208<<14 | 0x14<<7 | 0x15, - 20608 - 19968: jis0208<<14 | 0x2F<<7 | 0x59, - 20609 - 19968: jis0212<<14 | 0x10<<7 | 0x56, - 20611 - 19968: jis0212<<14 | 0x10<<7 | 0x57, - 20612 - 19968: jis0212<<14 | 0x10<<7 | 0x58, - 20613 - 19968: jis0208<<14 | 0x2F<<7 | 0x5B, - 20614 - 19968: jis0212<<14 | 0x10<<7 | 0x59, - 20618 - 19968: jis0212<<14 | 0x10<<7 | 0x5A, - 20621 - 19968: jis0208<<14 | 0x2A<<7 | 0x14, - 20622 - 19968: jis0212<<14 | 0x10<<7 | 0x5B, - 20623 - 19968: jis0212<<14 | 0x10<<7 | 0x5C, - 20624 - 19968: jis0212<<14 | 0x10<<7 | 0x5D, - 20625 - 19968: jis0208<<14 | 0x16<<7 | 0x45, - 20626 - 19968: jis0212<<14 | 0x11<<7 | 0x00, - 20627 - 19968: jis0212<<14 | 0x11<<7 | 0x01, - 20628 - 19968: jis0208<<14 | 0x58<<7 | 0x1F, - 20630 - 19968: jis0212<<14 | 0x11<<7 | 0x03, - 20632 - 19968: jis0208<<14 | 0x1A<<7 | 0x10, - 20633 - 19968: jis0208<<14 | 0x27<<7 | 0x56, - 20634 - 19968: jis0208<<14 | 0x2F<<7 | 0x5A, - 20635 - 19968: jis0212<<14 | 0x11<<7 | 0x04, - 20636 - 19968: jis0212<<14 | 0x11<<7 | 0x05, - 20638 - 19968: jis0212<<14 | 0x11<<7 | 0x06, - 20639 - 19968: jis0212<<14 | 0x11<<7 | 0x07, - 20640 - 19968: jis0212<<14 | 0x11<<7 | 0x08, - 20641 - 19968: jis0212<<14 | 0x11<<7 | 0x09, - 20642 - 19968: jis0212<<14 | 0x11<<7 | 0x0A, - 20650 - 19968: jis0212<<14 | 0x11<<7 | 0x0B, - 20652 - 19968: jis0208<<14 | 0x19<<7 | 0x24, - 20653 - 19968: jis0208<<14 | 0x2C<<7 | 0x22, - 20655 - 19968: jis0212<<14 | 0x11<<7 | 0x0C, - 20656 - 19968: jis0212<<14 | 0x11<<7 | 0x0D, - 20658 - 19968: jis0208<<14 | 0x2F<<7 | 0x5D, - 20659 - 19968: jis0208<<14 | 0x30<<7 | 0x02, - 20660 - 19968: jis0208<<14 | 0x2F<<7 | 0x5C, - 20661 - 19968: jis0208<<14 | 0x19<<7 | 0x23, - 20663 - 19968: jis0208<<14 | 0x1C<<7 | 0x5C, - 20665 - 19968: jis0212<<14 | 0x11<<7 | 0x0E, - 20666 - 19968: jis0212<<14 | 0x11<<7 | 0x0F, - 20669 - 19968: jis0212<<14 | 0x11<<7 | 0x10, - 20670 - 19968: jis0208<<14 | 0x16<<7 | 0x18, - 20672 - 19968: jis0212<<14 | 0x11<<7 | 0x11, - 20674 - 19968: jis0208<<14 | 0x30<<7 | 0x03, - 20675 - 19968: jis0212<<14 | 0x11<<7 | 0x12, - 20676 - 19968: jis0212<<14 | 0x11<<7 | 0x13, - 20677 - 19968: jis0208<<14 | 0x15<<7 | 0x2E, - 20679 - 19968: jis0212<<14 | 0x11<<7 | 0x14, - 20681 - 19968: jis0208<<14 | 0x30<<7 | 0x00, - 20682 - 19968: jis0208<<14 | 0x30<<7 | 0x01, - 20684 - 19968: jis0212<<14 | 0x11<<7 | 0x15, - 20685 - 19968: jis0208<<14 | 0x25<<7 | 0x0E, - 20686 - 19968: jis0212<<14 | 0x11<<7 | 0x16, - 20687 - 19968: jis0208<<14 | 0x20<<7 | 0x5B, - 20688 - 19968: jis0212<<14 | 0x11<<7 | 0x17, - 20689 - 19968: jis0208<<14 | 0x15<<7 | 0x02, - 20691 - 19968: jis0212<<14 | 0x11<<7 | 0x18, - 20692 - 19968: jis0212<<14 | 0x11<<7 | 0x19, - 20693 - 19968: jis0208<<14 | 0x2A<<7 | 0x2C, - 20694 - 19968: jis0208<<14 | 0x30<<7 | 0x04, - 20696 - 19968: jis0208<<14 | 0x58<<7 | 0x21, - 20698 - 19968: jis0208<<14 | 0x2D<<7 | 0x1C, - 20700 - 19968: jis0212<<14 | 0x11<<7 | 0x1B, - 20701 - 19968: jis0212<<14 | 0x11<<7 | 0x1C, - 20702 - 19968: jis0208<<14 | 0x30<<7 | 0x05, - 20703 - 19968: jis0212<<14 | 0x11<<7 | 0x1D, - 20706 - 19968: jis0212<<14 | 0x11<<7 | 0x1E, - 20707 - 19968: jis0208<<14 | 0x30<<7 | 0x08, - 20708 - 19968: jis0212<<14 | 0x11<<7 | 0x1F, - 20709 - 19968: jis0208<<14 | 0x30<<7 | 0x06, - 20710 - 19968: jis0212<<14 | 0x11<<7 | 0x20, - 20711 - 19968: jis0208<<14 | 0x20<<7 | 0x2D, - 20712 - 19968: jis0212<<14 | 0x11<<7 | 0x21, - 20713 - 19968: jis0212<<14 | 0x11<<7 | 0x22, - 20717 - 19968: jis0208<<14 | 0x30<<7 | 0x07, - 20718 - 19968: jis0208<<14 | 0x30<<7 | 0x09, - 20719 - 19968: jis0212<<14 | 0x11<<7 | 0x23, - 20721 - 19968: jis0212<<14 | 0x11<<7 | 0x24, - 20722 - 19968: jis0212<<14 | 0x11<<7 | 0x30, - 20724 - 19968: jis0208<<14 | 0x58<<7 | 0x20, - 20725 - 19968: jis0208<<14 | 0x30<<7 | 0x0B, - 20726 - 19968: jis0212<<14 | 0x11<<7 | 0x25, - 20729 - 19968: jis0208<<14 | 0x30<<7 | 0x0A, - 20730 - 19968: jis0212<<14 | 0x11<<7 | 0x26, - 20731 - 19968: jis0208<<14 | 0x29<<7 | 0x27, - 20734 - 19968: jis0212<<14 | 0x11<<7 | 0x27, - 20736 - 19968: jis0208<<14 | 0x14<<7 | 0x16, - 20737 - 19968: jis0208<<14 | 0x30<<7 | 0x0D, - 20738 - 19968: jis0208<<14 | 0x30<<7 | 0x0E, - 20739 - 19968: jis0212<<14 | 0x11<<7 | 0x28, - 20740 - 19968: jis0208<<14 | 0x11<<7 | 0x0E, - 20742 - 19968: jis0212<<14 | 0x11<<7 | 0x29, - 20743 - 19968: jis0212<<14 | 0x11<<7 | 0x2A, - 20744 - 19968: jis0212<<14 | 0x11<<7 | 0x2B, - 20745 - 19968: jis0208<<14 | 0x30<<7 | 0x0C, - 20747 - 19968: jis0212<<14 | 0x11<<7 | 0x2C, - 20748 - 19968: jis0212<<14 | 0x11<<7 | 0x2D, - 20749 - 19968: jis0212<<14 | 0x11<<7 | 0x2E, - 20750 - 19968: jis0212<<14 | 0x11<<7 | 0x2F, - 20752 - 19968: jis0212<<14 | 0x11<<7 | 0x31, - 20754 - 19968: jis0208<<14 | 0x1B<<7 | 0x53, - 20756 - 19968: jis0208<<14 | 0x30<<7 | 0x11, - 20757 - 19968: jis0208<<14 | 0x30<<7 | 0x10, - 20758 - 19968: jis0208<<14 | 0x30<<7 | 0x0F, - 20759 - 19968: jis0212<<14 | 0x11<<7 | 0x32, - 20760 - 19968: jis0208<<14 | 0x2F<<7 | 0x35, - 20761 - 19968: jis0212<<14 | 0x11<<7 | 0x33, - 20762 - 19968: jis0208<<14 | 0x30<<7 | 0x12, - 20763 - 19968: jis0212<<14 | 0x11<<7 | 0x34, - 20764 - 19968: jis0212<<14 | 0x11<<7 | 0x35, - 20765 - 19968: jis0212<<14 | 0x11<<7 | 0x36, - 20766 - 19968: jis0212<<14 | 0x11<<7 | 0x37, - 20767 - 19968: jis0208<<14 | 0x1C<<7 | 0x5D, - 20769 - 19968: jis0208<<14 | 0x30<<7 | 0x13, - 20771 - 19968: jis0212<<14 | 0x11<<7 | 0x38, - 20775 - 19968: jis0212<<14 | 0x11<<7 | 0x39, - 20776 - 19968: jis0212<<14 | 0x11<<7 | 0x3A, - 20778 - 19968: jis0208<<14 | 0x2C<<7 | 0x04, - 20780 - 19968: jis0212<<14 | 0x11<<7 | 0x3B, - 20781 - 19968: jis0212<<14 | 0x11<<7 | 0x3C, - 20783 - 19968: jis0212<<14 | 0x11<<7 | 0x3D, - 20785 - 19968: jis0212<<14 | 0x11<<7 | 0x3E, - 20786 - 19968: jis0208<<14 | 0x2B<<7 | 0x38, - 20787 - 19968: jis0212<<14 | 0x11<<7 | 0x3F, - 20788 - 19968: jis0212<<14 | 0x11<<7 | 0x40, - 20789 - 19968: jis0212<<14 | 0x11<<7 | 0x41, - 20791 - 19968: jis0208<<14 | 0x30<<7 | 0x15, - 20792 - 19968: jis0212<<14 | 0x11<<7 | 0x42, - 20793 - 19968: jis0212<<14 | 0x11<<7 | 0x43, - 20794 - 19968: jis0208<<14 | 0x30<<7 | 0x14, - 20795 - 19968: jis0208<<14 | 0x30<<7 | 0x17, - 20796 - 19968: jis0208<<14 | 0x30<<7 | 0x16, - 20799 - 19968: jis0208<<14 | 0x30<<7 | 0x18, - 20800 - 19968: jis0208<<14 | 0x30<<7 | 0x19, - 20801 - 19968: jis0208<<14 | 0x0F<<7 | 0x53, - 20802 - 19968: jis0212<<14 | 0x11<<7 | 0x44, - 20803 - 19968: jis0208<<14 | 0x17<<7 | 0x14, - 20804 - 19968: jis0208<<14 | 0x16<<7 | 0x1A, - 20805 - 19968: jis0208<<14 | 0x1C<<7 | 0x1B, - 20806 - 19968: jis0208<<14 | 0x22<<7 | 0x5A, - 20807 - 19968: jis0208<<14 | 0x15<<7 | 0x03, - 20808 - 19968: jis0208<<14 | 0x1F<<7 | 0x47, - 20809 - 19968: jis0208<<14 | 0x17<<7 | 0x56, - 20810 - 19968: jis0208<<14 | 0x58<<7 | 0x22, - 20811 - 19968: jis0208<<14 | 0x18<<7 | 0x4D, - 20812 - 19968: jis0208<<14 | 0x30<<7 | 0x1B, - 20813 - 19968: jis0208<<14 | 0x2B<<7 | 0x27, - 20814 - 19968: jis0208<<14 | 0x24<<7 | 0x25, - 20815 - 19968: jis0212<<14 | 0x11<<7 | 0x46, - 20816 - 19968: jis0208<<14 | 0x1A<<7 | 0x58, - 20818 - 19968: jis0208<<14 | 0x30<<7 | 0x1A, - 20819 - 19968: jis0212<<14 | 0x11<<7 | 0x47, - 20820 - 19968: jis0208<<14 | 0x30<<7 | 0x1C, - 20821 - 19968: jis0212<<14 | 0x11<<7 | 0x48, - 20823 - 19968: jis0212<<14 | 0x11<<7 | 0x49, - 20824 - 19968: jis0212<<14 | 0x11<<7 | 0x4A, - 20826 - 19968: jis0208<<14 | 0x24<<7 | 0x3D, - 20828 - 19968: jis0208<<14 | 0x12<<7 | 0x54, - 20831 - 19968: jis0212<<14 | 0x11<<7 | 0x4B, - 20834 - 19968: jis0208<<14 | 0x30<<7 | 0x1D, - 20836 - 19968: jis0208<<14 | 0x58<<7 | 0x23, - 20837 - 19968: jis0208<<14 | 0x25<<7 | 0x5D, - 20838 - 19968: jis0212<<14 | 0x11<<7 | 0x4D, - 20840 - 19968: jis0208<<14 | 0x20<<7 | 0x13, - 20841 - 19968: jis0208<<14 | 0x30<<7 | 0x1F, - 20842 - 19968: jis0208<<14 | 0x30<<7 | 0x20, - 20843 - 19968: jis0208<<14 | 0x27<<7 | 0x0B, - 20844 - 19968: jis0208<<14 | 0x17<<7 | 0x57, - 20845 - 19968: jis0208<<14 | 0x2E<<7 | 0x1A, - 20846 - 19968: jis0208<<14 | 0x30<<7 | 0x21, - 20849 - 19968: jis0208<<14 | 0x15<<7 | 0x05, - 20853 - 19968: jis0208<<14 | 0x29<<7 | 0x1B, - 20854 - 19968: jis0208<<14 | 0x21<<7 | 0x15, - 20855 - 19968: jis0208<<14 | 0x15<<7 | 0x50, - 20856 - 19968: jis0208<<14 | 0x24<<7 | 0x14, - 20860 - 19968: jis0208<<14 | 0x16<<7 | 0x52, - 20862 - 19968: jis0212<<14 | 0x11<<7 | 0x4E, - 20864 - 19968: jis0208<<14 | 0x30<<7 | 0x22, - 20866 - 19968: jis0208<<14 | 0x30<<7 | 0x23, - 20867 - 19968: jis0212<<14 | 0x11<<7 | 0x4F, - 20868 - 19968: jis0212<<14 | 0x11<<7 | 0x50, - 20869 - 19968: jis0208<<14 | 0x25<<7 | 0x41, - 20870 - 19968: jis0208<<14 | 0x10<<7 | 0x3E, - 20873 - 19968: jis0208<<14 | 0x30<<7 | 0x26, - 20874 - 19968: jis0208<<14 | 0x19<<7 | 0x5C, - 20875 - 19968: jis0212<<14 | 0x11<<7 | 0x51, - 20876 - 19968: jis0208<<14 | 0x30<<7 | 0x25, - 20877 - 19968: jis0208<<14 | 0x19<<7 | 0x25, - 20878 - 19968: jis0212<<14 | 0x11<<7 | 0x52, - 20879 - 19968: jis0208<<14 | 0x30<<7 | 0x27, - 20880 - 19968: jis0208<<14 | 0x45<<7 | 0x4D, - 20881 - 19968: jis0208<<14 | 0x30<<7 | 0x28, - 20882 - 19968: jis0208<<14 | 0x2A<<7 | 0x20, - 20883 - 19968: jis0208<<14 | 0x30<<7 | 0x29, - 20885 - 19968: jis0208<<14 | 0x30<<7 | 0x2A, - 20886 - 19968: jis0208<<14 | 0x30<<7 | 0x2B, - 20887 - 19968: jis0208<<14 | 0x1D<<7 | 0x48, - 20888 - 19968: jis0212<<14 | 0x11<<7 | 0x53, - 20889 - 19968: jis0208<<14 | 0x1B<<7 | 0x2B, - 20893 - 19968: jis0208<<14 | 0x58<<7 | 0x24, - 20896 - 19968: jis0208<<14 | 0x13<<7 | 0x06, - 20897 - 19968: jis0212<<14 | 0x11<<7 | 0x55, - 20898 - 19968: jis0208<<14 | 0x30<<7 | 0x2E, - 20899 - 19968: jis0212<<14 | 0x11<<7 | 0x56, - 20900 - 19968: jis0208<<14 | 0x30<<7 | 0x2C, - 20901 - 19968: jis0208<<14 | 0x2B<<7 | 0x1C, - 20902 - 19968: jis0208<<14 | 0x30<<7 | 0x2D, - 20904 - 19968: jis0208<<14 | 0x28<<7 | 0x39, - 20905 - 19968: jis0208<<14 | 0x30<<7 | 0x2F, - 20906 - 19968: jis0208<<14 | 0x30<<7 | 0x30, - 20907 - 19968: jis0208<<14 | 0x30<<7 | 0x31, - 20908 - 19968: jis0208<<14 | 0x24<<7 | 0x3E, - 20909 - 19968: jis0212<<14 | 0x11<<7 | 0x57, - 20912 - 19968: jis0208<<14 | 0x30<<7 | 0x35, - 20913 - 19968: jis0208<<14 | 0x30<<7 | 0x33, - 20914 - 19968: jis0208<<14 | 0x30<<7 | 0x34, - 20915 - 19968: jis0208<<14 | 0x30<<7 | 0x32, - 20916 - 19968: jis0208<<14 | 0x19<<7 | 0x42, - 20917 - 19968: jis0208<<14 | 0x30<<7 | 0x36, - 20918 - 19968: jis0208<<14 | 0x2B<<7 | 0x49, - 20919 - 19968: jis0208<<14 | 0x2D<<7 | 0x43, - 20920 - 19968: jis0212<<14 | 0x11<<7 | 0x58, - 20922 - 19968: jis0212<<14 | 0x11<<7 | 0x59, - 20924 - 19968: jis0212<<14 | 0x11<<7 | 0x5A, - 20925 - 19968: jis0208<<14 | 0x30<<7 | 0x37, - 20926 - 19968: jis0208<<14 | 0x58<<7 | 0x25, - 20927 - 19968: jis0212<<14 | 0x11<<7 | 0x5C, - 20930 - 19968: jis0212<<14 | 0x11<<7 | 0x5D, - 20932 - 19968: jis0208<<14 | 0x1F<<7 | 0x07, - 20933 - 19968: jis0208<<14 | 0x30<<7 | 0x38, - 20934 - 19968: jis0208<<14 | 0x1C<<7 | 0x39, - 20936 - 19968: jis0212<<14 | 0x12<<7 | 0x00, - 20937 - 19968: jis0208<<14 | 0x30<<7 | 0x39, - 20939 - 19968: jis0208<<14 | 0x22<<7 | 0x5B, - 20940 - 19968: jis0208<<14 | 0x2D<<7 | 0x1E, - 20941 - 19968: jis0208<<14 | 0x24<<7 | 0x3F, - 20943 - 19968: jis0212<<14 | 0x12<<7 | 0x01, - 20945 - 19968: jis0212<<14 | 0x12<<7 | 0x02, - 20946 - 19968: jis0212<<14 | 0x12<<7 | 0x03, - 20947 - 19968: jis0212<<14 | 0x12<<7 | 0x04, - 20949 - 19968: jis0212<<14 | 0x12<<7 | 0x05, - 20950 - 19968: jis0208<<14 | 0x31<<7 | 0x24, - 20952 - 19968: jis0212<<14 | 0x12<<7 | 0x06, - 20955 - 19968: jis0208<<14 | 0x30<<7 | 0x3A, - 20956 - 19968: jis0208<<14 | 0x53<<7 | 0x04, - 20957 - 19968: jis0208<<14 | 0x15<<7 | 0x24, - 20958 - 19968: jis0212<<14 | 0x12<<7 | 0x07, - 20960 - 19968: jis0208<<14 | 0x30<<7 | 0x3B, - 20961 - 19968: jis0208<<14 | 0x2A<<7 | 0x3D, - 20962 - 19968: jis0212<<14 | 0x12<<7 | 0x08, - 20965 - 19968: jis0212<<14 | 0x12<<7 | 0x09, - 20966 - 19968: jis0208<<14 | 0x1C<<7 | 0x47, - 20967 - 19968: jis0208<<14 | 0x21<<7 | 0x5B, - 20969 - 19968: jis0208<<14 | 0x30<<7 | 0x3D, - 20970 - 19968: jis0208<<14 | 0x25<<7 | 0x43, - 20972 - 19968: jis0208<<14 | 0x58<<7 | 0x26, - 20973 - 19968: jis0208<<14 | 0x30<<7 | 0x3E, - 20974 - 19968: jis0212<<14 | 0x12<<7 | 0x0A, - 20976 - 19968: jis0208<<14 | 0x30<<7 | 0x3F, - 20977 - 19968: jis0208<<14 | 0x12<<7 | 0x0D, - 20978 - 19968: jis0212<<14 | 0x12<<7 | 0x0B, - 20979 - 19968: jis0212<<14 | 0x12<<7 | 0x0C, - 20980 - 19968: jis0212<<14 | 0x12<<7 | 0x0D, - 20981 - 19968: jis0208<<14 | 0x30<<7 | 0x40, - 20982 - 19968: jis0208<<14 | 0x15<<7 | 0x06, - 20983 - 19968: jis0212<<14 | 0x12<<7 | 0x0E, - 20984 - 19968: jis0208<<14 | 0x25<<7 | 0x2B, - 20985 - 19968: jis0208<<14 | 0x10<<7 | 0x59, - 20986 - 19968: jis0208<<14 | 0x1C<<7 | 0x2F, - 20989 - 19968: jis0208<<14 | 0x27<<7 | 0x00, - 20990 - 19968: jis0208<<14 | 0x30<<7 | 0x41, - 20992 - 19968: jis0208<<14 | 0x24<<7 | 0x40, - 20993 - 19968: jis0212<<14 | 0x12<<7 | 0x0F, - 20994 - 19968: jis0212<<14 | 0x12<<7 | 0x10, - 20995 - 19968: jis0208<<14 | 0x1E<<7 | 0x2E, - 20996 - 19968: jis0208<<14 | 0x30<<7 | 0x42, - 20997 - 19968: jis0212<<14 | 0x12<<7 | 0x11, - 20998 - 19968: jis0208<<14 | 0x29<<7 | 0x0B, - 20999 - 19968: jis0208<<14 | 0x1F<<7 | 0x39, - 21000 - 19968: jis0208<<14 | 0x13<<7 | 0x01, - 21002 - 19968: jis0208<<14 | 0x13<<7 | 0x08, - 21003 - 19968: jis0208<<14 | 0x30<<7 | 0x43, - 21006 - 19968: jis0208<<14 | 0x30<<7 | 0x45, - 21009 - 19968: jis0208<<14 | 0x16<<7 | 0x19, - 21010 - 19968: jis0212<<14 | 0x12<<7 | 0x12, - 21011 - 19968: jis0212<<14 | 0x12<<7 | 0x13, - 21012 - 19968: jis0208<<14 | 0x30<<7 | 0x44, - 21013 - 19968: jis0208<<14 | 0x58<<7 | 0x27, - 21014 - 19968: jis0212<<14 | 0x12<<7 | 0x15, - 21015 - 19968: jis0208<<14 | 0x2D<<7 | 0x52, - 21016 - 19968: jis0212<<14 | 0x12<<7 | 0x16, - 21021 - 19968: jis0208<<14 | 0x1C<<7 | 0x48, - 21026 - 19968: jis0212<<14 | 0x12<<7 | 0x17, - 21028 - 19968: jis0208<<14 | 0x27<<7 | 0x1C, - 21029 - 19968: jis0208<<14 | 0x29<<7 | 0x2B, - 21031 - 19968: jis0208<<14 | 0x30<<7 | 0x46, - 21032 - 19968: jis0212<<14 | 0x12<<7 | 0x18, - 21033 - 19968: jis0208<<14 | 0x2C<<7 | 0x57, - 21034 - 19968: jis0208<<14 | 0x30<<7 | 0x47, - 21038 - 19968: jis0208<<14 | 0x30<<7 | 0x48, - 21040 - 19968: jis0208<<14 | 0x24<<7 | 0x5D, - 21041 - 19968: jis0212<<14 | 0x12<<7 | 0x19, - 21042 - 19968: jis0212<<14 | 0x12<<7 | 0x1A, - 21043 - 19968: jis0208<<14 | 0x30<<7 | 0x49, - 21045 - 19968: jis0212<<14 | 0x12<<7 | 0x1B, - 21046 - 19968: jis0208<<14 | 0x1F<<7 | 0x08, - 21047 - 19968: jis0208<<14 | 0x19<<7 | 0x5D, - 21048 - 19968: jis0208<<14 | 0x16<<7 | 0x53, - 21049 - 19968: jis0208<<14 | 0x30<<7 | 0x4A, - 21050 - 19968: jis0208<<14 | 0x1A<<7 | 0x28, - 21051 - 19968: jis0208<<14 | 0x18<<7 | 0x4E, - 21052 - 19968: jis0212<<14 | 0x12<<7 | 0x1C, - 21059 - 19968: jis0208<<14 | 0x23<<7 | 0x45, - 21060 - 19968: jis0208<<14 | 0x30<<7 | 0x4C, - 21061 - 19968: jis0212<<14 | 0x12<<7 | 0x1D, - 21063 - 19968: jis0208<<14 | 0x21<<7 | 0x06, - 21065 - 19968: jis0212<<14 | 0x12<<7 | 0x1E, - 21066 - 19968: jis0208<<14 | 0x19<<7 | 0x4E, - 21067 - 19968: jis0208<<14 | 0x30<<7 | 0x4D, - 21068 - 19968: jis0208<<14 | 0x30<<7 | 0x4E, - 21069 - 19968: jis0208<<14 | 0x20<<7 | 0x0F, - 21071 - 19968: jis0208<<14 | 0x30<<7 | 0x4B, - 21076 - 19968: jis0208<<14 | 0x30<<7 | 0x50, - 21077 - 19968: jis0212<<14 | 0x12<<7 | 0x1F, - 21078 - 19968: jis0208<<14 | 0x2A<<7 | 0x15, - 21079 - 19968: jis0212<<14 | 0x12<<7 | 0x20, - 21080 - 19968: jis0212<<14 | 0x12<<7 | 0x21, - 21082 - 19968: jis0212<<14 | 0x12<<7 | 0x22, - 21083 - 19968: jis0208<<14 | 0x18<<7 | 0x43, - 21084 - 19968: jis0212<<14 | 0x12<<7 | 0x23, - 21086 - 19968: jis0208<<14 | 0x30<<7 | 0x4F, - 21087 - 19968: jis0212<<14 | 0x12<<7 | 0x24, - 21088 - 19968: jis0212<<14 | 0x12<<7 | 0x25, - 21089 - 19968: jis0212<<14 | 0x12<<7 | 0x26, - 21091 - 19968: jis0208<<14 | 0x16<<7 | 0x54, - 21092 - 19968: jis0208<<14 | 0x19<<7 | 0x3D, - 21093 - 19968: jis0208<<14 | 0x26<<7 | 0x4C, - 21094 - 19968: jis0212<<14 | 0x12<<7 | 0x27, - 21097 - 19968: jis0208<<14 | 0x30<<7 | 0x53, - 21098 - 19968: jis0208<<14 | 0x30<<7 | 0x51, - 21102 - 19968: jis0212<<14 | 0x12<<7 | 0x28, - 21103 - 19968: jis0208<<14 | 0x28<<7 | 0x5A, - 21104 - 19968: jis0208<<14 | 0x1D<<7 | 0x49, - 21105 - 19968: jis0208<<14 | 0x30<<7 | 0x5A, - 21106 - 19968: jis0208<<14 | 0x12<<7 | 0x43, - 21107 - 19968: jis0208<<14 | 0x30<<7 | 0x54, - 21108 - 19968: jis0208<<14 | 0x30<<7 | 0x52, - 21109 - 19968: jis0208<<14 | 0x20<<7 | 0x2E, - 21111 - 19968: jis0212<<14 | 0x12<<7 | 0x29, - 21112 - 19968: jis0212<<14 | 0x12<<7 | 0x2A, - 21113 - 19968: jis0212<<14 | 0x12<<7 | 0x2B, - 21117 - 19968: jis0208<<14 | 0x30<<7 | 0x56, - 21119 - 19968: jis0208<<14 | 0x30<<7 | 0x55, - 21120 - 19968: jis0212<<14 | 0x12<<7 | 0x2C, - 21122 - 19968: jis0212<<14 | 0x12<<7 | 0x2D, - 21123 - 19968: jis0208<<14 | 0x12<<7 | 0x23, - 21125 - 19968: jis0212<<14 | 0x12<<7 | 0x2E, - 21127 - 19968: jis0208<<14 | 0x16<<7 | 0x3F, - 21128 - 19968: jis0208<<14 | 0x30<<7 | 0x5B, - 21129 - 19968: jis0208<<14 | 0x2D<<7 | 0x0C, - 21130 - 19968: jis0212<<14 | 0x12<<7 | 0x2F, - 21132 - 19968: jis0212<<14 | 0x12<<7 | 0x30, - 21133 - 19968: jis0208<<14 | 0x30<<7 | 0x57, - 21137 - 19968: jis0208<<14 | 0x30<<7 | 0x5C, - 21138 - 19968: jis0208<<14 | 0x30<<7 | 0x59, - 21139 - 19968: jis0212<<14 | 0x12<<7 | 0x31, - 21140 - 19968: jis0208<<14 | 0x30<<7 | 0x58, - 21141 - 19968: jis0212<<14 | 0x12<<7 | 0x32, - 21142 - 19968: jis0212<<14 | 0x12<<7 | 0x33, - 21143 - 19968: jis0212<<14 | 0x12<<7 | 0x34, - 21144 - 19968: jis0212<<14 | 0x12<<7 | 0x35, - 21146 - 19968: jis0212<<14 | 0x12<<7 | 0x36, - 21147 - 19968: jis0208<<14 | 0x2D<<7 | 0x2E, - 21148 - 19968: jis0208<<14 | 0x58<<7 | 0x28, - 21151 - 19968: jis0208<<14 | 0x17<<7 | 0x58, - 21152 - 19968: jis0208<<14 | 0x11<<7 | 0x22, - 21155 - 19968: jis0208<<14 | 0x2D<<7 | 0x53, - 21156 - 19968: jis0212<<14 | 0x12<<7 | 0x38, - 21157 - 19968: jis0212<<14 | 0x12<<7 | 0x39, - 21158 - 19968: jis0208<<14 | 0x58<<7 | 0x29, - 21159 - 19968: jis0212<<14 | 0x12<<7 | 0x3B, - 21161 - 19968: jis0208<<14 | 0x1C<<7 | 0x54, - 21162 - 19968: jis0208<<14 | 0x24<<7 | 0x37, - 21163 - 19968: jis0208<<14 | 0x18<<7 | 0x44, - 21164 - 19968: jis0208<<14 | 0x31<<7 | 0x01, - 21165 - 19968: jis0208<<14 | 0x31<<7 | 0x02, - 21167 - 19968: jis0208<<14 | 0x5A<<7 | 0x1B, - 21168 - 19968: jis0212<<14 | 0x12<<7 | 0x3D, - 21169 - 19968: jis0208<<14 | 0x2D<<7 | 0x44, - 21172 - 19968: jis0208<<14 | 0x2E<<7 | 0x0A, - 21173 - 19968: jis0208<<14 | 0x31<<7 | 0x04, - 21174 - 19968: jis0212<<14 | 0x12<<7 | 0x3E, - 21175 - 19968: jis0212<<14 | 0x12<<7 | 0x3F, - 21176 - 19968: jis0212<<14 | 0x12<<7 | 0x40, - 21177 - 19968: jis0208<<14 | 0x17<<7 | 0x59, - 21178 - 19968: jis0212<<14 | 0x12<<7 | 0x41, - 21179 - 19968: jis0212<<14 | 0x12<<7 | 0x42, - 21180 - 19968: jis0208<<14 | 0x31<<7 | 0x03, - 21181 - 19968: jis0212<<14 | 0x12<<7 | 0x43, - 21182 - 19968: jis0208<<14 | 0x12<<7 | 0x0E, - 21184 - 19968: jis0208<<14 | 0x58<<7 | 0x2A, - 21185 - 19968: jis0208<<14 | 0x31<<7 | 0x05, - 21187 - 19968: jis0208<<14 | 0x2A<<7 | 0x35, - 21188 - 19968: jis0212<<14 | 0x12<<7 | 0x45, - 21189 - 19968: jis0208<<14 | 0x23<<7 | 0x1B, - 21190 - 19968: jis0212<<14 | 0x12<<7 | 0x46, - 21191 - 19968: jis0208<<14 | 0x2C<<7 | 0x05, - 21192 - 19968: jis0212<<14 | 0x12<<7 | 0x47, - 21193 - 19968: jis0208<<14 | 0x29<<7 | 0x38, - 21196 - 19968: jis0212<<14 | 0x12<<7 | 0x48, - 21197 - 19968: jis0208<<14 | 0x31<<7 | 0x06, - 21199 - 19968: jis0212<<14 | 0x12<<7 | 0x49, - 21201 - 19968: jis0212<<14 | 0x12<<7 | 0x4A, - 21202 - 19968: jis0208<<14 | 0x4F<<7 | 0x34, - 21204 - 19968: jis0212<<14 | 0x12<<7 | 0x4B, - 21205 - 19968: jis0208<<14 | 0x25<<7 | 0x0F, - 21206 - 19968: jis0212<<14 | 0x12<<7 | 0x4C, - 21207 - 19968: jis0208<<14 | 0x31<<7 | 0x07, - 21208 - 19968: jis0208<<14 | 0x13<<7 | 0x09, - 21209 - 19968: jis0208<<14 | 0x2B<<7 | 0x12, - 21211 - 19968: jis0208<<14 | 0x58<<7 | 0x2B, - 21212 - 19968: jis0212<<14 | 0x12<<7 | 0x4E, - 21213 - 19968: jis0208<<14 | 0x1D<<7 | 0x00, - 21214 - 19968: jis0208<<14 | 0x31<<7 | 0x08, - 21215 - 19968: jis0208<<14 | 0x29<<7 | 0x46, - 21216 - 19968: jis0208<<14 | 0x31<<7 | 0x0C, - 21217 - 19968: jis0212<<14 | 0x12<<7 | 0x4F, - 21218 - 19968: jis0208<<14 | 0x1F<<7 | 0x09, - 21219 - 19968: jis0208<<14 | 0x31<<7 | 0x09, - 21220 - 19968: jis0208<<14 | 0x15<<7 | 0x2F, - 21221 - 19968: jis0212<<14 | 0x12<<7 | 0x50, - 21222 - 19968: jis0208<<14 | 0x31<<7 | 0x0A, - 21223 - 19968: jis0208<<14 | 0x13<<7 | 0x0A, - 21224 - 19968: jis0212<<14 | 0x12<<7 | 0x51, - 21225 - 19968: jis0212<<14 | 0x12<<7 | 0x52, - 21226 - 19968: jis0212<<14 | 0x12<<7 | 0x53, - 21228 - 19968: jis0212<<14 | 0x12<<7 | 0x54, - 21232 - 19968: jis0212<<14 | 0x12<<7 | 0x55, - 21233 - 19968: jis0212<<14 | 0x12<<7 | 0x56, - 21234 - 19968: jis0208<<14 | 0x16<<7 | 0x0D, - 21235 - 19968: jis0208<<14 | 0x31<<7 | 0x0D, - 21236 - 19968: jis0212<<14 | 0x12<<7 | 0x57, - 21237 - 19968: jis0208<<14 | 0x31<<7 | 0x0E, - 21238 - 19968: jis0212<<14 | 0x12<<7 | 0x58, - 21239 - 19968: jis0212<<14 | 0x12<<7 | 0x59, - 21240 - 19968: jis0208<<14 | 0x31<<7 | 0x0F, - 21241 - 19968: jis0208<<14 | 0x31<<7 | 0x10, - 21242 - 19968: jis0208<<14 | 0x1B<<7 | 0x3A, - 21246 - 19968: jis0208<<14 | 0x17<<7 | 0x5A, - 21247 - 19968: jis0208<<14 | 0x2B<<7 | 0x3D, - 21248 - 19968: jis0208<<14 | 0x58<<7 | 0x2C, - 21249 - 19968: jis0208<<14 | 0x2B<<7 | 0x47, - 21250 - 19968: jis0208<<14 | 0x25<<7 | 0x56, - 21251 - 19968: jis0212<<14 | 0x12<<7 | 0x5B, - 21253 - 19968: jis0208<<14 | 0x29<<7 | 0x50, - 21254 - 19968: jis0208<<14 | 0x31<<7 | 0x11, - 21255 - 19968: jis0208<<14 | 0x58<<7 | 0x2D, - 21256 - 19968: jis0208<<14 | 0x31<<7 | 0x12, - 21258 - 19968: jis0212<<14 | 0x12<<7 | 0x5C, - 21259 - 19968: jis0212<<14 | 0x12<<7 | 0x5D, - 21260 - 19968: jis0212<<14 | 0x13<<7 | 0x00, - 21261 - 19968: jis0208<<14 | 0x31<<7 | 0x14, - 21263 - 19968: jis0208<<14 | 0x31<<7 | 0x16, - 21264 - 19968: jis0208<<14 | 0x31<<7 | 0x15, - 21265 - 19968: jis0212<<14 | 0x13<<7 | 0x01, - 21267 - 19968: jis0212<<14 | 0x13<<7 | 0x02, - 21269 - 19968: jis0208<<14 | 0x31<<7 | 0x17, - 21270 - 19968: jis0208<<14 | 0x11<<7 | 0x1C, - 21271 - 19968: jis0208<<14 | 0x2A<<7 | 0x2B, - 21272 - 19968: jis0212<<14 | 0x13<<7 | 0x03, - 21273 - 19968: jis0208<<14 | 0x19<<7 | 0x5B, - 21274 - 19968: jis0208<<14 | 0x31<<7 | 0x18, - 21275 - 19968: jis0212<<14 | 0x13<<7 | 0x04, - 21276 - 19968: jis0212<<14 | 0x13<<7 | 0x05, - 21277 - 19968: jis0208<<14 | 0x20<<7 | 0x38, - 21278 - 19968: jis0212<<14 | 0x13<<7 | 0x06, - 21279 - 19968: jis0212<<14 | 0x13<<7 | 0x07, - 21280 - 19968: jis0208<<14 | 0x1D<<7 | 0x01, - 21281 - 19968: jis0208<<14 | 0x15<<7 | 0x08, - 21283 - 19968: jis0208<<14 | 0x31<<7 | 0x19, - 21284 - 19968: jis0208<<14 | 0x58<<7 | 0x2E, - 21285 - 19968: jis0212<<14 | 0x13<<7 | 0x08, - 21287 - 19968: jis0212<<14 | 0x13<<7 | 0x09, - 21288 - 19968: jis0212<<14 | 0x13<<7 | 0x0A, - 21289 - 19968: jis0212<<14 | 0x13<<7 | 0x0B, - 21290 - 19968: jis0208<<14 | 0x27<<7 | 0x3A, - 21291 - 19968: jis0212<<14 | 0x13<<7 | 0x0C, - 21292 - 19968: jis0212<<14 | 0x13<<7 | 0x0D, - 21293 - 19968: jis0212<<14 | 0x13<<7 | 0x0E, - 21295 - 19968: jis0208<<14 | 0x31<<7 | 0x1A, - 21296 - 19968: jis0212<<14 | 0x13<<7 | 0x0F, - 21297 - 19968: jis0208<<14 | 0x31<<7 | 0x1B, - 21298 - 19968: jis0212<<14 | 0x13<<7 | 0x10, - 21299 - 19968: jis0208<<14 | 0x31<<7 | 0x1C, - 21301 - 19968: jis0212<<14 | 0x13<<7 | 0x11, - 21304 - 19968: jis0208<<14 | 0x31<<7 | 0x1D, - 21305 - 19968: jis0208<<14 | 0x28<<7 | 0x03, - 21306 - 19968: jis0208<<14 | 0x15<<7 | 0x47, - 21307 - 19968: jis0208<<14 | 0x0F<<7 | 0x44, - 21308 - 19968: jis0212<<14 | 0x13<<7 | 0x12, - 21309 - 19968: jis0212<<14 | 0x13<<7 | 0x13, - 21310 - 19968: jis0212<<14 | 0x13<<7 | 0x14, - 21311 - 19968: jis0208<<14 | 0x25<<7 | 0x1E, - 21312 - 19968: jis0208<<14 | 0x31<<7 | 0x1E, - 21313 - 19968: jis0208<<14 | 0x1C<<7 | 0x1C, - 21314 - 19968: jis0212<<14 | 0x13<<7 | 0x15, - 21315 - 19968: jis0208<<14 | 0x1F<<7 | 0x48, - 21317 - 19968: jis0208<<14 | 0x31<<7 | 0x20, - 21318 - 19968: jis0208<<14 | 0x31<<7 | 0x1F, - 21319 - 19968: jis0208<<14 | 0x1D<<7 | 0x02, - 21320 - 19968: jis0208<<14 | 0x17<<7 | 0x40, - 21321 - 19968: jis0208<<14 | 0x31<<7 | 0x22, - 21322 - 19968: jis0208<<14 | 0x27<<7 | 0x1D, - 21323 - 19968: jis0212<<14 | 0x13<<7 | 0x17, - 21324 - 19968: jis0212<<14 | 0x13<<7 | 0x16, - 21325 - 19968: jis0208<<14 | 0x31<<7 | 0x23, - 21329 - 19968: jis0208<<14 | 0x27<<7 | 0x3B, - 21330 - 19968: jis0208<<14 | 0x21<<7 | 0x13, - 21331 - 19968: jis0208<<14 | 0x21<<7 | 0x4D, - 21332 - 19968: jis0208<<14 | 0x15<<7 | 0x07, - 21335 - 19968: jis0208<<14 | 0x25<<7 | 0x4D, - 21336 - 19968: jis0208<<14 | 0x22<<7 | 0x10, - 21337 - 19968: jis0212<<14 | 0x13<<7 | 0x18, - 21338 - 19968: jis0208<<14 | 0x26<<7 | 0x4D, - 21339 - 19968: jis0212<<14 | 0x13<<7 | 0x19, - 21340 - 19968: jis0208<<14 | 0x2A<<7 | 0x2D, - 21342 - 19968: jis0208<<14 | 0x31<<7 | 0x25, - 21344 - 19968: jis0208<<14 | 0x1F<<7 | 0x49, - 21345 - 19968: jis0212<<14 | 0x13<<7 | 0x1A, - 21347 - 19968: jis0212<<14 | 0x13<<7 | 0x1B, - 21349 - 19968: jis0212<<14 | 0x13<<7 | 0x1C, - 21350 - 19968: jis0208<<14 | 0x16<<7 | 0x14, - 21353 - 19968: jis0208<<14 | 0x31<<7 | 0x26, - 21356 - 19968: jis0212<<14 | 0x13<<7 | 0x1D, - 21357 - 19968: jis0212<<14 | 0x13<<7 | 0x1E, - 21358 - 19968: jis0208<<14 | 0x31<<7 | 0x27, - 21359 - 19968: jis0208<<14 | 0x10<<7 | 0x0B, - 21360 - 19968: jis0208<<14 | 0x0F<<7 | 0x54, - 21361 - 19968: jis0208<<14 | 0x13<<7 | 0x4C, - 21362 - 19968: jis0208<<14 | 0x58<<7 | 0x2F, - 21363 - 19968: jis0208<<14 | 0x21<<7 | 0x07, - 21364 - 19968: jis0208<<14 | 0x14<<7 | 0x30, - 21365 - 19968: jis0208<<14 | 0x2C<<7 | 0x50, - 21367 - 19968: jis0208<<14 | 0x31<<7 | 0x2A, - 21368 - 19968: jis0208<<14 | 0x11<<7 | 0x16, - 21369 - 19968: jis0212<<14 | 0x13<<7 | 0x20, - 21371 - 19968: jis0208<<14 | 0x31<<7 | 0x29, - 21374 - 19968: jis0212<<14 | 0x13<<7 | 0x21, - 21375 - 19968: jis0208<<14 | 0x15<<7 | 0x09, - 21378 - 19968: jis0208<<14 | 0x31<<7 | 0x2B, - 21379 - 19968: jis0212<<14 | 0x13<<7 | 0x22, - 21380 - 19968: jis0208<<14 | 0x2B<<7 | 0x50, - 21383 - 19968: jis0212<<14 | 0x13<<7 | 0x23, - 21384 - 19968: jis0212<<14 | 0x13<<7 | 0x24, - 21390 - 19968: jis0212<<14 | 0x13<<7 | 0x25, - 21395 - 19968: jis0208<<14 | 0x58<<7 | 0x30, - 21396 - 19968: jis0212<<14 | 0x13<<7 | 0x27, - 21398 - 19968: jis0208<<14 | 0x31<<7 | 0x2C, - 21400 - 19968: jis0208<<14 | 0x2D<<7 | 0x31, - 21401 - 19968: jis0212<<14 | 0x13<<7 | 0x28, - 21402 - 19968: jis0208<<14 | 0x17<<7 | 0x5B, - 21405 - 19968: jis0212<<14 | 0x13<<7 | 0x29, - 21407 - 19968: jis0208<<14 | 0x17<<7 | 0x15, - 21408 - 19968: jis0208<<14 | 0x31<<7 | 0x2D, - 21409 - 19968: jis0212<<14 | 0x13<<7 | 0x2A, - 21412 - 19968: jis0212<<14 | 0x13<<7 | 0x2B, - 21413 - 19968: jis0208<<14 | 0x31<<7 | 0x2F, - 21414 - 19968: jis0208<<14 | 0x31<<7 | 0x2E, - 21416 - 19968: jis0208<<14 | 0x1E<<7 | 0x3E, - 21417 - 19968: jis0208<<14 | 0x10<<7 | 0x18, - 21418 - 19968: jis0212<<14 | 0x13<<7 | 0x2C, - 21419 - 19968: jis0212<<14 | 0x13<<7 | 0x2D, - 21421 - 19968: jis0208<<14 | 0x10<<7 | 0x3D, - 21422 - 19968: jis0208<<14 | 0x31<<7 | 0x30, - 21423 - 19968: jis0212<<14 | 0x13<<7 | 0x2E, - 21424 - 19968: jis0208<<14 | 0x31<<7 | 0x31, - 21426 - 19968: jis0208<<14 | 0x58<<7 | 0x31, - 21427 - 19968: jis0208<<14 | 0x17<<7 | 0x16, - 21428 - 19968: jis0212<<14 | 0x13<<7 | 0x30, - 21429 - 19968: jis0212<<14 | 0x13<<7 | 0x31, - 21430 - 19968: jis0208<<14 | 0x31<<7 | 0x32, - 21431 - 19968: jis0212<<14 | 0x13<<7 | 0x32, - 21432 - 19968: jis0212<<14 | 0x13<<7 | 0x33, - 21434 - 19968: jis0212<<14 | 0x13<<7 | 0x34, - 21435 - 19968: jis0208<<14 | 0x14<<7 | 0x4D, - 21437 - 19968: jis0212<<14 | 0x13<<7 | 0x35, - 21440 - 19968: jis0212<<14 | 0x13<<7 | 0x36, - 21442 - 19968: jis0208<<14 | 0x1A<<7 | 0x11, - 21443 - 19968: jis0208<<14 | 0x31<<7 | 0x33, - 21445 - 19968: jis0212<<14 | 0x13<<7 | 0x37, - 21448 - 19968: jis0208<<14 | 0x2A<<7 | 0x53, - 21449 - 19968: jis0208<<14 | 0x19<<7 | 0x14, - 21450 - 19968: jis0208<<14 | 0x14<<7 | 0x39, - 21451 - 19968: jis0208<<14 | 0x2C<<7 | 0x06, - 21452 - 19968: jis0208<<14 | 0x20<<7 | 0x2F, - 21453 - 19968: jis0208<<14 | 0x27<<7 | 0x1E, - 21454 - 19968: jis0208<<14 | 0x1B<<7 | 0x5C, - 21455 - 19968: jis0212<<14 | 0x13<<7 | 0x38, - 21458 - 19968: jis0212<<14 | 0x13<<7 | 0x39, - 21459 - 19968: jis0212<<14 | 0x13<<7 | 0x3A, - 21460 - 19968: jis0208<<14 | 0x1C<<7 | 0x26, - 21461 - 19968: jis0212<<14 | 0x13<<7 | 0x3B, - 21462 - 19968: jis0208<<14 | 0x1B<<7 | 0x47, - 21463 - 19968: jis0208<<14 | 0x1B<<7 | 0x54, - 21465 - 19968: jis0208<<14 | 0x1C<<7 | 0x55, - 21466 - 19968: jis0212<<14 | 0x13<<7 | 0x3C, - 21467 - 19968: jis0208<<14 | 0x27<<7 | 0x1F, - 21469 - 19968: jis0208<<14 | 0x58<<7 | 0x32, - 21470 - 19968: jis0212<<14 | 0x13<<7 | 0x3E, - 21471 - 19968: jis0208<<14 | 0x31<<7 | 0x36, - 21472 - 19968: jis0212<<14 | 0x13<<7 | 0x3F, - 21473 - 19968: jis0208<<14 | 0x10<<7 | 0x22, - 21474 - 19968: jis0208<<14 | 0x20<<7 | 0x30, - 21475 - 19968: jis0208<<14 | 0x17<<7 | 0x5C, - 21476 - 19968: jis0208<<14 | 0x17<<7 | 0x24, - 21477 - 19968: jis0208<<14 | 0x15<<7 | 0x46, - 21478 - 19968: jis0212<<14 | 0x13<<7 | 0x40, - 21479 - 19968: jis0212<<14 | 0x13<<7 | 0x41, - 21480 - 19968: jis0208<<14 | 0x31<<7 | 0x3A, - 21481 - 19968: jis0208<<14 | 0x22<<7 | 0x00, - 21482 - 19968: jis0208<<14 | 0x21<<7 | 0x5D, - 21483 - 19968: jis0208<<14 | 0x15<<7 | 0x0A, - 21484 - 19968: jis0208<<14 | 0x1D<<7 | 0x03, - 21485 - 19968: jis0208<<14 | 0x31<<7 | 0x3B, - 21486 - 19968: jis0208<<14 | 0x31<<7 | 0x39, - 21487 - 19968: jis0208<<14 | 0x11<<7 | 0x23, - 21488 - 19968: jis0208<<14 | 0x21<<7 | 0x45, - 21489 - 19968: jis0208<<14 | 0x1B<<7 | 0x17, - 21490 - 19968: jis0208<<14 | 0x1A<<7 | 0x2A, - 21491 - 19968: jis0208<<14 | 0x10<<7 | 0x05, - 21493 - 19968: jis0212<<14 | 0x13<<7 | 0x42, - 21494 - 19968: jis0208<<14 | 0x12<<7 | 0x4F, - 21495 - 19968: jis0208<<14 | 0x18<<7 | 0x45, - 21496 - 19968: jis0208<<14 | 0x1A<<7 | 0x29, - 21498 - 19968: jis0208<<14 | 0x31<<7 | 0x3C, - 21505 - 19968: jis0208<<14 | 0x31<<7 | 0x3D, - 21506 - 19968: jis0212<<14 | 0x13<<7 | 0x43, - 21507 - 19968: jis0208<<14 | 0x14<<7 | 0x28, - 21508 - 19968: jis0208<<14 | 0x12<<7 | 0x25, - 21512 - 19968: jis0208<<14 | 0x18<<7 | 0x46, - 21513 - 19968: jis0208<<14 | 0x14<<7 | 0x27, - 21514 - 19968: jis0208<<14 | 0x23<<7 | 0x3E, - 21515 - 19968: jis0208<<14 | 0x10<<7 | 0x04, - 21516 - 19968: jis0208<<14 | 0x25<<7 | 0x10, - 21517 - 19968: jis0208<<14 | 0x2B<<7 | 0x1D, - 21518 - 19968: jis0208<<14 | 0x18<<7 | 0x00, - 21519 - 19968: jis0208<<14 | 0x2C<<7 | 0x58, - 21520 - 19968: jis0208<<14 | 0x24<<7 | 0x26, - 21521 - 19968: jis0208<<14 | 0x17<<7 | 0x5D, - 21523 - 19968: jis0212<<14 | 0x13<<7 | 0x44, - 21530 - 19968: jis0212<<14 | 0x13<<7 | 0x45, - 21531 - 19968: jis0208<<14 | 0x16<<7 | 0x0E, - 21533 - 19968: jis0208<<14 | 0x31<<7 | 0x46, - 21535 - 19968: jis0208<<14 | 0x15<<7 | 0x42, - 21536 - 19968: jis0208<<14 | 0x2A<<7 | 0x29, - 21537 - 19968: jis0212<<14 | 0x13<<7 | 0x46, - 21542 - 19968: jis0208<<14 | 0x27<<7 | 0x3C, - 21543 - 19968: jis0212<<14 | 0x13<<7 | 0x47, - 21544 - 19968: jis0212<<14 | 0x13<<7 | 0x48, - 21545 - 19968: jis0208<<14 | 0x31<<7 | 0x45, - 21546 - 19968: jis0212<<14 | 0x13<<7 | 0x49, - 21547 - 19968: jis0208<<14 | 0x13<<7 | 0x3D, - 21548 - 19968: jis0208<<14 | 0x31<<7 | 0x40, - 21549 - 19968: jis0208<<14 | 0x31<<7 | 0x41, - 21550 - 19968: jis0208<<14 | 0x31<<7 | 0x43, - 21551 - 19968: jis0212<<14 | 0x13<<7 | 0x4A, - 21553 - 19968: jis0212<<14 | 0x13<<7 | 0x4B, - 21556 - 19968: jis0212<<14 | 0x13<<7 | 0x4C, - 21557 - 19968: jis0212<<14 | 0x13<<7 | 0x4D, - 21558 - 19968: jis0208<<14 | 0x31<<7 | 0x44, - 21560 - 19968: jis0208<<14 | 0x14<<7 | 0x3A, - 21561 - 19968: jis0208<<14 | 0x1E<<7 | 0x40, - 21563 - 19968: jis0208<<14 | 0x29<<7 | 0x0C, - 21564 - 19968: jis0208<<14 | 0x31<<7 | 0x42, - 21565 - 19968: jis0208<<14 | 0x31<<7 | 0x3E, - 21566 - 19968: jis0208<<14 | 0x17<<7 | 0x42, - 21568 - 19968: jis0208<<14 | 0x31<<7 | 0x3F, - 21570 - 19968: jis0208<<14 | 0x2E<<7 | 0x03, - 21571 - 19968: jis0212<<14 | 0x13<<7 | 0x4E, - 21572 - 19968: jis0212<<14 | 0x13<<7 | 0x4F, - 21574 - 19968: jis0208<<14 | 0x29<<7 | 0x51, - 21575 - 19968: jis0212<<14 | 0x13<<7 | 0x50, - 21576 - 19968: jis0208<<14 | 0x23<<7 | 0x47, - 21577 - 19968: jis0208<<14 | 0x17<<7 | 0x41, - 21578 - 19968: jis0208<<14 | 0x18<<7 | 0x4F, - 21581 - 19968: jis0212<<14 | 0x13<<7 | 0x51, - 21582 - 19968: jis0208<<14 | 0x31<<7 | 0x47, - 21583 - 19968: jis0212<<14 | 0x13<<7 | 0x52, - 21585 - 19968: jis0208<<14 | 0x25<<7 | 0x3C, - 21598 - 19968: jis0212<<14 | 0x13<<7 | 0x53, - 21599 - 19968: jis0208<<14 | 0x31<<7 | 0x4B, - 21602 - 19968: jis0212<<14 | 0x13<<7 | 0x54, - 21604 - 19968: jis0212<<14 | 0x13<<7 | 0x55, - 21606 - 19968: jis0212<<14 | 0x13<<7 | 0x56, - 21607 - 19968: jis0212<<14 | 0x13<<7 | 0x57, - 21608 - 19968: jis0208<<14 | 0x1B<<7 | 0x5D, - 21609 - 19968: jis0212<<14 | 0x13<<7 | 0x58, - 21610 - 19968: jis0208<<14 | 0x1B<<7 | 0x55, - 21611 - 19968: jis0212<<14 | 0x13<<7 | 0x59, - 21613 - 19968: jis0212<<14 | 0x13<<7 | 0x5A, - 21614 - 19968: jis0212<<14 | 0x13<<7 | 0x5B, - 21616 - 19968: jis0208<<14 | 0x31<<7 | 0x4E, - 21617 - 19968: jis0208<<14 | 0x31<<7 | 0x4C, - 21619 - 19968: jis0208<<14 | 0x2B<<7 | 0x02, - 21620 - 19968: jis0212<<14 | 0x13<<7 | 0x5C, - 21621 - 19968: jis0208<<14 | 0x31<<7 | 0x49, - 21622 - 19968: jis0208<<14 | 0x31<<7 | 0x52, - 21623 - 19968: jis0208<<14 | 0x31<<7 | 0x4D, - 21627 - 19968: jis0208<<14 | 0x31<<7 | 0x50, - 21628 - 19968: jis0208<<14 | 0x17<<7 | 0x25, - 21629 - 19968: jis0208<<14 | 0x2B<<7 | 0x1E, - 21631 - 19968: jis0212<<14 | 0x13<<7 | 0x5D, - 21632 - 19968: jis0208<<14 | 0x31<<7 | 0x51, - 21633 - 19968: jis0212<<14 | 0x14<<7 | 0x00, - 21635 - 19968: jis0212<<14 | 0x14<<7 | 0x01, - 21636 - 19968: jis0208<<14 | 0x31<<7 | 0x53, - 21637 - 19968: jis0212<<14 | 0x14<<7 | 0x02, - 21638 - 19968: jis0208<<14 | 0x31<<7 | 0x55, - 21640 - 19968: jis0212<<14 | 0x14<<7 | 0x03, - 21641 - 19968: jis0212<<14 | 0x14<<7 | 0x04, - 21642 - 19968: jis0208<<14 | 0x58<<7 | 0x35, - 21643 - 19968: jis0208<<14 | 0x19<<7 | 0x4F, - 21644 - 19968: jis0208<<14 | 0x2E<<7 | 0x21, - 21645 - 19968: jis0212<<14 | 0x14<<7 | 0x05, - 21646 - 19968: jis0208<<14 | 0x31<<7 | 0x4A, - 21647 - 19968: jis0208<<14 | 0x31<<7 | 0x48, - 21648 - 19968: jis0208<<14 | 0x31<<7 | 0x54, - 21649 - 19968: jis0212<<14 | 0x14<<7 | 0x06, - 21650 - 19968: jis0208<<14 | 0x31<<7 | 0x4F, - 21653 - 19968: jis0212<<14 | 0x14<<7 | 0x07, - 21654 - 19968: jis0212<<14 | 0x14<<7 | 0x08, - 21660 - 19968: jis0208<<14 | 0x58<<7 | 0x34, - 21663 - 19968: jis0212<<14 | 0x14<<7 | 0x0A, - 21665 - 19968: jis0212<<14 | 0x14<<7 | 0x0B, - 21666 - 19968: jis0208<<14 | 0x31<<7 | 0x57, - 21668 - 19968: jis0208<<14 | 0x32<<7 | 0x02, - 21669 - 19968: jis0208<<14 | 0x31<<7 | 0x59, - 21670 - 19968: jis0212<<14 | 0x14<<7 | 0x0C, - 21671 - 19968: jis0212<<14 | 0x14<<7 | 0x0D, - 21672 - 19968: jis0208<<14 | 0x31<<7 | 0x5D, - 21673 - 19968: jis0208<<14 | 0x58<<7 | 0x36, - 21674 - 19968: jis0212<<14 | 0x14<<7 | 0x0F, - 21675 - 19968: jis0208<<14 | 0x32<<7 | 0x00, - 21676 - 19968: jis0208<<14 | 0x31<<7 | 0x5A, - 21677 - 19968: jis0212<<14 | 0x14<<7 | 0x10, - 21678 - 19968: jis0212<<14 | 0x14<<7 | 0x11, - 21679 - 19968: jis0208<<14 | 0x32<<7 | 0x1D, - 21681 - 19968: jis0212<<14 | 0x14<<7 | 0x12, - 21682 - 19968: jis0208<<14 | 0x19<<7 | 0x48, - 21683 - 19968: jis0208<<14 | 0x12<<7 | 0x10, - 21687 - 19968: jis0212<<14 | 0x14<<7 | 0x13, - 21688 - 19968: jis0208<<14 | 0x31<<7 | 0x58, - 21689 - 19968: jis0212<<14 | 0x14<<7 | 0x14, - 21690 - 19968: jis0212<<14 | 0x14<<7 | 0x15, - 21691 - 19968: jis0212<<14 | 0x14<<7 | 0x16, - 21692 - 19968: jis0208<<14 | 0x32<<7 | 0x04, - 21693 - 19968: jis0208<<14 | 0x0F<<7 | 0x55, - 21694 - 19968: jis0208<<14 | 0x32<<7 | 0x03, - 21695 - 19968: jis0212<<14 | 0x14<<7 | 0x17, - 21696 - 19968: jis0208<<14 | 0x0F<<7 | 0x04, - 21697 - 19968: jis0208<<14 | 0x28<<7 | 0x29, - 21698 - 19968: jis0208<<14 | 0x32<<7 | 0x01, - 21700 - 19968: jis0208<<14 | 0x31<<7 | 0x5B, - 21702 - 19968: jis0212<<14 | 0x14<<7 | 0x18, - 21703 - 19968: jis0208<<14 | 0x31<<7 | 0x56, - 21704 - 19968: jis0208<<14 | 0x31<<7 | 0x5C, - 21705 - 19968: jis0208<<14 | 0x19<<7 | 0x27, - 21706 - 19968: jis0212<<14 | 0x14<<7 | 0x19, - 21709 - 19968: jis0212<<14 | 0x14<<7 | 0x1A, - 21710 - 19968: jis0212<<14 | 0x14<<7 | 0x1B, - 21720 - 19968: jis0208<<14 | 0x32<<7 | 0x05, - 21728 - 19968: jis0212<<14 | 0x14<<7 | 0x1C, - 21729 - 19968: jis0208<<14 | 0x0F<<7 | 0x56, - 21730 - 19968: jis0208<<14 | 0x32<<7 | 0x0E, - 21733 - 19968: jis0208<<14 | 0x32<<7 | 0x06, - 21734 - 19968: jis0208<<14 | 0x32<<7 | 0x07, - 21736 - 19968: jis0208<<14 | 0x1D<<7 | 0x04, - 21737 - 19968: jis0208<<14 | 0x2A<<7 | 0x48, - 21738 - 19968: jis0212<<14 | 0x14<<7 | 0x1D, - 21740 - 19968: jis0212<<14 | 0x14<<7 | 0x1E, - 21741 - 19968: jis0208<<14 | 0x32<<7 | 0x0C, - 21742 - 19968: jis0208<<14 | 0x32<<7 | 0x0B, - 21743 - 19968: jis0212<<14 | 0x14<<7 | 0x1F, - 21746 - 19968: jis0208<<14 | 0x24<<7 | 0x0E, - 21750 - 19968: jis0212<<14 | 0x14<<7 | 0x20, - 21754 - 19968: jis0208<<14 | 0x32<<7 | 0x0D, - 21756 - 19968: jis0212<<14 | 0x14<<7 | 0x21, - 21757 - 19968: jis0208<<14 | 0x32<<7 | 0x0A, - 21758 - 19968: jis0212<<14 | 0x14<<7 | 0x22, - 21759 - 19968: jis0208<<14 | 0x58<<7 | 0x37, - 21760 - 19968: jis0212<<14 | 0x14<<7 | 0x24, - 21761 - 19968: jis0212<<14 | 0x14<<7 | 0x25, - 21764 - 19968: jis0208<<14 | 0x10<<7 | 0x13, - 21765 - 19968: jis0212<<14 | 0x14<<7 | 0x26, - 21766 - 19968: jis0208<<14 | 0x19<<7 | 0x15, - 21767 - 19968: jis0208<<14 | 0x1E<<7 | 0x0F, - 21768 - 19968: jis0212<<14 | 0x14<<7 | 0x27, - 21769 - 19968: jis0212<<14 | 0x14<<7 | 0x28, - 21772 - 19968: jis0212<<14 | 0x14<<7 | 0x29, - 21773 - 19968: jis0212<<14 | 0x14<<7 | 0x2A, - 21774 - 19968: jis0212<<14 | 0x14<<7 | 0x2B, - 21775 - 19968: jis0208<<14 | 0x32<<7 | 0x08, - 21776 - 19968: jis0208<<14 | 0x24<<7 | 0x41, - 21780 - 19968: jis0208<<14 | 0x32<<7 | 0x09, - 21781 - 19968: jis0212<<14 | 0x14<<7 | 0x2C, - 21782 - 19968: jis0208<<14 | 0x0F<<7 | 0x01, - 21802 - 19968: jis0212<<14 | 0x14<<7 | 0x2D, - 21803 - 19968: jis0212<<14 | 0x14<<7 | 0x2E, - 21806 - 19968: jis0208<<14 | 0x32<<7 | 0x13, - 21807 - 19968: jis0208<<14 | 0x2C<<7 | 0x02, - 21809 - 19968: jis0208<<14 | 0x1D<<7 | 0x06, - 21810 - 19968: jis0212<<14 | 0x14<<7 | 0x2F, - 21811 - 19968: jis0208<<14 | 0x32<<7 | 0x19, - 21813 - 19968: jis0212<<14 | 0x14<<7 | 0x30, - 21814 - 19968: jis0212<<14 | 0x14<<7 | 0x31, - 21816 - 19968: jis0208<<14 | 0x32<<7 | 0x18, - 21817 - 19968: jis0208<<14 | 0x32<<7 | 0x0F, - 21819 - 19968: jis0212<<14 | 0x14<<7 | 0x32, - 21820 - 19968: jis0212<<14 | 0x14<<7 | 0x33, - 21821 - 19968: jis0212<<14 | 0x14<<7 | 0x34, - 21822 - 19968: jis0208<<14 | 0x21<<7 | 0x22, - 21824 - 19968: jis0208<<14 | 0x32<<7 | 0x10, - 21825 - 19968: jis0212<<14 | 0x14<<7 | 0x35, - 21828 - 19968: jis0208<<14 | 0x21<<7 | 0x4E, - 21829 - 19968: jis0208<<14 | 0x32<<7 | 0x15, - 21830 - 19968: jis0208<<14 | 0x1D<<7 | 0x05, - 21831 - 19968: jis0212<<14 | 0x14<<7 | 0x36, - 21833 - 19968: jis0212<<14 | 0x14<<7 | 0x37, - 21834 - 19968: jis0212<<14 | 0x14<<7 | 0x38, - 21836 - 19968: jis0208<<14 | 0x32<<7 | 0x12, - 21837 - 19968: jis0212<<14 | 0x14<<7 | 0x39, - 21839 - 19968: jis0208<<14 | 0x2B<<7 | 0x43, - 21840 - 19968: jis0212<<14 | 0x14<<7 | 0x3A, - 21841 - 19968: jis0212<<14 | 0x14<<7 | 0x3B, - 21843 - 19968: jis0208<<14 | 0x16<<7 | 0x1B, - 21846 - 19968: jis0208<<14 | 0x32<<7 | 0x16, - 21847 - 19968: jis0208<<14 | 0x32<<7 | 0x17, - 21848 - 19968: jis0212<<14 | 0x14<<7 | 0x3C, - 21850 - 19968: jis0212<<14 | 0x14<<7 | 0x3D, - 21851 - 19968: jis0212<<14 | 0x14<<7 | 0x3E, - 21852 - 19968: jis0208<<14 | 0x32<<7 | 0x14, - 21853 - 19968: jis0208<<14 | 0x32<<7 | 0x1A, - 21854 - 19968: jis0212<<14 | 0x14<<7 | 0x3F, - 21856 - 19968: jis0212<<14 | 0x14<<7 | 0x40, - 21857 - 19968: jis0212<<14 | 0x14<<7 | 0x41, - 21859 - 19968: jis0208<<14 | 0x32<<7 | 0x11, - 21860 - 19968: jis0212<<14 | 0x14<<7 | 0x42, - 21862 - 19968: jis0212<<14 | 0x14<<7 | 0x43, - 21883 - 19968: jis0208<<14 | 0x32<<7 | 0x20, - 21884 - 19968: jis0208<<14 | 0x32<<7 | 0x25, - 21886 - 19968: jis0208<<14 | 0x32<<7 | 0x21, - 21887 - 19968: jis0212<<14 | 0x14<<7 | 0x44, - 21888 - 19968: jis0208<<14 | 0x32<<7 | 0x1C, - 21889 - 19968: jis0212<<14 | 0x14<<7 | 0x45, - 21890 - 19968: jis0212<<14 | 0x14<<7 | 0x46, - 21891 - 19968: jis0208<<14 | 0x32<<7 | 0x26, - 21892 - 19968: jis0208<<14 | 0x20<<7 | 0x10, - 21894 - 19968: jis0208<<14 | 0x58<<7 | 0x38, - 21895 - 19968: jis0208<<14 | 0x32<<7 | 0x28, - 21896 - 19968: jis0212<<14 | 0x14<<7 | 0x48, - 21897 - 19968: jis0208<<14 | 0x18<<7 | 0x01, - 21898 - 19968: jis0208<<14 | 0x32<<7 | 0x1E, - 21899 - 19968: jis0208<<14 | 0x22<<7 | 0x5C, - 21902 - 19968: jis0212<<14 | 0x14<<7 | 0x49, - 21903 - 19968: jis0212<<14 | 0x14<<7 | 0x4A, - 21905 - 19968: jis0212<<14 | 0x14<<7 | 0x4B, - 21906 - 19968: jis0212<<14 | 0x14<<7 | 0x4C, - 21907 - 19968: jis0212<<14 | 0x14<<7 | 0x4D, - 21908 - 19968: jis0212<<14 | 0x14<<7 | 0x4E, - 21911 - 19968: jis0212<<14 | 0x14<<7 | 0x4F, - 21912 - 19968: jis0208<<14 | 0x32<<7 | 0x22, - 21913 - 19968: jis0208<<14 | 0x32<<7 | 0x1B, - 21914 - 19968: jis0208<<14 | 0x13<<7 | 0x0C, - 21916 - 19968: jis0208<<14 | 0x13<<7 | 0x4D, - 21917 - 19968: jis0208<<14 | 0x12<<7 | 0x44, - 21918 - 19968: jis0208<<14 | 0x32<<7 | 0x23, - 21919 - 19968: jis0208<<14 | 0x32<<7 | 0x1F, - 21923 - 19968: jis0212<<14 | 0x14<<7 | 0x50, - 21924 - 19968: jis0212<<14 | 0x14<<7 | 0x51, - 21927 - 19968: jis0208<<14 | 0x16<<7 | 0x55, - 21928 - 19968: jis0208<<14 | 0x32<<7 | 0x29, - 21929 - 19968: jis0208<<14 | 0x32<<7 | 0x27, - 21930 - 19968: jis0208<<14 | 0x20<<7 | 0x32, - 21931 - 19968: jis0208<<14 | 0x14<<7 | 0x29, - 21932 - 19968: jis0208<<14 | 0x15<<7 | 0x0B, - 21933 - 19968: jis0212<<14 | 0x14<<7 | 0x52, - 21934 - 19968: jis0208<<14 | 0x32<<7 | 0x24, - 21936 - 19968: jis0208<<14 | 0x15<<7 | 0x53, - 21938 - 19968: jis0212<<14 | 0x14<<7 | 0x53, - 21942 - 19968: jis0208<<14 | 0x10<<7 | 0x23, - 21951 - 19968: jis0212<<14 | 0x14<<7 | 0x54, - 21953 - 19968: jis0212<<14 | 0x14<<7 | 0x55, - 21955 - 19968: jis0212<<14 | 0x14<<7 | 0x56, - 21956 - 19968: jis0208<<14 | 0x32<<7 | 0x2D, - 21957 - 19968: jis0208<<14 | 0x32<<7 | 0x2B, - 21958 - 19968: jis0212<<14 | 0x14<<7 | 0x57, - 21959 - 19968: jis0208<<14 | 0x33<<7 | 0x06, - 21961 - 19968: jis0212<<14 | 0x14<<7 | 0x58, - 21963 - 19968: jis0212<<14 | 0x14<<7 | 0x59, - 21964 - 19968: jis0212<<14 | 0x14<<7 | 0x5A, - 21966 - 19968: jis0212<<14 | 0x14<<7 | 0x5B, - 21969 - 19968: jis0212<<14 | 0x14<<7 | 0x5C, - 21970 - 19968: jis0212<<14 | 0x14<<7 | 0x5D, - 21971 - 19968: jis0212<<14 | 0x15<<7 | 0x00, - 21972 - 19968: jis0208<<14 | 0x32<<7 | 0x30, - 21975 - 19968: jis0212<<14 | 0x15<<7 | 0x01, - 21976 - 19968: jis0212<<14 | 0x15<<7 | 0x02, - 21978 - 19968: jis0208<<14 | 0x32<<7 | 0x2A, - 21979 - 19968: jis0212<<14 | 0x15<<7 | 0x03, - 21980 - 19968: jis0208<<14 | 0x32<<7 | 0x2E, - 21982 - 19968: jis0212<<14 | 0x15<<7 | 0x04, - 21983 - 19968: jis0208<<14 | 0x32<<7 | 0x2C, - 21986 - 19968: jis0212<<14 | 0x15<<7 | 0x05, - 21987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2B, - 21988 - 19968: jis0208<<14 | 0x32<<7 | 0x2F, - 21993 - 19968: jis0212<<14 | 0x15<<7 | 0x06, - 22006 - 19968: jis0212<<14 | 0x15<<7 | 0x07, - 22007 - 19968: jis0208<<14 | 0x32<<7 | 0x32, - 22009 - 19968: jis0208<<14 | 0x32<<7 | 0x37, - 22013 - 19968: jis0208<<14 | 0x32<<7 | 0x35, - 22014 - 19968: jis0208<<14 | 0x32<<7 | 0x34, - 22015 - 19968: jis0212<<14 | 0x15<<7 | 0x08, - 22021 - 19968: jis0212<<14 | 0x15<<7 | 0x09, - 22022 - 19968: jis0208<<14 | 0x22<<7 | 0x11, - 22024 - 19968: jis0212<<14 | 0x15<<7 | 0x0A, - 22025 - 19968: jis0208<<14 | 0x11<<7 | 0x24, - 22026 - 19968: jis0212<<14 | 0x15<<7 | 0x0B, - 22029 - 19968: jis0212<<14 | 0x15<<7 | 0x0C, - 22030 - 19968: jis0212<<14 | 0x15<<7 | 0x0D, - 22031 - 19968: jis0212<<14 | 0x15<<7 | 0x0E, - 22032 - 19968: jis0212<<14 | 0x15<<7 | 0x0F, - 22033 - 19968: jis0212<<14 | 0x15<<7 | 0x10, - 22034 - 19968: jis0212<<14 | 0x15<<7 | 0x11, - 22036 - 19968: jis0208<<14 | 0x32<<7 | 0x31, - 22038 - 19968: jis0208<<14 | 0x32<<7 | 0x33, - 22039 - 19968: jis0208<<14 | 0x1D<<7 | 0x07, - 22040 - 19968: jis0208<<14 | 0x10<<7 | 0x12, - 22041 - 19968: jis0212<<14 | 0x15<<7 | 0x12, - 22043 - 19968: jis0208<<14 | 0x32<<7 | 0x36, - 22057 - 19968: jis0208<<14 | 0x11<<7 | 0x3D, - 22060 - 19968: jis0212<<14 | 0x15<<7 | 0x13, - 22063 - 19968: jis0208<<14 | 0x32<<7 | 0x41, - 22064 - 19968: jis0212<<14 | 0x15<<7 | 0x14, - 22065 - 19968: jis0208<<14 | 0x1D<<7 | 0x5B, - 22066 - 19968: jis0208<<14 | 0x32<<7 | 0x3D, - 22067 - 19968: jis0212<<14 | 0x15<<7 | 0x15, - 22068 - 19968: jis0208<<14 | 0x32<<7 | 0x3B, - 22069 - 19968: jis0212<<14 | 0x15<<7 | 0x16, - 22070 - 19968: jis0208<<14 | 0x32<<7 | 0x3C, - 22071 - 19968: jis0212<<14 | 0x15<<7 | 0x17, - 22072 - 19968: jis0208<<14 | 0x32<<7 | 0x3E, - 22073 - 19968: jis0212<<14 | 0x15<<7 | 0x18, - 22075 - 19968: jis0212<<14 | 0x15<<7 | 0x19, - 22076 - 19968: jis0212<<14 | 0x15<<7 | 0x1A, - 22077 - 19968: jis0212<<14 | 0x15<<7 | 0x1B, - 22079 - 19968: jis0212<<14 | 0x15<<7 | 0x1C, - 22080 - 19968: jis0212<<14 | 0x15<<7 | 0x1D, - 22081 - 19968: jis0212<<14 | 0x15<<7 | 0x1E, - 22082 - 19968: jis0208<<14 | 0x10<<7 | 0x1C, - 22083 - 19968: jis0212<<14 | 0x15<<7 | 0x1F, - 22084 - 19968: jis0212<<14 | 0x15<<7 | 0x20, - 22086 - 19968: jis0212<<14 | 0x15<<7 | 0x21, - 22089 - 19968: jis0212<<14 | 0x15<<7 | 0x22, - 22091 - 19968: jis0212<<14 | 0x15<<7 | 0x23, - 22092 - 19968: jis0208<<14 | 0x20<<7 | 0x18, - 22093 - 19968: jis0212<<14 | 0x15<<7 | 0x24, - 22094 - 19968: jis0208<<14 | 0x32<<7 | 0x38, - 22095 - 19968: jis0212<<14 | 0x15<<7 | 0x25, - 22096 - 19968: jis0208<<14 | 0x32<<7 | 0x39, - 22100 - 19968: jis0212<<14 | 0x15<<7 | 0x26, - 22107 - 19968: jis0208<<14 | 0x12<<7 | 0x59, - 22110 - 19968: jis0212<<14 | 0x15<<7 | 0x27, - 22112 - 19968: jis0212<<14 | 0x15<<7 | 0x28, - 22113 - 19968: jis0212<<14 | 0x15<<7 | 0x29, - 22114 - 19968: jis0212<<14 | 0x15<<7 | 0x2A, - 22115 - 19968: jis0212<<14 | 0x15<<7 | 0x2B, - 22116 - 19968: jis0208<<14 | 0x32<<7 | 0x40, - 22118 - 19968: jis0212<<14 | 0x15<<7 | 0x2C, - 22120 - 19968: jis0208<<14 | 0x13<<7 | 0x4E, - 22121 - 19968: jis0212<<14 | 0x15<<7 | 0x2D, - 22122 - 19968: jis0208<<14 | 0x32<<7 | 0x43, - 22123 - 19968: jis0208<<14 | 0x32<<7 | 0x3F, - 22124 - 19968: jis0208<<14 | 0x32<<7 | 0x42, - 22125 - 19968: jis0212<<14 | 0x15<<7 | 0x2E, - 22127 - 19968: jis0212<<14 | 0x15<<7 | 0x2F, - 22129 - 19968: jis0212<<14 | 0x15<<7 | 0x30, - 22130 - 19968: jis0212<<14 | 0x15<<7 | 0x31, - 22132 - 19968: jis0208<<14 | 0x29<<7 | 0x0D, - 22133 - 19968: jis0212<<14 | 0x15<<7 | 0x32, - 22136 - 19968: jis0208<<14 | 0x25<<7 | 0x34, - 22138 - 19968: jis0208<<14 | 0x27<<7 | 0x17, - 22144 - 19968: jis0208<<14 | 0x32<<7 | 0x45, - 22148 - 19968: jis0212<<14 | 0x15<<7 | 0x33, - 22149 - 19968: jis0212<<14 | 0x15<<7 | 0x34, - 22150 - 19968: jis0208<<14 | 0x32<<7 | 0x44, - 22151 - 19968: jis0208<<14 | 0x12<<7 | 0x24, - 22152 - 19968: jis0212<<14 | 0x15<<7 | 0x35, - 22154 - 19968: jis0208<<14 | 0x32<<7 | 0x46, - 22155 - 19968: jis0212<<14 | 0x15<<7 | 0x36, - 22156 - 19968: jis0212<<14 | 0x15<<7 | 0x37, - 22159 - 19968: jis0208<<14 | 0x32<<7 | 0x49, - 22164 - 19968: jis0208<<14 | 0x32<<7 | 0x48, - 22165 - 19968: jis0212<<14 | 0x15<<7 | 0x38, - 22169 - 19968: jis0212<<14 | 0x15<<7 | 0x39, - 22170 - 19968: jis0212<<14 | 0x15<<7 | 0x3A, - 22173 - 19968: jis0212<<14 | 0x15<<7 | 0x3B, - 22174 - 19968: jis0212<<14 | 0x15<<7 | 0x3C, - 22175 - 19968: jis0212<<14 | 0x15<<7 | 0x3D, - 22176 - 19968: jis0208<<14 | 0x32<<7 | 0x47, - 22178 - 19968: jis0208<<14 | 0x26<<7 | 0x18, - 22181 - 19968: jis0208<<14 | 0x32<<7 | 0x4A, - 22182 - 19968: jis0212<<14 | 0x15<<7 | 0x3E, - 22183 - 19968: jis0212<<14 | 0x15<<7 | 0x3F, - 22184 - 19968: jis0212<<14 | 0x15<<7 | 0x40, - 22185 - 19968: jis0212<<14 | 0x15<<7 | 0x41, - 22187 - 19968: jis0212<<14 | 0x15<<7 | 0x42, - 22188 - 19968: jis0212<<14 | 0x15<<7 | 0x43, - 22189 - 19968: jis0212<<14 | 0x15<<7 | 0x44, - 22190 - 19968: jis0208<<14 | 0x32<<7 | 0x4B, - 22193 - 19968: jis0212<<14 | 0x15<<7 | 0x45, - 22195 - 19968: jis0212<<14 | 0x15<<7 | 0x46, - 22196 - 19968: jis0208<<14 | 0x32<<7 | 0x4D, - 22198 - 19968: jis0208<<14 | 0x32<<7 | 0x4C, - 22199 - 19968: jis0212<<14 | 0x15<<7 | 0x47, - 22204 - 19968: jis0208<<14 | 0x32<<7 | 0x4F, - 22206 - 19968: jis0212<<14 | 0x15<<7 | 0x48, - 22208 - 19968: jis0208<<14 | 0x32<<7 | 0x52, - 22209 - 19968: jis0208<<14 | 0x32<<7 | 0x50, - 22210 - 19968: jis0208<<14 | 0x32<<7 | 0x4E, - 22211 - 19968: jis0208<<14 | 0x32<<7 | 0x51, - 22213 - 19968: jis0212<<14 | 0x15<<7 | 0x49, - 22216 - 19968: jis0208<<14 | 0x32<<7 | 0x53, - 22217 - 19968: jis0212<<14 | 0x15<<7 | 0x4A, - 22218 - 19968: jis0212<<14 | 0x15<<7 | 0x4B, - 22219 - 19968: jis0212<<14 | 0x15<<7 | 0x4C, - 22220 - 19968: jis0212<<14 | 0x15<<7 | 0x4F, - 22221 - 19968: jis0212<<14 | 0x15<<7 | 0x50, - 22222 - 19968: jis0208<<14 | 0x32<<7 | 0x54, - 22223 - 19968: jis0212<<14 | 0x15<<7 | 0x4D, - 22224 - 19968: jis0212<<14 | 0x15<<7 | 0x4E, - 22225 - 19968: jis0208<<14 | 0x32<<7 | 0x55, - 22227 - 19968: jis0208<<14 | 0x32<<7 | 0x56, - 22231 - 19968: jis0208<<14 | 0x32<<7 | 0x57, - 22232 - 19968: jis0208<<14 | 0x30<<7 | 0x24, - 22233 - 19968: jis0212<<14 | 0x15<<7 | 0x51, - 22234 - 19968: jis0208<<14 | 0x1B<<7 | 0x5B, - 22235 - 19968: jis0208<<14 | 0x1A<<7 | 0x2C, - 22236 - 19968: jis0212<<14 | 0x15<<7 | 0x52, - 22237 - 19968: jis0212<<14 | 0x15<<7 | 0x53, - 22238 - 19968: jis0208<<14 | 0x11<<7 | 0x52, - 22239 - 19968: jis0212<<14 | 0x15<<7 | 0x54, - 22240 - 19968: jis0208<<14 | 0x0F<<7 | 0x57, - 22241 - 19968: jis0212<<14 | 0x15<<7 | 0x55, - 22243 - 19968: jis0208<<14 | 0x22<<7 | 0x23, - 22244 - 19968: jis0212<<14 | 0x15<<7 | 0x56, - 22245 - 19968: jis0212<<14 | 0x15<<7 | 0x57, - 22246 - 19968: jis0212<<14 | 0x15<<7 | 0x58, - 22247 - 19968: jis0212<<14 | 0x15<<7 | 0x59, - 22248 - 19968: jis0212<<14 | 0x15<<7 | 0x5A, - 22251 - 19968: jis0212<<14 | 0x15<<7 | 0x5C, - 22253 - 19968: jis0212<<14 | 0x15<<7 | 0x5D, - 22254 - 19968: jis0208<<14 | 0x32<<7 | 0x58, - 22256 - 19968: jis0208<<14 | 0x19<<7 | 0x03, - 22257 - 19968: jis0212<<14 | 0x15<<7 | 0x5B, - 22258 - 19968: jis0208<<14 | 0x0F<<7 | 0x2E, - 22259 - 19968: jis0208<<14 | 0x1E<<7 | 0x3D, - 22262 - 19968: jis0212<<14 | 0x16<<7 | 0x00, - 22263 - 19968: jis0212<<14 | 0x16<<7 | 0x01, - 22265 - 19968: jis0208<<14 | 0x32<<7 | 0x59, - 22266 - 19968: jis0208<<14 | 0x17<<7 | 0x26, - 22269 - 19968: jis0208<<14 | 0x18<<7 | 0x50, - 22271 - 19968: jis0208<<14 | 0x32<<7 | 0x5B, - 22272 - 19968: jis0208<<14 | 0x32<<7 | 0x5A, - 22273 - 19968: jis0212<<14 | 0x16<<7 | 0x02, - 22274 - 19968: jis0212<<14 | 0x16<<7 | 0x03, - 22275 - 19968: jis0208<<14 | 0x29<<7 | 0x3F, - 22276 - 19968: jis0208<<14 | 0x32<<7 | 0x5C, - 22279 - 19968: jis0212<<14 | 0x16<<7 | 0x04, - 22280 - 19968: jis0208<<14 | 0x33<<7 | 0x00, - 22281 - 19968: jis0208<<14 | 0x32<<7 | 0x5D, - 22282 - 19968: jis0212<<14 | 0x16<<7 | 0x05, - 22283 - 19968: jis0208<<14 | 0x33<<7 | 0x01, - 22284 - 19968: jis0212<<14 | 0x16<<7 | 0x06, - 22285 - 19968: jis0208<<14 | 0x33<<7 | 0x02, - 22287 - 19968: jis0208<<14 | 0x16<<7 | 0x56, - 22289 - 19968: jis0212<<14 | 0x16<<7 | 0x07, - 22290 - 19968: jis0208<<14 | 0x10<<7 | 0x3F, - 22291 - 19968: jis0208<<14 | 0x33<<7 | 0x03, - 22293 - 19968: jis0212<<14 | 0x16<<7 | 0x08, - 22294 - 19968: jis0208<<14 | 0x33<<7 | 0x05, - 22296 - 19968: jis0208<<14 | 0x33<<7 | 0x04, - 22298 - 19968: jis0212<<14 | 0x16<<7 | 0x09, - 22299 - 19968: jis0212<<14 | 0x16<<7 | 0x0A, - 22300 - 19968: jis0208<<14 | 0x33<<7 | 0x07, - 22301 - 19968: jis0212<<14 | 0x16<<7 | 0x0B, - 22303 - 19968: jis0208<<14 | 0x24<<7 | 0x39, - 22304 - 19968: jis0212<<14 | 0x16<<7 | 0x0C, - 22306 - 19968: jis0212<<14 | 0x16<<7 | 0x0D, - 22307 - 19968: jis0212<<14 | 0x16<<7 | 0x0E, - 22308 - 19968: jis0212<<14 | 0x16<<7 | 0x0F, - 22309 - 19968: jis0212<<14 | 0x16<<7 | 0x10, - 22310 - 19968: jis0208<<14 | 0x33<<7 | 0x08, - 22311 - 19968: jis0208<<14 | 0x0F<<7 | 0x14, - 22312 - 19968: jis0208<<14 | 0x19<<7 | 0x3E, - 22313 - 19968: jis0212<<14 | 0x16<<7 | 0x11, - 22314 - 19968: jis0212<<14 | 0x16<<7 | 0x12, - 22316 - 19968: jis0212<<14 | 0x16<<7 | 0x13, - 22317 - 19968: jis0208<<14 | 0x16<<7 | 0x1C, - 22318 - 19968: jis0212<<14 | 0x16<<7 | 0x14, - 22319 - 19968: jis0212<<14 | 0x16<<7 | 0x15, - 22320 - 19968: jis0208<<14 | 0x22<<7 | 0x2E, - 22323 - 19968: jis0212<<14 | 0x16<<7 | 0x16, - 22324 - 19968: jis0212<<14 | 0x16<<7 | 0x17, - 22327 - 19968: jis0208<<14 | 0x33<<7 | 0x09, - 22328 - 19968: jis0208<<14 | 0x33<<7 | 0x0A, - 22331 - 19968: jis0208<<14 | 0x33<<7 | 0x0C, - 22333 - 19968: jis0212<<14 | 0x16<<7 | 0x18, - 22334 - 19968: jis0212<<14 | 0x16<<7 | 0x19, - 22335 - 19968: jis0212<<14 | 0x16<<7 | 0x1A, - 22336 - 19968: jis0208<<14 | 0x33<<7 | 0x0D, - 22338 - 19968: jis0208<<14 | 0x19<<7 | 0x43, - 22341 - 19968: jis0212<<14 | 0x16<<7 | 0x1B, - 22342 - 19968: jis0212<<14 | 0x16<<7 | 0x1C, - 22343 - 19968: jis0208<<14 | 0x15<<7 | 0x30, - 22346 - 19968: jis0208<<14 | 0x2A<<7 | 0x16, - 22348 - 19968: jis0212<<14 | 0x16<<7 | 0x1D, - 22349 - 19968: jis0212<<14 | 0x16<<7 | 0x1E, - 22350 - 19968: jis0208<<14 | 0x33<<7 | 0x0B, - 22351 - 19968: jis0208<<14 | 0x33<<7 | 0x0E, - 22352 - 19968: jis0208<<14 | 0x19<<7 | 0x20, - 22353 - 19968: jis0208<<14 | 0x18<<7 | 0x02, - 22354 - 19968: jis0212<<14 | 0x16<<7 | 0x1F, - 22361 - 19968: jis0208<<14 | 0x58<<7 | 0x39, - 22369 - 19968: jis0208<<14 | 0x33<<7 | 0x12, - 22370 - 19968: jis0212<<14 | 0x16<<7 | 0x20, - 22372 - 19968: jis0208<<14 | 0x19<<7 | 0x04, - 22373 - 19968: jis0208<<14 | 0x58<<7 | 0x3A, - 22374 - 19968: jis0208<<14 | 0x22<<7 | 0x12, - 22375 - 19968: jis0212<<14 | 0x16<<7 | 0x22, - 22376 - 19968: jis0212<<14 | 0x16<<7 | 0x23, - 22377 - 19968: jis0208<<14 | 0x33<<7 | 0x0F, - 22378 - 19968: jis0208<<14 | 0x23<<7 | 0x39, - 22379 - 19968: jis0212<<14 | 0x16<<7 | 0x24, - 22381 - 19968: jis0212<<14 | 0x16<<7 | 0x25, - 22382 - 19968: jis0212<<14 | 0x16<<7 | 0x26, - 22383 - 19968: jis0212<<14 | 0x16<<7 | 0x27, - 22384 - 19968: jis0212<<14 | 0x16<<7 | 0x28, - 22385 - 19968: jis0212<<14 | 0x16<<7 | 0x29, - 22387 - 19968: jis0212<<14 | 0x16<<7 | 0x2A, - 22388 - 19968: jis0212<<14 | 0x16<<7 | 0x2B, - 22389 - 19968: jis0212<<14 | 0x16<<7 | 0x2C, - 22391 - 19968: jis0212<<14 | 0x16<<7 | 0x2D, - 22393 - 19968: jis0212<<14 | 0x16<<7 | 0x2E, - 22394 - 19968: jis0212<<14 | 0x16<<7 | 0x2F, - 22395 - 19968: jis0212<<14 | 0x16<<7 | 0x30, - 22396 - 19968: jis0212<<14 | 0x16<<7 | 0x31, - 22398 - 19968: jis0212<<14 | 0x16<<7 | 0x32, - 22399 - 19968: jis0208<<14 | 0x33<<7 | 0x13, - 22401 - 19968: jis0212<<14 | 0x16<<7 | 0x33, - 22402 - 19968: jis0208<<14 | 0x1E<<7 | 0x41, - 22403 - 19968: jis0212<<14 | 0x16<<7 | 0x34, - 22408 - 19968: jis0208<<14 | 0x33<<7 | 0x11, - 22409 - 19968: jis0208<<14 | 0x33<<7 | 0x14, - 22411 - 19968: jis0208<<14 | 0x16<<7 | 0x1E, - 22412 - 19968: jis0212<<14 | 0x16<<7 | 0x35, - 22419 - 19968: jis0208<<14 | 0x33<<7 | 0x15, - 22420 - 19968: jis0212<<14 | 0x16<<7 | 0x36, - 22421 - 19968: jis0212<<14 | 0x16<<7 | 0x3F, - 22423 - 19968: jis0212<<14 | 0x16<<7 | 0x37, - 22425 - 19968: jis0212<<14 | 0x16<<7 | 0x38, - 22426 - 19968: jis0212<<14 | 0x16<<7 | 0x39, - 22428 - 19968: jis0212<<14 | 0x16<<7 | 0x3A, - 22429 - 19968: jis0212<<14 | 0x16<<7 | 0x3B, - 22430 - 19968: jis0212<<14 | 0x16<<7 | 0x3C, - 22431 - 19968: jis0212<<14 | 0x16<<7 | 0x3D, - 22432 - 19968: jis0208<<14 | 0x33<<7 | 0x16, - 22433 - 19968: jis0212<<14 | 0x16<<7 | 0x3E, - 22434 - 19968: jis0208<<14 | 0x18<<7 | 0x03, - 22435 - 19968: jis0208<<14 | 0x12<<7 | 0x1F, - 22436 - 19968: jis0208<<14 | 0x33<<7 | 0x18, - 22439 - 19968: jis0212<<14 | 0x16<<7 | 0x40, - 22440 - 19968: jis0212<<14 | 0x16<<7 | 0x41, - 22441 - 19968: jis0212<<14 | 0x16<<7 | 0x42, - 22442 - 19968: jis0208<<14 | 0x33<<7 | 0x19, - 22444 - 19968: jis0208<<14 | 0x58<<7 | 0x3B, - 22448 - 19968: jis0208<<14 | 0x33<<7 | 0x1A, - 22451 - 19968: jis0208<<14 | 0x33<<7 | 0x17, - 22456 - 19968: jis0212<<14 | 0x16<<7 | 0x44, - 22461 - 19968: jis0212<<14 | 0x16<<7 | 0x45, - 22464 - 19968: jis0208<<14 | 0x33<<7 | 0x10, - 22467 - 19968: jis0208<<14 | 0x33<<7 | 0x1B, - 22470 - 19968: jis0208<<14 | 0x33<<7 | 0x1C, - 22471 - 19968: jis0208<<14 | 0x58<<7 | 0x3D, - 22472 - 19968: jis0208<<14 | 0x58<<7 | 0x3C, - 22475 - 19968: jis0208<<14 | 0x2A<<7 | 0x43, - 22476 - 19968: jis0212<<14 | 0x16<<7 | 0x48, - 22478 - 19968: jis0208<<14 | 0x1D<<7 | 0x4A, - 22479 - 19968: jis0212<<14 | 0x16<<7 | 0x49, - 22482 - 19968: jis0208<<14 | 0x33<<7 | 0x1E, - 22483 - 19968: jis0208<<14 | 0x33<<7 | 0x1F, - 22484 - 19968: jis0208<<14 | 0x33<<7 | 0x1D, - 22485 - 19968: jis0212<<14 | 0x16<<7 | 0x4A, - 22486 - 19968: jis0208<<14 | 0x33<<7 | 0x21, - 22492 - 19968: jis0208<<14 | 0x26<<7 | 0x17, - 22493 - 19968: jis0212<<14 | 0x16<<7 | 0x4B, - 22494 - 19968: jis0212<<14 | 0x16<<7 | 0x4C, - 22495 - 19968: jis0208<<14 | 0x0F<<7 | 0x47, - 22496 - 19968: jis0208<<14 | 0x28<<7 | 0x35, - 22497 - 19968: jis0212<<14 | 0x16<<7 | 0x5D, - 22499 - 19968: jis0208<<14 | 0x33<<7 | 0x22, - 22500 - 19968: jis0212<<14 | 0x16<<7 | 0x4D, - 22502 - 19968: jis0212<<14 | 0x16<<7 | 0x4E, - 22503 - 19968: jis0212<<14 | 0x16<<7 | 0x4F, - 22505 - 19968: jis0212<<14 | 0x16<<7 | 0x50, - 22509 - 19968: jis0212<<14 | 0x16<<7 | 0x51, - 22512 - 19968: jis0212<<14 | 0x16<<7 | 0x52, - 22516 - 19968: jis0208<<14 | 0x1D<<7 | 0x5C, - 22517 - 19968: jis0212<<14 | 0x16<<7 | 0x53, - 22518 - 19968: jis0212<<14 | 0x16<<7 | 0x54, - 22519 - 19968: jis0208<<14 | 0x1B<<7 | 0x18, - 22520 - 19968: jis0212<<14 | 0x16<<7 | 0x55, - 22521 - 19968: jis0208<<14 | 0x26<<7 | 0x3C, - 22522 - 19968: jis0208<<14 | 0x13<<7 | 0x4F, - 22524 - 19968: jis0208<<14 | 0x19<<7 | 0x4A, - 22525 - 19968: jis0212<<14 | 0x16<<7 | 0x56, - 22526 - 19968: jis0212<<14 | 0x16<<7 | 0x57, - 22527 - 19968: jis0212<<14 | 0x16<<7 | 0x58, - 22528 - 19968: jis0208<<14 | 0x2A<<7 | 0x38, - 22530 - 19968: jis0208<<14 | 0x25<<7 | 0x11, - 22531 - 19968: jis0212<<14 | 0x16<<7 | 0x59, - 22532 - 19968: jis0212<<14 | 0x16<<7 | 0x5A, - 22533 - 19968: jis0208<<14 | 0x16<<7 | 0x57, - 22534 - 19968: jis0208<<14 | 0x21<<7 | 0x2E, - 22536 - 19968: jis0212<<14 | 0x16<<7 | 0x5B, - 22537 - 19968: jis0212<<14 | 0x16<<7 | 0x5C, - 22538 - 19968: jis0208<<14 | 0x33<<7 | 0x20, - 22539 - 19968: jis0208<<14 | 0x33<<7 | 0x23, - 22540 - 19968: jis0212<<14 | 0x17<<7 | 0x00, - 22541 - 19968: jis0212<<14 | 0x17<<7 | 0x01, - 22549 - 19968: jis0208<<14 | 0x21<<7 | 0x23, - 22553 - 19968: jis0208<<14 | 0x33<<7 | 0x24, - 22555 - 19968: jis0212<<14 | 0x17<<7 | 0x02, - 22557 - 19968: jis0208<<14 | 0x33<<7 | 0x25, - 22558 - 19968: jis0212<<14 | 0x17<<7 | 0x03, - 22559 - 19968: jis0212<<14 | 0x17<<7 | 0x04, - 22560 - 19968: jis0212<<14 | 0x17<<7 | 0x05, - 22561 - 19968: jis0208<<14 | 0x33<<7 | 0x27, - 22564 - 19968: jis0208<<14 | 0x23<<7 | 0x48, - 22566 - 19968: jis0212<<14 | 0x17<<7 | 0x06, - 22567 - 19968: jis0212<<14 | 0x17<<7 | 0x07, - 22570 - 19968: jis0208<<14 | 0x13<<7 | 0x0D, - 22573 - 19968: jis0212<<14 | 0x17<<7 | 0x08, - 22575 - 19968: jis0208<<14 | 0x53<<7 | 0x00, - 22576 - 19968: jis0208<<14 | 0x10<<7 | 0x40, - 22577 - 19968: jis0208<<14 | 0x29<<7 | 0x52, - 22578 - 19968: jis0212<<14 | 0x17<<7 | 0x09, - 22580 - 19968: jis0208<<14 | 0x1D<<7 | 0x4B, - 22581 - 19968: jis0208<<14 | 0x24<<7 | 0x27, - 22585 - 19968: jis0212<<14 | 0x17<<7 | 0x0A, - 22586 - 19968: jis0208<<14 | 0x19<<7 | 0x45, - 22589 - 19968: jis0208<<14 | 0x33<<7 | 0x2D, - 22591 - 19968: jis0212<<14 | 0x17<<7 | 0x0B, - 22592 - 19968: jis0208<<14 | 0x29<<7 | 0x1C, - 22593 - 19968: jis0208<<14 | 0x2D<<7 | 0x3C, - 22601 - 19968: jis0212<<14 | 0x17<<7 | 0x0C, - 22602 - 19968: jis0208<<14 | 0x11<<7 | 0x53, - 22603 - 19968: jis0208<<14 | 0x33<<7 | 0x29, - 22604 - 19968: jis0212<<14 | 0x17<<7 | 0x0D, - 22605 - 19968: jis0212<<14 | 0x17<<7 | 0x0E, - 22607 - 19968: jis0212<<14 | 0x17<<7 | 0x0F, - 22608 - 19968: jis0212<<14 | 0x17<<7 | 0x10, - 22609 - 19968: jis0208<<14 | 0x20<<7 | 0x19, - 22610 - 19968: jis0208<<14 | 0x33<<7 | 0x2C, - 22612 - 19968: jis0208<<14 | 0x24<<7 | 0x42, - 22613 - 19968: jis0212<<14 | 0x17<<7 | 0x11, - 22615 - 19968: jis0208<<14 | 0x24<<7 | 0x28, - 22616 - 19968: jis0208<<14 | 0x24<<7 | 0x43, - 22617 - 19968: jis0208<<14 | 0x27<<7 | 0x18, - 22618 - 19968: jis0208<<14 | 0x23<<7 | 0x2C, - 22622 - 19968: jis0208<<14 | 0x19<<7 | 0x28, - 22623 - 19968: jis0212<<14 | 0x17<<7 | 0x12, - 22625 - 19968: jis0212<<14 | 0x17<<7 | 0x13, - 22626 - 19968: jis0208<<14 | 0x33<<7 | 0x28, - 22628 - 19968: jis0212<<14 | 0x17<<7 | 0x14, - 22631 - 19968: jis0212<<14 | 0x17<<7 | 0x15, - 22632 - 19968: jis0212<<14 | 0x17<<7 | 0x16, - 22633 - 19968: jis0208<<14 | 0x10<<7 | 0x55, - 22635 - 19968: jis0208<<14 | 0x24<<7 | 0x15, - 22640 - 19968: jis0208<<14 | 0x33<<7 | 0x2A, - 22642 - 19968: jis0208<<14 | 0x33<<7 | 0x26, - 22645 - 19968: jis0208<<14 | 0x1E<<7 | 0x2F, - 22648 - 19968: jis0212<<14 | 0x17<<7 | 0x17, - 22649 - 19968: jis0208<<14 | 0x33<<7 | 0x2E, - 22652 - 19968: jis0212<<14 | 0x17<<7 | 0x18, - 22654 - 19968: jis0208<<14 | 0x1C<<7 | 0x2D, - 22655 - 19968: jis0212<<14 | 0x17<<7 | 0x19, - 22656 - 19968: jis0212<<14 | 0x17<<7 | 0x1A, - 22657 - 19968: jis0212<<14 | 0x17<<7 | 0x1B, - 22659 - 19968: jis0208<<14 | 0x15<<7 | 0x0C, - 22661 - 19968: jis0208<<14 | 0x33<<7 | 0x2F, - 22663 - 19968: jis0212<<14 | 0x17<<7 | 0x1C, - 22664 - 19968: jis0212<<14 | 0x17<<7 | 0x1D, - 22665 - 19968: jis0212<<14 | 0x17<<7 | 0x1E, - 22666 - 19968: jis0212<<14 | 0x17<<7 | 0x1F, - 22668 - 19968: jis0212<<14 | 0x17<<7 | 0x20, - 22669 - 19968: jis0212<<14 | 0x17<<7 | 0x21, - 22671 - 19968: jis0212<<14 | 0x17<<7 | 0x22, - 22672 - 19968: jis0212<<14 | 0x17<<7 | 0x23, - 22675 - 19968: jis0208<<14 | 0x29<<7 | 0x47, - 22676 - 19968: jis0212<<14 | 0x17<<7 | 0x24, - 22678 - 19968: jis0212<<14 | 0x17<<7 | 0x25, - 22679 - 19968: jis0208<<14 | 0x20<<7 | 0x5C, - 22684 - 19968: jis0208<<14 | 0x23<<7 | 0x25, - 22685 - 19968: jis0212<<14 | 0x17<<7 | 0x26, - 22686 - 19968: jis0208<<14 | 0x58<<7 | 0x40, - 22687 - 19968: jis0208<<14 | 0x33<<7 | 0x31, - 22688 - 19968: jis0212<<14 | 0x17<<7 | 0x27, - 22689 - 19968: jis0212<<14 | 0x17<<7 | 0x28, - 22690 - 19968: jis0212<<14 | 0x17<<7 | 0x29, - 22694 - 19968: jis0212<<14 | 0x17<<7 | 0x2A, - 22696 - 19968: jis0208<<14 | 0x2A<<7 | 0x2E, - 22697 - 19968: jis0212<<14 | 0x17<<7 | 0x2B, - 22699 - 19968: jis0208<<14 | 0x33<<7 | 0x32, - 22702 - 19968: jis0208<<14 | 0x33<<7 | 0x37, - 22705 - 19968: jis0212<<14 | 0x17<<7 | 0x2C, - 22706 - 19968: jis0208<<14 | 0x58<<7 | 0x41, - 22707 - 19968: jis0208<<14 | 0x29<<7 | 0x0E, - 22712 - 19968: jis0208<<14 | 0x33<<7 | 0x36, - 22713 - 19968: jis0208<<14 | 0x33<<7 | 0x30, - 22714 - 19968: jis0208<<14 | 0x33<<7 | 0x33, - 22715 - 19968: jis0208<<14 | 0x33<<7 | 0x35, - 22716 - 19968: jis0212<<14 | 0x17<<7 | 0x2F, - 22718 - 19968: jis0208<<14 | 0x19<<7 | 0x05, - 22721 - 19968: jis0208<<14 | 0x29<<7 | 0x28, - 22722 - 19968: jis0212<<14 | 0x17<<7 | 0x30, - 22724 - 19968: jis0212<<14 | 0x17<<7 | 0x2E, - 22725 - 19968: jis0208<<14 | 0x33<<7 | 0x38, - 22727 - 19968: jis0208<<14 | 0x22<<7 | 0x24, - 22728 - 19968: jis0212<<14 | 0x17<<7 | 0x31, - 22730 - 19968: jis0208<<14 | 0x11<<7 | 0x54, - 22732 - 19968: jis0208<<14 | 0x1D<<7 | 0x4C, - 22733 - 19968: jis0212<<14 | 0x17<<7 | 0x32, - 22734 - 19968: jis0212<<14 | 0x17<<7 | 0x33, - 22736 - 19968: jis0212<<14 | 0x17<<7 | 0x34, - 22737 - 19968: jis0208<<14 | 0x33<<7 | 0x3A, - 22738 - 19968: jis0212<<14 | 0x17<<7 | 0x35, - 22739 - 19968: jis0208<<14 | 0x33<<7 | 0x39, - 22740 - 19968: jis0212<<14 | 0x17<<7 | 0x36, - 22741 - 19968: jis0208<<14 | 0x18<<7 | 0x47, - 22742 - 19968: jis0212<<14 | 0x17<<7 | 0x37, - 22743 - 19968: jis0208<<14 | 0x33<<7 | 0x3B, - 22744 - 19968: jis0208<<14 | 0x33<<7 | 0x3D, - 22745 - 19968: jis0208<<14 | 0x33<<7 | 0x3C, - 22746 - 19968: jis0212<<14 | 0x17<<7 | 0x38, - 22748 - 19968: jis0208<<14 | 0x33<<7 | 0x3F, - 22749 - 19968: jis0212<<14 | 0x17<<7 | 0x39, - 22750 - 19968: jis0208<<14 | 0x33<<7 | 0x34, - 22751 - 19968: jis0208<<14 | 0x33<<7 | 0x41, - 22753 - 19968: jis0212<<14 | 0x17<<7 | 0x3A, - 22754 - 19968: jis0212<<14 | 0x17<<7 | 0x3B, - 22756 - 19968: jis0208<<14 | 0x33<<7 | 0x40, - 22757 - 19968: jis0208<<14 | 0x33<<7 | 0x3E, - 22761 - 19968: jis0212<<14 | 0x17<<7 | 0x3C, - 22763 - 19968: jis0208<<14 | 0x1A<<7 | 0x2D, - 22764 - 19968: jis0208<<14 | 0x1E<<7 | 0x30, - 22766 - 19968: jis0208<<14 | 0x20<<7 | 0x33, - 22767 - 19968: jis0208<<14 | 0x33<<7 | 0x42, - 22768 - 19968: jis0208<<14 | 0x1F<<7 | 0x1B, - 22769 - 19968: jis0208<<14 | 0x0F<<7 | 0x4C, - 22770 - 19968: jis0208<<14 | 0x26<<7 | 0x43, - 22771 - 19968: jis0212<<14 | 0x17<<7 | 0x3D, - 22775 - 19968: jis0208<<14 | 0x23<<7 | 0x3A, - 22777 - 19968: jis0208<<14 | 0x33<<7 | 0x44, - 22778 - 19968: jis0208<<14 | 0x33<<7 | 0x43, - 22779 - 19968: jis0208<<14 | 0x33<<7 | 0x45, - 22780 - 19968: jis0208<<14 | 0x33<<7 | 0x46, - 22781 - 19968: jis0208<<14 | 0x33<<7 | 0x47, - 22786 - 19968: jis0208<<14 | 0x33<<7 | 0x48, - 22789 - 19968: jis0212<<14 | 0x17<<7 | 0x3E, - 22790 - 19968: jis0212<<14 | 0x17<<7 | 0x3F, - 22793 - 19968: jis0208<<14 | 0x29<<7 | 0x30, - 22794 - 19968: jis0208<<14 | 0x33<<7 | 0x49, - 22795 - 19968: jis0208<<14 | 0x58<<7 | 0x42, - 22796 - 19968: jis0212<<14 | 0x17<<7 | 0x41, - 22799 - 19968: jis0208<<14 | 0x11<<7 | 0x25, - 22800 - 19968: jis0208<<14 | 0x33<<7 | 0x4A, - 22802 - 19968: jis0212<<14 | 0x17<<7 | 0x42, - 22803 - 19968: jis0212<<14 | 0x17<<7 | 0x43, - 22804 - 19968: jis0212<<14 | 0x17<<7 | 0x44, - 22805 - 19968: jis0208<<14 | 0x2C<<7 | 0x1B, - 22806 - 19968: jis0208<<14 | 0x12<<7 | 0x0F, - 22808 - 19968: jis0208<<14 | 0x31<<7 | 0x28, - 22809 - 19968: jis0208<<14 | 0x1C<<7 | 0x27, - 22810 - 19968: jis0208<<14 | 0x21<<7 | 0x1E, - 22811 - 19968: jis0208<<14 | 0x33<<7 | 0x4B, - 22812 - 19968: jis0208<<14 | 0x2B<<7 | 0x4A, - 22813 - 19968: jis0212<<14 | 0x17<<7 | 0x46, - 22817 - 19968: jis0212<<14 | 0x17<<7 | 0x47, - 22818 - 19968: jis0208<<14 | 0x2B<<7 | 0x13, - 22819 - 19968: jis0212<<14 | 0x17<<7 | 0x48, - 22820 - 19968: jis0212<<14 | 0x17<<7 | 0x49, - 22821 - 19968: jis0208<<14 | 0x33<<7 | 0x4D, - 22823 - 19968: jis0208<<14 | 0x21<<7 | 0x46, - 22824 - 19968: jis0212<<14 | 0x17<<7 | 0x4A, - 22825 - 19968: jis0208<<14 | 0x24<<7 | 0x16, - 22826 - 19968: jis0208<<14 | 0x21<<7 | 0x1F, - 22827 - 19968: jis0208<<14 | 0x28<<7 | 0x36, - 22828 - 19968: jis0208<<14 | 0x33<<7 | 0x4E, - 22829 - 19968: jis0208<<14 | 0x33<<7 | 0x4F, - 22830 - 19968: jis0208<<14 | 0x10<<7 | 0x5A, - 22831 - 19968: jis0212<<14 | 0x17<<7 | 0x4B, - 22832 - 19968: jis0212<<14 | 0x17<<7 | 0x4C, - 22833 - 19968: jis0208<<14 | 0x1B<<7 | 0x19, - 22834 - 19968: jis0208<<14 | 0x33<<7 | 0x50, - 22835 - 19968: jis0212<<14 | 0x17<<7 | 0x4D, - 22837 - 19968: jis0212<<14 | 0x17<<7 | 0x4E, - 22838 - 19968: jis0212<<14 | 0x17<<7 | 0x4F, - 22839 - 19968: jis0208<<14 | 0x0F<<7 | 0x2F, - 22840 - 19968: jis0208<<14 | 0x33<<7 | 0x51, - 22846 - 19968: jis0208<<14 | 0x33<<7 | 0x52, - 22847 - 19968: jis0212<<14 | 0x17<<7 | 0x50, - 22851 - 19968: jis0212<<14 | 0x17<<7 | 0x51, - 22852 - 19968: jis0208<<14 | 0x10<<7 | 0x41, - 22854 - 19968: jis0212<<14 | 0x17<<7 | 0x52, - 22855 - 19968: jis0208<<14 | 0x13<<7 | 0x50, - 22856 - 19968: jis0208<<14 | 0x25<<7 | 0x3F, - 22857 - 19968: jis0208<<14 | 0x29<<7 | 0x53, - 22862 - 19968: jis0208<<14 | 0x33<<7 | 0x56, - 22863 - 19968: jis0208<<14 | 0x20<<7 | 0x34, - 22864 - 19968: jis0208<<14 | 0x33<<7 | 0x55, - 22865 - 19968: jis0208<<14 | 0x16<<7 | 0x1F, - 22866 - 19968: jis0212<<14 | 0x17<<7 | 0x53, - 22867 - 19968: jis0208<<14 | 0x58<<7 | 0x43, - 22868 - 19968: jis0208<<14 | 0x2A<<7 | 0x3A, - 22869 - 19968: jis0208<<14 | 0x33<<7 | 0x54, - 22871 - 19968: jis0208<<14 | 0x24<<7 | 0x44, - 22872 - 19968: jis0208<<14 | 0x33<<7 | 0x58, - 22873 - 19968: jis0212<<14 | 0x17<<7 | 0x55, - 22874 - 19968: jis0208<<14 | 0x33<<7 | 0x57, - 22875 - 19968: jis0208<<14 | 0x58<<7 | 0x44, - 22877 - 19968: jis0208<<14 | 0x58<<7 | 0x45, - 22878 - 19968: jis0212<<14 | 0x17<<7 | 0x58, - 22879 - 19968: jis0212<<14 | 0x17<<7 | 0x59, - 22880 - 19968: jis0208<<14 | 0x33<<7 | 0x5A, - 22881 - 19968: jis0212<<14 | 0x17<<7 | 0x5A, - 22882 - 19968: jis0208<<14 | 0x33<<7 | 0x59, - 22883 - 19968: jis0208<<14 | 0x58<<7 | 0x46, - 22885 - 19968: jis0208<<14 | 0x10<<7 | 0x5B, - 22887 - 19968: jis0208<<14 | 0x33<<7 | 0x5B, - 22888 - 19968: jis0208<<14 | 0x1D<<7 | 0x08, - 22889 - 19968: jis0208<<14 | 0x33<<7 | 0x5D, - 22890 - 19968: jis0208<<14 | 0x22<<7 | 0x04, - 22891 - 19968: jis0212<<14 | 0x17<<7 | 0x5C, - 22892 - 19968: jis0208<<14 | 0x33<<7 | 0x5C, - 22893 - 19968: jis0212<<14 | 0x17<<7 | 0x5D, - 22894 - 19968: jis0208<<14 | 0x29<<7 | 0x12, - 22895 - 19968: jis0212<<14 | 0x18<<7 | 0x00, - 22898 - 19968: jis0212<<14 | 0x18<<7 | 0x01, - 22899 - 19968: jis0208<<14 | 0x1C<<7 | 0x56, - 22900 - 19968: jis0208<<14 | 0x24<<7 | 0x3A, - 22901 - 19968: jis0212<<14 | 0x18<<7 | 0x02, - 22902 - 19968: jis0212<<14 | 0x18<<7 | 0x03, - 22904 - 19968: jis0208<<14 | 0x34<<7 | 0x00, - 22905 - 19968: jis0212<<14 | 0x18<<7 | 0x04, - 22907 - 19968: jis0212<<14 | 0x18<<7 | 0x05, - 22908 - 19968: jis0212<<14 | 0x18<<7 | 0x06, - 22909 - 19968: jis0208<<14 | 0x18<<7 | 0x04, - 22913 - 19968: jis0208<<14 | 0x34<<7 | 0x01, - 22914 - 19968: jis0208<<14 | 0x26<<7 | 0x00, - 22915 - 19968: jis0208<<14 | 0x27<<7 | 0x3D, - 22916 - 19968: jis0208<<14 | 0x2B<<7 | 0x30, - 22922 - 19968: jis0208<<14 | 0x26<<7 | 0x04, - 22923 - 19968: jis0212<<14 | 0x18<<7 | 0x07, - 22924 - 19968: jis0212<<14 | 0x18<<7 | 0x08, - 22925 - 19968: jis0208<<14 | 0x34<<7 | 0x0A, - 22926 - 19968: jis0212<<14 | 0x18<<7 | 0x09, - 22930 - 19968: jis0212<<14 | 0x18<<7 | 0x0A, - 22931 - 19968: jis0208<<14 | 0x14<<7 | 0x17, - 22933 - 19968: jis0212<<14 | 0x18<<7 | 0x0B, - 22934 - 19968: jis0208<<14 | 0x2C<<7 | 0x24, - 22935 - 19968: jis0212<<14 | 0x18<<7 | 0x0C, - 22937 - 19968: jis0208<<14 | 0x2B<<7 | 0x0E, - 22939 - 19968: jis0208<<14 | 0x35<<7 | 0x0B, - 22941 - 19968: jis0208<<14 | 0x34<<7 | 0x02, - 22943 - 19968: jis0212<<14 | 0x18<<7 | 0x0D, - 22947 - 19968: jis0208<<14 | 0x34<<7 | 0x05, - 22948 - 19968: jis0208<<14 | 0x58<<7 | 0x47, - 22949 - 19968: jis0208<<14 | 0x21<<7 | 0x24, - 22951 - 19968: jis0212<<14 | 0x18<<7 | 0x0F, - 22952 - 19968: jis0208<<14 | 0x2A<<7 | 0x17, - 22956 - 19968: jis0208<<14 | 0x24<<7 | 0x29, - 22957 - 19968: jis0212<<14 | 0x18<<7 | 0x10, - 22958 - 19968: jis0212<<14 | 0x18<<7 | 0x11, - 22959 - 19968: jis0212<<14 | 0x18<<7 | 0x12, - 22960 - 19968: jis0212<<14 | 0x18<<7 | 0x13, - 22962 - 19968: jis0208<<14 | 0x34<<7 | 0x06, - 22963 - 19968: jis0212<<14 | 0x18<<7 | 0x14, - 22967 - 19968: jis0212<<14 | 0x18<<7 | 0x15, - 22969 - 19968: jis0208<<14 | 0x2A<<7 | 0x44, - 22970 - 19968: jis0208<<14 | 0x58<<7 | 0x48, - 22971 - 19968: jis0208<<14 | 0x19<<7 | 0x29, - 22972 - 19968: jis0212<<14 | 0x18<<7 | 0x17, - 22974 - 19968: jis0208<<14 | 0x1D<<7 | 0x09, - 22977 - 19968: jis0212<<14 | 0x18<<7 | 0x18, - 22979 - 19968: jis0212<<14 | 0x18<<7 | 0x19, - 22980 - 19968: jis0212<<14 | 0x18<<7 | 0x1A, - 22982 - 19968: jis0208<<14 | 0x34<<7 | 0x07, - 22984 - 19968: jis0212<<14 | 0x18<<7 | 0x1B, - 22985 - 19968: jis0208<<14 | 0x1A<<7 | 0x2F, - 22986 - 19968: jis0212<<14 | 0x18<<7 | 0x1C, - 22987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2E, - 22989 - 19968: jis0212<<14 | 0x18<<7 | 0x1D, - 22992 - 19968: jis0208<<14 | 0x0F<<7 | 0x18, - 22993 - 19968: jis0208<<14 | 0x17<<7 | 0x27, - 22994 - 19968: jis0212<<14 | 0x18<<7 | 0x1E, - 22995 - 19968: jis0208<<14 | 0x1F<<7 | 0x0A, - 22996 - 19968: jis0208<<14 | 0x0F<<7 | 0x30, - 23001 - 19968: jis0208<<14 | 0x34<<7 | 0x0B, - 23002 - 19968: jis0208<<14 | 0x34<<7 | 0x0C, - 23004 - 19968: jis0208<<14 | 0x34<<7 | 0x09, - 23005 - 19968: jis0212<<14 | 0x18<<7 | 0x1F, - 23006 - 19968: jis0212<<14 | 0x18<<7 | 0x20, - 23007 - 19968: jis0212<<14 | 0x18<<7 | 0x21, - 23011 - 19968: jis0212<<14 | 0x18<<7 | 0x22, - 23012 - 19968: jis0212<<14 | 0x18<<7 | 0x23, - 23013 - 19968: jis0208<<14 | 0x10<<7 | 0x17, - 23014 - 19968: jis0208<<14 | 0x13<<7 | 0x0E, - 23015 - 19968: jis0212<<14 | 0x18<<7 | 0x24, - 23016 - 19968: jis0208<<14 | 0x34<<7 | 0x08, - 23018 - 19968: jis0208<<14 | 0x2B<<7 | 0x24, - 23019 - 19968: jis0208<<14 | 0x28<<7 | 0x10, - 23022 - 19968: jis0212<<14 | 0x18<<7 | 0x25, - 23023 - 19968: jis0212<<14 | 0x18<<7 | 0x26, - 23025 - 19968: jis0212<<14 | 0x18<<7 | 0x27, - 23026 - 19968: jis0212<<14 | 0x18<<7 | 0x28, - 23028 - 19968: jis0212<<14 | 0x18<<7 | 0x29, - 23030 - 19968: jis0208<<14 | 0x0F<<7 | 0x07, - 23031 - 19968: jis0212<<14 | 0x18<<7 | 0x2A, - 23035 - 19968: jis0208<<14 | 0x0F<<7 | 0x58, - 23039 - 19968: jis0208<<14 | 0x1A<<7 | 0x30, - 23040 - 19968: jis0212<<14 | 0x18<<7 | 0x2B, - 23041 - 19968: jis0208<<14 | 0x0F<<7 | 0x31, - 23043 - 19968: jis0208<<14 | 0x0F<<7 | 0x02, - 23044 - 19968: jis0212<<14 | 0x18<<7 | 0x2C, - 23049 - 19968: jis0208<<14 | 0x34<<7 | 0x11, - 23052 - 19968: jis0212<<14 | 0x18<<7 | 0x2D, - 23053 - 19968: jis0212<<14 | 0x18<<7 | 0x2E, - 23054 - 19968: jis0212<<14 | 0x18<<7 | 0x2F, - 23057 - 19968: jis0208<<14 | 0x34<<7 | 0x0F, - 23058 - 19968: jis0212<<14 | 0x18<<7 | 0x30, - 23059 - 19968: jis0212<<14 | 0x18<<7 | 0x31, - 23064 - 19968: jis0208<<14 | 0x2B<<7 | 0x1B, - 23066 - 19968: jis0208<<14 | 0x34<<7 | 0x12, - 23068 - 19968: jis0208<<14 | 0x34<<7 | 0x10, - 23070 - 19968: jis0212<<14 | 0x18<<7 | 0x32, - 23071 - 19968: jis0208<<14 | 0x34<<7 | 0x0E, - 23072 - 19968: jis0208<<14 | 0x1E<<7 | 0x10, - 23075 - 19968: jis0212<<14 | 0x18<<7 | 0x33, - 23076 - 19968: jis0212<<14 | 0x18<<7 | 0x34, - 23077 - 19968: jis0208<<14 | 0x34<<7 | 0x0D, - 23079 - 19968: jis0212<<14 | 0x18<<7 | 0x35, - 23080 - 19968: jis0212<<14 | 0x18<<7 | 0x36, - 23081 - 19968: jis0208<<14 | 0x29<<7 | 0x39, - 23082 - 19968: jis0212<<14 | 0x18<<7 | 0x37, - 23085 - 19968: jis0212<<14 | 0x18<<7 | 0x38, - 23087 - 19968: jis0208<<14 | 0x17<<7 | 0x43, - 23088 - 19968: jis0212<<14 | 0x18<<7 | 0x39, - 23093 - 19968: jis0208<<14 | 0x34<<7 | 0x16, - 23094 - 19968: jis0208<<14 | 0x34<<7 | 0x17, - 23100 - 19968: jis0208<<14 | 0x1D<<7 | 0x0A, - 23104 - 19968: jis0208<<14 | 0x34<<7 | 0x13, - 23105 - 19968: jis0208<<14 | 0x2E<<7 | 0x0B, - 23108 - 19968: jis0212<<14 | 0x18<<7 | 0x3A, - 23109 - 19968: jis0212<<14 | 0x18<<7 | 0x3B, - 23110 - 19968: jis0208<<14 | 0x26<<7 | 0x2B, - 23111 - 19968: jis0212<<14 | 0x18<<7 | 0x3C, - 23112 - 19968: jis0212<<14 | 0x18<<7 | 0x3D, - 23113 - 19968: jis0208<<14 | 0x34<<7 | 0x15, - 23116 - 19968: jis0212<<14 | 0x18<<7 | 0x3E, - 23120 - 19968: jis0212<<14 | 0x18<<7 | 0x3F, - 23125 - 19968: jis0212<<14 | 0x18<<7 | 0x40, - 23130 - 19968: jis0208<<14 | 0x19<<7 | 0x06, - 23134 - 19968: jis0212<<14 | 0x18<<7 | 0x41, - 23138 - 19968: jis0208<<14 | 0x34<<7 | 0x18, - 23139 - 19968: jis0212<<14 | 0x18<<7 | 0x42, - 23141 - 19968: jis0212<<14 | 0x18<<7 | 0x43, - 23142 - 19968: jis0208<<14 | 0x28<<7 | 0x37, - 23143 - 19968: jis0212<<14 | 0x18<<7 | 0x44, - 23146 - 19968: jis0208<<14 | 0x34<<7 | 0x19, - 23148 - 19968: jis0208<<14 | 0x34<<7 | 0x14, - 23149 - 19968: jis0212<<14 | 0x18<<7 | 0x45, - 23159 - 19968: jis0212<<14 | 0x18<<7 | 0x46, - 23162 - 19968: jis0212<<14 | 0x18<<7 | 0x47, - 23163 - 19968: jis0212<<14 | 0x18<<7 | 0x48, - 23166 - 19968: jis0212<<14 | 0x18<<7 | 0x49, - 23167 - 19968: jis0208<<14 | 0x2B<<7 | 0x1A, - 23179 - 19968: jis0212<<14 | 0x18<<7 | 0x4A, - 23184 - 19968: jis0212<<14 | 0x18<<7 | 0x4B, - 23186 - 19968: jis0208<<14 | 0x26<<7 | 0x3D, - 23187 - 19968: jis0212<<14 | 0x18<<7 | 0x4C, - 23190 - 19968: jis0212<<14 | 0x18<<7 | 0x4D, - 23193 - 19968: jis0212<<14 | 0x18<<7 | 0x4E, - 23194 - 19968: jis0208<<14 | 0x34<<7 | 0x1A, - 23195 - 19968: jis0208<<14 | 0x28<<7 | 0x11, - 23196 - 19968: jis0212<<14 | 0x18<<7 | 0x4F, - 23198 - 19968: jis0212<<14 | 0x18<<7 | 0x50, - 23199 - 19968: jis0212<<14 | 0x18<<7 | 0x51, - 23200 - 19968: jis0212<<14 | 0x18<<7 | 0x52, - 23202 - 19968: jis0212<<14 | 0x18<<7 | 0x53, - 23207 - 19968: jis0212<<14 | 0x18<<7 | 0x54, - 23212 - 19968: jis0212<<14 | 0x18<<7 | 0x55, - 23217 - 19968: jis0212<<14 | 0x18<<7 | 0x56, - 23218 - 19968: jis0212<<14 | 0x18<<7 | 0x57, - 23219 - 19968: jis0212<<14 | 0x18<<7 | 0x58, - 23221 - 19968: jis0212<<14 | 0x18<<7 | 0x59, - 23224 - 19968: jis0212<<14 | 0x18<<7 | 0x5A, - 23226 - 19968: jis0212<<14 | 0x18<<7 | 0x5B, - 23227 - 19968: jis0212<<14 | 0x18<<7 | 0x5C, - 23228 - 19968: jis0208<<14 | 0x34<<7 | 0x1B, - 23229 - 19968: jis0208<<14 | 0x34<<7 | 0x1F, - 23230 - 19968: jis0208<<14 | 0x34<<7 | 0x1C, - 23231 - 19968: jis0212<<14 | 0x18<<7 | 0x5D, - 23233 - 19968: jis0208<<14 | 0x11<<7 | 0x26, - 23234 - 19968: jis0208<<14 | 0x34<<7 | 0x1E, - 23236 - 19968: jis0212<<14 | 0x19<<7 | 0x00, - 23238 - 19968: jis0212<<14 | 0x19<<7 | 0x01, - 23240 - 19968: jis0212<<14 | 0x19<<7 | 0x02, - 23241 - 19968: jis0208<<14 | 0x1B<<7 | 0x1A, - 23243 - 19968: jis0208<<14 | 0x34<<7 | 0x1D, - 23244 - 19968: jis0208<<14 | 0x16<<7 | 0x58, - 23247 - 19968: jis0212<<14 | 0x19<<7 | 0x03, - 23248 - 19968: jis0208<<14 | 0x34<<7 | 0x2B, - 23254 - 19968: jis0208<<14 | 0x34<<7 | 0x24, - 23255 - 19968: jis0208<<14 | 0x34<<7 | 0x21, - 23258 - 19968: jis0212<<14 | 0x19<<7 | 0x04, - 23260 - 19968: jis0212<<14 | 0x19<<7 | 0x05, - 23264 - 19968: jis0212<<14 | 0x19<<7 | 0x06, - 23265 - 19968: jis0208<<14 | 0x22<<7 | 0x43, - 23267 - 19968: jis0208<<14 | 0x34<<7 | 0x20, - 23269 - 19968: jis0212<<14 | 0x19<<7 | 0x07, - 23270 - 19968: jis0208<<14 | 0x34<<7 | 0x22, - 23273 - 19968: jis0208<<14 | 0x34<<7 | 0x23, - 23274 - 19968: jis0212<<14 | 0x19<<7 | 0x08, - 23278 - 19968: jis0212<<14 | 0x19<<7 | 0x09, - 23285 - 19968: jis0212<<14 | 0x19<<7 | 0x0A, - 23286 - 19968: jis0212<<14 | 0x19<<7 | 0x0B, - 23290 - 19968: jis0208<<14 | 0x34<<7 | 0x25, - 23291 - 19968: jis0208<<14 | 0x34<<7 | 0x26, - 23293 - 19968: jis0212<<14 | 0x19<<7 | 0x0C, - 23296 - 19968: jis0212<<14 | 0x19<<7 | 0x0D, - 23297 - 19968: jis0212<<14 | 0x19<<7 | 0x0E, - 23304 - 19968: jis0212<<14 | 0x19<<7 | 0x0F, - 23305 - 19968: jis0208<<14 | 0x13<<7 | 0x51, - 23307 - 19968: jis0208<<14 | 0x34<<7 | 0x28, - 23308 - 19968: jis0208<<14 | 0x34<<7 | 0x27, - 23318 - 19968: jis0208<<14 | 0x34<<7 | 0x29, - 23319 - 19968: jis0212<<14 | 0x19<<7 | 0x10, - 23321 - 19968: jis0212<<14 | 0x19<<7 | 0x12, - 23323 - 19968: jis0212<<14 | 0x19<<7 | 0x13, - 23325 - 19968: jis0212<<14 | 0x19<<7 | 0x14, - 23329 - 19968: jis0212<<14 | 0x19<<7 | 0x15, - 23330 - 19968: jis0208<<14 | 0x1D<<7 | 0x4D, - 23333 - 19968: jis0212<<14 | 0x19<<7 | 0x16, - 23338 - 19968: jis0208<<14 | 0x34<<7 | 0x2C, - 23340 - 19968: jis0208<<14 | 0x23<<7 | 0x3B, - 23341 - 19968: jis0212<<14 | 0x19<<7 | 0x17, - 23344 - 19968: jis0208<<14 | 0x10<<7 | 0x24, - 23346 - 19968: jis0208<<14 | 0x34<<7 | 0x2A, - 23348 - 19968: jis0212<<14 | 0x19<<7 | 0x11, - 23350 - 19968: jis0208<<14 | 0x34<<7 | 0x2D, - 23352 - 19968: jis0212<<14 | 0x19<<7 | 0x18, - 23358 - 19968: jis0208<<14 | 0x34<<7 | 0x2E, - 23360 - 19968: jis0208<<14 | 0x34<<7 | 0x31, - 23361 - 19968: jis0212<<14 | 0x19<<7 | 0x19, - 23363 - 19968: jis0208<<14 | 0x34<<7 | 0x2F, - 23365 - 19968: jis0208<<14 | 0x34<<7 | 0x30, - 23371 - 19968: jis0212<<14 | 0x19<<7 | 0x1A, - 23372 - 19968: jis0212<<14 | 0x19<<7 | 0x1B, - 23376 - 19968: jis0208<<14 | 0x1A<<7 | 0x31, - 23377 - 19968: jis0208<<14 | 0x34<<7 | 0x32, - 23378 - 19968: jis0212<<14 | 0x19<<7 | 0x1C, - 23380 - 19968: jis0208<<14 | 0x18<<7 | 0x05, - 23381 - 19968: jis0208<<14 | 0x34<<7 | 0x33, - 23382 - 19968: jis0208<<14 | 0x58<<7 | 0x49, - 23383 - 19968: jis0208<<14 | 0x1A<<7 | 0x59, - 23384 - 19968: jis0208<<14 | 0x21<<7 | 0x17, - 23386 - 19968: jis0208<<14 | 0x34<<7 | 0x34, - 23387 - 19968: jis0208<<14 | 0x34<<7 | 0x35, - 23388 - 19968: jis0208<<14 | 0x1A<<7 | 0x39, - 23389 - 19968: jis0208<<14 | 0x18<<7 | 0x06, - 23390 - 19968: jis0212<<14 | 0x19<<7 | 0x1E, - 23391 - 19968: jis0208<<14 | 0x2B<<7 | 0x31, - 23395 - 19968: jis0208<<14 | 0x14<<7 | 0x07, - 23396 - 19968: jis0208<<14 | 0x17<<7 | 0x28, - 23397 - 19968: jis0208<<14 | 0x34<<7 | 0x36, - 23398 - 19968: jis0208<<14 | 0x12<<7 | 0x37, - 23400 - 19968: jis0212<<14 | 0x19<<7 | 0x1F, - 23401 - 19968: jis0208<<14 | 0x34<<7 | 0x37, - 23403 - 19968: jis0208<<14 | 0x21<<7 | 0x18, - 23406 - 19968: jis0212<<14 | 0x19<<7 | 0x20, - 23407 - 19968: jis0212<<14 | 0x19<<7 | 0x21, - 23408 - 19968: jis0208<<14 | 0x34<<7 | 0x38, - 23409 - 19968: jis0208<<14 | 0x35<<7 | 0x02, - 23411 - 19968: jis0208<<14 | 0x34<<7 | 0x39, - 23413 - 19968: jis0208<<14 | 0x34<<7 | 0x3A, - 23416 - 19968: jis0208<<14 | 0x34<<7 | 0x3B, - 23418 - 19968: jis0208<<14 | 0x34<<7 | 0x3D, - 23420 - 19968: jis0212<<14 | 0x19<<7 | 0x22, - 23421 - 19968: jis0212<<14 | 0x19<<7 | 0x23, - 23422 - 19968: jis0212<<14 | 0x19<<7 | 0x24, - 23423 - 19968: jis0212<<14 | 0x19<<7 | 0x25, - 23424 - 19968: jis0208<<14 | 0x34<<7 | 0x3E, - 23425 - 19968: jis0212<<14 | 0x19<<7 | 0x26, - 23427 - 19968: jis0208<<14 | 0x34<<7 | 0x3F, - 23428 - 19968: jis0212<<14 | 0x19<<7 | 0x27, - 23429 - 19968: jis0208<<14 | 0x21<<7 | 0x4F, - 23430 - 19968: jis0212<<14 | 0x19<<7 | 0x28, - 23431 - 19968: jis0208<<14 | 0x10<<7 | 0x06, - 23432 - 19968: jis0208<<14 | 0x1B<<7 | 0x48, - 23433 - 19968: jis0208<<14 | 0x0F<<7 | 0x21, - 23434 - 19968: jis0212<<14 | 0x19<<7 | 0x29, - 23435 - 19968: jis0208<<14 | 0x20<<7 | 0x36, - 23436 - 19968: jis0208<<14 | 0x13<<7 | 0x0F, - 23437 - 19968: jis0208<<14 | 0x1B<<7 | 0x14, - 23438 - 19968: jis0212<<14 | 0x19<<7 | 0x2A, - 23439 - 19968: jis0208<<14 | 0x18<<7 | 0x07, - 23440 - 19968: jis0212<<14 | 0x19<<7 | 0x2B, - 23441 - 19968: jis0212<<14 | 0x19<<7 | 0x2C, - 23443 - 19968: jis0212<<14 | 0x19<<7 | 0x2D, - 23444 - 19968: jis0212<<14 | 0x19<<7 | 0x2E, - 23445 - 19968: jis0208<<14 | 0x24<<7 | 0x45, - 23446 - 19968: jis0212<<14 | 0x19<<7 | 0x2F, - 23447 - 19968: jis0208<<14 | 0x1C<<7 | 0x00, - 23448 - 19968: jis0208<<14 | 0x13<<7 | 0x10, - 23449 - 19968: jis0208<<14 | 0x22<<7 | 0x47, - 23450 - 19968: jis0208<<14 | 0x23<<7 | 0x49, - 23451 - 19968: jis0208<<14 | 0x0F<<7 | 0x17, - 23452 - 19968: jis0208<<14 | 0x14<<7 | 0x18, - 23453 - 19968: jis0208<<14 | 0x29<<7 | 0x54, - 23455 - 19968: jis0208<<14 | 0x1B<<7 | 0x21, - 23458 - 19968: jis0208<<14 | 0x14<<7 | 0x31, - 23459 - 19968: jis0208<<14 | 0x1F<<7 | 0x4A, - 23460 - 19968: jis0208<<14 | 0x1B<<7 | 0x1B, - 23461 - 19968: jis0208<<14 | 0x2C<<7 | 0x07, - 23462 - 19968: jis0208<<14 | 0x34<<7 | 0x40, - 23464 - 19968: jis0212<<14 | 0x19<<7 | 0x30, - 23465 - 19968: jis0212<<14 | 0x19<<7 | 0x31, - 23468 - 19968: jis0212<<14 | 0x19<<7 | 0x32, - 23469 - 19968: jis0212<<14 | 0x19<<7 | 0x33, - 23470 - 19968: jis0208<<14 | 0x14<<7 | 0x3B, - 23471 - 19968: jis0212<<14 | 0x19<<7 | 0x34, - 23472 - 19968: jis0208<<14 | 0x19<<7 | 0x2A, - 23473 - 19968: jis0212<<14 | 0x19<<7 | 0x35, - 23474 - 19968: jis0212<<14 | 0x19<<7 | 0x36, - 23475 - 19968: jis0208<<14 | 0x12<<7 | 0x11, - 23476 - 19968: jis0208<<14 | 0x10<<7 | 0x42, - 23477 - 19968: jis0208<<14 | 0x1D<<7 | 0x0B, - 23478 - 19968: jis0208<<14 | 0x11<<7 | 0x27, - 23479 - 19968: jis0212<<14 | 0x19<<7 | 0x37, - 23480 - 19968: jis0208<<14 | 0x34<<7 | 0x41, - 23481 - 19968: jis0208<<14 | 0x2C<<7 | 0x25, - 23482 - 19968: jis0212<<14 | 0x19<<7 | 0x38, - 23484 - 19968: jis0212<<14 | 0x19<<7 | 0x39, - 23487 - 19968: jis0208<<14 | 0x1C<<7 | 0x28, - 23488 - 19968: jis0208<<14 | 0x58<<7 | 0x4A, - 23489 - 19968: jis0212<<14 | 0x19<<7 | 0x3B, - 23490 - 19968: jis0208<<14 | 0x1B<<7 | 0x43, - 23491 - 19968: jis0208<<14 | 0x34<<7 | 0x42, - 23492 - 19968: jis0208<<14 | 0x13<<7 | 0x52, - 23493 - 19968: jis0208<<14 | 0x25<<7 | 0x31, - 23494 - 19968: jis0208<<14 | 0x2B<<7 | 0x08, - 23495 - 19968: jis0208<<14 | 0x34<<7 | 0x43, - 23497 - 19968: jis0208<<14 | 0x34<<7 | 0x44, - 23500 - 19968: jis0208<<14 | 0x28<<7 | 0x38, - 23501 - 19968: jis0212<<14 | 0x19<<7 | 0x3C, - 23503 - 19968: jis0212<<14 | 0x19<<7 | 0x3D, - 23504 - 19968: jis0208<<14 | 0x34<<7 | 0x46, - 23506 - 19968: jis0208<<14 | 0x13<<7 | 0x07, - 23507 - 19968: jis0208<<14 | 0x15<<7 | 0x56, - 23508 - 19968: jis0208<<14 | 0x34<<7 | 0x45, - 23510 - 19968: jis0212<<14 | 0x19<<7 | 0x3E, - 23511 - 19968: jis0212<<14 | 0x19<<7 | 0x3F, - 23512 - 19968: jis0208<<14 | 0x58<<7 | 0x4C, - 23513 - 19968: jis0212<<14 | 0x19<<7 | 0x41, - 23514 - 19968: jis0212<<14 | 0x19<<7 | 0x42, - 23515 - 19968: jis0208<<14 | 0x13<<7 | 0x11, - 23517 - 19968: jis0208<<14 | 0x1E<<7 | 0x11, - 23518 - 19968: jis0208<<14 | 0x34<<7 | 0x4A, - 23519 - 19968: jis0208<<14 | 0x1A<<7 | 0x00, - 23520 - 19968: jis0212<<14 | 0x19<<7 | 0x43, - 23521 - 19968: jis0208<<14 | 0x11<<7 | 0x28, - 23522 - 19968: jis0208<<14 | 0x34<<7 | 0x49, - 23524 - 19968: jis0208<<14 | 0x34<<7 | 0x47, - 23525 - 19968: jis0208<<14 | 0x34<<7 | 0x4B, - 23526 - 19968: jis0208<<14 | 0x34<<7 | 0x48, - 23527 - 19968: jis0208<<14 | 0x26<<7 | 0x0A, - 23528 - 19968: jis0208<<14 | 0x3B<<7 | 0x2C, - 23529 - 19968: jis0208<<14 | 0x1E<<7 | 0x12, - 23531 - 19968: jis0208<<14 | 0x34<<7 | 0x4C, - 23532 - 19968: jis0208<<14 | 0x58<<7 | 0x4D, - 23534 - 19968: jis0208<<14 | 0x2D<<7 | 0x1F, - 23535 - 19968: jis0212<<14 | 0x19<<7 | 0x44, - 23536 - 19968: jis0208<<14 | 0x34<<7 | 0x4D, - 23537 - 19968: jis0212<<14 | 0x19<<7 | 0x45, - 23539 - 19968: jis0208<<14 | 0x34<<7 | 0x4F, - 23540 - 19968: jis0212<<14 | 0x19<<7 | 0x46, - 23541 - 19968: jis0208<<14 | 0x22<<7 | 0x5D, - 23542 - 19968: jis0208<<14 | 0x34<<7 | 0x4E, - 23544 - 19968: jis0208<<14 | 0x1F<<7 | 0x02, - 23546 - 19968: jis0208<<14 | 0x1A<<7 | 0x5A, - 23549 - 19968: jis0212<<14 | 0x19<<7 | 0x47, - 23550 - 19968: jis0208<<14 | 0x21<<7 | 0x2F, - 23551 - 19968: jis0208<<14 | 0x1B<<7 | 0x56, - 23553 - 19968: jis0208<<14 | 0x28<<7 | 0x54, - 23554 - 19968: jis0208<<14 | 0x1F<<7 | 0x4B, - 23556 - 19968: jis0208<<14 | 0x1B<<7 | 0x2C, - 23557 - 19968: jis0208<<14 | 0x34<<7 | 0x50, - 23558 - 19968: jis0208<<14 | 0x1D<<7 | 0x0C, - 23559 - 19968: jis0208<<14 | 0x34<<7 | 0x51, - 23560 - 19968: jis0208<<14 | 0x34<<7 | 0x52, - 23561 - 19968: jis0208<<14 | 0x0F<<7 | 0x32, - 23562 - 19968: jis0208<<14 | 0x21<<7 | 0x19, - 23563 - 19968: jis0208<<14 | 0x1E<<7 | 0x31, - 23564 - 19968: jis0212<<14 | 0x19<<7 | 0x48, - 23565 - 19968: jis0208<<14 | 0x34<<7 | 0x53, - 23566 - 19968: jis0208<<14 | 0x25<<7 | 0x12, - 23567 - 19968: jis0208<<14 | 0x1D<<7 | 0x0D, - 23569 - 19968: jis0208<<14 | 0x1D<<7 | 0x0E, - 23571 - 19968: jis0208<<14 | 0x34<<7 | 0x54, - 23574 - 19968: jis0208<<14 | 0x1F<<7 | 0x4C, - 23575 - 19968: jis0212<<14 | 0x19<<7 | 0x49, - 23578 - 19968: jis0208<<14 | 0x1D<<7 | 0x0F, - 23582 - 19968: jis0208<<14 | 0x58<<7 | 0x4E, - 23583 - 19968: jis0212<<14 | 0x19<<7 | 0x4B, - 23584 - 19968: jis0208<<14 | 0x34<<7 | 0x55, - 23586 - 19968: jis0208<<14 | 0x34<<7 | 0x56, - 23587 - 19968: jis0212<<14 | 0x19<<7 | 0x4C, - 23588 - 19968: jis0208<<14 | 0x2B<<7 | 0x3F, - 23590 - 19968: jis0212<<14 | 0x19<<7 | 0x4D, - 23592 - 19968: jis0208<<14 | 0x34<<7 | 0x57, - 23593 - 19968: jis0212<<14 | 0x19<<7 | 0x4E, - 23595 - 19968: jis0212<<14 | 0x19<<7 | 0x4F, - 23596 - 19968: jis0212<<14 | 0x19<<7 | 0x50, - 23597 - 19968: jis0208<<14 | 0x15<<7 | 0x25, - 23598 - 19968: jis0212<<14 | 0x19<<7 | 0x51, - 23600 - 19968: jis0212<<14 | 0x19<<7 | 0x52, - 23601 - 19968: jis0208<<14 | 0x1C<<7 | 0x01, - 23602 - 19968: jis0212<<14 | 0x19<<7 | 0x53, - 23605 - 19968: jis0212<<14 | 0x19<<7 | 0x54, - 23606 - 19968: jis0212<<14 | 0x19<<7 | 0x55, - 23608 - 19968: jis0208<<14 | 0x34<<7 | 0x58, - 23609 - 19968: jis0208<<14 | 0x34<<7 | 0x59, - 23610 - 19968: jis0208<<14 | 0x1B<<7 | 0x3B, - 23611 - 19968: jis0208<<14 | 0x1E<<7 | 0x0B, - 23612 - 19968: jis0208<<14 | 0x25<<7 | 0x53, - 23613 - 19968: jis0208<<14 | 0x1E<<7 | 0x33, - 23614 - 19968: jis0208<<14 | 0x27<<7 | 0x57, - 23615 - 19968: jis0208<<14 | 0x26<<7 | 0x01, - 23616 - 19968: jis0208<<14 | 0x15<<7 | 0x28, - 23617 - 19968: jis0208<<14 | 0x34<<7 | 0x5A, - 23621 - 19968: jis0208<<14 | 0x14<<7 | 0x4E, - 23622 - 19968: jis0208<<14 | 0x34<<7 | 0x5B, - 23624 - 19968: jis0208<<14 | 0x15<<7 | 0x5D, - 23626 - 19968: jis0208<<14 | 0x25<<7 | 0x2E, - 23627 - 19968: jis0208<<14 | 0x11<<7 | 0x0F, - 23629 - 19968: jis0208<<14 | 0x1A<<7 | 0x32, - 23630 - 19968: jis0208<<14 | 0x34<<7 | 0x5C, - 23631 - 19968: jis0208<<14 | 0x35<<7 | 0x01, - 23632 - 19968: jis0208<<14 | 0x35<<7 | 0x00, - 23633 - 19968: jis0208<<14 | 0x15<<7 | 0x5C, - 23635 - 19968: jis0208<<14 | 0x34<<7 | 0x5D, - 23637 - 19968: jis0208<<14 | 0x24<<7 | 0x17, - 23641 - 19968: jis0212<<14 | 0x19<<7 | 0x56, - 23642 - 19968: jis0212<<14 | 0x19<<7 | 0x57, - 23644 - 19968: jis0212<<14 | 0x19<<7 | 0x58, - 23646 - 19968: jis0208<<14 | 0x21<<7 | 0x0F, - 23648 - 19968: jis0208<<14 | 0x24<<7 | 0x2A, - 23649 - 19968: jis0208<<14 | 0x1B<<7 | 0x27, - 23650 - 19968: jis0212<<14 | 0x19<<7 | 0x59, - 23651 - 19968: jis0212<<14 | 0x19<<7 | 0x5A, - 23652 - 19968: jis0208<<14 | 0x20<<7 | 0x37, - 23653 - 19968: jis0208<<14 | 0x2C<<7 | 0x59, - 23655 - 19968: jis0212<<14 | 0x19<<7 | 0x5B, - 23656 - 19968: jis0212<<14 | 0x19<<7 | 0x5C, - 23657 - 19968: jis0212<<14 | 0x19<<7 | 0x5D, - 23660 - 19968: jis0208<<14 | 0x35<<7 | 0x03, - 23661 - 19968: jis0212<<14 | 0x1A<<7 | 0x00, - 23662 - 19968: jis0208<<14 | 0x35<<7 | 0x04, - 23663 - 19968: jis0208<<14 | 0x25<<7 | 0x35, - 23664 - 19968: jis0212<<14 | 0x1A<<7 | 0x01, - 23665 - 19968: jis0208<<14 | 0x1A<<7 | 0x12, - 23668 - 19968: jis0212<<14 | 0x1A<<7 | 0x02, - 23669 - 19968: jis0212<<14 | 0x1A<<7 | 0x03, - 23670 - 19968: jis0208<<14 | 0x35<<7 | 0x06, - 23673 - 19968: jis0208<<14 | 0x35<<7 | 0x07, - 23674 - 19968: jis0212<<14 | 0x1A<<7 | 0x04, - 23675 - 19968: jis0212<<14 | 0x1A<<7 | 0x05, - 23676 - 19968: jis0212<<14 | 0x1A<<7 | 0x06, - 23677 - 19968: jis0212<<14 | 0x1A<<7 | 0x07, - 23687 - 19968: jis0212<<14 | 0x1A<<7 | 0x08, - 23688 - 19968: jis0212<<14 | 0x1A<<7 | 0x09, - 23690 - 19968: jis0212<<14 | 0x1A<<7 | 0x0A, - 23692 - 19968: jis0208<<14 | 0x35<<7 | 0x08, - 23695 - 19968: jis0212<<14 | 0x1A<<7 | 0x0B, - 23696 - 19968: jis0208<<14 | 0x13<<7 | 0x53, - 23697 - 19968: jis0208<<14 | 0x35<<7 | 0x09, - 23698 - 19968: jis0212<<14 | 0x1A<<7 | 0x0C, - 23700 - 19968: jis0208<<14 | 0x35<<7 | 0x0A, - 23709 - 19968: jis0212<<14 | 0x1A<<7 | 0x0D, - 23711 - 19968: jis0212<<14 | 0x1A<<7 | 0x0E, - 23712 - 19968: jis0212<<14 | 0x1A<<7 | 0x0F, - 23713 - 19968: jis0208<<14 | 0x11<<7 | 0x0B, - 23714 - 19968: jis0212<<14 | 0x1A<<7 | 0x10, - 23715 - 19968: jis0212<<14 | 0x1A<<7 | 0x11, - 23718 - 19968: jis0208<<14 | 0x58<<7 | 0x4F, - 23720 - 19968: jis0208<<14 | 0x20<<7 | 0x1A, - 23721 - 19968: jis0208<<14 | 0x13<<7 | 0x43, - 23722 - 19968: jis0212<<14 | 0x1A<<7 | 0x13, - 23723 - 19968: jis0208<<14 | 0x35<<7 | 0x0C, - 23724 - 19968: jis0208<<14 | 0x2B<<7 | 0x07, - 23729 - 19968: jis0208<<14 | 0x21<<7 | 0x31, - 23730 - 19968: jis0212<<14 | 0x1A<<7 | 0x14, - 23731 - 19968: jis0208<<14 | 0x12<<7 | 0x38, - 23732 - 19968: jis0212<<14 | 0x1A<<7 | 0x15, - 23733 - 19968: jis0212<<14 | 0x1A<<7 | 0x16, - 23734 - 19968: jis0208<<14 | 0x35<<7 | 0x0E, - 23735 - 19968: jis0208<<14 | 0x35<<7 | 0x10, - 23736 - 19968: jis0208<<14 | 0x13<<7 | 0x3E, - 23738 - 19968: jis0208<<14 | 0x58<<7 | 0x50, - 23739 - 19968: jis0208<<14 | 0x35<<7 | 0x0D, - 23740 - 19968: jis0208<<14 | 0x35<<7 | 0x0F, - 23742 - 19968: jis0208<<14 | 0x35<<7 | 0x12, - 23749 - 19968: jis0208<<14 | 0x35<<7 | 0x11, - 23751 - 19968: jis0208<<14 | 0x35<<7 | 0x13, - 23753 - 19968: jis0212<<14 | 0x1A<<7 | 0x18, - 23755 - 19968: jis0212<<14 | 0x1A<<7 | 0x19, - 23762 - 19968: jis0212<<14 | 0x1A<<7 | 0x1A, - 23767 - 19968: jis0212<<14 | 0x1A<<7 | 0x1C, - 23769 - 19968: jis0208<<14 | 0x35<<7 | 0x14, - 23773 - 19968: jis0212<<14 | 0x1A<<7 | 0x1B, - 23776 - 19968: jis0208<<14 | 0x25<<7 | 0x1C, - 23777 - 19968: jis0208<<14 | 0x15<<7 | 0x0D, - 23784 - 19968: jis0208<<14 | 0x11<<7 | 0x44, - 23785 - 19968: jis0208<<14 | 0x35<<7 | 0x15, - 23786 - 19968: jis0208<<14 | 0x35<<7 | 0x1A, - 23789 - 19968: jis0208<<14 | 0x35<<7 | 0x18, - 23790 - 19968: jis0212<<14 | 0x1A<<7 | 0x1D, - 23791 - 19968: jis0208<<14 | 0x29<<7 | 0x56, - 23792 - 19968: jis0208<<14 | 0x29<<7 | 0x55, - 23793 - 19968: jis0212<<14 | 0x1A<<7 | 0x1E, - 23794 - 19968: jis0212<<14 | 0x1A<<7 | 0x1F, - 23796 - 19968: jis0212<<14 | 0x1A<<7 | 0x20, - 23797 - 19968: jis0208<<14 | 0x58<<7 | 0x51, - 23798 - 19968: jis0208<<14 | 0x24<<7 | 0x46, - 23802 - 19968: jis0208<<14 | 0x35<<7 | 0x17, - 23803 - 19968: jis0208<<14 | 0x1C<<7 | 0x33, - 23805 - 19968: jis0208<<14 | 0x35<<7 | 0x16, - 23809 - 19968: jis0212<<14 | 0x1A<<7 | 0x21, - 23814 - 19968: jis0212<<14 | 0x1A<<7 | 0x22, - 23815 - 19968: jis0208<<14 | 0x1E<<7 | 0x51, - 23819 - 19968: jis0208<<14 | 0x35<<7 | 0x1B, - 23821 - 19968: jis0212<<14 | 0x1A<<7 | 0x23, - 23822 - 19968: jis0208<<14 | 0x19<<7 | 0x49, - 23825 - 19968: jis0208<<14 | 0x35<<7 | 0x21, - 23826 - 19968: jis0212<<14 | 0x1A<<7 | 0x24, - 23828 - 19968: jis0208<<14 | 0x35<<7 | 0x22, - 23829 - 19968: jis0208<<14 | 0x35<<7 | 0x1C, - 23830 - 19968: jis0208<<14 | 0x12<<7 | 0x12, - 23831 - 19968: jis0208<<14 | 0x35<<7 | 0x1D, - 23832 - 19968: jis0208<<14 | 0x35<<7 | 0x26, - 23833 - 19968: jis0208<<14 | 0x35<<7 | 0x25, - 23834 - 19968: jis0208<<14 | 0x35<<7 | 0x24, - 23835 - 19968: jis0208<<14 | 0x35<<7 | 0x20, - 23839 - 19968: jis0208<<14 | 0x35<<7 | 0x1F, - 23842 - 19968: jis0208<<14 | 0x35<<7 | 0x23, - 23843 - 19968: jis0212<<14 | 0x1A<<7 | 0x26, - 23844 - 19968: jis0212<<14 | 0x1A<<7 | 0x27, - 23846 - 19968: jis0212<<14 | 0x1A<<7 | 0x28, - 23847 - 19968: jis0208<<14 | 0x58<<7 | 0x52, - 23849 - 19968: jis0208<<14 | 0x29<<7 | 0x57, - 23851 - 19968: jis0212<<14 | 0x1A<<7 | 0x25, - 23857 - 19968: jis0212<<14 | 0x1A<<7 | 0x2A, - 23860 - 19968: jis0212<<14 | 0x1A<<7 | 0x2B, - 23865 - 19968: jis0212<<14 | 0x1A<<7 | 0x2C, - 23869 - 19968: jis0212<<14 | 0x1A<<7 | 0x2D, - 23871 - 19968: jis0212<<14 | 0x1A<<7 | 0x2E, - 23874 - 19968: jis0208<<14 | 0x58<<7 | 0x55, - 23875 - 19968: jis0212<<14 | 0x1A<<7 | 0x30, - 23878 - 19968: jis0212<<14 | 0x1A<<7 | 0x31, - 23880 - 19968: jis0212<<14 | 0x1A<<7 | 0x32, - 23882 - 19968: jis0212<<14 | 0x1A<<7 | 0x36, - 23883 - 19968: jis0208<<14 | 0x35<<7 | 0x2A, - 23884 - 19968: jis0208<<14 | 0x35<<7 | 0x27, - 23886 - 19968: jis0208<<14 | 0x35<<7 | 0x29, - 23888 - 19968: jis0208<<14 | 0x2C<<7 | 0x51, - 23889 - 19968: jis0212<<14 | 0x1A<<7 | 0x34, - 23890 - 19968: jis0208<<14 | 0x35<<7 | 0x28, - 23891 - 19968: jis0208<<14 | 0x58<<7 | 0x53, - 23893 - 19968: jis0212<<14 | 0x1A<<7 | 0x33, - 23897 - 19968: jis0212<<14 | 0x1A<<7 | 0x35, - 23900 - 19968: jis0208<<14 | 0x35<<7 | 0x1E, - 23903 - 19968: jis0212<<14 | 0x1A<<7 | 0x37, - 23904 - 19968: jis0212<<14 | 0x1A<<7 | 0x38, - 23905 - 19968: jis0212<<14 | 0x1A<<7 | 0x39, - 23906 - 19968: jis0212<<14 | 0x1A<<7 | 0x3A, - 23908 - 19968: jis0212<<14 | 0x1A<<7 | 0x3B, - 23913 - 19968: jis0208<<14 | 0x1E<<7 | 0x52, - 23914 - 19968: jis0212<<14 | 0x1A<<7 | 0x3C, - 23916 - 19968: jis0208<<14 | 0x35<<7 | 0x2B, - 23917 - 19968: jis0208<<14 | 0x58<<7 | 0x56, - 23919 - 19968: jis0208<<14 | 0x19<<7 | 0x16, - 23920 - 19968: jis0212<<14 | 0x1A<<7 | 0x3E, - 23923 - 19968: jis0208<<14 | 0x35<<7 | 0x2C, - 23926 - 19968: jis0208<<14 | 0x35<<7 | 0x2D, - 23929 - 19968: jis0212<<14 | 0x1A<<7 | 0x3F, - 23930 - 19968: jis0212<<14 | 0x1A<<7 | 0x40, - 23934 - 19968: jis0212<<14 | 0x1A<<7 | 0x41, - 23935 - 19968: jis0212<<14 | 0x1A<<7 | 0x42, - 23937 - 19968: jis0212<<14 | 0x1A<<7 | 0x43, - 23938 - 19968: jis0208<<14 | 0x35<<7 | 0x30, - 23939 - 19968: jis0212<<14 | 0x1A<<7 | 0x44, - 23940 - 19968: jis0208<<14 | 0x35<<7 | 0x2F, - 23943 - 19968: jis0208<<14 | 0x35<<7 | 0x2E, - 23944 - 19968: jis0212<<14 | 0x1A<<7 | 0x45, - 23946 - 19968: jis0212<<14 | 0x1A<<7 | 0x46, - 23947 - 19968: jis0208<<14 | 0x24<<7 | 0x47, - 23948 - 19968: jis0208<<14 | 0x35<<7 | 0x19, - 23952 - 19968: jis0208<<14 | 0x35<<7 | 0x36, - 23954 - 19968: jis0212<<14 | 0x1A<<7 | 0x47, - 23955 - 19968: jis0212<<14 | 0x1A<<7 | 0x48, - 23956 - 19968: jis0212<<14 | 0x1A<<7 | 0x49, - 23957 - 19968: jis0212<<14 | 0x1A<<7 | 0x4A, - 23961 - 19968: jis0212<<14 | 0x1A<<7 | 0x4B, - 23963 - 19968: jis0212<<14 | 0x1A<<7 | 0x4C, - 23965 - 19968: jis0208<<14 | 0x35<<7 | 0x32, - 23967 - 19968: jis0212<<14 | 0x1A<<7 | 0x4D, - 23968 - 19968: jis0212<<14 | 0x1A<<7 | 0x4E, - 23970 - 19968: jis0208<<14 | 0x35<<7 | 0x31, - 23975 - 19968: jis0212<<14 | 0x1A<<7 | 0x4F, - 23979 - 19968: jis0212<<14 | 0x1A<<7 | 0x50, - 23980 - 19968: jis0208<<14 | 0x35<<7 | 0x33, - 23982 - 19968: jis0208<<14 | 0x35<<7 | 0x34, - 23984 - 19968: jis0212<<14 | 0x1A<<7 | 0x51, - 23986 - 19968: jis0212<<14 | 0x45<<7 | 0x53, - 23988 - 19968: jis0212<<14 | 0x1A<<7 | 0x52, - 23991 - 19968: jis0208<<14 | 0x35<<7 | 0x37, - 23992 - 19968: jis0208<<14 | 0x58<<7 | 0x57, - 23993 - 19968: jis0208<<14 | 0x58<<7 | 0x58, - 23994 - 19968: jis0208<<14 | 0x2D<<7 | 0x45, - 23996 - 19968: jis0208<<14 | 0x35<<7 | 0x38, - 23997 - 19968: jis0208<<14 | 0x35<<7 | 0x35, - 24003 - 19968: jis0212<<14 | 0x1A<<7 | 0x55, - 24007 - 19968: jis0212<<14 | 0x1A<<7 | 0x56, - 24009 - 19968: jis0208<<14 | 0x35<<7 | 0x39, - 24011 - 19968: jis0212<<14 | 0x1A<<7 | 0x57, - 24012 - 19968: jis0208<<14 | 0x13<<7 | 0x3F, - 24013 - 19968: jis0208<<14 | 0x35<<7 | 0x3A, - 24014 - 19968: jis0212<<14 | 0x1A<<7 | 0x59, - 24016 - 19968: jis0208<<14 | 0x58<<7 | 0x59, - 24018 - 19968: jis0208<<14 | 0x35<<7 | 0x3C, - 24019 - 19968: jis0208<<14 | 0x35<<7 | 0x3B, - 24022 - 19968: jis0208<<14 | 0x35<<7 | 0x3D, - 24024 - 19968: jis0212<<14 | 0x1A<<7 | 0x5A, - 24025 - 19968: jis0212<<14 | 0x1A<<7 | 0x5B, - 24027 - 19968: jis0208<<14 | 0x35<<7 | 0x3E, - 24029 - 19968: jis0208<<14 | 0x1F<<7 | 0x4D, - 24030 - 19968: jis0208<<14 | 0x1C<<7 | 0x02, - 24032 - 19968: jis0212<<14 | 0x1A<<7 | 0x5C, - 24033 - 19968: jis0208<<14 | 0x1C<<7 | 0x43, - 24035 - 19968: jis0208<<14 | 0x20<<7 | 0x42, - 24036 - 19968: jis0212<<14 | 0x1A<<7 | 0x5D, - 24037 - 19968: jis0208<<14 | 0x18<<7 | 0x08, - 24038 - 19968: jis0208<<14 | 0x19<<7 | 0x17, - 24039 - 19968: jis0208<<14 | 0x18<<7 | 0x09, - 24040 - 19968: jis0208<<14 | 0x14<<7 | 0x4F, - 24041 - 19968: jis0212<<14 | 0x1B<<7 | 0x00, - 24043 - 19968: jis0208<<14 | 0x35<<7 | 0x3F, - 24046 - 19968: jis0208<<14 | 0x19<<7 | 0x18, - 24049 - 19968: jis0208<<14 | 0x17<<7 | 0x29, - 24050 - 19968: jis0208<<14 | 0x35<<7 | 0x40, - 24051 - 19968: jis0208<<14 | 0x2B<<7 | 0x05, - 24052 - 19968: jis0208<<14 | 0x26<<7 | 0x22, - 24053 - 19968: jis0208<<14 | 0x35<<7 | 0x41, - 24055 - 19968: jis0208<<14 | 0x18<<7 | 0x0A, - 24056 - 19968: jis0212<<14 | 0x1B<<7 | 0x01, - 24057 - 19968: jis0212<<14 | 0x1B<<7 | 0x02, - 24059 - 19968: jis0208<<14 | 0x13<<7 | 0x0B, - 24061 - 19968: jis0208<<14 | 0x22<<7 | 0x06, - 24062 - 19968: jis0208<<14 | 0x15<<7 | 0x31, - 24064 - 19968: jis0212<<14 | 0x1B<<7 | 0x03, - 24066 - 19968: jis0208<<14 | 0x1A<<7 | 0x33, - 24067 - 19968: jis0208<<14 | 0x28<<7 | 0x3A, - 24070 - 19968: jis0208<<14 | 0x27<<7 | 0x20, - 24071 - 19968: jis0212<<14 | 0x1B<<7 | 0x04, - 24075 - 19968: jis0208<<14 | 0x35<<7 | 0x42, - 24076 - 19968: jis0208<<14 | 0x13<<7 | 0x54, - 24077 - 19968: jis0212<<14 | 0x1B<<7 | 0x05, - 24081 - 19968: jis0208<<14 | 0x35<<7 | 0x45, - 24082 - 19968: jis0212<<14 | 0x1B<<7 | 0x06, - 24084 - 19968: jis0212<<14 | 0x1B<<7 | 0x07, - 24085 - 19968: jis0212<<14 | 0x1B<<7 | 0x08, - 24086 - 19968: jis0208<<14 | 0x23<<7 | 0x00, - 24088 - 19968: jis0212<<14 | 0x1B<<7 | 0x09, - 24089 - 19968: jis0208<<14 | 0x35<<7 | 0x44, - 24090 - 19968: jis0208<<14 | 0x35<<7 | 0x43, - 24091 - 19968: jis0208<<14 | 0x35<<7 | 0x46, - 24093 - 19968: jis0208<<14 | 0x23<<7 | 0x4A, - 24095 - 19968: jis0212<<14 | 0x1B<<7 | 0x0A, - 24096 - 19968: jis0212<<14 | 0x1B<<7 | 0x0B, - 24101 - 19968: jis0208<<14 | 0x1E<<7 | 0x42, - 24104 - 19968: jis0212<<14 | 0x1B<<7 | 0x0D, - 24107 - 19968: jis0208<<14 | 0x1A<<7 | 0x34, - 24109 - 19968: jis0208<<14 | 0x1F<<7 | 0x29, - 24110 - 19968: jis0212<<14 | 0x1B<<7 | 0x0C, - 24111 - 19968: jis0208<<14 | 0x21<<7 | 0x32, - 24112 - 19968: jis0208<<14 | 0x14<<7 | 0x01, - 24114 - 19968: jis0212<<14 | 0x1B<<7 | 0x0E, - 24115 - 19968: jis0208<<14 | 0x23<<7 | 0x01, - 24117 - 19968: jis0212<<14 | 0x1B<<7 | 0x0F, - 24118 - 19968: jis0208<<14 | 0x35<<7 | 0x47, - 24119 - 19968: jis0208<<14 | 0x35<<7 | 0x48, - 24120 - 19968: jis0208<<14 | 0x1D<<7 | 0x4E, - 24125 - 19968: jis0208<<14 | 0x2A<<7 | 0x18, - 24126 - 19968: jis0212<<14 | 0x1B<<7 | 0x10, - 24128 - 19968: jis0208<<14 | 0x35<<7 | 0x4B, - 24131 - 19968: jis0208<<14 | 0x35<<7 | 0x4A, - 24132 - 19968: jis0208<<14 | 0x35<<7 | 0x49, - 24133 - 19968: jis0208<<14 | 0x28<<7 | 0x5C, - 24135 - 19968: jis0208<<14 | 0x35<<7 | 0x52, - 24137 - 19968: jis0212<<14 | 0x1B<<7 | 0x13, - 24139 - 19968: jis0212<<14 | 0x1B<<7 | 0x11, - 24140 - 19968: jis0208<<14 | 0x2A<<7 | 0x39, - 24142 - 19968: jis0208<<14 | 0x35<<7 | 0x4C, - 24144 - 19968: jis0212<<14 | 0x1B<<7 | 0x12, - 24145 - 19968: jis0212<<14 | 0x1B<<7 | 0x14, - 24148 - 19968: jis0208<<14 | 0x35<<7 | 0x4E, - 24149 - 19968: jis0208<<14 | 0x2A<<7 | 0x4A, - 24150 - 19968: jis0212<<14 | 0x1B<<7 | 0x15, - 24151 - 19968: jis0208<<14 | 0x35<<7 | 0x4D, - 24152 - 19968: jis0212<<14 | 0x1B<<7 | 0x16, - 24155 - 19968: jis0212<<14 | 0x1B<<7 | 0x17, - 24156 - 19968: jis0212<<14 | 0x1B<<7 | 0x18, - 24158 - 19968: jis0212<<14 | 0x1B<<7 | 0x19, - 24159 - 19968: jis0208<<14 | 0x35<<7 | 0x4F, - 24161 - 19968: jis0208<<14 | 0x27<<7 | 0x07, - 24162 - 19968: jis0208<<14 | 0x35<<7 | 0x50, - 24163 - 19968: jis0208<<14 | 0x29<<7 | 0x1D, - 24164 - 19968: jis0208<<14 | 0x35<<7 | 0x51, - 24168 - 19968: jis0212<<14 | 0x1B<<7 | 0x1A, - 24170 - 19968: jis0212<<14 | 0x1B<<7 | 0x1B, - 24171 - 19968: jis0212<<14 | 0x1B<<7 | 0x1C, - 24172 - 19968: jis0212<<14 | 0x1B<<7 | 0x1D, - 24173 - 19968: jis0212<<14 | 0x1B<<7 | 0x1E, - 24174 - 19968: jis0212<<14 | 0x1B<<7 | 0x1F, - 24176 - 19968: jis0212<<14 | 0x1B<<7 | 0x20, - 24178 - 19968: jis0208<<14 | 0x13<<7 | 0x12, - 24179 - 19968: jis0208<<14 | 0x29<<7 | 0x1E, - 24180 - 19968: jis0208<<14 | 0x26<<7 | 0x0E, - 24181 - 19968: jis0208<<14 | 0x35<<7 | 0x53, - 24182 - 19968: jis0208<<14 | 0x35<<7 | 0x54, - 24184 - 19968: jis0208<<14 | 0x18<<7 | 0x0B, - 24185 - 19968: jis0208<<14 | 0x13<<7 | 0x13, - 24186 - 19968: jis0208<<14 | 0x35<<7 | 0x55, - 24187 - 19968: jis0208<<14 | 0x17<<7 | 0x17, - 24188 - 19968: jis0208<<14 | 0x2C<<7 | 0x23, - 24189 - 19968: jis0208<<14 | 0x2C<<7 | 0x08, - 24190 - 19968: jis0208<<14 | 0x13<<7 | 0x55, - 24191 - 19968: jis0208<<14 | 0x35<<7 | 0x57, - 24192 - 19968: jis0212<<14 | 0x1B<<7 | 0x21, - 24193 - 19968: jis0208<<14 | 0x23<<7 | 0x02, - 24195 - 19968: jis0208<<14 | 0x18<<7 | 0x0C, - 24196 - 19968: jis0208<<14 | 0x1D<<7 | 0x10, - 24199 - 19968: jis0208<<14 | 0x27<<7 | 0x3E, - 24202 - 19968: jis0208<<14 | 0x1D<<7 | 0x11, - 24203 - 19968: jis0212<<14 | 0x1B<<7 | 0x22, - 24206 - 19968: jis0212<<14 | 0x1B<<7 | 0x23, - 24207 - 19968: jis0208<<14 | 0x1C<<7 | 0x57, - 24213 - 19968: jis0208<<14 | 0x23<<7 | 0x4B, - 24214 - 19968: jis0208<<14 | 0x29<<7 | 0x58, - 24215 - 19968: jis0208<<14 | 0x24<<7 | 0x18, - 24218 - 19968: jis0208<<14 | 0x18<<7 | 0x0D, - 24220 - 19968: jis0208<<14 | 0x28<<7 | 0x3B, - 24224 - 19968: jis0208<<14 | 0x35<<7 | 0x58, - 24226 - 19968: jis0212<<14 | 0x1B<<7 | 0x24, - 24228 - 19968: jis0212<<14 | 0x1B<<7 | 0x25, - 24229 - 19968: jis0212<<14 | 0x1B<<7 | 0x26, - 24230 - 19968: jis0208<<14 | 0x24<<7 | 0x38, - 24231 - 19968: jis0208<<14 | 0x19<<7 | 0x21, - 24232 - 19968: jis0212<<14 | 0x1B<<7 | 0x27, - 24234 - 19968: jis0212<<14 | 0x1B<<7 | 0x28, - 24235 - 19968: jis0208<<14 | 0x17<<7 | 0x2A, - 24236 - 19968: jis0212<<14 | 0x1B<<7 | 0x29, - 24237 - 19968: jis0208<<14 | 0x23<<7 | 0x4C, - 24241 - 19968: jis0212<<14 | 0x1B<<7 | 0x2A, - 24243 - 19968: jis0212<<14 | 0x1B<<7 | 0x2B, - 24245 - 19968: jis0208<<14 | 0x0F<<7 | 0x22, - 24246 - 19968: jis0208<<14 | 0x1C<<7 | 0x4D, - 24247 - 19968: jis0208<<14 | 0x18<<7 | 0x0E, - 24248 - 19968: jis0208<<14 | 0x2C<<7 | 0x26, - 24253 - 19968: jis0212<<14 | 0x1B<<7 | 0x2C, - 24254 - 19968: jis0212<<14 | 0x1B<<7 | 0x2D, - 24255 - 19968: jis0212<<14 | 0x1B<<7 | 0x2E, - 24257 - 19968: jis0208<<14 | 0x35<<7 | 0x59, - 24258 - 19968: jis0208<<14 | 0x35<<7 | 0x5A, - 24259 - 19968: jis0208<<14 | 0x26<<7 | 0x30, - 24262 - 19968: jis0212<<14 | 0x1B<<7 | 0x2F, - 24264 - 19968: jis0208<<14 | 0x35<<7 | 0x5B, - 24265 - 19968: jis0208<<14 | 0x2D<<7 | 0x56, - 24266 - 19968: jis0208<<14 | 0x2E<<7 | 0x0C, - 24267 - 19968: jis0212<<14 | 0x1B<<7 | 0x31, - 24268 - 19968: jis0212<<14 | 0x1B<<7 | 0x30, - 24270 - 19968: jis0212<<14 | 0x1B<<7 | 0x32, - 24271 - 19968: jis0208<<14 | 0x35<<7 | 0x5D, - 24272 - 19968: jis0208<<14 | 0x35<<7 | 0x5C, - 24273 - 19968: jis0212<<14 | 0x1B<<7 | 0x33, - 24274 - 19968: jis0212<<14 | 0x1B<<7 | 0x34, - 24275 - 19968: jis0208<<14 | 0x12<<7 | 0x26, - 24276 - 19968: jis0212<<14 | 0x1B<<7 | 0x35, - 24277 - 19968: jis0212<<14 | 0x1B<<7 | 0x36, - 24278 - 19968: jis0208<<14 | 0x36<<7 | 0x00, - 24282 - 19968: jis0208<<14 | 0x36<<7 | 0x03, - 24283 - 19968: jis0208<<14 | 0x36<<7 | 0x04, - 24284 - 19968: jis0212<<14 | 0x1B<<7 | 0x37, - 24285 - 19968: jis0208<<14 | 0x36<<7 | 0x02, - 24286 - 19968: jis0212<<14 | 0x1B<<7 | 0x38, - 24287 - 19968: jis0208<<14 | 0x28<<7 | 0x1F, - 24288 - 19968: jis0208<<14 | 0x1D<<7 | 0x12, - 24289 - 19968: jis0208<<14 | 0x36<<7 | 0x06, - 24290 - 19968: jis0208<<14 | 0x36<<7 | 0x05, - 24291 - 19968: jis0208<<14 | 0x36<<7 | 0x01, - 24293 - 19968: jis0212<<14 | 0x1B<<7 | 0x39, - 24296 - 19968: jis0208<<14 | 0x36<<7 | 0x07, - 24297 - 19968: jis0208<<14 | 0x36<<7 | 0x08, - 24299 - 19968: jis0212<<14 | 0x1B<<7 | 0x3A, - 24300 - 19968: jis0208<<14 | 0x36<<7 | 0x09, - 24304 - 19968: jis0208<<14 | 0x36<<7 | 0x0C, - 24305 - 19968: jis0208<<14 | 0x36<<7 | 0x0A, - 24307 - 19968: jis0208<<14 | 0x36<<7 | 0x0B, - 24308 - 19968: jis0208<<14 | 0x36<<7 | 0x0D, - 24310 - 19968: jis0208<<14 | 0x10<<7 | 0x43, - 24311 - 19968: jis0208<<14 | 0x23<<7 | 0x4D, - 24312 - 19968: jis0208<<14 | 0x36<<7 | 0x0E, - 24314 - 19968: jis0208<<14 | 0x16<<7 | 0x59, - 24315 - 19968: jis0208<<14 | 0x11<<7 | 0x55, - 24316 - 19968: jis0208<<14 | 0x26<<7 | 0x15, - 24318 - 19968: jis0208<<14 | 0x36<<7 | 0x0F, - 24319 - 19968: jis0208<<14 | 0x25<<7 | 0x5A, - 24321 - 19968: jis0208<<14 | 0x29<<7 | 0x3A, - 24322 - 19968: jis0212<<14 | 0x1B<<7 | 0x3B, - 24323 - 19968: jis0208<<14 | 0x36<<7 | 0x10, - 24324 - 19968: jis0208<<14 | 0x2E<<7 | 0x0D, - 24326 - 19968: jis0212<<14 | 0x1B<<7 | 0x3C, - 24327 - 19968: jis0212<<14 | 0x1B<<7 | 0x3D, - 24328 - 19968: jis0212<<14 | 0x1B<<7 | 0x3E, - 24329 - 19968: jis0208<<14 | 0x36<<7 | 0x11, - 24330 - 19968: jis0208<<14 | 0x29<<7 | 0x1F, - 24331 - 19968: jis0208<<14 | 0x36<<7 | 0x14, - 24332 - 19968: jis0208<<14 | 0x2F<<7 | 0x00, - 24333 - 19968: jis0208<<14 | 0x2F<<7 | 0x10, - 24334 - 19968: jis0212<<14 | 0x1B<<7 | 0x3F, - 24335 - 19968: jis0208<<14 | 0x1B<<7 | 0x0F, - 24336 - 19968: jis0208<<14 | 0x25<<7 | 0x54, - 24337 - 19968: jis0208<<14 | 0x36<<7 | 0x15, - 24339 - 19968: jis0208<<14 | 0x14<<7 | 0x3C, - 24340 - 19968: jis0208<<14 | 0x23<<7 | 0x03, - 24341 - 19968: jis0208<<14 | 0x0F<<7 | 0x59, - 24342 - 19968: jis0208<<14 | 0x36<<7 | 0x16, - 24343 - 19968: jis0208<<14 | 0x29<<7 | 0x05, - 24344 - 19968: jis0208<<14 | 0x18<<7 | 0x0F, - 24345 - 19968: jis0212<<14 | 0x1B<<7 | 0x40, - 24347 - 19968: jis0208<<14 | 0x22<<7 | 0x2F, - 24348 - 19968: jis0212<<14 | 0x1B<<7 | 0x41, - 24349 - 19968: jis0212<<14 | 0x1B<<7 | 0x42, - 24351 - 19968: jis0208<<14 | 0x23<<7 | 0x4E, - 24353 - 19968: jis0208<<14 | 0x58<<7 | 0x5A, - 24354 - 19968: jis0212<<14 | 0x1B<<7 | 0x44, - 24355 - 19968: jis0212<<14 | 0x1B<<7 | 0x45, - 24356 - 19968: jis0212<<14 | 0x1B<<7 | 0x46, - 24357 - 19968: jis0208<<14 | 0x2B<<7 | 0x4E, - 24358 - 19968: jis0208<<14 | 0x17<<7 | 0x18, - 24359 - 19968: jis0208<<14 | 0x17<<7 | 0x2B, - 24360 - 19968: jis0212<<14 | 0x1B<<7 | 0x47, - 24361 - 19968: jis0208<<14 | 0x36<<7 | 0x17, - 24363 - 19968: jis0212<<14 | 0x1B<<7 | 0x48, - 24364 - 19968: jis0212<<14 | 0x1B<<7 | 0x49, - 24365 - 19968: jis0208<<14 | 0x36<<7 | 0x18, - 24366 - 19968: jis0212<<14 | 0x1B<<7 | 0x4A, - 24367 - 19968: jis0208<<14 | 0x36<<7 | 0x1E, - 24368 - 19968: jis0212<<14 | 0x1B<<7 | 0x4B, - 24369 - 19968: jis0208<<14 | 0x1B<<7 | 0x44, - 24372 - 19968: jis0208<<14 | 0x58<<7 | 0x5B, - 24373 - 19968: jis0208<<14 | 0x23<<7 | 0x04, - 24374 - 19968: jis0212<<14 | 0x1B<<7 | 0x4D, - 24375 - 19968: jis0208<<14 | 0x15<<7 | 0x0E, - 24376 - 19968: jis0208<<14 | 0x36<<7 | 0x19, - 24379 - 19968: jis0212<<14 | 0x1B<<7 | 0x4E, - 24380 - 19968: jis0208<<14 | 0x28<<7 | 0x0A, - 24381 - 19968: jis0212<<14 | 0x1B<<7 | 0x4F, - 24382 - 19968: jis0208<<14 | 0x22<<7 | 0x25, - 24383 - 19968: jis0212<<14 | 0x1B<<7 | 0x50, - 24384 - 19968: jis0212<<14 | 0x1B<<7 | 0x51, - 24385 - 19968: jis0208<<14 | 0x36<<7 | 0x1A, - 24388 - 19968: jis0212<<14 | 0x1B<<7 | 0x52, - 24389 - 19968: jis0208<<14 | 0x58<<7 | 0x0B, - 24391 - 19968: jis0212<<14 | 0x1B<<7 | 0x54, - 24392 - 19968: jis0208<<14 | 0x36<<7 | 0x1B, - 24394 - 19968: jis0208<<14 | 0x15<<7 | 0x0F, - 24396 - 19968: jis0208<<14 | 0x36<<7 | 0x1C, - 24397 - 19968: jis0212<<14 | 0x1B<<7 | 0x55, - 24398 - 19968: jis0208<<14 | 0x36<<7 | 0x1D, - 24400 - 19968: jis0212<<14 | 0x1B<<7 | 0x56, - 24401 - 19968: jis0208<<14 | 0x36<<7 | 0x1F, - 24403 - 19968: jis0208<<14 | 0x24<<7 | 0x55, - 24404 - 19968: jis0212<<14 | 0x1B<<7 | 0x57, - 24406 - 19968: jis0208<<14 | 0x36<<7 | 0x20, - 24407 - 19968: jis0208<<14 | 0x36<<7 | 0x21, - 24408 - 19968: jis0212<<14 | 0x1B<<7 | 0x58, - 24409 - 19968: jis0208<<14 | 0x36<<7 | 0x22, - 24411 - 19968: jis0212<<14 | 0x1B<<7 | 0x59, - 24412 - 19968: jis0208<<14 | 0x36<<7 | 0x13, - 24413 - 19968: jis0208<<14 | 0x36<<7 | 0x12, - 24416 - 19968: jis0212<<14 | 0x1B<<7 | 0x5A, - 24417 - 19968: jis0208<<14 | 0x36<<7 | 0x23, - 24418 - 19968: jis0208<<14 | 0x16<<7 | 0x20, - 24419 - 19968: jis0212<<14 | 0x1B<<7 | 0x5B, - 24420 - 19968: jis0212<<14 | 0x1B<<7 | 0x5C, - 24422 - 19968: jis0208<<14 | 0x28<<7 | 0x06, - 24423 - 19968: jis0208<<14 | 0x58<<7 | 0x5C, - 24425 - 19968: jis0208<<14 | 0x19<<7 | 0x2B, - 24426 - 19968: jis0208<<14 | 0x28<<7 | 0x16, - 24427 - 19968: jis0208<<14 | 0x23<<7 | 0x05, - 24428 - 19968: jis0208<<14 | 0x28<<7 | 0x2A, - 24429 - 19968: jis0208<<14 | 0x36<<7 | 0x24, - 24431 - 19968: jis0212<<14 | 0x1C<<7 | 0x00, - 24432 - 19968: jis0208<<14 | 0x1D<<7 | 0x13, - 24433 - 19968: jis0208<<14 | 0x10<<7 | 0x25, - 24434 - 19968: jis0212<<14 | 0x1C<<7 | 0x01, - 24435 - 19968: jis0208<<14 | 0x36<<7 | 0x25, - 24436 - 19968: jis0212<<14 | 0x1C<<7 | 0x02, - 24437 - 19968: jis0212<<14 | 0x1C<<7 | 0x03, - 24439 - 19968: jis0208<<14 | 0x36<<7 | 0x26, - 24440 - 19968: jis0212<<14 | 0x1C<<7 | 0x04, - 24441 - 19968: jis0208<<14 | 0x2B<<7 | 0x51, - 24442 - 19968: jis0212<<14 | 0x1C<<7 | 0x05, - 24444 - 19968: jis0208<<14 | 0x27<<7 | 0x3F, - 24445 - 19968: jis0212<<14 | 0x1C<<7 | 0x06, - 24446 - 19968: jis0212<<14 | 0x1C<<7 | 0x07, - 24447 - 19968: jis0208<<14 | 0x36<<7 | 0x29, - 24448 - 19968: jis0208<<14 | 0x10<<7 | 0x5C, - 24449 - 19968: jis0208<<14 | 0x1F<<7 | 0x0B, - 24450 - 19968: jis0208<<14 | 0x36<<7 | 0x28, - 24451 - 19968: jis0208<<14 | 0x36<<7 | 0x27, - 24452 - 19968: jis0208<<14 | 0x16<<7 | 0x21, - 24453 - 19968: jis0208<<14 | 0x21<<7 | 0x33, - 24455 - 19968: jis0208<<14 | 0x36<<7 | 0x2D, - 24456 - 19968: jis0208<<14 | 0x36<<7 | 0x2B, - 24457 - 19968: jis0212<<14 | 0x1C<<7 | 0x08, - 24458 - 19968: jis0208<<14 | 0x36<<7 | 0x2A, - 24459 - 19968: jis0208<<14 | 0x2D<<7 | 0x06, - 24460 - 19968: jis0208<<14 | 0x17<<7 | 0x44, - 24461 - 19968: jis0212<<14 | 0x1C<<7 | 0x09, - 24463 - 19968: jis0212<<14 | 0x1C<<7 | 0x0A, - 24464 - 19968: jis0208<<14 | 0x1C<<7 | 0x58, - 24465 - 19968: jis0208<<14 | 0x36<<7 | 0x2C, - 24466 - 19968: jis0208<<14 | 0x24<<7 | 0x2B, - 24467 - 19968: jis0208<<14 | 0x1C<<7 | 0x1D, - 24470 - 19968: jis0212<<14 | 0x1C<<7 | 0x0B, - 24471 - 19968: jis0208<<14 | 0x25<<7 | 0x1F, - 24472 - 19968: jis0208<<14 | 0x36<<7 | 0x30, - 24473 - 19968: jis0208<<14 | 0x36<<7 | 0x2F, - 24476 - 19968: jis0212<<14 | 0x1C<<7 | 0x0C, - 24477 - 19968: jis0212<<14 | 0x1C<<7 | 0x0D, - 24478 - 19968: jis0208<<14 | 0x36<<7 | 0x2E, - 24480 - 19968: jis0208<<14 | 0x36<<7 | 0x31, - 24481 - 19968: jis0208<<14 | 0x17<<7 | 0x45, - 24482 - 19968: jis0212<<14 | 0x1C<<7 | 0x0E, - 24484 - 19968: jis0212<<14 | 0x1C<<7 | 0x11, - 24487 - 19968: jis0212<<14 | 0x1C<<7 | 0x0F, - 24488 - 19968: jis0208<<14 | 0x36<<7 | 0x32, - 24489 - 19968: jis0208<<14 | 0x28<<7 | 0x5B, - 24490 - 19968: jis0208<<14 | 0x1C<<7 | 0x3A, - 24491 - 19968: jis0212<<14 | 0x1C<<7 | 0x10, - 24492 - 19968: jis0212<<14 | 0x1C<<7 | 0x12, - 24493 - 19968: jis0208<<14 | 0x36<<7 | 0x33, - 24494 - 19968: jis0208<<14 | 0x27<<7 | 0x58, - 24495 - 19968: jis0212<<14 | 0x1C<<7 | 0x13, - 24496 - 19968: jis0212<<14 | 0x1C<<7 | 0x14, - 24497 - 19968: jis0212<<14 | 0x1C<<7 | 0x15, - 24499 - 19968: jis0208<<14 | 0x25<<7 | 0x20, - 24500 - 19968: jis0208<<14 | 0x23<<7 | 0x06, - 24503 - 19968: jis0208<<14 | 0x58<<7 | 0x5D, - 24504 - 19968: jis0212<<14 | 0x1C<<7 | 0x16, - 24505 - 19968: jis0208<<14 | 0x24<<7 | 0x0F, - 24508 - 19968: jis0208<<14 | 0x36<<7 | 0x34, - 24509 - 19968: jis0208<<14 | 0x14<<7 | 0x0A, - 24515 - 19968: jis0208<<14 | 0x1E<<7 | 0x13, - 24516 - 19968: jis0212<<14 | 0x1C<<7 | 0x17, - 24517 - 19968: jis0208<<14 | 0x28<<7 | 0x0B, - 24519 - 19968: jis0212<<14 | 0x1C<<7 | 0x18, - 24520 - 19968: jis0212<<14 | 0x1C<<7 | 0x19, - 24521 - 19968: jis0212<<14 | 0x1C<<7 | 0x1A, - 24523 - 19968: jis0212<<14 | 0x1C<<7 | 0x1B, - 24524 - 19968: jis0208<<14 | 0x13<<7 | 0x56, - 24525 - 19968: jis0208<<14 | 0x26<<7 | 0x05, - 24528 - 19968: jis0212<<14 | 0x1C<<7 | 0x1C, - 24529 - 19968: jis0212<<14 | 0x1C<<7 | 0x1D, - 24530 - 19968: jis0212<<14 | 0x1C<<7 | 0x1E, - 24531 - 19968: jis0212<<14 | 0x1C<<7 | 0x1F, - 24532 - 19968: jis0212<<14 | 0x1C<<7 | 0x20, - 24534 - 19968: jis0208<<14 | 0x36<<7 | 0x35, - 24535 - 19968: jis0208<<14 | 0x1A<<7 | 0x35, - 24536 - 19968: jis0208<<14 | 0x2A<<7 | 0x19, - 24537 - 19968: jis0208<<14 | 0x2A<<7 | 0x1A, - 24540 - 19968: jis0208<<14 | 0x10<<7 | 0x5D, - 24541 - 19968: jis0208<<14 | 0x36<<7 | 0x3A, - 24542 - 19968: jis0208<<14 | 0x59<<7 | 0x00, - 24544 - 19968: jis0208<<14 | 0x22<<7 | 0x48, - 24545 - 19968: jis0212<<14 | 0x1C<<7 | 0x22, - 24546 - 19968: jis0212<<14 | 0x1C<<7 | 0x23, - 24548 - 19968: jis0208<<14 | 0x36<<7 | 0x37, - 24552 - 19968: jis0212<<14 | 0x1C<<7 | 0x24, - 24553 - 19968: jis0212<<14 | 0x1C<<7 | 0x25, - 24554 - 19968: jis0212<<14 | 0x1C<<7 | 0x26, - 24555 - 19968: jis0208<<14 | 0x11<<7 | 0x56, - 24556 - 19968: jis0212<<14 | 0x1C<<7 | 0x27, - 24557 - 19968: jis0212<<14 | 0x1C<<7 | 0x28, - 24558 - 19968: jis0212<<14 | 0x1C<<7 | 0x29, - 24559 - 19968: jis0212<<14 | 0x1C<<7 | 0x2A, - 24560 - 19968: jis0208<<14 | 0x37<<7 | 0x0C, - 24561 - 19968: jis0208<<14 | 0x36<<7 | 0x39, - 24562 - 19968: jis0212<<14 | 0x1C<<7 | 0x2B, - 24563 - 19968: jis0212<<14 | 0x1C<<7 | 0x2C, - 24565 - 19968: jis0208<<14 | 0x26<<7 | 0x0F, - 24566 - 19968: jis0212<<14 | 0x1C<<7 | 0x2D, - 24568 - 19968: jis0208<<14 | 0x36<<7 | 0x38, - 24570 - 19968: jis0212<<14 | 0x1C<<7 | 0x2E, - 24571 - 19968: jis0208<<14 | 0x36<<7 | 0x36, - 24572 - 19968: jis0212<<14 | 0x1C<<7 | 0x2F, - 24573 - 19968: jis0208<<14 | 0x18<<7 | 0x59, - 24575 - 19968: jis0208<<14 | 0x36<<7 | 0x3C, - 24583 - 19968: jis0212<<14 | 0x1C<<7 | 0x30, - 24586 - 19968: jis0212<<14 | 0x1C<<7 | 0x31, - 24589 - 19968: jis0212<<14 | 0x1C<<7 | 0x32, - 24590 - 19968: jis0208<<14 | 0x36<<7 | 0x42, - 24591 - 19968: jis0208<<14 | 0x36<<7 | 0x48, - 24592 - 19968: jis0208<<14 | 0x36<<7 | 0x40, - 24594 - 19968: jis0208<<14 | 0x24<<7 | 0x3B, - 24595 - 19968: jis0212<<14 | 0x1C<<7 | 0x33, - 24596 - 19968: jis0212<<14 | 0x1C<<7 | 0x34, - 24597 - 19968: jis0208<<14 | 0x36<<7 | 0x45, - 24598 - 19968: jis0208<<14 | 0x28<<7 | 0x3C, - 24599 - 19968: jis0212<<14 | 0x1C<<7 | 0x35, - 24600 - 19968: jis0212<<14 | 0x1C<<7 | 0x36, - 24601 - 19968: jis0208<<14 | 0x36<<7 | 0x3F, - 24602 - 19968: jis0212<<14 | 0x1C<<7 | 0x37, - 24603 - 19968: jis0208<<14 | 0x36<<7 | 0x44, - 24604 - 19968: jis0208<<14 | 0x2D<<7 | 0x46, - 24605 - 19968: jis0208<<14 | 0x1A<<7 | 0x36, - 24607 - 19968: jis0212<<14 | 0x1C<<7 | 0x38, - 24608 - 19968: jis0208<<14 | 0x21<<7 | 0x34, - 24609 - 19968: jis0208<<14 | 0x36<<7 | 0x3D, - 24612 - 19968: jis0212<<14 | 0x1C<<7 | 0x39, - 24613 - 19968: jis0208<<14 | 0x14<<7 | 0x3D, - 24614 - 19968: jis0208<<14 | 0x36<<7 | 0x47, - 24615 - 19968: jis0208<<14 | 0x1F<<7 | 0x0C, - 24616 - 19968: jis0208<<14 | 0x10<<7 | 0x44, - 24617 - 19968: jis0208<<14 | 0x36<<7 | 0x41, - 24618 - 19968: jis0208<<14 | 0x11<<7 | 0x57, - 24619 - 19968: jis0208<<14 | 0x36<<7 | 0x46, - 24621 - 19968: jis0212<<14 | 0x1C<<7 | 0x3A, - 24623 - 19968: jis0208<<14 | 0x15<<7 | 0x10, - 24625 - 19968: jis0208<<14 | 0x36<<7 | 0x43, - 24627 - 19968: jis0212<<14 | 0x1C<<7 | 0x3B, - 24629 - 19968: jis0212<<14 | 0x1C<<7 | 0x3C, - 24634 - 19968: jis0208<<14 | 0x36<<7 | 0x49, - 24640 - 19968: jis0212<<14 | 0x1C<<7 | 0x3D, - 24641 - 19968: jis0208<<14 | 0x36<<7 | 0x4B, - 24642 - 19968: jis0208<<14 | 0x36<<7 | 0x55, - 24643 - 19968: jis0208<<14 | 0x36<<7 | 0x53, - 24646 - 19968: jis0208<<14 | 0x36<<7 | 0x50, - 24647 - 19968: jis0212<<14 | 0x1C<<7 | 0x3E, - 24648 - 19968: jis0212<<14 | 0x1C<<7 | 0x3F, - 24649 - 19968: jis0212<<14 | 0x1C<<7 | 0x40, - 24650 - 19968: jis0208<<14 | 0x36<<7 | 0x4F, - 24651 - 19968: jis0208<<14 | 0x2D<<7 | 0x57, - 24652 - 19968: jis0212<<14 | 0x1C<<7 | 0x41, - 24653 - 19968: jis0208<<14 | 0x36<<7 | 0x51, - 24656 - 19968: jis0208<<14 | 0x15<<7 | 0x11, - 24657 - 19968: jis0212<<14 | 0x1C<<7 | 0x42, - 24658 - 19968: jis0208<<14 | 0x18<<7 | 0x10, - 24660 - 19968: jis0212<<14 | 0x1C<<7 | 0x43, - 24661 - 19968: jis0208<<14 | 0x1C<<7 | 0x59, - 24662 - 19968: jis0212<<14 | 0x1C<<7 | 0x44, - 24663 - 19968: jis0212<<14 | 0x1C<<7 | 0x45, - 24665 - 19968: jis0208<<14 | 0x36<<7 | 0x58, - 24666 - 19968: jis0208<<14 | 0x36<<7 | 0x4A, - 24669 - 19968: jis0208<<14 | 0x59<<7 | 0x01, - 24671 - 19968: jis0208<<14 | 0x36<<7 | 0x4E, - 24672 - 19968: jis0208<<14 | 0x36<<7 | 0x3E, - 24673 - 19968: jis0212<<14 | 0x1C<<7 | 0x47, - 24674 - 19968: jis0208<<14 | 0x11<<7 | 0x59, - 24675 - 19968: jis0208<<14 | 0x36<<7 | 0x52, - 24676 - 19968: jis0208<<14 | 0x36<<7 | 0x54, - 24677 - 19968: jis0208<<14 | 0x22<<7 | 0x30, - 24679 - 19968: jis0212<<14 | 0x1C<<7 | 0x48, - 24680 - 19968: jis0208<<14 | 0x19<<7 | 0x07, - 24681 - 19968: jis0208<<14 | 0x11<<7 | 0x17, - 24682 - 19968: jis0208<<14 | 0x36<<7 | 0x4C, - 24683 - 19968: jis0208<<14 | 0x36<<7 | 0x57, - 24684 - 19968: jis0208<<14 | 0x36<<7 | 0x56, - 24685 - 19968: jis0208<<14 | 0x15<<7 | 0x12, - 24687 - 19968: jis0208<<14 | 0x21<<7 | 0x08, - 24688 - 19968: jis0208<<14 | 0x12<<7 | 0x45, - 24689 - 19968: jis0212<<14 | 0x1C<<7 | 0x49, - 24693 - 19968: jis0208<<14 | 0x16<<7 | 0x22, - 24695 - 19968: jis0208<<14 | 0x36<<7 | 0x4D, - 24702 - 19968: jis0212<<14 | 0x1C<<7 | 0x4A, - 24703 - 19968: jis0212<<14 | 0x1C<<7 | 0x4B, - 24705 - 19968: jis0208<<14 | 0x36<<7 | 0x59, - 24706 - 19968: jis0212<<14 | 0x1C<<7 | 0x4C, - 24707 - 19968: jis0208<<14 | 0x36<<7 | 0x5C, - 24708 - 19968: jis0208<<14 | 0x37<<7 | 0x00, - 24709 - 19968: jis0208<<14 | 0x59<<7 | 0x02, - 24710 - 19968: jis0212<<14 | 0x1C<<7 | 0x4D, - 24712 - 19968: jis0212<<14 | 0x1C<<7 | 0x4E, - 24713 - 19968: jis0208<<14 | 0x1B<<7 | 0x1C, - 24714 - 19968: jis0208<<14 | 0x59<<7 | 0x03, - 24715 - 19968: jis0208<<14 | 0x37<<7 | 0x06, - 24716 - 19968: jis0208<<14 | 0x23<<7 | 0x4F, - 24717 - 19968: jis0208<<14 | 0x36<<7 | 0x5A, - 24718 - 19968: jis0212<<14 | 0x1C<<7 | 0x50, - 24721 - 19968: jis0212<<14 | 0x1C<<7 | 0x51, - 24722 - 19968: jis0208<<14 | 0x37<<7 | 0x04, - 24723 - 19968: jis0212<<14 | 0x1C<<7 | 0x52, - 24724 - 19968: jis0208<<14 | 0x11<<7 | 0x58, - 24725 - 19968: jis0212<<14 | 0x1C<<7 | 0x53, - 24726 - 19968: jis0208<<14 | 0x37<<7 | 0x02, - 24727 - 19968: jis0208<<14 | 0x37<<7 | 0x03, - 24728 - 19968: jis0212<<14 | 0x1C<<7 | 0x54, - 24730 - 19968: jis0208<<14 | 0x36<<7 | 0x5D, - 24731 - 19968: jis0208<<14 | 0x37<<7 | 0x01, - 24733 - 19968: jis0212<<14 | 0x1C<<7 | 0x55, - 24734 - 19968: jis0212<<14 | 0x1C<<7 | 0x56, - 24735 - 19968: jis0208<<14 | 0x17<<7 | 0x46, - 24736 - 19968: jis0208<<14 | 0x2C<<7 | 0x09, - 24738 - 19968: jis0212<<14 | 0x1C<<7 | 0x57, - 24739 - 19968: jis0208<<14 | 0x13<<7 | 0x14, - 24740 - 19968: jis0212<<14 | 0x1C<<7 | 0x58, - 24741 - 19968: jis0212<<14 | 0x1C<<7 | 0x59, - 24742 - 19968: jis0208<<14 | 0x10<<7 | 0x38, - 24743 - 19968: jis0208<<14 | 0x37<<7 | 0x05, - 24744 - 19968: jis0212<<14 | 0x1C<<7 | 0x5A, - 24745 - 19968: jis0208<<14 | 0x26<<7 | 0x19, - 24746 - 19968: jis0208<<14 | 0x0F<<7 | 0x0C, - 24752 - 19968: jis0212<<14 | 0x1C<<7 | 0x5B, - 24753 - 19968: jis0212<<14 | 0x1C<<7 | 0x5C, - 24754 - 19968: jis0208<<14 | 0x27<<7 | 0x40, - 24755 - 19968: jis0208<<14 | 0x36<<7 | 0x3B, - 24756 - 19968: jis0208<<14 | 0x37<<7 | 0x0B, - 24757 - 19968: jis0208<<14 | 0x37<<7 | 0x0F, - 24758 - 19968: jis0208<<14 | 0x2B<<7 | 0x44, - 24759 - 19968: jis0212<<14 | 0x1C<<7 | 0x5D, - 24760 - 19968: jis0208<<14 | 0x37<<7 | 0x08, - 24763 - 19968: jis0212<<14 | 0x1D<<7 | 0x00, - 24764 - 19968: jis0208<<14 | 0x24<<7 | 0x48, - 24765 - 19968: jis0208<<14 | 0x37<<7 | 0x0D, - 24766 - 19968: jis0212<<14 | 0x1D<<7 | 0x01, - 24770 - 19968: jis0212<<14 | 0x1D<<7 | 0x02, - 24772 - 19968: jis0212<<14 | 0x1D<<7 | 0x03, - 24773 - 19968: jis0208<<14 | 0x1D<<7 | 0x4F, - 24774 - 19968: jis0208<<14 | 0x37<<7 | 0x0E, - 24775 - 19968: jis0208<<14 | 0x25<<7 | 0x36, - 24776 - 19968: jis0212<<14 | 0x1D<<7 | 0x04, - 24777 - 19968: jis0212<<14 | 0x1D<<7 | 0x05, - 24778 - 19968: jis0212<<14 | 0x1D<<7 | 0x06, - 24779 - 19968: jis0212<<14 | 0x1D<<7 | 0x07, - 24782 - 19968: jis0212<<14 | 0x1D<<7 | 0x08, - 24783 - 19968: jis0212<<14 | 0x1D<<7 | 0x09, - 24785 - 19968: jis0208<<14 | 0x2E<<7 | 0x26, - 24787 - 19968: jis0208<<14 | 0x37<<7 | 0x0A, - 24788 - 19968: jis0212<<14 | 0x1D<<7 | 0x0A, - 24789 - 19968: jis0208<<14 | 0x59<<7 | 0x05, - 24792 - 19968: jis0208<<14 | 0x37<<7 | 0x10, - 24793 - 19968: jis0212<<14 | 0x1D<<7 | 0x0C, - 24794 - 19968: jis0208<<14 | 0x18<<7 | 0x5A, - 24795 - 19968: jis0212<<14 | 0x1D<<7 | 0x0D, - 24796 - 19968: jis0208<<14 | 0x1F<<7 | 0x2A, - 24797 - 19968: jis0212<<14 | 0x1D<<7 | 0x0E, - 24798 - 19968: jis0208<<14 | 0x59<<7 | 0x04, - 24799 - 19968: jis0208<<14 | 0x0F<<7 | 0x33, - 24800 - 19968: jis0208<<14 | 0x37<<7 | 0x09, - 24801 - 19968: jis0208<<14 | 0x37<<7 | 0x07, - 24802 - 19968: jis0212<<14 | 0x1D<<7 | 0x10, - 24803 - 19968: jis0208<<14 | 0x20<<7 | 0x39, - 24805 - 19968: jis0212<<14 | 0x1D<<7 | 0x11, - 24807 - 19968: jis0208<<14 | 0x36<<7 | 0x5B, - 24808 - 19968: jis0208<<14 | 0x1A<<7 | 0x13, - 24816 - 19968: jis0208<<14 | 0x21<<7 | 0x25, - 24817 - 19968: jis0208<<14 | 0x37<<7 | 0x1C, - 24818 - 19968: jis0208<<14 | 0x59<<7 | 0x07, - 24819 - 19968: jis0208<<14 | 0x20<<7 | 0x3A, - 24820 - 19968: jis0208<<14 | 0x37<<7 | 0x17, - 24821 - 19968: jis0212<<14 | 0x1D<<7 | 0x13, - 24822 - 19968: jis0208<<14 | 0x37<<7 | 0x14, - 24823 - 19968: jis0208<<14 | 0x37<<7 | 0x15, - 24824 - 19968: jis0212<<14 | 0x1D<<7 | 0x14, - 24825 - 19968: jis0208<<14 | 0x1B<<7 | 0x45, - 24826 - 19968: jis0208<<14 | 0x37<<7 | 0x18, - 24827 - 19968: jis0208<<14 | 0x37<<7 | 0x1B, - 24828 - 19968: jis0212<<14 | 0x1D<<7 | 0x15, - 24829 - 19968: jis0212<<14 | 0x1D<<7 | 0x16, - 24832 - 19968: jis0208<<14 | 0x37<<7 | 0x16, - 24833 - 19968: jis0208<<14 | 0x1C<<7 | 0x04, - 24834 - 19968: jis0212<<14 | 0x1D<<7 | 0x17, - 24835 - 19968: jis0208<<14 | 0x37<<7 | 0x19, - 24838 - 19968: jis0208<<14 | 0x37<<7 | 0x13, - 24839 - 19968: jis0212<<14 | 0x1D<<7 | 0x18, - 24840 - 19968: jis0208<<14 | 0x2B<<7 | 0x5B, - 24841 - 19968: jis0208<<14 | 0x2B<<7 | 0x5A, - 24842 - 19968: jis0212<<14 | 0x1D<<7 | 0x19, - 24844 - 19968: jis0212<<14 | 0x1D<<7 | 0x1A, - 24845 - 19968: jis0208<<14 | 0x37<<7 | 0x1D, - 24846 - 19968: jis0208<<14 | 0x37<<7 | 0x1E, - 24847 - 19968: jis0208<<14 | 0x0F<<7 | 0x34, - 24848 - 19968: jis0212<<14 | 0x1D<<7 | 0x1B, - 24849 - 19968: jis0208<<14 | 0x59<<7 | 0x08, - 24850 - 19968: jis0212<<14 | 0x1D<<7 | 0x1D, - 24851 - 19968: jis0212<<14 | 0x1D<<7 | 0x1E, - 24852 - 19968: jis0212<<14 | 0x1D<<7 | 0x1F, - 24853 - 19968: jis0208<<14 | 0x37<<7 | 0x12, - 24854 - 19968: jis0212<<14 | 0x1D<<7 | 0x20, - 24855 - 19968: jis0212<<14 | 0x1D<<7 | 0x21, - 24857 - 19968: jis0212<<14 | 0x1D<<7 | 0x22, - 24858 - 19968: jis0208<<14 | 0x15<<7 | 0x51, - 24859 - 19968: jis0208<<14 | 0x0F<<7 | 0x05, - 24860 - 19968: jis0212<<14 | 0x1D<<7 | 0x23, - 24862 - 19968: jis0212<<14 | 0x1D<<7 | 0x24, - 24863 - 19968: jis0208<<14 | 0x13<<7 | 0x15, - 24864 - 19968: jis0208<<14 | 0x59<<7 | 0x06, - 24865 - 19968: jis0208<<14 | 0x37<<7 | 0x1A, - 24866 - 19968: jis0212<<14 | 0x1D<<7 | 0x25, - 24871 - 19968: jis0208<<14 | 0x37<<7 | 0x22, - 24872 - 19968: jis0208<<14 | 0x37<<7 | 0x21, - 24874 - 19968: jis0212<<14 | 0x1D<<7 | 0x26, - 24875 - 19968: jis0212<<14 | 0x1D<<7 | 0x27, - 24876 - 19968: jis0208<<14 | 0x37<<7 | 0x26, - 24880 - 19968: jis0208<<14 | 0x59<<7 | 0x0A, - 24881 - 19968: jis0212<<14 | 0x1D<<7 | 0x29, - 24884 - 19968: jis0208<<14 | 0x37<<7 | 0x27, - 24885 - 19968: jis0212<<14 | 0x1D<<7 | 0x2A, - 24886 - 19968: jis0212<<14 | 0x1D<<7 | 0x2B, - 24887 - 19968: jis0208<<14 | 0x59<<7 | 0x09, - 24889 - 19968: jis0212<<14 | 0x1D<<7 | 0x2D, - 24892 - 19968: jis0208<<14 | 0x37<<7 | 0x25, - 24893 - 19968: jis0208<<14 | 0x37<<7 | 0x28, - 24894 - 19968: jis0208<<14 | 0x37<<7 | 0x20, - 24895 - 19968: jis0208<<14 | 0x37<<7 | 0x24, - 24897 - 19968: jis0212<<14 | 0x1D<<7 | 0x2E, - 24898 - 19968: jis0208<<14 | 0x37<<7 | 0x29, - 24900 - 19968: jis0208<<14 | 0x37<<7 | 0x2A, - 24901 - 19968: jis0212<<14 | 0x1D<<7 | 0x2F, - 24902 - 19968: jis0212<<14 | 0x1D<<7 | 0x30, - 24903 - 19968: jis0208<<14 | 0x37<<7 | 0x1F, - 24904 - 19968: jis0208<<14 | 0x1A<<7 | 0x5B, - 24905 - 19968: jis0212<<14 | 0x1D<<7 | 0x31, - 24906 - 19968: jis0208<<14 | 0x37<<7 | 0x23, - 24907 - 19968: jis0208<<14 | 0x21<<7 | 0x35, - 24908 - 19968: jis0208<<14 | 0x18<<7 | 0x11, - 24909 - 19968: jis0208<<14 | 0x37<<7 | 0x11, - 24910 - 19968: jis0208<<14 | 0x1E<<7 | 0x14, - 24915 - 19968: jis0208<<14 | 0x37<<7 | 0x37, - 24917 - 19968: jis0208<<14 | 0x29<<7 | 0x48, - 24920 - 19968: jis0208<<14 | 0x37<<7 | 0x2D, - 24921 - 19968: jis0208<<14 | 0x37<<7 | 0x2E, - 24922 - 19968: jis0208<<14 | 0x37<<7 | 0x2F, - 24925 - 19968: jis0208<<14 | 0x37<<7 | 0x36, - 24926 - 19968: jis0212<<14 | 0x1D<<7 | 0x32, - 24927 - 19968: jis0208<<14 | 0x37<<7 | 0x35, - 24928 - 19968: jis0212<<14 | 0x1D<<7 | 0x33, - 24930 - 19968: jis0208<<14 | 0x2A<<7 | 0x5C, - 24931 - 19968: jis0208<<14 | 0x13<<7 | 0x16, - 24933 - 19968: jis0208<<14 | 0x37<<7 | 0x33, - 24935 - 19968: jis0208<<14 | 0x16<<7 | 0x24, - 24936 - 19968: jis0208<<14 | 0x12<<7 | 0x13, - 24939 - 19968: jis0208<<14 | 0x37<<7 | 0x30, - 24940 - 19968: jis0212<<14 | 0x1D<<7 | 0x34, - 24942 - 19968: jis0208<<14 | 0x2D<<7 | 0x17, - 24943 - 19968: jis0208<<14 | 0x37<<7 | 0x32, - 24944 - 19968: jis0208<<14 | 0x0F<<7 | 0x35, - 24945 - 19968: jis0208<<14 | 0x37<<7 | 0x34, - 24946 - 19968: jis0212<<14 | 0x1D<<7 | 0x35, - 24947 - 19968: jis0208<<14 | 0x37<<7 | 0x2B, - 24948 - 19968: jis0208<<14 | 0x37<<7 | 0x31, - 24949 - 19968: jis0208<<14 | 0x37<<7 | 0x38, - 24950 - 19968: jis0208<<14 | 0x16<<7 | 0x23, - 24951 - 19968: jis0208<<14 | 0x37<<7 | 0x2C, - 24952 - 19968: jis0212<<14 | 0x1D<<7 | 0x36, - 24955 - 19968: jis0212<<14 | 0x1D<<7 | 0x37, - 24956 - 19968: jis0212<<14 | 0x1D<<7 | 0x38, - 24958 - 19968: jis0208<<14 | 0x2C<<7 | 0x3C, - 24959 - 19968: jis0212<<14 | 0x1D<<7 | 0x39, - 24960 - 19968: jis0212<<14 | 0x1D<<7 | 0x3A, - 24961 - 19968: jis0212<<14 | 0x1D<<7 | 0x3B, - 24962 - 19968: jis0208<<14 | 0x2C<<7 | 0x0A, - 24963 - 19968: jis0212<<14 | 0x1D<<7 | 0x3C, - 24964 - 19968: jis0212<<14 | 0x1D<<7 | 0x3D, - 24967 - 19968: jis0208<<14 | 0x37<<7 | 0x3B, - 24970 - 19968: jis0208<<14 | 0x37<<7 | 0x3F, - 24971 - 19968: jis0212<<14 | 0x1D<<7 | 0x3E, - 24973 - 19968: jis0212<<14 | 0x1D<<7 | 0x3F, - 24974 - 19968: jis0208<<14 | 0x20<<7 | 0x5D, - 24976 - 19968: jis0208<<14 | 0x2D<<7 | 0x58, - 24977 - 19968: jis0208<<14 | 0x37<<7 | 0x40, - 24978 - 19968: jis0212<<14 | 0x1D<<7 | 0x40, - 24979 - 19968: jis0212<<14 | 0x1D<<7 | 0x41, - 24980 - 19968: jis0208<<14 | 0x37<<7 | 0x3D, - 24982 - 19968: jis0208<<14 | 0x37<<7 | 0x3A, - 24983 - 19968: jis0212<<14 | 0x1D<<7 | 0x42, - 24984 - 19968: jis0208<<14 | 0x59<<7 | 0x0B, - 24985 - 19968: jis0208<<14 | 0x37<<7 | 0x39, - 24986 - 19968: jis0208<<14 | 0x37<<7 | 0x3E, - 24988 - 19968: jis0212<<14 | 0x1D<<7 | 0x44, - 24989 - 19968: jis0212<<14 | 0x1D<<7 | 0x45, - 24991 - 19968: jis0212<<14 | 0x1D<<7 | 0x46, - 24992 - 19968: jis0212<<14 | 0x1D<<7 | 0x47, - 24996 - 19968: jis0208<<14 | 0x29<<7 | 0x0F, - 24997 - 19968: jis0212<<14 | 0x1D<<7 | 0x48, - 24999 - 19968: jis0208<<14 | 0x25<<7 | 0x13, - 25000 - 19968: jis0212<<14 | 0x1D<<7 | 0x49, - 25001 - 19968: jis0208<<14 | 0x16<<7 | 0x25, - 25002 - 19968: jis0212<<14 | 0x1D<<7 | 0x4A, - 25003 - 19968: jis0208<<14 | 0x37<<7 | 0x41, - 25004 - 19968: jis0208<<14 | 0x37<<7 | 0x3C, - 25005 - 19968: jis0212<<14 | 0x1D<<7 | 0x4B, - 25006 - 19968: jis0208<<14 | 0x37<<7 | 0x42, - 25010 - 19968: jis0208<<14 | 0x16<<7 | 0x5A, - 25014 - 19968: jis0208<<14 | 0x11<<7 | 0x10, - 25016 - 19968: jis0212<<14 | 0x1D<<7 | 0x4C, - 25017 - 19968: jis0212<<14 | 0x1D<<7 | 0x4D, - 25018 - 19968: jis0208<<14 | 0x37<<7 | 0x4A, - 25020 - 19968: jis0212<<14 | 0x1D<<7 | 0x4E, - 25022 - 19968: jis0208<<14 | 0x13<<7 | 0x17, - 25024 - 19968: jis0212<<14 | 0x1D<<7 | 0x4F, - 25025 - 19968: jis0212<<14 | 0x1D<<7 | 0x50, - 25026 - 19968: jis0212<<14 | 0x1D<<7 | 0x51, - 25027 - 19968: jis0208<<14 | 0x37<<7 | 0x48, - 25030 - 19968: jis0208<<14 | 0x37<<7 | 0x49, - 25031 - 19968: jis0208<<14 | 0x19<<7 | 0x08, - 25032 - 19968: jis0208<<14 | 0x37<<7 | 0x47, - 25033 - 19968: jis0208<<14 | 0x37<<7 | 0x45, - 25034 - 19968: jis0208<<14 | 0x37<<7 | 0x44, - 25035 - 19968: jis0208<<14 | 0x37<<7 | 0x4B, - 25036 - 19968: jis0208<<14 | 0x37<<7 | 0x43, - 25037 - 19968: jis0208<<14 | 0x37<<7 | 0x4D, - 25038 - 19968: jis0212<<14 | 0x1D<<7 | 0x52, - 25039 - 19968: jis0212<<14 | 0x1D<<7 | 0x53, - 25040 - 19968: jis0208<<14 | 0x11<<7 | 0x5A, - 25045 - 19968: jis0212<<14 | 0x1D<<7 | 0x54, - 25052 - 19968: jis0212<<14 | 0x1D<<7 | 0x55, - 25053 - 19968: jis0212<<14 | 0x1D<<7 | 0x56, - 25054 - 19968: jis0212<<14 | 0x1D<<7 | 0x57, - 25055 - 19968: jis0212<<14 | 0x1D<<7 | 0x58, - 25057 - 19968: jis0212<<14 | 0x1D<<7 | 0x59, - 25058 - 19968: jis0212<<14 | 0x1D<<7 | 0x5A, - 25059 - 19968: jis0208<<14 | 0x37<<7 | 0x4F, - 25061 - 19968: jis0212<<14 | 0x1D<<7 | 0x5D, - 25062 - 19968: jis0208<<14 | 0x37<<7 | 0x4E, - 25063 - 19968: jis0212<<14 | 0x1D<<7 | 0x5B, - 25065 - 19968: jis0212<<14 | 0x1D<<7 | 0x5C, - 25068 - 19968: jis0212<<14 | 0x1E<<7 | 0x00, - 25069 - 19968: jis0212<<14 | 0x1E<<7 | 0x01, - 25071 - 19968: jis0212<<14 | 0x1E<<7 | 0x02, - 25074 - 19968: jis0208<<14 | 0x23<<7 | 0x07, - 25076 - 19968: jis0208<<14 | 0x37<<7 | 0x52, - 25078 - 19968: jis0208<<14 | 0x37<<7 | 0x50, - 25079 - 19968: jis0208<<14 | 0x37<<7 | 0x46, - 25080 - 19968: jis0208<<14 | 0x16<<7 | 0x5B, - 25082 - 19968: jis0208<<14 | 0x37<<7 | 0x51, - 25084 - 19968: jis0208<<14 | 0x37<<7 | 0x55, - 25085 - 19968: jis0208<<14 | 0x37<<7 | 0x54, - 25086 - 19968: jis0208<<14 | 0x37<<7 | 0x56, - 25087 - 19968: jis0208<<14 | 0x37<<7 | 0x53, - 25088 - 19968: jis0208<<14 | 0x37<<7 | 0x57, - 25089 - 19968: jis0212<<14 | 0x1E<<7 | 0x03, - 25091 - 19968: jis0212<<14 | 0x1E<<7 | 0x04, - 25092 - 19968: jis0212<<14 | 0x1E<<7 | 0x05, - 25095 - 19968: jis0212<<14 | 0x1E<<7 | 0x06, - 25096 - 19968: jis0208<<14 | 0x37<<7 | 0x58, - 25097 - 19968: jis0208<<14 | 0x37<<7 | 0x59, - 25098 - 19968: jis0208<<14 | 0x29<<7 | 0x49, - 25100 - 19968: jis0208<<14 | 0x37<<7 | 0x5B, - 25101 - 19968: jis0208<<14 | 0x37<<7 | 0x5A, - 25102 - 19968: jis0208<<14 | 0x1C<<7 | 0x1E, - 25104 - 19968: jis0208<<14 | 0x1F<<7 | 0x0D, - 25105 - 19968: jis0208<<14 | 0x11<<7 | 0x45, - 25106 - 19968: jis0208<<14 | 0x11<<7 | 0x5B, - 25107 - 19968: jis0208<<14 | 0x59<<7 | 0x0C, - 25108 - 19968: jis0208<<14 | 0x37<<7 | 0x5C, - 25109 - 19968: jis0212<<14 | 0x1E<<7 | 0x08, - 25110 - 19968: jis0208<<14 | 0x0F<<7 | 0x1E, - 25114 - 19968: jis0208<<14 | 0x1F<<7 | 0x2B, - 25115 - 19968: jis0208<<14 | 0x37<<7 | 0x5D, - 25116 - 19968: jis0212<<14 | 0x1E<<7 | 0x09, - 25117 - 19968: jis0208<<14 | 0x4B<<7 | 0x22, - 25118 - 19968: jis0208<<14 | 0x38<<7 | 0x00, - 25119 - 19968: jis0208<<14 | 0x16<<7 | 0x40, - 25120 - 19968: jis0212<<14 | 0x1E<<7 | 0x0A, - 25121 - 19968: jis0208<<14 | 0x38<<7 | 0x01, - 25122 - 19968: jis0212<<14 | 0x1E<<7 | 0x0B, - 25123 - 19968: jis0212<<14 | 0x1E<<7 | 0x0C, - 25126 - 19968: jis0208<<14 | 0x1F<<7 | 0x4E, - 25127 - 19968: jis0212<<14 | 0x1E<<7 | 0x0D, - 25129 - 19968: jis0212<<14 | 0x1E<<7 | 0x0E, - 25130 - 19968: jis0208<<14 | 0x38<<7 | 0x02, - 25131 - 19968: jis0212<<14 | 0x1E<<7 | 0x0F, - 25134 - 19968: jis0208<<14 | 0x38<<7 | 0x03, - 25135 - 19968: jis0208<<14 | 0x14<<7 | 0x19, - 25136 - 19968: jis0208<<14 | 0x38<<7 | 0x04, - 25138 - 19968: jis0208<<14 | 0x38<<7 | 0x05, - 25139 - 19968: jis0208<<14 | 0x38<<7 | 0x06, - 25140 - 19968: jis0208<<14 | 0x21<<7 | 0x36, - 25144 - 19968: jis0208<<14 | 0x17<<7 | 0x2C, - 25145 - 19968: jis0212<<14 | 0x1E<<7 | 0x10, - 25147 - 19968: jis0208<<14 | 0x2B<<7 | 0x40, - 25149 - 19968: jis0212<<14 | 0x1E<<7 | 0x11, - 25151 - 19968: jis0208<<14 | 0x2A<<7 | 0x1B, - 25152 - 19968: jis0208<<14 | 0x1C<<7 | 0x49, - 25153 - 19968: jis0208<<14 | 0x38<<7 | 0x07, - 25154 - 19968: jis0212<<14 | 0x1E<<7 | 0x12, - 25155 - 19968: jis0212<<14 | 0x1E<<7 | 0x13, - 25156 - 19968: jis0212<<14 | 0x1E<<7 | 0x14, - 25158 - 19968: jis0212<<14 | 0x1E<<7 | 0x15, - 25159 - 19968: jis0208<<14 | 0x1F<<7 | 0x4F, - 25160 - 19968: jis0208<<14 | 0x4D<<7 | 0x1C, - 25161 - 19968: jis0208<<14 | 0x27<<7 | 0x41, - 25163 - 19968: jis0208<<14 | 0x1B<<7 | 0x49, - 25164 - 19968: jis0212<<14 | 0x1E<<7 | 0x16, - 25165 - 19968: jis0208<<14 | 0x19<<7 | 0x2C, - 25166 - 19968: jis0208<<14 | 0x38<<7 | 0x08, - 25168 - 19968: jis0212<<14 | 0x1E<<7 | 0x17, - 25169 - 19968: jis0212<<14 | 0x1E<<7 | 0x18, - 25170 - 19968: jis0212<<14 | 0x1E<<7 | 0x19, - 25171 - 19968: jis0208<<14 | 0x21<<7 | 0x26, - 25172 - 19968: jis0212<<14 | 0x1E<<7 | 0x1A, - 25173 - 19968: jis0208<<14 | 0x29<<7 | 0x06, - 25174 - 19968: jis0212<<14 | 0x1E<<7 | 0x1B, - 25176 - 19968: jis0208<<14 | 0x21<<7 | 0x50, - 25178 - 19968: jis0212<<14 | 0x1E<<7 | 0x1C, - 25179 - 19968: jis0208<<14 | 0x38<<7 | 0x0B, - 25180 - 19968: jis0212<<14 | 0x1E<<7 | 0x1D, - 25182 - 19968: jis0208<<14 | 0x38<<7 | 0x09, - 25184 - 19968: jis0208<<14 | 0x38<<7 | 0x0C, - 25187 - 19968: jis0208<<14 | 0x38<<7 | 0x0A, - 25188 - 19968: jis0212<<14 | 0x1E<<7 | 0x1E, - 25192 - 19968: jis0208<<14 | 0x38<<7 | 0x0D, - 25197 - 19968: jis0212<<14 | 0x1E<<7 | 0x1F, - 25198 - 19968: jis0208<<14 | 0x29<<7 | 0x10, - 25199 - 19968: jis0212<<14 | 0x1E<<7 | 0x20, - 25201 - 19968: jis0208<<14 | 0x0F<<7 | 0x16, - 25203 - 19968: jis0212<<14 | 0x1E<<7 | 0x21, - 25206 - 19968: jis0208<<14 | 0x28<<7 | 0x3D, - 25209 - 19968: jis0208<<14 | 0x27<<7 | 0x42, - 25210 - 19968: jis0212<<14 | 0x1E<<7 | 0x22, - 25212 - 19968: jis0208<<14 | 0x38<<7 | 0x0E, - 25213 - 19968: jis0212<<14 | 0x1E<<7 | 0x23, - 25214 - 19968: jis0208<<14 | 0x38<<7 | 0x11, - 25215 - 19968: jis0208<<14 | 0x1D<<7 | 0x14, - 25216 - 19968: jis0208<<14 | 0x14<<7 | 0x1A, - 25218 - 19968: jis0208<<14 | 0x38<<7 | 0x0F, - 25219 - 19968: jis0208<<14 | 0x38<<7 | 0x16, - 25220 - 19968: jis0208<<14 | 0x1D<<7 | 0x15, - 25225 - 19968: jis0208<<14 | 0x38<<7 | 0x10, - 25226 - 19968: jis0208<<14 | 0x26<<7 | 0x23, - 25229 - 19968: jis0212<<14 | 0x1E<<7 | 0x24, - 25230 - 19968: jis0212<<14 | 0x1E<<7 | 0x25, - 25231 - 19968: jis0212<<14 | 0x1E<<7 | 0x26, - 25232 - 19968: jis0212<<14 | 0x1E<<7 | 0x27, - 25233 - 19968: jis0208<<14 | 0x2C<<7 | 0x3D, - 25234 - 19968: jis0208<<14 | 0x38<<7 | 0x12, - 25235 - 19968: jis0208<<14 | 0x38<<7 | 0x13, - 25236 - 19968: jis0208<<14 | 0x38<<7 | 0x17, - 25237 - 19968: jis0208<<14 | 0x24<<7 | 0x49, - 25238 - 19968: jis0208<<14 | 0x38<<7 | 0x14, - 25239 - 19968: jis0208<<14 | 0x18<<7 | 0x12, - 25240 - 19968: jis0208<<14 | 0x1F<<7 | 0x3D, - 25243 - 19968: jis0208<<14 | 0x38<<7 | 0x25, - 25244 - 19968: jis0208<<14 | 0x27<<7 | 0x13, - 25246 - 19968: jis0208<<14 | 0x21<<7 | 0x51, - 25254 - 19968: jis0208<<14 | 0x59<<7 | 0x0D, - 25256 - 19968: jis0212<<14 | 0x1E<<7 | 0x29, - 25259 - 19968: jis0208<<14 | 0x27<<7 | 0x43, - 25260 - 19968: jis0208<<14 | 0x39<<7 | 0x0C, - 25265 - 19968: jis0208<<14 | 0x29<<7 | 0x59, - 25267 - 19968: jis0212<<14 | 0x1E<<7 | 0x2A, - 25269 - 19968: jis0208<<14 | 0x23<<7 | 0x50, - 25270 - 19968: jis0212<<14 | 0x1E<<7 | 0x2B, - 25271 - 19968: jis0212<<14 | 0x1E<<7 | 0x2C, - 25273 - 19968: jis0208<<14 | 0x2A<<7 | 0x54, - 25274 - 19968: jis0212<<14 | 0x1E<<7 | 0x2D, - 25275 - 19968: jis0208<<14 | 0x38<<7 | 0x1A, - 25276 - 19968: jis0208<<14 | 0x11<<7 | 0x00, - 25277 - 19968: jis0208<<14 | 0x22<<7 | 0x49, - 25278 - 19968: jis0212<<14 | 0x1E<<7 | 0x2E, - 25279 - 19968: jis0212<<14 | 0x1E<<7 | 0x2F, - 25282 - 19968: jis0208<<14 | 0x38<<7 | 0x23, - 25284 - 19968: jis0212<<14 | 0x1E<<7 | 0x30, - 25285 - 19968: jis0208<<14 | 0x22<<7 | 0x13, - 25286 - 19968: jis0208<<14 | 0x38<<7 | 0x1D, - 25287 - 19968: jis0208<<14 | 0x38<<7 | 0x24, - 25288 - 19968: jis0208<<14 | 0x38<<7 | 0x1F, - 25289 - 19968: jis0208<<14 | 0x38<<7 | 0x26, - 25290 - 19968: jis0208<<14 | 0x38<<7 | 0x22, - 25292 - 19968: jis0208<<14 | 0x38<<7 | 0x21, - 25293 - 19968: jis0208<<14 | 0x26<<7 | 0x4E, - 25294 - 19968: jis0212<<14 | 0x1E<<7 | 0x31, - 25295 - 19968: jis0208<<14 | 0x38<<7 | 0x1B, - 25296 - 19968: jis0208<<14 | 0x11<<7 | 0x5C, - 25297 - 19968: jis0208<<14 | 0x38<<7 | 0x19, - 25298 - 19968: jis0208<<14 | 0x14<<7 | 0x50, - 25299 - 19968: jis0208<<14 | 0x21<<7 | 0x52, - 25300 - 19968: jis0208<<14 | 0x38<<7 | 0x15, - 25301 - 19968: jis0212<<14 | 0x1E<<7 | 0x32, - 25302 - 19968: jis0212<<14 | 0x1E<<7 | 0x33, - 25303 - 19968: jis0208<<14 | 0x38<<7 | 0x18, - 25304 - 19968: jis0208<<14 | 0x18<<7 | 0x13, - 25305 - 19968: jis0208<<14 | 0x1F<<7 | 0x3A, - 25306 - 19968: jis0212<<14 | 0x1E<<7 | 0x34, - 25307 - 19968: jis0208<<14 | 0x1D<<7 | 0x16, - 25308 - 19968: jis0208<<14 | 0x38<<7 | 0x20, - 25309 - 19968: jis0208<<14 | 0x26<<7 | 0x31, - 25312 - 19968: jis0208<<14 | 0x14<<7 | 0x51, - 25313 - 19968: jis0208<<14 | 0x12<<7 | 0x27, - 25322 - 19968: jis0212<<14 | 0x1E<<7 | 0x35, - 25324 - 19968: jis0208<<14 | 0x12<<7 | 0x46, - 25325 - 19968: jis0208<<14 | 0x1E<<7 | 0x00, - 25326 - 19968: jis0208<<14 | 0x38<<7 | 0x28, - 25327 - 19968: jis0208<<14 | 0x38<<7 | 0x2D, - 25329 - 19968: jis0208<<14 | 0x38<<7 | 0x29, - 25330 - 19968: jis0212<<14 | 0x1E<<7 | 0x36, - 25331 - 19968: jis0208<<14 | 0x16<<7 | 0x5C, - 25332 - 19968: jis0212<<14 | 0x1E<<7 | 0x37, - 25333 - 19968: jis0208<<14 | 0x38<<7 | 0x2E, - 25334 - 19968: jis0208<<14 | 0x1A<<7 | 0x01, - 25335 - 19968: jis0208<<14 | 0x18<<7 | 0x48, - 25340 - 19968: jis0212<<14 | 0x1E<<7 | 0x38, - 25341 - 19968: jis0212<<14 | 0x1E<<7 | 0x39, - 25342 - 19968: jis0208<<14 | 0x1C<<7 | 0x05, - 25343 - 19968: jis0208<<14 | 0x38<<7 | 0x1C, - 25345 - 19968: jis0208<<14 | 0x1A<<7 | 0x5C, - 25346 - 19968: jis0208<<14 | 0x38<<7 | 0x2B, - 25347 - 19968: jis0212<<14 | 0x1E<<7 | 0x3A, - 25348 - 19968: jis0212<<14 | 0x1E<<7 | 0x3B, - 25351 - 19968: jis0208<<14 | 0x1A<<7 | 0x37, - 25352 - 19968: jis0208<<14 | 0x38<<7 | 0x2C, - 25353 - 19968: jis0208<<14 | 0x0F<<7 | 0x23, - 25354 - 19968: jis0212<<14 | 0x1E<<7 | 0x3C, - 25355 - 19968: jis0212<<14 | 0x1E<<7 | 0x3D, - 25356 - 19968: jis0208<<14 | 0x38<<7 | 0x27, - 25357 - 19968: jis0212<<14 | 0x1E<<7 | 0x3E, - 25360 - 19968: jis0212<<14 | 0x1E<<7 | 0x3F, - 25361 - 19968: jis0208<<14 | 0x23<<7 | 0x08, - 25363 - 19968: jis0212<<14 | 0x1E<<7 | 0x40, - 25366 - 19968: jis0212<<14 | 0x1E<<7 | 0x41, - 25368 - 19968: jis0212<<14 | 0x1E<<7 | 0x42, - 25369 - 19968: jis0208<<14 | 0x14<<7 | 0x52, - 25375 - 19968: jis0208<<14 | 0x15<<7 | 0x13, - 25383 - 19968: jis0208<<14 | 0x38<<7 | 0x2A, - 25384 - 19968: jis0208<<14 | 0x0F<<7 | 0x06, - 25385 - 19968: jis0212<<14 | 0x1E<<7 | 0x43, - 25386 - 19968: jis0212<<14 | 0x1E<<7 | 0x44, - 25387 - 19968: jis0208<<14 | 0x19<<7 | 0x22, - 25389 - 19968: jis0212<<14 | 0x1E<<7 | 0x45, - 25391 - 19968: jis0208<<14 | 0x1E<<7 | 0x15, - 25397 - 19968: jis0212<<14 | 0x1E<<7 | 0x46, - 25398 - 19968: jis0212<<14 | 0x1E<<7 | 0x47, - 25401 - 19968: jis0212<<14 | 0x1E<<7 | 0x48, - 25402 - 19968: jis0208<<14 | 0x23<<7 | 0x51, - 25404 - 19968: jis0212<<14 | 0x1E<<7 | 0x49, - 25405 - 19968: jis0208<<14 | 0x27<<7 | 0x33, - 25406 - 19968: jis0208<<14 | 0x38<<7 | 0x30, - 25407 - 19968: jis0208<<14 | 0x20<<7 | 0x3D, - 25409 - 19968: jis0212<<14 | 0x1E<<7 | 0x4A, - 25410 - 19968: jis0212<<14 | 0x1E<<7 | 0x4B, - 25411 - 19968: jis0212<<14 | 0x1E<<7 | 0x4C, - 25412 - 19968: jis0212<<14 | 0x1E<<7 | 0x4D, - 25414 - 19968: jis0212<<14 | 0x1E<<7 | 0x4E, - 25417 - 19968: jis0208<<14 | 0x21<<7 | 0x09, - 25418 - 19968: jis0212<<14 | 0x1E<<7 | 0x4F, - 25419 - 19968: jis0212<<14 | 0x1E<<7 | 0x50, - 25420 - 19968: jis0208<<14 | 0x1A<<7 | 0x0A, - 25421 - 19968: jis0208<<14 | 0x38<<7 | 0x31, - 25422 - 19968: jis0212<<14 | 0x1E<<7 | 0x51, - 25423 - 19968: jis0208<<14 | 0x38<<7 | 0x33, - 25424 - 19968: jis0208<<14 | 0x38<<7 | 0x2F, - 25426 - 19968: jis0212<<14 | 0x1E<<7 | 0x52, - 25427 - 19968: jis0212<<14 | 0x1E<<7 | 0x53, - 25428 - 19968: jis0212<<14 | 0x1E<<7 | 0x54, - 25429 - 19968: jis0208<<14 | 0x29<<7 | 0x40, - 25431 - 19968: jis0208<<14 | 0x23<<7 | 0x1C, - 25432 - 19968: jis0212<<14 | 0x1E<<7 | 0x55, - 25435 - 19968: jis0212<<14 | 0x1E<<7 | 0x56, - 25436 - 19968: jis0208<<14 | 0x20<<7 | 0x3B, - 25445 - 19968: jis0212<<14 | 0x1E<<7 | 0x57, - 25446 - 19968: jis0212<<14 | 0x1E<<7 | 0x58, - 25447 - 19968: jis0208<<14 | 0x29<<7 | 0x5A, - 25448 - 19968: jis0208<<14 | 0x1B<<7 | 0x2D, - 25449 - 19968: jis0208<<14 | 0x38<<7 | 0x3F, - 25451 - 19968: jis0208<<14 | 0x38<<7 | 0x3E, - 25452 - 19968: jis0212<<14 | 0x1E<<7 | 0x59, - 25453 - 19968: jis0212<<14 | 0x1E<<7 | 0x5A, - 25454 - 19968: jis0208<<14 | 0x1E<<7 | 0x57, - 25457 - 19968: jis0212<<14 | 0x1E<<7 | 0x5B, - 25458 - 19968: jis0208<<14 | 0x16<<7 | 0x5D, - 25460 - 19968: jis0212<<14 | 0x1E<<7 | 0x5C, - 25461 - 19968: jis0212<<14 | 0x1E<<7 | 0x5D, - 25462 - 19968: jis0208<<14 | 0x38<<7 | 0x38, - 25463 - 19968: jis0208<<14 | 0x1D<<7 | 0x18, - 25464 - 19968: jis0212<<14 | 0x1F<<7 | 0x00, - 25466 - 19968: jis0208<<14 | 0x25<<7 | 0x47, - 25467 - 19968: jis0208<<14 | 0x26<<7 | 0x10, - 25468 - 19968: jis0212<<14 | 0x1F<<7 | 0x01, - 25469 - 19968: jis0212<<14 | 0x1F<<7 | 0x02, - 25471 - 19968: jis0212<<14 | 0x1F<<7 | 0x03, - 25472 - 19968: jis0208<<14 | 0x38<<7 | 0x36, - 25474 - 19968: jis0212<<14 | 0x1F<<7 | 0x04, - 25475 - 19968: jis0208<<14 | 0x20<<7 | 0x3C, - 25476 - 19968: jis0212<<14 | 0x1F<<7 | 0x05, - 25479 - 19968: jis0212<<14 | 0x1F<<7 | 0x06, - 25480 - 19968: jis0208<<14 | 0x1B<<7 | 0x57, - 25481 - 19968: jis0208<<14 | 0x38<<7 | 0x3B, - 25482 - 19968: jis0212<<14 | 0x1F<<7 | 0x07, - 25484 - 19968: jis0208<<14 | 0x1D<<7 | 0x17, - 25486 - 19968: jis0208<<14 | 0x38<<7 | 0x35, - 25487 - 19968: jis0208<<14 | 0x38<<7 | 0x3A, - 25488 - 19968: jis0212<<14 | 0x1F<<7 | 0x08, - 25490 - 19968: jis0208<<14 | 0x26<<7 | 0x32, - 25492 - 19968: jis0212<<14 | 0x1F<<7 | 0x09, - 25493 - 19968: jis0212<<14 | 0x1F<<7 | 0x0A, - 25494 - 19968: jis0208<<14 | 0x38<<7 | 0x34, - 25496 - 19968: jis0208<<14 | 0x16<<7 | 0x00, - 25497 - 19968: jis0212<<14 | 0x1F<<7 | 0x0B, - 25498 - 19968: jis0212<<14 | 0x1F<<7 | 0x0C, - 25499 - 19968: jis0208<<14 | 0x12<<7 | 0x3C, - 25502 - 19968: jis0212<<14 | 0x1F<<7 | 0x0D, - 25503 - 19968: jis0208<<14 | 0x38<<7 | 0x3C, - 25504 - 19968: jis0208<<14 | 0x2D<<7 | 0x0A, - 25505 - 19968: jis0208<<14 | 0x19<<7 | 0x2D, - 25506 - 19968: jis0208<<14 | 0x22<<7 | 0x14, - 25507 - 19968: jis0208<<14 | 0x38<<7 | 0x39, - 25508 - 19968: jis0212<<14 | 0x1F<<7 | 0x0E, - 25509 - 19968: jis0208<<14 | 0x1F<<7 | 0x3B, - 25510 - 19968: jis0212<<14 | 0x1F<<7 | 0x0F, - 25511 - 19968: jis0208<<14 | 0x18<<7 | 0x14, - 25512 - 19968: jis0208<<14 | 0x1E<<7 | 0x43, - 25513 - 19968: jis0208<<14 | 0x10<<7 | 0x45, - 25514 - 19968: jis0208<<14 | 0x20<<7 | 0x1B, - 25515 - 19968: jis0208<<14 | 0x38<<7 | 0x37, - 25516 - 19968: jis0208<<14 | 0x14<<7 | 0x24, - 25517 - 19968: jis0212<<14 | 0x1F<<7 | 0x10, - 25518 - 19968: jis0212<<14 | 0x1F<<7 | 0x11, - 25519 - 19968: jis0212<<14 | 0x1F<<7 | 0x12, - 25522 - 19968: jis0208<<14 | 0x16<<7 | 0x26, - 25524 - 19968: jis0208<<14 | 0x23<<7 | 0x2E, - 25525 - 19968: jis0208<<14 | 0x38<<7 | 0x3D, - 25531 - 19968: jis0208<<14 | 0x20<<7 | 0x3E, - 25533 - 19968: jis0212<<14 | 0x1F<<7 | 0x13, - 25534 - 19968: jis0208<<14 | 0x38<<7 | 0x40, - 25536 - 19968: jis0208<<14 | 0x38<<7 | 0x42, - 25537 - 19968: jis0212<<14 | 0x1F<<7 | 0x14, - 25539 - 19968: jis0208<<14 | 0x21<<7 | 0x16, - 25540 - 19968: jis0208<<14 | 0x38<<7 | 0x48, - 25541 - 19968: jis0212<<14 | 0x1F<<7 | 0x15, - 25542 - 19968: jis0208<<14 | 0x38<<7 | 0x43, - 25544 - 19968: jis0212<<14 | 0x1F<<7 | 0x16, - 25545 - 19968: jis0208<<14 | 0x38<<7 | 0x45, - 25550 - 19968: jis0212<<14 | 0x1F<<7 | 0x17, - 25551 - 19968: jis0208<<14 | 0x28<<7 | 0x20, - 25552 - 19968: jis0208<<14 | 0x23<<7 | 0x52, - 25553 - 19968: jis0212<<14 | 0x1F<<7 | 0x18, - 25554 - 19968: jis0208<<14 | 0x38<<7 | 0x46, - 25555 - 19968: jis0212<<14 | 0x1F<<7 | 0x19, - 25556 - 19968: jis0212<<14 | 0x1F<<7 | 0x1A, - 25557 - 19968: jis0212<<14 | 0x1F<<7 | 0x1B, - 25558 - 19968: jis0208<<14 | 0x2C<<7 | 0x0B, - 25562 - 19968: jis0208<<14 | 0x2C<<7 | 0x27, - 25563 - 19968: jis0208<<14 | 0x13<<7 | 0x18, - 25564 - 19968: jis0212<<14 | 0x1F<<7 | 0x1C, - 25568 - 19968: jis0212<<14 | 0x1F<<7 | 0x1D, - 25569 - 19968: jis0208<<14 | 0x0F<<7 | 0x0D, - 25571 - 19968: jis0208<<14 | 0x38<<7 | 0x44, - 25573 - 19968: jis0212<<14 | 0x1F<<7 | 0x1E, - 25577 - 19968: jis0208<<14 | 0x38<<7 | 0x41, - 25578 - 19968: jis0212<<14 | 0x1F<<7 | 0x1F, - 25580 - 19968: jis0212<<14 | 0x1F<<7 | 0x20, - 25582 - 19968: jis0208<<14 | 0x13<<7 | 0x57, - 25586 - 19968: jis0212<<14 | 0x1F<<7 | 0x21, - 25587 - 19968: jis0212<<14 | 0x1F<<7 | 0x22, - 25588 - 19968: jis0208<<14 | 0x10<<7 | 0x46, - 25589 - 19968: jis0208<<14 | 0x59<<7 | 0x0E, - 25590 - 19968: jis0208<<14 | 0x38<<7 | 0x47, - 25592 - 19968: jis0212<<14 | 0x1F<<7 | 0x24, - 25593 - 19968: jis0212<<14 | 0x1F<<7 | 0x25, - 25594 - 19968: jis0208<<14 | 0x2C<<7 | 0x28, - 25606 - 19968: jis0208<<14 | 0x38<<7 | 0x4B, - 25609 - 19968: jis0212<<14 | 0x1F<<7 | 0x26, - 25610 - 19968: jis0212<<14 | 0x1F<<7 | 0x27, - 25613 - 19968: jis0208<<14 | 0x21<<7 | 0x1A, - 25615 - 19968: jis0208<<14 | 0x38<<7 | 0x52, - 25616 - 19968: jis0212<<14 | 0x1F<<7 | 0x28, - 25618 - 19968: jis0212<<14 | 0x1F<<7 | 0x29, - 25619 - 19968: jis0208<<14 | 0x38<<7 | 0x4C, - 25620 - 19968: jis0212<<14 | 0x1F<<7 | 0x2A, - 25622 - 19968: jis0208<<14 | 0x38<<7 | 0x49, - 25623 - 19968: jis0208<<14 | 0x38<<7 | 0x50, - 25624 - 19968: jis0212<<14 | 0x1F<<7 | 0x2B, - 25628 - 19968: jis0208<<14 | 0x38<<7 | 0x32, - 25630 - 19968: jis0212<<14 | 0x1F<<7 | 0x2C, - 25632 - 19968: jis0212<<14 | 0x1F<<7 | 0x2D, - 25634 - 19968: jis0212<<14 | 0x1F<<7 | 0x2E, - 25636 - 19968: jis0212<<14 | 0x1F<<7 | 0x2F, - 25637 - 19968: jis0212<<14 | 0x1F<<7 | 0x30, - 25638 - 19968: jis0208<<14 | 0x38<<7 | 0x4D, - 25640 - 19968: jis0208<<14 | 0x38<<7 | 0x51, - 25641 - 19968: jis0212<<14 | 0x1F<<7 | 0x31, - 25642 - 19968: jis0212<<14 | 0x1F<<7 | 0x32, - 25644 - 19968: jis0208<<14 | 0x27<<7 | 0x21, - 25645 - 19968: jis0208<<14 | 0x24<<7 | 0x4A, - 25647 - 19968: jis0212<<14 | 0x1F<<7 | 0x33, - 25648 - 19968: jis0212<<14 | 0x1F<<7 | 0x34, - 25652 - 19968: jis0208<<14 | 0x38<<7 | 0x4A, - 25653 - 19968: jis0212<<14 | 0x1F<<7 | 0x35, - 25654 - 19968: jis0208<<14 | 0x38<<7 | 0x4E, - 25658 - 19968: jis0208<<14 | 0x16<<7 | 0x27, - 25661 - 19968: jis0212<<14 | 0x1F<<7 | 0x36, - 25662 - 19968: jis0208<<14 | 0x19<<7 | 0x50, - 25663 - 19968: jis0212<<14 | 0x1F<<7 | 0x37, - 25666 - 19968: jis0208<<14 | 0x1F<<7 | 0x3C, - 25675 - 19968: jis0212<<14 | 0x1F<<7 | 0x38, - 25678 - 19968: jis0208<<14 | 0x38<<7 | 0x56, - 25679 - 19968: jis0212<<14 | 0x1F<<7 | 0x39, - 25681 - 19968: jis0212<<14 | 0x1F<<7 | 0x3A, - 25682 - 19968: jis0212<<14 | 0x1F<<7 | 0x3B, - 25683 - 19968: jis0212<<14 | 0x1F<<7 | 0x3C, - 25684 - 19968: jis0212<<14 | 0x1F<<7 | 0x3D, - 25688 - 19968: jis0208<<14 | 0x24<<7 | 0x05, - 25690 - 19968: jis0212<<14 | 0x1F<<7 | 0x3E, - 25691 - 19968: jis0212<<14 | 0x1F<<7 | 0x3F, - 25692 - 19968: jis0212<<14 | 0x1F<<7 | 0x40, - 25693 - 19968: jis0212<<14 | 0x1F<<7 | 0x41, - 25695 - 19968: jis0212<<14 | 0x1F<<7 | 0x42, - 25696 - 19968: jis0208<<14 | 0x59<<7 | 0x0F, - 25697 - 19968: jis0212<<14 | 0x1F<<7 | 0x44, - 25699 - 19968: jis0212<<14 | 0x1F<<7 | 0x45, - 25703 - 19968: jis0208<<14 | 0x38<<7 | 0x53, - 25705 - 19968: jis0208<<14 | 0x2A<<7 | 0x3F, - 25709 - 19968: jis0212<<14 | 0x1F<<7 | 0x46, - 25711 - 19968: jis0208<<14 | 0x38<<7 | 0x54, - 25715 - 19968: jis0212<<14 | 0x1F<<7 | 0x47, - 25716 - 19968: jis0212<<14 | 0x1F<<7 | 0x48, - 25718 - 19968: jis0208<<14 | 0x38<<7 | 0x55, - 25720 - 19968: jis0208<<14 | 0x2B<<7 | 0x2D, - 25722 - 19968: jis0208<<14 | 0x1F<<7 | 0x01, - 25723 - 19968: jis0212<<14 | 0x1F<<7 | 0x49, - 25725 - 19968: jis0212<<14 | 0x1F<<7 | 0x4A, - 25731 - 19968: jis0208<<14 | 0x16<<7 | 0x41, - 25733 - 19968: jis0212<<14 | 0x1F<<7 | 0x4B, - 25735 - 19968: jis0212<<14 | 0x1F<<7 | 0x4C, - 25736 - 19968: jis0208<<14 | 0x38<<7 | 0x5C, - 25743 - 19968: jis0212<<14 | 0x1F<<7 | 0x4D, - 25744 - 19968: jis0212<<14 | 0x1F<<7 | 0x4E, - 25745 - 19968: jis0212<<14 | 0x1F<<7 | 0x4F, - 25746 - 19968: jis0208<<14 | 0x1A<<7 | 0x14, - 25747 - 19968: jis0208<<14 | 0x38<<7 | 0x59, - 25749 - 19968: jis0208<<14 | 0x38<<7 | 0x58, - 25752 - 19968: jis0212<<14 | 0x1F<<7 | 0x50, - 25753 - 19968: jis0212<<14 | 0x1F<<7 | 0x51, - 25754 - 19968: jis0208<<14 | 0x26<<7 | 0x11, - 25755 - 19968: jis0212<<14 | 0x1F<<7 | 0x52, - 25757 - 19968: jis0208<<14 | 0x59<<7 | 0x10, - 25758 - 19968: jis0208<<14 | 0x25<<7 | 0x14, - 25759 - 19968: jis0212<<14 | 0x1F<<7 | 0x54, - 25761 - 19968: jis0212<<14 | 0x1F<<7 | 0x55, - 25763 - 19968: jis0212<<14 | 0x1F<<7 | 0x56, - 25764 - 19968: jis0208<<14 | 0x24<<7 | 0x10, - 25765 - 19968: jis0208<<14 | 0x38<<7 | 0x5A, - 25766 - 19968: jis0212<<14 | 0x1F<<7 | 0x57, - 25768 - 19968: jis0212<<14 | 0x1F<<7 | 0x58, - 25769 - 19968: jis0208<<14 | 0x38<<7 | 0x5B, - 25771 - 19968: jis0208<<14 | 0x28<<7 | 0x4E, - 25772 - 19968: jis0212<<14 | 0x1F<<7 | 0x59, - 25773 - 19968: jis0208<<14 | 0x26<<7 | 0x24, - 25774 - 19968: jis0208<<14 | 0x1A<<7 | 0x02, - 25776 - 19968: jis0208<<14 | 0x1F<<7 | 0x50, - 25778 - 19968: jis0208<<14 | 0x2A<<7 | 0x2F, - 25779 - 19968: jis0212<<14 | 0x1F<<7 | 0x5A, - 25785 - 19968: jis0208<<14 | 0x12<<7 | 0x28, - 25787 - 19968: jis0208<<14 | 0x39<<7 | 0x04, - 25788 - 19968: jis0208<<14 | 0x38<<7 | 0x5D, - 25789 - 19968: jis0212<<14 | 0x1F<<7 | 0x5B, - 25790 - 19968: jis0212<<14 | 0x1F<<7 | 0x5C, - 25791 - 19968: jis0212<<14 | 0x1F<<7 | 0x5D, - 25793 - 19968: jis0208<<14 | 0x2C<<7 | 0x29, - 25794 - 19968: jis0208<<14 | 0x39<<7 | 0x06, - 25796 - 19968: jis0212<<14 | 0x20<<7 | 0x00, - 25797 - 19968: jis0208<<14 | 0x39<<7 | 0x02, - 25799 - 19968: jis0208<<14 | 0x39<<7 | 0x03, - 25801 - 19968: jis0212<<14 | 0x20<<7 | 0x01, - 25802 - 19968: jis0212<<14 | 0x20<<7 | 0x02, - 25803 - 19968: jis0212<<14 | 0x20<<7 | 0x03, - 25804 - 19968: jis0212<<14 | 0x20<<7 | 0x04, - 25805 - 19968: jis0208<<14 | 0x20<<7 | 0x3F, - 25806 - 19968: jis0208<<14 | 0x59<<7 | 0x11, - 25808 - 19968: jis0212<<14 | 0x20<<7 | 0x06, - 25809 - 19968: jis0212<<14 | 0x20<<7 | 0x07, - 25810 - 19968: jis0208<<14 | 0x39<<7 | 0x01, - 25812 - 19968: jis0208<<14 | 0x38<<7 | 0x1E, - 25813 - 19968: jis0212<<14 | 0x20<<7 | 0x08, - 25815 - 19968: jis0212<<14 | 0x20<<7 | 0x09, - 25816 - 19968: jis0208<<14 | 0x39<<7 | 0x05, - 25818 - 19968: jis0208<<14 | 0x39<<7 | 0x00, - 25824 - 19968: jis0208<<14 | 0x39<<7 | 0x0A, - 25825 - 19968: jis0208<<14 | 0x39<<7 | 0x0B, - 25826 - 19968: jis0208<<14 | 0x24<<7 | 0x06, - 25827 - 19968: jis0208<<14 | 0x39<<7 | 0x0D, - 25828 - 19968: jis0212<<14 | 0x20<<7 | 0x0A, - 25829 - 19968: jis0212<<14 | 0x20<<7 | 0x0B, - 25830 - 19968: jis0208<<14 | 0x1A<<7 | 0x03, - 25831 - 19968: jis0208<<14 | 0x39<<7 | 0x08, - 25833 - 19968: jis0212<<14 | 0x20<<7 | 0x0C, - 25834 - 19968: jis0212<<14 | 0x20<<7 | 0x0D, - 25836 - 19968: jis0208<<14 | 0x14<<7 | 0x1B, - 25837 - 19968: jis0212<<14 | 0x20<<7 | 0x0E, - 25839 - 19968: jis0208<<14 | 0x39<<7 | 0x0E, - 25840 - 19968: jis0212<<14 | 0x20<<7 | 0x0F, - 25841 - 19968: jis0208<<14 | 0x39<<7 | 0x07, - 25842 - 19968: jis0208<<14 | 0x39<<7 | 0x12, - 25844 - 19968: jis0208<<14 | 0x39<<7 | 0x11, - 25845 - 19968: jis0212<<14 | 0x20<<7 | 0x10, - 25846 - 19968: jis0208<<14 | 0x39<<7 | 0x10, - 25847 - 19968: jis0212<<14 | 0x20<<7 | 0x11, - 25850 - 19968: jis0208<<14 | 0x39<<7 | 0x13, - 25851 - 19968: jis0212<<14 | 0x20<<7 | 0x12, - 25853 - 19968: jis0208<<14 | 0x39<<7 | 0x15, - 25854 - 19968: jis0208<<14 | 0x1D<<7 | 0x50, - 25855 - 19968: jis0212<<14 | 0x20<<7 | 0x13, - 25856 - 19968: jis0208<<14 | 0x39<<7 | 0x14, - 25857 - 19968: jis0212<<14 | 0x20<<7 | 0x14, - 25860 - 19968: jis0212<<14 | 0x20<<7 | 0x15, - 25861 - 19968: jis0208<<14 | 0x39<<7 | 0x18, - 25864 - 19968: jis0212<<14 | 0x20<<7 | 0x16, - 25865 - 19968: jis0212<<14 | 0x20<<7 | 0x17, - 25866 - 19968: jis0212<<14 | 0x20<<7 | 0x18, - 25871 - 19968: jis0212<<14 | 0x20<<7 | 0x19, - 25875 - 19968: jis0212<<14 | 0x20<<7 | 0x1A, - 25876 - 19968: jis0212<<14 | 0x20<<7 | 0x1B, - 25878 - 19968: jis0212<<14 | 0x20<<7 | 0x1C, - 25880 - 19968: jis0208<<14 | 0x39<<7 | 0x16, - 25881 - 19968: jis0212<<14 | 0x20<<7 | 0x1D, - 25883 - 19968: jis0212<<14 | 0x20<<7 | 0x1E, - 25884 - 19968: jis0208<<14 | 0x39<<7 | 0x17, - 25885 - 19968: jis0208<<14 | 0x38<<7 | 0x4F, - 25886 - 19968: jis0212<<14 | 0x20<<7 | 0x1F, - 25887 - 19968: jis0212<<14 | 0x20<<7 | 0x20, - 25890 - 19968: jis0212<<14 | 0x20<<7 | 0x21, - 25891 - 19968: jis0208<<14 | 0x39<<7 | 0x1A, - 25892 - 19968: jis0208<<14 | 0x39<<7 | 0x19, - 25894 - 19968: jis0212<<14 | 0x20<<7 | 0x22, - 25897 - 19968: jis0212<<14 | 0x20<<7 | 0x23, - 25898 - 19968: jis0208<<14 | 0x38<<7 | 0x57, - 25899 - 19968: jis0208<<14 | 0x39<<7 | 0x1B, - 25900 - 19968: jis0208<<14 | 0x39<<7 | 0x0F, - 25902 - 19968: jis0212<<14 | 0x20<<7 | 0x24, - 25903 - 19968: jis0208<<14 | 0x1A<<7 | 0x38, - 25905 - 19968: jis0212<<14 | 0x20<<7 | 0x25, - 25908 - 19968: jis0208<<14 | 0x39<<7 | 0x1C, - 25909 - 19968: jis0208<<14 | 0x39<<7 | 0x1D, - 25910 - 19968: jis0208<<14 | 0x39<<7 | 0x1F, - 25911 - 19968: jis0208<<14 | 0x39<<7 | 0x1E, - 25912 - 19968: jis0208<<14 | 0x39<<7 | 0x20, - 25913 - 19968: jis0208<<14 | 0x11<<7 | 0x5D, - 25914 - 19968: jis0212<<14 | 0x20<<7 | 0x26, - 25915 - 19968: jis0208<<14 | 0x18<<7 | 0x15, - 25916 - 19968: jis0212<<14 | 0x20<<7 | 0x27, - 25917 - 19968: jis0212<<14 | 0x20<<7 | 0x28, - 25918 - 19968: jis0208<<14 | 0x29<<7 | 0x5B, - 25919 - 19968: jis0208<<14 | 0x1F<<7 | 0x0E, - 25923 - 19968: jis0212<<14 | 0x20<<7 | 0x29, - 25925 - 19968: jis0208<<14 | 0x17<<7 | 0x2D, - 25927 - 19968: jis0212<<14 | 0x20<<7 | 0x2A, - 25928 - 19968: jis0208<<14 | 0x39<<7 | 0x22, - 25929 - 19968: jis0212<<14 | 0x20<<7 | 0x2B, - 25933 - 19968: jis0208<<14 | 0x39<<7 | 0x25, - 25934 - 19968: jis0208<<14 | 0x59<<7 | 0x12, - 25935 - 19968: jis0208<<14 | 0x28<<7 | 0x31, - 25936 - 19968: jis0212<<14 | 0x20<<7 | 0x2C, - 25937 - 19968: jis0208<<14 | 0x14<<7 | 0x3E, - 25938 - 19968: jis0212<<14 | 0x20<<7 | 0x2D, - 25940 - 19968: jis0212<<14 | 0x20<<7 | 0x2E, - 25941 - 19968: jis0208<<14 | 0x39<<7 | 0x24, - 25942 - 19968: jis0208<<14 | 0x39<<7 | 0x23, - 25943 - 19968: jis0208<<14 | 0x26<<7 | 0x33, - 25944 - 19968: jis0208<<14 | 0x39<<7 | 0x26, - 25945 - 19968: jis0208<<14 | 0x15<<7 | 0x14, - 25949 - 19968: jis0208<<14 | 0x39<<7 | 0x28, - 25950 - 19968: jis0208<<14 | 0x39<<7 | 0x27, - 25951 - 19968: jis0212<<14 | 0x20<<7 | 0x2F, - 25952 - 19968: jis0212<<14 | 0x20<<7 | 0x30, - 25954 - 19968: jis0208<<14 | 0x13<<7 | 0x19, - 25955 - 19968: jis0208<<14 | 0x1A<<7 | 0x15, - 25958 - 19968: jis0208<<14 | 0x25<<7 | 0x37, - 25959 - 19968: jis0212<<14 | 0x20<<7 | 0x31, - 25963 - 19968: jis0212<<14 | 0x20<<7 | 0x32, - 25964 - 19968: jis0208<<14 | 0x16<<7 | 0x28, - 25968 - 19968: jis0208<<14 | 0x1E<<7 | 0x53, - 25970 - 19968: jis0208<<14 | 0x39<<7 | 0x29, - 25972 - 19968: jis0208<<14 | 0x1F<<7 | 0x0F, - 25973 - 19968: jis0208<<14 | 0x24<<7 | 0x07, - 25975 - 19968: jis0208<<14 | 0x28<<7 | 0x3E, - 25976 - 19968: jis0208<<14 | 0x39<<7 | 0x2A, - 25978 - 19968: jis0212<<14 | 0x20<<7 | 0x33, - 25981 - 19968: jis0212<<14 | 0x20<<7 | 0x34, - 25985 - 19968: jis0212<<14 | 0x20<<7 | 0x35, - 25986 - 19968: jis0208<<14 | 0x39<<7 | 0x2B, - 25987 - 19968: jis0208<<14 | 0x39<<7 | 0x2C, - 25989 - 19968: jis0212<<14 | 0x20<<7 | 0x36, - 25991 - 19968: jis0208<<14 | 0x29<<7 | 0x17, - 25992 - 19968: jis0208<<14 | 0x34<<7 | 0x3C, - 25993 - 19968: jis0208<<14 | 0x1F<<7 | 0x25, - 25994 - 19968: jis0212<<14 | 0x20<<7 | 0x37, - 25996 - 19968: jis0208<<14 | 0x28<<7 | 0x2B, - 25998 - 19968: jis0208<<14 | 0x19<<7 | 0x37, - 26000 - 19968: jis0208<<14 | 0x27<<7 | 0x44, - 26001 - 19968: jis0208<<14 | 0x27<<7 | 0x22, - 26002 - 19968: jis0212<<14 | 0x20<<7 | 0x38, - 26005 - 19968: jis0212<<14 | 0x20<<7 | 0x39, - 26007 - 19968: jis0208<<14 | 0x24<<7 | 0x2C, - 26008 - 19968: jis0212<<14 | 0x20<<7 | 0x3A, - 26009 - 19968: jis0208<<14 | 0x2D<<7 | 0x20, - 26011 - 19968: jis0208<<14 | 0x39<<7 | 0x2E, - 26012 - 19968: jis0208<<14 | 0x1B<<7 | 0x2F, - 26013 - 19968: jis0212<<14 | 0x20<<7 | 0x3B, - 26015 - 19968: jis0208<<14 | 0x39<<7 | 0x2F, - 26016 - 19968: jis0212<<14 | 0x20<<7 | 0x3C, - 26017 - 19968: jis0208<<14 | 0x0F<<7 | 0x15, - 26019 - 19968: jis0212<<14 | 0x20<<7 | 0x3D, - 26020 - 19968: jis0208<<14 | 0x15<<7 | 0x33, - 26021 - 19968: jis0208<<14 | 0x1F<<7 | 0x2C, - 26022 - 19968: jis0212<<14 | 0x20<<7 | 0x3E, - 26023 - 19968: jis0208<<14 | 0x28<<7 | 0x3F, - 26027 - 19968: jis0208<<14 | 0x39<<7 | 0x30, - 26028 - 19968: jis0208<<14 | 0x1A<<7 | 0x21, - 26029 - 19968: jis0208<<14 | 0x22<<7 | 0x26, - 26030 - 19968: jis0212<<14 | 0x20<<7 | 0x3F, - 26031 - 19968: jis0208<<14 | 0x1A<<7 | 0x3A, - 26032 - 19968: jis0208<<14 | 0x1E<<7 | 0x16, - 26034 - 19968: jis0212<<14 | 0x20<<7 | 0x40, - 26035 - 19968: jis0212<<14 | 0x20<<7 | 0x41, - 26036 - 19968: jis0212<<14 | 0x20<<7 | 0x42, - 26039 - 19968: jis0208<<14 | 0x39<<7 | 0x31, - 26041 - 19968: jis0208<<14 | 0x29<<7 | 0x5C, - 26044 - 19968: jis0208<<14 | 0x10<<7 | 0x56, - 26045 - 19968: jis0208<<14 | 0x1A<<7 | 0x3B, - 26047 - 19968: jis0212<<14 | 0x20<<7 | 0x43, - 26049 - 19968: jis0208<<14 | 0x39<<7 | 0x34, - 26050 - 19968: jis0212<<14 | 0x20<<7 | 0x44, - 26051 - 19968: jis0208<<14 | 0x39<<7 | 0x32, - 26052 - 19968: jis0208<<14 | 0x39<<7 | 0x35, - 26053 - 19968: jis0208<<14 | 0x2D<<7 | 0x18, - 26054 - 19968: jis0208<<14 | 0x39<<7 | 0x33, - 26056 - 19968: jis0212<<14 | 0x20<<7 | 0x45, - 26057 - 19968: jis0212<<14 | 0x20<<7 | 0x46, - 26059 - 19968: jis0208<<14 | 0x1F<<7 | 0x5A, - 26060 - 19968: jis0208<<14 | 0x39<<7 | 0x36, - 26062 - 19968: jis0212<<14 | 0x20<<7 | 0x47, - 26063 - 19968: jis0208<<14 | 0x21<<7 | 0x11, - 26064 - 19968: jis0212<<14 | 0x20<<7 | 0x48, - 26066 - 19968: jis0208<<14 | 0x39<<7 | 0x37, - 26068 - 19968: jis0212<<14 | 0x20<<7 | 0x49, - 26070 - 19968: jis0212<<14 | 0x20<<7 | 0x4A, - 26071 - 19968: jis0208<<14 | 0x13<<7 | 0x59, - 26072 - 19968: jis0212<<14 | 0x20<<7 | 0x4B, - 26073 - 19968: jis0208<<14 | 0x39<<7 | 0x39, - 26075 - 19968: jis0208<<14 | 0x39<<7 | 0x38, - 26079 - 19968: jis0212<<14 | 0x20<<7 | 0x4C, - 26080 - 19968: jis0208<<14 | 0x39<<7 | 0x3A, - 26081 - 19968: jis0208<<14 | 0x39<<7 | 0x3B, - 26082 - 19968: jis0208<<14 | 0x13<<7 | 0x5A, - 26085 - 19968: jis0208<<14 | 0x25<<7 | 0x5B, - 26086 - 19968: jis0208<<14 | 0x22<<7 | 0x15, - 26087 - 19968: jis0208<<14 | 0x14<<7 | 0x4B, - 26088 - 19968: jis0208<<14 | 0x1A<<7 | 0x3C, - 26089 - 19968: jis0208<<14 | 0x20<<7 | 0x40, - 26092 - 19968: jis0208<<14 | 0x1C<<7 | 0x3B, - 26093 - 19968: jis0208<<14 | 0x0F<<7 | 0x0F, - 26096 - 19968: jis0212<<14 | 0x20<<7 | 0x4D, - 26097 - 19968: jis0208<<14 | 0x39<<7 | 0x3C, - 26098 - 19968: jis0212<<14 | 0x20<<7 | 0x4E, - 26100 - 19968: jis0212<<14 | 0x20<<7 | 0x4F, - 26101 - 19968: jis0212<<14 | 0x20<<7 | 0x50, - 26105 - 19968: jis0212<<14 | 0x20<<7 | 0x51, - 26106 - 19968: jis0208<<14 | 0x11<<7 | 0x01, - 26107 - 19968: jis0208<<14 | 0x39<<7 | 0x40, - 26110 - 19968: jis0212<<14 | 0x20<<7 | 0x52, - 26111 - 19968: jis0212<<14 | 0x20<<7 | 0x53, - 26112 - 19968: jis0208<<14 | 0x59<<7 | 0x13, - 26114 - 19968: jis0208<<14 | 0x18<<7 | 0x16, - 26115 - 19968: jis0208<<14 | 0x39<<7 | 0x3F, - 26116 - 19968: jis0212<<14 | 0x20<<7 | 0x55, - 26118 - 19968: jis0208<<14 | 0x19<<7 | 0x0A, - 26119 - 19968: jis0208<<14 | 0x1D<<7 | 0x19, - 26120 - 19968: jis0212<<14 | 0x20<<7 | 0x56, - 26121 - 19968: jis0208<<14 | 0x59<<7 | 0x16, - 26122 - 19968: jis0208<<14 | 0x39<<7 | 0x3E, - 26124 - 19968: jis0208<<14 | 0x1D<<7 | 0x1A, - 26125 - 19968: jis0212<<14 | 0x20<<7 | 0x58, - 26126 - 19968: jis0208<<14 | 0x2B<<7 | 0x1F, - 26127 - 19968: jis0208<<14 | 0x19<<7 | 0x09, - 26129 - 19968: jis0212<<14 | 0x20<<7 | 0x59, - 26130 - 19968: jis0212<<14 | 0x20<<7 | 0x5A, - 26131 - 19968: jis0208<<14 | 0x0F<<7 | 0x36, - 26132 - 19968: jis0208<<14 | 0x1F<<7 | 0x2D, - 26133 - 19968: jis0208<<14 | 0x59<<7 | 0x14, - 26134 - 19968: jis0212<<14 | 0x20<<7 | 0x5C, - 26140 - 19968: jis0208<<14 | 0x39<<7 | 0x45, - 26141 - 19968: jis0212<<14 | 0x20<<7 | 0x5D, - 26142 - 19968: jis0208<<14 | 0x59<<7 | 0x18, - 26143 - 19968: jis0208<<14 | 0x1F<<7 | 0x10, - 26144 - 19968: jis0208<<14 | 0x10<<7 | 0x26, - 26145 - 19968: jis0212<<14 | 0x21<<7 | 0x01, - 26146 - 19968: jis0212<<14 | 0x21<<7 | 0x02, - 26147 - 19968: jis0212<<14 | 0x21<<7 | 0x03, - 26148 - 19968: jis0208<<14 | 0x59<<7 | 0x19, - 26149 - 19968: jis0208<<14 | 0x1C<<7 | 0x34, - 26150 - 19968: jis0212<<14 | 0x21<<7 | 0x05, - 26151 - 19968: jis0208<<14 | 0x2A<<7 | 0x45, - 26152 - 19968: jis0208<<14 | 0x19<<7 | 0x51, - 26153 - 19968: jis0212<<14 | 0x21<<7 | 0x06, - 26154 - 19968: jis0212<<14 | 0x21<<7 | 0x07, - 26155 - 19968: jis0212<<14 | 0x21<<7 | 0x08, - 26156 - 19968: jis0212<<14 | 0x21<<7 | 0x09, - 26157 - 19968: jis0208<<14 | 0x1D<<7 | 0x1B, - 26158 - 19968: jis0208<<14 | 0x59<<7 | 0x17, - 26159 - 19968: jis0208<<14 | 0x1F<<7 | 0x06, - 26160 - 19968: jis0212<<14 | 0x21<<7 | 0x0B, - 26161 - 19968: jis0208<<14 | 0x58<<7 | 0x07, - 26163 - 19968: jis0212<<14 | 0x21<<7 | 0x0D, - 26164 - 19968: jis0208<<14 | 0x39<<7 | 0x44, - 26165 - 19968: jis0208<<14 | 0x39<<7 | 0x42, - 26166 - 19968: jis0208<<14 | 0x39<<7 | 0x43, - 26167 - 19968: jis0212<<14 | 0x21<<7 | 0x0F, - 26169 - 19968: jis0212<<14 | 0x21<<7 | 0x0E, - 26171 - 19968: jis0208<<14 | 0x59<<7 | 0x15, - 26172 - 19968: jis0208<<14 | 0x22<<7 | 0x4A, - 26175 - 19968: jis0208<<14 | 0x3A<<7 | 0x05, - 26176 - 19968: jis0212<<14 | 0x21<<7 | 0x10, - 26177 - 19968: jis0208<<14 | 0x39<<7 | 0x49, - 26178 - 19968: jis0208<<14 | 0x1A<<7 | 0x5D, - 26179 - 19968: jis0208<<14 | 0x18<<7 | 0x17, - 26180 - 19968: jis0208<<14 | 0x39<<7 | 0x47, - 26181 - 19968: jis0212<<14 | 0x21<<7 | 0x11, - 26182 - 19968: jis0212<<14 | 0x21<<7 | 0x12, - 26185 - 19968: jis0208<<14 | 0x39<<7 | 0x48, - 26186 - 19968: jis0212<<14 | 0x21<<7 | 0x13, - 26187 - 19968: jis0208<<14 | 0x1E<<7 | 0x17, - 26188 - 19968: jis0212<<14 | 0x21<<7 | 0x14, - 26190 - 19968: jis0212<<14 | 0x21<<7 | 0x16, - 26191 - 19968: jis0208<<14 | 0x39<<7 | 0x46, - 26193 - 19968: jis0212<<14 | 0x21<<7 | 0x15, - 26194 - 19968: jis0208<<14 | 0x1A<<7 | 0x0E, - 26199 - 19968: jis0208<<14 | 0x59<<7 | 0x1B, - 26200 - 19968: jis0212<<14 | 0x21<<7 | 0x18, - 26201 - 19968: jis0208<<14 | 0x59<<7 | 0x1C, - 26203 - 19968: jis0212<<14 | 0x21<<7 | 0x1A, - 26204 - 19968: jis0212<<14 | 0x21<<7 | 0x1B, - 26205 - 19968: jis0208<<14 | 0x39<<7 | 0x4B, - 26206 - 19968: jis0208<<14 | 0x39<<7 | 0x4A, - 26207 - 19968: jis0208<<14 | 0x39<<7 | 0x4F, - 26208 - 19968: jis0212<<14 | 0x21<<7 | 0x1C, - 26209 - 19968: jis0212<<14 | 0x21<<7 | 0x1D, - 26210 - 19968: jis0208<<14 | 0x39<<7 | 0x50, - 26212 - 19968: jis0208<<14 | 0x39<<7 | 0x4C, - 26213 - 19968: jis0208<<14 | 0x59<<7 | 0x1A, - 26214 - 19968: jis0208<<14 | 0x12<<7 | 0x01, - 26215 - 19968: jis0208<<14 | 0x39<<7 | 0x4D, - 26216 - 19968: jis0208<<14 | 0x39<<7 | 0x4E, - 26217 - 19968: jis0208<<14 | 0x27<<7 | 0x34, - 26218 - 19968: jis0212<<14 | 0x21<<7 | 0x1F, - 26219 - 19968: jis0212<<14 | 0x21<<7 | 0x20, - 26220 - 19968: jis0212<<14 | 0x21<<7 | 0x21, - 26222 - 19968: jis0208<<14 | 0x28<<7 | 0x40, - 26223 - 19968: jis0208<<14 | 0x16<<7 | 0x29, - 26224 - 19968: jis0208<<14 | 0x39<<7 | 0x51, - 26227 - 19968: jis0208<<14 | 0x59<<7 | 0x1E, - 26228 - 19968: jis0208<<14 | 0x1F<<7 | 0x11, - 26229 - 19968: jis0212<<14 | 0x21<<7 | 0x24, - 26230 - 19968: jis0208<<14 | 0x1D<<7 | 0x1C, - 26231 - 19968: jis0212<<14 | 0x21<<7 | 0x26, - 26232 - 19968: jis0212<<14 | 0x21<<7 | 0x27, - 26233 - 19968: jis0212<<14 | 0x21<<7 | 0x28, - 26234 - 19968: jis0208<<14 | 0x22<<7 | 0x31, - 26235 - 19968: jis0212<<14 | 0x21<<7 | 0x29, - 26236 - 19968: jis0212<<14 | 0x21<<7 | 0x2B, - 26238 - 19968: jis0212<<14 | 0x21<<7 | 0x22, - 26239 - 19968: jis0212<<14 | 0x21<<7 | 0x25, - 26240 - 19968: jis0212<<14 | 0x21<<7 | 0x2A, - 26241 - 19968: jis0208<<14 | 0x15<<7 | 0x26, - 26243 - 19968: jis0208<<14 | 0x39<<7 | 0x52, - 26244 - 19968: jis0208<<14 | 0x39<<7 | 0x56, - 26247 - 19968: jis0208<<14 | 0x11<<7 | 0x2A, - 26248 - 19968: jis0208<<14 | 0x39<<7 | 0x53, - 26249 - 19968: jis0208<<14 | 0x39<<7 | 0x55, - 26251 - 19968: jis0212<<14 | 0x21<<7 | 0x2C, - 26252 - 19968: jis0212<<14 | 0x21<<7 | 0x2D, - 26253 - 19968: jis0212<<14 | 0x21<<7 | 0x2E, - 26254 - 19968: jis0208<<14 | 0x39<<7 | 0x54, - 26256 - 19968: jis0212<<14 | 0x21<<7 | 0x2F, - 26257 - 19968: jis0208<<14 | 0x1C<<7 | 0x4A, - 26258 - 19968: jis0212<<14 | 0x21<<7 | 0x30, - 26262 - 19968: jis0208<<14 | 0x22<<7 | 0x27, - 26263 - 19968: jis0208<<14 | 0x0F<<7 | 0x24, - 26264 - 19968: jis0208<<14 | 0x39<<7 | 0x57, - 26265 - 19968: jis0208<<14 | 0x59<<7 | 0x1F, - 26266 - 19968: jis0212<<14 | 0x21<<7 | 0x32, - 26267 - 19968: jis0212<<14 | 0x21<<7 | 0x33, - 26268 - 19968: jis0212<<14 | 0x21<<7 | 0x34, - 26269 - 19968: jis0208<<14 | 0x39<<7 | 0x58, - 26271 - 19968: jis0212<<14 | 0x21<<7 | 0x35, - 26272 - 19968: jis0208<<14 | 0x59<<7 | 0x20, - 26274 - 19968: jis0208<<14 | 0x23<<7 | 0x09, - 26276 - 19968: jis0212<<14 | 0x21<<7 | 0x37, - 26278 - 19968: jis0208<<14 | 0x2D<<7 | 0x50, - 26283 - 19968: jis0208<<14 | 0x1A<<7 | 0x22, - 26285 - 19968: jis0212<<14 | 0x21<<7 | 0x38, - 26286 - 19968: jis0208<<14 | 0x29<<7 | 0x4A, - 26289 - 19968: jis0212<<14 | 0x21<<7 | 0x39, - 26290 - 19968: jis0208<<14 | 0x59<<7 | 0x21, - 26292 - 19968: jis0208<<14 | 0x2A<<7 | 0x1C, - 26293 - 19968: jis0212<<14 | 0x21<<7 | 0x3B, - 26296 - 19968: jis0208<<14 | 0x3A<<7 | 0x01, - 26297 - 19968: jis0208<<14 | 0x39<<7 | 0x5A, - 26299 - 19968: jis0212<<14 | 0x21<<7 | 0x3C, - 26300 - 19968: jis0208<<14 | 0x39<<7 | 0x5D, - 26302 - 19968: jis0208<<14 | 0x39<<7 | 0x5C, - 26303 - 19968: jis0208<<14 | 0x59<<7 | 0x22, - 26304 - 19968: jis0212<<14 | 0x21<<7 | 0x3E, - 26305 - 19968: jis0208<<14 | 0x39<<7 | 0x59, - 26306 - 19968: jis0212<<14 | 0x21<<7 | 0x3F, - 26307 - 19968: jis0212<<14 | 0x21<<7 | 0x40, - 26308 - 19968: jis0208<<14 | 0x3A<<7 | 0x00, - 26311 - 19968: jis0208<<14 | 0x25<<7 | 0x3D, - 26312 - 19968: jis0212<<14 | 0x21<<7 | 0x41, - 26313 - 19968: jis0208<<14 | 0x39<<7 | 0x5B, - 26316 - 19968: jis0212<<14 | 0x21<<7 | 0x42, - 26318 - 19968: jis0212<<14 | 0x21<<7 | 0x43, - 26319 - 19968: jis0212<<14 | 0x21<<7 | 0x44, - 26324 - 19968: jis0212<<14 | 0x21<<7 | 0x45, - 26326 - 19968: jis0208<<14 | 0x3A<<7 | 0x02, - 26329 - 19968: jis0208<<14 | 0x1C<<7 | 0x4B, - 26330 - 19968: jis0208<<14 | 0x3A<<7 | 0x03, - 26331 - 19968: jis0212<<14 | 0x21<<7 | 0x46, - 26332 - 19968: jis0208<<14 | 0x2C<<7 | 0x2A, - 26333 - 19968: jis0208<<14 | 0x26<<7 | 0x57, - 26335 - 19968: jis0212<<14 | 0x21<<7 | 0x47, - 26336 - 19968: jis0208<<14 | 0x3A<<7 | 0x04, - 26342 - 19968: jis0208<<14 | 0x3A<<7 | 0x06, - 26344 - 19968: jis0212<<14 | 0x21<<7 | 0x48, - 26345 - 19968: jis0208<<14 | 0x3A<<7 | 0x07, - 26347 - 19968: jis0212<<14 | 0x21<<7 | 0x49, - 26348 - 19968: jis0212<<14 | 0x21<<7 | 0x4A, - 26350 - 19968: jis0212<<14 | 0x21<<7 | 0x4B, - 26352 - 19968: jis0208<<14 | 0x3A<<7 | 0x08, - 26354 - 19968: jis0208<<14 | 0x15<<7 | 0x29, - 26355 - 19968: jis0208<<14 | 0x10<<7 | 0x27, - 26356 - 19968: jis0208<<14 | 0x18<<7 | 0x18, - 26357 - 19968: jis0208<<14 | 0x3A<<7 | 0x09, - 26359 - 19968: jis0208<<14 | 0x3A<<7 | 0x0A, - 26360 - 19968: jis0208<<14 | 0x1C<<7 | 0x50, - 26361 - 19968: jis0208<<14 | 0x20<<7 | 0x41, - 26362 - 19968: jis0208<<14 | 0x59<<7 | 0x23, - 26363 - 19968: jis0208<<14 | 0x58<<7 | 0x0A, - 26364 - 19968: jis0208<<14 | 0x31<<7 | 0x37, - 26365 - 19968: jis0208<<14 | 0x20<<7 | 0x1D, - 26366 - 19968: jis0208<<14 | 0x20<<7 | 0x1C, - 26367 - 19968: jis0208<<14 | 0x21<<7 | 0x37, - 26368 - 19968: jis0208<<14 | 0x19<<7 | 0x26, - 26371 - 19968: jis0208<<14 | 0x2F<<7 | 0x51, - 26373 - 19968: jis0212<<14 | 0x21<<7 | 0x4D, - 26375 - 19968: jis0212<<14 | 0x21<<7 | 0x4E, - 26376 - 19968: jis0208<<14 | 0x16<<7 | 0x4D, - 26377 - 19968: jis0208<<14 | 0x2C<<7 | 0x0C, - 26379 - 19968: jis0208<<14 | 0x29<<7 | 0x5D, - 26381 - 19968: jis0208<<14 | 0x28<<7 | 0x5D, - 26382 - 19968: jis0208<<14 | 0x59<<7 | 0x24, - 26383 - 19968: jis0208<<14 | 0x3A<<7 | 0x0B, - 26387 - 19968: jis0212<<14 | 0x21<<7 | 0x50, - 26388 - 19968: jis0208<<14 | 0x19<<7 | 0x52, - 26389 - 19968: jis0208<<14 | 0x23<<7 | 0x1E, - 26390 - 19968: jis0208<<14 | 0x3A<<7 | 0x0C, - 26391 - 19968: jis0208<<14 | 0x2E<<7 | 0x0E, - 26393 - 19968: jis0212<<14 | 0x21<<7 | 0x51, - 26395 - 19968: jis0208<<14 | 0x2A<<7 | 0x1D, - 26396 - 19968: jis0212<<14 | 0x21<<7 | 0x52, - 26397 - 19968: jis0208<<14 | 0x23<<7 | 0x0A, - 26398 - 19968: jis0208<<14 | 0x3A<<7 | 0x0D, - 26399 - 19968: jis0208<<14 | 0x13<<7 | 0x5B, - 26400 - 19968: jis0212<<14 | 0x21<<7 | 0x53, - 26402 - 19968: jis0212<<14 | 0x21<<7 | 0x54, - 26406 - 19968: jis0208<<14 | 0x3A<<7 | 0x0E, - 26407 - 19968: jis0208<<14 | 0x3A<<7 | 0x0F, - 26408 - 19968: jis0208<<14 | 0x2B<<7 | 0x39, - 26410 - 19968: jis0208<<14 | 0x2B<<7 | 0x03, - 26411 - 19968: jis0208<<14 | 0x2A<<7 | 0x55, - 26412 - 19968: jis0208<<14 | 0x2A<<7 | 0x3B, - 26413 - 19968: jis0208<<14 | 0x1A<<7 | 0x04, - 26414 - 19968: jis0208<<14 | 0x3A<<7 | 0x11, - 26417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4A, - 26419 - 19968: jis0212<<14 | 0x21<<7 | 0x55, - 26420 - 19968: jis0208<<14 | 0x2A<<7 | 0x30, - 26422 - 19968: jis0208<<14 | 0x3A<<7 | 0x13, - 26423 - 19968: jis0208<<14 | 0x3A<<7 | 0x16, - 26424 - 19968: jis0208<<14 | 0x3A<<7 | 0x15, - 26426 - 19968: jis0208<<14 | 0x13<<7 | 0x58, - 26429 - 19968: jis0208<<14 | 0x14<<7 | 0x3F, - 26430 - 19968: jis0212<<14 | 0x21<<7 | 0x56, - 26431 - 19968: jis0208<<14 | 0x3A<<7 | 0x12, - 26433 - 19968: jis0208<<14 | 0x3A<<7 | 0x14, - 26437 - 19968: jis0212<<14 | 0x21<<7 | 0x57, - 26438 - 19968: jis0208<<14 | 0x3A<<7 | 0x17, - 26439 - 19968: jis0212<<14 | 0x21<<7 | 0x58, - 26440 - 19968: jis0212<<14 | 0x21<<7 | 0x59, - 26441 - 19968: jis0208<<14 | 0x1E<<7 | 0x58, - 26444 - 19968: jis0212<<14 | 0x21<<7 | 0x5A, - 26446 - 19968: jis0208<<14 | 0x2C<<7 | 0x5A, - 26447 - 19968: jis0208<<14 | 0x0F<<7 | 0x28, - 26448 - 19968: jis0208<<14 | 0x19<<7 | 0x3F, - 26449 - 19968: jis0208<<14 | 0x21<<7 | 0x1B, - 26451 - 19968: jis0208<<14 | 0x1B<<7 | 0x3C, - 26452 - 19968: jis0212<<14 | 0x21<<7 | 0x5B, - 26453 - 19968: jis0212<<14 | 0x21<<7 | 0x5C, - 26454 - 19968: jis0208<<14 | 0x1D<<7 | 0x52, - 26457 - 19968: jis0208<<14 | 0x3A<<7 | 0x1A, - 26460 - 19968: jis0208<<14 | 0x24<<7 | 0x2D, - 26461 - 19968: jis0212<<14 | 0x21<<7 | 0x5D, - 26462 - 19968: jis0208<<14 | 0x3A<<7 | 0x18, - 26463 - 19968: jis0208<<14 | 0x21<<7 | 0x0A, - 26464 - 19968: jis0208<<14 | 0x3A<<7 | 0x19, - 26465 - 19968: jis0208<<14 | 0x1D<<7 | 0x51, - 26466 - 19968: jis0208<<14 | 0x2B<<7 | 0x3C, - 26467 - 19968: jis0208<<14 | 0x3A<<7 | 0x1B, - 26468 - 19968: jis0208<<14 | 0x3A<<7 | 0x1C, - 26469 - 19968: jis0208<<14 | 0x2C<<7 | 0x47, - 26470 - 19968: jis0208<<14 | 0x59<<7 | 0x26, - 26474 - 19968: jis0208<<14 | 0x3A<<7 | 0x21, - 26476 - 19968: jis0212<<14 | 0x22<<7 | 0x01, - 26477 - 19968: jis0208<<14 | 0x18<<7 | 0x19, - 26478 - 19968: jis0212<<14 | 0x22<<7 | 0x02, - 26479 - 19968: jis0208<<14 | 0x26<<7 | 0x34, - 26480 - 19968: jis0208<<14 | 0x3A<<7 | 0x1E, - 26481 - 19968: jis0208<<14 | 0x24<<7 | 0x4B, - 26482 - 19968: jis0208<<14 | 0x39<<7 | 0x3D, - 26483 - 19968: jis0208<<14 | 0x39<<7 | 0x41, - 26484 - 19968: jis0212<<14 | 0x22<<7 | 0x03, - 26485 - 19968: jis0208<<14 | 0x14<<7 | 0x2E, - 26486 - 19968: jis0212<<14 | 0x22<<7 | 0x04, - 26487 - 19968: jis0208<<14 | 0x26<<7 | 0x26, - 26491 - 19968: jis0212<<14 | 0x22<<7 | 0x05, - 26492 - 19968: jis0208<<14 | 0x3A<<7 | 0x20, - 26494 - 19968: jis0208<<14 | 0x1D<<7 | 0x1D, - 26495 - 19968: jis0208<<14 | 0x27<<7 | 0x23, - 26497 - 19968: jis0212<<14 | 0x22<<7 | 0x06, - 26500 - 19968: jis0212<<14 | 0x22<<7 | 0x07, - 26501 - 19968: jis0208<<14 | 0x3A<<7 | 0x26, - 26503 - 19968: jis0208<<14 | 0x27<<7 | 0x59, - 26505 - 19968: jis0208<<14 | 0x3A<<7 | 0x1D, - 26507 - 19968: jis0208<<14 | 0x3A<<7 | 0x23, - 26508 - 19968: jis0208<<14 | 0x3A<<7 | 0x22, - 26510 - 19968: jis0212<<14 | 0x22<<7 | 0x08, - 26511 - 19968: jis0212<<14 | 0x22<<7 | 0x09, - 26512 - 19968: jis0208<<14 | 0x1F<<7 | 0x2E, - 26513 - 19968: jis0212<<14 | 0x22<<7 | 0x0A, - 26515 - 19968: jis0212<<14 | 0x22<<7 | 0x0B, - 26517 - 19968: jis0208<<14 | 0x2A<<7 | 0x4C, - 26518 - 19968: jis0212<<14 | 0x22<<7 | 0x0C, - 26519 - 19968: jis0208<<14 | 0x2D<<7 | 0x32, - 26520 - 19968: jis0212<<14 | 0x22<<7 | 0x0D, - 26521 - 19968: jis0212<<14 | 0x22<<7 | 0x0E, - 26522 - 19968: jis0208<<14 | 0x2A<<7 | 0x46, - 26523 - 19968: jis0212<<14 | 0x22<<7 | 0x0F, - 26524 - 19968: jis0208<<14 | 0x11<<7 | 0x2B, - 26525 - 19968: jis0208<<14 | 0x1A<<7 | 0x3D, - 26528 - 19968: jis0208<<14 | 0x2E<<7 | 0x27, - 26529 - 19968: jis0208<<14 | 0x3A<<7 | 0x25, - 26530 - 19968: jis0208<<14 | 0x1E<<7 | 0x54, - 26534 - 19968: jis0208<<14 | 0x3A<<7 | 0x24, - 26537 - 19968: jis0208<<14 | 0x3A<<7 | 0x1F, - 26543 - 19968: jis0208<<14 | 0x17<<7 | 0x2E, - 26544 - 19968: jis0212<<14 | 0x22<<7 | 0x10, - 26545 - 19968: jis0212<<14 | 0x22<<7 | 0x11, - 26546 - 19968: jis0212<<14 | 0x22<<7 | 0x12, - 26547 - 19968: jis0208<<14 | 0x3A<<7 | 0x2B, - 26548 - 19968: jis0208<<14 | 0x3A<<7 | 0x29, - 26549 - 19968: jis0212<<14 | 0x22<<7 | 0x13, - 26550 - 19968: jis0208<<14 | 0x11<<7 | 0x2C, - 26551 - 19968: jis0208<<14 | 0x3A<<7 | 0x27, - 26552 - 19968: jis0208<<14 | 0x3A<<7 | 0x2D, - 26553 - 19968: jis0208<<14 | 0x3A<<7 | 0x33, - 26555 - 19968: jis0208<<14 | 0x59<<7 | 0x27, - 26556 - 19968: jis0212<<14 | 0x22<<7 | 0x15, - 26557 - 19968: jis0212<<14 | 0x22<<7 | 0x16, - 26560 - 19968: jis0208<<14 | 0x59<<7 | 0x29, - 26561 - 19968: jis0208<<14 | 0x21<<7 | 0x27, - 26562 - 19968: jis0212<<14 | 0x22<<7 | 0x19, - 26563 - 19968: jis0212<<14 | 0x22<<7 | 0x1A, - 26564 - 19968: jis0208<<14 | 0x29<<7 | 0x20, - 26565 - 19968: jis0212<<14 | 0x22<<7 | 0x1B, - 26566 - 19968: jis0208<<14 | 0x3A<<7 | 0x35, - 26568 - 19968: jis0212<<14 | 0x22<<7 | 0x1C, - 26569 - 19968: jis0212<<14 | 0x22<<7 | 0x1D, - 26570 - 19968: jis0208<<14 | 0x28<<7 | 0x01, - 26574 - 19968: jis0208<<14 | 0x3A<<7 | 0x34, - 26575 - 19968: jis0208<<14 | 0x26<<7 | 0x4F, - 26576 - 19968: jis0208<<14 | 0x2A<<7 | 0x1E, - 26577 - 19968: jis0208<<14 | 0x13<<7 | 0x1A, - 26578 - 19968: jis0212<<14 | 0x22<<7 | 0x1E, - 26579 - 19968: jis0208<<14 | 0x1F<<7 | 0x56, - 26580 - 19968: jis0208<<14 | 0x1C<<7 | 0x1F, - 26583 - 19968: jis0212<<14 | 0x22<<7 | 0x1F, - 26584 - 19968: jis0208<<14 | 0x23<<7 | 0x32, - 26585 - 19968: jis0212<<14 | 0x22<<7 | 0x20, - 26586 - 19968: jis0208<<14 | 0x2C<<7 | 0x0D, - 26588 - 19968: jis0212<<14 | 0x22<<7 | 0x21, - 26589 - 19968: jis0208<<14 | 0x3A<<7 | 0x30, - 26590 - 19968: jis0208<<14 | 0x3A<<7 | 0x2F, - 26593 - 19968: jis0212<<14 | 0x22<<7 | 0x22, - 26594 - 19968: jis0208<<14 | 0x3A<<7 | 0x31, - 26596 - 19968: jis0208<<14 | 0x3A<<7 | 0x2E, - 26598 - 19968: jis0212<<14 | 0x22<<7 | 0x23, - 26599 - 19968: jis0208<<14 | 0x3A<<7 | 0x36, - 26601 - 19968: jis0208<<14 | 0x3A<<7 | 0x2C, - 26604 - 19968: jis0208<<14 | 0x3A<<7 | 0x2A, - 26606 - 19968: jis0208<<14 | 0x3A<<7 | 0x32, - 26607 - 19968: jis0208<<14 | 0x3A<<7 | 0x28, - 26608 - 19968: jis0212<<14 | 0x22<<7 | 0x24, - 26609 - 19968: jis0208<<14 | 0x22<<7 | 0x4B, - 26610 - 19968: jis0212<<14 | 0x22<<7 | 0x25, - 26611 - 19968: jis0208<<14 | 0x2B<<7 | 0x57, - 26612 - 19968: jis0208<<14 | 0x1B<<7 | 0x25, - 26613 - 19968: jis0208<<14 | 0x19<<7 | 0x53, - 26614 - 19968: jis0212<<14 | 0x22<<7 | 0x26, - 26615 - 19968: jis0212<<14 | 0x22<<7 | 0x27, - 26617 - 19968: jis0212<<14 | 0x22<<7 | 0x17, - 26619 - 19968: jis0208<<14 | 0x19<<7 | 0x19, - 26622 - 19968: jis0208<<14 | 0x2A<<7 | 0x4E, - 26623 - 19968: jis0208<<14 | 0x12<<7 | 0x20, - 26625 - 19968: jis0208<<14 | 0x59<<7 | 0x2A, - 26626 - 19968: jis0208<<14 | 0x23<<7 | 0x2D, - 26627 - 19968: jis0208<<14 | 0x25<<7 | 0x29, - 26628 - 19968: jis0208<<14 | 0x10<<7 | 0x28, - 26643 - 19968: jis0208<<14 | 0x1F<<7 | 0x51, - 26644 - 19968: jis0212<<14 | 0x22<<7 | 0x29, - 26646 - 19968: jis0208<<14 | 0x1F<<7 | 0x13, - 26647 - 19968: jis0208<<14 | 0x16<<7 | 0x09, - 26649 - 19968: jis0212<<14 | 0x22<<7 | 0x2A, - 26653 - 19968: jis0212<<14 | 0x22<<7 | 0x2B, - 26654 - 19968: jis0208<<14 | 0x3A<<7 | 0x38, - 26655 - 19968: jis0212<<14 | 0x22<<7 | 0x2C, - 26657 - 19968: jis0208<<14 | 0x18<<7 | 0x1A, - 26658 - 19968: jis0208<<14 | 0x12<<7 | 0x5B, - 26663 - 19968: jis0212<<14 | 0x22<<7 | 0x2E, - 26664 - 19968: jis0212<<14 | 0x22<<7 | 0x2D, - 26665 - 19968: jis0208<<14 | 0x3A<<7 | 0x3A, - 26666 - 19968: jis0208<<14 | 0x12<<7 | 0x53, - 26667 - 19968: jis0208<<14 | 0x3A<<7 | 0x40, - 26668 - 19968: jis0212<<14 | 0x22<<7 | 0x2F, - 26669 - 19968: jis0212<<14 | 0x22<<7 | 0x30, - 26671 - 19968: jis0212<<14 | 0x22<<7 | 0x31, - 26672 - 19968: jis0212<<14 | 0x22<<7 | 0x32, - 26673 - 19968: jis0212<<14 | 0x22<<7 | 0x33, - 26674 - 19968: jis0208<<14 | 0x3A<<7 | 0x3D, - 26675 - 19968: jis0212<<14 | 0x22<<7 | 0x34, - 26676 - 19968: jis0208<<14 | 0x1F<<7 | 0x52, - 26680 - 19968: jis0208<<14 | 0x12<<7 | 0x2A, - 26681 - 19968: jis0208<<14 | 0x19<<7 | 0x0B, - 26683 - 19968: jis0212<<14 | 0x22<<7 | 0x35, - 26684 - 19968: jis0208<<14 | 0x12<<7 | 0x29, - 26685 - 19968: jis0208<<14 | 0x19<<7 | 0x2E, - 26687 - 19968: jis0212<<14 | 0x22<<7 | 0x36, - 26688 - 19968: jis0208<<14 | 0x3A<<7 | 0x3B, - 26689 - 19968: jis0208<<14 | 0x16<<7 | 0x44, - 26690 - 19968: jis0208<<14 | 0x16<<7 | 0x2A, - 26691 - 19968: jis0208<<14 | 0x24<<7 | 0x4C, - 26692 - 19968: jis0208<<14 | 0x59<<7 | 0x2B, - 26693 - 19968: jis0212<<14 | 0x22<<7 | 0x38, - 26694 - 19968: jis0208<<14 | 0x3A<<7 | 0x39, - 26696 - 19968: jis0208<<14 | 0x0F<<7 | 0x25, - 26698 - 19968: jis0212<<14 | 0x22<<7 | 0x39, - 26700 - 19968: jis0212<<14 | 0x22<<7 | 0x3A, - 26701 - 19968: jis0208<<14 | 0x3A<<7 | 0x3C, - 26702 - 19968: jis0208<<14 | 0x3A<<7 | 0x3E, - 26704 - 19968: jis0208<<14 | 0x15<<7 | 0x2C, - 26705 - 19968: jis0208<<14 | 0x16<<7 | 0x0B, - 26706 - 19968: jis0208<<14 | 0x59<<7 | 0x28, - 26707 - 19968: jis0208<<14 | 0x13<<7 | 0x1B, - 26708 - 19968: jis0208<<14 | 0x14<<7 | 0x2A, - 26709 - 19968: jis0212<<14 | 0x22<<7 | 0x3B, - 26711 - 19968: jis0212<<14 | 0x22<<7 | 0x3C, - 26712 - 19968: jis0212<<14 | 0x22<<7 | 0x3D, - 26713 - 19968: jis0208<<14 | 0x3A<<7 | 0x41, - 26715 - 19968: jis0212<<14 | 0x22<<7 | 0x3E, - 26716 - 19968: jis0208<<14 | 0x19<<7 | 0x58, - 26717 - 19968: jis0208<<14 | 0x2A<<7 | 0x50, - 26719 - 19968: jis0208<<14 | 0x1A<<7 | 0x16, - 26723 - 19968: jis0208<<14 | 0x3A<<7 | 0x42, - 26727 - 19968: jis0208<<14 | 0x28<<7 | 0x0F, - 26731 - 19968: jis0212<<14 | 0x22<<7 | 0x3F, - 26734 - 19968: jis0212<<14 | 0x22<<7 | 0x40, - 26735 - 19968: jis0212<<14 | 0x22<<7 | 0x41, - 26736 - 19968: jis0212<<14 | 0x22<<7 | 0x42, - 26737 - 19968: jis0212<<14 | 0x22<<7 | 0x43, - 26738 - 19968: jis0212<<14 | 0x22<<7 | 0x44, - 26740 - 19968: jis0208<<14 | 0x3A<<7 | 0x4E, - 26741 - 19968: jis0212<<14 | 0x22<<7 | 0x45, - 26742 - 19968: jis0208<<14 | 0x11<<7 | 0x12, - 26743 - 19968: jis0208<<14 | 0x3A<<7 | 0x43, - 26745 - 19968: jis0212<<14 | 0x22<<7 | 0x46, - 26746 - 19968: jis0212<<14 | 0x22<<7 | 0x47, - 26747 - 19968: jis0212<<14 | 0x22<<7 | 0x48, - 26748 - 19968: jis0212<<14 | 0x22<<7 | 0x49, - 26750 - 19968: jis0208<<14 | 0x3A<<7 | 0x54, - 26751 - 19968: jis0208<<14 | 0x3A<<7 | 0x44, - 26753 - 19968: jis0208<<14 | 0x2D<<7 | 0x21, - 26754 - 19968: jis0212<<14 | 0x22<<7 | 0x4A, - 26755 - 19968: jis0208<<14 | 0x3A<<7 | 0x4B, - 26756 - 19968: jis0212<<14 | 0x22<<7 | 0x4B, - 26757 - 19968: jis0208<<14 | 0x26<<7 | 0x3E, - 26758 - 19968: jis0212<<14 | 0x22<<7 | 0x4C, - 26760 - 19968: jis0212<<14 | 0x22<<7 | 0x4D, - 26765 - 19968: jis0208<<14 | 0x3A<<7 | 0x53, - 26767 - 19968: jis0208<<14 | 0x3A<<7 | 0x46, - 26771 - 19968: jis0208<<14 | 0x0F<<7 | 0x13, - 26772 - 19968: jis0208<<14 | 0x3A<<7 | 0x48, - 26774 - 19968: jis0212<<14 | 0x22<<7 | 0x4E, - 26775 - 19968: jis0208<<14 | 0x18<<7 | 0x1B, - 26776 - 19968: jis0212<<14 | 0x22<<7 | 0x4F, - 26778 - 19968: jis0212<<14 | 0x22<<7 | 0x50, - 26779 - 19968: jis0208<<14 | 0x3A<<7 | 0x4A, - 26780 - 19968: jis0212<<14 | 0x22<<7 | 0x51, - 26781 - 19968: jis0208<<14 | 0x3A<<7 | 0x49, - 26783 - 19968: jis0208<<14 | 0x3A<<7 | 0x45, - 26784 - 19968: jis0208<<14 | 0x3A<<7 | 0x50, - 26785 - 19968: jis0212<<14 | 0x22<<7 | 0x52, - 26786 - 19968: jis0208<<14 | 0x1D<<7 | 0x1E, - 26787 - 19968: jis0212<<14 | 0x22<<7 | 0x53, - 26789 - 19968: jis0212<<14 | 0x22<<7 | 0x54, - 26790 - 19968: jis0208<<14 | 0x33<<7 | 0x4C, - 26791 - 19968: jis0208<<14 | 0x17<<7 | 0x47, - 26792 - 19968: jis0208<<14 | 0x2C<<7 | 0x5B, - 26793 - 19968: jis0212<<14 | 0x22<<7 | 0x55, - 26794 - 19968: jis0212<<14 | 0x22<<7 | 0x56, - 26797 - 19968: jis0208<<14 | 0x3A<<7 | 0x47, - 26798 - 19968: jis0212<<14 | 0x22<<7 | 0x57, - 26799 - 19968: jis0208<<14 | 0x23<<7 | 0x53, - 26800 - 19968: jis0208<<14 | 0x12<<7 | 0x02, - 26801 - 19968: jis0208<<14 | 0x19<<7 | 0x0C, - 26802 - 19968: jis0212<<14 | 0x22<<7 | 0x58, - 26803 - 19968: jis0208<<14 | 0x3A<<7 | 0x3F, - 26805 - 19968: jis0208<<14 | 0x3A<<7 | 0x4F, - 26806 - 19968: jis0208<<14 | 0x12<<7 | 0x40, - 26809 - 19968: jis0208<<14 | 0x3A<<7 | 0x4D, - 26810 - 19968: jis0208<<14 | 0x3A<<7 | 0x51, - 26811 - 19968: jis0212<<14 | 0x22<<7 | 0x59, - 26812 - 19968: jis0208<<14 | 0x24<<7 | 0x4D, - 26820 - 19968: jis0208<<14 | 0x13<<7 | 0x5D, - 26821 - 19968: jis0212<<14 | 0x22<<7 | 0x5A, - 26822 - 19968: jis0208<<14 | 0x3B<<7 | 0x11, - 26824 - 19968: jis0208<<14 | 0x58<<7 | 0x08, - 26825 - 19968: jis0208<<14 | 0x2B<<7 | 0x28, - 26826 - 19968: jis0208<<14 | 0x3A<<7 | 0x56, - 26827 - 19968: jis0208<<14 | 0x13<<7 | 0x5C, - 26828 - 19968: jis0212<<14 | 0x22<<7 | 0x5C, - 26829 - 19968: jis0208<<14 | 0x3A<<7 | 0x5D, - 26831 - 19968: jis0208<<14 | 0x59<<7 | 0x2C, - 26832 - 19968: jis0212<<14 | 0x23<<7 | 0x00, - 26833 - 19968: jis0212<<14 | 0x23<<7 | 0x01, - 26834 - 19968: jis0208<<14 | 0x2A<<7 | 0x1F, - 26835 - 19968: jis0212<<14 | 0x23<<7 | 0x02, - 26836 - 19968: jis0208<<14 | 0x3B<<7 | 0x00, - 26837 - 19968: jis0208<<14 | 0x3B<<7 | 0x02, - 26838 - 19968: jis0212<<14 | 0x23<<7 | 0x03, - 26839 - 19968: jis0208<<14 | 0x3B<<7 | 0x06, - 26840 - 19968: jis0208<<14 | 0x3A<<7 | 0x58, - 26841 - 19968: jis0212<<14 | 0x23<<7 | 0x04, - 26842 - 19968: jis0208<<14 | 0x22<<7 | 0x09, - 26844 - 19968: jis0212<<14 | 0x23<<7 | 0x05, - 26845 - 19968: jis0212<<14 | 0x23<<7 | 0x06, - 26847 - 19968: jis0208<<14 | 0x24<<7 | 0x4E, - 26848 - 19968: jis0208<<14 | 0x3B<<7 | 0x0A, - 26849 - 19968: jis0208<<14 | 0x3A<<7 | 0x5B, - 26851 - 19968: jis0208<<14 | 0x3B<<7 | 0x07, - 26853 - 19968: jis0212<<14 | 0x23<<7 | 0x07, - 26855 - 19968: jis0208<<14 | 0x3B<<7 | 0x01, - 26856 - 19968: jis0212<<14 | 0x23<<7 | 0x08, - 26858 - 19968: jis0212<<14 | 0x23<<7 | 0x09, - 26859 - 19968: jis0212<<14 | 0x23<<7 | 0x0A, - 26860 - 19968: jis0212<<14 | 0x23<<7 | 0x0B, - 26861 - 19968: jis0212<<14 | 0x23<<7 | 0x0C, - 26862 - 19968: jis0208<<14 | 0x1E<<7 | 0x18, - 26863 - 19968: jis0208<<14 | 0x3B<<7 | 0x0B, - 26864 - 19968: jis0212<<14 | 0x23<<7 | 0x0D, - 26865 - 19968: jis0212<<14 | 0x23<<7 | 0x0E, - 26866 - 19968: jis0208<<14 | 0x1F<<7 | 0x12, - 26869 - 19968: jis0212<<14 | 0x23<<7 | 0x0F, - 26870 - 19968: jis0212<<14 | 0x23<<7 | 0x10, - 26873 - 19968: jis0208<<14 | 0x3B<<7 | 0x09, - 26874 - 19968: jis0208<<14 | 0x13<<7 | 0x1C, - 26875 - 19968: jis0212<<14 | 0x23<<7 | 0x11, - 26876 - 19968: jis0212<<14 | 0x23<<7 | 0x12, - 26877 - 19968: jis0212<<14 | 0x23<<7 | 0x13, - 26880 - 19968: jis0208<<14 | 0x2E<<7 | 0x2F, - 26881 - 19968: jis0208<<14 | 0x3A<<7 | 0x55, - 26884 - 19968: jis0208<<14 | 0x3B<<7 | 0x05, - 26885 - 19968: jis0208<<14 | 0x0F<<7 | 0x37, - 26886 - 19968: jis0212<<14 | 0x23<<7 | 0x14, - 26888 - 19968: jis0208<<14 | 0x3A<<7 | 0x57, - 26889 - 19968: jis0212<<14 | 0x23<<7 | 0x15, - 26890 - 19968: jis0212<<14 | 0x23<<7 | 0x16, - 26891 - 19968: jis0208<<14 | 0x2B<<7 | 0x19, - 26892 - 19968: jis0208<<14 | 0x3A<<7 | 0x5C, - 26893 - 19968: jis0208<<14 | 0x1E<<7 | 0x01, - 26894 - 19968: jis0208<<14 | 0x23<<7 | 0x26, - 26895 - 19968: jis0208<<14 | 0x3A<<7 | 0x52, - 26896 - 19968: jis0212<<14 | 0x23<<7 | 0x17, - 26897 - 19968: jis0212<<14 | 0x23<<7 | 0x18, - 26898 - 19968: jis0208<<14 | 0x3B<<7 | 0x04, - 26899 - 19968: jis0212<<14 | 0x23<<7 | 0x19, - 26902 - 19968: jis0212<<14 | 0x23<<7 | 0x1A, - 26903 - 19968: jis0212<<14 | 0x23<<7 | 0x1B, - 26905 - 19968: jis0208<<14 | 0x1E<<7 | 0x59, - 26906 - 19968: jis0208<<14 | 0x3B<<7 | 0x0E, - 26907 - 19968: jis0208<<14 | 0x12<<7 | 0x50, - 26908 - 19968: jis0208<<14 | 0x17<<7 | 0x00, - 26913 - 19968: jis0208<<14 | 0x3B<<7 | 0x10, - 26914 - 19968: jis0208<<14 | 0x3A<<7 | 0x59, - 26915 - 19968: jis0208<<14 | 0x3B<<7 | 0x0F, - 26917 - 19968: jis0208<<14 | 0x3B<<7 | 0x08, - 26918 - 19968: jis0208<<14 | 0x3A<<7 | 0x5A, - 26920 - 19968: jis0208<<14 | 0x3B<<7 | 0x0C, - 26922 - 19968: jis0208<<14 | 0x3B<<7 | 0x0D, - 26928 - 19968: jis0208<<14 | 0x3B<<7 | 0x1E, - 26929 - 19968: jis0212<<14 | 0x23<<7 | 0x1C, - 26931 - 19968: jis0212<<14 | 0x23<<7 | 0x1D, - 26932 - 19968: jis0208<<14 | 0x25<<7 | 0x2D, - 26933 - 19968: jis0212<<14 | 0x23<<7 | 0x1E, - 26934 - 19968: jis0208<<14 | 0x3B<<7 | 0x03, - 26936 - 19968: jis0212<<14 | 0x23<<7 | 0x1F, - 26937 - 19968: jis0208<<14 | 0x3B<<7 | 0x1A, - 26939 - 19968: jis0212<<14 | 0x23<<7 | 0x20, - 26941 - 19968: jis0208<<14 | 0x3B<<7 | 0x1C, - 26943 - 19968: jis0208<<14 | 0x23<<7 | 0x37, - 26946 - 19968: jis0212<<14 | 0x23<<7 | 0x21, - 26949 - 19968: jis0212<<14 | 0x23<<7 | 0x22, - 26953 - 19968: jis0212<<14 | 0x23<<7 | 0x23, - 26954 - 19968: jis0208<<14 | 0x2C<<7 | 0x2B, - 26958 - 19968: jis0212<<14 | 0x23<<7 | 0x24, - 26963 - 19968: jis0208<<14 | 0x28<<7 | 0x55, - 26964 - 19968: jis0208<<14 | 0x3B<<7 | 0x17, - 26965 - 19968: jis0208<<14 | 0x21<<7 | 0x29, - 26967 - 19968: jis0212<<14 | 0x23<<7 | 0x25, - 26969 - 19968: jis0208<<14 | 0x3B<<7 | 0x1D, - 26970 - 19968: jis0208<<14 | 0x20<<7 | 0x1E, - 26971 - 19968: jis0212<<14 | 0x23<<7 | 0x26, - 26972 - 19968: jis0208<<14 | 0x3B<<7 | 0x14, - 26973 - 19968: jis0208<<14 | 0x3B<<7 | 0x21, - 26974 - 19968: jis0208<<14 | 0x3B<<7 | 0x20, - 26976 - 19968: jis0208<<14 | 0x25<<7 | 0x4E, - 26977 - 19968: jis0208<<14 | 0x3B<<7 | 0x1F, - 26978 - 19968: jis0208<<14 | 0x25<<7 | 0x49, - 26979 - 19968: jis0212<<14 | 0x23<<7 | 0x27, - 26980 - 19968: jis0212<<14 | 0x23<<7 | 0x28, - 26981 - 19968: jis0212<<14 | 0x23<<7 | 0x29, - 26982 - 19968: jis0212<<14 | 0x23<<7 | 0x2A, - 26984 - 19968: jis0208<<14 | 0x59<<7 | 0x2E, - 26985 - 19968: jis0212<<14 | 0x23<<7 | 0x2C, - 26986 - 19968: jis0208<<14 | 0x3B<<7 | 0x23, - 26987 - 19968: jis0208<<14 | 0x3B<<7 | 0x16, - 26988 - 19968: jis0212<<14 | 0x23<<7 | 0x2D, - 26989 - 19968: jis0208<<14 | 0x15<<7 | 0x27, - 26990 - 19968: jis0208<<14 | 0x3B<<7 | 0x19, - 26991 - 19968: jis0208<<14 | 0x1C<<7 | 0x3C, - 26992 - 19968: jis0212<<14 | 0x23<<7 | 0x2E, - 26993 - 19968: jis0212<<14 | 0x23<<7 | 0x2F, - 26994 - 19968: jis0212<<14 | 0x23<<7 | 0x30, - 26995 - 19968: jis0208<<14 | 0x26<<7 | 0x3F, - 26996 - 19968: jis0208<<14 | 0x3B<<7 | 0x1B, - 26997 - 19968: jis0208<<14 | 0x15<<7 | 0x2A, - 26999 - 19968: jis0208<<14 | 0x3B<<7 | 0x13, - 27000 - 19968: jis0208<<14 | 0x3B<<7 | 0x15, - 27001 - 19968: jis0208<<14 | 0x3B<<7 | 0x12, - 27002 - 19968: jis0212<<14 | 0x23<<7 | 0x31, - 27003 - 19968: jis0212<<14 | 0x23<<7 | 0x32, - 27004 - 19968: jis0208<<14 | 0x2E<<7 | 0x0F, - 27005 - 19968: jis0208<<14 | 0x12<<7 | 0x39, - 27006 - 19968: jis0208<<14 | 0x3B<<7 | 0x18, - 27007 - 19968: jis0212<<14 | 0x23<<7 | 0x33, - 27008 - 19968: jis0212<<14 | 0x23<<7 | 0x34, - 27009 - 19968: jis0208<<14 | 0x3B<<7 | 0x22, - 27010 - 19968: jis0208<<14 | 0x12<<7 | 0x14, - 27018 - 19968: jis0208<<14 | 0x19<<7 | 0x46, - 27021 - 19968: jis0212<<14 | 0x23<<7 | 0x35, - 27022 - 19968: jis0208<<14 | 0x10<<7 | 0x3C, - 27025 - 19968: jis0208<<14 | 0x3B<<7 | 0x33, - 27026 - 19968: jis0212<<14 | 0x23<<7 | 0x36, - 27028 - 19968: jis0208<<14 | 0x2E<<7 | 0x10, - 27029 - 19968: jis0208<<14 | 0x3B<<7 | 0x36, - 27030 - 19968: jis0212<<14 | 0x23<<7 | 0x37, - 27032 - 19968: jis0208<<14 | 0x59<<7 | 0x30, - 27035 - 19968: jis0208<<14 | 0x1E<<7 | 0x19, - 27036 - 19968: jis0208<<14 | 0x3B<<7 | 0x35, - 27040 - 19968: jis0208<<14 | 0x3B<<7 | 0x34, - 27041 - 19968: jis0212<<14 | 0x23<<7 | 0x39, - 27045 - 19968: jis0212<<14 | 0x23<<7 | 0x3A, - 27046 - 19968: jis0212<<14 | 0x23<<7 | 0x3B, - 27047 - 19968: jis0208<<14 | 0x3B<<7 | 0x31, - 27048 - 19968: jis0212<<14 | 0x23<<7 | 0x3C, - 27051 - 19968: jis0212<<14 | 0x23<<7 | 0x3D, - 27053 - 19968: jis0212<<14 | 0x23<<7 | 0x3E, - 27054 - 19968: jis0208<<14 | 0x3B<<7 | 0x25, - 27055 - 19968: jis0212<<14 | 0x23<<7 | 0x3F, - 27057 - 19968: jis0208<<14 | 0x3B<<7 | 0x42, - 27058 - 19968: jis0208<<14 | 0x3B<<7 | 0x24, - 27060 - 19968: jis0208<<14 | 0x3B<<7 | 0x37, - 27063 - 19968: jis0212<<14 | 0x23<<7 | 0x40, - 27064 - 19968: jis0212<<14 | 0x23<<7 | 0x41, - 27066 - 19968: jis0212<<14 | 0x23<<7 | 0x42, - 27067 - 19968: jis0208<<14 | 0x3B<<7 | 0x2F, - 27068 - 19968: jis0212<<14 | 0x23<<7 | 0x43, - 27070 - 19968: jis0208<<14 | 0x3B<<7 | 0x2A, - 27071 - 19968: jis0208<<14 | 0x3B<<7 | 0x27, - 27073 - 19968: jis0208<<14 | 0x3B<<7 | 0x28, - 27075 - 19968: jis0208<<14 | 0x3B<<7 | 0x30, - 27077 - 19968: jis0212<<14 | 0x23<<7 | 0x44, - 27079 - 19968: jis0208<<14 | 0x53<<7 | 0x01, - 27080 - 19968: jis0212<<14 | 0x23<<7 | 0x45, - 27082 - 19968: jis0208<<14 | 0x3B<<7 | 0x2D, - 27083 - 19968: jis0208<<14 | 0x18<<7 | 0x1C, - 27084 - 19968: jis0208<<14 | 0x23<<7 | 0x27, - 27085 - 19968: jis0208<<14 | 0x20<<7 | 0x43, - 27086 - 19968: jis0208<<14 | 0x3B<<7 | 0x2B, - 27088 - 19968: jis0208<<14 | 0x3B<<7 | 0x26, - 27089 - 19968: jis0212<<14 | 0x23<<7 | 0x46, - 27091 - 19968: jis0208<<14 | 0x3B<<7 | 0x29, - 27094 - 19968: jis0212<<14 | 0x23<<7 | 0x47, - 27095 - 19968: jis0212<<14 | 0x23<<7 | 0x48, - 27096 - 19968: jis0208<<14 | 0x2C<<7 | 0x2C, - 27097 - 19968: jis0208<<14 | 0x2A<<7 | 0x49, - 27101 - 19968: jis0208<<14 | 0x3B<<7 | 0x2E, - 27102 - 19968: jis0208<<14 | 0x3B<<7 | 0x38, - 27106 - 19968: jis0208<<14 | 0x59<<7 | 0x31, - 27109 - 19968: jis0212<<14 | 0x23<<7 | 0x4A, - 27111 - 19968: jis0208<<14 | 0x3B<<7 | 0x40, - 27112 - 19968: jis0208<<14 | 0x3B<<7 | 0x39, - 27115 - 19968: jis0208<<14 | 0x3B<<7 | 0x46, - 27117 - 19968: jis0208<<14 | 0x3B<<7 | 0x44, - 27118 - 19968: jis0212<<14 | 0x23<<7 | 0x4B, - 27119 - 19968: jis0212<<14 | 0x23<<7 | 0x4C, - 27121 - 19968: jis0212<<14 | 0x23<<7 | 0x4D, - 27122 - 19968: jis0208<<14 | 0x3B<<7 | 0x3F, - 27123 - 19968: jis0212<<14 | 0x23<<7 | 0x4E, - 27125 - 19968: jis0212<<14 | 0x23<<7 | 0x4F, - 27129 - 19968: jis0208<<14 | 0x3B<<7 | 0x3E, - 27131 - 19968: jis0208<<14 | 0x23<<7 | 0x2F, - 27133 - 19968: jis0208<<14 | 0x20<<7 | 0x44, - 27134 - 19968: jis0212<<14 | 0x23<<7 | 0x50, - 27135 - 19968: jis0208<<14 | 0x3B<<7 | 0x3C, - 27136 - 19968: jis0212<<14 | 0x23<<7 | 0x51, - 27137 - 19968: jis0212<<14 | 0x23<<7 | 0x52, - 27138 - 19968: jis0208<<14 | 0x3B<<7 | 0x3A, - 27139 - 19968: jis0212<<14 | 0x23<<7 | 0x53, - 27141 - 19968: jis0208<<14 | 0x3B<<7 | 0x41, - 27146 - 19968: jis0208<<14 | 0x3B<<7 | 0x47, - 27147 - 19968: jis0208<<14 | 0x27<<7 | 0x54, - 27148 - 19968: jis0208<<14 | 0x3B<<7 | 0x4D, - 27151 - 19968: jis0212<<14 | 0x23<<7 | 0x54, - 27153 - 19968: jis0212<<14 | 0x23<<7 | 0x55, - 27154 - 19968: jis0208<<14 | 0x3B<<7 | 0x48, - 27155 - 19968: jis0208<<14 | 0x3B<<7 | 0x4B, - 27156 - 19968: jis0208<<14 | 0x3B<<7 | 0x45, - 27157 - 19968: jis0212<<14 | 0x23<<7 | 0x56, - 27159 - 19968: jis0208<<14 | 0x22<<7 | 0x53, - 27161 - 19968: jis0208<<14 | 0x28<<7 | 0x17, - 27162 - 19968: jis0212<<14 | 0x23<<7 | 0x57, - 27163 - 19968: jis0208<<14 | 0x3B<<7 | 0x3B, - 27165 - 19968: jis0212<<14 | 0x23<<7 | 0x58, - 27166 - 19968: jis0208<<14 | 0x3B<<7 | 0x43, - 27167 - 19968: jis0208<<14 | 0x1D<<7 | 0x1F, - 27168 - 19968: jis0212<<14 | 0x23<<7 | 0x59, - 27169 - 19968: jis0208<<14 | 0x2B<<7 | 0x2E, - 27170 - 19968: jis0208<<14 | 0x3B<<7 | 0x57, - 27171 - 19968: jis0208<<14 | 0x3B<<7 | 0x4A, - 27172 - 19968: jis0212<<14 | 0x23<<7 | 0x5A, - 27176 - 19968: jis0212<<14 | 0x23<<7 | 0x5B, - 27177 - 19968: jis0208<<14 | 0x17<<7 | 0x01, - 27178 - 19968: jis0208<<14 | 0x11<<7 | 0x02, - 27179 - 19968: jis0208<<14 | 0x12<<7 | 0x3E, - 27182 - 19968: jis0208<<14 | 0x3B<<7 | 0x32, - 27184 - 19968: jis0208<<14 | 0x59<<7 | 0x32, - 27186 - 19968: jis0212<<14 | 0x23<<7 | 0x5D, - 27188 - 19968: jis0212<<14 | 0x24<<7 | 0x00, - 27189 - 19968: jis0208<<14 | 0x1D<<7 | 0x20, - 27190 - 19968: jis0208<<14 | 0x3B<<7 | 0x4F, - 27191 - 19968: jis0212<<14 | 0x24<<7 | 0x01, - 27192 - 19968: jis0208<<14 | 0x3B<<7 | 0x56, - 27193 - 19968: jis0208<<14 | 0x1B<<7 | 0x58, - 27194 - 19968: jis0208<<14 | 0x12<<7 | 0x51, - 27195 - 19968: jis0212<<14 | 0x24<<7 | 0x02, - 27197 - 19968: jis0208<<14 | 0x22<<7 | 0x0D, - 27198 - 19968: jis0212<<14 | 0x24<<7 | 0x03, - 27199 - 19968: jis0212<<14 | 0x24<<7 | 0x04, - 27204 - 19968: jis0208<<14 | 0x3B<<7 | 0x4C, - 27205 - 19968: jis0212<<14 | 0x24<<7 | 0x05, - 27206 - 19968: jis0208<<14 | 0x59<<7 | 0x34, - 27207 - 19968: jis0208<<14 | 0x3B<<7 | 0x51, - 27208 - 19968: jis0208<<14 | 0x3B<<7 | 0x55, - 27209 - 19968: jis0212<<14 | 0x24<<7 | 0x07, - 27210 - 19968: jis0212<<14 | 0x24<<7 | 0x08, - 27211 - 19968: jis0208<<14 | 0x15<<7 | 0x15, - 27214 - 19968: jis0212<<14 | 0x24<<7 | 0x09, - 27216 - 19968: jis0212<<14 | 0x24<<7 | 0x0A, - 27217 - 19968: jis0212<<14 | 0x24<<7 | 0x0B, - 27218 - 19968: jis0212<<14 | 0x24<<7 | 0x0C, - 27221 - 19968: jis0212<<14 | 0x24<<7 | 0x0D, - 27222 - 19968: jis0212<<14 | 0x24<<7 | 0x0E, - 27224 - 19968: jis0208<<14 | 0x14<<7 | 0x2B, - 27225 - 19968: jis0208<<14 | 0x3B<<7 | 0x53, - 27227 - 19968: jis0212<<14 | 0x24<<7 | 0x0F, - 27231 - 19968: jis0208<<14 | 0x14<<7 | 0x00, - 27233 - 19968: jis0208<<14 | 0x25<<7 | 0x2A, - 27234 - 19968: jis0208<<14 | 0x3B<<7 | 0x52, - 27236 - 19968: jis0212<<14 | 0x24<<7 | 0x10, - 27238 - 19968: jis0208<<14 | 0x3B<<7 | 0x54, - 27239 - 19968: jis0212<<14 | 0x24<<7 | 0x11, - 27242 - 19968: jis0212<<14 | 0x24<<7 | 0x12, - 27243 - 19968: jis0208<<14 | 0x59<<7 | 0x33, - 27249 - 19968: jis0212<<14 | 0x24<<7 | 0x13, - 27250 - 19968: jis0208<<14 | 0x3B<<7 | 0x4E, - 27251 - 19968: jis0208<<14 | 0x59<<7 | 0x35, - 27256 - 19968: jis0208<<14 | 0x3B<<7 | 0x50, - 27262 - 19968: jis0208<<14 | 0x59<<7 | 0x36, - 27263 - 19968: jis0208<<14 | 0x12<<7 | 0x3F, - 27264 - 19968: jis0208<<14 | 0x22<<7 | 0x28, - 27265 - 19968: jis0212<<14 | 0x24<<7 | 0x16, - 27267 - 19968: jis0212<<14 | 0x24<<7 | 0x17, - 27268 - 19968: jis0208<<14 | 0x3B<<7 | 0x5B, - 27270 - 19968: jis0212<<14 | 0x24<<7 | 0x18, - 27271 - 19968: jis0212<<14 | 0x24<<7 | 0x19, - 27273 - 19968: jis0212<<14 | 0x24<<7 | 0x1A, - 27275 - 19968: jis0212<<14 | 0x24<<7 | 0x1B, - 27277 - 19968: jis0208<<14 | 0x3B<<7 | 0x59, - 27278 - 19968: jis0208<<14 | 0x17<<7 | 0x48, - 27280 - 19968: jis0208<<14 | 0x3B<<7 | 0x58, - 27281 - 19968: jis0212<<14 | 0x24<<7 | 0x1C, - 27287 - 19968: jis0208<<14 | 0x3C<<7 | 0x00, - 27291 - 19968: jis0212<<14 | 0x24<<7 | 0x1D, - 27292 - 19968: jis0208<<14 | 0x3A<<7 | 0x37, - 27293 - 19968: jis0212<<14 | 0x24<<7 | 0x1E, - 27294 - 19968: jis0212<<14 | 0x24<<7 | 0x1F, - 27295 - 19968: jis0212<<14 | 0x24<<7 | 0x20, - 27296 - 19968: jis0208<<14 | 0x3B<<7 | 0x5A, - 27298 - 19968: jis0208<<14 | 0x3B<<7 | 0x5C, - 27299 - 19968: jis0208<<14 | 0x3B<<7 | 0x5D, - 27301 - 19968: jis0212<<14 | 0x24<<7 | 0x21, - 27306 - 19968: jis0208<<14 | 0x3C<<7 | 0x0B, - 27307 - 19968: jis0212<<14 | 0x24<<7 | 0x22, - 27308 - 19968: jis0208<<14 | 0x3C<<7 | 0x07, - 27310 - 19968: jis0208<<14 | 0x3A<<7 | 0x4C, - 27311 - 19968: jis0212<<14 | 0x24<<7 | 0x23, - 27312 - 19968: jis0212<<14 | 0x24<<7 | 0x24, - 27313 - 19968: jis0212<<14 | 0x24<<7 | 0x25, - 27315 - 19968: jis0208<<14 | 0x3C<<7 | 0x06, - 27316 - 19968: jis0212<<14 | 0x24<<7 | 0x26, - 27320 - 19968: jis0208<<14 | 0x3C<<7 | 0x05, - 27323 - 19968: jis0208<<14 | 0x3C<<7 | 0x02, - 27325 - 19968: jis0212<<14 | 0x24<<7 | 0x27, - 27326 - 19968: jis0212<<14 | 0x24<<7 | 0x28, - 27327 - 19968: jis0212<<14 | 0x24<<7 | 0x29, - 27329 - 19968: jis0208<<14 | 0x3B<<7 | 0x49, - 27330 - 19968: jis0208<<14 | 0x3C<<7 | 0x04, - 27331 - 19968: jis0208<<14 | 0x3C<<7 | 0x03, - 27334 - 19968: jis0212<<14 | 0x24<<7 | 0x2A, - 27336 - 19968: jis0212<<14 | 0x24<<7 | 0x2C, - 27337 - 19968: jis0212<<14 | 0x24<<7 | 0x2B, - 27340 - 19968: jis0212<<14 | 0x24<<7 | 0x2D, - 27344 - 19968: jis0212<<14 | 0x24<<7 | 0x2E, - 27345 - 19968: jis0208<<14 | 0x3C<<7 | 0x09, - 27347 - 19968: jis0208<<14 | 0x2E<<7 | 0x05, - 27348 - 19968: jis0212<<14 | 0x24<<7 | 0x2F, - 27349 - 19968: jis0212<<14 | 0x24<<7 | 0x30, - 27350 - 19968: jis0212<<14 | 0x24<<7 | 0x31, - 27354 - 19968: jis0208<<14 | 0x3C<<7 | 0x0C, - 27355 - 19968: jis0208<<14 | 0x15<<7 | 0x5A, - 27356 - 19968: jis0212<<14 | 0x24<<7 | 0x32, - 27357 - 19968: jis0212<<14 | 0x24<<7 | 0x33, - 27358 - 19968: jis0208<<14 | 0x3C<<7 | 0x08, - 27359 - 19968: jis0208<<14 | 0x3C<<7 | 0x0A, - 27362 - 19968: jis0208<<14 | 0x59<<7 | 0x37, - 27364 - 19968: jis0208<<14 | 0x59<<7 | 0x38, - 27367 - 19968: jis0212<<14 | 0x24<<7 | 0x35, - 27368 - 19968: jis0208<<14 | 0x27<<7 | 0x06, - 27370 - 19968: jis0208<<14 | 0x3C<<7 | 0x0D, - 27372 - 19968: jis0212<<14 | 0x24<<7 | 0x36, - 27376 - 19968: jis0212<<14 | 0x24<<7 | 0x37, - 27377 - 19968: jis0212<<14 | 0x24<<7 | 0x38, - 27378 - 19968: jis0212<<14 | 0x24<<7 | 0x39, - 27386 - 19968: jis0208<<14 | 0x3C<<7 | 0x11, - 27387 - 19968: jis0208<<14 | 0x3C<<7 | 0x0E, - 27388 - 19968: jis0212<<14 | 0x24<<7 | 0x3A, - 27389 - 19968: jis0212<<14 | 0x24<<7 | 0x3B, - 27394 - 19968: jis0212<<14 | 0x24<<7 | 0x3C, - 27395 - 19968: jis0212<<14 | 0x24<<7 | 0x3D, - 27396 - 19968: jis0208<<14 | 0x2C<<7 | 0x52, - 27397 - 19968: jis0208<<14 | 0x3C<<7 | 0x0F, - 27398 - 19968: jis0212<<14 | 0x24<<7 | 0x3E, - 27399 - 19968: jis0212<<14 | 0x24<<7 | 0x3F, - 27401 - 19968: jis0212<<14 | 0x24<<7 | 0x40, - 27402 - 19968: jis0208<<14 | 0x3B<<7 | 0x3D, - 27407 - 19968: jis0212<<14 | 0x24<<7 | 0x41, - 27408 - 19968: jis0212<<14 | 0x24<<7 | 0x42, - 27409 - 19968: jis0212<<14 | 0x24<<7 | 0x43, - 27410 - 19968: jis0208<<14 | 0x3C<<7 | 0x12, - 27414 - 19968: jis0208<<14 | 0x3C<<7 | 0x13, - 27415 - 19968: jis0212<<14 | 0x24<<7 | 0x44, - 27419 - 19968: jis0212<<14 | 0x24<<7 | 0x45, - 27421 - 19968: jis0208<<14 | 0x10<<7 | 0x14, - 27422 - 19968: jis0212<<14 | 0x24<<7 | 0x46, - 27423 - 19968: jis0208<<14 | 0x3C<<7 | 0x15, - 27424 - 19968: jis0208<<14 | 0x16<<7 | 0x46, - 27425 - 19968: jis0208<<14 | 0x1B<<7 | 0x00, - 27427 - 19968: jis0208<<14 | 0x15<<7 | 0x34, - 27428 - 19968: jis0212<<14 | 0x24<<7 | 0x47, - 27431 - 19968: jis0208<<14 | 0x11<<7 | 0x03, - 27432 - 19968: jis0212<<14 | 0x24<<7 | 0x48, - 27435 - 19968: jis0212<<14 | 0x24<<7 | 0x49, - 27436 - 19968: jis0212<<14 | 0x24<<7 | 0x4A, - 27439 - 19968: jis0212<<14 | 0x24<<7 | 0x4B, - 27442 - 19968: jis0208<<14 | 0x2C<<7 | 0x3E, - 27445 - 19968: jis0212<<14 | 0x24<<7 | 0x4C, - 27446 - 19968: jis0212<<14 | 0x24<<7 | 0x4D, - 27447 - 19968: jis0208<<14 | 0x3C<<7 | 0x17, - 27448 - 19968: jis0208<<14 | 0x3C<<7 | 0x16, - 27449 - 19968: jis0208<<14 | 0x3C<<7 | 0x19, - 27450 - 19968: jis0208<<14 | 0x14<<7 | 0x1C, - 27451 - 19968: jis0212<<14 | 0x24<<7 | 0x4E, - 27453 - 19968: jis0208<<14 | 0x15<<7 | 0x35, - 27454 - 19968: jis0208<<14 | 0x13<<7 | 0x1D, - 27455 - 19968: jis0212<<14 | 0x24<<7 | 0x4F, - 27459 - 19968: jis0208<<14 | 0x3C<<7 | 0x1C, - 27462 - 19968: jis0212<<14 | 0x24<<7 | 0x50, - 27463 - 19968: jis0208<<14 | 0x3C<<7 | 0x1B, - 27465 - 19968: jis0208<<14 | 0x3C<<7 | 0x1D, - 27466 - 19968: jis0212<<14 | 0x24<<7 | 0x51, - 27468 - 19968: jis0208<<14 | 0x11<<7 | 0x2D, - 27469 - 19968: jis0212<<14 | 0x24<<7 | 0x52, - 27470 - 19968: jis0208<<14 | 0x22<<7 | 0x16, - 27472 - 19968: jis0208<<14 | 0x3C<<7 | 0x1E, - 27474 - 19968: jis0212<<14 | 0x24<<7 | 0x53, - 27475 - 19968: jis0208<<14 | 0x13<<7 | 0x1E, - 27476 - 19968: jis0208<<14 | 0x3C<<7 | 0x20, - 27478 - 19968: jis0212<<14 | 0x24<<7 | 0x54, - 27480 - 19968: jis0212<<14 | 0x24<<7 | 0x55, - 27481 - 19968: jis0208<<14 | 0x3C<<7 | 0x1F, - 27483 - 19968: jis0208<<14 | 0x3C<<7 | 0x21, - 27485 - 19968: jis0212<<14 | 0x24<<7 | 0x56, - 27487 - 19968: jis0208<<14 | 0x3C<<7 | 0x22, - 27488 - 19968: jis0212<<14 | 0x24<<7 | 0x57, - 27489 - 19968: jis0208<<14 | 0x3C<<7 | 0x23, - 27490 - 19968: jis0208<<14 | 0x1A<<7 | 0x3E, - 27491 - 19968: jis0208<<14 | 0x1F<<7 | 0x14, - 27492 - 19968: jis0208<<14 | 0x19<<7 | 0x00, - 27494 - 19968: jis0208<<14 | 0x28<<7 | 0x4F, - 27495 - 19968: jis0212<<14 | 0x24<<7 | 0x58, - 27497 - 19968: jis0208<<14 | 0x29<<7 | 0x41, - 27498 - 19968: jis0208<<14 | 0x2E<<7 | 0x23, - 27499 - 19968: jis0212<<14 | 0x24<<7 | 0x59, - 27502 - 19968: jis0212<<14 | 0x24<<7 | 0x5A, - 27503 - 19968: jis0208<<14 | 0x1A<<7 | 0x54, - 27504 - 19968: jis0212<<14 | 0x24<<7 | 0x5B, - 27507 - 19968: jis0208<<14 | 0x19<<7 | 0x2F, - 27508 - 19968: jis0208<<14 | 0x2D<<7 | 0x51, - 27509 - 19968: jis0212<<14 | 0x24<<7 | 0x5C, - 27512 - 19968: jis0208<<14 | 0x3C<<7 | 0x24, - 27513 - 19968: jis0208<<14 | 0x3C<<7 | 0x25, - 27515 - 19968: jis0208<<14 | 0x1A<<7 | 0x3F, - 27517 - 19968: jis0212<<14 | 0x24<<7 | 0x5D, - 27518 - 19968: jis0212<<14 | 0x25<<7 | 0x00, - 27519 - 19968: jis0208<<14 | 0x3C<<7 | 0x26, - 27520 - 19968: jis0208<<14 | 0x3C<<7 | 0x27, - 27522 - 19968: jis0212<<14 | 0x25<<7 | 0x01, - 27523 - 19968: jis0208<<14 | 0x3C<<7 | 0x29, - 27524 - 19968: jis0208<<14 | 0x3C<<7 | 0x28, - 27525 - 19968: jis0212<<14 | 0x25<<7 | 0x02, - 27526 - 19968: jis0208<<14 | 0x2A<<7 | 0x37, - 27529 - 19968: jis0208<<14 | 0x1C<<7 | 0x3D, - 27530 - 19968: jis0208<<14 | 0x1B<<7 | 0x4B, - 27531 - 19968: jis0208<<14 | 0x1A<<7 | 0x23, - 27533 - 19968: jis0208<<14 | 0x3C<<7 | 0x2A, - 27541 - 19968: jis0208<<14 | 0x3C<<7 | 0x2C, - 27542 - 19968: jis0208<<14 | 0x1E<<7 | 0x02, - 27543 - 19968: jis0212<<14 | 0x25<<7 | 0x03, - 27544 - 19968: jis0208<<14 | 0x3C<<7 | 0x2B, - 27547 - 19968: jis0212<<14 | 0x25<<7 | 0x04, - 27550 - 19968: jis0208<<14 | 0x3C<<7 | 0x2D, - 27551 - 19968: jis0212<<14 | 0x25<<7 | 0x05, - 27552 - 19968: jis0212<<14 | 0x25<<7 | 0x06, - 27554 - 19968: jis0212<<14 | 0x25<<7 | 0x07, - 27555 - 19968: jis0212<<14 | 0x25<<7 | 0x08, - 27556 - 19968: jis0208<<14 | 0x3C<<7 | 0x2E, - 27560 - 19968: jis0212<<14 | 0x25<<7 | 0x09, - 27561 - 19968: jis0212<<14 | 0x25<<7 | 0x0A, - 27562 - 19968: jis0208<<14 | 0x3C<<7 | 0x2F, - 27563 - 19968: jis0208<<14 | 0x3C<<7 | 0x30, - 27564 - 19968: jis0212<<14 | 0x25<<7 | 0x0B, - 27565 - 19968: jis0212<<14 | 0x25<<7 | 0x0C, - 27566 - 19968: jis0212<<14 | 0x25<<7 | 0x0D, - 27567 - 19968: jis0208<<14 | 0x3C<<7 | 0x31, - 27568 - 19968: jis0212<<14 | 0x25<<7 | 0x0E, - 27569 - 19968: jis0208<<14 | 0x3C<<7 | 0x33, - 27570 - 19968: jis0208<<14 | 0x3C<<7 | 0x32, - 27571 - 19968: jis0208<<14 | 0x3C<<7 | 0x34, - 27572 - 19968: jis0208<<14 | 0x11<<7 | 0x04, - 27573 - 19968: jis0208<<14 | 0x22<<7 | 0x29, - 27575 - 19968: jis0208<<14 | 0x3C<<7 | 0x35, - 27576 - 19968: jis0212<<14 | 0x25<<7 | 0x0F, - 27577 - 19968: jis0212<<14 | 0x25<<7 | 0x10, - 27578 - 19968: jis0208<<14 | 0x1A<<7 | 0x05, - 27579 - 19968: jis0208<<14 | 0x12<<7 | 0x2B, - 27580 - 19968: jis0208<<14 | 0x3C<<7 | 0x36, - 27581 - 19968: jis0212<<14 | 0x25<<7 | 0x11, - 27582 - 19968: jis0212<<14 | 0x25<<7 | 0x12, - 27583 - 19968: jis0208<<14 | 0x24<<7 | 0x21, - 27584 - 19968: jis0208<<14 | 0x33<<7 | 0x2B, - 27587 - 19968: jis0212<<14 | 0x25<<7 | 0x13, - 27588 - 19968: jis0212<<14 | 0x25<<7 | 0x14, - 27589 - 19968: jis0208<<14 | 0x14<<7 | 0x02, - 27590 - 19968: jis0208<<14 | 0x3C<<7 | 0x37, - 27593 - 19968: jis0212<<14 | 0x25<<7 | 0x15, - 27595 - 19968: jis0208<<14 | 0x3C<<7 | 0x38, - 27596 - 19968: jis0212<<14 | 0x25<<7 | 0x16, - 27597 - 19968: jis0208<<14 | 0x29<<7 | 0x4B, - 27598 - 19968: jis0208<<14 | 0x2A<<7 | 0x47, - 27602 - 19968: jis0208<<14 | 0x25<<7 | 0x26, - 27603 - 19968: jis0208<<14 | 0x3C<<7 | 0x39, - 27604 - 19968: jis0208<<14 | 0x27<<7 | 0x45, - 27606 - 19968: jis0208<<14 | 0x59<<7 | 0x39, - 27608 - 19968: jis0208<<14 | 0x27<<7 | 0x5A, - 27610 - 19968: jis0212<<14 | 0x25<<7 | 0x18, - 27611 - 19968: jis0208<<14 | 0x2B<<7 | 0x32, - 27615 - 19968: jis0208<<14 | 0x3C<<7 | 0x3A, - 27617 - 19968: jis0212<<14 | 0x25<<7 | 0x19, - 27619 - 19968: jis0212<<14 | 0x25<<7 | 0x1A, - 27622 - 19968: jis0212<<14 | 0x25<<7 | 0x1B, - 27623 - 19968: jis0212<<14 | 0x25<<7 | 0x1C, - 27627 - 19968: jis0208<<14 | 0x3C<<7 | 0x3C, - 27628 - 19968: jis0208<<14 | 0x3C<<7 | 0x3B, - 27630 - 19968: jis0212<<14 | 0x25<<7 | 0x1D, - 27631 - 19968: jis0208<<14 | 0x3C<<7 | 0x3E, - 27633 - 19968: jis0212<<14 | 0x25<<7 | 0x1E, - 27635 - 19968: jis0208<<14 | 0x3C<<7 | 0x3D, - 27639 - 19968: jis0212<<14 | 0x25<<7 | 0x1F, - 27641 - 19968: jis0212<<14 | 0x25<<7 | 0x20, - 27647 - 19968: jis0212<<14 | 0x25<<7 | 0x21, - 27650 - 19968: jis0212<<14 | 0x25<<7 | 0x22, - 27652 - 19968: jis0212<<14 | 0x25<<7 | 0x23, - 27653 - 19968: jis0212<<14 | 0x25<<7 | 0x24, - 27656 - 19968: jis0208<<14 | 0x3C<<7 | 0x40, - 27657 - 19968: jis0212<<14 | 0x25<<7 | 0x25, - 27661 - 19968: jis0212<<14 | 0x25<<7 | 0x26, - 27662 - 19968: jis0212<<14 | 0x25<<7 | 0x27, - 27663 - 19968: jis0208<<14 | 0x1A<<7 | 0x40, - 27664 - 19968: jis0212<<14 | 0x25<<7 | 0x28, - 27665 - 19968: jis0208<<14 | 0x2B<<7 | 0x10, - 27666 - 19968: jis0212<<14 | 0x25<<7 | 0x29, - 27667 - 19968: jis0208<<14 | 0x3C<<7 | 0x41, - 27668 - 19968: jis0208<<14 | 0x3C<<7 | 0x42, - 27671 - 19968: jis0208<<14 | 0x14<<7 | 0x03, - 27673 - 19968: jis0212<<14 | 0x25<<7 | 0x2A, - 27675 - 19968: jis0208<<14 | 0x3C<<7 | 0x43, - 27679 - 19968: jis0212<<14 | 0x25<<7 | 0x2B, - 27683 - 19968: jis0208<<14 | 0x3C<<7 | 0x45, - 27684 - 19968: jis0208<<14 | 0x3C<<7 | 0x44, - 27686 - 19968: jis0212<<14 | 0x25<<7 | 0x2C, - 27687 - 19968: jis0212<<14 | 0x25<<7 | 0x2D, - 27688 - 19968: jis0212<<14 | 0x25<<7 | 0x2E, - 27692 - 19968: jis0212<<14 | 0x25<<7 | 0x2F, - 27694 - 19968: jis0212<<14 | 0x25<<7 | 0x30, - 27699 - 19968: jis0212<<14 | 0x25<<7 | 0x31, - 27700 - 19968: jis0208<<14 | 0x1E<<7 | 0x44, - 27701 - 19968: jis0212<<14 | 0x25<<7 | 0x32, - 27702 - 19968: jis0212<<14 | 0x25<<7 | 0x33, - 27703 - 19968: jis0208<<14 | 0x28<<7 | 0x18, - 27704 - 19968: jis0208<<14 | 0x10<<7 | 0x29, - 27706 - 19968: jis0212<<14 | 0x25<<7 | 0x34, - 27707 - 19968: jis0212<<14 | 0x25<<7 | 0x35, - 27710 - 19968: jis0208<<14 | 0x27<<7 | 0x24, - 27711 - 19968: jis0208<<14 | 0x59<<7 | 0x3A, - 27712 - 19968: jis0208<<14 | 0x23<<7 | 0x54, - 27713 - 19968: jis0208<<14 | 0x1C<<7 | 0x20, - 27714 - 19968: jis0208<<14 | 0x14<<7 | 0x40, - 27722 - 19968: jis0212<<14 | 0x25<<7 | 0x37, - 27723 - 19968: jis0212<<14 | 0x25<<7 | 0x38, - 27725 - 19968: jis0212<<14 | 0x25<<7 | 0x39, - 27726 - 19968: jis0208<<14 | 0x27<<7 | 0x25, - 27727 - 19968: jis0212<<14 | 0x25<<7 | 0x3A, - 27728 - 19968: jis0208<<14 | 0x1B<<7 | 0x0D, - 27730 - 19968: jis0212<<14 | 0x25<<7 | 0x3B, - 27732 - 19968: jis0212<<14 | 0x25<<7 | 0x3C, - 27733 - 19968: jis0208<<14 | 0x3C<<7 | 0x47, - 27735 - 19968: jis0208<<14 | 0x13<<7 | 0x1F, - 27737 - 19968: jis0212<<14 | 0x25<<7 | 0x3D, - 27738 - 19968: jis0208<<14 | 0x10<<7 | 0x57, - 27739 - 19968: jis0212<<14 | 0x25<<7 | 0x3E, - 27740 - 19968: jis0208<<14 | 0x59<<7 | 0x3B, - 27741 - 19968: jis0208<<14 | 0x25<<7 | 0x51, - 27742 - 19968: jis0208<<14 | 0x3C<<7 | 0x46, - 27743 - 19968: jis0208<<14 | 0x18<<7 | 0x1D, - 27744 - 19968: jis0208<<14 | 0x22<<7 | 0x32, - 27746 - 19968: jis0208<<14 | 0x3C<<7 | 0x48, - 27751 - 19968: jis0212<<14 | 0x26<<7 | 0x15, - 27752 - 19968: jis0208<<14 | 0x3C<<7 | 0x50, - 27754 - 19968: jis0208<<14 | 0x3C<<7 | 0x49, - 27755 - 19968: jis0212<<14 | 0x25<<7 | 0x40, - 27757 - 19968: jis0212<<14 | 0x25<<7 | 0x41, - 27759 - 19968: jis0208<<14 | 0x59<<7 | 0x3D, - 27760 - 19968: jis0208<<14 | 0x21<<7 | 0x20, - 27762 - 19968: jis0208<<14 | 0x14<<7 | 0x41, - 27763 - 19968: jis0208<<14 | 0x3C<<7 | 0x51, - 27764 - 19968: jis0212<<14 | 0x25<<7 | 0x43, - 27766 - 19968: jis0212<<14 | 0x25<<7 | 0x44, - 27768 - 19968: jis0212<<14 | 0x25<<7 | 0x45, - 27769 - 19968: jis0212<<14 | 0x25<<7 | 0x46, - 27770 - 19968: jis0208<<14 | 0x16<<7 | 0x47, - 27771 - 19968: jis0212<<14 | 0x25<<7 | 0x47, - 27773 - 19968: jis0208<<14 | 0x14<<7 | 0x04, - 27774 - 19968: jis0208<<14 | 0x3C<<7 | 0x4F, - 27777 - 19968: jis0208<<14 | 0x3C<<7 | 0x4D, - 27778 - 19968: jis0208<<14 | 0x3C<<7 | 0x4A, - 27779 - 19968: jis0208<<14 | 0x2C<<7 | 0x3F, - 27781 - 19968: jis0212<<14 | 0x25<<7 | 0x48, - 27782 - 19968: jis0208<<14 | 0x59<<7 | 0x3C, - 27783 - 19968: jis0212<<14 | 0x25<<7 | 0x4A, - 27784 - 19968: jis0208<<14 | 0x23<<7 | 0x1F, - 27785 - 19968: jis0212<<14 | 0x25<<7 | 0x4B, - 27788 - 19968: jis0208<<14 | 0x25<<7 | 0x38, - 27789 - 19968: jis0208<<14 | 0x3C<<7 | 0x4B, - 27792 - 19968: jis0208<<14 | 0x3C<<7 | 0x53, - 27794 - 19968: jis0208<<14 | 0x3C<<7 | 0x52, - 27795 - 19968: jis0208<<14 | 0x16<<7 | 0x02, - 27796 - 19968: jis0212<<14 | 0x25<<7 | 0x4C, - 27797 - 19968: jis0212<<14 | 0x25<<7 | 0x4D, - 27798 - 19968: jis0208<<14 | 0x11<<7 | 0x0C, - 27799 - 19968: jis0212<<14 | 0x25<<7 | 0x4E, - 27800 - 19968: jis0212<<14 | 0x25<<7 | 0x4F, - 27801 - 19968: jis0208<<14 | 0x19<<7 | 0x1A, - 27802 - 19968: jis0208<<14 | 0x3C<<7 | 0x4C, - 27803 - 19968: jis0208<<14 | 0x3C<<7 | 0x4E, - 27804 - 19968: jis0212<<14 | 0x25<<7 | 0x50, - 27807 - 19968: jis0212<<14 | 0x25<<7 | 0x51, - 27809 - 19968: jis0208<<14 | 0x2A<<7 | 0x36, - 27810 - 19968: jis0208<<14 | 0x21<<7 | 0x53, - 27819 - 19968: jis0208<<14 | 0x2A<<7 | 0x56, - 27822 - 19968: jis0208<<14 | 0x3C<<7 | 0x5B, - 27824 - 19968: jis0212<<14 | 0x25<<7 | 0x52, - 27825 - 19968: jis0208<<14 | 0x3C<<7 | 0x5C, - 27826 - 19968: jis0212<<14 | 0x25<<7 | 0x53, - 27827 - 19968: jis0208<<14 | 0x11<<7 | 0x2E, - 27828 - 19968: jis0212<<14 | 0x25<<7 | 0x54, - 27832 - 19968: jis0208<<14 | 0x29<<7 | 0x07, - 27833 - 19968: jis0208<<14 | 0x2B<<7 | 0x5C, - 27834 - 19968: jis0208<<14 | 0x3D<<7 | 0x00, - 27835 - 19968: jis0208<<14 | 0x1B<<7 | 0x02, - 27836 - 19968: jis0208<<14 | 0x1D<<7 | 0x21, - 27837 - 19968: jis0208<<14 | 0x3C<<7 | 0x57, - 27838 - 19968: jis0208<<14 | 0x3C<<7 | 0x5D, - 27839 - 19968: jis0208<<14 | 0x10<<7 | 0x47, - 27841 - 19968: jis0208<<14 | 0x15<<7 | 0x16, - 27842 - 19968: jis0212<<14 | 0x25<<7 | 0x55, - 27844 - 19968: jis0208<<14 | 0x3C<<7 | 0x54, - 27845 - 19968: jis0208<<14 | 0x3C<<7 | 0x59, - 27846 - 19968: jis0212<<14 | 0x25<<7 | 0x56, - 27849 - 19968: jis0208<<14 | 0x1F<<7 | 0x53, - 27850 - 19968: jis0208<<14 | 0x26<<7 | 0x50, - 27852 - 19968: jis0208<<14 | 0x27<<7 | 0x46, - 27853 - 19968: jis0212<<14 | 0x25<<7 | 0x57, - 27855 - 19968: jis0212<<14 | 0x25<<7 | 0x58, - 27856 - 19968: jis0212<<14 | 0x25<<7 | 0x59, - 27857 - 19968: jis0212<<14 | 0x25<<7 | 0x5A, - 27858 - 19968: jis0212<<14 | 0x25<<7 | 0x5B, - 27859 - 19968: jis0208<<14 | 0x3C<<7 | 0x56, - 27860 - 19968: jis0212<<14 | 0x25<<7 | 0x5C, - 27861 - 19968: jis0208<<14 | 0x2A<<7 | 0x00, - 27862 - 19968: jis0212<<14 | 0x25<<7 | 0x5D, - 27863 - 19968: jis0208<<14 | 0x3C<<7 | 0x58, - 27865 - 19968: jis0208<<14 | 0x3D<<7 | 0x03, - 27866 - 19968: jis0208<<14 | 0x59<<7 | 0x3E, - 27867 - 19968: jis0208<<14 | 0x3D<<7 | 0x01, - 27868 - 19968: jis0212<<14 | 0x26<<7 | 0x01, - 27869 - 19968: jis0208<<14 | 0x3C<<7 | 0x5A, - 27872 - 19968: jis0212<<14 | 0x26<<7 | 0x02, - 27873 - 19968: jis0208<<14 | 0x2A<<7 | 0x01, - 27874 - 19968: jis0208<<14 | 0x26<<7 | 0x27, - 27875 - 19968: jis0208<<14 | 0x14<<7 | 0x42, - 27877 - 19968: jis0208<<14 | 0x24<<7 | 0x04, - 27879 - 19968: jis0212<<14 | 0x26<<7 | 0x03, - 27880 - 19968: jis0208<<14 | 0x22<<7 | 0x4C, - 27881 - 19968: jis0212<<14 | 0x26<<7 | 0x04, - 27882 - 19968: jis0208<<14 | 0x3D<<7 | 0x04, - 27883 - 19968: jis0212<<14 | 0x26<<7 | 0x05, - 27884 - 19968: jis0212<<14 | 0x26<<7 | 0x06, - 27886 - 19968: jis0212<<14 | 0x26<<7 | 0x07, - 27887 - 19968: jis0208<<14 | 0x3D<<7 | 0x02, - 27888 - 19968: jis0208<<14 | 0x21<<7 | 0x38, - 27889 - 19968: jis0208<<14 | 0x3C<<7 | 0x55, - 27890 - 19968: jis0212<<14 | 0x26<<7 | 0x08, - 27891 - 19968: jis0208<<14 | 0x10<<7 | 0x2A, - 27892 - 19968: jis0212<<14 | 0x26<<7 | 0x09, - 27908 - 19968: jis0208<<14 | 0x59<<7 | 0x3F, - 27911 - 19968: jis0212<<14 | 0x26<<7 | 0x0B, - 27914 - 19968: jis0212<<14 | 0x26<<7 | 0x0C, - 27915 - 19968: jis0208<<14 | 0x2C<<7 | 0x2D, - 27916 - 19968: jis0208<<14 | 0x3D<<7 | 0x0F, - 27918 - 19968: jis0212<<14 | 0x26<<7 | 0x0D, - 27919 - 19968: jis0212<<14 | 0x26<<7 | 0x0E, - 27921 - 19968: jis0212<<14 | 0x26<<7 | 0x0F, - 27922 - 19968: jis0208<<14 | 0x3D<<7 | 0x0E, - 27923 - 19968: jis0212<<14 | 0x26<<7 | 0x10, - 27927 - 19968: jis0208<<14 | 0x1F<<7 | 0x55, - 27929 - 19968: jis0208<<14 | 0x3D<<7 | 0x0B, - 27930 - 19968: jis0212<<14 | 0x26<<7 | 0x11, - 27931 - 19968: jis0208<<14 | 0x2C<<7 | 0x4B, - 27934 - 19968: jis0208<<14 | 0x25<<7 | 0x15, - 27935 - 19968: jis0208<<14 | 0x3D<<7 | 0x05, - 27941 - 19968: jis0208<<14 | 0x23<<7 | 0x24, - 27942 - 19968: jis0212<<14 | 0x26<<7 | 0x12, - 27943 - 19968: jis0212<<14 | 0x26<<7 | 0x13, - 27944 - 19968: jis0212<<14 | 0x26<<7 | 0x14, - 27945 - 19968: jis0208<<14 | 0x10<<7 | 0x2B, - 27946 - 19968: jis0208<<14 | 0x18<<7 | 0x1E, - 27947 - 19968: jis0208<<14 | 0x3D<<7 | 0x08, - 27950 - 19968: jis0212<<14 | 0x26<<7 | 0x16, - 27951 - 19968: jis0212<<14 | 0x26<<7 | 0x17, - 27953 - 19968: jis0212<<14 | 0x26<<7 | 0x18, - 27954 - 19968: jis0208<<14 | 0x1C<<7 | 0x06, - 27955 - 19968: jis0208<<14 | 0x3D<<7 | 0x0D, - 27957 - 19968: jis0208<<14 | 0x3D<<7 | 0x0C, - 27958 - 19968: jis0208<<14 | 0x3D<<7 | 0x07, - 27960 - 19968: jis0208<<14 | 0x3D<<7 | 0x0A, - 27961 - 19968: jis0212<<14 | 0x26<<7 | 0x19, - 27963 - 19968: jis0208<<14 | 0x12<<7 | 0x47, - 27964 - 19968: jis0212<<14 | 0x26<<7 | 0x1A, - 27965 - 19968: jis0208<<14 | 0x3D<<7 | 0x09, - 27966 - 19968: jis0208<<14 | 0x26<<7 | 0x28, - 27967 - 19968: jis0212<<14 | 0x26<<7 | 0x1B, - 27969 - 19968: jis0208<<14 | 0x2D<<7 | 0x0D, - 27972 - 19968: jis0208<<14 | 0x1D<<7 | 0x53, - 27973 - 19968: jis0208<<14 | 0x1F<<7 | 0x54, - 27991 - 19968: jis0212<<14 | 0x26<<7 | 0x1C, - 27993 - 19968: jis0208<<14 | 0x3D<<7 | 0x15, - 27994 - 19968: jis0208<<14 | 0x3D<<7 | 0x13, - 27996 - 19968: jis0208<<14 | 0x28<<7 | 0x2C, - 27998 - 19968: jis0212<<14 | 0x26<<7 | 0x1D, - 27999 - 19968: jis0212<<14 | 0x26<<7 | 0x1E, - 28001 - 19968: jis0212<<14 | 0x26<<7 | 0x1F, - 28003 - 19968: jis0208<<14 | 0x3D<<7 | 0x10, - 28004 - 19968: jis0208<<14 | 0x3D<<7 | 0x12, - 28005 - 19968: jis0212<<14 | 0x26<<7 | 0x20, - 28006 - 19968: jis0208<<14 | 0x10<<7 | 0x19, - 28007 - 19968: jis0212<<14 | 0x26<<7 | 0x21, - 28009 - 19968: jis0208<<14 | 0x18<<7 | 0x1F, - 28010 - 19968: jis0208<<14 | 0x2E<<7 | 0x11, - 28012 - 19968: jis0208<<14 | 0x12<<7 | 0x1C, - 28014 - 19968: jis0208<<14 | 0x28<<7 | 0x41, - 28015 - 19968: jis0208<<14 | 0x59<<7 | 0x41, - 28016 - 19968: jis0212<<14 | 0x26<<7 | 0x23, - 28020 - 19968: jis0208<<14 | 0x2C<<7 | 0x40, - 28023 - 19968: jis0208<<14 | 0x12<<7 | 0x03, - 28024 - 19968: jis0208<<14 | 0x1E<<7 | 0x1A, - 28025 - 19968: jis0208<<14 | 0x3D<<7 | 0x14, - 28028 - 19968: jis0212<<14 | 0x26<<7 | 0x24, - 28034 - 19968: jis0212<<14 | 0x26<<7 | 0x25, - 28037 - 19968: jis0208<<14 | 0x3D<<7 | 0x19, - 28039 - 19968: jis0208<<14 | 0x59<<7 | 0x40, - 28040 - 19968: jis0208<<14 | 0x1D<<7 | 0x22, - 28044 - 19968: jis0208<<14 | 0x2C<<7 | 0x0F, - 28046 - 19968: jis0208<<14 | 0x3D<<7 | 0x16, - 28049 - 19968: jis0212<<14 | 0x26<<7 | 0x27, - 28050 - 19968: jis0212<<14 | 0x26<<7 | 0x28, - 28051 - 19968: jis0208<<14 | 0x3D<<7 | 0x11, - 28052 - 19968: jis0212<<14 | 0x26<<7 | 0x29, - 28053 - 19968: jis0208<<14 | 0x3D<<7 | 0x17, - 28054 - 19968: jis0208<<14 | 0x59<<7 | 0x42, - 28055 - 19968: jis0212<<14 | 0x26<<7 | 0x2B, - 28056 - 19968: jis0212<<14 | 0x26<<7 | 0x2C, - 28057 - 19968: jis0208<<14 | 0x2D<<7 | 0x3D, - 28059 - 19968: jis0208<<14 | 0x24<<7 | 0x52, - 28060 - 19968: jis0208<<14 | 0x25<<7 | 0x21, - 28074 - 19968: jis0212<<14 | 0x26<<7 | 0x2D, - 28076 - 19968: jis0208<<14 | 0x59<<7 | 0x43, - 28079 - 19968: jis0208<<14 | 0x12<<7 | 0x15, - 28082 - 19968: jis0208<<14 | 0x10<<7 | 0x34, - 28084 - 19968: jis0212<<14 | 0x26<<7 | 0x2F, - 28085 - 19968: jis0208<<14 | 0x3D<<7 | 0x1D, - 28087 - 19968: jis0212<<14 | 0x26<<7 | 0x30, - 28088 - 19968: jis0208<<14 | 0x3D<<7 | 0x20, - 28089 - 19968: jis0212<<14 | 0x26<<7 | 0x31, - 28092 - 19968: jis0208<<14 | 0x2D<<7 | 0x22, - 28093 - 19968: jis0212<<14 | 0x26<<7 | 0x32, - 28095 - 19968: jis0212<<14 | 0x26<<7 | 0x33, - 28096 - 19968: jis0208<<14 | 0x2C<<7 | 0x43, - 28100 - 19968: jis0212<<14 | 0x26<<7 | 0x34, - 28101 - 19968: jis0208<<14 | 0x3D<<7 | 0x27, - 28102 - 19968: jis0208<<14 | 0x3D<<7 | 0x21, - 28103 - 19968: jis0208<<14 | 0x3D<<7 | 0x1E, - 28104 - 19968: jis0212<<14 | 0x26<<7 | 0x35, - 28106 - 19968: jis0212<<14 | 0x26<<7 | 0x36, - 28107 - 19968: jis0208<<14 | 0x2D<<7 | 0x33, - 28108 - 19968: jis0208<<14 | 0x3D<<7 | 0x24, - 28110 - 19968: jis0212<<14 | 0x26<<7 | 0x37, - 28111 - 19968: jis0208<<14 | 0x59<<7 | 0x44, - 28113 - 19968: jis0208<<14 | 0x1C<<7 | 0x29, - 28114 - 19968: jis0208<<14 | 0x3D<<7 | 0x26, - 28117 - 19968: jis0208<<14 | 0x3D<<7 | 0x2B, - 28118 - 19968: jis0212<<14 | 0x26<<7 | 0x39, - 28120 - 19968: jis0208<<14 | 0x24<<7 | 0x50, - 28121 - 19968: jis0208<<14 | 0x3D<<7 | 0x29, - 28123 - 19968: jis0212<<14 | 0x26<<7 | 0x3A, - 28125 - 19968: jis0212<<14 | 0x26<<7 | 0x3B, - 28126 - 19968: jis0208<<14 | 0x3D<<7 | 0x23, - 28127 - 19968: jis0212<<14 | 0x26<<7 | 0x3C, - 28128 - 19968: jis0212<<14 | 0x26<<7 | 0x3D, - 28129 - 19968: jis0208<<14 | 0x22<<7 | 0x17, - 28130 - 19968: jis0212<<14 | 0x26<<7 | 0x3E, - 28132 - 19968: jis0208<<14 | 0x3D<<7 | 0x2A, - 28133 - 19968: jis0212<<14 | 0x26<<7 | 0x3F, - 28134 - 19968: jis0208<<14 | 0x3D<<7 | 0x1F, - 28136 - 19968: jis0208<<14 | 0x3D<<7 | 0x25, - 28137 - 19968: jis0212<<14 | 0x26<<7 | 0x40, - 28138 - 19968: jis0208<<14 | 0x3D<<7 | 0x2C, - 28139 - 19968: jis0208<<14 | 0x0F<<7 | 0x5B, - 28140 - 19968: jis0208<<14 | 0x3D<<7 | 0x22, - 28142 - 19968: jis0208<<14 | 0x3D<<7 | 0x2D, - 28143 - 19968: jis0212<<14 | 0x26<<7 | 0x41, - 28144 - 19968: jis0212<<14 | 0x26<<7 | 0x42, - 28145 - 19968: jis0208<<14 | 0x1E<<7 | 0x1B, - 28146 - 19968: jis0208<<14 | 0x59<<7 | 0x46, - 28147 - 19968: jis0208<<14 | 0x1C<<7 | 0x3E, - 28148 - 19968: jis0212<<14 | 0x26<<7 | 0x43, - 28149 - 19968: jis0208<<14 | 0x29<<7 | 0x04, - 28150 - 19968: jis0212<<14 | 0x26<<7 | 0x44, - 28151 - 19968: jis0208<<14 | 0x19<<7 | 0x0D, - 28152 - 19968: jis0208<<14 | 0x59<<7 | 0x45, - 28153 - 19968: jis0208<<14 | 0x3D<<7 | 0x1A, - 28154 - 19968: jis0208<<14 | 0x3D<<7 | 0x28, - 28155 - 19968: jis0208<<14 | 0x24<<7 | 0x19, - 28156 - 19968: jis0208<<14 | 0x59<<7 | 0x47, - 28160 - 19968: jis0212<<14 | 0x26<<7 | 0x46, - 28164 - 19968: jis0212<<14 | 0x26<<7 | 0x47, - 28165 - 19968: jis0208<<14 | 0x1F<<7 | 0x15, - 28167 - 19968: jis0208<<14 | 0x12<<7 | 0x48, - 28168 - 19968: jis0208<<14 | 0x19<<7 | 0x30, - 28169 - 19968: jis0208<<14 | 0x1D<<7 | 0x23, - 28170 - 19968: jis0208<<14 | 0x3D<<7 | 0x1C, - 28171 - 19968: jis0208<<14 | 0x1C<<7 | 0x21, - 28179 - 19968: jis0208<<14 | 0x16<<7 | 0x2B, - 28181 - 19968: jis0208<<14 | 0x3D<<7 | 0x1B, - 28185 - 19968: jis0208<<14 | 0x3D<<7 | 0x31, - 28186 - 19968: jis0208<<14 | 0x1C<<7 | 0x4C, - 28187 - 19968: jis0208<<14 | 0x17<<7 | 0x19, - 28189 - 19968: jis0208<<14 | 0x3D<<7 | 0x40, - 28190 - 19968: jis0212<<14 | 0x26<<7 | 0x48, - 28191 - 19968: jis0208<<14 | 0x3D<<7 | 0x3A, - 28192 - 19968: jis0208<<14 | 0x14<<7 | 0x53, - 28193 - 19968: jis0208<<14 | 0x24<<7 | 0x2E, - 28194 - 19968: jis0212<<14 | 0x26<<7 | 0x49, - 28195 - 19968: jis0208<<14 | 0x3D<<7 | 0x35, - 28196 - 19968: jis0208<<14 | 0x3D<<7 | 0x3E, - 28197 - 19968: jis0208<<14 | 0x0F<<7 | 0x0E, - 28198 - 19968: jis0208<<14 | 0x10<<7 | 0x11, - 28199 - 19968: jis0208<<14 | 0x59<<7 | 0x4A, - 28201 - 19968: jis0208<<14 | 0x11<<7 | 0x18, - 28203 - 19968: jis0208<<14 | 0x3D<<7 | 0x37, - 28204 - 19968: jis0208<<14 | 0x21<<7 | 0x0B, - 28205 - 19968: jis0208<<14 | 0x3D<<7 | 0x2E, - 28206 - 19968: jis0208<<14 | 0x3D<<7 | 0x30, - 28207 - 19968: jis0208<<14 | 0x18<<7 | 0x20, - 28210 - 19968: jis0212<<14 | 0x26<<7 | 0x4B, - 28214 - 19968: jis0212<<14 | 0x26<<7 | 0x4C, - 28216 - 19968: jis0208<<14 | 0x3D<<7 | 0x41, - 28217 - 19968: jis0208<<14 | 0x59<<7 | 0x48, - 28218 - 19968: jis0208<<14 | 0x3D<<7 | 0x3C, - 28219 - 19968: jis0212<<14 | 0x26<<7 | 0x4E, - 28220 - 19968: jis0208<<14 | 0x59<<7 | 0x4B, - 28222 - 19968: jis0208<<14 | 0x3D<<7 | 0x34, - 28227 - 19968: jis0208<<14 | 0x3D<<7 | 0x3B, - 28228 - 19968: jis0212<<14 | 0x26<<7 | 0x50, - 28229 - 19968: jis0212<<14 | 0x26<<7 | 0x51, - 28232 - 19968: jis0212<<14 | 0x26<<7 | 0x52, - 28233 - 19968: jis0212<<14 | 0x26<<7 | 0x53, - 28234 - 19968: jis0208<<14 | 0x2B<<7 | 0x0A, - 28235 - 19968: jis0212<<14 | 0x26<<7 | 0x54, - 28237 - 19968: jis0208<<14 | 0x3D<<7 | 0x39, - 28238 - 19968: jis0208<<14 | 0x3D<<7 | 0x3D, - 28239 - 19968: jis0212<<14 | 0x26<<7 | 0x55, - 28241 - 19968: jis0212<<14 | 0x26<<7 | 0x56, - 28242 - 19968: jis0212<<14 | 0x26<<7 | 0x57, - 28243 - 19968: jis0212<<14 | 0x26<<7 | 0x58, - 28244 - 19968: jis0212<<14 | 0x26<<7 | 0x59, - 28246 - 19968: jis0208<<14 | 0x17<<7 | 0x2F, - 28247 - 19968: jis0212<<14 | 0x26<<7 | 0x5A, - 28248 - 19968: jis0208<<14 | 0x1D<<7 | 0x24, - 28251 - 19968: jis0208<<14 | 0x22<<7 | 0x18, - 28252 - 19968: jis0208<<14 | 0x59<<7 | 0x49, - 28253 - 19968: jis0212<<14 | 0x26<<7 | 0x5C, - 28254 - 19968: jis0212<<14 | 0x26<<7 | 0x5D, - 28255 - 19968: jis0208<<14 | 0x3D<<7 | 0x33, - 28258 - 19968: jis0212<<14 | 0x27<<7 | 0x00, - 28259 - 19968: jis0212<<14 | 0x27<<7 | 0x01, - 28263 - 19968: jis0208<<14 | 0x2C<<7 | 0x0E, - 28264 - 19968: jis0212<<14 | 0x27<<7 | 0x02, - 28267 - 19968: jis0208<<14 | 0x3D<<7 | 0x36, - 28270 - 19968: jis0208<<14 | 0x3D<<7 | 0x2F, - 28271 - 19968: jis0208<<14 | 0x24<<7 | 0x51, - 28274 - 19968: jis0208<<14 | 0x3D<<7 | 0x32, - 28275 - 19968: jis0212<<14 | 0x27<<7 | 0x03, - 28278 - 19968: jis0208<<14 | 0x3D<<7 | 0x38, - 28283 - 19968: jis0212<<14 | 0x27<<7 | 0x04, - 28285 - 19968: jis0212<<14 | 0x27<<7 | 0x05, - 28286 - 19968: jis0208<<14 | 0x2E<<7 | 0x30, - 28287 - 19968: jis0208<<14 | 0x1B<<7 | 0x1D, - 28288 - 19968: jis0208<<14 | 0x2A<<7 | 0x5D, - 28290 - 19968: jis0208<<14 | 0x3D<<7 | 0x42, - 28300 - 19968: jis0208<<14 | 0x27<<7 | 0x0D, - 28301 - 19968: jis0212<<14 | 0x27<<7 | 0x06, - 28303 - 19968: jis0208<<14 | 0x3D<<7 | 0x4E, - 28304 - 19968: jis0208<<14 | 0x17<<7 | 0x1A, - 28307 - 19968: jis0212<<14 | 0x27<<7 | 0x07, - 28310 - 19968: jis0208<<14 | 0x1C<<7 | 0x3F, - 28312 - 19968: jis0208<<14 | 0x3D<<7 | 0x44, - 28313 - 19968: jis0212<<14 | 0x27<<7 | 0x08, - 28316 - 19968: jis0208<<14 | 0x2D<<7 | 0x0E, - 28317 - 19968: jis0208<<14 | 0x18<<7 | 0x21, - 28319 - 19968: jis0208<<14 | 0x3D<<7 | 0x51, - 28320 - 19968: jis0212<<14 | 0x27<<7 | 0x09, - 28322 - 19968: jis0208<<14 | 0x0F<<7 | 0x4D, - 28325 - 19968: jis0208<<14 | 0x3D<<7 | 0x4F, - 28327 - 19968: jis0212<<14 | 0x27<<7 | 0x0A, - 28330 - 19968: jis0208<<14 | 0x3D<<7 | 0x43, - 28333 - 19968: jis0212<<14 | 0x27<<7 | 0x0B, - 28334 - 19968: jis0212<<14 | 0x27<<7 | 0x0C, - 28335 - 19968: jis0208<<14 | 0x3D<<7 | 0x49, - 28337 - 19968: jis0212<<14 | 0x27<<7 | 0x0D, - 28338 - 19968: jis0208<<14 | 0x3D<<7 | 0x4B, - 28339 - 19968: jis0212<<14 | 0x27<<7 | 0x0E, - 28342 - 19968: jis0208<<14 | 0x2C<<7 | 0x2E, - 28343 - 19968: jis0208<<14 | 0x3D<<7 | 0x46, - 28346 - 19968: jis0208<<14 | 0x24<<7 | 0x0D, - 28347 - 19968: jis0212<<14 | 0x27<<7 | 0x0F, - 28349 - 19968: jis0208<<14 | 0x3D<<7 | 0x48, - 28351 - 19968: jis0208<<14 | 0x59<<7 | 0x4C, - 28352 - 19968: jis0212<<14 | 0x27<<7 | 0x11, - 28353 - 19968: jis0212<<14 | 0x27<<7 | 0x12, - 28354 - 19968: jis0208<<14 | 0x3D<<7 | 0x50, - 28355 - 19968: jis0212<<14 | 0x27<<7 | 0x13, - 28356 - 19968: jis0208<<14 | 0x3D<<7 | 0x4A, - 28357 - 19968: jis0208<<14 | 0x2B<<7 | 0x26, - 28359 - 19968: jis0212<<14 | 0x27<<7 | 0x14, - 28360 - 19968: jis0212<<14 | 0x27<<7 | 0x15, - 28361 - 19968: jis0208<<14 | 0x3D<<7 | 0x45, - 28362 - 19968: jis0212<<14 | 0x27<<7 | 0x16, - 28363 - 19968: jis0208<<14 | 0x1B<<7 | 0x01, - 28364 - 19968: jis0208<<14 | 0x3D<<7 | 0x5D, - 28365 - 19968: jis0212<<14 | 0x27<<7 | 0x17, - 28366 - 19968: jis0212<<14 | 0x27<<7 | 0x18, - 28367 - 19968: jis0212<<14 | 0x27<<7 | 0x19, - 28369 - 19968: jis0208<<14 | 0x12<<7 | 0x49, - 28371 - 19968: jis0208<<14 | 0x3D<<7 | 0x47, - 28372 - 19968: jis0208<<14 | 0x3D<<7 | 0x4C, - 28373 - 19968: jis0208<<14 | 0x3D<<7 | 0x4D, - 28381 - 19968: jis0208<<14 | 0x21<<7 | 0x4B, - 28382 - 19968: jis0208<<14 | 0x21<<7 | 0x39, - 28395 - 19968: jis0212<<14 | 0x27<<7 | 0x1A, - 28396 - 19968: jis0208<<14 | 0x3D<<7 | 0x55, - 28397 - 19968: jis0212<<14 | 0x27<<7 | 0x1B, - 28398 - 19968: jis0212<<14 | 0x27<<7 | 0x1C, - 28399 - 19968: jis0208<<14 | 0x3D<<7 | 0x5B, - 28402 - 19968: jis0208<<14 | 0x3D<<7 | 0x59, - 28404 - 19968: jis0208<<14 | 0x24<<7 | 0x08, - 28407 - 19968: jis0208<<14 | 0x3E<<7 | 0x02, - 28408 - 19968: jis0208<<14 | 0x3D<<7 | 0x56, - 28409 - 19968: jis0212<<14 | 0x27<<7 | 0x1D, - 28411 - 19968: jis0212<<14 | 0x27<<7 | 0x1E, - 28413 - 19968: jis0212<<14 | 0x27<<7 | 0x1F, - 28414 - 19968: jis0208<<14 | 0x3D<<7 | 0x57, - 28415 - 19968: jis0208<<14 | 0x3D<<7 | 0x3F, - 28417 - 19968: jis0208<<14 | 0x14<<7 | 0x58, - 28418 - 19968: jis0208<<14 | 0x28<<7 | 0x19, - 28420 - 19968: jis0212<<14 | 0x27<<7 | 0x20, - 28422 - 19968: jis0208<<14 | 0x1B<<7 | 0x1E, - 28424 - 19968: jis0212<<14 | 0x27<<7 | 0x21, - 28425 - 19968: jis0208<<14 | 0x18<<7 | 0x56, - 28426 - 19968: jis0212<<14 | 0x27<<7 | 0x22, - 28428 - 19968: jis0212<<14 | 0x27<<7 | 0x23, - 28429 - 19968: jis0212<<14 | 0x27<<7 | 0x24, - 28431 - 19968: jis0208<<14 | 0x2E<<7 | 0x12, - 28433 - 19968: jis0208<<14 | 0x3D<<7 | 0x53, - 28435 - 19968: jis0208<<14 | 0x3E<<7 | 0x01, - 28436 - 19968: jis0208<<14 | 0x10<<7 | 0x48, - 28437 - 19968: jis0208<<14 | 0x20<<7 | 0x45, - 28438 - 19968: jis0212<<14 | 0x27<<7 | 0x25, - 28440 - 19968: jis0212<<14 | 0x27<<7 | 0x26, - 28442 - 19968: jis0212<<14 | 0x27<<7 | 0x27, - 28443 - 19968: jis0212<<14 | 0x27<<7 | 0x28, - 28448 - 19968: jis0208<<14 | 0x26<<7 | 0x58, - 28450 - 19968: jis0208<<14 | 0x13<<7 | 0x20, - 28451 - 19968: jis0208<<14 | 0x2D<<7 | 0x59, - 28454 - 19968: jis0212<<14 | 0x27<<7 | 0x29, - 28457 - 19968: jis0212<<14 | 0x27<<7 | 0x2A, - 28458 - 19968: jis0212<<14 | 0x27<<7 | 0x2B, - 28459 - 19968: jis0208<<14 | 0x2B<<7 | 0x00, - 28460 - 19968: jis0208<<14 | 0x23<<7 | 0x31, - 28461 - 19968: jis0212<<14 | 0x27<<7 | 0x32, - 28463 - 19968: jis0212<<14 | 0x27<<7 | 0x2C, - 28464 - 19968: jis0212<<14 | 0x27<<7 | 0x2D, - 28465 - 19968: jis0208<<14 | 0x3D<<7 | 0x5A, - 28466 - 19968: jis0208<<14 | 0x3D<<7 | 0x5C, - 28467 - 19968: jis0212<<14 | 0x27<<7 | 0x2E, - 28470 - 19968: jis0212<<14 | 0x27<<7 | 0x2F, - 28472 - 19968: jis0208<<14 | 0x20<<7 | 0x11, - 28475 - 19968: jis0212<<14 | 0x27<<7 | 0x30, - 28476 - 19968: jis0212<<14 | 0x27<<7 | 0x31, - 28478 - 19968: jis0208<<14 | 0x3E<<7 | 0x00, - 28479 - 19968: jis0208<<14 | 0x3D<<7 | 0x58, - 28481 - 19968: jis0208<<14 | 0x3D<<7 | 0x52, - 28485 - 19968: jis0208<<14 | 0x13<<7 | 0x22, - 28495 - 19968: jis0212<<14 | 0x27<<7 | 0x33, - 28497 - 19968: jis0212<<14 | 0x27<<7 | 0x34, - 28498 - 19968: jis0212<<14 | 0x27<<7 | 0x35, - 28499 - 19968: jis0212<<14 | 0x27<<7 | 0x36, - 28500 - 19968: jis0208<<14 | 0x16<<7 | 0x48, - 28503 - 19968: jis0212<<14 | 0x27<<7 | 0x37, - 28504 - 19968: jis0208<<14 | 0x3E<<7 | 0x0E, - 28505 - 19968: jis0212<<14 | 0x27<<7 | 0x38, - 28506 - 19968: jis0212<<14 | 0x27<<7 | 0x39, - 28507 - 19968: jis0208<<14 | 0x3E<<7 | 0x09, - 28508 - 19968: jis0208<<14 | 0x1F<<7 | 0x57, - 28509 - 19968: jis0212<<14 | 0x27<<7 | 0x3A, - 28510 - 19968: jis0212<<14 | 0x27<<7 | 0x3B, - 28511 - 19968: jis0208<<14 | 0x12<<7 | 0x42, - 28513 - 19968: jis0212<<14 | 0x27<<7 | 0x3C, - 28514 - 19968: jis0212<<14 | 0x27<<7 | 0x3D, - 28516 - 19968: jis0208<<14 | 0x1C<<7 | 0x40, - 28518 - 19968: jis0208<<14 | 0x3E<<7 | 0x12, - 28520 - 19968: jis0212<<14 | 0x27<<7 | 0x3E, - 28524 - 19968: jis0212<<14 | 0x27<<7 | 0x3F, - 28525 - 19968: jis0208<<14 | 0x3E<<7 | 0x0B, - 28526 - 19968: jis0208<<14 | 0x23<<7 | 0x0B, - 28527 - 19968: jis0208<<14 | 0x3E<<7 | 0x08, - 28528 - 19968: jis0208<<14 | 0x23<<7 | 0x38, - 28532 - 19968: jis0208<<14 | 0x3E<<7 | 0x2B, - 28536 - 19968: jis0208<<14 | 0x3E<<7 | 0x05, - 28538 - 19968: jis0208<<14 | 0x3E<<7 | 0x04, - 28540 - 19968: jis0208<<14 | 0x3E<<7 | 0x0D, - 28541 - 19968: jis0212<<14 | 0x27<<7 | 0x40, - 28542 - 19968: jis0212<<14 | 0x27<<7 | 0x41, - 28544 - 19968: jis0208<<14 | 0x3E<<7 | 0x07, - 28545 - 19968: jis0208<<14 | 0x3E<<7 | 0x06, - 28546 - 19968: jis0208<<14 | 0x3E<<7 | 0x0C, - 28547 - 19968: jis0212<<14 | 0x27<<7 | 0x42, - 28548 - 19968: jis0208<<14 | 0x1F<<7 | 0x00, - 28550 - 19968: jis0208<<14 | 0x3E<<7 | 0x03, - 28551 - 19968: jis0212<<14 | 0x27<<7 | 0x43, - 28552 - 19968: jis0208<<14 | 0x59<<7 | 0x4D, - 28555 - 19968: jis0212<<14 | 0x27<<7 | 0x45, - 28556 - 19968: jis0212<<14 | 0x27<<7 | 0x46, - 28557 - 19968: jis0212<<14 | 0x27<<7 | 0x47, - 28558 - 19968: jis0208<<14 | 0x3E<<7 | 0x0F, - 28560 - 19968: jis0212<<14 | 0x27<<7 | 0x48, - 28561 - 19968: jis0208<<14 | 0x3E<<7 | 0x10, - 28562 - 19968: jis0212<<14 | 0x27<<7 | 0x49, - 28563 - 19968: jis0212<<14 | 0x27<<7 | 0x4A, - 28564 - 19968: jis0212<<14 | 0x27<<7 | 0x4B, - 28566 - 19968: jis0212<<14 | 0x27<<7 | 0x4C, - 28567 - 19968: jis0208<<14 | 0x13<<7 | 0x21, - 28570 - 19968: jis0212<<14 | 0x27<<7 | 0x4D, - 28575 - 19968: jis0212<<14 | 0x27<<7 | 0x4E, - 28576 - 19968: jis0212<<14 | 0x27<<7 | 0x4F, - 28577 - 19968: jis0208<<14 | 0x3E<<7 | 0x15, - 28579 - 19968: jis0208<<14 | 0x3E<<7 | 0x14, - 28580 - 19968: jis0208<<14 | 0x3E<<7 | 0x16, - 28581 - 19968: jis0212<<14 | 0x27<<7 | 0x50, - 28582 - 19968: jis0212<<14 | 0x27<<7 | 0x51, - 28583 - 19968: jis0212<<14 | 0x27<<7 | 0x52, - 28584 - 19968: jis0212<<14 | 0x27<<7 | 0x53, - 28586 - 19968: jis0208<<14 | 0x3E<<7 | 0x19, - 28590 - 19968: jis0212<<14 | 0x27<<7 | 0x54, - 28591 - 19968: jis0212<<14 | 0x27<<7 | 0x55, - 28592 - 19968: jis0212<<14 | 0x27<<7 | 0x56, - 28593 - 19968: jis0208<<14 | 0x24<<7 | 0x22, - 28595 - 19968: jis0208<<14 | 0x3E<<7 | 0x13, - 28597 - 19968: jis0208<<14 | 0x59<<7 | 0x4E, - 28598 - 19968: jis0212<<14 | 0x27<<7 | 0x58, - 28601 - 19968: jis0208<<14 | 0x3E<<7 | 0x17, - 28604 - 19968: jis0212<<14 | 0x27<<7 | 0x59, - 28608 - 19968: jis0208<<14 | 0x16<<7 | 0x42, - 28609 - 19968: jis0208<<14 | 0x21<<7 | 0x58, - 28610 - 19968: jis0208<<14 | 0x3E<<7 | 0x11, - 28611 - 19968: jis0208<<14 | 0x26<<7 | 0x1A, - 28613 - 19968: jis0212<<14 | 0x27<<7 | 0x5A, - 28614 - 19968: jis0208<<14 | 0x3E<<7 | 0x18, - 28615 - 19968: jis0212<<14 | 0x27<<7 | 0x5B, - 28616 - 19968: jis0212<<14 | 0x27<<7 | 0x5C, - 28618 - 19968: jis0212<<14 | 0x27<<7 | 0x5D, - 28628 - 19968: jis0208<<14 | 0x3E<<7 | 0x1D, - 28629 - 19968: jis0208<<14 | 0x3E<<7 | 0x1B, - 28632 - 19968: jis0208<<14 | 0x3E<<7 | 0x1E, - 28634 - 19968: jis0212<<14 | 0x28<<7 | 0x00, - 28635 - 19968: jis0208<<14 | 0x3E<<7 | 0x21, - 28638 - 19968: jis0212<<14 | 0x28<<7 | 0x01, - 28639 - 19968: jis0208<<14 | 0x3E<<7 | 0x1A, - 28640 - 19968: jis0208<<14 | 0x18<<7 | 0x49, - 28641 - 19968: jis0208<<14 | 0x26<<7 | 0x07, - 28644 - 19968: jis0208<<14 | 0x3D<<7 | 0x18, - 28648 - 19968: jis0212<<14 | 0x28<<7 | 0x02, - 28649 - 19968: jis0212<<14 | 0x28<<7 | 0x03, - 28651 - 19968: jis0208<<14 | 0x2C<<7 | 0x53, - 28652 - 19968: jis0208<<14 | 0x3E<<7 | 0x1C, - 28654 - 19968: jis0208<<14 | 0x3E<<7 | 0x20, - 28655 - 19968: jis0208<<14 | 0x21<<7 | 0x54, - 28656 - 19968: jis0212<<14 | 0x28<<7 | 0x04, - 28657 - 19968: jis0208<<14 | 0x3E<<7 | 0x1F, - 28659 - 19968: jis0208<<14 | 0x3E<<7 | 0x0A, - 28661 - 19968: jis0208<<14 | 0x59<<7 | 0x4F, - 28662 - 19968: jis0208<<14 | 0x4E<<7 | 0x48, - 28665 - 19968: jis0212<<14 | 0x28<<7 | 0x06, - 28666 - 19968: jis0208<<14 | 0x3E<<7 | 0x24, - 28668 - 19968: jis0212<<14 | 0x28<<7 | 0x07, - 28669 - 19968: jis0212<<14 | 0x28<<7 | 0x08, - 28670 - 19968: jis0208<<14 | 0x3E<<7 | 0x28, - 28672 - 19968: jis0212<<14 | 0x28<<7 | 0x09, - 28673 - 19968: jis0208<<14 | 0x3E<<7 | 0x26, - 28677 - 19968: jis0208<<14 | 0x59<<7 | 0x50, - 28678 - 19968: jis0212<<14 | 0x28<<7 | 0x0B, - 28679 - 19968: jis0208<<14 | 0x59<<7 | 0x51, - 28681 - 19968: jis0208<<14 | 0x3E<<7 | 0x22, - 28683 - 19968: jis0208<<14 | 0x3E<<7 | 0x23, - 28685 - 19968: jis0212<<14 | 0x28<<7 | 0x0D, - 28687 - 19968: jis0208<<14 | 0x3E<<7 | 0x27, - 28689 - 19968: jis0208<<14 | 0x3E<<7 | 0x25, - 28693 - 19968: jis0208<<14 | 0x28<<7 | 0x2D, - 28695 - 19968: jis0212<<14 | 0x28<<7 | 0x0E, - 28696 - 19968: jis0208<<14 | 0x3E<<7 | 0x2D, - 28698 - 19968: jis0208<<14 | 0x3E<<7 | 0x2A, - 28699 - 19968: jis0208<<14 | 0x3E<<7 | 0x29, - 28701 - 19968: jis0208<<14 | 0x3E<<7 | 0x2C, - 28702 - 19968: jis0208<<14 | 0x25<<7 | 0x33, - 28703 - 19968: jis0208<<14 | 0x3E<<7 | 0x2E, - 28704 - 19968: jis0212<<14 | 0x28<<7 | 0x0F, - 28707 - 19968: jis0212<<14 | 0x28<<7 | 0x10, - 28710 - 19968: jis0208<<14 | 0x22<<7 | 0x54, - 28711 - 19968: jis0208<<14 | 0x21<<7 | 0x4C, - 28712 - 19968: jis0208<<14 | 0x59<<7 | 0x52, - 28716 - 19968: jis0208<<14 | 0x1F<<7 | 0x04, - 28719 - 19968: jis0212<<14 | 0x28<<7 | 0x11, - 28720 - 19968: jis0208<<14 | 0x3E<<7 | 0x2F, - 28722 - 19968: jis0208<<14 | 0x3E<<7 | 0x31, - 28724 - 19968: jis0212<<14 | 0x28<<7 | 0x12, - 28727 - 19968: jis0212<<14 | 0x28<<7 | 0x13, - 28729 - 19968: jis0212<<14 | 0x28<<7 | 0x14, - 28732 - 19968: jis0212<<14 | 0x28<<7 | 0x15, - 28734 - 19968: jis0208<<14 | 0x3E<<7 | 0x30, - 28739 - 19968: jis0212<<14 | 0x28<<7 | 0x16, - 28740 - 19968: jis0212<<14 | 0x28<<7 | 0x17, - 28744 - 19968: jis0212<<14 | 0x28<<7 | 0x18, - 28745 - 19968: jis0212<<14 | 0x28<<7 | 0x19, - 28746 - 19968: jis0212<<14 | 0x28<<7 | 0x1A, - 28747 - 19968: jis0212<<14 | 0x28<<7 | 0x1B, - 28748 - 19968: jis0208<<14 | 0x3D<<7 | 0x54, - 28750 - 19968: jis0212<<14 | 0x28<<7 | 0x20, - 28753 - 19968: jis0208<<14 | 0x3E<<7 | 0x32, - 28756 - 19968: jis0212<<14 | 0x28<<7 | 0x1C, - 28757 - 19968: jis0212<<14 | 0x28<<7 | 0x1D, - 28760 - 19968: jis0208<<14 | 0x25<<7 | 0x46, - 28765 - 19968: jis0212<<14 | 0x28<<7 | 0x1E, - 28766 - 19968: jis0212<<14 | 0x28<<7 | 0x1F, - 28771 - 19968: jis0208<<14 | 0x3E<<7 | 0x33, - 28772 - 19968: jis0212<<14 | 0x28<<7 | 0x21, - 28773 - 19968: jis0212<<14 | 0x28<<7 | 0x22, - 28779 - 19968: jis0208<<14 | 0x11<<7 | 0x2F, - 28780 - 19968: jis0212<<14 | 0x28<<7 | 0x23, - 28782 - 19968: jis0212<<14 | 0x28<<7 | 0x24, - 28783 - 19968: jis0208<<14 | 0x24<<7 | 0x53, - 28784 - 19968: jis0208<<14 | 0x12<<7 | 0x04, - 28789 - 19968: jis0212<<14 | 0x28<<7 | 0x25, - 28790 - 19968: jis0212<<14 | 0x28<<7 | 0x26, - 28792 - 19968: jis0208<<14 | 0x14<<7 | 0x43, - 28796 - 19968: jis0208<<14 | 0x1B<<7 | 0x3D, - 28797 - 19968: jis0208<<14 | 0x19<<7 | 0x31, - 28798 - 19968: jis0212<<14 | 0x28<<7 | 0x27, - 28801 - 19968: jis0212<<14 | 0x28<<7 | 0x28, - 28805 - 19968: jis0208<<14 | 0x59<<7 | 0x53, - 28806 - 19968: jis0212<<14 | 0x28<<7 | 0x2A, - 28809 - 19968: jis0208<<14 | 0x2E<<7 | 0x06, - 28810 - 19968: jis0208<<14 | 0x1E<<7 | 0x45, - 28814 - 19968: jis0208<<14 | 0x10<<7 | 0x49, - 28818 - 19968: jis0208<<14 | 0x3E<<7 | 0x35, - 28820 - 19968: jis0212<<14 | 0x28<<7 | 0x2B, - 28821 - 19968: jis0212<<14 | 0x28<<7 | 0x2C, - 28822 - 19968: jis0212<<14 | 0x28<<7 | 0x2D, - 28823 - 19968: jis0212<<14 | 0x28<<7 | 0x2E, - 28824 - 19968: jis0212<<14 | 0x28<<7 | 0x2F, - 28825 - 19968: jis0208<<14 | 0x3E<<7 | 0x34, - 28827 - 19968: jis0212<<14 | 0x28<<7 | 0x30, - 28836 - 19968: jis0212<<14 | 0x28<<7 | 0x31, - 28843 - 19968: jis0208<<14 | 0x59<<7 | 0x54, - 28844 - 19968: jis0208<<14 | 0x3E<<7 | 0x38, - 28845 - 19968: jis0208<<14 | 0x22<<7 | 0x19, - 28846 - 19968: jis0208<<14 | 0x3E<<7 | 0x3B, - 28847 - 19968: jis0208<<14 | 0x3E<<7 | 0x36, - 28848 - 19968: jis0212<<14 | 0x28<<7 | 0x33, - 28849 - 19968: jis0212<<14 | 0x28<<7 | 0x34, - 28851 - 19968: jis0208<<14 | 0x3E<<7 | 0x3A, - 28852 - 19968: jis0212<<14 | 0x28<<7 | 0x35, - 28855 - 19968: jis0212<<14 | 0x28<<7 | 0x36, - 28856 - 19968: jis0208<<14 | 0x3E<<7 | 0x39, - 28857 - 19968: jis0208<<14 | 0x24<<7 | 0x1F, - 28858 - 19968: jis0208<<14 | 0x0F<<7 | 0x38, - 28859 - 19968: jis0208<<14 | 0x58<<7 | 0x06, - 28872 - 19968: jis0208<<14 | 0x2D<<7 | 0x54, - 28874 - 19968: jis0212<<14 | 0x28<<7 | 0x37, - 28875 - 19968: jis0208<<14 | 0x3E<<7 | 0x3D, - 28879 - 19968: jis0208<<14 | 0x10<<7 | 0x07, - 28881 - 19968: jis0212<<14 | 0x28<<7 | 0x38, - 28883 - 19968: jis0212<<14 | 0x28<<7 | 0x39, - 28884 - 19968: jis0212<<14 | 0x28<<7 | 0x3A, - 28885 - 19968: jis0212<<14 | 0x28<<7 | 0x3B, - 28886 - 19968: jis0212<<14 | 0x28<<7 | 0x3C, - 28888 - 19968: jis0212<<14 | 0x28<<7 | 0x3D, - 28889 - 19968: jis0208<<14 | 0x3E<<7 | 0x3F, - 28892 - 19968: jis0212<<14 | 0x28<<7 | 0x3E, - 28893 - 19968: jis0208<<14 | 0x3E<<7 | 0x3E, - 28895 - 19968: jis0208<<14 | 0x3E<<7 | 0x3C, - 28900 - 19968: jis0212<<14 | 0x28<<7 | 0x3F, - 28913 - 19968: jis0208<<14 | 0x3E<<7 | 0x37, - 28921 - 19968: jis0208<<14 | 0x2A<<7 | 0x02, - 28922 - 19968: jis0212<<14 | 0x28<<7 | 0x40, - 28925 - 19968: jis0208<<14 | 0x3E<<7 | 0x41, - 28931 - 19968: jis0212<<14 | 0x28<<7 | 0x41, - 28932 - 19968: jis0208<<14 | 0x59<<7 | 0x56, - 28933 - 19968: jis0212<<14 | 0x28<<7 | 0x43, - 28934 - 19968: jis0212<<14 | 0x28<<7 | 0x44, - 28935 - 19968: jis0212<<14 | 0x28<<7 | 0x45, - 28937 - 19968: jis0208<<14 | 0x3E<<7 | 0x40, - 28939 - 19968: jis0212<<14 | 0x28<<7 | 0x46, - 28940 - 19968: jis0212<<14 | 0x28<<7 | 0x47, - 28943 - 19968: jis0208<<14 | 0x59<<7 | 0x55, - 28948 - 19968: jis0208<<14 | 0x10<<7 | 0x4A, - 28953 - 19968: jis0208<<14 | 0x3E<<7 | 0x43, - 28954 - 19968: jis0208<<14 | 0x29<<7 | 0x11, - 28956 - 19968: jis0208<<14 | 0x3E<<7 | 0x42, - 28958 - 19968: jis0212<<14 | 0x28<<7 | 0x49, - 28960 - 19968: jis0212<<14 | 0x28<<7 | 0x4A, - 28961 - 19968: jis0208<<14 | 0x2B<<7 | 0x14, - 28966 - 19968: jis0208<<14 | 0x1D<<7 | 0x26, - 28971 - 19968: jis0212<<14 | 0x28<<7 | 0x4B, - 28973 - 19968: jis0212<<14 | 0x28<<7 | 0x4C, - 28975 - 19968: jis0212<<14 | 0x28<<7 | 0x4D, - 28976 - 19968: jis0212<<14 | 0x28<<7 | 0x4E, - 28977 - 19968: jis0212<<14 | 0x28<<7 | 0x4F, - 28982 - 19968: jis0208<<14 | 0x20<<7 | 0x12, - 28984 - 19968: jis0212<<14 | 0x28<<7 | 0x50, - 28988 - 19968: jis0208<<14 | 0x1D<<7 | 0x25, - 28993 - 19968: jis0212<<14 | 0x28<<7 | 0x51, - 28997 - 19968: jis0212<<14 | 0x28<<7 | 0x52, - 28998 - 19968: jis0208<<14 | 0x59<<7 | 0x58, - 28999 - 19968: jis0208<<14 | 0x59<<7 | 0x59, - 29001 - 19968: jis0208<<14 | 0x2D<<7 | 0x5A, - 29002 - 19968: jis0212<<14 | 0x28<<7 | 0x55, - 29003 - 19968: jis0212<<14 | 0x28<<7 | 0x56, - 29004 - 19968: jis0208<<14 | 0x3E<<7 | 0x49, - 29006 - 19968: jis0208<<14 | 0x1F<<7 | 0x58, - 29008 - 19968: jis0212<<14 | 0x28<<7 | 0x57, - 29010 - 19968: jis0212<<14 | 0x28<<7 | 0x58, - 29013 - 19968: jis0208<<14 | 0x3E<<7 | 0x45, - 29014 - 19968: jis0208<<14 | 0x3E<<7 | 0x4A, - 29015 - 19968: jis0212<<14 | 0x28<<7 | 0x59, - 29017 - 19968: jis0208<<14 | 0x10<<7 | 0x4B, - 29018 - 19968: jis0212<<14 | 0x28<<7 | 0x5A, - 29020 - 19968: jis0208<<14 | 0x59<<7 | 0x57, - 29022 - 19968: jis0212<<14 | 0x28<<7 | 0x5C, - 29024 - 19968: jis0212<<14 | 0x28<<7 | 0x5D, - 29026 - 19968: jis0208<<14 | 0x3E<<7 | 0x48, - 29028 - 19968: jis0208<<14 | 0x26<<7 | 0x40, - 29029 - 19968: jis0208<<14 | 0x3E<<7 | 0x44, - 29030 - 19968: jis0208<<14 | 0x3E<<7 | 0x47, - 29031 - 19968: jis0208<<14 | 0x1D<<7 | 0x27, - 29032 - 19968: jis0212<<14 | 0x29<<7 | 0x00, - 29033 - 19968: jis0208<<14 | 0x27<<7 | 0x30, - 29036 - 19968: jis0208<<14 | 0x3E<<7 | 0x4B, - 29038 - 19968: jis0208<<14 | 0x1B<<7 | 0x30, - 29049 - 19968: jis0212<<14 | 0x29<<7 | 0x01, - 29053 - 19968: jis0208<<14 | 0x1F<<7 | 0x59, - 29056 - 19968: jis0212<<14 | 0x29<<7 | 0x02, - 29060 - 19968: jis0208<<14 | 0x3E<<7 | 0x4E, - 29061 - 19968: jis0212<<14 | 0x29<<7 | 0x03, - 29063 - 19968: jis0212<<14 | 0x29<<7 | 0x04, - 29064 - 19968: jis0208<<14 | 0x3E<<7 | 0x46, - 29066 - 19968: jis0208<<14 | 0x16<<7 | 0x06, - 29068 - 19968: jis0212<<14 | 0x29<<7 | 0x05, - 29071 - 19968: jis0208<<14 | 0x3E<<7 | 0x4C, - 29074 - 19968: jis0212<<14 | 0x29<<7 | 0x06, - 29076 - 19968: jis0208<<14 | 0x2C<<7 | 0x2F, - 29077 - 19968: jis0208<<14 | 0x3E<<7 | 0x4F, - 29081 - 19968: jis0208<<14 | 0x53<<7 | 0x05, - 29082 - 19968: jis0212<<14 | 0x29<<7 | 0x07, - 29083 - 19968: jis0212<<14 | 0x29<<7 | 0x08, - 29087 - 19968: jis0208<<14 | 0x1C<<7 | 0x2E, - 29088 - 19968: jis0212<<14 | 0x29<<7 | 0x09, - 29090 - 19968: jis0212<<14 | 0x29<<7 | 0x0A, - 29096 - 19968: jis0208<<14 | 0x3E<<7 | 0x50, - 29100 - 19968: jis0208<<14 | 0x3E<<7 | 0x51, - 29103 - 19968: jis0212<<14 | 0x29<<7 | 0x0B, - 29104 - 19968: jis0212<<14 | 0x29<<7 | 0x0C, - 29105 - 19968: jis0208<<14 | 0x26<<7 | 0x0D, - 29106 - 19968: jis0212<<14 | 0x29<<7 | 0x0D, - 29107 - 19968: jis0212<<14 | 0x29<<7 | 0x0E, - 29113 - 19968: jis0208<<14 | 0x3E<<7 | 0x53, - 29114 - 19968: jis0212<<14 | 0x29<<7 | 0x0F, - 29118 - 19968: jis0208<<14 | 0x3E<<7 | 0x54, - 29119 - 19968: jis0212<<14 | 0x29<<7 | 0x10, - 29120 - 19968: jis0212<<14 | 0x29<<7 | 0x11, - 29121 - 19968: jis0208<<14 | 0x59<<7 | 0x5B, - 29123 - 19968: jis0208<<14 | 0x26<<7 | 0x12, - 29124 - 19968: jis0212<<14 | 0x29<<7 | 0x13, - 29128 - 19968: jis0208<<14 | 0x24<<7 | 0x54, - 29129 - 19968: jis0208<<14 | 0x3E<<7 | 0x56, - 29131 - 19968: jis0212<<14 | 0x29<<7 | 0x14, - 29132 - 19968: jis0212<<14 | 0x29<<7 | 0x15, - 29134 - 19968: jis0208<<14 | 0x3E<<7 | 0x58, - 29136 - 19968: jis0208<<14 | 0x2D<<7 | 0x34, - 29138 - 19968: jis0208<<14 | 0x3E<<7 | 0x55, - 29139 - 19968: jis0212<<14 | 0x29<<7 | 0x16, - 29140 - 19968: jis0208<<14 | 0x3E<<7 | 0x57, - 29141 - 19968: jis0208<<14 | 0x10<<7 | 0x4C, - 29142 - 19968: jis0212<<14 | 0x29<<7 | 0x17, - 29143 - 19968: jis0208<<14 | 0x3E<<7 | 0x52, - 29145 - 19968: jis0212<<14 | 0x29<<7 | 0x18, - 29146 - 19968: jis0212<<14 | 0x29<<7 | 0x19, - 29148 - 19968: jis0212<<14 | 0x29<<7 | 0x1A, - 29151 - 19968: jis0208<<14 | 0x32<<7 | 0x3A, - 29152 - 19968: jis0208<<14 | 0x3E<<7 | 0x59, - 29157 - 19968: jis0208<<14 | 0x20<<7 | 0x46, - 29158 - 19968: jis0208<<14 | 0x1A<<7 | 0x17, - 29159 - 19968: jis0208<<14 | 0x3E<<7 | 0x5B, - 29164 - 19968: jis0208<<14 | 0x3E<<7 | 0x5A, - 29165 - 19968: jis0208<<14 | 0x1E<<7 | 0x03, - 29166 - 19968: jis0208<<14 | 0x31<<7 | 0x38, - 29173 - 19968: jis0208<<14 | 0x3E<<7 | 0x5C, - 29176 - 19968: jis0212<<14 | 0x29<<7 | 0x1B, - 29177 - 19968: jis0208<<14 | 0x3F<<7 | 0x00, - 29179 - 19968: jis0208<<14 | 0x3E<<7 | 0x4D, - 29180 - 19968: jis0208<<14 | 0x3E<<7 | 0x5D, - 29182 - 19968: jis0208<<14 | 0x59<<7 | 0x5C, - 29183 - 19968: jis0208<<14 | 0x3F<<7 | 0x01, - 29184 - 19968: jis0212<<14 | 0x29<<7 | 0x1D, - 29190 - 19968: jis0208<<14 | 0x26<<7 | 0x59, - 29191 - 19968: jis0212<<14 | 0x29<<7 | 0x1E, - 29192 - 19968: jis0212<<14 | 0x29<<7 | 0x1F, - 29193 - 19968: jis0212<<14 | 0x29<<7 | 0x20, - 29197 - 19968: jis0208<<14 | 0x3F<<7 | 0x02, - 29200 - 19968: jis0208<<14 | 0x3F<<7 | 0x03, - 29203 - 19968: jis0212<<14 | 0x29<<7 | 0x21, - 29207 - 19968: jis0212<<14 | 0x29<<7 | 0x22, - 29210 - 19968: jis0212<<14 | 0x29<<7 | 0x23, - 29211 - 19968: jis0208<<14 | 0x3F<<7 | 0x04, - 29213 - 19968: jis0212<<14 | 0x29<<7 | 0x24, - 29215 - 19968: jis0212<<14 | 0x29<<7 | 0x25, - 29220 - 19968: jis0212<<14 | 0x29<<7 | 0x26, - 29224 - 19968: jis0208<<14 | 0x3F<<7 | 0x05, - 29226 - 19968: jis0208<<14 | 0x23<<7 | 0x3D, - 29227 - 19968: jis0212<<14 | 0x29<<7 | 0x27, - 29228 - 19968: jis0208<<14 | 0x3F<<7 | 0x07, - 29229 - 19968: jis0208<<14 | 0x3F<<7 | 0x06, - 29231 - 19968: jis0212<<14 | 0x29<<7 | 0x28, - 29232 - 19968: jis0208<<14 | 0x3F<<7 | 0x08, - 29234 - 19968: jis0208<<14 | 0x3F<<7 | 0x09, - 29236 - 19968: jis0212<<14 | 0x29<<7 | 0x29, - 29237 - 19968: jis0208<<14 | 0x1B<<7 | 0x3E, - 29238 - 19968: jis0208<<14 | 0x28<<7 | 0x42, - 29240 - 19968: jis0212<<14 | 0x29<<7 | 0x2A, - 29241 - 19968: jis0212<<14 | 0x29<<7 | 0x2B, - 29242 - 19968: jis0208<<14 | 0x2B<<7 | 0x4B, - 29243 - 19968: jis0208<<14 | 0x3F<<7 | 0x0A, - 29244 - 19968: jis0208<<14 | 0x3F<<7 | 0x0B, - 29245 - 19968: jis0208<<14 | 0x20<<7 | 0x35, - 29246 - 19968: jis0208<<14 | 0x1B<<7 | 0x03, - 29247 - 19968: jis0208<<14 | 0x3F<<7 | 0x0C, - 29248 - 19968: jis0208<<14 | 0x3F<<7 | 0x0D, - 29249 - 19968: jis0212<<14 | 0x29<<7 | 0x2C, - 29250 - 19968: jis0212<<14 | 0x29<<7 | 0x2D, - 29251 - 19968: jis0212<<14 | 0x29<<7 | 0x2E, - 29253 - 19968: jis0212<<14 | 0x29<<7 | 0x2F, - 29254 - 19968: jis0208<<14 | 0x3F<<7 | 0x0E, - 29255 - 19968: jis0208<<14 | 0x29<<7 | 0x31, - 29256 - 19968: jis0208<<14 | 0x27<<7 | 0x26, - 29259 - 19968: jis0208<<14 | 0x3F<<7 | 0x0F, - 29260 - 19968: jis0208<<14 | 0x26<<7 | 0x36, - 29262 - 19968: jis0212<<14 | 0x29<<7 | 0x30, - 29263 - 19968: jis0212<<14 | 0x29<<7 | 0x31, - 29264 - 19968: jis0212<<14 | 0x29<<7 | 0x32, - 29266 - 19968: jis0208<<14 | 0x23<<7 | 0x0C, - 29267 - 19968: jis0212<<14 | 0x29<<7 | 0x33, - 29269 - 19968: jis0212<<14 | 0x29<<7 | 0x34, - 29270 - 19968: jis0212<<14 | 0x29<<7 | 0x35, - 29272 - 19968: jis0208<<14 | 0x3F<<7 | 0x10, - 29273 - 19968: jis0208<<14 | 0x11<<7 | 0x46, - 29274 - 19968: jis0212<<14 | 0x29<<7 | 0x36, - 29275 - 19968: jis0208<<14 | 0x14<<7 | 0x4C, - 29276 - 19968: jis0212<<14 | 0x29<<7 | 0x37, - 29277 - 19968: jis0208<<14 | 0x2B<<7 | 0x25, - 29278 - 19968: jis0212<<14 | 0x29<<7 | 0x38, - 29279 - 19968: jis0208<<14 | 0x2B<<7 | 0x15, - 29280 - 19968: jis0212<<14 | 0x29<<7 | 0x39, - 29281 - 19968: jis0208<<14 | 0x11<<7 | 0x13, - 29282 - 19968: jis0208<<14 | 0x2E<<7 | 0x13, - 29283 - 19968: jis0212<<14 | 0x29<<7 | 0x3A, - 29287 - 19968: jis0208<<14 | 0x2A<<7 | 0x31, - 29288 - 19968: jis0212<<14 | 0x29<<7 | 0x3B, - 29289 - 19968: jis0208<<14 | 0x29<<7 | 0x09, - 29291 - 19968: jis0212<<14 | 0x29<<7 | 0x3C, - 29294 - 19968: jis0212<<14 | 0x29<<7 | 0x3D, - 29295 - 19968: jis0212<<14 | 0x29<<7 | 0x3E, - 29297 - 19968: jis0212<<14 | 0x29<<7 | 0x3F, - 29298 - 19968: jis0208<<14 | 0x1F<<7 | 0x16, - 29300 - 19968: jis0208<<14 | 0x3F<<7 | 0x11, - 29303 - 19968: jis0212<<14 | 0x29<<7 | 0x40, - 29304 - 19968: jis0212<<14 | 0x29<<7 | 0x41, - 29305 - 19968: jis0208<<14 | 0x25<<7 | 0x22, - 29307 - 19968: jis0212<<14 | 0x29<<7 | 0x42, - 29308 - 19968: jis0212<<14 | 0x29<<7 | 0x43, - 29309 - 19968: jis0208<<14 | 0x17<<7 | 0x02, - 29310 - 19968: jis0208<<14 | 0x3F<<7 | 0x12, - 29311 - 19968: jis0212<<14 | 0x29<<7 | 0x44, - 29312 - 19968: jis0208<<14 | 0x19<<7 | 0x33, - 29313 - 19968: jis0208<<14 | 0x3F<<7 | 0x14, - 29314 - 19968: jis0208<<14 | 0x3F<<7 | 0x13, - 29316 - 19968: jis0212<<14 | 0x29<<7 | 0x45, - 29319 - 19968: jis0208<<14 | 0x3F<<7 | 0x15, - 29321 - 19968: jis0212<<14 | 0x29<<7 | 0x46, - 29325 - 19968: jis0212<<14 | 0x29<<7 | 0x47, - 29326 - 19968: jis0212<<14 | 0x29<<7 | 0x48, - 29330 - 19968: jis0208<<14 | 0x3F<<7 | 0x16, - 29331 - 19968: jis0212<<14 | 0x29<<7 | 0x49, - 29334 - 19968: jis0208<<14 | 0x3F<<7 | 0x17, - 29339 - 19968: jis0212<<14 | 0x29<<7 | 0x4A, - 29344 - 19968: jis0208<<14 | 0x14<<7 | 0x1D, - 29346 - 19968: jis0208<<14 | 0x3F<<7 | 0x18, - 29351 - 19968: jis0208<<14 | 0x3F<<7 | 0x19, - 29352 - 19968: jis0212<<14 | 0x29<<7 | 0x4B, - 29356 - 19968: jis0208<<14 | 0x17<<7 | 0x03, - 29357 - 19968: jis0212<<14 | 0x29<<7 | 0x4C, - 29358 - 19968: jis0212<<14 | 0x29<<7 | 0x4D, - 29359 - 19968: jis0208<<14 | 0x27<<7 | 0x27, - 29361 - 19968: jis0208<<14 | 0x59<<7 | 0x5D, - 29362 - 19968: jis0208<<14 | 0x3F<<7 | 0x1B, - 29364 - 19968: jis0212<<14 | 0x29<<7 | 0x4F, - 29366 - 19968: jis0208<<14 | 0x1D<<7 | 0x54, - 29369 - 19968: jis0208<<14 | 0x3F<<7 | 0x1A, - 29374 - 19968: jis0208<<14 | 0x5A<<7 | 0x00, - 29377 - 19968: jis0212<<14 | 0x29<<7 | 0x51, - 29378 - 19968: jis0208<<14 | 0x15<<7 | 0x17, - 29379 - 19968: jis0208<<14 | 0x3F<<7 | 0x1C, - 29380 - 19968: jis0208<<14 | 0x3F<<7 | 0x1E, - 29382 - 19968: jis0208<<14 | 0x3F<<7 | 0x1D, - 29383 - 19968: jis0212<<14 | 0x29<<7 | 0x52, - 29385 - 19968: jis0212<<14 | 0x29<<7 | 0x53, - 29388 - 19968: jis0212<<14 | 0x29<<7 | 0x54, - 29390 - 19968: jis0208<<14 | 0x3F<<7 | 0x1F, - 29392 - 19968: jis0208<<14 | 0x17<<7 | 0x30, - 29394 - 19968: jis0208<<14 | 0x3F<<7 | 0x20, - 29397 - 19968: jis0212<<14 | 0x29<<7 | 0x55, - 29398 - 19968: jis0212<<14 | 0x29<<7 | 0x56, - 29399 - 19968: jis0208<<14 | 0x15<<7 | 0x48, - 29400 - 19968: jis0212<<14 | 0x29<<7 | 0x57, - 29401 - 19968: jis0208<<14 | 0x20<<7 | 0x1F, - 29403 - 19968: jis0208<<14 | 0x18<<7 | 0x5C, - 29407 - 19968: jis0212<<14 | 0x29<<7 | 0x58, - 29408 - 19968: jis0208<<14 | 0x3F<<7 | 0x22, - 29409 - 19968: jis0208<<14 | 0x3F<<7 | 0x23, - 29410 - 19968: jis0208<<14 | 0x3F<<7 | 0x21, - 29413 - 19968: jis0212<<14 | 0x29<<7 | 0x59, - 29417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4C, - 29420 - 19968: jis0208<<14 | 0x25<<7 | 0x27, - 29421 - 19968: jis0208<<14 | 0x15<<7 | 0x18, - 29427 - 19968: jis0212<<14 | 0x29<<7 | 0x5A, - 29428 - 19968: jis0212<<14 | 0x29<<7 | 0x5B, - 29431 - 19968: jis0208<<14 | 0x3F<<7 | 0x25, - 29432 - 19968: jis0208<<14 | 0x22<<7 | 0x0B, - 29433 - 19968: jis0208<<14 | 0x3F<<7 | 0x24, - 29434 - 19968: jis0212<<14 | 0x29<<7 | 0x5C, - 29435 - 19968: jis0212<<14 | 0x29<<7 | 0x5D, - 29436 - 19968: jis0208<<14 | 0x2E<<7 | 0x14, - 29437 - 19968: jis0208<<14 | 0x26<<7 | 0x41, - 29438 - 19968: jis0212<<14 | 0x2A<<7 | 0x00, - 29442 - 19968: jis0212<<14 | 0x2A<<7 | 0x01, - 29444 - 19968: jis0212<<14 | 0x2A<<7 | 0x02, - 29445 - 19968: jis0212<<14 | 0x2A<<7 | 0x03, - 29447 - 19968: jis0212<<14 | 0x2A<<7 | 0x04, - 29450 - 19968: jis0208<<14 | 0x3F<<7 | 0x28, - 29451 - 19968: jis0212<<14 | 0x2A<<7 | 0x05, - 29453 - 19968: jis0212<<14 | 0x2A<<7 | 0x06, - 29458 - 19968: jis0212<<14 | 0x2A<<7 | 0x07, - 29459 - 19968: jis0212<<14 | 0x2A<<7 | 0x08, - 29462 - 19968: jis0208<<14 | 0x3F<<7 | 0x2A, - 29463 - 19968: jis0208<<14 | 0x3F<<7 | 0x27, - 29464 - 19968: jis0212<<14 | 0x2A<<7 | 0x09, - 29465 - 19968: jis0212<<14 | 0x2A<<7 | 0x0A, - 29467 - 19968: jis0208<<14 | 0x2B<<7 | 0x33, - 29468 - 19968: jis0208<<14 | 0x3F<<7 | 0x29, - 29469 - 19968: jis0208<<14 | 0x3F<<7 | 0x2B, - 29470 - 19968: jis0212<<14 | 0x2A<<7 | 0x0B, - 29471 - 19968: jis0208<<14 | 0x2D<<7 | 0x23, - 29474 - 19968: jis0212<<14 | 0x2A<<7 | 0x0C, - 29476 - 19968: jis0208<<14 | 0x5A<<7 | 0x01, - 29477 - 19968: jis0208<<14 | 0x3F<<7 | 0x2F, - 29479 - 19968: jis0212<<14 | 0x2A<<7 | 0x0E, - 29480 - 19968: jis0212<<14 | 0x2A<<7 | 0x0F, - 29481 - 19968: jis0208<<14 | 0x3F<<7 | 0x2E, - 29482 - 19968: jis0208<<14 | 0x22<<7 | 0x55, - 29483 - 19968: jis0208<<14 | 0x26<<7 | 0x0C, - 29484 - 19968: jis0212<<14 | 0x2A<<7 | 0x10, - 29486 - 19968: jis0208<<14 | 0x17<<7 | 0x04, - 29487 - 19968: jis0208<<14 | 0x3F<<7 | 0x2D, - 29489 - 19968: jis0212<<14 | 0x2A<<7 | 0x11, - 29490 - 19968: jis0212<<14 | 0x2A<<7 | 0x12, - 29492 - 19968: jis0208<<14 | 0x3F<<7 | 0x2C, - 29493 - 19968: jis0212<<14 | 0x2A<<7 | 0x13, - 29494 - 19968: jis0208<<14 | 0x2C<<7 | 0x10, - 29495 - 19968: jis0208<<14 | 0x2C<<7 | 0x11, - 29498 - 19968: jis0212<<14 | 0x2A<<7 | 0x14, - 29499 - 19968: jis0212<<14 | 0x2A<<7 | 0x15, - 29501 - 19968: jis0212<<14 | 0x2A<<7 | 0x16, - 29502 - 19968: jis0208<<14 | 0x3F<<7 | 0x30, - 29503 - 19968: jis0208<<14 | 0x10<<7 | 0x4D, - 29507 - 19968: jis0212<<14 | 0x2A<<7 | 0x17, - 29508 - 19968: jis0208<<14 | 0x18<<7 | 0x55, - 29509 - 19968: jis0208<<14 | 0x1A<<7 | 0x41, - 29517 - 19968: jis0212<<14 | 0x2A<<7 | 0x18, - 29518 - 19968: jis0208<<14 | 0x3F<<7 | 0x31, - 29519 - 19968: jis0208<<14 | 0x3F<<7 | 0x32, - 29520 - 19968: jis0212<<14 | 0x2A<<7 | 0x19, - 29522 - 19968: jis0212<<14 | 0x2A<<7 | 0x1A, - 29526 - 19968: jis0212<<14 | 0x2A<<7 | 0x1B, - 29527 - 19968: jis0208<<14 | 0x3F<<7 | 0x34, - 29528 - 19968: jis0212<<14 | 0x2A<<7 | 0x1C, - 29533 - 19968: jis0212<<14 | 0x2A<<7 | 0x1D, - 29534 - 19968: jis0212<<14 | 0x2A<<7 | 0x1E, - 29535 - 19968: jis0212<<14 | 0x2A<<7 | 0x1F, - 29536 - 19968: jis0212<<14 | 0x2A<<7 | 0x20, - 29539 - 19968: jis0208<<14 | 0x1C<<7 | 0x22, - 29542 - 19968: jis0212<<14 | 0x2A<<7 | 0x21, - 29543 - 19968: jis0212<<14 | 0x2A<<7 | 0x22, - 29544 - 19968: jis0208<<14 | 0x3F<<7 | 0x36, - 29545 - 19968: jis0212<<14 | 0x2A<<7 | 0x23, - 29546 - 19968: jis0208<<14 | 0x3F<<7 | 0x35, - 29547 - 19968: jis0212<<14 | 0x2A<<7 | 0x24, - 29548 - 19968: jis0212<<14 | 0x2A<<7 | 0x25, - 29550 - 19968: jis0212<<14 | 0x2A<<7 | 0x26, - 29551 - 19968: jis0212<<14 | 0x2A<<7 | 0x27, - 29552 - 19968: jis0208<<14 | 0x3F<<7 | 0x37, - 29553 - 19968: jis0212<<14 | 0x2A<<7 | 0x28, - 29554 - 19968: jis0208<<14 | 0x12<<7 | 0x2C, - 29557 - 19968: jis0208<<14 | 0x3F<<7 | 0x39, - 29559 - 19968: jis0208<<14 | 0x5A<<7 | 0x03, - 29560 - 19968: jis0208<<14 | 0x3F<<7 | 0x38, - 29561 - 19968: jis0212<<14 | 0x2A<<7 | 0x2A, - 29562 - 19968: jis0208<<14 | 0x3F<<7 | 0x3B, - 29563 - 19968: jis0208<<14 | 0x3F<<7 | 0x3A, - 29564 - 19968: jis0212<<14 | 0x2A<<7 | 0x2B, - 29568 - 19968: jis0212<<14 | 0x2A<<7 | 0x2C, - 29569 - 19968: jis0212<<14 | 0x2A<<7 | 0x2D, - 29571 - 19968: jis0212<<14 | 0x2A<<7 | 0x2E, - 29572 - 19968: jis0208<<14 | 0x17<<7 | 0x1B, - 29573 - 19968: jis0212<<14 | 0x2A<<7 | 0x2F, - 29574 - 19968: jis0212<<14 | 0x2A<<7 | 0x30, - 29575 - 19968: jis0208<<14 | 0x2D<<7 | 0x07, - 29577 - 19968: jis0208<<14 | 0x15<<7 | 0x2B, - 29579 - 19968: jis0208<<14 | 0x11<<7 | 0x05, - 29582 - 19968: jis0212<<14 | 0x2A<<7 | 0x31, - 29584 - 19968: jis0212<<14 | 0x2A<<7 | 0x32, - 29587 - 19968: jis0212<<14 | 0x2A<<7 | 0x33, - 29589 - 19968: jis0212<<14 | 0x2A<<7 | 0x34, - 29590 - 19968: jis0208<<14 | 0x15<<7 | 0x49, - 29591 - 19968: jis0212<<14 | 0x2A<<7 | 0x35, - 29592 - 19968: jis0212<<14 | 0x2A<<7 | 0x36, - 29596 - 19968: jis0212<<14 | 0x2A<<7 | 0x37, - 29598 - 19968: jis0212<<14 | 0x2A<<7 | 0x38, - 29599 - 19968: jis0212<<14 | 0x2A<<7 | 0x39, - 29600 - 19968: jis0212<<14 | 0x2A<<7 | 0x3A, - 29602 - 19968: jis0212<<14 | 0x2A<<7 | 0x3B, - 29605 - 19968: jis0212<<14 | 0x2A<<7 | 0x3C, - 29606 - 19968: jis0212<<14 | 0x2A<<7 | 0x3D, - 29609 - 19968: jis0208<<14 | 0x13<<7 | 0x40, - 29610 - 19968: jis0212<<14 | 0x2A<<7 | 0x3E, - 29611 - 19968: jis0212<<14 | 0x2A<<7 | 0x3F, - 29613 - 19968: jis0212<<14 | 0x2A<<7 | 0x40, - 29618 - 19968: jis0208<<14 | 0x2D<<7 | 0x47, - 29619 - 19968: jis0208<<14 | 0x3F<<7 | 0x3D, - 29621 - 19968: jis0212<<14 | 0x2A<<7 | 0x41, - 29623 - 19968: jis0212<<14 | 0x2A<<7 | 0x42, - 29625 - 19968: jis0212<<14 | 0x2A<<7 | 0x43, - 29627 - 19968: jis0208<<14 | 0x3F<<7 | 0x3F, - 29628 - 19968: jis0212<<14 | 0x2A<<7 | 0x44, - 29629 - 19968: jis0208<<14 | 0x5A<<7 | 0x04, - 29631 - 19968: jis0212<<14 | 0x2A<<7 | 0x46, - 29632 - 19968: jis0208<<14 | 0x3F<<7 | 0x40, - 29634 - 19968: jis0208<<14 | 0x11<<7 | 0x30, - 29637 - 19968: jis0212<<14 | 0x2A<<7 | 0x47, - 29638 - 19968: jis0212<<14 | 0x2A<<7 | 0x48, - 29640 - 19968: jis0208<<14 | 0x3F<<7 | 0x3C, - 29641 - 19968: jis0208<<14 | 0x5A<<7 | 0x05, - 29642 - 19968: jis0208<<14 | 0x1A<<7 | 0x18, - 29643 - 19968: jis0212<<14 | 0x2A<<7 | 0x4A, - 29644 - 19968: jis0212<<14 | 0x2A<<7 | 0x4B, - 29645 - 19968: jis0208<<14 | 0x23<<7 | 0x20, - 29646 - 19968: jis0208<<14 | 0x3F<<7 | 0x3E, - 29647 - 19968: jis0212<<14 | 0x2A<<7 | 0x4C, - 29650 - 19968: jis0208<<14 | 0x5A<<7 | 0x08, - 29651 - 19968: jis0212<<14 | 0x2A<<7 | 0x4E, - 29654 - 19968: jis0208<<14 | 0x5A<<7 | 0x06, - 29657 - 19968: jis0212<<14 | 0x2A<<7 | 0x50, - 29661 - 19968: jis0212<<14 | 0x2A<<7 | 0x51, - 29662 - 19968: jis0208<<14 | 0x3F<<7 | 0x43, - 29664 - 19968: jis0208<<14 | 0x1B<<7 | 0x4D, - 29665 - 19968: jis0212<<14 | 0x2A<<7 | 0x52, - 29667 - 19968: jis0208<<14 | 0x5A<<7 | 0x07, - 29669 - 19968: jis0208<<14 | 0x3F<<7 | 0x41, - 29670 - 19968: jis0212<<14 | 0x2A<<7 | 0x54, - 29671 - 19968: jis0212<<14 | 0x2A<<7 | 0x55, - 29673 - 19968: jis0212<<14 | 0x2A<<7 | 0x56, - 29674 - 19968: jis0208<<14 | 0x16<<7 | 0x1D, - 29677 - 19968: jis0208<<14 | 0x27<<7 | 0x28, - 29678 - 19968: jis0208<<14 | 0x3F<<7 | 0x42, - 29681 - 19968: jis0208<<14 | 0x3F<<7 | 0x5D, - 29684 - 19968: jis0212<<14 | 0x2A<<7 | 0x57, - 29685 - 19968: jis0208<<14 | 0x5A<<7 | 0x0A, - 29687 - 19968: jis0212<<14 | 0x2A<<7 | 0x59, - 29688 - 19968: jis0208<<14 | 0x3F<<7 | 0x48, - 29689 - 19968: jis0212<<14 | 0x2A<<7 | 0x5A, - 29690 - 19968: jis0212<<14 | 0x2A<<7 | 0x5B, - 29691 - 19968: jis0212<<14 | 0x2A<<7 | 0x5C, - 29693 - 19968: jis0212<<14 | 0x2A<<7 | 0x5D, - 29694 - 19968: jis0208<<14 | 0x17<<7 | 0x1C, - 29695 - 19968: jis0212<<14 | 0x2B<<7 | 0x00, - 29696 - 19968: jis0212<<14 | 0x2B<<7 | 0x01, - 29697 - 19968: jis0212<<14 | 0x2B<<7 | 0x02, - 29699 - 19968: jis0208<<14 | 0x14<<7 | 0x44, - 29700 - 19968: jis0212<<14 | 0x2B<<7 | 0x03, - 29701 - 19968: jis0208<<14 | 0x3F<<7 | 0x45, - 29702 - 19968: jis0208<<14 | 0x2C<<7 | 0x5C, - 29703 - 19968: jis0208<<14 | 0x5A<<7 | 0x09, - 29705 - 19968: jis0208<<14 | 0x2D<<7 | 0x0F, - 29706 - 19968: jis0212<<14 | 0x2B<<7 | 0x05, - 29713 - 19968: jis0212<<14 | 0x2B<<7 | 0x06, - 29722 - 19968: jis0212<<14 | 0x2B<<7 | 0x07, - 29723 - 19968: jis0212<<14 | 0x2B<<7 | 0x08, - 29730 - 19968: jis0208<<14 | 0x21<<7 | 0x55, - 29732 - 19968: jis0212<<14 | 0x2B<<7 | 0x09, - 29733 - 19968: jis0208<<14 | 0x3F<<7 | 0x47, - 29734 - 19968: jis0208<<14 | 0x5A<<7 | 0x0B, - 29736 - 19968: jis0212<<14 | 0x2B<<7 | 0x0B, - 29737 - 19968: jis0208<<14 | 0x5A<<7 | 0x0D, - 29738 - 19968: jis0208<<14 | 0x5A<<7 | 0x0C, - 29739 - 19968: jis0212<<14 | 0x2B<<7 | 0x0E, - 29740 - 19968: jis0212<<14 | 0x2B<<7 | 0x0F, - 29741 - 19968: jis0212<<14 | 0x2B<<7 | 0x10, - 29742 - 19968: jis0208<<14 | 0x5A<<7 | 0x0E, - 29743 - 19968: jis0212<<14 | 0x2B<<7 | 0x12, - 29744 - 19968: jis0212<<14 | 0x2B<<7 | 0x13, - 29745 - 19968: jis0212<<14 | 0x2B<<7 | 0x14, - 29746 - 19968: jis0208<<14 | 0x3F<<7 | 0x49, - 29747 - 19968: jis0208<<14 | 0x2D<<7 | 0x35, - 29748 - 19968: jis0208<<14 | 0x15<<7 | 0x36, - 29749 - 19968: jis0208<<14 | 0x27<<7 | 0x5B, - 29750 - 19968: jis0208<<14 | 0x26<<7 | 0x29, - 29753 - 19968: jis0212<<14 | 0x2B<<7 | 0x15, - 29754 - 19968: jis0208<<14 | 0x3F<<7 | 0x4A, - 29759 - 19968: jis0208<<14 | 0x3F<<7 | 0x4C, - 29760 - 19968: jis0212<<14 | 0x2B<<7 | 0x16, - 29761 - 19968: jis0208<<14 | 0x3F<<7 | 0x4F, - 29763 - 19968: jis0212<<14 | 0x2B<<7 | 0x17, - 29764 - 19968: jis0212<<14 | 0x2B<<7 | 0x18, - 29766 - 19968: jis0212<<14 | 0x2B<<7 | 0x19, - 29767 - 19968: jis0212<<14 | 0x2B<<7 | 0x1A, - 29771 - 19968: jis0212<<14 | 0x2B<<7 | 0x1B, - 29773 - 19968: jis0212<<14 | 0x2B<<7 | 0x1C, - 29777 - 19968: jis0212<<14 | 0x2B<<7 | 0x1D, - 29778 - 19968: jis0212<<14 | 0x2B<<7 | 0x1E, - 29781 - 19968: jis0208<<14 | 0x3F<<7 | 0x4B, - 29783 - 19968: jis0212<<14 | 0x2B<<7 | 0x1F, - 29785 - 19968: jis0208<<14 | 0x3F<<7 | 0x4E, - 29786 - 19968: jis0208<<14 | 0x17<<7 | 0x49, - 29787 - 19968: jis0208<<14 | 0x10<<7 | 0x2C, - 29788 - 19968: jis0208<<14 | 0x3F<<7 | 0x50, - 29789 - 19968: jis0212<<14 | 0x2B<<7 | 0x20, - 29790 - 19968: jis0208<<14 | 0x1E<<7 | 0x4F, - 29791 - 19968: jis0208<<14 | 0x3F<<7 | 0x4D, - 29792 - 19968: jis0208<<14 | 0x2D<<7 | 0x3B, - 29794 - 19968: jis0208<<14 | 0x5A<<7 | 0x0F, - 29795 - 19968: jis0208<<14 | 0x3F<<7 | 0x53, - 29796 - 19968: jis0208<<14 | 0x53<<7 | 0x03, - 29798 - 19968: jis0212<<14 | 0x2B<<7 | 0x22, - 29799 - 19968: jis0212<<14 | 0x2B<<7 | 0x23, - 29800 - 19968: jis0212<<14 | 0x2B<<7 | 0x24, - 29801 - 19968: jis0208<<14 | 0x3F<<7 | 0x51, - 29802 - 19968: jis0208<<14 | 0x3F<<7 | 0x54, - 29803 - 19968: jis0212<<14 | 0x2B<<7 | 0x25, - 29805 - 19968: jis0212<<14 | 0x2B<<7 | 0x26, - 29806 - 19968: jis0212<<14 | 0x2B<<7 | 0x27, - 29807 - 19968: jis0208<<14 | 0x3F<<7 | 0x46, - 29808 - 19968: jis0208<<14 | 0x3F<<7 | 0x52, - 29809 - 19968: jis0212<<14 | 0x2B<<7 | 0x28, - 29810 - 19968: jis0212<<14 | 0x2B<<7 | 0x29, - 29811 - 19968: jis0208<<14 | 0x19<<7 | 0x1B, - 29814 - 19968: jis0208<<14 | 0x3F<<7 | 0x55, - 29822 - 19968: jis0208<<14 | 0x3F<<7 | 0x56, - 29824 - 19968: jis0212<<14 | 0x2B<<7 | 0x2A, - 29825 - 19968: jis0212<<14 | 0x2B<<7 | 0x2B, - 29827 - 19968: jis0208<<14 | 0x2C<<7 | 0x5D, - 29829 - 19968: jis0212<<14 | 0x2B<<7 | 0x2C, - 29830 - 19968: jis0212<<14 | 0x2B<<7 | 0x2D, - 29831 - 19968: jis0212<<14 | 0x2B<<7 | 0x2E, - 29833 - 19968: jis0208<<14 | 0x5A<<7 | 0x10, - 29835 - 19968: jis0208<<14 | 0x3F<<7 | 0x57, - 29839 - 19968: jis0212<<14 | 0x2B<<7 | 0x30, - 29840 - 19968: jis0212<<14 | 0x2B<<7 | 0x31, - 29841 - 19968: jis0212<<14 | 0x2B<<7 | 0x32, - 29842 - 19968: jis0212<<14 | 0x2B<<7 | 0x33, - 29848 - 19968: jis0212<<14 | 0x2B<<7 | 0x34, - 29849 - 19968: jis0212<<14 | 0x2B<<7 | 0x35, - 29850 - 19968: jis0212<<14 | 0x2B<<7 | 0x36, - 29852 - 19968: jis0212<<14 | 0x2B<<7 | 0x37, - 29854 - 19968: jis0208<<14 | 0x3F<<7 | 0x58, - 29855 - 19968: jis0208<<14 | 0x5A<<7 | 0x11, - 29856 - 19968: jis0212<<14 | 0x2B<<7 | 0x39, - 29857 - 19968: jis0212<<14 | 0x2B<<7 | 0x3A, - 29858 - 19968: jis0208<<14 | 0x3F<<7 | 0x44, - 29859 - 19968: jis0212<<14 | 0x2B<<7 | 0x3B, - 29862 - 19968: jis0212<<14 | 0x2B<<7 | 0x3C, - 29863 - 19968: jis0208<<14 | 0x3F<<7 | 0x59, - 29864 - 19968: jis0212<<14 | 0x2B<<7 | 0x3D, - 29865 - 19968: jis0212<<14 | 0x2B<<7 | 0x3E, - 29866 - 19968: jis0212<<14 | 0x2B<<7 | 0x3F, - 29867 - 19968: jis0212<<14 | 0x2B<<7 | 0x40, - 29870 - 19968: jis0212<<14 | 0x2B<<7 | 0x41, - 29871 - 19968: jis0212<<14 | 0x2B<<7 | 0x42, - 29872 - 19968: jis0208<<14 | 0x13<<7 | 0x23, - 29873 - 19968: jis0212<<14 | 0x2B<<7 | 0x43, - 29874 - 19968: jis0212<<14 | 0x2B<<7 | 0x44, - 29877 - 19968: jis0212<<14 | 0x2B<<7 | 0x45, - 29881 - 19968: jis0212<<14 | 0x2B<<7 | 0x46, - 29883 - 19968: jis0212<<14 | 0x2B<<7 | 0x47, - 29885 - 19968: jis0208<<14 | 0x1B<<7 | 0x04, - 29887 - 19968: jis0212<<14 | 0x2B<<7 | 0x48, - 29896 - 19968: jis0212<<14 | 0x2B<<7 | 0x49, - 29897 - 19968: jis0212<<14 | 0x2B<<7 | 0x4A, - 29898 - 19968: jis0208<<14 | 0x3F<<7 | 0x5A, - 29900 - 19968: jis0212<<14 | 0x2B<<7 | 0x4B, - 29903 - 19968: jis0208<<14 | 0x3F<<7 | 0x5B, - 29904 - 19968: jis0212<<14 | 0x2B<<7 | 0x4C, - 29907 - 19968: jis0212<<14 | 0x2B<<7 | 0x4D, - 29908 - 19968: jis0208<<14 | 0x3F<<7 | 0x5C, - 29912 - 19968: jis0212<<14 | 0x2B<<7 | 0x4E, - 29914 - 19968: jis0212<<14 | 0x2B<<7 | 0x4F, - 29915 - 19968: jis0212<<14 | 0x2B<<7 | 0x50, - 29916 - 19968: jis0208<<14 | 0x10<<7 | 0x1A, - 29918 - 19968: jis0212<<14 | 0x2B<<7 | 0x51, - 29919 - 19968: jis0212<<14 | 0x2B<<7 | 0x52, - 29920 - 19968: jis0208<<14 | 0x40<<7 | 0x00, - 29922 - 19968: jis0208<<14 | 0x28<<7 | 0x1A, - 29923 - 19968: jis0208<<14 | 0x40<<7 | 0x01, - 29924 - 19968: jis0212<<14 | 0x2B<<7 | 0x53, - 29926 - 19968: jis0208<<14 | 0x13<<7 | 0x03, - 29927 - 19968: jis0208<<14 | 0x40<<7 | 0x02, - 29928 - 19968: jis0212<<14 | 0x2B<<7 | 0x54, - 29929 - 19968: jis0208<<14 | 0x40<<7 | 0x03, - 29930 - 19968: jis0212<<14 | 0x2B<<7 | 0x55, - 29931 - 19968: jis0212<<14 | 0x2B<<7 | 0x56, - 29934 - 19968: jis0208<<14 | 0x40<<7 | 0x04, - 29935 - 19968: jis0212<<14 | 0x2B<<7 | 0x57, - 29936 - 19968: jis0208<<14 | 0x40<<7 | 0x06, - 29937 - 19968: jis0208<<14 | 0x40<<7 | 0x07, - 29938 - 19968: jis0208<<14 | 0x40<<7 | 0x05, - 29940 - 19968: jis0212<<14 | 0x2B<<7 | 0x58, - 29942 - 19968: jis0208<<14 | 0x28<<7 | 0x32, - 29943 - 19968: jis0208<<14 | 0x40<<7 | 0x09, - 29944 - 19968: jis0208<<14 | 0x40<<7 | 0x08, - 29946 - 19968: jis0212<<14 | 0x2B<<7 | 0x59, - 29947 - 19968: jis0212<<14 | 0x2B<<7 | 0x5A, - 29948 - 19968: jis0212<<14 | 0x2B<<7 | 0x5B, - 29951 - 19968: jis0212<<14 | 0x2B<<7 | 0x5C, - 29953 - 19968: jis0208<<14 | 0x5A<<7 | 0x12, - 29955 - 19968: jis0208<<14 | 0x40<<7 | 0x0B, - 29956 - 19968: jis0208<<14 | 0x40<<7 | 0x0A, - 29957 - 19968: jis0208<<14 | 0x40<<7 | 0x0C, - 29958 - 19968: jis0212<<14 | 0x2B<<7 | 0x5D, - 29964 - 19968: jis0208<<14 | 0x40<<7 | 0x0D, - 29965 - 19968: jis0208<<14 | 0x40<<7 | 0x0F, - 29966 - 19968: jis0208<<14 | 0x40<<7 | 0x0E, - 29969 - 19968: jis0208<<14 | 0x18<<7 | 0x58, - 29970 - 19968: jis0212<<14 | 0x2C<<7 | 0x00, - 29971 - 19968: jis0208<<14 | 0x40<<7 | 0x11, - 29973 - 19968: jis0208<<14 | 0x40<<7 | 0x10, - 29974 - 19968: jis0212<<14 | 0x2C<<7 | 0x01, - 29975 - 19968: jis0212<<14 | 0x2C<<7 | 0x02, - 29976 - 19968: jis0208<<14 | 0x13<<7 | 0x24, - 29978 - 19968: jis0208<<14 | 0x1E<<7 | 0x32, - 29980 - 19968: jis0208<<14 | 0x24<<7 | 0x1B, - 29982 - 19968: jis0208<<14 | 0x40<<7 | 0x12, - 29983 - 19968: jis0208<<14 | 0x1F<<7 | 0x17, - 29984 - 19968: jis0212<<14 | 0x2C<<7 | 0x03, - 29985 - 19968: jis0212<<14 | 0x2C<<7 | 0x04, - 29987 - 19968: jis0208<<14 | 0x1A<<7 | 0x19, - 29988 - 19968: jis0212<<14 | 0x2C<<7 | 0x05, - 29989 - 19968: jis0208<<14 | 0x10<<7 | 0x58, - 29990 - 19968: jis0208<<14 | 0x40<<7 | 0x13, - 29991 - 19968: jis0212<<14 | 0x2C<<7 | 0x06, - 29992 - 19968: jis0208<<14 | 0x2C<<7 | 0x30, - 29993 - 19968: jis0212<<14 | 0x2C<<7 | 0x07, - 29994 - 19968: jis0212<<14 | 0x2C<<7 | 0x08, - 29995 - 19968: jis0208<<14 | 0x29<<7 | 0x42, - 29996 - 19968: jis0208<<14 | 0x40<<7 | 0x14, - 29999 - 19968: jis0208<<14 | 0x58<<7 | 0x4B, - 30000 - 19968: jis0208<<14 | 0x24<<7 | 0x23, - 30001 - 19968: jis0208<<14 | 0x2C<<7 | 0x12, - 30002 - 19968: jis0208<<14 | 0x18<<7 | 0x22, - 30003 - 19968: jis0208<<14 | 0x1E<<7 | 0x1C, - 30006 - 19968: jis0212<<14 | 0x2C<<7 | 0x0A, - 30007 - 19968: jis0208<<14 | 0x22<<7 | 0x2A, - 30008 - 19968: jis0208<<14 | 0x31<<7 | 0x13, - 30009 - 19968: jis0212<<14 | 0x2C<<7 | 0x0B, - 30010 - 19968: jis0208<<14 | 0x23<<7 | 0x0D, - 30011 - 19968: jis0208<<14 | 0x11<<7 | 0x47, - 30012 - 19968: jis0208<<14 | 0x40<<7 | 0x15, - 30013 - 19968: jis0212<<14 | 0x2C<<7 | 0x0C, - 30014 - 19968: jis0212<<14 | 0x2C<<7 | 0x0D, - 30015 - 19968: jis0212<<14 | 0x2C<<7 | 0x0E, - 30016 - 19968: jis0212<<14 | 0x2C<<7 | 0x0F, - 30019 - 19968: jis0212<<14 | 0x2C<<7 | 0x10, - 30020 - 19968: jis0208<<14 | 0x40<<7 | 0x16, - 30022 - 19968: jis0208<<14 | 0x40<<7 | 0x1B, - 30023 - 19968: jis0212<<14 | 0x2C<<7 | 0x11, - 30024 - 19968: jis0212<<14 | 0x2C<<7 | 0x12, - 30025 - 19968: jis0208<<14 | 0x40<<7 | 0x19, - 30026 - 19968: jis0208<<14 | 0x40<<7 | 0x18, - 30027 - 19968: jis0208<<14 | 0x39<<7 | 0x21, - 30028 - 19968: jis0208<<14 | 0x12<<7 | 0x05, - 30029 - 19968: jis0208<<14 | 0x40<<7 | 0x17, - 30030 - 19968: jis0212<<14 | 0x2C<<7 | 0x13, - 30031 - 19968: jis0208<<14 | 0x0F<<7 | 0x39, - 30032 - 19968: jis0212<<14 | 0x2C<<7 | 0x14, - 30033 - 19968: jis0208<<14 | 0x27<<7 | 0x09, - 30034 - 19968: jis0212<<14 | 0x2C<<7 | 0x15, - 30036 - 19968: jis0208<<14 | 0x27<<7 | 0x29, - 30039 - 19968: jis0212<<14 | 0x2C<<7 | 0x16, - 30041 - 19968: jis0208<<14 | 0x2D<<7 | 0x10, - 30042 - 19968: jis0208<<14 | 0x40<<7 | 0x1C, - 30043 - 19968: jis0208<<14 | 0x40<<7 | 0x1A, - 30044 - 19968: jis0208<<14 | 0x22<<7 | 0x3B, - 30045 - 19968: jis0208<<14 | 0x1F<<7 | 0x05, - 30046 - 19968: jis0212<<14 | 0x2C<<7 | 0x17, - 30047 - 19968: jis0212<<14 | 0x2C<<7 | 0x18, - 30048 - 19968: jis0208<<14 | 0x27<<7 | 0x0A, - 30049 - 19968: jis0212<<14 | 0x2C<<7 | 0x19, - 30050 - 19968: jis0208<<14 | 0x28<<7 | 0x0C, - 30052 - 19968: jis0208<<14 | 0x40<<7 | 0x1E, - 30053 - 19968: jis0208<<14 | 0x2D<<7 | 0x0B, - 30054 - 19968: jis0208<<14 | 0x16<<7 | 0x2C, - 30055 - 19968: jis0208<<14 | 0x40<<7 | 0x1F, - 30057 - 19968: jis0208<<14 | 0x40<<7 | 0x1D, - 30058 - 19968: jis0208<<14 | 0x27<<7 | 0x35, - 30059 - 19968: jis0208<<14 | 0x40<<7 | 0x20, - 30061 - 19968: jis0208<<14 | 0x40<<7 | 0x21, - 30063 - 19968: jis0208<<14 | 0x5A<<7 | 0x13, - 30064 - 19968: jis0208<<14 | 0x0F<<7 | 0x3A, - 30065 - 19968: jis0212<<14 | 0x2C<<7 | 0x1B, - 30067 - 19968: jis0208<<14 | 0x1D<<7 | 0x55, - 30068 - 19968: jis0208<<14 | 0x40<<7 | 0x26, - 30070 - 19968: jis0208<<14 | 0x40<<7 | 0x23, - 30071 - 19968: jis0208<<14 | 0x25<<7 | 0x4C, - 30072 - 19968: jis0208<<14 | 0x40<<7 | 0x22, - 30073 - 19968: jis0212<<14 | 0x2C<<7 | 0x1C, - 30074 - 19968: jis0212<<14 | 0x2C<<7 | 0x1D, - 30075 - 19968: jis0212<<14 | 0x2C<<7 | 0x1E, - 30076 - 19968: jis0212<<14 | 0x2C<<7 | 0x1F, - 30077 - 19968: jis0212<<14 | 0x2C<<7 | 0x20, - 30078 - 19968: jis0212<<14 | 0x2C<<7 | 0x21, - 30079 - 19968: jis0208<<14 | 0x14<<7 | 0x05, - 30081 - 19968: jis0212<<14 | 0x2C<<7 | 0x22, - 30082 - 19968: jis0208<<14 | 0x40<<7 | 0x29, - 30085 - 19968: jis0212<<14 | 0x2C<<7 | 0x23, - 30086 - 19968: jis0208<<14 | 0x40<<7 | 0x24, - 30087 - 19968: jis0208<<14 | 0x40<<7 | 0x25, - 30089 - 19968: jis0208<<14 | 0x40<<7 | 0x28, - 30090 - 19968: jis0208<<14 | 0x40<<7 | 0x27, - 30091 - 19968: jis0208<<14 | 0x28<<7 | 0x04, - 30094 - 19968: jis0208<<14 | 0x20<<7 | 0x21, - 30095 - 19968: jis0208<<14 | 0x20<<7 | 0x20, - 30096 - 19968: jis0212<<14 | 0x2C<<7 | 0x24, - 30097 - 19968: jis0208<<14 | 0x14<<7 | 0x1E, - 30098 - 19968: jis0212<<14 | 0x2C<<7 | 0x25, - 30099 - 19968: jis0212<<14 | 0x2C<<7 | 0x26, - 30100 - 19968: jis0208<<14 | 0x40<<7 | 0x2A, - 30101 - 19968: jis0212<<14 | 0x2C<<7 | 0x27, - 30105 - 19968: jis0212<<14 | 0x2C<<7 | 0x28, - 30106 - 19968: jis0208<<14 | 0x40<<7 | 0x2B, - 30108 - 19968: jis0212<<14 | 0x2C<<7 | 0x29, - 30109 - 19968: jis0208<<14 | 0x40<<7 | 0x2C, - 30114 - 19968: jis0212<<14 | 0x2C<<7 | 0x2A, - 30115 - 19968: jis0208<<14 | 0x40<<7 | 0x2E, - 30116 - 19968: jis0212<<14 | 0x2C<<7 | 0x2B, - 30117 - 19968: jis0208<<14 | 0x40<<7 | 0x2D, - 30123 - 19968: jis0208<<14 | 0x10<<7 | 0x35, - 30129 - 19968: jis0208<<14 | 0x40<<7 | 0x36, - 30130 - 19968: jis0208<<14 | 0x27<<7 | 0x47, - 30131 - 19968: jis0208<<14 | 0x40<<7 | 0x30, - 30132 - 19968: jis0212<<14 | 0x2C<<7 | 0x2C, - 30133 - 19968: jis0208<<14 | 0x40<<7 | 0x32, - 30136 - 19968: jis0208<<14 | 0x40<<7 | 0x34, - 30137 - 19968: jis0208<<14 | 0x1E<<7 | 0x1D, - 30138 - 19968: jis0212<<14 | 0x2C<<7 | 0x2D, - 30140 - 19968: jis0208<<14 | 0x40<<7 | 0x35, - 30141 - 19968: jis0208<<14 | 0x40<<7 | 0x33, - 30142 - 19968: jis0208<<14 | 0x1B<<7 | 0x1F, - 30143 - 19968: jis0212<<14 | 0x2C<<7 | 0x2E, - 30144 - 19968: jis0212<<14 | 0x2C<<7 | 0x2F, - 30145 - 19968: jis0212<<14 | 0x2C<<7 | 0x30, - 30146 - 19968: jis0208<<14 | 0x40<<7 | 0x2F, - 30147 - 19968: jis0208<<14 | 0x40<<7 | 0x31, - 30148 - 19968: jis0212<<14 | 0x2C<<7 | 0x31, - 30149 - 19968: jis0208<<14 | 0x28<<7 | 0x21, - 30150 - 19968: jis0212<<14 | 0x2C<<7 | 0x32, - 30151 - 19968: jis0208<<14 | 0x1D<<7 | 0x28, - 30154 - 19968: jis0208<<14 | 0x40<<7 | 0x38, - 30156 - 19968: jis0212<<14 | 0x2C<<7 | 0x33, - 30157 - 19968: jis0208<<14 | 0x40<<7 | 0x37, - 30158 - 19968: jis0212<<14 | 0x2C<<7 | 0x34, - 30159 - 19968: jis0212<<14 | 0x2C<<7 | 0x35, - 30162 - 19968: jis0208<<14 | 0x40<<7 | 0x39, - 30164 - 19968: jis0208<<14 | 0x1B<<7 | 0x05, - 30165 - 19968: jis0208<<14 | 0x19<<7 | 0x0E, - 30167 - 19968: jis0212<<14 | 0x2C<<7 | 0x36, - 30168 - 19968: jis0208<<14 | 0x24<<7 | 0x56, - 30169 - 19968: jis0208<<14 | 0x40<<7 | 0x3A, - 30171 - 19968: jis0208<<14 | 0x23<<7 | 0x2A, - 30172 - 19968: jis0212<<14 | 0x2C<<7 | 0x37, - 30174 - 19968: jis0208<<14 | 0x40<<7 | 0x3C, - 30175 - 19968: jis0212<<14 | 0x2C<<7 | 0x38, - 30176 - 19968: jis0212<<14 | 0x2C<<7 | 0x39, - 30177 - 19968: jis0212<<14 | 0x2C<<7 | 0x3A, - 30178 - 19968: jis0208<<14 | 0x2D<<7 | 0x00, - 30179 - 19968: jis0208<<14 | 0x40<<7 | 0x3B, - 30180 - 19968: jis0212<<14 | 0x2C<<7 | 0x3B, - 30183 - 19968: jis0212<<14 | 0x2C<<7 | 0x3C, - 30185 - 19968: jis0208<<14 | 0x20<<7 | 0x48, - 30188 - 19968: jis0212<<14 | 0x2C<<7 | 0x3D, - 30190 - 19968: jis0212<<14 | 0x2C<<7 | 0x3E, - 30191 - 19968: jis0212<<14 | 0x2C<<7 | 0x3F, - 30192 - 19968: jis0208<<14 | 0x40<<7 | 0x41, - 30193 - 19968: jis0212<<14 | 0x2C<<7 | 0x40, - 30194 - 19968: jis0208<<14 | 0x40<<7 | 0x43, - 30195 - 19968: jis0208<<14 | 0x40<<7 | 0x44, - 30196 - 19968: jis0208<<14 | 0x22<<7 | 0x33, - 30201 - 19968: jis0212<<14 | 0x2C<<7 | 0x41, - 30202 - 19968: jis0208<<14 | 0x40<<7 | 0x42, - 30204 - 19968: jis0208<<14 | 0x40<<7 | 0x3F, - 30206 - 19968: jis0208<<14 | 0x40<<7 | 0x3D, - 30207 - 19968: jis0208<<14 | 0x40<<7 | 0x3E, - 30208 - 19968: jis0212<<14 | 0x2C<<7 | 0x42, - 30209 - 19968: jis0208<<14 | 0x40<<7 | 0x40, - 30210 - 19968: jis0212<<14 | 0x2C<<7 | 0x43, - 30211 - 19968: jis0212<<14 | 0x2C<<7 | 0x44, - 30212 - 19968: jis0212<<14 | 0x2C<<7 | 0x45, - 30215 - 19968: jis0212<<14 | 0x2C<<7 | 0x46, - 30216 - 19968: jis0212<<14 | 0x2C<<7 | 0x47, - 30217 - 19968: jis0208<<14 | 0x40<<7 | 0x47, - 30218 - 19968: jis0212<<14 | 0x2C<<7 | 0x48, - 30219 - 19968: jis0208<<14 | 0x40<<7 | 0x45, - 30220 - 19968: jis0212<<14 | 0x2C<<7 | 0x49, - 30221 - 19968: jis0208<<14 | 0x40<<7 | 0x46, - 30223 - 19968: jis0212<<14 | 0x2C<<7 | 0x4A, - 30226 - 19968: jis0212<<14 | 0x2C<<7 | 0x4B, - 30227 - 19968: jis0212<<14 | 0x2C<<7 | 0x4C, - 30229 - 19968: jis0212<<14 | 0x2C<<7 | 0x4D, - 30230 - 19968: jis0212<<14 | 0x2C<<7 | 0x4E, - 30233 - 19968: jis0212<<14 | 0x2C<<7 | 0x4F, - 30235 - 19968: jis0212<<14 | 0x2C<<7 | 0x50, - 30236 - 19968: jis0212<<14 | 0x2C<<7 | 0x51, - 30237 - 19968: jis0212<<14 | 0x2C<<7 | 0x52, - 30238 - 19968: jis0212<<14 | 0x2C<<7 | 0x53, - 30239 - 19968: jis0208<<14 | 0x40<<7 | 0x48, - 30240 - 19968: jis0208<<14 | 0x40<<7 | 0x4A, - 30241 - 19968: jis0208<<14 | 0x40<<7 | 0x4B, - 30242 - 19968: jis0208<<14 | 0x40<<7 | 0x4C, - 30243 - 19968: jis0212<<14 | 0x2C<<7 | 0x54, - 30244 - 19968: jis0208<<14 | 0x40<<7 | 0x4D, - 30245 - 19968: jis0212<<14 | 0x2C<<7 | 0x55, - 30246 - 19968: jis0212<<14 | 0x2C<<7 | 0x56, - 30247 - 19968: jis0208<<14 | 0x40<<7 | 0x49, - 30249 - 19968: jis0212<<14 | 0x2C<<7 | 0x57, - 30253 - 19968: jis0212<<14 | 0x2C<<7 | 0x58, - 30256 - 19968: jis0208<<14 | 0x40<<7 | 0x4F, - 30258 - 19968: jis0212<<14 | 0x2C<<7 | 0x59, - 30259 - 19968: jis0212<<14 | 0x2C<<7 | 0x5A, - 30260 - 19968: jis0208<<14 | 0x40<<7 | 0x4E, - 30261 - 19968: jis0212<<14 | 0x2C<<7 | 0x5B, - 30264 - 19968: jis0212<<14 | 0x2C<<7 | 0x5C, - 30265 - 19968: jis0212<<14 | 0x2C<<7 | 0x5D, - 30266 - 19968: jis0212<<14 | 0x2D<<7 | 0x00, - 30267 - 19968: jis0208<<14 | 0x40<<7 | 0x50, - 30268 - 19968: jis0212<<14 | 0x2D<<7 | 0x01, - 30272 - 19968: jis0212<<14 | 0x2D<<7 | 0x03, - 30273 - 19968: jis0212<<14 | 0x2D<<7 | 0x04, - 30274 - 19968: jis0208<<14 | 0x2D<<7 | 0x24, - 30275 - 19968: jis0212<<14 | 0x2D<<7 | 0x05, - 30276 - 19968: jis0212<<14 | 0x2D<<7 | 0x06, - 30277 - 19968: jis0212<<14 | 0x2D<<7 | 0x07, - 30278 - 19968: jis0208<<14 | 0x40<<7 | 0x53, - 30279 - 19968: jis0208<<14 | 0x40<<7 | 0x51, - 30280 - 19968: jis0208<<14 | 0x40<<7 | 0x52, - 30281 - 19968: jis0212<<14 | 0x2D<<7 | 0x08, - 30282 - 19968: jis0212<<14 | 0x2D<<7 | 0x02, - 30283 - 19968: jis0212<<14 | 0x2D<<7 | 0x09, - 30284 - 19968: jis0208<<14 | 0x13<<7 | 0x41, - 30290 - 19968: jis0208<<14 | 0x2B<<7 | 0x5D, - 30293 - 19968: jis0212<<14 | 0x2D<<7 | 0x0A, - 30294 - 19968: jis0208<<14 | 0x29<<7 | 0x29, - 30296 - 19968: jis0208<<14 | 0x40<<7 | 0x55, - 30297 - 19968: jis0212<<14 | 0x2D<<7 | 0x0B, - 30300 - 19968: jis0208<<14 | 0x40<<7 | 0x54, - 30303 - 19968: jis0212<<14 | 0x2D<<7 | 0x0C, - 30305 - 19968: jis0208<<14 | 0x40<<7 | 0x56, - 30306 - 19968: jis0208<<14 | 0x40<<7 | 0x57, - 30308 - 19968: jis0212<<14 | 0x2D<<7 | 0x0D, - 30309 - 19968: jis0212<<14 | 0x2D<<7 | 0x0E, - 30311 - 19968: jis0208<<14 | 0x40<<7 | 0x5B, - 30312 - 19968: jis0208<<14 | 0x40<<7 | 0x58, - 30313 - 19968: jis0208<<14 | 0x40<<7 | 0x59, - 30314 - 19968: jis0208<<14 | 0x40<<7 | 0x5A, - 30316 - 19968: jis0208<<14 | 0x40<<7 | 0x5C, - 30317 - 19968: jis0212<<14 | 0x2D<<7 | 0x0F, - 30318 - 19968: jis0212<<14 | 0x2D<<7 | 0x10, - 30319 - 19968: jis0212<<14 | 0x2D<<7 | 0x11, - 30320 - 19968: jis0208<<14 | 0x40<<7 | 0x5D, - 30321 - 19968: jis0212<<14 | 0x2D<<7 | 0x12, - 30322 - 19968: jis0208<<14 | 0x41<<7 | 0x00, - 30324 - 19968: jis0212<<14 | 0x2D<<7 | 0x13, - 30326 - 19968: jis0208<<14 | 0x41<<7 | 0x01, - 30328 - 19968: jis0208<<14 | 0x41<<7 | 0x02, - 30330 - 19968: jis0208<<14 | 0x27<<7 | 0x0E, - 30331 - 19968: jis0208<<14 | 0x24<<7 | 0x2F, - 30332 - 19968: jis0208<<14 | 0x41<<7 | 0x03, - 30333 - 19968: jis0208<<14 | 0x26<<7 | 0x51, - 30334 - 19968: jis0208<<14 | 0x28<<7 | 0x13, - 30336 - 19968: jis0208<<14 | 0x41<<7 | 0x04, - 30337 - 19968: jis0212<<14 | 0x2D<<7 | 0x14, - 30338 - 19968: jis0208<<14 | 0x5A<<7 | 0x14, - 30339 - 19968: jis0208<<14 | 0x41<<7 | 0x05, - 30340 - 19968: jis0208<<14 | 0x24<<7 | 0x09, - 30341 - 19968: jis0212<<14 | 0x2D<<7 | 0x15, - 30342 - 19968: jis0208<<14 | 0x12<<7 | 0x06, - 30343 - 19968: jis0208<<14 | 0x18<<7 | 0x23, - 30344 - 19968: jis0208<<14 | 0x41<<7 | 0x06, - 30347 - 19968: jis0208<<14 | 0x41<<7 | 0x07, - 30348 - 19968: jis0212<<14 | 0x2D<<7 | 0x16, - 30349 - 19968: jis0212<<14 | 0x2D<<7 | 0x17, - 30350 - 19968: jis0208<<14 | 0x41<<7 | 0x08, - 30352 - 19968: jis0208<<14 | 0x1A<<7 | 0x08, - 30355 - 19968: jis0208<<14 | 0x41<<7 | 0x0A, - 30357 - 19968: jis0212<<14 | 0x2D<<7 | 0x18, - 30358 - 19968: jis0208<<14 | 0x41<<7 | 0x09, - 30361 - 19968: jis0208<<14 | 0x41<<7 | 0x0B, - 30362 - 19968: jis0208<<14 | 0x41<<7 | 0x0C, - 30363 - 19968: jis0208<<14 | 0x5A<<7 | 0x17, - 30364 - 19968: jis0208<<14 | 0x5A<<7 | 0x15, - 30365 - 19968: jis0212<<14 | 0x2D<<7 | 0x1B, - 30366 - 19968: jis0208<<14 | 0x5A<<7 | 0x16, - 30367 - 19968: jis0212<<14 | 0x2D<<7 | 0x1C, - 30368 - 19968: jis0212<<14 | 0x2D<<7 | 0x1D, - 30370 - 19968: jis0212<<14 | 0x2D<<7 | 0x1E, - 30371 - 19968: jis0212<<14 | 0x2D<<7 | 0x1F, - 30372 - 19968: jis0212<<14 | 0x2D<<7 | 0x20, - 30373 - 19968: jis0212<<14 | 0x2D<<7 | 0x21, - 30374 - 19968: jis0208<<14 | 0x5A<<7 | 0x18, - 30375 - 19968: jis0212<<14 | 0x2D<<7 | 0x23, - 30376 - 19968: jis0212<<14 | 0x2D<<7 | 0x24, - 30378 - 19968: jis0212<<14 | 0x2D<<7 | 0x25, - 30381 - 19968: jis0212<<14 | 0x2D<<7 | 0x26, - 30382 - 19968: jis0208<<14 | 0x27<<7 | 0x48, - 30384 - 19968: jis0208<<14 | 0x41<<7 | 0x0D, - 30388 - 19968: jis0208<<14 | 0x41<<7 | 0x0E, - 30391 - 19968: jis0208<<14 | 0x52<<7 | 0x48, - 30392 - 19968: jis0208<<14 | 0x41<<7 | 0x0F, - 30393 - 19968: jis0208<<14 | 0x41<<7 | 0x10, - 30394 - 19968: jis0208<<14 | 0x41<<7 | 0x11, - 30397 - 19968: jis0212<<14 | 0x2D<<7 | 0x27, - 30399 - 19968: jis0208<<14 | 0x1A<<7 | 0x0D, - 30401 - 19968: jis0212<<14 | 0x2D<<7 | 0x28, - 30402 - 19968: jis0208<<14 | 0x41<<7 | 0x12, - 30403 - 19968: jis0208<<14 | 0x26<<7 | 0x35, - 30405 - 19968: jis0212<<14 | 0x2D<<7 | 0x29, - 30406 - 19968: jis0208<<14 | 0x2A<<7 | 0x3E, - 30408 - 19968: jis0208<<14 | 0x10<<7 | 0x2D, - 30409 - 19968: jis0212<<14 | 0x2D<<7 | 0x2A, - 30410 - 19968: jis0208<<14 | 0x10<<7 | 0x36, - 30411 - 19968: jis0212<<14 | 0x2D<<7 | 0x2B, - 30412 - 19968: jis0212<<14 | 0x2D<<7 | 0x2C, - 30413 - 19968: jis0208<<14 | 0x41<<7 | 0x13, - 30414 - 19968: jis0212<<14 | 0x2D<<7 | 0x2D, - 30418 - 19968: jis0208<<14 | 0x41<<7 | 0x15, - 30420 - 19968: jis0212<<14 | 0x2D<<7 | 0x2E, - 30422 - 19968: jis0208<<14 | 0x41<<7 | 0x14, - 30423 - 19968: jis0208<<14 | 0x24<<7 | 0x4F, - 30425 - 19968: jis0212<<14 | 0x2D<<7 | 0x2F, - 30427 - 19968: jis0208<<14 | 0x1F<<7 | 0x18, - 30428 - 19968: jis0208<<14 | 0x3C<<7 | 0x18, - 30430 - 19968: jis0208<<14 | 0x41<<7 | 0x16, - 30431 - 19968: jis0208<<14 | 0x2B<<7 | 0x20, - 30432 - 19968: jis0212<<14 | 0x2D<<7 | 0x30, - 30433 - 19968: jis0208<<14 | 0x41<<7 | 0x17, - 30435 - 19968: jis0208<<14 | 0x13<<7 | 0x25, - 30436 - 19968: jis0208<<14 | 0x27<<7 | 0x36, - 30437 - 19968: jis0208<<14 | 0x41<<7 | 0x18, - 30438 - 19968: jis0212<<14 | 0x2D<<7 | 0x31, - 30439 - 19968: jis0208<<14 | 0x41<<7 | 0x19, - 30440 - 19968: jis0212<<14 | 0x2D<<7 | 0x32, - 30442 - 19968: jis0208<<14 | 0x41<<7 | 0x1A, - 30444 - 19968: jis0212<<14 | 0x2D<<7 | 0x33, - 30446 - 19968: jis0208<<14 | 0x2B<<7 | 0x3B, - 30448 - 19968: jis0212<<14 | 0x2D<<7 | 0x34, - 30449 - 19968: jis0212<<14 | 0x2D<<7 | 0x35, - 30450 - 19968: jis0208<<14 | 0x2B<<7 | 0x34, - 30452 - 19968: jis0208<<14 | 0x23<<7 | 0x1D, - 30454 - 19968: jis0212<<14 | 0x2D<<7 | 0x36, - 30456 - 19968: jis0208<<14 | 0x20<<7 | 0x49, - 30457 - 19968: jis0212<<14 | 0x2D<<7 | 0x37, - 30459 - 19968: jis0208<<14 | 0x41<<7 | 0x1C, - 30460 - 19968: jis0212<<14 | 0x2D<<7 | 0x38, - 30462 - 19968: jis0208<<14 | 0x1C<<7 | 0x41, - 30464 - 19968: jis0212<<14 | 0x2D<<7 | 0x39, - 30465 - 19968: jis0208<<14 | 0x1D<<7 | 0x29, - 30468 - 19968: jis0208<<14 | 0x41<<7 | 0x1F, - 30470 - 19968: jis0212<<14 | 0x2D<<7 | 0x3A, - 30471 - 19968: jis0208<<14 | 0x41<<7 | 0x1E, - 30472 - 19968: jis0208<<14 | 0x41<<7 | 0x1D, - 30473 - 19968: jis0208<<14 | 0x27<<7 | 0x5C, - 30474 - 19968: jis0212<<14 | 0x2D<<7 | 0x3B, - 30475 - 19968: jis0208<<14 | 0x13<<7 | 0x26, - 30476 - 19968: jis0208<<14 | 0x17<<7 | 0x08, - 30478 - 19968: jis0212<<14 | 0x2D<<7 | 0x3C, - 30482 - 19968: jis0212<<14 | 0x2D<<7 | 0x3D, - 30484 - 19968: jis0212<<14 | 0x2D<<7 | 0x3E, - 30485 - 19968: jis0212<<14 | 0x2D<<7 | 0x3F, - 30487 - 19968: jis0212<<14 | 0x2D<<7 | 0x40, - 30489 - 19968: jis0212<<14 | 0x2D<<7 | 0x41, - 30490 - 19968: jis0212<<14 | 0x2D<<7 | 0x42, - 30491 - 19968: jis0208<<14 | 0x41<<7 | 0x25, - 30492 - 19968: jis0212<<14 | 0x2D<<7 | 0x43, - 30494 - 19968: jis0208<<14 | 0x41<<7 | 0x22, - 30495 - 19968: jis0208<<14 | 0x1E<<7 | 0x1E, - 30496 - 19968: jis0208<<14 | 0x2B<<7 | 0x11, - 30498 - 19968: jis0212<<14 | 0x2D<<7 | 0x44, - 30500 - 19968: jis0208<<14 | 0x41<<7 | 0x21, - 30501 - 19968: jis0208<<14 | 0x41<<7 | 0x23, - 30502 - 19968: jis0208<<14 | 0x41<<7 | 0x24, - 30504 - 19968: jis0212<<14 | 0x2D<<7 | 0x45, - 30505 - 19968: jis0208<<14 | 0x41<<7 | 0x20, - 30509 - 19968: jis0212<<14 | 0x2D<<7 | 0x46, - 30510 - 19968: jis0212<<14 | 0x2D<<7 | 0x47, - 30511 - 19968: jis0212<<14 | 0x2D<<7 | 0x48, - 30516 - 19968: jis0212<<14 | 0x2D<<7 | 0x49, - 30517 - 19968: jis0212<<14 | 0x2D<<7 | 0x4A, - 30518 - 19968: jis0212<<14 | 0x2D<<7 | 0x4B, - 30519 - 19968: jis0208<<14 | 0x41<<7 | 0x26, - 30520 - 19968: jis0208<<14 | 0x41<<7 | 0x27, - 30521 - 19968: jis0212<<14 | 0x2D<<7 | 0x4C, - 30522 - 19968: jis0208<<14 | 0x23<<7 | 0x0E, - 30524 - 19968: jis0208<<14 | 0x13<<7 | 0x42, - 30525 - 19968: jis0212<<14 | 0x2D<<7 | 0x4D, - 30526 - 19968: jis0212<<14 | 0x2D<<7 | 0x4E, - 30528 - 19968: jis0208<<14 | 0x22<<7 | 0x44, - 30530 - 19968: jis0212<<14 | 0x2D<<7 | 0x4F, - 30533 - 19968: jis0212<<14 | 0x2D<<7 | 0x50, - 30534 - 19968: jis0208<<14 | 0x5A<<7 | 0x1A, - 30535 - 19968: jis0208<<14 | 0x41<<7 | 0x28, - 30538 - 19968: jis0212<<14 | 0x2D<<7 | 0x52, - 30541 - 19968: jis0212<<14 | 0x2D<<7 | 0x53, - 30542 - 19968: jis0212<<14 | 0x2D<<7 | 0x54, - 30543 - 19968: jis0212<<14 | 0x2D<<7 | 0x55, - 30546 - 19968: jis0212<<14 | 0x2D<<7 | 0x56, - 30550 - 19968: jis0212<<14 | 0x2D<<7 | 0x57, - 30551 - 19968: jis0212<<14 | 0x2D<<7 | 0x58, - 30554 - 19968: jis0208<<14 | 0x41<<7 | 0x29, - 30555 - 19968: jis0208<<14 | 0x41<<7 | 0x2C, - 30556 - 19968: jis0212<<14 | 0x2D<<7 | 0x59, - 30558 - 19968: jis0212<<14 | 0x2D<<7 | 0x5A, - 30559 - 19968: jis0212<<14 | 0x2D<<7 | 0x5B, - 30560 - 19968: jis0212<<14 | 0x2D<<7 | 0x5C, - 30561 - 19968: jis0208<<14 | 0x1E<<7 | 0x46, - 30562 - 19968: jis0212<<14 | 0x2D<<7 | 0x5D, - 30563 - 19968: jis0208<<14 | 0x25<<7 | 0x23, - 30564 - 19968: jis0212<<14 | 0x2E<<7 | 0x00, - 30565 - 19968: jis0208<<14 | 0x41<<7 | 0x2D, - 30566 - 19968: jis0208<<14 | 0x2A<<7 | 0x32, - 30567 - 19968: jis0212<<14 | 0x2E<<7 | 0x01, - 30568 - 19968: jis0208<<14 | 0x41<<7 | 0x2A, - 30570 - 19968: jis0212<<14 | 0x2E<<7 | 0x02, - 30571 - 19968: jis0208<<14 | 0x41<<7 | 0x2B, - 30572 - 19968: jis0212<<14 | 0x2E<<7 | 0x03, - 30576 - 19968: jis0212<<14 | 0x2E<<7 | 0x04, - 30578 - 19968: jis0212<<14 | 0x2E<<7 | 0x05, - 30579 - 19968: jis0212<<14 | 0x2E<<7 | 0x06, - 30580 - 19968: jis0212<<14 | 0x2E<<7 | 0x07, - 30585 - 19968: jis0208<<14 | 0x41<<7 | 0x30, - 30586 - 19968: jis0212<<14 | 0x2E<<7 | 0x08, - 30589 - 19968: jis0212<<14 | 0x2E<<7 | 0x09, - 30590 - 19968: jis0208<<14 | 0x41<<7 | 0x2F, - 30591 - 19968: jis0208<<14 | 0x41<<7 | 0x2E, - 30592 - 19968: jis0212<<14 | 0x2E<<7 | 0x0A, - 30596 - 19968: jis0212<<14 | 0x2E<<7 | 0x0B, - 30603 - 19968: jis0208<<14 | 0x41<<7 | 0x32, - 30604 - 19968: jis0212<<14 | 0x2E<<7 | 0x0C, - 30605 - 19968: jis0212<<14 | 0x2E<<7 | 0x0D, - 30606 - 19968: jis0208<<14 | 0x41<<7 | 0x31, - 30609 - 19968: jis0208<<14 | 0x41<<7 | 0x33, - 30612 - 19968: jis0212<<14 | 0x2E<<7 | 0x0E, - 30613 - 19968: jis0212<<14 | 0x2E<<7 | 0x0F, - 30614 - 19968: jis0212<<14 | 0x2E<<7 | 0x10, - 30618 - 19968: jis0212<<14 | 0x2E<<7 | 0x11, - 30622 - 19968: jis0208<<14 | 0x41<<7 | 0x35, - 30623 - 19968: jis0212<<14 | 0x2E<<7 | 0x12, - 30624 - 19968: jis0208<<14 | 0x41<<7 | 0x34, - 30626 - 19968: jis0212<<14 | 0x2E<<7 | 0x13, - 30629 - 19968: jis0208<<14 | 0x29<<7 | 0x2C, - 30631 - 19968: jis0212<<14 | 0x2E<<7 | 0x14, - 30634 - 19968: jis0212<<14 | 0x2E<<7 | 0x15, - 30636 - 19968: jis0208<<14 | 0x1C<<7 | 0x35, - 30637 - 19968: jis0208<<14 | 0x2D<<7 | 0x25, - 30638 - 19968: jis0212<<14 | 0x2E<<7 | 0x16, - 30639 - 19968: jis0212<<14 | 0x2E<<7 | 0x17, - 30640 - 19968: jis0208<<14 | 0x41<<7 | 0x36, - 30641 - 19968: jis0212<<14 | 0x2E<<7 | 0x18, - 30643 - 19968: jis0208<<14 | 0x25<<7 | 0x16, - 30645 - 19968: jis0212<<14 | 0x2E<<7 | 0x19, - 30646 - 19968: jis0208<<14 | 0x41<<7 | 0x37, - 30649 - 19968: jis0208<<14 | 0x41<<7 | 0x38, - 30651 - 19968: jis0208<<14 | 0x41<<7 | 0x3C, - 30652 - 19968: jis0208<<14 | 0x41<<7 | 0x3A, - 30653 - 19968: jis0208<<14 | 0x41<<7 | 0x3B, - 30654 - 19968: jis0212<<14 | 0x2E<<7 | 0x1A, - 30655 - 19968: jis0208<<14 | 0x41<<7 | 0x39, - 30659 - 19968: jis0212<<14 | 0x2E<<7 | 0x1B, - 30663 - 19968: jis0208<<14 | 0x41<<7 | 0x3D, - 30665 - 19968: jis0212<<14 | 0x2E<<7 | 0x1C, - 30669 - 19968: jis0208<<14 | 0x41<<7 | 0x3E, - 30673 - 19968: jis0212<<14 | 0x2E<<7 | 0x1D, - 30674 - 19968: jis0212<<14 | 0x2E<<7 | 0x1E, - 30677 - 19968: jis0212<<14 | 0x2E<<7 | 0x1F, - 30679 - 19968: jis0208<<14 | 0x41<<7 | 0x3F, - 30681 - 19968: jis0212<<14 | 0x2E<<7 | 0x20, - 30682 - 19968: jis0208<<14 | 0x41<<7 | 0x40, - 30683 - 19968: jis0208<<14 | 0x2B<<7 | 0x16, - 30684 - 19968: jis0208<<14 | 0x41<<7 | 0x41, - 30686 - 19968: jis0212<<14 | 0x2E<<7 | 0x21, - 30687 - 19968: jis0212<<14 | 0x2E<<7 | 0x22, - 30688 - 19968: jis0212<<14 | 0x2E<<7 | 0x23, - 30690 - 19968: jis0208<<14 | 0x2B<<7 | 0x4F, - 30691 - 19968: jis0208<<14 | 0x41<<7 | 0x42, - 30692 - 19968: jis0212<<14 | 0x2E<<7 | 0x24, - 30693 - 19968: jis0208<<14 | 0x22<<7 | 0x2D, - 30694 - 19968: jis0212<<14 | 0x2E<<7 | 0x25, - 30695 - 19968: jis0208<<14 | 0x26<<7 | 0x49, - 30697 - 19968: jis0208<<14 | 0x15<<7 | 0x4A, - 30698 - 19968: jis0212<<14 | 0x2E<<7 | 0x26, - 30700 - 19968: jis0212<<14 | 0x2E<<7 | 0x27, - 30701 - 19968: jis0208<<14 | 0x22<<7 | 0x1A, - 30702 - 19968: jis0208<<14 | 0x41<<7 | 0x43, - 30703 - 19968: jis0208<<14 | 0x15<<7 | 0x19, - 30704 - 19968: jis0212<<14 | 0x2E<<7 | 0x28, - 30705 - 19968: jis0212<<14 | 0x2E<<7 | 0x29, - 30707 - 19968: jis0208<<14 | 0x1F<<7 | 0x2F, - 30708 - 19968: jis0212<<14 | 0x2E<<7 | 0x2A, - 30712 - 19968: jis0212<<14 | 0x2E<<7 | 0x2B, - 30715 - 19968: jis0212<<14 | 0x2E<<7 | 0x2C, - 30716 - 19968: jis0208<<14 | 0x41<<7 | 0x44, - 30722 - 19968: jis0208<<14 | 0x19<<7 | 0x1C, - 30725 - 19968: jis0212<<14 | 0x2E<<7 | 0x2D, - 30726 - 19968: jis0212<<14 | 0x2E<<7 | 0x2E, - 30729 - 19968: jis0212<<14 | 0x2E<<7 | 0x2F, - 30732 - 19968: jis0208<<14 | 0x41<<7 | 0x45, - 30733 - 19968: jis0212<<14 | 0x2E<<7 | 0x30, - 30734 - 19968: jis0212<<14 | 0x2E<<7 | 0x31, - 30737 - 19968: jis0212<<14 | 0x2E<<7 | 0x32, - 30738 - 19968: jis0208<<14 | 0x41<<7 | 0x46, - 30740 - 19968: jis0208<<14 | 0x17<<7 | 0x05, - 30741 - 19968: jis0208<<14 | 0x19<<7 | 0x34, - 30749 - 19968: jis0212<<14 | 0x2E<<7 | 0x33, - 30752 - 19968: jis0208<<14 | 0x41<<7 | 0x48, - 30753 - 19968: jis0208<<14 | 0x5A<<7 | 0x1C, - 30754 - 19968: jis0212<<14 | 0x2E<<7 | 0x35, - 30755 - 19968: jis0212<<14 | 0x2E<<7 | 0x36, - 30757 - 19968: jis0208<<14 | 0x24<<7 | 0x35, - 30758 - 19968: jis0208<<14 | 0x19<<7 | 0x35, - 30759 - 19968: jis0208<<14 | 0x14<<7 | 0x2D, - 30765 - 19968: jis0212<<14 | 0x2E<<7 | 0x37, - 30766 - 19968: jis0212<<14 | 0x2E<<7 | 0x38, - 30768 - 19968: jis0212<<14 | 0x2E<<7 | 0x39, - 30770 - 19968: jis0208<<14 | 0x2A<<7 | 0x03, - 30772 - 19968: jis0208<<14 | 0x26<<7 | 0x2A, - 30773 - 19968: jis0212<<14 | 0x2E<<7 | 0x3A, - 30775 - 19968: jis0212<<14 | 0x2E<<7 | 0x3B, - 30778 - 19968: jis0208<<14 | 0x24<<7 | 0x36, - 30783 - 19968: jis0208<<14 | 0x18<<7 | 0x3B, - 30787 - 19968: jis0212<<14 | 0x2E<<7 | 0x3C, - 30788 - 19968: jis0212<<14 | 0x2E<<7 | 0x3D, - 30789 - 19968: jis0208<<14 | 0x41<<7 | 0x4A, - 30791 - 19968: jis0212<<14 | 0x2E<<7 | 0x3E, - 30792 - 19968: jis0212<<14 | 0x2E<<7 | 0x3F, - 30796 - 19968: jis0212<<14 | 0x2E<<7 | 0x40, - 30798 - 19968: jis0208<<14 | 0x5A<<7 | 0x1D, - 30802 - 19968: jis0212<<14 | 0x2E<<7 | 0x42, - 30812 - 19968: jis0212<<14 | 0x2E<<7 | 0x43, - 30813 - 19968: jis0208<<14 | 0x1D<<7 | 0x2A, - 30814 - 19968: jis0212<<14 | 0x2E<<7 | 0x44, - 30816 - 19968: jis0212<<14 | 0x2E<<7 | 0x45, - 30817 - 19968: jis0212<<14 | 0x2E<<7 | 0x46, - 30819 - 19968: jis0212<<14 | 0x2E<<7 | 0x47, - 30820 - 19968: jis0208<<14 | 0x5A<<7 | 0x1E, - 30824 - 19968: jis0212<<14 | 0x2E<<7 | 0x49, - 30826 - 19968: jis0212<<14 | 0x2E<<7 | 0x4A, - 30827 - 19968: jis0208<<14 | 0x2D<<7 | 0x11, - 30828 - 19968: jis0208<<14 | 0x18<<7 | 0x24, - 30830 - 19968: jis0212<<14 | 0x2E<<7 | 0x4B, - 30831 - 19968: jis0208<<14 | 0x17<<7 | 0x06, - 30834 - 19968: jis0208<<14 | 0x27<<7 | 0x02, - 30836 - 19968: jis0208<<14 | 0x41<<7 | 0x4C, - 30842 - 19968: jis0208<<14 | 0x5A<<7 | 0x1F, - 30844 - 19968: jis0208<<14 | 0x41<<7 | 0x4E, - 30846 - 19968: jis0212<<14 | 0x2E<<7 | 0x4D, - 30849 - 19968: jis0208<<14 | 0x17<<7 | 0x4A, - 30854 - 19968: jis0208<<14 | 0x41<<7 | 0x4D, - 30855 - 19968: jis0208<<14 | 0x23<<7 | 0x55, - 30858 - 19968: jis0212<<14 | 0x2E<<7 | 0x4E, - 30860 - 19968: jis0208<<14 | 0x41<<7 | 0x50, - 30861 - 19968: jis0208<<14 | 0x12<<7 | 0x16, - 30862 - 19968: jis0208<<14 | 0x41<<7 | 0x4B, - 30863 - 19968: jis0212<<14 | 0x2E<<7 | 0x4F, - 30865 - 19968: jis0208<<14 | 0x27<<7 | 0x49, - 30867 - 19968: jis0208<<14 | 0x10<<7 | 0x0F, - 30868 - 19968: jis0212<<14 | 0x2E<<7 | 0x50, - 30869 - 19968: jis0208<<14 | 0x19<<7 | 0x4B, - 30871 - 19968: jis0208<<14 | 0x2E<<7 | 0x31, - 30872 - 19968: jis0212<<14 | 0x2E<<7 | 0x51, - 30874 - 19968: jis0208<<14 | 0x41<<7 | 0x4F, - 30877 - 19968: jis0212<<14 | 0x2E<<7 | 0x53, - 30878 - 19968: jis0212<<14 | 0x2E<<7 | 0x54, - 30879 - 19968: jis0212<<14 | 0x2E<<7 | 0x55, - 30881 - 19968: jis0212<<14 | 0x2E<<7 | 0x52, - 30883 - 19968: jis0208<<14 | 0x41<<7 | 0x51, - 30884 - 19968: jis0212<<14 | 0x2E<<7 | 0x56, - 30887 - 19968: jis0208<<14 | 0x29<<7 | 0x2A, - 30888 - 19968: jis0212<<14 | 0x2E<<7 | 0x57, - 30889 - 19968: jis0208<<14 | 0x1F<<7 | 0x38, - 30890 - 19968: jis0208<<14 | 0x41<<7 | 0x53, - 30892 - 19968: jis0212<<14 | 0x2E<<7 | 0x58, - 30893 - 19968: jis0212<<14 | 0x2E<<7 | 0x59, - 30895 - 19968: jis0208<<14 | 0x41<<7 | 0x54, - 30896 - 19968: jis0212<<14 | 0x2E<<7 | 0x5A, - 30897 - 19968: jis0212<<14 | 0x2E<<7 | 0x5B, - 30898 - 19968: jis0212<<14 | 0x2E<<7 | 0x5C, - 30899 - 19968: jis0212<<14 | 0x2E<<7 | 0x5D, - 30901 - 19968: jis0208<<14 | 0x41<<7 | 0x52, - 30906 - 19968: jis0208<<14 | 0x12<<7 | 0x2D, - 30907 - 19968: jis0212<<14 | 0x2F<<7 | 0x00, - 30908 - 19968: jis0208<<14 | 0x41<<7 | 0x5A, - 30909 - 19968: jis0212<<14 | 0x2F<<7 | 0x01, - 30910 - 19968: jis0208<<14 | 0x41<<7 | 0x59, - 30911 - 19968: jis0212<<14 | 0x2F<<7 | 0x02, - 30913 - 19968: jis0208<<14 | 0x1B<<7 | 0x06, - 30917 - 19968: jis0208<<14 | 0x41<<7 | 0x5B, - 30918 - 19968: jis0208<<14 | 0x41<<7 | 0x56, - 30919 - 19968: jis0212<<14 | 0x2F<<7 | 0x03, - 30920 - 19968: jis0212<<14 | 0x2F<<7 | 0x04, - 30921 - 19968: jis0212<<14 | 0x2F<<7 | 0x05, - 30922 - 19968: jis0208<<14 | 0x41<<7 | 0x5C, - 30923 - 19968: jis0208<<14 | 0x41<<7 | 0x57, - 30924 - 19968: jis0212<<14 | 0x2F<<7 | 0x06, - 30926 - 19968: jis0212<<14 | 0x2F<<7 | 0x07, - 30928 - 19968: jis0208<<14 | 0x27<<7 | 0x37, - 30929 - 19968: jis0208<<14 | 0x41<<7 | 0x55, - 30930 - 19968: jis0212<<14 | 0x2F<<7 | 0x08, - 30931 - 19968: jis0212<<14 | 0x2F<<7 | 0x09, - 30932 - 19968: jis0208<<14 | 0x41<<7 | 0x58, - 30933 - 19968: jis0212<<14 | 0x2F<<7 | 0x0A, - 30934 - 19968: jis0212<<14 | 0x2F<<7 | 0x0B, - 30938 - 19968: jis0208<<14 | 0x42<<7 | 0x01, - 30939 - 19968: jis0212<<14 | 0x2F<<7 | 0x0D, - 30943 - 19968: jis0212<<14 | 0x2F<<7 | 0x0E, - 30944 - 19968: jis0212<<14 | 0x2F<<7 | 0x0F, - 30945 - 19968: jis0212<<14 | 0x2F<<7 | 0x10, - 30948 - 19968: jis0212<<14 | 0x2F<<7 | 0x0C, - 30950 - 19968: jis0212<<14 | 0x2F<<7 | 0x11, - 30951 - 19968: jis0208<<14 | 0x42<<7 | 0x00, - 30952 - 19968: jis0208<<14 | 0x2A<<7 | 0x40, - 30954 - 19968: jis0212<<14 | 0x2F<<7 | 0x12, - 30956 - 19968: jis0208<<14 | 0x41<<7 | 0x5D, - 30959 - 19968: jis0208<<14 | 0x0F<<7 | 0x4A, - 30962 - 19968: jis0212<<14 | 0x2F<<7 | 0x13, - 30963 - 19968: jis0212<<14 | 0x2F<<7 | 0x14, - 30964 - 19968: jis0208<<14 | 0x42<<7 | 0x03, - 30966 - 19968: jis0212<<14 | 0x2F<<7 | 0x16, - 30967 - 19968: jis0212<<14 | 0x2F<<7 | 0x17, - 30970 - 19968: jis0212<<14 | 0x2F<<7 | 0x18, - 30971 - 19968: jis0212<<14 | 0x2F<<7 | 0x19, - 30973 - 19968: jis0208<<14 | 0x42<<7 | 0x02, - 30975 - 19968: jis0212<<14 | 0x2F<<7 | 0x1A, - 30976 - 19968: jis0212<<14 | 0x2F<<7 | 0x15, - 30977 - 19968: jis0208<<14 | 0x1D<<7 | 0x2B, - 30982 - 19968: jis0212<<14 | 0x2F<<7 | 0x1B, - 30983 - 19968: jis0208<<14 | 0x42<<7 | 0x04, - 30988 - 19968: jis0212<<14 | 0x2F<<7 | 0x1C, - 30990 - 19968: jis0208<<14 | 0x20<<7 | 0x22, - 30992 - 19968: jis0212<<14 | 0x2F<<7 | 0x1D, - 30993 - 19968: jis0208<<14 | 0x42<<7 | 0x06, - 30994 - 19968: jis0208<<14 | 0x42<<7 | 0x05, - 31001 - 19968: jis0208<<14 | 0x42<<7 | 0x07, - 31002 - 19968: jis0212<<14 | 0x2F<<7 | 0x1E, - 31004 - 19968: jis0212<<14 | 0x2F<<7 | 0x1F, - 31006 - 19968: jis0212<<14 | 0x2F<<7 | 0x20, - 31007 - 19968: jis0212<<14 | 0x2F<<7 | 0x21, - 31008 - 19968: jis0212<<14 | 0x2F<<7 | 0x22, - 31013 - 19968: jis0212<<14 | 0x2F<<7 | 0x23, - 31014 - 19968: jis0208<<14 | 0x41<<7 | 0x47, - 31015 - 19968: jis0212<<14 | 0x2F<<7 | 0x24, - 31017 - 19968: jis0212<<14 | 0x2F<<7 | 0x25, - 31018 - 19968: jis0208<<14 | 0x41<<7 | 0x49, - 31019 - 19968: jis0208<<14 | 0x42<<7 | 0x09, - 31020 - 19968: jis0208<<14 | 0x42<<7 | 0x08, - 31021 - 19968: jis0212<<14 | 0x2F<<7 | 0x26, - 31024 - 19968: jis0208<<14 | 0x5A<<7 | 0x20, - 31025 - 19968: jis0212<<14 | 0x2F<<7 | 0x27, - 31028 - 19968: jis0212<<14 | 0x2F<<7 | 0x28, - 31029 - 19968: jis0212<<14 | 0x2F<<7 | 0x29, - 31034 - 19968: jis0208<<14 | 0x1B<<7 | 0x07, - 31035 - 19968: jis0212<<14 | 0x2F<<7 | 0x2A, - 31036 - 19968: jis0208<<14 | 0x2D<<7 | 0x48, - 31037 - 19968: jis0212<<14 | 0x2F<<7 | 0x2B, - 31038 - 19968: jis0208<<14 | 0x1B<<7 | 0x31, - 31039 - 19968: jis0212<<14 | 0x2F<<7 | 0x2C, - 31040 - 19968: jis0208<<14 | 0x42<<7 | 0x0A, - 31041 - 19968: jis0208<<14 | 0x16<<7 | 0x16, - 31044 - 19968: jis0212<<14 | 0x2F<<7 | 0x2D, - 31045 - 19968: jis0212<<14 | 0x2F<<7 | 0x2E, - 31046 - 19968: jis0212<<14 | 0x2F<<7 | 0x2F, - 31047 - 19968: jis0208<<14 | 0x14<<7 | 0x1F, - 31048 - 19968: jis0208<<14 | 0x14<<7 | 0x06, - 31049 - 19968: jis0208<<14 | 0x1A<<7 | 0x42, - 31050 - 19968: jis0212<<14 | 0x2F<<7 | 0x30, - 31051 - 19968: jis0212<<14 | 0x2F<<7 | 0x31, - 31055 - 19968: jis0212<<14 | 0x2F<<7 | 0x32, - 31056 - 19968: jis0208<<14 | 0x2C<<7 | 0x13, - 31057 - 19968: jis0212<<14 | 0x2F<<7 | 0x33, - 31059 - 19968: jis0208<<14 | 0x42<<7 | 0x10, - 31060 - 19968: jis0212<<14 | 0x2F<<7 | 0x34, - 31061 - 19968: jis0208<<14 | 0x42<<7 | 0x0F, - 31062 - 19968: jis0208<<14 | 0x20<<7 | 0x23, - 31063 - 19968: jis0208<<14 | 0x42<<7 | 0x0C, - 31064 - 19968: jis0212<<14 | 0x2F<<7 | 0x35, - 31066 - 19968: jis0208<<14 | 0x42<<7 | 0x0E, - 31067 - 19968: jis0212<<14 | 0x2F<<7 | 0x36, - 31068 - 19968: jis0212<<14 | 0x2F<<7 | 0x37, - 31069 - 19968: jis0208<<14 | 0x1C<<7 | 0x2A, - 31070 - 19968: jis0208<<14 | 0x1E<<7 | 0x1F, - 31071 - 19968: jis0208<<14 | 0x42<<7 | 0x0D, - 31072 - 19968: jis0208<<14 | 0x42<<7 | 0x0B, - 31074 - 19968: jis0208<<14 | 0x26<<7 | 0x09, - 31077 - 19968: jis0208<<14 | 0x1D<<7 | 0x2C, - 31079 - 19968: jis0212<<14 | 0x2F<<7 | 0x38, - 31080 - 19968: jis0208<<14 | 0x28<<7 | 0x1B, - 31081 - 19968: jis0212<<14 | 0x2F<<7 | 0x39, - 31083 - 19968: jis0212<<14 | 0x2F<<7 | 0x3A, - 31085 - 19968: jis0208<<14 | 0x19<<7 | 0x36, - 31090 - 19968: jis0212<<14 | 0x2F<<7 | 0x3B, - 31095 - 19968: jis0208<<14 | 0x24<<7 | 0x57, - 31097 - 19968: jis0212<<14 | 0x2F<<7 | 0x3C, - 31098 - 19968: jis0208<<14 | 0x42<<7 | 0x11, - 31099 - 19968: jis0212<<14 | 0x2F<<7 | 0x3D, - 31100 - 19968: jis0212<<14 | 0x2F<<7 | 0x3E, - 31102 - 19968: jis0212<<14 | 0x2F<<7 | 0x3F, - 31103 - 19968: jis0208<<14 | 0x42<<7 | 0x12, - 31104 - 19968: jis0208<<14 | 0x42<<7 | 0x28, - 31105 - 19968: jis0208<<14 | 0x15<<7 | 0x37, - 31108 - 19968: jis0208<<14 | 0x2E<<7 | 0x1C, - 31109 - 19968: jis0208<<14 | 0x20<<7 | 0x14, - 31114 - 19968: jis0208<<14 | 0x42<<7 | 0x13, - 31115 - 19968: jis0212<<14 | 0x2F<<7 | 0x40, - 31116 - 19968: jis0212<<14 | 0x2F<<7 | 0x41, - 31117 - 19968: jis0208<<14 | 0x11<<7 | 0x31, - 31118 - 19968: jis0208<<14 | 0x23<<7 | 0x56, - 31119 - 19968: jis0208<<14 | 0x29<<7 | 0x00, - 31121 - 19968: jis0212<<14 | 0x2F<<7 | 0x42, - 31123 - 19968: jis0212<<14 | 0x2F<<7 | 0x43, - 31124 - 19968: jis0208<<14 | 0x5A<<7 | 0x24, - 31125 - 19968: jis0212<<14 | 0x2F<<7 | 0x45, - 31126 - 19968: jis0212<<14 | 0x2F<<7 | 0x46, - 31128 - 19968: jis0212<<14 | 0x2F<<7 | 0x47, - 31131 - 19968: jis0208<<14 | 0x5A<<7 | 0x26, - 31132 - 19968: jis0212<<14 | 0x2F<<7 | 0x49, - 31133 - 19968: jis0208<<14 | 0x42<<7 | 0x14, - 31137 - 19968: jis0212<<14 | 0x2F<<7 | 0x4A, - 31142 - 19968: jis0208<<14 | 0x14<<7 | 0x59, - 31143 - 19968: jis0208<<14 | 0x42<<7 | 0x15, - 31144 - 19968: jis0212<<14 | 0x2F<<7 | 0x4B, - 31145 - 19968: jis0212<<14 | 0x2F<<7 | 0x4C, - 31146 - 19968: jis0208<<14 | 0x42<<7 | 0x17, - 31147 - 19968: jis0212<<14 | 0x2F<<7 | 0x4D, - 31150 - 19968: jis0208<<14 | 0x42<<7 | 0x18, - 31151 - 19968: jis0212<<14 | 0x2F<<7 | 0x4E, - 31152 - 19968: jis0208<<14 | 0x26<<7 | 0x08, - 31153 - 19968: jis0212<<14 | 0x2F<<7 | 0x4F, - 31155 - 19968: jis0208<<14 | 0x42<<7 | 0x19, - 31156 - 19968: jis0212<<14 | 0x2F<<7 | 0x50, - 31160 - 19968: jis0212<<14 | 0x2F<<7 | 0x51, - 31161 - 19968: jis0208<<14 | 0x42<<7 | 0x1A, - 31162 - 19968: jis0208<<14 | 0x42<<7 | 0x1B, - 31163 - 19968: jis0212<<14 | 0x2F<<7 | 0x52, - 31165 - 19968: jis0208<<14 | 0x15<<7 | 0x38, - 31166 - 19968: jis0208<<14 | 0x11<<7 | 0x32, - 31167 - 19968: jis0208<<14 | 0x25<<7 | 0x24, - 31168 - 19968: jis0208<<14 | 0x1C<<7 | 0x07, - 31169 - 19968: jis0208<<14 | 0x1A<<7 | 0x43, - 31170 - 19968: jis0212<<14 | 0x2F<<7 | 0x53, - 31172 - 19968: jis0212<<14 | 0x2F<<7 | 0x54, - 31175 - 19968: jis0212<<14 | 0x2F<<7 | 0x55, - 31176 - 19968: jis0212<<14 | 0x2F<<7 | 0x56, - 31177 - 19968: jis0208<<14 | 0x42<<7 | 0x1C, - 31178 - 19968: jis0212<<14 | 0x2F<<7 | 0x57, - 31179 - 19968: jis0208<<14 | 0x1C<<7 | 0x08, - 31183 - 19968: jis0212<<14 | 0x2F<<7 | 0x58, - 31185 - 19968: jis0208<<14 | 0x11<<7 | 0x29, - 31186 - 19968: jis0208<<14 | 0x28<<7 | 0x22, - 31188 - 19968: jis0212<<14 | 0x2F<<7 | 0x59, - 31189 - 19968: jis0208<<14 | 0x42<<7 | 0x1D, - 31190 - 19968: jis0212<<14 | 0x2F<<7 | 0x5A, - 31192 - 19968: jis0208<<14 | 0x27<<7 | 0x4A, - 31194 - 19968: jis0212<<14 | 0x2F<<7 | 0x5B, - 31197 - 19968: jis0212<<14 | 0x2F<<7 | 0x5C, - 31198 - 19968: jis0212<<14 | 0x2F<<7 | 0x5D, - 31199 - 19968: jis0208<<14 | 0x20<<7 | 0x24, - 31200 - 19968: jis0212<<14 | 0x30<<7 | 0x00, - 31201 - 19968: jis0208<<14 | 0x42<<7 | 0x20, - 31202 - 19968: jis0212<<14 | 0x30<<7 | 0x01, - 31203 - 19968: jis0208<<14 | 0x42<<7 | 0x21, - 31204 - 19968: jis0208<<14 | 0x26<<7 | 0x48, - 31205 - 19968: jis0212<<14 | 0x30<<7 | 0x02, - 31206 - 19968: jis0208<<14 | 0x1E<<7 | 0x20, - 31207 - 19968: jis0208<<14 | 0x42<<7 | 0x1E, - 31209 - 19968: jis0208<<14 | 0x22<<7 | 0x40, - 31210 - 19968: jis0212<<14 | 0x30<<7 | 0x03, - 31211 - 19968: jis0212<<14 | 0x30<<7 | 0x04, - 31212 - 19968: jis0208<<14 | 0x42<<7 | 0x1F, - 31213 - 19968: jis0212<<14 | 0x30<<7 | 0x05, - 31216 - 19968: jis0208<<14 | 0x1D<<7 | 0x2D, - 31217 - 19968: jis0212<<14 | 0x30<<7 | 0x06, - 31224 - 19968: jis0212<<14 | 0x30<<7 | 0x07, - 31227 - 19968: jis0208<<14 | 0x0F<<7 | 0x3B, - 31228 - 19968: jis0212<<14 | 0x30<<7 | 0x08, - 31232 - 19968: jis0208<<14 | 0x14<<7 | 0x08, - 31234 - 19968: jis0212<<14 | 0x30<<7 | 0x09, - 31235 - 19968: jis0212<<14 | 0x30<<7 | 0x0A, - 31239 - 19968: jis0212<<14 | 0x30<<7 | 0x0B, - 31240 - 19968: jis0208<<14 | 0x42<<7 | 0x22, - 31241 - 19968: jis0212<<14 | 0x30<<7 | 0x0C, - 31242 - 19968: jis0212<<14 | 0x30<<7 | 0x0D, - 31243 - 19968: jis0208<<14 | 0x23<<7 | 0x57, - 31244 - 19968: jis0212<<14 | 0x30<<7 | 0x0E, - 31245 - 19968: jis0208<<14 | 0x42<<7 | 0x23, - 31246 - 19968: jis0208<<14 | 0x1F<<7 | 0x26, - 31249 - 19968: jis0212<<14 | 0x30<<7 | 0x0F, - 31252 - 19968: jis0208<<14 | 0x2B<<7 | 0x0C, - 31253 - 19968: jis0212<<14 | 0x30<<7 | 0x10, - 31255 - 19968: jis0208<<14 | 0x28<<7 | 0x02, - 31256 - 19968: jis0208<<14 | 0x42<<7 | 0x24, - 31257 - 19968: jis0208<<14 | 0x42<<7 | 0x25, - 31258 - 19968: jis0208<<14 | 0x22<<7 | 0x34, - 31259 - 19968: jis0212<<14 | 0x30<<7 | 0x11, - 31260 - 19968: jis0208<<14 | 0x2D<<7 | 0x26, - 31262 - 19968: jis0212<<14 | 0x30<<7 | 0x12, - 31263 - 19968: jis0208<<14 | 0x42<<7 | 0x27, - 31264 - 19968: jis0208<<14 | 0x42<<7 | 0x26, - 31265 - 19968: jis0212<<14 | 0x30<<7 | 0x13, - 31271 - 19968: jis0212<<14 | 0x30<<7 | 0x14, - 31275 - 19968: jis0212<<14 | 0x30<<7 | 0x15, - 31277 - 19968: jis0212<<14 | 0x30<<7 | 0x16, - 31278 - 19968: jis0208<<14 | 0x1B<<7 | 0x4E, - 31279 - 19968: jis0212<<14 | 0x30<<7 | 0x17, - 31280 - 19968: jis0212<<14 | 0x30<<7 | 0x18, - 31281 - 19968: jis0208<<14 | 0x42<<7 | 0x29, - 31282 - 19968: jis0208<<14 | 0x0F<<7 | 0x4F, - 31284 - 19968: jis0212<<14 | 0x30<<7 | 0x19, - 31285 - 19968: jis0212<<14 | 0x30<<7 | 0x1A, - 31287 - 19968: jis0208<<14 | 0x42<<7 | 0x2C, - 31288 - 19968: jis0212<<14 | 0x30<<7 | 0x1B, - 31289 - 19968: jis0212<<14 | 0x30<<7 | 0x1C, - 31290 - 19968: jis0212<<14 | 0x30<<7 | 0x1D, - 31291 - 19968: jis0208<<14 | 0x42<<7 | 0x2A, - 31292 - 19968: jis0208<<14 | 0x11<<7 | 0x33, - 31293 - 19968: jis0208<<14 | 0x16<<7 | 0x2D, - 31294 - 19968: jis0208<<14 | 0x42<<7 | 0x2B, - 31295 - 19968: jis0208<<14 | 0x18<<7 | 0x25, - 31296 - 19968: jis0208<<14 | 0x18<<7 | 0x51, - 31298 - 19968: jis0208<<14 | 0x29<<7 | 0x45, - 31299 - 19968: jis0208<<14 | 0x42<<7 | 0x2D, - 31300 - 19968: jis0212<<14 | 0x30<<7 | 0x1E, - 31301 - 19968: jis0212<<14 | 0x30<<7 | 0x1F, - 31302 - 19968: jis0208<<14 | 0x2A<<7 | 0x33, - 31303 - 19968: jis0212<<14 | 0x30<<7 | 0x20, - 31304 - 19968: jis0212<<14 | 0x30<<7 | 0x21, - 31305 - 19968: jis0208<<14 | 0x42<<7 | 0x2F, - 31308 - 19968: jis0212<<14 | 0x30<<7 | 0x22, - 31309 - 19968: jis0208<<14 | 0x1F<<7 | 0x30, - 31310 - 19968: jis0208<<14 | 0x10<<7 | 0x2E, - 31311 - 19968: jis0208<<14 | 0x11<<7 | 0x19, - 31312 - 19968: jis0208<<14 | 0x0F<<7 | 0x0B, - 31317 - 19968: jis0212<<14 | 0x30<<7 | 0x23, - 31318 - 19968: jis0212<<14 | 0x30<<7 | 0x24, - 31319 - 19968: jis0208<<14 | 0x42<<7 | 0x2E, - 31321 - 19968: jis0212<<14 | 0x30<<7 | 0x25, - 31324 - 19968: jis0212<<14 | 0x30<<7 | 0x26, - 31325 - 19968: jis0212<<14 | 0x30<<7 | 0x27, - 31327 - 19968: jis0212<<14 | 0x30<<7 | 0x28, - 31328 - 19968: jis0212<<14 | 0x30<<7 | 0x29, - 31329 - 19968: jis0208<<14 | 0x42<<7 | 0x30, - 31330 - 19968: jis0208<<14 | 0x42<<7 | 0x31, - 31331 - 19968: jis0208<<14 | 0x1D<<7 | 0x56, - 31333 - 19968: jis0212<<14 | 0x30<<7 | 0x2A, - 31335 - 19968: jis0212<<14 | 0x30<<7 | 0x2B, - 31337 - 19968: jis0208<<14 | 0x42<<7 | 0x32, - 31338 - 19968: jis0212<<14 | 0x30<<7 | 0x2C, - 31339 - 19968: jis0208<<14 | 0x12<<7 | 0x2E, - 31341 - 19968: jis0212<<14 | 0x30<<7 | 0x2D, - 31344 - 19968: jis0208<<14 | 0x42<<7 | 0x34, - 31348 - 19968: jis0208<<14 | 0x16<<7 | 0x49, - 31349 - 19968: jis0212<<14 | 0x30<<7 | 0x2E, - 31350 - 19968: jis0208<<14 | 0x14<<7 | 0x45, - 31352 - 19968: jis0212<<14 | 0x30<<7 | 0x2F, - 31353 - 19968: jis0208<<14 | 0x42<<7 | 0x35, - 31354 - 19968: jis0208<<14 | 0x15<<7 | 0x54, - 31357 - 19968: jis0208<<14 | 0x42<<7 | 0x36, - 31358 - 19968: jis0212<<14 | 0x30<<7 | 0x30, - 31359 - 19968: jis0208<<14 | 0x1F<<7 | 0x5B, - 31360 - 19968: jis0212<<14 | 0x30<<7 | 0x31, - 31361 - 19968: jis0208<<14 | 0x25<<7 | 0x2C, - 31362 - 19968: jis0212<<14 | 0x30<<7 | 0x32, - 31363 - 19968: jis0208<<14 | 0x1F<<7 | 0x3F, - 31364 - 19968: jis0208<<14 | 0x19<<7 | 0x54, - 31365 - 19968: jis0212<<14 | 0x30<<7 | 0x33, - 31366 - 19968: jis0212<<14 | 0x30<<7 | 0x34, - 31368 - 19968: jis0208<<14 | 0x42<<7 | 0x37, - 31370 - 19968: jis0212<<14 | 0x30<<7 | 0x35, - 31371 - 19968: jis0212<<14 | 0x30<<7 | 0x36, - 31376 - 19968: jis0212<<14 | 0x30<<7 | 0x37, - 31377 - 19968: jis0212<<14 | 0x30<<7 | 0x38, - 31378 - 19968: jis0208<<14 | 0x22<<7 | 0x41, - 31379 - 19968: jis0208<<14 | 0x20<<7 | 0x4A, - 31380 - 19968: jis0212<<14 | 0x30<<7 | 0x39, - 31381 - 19968: jis0208<<14 | 0x42<<7 | 0x39, - 31382 - 19968: jis0208<<14 | 0x42<<7 | 0x3B, - 31383 - 19968: jis0208<<14 | 0x42<<7 | 0x38, - 31384 - 19968: jis0208<<14 | 0x42<<7 | 0x3A, - 31390 - 19968: jis0212<<14 | 0x30<<7 | 0x3A, - 31391 - 19968: jis0208<<14 | 0x16<<7 | 0x01, - 31392 - 19968: jis0212<<14 | 0x30<<7 | 0x3B, - 31395 - 19968: jis0212<<14 | 0x30<<7 | 0x3C, - 31401 - 19968: jis0208<<14 | 0x42<<7 | 0x3C, - 31402 - 19968: jis0208<<14 | 0x16<<7 | 0x05, - 31404 - 19968: jis0212<<14 | 0x30<<7 | 0x3D, - 31406 - 19968: jis0208<<14 | 0x14<<7 | 0x46, - 31407 - 19968: jis0208<<14 | 0x2C<<7 | 0x31, - 31408 - 19968: jis0208<<14 | 0x42<<7 | 0x3E, - 31411 - 19968: jis0212<<14 | 0x30<<7 | 0x3E, - 31413 - 19968: jis0212<<14 | 0x30<<7 | 0x3F, - 31414 - 19968: jis0208<<14 | 0x42<<7 | 0x3F, - 31417 - 19968: jis0212<<14 | 0x30<<7 | 0x40, - 31418 - 19968: jis0208<<14 | 0x10<<7 | 0x0D, - 31419 - 19968: jis0212<<14 | 0x30<<7 | 0x41, - 31420 - 19968: jis0212<<14 | 0x30<<7 | 0x42, - 31423 - 19968: jis0208<<14 | 0x42<<7 | 0x42, - 31427 - 19968: jis0208<<14 | 0x12<<7 | 0x55, - 31428 - 19968: jis0208<<14 | 0x42<<7 | 0x41, - 31429 - 19968: jis0208<<14 | 0x42<<7 | 0x40, - 31430 - 19968: jis0212<<14 | 0x30<<7 | 0x43, - 31431 - 19968: jis0208<<14 | 0x42<<7 | 0x44, - 31432 - 19968: jis0208<<14 | 0x42<<7 | 0x3D, - 31433 - 19968: jis0212<<14 | 0x30<<7 | 0x44, - 31434 - 19968: jis0208<<14 | 0x42<<7 | 0x45, - 31435 - 19968: jis0208<<14 | 0x2D<<7 | 0x08, - 31436 - 19968: jis0212<<14 | 0x30<<7 | 0x45, - 31437 - 19968: jis0208<<14 | 0x42<<7 | 0x46, - 31438 - 19968: jis0212<<14 | 0x30<<7 | 0x46, - 31439 - 19968: jis0208<<14 | 0x42<<7 | 0x47, - 31441 - 19968: jis0208<<14 | 0x5A<<7 | 0x27, - 31442 - 19968: jis0208<<14 | 0x33<<7 | 0x53, - 31443 - 19968: jis0208<<14 | 0x42<<7 | 0x49, - 31445 - 19968: jis0208<<14 | 0x42<<7 | 0x48, - 31449 - 19968: jis0208<<14 | 0x42<<7 | 0x4A, - 31450 - 19968: jis0208<<14 | 0x42<<7 | 0x4B, - 31451 - 19968: jis0212<<14 | 0x30<<7 | 0x48, - 31452 - 19968: jis0208<<14 | 0x2D<<7 | 0x14, - 31453 - 19968: jis0208<<14 | 0x42<<7 | 0x4C, - 31455 - 19968: jis0208<<14 | 0x4F<<7 | 0x4E, - 31456 - 19968: jis0208<<14 | 0x1D<<7 | 0x2E, - 31457 - 19968: jis0208<<14 | 0x42<<7 | 0x4D, - 31458 - 19968: jis0208<<14 | 0x42<<7 | 0x4E, - 31459 - 19968: jis0208<<14 | 0x1C<<7 | 0x36, - 31461 - 19968: jis0208<<14 | 0x25<<7 | 0x17, - 31462 - 19968: jis0208<<14 | 0x42<<7 | 0x4F, - 31463 - 19968: jis0208<<14 | 0x5A<<7 | 0x28, - 31464 - 19968: jis0212<<14 | 0x30<<7 | 0x49, - 31465 - 19968: jis0212<<14 | 0x30<<7 | 0x4A, - 31466 - 19968: jis0208<<14 | 0x22<<7 | 0x07, - 31467 - 19968: jis0208<<14 | 0x5A<<7 | 0x2A, - 31468 - 19968: jis0212<<14 | 0x30<<7 | 0x4C, - 31469 - 19968: jis0208<<14 | 0x42<<7 | 0x50, - 31471 - 19968: jis0208<<14 | 0x22<<7 | 0x1B, - 31472 - 19968: jis0208<<14 | 0x42<<7 | 0x51, - 31473 - 19968: jis0212<<14 | 0x30<<7 | 0x4D, - 31476 - 19968: jis0212<<14 | 0x30<<7 | 0x4E, - 31478 - 19968: jis0208<<14 | 0x15<<7 | 0x04, - 31480 - 19968: jis0208<<14 | 0x30<<7 | 0x1E, - 31481 - 19968: jis0208<<14 | 0x22<<7 | 0x3C, - 31482 - 19968: jis0208<<14 | 0x1B<<7 | 0x12, - 31483 - 19968: jis0212<<14 | 0x30<<7 | 0x4F, - 31485 - 19968: jis0212<<14 | 0x30<<7 | 0x50, - 31486 - 19968: jis0212<<14 | 0x30<<7 | 0x51, - 31487 - 19968: jis0208<<14 | 0x13<<7 | 0x27, - 31490 - 19968: jis0208<<14 | 0x42<<7 | 0x52, - 31492 - 19968: jis0208<<14 | 0x43<<7 | 0x01, - 31494 - 19968: jis0208<<14 | 0x42<<7 | 0x55, - 31495 - 19968: jis0212<<14 | 0x30<<7 | 0x52, - 31496 - 19968: jis0208<<14 | 0x14<<7 | 0x47, - 31498 - 19968: jis0208<<14 | 0x42<<7 | 0x54, - 31499 - 19968: jis0208<<14 | 0x43<<7 | 0x03, - 31503 - 19968: jis0208<<14 | 0x42<<7 | 0x53, - 31505 - 19968: jis0208<<14 | 0x1D<<7 | 0x2F, - 31508 - 19968: jis0212<<14 | 0x30<<7 | 0x53, - 31512 - 19968: jis0208<<14 | 0x42<<7 | 0x57, - 31513 - 19968: jis0208<<14 | 0x42<<7 | 0x58, - 31515 - 19968: jis0208<<14 | 0x24<<7 | 0x0A, - 31518 - 19968: jis0208<<14 | 0x42<<7 | 0x59, - 31519 - 19968: jis0212<<14 | 0x30<<7 | 0x54, - 31520 - 19968: jis0208<<14 | 0x12<<7 | 0x3D, - 31523 - 19968: jis0212<<14 | 0x30<<7 | 0x55, - 31525 - 19968: jis0208<<14 | 0x1E<<7 | 0x39, - 31526 - 19968: jis0208<<14 | 0x28<<7 | 0x43, - 31527 - 19968: jis0212<<14 | 0x30<<7 | 0x56, - 31528 - 19968: jis0208<<14 | 0x42<<7 | 0x5B, - 31529 - 19968: jis0212<<14 | 0x30<<7 | 0x57, - 31530 - 19968: jis0212<<14 | 0x30<<7 | 0x58, - 31531 - 19968: jis0212<<14 | 0x30<<7 | 0x59, - 31532 - 19968: jis0208<<14 | 0x21<<7 | 0x47, - 31533 - 19968: jis0212<<14 | 0x30<<7 | 0x5A, - 31534 - 19968: jis0212<<14 | 0x30<<7 | 0x5B, - 31535 - 19968: jis0212<<14 | 0x30<<7 | 0x5C, - 31536 - 19968: jis0212<<14 | 0x30<<7 | 0x5D, - 31537 - 19968: jis0212<<14 | 0x31<<7 | 0x00, - 31539 - 19968: jis0208<<14 | 0x42<<7 | 0x56, - 31540 - 19968: jis0212<<14 | 0x31<<7 | 0x01, - 31541 - 19968: jis0208<<14 | 0x42<<7 | 0x5A, - 31542 - 19968: jis0208<<14 | 0x42<<7 | 0x5C, - 31545 - 19968: jis0208<<14 | 0x19<<7 | 0x5A, - 31549 - 19968: jis0212<<14 | 0x31<<7 | 0x02, - 31551 - 19968: jis0212<<14 | 0x31<<7 | 0x03, - 31552 - 19968: jis0212<<14 | 0x31<<7 | 0x04, - 31553 - 19968: jis0212<<14 | 0x31<<7 | 0x05, - 31557 - 19968: jis0208<<14 | 0x43<<7 | 0x05, - 31558 - 19968: jis0208<<14 | 0x28<<7 | 0x0D, - 31559 - 19968: jis0212<<14 | 0x31<<7 | 0x06, - 31560 - 19968: jis0208<<14 | 0x27<<7 | 0x05, - 31561 - 19968: jis0208<<14 | 0x24<<7 | 0x58, - 31563 - 19968: jis0208<<14 | 0x15<<7 | 0x39, - 31564 - 19968: jis0208<<14 | 0x43<<7 | 0x04, - 31565 - 19968: jis0208<<14 | 0x43<<7 | 0x02, - 31566 - 19968: jis0212<<14 | 0x31<<7 | 0x07, - 31567 - 19968: jis0208<<14 | 0x27<<7 | 0x14, - 31568 - 19968: jis0208<<14 | 0x42<<7 | 0x5D, - 31569 - 19968: jis0208<<14 | 0x22<<7 | 0x3D, - 31570 - 19968: jis0208<<14 | 0x24<<7 | 0x5A, - 31572 - 19968: jis0208<<14 | 0x24<<7 | 0x59, - 31573 - 19968: jis0212<<14 | 0x31<<7 | 0x08, - 31574 - 19968: jis0208<<14 | 0x19<<7 | 0x55, - 31581 - 19968: jis0208<<14 | 0x43<<7 | 0x17, - 31584 - 19968: jis0212<<14 | 0x31<<7 | 0x09, - 31588 - 19968: jis0212<<14 | 0x31<<7 | 0x0A, - 31589 - 19968: jis0208<<14 | 0x43<<7 | 0x07, - 31590 - 19968: jis0212<<14 | 0x31<<7 | 0x0B, - 31591 - 19968: jis0208<<14 | 0x43<<7 | 0x09, - 31593 - 19968: jis0212<<14 | 0x31<<7 | 0x0C, - 31594 - 19968: jis0212<<14 | 0x31<<7 | 0x0D, - 31596 - 19968: jis0208<<14 | 0x43<<7 | 0x0C, - 31597 - 19968: jis0212<<14 | 0x31<<7 | 0x0E, - 31598 - 19968: jis0208<<14 | 0x43<<7 | 0x0D, - 31599 - 19968: jis0212<<14 | 0x31<<7 | 0x0F, - 31600 - 19968: jis0208<<14 | 0x43<<7 | 0x0A, - 31601 - 19968: jis0208<<14 | 0x43<<7 | 0x0B, - 31602 - 19968: jis0212<<14 | 0x31<<7 | 0x10, - 31603 - 19968: jis0212<<14 | 0x31<<7 | 0x11, - 31604 - 19968: jis0208<<14 | 0x43<<7 | 0x08, - 31605 - 19968: jis0208<<14 | 0x43<<7 | 0x06, - 31607 - 19968: jis0212<<14 | 0x31<<7 | 0x12, - 31610 - 19968: jis0208<<14 | 0x43<<7 | 0x00, - 31620 - 19968: jis0212<<14 | 0x31<<7 | 0x13, - 31622 - 19968: jis0208<<14 | 0x29<<7 | 0x2E, - 31623 - 19968: jis0208<<14 | 0x11<<7 | 0x34, - 31625 - 19968: jis0212<<14 | 0x31<<7 | 0x14, - 31627 - 19968: jis0208<<14 | 0x43<<7 | 0x14, - 31629 - 19968: jis0208<<14 | 0x43<<7 | 0x11, - 31630 - 19968: jis0212<<14 | 0x31<<7 | 0x15, - 31631 - 19968: jis0208<<14 | 0x43<<7 | 0x16, - 31632 - 19968: jis0212<<14 | 0x31<<7 | 0x16, - 31633 - 19968: jis0212<<14 | 0x31<<7 | 0x17, - 31634 - 19968: jis0208<<14 | 0x43<<7 | 0x15, - 31636 - 19968: jis0208<<14 | 0x26<<7 | 0x52, - 31637 - 19968: jis0208<<14 | 0x2B<<7 | 0x06, - 31638 - 19968: jis0212<<14 | 0x31<<7 | 0x18, - 31639 - 19968: jis0208<<14 | 0x1A<<7 | 0x1A, - 31640 - 19968: jis0208<<14 | 0x43<<7 | 0x0F, - 31641 - 19968: jis0208<<14 | 0x43<<7 | 0x18, - 31642 - 19968: jis0208<<14 | 0x43<<7 | 0x13, - 31643 - 19968: jis0212<<14 | 0x31<<7 | 0x19, - 31644 - 19968: jis0208<<14 | 0x43<<7 | 0x12, - 31645 - 19968: jis0208<<14 | 0x43<<7 | 0x0E, - 31646 - 19968: jis0208<<14 | 0x5A<<7 | 0x2B, - 31647 - 19968: jis0208<<14 | 0x43<<7 | 0x10, - 31648 - 19968: jis0212<<14 | 0x31<<7 | 0x1B, - 31649 - 19968: jis0208<<14 | 0x13<<7 | 0x28, - 31653 - 19968: jis0212<<14 | 0x31<<7 | 0x1C, - 31658 - 19968: jis0208<<14 | 0x22<<7 | 0x1C, - 31660 - 19968: jis0212<<14 | 0x31<<7 | 0x1D, - 31661 - 19968: jis0208<<14 | 0x1F<<7 | 0x5C, - 31663 - 19968: jis0212<<14 | 0x31<<7 | 0x1E, - 31664 - 19968: jis0212<<14 | 0x31<<7 | 0x1F, - 31665 - 19968: jis0208<<14 | 0x27<<7 | 0x01, - 31666 - 19968: jis0212<<14 | 0x31<<7 | 0x20, - 31668 - 19968: jis0208<<14 | 0x43<<7 | 0x1D, - 31669 - 19968: jis0212<<14 | 0x31<<7 | 0x21, - 31670 - 19968: jis0212<<14 | 0x31<<7 | 0x22, - 31672 - 19968: jis0208<<14 | 0x27<<7 | 0x03, - 31674 - 19968: jis0212<<14 | 0x31<<7 | 0x23, - 31675 - 19968: jis0212<<14 | 0x31<<7 | 0x24, - 31676 - 19968: jis0212<<14 | 0x31<<7 | 0x25, - 31677 - 19968: jis0212<<14 | 0x31<<7 | 0x26, - 31680 - 19968: jis0208<<14 | 0x1F<<7 | 0x40, - 31681 - 19968: jis0208<<14 | 0x43<<7 | 0x1A, - 31682 - 19968: jis0212<<14 | 0x31<<7 | 0x27, - 31684 - 19968: jis0208<<14 | 0x27<<7 | 0x2E, - 31685 - 19968: jis0212<<14 | 0x31<<7 | 0x28, - 31686 - 19968: jis0208<<14 | 0x43<<7 | 0x1E, - 31687 - 19968: jis0208<<14 | 0x29<<7 | 0x32, - 31688 - 19968: jis0212<<14 | 0x31<<7 | 0x29, - 31689 - 19968: jis0208<<14 | 0x22<<7 | 0x3A, - 31690 - 19968: jis0212<<14 | 0x31<<7 | 0x2A, - 31691 - 19968: jis0208<<14 | 0x43<<7 | 0x19, - 31692 - 19968: jis0208<<14 | 0x43<<7 | 0x1B, - 31695 - 19968: jis0208<<14 | 0x43<<7 | 0x1C, - 31700 - 19968: jis0212<<14 | 0x31<<7 | 0x2B, - 31702 - 19968: jis0212<<14 | 0x31<<7 | 0x2C, - 31703 - 19968: jis0212<<14 | 0x31<<7 | 0x2D, - 31705 - 19968: jis0212<<14 | 0x31<<7 | 0x2E, - 31706 - 19968: jis0212<<14 | 0x31<<7 | 0x2F, - 31707 - 19968: jis0212<<14 | 0x31<<7 | 0x30, - 31709 - 19968: jis0208<<14 | 0x43<<7 | 0x1F, - 31712 - 19968: jis0208<<14 | 0x1B<<7 | 0x23, - 31716 - 19968: jis0208<<14 | 0x25<<7 | 0x25, - 31717 - 19968: jis0208<<14 | 0x43<<7 | 0x24, - 31718 - 19968: jis0208<<14 | 0x43<<7 | 0x23, - 31720 - 19968: jis0212<<14 | 0x31<<7 | 0x31, - 31721 - 19968: jis0208<<14 | 0x43<<7 | 0x20, - 31722 - 19968: jis0212<<14 | 0x31<<7 | 0x32, - 31725 - 19968: jis0208<<14 | 0x2E<<7 | 0x15, - 31730 - 19968: jis0212<<14 | 0x31<<7 | 0x33, - 31731 - 19968: jis0208<<14 | 0x43<<7 | 0x29, - 31732 - 19968: jis0212<<14 | 0x31<<7 | 0x34, - 31733 - 19968: jis0212<<14 | 0x31<<7 | 0x35, - 31734 - 19968: jis0208<<14 | 0x43<<7 | 0x2D, - 31735 - 19968: jis0208<<14 | 0x43<<7 | 0x2A, - 31736 - 19968: jis0212<<14 | 0x31<<7 | 0x36, - 31737 - 19968: jis0212<<14 | 0x31<<7 | 0x37, - 31738 - 19968: jis0212<<14 | 0x31<<7 | 0x38, - 31740 - 19968: jis0212<<14 | 0x31<<7 | 0x39, - 31742 - 19968: jis0212<<14 | 0x31<<7 | 0x3A, - 31744 - 19968: jis0208<<14 | 0x43<<7 | 0x26, - 31745 - 19968: jis0212<<14 | 0x31<<7 | 0x3B, - 31746 - 19968: jis0212<<14 | 0x31<<7 | 0x3C, - 31747 - 19968: jis0212<<14 | 0x31<<7 | 0x3D, - 31748 - 19968: jis0212<<14 | 0x31<<7 | 0x3E, - 31750 - 19968: jis0212<<14 | 0x31<<7 | 0x3F, - 31751 - 19968: jis0208<<14 | 0x43<<7 | 0x27, - 31753 - 19968: jis0212<<14 | 0x31<<7 | 0x40, - 31755 - 19968: jis0212<<14 | 0x31<<7 | 0x41, - 31756 - 19968: jis0212<<14 | 0x31<<7 | 0x42, - 31757 - 19968: jis0208<<14 | 0x43<<7 | 0x2C, - 31758 - 19968: jis0212<<14 | 0x31<<7 | 0x43, - 31759 - 19968: jis0212<<14 | 0x31<<7 | 0x44, - 31761 - 19968: jis0208<<14 | 0x43<<7 | 0x21, - 31762 - 19968: jis0208<<14 | 0x31<<7 | 0x34, - 31763 - 19968: jis0208<<14 | 0x43<<7 | 0x28, - 31764 - 19968: jis0208<<14 | 0x43<<7 | 0x22, - 31767 - 19968: jis0208<<14 | 0x43<<7 | 0x2B, - 31769 - 19968: jis0212<<14 | 0x31<<7 | 0x45, - 31771 - 19968: jis0212<<14 | 0x31<<7 | 0x46, - 31775 - 19968: jis0208<<14 | 0x43<<7 | 0x31, - 31776 - 19968: jis0212<<14 | 0x31<<7 | 0x47, - 31777 - 19968: jis0208<<14 | 0x13<<7 | 0x29, - 31779 - 19968: jis0208<<14 | 0x43<<7 | 0x2E, - 31781 - 19968: jis0212<<14 | 0x31<<7 | 0x48, - 31782 - 19968: jis0212<<14 | 0x31<<7 | 0x49, - 31783 - 19968: jis0208<<14 | 0x43<<7 | 0x2F, - 31784 - 19968: jis0212<<14 | 0x31<<7 | 0x4A, - 31786 - 19968: jis0208<<14 | 0x43<<7 | 0x30, - 31787 - 19968: jis0208<<14 | 0x43<<7 | 0x33, - 31788 - 19968: jis0212<<14 | 0x31<<7 | 0x4B, - 31793 - 19968: jis0212<<14 | 0x31<<7 | 0x4C, - 31795 - 19968: jis0212<<14 | 0x31<<7 | 0x4D, - 31796 - 19968: jis0212<<14 | 0x31<<7 | 0x4E, - 31798 - 19968: jis0212<<14 | 0x31<<7 | 0x4F, - 31799 - 19968: jis0208<<14 | 0x43<<7 | 0x32, - 31800 - 19968: jis0208<<14 | 0x27<<7 | 0x55, - 31801 - 19968: jis0212<<14 | 0x31<<7 | 0x50, - 31802 - 19968: jis0212<<14 | 0x31<<7 | 0x51, - 31805 - 19968: jis0208<<14 | 0x43<<7 | 0x34, - 31806 - 19968: jis0208<<14 | 0x2D<<7 | 0x5B, - 31807 - 19968: jis0208<<14 | 0x29<<7 | 0x4C, - 31808 - 19968: jis0208<<14 | 0x43<<7 | 0x39, - 31811 - 19968: jis0208<<14 | 0x43<<7 | 0x36, - 31814 - 19968: jis0212<<14 | 0x31<<7 | 0x52, - 31818 - 19968: jis0212<<14 | 0x31<<7 | 0x53, - 31820 - 19968: jis0208<<14 | 0x43<<7 | 0x35, - 31821 - 19968: jis0208<<14 | 0x1F<<7 | 0x31, - 31823 - 19968: jis0208<<14 | 0x43<<7 | 0x38, - 31824 - 19968: jis0208<<14 | 0x43<<7 | 0x3A, - 31825 - 19968: jis0212<<14 | 0x31<<7 | 0x55, - 31826 - 19968: jis0212<<14 | 0x31<<7 | 0x56, - 31827 - 19968: jis0212<<14 | 0x31<<7 | 0x57, - 31828 - 19968: jis0208<<14 | 0x43<<7 | 0x37, - 31829 - 19968: jis0212<<14 | 0x31<<7 | 0x54, - 31830 - 19968: jis0208<<14 | 0x43<<7 | 0x3E, - 31832 - 19968: jis0208<<14 | 0x43<<7 | 0x3B, - 31833 - 19968: jis0212<<14 | 0x31<<7 | 0x58, - 31834 - 19968: jis0212<<14 | 0x31<<7 | 0x59, - 31835 - 19968: jis0212<<14 | 0x31<<7 | 0x5A, - 31836 - 19968: jis0212<<14 | 0x31<<7 | 0x5B, - 31837 - 19968: jis0212<<14 | 0x31<<7 | 0x5C, - 31838 - 19968: jis0212<<14 | 0x31<<7 | 0x5D, - 31839 - 19968: jis0208<<14 | 0x43<<7 | 0x3C, - 31840 - 19968: jis0208<<14 | 0x43<<7 | 0x25, - 31841 - 19968: jis0212<<14 | 0x32<<7 | 0x00, - 31843 - 19968: jis0212<<14 | 0x32<<7 | 0x01, - 31844 - 19968: jis0208<<14 | 0x43<<7 | 0x3D, - 31845 - 19968: jis0208<<14 | 0x43<<7 | 0x3F, - 31847 - 19968: jis0212<<14 | 0x32<<7 | 0x02, - 31849 - 19968: jis0212<<14 | 0x32<<7 | 0x03, - 31852 - 19968: jis0208<<14 | 0x43<<7 | 0x40, - 31853 - 19968: jis0212<<14 | 0x32<<7 | 0x04, - 31854 - 19968: jis0212<<14 | 0x32<<7 | 0x05, - 31856 - 19968: jis0212<<14 | 0x32<<7 | 0x06, - 31858 - 19968: jis0212<<14 | 0x32<<7 | 0x07, - 31859 - 19968: jis0208<<14 | 0x29<<7 | 0x25, - 31861 - 19968: jis0208<<14 | 0x43<<7 | 0x41, - 31865 - 19968: jis0212<<14 | 0x32<<7 | 0x08, - 31868 - 19968: jis0212<<14 | 0x32<<7 | 0x09, - 31869 - 19968: jis0212<<14 | 0x32<<7 | 0x0A, - 31870 - 19968: jis0208<<14 | 0x2B<<7 | 0x41, - 31873 - 19968: jis0208<<14 | 0x15<<7 | 0x2D, - 31874 - 19968: jis0208<<14 | 0x16<<7 | 0x08, - 31875 - 19968: jis0208<<14 | 0x43<<7 | 0x42, - 31878 - 19968: jis0212<<14 | 0x32<<7 | 0x0B, - 31879 - 19968: jis0212<<14 | 0x32<<7 | 0x0C, - 31881 - 19968: jis0208<<14 | 0x29<<7 | 0x13, - 31883 - 19968: jis0208<<14 | 0x1E<<7 | 0x47, - 31885 - 19968: jis0208<<14 | 0x2B<<7 | 0x0F, - 31887 - 19968: jis0212<<14 | 0x32<<7 | 0x0D, - 31888 - 19968: jis0208<<14 | 0x43<<7 | 0x43, - 31890 - 19968: jis0208<<14 | 0x2D<<7 | 0x12, - 31892 - 19968: jis0212<<14 | 0x32<<7 | 0x0E, - 31893 - 19968: jis0208<<14 | 0x26<<7 | 0x53, - 31895 - 19968: jis0208<<14 | 0x20<<7 | 0x25, - 31896 - 19968: jis0208<<14 | 0x26<<7 | 0x13, - 31899 - 19968: jis0208<<14 | 0x1C<<7 | 0x2C, - 31902 - 19968: jis0212<<14 | 0x32<<7 | 0x0F, - 31903 - 19968: jis0208<<14 | 0x0F<<7 | 0x1F, - 31904 - 19968: jis0212<<14 | 0x32<<7 | 0x10, - 31905 - 19968: jis0208<<14 | 0x43<<7 | 0x48, - 31906 - 19968: jis0208<<14 | 0x43<<7 | 0x46, - 31908 - 19968: jis0208<<14 | 0x43<<7 | 0x44, - 31909 - 19968: jis0208<<14 | 0x13<<7 | 0x00, - 31910 - 19968: jis0212<<14 | 0x32<<7 | 0x11, - 31911 - 19968: jis0208<<14 | 0x1D<<7 | 0x30, - 31912 - 19968: jis0208<<14 | 0x43<<7 | 0x49, - 31915 - 19968: jis0208<<14 | 0x43<<7 | 0x47, - 31917 - 19968: jis0208<<14 | 0x43<<7 | 0x45, - 31918 - 19968: jis0208<<14 | 0x43<<7 | 0x4D, - 31920 - 19968: jis0212<<14 | 0x32<<7 | 0x12, - 31921 - 19968: jis0208<<14 | 0x43<<7 | 0x4C, - 31922 - 19968: jis0208<<14 | 0x43<<7 | 0x4B, - 31923 - 19968: jis0208<<14 | 0x43<<7 | 0x4A, - 31926 - 19968: jis0212<<14 | 0x32<<7 | 0x13, - 31927 - 19968: jis0212<<14 | 0x32<<7 | 0x14, - 31929 - 19968: jis0208<<14 | 0x43<<7 | 0x4E, - 31930 - 19968: jis0212<<14 | 0x32<<7 | 0x15, - 31931 - 19968: jis0212<<14 | 0x32<<7 | 0x16, - 31932 - 19968: jis0212<<14 | 0x32<<7 | 0x17, - 31933 - 19968: jis0208<<14 | 0x43<<7 | 0x4F, - 31934 - 19968: jis0208<<14 | 0x1F<<7 | 0x19, - 31935 - 19968: jis0212<<14 | 0x32<<7 | 0x18, - 31936 - 19968: jis0208<<14 | 0x43<<7 | 0x50, - 31938 - 19968: jis0208<<14 | 0x43<<7 | 0x52, - 31940 - 19968: jis0212<<14 | 0x32<<7 | 0x19, - 31941 - 19968: jis0208<<14 | 0x43<<7 | 0x51, - 31943 - 19968: jis0212<<14 | 0x32<<7 | 0x1A, - 31944 - 19968: jis0212<<14 | 0x32<<7 | 0x1B, - 31945 - 19968: jis0212<<14 | 0x32<<7 | 0x1C, - 31946 - 19968: jis0208<<14 | 0x17<<7 | 0x31, - 31949 - 19968: jis0212<<14 | 0x32<<7 | 0x1D, - 31950 - 19968: jis0208<<14 | 0x20<<7 | 0x17, - 31951 - 19968: jis0212<<14 | 0x32<<7 | 0x1E, - 31954 - 19968: jis0208<<14 | 0x43<<7 | 0x54, - 31955 - 19968: jis0212<<14 | 0x32<<7 | 0x1F, - 31956 - 19968: jis0212<<14 | 0x32<<7 | 0x20, - 31957 - 19968: jis0212<<14 | 0x32<<7 | 0x21, - 31958 - 19968: jis0208<<14 | 0x24<<7 | 0x5B, - 31959 - 19968: jis0212<<14 | 0x32<<7 | 0x22, - 31960 - 19968: jis0208<<14 | 0x43<<7 | 0x53, - 31961 - 19968: jis0212<<14 | 0x32<<7 | 0x23, - 31962 - 19968: jis0212<<14 | 0x32<<7 | 0x24, - 31964 - 19968: jis0208<<14 | 0x43<<7 | 0x55, - 31965 - 19968: jis0212<<14 | 0x32<<7 | 0x25, - 31966 - 19968: jis0208<<14 | 0x29<<7 | 0x14, - 31967 - 19968: jis0208<<14 | 0x20<<7 | 0x4B, - 31968 - 19968: jis0208<<14 | 0x18<<7 | 0x26, - 31970 - 19968: jis0208<<14 | 0x43<<7 | 0x56, - 31974 - 19968: jis0212<<14 | 0x32<<7 | 0x26, - 31975 - 19968: jis0208<<14 | 0x2D<<7 | 0x27, - 31977 - 19968: jis0212<<14 | 0x32<<7 | 0x27, - 31979 - 19968: jis0212<<14 | 0x32<<7 | 0x28, - 31983 - 19968: jis0208<<14 | 0x43<<7 | 0x58, - 31986 - 19968: jis0208<<14 | 0x43<<7 | 0x59, - 31988 - 19968: jis0208<<14 | 0x43<<7 | 0x5A, - 31989 - 19968: jis0212<<14 | 0x32<<7 | 0x29, - 31990 - 19968: jis0208<<14 | 0x43<<7 | 0x5B, - 31992 - 19968: jis0208<<14 | 0x1A<<7 | 0x44, - 31994 - 19968: jis0208<<14 | 0x43<<7 | 0x5C, - 31995 - 19968: jis0208<<14 | 0x16<<7 | 0x2E, - 31998 - 19968: jis0208<<14 | 0x14<<7 | 0x49, - 32000 - 19968: jis0208<<14 | 0x14<<7 | 0x09, - 32002 - 19968: jis0208<<14 | 0x44<<7 | 0x00, - 32003 - 19968: jis0212<<14 | 0x32<<7 | 0x2A, - 32004 - 19968: jis0208<<14 | 0x2B<<7 | 0x52, - 32005 - 19968: jis0208<<14 | 0x18<<7 | 0x27, - 32006 - 19968: jis0208<<14 | 0x43<<7 | 0x5D, - 32007 - 19968: jis0212<<14 | 0x32<<7 | 0x2B, - 32008 - 19968: jis0212<<14 | 0x32<<7 | 0x2C, - 32009 - 19968: jis0212<<14 | 0x32<<7 | 0x2D, - 32010 - 19968: jis0208<<14 | 0x44<<7 | 0x03, - 32011 - 19968: jis0208<<14 | 0x2B<<7 | 0x45, - 32013 - 19968: jis0208<<14 | 0x26<<7 | 0x1B, - 32015 - 19968: jis0212<<14 | 0x32<<7 | 0x2E, - 32016 - 19968: jis0208<<14 | 0x28<<7 | 0x12, - 32017 - 19968: jis0212<<14 | 0x32<<7 | 0x2F, - 32018 - 19968: jis0212<<14 | 0x32<<7 | 0x30, - 32019 - 19968: jis0212<<14 | 0x32<<7 | 0x31, - 32020 - 19968: jis0208<<14 | 0x1C<<7 | 0x42, - 32021 - 19968: jis0208<<14 | 0x44<<7 | 0x02, - 32022 - 19968: jis0212<<14 | 0x32<<7 | 0x32, - 32023 - 19968: jis0208<<14 | 0x1B<<7 | 0x32, - 32024 - 19968: jis0208<<14 | 0x18<<7 | 0x28, - 32025 - 19968: jis0208<<14 | 0x1A<<7 | 0x45, - 32026 - 19968: jis0208<<14 | 0x14<<7 | 0x48, - 32027 - 19968: jis0208<<14 | 0x29<<7 | 0x15, - 32028 - 19968: jis0208<<14 | 0x44<<7 | 0x01, - 32029 - 19968: jis0212<<14 | 0x32<<7 | 0x33, - 32030 - 19968: jis0212<<14 | 0x32<<7 | 0x34, - 32032 - 19968: jis0208<<14 | 0x20<<7 | 0x26, - 32033 - 19968: jis0208<<14 | 0x2A<<7 | 0x21, - 32034 - 19968: jis0208<<14 | 0x19<<7 | 0x56, - 32035 - 19968: jis0212<<14 | 0x32<<7 | 0x35, - 32038 - 19968: jis0212<<14 | 0x32<<7 | 0x36, - 32042 - 19968: jis0212<<14 | 0x32<<7 | 0x37, - 32043 - 19968: jis0208<<14 | 0x1A<<7 | 0x46, - 32044 - 19968: jis0208<<14 | 0x23<<7 | 0x3C, - 32045 - 19968: jis0212<<14 | 0x32<<7 | 0x38, - 32046 - 19968: jis0208<<14 | 0x44<<7 | 0x06, - 32047 - 19968: jis0208<<14 | 0x2D<<7 | 0x3E, - 32048 - 19968: jis0208<<14 | 0x19<<7 | 0x38, - 32049 - 19968: jis0212<<14 | 0x32<<7 | 0x39, - 32050 - 19968: jis0208<<14 | 0x44<<7 | 0x07, - 32051 - 19968: jis0208<<14 | 0x1E<<7 | 0x21, - 32053 - 19968: jis0208<<14 | 0x44<<7 | 0x09, - 32057 - 19968: jis0208<<14 | 0x1D<<7 | 0x31, - 32058 - 19968: jis0208<<14 | 0x19<<7 | 0x0F, - 32060 - 19968: jis0212<<14 | 0x32<<7 | 0x3A, - 32061 - 19968: jis0212<<14 | 0x32<<7 | 0x3B, - 32062 - 19968: jis0212<<14 | 0x32<<7 | 0x3C, - 32063 - 19968: jis0208<<14 | 0x44<<7 | 0x08, - 32064 - 19968: jis0212<<14 | 0x32<<7 | 0x3D, - 32065 - 19968: jis0212<<14 | 0x32<<7 | 0x3E, - 32066 - 19968: jis0208<<14 | 0x1C<<7 | 0x09, - 32067 - 19968: jis0208<<14 | 0x17<<7 | 0x1D, - 32068 - 19968: jis0208<<14 | 0x20<<7 | 0x27, - 32069 - 19968: jis0208<<14 | 0x44<<7 | 0x04, - 32070 - 19968: jis0208<<14 | 0x44<<7 | 0x0A, - 32071 - 19968: jis0212<<14 | 0x32<<7 | 0x3F, - 32072 - 19968: jis0208<<14 | 0x5A<<7 | 0x2D, - 32075 - 19968: jis0208<<14 | 0x44<<7 | 0x05, - 32076 - 19968: jis0208<<14 | 0x16<<7 | 0x2F, - 32077 - 19968: jis0212<<14 | 0x32<<7 | 0x41, - 32078 - 19968: jis0208<<14 | 0x44<<7 | 0x0D, - 32079 - 19968: jis0208<<14 | 0x44<<7 | 0x11, - 32080 - 19968: jis0208<<14 | 0x16<<7 | 0x4A, - 32081 - 19968: jis0212<<14 | 0x32<<7 | 0x42, - 32083 - 19968: jis0212<<14 | 0x32<<7 | 0x43, - 32086 - 19968: jis0208<<14 | 0x44<<7 | 0x0C, - 32087 - 19968: jis0212<<14 | 0x32<<7 | 0x44, - 32089 - 19968: jis0212<<14 | 0x32<<7 | 0x45, - 32090 - 19968: jis0212<<14 | 0x32<<7 | 0x46, - 32091 - 19968: jis0208<<14 | 0x44<<7 | 0x15, - 32092 - 19968: jis0208<<14 | 0x5A<<7 | 0x2E, - 32093 - 19968: jis0212<<14 | 0x32<<7 | 0x48, - 32094 - 19968: jis0208<<14 | 0x18<<7 | 0x29, - 32097 - 19968: jis0208<<14 | 0x2C<<7 | 0x4C, - 32098 - 19968: jis0208<<14 | 0x0F<<7 | 0x1B, - 32099 - 19968: jis0208<<14 | 0x44<<7 | 0x12, - 32101 - 19968: jis0212<<14 | 0x32<<7 | 0x49, - 32102 - 19968: jis0208<<14 | 0x14<<7 | 0x4A, - 32103 - 19968: jis0212<<14 | 0x32<<7 | 0x4A, - 32104 - 19968: jis0208<<14 | 0x44<<7 | 0x0F, - 32106 - 19968: jis0212<<14 | 0x32<<7 | 0x4B, - 32110 - 19968: jis0208<<14 | 0x44<<7 | 0x10, - 32112 - 19968: jis0212<<14 | 0x32<<7 | 0x4C, - 32113 - 19968: jis0208<<14 | 0x24<<7 | 0x5C, - 32114 - 19968: jis0208<<14 | 0x44<<7 | 0x0E, - 32115 - 19968: jis0208<<14 | 0x44<<7 | 0x0B, - 32117 - 19968: jis0208<<14 | 0x12<<7 | 0x07, - 32118 - 19968: jis0208<<14 | 0x1F<<7 | 0x43, - 32120 - 19968: jis0212<<14 | 0x32<<7 | 0x4D, - 32121 - 19968: jis0208<<14 | 0x17<<7 | 0x07, - 32122 - 19968: jis0212<<14 | 0x32<<7 | 0x4E, - 32123 - 19968: jis0212<<14 | 0x32<<7 | 0x4F, - 32125 - 19968: jis0208<<14 | 0x44<<7 | 0x17, - 32127 - 19968: jis0212<<14 | 0x32<<7 | 0x50, - 32129 - 19968: jis0212<<14 | 0x32<<7 | 0x51, - 32130 - 19968: jis0212<<14 | 0x32<<7 | 0x52, - 32131 - 19968: jis0212<<14 | 0x32<<7 | 0x53, - 32133 - 19968: jis0212<<14 | 0x32<<7 | 0x54, - 32134 - 19968: jis0212<<14 | 0x32<<7 | 0x55, - 32136 - 19968: jis0212<<14 | 0x32<<7 | 0x56, - 32137 - 19968: jis0208<<14 | 0x44<<7 | 0x14, - 32139 - 19968: jis0212<<14 | 0x32<<7 | 0x57, - 32140 - 19968: jis0212<<14 | 0x32<<7 | 0x58, - 32141 - 19968: jis0212<<14 | 0x32<<7 | 0x59, - 32143 - 19968: jis0208<<14 | 0x44<<7 | 0x16, - 32145 - 19968: jis0212<<14 | 0x32<<7 | 0x5A, - 32147 - 19968: jis0208<<14 | 0x44<<7 | 0x13, - 32150 - 19968: jis0212<<14 | 0x32<<7 | 0x5B, - 32151 - 19968: jis0212<<14 | 0x32<<7 | 0x5C, - 32153 - 19968: jis0208<<14 | 0x16<<7 | 0x30, - 32154 - 19968: jis0208<<14 | 0x21<<7 | 0x12, - 32155 - 19968: jis0208<<14 | 0x44<<7 | 0x18, - 32156 - 19968: jis0208<<14 | 0x20<<7 | 0x4D, - 32157 - 19968: jis0212<<14 | 0x32<<7 | 0x5D, - 32158 - 19968: jis0212<<14 | 0x33<<7 | 0x00, - 32159 - 19968: jis0208<<14 | 0x44<<7 | 0x25, - 32160 - 19968: jis0208<<14 | 0x5A<<7 | 0x30, - 32162 - 19968: jis0208<<14 | 0x44<<7 | 0x21, - 32163 - 19968: jis0208<<14 | 0x44<<7 | 0x1B, - 32166 - 19968: jis0212<<14 | 0x33<<7 | 0x01, - 32167 - 19968: jis0212<<14 | 0x33<<7 | 0x02, - 32170 - 19968: jis0212<<14 | 0x33<<7 | 0x03, - 32171 - 19968: jis0208<<14 | 0x44<<7 | 0x1F, - 32172 - 19968: jis0208<<14 | 0x1B<<7 | 0x59, - 32173 - 19968: jis0208<<14 | 0x0F<<7 | 0x3C, - 32174 - 19968: jis0208<<14 | 0x44<<7 | 0x1A, - 32175 - 19968: jis0208<<14 | 0x44<<7 | 0x22, - 32176 - 19968: jis0208<<14 | 0x44<<7 | 0x26, - 32177 - 19968: jis0208<<14 | 0x18<<7 | 0x2A, - 32178 - 19968: jis0208<<14 | 0x2B<<7 | 0x35, - 32179 - 19968: jis0212<<14 | 0x33<<7 | 0x04, - 32180 - 19968: jis0208<<14 | 0x23<<7 | 0x35, - 32181 - 19968: jis0208<<14 | 0x44<<7 | 0x1C, - 32182 - 19968: jis0212<<14 | 0x33<<7 | 0x05, - 32183 - 19968: jis0208<<14 | 0x5A<<7 | 0x2F, - 32184 - 19968: jis0208<<14 | 0x44<<7 | 0x24, - 32185 - 19968: jis0212<<14 | 0x33<<7 | 0x07, - 32186 - 19968: jis0208<<14 | 0x44<<7 | 0x19, - 32187 - 19968: jis0208<<14 | 0x22<<7 | 0x1D, - 32189 - 19968: jis0208<<14 | 0x44<<7 | 0x1E, - 32190 - 19968: jis0208<<14 | 0x0F<<7 | 0x1C, - 32191 - 19968: jis0208<<14 | 0x2B<<7 | 0x29, - 32194 - 19968: jis0212<<14 | 0x33<<7 | 0x08, - 32195 - 19968: jis0212<<14 | 0x33<<7 | 0x09, - 32196 - 19968: jis0212<<14 | 0x33<<7 | 0x0A, - 32197 - 19968: jis0212<<14 | 0x33<<7 | 0x0B, - 32198 - 19968: jis0212<<14 | 0x33<<7 | 0x0C, - 32199 - 19968: jis0208<<14 | 0x44<<7 | 0x1D, - 32202 - 19968: jis0208<<14 | 0x15<<7 | 0x3A, - 32203 - 19968: jis0208<<14 | 0x27<<7 | 0x4B, - 32204 - 19968: jis0212<<14 | 0x33<<7 | 0x0D, - 32205 - 19968: jis0212<<14 | 0x33<<7 | 0x0E, - 32206 - 19968: jis0212<<14 | 0x33<<7 | 0x0F, - 32207 - 19968: jis0208<<14 | 0x20<<7 | 0x4C, - 32209 - 19968: jis0208<<14 | 0x2D<<7 | 0x2F, - 32210 - 19968: jis0208<<14 | 0x1C<<7 | 0x4E, - 32213 - 19968: jis0208<<14 | 0x44<<7 | 0x4D, - 32214 - 19968: jis0208<<14 | 0x5A<<7 | 0x31, - 32215 - 19968: jis0212<<14 | 0x33<<7 | 0x10, - 32216 - 19968: jis0208<<14 | 0x44<<7 | 0x27, - 32217 - 19968: jis0212<<14 | 0x33<<7 | 0x11, - 32218 - 19968: jis0208<<14 | 0x1F<<7 | 0x5D, - 32220 - 19968: jis0208<<14 | 0x44<<7 | 0x23, - 32221 - 19968: jis0208<<14 | 0x44<<7 | 0x28, - 32222 - 19968: jis0208<<14 | 0x44<<7 | 0x2A, - 32224 - 19968: jis0208<<14 | 0x23<<7 | 0x58, - 32225 - 19968: jis0208<<14 | 0x44<<7 | 0x2D, - 32226 - 19968: jis0212<<14 | 0x33<<7 | 0x13, - 32228 - 19968: jis0208<<14 | 0x44<<7 | 0x29, - 32229 - 19968: jis0212<<14 | 0x33<<7 | 0x14, - 32230 - 19968: jis0212<<14 | 0x33<<7 | 0x15, - 32232 - 19968: jis0208<<14 | 0x29<<7 | 0x33, - 32233 - 19968: jis0208<<14 | 0x13<<7 | 0x2A, - 32234 - 19968: jis0212<<14 | 0x33<<7 | 0x16, - 32235 - 19968: jis0212<<14 | 0x33<<7 | 0x17, - 32236 - 19968: jis0208<<14 | 0x2B<<7 | 0x2A, - 32237 - 19968: jis0212<<14 | 0x33<<7 | 0x18, - 32239 - 19968: jis0208<<14 | 0x0F<<7 | 0x3D, - 32241 - 19968: jis0212<<14 | 0x33<<7 | 0x19, - 32242 - 19968: jis0208<<14 | 0x44<<7 | 0x2C, - 32244 - 19968: jis0208<<14 | 0x2D<<7 | 0x5C, - 32245 - 19968: jis0212<<14 | 0x33<<7 | 0x1A, - 32246 - 19968: jis0212<<14 | 0x33<<7 | 0x1B, - 32249 - 19968: jis0212<<14 | 0x33<<7 | 0x1C, - 32250 - 19968: jis0212<<14 | 0x33<<7 | 0x1D, - 32251 - 19968: jis0208<<14 | 0x44<<7 | 0x2B, - 32256 - 19968: jis0212<<14 | 0x33<<7 | 0x12, - 32257 - 19968: jis0208<<14 | 0x10<<7 | 0x4E, - 32260 - 19968: jis0208<<14 | 0x25<<7 | 0x4B, - 32261 - 19968: jis0208<<14 | 0x44<<7 | 0x2E, - 32264 - 19968: jis0212<<14 | 0x33<<7 | 0x1E, - 32265 - 19968: jis0208<<14 | 0x44<<7 | 0x35, - 32266 - 19968: jis0208<<14 | 0x44<<7 | 0x2F, - 32267 - 19968: jis0208<<14 | 0x44<<7 | 0x36, - 32272 - 19968: jis0212<<14 | 0x33<<7 | 0x1F, - 32273 - 19968: jis0212<<14 | 0x33<<7 | 0x20, - 32274 - 19968: jis0208<<14 | 0x44<<7 | 0x32, - 32277 - 19968: jis0212<<14 | 0x33<<7 | 0x21, - 32279 - 19968: jis0212<<14 | 0x33<<7 | 0x22, - 32283 - 19968: jis0208<<14 | 0x26<<7 | 0x5A, - 32284 - 19968: jis0212<<14 | 0x33<<7 | 0x23, - 32285 - 19968: jis0212<<14 | 0x33<<7 | 0x24, - 32286 - 19968: jis0208<<14 | 0x1B<<7 | 0x29, - 32287 - 19968: jis0208<<14 | 0x44<<7 | 0x34, - 32288 - 19968: jis0212<<14 | 0x33<<7 | 0x25, - 32289 - 19968: jis0208<<14 | 0x44<<7 | 0x31, - 32290 - 19968: jis0208<<14 | 0x44<<7 | 0x37, - 32291 - 19968: jis0208<<14 | 0x44<<7 | 0x30, - 32294 - 19968: jis0208<<14 | 0x1C<<7 | 0x23, - 32295 - 19968: jis0212<<14 | 0x33<<7 | 0x26, - 32296 - 19968: jis0212<<14 | 0x33<<7 | 0x27, - 32299 - 19968: jis0208<<14 | 0x2A<<7 | 0x04, - 32300 - 19968: jis0212<<14 | 0x33<<7 | 0x28, - 32301 - 19968: jis0212<<14 | 0x33<<7 | 0x29, - 32302 - 19968: jis0208<<14 | 0x1C<<7 | 0x2B, - 32303 - 19968: jis0212<<14 | 0x33<<7 | 0x2A, - 32305 - 19968: jis0208<<14 | 0x44<<7 | 0x33, - 32306 - 19968: jis0208<<14 | 0x44<<7 | 0x3F, - 32307 - 19968: jis0212<<14 | 0x33<<7 | 0x2B, - 32309 - 19968: jis0208<<14 | 0x44<<7 | 0x3B, - 32310 - 19968: jis0212<<14 | 0x33<<7 | 0x2C, - 32311 - 19968: jis0208<<14 | 0x44<<7 | 0x3E, - 32313 - 19968: jis0208<<14 | 0x44<<7 | 0x3C, - 32314 - 19968: jis0208<<14 | 0x44<<7 | 0x40, - 32315 - 19968: jis0208<<14 | 0x44<<7 | 0x3A, - 32317 - 19968: jis0208<<14 | 0x44<<7 | 0x20, - 32318 - 19968: jis0208<<14 | 0x1F<<7 | 0x32, - 32319 - 19968: jis0212<<14 | 0x33<<7 | 0x2D, - 32321 - 19968: jis0208<<14 | 0x27<<7 | 0x2A, - 32323 - 19968: jis0208<<14 | 0x44<<7 | 0x3D, - 32324 - 19968: jis0212<<14 | 0x33<<7 | 0x2E, - 32325 - 19968: jis0212<<14 | 0x33<<7 | 0x2F, - 32326 - 19968: jis0208<<14 | 0x44<<7 | 0x38, - 32327 - 19968: jis0212<<14 | 0x33<<7 | 0x30, - 32330 - 19968: jis0208<<14 | 0x20<<7 | 0x00, - 32331 - 19968: jis0208<<14 | 0x16<<7 | 0x31, - 32333 - 19968: jis0208<<14 | 0x1C<<7 | 0x0A, - 32334 - 19968: jis0212<<14 | 0x33<<7 | 0x31, - 32336 - 19968: jis0212<<14 | 0x33<<7 | 0x32, - 32338 - 19968: jis0208<<14 | 0x5A<<7 | 0x32, - 32340 - 19968: jis0208<<14 | 0x1E<<7 | 0x04, - 32341 - 19968: jis0208<<14 | 0x20<<7 | 0x15, - 32342 - 19968: jis0208<<14 | 0x44<<7 | 0x43, - 32344 - 19968: jis0212<<14 | 0x33<<7 | 0x34, - 32345 - 19968: jis0208<<14 | 0x44<<7 | 0x45, - 32346 - 19968: jis0208<<14 | 0x44<<7 | 0x46, - 32349 - 19968: jis0208<<14 | 0x44<<7 | 0x42, - 32350 - 19968: jis0208<<14 | 0x44<<7 | 0x44, - 32351 - 19968: jis0212<<14 | 0x33<<7 | 0x35, - 32353 - 19968: jis0212<<14 | 0x33<<7 | 0x36, - 32354 - 19968: jis0212<<14 | 0x33<<7 | 0x37, - 32357 - 19968: jis0212<<14 | 0x33<<7 | 0x38, - 32358 - 19968: jis0208<<14 | 0x44<<7 | 0x39, - 32359 - 19968: jis0208<<14 | 0x44<<7 | 0x41, - 32361 - 19968: jis0208<<14 | 0x44<<7 | 0x49, - 32362 - 19968: jis0208<<14 | 0x44<<7 | 0x48, - 32363 - 19968: jis0212<<14 | 0x33<<7 | 0x39, - 32365 - 19968: jis0208<<14 | 0x2A<<7 | 0x59, - 32366 - 19968: jis0212<<14 | 0x33<<7 | 0x3A, - 32367 - 19968: jis0212<<14 | 0x33<<7 | 0x3B, - 32368 - 19968: jis0208<<14 | 0x16<<7 | 0x0A, - 32371 - 19968: jis0212<<14 | 0x33<<7 | 0x3C, - 32376 - 19968: jis0212<<14 | 0x33<<7 | 0x3D, - 32377 - 19968: jis0208<<14 | 0x44<<7 | 0x47, - 32379 - 19968: jis0208<<14 | 0x44<<7 | 0x4B, - 32380 - 19968: jis0208<<14 | 0x44<<7 | 0x4A, - 32381 - 19968: jis0208<<14 | 0x44<<7 | 0x4E, - 32382 - 19968: jis0212<<14 | 0x33<<7 | 0x3E, - 32383 - 19968: jis0208<<14 | 0x44<<7 | 0x50, - 32385 - 19968: jis0212<<14 | 0x33<<7 | 0x3F, - 32386 - 19968: jis0208<<14 | 0x1A<<7 | 0x1B, - 32387 - 19968: jis0208<<14 | 0x44<<7 | 0x4C, - 32390 - 19968: jis0212<<14 | 0x33<<7 | 0x40, - 32391 - 19968: jis0212<<14 | 0x33<<7 | 0x41, - 32392 - 19968: jis0208<<14 | 0x44<<7 | 0x51, - 32393 - 19968: jis0208<<14 | 0x44<<7 | 0x52, - 32394 - 19968: jis0208<<14 | 0x58<<7 | 0x00, - 32396 - 19968: jis0208<<14 | 0x44<<7 | 0x53, - 32397 - 19968: jis0212<<14 | 0x33<<7 | 0x43, - 32398 - 19968: jis0208<<14 | 0x44<<7 | 0x59, - 32399 - 19968: jis0208<<14 | 0x24<<7 | 0x1A, - 32400 - 19968: jis0208<<14 | 0x44<<7 | 0x55, - 32401 - 19968: jis0212<<14 | 0x33<<7 | 0x44, - 32402 - 19968: jis0208<<14 | 0x44<<7 | 0x54, - 32403 - 19968: jis0208<<14 | 0x44<<7 | 0x56, - 32404 - 19968: jis0208<<14 | 0x44<<7 | 0x57, - 32405 - 19968: jis0212<<14 | 0x33<<7 | 0x45, - 32406 - 19968: jis0208<<14 | 0x44<<7 | 0x58, - 32408 - 19968: jis0212<<14 | 0x33<<7 | 0x46, - 32410 - 19968: jis0212<<14 | 0x33<<7 | 0x47, - 32411 - 19968: jis0208<<14 | 0x44<<7 | 0x5A, - 32412 - 19968: jis0208<<14 | 0x44<<7 | 0x5B, - 32413 - 19968: jis0212<<14 | 0x33<<7 | 0x48, - 32414 - 19968: jis0212<<14 | 0x33<<7 | 0x49, - 32566 - 19968: jis0208<<14 | 0x13<<7 | 0x2B, - 32568 - 19968: jis0208<<14 | 0x44<<7 | 0x5C, - 32570 - 19968: jis0208<<14 | 0x44<<7 | 0x5D, - 32571 - 19968: jis0212<<14 | 0x33<<7 | 0x4B, - 32572 - 19968: jis0212<<14 | 0x33<<7 | 0x4A, - 32573 - 19968: jis0212<<14 | 0x33<<7 | 0x4C, - 32574 - 19968: jis0212<<14 | 0x33<<7 | 0x4D, - 32575 - 19968: jis0212<<14 | 0x33<<7 | 0x4E, - 32579 - 19968: jis0212<<14 | 0x33<<7 | 0x4F, - 32580 - 19968: jis0212<<14 | 0x33<<7 | 0x50, - 32581 - 19968: jis0208<<14 | 0x45<<7 | 0x00, - 32583 - 19968: jis0208<<14 | 0x5A<<7 | 0x33, - 32588 - 19968: jis0208<<14 | 0x45<<7 | 0x01, - 32589 - 19968: jis0208<<14 | 0x45<<7 | 0x02, - 32590 - 19968: jis0208<<14 | 0x45<<7 | 0x03, - 32591 - 19968: jis0212<<14 | 0x33<<7 | 0x52, - 32592 - 19968: jis0208<<14 | 0x45<<7 | 0x04, - 32593 - 19968: jis0208<<14 | 0x45<<7 | 0x05, - 32594 - 19968: jis0212<<14 | 0x33<<7 | 0x53, - 32595 - 19968: jis0212<<14 | 0x33<<7 | 0x54, - 32596 - 19968: jis0208<<14 | 0x45<<7 | 0x07, - 32597 - 19968: jis0208<<14 | 0x45<<7 | 0x06, - 32600 - 19968: jis0208<<14 | 0x45<<7 | 0x08, - 32603 - 19968: jis0212<<14 | 0x33<<7 | 0x55, - 32604 - 19968: jis0212<<14 | 0x33<<7 | 0x56, - 32605 - 19968: jis0212<<14 | 0x33<<7 | 0x57, - 32607 - 19968: jis0208<<14 | 0x45<<7 | 0x09, - 32608 - 19968: jis0208<<14 | 0x45<<7 | 0x0A, - 32609 - 19968: jis0212<<14 | 0x33<<7 | 0x58, - 32611 - 19968: jis0212<<14 | 0x33<<7 | 0x59, - 32612 - 19968: jis0212<<14 | 0x33<<7 | 0x5A, - 32613 - 19968: jis0212<<14 | 0x33<<7 | 0x5B, - 32614 - 19968: jis0212<<14 | 0x33<<7 | 0x5C, - 32615 - 19968: jis0208<<14 | 0x45<<7 | 0x0D, - 32616 - 19968: jis0208<<14 | 0x45<<7 | 0x0B, - 32617 - 19968: jis0208<<14 | 0x45<<7 | 0x0C, - 32618 - 19968: jis0208<<14 | 0x19<<7 | 0x40, - 32619 - 19968: jis0208<<14 | 0x16<<7 | 0x32, - 32621 - 19968: jis0212<<14 | 0x33<<7 | 0x5D, - 32622 - 19968: jis0208<<14 | 0x22<<7 | 0x35, - 32624 - 19968: jis0208<<14 | 0x27<<7 | 0x12, - 32625 - 19968: jis0212<<14 | 0x34<<7 | 0x00, - 32626 - 19968: jis0208<<14 | 0x1C<<7 | 0x4F, - 32629 - 19968: jis0208<<14 | 0x26<<7 | 0x2C, - 32631 - 19968: jis0208<<14 | 0x27<<7 | 0x4C, - 32632 - 19968: jis0208<<14 | 0x45<<7 | 0x0E, - 32633 - 19968: jis0208<<14 | 0x37<<7 | 0x4C, - 32637 - 19968: jis0212<<14 | 0x34<<7 | 0x01, - 32638 - 19968: jis0212<<14 | 0x34<<7 | 0x02, - 32639 - 19968: jis0212<<14 | 0x34<<7 | 0x03, - 32640 - 19968: jis0212<<14 | 0x34<<7 | 0x04, - 32642 - 19968: jis0208<<14 | 0x45<<7 | 0x0F, - 32643 - 19968: jis0208<<14 | 0x45<<7 | 0x11, - 32645 - 19968: jis0208<<14 | 0x2C<<7 | 0x44, - 32646 - 19968: jis0208<<14 | 0x45<<7 | 0x10, - 32647 - 19968: jis0208<<14 | 0x45<<7 | 0x13, - 32648 - 19968: jis0208<<14 | 0x45<<7 | 0x12, - 32650 - 19968: jis0208<<14 | 0x2C<<7 | 0x32, - 32651 - 19968: jis0212<<14 | 0x34<<7 | 0x05, - 32652 - 19968: jis0208<<14 | 0x45<<7 | 0x14, - 32653 - 19968: jis0212<<14 | 0x34<<7 | 0x06, - 32654 - 19968: jis0208<<14 | 0x27<<7 | 0x5D, - 32655 - 19968: jis0212<<14 | 0x34<<7 | 0x07, - 32656 - 19968: jis0212<<14 | 0x34<<7 | 0x08, - 32657 - 19968: jis0212<<14 | 0x34<<7 | 0x09, - 32660 - 19968: jis0208<<14 | 0x45<<7 | 0x15, - 32662 - 19968: jis0212<<14 | 0x34<<7 | 0x0A, - 32663 - 19968: jis0212<<14 | 0x34<<7 | 0x0B, - 32666 - 19968: jis0208<<14 | 0x45<<7 | 0x18, - 32668 - 19968: jis0212<<14 | 0x34<<7 | 0x0C, - 32669 - 19968: jis0208<<14 | 0x45<<7 | 0x17, - 32670 - 19968: jis0208<<14 | 0x45<<7 | 0x16, - 32673 - 19968: jis0208<<14 | 0x5A<<7 | 0x34, - 32674 - 19968: jis0212<<14 | 0x34<<7 | 0x0E, - 32675 - 19968: jis0208<<14 | 0x45<<7 | 0x19, - 32676 - 19968: jis0208<<14 | 0x16<<7 | 0x11, - 32678 - 19968: jis0212<<14 | 0x34<<7 | 0x0F, - 32680 - 19968: jis0208<<14 | 0x20<<7 | 0x01, - 32681 - 19968: jis0208<<14 | 0x14<<7 | 0x20, - 32682 - 19968: jis0212<<14 | 0x34<<7 | 0x10, - 32685 - 19968: jis0212<<14 | 0x34<<7 | 0x11, - 32686 - 19968: jis0208<<14 | 0x45<<7 | 0x1D, - 32687 - 19968: jis0208<<14 | 0x45<<7 | 0x1A, - 32690 - 19968: jis0208<<14 | 0x45<<7 | 0x1B, - 32692 - 19968: jis0212<<14 | 0x34<<7 | 0x12, - 32694 - 19968: jis0208<<14 | 0x45<<7 | 0x1E, - 32696 - 19968: jis0208<<14 | 0x45<<7 | 0x1F, - 32697 - 19968: jis0208<<14 | 0x45<<7 | 0x1C, - 32700 - 19968: jis0212<<14 | 0x34<<7 | 0x13, - 32701 - 19968: jis0208<<14 | 0x10<<7 | 0x08, - 32703 - 19968: jis0212<<14 | 0x34<<7 | 0x14, - 32704 - 19968: jis0212<<14 | 0x34<<7 | 0x15, - 32705 - 19968: jis0208<<14 | 0x11<<7 | 0x06, - 32707 - 19968: jis0212<<14 | 0x34<<7 | 0x16, - 32709 - 19968: jis0208<<14 | 0x45<<7 | 0x21, - 32710 - 19968: jis0208<<14 | 0x45<<7 | 0x22, - 32712 - 19968: jis0212<<14 | 0x34<<7 | 0x17, - 32714 - 19968: jis0208<<14 | 0x45<<7 | 0x23, - 32716 - 19968: jis0208<<14 | 0x2C<<7 | 0x41, - 32718 - 19968: jis0212<<14 | 0x34<<7 | 0x18, - 32719 - 19968: jis0212<<14 | 0x34<<7 | 0x19, - 32722 - 19968: jis0208<<14 | 0x1C<<7 | 0x0B, - 32724 - 19968: jis0208<<14 | 0x45<<7 | 0x25, - 32725 - 19968: jis0208<<14 | 0x45<<7 | 0x24, - 32731 - 19968: jis0212<<14 | 0x34<<7 | 0x1A, - 32735 - 19968: jis0212<<14 | 0x34<<7 | 0x1B, - 32736 - 19968: jis0208<<14 | 0x1E<<7 | 0x48, - 32737 - 19968: jis0208<<14 | 0x45<<7 | 0x26, - 32739 - 19968: jis0212<<14 | 0x34<<7 | 0x1C, - 32741 - 19968: jis0212<<14 | 0x34<<7 | 0x1D, - 32742 - 19968: jis0208<<14 | 0x45<<7 | 0x27, - 32744 - 19968: jis0212<<14 | 0x34<<7 | 0x1E, - 32745 - 19968: jis0208<<14 | 0x45<<7 | 0x28, - 32747 - 19968: jis0208<<14 | 0x13<<7 | 0x44, - 32748 - 19968: jis0212<<14 | 0x34<<7 | 0x1F, - 32750 - 19968: jis0212<<14 | 0x34<<7 | 0x20, - 32751 - 19968: jis0212<<14 | 0x34<<7 | 0x21, - 32752 - 19968: jis0208<<14 | 0x13<<7 | 0x2C, - 32754 - 19968: jis0212<<14 | 0x34<<7 | 0x22, - 32755 - 19968: jis0208<<14 | 0x45<<7 | 0x29, - 32761 - 19968: jis0208<<14 | 0x45<<7 | 0x2A, - 32762 - 19968: jis0212<<14 | 0x34<<7 | 0x23, - 32763 - 19968: jis0208<<14 | 0x2A<<7 | 0x3C, - 32764 - 19968: jis0208<<14 | 0x2C<<7 | 0x42, - 32765 - 19968: jis0212<<14 | 0x34<<7 | 0x24, - 32766 - 19968: jis0212<<14 | 0x34<<7 | 0x25, - 32767 - 19968: jis0212<<14 | 0x34<<7 | 0x26, - 32768 - 19968: jis0208<<14 | 0x2C<<7 | 0x33, - 32769 - 19968: jis0208<<14 | 0x2E<<7 | 0x16, - 32771 - 19968: jis0208<<14 | 0x18<<7 | 0x2C, - 32772 - 19968: jis0208<<14 | 0x45<<7 | 0x2D, - 32773 - 19968: jis0208<<14 | 0x1B<<7 | 0x33, - 32774 - 19968: jis0208<<14 | 0x45<<7 | 0x2C, - 32775 - 19968: jis0212<<14 | 0x34<<7 | 0x27, - 32776 - 19968: jis0212<<14 | 0x34<<7 | 0x28, - 32778 - 19968: jis0212<<14 | 0x34<<7 | 0x29, - 32779 - 19968: jis0208<<14 | 0x45<<7 | 0x2E, - 32780 - 19968: jis0208<<14 | 0x1B<<7 | 0x08, - 32781 - 19968: jis0212<<14 | 0x34<<7 | 0x2A, - 32782 - 19968: jis0212<<14 | 0x34<<7 | 0x2B, - 32783 - 19968: jis0212<<14 | 0x34<<7 | 0x2C, - 32784 - 19968: jis0208<<14 | 0x21<<7 | 0x30, - 32785 - 19968: jis0212<<14 | 0x34<<7 | 0x2D, - 32786 - 19968: jis0208<<14 | 0x45<<7 | 0x2F, - 32787 - 19968: jis0212<<14 | 0x34<<7 | 0x2E, - 32788 - 19968: jis0212<<14 | 0x34<<7 | 0x2F, - 32789 - 19968: jis0208<<14 | 0x18<<7 | 0x2B, - 32790 - 19968: jis0212<<14 | 0x34<<7 | 0x30, - 32791 - 19968: jis0208<<14 | 0x2B<<7 | 0x36, - 32792 - 19968: jis0208<<14 | 0x45<<7 | 0x30, - 32793 - 19968: jis0208<<14 | 0x45<<7 | 0x31, - 32796 - 19968: jis0208<<14 | 0x45<<7 | 0x32, - 32797 - 19968: jis0212<<14 | 0x34<<7 | 0x31, - 32798 - 19968: jis0212<<14 | 0x34<<7 | 0x32, - 32799 - 19968: jis0212<<14 | 0x34<<7 | 0x33, - 32800 - 19968: jis0212<<14 | 0x34<<7 | 0x34, - 32801 - 19968: jis0208<<14 | 0x45<<7 | 0x33, - 32804 - 19968: jis0212<<14 | 0x34<<7 | 0x35, - 32806 - 19968: jis0212<<14 | 0x34<<7 | 0x36, - 32808 - 19968: jis0208<<14 | 0x45<<7 | 0x34, - 32812 - 19968: jis0212<<14 | 0x34<<7 | 0x37, - 32814 - 19968: jis0212<<14 | 0x34<<7 | 0x38, - 32816 - 19968: jis0212<<14 | 0x34<<7 | 0x39, - 32819 - 19968: jis0208<<14 | 0x1B<<7 | 0x09, - 32820 - 19968: jis0212<<14 | 0x34<<7 | 0x3A, - 32821 - 19968: jis0212<<14 | 0x34<<7 | 0x3B, - 32822 - 19968: jis0208<<14 | 0x2B<<7 | 0x4C, - 32823 - 19968: jis0212<<14 | 0x34<<7 | 0x3C, - 32825 - 19968: jis0212<<14 | 0x34<<7 | 0x3D, - 32826 - 19968: jis0212<<14 | 0x34<<7 | 0x3E, - 32827 - 19968: jis0208<<14 | 0x45<<7 | 0x36, - 32828 - 19968: jis0212<<14 | 0x34<<7 | 0x3F, - 32829 - 19968: jis0208<<14 | 0x22<<7 | 0x1E, - 32830 - 19968: jis0212<<14 | 0x34<<7 | 0x40, - 32831 - 19968: jis0208<<14 | 0x45<<7 | 0x35, - 32832 - 19968: jis0212<<14 | 0x34<<7 | 0x41, - 32836 - 19968: jis0212<<14 | 0x34<<7 | 0x42, - 32838 - 19968: jis0208<<14 | 0x45<<7 | 0x38, - 32842 - 19968: jis0208<<14 | 0x45<<7 | 0x37, - 32850 - 19968: jis0208<<14 | 0x45<<7 | 0x39, - 32854 - 19968: jis0208<<14 | 0x1F<<7 | 0x1A, - 32856 - 19968: jis0208<<14 | 0x45<<7 | 0x3A, - 32858 - 19968: jis0208<<14 | 0x45<<7 | 0x3B, - 32862 - 19968: jis0208<<14 | 0x29<<7 | 0x18, - 32863 - 19968: jis0208<<14 | 0x45<<7 | 0x3C, - 32864 - 19968: jis0212<<14 | 0x34<<7 | 0x43, - 32865 - 19968: jis0208<<14 | 0x20<<7 | 0x4E, - 32866 - 19968: jis0208<<14 | 0x45<<7 | 0x3D, - 32868 - 19968: jis0212<<14 | 0x34<<7 | 0x44, - 32870 - 19968: jis0212<<14 | 0x34<<7 | 0x45, - 32872 - 19968: jis0208<<14 | 0x45<<7 | 0x3E, - 32877 - 19968: jis0212<<14 | 0x34<<7 | 0x46, - 32879 - 19968: jis0208<<14 | 0x2D<<7 | 0x5D, - 32880 - 19968: jis0208<<14 | 0x45<<7 | 0x41, - 32881 - 19968: jis0212<<14 | 0x34<<7 | 0x47, - 32882 - 19968: jis0208<<14 | 0x45<<7 | 0x40, - 32883 - 19968: jis0208<<14 | 0x45<<7 | 0x3F, - 32884 - 19968: jis0208<<14 | 0x23<<7 | 0x0F, - 32885 - 19968: jis0212<<14 | 0x34<<7 | 0x48, - 32886 - 19968: jis0208<<14 | 0x45<<7 | 0x42, - 32887 - 19968: jis0208<<14 | 0x1E<<7 | 0x05, - 32889 - 19968: jis0208<<14 | 0x45<<7 | 0x43, - 32893 - 19968: jis0208<<14 | 0x45<<7 | 0x44, - 32894 - 19968: jis0208<<14 | 0x2E<<7 | 0x17, - 32895 - 19968: jis0208<<14 | 0x45<<7 | 0x45, - 32897 - 19968: jis0212<<14 | 0x34<<7 | 0x49, - 32900 - 19968: jis0208<<14 | 0x45<<7 | 0x46, - 32901 - 19968: jis0208<<14 | 0x45<<7 | 0x48, - 32902 - 19968: jis0208<<14 | 0x45<<7 | 0x47, - 32903 - 19968: jis0208<<14 | 0x27<<7 | 0x04, - 32904 - 19968: jis0212<<14 | 0x34<<7 | 0x4A, - 32905 - 19968: jis0208<<14 | 0x25<<7 | 0x58, - 32907 - 19968: jis0208<<14 | 0x2E<<7 | 0x1D, - 32908 - 19968: jis0208<<14 | 0x27<<7 | 0x08, - 32910 - 19968: jis0212<<14 | 0x34<<7 | 0x4B, - 32915 - 19968: jis0208<<14 | 0x45<<7 | 0x4A, - 32918 - 19968: jis0208<<14 | 0x1D<<7 | 0x32, - 32920 - 19968: jis0208<<14 | 0x28<<7 | 0x09, - 32922 - 19968: jis0208<<14 | 0x45<<7 | 0x4B, - 32923 - 19968: jis0208<<14 | 0x45<<7 | 0x49, - 32924 - 19968: jis0212<<14 | 0x34<<7 | 0x4C, - 32925 - 19968: jis0208<<14 | 0x13<<7 | 0x2D, - 32926 - 19968: jis0212<<14 | 0x34<<7 | 0x4D, - 32929 - 19968: jis0208<<14 | 0x17<<7 | 0x33, - 32930 - 19968: jis0208<<14 | 0x1A<<7 | 0x47, - 32933 - 19968: jis0208<<14 | 0x27<<7 | 0x4D, - 32934 - 19968: jis0212<<14 | 0x34<<7 | 0x4E, - 32935 - 19968: jis0212<<14 | 0x34<<7 | 0x4F, - 32937 - 19968: jis0208<<14 | 0x17<<7 | 0x09, - 32938 - 19968: jis0208<<14 | 0x2A<<7 | 0x22, - 32939 - 19968: jis0212<<14 | 0x34<<7 | 0x50, - 32940 - 19968: jis0208<<14 | 0x45<<7 | 0x4E, - 32941 - 19968: jis0208<<14 | 0x45<<7 | 0x4C, - 32943 - 19968: jis0208<<14 | 0x18<<7 | 0x2D, - 32945 - 19968: jis0208<<14 | 0x18<<7 | 0x2E, - 32946 - 19968: jis0208<<14 | 0x0F<<7 | 0x48, - 32948 - 19968: jis0208<<14 | 0x19<<7 | 0x47, - 32952 - 19968: jis0212<<14 | 0x34<<7 | 0x51, - 32953 - 19968: jis0212<<14 | 0x34<<7 | 0x52, - 32954 - 19968: jis0208<<14 | 0x26<<7 | 0x38, - 32963 - 19968: jis0208<<14 | 0x0F<<7 | 0x3E, - 32964 - 19968: jis0208<<14 | 0x45<<7 | 0x53, - 32966 - 19968: jis0208<<14 | 0x22<<7 | 0x1F, - 32968 - 19968: jis0212<<14 | 0x34<<7 | 0x53, - 32972 - 19968: jis0208<<14 | 0x26<<7 | 0x37, - 32973 - 19968: jis0212<<14 | 0x34<<7 | 0x54, - 32974 - 19968: jis0208<<14 | 0x21<<7 | 0x3A, - 32975 - 19968: jis0212<<14 | 0x34<<7 | 0x55, - 32978 - 19968: jis0212<<14 | 0x34<<7 | 0x56, - 32980 - 19968: jis0212<<14 | 0x34<<7 | 0x57, - 32981 - 19968: jis0212<<14 | 0x34<<7 | 0x58, - 32982 - 19968: jis0208<<14 | 0x45<<7 | 0x55, - 32983 - 19968: jis0212<<14 | 0x34<<7 | 0x59, - 32984 - 19968: jis0212<<14 | 0x34<<7 | 0x5A, - 32985 - 19968: jis0208<<14 | 0x45<<7 | 0x51, - 32986 - 19968: jis0208<<14 | 0x45<<7 | 0x54, - 32987 - 19968: jis0208<<14 | 0x45<<7 | 0x4F, - 32989 - 19968: jis0208<<14 | 0x45<<7 | 0x52, - 32990 - 19968: jis0208<<14 | 0x2A<<7 | 0x05, - 32992 - 19968: jis0212<<14 | 0x34<<7 | 0x5B, - 32993 - 19968: jis0208<<14 | 0x17<<7 | 0x34, - 32996 - 19968: jis0208<<14 | 0x0F<<7 | 0x5C, - 32997 - 19968: jis0208<<14 | 0x45<<7 | 0x50, - 33005 - 19968: jis0212<<14 | 0x34<<7 | 0x5C, - 33006 - 19968: jis0212<<14 | 0x34<<7 | 0x5D, - 33007 - 19968: jis0208<<14 | 0x45<<7 | 0x57, - 33008 - 19968: jis0212<<14 | 0x35<<7 | 0x00, - 33009 - 19968: jis0208<<14 | 0x45<<7 | 0x58, - 33010 - 19968: jis0212<<14 | 0x35<<7 | 0x01, - 33011 - 19968: jis0212<<14 | 0x35<<7 | 0x02, - 33012 - 19968: jis0208<<14 | 0x25<<7 | 0x18, - 33014 - 19968: jis0212<<14 | 0x35<<7 | 0x03, - 33016 - 19968: jis0208<<14 | 0x15<<7 | 0x1A, - 33017 - 19968: jis0212<<14 | 0x35<<7 | 0x04, - 33018 - 19968: jis0212<<14 | 0x35<<7 | 0x05, - 33020 - 19968: jis0208<<14 | 0x46<<7 | 0x05, - 33021 - 19968: jis0208<<14 | 0x26<<7 | 0x1C, - 33022 - 19968: jis0212<<14 | 0x35<<7 | 0x06, - 33026 - 19968: jis0208<<14 | 0x1A<<7 | 0x48, - 33027 - 19968: jis0212<<14 | 0x35<<7 | 0x07, - 33029 - 19968: jis0208<<14 | 0x15<<7 | 0x1B, - 33030 - 19968: jis0208<<14 | 0x1F<<7 | 0x27, - 33031 - 19968: jis0208<<14 | 0x2E<<7 | 0x25, - 33032 - 19968: jis0208<<14 | 0x2B<<7 | 0x0D, - 33033 - 19968: jis0208<<14 | 0x45<<7 | 0x56, - 33034 - 19968: jis0208<<14 | 0x1F<<7 | 0x33, - 33035 - 19968: jis0212<<14 | 0x35<<7 | 0x08, - 33046 - 19968: jis0212<<14 | 0x35<<7 | 0x09, - 33047 - 19968: jis0212<<14 | 0x35<<7 | 0x0A, - 33048 - 19968: jis0212<<14 | 0x35<<7 | 0x0B, - 33050 - 19968: jis0208<<14 | 0x14<<7 | 0x32, - 33051 - 19968: jis0208<<14 | 0x45<<7 | 0x59, - 33052 - 19968: jis0212<<14 | 0x35<<7 | 0x0C, - 33054 - 19968: jis0212<<14 | 0x35<<7 | 0x0D, - 33056 - 19968: jis0212<<14 | 0x35<<7 | 0x0E, - 33059 - 19968: jis0208<<14 | 0x45<<7 | 0x5B, - 33060 - 19968: jis0212<<14 | 0x35<<7 | 0x0F, - 33063 - 19968: jis0212<<14 | 0x35<<7 | 0x10, - 33065 - 19968: jis0208<<14 | 0x45<<7 | 0x5A, - 33068 - 19968: jis0212<<14 | 0x35<<7 | 0x11, - 33071 - 19968: jis0208<<14 | 0x45<<7 | 0x5C, - 33072 - 19968: jis0212<<14 | 0x35<<7 | 0x12, - 33073 - 19968: jis0208<<14 | 0x22<<7 | 0x05, - 33075 - 19968: jis0208<<14 | 0x26<<7 | 0x1D, - 33077 - 19968: jis0212<<14 | 0x35<<7 | 0x13, - 33081 - 19968: jis0208<<14 | 0x23<<7 | 0x10, - 33082 - 19968: jis0212<<14 | 0x35<<7 | 0x14, - 33084 - 19968: jis0212<<14 | 0x35<<7 | 0x15, - 33086 - 19968: jis0208<<14 | 0x46<<7 | 0x02, - 33093 - 19968: jis0212<<14 | 0x35<<7 | 0x16, - 33094 - 19968: jis0208<<14 | 0x46<<7 | 0x01, - 33095 - 19968: jis0212<<14 | 0x35<<7 | 0x17, - 33098 - 19968: jis0212<<14 | 0x35<<7 | 0x18, - 33099 - 19968: jis0208<<14 | 0x45<<7 | 0x5D, - 33100 - 19968: jis0212<<14 | 0x35<<7 | 0x19, - 33102 - 19968: jis0208<<14 | 0x1E<<7 | 0x34, - 33104 - 19968: jis0208<<14 | 0x28<<7 | 0x44, - 33105 - 19968: jis0208<<14 | 0x46<<7 | 0x04, - 33106 - 19968: jis0212<<14 | 0x35<<7 | 0x1A, - 33107 - 19968: jis0208<<14 | 0x46<<7 | 0x03, - 33108 - 19968: jis0208<<14 | 0x18<<7 | 0x2F, - 33109 - 19968: jis0208<<14 | 0x2E<<7 | 0x32, - 33111 - 19968: jis0212<<14 | 0x35<<7 | 0x1B, - 33119 - 19968: jis0208<<14 | 0x46<<7 | 0x14, - 33120 - 19968: jis0212<<14 | 0x35<<7 | 0x1C, - 33121 - 19968: jis0212<<14 | 0x35<<7 | 0x1D, - 33125 - 19968: jis0208<<14 | 0x46<<7 | 0x08, - 33126 - 19968: jis0208<<14 | 0x46<<7 | 0x09, - 33127 - 19968: jis0212<<14 | 0x35<<7 | 0x1E, - 33128 - 19968: jis0212<<14 | 0x35<<7 | 0x1F, - 33129 - 19968: jis0212<<14 | 0x35<<7 | 0x20, - 33131 - 19968: jis0208<<14 | 0x1B<<7 | 0x4F, - 33133 - 19968: jis0212<<14 | 0x35<<7 | 0x21, - 33134 - 19968: jis0208<<14 | 0x46<<7 | 0x07, - 33135 - 19968: jis0212<<14 | 0x35<<7 | 0x22, - 33136 - 19968: jis0208<<14 | 0x18<<7 | 0x57, - 33137 - 19968: jis0208<<14 | 0x46<<7 | 0x06, - 33140 - 19968: jis0208<<14 | 0x46<<7 | 0x0A, - 33143 - 19968: jis0212<<14 | 0x35<<7 | 0x23, - 33144 - 19968: jis0208<<14 | 0x23<<7 | 0x11, - 33145 - 19968: jis0208<<14 | 0x29<<7 | 0x01, - 33146 - 19968: jis0208<<14 | 0x20<<7 | 0x02, - 33151 - 19968: jis0208<<14 | 0x21<<7 | 0x3B, - 33152 - 19968: jis0208<<14 | 0x46<<7 | 0x0E, - 33153 - 19968: jis0212<<14 | 0x35<<7 | 0x24, - 33154 - 19968: jis0208<<14 | 0x46<<7 | 0x0F, - 33155 - 19968: jis0208<<14 | 0x46<<7 | 0x0B, - 33156 - 19968: jis0212<<14 | 0x35<<7 | 0x26, - 33157 - 19968: jis0212<<14 | 0x35<<7 | 0x27, - 33158 - 19968: jis0212<<14 | 0x35<<7 | 0x28, - 33160 - 19968: jis0208<<14 | 0x46<<7 | 0x0C, - 33162 - 19968: jis0208<<14 | 0x46<<7 | 0x0D, - 33163 - 19968: jis0212<<14 | 0x35<<7 | 0x29, - 33166 - 19968: jis0212<<14 | 0x35<<7 | 0x2A, - 33167 - 19968: jis0208<<14 | 0x18<<7 | 0x30, - 33168 - 19968: jis0212<<14 | 0x35<<7 | 0x25, - 33171 - 19968: jis0208<<14 | 0x46<<7 | 0x15, - 33173 - 19968: jis0208<<14 | 0x46<<7 | 0x11, - 33174 - 19968: jis0212<<14 | 0x35<<7 | 0x2B, - 33176 - 19968: jis0212<<14 | 0x35<<7 | 0x2C, - 33178 - 19968: jis0208<<14 | 0x28<<7 | 0x45, - 33179 - 19968: jis0212<<14 | 0x35<<7 | 0x2D, - 33180 - 19968: jis0208<<14 | 0x2A<<7 | 0x4B, - 33181 - 19968: jis0208<<14 | 0x28<<7 | 0x07, - 33182 - 19968: jis0212<<14 | 0x35<<7 | 0x2E, - 33184 - 19968: jis0208<<14 | 0x46<<7 | 0x10, - 33186 - 19968: jis0212<<14 | 0x35<<7 | 0x2F, - 33187 - 19968: jis0208<<14 | 0x46<<7 | 0x13, - 33188 - 19968: jis0208<<14 | 0x46<<7 | 0x12, - 33192 - 19968: jis0208<<14 | 0x2A<<7 | 0x23, - 33193 - 19968: jis0208<<14 | 0x46<<7 | 0x16, - 33198 - 19968: jis0212<<14 | 0x35<<7 | 0x30, - 33200 - 19968: jis0208<<14 | 0x46<<7 | 0x17, - 33202 - 19968: jis0212<<14 | 0x35<<7 | 0x31, - 33203 - 19968: jis0208<<14 | 0x20<<7 | 0x16, - 33204 - 19968: jis0212<<14 | 0x35<<7 | 0x32, - 33205 - 19968: jis0208<<14 | 0x46<<7 | 0x18, - 33208 - 19968: jis0208<<14 | 0x46<<7 | 0x1A, - 33210 - 19968: jis0208<<14 | 0x46<<7 | 0x1E, - 33211 - 19968: jis0212<<14 | 0x35<<7 | 0x33, - 33213 - 19968: jis0208<<14 | 0x46<<7 | 0x1B, - 33214 - 19968: jis0208<<14 | 0x46<<7 | 0x19, - 33215 - 19968: jis0208<<14 | 0x26<<7 | 0x1E, - 33216 - 19968: jis0208<<14 | 0x46<<7 | 0x1C, - 33218 - 19968: jis0208<<14 | 0x46<<7 | 0x1D, - 33219 - 19968: jis0212<<14 | 0x35<<7 | 0x35, - 33221 - 19968: jis0212<<14 | 0x35<<7 | 0x36, - 33222 - 19968: jis0208<<14 | 0x11<<7 | 0x11, - 33224 - 19968: jis0208<<14 | 0x46<<7 | 0x24, - 33225 - 19968: jis0208<<14 | 0x46<<7 | 0x1F, - 33226 - 19968: jis0212<<14 | 0x35<<7 | 0x37, - 33227 - 19968: jis0212<<14 | 0x35<<7 | 0x34, - 33229 - 19968: jis0208<<14 | 0x46<<7 | 0x20, - 33230 - 19968: jis0212<<14 | 0x35<<7 | 0x38, - 33231 - 19968: jis0212<<14 | 0x35<<7 | 0x39, - 33233 - 19968: jis0208<<14 | 0x46<<7 | 0x21, - 33235 - 19968: jis0208<<14 | 0x21<<7 | 0x00, - 33237 - 19968: jis0212<<14 | 0x35<<7 | 0x3A, - 33239 - 19968: jis0212<<14 | 0x35<<7 | 0x3B, - 33240 - 19968: jis0208<<14 | 0x46<<7 | 0x23, - 33241 - 19968: jis0208<<14 | 0x46<<7 | 0x22, - 33242 - 19968: jis0208<<14 | 0x46<<7 | 0x25, - 33243 - 19968: jis0212<<14 | 0x35<<7 | 0x3C, - 33245 - 19968: jis0212<<14 | 0x35<<7 | 0x3D, - 33246 - 19968: jis0212<<14 | 0x35<<7 | 0x3E, - 33247 - 19968: jis0208<<14 | 0x46<<7 | 0x26, - 33248 - 19968: jis0208<<14 | 0x46<<7 | 0x27, - 33249 - 19968: jis0212<<14 | 0x35<<7 | 0x3F, - 33251 - 19968: jis0208<<14 | 0x1E<<7 | 0x22, - 33252 - 19968: jis0212<<14 | 0x35<<7 | 0x40, - 33253 - 19968: jis0208<<14 | 0x11<<7 | 0x48, - 33255 - 19968: jis0208<<14 | 0x46<<7 | 0x28, - 33256 - 19968: jis0208<<14 | 0x2D<<7 | 0x36, - 33258 - 19968: jis0208<<14 | 0x1B<<7 | 0x0A, - 33259 - 19968: jis0212<<14 | 0x35<<7 | 0x41, - 33260 - 19968: jis0212<<14 | 0x35<<7 | 0x42, - 33261 - 19968: jis0208<<14 | 0x1C<<7 | 0x0C, - 33264 - 19968: jis0212<<14 | 0x35<<7 | 0x43, - 33265 - 19968: jis0212<<14 | 0x35<<7 | 0x44, - 33266 - 19968: jis0212<<14 | 0x35<<7 | 0x45, - 33267 - 19968: jis0208<<14 | 0x1A<<7 | 0x49, - 33268 - 19968: jis0208<<14 | 0x22<<7 | 0x36, - 33269 - 19968: jis0212<<14 | 0x35<<7 | 0x46, - 33270 - 19968: jis0212<<14 | 0x35<<7 | 0x47, - 33272 - 19968: jis0212<<14 | 0x35<<7 | 0x48, - 33273 - 19968: jis0212<<14 | 0x35<<7 | 0x49, - 33274 - 19968: jis0208<<14 | 0x46<<7 | 0x29, - 33275 - 19968: jis0208<<14 | 0x46<<7 | 0x2A, - 33276 - 19968: jis0208<<14 | 0x10<<7 | 0x10, - 33277 - 19968: jis0212<<14 | 0x35<<7 | 0x4A, - 33278 - 19968: jis0208<<14 | 0x46<<7 | 0x2B, - 33279 - 19968: jis0212<<14 | 0x35<<7 | 0x4B, - 33280 - 19968: jis0212<<14 | 0x35<<7 | 0x4C, - 33281 - 19968: jis0208<<14 | 0x46<<7 | 0x2C, - 33282 - 19968: jis0208<<14 | 0x46<<7 | 0x2D, - 33283 - 19968: jis0212<<14 | 0x35<<7 | 0x4D, - 33285 - 19968: jis0208<<14 | 0x46<<7 | 0x2E, - 33287 - 19968: jis0208<<14 | 0x46<<7 | 0x2F, - 33288 - 19968: jis0208<<14 | 0x15<<7 | 0x1C, - 33289 - 19968: jis0208<<14 | 0x39<<7 | 0x09, - 33290 - 19968: jis0208<<14 | 0x46<<7 | 0x30, - 33292 - 19968: jis0208<<14 | 0x1F<<7 | 0x44, - 33293 - 19968: jis0208<<14 | 0x46<<7 | 0x31, - 33294 - 19968: jis0208<<14 | 0x1B<<7 | 0x2A, - 33295 - 19968: jis0212<<14 | 0x35<<7 | 0x4E, - 33296 - 19968: jis0208<<14 | 0x46<<7 | 0x32, - 33298 - 19968: jis0208<<14 | 0x2F<<7 | 0x0F, - 33299 - 19968: jis0212<<14 | 0x35<<7 | 0x4F, - 33300 - 19968: jis0212<<14 | 0x35<<7 | 0x50, - 33302 - 19968: jis0208<<14 | 0x46<<7 | 0x33, - 33303 - 19968: jis0208<<14 | 0x29<<7 | 0x3D, - 33304 - 19968: jis0208<<14 | 0x13<<7 | 0x3B, - 33305 - 19968: jis0212<<14 | 0x35<<7 | 0x51, - 33306 - 19968: jis0212<<14 | 0x35<<7 | 0x52, - 33307 - 19968: jis0208<<14 | 0x20<<7 | 0x03, - 33308 - 19968: jis0208<<14 | 0x1C<<7 | 0x37, - 33309 - 19968: jis0212<<14 | 0x35<<7 | 0x53, - 33310 - 19968: jis0208<<14 | 0x28<<7 | 0x50, - 33311 - 19968: jis0208<<14 | 0x1C<<7 | 0x0D, - 33313 - 19968: jis0212<<14 | 0x35<<7 | 0x54, - 33314 - 19968: jis0212<<14 | 0x35<<7 | 0x55, - 33320 - 19968: jis0212<<14 | 0x35<<7 | 0x56, - 33321 - 19968: jis0208<<14 | 0x46<<7 | 0x34, - 33322 - 19968: jis0208<<14 | 0x18<<7 | 0x31, - 33323 - 19968: jis0208<<14 | 0x46<<7 | 0x35, - 33324 - 19968: jis0208<<14 | 0x27<<7 | 0x2B, - 33326 - 19968: jis0208<<14 | 0x46<<7 | 0x43, - 33330 - 19968: jis0212<<14 | 0x35<<7 | 0x57, - 33331 - 19968: jis0208<<14 | 0x46<<7 | 0x37, - 33332 - 19968: jis0212<<14 | 0x35<<7 | 0x58, - 33333 - 19968: jis0208<<14 | 0x21<<7 | 0x28, - 33334 - 19968: jis0208<<14 | 0x26<<7 | 0x54, - 33335 - 19968: jis0208<<14 | 0x17<<7 | 0x1E, - 33336 - 19968: jis0208<<14 | 0x46<<7 | 0x36, - 33337 - 19968: jis0208<<14 | 0x20<<7 | 0x04, - 33338 - 19968: jis0212<<14 | 0x35<<7 | 0x59, - 33344 - 19968: jis0208<<14 | 0x46<<7 | 0x38, - 33347 - 19968: jis0212<<14 | 0x35<<7 | 0x5A, - 33348 - 19968: jis0212<<14 | 0x35<<7 | 0x5B, - 33349 - 19968: jis0212<<14 | 0x35<<7 | 0x5C, - 33350 - 19968: jis0212<<14 | 0x35<<7 | 0x5D, - 33351 - 19968: jis0208<<14 | 0x23<<7 | 0x59, - 33355 - 19968: jis0212<<14 | 0x36<<7 | 0x00, - 33358 - 19968: jis0212<<14 | 0x36<<7 | 0x01, - 33359 - 19968: jis0212<<14 | 0x36<<7 | 0x02, - 33361 - 19968: jis0212<<14 | 0x36<<7 | 0x03, - 33366 - 19968: jis0212<<14 | 0x36<<7 | 0x04, - 33368 - 19968: jis0208<<14 | 0x46<<7 | 0x3A, - 33369 - 19968: jis0208<<14 | 0x46<<7 | 0x39, - 33370 - 19968: jis0208<<14 | 0x46<<7 | 0x3C, - 33372 - 19968: jis0212<<14 | 0x36<<7 | 0x05, - 33373 - 19968: jis0208<<14 | 0x46<<7 | 0x3B, - 33375 - 19968: jis0208<<14 | 0x46<<7 | 0x3D, - 33376 - 19968: jis0212<<14 | 0x36<<7 | 0x06, - 33378 - 19968: jis0208<<14 | 0x46<<7 | 0x3F, - 33379 - 19968: jis0212<<14 | 0x36<<7 | 0x07, - 33380 - 19968: jis0208<<14 | 0x46<<7 | 0x3E, - 33382 - 19968: jis0208<<14 | 0x13<<7 | 0x2E, - 33383 - 19968: jis0212<<14 | 0x36<<7 | 0x08, - 33384 - 19968: jis0208<<14 | 0x46<<7 | 0x40, - 33386 - 19968: jis0208<<14 | 0x46<<7 | 0x41, - 33387 - 19968: jis0208<<14 | 0x46<<7 | 0x42, - 33389 - 19968: jis0212<<14 | 0x36<<7 | 0x09, - 33390 - 19968: jis0208<<14 | 0x19<<7 | 0x10, - 33391 - 19968: jis0208<<14 | 0x2D<<7 | 0x28, - 33393 - 19968: jis0208<<14 | 0x46<<7 | 0x44, - 33394 - 19968: jis0208<<14 | 0x1E<<7 | 0x06, - 33396 - 19968: jis0212<<14 | 0x36<<7 | 0x0A, - 33398 - 19968: jis0208<<14 | 0x10<<7 | 0x4F, - 33399 - 19968: jis0208<<14 | 0x46<<7 | 0x45, - 33400 - 19968: jis0208<<14 | 0x46<<7 | 0x46, - 33403 - 19968: jis0212<<14 | 0x36<<7 | 0x0B, - 33405 - 19968: jis0212<<14 | 0x36<<7 | 0x0C, - 33406 - 19968: jis0208<<14 | 0x46<<7 | 0x47, - 33407 - 19968: jis0212<<14 | 0x36<<7 | 0x0D, - 33408 - 19968: jis0212<<14 | 0x36<<7 | 0x0E, - 33409 - 19968: jis0212<<14 | 0x36<<7 | 0x0F, - 33411 - 19968: jis0212<<14 | 0x36<<7 | 0x10, - 33412 - 19968: jis0212<<14 | 0x36<<7 | 0x11, - 33415 - 19968: jis0212<<14 | 0x36<<7 | 0x12, - 33417 - 19968: jis0212<<14 | 0x36<<7 | 0x13, - 33418 - 19968: jis0212<<14 | 0x36<<7 | 0x14, - 33419 - 19968: jis0208<<14 | 0x0F<<7 | 0x51, - 33421 - 19968: jis0208<<14 | 0x46<<7 | 0x48, - 33422 - 19968: jis0212<<14 | 0x36<<7 | 0x15, - 33425 - 19968: jis0212<<14 | 0x36<<7 | 0x16, - 33426 - 19968: jis0208<<14 | 0x46<<7 | 0x49, - 33428 - 19968: jis0212<<14 | 0x36<<7 | 0x17, - 33430 - 19968: jis0212<<14 | 0x36<<7 | 0x18, - 33432 - 19968: jis0212<<14 | 0x36<<7 | 0x19, - 33433 - 19968: jis0208<<14 | 0x28<<7 | 0x46, - 33434 - 19968: jis0212<<14 | 0x36<<7 | 0x1A, - 33435 - 19968: jis0212<<14 | 0x36<<7 | 0x1B, - 33437 - 19968: jis0208<<14 | 0x1B<<7 | 0x26, - 33439 - 19968: jis0208<<14 | 0x46<<7 | 0x4B, - 33440 - 19968: jis0212<<14 | 0x36<<7 | 0x1C, - 33441 - 19968: jis0212<<14 | 0x36<<7 | 0x1D, - 33443 - 19968: jis0212<<14 | 0x36<<7 | 0x1E, - 33444 - 19968: jis0212<<14 | 0x36<<7 | 0x1F, - 33445 - 19968: jis0208<<14 | 0x12<<7 | 0x08, - 33446 - 19968: jis0208<<14 | 0x0F<<7 | 0x11, - 33447 - 19968: jis0212<<14 | 0x36<<7 | 0x20, - 33448 - 19968: jis0212<<14 | 0x36<<7 | 0x21, - 33449 - 19968: jis0212<<14 | 0x36<<7 | 0x22, - 33450 - 19968: jis0212<<14 | 0x36<<7 | 0x23, - 33451 - 19968: jis0208<<14 | 0x46<<7 | 0x4A, - 33452 - 19968: jis0208<<14 | 0x46<<7 | 0x4D, - 33453 - 19968: jis0208<<14 | 0x26<<7 | 0x2D, - 33454 - 19968: jis0212<<14 | 0x36<<7 | 0x24, - 33455 - 19968: jis0208<<14 | 0x1E<<7 | 0x23, - 33456 - 19968: jis0212<<14 | 0x36<<7 | 0x25, - 33457 - 19968: jis0208<<14 | 0x11<<7 | 0x35, - 33458 - 19968: jis0212<<14 | 0x36<<7 | 0x26, - 33459 - 19968: jis0208<<14 | 0x2A<<7 | 0x06, - 33460 - 19968: jis0212<<14 | 0x36<<7 | 0x27, - 33463 - 19968: jis0212<<14 | 0x36<<7 | 0x28, - 33464 - 19968: jis0208<<14 | 0x16<<7 | 0x3C, - 33465 - 19968: jis0208<<14 | 0x15<<7 | 0x3B, - 33466 - 19968: jis0212<<14 | 0x36<<7 | 0x29, - 33467 - 19968: jis0208<<14 | 0x46<<7 | 0x4C, - 33468 - 19968: jis0212<<14 | 0x36<<7 | 0x2A, - 33469 - 19968: jis0208<<14 | 0x11<<7 | 0x49, - 33470 - 19968: jis0212<<14 | 0x36<<7 | 0x2B, - 33471 - 19968: jis0212<<14 | 0x36<<7 | 0x2C, - 33477 - 19968: jis0208<<14 | 0x13<<7 | 0x02, - 33478 - 19968: jis0212<<14 | 0x36<<7 | 0x2D, - 33488 - 19968: jis0212<<14 | 0x36<<7 | 0x2E, - 33489 - 19968: jis0208<<14 | 0x10<<7 | 0x50, - 33490 - 19968: jis0208<<14 | 0x46<<7 | 0x51, - 33491 - 19968: jis0208<<14 | 0x2D<<7 | 0x49, - 33492 - 19968: jis0208<<14 | 0x21<<7 | 0x3C, - 33493 - 19968: jis0212<<14 | 0x36<<7 | 0x2F, - 33495 - 19968: jis0208<<14 | 0x28<<7 | 0x23, - 33497 - 19968: jis0208<<14 | 0x46<<7 | 0x5D, - 33498 - 19968: jis0212<<14 | 0x36<<7 | 0x30, - 33499 - 19968: jis0208<<14 | 0x11<<7 | 0x36, - 33500 - 19968: jis0208<<14 | 0x46<<7 | 0x5B, - 33502 - 19968: jis0208<<14 | 0x46<<7 | 0x59, - 33503 - 19968: jis0208<<14 | 0x46<<7 | 0x50, - 33504 - 19968: jis0212<<14 | 0x36<<7 | 0x31, - 33505 - 19968: jis0208<<14 | 0x46<<7 | 0x4E, - 33506 - 19968: jis0212<<14 | 0x36<<7 | 0x32, - 33507 - 19968: jis0208<<14 | 0x46<<7 | 0x4F, - 33508 - 19968: jis0212<<14 | 0x36<<7 | 0x33, - 33509 - 19968: jis0208<<14 | 0x1B<<7 | 0x42, - 33510 - 19968: jis0208<<14 | 0x15<<7 | 0x4B, - 33511 - 19968: jis0208<<14 | 0x22<<7 | 0x56, - 33512 - 19968: jis0212<<14 | 0x36<<7 | 0x34, - 33514 - 19968: jis0212<<14 | 0x36<<7 | 0x35, - 33515 - 19968: jis0208<<14 | 0x25<<7 | 0x30, - 33517 - 19968: jis0212<<14 | 0x36<<7 | 0x36, - 33519 - 19968: jis0212<<14 | 0x36<<7 | 0x37, - 33521 - 19968: jis0208<<14 | 0x10<<7 | 0x30, - 33523 - 19968: jis0208<<14 | 0x46<<7 | 0x53, - 33524 - 19968: jis0208<<14 | 0x46<<7 | 0x52, - 33526 - 19968: jis0212<<14 | 0x36<<7 | 0x38, - 33527 - 19968: jis0212<<14 | 0x36<<7 | 0x39, - 33529 - 19968: jis0208<<14 | 0x46<<7 | 0x58, - 33530 - 19968: jis0208<<14 | 0x46<<7 | 0x54, - 33531 - 19968: jis0208<<14 | 0x46<<7 | 0x57, - 33533 - 19968: jis0212<<14 | 0x36<<7 | 0x3A, - 33534 - 19968: jis0212<<14 | 0x36<<7 | 0x3B, - 33536 - 19968: jis0212<<14 | 0x36<<7 | 0x3C, - 33537 - 19968: jis0208<<14 | 0x5A<<7 | 0x36, - 33538 - 19968: jis0208<<14 | 0x2B<<7 | 0x2F, - 33539 - 19968: jis0208<<14 | 0x46<<7 | 0x56, - 33540 - 19968: jis0208<<14 | 0x11<<7 | 0x37, - 33541 - 19968: jis0208<<14 | 0x12<<7 | 0x5C, - 33542 - 19968: jis0208<<14 | 0x46<<7 | 0x5A, - 33543 - 19968: jis0212<<14 | 0x36<<7 | 0x3E, - 33544 - 19968: jis0212<<14 | 0x36<<7 | 0x3F, - 33545 - 19968: jis0208<<14 | 0x46<<7 | 0x5C, - 33546 - 19968: jis0212<<14 | 0x36<<7 | 0x40, - 33547 - 19968: jis0212<<14 | 0x36<<7 | 0x41, - 33550 - 19968: jis0208<<14 | 0x16<<7 | 0x33, - 33558 - 19968: jis0208<<14 | 0x47<<7 | 0x02, - 33559 - 19968: jis0208<<14 | 0x47<<7 | 0x0B, - 33560 - 19968: jis0208<<14 | 0x47<<7 | 0x0C, - 33563 - 19968: jis0212<<14 | 0x36<<7 | 0x43, - 33564 - 19968: jis0208<<14 | 0x0F<<7 | 0x0A, - 33565 - 19968: jis0212<<14 | 0x36<<7 | 0x44, - 33566 - 19968: jis0212<<14 | 0x36<<7 | 0x45, - 33567 - 19968: jis0212<<14 | 0x36<<7 | 0x46, - 33569 - 19968: jis0212<<14 | 0x36<<7 | 0x47, - 33570 - 19968: jis0212<<14 | 0x36<<7 | 0x48, - 33571 - 19968: jis0208<<14 | 0x47<<7 | 0x13, - 33576 - 19968: jis0208<<14 | 0x0F<<7 | 0x50, - 33579 - 19968: jis0208<<14 | 0x47<<7 | 0x0A, - 33580 - 19968: jis0212<<14 | 0x36<<7 | 0x49, - 33581 - 19968: jis0212<<14 | 0x36<<7 | 0x4A, - 33582 - 19968: jis0212<<14 | 0x36<<7 | 0x4B, - 33583 - 19968: jis0208<<14 | 0x47<<7 | 0x09, - 33584 - 19968: jis0212<<14 | 0x36<<7 | 0x4C, - 33585 - 19968: jis0208<<14 | 0x47<<7 | 0x04, - 33586 - 19968: jis0208<<14 | 0x47<<7 | 0x03, - 33587 - 19968: jis0212<<14 | 0x36<<7 | 0x4D, - 33588 - 19968: jis0208<<14 | 0x47<<7 | 0x01, - 33589 - 19968: jis0208<<14 | 0x47<<7 | 0x00, - 33590 - 19968: jis0208<<14 | 0x22<<7 | 0x42, - 33591 - 19968: jis0212<<14 | 0x36<<7 | 0x4E, - 33592 - 19968: jis0208<<14 | 0x21<<7 | 0x5A, - 33593 - 19968: jis0208<<14 | 0x47<<7 | 0x06, - 33594 - 19968: jis0212<<14 | 0x36<<7 | 0x4F, - 33596 - 19968: jis0212<<14 | 0x36<<7 | 0x50, - 33597 - 19968: jis0212<<14 | 0x36<<7 | 0x51, - 33600 - 19968: jis0208<<14 | 0x47<<7 | 0x05, - 33602 - 19968: jis0212<<14 | 0x36<<7 | 0x52, - 33603 - 19968: jis0212<<14 | 0x36<<7 | 0x53, - 33604 - 19968: jis0212<<14 | 0x36<<7 | 0x54, - 33605 - 19968: jis0208<<14 | 0x47<<7 | 0x08, - 33607 - 19968: jis0212<<14 | 0x36<<7 | 0x55, - 33609 - 19968: jis0208<<14 | 0x20<<7 | 0x4F, - 33610 - 19968: jis0208<<14 | 0x16<<7 | 0x34, - 33613 - 19968: jis0212<<14 | 0x36<<7 | 0x56, - 33614 - 19968: jis0212<<14 | 0x36<<7 | 0x57, - 33615 - 19968: jis0208<<14 | 0x10<<7 | 0x20, - 33616 - 19968: jis0208<<14 | 0x47<<7 | 0x07, - 33617 - 19968: jis0212<<14 | 0x36<<7 | 0x58, - 33618 - 19968: jis0208<<14 | 0x18<<7 | 0x32, - 33619 - 19968: jis0212<<14 | 0x37<<7 | 0x1D, - 33620 - 19968: jis0212<<14 | 0x36<<7 | 0x42, - 33621 - 19968: jis0212<<14 | 0x36<<7 | 0x59, - 33622 - 19968: jis0212<<14 | 0x36<<7 | 0x5A, - 33623 - 19968: jis0212<<14 | 0x36<<7 | 0x5B, - 33624 - 19968: jis0208<<14 | 0x20<<7 | 0x50, - 33634 - 19968: jis0208<<14 | 0x5A<<7 | 0x37, - 33648 - 19968: jis0212<<14 | 0x36<<7 | 0x5C, - 33651 - 19968: jis0208<<14 | 0x47<<7 | 0x19, - 33653 - 19968: jis0208<<14 | 0x47<<7 | 0x1A, - 33655 - 19968: jis0208<<14 | 0x11<<7 | 0x38, - 33656 - 19968: jis0212<<14 | 0x36<<7 | 0x5D, - 33659 - 19968: jis0208<<14 | 0x11<<7 | 0x0D, - 33660 - 19968: jis0208<<14 | 0x47<<7 | 0x17, - 33661 - 19968: jis0212<<14 | 0x37<<7 | 0x00, - 33663 - 19968: jis0208<<14 | 0x5A<<7 | 0x38, - 33664 - 19968: jis0212<<14 | 0x37<<7 | 0x02, - 33666 - 19968: jis0212<<14 | 0x37<<7 | 0x03, - 33668 - 19968: jis0212<<14 | 0x37<<7 | 0x04, - 33669 - 19968: jis0208<<14 | 0x47<<7 | 0x0D, - 33670 - 19968: jis0212<<14 | 0x37<<7 | 0x05, - 33671 - 19968: jis0208<<14 | 0x47<<7 | 0x15, - 33673 - 19968: jis0208<<14 | 0x47<<7 | 0x1C, - 33674 - 19968: jis0208<<14 | 0x47<<7 | 0x16, - 33677 - 19968: jis0212<<14 | 0x37<<7 | 0x06, - 33678 - 19968: jis0208<<14 | 0x47<<7 | 0x14, - 33682 - 19968: jis0212<<14 | 0x37<<7 | 0x07, - 33683 - 19968: jis0208<<14 | 0x46<<7 | 0x55, - 33684 - 19968: jis0212<<14 | 0x37<<7 | 0x08, - 33685 - 19968: jis0212<<14 | 0x37<<7 | 0x09, - 33686 - 19968: jis0208<<14 | 0x47<<7 | 0x12, - 33688 - 19968: jis0212<<14 | 0x37<<7 | 0x0A, - 33689 - 19968: jis0212<<14 | 0x37<<7 | 0x0B, - 33690 - 19968: jis0208<<14 | 0x47<<7 | 0x0E, - 33691 - 19968: jis0212<<14 | 0x37<<7 | 0x0C, - 33692 - 19968: jis0212<<14 | 0x37<<7 | 0x0D, - 33693 - 19968: jis0212<<14 | 0x37<<7 | 0x0E, - 33694 - 19968: jis0208<<14 | 0x13<<7 | 0x2F, - 33695 - 19968: jis0208<<14 | 0x47<<7 | 0x10, - 33696 - 19968: jis0208<<14 | 0x47<<7 | 0x1B, - 33698 - 19968: jis0208<<14 | 0x47<<7 | 0x11, - 33702 - 19968: jis0212<<14 | 0x37<<7 | 0x0F, - 33703 - 19968: jis0212<<14 | 0x37<<7 | 0x10, - 33704 - 19968: jis0208<<14 | 0x47<<7 | 0x1D, - 33705 - 19968: jis0212<<14 | 0x37<<7 | 0x11, - 33706 - 19968: jis0208<<14 | 0x47<<7 | 0x0F, - 33707 - 19968: jis0208<<14 | 0x26<<7 | 0x5B, - 33708 - 19968: jis0212<<14 | 0x37<<7 | 0x12, - 33709 - 19968: jis0212<<14 | 0x37<<7 | 0x2B, - 33713 - 19968: jis0208<<14 | 0x2C<<7 | 0x48, - 33717 - 19968: jis0208<<14 | 0x47<<7 | 0x18, - 33725 - 19968: jis0208<<14 | 0x47<<7 | 0x2E, - 33726 - 19968: jis0212<<14 | 0x37<<7 | 0x13, - 33727 - 19968: jis0212<<14 | 0x37<<7 | 0x14, - 33728 - 19968: jis0212<<14 | 0x37<<7 | 0x15, - 33729 - 19968: jis0208<<14 | 0x47<<7 | 0x26, - 33733 - 19968: jis0208<<14 | 0x1E<<7 | 0x5A, - 33735 - 19968: jis0208<<14 | 0x5A<<7 | 0x39, - 33737 - 19968: jis0212<<14 | 0x37<<7 | 0x17, - 33738 - 19968: jis0208<<14 | 0x14<<7 | 0x25, - 33740 - 19968: jis0208<<14 | 0x15<<7 | 0x3C, - 33742 - 19968: jis0208<<14 | 0x47<<7 | 0x21, - 33743 - 19968: jis0212<<14 | 0x37<<7 | 0x18, - 33744 - 19968: jis0212<<14 | 0x37<<7 | 0x19, - 33745 - 19968: jis0212<<14 | 0x37<<7 | 0x1A, - 33747 - 19968: jis0208<<14 | 0x11<<7 | 0x3A, - 33748 - 19968: jis0212<<14 | 0x37<<7 | 0x1B, - 33750 - 19968: jis0208<<14 | 0x1D<<7 | 0x33, - 33752 - 19968: jis0208<<14 | 0x47<<7 | 0x24, - 33756 - 19968: jis0208<<14 | 0x19<<7 | 0x39, - 33757 - 19968: jis0212<<14 | 0x37<<7 | 0x1C, - 33759 - 19968: jis0208<<14 | 0x24<<7 | 0x30, - 33760 - 19968: jis0208<<14 | 0x47<<7 | 0x29, - 33768 - 19968: jis0212<<14 | 0x37<<7 | 0x1E, - 33769 - 19968: jis0208<<14 | 0x29<<7 | 0x4D, - 33770 - 19968: jis0212<<14 | 0x37<<7 | 0x1F, - 33771 - 19968: jis0208<<14 | 0x47<<7 | 0x20, - 33775 - 19968: jis0208<<14 | 0x11<<7 | 0x39, - 33776 - 19968: jis0208<<14 | 0x17<<7 | 0x35, - 33777 - 19968: jis0208<<14 | 0x28<<7 | 0x08, - 33778 - 19968: jis0208<<14 | 0x47<<7 | 0x2A, - 33780 - 19968: jis0208<<14 | 0x47<<7 | 0x1E, - 33782 - 19968: jis0208<<14 | 0x5A<<7 | 0x3A, - 33783 - 19968: jis0208<<14 | 0x47<<7 | 0x27, - 33784 - 19968: jis0212<<14 | 0x37<<7 | 0x21, - 33785 - 19968: jis0212<<14 | 0x37<<7 | 0x22, - 33787 - 19968: jis0208<<14 | 0x47<<7 | 0x31, - 33788 - 19968: jis0212<<14 | 0x37<<7 | 0x23, - 33789 - 19968: jis0208<<14 | 0x47<<7 | 0x22, - 33793 - 19968: jis0212<<14 | 0x37<<7 | 0x24, - 33795 - 19968: jis0208<<14 | 0x47<<7 | 0x23, - 33796 - 19968: jis0208<<14 | 0x25<<7 | 0x19, - 33798 - 19968: jis0212<<14 | 0x37<<7 | 0x25, - 33799 - 19968: jis0208<<14 | 0x47<<7 | 0x28, - 33802 - 19968: jis0212<<14 | 0x37<<7 | 0x26, - 33803 - 19968: jis0208<<14 | 0x47<<7 | 0x25, - 33804 - 19968: jis0208<<14 | 0x2A<<7 | 0x07, - 33805 - 19968: jis0208<<14 | 0x47<<7 | 0x2B, - 33806 - 19968: jis0208<<14 | 0x0F<<7 | 0x3F, - 33807 - 19968: jis0212<<14 | 0x37<<7 | 0x27, - 33809 - 19968: jis0212<<14 | 0x37<<7 | 0x28, - 33811 - 19968: jis0208<<14 | 0x47<<7 | 0x1F, - 33813 - 19968: jis0212<<14 | 0x37<<7 | 0x29, - 33817 - 19968: jis0212<<14 | 0x37<<7 | 0x2A, - 33824 - 19968: jis0208<<14 | 0x47<<7 | 0x2D, - 33826 - 19968: jis0208<<14 | 0x47<<7 | 0x2C, - 33833 - 19968: jis0208<<14 | 0x26<<7 | 0x4A, - 33834 - 19968: jis0208<<14 | 0x47<<7 | 0x33, - 33836 - 19968: jis0208<<14 | 0x47<<7 | 0x3E, - 33839 - 19968: jis0212<<14 | 0x37<<7 | 0x2C, - 33841 - 19968: jis0208<<14 | 0x12<<7 | 0x5D, - 33845 - 19968: jis0208<<14 | 0x47<<7 | 0x41, - 33848 - 19968: jis0208<<14 | 0x47<<7 | 0x2F, - 33849 - 19968: jis0212<<14 | 0x37<<7 | 0x2D, - 33852 - 19968: jis0208<<14 | 0x47<<7 | 0x34, - 33853 - 19968: jis0208<<14 | 0x2C<<7 | 0x4D, - 33861 - 19968: jis0212<<14 | 0x37<<7 | 0x2E, - 33862 - 19968: jis0208<<14 | 0x47<<7 | 0x3D, - 33863 - 19968: jis0212<<14 | 0x37<<7 | 0x2F, - 33864 - 19968: jis0208<<14 | 0x5A<<7 | 0x3B, - 33865 - 19968: jis0208<<14 | 0x2C<<7 | 0x34, - 33866 - 19968: jis0212<<14 | 0x37<<7 | 0x31, - 33869 - 19968: jis0212<<14 | 0x37<<7 | 0x32, - 33870 - 19968: jis0208<<14 | 0x2D<<7 | 0x09, - 33871 - 19968: jis0212<<14 | 0x37<<7 | 0x33, - 33873 - 19968: jis0212<<14 | 0x37<<7 | 0x34, - 33874 - 19968: jis0212<<14 | 0x37<<7 | 0x35, - 33878 - 19968: jis0212<<14 | 0x37<<7 | 0x36, - 33879 - 19968: jis0208<<14 | 0x22<<7 | 0x57, - 33880 - 19968: jis0212<<14 | 0x37<<7 | 0x37, - 33881 - 19968: jis0212<<14 | 0x37<<7 | 0x38, - 33882 - 19968: jis0212<<14 | 0x37<<7 | 0x39, - 33883 - 19968: jis0208<<14 | 0x12<<7 | 0x4A, - 33884 - 19968: jis0212<<14 | 0x37<<7 | 0x3A, - 33888 - 19968: jis0212<<14 | 0x37<<7 | 0x3B, - 33889 - 19968: jis0208<<14 | 0x28<<7 | 0x51, - 33890 - 19968: jis0208<<14 | 0x47<<7 | 0x43, - 33891 - 19968: jis0208<<14 | 0x25<<7 | 0x00, - 33892 - 19968: jis0212<<14 | 0x37<<7 | 0x3C, - 33893 - 19968: jis0212<<14 | 0x37<<7 | 0x3D, - 33894 - 19968: jis0208<<14 | 0x0F<<7 | 0x10, - 33895 - 19968: jis0212<<14 | 0x37<<7 | 0x3E, - 33897 - 19968: jis0208<<14 | 0x47<<7 | 0x3C, - 33898 - 19968: jis0212<<14 | 0x37<<7 | 0x3F, - 33899 - 19968: jis0208<<14 | 0x47<<7 | 0x38, - 33900 - 19968: jis0208<<14 | 0x20<<7 | 0x51, - 33901 - 19968: jis0208<<14 | 0x47<<7 | 0x32, - 33902 - 19968: jis0208<<14 | 0x47<<7 | 0x3A, - 33903 - 19968: jis0208<<14 | 0x47<<7 | 0x3F, - 33904 - 19968: jis0212<<14 | 0x37<<7 | 0x40, - 33905 - 19968: jis0208<<14 | 0x26<<7 | 0x0B, - 33907 - 19968: jis0212<<14 | 0x37<<7 | 0x41, - 33908 - 19968: jis0212<<14 | 0x37<<7 | 0x42, - 33909 - 19968: jis0208<<14 | 0x0F<<7 | 0x09, - 33910 - 19968: jis0212<<14 | 0x37<<7 | 0x43, - 33911 - 19968: jis0208<<14 | 0x47<<7 | 0x37, - 33912 - 19968: jis0212<<14 | 0x37<<7 | 0x44, - 33913 - 19968: jis0208<<14 | 0x47<<7 | 0x40, - 33914 - 19968: jis0208<<14 | 0x28<<7 | 0x57, - 33916 - 19968: jis0212<<14 | 0x37<<7 | 0x45, - 33917 - 19968: jis0212<<14 | 0x37<<7 | 0x46, - 33921 - 19968: jis0212<<14 | 0x37<<7 | 0x47, - 33922 - 19968: jis0208<<14 | 0x47<<7 | 0x3B, - 33924 - 19968: jis0208<<14 | 0x47<<7 | 0x36, - 33925 - 19968: jis0212<<14 | 0x37<<7 | 0x48, - 33931 - 19968: jis0208<<14 | 0x1D<<7 | 0x34, - 33936 - 19968: jis0208<<14 | 0x1C<<7 | 0x0E, - 33938 - 19968: jis0212<<14 | 0x37<<7 | 0x49, - 33939 - 19968: jis0212<<14 | 0x37<<7 | 0x4A, - 33940 - 19968: jis0208<<14 | 0x1B<<7 | 0x0B, - 33941 - 19968: jis0212<<14 | 0x37<<7 | 0x4B, - 33945 - 19968: jis0208<<14 | 0x2B<<7 | 0x37, - 33948 - 19968: jis0208<<14 | 0x28<<7 | 0x26, - 33950 - 19968: jis0212<<14 | 0x37<<7 | 0x4C, - 33951 - 19968: jis0208<<14 | 0x47<<7 | 0x46, - 33953 - 19968: jis0208<<14 | 0x47<<7 | 0x4F, - 33958 - 19968: jis0212<<14 | 0x37<<7 | 0x4D, - 33960 - 19968: jis0212<<14 | 0x37<<7 | 0x4E, - 33961 - 19968: jis0212<<14 | 0x37<<7 | 0x4F, - 33962 - 19968: jis0212<<14 | 0x37<<7 | 0x50, - 33965 - 19968: jis0208<<14 | 0x47<<7 | 0x39, - 33967 - 19968: jis0212<<14 | 0x37<<7 | 0x51, - 33969 - 19968: jis0212<<14 | 0x37<<7 | 0x52, - 33970 - 19968: jis0208<<14 | 0x12<<7 | 0x56, - 33972 - 19968: jis0208<<14 | 0x5A<<7 | 0x3C, - 33976 - 19968: jis0208<<14 | 0x1D<<7 | 0x57, - 33977 - 19968: jis0208<<14 | 0x47<<7 | 0x44, - 33978 - 19968: jis0212<<14 | 0x37<<7 | 0x54, - 33979 - 19968: jis0208<<14 | 0x47<<7 | 0x49, - 33980 - 19968: jis0208<<14 | 0x20<<7 | 0x52, - 33981 - 19968: jis0212<<14 | 0x37<<7 | 0x55, - 33982 - 19968: jis0212<<14 | 0x37<<7 | 0x56, - 33983 - 19968: jis0208<<14 | 0x47<<7 | 0x45, - 33984 - 19968: jis0212<<14 | 0x37<<7 | 0x57, - 33985 - 19968: jis0208<<14 | 0x47<<7 | 0x4C, - 33986 - 19968: jis0212<<14 | 0x37<<7 | 0x58, - 33988 - 19968: jis0208<<14 | 0x22<<7 | 0x3E, - 33990 - 19968: jis0208<<14 | 0x47<<7 | 0x4D, - 33991 - 19968: jis0212<<14 | 0x37<<7 | 0x59, - 33992 - 19968: jis0212<<14 | 0x37<<7 | 0x5A, - 33993 - 19968: jis0208<<14 | 0x2C<<7 | 0x35, - 33994 - 19968: jis0208<<14 | 0x47<<7 | 0x42, - 33995 - 19968: jis0208<<14 | 0x12<<7 | 0x17, - 33996 - 19968: jis0212<<14 | 0x37<<7 | 0x5B, - 33997 - 19968: jis0208<<14 | 0x47<<7 | 0x48, - 33999 - 19968: jis0212<<14 | 0x37<<7 | 0x5C, - 34000 - 19968: jis0208<<14 | 0x47<<7 | 0x4B, - 34001 - 19968: jis0208<<14 | 0x2B<<7 | 0x0B, - 34003 - 19968: jis0212<<14 | 0x37<<7 | 0x5D, - 34006 - 19968: jis0208<<14 | 0x47<<7 | 0x4E, - 34009 - 19968: jis0208<<14 | 0x47<<7 | 0x47, - 34010 - 19968: jis0208<<14 | 0x47<<7 | 0x4A, - 34012 - 19968: jis0208<<14 | 0x58<<7 | 0x04, - 34023 - 19968: jis0212<<14 | 0x38<<7 | 0x01, - 34026 - 19968: jis0212<<14 | 0x38<<7 | 0x02, - 34028 - 19968: jis0208<<14 | 0x2A<<7 | 0x08, - 34030 - 19968: jis0208<<14 | 0x2E<<7 | 0x00, - 34031 - 19968: jis0212<<14 | 0x38<<7 | 0x03, - 34032 - 19968: jis0212<<14 | 0x38<<7 | 0x04, - 34033 - 19968: jis0212<<14 | 0x38<<7 | 0x05, - 34034 - 19968: jis0212<<14 | 0x38<<7 | 0x06, - 34036 - 19968: jis0208<<14 | 0x47<<7 | 0x52, - 34039 - 19968: jis0212<<14 | 0x38<<7 | 0x07, - 34042 - 19968: jis0212<<14 | 0x38<<7 | 0x09, - 34043 - 19968: jis0212<<14 | 0x38<<7 | 0x0A, - 34044 - 19968: jis0208<<14 | 0x47<<7 | 0x59, - 34045 - 19968: jis0212<<14 | 0x38<<7 | 0x0B, - 34047 - 19968: jis0208<<14 | 0x47<<7 | 0x51, - 34048 - 19968: jis0208<<14 | 0x1B<<7 | 0x22, - 34050 - 19968: jis0212<<14 | 0x38<<7 | 0x0C, - 34051 - 19968: jis0212<<14 | 0x38<<7 | 0x0D, - 34054 - 19968: jis0208<<14 | 0x47<<7 | 0x30, - 34055 - 19968: jis0212<<14 | 0x38<<7 | 0x0E, - 34060 - 19968: jis0212<<14 | 0x38<<7 | 0x0F, - 34062 - 19968: jis0212<<14 | 0x38<<7 | 0x10, - 34064 - 19968: jis0212<<14 | 0x38<<7 | 0x11, - 34065 - 19968: jis0208<<14 | 0x29<<7 | 0x2D, - 34067 - 19968: jis0208<<14 | 0x2B<<7 | 0x01, - 34068 - 19968: jis0208<<14 | 0x47<<7 | 0x58, - 34069 - 19968: jis0208<<14 | 0x47<<7 | 0x57, - 34071 - 19968: jis0208<<14 | 0x47<<7 | 0x53, - 34072 - 19968: jis0208<<14 | 0x47<<7 | 0x54, - 34074 - 19968: jis0208<<14 | 0x10<<7 | 0x15, - 34076 - 19968: jis0212<<14 | 0x38<<7 | 0x12, - 34078 - 19968: jis0212<<14 | 0x38<<7 | 0x13, - 34079 - 19968: jis0208<<14 | 0x47<<7 | 0x56, - 34081 - 19968: jis0208<<14 | 0x47<<7 | 0x50, - 34082 - 19968: jis0212<<14 | 0x38<<7 | 0x14, - 34083 - 19968: jis0212<<14 | 0x38<<7 | 0x15, - 34084 - 19968: jis0212<<14 | 0x38<<7 | 0x16, - 34085 - 19968: jis0212<<14 | 0x38<<7 | 0x17, - 34086 - 19968: jis0208<<14 | 0x23<<7 | 0x34, - 34087 - 19968: jis0212<<14 | 0x38<<7 | 0x18, - 34090 - 19968: jis0212<<14 | 0x38<<7 | 0x19, - 34091 - 19968: jis0212<<14 | 0x38<<7 | 0x1A, - 34092 - 19968: jis0208<<14 | 0x47<<7 | 0x55, - 34093 - 19968: jis0208<<14 | 0x0F<<7 | 0x5D, - 34095 - 19968: jis0212<<14 | 0x38<<7 | 0x1B, - 34098 - 19968: jis0212<<14 | 0x38<<7 | 0x08, - 34099 - 19968: jis0212<<14 | 0x38<<7 | 0x1C, - 34100 - 19968: jis0212<<14 | 0x38<<7 | 0x1D, - 34101 - 19968: jis0208<<14 | 0x21<<7 | 0x01, - 34102 - 19968: jis0212<<14 | 0x38<<7 | 0x1E, - 34109 - 19968: jis0208<<14 | 0x29<<7 | 0x22, - 34111 - 19968: jis0212<<14 | 0x38<<7 | 0x1F, - 34112 - 19968: jis0208<<14 | 0x47<<7 | 0x5A, - 34113 - 19968: jis0208<<14 | 0x48<<7 | 0x00, - 34115 - 19968: jis0208<<14 | 0x27<<7 | 0x38, - 34118 - 19968: jis0212<<14 | 0x38<<7 | 0x20, - 34120 - 19968: jis0208<<14 | 0x47<<7 | 0x5D, - 34121 - 19968: jis0208<<14 | 0x1D<<7 | 0x35, - 34122 - 19968: jis0208<<14 | 0x1B<<7 | 0x28, - 34123 - 19968: jis0208<<14 | 0x48<<7 | 0x02, - 34126 - 19968: jis0208<<14 | 0x15<<7 | 0x1D, - 34127 - 19968: jis0212<<14 | 0x38<<7 | 0x21, - 34128 - 19968: jis0212<<14 | 0x38<<7 | 0x22, - 34129 - 19968: jis0212<<14 | 0x38<<7 | 0x23, - 34130 - 19968: jis0212<<14 | 0x38<<7 | 0x24, - 34131 - 19968: jis0208<<14 | 0x5A<<7 | 0x3D, - 34133 - 19968: jis0208<<14 | 0x48<<7 | 0x03, - 34134 - 19968: jis0212<<14 | 0x38<<7 | 0x26, - 34135 - 19968: jis0208<<14 | 0x28<<7 | 0x58, - 34136 - 19968: jis0208<<14 | 0x47<<7 | 0x5C, - 34137 - 19968: jis0208<<14 | 0x5A<<7 | 0x3E, - 34138 - 19968: jis0208<<14 | 0x47<<7 | 0x35, - 34140 - 19968: jis0212<<14 | 0x38<<7 | 0x28, - 34141 - 19968: jis0212<<14 | 0x38<<7 | 0x29, - 34142 - 19968: jis0212<<14 | 0x38<<7 | 0x2A, - 34143 - 19968: jis0212<<14 | 0x38<<7 | 0x2B, - 34144 - 19968: jis0212<<14 | 0x38<<7 | 0x2C, - 34145 - 19968: jis0212<<14 | 0x38<<7 | 0x2D, - 34146 - 19968: jis0212<<14 | 0x38<<7 | 0x2E, - 34147 - 19968: jis0208<<14 | 0x47<<7 | 0x5B, - 34148 - 19968: jis0212<<14 | 0x38<<7 | 0x2F, - 34152 - 19968: jis0208<<14 | 0x2E<<7 | 0x2E, - 34153 - 19968: jis0208<<14 | 0x25<<7 | 0x01, - 34154 - 19968: jis0208<<14 | 0x28<<7 | 0x52, - 34155 - 19968: jis0208<<14 | 0x5A<<7 | 0x3F, - 34157 - 19968: jis0208<<14 | 0x48<<7 | 0x0A, - 34159 - 19968: jis0212<<14 | 0x38<<7 | 0x31, - 34167 - 19968: jis0208<<14 | 0x48<<7 | 0x10, - 34169 - 19968: jis0212<<14 | 0x38<<7 | 0x32, - 34170 - 19968: jis0212<<14 | 0x38<<7 | 0x33, - 34171 - 19968: jis0212<<14 | 0x38<<7 | 0x34, - 34173 - 19968: jis0212<<14 | 0x38<<7 | 0x35, - 34174 - 19968: jis0208<<14 | 0x48<<7 | 0x11, - 34175 - 19968: jis0212<<14 | 0x38<<7 | 0x36, - 34176 - 19968: jis0208<<14 | 0x48<<7 | 0x04, - 34177 - 19968: jis0212<<14 | 0x38<<7 | 0x37, - 34180 - 19968: jis0208<<14 | 0x26<<7 | 0x55, - 34181 - 19968: jis0212<<14 | 0x38<<7 | 0x38, - 34182 - 19968: jis0212<<14 | 0x38<<7 | 0x39, - 34183 - 19968: jis0208<<14 | 0x48<<7 | 0x0E, - 34184 - 19968: jis0208<<14 | 0x48<<7 | 0x06, - 34185 - 19968: jis0212<<14 | 0x38<<7 | 0x3A, - 34186 - 19968: jis0208<<14 | 0x48<<7 | 0x08, - 34187 - 19968: jis0212<<14 | 0x38<<7 | 0x3B, - 34188 - 19968: jis0212<<14 | 0x38<<7 | 0x3C, - 34191 - 19968: jis0212<<14 | 0x38<<7 | 0x3D, - 34192 - 19968: jis0208<<14 | 0x48<<7 | 0x12, - 34193 - 19968: jis0208<<14 | 0x48<<7 | 0x07, - 34195 - 19968: jis0212<<14 | 0x38<<7 | 0x3E, - 34196 - 19968: jis0208<<14 | 0x48<<7 | 0x0B, - 34199 - 19968: jis0208<<14 | 0x10<<7 | 0x51, - 34200 - 19968: jis0212<<14 | 0x38<<7 | 0x3F, - 34201 - 19968: jis0208<<14 | 0x25<<7 | 0x44, - 34203 - 19968: jis0208<<14 | 0x48<<7 | 0x0C, - 34204 - 19968: jis0208<<14 | 0x48<<7 | 0x0F, - 34205 - 19968: jis0212<<14 | 0x38<<7 | 0x40, - 34207 - 19968: jis0212<<14 | 0x38<<7 | 0x41, - 34208 - 19968: jis0212<<14 | 0x38<<7 | 0x42, - 34210 - 19968: jis0212<<14 | 0x38<<7 | 0x43, - 34212 - 19968: jis0208<<14 | 0x48<<7 | 0x05, - 34213 - 19968: jis0212<<14 | 0x38<<7 | 0x44, - 34214 - 19968: jis0208<<14 | 0x20<<7 | 0x05, - 34215 - 19968: jis0212<<14 | 0x38<<7 | 0x45, - 34216 - 19968: jis0208<<14 | 0x48<<7 | 0x09, - 34217 - 19968: jis0208<<14 | 0x1A<<7 | 0x06, - 34218 - 19968: jis0208<<14 | 0x1E<<7 | 0x24, - 34219 - 19968: jis0208<<14 | 0x16<<7 | 0x0F, - 34220 - 19968: jis0208<<14 | 0x2B<<7 | 0x53, - 34221 - 19968: jis0212<<14 | 0x38<<7 | 0x53, - 34222 - 19968: jis0208<<14 | 0x2B<<7 | 0x58, - 34223 - 19968: jis0208<<14 | 0x1C<<7 | 0x51, - 34224 - 19968: jis0208<<14 | 0x5A<<7 | 0x41, - 34228 - 19968: jis0212<<14 | 0x38<<7 | 0x46, - 34230 - 19968: jis0212<<14 | 0x38<<7 | 0x47, - 34231 - 19968: jis0212<<14 | 0x38<<7 | 0x48, - 34232 - 19968: jis0212<<14 | 0x38<<7 | 0x49, - 34233 - 19968: jis0208<<14 | 0x48<<7 | 0x16, - 34234 - 19968: jis0208<<14 | 0x48<<7 | 0x14, - 34236 - 19968: jis0212<<14 | 0x38<<7 | 0x4A, - 34237 - 19968: jis0212<<14 | 0x38<<7 | 0x4B, - 34238 - 19968: jis0212<<14 | 0x38<<7 | 0x4C, - 34239 - 19968: jis0212<<14 | 0x38<<7 | 0x4D, - 34241 - 19968: jis0208<<14 | 0x2E<<7 | 0x2D, - 34242 - 19968: jis0212<<14 | 0x38<<7 | 0x4E, - 34247 - 19968: jis0212<<14 | 0x38<<7 | 0x4F, - 34249 - 19968: jis0208<<14 | 0x48<<7 | 0x13, - 34250 - 19968: jis0212<<14 | 0x38<<7 | 0x50, - 34251 - 19968: jis0212<<14 | 0x38<<7 | 0x51, - 34253 - 19968: jis0208<<14 | 0x2C<<7 | 0x54, - 34254 - 19968: jis0212<<14 | 0x38<<7 | 0x52, - 34255 - 19968: jis0208<<14 | 0x48<<7 | 0x15, - 34256 - 19968: jis0208<<14 | 0x48<<7 | 0x17, - 34261 - 19968: jis0208<<14 | 0x48<<7 | 0x18, - 34264 - 19968: jis0212<<14 | 0x38<<7 | 0x54, - 34266 - 19968: jis0212<<14 | 0x38<<7 | 0x55, - 34268 - 19968: jis0208<<14 | 0x48<<7 | 0x1B, - 34269 - 19968: jis0208<<14 | 0x48<<7 | 0x19, - 34271 - 19968: jis0212<<14 | 0x38<<7 | 0x56, - 34272 - 19968: jis0212<<14 | 0x38<<7 | 0x57, - 34276 - 19968: jis0208<<14 | 0x25<<7 | 0x02, - 34277 - 19968: jis0208<<14 | 0x48<<7 | 0x1A, - 34278 - 19968: jis0212<<14 | 0x38<<7 | 0x58, - 34280 - 19968: jis0212<<14 | 0x38<<7 | 0x59, - 34281 - 19968: jis0208<<14 | 0x27<<7 | 0x2C, - 34282 - 19968: jis0208<<14 | 0x48<<7 | 0x0D, - 34285 - 19968: jis0212<<14 | 0x38<<7 | 0x5A, - 34291 - 19968: jis0212<<14 | 0x38<<7 | 0x5B, - 34294 - 19968: jis0212<<14 | 0x38<<7 | 0x5C, - 34295 - 19968: jis0208<<14 | 0x1C<<7 | 0x52, - 34297 - 19968: jis0208<<14 | 0x48<<7 | 0x1C, - 34298 - 19968: jis0208<<14 | 0x48<<7 | 0x21, - 34299 - 19968: jis0208<<14 | 0x20<<7 | 0x53, - 34300 - 19968: jis0212<<14 | 0x38<<7 | 0x5D, - 34302 - 19968: jis0208<<14 | 0x48<<7 | 0x20, - 34303 - 19968: jis0212<<14 | 0x39<<7 | 0x00, - 34304 - 19968: jis0212<<14 | 0x39<<7 | 0x01, - 34306 - 19968: jis0208<<14 | 0x48<<7 | 0x01, - 34308 - 19968: jis0212<<14 | 0x39<<7 | 0x02, - 34309 - 19968: jis0212<<14 | 0x39<<7 | 0x03, - 34310 - 19968: jis0208<<14 | 0x48<<7 | 0x22, - 34311 - 19968: jis0208<<14 | 0x20<<7 | 0x28, - 34314 - 19968: jis0208<<14 | 0x48<<7 | 0x1D, - 34315 - 19968: jis0208<<14 | 0x48<<7 | 0x1F, - 34317 - 19968: jis0212<<14 | 0x39<<7 | 0x04, - 34318 - 19968: jis0212<<14 | 0x39<<7 | 0x05, - 34320 - 19968: jis0212<<14 | 0x39<<7 | 0x06, - 34321 - 19968: jis0212<<14 | 0x39<<7 | 0x07, - 34322 - 19968: jis0212<<14 | 0x39<<7 | 0x08, - 34323 - 19968: jis0208<<14 | 0x48<<7 | 0x1E, - 34326 - 19968: jis0208<<14 | 0x3C<<7 | 0x10, - 34327 - 19968: jis0208<<14 | 0x3C<<7 | 0x01, - 34328 - 19968: jis0212<<14 | 0x39<<7 | 0x09, - 34329 - 19968: jis0212<<14 | 0x39<<7 | 0x0A, - 34330 - 19968: jis0208<<14 | 0x48<<7 | 0x24, - 34331 - 19968: jis0212<<14 | 0x39<<7 | 0x0B, - 34334 - 19968: jis0212<<14 | 0x39<<7 | 0x0C, - 34337 - 19968: jis0212<<14 | 0x39<<7 | 0x0D, - 34338 - 19968: jis0208<<14 | 0x48<<7 | 0x23, - 34343 - 19968: jis0212<<14 | 0x39<<7 | 0x0E, - 34345 - 19968: jis0212<<14 | 0x39<<7 | 0x0F, - 34349 - 19968: jis0208<<14 | 0x2C<<7 | 0x55, - 34351 - 19968: jis0208<<14 | 0x41<<7 | 0x1B, - 34352 - 19968: jis0208<<14 | 0x48<<7 | 0x25, - 34358 - 19968: jis0212<<14 | 0x39<<7 | 0x10, - 34360 - 19968: jis0212<<14 | 0x39<<7 | 0x11, - 34362 - 19968: jis0212<<14 | 0x39<<7 | 0x12, - 34364 - 19968: jis0212<<14 | 0x39<<7 | 0x13, - 34365 - 19968: jis0212<<14 | 0x39<<7 | 0x14, - 34367 - 19968: jis0208<<14 | 0x48<<7 | 0x26, - 34368 - 19968: jis0212<<14 | 0x39<<7 | 0x15, - 34369 - 19968: jis0212<<14 | 0x17<<7 | 0x45, - 34370 - 19968: jis0212<<14 | 0x39<<7 | 0x16, - 34374 - 19968: jis0212<<14 | 0x39<<7 | 0x17, - 34381 - 19968: jis0208<<14 | 0x48<<7 | 0x27, - 34382 - 19968: jis0208<<14 | 0x17<<7 | 0x36, - 34384 - 19968: jis0208<<14 | 0x14<<7 | 0x33, - 34386 - 19968: jis0212<<14 | 0x39<<7 | 0x18, - 34387 - 19968: jis0212<<14 | 0x39<<7 | 0x19, - 34388 - 19968: jis0208<<14 | 0x48<<7 | 0x29, - 34389 - 19968: jis0208<<14 | 0x30<<7 | 0x3C, - 34390 - 19968: jis0212<<14 | 0x39<<7 | 0x1A, - 34391 - 19968: jis0212<<14 | 0x39<<7 | 0x1B, - 34392 - 19968: jis0212<<14 | 0x39<<7 | 0x1C, - 34393 - 19968: jis0212<<14 | 0x39<<7 | 0x1D, - 34394 - 19968: jis0208<<14 | 0x14<<7 | 0x54, - 34396 - 19968: jis0208<<14 | 0x2D<<7 | 0x19, - 34397 - 19968: jis0212<<14 | 0x39<<7 | 0x1E, - 34398 - 19968: jis0208<<14 | 0x15<<7 | 0x52, - 34399 - 19968: jis0208<<14 | 0x48<<7 | 0x2A, - 34400 - 19968: jis0212<<14 | 0x39<<7 | 0x1F, - 34401 - 19968: jis0212<<14 | 0x39<<7 | 0x20, - 34402 - 19968: jis0212<<14 | 0x39<<7 | 0x21, - 34403 - 19968: jis0212<<14 | 0x39<<7 | 0x22, - 34404 - 19968: jis0212<<14 | 0x39<<7 | 0x23, - 34407 - 19968: jis0208<<14 | 0x48<<7 | 0x2B, - 34409 - 19968: jis0212<<14 | 0x39<<7 | 0x24, - 34411 - 19968: jis0208<<14 | 0x22<<7 | 0x4D, - 34412 - 19968: jis0212<<14 | 0x39<<7 | 0x25, - 34415 - 19968: jis0212<<14 | 0x39<<7 | 0x26, - 34417 - 19968: jis0208<<14 | 0x48<<7 | 0x2C, - 34421 - 19968: jis0212<<14 | 0x39<<7 | 0x27, - 34422 - 19968: jis0212<<14 | 0x39<<7 | 0x28, - 34423 - 19968: jis0212<<14 | 0x39<<7 | 0x29, - 34425 - 19968: jis0208<<14 | 0x25<<7 | 0x59, - 34426 - 19968: jis0212<<14 | 0x39<<7 | 0x2A, - 34427 - 19968: jis0208<<14 | 0x0F<<7 | 0x19, - 34440 - 19968: jis0212<<14 | 0x39<<7 | 0x4C, - 34442 - 19968: jis0208<<14 | 0x11<<7 | 0x42, - 34443 - 19968: jis0208<<14 | 0x48<<7 | 0x31, - 34444 - 19968: jis0208<<14 | 0x48<<7 | 0x32, - 34445 - 19968: jis0212<<14 | 0x39<<7 | 0x2B, - 34449 - 19968: jis0212<<14 | 0x39<<7 | 0x2C, - 34451 - 19968: jis0208<<14 | 0x48<<7 | 0x2D, - 34453 - 19968: jis0208<<14 | 0x1A<<7 | 0x1C, - 34454 - 19968: jis0212<<14 | 0x39<<7 | 0x2D, - 34456 - 19968: jis0212<<14 | 0x39<<7 | 0x2E, - 34458 - 19968: jis0212<<14 | 0x39<<7 | 0x2F, - 34460 - 19968: jis0212<<14 | 0x39<<7 | 0x30, - 34465 - 19968: jis0212<<14 | 0x39<<7 | 0x31, - 34467 - 19968: jis0208<<14 | 0x48<<7 | 0x2E, - 34468 - 19968: jis0208<<14 | 0x26<<7 | 0x21, - 34470 - 19968: jis0212<<14 | 0x39<<7 | 0x32, - 34471 - 19968: jis0212<<14 | 0x39<<7 | 0x33, - 34472 - 19968: jis0212<<14 | 0x39<<7 | 0x34, - 34473 - 19968: jis0208<<14 | 0x48<<7 | 0x2F, - 34474 - 19968: jis0208<<14 | 0x48<<7 | 0x30, - 34475 - 19968: jis0208<<14 | 0x48<<7 | 0x3A, - 34477 - 19968: jis0212<<14 | 0x39<<7 | 0x35, - 34479 - 19968: jis0208<<14 | 0x48<<7 | 0x34, - 34480 - 19968: jis0208<<14 | 0x48<<7 | 0x37, - 34481 - 19968: jis0212<<14 | 0x39<<7 | 0x36, - 34483 - 19968: jis0212<<14 | 0x39<<7 | 0x37, - 34484 - 19968: jis0212<<14 | 0x39<<7 | 0x38, - 34485 - 19968: jis0212<<14 | 0x39<<7 | 0x39, - 34486 - 19968: jis0208<<14 | 0x48<<7 | 0x33, - 34487 - 19968: jis0212<<14 | 0x39<<7 | 0x3A, - 34488 - 19968: jis0212<<14 | 0x39<<7 | 0x3B, - 34489 - 19968: jis0212<<14 | 0x39<<7 | 0x3C, - 34495 - 19968: jis0212<<14 | 0x39<<7 | 0x3D, - 34496 - 19968: jis0212<<14 | 0x39<<7 | 0x3E, - 34497 - 19968: jis0212<<14 | 0x39<<7 | 0x3F, - 34499 - 19968: jis0212<<14 | 0x39<<7 | 0x40, - 34500 - 19968: jis0208<<14 | 0x48<<7 | 0x35, - 34501 - 19968: jis0212<<14 | 0x39<<7 | 0x41, - 34502 - 19968: jis0208<<14 | 0x48<<7 | 0x36, - 34503 - 19968: jis0208<<14 | 0x1B<<7 | 0x37, - 34505 - 19968: jis0208<<14 | 0x48<<7 | 0x38, - 34507 - 19968: jis0208<<14 | 0x22<<7 | 0x20, - 34509 - 19968: jis0208<<14 | 0x16<<7 | 0x35, - 34510 - 19968: jis0208<<14 | 0x12<<7 | 0x21, - 34513 - 19968: jis0212<<14 | 0x39<<7 | 0x42, - 34514 - 19968: jis0212<<14 | 0x39<<7 | 0x43, - 34516 - 19968: jis0208<<14 | 0x48<<7 | 0x3B, - 34517 - 19968: jis0212<<14 | 0x39<<7 | 0x44, - 34519 - 19968: jis0212<<14 | 0x39<<7 | 0x45, - 34521 - 19968: jis0208<<14 | 0x12<<7 | 0x1E, - 34522 - 19968: jis0212<<14 | 0x39<<7 | 0x46, - 34523 - 19968: jis0208<<14 | 0x48<<7 | 0x40, - 34524 - 19968: jis0212<<14 | 0x39<<7 | 0x47, - 34526 - 19968: jis0208<<14 | 0x48<<7 | 0x3C, - 34527 - 19968: jis0208<<14 | 0x48<<7 | 0x3F, - 34528 - 19968: jis0212<<14 | 0x39<<7 | 0x48, - 34531 - 19968: jis0212<<14 | 0x39<<7 | 0x49, - 34532 - 19968: jis0208<<14 | 0x27<<7 | 0x19, - 34533 - 19968: jis0212<<14 | 0x39<<7 | 0x4A, - 34535 - 19968: jis0212<<14 | 0x39<<7 | 0x4B, - 34537 - 19968: jis0208<<14 | 0x48<<7 | 0x3D, - 34540 - 19968: jis0208<<14 | 0x48<<7 | 0x3E, - 34541 - 19968: jis0208<<14 | 0x28<<7 | 0x27, - 34542 - 19968: jis0208<<14 | 0x27<<7 | 0x39, - 34543 - 19968: jis0208<<14 | 0x48<<7 | 0x41, - 34552 - 19968: jis0208<<14 | 0x21<<7 | 0x5C, - 34553 - 19968: jis0208<<14 | 0x48<<7 | 0x4B, - 34554 - 19968: jis0212<<14 | 0x39<<7 | 0x4D, - 34555 - 19968: jis0208<<14 | 0x48<<7 | 0x47, - 34556 - 19968: jis0212<<14 | 0x39<<7 | 0x4E, - 34557 - 19968: jis0212<<14 | 0x39<<7 | 0x4F, - 34558 - 19968: jis0208<<14 | 0x11<<7 | 0x4A, - 34560 - 19968: jis0208<<14 | 0x48<<7 | 0x45, - 34562 - 19968: jis0208<<14 | 0x2A<<7 | 0x09, - 34563 - 19968: jis0208<<14 | 0x48<<7 | 0x46, - 34564 - 19968: jis0212<<14 | 0x39<<7 | 0x50, - 34565 - 19968: jis0212<<14 | 0x39<<7 | 0x51, - 34566 - 19968: jis0208<<14 | 0x48<<7 | 0x43, - 34567 - 19968: jis0212<<14 | 0x39<<7 | 0x52, - 34568 - 19968: jis0208<<14 | 0x48<<7 | 0x44, - 34569 - 19968: jis0208<<14 | 0x48<<7 | 0x49, - 34570 - 19968: jis0208<<14 | 0x48<<7 | 0x4C, - 34571 - 19968: jis0212<<14 | 0x39<<7 | 0x53, - 34573 - 19968: jis0208<<14 | 0x48<<7 | 0x4A, - 34574 - 19968: jis0212<<14 | 0x39<<7 | 0x54, - 34575 - 19968: jis0212<<14 | 0x39<<7 | 0x55, - 34576 - 19968: jis0212<<14 | 0x39<<7 | 0x56, - 34577 - 19968: jis0208<<14 | 0x48<<7 | 0x48, - 34578 - 19968: jis0208<<14 | 0x48<<7 | 0x42, - 34579 - 19968: jis0212<<14 | 0x39<<7 | 0x57, - 34580 - 19968: jis0212<<14 | 0x39<<7 | 0x58, - 34584 - 19968: jis0208<<14 | 0x22<<7 | 0x37, - 34585 - 19968: jis0212<<14 | 0x39<<7 | 0x59, - 34586 - 19968: jis0208<<14 | 0x48<<7 | 0x53, - 34588 - 19968: jis0208<<14 | 0x2B<<7 | 0x09, - 34590 - 19968: jis0212<<14 | 0x39<<7 | 0x5A, - 34591 - 19968: jis0212<<14 | 0x39<<7 | 0x5B, - 34593 - 19968: jis0212<<14 | 0x39<<7 | 0x5C, - 34595 - 19968: jis0212<<14 | 0x39<<7 | 0x5D, - 34597 - 19968: jis0208<<14 | 0x48<<7 | 0x51, - 34600 - 19968: jis0212<<14 | 0x3A<<7 | 0x00, - 34601 - 19968: jis0208<<14 | 0x48<<7 | 0x52, - 34606 - 19968: jis0212<<14 | 0x3A<<7 | 0x01, - 34607 - 19968: jis0212<<14 | 0x3A<<7 | 0x02, - 34609 - 19968: jis0212<<14 | 0x3A<<7 | 0x03, - 34610 - 19968: jis0212<<14 | 0x3A<<7 | 0x04, - 34612 - 19968: jis0208<<14 | 0x48<<7 | 0x4D, - 34615 - 19968: jis0208<<14 | 0x48<<7 | 0x4F, - 34617 - 19968: jis0212<<14 | 0x3A<<7 | 0x05, - 34618 - 19968: jis0212<<14 | 0x3A<<7 | 0x06, - 34619 - 19968: jis0208<<14 | 0x48<<7 | 0x50, - 34620 - 19968: jis0212<<14 | 0x3A<<7 | 0x07, - 34621 - 19968: jis0212<<14 | 0x3A<<7 | 0x08, - 34622 - 19968: jis0212<<14 | 0x3A<<7 | 0x09, - 34623 - 19968: jis0208<<14 | 0x48<<7 | 0x4E, - 34624 - 19968: jis0212<<14 | 0x3A<<7 | 0x0A, - 34627 - 19968: jis0212<<14 | 0x3A<<7 | 0x0B, - 34629 - 19968: jis0212<<14 | 0x3A<<7 | 0x0C, - 34633 - 19968: jis0208<<14 | 0x1F<<7 | 0x45, - 34635 - 19968: jis0208<<14 | 0x2E<<7 | 0x18, - 34636 - 19968: jis0208<<14 | 0x48<<7 | 0x57, - 34637 - 19968: jis0212<<14 | 0x3A<<7 | 0x0D, - 34638 - 19968: jis0208<<14 | 0x48<<7 | 0x58, - 34643 - 19968: jis0208<<14 | 0x49<<7 | 0x00, - 34645 - 19968: jis0208<<14 | 0x1E<<7 | 0x09, - 34647 - 19968: jis0208<<14 | 0x48<<7 | 0x5A, - 34648 - 19968: jis0212<<14 | 0x3A<<7 | 0x0E, - 34649 - 19968: jis0208<<14 | 0x48<<7 | 0x5D, - 34653 - 19968: jis0212<<14 | 0x3A<<7 | 0x0F, - 34655 - 19968: jis0208<<14 | 0x48<<7 | 0x55, - 34656 - 19968: jis0208<<14 | 0x48<<7 | 0x54, - 34657 - 19968: jis0212<<14 | 0x3A<<7 | 0x10, - 34659 - 19968: jis0208<<14 | 0x49<<7 | 0x01, - 34660 - 19968: jis0212<<14 | 0x3A<<7 | 0x11, - 34661 - 19968: jis0212<<14 | 0x3A<<7 | 0x12, - 34662 - 19968: jis0208<<14 | 0x11<<7 | 0x3B, - 34664 - 19968: jis0208<<14 | 0x48<<7 | 0x5B, - 34666 - 19968: jis0208<<14 | 0x49<<7 | 0x02, - 34670 - 19968: jis0208<<14 | 0x48<<7 | 0x5C, - 34671 - 19968: jis0212<<14 | 0x3A<<7 | 0x13, - 34673 - 19968: jis0212<<14 | 0x3A<<7 | 0x14, - 34674 - 19968: jis0212<<14 | 0x3A<<7 | 0x15, - 34676 - 19968: jis0208<<14 | 0x48<<7 | 0x59, - 34678 - 19968: jis0208<<14 | 0x23<<7 | 0x12, - 34680 - 19968: jis0208<<14 | 0x48<<7 | 0x56, - 34683 - 19968: jis0212<<14 | 0x3A<<7 | 0x16, - 34687 - 19968: jis0208<<14 | 0x26<<7 | 0x47, - 34690 - 19968: jis0208<<14 | 0x49<<7 | 0x06, - 34691 - 19968: jis0212<<14 | 0x3A<<7 | 0x17, - 34692 - 19968: jis0212<<14 | 0x3A<<7 | 0x18, - 34693 - 19968: jis0212<<14 | 0x3A<<7 | 0x19, - 34694 - 19968: jis0212<<14 | 0x3A<<7 | 0x1A, - 34695 - 19968: jis0212<<14 | 0x3A<<7 | 0x1B, - 34696 - 19968: jis0212<<14 | 0x3A<<7 | 0x1C, - 34697 - 19968: jis0212<<14 | 0x3A<<7 | 0x1D, - 34699 - 19968: jis0212<<14 | 0x3A<<7 | 0x1E, - 34700 - 19968: jis0212<<14 | 0x3A<<7 | 0x1F, - 34701 - 19968: jis0208<<14 | 0x2C<<7 | 0x1A, - 34704 - 19968: jis0212<<14 | 0x3A<<7 | 0x20, - 34707 - 19968: jis0212<<14 | 0x3A<<7 | 0x21, - 34709 - 19968: jis0212<<14 | 0x3A<<7 | 0x22, - 34711 - 19968: jis0212<<14 | 0x3A<<7 | 0x23, - 34712 - 19968: jis0212<<14 | 0x3A<<7 | 0x24, - 34713 - 19968: jis0212<<14 | 0x3A<<7 | 0x25, - 34718 - 19968: jis0212<<14 | 0x3A<<7 | 0x26, - 34719 - 19968: jis0208<<14 | 0x49<<7 | 0x05, - 34720 - 19968: jis0212<<14 | 0x3A<<7 | 0x27, - 34722 - 19968: jis0208<<14 | 0x49<<7 | 0x04, - 34723 - 19968: jis0212<<14 | 0x3A<<7 | 0x28, - 34727 - 19968: jis0212<<14 | 0x3A<<7 | 0x29, - 34731 - 19968: jis0208<<14 | 0x49<<7 | 0x0D, - 34732 - 19968: jis0212<<14 | 0x3A<<7 | 0x2A, - 34733 - 19968: jis0212<<14 | 0x3A<<7 | 0x2B, - 34734 - 19968: jis0212<<14 | 0x3A<<7 | 0x2C, - 34735 - 19968: jis0208<<14 | 0x49<<7 | 0x07, - 34737 - 19968: jis0212<<14 | 0x3A<<7 | 0x2D, - 34739 - 19968: jis0208<<14 | 0x49<<7 | 0x0F, - 34741 - 19968: jis0212<<14 | 0x3A<<7 | 0x2E, - 34746 - 19968: jis0208<<14 | 0x2C<<7 | 0x45, - 34747 - 19968: jis0208<<14 | 0x49<<7 | 0x12, - 34749 - 19968: jis0208<<14 | 0x49<<7 | 0x09, - 34750 - 19968: jis0212<<14 | 0x3A<<7 | 0x2F, - 34751 - 19968: jis0212<<14 | 0x3A<<7 | 0x30, - 34752 - 19968: jis0208<<14 | 0x49<<7 | 0x0A, - 34753 - 19968: jis0212<<14 | 0x3A<<7 | 0x31, - 34756 - 19968: jis0208<<14 | 0x49<<7 | 0x0E, - 34758 - 19968: jis0208<<14 | 0x49<<7 | 0x11, - 34759 - 19968: jis0208<<14 | 0x49<<7 | 0x10, - 34760 - 19968: jis0212<<14 | 0x3A<<7 | 0x32, - 34761 - 19968: jis0212<<14 | 0x3A<<7 | 0x33, - 34762 - 19968: jis0212<<14 | 0x3A<<7 | 0x34, - 34763 - 19968: jis0208<<14 | 0x49<<7 | 0x08, - 34766 - 19968: jis0212<<14 | 0x3A<<7 | 0x35, - 34768 - 19968: jis0208<<14 | 0x49<<7 | 0x0B, - 34770 - 19968: jis0208<<14 | 0x49<<7 | 0x1C, - 34773 - 19968: jis0212<<14 | 0x3A<<7 | 0x36, - 34774 - 19968: jis0212<<14 | 0x3A<<7 | 0x37, - 34777 - 19968: jis0212<<14 | 0x3A<<7 | 0x38, - 34778 - 19968: jis0212<<14 | 0x3A<<7 | 0x39, - 34780 - 19968: jis0212<<14 | 0x3A<<7 | 0x3A, - 34783 - 19968: jis0212<<14 | 0x3A<<7 | 0x3B, - 34784 - 19968: jis0208<<14 | 0x49<<7 | 0x15, - 34786 - 19968: jis0212<<14 | 0x3A<<7 | 0x3C, - 34787 - 19968: jis0212<<14 | 0x3A<<7 | 0x3D, - 34788 - 19968: jis0212<<14 | 0x3A<<7 | 0x3E, - 34794 - 19968: jis0212<<14 | 0x3A<<7 | 0x3F, - 34795 - 19968: jis0212<<14 | 0x3A<<7 | 0x40, - 34797 - 19968: jis0212<<14 | 0x3A<<7 | 0x41, - 34799 - 19968: jis0208<<14 | 0x49<<7 | 0x13, - 34801 - 19968: jis0212<<14 | 0x3A<<7 | 0x42, - 34802 - 19968: jis0208<<14 | 0x49<<7 | 0x14, - 34803 - 19968: jis0212<<14 | 0x3A<<7 | 0x43, - 34806 - 19968: jis0208<<14 | 0x49<<7 | 0x19, - 34807 - 19968: jis0208<<14 | 0x49<<7 | 0x1A, - 34808 - 19968: jis0212<<14 | 0x3A<<7 | 0x44, - 34809 - 19968: jis0208<<14 | 0x12<<7 | 0x09, - 34810 - 19968: jis0212<<14 | 0x3A<<7 | 0x45, - 34811 - 19968: jis0208<<14 | 0x14<<7 | 0x21, - 34814 - 19968: jis0208<<14 | 0x49<<7 | 0x18, - 34815 - 19968: jis0212<<14 | 0x3A<<7 | 0x46, - 34817 - 19968: jis0212<<14 | 0x3A<<7 | 0x47, - 34819 - 19968: jis0212<<14 | 0x3A<<7 | 0x48, - 34821 - 19968: jis0208<<14 | 0x49<<7 | 0x03, - 34822 - 19968: jis0212<<14 | 0x3A<<7 | 0x49, - 34823 - 19968: jis0208<<14 | 0x5A<<7 | 0x44, - 34825 - 19968: jis0212<<14 | 0x3A<<7 | 0x4A, - 34826 - 19968: jis0212<<14 | 0x3A<<7 | 0x4B, - 34827 - 19968: jis0212<<14 | 0x3A<<7 | 0x4C, - 34829 - 19968: jis0208<<14 | 0x49<<7 | 0x17, - 34830 - 19968: jis0208<<14 | 0x49<<7 | 0x1B, - 34831 - 19968: jis0208<<14 | 0x49<<7 | 0x16, - 34832 - 19968: jis0212<<14 | 0x3A<<7 | 0x4D, - 34833 - 19968: jis0208<<14 | 0x49<<7 | 0x1D, - 34834 - 19968: jis0212<<14 | 0x3A<<7 | 0x4F, - 34835 - 19968: jis0212<<14 | 0x3A<<7 | 0x50, - 34836 - 19968: jis0212<<14 | 0x3A<<7 | 0x51, - 34837 - 19968: jis0208<<14 | 0x49<<7 | 0x1F, - 34838 - 19968: jis0208<<14 | 0x49<<7 | 0x1E, - 34840 - 19968: jis0212<<14 | 0x3A<<7 | 0x52, - 34841 - 19968: jis0212<<14 | 0x3A<<7 | 0x4E, - 34842 - 19968: jis0212<<14 | 0x3A<<7 | 0x53, - 34843 - 19968: jis0212<<14 | 0x3A<<7 | 0x54, - 34844 - 19968: jis0212<<14 | 0x3A<<7 | 0x55, - 34846 - 19968: jis0212<<14 | 0x3A<<7 | 0x56, - 34847 - 19968: jis0212<<14 | 0x3A<<7 | 0x57, - 34849 - 19968: jis0208<<14 | 0x49<<7 | 0x21, - 34850 - 19968: jis0208<<14 | 0x49<<7 | 0x20, - 34851 - 19968: jis0208<<14 | 0x48<<7 | 0x39, - 34855 - 19968: jis0208<<14 | 0x49<<7 | 0x25, - 34856 - 19968: jis0212<<14 | 0x3A<<7 | 0x58, - 34861 - 19968: jis0212<<14 | 0x3A<<7 | 0x59, - 34862 - 19968: jis0212<<14 | 0x3A<<7 | 0x5A, - 34864 - 19968: jis0212<<14 | 0x3A<<7 | 0x5B, - 34865 - 19968: jis0208<<14 | 0x49<<7 | 0x22, - 34866 - 19968: jis0212<<14 | 0x3A<<7 | 0x5C, - 34869 - 19968: jis0212<<14 | 0x3A<<7 | 0x5D, - 34870 - 19968: jis0208<<14 | 0x49<<7 | 0x23, - 34873 - 19968: jis0208<<14 | 0x49<<7 | 0x24, - 34874 - 19968: jis0212<<14 | 0x3B<<7 | 0x00, - 34875 - 19968: jis0208<<14 | 0x49<<7 | 0x26, - 34876 - 19968: jis0212<<14 | 0x3B<<7 | 0x01, - 34880 - 19968: jis0208<<14 | 0x16<<7 | 0x4B, - 34881 - 19968: jis0212<<14 | 0x3B<<7 | 0x02, - 34882 - 19968: jis0208<<14 | 0x49<<7 | 0x28, - 34883 - 19968: jis0212<<14 | 0x3B<<7 | 0x03, - 34884 - 19968: jis0208<<14 | 0x49<<7 | 0x27, - 34885 - 19968: jis0212<<14 | 0x3B<<7 | 0x04, - 34886 - 19968: jis0208<<14 | 0x1C<<7 | 0x0F, - 34888 - 19968: jis0212<<14 | 0x3B<<7 | 0x05, - 34889 - 19968: jis0212<<14 | 0x3B<<7 | 0x06, - 34890 - 19968: jis0212<<14 | 0x3B<<7 | 0x07, - 34891 - 19968: jis0212<<14 | 0x3B<<7 | 0x08, - 34892 - 19968: jis0208<<14 | 0x18<<7 | 0x33, - 34893 - 19968: jis0208<<14 | 0x3D<<7 | 0x06, - 34894 - 19968: jis0212<<14 | 0x3B<<7 | 0x09, - 34897 - 19968: jis0212<<14 | 0x3B<<7 | 0x0A, - 34898 - 19968: jis0208<<14 | 0x49<<7 | 0x29, - 34899 - 19968: jis0208<<14 | 0x1C<<7 | 0x30, - 34901 - 19968: jis0212<<14 | 0x3B<<7 | 0x0B, - 34902 - 19968: jis0212<<14 | 0x3B<<7 | 0x0C, - 34903 - 19968: jis0208<<14 | 0x12<<7 | 0x18, - 34904 - 19968: jis0212<<14 | 0x3B<<7 | 0x0D, - 34905 - 19968: jis0208<<14 | 0x49<<7 | 0x2A, - 34906 - 19968: jis0212<<14 | 0x3B<<7 | 0x0E, - 34907 - 19968: jis0208<<14 | 0x10<<7 | 0x31, - 34908 - 19968: jis0212<<14 | 0x3B<<7 | 0x0F, - 34909 - 19968: jis0208<<14 | 0x1D<<7 | 0x36, - 34910 - 19968: jis0208<<14 | 0x49<<7 | 0x2B, - 34911 - 19968: jis0212<<14 | 0x3B<<7 | 0x10, - 34912 - 19968: jis0212<<14 | 0x3B<<7 | 0x11, - 34913 - 19968: jis0208<<14 | 0x18<<7 | 0x34, - 34914 - 19968: jis0208<<14 | 0x49<<7 | 0x2C, - 34915 - 19968: jis0208<<14 | 0x0F<<7 | 0x40, - 34916 - 19968: jis0212<<14 | 0x3B<<7 | 0x12, - 34920 - 19968: jis0208<<14 | 0x28<<7 | 0x1C, - 34921 - 19968: jis0212<<14 | 0x3B<<7 | 0x13, - 34923 - 19968: jis0208<<14 | 0x49<<7 | 0x2D, - 34928 - 19968: jis0208<<14 | 0x1E<<7 | 0x49, - 34929 - 19968: jis0212<<14 | 0x3B<<7 | 0x14, - 34930 - 19968: jis0208<<14 | 0x49<<7 | 0x34, - 34933 - 19968: jis0208<<14 | 0x49<<7 | 0x31, - 34935 - 19968: jis0208<<14 | 0x22<<7 | 0x4E, - 34937 - 19968: jis0212<<14 | 0x3B<<7 | 0x15, - 34939 - 19968: jis0212<<14 | 0x3B<<7 | 0x16, - 34941 - 19968: jis0208<<14 | 0x49<<7 | 0x32, - 34942 - 19968: jis0208<<14 | 0x49<<7 | 0x2F, - 34943 - 19968: jis0208<<14 | 0x15<<7 | 0x3D, - 34944 - 19968: jis0212<<14 | 0x3B<<7 | 0x17, - 34945 - 19968: jis0208<<14 | 0x49<<7 | 0x2E, - 34946 - 19968: jis0208<<14 | 0x49<<7 | 0x35, - 34952 - 19968: jis0208<<14 | 0x16<<7 | 0x15, - 34955 - 19968: jis0208<<14 | 0x21<<7 | 0x3D, - 34957 - 19968: jis0208<<14 | 0x49<<7 | 0x3B, - 34962 - 19968: jis0208<<14 | 0x49<<7 | 0x37, - 34966 - 19968: jis0208<<14 | 0x21<<7 | 0x14, - 34967 - 19968: jis0208<<14 | 0x49<<7 | 0x36, - 34968 - 19968: jis0212<<14 | 0x3B<<7 | 0x18, - 34969 - 19968: jis0208<<14 | 0x49<<7 | 0x39, - 34970 - 19968: jis0212<<14 | 0x3B<<7 | 0x19, - 34971 - 19968: jis0212<<14 | 0x3B<<7 | 0x1A, - 34972 - 19968: jis0212<<14 | 0x3B<<7 | 0x1B, - 34974 - 19968: jis0208<<14 | 0x49<<7 | 0x30, - 34975 - 19968: jis0212<<14 | 0x3B<<7 | 0x1C, - 34976 - 19968: jis0212<<14 | 0x3B<<7 | 0x1D, - 34978 - 19968: jis0208<<14 | 0x49<<7 | 0x3A, - 34980 - 19968: jis0208<<14 | 0x49<<7 | 0x3C, - 34984 - 19968: jis0212<<14 | 0x3B<<7 | 0x1E, - 34986 - 19968: jis0212<<14 | 0x3B<<7 | 0x1F, - 34987 - 19968: jis0208<<14 | 0x27<<7 | 0x4E, - 34990 - 19968: jis0208<<14 | 0x49<<7 | 0x38, - 34992 - 19968: jis0208<<14 | 0x49<<7 | 0x3D, - 34993 - 19968: jis0208<<14 | 0x49<<7 | 0x3F, - 34996 - 19968: jis0208<<14 | 0x17<<7 | 0x32, - 34997 - 19968: jis0208<<14 | 0x49<<7 | 0x33, - 34999 - 19968: jis0208<<14 | 0x0F<<7 | 0x20, - 35002 - 19968: jis0212<<14 | 0x3B<<7 | 0x20, - 35005 - 19968: jis0212<<14 | 0x3B<<7 | 0x21, - 35006 - 19968: jis0212<<14 | 0x3B<<7 | 0x22, - 35007 - 19968: jis0208<<14 | 0x49<<7 | 0x3E, - 35008 - 19968: jis0212<<14 | 0x3B<<7 | 0x23, - 35009 - 19968: jis0208<<14 | 0x19<<7 | 0x3A, - 35010 - 19968: jis0208<<14 | 0x2D<<7 | 0x55, - 35011 - 19968: jis0208<<14 | 0x49<<7 | 0x40, - 35012 - 19968: jis0208<<14 | 0x49<<7 | 0x41, - 35013 - 19968: jis0208<<14 | 0x20<<7 | 0x54, - 35018 - 19968: jis0212<<14 | 0x3B<<7 | 0x24, - 35019 - 19968: jis0212<<14 | 0x3B<<7 | 0x25, - 35020 - 19968: jis0212<<14 | 0x3B<<7 | 0x26, - 35021 - 19968: jis0212<<14 | 0x3B<<7 | 0x27, - 35022 - 19968: jis0212<<14 | 0x3B<<7 | 0x28, - 35023 - 19968: jis0208<<14 | 0x2D<<7 | 0x01, - 35025 - 19968: jis0212<<14 | 0x3B<<7 | 0x29, - 35026 - 19968: jis0212<<14 | 0x3B<<7 | 0x2A, - 35027 - 19968: jis0212<<14 | 0x3B<<7 | 0x2B, - 35028 - 19968: jis0208<<14 | 0x49<<7 | 0x42, - 35029 - 19968: jis0208<<14 | 0x2C<<7 | 0x14, - 35032 - 19968: jis0208<<14 | 0x49<<7 | 0x43, - 35033 - 19968: jis0208<<14 | 0x49<<7 | 0x44, - 35035 - 19968: jis0212<<14 | 0x3B<<7 | 0x2C, - 35036 - 19968: jis0208<<14 | 0x29<<7 | 0x43, - 35037 - 19968: jis0208<<14 | 0x49<<7 | 0x45, - 35038 - 19968: jis0212<<14 | 0x3B<<7 | 0x2D, - 35039 - 19968: jis0208<<14 | 0x19<<7 | 0x1F, - 35041 - 19968: jis0208<<14 | 0x2D<<7 | 0x02, - 35047 - 19968: jis0212<<14 | 0x3B<<7 | 0x2E, - 35048 - 19968: jis0208<<14 | 0x49<<7 | 0x4A, - 35055 - 19968: jis0212<<14 | 0x3B<<7 | 0x2F, - 35056 - 19968: jis0212<<14 | 0x3B<<7 | 0x30, - 35057 - 19968: jis0212<<14 | 0x3B<<7 | 0x31, - 35058 - 19968: jis0208<<14 | 0x49<<7 | 0x4B, - 35059 - 19968: jis0208<<14 | 0x1D<<7 | 0x37, - 35060 - 19968: jis0208<<14 | 0x49<<7 | 0x49, - 35061 - 19968: jis0208<<14 | 0x5A<<7 | 0x45, - 35063 - 19968: jis0212<<14 | 0x3B<<7 | 0x33, - 35064 - 19968: jis0208<<14 | 0x2C<<7 | 0x46, - 35065 - 19968: jis0208<<14 | 0x49<<7 | 0x46, - 35068 - 19968: jis0208<<14 | 0x49<<7 | 0x48, - 35069 - 19968: jis0208<<14 | 0x1F<<7 | 0x1C, - 35070 - 19968: jis0208<<14 | 0x1E<<7 | 0x5D, - 35073 - 19968: jis0212<<14 | 0x3B<<7 | 0x34, - 35074 - 19968: jis0208<<14 | 0x49<<7 | 0x47, - 35076 - 19968: jis0208<<14 | 0x49<<7 | 0x4C, - 35078 - 19968: jis0212<<14 | 0x3B<<7 | 0x35, - 35079 - 19968: jis0208<<14 | 0x29<<7 | 0x02, - 35082 - 19968: jis0208<<14 | 0x49<<7 | 0x4E, - 35084 - 19968: jis0208<<14 | 0x49<<7 | 0x4D, - 35085 - 19968: jis0212<<14 | 0x3B<<7 | 0x36, - 35086 - 19968: jis0212<<14 | 0x3B<<7 | 0x37, - 35087 - 19968: jis0212<<14 | 0x3B<<7 | 0x38, - 35088 - 19968: jis0208<<14 | 0x12<<7 | 0x4B, - 35090 - 19968: jis0208<<14 | 0x2A<<7 | 0x0A, - 35091 - 19968: jis0208<<14 | 0x49<<7 | 0x4F, - 35093 - 19968: jis0212<<14 | 0x3B<<7 | 0x39, - 35094 - 19968: jis0212<<14 | 0x3B<<7 | 0x3A, - 35096 - 19968: jis0212<<14 | 0x3B<<7 | 0x3B, - 35097 - 19968: jis0212<<14 | 0x3B<<7 | 0x3C, - 35098 - 19968: jis0212<<14 | 0x3B<<7 | 0x3D, - 35100 - 19968: jis0208<<14 | 0x58<<7 | 0x01, - 35101 - 19968: jis0208<<14 | 0x49<<7 | 0x5B, - 35102 - 19968: jis0208<<14 | 0x49<<7 | 0x51, - 35104 - 19968: jis0212<<14 | 0x3B<<7 | 0x3F, - 35109 - 19968: jis0208<<14 | 0x49<<7 | 0x52, - 35110 - 19968: jis0212<<14 | 0x3B<<7 | 0x40, - 35111 - 19968: jis0212<<14 | 0x3B<<7 | 0x41, - 35112 - 19968: jis0212<<14 | 0x3B<<7 | 0x42, - 35114 - 19968: jis0208<<14 | 0x49<<7 | 0x53, - 35115 - 19968: jis0208<<14 | 0x49<<7 | 0x54, - 35120 - 19968: jis0212<<14 | 0x3B<<7 | 0x43, - 35121 - 19968: jis0212<<14 | 0x3B<<7 | 0x44, - 35122 - 19968: jis0212<<14 | 0x3B<<7 | 0x45, - 35125 - 19968: jis0212<<14 | 0x3B<<7 | 0x46, - 35126 - 19968: jis0208<<14 | 0x49<<7 | 0x58, - 35128 - 19968: jis0208<<14 | 0x49<<7 | 0x59, - 35129 - 19968: jis0212<<14 | 0x3B<<7 | 0x47, - 35130 - 19968: jis0212<<14 | 0x3B<<7 | 0x48, - 35131 - 19968: jis0208<<14 | 0x49<<7 | 0x57, - 35134 - 19968: jis0212<<14 | 0x3B<<7 | 0x49, - 35136 - 19968: jis0212<<14 | 0x3B<<7 | 0x4A, - 35137 - 19968: jis0208<<14 | 0x49<<7 | 0x55, - 35138 - 19968: jis0212<<14 | 0x3B<<7 | 0x4B, - 35139 - 19968: jis0208<<14 | 0x49<<7 | 0x50, - 35140 - 19968: jis0208<<14 | 0x49<<7 | 0x56, - 35141 - 19968: jis0212<<14 | 0x3B<<7 | 0x4C, - 35142 - 19968: jis0212<<14 | 0x3B<<7 | 0x4D, - 35145 - 19968: jis0212<<14 | 0x3B<<7 | 0x4E, - 35148 - 19968: jis0208<<14 | 0x49<<7 | 0x5A, - 35149 - 19968: jis0208<<14 | 0x4F<<7 | 0x16, - 35151 - 19968: jis0212<<14 | 0x3B<<7 | 0x4F, - 35154 - 19968: jis0212<<14 | 0x3B<<7 | 0x50, - 35158 - 19968: jis0208<<14 | 0x11<<7 | 0x07, - 35159 - 19968: jis0212<<14 | 0x3B<<7 | 0x51, - 35162 - 19968: jis0212<<14 | 0x3B<<7 | 0x52, - 35163 - 19968: jis0212<<14 | 0x3B<<7 | 0x53, - 35164 - 19968: jis0212<<14 | 0x3B<<7 | 0x54, - 35166 - 19968: jis0208<<14 | 0x49<<7 | 0x5D, - 35167 - 19968: jis0208<<14 | 0x15<<7 | 0x3E, - 35168 - 19968: jis0208<<14 | 0x49<<7 | 0x5C, - 35169 - 19968: jis0212<<14 | 0x3B<<7 | 0x55, - 35170 - 19968: jis0212<<14 | 0x3B<<7 | 0x56, - 35171 - 19968: jis0212<<14 | 0x3B<<7 | 0x57, - 35172 - 19968: jis0208<<14 | 0x4A<<7 | 0x01, - 35174 - 19968: jis0208<<14 | 0x4A<<7 | 0x00, - 35178 - 19968: jis0208<<14 | 0x4A<<7 | 0x03, - 35179 - 19968: jis0212<<14 | 0x3B<<7 | 0x58, - 35181 - 19968: jis0208<<14 | 0x4A<<7 | 0x02, - 35182 - 19968: jis0212<<14 | 0x3B<<7 | 0x59, - 35183 - 19968: jis0208<<14 | 0x4A<<7 | 0x04, - 35184 - 19968: jis0212<<14 | 0x3B<<7 | 0x5A, - 35186 - 19968: jis0208<<14 | 0x1C<<7 | 0x10, - 35187 - 19968: jis0212<<14 | 0x3B<<7 | 0x5B, - 35188 - 19968: jis0208<<14 | 0x4A<<7 | 0x05, - 35189 - 19968: jis0212<<14 | 0x3B<<7 | 0x5C, - 35191 - 19968: jis0208<<14 | 0x4A<<7 | 0x06, - 35194 - 19968: jis0212<<14 | 0x3B<<7 | 0x5D, - 35195 - 19968: jis0212<<14 | 0x3C<<7 | 0x00, - 35196 - 19968: jis0212<<14 | 0x3C<<7 | 0x01, - 35197 - 19968: jis0212<<14 | 0x3C<<7 | 0x02, - 35198 - 19968: jis0208<<14 | 0x4A<<7 | 0x07, - 35199 - 19968: jis0208<<14 | 0x1F<<7 | 0x1D, - 35201 - 19968: jis0208<<14 | 0x2C<<7 | 0x36, - 35203 - 19968: jis0208<<14 | 0x4A<<7 | 0x08, - 35206 - 19968: jis0208<<14 | 0x29<<7 | 0x03, - 35207 - 19968: jis0208<<14 | 0x26<<7 | 0x25, - 35208 - 19968: jis0208<<14 | 0x4A<<7 | 0x09, - 35209 - 19968: jis0212<<14 | 0x3C<<7 | 0x03, - 35210 - 19968: jis0208<<14 | 0x4A<<7 | 0x0A, - 35211 - 19968: jis0208<<14 | 0x17<<7 | 0x0A, - 35213 - 19968: jis0212<<14 | 0x3C<<7 | 0x04, - 35215 - 19968: jis0208<<14 | 0x14<<7 | 0x0B, - 35216 - 19968: jis0212<<14 | 0x3C<<7 | 0x05, - 35219 - 19968: jis0208<<14 | 0x4A<<7 | 0x0B, - 35220 - 19968: jis0212<<14 | 0x3C<<7 | 0x06, - 35221 - 19968: jis0212<<14 | 0x3C<<7 | 0x07, - 35222 - 19968: jis0208<<14 | 0x1A<<7 | 0x4A, - 35223 - 19968: jis0208<<14 | 0x26<<7 | 0x20, - 35224 - 19968: jis0208<<14 | 0x4A<<7 | 0x0C, - 35226 - 19968: jis0208<<14 | 0x12<<7 | 0x2F, - 35227 - 19968: jis0212<<14 | 0x3C<<7 | 0x08, - 35228 - 19968: jis0212<<14 | 0x3C<<7 | 0x09, - 35231 - 19968: jis0212<<14 | 0x3C<<7 | 0x0A, - 35232 - 19968: jis0212<<14 | 0x3C<<7 | 0x0B, - 35233 - 19968: jis0208<<14 | 0x4A<<7 | 0x0D, - 35237 - 19968: jis0212<<14 | 0x3C<<7 | 0x0C, - 35238 - 19968: jis0208<<14 | 0x4A<<7 | 0x0F, - 35239 - 19968: jis0208<<14 | 0x2C<<7 | 0x56, - 35241 - 19968: jis0208<<14 | 0x4A<<7 | 0x0E, - 35242 - 19968: jis0208<<14 | 0x1E<<7 | 0x25, - 35244 - 19968: jis0208<<14 | 0x4A<<7 | 0x10, - 35247 - 19968: jis0208<<14 | 0x4A<<7 | 0x11, - 35248 - 19968: jis0212<<14 | 0x3C<<7 | 0x0D, - 35250 - 19968: jis0208<<14 | 0x4A<<7 | 0x12, - 35251 - 19968: jis0208<<14 | 0x13<<7 | 0x30, - 35252 - 19968: jis0212<<14 | 0x3C<<7 | 0x0E, - 35253 - 19968: jis0212<<14 | 0x3C<<7 | 0x0F, - 35254 - 19968: jis0212<<14 | 0x3C<<7 | 0x10, - 35255 - 19968: jis0212<<14 | 0x3C<<7 | 0x11, - 35258 - 19968: jis0208<<14 | 0x4A<<7 | 0x13, - 35260 - 19968: jis0212<<14 | 0x3C<<7 | 0x12, - 35261 - 19968: jis0208<<14 | 0x4A<<7 | 0x14, - 35263 - 19968: jis0208<<14 | 0x4A<<7 | 0x15, - 35264 - 19968: jis0208<<14 | 0x4A<<7 | 0x16, - 35282 - 19968: jis0208<<14 | 0x12<<7 | 0x30, - 35284 - 19968: jis0212<<14 | 0x3C<<7 | 0x13, - 35285 - 19968: jis0212<<14 | 0x3C<<7 | 0x14, - 35286 - 19968: jis0212<<14 | 0x3C<<7 | 0x15, - 35287 - 19968: jis0212<<14 | 0x3C<<7 | 0x16, - 35288 - 19968: jis0212<<14 | 0x3C<<7 | 0x17, - 35290 - 19968: jis0208<<14 | 0x4A<<7 | 0x17, - 35292 - 19968: jis0208<<14 | 0x4A<<7 | 0x18, - 35293 - 19968: jis0208<<14 | 0x4A<<7 | 0x19, - 35299 - 19968: jis0208<<14 | 0x11<<7 | 0x51, - 35301 - 19968: jis0212<<14 | 0x3C<<7 | 0x18, - 35302 - 19968: jis0208<<14 | 0x1E<<7 | 0x07, - 35303 - 19968: jis0208<<14 | 0x4A<<7 | 0x1A, - 35305 - 19968: jis0212<<14 | 0x3C<<7 | 0x19, - 35307 - 19968: jis0212<<14 | 0x3C<<7 | 0x1A, - 35309 - 19968: jis0212<<14 | 0x3C<<7 | 0x1B, - 35313 - 19968: jis0212<<14 | 0x3C<<7 | 0x1C, - 35315 - 19968: jis0212<<14 | 0x3C<<7 | 0x1D, - 35316 - 19968: jis0208<<14 | 0x4A<<7 | 0x1B, - 35318 - 19968: jis0212<<14 | 0x3C<<7 | 0x1E, - 35320 - 19968: jis0208<<14 | 0x4A<<7 | 0x1C, - 35321 - 19968: jis0212<<14 | 0x3C<<7 | 0x1F, - 35325 - 19968: jis0212<<14 | 0x3C<<7 | 0x20, - 35327 - 19968: jis0212<<14 | 0x3C<<7 | 0x21, - 35328 - 19968: jis0208<<14 | 0x17<<7 | 0x1F, - 35330 - 19968: jis0208<<14 | 0x23<<7 | 0x5A, - 35331 - 19968: jis0208<<14 | 0x4A<<7 | 0x1D, - 35332 - 19968: jis0212<<14 | 0x3C<<7 | 0x22, - 35333 - 19968: jis0212<<14 | 0x3C<<7 | 0x23, - 35335 - 19968: jis0212<<14 | 0x3C<<7 | 0x24, - 35336 - 19968: jis0208<<14 | 0x16<<7 | 0x36, - 35338 - 19968: jis0208<<14 | 0x1E<<7 | 0x35, - 35340 - 19968: jis0208<<14 | 0x4A<<7 | 0x20, - 35342 - 19968: jis0208<<14 | 0x25<<7 | 0x03, - 35343 - 19968: jis0212<<14 | 0x3C<<7 | 0x25, - 35344 - 19968: jis0208<<14 | 0x4A<<7 | 0x1F, - 35345 - 19968: jis0212<<14 | 0x3C<<7 | 0x26, - 35346 - 19968: jis0208<<14 | 0x5A<<7 | 0x46, - 35347 - 19968: jis0208<<14 | 0x16<<7 | 0x10, - 35348 - 19968: jis0212<<14 | 0x3C<<7 | 0x28, - 35349 - 19968: jis0212<<14 | 0x3C<<7 | 0x29, - 35350 - 19968: jis0208<<14 | 0x4A<<7 | 0x1E, - 35351 - 19968: jis0208<<14 | 0x21<<7 | 0x56, - 35352 - 19968: jis0208<<14 | 0x14<<7 | 0x0C, - 35355 - 19968: jis0208<<14 | 0x4A<<7 | 0x21, - 35357 - 19968: jis0208<<14 | 0x4A<<7 | 0x22, - 35358 - 19968: jis0212<<14 | 0x3C<<7 | 0x2A, - 35359 - 19968: jis0208<<14 | 0x1D<<7 | 0x38, - 35360 - 19968: jis0212<<14 | 0x3C<<7 | 0x2B, - 35362 - 19968: jis0212<<14 | 0x3C<<7 | 0x2C, - 35363 - 19968: jis0208<<14 | 0x16<<7 | 0x4C, - 35364 - 19968: jis0212<<14 | 0x3C<<7 | 0x2D, - 35365 - 19968: jis0208<<14 | 0x4A<<7 | 0x23, - 35366 - 19968: jis0212<<14 | 0x3C<<7 | 0x2E, - 35370 - 19968: jis0208<<14 | 0x2A<<7 | 0x0B, - 35371 - 19968: jis0212<<14 | 0x3C<<7 | 0x2F, - 35372 - 19968: jis0212<<14 | 0x3C<<7 | 0x30, - 35373 - 19968: jis0208<<14 | 0x1F<<7 | 0x3E, - 35375 - 19968: jis0212<<14 | 0x3C<<7 | 0x31, - 35377 - 19968: jis0208<<14 | 0x14<<7 | 0x55, - 35379 - 19968: jis0208<<14 | 0x2B<<7 | 0x54, - 35380 - 19968: jis0208<<14 | 0x20<<7 | 0x29, - 35381 - 19968: jis0212<<14 | 0x3C<<7 | 0x32, - 35382 - 19968: jis0208<<14 | 0x4A<<7 | 0x24, - 35383 - 19968: jis0208<<14 | 0x5A<<7 | 0x47, - 35386 - 19968: jis0208<<14 | 0x1E<<7 | 0x26, - 35387 - 19968: jis0208<<14 | 0x22<<7 | 0x4F, - 35388 - 19968: jis0208<<14 | 0x1D<<7 | 0x39, - 35389 - 19968: jis0212<<14 | 0x3C<<7 | 0x34, - 35390 - 19968: jis0212<<14 | 0x3C<<7 | 0x35, - 35392 - 19968: jis0212<<14 | 0x3C<<7 | 0x36, - 35393 - 19968: jis0208<<14 | 0x4A<<7 | 0x25, - 35395 - 19968: jis0212<<14 | 0x3C<<7 | 0x37, - 35397 - 19968: jis0212<<14 | 0x3C<<7 | 0x38, - 35398 - 19968: jis0208<<14 | 0x4A<<7 | 0x28, - 35399 - 19968: jis0212<<14 | 0x3C<<7 | 0x39, - 35400 - 19968: jis0208<<14 | 0x4A<<7 | 0x29, - 35401 - 19968: jis0212<<14 | 0x3C<<7 | 0x3A, - 35405 - 19968: jis0212<<14 | 0x3C<<7 | 0x3B, - 35406 - 19968: jis0212<<14 | 0x3C<<7 | 0x3C, - 35408 - 19968: jis0208<<14 | 0x19<<7 | 0x1D, - 35409 - 19968: jis0208<<14 | 0x21<<7 | 0x21, - 35410 - 19968: jis0208<<14 | 0x4A<<7 | 0x27, - 35411 - 19968: jis0212<<14 | 0x3C<<7 | 0x3D, - 35412 - 19968: jis0208<<14 | 0x1D<<7 | 0x3A, - 35413 - 19968: jis0208<<14 | 0x28<<7 | 0x1D, - 35414 - 19968: jis0212<<14 | 0x3C<<7 | 0x3E, - 35415 - 19968: jis0212<<14 | 0x3C<<7 | 0x3F, - 35416 - 19968: jis0212<<14 | 0x3C<<7 | 0x40, - 35419 - 19968: jis0208<<14 | 0x4A<<7 | 0x26, - 35420 - 19968: jis0212<<14 | 0x3C<<7 | 0x41, - 35421 - 19968: jis0212<<14 | 0x3C<<7 | 0x42, - 35422 - 19968: jis0208<<14 | 0x1A<<7 | 0x4B, - 35424 - 19968: jis0208<<14 | 0x10<<7 | 0x32, - 35425 - 19968: jis0212<<14 | 0x3C<<7 | 0x43, - 35426 - 19968: jis0208<<14 | 0x4A<<7 | 0x2D, - 35427 - 19968: jis0208<<14 | 0x16<<7 | 0x37, - 35429 - 19968: jis0212<<14 | 0x3C<<7 | 0x44, - 35430 - 19968: jis0208<<14 | 0x1A<<7 | 0x4D, - 35431 - 19968: jis0212<<14 | 0x3C<<7 | 0x45, - 35433 - 19968: jis0208<<14 | 0x1A<<7 | 0x4C, - 35435 - 19968: jis0208<<14 | 0x2E<<7 | 0x2C, - 35436 - 19968: jis0208<<14 | 0x4A<<7 | 0x2C, - 35437 - 19968: jis0208<<14 | 0x4A<<7 | 0x2B, - 35438 - 19968: jis0208<<14 | 0x20<<7 | 0x06, - 35440 - 19968: jis0208<<14 | 0x14<<7 | 0x2C, - 35441 - 19968: jis0208<<14 | 0x2E<<7 | 0x22, - 35442 - 19968: jis0208<<14 | 0x12<<7 | 0x19, - 35443 - 19968: jis0208<<14 | 0x1D<<7 | 0x3B, - 35445 - 19968: jis0212<<14 | 0x3C<<7 | 0x46, - 35446 - 19968: jis0212<<14 | 0x3C<<7 | 0x47, - 35447 - 19968: jis0212<<14 | 0x3C<<7 | 0x48, - 35449 - 19968: jis0208<<14 | 0x5A<<7 | 0x48, - 35450 - 19968: jis0212<<14 | 0x3C<<7 | 0x4A, - 35451 - 19968: jis0212<<14 | 0x3C<<7 | 0x4B, - 35452 - 19968: jis0208<<14 | 0x4A<<7 | 0x2A, - 35454 - 19968: jis0212<<14 | 0x3C<<7 | 0x4C, - 35455 - 19968: jis0212<<14 | 0x3C<<7 | 0x4D, - 35456 - 19968: jis0212<<14 | 0x3C<<7 | 0x4E, - 35458 - 19968: jis0208<<14 | 0x4A<<7 | 0x2F, - 35459 - 19968: jis0212<<14 | 0x3C<<7 | 0x4F, - 35460 - 19968: jis0208<<14 | 0x4A<<7 | 0x30, - 35461 - 19968: jis0208<<14 | 0x4A<<7 | 0x2E, - 35462 - 19968: jis0212<<14 | 0x3C<<7 | 0x50, - 35463 - 19968: jis0208<<14 | 0x17<<7 | 0x37, - 35465 - 19968: jis0208<<14 | 0x2C<<7 | 0x1F, - 35467 - 19968: jis0212<<14 | 0x3C<<7 | 0x51, - 35468 - 19968: jis0208<<14 | 0x1A<<7 | 0x4E, - 35469 - 19968: jis0208<<14 | 0x26<<7 | 0x06, - 35471 - 19968: jis0212<<14 | 0x3C<<7 | 0x52, - 35472 - 19968: jis0212<<14 | 0x3C<<7 | 0x53, - 35473 - 19968: jis0208<<14 | 0x4A<<7 | 0x33, - 35474 - 19968: jis0212<<14 | 0x3C<<7 | 0x54, - 35475 - 19968: jis0208<<14 | 0x1F<<7 | 0x1F, - 35477 - 19968: jis0208<<14 | 0x22<<7 | 0x21, - 35478 - 19968: jis0212<<14 | 0x3C<<7 | 0x55, - 35479 - 19968: jis0212<<14 | 0x3C<<7 | 0x56, - 35480 - 19968: jis0208<<14 | 0x2C<<7 | 0x15, - 35481 - 19968: jis0212<<14 | 0x3C<<7 | 0x57, - 35482 - 19968: jis0208<<14 | 0x4A<<7 | 0x36, - 35486 - 19968: jis0208<<14 | 0x17<<7 | 0x4B, - 35487 - 19968: jis0212<<14 | 0x3C<<7 | 0x58, - 35488 - 19968: jis0208<<14 | 0x1F<<7 | 0x1E, - 35489 - 19968: jis0208<<14 | 0x4A<<7 | 0x32, - 35491 - 19968: jis0208<<14 | 0x4A<<7 | 0x37, - 35492 - 19968: jis0208<<14 | 0x17<<7 | 0x4C, - 35493 - 19968: jis0208<<14 | 0x4A<<7 | 0x34, - 35494 - 19968: jis0208<<14 | 0x4A<<7 | 0x35, - 35495 - 19968: jis0208<<14 | 0x5A<<7 | 0x49, - 35496 - 19968: jis0208<<14 | 0x4A<<7 | 0x31, - 35497 - 19968: jis0212<<14 | 0x3C<<7 | 0x5A, - 35500 - 19968: jis0208<<14 | 0x1F<<7 | 0x41, - 35501 - 19968: jis0208<<14 | 0x25<<7 | 0x28, - 35502 - 19968: jis0212<<14 | 0x3C<<7 | 0x5B, - 35503 - 19968: jis0212<<14 | 0x3C<<7 | 0x5C, - 35504 - 19968: jis0208<<14 | 0x22<<7 | 0x0E, - 35506 - 19968: jis0208<<14 | 0x11<<7 | 0x3C, - 35507 - 19968: jis0212<<14 | 0x3C<<7 | 0x5D, - 35510 - 19968: jis0212<<14 | 0x3D<<7 | 0x00, - 35511 - 19968: jis0212<<14 | 0x3D<<7 | 0x01, - 35513 - 19968: jis0208<<14 | 0x27<<7 | 0x4F, - 35515 - 19968: jis0212<<14 | 0x3D<<7 | 0x02, - 35516 - 19968: jis0208<<14 | 0x14<<7 | 0x22, - 35518 - 19968: jis0208<<14 | 0x5A<<7 | 0x4A, - 35519 - 19968: jis0208<<14 | 0x23<<7 | 0x13, - 35522 - 19968: jis0208<<14 | 0x4A<<7 | 0x3A, - 35523 - 19968: jis0212<<14 | 0x3D<<7 | 0x04, - 35524 - 19968: jis0208<<14 | 0x4A<<7 | 0x38, - 35526 - 19968: jis0212<<14 | 0x3D<<7 | 0x05, - 35527 - 19968: jis0208<<14 | 0x22<<7 | 0x2B, - 35528 - 19968: jis0212<<14 | 0x3D<<7 | 0x06, - 35529 - 19968: jis0212<<14 | 0x3D<<7 | 0x07, - 35530 - 19968: jis0212<<14 | 0x3D<<7 | 0x08, - 35531 - 19968: jis0208<<14 | 0x1F<<7 | 0x20, - 35532 - 19968: jis0208<<14 | 0x13<<7 | 0x31, - 35533 - 19968: jis0208<<14 | 0x4A<<7 | 0x39, - 35535 - 19968: jis0208<<14 | 0x1E<<7 | 0x3A, - 35537 - 19968: jis0212<<14 | 0x3D<<7 | 0x09, - 35538 - 19968: jis0208<<14 | 0x2D<<7 | 0x29, - 35539 - 19968: jis0212<<14 | 0x3D<<7 | 0x0A, - 35540 - 19968: jis0212<<14 | 0x3D<<7 | 0x0B, - 35541 - 19968: jis0212<<14 | 0x3D<<7 | 0x0C, - 35542 - 19968: jis0208<<14 | 0x2E<<7 | 0x1F, - 35543 - 19968: jis0212<<14 | 0x3D<<7 | 0x0D, - 35546 - 19968: jis0208<<14 | 0x4A<<7 | 0x3B, - 35547 - 19968: jis0208<<14 | 0x4A<<7 | 0x46, - 35548 - 19968: jis0208<<14 | 0x23<<7 | 0x14, - 35549 - 19968: jis0212<<14 | 0x3D<<7 | 0x0E, - 35550 - 19968: jis0208<<14 | 0x4A<<7 | 0x45, - 35551 - 19968: jis0208<<14 | 0x5A<<7 | 0x4B, - 35552 - 19968: jis0208<<14 | 0x4A<<7 | 0x42, - 35553 - 19968: jis0208<<14 | 0x4A<<7 | 0x4A, - 35554 - 19968: jis0208<<14 | 0x4A<<7 | 0x43, - 35556 - 19968: jis0208<<14 | 0x4A<<7 | 0x3F, - 35558 - 19968: jis0208<<14 | 0x23<<7 | 0x5B, - 35559 - 19968: jis0208<<14 | 0x4A<<7 | 0x3E, - 35563 - 19968: jis0208<<14 | 0x4A<<7 | 0x3C, - 35564 - 19968: jis0212<<14 | 0x3D<<7 | 0x10, - 35565 - 19968: jis0208<<14 | 0x2C<<7 | 0x00, - 35566 - 19968: jis0208<<14 | 0x1A<<7 | 0x4F, - 35568 - 19968: jis0212<<14 | 0x3D<<7 | 0x11, - 35569 - 19968: jis0208<<14 | 0x4A<<7 | 0x40, - 35571 - 19968: jis0208<<14 | 0x4A<<7 | 0x3D, - 35572 - 19968: jis0212<<14 | 0x3D<<7 | 0x12, - 35573 - 19968: jis0212<<14 | 0x3D<<7 | 0x13, - 35574 - 19968: jis0208<<14 | 0x5A<<7 | 0x4D, - 35575 - 19968: jis0208<<14 | 0x4A<<7 | 0x44, - 35576 - 19968: jis0208<<14 | 0x1C<<7 | 0x53, - 35578 - 19968: jis0208<<14 | 0x17<<7 | 0x20, - 35580 - 19968: jis0212<<14 | 0x3D<<7 | 0x15, - 35582 - 19968: jis0208<<14 | 0x21<<7 | 0x59, - 35583 - 19968: jis0212<<14 | 0x3D<<7 | 0x16, - 35584 - 19968: jis0208<<14 | 0x2A<<7 | 0x24, - 35585 - 19968: jis0208<<14 | 0x10<<7 | 0x39, - 35586 - 19968: jis0208<<14 | 0x0F<<7 | 0x41, - 35588 - 19968: jis0208<<14 | 0x25<<7 | 0x04, - 35589 - 19968: jis0212<<14 | 0x3D<<7 | 0x17, - 35590 - 19968: jis0212<<14 | 0x3D<<7 | 0x18, - 35591 - 19968: jis0208<<14 | 0x4A<<7 | 0x48, - 35594 - 19968: jis0212<<14 | 0x3D<<7 | 0x1E, - 35595 - 19968: jis0212<<14 | 0x3D<<7 | 0x19, - 35596 - 19968: jis0208<<14 | 0x4A<<7 | 0x47, - 35598 - 19968: jis0208<<14 | 0x25<<7 | 0x45, - 35600 - 19968: jis0208<<14 | 0x4A<<7 | 0x4C, - 35601 - 19968: jis0212<<14 | 0x3D<<7 | 0x1A, - 35604 - 19968: jis0208<<14 | 0x4A<<7 | 0x41, - 35606 - 19968: jis0208<<14 | 0x4A<<7 | 0x4B, - 35607 - 19968: jis0208<<14 | 0x4A<<7 | 0x4D, - 35609 - 19968: jis0208<<14 | 0x17<<7 | 0x0B, - 35610 - 19968: jis0208<<14 | 0x4A<<7 | 0x49, - 35611 - 19968: jis0208<<14 | 0x18<<7 | 0x35, - 35612 - 19968: jis0212<<14 | 0x3D<<7 | 0x1B, - 35613 - 19968: jis0208<<14 | 0x1B<<7 | 0x34, - 35614 - 19968: jis0212<<14 | 0x3D<<7 | 0x1C, - 35615 - 19968: jis0212<<14 | 0x3D<<7 | 0x1D, - 35616 - 19968: jis0208<<14 | 0x4A<<7 | 0x4E, - 35617 - 19968: jis0208<<14 | 0x2C<<7 | 0x37, - 35622 - 19968: jis0208<<14 | 0x4A<<7 | 0x51, - 35624 - 19968: jis0208<<14 | 0x4A<<7 | 0x54, - 35627 - 19968: jis0208<<14 | 0x4A<<7 | 0x52, - 35628 - 19968: jis0208<<14 | 0x28<<7 | 0x14, - 35629 - 19968: jis0212<<14 | 0x3D<<7 | 0x1F, - 35632 - 19968: jis0212<<14 | 0x3D<<7 | 0x20, - 35635 - 19968: jis0208<<14 | 0x4A<<7 | 0x4F, - 35639 - 19968: jis0212<<14 | 0x3D<<7 | 0x21, - 35641 - 19968: jis0208<<14 | 0x15<<7 | 0x3F, - 35644 - 19968: jis0212<<14 | 0x3D<<7 | 0x22, - 35646 - 19968: jis0208<<14 | 0x4A<<7 | 0x53, - 35649 - 19968: jis0208<<14 | 0x4A<<7 | 0x55, - 35650 - 19968: jis0212<<14 | 0x3D<<7 | 0x23, - 35651 - 19968: jis0212<<14 | 0x3D<<7 | 0x24, - 35652 - 19968: jis0212<<14 | 0x3D<<7 | 0x25, - 35653 - 19968: jis0212<<14 | 0x3D<<7 | 0x26, - 35654 - 19968: jis0212<<14 | 0x3D<<7 | 0x27, - 35656 - 19968: jis0212<<14 | 0x3D<<7 | 0x28, - 35657 - 19968: jis0208<<14 | 0x4A<<7 | 0x59, - 35660 - 19968: jis0208<<14 | 0x4A<<7 | 0x56, - 35661 - 19968: jis0212<<14 | 0x3D<<7 | 0x2D, - 35662 - 19968: jis0208<<14 | 0x4A<<7 | 0x58, - 35663 - 19968: jis0208<<14 | 0x4A<<7 | 0x57, - 35666 - 19968: jis0212<<14 | 0x3D<<7 | 0x29, - 35667 - 19968: jis0208<<14 | 0x5A<<7 | 0x4E, - 35668 - 19968: jis0212<<14 | 0x3D<<7 | 0x2B, - 35670 - 19968: jis0208<<14 | 0x4A<<7 | 0x5A, - 35672 - 19968: jis0208<<14 | 0x1B<<7 | 0x10, - 35673 - 19968: jis0212<<14 | 0x3D<<7 | 0x2C, - 35674 - 19968: jis0208<<14 | 0x4A<<7 | 0x5C, - 35675 - 19968: jis0208<<14 | 0x4A<<7 | 0x5B, - 35676 - 19968: jis0208<<14 | 0x28<<7 | 0x47, - 35678 - 19968: jis0212<<14 | 0x3D<<7 | 0x2E, - 35679 - 19968: jis0208<<14 | 0x4B<<7 | 0x00, - 35683 - 19968: jis0212<<14 | 0x3D<<7 | 0x2F, - 35686 - 19968: jis0208<<14 | 0x16<<7 | 0x38, - 35691 - 19968: jis0208<<14 | 0x4A<<7 | 0x5D, - 35692 - 19968: jis0208<<14 | 0x4B<<7 | 0x01, - 35693 - 19968: jis0212<<14 | 0x3D<<7 | 0x30, - 35695 - 19968: jis0208<<14 | 0x4B<<7 | 0x02, - 35696 - 19968: jis0208<<14 | 0x14<<7 | 0x23, - 35697 - 19968: jis0208<<14 | 0x45<<7 | 0x20, - 35698 - 19968: jis0208<<14 | 0x1D<<7 | 0x58, - 35700 - 19968: jis0208<<14 | 0x4B<<7 | 0x03, - 35702 - 19968: jis0212<<14 | 0x3D<<7 | 0x31, - 35703 - 19968: jis0208<<14 | 0x17<<7 | 0x4D, - 35704 - 19968: jis0212<<14 | 0x3D<<7 | 0x32, - 35705 - 19968: jis0212<<14 | 0x3D<<7 | 0x33, - 35708 - 19968: jis0212<<14 | 0x3D<<7 | 0x34, - 35709 - 19968: jis0208<<14 | 0x4B<<7 | 0x04, - 35710 - 19968: jis0212<<14 | 0x3D<<7 | 0x35, - 35711 - 19968: jis0208<<14 | 0x5A<<7 | 0x4F, - 35712 - 19968: jis0208<<14 | 0x4B<<7 | 0x05, - 35713 - 19968: jis0212<<14 | 0x3D<<7 | 0x36, - 35715 - 19968: jis0208<<14 | 0x1A<<7 | 0x1D, - 35716 - 19968: jis0212<<14 | 0x3D<<7 | 0x37, - 35717 - 19968: jis0212<<14 | 0x3D<<7 | 0x38, - 35722 - 19968: jis0208<<14 | 0x39<<7 | 0x2D, - 35723 - 19968: jis0212<<14 | 0x3D<<7 | 0x39, - 35724 - 19968: jis0208<<14 | 0x4B<<7 | 0x06, - 35725 - 19968: jis0212<<14 | 0x3D<<7 | 0x3A, - 35726 - 19968: jis0208<<14 | 0x4B<<7 | 0x07, - 35727 - 19968: jis0212<<14 | 0x3D<<7 | 0x3B, - 35728 - 19968: jis0208<<14 | 0x1C<<7 | 0x11, - 35730 - 19968: jis0208<<14 | 0x4B<<7 | 0x08, - 35731 - 19968: jis0208<<14 | 0x4B<<7 | 0x09, - 35732 - 19968: jis0212<<14 | 0x3D<<7 | 0x3C, - 35733 - 19968: jis0212<<14 | 0x3D<<7 | 0x3D, - 35734 - 19968: jis0208<<14 | 0x4B<<7 | 0x0A, - 35737 - 19968: jis0208<<14 | 0x4B<<7 | 0x0B, - 35738 - 19968: jis0208<<14 | 0x4B<<7 | 0x0C, - 35740 - 19968: jis0212<<14 | 0x3D<<7 | 0x3E, - 35742 - 19968: jis0212<<14 | 0x3D<<7 | 0x3F, - 35743 - 19968: jis0212<<14 | 0x3D<<7 | 0x40, - 35895 - 19968: jis0208<<14 | 0x22<<7 | 0x0A, - 35896 - 19968: jis0212<<14 | 0x3D<<7 | 0x41, - 35897 - 19968: jis0212<<14 | 0x3D<<7 | 0x42, - 35898 - 19968: jis0208<<14 | 0x4B<<7 | 0x0D, - 35901 - 19968: jis0212<<14 | 0x3D<<7 | 0x43, - 35902 - 19968: jis0212<<14 | 0x3D<<7 | 0x44, - 35903 - 19968: jis0208<<14 | 0x4B<<7 | 0x0F, - 35905 - 19968: jis0208<<14 | 0x4B<<7 | 0x0E, - 35909 - 19968: jis0212<<14 | 0x3D<<7 | 0x45, - 35910 - 19968: jis0208<<14 | 0x25<<7 | 0x05, - 35911 - 19968: jis0212<<14 | 0x3D<<7 | 0x46, - 35912 - 19968: jis0208<<14 | 0x4B<<7 | 0x10, - 35913 - 19968: jis0212<<14 | 0x3D<<7 | 0x47, - 35914 - 19968: jis0208<<14 | 0x2A<<7 | 0x0C, - 35915 - 19968: jis0212<<14 | 0x3D<<7 | 0x48, - 35916 - 19968: jis0208<<14 | 0x4B<<7 | 0x11, - 35918 - 19968: jis0208<<14 | 0x4B<<7 | 0x12, - 35919 - 19968: jis0212<<14 | 0x3D<<7 | 0x49, - 35920 - 19968: jis0208<<14 | 0x4B<<7 | 0x13, - 35921 - 19968: jis0212<<14 | 0x3D<<7 | 0x4A, - 35923 - 19968: jis0212<<14 | 0x3D<<7 | 0x4B, - 35924 - 19968: jis0212<<14 | 0x3D<<7 | 0x4C, - 35925 - 19968: jis0208<<14 | 0x4B<<7 | 0x14, - 35927 - 19968: jis0212<<14 | 0x3D<<7 | 0x4D, - 35928 - 19968: jis0212<<14 | 0x3D<<7 | 0x4E, - 35929 - 19968: jis0212<<14 | 0x3D<<7 | 0x51, - 35930 - 19968: jis0208<<14 | 0x25<<7 | 0x39, - 35931 - 19968: jis0212<<14 | 0x3D<<7 | 0x4F, - 35933 - 19968: jis0212<<14 | 0x3D<<7 | 0x50, - 35937 - 19968: jis0208<<14 | 0x1D<<7 | 0x3C, - 35938 - 19968: jis0208<<14 | 0x4B<<7 | 0x15, - 35939 - 19968: jis0212<<14 | 0x3D<<7 | 0x52, - 35940 - 19968: jis0212<<14 | 0x3D<<7 | 0x53, - 35942 - 19968: jis0212<<14 | 0x3D<<7 | 0x54, - 35944 - 19968: jis0212<<14 | 0x3D<<7 | 0x55, - 35945 - 19968: jis0212<<14 | 0x3D<<7 | 0x56, - 35946 - 19968: jis0208<<14 | 0x18<<7 | 0x4A, - 35947 - 19968: jis0208<<14 | 0x2F<<7 | 0x0D, - 35948 - 19968: jis0208<<14 | 0x4B<<7 | 0x16, - 35949 - 19968: jis0212<<14 | 0x3D<<7 | 0x57, - 35955 - 19968: jis0212<<14 | 0x3D<<7 | 0x58, - 35957 - 19968: jis0212<<14 | 0x3D<<7 | 0x59, - 35958 - 19968: jis0212<<14 | 0x3D<<7 | 0x5A, - 35960 - 19968: jis0208<<14 | 0x4B<<7 | 0x17, - 35961 - 19968: jis0208<<14 | 0x28<<7 | 0x1E, - 35962 - 19968: jis0208<<14 | 0x4B<<7 | 0x18, - 35963 - 19968: jis0212<<14 | 0x3D<<7 | 0x5B, - 35964 - 19968: jis0208<<14 | 0x4B<<7 | 0x20, - 35966 - 19968: jis0212<<14 | 0x3D<<7 | 0x5C, - 35970 - 19968: jis0208<<14 | 0x4B<<7 | 0x19, - 35973 - 19968: jis0208<<14 | 0x4B<<7 | 0x1B, - 35974 - 19968: jis0212<<14 | 0x3D<<7 | 0x5D, - 35975 - 19968: jis0212<<14 | 0x3E<<7 | 0x00, - 35977 - 19968: jis0208<<14 | 0x4B<<7 | 0x1A, - 35978 - 19968: jis0208<<14 | 0x4B<<7 | 0x1C, - 35979 - 19968: jis0212<<14 | 0x3E<<7 | 0x01, - 35980 - 19968: jis0208<<14 | 0x2A<<7 | 0x25, - 35981 - 19968: jis0208<<14 | 0x4B<<7 | 0x1D, - 35982 - 19968: jis0208<<14 | 0x4B<<7 | 0x1E, - 35984 - 19968: jis0212<<14 | 0x3E<<7 | 0x02, - 35986 - 19968: jis0212<<14 | 0x3E<<7 | 0x03, - 35987 - 19968: jis0212<<14 | 0x3E<<7 | 0x04, - 35988 - 19968: jis0208<<14 | 0x4B<<7 | 0x1F, - 35992 - 19968: jis0208<<14 | 0x4B<<7 | 0x21, - 35993 - 19968: jis0212<<14 | 0x3E<<7 | 0x05, - 35995 - 19968: jis0212<<14 | 0x3E<<7 | 0x06, - 35996 - 19968: jis0212<<14 | 0x3E<<7 | 0x07, - 35997 - 19968: jis0208<<14 | 0x12<<7 | 0x0C, - 35998 - 19968: jis0208<<14 | 0x23<<7 | 0x46, - 36000 - 19968: jis0208<<14 | 0x28<<7 | 0x48, - 36001 - 19968: jis0208<<14 | 0x19<<7 | 0x41, - 36002 - 19968: jis0208<<14 | 0x18<<7 | 0x36, - 36004 - 19968: jis0212<<14 | 0x3E<<7 | 0x08, - 36007 - 19968: jis0208<<14 | 0x28<<7 | 0x2E, - 36008 - 19968: jis0208<<14 | 0x11<<7 | 0x3E, - 36009 - 19968: jis0208<<14 | 0x27<<7 | 0x2D, - 36010 - 19968: jis0208<<14 | 0x4B<<7 | 0x24, - 36011 - 19968: jis0208<<14 | 0x13<<7 | 0x32, - 36012 - 19968: jis0208<<14 | 0x1F<<7 | 0x34, - 36013 - 19968: jis0208<<14 | 0x4B<<7 | 0x23, - 36014 - 19968: jis0208<<14 | 0x4B<<7 | 0x28, - 36015 - 19968: jis0208<<14 | 0x22<<7 | 0x58, - 36016 - 19968: jis0208<<14 | 0x2B<<7 | 0x42, - 36018 - 19968: jis0208<<14 | 0x4B<<7 | 0x26, - 36019 - 19968: jis0208<<14 | 0x4B<<7 | 0x27, - 36020 - 19968: jis0208<<14 | 0x14<<7 | 0x0D, - 36022 - 19968: jis0208<<14 | 0x4B<<7 | 0x29, - 36023 - 19968: jis0208<<14 | 0x26<<7 | 0x42, - 36024 - 19968: jis0208<<14 | 0x21<<7 | 0x3E, - 36025 - 19968: jis0212<<14 | 0x3E<<7 | 0x09, - 36026 - 19968: jis0212<<14 | 0x3E<<7 | 0x0A, - 36027 - 19968: jis0208<<14 | 0x27<<7 | 0x50, - 36028 - 19968: jis0208<<14 | 0x24<<7 | 0x1C, - 36029 - 19968: jis0208<<14 | 0x4B<<7 | 0x25, - 36031 - 19968: jis0208<<14 | 0x2A<<7 | 0x26, - 36032 - 19968: jis0208<<14 | 0x11<<7 | 0x4B, - 36033 - 19968: jis0208<<14 | 0x4B<<7 | 0x2B, - 36034 - 19968: jis0208<<14 | 0x2E<<7 | 0x07, - 36035 - 19968: jis0208<<14 | 0x23<<7 | 0x21, - 36036 - 19968: jis0208<<14 | 0x2E<<7 | 0x24, - 36037 - 19968: jis0212<<14 | 0x3E<<7 | 0x0B, - 36038 - 19968: jis0212<<14 | 0x3E<<7 | 0x0C, - 36039 - 19968: jis0208<<14 | 0x1A<<7 | 0x50, - 36040 - 19968: jis0208<<14 | 0x4B<<7 | 0x2A, - 36041 - 19968: jis0212<<14 | 0x3E<<7 | 0x0D, - 36042 - 19968: jis0208<<14 | 0x21<<7 | 0x10, - 36043 - 19968: jis0212<<14 | 0x3E<<7 | 0x0E, - 36045 - 19968: jis0208<<14 | 0x4B<<7 | 0x3B, - 36046 - 19968: jis0208<<14 | 0x20<<7 | 0x07, - 36047 - 19968: jis0212<<14 | 0x3E<<7 | 0x0F, - 36049 - 19968: jis0208<<14 | 0x25<<7 | 0x57, - 36051 - 19968: jis0208<<14 | 0x28<<7 | 0x2F, - 36053 - 19968: jis0212<<14 | 0x3E<<7 | 0x11, - 36054 - 19968: jis0212<<14 | 0x3E<<7 | 0x10, - 36057 - 19968: jis0212<<14 | 0x3E<<7 | 0x12, - 36058 - 19968: jis0208<<14 | 0x4B<<7 | 0x2E, - 36059 - 19968: jis0208<<14 | 0x1A<<7 | 0x1E, - 36060 - 19968: jis0208<<14 | 0x1A<<7 | 0x51, - 36061 - 19968: jis0212<<14 | 0x3E<<7 | 0x13, - 36062 - 19968: jis0208<<14 | 0x1D<<7 | 0x3D, - 36064 - 19968: jis0208<<14 | 0x26<<7 | 0x44, - 36065 - 19968: jis0212<<14 | 0x3E<<7 | 0x14, - 36066 - 19968: jis0208<<14 | 0x17<<7 | 0x0C, - 36067 - 19968: jis0208<<14 | 0x4B<<7 | 0x2D, - 36068 - 19968: jis0208<<14 | 0x4B<<7 | 0x2C, - 36070 - 19968: jis0208<<14 | 0x28<<7 | 0x49, - 36072 - 19968: jis0212<<14 | 0x3E<<7 | 0x15, - 36074 - 19968: jis0208<<14 | 0x1B<<7 | 0x20, - 36076 - 19968: jis0212<<14 | 0x3E<<7 | 0x16, - 36077 - 19968: jis0208<<14 | 0x24<<7 | 0x31, - 36079 - 19968: jis0212<<14 | 0x3E<<7 | 0x17, - 36080 - 19968: jis0208<<14 | 0x5A<<7 | 0x50, - 36082 - 19968: jis0212<<14 | 0x3E<<7 | 0x19, - 36084 - 19968: jis0208<<14 | 0x5A<<7 | 0x51, - 36085 - 19968: jis0212<<14 | 0x3E<<7 | 0x1A, - 36087 - 19968: jis0212<<14 | 0x3E<<7 | 0x1B, - 36088 - 19968: jis0212<<14 | 0x3E<<7 | 0x1C, - 36090 - 19968: jis0208<<14 | 0x4B<<7 | 0x30, - 36091 - 19968: jis0208<<14 | 0x4B<<7 | 0x31, - 36092 - 19968: jis0208<<14 | 0x18<<7 | 0x37, - 36093 - 19968: jis0208<<14 | 0x4B<<7 | 0x2F, - 36094 - 19968: jis0212<<14 | 0x3E<<7 | 0x1D, - 36095 - 19968: jis0212<<14 | 0x3E<<7 | 0x1E, - 36097 - 19968: jis0212<<14 | 0x3E<<7 | 0x1F, - 36099 - 19968: jis0212<<14 | 0x3E<<7 | 0x20, - 36100 - 19968: jis0208<<14 | 0x4B<<7 | 0x32, - 36101 - 19968: jis0208<<14 | 0x4B<<7 | 0x33, - 36103 - 19968: jis0208<<14 | 0x4B<<7 | 0x35, - 36104 - 19968: jis0208<<14 | 0x21<<7 | 0x02, - 36105 - 19968: jis0212<<14 | 0x3E<<7 | 0x21, - 36106 - 19968: jis0208<<14 | 0x4B<<7 | 0x34, - 36107 - 19968: jis0208<<14 | 0x13<<7 | 0x45, - 36109 - 19968: jis0208<<14 | 0x4B<<7 | 0x37, - 36111 - 19968: jis0208<<14 | 0x4B<<7 | 0x36, - 36112 - 19968: jis0208<<14 | 0x4B<<7 | 0x38, - 36114 - 19968: jis0208<<14 | 0x5A<<7 | 0x52, - 36115 - 19968: jis0208<<14 | 0x4B<<7 | 0x3A, - 36116 - 19968: jis0208<<14 | 0x4B<<7 | 0x3C, - 36118 - 19968: jis0208<<14 | 0x4B<<7 | 0x3D, - 36119 - 19968: jis0212<<14 | 0x3E<<7 | 0x23, - 36123 - 19968: jis0212<<14 | 0x3E<<7 | 0x24, - 36196 - 19968: jis0208<<14 | 0x1F<<7 | 0x35, - 36197 - 19968: jis0212<<14 | 0x3E<<7 | 0x25, - 36198 - 19968: jis0208<<14 | 0x1B<<7 | 0x2E, - 36199 - 19968: jis0208<<14 | 0x4B<<7 | 0x3E, - 36201 - 19968: jis0212<<14 | 0x3E<<7 | 0x26, - 36203 - 19968: jis0208<<14 | 0x12<<7 | 0x31, - 36204 - 19968: jis0212<<14 | 0x3E<<7 | 0x27, - 36205 - 19968: jis0208<<14 | 0x4B<<7 | 0x3F, - 36206 - 19968: jis0212<<14 | 0x3E<<7 | 0x28, - 36208 - 19968: jis0208<<14 | 0x20<<7 | 0x55, - 36209 - 19968: jis0208<<14 | 0x4B<<7 | 0x40, - 36211 - 19968: jis0208<<14 | 0x4B<<7 | 0x41, - 36212 - 19968: jis0208<<14 | 0x28<<7 | 0x4A, - 36214 - 19968: jis0208<<14 | 0x5A<<7 | 0x53, - 36215 - 19968: jis0208<<14 | 0x14<<7 | 0x0E, - 36223 - 19968: jis0212<<14 | 0x3E<<7 | 0x29, - 36225 - 19968: jis0208<<14 | 0x4B<<7 | 0x42, - 36226 - 19968: jis0212<<14 | 0x3E<<7 | 0x2A, - 36228 - 19968: jis0212<<14 | 0x3E<<7 | 0x2B, - 36229 - 19968: jis0208<<14 | 0x23<<7 | 0x15, - 36232 - 19968: jis0212<<14 | 0x3E<<7 | 0x2C, - 36234 - 19968: jis0208<<14 | 0x10<<7 | 0x3A, - 36237 - 19968: jis0212<<14 | 0x3E<<7 | 0x2D, - 36240 - 19968: jis0212<<14 | 0x3E<<7 | 0x2E, - 36241 - 19968: jis0212<<14 | 0x3E<<7 | 0x2F, - 36245 - 19968: jis0212<<14 | 0x3E<<7 | 0x30, - 36249 - 19968: jis0208<<14 | 0x4B<<7 | 0x43, - 36254 - 19968: jis0212<<14 | 0x3E<<7 | 0x31, - 36255 - 19968: jis0212<<14 | 0x3E<<7 | 0x32, - 36256 - 19968: jis0212<<14 | 0x3E<<7 | 0x33, - 36259 - 19968: jis0208<<14 | 0x1B<<7 | 0x50, - 36262 - 19968: jis0212<<14 | 0x3E<<7 | 0x34, - 36264 - 19968: jis0208<<14 | 0x1E<<7 | 0x55, - 36267 - 19968: jis0212<<14 | 0x3E<<7 | 0x35, - 36268 - 19968: jis0212<<14 | 0x3E<<7 | 0x36, - 36271 - 19968: jis0212<<14 | 0x3E<<7 | 0x37, - 36274 - 19968: jis0212<<14 | 0x3E<<7 | 0x38, - 36275 - 19968: jis0208<<14 | 0x21<<7 | 0x0C, - 36277 - 19968: jis0212<<14 | 0x3E<<7 | 0x39, - 36279 - 19968: jis0212<<14 | 0x3E<<7 | 0x3A, - 36281 - 19968: jis0212<<14 | 0x3E<<7 | 0x3B, - 36282 - 19968: jis0208<<14 | 0x4B<<7 | 0x46, - 36283 - 19968: jis0212<<14 | 0x3E<<7 | 0x3C, - 36284 - 19968: jis0212<<14 | 0x3E<<7 | 0x4E, - 36286 - 19968: jis0208<<14 | 0x4B<<7 | 0x45, - 36288 - 19968: jis0212<<14 | 0x3E<<7 | 0x3D, - 36290 - 19968: jis0208<<14 | 0x4B<<7 | 0x44, - 36293 - 19968: jis0212<<14 | 0x3E<<7 | 0x3E, - 36294 - 19968: jis0212<<14 | 0x3E<<7 | 0x3F, - 36295 - 19968: jis0212<<14 | 0x3E<<7 | 0x40, - 36296 - 19968: jis0212<<14 | 0x3E<<7 | 0x41, - 36298 - 19968: jis0212<<14 | 0x3E<<7 | 0x42, - 36299 - 19968: jis0208<<14 | 0x4B<<7 | 0x4C, - 36300 - 19968: jis0208<<14 | 0x4B<<7 | 0x4A, - 36302 - 19968: jis0212<<14 | 0x3E<<7 | 0x43, - 36303 - 19968: jis0208<<14 | 0x4B<<7 | 0x47, - 36305 - 19968: jis0212<<14 | 0x3E<<7 | 0x44, - 36308 - 19968: jis0212<<14 | 0x3E<<7 | 0x45, - 36309 - 19968: jis0212<<14 | 0x3E<<7 | 0x46, - 36310 - 19968: jis0208<<14 | 0x4B<<7 | 0x49, - 36311 - 19968: jis0212<<14 | 0x3E<<7 | 0x47, - 36313 - 19968: jis0212<<14 | 0x3E<<7 | 0x48, - 36314 - 19968: jis0208<<14 | 0x4B<<7 | 0x48, - 36315 - 19968: jis0208<<14 | 0x4B<<7 | 0x4B, - 36317 - 19968: jis0208<<14 | 0x14<<7 | 0x56, - 36319 - 19968: jis0208<<14 | 0x4B<<7 | 0x4F, - 36321 - 19968: jis0208<<14 | 0x1F<<7 | 0x36, - 36323 - 19968: jis0208<<14 | 0x4B<<7 | 0x50, - 36324 - 19968: jis0212<<14 | 0x3E<<7 | 0x49, - 36325 - 19968: jis0212<<14 | 0x3E<<7 | 0x4A, - 36327 - 19968: jis0212<<14 | 0x3E<<7 | 0x4B, - 36328 - 19968: jis0208<<14 | 0x17<<7 | 0x38, - 36330 - 19968: jis0208<<14 | 0x4B<<7 | 0x4D, - 36331 - 19968: jis0208<<14 | 0x4B<<7 | 0x4E, - 36332 - 19968: jis0212<<14 | 0x3E<<7 | 0x4C, - 36335 - 19968: jis0208<<14 | 0x2E<<7 | 0x08, - 36336 - 19968: jis0212<<14 | 0x3E<<7 | 0x4D, - 36337 - 19968: jis0212<<14 | 0x3E<<7 | 0x4F, - 36338 - 19968: jis0212<<14 | 0x3E<<7 | 0x50, - 36339 - 19968: jis0208<<14 | 0x23<<7 | 0x16, - 36340 - 19968: jis0212<<14 | 0x3E<<7 | 0x51, - 36341 - 19968: jis0208<<14 | 0x20<<7 | 0x08, - 36348 - 19968: jis0208<<14 | 0x4B<<7 | 0x51, - 36349 - 19968: jis0212<<14 | 0x3E<<7 | 0x52, - 36351 - 19968: jis0208<<14 | 0x4B<<7 | 0x54, - 36353 - 19968: jis0212<<14 | 0x3E<<7 | 0x53, - 36356 - 19968: jis0212<<14 | 0x3E<<7 | 0x54, - 36357 - 19968: jis0212<<14 | 0x3E<<7 | 0x55, - 36358 - 19968: jis0212<<14 | 0x3E<<7 | 0x56, - 36360 - 19968: jis0208<<14 | 0x4B<<7 | 0x52, - 36361 - 19968: jis0208<<14 | 0x4B<<7 | 0x53, - 36362 - 19968: jis0208<<14 | 0x2C<<7 | 0x38, - 36363 - 19968: jis0212<<14 | 0x3E<<7 | 0x57, - 36367 - 19968: jis0208<<14 | 0x25<<7 | 0x06, - 36368 - 19968: jis0208<<14 | 0x4B<<7 | 0x57, - 36369 - 19968: jis0212<<14 | 0x3E<<7 | 0x58, - 36372 - 19968: jis0212<<14 | 0x3E<<7 | 0x59, - 36374 - 19968: jis0212<<14 | 0x3E<<7 | 0x5A, - 36381 - 19968: jis0208<<14 | 0x4B<<7 | 0x55, - 36382 - 19968: jis0208<<14 | 0x4B<<7 | 0x56, - 36383 - 19968: jis0208<<14 | 0x4B<<7 | 0x58, - 36384 - 19968: jis0212<<14 | 0x3E<<7 | 0x5B, - 36385 - 19968: jis0212<<14 | 0x3E<<7 | 0x5C, - 36386 - 19968: jis0212<<14 | 0x3E<<7 | 0x5D, - 36387 - 19968: jis0212<<14 | 0x3F<<7 | 0x00, - 36390 - 19968: jis0212<<14 | 0x3F<<7 | 0x01, - 36391 - 19968: jis0212<<14 | 0x3F<<7 | 0x02, - 36394 - 19968: jis0208<<14 | 0x4C<<7 | 0x08, - 36400 - 19968: jis0208<<14 | 0x4B<<7 | 0x5B, - 36401 - 19968: jis0212<<14 | 0x3F<<7 | 0x03, - 36403 - 19968: jis0212<<14 | 0x3F<<7 | 0x04, - 36404 - 19968: jis0208<<14 | 0x4B<<7 | 0x5C, - 36405 - 19968: jis0208<<14 | 0x4B<<7 | 0x5A, - 36406 - 19968: jis0212<<14 | 0x3F<<7 | 0x05, - 36407 - 19968: jis0212<<14 | 0x3F<<7 | 0x06, - 36408 - 19968: jis0212<<14 | 0x3F<<7 | 0x07, - 36409 - 19968: jis0212<<14 | 0x3F<<7 | 0x08, - 36413 - 19968: jis0212<<14 | 0x3F<<7 | 0x09, - 36416 - 19968: jis0212<<14 | 0x3F<<7 | 0x0A, - 36417 - 19968: jis0212<<14 | 0x3F<<7 | 0x0B, - 36418 - 19968: jis0208<<14 | 0x4B<<7 | 0x59, - 36420 - 19968: jis0208<<14 | 0x23<<7 | 0x5C, - 36423 - 19968: jis0208<<14 | 0x4C<<7 | 0x00, - 36424 - 19968: jis0208<<14 | 0x4C<<7 | 0x04, - 36425 - 19968: jis0208<<14 | 0x4C<<7 | 0x01, - 36426 - 19968: jis0208<<14 | 0x4B<<7 | 0x5D, - 36427 - 19968: jis0212<<14 | 0x3F<<7 | 0x0C, - 36428 - 19968: jis0208<<14 | 0x4C<<7 | 0x02, - 36429 - 19968: jis0212<<14 | 0x3F<<7 | 0x0D, - 36430 - 19968: jis0212<<14 | 0x3F<<7 | 0x0E, - 36431 - 19968: jis0212<<14 | 0x3F<<7 | 0x0F, - 36432 - 19968: jis0208<<14 | 0x4C<<7 | 0x03, - 36436 - 19968: jis0212<<14 | 0x3F<<7 | 0x10, - 36437 - 19968: jis0208<<14 | 0x4C<<7 | 0x0A, - 36441 - 19968: jis0208<<14 | 0x4C<<7 | 0x05, - 36443 - 19968: jis0212<<14 | 0x3F<<7 | 0x11, - 36444 - 19968: jis0212<<14 | 0x3F<<7 | 0x12, - 36445 - 19968: jis0212<<14 | 0x3F<<7 | 0x13, - 36446 - 19968: jis0212<<14 | 0x3F<<7 | 0x14, - 36447 - 19968: jis0208<<14 | 0x1F<<7 | 0x37, - 36448 - 19968: jis0208<<14 | 0x4C<<7 | 0x07, - 36449 - 19968: jis0212<<14 | 0x3F<<7 | 0x15, - 36450 - 19968: jis0212<<14 | 0x3F<<7 | 0x16, - 36451 - 19968: jis0208<<14 | 0x4C<<7 | 0x09, - 36452 - 19968: jis0208<<14 | 0x4C<<7 | 0x06, - 36457 - 19968: jis0212<<14 | 0x3F<<7 | 0x17, - 36460 - 19968: jis0212<<14 | 0x3F<<7 | 0x18, - 36461 - 19968: jis0212<<14 | 0x3F<<7 | 0x19, - 36463 - 19968: jis0212<<14 | 0x3F<<7 | 0x1A, - 36464 - 19968: jis0212<<14 | 0x3F<<7 | 0x1B, - 36465 - 19968: jis0212<<14 | 0x3F<<7 | 0x1C, - 36466 - 19968: jis0208<<14 | 0x4C<<7 | 0x0C, - 36468 - 19968: jis0208<<14 | 0x1C<<7 | 0x12, - 36470 - 19968: jis0208<<14 | 0x4C<<7 | 0x0B, - 36473 - 19968: jis0212<<14 | 0x3F<<7 | 0x1D, - 36474 - 19968: jis0212<<14 | 0x3F<<7 | 0x1E, - 36475 - 19968: jis0212<<14 | 0x3F<<7 | 0x1F, - 36476 - 19968: jis0208<<14 | 0x4C<<7 | 0x0D, - 36481 - 19968: jis0208<<14 | 0x4C<<7 | 0x0E, - 36482 - 19968: jis0212<<14 | 0x3F<<7 | 0x20, - 36483 - 19968: jis0212<<14 | 0x3F<<7 | 0x21, - 36484 - 19968: jis0208<<14 | 0x4C<<7 | 0x11, - 36485 - 19968: jis0208<<14 | 0x4C<<7 | 0x10, - 36487 - 19968: jis0208<<14 | 0x4C<<7 | 0x0F, - 36489 - 19968: jis0212<<14 | 0x3F<<7 | 0x22, - 36490 - 19968: jis0208<<14 | 0x4C<<7 | 0x13, - 36491 - 19968: jis0208<<14 | 0x4C<<7 | 0x12, - 36493 - 19968: jis0208<<14 | 0x2B<<7 | 0x55, - 36496 - 19968: jis0212<<14 | 0x3F<<7 | 0x23, - 36497 - 19968: jis0208<<14 | 0x4C<<7 | 0x15, - 36498 - 19968: jis0212<<14 | 0x3F<<7 | 0x24, - 36499 - 19968: jis0208<<14 | 0x4C<<7 | 0x14, - 36500 - 19968: jis0208<<14 | 0x4C<<7 | 0x16, - 36501 - 19968: jis0212<<14 | 0x3F<<7 | 0x25, - 36505 - 19968: jis0208<<14 | 0x4C<<7 | 0x17, - 36506 - 19968: jis0212<<14 | 0x3F<<7 | 0x26, - 36507 - 19968: jis0212<<14 | 0x3F<<7 | 0x27, - 36509 - 19968: jis0212<<14 | 0x3F<<7 | 0x28, - 36510 - 19968: jis0212<<14 | 0x3F<<7 | 0x29, - 36513 - 19968: jis0208<<14 | 0x4C<<7 | 0x19, - 36514 - 19968: jis0212<<14 | 0x3F<<7 | 0x2A, - 36519 - 19968: jis0212<<14 | 0x3F<<7 | 0x2B, - 36521 - 19968: jis0212<<14 | 0x3F<<7 | 0x2C, - 36522 - 19968: jis0208<<14 | 0x4C<<7 | 0x18, - 36523 - 19968: jis0208<<14 | 0x1E<<7 | 0x27, - 36524 - 19968: jis0208<<14 | 0x4C<<7 | 0x1A, - 36525 - 19968: jis0212<<14 | 0x3F<<7 | 0x2D, - 36526 - 19968: jis0212<<14 | 0x3F<<7 | 0x2E, - 36527 - 19968: jis0208<<14 | 0x15<<7 | 0x4C, - 36528 - 19968: jis0208<<14 | 0x4C<<7 | 0x1B, - 36529 - 19968: jis0208<<14 | 0x4C<<7 | 0x1D, - 36531 - 19968: jis0212<<14 | 0x3F<<7 | 0x2F, - 36533 - 19968: jis0212<<14 | 0x3F<<7 | 0x30, - 36538 - 19968: jis0212<<14 | 0x3F<<7 | 0x31, - 36539 - 19968: jis0212<<14 | 0x3F<<7 | 0x32, - 36542 - 19968: jis0208<<14 | 0x4C<<7 | 0x1E, - 36544 - 19968: jis0212<<14 | 0x3F<<7 | 0x33, - 36545 - 19968: jis0212<<14 | 0x3F<<7 | 0x34, - 36547 - 19968: jis0212<<14 | 0x3F<<7 | 0x35, - 36548 - 19968: jis0212<<14 | 0x3F<<7 | 0x36, - 36549 - 19968: jis0208<<14 | 0x4C<<7 | 0x1F, - 36550 - 19968: jis0208<<14 | 0x4C<<7 | 0x1C, - 36551 - 19968: jis0212<<14 | 0x3F<<7 | 0x37, - 36552 - 19968: jis0208<<14 | 0x4C<<7 | 0x20, - 36554 - 19968: jis0208<<14 | 0x1B<<7 | 0x35, - 36555 - 19968: jis0208<<14 | 0x4C<<7 | 0x21, - 36556 - 19968: jis0208<<14 | 0x14<<7 | 0x0F, - 36557 - 19968: jis0208<<14 | 0x16<<7 | 0x12, - 36559 - 19968: jis0208<<14 | 0x5A<<7 | 0x55, - 36561 - 19968: jis0212<<14 | 0x3F<<7 | 0x39, - 36562 - 19968: jis0208<<14 | 0x17<<7 | 0x0D, - 36564 - 19968: jis0212<<14 | 0x3F<<7 | 0x3A, - 36571 - 19968: jis0208<<14 | 0x4C<<7 | 0x22, - 36572 - 19968: jis0212<<14 | 0x3F<<7 | 0x3B, - 36575 - 19968: jis0208<<14 | 0x25<<7 | 0x4F, - 36578 - 19968: jis0208<<14 | 0x24<<7 | 0x1D, - 36579 - 19968: jis0208<<14 | 0x4C<<7 | 0x23, - 36584 - 19968: jis0212<<14 | 0x3F<<7 | 0x3C, - 36587 - 19968: jis0208<<14 | 0x4C<<7 | 0x26, - 36589 - 19968: jis0212<<14 | 0x3F<<7 | 0x43, - 36590 - 19968: jis0212<<14 | 0x3F<<7 | 0x3D, - 36592 - 19968: jis0212<<14 | 0x3F<<7 | 0x3E, - 36593 - 19968: jis0212<<14 | 0x3F<<7 | 0x3F, - 36599 - 19968: jis0212<<14 | 0x3F<<7 | 0x40, - 36600 - 19968: jis0208<<14 | 0x1B<<7 | 0x13, - 36601 - 19968: jis0212<<14 | 0x3F<<7 | 0x41, - 36602 - 19968: jis0212<<14 | 0x3F<<7 | 0x42, - 36603 - 19968: jis0208<<14 | 0x4C<<7 | 0x25, - 36604 - 19968: jis0208<<14 | 0x4C<<7 | 0x24, - 36605 - 19968: jis0208<<14 | 0x16<<7 | 0x39, - 36606 - 19968: jis0208<<14 | 0x4C<<7 | 0x27, - 36608 - 19968: jis0212<<14 | 0x3F<<7 | 0x44, - 36610 - 19968: jis0212<<14 | 0x3F<<7 | 0x45, - 36611 - 19968: jis0208<<14 | 0x12<<7 | 0x32, - 36613 - 19968: jis0208<<14 | 0x4C<<7 | 0x29, - 36615 - 19968: jis0212<<14 | 0x3F<<7 | 0x46, - 36616 - 19968: jis0212<<14 | 0x3F<<7 | 0x47, - 36617 - 19968: jis0208<<14 | 0x19<<7 | 0x3B, - 36618 - 19968: jis0208<<14 | 0x4C<<7 | 0x28, - 36620 - 19968: jis0208<<14 | 0x4C<<7 | 0x31, - 36623 - 19968: jis0212<<14 | 0x3F<<7 | 0x48, - 36624 - 19968: jis0212<<14 | 0x3F<<7 | 0x49, - 36626 - 19968: jis0208<<14 | 0x4C<<7 | 0x2B, - 36627 - 19968: jis0208<<14 | 0x4C<<7 | 0x2D, - 36628 - 19968: jis0208<<14 | 0x29<<7 | 0x44, - 36629 - 19968: jis0208<<14 | 0x4C<<7 | 0x2A, - 36630 - 19968: jis0212<<14 | 0x3F<<7 | 0x4A, - 36631 - 19968: jis0212<<14 | 0x3F<<7 | 0x4B, - 36632 - 19968: jis0212<<14 | 0x3F<<7 | 0x4C, - 36633 - 19968: jis0208<<14 | 0x4C<<7 | 0x2C, - 36635 - 19968: jis0208<<14 | 0x4C<<7 | 0x30, - 36636 - 19968: jis0208<<14 | 0x4C<<7 | 0x2E, - 36637 - 19968: jis0208<<14 | 0x14<<7 | 0x10, - 36638 - 19968: jis0212<<14 | 0x3F<<7 | 0x4D, - 36639 - 19968: jis0208<<14 | 0x4C<<7 | 0x2F, - 36640 - 19968: jis0212<<14 | 0x3F<<7 | 0x4E, - 36641 - 19968: jis0212<<14 | 0x3F<<7 | 0x4F, - 36643 - 19968: jis0212<<14 | 0x3F<<7 | 0x50, - 36645 - 19968: jis0212<<14 | 0x3F<<7 | 0x51, - 36646 - 19968: jis0208<<14 | 0x4C<<7 | 0x32, - 36647 - 19968: jis0212<<14 | 0x3F<<7 | 0x52, - 36648 - 19968: jis0212<<14 | 0x3F<<7 | 0x53, - 36649 - 19968: jis0208<<14 | 0x26<<7 | 0x39, - 36650 - 19968: jis0208<<14 | 0x2D<<7 | 0x37, - 36652 - 19968: jis0212<<14 | 0x3F<<7 | 0x54, - 36653 - 19968: jis0212<<14 | 0x3F<<7 | 0x55, - 36654 - 19968: jis0212<<14 | 0x3F<<7 | 0x56, - 36655 - 19968: jis0208<<14 | 0x1C<<7 | 0x13, - 36659 - 19968: jis0208<<14 | 0x4C<<7 | 0x33, - 36660 - 19968: jis0212<<14 | 0x3F<<7 | 0x57, - 36661 - 19968: jis0212<<14 | 0x3F<<7 | 0x58, - 36662 - 19968: jis0212<<14 | 0x3F<<7 | 0x59, - 36663 - 19968: jis0212<<14 | 0x3F<<7 | 0x5A, - 36664 - 19968: jis0208<<14 | 0x2C<<7 | 0x01, - 36665 - 19968: jis0208<<14 | 0x4C<<7 | 0x35, - 36666 - 19968: jis0212<<14 | 0x3F<<7 | 0x5B, - 36667 - 19968: jis0208<<14 | 0x4C<<7 | 0x34, - 36670 - 19968: jis0208<<14 | 0x4C<<7 | 0x38, - 36671 - 19968: jis0208<<14 | 0x2C<<7 | 0x20, - 36672 - 19968: jis0212<<14 | 0x3F<<7 | 0x5C, - 36673 - 19968: jis0212<<14 | 0x3F<<7 | 0x5D, - 36674 - 19968: jis0208<<14 | 0x4C<<7 | 0x37, - 36675 - 19968: jis0212<<14 | 0x40<<7 | 0x00, - 36676 - 19968: jis0208<<14 | 0x12<<7 | 0x4C, - 36677 - 19968: jis0208<<14 | 0x4C<<7 | 0x36, - 36678 - 19968: jis0208<<14 | 0x4C<<7 | 0x3B, - 36679 - 19968: jis0212<<14 | 0x40<<7 | 0x01, - 36681 - 19968: jis0208<<14 | 0x4C<<7 | 0x3A, - 36684 - 19968: jis0208<<14 | 0x4C<<7 | 0x39, - 36685 - 19968: jis0208<<14 | 0x24<<7 | 0x11, - 36686 - 19968: jis0208<<14 | 0x4C<<7 | 0x3C, - 36687 - 19968: jis0212<<14 | 0x40<<7 | 0x02, - 36689 - 19968: jis0212<<14 | 0x40<<7 | 0x03, - 36690 - 19968: jis0212<<14 | 0x40<<7 | 0x04, - 36691 - 19968: jis0212<<14 | 0x40<<7 | 0x05, - 36692 - 19968: jis0212<<14 | 0x40<<7 | 0x06, - 36693 - 19968: jis0212<<14 | 0x40<<7 | 0x07, - 36695 - 19968: jis0208<<14 | 0x4C<<7 | 0x3D, - 36696 - 19968: jis0212<<14 | 0x40<<7 | 0x08, - 36700 - 19968: jis0208<<14 | 0x4C<<7 | 0x3E, - 36701 - 19968: jis0212<<14 | 0x40<<7 | 0x09, - 36702 - 19968: jis0212<<14 | 0x40<<7 | 0x0A, - 36703 - 19968: jis0208<<14 | 0x18<<7 | 0x4B, - 36705 - 19968: jis0208<<14 | 0x16<<7 | 0x04, - 36706 - 19968: jis0208<<14 | 0x4C<<7 | 0x3F, - 36707 - 19968: jis0208<<14 | 0x4C<<7 | 0x40, - 36708 - 19968: jis0208<<14 | 0x4C<<7 | 0x41, - 36709 - 19968: jis0212<<14 | 0x40<<7 | 0x0B, - 36763 - 19968: jis0208<<14 | 0x1E<<7 | 0x28, - 36764 - 19968: jis0208<<14 | 0x4C<<7 | 0x42, - 36765 - 19968: jis0212<<14 | 0x40<<7 | 0x0C, - 36766 - 19968: jis0208<<14 | 0x1B<<7 | 0x0C, - 36767 - 19968: jis0208<<14 | 0x4C<<7 | 0x43, - 36768 - 19968: jis0212<<14 | 0x40<<7 | 0x0D, - 36769 - 19968: jis0212<<14 | 0x40<<7 | 0x0E, - 36771 - 19968: jis0208<<14 | 0x4C<<7 | 0x44, - 36772 - 19968: jis0212<<14 | 0x40<<7 | 0x0F, - 36773 - 19968: jis0212<<14 | 0x40<<7 | 0x10, - 36774 - 19968: jis0212<<14 | 0x40<<7 | 0x11, - 36775 - 19968: jis0208<<14 | 0x31<<7 | 0x00, - 36776 - 19968: jis0208<<14 | 0x30<<7 | 0x5D, - 36781 - 19968: jis0208<<14 | 0x4C<<7 | 0x45, - 36782 - 19968: jis0208<<14 | 0x44<<7 | 0x4F, - 36783 - 19968: jis0208<<14 | 0x4C<<7 | 0x46, - 36784 - 19968: jis0208<<14 | 0x22<<7 | 0x03, - 36785 - 19968: jis0208<<14 | 0x1E<<7 | 0x0A, - 36786 - 19968: jis0208<<14 | 0x26<<7 | 0x1F, - 36789 - 19968: jis0212<<14 | 0x40<<7 | 0x12, - 36790 - 19968: jis0212<<14 | 0x40<<7 | 0x13, - 36791 - 19968: jis0208<<14 | 0x4C<<7 | 0x47, - 36792 - 19968: jis0212<<14 | 0x40<<7 | 0x14, - 36794 - 19968: jis0208<<14 | 0x29<<7 | 0x34, - 36795 - 19968: jis0208<<14 | 0x23<<7 | 0x33, - 36796 - 19968: jis0208<<14 | 0x18<<7 | 0x5D, - 36798 - 19968: jis0212<<14 | 0x40<<7 | 0x15, - 36799 - 19968: jis0208<<14 | 0x22<<7 | 0x08, - 36800 - 19968: jis0212<<14 | 0x40<<7 | 0x16, - 36801 - 19968: jis0212<<14 | 0x40<<7 | 0x17, - 36802 - 19968: jis0208<<14 | 0x10<<7 | 0x09, - 36804 - 19968: jis0208<<14 | 0x2A<<7 | 0x57, - 36805 - 19968: jis0208<<14 | 0x1E<<7 | 0x36, - 36806 - 19968: jis0212<<14 | 0x40<<7 | 0x18, - 36810 - 19968: jis0212<<14 | 0x40<<7 | 0x19, - 36811 - 19968: jis0212<<14 | 0x40<<7 | 0x1A, - 36813 - 19968: jis0212<<14 | 0x40<<7 | 0x1B, - 36814 - 19968: jis0208<<14 | 0x16<<7 | 0x3D, - 36816 - 19968: jis0212<<14 | 0x40<<7 | 0x1C, - 36817 - 19968: jis0208<<14 | 0x15<<7 | 0x40, - 36818 - 19968: jis0212<<14 | 0x40<<7 | 0x1D, - 36819 - 19968: jis0212<<14 | 0x40<<7 | 0x1E, - 36820 - 19968: jis0208<<14 | 0x29<<7 | 0x35, - 36821 - 19968: jis0212<<14 | 0x40<<7 | 0x1F, - 36826 - 19968: jis0208<<14 | 0x4C<<7 | 0x48, - 36832 - 19968: jis0212<<14 | 0x40<<7 | 0x20, - 36834 - 19968: jis0208<<14 | 0x4C<<7 | 0x4A, - 36835 - 19968: jis0212<<14 | 0x40<<7 | 0x21, - 36836 - 19968: jis0212<<14 | 0x40<<7 | 0x22, - 36837 - 19968: jis0208<<14 | 0x4C<<7 | 0x49, - 36838 - 19968: jis0208<<14 | 0x11<<7 | 0x3F, - 36840 - 19968: jis0212<<14 | 0x40<<7 | 0x23, - 36841 - 19968: jis0208<<14 | 0x25<<7 | 0x55, - 36842 - 19968: jis0208<<14 | 0x4C<<7 | 0x4B, - 36843 - 19968: jis0208<<14 | 0x26<<7 | 0x56, - 36845 - 19968: jis0208<<14 | 0x24<<7 | 0x12, - 36846 - 19968: jis0212<<14 | 0x40<<7 | 0x24, - 36847 - 19968: jis0208<<14 | 0x4C<<7 | 0x4C, - 36848 - 19968: jis0208<<14 | 0x1C<<7 | 0x31, - 36849 - 19968: jis0212<<14 | 0x40<<7 | 0x25, - 36852 - 19968: jis0208<<14 | 0x4C<<7 | 0x4E, - 36853 - 19968: jis0212<<14 | 0x40<<7 | 0x26, - 36854 - 19968: jis0212<<14 | 0x40<<7 | 0x27, - 36855 - 19968: jis0208<<14 | 0x2B<<7 | 0x21, - 36856 - 19968: jis0208<<14 | 0x4C<<7 | 0x5D, - 36857 - 19968: jis0208<<14 | 0x4C<<7 | 0x50, - 36858 - 19968: jis0208<<14 | 0x4C<<7 | 0x51, - 36859 - 19968: jis0212<<14 | 0x40<<7 | 0x28, - 36861 - 19968: jis0208<<14 | 0x23<<7 | 0x28, - 36862 - 19968: jis0212<<14 | 0x40<<7 | 0x29, - 36864 - 19968: jis0208<<14 | 0x21<<7 | 0x3F, - 36865 - 19968: jis0208<<14 | 0x20<<7 | 0x56, - 36866 - 19968: jis0212<<14 | 0x40<<7 | 0x2A, - 36867 - 19968: jis0208<<14 | 0x25<<7 | 0x07, - 36868 - 19968: jis0212<<14 | 0x40<<7 | 0x2B, - 36869 - 19968: jis0208<<14 | 0x4C<<7 | 0x4F, - 36870 - 19968: jis0208<<14 | 0x14<<7 | 0x34, - 36872 - 19968: jis0212<<14 | 0x40<<7 | 0x2C, - 36875 - 19968: jis0208<<14 | 0x4C<<7 | 0x58, - 36876 - 19968: jis0212<<14 | 0x40<<7 | 0x2D, - 36877 - 19968: jis0208<<14 | 0x4C<<7 | 0x55, - 36878 - 19968: jis0208<<14 | 0x4D<<7 | 0x04, - 36879 - 19968: jis0208<<14 | 0x25<<7 | 0x08, - 36880 - 19968: jis0208<<14 | 0x22<<7 | 0x3F, - 36881 - 19968: jis0208<<14 | 0x4C<<7 | 0x52, - 36883 - 19968: jis0208<<14 | 0x23<<7 | 0x5D, - 36884 - 19968: jis0208<<14 | 0x24<<7 | 0x32, - 36885 - 19968: jis0208<<14 | 0x4C<<7 | 0x53, - 36886 - 19968: jis0208<<14 | 0x4C<<7 | 0x57, - 36887 - 19968: jis0208<<14 | 0x1E<<7 | 0x3F, - 36888 - 19968: jis0212<<14 | 0x40<<7 | 0x2E, - 36889 - 19968: jis0208<<14 | 0x26<<7 | 0x46, - 36890 - 19968: jis0208<<14 | 0x23<<7 | 0x2B, - 36891 - 19968: jis0212<<14 | 0x40<<7 | 0x2F, - 36893 - 19968: jis0208<<14 | 0x1F<<7 | 0x21, - 36894 - 19968: jis0208<<14 | 0x4C<<7 | 0x56, - 36895 - 19968: jis0208<<14 | 0x21<<7 | 0x0D, - 36896 - 19968: jis0208<<14 | 0x21<<7 | 0x03, - 36897 - 19968: jis0208<<14 | 0x4C<<7 | 0x54, - 36898 - 19968: jis0208<<14 | 0x0F<<7 | 0x08, - 36899 - 19968: jis0208<<14 | 0x2E<<7 | 0x01, - 36903 - 19968: jis0208<<14 | 0x4C<<7 | 0x59, - 36904 - 19968: jis0212<<14 | 0x40<<7 | 0x30, - 36905 - 19968: jis0212<<14 | 0x40<<7 | 0x31, - 36906 - 19968: jis0212<<14 | 0x40<<7 | 0x33, - 36908 - 19968: jis0212<<14 | 0x40<<7 | 0x34, - 36909 - 19968: jis0212<<14 | 0x40<<7 | 0x35, - 36910 - 19968: jis0208<<14 | 0x21<<7 | 0x40, - 36911 - 19968: jis0212<<14 | 0x40<<7 | 0x32, - 36913 - 19968: jis0208<<14 | 0x1C<<7 | 0x14, - 36914 - 19968: jis0208<<14 | 0x1E<<7 | 0x29, - 36915 - 19968: jis0212<<14 | 0x40<<7 | 0x36, - 36916 - 19968: jis0212<<14 | 0x40<<7 | 0x37, - 36917 - 19968: jis0208<<14 | 0x4C<<7 | 0x5B, - 36918 - 19968: jis0208<<14 | 0x4C<<7 | 0x5A, - 36919 - 19968: jis0212<<14 | 0x40<<7 | 0x38, - 36920 - 19968: jis0208<<14 | 0x0F<<7 | 0x4E, - 36921 - 19968: jis0208<<14 | 0x4C<<7 | 0x5C, - 36924 - 19968: jis0208<<14 | 0x28<<7 | 0x0E, - 36926 - 19968: jis0208<<14 | 0x4D<<7 | 0x06, - 36927 - 19968: jis0212<<14 | 0x40<<7 | 0x39, - 36929 - 19968: jis0208<<14 | 0x25<<7 | 0x3A, - 36930 - 19968: jis0208<<14 | 0x1E<<7 | 0x4A, - 36931 - 19968: jis0212<<14 | 0x40<<7 | 0x3A, - 36932 - 19968: jis0212<<14 | 0x40<<7 | 0x3B, - 36933 - 19968: jis0208<<14 | 0x22<<7 | 0x38, - 36935 - 19968: jis0208<<14 | 0x15<<7 | 0x57, - 36937 - 19968: jis0208<<14 | 0x4D<<7 | 0x05, - 36938 - 19968: jis0208<<14 | 0x2C<<7 | 0x16, - 36939 - 19968: jis0208<<14 | 0x10<<7 | 0x1E, - 36940 - 19968: jis0212<<14 | 0x40<<7 | 0x3C, - 36941 - 19968: jis0208<<14 | 0x29<<7 | 0x36, - 36942 - 19968: jis0208<<14 | 0x11<<7 | 0x40, - 36943 - 19968: jis0208<<14 | 0x4D<<7 | 0x00, - 36944 - 19968: jis0208<<14 | 0x4D<<7 | 0x01, - 36945 - 19968: jis0208<<14 | 0x4D<<7 | 0x02, - 36946 - 19968: jis0208<<14 | 0x4D<<7 | 0x03, - 36947 - 19968: jis0208<<14 | 0x25<<7 | 0x1A, - 36948 - 19968: jis0208<<14 | 0x22<<7 | 0x02, - 36949 - 19968: jis0208<<14 | 0x0F<<7 | 0x42, - 36950 - 19968: jis0208<<14 | 0x4D<<7 | 0x07, - 36952 - 19968: jis0208<<14 | 0x4D<<7 | 0x08, - 36953 - 19968: jis0208<<14 | 0x53<<7 | 0x02, - 36955 - 19968: jis0212<<14 | 0x40<<7 | 0x3D, - 36956 - 19968: jis0208<<14 | 0x21<<7 | 0x1C, - 36957 - 19968: jis0212<<14 | 0x40<<7 | 0x3E, - 36958 - 19968: jis0208<<14 | 0x4D<<7 | 0x09, - 36960 - 19968: jis0208<<14 | 0x10<<7 | 0x52, - 36961 - 19968: jis0208<<14 | 0x20<<7 | 0x2B, - 36962 - 19968: jis0212<<14 | 0x40<<7 | 0x3F, - 36963 - 19968: jis0208<<14 | 0x17<<7 | 0x0E, - 36965 - 19968: jis0208<<14 | 0x2C<<7 | 0x39, - 36966 - 19968: jis0212<<14 | 0x40<<7 | 0x40, - 36967 - 19968: jis0208<<14 | 0x5A<<7 | 0x58, - 36968 - 19968: jis0208<<14 | 0x4D<<7 | 0x0A, - 36969 - 19968: jis0208<<14 | 0x24<<7 | 0x0B, - 36972 - 19968: jis0212<<14 | 0x40<<7 | 0x42, - 36973 - 19968: jis0208<<14 | 0x20<<7 | 0x57, - 36974 - 19968: jis0208<<14 | 0x1B<<7 | 0x36, - 36975 - 19968: jis0208<<14 | 0x4D<<7 | 0x0B, - 36976 - 19968: jis0212<<14 | 0x40<<7 | 0x43, - 36978 - 19968: jis0208<<14 | 0x4D<<7 | 0x0E, - 36980 - 19968: jis0212<<14 | 0x40<<7 | 0x44, - 36981 - 19968: jis0208<<14 | 0x1C<<7 | 0x44, - 36982 - 19968: jis0208<<14 | 0x4D<<7 | 0x0C, - 36983 - 19968: jis0208<<14 | 0x20<<7 | 0x0A, - 36984 - 19968: jis0208<<14 | 0x20<<7 | 0x09, - 36985 - 19968: jis0212<<14 | 0x40<<7 | 0x45, - 36986 - 19968: jis0208<<14 | 0x0F<<7 | 0x43, - 36988 - 19968: jis0208<<14 | 0x2D<<7 | 0x2A, - 36989 - 19968: jis0208<<14 | 0x4D<<7 | 0x10, - 36991 - 19968: jis0208<<14 | 0x27<<7 | 0x51, - 36992 - 19968: jis0208<<14 | 0x4D<<7 | 0x12, - 36993 - 19968: jis0208<<14 | 0x4D<<7 | 0x11, - 36994 - 19968: jis0208<<14 | 0x4D<<7 | 0x0F, - 36995 - 19968: jis0208<<14 | 0x42<<7 | 0x43, - 36996 - 19968: jis0208<<14 | 0x13<<7 | 0x33, - 36997 - 19968: jis0212<<14 | 0x40<<7 | 0x46, - 36999 - 19968: jis0208<<14 | 0x4C<<7 | 0x4D, - 37000 - 19968: jis0212<<14 | 0x40<<7 | 0x47, - 37001 - 19968: jis0208<<14 | 0x4D<<7 | 0x14, - 37002 - 19968: jis0208<<14 | 0x4D<<7 | 0x13, - 37003 - 19968: jis0212<<14 | 0x40<<7 | 0x48, - 37004 - 19968: jis0212<<14 | 0x40<<7 | 0x49, - 37006 - 19968: jis0212<<14 | 0x40<<7 | 0x4A, - 37007 - 19968: jis0208<<14 | 0x4D<<7 | 0x15, - 37008 - 19968: jis0212<<14 | 0x40<<7 | 0x4B, - 37009 - 19968: jis0208<<14 | 0x2C<<7 | 0x17, - 37013 - 19968: jis0212<<14 | 0x40<<7 | 0x4C, - 37015 - 19968: jis0212<<14 | 0x40<<7 | 0x4D, - 37016 - 19968: jis0212<<14 | 0x40<<7 | 0x4E, - 37017 - 19968: jis0212<<14 | 0x40<<7 | 0x4F, - 37019 - 19968: jis0212<<14 | 0x40<<7 | 0x50, - 37024 - 19968: jis0212<<14 | 0x40<<7 | 0x51, - 37025 - 19968: jis0212<<14 | 0x40<<7 | 0x52, - 37026 - 19968: jis0212<<14 | 0x40<<7 | 0x53, - 37027 - 19968: jis0208<<14 | 0x25<<7 | 0x40, - 37029 - 19968: jis0212<<14 | 0x40<<7 | 0x54, - 37030 - 19968: jis0208<<14 | 0x2A<<7 | 0x0D, - 37032 - 19968: jis0208<<14 | 0x4D<<7 | 0x16, - 37034 - 19968: jis0208<<14 | 0x1B<<7 | 0x38, - 37039 - 19968: jis0208<<14 | 0x4D<<7 | 0x17, - 37040 - 19968: jis0212<<14 | 0x40<<7 | 0x55, - 37041 - 19968: jis0208<<14 | 0x4D<<7 | 0x18, - 37042 - 19968: jis0212<<14 | 0x40<<7 | 0x56, - 37043 - 19968: jis0212<<14 | 0x40<<7 | 0x57, - 37044 - 19968: jis0212<<14 | 0x40<<7 | 0x58, - 37045 - 19968: jis0208<<14 | 0x4D<<7 | 0x19, - 37046 - 19968: jis0212<<14 | 0x40<<7 | 0x59, - 37048 - 19968: jis0208<<14 | 0x24<<7 | 0x00, - 37053 - 19968: jis0212<<14 | 0x40<<7 | 0x5A, - 37054 - 19968: jis0212<<14 | 0x40<<7 | 0x5C, - 37057 - 19968: jis0208<<14 | 0x0F<<7 | 0x49, - 37059 - 19968: jis0212<<14 | 0x40<<7 | 0x5D, - 37060 - 19968: jis0212<<14 | 0x41<<7 | 0x00, - 37061 - 19968: jis0212<<14 | 0x41<<7 | 0x01, - 37063 - 19968: jis0212<<14 | 0x41<<7 | 0x02, - 37064 - 19968: jis0212<<14 | 0x41<<7 | 0x03, - 37066 - 19968: jis0208<<14 | 0x18<<7 | 0x38, - 37068 - 19968: jis0212<<14 | 0x40<<7 | 0x5B, - 37070 - 19968: jis0208<<14 | 0x2E<<7 | 0x19, - 37074 - 19968: jis0212<<14 | 0x41<<7 | 0x0C, - 37077 - 19968: jis0212<<14 | 0x41<<7 | 0x04, - 37079 - 19968: jis0212<<14 | 0x41<<7 | 0x05, - 37080 - 19968: jis0212<<14 | 0x41<<7 | 0x06, - 37081 - 19968: jis0212<<14 | 0x41<<7 | 0x07, - 37083 - 19968: jis0208<<14 | 0x4D<<7 | 0x1D, - 37084 - 19968: jis0212<<14 | 0x41<<7 | 0x08, - 37085 - 19968: jis0212<<14 | 0x41<<7 | 0x09, - 37086 - 19968: jis0208<<14 | 0x5A<<7 | 0x59, - 37087 - 19968: jis0212<<14 | 0x41<<7 | 0x0A, - 37089 - 19968: jis0208<<14 | 0x16<<7 | 0x13, - 37090 - 19968: jis0208<<14 | 0x4D<<7 | 0x1A, - 37092 - 19968: jis0208<<14 | 0x4D<<7 | 0x1B, - 37093 - 19968: jis0212<<14 | 0x41<<7 | 0x0B, - 37096 - 19968: jis0208<<14 | 0x28<<7 | 0x53, - 37099 - 19968: jis0212<<14 | 0x41<<7 | 0x0E, - 37101 - 19968: jis0208<<14 | 0x12<<7 | 0x33, - 37103 - 19968: jis0212<<14 | 0x41<<7 | 0x0F, - 37104 - 19968: jis0212<<14 | 0x41<<7 | 0x10, - 37108 - 19968: jis0212<<14 | 0x41<<7 | 0x11, - 37109 - 19968: jis0208<<14 | 0x2C<<7 | 0x18, - 37110 - 19968: jis0212<<14 | 0x41<<7 | 0x0D, - 37111 - 19968: jis0208<<14 | 0x15<<7 | 0x1E, - 37117 - 19968: jis0208<<14 | 0x24<<7 | 0x33, - 37118 - 19968: jis0212<<14 | 0x41<<7 | 0x12, - 37119 - 19968: jis0212<<14 | 0x41<<7 | 0x13, - 37120 - 19968: jis0212<<14 | 0x41<<7 | 0x14, - 37122 - 19968: jis0208<<14 | 0x4D<<7 | 0x1E, - 37124 - 19968: jis0212<<14 | 0x41<<7 | 0x15, - 37125 - 19968: jis0212<<14 | 0x41<<7 | 0x16, - 37126 - 19968: jis0212<<14 | 0x41<<7 | 0x17, - 37128 - 19968: jis0212<<14 | 0x41<<7 | 0x18, - 37133 - 19968: jis0212<<14 | 0x41<<7 | 0x19, - 37136 - 19968: jis0212<<14 | 0x41<<7 | 0x1A, - 37138 - 19968: jis0208<<14 | 0x4D<<7 | 0x1F, - 37140 - 19968: jis0212<<14 | 0x41<<7 | 0x1B, - 37141 - 19968: jis0208<<14 | 0x5A<<7 | 0x5B, - 37142 - 19968: jis0212<<14 | 0x41<<7 | 0x1C, - 37143 - 19968: jis0212<<14 | 0x41<<7 | 0x1D, - 37144 - 19968: jis0212<<14 | 0x41<<7 | 0x1E, - 37145 - 19968: jis0208<<14 | 0x4D<<7 | 0x20, - 37146 - 19968: jis0212<<14 | 0x41<<7 | 0x1F, - 37148 - 19968: jis0212<<14 | 0x41<<7 | 0x20, - 37150 - 19968: jis0212<<14 | 0x41<<7 | 0x21, - 37152 - 19968: jis0212<<14 | 0x41<<7 | 0x22, - 37154 - 19968: jis0212<<14 | 0x41<<7 | 0x24, - 37155 - 19968: jis0212<<14 | 0x41<<7 | 0x25, - 37157 - 19968: jis0212<<14 | 0x41<<7 | 0x23, - 37159 - 19968: jis0208<<14 | 0x5A<<7 | 0x5C, - 37161 - 19968: jis0212<<14 | 0x41<<7 | 0x27, - 37165 - 19968: jis0208<<14 | 0x24<<7 | 0x01, - 37166 - 19968: jis0212<<14 | 0x41<<7 | 0x28, - 37167 - 19968: jis0212<<14 | 0x41<<7 | 0x29, - 37168 - 19968: jis0208<<14 | 0x4D<<7 | 0x22, - 37169 - 19968: jis0212<<14 | 0x41<<7 | 0x2A, - 37170 - 19968: jis0208<<14 | 0x4D<<7 | 0x21, - 37172 - 19968: jis0212<<14 | 0x41<<7 | 0x2B, - 37174 - 19968: jis0212<<14 | 0x41<<7 | 0x2C, - 37175 - 19968: jis0212<<14 | 0x41<<7 | 0x2D, - 37177 - 19968: jis0212<<14 | 0x41<<7 | 0x2E, - 37178 - 19968: jis0212<<14 | 0x41<<7 | 0x2F, - 37180 - 19968: jis0212<<14 | 0x41<<7 | 0x30, - 37181 - 19968: jis0212<<14 | 0x41<<7 | 0x31, - 37187 - 19968: jis0212<<14 | 0x41<<7 | 0x32, - 37191 - 19968: jis0212<<14 | 0x41<<7 | 0x33, - 37192 - 19968: jis0212<<14 | 0x41<<7 | 0x34, - 37193 - 19968: jis0208<<14 | 0x25<<7 | 0x32, - 37194 - 19968: jis0208<<14 | 0x4D<<7 | 0x23, - 37195 - 19968: jis0208<<14 | 0x1C<<7 | 0x15, - 37196 - 19968: jis0208<<14 | 0x1B<<7 | 0x3F, - 37197 - 19968: jis0208<<14 | 0x26<<7 | 0x3A, - 37198 - 19968: jis0208<<14 | 0x22<<7 | 0x50, - 37199 - 19968: jis0212<<14 | 0x41<<7 | 0x35, - 37202 - 19968: jis0208<<14 | 0x1B<<7 | 0x51, - 37203 - 19968: jis0212<<14 | 0x41<<7 | 0x36, - 37204 - 19968: jis0208<<14 | 0x1E<<7 | 0x4B, - 37206 - 19968: jis0208<<14 | 0x4D<<7 | 0x24, - 37207 - 19968: jis0212<<14 | 0x41<<7 | 0x37, - 37208 - 19968: jis0208<<14 | 0x4D<<7 | 0x25, - 37209 - 19968: jis0212<<14 | 0x41<<7 | 0x38, - 37210 - 19968: jis0212<<14 | 0x41<<7 | 0x39, - 37211 - 19968: jis0212<<14 | 0x41<<7 | 0x3A, - 37217 - 19968: jis0212<<14 | 0x41<<7 | 0x3B, - 37218 - 19968: jis0208<<14 | 0x1E<<7 | 0x3C, - 37219 - 19968: jis0208<<14 | 0x4D<<7 | 0x26, - 37220 - 19968: jis0212<<14 | 0x41<<7 | 0x3C, - 37221 - 19968: jis0208<<14 | 0x4D<<7 | 0x27, - 37223 - 19968: jis0212<<14 | 0x41<<7 | 0x3D, - 37225 - 19968: jis0208<<14 | 0x4D<<7 | 0x28, - 37226 - 19968: jis0208<<14 | 0x2C<<7 | 0x4E, - 37228 - 19968: jis0208<<14 | 0x1C<<7 | 0x16, - 37229 - 19968: jis0212<<14 | 0x41<<7 | 0x3E, - 37234 - 19968: jis0208<<14 | 0x4D<<7 | 0x2A, - 37235 - 19968: jis0208<<14 | 0x4D<<7 | 0x29, - 37236 - 19968: jis0212<<14 | 0x41<<7 | 0x3F, - 37237 - 19968: jis0208<<14 | 0x18<<7 | 0x39, - 37239 - 19968: jis0208<<14 | 0x18<<7 | 0x52, - 37240 - 19968: jis0208<<14 | 0x1A<<7 | 0x1F, - 37241 - 19968: jis0212<<14 | 0x41<<7 | 0x40, - 37242 - 19968: jis0212<<14 | 0x41<<7 | 0x41, - 37243 - 19968: jis0212<<14 | 0x41<<7 | 0x42, - 37249 - 19968: jis0212<<14 | 0x41<<7 | 0x43, - 37250 - 19968: jis0208<<14 | 0x4D<<7 | 0x2D, - 37251 - 19968: jis0212<<14 | 0x41<<7 | 0x44, - 37253 - 19968: jis0212<<14 | 0x41<<7 | 0x45, - 37254 - 19968: jis0212<<14 | 0x41<<7 | 0x46, - 37255 - 19968: jis0208<<14 | 0x1C<<7 | 0x45, - 37257 - 19968: jis0208<<14 | 0x4D<<7 | 0x2C, - 37258 - 19968: jis0212<<14 | 0x41<<7 | 0x47, - 37259 - 19968: jis0208<<14 | 0x4D<<7 | 0x2B, - 37261 - 19968: jis0208<<14 | 0x21<<7 | 0x48, - 37262 - 19968: jis0212<<14 | 0x41<<7 | 0x48, - 37264 - 19968: jis0208<<14 | 0x17<<7 | 0x4E, - 37265 - 19968: jis0212<<14 | 0x41<<7 | 0x49, - 37266 - 19968: jis0208<<14 | 0x1F<<7 | 0x22, - 37267 - 19968: jis0212<<14 | 0x41<<7 | 0x4A, - 37268 - 19968: jis0212<<14 | 0x41<<7 | 0x4B, - 37269 - 19968: jis0212<<14 | 0x41<<7 | 0x4C, - 37271 - 19968: jis0208<<14 | 0x27<<7 | 0x0F, - 37272 - 19968: jis0212<<14 | 0x41<<7 | 0x4D, - 37276 - 19968: jis0208<<14 | 0x1C<<7 | 0x18, - 37278 - 19968: jis0212<<14 | 0x41<<7 | 0x4E, - 37281 - 19968: jis0212<<14 | 0x41<<7 | 0x4F, - 37282 - 19968: jis0208<<14 | 0x4D<<7 | 0x2E, - 37284 - 19968: jis0208<<14 | 0x1D<<7 | 0x3E, - 37286 - 19968: jis0212<<14 | 0x41<<7 | 0x50, - 37288 - 19968: jis0212<<14 | 0x41<<7 | 0x51, - 37290 - 19968: jis0208<<14 | 0x4D<<7 | 0x31, - 37291 - 19968: jis0208<<14 | 0x4D<<7 | 0x2F, - 37292 - 19968: jis0212<<14 | 0x41<<7 | 0x52, - 37293 - 19968: jis0212<<14 | 0x41<<7 | 0x53, - 37294 - 19968: jis0212<<14 | 0x41<<7 | 0x54, - 37295 - 19968: jis0208<<14 | 0x4D<<7 | 0x30, - 37296 - 19968: jis0212<<14 | 0x41<<7 | 0x55, - 37297 - 19968: jis0212<<14 | 0x41<<7 | 0x56, - 37298 - 19968: jis0212<<14 | 0x41<<7 | 0x57, - 37299 - 19968: jis0212<<14 | 0x41<<7 | 0x58, - 37300 - 19968: jis0208<<14 | 0x4D<<7 | 0x33, - 37301 - 19968: jis0208<<14 | 0x4D<<7 | 0x32, - 37302 - 19968: jis0212<<14 | 0x41<<7 | 0x59, - 37304 - 19968: jis0208<<14 | 0x1D<<7 | 0x59, - 37306 - 19968: jis0208<<14 | 0x4D<<7 | 0x34, - 37307 - 19968: jis0212<<14 | 0x41<<7 | 0x5A, - 37308 - 19968: jis0212<<14 | 0x41<<7 | 0x5B, - 37309 - 19968: jis0212<<14 | 0x41<<7 | 0x5C, - 37311 - 19968: jis0212<<14 | 0x41<<7 | 0x5D, - 37312 - 19968: jis0208<<14 | 0x4D<<7 | 0x35, - 37313 - 19968: jis0208<<14 | 0x4D<<7 | 0x36, - 37314 - 19968: jis0212<<14 | 0x42<<7 | 0x00, - 37315 - 19968: jis0212<<14 | 0x42<<7 | 0x01, - 37317 - 19968: jis0212<<14 | 0x42<<7 | 0x02, - 37318 - 19968: jis0208<<14 | 0x27<<7 | 0x2F, - 37319 - 19968: jis0208<<14 | 0x19<<7 | 0x32, - 37320 - 19968: jis0208<<14 | 0x1B<<7 | 0x40, - 37321 - 19968: jis0208<<14 | 0x4D<<7 | 0x37, - 37323 - 19968: jis0208<<14 | 0x4D<<7 | 0x38, - 37324 - 19968: jis0208<<14 | 0x2D<<7 | 0x03, - 37325 - 19968: jis0208<<14 | 0x1C<<7 | 0x24, - 37326 - 19968: jis0208<<14 | 0x2B<<7 | 0x4D, - 37327 - 19968: jis0208<<14 | 0x2D<<7 | 0x2B, - 37328 - 19968: jis0208<<14 | 0x4D<<7 | 0x39, - 37329 - 19968: jis0208<<14 | 0x15<<7 | 0x41, - 37331 - 19968: jis0212<<14 | 0x42<<7 | 0x03, - 37332 - 19968: jis0212<<14 | 0x42<<7 | 0x04, - 37334 - 19968: jis0208<<14 | 0x4D<<7 | 0x3A, - 37335 - 19968: jis0208<<14 | 0x5B<<7 | 0x00, - 37336 - 19968: jis0208<<14 | 0x24<<7 | 0x02, - 37337 - 19968: jis0212<<14 | 0x42<<7 | 0x06, - 37338 - 19968: jis0208<<14 | 0x5A<<7 | 0x5D, - 37339 - 19968: jis0208<<14 | 0x4D<<7 | 0x3D, - 37340 - 19968: jis0208<<14 | 0x12<<7 | 0x57, - 37341 - 19968: jis0208<<14 | 0x1E<<7 | 0x2A, - 37342 - 19968: jis0208<<14 | 0x5B<<7 | 0x01, - 37343 - 19968: jis0208<<14 | 0x4D<<7 | 0x3B, - 37345 - 19968: jis0208<<14 | 0x4D<<7 | 0x3C, - 37347 - 19968: jis0208<<14 | 0x23<<7 | 0x3F, - 37348 - 19968: jis0208<<14 | 0x5B<<7 | 0x04, - 37349 - 19968: jis0208<<14 | 0x5B<<7 | 0x05, - 37350 - 19968: jis0208<<14 | 0x2A<<7 | 0x34, - 37351 - 19968: jis0208<<14 | 0x15<<7 | 0x5B, - 37353 - 19968: jis0212<<14 | 0x42<<7 | 0x0B, - 37354 - 19968: jis0212<<14 | 0x42<<7 | 0x0C, - 37356 - 19968: jis0212<<14 | 0x42<<7 | 0x0D, - 37357 - 19968: jis0208<<14 | 0x5B<<7 | 0x02, - 37358 - 19968: jis0208<<14 | 0x5B<<7 | 0x03, - 37359 - 19968: jis0212<<14 | 0x42<<7 | 0x10, - 37360 - 19968: jis0212<<14 | 0x42<<7 | 0x11, - 37361 - 19968: jis0212<<14 | 0x42<<7 | 0x12, - 37365 - 19968: jis0208<<14 | 0x4D<<7 | 0x3F, - 37366 - 19968: jis0208<<14 | 0x4D<<7 | 0x40, - 37367 - 19968: jis0212<<14 | 0x42<<7 | 0x13, - 37369 - 19968: jis0212<<14 | 0x42<<7 | 0x14, - 37371 - 19968: jis0212<<14 | 0x42<<7 | 0x15, - 37372 - 19968: jis0208<<14 | 0x4D<<7 | 0x3E, - 37373 - 19968: jis0212<<14 | 0x42<<7 | 0x16, - 37375 - 19968: jis0208<<14 | 0x4D<<7 | 0x42, - 37376 - 19968: jis0212<<14 | 0x42<<7 | 0x17, - 37377 - 19968: jis0212<<14 | 0x42<<7 | 0x18, - 37380 - 19968: jis0212<<14 | 0x42<<7 | 0x19, - 37381 - 19968: jis0212<<14 | 0x42<<7 | 0x1A, - 37382 - 19968: jis0208<<14 | 0x5B<<7 | 0x06, - 37383 - 19968: jis0212<<14 | 0x42<<7 | 0x1C, - 37385 - 19968: jis0212<<14 | 0x42<<7 | 0x1D, - 37386 - 19968: jis0208<<14 | 0x5B<<7 | 0x08, - 37388 - 19968: jis0212<<14 | 0x42<<7 | 0x1F, - 37389 - 19968: jis0208<<14 | 0x25<<7 | 0x3E, - 37390 - 19968: jis0208<<14 | 0x12<<7 | 0x22, - 37392 - 19968: jis0208<<14 | 0x5B<<7 | 0x07, - 37393 - 19968: jis0208<<14 | 0x4D<<7 | 0x46, - 37394 - 19968: jis0212<<14 | 0x42<<7 | 0x21, - 37395 - 19968: jis0212<<14 | 0x42<<7 | 0x22, - 37396 - 19968: jis0208<<14 | 0x4D<<7 | 0x43, - 37397 - 19968: jis0208<<14 | 0x4D<<7 | 0x45, - 37398 - 19968: jis0212<<14 | 0x42<<7 | 0x23, - 37400 - 19968: jis0212<<14 | 0x42<<7 | 0x24, - 37404 - 19968: jis0212<<14 | 0x42<<7 | 0x25, - 37405 - 19968: jis0212<<14 | 0x42<<7 | 0x26, - 37406 - 19968: jis0208<<14 | 0x4D<<7 | 0x41, - 37411 - 19968: jis0212<<14 | 0x42<<7 | 0x27, - 37412 - 19968: jis0212<<14 | 0x42<<7 | 0x28, - 37413 - 19968: jis0212<<14 | 0x42<<7 | 0x29, - 37414 - 19968: jis0212<<14 | 0x42<<7 | 0x2A, - 37416 - 19968: jis0212<<14 | 0x42<<7 | 0x2B, - 37417 - 19968: jis0208<<14 | 0x4E<<7 | 0x2E, - 37420 - 19968: jis0208<<14 | 0x4D<<7 | 0x44, - 37422 - 19968: jis0212<<14 | 0x42<<7 | 0x2C, - 37423 - 19968: jis0212<<14 | 0x42<<7 | 0x2D, - 37424 - 19968: jis0212<<14 | 0x42<<7 | 0x2E, - 37427 - 19968: jis0212<<14 | 0x42<<7 | 0x2F, - 37428 - 19968: jis0208<<14 | 0x2D<<7 | 0x4A, - 37429 - 19968: jis0212<<14 | 0x42<<7 | 0x30, - 37430 - 19968: jis0212<<14 | 0x42<<7 | 0x31, - 37431 - 19968: jis0208<<14 | 0x17<<7 | 0x39, - 37432 - 19968: jis0212<<14 | 0x42<<7 | 0x32, - 37433 - 19968: jis0208<<14 | 0x5B<<7 | 0x0F, - 37434 - 19968: jis0208<<14 | 0x5B<<7 | 0x09, - 37436 - 19968: jis0208<<14 | 0x5B<<7 | 0x0B, - 37438 - 19968: jis0212<<14 | 0x42<<7 | 0x36, - 37439 - 19968: jis0208<<14 | 0x4D<<7 | 0x4E, - 37440 - 19968: jis0208<<14 | 0x5B<<7 | 0x0A, - 37442 - 19968: jis0212<<14 | 0x42<<7 | 0x38, - 37443 - 19968: jis0212<<14 | 0x42<<7 | 0x39, - 37444 - 19968: jis0208<<14 | 0x24<<7 | 0x13, - 37445 - 19968: jis0208<<14 | 0x4D<<7 | 0x49, - 37446 - 19968: jis0212<<14 | 0x42<<7 | 0x3A, - 37447 - 19968: jis0212<<14 | 0x42<<7 | 0x3B, - 37448 - 19968: jis0208<<14 | 0x4D<<7 | 0x4C, - 37449 - 19968: jis0208<<14 | 0x4D<<7 | 0x4A, - 37450 - 19968: jis0212<<14 | 0x42<<7 | 0x3C, - 37451 - 19968: jis0208<<14 | 0x4D<<7 | 0x4F, - 37453 - 19968: jis0212<<14 | 0x42<<7 | 0x3D, - 37454 - 19968: jis0208<<14 | 0x5B<<7 | 0x0C, - 37455 - 19968: jis0212<<14 | 0x42<<7 | 0x3F, - 37456 - 19968: jis0208<<14 | 0x4D<<7 | 0x50, - 37457 - 19968: jis0208<<14 | 0x5B<<7 | 0x0E, - 37463 - 19968: jis0208<<14 | 0x4D<<7 | 0x48, - 37464 - 19968: jis0212<<14 | 0x42<<7 | 0x41, - 37465 - 19968: jis0208<<14 | 0x5B<<7 | 0x0D, - 37466 - 19968: jis0208<<14 | 0x4D<<7 | 0x55, - 37467 - 19968: jis0208<<14 | 0x10<<7 | 0x53, - 37468 - 19968: jis0212<<14 | 0x42<<7 | 0x43, - 37469 - 19968: jis0212<<14 | 0x42<<7 | 0x44, - 37470 - 19968: jis0208<<14 | 0x4D<<7 | 0x47, - 37472 - 19968: jis0212<<14 | 0x42<<7 | 0x45, - 37473 - 19968: jis0212<<14 | 0x42<<7 | 0x46, - 37474 - 19968: jis0208<<14 | 0x27<<7 | 0x0C, - 37476 - 19968: jis0208<<14 | 0x4D<<7 | 0x4B, - 37477 - 19968: jis0212<<14 | 0x42<<7 | 0x47, - 37478 - 19968: jis0208<<14 | 0x1D<<7 | 0x3F, - 37479 - 19968: jis0208<<14 | 0x5B<<7 | 0x10, - 37480 - 19968: jis0212<<14 | 0x42<<7 | 0x49, - 37481 - 19968: jis0212<<14 | 0x42<<7 | 0x4A, - 37486 - 19968: jis0212<<14 | 0x42<<7 | 0x4B, - 37487 - 19968: jis0212<<14 | 0x42<<7 | 0x4C, - 37488 - 19968: jis0212<<14 | 0x42<<7 | 0x4D, - 37489 - 19968: jis0208<<14 | 0x18<<7 | 0x3A, - 37493 - 19968: jis0212<<14 | 0x42<<7 | 0x4E, - 37494 - 19968: jis0212<<14 | 0x42<<7 | 0x4F, - 37495 - 19968: jis0208<<14 | 0x5B<<7 | 0x12, - 37496 - 19968: jis0208<<14 | 0x5B<<7 | 0x13, - 37497 - 19968: jis0212<<14 | 0x42<<7 | 0x52, - 37499 - 19968: jis0212<<14 | 0x42<<7 | 0x53, - 37500 - 19968: jis0212<<14 | 0x42<<7 | 0x54, - 37501 - 19968: jis0212<<14 | 0x42<<7 | 0x55, - 37502 - 19968: jis0208<<14 | 0x2A<<7 | 0x27, - 37503 - 19968: jis0212<<14 | 0x42<<7 | 0x56, - 37504 - 19968: jis0208<<14 | 0x15<<7 | 0x43, - 37507 - 19968: jis0208<<14 | 0x1C<<7 | 0x25, - 37509 - 19968: jis0208<<14 | 0x25<<7 | 0x1B, - 37512 - 19968: jis0208<<14 | 0x58<<7 | 0x03, - 37513 - 19968: jis0212<<14 | 0x42<<7 | 0x58, - 37514 - 19968: jis0212<<14 | 0x42<<7 | 0x59, - 37517 - 19968: jis0212<<14 | 0x42<<7 | 0x5A, - 37518 - 19968: jis0212<<14 | 0x42<<7 | 0x5B, - 37521 - 19968: jis0208<<14 | 0x20<<7 | 0x0C, - 37522 - 19968: jis0212<<14 | 0x42<<7 | 0x5C, - 37523 - 19968: jis0208<<14 | 0x4D<<7 | 0x53, - 37525 - 19968: jis0208<<14 | 0x4D<<7 | 0x4D, - 37526 - 19968: jis0208<<14 | 0x4D<<7 | 0x52, - 37527 - 19968: jis0212<<14 | 0x42<<7 | 0x5D, - 37528 - 19968: jis0208<<14 | 0x2B<<7 | 0x22, - 37529 - 19968: jis0212<<14 | 0x43<<7 | 0x00, - 37530 - 19968: jis0208<<14 | 0x23<<7 | 0x17, - 37531 - 19968: jis0208<<14 | 0x4D<<7 | 0x54, - 37532 - 19968: jis0208<<14 | 0x4D<<7 | 0x51, - 37535 - 19968: jis0212<<14 | 0x43<<7 | 0x01, - 37536 - 19968: jis0212<<14 | 0x43<<7 | 0x02, - 37540 - 19968: jis0212<<14 | 0x43<<7 | 0x03, - 37541 - 19968: jis0212<<14 | 0x43<<7 | 0x04, - 37543 - 19968: jis0208<<14 | 0x5B<<7 | 0x11, - 37544 - 19968: jis0212<<14 | 0x43<<7 | 0x06, - 37547 - 19968: jis0212<<14 | 0x43<<7 | 0x07, - 37549 - 19968: jis0208<<14 | 0x20<<7 | 0x0B, - 37551 - 19968: jis0212<<14 | 0x43<<7 | 0x08, - 37554 - 19968: jis0212<<14 | 0x43<<7 | 0x09, - 37558 - 19968: jis0212<<14 | 0x43<<7 | 0x0A, - 37559 - 19968: jis0208<<14 | 0x4D<<7 | 0x58, - 37560 - 19968: jis0212<<14 | 0x43<<7 | 0x0B, - 37561 - 19968: jis0208<<14 | 0x4D<<7 | 0x57, - 37562 - 19968: jis0212<<14 | 0x43<<7 | 0x0C, - 37563 - 19968: jis0212<<14 | 0x43<<7 | 0x0D, - 37564 - 19968: jis0212<<14 | 0x43<<7 | 0x0E, - 37565 - 19968: jis0212<<14 | 0x43<<7 | 0x0F, - 37567 - 19968: jis0212<<14 | 0x43<<7 | 0x10, - 37568 - 19968: jis0212<<14 | 0x43<<7 | 0x11, - 37569 - 19968: jis0212<<14 | 0x43<<7 | 0x12, - 37570 - 19968: jis0212<<14 | 0x43<<7 | 0x13, - 37571 - 19968: jis0212<<14 | 0x43<<7 | 0x14, - 37573 - 19968: jis0212<<14 | 0x43<<7 | 0x15, - 37574 - 19968: jis0212<<14 | 0x43<<7 | 0x16, - 37575 - 19968: jis0212<<14 | 0x43<<7 | 0x17, - 37576 - 19968: jis0212<<14 | 0x43<<7 | 0x18, - 37579 - 19968: jis0212<<14 | 0x43<<7 | 0x19, - 37580 - 19968: jis0212<<14 | 0x43<<7 | 0x1A, - 37581 - 19968: jis0212<<14 | 0x43<<7 | 0x1B, - 37582 - 19968: jis0212<<14 | 0x43<<7 | 0x1C, - 37583 - 19968: jis0208<<14 | 0x4D<<7 | 0x56, - 37584 - 19968: jis0208<<14 | 0x5B<<7 | 0x17, - 37586 - 19968: jis0208<<14 | 0x2A<<7 | 0x0E, - 37587 - 19968: jis0208<<14 | 0x5B<<7 | 0x1B, - 37589 - 19968: jis0208<<14 | 0x5B<<7 | 0x19, - 37591 - 19968: jis0208<<14 | 0x5B<<7 | 0x15, - 37592 - 19968: jis0212<<14 | 0x43<<7 | 0x21, - 37593 - 19968: jis0208<<14 | 0x5B<<7 | 0x16, - 37596 - 19968: jis0212<<14 | 0x43<<7 | 0x23, - 37597 - 19968: jis0212<<14 | 0x43<<7 | 0x24, - 37599 - 19968: jis0212<<14 | 0x43<<7 | 0x25, - 37600 - 19968: jis0208<<14 | 0x5B<<7 | 0x1A, - 37601 - 19968: jis0212<<14 | 0x43<<7 | 0x27, - 37603 - 19968: jis0212<<14 | 0x43<<7 | 0x28, - 37604 - 19968: jis0208<<14 | 0x1C<<7 | 0x5A, - 37605 - 19968: jis0212<<14 | 0x43<<7 | 0x29, - 37607 - 19968: jis0208<<14 | 0x5B<<7 | 0x14, - 37608 - 19968: jis0212<<14 | 0x43<<7 | 0x2B, - 37609 - 19968: jis0208<<14 | 0x4D<<7 | 0x59, - 37610 - 19968: jis0208<<14 | 0x29<<7 | 0x3E, - 37612 - 19968: jis0212<<14 | 0x43<<7 | 0x2C, - 37613 - 19968: jis0208<<14 | 0x10<<7 | 0x33, - 37614 - 19968: jis0212<<14 | 0x43<<7 | 0x2D, - 37616 - 19968: jis0212<<14 | 0x43<<7 | 0x2E, - 37618 - 19968: jis0208<<14 | 0x28<<7 | 0x25, - 37619 - 19968: jis0208<<14 | 0x22<<7 | 0x51, - 37624 - 19968: jis0208<<14 | 0x14<<7 | 0x57, - 37625 - 19968: jis0208<<14 | 0x58<<7 | 0x09, - 37626 - 19968: jis0208<<14 | 0x4D<<7 | 0x5B, - 37627 - 19968: jis0208<<14 | 0x5B<<7 | 0x1E, - 37628 - 19968: jis0208<<14 | 0x18<<7 | 0x3C, - 37631 - 19968: jis0208<<14 | 0x5B<<7 | 0x21, - 37632 - 19968: jis0212<<14 | 0x43<<7 | 0x32, - 37634 - 19968: jis0208<<14 | 0x5B<<7 | 0x23, - 37638 - 19968: jis0208<<14 | 0x1A<<7 | 0x0B, - 37640 - 19968: jis0212<<14 | 0x43<<7 | 0x34, - 37645 - 19968: jis0212<<14 | 0x43<<7 | 0x35, - 37647 - 19968: jis0208<<14 | 0x4D<<7 | 0x5A, - 37648 - 19968: jis0208<<14 | 0x1E<<7 | 0x4C, - 37649 - 19968: jis0212<<14 | 0x43<<7 | 0x36, - 37652 - 19968: jis0212<<14 | 0x43<<7 | 0x37, - 37653 - 19968: jis0212<<14 | 0x43<<7 | 0x38, - 37656 - 19968: jis0208<<14 | 0x1E<<7 | 0x4D, - 37657 - 19968: jis0208<<14 | 0x4E<<7 | 0x00, - 37658 - 19968: jis0208<<14 | 0x4E<<7 | 0x02, - 37660 - 19968: jis0212<<14 | 0x43<<7 | 0x39, - 37661 - 19968: jis0208<<14 | 0x5B<<7 | 0x22, - 37662 - 19968: jis0208<<14 | 0x5B<<7 | 0x20, - 37663 - 19968: jis0212<<14 | 0x43<<7 | 0x3C, - 37664 - 19968: jis0208<<14 | 0x1D<<7 | 0x5A, - 37665 - 19968: jis0208<<14 | 0x5B<<7 | 0x1D, - 37666 - 19968: jis0208<<14 | 0x4E<<7 | 0x01, - 37667 - 19968: jis0208<<14 | 0x4E<<7 | 0x03, - 37668 - 19968: jis0212<<14 | 0x43<<7 | 0x3E, - 37669 - 19968: jis0208<<14 | 0x5B<<7 | 0x1C, - 37670 - 19968: jis0208<<14 | 0x15<<7 | 0x32, - 37671 - 19968: jis0212<<14 | 0x43<<7 | 0x40, - 37672 - 19968: jis0208<<14 | 0x28<<7 | 0x24, - 37673 - 19968: jis0212<<14 | 0x43<<7 | 0x41, - 37674 - 19968: jis0212<<14 | 0x43<<7 | 0x42, - 37675 - 19968: jis0208<<14 | 0x1B<<7 | 0x41, - 37676 - 19968: jis0208<<14 | 0x2E<<7 | 0x02, - 37678 - 19968: jis0208<<14 | 0x4D<<7 | 0x5D, - 37679 - 19968: jis0208<<14 | 0x19<<7 | 0x57, - 37682 - 19968: jis0208<<14 | 0x2E<<7 | 0x1E, - 37683 - 19968: jis0212<<14 | 0x43<<7 | 0x43, - 37684 - 19968: jis0212<<14 | 0x43<<7 | 0x44, - 37685 - 19968: jis0208<<14 | 0x4E<<7 | 0x05, - 37686 - 19968: jis0212<<14 | 0x43<<7 | 0x45, - 37687 - 19968: jis0212<<14 | 0x43<<7 | 0x46, - 37690 - 19968: jis0208<<14 | 0x4E<<7 | 0x04, - 37691 - 19968: jis0208<<14 | 0x4E<<7 | 0x06, - 37700 - 19968: jis0208<<14 | 0x4D<<7 | 0x5C, - 37703 - 19968: jis0212<<14 | 0x43<<7 | 0x47, - 37704 - 19968: jis0208<<14 | 0x58<<7 | 0x02, - 37705 - 19968: jis0212<<14 | 0x43<<7 | 0x49, - 37707 - 19968: jis0208<<14 | 0x25<<7 | 0x48, - 37709 - 19968: jis0208<<14 | 0x24<<7 | 0x34, - 37712 - 19968: jis0212<<14 | 0x43<<7 | 0x4A, - 37713 - 19968: jis0212<<14 | 0x43<<7 | 0x4B, - 37714 - 19968: jis0212<<14 | 0x43<<7 | 0x4C, - 37716 - 19968: jis0208<<14 | 0x23<<7 | 0x36, - 37717 - 19968: jis0212<<14 | 0x43<<7 | 0x4D, - 37718 - 19968: jis0208<<14 | 0x4E<<7 | 0x0B, - 37719 - 19968: jis0208<<14 | 0x5B<<7 | 0x25, - 37720 - 19968: jis0212<<14 | 0x43<<7 | 0x4F, - 37722 - 19968: jis0212<<14 | 0x43<<7 | 0x50, - 37723 - 19968: jis0208<<14 | 0x22<<7 | 0x22, - 37724 - 19968: jis0208<<14 | 0x4E<<7 | 0x07, - 37726 - 19968: jis0212<<14 | 0x43<<7 | 0x51, - 37728 - 19968: jis0208<<14 | 0x4E<<7 | 0x08, - 37732 - 19968: jis0212<<14 | 0x43<<7 | 0x52, - 37733 - 19968: jis0212<<14 | 0x43<<7 | 0x53, - 37735 - 19968: jis0212<<14 | 0x43<<7 | 0x54, - 37737 - 19968: jis0212<<14 | 0x43<<7 | 0x55, - 37738 - 19968: jis0212<<14 | 0x43<<7 | 0x56, - 37740 - 19968: jis0208<<14 | 0x16<<7 | 0x0C, - 37741 - 19968: jis0212<<14 | 0x43<<7 | 0x57, - 37742 - 19968: jis0208<<14 | 0x4E<<7 | 0x0A, - 37743 - 19968: jis0212<<14 | 0x43<<7 | 0x58, - 37744 - 19968: jis0208<<14 | 0x5B<<7 | 0x24, - 37745 - 19968: jis0212<<14 | 0x43<<7 | 0x5A, - 37747 - 19968: jis0212<<14 | 0x43<<7 | 0x5B, - 37748 - 19968: jis0212<<14 | 0x43<<7 | 0x5C, - 37749 - 19968: jis0208<<14 | 0x17<<7 | 0x0F, - 37750 - 19968: jis0212<<14 | 0x43<<7 | 0x5D, - 37754 - 19968: jis0212<<14 | 0x44<<7 | 0x00, - 37756 - 19968: jis0208<<14 | 0x4E<<7 | 0x09, - 37757 - 19968: jis0212<<14 | 0x44<<7 | 0x01, - 37758 - 19968: jis0208<<14 | 0x1D<<7 | 0x40, - 37759 - 19968: jis0212<<14 | 0x44<<7 | 0x02, - 37760 - 19968: jis0212<<14 | 0x44<<7 | 0x03, - 37761 - 19968: jis0212<<14 | 0x44<<7 | 0x04, - 37762 - 19968: jis0212<<14 | 0x44<<7 | 0x05, - 37768 - 19968: jis0212<<14 | 0x44<<7 | 0x06, - 37770 - 19968: jis0212<<14 | 0x44<<7 | 0x07, - 37771 - 19968: jis0212<<14 | 0x44<<7 | 0x08, - 37772 - 19968: jis0208<<14 | 0x12<<7 | 0x58, - 37773 - 19968: jis0212<<14 | 0x44<<7 | 0x09, - 37775 - 19968: jis0212<<14 | 0x44<<7 | 0x0A, - 37778 - 19968: jis0212<<14 | 0x44<<7 | 0x0B, - 37780 - 19968: jis0208<<14 | 0x4E<<7 | 0x0F, - 37781 - 19968: jis0212<<14 | 0x44<<7 | 0x0C, - 37782 - 19968: jis0208<<14 | 0x19<<7 | 0x1E, - 37783 - 19968: jis0208<<14 | 0x20<<7 | 0x58, - 37784 - 19968: jis0212<<14 | 0x44<<7 | 0x0D, - 37786 - 19968: jis0208<<14 | 0x23<<7 | 0x29, - 37787 - 19968: jis0212<<14 | 0x44<<7 | 0x0E, - 37790 - 19968: jis0212<<14 | 0x44<<7 | 0x0F, - 37793 - 19968: jis0212<<14 | 0x44<<7 | 0x10, - 37795 - 19968: jis0212<<14 | 0x44<<7 | 0x11, - 37796 - 19968: jis0208<<14 | 0x5B<<7 | 0x26, - 37798 - 19968: jis0212<<14 | 0x44<<7 | 0x13, - 37799 - 19968: jis0208<<14 | 0x12<<7 | 0x1A, - 37800 - 19968: jis0212<<14 | 0x44<<7 | 0x14, - 37801 - 19968: jis0212<<14 | 0x44<<7 | 0x1A, - 37803 - 19968: jis0212<<14 | 0x44<<7 | 0x15, - 37804 - 19968: jis0208<<14 | 0x4E<<7 | 0x0D, - 37805 - 19968: jis0208<<14 | 0x4E<<7 | 0x0E, - 37806 - 19968: jis0208<<14 | 0x23<<7 | 0x22, - 37808 - 19968: jis0208<<14 | 0x4E<<7 | 0x0C, - 37812 - 19968: jis0212<<14 | 0x44<<7 | 0x16, - 37813 - 19968: jis0212<<14 | 0x44<<7 | 0x17, - 37814 - 19968: jis0212<<14 | 0x44<<7 | 0x18, - 37817 - 19968: jis0208<<14 | 0x4E<<7 | 0x10, - 37818 - 19968: jis0212<<14 | 0x44<<7 | 0x19, - 37825 - 19968: jis0212<<14 | 0x44<<7 | 0x1B, - 37827 - 19968: jis0208<<14 | 0x4E<<7 | 0x16, - 37828 - 19968: jis0212<<14 | 0x44<<7 | 0x1C, - 37829 - 19968: jis0212<<14 | 0x44<<7 | 0x1D, - 37830 - 19968: jis0208<<14 | 0x5B<<7 | 0x27, - 37831 - 19968: jis0212<<14 | 0x44<<7 | 0x1F, - 37832 - 19968: jis0208<<14 | 0x4E<<7 | 0x19, - 37833 - 19968: jis0212<<14 | 0x44<<7 | 0x20, - 37834 - 19968: jis0212<<14 | 0x44<<7 | 0x21, - 37835 - 19968: jis0212<<14 | 0x44<<7 | 0x22, - 37836 - 19968: jis0212<<14 | 0x44<<7 | 0x23, - 37837 - 19968: jis0212<<14 | 0x44<<7 | 0x24, - 37840 - 19968: jis0208<<14 | 0x4E<<7 | 0x18, - 37841 - 19968: jis0208<<14 | 0x24<<7 | 0x0C, - 37843 - 19968: jis0212<<14 | 0x44<<7 | 0x25, - 37846 - 19968: jis0208<<14 | 0x4E<<7 | 0x11, - 37847 - 19968: jis0208<<14 | 0x4E<<7 | 0x12, - 37848 - 19968: jis0208<<14 | 0x4E<<7 | 0x15, - 37849 - 19968: jis0212<<14 | 0x44<<7 | 0x26, - 37852 - 19968: jis0212<<14 | 0x44<<7 | 0x27, - 37853 - 19968: jis0208<<14 | 0x4E<<7 | 0x17, - 37854 - 19968: jis0208<<14 | 0x5B<<7 | 0x28, - 37855 - 19968: jis0212<<14 | 0x44<<7 | 0x29, - 37857 - 19968: jis0208<<14 | 0x15<<7 | 0x1F, - 37858 - 19968: jis0212<<14 | 0x44<<7 | 0x2A, - 37860 - 19968: jis0208<<14 | 0x4E<<7 | 0x1A, - 37861 - 19968: jis0208<<14 | 0x4E<<7 | 0x14, - 37862 - 19968: jis0212<<14 | 0x44<<7 | 0x2B, - 37863 - 19968: jis0212<<14 | 0x44<<7 | 0x2C, - 37864 - 19968: jis0208<<14 | 0x4E<<7 | 0x13, - 37879 - 19968: jis0212<<14 | 0x44<<7 | 0x2E, - 37880 - 19968: jis0208<<14 | 0x5B<<7 | 0x29, - 37881 - 19968: jis0212<<14 | 0x44<<7 | 0x2D, - 37882 - 19968: jis0212<<14 | 0x44<<7 | 0x30, - 37883 - 19968: jis0212<<14 | 0x44<<7 | 0x31, - 37885 - 19968: jis0212<<14 | 0x44<<7 | 0x32, - 37889 - 19968: jis0212<<14 | 0x44<<7 | 0x33, - 37890 - 19968: jis0212<<14 | 0x44<<7 | 0x34, - 37891 - 19968: jis0208<<14 | 0x4E<<7 | 0x1E, - 37892 - 19968: jis0212<<14 | 0x44<<7 | 0x35, - 37895 - 19968: jis0208<<14 | 0x4E<<7 | 0x1F, - 37896 - 19968: jis0212<<14 | 0x44<<7 | 0x36, - 37897 - 19968: jis0212<<14 | 0x44<<7 | 0x37, - 37901 - 19968: jis0212<<14 | 0x44<<7 | 0x38, - 37902 - 19968: jis0212<<14 | 0x44<<7 | 0x39, - 37903 - 19968: jis0212<<14 | 0x44<<7 | 0x3A, - 37904 - 19968: jis0208<<14 | 0x4E<<7 | 0x20, - 37907 - 19968: jis0208<<14 | 0x4E<<7 | 0x1D, - 37908 - 19968: jis0208<<14 | 0x4E<<7 | 0x1C, - 37909 - 19968: jis0212<<14 | 0x44<<7 | 0x3B, - 37910 - 19968: jis0212<<14 | 0x44<<7 | 0x3C, - 37911 - 19968: jis0212<<14 | 0x44<<7 | 0x3D, - 37912 - 19968: jis0208<<14 | 0x1D<<7 | 0x41, - 37913 - 19968: jis0208<<14 | 0x25<<7 | 0x09, - 37914 - 19968: jis0208<<14 | 0x4E<<7 | 0x1B, - 37919 - 19968: jis0212<<14 | 0x44<<7 | 0x3E, - 37921 - 19968: jis0208<<14 | 0x4E<<7 | 0x24, - 37931 - 19968: jis0208<<14 | 0x4E<<7 | 0x22, - 37934 - 19968: jis0212<<14 | 0x44<<7 | 0x3F, - 37935 - 19968: jis0212<<14 | 0x44<<7 | 0x40, - 37937 - 19968: jis0208<<14 | 0x5B<<7 | 0x2A, - 37938 - 19968: jis0212<<14 | 0x44<<7 | 0x42, - 37939 - 19968: jis0212<<14 | 0x44<<7 | 0x43, - 37940 - 19968: jis0212<<14 | 0x44<<7 | 0x44, - 37941 - 19968: jis0208<<14 | 0x4E<<7 | 0x23, - 37942 - 19968: jis0208<<14 | 0x4E<<7 | 0x21, - 37944 - 19968: jis0208<<14 | 0x21<<7 | 0x57, - 37946 - 19968: jis0208<<14 | 0x4E<<7 | 0x25, - 37947 - 19968: jis0212<<14 | 0x44<<7 | 0x45, - 37949 - 19968: jis0212<<14 | 0x44<<7 | 0x47, - 37951 - 19968: jis0212<<14 | 0x44<<7 | 0x46, - 37953 - 19968: jis0208<<14 | 0x4E<<7 | 0x26, - 37955 - 19968: jis0212<<14 | 0x44<<7 | 0x48, - 37956 - 19968: jis0208<<14 | 0x4E<<7 | 0x28, - 37957 - 19968: jis0208<<14 | 0x5B<<7 | 0x2B, - 37960 - 19968: jis0208<<14 | 0x5B<<7 | 0x2C, - 37962 - 19968: jis0212<<14 | 0x44<<7 | 0x4B, - 37964 - 19968: jis0212<<14 | 0x44<<7 | 0x4C, - 37969 - 19968: jis0208<<14 | 0x13<<7 | 0x34, - 37970 - 19968: jis0208<<14 | 0x4E<<7 | 0x27, - 37971 - 19968: jis0208<<14 | 0x2B<<7 | 0x59, - 37973 - 19968: jis0212<<14 | 0x44<<7 | 0x4D, - 37977 - 19968: jis0212<<14 | 0x44<<7 | 0x4E, - 37978 - 19968: jis0208<<14 | 0x4E<<7 | 0x33, - 37979 - 19968: jis0208<<14 | 0x4E<<7 | 0x29, - 37980 - 19968: jis0212<<14 | 0x44<<7 | 0x4F, - 37982 - 19968: jis0208<<14 | 0x4E<<7 | 0x2C, - 37983 - 19968: jis0212<<14 | 0x44<<7 | 0x50, - 37984 - 19968: jis0208<<14 | 0x4E<<7 | 0x2A, - 37985 - 19968: jis0212<<14 | 0x44<<7 | 0x51, - 37986 - 19968: jis0208<<14 | 0x4E<<7 | 0x2B, - 37987 - 19968: jis0212<<14 | 0x44<<7 | 0x52, - 37992 - 19968: jis0212<<14 | 0x44<<7 | 0x53, - 37994 - 19968: jis0208<<14 | 0x4E<<7 | 0x2D, - 37995 - 19968: jis0212<<14 | 0x44<<7 | 0x54, - 37997 - 19968: jis0212<<14 | 0x44<<7 | 0x55, - 37998 - 19968: jis0212<<14 | 0x44<<7 | 0x56, - 37999 - 19968: jis0212<<14 | 0x44<<7 | 0x57, - 38000 - 19968: jis0208<<14 | 0x4E<<7 | 0x2F, - 38001 - 19968: jis0212<<14 | 0x44<<7 | 0x58, - 38002 - 19968: jis0212<<14 | 0x44<<7 | 0x59, - 38005 - 19968: jis0208<<14 | 0x4E<<7 | 0x30, - 38007 - 19968: jis0208<<14 | 0x4E<<7 | 0x31, - 38012 - 19968: jis0208<<14 | 0x4E<<7 | 0x34, - 38013 - 19968: jis0208<<14 | 0x4E<<7 | 0x32, - 38014 - 19968: jis0208<<14 | 0x4E<<7 | 0x35, - 38015 - 19968: jis0208<<14 | 0x4E<<7 | 0x37, - 38017 - 19968: jis0208<<14 | 0x4E<<7 | 0x36, - 38019 - 19968: jis0212<<14 | 0x44<<7 | 0x5B, - 38020 - 19968: jis0212<<14 | 0x44<<7 | 0x5A, - 38263 - 19968: jis0208<<14 | 0x23<<7 | 0x18, - 38264 - 19968: jis0212<<14 | 0x44<<7 | 0x5C, - 38265 - 19968: jis0212<<14 | 0x44<<7 | 0x5D, - 38270 - 19968: jis0212<<14 | 0x45<<7 | 0x00, - 38272 - 19968: jis0208<<14 | 0x2B<<7 | 0x46, - 38274 - 19968: jis0208<<14 | 0x4E<<7 | 0x38, - 38275 - 19968: jis0208<<14 | 0x20<<7 | 0x0D, - 38276 - 19968: jis0212<<14 | 0x45<<7 | 0x01, - 38279 - 19968: jis0208<<14 | 0x4E<<7 | 0x39, - 38280 - 19968: jis0212<<14 | 0x45<<7 | 0x02, - 38281 - 19968: jis0208<<14 | 0x29<<7 | 0x23, - 38282 - 19968: jis0208<<14 | 0x4E<<7 | 0x3A, - 38283 - 19968: jis0208<<14 | 0x12<<7 | 0x0A, - 38284 - 19968: jis0212<<14 | 0x45<<7 | 0x03, - 38285 - 19968: jis0212<<14 | 0x45<<7 | 0x04, - 38286 - 19968: jis0212<<14 | 0x45<<7 | 0x05, - 38287 - 19968: jis0208<<14 | 0x10<<7 | 0x1B, - 38289 - 19968: jis0208<<14 | 0x13<<7 | 0x36, - 38290 - 19968: jis0208<<14 | 0x5B<<7 | 0x2D, - 38291 - 19968: jis0208<<14 | 0x13<<7 | 0x35, - 38292 - 19968: jis0208<<14 | 0x4E<<7 | 0x3B, - 38294 - 19968: jis0208<<14 | 0x4E<<7 | 0x3C, - 38296 - 19968: jis0208<<14 | 0x4E<<7 | 0x3D, - 38297 - 19968: jis0208<<14 | 0x4E<<7 | 0x3E, - 38301 - 19968: jis0212<<14 | 0x45<<7 | 0x06, - 38302 - 19968: jis0212<<14 | 0x45<<7 | 0x07, - 38303 - 19968: jis0212<<14 | 0x45<<7 | 0x08, - 38304 - 19968: jis0208<<14 | 0x4E<<7 | 0x3F, - 38305 - 19968: jis0212<<14 | 0x45<<7 | 0x09, - 38306 - 19968: jis0208<<14 | 0x13<<7 | 0x37, - 38307 - 19968: jis0208<<14 | 0x12<<7 | 0x34, - 38308 - 19968: jis0208<<14 | 0x18<<7 | 0x3D, - 38309 - 19968: jis0208<<14 | 0x27<<7 | 0x15, - 38310 - 19968: jis0212<<14 | 0x45<<7 | 0x0A, - 38311 - 19968: jis0208<<14 | 0x4E<<7 | 0x41, - 38312 - 19968: jis0208<<14 | 0x4E<<7 | 0x40, - 38313 - 19968: jis0212<<14 | 0x45<<7 | 0x0B, - 38315 - 19968: jis0212<<14 | 0x45<<7 | 0x0C, - 38316 - 19968: jis0212<<14 | 0x45<<7 | 0x0D, - 38317 - 19968: jis0208<<14 | 0x4E<<7 | 0x42, - 38322 - 19968: jis0208<<14 | 0x10<<7 | 0x3B, - 38324 - 19968: jis0212<<14 | 0x45<<7 | 0x0E, - 38326 - 19968: jis0212<<14 | 0x45<<7 | 0x0F, - 38329 - 19968: jis0208<<14 | 0x4E<<7 | 0x45, - 38330 - 19968: jis0212<<14 | 0x45<<7 | 0x10, - 38331 - 19968: jis0208<<14 | 0x4E<<7 | 0x44, - 38332 - 19968: jis0208<<14 | 0x4E<<7 | 0x43, - 38333 - 19968: jis0212<<14 | 0x45<<7 | 0x11, - 38334 - 19968: jis0208<<14 | 0x4E<<7 | 0x46, - 38335 - 19968: jis0212<<14 | 0x45<<7 | 0x12, - 38339 - 19968: jis0208<<14 | 0x4E<<7 | 0x49, - 38342 - 19968: jis0212<<14 | 0x45<<7 | 0x13, - 38343 - 19968: jis0208<<14 | 0x0F<<7 | 0x26, - 38344 - 19968: jis0212<<14 | 0x45<<7 | 0x14, - 38345 - 19968: jis0212<<14 | 0x45<<7 | 0x15, - 38346 - 19968: jis0208<<14 | 0x4E<<7 | 0x47, - 38347 - 19968: jis0212<<14 | 0x45<<7 | 0x16, - 38348 - 19968: jis0208<<14 | 0x4E<<7 | 0x4B, - 38349 - 19968: jis0208<<14 | 0x4E<<7 | 0x4A, - 38352 - 19968: jis0212<<14 | 0x45<<7 | 0x17, - 38353 - 19968: jis0212<<14 | 0x45<<7 | 0x18, - 38354 - 19968: jis0212<<14 | 0x45<<7 | 0x19, - 38355 - 19968: jis0212<<14 | 0x45<<7 | 0x1A, - 38356 - 19968: jis0208<<14 | 0x4E<<7 | 0x4D, - 38357 - 19968: jis0208<<14 | 0x4E<<7 | 0x4C, - 38358 - 19968: jis0208<<14 | 0x4E<<7 | 0x4E, - 38360 - 19968: jis0208<<14 | 0x25<<7 | 0x0D, - 38361 - 19968: jis0212<<14 | 0x45<<7 | 0x1B, - 38362 - 19968: jis0212<<14 | 0x45<<7 | 0x1C, - 38364 - 19968: jis0208<<14 | 0x4E<<7 | 0x4F, - 38365 - 19968: jis0212<<14 | 0x45<<7 | 0x1D, - 38366 - 19968: jis0212<<14 | 0x45<<7 | 0x1E, - 38367 - 19968: jis0212<<14 | 0x45<<7 | 0x1F, - 38368 - 19968: jis0212<<14 | 0x45<<7 | 0x20, - 38369 - 19968: jis0208<<14 | 0x4E<<7 | 0x50, - 38370 - 19968: jis0208<<14 | 0x4E<<7 | 0x52, - 38372 - 19968: jis0212<<14 | 0x45<<7 | 0x21, - 38373 - 19968: jis0208<<14 | 0x4E<<7 | 0x51, - 38374 - 19968: jis0212<<14 | 0x45<<7 | 0x22, - 38428 - 19968: jis0208<<14 | 0x28<<7 | 0x4B, - 38429 - 19968: jis0212<<14 | 0x45<<7 | 0x23, - 38430 - 19968: jis0212<<14 | 0x45<<7 | 0x24, - 38433 - 19968: jis0208<<14 | 0x4E<<7 | 0x53, - 38434 - 19968: jis0212<<14 | 0x45<<7 | 0x25, - 38436 - 19968: jis0212<<14 | 0x45<<7 | 0x26, - 38437 - 19968: jis0212<<14 | 0x45<<7 | 0x27, - 38438 - 19968: jis0212<<14 | 0x45<<7 | 0x28, - 38440 - 19968: jis0208<<14 | 0x4E<<7 | 0x54, - 38442 - 19968: jis0208<<14 | 0x19<<7 | 0x44, - 38444 - 19968: jis0212<<14 | 0x45<<7 | 0x29, - 38446 - 19968: jis0208<<14 | 0x4E<<7 | 0x55, - 38447 - 19968: jis0208<<14 | 0x4E<<7 | 0x56, - 38449 - 19968: jis0212<<14 | 0x45<<7 | 0x2A, - 38450 - 19968: jis0208<<14 | 0x2A<<7 | 0x28, - 38451 - 19968: jis0212<<14 | 0x45<<7 | 0x2B, - 38455 - 19968: jis0212<<14 | 0x45<<7 | 0x2C, - 38456 - 19968: jis0212<<14 | 0x45<<7 | 0x2D, - 38457 - 19968: jis0212<<14 | 0x45<<7 | 0x2E, - 38458 - 19968: jis0212<<14 | 0x45<<7 | 0x2F, - 38459 - 19968: jis0208<<14 | 0x20<<7 | 0x2A, - 38460 - 19968: jis0212<<14 | 0x45<<7 | 0x30, - 38461 - 19968: jis0212<<14 | 0x45<<7 | 0x31, - 38463 - 19968: jis0208<<14 | 0x0F<<7 | 0x03, - 38464 - 19968: jis0208<<14 | 0x21<<7 | 0x2A, - 38465 - 19968: jis0212<<14 | 0x45<<7 | 0x32, - 38466 - 19968: jis0208<<14 | 0x4E<<7 | 0x57, - 38468 - 19968: jis0208<<14 | 0x28<<7 | 0x4C, - 38475 - 19968: jis0208<<14 | 0x4E<<7 | 0x5A, - 38476 - 19968: jis0208<<14 | 0x4E<<7 | 0x58, - 38477 - 19968: jis0208<<14 | 0x18<<7 | 0x3E, - 38479 - 19968: jis0208<<14 | 0x4E<<7 | 0x59, - 38480 - 19968: jis0208<<14 | 0x17<<7 | 0x21, - 38482 - 19968: jis0212<<14 | 0x45<<7 | 0x33, - 38484 - 19968: jis0212<<14 | 0x45<<7 | 0x34, - 38486 - 19968: jis0212<<14 | 0x45<<7 | 0x35, - 38487 - 19968: jis0212<<14 | 0x45<<7 | 0x36, - 38488 - 19968: jis0212<<14 | 0x45<<7 | 0x37, - 38491 - 19968: jis0208<<14 | 0x29<<7 | 0x24, - 38492 - 19968: jis0208<<14 | 0x4E<<7 | 0x5C, - 38493 - 19968: jis0208<<14 | 0x4F<<7 | 0x00, - 38494 - 19968: jis0208<<14 | 0x4E<<7 | 0x5D, - 38495 - 19968: jis0208<<14 | 0x4F<<7 | 0x01, - 38497 - 19968: jis0212<<14 | 0x45<<7 | 0x38, - 38498 - 19968: jis0208<<14 | 0x10<<7 | 0x00, - 38499 - 19968: jis0208<<14 | 0x1E<<7 | 0x37, - 38500 - 19968: jis0208<<14 | 0x1C<<7 | 0x5B, - 38501 - 19968: jis0208<<14 | 0x13<<7 | 0x38, - 38502 - 19968: jis0208<<14 | 0x4F<<7 | 0x02, - 38506 - 19968: jis0208<<14 | 0x26<<7 | 0x45, - 38508 - 19968: jis0208<<14 | 0x4F<<7 | 0x04, - 38510 - 19968: jis0212<<14 | 0x45<<7 | 0x39, - 38512 - 19968: jis0208<<14 | 0x10<<7 | 0x01, - 38514 - 19968: jis0208<<14 | 0x4F<<7 | 0x03, - 38515 - 19968: jis0208<<14 | 0x23<<7 | 0x23, - 38516 - 19968: jis0212<<14 | 0x45<<7 | 0x3A, - 38517 - 19968: jis0208<<14 | 0x2D<<7 | 0x2C, - 38518 - 19968: jis0208<<14 | 0x25<<7 | 0x0A, - 38519 - 19968: jis0208<<14 | 0x4E<<7 | 0x5B, - 38520 - 19968: jis0208<<14 | 0x2D<<7 | 0x05, - 38522 - 19968: jis0208<<14 | 0x17<<7 | 0x10, - 38523 - 19968: jis0212<<14 | 0x45<<7 | 0x3B, - 38524 - 19968: jis0212<<14 | 0x45<<7 | 0x3C, - 38525 - 19968: jis0208<<14 | 0x2C<<7 | 0x3A, - 38526 - 19968: jis0212<<14 | 0x45<<7 | 0x3D, - 38527 - 19968: jis0212<<14 | 0x45<<7 | 0x3E, - 38529 - 19968: jis0212<<14 | 0x45<<7 | 0x3F, - 38530 - 19968: jis0212<<14 | 0x45<<7 | 0x40, - 38531 - 19968: jis0212<<14 | 0x45<<7 | 0x41, - 38532 - 19968: jis0212<<14 | 0x45<<7 | 0x42, - 38533 - 19968: jis0208<<14 | 0x15<<7 | 0x58, - 38534 - 19968: jis0208<<14 | 0x2D<<7 | 0x13, - 38536 - 19968: jis0208<<14 | 0x16<<7 | 0x07, - 38537 - 19968: jis0212<<14 | 0x45<<7 | 0x43, - 38538 - 19968: jis0208<<14 | 0x21<<7 | 0x41, - 38539 - 19968: jis0208<<14 | 0x46<<7 | 0x00, - 38541 - 19968: jis0208<<14 | 0x4F<<7 | 0x05, - 38542 - 19968: jis0208<<14 | 0x12<<7 | 0x0B, - 38543 - 19968: jis0208<<14 | 0x1E<<7 | 0x4E, - 38545 - 19968: jis0212<<14 | 0x45<<7 | 0x44, - 38548 - 19968: jis0208<<14 | 0x12<<7 | 0x35, - 38549 - 19968: jis0208<<14 | 0x4F<<7 | 0x07, - 38550 - 19968: jis0212<<14 | 0x45<<7 | 0x45, - 38551 - 19968: jis0208<<14 | 0x4F<<7 | 0x08, - 38552 - 19968: jis0208<<14 | 0x4F<<7 | 0x06, - 38553 - 19968: jis0208<<14 | 0x16<<7 | 0x43, - 38554 - 19968: jis0212<<14 | 0x45<<7 | 0x46, - 38555 - 19968: jis0208<<14 | 0x19<<7 | 0x3C, - 38556 - 19968: jis0208<<14 | 0x1D<<7 | 0x42, - 38557 - 19968: jis0208<<14 | 0x5B<<7 | 0x30, - 38559 - 19968: jis0212<<14 | 0x45<<7 | 0x48, - 38560 - 19968: jis0208<<14 | 0x10<<7 | 0x02, - 38563 - 19968: jis0208<<14 | 0x2D<<7 | 0x38, - 38564 - 19968: jis0212<<14 | 0x45<<7 | 0x49, - 38565 - 19968: jis0212<<14 | 0x45<<7 | 0x4A, - 38566 - 19968: jis0212<<14 | 0x45<<7 | 0x4B, - 38567 - 19968: jis0208<<14 | 0x4F<<7 | 0x0A, - 38568 - 19968: jis0208<<14 | 0x4D<<7 | 0x0D, - 38569 - 19968: jis0212<<14 | 0x45<<7 | 0x4C, - 38570 - 19968: jis0208<<14 | 0x4F<<7 | 0x09, - 38574 - 19968: jis0212<<14 | 0x45<<7 | 0x4D, - 38575 - 19968: jis0208<<14 | 0x5B<<7 | 0x31, - 38576 - 19968: jis0208<<14 | 0x4F<<7 | 0x0D, - 38577 - 19968: jis0208<<14 | 0x4F<<7 | 0x0B, - 38578 - 19968: jis0208<<14 | 0x4F<<7 | 0x0C, - 38579 - 19968: jis0212<<14 | 0x45<<7 | 0x4F, - 38580 - 19968: jis0208<<14 | 0x4F<<7 | 0x0E, - 38582 - 19968: jis0208<<14 | 0x4F<<7 | 0x0F, - 38583 - 19968: jis0208<<14 | 0x2D<<7 | 0x4B, - 38584 - 19968: jis0208<<14 | 0x4F<<7 | 0x10, - 38585 - 19968: jis0208<<14 | 0x4F<<7 | 0x11, - 38586 - 19968: jis0212<<14 | 0x45<<7 | 0x50, - 38587 - 19968: jis0208<<14 | 0x1F<<7 | 0x28, - 38588 - 19968: jis0208<<14 | 0x27<<7 | 0x1A, - 38592 - 19968: jis0208<<14 | 0x1E<<7 | 0x5C, - 38593 - 19968: jis0208<<14 | 0x13<<7 | 0x46, - 38596 - 19968: jis0208<<14 | 0x2C<<7 | 0x19, - 38597 - 19968: jis0208<<14 | 0x11<<7 | 0x4C, - 38598 - 19968: jis0208<<14 | 0x1C<<7 | 0x17, - 38599 - 19968: jis0208<<14 | 0x17<<7 | 0x3A, - 38601 - 19968: jis0208<<14 | 0x4F<<7 | 0x14, - 38602 - 19968: jis0212<<14 | 0x45<<7 | 0x51, - 38603 - 19968: jis0208<<14 | 0x4F<<7 | 0x13, - 38604 - 19968: jis0208<<14 | 0x1A<<7 | 0x52, - 38605 - 19968: jis0208<<14 | 0x4F<<7 | 0x15, - 38606 - 19968: jis0208<<14 | 0x4F<<7 | 0x12, - 38609 - 19968: jis0208<<14 | 0x1A<<7 | 0x07, - 38610 - 19968: jis0212<<14 | 0x45<<7 | 0x52, - 38613 - 19968: jis0208<<14 | 0x4F<<7 | 0x19, - 38614 - 19968: jis0208<<14 | 0x49<<7 | 0x0C, - 38616 - 19968: jis0212<<14 | 0x45<<7 | 0x54, - 38617 - 19968: jis0208<<14 | 0x31<<7 | 0x35, - 38618 - 19968: jis0212<<14 | 0x45<<7 | 0x55, - 38619 - 19968: jis0208<<14 | 0x1E<<7 | 0x56, - 38620 - 19968: jis0208<<14 | 0x4F<<7 | 0x17, - 38621 - 19968: jis0212<<14 | 0x45<<7 | 0x56, - 38622 - 19968: jis0212<<14 | 0x45<<7 | 0x57, - 38623 - 19968: jis0212<<14 | 0x45<<7 | 0x58, - 38626 - 19968: jis0208<<14 | 0x2D<<7 | 0x04, - 38627 - 19968: jis0208<<14 | 0x25<<7 | 0x50, - 38632 - 19968: jis0208<<14 | 0x10<<7 | 0x0A, - 38633 - 19968: jis0212<<14 | 0x45<<7 | 0x59, - 38634 - 19968: jis0208<<14 | 0x1F<<7 | 0x42, - 38635 - 19968: jis0208<<14 | 0x1B<<7 | 0x15, - 38639 - 19968: jis0212<<14 | 0x45<<7 | 0x5A, - 38640 - 19968: jis0208<<14 | 0x29<<7 | 0x16, - 38641 - 19968: jis0212<<14 | 0x45<<7 | 0x5B, - 38642 - 19968: jis0208<<14 | 0x10<<7 | 0x1F, - 38646 - 19968: jis0208<<14 | 0x2D<<7 | 0x4C, - 38647 - 19968: jis0208<<14 | 0x2C<<7 | 0x4A, - 38649 - 19968: jis0208<<14 | 0x4F<<7 | 0x1A, - 38650 - 19968: jis0212<<14 | 0x45<<7 | 0x5C, - 38651 - 19968: jis0208<<14 | 0x24<<7 | 0x24, - 38656 - 19968: jis0208<<14 | 0x1B<<7 | 0x5A, - 38658 - 19968: jis0212<<14 | 0x45<<7 | 0x5D, - 38659 - 19968: jis0212<<14 | 0x46<<7 | 0x00, - 38660 - 19968: jis0208<<14 | 0x4F<<7 | 0x1B, - 38661 - 19968: jis0212<<14 | 0x46<<7 | 0x01, - 38662 - 19968: jis0208<<14 | 0x4F<<7 | 0x1C, - 38663 - 19968: jis0208<<14 | 0x1E<<7 | 0x2B, - 38664 - 19968: jis0208<<14 | 0x4F<<7 | 0x1D, - 38665 - 19968: jis0212<<14 | 0x46<<7 | 0x02, - 38666 - 19968: jis0208<<14 | 0x2D<<7 | 0x4D, - 38669 - 19968: jis0208<<14 | 0x4F<<7 | 0x18, - 38670 - 19968: jis0208<<14 | 0x4F<<7 | 0x1F, - 38671 - 19968: jis0208<<14 | 0x4F<<7 | 0x21, - 38673 - 19968: jis0208<<14 | 0x4F<<7 | 0x20, - 38675 - 19968: jis0208<<14 | 0x4F<<7 | 0x1E, - 38678 - 19968: jis0208<<14 | 0x4F<<7 | 0x22, - 38681 - 19968: jis0208<<14 | 0x4F<<7 | 0x23, - 38682 - 19968: jis0212<<14 | 0x46<<7 | 0x03, - 38683 - 19968: jis0212<<14 | 0x46<<7 | 0x04, - 38684 - 19968: jis0208<<14 | 0x20<<7 | 0x59, - 38685 - 19968: jis0212<<14 | 0x46<<7 | 0x05, - 38686 - 19968: jis0208<<14 | 0x11<<7 | 0x41, - 38689 - 19968: jis0212<<14 | 0x46<<7 | 0x06, - 38690 - 19968: jis0212<<14 | 0x46<<7 | 0x07, - 38691 - 19968: jis0212<<14 | 0x46<<7 | 0x08, - 38692 - 19968: jis0208<<14 | 0x4F<<7 | 0x24, - 38695 - 19968: jis0208<<14 | 0x2B<<7 | 0x17, - 38696 - 19968: jis0212<<14 | 0x46<<7 | 0x09, - 38698 - 19968: jis0208<<14 | 0x4F<<7 | 0x25, - 38704 - 19968: jis0208<<14 | 0x4F<<7 | 0x26, - 38705 - 19968: jis0212<<14 | 0x46<<7 | 0x0A, - 38706 - 19968: jis0208<<14 | 0x2E<<7 | 0x09, - 38707 - 19968: jis0208<<14 | 0x5B<<7 | 0x32, - 38712 - 19968: jis0208<<14 | 0x3A<<7 | 0x10, - 38713 - 19968: jis0208<<14 | 0x4F<<7 | 0x27, - 38715 - 19968: jis0208<<14 | 0x5B<<7 | 0x33, - 38717 - 19968: jis0208<<14 | 0x4F<<7 | 0x28, - 38718 - 19968: jis0208<<14 | 0x4F<<7 | 0x29, - 38721 - 19968: jis0212<<14 | 0x46<<7 | 0x0C, - 38722 - 19968: jis0208<<14 | 0x4F<<7 | 0x2D, - 38723 - 19968: jis0208<<14 | 0x5B<<7 | 0x34, - 38724 - 19968: jis0208<<14 | 0x4F<<7 | 0x2A, - 38726 - 19968: jis0208<<14 | 0x4F<<7 | 0x2B, - 38728 - 19968: jis0208<<14 | 0x4F<<7 | 0x2C, - 38729 - 19968: jis0208<<14 | 0x4F<<7 | 0x2E, - 38730 - 19968: jis0212<<14 | 0x46<<7 | 0x0E, - 38733 - 19968: jis0208<<14 | 0x5B<<7 | 0x35, - 38734 - 19968: jis0212<<14 | 0x46<<7 | 0x0F, - 38735 - 19968: jis0208<<14 | 0x5B<<7 | 0x36, - 38737 - 19968: jis0208<<14 | 0x5B<<7 | 0x37, - 38738 - 19968: jis0208<<14 | 0x1F<<7 | 0x23, - 38741 - 19968: jis0208<<14 | 0x5B<<7 | 0x38, - 38742 - 19968: jis0208<<14 | 0x2B<<7 | 0x56, - 38743 - 19968: jis0212<<14 | 0x46<<7 | 0x12, - 38744 - 19968: jis0212<<14 | 0x46<<7 | 0x13, - 38745 - 19968: jis0208<<14 | 0x1F<<7 | 0x24, - 38746 - 19968: jis0212<<14 | 0x46<<7 | 0x14, - 38747 - 19968: jis0212<<14 | 0x46<<7 | 0x15, - 38748 - 19968: jis0208<<14 | 0x4F<<7 | 0x2F, - 38750 - 19968: jis0208<<14 | 0x27<<7 | 0x52, - 38752 - 19968: jis0208<<14 | 0x4F<<7 | 0x30, - 38753 - 19968: jis0208<<14 | 0x52<<7 | 0x32, - 38754 - 19968: jis0208<<14 | 0x2B<<7 | 0x2B, - 38755 - 19968: jis0212<<14 | 0x46<<7 | 0x16, - 38756 - 19968: jis0208<<14 | 0x4F<<7 | 0x31, - 38758 - 19968: jis0208<<14 | 0x4F<<7 | 0x32, - 38759 - 19968: jis0212<<14 | 0x46<<7 | 0x17, - 38760 - 19968: jis0208<<14 | 0x4F<<7 | 0x33, - 38761 - 19968: jis0208<<14 | 0x12<<7 | 0x36, - 38762 - 19968: jis0212<<14 | 0x46<<7 | 0x18, - 38763 - 19968: jis0208<<14 | 0x4F<<7 | 0x35, - 38765 - 19968: jis0208<<14 | 0x1E<<7 | 0x38, - 38766 - 19968: jis0212<<14 | 0x46<<7 | 0x19, - 38769 - 19968: jis0208<<14 | 0x4F<<7 | 0x36, - 38771 - 19968: jis0212<<14 | 0x46<<7 | 0x1A, - 38772 - 19968: jis0208<<14 | 0x16<<7 | 0x03, - 38774 - 19968: jis0212<<14 | 0x46<<7 | 0x1B, - 38775 - 19968: jis0212<<14 | 0x46<<7 | 0x1C, - 38776 - 19968: jis0212<<14 | 0x46<<7 | 0x1D, - 38777 - 19968: jis0208<<14 | 0x4F<<7 | 0x37, - 38778 - 19968: jis0208<<14 | 0x4F<<7 | 0x3B, - 38779 - 19968: jis0212<<14 | 0x46<<7 | 0x1E, - 38780 - 19968: jis0208<<14 | 0x4F<<7 | 0x39, - 38781 - 19968: jis0212<<14 | 0x46<<7 | 0x1F, - 38783 - 19968: jis0212<<14 | 0x46<<7 | 0x20, - 38784 - 19968: jis0212<<14 | 0x46<<7 | 0x21, - 38785 - 19968: jis0208<<14 | 0x4F<<7 | 0x3A, - 38788 - 19968: jis0208<<14 | 0x12<<7 | 0x52, - 38789 - 19968: jis0208<<14 | 0x4F<<7 | 0x38, - 38790 - 19968: jis0208<<14 | 0x4F<<7 | 0x3C, - 38793 - 19968: jis0212<<14 | 0x46<<7 | 0x22, - 38795 - 19968: jis0208<<14 | 0x4F<<7 | 0x3D, - 38797 - 19968: jis0208<<14 | 0x0F<<7 | 0x27, - 38799 - 19968: jis0208<<14 | 0x4F<<7 | 0x3E, - 38800 - 19968: jis0208<<14 | 0x4F<<7 | 0x3F, - 38805 - 19968: jis0212<<14 | 0x46<<7 | 0x23, - 38806 - 19968: jis0212<<14 | 0x46<<7 | 0x24, - 38807 - 19968: jis0212<<14 | 0x46<<7 | 0x25, - 38808 - 19968: jis0208<<14 | 0x1D<<7 | 0x43, - 38809 - 19968: jis0212<<14 | 0x46<<7 | 0x26, - 38810 - 19968: jis0212<<14 | 0x46<<7 | 0x27, - 38812 - 19968: jis0208<<14 | 0x4F<<7 | 0x40, - 38814 - 19968: jis0212<<14 | 0x46<<7 | 0x28, - 38815 - 19968: jis0212<<14 | 0x46<<7 | 0x29, - 38816 - 19968: jis0208<<14 | 0x14<<7 | 0x26, - 38818 - 19968: jis0212<<14 | 0x46<<7 | 0x2A, - 38819 - 19968: jis0208<<14 | 0x4F<<7 | 0x43, - 38822 - 19968: jis0208<<14 | 0x4F<<7 | 0x42, - 38824 - 19968: jis0208<<14 | 0x4F<<7 | 0x41, - 38827 - 19968: jis0208<<14 | 0x4A<<7 | 0x50, - 38828 - 19968: jis0212<<14 | 0x46<<7 | 0x2B, - 38829 - 19968: jis0208<<14 | 0x29<<7 | 0x3B, - 38830 - 19968: jis0212<<14 | 0x46<<7 | 0x2C, - 38833 - 19968: jis0212<<14 | 0x46<<7 | 0x2D, - 38834 - 19968: jis0212<<14 | 0x46<<7 | 0x2E, - 38835 - 19968: jis0208<<14 | 0x4F<<7 | 0x44, - 38836 - 19968: jis0208<<14 | 0x4F<<7 | 0x45, - 38837 - 19968: jis0212<<14 | 0x46<<7 | 0x2F, - 38838 - 19968: jis0212<<14 | 0x46<<7 | 0x30, - 38840 - 19968: jis0212<<14 | 0x46<<7 | 0x31, - 38841 - 19968: jis0212<<14 | 0x46<<7 | 0x32, - 38842 - 19968: jis0212<<14 | 0x46<<7 | 0x33, - 38844 - 19968: jis0212<<14 | 0x46<<7 | 0x34, - 38846 - 19968: jis0212<<14 | 0x46<<7 | 0x35, - 38847 - 19968: jis0212<<14 | 0x46<<7 | 0x36, - 38849 - 19968: jis0212<<14 | 0x46<<7 | 0x37, - 38851 - 19968: jis0208<<14 | 0x4F<<7 | 0x46, - 38852 - 19968: jis0212<<14 | 0x46<<7 | 0x38, - 38853 - 19968: jis0212<<14 | 0x46<<7 | 0x39, - 38854 - 19968: jis0208<<14 | 0x4F<<7 | 0x47, - 38855 - 19968: jis0212<<14 | 0x46<<7 | 0x3A, - 38856 - 19968: jis0208<<14 | 0x4F<<7 | 0x48, - 38857 - 19968: jis0212<<14 | 0x46<<7 | 0x3B, - 38858 - 19968: jis0212<<14 | 0x46<<7 | 0x3C, - 38859 - 19968: jis0208<<14 | 0x4F<<7 | 0x49, - 38860 - 19968: jis0212<<14 | 0x46<<7 | 0x3D, - 38861 - 19968: jis0212<<14 | 0x46<<7 | 0x3E, - 38862 - 19968: jis0212<<14 | 0x46<<7 | 0x3F, - 38864 - 19968: jis0212<<14 | 0x46<<7 | 0x40, - 38865 - 19968: jis0212<<14 | 0x46<<7 | 0x41, - 38867 - 19968: jis0208<<14 | 0x13<<7 | 0x39, - 38868 - 19968: jis0212<<14 | 0x46<<7 | 0x42, - 38871 - 19968: jis0212<<14 | 0x46<<7 | 0x43, - 38872 - 19968: jis0212<<14 | 0x46<<7 | 0x44, - 38873 - 19968: jis0212<<14 | 0x46<<7 | 0x45, - 38875 - 19968: jis0212<<14 | 0x46<<7 | 0x49, - 38876 - 19968: jis0208<<14 | 0x4F<<7 | 0x4A, - 38877 - 19968: jis0212<<14 | 0x46<<7 | 0x46, - 38878 - 19968: jis0212<<14 | 0x46<<7 | 0x47, - 38880 - 19968: jis0212<<14 | 0x46<<7 | 0x48, - 38881 - 19968: jis0212<<14 | 0x46<<7 | 0x4A, - 38884 - 19968: jis0212<<14 | 0x46<<7 | 0x4B, - 38893 - 19968: jis0208<<14 | 0x4F<<7 | 0x4B, - 38894 - 19968: jis0208<<14 | 0x26<<7 | 0x02, - 38895 - 19968: jis0212<<14 | 0x46<<7 | 0x4C, - 38897 - 19968: jis0212<<14 | 0x46<<7 | 0x4D, - 38898 - 19968: jis0208<<14 | 0x4F<<7 | 0x4D, - 38899 - 19968: jis0208<<14 | 0x11<<7 | 0x1A, - 38900 - 19968: jis0212<<14 | 0x46<<7 | 0x4E, - 38901 - 19968: jis0208<<14 | 0x4F<<7 | 0x50, - 38902 - 19968: jis0208<<14 | 0x4F<<7 | 0x4F, - 38903 - 19968: jis0212<<14 | 0x46<<7 | 0x4F, - 38904 - 19968: jis0212<<14 | 0x46<<7 | 0x50, - 38906 - 19968: jis0212<<14 | 0x46<<7 | 0x51, - 38907 - 19968: jis0208<<14 | 0x10<<7 | 0x03, - 38911 - 19968: jis0208<<14 | 0x15<<7 | 0x20, - 38913 - 19968: jis0208<<14 | 0x29<<7 | 0x26, - 38914 - 19968: jis0208<<14 | 0x23<<7 | 0x19, - 38915 - 19968: jis0208<<14 | 0x19<<7 | 0x01, - 38917 - 19968: jis0208<<14 | 0x18<<7 | 0x3F, - 38918 - 19968: jis0208<<14 | 0x1C<<7 | 0x46, - 38919 - 19968: jis0212<<14 | 0x46<<7 | 0x52, - 38920 - 19968: jis0208<<14 | 0x1E<<7 | 0x3B, - 38922 - 19968: jis0212<<14 | 0x46<<7 | 0x53, - 38924 - 19968: jis0208<<14 | 0x4F<<7 | 0x52, - 38925 - 19968: jis0212<<14 | 0x46<<7 | 0x55, - 38926 - 19968: jis0212<<14 | 0x46<<7 | 0x56, - 38927 - 19968: jis0208<<14 | 0x4F<<7 | 0x51, - 38928 - 19968: jis0208<<14 | 0x2C<<7 | 0x21, - 38929 - 19968: jis0208<<14 | 0x13<<7 | 0x47, - 38930 - 19968: jis0208<<14 | 0x27<<7 | 0x31, - 38931 - 19968: jis0208<<14 | 0x25<<7 | 0x3B, - 38932 - 19968: jis0212<<14 | 0x46<<7 | 0x57, - 38934 - 19968: jis0212<<14 | 0x46<<7 | 0x58, - 38935 - 19968: jis0208<<14 | 0x1E<<7 | 0x5B, - 38936 - 19968: jis0208<<14 | 0x2D<<7 | 0x2D, - 38937 - 19968: jis0212<<14 | 0x46<<7 | 0x54, - 38938 - 19968: jis0208<<14 | 0x16<<7 | 0x3A, - 38940 - 19968: jis0212<<14 | 0x46<<7 | 0x59, - 38942 - 19968: jis0212<<14 | 0x46<<7 | 0x5A, - 38944 - 19968: jis0212<<14 | 0x46<<7 | 0x5B, - 38945 - 19968: jis0208<<14 | 0x4F<<7 | 0x55, - 38947 - 19968: jis0212<<14 | 0x46<<7 | 0x5C, - 38948 - 19968: jis0208<<14 | 0x4F<<7 | 0x54, - 38949 - 19968: jis0212<<14 | 0x47<<7 | 0x07, - 38950 - 19968: jis0212<<14 | 0x46<<7 | 0x5D, - 38955 - 19968: jis0212<<14 | 0x47<<7 | 0x00, - 38956 - 19968: jis0208<<14 | 0x2A<<7 | 0x2A, - 38957 - 19968: jis0208<<14 | 0x25<<7 | 0x0B, - 38958 - 19968: jis0212<<14 | 0x47<<7 | 0x01, - 38959 - 19968: jis0212<<14 | 0x47<<7 | 0x02, - 38960 - 19968: jis0212<<14 | 0x47<<7 | 0x03, - 38962 - 19968: jis0212<<14 | 0x47<<7 | 0x04, - 38963 - 19968: jis0212<<14 | 0x47<<7 | 0x05, - 38964 - 19968: jis0208<<14 | 0x10<<7 | 0x2F, - 38965 - 19968: jis0212<<14 | 0x47<<7 | 0x06, - 38967 - 19968: jis0208<<14 | 0x4F<<7 | 0x56, - 38968 - 19968: jis0208<<14 | 0x4F<<7 | 0x53, - 38971 - 19968: jis0208<<14 | 0x28<<7 | 0x30, - 38972 - 19968: jis0208<<14 | 0x2C<<7 | 0x49, - 38973 - 19968: jis0208<<14 | 0x4F<<7 | 0x57, - 38974 - 19968: jis0212<<14 | 0x47<<7 | 0x08, - 38980 - 19968: jis0212<<14 | 0x47<<7 | 0x09, - 38982 - 19968: jis0208<<14 | 0x4F<<7 | 0x58, - 38983 - 19968: jis0212<<14 | 0x47<<7 | 0x0A, - 38986 - 19968: jis0212<<14 | 0x47<<7 | 0x0B, - 38987 - 19968: jis0208<<14 | 0x4F<<7 | 0x5A, - 38988 - 19968: jis0208<<14 | 0x21<<7 | 0x49, - 38989 - 19968: jis0208<<14 | 0x12<<7 | 0x3A, - 38990 - 19968: jis0208<<14 | 0x12<<7 | 0x3B, - 38991 - 19968: jis0208<<14 | 0x4F<<7 | 0x59, - 38993 - 19968: jis0212<<14 | 0x47<<7 | 0x0C, - 38994 - 19968: jis0212<<14 | 0x47<<7 | 0x0D, - 38995 - 19968: jis0212<<14 | 0x47<<7 | 0x0E, - 38996 - 19968: jis0208<<14 | 0x13<<7 | 0x48, - 38997 - 19968: jis0208<<14 | 0x17<<7 | 0x11, - 38998 - 19968: jis0212<<14 | 0x47<<7 | 0x0F, - 38999 - 19968: jis0208<<14 | 0x5B<<7 | 0x39, - 39000 - 19968: jis0208<<14 | 0x13<<7 | 0x49, - 39001 - 19968: jis0212<<14 | 0x47<<7 | 0x11, - 39002 - 19968: jis0212<<14 | 0x47<<7 | 0x12, - 39003 - 19968: jis0208<<14 | 0x24<<7 | 0x1E, - 39006 - 19968: jis0208<<14 | 0x2D<<7 | 0x3F, - 39010 - 19968: jis0212<<14 | 0x47<<7 | 0x13, - 39011 - 19968: jis0212<<14 | 0x47<<7 | 0x14, - 39013 - 19968: jis0208<<14 | 0x5B<<7 | 0x3A, - 39014 - 19968: jis0212<<14 | 0x47<<7 | 0x16, - 39015 - 19968: jis0208<<14 | 0x17<<7 | 0x3B, - 39018 - 19968: jis0212<<14 | 0x47<<7 | 0x17, - 39019 - 19968: jis0208<<14 | 0x4F<<7 | 0x5B, - 39020 - 19968: jis0212<<14 | 0x47<<7 | 0x18, - 39023 - 19968: jis0208<<14 | 0x4F<<7 | 0x5C, - 39024 - 19968: jis0208<<14 | 0x4F<<7 | 0x5D, - 39025 - 19968: jis0208<<14 | 0x50<<7 | 0x00, - 39027 - 19968: jis0208<<14 | 0x50<<7 | 0x02, - 39028 - 19968: jis0208<<14 | 0x50<<7 | 0x01, - 39080 - 19968: jis0208<<14 | 0x28<<7 | 0x56, - 39082 - 19968: jis0208<<14 | 0x50<<7 | 0x03, - 39083 - 19968: jis0212<<14 | 0x47<<7 | 0x19, - 39085 - 19968: jis0212<<14 | 0x47<<7 | 0x1A, - 39086 - 19968: jis0212<<14 | 0x47<<7 | 0x1B, - 39087 - 19968: jis0208<<14 | 0x50<<7 | 0x04, - 39088 - 19968: jis0212<<14 | 0x47<<7 | 0x1C, - 39089 - 19968: jis0208<<14 | 0x50<<7 | 0x05, - 39092 - 19968: jis0212<<14 | 0x47<<7 | 0x1D, - 39094 - 19968: jis0208<<14 | 0x50<<7 | 0x06, - 39095 - 19968: jis0212<<14 | 0x47<<7 | 0x1E, - 39096 - 19968: jis0212<<14 | 0x47<<7 | 0x1F, - 39098 - 19968: jis0212<<14 | 0x47<<7 | 0x20, - 39099 - 19968: jis0212<<14 | 0x47<<7 | 0x21, - 39103 - 19968: jis0212<<14 | 0x47<<7 | 0x22, - 39106 - 19968: jis0212<<14 | 0x47<<7 | 0x23, - 39107 - 19968: jis0208<<14 | 0x50<<7 | 0x08, - 39108 - 19968: jis0208<<14 | 0x50<<7 | 0x07, - 39109 - 19968: jis0212<<14 | 0x47<<7 | 0x24, - 39110 - 19968: jis0208<<14 | 0x50<<7 | 0x09, - 39112 - 19968: jis0212<<14 | 0x47<<7 | 0x25, - 39116 - 19968: jis0212<<14 | 0x47<<7 | 0x26, - 39131 - 19968: jis0208<<14 | 0x27<<7 | 0x53, - 39132 - 19968: jis0208<<14 | 0x45<<7 | 0x2B, - 39135 - 19968: jis0208<<14 | 0x1E<<7 | 0x08, - 39137 - 19968: jis0212<<14 | 0x47<<7 | 0x27, - 39138 - 19968: jis0208<<14 | 0x14<<7 | 0x11, - 39139 - 19968: jis0212<<14 | 0x47<<7 | 0x28, - 39141 - 19968: jis0212<<14 | 0x47<<7 | 0x29, - 39142 - 19968: jis0212<<14 | 0x47<<7 | 0x2A, - 39143 - 19968: jis0212<<14 | 0x47<<7 | 0x2B, - 39145 - 19968: jis0208<<14 | 0x50<<7 | 0x0A, - 39146 - 19968: jis0212<<14 | 0x47<<7 | 0x2C, - 39147 - 19968: jis0208<<14 | 0x50<<7 | 0x0B, - 39149 - 19968: jis0208<<14 | 0x31<<7 | 0x0B, - 39150 - 19968: jis0208<<14 | 0x3C<<7 | 0x1A, - 39151 - 19968: jis0208<<14 | 0x27<<7 | 0x32, - 39154 - 19968: jis0208<<14 | 0x0F<<7 | 0x5A, - 39155 - 19968: jis0212<<14 | 0x47<<7 | 0x2D, - 39156 - 19968: jis0208<<14 | 0x0F<<7 | 0x1A, - 39158 - 19968: jis0212<<14 | 0x47<<7 | 0x2E, - 39164 - 19968: jis0208<<14 | 0x1A<<7 | 0x53, - 39165 - 19968: jis0208<<14 | 0x2A<<7 | 0x0F, - 39166 - 19968: jis0208<<14 | 0x1D<<7 | 0x5D, - 39170 - 19968: jis0212<<14 | 0x47<<7 | 0x2F, - 39171 - 19968: jis0208<<14 | 0x50<<7 | 0x0C, - 39173 - 19968: jis0208<<14 | 0x2B<<7 | 0x3E, - 39175 - 19968: jis0212<<14 | 0x47<<7 | 0x30, - 39176 - 19968: jis0212<<14 | 0x47<<7 | 0x31, - 39177 - 19968: jis0208<<14 | 0x50<<7 | 0x0D, - 39178 - 19968: jis0208<<14 | 0x2C<<7 | 0x3B, - 39180 - 19968: jis0208<<14 | 0x10<<7 | 0x21, - 39184 - 19968: jis0208<<14 | 0x1A<<7 | 0x20, - 39185 - 19968: jis0212<<14 | 0x47<<7 | 0x32, - 39186 - 19968: jis0208<<14 | 0x50<<7 | 0x0E, - 39187 - 19968: jis0208<<14 | 0x11<<7 | 0x4D, - 39188 - 19968: jis0208<<14 | 0x50<<7 | 0x0F, - 39189 - 19968: jis0212<<14 | 0x47<<7 | 0x33, - 39190 - 19968: jis0212<<14 | 0x47<<7 | 0x34, - 39191 - 19968: jis0212<<14 | 0x47<<7 | 0x35, - 39192 - 19968: jis0208<<14 | 0x50<<7 | 0x10, - 39194 - 19968: jis0212<<14 | 0x47<<7 | 0x36, - 39195 - 19968: jis0212<<14 | 0x47<<7 | 0x37, - 39196 - 19968: jis0212<<14 | 0x47<<7 | 0x38, - 39197 - 19968: jis0208<<14 | 0x50<<7 | 0x12, - 39198 - 19968: jis0208<<14 | 0x50<<7 | 0x13, - 39199 - 19968: jis0212<<14 | 0x47<<7 | 0x39, - 39200 - 19968: jis0208<<14 | 0x50<<7 | 0x15, - 39201 - 19968: jis0208<<14 | 0x50<<7 | 0x11, - 39202 - 19968: jis0212<<14 | 0x47<<7 | 0x3A, - 39204 - 19968: jis0208<<14 | 0x50<<7 | 0x14, - 39206 - 19968: jis0212<<14 | 0x47<<7 | 0x3B, - 39207 - 19968: jis0208<<14 | 0x5B<<7 | 0x3D, - 39208 - 19968: jis0208<<14 | 0x13<<7 | 0x3A, - 39211 - 19968: jis0212<<14 | 0x47<<7 | 0x3D, - 39212 - 19968: jis0208<<14 | 0x50<<7 | 0x16, - 39214 - 19968: jis0208<<14 | 0x50<<7 | 0x17, - 39217 - 19968: jis0212<<14 | 0x47<<7 | 0x3E, - 39218 - 19968: jis0212<<14 | 0x47<<7 | 0x3F, - 39219 - 19968: jis0212<<14 | 0x47<<7 | 0x40, - 39220 - 19968: jis0212<<14 | 0x47<<7 | 0x41, - 39221 - 19968: jis0212<<14 | 0x47<<7 | 0x42, - 39225 - 19968: jis0212<<14 | 0x47<<7 | 0x43, - 39226 - 19968: jis0212<<14 | 0x47<<7 | 0x44, - 39227 - 19968: jis0212<<14 | 0x47<<7 | 0x45, - 39228 - 19968: jis0212<<14 | 0x47<<7 | 0x46, - 39229 - 19968: jis0208<<14 | 0x50<<7 | 0x18, - 39230 - 19968: jis0208<<14 | 0x50<<7 | 0x19, - 39232 - 19968: jis0212<<14 | 0x47<<7 | 0x47, - 39233 - 19968: jis0212<<14 | 0x47<<7 | 0x48, - 39234 - 19968: jis0208<<14 | 0x50<<7 | 0x1A, - 39237 - 19968: jis0208<<14 | 0x50<<7 | 0x1C, - 39238 - 19968: jis0212<<14 | 0x47<<7 | 0x49, - 39239 - 19968: jis0212<<14 | 0x47<<7 | 0x4A, - 39240 - 19968: jis0212<<14 | 0x47<<7 | 0x4B, - 39241 - 19968: jis0208<<14 | 0x50<<7 | 0x1B, - 39243 - 19968: jis0208<<14 | 0x50<<7 | 0x1E, - 39244 - 19968: jis0208<<14 | 0x50<<7 | 0x21, - 39245 - 19968: jis0212<<14 | 0x47<<7 | 0x4C, - 39246 - 19968: jis0212<<14 | 0x47<<7 | 0x4D, - 39248 - 19968: jis0208<<14 | 0x50<<7 | 0x1D, - 39249 - 19968: jis0208<<14 | 0x50<<7 | 0x1F, - 39250 - 19968: jis0208<<14 | 0x50<<7 | 0x20, - 39252 - 19968: jis0212<<14 | 0x47<<7 | 0x4E, - 39253 - 19968: jis0208<<14 | 0x50<<7 | 0x22, - 39255 - 19968: jis0208<<14 | 0x15<<7 | 0x21, - 39256 - 19968: jis0212<<14 | 0x47<<7 | 0x4F, - 39257 - 19968: jis0212<<14 | 0x47<<7 | 0x50, - 39259 - 19968: jis0212<<14 | 0x47<<7 | 0x51, - 39260 - 19968: jis0212<<14 | 0x47<<7 | 0x52, - 39262 - 19968: jis0212<<14 | 0x47<<7 | 0x53, - 39263 - 19968: jis0212<<14 | 0x47<<7 | 0x54, - 39264 - 19968: jis0212<<14 | 0x47<<7 | 0x55, - 39318 - 19968: jis0208<<14 | 0x1B<<7 | 0x52, - 39319 - 19968: jis0208<<14 | 0x50<<7 | 0x23, - 39320 - 19968: jis0208<<14 | 0x50<<7 | 0x24, - 39321 - 19968: jis0208<<14 | 0x18<<7 | 0x40, - 39323 - 19968: jis0212<<14 | 0x47<<7 | 0x56, - 39325 - 19968: jis0212<<14 | 0x47<<7 | 0x57, - 39326 - 19968: jis0208<<14 | 0x5B<<7 | 0x3F, - 39327 - 19968: jis0212<<14 | 0x47<<7 | 0x58, - 39333 - 19968: jis0208<<14 | 0x50<<7 | 0x25, - 39334 - 19968: jis0212<<14 | 0x47<<7 | 0x59, - 39336 - 19968: jis0208<<14 | 0x12<<7 | 0x1D, - 39340 - 19968: jis0208<<14 | 0x26<<7 | 0x2E, - 39341 - 19968: jis0208<<14 | 0x50<<7 | 0x26, - 39342 - 19968: jis0208<<14 | 0x50<<7 | 0x27, - 39344 - 19968: jis0212<<14 | 0x47<<7 | 0x5A, - 39345 - 19968: jis0212<<14 | 0x47<<7 | 0x5B, - 39346 - 19968: jis0212<<14 | 0x47<<7 | 0x5C, - 39347 - 19968: jis0208<<14 | 0x22<<7 | 0x39, - 39348 - 19968: jis0208<<14 | 0x25<<7 | 0x4A, - 39349 - 19968: jis0212<<14 | 0x47<<7 | 0x5D, - 39353 - 19968: jis0212<<14 | 0x48<<7 | 0x00, - 39354 - 19968: jis0212<<14 | 0x48<<7 | 0x01, - 39356 - 19968: jis0208<<14 | 0x50<<7 | 0x28, - 39357 - 19968: jis0212<<14 | 0x48<<7 | 0x02, - 39359 - 19968: jis0212<<14 | 0x48<<7 | 0x03, - 39361 - 19968: jis0208<<14 | 0x26<<7 | 0x5C, - 39363 - 19968: jis0212<<14 | 0x48<<7 | 0x04, - 39364 - 19968: jis0208<<14 | 0x21<<7 | 0x2B, - 39365 - 19968: jis0208<<14 | 0x10<<7 | 0x37, - 39366 - 19968: jis0208<<14 | 0x15<<7 | 0x4D, - 39368 - 19968: jis0208<<14 | 0x15<<7 | 0x4E, - 39369 - 19968: jis0212<<14 | 0x48<<7 | 0x05, - 39376 - 19968: jis0208<<14 | 0x22<<7 | 0x52, - 39377 - 19968: jis0208<<14 | 0x50<<7 | 0x2D, - 39378 - 19968: jis0208<<14 | 0x15<<7 | 0x4F, - 39379 - 19968: jis0212<<14 | 0x48<<7 | 0x06, - 39380 - 19968: jis0212<<14 | 0x48<<7 | 0x07, - 39381 - 19968: jis0208<<14 | 0x11<<7 | 0x4E, - 39384 - 19968: jis0208<<14 | 0x50<<7 | 0x2C, - 39385 - 19968: jis0212<<14 | 0x48<<7 | 0x08, - 39386 - 19968: jis0212<<14 | 0x48<<7 | 0x09, - 39387 - 19968: jis0208<<14 | 0x50<<7 | 0x2A, - 39388 - 19968: jis0212<<14 | 0x48<<7 | 0x0A, - 39389 - 19968: jis0208<<14 | 0x50<<7 | 0x2B, - 39390 - 19968: jis0212<<14 | 0x48<<7 | 0x0B, - 39391 - 19968: jis0208<<14 | 0x50<<7 | 0x29, - 39394 - 19968: jis0208<<14 | 0x50<<7 | 0x37, - 39399 - 19968: jis0212<<14 | 0x48<<7 | 0x0C, - 39402 - 19968: jis0212<<14 | 0x48<<7 | 0x0D, - 39403 - 19968: jis0212<<14 | 0x48<<7 | 0x0E, - 39404 - 19968: jis0212<<14 | 0x48<<7 | 0x0F, - 39405 - 19968: jis0208<<14 | 0x50<<7 | 0x2E, - 39406 - 19968: jis0208<<14 | 0x50<<7 | 0x2F, - 39408 - 19968: jis0212<<14 | 0x48<<7 | 0x10, - 39409 - 19968: jis0208<<14 | 0x50<<7 | 0x30, - 39410 - 19968: jis0208<<14 | 0x50<<7 | 0x31, - 39412 - 19968: jis0212<<14 | 0x48<<7 | 0x11, - 39413 - 19968: jis0212<<14 | 0x48<<7 | 0x12, - 39416 - 19968: jis0208<<14 | 0x50<<7 | 0x33, - 39417 - 19968: jis0212<<14 | 0x48<<7 | 0x13, - 39419 - 19968: jis0208<<14 | 0x50<<7 | 0x32, - 39421 - 19968: jis0212<<14 | 0x48<<7 | 0x14, - 39422 - 19968: jis0212<<14 | 0x48<<7 | 0x15, - 39423 - 19968: jis0208<<14 | 0x1C<<7 | 0x38, - 39425 - 19968: jis0208<<14 | 0x50<<7 | 0x34, - 39426 - 19968: jis0212<<14 | 0x48<<7 | 0x16, - 39427 - 19968: jis0212<<14 | 0x48<<7 | 0x17, - 39428 - 19968: jis0212<<14 | 0x48<<7 | 0x18, - 39429 - 19968: jis0208<<14 | 0x50<<7 | 0x36, - 39435 - 19968: jis0212<<14 | 0x48<<7 | 0x19, - 39436 - 19968: jis0212<<14 | 0x48<<7 | 0x1A, - 39438 - 19968: jis0208<<14 | 0x14<<7 | 0x12, - 39439 - 19968: jis0208<<14 | 0x50<<7 | 0x35, - 39440 - 19968: jis0212<<14 | 0x48<<7 | 0x1B, - 39441 - 19968: jis0212<<14 | 0x48<<7 | 0x1C, - 39442 - 19968: jis0208<<14 | 0x20<<7 | 0x5A, - 39443 - 19968: jis0208<<14 | 0x17<<7 | 0x12, - 39446 - 19968: jis0212<<14 | 0x48<<7 | 0x1D, - 39449 - 19968: jis0208<<14 | 0x50<<7 | 0x38, - 39454 - 19968: jis0212<<14 | 0x48<<7 | 0x1E, - 39456 - 19968: jis0212<<14 | 0x48<<7 | 0x1F, - 39458 - 19968: jis0212<<14 | 0x48<<7 | 0x20, - 39459 - 19968: jis0212<<14 | 0x48<<7 | 0x21, - 39460 - 19968: jis0212<<14 | 0x48<<7 | 0x22, - 39463 - 19968: jis0212<<14 | 0x48<<7 | 0x23, - 39464 - 19968: jis0208<<14 | 0x21<<7 | 0x2C, - 39467 - 19968: jis0208<<14 | 0x50<<7 | 0x39, - 39469 - 19968: jis0212<<14 | 0x48<<7 | 0x24, - 39470 - 19968: jis0212<<14 | 0x48<<7 | 0x25, - 39472 - 19968: jis0208<<14 | 0x25<<7 | 0x0C, - 39475 - 19968: jis0212<<14 | 0x48<<7 | 0x26, - 39477 - 19968: jis0212<<14 | 0x48<<7 | 0x27, - 39478 - 19968: jis0212<<14 | 0x48<<7 | 0x28, - 39479 - 19968: jis0208<<14 | 0x50<<7 | 0x3A, - 39480 - 19968: jis0212<<14 | 0x48<<7 | 0x29, - 39486 - 19968: jis0208<<14 | 0x50<<7 | 0x3F, - 39488 - 19968: jis0208<<14 | 0x50<<7 | 0x3D, - 39489 - 19968: jis0212<<14 | 0x48<<7 | 0x2B, - 39490 - 19968: jis0208<<14 | 0x50<<7 | 0x3C, - 39491 - 19968: jis0208<<14 | 0x50<<7 | 0x3E, - 39492 - 19968: jis0212<<14 | 0x48<<7 | 0x2C, - 39493 - 19968: jis0208<<14 | 0x50<<7 | 0x3B, - 39495 - 19968: jis0212<<14 | 0x48<<7 | 0x2A, - 39498 - 19968: jis0212<<14 | 0x48<<7 | 0x2D, - 39499 - 19968: jis0212<<14 | 0x48<<7 | 0x2E, - 39500 - 19968: jis0212<<14 | 0x48<<7 | 0x2F, - 39501 - 19968: jis0208<<14 | 0x50<<7 | 0x41, - 39502 - 19968: jis0208<<14 | 0x5B<<7 | 0x40, - 39505 - 19968: jis0212<<14 | 0x48<<7 | 0x31, - 39508 - 19968: jis0212<<14 | 0x48<<7 | 0x32, - 39509 - 19968: jis0208<<14 | 0x50<<7 | 0x40, - 39510 - 19968: jis0212<<14 | 0x48<<7 | 0x33, - 39511 - 19968: jis0208<<14 | 0x50<<7 | 0x43, - 39514 - 19968: jis0208<<14 | 0x15<<7 | 0x22, - 39515 - 19968: jis0208<<14 | 0x50<<7 | 0x42, - 39517 - 19968: jis0212<<14 | 0x48<<7 | 0x34, - 39519 - 19968: jis0208<<14 | 0x50<<7 | 0x44, - 39522 - 19968: jis0208<<14 | 0x50<<7 | 0x45, - 39524 - 19968: jis0208<<14 | 0x50<<7 | 0x47, - 39525 - 19968: jis0208<<14 | 0x50<<7 | 0x46, - 39529 - 19968: jis0208<<14 | 0x50<<7 | 0x48, - 39530 - 19968: jis0208<<14 | 0x50<<7 | 0x4A, - 39531 - 19968: jis0208<<14 | 0x50<<7 | 0x49, - 39592 - 19968: jis0208<<14 | 0x18<<7 | 0x5B, - 39594 - 19968: jis0212<<14 | 0x48<<7 | 0x35, - 39596 - 19968: jis0212<<14 | 0x48<<7 | 0x36, - 39597 - 19968: jis0208<<14 | 0x50<<7 | 0x4B, - 39598 - 19968: jis0212<<14 | 0x48<<7 | 0x37, - 39599 - 19968: jis0212<<14 | 0x48<<7 | 0x38, - 39600 - 19968: jis0208<<14 | 0x50<<7 | 0x4C, - 39602 - 19968: jis0212<<14 | 0x48<<7 | 0x39, - 39604 - 19968: jis0212<<14 | 0x48<<7 | 0x3A, - 39605 - 19968: jis0212<<14 | 0x48<<7 | 0x3B, - 39606 - 19968: jis0212<<14 | 0x48<<7 | 0x3C, - 39608 - 19968: jis0208<<14 | 0x12<<7 | 0x1B, - 39609 - 19968: jis0212<<14 | 0x48<<7 | 0x3D, - 39611 - 19968: jis0212<<14 | 0x48<<7 | 0x3E, - 39612 - 19968: jis0208<<14 | 0x50<<7 | 0x4D, - 39614 - 19968: jis0212<<14 | 0x48<<7 | 0x3F, - 39615 - 19968: jis0212<<14 | 0x48<<7 | 0x40, - 39616 - 19968: jis0208<<14 | 0x50<<7 | 0x4E, - 39617 - 19968: jis0212<<14 | 0x48<<7 | 0x41, - 39619 - 19968: jis0212<<14 | 0x48<<7 | 0x42, - 39620 - 19968: jis0208<<14 | 0x1E<<7 | 0x50, - 39622 - 19968: jis0212<<14 | 0x48<<7 | 0x43, - 39624 - 19968: jis0212<<14 | 0x48<<7 | 0x44, - 39630 - 19968: jis0212<<14 | 0x48<<7 | 0x45, - 39631 - 19968: jis0208<<14 | 0x50<<7 | 0x4F, - 39632 - 19968: jis0212<<14 | 0x48<<7 | 0x46, - 39633 - 19968: jis0208<<14 | 0x50<<7 | 0x50, - 39634 - 19968: jis0212<<14 | 0x48<<7 | 0x47, - 39635 - 19968: jis0208<<14 | 0x50<<7 | 0x51, - 39636 - 19968: jis0208<<14 | 0x50<<7 | 0x52, - 39637 - 19968: jis0212<<14 | 0x48<<7 | 0x48, - 39638 - 19968: jis0212<<14 | 0x48<<7 | 0x49, - 39639 - 19968: jis0212<<14 | 0x48<<7 | 0x4A, - 39640 - 19968: jis0208<<14 | 0x18<<7 | 0x41, - 39641 - 19968: jis0208<<14 | 0x5B<<7 | 0x41, - 39643 - 19968: jis0212<<14 | 0x48<<7 | 0x4B, - 39644 - 19968: jis0208<<14 | 0x5B<<7 | 0x42, - 39646 - 19968: jis0208<<14 | 0x50<<7 | 0x53, - 39647 - 19968: jis0208<<14 | 0x50<<7 | 0x54, - 39648 - 19968: jis0212<<14 | 0x48<<7 | 0x4D, - 39650 - 19968: jis0208<<14 | 0x50<<7 | 0x55, - 39651 - 19968: jis0208<<14 | 0x50<<7 | 0x56, - 39652 - 19968: jis0212<<14 | 0x48<<7 | 0x4E, - 39653 - 19968: jis0212<<14 | 0x48<<7 | 0x4F, - 39654 - 19968: jis0208<<14 | 0x50<<7 | 0x57, - 39655 - 19968: jis0212<<14 | 0x48<<7 | 0x50, - 39657 - 19968: jis0212<<14 | 0x48<<7 | 0x51, - 39658 - 19968: jis0208<<14 | 0x27<<7 | 0x10, - 39659 - 19968: jis0208<<14 | 0x50<<7 | 0x59, - 39660 - 19968: jis0212<<14 | 0x48<<7 | 0x52, - 39661 - 19968: jis0208<<14 | 0x28<<7 | 0x05, - 39662 - 19968: jis0208<<14 | 0x50<<7 | 0x5A, - 39663 - 19968: jis0208<<14 | 0x50<<7 | 0x58, - 39665 - 19968: jis0208<<14 | 0x50<<7 | 0x5C, - 39666 - 19968: jis0212<<14 | 0x48<<7 | 0x53, - 39667 - 19968: jis0212<<14 | 0x48<<7 | 0x54, - 39668 - 19968: jis0208<<14 | 0x50<<7 | 0x5B, - 39669 - 19968: jis0212<<14 | 0x48<<7 | 0x55, - 39671 - 19968: jis0208<<14 | 0x50<<7 | 0x5D, - 39673 - 19968: jis0212<<14 | 0x48<<7 | 0x56, - 39674 - 19968: jis0212<<14 | 0x48<<7 | 0x57, - 39675 - 19968: jis0208<<14 | 0x51<<7 | 0x00, - 39677 - 19968: jis0212<<14 | 0x48<<7 | 0x58, - 39679 - 19968: jis0212<<14 | 0x48<<7 | 0x59, - 39680 - 19968: jis0212<<14 | 0x48<<7 | 0x5A, - 39681 - 19968: jis0212<<14 | 0x48<<7 | 0x5B, - 39682 - 19968: jis0212<<14 | 0x48<<7 | 0x5C, - 39683 - 19968: jis0212<<14 | 0x48<<7 | 0x5D, - 39684 - 19968: jis0212<<14 | 0x49<<7 | 0x00, - 39685 - 19968: jis0212<<14 | 0x49<<7 | 0x01, - 39686 - 19968: jis0208<<14 | 0x51<<7 | 0x01, - 39688 - 19968: jis0212<<14 | 0x49<<7 | 0x02, - 39689 - 19968: jis0212<<14 | 0x49<<7 | 0x03, - 39691 - 19968: jis0212<<14 | 0x49<<7 | 0x04, - 39692 - 19968: jis0212<<14 | 0x49<<7 | 0x05, - 39693 - 19968: jis0212<<14 | 0x49<<7 | 0x06, - 39694 - 19968: jis0212<<14 | 0x49<<7 | 0x07, - 39696 - 19968: jis0212<<14 | 0x49<<7 | 0x08, - 39698 - 19968: jis0212<<14 | 0x49<<7 | 0x09, - 39702 - 19968: jis0212<<14 | 0x49<<7 | 0x0A, - 39704 - 19968: jis0208<<14 | 0x51<<7 | 0x02, - 39705 - 19968: jis0212<<14 | 0x49<<7 | 0x0B, - 39706 - 19968: jis0208<<14 | 0x51<<7 | 0x03, - 39707 - 19968: jis0212<<14 | 0x49<<7 | 0x0C, - 39708 - 19968: jis0212<<14 | 0x49<<7 | 0x0D, - 39711 - 19968: jis0208<<14 | 0x51<<7 | 0x04, - 39712 - 19968: jis0212<<14 | 0x49<<7 | 0x0E, - 39714 - 19968: jis0208<<14 | 0x51<<7 | 0x05, - 39715 - 19968: jis0208<<14 | 0x51<<7 | 0x06, - 39717 - 19968: jis0208<<14 | 0x51<<7 | 0x07, - 39718 - 19968: jis0212<<14 | 0x49<<7 | 0x0F, - 39719 - 19968: jis0208<<14 | 0x51<<7 | 0x08, - 39720 - 19968: jis0208<<14 | 0x51<<7 | 0x09, - 39721 - 19968: jis0208<<14 | 0x51<<7 | 0x0A, - 39722 - 19968: jis0208<<14 | 0x51<<7 | 0x0B, - 39723 - 19968: jis0212<<14 | 0x49<<7 | 0x10, - 39725 - 19968: jis0212<<14 | 0x49<<7 | 0x11, - 39726 - 19968: jis0208<<14 | 0x51<<7 | 0x0C, - 39727 - 19968: jis0208<<14 | 0x51<<7 | 0x0D, - 39729 - 19968: jis0208<<14 | 0x3C<<7 | 0x14, - 39730 - 19968: jis0208<<14 | 0x51<<7 | 0x0E, - 39731 - 19968: jis0212<<14 | 0x49<<7 | 0x12, - 39732 - 19968: jis0212<<14 | 0x49<<7 | 0x13, - 39733 - 19968: jis0212<<14 | 0x49<<7 | 0x14, - 39735 - 19968: jis0212<<14 | 0x49<<7 | 0x15, - 39737 - 19968: jis0212<<14 | 0x49<<7 | 0x16, - 39738 - 19968: jis0212<<14 | 0x49<<7 | 0x17, - 39739 - 19968: jis0208<<14 | 0x43<<7 | 0x57, - 39740 - 19968: jis0208<<14 | 0x14<<7 | 0x13, - 39741 - 19968: jis0212<<14 | 0x49<<7 | 0x18, - 39745 - 19968: jis0208<<14 | 0x12<<7 | 0x00, - 39746 - 19968: jis0208<<14 | 0x19<<7 | 0x11, - 39747 - 19968: jis0208<<14 | 0x51<<7 | 0x10, - 39748 - 19968: jis0208<<14 | 0x51<<7 | 0x0F, - 39749 - 19968: jis0208<<14 | 0x2B<<7 | 0x04, - 39752 - 19968: jis0212<<14 | 0x49<<7 | 0x19, - 39755 - 19968: jis0212<<14 | 0x49<<7 | 0x1A, - 39756 - 19968: jis0212<<14 | 0x49<<7 | 0x1B, - 39757 - 19968: jis0208<<14 | 0x51<<7 | 0x12, - 39758 - 19968: jis0208<<14 | 0x51<<7 | 0x13, - 39759 - 19968: jis0208<<14 | 0x51<<7 | 0x11, - 39761 - 19968: jis0208<<14 | 0x51<<7 | 0x14, - 39764 - 19968: jis0208<<14 | 0x2A<<7 | 0x41, - 39765 - 19968: jis0212<<14 | 0x49<<7 | 0x1C, - 39766 - 19968: jis0212<<14 | 0x49<<7 | 0x1D, - 39767 - 19968: jis0212<<14 | 0x49<<7 | 0x1E, - 39768 - 19968: jis0208<<14 | 0x51<<7 | 0x15, - 39770 - 19968: jis0208<<14 | 0x14<<7 | 0x5A, - 39771 - 19968: jis0212<<14 | 0x49<<7 | 0x1F, - 39774 - 19968: jis0212<<14 | 0x49<<7 | 0x20, - 39777 - 19968: jis0212<<14 | 0x49<<7 | 0x21, - 39779 - 19968: jis0212<<14 | 0x49<<7 | 0x22, - 39781 - 19968: jis0212<<14 | 0x49<<7 | 0x23, - 39782 - 19968: jis0212<<14 | 0x49<<7 | 0x24, - 39784 - 19968: jis0212<<14 | 0x49<<7 | 0x25, - 39786 - 19968: jis0212<<14 | 0x49<<7 | 0x26, - 39787 - 19968: jis0212<<14 | 0x49<<7 | 0x27, - 39788 - 19968: jis0212<<14 | 0x49<<7 | 0x28, - 39789 - 19968: jis0212<<14 | 0x49<<7 | 0x29, - 39790 - 19968: jis0212<<14 | 0x49<<7 | 0x2A, - 39791 - 19968: jis0208<<14 | 0x2E<<7 | 0x04, - 39794 - 19968: jis0208<<14 | 0x5B<<7 | 0x44, - 39795 - 19968: jis0212<<14 | 0x49<<7 | 0x2B, - 39796 - 19968: jis0208<<14 | 0x51<<7 | 0x16, - 39797 - 19968: jis0208<<14 | 0x5B<<7 | 0x43, - 39799 - 19968: jis0212<<14 | 0x49<<7 | 0x2D, - 39800 - 19968: jis0212<<14 | 0x49<<7 | 0x2E, - 39801 - 19968: jis0212<<14 | 0x49<<7 | 0x2F, - 39807 - 19968: jis0212<<14 | 0x49<<7 | 0x30, - 39808 - 19968: jis0212<<14 | 0x49<<7 | 0x31, - 39811 - 19968: jis0208<<14 | 0x51<<7 | 0x18, - 39812 - 19968: jis0212<<14 | 0x49<<7 | 0x32, - 39813 - 19968: jis0212<<14 | 0x49<<7 | 0x33, - 39814 - 19968: jis0212<<14 | 0x49<<7 | 0x34, - 39815 - 19968: jis0212<<14 | 0x49<<7 | 0x35, - 39817 - 19968: jis0212<<14 | 0x49<<7 | 0x36, - 39818 - 19968: jis0212<<14 | 0x49<<7 | 0x37, - 39819 - 19968: jis0212<<14 | 0x49<<7 | 0x38, - 39821 - 19968: jis0212<<14 | 0x49<<7 | 0x39, - 39822 - 19968: jis0208<<14 | 0x0F<<7 | 0x1D, - 39823 - 19968: jis0208<<14 | 0x5B<<7 | 0x45, - 39824 - 19968: jis0212<<14 | 0x49<<7 | 0x3B, - 39825 - 19968: jis0208<<14 | 0x51<<7 | 0x19, - 39826 - 19968: jis0208<<14 | 0x29<<7 | 0x0A, - 39827 - 19968: jis0208<<14 | 0x51<<7 | 0x17, - 39828 - 19968: jis0212<<14 | 0x49<<7 | 0x3C, - 39830 - 19968: jis0208<<14 | 0x51<<7 | 0x1A, - 39831 - 19968: jis0208<<14 | 0x51<<7 | 0x1B, - 39834 - 19968: jis0212<<14 | 0x49<<7 | 0x3D, - 39837 - 19968: jis0212<<14 | 0x49<<7 | 0x3E, - 39838 - 19968: jis0212<<14 | 0x49<<7 | 0x3F, - 39839 - 19968: jis0208<<14 | 0x51<<7 | 0x1C, - 39840 - 19968: jis0208<<14 | 0x51<<7 | 0x1D, - 39846 - 19968: jis0212<<14 | 0x49<<7 | 0x40, - 39847 - 19968: jis0212<<14 | 0x49<<7 | 0x41, - 39848 - 19968: jis0208<<14 | 0x51<<7 | 0x1E, - 39849 - 19968: jis0212<<14 | 0x49<<7 | 0x42, - 39850 - 19968: jis0208<<14 | 0x2A<<7 | 0x4D, - 39851 - 19968: jis0208<<14 | 0x1A<<7 | 0x0C, - 39852 - 19968: jis0212<<14 | 0x49<<7 | 0x43, - 39853 - 19968: jis0208<<14 | 0x19<<7 | 0x59, - 39854 - 19968: jis0208<<14 | 0x20<<7 | 0x0E, - 39856 - 19968: jis0212<<14 | 0x49<<7 | 0x44, - 39857 - 19968: jis0208<<14 | 0x5B<<7 | 0x46, - 39858 - 19968: jis0212<<14 | 0x49<<7 | 0x46, - 39860 - 19968: jis0208<<14 | 0x51<<7 | 0x1F, - 39863 - 19968: jis0212<<14 | 0x49<<7 | 0x47, - 39864 - 19968: jis0212<<14 | 0x49<<7 | 0x48, - 39865 - 19968: jis0208<<14 | 0x51<<7 | 0x22, - 39867 - 19968: jis0208<<14 | 0x5B<<7 | 0x47, - 39868 - 19968: jis0212<<14 | 0x49<<7 | 0x4A, - 39870 - 19968: jis0212<<14 | 0x49<<7 | 0x4B, - 39871 - 19968: jis0212<<14 | 0x49<<7 | 0x4C, - 39872 - 19968: jis0208<<14 | 0x51<<7 | 0x20, - 39873 - 19968: jis0212<<14 | 0x49<<7 | 0x4D, - 39878 - 19968: jis0208<<14 | 0x51<<7 | 0x23, - 39879 - 19968: jis0212<<14 | 0x49<<7 | 0x4E, - 39880 - 19968: jis0212<<14 | 0x49<<7 | 0x4F, - 39881 - 19968: jis0208<<14 | 0x17<<7 | 0x50, - 39882 - 19968: jis0208<<14 | 0x51<<7 | 0x21, - 39886 - 19968: jis0212<<14 | 0x49<<7 | 0x50, - 39887 - 19968: jis0208<<14 | 0x51<<7 | 0x24, - 39888 - 19968: jis0212<<14 | 0x49<<7 | 0x51, - 39889 - 19968: jis0208<<14 | 0x51<<7 | 0x25, - 39890 - 19968: jis0208<<14 | 0x51<<7 | 0x26, - 39892 - 19968: jis0208<<14 | 0x51<<7 | 0x2A, - 39894 - 19968: jis0208<<14 | 0x1A<<7 | 0x09, - 39895 - 19968: jis0212<<14 | 0x49<<7 | 0x52, - 39896 - 19968: jis0212<<14 | 0x49<<7 | 0x53, - 39899 - 19968: jis0208<<14 | 0x21<<7 | 0x43, - 39901 - 19968: jis0212<<14 | 0x49<<7 | 0x54, - 39903 - 19968: jis0212<<14 | 0x49<<7 | 0x55, - 39905 - 19968: jis0208<<14 | 0x51<<7 | 0x2B, - 39906 - 19968: jis0208<<14 | 0x51<<7 | 0x28, - 39907 - 19968: jis0208<<14 | 0x51<<7 | 0x27, - 39908 - 19968: jis0208<<14 | 0x51<<7 | 0x29, - 39909 - 19968: jis0212<<14 | 0x49<<7 | 0x56, - 39911 - 19968: jis0212<<14 | 0x49<<7 | 0x57, - 39912 - 19968: jis0208<<14 | 0x16<<7 | 0x3E, - 39914 - 19968: jis0212<<14 | 0x49<<7 | 0x58, - 39915 - 19968: jis0212<<14 | 0x49<<7 | 0x59, - 39919 - 19968: jis0212<<14 | 0x49<<7 | 0x5A, - 39920 - 19968: jis0208<<14 | 0x51<<7 | 0x2F, - 39921 - 19968: jis0208<<14 | 0x51<<7 | 0x2E, - 39922 - 19968: jis0208<<14 | 0x51<<7 | 0x2D, - 39923 - 19968: jis0212<<14 | 0x49<<7 | 0x5B, - 39925 - 19968: jis0208<<14 | 0x0F<<7 | 0x12, - 39927 - 19968: jis0212<<14 | 0x49<<7 | 0x5C, - 39928 - 19968: jis0212<<14 | 0x49<<7 | 0x5D, - 39929 - 19968: jis0212<<14 | 0x4A<<7 | 0x00, - 39930 - 19968: jis0212<<14 | 0x4A<<7 | 0x01, - 39933 - 19968: jis0212<<14 | 0x4A<<7 | 0x02, - 39935 - 19968: jis0212<<14 | 0x4A<<7 | 0x03, - 39936 - 19968: jis0208<<14 | 0x5B<<7 | 0x48, - 39938 - 19968: jis0212<<14 | 0x4A<<7 | 0x05, - 39940 - 19968: jis0208<<14 | 0x51<<7 | 0x39, - 39942 - 19968: jis0208<<14 | 0x51<<7 | 0x35, - 39944 - 19968: jis0208<<14 | 0x51<<7 | 0x36, - 39945 - 19968: jis0208<<14 | 0x51<<7 | 0x32, - 39946 - 19968: jis0208<<14 | 0x51<<7 | 0x38, - 39947 - 19968: jis0212<<14 | 0x4A<<7 | 0x06, - 39948 - 19968: jis0208<<14 | 0x51<<7 | 0x34, - 39949 - 19968: jis0208<<14 | 0x12<<7 | 0x41, - 39951 - 19968: jis0212<<14 | 0x4A<<7 | 0x07, - 39952 - 19968: jis0208<<14 | 0x2E<<7 | 0x2B, - 39953 - 19968: jis0212<<14 | 0x4A<<7 | 0x08, - 39954 - 19968: jis0208<<14 | 0x51<<7 | 0x37, - 39955 - 19968: jis0208<<14 | 0x51<<7 | 0x33, - 39956 - 19968: jis0208<<14 | 0x51<<7 | 0x31, - 39957 - 19968: jis0208<<14 | 0x51<<7 | 0x30, - 39958 - 19968: jis0212<<14 | 0x4A<<7 | 0x09, - 39960 - 19968: jis0212<<14 | 0x4A<<7 | 0x0A, - 39961 - 19968: jis0212<<14 | 0x4A<<7 | 0x0B, - 39962 - 19968: jis0212<<14 | 0x4A<<7 | 0x0C, - 39963 - 19968: jis0208<<14 | 0x51<<7 | 0x3B, - 39964 - 19968: jis0212<<14 | 0x4A<<7 | 0x0D, - 39966 - 19968: jis0212<<14 | 0x4A<<7 | 0x0E, - 39969 - 19968: jis0208<<14 | 0x51<<7 | 0x3E, - 39970 - 19968: jis0212<<14 | 0x4A<<7 | 0x0F, - 39971 - 19968: jis0212<<14 | 0x4A<<7 | 0x10, - 39972 - 19968: jis0208<<14 | 0x51<<7 | 0x3D, - 39973 - 19968: jis0208<<14 | 0x51<<7 | 0x3C, - 39974 - 19968: jis0212<<14 | 0x4A<<7 | 0x11, - 39975 - 19968: jis0212<<14 | 0x4A<<7 | 0x12, - 39976 - 19968: jis0212<<14 | 0x4A<<7 | 0x13, - 39977 - 19968: jis0212<<14 | 0x4A<<7 | 0x14, - 39978 - 19968: jis0212<<14 | 0x4A<<7 | 0x15, - 39981 - 19968: jis0208<<14 | 0x28<<7 | 0x28, - 39982 - 19968: jis0208<<14 | 0x51<<7 | 0x3A, - 39983 - 19968: jis0208<<14 | 0x0F<<7 | 0x52, - 39984 - 19968: jis0208<<14 | 0x51<<7 | 0x3F, - 39985 - 19968: jis0212<<14 | 0x4A<<7 | 0x16, - 39986 - 19968: jis0208<<14 | 0x51<<7 | 0x41, - 39989 - 19968: jis0212<<14 | 0x4A<<7 | 0x17, - 39990 - 19968: jis0212<<14 | 0x4A<<7 | 0x18, - 39991 - 19968: jis0212<<14 | 0x4A<<7 | 0x19, - 39993 - 19968: jis0208<<14 | 0x12<<7 | 0x4E, - 39994 - 19968: jis0208<<14 | 0x51<<7 | 0x2C, - 39995 - 19968: jis0208<<14 | 0x10<<7 | 0x16, - 39997 - 19968: jis0212<<14 | 0x4A<<7 | 0x1A, - 39998 - 19968: jis0208<<14 | 0x51<<7 | 0x43, - 40001 - 19968: jis0212<<14 | 0x4A<<7 | 0x1B, - 40003 - 19968: jis0212<<14 | 0x4A<<7 | 0x1C, - 40004 - 19968: jis0212<<14 | 0x4A<<7 | 0x1D, - 40005 - 19968: jis0212<<14 | 0x4A<<7 | 0x1E, - 40006 - 19968: jis0208<<14 | 0x51<<7 | 0x42, - 40007 - 19968: jis0208<<14 | 0x51<<7 | 0x40, - 40008 - 19968: jis0208<<14 | 0x22<<7 | 0x0C, - 40009 - 19968: jis0212<<14 | 0x4A<<7 | 0x1F, - 40010 - 19968: jis0212<<14 | 0x4A<<7 | 0x20, - 40014 - 19968: jis0212<<14 | 0x4A<<7 | 0x21, - 40015 - 19968: jis0212<<14 | 0x4A<<7 | 0x22, - 40016 - 19968: jis0212<<14 | 0x4A<<7 | 0x23, - 40018 - 19968: jis0208<<14 | 0x2A<<7 | 0x4F, - 40019 - 19968: jis0212<<14 | 0x4A<<7 | 0x24, - 40020 - 19968: jis0212<<14 | 0x4A<<7 | 0x25, - 40022 - 19968: jis0212<<14 | 0x4A<<7 | 0x26, - 40023 - 19968: jis0208<<14 | 0x2D<<7 | 0x39, - 40024 - 19968: jis0212<<14 | 0x4A<<7 | 0x27, - 40026 - 19968: jis0208<<14 | 0x51<<7 | 0x44, - 40027 - 19968: jis0212<<14 | 0x4A<<7 | 0x28, - 40028 - 19968: jis0212<<14 | 0x4A<<7 | 0x2F, - 40029 - 19968: jis0212<<14 | 0x4A<<7 | 0x29, - 40030 - 19968: jis0212<<14 | 0x4A<<7 | 0x2A, - 40031 - 19968: jis0212<<14 | 0x4A<<7 | 0x2B, - 40032 - 19968: jis0208<<14 | 0x51<<7 | 0x45, - 40035 - 19968: jis0212<<14 | 0x4A<<7 | 0x2C, - 40039 - 19968: jis0208<<14 | 0x51<<7 | 0x46, - 40040 - 19968: jis0212<<14 | 0x4A<<7 | 0x31, - 40041 - 19968: jis0212<<14 | 0x4A<<7 | 0x2D, - 40042 - 19968: jis0212<<14 | 0x4A<<7 | 0x2E, - 40043 - 19968: jis0212<<14 | 0x4A<<7 | 0x30, - 40046 - 19968: jis0212<<14 | 0x4A<<7 | 0x32, - 40048 - 19968: jis0212<<14 | 0x4A<<7 | 0x33, - 40050 - 19968: jis0212<<14 | 0x4A<<7 | 0x34, - 40053 - 19968: jis0212<<14 | 0x4A<<7 | 0x35, - 40054 - 19968: jis0208<<14 | 0x51<<7 | 0x47, - 40055 - 19968: jis0212<<14 | 0x4A<<7 | 0x36, - 40056 - 19968: jis0208<<14 | 0x51<<7 | 0x48, - 40059 - 19968: jis0212<<14 | 0x4A<<7 | 0x37, - 40165 - 19968: jis0208<<14 | 0x23<<7 | 0x1A, - 40166 - 19968: jis0212<<14 | 0x4A<<7 | 0x38, - 40167 - 19968: jis0208<<14 | 0x51<<7 | 0x49, - 40169 - 19968: jis0208<<14 | 0x27<<7 | 0x16, - 40171 - 19968: jis0208<<14 | 0x51<<7 | 0x4E, - 40172 - 19968: jis0208<<14 | 0x51<<7 | 0x4A, - 40176 - 19968: jis0208<<14 | 0x51<<7 | 0x4B, - 40178 - 19968: jis0212<<14 | 0x4A<<7 | 0x39, - 40179 - 19968: jis0208<<14 | 0x2A<<7 | 0x10, - 40180 - 19968: jis0208<<14 | 0x2B<<7 | 0x23, - 40182 - 19968: jis0208<<14 | 0x25<<7 | 0x2F, - 40183 - 19968: jis0212<<14 | 0x4A<<7 | 0x3A, - 40185 - 19968: jis0212<<14 | 0x4A<<7 | 0x3B, - 40194 - 19968: jis0212<<14 | 0x4A<<7 | 0x3D, - 40195 - 19968: jis0208<<14 | 0x51<<7 | 0x4F, - 40198 - 19968: jis0208<<14 | 0x51<<7 | 0x50, - 40199 - 19968: jis0208<<14 | 0x25<<7 | 0x1D, - 40200 - 19968: jis0208<<14 | 0x51<<7 | 0x4D, - 40201 - 19968: jis0208<<14 | 0x51<<7 | 0x4C, - 40203 - 19968: jis0212<<14 | 0x4A<<7 | 0x3C, - 40206 - 19968: jis0208<<14 | 0x11<<7 | 0x09, - 40209 - 19968: jis0212<<14 | 0x4A<<7 | 0x3E, - 40210 - 19968: jis0208<<14 | 0x51<<7 | 0x58, - 40213 - 19968: jis0208<<14 | 0x51<<7 | 0x57, - 40215 - 19968: jis0212<<14 | 0x4A<<7 | 0x3F, - 40216 - 19968: jis0212<<14 | 0x4A<<7 | 0x40, - 40219 - 19968: jis0208<<14 | 0x10<<7 | 0x54, - 40220 - 19968: jis0212<<14 | 0x4A<<7 | 0x41, - 40221 - 19968: jis0212<<14 | 0x4A<<7 | 0x42, - 40222 - 19968: jis0212<<14 | 0x4A<<7 | 0x43, - 40223 - 19968: jis0208<<14 | 0x51<<7 | 0x55, - 40227 - 19968: jis0208<<14 | 0x51<<7 | 0x54, - 40230 - 19968: jis0208<<14 | 0x51<<7 | 0x52, - 40232 - 19968: jis0208<<14 | 0x12<<7 | 0x5A, - 40234 - 19968: jis0208<<14 | 0x51<<7 | 0x51, - 40235 - 19968: jis0208<<14 | 0x1B<<7 | 0x11, - 40236 - 19968: jis0208<<14 | 0x11<<7 | 0x08, - 40239 - 19968: jis0212<<14 | 0x4A<<7 | 0x44, - 40240 - 19968: jis0212<<14 | 0x4A<<7 | 0x45, - 40242 - 19968: jis0212<<14 | 0x4A<<7 | 0x46, - 40243 - 19968: jis0212<<14 | 0x4A<<7 | 0x47, - 40244 - 19968: jis0212<<14 | 0x4A<<7 | 0x48, - 40250 - 19968: jis0212<<14 | 0x4A<<7 | 0x49, - 40251 - 19968: jis0208<<14 | 0x18<<7 | 0x42, - 40252 - 19968: jis0212<<14 | 0x4A<<7 | 0x4A, - 40253 - 19968: jis0212<<14 | 0x4A<<7 | 0x4C, - 40254 - 19968: jis0208<<14 | 0x51<<7 | 0x5B, - 40255 - 19968: jis0208<<14 | 0x51<<7 | 0x5A, - 40257 - 19968: jis0208<<14 | 0x51<<7 | 0x59, - 40258 - 19968: jis0212<<14 | 0x4A<<7 | 0x4D, - 40259 - 19968: jis0212<<14 | 0x4A<<7 | 0x4E, - 40260 - 19968: jis0208<<14 | 0x51<<7 | 0x56, - 40261 - 19968: jis0212<<14 | 0x4A<<7 | 0x4B, - 40262 - 19968: jis0208<<14 | 0x51<<7 | 0x5C, - 40263 - 19968: jis0212<<14 | 0x4A<<7 | 0x4F, - 40264 - 19968: jis0208<<14 | 0x51<<7 | 0x5D, - 40266 - 19968: jis0212<<14 | 0x4A<<7 | 0x50, - 40272 - 19968: jis0208<<14 | 0x52<<7 | 0x04, - 40273 - 19968: jis0208<<14 | 0x52<<7 | 0x03, - 40275 - 19968: jis0212<<14 | 0x4A<<7 | 0x51, - 40276 - 19968: jis0212<<14 | 0x4A<<7 | 0x52, - 40281 - 19968: jis0208<<14 | 0x52<<7 | 0x05, - 40284 - 19968: jis0208<<14 | 0x10<<7 | 0x0C, - 40285 - 19968: jis0208<<14 | 0x52<<7 | 0x00, - 40286 - 19968: jis0208<<14 | 0x52<<7 | 0x01, - 40287 - 19968: jis0212<<14 | 0x4A<<7 | 0x53, - 40288 - 19968: jis0208<<14 | 0x18<<7 | 0x53, - 40289 - 19968: jis0208<<14 | 0x2B<<7 | 0x18, - 40290 - 19968: jis0212<<14 | 0x4A<<7 | 0x55, - 40291 - 19968: jis0212<<14 | 0x4A<<7 | 0x54, - 40292 - 19968: jis0208<<14 | 0x52<<7 | 0x02, - 40293 - 19968: jis0212<<14 | 0x4A<<7 | 0x56, - 40297 - 19968: jis0212<<14 | 0x4A<<7 | 0x57, - 40298 - 19968: jis0212<<14 | 0x4A<<7 | 0x58, - 40299 - 19968: jis0208<<14 | 0x5B<<7 | 0x4A, - 40300 - 19968: jis0208<<14 | 0x2A<<7 | 0x11, - 40303 - 19968: jis0208<<14 | 0x52<<7 | 0x0A, - 40304 - 19968: jis0208<<14 | 0x5B<<7 | 0x49, - 40306 - 19968: jis0208<<14 | 0x52<<7 | 0x06, - 40310 - 19968: jis0212<<14 | 0x4A<<7 | 0x5B, - 40311 - 19968: jis0212<<14 | 0x4A<<7 | 0x5C, - 40314 - 19968: jis0208<<14 | 0x52<<7 | 0x0B, - 40315 - 19968: jis0212<<14 | 0x4A<<7 | 0x5D, - 40316 - 19968: jis0212<<14 | 0x4B<<7 | 0x00, - 40318 - 19968: jis0212<<14 | 0x4B<<7 | 0x01, - 40323 - 19968: jis0212<<14 | 0x4B<<7 | 0x02, - 40324 - 19968: jis0212<<14 | 0x4B<<7 | 0x03, - 40326 - 19968: jis0212<<14 | 0x4B<<7 | 0x04, - 40327 - 19968: jis0208<<14 | 0x52<<7 | 0x08, - 40329 - 19968: jis0208<<14 | 0x52<<7 | 0x07, - 40330 - 19968: jis0212<<14 | 0x4B<<7 | 0x05, - 40333 - 19968: jis0212<<14 | 0x4B<<7 | 0x06, - 40334 - 19968: jis0212<<14 | 0x4B<<7 | 0x07, - 40335 - 19968: jis0208<<14 | 0x16<<7 | 0x3B, - 40338 - 19968: jis0212<<14 | 0x4B<<7 | 0x08, - 40339 - 19968: jis0212<<14 | 0x4B<<7 | 0x09, - 40341 - 19968: jis0212<<14 | 0x4B<<7 | 0x0A, - 40342 - 19968: jis0212<<14 | 0x4B<<7 | 0x0B, - 40343 - 19968: jis0212<<14 | 0x4B<<7 | 0x0C, - 40344 - 19968: jis0212<<14 | 0x4B<<7 | 0x0D, - 40346 - 19968: jis0208<<14 | 0x52<<7 | 0x0C, - 40353 - 19968: jis0212<<14 | 0x4B<<7 | 0x0E, - 40356 - 19968: jis0208<<14 | 0x52<<7 | 0x0D, - 40361 - 19968: jis0208<<14 | 0x52<<7 | 0x0E, - 40362 - 19968: jis0212<<14 | 0x4B<<7 | 0x0F, - 40363 - 19968: jis0208<<14 | 0x52<<7 | 0x09, - 40364 - 19968: jis0212<<14 | 0x4B<<7 | 0x10, - 40366 - 19968: jis0212<<14 | 0x4B<<7 | 0x11, - 40367 - 19968: jis0208<<14 | 0x51<<7 | 0x53, - 40369 - 19968: jis0212<<14 | 0x4B<<7 | 0x12, - 40370 - 19968: jis0208<<14 | 0x52<<7 | 0x0F, - 40372 - 19968: jis0208<<14 | 0x23<<7 | 0x40, - 40373 - 19968: jis0212<<14 | 0x4B<<7 | 0x13, - 40376 - 19968: jis0208<<14 | 0x52<<7 | 0x13, - 40377 - 19968: jis0212<<14 | 0x4B<<7 | 0x14, - 40378 - 19968: jis0208<<14 | 0x52<<7 | 0x14, - 40379 - 19968: jis0208<<14 | 0x52<<7 | 0x12, - 40380 - 19968: jis0212<<14 | 0x4B<<7 | 0x15, - 40383 - 19968: jis0212<<14 | 0x4B<<7 | 0x16, - 40385 - 19968: jis0208<<14 | 0x52<<7 | 0x11, - 40386 - 19968: jis0208<<14 | 0x52<<7 | 0x17, - 40387 - 19968: jis0212<<14 | 0x4B<<7 | 0x17, - 40388 - 19968: jis0208<<14 | 0x52<<7 | 0x10, - 40390 - 19968: jis0208<<14 | 0x52<<7 | 0x15, - 40391 - 19968: jis0212<<14 | 0x4B<<7 | 0x18, - 40393 - 19968: jis0212<<14 | 0x4B<<7 | 0x19, - 40394 - 19968: jis0212<<14 | 0x4B<<7 | 0x1A, - 40399 - 19968: jis0208<<14 | 0x52<<7 | 0x16, - 40403 - 19968: jis0208<<14 | 0x52<<7 | 0x19, - 40404 - 19968: jis0212<<14 | 0x4B<<7 | 0x1B, - 40405 - 19968: jis0212<<14 | 0x4B<<7 | 0x1C, - 40406 - 19968: jis0212<<14 | 0x4B<<7 | 0x1D, - 40407 - 19968: jis0212<<14 | 0x4B<<7 | 0x1E, - 40409 - 19968: jis0208<<14 | 0x52<<7 | 0x18, - 40410 - 19968: jis0212<<14 | 0x4B<<7 | 0x1F, - 40414 - 19968: jis0212<<14 | 0x4B<<7 | 0x20, - 40415 - 19968: jis0212<<14 | 0x4B<<7 | 0x21, - 40416 - 19968: jis0212<<14 | 0x4B<<7 | 0x22, - 40421 - 19968: jis0212<<14 | 0x4B<<7 | 0x23, - 40422 - 19968: jis0208<<14 | 0x52<<7 | 0x1B, - 40423 - 19968: jis0212<<14 | 0x4B<<7 | 0x24, - 40425 - 19968: jis0212<<14 | 0x4B<<7 | 0x25, - 40427 - 19968: jis0212<<14 | 0x4B<<7 | 0x26, - 40429 - 19968: jis0208<<14 | 0x52<<7 | 0x1C, - 40430 - 19968: jis0212<<14 | 0x4B<<7 | 0x27, - 40431 - 19968: jis0208<<14 | 0x52<<7 | 0x1D, - 40432 - 19968: jis0212<<14 | 0x4B<<7 | 0x28, - 40434 - 19968: jis0208<<14 | 0x2E<<7 | 0x28, - 40435 - 19968: jis0212<<14 | 0x4B<<7 | 0x29, - 40436 - 19968: jis0212<<14 | 0x4B<<7 | 0x2A, - 40440 - 19968: jis0208<<14 | 0x52<<7 | 0x1A, - 40441 - 19968: jis0208<<14 | 0x21<<7 | 0x4A, - 40442 - 19968: jis0208<<14 | 0x19<<7 | 0x4C, - 40445 - 19968: jis0208<<14 | 0x52<<7 | 0x1E, - 40446 - 19968: jis0212<<14 | 0x4B<<7 | 0x2B, - 40450 - 19968: jis0212<<14 | 0x4B<<7 | 0x2D, - 40455 - 19968: jis0212<<14 | 0x4B<<7 | 0x2E, - 40458 - 19968: jis0212<<14 | 0x4B<<7 | 0x2C, - 40462 - 19968: jis0212<<14 | 0x4B<<7 | 0x2F, - 40464 - 19968: jis0212<<14 | 0x4B<<7 | 0x30, - 40465 - 19968: jis0212<<14 | 0x4B<<7 | 0x31, - 40466 - 19968: jis0212<<14 | 0x4B<<7 | 0x32, - 40469 - 19968: jis0212<<14 | 0x4B<<7 | 0x33, - 40470 - 19968: jis0212<<14 | 0x4B<<7 | 0x34, - 40473 - 19968: jis0208<<14 | 0x5B<<7 | 0x4C, - 40474 - 19968: jis0208<<14 | 0x52<<7 | 0x1F, - 40475 - 19968: jis0208<<14 | 0x52<<7 | 0x20, - 40476 - 19968: jis0212<<14 | 0x4B<<7 | 0x36, - 40477 - 19968: jis0212<<14 | 0x4B<<7 | 0x37, - 40478 - 19968: jis0208<<14 | 0x52<<7 | 0x21, - 40565 - 19968: jis0208<<14 | 0x52<<7 | 0x22, - 40568 - 19968: jis0208<<14 | 0x17<<7 | 0x13, - 40569 - 19968: jis0208<<14 | 0x52<<7 | 0x23, - 40570 - 19968: jis0212<<14 | 0x4B<<7 | 0x38, - 40571 - 19968: jis0212<<14 | 0x4B<<7 | 0x39, - 40572 - 19968: jis0212<<14 | 0x4B<<7 | 0x3A, - 40573 - 19968: jis0208<<14 | 0x52<<7 | 0x24, - 40575 - 19968: jis0208<<14 | 0x1B<<7 | 0x0E, - 40576 - 19968: jis0212<<14 | 0x4B<<7 | 0x3B, - 40577 - 19968: jis0208<<14 | 0x52<<7 | 0x25, - 40578 - 19968: jis0212<<14 | 0x4B<<7 | 0x3C, - 40579 - 19968: jis0212<<14 | 0x4B<<7 | 0x3D, - 40580 - 19968: jis0212<<14 | 0x4B<<7 | 0x3E, - 40581 - 19968: jis0212<<14 | 0x4B<<7 | 0x3F, - 40583 - 19968: jis0212<<14 | 0x4B<<7 | 0x40, - 40584 - 19968: jis0208<<14 | 0x52<<7 | 0x26, - 40587 - 19968: jis0208<<14 | 0x52<<7 | 0x27, - 40588 - 19968: jis0208<<14 | 0x52<<7 | 0x28, - 40590 - 19968: jis0212<<14 | 0x4B<<7 | 0x41, - 40591 - 19968: jis0212<<14 | 0x4B<<7 | 0x42, - 40593 - 19968: jis0208<<14 | 0x52<<7 | 0x2B, - 40594 - 19968: jis0208<<14 | 0x52<<7 | 0x29, - 40595 - 19968: jis0208<<14 | 0x2E<<7 | 0x1B, - 40597 - 19968: jis0208<<14 | 0x52<<7 | 0x2A, - 40598 - 19968: jis0212<<14 | 0x4B<<7 | 0x43, - 40599 - 19968: jis0208<<14 | 0x2D<<7 | 0x4E, - 40600 - 19968: jis0212<<14 | 0x4B<<7 | 0x44, - 40603 - 19968: jis0212<<14 | 0x4B<<7 | 0x45, - 40605 - 19968: jis0208<<14 | 0x52<<7 | 0x2C, - 40606 - 19968: jis0212<<14 | 0x4B<<7 | 0x46, - 40607 - 19968: jis0208<<14 | 0x2D<<7 | 0x3A, - 40612 - 19968: jis0212<<14 | 0x4B<<7 | 0x47, - 40613 - 19968: jis0208<<14 | 0x52<<7 | 0x2D, - 40614 - 19968: jis0208<<14 | 0x26<<7 | 0x5D, - 40616 - 19968: jis0212<<14 | 0x4B<<7 | 0x48, - 40617 - 19968: jis0208<<14 | 0x52<<7 | 0x2E, - 40618 - 19968: jis0208<<14 | 0x52<<7 | 0x30, - 40620 - 19968: jis0212<<14 | 0x4B<<7 | 0x49, - 40621 - 19968: jis0208<<14 | 0x52<<7 | 0x31, - 40622 - 19968: jis0212<<14 | 0x4B<<7 | 0x4A, - 40623 - 19968: jis0212<<14 | 0x4B<<7 | 0x4B, - 40624 - 19968: jis0212<<14 | 0x4B<<7 | 0x4C, - 40627 - 19968: jis0212<<14 | 0x4B<<7 | 0x4D, - 40628 - 19968: jis0212<<14 | 0x4B<<7 | 0x4E, - 40629 - 19968: jis0212<<14 | 0x4B<<7 | 0x4F, - 40632 - 19968: jis0208<<14 | 0x52<<7 | 0x2F, - 40633 - 19968: jis0208<<14 | 0x18<<7 | 0x4C, - 40634 - 19968: jis0208<<14 | 0x2B<<7 | 0x2C, - 40635 - 19968: jis0208<<14 | 0x2A<<7 | 0x42, - 40636 - 19968: jis0208<<14 | 0x35<<7 | 0x56, - 40638 - 19968: jis0208<<14 | 0x3C<<7 | 0x3F, - 40639 - 19968: jis0208<<14 | 0x2A<<7 | 0x5A, - 40644 - 19968: jis0208<<14 | 0x11<<7 | 0x0A, - 40646 - 19968: jis0212<<14 | 0x4B<<7 | 0x50, - 40648 - 19968: jis0212<<14 | 0x4B<<7 | 0x51, - 40651 - 19968: jis0212<<14 | 0x4B<<7 | 0x52, - 40652 - 19968: jis0208<<14 | 0x52<<7 | 0x33, - 40653 - 19968: jis0208<<14 | 0x14<<7 | 0x2F, - 40654 - 19968: jis0208<<14 | 0x52<<7 | 0x34, - 40655 - 19968: jis0208<<14 | 0x52<<7 | 0x35, - 40656 - 19968: jis0208<<14 | 0x52<<7 | 0x36, - 40657 - 19968: jis0208<<14 | 0x5B<<7 | 0x4D, - 40658 - 19968: jis0208<<14 | 0x18<<7 | 0x54, - 40660 - 19968: jis0208<<14 | 0x52<<7 | 0x37, - 40661 - 19968: jis0212<<14 | 0x4B<<7 | 0x53, - 40664 - 19968: jis0208<<14 | 0x3F<<7 | 0x33, - 40665 - 19968: jis0208<<14 | 0x2B<<7 | 0x3A, - 40667 - 19968: jis0208<<14 | 0x21<<7 | 0x42, - 40668 - 19968: jis0208<<14 | 0x52<<7 | 0x38, - 40669 - 19968: jis0208<<14 | 0x52<<7 | 0x3A, - 40670 - 19968: jis0208<<14 | 0x52<<7 | 0x39, - 40671 - 19968: jis0212<<14 | 0x4B<<7 | 0x54, - 40672 - 19968: jis0208<<14 | 0x52<<7 | 0x3B, - 40676 - 19968: jis0212<<14 | 0x4B<<7 | 0x55, - 40677 - 19968: jis0208<<14 | 0x52<<7 | 0x3C, - 40679 - 19968: jis0212<<14 | 0x4B<<7 | 0x56, - 40680 - 19968: jis0208<<14 | 0x52<<7 | 0x3D, - 40684 - 19968: jis0212<<14 | 0x4B<<7 | 0x57, - 40685 - 19968: jis0212<<14 | 0x4B<<7 | 0x58, - 40686 - 19968: jis0212<<14 | 0x4B<<7 | 0x59, - 40687 - 19968: jis0208<<14 | 0x52<<7 | 0x3E, - 40688 - 19968: jis0212<<14 | 0x4B<<7 | 0x5A, - 40689 - 19968: jis0212<<14 | 0x4B<<7 | 0x5B, - 40690 - 19968: jis0212<<14 | 0x4B<<7 | 0x5C, - 40692 - 19968: jis0208<<14 | 0x52<<7 | 0x3F, - 40693 - 19968: jis0212<<14 | 0x4B<<7 | 0x5D, - 40694 - 19968: jis0208<<14 | 0x52<<7 | 0x40, - 40695 - 19968: jis0208<<14 | 0x52<<7 | 0x41, - 40696 - 19968: jis0212<<14 | 0x4C<<7 | 0x00, - 40697 - 19968: jis0208<<14 | 0x52<<7 | 0x42, - 40699 - 19968: jis0208<<14 | 0x52<<7 | 0x43, - 40700 - 19968: jis0208<<14 | 0x52<<7 | 0x44, - 40701 - 19968: jis0208<<14 | 0x52<<7 | 0x45, - 40703 - 19968: jis0212<<14 | 0x4C<<7 | 0x01, - 40706 - 19968: jis0212<<14 | 0x4C<<7 | 0x02, - 40707 - 19968: jis0212<<14 | 0x4C<<7 | 0x03, - 40711 - 19968: jis0208<<14 | 0x52<<7 | 0x46, - 40712 - 19968: jis0208<<14 | 0x52<<7 | 0x47, - 40713 - 19968: jis0212<<14 | 0x4C<<7 | 0x04, - 40718 - 19968: jis0208<<14 | 0x24<<7 | 0x03, - 40719 - 19968: jis0212<<14 | 0x4C<<7 | 0x05, - 40720 - 19968: jis0212<<14 | 0x4C<<7 | 0x06, - 40721 - 19968: jis0212<<14 | 0x4C<<7 | 0x07, - 40722 - 19968: jis0212<<14 | 0x4C<<7 | 0x08, - 40723 - 19968: jis0208<<14 | 0x17<<7 | 0x3C, - 40724 - 19968: jis0212<<14 | 0x4C<<7 | 0x09, - 40725 - 19968: jis0208<<14 | 0x52<<7 | 0x49, - 40726 - 19968: jis0212<<14 | 0x4C<<7 | 0x0A, - 40727 - 19968: jis0212<<14 | 0x4C<<7 | 0x0B, - 40729 - 19968: jis0212<<14 | 0x4C<<7 | 0x0C, - 40730 - 19968: jis0212<<14 | 0x4C<<7 | 0x0D, - 40731 - 19968: jis0212<<14 | 0x4C<<7 | 0x0E, - 40735 - 19968: jis0212<<14 | 0x4C<<7 | 0x0F, - 40736 - 19968: jis0208<<14 | 0x20<<7 | 0x2C, - 40737 - 19968: jis0208<<14 | 0x52<<7 | 0x4A, - 40738 - 19968: jis0212<<14 | 0x4C<<7 | 0x10, - 40742 - 19968: jis0212<<14 | 0x4C<<7 | 0x11, - 40746 - 19968: jis0212<<14 | 0x4C<<7 | 0x12, - 40747 - 19968: jis0212<<14 | 0x4C<<7 | 0x13, - 40748 - 19968: jis0208<<14 | 0x52<<7 | 0x4B, - 40751 - 19968: jis0212<<14 | 0x4C<<7 | 0x14, - 40753 - 19968: jis0212<<14 | 0x4C<<7 | 0x15, - 40754 - 19968: jis0212<<14 | 0x4C<<7 | 0x16, - 40756 - 19968: jis0212<<14 | 0x4C<<7 | 0x17, - 40759 - 19968: jis0212<<14 | 0x4C<<7 | 0x18, - 40761 - 19968: jis0212<<14 | 0x4C<<7 | 0x19, - 40762 - 19968: jis0212<<14 | 0x4C<<7 | 0x1A, - 40763 - 19968: jis0208<<14 | 0x28<<7 | 0x00, - 40764 - 19968: jis0212<<14 | 0x4C<<7 | 0x1B, - 40765 - 19968: jis0212<<14 | 0x4C<<7 | 0x1C, - 40766 - 19968: jis0208<<14 | 0x52<<7 | 0x4C, - 40767 - 19968: jis0212<<14 | 0x4C<<7 | 0x1D, - 40769 - 19968: jis0212<<14 | 0x4C<<7 | 0x1E, - 40771 - 19968: jis0212<<14 | 0x4C<<7 | 0x1F, - 40772 - 19968: jis0212<<14 | 0x4C<<7 | 0x20, - 40773 - 19968: jis0212<<14 | 0x4C<<7 | 0x21, - 40774 - 19968: jis0212<<14 | 0x4C<<7 | 0x22, - 40775 - 19968: jis0212<<14 | 0x4C<<7 | 0x23, - 40778 - 19968: jis0208<<14 | 0x52<<7 | 0x4D, - 40779 - 19968: jis0208<<14 | 0x42<<7 | 0x16, - 40782 - 19968: jis0208<<14 | 0x4B<<7 | 0x39, - 40783 - 19968: jis0208<<14 | 0x4F<<7 | 0x4C, - 40786 - 19968: jis0208<<14 | 0x52<<7 | 0x4E, - 40787 - 19968: jis0212<<14 | 0x4C<<7 | 0x24, - 40788 - 19968: jis0208<<14 | 0x52<<7 | 0x4F, - 40789 - 19968: jis0212<<14 | 0x4C<<7 | 0x25, - 40790 - 19968: jis0212<<14 | 0x4C<<7 | 0x26, - 40791 - 19968: jis0212<<14 | 0x4C<<7 | 0x27, - 40792 - 19968: jis0212<<14 | 0x4C<<7 | 0x28, - 40794 - 19968: jis0212<<14 | 0x4C<<7 | 0x29, - 40797 - 19968: jis0212<<14 | 0x4C<<7 | 0x2A, - 40798 - 19968: jis0212<<14 | 0x4C<<7 | 0x2B, - 40799 - 19968: jis0208<<14 | 0x52<<7 | 0x51, - 40800 - 19968: jis0208<<14 | 0x52<<7 | 0x52, - 40801 - 19968: jis0208<<14 | 0x52<<7 | 0x53, - 40802 - 19968: jis0208<<14 | 0x2D<<7 | 0x4F, - 40803 - 19968: jis0208<<14 | 0x52<<7 | 0x50, - 40806 - 19968: jis0208<<14 | 0x52<<7 | 0x54, - 40807 - 19968: jis0208<<14 | 0x52<<7 | 0x55, - 40808 - 19968: jis0212<<14 | 0x4C<<7 | 0x2C, - 40809 - 19968: jis0212<<14 | 0x4C<<7 | 0x2D, - 40810 - 19968: jis0208<<14 | 0x52<<7 | 0x57, - 40812 - 19968: jis0208<<14 | 0x52<<7 | 0x56, - 40813 - 19968: jis0212<<14 | 0x4C<<7 | 0x2E, - 40814 - 19968: jis0212<<14 | 0x4C<<7 | 0x2F, - 40815 - 19968: jis0212<<14 | 0x4C<<7 | 0x30, - 40816 - 19968: jis0212<<14 | 0x4C<<7 | 0x31, - 40817 - 19968: jis0212<<14 | 0x4C<<7 | 0x32, - 40818 - 19968: jis0208<<14 | 0x52<<7 | 0x59, - 40819 - 19968: jis0212<<14 | 0x4C<<7 | 0x33, - 40821 - 19968: jis0212<<14 | 0x4C<<7 | 0x34, - 40822 - 19968: jis0208<<14 | 0x52<<7 | 0x5A, - 40823 - 19968: jis0208<<14 | 0x52<<7 | 0x58, - 40826 - 19968: jis0212<<14 | 0x4C<<7 | 0x35, - 40829 - 19968: jis0212<<14 | 0x4C<<7 | 0x36, - 40845 - 19968: jis0208<<14 | 0x2D<<7 | 0x15, - 40847 - 19968: jis0212<<14 | 0x4C<<7 | 0x37, - 40848 - 19968: jis0212<<14 | 0x4C<<7 | 0x38, - 40849 - 19968: jis0212<<14 | 0x4C<<7 | 0x39, - 40850 - 19968: jis0212<<14 | 0x4C<<7 | 0x3A, - 40852 - 19968: jis0212<<14 | 0x4C<<7 | 0x3B, - 40853 - 19968: jis0208<<14 | 0x52<<7 | 0x5B, - 40854 - 19968: jis0212<<14 | 0x4C<<7 | 0x3C, - 40855 - 19968: jis0212<<14 | 0x4C<<7 | 0x3D, - 40860 - 19968: jis0208<<14 | 0x52<<7 | 0x5C, - 40861 - 19968: jis0208<<14 | 0x42<<7 | 0x33, - 40862 - 19968: jis0212<<14 | 0x4C<<7 | 0x3E, - 40864 - 19968: jis0208<<14 | 0x52<<7 | 0x5D, - 40865 - 19968: jis0212<<14 | 0x4C<<7 | 0x3F, - 40866 - 19968: jis0212<<14 | 0x4C<<7 | 0x40, - 40867 - 19968: jis0212<<14 | 0x4C<<7 | 0x41, - 40869 - 19968: jis0212<<14 | 0x4C<<7 | 0x42, -} - -const encode1Low, encode1High = 8208, 9840 - -var encode1 = [...]uint16{ - 8208 - 8208: jis0208<<14 | 0x00<<7 | 0x1D, - 8213 - 8208: jis0208<<14 | 0x00<<7 | 0x1C, - 8216 - 8208: jis0208<<14 | 0x00<<7 | 0x25, - 8217 - 8208: jis0208<<14 | 0x00<<7 | 0x26, - 8220 - 8208: jis0208<<14 | 0x00<<7 | 0x27, - 8221 - 8208: jis0208<<14 | 0x00<<7 | 0x28, - 8224 - 8208: jis0208<<14 | 0x01<<7 | 0x56, - 8225 - 8208: jis0208<<14 | 0x01<<7 | 0x57, - 8229 - 8208: jis0208<<14 | 0x00<<7 | 0x24, - 8230 - 8208: jis0208<<14 | 0x00<<7 | 0x23, - 8240 - 8208: jis0208<<14 | 0x01<<7 | 0x52, - 8242 - 8208: jis0208<<14 | 0x00<<7 | 0x4B, - 8243 - 8208: jis0208<<14 | 0x00<<7 | 0x4C, - 8251 - 8208: jis0208<<14 | 0x01<<7 | 0x07, - 8451 - 8208: jis0208<<14 | 0x00<<7 | 0x4D, - 8470 - 8208: jis0208<<14 | 0x0C<<7 | 0x41, - 8481 - 8208: jis0208<<14 | 0x0C<<7 | 0x43, - 8482 - 8208: jis0212<<14 | 0x01<<7 | 0x4E, - 8491 - 8208: jis0208<<14 | 0x01<<7 | 0x51, - 8544 - 8208: jis0208<<14 | 0x0C<<7 | 0x14, - 8545 - 8208: jis0208<<14 | 0x0C<<7 | 0x15, - 8546 - 8208: jis0208<<14 | 0x0C<<7 | 0x16, - 8547 - 8208: jis0208<<14 | 0x0C<<7 | 0x17, - 8548 - 8208: jis0208<<14 | 0x0C<<7 | 0x18, - 8549 - 8208: jis0208<<14 | 0x0C<<7 | 0x19, - 8550 - 8208: jis0208<<14 | 0x0C<<7 | 0x1A, - 8551 - 8208: jis0208<<14 | 0x0C<<7 | 0x1B, - 8552 - 8208: jis0208<<14 | 0x0C<<7 | 0x1C, - 8553 - 8208: jis0208<<14 | 0x0C<<7 | 0x1D, - 8560 - 8208: jis0208<<14 | 0x5B<<7 | 0x50, - 8561 - 8208: jis0208<<14 | 0x5B<<7 | 0x51, - 8562 - 8208: jis0208<<14 | 0x5B<<7 | 0x52, - 8563 - 8208: jis0208<<14 | 0x5B<<7 | 0x53, - 8564 - 8208: jis0208<<14 | 0x5B<<7 | 0x54, - 8565 - 8208: jis0208<<14 | 0x5B<<7 | 0x55, - 8566 - 8208: jis0208<<14 | 0x5B<<7 | 0x56, - 8567 - 8208: jis0208<<14 | 0x5B<<7 | 0x57, - 8568 - 8208: jis0208<<14 | 0x5B<<7 | 0x58, - 8569 - 8208: jis0208<<14 | 0x5B<<7 | 0x59, - 8592 - 8208: jis0208<<14 | 0x01<<7 | 0x0A, - 8593 - 8208: jis0208<<14 | 0x01<<7 | 0x0B, - 8594 - 8208: jis0208<<14 | 0x01<<7 | 0x09, - 8595 - 8208: jis0208<<14 | 0x01<<7 | 0x0C, - 8658 - 8208: jis0208<<14 | 0x01<<7 | 0x2C, - 8660 - 8208: jis0208<<14 | 0x01<<7 | 0x2D, - 8704 - 8208: jis0208<<14 | 0x01<<7 | 0x2E, - 8706 - 8208: jis0208<<14 | 0x01<<7 | 0x3E, - 8707 - 8208: jis0208<<14 | 0x01<<7 | 0x2F, - 8711 - 8208: jis0208<<14 | 0x01<<7 | 0x3F, - 8712 - 8208: jis0208<<14 | 0x01<<7 | 0x19, - 8715 - 8208: jis0208<<14 | 0x01<<7 | 0x1A, - 8721 - 8208: jis0208<<14 | 0x0C<<7 | 0x53, - 8730 - 8208: jis0208<<14 | 0x01<<7 | 0x44, - 8733 - 8208: jis0208<<14 | 0x01<<7 | 0x46, - 8734 - 8208: jis0208<<14 | 0x00<<7 | 0x46, - 8735 - 8208: jis0208<<14 | 0x0C<<7 | 0x57, - 8736 - 8208: jis0208<<14 | 0x01<<7 | 0x3B, - 8741 - 8208: jis0208<<14 | 0x00<<7 | 0x21, - 8743 - 8208: jis0208<<14 | 0x01<<7 | 0x29, - 8744 - 8208: jis0208<<14 | 0x01<<7 | 0x2A, - 8745 - 8208: jis0208<<14 | 0x01<<7 | 0x20, - 8746 - 8208: jis0208<<14 | 0x01<<7 | 0x1F, - 8747 - 8208: jis0208<<14 | 0x01<<7 | 0x48, - 8748 - 8208: jis0208<<14 | 0x01<<7 | 0x49, - 8750 - 8208: jis0208<<14 | 0x0C<<7 | 0x52, - 8756 - 8208: jis0208<<14 | 0x00<<7 | 0x47, - 8757 - 8208: jis0208<<14 | 0x01<<7 | 0x47, - 8765 - 8208: jis0208<<14 | 0x01<<7 | 0x45, - 8786 - 8208: jis0208<<14 | 0x01<<7 | 0x41, - 8800 - 8208: jis0208<<14 | 0x00<<7 | 0x41, - 8801 - 8208: jis0208<<14 | 0x01<<7 | 0x40, - 8806 - 8208: jis0208<<14 | 0x00<<7 | 0x44, - 8807 - 8208: jis0208<<14 | 0x00<<7 | 0x45, - 8810 - 8208: jis0208<<14 | 0x01<<7 | 0x42, - 8811 - 8208: jis0208<<14 | 0x01<<7 | 0x43, - 8834 - 8208: jis0208<<14 | 0x01<<7 | 0x1D, - 8835 - 8208: jis0208<<14 | 0x01<<7 | 0x1E, - 8838 - 8208: jis0208<<14 | 0x01<<7 | 0x1B, - 8839 - 8208: jis0208<<14 | 0x01<<7 | 0x1C, - 8869 - 8208: jis0208<<14 | 0x01<<7 | 0x3C, - 8895 - 8208: jis0208<<14 | 0x0C<<7 | 0x58, - 8978 - 8208: jis0208<<14 | 0x01<<7 | 0x3D, - 9312 - 8208: jis0208<<14 | 0x0C<<7 | 0x00, - 9313 - 8208: jis0208<<14 | 0x0C<<7 | 0x01, - 9314 - 8208: jis0208<<14 | 0x0C<<7 | 0x02, - 9315 - 8208: jis0208<<14 | 0x0C<<7 | 0x03, - 9316 - 8208: jis0208<<14 | 0x0C<<7 | 0x04, - 9317 - 8208: jis0208<<14 | 0x0C<<7 | 0x05, - 9318 - 8208: jis0208<<14 | 0x0C<<7 | 0x06, - 9319 - 8208: jis0208<<14 | 0x0C<<7 | 0x07, - 9320 - 8208: jis0208<<14 | 0x0C<<7 | 0x08, - 9321 - 8208: jis0208<<14 | 0x0C<<7 | 0x09, - 9322 - 8208: jis0208<<14 | 0x0C<<7 | 0x0A, - 9323 - 8208: jis0208<<14 | 0x0C<<7 | 0x0B, - 9324 - 8208: jis0208<<14 | 0x0C<<7 | 0x0C, - 9325 - 8208: jis0208<<14 | 0x0C<<7 | 0x0D, - 9326 - 8208: jis0208<<14 | 0x0C<<7 | 0x0E, - 9327 - 8208: jis0208<<14 | 0x0C<<7 | 0x0F, - 9328 - 8208: jis0208<<14 | 0x0C<<7 | 0x10, - 9329 - 8208: jis0208<<14 | 0x0C<<7 | 0x11, - 9330 - 8208: jis0208<<14 | 0x0C<<7 | 0x12, - 9331 - 8208: jis0208<<14 | 0x0C<<7 | 0x13, - 9472 - 8208: jis0208<<14 | 0x07<<7 | 0x00, - 9473 - 8208: jis0208<<14 | 0x07<<7 | 0x0B, - 9474 - 8208: jis0208<<14 | 0x07<<7 | 0x01, - 9475 - 8208: jis0208<<14 | 0x07<<7 | 0x0C, - 9484 - 8208: jis0208<<14 | 0x07<<7 | 0x02, - 9487 - 8208: jis0208<<14 | 0x07<<7 | 0x0D, - 9488 - 8208: jis0208<<14 | 0x07<<7 | 0x03, - 9491 - 8208: jis0208<<14 | 0x07<<7 | 0x0E, - 9492 - 8208: jis0208<<14 | 0x07<<7 | 0x05, - 9495 - 8208: jis0208<<14 | 0x07<<7 | 0x10, - 9496 - 8208: jis0208<<14 | 0x07<<7 | 0x04, - 9499 - 8208: jis0208<<14 | 0x07<<7 | 0x0F, - 9500 - 8208: jis0208<<14 | 0x07<<7 | 0x06, - 9501 - 8208: jis0208<<14 | 0x07<<7 | 0x1B, - 9504 - 8208: jis0208<<14 | 0x07<<7 | 0x16, - 9507 - 8208: jis0208<<14 | 0x07<<7 | 0x11, - 9508 - 8208: jis0208<<14 | 0x07<<7 | 0x08, - 9509 - 8208: jis0208<<14 | 0x07<<7 | 0x1D, - 9512 - 8208: jis0208<<14 | 0x07<<7 | 0x18, - 9515 - 8208: jis0208<<14 | 0x07<<7 | 0x13, - 9516 - 8208: jis0208<<14 | 0x07<<7 | 0x07, - 9519 - 8208: jis0208<<14 | 0x07<<7 | 0x17, - 9520 - 8208: jis0208<<14 | 0x07<<7 | 0x1C, - 9523 - 8208: jis0208<<14 | 0x07<<7 | 0x12, - 9524 - 8208: jis0208<<14 | 0x07<<7 | 0x09, - 9527 - 8208: jis0208<<14 | 0x07<<7 | 0x19, - 9528 - 8208: jis0208<<14 | 0x07<<7 | 0x1E, - 9531 - 8208: jis0208<<14 | 0x07<<7 | 0x14, - 9532 - 8208: jis0208<<14 | 0x07<<7 | 0x0A, - 9535 - 8208: jis0208<<14 | 0x07<<7 | 0x1A, - 9538 - 8208: jis0208<<14 | 0x07<<7 | 0x1F, - 9547 - 8208: jis0208<<14 | 0x07<<7 | 0x15, - 9632 - 8208: jis0208<<14 | 0x01<<7 | 0x02, - 9633 - 8208: jis0208<<14 | 0x01<<7 | 0x01, - 9650 - 8208: jis0208<<14 | 0x01<<7 | 0x04, - 9651 - 8208: jis0208<<14 | 0x01<<7 | 0x03, - 9660 - 8208: jis0208<<14 | 0x01<<7 | 0x06, - 9661 - 8208: jis0208<<14 | 0x01<<7 | 0x05, - 9670 - 8208: jis0208<<14 | 0x01<<7 | 0x00, - 9671 - 8208: jis0208<<14 | 0x00<<7 | 0x5D, - 9675 - 8208: jis0208<<14 | 0x00<<7 | 0x5A, - 9678 - 8208: jis0208<<14 | 0x00<<7 | 0x5C, - 9679 - 8208: jis0208<<14 | 0x00<<7 | 0x5B, - 9711 - 8208: jis0208<<14 | 0x01<<7 | 0x5D, - 9733 - 8208: jis0208<<14 | 0x00<<7 | 0x59, - 9734 - 8208: jis0208<<14 | 0x00<<7 | 0x58, - 9792 - 8208: jis0208<<14 | 0x00<<7 | 0x49, - 9794 - 8208: jis0208<<14 | 0x00<<7 | 0x48, - 9834 - 8208: jis0208<<14 | 0x01<<7 | 0x55, - 9837 - 8208: jis0208<<14 | 0x01<<7 | 0x54, - 9839 - 8208: jis0208<<14 | 0x01<<7 | 0x53, -} - -const encode2Low, encode2High = 12288, 13262 - -var encode2 = [...]uint16{ - 12288 - 12288: jis0208<<14 | 0x00<<7 | 0x00, - 12289 - 12288: jis0208<<14 | 0x00<<7 | 0x01, - 12290 - 12288: jis0208<<14 | 0x00<<7 | 0x02, - 12291 - 12288: jis0208<<14 | 0x00<<7 | 0x16, - 12293 - 12288: jis0208<<14 | 0x00<<7 | 0x18, - 12294 - 12288: jis0208<<14 | 0x00<<7 | 0x19, - 12295 - 12288: jis0208<<14 | 0x00<<7 | 0x1A, - 12296 - 12288: jis0208<<14 | 0x00<<7 | 0x31, - 12297 - 12288: jis0208<<14 | 0x00<<7 | 0x32, - 12298 - 12288: jis0208<<14 | 0x00<<7 | 0x33, - 12299 - 12288: jis0208<<14 | 0x00<<7 | 0x34, - 12300 - 12288: jis0208<<14 | 0x00<<7 | 0x35, - 12301 - 12288: jis0208<<14 | 0x00<<7 | 0x36, - 12302 - 12288: jis0208<<14 | 0x00<<7 | 0x37, - 12303 - 12288: jis0208<<14 | 0x00<<7 | 0x38, - 12304 - 12288: jis0208<<14 | 0x00<<7 | 0x39, - 12305 - 12288: jis0208<<14 | 0x00<<7 | 0x3A, - 12306 - 12288: jis0208<<14 | 0x01<<7 | 0x08, - 12307 - 12288: jis0208<<14 | 0x01<<7 | 0x0D, - 12308 - 12288: jis0208<<14 | 0x00<<7 | 0x2B, - 12309 - 12288: jis0208<<14 | 0x00<<7 | 0x2C, - 12317 - 12288: jis0208<<14 | 0x0C<<7 | 0x3F, - 12319 - 12288: jis0208<<14 | 0x0C<<7 | 0x40, - 12353 - 12288: jis0208<<14 | 0x03<<7 | 0x00, - 12354 - 12288: jis0208<<14 | 0x03<<7 | 0x01, - 12355 - 12288: jis0208<<14 | 0x03<<7 | 0x02, - 12356 - 12288: jis0208<<14 | 0x03<<7 | 0x03, - 12357 - 12288: jis0208<<14 | 0x03<<7 | 0x04, - 12358 - 12288: jis0208<<14 | 0x03<<7 | 0x05, - 12359 - 12288: jis0208<<14 | 0x03<<7 | 0x06, - 12360 - 12288: jis0208<<14 | 0x03<<7 | 0x07, - 12361 - 12288: jis0208<<14 | 0x03<<7 | 0x08, - 12362 - 12288: jis0208<<14 | 0x03<<7 | 0x09, - 12363 - 12288: jis0208<<14 | 0x03<<7 | 0x0A, - 12364 - 12288: jis0208<<14 | 0x03<<7 | 0x0B, - 12365 - 12288: jis0208<<14 | 0x03<<7 | 0x0C, - 12366 - 12288: jis0208<<14 | 0x03<<7 | 0x0D, - 12367 - 12288: jis0208<<14 | 0x03<<7 | 0x0E, - 12368 - 12288: jis0208<<14 | 0x03<<7 | 0x0F, - 12369 - 12288: jis0208<<14 | 0x03<<7 | 0x10, - 12370 - 12288: jis0208<<14 | 0x03<<7 | 0x11, - 12371 - 12288: jis0208<<14 | 0x03<<7 | 0x12, - 12372 - 12288: jis0208<<14 | 0x03<<7 | 0x13, - 12373 - 12288: jis0208<<14 | 0x03<<7 | 0x14, - 12374 - 12288: jis0208<<14 | 0x03<<7 | 0x15, - 12375 - 12288: jis0208<<14 | 0x03<<7 | 0x16, - 12376 - 12288: jis0208<<14 | 0x03<<7 | 0x17, - 12377 - 12288: jis0208<<14 | 0x03<<7 | 0x18, - 12378 - 12288: jis0208<<14 | 0x03<<7 | 0x19, - 12379 - 12288: jis0208<<14 | 0x03<<7 | 0x1A, - 12380 - 12288: jis0208<<14 | 0x03<<7 | 0x1B, - 12381 - 12288: jis0208<<14 | 0x03<<7 | 0x1C, - 12382 - 12288: jis0208<<14 | 0x03<<7 | 0x1D, - 12383 - 12288: jis0208<<14 | 0x03<<7 | 0x1E, - 12384 - 12288: jis0208<<14 | 0x03<<7 | 0x1F, - 12385 - 12288: jis0208<<14 | 0x03<<7 | 0x20, - 12386 - 12288: jis0208<<14 | 0x03<<7 | 0x21, - 12387 - 12288: jis0208<<14 | 0x03<<7 | 0x22, - 12388 - 12288: jis0208<<14 | 0x03<<7 | 0x23, - 12389 - 12288: jis0208<<14 | 0x03<<7 | 0x24, - 12390 - 12288: jis0208<<14 | 0x03<<7 | 0x25, - 12391 - 12288: jis0208<<14 | 0x03<<7 | 0x26, - 12392 - 12288: jis0208<<14 | 0x03<<7 | 0x27, - 12393 - 12288: jis0208<<14 | 0x03<<7 | 0x28, - 12394 - 12288: jis0208<<14 | 0x03<<7 | 0x29, - 12395 - 12288: jis0208<<14 | 0x03<<7 | 0x2A, - 12396 - 12288: jis0208<<14 | 0x03<<7 | 0x2B, - 12397 - 12288: jis0208<<14 | 0x03<<7 | 0x2C, - 12398 - 12288: jis0208<<14 | 0x03<<7 | 0x2D, - 12399 - 12288: jis0208<<14 | 0x03<<7 | 0x2E, - 12400 - 12288: jis0208<<14 | 0x03<<7 | 0x2F, - 12401 - 12288: jis0208<<14 | 0x03<<7 | 0x30, - 12402 - 12288: jis0208<<14 | 0x03<<7 | 0x31, - 12403 - 12288: jis0208<<14 | 0x03<<7 | 0x32, - 12404 - 12288: jis0208<<14 | 0x03<<7 | 0x33, - 12405 - 12288: jis0208<<14 | 0x03<<7 | 0x34, - 12406 - 12288: jis0208<<14 | 0x03<<7 | 0x35, - 12407 - 12288: jis0208<<14 | 0x03<<7 | 0x36, - 12408 - 12288: jis0208<<14 | 0x03<<7 | 0x37, - 12409 - 12288: jis0208<<14 | 0x03<<7 | 0x38, - 12410 - 12288: jis0208<<14 | 0x03<<7 | 0x39, - 12411 - 12288: jis0208<<14 | 0x03<<7 | 0x3A, - 12412 - 12288: jis0208<<14 | 0x03<<7 | 0x3B, - 12413 - 12288: jis0208<<14 | 0x03<<7 | 0x3C, - 12414 - 12288: jis0208<<14 | 0x03<<7 | 0x3D, - 12415 - 12288: jis0208<<14 | 0x03<<7 | 0x3E, - 12416 - 12288: jis0208<<14 | 0x03<<7 | 0x3F, - 12417 - 12288: jis0208<<14 | 0x03<<7 | 0x40, - 12418 - 12288: jis0208<<14 | 0x03<<7 | 0x41, - 12419 - 12288: jis0208<<14 | 0x03<<7 | 0x42, - 12420 - 12288: jis0208<<14 | 0x03<<7 | 0x43, - 12421 - 12288: jis0208<<14 | 0x03<<7 | 0x44, - 12422 - 12288: jis0208<<14 | 0x03<<7 | 0x45, - 12423 - 12288: jis0208<<14 | 0x03<<7 | 0x46, - 12424 - 12288: jis0208<<14 | 0x03<<7 | 0x47, - 12425 - 12288: jis0208<<14 | 0x03<<7 | 0x48, - 12426 - 12288: jis0208<<14 | 0x03<<7 | 0x49, - 12427 - 12288: jis0208<<14 | 0x03<<7 | 0x4A, - 12428 - 12288: jis0208<<14 | 0x03<<7 | 0x4B, - 12429 - 12288: jis0208<<14 | 0x03<<7 | 0x4C, - 12430 - 12288: jis0208<<14 | 0x03<<7 | 0x4D, - 12431 - 12288: jis0208<<14 | 0x03<<7 | 0x4E, - 12432 - 12288: jis0208<<14 | 0x03<<7 | 0x4F, - 12433 - 12288: jis0208<<14 | 0x03<<7 | 0x50, - 12434 - 12288: jis0208<<14 | 0x03<<7 | 0x51, - 12435 - 12288: jis0208<<14 | 0x03<<7 | 0x52, - 12443 - 12288: jis0208<<14 | 0x00<<7 | 0x0A, - 12444 - 12288: jis0208<<14 | 0x00<<7 | 0x0B, - 12445 - 12288: jis0208<<14 | 0x00<<7 | 0x14, - 12446 - 12288: jis0208<<14 | 0x00<<7 | 0x15, - 12449 - 12288: jis0208<<14 | 0x04<<7 | 0x00, - 12450 - 12288: jis0208<<14 | 0x04<<7 | 0x01, - 12451 - 12288: jis0208<<14 | 0x04<<7 | 0x02, - 12452 - 12288: jis0208<<14 | 0x04<<7 | 0x03, - 12453 - 12288: jis0208<<14 | 0x04<<7 | 0x04, - 12454 - 12288: jis0208<<14 | 0x04<<7 | 0x05, - 12455 - 12288: jis0208<<14 | 0x04<<7 | 0x06, - 12456 - 12288: jis0208<<14 | 0x04<<7 | 0x07, - 12457 - 12288: jis0208<<14 | 0x04<<7 | 0x08, - 12458 - 12288: jis0208<<14 | 0x04<<7 | 0x09, - 12459 - 12288: jis0208<<14 | 0x04<<7 | 0x0A, - 12460 - 12288: jis0208<<14 | 0x04<<7 | 0x0B, - 12461 - 12288: jis0208<<14 | 0x04<<7 | 0x0C, - 12462 - 12288: jis0208<<14 | 0x04<<7 | 0x0D, - 12463 - 12288: jis0208<<14 | 0x04<<7 | 0x0E, - 12464 - 12288: jis0208<<14 | 0x04<<7 | 0x0F, - 12465 - 12288: jis0208<<14 | 0x04<<7 | 0x10, - 12466 - 12288: jis0208<<14 | 0x04<<7 | 0x11, - 12467 - 12288: jis0208<<14 | 0x04<<7 | 0x12, - 12468 - 12288: jis0208<<14 | 0x04<<7 | 0x13, - 12469 - 12288: jis0208<<14 | 0x04<<7 | 0x14, - 12470 - 12288: jis0208<<14 | 0x04<<7 | 0x15, - 12471 - 12288: jis0208<<14 | 0x04<<7 | 0x16, - 12472 - 12288: jis0208<<14 | 0x04<<7 | 0x17, - 12473 - 12288: jis0208<<14 | 0x04<<7 | 0x18, - 12474 - 12288: jis0208<<14 | 0x04<<7 | 0x19, - 12475 - 12288: jis0208<<14 | 0x04<<7 | 0x1A, - 12476 - 12288: jis0208<<14 | 0x04<<7 | 0x1B, - 12477 - 12288: jis0208<<14 | 0x04<<7 | 0x1C, - 12478 - 12288: jis0208<<14 | 0x04<<7 | 0x1D, - 12479 - 12288: jis0208<<14 | 0x04<<7 | 0x1E, - 12480 - 12288: jis0208<<14 | 0x04<<7 | 0x1F, - 12481 - 12288: jis0208<<14 | 0x04<<7 | 0x20, - 12482 - 12288: jis0208<<14 | 0x04<<7 | 0x21, - 12483 - 12288: jis0208<<14 | 0x04<<7 | 0x22, - 12484 - 12288: jis0208<<14 | 0x04<<7 | 0x23, - 12485 - 12288: jis0208<<14 | 0x04<<7 | 0x24, - 12486 - 12288: jis0208<<14 | 0x04<<7 | 0x25, - 12487 - 12288: jis0208<<14 | 0x04<<7 | 0x26, - 12488 - 12288: jis0208<<14 | 0x04<<7 | 0x27, - 12489 - 12288: jis0208<<14 | 0x04<<7 | 0x28, - 12490 - 12288: jis0208<<14 | 0x04<<7 | 0x29, - 12491 - 12288: jis0208<<14 | 0x04<<7 | 0x2A, - 12492 - 12288: jis0208<<14 | 0x04<<7 | 0x2B, - 12493 - 12288: jis0208<<14 | 0x04<<7 | 0x2C, - 12494 - 12288: jis0208<<14 | 0x04<<7 | 0x2D, - 12495 - 12288: jis0208<<14 | 0x04<<7 | 0x2E, - 12496 - 12288: jis0208<<14 | 0x04<<7 | 0x2F, - 12497 - 12288: jis0208<<14 | 0x04<<7 | 0x30, - 12498 - 12288: jis0208<<14 | 0x04<<7 | 0x31, - 12499 - 12288: jis0208<<14 | 0x04<<7 | 0x32, - 12500 - 12288: jis0208<<14 | 0x04<<7 | 0x33, - 12501 - 12288: jis0208<<14 | 0x04<<7 | 0x34, - 12502 - 12288: jis0208<<14 | 0x04<<7 | 0x35, - 12503 - 12288: jis0208<<14 | 0x04<<7 | 0x36, - 12504 - 12288: jis0208<<14 | 0x04<<7 | 0x37, - 12505 - 12288: jis0208<<14 | 0x04<<7 | 0x38, - 12506 - 12288: jis0208<<14 | 0x04<<7 | 0x39, - 12507 - 12288: jis0208<<14 | 0x04<<7 | 0x3A, - 12508 - 12288: jis0208<<14 | 0x04<<7 | 0x3B, - 12509 - 12288: jis0208<<14 | 0x04<<7 | 0x3C, - 12510 - 12288: jis0208<<14 | 0x04<<7 | 0x3D, - 12511 - 12288: jis0208<<14 | 0x04<<7 | 0x3E, - 12512 - 12288: jis0208<<14 | 0x04<<7 | 0x3F, - 12513 - 12288: jis0208<<14 | 0x04<<7 | 0x40, - 12514 - 12288: jis0208<<14 | 0x04<<7 | 0x41, - 12515 - 12288: jis0208<<14 | 0x04<<7 | 0x42, - 12516 - 12288: jis0208<<14 | 0x04<<7 | 0x43, - 12517 - 12288: jis0208<<14 | 0x04<<7 | 0x44, - 12518 - 12288: jis0208<<14 | 0x04<<7 | 0x45, - 12519 - 12288: jis0208<<14 | 0x04<<7 | 0x46, - 12520 - 12288: jis0208<<14 | 0x04<<7 | 0x47, - 12521 - 12288: jis0208<<14 | 0x04<<7 | 0x48, - 12522 - 12288: jis0208<<14 | 0x04<<7 | 0x49, - 12523 - 12288: jis0208<<14 | 0x04<<7 | 0x4A, - 12524 - 12288: jis0208<<14 | 0x04<<7 | 0x4B, - 12525 - 12288: jis0208<<14 | 0x04<<7 | 0x4C, - 12526 - 12288: jis0208<<14 | 0x04<<7 | 0x4D, - 12527 - 12288: jis0208<<14 | 0x04<<7 | 0x4E, - 12528 - 12288: jis0208<<14 | 0x04<<7 | 0x4F, - 12529 - 12288: jis0208<<14 | 0x04<<7 | 0x50, - 12530 - 12288: jis0208<<14 | 0x04<<7 | 0x51, - 12531 - 12288: jis0208<<14 | 0x04<<7 | 0x52, - 12532 - 12288: jis0208<<14 | 0x04<<7 | 0x53, - 12533 - 12288: jis0208<<14 | 0x04<<7 | 0x54, - 12534 - 12288: jis0208<<14 | 0x04<<7 | 0x55, - 12539 - 12288: jis0208<<14 | 0x00<<7 | 0x05, - 12540 - 12288: jis0208<<14 | 0x00<<7 | 0x1B, - 12541 - 12288: jis0208<<14 | 0x00<<7 | 0x12, - 12542 - 12288: jis0208<<14 | 0x00<<7 | 0x13, - 12849 - 12288: jis0208<<14 | 0x0C<<7 | 0x49, - 12850 - 12288: jis0208<<14 | 0x0C<<7 | 0x4A, - 12857 - 12288: jis0208<<14 | 0x0C<<7 | 0x4B, - 12964 - 12288: jis0208<<14 | 0x0C<<7 | 0x44, - 12965 - 12288: jis0208<<14 | 0x0C<<7 | 0x45, - 12966 - 12288: jis0208<<14 | 0x0C<<7 | 0x46, - 12967 - 12288: jis0208<<14 | 0x0C<<7 | 0x47, - 12968 - 12288: jis0208<<14 | 0x0C<<7 | 0x48, - 13059 - 12288: jis0208<<14 | 0x0C<<7 | 0x25, - 13069 - 12288: jis0208<<14 | 0x0C<<7 | 0x29, - 13076 - 12288: jis0208<<14 | 0x0C<<7 | 0x20, - 13080 - 12288: jis0208<<14 | 0x0C<<7 | 0x23, - 13090 - 12288: jis0208<<14 | 0x0C<<7 | 0x21, - 13091 - 12288: jis0208<<14 | 0x0C<<7 | 0x2B, - 13094 - 12288: jis0208<<14 | 0x0C<<7 | 0x2A, - 13095 - 12288: jis0208<<14 | 0x0C<<7 | 0x24, - 13099 - 12288: jis0208<<14 | 0x0C<<7 | 0x2C, - 13110 - 12288: jis0208<<14 | 0x0C<<7 | 0x26, - 13115 - 12288: jis0208<<14 | 0x0C<<7 | 0x2E, - 13129 - 12288: jis0208<<14 | 0x0C<<7 | 0x1F, - 13130 - 12288: jis0208<<14 | 0x0C<<7 | 0x2D, - 13133 - 12288: jis0208<<14 | 0x0C<<7 | 0x22, - 13137 - 12288: jis0208<<14 | 0x0C<<7 | 0x27, - 13143 - 12288: jis0208<<14 | 0x0C<<7 | 0x28, - 13179 - 12288: jis0208<<14 | 0x0C<<7 | 0x3E, - 13180 - 12288: jis0208<<14 | 0x0C<<7 | 0x4E, - 13181 - 12288: jis0208<<14 | 0x0C<<7 | 0x4D, - 13182 - 12288: jis0208<<14 | 0x0C<<7 | 0x4C, - 13198 - 12288: jis0208<<14 | 0x0C<<7 | 0x32, - 13199 - 12288: jis0208<<14 | 0x0C<<7 | 0x33, - 13212 - 12288: jis0208<<14 | 0x0C<<7 | 0x2F, - 13213 - 12288: jis0208<<14 | 0x0C<<7 | 0x30, - 13214 - 12288: jis0208<<14 | 0x0C<<7 | 0x31, - 13217 - 12288: jis0208<<14 | 0x0C<<7 | 0x35, - 13252 - 12288: jis0208<<14 | 0x0C<<7 | 0x34, - 13261 - 12288: jis0208<<14 | 0x0C<<7 | 0x42, -} - -const encode3Low, encode3High = 161, 1120 - -var encode3 = [...]uint16{ - 161 - 161: jis0212<<14 | 0x01<<7 | 0x21, - 164 - 161: jis0212<<14 | 0x01<<7 | 0x4F, - 166 - 161: jis0212<<14 | 0x01<<7 | 0x22, - 167 - 161: jis0208<<14 | 0x00<<7 | 0x57, - 168 - 161: jis0208<<14 | 0x00<<7 | 0x0E, - 169 - 161: jis0212<<14 | 0x01<<7 | 0x4C, - 170 - 161: jis0212<<14 | 0x01<<7 | 0x4B, - 174 - 161: jis0212<<14 | 0x01<<7 | 0x4D, - 175 - 161: jis0212<<14 | 0x01<<7 | 0x13, - 176 - 161: jis0208<<14 | 0x00<<7 | 0x4A, - 177 - 161: jis0208<<14 | 0x00<<7 | 0x3D, - 180 - 161: jis0208<<14 | 0x00<<7 | 0x0C, - 182 - 161: jis0208<<14 | 0x01<<7 | 0x58, - 184 - 161: jis0212<<14 | 0x01<<7 | 0x10, - 186 - 161: jis0212<<14 | 0x01<<7 | 0x4A, - 191 - 161: jis0212<<14 | 0x01<<7 | 0x23, - 192 - 161: jis0212<<14 | 0x09<<7 | 0x01, - 193 - 161: jis0212<<14 | 0x09<<7 | 0x00, - 194 - 161: jis0212<<14 | 0x09<<7 | 0x03, - 195 - 161: jis0212<<14 | 0x09<<7 | 0x09, - 196 - 161: jis0212<<14 | 0x09<<7 | 0x02, - 197 - 161: jis0212<<14 | 0x09<<7 | 0x08, - 198 - 161: jis0212<<14 | 0x08<<7 | 0x00, - 199 - 161: jis0212<<14 | 0x09<<7 | 0x0D, - 200 - 161: jis0212<<14 | 0x09<<7 | 0x11, - 201 - 161: jis0212<<14 | 0x09<<7 | 0x10, - 202 - 161: jis0212<<14 | 0x09<<7 | 0x13, - 203 - 161: jis0212<<14 | 0x09<<7 | 0x12, - 204 - 161: jis0212<<14 | 0x09<<7 | 0x1F, - 205 - 161: jis0212<<14 | 0x09<<7 | 0x1E, - 206 - 161: jis0212<<14 | 0x09<<7 | 0x21, - 207 - 161: jis0212<<14 | 0x09<<7 | 0x20, - 209 - 161: jis0212<<14 | 0x09<<7 | 0x2F, - 210 - 161: jis0212<<14 | 0x09<<7 | 0x31, - 211 - 161: jis0212<<14 | 0x09<<7 | 0x30, - 212 - 161: jis0212<<14 | 0x09<<7 | 0x33, - 213 - 161: jis0212<<14 | 0x09<<7 | 0x37, - 214 - 161: jis0212<<14 | 0x09<<7 | 0x32, - 215 - 161: jis0208<<14 | 0x00<<7 | 0x3E, - 216 - 161: jis0212<<14 | 0x08<<7 | 0x0B, - 217 - 161: jis0212<<14 | 0x09<<7 | 0x42, - 218 - 161: jis0212<<14 | 0x09<<7 | 0x41, - 219 - 161: jis0212<<14 | 0x09<<7 | 0x44, - 220 - 161: jis0212<<14 | 0x09<<7 | 0x43, - 221 - 161: jis0212<<14 | 0x09<<7 | 0x51, - 222 - 161: jis0212<<14 | 0x08<<7 | 0x0F, - 223 - 161: jis0212<<14 | 0x08<<7 | 0x2D, - 224 - 161: jis0212<<14 | 0x0A<<7 | 0x01, - 225 - 161: jis0212<<14 | 0x0A<<7 | 0x00, - 226 - 161: jis0212<<14 | 0x0A<<7 | 0x03, - 227 - 161: jis0212<<14 | 0x0A<<7 | 0x09, - 228 - 161: jis0212<<14 | 0x0A<<7 | 0x02, - 229 - 161: jis0212<<14 | 0x0A<<7 | 0x08, - 230 - 161: jis0212<<14 | 0x08<<7 | 0x20, - 231 - 161: jis0212<<14 | 0x0A<<7 | 0x0D, - 232 - 161: jis0212<<14 | 0x0A<<7 | 0x11, - 233 - 161: jis0212<<14 | 0x0A<<7 | 0x10, - 234 - 161: jis0212<<14 | 0x0A<<7 | 0x13, - 235 - 161: jis0212<<14 | 0x0A<<7 | 0x12, - 236 - 161: jis0212<<14 | 0x0A<<7 | 0x1F, - 237 - 161: jis0212<<14 | 0x0A<<7 | 0x1E, - 238 - 161: jis0212<<14 | 0x0A<<7 | 0x21, - 239 - 161: jis0212<<14 | 0x0A<<7 | 0x20, - 240 - 161: jis0212<<14 | 0x08<<7 | 0x22, - 241 - 161: jis0212<<14 | 0x0A<<7 | 0x2F, - 242 - 161: jis0212<<14 | 0x0A<<7 | 0x31, - 243 - 161: jis0212<<14 | 0x0A<<7 | 0x30, - 244 - 161: jis0212<<14 | 0x0A<<7 | 0x33, - 245 - 161: jis0212<<14 | 0x0A<<7 | 0x37, - 246 - 161: jis0212<<14 | 0x0A<<7 | 0x32, - 247 - 161: jis0208<<14 | 0x00<<7 | 0x3F, - 248 - 161: jis0212<<14 | 0x08<<7 | 0x2B, - 249 - 161: jis0212<<14 | 0x0A<<7 | 0x42, - 250 - 161: jis0212<<14 | 0x0A<<7 | 0x41, - 251 - 161: jis0212<<14 | 0x0A<<7 | 0x44, - 252 - 161: jis0212<<14 | 0x0A<<7 | 0x43, - 253 - 161: jis0212<<14 | 0x0A<<7 | 0x51, - 254 - 161: jis0212<<14 | 0x08<<7 | 0x2F, - 255 - 161: jis0212<<14 | 0x0A<<7 | 0x52, - 256 - 161: jis0212<<14 | 0x09<<7 | 0x06, - 257 - 161: jis0212<<14 | 0x0A<<7 | 0x06, - 258 - 161: jis0212<<14 | 0x09<<7 | 0x04, - 259 - 161: jis0212<<14 | 0x0A<<7 | 0x04, - 260 - 161: jis0212<<14 | 0x09<<7 | 0x07, - 261 - 161: jis0212<<14 | 0x0A<<7 | 0x07, - 262 - 161: jis0212<<14 | 0x09<<7 | 0x0A, - 263 - 161: jis0212<<14 | 0x0A<<7 | 0x0A, - 264 - 161: jis0212<<14 | 0x09<<7 | 0x0B, - 265 - 161: jis0212<<14 | 0x0A<<7 | 0x0B, - 266 - 161: jis0212<<14 | 0x09<<7 | 0x0E, - 267 - 161: jis0212<<14 | 0x0A<<7 | 0x0E, - 268 - 161: jis0212<<14 | 0x09<<7 | 0x0C, - 269 - 161: jis0212<<14 | 0x0A<<7 | 0x0C, - 270 - 161: jis0212<<14 | 0x09<<7 | 0x0F, - 271 - 161: jis0212<<14 | 0x0A<<7 | 0x0F, - 272 - 161: jis0212<<14 | 0x08<<7 | 0x01, - 273 - 161: jis0212<<14 | 0x08<<7 | 0x21, - 274 - 161: jis0212<<14 | 0x09<<7 | 0x16, - 275 - 161: jis0212<<14 | 0x0A<<7 | 0x16, - 278 - 161: jis0212<<14 | 0x09<<7 | 0x15, - 279 - 161: jis0212<<14 | 0x0A<<7 | 0x15, - 280 - 161: jis0212<<14 | 0x09<<7 | 0x17, - 281 - 161: jis0212<<14 | 0x0A<<7 | 0x17, - 282 - 161: jis0212<<14 | 0x09<<7 | 0x14, - 283 - 161: jis0212<<14 | 0x0A<<7 | 0x14, - 284 - 161: jis0212<<14 | 0x09<<7 | 0x19, - 285 - 161: jis0212<<14 | 0x0A<<7 | 0x19, - 286 - 161: jis0212<<14 | 0x09<<7 | 0x1A, - 287 - 161: jis0212<<14 | 0x0A<<7 | 0x1A, - 288 - 161: jis0212<<14 | 0x09<<7 | 0x1C, - 289 - 161: jis0212<<14 | 0x0A<<7 | 0x1C, - 290 - 161: jis0212<<14 | 0x09<<7 | 0x1B, - 292 - 161: jis0212<<14 | 0x09<<7 | 0x1D, - 293 - 161: jis0212<<14 | 0x0A<<7 | 0x1D, - 294 - 161: jis0212<<14 | 0x08<<7 | 0x03, - 295 - 161: jis0212<<14 | 0x08<<7 | 0x23, - 296 - 161: jis0212<<14 | 0x09<<7 | 0x26, - 297 - 161: jis0212<<14 | 0x0A<<7 | 0x26, - 298 - 161: jis0212<<14 | 0x09<<7 | 0x24, - 299 - 161: jis0212<<14 | 0x0A<<7 | 0x24, - 302 - 161: jis0212<<14 | 0x09<<7 | 0x25, - 303 - 161: jis0212<<14 | 0x0A<<7 | 0x25, - 304 - 161: jis0212<<14 | 0x09<<7 | 0x23, - 305 - 161: jis0212<<14 | 0x08<<7 | 0x24, - 306 - 161: jis0212<<14 | 0x08<<7 | 0x05, - 307 - 161: jis0212<<14 | 0x08<<7 | 0x25, - 308 - 161: jis0212<<14 | 0x09<<7 | 0x27, - 309 - 161: jis0212<<14 | 0x0A<<7 | 0x27, - 310 - 161: jis0212<<14 | 0x09<<7 | 0x28, - 311 - 161: jis0212<<14 | 0x0A<<7 | 0x28, - 312 - 161: jis0212<<14 | 0x08<<7 | 0x26, - 313 - 161: jis0212<<14 | 0x09<<7 | 0x29, - 314 - 161: jis0212<<14 | 0x0A<<7 | 0x29, - 315 - 161: jis0212<<14 | 0x09<<7 | 0x2B, - 316 - 161: jis0212<<14 | 0x0A<<7 | 0x2B, - 317 - 161: jis0212<<14 | 0x09<<7 | 0x2A, - 318 - 161: jis0212<<14 | 0x0A<<7 | 0x2A, - 319 - 161: jis0212<<14 | 0x08<<7 | 0x08, - 320 - 161: jis0212<<14 | 0x08<<7 | 0x28, - 321 - 161: jis0212<<14 | 0x08<<7 | 0x07, - 322 - 161: jis0212<<14 | 0x08<<7 | 0x27, - 323 - 161: jis0212<<14 | 0x09<<7 | 0x2C, - 324 - 161: jis0212<<14 | 0x0A<<7 | 0x2C, - 325 - 161: jis0212<<14 | 0x09<<7 | 0x2E, - 326 - 161: jis0212<<14 | 0x0A<<7 | 0x2E, - 327 - 161: jis0212<<14 | 0x09<<7 | 0x2D, - 328 - 161: jis0212<<14 | 0x0A<<7 | 0x2D, - 329 - 161: jis0212<<14 | 0x08<<7 | 0x29, - 330 - 161: jis0212<<14 | 0x08<<7 | 0x0A, - 331 - 161: jis0212<<14 | 0x08<<7 | 0x2A, - 332 - 161: jis0212<<14 | 0x09<<7 | 0x36, - 333 - 161: jis0212<<14 | 0x0A<<7 | 0x36, - 336 - 161: jis0212<<14 | 0x09<<7 | 0x35, - 337 - 161: jis0212<<14 | 0x0A<<7 | 0x35, - 338 - 161: jis0212<<14 | 0x08<<7 | 0x0C, - 339 - 161: jis0212<<14 | 0x08<<7 | 0x2C, - 340 - 161: jis0212<<14 | 0x09<<7 | 0x38, - 341 - 161: jis0212<<14 | 0x0A<<7 | 0x38, - 342 - 161: jis0212<<14 | 0x09<<7 | 0x3A, - 343 - 161: jis0212<<14 | 0x0A<<7 | 0x3A, - 344 - 161: jis0212<<14 | 0x09<<7 | 0x39, - 345 - 161: jis0212<<14 | 0x0A<<7 | 0x39, - 346 - 161: jis0212<<14 | 0x09<<7 | 0x3B, - 347 - 161: jis0212<<14 | 0x0A<<7 | 0x3B, - 348 - 161: jis0212<<14 | 0x09<<7 | 0x3C, - 349 - 161: jis0212<<14 | 0x0A<<7 | 0x3C, - 350 - 161: jis0212<<14 | 0x09<<7 | 0x3E, - 351 - 161: jis0212<<14 | 0x0A<<7 | 0x3E, - 352 - 161: jis0212<<14 | 0x09<<7 | 0x3D, - 353 - 161: jis0212<<14 | 0x0A<<7 | 0x3D, - 354 - 161: jis0212<<14 | 0x09<<7 | 0x40, - 355 - 161: jis0212<<14 | 0x0A<<7 | 0x40, - 356 - 161: jis0212<<14 | 0x09<<7 | 0x3F, - 357 - 161: jis0212<<14 | 0x0A<<7 | 0x3F, - 358 - 161: jis0212<<14 | 0x08<<7 | 0x0E, - 359 - 161: jis0212<<14 | 0x08<<7 | 0x2E, - 360 - 161: jis0212<<14 | 0x09<<7 | 0x4B, - 361 - 161: jis0212<<14 | 0x0A<<7 | 0x4B, - 362 - 161: jis0212<<14 | 0x09<<7 | 0x48, - 363 - 161: jis0212<<14 | 0x0A<<7 | 0x48, - 364 - 161: jis0212<<14 | 0x09<<7 | 0x45, - 365 - 161: jis0212<<14 | 0x0A<<7 | 0x45, - 366 - 161: jis0212<<14 | 0x09<<7 | 0x4A, - 367 - 161: jis0212<<14 | 0x0A<<7 | 0x4A, - 368 - 161: jis0212<<14 | 0x09<<7 | 0x47, - 369 - 161: jis0212<<14 | 0x0A<<7 | 0x47, - 370 - 161: jis0212<<14 | 0x09<<7 | 0x49, - 371 - 161: jis0212<<14 | 0x0A<<7 | 0x49, - 372 - 161: jis0212<<14 | 0x09<<7 | 0x50, - 373 - 161: jis0212<<14 | 0x0A<<7 | 0x50, - 374 - 161: jis0212<<14 | 0x09<<7 | 0x53, - 375 - 161: jis0212<<14 | 0x0A<<7 | 0x53, - 376 - 161: jis0212<<14 | 0x09<<7 | 0x52, - 377 - 161: jis0212<<14 | 0x09<<7 | 0x54, - 378 - 161: jis0212<<14 | 0x0A<<7 | 0x54, - 379 - 161: jis0212<<14 | 0x09<<7 | 0x56, - 380 - 161: jis0212<<14 | 0x0A<<7 | 0x56, - 381 - 161: jis0212<<14 | 0x09<<7 | 0x55, - 382 - 161: jis0212<<14 | 0x0A<<7 | 0x55, - 461 - 161: jis0212<<14 | 0x09<<7 | 0x05, - 462 - 161: jis0212<<14 | 0x0A<<7 | 0x05, - 463 - 161: jis0212<<14 | 0x09<<7 | 0x22, - 464 - 161: jis0212<<14 | 0x0A<<7 | 0x22, - 465 - 161: jis0212<<14 | 0x09<<7 | 0x34, - 466 - 161: jis0212<<14 | 0x0A<<7 | 0x34, - 467 - 161: jis0212<<14 | 0x09<<7 | 0x46, - 468 - 161: jis0212<<14 | 0x0A<<7 | 0x46, - 469 - 161: jis0212<<14 | 0x09<<7 | 0x4F, - 470 - 161: jis0212<<14 | 0x0A<<7 | 0x4F, - 471 - 161: jis0212<<14 | 0x09<<7 | 0x4C, - 472 - 161: jis0212<<14 | 0x0A<<7 | 0x4C, - 473 - 161: jis0212<<14 | 0x09<<7 | 0x4E, - 474 - 161: jis0212<<14 | 0x0A<<7 | 0x4E, - 475 - 161: jis0212<<14 | 0x09<<7 | 0x4D, - 476 - 161: jis0212<<14 | 0x0A<<7 | 0x4D, - 501 - 161: jis0212<<14 | 0x0A<<7 | 0x18, - 711 - 161: jis0212<<14 | 0x01<<7 | 0x0F, - 728 - 161: jis0212<<14 | 0x01<<7 | 0x0E, - 729 - 161: jis0212<<14 | 0x01<<7 | 0x11, - 730 - 161: jis0212<<14 | 0x01<<7 | 0x15, - 731 - 161: jis0212<<14 | 0x01<<7 | 0x14, - 733 - 161: jis0212<<14 | 0x01<<7 | 0x12, - 900 - 161: jis0212<<14 | 0x01<<7 | 0x17, - 901 - 161: jis0212<<14 | 0x01<<7 | 0x18, - 902 - 161: jis0212<<14 | 0x05<<7 | 0x40, - 904 - 161: jis0212<<14 | 0x05<<7 | 0x41, - 905 - 161: jis0212<<14 | 0x05<<7 | 0x42, - 906 - 161: jis0212<<14 | 0x05<<7 | 0x43, - 908 - 161: jis0212<<14 | 0x05<<7 | 0x46, - 910 - 161: jis0212<<14 | 0x05<<7 | 0x48, - 911 - 161: jis0212<<14 | 0x05<<7 | 0x4B, - 912 - 161: jis0212<<14 | 0x05<<7 | 0x55, - 913 - 161: jis0208<<14 | 0x05<<7 | 0x00, - 914 - 161: jis0208<<14 | 0x05<<7 | 0x01, - 915 - 161: jis0208<<14 | 0x05<<7 | 0x02, - 916 - 161: jis0208<<14 | 0x05<<7 | 0x03, - 917 - 161: jis0208<<14 | 0x05<<7 | 0x04, - 918 - 161: jis0208<<14 | 0x05<<7 | 0x05, - 919 - 161: jis0208<<14 | 0x05<<7 | 0x06, - 920 - 161: jis0208<<14 | 0x05<<7 | 0x07, - 921 - 161: jis0208<<14 | 0x05<<7 | 0x08, - 922 - 161: jis0208<<14 | 0x05<<7 | 0x09, - 923 - 161: jis0208<<14 | 0x05<<7 | 0x0A, - 924 - 161: jis0208<<14 | 0x05<<7 | 0x0B, - 925 - 161: jis0208<<14 | 0x05<<7 | 0x0C, - 926 - 161: jis0208<<14 | 0x05<<7 | 0x0D, - 927 - 161: jis0208<<14 | 0x05<<7 | 0x0E, - 928 - 161: jis0208<<14 | 0x05<<7 | 0x0F, - 929 - 161: jis0208<<14 | 0x05<<7 | 0x10, - 931 - 161: jis0208<<14 | 0x05<<7 | 0x11, - 932 - 161: jis0208<<14 | 0x05<<7 | 0x12, - 933 - 161: jis0208<<14 | 0x05<<7 | 0x13, - 934 - 161: jis0208<<14 | 0x05<<7 | 0x14, - 935 - 161: jis0208<<14 | 0x05<<7 | 0x15, - 936 - 161: jis0208<<14 | 0x05<<7 | 0x16, - 937 - 161: jis0208<<14 | 0x05<<7 | 0x17, - 938 - 161: jis0212<<14 | 0x05<<7 | 0x44, - 939 - 161: jis0212<<14 | 0x05<<7 | 0x49, - 940 - 161: jis0212<<14 | 0x05<<7 | 0x50, - 941 - 161: jis0212<<14 | 0x05<<7 | 0x51, - 942 - 161: jis0212<<14 | 0x05<<7 | 0x52, - 943 - 161: jis0212<<14 | 0x05<<7 | 0x53, - 944 - 161: jis0212<<14 | 0x05<<7 | 0x5A, - 945 - 161: jis0208<<14 | 0x05<<7 | 0x20, - 946 - 161: jis0208<<14 | 0x05<<7 | 0x21, - 947 - 161: jis0208<<14 | 0x05<<7 | 0x22, - 948 - 161: jis0208<<14 | 0x05<<7 | 0x23, - 949 - 161: jis0208<<14 | 0x05<<7 | 0x24, - 950 - 161: jis0208<<14 | 0x05<<7 | 0x25, - 951 - 161: jis0208<<14 | 0x05<<7 | 0x26, - 952 - 161: jis0208<<14 | 0x05<<7 | 0x27, - 953 - 161: jis0208<<14 | 0x05<<7 | 0x28, - 954 - 161: jis0208<<14 | 0x05<<7 | 0x29, - 955 - 161: jis0208<<14 | 0x05<<7 | 0x2A, - 956 - 161: jis0208<<14 | 0x05<<7 | 0x2B, - 957 - 161: jis0208<<14 | 0x05<<7 | 0x2C, - 958 - 161: jis0208<<14 | 0x05<<7 | 0x2D, - 959 - 161: jis0208<<14 | 0x05<<7 | 0x2E, - 960 - 161: jis0208<<14 | 0x05<<7 | 0x2F, - 961 - 161: jis0208<<14 | 0x05<<7 | 0x30, - 962 - 161: jis0212<<14 | 0x05<<7 | 0x57, - 963 - 161: jis0208<<14 | 0x05<<7 | 0x31, - 964 - 161: jis0208<<14 | 0x05<<7 | 0x32, - 965 - 161: jis0208<<14 | 0x05<<7 | 0x33, - 966 - 161: jis0208<<14 | 0x05<<7 | 0x34, - 967 - 161: jis0208<<14 | 0x05<<7 | 0x35, - 968 - 161: jis0208<<14 | 0x05<<7 | 0x36, - 969 - 161: jis0208<<14 | 0x05<<7 | 0x37, - 970 - 161: jis0212<<14 | 0x05<<7 | 0x54, - 971 - 161: jis0212<<14 | 0x05<<7 | 0x59, - 972 - 161: jis0212<<14 | 0x05<<7 | 0x56, - 973 - 161: jis0212<<14 | 0x05<<7 | 0x58, - 974 - 161: jis0212<<14 | 0x05<<7 | 0x5B, - 1025 - 161: jis0208<<14 | 0x06<<7 | 0x06, - 1026 - 161: jis0212<<14 | 0x06<<7 | 0x21, - 1027 - 161: jis0212<<14 | 0x06<<7 | 0x22, - 1028 - 161: jis0212<<14 | 0x06<<7 | 0x23, - 1029 - 161: jis0212<<14 | 0x06<<7 | 0x24, - 1030 - 161: jis0212<<14 | 0x06<<7 | 0x25, - 1031 - 161: jis0212<<14 | 0x06<<7 | 0x26, - 1032 - 161: jis0212<<14 | 0x06<<7 | 0x27, - 1033 - 161: jis0212<<14 | 0x06<<7 | 0x28, - 1034 - 161: jis0212<<14 | 0x06<<7 | 0x29, - 1035 - 161: jis0212<<14 | 0x06<<7 | 0x2A, - 1036 - 161: jis0212<<14 | 0x06<<7 | 0x2B, - 1038 - 161: jis0212<<14 | 0x06<<7 | 0x2C, - 1039 - 161: jis0212<<14 | 0x06<<7 | 0x2D, - 1040 - 161: jis0208<<14 | 0x06<<7 | 0x00, - 1041 - 161: jis0208<<14 | 0x06<<7 | 0x01, - 1042 - 161: jis0208<<14 | 0x06<<7 | 0x02, - 1043 - 161: jis0208<<14 | 0x06<<7 | 0x03, - 1044 - 161: jis0208<<14 | 0x06<<7 | 0x04, - 1045 - 161: jis0208<<14 | 0x06<<7 | 0x05, - 1046 - 161: jis0208<<14 | 0x06<<7 | 0x07, - 1047 - 161: jis0208<<14 | 0x06<<7 | 0x08, - 1048 - 161: jis0208<<14 | 0x06<<7 | 0x09, - 1049 - 161: jis0208<<14 | 0x06<<7 | 0x0A, - 1050 - 161: jis0208<<14 | 0x06<<7 | 0x0B, - 1051 - 161: jis0208<<14 | 0x06<<7 | 0x0C, - 1052 - 161: jis0208<<14 | 0x06<<7 | 0x0D, - 1053 - 161: jis0208<<14 | 0x06<<7 | 0x0E, - 1054 - 161: jis0208<<14 | 0x06<<7 | 0x0F, - 1055 - 161: jis0208<<14 | 0x06<<7 | 0x10, - 1056 - 161: jis0208<<14 | 0x06<<7 | 0x11, - 1057 - 161: jis0208<<14 | 0x06<<7 | 0x12, - 1058 - 161: jis0208<<14 | 0x06<<7 | 0x13, - 1059 - 161: jis0208<<14 | 0x06<<7 | 0x14, - 1060 - 161: jis0208<<14 | 0x06<<7 | 0x15, - 1061 - 161: jis0208<<14 | 0x06<<7 | 0x16, - 1062 - 161: jis0208<<14 | 0x06<<7 | 0x17, - 1063 - 161: jis0208<<14 | 0x06<<7 | 0x18, - 1064 - 161: jis0208<<14 | 0x06<<7 | 0x19, - 1065 - 161: jis0208<<14 | 0x06<<7 | 0x1A, - 1066 - 161: jis0208<<14 | 0x06<<7 | 0x1B, - 1067 - 161: jis0208<<14 | 0x06<<7 | 0x1C, - 1068 - 161: jis0208<<14 | 0x06<<7 | 0x1D, - 1069 - 161: jis0208<<14 | 0x06<<7 | 0x1E, - 1070 - 161: jis0208<<14 | 0x06<<7 | 0x1F, - 1071 - 161: jis0208<<14 | 0x06<<7 | 0x20, - 1072 - 161: jis0208<<14 | 0x06<<7 | 0x30, - 1073 - 161: jis0208<<14 | 0x06<<7 | 0x31, - 1074 - 161: jis0208<<14 | 0x06<<7 | 0x32, - 1075 - 161: jis0208<<14 | 0x06<<7 | 0x33, - 1076 - 161: jis0208<<14 | 0x06<<7 | 0x34, - 1077 - 161: jis0208<<14 | 0x06<<7 | 0x35, - 1078 - 161: jis0208<<14 | 0x06<<7 | 0x37, - 1079 - 161: jis0208<<14 | 0x06<<7 | 0x38, - 1080 - 161: jis0208<<14 | 0x06<<7 | 0x39, - 1081 - 161: jis0208<<14 | 0x06<<7 | 0x3A, - 1082 - 161: jis0208<<14 | 0x06<<7 | 0x3B, - 1083 - 161: jis0208<<14 | 0x06<<7 | 0x3C, - 1084 - 161: jis0208<<14 | 0x06<<7 | 0x3D, - 1085 - 161: jis0208<<14 | 0x06<<7 | 0x3E, - 1086 - 161: jis0208<<14 | 0x06<<7 | 0x3F, - 1087 - 161: jis0208<<14 | 0x06<<7 | 0x40, - 1088 - 161: jis0208<<14 | 0x06<<7 | 0x41, - 1089 - 161: jis0208<<14 | 0x06<<7 | 0x42, - 1090 - 161: jis0208<<14 | 0x06<<7 | 0x43, - 1091 - 161: jis0208<<14 | 0x06<<7 | 0x44, - 1092 - 161: jis0208<<14 | 0x06<<7 | 0x45, - 1093 - 161: jis0208<<14 | 0x06<<7 | 0x46, - 1094 - 161: jis0208<<14 | 0x06<<7 | 0x47, - 1095 - 161: jis0208<<14 | 0x06<<7 | 0x48, - 1096 - 161: jis0208<<14 | 0x06<<7 | 0x49, - 1097 - 161: jis0208<<14 | 0x06<<7 | 0x4A, - 1098 - 161: jis0208<<14 | 0x06<<7 | 0x4B, - 1099 - 161: jis0208<<14 | 0x06<<7 | 0x4C, - 1100 - 161: jis0208<<14 | 0x06<<7 | 0x4D, - 1101 - 161: jis0208<<14 | 0x06<<7 | 0x4E, - 1102 - 161: jis0208<<14 | 0x06<<7 | 0x4F, - 1103 - 161: jis0208<<14 | 0x06<<7 | 0x50, - 1105 - 161: jis0208<<14 | 0x06<<7 | 0x36, - 1106 - 161: jis0212<<14 | 0x06<<7 | 0x51, - 1107 - 161: jis0212<<14 | 0x06<<7 | 0x52, - 1108 - 161: jis0212<<14 | 0x06<<7 | 0x53, - 1109 - 161: jis0212<<14 | 0x06<<7 | 0x54, - 1110 - 161: jis0212<<14 | 0x06<<7 | 0x55, - 1111 - 161: jis0212<<14 | 0x06<<7 | 0x56, - 1112 - 161: jis0212<<14 | 0x06<<7 | 0x57, - 1113 - 161: jis0212<<14 | 0x06<<7 | 0x58, - 1114 - 161: jis0212<<14 | 0x06<<7 | 0x59, - 1115 - 161: jis0212<<14 | 0x06<<7 | 0x5A, - 1116 - 161: jis0212<<14 | 0x06<<7 | 0x5B, - 1118 - 161: jis0212<<14 | 0x06<<7 | 0x5C, - 1119 - 161: jis0212<<14 | 0x06<<7 | 0x5D, -} - -const encode4Low, encode4High = 63785, 64046 - -var encode4 = [...]uint16{ - 63785 - 63785: jis0208<<14 | 0x59<<7 | 0x25, - 63964 - 63785: jis0208<<14 | 0x5B<<7 | 0x2E, - 64014 - 63785: jis0208<<14 | 0x58<<7 | 0x33, - 64015 - 63785: jis0208<<14 | 0x58<<7 | 0x3E, - 64016 - 63785: jis0208<<14 | 0x58<<7 | 0x3F, - 64017 - 63785: jis0208<<14 | 0x58<<7 | 0x54, - 64018 - 63785: jis0208<<14 | 0x59<<7 | 0x1D, - 64019 - 63785: jis0208<<14 | 0x59<<7 | 0x2D, - 64020 - 63785: jis0208<<14 | 0x59<<7 | 0x2F, - 64021 - 63785: jis0208<<14 | 0x59<<7 | 0x5A, - 64022 - 63785: jis0208<<14 | 0x5A<<7 | 0x02, - 64023 - 63785: jis0208<<14 | 0x5A<<7 | 0x19, - 64024 - 63785: jis0208<<14 | 0x5A<<7 | 0x21, - 64025 - 63785: jis0208<<14 | 0x5A<<7 | 0x22, - 64026 - 63785: jis0208<<14 | 0x5A<<7 | 0x23, - 64027 - 63785: jis0208<<14 | 0x5A<<7 | 0x25, - 64028 - 63785: jis0208<<14 | 0x5A<<7 | 0x29, - 64029 - 63785: jis0208<<14 | 0x5A<<7 | 0x2C, - 64030 - 63785: jis0208<<14 | 0x5A<<7 | 0x35, - 64031 - 63785: jis0208<<14 | 0x5A<<7 | 0x40, - 64032 - 63785: jis0208<<14 | 0x5A<<7 | 0x42, - 64033 - 63785: jis0208<<14 | 0x5A<<7 | 0x43, - 64034 - 63785: jis0208<<14 | 0x5A<<7 | 0x4C, - 64035 - 63785: jis0208<<14 | 0x5A<<7 | 0x54, - 64036 - 63785: jis0208<<14 | 0x5A<<7 | 0x56, - 64037 - 63785: jis0208<<14 | 0x5A<<7 | 0x57, - 64038 - 63785: jis0208<<14 | 0x5A<<7 | 0x5A, - 64039 - 63785: jis0208<<14 | 0x5B<<7 | 0x18, - 64040 - 63785: jis0208<<14 | 0x5B<<7 | 0x1F, - 64041 - 63785: jis0208<<14 | 0x5B<<7 | 0x2F, - 64042 - 63785: jis0208<<14 | 0x5B<<7 | 0x3B, - 64043 - 63785: jis0208<<14 | 0x5B<<7 | 0x3C, - 64044 - 63785: jis0208<<14 | 0x5B<<7 | 0x3E, - 64045 - 63785: jis0208<<14 | 0x5B<<7 | 0x4B, -} - -const encode5Low, encode5High = 65281, 65510 - -var encode5 = [...]uint16{ - 65281 - 65281: jis0208<<14 | 0x00<<7 | 0x09, - 65282 - 65281: jis0208<<14 | 0x5B<<7 | 0x5D, - 65283 - 65281: jis0208<<14 | 0x00<<7 | 0x53, - 65284 - 65281: jis0208<<14 | 0x00<<7 | 0x4F, - 65285 - 65281: jis0208<<14 | 0x00<<7 | 0x52, - 65286 - 65281: jis0208<<14 | 0x00<<7 | 0x54, - 65287 - 65281: jis0208<<14 | 0x5B<<7 | 0x5C, - 65288 - 65281: jis0208<<14 | 0x00<<7 | 0x29, - 65289 - 65281: jis0208<<14 | 0x00<<7 | 0x2A, - 65290 - 65281: jis0208<<14 | 0x00<<7 | 0x55, - 65291 - 65281: jis0208<<14 | 0x00<<7 | 0x3B, - 65292 - 65281: jis0208<<14 | 0x00<<7 | 0x03, - 65293 - 65281: jis0208<<14 | 0x00<<7 | 0x3C, - 65294 - 65281: jis0208<<14 | 0x00<<7 | 0x04, - 65295 - 65281: jis0208<<14 | 0x00<<7 | 0x1E, - 65296 - 65281: jis0208<<14 | 0x02<<7 | 0x0F, - 65297 - 65281: jis0208<<14 | 0x02<<7 | 0x10, - 65298 - 65281: jis0208<<14 | 0x02<<7 | 0x11, - 65299 - 65281: jis0208<<14 | 0x02<<7 | 0x12, - 65300 - 65281: jis0208<<14 | 0x02<<7 | 0x13, - 65301 - 65281: jis0208<<14 | 0x02<<7 | 0x14, - 65302 - 65281: jis0208<<14 | 0x02<<7 | 0x15, - 65303 - 65281: jis0208<<14 | 0x02<<7 | 0x16, - 65304 - 65281: jis0208<<14 | 0x02<<7 | 0x17, - 65305 - 65281: jis0208<<14 | 0x02<<7 | 0x18, - 65306 - 65281: jis0208<<14 | 0x00<<7 | 0x06, - 65307 - 65281: jis0208<<14 | 0x00<<7 | 0x07, - 65308 - 65281: jis0208<<14 | 0x00<<7 | 0x42, - 65309 - 65281: jis0208<<14 | 0x00<<7 | 0x40, - 65310 - 65281: jis0208<<14 | 0x00<<7 | 0x43, - 65311 - 65281: jis0208<<14 | 0x00<<7 | 0x08, - 65312 - 65281: jis0208<<14 | 0x00<<7 | 0x56, - 65313 - 65281: jis0208<<14 | 0x02<<7 | 0x20, - 65314 - 65281: jis0208<<14 | 0x02<<7 | 0x21, - 65315 - 65281: jis0208<<14 | 0x02<<7 | 0x22, - 65316 - 65281: jis0208<<14 | 0x02<<7 | 0x23, - 65317 - 65281: jis0208<<14 | 0x02<<7 | 0x24, - 65318 - 65281: jis0208<<14 | 0x02<<7 | 0x25, - 65319 - 65281: jis0208<<14 | 0x02<<7 | 0x26, - 65320 - 65281: jis0208<<14 | 0x02<<7 | 0x27, - 65321 - 65281: jis0208<<14 | 0x02<<7 | 0x28, - 65322 - 65281: jis0208<<14 | 0x02<<7 | 0x29, - 65323 - 65281: jis0208<<14 | 0x02<<7 | 0x2A, - 65324 - 65281: jis0208<<14 | 0x02<<7 | 0x2B, - 65325 - 65281: jis0208<<14 | 0x02<<7 | 0x2C, - 65326 - 65281: jis0208<<14 | 0x02<<7 | 0x2D, - 65327 - 65281: jis0208<<14 | 0x02<<7 | 0x2E, - 65328 - 65281: jis0208<<14 | 0x02<<7 | 0x2F, - 65329 - 65281: jis0208<<14 | 0x02<<7 | 0x30, - 65330 - 65281: jis0208<<14 | 0x02<<7 | 0x31, - 65331 - 65281: jis0208<<14 | 0x02<<7 | 0x32, - 65332 - 65281: jis0208<<14 | 0x02<<7 | 0x33, - 65333 - 65281: jis0208<<14 | 0x02<<7 | 0x34, - 65334 - 65281: jis0208<<14 | 0x02<<7 | 0x35, - 65335 - 65281: jis0208<<14 | 0x02<<7 | 0x36, - 65336 - 65281: jis0208<<14 | 0x02<<7 | 0x37, - 65337 - 65281: jis0208<<14 | 0x02<<7 | 0x38, - 65338 - 65281: jis0208<<14 | 0x02<<7 | 0x39, - 65339 - 65281: jis0208<<14 | 0x00<<7 | 0x2D, - 65340 - 65281: jis0208<<14 | 0x00<<7 | 0x1F, - 65341 - 65281: jis0208<<14 | 0x00<<7 | 0x2E, - 65342 - 65281: jis0208<<14 | 0x00<<7 | 0x0F, - 65343 - 65281: jis0208<<14 | 0x00<<7 | 0x11, - 65344 - 65281: jis0208<<14 | 0x00<<7 | 0x0D, - 65345 - 65281: jis0208<<14 | 0x02<<7 | 0x40, - 65346 - 65281: jis0208<<14 | 0x02<<7 | 0x41, - 65347 - 65281: jis0208<<14 | 0x02<<7 | 0x42, - 65348 - 65281: jis0208<<14 | 0x02<<7 | 0x43, - 65349 - 65281: jis0208<<14 | 0x02<<7 | 0x44, - 65350 - 65281: jis0208<<14 | 0x02<<7 | 0x45, - 65351 - 65281: jis0208<<14 | 0x02<<7 | 0x46, - 65352 - 65281: jis0208<<14 | 0x02<<7 | 0x47, - 65353 - 65281: jis0208<<14 | 0x02<<7 | 0x48, - 65354 - 65281: jis0208<<14 | 0x02<<7 | 0x49, - 65355 - 65281: jis0208<<14 | 0x02<<7 | 0x4A, - 65356 - 65281: jis0208<<14 | 0x02<<7 | 0x4B, - 65357 - 65281: jis0208<<14 | 0x02<<7 | 0x4C, - 65358 - 65281: jis0208<<14 | 0x02<<7 | 0x4D, - 65359 - 65281: jis0208<<14 | 0x02<<7 | 0x4E, - 65360 - 65281: jis0208<<14 | 0x02<<7 | 0x4F, - 65361 - 65281: jis0208<<14 | 0x02<<7 | 0x50, - 65362 - 65281: jis0208<<14 | 0x02<<7 | 0x51, - 65363 - 65281: jis0208<<14 | 0x02<<7 | 0x52, - 65364 - 65281: jis0208<<14 | 0x02<<7 | 0x53, - 65365 - 65281: jis0208<<14 | 0x02<<7 | 0x54, - 65366 - 65281: jis0208<<14 | 0x02<<7 | 0x55, - 65367 - 65281: jis0208<<14 | 0x02<<7 | 0x56, - 65368 - 65281: jis0208<<14 | 0x02<<7 | 0x57, - 65369 - 65281: jis0208<<14 | 0x02<<7 | 0x58, - 65370 - 65281: jis0208<<14 | 0x02<<7 | 0x59, - 65371 - 65281: jis0208<<14 | 0x00<<7 | 0x2F, - 65372 - 65281: jis0208<<14 | 0x00<<7 | 0x22, - 65373 - 65281: jis0208<<14 | 0x00<<7 | 0x30, - 65374 - 65281: jis0208<<14 | 0x00<<7 | 0x20, - 65504 - 65281: jis0208<<14 | 0x00<<7 | 0x50, - 65505 - 65281: jis0208<<14 | 0x00<<7 | 0x51, - 65506 - 65281: jis0208<<14 | 0x01<<7 | 0x2B, - 65507 - 65281: jis0208<<14 | 0x00<<7 | 0x10, - 65508 - 65281: jis0208<<14 | 0x5B<<7 | 0x5B, - 65509 - 65281: jis0208<<14 | 0x00<<7 | 0x4E, -} diff --git a/vendor/golang.org/x/text/encoding/korean/all_test.go b/vendor/golang.org/x/text/encoding/korean/all_test.go deleted file mode 100644 index 502c262..0000000 --- a/vendor/golang.org/x/text/encoding/korean/all_test.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package korean - -import ( - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/transform" -) - -func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Decode", e.NewDecoder(), nil -} -func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement -} - -func TestNonRepertoire(t *testing.T) { - testCases := []struct { - init func(e encoding.Encoding) (string, transform.Transformer, error) - e encoding.Encoding - src, want string - }{ - {dec, EUCKR, "\xfe\xfe", "\ufffd"}, - // {dec, EUCKR, "א", "\ufffd"}, // TODO: why is this different? - - {enc, EUCKR, "א", ""}, - {enc, EUCKR, "aא", "a"}, - {enc, EUCKR, "\uac00א", "\xb0\xa1"}, - // TODO: should we also handle Jamo? - } - for _, tc := range testCases { - dir, tr, wantErr := tc.init(tc.e) - - dst, _, err := transform.String(tr, tc.src) - if err != wantErr { - t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr) - } - if got := string(dst); got != tc.want { - t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/korean/euckr.go b/vendor/golang.org/x/text/encoding/korean/euckr.go deleted file mode 100644 index a4b9ff1..0000000 --- a/vendor/golang.org/x/text/encoding/korean/euckr.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package korean - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCKR} - -// EUCKR is the EUC-KR encoding, also known as Code Page 949. -var EUCKR encoding.Encoding = &eucKR - -var eucKR = internal.Encoding{ - &internal.SimpleEncoding{eucKRDecoder{}, eucKREncoder{}}, - "EUC-KR", - identifier.EUCKR, -} - -var errInvalidEUCKR = errors.New("korean: invalid EUC-KR encoding") - -type eucKRDecoder struct{ transform.NopResetter } - -func (eucKRDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c0 < 0xc7 { - r = 178 * rune(c0-0x81) - switch { - case 0x41 <= c1 && c1 < 0x5b: - r += rune(c1) - (0x41 - 0*26) - case 0x61 <= c1 && c1 < 0x7b: - r += rune(c1) - (0x61 - 1*26) - case 0x81 <= c1 && c1 < 0xff: - r += rune(c1) - (0x81 - 2*26) - default: - err = errInvalidEUCKR - break loop - } - } else if 0xa1 <= c1 && c1 < 0xff { - r = 178*(0xc7-0x81) + rune(c0-0xc7)*94 + rune(c1-0xa1) - } else { - err = errInvalidEUCKR - break loop - } - if int(r) < len(decode) { - r = rune(decode[r]) - if r == 0 { - r = '\ufffd' - } - } else { - r = '\ufffd' - } - size = 2 - - default: - err = errInvalidEUCKR - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidEUCKR - } - return nDst, nSrc, err -} - -type eucKREncoder struct{ transform.NopResetter } - -func (eucKREncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 7 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/korean/maketables.go b/vendor/golang.org/x/text/encoding/korean/maketables.go deleted file mode 100644 index c84034f..0000000 --- a/vendor/golang.org/x/text/encoding/korean/maketables.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package korean provides Korean encodings such as EUC-KR.\n") - fmt.Printf(`package korean // import "golang.org/x/text/encoding/korean"` + "\n\n") - - res, err := http.Get("http://encoding.spec.whatwg.org/index-euc-kr.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - reverse := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 178*(0xc7-0x81)+(0xfe-0xc7)*94+(0xff-0xa1) <= x { - log.Fatalf("EUC-KR code %d is out of range", x) - } - mapping[x] = y - if reverse[y] == 0 { - c0, c1 := uint16(0), uint16(0) - if x < 178*(0xc7-0x81) { - c0 = uint16(x/178) + 0x81 - c1 = uint16(x % 178) - switch { - case c1 < 1*26: - c1 += 0x41 - case c1 < 2*26: - c1 += 0x47 - default: - c1 += 0x4d - } - } else { - x -= 178 * (0xc7 - 0x81) - c0 = uint16(x/94) + 0xc7 - c1 = uint16(x%94) + 0xa1 - } - reverse[y] = c0<<8 | c1 - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from EUC-KR code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt\n") - fmt.Printf("var decode = [...]uint16{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to EUC-KR code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/korean/tables.go b/vendor/golang.org/x/text/encoding/korean/tables.go deleted file mode 100644 index 0480e85..0000000 --- a/vendor/golang.org/x/text/encoding/korean/tables.go +++ /dev/null @@ -1,34152 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package korean provides Korean encodings such as EUC-KR. -package korean // import "golang.org/x/text/encoding/korean" - -// decode is the decoding table from EUC-KR code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt -var decode = [...]uint16{ - 0: 0xAC02, - 1: 0xAC03, - 2: 0xAC05, - 3: 0xAC06, - 4: 0xAC0B, - 5: 0xAC0C, - 6: 0xAC0D, - 7: 0xAC0E, - 8: 0xAC0F, - 9: 0xAC18, - 10: 0xAC1E, - 11: 0xAC1F, - 12: 0xAC21, - 13: 0xAC22, - 14: 0xAC23, - 15: 0xAC25, - 16: 0xAC26, - 17: 0xAC27, - 18: 0xAC28, - 19: 0xAC29, - 20: 0xAC2A, - 21: 0xAC2B, - 22: 0xAC2E, - 23: 0xAC32, - 24: 0xAC33, - 25: 0xAC34, - 26: 0xAC35, - 27: 0xAC36, - 28: 0xAC37, - 29: 0xAC3A, - 30: 0xAC3B, - 31: 0xAC3D, - 32: 0xAC3E, - 33: 0xAC3F, - 34: 0xAC41, - 35: 0xAC42, - 36: 0xAC43, - 37: 0xAC44, - 38: 0xAC45, - 39: 0xAC46, - 40: 0xAC47, - 41: 0xAC48, - 42: 0xAC49, - 43: 0xAC4A, - 44: 0xAC4C, - 45: 0xAC4E, - 46: 0xAC4F, - 47: 0xAC50, - 48: 0xAC51, - 49: 0xAC52, - 50: 0xAC53, - 51: 0xAC55, - 52: 0xAC56, - 53: 0xAC57, - 54: 0xAC59, - 55: 0xAC5A, - 56: 0xAC5B, - 57: 0xAC5D, - 58: 0xAC5E, - 59: 0xAC5F, - 60: 0xAC60, - 61: 0xAC61, - 62: 0xAC62, - 63: 0xAC63, - 64: 0xAC64, - 65: 0xAC65, - 66: 0xAC66, - 67: 0xAC67, - 68: 0xAC68, - 69: 0xAC69, - 70: 0xAC6A, - 71: 0xAC6B, - 72: 0xAC6C, - 73: 0xAC6D, - 74: 0xAC6E, - 75: 0xAC6F, - 76: 0xAC72, - 77: 0xAC73, - 78: 0xAC75, - 79: 0xAC76, - 80: 0xAC79, - 81: 0xAC7B, - 82: 0xAC7C, - 83: 0xAC7D, - 84: 0xAC7E, - 85: 0xAC7F, - 86: 0xAC82, - 87: 0xAC87, - 88: 0xAC88, - 89: 0xAC8D, - 90: 0xAC8E, - 91: 0xAC8F, - 92: 0xAC91, - 93: 0xAC92, - 94: 0xAC93, - 95: 0xAC95, - 96: 0xAC96, - 97: 0xAC97, - 98: 0xAC98, - 99: 0xAC99, - 100: 0xAC9A, - 101: 0xAC9B, - 102: 0xAC9E, - 103: 0xACA2, - 104: 0xACA3, - 105: 0xACA4, - 106: 0xACA5, - 107: 0xACA6, - 108: 0xACA7, - 109: 0xACAB, - 110: 0xACAD, - 111: 0xACAE, - 112: 0xACB1, - 113: 0xACB2, - 114: 0xACB3, - 115: 0xACB4, - 116: 0xACB5, - 117: 0xACB6, - 118: 0xACB7, - 119: 0xACBA, - 120: 0xACBE, - 121: 0xACBF, - 122: 0xACC0, - 123: 0xACC2, - 124: 0xACC3, - 125: 0xACC5, - 126: 0xACC6, - 127: 0xACC7, - 128: 0xACC9, - 129: 0xACCA, - 130: 0xACCB, - 131: 0xACCD, - 132: 0xACCE, - 133: 0xACCF, - 134: 0xACD0, - 135: 0xACD1, - 136: 0xACD2, - 137: 0xACD3, - 138: 0xACD4, - 139: 0xACD6, - 140: 0xACD8, - 141: 0xACD9, - 142: 0xACDA, - 143: 0xACDB, - 144: 0xACDC, - 145: 0xACDD, - 146: 0xACDE, - 147: 0xACDF, - 148: 0xACE2, - 149: 0xACE3, - 150: 0xACE5, - 151: 0xACE6, - 152: 0xACE9, - 153: 0xACEB, - 154: 0xACED, - 155: 0xACEE, - 156: 0xACF2, - 157: 0xACF4, - 158: 0xACF7, - 159: 0xACF8, - 160: 0xACF9, - 161: 0xACFA, - 162: 0xACFB, - 163: 0xACFE, - 164: 0xACFF, - 165: 0xAD01, - 166: 0xAD02, - 167: 0xAD03, - 168: 0xAD05, - 169: 0xAD07, - 170: 0xAD08, - 171: 0xAD09, - 172: 0xAD0A, - 173: 0xAD0B, - 174: 0xAD0E, - 175: 0xAD10, - 176: 0xAD12, - 177: 0xAD13, - 178: 0xAD14, - 179: 0xAD15, - 180: 0xAD16, - 181: 0xAD17, - 182: 0xAD19, - 183: 0xAD1A, - 184: 0xAD1B, - 185: 0xAD1D, - 186: 0xAD1E, - 187: 0xAD1F, - 188: 0xAD21, - 189: 0xAD22, - 190: 0xAD23, - 191: 0xAD24, - 192: 0xAD25, - 193: 0xAD26, - 194: 0xAD27, - 195: 0xAD28, - 196: 0xAD2A, - 197: 0xAD2B, - 198: 0xAD2E, - 199: 0xAD2F, - 200: 0xAD30, - 201: 0xAD31, - 202: 0xAD32, - 203: 0xAD33, - 204: 0xAD36, - 205: 0xAD37, - 206: 0xAD39, - 207: 0xAD3A, - 208: 0xAD3B, - 209: 0xAD3D, - 210: 0xAD3E, - 211: 0xAD3F, - 212: 0xAD40, - 213: 0xAD41, - 214: 0xAD42, - 215: 0xAD43, - 216: 0xAD46, - 217: 0xAD48, - 218: 0xAD4A, - 219: 0xAD4B, - 220: 0xAD4C, - 221: 0xAD4D, - 222: 0xAD4E, - 223: 0xAD4F, - 224: 0xAD51, - 225: 0xAD52, - 226: 0xAD53, - 227: 0xAD55, - 228: 0xAD56, - 229: 0xAD57, - 230: 0xAD59, - 231: 0xAD5A, - 232: 0xAD5B, - 233: 0xAD5C, - 234: 0xAD5D, - 235: 0xAD5E, - 236: 0xAD5F, - 237: 0xAD60, - 238: 0xAD62, - 239: 0xAD64, - 240: 0xAD65, - 241: 0xAD66, - 242: 0xAD67, - 243: 0xAD68, - 244: 0xAD69, - 245: 0xAD6A, - 246: 0xAD6B, - 247: 0xAD6E, - 248: 0xAD6F, - 249: 0xAD71, - 250: 0xAD72, - 251: 0xAD77, - 252: 0xAD78, - 253: 0xAD79, - 254: 0xAD7A, - 255: 0xAD7E, - 256: 0xAD80, - 257: 0xAD83, - 258: 0xAD84, - 259: 0xAD85, - 260: 0xAD86, - 261: 0xAD87, - 262: 0xAD8A, - 263: 0xAD8B, - 264: 0xAD8D, - 265: 0xAD8E, - 266: 0xAD8F, - 267: 0xAD91, - 268: 0xAD92, - 269: 0xAD93, - 270: 0xAD94, - 271: 0xAD95, - 272: 0xAD96, - 273: 0xAD97, - 274: 0xAD98, - 275: 0xAD99, - 276: 0xAD9A, - 277: 0xAD9B, - 278: 0xAD9E, - 279: 0xAD9F, - 280: 0xADA0, - 281: 0xADA1, - 282: 0xADA2, - 283: 0xADA3, - 284: 0xADA5, - 285: 0xADA6, - 286: 0xADA7, - 287: 0xADA8, - 288: 0xADA9, - 289: 0xADAA, - 290: 0xADAB, - 291: 0xADAC, - 292: 0xADAD, - 293: 0xADAE, - 294: 0xADAF, - 295: 0xADB0, - 296: 0xADB1, - 297: 0xADB2, - 298: 0xADB3, - 299: 0xADB4, - 300: 0xADB5, - 301: 0xADB6, - 302: 0xADB8, - 303: 0xADB9, - 304: 0xADBA, - 305: 0xADBB, - 306: 0xADBC, - 307: 0xADBD, - 308: 0xADBE, - 309: 0xADBF, - 310: 0xADC2, - 311: 0xADC3, - 312: 0xADC5, - 313: 0xADC6, - 314: 0xADC7, - 315: 0xADC9, - 316: 0xADCA, - 317: 0xADCB, - 318: 0xADCC, - 319: 0xADCD, - 320: 0xADCE, - 321: 0xADCF, - 322: 0xADD2, - 323: 0xADD4, - 324: 0xADD5, - 325: 0xADD6, - 326: 0xADD7, - 327: 0xADD8, - 328: 0xADD9, - 329: 0xADDA, - 330: 0xADDB, - 331: 0xADDD, - 332: 0xADDE, - 333: 0xADDF, - 334: 0xADE1, - 335: 0xADE2, - 336: 0xADE3, - 337: 0xADE5, - 338: 0xADE6, - 339: 0xADE7, - 340: 0xADE8, - 341: 0xADE9, - 342: 0xADEA, - 343: 0xADEB, - 344: 0xADEC, - 345: 0xADED, - 346: 0xADEE, - 347: 0xADEF, - 348: 0xADF0, - 349: 0xADF1, - 350: 0xADF2, - 351: 0xADF3, - 352: 0xADF4, - 353: 0xADF5, - 354: 0xADF6, - 355: 0xADF7, - 356: 0xADFA, - 357: 0xADFB, - 358: 0xADFD, - 359: 0xADFE, - 360: 0xAE02, - 361: 0xAE03, - 362: 0xAE04, - 363: 0xAE05, - 364: 0xAE06, - 365: 0xAE07, - 366: 0xAE0A, - 367: 0xAE0C, - 368: 0xAE0E, - 369: 0xAE0F, - 370: 0xAE10, - 371: 0xAE11, - 372: 0xAE12, - 373: 0xAE13, - 374: 0xAE15, - 375: 0xAE16, - 376: 0xAE17, - 377: 0xAE18, - 378: 0xAE19, - 379: 0xAE1A, - 380: 0xAE1B, - 381: 0xAE1C, - 382: 0xAE1D, - 383: 0xAE1E, - 384: 0xAE1F, - 385: 0xAE20, - 386: 0xAE21, - 387: 0xAE22, - 388: 0xAE23, - 389: 0xAE24, - 390: 0xAE25, - 391: 0xAE26, - 392: 0xAE27, - 393: 0xAE28, - 394: 0xAE29, - 395: 0xAE2A, - 396: 0xAE2B, - 397: 0xAE2C, - 398: 0xAE2D, - 399: 0xAE2E, - 400: 0xAE2F, - 401: 0xAE32, - 402: 0xAE33, - 403: 0xAE35, - 404: 0xAE36, - 405: 0xAE39, - 406: 0xAE3B, - 407: 0xAE3C, - 408: 0xAE3D, - 409: 0xAE3E, - 410: 0xAE3F, - 411: 0xAE42, - 412: 0xAE44, - 413: 0xAE47, - 414: 0xAE48, - 415: 0xAE49, - 416: 0xAE4B, - 417: 0xAE4F, - 418: 0xAE51, - 419: 0xAE52, - 420: 0xAE53, - 421: 0xAE55, - 422: 0xAE57, - 423: 0xAE58, - 424: 0xAE59, - 425: 0xAE5A, - 426: 0xAE5B, - 427: 0xAE5E, - 428: 0xAE62, - 429: 0xAE63, - 430: 0xAE64, - 431: 0xAE66, - 432: 0xAE67, - 433: 0xAE6A, - 434: 0xAE6B, - 435: 0xAE6D, - 436: 0xAE6E, - 437: 0xAE6F, - 438: 0xAE71, - 439: 0xAE72, - 440: 0xAE73, - 441: 0xAE74, - 442: 0xAE75, - 443: 0xAE76, - 444: 0xAE77, - 445: 0xAE7A, - 446: 0xAE7E, - 447: 0xAE7F, - 448: 0xAE80, - 449: 0xAE81, - 450: 0xAE82, - 451: 0xAE83, - 452: 0xAE86, - 453: 0xAE87, - 454: 0xAE88, - 455: 0xAE89, - 456: 0xAE8A, - 457: 0xAE8B, - 458: 0xAE8D, - 459: 0xAE8E, - 460: 0xAE8F, - 461: 0xAE90, - 462: 0xAE91, - 463: 0xAE92, - 464: 0xAE93, - 465: 0xAE94, - 466: 0xAE95, - 467: 0xAE96, - 468: 0xAE97, - 469: 0xAE98, - 470: 0xAE99, - 471: 0xAE9A, - 472: 0xAE9B, - 473: 0xAE9C, - 474: 0xAE9D, - 475: 0xAE9E, - 476: 0xAE9F, - 477: 0xAEA0, - 478: 0xAEA1, - 479: 0xAEA2, - 480: 0xAEA3, - 481: 0xAEA4, - 482: 0xAEA5, - 483: 0xAEA6, - 484: 0xAEA7, - 485: 0xAEA8, - 486: 0xAEA9, - 487: 0xAEAA, - 488: 0xAEAB, - 489: 0xAEAC, - 490: 0xAEAD, - 491: 0xAEAE, - 492: 0xAEAF, - 493: 0xAEB0, - 494: 0xAEB1, - 495: 0xAEB2, - 496: 0xAEB3, - 497: 0xAEB4, - 498: 0xAEB5, - 499: 0xAEB6, - 500: 0xAEB7, - 501: 0xAEB8, - 502: 0xAEB9, - 503: 0xAEBA, - 504: 0xAEBB, - 505: 0xAEBF, - 506: 0xAEC1, - 507: 0xAEC2, - 508: 0xAEC3, - 509: 0xAEC5, - 510: 0xAEC6, - 511: 0xAEC7, - 512: 0xAEC8, - 513: 0xAEC9, - 514: 0xAECA, - 515: 0xAECB, - 516: 0xAECE, - 517: 0xAED2, - 518: 0xAED3, - 519: 0xAED4, - 520: 0xAED5, - 521: 0xAED6, - 522: 0xAED7, - 523: 0xAEDA, - 524: 0xAEDB, - 525: 0xAEDD, - 526: 0xAEDE, - 527: 0xAEDF, - 528: 0xAEE0, - 529: 0xAEE1, - 530: 0xAEE2, - 531: 0xAEE3, - 532: 0xAEE4, - 533: 0xAEE5, - 534: 0xAEE6, - 535: 0xAEE7, - 536: 0xAEE9, - 537: 0xAEEA, - 538: 0xAEEC, - 539: 0xAEEE, - 540: 0xAEEF, - 541: 0xAEF0, - 542: 0xAEF1, - 543: 0xAEF2, - 544: 0xAEF3, - 545: 0xAEF5, - 546: 0xAEF6, - 547: 0xAEF7, - 548: 0xAEF9, - 549: 0xAEFA, - 550: 0xAEFB, - 551: 0xAEFD, - 552: 0xAEFE, - 553: 0xAEFF, - 554: 0xAF00, - 555: 0xAF01, - 556: 0xAF02, - 557: 0xAF03, - 558: 0xAF04, - 559: 0xAF05, - 560: 0xAF06, - 561: 0xAF09, - 562: 0xAF0A, - 563: 0xAF0B, - 564: 0xAF0C, - 565: 0xAF0E, - 566: 0xAF0F, - 567: 0xAF11, - 568: 0xAF12, - 569: 0xAF13, - 570: 0xAF14, - 571: 0xAF15, - 572: 0xAF16, - 573: 0xAF17, - 574: 0xAF18, - 575: 0xAF19, - 576: 0xAF1A, - 577: 0xAF1B, - 578: 0xAF1C, - 579: 0xAF1D, - 580: 0xAF1E, - 581: 0xAF1F, - 582: 0xAF20, - 583: 0xAF21, - 584: 0xAF22, - 585: 0xAF23, - 586: 0xAF24, - 587: 0xAF25, - 588: 0xAF26, - 589: 0xAF27, - 590: 0xAF28, - 591: 0xAF29, - 592: 0xAF2A, - 593: 0xAF2B, - 594: 0xAF2E, - 595: 0xAF2F, - 596: 0xAF31, - 597: 0xAF33, - 598: 0xAF35, - 599: 0xAF36, - 600: 0xAF37, - 601: 0xAF38, - 602: 0xAF39, - 603: 0xAF3A, - 604: 0xAF3B, - 605: 0xAF3E, - 606: 0xAF40, - 607: 0xAF44, - 608: 0xAF45, - 609: 0xAF46, - 610: 0xAF47, - 611: 0xAF4A, - 612: 0xAF4B, - 613: 0xAF4C, - 614: 0xAF4D, - 615: 0xAF4E, - 616: 0xAF4F, - 617: 0xAF51, - 618: 0xAF52, - 619: 0xAF53, - 620: 0xAF54, - 621: 0xAF55, - 622: 0xAF56, - 623: 0xAF57, - 624: 0xAF58, - 625: 0xAF59, - 626: 0xAF5A, - 627: 0xAF5B, - 628: 0xAF5E, - 629: 0xAF5F, - 630: 0xAF60, - 631: 0xAF61, - 632: 0xAF62, - 633: 0xAF63, - 634: 0xAF66, - 635: 0xAF67, - 636: 0xAF68, - 637: 0xAF69, - 638: 0xAF6A, - 639: 0xAF6B, - 640: 0xAF6C, - 641: 0xAF6D, - 642: 0xAF6E, - 643: 0xAF6F, - 644: 0xAF70, - 645: 0xAF71, - 646: 0xAF72, - 647: 0xAF73, - 648: 0xAF74, - 649: 0xAF75, - 650: 0xAF76, - 651: 0xAF77, - 652: 0xAF78, - 653: 0xAF7A, - 654: 0xAF7B, - 655: 0xAF7C, - 656: 0xAF7D, - 657: 0xAF7E, - 658: 0xAF7F, - 659: 0xAF81, - 660: 0xAF82, - 661: 0xAF83, - 662: 0xAF85, - 663: 0xAF86, - 664: 0xAF87, - 665: 0xAF89, - 666: 0xAF8A, - 667: 0xAF8B, - 668: 0xAF8C, - 669: 0xAF8D, - 670: 0xAF8E, - 671: 0xAF8F, - 672: 0xAF92, - 673: 0xAF93, - 674: 0xAF94, - 675: 0xAF96, - 676: 0xAF97, - 677: 0xAF98, - 678: 0xAF99, - 679: 0xAF9A, - 680: 0xAF9B, - 681: 0xAF9D, - 682: 0xAF9E, - 683: 0xAF9F, - 684: 0xAFA0, - 685: 0xAFA1, - 686: 0xAFA2, - 687: 0xAFA3, - 688: 0xAFA4, - 689: 0xAFA5, - 690: 0xAFA6, - 691: 0xAFA7, - 692: 0xAFA8, - 693: 0xAFA9, - 694: 0xAFAA, - 695: 0xAFAB, - 696: 0xAFAC, - 697: 0xAFAD, - 698: 0xAFAE, - 699: 0xAFAF, - 700: 0xAFB0, - 701: 0xAFB1, - 702: 0xAFB2, - 703: 0xAFB3, - 704: 0xAFB4, - 705: 0xAFB5, - 706: 0xAFB6, - 707: 0xAFB7, - 708: 0xAFBA, - 709: 0xAFBB, - 710: 0xAFBD, - 711: 0xAFBE, - 712: 0xAFBF, - 713: 0xAFC1, - 714: 0xAFC2, - 715: 0xAFC3, - 716: 0xAFC4, - 717: 0xAFC5, - 718: 0xAFC6, - 719: 0xAFCA, - 720: 0xAFCC, - 721: 0xAFCF, - 722: 0xAFD0, - 723: 0xAFD1, - 724: 0xAFD2, - 725: 0xAFD3, - 726: 0xAFD5, - 727: 0xAFD6, - 728: 0xAFD7, - 729: 0xAFD8, - 730: 0xAFD9, - 731: 0xAFDA, - 732: 0xAFDB, - 733: 0xAFDD, - 734: 0xAFDE, - 735: 0xAFDF, - 736: 0xAFE0, - 737: 0xAFE1, - 738: 0xAFE2, - 739: 0xAFE3, - 740: 0xAFE4, - 741: 0xAFE5, - 742: 0xAFE6, - 743: 0xAFE7, - 744: 0xAFEA, - 745: 0xAFEB, - 746: 0xAFEC, - 747: 0xAFED, - 748: 0xAFEE, - 749: 0xAFEF, - 750: 0xAFF2, - 751: 0xAFF3, - 752: 0xAFF5, - 753: 0xAFF6, - 754: 0xAFF7, - 755: 0xAFF9, - 756: 0xAFFA, - 757: 0xAFFB, - 758: 0xAFFC, - 759: 0xAFFD, - 760: 0xAFFE, - 761: 0xAFFF, - 762: 0xB002, - 763: 0xB003, - 764: 0xB005, - 765: 0xB006, - 766: 0xB007, - 767: 0xB008, - 768: 0xB009, - 769: 0xB00A, - 770: 0xB00B, - 771: 0xB00D, - 772: 0xB00E, - 773: 0xB00F, - 774: 0xB011, - 775: 0xB012, - 776: 0xB013, - 777: 0xB015, - 778: 0xB016, - 779: 0xB017, - 780: 0xB018, - 781: 0xB019, - 782: 0xB01A, - 783: 0xB01B, - 784: 0xB01E, - 785: 0xB01F, - 786: 0xB020, - 787: 0xB021, - 788: 0xB022, - 789: 0xB023, - 790: 0xB024, - 791: 0xB025, - 792: 0xB026, - 793: 0xB027, - 794: 0xB029, - 795: 0xB02A, - 796: 0xB02B, - 797: 0xB02C, - 798: 0xB02D, - 799: 0xB02E, - 800: 0xB02F, - 801: 0xB030, - 802: 0xB031, - 803: 0xB032, - 804: 0xB033, - 805: 0xB034, - 806: 0xB035, - 807: 0xB036, - 808: 0xB037, - 809: 0xB038, - 810: 0xB039, - 811: 0xB03A, - 812: 0xB03B, - 813: 0xB03C, - 814: 0xB03D, - 815: 0xB03E, - 816: 0xB03F, - 817: 0xB040, - 818: 0xB041, - 819: 0xB042, - 820: 0xB043, - 821: 0xB046, - 822: 0xB047, - 823: 0xB049, - 824: 0xB04B, - 825: 0xB04D, - 826: 0xB04F, - 827: 0xB050, - 828: 0xB051, - 829: 0xB052, - 830: 0xB056, - 831: 0xB058, - 832: 0xB05A, - 833: 0xB05B, - 834: 0xB05C, - 835: 0xB05E, - 836: 0xB05F, - 837: 0xB060, - 838: 0xB061, - 839: 0xB062, - 840: 0xB063, - 841: 0xB064, - 842: 0xB065, - 843: 0xB066, - 844: 0xB067, - 845: 0xB068, - 846: 0xB069, - 847: 0xB06A, - 848: 0xB06B, - 849: 0xB06C, - 850: 0xB06D, - 851: 0xB06E, - 852: 0xB06F, - 853: 0xB070, - 854: 0xB071, - 855: 0xB072, - 856: 0xB073, - 857: 0xB074, - 858: 0xB075, - 859: 0xB076, - 860: 0xB077, - 861: 0xB078, - 862: 0xB079, - 863: 0xB07A, - 864: 0xB07B, - 865: 0xB07E, - 866: 0xB07F, - 867: 0xB081, - 868: 0xB082, - 869: 0xB083, - 870: 0xB085, - 871: 0xB086, - 872: 0xB087, - 873: 0xB088, - 874: 0xB089, - 875: 0xB08A, - 876: 0xB08B, - 877: 0xB08E, - 878: 0xB090, - 879: 0xB092, - 880: 0xB093, - 881: 0xB094, - 882: 0xB095, - 883: 0xB096, - 884: 0xB097, - 885: 0xB09B, - 886: 0xB09D, - 887: 0xB09E, - 888: 0xB0A3, - 889: 0xB0A4, - 890: 0xB0A5, - 891: 0xB0A6, - 892: 0xB0A7, - 893: 0xB0AA, - 894: 0xB0B0, - 895: 0xB0B2, - 896: 0xB0B6, - 897: 0xB0B7, - 898: 0xB0B9, - 899: 0xB0BA, - 900: 0xB0BB, - 901: 0xB0BD, - 902: 0xB0BE, - 903: 0xB0BF, - 904: 0xB0C0, - 905: 0xB0C1, - 906: 0xB0C2, - 907: 0xB0C3, - 908: 0xB0C6, - 909: 0xB0CA, - 910: 0xB0CB, - 911: 0xB0CC, - 912: 0xB0CD, - 913: 0xB0CE, - 914: 0xB0CF, - 915: 0xB0D2, - 916: 0xB0D3, - 917: 0xB0D5, - 918: 0xB0D6, - 919: 0xB0D7, - 920: 0xB0D9, - 921: 0xB0DA, - 922: 0xB0DB, - 923: 0xB0DC, - 924: 0xB0DD, - 925: 0xB0DE, - 926: 0xB0DF, - 927: 0xB0E1, - 928: 0xB0E2, - 929: 0xB0E3, - 930: 0xB0E4, - 931: 0xB0E6, - 932: 0xB0E7, - 933: 0xB0E8, - 934: 0xB0E9, - 935: 0xB0EA, - 936: 0xB0EB, - 937: 0xB0EC, - 938: 0xB0ED, - 939: 0xB0EE, - 940: 0xB0EF, - 941: 0xB0F0, - 942: 0xB0F1, - 943: 0xB0F2, - 944: 0xB0F3, - 945: 0xB0F4, - 946: 0xB0F5, - 947: 0xB0F6, - 948: 0xB0F7, - 949: 0xB0F8, - 950: 0xB0F9, - 951: 0xB0FA, - 952: 0xB0FB, - 953: 0xB0FC, - 954: 0xB0FD, - 955: 0xB0FE, - 956: 0xB0FF, - 957: 0xB100, - 958: 0xB101, - 959: 0xB102, - 960: 0xB103, - 961: 0xB104, - 962: 0xB105, - 963: 0xB106, - 964: 0xB107, - 965: 0xB10A, - 966: 0xB10D, - 967: 0xB10E, - 968: 0xB10F, - 969: 0xB111, - 970: 0xB114, - 971: 0xB115, - 972: 0xB116, - 973: 0xB117, - 974: 0xB11A, - 975: 0xB11E, - 976: 0xB11F, - 977: 0xB120, - 978: 0xB121, - 979: 0xB122, - 980: 0xB126, - 981: 0xB127, - 982: 0xB129, - 983: 0xB12A, - 984: 0xB12B, - 985: 0xB12D, - 986: 0xB12E, - 987: 0xB12F, - 988: 0xB130, - 989: 0xB131, - 990: 0xB132, - 991: 0xB133, - 992: 0xB136, - 993: 0xB13A, - 994: 0xB13B, - 995: 0xB13C, - 996: 0xB13D, - 997: 0xB13E, - 998: 0xB13F, - 999: 0xB142, - 1000: 0xB143, - 1001: 0xB145, - 1002: 0xB146, - 1003: 0xB147, - 1004: 0xB149, - 1005: 0xB14A, - 1006: 0xB14B, - 1007: 0xB14C, - 1008: 0xB14D, - 1009: 0xB14E, - 1010: 0xB14F, - 1011: 0xB152, - 1012: 0xB153, - 1013: 0xB156, - 1014: 0xB157, - 1015: 0xB159, - 1016: 0xB15A, - 1017: 0xB15B, - 1018: 0xB15D, - 1019: 0xB15E, - 1020: 0xB15F, - 1021: 0xB161, - 1022: 0xB162, - 1023: 0xB163, - 1024: 0xB164, - 1025: 0xB165, - 1026: 0xB166, - 1027: 0xB167, - 1028: 0xB168, - 1029: 0xB169, - 1030: 0xB16A, - 1031: 0xB16B, - 1032: 0xB16C, - 1033: 0xB16D, - 1034: 0xB16E, - 1035: 0xB16F, - 1036: 0xB170, - 1037: 0xB171, - 1038: 0xB172, - 1039: 0xB173, - 1040: 0xB174, - 1041: 0xB175, - 1042: 0xB176, - 1043: 0xB177, - 1044: 0xB17A, - 1045: 0xB17B, - 1046: 0xB17D, - 1047: 0xB17E, - 1048: 0xB17F, - 1049: 0xB181, - 1050: 0xB183, - 1051: 0xB184, - 1052: 0xB185, - 1053: 0xB186, - 1054: 0xB187, - 1055: 0xB18A, - 1056: 0xB18C, - 1057: 0xB18E, - 1058: 0xB18F, - 1059: 0xB190, - 1060: 0xB191, - 1061: 0xB195, - 1062: 0xB196, - 1063: 0xB197, - 1064: 0xB199, - 1065: 0xB19A, - 1066: 0xB19B, - 1067: 0xB19D, - 1068: 0xB19E, - 1069: 0xB19F, - 1070: 0xB1A0, - 1071: 0xB1A1, - 1072: 0xB1A2, - 1073: 0xB1A3, - 1074: 0xB1A4, - 1075: 0xB1A5, - 1076: 0xB1A6, - 1077: 0xB1A7, - 1078: 0xB1A9, - 1079: 0xB1AA, - 1080: 0xB1AB, - 1081: 0xB1AC, - 1082: 0xB1AD, - 1083: 0xB1AE, - 1084: 0xB1AF, - 1085: 0xB1B0, - 1086: 0xB1B1, - 1087: 0xB1B2, - 1088: 0xB1B3, - 1089: 0xB1B4, - 1090: 0xB1B5, - 1091: 0xB1B6, - 1092: 0xB1B7, - 1093: 0xB1B8, - 1094: 0xB1B9, - 1095: 0xB1BA, - 1096: 0xB1BB, - 1097: 0xB1BC, - 1098: 0xB1BD, - 1099: 0xB1BE, - 1100: 0xB1BF, - 1101: 0xB1C0, - 1102: 0xB1C1, - 1103: 0xB1C2, - 1104: 0xB1C3, - 1105: 0xB1C4, - 1106: 0xB1C5, - 1107: 0xB1C6, - 1108: 0xB1C7, - 1109: 0xB1C8, - 1110: 0xB1C9, - 1111: 0xB1CA, - 1112: 0xB1CB, - 1113: 0xB1CD, - 1114: 0xB1CE, - 1115: 0xB1CF, - 1116: 0xB1D1, - 1117: 0xB1D2, - 1118: 0xB1D3, - 1119: 0xB1D5, - 1120: 0xB1D6, - 1121: 0xB1D7, - 1122: 0xB1D8, - 1123: 0xB1D9, - 1124: 0xB1DA, - 1125: 0xB1DB, - 1126: 0xB1DE, - 1127: 0xB1E0, - 1128: 0xB1E1, - 1129: 0xB1E2, - 1130: 0xB1E3, - 1131: 0xB1E4, - 1132: 0xB1E5, - 1133: 0xB1E6, - 1134: 0xB1E7, - 1135: 0xB1EA, - 1136: 0xB1EB, - 1137: 0xB1ED, - 1138: 0xB1EE, - 1139: 0xB1EF, - 1140: 0xB1F1, - 1141: 0xB1F2, - 1142: 0xB1F3, - 1143: 0xB1F4, - 1144: 0xB1F5, - 1145: 0xB1F6, - 1146: 0xB1F7, - 1147: 0xB1F8, - 1148: 0xB1FA, - 1149: 0xB1FC, - 1150: 0xB1FE, - 1151: 0xB1FF, - 1152: 0xB200, - 1153: 0xB201, - 1154: 0xB202, - 1155: 0xB203, - 1156: 0xB206, - 1157: 0xB207, - 1158: 0xB209, - 1159: 0xB20A, - 1160: 0xB20D, - 1161: 0xB20E, - 1162: 0xB20F, - 1163: 0xB210, - 1164: 0xB211, - 1165: 0xB212, - 1166: 0xB213, - 1167: 0xB216, - 1168: 0xB218, - 1169: 0xB21A, - 1170: 0xB21B, - 1171: 0xB21C, - 1172: 0xB21D, - 1173: 0xB21E, - 1174: 0xB21F, - 1175: 0xB221, - 1176: 0xB222, - 1177: 0xB223, - 1178: 0xB224, - 1179: 0xB225, - 1180: 0xB226, - 1181: 0xB227, - 1182: 0xB228, - 1183: 0xB229, - 1184: 0xB22A, - 1185: 0xB22B, - 1186: 0xB22C, - 1187: 0xB22D, - 1188: 0xB22E, - 1189: 0xB22F, - 1190: 0xB230, - 1191: 0xB231, - 1192: 0xB232, - 1193: 0xB233, - 1194: 0xB235, - 1195: 0xB236, - 1196: 0xB237, - 1197: 0xB238, - 1198: 0xB239, - 1199: 0xB23A, - 1200: 0xB23B, - 1201: 0xB23D, - 1202: 0xB23E, - 1203: 0xB23F, - 1204: 0xB240, - 1205: 0xB241, - 1206: 0xB242, - 1207: 0xB243, - 1208: 0xB244, - 1209: 0xB245, - 1210: 0xB246, - 1211: 0xB247, - 1212: 0xB248, - 1213: 0xB249, - 1214: 0xB24A, - 1215: 0xB24B, - 1216: 0xB24C, - 1217: 0xB24D, - 1218: 0xB24E, - 1219: 0xB24F, - 1220: 0xB250, - 1221: 0xB251, - 1222: 0xB252, - 1223: 0xB253, - 1224: 0xB254, - 1225: 0xB255, - 1226: 0xB256, - 1227: 0xB257, - 1228: 0xB259, - 1229: 0xB25A, - 1230: 0xB25B, - 1231: 0xB25D, - 1232: 0xB25E, - 1233: 0xB25F, - 1234: 0xB261, - 1235: 0xB262, - 1236: 0xB263, - 1237: 0xB264, - 1238: 0xB265, - 1239: 0xB266, - 1240: 0xB267, - 1241: 0xB26A, - 1242: 0xB26B, - 1243: 0xB26C, - 1244: 0xB26D, - 1245: 0xB26E, - 1246: 0xB26F, - 1247: 0xB270, - 1248: 0xB271, - 1249: 0xB272, - 1250: 0xB273, - 1251: 0xB276, - 1252: 0xB277, - 1253: 0xB278, - 1254: 0xB279, - 1255: 0xB27A, - 1256: 0xB27B, - 1257: 0xB27D, - 1258: 0xB27E, - 1259: 0xB27F, - 1260: 0xB280, - 1261: 0xB281, - 1262: 0xB282, - 1263: 0xB283, - 1264: 0xB286, - 1265: 0xB287, - 1266: 0xB288, - 1267: 0xB28A, - 1268: 0xB28B, - 1269: 0xB28C, - 1270: 0xB28D, - 1271: 0xB28E, - 1272: 0xB28F, - 1273: 0xB292, - 1274: 0xB293, - 1275: 0xB295, - 1276: 0xB296, - 1277: 0xB297, - 1278: 0xB29B, - 1279: 0xB29C, - 1280: 0xB29D, - 1281: 0xB29E, - 1282: 0xB29F, - 1283: 0xB2A2, - 1284: 0xB2A4, - 1285: 0xB2A7, - 1286: 0xB2A8, - 1287: 0xB2A9, - 1288: 0xB2AB, - 1289: 0xB2AD, - 1290: 0xB2AE, - 1291: 0xB2AF, - 1292: 0xB2B1, - 1293: 0xB2B2, - 1294: 0xB2B3, - 1295: 0xB2B5, - 1296: 0xB2B6, - 1297: 0xB2B7, - 1298: 0xB2B8, - 1299: 0xB2B9, - 1300: 0xB2BA, - 1301: 0xB2BB, - 1302: 0xB2BC, - 1303: 0xB2BD, - 1304: 0xB2BE, - 1305: 0xB2BF, - 1306: 0xB2C0, - 1307: 0xB2C1, - 1308: 0xB2C2, - 1309: 0xB2C3, - 1310: 0xB2C4, - 1311: 0xB2C5, - 1312: 0xB2C6, - 1313: 0xB2C7, - 1314: 0xB2CA, - 1315: 0xB2CB, - 1316: 0xB2CD, - 1317: 0xB2CE, - 1318: 0xB2CF, - 1319: 0xB2D1, - 1320: 0xB2D3, - 1321: 0xB2D4, - 1322: 0xB2D5, - 1323: 0xB2D6, - 1324: 0xB2D7, - 1325: 0xB2DA, - 1326: 0xB2DC, - 1327: 0xB2DE, - 1328: 0xB2DF, - 1329: 0xB2E0, - 1330: 0xB2E1, - 1331: 0xB2E3, - 1332: 0xB2E7, - 1333: 0xB2E9, - 1334: 0xB2EA, - 1335: 0xB2F0, - 1336: 0xB2F1, - 1337: 0xB2F2, - 1338: 0xB2F6, - 1339: 0xB2FC, - 1340: 0xB2FD, - 1341: 0xB2FE, - 1342: 0xB302, - 1343: 0xB303, - 1344: 0xB305, - 1345: 0xB306, - 1346: 0xB307, - 1347: 0xB309, - 1348: 0xB30A, - 1349: 0xB30B, - 1350: 0xB30C, - 1351: 0xB30D, - 1352: 0xB30E, - 1353: 0xB30F, - 1354: 0xB312, - 1355: 0xB316, - 1356: 0xB317, - 1357: 0xB318, - 1358: 0xB319, - 1359: 0xB31A, - 1360: 0xB31B, - 1361: 0xB31D, - 1362: 0xB31E, - 1363: 0xB31F, - 1364: 0xB320, - 1365: 0xB321, - 1366: 0xB322, - 1367: 0xB323, - 1368: 0xB324, - 1369: 0xB325, - 1370: 0xB326, - 1371: 0xB327, - 1372: 0xB328, - 1373: 0xB329, - 1374: 0xB32A, - 1375: 0xB32B, - 1376: 0xB32C, - 1377: 0xB32D, - 1378: 0xB32E, - 1379: 0xB32F, - 1380: 0xB330, - 1381: 0xB331, - 1382: 0xB332, - 1383: 0xB333, - 1384: 0xB334, - 1385: 0xB335, - 1386: 0xB336, - 1387: 0xB337, - 1388: 0xB338, - 1389: 0xB339, - 1390: 0xB33A, - 1391: 0xB33B, - 1392: 0xB33C, - 1393: 0xB33D, - 1394: 0xB33E, - 1395: 0xB33F, - 1396: 0xB340, - 1397: 0xB341, - 1398: 0xB342, - 1399: 0xB343, - 1400: 0xB344, - 1401: 0xB345, - 1402: 0xB346, - 1403: 0xB347, - 1404: 0xB348, - 1405: 0xB349, - 1406: 0xB34A, - 1407: 0xB34B, - 1408: 0xB34C, - 1409: 0xB34D, - 1410: 0xB34E, - 1411: 0xB34F, - 1412: 0xB350, - 1413: 0xB351, - 1414: 0xB352, - 1415: 0xB353, - 1416: 0xB357, - 1417: 0xB359, - 1418: 0xB35A, - 1419: 0xB35D, - 1420: 0xB360, - 1421: 0xB361, - 1422: 0xB362, - 1423: 0xB363, - 1424: 0xB366, - 1425: 0xB368, - 1426: 0xB36A, - 1427: 0xB36C, - 1428: 0xB36D, - 1429: 0xB36F, - 1430: 0xB372, - 1431: 0xB373, - 1432: 0xB375, - 1433: 0xB376, - 1434: 0xB377, - 1435: 0xB379, - 1436: 0xB37A, - 1437: 0xB37B, - 1438: 0xB37C, - 1439: 0xB37D, - 1440: 0xB37E, - 1441: 0xB37F, - 1442: 0xB382, - 1443: 0xB386, - 1444: 0xB387, - 1445: 0xB388, - 1446: 0xB389, - 1447: 0xB38A, - 1448: 0xB38B, - 1449: 0xB38D, - 1450: 0xB38E, - 1451: 0xB38F, - 1452: 0xB391, - 1453: 0xB392, - 1454: 0xB393, - 1455: 0xB395, - 1456: 0xB396, - 1457: 0xB397, - 1458: 0xB398, - 1459: 0xB399, - 1460: 0xB39A, - 1461: 0xB39B, - 1462: 0xB39C, - 1463: 0xB39D, - 1464: 0xB39E, - 1465: 0xB39F, - 1466: 0xB3A2, - 1467: 0xB3A3, - 1468: 0xB3A4, - 1469: 0xB3A5, - 1470: 0xB3A6, - 1471: 0xB3A7, - 1472: 0xB3A9, - 1473: 0xB3AA, - 1474: 0xB3AB, - 1475: 0xB3AD, - 1476: 0xB3AE, - 1477: 0xB3AF, - 1478: 0xB3B0, - 1479: 0xB3B1, - 1480: 0xB3B2, - 1481: 0xB3B3, - 1482: 0xB3B4, - 1483: 0xB3B5, - 1484: 0xB3B6, - 1485: 0xB3B7, - 1486: 0xB3B8, - 1487: 0xB3B9, - 1488: 0xB3BA, - 1489: 0xB3BB, - 1490: 0xB3BC, - 1491: 0xB3BD, - 1492: 0xB3BE, - 1493: 0xB3BF, - 1494: 0xB3C0, - 1495: 0xB3C1, - 1496: 0xB3C2, - 1497: 0xB3C3, - 1498: 0xB3C6, - 1499: 0xB3C7, - 1500: 0xB3C9, - 1501: 0xB3CA, - 1502: 0xB3CD, - 1503: 0xB3CF, - 1504: 0xB3D1, - 1505: 0xB3D2, - 1506: 0xB3D3, - 1507: 0xB3D6, - 1508: 0xB3D8, - 1509: 0xB3DA, - 1510: 0xB3DC, - 1511: 0xB3DE, - 1512: 0xB3DF, - 1513: 0xB3E1, - 1514: 0xB3E2, - 1515: 0xB3E3, - 1516: 0xB3E5, - 1517: 0xB3E6, - 1518: 0xB3E7, - 1519: 0xB3E9, - 1520: 0xB3EA, - 1521: 0xB3EB, - 1522: 0xB3EC, - 1523: 0xB3ED, - 1524: 0xB3EE, - 1525: 0xB3EF, - 1526: 0xB3F0, - 1527: 0xB3F1, - 1528: 0xB3F2, - 1529: 0xB3F3, - 1530: 0xB3F4, - 1531: 0xB3F5, - 1532: 0xB3F6, - 1533: 0xB3F7, - 1534: 0xB3F8, - 1535: 0xB3F9, - 1536: 0xB3FA, - 1537: 0xB3FB, - 1538: 0xB3FD, - 1539: 0xB3FE, - 1540: 0xB3FF, - 1541: 0xB400, - 1542: 0xB401, - 1543: 0xB402, - 1544: 0xB403, - 1545: 0xB404, - 1546: 0xB405, - 1547: 0xB406, - 1548: 0xB407, - 1549: 0xB408, - 1550: 0xB409, - 1551: 0xB40A, - 1552: 0xB40B, - 1553: 0xB40C, - 1554: 0xB40D, - 1555: 0xB40E, - 1556: 0xB40F, - 1557: 0xB411, - 1558: 0xB412, - 1559: 0xB413, - 1560: 0xB414, - 1561: 0xB415, - 1562: 0xB416, - 1563: 0xB417, - 1564: 0xB419, - 1565: 0xB41A, - 1566: 0xB41B, - 1567: 0xB41D, - 1568: 0xB41E, - 1569: 0xB41F, - 1570: 0xB421, - 1571: 0xB422, - 1572: 0xB423, - 1573: 0xB424, - 1574: 0xB425, - 1575: 0xB426, - 1576: 0xB427, - 1577: 0xB42A, - 1578: 0xB42C, - 1579: 0xB42D, - 1580: 0xB42E, - 1581: 0xB42F, - 1582: 0xB430, - 1583: 0xB431, - 1584: 0xB432, - 1585: 0xB433, - 1586: 0xB435, - 1587: 0xB436, - 1588: 0xB437, - 1589: 0xB438, - 1590: 0xB439, - 1591: 0xB43A, - 1592: 0xB43B, - 1593: 0xB43C, - 1594: 0xB43D, - 1595: 0xB43E, - 1596: 0xB43F, - 1597: 0xB440, - 1598: 0xB441, - 1599: 0xB442, - 1600: 0xB443, - 1601: 0xB444, - 1602: 0xB445, - 1603: 0xB446, - 1604: 0xB447, - 1605: 0xB448, - 1606: 0xB449, - 1607: 0xB44A, - 1608: 0xB44B, - 1609: 0xB44C, - 1610: 0xB44D, - 1611: 0xB44E, - 1612: 0xB44F, - 1613: 0xB452, - 1614: 0xB453, - 1615: 0xB455, - 1616: 0xB456, - 1617: 0xB457, - 1618: 0xB459, - 1619: 0xB45A, - 1620: 0xB45B, - 1621: 0xB45C, - 1622: 0xB45D, - 1623: 0xB45E, - 1624: 0xB45F, - 1625: 0xB462, - 1626: 0xB464, - 1627: 0xB466, - 1628: 0xB467, - 1629: 0xB468, - 1630: 0xB469, - 1631: 0xB46A, - 1632: 0xB46B, - 1633: 0xB46D, - 1634: 0xB46E, - 1635: 0xB46F, - 1636: 0xB470, - 1637: 0xB471, - 1638: 0xB472, - 1639: 0xB473, - 1640: 0xB474, - 1641: 0xB475, - 1642: 0xB476, - 1643: 0xB477, - 1644: 0xB478, - 1645: 0xB479, - 1646: 0xB47A, - 1647: 0xB47B, - 1648: 0xB47C, - 1649: 0xB47D, - 1650: 0xB47E, - 1651: 0xB47F, - 1652: 0xB481, - 1653: 0xB482, - 1654: 0xB483, - 1655: 0xB484, - 1656: 0xB485, - 1657: 0xB486, - 1658: 0xB487, - 1659: 0xB489, - 1660: 0xB48A, - 1661: 0xB48B, - 1662: 0xB48C, - 1663: 0xB48D, - 1664: 0xB48E, - 1665: 0xB48F, - 1666: 0xB490, - 1667: 0xB491, - 1668: 0xB492, - 1669: 0xB493, - 1670: 0xB494, - 1671: 0xB495, - 1672: 0xB496, - 1673: 0xB497, - 1674: 0xB498, - 1675: 0xB499, - 1676: 0xB49A, - 1677: 0xB49B, - 1678: 0xB49C, - 1679: 0xB49E, - 1680: 0xB49F, - 1681: 0xB4A0, - 1682: 0xB4A1, - 1683: 0xB4A2, - 1684: 0xB4A3, - 1685: 0xB4A5, - 1686: 0xB4A6, - 1687: 0xB4A7, - 1688: 0xB4A9, - 1689: 0xB4AA, - 1690: 0xB4AB, - 1691: 0xB4AD, - 1692: 0xB4AE, - 1693: 0xB4AF, - 1694: 0xB4B0, - 1695: 0xB4B1, - 1696: 0xB4B2, - 1697: 0xB4B3, - 1698: 0xB4B4, - 1699: 0xB4B6, - 1700: 0xB4B8, - 1701: 0xB4BA, - 1702: 0xB4BB, - 1703: 0xB4BC, - 1704: 0xB4BD, - 1705: 0xB4BE, - 1706: 0xB4BF, - 1707: 0xB4C1, - 1708: 0xB4C2, - 1709: 0xB4C3, - 1710: 0xB4C5, - 1711: 0xB4C6, - 1712: 0xB4C7, - 1713: 0xB4C9, - 1714: 0xB4CA, - 1715: 0xB4CB, - 1716: 0xB4CC, - 1717: 0xB4CD, - 1718: 0xB4CE, - 1719: 0xB4CF, - 1720: 0xB4D1, - 1721: 0xB4D2, - 1722: 0xB4D3, - 1723: 0xB4D4, - 1724: 0xB4D6, - 1725: 0xB4D7, - 1726: 0xB4D8, - 1727: 0xB4D9, - 1728: 0xB4DA, - 1729: 0xB4DB, - 1730: 0xB4DE, - 1731: 0xB4DF, - 1732: 0xB4E1, - 1733: 0xB4E2, - 1734: 0xB4E5, - 1735: 0xB4E7, - 1736: 0xB4E8, - 1737: 0xB4E9, - 1738: 0xB4EA, - 1739: 0xB4EB, - 1740: 0xB4EE, - 1741: 0xB4F0, - 1742: 0xB4F2, - 1743: 0xB4F3, - 1744: 0xB4F4, - 1745: 0xB4F5, - 1746: 0xB4F6, - 1747: 0xB4F7, - 1748: 0xB4F9, - 1749: 0xB4FA, - 1750: 0xB4FB, - 1751: 0xB4FC, - 1752: 0xB4FD, - 1753: 0xB4FE, - 1754: 0xB4FF, - 1755: 0xB500, - 1756: 0xB501, - 1757: 0xB502, - 1758: 0xB503, - 1759: 0xB504, - 1760: 0xB505, - 1761: 0xB506, - 1762: 0xB507, - 1763: 0xB508, - 1764: 0xB509, - 1765: 0xB50A, - 1766: 0xB50B, - 1767: 0xB50C, - 1768: 0xB50D, - 1769: 0xB50E, - 1770: 0xB50F, - 1771: 0xB510, - 1772: 0xB511, - 1773: 0xB512, - 1774: 0xB513, - 1775: 0xB516, - 1776: 0xB517, - 1777: 0xB519, - 1778: 0xB51A, - 1779: 0xB51D, - 1780: 0xB51E, - 1781: 0xB51F, - 1782: 0xB520, - 1783: 0xB521, - 1784: 0xB522, - 1785: 0xB523, - 1786: 0xB526, - 1787: 0xB52B, - 1788: 0xB52C, - 1789: 0xB52D, - 1790: 0xB52E, - 1791: 0xB52F, - 1792: 0xB532, - 1793: 0xB533, - 1794: 0xB535, - 1795: 0xB536, - 1796: 0xB537, - 1797: 0xB539, - 1798: 0xB53A, - 1799: 0xB53B, - 1800: 0xB53C, - 1801: 0xB53D, - 1802: 0xB53E, - 1803: 0xB53F, - 1804: 0xB542, - 1805: 0xB546, - 1806: 0xB547, - 1807: 0xB548, - 1808: 0xB549, - 1809: 0xB54A, - 1810: 0xB54E, - 1811: 0xB54F, - 1812: 0xB551, - 1813: 0xB552, - 1814: 0xB553, - 1815: 0xB555, - 1816: 0xB556, - 1817: 0xB557, - 1818: 0xB558, - 1819: 0xB559, - 1820: 0xB55A, - 1821: 0xB55B, - 1822: 0xB55E, - 1823: 0xB562, - 1824: 0xB563, - 1825: 0xB564, - 1826: 0xB565, - 1827: 0xB566, - 1828: 0xB567, - 1829: 0xB568, - 1830: 0xB569, - 1831: 0xB56A, - 1832: 0xB56B, - 1833: 0xB56C, - 1834: 0xB56D, - 1835: 0xB56E, - 1836: 0xB56F, - 1837: 0xB570, - 1838: 0xB571, - 1839: 0xB572, - 1840: 0xB573, - 1841: 0xB574, - 1842: 0xB575, - 1843: 0xB576, - 1844: 0xB577, - 1845: 0xB578, - 1846: 0xB579, - 1847: 0xB57A, - 1848: 0xB57B, - 1849: 0xB57C, - 1850: 0xB57D, - 1851: 0xB57E, - 1852: 0xB57F, - 1853: 0xB580, - 1854: 0xB581, - 1855: 0xB582, - 1856: 0xB583, - 1857: 0xB584, - 1858: 0xB585, - 1859: 0xB586, - 1860: 0xB587, - 1861: 0xB588, - 1862: 0xB589, - 1863: 0xB58A, - 1864: 0xB58B, - 1865: 0xB58C, - 1866: 0xB58D, - 1867: 0xB58E, - 1868: 0xB58F, - 1869: 0xB590, - 1870: 0xB591, - 1871: 0xB592, - 1872: 0xB593, - 1873: 0xB594, - 1874: 0xB595, - 1875: 0xB596, - 1876: 0xB597, - 1877: 0xB598, - 1878: 0xB599, - 1879: 0xB59A, - 1880: 0xB59B, - 1881: 0xB59C, - 1882: 0xB59D, - 1883: 0xB59E, - 1884: 0xB59F, - 1885: 0xB5A2, - 1886: 0xB5A3, - 1887: 0xB5A5, - 1888: 0xB5A6, - 1889: 0xB5A7, - 1890: 0xB5A9, - 1891: 0xB5AC, - 1892: 0xB5AD, - 1893: 0xB5AE, - 1894: 0xB5AF, - 1895: 0xB5B2, - 1896: 0xB5B6, - 1897: 0xB5B7, - 1898: 0xB5B8, - 1899: 0xB5B9, - 1900: 0xB5BA, - 1901: 0xB5BE, - 1902: 0xB5BF, - 1903: 0xB5C1, - 1904: 0xB5C2, - 1905: 0xB5C3, - 1906: 0xB5C5, - 1907: 0xB5C6, - 1908: 0xB5C7, - 1909: 0xB5C8, - 1910: 0xB5C9, - 1911: 0xB5CA, - 1912: 0xB5CB, - 1913: 0xB5CE, - 1914: 0xB5D2, - 1915: 0xB5D3, - 1916: 0xB5D4, - 1917: 0xB5D5, - 1918: 0xB5D6, - 1919: 0xB5D7, - 1920: 0xB5D9, - 1921: 0xB5DA, - 1922: 0xB5DB, - 1923: 0xB5DC, - 1924: 0xB5DD, - 1925: 0xB5DE, - 1926: 0xB5DF, - 1927: 0xB5E0, - 1928: 0xB5E1, - 1929: 0xB5E2, - 1930: 0xB5E3, - 1931: 0xB5E4, - 1932: 0xB5E5, - 1933: 0xB5E6, - 1934: 0xB5E7, - 1935: 0xB5E8, - 1936: 0xB5E9, - 1937: 0xB5EA, - 1938: 0xB5EB, - 1939: 0xB5ED, - 1940: 0xB5EE, - 1941: 0xB5EF, - 1942: 0xB5F0, - 1943: 0xB5F1, - 1944: 0xB5F2, - 1945: 0xB5F3, - 1946: 0xB5F4, - 1947: 0xB5F5, - 1948: 0xB5F6, - 1949: 0xB5F7, - 1950: 0xB5F8, - 1951: 0xB5F9, - 1952: 0xB5FA, - 1953: 0xB5FB, - 1954: 0xB5FC, - 1955: 0xB5FD, - 1956: 0xB5FE, - 1957: 0xB5FF, - 1958: 0xB600, - 1959: 0xB601, - 1960: 0xB602, - 1961: 0xB603, - 1962: 0xB604, - 1963: 0xB605, - 1964: 0xB606, - 1965: 0xB607, - 1966: 0xB608, - 1967: 0xB609, - 1968: 0xB60A, - 1969: 0xB60B, - 1970: 0xB60C, - 1971: 0xB60D, - 1972: 0xB60E, - 1973: 0xB60F, - 1974: 0xB612, - 1975: 0xB613, - 1976: 0xB615, - 1977: 0xB616, - 1978: 0xB617, - 1979: 0xB619, - 1980: 0xB61A, - 1981: 0xB61B, - 1982: 0xB61C, - 1983: 0xB61D, - 1984: 0xB61E, - 1985: 0xB61F, - 1986: 0xB620, - 1987: 0xB621, - 1988: 0xB622, - 1989: 0xB623, - 1990: 0xB624, - 1991: 0xB626, - 1992: 0xB627, - 1993: 0xB628, - 1994: 0xB629, - 1995: 0xB62A, - 1996: 0xB62B, - 1997: 0xB62D, - 1998: 0xB62E, - 1999: 0xB62F, - 2000: 0xB630, - 2001: 0xB631, - 2002: 0xB632, - 2003: 0xB633, - 2004: 0xB635, - 2005: 0xB636, - 2006: 0xB637, - 2007: 0xB638, - 2008: 0xB639, - 2009: 0xB63A, - 2010: 0xB63B, - 2011: 0xB63C, - 2012: 0xB63D, - 2013: 0xB63E, - 2014: 0xB63F, - 2015: 0xB640, - 2016: 0xB641, - 2017: 0xB642, - 2018: 0xB643, - 2019: 0xB644, - 2020: 0xB645, - 2021: 0xB646, - 2022: 0xB647, - 2023: 0xB649, - 2024: 0xB64A, - 2025: 0xB64B, - 2026: 0xB64C, - 2027: 0xB64D, - 2028: 0xB64E, - 2029: 0xB64F, - 2030: 0xB650, - 2031: 0xB651, - 2032: 0xB652, - 2033: 0xB653, - 2034: 0xB654, - 2035: 0xB655, - 2036: 0xB656, - 2037: 0xB657, - 2038: 0xB658, - 2039: 0xB659, - 2040: 0xB65A, - 2041: 0xB65B, - 2042: 0xB65C, - 2043: 0xB65D, - 2044: 0xB65E, - 2045: 0xB65F, - 2046: 0xB660, - 2047: 0xB661, - 2048: 0xB662, - 2049: 0xB663, - 2050: 0xB665, - 2051: 0xB666, - 2052: 0xB667, - 2053: 0xB669, - 2054: 0xB66A, - 2055: 0xB66B, - 2056: 0xB66C, - 2057: 0xB66D, - 2058: 0xB66E, - 2059: 0xB66F, - 2060: 0xB670, - 2061: 0xB671, - 2062: 0xB672, - 2063: 0xB673, - 2064: 0xB674, - 2065: 0xB675, - 2066: 0xB676, - 2067: 0xB677, - 2068: 0xB678, - 2069: 0xB679, - 2070: 0xB67A, - 2071: 0xB67B, - 2072: 0xB67C, - 2073: 0xB67D, - 2074: 0xB67E, - 2075: 0xB67F, - 2076: 0xB680, - 2077: 0xB681, - 2078: 0xB682, - 2079: 0xB683, - 2080: 0xB684, - 2081: 0xB685, - 2082: 0xB686, - 2083: 0xB687, - 2084: 0xB688, - 2085: 0xB689, - 2086: 0xB68A, - 2087: 0xB68B, - 2088: 0xB68C, - 2089: 0xB68D, - 2090: 0xB68E, - 2091: 0xB68F, - 2092: 0xB690, - 2093: 0xB691, - 2094: 0xB692, - 2095: 0xB693, - 2096: 0xB694, - 2097: 0xB695, - 2098: 0xB696, - 2099: 0xB697, - 2100: 0xB698, - 2101: 0xB699, - 2102: 0xB69A, - 2103: 0xB69B, - 2104: 0xB69E, - 2105: 0xB69F, - 2106: 0xB6A1, - 2107: 0xB6A2, - 2108: 0xB6A3, - 2109: 0xB6A5, - 2110: 0xB6A6, - 2111: 0xB6A7, - 2112: 0xB6A8, - 2113: 0xB6A9, - 2114: 0xB6AA, - 2115: 0xB6AD, - 2116: 0xB6AE, - 2117: 0xB6AF, - 2118: 0xB6B0, - 2119: 0xB6B2, - 2120: 0xB6B3, - 2121: 0xB6B4, - 2122: 0xB6B5, - 2123: 0xB6B6, - 2124: 0xB6B7, - 2125: 0xB6B8, - 2126: 0xB6B9, - 2127: 0xB6BA, - 2128: 0xB6BB, - 2129: 0xB6BC, - 2130: 0xB6BD, - 2131: 0xB6BE, - 2132: 0xB6BF, - 2133: 0xB6C0, - 2134: 0xB6C1, - 2135: 0xB6C2, - 2136: 0xB6C3, - 2137: 0xB6C4, - 2138: 0xB6C5, - 2139: 0xB6C6, - 2140: 0xB6C7, - 2141: 0xB6C8, - 2142: 0xB6C9, - 2143: 0xB6CA, - 2144: 0xB6CB, - 2145: 0xB6CC, - 2146: 0xB6CD, - 2147: 0xB6CE, - 2148: 0xB6CF, - 2149: 0xB6D0, - 2150: 0xB6D1, - 2151: 0xB6D2, - 2152: 0xB6D3, - 2153: 0xB6D5, - 2154: 0xB6D6, - 2155: 0xB6D7, - 2156: 0xB6D8, - 2157: 0xB6D9, - 2158: 0xB6DA, - 2159: 0xB6DB, - 2160: 0xB6DC, - 2161: 0xB6DD, - 2162: 0xB6DE, - 2163: 0xB6DF, - 2164: 0xB6E0, - 2165: 0xB6E1, - 2166: 0xB6E2, - 2167: 0xB6E3, - 2168: 0xB6E4, - 2169: 0xB6E5, - 2170: 0xB6E6, - 2171: 0xB6E7, - 2172: 0xB6E8, - 2173: 0xB6E9, - 2174: 0xB6EA, - 2175: 0xB6EB, - 2176: 0xB6EC, - 2177: 0xB6ED, - 2178: 0xB6EE, - 2179: 0xB6EF, - 2180: 0xB6F1, - 2181: 0xB6F2, - 2182: 0xB6F3, - 2183: 0xB6F5, - 2184: 0xB6F6, - 2185: 0xB6F7, - 2186: 0xB6F9, - 2187: 0xB6FA, - 2188: 0xB6FB, - 2189: 0xB6FC, - 2190: 0xB6FD, - 2191: 0xB6FE, - 2192: 0xB6FF, - 2193: 0xB702, - 2194: 0xB703, - 2195: 0xB704, - 2196: 0xB706, - 2197: 0xB707, - 2198: 0xB708, - 2199: 0xB709, - 2200: 0xB70A, - 2201: 0xB70B, - 2202: 0xB70C, - 2203: 0xB70D, - 2204: 0xB70E, - 2205: 0xB70F, - 2206: 0xB710, - 2207: 0xB711, - 2208: 0xB712, - 2209: 0xB713, - 2210: 0xB714, - 2211: 0xB715, - 2212: 0xB716, - 2213: 0xB717, - 2214: 0xB718, - 2215: 0xB719, - 2216: 0xB71A, - 2217: 0xB71B, - 2218: 0xB71C, - 2219: 0xB71D, - 2220: 0xB71E, - 2221: 0xB71F, - 2222: 0xB720, - 2223: 0xB721, - 2224: 0xB722, - 2225: 0xB723, - 2226: 0xB724, - 2227: 0xB725, - 2228: 0xB726, - 2229: 0xB727, - 2230: 0xB72A, - 2231: 0xB72B, - 2232: 0xB72D, - 2233: 0xB72E, - 2234: 0xB731, - 2235: 0xB732, - 2236: 0xB733, - 2237: 0xB734, - 2238: 0xB735, - 2239: 0xB736, - 2240: 0xB737, - 2241: 0xB73A, - 2242: 0xB73C, - 2243: 0xB73D, - 2244: 0xB73E, - 2245: 0xB73F, - 2246: 0xB740, - 2247: 0xB741, - 2248: 0xB742, - 2249: 0xB743, - 2250: 0xB745, - 2251: 0xB746, - 2252: 0xB747, - 2253: 0xB749, - 2254: 0xB74A, - 2255: 0xB74B, - 2256: 0xB74D, - 2257: 0xB74E, - 2258: 0xB74F, - 2259: 0xB750, - 2260: 0xB751, - 2261: 0xB752, - 2262: 0xB753, - 2263: 0xB756, - 2264: 0xB757, - 2265: 0xB758, - 2266: 0xB759, - 2267: 0xB75A, - 2268: 0xB75B, - 2269: 0xB75C, - 2270: 0xB75D, - 2271: 0xB75E, - 2272: 0xB75F, - 2273: 0xB761, - 2274: 0xB762, - 2275: 0xB763, - 2276: 0xB765, - 2277: 0xB766, - 2278: 0xB767, - 2279: 0xB769, - 2280: 0xB76A, - 2281: 0xB76B, - 2282: 0xB76C, - 2283: 0xB76D, - 2284: 0xB76E, - 2285: 0xB76F, - 2286: 0xB772, - 2287: 0xB774, - 2288: 0xB776, - 2289: 0xB777, - 2290: 0xB778, - 2291: 0xB779, - 2292: 0xB77A, - 2293: 0xB77B, - 2294: 0xB77E, - 2295: 0xB77F, - 2296: 0xB781, - 2297: 0xB782, - 2298: 0xB783, - 2299: 0xB785, - 2300: 0xB786, - 2301: 0xB787, - 2302: 0xB788, - 2303: 0xB789, - 2304: 0xB78A, - 2305: 0xB78B, - 2306: 0xB78E, - 2307: 0xB793, - 2308: 0xB794, - 2309: 0xB795, - 2310: 0xB79A, - 2311: 0xB79B, - 2312: 0xB79D, - 2313: 0xB79E, - 2314: 0xB79F, - 2315: 0xB7A1, - 2316: 0xB7A2, - 2317: 0xB7A3, - 2318: 0xB7A4, - 2319: 0xB7A5, - 2320: 0xB7A6, - 2321: 0xB7A7, - 2322: 0xB7AA, - 2323: 0xB7AE, - 2324: 0xB7AF, - 2325: 0xB7B0, - 2326: 0xB7B1, - 2327: 0xB7B2, - 2328: 0xB7B3, - 2329: 0xB7B6, - 2330: 0xB7B7, - 2331: 0xB7B9, - 2332: 0xB7BA, - 2333: 0xB7BB, - 2334: 0xB7BC, - 2335: 0xB7BD, - 2336: 0xB7BE, - 2337: 0xB7BF, - 2338: 0xB7C0, - 2339: 0xB7C1, - 2340: 0xB7C2, - 2341: 0xB7C3, - 2342: 0xB7C4, - 2343: 0xB7C5, - 2344: 0xB7C6, - 2345: 0xB7C8, - 2346: 0xB7CA, - 2347: 0xB7CB, - 2348: 0xB7CC, - 2349: 0xB7CD, - 2350: 0xB7CE, - 2351: 0xB7CF, - 2352: 0xB7D0, - 2353: 0xB7D1, - 2354: 0xB7D2, - 2355: 0xB7D3, - 2356: 0xB7D4, - 2357: 0xB7D5, - 2358: 0xB7D6, - 2359: 0xB7D7, - 2360: 0xB7D8, - 2361: 0xB7D9, - 2362: 0xB7DA, - 2363: 0xB7DB, - 2364: 0xB7DC, - 2365: 0xB7DD, - 2366: 0xB7DE, - 2367: 0xB7DF, - 2368: 0xB7E0, - 2369: 0xB7E1, - 2370: 0xB7E2, - 2371: 0xB7E3, - 2372: 0xB7E4, - 2373: 0xB7E5, - 2374: 0xB7E6, - 2375: 0xB7E7, - 2376: 0xB7E8, - 2377: 0xB7E9, - 2378: 0xB7EA, - 2379: 0xB7EB, - 2380: 0xB7EE, - 2381: 0xB7EF, - 2382: 0xB7F1, - 2383: 0xB7F2, - 2384: 0xB7F3, - 2385: 0xB7F5, - 2386: 0xB7F6, - 2387: 0xB7F7, - 2388: 0xB7F8, - 2389: 0xB7F9, - 2390: 0xB7FA, - 2391: 0xB7FB, - 2392: 0xB7FE, - 2393: 0xB802, - 2394: 0xB803, - 2395: 0xB804, - 2396: 0xB805, - 2397: 0xB806, - 2398: 0xB80A, - 2399: 0xB80B, - 2400: 0xB80D, - 2401: 0xB80E, - 2402: 0xB80F, - 2403: 0xB811, - 2404: 0xB812, - 2405: 0xB813, - 2406: 0xB814, - 2407: 0xB815, - 2408: 0xB816, - 2409: 0xB817, - 2410: 0xB81A, - 2411: 0xB81C, - 2412: 0xB81E, - 2413: 0xB81F, - 2414: 0xB820, - 2415: 0xB821, - 2416: 0xB822, - 2417: 0xB823, - 2418: 0xB826, - 2419: 0xB827, - 2420: 0xB829, - 2421: 0xB82A, - 2422: 0xB82B, - 2423: 0xB82D, - 2424: 0xB82E, - 2425: 0xB82F, - 2426: 0xB830, - 2427: 0xB831, - 2428: 0xB832, - 2429: 0xB833, - 2430: 0xB836, - 2431: 0xB83A, - 2432: 0xB83B, - 2433: 0xB83C, - 2434: 0xB83D, - 2435: 0xB83E, - 2436: 0xB83F, - 2437: 0xB841, - 2438: 0xB842, - 2439: 0xB843, - 2440: 0xB845, - 2441: 0xB846, - 2442: 0xB847, - 2443: 0xB848, - 2444: 0xB849, - 2445: 0xB84A, - 2446: 0xB84B, - 2447: 0xB84C, - 2448: 0xB84D, - 2449: 0xB84E, - 2450: 0xB84F, - 2451: 0xB850, - 2452: 0xB852, - 2453: 0xB854, - 2454: 0xB855, - 2455: 0xB856, - 2456: 0xB857, - 2457: 0xB858, - 2458: 0xB859, - 2459: 0xB85A, - 2460: 0xB85B, - 2461: 0xB85E, - 2462: 0xB85F, - 2463: 0xB861, - 2464: 0xB862, - 2465: 0xB863, - 2466: 0xB865, - 2467: 0xB866, - 2468: 0xB867, - 2469: 0xB868, - 2470: 0xB869, - 2471: 0xB86A, - 2472: 0xB86B, - 2473: 0xB86E, - 2474: 0xB870, - 2475: 0xB872, - 2476: 0xB873, - 2477: 0xB874, - 2478: 0xB875, - 2479: 0xB876, - 2480: 0xB877, - 2481: 0xB879, - 2482: 0xB87A, - 2483: 0xB87B, - 2484: 0xB87D, - 2485: 0xB87E, - 2486: 0xB87F, - 2487: 0xB880, - 2488: 0xB881, - 2489: 0xB882, - 2490: 0xB883, - 2491: 0xB884, - 2492: 0xB885, - 2493: 0xB886, - 2494: 0xB887, - 2495: 0xB888, - 2496: 0xB889, - 2497: 0xB88A, - 2498: 0xB88B, - 2499: 0xB88C, - 2500: 0xB88E, - 2501: 0xB88F, - 2502: 0xB890, - 2503: 0xB891, - 2504: 0xB892, - 2505: 0xB893, - 2506: 0xB894, - 2507: 0xB895, - 2508: 0xB896, - 2509: 0xB897, - 2510: 0xB898, - 2511: 0xB899, - 2512: 0xB89A, - 2513: 0xB89B, - 2514: 0xB89C, - 2515: 0xB89D, - 2516: 0xB89E, - 2517: 0xB89F, - 2518: 0xB8A0, - 2519: 0xB8A1, - 2520: 0xB8A2, - 2521: 0xB8A3, - 2522: 0xB8A4, - 2523: 0xB8A5, - 2524: 0xB8A6, - 2525: 0xB8A7, - 2526: 0xB8A9, - 2527: 0xB8AA, - 2528: 0xB8AB, - 2529: 0xB8AC, - 2530: 0xB8AD, - 2531: 0xB8AE, - 2532: 0xB8AF, - 2533: 0xB8B1, - 2534: 0xB8B2, - 2535: 0xB8B3, - 2536: 0xB8B5, - 2537: 0xB8B6, - 2538: 0xB8B7, - 2539: 0xB8B9, - 2540: 0xB8BA, - 2541: 0xB8BB, - 2542: 0xB8BC, - 2543: 0xB8BD, - 2544: 0xB8BE, - 2545: 0xB8BF, - 2546: 0xB8C2, - 2547: 0xB8C4, - 2548: 0xB8C6, - 2549: 0xB8C7, - 2550: 0xB8C8, - 2551: 0xB8C9, - 2552: 0xB8CA, - 2553: 0xB8CB, - 2554: 0xB8CD, - 2555: 0xB8CE, - 2556: 0xB8CF, - 2557: 0xB8D1, - 2558: 0xB8D2, - 2559: 0xB8D3, - 2560: 0xB8D5, - 2561: 0xB8D6, - 2562: 0xB8D7, - 2563: 0xB8D8, - 2564: 0xB8D9, - 2565: 0xB8DA, - 2566: 0xB8DB, - 2567: 0xB8DC, - 2568: 0xB8DE, - 2569: 0xB8E0, - 2570: 0xB8E2, - 2571: 0xB8E3, - 2572: 0xB8E4, - 2573: 0xB8E5, - 2574: 0xB8E6, - 2575: 0xB8E7, - 2576: 0xB8EA, - 2577: 0xB8EB, - 2578: 0xB8ED, - 2579: 0xB8EE, - 2580: 0xB8EF, - 2581: 0xB8F1, - 2582: 0xB8F2, - 2583: 0xB8F3, - 2584: 0xB8F4, - 2585: 0xB8F5, - 2586: 0xB8F6, - 2587: 0xB8F7, - 2588: 0xB8FA, - 2589: 0xB8FC, - 2590: 0xB8FE, - 2591: 0xB8FF, - 2592: 0xB900, - 2593: 0xB901, - 2594: 0xB902, - 2595: 0xB903, - 2596: 0xB905, - 2597: 0xB906, - 2598: 0xB907, - 2599: 0xB908, - 2600: 0xB909, - 2601: 0xB90A, - 2602: 0xB90B, - 2603: 0xB90C, - 2604: 0xB90D, - 2605: 0xB90E, - 2606: 0xB90F, - 2607: 0xB910, - 2608: 0xB911, - 2609: 0xB912, - 2610: 0xB913, - 2611: 0xB914, - 2612: 0xB915, - 2613: 0xB916, - 2614: 0xB917, - 2615: 0xB919, - 2616: 0xB91A, - 2617: 0xB91B, - 2618: 0xB91C, - 2619: 0xB91D, - 2620: 0xB91E, - 2621: 0xB91F, - 2622: 0xB921, - 2623: 0xB922, - 2624: 0xB923, - 2625: 0xB924, - 2626: 0xB925, - 2627: 0xB926, - 2628: 0xB927, - 2629: 0xB928, - 2630: 0xB929, - 2631: 0xB92A, - 2632: 0xB92B, - 2633: 0xB92C, - 2634: 0xB92D, - 2635: 0xB92E, - 2636: 0xB92F, - 2637: 0xB930, - 2638: 0xB931, - 2639: 0xB932, - 2640: 0xB933, - 2641: 0xB934, - 2642: 0xB935, - 2643: 0xB936, - 2644: 0xB937, - 2645: 0xB938, - 2646: 0xB939, - 2647: 0xB93A, - 2648: 0xB93B, - 2649: 0xB93E, - 2650: 0xB93F, - 2651: 0xB941, - 2652: 0xB942, - 2653: 0xB943, - 2654: 0xB945, - 2655: 0xB946, - 2656: 0xB947, - 2657: 0xB948, - 2658: 0xB949, - 2659: 0xB94A, - 2660: 0xB94B, - 2661: 0xB94D, - 2662: 0xB94E, - 2663: 0xB950, - 2664: 0xB952, - 2665: 0xB953, - 2666: 0xB954, - 2667: 0xB955, - 2668: 0xB956, - 2669: 0xB957, - 2670: 0xB95A, - 2671: 0xB95B, - 2672: 0xB95D, - 2673: 0xB95E, - 2674: 0xB95F, - 2675: 0xB961, - 2676: 0xB962, - 2677: 0xB963, - 2678: 0xB964, - 2679: 0xB965, - 2680: 0xB966, - 2681: 0xB967, - 2682: 0xB96A, - 2683: 0xB96C, - 2684: 0xB96E, - 2685: 0xB96F, - 2686: 0xB970, - 2687: 0xB971, - 2688: 0xB972, - 2689: 0xB973, - 2690: 0xB976, - 2691: 0xB977, - 2692: 0xB979, - 2693: 0xB97A, - 2694: 0xB97B, - 2695: 0xB97D, - 2696: 0xB97E, - 2697: 0xB97F, - 2698: 0xB980, - 2699: 0xB981, - 2700: 0xB982, - 2701: 0xB983, - 2702: 0xB986, - 2703: 0xB988, - 2704: 0xB98B, - 2705: 0xB98C, - 2706: 0xB98F, - 2707: 0xB990, - 2708: 0xB991, - 2709: 0xB992, - 2710: 0xB993, - 2711: 0xB994, - 2712: 0xB995, - 2713: 0xB996, - 2714: 0xB997, - 2715: 0xB998, - 2716: 0xB999, - 2717: 0xB99A, - 2718: 0xB99B, - 2719: 0xB99C, - 2720: 0xB99D, - 2721: 0xB99E, - 2722: 0xB99F, - 2723: 0xB9A0, - 2724: 0xB9A1, - 2725: 0xB9A2, - 2726: 0xB9A3, - 2727: 0xB9A4, - 2728: 0xB9A5, - 2729: 0xB9A6, - 2730: 0xB9A7, - 2731: 0xB9A8, - 2732: 0xB9A9, - 2733: 0xB9AA, - 2734: 0xB9AB, - 2735: 0xB9AE, - 2736: 0xB9AF, - 2737: 0xB9B1, - 2738: 0xB9B2, - 2739: 0xB9B3, - 2740: 0xB9B5, - 2741: 0xB9B6, - 2742: 0xB9B7, - 2743: 0xB9B8, - 2744: 0xB9B9, - 2745: 0xB9BA, - 2746: 0xB9BB, - 2747: 0xB9BE, - 2748: 0xB9C0, - 2749: 0xB9C2, - 2750: 0xB9C3, - 2751: 0xB9C4, - 2752: 0xB9C5, - 2753: 0xB9C6, - 2754: 0xB9C7, - 2755: 0xB9CA, - 2756: 0xB9CB, - 2757: 0xB9CD, - 2758: 0xB9D3, - 2759: 0xB9D4, - 2760: 0xB9D5, - 2761: 0xB9D6, - 2762: 0xB9D7, - 2763: 0xB9DA, - 2764: 0xB9DC, - 2765: 0xB9DF, - 2766: 0xB9E0, - 2767: 0xB9E2, - 2768: 0xB9E6, - 2769: 0xB9E7, - 2770: 0xB9E9, - 2771: 0xB9EA, - 2772: 0xB9EB, - 2773: 0xB9ED, - 2774: 0xB9EE, - 2775: 0xB9EF, - 2776: 0xB9F0, - 2777: 0xB9F1, - 2778: 0xB9F2, - 2779: 0xB9F3, - 2780: 0xB9F6, - 2781: 0xB9FB, - 2782: 0xB9FC, - 2783: 0xB9FD, - 2784: 0xB9FE, - 2785: 0xB9FF, - 2786: 0xBA02, - 2787: 0xBA03, - 2788: 0xBA04, - 2789: 0xBA05, - 2790: 0xBA06, - 2791: 0xBA07, - 2792: 0xBA09, - 2793: 0xBA0A, - 2794: 0xBA0B, - 2795: 0xBA0C, - 2796: 0xBA0D, - 2797: 0xBA0E, - 2798: 0xBA0F, - 2799: 0xBA10, - 2800: 0xBA11, - 2801: 0xBA12, - 2802: 0xBA13, - 2803: 0xBA14, - 2804: 0xBA16, - 2805: 0xBA17, - 2806: 0xBA18, - 2807: 0xBA19, - 2808: 0xBA1A, - 2809: 0xBA1B, - 2810: 0xBA1C, - 2811: 0xBA1D, - 2812: 0xBA1E, - 2813: 0xBA1F, - 2814: 0xBA20, - 2815: 0xBA21, - 2816: 0xBA22, - 2817: 0xBA23, - 2818: 0xBA24, - 2819: 0xBA25, - 2820: 0xBA26, - 2821: 0xBA27, - 2822: 0xBA28, - 2823: 0xBA29, - 2824: 0xBA2A, - 2825: 0xBA2B, - 2826: 0xBA2C, - 2827: 0xBA2D, - 2828: 0xBA2E, - 2829: 0xBA2F, - 2830: 0xBA30, - 2831: 0xBA31, - 2832: 0xBA32, - 2833: 0xBA33, - 2834: 0xBA34, - 2835: 0xBA35, - 2836: 0xBA36, - 2837: 0xBA37, - 2838: 0xBA3A, - 2839: 0xBA3B, - 2840: 0xBA3D, - 2841: 0xBA3E, - 2842: 0xBA3F, - 2843: 0xBA41, - 2844: 0xBA43, - 2845: 0xBA44, - 2846: 0xBA45, - 2847: 0xBA46, - 2848: 0xBA47, - 2849: 0xBA4A, - 2850: 0xBA4C, - 2851: 0xBA4F, - 2852: 0xBA50, - 2853: 0xBA51, - 2854: 0xBA52, - 2855: 0xBA56, - 2856: 0xBA57, - 2857: 0xBA59, - 2858: 0xBA5A, - 2859: 0xBA5B, - 2860: 0xBA5D, - 2861: 0xBA5E, - 2862: 0xBA5F, - 2863: 0xBA60, - 2864: 0xBA61, - 2865: 0xBA62, - 2866: 0xBA63, - 2867: 0xBA66, - 2868: 0xBA6A, - 2869: 0xBA6B, - 2870: 0xBA6C, - 2871: 0xBA6D, - 2872: 0xBA6E, - 2873: 0xBA6F, - 2874: 0xBA72, - 2875: 0xBA73, - 2876: 0xBA75, - 2877: 0xBA76, - 2878: 0xBA77, - 2879: 0xBA79, - 2880: 0xBA7A, - 2881: 0xBA7B, - 2882: 0xBA7C, - 2883: 0xBA7D, - 2884: 0xBA7E, - 2885: 0xBA7F, - 2886: 0xBA80, - 2887: 0xBA81, - 2888: 0xBA82, - 2889: 0xBA86, - 2890: 0xBA88, - 2891: 0xBA89, - 2892: 0xBA8A, - 2893: 0xBA8B, - 2894: 0xBA8D, - 2895: 0xBA8E, - 2896: 0xBA8F, - 2897: 0xBA90, - 2898: 0xBA91, - 2899: 0xBA92, - 2900: 0xBA93, - 2901: 0xBA94, - 2902: 0xBA95, - 2903: 0xBA96, - 2904: 0xBA97, - 2905: 0xBA98, - 2906: 0xBA99, - 2907: 0xBA9A, - 2908: 0xBA9B, - 2909: 0xBA9C, - 2910: 0xBA9D, - 2911: 0xBA9E, - 2912: 0xBA9F, - 2913: 0xBAA0, - 2914: 0xBAA1, - 2915: 0xBAA2, - 2916: 0xBAA3, - 2917: 0xBAA4, - 2918: 0xBAA5, - 2919: 0xBAA6, - 2920: 0xBAA7, - 2921: 0xBAAA, - 2922: 0xBAAD, - 2923: 0xBAAE, - 2924: 0xBAAF, - 2925: 0xBAB1, - 2926: 0xBAB3, - 2927: 0xBAB4, - 2928: 0xBAB5, - 2929: 0xBAB6, - 2930: 0xBAB7, - 2931: 0xBABA, - 2932: 0xBABC, - 2933: 0xBABE, - 2934: 0xBABF, - 2935: 0xBAC0, - 2936: 0xBAC1, - 2937: 0xBAC2, - 2938: 0xBAC3, - 2939: 0xBAC5, - 2940: 0xBAC6, - 2941: 0xBAC7, - 2942: 0xBAC9, - 2943: 0xBACA, - 2944: 0xBACB, - 2945: 0xBACC, - 2946: 0xBACD, - 2947: 0xBACE, - 2948: 0xBACF, - 2949: 0xBAD0, - 2950: 0xBAD1, - 2951: 0xBAD2, - 2952: 0xBAD3, - 2953: 0xBAD4, - 2954: 0xBAD5, - 2955: 0xBAD6, - 2956: 0xBAD7, - 2957: 0xBADA, - 2958: 0xBADB, - 2959: 0xBADC, - 2960: 0xBADD, - 2961: 0xBADE, - 2962: 0xBADF, - 2963: 0xBAE0, - 2964: 0xBAE1, - 2965: 0xBAE2, - 2966: 0xBAE3, - 2967: 0xBAE4, - 2968: 0xBAE5, - 2969: 0xBAE6, - 2970: 0xBAE7, - 2971: 0xBAE8, - 2972: 0xBAE9, - 2973: 0xBAEA, - 2974: 0xBAEB, - 2975: 0xBAEC, - 2976: 0xBAED, - 2977: 0xBAEE, - 2978: 0xBAEF, - 2979: 0xBAF0, - 2980: 0xBAF1, - 2981: 0xBAF2, - 2982: 0xBAF3, - 2983: 0xBAF4, - 2984: 0xBAF5, - 2985: 0xBAF6, - 2986: 0xBAF7, - 2987: 0xBAF8, - 2988: 0xBAF9, - 2989: 0xBAFA, - 2990: 0xBAFB, - 2991: 0xBAFD, - 2992: 0xBAFE, - 2993: 0xBAFF, - 2994: 0xBB01, - 2995: 0xBB02, - 2996: 0xBB03, - 2997: 0xBB05, - 2998: 0xBB06, - 2999: 0xBB07, - 3000: 0xBB08, - 3001: 0xBB09, - 3002: 0xBB0A, - 3003: 0xBB0B, - 3004: 0xBB0C, - 3005: 0xBB0E, - 3006: 0xBB10, - 3007: 0xBB12, - 3008: 0xBB13, - 3009: 0xBB14, - 3010: 0xBB15, - 3011: 0xBB16, - 3012: 0xBB17, - 3013: 0xBB19, - 3014: 0xBB1A, - 3015: 0xBB1B, - 3016: 0xBB1D, - 3017: 0xBB1E, - 3018: 0xBB1F, - 3019: 0xBB21, - 3020: 0xBB22, - 3021: 0xBB23, - 3022: 0xBB24, - 3023: 0xBB25, - 3024: 0xBB26, - 3025: 0xBB27, - 3026: 0xBB28, - 3027: 0xBB2A, - 3028: 0xBB2C, - 3029: 0xBB2D, - 3030: 0xBB2E, - 3031: 0xBB2F, - 3032: 0xBB30, - 3033: 0xBB31, - 3034: 0xBB32, - 3035: 0xBB33, - 3036: 0xBB37, - 3037: 0xBB39, - 3038: 0xBB3A, - 3039: 0xBB3F, - 3040: 0xBB40, - 3041: 0xBB41, - 3042: 0xBB42, - 3043: 0xBB43, - 3044: 0xBB46, - 3045: 0xBB48, - 3046: 0xBB4A, - 3047: 0xBB4B, - 3048: 0xBB4C, - 3049: 0xBB4E, - 3050: 0xBB51, - 3051: 0xBB52, - 3052: 0xBB53, - 3053: 0xBB55, - 3054: 0xBB56, - 3055: 0xBB57, - 3056: 0xBB59, - 3057: 0xBB5A, - 3058: 0xBB5B, - 3059: 0xBB5C, - 3060: 0xBB5D, - 3061: 0xBB5E, - 3062: 0xBB5F, - 3063: 0xBB60, - 3064: 0xBB62, - 3065: 0xBB64, - 3066: 0xBB65, - 3067: 0xBB66, - 3068: 0xBB67, - 3069: 0xBB68, - 3070: 0xBB69, - 3071: 0xBB6A, - 3072: 0xBB6B, - 3073: 0xBB6D, - 3074: 0xBB6E, - 3075: 0xBB6F, - 3076: 0xBB70, - 3077: 0xBB71, - 3078: 0xBB72, - 3079: 0xBB73, - 3080: 0xBB74, - 3081: 0xBB75, - 3082: 0xBB76, - 3083: 0xBB77, - 3084: 0xBB78, - 3085: 0xBB79, - 3086: 0xBB7A, - 3087: 0xBB7B, - 3088: 0xBB7C, - 3089: 0xBB7D, - 3090: 0xBB7E, - 3091: 0xBB7F, - 3092: 0xBB80, - 3093: 0xBB81, - 3094: 0xBB82, - 3095: 0xBB83, - 3096: 0xBB84, - 3097: 0xBB85, - 3098: 0xBB86, - 3099: 0xBB87, - 3100: 0xBB89, - 3101: 0xBB8A, - 3102: 0xBB8B, - 3103: 0xBB8D, - 3104: 0xBB8E, - 3105: 0xBB8F, - 3106: 0xBB91, - 3107: 0xBB92, - 3108: 0xBB93, - 3109: 0xBB94, - 3110: 0xBB95, - 3111: 0xBB96, - 3112: 0xBB97, - 3113: 0xBB98, - 3114: 0xBB99, - 3115: 0xBB9A, - 3116: 0xBB9B, - 3117: 0xBB9C, - 3118: 0xBB9D, - 3119: 0xBB9E, - 3120: 0xBB9F, - 3121: 0xBBA0, - 3122: 0xBBA1, - 3123: 0xBBA2, - 3124: 0xBBA3, - 3125: 0xBBA5, - 3126: 0xBBA6, - 3127: 0xBBA7, - 3128: 0xBBA9, - 3129: 0xBBAA, - 3130: 0xBBAB, - 3131: 0xBBAD, - 3132: 0xBBAE, - 3133: 0xBBAF, - 3134: 0xBBB0, - 3135: 0xBBB1, - 3136: 0xBBB2, - 3137: 0xBBB3, - 3138: 0xBBB5, - 3139: 0xBBB6, - 3140: 0xBBB8, - 3141: 0xBBB9, - 3142: 0xBBBA, - 3143: 0xBBBB, - 3144: 0xBBBC, - 3145: 0xBBBD, - 3146: 0xBBBE, - 3147: 0xBBBF, - 3148: 0xBBC1, - 3149: 0xBBC2, - 3150: 0xBBC3, - 3151: 0xBBC5, - 3152: 0xBBC6, - 3153: 0xBBC7, - 3154: 0xBBC9, - 3155: 0xBBCA, - 3156: 0xBBCB, - 3157: 0xBBCC, - 3158: 0xBBCD, - 3159: 0xBBCE, - 3160: 0xBBCF, - 3161: 0xBBD1, - 3162: 0xBBD2, - 3163: 0xBBD4, - 3164: 0xBBD5, - 3165: 0xBBD6, - 3166: 0xBBD7, - 3167: 0xBBD8, - 3168: 0xBBD9, - 3169: 0xBBDA, - 3170: 0xBBDB, - 3171: 0xBBDC, - 3172: 0xBBDD, - 3173: 0xBBDE, - 3174: 0xBBDF, - 3175: 0xBBE0, - 3176: 0xBBE1, - 3177: 0xBBE2, - 3178: 0xBBE3, - 3179: 0xBBE4, - 3180: 0xBBE5, - 3181: 0xBBE6, - 3182: 0xBBE7, - 3183: 0xBBE8, - 3184: 0xBBE9, - 3185: 0xBBEA, - 3186: 0xBBEB, - 3187: 0xBBEC, - 3188: 0xBBED, - 3189: 0xBBEE, - 3190: 0xBBEF, - 3191: 0xBBF0, - 3192: 0xBBF1, - 3193: 0xBBF2, - 3194: 0xBBF3, - 3195: 0xBBF4, - 3196: 0xBBF5, - 3197: 0xBBF6, - 3198: 0xBBF7, - 3199: 0xBBFA, - 3200: 0xBBFB, - 3201: 0xBBFD, - 3202: 0xBBFE, - 3203: 0xBC01, - 3204: 0xBC03, - 3205: 0xBC04, - 3206: 0xBC05, - 3207: 0xBC06, - 3208: 0xBC07, - 3209: 0xBC0A, - 3210: 0xBC0E, - 3211: 0xBC10, - 3212: 0xBC12, - 3213: 0xBC13, - 3214: 0xBC19, - 3215: 0xBC1A, - 3216: 0xBC20, - 3217: 0xBC21, - 3218: 0xBC22, - 3219: 0xBC23, - 3220: 0xBC26, - 3221: 0xBC28, - 3222: 0xBC2A, - 3223: 0xBC2B, - 3224: 0xBC2C, - 3225: 0xBC2E, - 3226: 0xBC2F, - 3227: 0xBC32, - 3228: 0xBC33, - 3229: 0xBC35, - 3230: 0xBC36, - 3231: 0xBC37, - 3232: 0xBC39, - 3233: 0xBC3A, - 3234: 0xBC3B, - 3235: 0xBC3C, - 3236: 0xBC3D, - 3237: 0xBC3E, - 3238: 0xBC3F, - 3239: 0xBC42, - 3240: 0xBC46, - 3241: 0xBC47, - 3242: 0xBC48, - 3243: 0xBC4A, - 3244: 0xBC4B, - 3245: 0xBC4E, - 3246: 0xBC4F, - 3247: 0xBC51, - 3248: 0xBC52, - 3249: 0xBC53, - 3250: 0xBC54, - 3251: 0xBC55, - 3252: 0xBC56, - 3253: 0xBC57, - 3254: 0xBC58, - 3255: 0xBC59, - 3256: 0xBC5A, - 3257: 0xBC5B, - 3258: 0xBC5C, - 3259: 0xBC5E, - 3260: 0xBC5F, - 3261: 0xBC60, - 3262: 0xBC61, - 3263: 0xBC62, - 3264: 0xBC63, - 3265: 0xBC64, - 3266: 0xBC65, - 3267: 0xBC66, - 3268: 0xBC67, - 3269: 0xBC68, - 3270: 0xBC69, - 3271: 0xBC6A, - 3272: 0xBC6B, - 3273: 0xBC6C, - 3274: 0xBC6D, - 3275: 0xBC6E, - 3276: 0xBC6F, - 3277: 0xBC70, - 3278: 0xBC71, - 3279: 0xBC72, - 3280: 0xBC73, - 3281: 0xBC74, - 3282: 0xBC75, - 3283: 0xBC76, - 3284: 0xBC77, - 3285: 0xBC78, - 3286: 0xBC79, - 3287: 0xBC7A, - 3288: 0xBC7B, - 3289: 0xBC7C, - 3290: 0xBC7D, - 3291: 0xBC7E, - 3292: 0xBC7F, - 3293: 0xBC80, - 3294: 0xBC81, - 3295: 0xBC82, - 3296: 0xBC83, - 3297: 0xBC86, - 3298: 0xBC87, - 3299: 0xBC89, - 3300: 0xBC8A, - 3301: 0xBC8D, - 3302: 0xBC8F, - 3303: 0xBC90, - 3304: 0xBC91, - 3305: 0xBC92, - 3306: 0xBC93, - 3307: 0xBC96, - 3308: 0xBC98, - 3309: 0xBC9B, - 3310: 0xBC9C, - 3311: 0xBC9D, - 3312: 0xBC9E, - 3313: 0xBC9F, - 3314: 0xBCA2, - 3315: 0xBCA3, - 3316: 0xBCA5, - 3317: 0xBCA6, - 3318: 0xBCA9, - 3319: 0xBCAA, - 3320: 0xBCAB, - 3321: 0xBCAC, - 3322: 0xBCAD, - 3323: 0xBCAE, - 3324: 0xBCAF, - 3325: 0xBCB2, - 3326: 0xBCB6, - 3327: 0xBCB7, - 3328: 0xBCB8, - 3329: 0xBCB9, - 3330: 0xBCBA, - 3331: 0xBCBB, - 3332: 0xBCBE, - 3333: 0xBCBF, - 3334: 0xBCC1, - 3335: 0xBCC2, - 3336: 0xBCC3, - 3337: 0xBCC5, - 3338: 0xBCC6, - 3339: 0xBCC7, - 3340: 0xBCC8, - 3341: 0xBCC9, - 3342: 0xBCCA, - 3343: 0xBCCB, - 3344: 0xBCCC, - 3345: 0xBCCE, - 3346: 0xBCD2, - 3347: 0xBCD3, - 3348: 0xBCD4, - 3349: 0xBCD6, - 3350: 0xBCD7, - 3351: 0xBCD9, - 3352: 0xBCDA, - 3353: 0xBCDB, - 3354: 0xBCDD, - 3355: 0xBCDE, - 3356: 0xBCDF, - 3357: 0xBCE0, - 3358: 0xBCE1, - 3359: 0xBCE2, - 3360: 0xBCE3, - 3361: 0xBCE4, - 3362: 0xBCE5, - 3363: 0xBCE6, - 3364: 0xBCE7, - 3365: 0xBCE8, - 3366: 0xBCE9, - 3367: 0xBCEA, - 3368: 0xBCEB, - 3369: 0xBCEC, - 3370: 0xBCED, - 3371: 0xBCEE, - 3372: 0xBCEF, - 3373: 0xBCF0, - 3374: 0xBCF1, - 3375: 0xBCF2, - 3376: 0xBCF3, - 3377: 0xBCF7, - 3378: 0xBCF9, - 3379: 0xBCFA, - 3380: 0xBCFB, - 3381: 0xBCFD, - 3382: 0xBCFE, - 3383: 0xBCFF, - 3384: 0xBD00, - 3385: 0xBD01, - 3386: 0xBD02, - 3387: 0xBD03, - 3388: 0xBD06, - 3389: 0xBD08, - 3390: 0xBD0A, - 3391: 0xBD0B, - 3392: 0xBD0C, - 3393: 0xBD0D, - 3394: 0xBD0E, - 3395: 0xBD0F, - 3396: 0xBD11, - 3397: 0xBD12, - 3398: 0xBD13, - 3399: 0xBD15, - 3400: 0xBD16, - 3401: 0xBD17, - 3402: 0xBD18, - 3403: 0xBD19, - 3404: 0xBD1A, - 3405: 0xBD1B, - 3406: 0xBD1C, - 3407: 0xBD1D, - 3408: 0xBD1E, - 3409: 0xBD1F, - 3410: 0xBD20, - 3411: 0xBD21, - 3412: 0xBD22, - 3413: 0xBD23, - 3414: 0xBD25, - 3415: 0xBD26, - 3416: 0xBD27, - 3417: 0xBD28, - 3418: 0xBD29, - 3419: 0xBD2A, - 3420: 0xBD2B, - 3421: 0xBD2D, - 3422: 0xBD2E, - 3423: 0xBD2F, - 3424: 0xBD30, - 3425: 0xBD31, - 3426: 0xBD32, - 3427: 0xBD33, - 3428: 0xBD34, - 3429: 0xBD35, - 3430: 0xBD36, - 3431: 0xBD37, - 3432: 0xBD38, - 3433: 0xBD39, - 3434: 0xBD3A, - 3435: 0xBD3B, - 3436: 0xBD3C, - 3437: 0xBD3D, - 3438: 0xBD3E, - 3439: 0xBD3F, - 3440: 0xBD41, - 3441: 0xBD42, - 3442: 0xBD43, - 3443: 0xBD44, - 3444: 0xBD45, - 3445: 0xBD46, - 3446: 0xBD47, - 3447: 0xBD4A, - 3448: 0xBD4B, - 3449: 0xBD4D, - 3450: 0xBD4E, - 3451: 0xBD4F, - 3452: 0xBD51, - 3453: 0xBD52, - 3454: 0xBD53, - 3455: 0xBD54, - 3456: 0xBD55, - 3457: 0xBD56, - 3458: 0xBD57, - 3459: 0xBD5A, - 3460: 0xBD5B, - 3461: 0xBD5C, - 3462: 0xBD5D, - 3463: 0xBD5E, - 3464: 0xBD5F, - 3465: 0xBD60, - 3466: 0xBD61, - 3467: 0xBD62, - 3468: 0xBD63, - 3469: 0xBD65, - 3470: 0xBD66, - 3471: 0xBD67, - 3472: 0xBD69, - 3473: 0xBD6A, - 3474: 0xBD6B, - 3475: 0xBD6C, - 3476: 0xBD6D, - 3477: 0xBD6E, - 3478: 0xBD6F, - 3479: 0xBD70, - 3480: 0xBD71, - 3481: 0xBD72, - 3482: 0xBD73, - 3483: 0xBD74, - 3484: 0xBD75, - 3485: 0xBD76, - 3486: 0xBD77, - 3487: 0xBD78, - 3488: 0xBD79, - 3489: 0xBD7A, - 3490: 0xBD7B, - 3491: 0xBD7C, - 3492: 0xBD7D, - 3493: 0xBD7E, - 3494: 0xBD7F, - 3495: 0xBD82, - 3496: 0xBD83, - 3497: 0xBD85, - 3498: 0xBD86, - 3499: 0xBD8B, - 3500: 0xBD8C, - 3501: 0xBD8D, - 3502: 0xBD8E, - 3503: 0xBD8F, - 3504: 0xBD92, - 3505: 0xBD94, - 3506: 0xBD96, - 3507: 0xBD97, - 3508: 0xBD98, - 3509: 0xBD9B, - 3510: 0xBD9D, - 3511: 0xBD9E, - 3512: 0xBD9F, - 3513: 0xBDA0, - 3514: 0xBDA1, - 3515: 0xBDA2, - 3516: 0xBDA3, - 3517: 0xBDA5, - 3518: 0xBDA6, - 3519: 0xBDA7, - 3520: 0xBDA8, - 3521: 0xBDA9, - 3522: 0xBDAA, - 3523: 0xBDAB, - 3524: 0xBDAC, - 3525: 0xBDAD, - 3526: 0xBDAE, - 3527: 0xBDAF, - 3528: 0xBDB1, - 3529: 0xBDB2, - 3530: 0xBDB3, - 3531: 0xBDB4, - 3532: 0xBDB5, - 3533: 0xBDB6, - 3534: 0xBDB7, - 3535: 0xBDB9, - 3536: 0xBDBA, - 3537: 0xBDBB, - 3538: 0xBDBC, - 3539: 0xBDBD, - 3540: 0xBDBE, - 3541: 0xBDBF, - 3542: 0xBDC0, - 3543: 0xBDC1, - 3544: 0xBDC2, - 3545: 0xBDC3, - 3546: 0xBDC4, - 3547: 0xBDC5, - 3548: 0xBDC6, - 3549: 0xBDC7, - 3550: 0xBDC8, - 3551: 0xBDC9, - 3552: 0xBDCA, - 3553: 0xBDCB, - 3554: 0xBDCC, - 3555: 0xBDCD, - 3556: 0xBDCE, - 3557: 0xBDCF, - 3558: 0xBDD0, - 3559: 0xBDD1, - 3560: 0xBDD2, - 3561: 0xBDD3, - 3562: 0xBDD6, - 3563: 0xBDD7, - 3564: 0xBDD9, - 3565: 0xBDDA, - 3566: 0xBDDB, - 3567: 0xBDDD, - 3568: 0xBDDE, - 3569: 0xBDDF, - 3570: 0xBDE0, - 3571: 0xBDE1, - 3572: 0xBDE2, - 3573: 0xBDE3, - 3574: 0xBDE4, - 3575: 0xBDE5, - 3576: 0xBDE6, - 3577: 0xBDE7, - 3578: 0xBDE8, - 3579: 0xBDEA, - 3580: 0xBDEB, - 3581: 0xBDEC, - 3582: 0xBDED, - 3583: 0xBDEE, - 3584: 0xBDEF, - 3585: 0xBDF1, - 3586: 0xBDF2, - 3587: 0xBDF3, - 3588: 0xBDF5, - 3589: 0xBDF6, - 3590: 0xBDF7, - 3591: 0xBDF9, - 3592: 0xBDFA, - 3593: 0xBDFB, - 3594: 0xBDFC, - 3595: 0xBDFD, - 3596: 0xBDFE, - 3597: 0xBDFF, - 3598: 0xBE01, - 3599: 0xBE02, - 3600: 0xBE04, - 3601: 0xBE06, - 3602: 0xBE07, - 3603: 0xBE08, - 3604: 0xBE09, - 3605: 0xBE0A, - 3606: 0xBE0B, - 3607: 0xBE0E, - 3608: 0xBE0F, - 3609: 0xBE11, - 3610: 0xBE12, - 3611: 0xBE13, - 3612: 0xBE15, - 3613: 0xBE16, - 3614: 0xBE17, - 3615: 0xBE18, - 3616: 0xBE19, - 3617: 0xBE1A, - 3618: 0xBE1B, - 3619: 0xBE1E, - 3620: 0xBE20, - 3621: 0xBE21, - 3622: 0xBE22, - 3623: 0xBE23, - 3624: 0xBE24, - 3625: 0xBE25, - 3626: 0xBE26, - 3627: 0xBE27, - 3628: 0xBE28, - 3629: 0xBE29, - 3630: 0xBE2A, - 3631: 0xBE2B, - 3632: 0xBE2C, - 3633: 0xBE2D, - 3634: 0xBE2E, - 3635: 0xBE2F, - 3636: 0xBE30, - 3637: 0xBE31, - 3638: 0xBE32, - 3639: 0xBE33, - 3640: 0xBE34, - 3641: 0xBE35, - 3642: 0xBE36, - 3643: 0xBE37, - 3644: 0xBE38, - 3645: 0xBE39, - 3646: 0xBE3A, - 3647: 0xBE3B, - 3648: 0xBE3C, - 3649: 0xBE3D, - 3650: 0xBE3E, - 3651: 0xBE3F, - 3652: 0xBE40, - 3653: 0xBE41, - 3654: 0xBE42, - 3655: 0xBE43, - 3656: 0xBE46, - 3657: 0xBE47, - 3658: 0xBE49, - 3659: 0xBE4A, - 3660: 0xBE4B, - 3661: 0xBE4D, - 3662: 0xBE4F, - 3663: 0xBE50, - 3664: 0xBE51, - 3665: 0xBE52, - 3666: 0xBE53, - 3667: 0xBE56, - 3668: 0xBE58, - 3669: 0xBE5C, - 3670: 0xBE5D, - 3671: 0xBE5E, - 3672: 0xBE5F, - 3673: 0xBE62, - 3674: 0xBE63, - 3675: 0xBE65, - 3676: 0xBE66, - 3677: 0xBE67, - 3678: 0xBE69, - 3679: 0xBE6B, - 3680: 0xBE6C, - 3681: 0xBE6D, - 3682: 0xBE6E, - 3683: 0xBE6F, - 3684: 0xBE72, - 3685: 0xBE76, - 3686: 0xBE77, - 3687: 0xBE78, - 3688: 0xBE79, - 3689: 0xBE7A, - 3690: 0xBE7E, - 3691: 0xBE7F, - 3692: 0xBE81, - 3693: 0xBE82, - 3694: 0xBE83, - 3695: 0xBE85, - 3696: 0xBE86, - 3697: 0xBE87, - 3698: 0xBE88, - 3699: 0xBE89, - 3700: 0xBE8A, - 3701: 0xBE8B, - 3702: 0xBE8E, - 3703: 0xBE92, - 3704: 0xBE93, - 3705: 0xBE94, - 3706: 0xBE95, - 3707: 0xBE96, - 3708: 0xBE97, - 3709: 0xBE9A, - 3710: 0xBE9B, - 3711: 0xBE9C, - 3712: 0xBE9D, - 3713: 0xBE9E, - 3714: 0xBE9F, - 3715: 0xBEA0, - 3716: 0xBEA1, - 3717: 0xBEA2, - 3718: 0xBEA3, - 3719: 0xBEA4, - 3720: 0xBEA5, - 3721: 0xBEA6, - 3722: 0xBEA7, - 3723: 0xBEA9, - 3724: 0xBEAA, - 3725: 0xBEAB, - 3726: 0xBEAC, - 3727: 0xBEAD, - 3728: 0xBEAE, - 3729: 0xBEAF, - 3730: 0xBEB0, - 3731: 0xBEB1, - 3732: 0xBEB2, - 3733: 0xBEB3, - 3734: 0xBEB4, - 3735: 0xBEB5, - 3736: 0xBEB6, - 3737: 0xBEB7, - 3738: 0xBEB8, - 3739: 0xBEB9, - 3740: 0xBEBA, - 3741: 0xBEBB, - 3742: 0xBEBC, - 3743: 0xBEBD, - 3744: 0xBEBE, - 3745: 0xBEBF, - 3746: 0xBEC0, - 3747: 0xBEC1, - 3748: 0xBEC2, - 3749: 0xBEC3, - 3750: 0xBEC4, - 3751: 0xBEC5, - 3752: 0xBEC6, - 3753: 0xBEC7, - 3754: 0xBEC8, - 3755: 0xBEC9, - 3756: 0xBECA, - 3757: 0xBECB, - 3758: 0xBECC, - 3759: 0xBECD, - 3760: 0xBECE, - 3761: 0xBECF, - 3762: 0xBED2, - 3763: 0xBED3, - 3764: 0xBED5, - 3765: 0xBED6, - 3766: 0xBED9, - 3767: 0xBEDA, - 3768: 0xBEDB, - 3769: 0xBEDC, - 3770: 0xBEDD, - 3771: 0xBEDE, - 3772: 0xBEDF, - 3773: 0xBEE1, - 3774: 0xBEE2, - 3775: 0xBEE6, - 3776: 0xBEE7, - 3777: 0xBEE8, - 3778: 0xBEE9, - 3779: 0xBEEA, - 3780: 0xBEEB, - 3781: 0xBEED, - 3782: 0xBEEE, - 3783: 0xBEEF, - 3784: 0xBEF0, - 3785: 0xBEF1, - 3786: 0xBEF2, - 3787: 0xBEF3, - 3788: 0xBEF4, - 3789: 0xBEF5, - 3790: 0xBEF6, - 3791: 0xBEF7, - 3792: 0xBEF8, - 3793: 0xBEF9, - 3794: 0xBEFA, - 3795: 0xBEFB, - 3796: 0xBEFC, - 3797: 0xBEFD, - 3798: 0xBEFE, - 3799: 0xBEFF, - 3800: 0xBF00, - 3801: 0xBF02, - 3802: 0xBF03, - 3803: 0xBF04, - 3804: 0xBF05, - 3805: 0xBF06, - 3806: 0xBF07, - 3807: 0xBF0A, - 3808: 0xBF0B, - 3809: 0xBF0C, - 3810: 0xBF0D, - 3811: 0xBF0E, - 3812: 0xBF0F, - 3813: 0xBF10, - 3814: 0xBF11, - 3815: 0xBF12, - 3816: 0xBF13, - 3817: 0xBF14, - 3818: 0xBF15, - 3819: 0xBF16, - 3820: 0xBF17, - 3821: 0xBF1A, - 3822: 0xBF1E, - 3823: 0xBF1F, - 3824: 0xBF20, - 3825: 0xBF21, - 3826: 0xBF22, - 3827: 0xBF23, - 3828: 0xBF24, - 3829: 0xBF25, - 3830: 0xBF26, - 3831: 0xBF27, - 3832: 0xBF28, - 3833: 0xBF29, - 3834: 0xBF2A, - 3835: 0xBF2B, - 3836: 0xBF2C, - 3837: 0xBF2D, - 3838: 0xBF2E, - 3839: 0xBF2F, - 3840: 0xBF30, - 3841: 0xBF31, - 3842: 0xBF32, - 3843: 0xBF33, - 3844: 0xBF34, - 3845: 0xBF35, - 3846: 0xBF36, - 3847: 0xBF37, - 3848: 0xBF38, - 3849: 0xBF39, - 3850: 0xBF3A, - 3851: 0xBF3B, - 3852: 0xBF3C, - 3853: 0xBF3D, - 3854: 0xBF3E, - 3855: 0xBF3F, - 3856: 0xBF42, - 3857: 0xBF43, - 3858: 0xBF45, - 3859: 0xBF46, - 3860: 0xBF47, - 3861: 0xBF49, - 3862: 0xBF4A, - 3863: 0xBF4B, - 3864: 0xBF4C, - 3865: 0xBF4D, - 3866: 0xBF4E, - 3867: 0xBF4F, - 3868: 0xBF52, - 3869: 0xBF53, - 3870: 0xBF54, - 3871: 0xBF56, - 3872: 0xBF57, - 3873: 0xBF58, - 3874: 0xBF59, - 3875: 0xBF5A, - 3876: 0xBF5B, - 3877: 0xBF5C, - 3878: 0xBF5D, - 3879: 0xBF5E, - 3880: 0xBF5F, - 3881: 0xBF60, - 3882: 0xBF61, - 3883: 0xBF62, - 3884: 0xBF63, - 3885: 0xBF64, - 3886: 0xBF65, - 3887: 0xBF66, - 3888: 0xBF67, - 3889: 0xBF68, - 3890: 0xBF69, - 3891: 0xBF6A, - 3892: 0xBF6B, - 3893: 0xBF6C, - 3894: 0xBF6D, - 3895: 0xBF6E, - 3896: 0xBF6F, - 3897: 0xBF70, - 3898: 0xBF71, - 3899: 0xBF72, - 3900: 0xBF73, - 3901: 0xBF74, - 3902: 0xBF75, - 3903: 0xBF76, - 3904: 0xBF77, - 3905: 0xBF78, - 3906: 0xBF79, - 3907: 0xBF7A, - 3908: 0xBF7B, - 3909: 0xBF7C, - 3910: 0xBF7D, - 3911: 0xBF7E, - 3912: 0xBF7F, - 3913: 0xBF80, - 3914: 0xBF81, - 3915: 0xBF82, - 3916: 0xBF83, - 3917: 0xBF84, - 3918: 0xBF85, - 3919: 0xBF86, - 3920: 0xBF87, - 3921: 0xBF88, - 3922: 0xBF89, - 3923: 0xBF8A, - 3924: 0xBF8B, - 3925: 0xBF8C, - 3926: 0xBF8D, - 3927: 0xBF8E, - 3928: 0xBF8F, - 3929: 0xBF90, - 3930: 0xBF91, - 3931: 0xBF92, - 3932: 0xBF93, - 3933: 0xBF95, - 3934: 0xBF96, - 3935: 0xBF97, - 3936: 0xBF98, - 3937: 0xBF99, - 3938: 0xBF9A, - 3939: 0xBF9B, - 3940: 0xBF9C, - 3941: 0xBF9D, - 3942: 0xBF9E, - 3943: 0xBF9F, - 3944: 0xBFA0, - 3945: 0xBFA1, - 3946: 0xBFA2, - 3947: 0xBFA3, - 3948: 0xBFA4, - 3949: 0xBFA5, - 3950: 0xBFA6, - 3951: 0xBFA7, - 3952: 0xBFA8, - 3953: 0xBFA9, - 3954: 0xBFAA, - 3955: 0xBFAB, - 3956: 0xBFAC, - 3957: 0xBFAD, - 3958: 0xBFAE, - 3959: 0xBFAF, - 3960: 0xBFB1, - 3961: 0xBFB2, - 3962: 0xBFB3, - 3963: 0xBFB4, - 3964: 0xBFB5, - 3965: 0xBFB6, - 3966: 0xBFB7, - 3967: 0xBFB8, - 3968: 0xBFB9, - 3969: 0xBFBA, - 3970: 0xBFBB, - 3971: 0xBFBC, - 3972: 0xBFBD, - 3973: 0xBFBE, - 3974: 0xBFBF, - 3975: 0xBFC0, - 3976: 0xBFC1, - 3977: 0xBFC2, - 3978: 0xBFC3, - 3979: 0xBFC4, - 3980: 0xBFC6, - 3981: 0xBFC7, - 3982: 0xBFC8, - 3983: 0xBFC9, - 3984: 0xBFCA, - 3985: 0xBFCB, - 3986: 0xBFCE, - 3987: 0xBFCF, - 3988: 0xBFD1, - 3989: 0xBFD2, - 3990: 0xBFD3, - 3991: 0xBFD5, - 3992: 0xBFD6, - 3993: 0xBFD7, - 3994: 0xBFD8, - 3995: 0xBFD9, - 3996: 0xBFDA, - 3997: 0xBFDB, - 3998: 0xBFDD, - 3999: 0xBFDE, - 4000: 0xBFE0, - 4001: 0xBFE2, - 4002: 0xBFE3, - 4003: 0xBFE4, - 4004: 0xBFE5, - 4005: 0xBFE6, - 4006: 0xBFE7, - 4007: 0xBFE8, - 4008: 0xBFE9, - 4009: 0xBFEA, - 4010: 0xBFEB, - 4011: 0xBFEC, - 4012: 0xBFED, - 4013: 0xBFEE, - 4014: 0xBFEF, - 4015: 0xBFF0, - 4016: 0xBFF1, - 4017: 0xBFF2, - 4018: 0xBFF3, - 4019: 0xBFF4, - 4020: 0xBFF5, - 4021: 0xBFF6, - 4022: 0xBFF7, - 4023: 0xBFF8, - 4024: 0xBFF9, - 4025: 0xBFFA, - 4026: 0xBFFB, - 4027: 0xBFFC, - 4028: 0xBFFD, - 4029: 0xBFFE, - 4030: 0xBFFF, - 4031: 0xC000, - 4032: 0xC001, - 4033: 0xC002, - 4034: 0xC003, - 4035: 0xC004, - 4036: 0xC005, - 4037: 0xC006, - 4038: 0xC007, - 4039: 0xC008, - 4040: 0xC009, - 4041: 0xC00A, - 4042: 0xC00B, - 4043: 0xC00C, - 4044: 0xC00D, - 4045: 0xC00E, - 4046: 0xC00F, - 4047: 0xC010, - 4048: 0xC011, - 4049: 0xC012, - 4050: 0xC013, - 4051: 0xC014, - 4052: 0xC015, - 4053: 0xC016, - 4054: 0xC017, - 4055: 0xC018, - 4056: 0xC019, - 4057: 0xC01A, - 4058: 0xC01B, - 4059: 0xC01C, - 4060: 0xC01D, - 4061: 0xC01E, - 4062: 0xC01F, - 4063: 0xC020, - 4064: 0xC021, - 4065: 0xC022, - 4066: 0xC023, - 4067: 0xC024, - 4068: 0xC025, - 4069: 0xC026, - 4070: 0xC027, - 4071: 0xC028, - 4072: 0xC029, - 4073: 0xC02A, - 4074: 0xC02B, - 4075: 0xC02C, - 4076: 0xC02D, - 4077: 0xC02E, - 4078: 0xC02F, - 4079: 0xC030, - 4080: 0xC031, - 4081: 0xC032, - 4082: 0xC033, - 4083: 0xC034, - 4084: 0xC035, - 4085: 0xC036, - 4086: 0xC037, - 4087: 0xC038, - 4088: 0xC039, - 4089: 0xC03A, - 4090: 0xC03B, - 4091: 0xC03D, - 4092: 0xC03E, - 4093: 0xC03F, - 4094: 0xC040, - 4095: 0xC041, - 4096: 0xC042, - 4097: 0xC043, - 4098: 0xC044, - 4099: 0xC045, - 4100: 0xC046, - 4101: 0xC047, - 4102: 0xC048, - 4103: 0xC049, - 4104: 0xC04A, - 4105: 0xC04B, - 4106: 0xC04C, - 4107: 0xC04D, - 4108: 0xC04E, - 4109: 0xC04F, - 4110: 0xC050, - 4111: 0xC052, - 4112: 0xC053, - 4113: 0xC054, - 4114: 0xC055, - 4115: 0xC056, - 4116: 0xC057, - 4117: 0xC059, - 4118: 0xC05A, - 4119: 0xC05B, - 4120: 0xC05D, - 4121: 0xC05E, - 4122: 0xC05F, - 4123: 0xC061, - 4124: 0xC062, - 4125: 0xC063, - 4126: 0xC064, - 4127: 0xC065, - 4128: 0xC066, - 4129: 0xC067, - 4130: 0xC06A, - 4131: 0xC06B, - 4132: 0xC06C, - 4133: 0xC06D, - 4134: 0xC06E, - 4135: 0xC06F, - 4136: 0xC070, - 4137: 0xC071, - 4138: 0xC072, - 4139: 0xC073, - 4140: 0xC074, - 4141: 0xC075, - 4142: 0xC076, - 4143: 0xC077, - 4144: 0xC078, - 4145: 0xC079, - 4146: 0xC07A, - 4147: 0xC07B, - 4148: 0xC07C, - 4149: 0xC07D, - 4150: 0xC07E, - 4151: 0xC07F, - 4152: 0xC080, - 4153: 0xC081, - 4154: 0xC082, - 4155: 0xC083, - 4156: 0xC084, - 4157: 0xC085, - 4158: 0xC086, - 4159: 0xC087, - 4160: 0xC088, - 4161: 0xC089, - 4162: 0xC08A, - 4163: 0xC08B, - 4164: 0xC08C, - 4165: 0xC08D, - 4166: 0xC08E, - 4167: 0xC08F, - 4168: 0xC092, - 4169: 0xC093, - 4170: 0xC095, - 4171: 0xC096, - 4172: 0xC097, - 4173: 0xC099, - 4174: 0xC09A, - 4175: 0xC09B, - 4176: 0xC09C, - 4177: 0xC09D, - 4178: 0xC09E, - 4179: 0xC09F, - 4180: 0xC0A2, - 4181: 0xC0A4, - 4182: 0xC0A6, - 4183: 0xC0A7, - 4184: 0xC0A8, - 4185: 0xC0A9, - 4186: 0xC0AA, - 4187: 0xC0AB, - 4188: 0xC0AE, - 4189: 0xC0B1, - 4190: 0xC0B2, - 4191: 0xC0B7, - 4192: 0xC0B8, - 4193: 0xC0B9, - 4194: 0xC0BA, - 4195: 0xC0BB, - 4196: 0xC0BE, - 4197: 0xC0C2, - 4198: 0xC0C3, - 4199: 0xC0C4, - 4200: 0xC0C6, - 4201: 0xC0C7, - 4202: 0xC0CA, - 4203: 0xC0CB, - 4204: 0xC0CD, - 4205: 0xC0CE, - 4206: 0xC0CF, - 4207: 0xC0D1, - 4208: 0xC0D2, - 4209: 0xC0D3, - 4210: 0xC0D4, - 4211: 0xC0D5, - 4212: 0xC0D6, - 4213: 0xC0D7, - 4214: 0xC0DA, - 4215: 0xC0DE, - 4216: 0xC0DF, - 4217: 0xC0E0, - 4218: 0xC0E1, - 4219: 0xC0E2, - 4220: 0xC0E3, - 4221: 0xC0E6, - 4222: 0xC0E7, - 4223: 0xC0E9, - 4224: 0xC0EA, - 4225: 0xC0EB, - 4226: 0xC0ED, - 4227: 0xC0EE, - 4228: 0xC0EF, - 4229: 0xC0F0, - 4230: 0xC0F1, - 4231: 0xC0F2, - 4232: 0xC0F3, - 4233: 0xC0F6, - 4234: 0xC0F8, - 4235: 0xC0FA, - 4236: 0xC0FB, - 4237: 0xC0FC, - 4238: 0xC0FD, - 4239: 0xC0FE, - 4240: 0xC0FF, - 4241: 0xC101, - 4242: 0xC102, - 4243: 0xC103, - 4244: 0xC105, - 4245: 0xC106, - 4246: 0xC107, - 4247: 0xC109, - 4248: 0xC10A, - 4249: 0xC10B, - 4250: 0xC10C, - 4251: 0xC10D, - 4252: 0xC10E, - 4253: 0xC10F, - 4254: 0xC111, - 4255: 0xC112, - 4256: 0xC113, - 4257: 0xC114, - 4258: 0xC116, - 4259: 0xC117, - 4260: 0xC118, - 4261: 0xC119, - 4262: 0xC11A, - 4263: 0xC11B, - 4264: 0xC121, - 4265: 0xC122, - 4266: 0xC125, - 4267: 0xC128, - 4268: 0xC129, - 4269: 0xC12A, - 4270: 0xC12B, - 4271: 0xC12E, - 4272: 0xC132, - 4273: 0xC133, - 4274: 0xC134, - 4275: 0xC135, - 4276: 0xC137, - 4277: 0xC13A, - 4278: 0xC13B, - 4279: 0xC13D, - 4280: 0xC13E, - 4281: 0xC13F, - 4282: 0xC141, - 4283: 0xC142, - 4284: 0xC143, - 4285: 0xC144, - 4286: 0xC145, - 4287: 0xC146, - 4288: 0xC147, - 4289: 0xC14A, - 4290: 0xC14E, - 4291: 0xC14F, - 4292: 0xC150, - 4293: 0xC151, - 4294: 0xC152, - 4295: 0xC153, - 4296: 0xC156, - 4297: 0xC157, - 4298: 0xC159, - 4299: 0xC15A, - 4300: 0xC15B, - 4301: 0xC15D, - 4302: 0xC15E, - 4303: 0xC15F, - 4304: 0xC160, - 4305: 0xC161, - 4306: 0xC162, - 4307: 0xC163, - 4308: 0xC166, - 4309: 0xC16A, - 4310: 0xC16B, - 4311: 0xC16C, - 4312: 0xC16D, - 4313: 0xC16E, - 4314: 0xC16F, - 4315: 0xC171, - 4316: 0xC172, - 4317: 0xC173, - 4318: 0xC175, - 4319: 0xC176, - 4320: 0xC177, - 4321: 0xC179, - 4322: 0xC17A, - 4323: 0xC17B, - 4324: 0xC17C, - 4325: 0xC17D, - 4326: 0xC17E, - 4327: 0xC17F, - 4328: 0xC180, - 4329: 0xC181, - 4330: 0xC182, - 4331: 0xC183, - 4332: 0xC184, - 4333: 0xC186, - 4334: 0xC187, - 4335: 0xC188, - 4336: 0xC189, - 4337: 0xC18A, - 4338: 0xC18B, - 4339: 0xC18F, - 4340: 0xC191, - 4341: 0xC192, - 4342: 0xC193, - 4343: 0xC195, - 4344: 0xC197, - 4345: 0xC198, - 4346: 0xC199, - 4347: 0xC19A, - 4348: 0xC19B, - 4349: 0xC19E, - 4350: 0xC1A0, - 4351: 0xC1A2, - 4352: 0xC1A3, - 4353: 0xC1A4, - 4354: 0xC1A6, - 4355: 0xC1A7, - 4356: 0xC1AA, - 4357: 0xC1AB, - 4358: 0xC1AD, - 4359: 0xC1AE, - 4360: 0xC1AF, - 4361: 0xC1B1, - 4362: 0xC1B2, - 4363: 0xC1B3, - 4364: 0xC1B4, - 4365: 0xC1B5, - 4366: 0xC1B6, - 4367: 0xC1B7, - 4368: 0xC1B8, - 4369: 0xC1B9, - 4370: 0xC1BA, - 4371: 0xC1BB, - 4372: 0xC1BC, - 4373: 0xC1BE, - 4374: 0xC1BF, - 4375: 0xC1C0, - 4376: 0xC1C1, - 4377: 0xC1C2, - 4378: 0xC1C3, - 4379: 0xC1C5, - 4380: 0xC1C6, - 4381: 0xC1C7, - 4382: 0xC1C9, - 4383: 0xC1CA, - 4384: 0xC1CB, - 4385: 0xC1CD, - 4386: 0xC1CE, - 4387: 0xC1CF, - 4388: 0xC1D0, - 4389: 0xC1D1, - 4390: 0xC1D2, - 4391: 0xC1D3, - 4392: 0xC1D5, - 4393: 0xC1D6, - 4394: 0xC1D9, - 4395: 0xC1DA, - 4396: 0xC1DB, - 4397: 0xC1DC, - 4398: 0xC1DD, - 4399: 0xC1DE, - 4400: 0xC1DF, - 4401: 0xC1E1, - 4402: 0xC1E2, - 4403: 0xC1E3, - 4404: 0xC1E5, - 4405: 0xC1E6, - 4406: 0xC1E7, - 4407: 0xC1E9, - 4408: 0xC1EA, - 4409: 0xC1EB, - 4410: 0xC1EC, - 4411: 0xC1ED, - 4412: 0xC1EE, - 4413: 0xC1EF, - 4414: 0xC1F2, - 4415: 0xC1F4, - 4416: 0xC1F5, - 4417: 0xC1F6, - 4418: 0xC1F7, - 4419: 0xC1F8, - 4420: 0xC1F9, - 4421: 0xC1FA, - 4422: 0xC1FB, - 4423: 0xC1FE, - 4424: 0xC1FF, - 4425: 0xC201, - 4426: 0xC202, - 4427: 0xC203, - 4428: 0xC205, - 4429: 0xC206, - 4430: 0xC207, - 4431: 0xC208, - 4432: 0xC209, - 4433: 0xC20A, - 4434: 0xC20B, - 4435: 0xC20E, - 4436: 0xC210, - 4437: 0xC212, - 4438: 0xC213, - 4439: 0xC214, - 4440: 0xC215, - 4441: 0xC216, - 4442: 0xC217, - 4443: 0xC21A, - 4444: 0xC21B, - 4445: 0xC21D, - 4446: 0xC21E, - 4447: 0xC221, - 4448: 0xC222, - 4449: 0xC223, - 4450: 0xC224, - 4451: 0xC225, - 4452: 0xC226, - 4453: 0xC227, - 4454: 0xC22A, - 4455: 0xC22C, - 4456: 0xC22E, - 4457: 0xC230, - 4458: 0xC233, - 4459: 0xC235, - 4460: 0xC236, - 4461: 0xC237, - 4462: 0xC238, - 4463: 0xC239, - 4464: 0xC23A, - 4465: 0xC23B, - 4466: 0xC23C, - 4467: 0xC23D, - 4468: 0xC23E, - 4469: 0xC23F, - 4470: 0xC240, - 4471: 0xC241, - 4472: 0xC242, - 4473: 0xC243, - 4474: 0xC244, - 4475: 0xC245, - 4476: 0xC246, - 4477: 0xC247, - 4478: 0xC249, - 4479: 0xC24A, - 4480: 0xC24B, - 4481: 0xC24C, - 4482: 0xC24D, - 4483: 0xC24E, - 4484: 0xC24F, - 4485: 0xC252, - 4486: 0xC253, - 4487: 0xC255, - 4488: 0xC256, - 4489: 0xC257, - 4490: 0xC259, - 4491: 0xC25A, - 4492: 0xC25B, - 4493: 0xC25C, - 4494: 0xC25D, - 4495: 0xC25E, - 4496: 0xC25F, - 4497: 0xC261, - 4498: 0xC262, - 4499: 0xC263, - 4500: 0xC264, - 4501: 0xC266, - 4502: 0xC267, - 4503: 0xC268, - 4504: 0xC269, - 4505: 0xC26A, - 4506: 0xC26B, - 4507: 0xC26E, - 4508: 0xC26F, - 4509: 0xC271, - 4510: 0xC272, - 4511: 0xC273, - 4512: 0xC275, - 4513: 0xC276, - 4514: 0xC277, - 4515: 0xC278, - 4516: 0xC279, - 4517: 0xC27A, - 4518: 0xC27B, - 4519: 0xC27E, - 4520: 0xC280, - 4521: 0xC282, - 4522: 0xC283, - 4523: 0xC284, - 4524: 0xC285, - 4525: 0xC286, - 4526: 0xC287, - 4527: 0xC28A, - 4528: 0xC28B, - 4529: 0xC28C, - 4530: 0xC28D, - 4531: 0xC28E, - 4532: 0xC28F, - 4533: 0xC291, - 4534: 0xC292, - 4535: 0xC293, - 4536: 0xC294, - 4537: 0xC295, - 4538: 0xC296, - 4539: 0xC297, - 4540: 0xC299, - 4541: 0xC29A, - 4542: 0xC29C, - 4543: 0xC29E, - 4544: 0xC29F, - 4545: 0xC2A0, - 4546: 0xC2A1, - 4547: 0xC2A2, - 4548: 0xC2A3, - 4549: 0xC2A6, - 4550: 0xC2A7, - 4551: 0xC2A9, - 4552: 0xC2AA, - 4553: 0xC2AB, - 4554: 0xC2AE, - 4555: 0xC2AF, - 4556: 0xC2B0, - 4557: 0xC2B1, - 4558: 0xC2B2, - 4559: 0xC2B3, - 4560: 0xC2B6, - 4561: 0xC2B8, - 4562: 0xC2BA, - 4563: 0xC2BB, - 4564: 0xC2BC, - 4565: 0xC2BD, - 4566: 0xC2BE, - 4567: 0xC2BF, - 4568: 0xC2C0, - 4569: 0xC2C1, - 4570: 0xC2C2, - 4571: 0xC2C3, - 4572: 0xC2C4, - 4573: 0xC2C5, - 4574: 0xC2C6, - 4575: 0xC2C7, - 4576: 0xC2C8, - 4577: 0xC2C9, - 4578: 0xC2CA, - 4579: 0xC2CB, - 4580: 0xC2CC, - 4581: 0xC2CD, - 4582: 0xC2CE, - 4583: 0xC2CF, - 4584: 0xC2D0, - 4585: 0xC2D1, - 4586: 0xC2D2, - 4587: 0xC2D3, - 4588: 0xC2D4, - 4589: 0xC2D5, - 4590: 0xC2D6, - 4591: 0xC2D7, - 4592: 0xC2D8, - 4593: 0xC2D9, - 4594: 0xC2DA, - 4595: 0xC2DB, - 4596: 0xC2DE, - 4597: 0xC2DF, - 4598: 0xC2E1, - 4599: 0xC2E2, - 4600: 0xC2E5, - 4601: 0xC2E6, - 4602: 0xC2E7, - 4603: 0xC2E8, - 4604: 0xC2E9, - 4605: 0xC2EA, - 4606: 0xC2EE, - 4607: 0xC2F0, - 4608: 0xC2F2, - 4609: 0xC2F3, - 4610: 0xC2F4, - 4611: 0xC2F5, - 4612: 0xC2F7, - 4613: 0xC2FA, - 4614: 0xC2FD, - 4615: 0xC2FE, - 4616: 0xC2FF, - 4617: 0xC301, - 4618: 0xC302, - 4619: 0xC303, - 4620: 0xC304, - 4621: 0xC305, - 4622: 0xC306, - 4623: 0xC307, - 4624: 0xC30A, - 4625: 0xC30B, - 4626: 0xC30E, - 4627: 0xC30F, - 4628: 0xC310, - 4629: 0xC311, - 4630: 0xC312, - 4631: 0xC316, - 4632: 0xC317, - 4633: 0xC319, - 4634: 0xC31A, - 4635: 0xC31B, - 4636: 0xC31D, - 4637: 0xC31E, - 4638: 0xC31F, - 4639: 0xC320, - 4640: 0xC321, - 4641: 0xC322, - 4642: 0xC323, - 4643: 0xC326, - 4644: 0xC327, - 4645: 0xC32A, - 4646: 0xC32B, - 4647: 0xC32C, - 4648: 0xC32D, - 4649: 0xC32E, - 4650: 0xC32F, - 4651: 0xC330, - 4652: 0xC331, - 4653: 0xC332, - 4654: 0xC333, - 4655: 0xC334, - 4656: 0xC335, - 4657: 0xC336, - 4658: 0xC337, - 4659: 0xC338, - 4660: 0xC339, - 4661: 0xC33A, - 4662: 0xC33B, - 4663: 0xC33C, - 4664: 0xC33D, - 4665: 0xC33E, - 4666: 0xC33F, - 4667: 0xC340, - 4668: 0xC341, - 4669: 0xC342, - 4670: 0xC343, - 4671: 0xC344, - 4672: 0xC346, - 4673: 0xC347, - 4674: 0xC348, - 4675: 0xC349, - 4676: 0xC34A, - 4677: 0xC34B, - 4678: 0xC34C, - 4679: 0xC34D, - 4680: 0xC34E, - 4681: 0xC34F, - 4682: 0xC350, - 4683: 0xC351, - 4684: 0xC352, - 4685: 0xC353, - 4686: 0xC354, - 4687: 0xC355, - 4688: 0xC356, - 4689: 0xC357, - 4690: 0xC358, - 4691: 0xC359, - 4692: 0xC35A, - 4693: 0xC35B, - 4694: 0xC35C, - 4695: 0xC35D, - 4696: 0xC35E, - 4697: 0xC35F, - 4698: 0xC360, - 4699: 0xC361, - 4700: 0xC362, - 4701: 0xC363, - 4702: 0xC364, - 4703: 0xC365, - 4704: 0xC366, - 4705: 0xC367, - 4706: 0xC36A, - 4707: 0xC36B, - 4708: 0xC36D, - 4709: 0xC36E, - 4710: 0xC36F, - 4711: 0xC371, - 4712: 0xC373, - 4713: 0xC374, - 4714: 0xC375, - 4715: 0xC376, - 4716: 0xC377, - 4717: 0xC37A, - 4718: 0xC37B, - 4719: 0xC37E, - 4720: 0xC37F, - 4721: 0xC380, - 4722: 0xC381, - 4723: 0xC382, - 4724: 0xC383, - 4725: 0xC385, - 4726: 0xC386, - 4727: 0xC387, - 4728: 0xC389, - 4729: 0xC38A, - 4730: 0xC38B, - 4731: 0xC38D, - 4732: 0xC38E, - 4733: 0xC38F, - 4734: 0xC390, - 4735: 0xC391, - 4736: 0xC392, - 4737: 0xC393, - 4738: 0xC394, - 4739: 0xC395, - 4740: 0xC396, - 4741: 0xC397, - 4742: 0xC398, - 4743: 0xC399, - 4744: 0xC39A, - 4745: 0xC39B, - 4746: 0xC39C, - 4747: 0xC39D, - 4748: 0xC39E, - 4749: 0xC39F, - 4750: 0xC3A0, - 4751: 0xC3A1, - 4752: 0xC3A2, - 4753: 0xC3A3, - 4754: 0xC3A4, - 4755: 0xC3A5, - 4756: 0xC3A6, - 4757: 0xC3A7, - 4758: 0xC3A8, - 4759: 0xC3A9, - 4760: 0xC3AA, - 4761: 0xC3AB, - 4762: 0xC3AC, - 4763: 0xC3AD, - 4764: 0xC3AE, - 4765: 0xC3AF, - 4766: 0xC3B0, - 4767: 0xC3B1, - 4768: 0xC3B2, - 4769: 0xC3B3, - 4770: 0xC3B4, - 4771: 0xC3B5, - 4772: 0xC3B6, - 4773: 0xC3B7, - 4774: 0xC3B8, - 4775: 0xC3B9, - 4776: 0xC3BA, - 4777: 0xC3BB, - 4778: 0xC3BC, - 4779: 0xC3BD, - 4780: 0xC3BE, - 4781: 0xC3BF, - 4782: 0xC3C1, - 4783: 0xC3C2, - 4784: 0xC3C3, - 4785: 0xC3C4, - 4786: 0xC3C5, - 4787: 0xC3C6, - 4788: 0xC3C7, - 4789: 0xC3C8, - 4790: 0xC3C9, - 4791: 0xC3CA, - 4792: 0xC3CB, - 4793: 0xC3CC, - 4794: 0xC3CD, - 4795: 0xC3CE, - 4796: 0xC3CF, - 4797: 0xC3D0, - 4798: 0xC3D1, - 4799: 0xC3D2, - 4800: 0xC3D3, - 4801: 0xC3D4, - 4802: 0xC3D5, - 4803: 0xC3D6, - 4804: 0xC3D7, - 4805: 0xC3DA, - 4806: 0xC3DB, - 4807: 0xC3DD, - 4808: 0xC3DE, - 4809: 0xC3E1, - 4810: 0xC3E3, - 4811: 0xC3E4, - 4812: 0xC3E5, - 4813: 0xC3E6, - 4814: 0xC3E7, - 4815: 0xC3EA, - 4816: 0xC3EB, - 4817: 0xC3EC, - 4818: 0xC3EE, - 4819: 0xC3EF, - 4820: 0xC3F0, - 4821: 0xC3F1, - 4822: 0xC3F2, - 4823: 0xC3F3, - 4824: 0xC3F6, - 4825: 0xC3F7, - 4826: 0xC3F9, - 4827: 0xC3FA, - 4828: 0xC3FB, - 4829: 0xC3FC, - 4830: 0xC3FD, - 4831: 0xC3FE, - 4832: 0xC3FF, - 4833: 0xC400, - 4834: 0xC401, - 4835: 0xC402, - 4836: 0xC403, - 4837: 0xC404, - 4838: 0xC405, - 4839: 0xC406, - 4840: 0xC407, - 4841: 0xC409, - 4842: 0xC40A, - 4843: 0xC40B, - 4844: 0xC40C, - 4845: 0xC40D, - 4846: 0xC40E, - 4847: 0xC40F, - 4848: 0xC411, - 4849: 0xC412, - 4850: 0xC413, - 4851: 0xC414, - 4852: 0xC415, - 4853: 0xC416, - 4854: 0xC417, - 4855: 0xC418, - 4856: 0xC419, - 4857: 0xC41A, - 4858: 0xC41B, - 4859: 0xC41C, - 4860: 0xC41D, - 4861: 0xC41E, - 4862: 0xC41F, - 4863: 0xC420, - 4864: 0xC421, - 4865: 0xC422, - 4866: 0xC423, - 4867: 0xC425, - 4868: 0xC426, - 4869: 0xC427, - 4870: 0xC428, - 4871: 0xC429, - 4872: 0xC42A, - 4873: 0xC42B, - 4874: 0xC42D, - 4875: 0xC42E, - 4876: 0xC42F, - 4877: 0xC431, - 4878: 0xC432, - 4879: 0xC433, - 4880: 0xC435, - 4881: 0xC436, - 4882: 0xC437, - 4883: 0xC438, - 4884: 0xC439, - 4885: 0xC43A, - 4886: 0xC43B, - 4887: 0xC43E, - 4888: 0xC43F, - 4889: 0xC440, - 4890: 0xC441, - 4891: 0xC442, - 4892: 0xC443, - 4893: 0xC444, - 4894: 0xC445, - 4895: 0xC446, - 4896: 0xC447, - 4897: 0xC449, - 4898: 0xC44A, - 4899: 0xC44B, - 4900: 0xC44C, - 4901: 0xC44D, - 4902: 0xC44E, - 4903: 0xC44F, - 4904: 0xC450, - 4905: 0xC451, - 4906: 0xC452, - 4907: 0xC453, - 4908: 0xC454, - 4909: 0xC455, - 4910: 0xC456, - 4911: 0xC457, - 4912: 0xC458, - 4913: 0xC459, - 4914: 0xC45A, - 4915: 0xC45B, - 4916: 0xC45C, - 4917: 0xC45D, - 4918: 0xC45E, - 4919: 0xC45F, - 4920: 0xC460, - 4921: 0xC461, - 4922: 0xC462, - 4923: 0xC463, - 4924: 0xC466, - 4925: 0xC467, - 4926: 0xC469, - 4927: 0xC46A, - 4928: 0xC46B, - 4929: 0xC46D, - 4930: 0xC46E, - 4931: 0xC46F, - 4932: 0xC470, - 4933: 0xC471, - 4934: 0xC472, - 4935: 0xC473, - 4936: 0xC476, - 4937: 0xC477, - 4938: 0xC478, - 4939: 0xC47A, - 4940: 0xC47B, - 4941: 0xC47C, - 4942: 0xC47D, - 4943: 0xC47E, - 4944: 0xC47F, - 4945: 0xC481, - 4946: 0xC482, - 4947: 0xC483, - 4948: 0xC484, - 4949: 0xC485, - 4950: 0xC486, - 4951: 0xC487, - 4952: 0xC488, - 4953: 0xC489, - 4954: 0xC48A, - 4955: 0xC48B, - 4956: 0xC48C, - 4957: 0xC48D, - 4958: 0xC48E, - 4959: 0xC48F, - 4960: 0xC490, - 4961: 0xC491, - 4962: 0xC492, - 4963: 0xC493, - 4964: 0xC495, - 4965: 0xC496, - 4966: 0xC497, - 4967: 0xC498, - 4968: 0xC499, - 4969: 0xC49A, - 4970: 0xC49B, - 4971: 0xC49D, - 4972: 0xC49E, - 4973: 0xC49F, - 4974: 0xC4A0, - 4975: 0xC4A1, - 4976: 0xC4A2, - 4977: 0xC4A3, - 4978: 0xC4A4, - 4979: 0xC4A5, - 4980: 0xC4A6, - 4981: 0xC4A7, - 4982: 0xC4A8, - 4983: 0xC4A9, - 4984: 0xC4AA, - 4985: 0xC4AB, - 4986: 0xC4AC, - 4987: 0xC4AD, - 4988: 0xC4AE, - 4989: 0xC4AF, - 4990: 0xC4B0, - 4991: 0xC4B1, - 4992: 0xC4B2, - 4993: 0xC4B3, - 4994: 0xC4B4, - 4995: 0xC4B5, - 4996: 0xC4B6, - 4997: 0xC4B7, - 4998: 0xC4B9, - 4999: 0xC4BA, - 5000: 0xC4BB, - 5001: 0xC4BD, - 5002: 0xC4BE, - 5003: 0xC4BF, - 5004: 0xC4C0, - 5005: 0xC4C1, - 5006: 0xC4C2, - 5007: 0xC4C3, - 5008: 0xC4C4, - 5009: 0xC4C5, - 5010: 0xC4C6, - 5011: 0xC4C7, - 5012: 0xC4C8, - 5013: 0xC4C9, - 5014: 0xC4CA, - 5015: 0xC4CB, - 5016: 0xC4CC, - 5017: 0xC4CD, - 5018: 0xC4CE, - 5019: 0xC4CF, - 5020: 0xC4D0, - 5021: 0xC4D1, - 5022: 0xC4D2, - 5023: 0xC4D3, - 5024: 0xC4D4, - 5025: 0xC4D5, - 5026: 0xC4D6, - 5027: 0xC4D7, - 5028: 0xC4D8, - 5029: 0xC4D9, - 5030: 0xC4DA, - 5031: 0xC4DB, - 5032: 0xC4DC, - 5033: 0xC4DD, - 5034: 0xC4DE, - 5035: 0xC4DF, - 5036: 0xC4E0, - 5037: 0xC4E1, - 5038: 0xC4E2, - 5039: 0xC4E3, - 5040: 0xC4E4, - 5041: 0xC4E5, - 5042: 0xC4E6, - 5043: 0xC4E7, - 5044: 0xC4E8, - 5045: 0xC4EA, - 5046: 0xC4EB, - 5047: 0xC4EC, - 5048: 0xC4ED, - 5049: 0xC4EE, - 5050: 0xC4EF, - 5051: 0xC4F2, - 5052: 0xC4F3, - 5053: 0xC4F5, - 5054: 0xC4F6, - 5055: 0xC4F7, - 5056: 0xC4F9, - 5057: 0xC4FB, - 5058: 0xC4FC, - 5059: 0xC4FD, - 5060: 0xC4FE, - 5061: 0xC502, - 5062: 0xC503, - 5063: 0xC504, - 5064: 0xC505, - 5065: 0xC506, - 5066: 0xC507, - 5067: 0xC508, - 5068: 0xC509, - 5069: 0xC50A, - 5070: 0xC50B, - 5071: 0xC50D, - 5072: 0xC50E, - 5073: 0xC50F, - 5074: 0xC511, - 5075: 0xC512, - 5076: 0xC513, - 5077: 0xC515, - 5078: 0xC516, - 5079: 0xC517, - 5080: 0xC518, - 5081: 0xC519, - 5082: 0xC51A, - 5083: 0xC51B, - 5084: 0xC51D, - 5085: 0xC51E, - 5086: 0xC51F, - 5087: 0xC520, - 5088: 0xC521, - 5089: 0xC522, - 5090: 0xC523, - 5091: 0xC524, - 5092: 0xC525, - 5093: 0xC526, - 5094: 0xC527, - 5095: 0xC52A, - 5096: 0xC52B, - 5097: 0xC52D, - 5098: 0xC52E, - 5099: 0xC52F, - 5100: 0xC531, - 5101: 0xC532, - 5102: 0xC533, - 5103: 0xC534, - 5104: 0xC535, - 5105: 0xC536, - 5106: 0xC537, - 5107: 0xC53A, - 5108: 0xC53C, - 5109: 0xC53E, - 5110: 0xC53F, - 5111: 0xC540, - 5112: 0xC541, - 5113: 0xC542, - 5114: 0xC543, - 5115: 0xC546, - 5116: 0xC547, - 5117: 0xC54B, - 5118: 0xC54F, - 5119: 0xC550, - 5120: 0xC551, - 5121: 0xC552, - 5122: 0xC556, - 5123: 0xC55A, - 5124: 0xC55B, - 5125: 0xC55C, - 5126: 0xC55F, - 5127: 0xC562, - 5128: 0xC563, - 5129: 0xC565, - 5130: 0xC566, - 5131: 0xC567, - 5132: 0xC569, - 5133: 0xC56A, - 5134: 0xC56B, - 5135: 0xC56C, - 5136: 0xC56D, - 5137: 0xC56E, - 5138: 0xC56F, - 5139: 0xC572, - 5140: 0xC576, - 5141: 0xC577, - 5142: 0xC578, - 5143: 0xC579, - 5144: 0xC57A, - 5145: 0xC57B, - 5146: 0xC57E, - 5147: 0xC57F, - 5148: 0xC581, - 5149: 0xC582, - 5150: 0xC583, - 5151: 0xC585, - 5152: 0xC586, - 5153: 0xC588, - 5154: 0xC589, - 5155: 0xC58A, - 5156: 0xC58B, - 5157: 0xC58E, - 5158: 0xC590, - 5159: 0xC592, - 5160: 0xC593, - 5161: 0xC594, - 5162: 0xC596, - 5163: 0xC599, - 5164: 0xC59A, - 5165: 0xC59B, - 5166: 0xC59D, - 5167: 0xC59E, - 5168: 0xC59F, - 5169: 0xC5A1, - 5170: 0xC5A2, - 5171: 0xC5A3, - 5172: 0xC5A4, - 5173: 0xC5A5, - 5174: 0xC5A6, - 5175: 0xC5A7, - 5176: 0xC5A8, - 5177: 0xC5AA, - 5178: 0xC5AB, - 5179: 0xC5AC, - 5180: 0xC5AD, - 5181: 0xC5AE, - 5182: 0xC5AF, - 5183: 0xC5B0, - 5184: 0xC5B1, - 5185: 0xC5B2, - 5186: 0xC5B3, - 5187: 0xC5B6, - 5188: 0xC5B7, - 5189: 0xC5BA, - 5190: 0xC5BF, - 5191: 0xC5C0, - 5192: 0xC5C1, - 5193: 0xC5C2, - 5194: 0xC5C3, - 5195: 0xC5CB, - 5196: 0xC5CD, - 5197: 0xC5CF, - 5198: 0xC5D2, - 5199: 0xC5D3, - 5200: 0xC5D5, - 5201: 0xC5D6, - 5202: 0xC5D7, - 5203: 0xC5D9, - 5204: 0xC5DA, - 5205: 0xC5DB, - 5206: 0xC5DC, - 5207: 0xC5DD, - 5208: 0xC5DE, - 5209: 0xC5DF, - 5210: 0xC5E2, - 5211: 0xC5E4, - 5212: 0xC5E6, - 5213: 0xC5E7, - 5214: 0xC5E8, - 5215: 0xC5E9, - 5216: 0xC5EA, - 5217: 0xC5EB, - 5218: 0xC5EF, - 5219: 0xC5F1, - 5220: 0xC5F2, - 5221: 0xC5F3, - 5222: 0xC5F5, - 5223: 0xC5F8, - 5224: 0xC5F9, - 5225: 0xC5FA, - 5226: 0xC5FB, - 5227: 0xC602, - 5228: 0xC603, - 5229: 0xC604, - 5230: 0xC609, - 5231: 0xC60A, - 5232: 0xC60B, - 5233: 0xC60D, - 5234: 0xC60E, - 5235: 0xC60F, - 5236: 0xC611, - 5237: 0xC612, - 5238: 0xC613, - 5239: 0xC614, - 5240: 0xC615, - 5241: 0xC616, - 5242: 0xC617, - 5243: 0xC61A, - 5244: 0xC61D, - 5245: 0xC61E, - 5246: 0xC61F, - 5247: 0xC620, - 5248: 0xC621, - 5249: 0xC622, - 5250: 0xC623, - 5251: 0xC626, - 5252: 0xC627, - 5253: 0xC629, - 5254: 0xC62A, - 5255: 0xC62B, - 5256: 0xC62F, - 5257: 0xC631, - 5258: 0xC632, - 5259: 0xC636, - 5260: 0xC638, - 5261: 0xC63A, - 5262: 0xC63C, - 5263: 0xC63D, - 5264: 0xC63E, - 5265: 0xC63F, - 5266: 0xC642, - 5267: 0xC643, - 5268: 0xC645, - 5269: 0xC646, - 5270: 0xC647, - 5271: 0xC649, - 5272: 0xC64A, - 5273: 0xC64B, - 5274: 0xC64C, - 5275: 0xC64D, - 5276: 0xC64E, - 5277: 0xC64F, - 5278: 0xC652, - 5279: 0xC656, - 5280: 0xC657, - 5281: 0xC658, - 5282: 0xC659, - 5283: 0xC65A, - 5284: 0xC65B, - 5285: 0xC65E, - 5286: 0xC65F, - 5287: 0xC661, - 5288: 0xC662, - 5289: 0xC663, - 5290: 0xC664, - 5291: 0xC665, - 5292: 0xC666, - 5293: 0xC667, - 5294: 0xC668, - 5295: 0xC669, - 5296: 0xC66A, - 5297: 0xC66B, - 5298: 0xC66D, - 5299: 0xC66E, - 5300: 0xC670, - 5301: 0xC672, - 5302: 0xC673, - 5303: 0xC674, - 5304: 0xC675, - 5305: 0xC676, - 5306: 0xC677, - 5307: 0xC67A, - 5308: 0xC67B, - 5309: 0xC67D, - 5310: 0xC67E, - 5311: 0xC67F, - 5312: 0xC681, - 5313: 0xC682, - 5314: 0xC683, - 5315: 0xC684, - 5316: 0xC685, - 5317: 0xC686, - 5318: 0xC687, - 5319: 0xC68A, - 5320: 0xC68C, - 5321: 0xC68E, - 5322: 0xC68F, - 5323: 0xC690, - 5324: 0xC691, - 5325: 0xC692, - 5326: 0xC693, - 5327: 0xC696, - 5328: 0xC697, - 5329: 0xC699, - 5330: 0xC69A, - 5331: 0xC69B, - 5332: 0xC69D, - 5333: 0xC69E, - 5334: 0xC69F, - 5335: 0xC6A0, - 5336: 0xC6A1, - 5337: 0xC6A2, - 5338: 0xC6A3, - 5339: 0xC6A6, - 5340: 0xC6A8, - 5341: 0xC6AA, - 5342: 0xC6AB, - 5343: 0xC6AC, - 5344: 0xC6AD, - 5345: 0xC6AE, - 5346: 0xC6AF, - 5347: 0xC6B2, - 5348: 0xC6B3, - 5349: 0xC6B5, - 5350: 0xC6B6, - 5351: 0xC6B7, - 5352: 0xC6BB, - 5353: 0xC6BC, - 5354: 0xC6BD, - 5355: 0xC6BE, - 5356: 0xC6BF, - 5357: 0xC6C2, - 5358: 0xC6C4, - 5359: 0xC6C6, - 5360: 0xC6C7, - 5361: 0xC6C8, - 5362: 0xC6C9, - 5363: 0xC6CA, - 5364: 0xC6CB, - 5365: 0xC6CE, - 5366: 0xC6CF, - 5367: 0xC6D1, - 5368: 0xC6D2, - 5369: 0xC6D3, - 5370: 0xC6D5, - 5371: 0xC6D6, - 5372: 0xC6D7, - 5373: 0xC6D8, - 5374: 0xC6D9, - 5375: 0xC6DA, - 5376: 0xC6DB, - 5377: 0xC6DE, - 5378: 0xC6DF, - 5379: 0xC6E2, - 5380: 0xC6E3, - 5381: 0xC6E4, - 5382: 0xC6E5, - 5383: 0xC6E6, - 5384: 0xC6E7, - 5385: 0xC6EA, - 5386: 0xC6EB, - 5387: 0xC6ED, - 5388: 0xC6EE, - 5389: 0xC6EF, - 5390: 0xC6F1, - 5391: 0xC6F2, - 5392: 0xC6F3, - 5393: 0xC6F4, - 5394: 0xC6F5, - 5395: 0xC6F6, - 5396: 0xC6F7, - 5397: 0xC6FA, - 5398: 0xC6FB, - 5399: 0xC6FC, - 5400: 0xC6FE, - 5401: 0xC6FF, - 5402: 0xC700, - 5403: 0xC701, - 5404: 0xC702, - 5405: 0xC703, - 5406: 0xC706, - 5407: 0xC707, - 5408: 0xC709, - 5409: 0xC70A, - 5410: 0xC70B, - 5411: 0xC70D, - 5412: 0xC70E, - 5413: 0xC70F, - 5414: 0xC710, - 5415: 0xC711, - 5416: 0xC712, - 5417: 0xC713, - 5418: 0xC716, - 5419: 0xC718, - 5420: 0xC71A, - 5421: 0xC71B, - 5422: 0xC71C, - 5423: 0xC71D, - 5424: 0xC71E, - 5425: 0xC71F, - 5426: 0xC722, - 5427: 0xC723, - 5428: 0xC725, - 5429: 0xC726, - 5430: 0xC727, - 5431: 0xC729, - 5432: 0xC72A, - 5433: 0xC72B, - 5434: 0xC72C, - 5435: 0xC72D, - 5436: 0xC72E, - 5437: 0xC72F, - 5438: 0xC732, - 5439: 0xC734, - 5440: 0xC736, - 5441: 0xC738, - 5442: 0xC739, - 5443: 0xC73A, - 5444: 0xC73B, - 5445: 0xC73E, - 5446: 0xC73F, - 5447: 0xC741, - 5448: 0xC742, - 5449: 0xC743, - 5450: 0xC745, - 5451: 0xC746, - 5452: 0xC747, - 5453: 0xC748, - 5454: 0xC749, - 5455: 0xC74B, - 5456: 0xC74E, - 5457: 0xC750, - 5458: 0xC759, - 5459: 0xC75A, - 5460: 0xC75B, - 5461: 0xC75D, - 5462: 0xC75E, - 5463: 0xC75F, - 5464: 0xC761, - 5465: 0xC762, - 5466: 0xC763, - 5467: 0xC764, - 5468: 0xC765, - 5469: 0xC766, - 5470: 0xC767, - 5471: 0xC769, - 5472: 0xC76A, - 5473: 0xC76C, - 5474: 0xC76D, - 5475: 0xC76E, - 5476: 0xC76F, - 5477: 0xC770, - 5478: 0xC771, - 5479: 0xC772, - 5480: 0xC773, - 5481: 0xC776, - 5482: 0xC777, - 5483: 0xC779, - 5484: 0xC77A, - 5485: 0xC77B, - 5486: 0xC77F, - 5487: 0xC780, - 5488: 0xC781, - 5489: 0xC782, - 5490: 0xC786, - 5491: 0xC78B, - 5492: 0xC78C, - 5493: 0xC78D, - 5494: 0xC78F, - 5495: 0xC792, - 5496: 0xC793, - 5497: 0xC795, - 5498: 0xC799, - 5499: 0xC79B, - 5500: 0xC79C, - 5501: 0xC79D, - 5502: 0xC79E, - 5503: 0xC79F, - 5504: 0xC7A2, - 5505: 0xC7A7, - 5506: 0xC7A8, - 5507: 0xC7A9, - 5508: 0xC7AA, - 5509: 0xC7AB, - 5510: 0xC7AE, - 5511: 0xC7AF, - 5512: 0xC7B1, - 5513: 0xC7B2, - 5514: 0xC7B3, - 5515: 0xC7B5, - 5516: 0xC7B6, - 5517: 0xC7B7, - 5518: 0xC7B8, - 5519: 0xC7B9, - 5520: 0xC7BA, - 5521: 0xC7BB, - 5522: 0xC7BE, - 5523: 0xC7C2, - 5524: 0xC7C3, - 5525: 0xC7C4, - 5526: 0xC7C5, - 5527: 0xC7C6, - 5528: 0xC7C7, - 5529: 0xC7CA, - 5530: 0xC7CB, - 5531: 0xC7CD, - 5532: 0xC7CF, - 5533: 0xC7D1, - 5534: 0xC7D2, - 5535: 0xC7D3, - 5536: 0xC7D4, - 5537: 0xC7D5, - 5538: 0xC7D6, - 5539: 0xC7D7, - 5540: 0xC7D9, - 5541: 0xC7DA, - 5542: 0xC7DB, - 5543: 0xC7DC, - 5544: 0xC7DE, - 5545: 0xC7DF, - 5546: 0xC7E0, - 5547: 0xC7E1, - 5548: 0xC7E2, - 5549: 0xC7E3, - 5550: 0xC7E5, - 5551: 0xC7E6, - 5552: 0xC7E7, - 5553: 0xC7E9, - 5554: 0xC7EA, - 5555: 0xC7EB, - 5556: 0xC7ED, - 5557: 0xC7EE, - 5558: 0xC7EF, - 5559: 0xC7F0, - 5560: 0xC7F1, - 5561: 0xC7F2, - 5562: 0xC7F3, - 5563: 0xC7F4, - 5564: 0xC7F5, - 5565: 0xC7F6, - 5566: 0xC7F7, - 5567: 0xC7F8, - 5568: 0xC7F9, - 5569: 0xC7FA, - 5570: 0xC7FB, - 5571: 0xC7FC, - 5572: 0xC7FD, - 5573: 0xC7FE, - 5574: 0xC7FF, - 5575: 0xC802, - 5576: 0xC803, - 5577: 0xC805, - 5578: 0xC806, - 5579: 0xC807, - 5580: 0xC809, - 5581: 0xC80B, - 5582: 0xC80C, - 5583: 0xC80D, - 5584: 0xC80E, - 5585: 0xC80F, - 5586: 0xC812, - 5587: 0xC814, - 5588: 0xC817, - 5589: 0xC818, - 5590: 0xC819, - 5591: 0xC81A, - 5592: 0xC81B, - 5593: 0xC81E, - 5594: 0xC81F, - 5595: 0xC821, - 5596: 0xC822, - 5597: 0xC823, - 5598: 0xC825, - 5599: 0xC826, - 5600: 0xC827, - 5601: 0xC828, - 5602: 0xC829, - 5603: 0xC82A, - 5604: 0xC82B, - 5605: 0xC82E, - 5606: 0xC830, - 5607: 0xC832, - 5608: 0xC833, - 5609: 0xC834, - 5610: 0xC835, - 5611: 0xC836, - 5612: 0xC837, - 5613: 0xC839, - 5614: 0xC83A, - 5615: 0xC83B, - 5616: 0xC83D, - 5617: 0xC83E, - 5618: 0xC83F, - 5619: 0xC841, - 5620: 0xC842, - 5621: 0xC843, - 5622: 0xC844, - 5623: 0xC845, - 5624: 0xC846, - 5625: 0xC847, - 5626: 0xC84A, - 5627: 0xC84B, - 5628: 0xC84E, - 5629: 0xC84F, - 5630: 0xC850, - 5631: 0xC851, - 5632: 0xC852, - 5633: 0xC853, - 5634: 0xC855, - 5635: 0xC856, - 5636: 0xC857, - 5637: 0xC858, - 5638: 0xC859, - 5639: 0xC85A, - 5640: 0xC85B, - 5641: 0xC85C, - 5642: 0xC85D, - 5643: 0xC85E, - 5644: 0xC85F, - 5645: 0xC860, - 5646: 0xC861, - 5647: 0xC862, - 5648: 0xC863, - 5649: 0xC864, - 5650: 0xC865, - 5651: 0xC866, - 5652: 0xC867, - 5653: 0xC868, - 5654: 0xC869, - 5655: 0xC86A, - 5656: 0xC86B, - 5657: 0xC86C, - 5658: 0xC86D, - 5659: 0xC86E, - 5660: 0xC86F, - 5661: 0xC872, - 5662: 0xC873, - 5663: 0xC875, - 5664: 0xC876, - 5665: 0xC877, - 5666: 0xC879, - 5667: 0xC87B, - 5668: 0xC87C, - 5669: 0xC87D, - 5670: 0xC87E, - 5671: 0xC87F, - 5672: 0xC882, - 5673: 0xC884, - 5674: 0xC888, - 5675: 0xC889, - 5676: 0xC88A, - 5677: 0xC88E, - 5678: 0xC88F, - 5679: 0xC890, - 5680: 0xC891, - 5681: 0xC892, - 5682: 0xC893, - 5683: 0xC895, - 5684: 0xC896, - 5685: 0xC897, - 5686: 0xC898, - 5687: 0xC899, - 5688: 0xC89A, - 5689: 0xC89B, - 5690: 0xC89C, - 5691: 0xC89E, - 5692: 0xC8A0, - 5693: 0xC8A2, - 5694: 0xC8A3, - 5695: 0xC8A4, - 5696: 0xC8A5, - 5697: 0xC8A6, - 5698: 0xC8A7, - 5699: 0xC8A9, - 5700: 0xC8AA, - 5701: 0xC8AB, - 5702: 0xC8AC, - 5703: 0xC8AD, - 5704: 0xC8AE, - 5705: 0xC8AF, - 5706: 0xC8B0, - 5707: 0xC8B1, - 5708: 0xC8B2, - 5709: 0xC8B3, - 5710: 0xC8B4, - 5711: 0xC8B5, - 5712: 0xC8B6, - 5713: 0xC8B7, - 5714: 0xC8B8, - 5715: 0xC8B9, - 5716: 0xC8BA, - 5717: 0xC8BB, - 5718: 0xC8BE, - 5719: 0xC8BF, - 5720: 0xC8C0, - 5721: 0xC8C1, - 5722: 0xC8C2, - 5723: 0xC8C3, - 5724: 0xC8C5, - 5725: 0xC8C6, - 5726: 0xC8C7, - 5727: 0xC8C9, - 5728: 0xC8CA, - 5729: 0xC8CB, - 5730: 0xC8CD, - 5731: 0xC8CE, - 5732: 0xC8CF, - 5733: 0xC8D0, - 5734: 0xC8D1, - 5735: 0xC8D2, - 5736: 0xC8D3, - 5737: 0xC8D6, - 5738: 0xC8D8, - 5739: 0xC8DA, - 5740: 0xC8DB, - 5741: 0xC8DC, - 5742: 0xC8DD, - 5743: 0xC8DE, - 5744: 0xC8DF, - 5745: 0xC8E2, - 5746: 0xC8E3, - 5747: 0xC8E5, - 5748: 0xC8E6, - 5749: 0xC8E7, - 5750: 0xC8E8, - 5751: 0xC8E9, - 5752: 0xC8EA, - 5753: 0xC8EB, - 5754: 0xC8EC, - 5755: 0xC8ED, - 5756: 0xC8EE, - 5757: 0xC8EF, - 5758: 0xC8F0, - 5759: 0xC8F1, - 5760: 0xC8F2, - 5761: 0xC8F3, - 5762: 0xC8F4, - 5763: 0xC8F6, - 5764: 0xC8F7, - 5765: 0xC8F8, - 5766: 0xC8F9, - 5767: 0xC8FA, - 5768: 0xC8FB, - 5769: 0xC8FE, - 5770: 0xC8FF, - 5771: 0xC901, - 5772: 0xC902, - 5773: 0xC903, - 5774: 0xC907, - 5775: 0xC908, - 5776: 0xC909, - 5777: 0xC90A, - 5778: 0xC90B, - 5779: 0xC90E, - 5780: 0x3000, - 5781: 0x3001, - 5782: 0x3002, - 5783: 0x00B7, - 5784: 0x2025, - 5785: 0x2026, - 5786: 0x00A8, - 5787: 0x3003, - 5788: 0x00AD, - 5789: 0x2015, - 5790: 0x2225, - 5791: 0xFF3C, - 5792: 0x223C, - 5793: 0x2018, - 5794: 0x2019, - 5795: 0x201C, - 5796: 0x201D, - 5797: 0x3014, - 5798: 0x3015, - 5799: 0x3008, - 5800: 0x3009, - 5801: 0x300A, - 5802: 0x300B, - 5803: 0x300C, - 5804: 0x300D, - 5805: 0x300E, - 5806: 0x300F, - 5807: 0x3010, - 5808: 0x3011, - 5809: 0x00B1, - 5810: 0x00D7, - 5811: 0x00F7, - 5812: 0x2260, - 5813: 0x2264, - 5814: 0x2265, - 5815: 0x221E, - 5816: 0x2234, - 5817: 0x00B0, - 5818: 0x2032, - 5819: 0x2033, - 5820: 0x2103, - 5821: 0x212B, - 5822: 0xFFE0, - 5823: 0xFFE1, - 5824: 0xFFE5, - 5825: 0x2642, - 5826: 0x2640, - 5827: 0x2220, - 5828: 0x22A5, - 5829: 0x2312, - 5830: 0x2202, - 5831: 0x2207, - 5832: 0x2261, - 5833: 0x2252, - 5834: 0x00A7, - 5835: 0x203B, - 5836: 0x2606, - 5837: 0x2605, - 5838: 0x25CB, - 5839: 0x25CF, - 5840: 0x25CE, - 5841: 0x25C7, - 5842: 0x25C6, - 5843: 0x25A1, - 5844: 0x25A0, - 5845: 0x25B3, - 5846: 0x25B2, - 5847: 0x25BD, - 5848: 0x25BC, - 5849: 0x2192, - 5850: 0x2190, - 5851: 0x2191, - 5852: 0x2193, - 5853: 0x2194, - 5854: 0x3013, - 5855: 0x226A, - 5856: 0x226B, - 5857: 0x221A, - 5858: 0x223D, - 5859: 0x221D, - 5860: 0x2235, - 5861: 0x222B, - 5862: 0x222C, - 5863: 0x2208, - 5864: 0x220B, - 5865: 0x2286, - 5866: 0x2287, - 5867: 0x2282, - 5868: 0x2283, - 5869: 0x222A, - 5870: 0x2229, - 5871: 0x2227, - 5872: 0x2228, - 5873: 0xFFE2, - 5874: 0xC910, - 5875: 0xC912, - 5876: 0xC913, - 5877: 0xC914, - 5878: 0xC915, - 5879: 0xC916, - 5880: 0xC917, - 5881: 0xC919, - 5882: 0xC91A, - 5883: 0xC91B, - 5884: 0xC91C, - 5885: 0xC91D, - 5886: 0xC91E, - 5887: 0xC91F, - 5888: 0xC920, - 5889: 0xC921, - 5890: 0xC922, - 5891: 0xC923, - 5892: 0xC924, - 5893: 0xC925, - 5894: 0xC926, - 5895: 0xC927, - 5896: 0xC928, - 5897: 0xC929, - 5898: 0xC92A, - 5899: 0xC92B, - 5900: 0xC92D, - 5901: 0xC92E, - 5902: 0xC92F, - 5903: 0xC930, - 5904: 0xC931, - 5905: 0xC932, - 5906: 0xC933, - 5907: 0xC935, - 5908: 0xC936, - 5909: 0xC937, - 5910: 0xC938, - 5911: 0xC939, - 5912: 0xC93A, - 5913: 0xC93B, - 5914: 0xC93C, - 5915: 0xC93D, - 5916: 0xC93E, - 5917: 0xC93F, - 5918: 0xC940, - 5919: 0xC941, - 5920: 0xC942, - 5921: 0xC943, - 5922: 0xC944, - 5923: 0xC945, - 5924: 0xC946, - 5925: 0xC947, - 5926: 0xC948, - 5927: 0xC949, - 5928: 0xC94A, - 5929: 0xC94B, - 5930: 0xC94C, - 5931: 0xC94D, - 5932: 0xC94E, - 5933: 0xC94F, - 5934: 0xC952, - 5935: 0xC953, - 5936: 0xC955, - 5937: 0xC956, - 5938: 0xC957, - 5939: 0xC959, - 5940: 0xC95A, - 5941: 0xC95B, - 5942: 0xC95C, - 5943: 0xC95D, - 5944: 0xC95E, - 5945: 0xC95F, - 5946: 0xC962, - 5947: 0xC964, - 5948: 0xC965, - 5949: 0xC966, - 5950: 0xC967, - 5951: 0xC968, - 5952: 0xC969, - 5953: 0xC96A, - 5954: 0xC96B, - 5955: 0xC96D, - 5956: 0xC96E, - 5957: 0xC96F, - 5958: 0x21D2, - 5959: 0x21D4, - 5960: 0x2200, - 5961: 0x2203, - 5962: 0x00B4, - 5963: 0xFF5E, - 5964: 0x02C7, - 5965: 0x02D8, - 5966: 0x02DD, - 5967: 0x02DA, - 5968: 0x02D9, - 5969: 0x00B8, - 5970: 0x02DB, - 5971: 0x00A1, - 5972: 0x00BF, - 5973: 0x02D0, - 5974: 0x222E, - 5975: 0x2211, - 5976: 0x220F, - 5977: 0x00A4, - 5978: 0x2109, - 5979: 0x2030, - 5980: 0x25C1, - 5981: 0x25C0, - 5982: 0x25B7, - 5983: 0x25B6, - 5984: 0x2664, - 5985: 0x2660, - 5986: 0x2661, - 5987: 0x2665, - 5988: 0x2667, - 5989: 0x2663, - 5990: 0x2299, - 5991: 0x25C8, - 5992: 0x25A3, - 5993: 0x25D0, - 5994: 0x25D1, - 5995: 0x2592, - 5996: 0x25A4, - 5997: 0x25A5, - 5998: 0x25A8, - 5999: 0x25A7, - 6000: 0x25A6, - 6001: 0x25A9, - 6002: 0x2668, - 6003: 0x260F, - 6004: 0x260E, - 6005: 0x261C, - 6006: 0x261E, - 6007: 0x00B6, - 6008: 0x2020, - 6009: 0x2021, - 6010: 0x2195, - 6011: 0x2197, - 6012: 0x2199, - 6013: 0x2196, - 6014: 0x2198, - 6015: 0x266D, - 6016: 0x2669, - 6017: 0x266A, - 6018: 0x266C, - 6019: 0x327F, - 6020: 0x321C, - 6021: 0x2116, - 6022: 0x33C7, - 6023: 0x2122, - 6024: 0x33C2, - 6025: 0x33D8, - 6026: 0x2121, - 6027: 0x20AC, - 6028: 0x00AE, - 6052: 0xC971, - 6053: 0xC972, - 6054: 0xC973, - 6055: 0xC975, - 6056: 0xC976, - 6057: 0xC977, - 6058: 0xC978, - 6059: 0xC979, - 6060: 0xC97A, - 6061: 0xC97B, - 6062: 0xC97D, - 6063: 0xC97E, - 6064: 0xC97F, - 6065: 0xC980, - 6066: 0xC981, - 6067: 0xC982, - 6068: 0xC983, - 6069: 0xC984, - 6070: 0xC985, - 6071: 0xC986, - 6072: 0xC987, - 6073: 0xC98A, - 6074: 0xC98B, - 6075: 0xC98D, - 6076: 0xC98E, - 6077: 0xC98F, - 6078: 0xC991, - 6079: 0xC992, - 6080: 0xC993, - 6081: 0xC994, - 6082: 0xC995, - 6083: 0xC996, - 6084: 0xC997, - 6085: 0xC99A, - 6086: 0xC99C, - 6087: 0xC99E, - 6088: 0xC99F, - 6089: 0xC9A0, - 6090: 0xC9A1, - 6091: 0xC9A2, - 6092: 0xC9A3, - 6093: 0xC9A4, - 6094: 0xC9A5, - 6095: 0xC9A6, - 6096: 0xC9A7, - 6097: 0xC9A8, - 6098: 0xC9A9, - 6099: 0xC9AA, - 6100: 0xC9AB, - 6101: 0xC9AC, - 6102: 0xC9AD, - 6103: 0xC9AE, - 6104: 0xC9AF, - 6105: 0xC9B0, - 6106: 0xC9B1, - 6107: 0xC9B2, - 6108: 0xC9B3, - 6109: 0xC9B4, - 6110: 0xC9B5, - 6111: 0xC9B6, - 6112: 0xC9B7, - 6113: 0xC9B8, - 6114: 0xC9B9, - 6115: 0xC9BA, - 6116: 0xC9BB, - 6117: 0xC9BC, - 6118: 0xC9BD, - 6119: 0xC9BE, - 6120: 0xC9BF, - 6121: 0xC9C2, - 6122: 0xC9C3, - 6123: 0xC9C5, - 6124: 0xC9C6, - 6125: 0xC9C9, - 6126: 0xC9CB, - 6127: 0xC9CC, - 6128: 0xC9CD, - 6129: 0xC9CE, - 6130: 0xC9CF, - 6131: 0xC9D2, - 6132: 0xC9D4, - 6133: 0xC9D7, - 6134: 0xC9D8, - 6135: 0xC9DB, - 6136: 0xFF01, - 6137: 0xFF02, - 6138: 0xFF03, - 6139: 0xFF04, - 6140: 0xFF05, - 6141: 0xFF06, - 6142: 0xFF07, - 6143: 0xFF08, - 6144: 0xFF09, - 6145: 0xFF0A, - 6146: 0xFF0B, - 6147: 0xFF0C, - 6148: 0xFF0D, - 6149: 0xFF0E, - 6150: 0xFF0F, - 6151: 0xFF10, - 6152: 0xFF11, - 6153: 0xFF12, - 6154: 0xFF13, - 6155: 0xFF14, - 6156: 0xFF15, - 6157: 0xFF16, - 6158: 0xFF17, - 6159: 0xFF18, - 6160: 0xFF19, - 6161: 0xFF1A, - 6162: 0xFF1B, - 6163: 0xFF1C, - 6164: 0xFF1D, - 6165: 0xFF1E, - 6166: 0xFF1F, - 6167: 0xFF20, - 6168: 0xFF21, - 6169: 0xFF22, - 6170: 0xFF23, - 6171: 0xFF24, - 6172: 0xFF25, - 6173: 0xFF26, - 6174: 0xFF27, - 6175: 0xFF28, - 6176: 0xFF29, - 6177: 0xFF2A, - 6178: 0xFF2B, - 6179: 0xFF2C, - 6180: 0xFF2D, - 6181: 0xFF2E, - 6182: 0xFF2F, - 6183: 0xFF30, - 6184: 0xFF31, - 6185: 0xFF32, - 6186: 0xFF33, - 6187: 0xFF34, - 6188: 0xFF35, - 6189: 0xFF36, - 6190: 0xFF37, - 6191: 0xFF38, - 6192: 0xFF39, - 6193: 0xFF3A, - 6194: 0xFF3B, - 6195: 0xFFE6, - 6196: 0xFF3D, - 6197: 0xFF3E, - 6198: 0xFF3F, - 6199: 0xFF40, - 6200: 0xFF41, - 6201: 0xFF42, - 6202: 0xFF43, - 6203: 0xFF44, - 6204: 0xFF45, - 6205: 0xFF46, - 6206: 0xFF47, - 6207: 0xFF48, - 6208: 0xFF49, - 6209: 0xFF4A, - 6210: 0xFF4B, - 6211: 0xFF4C, - 6212: 0xFF4D, - 6213: 0xFF4E, - 6214: 0xFF4F, - 6215: 0xFF50, - 6216: 0xFF51, - 6217: 0xFF52, - 6218: 0xFF53, - 6219: 0xFF54, - 6220: 0xFF55, - 6221: 0xFF56, - 6222: 0xFF57, - 6223: 0xFF58, - 6224: 0xFF59, - 6225: 0xFF5A, - 6226: 0xFF5B, - 6227: 0xFF5C, - 6228: 0xFF5D, - 6229: 0xFFE3, - 6230: 0xC9DE, - 6231: 0xC9DF, - 6232: 0xC9E1, - 6233: 0xC9E3, - 6234: 0xC9E5, - 6235: 0xC9E6, - 6236: 0xC9E8, - 6237: 0xC9E9, - 6238: 0xC9EA, - 6239: 0xC9EB, - 6240: 0xC9EE, - 6241: 0xC9F2, - 6242: 0xC9F3, - 6243: 0xC9F4, - 6244: 0xC9F5, - 6245: 0xC9F6, - 6246: 0xC9F7, - 6247: 0xC9FA, - 6248: 0xC9FB, - 6249: 0xC9FD, - 6250: 0xC9FE, - 6251: 0xC9FF, - 6252: 0xCA01, - 6253: 0xCA02, - 6254: 0xCA03, - 6255: 0xCA04, - 6256: 0xCA05, - 6257: 0xCA06, - 6258: 0xCA07, - 6259: 0xCA0A, - 6260: 0xCA0E, - 6261: 0xCA0F, - 6262: 0xCA10, - 6263: 0xCA11, - 6264: 0xCA12, - 6265: 0xCA13, - 6266: 0xCA15, - 6267: 0xCA16, - 6268: 0xCA17, - 6269: 0xCA19, - 6270: 0xCA1A, - 6271: 0xCA1B, - 6272: 0xCA1C, - 6273: 0xCA1D, - 6274: 0xCA1E, - 6275: 0xCA1F, - 6276: 0xCA20, - 6277: 0xCA21, - 6278: 0xCA22, - 6279: 0xCA23, - 6280: 0xCA24, - 6281: 0xCA25, - 6282: 0xCA26, - 6283: 0xCA27, - 6284: 0xCA28, - 6285: 0xCA2A, - 6286: 0xCA2B, - 6287: 0xCA2C, - 6288: 0xCA2D, - 6289: 0xCA2E, - 6290: 0xCA2F, - 6291: 0xCA30, - 6292: 0xCA31, - 6293: 0xCA32, - 6294: 0xCA33, - 6295: 0xCA34, - 6296: 0xCA35, - 6297: 0xCA36, - 6298: 0xCA37, - 6299: 0xCA38, - 6300: 0xCA39, - 6301: 0xCA3A, - 6302: 0xCA3B, - 6303: 0xCA3C, - 6304: 0xCA3D, - 6305: 0xCA3E, - 6306: 0xCA3F, - 6307: 0xCA40, - 6308: 0xCA41, - 6309: 0xCA42, - 6310: 0xCA43, - 6311: 0xCA44, - 6312: 0xCA45, - 6313: 0xCA46, - 6314: 0x3131, - 6315: 0x3132, - 6316: 0x3133, - 6317: 0x3134, - 6318: 0x3135, - 6319: 0x3136, - 6320: 0x3137, - 6321: 0x3138, - 6322: 0x3139, - 6323: 0x313A, - 6324: 0x313B, - 6325: 0x313C, - 6326: 0x313D, - 6327: 0x313E, - 6328: 0x313F, - 6329: 0x3140, - 6330: 0x3141, - 6331: 0x3142, - 6332: 0x3143, - 6333: 0x3144, - 6334: 0x3145, - 6335: 0x3146, - 6336: 0x3147, - 6337: 0x3148, - 6338: 0x3149, - 6339: 0x314A, - 6340: 0x314B, - 6341: 0x314C, - 6342: 0x314D, - 6343: 0x314E, - 6344: 0x314F, - 6345: 0x3150, - 6346: 0x3151, - 6347: 0x3152, - 6348: 0x3153, - 6349: 0x3154, - 6350: 0x3155, - 6351: 0x3156, - 6352: 0x3157, - 6353: 0x3158, - 6354: 0x3159, - 6355: 0x315A, - 6356: 0x315B, - 6357: 0x315C, - 6358: 0x315D, - 6359: 0x315E, - 6360: 0x315F, - 6361: 0x3160, - 6362: 0x3161, - 6363: 0x3162, - 6364: 0x3163, - 6365: 0x3164, - 6366: 0x3165, - 6367: 0x3166, - 6368: 0x3167, - 6369: 0x3168, - 6370: 0x3169, - 6371: 0x316A, - 6372: 0x316B, - 6373: 0x316C, - 6374: 0x316D, - 6375: 0x316E, - 6376: 0x316F, - 6377: 0x3170, - 6378: 0x3171, - 6379: 0x3172, - 6380: 0x3173, - 6381: 0x3174, - 6382: 0x3175, - 6383: 0x3176, - 6384: 0x3177, - 6385: 0x3178, - 6386: 0x3179, - 6387: 0x317A, - 6388: 0x317B, - 6389: 0x317C, - 6390: 0x317D, - 6391: 0x317E, - 6392: 0x317F, - 6393: 0x3180, - 6394: 0x3181, - 6395: 0x3182, - 6396: 0x3183, - 6397: 0x3184, - 6398: 0x3185, - 6399: 0x3186, - 6400: 0x3187, - 6401: 0x3188, - 6402: 0x3189, - 6403: 0x318A, - 6404: 0x318B, - 6405: 0x318C, - 6406: 0x318D, - 6407: 0x318E, - 6408: 0xCA47, - 6409: 0xCA48, - 6410: 0xCA49, - 6411: 0xCA4A, - 6412: 0xCA4B, - 6413: 0xCA4E, - 6414: 0xCA4F, - 6415: 0xCA51, - 6416: 0xCA52, - 6417: 0xCA53, - 6418: 0xCA55, - 6419: 0xCA56, - 6420: 0xCA57, - 6421: 0xCA58, - 6422: 0xCA59, - 6423: 0xCA5A, - 6424: 0xCA5B, - 6425: 0xCA5E, - 6426: 0xCA62, - 6427: 0xCA63, - 6428: 0xCA64, - 6429: 0xCA65, - 6430: 0xCA66, - 6431: 0xCA67, - 6432: 0xCA69, - 6433: 0xCA6A, - 6434: 0xCA6B, - 6435: 0xCA6C, - 6436: 0xCA6D, - 6437: 0xCA6E, - 6438: 0xCA6F, - 6439: 0xCA70, - 6440: 0xCA71, - 6441: 0xCA72, - 6442: 0xCA73, - 6443: 0xCA74, - 6444: 0xCA75, - 6445: 0xCA76, - 6446: 0xCA77, - 6447: 0xCA78, - 6448: 0xCA79, - 6449: 0xCA7A, - 6450: 0xCA7B, - 6451: 0xCA7C, - 6452: 0xCA7E, - 6453: 0xCA7F, - 6454: 0xCA80, - 6455: 0xCA81, - 6456: 0xCA82, - 6457: 0xCA83, - 6458: 0xCA85, - 6459: 0xCA86, - 6460: 0xCA87, - 6461: 0xCA88, - 6462: 0xCA89, - 6463: 0xCA8A, - 6464: 0xCA8B, - 6465: 0xCA8C, - 6466: 0xCA8D, - 6467: 0xCA8E, - 6468: 0xCA8F, - 6469: 0xCA90, - 6470: 0xCA91, - 6471: 0xCA92, - 6472: 0xCA93, - 6473: 0xCA94, - 6474: 0xCA95, - 6475: 0xCA96, - 6476: 0xCA97, - 6477: 0xCA99, - 6478: 0xCA9A, - 6479: 0xCA9B, - 6480: 0xCA9C, - 6481: 0xCA9D, - 6482: 0xCA9E, - 6483: 0xCA9F, - 6484: 0xCAA0, - 6485: 0xCAA1, - 6486: 0xCAA2, - 6487: 0xCAA3, - 6488: 0xCAA4, - 6489: 0xCAA5, - 6490: 0xCAA6, - 6491: 0xCAA7, - 6492: 0x2170, - 6493: 0x2171, - 6494: 0x2172, - 6495: 0x2173, - 6496: 0x2174, - 6497: 0x2175, - 6498: 0x2176, - 6499: 0x2177, - 6500: 0x2178, - 6501: 0x2179, - 6507: 0x2160, - 6508: 0x2161, - 6509: 0x2162, - 6510: 0x2163, - 6511: 0x2164, - 6512: 0x2165, - 6513: 0x2166, - 6514: 0x2167, - 6515: 0x2168, - 6516: 0x2169, - 6524: 0x0391, - 6525: 0x0392, - 6526: 0x0393, - 6527: 0x0394, - 6528: 0x0395, - 6529: 0x0396, - 6530: 0x0397, - 6531: 0x0398, - 6532: 0x0399, - 6533: 0x039A, - 6534: 0x039B, - 6535: 0x039C, - 6536: 0x039D, - 6537: 0x039E, - 6538: 0x039F, - 6539: 0x03A0, - 6540: 0x03A1, - 6541: 0x03A3, - 6542: 0x03A4, - 6543: 0x03A5, - 6544: 0x03A6, - 6545: 0x03A7, - 6546: 0x03A8, - 6547: 0x03A9, - 6556: 0x03B1, - 6557: 0x03B2, - 6558: 0x03B3, - 6559: 0x03B4, - 6560: 0x03B5, - 6561: 0x03B6, - 6562: 0x03B7, - 6563: 0x03B8, - 6564: 0x03B9, - 6565: 0x03BA, - 6566: 0x03BB, - 6567: 0x03BC, - 6568: 0x03BD, - 6569: 0x03BE, - 6570: 0x03BF, - 6571: 0x03C0, - 6572: 0x03C1, - 6573: 0x03C3, - 6574: 0x03C4, - 6575: 0x03C5, - 6576: 0x03C6, - 6577: 0x03C7, - 6578: 0x03C8, - 6579: 0x03C9, - 6586: 0xCAA8, - 6587: 0xCAA9, - 6588: 0xCAAA, - 6589: 0xCAAB, - 6590: 0xCAAC, - 6591: 0xCAAD, - 6592: 0xCAAE, - 6593: 0xCAAF, - 6594: 0xCAB0, - 6595: 0xCAB1, - 6596: 0xCAB2, - 6597: 0xCAB3, - 6598: 0xCAB4, - 6599: 0xCAB5, - 6600: 0xCAB6, - 6601: 0xCAB7, - 6602: 0xCAB8, - 6603: 0xCAB9, - 6604: 0xCABA, - 6605: 0xCABB, - 6606: 0xCABE, - 6607: 0xCABF, - 6608: 0xCAC1, - 6609: 0xCAC2, - 6610: 0xCAC3, - 6611: 0xCAC5, - 6612: 0xCAC6, - 6613: 0xCAC7, - 6614: 0xCAC8, - 6615: 0xCAC9, - 6616: 0xCACA, - 6617: 0xCACB, - 6618: 0xCACE, - 6619: 0xCAD0, - 6620: 0xCAD2, - 6621: 0xCAD4, - 6622: 0xCAD5, - 6623: 0xCAD6, - 6624: 0xCAD7, - 6625: 0xCADA, - 6626: 0xCADB, - 6627: 0xCADC, - 6628: 0xCADD, - 6629: 0xCADE, - 6630: 0xCADF, - 6631: 0xCAE1, - 6632: 0xCAE2, - 6633: 0xCAE3, - 6634: 0xCAE4, - 6635: 0xCAE5, - 6636: 0xCAE6, - 6637: 0xCAE7, - 6638: 0xCAE8, - 6639: 0xCAE9, - 6640: 0xCAEA, - 6641: 0xCAEB, - 6642: 0xCAED, - 6643: 0xCAEE, - 6644: 0xCAEF, - 6645: 0xCAF0, - 6646: 0xCAF1, - 6647: 0xCAF2, - 6648: 0xCAF3, - 6649: 0xCAF5, - 6650: 0xCAF6, - 6651: 0xCAF7, - 6652: 0xCAF8, - 6653: 0xCAF9, - 6654: 0xCAFA, - 6655: 0xCAFB, - 6656: 0xCAFC, - 6657: 0xCAFD, - 6658: 0xCAFE, - 6659: 0xCAFF, - 6660: 0xCB00, - 6661: 0xCB01, - 6662: 0xCB02, - 6663: 0xCB03, - 6664: 0xCB04, - 6665: 0xCB05, - 6666: 0xCB06, - 6667: 0xCB07, - 6668: 0xCB09, - 6669: 0xCB0A, - 6670: 0x2500, - 6671: 0x2502, - 6672: 0x250C, - 6673: 0x2510, - 6674: 0x2518, - 6675: 0x2514, - 6676: 0x251C, - 6677: 0x252C, - 6678: 0x2524, - 6679: 0x2534, - 6680: 0x253C, - 6681: 0x2501, - 6682: 0x2503, - 6683: 0x250F, - 6684: 0x2513, - 6685: 0x251B, - 6686: 0x2517, - 6687: 0x2523, - 6688: 0x2533, - 6689: 0x252B, - 6690: 0x253B, - 6691: 0x254B, - 6692: 0x2520, - 6693: 0x252F, - 6694: 0x2528, - 6695: 0x2537, - 6696: 0x253F, - 6697: 0x251D, - 6698: 0x2530, - 6699: 0x2525, - 6700: 0x2538, - 6701: 0x2542, - 6702: 0x2512, - 6703: 0x2511, - 6704: 0x251A, - 6705: 0x2519, - 6706: 0x2516, - 6707: 0x2515, - 6708: 0x250E, - 6709: 0x250D, - 6710: 0x251E, - 6711: 0x251F, - 6712: 0x2521, - 6713: 0x2522, - 6714: 0x2526, - 6715: 0x2527, - 6716: 0x2529, - 6717: 0x252A, - 6718: 0x252D, - 6719: 0x252E, - 6720: 0x2531, - 6721: 0x2532, - 6722: 0x2535, - 6723: 0x2536, - 6724: 0x2539, - 6725: 0x253A, - 6726: 0x253D, - 6727: 0x253E, - 6728: 0x2540, - 6729: 0x2541, - 6730: 0x2543, - 6731: 0x2544, - 6732: 0x2545, - 6733: 0x2546, - 6734: 0x2547, - 6735: 0x2548, - 6736: 0x2549, - 6737: 0x254A, - 6764: 0xCB0B, - 6765: 0xCB0C, - 6766: 0xCB0D, - 6767: 0xCB0E, - 6768: 0xCB0F, - 6769: 0xCB11, - 6770: 0xCB12, - 6771: 0xCB13, - 6772: 0xCB15, - 6773: 0xCB16, - 6774: 0xCB17, - 6775: 0xCB19, - 6776: 0xCB1A, - 6777: 0xCB1B, - 6778: 0xCB1C, - 6779: 0xCB1D, - 6780: 0xCB1E, - 6781: 0xCB1F, - 6782: 0xCB22, - 6783: 0xCB23, - 6784: 0xCB24, - 6785: 0xCB25, - 6786: 0xCB26, - 6787: 0xCB27, - 6788: 0xCB28, - 6789: 0xCB29, - 6790: 0xCB2A, - 6791: 0xCB2B, - 6792: 0xCB2C, - 6793: 0xCB2D, - 6794: 0xCB2E, - 6795: 0xCB2F, - 6796: 0xCB30, - 6797: 0xCB31, - 6798: 0xCB32, - 6799: 0xCB33, - 6800: 0xCB34, - 6801: 0xCB35, - 6802: 0xCB36, - 6803: 0xCB37, - 6804: 0xCB38, - 6805: 0xCB39, - 6806: 0xCB3A, - 6807: 0xCB3B, - 6808: 0xCB3C, - 6809: 0xCB3D, - 6810: 0xCB3E, - 6811: 0xCB3F, - 6812: 0xCB40, - 6813: 0xCB42, - 6814: 0xCB43, - 6815: 0xCB44, - 6816: 0xCB45, - 6817: 0xCB46, - 6818: 0xCB47, - 6819: 0xCB4A, - 6820: 0xCB4B, - 6821: 0xCB4D, - 6822: 0xCB4E, - 6823: 0xCB4F, - 6824: 0xCB51, - 6825: 0xCB52, - 6826: 0xCB53, - 6827: 0xCB54, - 6828: 0xCB55, - 6829: 0xCB56, - 6830: 0xCB57, - 6831: 0xCB5A, - 6832: 0xCB5B, - 6833: 0xCB5C, - 6834: 0xCB5E, - 6835: 0xCB5F, - 6836: 0xCB60, - 6837: 0xCB61, - 6838: 0xCB62, - 6839: 0xCB63, - 6840: 0xCB65, - 6841: 0xCB66, - 6842: 0xCB67, - 6843: 0xCB68, - 6844: 0xCB69, - 6845: 0xCB6A, - 6846: 0xCB6B, - 6847: 0xCB6C, - 6848: 0x3395, - 6849: 0x3396, - 6850: 0x3397, - 6851: 0x2113, - 6852: 0x3398, - 6853: 0x33C4, - 6854: 0x33A3, - 6855: 0x33A4, - 6856: 0x33A5, - 6857: 0x33A6, - 6858: 0x3399, - 6859: 0x339A, - 6860: 0x339B, - 6861: 0x339C, - 6862: 0x339D, - 6863: 0x339E, - 6864: 0x339F, - 6865: 0x33A0, - 6866: 0x33A1, - 6867: 0x33A2, - 6868: 0x33CA, - 6869: 0x338D, - 6870: 0x338E, - 6871: 0x338F, - 6872: 0x33CF, - 6873: 0x3388, - 6874: 0x3389, - 6875: 0x33C8, - 6876: 0x33A7, - 6877: 0x33A8, - 6878: 0x33B0, - 6879: 0x33B1, - 6880: 0x33B2, - 6881: 0x33B3, - 6882: 0x33B4, - 6883: 0x33B5, - 6884: 0x33B6, - 6885: 0x33B7, - 6886: 0x33B8, - 6887: 0x33B9, - 6888: 0x3380, - 6889: 0x3381, - 6890: 0x3382, - 6891: 0x3383, - 6892: 0x3384, - 6893: 0x33BA, - 6894: 0x33BB, - 6895: 0x33BC, - 6896: 0x33BD, - 6897: 0x33BE, - 6898: 0x33BF, - 6899: 0x3390, - 6900: 0x3391, - 6901: 0x3392, - 6902: 0x3393, - 6903: 0x3394, - 6904: 0x2126, - 6905: 0x33C0, - 6906: 0x33C1, - 6907: 0x338A, - 6908: 0x338B, - 6909: 0x338C, - 6910: 0x33D6, - 6911: 0x33C5, - 6912: 0x33AD, - 6913: 0x33AE, - 6914: 0x33AF, - 6915: 0x33DB, - 6916: 0x33A9, - 6917: 0x33AA, - 6918: 0x33AB, - 6919: 0x33AC, - 6920: 0x33DD, - 6921: 0x33D0, - 6922: 0x33D3, - 6923: 0x33C3, - 6924: 0x33C9, - 6925: 0x33DC, - 6926: 0x33C6, - 6942: 0xCB6D, - 6943: 0xCB6E, - 6944: 0xCB6F, - 6945: 0xCB70, - 6946: 0xCB71, - 6947: 0xCB72, - 6948: 0xCB73, - 6949: 0xCB74, - 6950: 0xCB75, - 6951: 0xCB76, - 6952: 0xCB77, - 6953: 0xCB7A, - 6954: 0xCB7B, - 6955: 0xCB7C, - 6956: 0xCB7D, - 6957: 0xCB7E, - 6958: 0xCB7F, - 6959: 0xCB80, - 6960: 0xCB81, - 6961: 0xCB82, - 6962: 0xCB83, - 6963: 0xCB84, - 6964: 0xCB85, - 6965: 0xCB86, - 6966: 0xCB87, - 6967: 0xCB88, - 6968: 0xCB89, - 6969: 0xCB8A, - 6970: 0xCB8B, - 6971: 0xCB8C, - 6972: 0xCB8D, - 6973: 0xCB8E, - 6974: 0xCB8F, - 6975: 0xCB90, - 6976: 0xCB91, - 6977: 0xCB92, - 6978: 0xCB93, - 6979: 0xCB94, - 6980: 0xCB95, - 6981: 0xCB96, - 6982: 0xCB97, - 6983: 0xCB98, - 6984: 0xCB99, - 6985: 0xCB9A, - 6986: 0xCB9B, - 6987: 0xCB9D, - 6988: 0xCB9E, - 6989: 0xCB9F, - 6990: 0xCBA0, - 6991: 0xCBA1, - 6992: 0xCBA2, - 6993: 0xCBA3, - 6994: 0xCBA4, - 6995: 0xCBA5, - 6996: 0xCBA6, - 6997: 0xCBA7, - 6998: 0xCBA8, - 6999: 0xCBA9, - 7000: 0xCBAA, - 7001: 0xCBAB, - 7002: 0xCBAC, - 7003: 0xCBAD, - 7004: 0xCBAE, - 7005: 0xCBAF, - 7006: 0xCBB0, - 7007: 0xCBB1, - 7008: 0xCBB2, - 7009: 0xCBB3, - 7010: 0xCBB4, - 7011: 0xCBB5, - 7012: 0xCBB6, - 7013: 0xCBB7, - 7014: 0xCBB9, - 7015: 0xCBBA, - 7016: 0xCBBB, - 7017: 0xCBBC, - 7018: 0xCBBD, - 7019: 0xCBBE, - 7020: 0xCBBF, - 7021: 0xCBC0, - 7022: 0xCBC1, - 7023: 0xCBC2, - 7024: 0xCBC3, - 7025: 0xCBC4, - 7026: 0x00C6, - 7027: 0x00D0, - 7028: 0x00AA, - 7029: 0x0126, - 7031: 0x0132, - 7033: 0x013F, - 7034: 0x0141, - 7035: 0x00D8, - 7036: 0x0152, - 7037: 0x00BA, - 7038: 0x00DE, - 7039: 0x0166, - 7040: 0x014A, - 7042: 0x3260, - 7043: 0x3261, - 7044: 0x3262, - 7045: 0x3263, - 7046: 0x3264, - 7047: 0x3265, - 7048: 0x3266, - 7049: 0x3267, - 7050: 0x3268, - 7051: 0x3269, - 7052: 0x326A, - 7053: 0x326B, - 7054: 0x326C, - 7055: 0x326D, - 7056: 0x326E, - 7057: 0x326F, - 7058: 0x3270, - 7059: 0x3271, - 7060: 0x3272, - 7061: 0x3273, - 7062: 0x3274, - 7063: 0x3275, - 7064: 0x3276, - 7065: 0x3277, - 7066: 0x3278, - 7067: 0x3279, - 7068: 0x327A, - 7069: 0x327B, - 7070: 0x24D0, - 7071: 0x24D1, - 7072: 0x24D2, - 7073: 0x24D3, - 7074: 0x24D4, - 7075: 0x24D5, - 7076: 0x24D6, - 7077: 0x24D7, - 7078: 0x24D8, - 7079: 0x24D9, - 7080: 0x24DA, - 7081: 0x24DB, - 7082: 0x24DC, - 7083: 0x24DD, - 7084: 0x24DE, - 7085: 0x24DF, - 7086: 0x24E0, - 7087: 0x24E1, - 7088: 0x24E2, - 7089: 0x24E3, - 7090: 0x24E4, - 7091: 0x24E5, - 7092: 0x24E6, - 7093: 0x24E7, - 7094: 0x24E8, - 7095: 0x24E9, - 7096: 0x2460, - 7097: 0x2461, - 7098: 0x2462, - 7099: 0x2463, - 7100: 0x2464, - 7101: 0x2465, - 7102: 0x2466, - 7103: 0x2467, - 7104: 0x2468, - 7105: 0x2469, - 7106: 0x246A, - 7107: 0x246B, - 7108: 0x246C, - 7109: 0x246D, - 7110: 0x246E, - 7111: 0x00BD, - 7112: 0x2153, - 7113: 0x2154, - 7114: 0x00BC, - 7115: 0x00BE, - 7116: 0x215B, - 7117: 0x215C, - 7118: 0x215D, - 7119: 0x215E, - 7120: 0xCBC5, - 7121: 0xCBC6, - 7122: 0xCBC7, - 7123: 0xCBC8, - 7124: 0xCBC9, - 7125: 0xCBCA, - 7126: 0xCBCB, - 7127: 0xCBCC, - 7128: 0xCBCD, - 7129: 0xCBCE, - 7130: 0xCBCF, - 7131: 0xCBD0, - 7132: 0xCBD1, - 7133: 0xCBD2, - 7134: 0xCBD3, - 7135: 0xCBD5, - 7136: 0xCBD6, - 7137: 0xCBD7, - 7138: 0xCBD8, - 7139: 0xCBD9, - 7140: 0xCBDA, - 7141: 0xCBDB, - 7142: 0xCBDC, - 7143: 0xCBDD, - 7144: 0xCBDE, - 7145: 0xCBDF, - 7146: 0xCBE0, - 7147: 0xCBE1, - 7148: 0xCBE2, - 7149: 0xCBE3, - 7150: 0xCBE5, - 7151: 0xCBE6, - 7152: 0xCBE8, - 7153: 0xCBEA, - 7154: 0xCBEB, - 7155: 0xCBEC, - 7156: 0xCBED, - 7157: 0xCBEE, - 7158: 0xCBEF, - 7159: 0xCBF0, - 7160: 0xCBF1, - 7161: 0xCBF2, - 7162: 0xCBF3, - 7163: 0xCBF4, - 7164: 0xCBF5, - 7165: 0xCBF6, - 7166: 0xCBF7, - 7167: 0xCBF8, - 7168: 0xCBF9, - 7169: 0xCBFA, - 7170: 0xCBFB, - 7171: 0xCBFC, - 7172: 0xCBFD, - 7173: 0xCBFE, - 7174: 0xCBFF, - 7175: 0xCC00, - 7176: 0xCC01, - 7177: 0xCC02, - 7178: 0xCC03, - 7179: 0xCC04, - 7180: 0xCC05, - 7181: 0xCC06, - 7182: 0xCC07, - 7183: 0xCC08, - 7184: 0xCC09, - 7185: 0xCC0A, - 7186: 0xCC0B, - 7187: 0xCC0E, - 7188: 0xCC0F, - 7189: 0xCC11, - 7190: 0xCC12, - 7191: 0xCC13, - 7192: 0xCC15, - 7193: 0xCC16, - 7194: 0xCC17, - 7195: 0xCC18, - 7196: 0xCC19, - 7197: 0xCC1A, - 7198: 0xCC1B, - 7199: 0xCC1E, - 7200: 0xCC1F, - 7201: 0xCC20, - 7202: 0xCC23, - 7203: 0xCC24, - 7204: 0x00E6, - 7205: 0x0111, - 7206: 0x00F0, - 7207: 0x0127, - 7208: 0x0131, - 7209: 0x0133, - 7210: 0x0138, - 7211: 0x0140, - 7212: 0x0142, - 7213: 0x00F8, - 7214: 0x0153, - 7215: 0x00DF, - 7216: 0x00FE, - 7217: 0x0167, - 7218: 0x014B, - 7219: 0x0149, - 7220: 0x3200, - 7221: 0x3201, - 7222: 0x3202, - 7223: 0x3203, - 7224: 0x3204, - 7225: 0x3205, - 7226: 0x3206, - 7227: 0x3207, - 7228: 0x3208, - 7229: 0x3209, - 7230: 0x320A, - 7231: 0x320B, - 7232: 0x320C, - 7233: 0x320D, - 7234: 0x320E, - 7235: 0x320F, - 7236: 0x3210, - 7237: 0x3211, - 7238: 0x3212, - 7239: 0x3213, - 7240: 0x3214, - 7241: 0x3215, - 7242: 0x3216, - 7243: 0x3217, - 7244: 0x3218, - 7245: 0x3219, - 7246: 0x321A, - 7247: 0x321B, - 7248: 0x249C, - 7249: 0x249D, - 7250: 0x249E, - 7251: 0x249F, - 7252: 0x24A0, - 7253: 0x24A1, - 7254: 0x24A2, - 7255: 0x24A3, - 7256: 0x24A4, - 7257: 0x24A5, - 7258: 0x24A6, - 7259: 0x24A7, - 7260: 0x24A8, - 7261: 0x24A9, - 7262: 0x24AA, - 7263: 0x24AB, - 7264: 0x24AC, - 7265: 0x24AD, - 7266: 0x24AE, - 7267: 0x24AF, - 7268: 0x24B0, - 7269: 0x24B1, - 7270: 0x24B2, - 7271: 0x24B3, - 7272: 0x24B4, - 7273: 0x24B5, - 7274: 0x2474, - 7275: 0x2475, - 7276: 0x2476, - 7277: 0x2477, - 7278: 0x2478, - 7279: 0x2479, - 7280: 0x247A, - 7281: 0x247B, - 7282: 0x247C, - 7283: 0x247D, - 7284: 0x247E, - 7285: 0x247F, - 7286: 0x2480, - 7287: 0x2481, - 7288: 0x2482, - 7289: 0x00B9, - 7290: 0x00B2, - 7291: 0x00B3, - 7292: 0x2074, - 7293: 0x207F, - 7294: 0x2081, - 7295: 0x2082, - 7296: 0x2083, - 7297: 0x2084, - 7298: 0xCC25, - 7299: 0xCC26, - 7300: 0xCC2A, - 7301: 0xCC2B, - 7302: 0xCC2D, - 7303: 0xCC2F, - 7304: 0xCC31, - 7305: 0xCC32, - 7306: 0xCC33, - 7307: 0xCC34, - 7308: 0xCC35, - 7309: 0xCC36, - 7310: 0xCC37, - 7311: 0xCC3A, - 7312: 0xCC3F, - 7313: 0xCC40, - 7314: 0xCC41, - 7315: 0xCC42, - 7316: 0xCC43, - 7317: 0xCC46, - 7318: 0xCC47, - 7319: 0xCC49, - 7320: 0xCC4A, - 7321: 0xCC4B, - 7322: 0xCC4D, - 7323: 0xCC4E, - 7324: 0xCC4F, - 7325: 0xCC50, - 7326: 0xCC51, - 7327: 0xCC52, - 7328: 0xCC53, - 7329: 0xCC56, - 7330: 0xCC5A, - 7331: 0xCC5B, - 7332: 0xCC5C, - 7333: 0xCC5D, - 7334: 0xCC5E, - 7335: 0xCC5F, - 7336: 0xCC61, - 7337: 0xCC62, - 7338: 0xCC63, - 7339: 0xCC65, - 7340: 0xCC67, - 7341: 0xCC69, - 7342: 0xCC6A, - 7343: 0xCC6B, - 7344: 0xCC6C, - 7345: 0xCC6D, - 7346: 0xCC6E, - 7347: 0xCC6F, - 7348: 0xCC71, - 7349: 0xCC72, - 7350: 0xCC73, - 7351: 0xCC74, - 7352: 0xCC76, - 7353: 0xCC77, - 7354: 0xCC78, - 7355: 0xCC79, - 7356: 0xCC7A, - 7357: 0xCC7B, - 7358: 0xCC7C, - 7359: 0xCC7D, - 7360: 0xCC7E, - 7361: 0xCC7F, - 7362: 0xCC80, - 7363: 0xCC81, - 7364: 0xCC82, - 7365: 0xCC83, - 7366: 0xCC84, - 7367: 0xCC85, - 7368: 0xCC86, - 7369: 0xCC87, - 7370: 0xCC88, - 7371: 0xCC89, - 7372: 0xCC8A, - 7373: 0xCC8B, - 7374: 0xCC8C, - 7375: 0xCC8D, - 7376: 0xCC8E, - 7377: 0xCC8F, - 7378: 0xCC90, - 7379: 0xCC91, - 7380: 0xCC92, - 7381: 0xCC93, - 7382: 0x3041, - 7383: 0x3042, - 7384: 0x3043, - 7385: 0x3044, - 7386: 0x3045, - 7387: 0x3046, - 7388: 0x3047, - 7389: 0x3048, - 7390: 0x3049, - 7391: 0x304A, - 7392: 0x304B, - 7393: 0x304C, - 7394: 0x304D, - 7395: 0x304E, - 7396: 0x304F, - 7397: 0x3050, - 7398: 0x3051, - 7399: 0x3052, - 7400: 0x3053, - 7401: 0x3054, - 7402: 0x3055, - 7403: 0x3056, - 7404: 0x3057, - 7405: 0x3058, - 7406: 0x3059, - 7407: 0x305A, - 7408: 0x305B, - 7409: 0x305C, - 7410: 0x305D, - 7411: 0x305E, - 7412: 0x305F, - 7413: 0x3060, - 7414: 0x3061, - 7415: 0x3062, - 7416: 0x3063, - 7417: 0x3064, - 7418: 0x3065, - 7419: 0x3066, - 7420: 0x3067, - 7421: 0x3068, - 7422: 0x3069, - 7423: 0x306A, - 7424: 0x306B, - 7425: 0x306C, - 7426: 0x306D, - 7427: 0x306E, - 7428: 0x306F, - 7429: 0x3070, - 7430: 0x3071, - 7431: 0x3072, - 7432: 0x3073, - 7433: 0x3074, - 7434: 0x3075, - 7435: 0x3076, - 7436: 0x3077, - 7437: 0x3078, - 7438: 0x3079, - 7439: 0x307A, - 7440: 0x307B, - 7441: 0x307C, - 7442: 0x307D, - 7443: 0x307E, - 7444: 0x307F, - 7445: 0x3080, - 7446: 0x3081, - 7447: 0x3082, - 7448: 0x3083, - 7449: 0x3084, - 7450: 0x3085, - 7451: 0x3086, - 7452: 0x3087, - 7453: 0x3088, - 7454: 0x3089, - 7455: 0x308A, - 7456: 0x308B, - 7457: 0x308C, - 7458: 0x308D, - 7459: 0x308E, - 7460: 0x308F, - 7461: 0x3090, - 7462: 0x3091, - 7463: 0x3092, - 7464: 0x3093, - 7476: 0xCC94, - 7477: 0xCC95, - 7478: 0xCC96, - 7479: 0xCC97, - 7480: 0xCC9A, - 7481: 0xCC9B, - 7482: 0xCC9D, - 7483: 0xCC9E, - 7484: 0xCC9F, - 7485: 0xCCA1, - 7486: 0xCCA2, - 7487: 0xCCA3, - 7488: 0xCCA4, - 7489: 0xCCA5, - 7490: 0xCCA6, - 7491: 0xCCA7, - 7492: 0xCCAA, - 7493: 0xCCAE, - 7494: 0xCCAF, - 7495: 0xCCB0, - 7496: 0xCCB1, - 7497: 0xCCB2, - 7498: 0xCCB3, - 7499: 0xCCB6, - 7500: 0xCCB7, - 7501: 0xCCB9, - 7502: 0xCCBA, - 7503: 0xCCBB, - 7504: 0xCCBD, - 7505: 0xCCBE, - 7506: 0xCCBF, - 7507: 0xCCC0, - 7508: 0xCCC1, - 7509: 0xCCC2, - 7510: 0xCCC3, - 7511: 0xCCC6, - 7512: 0xCCC8, - 7513: 0xCCCA, - 7514: 0xCCCB, - 7515: 0xCCCC, - 7516: 0xCCCD, - 7517: 0xCCCE, - 7518: 0xCCCF, - 7519: 0xCCD1, - 7520: 0xCCD2, - 7521: 0xCCD3, - 7522: 0xCCD5, - 7523: 0xCCD6, - 7524: 0xCCD7, - 7525: 0xCCD8, - 7526: 0xCCD9, - 7527: 0xCCDA, - 7528: 0xCCDB, - 7529: 0xCCDC, - 7530: 0xCCDD, - 7531: 0xCCDE, - 7532: 0xCCDF, - 7533: 0xCCE0, - 7534: 0xCCE1, - 7535: 0xCCE2, - 7536: 0xCCE3, - 7537: 0xCCE5, - 7538: 0xCCE6, - 7539: 0xCCE7, - 7540: 0xCCE8, - 7541: 0xCCE9, - 7542: 0xCCEA, - 7543: 0xCCEB, - 7544: 0xCCED, - 7545: 0xCCEE, - 7546: 0xCCEF, - 7547: 0xCCF1, - 7548: 0xCCF2, - 7549: 0xCCF3, - 7550: 0xCCF4, - 7551: 0xCCF5, - 7552: 0xCCF6, - 7553: 0xCCF7, - 7554: 0xCCF8, - 7555: 0xCCF9, - 7556: 0xCCFA, - 7557: 0xCCFB, - 7558: 0xCCFC, - 7559: 0xCCFD, - 7560: 0x30A1, - 7561: 0x30A2, - 7562: 0x30A3, - 7563: 0x30A4, - 7564: 0x30A5, - 7565: 0x30A6, - 7566: 0x30A7, - 7567: 0x30A8, - 7568: 0x30A9, - 7569: 0x30AA, - 7570: 0x30AB, - 7571: 0x30AC, - 7572: 0x30AD, - 7573: 0x30AE, - 7574: 0x30AF, - 7575: 0x30B0, - 7576: 0x30B1, - 7577: 0x30B2, - 7578: 0x30B3, - 7579: 0x30B4, - 7580: 0x30B5, - 7581: 0x30B6, - 7582: 0x30B7, - 7583: 0x30B8, - 7584: 0x30B9, - 7585: 0x30BA, - 7586: 0x30BB, - 7587: 0x30BC, - 7588: 0x30BD, - 7589: 0x30BE, - 7590: 0x30BF, - 7591: 0x30C0, - 7592: 0x30C1, - 7593: 0x30C2, - 7594: 0x30C3, - 7595: 0x30C4, - 7596: 0x30C5, - 7597: 0x30C6, - 7598: 0x30C7, - 7599: 0x30C8, - 7600: 0x30C9, - 7601: 0x30CA, - 7602: 0x30CB, - 7603: 0x30CC, - 7604: 0x30CD, - 7605: 0x30CE, - 7606: 0x30CF, - 7607: 0x30D0, - 7608: 0x30D1, - 7609: 0x30D2, - 7610: 0x30D3, - 7611: 0x30D4, - 7612: 0x30D5, - 7613: 0x30D6, - 7614: 0x30D7, - 7615: 0x30D8, - 7616: 0x30D9, - 7617: 0x30DA, - 7618: 0x30DB, - 7619: 0x30DC, - 7620: 0x30DD, - 7621: 0x30DE, - 7622: 0x30DF, - 7623: 0x30E0, - 7624: 0x30E1, - 7625: 0x30E2, - 7626: 0x30E3, - 7627: 0x30E4, - 7628: 0x30E5, - 7629: 0x30E6, - 7630: 0x30E7, - 7631: 0x30E8, - 7632: 0x30E9, - 7633: 0x30EA, - 7634: 0x30EB, - 7635: 0x30EC, - 7636: 0x30ED, - 7637: 0x30EE, - 7638: 0x30EF, - 7639: 0x30F0, - 7640: 0x30F1, - 7641: 0x30F2, - 7642: 0x30F3, - 7643: 0x30F4, - 7644: 0x30F5, - 7645: 0x30F6, - 7654: 0xCCFE, - 7655: 0xCCFF, - 7656: 0xCD00, - 7657: 0xCD02, - 7658: 0xCD03, - 7659: 0xCD04, - 7660: 0xCD05, - 7661: 0xCD06, - 7662: 0xCD07, - 7663: 0xCD0A, - 7664: 0xCD0B, - 7665: 0xCD0D, - 7666: 0xCD0E, - 7667: 0xCD0F, - 7668: 0xCD11, - 7669: 0xCD12, - 7670: 0xCD13, - 7671: 0xCD14, - 7672: 0xCD15, - 7673: 0xCD16, - 7674: 0xCD17, - 7675: 0xCD1A, - 7676: 0xCD1C, - 7677: 0xCD1E, - 7678: 0xCD1F, - 7679: 0xCD20, - 7680: 0xCD21, - 7681: 0xCD22, - 7682: 0xCD23, - 7683: 0xCD25, - 7684: 0xCD26, - 7685: 0xCD27, - 7686: 0xCD29, - 7687: 0xCD2A, - 7688: 0xCD2B, - 7689: 0xCD2D, - 7690: 0xCD2E, - 7691: 0xCD2F, - 7692: 0xCD30, - 7693: 0xCD31, - 7694: 0xCD32, - 7695: 0xCD33, - 7696: 0xCD34, - 7697: 0xCD35, - 7698: 0xCD36, - 7699: 0xCD37, - 7700: 0xCD38, - 7701: 0xCD3A, - 7702: 0xCD3B, - 7703: 0xCD3C, - 7704: 0xCD3D, - 7705: 0xCD3E, - 7706: 0xCD3F, - 7707: 0xCD40, - 7708: 0xCD41, - 7709: 0xCD42, - 7710: 0xCD43, - 7711: 0xCD44, - 7712: 0xCD45, - 7713: 0xCD46, - 7714: 0xCD47, - 7715: 0xCD48, - 7716: 0xCD49, - 7717: 0xCD4A, - 7718: 0xCD4B, - 7719: 0xCD4C, - 7720: 0xCD4D, - 7721: 0xCD4E, - 7722: 0xCD4F, - 7723: 0xCD50, - 7724: 0xCD51, - 7725: 0xCD52, - 7726: 0xCD53, - 7727: 0xCD54, - 7728: 0xCD55, - 7729: 0xCD56, - 7730: 0xCD57, - 7731: 0xCD58, - 7732: 0xCD59, - 7733: 0xCD5A, - 7734: 0xCD5B, - 7735: 0xCD5D, - 7736: 0xCD5E, - 7737: 0xCD5F, - 7738: 0x0410, - 7739: 0x0411, - 7740: 0x0412, - 7741: 0x0413, - 7742: 0x0414, - 7743: 0x0415, - 7744: 0x0401, - 7745: 0x0416, - 7746: 0x0417, - 7747: 0x0418, - 7748: 0x0419, - 7749: 0x041A, - 7750: 0x041B, - 7751: 0x041C, - 7752: 0x041D, - 7753: 0x041E, - 7754: 0x041F, - 7755: 0x0420, - 7756: 0x0421, - 7757: 0x0422, - 7758: 0x0423, - 7759: 0x0424, - 7760: 0x0425, - 7761: 0x0426, - 7762: 0x0427, - 7763: 0x0428, - 7764: 0x0429, - 7765: 0x042A, - 7766: 0x042B, - 7767: 0x042C, - 7768: 0x042D, - 7769: 0x042E, - 7770: 0x042F, - 7786: 0x0430, - 7787: 0x0431, - 7788: 0x0432, - 7789: 0x0433, - 7790: 0x0434, - 7791: 0x0435, - 7792: 0x0451, - 7793: 0x0436, - 7794: 0x0437, - 7795: 0x0438, - 7796: 0x0439, - 7797: 0x043A, - 7798: 0x043B, - 7799: 0x043C, - 7800: 0x043D, - 7801: 0x043E, - 7802: 0x043F, - 7803: 0x0440, - 7804: 0x0441, - 7805: 0x0442, - 7806: 0x0443, - 7807: 0x0444, - 7808: 0x0445, - 7809: 0x0446, - 7810: 0x0447, - 7811: 0x0448, - 7812: 0x0449, - 7813: 0x044A, - 7814: 0x044B, - 7815: 0x044C, - 7816: 0x044D, - 7817: 0x044E, - 7818: 0x044F, - 7832: 0xCD61, - 7833: 0xCD62, - 7834: 0xCD63, - 7835: 0xCD65, - 7836: 0xCD66, - 7837: 0xCD67, - 7838: 0xCD68, - 7839: 0xCD69, - 7840: 0xCD6A, - 7841: 0xCD6B, - 7842: 0xCD6E, - 7843: 0xCD70, - 7844: 0xCD72, - 7845: 0xCD73, - 7846: 0xCD74, - 7847: 0xCD75, - 7848: 0xCD76, - 7849: 0xCD77, - 7850: 0xCD79, - 7851: 0xCD7A, - 7852: 0xCD7B, - 7853: 0xCD7C, - 7854: 0xCD7D, - 7855: 0xCD7E, - 7856: 0xCD7F, - 7857: 0xCD80, - 7858: 0xCD81, - 7859: 0xCD82, - 7860: 0xCD83, - 7861: 0xCD84, - 7862: 0xCD85, - 7863: 0xCD86, - 7864: 0xCD87, - 7865: 0xCD89, - 7866: 0xCD8A, - 7867: 0xCD8B, - 7868: 0xCD8C, - 7869: 0xCD8D, - 7870: 0xCD8E, - 7871: 0xCD8F, - 7872: 0xCD90, - 7873: 0xCD91, - 7874: 0xCD92, - 7875: 0xCD93, - 7876: 0xCD96, - 7877: 0xCD97, - 7878: 0xCD99, - 7879: 0xCD9A, - 7880: 0xCD9B, - 7881: 0xCD9D, - 7882: 0xCD9E, - 7883: 0xCD9F, - 7884: 0xCDA0, - 7885: 0xCDA1, - 7886: 0xCDA2, - 7887: 0xCDA3, - 7888: 0xCDA6, - 7889: 0xCDA8, - 7890: 0xCDAA, - 7891: 0xCDAB, - 7892: 0xCDAC, - 7893: 0xCDAD, - 7894: 0xCDAE, - 7895: 0xCDAF, - 7896: 0xCDB1, - 7897: 0xCDB2, - 7898: 0xCDB3, - 7899: 0xCDB4, - 7900: 0xCDB5, - 7901: 0xCDB6, - 7902: 0xCDB7, - 7903: 0xCDB8, - 7904: 0xCDB9, - 7905: 0xCDBA, - 7906: 0xCDBB, - 7907: 0xCDBC, - 7908: 0xCDBD, - 7909: 0xCDBE, - 7910: 0xCDBF, - 7911: 0xCDC0, - 7912: 0xCDC1, - 7913: 0xCDC2, - 7914: 0xCDC3, - 7915: 0xCDC5, - 8010: 0xCDC6, - 8011: 0xCDC7, - 8012: 0xCDC8, - 8013: 0xCDC9, - 8014: 0xCDCA, - 8015: 0xCDCB, - 8016: 0xCDCD, - 8017: 0xCDCE, - 8018: 0xCDCF, - 8019: 0xCDD1, - 8020: 0xCDD2, - 8021: 0xCDD3, - 8022: 0xCDD4, - 8023: 0xCDD5, - 8024: 0xCDD6, - 8025: 0xCDD7, - 8026: 0xCDD8, - 8027: 0xCDD9, - 8028: 0xCDDA, - 8029: 0xCDDB, - 8030: 0xCDDC, - 8031: 0xCDDD, - 8032: 0xCDDE, - 8033: 0xCDDF, - 8034: 0xCDE0, - 8035: 0xCDE1, - 8036: 0xCDE2, - 8037: 0xCDE3, - 8038: 0xCDE4, - 8039: 0xCDE5, - 8040: 0xCDE6, - 8041: 0xCDE7, - 8042: 0xCDE9, - 8043: 0xCDEA, - 8044: 0xCDEB, - 8045: 0xCDED, - 8046: 0xCDEE, - 8047: 0xCDEF, - 8048: 0xCDF1, - 8049: 0xCDF2, - 8050: 0xCDF3, - 8051: 0xCDF4, - 8052: 0xCDF5, - 8053: 0xCDF6, - 8054: 0xCDF7, - 8055: 0xCDFA, - 8056: 0xCDFC, - 8057: 0xCDFE, - 8058: 0xCDFF, - 8059: 0xCE00, - 8060: 0xCE01, - 8061: 0xCE02, - 8062: 0xCE03, - 8063: 0xCE05, - 8064: 0xCE06, - 8065: 0xCE07, - 8066: 0xCE09, - 8067: 0xCE0A, - 8068: 0xCE0B, - 8069: 0xCE0D, - 8070: 0xCE0E, - 8071: 0xCE0F, - 8072: 0xCE10, - 8073: 0xCE11, - 8074: 0xCE12, - 8075: 0xCE13, - 8076: 0xCE15, - 8077: 0xCE16, - 8078: 0xCE17, - 8079: 0xCE18, - 8080: 0xCE1A, - 8081: 0xCE1B, - 8082: 0xCE1C, - 8083: 0xCE1D, - 8084: 0xCE1E, - 8085: 0xCE1F, - 8086: 0xCE22, - 8087: 0xCE23, - 8088: 0xCE25, - 8089: 0xCE26, - 8090: 0xCE27, - 8091: 0xCE29, - 8092: 0xCE2A, - 8093: 0xCE2B, - 8188: 0xCE2C, - 8189: 0xCE2D, - 8190: 0xCE2E, - 8191: 0xCE2F, - 8192: 0xCE32, - 8193: 0xCE34, - 8194: 0xCE36, - 8195: 0xCE37, - 8196: 0xCE38, - 8197: 0xCE39, - 8198: 0xCE3A, - 8199: 0xCE3B, - 8200: 0xCE3C, - 8201: 0xCE3D, - 8202: 0xCE3E, - 8203: 0xCE3F, - 8204: 0xCE40, - 8205: 0xCE41, - 8206: 0xCE42, - 8207: 0xCE43, - 8208: 0xCE44, - 8209: 0xCE45, - 8210: 0xCE46, - 8211: 0xCE47, - 8212: 0xCE48, - 8213: 0xCE49, - 8214: 0xCE4A, - 8215: 0xCE4B, - 8216: 0xCE4C, - 8217: 0xCE4D, - 8218: 0xCE4E, - 8219: 0xCE4F, - 8220: 0xCE50, - 8221: 0xCE51, - 8222: 0xCE52, - 8223: 0xCE53, - 8224: 0xCE54, - 8225: 0xCE55, - 8226: 0xCE56, - 8227: 0xCE57, - 8228: 0xCE5A, - 8229: 0xCE5B, - 8230: 0xCE5D, - 8231: 0xCE5E, - 8232: 0xCE62, - 8233: 0xCE63, - 8234: 0xCE64, - 8235: 0xCE65, - 8236: 0xCE66, - 8237: 0xCE67, - 8238: 0xCE6A, - 8239: 0xCE6C, - 8240: 0xCE6E, - 8241: 0xCE6F, - 8242: 0xCE70, - 8243: 0xCE71, - 8244: 0xCE72, - 8245: 0xCE73, - 8246: 0xCE76, - 8247: 0xCE77, - 8248: 0xCE79, - 8249: 0xCE7A, - 8250: 0xCE7B, - 8251: 0xCE7D, - 8252: 0xCE7E, - 8253: 0xCE7F, - 8254: 0xCE80, - 8255: 0xCE81, - 8256: 0xCE82, - 8257: 0xCE83, - 8258: 0xCE86, - 8259: 0xCE88, - 8260: 0xCE8A, - 8261: 0xCE8B, - 8262: 0xCE8C, - 8263: 0xCE8D, - 8264: 0xCE8E, - 8265: 0xCE8F, - 8266: 0xCE92, - 8267: 0xCE93, - 8268: 0xCE95, - 8269: 0xCE96, - 8270: 0xCE97, - 8271: 0xCE99, - 8366: 0xCE9A, - 8367: 0xCE9B, - 8368: 0xCE9C, - 8369: 0xCE9D, - 8370: 0xCE9E, - 8371: 0xCE9F, - 8372: 0xCEA2, - 8373: 0xCEA6, - 8374: 0xCEA7, - 8375: 0xCEA8, - 8376: 0xCEA9, - 8377: 0xCEAA, - 8378: 0xCEAB, - 8379: 0xCEAE, - 8380: 0xCEAF, - 8381: 0xCEB0, - 8382: 0xCEB1, - 8383: 0xCEB2, - 8384: 0xCEB3, - 8385: 0xCEB4, - 8386: 0xCEB5, - 8387: 0xCEB6, - 8388: 0xCEB7, - 8389: 0xCEB8, - 8390: 0xCEB9, - 8391: 0xCEBA, - 8392: 0xCEBB, - 8393: 0xCEBC, - 8394: 0xCEBD, - 8395: 0xCEBE, - 8396: 0xCEBF, - 8397: 0xCEC0, - 8398: 0xCEC2, - 8399: 0xCEC3, - 8400: 0xCEC4, - 8401: 0xCEC5, - 8402: 0xCEC6, - 8403: 0xCEC7, - 8404: 0xCEC8, - 8405: 0xCEC9, - 8406: 0xCECA, - 8407: 0xCECB, - 8408: 0xCECC, - 8409: 0xCECD, - 8410: 0xCECE, - 8411: 0xCECF, - 8412: 0xCED0, - 8413: 0xCED1, - 8414: 0xCED2, - 8415: 0xCED3, - 8416: 0xCED4, - 8417: 0xCED5, - 8418: 0xCED6, - 8419: 0xCED7, - 8420: 0xCED8, - 8421: 0xCED9, - 8422: 0xCEDA, - 8423: 0xCEDB, - 8424: 0xCEDC, - 8425: 0xCEDD, - 8426: 0xCEDE, - 8427: 0xCEDF, - 8428: 0xCEE0, - 8429: 0xCEE1, - 8430: 0xCEE2, - 8431: 0xCEE3, - 8432: 0xCEE6, - 8433: 0xCEE7, - 8434: 0xCEE9, - 8435: 0xCEEA, - 8436: 0xCEED, - 8437: 0xCEEE, - 8438: 0xCEEF, - 8439: 0xCEF0, - 8440: 0xCEF1, - 8441: 0xCEF2, - 8442: 0xCEF3, - 8443: 0xCEF6, - 8444: 0xCEFA, - 8445: 0xCEFB, - 8446: 0xCEFC, - 8447: 0xCEFD, - 8448: 0xCEFE, - 8449: 0xCEFF, - 8450: 0xAC00, - 8451: 0xAC01, - 8452: 0xAC04, - 8453: 0xAC07, - 8454: 0xAC08, - 8455: 0xAC09, - 8456: 0xAC0A, - 8457: 0xAC10, - 8458: 0xAC11, - 8459: 0xAC12, - 8460: 0xAC13, - 8461: 0xAC14, - 8462: 0xAC15, - 8463: 0xAC16, - 8464: 0xAC17, - 8465: 0xAC19, - 8466: 0xAC1A, - 8467: 0xAC1B, - 8468: 0xAC1C, - 8469: 0xAC1D, - 8470: 0xAC20, - 8471: 0xAC24, - 8472: 0xAC2C, - 8473: 0xAC2D, - 8474: 0xAC2F, - 8475: 0xAC30, - 8476: 0xAC31, - 8477: 0xAC38, - 8478: 0xAC39, - 8479: 0xAC3C, - 8480: 0xAC40, - 8481: 0xAC4B, - 8482: 0xAC4D, - 8483: 0xAC54, - 8484: 0xAC58, - 8485: 0xAC5C, - 8486: 0xAC70, - 8487: 0xAC71, - 8488: 0xAC74, - 8489: 0xAC77, - 8490: 0xAC78, - 8491: 0xAC7A, - 8492: 0xAC80, - 8493: 0xAC81, - 8494: 0xAC83, - 8495: 0xAC84, - 8496: 0xAC85, - 8497: 0xAC86, - 8498: 0xAC89, - 8499: 0xAC8A, - 8500: 0xAC8B, - 8501: 0xAC8C, - 8502: 0xAC90, - 8503: 0xAC94, - 8504: 0xAC9C, - 8505: 0xAC9D, - 8506: 0xAC9F, - 8507: 0xACA0, - 8508: 0xACA1, - 8509: 0xACA8, - 8510: 0xACA9, - 8511: 0xACAA, - 8512: 0xACAC, - 8513: 0xACAF, - 8514: 0xACB0, - 8515: 0xACB8, - 8516: 0xACB9, - 8517: 0xACBB, - 8518: 0xACBC, - 8519: 0xACBD, - 8520: 0xACC1, - 8521: 0xACC4, - 8522: 0xACC8, - 8523: 0xACCC, - 8524: 0xACD5, - 8525: 0xACD7, - 8526: 0xACE0, - 8527: 0xACE1, - 8528: 0xACE4, - 8529: 0xACE7, - 8530: 0xACE8, - 8531: 0xACEA, - 8532: 0xACEC, - 8533: 0xACEF, - 8534: 0xACF0, - 8535: 0xACF1, - 8536: 0xACF3, - 8537: 0xACF5, - 8538: 0xACF6, - 8539: 0xACFC, - 8540: 0xACFD, - 8541: 0xAD00, - 8542: 0xAD04, - 8543: 0xAD06, - 8544: 0xCF02, - 8545: 0xCF03, - 8546: 0xCF05, - 8547: 0xCF06, - 8548: 0xCF07, - 8549: 0xCF09, - 8550: 0xCF0A, - 8551: 0xCF0B, - 8552: 0xCF0C, - 8553: 0xCF0D, - 8554: 0xCF0E, - 8555: 0xCF0F, - 8556: 0xCF12, - 8557: 0xCF14, - 8558: 0xCF16, - 8559: 0xCF17, - 8560: 0xCF18, - 8561: 0xCF19, - 8562: 0xCF1A, - 8563: 0xCF1B, - 8564: 0xCF1D, - 8565: 0xCF1E, - 8566: 0xCF1F, - 8567: 0xCF21, - 8568: 0xCF22, - 8569: 0xCF23, - 8570: 0xCF25, - 8571: 0xCF26, - 8572: 0xCF27, - 8573: 0xCF28, - 8574: 0xCF29, - 8575: 0xCF2A, - 8576: 0xCF2B, - 8577: 0xCF2E, - 8578: 0xCF32, - 8579: 0xCF33, - 8580: 0xCF34, - 8581: 0xCF35, - 8582: 0xCF36, - 8583: 0xCF37, - 8584: 0xCF39, - 8585: 0xCF3A, - 8586: 0xCF3B, - 8587: 0xCF3C, - 8588: 0xCF3D, - 8589: 0xCF3E, - 8590: 0xCF3F, - 8591: 0xCF40, - 8592: 0xCF41, - 8593: 0xCF42, - 8594: 0xCF43, - 8595: 0xCF44, - 8596: 0xCF45, - 8597: 0xCF46, - 8598: 0xCF47, - 8599: 0xCF48, - 8600: 0xCF49, - 8601: 0xCF4A, - 8602: 0xCF4B, - 8603: 0xCF4C, - 8604: 0xCF4D, - 8605: 0xCF4E, - 8606: 0xCF4F, - 8607: 0xCF50, - 8608: 0xCF51, - 8609: 0xCF52, - 8610: 0xCF53, - 8611: 0xCF56, - 8612: 0xCF57, - 8613: 0xCF59, - 8614: 0xCF5A, - 8615: 0xCF5B, - 8616: 0xCF5D, - 8617: 0xCF5E, - 8618: 0xCF5F, - 8619: 0xCF60, - 8620: 0xCF61, - 8621: 0xCF62, - 8622: 0xCF63, - 8623: 0xCF66, - 8624: 0xCF68, - 8625: 0xCF6A, - 8626: 0xCF6B, - 8627: 0xCF6C, - 8628: 0xAD0C, - 8629: 0xAD0D, - 8630: 0xAD0F, - 8631: 0xAD11, - 8632: 0xAD18, - 8633: 0xAD1C, - 8634: 0xAD20, - 8635: 0xAD29, - 8636: 0xAD2C, - 8637: 0xAD2D, - 8638: 0xAD34, - 8639: 0xAD35, - 8640: 0xAD38, - 8641: 0xAD3C, - 8642: 0xAD44, - 8643: 0xAD45, - 8644: 0xAD47, - 8645: 0xAD49, - 8646: 0xAD50, - 8647: 0xAD54, - 8648: 0xAD58, - 8649: 0xAD61, - 8650: 0xAD63, - 8651: 0xAD6C, - 8652: 0xAD6D, - 8653: 0xAD70, - 8654: 0xAD73, - 8655: 0xAD74, - 8656: 0xAD75, - 8657: 0xAD76, - 8658: 0xAD7B, - 8659: 0xAD7C, - 8660: 0xAD7D, - 8661: 0xAD7F, - 8662: 0xAD81, - 8663: 0xAD82, - 8664: 0xAD88, - 8665: 0xAD89, - 8666: 0xAD8C, - 8667: 0xAD90, - 8668: 0xAD9C, - 8669: 0xAD9D, - 8670: 0xADA4, - 8671: 0xADB7, - 8672: 0xADC0, - 8673: 0xADC1, - 8674: 0xADC4, - 8675: 0xADC8, - 8676: 0xADD0, - 8677: 0xADD1, - 8678: 0xADD3, - 8679: 0xADDC, - 8680: 0xADE0, - 8681: 0xADE4, - 8682: 0xADF8, - 8683: 0xADF9, - 8684: 0xADFC, - 8685: 0xADFF, - 8686: 0xAE00, - 8687: 0xAE01, - 8688: 0xAE08, - 8689: 0xAE09, - 8690: 0xAE0B, - 8691: 0xAE0D, - 8692: 0xAE14, - 8693: 0xAE30, - 8694: 0xAE31, - 8695: 0xAE34, - 8696: 0xAE37, - 8697: 0xAE38, - 8698: 0xAE3A, - 8699: 0xAE40, - 8700: 0xAE41, - 8701: 0xAE43, - 8702: 0xAE45, - 8703: 0xAE46, - 8704: 0xAE4A, - 8705: 0xAE4C, - 8706: 0xAE4D, - 8707: 0xAE4E, - 8708: 0xAE50, - 8709: 0xAE54, - 8710: 0xAE56, - 8711: 0xAE5C, - 8712: 0xAE5D, - 8713: 0xAE5F, - 8714: 0xAE60, - 8715: 0xAE61, - 8716: 0xAE65, - 8717: 0xAE68, - 8718: 0xAE69, - 8719: 0xAE6C, - 8720: 0xAE70, - 8721: 0xAE78, - 8722: 0xCF6D, - 8723: 0xCF6E, - 8724: 0xCF6F, - 8725: 0xCF72, - 8726: 0xCF73, - 8727: 0xCF75, - 8728: 0xCF76, - 8729: 0xCF77, - 8730: 0xCF79, - 8731: 0xCF7A, - 8732: 0xCF7B, - 8733: 0xCF7C, - 8734: 0xCF7D, - 8735: 0xCF7E, - 8736: 0xCF7F, - 8737: 0xCF81, - 8738: 0xCF82, - 8739: 0xCF83, - 8740: 0xCF84, - 8741: 0xCF86, - 8742: 0xCF87, - 8743: 0xCF88, - 8744: 0xCF89, - 8745: 0xCF8A, - 8746: 0xCF8B, - 8747: 0xCF8D, - 8748: 0xCF8E, - 8749: 0xCF8F, - 8750: 0xCF90, - 8751: 0xCF91, - 8752: 0xCF92, - 8753: 0xCF93, - 8754: 0xCF94, - 8755: 0xCF95, - 8756: 0xCF96, - 8757: 0xCF97, - 8758: 0xCF98, - 8759: 0xCF99, - 8760: 0xCF9A, - 8761: 0xCF9B, - 8762: 0xCF9C, - 8763: 0xCF9D, - 8764: 0xCF9E, - 8765: 0xCF9F, - 8766: 0xCFA0, - 8767: 0xCFA2, - 8768: 0xCFA3, - 8769: 0xCFA4, - 8770: 0xCFA5, - 8771: 0xCFA6, - 8772: 0xCFA7, - 8773: 0xCFA9, - 8774: 0xCFAA, - 8775: 0xCFAB, - 8776: 0xCFAC, - 8777: 0xCFAD, - 8778: 0xCFAE, - 8779: 0xCFAF, - 8780: 0xCFB1, - 8781: 0xCFB2, - 8782: 0xCFB3, - 8783: 0xCFB4, - 8784: 0xCFB5, - 8785: 0xCFB6, - 8786: 0xCFB7, - 8787: 0xCFB8, - 8788: 0xCFB9, - 8789: 0xCFBA, - 8790: 0xCFBB, - 8791: 0xCFBC, - 8792: 0xCFBD, - 8793: 0xCFBE, - 8794: 0xCFBF, - 8795: 0xCFC0, - 8796: 0xCFC1, - 8797: 0xCFC2, - 8798: 0xCFC3, - 8799: 0xCFC5, - 8800: 0xCFC6, - 8801: 0xCFC7, - 8802: 0xCFC8, - 8803: 0xCFC9, - 8804: 0xCFCA, - 8805: 0xCFCB, - 8806: 0xAE79, - 8807: 0xAE7B, - 8808: 0xAE7C, - 8809: 0xAE7D, - 8810: 0xAE84, - 8811: 0xAE85, - 8812: 0xAE8C, - 8813: 0xAEBC, - 8814: 0xAEBD, - 8815: 0xAEBE, - 8816: 0xAEC0, - 8817: 0xAEC4, - 8818: 0xAECC, - 8819: 0xAECD, - 8820: 0xAECF, - 8821: 0xAED0, - 8822: 0xAED1, - 8823: 0xAED8, - 8824: 0xAED9, - 8825: 0xAEDC, - 8826: 0xAEE8, - 8827: 0xAEEB, - 8828: 0xAEED, - 8829: 0xAEF4, - 8830: 0xAEF8, - 8831: 0xAEFC, - 8832: 0xAF07, - 8833: 0xAF08, - 8834: 0xAF0D, - 8835: 0xAF10, - 8836: 0xAF2C, - 8837: 0xAF2D, - 8838: 0xAF30, - 8839: 0xAF32, - 8840: 0xAF34, - 8841: 0xAF3C, - 8842: 0xAF3D, - 8843: 0xAF3F, - 8844: 0xAF41, - 8845: 0xAF42, - 8846: 0xAF43, - 8847: 0xAF48, - 8848: 0xAF49, - 8849: 0xAF50, - 8850: 0xAF5C, - 8851: 0xAF5D, - 8852: 0xAF64, - 8853: 0xAF65, - 8854: 0xAF79, - 8855: 0xAF80, - 8856: 0xAF84, - 8857: 0xAF88, - 8858: 0xAF90, - 8859: 0xAF91, - 8860: 0xAF95, - 8861: 0xAF9C, - 8862: 0xAFB8, - 8863: 0xAFB9, - 8864: 0xAFBC, - 8865: 0xAFC0, - 8866: 0xAFC7, - 8867: 0xAFC8, - 8868: 0xAFC9, - 8869: 0xAFCB, - 8870: 0xAFCD, - 8871: 0xAFCE, - 8872: 0xAFD4, - 8873: 0xAFDC, - 8874: 0xAFE8, - 8875: 0xAFE9, - 8876: 0xAFF0, - 8877: 0xAFF1, - 8878: 0xAFF4, - 8879: 0xAFF8, - 8880: 0xB000, - 8881: 0xB001, - 8882: 0xB004, - 8883: 0xB00C, - 8884: 0xB010, - 8885: 0xB014, - 8886: 0xB01C, - 8887: 0xB01D, - 8888: 0xB028, - 8889: 0xB044, - 8890: 0xB045, - 8891: 0xB048, - 8892: 0xB04A, - 8893: 0xB04C, - 8894: 0xB04E, - 8895: 0xB053, - 8896: 0xB054, - 8897: 0xB055, - 8898: 0xB057, - 8899: 0xB059, - 8900: 0xCFCC, - 8901: 0xCFCD, - 8902: 0xCFCE, - 8903: 0xCFCF, - 8904: 0xCFD0, - 8905: 0xCFD1, - 8906: 0xCFD2, - 8907: 0xCFD3, - 8908: 0xCFD4, - 8909: 0xCFD5, - 8910: 0xCFD6, - 8911: 0xCFD7, - 8912: 0xCFD8, - 8913: 0xCFD9, - 8914: 0xCFDA, - 8915: 0xCFDB, - 8916: 0xCFDC, - 8917: 0xCFDD, - 8918: 0xCFDE, - 8919: 0xCFDF, - 8920: 0xCFE2, - 8921: 0xCFE3, - 8922: 0xCFE5, - 8923: 0xCFE6, - 8924: 0xCFE7, - 8925: 0xCFE9, - 8926: 0xCFEA, - 8927: 0xCFEB, - 8928: 0xCFEC, - 8929: 0xCFED, - 8930: 0xCFEE, - 8931: 0xCFEF, - 8932: 0xCFF2, - 8933: 0xCFF4, - 8934: 0xCFF6, - 8935: 0xCFF7, - 8936: 0xCFF8, - 8937: 0xCFF9, - 8938: 0xCFFA, - 8939: 0xCFFB, - 8940: 0xCFFD, - 8941: 0xCFFE, - 8942: 0xCFFF, - 8943: 0xD001, - 8944: 0xD002, - 8945: 0xD003, - 8946: 0xD005, - 8947: 0xD006, - 8948: 0xD007, - 8949: 0xD008, - 8950: 0xD009, - 8951: 0xD00A, - 8952: 0xD00B, - 8953: 0xD00C, - 8954: 0xD00D, - 8955: 0xD00E, - 8956: 0xD00F, - 8957: 0xD010, - 8958: 0xD012, - 8959: 0xD013, - 8960: 0xD014, - 8961: 0xD015, - 8962: 0xD016, - 8963: 0xD017, - 8964: 0xD019, - 8965: 0xD01A, - 8966: 0xD01B, - 8967: 0xD01C, - 8968: 0xD01D, - 8969: 0xD01E, - 8970: 0xD01F, - 8971: 0xD020, - 8972: 0xD021, - 8973: 0xD022, - 8974: 0xD023, - 8975: 0xD024, - 8976: 0xD025, - 8977: 0xD026, - 8978: 0xD027, - 8979: 0xD028, - 8980: 0xD029, - 8981: 0xD02A, - 8982: 0xD02B, - 8983: 0xD02C, - 8984: 0xB05D, - 8985: 0xB07C, - 8986: 0xB07D, - 8987: 0xB080, - 8988: 0xB084, - 8989: 0xB08C, - 8990: 0xB08D, - 8991: 0xB08F, - 8992: 0xB091, - 8993: 0xB098, - 8994: 0xB099, - 8995: 0xB09A, - 8996: 0xB09C, - 8997: 0xB09F, - 8998: 0xB0A0, - 8999: 0xB0A1, - 9000: 0xB0A2, - 9001: 0xB0A8, - 9002: 0xB0A9, - 9003: 0xB0AB, - 9004: 0xB0AC, - 9005: 0xB0AD, - 9006: 0xB0AE, - 9007: 0xB0AF, - 9008: 0xB0B1, - 9009: 0xB0B3, - 9010: 0xB0B4, - 9011: 0xB0B5, - 9012: 0xB0B8, - 9013: 0xB0BC, - 9014: 0xB0C4, - 9015: 0xB0C5, - 9016: 0xB0C7, - 9017: 0xB0C8, - 9018: 0xB0C9, - 9019: 0xB0D0, - 9020: 0xB0D1, - 9021: 0xB0D4, - 9022: 0xB0D8, - 9023: 0xB0E0, - 9024: 0xB0E5, - 9025: 0xB108, - 9026: 0xB109, - 9027: 0xB10B, - 9028: 0xB10C, - 9029: 0xB110, - 9030: 0xB112, - 9031: 0xB113, - 9032: 0xB118, - 9033: 0xB119, - 9034: 0xB11B, - 9035: 0xB11C, - 9036: 0xB11D, - 9037: 0xB123, - 9038: 0xB124, - 9039: 0xB125, - 9040: 0xB128, - 9041: 0xB12C, - 9042: 0xB134, - 9043: 0xB135, - 9044: 0xB137, - 9045: 0xB138, - 9046: 0xB139, - 9047: 0xB140, - 9048: 0xB141, - 9049: 0xB144, - 9050: 0xB148, - 9051: 0xB150, - 9052: 0xB151, - 9053: 0xB154, - 9054: 0xB155, - 9055: 0xB158, - 9056: 0xB15C, - 9057: 0xB160, - 9058: 0xB178, - 9059: 0xB179, - 9060: 0xB17C, - 9061: 0xB180, - 9062: 0xB182, - 9063: 0xB188, - 9064: 0xB189, - 9065: 0xB18B, - 9066: 0xB18D, - 9067: 0xB192, - 9068: 0xB193, - 9069: 0xB194, - 9070: 0xB198, - 9071: 0xB19C, - 9072: 0xB1A8, - 9073: 0xB1CC, - 9074: 0xB1D0, - 9075: 0xB1D4, - 9076: 0xB1DC, - 9077: 0xB1DD, - 9078: 0xD02E, - 9079: 0xD02F, - 9080: 0xD030, - 9081: 0xD031, - 9082: 0xD032, - 9083: 0xD033, - 9084: 0xD036, - 9085: 0xD037, - 9086: 0xD039, - 9087: 0xD03A, - 9088: 0xD03B, - 9089: 0xD03D, - 9090: 0xD03E, - 9091: 0xD03F, - 9092: 0xD040, - 9093: 0xD041, - 9094: 0xD042, - 9095: 0xD043, - 9096: 0xD046, - 9097: 0xD048, - 9098: 0xD04A, - 9099: 0xD04B, - 9100: 0xD04C, - 9101: 0xD04D, - 9102: 0xD04E, - 9103: 0xD04F, - 9104: 0xD051, - 9105: 0xD052, - 9106: 0xD053, - 9107: 0xD055, - 9108: 0xD056, - 9109: 0xD057, - 9110: 0xD059, - 9111: 0xD05A, - 9112: 0xD05B, - 9113: 0xD05C, - 9114: 0xD05D, - 9115: 0xD05E, - 9116: 0xD05F, - 9117: 0xD061, - 9118: 0xD062, - 9119: 0xD063, - 9120: 0xD064, - 9121: 0xD065, - 9122: 0xD066, - 9123: 0xD067, - 9124: 0xD068, - 9125: 0xD069, - 9126: 0xD06A, - 9127: 0xD06B, - 9128: 0xD06E, - 9129: 0xD06F, - 9130: 0xD071, - 9131: 0xD072, - 9132: 0xD073, - 9133: 0xD075, - 9134: 0xD076, - 9135: 0xD077, - 9136: 0xD078, - 9137: 0xD079, - 9138: 0xD07A, - 9139: 0xD07B, - 9140: 0xD07E, - 9141: 0xD07F, - 9142: 0xD080, - 9143: 0xD082, - 9144: 0xD083, - 9145: 0xD084, - 9146: 0xD085, - 9147: 0xD086, - 9148: 0xD087, - 9149: 0xD088, - 9150: 0xD089, - 9151: 0xD08A, - 9152: 0xD08B, - 9153: 0xD08C, - 9154: 0xD08D, - 9155: 0xD08E, - 9156: 0xD08F, - 9157: 0xD090, - 9158: 0xD091, - 9159: 0xD092, - 9160: 0xD093, - 9161: 0xD094, - 9162: 0xB1DF, - 9163: 0xB1E8, - 9164: 0xB1E9, - 9165: 0xB1EC, - 9166: 0xB1F0, - 9167: 0xB1F9, - 9168: 0xB1FB, - 9169: 0xB1FD, - 9170: 0xB204, - 9171: 0xB205, - 9172: 0xB208, - 9173: 0xB20B, - 9174: 0xB20C, - 9175: 0xB214, - 9176: 0xB215, - 9177: 0xB217, - 9178: 0xB219, - 9179: 0xB220, - 9180: 0xB234, - 9181: 0xB23C, - 9182: 0xB258, - 9183: 0xB25C, - 9184: 0xB260, - 9185: 0xB268, - 9186: 0xB269, - 9187: 0xB274, - 9188: 0xB275, - 9189: 0xB27C, - 9190: 0xB284, - 9191: 0xB285, - 9192: 0xB289, - 9193: 0xB290, - 9194: 0xB291, - 9195: 0xB294, - 9196: 0xB298, - 9197: 0xB299, - 9198: 0xB29A, - 9199: 0xB2A0, - 9200: 0xB2A1, - 9201: 0xB2A3, - 9202: 0xB2A5, - 9203: 0xB2A6, - 9204: 0xB2AA, - 9205: 0xB2AC, - 9206: 0xB2B0, - 9207: 0xB2B4, - 9208: 0xB2C8, - 9209: 0xB2C9, - 9210: 0xB2CC, - 9211: 0xB2D0, - 9212: 0xB2D2, - 9213: 0xB2D8, - 9214: 0xB2D9, - 9215: 0xB2DB, - 9216: 0xB2DD, - 9217: 0xB2E2, - 9218: 0xB2E4, - 9219: 0xB2E5, - 9220: 0xB2E6, - 9221: 0xB2E8, - 9222: 0xB2EB, - 9223: 0xB2EC, - 9224: 0xB2ED, - 9225: 0xB2EE, - 9226: 0xB2EF, - 9227: 0xB2F3, - 9228: 0xB2F4, - 9229: 0xB2F5, - 9230: 0xB2F7, - 9231: 0xB2F8, - 9232: 0xB2F9, - 9233: 0xB2FA, - 9234: 0xB2FB, - 9235: 0xB2FF, - 9236: 0xB300, - 9237: 0xB301, - 9238: 0xB304, - 9239: 0xB308, - 9240: 0xB310, - 9241: 0xB311, - 9242: 0xB313, - 9243: 0xB314, - 9244: 0xB315, - 9245: 0xB31C, - 9246: 0xB354, - 9247: 0xB355, - 9248: 0xB356, - 9249: 0xB358, - 9250: 0xB35B, - 9251: 0xB35C, - 9252: 0xB35E, - 9253: 0xB35F, - 9254: 0xB364, - 9255: 0xB365, - 9256: 0xD095, - 9257: 0xD096, - 9258: 0xD097, - 9259: 0xD098, - 9260: 0xD099, - 9261: 0xD09A, - 9262: 0xD09B, - 9263: 0xD09C, - 9264: 0xD09D, - 9265: 0xD09E, - 9266: 0xD09F, - 9267: 0xD0A0, - 9268: 0xD0A1, - 9269: 0xD0A2, - 9270: 0xD0A3, - 9271: 0xD0A6, - 9272: 0xD0A7, - 9273: 0xD0A9, - 9274: 0xD0AA, - 9275: 0xD0AB, - 9276: 0xD0AD, - 9277: 0xD0AE, - 9278: 0xD0AF, - 9279: 0xD0B0, - 9280: 0xD0B1, - 9281: 0xD0B2, - 9282: 0xD0B3, - 9283: 0xD0B6, - 9284: 0xD0B8, - 9285: 0xD0BA, - 9286: 0xD0BB, - 9287: 0xD0BC, - 9288: 0xD0BD, - 9289: 0xD0BE, - 9290: 0xD0BF, - 9291: 0xD0C2, - 9292: 0xD0C3, - 9293: 0xD0C5, - 9294: 0xD0C6, - 9295: 0xD0C7, - 9296: 0xD0CA, - 9297: 0xD0CB, - 9298: 0xD0CC, - 9299: 0xD0CD, - 9300: 0xD0CE, - 9301: 0xD0CF, - 9302: 0xD0D2, - 9303: 0xD0D6, - 9304: 0xD0D7, - 9305: 0xD0D8, - 9306: 0xD0D9, - 9307: 0xD0DA, - 9308: 0xD0DB, - 9309: 0xD0DE, - 9310: 0xD0DF, - 9311: 0xD0E1, - 9312: 0xD0E2, - 9313: 0xD0E3, - 9314: 0xD0E5, - 9315: 0xD0E6, - 9316: 0xD0E7, - 9317: 0xD0E8, - 9318: 0xD0E9, - 9319: 0xD0EA, - 9320: 0xD0EB, - 9321: 0xD0EE, - 9322: 0xD0F2, - 9323: 0xD0F3, - 9324: 0xD0F4, - 9325: 0xD0F5, - 9326: 0xD0F6, - 9327: 0xD0F7, - 9328: 0xD0F9, - 9329: 0xD0FA, - 9330: 0xD0FB, - 9331: 0xD0FC, - 9332: 0xD0FD, - 9333: 0xD0FE, - 9334: 0xD0FF, - 9335: 0xD100, - 9336: 0xD101, - 9337: 0xD102, - 9338: 0xD103, - 9339: 0xD104, - 9340: 0xB367, - 9341: 0xB369, - 9342: 0xB36B, - 9343: 0xB36E, - 9344: 0xB370, - 9345: 0xB371, - 9346: 0xB374, - 9347: 0xB378, - 9348: 0xB380, - 9349: 0xB381, - 9350: 0xB383, - 9351: 0xB384, - 9352: 0xB385, - 9353: 0xB38C, - 9354: 0xB390, - 9355: 0xB394, - 9356: 0xB3A0, - 9357: 0xB3A1, - 9358: 0xB3A8, - 9359: 0xB3AC, - 9360: 0xB3C4, - 9361: 0xB3C5, - 9362: 0xB3C8, - 9363: 0xB3CB, - 9364: 0xB3CC, - 9365: 0xB3CE, - 9366: 0xB3D0, - 9367: 0xB3D4, - 9368: 0xB3D5, - 9369: 0xB3D7, - 9370: 0xB3D9, - 9371: 0xB3DB, - 9372: 0xB3DD, - 9373: 0xB3E0, - 9374: 0xB3E4, - 9375: 0xB3E8, - 9376: 0xB3FC, - 9377: 0xB410, - 9378: 0xB418, - 9379: 0xB41C, - 9380: 0xB420, - 9381: 0xB428, - 9382: 0xB429, - 9383: 0xB42B, - 9384: 0xB434, - 9385: 0xB450, - 9386: 0xB451, - 9387: 0xB454, - 9388: 0xB458, - 9389: 0xB460, - 9390: 0xB461, - 9391: 0xB463, - 9392: 0xB465, - 9393: 0xB46C, - 9394: 0xB480, - 9395: 0xB488, - 9396: 0xB49D, - 9397: 0xB4A4, - 9398: 0xB4A8, - 9399: 0xB4AC, - 9400: 0xB4B5, - 9401: 0xB4B7, - 9402: 0xB4B9, - 9403: 0xB4C0, - 9404: 0xB4C4, - 9405: 0xB4C8, - 9406: 0xB4D0, - 9407: 0xB4D5, - 9408: 0xB4DC, - 9409: 0xB4DD, - 9410: 0xB4E0, - 9411: 0xB4E3, - 9412: 0xB4E4, - 9413: 0xB4E6, - 9414: 0xB4EC, - 9415: 0xB4ED, - 9416: 0xB4EF, - 9417: 0xB4F1, - 9418: 0xB4F8, - 9419: 0xB514, - 9420: 0xB515, - 9421: 0xB518, - 9422: 0xB51B, - 9423: 0xB51C, - 9424: 0xB524, - 9425: 0xB525, - 9426: 0xB527, - 9427: 0xB528, - 9428: 0xB529, - 9429: 0xB52A, - 9430: 0xB530, - 9431: 0xB531, - 9432: 0xB534, - 9433: 0xB538, - 9434: 0xD105, - 9435: 0xD106, - 9436: 0xD107, - 9437: 0xD108, - 9438: 0xD109, - 9439: 0xD10A, - 9440: 0xD10B, - 9441: 0xD10C, - 9442: 0xD10E, - 9443: 0xD10F, - 9444: 0xD110, - 9445: 0xD111, - 9446: 0xD112, - 9447: 0xD113, - 9448: 0xD114, - 9449: 0xD115, - 9450: 0xD116, - 9451: 0xD117, - 9452: 0xD118, - 9453: 0xD119, - 9454: 0xD11A, - 9455: 0xD11B, - 9456: 0xD11C, - 9457: 0xD11D, - 9458: 0xD11E, - 9459: 0xD11F, - 9460: 0xD120, - 9461: 0xD121, - 9462: 0xD122, - 9463: 0xD123, - 9464: 0xD124, - 9465: 0xD125, - 9466: 0xD126, - 9467: 0xD127, - 9468: 0xD128, - 9469: 0xD129, - 9470: 0xD12A, - 9471: 0xD12B, - 9472: 0xD12C, - 9473: 0xD12D, - 9474: 0xD12E, - 9475: 0xD12F, - 9476: 0xD132, - 9477: 0xD133, - 9478: 0xD135, - 9479: 0xD136, - 9480: 0xD137, - 9481: 0xD139, - 9482: 0xD13B, - 9483: 0xD13C, - 9484: 0xD13D, - 9485: 0xD13E, - 9486: 0xD13F, - 9487: 0xD142, - 9488: 0xD146, - 9489: 0xD147, - 9490: 0xD148, - 9491: 0xD149, - 9492: 0xD14A, - 9493: 0xD14B, - 9494: 0xD14E, - 9495: 0xD14F, - 9496: 0xD151, - 9497: 0xD152, - 9498: 0xD153, - 9499: 0xD155, - 9500: 0xD156, - 9501: 0xD157, - 9502: 0xD158, - 9503: 0xD159, - 9504: 0xD15A, - 9505: 0xD15B, - 9506: 0xD15E, - 9507: 0xD160, - 9508: 0xD162, - 9509: 0xD163, - 9510: 0xD164, - 9511: 0xD165, - 9512: 0xD166, - 9513: 0xD167, - 9514: 0xD169, - 9515: 0xD16A, - 9516: 0xD16B, - 9517: 0xD16D, - 9518: 0xB540, - 9519: 0xB541, - 9520: 0xB543, - 9521: 0xB544, - 9522: 0xB545, - 9523: 0xB54B, - 9524: 0xB54C, - 9525: 0xB54D, - 9526: 0xB550, - 9527: 0xB554, - 9528: 0xB55C, - 9529: 0xB55D, - 9530: 0xB55F, - 9531: 0xB560, - 9532: 0xB561, - 9533: 0xB5A0, - 9534: 0xB5A1, - 9535: 0xB5A4, - 9536: 0xB5A8, - 9537: 0xB5AA, - 9538: 0xB5AB, - 9539: 0xB5B0, - 9540: 0xB5B1, - 9541: 0xB5B3, - 9542: 0xB5B4, - 9543: 0xB5B5, - 9544: 0xB5BB, - 9545: 0xB5BC, - 9546: 0xB5BD, - 9547: 0xB5C0, - 9548: 0xB5C4, - 9549: 0xB5CC, - 9550: 0xB5CD, - 9551: 0xB5CF, - 9552: 0xB5D0, - 9553: 0xB5D1, - 9554: 0xB5D8, - 9555: 0xB5EC, - 9556: 0xB610, - 9557: 0xB611, - 9558: 0xB614, - 9559: 0xB618, - 9560: 0xB625, - 9561: 0xB62C, - 9562: 0xB634, - 9563: 0xB648, - 9564: 0xB664, - 9565: 0xB668, - 9566: 0xB69C, - 9567: 0xB69D, - 9568: 0xB6A0, - 9569: 0xB6A4, - 9570: 0xB6AB, - 9571: 0xB6AC, - 9572: 0xB6B1, - 9573: 0xB6D4, - 9574: 0xB6F0, - 9575: 0xB6F4, - 9576: 0xB6F8, - 9577: 0xB700, - 9578: 0xB701, - 9579: 0xB705, - 9580: 0xB728, - 9581: 0xB729, - 9582: 0xB72C, - 9583: 0xB72F, - 9584: 0xB730, - 9585: 0xB738, - 9586: 0xB739, - 9587: 0xB73B, - 9588: 0xB744, - 9589: 0xB748, - 9590: 0xB74C, - 9591: 0xB754, - 9592: 0xB755, - 9593: 0xB760, - 9594: 0xB764, - 9595: 0xB768, - 9596: 0xB770, - 9597: 0xB771, - 9598: 0xB773, - 9599: 0xB775, - 9600: 0xB77C, - 9601: 0xB77D, - 9602: 0xB780, - 9603: 0xB784, - 9604: 0xB78C, - 9605: 0xB78D, - 9606: 0xB78F, - 9607: 0xB790, - 9608: 0xB791, - 9609: 0xB792, - 9610: 0xB796, - 9611: 0xB797, - 9612: 0xD16E, - 9613: 0xD16F, - 9614: 0xD170, - 9615: 0xD171, - 9616: 0xD172, - 9617: 0xD173, - 9618: 0xD174, - 9619: 0xD175, - 9620: 0xD176, - 9621: 0xD177, - 9622: 0xD178, - 9623: 0xD179, - 9624: 0xD17A, - 9625: 0xD17B, - 9626: 0xD17D, - 9627: 0xD17E, - 9628: 0xD17F, - 9629: 0xD180, - 9630: 0xD181, - 9631: 0xD182, - 9632: 0xD183, - 9633: 0xD185, - 9634: 0xD186, - 9635: 0xD187, - 9636: 0xD189, - 9637: 0xD18A, - 9638: 0xD18B, - 9639: 0xD18C, - 9640: 0xD18D, - 9641: 0xD18E, - 9642: 0xD18F, - 9643: 0xD190, - 9644: 0xD191, - 9645: 0xD192, - 9646: 0xD193, - 9647: 0xD194, - 9648: 0xD195, - 9649: 0xD196, - 9650: 0xD197, - 9651: 0xD198, - 9652: 0xD199, - 9653: 0xD19A, - 9654: 0xD19B, - 9655: 0xD19C, - 9656: 0xD19D, - 9657: 0xD19E, - 9658: 0xD19F, - 9659: 0xD1A2, - 9660: 0xD1A3, - 9661: 0xD1A5, - 9662: 0xD1A6, - 9663: 0xD1A7, - 9664: 0xD1A9, - 9665: 0xD1AA, - 9666: 0xD1AB, - 9667: 0xD1AC, - 9668: 0xD1AD, - 9669: 0xD1AE, - 9670: 0xD1AF, - 9671: 0xD1B2, - 9672: 0xD1B4, - 9673: 0xD1B6, - 9674: 0xD1B7, - 9675: 0xD1B8, - 9676: 0xD1B9, - 9677: 0xD1BB, - 9678: 0xD1BD, - 9679: 0xD1BE, - 9680: 0xD1BF, - 9681: 0xD1C1, - 9682: 0xD1C2, - 9683: 0xD1C3, - 9684: 0xD1C4, - 9685: 0xD1C5, - 9686: 0xD1C6, - 9687: 0xD1C7, - 9688: 0xD1C8, - 9689: 0xD1C9, - 9690: 0xD1CA, - 9691: 0xD1CB, - 9692: 0xD1CC, - 9693: 0xD1CD, - 9694: 0xD1CE, - 9695: 0xD1CF, - 9696: 0xB798, - 9697: 0xB799, - 9698: 0xB79C, - 9699: 0xB7A0, - 9700: 0xB7A8, - 9701: 0xB7A9, - 9702: 0xB7AB, - 9703: 0xB7AC, - 9704: 0xB7AD, - 9705: 0xB7B4, - 9706: 0xB7B5, - 9707: 0xB7B8, - 9708: 0xB7C7, - 9709: 0xB7C9, - 9710: 0xB7EC, - 9711: 0xB7ED, - 9712: 0xB7F0, - 9713: 0xB7F4, - 9714: 0xB7FC, - 9715: 0xB7FD, - 9716: 0xB7FF, - 9717: 0xB800, - 9718: 0xB801, - 9719: 0xB807, - 9720: 0xB808, - 9721: 0xB809, - 9722: 0xB80C, - 9723: 0xB810, - 9724: 0xB818, - 9725: 0xB819, - 9726: 0xB81B, - 9727: 0xB81D, - 9728: 0xB824, - 9729: 0xB825, - 9730: 0xB828, - 9731: 0xB82C, - 9732: 0xB834, - 9733: 0xB835, - 9734: 0xB837, - 9735: 0xB838, - 9736: 0xB839, - 9737: 0xB840, - 9738: 0xB844, - 9739: 0xB851, - 9740: 0xB853, - 9741: 0xB85C, - 9742: 0xB85D, - 9743: 0xB860, - 9744: 0xB864, - 9745: 0xB86C, - 9746: 0xB86D, - 9747: 0xB86F, - 9748: 0xB871, - 9749: 0xB878, - 9750: 0xB87C, - 9751: 0xB88D, - 9752: 0xB8A8, - 9753: 0xB8B0, - 9754: 0xB8B4, - 9755: 0xB8B8, - 9756: 0xB8C0, - 9757: 0xB8C1, - 9758: 0xB8C3, - 9759: 0xB8C5, - 9760: 0xB8CC, - 9761: 0xB8D0, - 9762: 0xB8D4, - 9763: 0xB8DD, - 9764: 0xB8DF, - 9765: 0xB8E1, - 9766: 0xB8E8, - 9767: 0xB8E9, - 9768: 0xB8EC, - 9769: 0xB8F0, - 9770: 0xB8F8, - 9771: 0xB8F9, - 9772: 0xB8FB, - 9773: 0xB8FD, - 9774: 0xB904, - 9775: 0xB918, - 9776: 0xB920, - 9777: 0xB93C, - 9778: 0xB93D, - 9779: 0xB940, - 9780: 0xB944, - 9781: 0xB94C, - 9782: 0xB94F, - 9783: 0xB951, - 9784: 0xB958, - 9785: 0xB959, - 9786: 0xB95C, - 9787: 0xB960, - 9788: 0xB968, - 9789: 0xB969, - 9790: 0xD1D0, - 9791: 0xD1D1, - 9792: 0xD1D2, - 9793: 0xD1D3, - 9794: 0xD1D4, - 9795: 0xD1D5, - 9796: 0xD1D6, - 9797: 0xD1D7, - 9798: 0xD1D9, - 9799: 0xD1DA, - 9800: 0xD1DB, - 9801: 0xD1DC, - 9802: 0xD1DD, - 9803: 0xD1DE, - 9804: 0xD1DF, - 9805: 0xD1E0, - 9806: 0xD1E1, - 9807: 0xD1E2, - 9808: 0xD1E3, - 9809: 0xD1E4, - 9810: 0xD1E5, - 9811: 0xD1E6, - 9812: 0xD1E7, - 9813: 0xD1E8, - 9814: 0xD1E9, - 9815: 0xD1EA, - 9816: 0xD1EB, - 9817: 0xD1EC, - 9818: 0xD1ED, - 9819: 0xD1EE, - 9820: 0xD1EF, - 9821: 0xD1F0, - 9822: 0xD1F1, - 9823: 0xD1F2, - 9824: 0xD1F3, - 9825: 0xD1F5, - 9826: 0xD1F6, - 9827: 0xD1F7, - 9828: 0xD1F9, - 9829: 0xD1FA, - 9830: 0xD1FB, - 9831: 0xD1FC, - 9832: 0xD1FD, - 9833: 0xD1FE, - 9834: 0xD1FF, - 9835: 0xD200, - 9836: 0xD201, - 9837: 0xD202, - 9838: 0xD203, - 9839: 0xD204, - 9840: 0xD205, - 9841: 0xD206, - 9842: 0xD208, - 9843: 0xD20A, - 9844: 0xD20B, - 9845: 0xD20C, - 9846: 0xD20D, - 9847: 0xD20E, - 9848: 0xD20F, - 9849: 0xD211, - 9850: 0xD212, - 9851: 0xD213, - 9852: 0xD214, - 9853: 0xD215, - 9854: 0xD216, - 9855: 0xD217, - 9856: 0xD218, - 9857: 0xD219, - 9858: 0xD21A, - 9859: 0xD21B, - 9860: 0xD21C, - 9861: 0xD21D, - 9862: 0xD21E, - 9863: 0xD21F, - 9864: 0xD220, - 9865: 0xD221, - 9866: 0xD222, - 9867: 0xD223, - 9868: 0xD224, - 9869: 0xD225, - 9870: 0xD226, - 9871: 0xD227, - 9872: 0xD228, - 9873: 0xD229, - 9874: 0xB96B, - 9875: 0xB96D, - 9876: 0xB974, - 9877: 0xB975, - 9878: 0xB978, - 9879: 0xB97C, - 9880: 0xB984, - 9881: 0xB985, - 9882: 0xB987, - 9883: 0xB989, - 9884: 0xB98A, - 9885: 0xB98D, - 9886: 0xB98E, - 9887: 0xB9AC, - 9888: 0xB9AD, - 9889: 0xB9B0, - 9890: 0xB9B4, - 9891: 0xB9BC, - 9892: 0xB9BD, - 9893: 0xB9BF, - 9894: 0xB9C1, - 9895: 0xB9C8, - 9896: 0xB9C9, - 9897: 0xB9CC, - 9898: 0xB9CE, - 9899: 0xB9CF, - 9900: 0xB9D0, - 9901: 0xB9D1, - 9902: 0xB9D2, - 9903: 0xB9D8, - 9904: 0xB9D9, - 9905: 0xB9DB, - 9906: 0xB9DD, - 9907: 0xB9DE, - 9908: 0xB9E1, - 9909: 0xB9E3, - 9910: 0xB9E4, - 9911: 0xB9E5, - 9912: 0xB9E8, - 9913: 0xB9EC, - 9914: 0xB9F4, - 9915: 0xB9F5, - 9916: 0xB9F7, - 9917: 0xB9F8, - 9918: 0xB9F9, - 9919: 0xB9FA, - 9920: 0xBA00, - 9921: 0xBA01, - 9922: 0xBA08, - 9923: 0xBA15, - 9924: 0xBA38, - 9925: 0xBA39, - 9926: 0xBA3C, - 9927: 0xBA40, - 9928: 0xBA42, - 9929: 0xBA48, - 9930: 0xBA49, - 9931: 0xBA4B, - 9932: 0xBA4D, - 9933: 0xBA4E, - 9934: 0xBA53, - 9935: 0xBA54, - 9936: 0xBA55, - 9937: 0xBA58, - 9938: 0xBA5C, - 9939: 0xBA64, - 9940: 0xBA65, - 9941: 0xBA67, - 9942: 0xBA68, - 9943: 0xBA69, - 9944: 0xBA70, - 9945: 0xBA71, - 9946: 0xBA74, - 9947: 0xBA78, - 9948: 0xBA83, - 9949: 0xBA84, - 9950: 0xBA85, - 9951: 0xBA87, - 9952: 0xBA8C, - 9953: 0xBAA8, - 9954: 0xBAA9, - 9955: 0xBAAB, - 9956: 0xBAAC, - 9957: 0xBAB0, - 9958: 0xBAB2, - 9959: 0xBAB8, - 9960: 0xBAB9, - 9961: 0xBABB, - 9962: 0xBABD, - 9963: 0xBAC4, - 9964: 0xBAC8, - 9965: 0xBAD8, - 9966: 0xBAD9, - 9967: 0xBAFC, - 9968: 0xD22A, - 9969: 0xD22B, - 9970: 0xD22E, - 9971: 0xD22F, - 9972: 0xD231, - 9973: 0xD232, - 9974: 0xD233, - 9975: 0xD235, - 9976: 0xD236, - 9977: 0xD237, - 9978: 0xD238, - 9979: 0xD239, - 9980: 0xD23A, - 9981: 0xD23B, - 9982: 0xD23E, - 9983: 0xD240, - 9984: 0xD242, - 9985: 0xD243, - 9986: 0xD244, - 9987: 0xD245, - 9988: 0xD246, - 9989: 0xD247, - 9990: 0xD249, - 9991: 0xD24A, - 9992: 0xD24B, - 9993: 0xD24C, - 9994: 0xD24D, - 9995: 0xD24E, - 9996: 0xD24F, - 9997: 0xD250, - 9998: 0xD251, - 9999: 0xD252, - 10000: 0xD253, - 10001: 0xD254, - 10002: 0xD255, - 10003: 0xD256, - 10004: 0xD257, - 10005: 0xD258, - 10006: 0xD259, - 10007: 0xD25A, - 10008: 0xD25B, - 10009: 0xD25D, - 10010: 0xD25E, - 10011: 0xD25F, - 10012: 0xD260, - 10013: 0xD261, - 10014: 0xD262, - 10015: 0xD263, - 10016: 0xD265, - 10017: 0xD266, - 10018: 0xD267, - 10019: 0xD268, - 10020: 0xD269, - 10021: 0xD26A, - 10022: 0xD26B, - 10023: 0xD26C, - 10024: 0xD26D, - 10025: 0xD26E, - 10026: 0xD26F, - 10027: 0xD270, - 10028: 0xD271, - 10029: 0xD272, - 10030: 0xD273, - 10031: 0xD274, - 10032: 0xD275, - 10033: 0xD276, - 10034: 0xD277, - 10035: 0xD278, - 10036: 0xD279, - 10037: 0xD27A, - 10038: 0xD27B, - 10039: 0xD27C, - 10040: 0xD27D, - 10041: 0xD27E, - 10042: 0xD27F, - 10043: 0xD282, - 10044: 0xD283, - 10045: 0xD285, - 10046: 0xD286, - 10047: 0xD287, - 10048: 0xD289, - 10049: 0xD28A, - 10050: 0xD28B, - 10051: 0xD28C, - 10052: 0xBB00, - 10053: 0xBB04, - 10054: 0xBB0D, - 10055: 0xBB0F, - 10056: 0xBB11, - 10057: 0xBB18, - 10058: 0xBB1C, - 10059: 0xBB20, - 10060: 0xBB29, - 10061: 0xBB2B, - 10062: 0xBB34, - 10063: 0xBB35, - 10064: 0xBB36, - 10065: 0xBB38, - 10066: 0xBB3B, - 10067: 0xBB3C, - 10068: 0xBB3D, - 10069: 0xBB3E, - 10070: 0xBB44, - 10071: 0xBB45, - 10072: 0xBB47, - 10073: 0xBB49, - 10074: 0xBB4D, - 10075: 0xBB4F, - 10076: 0xBB50, - 10077: 0xBB54, - 10078: 0xBB58, - 10079: 0xBB61, - 10080: 0xBB63, - 10081: 0xBB6C, - 10082: 0xBB88, - 10083: 0xBB8C, - 10084: 0xBB90, - 10085: 0xBBA4, - 10086: 0xBBA8, - 10087: 0xBBAC, - 10088: 0xBBB4, - 10089: 0xBBB7, - 10090: 0xBBC0, - 10091: 0xBBC4, - 10092: 0xBBC8, - 10093: 0xBBD0, - 10094: 0xBBD3, - 10095: 0xBBF8, - 10096: 0xBBF9, - 10097: 0xBBFC, - 10098: 0xBBFF, - 10099: 0xBC00, - 10100: 0xBC02, - 10101: 0xBC08, - 10102: 0xBC09, - 10103: 0xBC0B, - 10104: 0xBC0C, - 10105: 0xBC0D, - 10106: 0xBC0F, - 10107: 0xBC11, - 10108: 0xBC14, - 10109: 0xBC15, - 10110: 0xBC16, - 10111: 0xBC17, - 10112: 0xBC18, - 10113: 0xBC1B, - 10114: 0xBC1C, - 10115: 0xBC1D, - 10116: 0xBC1E, - 10117: 0xBC1F, - 10118: 0xBC24, - 10119: 0xBC25, - 10120: 0xBC27, - 10121: 0xBC29, - 10122: 0xBC2D, - 10123: 0xBC30, - 10124: 0xBC31, - 10125: 0xBC34, - 10126: 0xBC38, - 10127: 0xBC40, - 10128: 0xBC41, - 10129: 0xBC43, - 10130: 0xBC44, - 10131: 0xBC45, - 10132: 0xBC49, - 10133: 0xBC4C, - 10134: 0xBC4D, - 10135: 0xBC50, - 10136: 0xBC5D, - 10137: 0xBC84, - 10138: 0xBC85, - 10139: 0xBC88, - 10140: 0xBC8B, - 10141: 0xBC8C, - 10142: 0xBC8E, - 10143: 0xBC94, - 10144: 0xBC95, - 10145: 0xBC97, - 10146: 0xD28D, - 10147: 0xD28E, - 10148: 0xD28F, - 10149: 0xD292, - 10150: 0xD293, - 10151: 0xD294, - 10152: 0xD296, - 10153: 0xD297, - 10154: 0xD298, - 10155: 0xD299, - 10156: 0xD29A, - 10157: 0xD29B, - 10158: 0xD29D, - 10159: 0xD29E, - 10160: 0xD29F, - 10161: 0xD2A1, - 10162: 0xD2A2, - 10163: 0xD2A3, - 10164: 0xD2A5, - 10165: 0xD2A6, - 10166: 0xD2A7, - 10167: 0xD2A8, - 10168: 0xD2A9, - 10169: 0xD2AA, - 10170: 0xD2AB, - 10171: 0xD2AD, - 10172: 0xD2AE, - 10173: 0xD2AF, - 10174: 0xD2B0, - 10175: 0xD2B2, - 10176: 0xD2B3, - 10177: 0xD2B4, - 10178: 0xD2B5, - 10179: 0xD2B6, - 10180: 0xD2B7, - 10181: 0xD2BA, - 10182: 0xD2BB, - 10183: 0xD2BD, - 10184: 0xD2BE, - 10185: 0xD2C1, - 10186: 0xD2C3, - 10187: 0xD2C4, - 10188: 0xD2C5, - 10189: 0xD2C6, - 10190: 0xD2C7, - 10191: 0xD2CA, - 10192: 0xD2CC, - 10193: 0xD2CD, - 10194: 0xD2CE, - 10195: 0xD2CF, - 10196: 0xD2D0, - 10197: 0xD2D1, - 10198: 0xD2D2, - 10199: 0xD2D3, - 10200: 0xD2D5, - 10201: 0xD2D6, - 10202: 0xD2D7, - 10203: 0xD2D9, - 10204: 0xD2DA, - 10205: 0xD2DB, - 10206: 0xD2DD, - 10207: 0xD2DE, - 10208: 0xD2DF, - 10209: 0xD2E0, - 10210: 0xD2E1, - 10211: 0xD2E2, - 10212: 0xD2E3, - 10213: 0xD2E6, - 10214: 0xD2E7, - 10215: 0xD2E8, - 10216: 0xD2E9, - 10217: 0xD2EA, - 10218: 0xD2EB, - 10219: 0xD2EC, - 10220: 0xD2ED, - 10221: 0xD2EE, - 10222: 0xD2EF, - 10223: 0xD2F2, - 10224: 0xD2F3, - 10225: 0xD2F5, - 10226: 0xD2F6, - 10227: 0xD2F7, - 10228: 0xD2F9, - 10229: 0xD2FA, - 10230: 0xBC99, - 10231: 0xBC9A, - 10232: 0xBCA0, - 10233: 0xBCA1, - 10234: 0xBCA4, - 10235: 0xBCA7, - 10236: 0xBCA8, - 10237: 0xBCB0, - 10238: 0xBCB1, - 10239: 0xBCB3, - 10240: 0xBCB4, - 10241: 0xBCB5, - 10242: 0xBCBC, - 10243: 0xBCBD, - 10244: 0xBCC0, - 10245: 0xBCC4, - 10246: 0xBCCD, - 10247: 0xBCCF, - 10248: 0xBCD0, - 10249: 0xBCD1, - 10250: 0xBCD5, - 10251: 0xBCD8, - 10252: 0xBCDC, - 10253: 0xBCF4, - 10254: 0xBCF5, - 10255: 0xBCF6, - 10256: 0xBCF8, - 10257: 0xBCFC, - 10258: 0xBD04, - 10259: 0xBD05, - 10260: 0xBD07, - 10261: 0xBD09, - 10262: 0xBD10, - 10263: 0xBD14, - 10264: 0xBD24, - 10265: 0xBD2C, - 10266: 0xBD40, - 10267: 0xBD48, - 10268: 0xBD49, - 10269: 0xBD4C, - 10270: 0xBD50, - 10271: 0xBD58, - 10272: 0xBD59, - 10273: 0xBD64, - 10274: 0xBD68, - 10275: 0xBD80, - 10276: 0xBD81, - 10277: 0xBD84, - 10278: 0xBD87, - 10279: 0xBD88, - 10280: 0xBD89, - 10281: 0xBD8A, - 10282: 0xBD90, - 10283: 0xBD91, - 10284: 0xBD93, - 10285: 0xBD95, - 10286: 0xBD99, - 10287: 0xBD9A, - 10288: 0xBD9C, - 10289: 0xBDA4, - 10290: 0xBDB0, - 10291: 0xBDB8, - 10292: 0xBDD4, - 10293: 0xBDD5, - 10294: 0xBDD8, - 10295: 0xBDDC, - 10296: 0xBDE9, - 10297: 0xBDF0, - 10298: 0xBDF4, - 10299: 0xBDF8, - 10300: 0xBE00, - 10301: 0xBE03, - 10302: 0xBE05, - 10303: 0xBE0C, - 10304: 0xBE0D, - 10305: 0xBE10, - 10306: 0xBE14, - 10307: 0xBE1C, - 10308: 0xBE1D, - 10309: 0xBE1F, - 10310: 0xBE44, - 10311: 0xBE45, - 10312: 0xBE48, - 10313: 0xBE4C, - 10314: 0xBE4E, - 10315: 0xBE54, - 10316: 0xBE55, - 10317: 0xBE57, - 10318: 0xBE59, - 10319: 0xBE5A, - 10320: 0xBE5B, - 10321: 0xBE60, - 10322: 0xBE61, - 10323: 0xBE64, - 10324: 0xD2FB, - 10325: 0xD2FC, - 10326: 0xD2FD, - 10327: 0xD2FE, - 10328: 0xD2FF, - 10329: 0xD302, - 10330: 0xD304, - 10331: 0xD306, - 10332: 0xD307, - 10333: 0xD308, - 10334: 0xD309, - 10335: 0xD30A, - 10336: 0xD30B, - 10337: 0xD30F, - 10338: 0xD311, - 10339: 0xD312, - 10340: 0xD313, - 10341: 0xD315, - 10342: 0xD317, - 10343: 0xD318, - 10344: 0xD319, - 10345: 0xD31A, - 10346: 0xD31B, - 10347: 0xD31E, - 10348: 0xD322, - 10349: 0xD323, - 10350: 0xD324, - 10351: 0xD326, - 10352: 0xD327, - 10353: 0xD32A, - 10354: 0xD32B, - 10355: 0xD32D, - 10356: 0xD32E, - 10357: 0xD32F, - 10358: 0xD331, - 10359: 0xD332, - 10360: 0xD333, - 10361: 0xD334, - 10362: 0xD335, - 10363: 0xD336, - 10364: 0xD337, - 10365: 0xD33A, - 10366: 0xD33E, - 10367: 0xD33F, - 10368: 0xD340, - 10369: 0xD341, - 10370: 0xD342, - 10371: 0xD343, - 10372: 0xD346, - 10373: 0xD347, - 10374: 0xD348, - 10375: 0xD349, - 10376: 0xD34A, - 10377: 0xD34B, - 10378: 0xD34C, - 10379: 0xD34D, - 10380: 0xD34E, - 10381: 0xD34F, - 10382: 0xD350, - 10383: 0xD351, - 10384: 0xD352, - 10385: 0xD353, - 10386: 0xD354, - 10387: 0xD355, - 10388: 0xD356, - 10389: 0xD357, - 10390: 0xD358, - 10391: 0xD359, - 10392: 0xD35A, - 10393: 0xD35B, - 10394: 0xD35C, - 10395: 0xD35D, - 10396: 0xD35E, - 10397: 0xD35F, - 10398: 0xD360, - 10399: 0xD361, - 10400: 0xD362, - 10401: 0xD363, - 10402: 0xD364, - 10403: 0xD365, - 10404: 0xD366, - 10405: 0xD367, - 10406: 0xD368, - 10407: 0xD369, - 10408: 0xBE68, - 10409: 0xBE6A, - 10410: 0xBE70, - 10411: 0xBE71, - 10412: 0xBE73, - 10413: 0xBE74, - 10414: 0xBE75, - 10415: 0xBE7B, - 10416: 0xBE7C, - 10417: 0xBE7D, - 10418: 0xBE80, - 10419: 0xBE84, - 10420: 0xBE8C, - 10421: 0xBE8D, - 10422: 0xBE8F, - 10423: 0xBE90, - 10424: 0xBE91, - 10425: 0xBE98, - 10426: 0xBE99, - 10427: 0xBEA8, - 10428: 0xBED0, - 10429: 0xBED1, - 10430: 0xBED4, - 10431: 0xBED7, - 10432: 0xBED8, - 10433: 0xBEE0, - 10434: 0xBEE3, - 10435: 0xBEE4, - 10436: 0xBEE5, - 10437: 0xBEEC, - 10438: 0xBF01, - 10439: 0xBF08, - 10440: 0xBF09, - 10441: 0xBF18, - 10442: 0xBF19, - 10443: 0xBF1B, - 10444: 0xBF1C, - 10445: 0xBF1D, - 10446: 0xBF40, - 10447: 0xBF41, - 10448: 0xBF44, - 10449: 0xBF48, - 10450: 0xBF50, - 10451: 0xBF51, - 10452: 0xBF55, - 10453: 0xBF94, - 10454: 0xBFB0, - 10455: 0xBFC5, - 10456: 0xBFCC, - 10457: 0xBFCD, - 10458: 0xBFD0, - 10459: 0xBFD4, - 10460: 0xBFDC, - 10461: 0xBFDF, - 10462: 0xBFE1, - 10463: 0xC03C, - 10464: 0xC051, - 10465: 0xC058, - 10466: 0xC05C, - 10467: 0xC060, - 10468: 0xC068, - 10469: 0xC069, - 10470: 0xC090, - 10471: 0xC091, - 10472: 0xC094, - 10473: 0xC098, - 10474: 0xC0A0, - 10475: 0xC0A1, - 10476: 0xC0A3, - 10477: 0xC0A5, - 10478: 0xC0AC, - 10479: 0xC0AD, - 10480: 0xC0AF, - 10481: 0xC0B0, - 10482: 0xC0B3, - 10483: 0xC0B4, - 10484: 0xC0B5, - 10485: 0xC0B6, - 10486: 0xC0BC, - 10487: 0xC0BD, - 10488: 0xC0BF, - 10489: 0xC0C0, - 10490: 0xC0C1, - 10491: 0xC0C5, - 10492: 0xC0C8, - 10493: 0xC0C9, - 10494: 0xC0CC, - 10495: 0xC0D0, - 10496: 0xC0D8, - 10497: 0xC0D9, - 10498: 0xC0DB, - 10499: 0xC0DC, - 10500: 0xC0DD, - 10501: 0xC0E4, - 10502: 0xD36A, - 10503: 0xD36B, - 10504: 0xD36C, - 10505: 0xD36D, - 10506: 0xD36E, - 10507: 0xD36F, - 10508: 0xD370, - 10509: 0xD371, - 10510: 0xD372, - 10511: 0xD373, - 10512: 0xD374, - 10513: 0xD375, - 10514: 0xD376, - 10515: 0xD377, - 10516: 0xD378, - 10517: 0xD379, - 10518: 0xD37A, - 10519: 0xD37B, - 10520: 0xD37E, - 10521: 0xD37F, - 10522: 0xD381, - 10523: 0xD382, - 10524: 0xD383, - 10525: 0xD385, - 10526: 0xD386, - 10527: 0xD387, - 10528: 0xD388, - 10529: 0xD389, - 10530: 0xD38A, - 10531: 0xD38B, - 10532: 0xD38E, - 10533: 0xD392, - 10534: 0xD393, - 10535: 0xD394, - 10536: 0xD395, - 10537: 0xD396, - 10538: 0xD397, - 10539: 0xD39A, - 10540: 0xD39B, - 10541: 0xD39D, - 10542: 0xD39E, - 10543: 0xD39F, - 10544: 0xD3A1, - 10545: 0xD3A2, - 10546: 0xD3A3, - 10547: 0xD3A4, - 10548: 0xD3A5, - 10549: 0xD3A6, - 10550: 0xD3A7, - 10551: 0xD3AA, - 10552: 0xD3AC, - 10553: 0xD3AE, - 10554: 0xD3AF, - 10555: 0xD3B0, - 10556: 0xD3B1, - 10557: 0xD3B2, - 10558: 0xD3B3, - 10559: 0xD3B5, - 10560: 0xD3B6, - 10561: 0xD3B7, - 10562: 0xD3B9, - 10563: 0xD3BA, - 10564: 0xD3BB, - 10565: 0xD3BD, - 10566: 0xD3BE, - 10567: 0xD3BF, - 10568: 0xD3C0, - 10569: 0xD3C1, - 10570: 0xD3C2, - 10571: 0xD3C3, - 10572: 0xD3C6, - 10573: 0xD3C7, - 10574: 0xD3CA, - 10575: 0xD3CB, - 10576: 0xD3CC, - 10577: 0xD3CD, - 10578: 0xD3CE, - 10579: 0xD3CF, - 10580: 0xD3D1, - 10581: 0xD3D2, - 10582: 0xD3D3, - 10583: 0xD3D4, - 10584: 0xD3D5, - 10585: 0xD3D6, - 10586: 0xC0E5, - 10587: 0xC0E8, - 10588: 0xC0EC, - 10589: 0xC0F4, - 10590: 0xC0F5, - 10591: 0xC0F7, - 10592: 0xC0F9, - 10593: 0xC100, - 10594: 0xC104, - 10595: 0xC108, - 10596: 0xC110, - 10597: 0xC115, - 10598: 0xC11C, - 10599: 0xC11D, - 10600: 0xC11E, - 10601: 0xC11F, - 10602: 0xC120, - 10603: 0xC123, - 10604: 0xC124, - 10605: 0xC126, - 10606: 0xC127, - 10607: 0xC12C, - 10608: 0xC12D, - 10609: 0xC12F, - 10610: 0xC130, - 10611: 0xC131, - 10612: 0xC136, - 10613: 0xC138, - 10614: 0xC139, - 10615: 0xC13C, - 10616: 0xC140, - 10617: 0xC148, - 10618: 0xC149, - 10619: 0xC14B, - 10620: 0xC14C, - 10621: 0xC14D, - 10622: 0xC154, - 10623: 0xC155, - 10624: 0xC158, - 10625: 0xC15C, - 10626: 0xC164, - 10627: 0xC165, - 10628: 0xC167, - 10629: 0xC168, - 10630: 0xC169, - 10631: 0xC170, - 10632: 0xC174, - 10633: 0xC178, - 10634: 0xC185, - 10635: 0xC18C, - 10636: 0xC18D, - 10637: 0xC18E, - 10638: 0xC190, - 10639: 0xC194, - 10640: 0xC196, - 10641: 0xC19C, - 10642: 0xC19D, - 10643: 0xC19F, - 10644: 0xC1A1, - 10645: 0xC1A5, - 10646: 0xC1A8, - 10647: 0xC1A9, - 10648: 0xC1AC, - 10649: 0xC1B0, - 10650: 0xC1BD, - 10651: 0xC1C4, - 10652: 0xC1C8, - 10653: 0xC1CC, - 10654: 0xC1D4, - 10655: 0xC1D7, - 10656: 0xC1D8, - 10657: 0xC1E0, - 10658: 0xC1E4, - 10659: 0xC1E8, - 10660: 0xC1F0, - 10661: 0xC1F1, - 10662: 0xC1F3, - 10663: 0xC1FC, - 10664: 0xC1FD, - 10665: 0xC200, - 10666: 0xC204, - 10667: 0xC20C, - 10668: 0xC20D, - 10669: 0xC20F, - 10670: 0xC211, - 10671: 0xC218, - 10672: 0xC219, - 10673: 0xC21C, - 10674: 0xC21F, - 10675: 0xC220, - 10676: 0xC228, - 10677: 0xC229, - 10678: 0xC22B, - 10679: 0xC22D, - 10680: 0xD3D7, - 10681: 0xD3D9, - 10682: 0xD3DA, - 10683: 0xD3DB, - 10684: 0xD3DC, - 10685: 0xD3DD, - 10686: 0xD3DE, - 10687: 0xD3DF, - 10688: 0xD3E0, - 10689: 0xD3E2, - 10690: 0xD3E4, - 10691: 0xD3E5, - 10692: 0xD3E6, - 10693: 0xD3E7, - 10694: 0xD3E8, - 10695: 0xD3E9, - 10696: 0xD3EA, - 10697: 0xD3EB, - 10698: 0xD3EE, - 10699: 0xD3EF, - 10700: 0xD3F1, - 10701: 0xD3F2, - 10702: 0xD3F3, - 10703: 0xD3F5, - 10704: 0xD3F6, - 10705: 0xD3F7, - 10706: 0xD3F8, - 10707: 0xD3F9, - 10708: 0xD3FA, - 10709: 0xD3FB, - 10710: 0xD3FE, - 10711: 0xD400, - 10712: 0xD402, - 10713: 0xD403, - 10714: 0xD404, - 10715: 0xD405, - 10716: 0xD406, - 10717: 0xD407, - 10718: 0xD409, - 10719: 0xD40A, - 10720: 0xD40B, - 10721: 0xD40C, - 10722: 0xD40D, - 10723: 0xD40E, - 10724: 0xD40F, - 10725: 0xD410, - 10726: 0xD411, - 10727: 0xD412, - 10728: 0xD413, - 10729: 0xD414, - 10730: 0xD415, - 10731: 0xD416, - 10732: 0xD417, - 10733: 0xD418, - 10734: 0xD419, - 10735: 0xD41A, - 10736: 0xD41B, - 10737: 0xD41C, - 10738: 0xD41E, - 10739: 0xD41F, - 10740: 0xD420, - 10741: 0xD421, - 10742: 0xD422, - 10743: 0xD423, - 10744: 0xD424, - 10745: 0xD425, - 10746: 0xD426, - 10747: 0xD427, - 10748: 0xD428, - 10749: 0xD429, - 10750: 0xD42A, - 10751: 0xD42B, - 10752: 0xD42C, - 10753: 0xD42D, - 10754: 0xD42E, - 10755: 0xD42F, - 10756: 0xD430, - 10757: 0xD431, - 10758: 0xD432, - 10759: 0xD433, - 10760: 0xD434, - 10761: 0xD435, - 10762: 0xD436, - 10763: 0xD437, - 10764: 0xC22F, - 10765: 0xC231, - 10766: 0xC232, - 10767: 0xC234, - 10768: 0xC248, - 10769: 0xC250, - 10770: 0xC251, - 10771: 0xC254, - 10772: 0xC258, - 10773: 0xC260, - 10774: 0xC265, - 10775: 0xC26C, - 10776: 0xC26D, - 10777: 0xC270, - 10778: 0xC274, - 10779: 0xC27C, - 10780: 0xC27D, - 10781: 0xC27F, - 10782: 0xC281, - 10783: 0xC288, - 10784: 0xC289, - 10785: 0xC290, - 10786: 0xC298, - 10787: 0xC29B, - 10788: 0xC29D, - 10789: 0xC2A4, - 10790: 0xC2A5, - 10791: 0xC2A8, - 10792: 0xC2AC, - 10793: 0xC2AD, - 10794: 0xC2B4, - 10795: 0xC2B5, - 10796: 0xC2B7, - 10797: 0xC2B9, - 10798: 0xC2DC, - 10799: 0xC2DD, - 10800: 0xC2E0, - 10801: 0xC2E3, - 10802: 0xC2E4, - 10803: 0xC2EB, - 10804: 0xC2EC, - 10805: 0xC2ED, - 10806: 0xC2EF, - 10807: 0xC2F1, - 10808: 0xC2F6, - 10809: 0xC2F8, - 10810: 0xC2F9, - 10811: 0xC2FB, - 10812: 0xC2FC, - 10813: 0xC300, - 10814: 0xC308, - 10815: 0xC309, - 10816: 0xC30C, - 10817: 0xC30D, - 10818: 0xC313, - 10819: 0xC314, - 10820: 0xC315, - 10821: 0xC318, - 10822: 0xC31C, - 10823: 0xC324, - 10824: 0xC325, - 10825: 0xC328, - 10826: 0xC329, - 10827: 0xC345, - 10828: 0xC368, - 10829: 0xC369, - 10830: 0xC36C, - 10831: 0xC370, - 10832: 0xC372, - 10833: 0xC378, - 10834: 0xC379, - 10835: 0xC37C, - 10836: 0xC37D, - 10837: 0xC384, - 10838: 0xC388, - 10839: 0xC38C, - 10840: 0xC3C0, - 10841: 0xC3D8, - 10842: 0xC3D9, - 10843: 0xC3DC, - 10844: 0xC3DF, - 10845: 0xC3E0, - 10846: 0xC3E2, - 10847: 0xC3E8, - 10848: 0xC3E9, - 10849: 0xC3ED, - 10850: 0xC3F4, - 10851: 0xC3F5, - 10852: 0xC3F8, - 10853: 0xC408, - 10854: 0xC410, - 10855: 0xC424, - 10856: 0xC42C, - 10857: 0xC430, - 10858: 0xD438, - 10859: 0xD439, - 10860: 0xD43A, - 10861: 0xD43B, - 10862: 0xD43C, - 10863: 0xD43D, - 10864: 0xD43E, - 10865: 0xD43F, - 10866: 0xD441, - 10867: 0xD442, - 10868: 0xD443, - 10869: 0xD445, - 10870: 0xD446, - 10871: 0xD447, - 10872: 0xD448, - 10873: 0xD449, - 10874: 0xD44A, - 10875: 0xD44B, - 10876: 0xD44C, - 10877: 0xD44D, - 10878: 0xD44E, - 10879: 0xD44F, - 10880: 0xD450, - 10881: 0xD451, - 10882: 0xD452, - 10883: 0xD453, - 10884: 0xD454, - 10885: 0xD455, - 10886: 0xD456, - 10887: 0xD457, - 10888: 0xD458, - 10889: 0xD459, - 10890: 0xD45A, - 10891: 0xD45B, - 10892: 0xD45D, - 10893: 0xD45E, - 10894: 0xD45F, - 10895: 0xD461, - 10896: 0xD462, - 10897: 0xD463, - 10898: 0xD465, - 10899: 0xD466, - 10900: 0xD467, - 10901: 0xD468, - 10902: 0xD469, - 10903: 0xD46A, - 10904: 0xD46B, - 10905: 0xD46C, - 10906: 0xD46E, - 10907: 0xD470, - 10908: 0xD471, - 10909: 0xD472, - 10910: 0xD473, - 10911: 0xD474, - 10912: 0xD475, - 10913: 0xD476, - 10914: 0xD477, - 10915: 0xD47A, - 10916: 0xD47B, - 10917: 0xD47D, - 10918: 0xD47E, - 10919: 0xD481, - 10920: 0xD483, - 10921: 0xD484, - 10922: 0xD485, - 10923: 0xD486, - 10924: 0xD487, - 10925: 0xD48A, - 10926: 0xD48C, - 10927: 0xD48E, - 10928: 0xD48F, - 10929: 0xD490, - 10930: 0xD491, - 10931: 0xD492, - 10932: 0xD493, - 10933: 0xD495, - 10934: 0xD496, - 10935: 0xD497, - 10936: 0xD498, - 10937: 0xD499, - 10938: 0xD49A, - 10939: 0xD49B, - 10940: 0xD49C, - 10941: 0xD49D, - 10942: 0xC434, - 10943: 0xC43C, - 10944: 0xC43D, - 10945: 0xC448, - 10946: 0xC464, - 10947: 0xC465, - 10948: 0xC468, - 10949: 0xC46C, - 10950: 0xC474, - 10951: 0xC475, - 10952: 0xC479, - 10953: 0xC480, - 10954: 0xC494, - 10955: 0xC49C, - 10956: 0xC4B8, - 10957: 0xC4BC, - 10958: 0xC4E9, - 10959: 0xC4F0, - 10960: 0xC4F1, - 10961: 0xC4F4, - 10962: 0xC4F8, - 10963: 0xC4FA, - 10964: 0xC4FF, - 10965: 0xC500, - 10966: 0xC501, - 10967: 0xC50C, - 10968: 0xC510, - 10969: 0xC514, - 10970: 0xC51C, - 10971: 0xC528, - 10972: 0xC529, - 10973: 0xC52C, - 10974: 0xC530, - 10975: 0xC538, - 10976: 0xC539, - 10977: 0xC53B, - 10978: 0xC53D, - 10979: 0xC544, - 10980: 0xC545, - 10981: 0xC548, - 10982: 0xC549, - 10983: 0xC54A, - 10984: 0xC54C, - 10985: 0xC54D, - 10986: 0xC54E, - 10987: 0xC553, - 10988: 0xC554, - 10989: 0xC555, - 10990: 0xC557, - 10991: 0xC558, - 10992: 0xC559, - 10993: 0xC55D, - 10994: 0xC55E, - 10995: 0xC560, - 10996: 0xC561, - 10997: 0xC564, - 10998: 0xC568, - 10999: 0xC570, - 11000: 0xC571, - 11001: 0xC573, - 11002: 0xC574, - 11003: 0xC575, - 11004: 0xC57C, - 11005: 0xC57D, - 11006: 0xC580, - 11007: 0xC584, - 11008: 0xC587, - 11009: 0xC58C, - 11010: 0xC58D, - 11011: 0xC58F, - 11012: 0xC591, - 11013: 0xC595, - 11014: 0xC597, - 11015: 0xC598, - 11016: 0xC59C, - 11017: 0xC5A0, - 11018: 0xC5A9, - 11019: 0xC5B4, - 11020: 0xC5B5, - 11021: 0xC5B8, - 11022: 0xC5B9, - 11023: 0xC5BB, - 11024: 0xC5BC, - 11025: 0xC5BD, - 11026: 0xC5BE, - 11027: 0xC5C4, - 11028: 0xC5C5, - 11029: 0xC5C6, - 11030: 0xC5C7, - 11031: 0xC5C8, - 11032: 0xC5C9, - 11033: 0xC5CA, - 11034: 0xC5CC, - 11035: 0xC5CE, - 11036: 0xD49E, - 11037: 0xD49F, - 11038: 0xD4A0, - 11039: 0xD4A1, - 11040: 0xD4A2, - 11041: 0xD4A3, - 11042: 0xD4A4, - 11043: 0xD4A5, - 11044: 0xD4A6, - 11045: 0xD4A7, - 11046: 0xD4A8, - 11047: 0xD4AA, - 11048: 0xD4AB, - 11049: 0xD4AC, - 11050: 0xD4AD, - 11051: 0xD4AE, - 11052: 0xD4AF, - 11053: 0xD4B0, - 11054: 0xD4B1, - 11055: 0xD4B2, - 11056: 0xD4B3, - 11057: 0xD4B4, - 11058: 0xD4B5, - 11059: 0xD4B6, - 11060: 0xD4B7, - 11061: 0xD4B8, - 11062: 0xD4B9, - 11063: 0xD4BA, - 11064: 0xD4BB, - 11065: 0xD4BC, - 11066: 0xD4BD, - 11067: 0xD4BE, - 11068: 0xD4BF, - 11069: 0xD4C0, - 11070: 0xD4C1, - 11071: 0xD4C2, - 11072: 0xD4C3, - 11073: 0xD4C4, - 11074: 0xD4C5, - 11075: 0xD4C6, - 11076: 0xD4C7, - 11077: 0xD4C8, - 11078: 0xD4C9, - 11079: 0xD4CA, - 11080: 0xD4CB, - 11081: 0xD4CD, - 11082: 0xD4CE, - 11083: 0xD4CF, - 11084: 0xD4D1, - 11085: 0xD4D2, - 11086: 0xD4D3, - 11087: 0xD4D5, - 11088: 0xD4D6, - 11089: 0xD4D7, - 11090: 0xD4D8, - 11091: 0xD4D9, - 11092: 0xD4DA, - 11093: 0xD4DB, - 11094: 0xD4DD, - 11095: 0xD4DE, - 11096: 0xD4E0, - 11097: 0xD4E1, - 11098: 0xD4E2, - 11099: 0xD4E3, - 11100: 0xD4E4, - 11101: 0xD4E5, - 11102: 0xD4E6, - 11103: 0xD4E7, - 11104: 0xD4E9, - 11105: 0xD4EA, - 11106: 0xD4EB, - 11107: 0xD4ED, - 11108: 0xD4EE, - 11109: 0xD4EF, - 11110: 0xD4F1, - 11111: 0xD4F2, - 11112: 0xD4F3, - 11113: 0xD4F4, - 11114: 0xD4F5, - 11115: 0xD4F6, - 11116: 0xD4F7, - 11117: 0xD4F9, - 11118: 0xD4FA, - 11119: 0xD4FC, - 11120: 0xC5D0, - 11121: 0xC5D1, - 11122: 0xC5D4, - 11123: 0xC5D8, - 11124: 0xC5E0, - 11125: 0xC5E1, - 11126: 0xC5E3, - 11127: 0xC5E5, - 11128: 0xC5EC, - 11129: 0xC5ED, - 11130: 0xC5EE, - 11131: 0xC5F0, - 11132: 0xC5F4, - 11133: 0xC5F6, - 11134: 0xC5F7, - 11135: 0xC5FC, - 11136: 0xC5FD, - 11137: 0xC5FE, - 11138: 0xC5FF, - 11139: 0xC600, - 11140: 0xC601, - 11141: 0xC605, - 11142: 0xC606, - 11143: 0xC607, - 11144: 0xC608, - 11145: 0xC60C, - 11146: 0xC610, - 11147: 0xC618, - 11148: 0xC619, - 11149: 0xC61B, - 11150: 0xC61C, - 11151: 0xC624, - 11152: 0xC625, - 11153: 0xC628, - 11154: 0xC62C, - 11155: 0xC62D, - 11156: 0xC62E, - 11157: 0xC630, - 11158: 0xC633, - 11159: 0xC634, - 11160: 0xC635, - 11161: 0xC637, - 11162: 0xC639, - 11163: 0xC63B, - 11164: 0xC640, - 11165: 0xC641, - 11166: 0xC644, - 11167: 0xC648, - 11168: 0xC650, - 11169: 0xC651, - 11170: 0xC653, - 11171: 0xC654, - 11172: 0xC655, - 11173: 0xC65C, - 11174: 0xC65D, - 11175: 0xC660, - 11176: 0xC66C, - 11177: 0xC66F, - 11178: 0xC671, - 11179: 0xC678, - 11180: 0xC679, - 11181: 0xC67C, - 11182: 0xC680, - 11183: 0xC688, - 11184: 0xC689, - 11185: 0xC68B, - 11186: 0xC68D, - 11187: 0xC694, - 11188: 0xC695, - 11189: 0xC698, - 11190: 0xC69C, - 11191: 0xC6A4, - 11192: 0xC6A5, - 11193: 0xC6A7, - 11194: 0xC6A9, - 11195: 0xC6B0, - 11196: 0xC6B1, - 11197: 0xC6B4, - 11198: 0xC6B8, - 11199: 0xC6B9, - 11200: 0xC6BA, - 11201: 0xC6C0, - 11202: 0xC6C1, - 11203: 0xC6C3, - 11204: 0xC6C5, - 11205: 0xC6CC, - 11206: 0xC6CD, - 11207: 0xC6D0, - 11208: 0xC6D4, - 11209: 0xC6DC, - 11210: 0xC6DD, - 11211: 0xC6E0, - 11212: 0xC6E1, - 11213: 0xC6E8, - 11214: 0xD4FE, - 11215: 0xD4FF, - 11216: 0xD500, - 11217: 0xD501, - 11218: 0xD502, - 11219: 0xD503, - 11220: 0xD505, - 11221: 0xD506, - 11222: 0xD507, - 11223: 0xD509, - 11224: 0xD50A, - 11225: 0xD50B, - 11226: 0xD50D, - 11227: 0xD50E, - 11228: 0xD50F, - 11229: 0xD510, - 11230: 0xD511, - 11231: 0xD512, - 11232: 0xD513, - 11233: 0xD516, - 11234: 0xD518, - 11235: 0xD519, - 11236: 0xD51A, - 11237: 0xD51B, - 11238: 0xD51C, - 11239: 0xD51D, - 11240: 0xD51E, - 11241: 0xD51F, - 11242: 0xD520, - 11243: 0xD521, - 11244: 0xD522, - 11245: 0xD523, - 11246: 0xD524, - 11247: 0xD525, - 11248: 0xD526, - 11249: 0xD527, - 11250: 0xD528, - 11251: 0xD529, - 11252: 0xD52A, - 11253: 0xD52B, - 11254: 0xD52C, - 11255: 0xD52D, - 11256: 0xD52E, - 11257: 0xD52F, - 11258: 0xD530, - 11259: 0xD531, - 11260: 0xD532, - 11261: 0xD533, - 11262: 0xD534, - 11263: 0xD535, - 11264: 0xD536, - 11265: 0xD537, - 11266: 0xD538, - 11267: 0xD539, - 11268: 0xD53A, - 11269: 0xD53B, - 11270: 0xD53E, - 11271: 0xD53F, - 11272: 0xD541, - 11273: 0xD542, - 11274: 0xD543, - 11275: 0xD545, - 11276: 0xD546, - 11277: 0xD547, - 11278: 0xD548, - 11279: 0xD549, - 11280: 0xD54A, - 11281: 0xD54B, - 11282: 0xD54E, - 11283: 0xD550, - 11284: 0xD552, - 11285: 0xD553, - 11286: 0xD554, - 11287: 0xD555, - 11288: 0xD556, - 11289: 0xD557, - 11290: 0xD55A, - 11291: 0xD55B, - 11292: 0xD55D, - 11293: 0xD55E, - 11294: 0xD55F, - 11295: 0xD561, - 11296: 0xD562, - 11297: 0xD563, - 11298: 0xC6E9, - 11299: 0xC6EC, - 11300: 0xC6F0, - 11301: 0xC6F8, - 11302: 0xC6F9, - 11303: 0xC6FD, - 11304: 0xC704, - 11305: 0xC705, - 11306: 0xC708, - 11307: 0xC70C, - 11308: 0xC714, - 11309: 0xC715, - 11310: 0xC717, - 11311: 0xC719, - 11312: 0xC720, - 11313: 0xC721, - 11314: 0xC724, - 11315: 0xC728, - 11316: 0xC730, - 11317: 0xC731, - 11318: 0xC733, - 11319: 0xC735, - 11320: 0xC737, - 11321: 0xC73C, - 11322: 0xC73D, - 11323: 0xC740, - 11324: 0xC744, - 11325: 0xC74A, - 11326: 0xC74C, - 11327: 0xC74D, - 11328: 0xC74F, - 11329: 0xC751, - 11330: 0xC752, - 11331: 0xC753, - 11332: 0xC754, - 11333: 0xC755, - 11334: 0xC756, - 11335: 0xC757, - 11336: 0xC758, - 11337: 0xC75C, - 11338: 0xC760, - 11339: 0xC768, - 11340: 0xC76B, - 11341: 0xC774, - 11342: 0xC775, - 11343: 0xC778, - 11344: 0xC77C, - 11345: 0xC77D, - 11346: 0xC77E, - 11347: 0xC783, - 11348: 0xC784, - 11349: 0xC785, - 11350: 0xC787, - 11351: 0xC788, - 11352: 0xC789, - 11353: 0xC78A, - 11354: 0xC78E, - 11355: 0xC790, - 11356: 0xC791, - 11357: 0xC794, - 11358: 0xC796, - 11359: 0xC797, - 11360: 0xC798, - 11361: 0xC79A, - 11362: 0xC7A0, - 11363: 0xC7A1, - 11364: 0xC7A3, - 11365: 0xC7A4, - 11366: 0xC7A5, - 11367: 0xC7A6, - 11368: 0xC7AC, - 11369: 0xC7AD, - 11370: 0xC7B0, - 11371: 0xC7B4, - 11372: 0xC7BC, - 11373: 0xC7BD, - 11374: 0xC7BF, - 11375: 0xC7C0, - 11376: 0xC7C1, - 11377: 0xC7C8, - 11378: 0xC7C9, - 11379: 0xC7CC, - 11380: 0xC7CE, - 11381: 0xC7D0, - 11382: 0xC7D8, - 11383: 0xC7DD, - 11384: 0xC7E4, - 11385: 0xC7E8, - 11386: 0xC7EC, - 11387: 0xC800, - 11388: 0xC801, - 11389: 0xC804, - 11390: 0xC808, - 11391: 0xC80A, - 11392: 0xD564, - 11393: 0xD566, - 11394: 0xD567, - 11395: 0xD56A, - 11396: 0xD56C, - 11397: 0xD56E, - 11398: 0xD56F, - 11399: 0xD570, - 11400: 0xD571, - 11401: 0xD572, - 11402: 0xD573, - 11403: 0xD576, - 11404: 0xD577, - 11405: 0xD579, - 11406: 0xD57A, - 11407: 0xD57B, - 11408: 0xD57D, - 11409: 0xD57E, - 11410: 0xD57F, - 11411: 0xD580, - 11412: 0xD581, - 11413: 0xD582, - 11414: 0xD583, - 11415: 0xD586, - 11416: 0xD58A, - 11417: 0xD58B, - 11418: 0xD58C, - 11419: 0xD58D, - 11420: 0xD58E, - 11421: 0xD58F, - 11422: 0xD591, - 11423: 0xD592, - 11424: 0xD593, - 11425: 0xD594, - 11426: 0xD595, - 11427: 0xD596, - 11428: 0xD597, - 11429: 0xD598, - 11430: 0xD599, - 11431: 0xD59A, - 11432: 0xD59B, - 11433: 0xD59C, - 11434: 0xD59D, - 11435: 0xD59E, - 11436: 0xD59F, - 11437: 0xD5A0, - 11438: 0xD5A1, - 11439: 0xD5A2, - 11440: 0xD5A3, - 11441: 0xD5A4, - 11442: 0xD5A6, - 11443: 0xD5A7, - 11444: 0xD5A8, - 11445: 0xD5A9, - 11446: 0xD5AA, - 11447: 0xD5AB, - 11448: 0xD5AC, - 11449: 0xD5AD, - 11450: 0xD5AE, - 11451: 0xD5AF, - 11452: 0xD5B0, - 11453: 0xD5B1, - 11454: 0xD5B2, - 11455: 0xD5B3, - 11456: 0xD5B4, - 11457: 0xD5B5, - 11458: 0xD5B6, - 11459: 0xD5B7, - 11460: 0xD5B8, - 11461: 0xD5B9, - 11462: 0xD5BA, - 11463: 0xD5BB, - 11464: 0xD5BC, - 11465: 0xD5BD, - 11466: 0xD5BE, - 11467: 0xD5BF, - 11468: 0xD5C0, - 11469: 0xD5C1, - 11470: 0xD5C2, - 11471: 0xD5C3, - 11472: 0xD5C4, - 11473: 0xD5C5, - 11474: 0xD5C6, - 11475: 0xD5C7, - 11476: 0xC810, - 11477: 0xC811, - 11478: 0xC813, - 11479: 0xC815, - 11480: 0xC816, - 11481: 0xC81C, - 11482: 0xC81D, - 11483: 0xC820, - 11484: 0xC824, - 11485: 0xC82C, - 11486: 0xC82D, - 11487: 0xC82F, - 11488: 0xC831, - 11489: 0xC838, - 11490: 0xC83C, - 11491: 0xC840, - 11492: 0xC848, - 11493: 0xC849, - 11494: 0xC84C, - 11495: 0xC84D, - 11496: 0xC854, - 11497: 0xC870, - 11498: 0xC871, - 11499: 0xC874, - 11500: 0xC878, - 11501: 0xC87A, - 11502: 0xC880, - 11503: 0xC881, - 11504: 0xC883, - 11505: 0xC885, - 11506: 0xC886, - 11507: 0xC887, - 11508: 0xC88B, - 11509: 0xC88C, - 11510: 0xC88D, - 11511: 0xC894, - 11512: 0xC89D, - 11513: 0xC89F, - 11514: 0xC8A1, - 11515: 0xC8A8, - 11516: 0xC8BC, - 11517: 0xC8BD, - 11518: 0xC8C4, - 11519: 0xC8C8, - 11520: 0xC8CC, - 11521: 0xC8D4, - 11522: 0xC8D5, - 11523: 0xC8D7, - 11524: 0xC8D9, - 11525: 0xC8E0, - 11526: 0xC8E1, - 11527: 0xC8E4, - 11528: 0xC8F5, - 11529: 0xC8FC, - 11530: 0xC8FD, - 11531: 0xC900, - 11532: 0xC904, - 11533: 0xC905, - 11534: 0xC906, - 11535: 0xC90C, - 11536: 0xC90D, - 11537: 0xC90F, - 11538: 0xC911, - 11539: 0xC918, - 11540: 0xC92C, - 11541: 0xC934, - 11542: 0xC950, - 11543: 0xC951, - 11544: 0xC954, - 11545: 0xC958, - 11546: 0xC960, - 11547: 0xC961, - 11548: 0xC963, - 11549: 0xC96C, - 11550: 0xC970, - 11551: 0xC974, - 11552: 0xC97C, - 11553: 0xC988, - 11554: 0xC989, - 11555: 0xC98C, - 11556: 0xC990, - 11557: 0xC998, - 11558: 0xC999, - 11559: 0xC99B, - 11560: 0xC99D, - 11561: 0xC9C0, - 11562: 0xC9C1, - 11563: 0xC9C4, - 11564: 0xC9C7, - 11565: 0xC9C8, - 11566: 0xC9CA, - 11567: 0xC9D0, - 11568: 0xC9D1, - 11569: 0xC9D3, - 11570: 0xD5CA, - 11571: 0xD5CB, - 11572: 0xD5CD, - 11573: 0xD5CE, - 11574: 0xD5CF, - 11575: 0xD5D1, - 11576: 0xD5D3, - 11577: 0xD5D4, - 11578: 0xD5D5, - 11579: 0xD5D6, - 11580: 0xD5D7, - 11581: 0xD5DA, - 11582: 0xD5DC, - 11583: 0xD5DE, - 11584: 0xD5DF, - 11585: 0xD5E0, - 11586: 0xD5E1, - 11587: 0xD5E2, - 11588: 0xD5E3, - 11589: 0xD5E6, - 11590: 0xD5E7, - 11591: 0xD5E9, - 11592: 0xD5EA, - 11593: 0xD5EB, - 11594: 0xD5ED, - 11595: 0xD5EE, - 11596: 0xD5EF, - 11597: 0xD5F0, - 11598: 0xD5F1, - 11599: 0xD5F2, - 11600: 0xD5F3, - 11601: 0xD5F6, - 11602: 0xD5F8, - 11603: 0xD5FA, - 11604: 0xD5FB, - 11605: 0xD5FC, - 11606: 0xD5FD, - 11607: 0xD5FE, - 11608: 0xD5FF, - 11609: 0xD602, - 11610: 0xD603, - 11611: 0xD605, - 11612: 0xD606, - 11613: 0xD607, - 11614: 0xD609, - 11615: 0xD60A, - 11616: 0xD60B, - 11617: 0xD60C, - 11618: 0xD60D, - 11619: 0xD60E, - 11620: 0xD60F, - 11621: 0xD612, - 11622: 0xD616, - 11623: 0xD617, - 11624: 0xD618, - 11625: 0xD619, - 11626: 0xD61A, - 11627: 0xD61B, - 11628: 0xD61D, - 11629: 0xD61E, - 11630: 0xD61F, - 11631: 0xD621, - 11632: 0xD622, - 11633: 0xD623, - 11634: 0xD625, - 11635: 0xD626, - 11636: 0xD627, - 11637: 0xD628, - 11638: 0xD629, - 11639: 0xD62A, - 11640: 0xD62B, - 11641: 0xD62C, - 11642: 0xD62E, - 11643: 0xD62F, - 11644: 0xD630, - 11645: 0xD631, - 11646: 0xD632, - 11647: 0xD633, - 11648: 0xD634, - 11649: 0xD635, - 11650: 0xD636, - 11651: 0xD637, - 11652: 0xD63A, - 11653: 0xD63B, - 11654: 0xC9D5, - 11655: 0xC9D6, - 11656: 0xC9D9, - 11657: 0xC9DA, - 11658: 0xC9DC, - 11659: 0xC9DD, - 11660: 0xC9E0, - 11661: 0xC9E2, - 11662: 0xC9E4, - 11663: 0xC9E7, - 11664: 0xC9EC, - 11665: 0xC9ED, - 11666: 0xC9EF, - 11667: 0xC9F0, - 11668: 0xC9F1, - 11669: 0xC9F8, - 11670: 0xC9F9, - 11671: 0xC9FC, - 11672: 0xCA00, - 11673: 0xCA08, - 11674: 0xCA09, - 11675: 0xCA0B, - 11676: 0xCA0C, - 11677: 0xCA0D, - 11678: 0xCA14, - 11679: 0xCA18, - 11680: 0xCA29, - 11681: 0xCA4C, - 11682: 0xCA4D, - 11683: 0xCA50, - 11684: 0xCA54, - 11685: 0xCA5C, - 11686: 0xCA5D, - 11687: 0xCA5F, - 11688: 0xCA60, - 11689: 0xCA61, - 11690: 0xCA68, - 11691: 0xCA7D, - 11692: 0xCA84, - 11693: 0xCA98, - 11694: 0xCABC, - 11695: 0xCABD, - 11696: 0xCAC0, - 11697: 0xCAC4, - 11698: 0xCACC, - 11699: 0xCACD, - 11700: 0xCACF, - 11701: 0xCAD1, - 11702: 0xCAD3, - 11703: 0xCAD8, - 11704: 0xCAD9, - 11705: 0xCAE0, - 11706: 0xCAEC, - 11707: 0xCAF4, - 11708: 0xCB08, - 11709: 0xCB10, - 11710: 0xCB14, - 11711: 0xCB18, - 11712: 0xCB20, - 11713: 0xCB21, - 11714: 0xCB41, - 11715: 0xCB48, - 11716: 0xCB49, - 11717: 0xCB4C, - 11718: 0xCB50, - 11719: 0xCB58, - 11720: 0xCB59, - 11721: 0xCB5D, - 11722: 0xCB64, - 11723: 0xCB78, - 11724: 0xCB79, - 11725: 0xCB9C, - 11726: 0xCBB8, - 11727: 0xCBD4, - 11728: 0xCBE4, - 11729: 0xCBE7, - 11730: 0xCBE9, - 11731: 0xCC0C, - 11732: 0xCC0D, - 11733: 0xCC10, - 11734: 0xCC14, - 11735: 0xCC1C, - 11736: 0xCC1D, - 11737: 0xCC21, - 11738: 0xCC22, - 11739: 0xCC27, - 11740: 0xCC28, - 11741: 0xCC29, - 11742: 0xCC2C, - 11743: 0xCC2E, - 11744: 0xCC30, - 11745: 0xCC38, - 11746: 0xCC39, - 11747: 0xCC3B, - 11748: 0xD63D, - 11749: 0xD63E, - 11750: 0xD63F, - 11751: 0xD641, - 11752: 0xD642, - 11753: 0xD643, - 11754: 0xD644, - 11755: 0xD646, - 11756: 0xD647, - 11757: 0xD64A, - 11758: 0xD64C, - 11759: 0xD64E, - 11760: 0xD64F, - 11761: 0xD650, - 11762: 0xD652, - 11763: 0xD653, - 11764: 0xD656, - 11765: 0xD657, - 11766: 0xD659, - 11767: 0xD65A, - 11768: 0xD65B, - 11769: 0xD65D, - 11770: 0xD65E, - 11771: 0xD65F, - 11772: 0xD660, - 11773: 0xD661, - 11774: 0xD662, - 11775: 0xD663, - 11776: 0xD664, - 11777: 0xD665, - 11778: 0xD666, - 11779: 0xD668, - 11780: 0xD66A, - 11781: 0xD66B, - 11782: 0xD66C, - 11783: 0xD66D, - 11784: 0xD66E, - 11785: 0xD66F, - 11786: 0xD672, - 11787: 0xD673, - 11788: 0xD675, - 11789: 0xD676, - 11790: 0xD677, - 11791: 0xD678, - 11792: 0xD679, - 11793: 0xD67A, - 11794: 0xD67B, - 11795: 0xD67C, - 11796: 0xD67D, - 11797: 0xD67E, - 11798: 0xD67F, - 11799: 0xD680, - 11800: 0xD681, - 11801: 0xD682, - 11802: 0xD684, - 11803: 0xD686, - 11804: 0xD687, - 11805: 0xD688, - 11806: 0xD689, - 11807: 0xD68A, - 11808: 0xD68B, - 11809: 0xD68E, - 11810: 0xD68F, - 11811: 0xD691, - 11812: 0xD692, - 11813: 0xD693, - 11814: 0xD695, - 11815: 0xD696, - 11816: 0xD697, - 11817: 0xD698, - 11818: 0xD699, - 11819: 0xD69A, - 11820: 0xD69B, - 11821: 0xD69C, - 11822: 0xD69E, - 11823: 0xD6A0, - 11824: 0xD6A2, - 11825: 0xD6A3, - 11826: 0xD6A4, - 11827: 0xD6A5, - 11828: 0xD6A6, - 11829: 0xD6A7, - 11830: 0xD6A9, - 11831: 0xD6AA, - 11832: 0xCC3C, - 11833: 0xCC3D, - 11834: 0xCC3E, - 11835: 0xCC44, - 11836: 0xCC45, - 11837: 0xCC48, - 11838: 0xCC4C, - 11839: 0xCC54, - 11840: 0xCC55, - 11841: 0xCC57, - 11842: 0xCC58, - 11843: 0xCC59, - 11844: 0xCC60, - 11845: 0xCC64, - 11846: 0xCC66, - 11847: 0xCC68, - 11848: 0xCC70, - 11849: 0xCC75, - 11850: 0xCC98, - 11851: 0xCC99, - 11852: 0xCC9C, - 11853: 0xCCA0, - 11854: 0xCCA8, - 11855: 0xCCA9, - 11856: 0xCCAB, - 11857: 0xCCAC, - 11858: 0xCCAD, - 11859: 0xCCB4, - 11860: 0xCCB5, - 11861: 0xCCB8, - 11862: 0xCCBC, - 11863: 0xCCC4, - 11864: 0xCCC5, - 11865: 0xCCC7, - 11866: 0xCCC9, - 11867: 0xCCD0, - 11868: 0xCCD4, - 11869: 0xCCE4, - 11870: 0xCCEC, - 11871: 0xCCF0, - 11872: 0xCD01, - 11873: 0xCD08, - 11874: 0xCD09, - 11875: 0xCD0C, - 11876: 0xCD10, - 11877: 0xCD18, - 11878: 0xCD19, - 11879: 0xCD1B, - 11880: 0xCD1D, - 11881: 0xCD24, - 11882: 0xCD28, - 11883: 0xCD2C, - 11884: 0xCD39, - 11885: 0xCD5C, - 11886: 0xCD60, - 11887: 0xCD64, - 11888: 0xCD6C, - 11889: 0xCD6D, - 11890: 0xCD6F, - 11891: 0xCD71, - 11892: 0xCD78, - 11893: 0xCD88, - 11894: 0xCD94, - 11895: 0xCD95, - 11896: 0xCD98, - 11897: 0xCD9C, - 11898: 0xCDA4, - 11899: 0xCDA5, - 11900: 0xCDA7, - 11901: 0xCDA9, - 11902: 0xCDB0, - 11903: 0xCDC4, - 11904: 0xCDCC, - 11905: 0xCDD0, - 11906: 0xCDE8, - 11907: 0xCDEC, - 11908: 0xCDF0, - 11909: 0xCDF8, - 11910: 0xCDF9, - 11911: 0xCDFB, - 11912: 0xCDFD, - 11913: 0xCE04, - 11914: 0xCE08, - 11915: 0xCE0C, - 11916: 0xCE14, - 11917: 0xCE19, - 11918: 0xCE20, - 11919: 0xCE21, - 11920: 0xCE24, - 11921: 0xCE28, - 11922: 0xCE30, - 11923: 0xCE31, - 11924: 0xCE33, - 11925: 0xCE35, - 11926: 0xD6AB, - 11927: 0xD6AD, - 11928: 0xD6AE, - 11929: 0xD6AF, - 11930: 0xD6B1, - 11931: 0xD6B2, - 11932: 0xD6B3, - 11933: 0xD6B4, - 11934: 0xD6B5, - 11935: 0xD6B6, - 11936: 0xD6B7, - 11937: 0xD6B8, - 11938: 0xD6BA, - 11939: 0xD6BC, - 11940: 0xD6BD, - 11941: 0xD6BE, - 11942: 0xD6BF, - 11943: 0xD6C0, - 11944: 0xD6C1, - 11945: 0xD6C2, - 11946: 0xD6C3, - 11947: 0xD6C6, - 11948: 0xD6C7, - 11949: 0xD6C9, - 11950: 0xD6CA, - 11951: 0xD6CB, - 11952: 0xD6CD, - 11953: 0xD6CE, - 11954: 0xD6CF, - 11955: 0xD6D0, - 11956: 0xD6D2, - 11957: 0xD6D3, - 11958: 0xD6D5, - 11959: 0xD6D6, - 11960: 0xD6D8, - 11961: 0xD6DA, - 11962: 0xD6DB, - 11963: 0xD6DC, - 11964: 0xD6DD, - 11965: 0xD6DE, - 11966: 0xD6DF, - 11967: 0xD6E1, - 11968: 0xD6E2, - 11969: 0xD6E3, - 11970: 0xD6E5, - 11971: 0xD6E6, - 11972: 0xD6E7, - 11973: 0xD6E9, - 11974: 0xD6EA, - 11975: 0xD6EB, - 11976: 0xD6EC, - 11977: 0xD6ED, - 11978: 0xD6EE, - 11979: 0xD6EF, - 11980: 0xD6F1, - 11981: 0xD6F2, - 11982: 0xD6F3, - 11983: 0xD6F4, - 11984: 0xD6F6, - 11985: 0xD6F7, - 11986: 0xD6F8, - 11987: 0xD6F9, - 11988: 0xD6FA, - 11989: 0xD6FB, - 11990: 0xD6FE, - 11991: 0xD6FF, - 11992: 0xD701, - 11993: 0xD702, - 11994: 0xD703, - 11995: 0xD705, - 11996: 0xD706, - 11997: 0xD707, - 11998: 0xD708, - 11999: 0xD709, - 12000: 0xD70A, - 12001: 0xD70B, - 12002: 0xD70C, - 12003: 0xD70D, - 12004: 0xD70E, - 12005: 0xD70F, - 12006: 0xD710, - 12007: 0xD712, - 12008: 0xD713, - 12009: 0xD714, - 12010: 0xCE58, - 12011: 0xCE59, - 12012: 0xCE5C, - 12013: 0xCE5F, - 12014: 0xCE60, - 12015: 0xCE61, - 12016: 0xCE68, - 12017: 0xCE69, - 12018: 0xCE6B, - 12019: 0xCE6D, - 12020: 0xCE74, - 12021: 0xCE75, - 12022: 0xCE78, - 12023: 0xCE7C, - 12024: 0xCE84, - 12025: 0xCE85, - 12026: 0xCE87, - 12027: 0xCE89, - 12028: 0xCE90, - 12029: 0xCE91, - 12030: 0xCE94, - 12031: 0xCE98, - 12032: 0xCEA0, - 12033: 0xCEA1, - 12034: 0xCEA3, - 12035: 0xCEA4, - 12036: 0xCEA5, - 12037: 0xCEAC, - 12038: 0xCEAD, - 12039: 0xCEC1, - 12040: 0xCEE4, - 12041: 0xCEE5, - 12042: 0xCEE8, - 12043: 0xCEEB, - 12044: 0xCEEC, - 12045: 0xCEF4, - 12046: 0xCEF5, - 12047: 0xCEF7, - 12048: 0xCEF8, - 12049: 0xCEF9, - 12050: 0xCF00, - 12051: 0xCF01, - 12052: 0xCF04, - 12053: 0xCF08, - 12054: 0xCF10, - 12055: 0xCF11, - 12056: 0xCF13, - 12057: 0xCF15, - 12058: 0xCF1C, - 12059: 0xCF20, - 12060: 0xCF24, - 12061: 0xCF2C, - 12062: 0xCF2D, - 12063: 0xCF2F, - 12064: 0xCF30, - 12065: 0xCF31, - 12066: 0xCF38, - 12067: 0xCF54, - 12068: 0xCF55, - 12069: 0xCF58, - 12070: 0xCF5C, - 12071: 0xCF64, - 12072: 0xCF65, - 12073: 0xCF67, - 12074: 0xCF69, - 12075: 0xCF70, - 12076: 0xCF71, - 12077: 0xCF74, - 12078: 0xCF78, - 12079: 0xCF80, - 12080: 0xCF85, - 12081: 0xCF8C, - 12082: 0xCFA1, - 12083: 0xCFA8, - 12084: 0xCFB0, - 12085: 0xCFC4, - 12086: 0xCFE0, - 12087: 0xCFE1, - 12088: 0xCFE4, - 12089: 0xCFE8, - 12090: 0xCFF0, - 12091: 0xCFF1, - 12092: 0xCFF3, - 12093: 0xCFF5, - 12094: 0xCFFC, - 12095: 0xD000, - 12096: 0xD004, - 12097: 0xD011, - 12098: 0xD018, - 12099: 0xD02D, - 12100: 0xD034, - 12101: 0xD035, - 12102: 0xD038, - 12103: 0xD03C, - 12104: 0xD715, - 12105: 0xD716, - 12106: 0xD717, - 12107: 0xD71A, - 12108: 0xD71B, - 12109: 0xD71D, - 12110: 0xD71E, - 12111: 0xD71F, - 12112: 0xD721, - 12113: 0xD722, - 12114: 0xD723, - 12115: 0xD724, - 12116: 0xD725, - 12117: 0xD726, - 12118: 0xD727, - 12119: 0xD72A, - 12120: 0xD72C, - 12121: 0xD72E, - 12122: 0xD72F, - 12123: 0xD730, - 12124: 0xD731, - 12125: 0xD732, - 12126: 0xD733, - 12127: 0xD736, - 12128: 0xD737, - 12129: 0xD739, - 12130: 0xD73A, - 12131: 0xD73B, - 12132: 0xD73D, - 12133: 0xD73E, - 12134: 0xD73F, - 12135: 0xD740, - 12136: 0xD741, - 12137: 0xD742, - 12138: 0xD743, - 12139: 0xD745, - 12140: 0xD746, - 12141: 0xD748, - 12142: 0xD74A, - 12143: 0xD74B, - 12144: 0xD74C, - 12145: 0xD74D, - 12146: 0xD74E, - 12147: 0xD74F, - 12148: 0xD752, - 12149: 0xD753, - 12150: 0xD755, - 12151: 0xD75A, - 12152: 0xD75B, - 12153: 0xD75C, - 12154: 0xD75D, - 12155: 0xD75E, - 12156: 0xD75F, - 12157: 0xD762, - 12158: 0xD764, - 12159: 0xD766, - 12160: 0xD767, - 12161: 0xD768, - 12162: 0xD76A, - 12163: 0xD76B, - 12164: 0xD76D, - 12165: 0xD76E, - 12166: 0xD76F, - 12167: 0xD771, - 12168: 0xD772, - 12169: 0xD773, - 12170: 0xD775, - 12171: 0xD776, - 12172: 0xD777, - 12173: 0xD778, - 12174: 0xD779, - 12175: 0xD77A, - 12176: 0xD77B, - 12177: 0xD77E, - 12178: 0xD77F, - 12179: 0xD780, - 12180: 0xD782, - 12181: 0xD783, - 12182: 0xD784, - 12183: 0xD785, - 12184: 0xD786, - 12185: 0xD787, - 12186: 0xD78A, - 12187: 0xD78B, - 12188: 0xD044, - 12189: 0xD045, - 12190: 0xD047, - 12191: 0xD049, - 12192: 0xD050, - 12193: 0xD054, - 12194: 0xD058, - 12195: 0xD060, - 12196: 0xD06C, - 12197: 0xD06D, - 12198: 0xD070, - 12199: 0xD074, - 12200: 0xD07C, - 12201: 0xD07D, - 12202: 0xD081, - 12203: 0xD0A4, - 12204: 0xD0A5, - 12205: 0xD0A8, - 12206: 0xD0AC, - 12207: 0xD0B4, - 12208: 0xD0B5, - 12209: 0xD0B7, - 12210: 0xD0B9, - 12211: 0xD0C0, - 12212: 0xD0C1, - 12213: 0xD0C4, - 12214: 0xD0C8, - 12215: 0xD0C9, - 12216: 0xD0D0, - 12217: 0xD0D1, - 12218: 0xD0D3, - 12219: 0xD0D4, - 12220: 0xD0D5, - 12221: 0xD0DC, - 12222: 0xD0DD, - 12223: 0xD0E0, - 12224: 0xD0E4, - 12225: 0xD0EC, - 12226: 0xD0ED, - 12227: 0xD0EF, - 12228: 0xD0F0, - 12229: 0xD0F1, - 12230: 0xD0F8, - 12231: 0xD10D, - 12232: 0xD130, - 12233: 0xD131, - 12234: 0xD134, - 12235: 0xD138, - 12236: 0xD13A, - 12237: 0xD140, - 12238: 0xD141, - 12239: 0xD143, - 12240: 0xD144, - 12241: 0xD145, - 12242: 0xD14C, - 12243: 0xD14D, - 12244: 0xD150, - 12245: 0xD154, - 12246: 0xD15C, - 12247: 0xD15D, - 12248: 0xD15F, - 12249: 0xD161, - 12250: 0xD168, - 12251: 0xD16C, - 12252: 0xD17C, - 12253: 0xD184, - 12254: 0xD188, - 12255: 0xD1A0, - 12256: 0xD1A1, - 12257: 0xD1A4, - 12258: 0xD1A8, - 12259: 0xD1B0, - 12260: 0xD1B1, - 12261: 0xD1B3, - 12262: 0xD1B5, - 12263: 0xD1BA, - 12264: 0xD1BC, - 12265: 0xD1C0, - 12266: 0xD1D8, - 12267: 0xD1F4, - 12268: 0xD1F8, - 12269: 0xD207, - 12270: 0xD209, - 12271: 0xD210, - 12272: 0xD22C, - 12273: 0xD22D, - 12274: 0xD230, - 12275: 0xD234, - 12276: 0xD23C, - 12277: 0xD23D, - 12278: 0xD23F, - 12279: 0xD241, - 12280: 0xD248, - 12281: 0xD25C, - 12282: 0xD78D, - 12283: 0xD78E, - 12284: 0xD78F, - 12285: 0xD791, - 12286: 0xD792, - 12287: 0xD793, - 12288: 0xD794, - 12289: 0xD795, - 12290: 0xD796, - 12291: 0xD797, - 12292: 0xD79A, - 12293: 0xD79C, - 12294: 0xD79E, - 12295: 0xD79F, - 12296: 0xD7A0, - 12297: 0xD7A1, - 12298: 0xD7A2, - 12299: 0xD7A3, - 12366: 0xD264, - 12367: 0xD280, - 12368: 0xD281, - 12369: 0xD284, - 12370: 0xD288, - 12371: 0xD290, - 12372: 0xD291, - 12373: 0xD295, - 12374: 0xD29C, - 12375: 0xD2A0, - 12376: 0xD2A4, - 12377: 0xD2AC, - 12378: 0xD2B1, - 12379: 0xD2B8, - 12380: 0xD2B9, - 12381: 0xD2BC, - 12382: 0xD2BF, - 12383: 0xD2C0, - 12384: 0xD2C2, - 12385: 0xD2C8, - 12386: 0xD2C9, - 12387: 0xD2CB, - 12388: 0xD2D4, - 12389: 0xD2D8, - 12390: 0xD2DC, - 12391: 0xD2E4, - 12392: 0xD2E5, - 12393: 0xD2F0, - 12394: 0xD2F1, - 12395: 0xD2F4, - 12396: 0xD2F8, - 12397: 0xD300, - 12398: 0xD301, - 12399: 0xD303, - 12400: 0xD305, - 12401: 0xD30C, - 12402: 0xD30D, - 12403: 0xD30E, - 12404: 0xD310, - 12405: 0xD314, - 12406: 0xD316, - 12407: 0xD31C, - 12408: 0xD31D, - 12409: 0xD31F, - 12410: 0xD320, - 12411: 0xD321, - 12412: 0xD325, - 12413: 0xD328, - 12414: 0xD329, - 12415: 0xD32C, - 12416: 0xD330, - 12417: 0xD338, - 12418: 0xD339, - 12419: 0xD33B, - 12420: 0xD33C, - 12421: 0xD33D, - 12422: 0xD344, - 12423: 0xD345, - 12424: 0xD37C, - 12425: 0xD37D, - 12426: 0xD380, - 12427: 0xD384, - 12428: 0xD38C, - 12429: 0xD38D, - 12430: 0xD38F, - 12431: 0xD390, - 12432: 0xD391, - 12433: 0xD398, - 12434: 0xD399, - 12435: 0xD39C, - 12436: 0xD3A0, - 12437: 0xD3A8, - 12438: 0xD3A9, - 12439: 0xD3AB, - 12440: 0xD3AD, - 12441: 0xD3B4, - 12442: 0xD3B8, - 12443: 0xD3BC, - 12444: 0xD3C4, - 12445: 0xD3C5, - 12446: 0xD3C8, - 12447: 0xD3C9, - 12448: 0xD3D0, - 12449: 0xD3D8, - 12450: 0xD3E1, - 12451: 0xD3E3, - 12452: 0xD3EC, - 12453: 0xD3ED, - 12454: 0xD3F0, - 12455: 0xD3F4, - 12456: 0xD3FC, - 12457: 0xD3FD, - 12458: 0xD3FF, - 12459: 0xD401, - 12460: 0xD408, - 12461: 0xD41D, - 12462: 0xD440, - 12463: 0xD444, - 12464: 0xD45C, - 12465: 0xD460, - 12466: 0xD464, - 12467: 0xD46D, - 12468: 0xD46F, - 12469: 0xD478, - 12470: 0xD479, - 12471: 0xD47C, - 12472: 0xD47F, - 12473: 0xD480, - 12474: 0xD482, - 12475: 0xD488, - 12476: 0xD489, - 12477: 0xD48B, - 12478: 0xD48D, - 12479: 0xD494, - 12480: 0xD4A9, - 12481: 0xD4CC, - 12482: 0xD4D0, - 12483: 0xD4D4, - 12484: 0xD4DC, - 12485: 0xD4DF, - 12486: 0xD4E8, - 12487: 0xD4EC, - 12488: 0xD4F0, - 12489: 0xD4F8, - 12490: 0xD4FB, - 12491: 0xD4FD, - 12492: 0xD504, - 12493: 0xD508, - 12494: 0xD50C, - 12495: 0xD514, - 12496: 0xD515, - 12497: 0xD517, - 12498: 0xD53C, - 12499: 0xD53D, - 12500: 0xD540, - 12501: 0xD544, - 12502: 0xD54C, - 12503: 0xD54D, - 12504: 0xD54F, - 12505: 0xD551, - 12506: 0xD558, - 12507: 0xD559, - 12508: 0xD55C, - 12509: 0xD560, - 12510: 0xD565, - 12511: 0xD568, - 12512: 0xD569, - 12513: 0xD56B, - 12514: 0xD56D, - 12515: 0xD574, - 12516: 0xD575, - 12517: 0xD578, - 12518: 0xD57C, - 12519: 0xD584, - 12520: 0xD585, - 12521: 0xD587, - 12522: 0xD588, - 12523: 0xD589, - 12524: 0xD590, - 12525: 0xD5A5, - 12526: 0xD5C8, - 12527: 0xD5C9, - 12528: 0xD5CC, - 12529: 0xD5D0, - 12530: 0xD5D2, - 12531: 0xD5D8, - 12532: 0xD5D9, - 12533: 0xD5DB, - 12534: 0xD5DD, - 12535: 0xD5E4, - 12536: 0xD5E5, - 12537: 0xD5E8, - 12538: 0xD5EC, - 12539: 0xD5F4, - 12540: 0xD5F5, - 12541: 0xD5F7, - 12542: 0xD5F9, - 12543: 0xD600, - 12544: 0xD601, - 12545: 0xD604, - 12546: 0xD608, - 12547: 0xD610, - 12548: 0xD611, - 12549: 0xD613, - 12550: 0xD614, - 12551: 0xD615, - 12552: 0xD61C, - 12553: 0xD620, - 12554: 0xD624, - 12555: 0xD62D, - 12556: 0xD638, - 12557: 0xD639, - 12558: 0xD63C, - 12559: 0xD640, - 12560: 0xD645, - 12561: 0xD648, - 12562: 0xD649, - 12563: 0xD64B, - 12564: 0xD64D, - 12565: 0xD651, - 12566: 0xD654, - 12567: 0xD655, - 12568: 0xD658, - 12569: 0xD65C, - 12570: 0xD667, - 12571: 0xD669, - 12572: 0xD670, - 12573: 0xD671, - 12574: 0xD674, - 12575: 0xD683, - 12576: 0xD685, - 12577: 0xD68C, - 12578: 0xD68D, - 12579: 0xD690, - 12580: 0xD694, - 12581: 0xD69D, - 12582: 0xD69F, - 12583: 0xD6A1, - 12584: 0xD6A8, - 12585: 0xD6AC, - 12586: 0xD6B0, - 12587: 0xD6B9, - 12588: 0xD6BB, - 12589: 0xD6C4, - 12590: 0xD6C5, - 12591: 0xD6C8, - 12592: 0xD6CC, - 12593: 0xD6D1, - 12594: 0xD6D4, - 12595: 0xD6D7, - 12596: 0xD6D9, - 12597: 0xD6E0, - 12598: 0xD6E4, - 12599: 0xD6E8, - 12600: 0xD6F0, - 12601: 0xD6F5, - 12602: 0xD6FC, - 12603: 0xD6FD, - 12604: 0xD700, - 12605: 0xD704, - 12606: 0xD711, - 12607: 0xD718, - 12608: 0xD719, - 12609: 0xD71C, - 12610: 0xD720, - 12611: 0xD728, - 12612: 0xD729, - 12613: 0xD72B, - 12614: 0xD72D, - 12615: 0xD734, - 12616: 0xD735, - 12617: 0xD738, - 12618: 0xD73C, - 12619: 0xD744, - 12620: 0xD747, - 12621: 0xD749, - 12622: 0xD750, - 12623: 0xD751, - 12624: 0xD754, - 12625: 0xD756, - 12626: 0xD757, - 12627: 0xD758, - 12628: 0xD759, - 12629: 0xD760, - 12630: 0xD761, - 12631: 0xD763, - 12632: 0xD765, - 12633: 0xD769, - 12634: 0xD76C, - 12635: 0xD770, - 12636: 0xD774, - 12637: 0xD77C, - 12638: 0xD77D, - 12639: 0xD781, - 12640: 0xD788, - 12641: 0xD789, - 12642: 0xD78C, - 12643: 0xD790, - 12644: 0xD798, - 12645: 0xD799, - 12646: 0xD79B, - 12647: 0xD79D, - 12742: 0x4F3D, - 12743: 0x4F73, - 12744: 0x5047, - 12745: 0x50F9, - 12746: 0x52A0, - 12747: 0x53EF, - 12748: 0x5475, - 12749: 0x54E5, - 12750: 0x5609, - 12751: 0x5AC1, - 12752: 0x5BB6, - 12753: 0x6687, - 12754: 0x67B6, - 12755: 0x67B7, - 12756: 0x67EF, - 12757: 0x6B4C, - 12758: 0x73C2, - 12759: 0x75C2, - 12760: 0x7A3C, - 12761: 0x82DB, - 12762: 0x8304, - 12763: 0x8857, - 12764: 0x8888, - 12765: 0x8A36, - 12766: 0x8CC8, - 12767: 0x8DCF, - 12768: 0x8EFB, - 12769: 0x8FE6, - 12770: 0x99D5, - 12771: 0x523B, - 12772: 0x5374, - 12773: 0x5404, - 12774: 0x606A, - 12775: 0x6164, - 12776: 0x6BBC, - 12777: 0x73CF, - 12778: 0x811A, - 12779: 0x89BA, - 12780: 0x89D2, - 12781: 0x95A3, - 12782: 0x4F83, - 12783: 0x520A, - 12784: 0x58BE, - 12785: 0x5978, - 12786: 0x59E6, - 12787: 0x5E72, - 12788: 0x5E79, - 12789: 0x61C7, - 12790: 0x63C0, - 12791: 0x6746, - 12792: 0x67EC, - 12793: 0x687F, - 12794: 0x6F97, - 12795: 0x764E, - 12796: 0x770B, - 12797: 0x78F5, - 12798: 0x7A08, - 12799: 0x7AFF, - 12800: 0x7C21, - 12801: 0x809D, - 12802: 0x826E, - 12803: 0x8271, - 12804: 0x8AEB, - 12805: 0x9593, - 12806: 0x4E6B, - 12807: 0x559D, - 12808: 0x66F7, - 12809: 0x6E34, - 12810: 0x78A3, - 12811: 0x7AED, - 12812: 0x845B, - 12813: 0x8910, - 12814: 0x874E, - 12815: 0x97A8, - 12816: 0x52D8, - 12817: 0x574E, - 12818: 0x582A, - 12819: 0x5D4C, - 12820: 0x611F, - 12821: 0x61BE, - 12822: 0x6221, - 12823: 0x6562, - 12824: 0x67D1, - 12825: 0x6A44, - 12826: 0x6E1B, - 12827: 0x7518, - 12828: 0x75B3, - 12829: 0x76E3, - 12830: 0x77B0, - 12831: 0x7D3A, - 12832: 0x90AF, - 12833: 0x9451, - 12834: 0x9452, - 12835: 0x9F95, - 12836: 0x5323, - 12837: 0x5CAC, - 12838: 0x7532, - 12839: 0x80DB, - 12840: 0x9240, - 12841: 0x9598, - 12842: 0x525B, - 12843: 0x5808, - 12844: 0x59DC, - 12845: 0x5CA1, - 12846: 0x5D17, - 12847: 0x5EB7, - 12848: 0x5F3A, - 12849: 0x5F4A, - 12850: 0x6177, - 12851: 0x6C5F, - 12852: 0x757A, - 12853: 0x7586, - 12854: 0x7CE0, - 12855: 0x7D73, - 12856: 0x7DB1, - 12857: 0x7F8C, - 12858: 0x8154, - 12859: 0x8221, - 12860: 0x8591, - 12861: 0x8941, - 12862: 0x8B1B, - 12863: 0x92FC, - 12864: 0x964D, - 12865: 0x9C47, - 12866: 0x4ECB, - 12867: 0x4EF7, - 12868: 0x500B, - 12869: 0x51F1, - 12870: 0x584F, - 12871: 0x6137, - 12872: 0x613E, - 12873: 0x6168, - 12874: 0x6539, - 12875: 0x69EA, - 12876: 0x6F11, - 12877: 0x75A5, - 12878: 0x7686, - 12879: 0x76D6, - 12880: 0x7B87, - 12881: 0x82A5, - 12882: 0x84CB, - 12883: 0xF900, - 12884: 0x93A7, - 12885: 0x958B, - 12886: 0x5580, - 12887: 0x5BA2, - 12888: 0x5751, - 12889: 0xF901, - 12890: 0x7CB3, - 12891: 0x7FB9, - 12892: 0x91B5, - 12893: 0x5028, - 12894: 0x53BB, - 12895: 0x5C45, - 12896: 0x5DE8, - 12897: 0x62D2, - 12898: 0x636E, - 12899: 0x64DA, - 12900: 0x64E7, - 12901: 0x6E20, - 12902: 0x70AC, - 12903: 0x795B, - 12904: 0x8DDD, - 12905: 0x8E1E, - 12906: 0xF902, - 12907: 0x907D, - 12908: 0x9245, - 12909: 0x92F8, - 12910: 0x4E7E, - 12911: 0x4EF6, - 12912: 0x5065, - 12913: 0x5DFE, - 12914: 0x5EFA, - 12915: 0x6106, - 12916: 0x6957, - 12917: 0x8171, - 12918: 0x8654, - 12919: 0x8E47, - 12920: 0x9375, - 12921: 0x9A2B, - 12922: 0x4E5E, - 12923: 0x5091, - 12924: 0x6770, - 12925: 0x6840, - 12926: 0x5109, - 12927: 0x528D, - 12928: 0x5292, - 12929: 0x6AA2, - 12930: 0x77BC, - 12931: 0x9210, - 12932: 0x9ED4, - 12933: 0x52AB, - 12934: 0x602F, - 12935: 0x8FF2, - 12936: 0x5048, - 12937: 0x61A9, - 12938: 0x63ED, - 12939: 0x64CA, - 12940: 0x683C, - 12941: 0x6A84, - 12942: 0x6FC0, - 12943: 0x8188, - 12944: 0x89A1, - 12945: 0x9694, - 12946: 0x5805, - 12947: 0x727D, - 12948: 0x72AC, - 12949: 0x7504, - 12950: 0x7D79, - 12951: 0x7E6D, - 12952: 0x80A9, - 12953: 0x898B, - 12954: 0x8B74, - 12955: 0x9063, - 12956: 0x9D51, - 12957: 0x6289, - 12958: 0x6C7A, - 12959: 0x6F54, - 12960: 0x7D50, - 12961: 0x7F3A, - 12962: 0x8A23, - 12963: 0x517C, - 12964: 0x614A, - 12965: 0x7B9D, - 12966: 0x8B19, - 12967: 0x9257, - 12968: 0x938C, - 12969: 0x4EAC, - 12970: 0x4FD3, - 12971: 0x501E, - 12972: 0x50BE, - 12973: 0x5106, - 12974: 0x52C1, - 12975: 0x52CD, - 12976: 0x537F, - 12977: 0x5770, - 12978: 0x5883, - 12979: 0x5E9A, - 12980: 0x5F91, - 12981: 0x6176, - 12982: 0x61AC, - 12983: 0x64CE, - 12984: 0x656C, - 12985: 0x666F, - 12986: 0x66BB, - 12987: 0x66F4, - 12988: 0x6897, - 12989: 0x6D87, - 12990: 0x7085, - 12991: 0x70F1, - 12992: 0x749F, - 12993: 0x74A5, - 12994: 0x74CA, - 12995: 0x75D9, - 12996: 0x786C, - 12997: 0x78EC, - 12998: 0x7ADF, - 12999: 0x7AF6, - 13000: 0x7D45, - 13001: 0x7D93, - 13002: 0x8015, - 13003: 0x803F, - 13004: 0x811B, - 13005: 0x8396, - 13006: 0x8B66, - 13007: 0x8F15, - 13008: 0x9015, - 13009: 0x93E1, - 13010: 0x9803, - 13011: 0x9838, - 13012: 0x9A5A, - 13013: 0x9BE8, - 13014: 0x4FC2, - 13015: 0x5553, - 13016: 0x583A, - 13017: 0x5951, - 13018: 0x5B63, - 13019: 0x5C46, - 13020: 0x60B8, - 13021: 0x6212, - 13022: 0x6842, - 13023: 0x68B0, - 13024: 0x68E8, - 13025: 0x6EAA, - 13026: 0x754C, - 13027: 0x7678, - 13028: 0x78CE, - 13029: 0x7A3D, - 13030: 0x7CFB, - 13031: 0x7E6B, - 13032: 0x7E7C, - 13033: 0x8A08, - 13034: 0x8AA1, - 13035: 0x8C3F, - 13036: 0x968E, - 13037: 0x9DC4, - 13038: 0x53E4, - 13039: 0x53E9, - 13040: 0x544A, - 13041: 0x5471, - 13042: 0x56FA, - 13043: 0x59D1, - 13044: 0x5B64, - 13045: 0x5C3B, - 13046: 0x5EAB, - 13047: 0x62F7, - 13048: 0x6537, - 13049: 0x6545, - 13050: 0x6572, - 13051: 0x66A0, - 13052: 0x67AF, - 13053: 0x69C1, - 13054: 0x6CBD, - 13055: 0x75FC, - 13056: 0x7690, - 13057: 0x777E, - 13058: 0x7A3F, - 13059: 0x7F94, - 13060: 0x8003, - 13061: 0x80A1, - 13062: 0x818F, - 13063: 0x82E6, - 13064: 0x82FD, - 13065: 0x83F0, - 13066: 0x85C1, - 13067: 0x8831, - 13068: 0x88B4, - 13069: 0x8AA5, - 13070: 0xF903, - 13071: 0x8F9C, - 13072: 0x932E, - 13073: 0x96C7, - 13074: 0x9867, - 13075: 0x9AD8, - 13076: 0x9F13, - 13077: 0x54ED, - 13078: 0x659B, - 13079: 0x66F2, - 13080: 0x688F, - 13081: 0x7A40, - 13082: 0x8C37, - 13083: 0x9D60, - 13084: 0x56F0, - 13085: 0x5764, - 13086: 0x5D11, - 13087: 0x6606, - 13088: 0x68B1, - 13089: 0x68CD, - 13090: 0x6EFE, - 13091: 0x7428, - 13092: 0x889E, - 13093: 0x9BE4, - 13094: 0x6C68, - 13095: 0xF904, - 13096: 0x9AA8, - 13097: 0x4F9B, - 13098: 0x516C, - 13099: 0x5171, - 13100: 0x529F, - 13101: 0x5B54, - 13102: 0x5DE5, - 13103: 0x6050, - 13104: 0x606D, - 13105: 0x62F1, - 13106: 0x63A7, - 13107: 0x653B, - 13108: 0x73D9, - 13109: 0x7A7A, - 13110: 0x86A3, - 13111: 0x8CA2, - 13112: 0x978F, - 13113: 0x4E32, - 13114: 0x5BE1, - 13115: 0x6208, - 13116: 0x679C, - 13117: 0x74DC, - 13118: 0x79D1, - 13119: 0x83D3, - 13120: 0x8A87, - 13121: 0x8AB2, - 13122: 0x8DE8, - 13123: 0x904E, - 13124: 0x934B, - 13125: 0x9846, - 13126: 0x5ED3, - 13127: 0x69E8, - 13128: 0x85FF, - 13129: 0x90ED, - 13130: 0xF905, - 13131: 0x51A0, - 13132: 0x5B98, - 13133: 0x5BEC, - 13134: 0x6163, - 13135: 0x68FA, - 13136: 0x6B3E, - 13137: 0x704C, - 13138: 0x742F, - 13139: 0x74D8, - 13140: 0x7BA1, - 13141: 0x7F50, - 13142: 0x83C5, - 13143: 0x89C0, - 13144: 0x8CAB, - 13145: 0x95DC, - 13146: 0x9928, - 13147: 0x522E, - 13148: 0x605D, - 13149: 0x62EC, - 13150: 0x9002, - 13151: 0x4F8A, - 13152: 0x5149, - 13153: 0x5321, - 13154: 0x58D9, - 13155: 0x5EE3, - 13156: 0x66E0, - 13157: 0x6D38, - 13158: 0x709A, - 13159: 0x72C2, - 13160: 0x73D6, - 13161: 0x7B50, - 13162: 0x80F1, - 13163: 0x945B, - 13164: 0x5366, - 13165: 0x639B, - 13166: 0x7F6B, - 13167: 0x4E56, - 13168: 0x5080, - 13169: 0x584A, - 13170: 0x58DE, - 13171: 0x602A, - 13172: 0x6127, - 13173: 0x62D0, - 13174: 0x69D0, - 13175: 0x9B41, - 13176: 0x5B8F, - 13177: 0x7D18, - 13178: 0x80B1, - 13179: 0x8F5F, - 13180: 0x4EA4, - 13181: 0x50D1, - 13182: 0x54AC, - 13183: 0x55AC, - 13184: 0x5B0C, - 13185: 0x5DA0, - 13186: 0x5DE7, - 13187: 0x652A, - 13188: 0x654E, - 13189: 0x6821, - 13190: 0x6A4B, - 13191: 0x72E1, - 13192: 0x768E, - 13193: 0x77EF, - 13194: 0x7D5E, - 13195: 0x7FF9, - 13196: 0x81A0, - 13197: 0x854E, - 13198: 0x86DF, - 13199: 0x8F03, - 13200: 0x8F4E, - 13201: 0x90CA, - 13202: 0x9903, - 13203: 0x9A55, - 13204: 0x9BAB, - 13205: 0x4E18, - 13206: 0x4E45, - 13207: 0x4E5D, - 13208: 0x4EC7, - 13209: 0x4FF1, - 13210: 0x5177, - 13211: 0x52FE, - 13212: 0x5340, - 13213: 0x53E3, - 13214: 0x53E5, - 13215: 0x548E, - 13216: 0x5614, - 13217: 0x5775, - 13218: 0x57A2, - 13219: 0x5BC7, - 13220: 0x5D87, - 13221: 0x5ED0, - 13222: 0x61FC, - 13223: 0x62D8, - 13224: 0x6551, - 13225: 0x67B8, - 13226: 0x67E9, - 13227: 0x69CB, - 13228: 0x6B50, - 13229: 0x6BC6, - 13230: 0x6BEC, - 13231: 0x6C42, - 13232: 0x6E9D, - 13233: 0x7078, - 13234: 0x72D7, - 13235: 0x7396, - 13236: 0x7403, - 13237: 0x77BF, - 13238: 0x77E9, - 13239: 0x7A76, - 13240: 0x7D7F, - 13241: 0x8009, - 13242: 0x81FC, - 13243: 0x8205, - 13244: 0x820A, - 13245: 0x82DF, - 13246: 0x8862, - 13247: 0x8B33, - 13248: 0x8CFC, - 13249: 0x8EC0, - 13250: 0x9011, - 13251: 0x90B1, - 13252: 0x9264, - 13253: 0x92B6, - 13254: 0x99D2, - 13255: 0x9A45, - 13256: 0x9CE9, - 13257: 0x9DD7, - 13258: 0x9F9C, - 13259: 0x570B, - 13260: 0x5C40, - 13261: 0x83CA, - 13262: 0x97A0, - 13263: 0x97AB, - 13264: 0x9EB4, - 13265: 0x541B, - 13266: 0x7A98, - 13267: 0x7FA4, - 13268: 0x88D9, - 13269: 0x8ECD, - 13270: 0x90E1, - 13271: 0x5800, - 13272: 0x5C48, - 13273: 0x6398, - 13274: 0x7A9F, - 13275: 0x5BAE, - 13276: 0x5F13, - 13277: 0x7A79, - 13278: 0x7AAE, - 13279: 0x828E, - 13280: 0x8EAC, - 13281: 0x5026, - 13282: 0x5238, - 13283: 0x52F8, - 13284: 0x5377, - 13285: 0x5708, - 13286: 0x62F3, - 13287: 0x6372, - 13288: 0x6B0A, - 13289: 0x6DC3, - 13290: 0x7737, - 13291: 0x53A5, - 13292: 0x7357, - 13293: 0x8568, - 13294: 0x8E76, - 13295: 0x95D5, - 13296: 0x673A, - 13297: 0x6AC3, - 13298: 0x6F70, - 13299: 0x8A6D, - 13300: 0x8ECC, - 13301: 0x994B, - 13302: 0xF906, - 13303: 0x6677, - 13304: 0x6B78, - 13305: 0x8CB4, - 13306: 0x9B3C, - 13307: 0xF907, - 13308: 0x53EB, - 13309: 0x572D, - 13310: 0x594E, - 13311: 0x63C6, - 13312: 0x69FB, - 13313: 0x73EA, - 13314: 0x7845, - 13315: 0x7ABA, - 13316: 0x7AC5, - 13317: 0x7CFE, - 13318: 0x8475, - 13319: 0x898F, - 13320: 0x8D73, - 13321: 0x9035, - 13322: 0x95A8, - 13323: 0x52FB, - 13324: 0x5747, - 13325: 0x7547, - 13326: 0x7B60, - 13327: 0x83CC, - 13328: 0x921E, - 13329: 0xF908, - 13330: 0x6A58, - 13331: 0x514B, - 13332: 0x524B, - 13333: 0x5287, - 13334: 0x621F, - 13335: 0x68D8, - 13336: 0x6975, - 13337: 0x9699, - 13338: 0x50C5, - 13339: 0x52A4, - 13340: 0x52E4, - 13341: 0x61C3, - 13342: 0x65A4, - 13343: 0x6839, - 13344: 0x69FF, - 13345: 0x747E, - 13346: 0x7B4B, - 13347: 0x82B9, - 13348: 0x83EB, - 13349: 0x89B2, - 13350: 0x8B39, - 13351: 0x8FD1, - 13352: 0x9949, - 13353: 0xF909, - 13354: 0x4ECA, - 13355: 0x5997, - 13356: 0x64D2, - 13357: 0x6611, - 13358: 0x6A8E, - 13359: 0x7434, - 13360: 0x7981, - 13361: 0x79BD, - 13362: 0x82A9, - 13363: 0x887E, - 13364: 0x887F, - 13365: 0x895F, - 13366: 0xF90A, - 13367: 0x9326, - 13368: 0x4F0B, - 13369: 0x53CA, - 13370: 0x6025, - 13371: 0x6271, - 13372: 0x6C72, - 13373: 0x7D1A, - 13374: 0x7D66, - 13375: 0x4E98, - 13376: 0x5162, - 13377: 0x77DC, - 13378: 0x80AF, - 13379: 0x4F01, - 13380: 0x4F0E, - 13381: 0x5176, - 13382: 0x5180, - 13383: 0x55DC, - 13384: 0x5668, - 13385: 0x573B, - 13386: 0x57FA, - 13387: 0x57FC, - 13388: 0x5914, - 13389: 0x5947, - 13390: 0x5993, - 13391: 0x5BC4, - 13392: 0x5C90, - 13393: 0x5D0E, - 13394: 0x5DF1, - 13395: 0x5E7E, - 13396: 0x5FCC, - 13397: 0x6280, - 13398: 0x65D7, - 13399: 0x65E3, - 13400: 0x671E, - 13401: 0x671F, - 13402: 0x675E, - 13403: 0x68CB, - 13404: 0x68C4, - 13405: 0x6A5F, - 13406: 0x6B3A, - 13407: 0x6C23, - 13408: 0x6C7D, - 13409: 0x6C82, - 13410: 0x6DC7, - 13411: 0x7398, - 13412: 0x7426, - 13413: 0x742A, - 13414: 0x7482, - 13415: 0x74A3, - 13416: 0x7578, - 13417: 0x757F, - 13418: 0x7881, - 13419: 0x78EF, - 13420: 0x7941, - 13421: 0x7947, - 13422: 0x7948, - 13423: 0x797A, - 13424: 0x7B95, - 13425: 0x7D00, - 13426: 0x7DBA, - 13427: 0x7F88, - 13428: 0x8006, - 13429: 0x802D, - 13430: 0x808C, - 13431: 0x8A18, - 13432: 0x8B4F, - 13433: 0x8C48, - 13434: 0x8D77, - 13435: 0x9321, - 13436: 0x9324, - 13437: 0x98E2, - 13438: 0x9951, - 13439: 0x9A0E, - 13440: 0x9A0F, - 13441: 0x9A65, - 13442: 0x9E92, - 13443: 0x7DCA, - 13444: 0x4F76, - 13445: 0x5409, - 13446: 0x62EE, - 13447: 0x6854, - 13448: 0x91D1, - 13449: 0x55AB, - 13450: 0x513A, - 13451: 0xF90B, - 13452: 0xF90C, - 13453: 0x5A1C, - 13454: 0x61E6, - 13455: 0xF90D, - 13456: 0x62CF, - 13457: 0x62FF, - 13458: 0xF90E, - 13459: 0xF90F, - 13460: 0xF910, - 13461: 0xF911, - 13462: 0xF912, - 13463: 0xF913, - 13464: 0x90A3, - 13465: 0xF914, - 13466: 0xF915, - 13467: 0xF916, - 13468: 0xF917, - 13469: 0xF918, - 13470: 0x8AFE, - 13471: 0xF919, - 13472: 0xF91A, - 13473: 0xF91B, - 13474: 0xF91C, - 13475: 0x6696, - 13476: 0xF91D, - 13477: 0x7156, - 13478: 0xF91E, - 13479: 0xF91F, - 13480: 0x96E3, - 13481: 0xF920, - 13482: 0x634F, - 13483: 0x637A, - 13484: 0x5357, - 13485: 0xF921, - 13486: 0x678F, - 13487: 0x6960, - 13488: 0x6E73, - 13489: 0xF922, - 13490: 0x7537, - 13491: 0xF923, - 13492: 0xF924, - 13493: 0xF925, - 13494: 0x7D0D, - 13495: 0xF926, - 13496: 0xF927, - 13497: 0x8872, - 13498: 0x56CA, - 13499: 0x5A18, - 13500: 0xF928, - 13501: 0xF929, - 13502: 0xF92A, - 13503: 0xF92B, - 13504: 0xF92C, - 13505: 0x4E43, - 13506: 0xF92D, - 13507: 0x5167, - 13508: 0x5948, - 13509: 0x67F0, - 13510: 0x8010, - 13511: 0xF92E, - 13512: 0x5973, - 13513: 0x5E74, - 13514: 0x649A, - 13515: 0x79CA, - 13516: 0x5FF5, - 13517: 0x606C, - 13518: 0x62C8, - 13519: 0x637B, - 13520: 0x5BE7, - 13521: 0x5BD7, - 13522: 0x52AA, - 13523: 0xF92F, - 13524: 0x5974, - 13525: 0x5F29, - 13526: 0x6012, - 13527: 0xF930, - 13528: 0xF931, - 13529: 0xF932, - 13530: 0x7459, - 13531: 0xF933, - 13532: 0xF934, - 13533: 0xF935, - 13534: 0xF936, - 13535: 0xF937, - 13536: 0xF938, - 13537: 0x99D1, - 13538: 0xF939, - 13539: 0xF93A, - 13540: 0xF93B, - 13541: 0xF93C, - 13542: 0xF93D, - 13543: 0xF93E, - 13544: 0xF93F, - 13545: 0xF940, - 13546: 0xF941, - 13547: 0xF942, - 13548: 0xF943, - 13549: 0x6FC3, - 13550: 0xF944, - 13551: 0xF945, - 13552: 0x81BF, - 13553: 0x8FB2, - 13554: 0x60F1, - 13555: 0xF946, - 13556: 0xF947, - 13557: 0x8166, - 13558: 0xF948, - 13559: 0xF949, - 13560: 0x5C3F, - 13561: 0xF94A, - 13562: 0xF94B, - 13563: 0xF94C, - 13564: 0xF94D, - 13565: 0xF94E, - 13566: 0xF94F, - 13567: 0xF950, - 13568: 0xF951, - 13569: 0x5AE9, - 13570: 0x8A25, - 13571: 0x677B, - 13572: 0x7D10, - 13573: 0xF952, - 13574: 0xF953, - 13575: 0xF954, - 13576: 0xF955, - 13577: 0xF956, - 13578: 0xF957, - 13579: 0x80FD, - 13580: 0xF958, - 13581: 0xF959, - 13582: 0x5C3C, - 13583: 0x6CE5, - 13584: 0x533F, - 13585: 0x6EBA, - 13586: 0x591A, - 13587: 0x8336, - 13588: 0x4E39, - 13589: 0x4EB6, - 13590: 0x4F46, - 13591: 0x55AE, - 13592: 0x5718, - 13593: 0x58C7, - 13594: 0x5F56, - 13595: 0x65B7, - 13596: 0x65E6, - 13597: 0x6A80, - 13598: 0x6BB5, - 13599: 0x6E4D, - 13600: 0x77ED, - 13601: 0x7AEF, - 13602: 0x7C1E, - 13603: 0x7DDE, - 13604: 0x86CB, - 13605: 0x8892, - 13606: 0x9132, - 13607: 0x935B, - 13608: 0x64BB, - 13609: 0x6FBE, - 13610: 0x737A, - 13611: 0x75B8, - 13612: 0x9054, - 13613: 0x5556, - 13614: 0x574D, - 13615: 0x61BA, - 13616: 0x64D4, - 13617: 0x66C7, - 13618: 0x6DE1, - 13619: 0x6E5B, - 13620: 0x6F6D, - 13621: 0x6FB9, - 13622: 0x75F0, - 13623: 0x8043, - 13624: 0x81BD, - 13625: 0x8541, - 13626: 0x8983, - 13627: 0x8AC7, - 13628: 0x8B5A, - 13629: 0x931F, - 13630: 0x6C93, - 13631: 0x7553, - 13632: 0x7B54, - 13633: 0x8E0F, - 13634: 0x905D, - 13635: 0x5510, - 13636: 0x5802, - 13637: 0x5858, - 13638: 0x5E62, - 13639: 0x6207, - 13640: 0x649E, - 13641: 0x68E0, - 13642: 0x7576, - 13643: 0x7CD6, - 13644: 0x87B3, - 13645: 0x9EE8, - 13646: 0x4EE3, - 13647: 0x5788, - 13648: 0x576E, - 13649: 0x5927, - 13650: 0x5C0D, - 13651: 0x5CB1, - 13652: 0x5E36, - 13653: 0x5F85, - 13654: 0x6234, - 13655: 0x64E1, - 13656: 0x73B3, - 13657: 0x81FA, - 13658: 0x888B, - 13659: 0x8CB8, - 13660: 0x968A, - 13661: 0x9EDB, - 13662: 0x5B85, - 13663: 0x5FB7, - 13664: 0x60B3, - 13665: 0x5012, - 13666: 0x5200, - 13667: 0x5230, - 13668: 0x5716, - 13669: 0x5835, - 13670: 0x5857, - 13671: 0x5C0E, - 13672: 0x5C60, - 13673: 0x5CF6, - 13674: 0x5D8B, - 13675: 0x5EA6, - 13676: 0x5F92, - 13677: 0x60BC, - 13678: 0x6311, - 13679: 0x6389, - 13680: 0x6417, - 13681: 0x6843, - 13682: 0x68F9, - 13683: 0x6AC2, - 13684: 0x6DD8, - 13685: 0x6E21, - 13686: 0x6ED4, - 13687: 0x6FE4, - 13688: 0x71FE, - 13689: 0x76DC, - 13690: 0x7779, - 13691: 0x79B1, - 13692: 0x7A3B, - 13693: 0x8404, - 13694: 0x89A9, - 13695: 0x8CED, - 13696: 0x8DF3, - 13697: 0x8E48, - 13698: 0x9003, - 13699: 0x9014, - 13700: 0x9053, - 13701: 0x90FD, - 13702: 0x934D, - 13703: 0x9676, - 13704: 0x97DC, - 13705: 0x6BD2, - 13706: 0x7006, - 13707: 0x7258, - 13708: 0x72A2, - 13709: 0x7368, - 13710: 0x7763, - 13711: 0x79BF, - 13712: 0x7BE4, - 13713: 0x7E9B, - 13714: 0x8B80, - 13715: 0x58A9, - 13716: 0x60C7, - 13717: 0x6566, - 13718: 0x65FD, - 13719: 0x66BE, - 13720: 0x6C8C, - 13721: 0x711E, - 13722: 0x71C9, - 13723: 0x8C5A, - 13724: 0x9813, - 13725: 0x4E6D, - 13726: 0x7A81, - 13727: 0x4EDD, - 13728: 0x51AC, - 13729: 0x51CD, - 13730: 0x52D5, - 13731: 0x540C, - 13732: 0x61A7, - 13733: 0x6771, - 13734: 0x6850, - 13735: 0x68DF, - 13736: 0x6D1E, - 13737: 0x6F7C, - 13738: 0x75BC, - 13739: 0x77B3, - 13740: 0x7AE5, - 13741: 0x80F4, - 13742: 0x8463, - 13743: 0x9285, - 13744: 0x515C, - 13745: 0x6597, - 13746: 0x675C, - 13747: 0x6793, - 13748: 0x75D8, - 13749: 0x7AC7, - 13750: 0x8373, - 13751: 0xF95A, - 13752: 0x8C46, - 13753: 0x9017, - 13754: 0x982D, - 13755: 0x5C6F, - 13756: 0x81C0, - 13757: 0x829A, - 13758: 0x9041, - 13759: 0x906F, - 13760: 0x920D, - 13761: 0x5F97, - 13762: 0x5D9D, - 13763: 0x6A59, - 13764: 0x71C8, - 13765: 0x767B, - 13766: 0x7B49, - 13767: 0x85E4, - 13768: 0x8B04, - 13769: 0x9127, - 13770: 0x9A30, - 13771: 0x5587, - 13772: 0x61F6, - 13773: 0xF95B, - 13774: 0x7669, - 13775: 0x7F85, - 13776: 0x863F, - 13777: 0x87BA, - 13778: 0x88F8, - 13779: 0x908F, - 13780: 0xF95C, - 13781: 0x6D1B, - 13782: 0x70D9, - 13783: 0x73DE, - 13784: 0x7D61, - 13785: 0x843D, - 13786: 0xF95D, - 13787: 0x916A, - 13788: 0x99F1, - 13789: 0xF95E, - 13790: 0x4E82, - 13791: 0x5375, - 13792: 0x6B04, - 13793: 0x6B12, - 13794: 0x703E, - 13795: 0x721B, - 13796: 0x862D, - 13797: 0x9E1E, - 13798: 0x524C, - 13799: 0x8FA3, - 13800: 0x5D50, - 13801: 0x64E5, - 13802: 0x652C, - 13803: 0x6B16, - 13804: 0x6FEB, - 13805: 0x7C43, - 13806: 0x7E9C, - 13807: 0x85CD, - 13808: 0x8964, - 13809: 0x89BD, - 13810: 0x62C9, - 13811: 0x81D8, - 13812: 0x881F, - 13813: 0x5ECA, - 13814: 0x6717, - 13815: 0x6D6A, - 13816: 0x72FC, - 13817: 0x7405, - 13818: 0x746F, - 13819: 0x8782, - 13820: 0x90DE, - 13821: 0x4F86, - 13822: 0x5D0D, - 13823: 0x5FA0, - 13824: 0x840A, - 13825: 0x51B7, - 13826: 0x63A0, - 13827: 0x7565, - 13828: 0x4EAE, - 13829: 0x5006, - 13830: 0x5169, - 13831: 0x51C9, - 13832: 0x6881, - 13833: 0x6A11, - 13834: 0x7CAE, - 13835: 0x7CB1, - 13836: 0x7CE7, - 13837: 0x826F, - 13838: 0x8AD2, - 13839: 0x8F1B, - 13840: 0x91CF, - 13841: 0x4FB6, - 13842: 0x5137, - 13843: 0x52F5, - 13844: 0x5442, - 13845: 0x5EEC, - 13846: 0x616E, - 13847: 0x623E, - 13848: 0x65C5, - 13849: 0x6ADA, - 13850: 0x6FFE, - 13851: 0x792A, - 13852: 0x85DC, - 13853: 0x8823, - 13854: 0x95AD, - 13855: 0x9A62, - 13856: 0x9A6A, - 13857: 0x9E97, - 13858: 0x9ECE, - 13859: 0x529B, - 13860: 0x66C6, - 13861: 0x6B77, - 13862: 0x701D, - 13863: 0x792B, - 13864: 0x8F62, - 13865: 0x9742, - 13866: 0x6190, - 13867: 0x6200, - 13868: 0x6523, - 13869: 0x6F23, - 13870: 0x7149, - 13871: 0x7489, - 13872: 0x7DF4, - 13873: 0x806F, - 13874: 0x84EE, - 13875: 0x8F26, - 13876: 0x9023, - 13877: 0x934A, - 13878: 0x51BD, - 13879: 0x5217, - 13880: 0x52A3, - 13881: 0x6D0C, - 13882: 0x70C8, - 13883: 0x88C2, - 13884: 0x5EC9, - 13885: 0x6582, - 13886: 0x6BAE, - 13887: 0x6FC2, - 13888: 0x7C3E, - 13889: 0x7375, - 13890: 0x4EE4, - 13891: 0x4F36, - 13892: 0x56F9, - 13893: 0xF95F, - 13894: 0x5CBA, - 13895: 0x5DBA, - 13896: 0x601C, - 13897: 0x73B2, - 13898: 0x7B2D, - 13899: 0x7F9A, - 13900: 0x7FCE, - 13901: 0x8046, - 13902: 0x901E, - 13903: 0x9234, - 13904: 0x96F6, - 13905: 0x9748, - 13906: 0x9818, - 13907: 0x9F61, - 13908: 0x4F8B, - 13909: 0x6FA7, - 13910: 0x79AE, - 13911: 0x91B4, - 13912: 0x96B7, - 13913: 0x52DE, - 13914: 0xF960, - 13915: 0x6488, - 13916: 0x64C4, - 13917: 0x6AD3, - 13918: 0x6F5E, - 13919: 0x7018, - 13920: 0x7210, - 13921: 0x76E7, - 13922: 0x8001, - 13923: 0x8606, - 13924: 0x865C, - 13925: 0x8DEF, - 13926: 0x8F05, - 13927: 0x9732, - 13928: 0x9B6F, - 13929: 0x9DFA, - 13930: 0x9E75, - 13931: 0x788C, - 13932: 0x797F, - 13933: 0x7DA0, - 13934: 0x83C9, - 13935: 0x9304, - 13936: 0x9E7F, - 13937: 0x9E93, - 13938: 0x8AD6, - 13939: 0x58DF, - 13940: 0x5F04, - 13941: 0x6727, - 13942: 0x7027, - 13943: 0x74CF, - 13944: 0x7C60, - 13945: 0x807E, - 13946: 0x5121, - 13947: 0x7028, - 13948: 0x7262, - 13949: 0x78CA, - 13950: 0x8CC2, - 13951: 0x8CDA, - 13952: 0x8CF4, - 13953: 0x96F7, - 13954: 0x4E86, - 13955: 0x50DA, - 13956: 0x5BEE, - 13957: 0x5ED6, - 13958: 0x6599, - 13959: 0x71CE, - 13960: 0x7642, - 13961: 0x77AD, - 13962: 0x804A, - 13963: 0x84FC, - 13964: 0x907C, - 13965: 0x9B27, - 13966: 0x9F8D, - 13967: 0x58D8, - 13968: 0x5A41, - 13969: 0x5C62, - 13970: 0x6A13, - 13971: 0x6DDA, - 13972: 0x6F0F, - 13973: 0x763B, - 13974: 0x7D2F, - 13975: 0x7E37, - 13976: 0x851E, - 13977: 0x8938, - 13978: 0x93E4, - 13979: 0x964B, - 13980: 0x5289, - 13981: 0x65D2, - 13982: 0x67F3, - 13983: 0x69B4, - 13984: 0x6D41, - 13985: 0x6E9C, - 13986: 0x700F, - 13987: 0x7409, - 13988: 0x7460, - 13989: 0x7559, - 13990: 0x7624, - 13991: 0x786B, - 13992: 0x8B2C, - 13993: 0x985E, - 13994: 0x516D, - 13995: 0x622E, - 13996: 0x9678, - 13997: 0x4F96, - 13998: 0x502B, - 13999: 0x5D19, - 14000: 0x6DEA, - 14001: 0x7DB8, - 14002: 0x8F2A, - 14003: 0x5F8B, - 14004: 0x6144, - 14005: 0x6817, - 14006: 0xF961, - 14007: 0x9686, - 14008: 0x52D2, - 14009: 0x808B, - 14010: 0x51DC, - 14011: 0x51CC, - 14012: 0x695E, - 14013: 0x7A1C, - 14014: 0x7DBE, - 14015: 0x83F1, - 14016: 0x9675, - 14017: 0x4FDA, - 14018: 0x5229, - 14019: 0x5398, - 14020: 0x540F, - 14021: 0x550E, - 14022: 0x5C65, - 14023: 0x60A7, - 14024: 0x674E, - 14025: 0x68A8, - 14026: 0x6D6C, - 14027: 0x7281, - 14028: 0x72F8, - 14029: 0x7406, - 14030: 0x7483, - 14031: 0xF962, - 14032: 0x75E2, - 14033: 0x7C6C, - 14034: 0x7F79, - 14035: 0x7FB8, - 14036: 0x8389, - 14037: 0x88CF, - 14038: 0x88E1, - 14039: 0x91CC, - 14040: 0x91D0, - 14041: 0x96E2, - 14042: 0x9BC9, - 14043: 0x541D, - 14044: 0x6F7E, - 14045: 0x71D0, - 14046: 0x7498, - 14047: 0x85FA, - 14048: 0x8EAA, - 14049: 0x96A3, - 14050: 0x9C57, - 14051: 0x9E9F, - 14052: 0x6797, - 14053: 0x6DCB, - 14054: 0x7433, - 14055: 0x81E8, - 14056: 0x9716, - 14057: 0x782C, - 14058: 0x7ACB, - 14059: 0x7B20, - 14060: 0x7C92, - 14061: 0x6469, - 14062: 0x746A, - 14063: 0x75F2, - 14064: 0x78BC, - 14065: 0x78E8, - 14066: 0x99AC, - 14067: 0x9B54, - 14068: 0x9EBB, - 14069: 0x5BDE, - 14070: 0x5E55, - 14071: 0x6F20, - 14072: 0x819C, - 14073: 0x83AB, - 14074: 0x9088, - 14075: 0x4E07, - 14076: 0x534D, - 14077: 0x5A29, - 14078: 0x5DD2, - 14079: 0x5F4E, - 14080: 0x6162, - 14081: 0x633D, - 14082: 0x6669, - 14083: 0x66FC, - 14084: 0x6EFF, - 14085: 0x6F2B, - 14086: 0x7063, - 14087: 0x779E, - 14088: 0x842C, - 14089: 0x8513, - 14090: 0x883B, - 14091: 0x8F13, - 14092: 0x9945, - 14093: 0x9C3B, - 14094: 0x551C, - 14095: 0x62B9, - 14096: 0x672B, - 14097: 0x6CAB, - 14098: 0x8309, - 14099: 0x896A, - 14100: 0x977A, - 14101: 0x4EA1, - 14102: 0x5984, - 14103: 0x5FD8, - 14104: 0x5FD9, - 14105: 0x671B, - 14106: 0x7DB2, - 14107: 0x7F54, - 14108: 0x8292, - 14109: 0x832B, - 14110: 0x83BD, - 14111: 0x8F1E, - 14112: 0x9099, - 14113: 0x57CB, - 14114: 0x59B9, - 14115: 0x5A92, - 14116: 0x5BD0, - 14117: 0x6627, - 14118: 0x679A, - 14119: 0x6885, - 14120: 0x6BCF, - 14121: 0x7164, - 14122: 0x7F75, - 14123: 0x8CB7, - 14124: 0x8CE3, - 14125: 0x9081, - 14126: 0x9B45, - 14127: 0x8108, - 14128: 0x8C8A, - 14129: 0x964C, - 14130: 0x9A40, - 14131: 0x9EA5, - 14132: 0x5B5F, - 14133: 0x6C13, - 14134: 0x731B, - 14135: 0x76F2, - 14136: 0x76DF, - 14137: 0x840C, - 14138: 0x51AA, - 14139: 0x8993, - 14140: 0x514D, - 14141: 0x5195, - 14142: 0x52C9, - 14143: 0x68C9, - 14144: 0x6C94, - 14145: 0x7704, - 14146: 0x7720, - 14147: 0x7DBF, - 14148: 0x7DEC, - 14149: 0x9762, - 14150: 0x9EB5, - 14151: 0x6EC5, - 14152: 0x8511, - 14153: 0x51A5, - 14154: 0x540D, - 14155: 0x547D, - 14156: 0x660E, - 14157: 0x669D, - 14158: 0x6927, - 14159: 0x6E9F, - 14160: 0x76BF, - 14161: 0x7791, - 14162: 0x8317, - 14163: 0x84C2, - 14164: 0x879F, - 14165: 0x9169, - 14166: 0x9298, - 14167: 0x9CF4, - 14168: 0x8882, - 14169: 0x4FAE, - 14170: 0x5192, - 14171: 0x52DF, - 14172: 0x59C6, - 14173: 0x5E3D, - 14174: 0x6155, - 14175: 0x6478, - 14176: 0x6479, - 14177: 0x66AE, - 14178: 0x67D0, - 14179: 0x6A21, - 14180: 0x6BCD, - 14181: 0x6BDB, - 14182: 0x725F, - 14183: 0x7261, - 14184: 0x7441, - 14185: 0x7738, - 14186: 0x77DB, - 14187: 0x8017, - 14188: 0x82BC, - 14189: 0x8305, - 14190: 0x8B00, - 14191: 0x8B28, - 14192: 0x8C8C, - 14193: 0x6728, - 14194: 0x6C90, - 14195: 0x7267, - 14196: 0x76EE, - 14197: 0x7766, - 14198: 0x7A46, - 14199: 0x9DA9, - 14200: 0x6B7F, - 14201: 0x6C92, - 14202: 0x5922, - 14203: 0x6726, - 14204: 0x8499, - 14205: 0x536F, - 14206: 0x5893, - 14207: 0x5999, - 14208: 0x5EDF, - 14209: 0x63CF, - 14210: 0x6634, - 14211: 0x6773, - 14212: 0x6E3A, - 14213: 0x732B, - 14214: 0x7AD7, - 14215: 0x82D7, - 14216: 0x9328, - 14217: 0x52D9, - 14218: 0x5DEB, - 14219: 0x61AE, - 14220: 0x61CB, - 14221: 0x620A, - 14222: 0x62C7, - 14223: 0x64AB, - 14224: 0x65E0, - 14225: 0x6959, - 14226: 0x6B66, - 14227: 0x6BCB, - 14228: 0x7121, - 14229: 0x73F7, - 14230: 0x755D, - 14231: 0x7E46, - 14232: 0x821E, - 14233: 0x8302, - 14234: 0x856A, - 14235: 0x8AA3, - 14236: 0x8CBF, - 14237: 0x9727, - 14238: 0x9D61, - 14239: 0x58A8, - 14240: 0x9ED8, - 14241: 0x5011, - 14242: 0x520E, - 14243: 0x543B, - 14244: 0x554F, - 14245: 0x6587, - 14246: 0x6C76, - 14247: 0x7D0A, - 14248: 0x7D0B, - 14249: 0x805E, - 14250: 0x868A, - 14251: 0x9580, - 14252: 0x96EF, - 14253: 0x52FF, - 14254: 0x6C95, - 14255: 0x7269, - 14256: 0x5473, - 14257: 0x5A9A, - 14258: 0x5C3E, - 14259: 0x5D4B, - 14260: 0x5F4C, - 14261: 0x5FAE, - 14262: 0x672A, - 14263: 0x68B6, - 14264: 0x6963, - 14265: 0x6E3C, - 14266: 0x6E44, - 14267: 0x7709, - 14268: 0x7C73, - 14269: 0x7F8E, - 14270: 0x8587, - 14271: 0x8B0E, - 14272: 0x8FF7, - 14273: 0x9761, - 14274: 0x9EF4, - 14275: 0x5CB7, - 14276: 0x60B6, - 14277: 0x610D, - 14278: 0x61AB, - 14279: 0x654F, - 14280: 0x65FB, - 14281: 0x65FC, - 14282: 0x6C11, - 14283: 0x6CEF, - 14284: 0x739F, - 14285: 0x73C9, - 14286: 0x7DE1, - 14287: 0x9594, - 14288: 0x5BC6, - 14289: 0x871C, - 14290: 0x8B10, - 14291: 0x525D, - 14292: 0x535A, - 14293: 0x62CD, - 14294: 0x640F, - 14295: 0x64B2, - 14296: 0x6734, - 14297: 0x6A38, - 14298: 0x6CCA, - 14299: 0x73C0, - 14300: 0x749E, - 14301: 0x7B94, - 14302: 0x7C95, - 14303: 0x7E1B, - 14304: 0x818A, - 14305: 0x8236, - 14306: 0x8584, - 14307: 0x8FEB, - 14308: 0x96F9, - 14309: 0x99C1, - 14310: 0x4F34, - 14311: 0x534A, - 14312: 0x53CD, - 14313: 0x53DB, - 14314: 0x62CC, - 14315: 0x642C, - 14316: 0x6500, - 14317: 0x6591, - 14318: 0x69C3, - 14319: 0x6CEE, - 14320: 0x6F58, - 14321: 0x73ED, - 14322: 0x7554, - 14323: 0x7622, - 14324: 0x76E4, - 14325: 0x76FC, - 14326: 0x78D0, - 14327: 0x78FB, - 14328: 0x792C, - 14329: 0x7D46, - 14330: 0x822C, - 14331: 0x87E0, - 14332: 0x8FD4, - 14333: 0x9812, - 14334: 0x98EF, - 14335: 0x52C3, - 14336: 0x62D4, - 14337: 0x64A5, - 14338: 0x6E24, - 14339: 0x6F51, - 14340: 0x767C, - 14341: 0x8DCB, - 14342: 0x91B1, - 14343: 0x9262, - 14344: 0x9AEE, - 14345: 0x9B43, - 14346: 0x5023, - 14347: 0x508D, - 14348: 0x574A, - 14349: 0x59A8, - 14350: 0x5C28, - 14351: 0x5E47, - 14352: 0x5F77, - 14353: 0x623F, - 14354: 0x653E, - 14355: 0x65B9, - 14356: 0x65C1, - 14357: 0x6609, - 14358: 0x678B, - 14359: 0x699C, - 14360: 0x6EC2, - 14361: 0x78C5, - 14362: 0x7D21, - 14363: 0x80AA, - 14364: 0x8180, - 14365: 0x822B, - 14366: 0x82B3, - 14367: 0x84A1, - 14368: 0x868C, - 14369: 0x8A2A, - 14370: 0x8B17, - 14371: 0x90A6, - 14372: 0x9632, - 14373: 0x9F90, - 14374: 0x500D, - 14375: 0x4FF3, - 14376: 0xF963, - 14377: 0x57F9, - 14378: 0x5F98, - 14379: 0x62DC, - 14380: 0x6392, - 14381: 0x676F, - 14382: 0x6E43, - 14383: 0x7119, - 14384: 0x76C3, - 14385: 0x80CC, - 14386: 0x80DA, - 14387: 0x88F4, - 14388: 0x88F5, - 14389: 0x8919, - 14390: 0x8CE0, - 14391: 0x8F29, - 14392: 0x914D, - 14393: 0x966A, - 14394: 0x4F2F, - 14395: 0x4F70, - 14396: 0x5E1B, - 14397: 0x67CF, - 14398: 0x6822, - 14399: 0x767D, - 14400: 0x767E, - 14401: 0x9B44, - 14402: 0x5E61, - 14403: 0x6A0A, - 14404: 0x7169, - 14405: 0x71D4, - 14406: 0x756A, - 14407: 0xF964, - 14408: 0x7E41, - 14409: 0x8543, - 14410: 0x85E9, - 14411: 0x98DC, - 14412: 0x4F10, - 14413: 0x7B4F, - 14414: 0x7F70, - 14415: 0x95A5, - 14416: 0x51E1, - 14417: 0x5E06, - 14418: 0x68B5, - 14419: 0x6C3E, - 14420: 0x6C4E, - 14421: 0x6CDB, - 14422: 0x72AF, - 14423: 0x7BC4, - 14424: 0x8303, - 14425: 0x6CD5, - 14426: 0x743A, - 14427: 0x50FB, - 14428: 0x5288, - 14429: 0x58C1, - 14430: 0x64D8, - 14431: 0x6A97, - 14432: 0x74A7, - 14433: 0x7656, - 14434: 0x78A7, - 14435: 0x8617, - 14436: 0x95E2, - 14437: 0x9739, - 14438: 0xF965, - 14439: 0x535E, - 14440: 0x5F01, - 14441: 0x8B8A, - 14442: 0x8FA8, - 14443: 0x8FAF, - 14444: 0x908A, - 14445: 0x5225, - 14446: 0x77A5, - 14447: 0x9C49, - 14448: 0x9F08, - 14449: 0x4E19, - 14450: 0x5002, - 14451: 0x5175, - 14452: 0x5C5B, - 14453: 0x5E77, - 14454: 0x661E, - 14455: 0x663A, - 14456: 0x67C4, - 14457: 0x68C5, - 14458: 0x70B3, - 14459: 0x7501, - 14460: 0x75C5, - 14461: 0x79C9, - 14462: 0x7ADD, - 14463: 0x8F27, - 14464: 0x9920, - 14465: 0x9A08, - 14466: 0x4FDD, - 14467: 0x5821, - 14468: 0x5831, - 14469: 0x5BF6, - 14470: 0x666E, - 14471: 0x6B65, - 14472: 0x6D11, - 14473: 0x6E7A, - 14474: 0x6F7D, - 14475: 0x73E4, - 14476: 0x752B, - 14477: 0x83E9, - 14478: 0x88DC, - 14479: 0x8913, - 14480: 0x8B5C, - 14481: 0x8F14, - 14482: 0x4F0F, - 14483: 0x50D5, - 14484: 0x5310, - 14485: 0x535C, - 14486: 0x5B93, - 14487: 0x5FA9, - 14488: 0x670D, - 14489: 0x798F, - 14490: 0x8179, - 14491: 0x832F, - 14492: 0x8514, - 14493: 0x8907, - 14494: 0x8986, - 14495: 0x8F39, - 14496: 0x8F3B, - 14497: 0x99A5, - 14498: 0x9C12, - 14499: 0x672C, - 14500: 0x4E76, - 14501: 0x4FF8, - 14502: 0x5949, - 14503: 0x5C01, - 14504: 0x5CEF, - 14505: 0x5CF0, - 14506: 0x6367, - 14507: 0x68D2, - 14508: 0x70FD, - 14509: 0x71A2, - 14510: 0x742B, - 14511: 0x7E2B, - 14512: 0x84EC, - 14513: 0x8702, - 14514: 0x9022, - 14515: 0x92D2, - 14516: 0x9CF3, - 14517: 0x4E0D, - 14518: 0x4ED8, - 14519: 0x4FEF, - 14520: 0x5085, - 14521: 0x5256, - 14522: 0x526F, - 14523: 0x5426, - 14524: 0x5490, - 14525: 0x57E0, - 14526: 0x592B, - 14527: 0x5A66, - 14528: 0x5B5A, - 14529: 0x5B75, - 14530: 0x5BCC, - 14531: 0x5E9C, - 14532: 0xF966, - 14533: 0x6276, - 14534: 0x6577, - 14535: 0x65A7, - 14536: 0x6D6E, - 14537: 0x6EA5, - 14538: 0x7236, - 14539: 0x7B26, - 14540: 0x7C3F, - 14541: 0x7F36, - 14542: 0x8150, - 14543: 0x8151, - 14544: 0x819A, - 14545: 0x8240, - 14546: 0x8299, - 14547: 0x83A9, - 14548: 0x8A03, - 14549: 0x8CA0, - 14550: 0x8CE6, - 14551: 0x8CFB, - 14552: 0x8D74, - 14553: 0x8DBA, - 14554: 0x90E8, - 14555: 0x91DC, - 14556: 0x961C, - 14557: 0x9644, - 14558: 0x99D9, - 14559: 0x9CE7, - 14560: 0x5317, - 14561: 0x5206, - 14562: 0x5429, - 14563: 0x5674, - 14564: 0x58B3, - 14565: 0x5954, - 14566: 0x596E, - 14567: 0x5FFF, - 14568: 0x61A4, - 14569: 0x626E, - 14570: 0x6610, - 14571: 0x6C7E, - 14572: 0x711A, - 14573: 0x76C6, - 14574: 0x7C89, - 14575: 0x7CDE, - 14576: 0x7D1B, - 14577: 0x82AC, - 14578: 0x8CC1, - 14579: 0x96F0, - 14580: 0xF967, - 14581: 0x4F5B, - 14582: 0x5F17, - 14583: 0x5F7F, - 14584: 0x62C2, - 14585: 0x5D29, - 14586: 0x670B, - 14587: 0x68DA, - 14588: 0x787C, - 14589: 0x7E43, - 14590: 0x9D6C, - 14591: 0x4E15, - 14592: 0x5099, - 14593: 0x5315, - 14594: 0x532A, - 14595: 0x5351, - 14596: 0x5983, - 14597: 0x5A62, - 14598: 0x5E87, - 14599: 0x60B2, - 14600: 0x618A, - 14601: 0x6249, - 14602: 0x6279, - 14603: 0x6590, - 14604: 0x6787, - 14605: 0x69A7, - 14606: 0x6BD4, - 14607: 0x6BD6, - 14608: 0x6BD7, - 14609: 0x6BD8, - 14610: 0x6CB8, - 14611: 0xF968, - 14612: 0x7435, - 14613: 0x75FA, - 14614: 0x7812, - 14615: 0x7891, - 14616: 0x79D5, - 14617: 0x79D8, - 14618: 0x7C83, - 14619: 0x7DCB, - 14620: 0x7FE1, - 14621: 0x80A5, - 14622: 0x813E, - 14623: 0x81C2, - 14624: 0x83F2, - 14625: 0x871A, - 14626: 0x88E8, - 14627: 0x8AB9, - 14628: 0x8B6C, - 14629: 0x8CBB, - 14630: 0x9119, - 14631: 0x975E, - 14632: 0x98DB, - 14633: 0x9F3B, - 14634: 0x56AC, - 14635: 0x5B2A, - 14636: 0x5F6C, - 14637: 0x658C, - 14638: 0x6AB3, - 14639: 0x6BAF, - 14640: 0x6D5C, - 14641: 0x6FF1, - 14642: 0x7015, - 14643: 0x725D, - 14644: 0x73AD, - 14645: 0x8CA7, - 14646: 0x8CD3, - 14647: 0x983B, - 14648: 0x6191, - 14649: 0x6C37, - 14650: 0x8058, - 14651: 0x9A01, - 14652: 0x4E4D, - 14653: 0x4E8B, - 14654: 0x4E9B, - 14655: 0x4ED5, - 14656: 0x4F3A, - 14657: 0x4F3C, - 14658: 0x4F7F, - 14659: 0x4FDF, - 14660: 0x50FF, - 14661: 0x53F2, - 14662: 0x53F8, - 14663: 0x5506, - 14664: 0x55E3, - 14665: 0x56DB, - 14666: 0x58EB, - 14667: 0x5962, - 14668: 0x5A11, - 14669: 0x5BEB, - 14670: 0x5BFA, - 14671: 0x5C04, - 14672: 0x5DF3, - 14673: 0x5E2B, - 14674: 0x5F99, - 14675: 0x601D, - 14676: 0x6368, - 14677: 0x659C, - 14678: 0x65AF, - 14679: 0x67F6, - 14680: 0x67FB, - 14681: 0x68AD, - 14682: 0x6B7B, - 14683: 0x6C99, - 14684: 0x6CD7, - 14685: 0x6E23, - 14686: 0x7009, - 14687: 0x7345, - 14688: 0x7802, - 14689: 0x793E, - 14690: 0x7940, - 14691: 0x7960, - 14692: 0x79C1, - 14693: 0x7BE9, - 14694: 0x7D17, - 14695: 0x7D72, - 14696: 0x8086, - 14697: 0x820D, - 14698: 0x838E, - 14699: 0x84D1, - 14700: 0x86C7, - 14701: 0x88DF, - 14702: 0x8A50, - 14703: 0x8A5E, - 14704: 0x8B1D, - 14705: 0x8CDC, - 14706: 0x8D66, - 14707: 0x8FAD, - 14708: 0x90AA, - 14709: 0x98FC, - 14710: 0x99DF, - 14711: 0x9E9D, - 14712: 0x524A, - 14713: 0xF969, - 14714: 0x6714, - 14715: 0xF96A, - 14716: 0x5098, - 14717: 0x522A, - 14718: 0x5C71, - 14719: 0x6563, - 14720: 0x6C55, - 14721: 0x73CA, - 14722: 0x7523, - 14723: 0x759D, - 14724: 0x7B97, - 14725: 0x849C, - 14726: 0x9178, - 14727: 0x9730, - 14728: 0x4E77, - 14729: 0x6492, - 14730: 0x6BBA, - 14731: 0x715E, - 14732: 0x85A9, - 14733: 0x4E09, - 14734: 0xF96B, - 14735: 0x6749, - 14736: 0x68EE, - 14737: 0x6E17, - 14738: 0x829F, - 14739: 0x8518, - 14740: 0x886B, - 14741: 0x63F7, - 14742: 0x6F81, - 14743: 0x9212, - 14744: 0x98AF, - 14745: 0x4E0A, - 14746: 0x50B7, - 14747: 0x50CF, - 14748: 0x511F, - 14749: 0x5546, - 14750: 0x55AA, - 14751: 0x5617, - 14752: 0x5B40, - 14753: 0x5C19, - 14754: 0x5CE0, - 14755: 0x5E38, - 14756: 0x5E8A, - 14757: 0x5EA0, - 14758: 0x5EC2, - 14759: 0x60F3, - 14760: 0x6851, - 14761: 0x6A61, - 14762: 0x6E58, - 14763: 0x723D, - 14764: 0x7240, - 14765: 0x72C0, - 14766: 0x76F8, - 14767: 0x7965, - 14768: 0x7BB1, - 14769: 0x7FD4, - 14770: 0x88F3, - 14771: 0x89F4, - 14772: 0x8A73, - 14773: 0x8C61, - 14774: 0x8CDE, - 14775: 0x971C, - 14776: 0x585E, - 14777: 0x74BD, - 14778: 0x8CFD, - 14779: 0x55C7, - 14780: 0xF96C, - 14781: 0x7A61, - 14782: 0x7D22, - 14783: 0x8272, - 14784: 0x7272, - 14785: 0x751F, - 14786: 0x7525, - 14787: 0xF96D, - 14788: 0x7B19, - 14789: 0x5885, - 14790: 0x58FB, - 14791: 0x5DBC, - 14792: 0x5E8F, - 14793: 0x5EB6, - 14794: 0x5F90, - 14795: 0x6055, - 14796: 0x6292, - 14797: 0x637F, - 14798: 0x654D, - 14799: 0x6691, - 14800: 0x66D9, - 14801: 0x66F8, - 14802: 0x6816, - 14803: 0x68F2, - 14804: 0x7280, - 14805: 0x745E, - 14806: 0x7B6E, - 14807: 0x7D6E, - 14808: 0x7DD6, - 14809: 0x7F72, - 14810: 0x80E5, - 14811: 0x8212, - 14812: 0x85AF, - 14813: 0x897F, - 14814: 0x8A93, - 14815: 0x901D, - 14816: 0x92E4, - 14817: 0x9ECD, - 14818: 0x9F20, - 14819: 0x5915, - 14820: 0x596D, - 14821: 0x5E2D, - 14822: 0x60DC, - 14823: 0x6614, - 14824: 0x6673, - 14825: 0x6790, - 14826: 0x6C50, - 14827: 0x6DC5, - 14828: 0x6F5F, - 14829: 0x77F3, - 14830: 0x78A9, - 14831: 0x84C6, - 14832: 0x91CB, - 14833: 0x932B, - 14834: 0x4ED9, - 14835: 0x50CA, - 14836: 0x5148, - 14837: 0x5584, - 14838: 0x5B0B, - 14839: 0x5BA3, - 14840: 0x6247, - 14841: 0x657E, - 14842: 0x65CB, - 14843: 0x6E32, - 14844: 0x717D, - 14845: 0x7401, - 14846: 0x7444, - 14847: 0x7487, - 14848: 0x74BF, - 14849: 0x766C, - 14850: 0x79AA, - 14851: 0x7DDA, - 14852: 0x7E55, - 14853: 0x7FA8, - 14854: 0x817A, - 14855: 0x81B3, - 14856: 0x8239, - 14857: 0x861A, - 14858: 0x87EC, - 14859: 0x8A75, - 14860: 0x8DE3, - 14861: 0x9078, - 14862: 0x9291, - 14863: 0x9425, - 14864: 0x994D, - 14865: 0x9BAE, - 14866: 0x5368, - 14867: 0x5C51, - 14868: 0x6954, - 14869: 0x6CC4, - 14870: 0x6D29, - 14871: 0x6E2B, - 14872: 0x820C, - 14873: 0x859B, - 14874: 0x893B, - 14875: 0x8A2D, - 14876: 0x8AAA, - 14877: 0x96EA, - 14878: 0x9F67, - 14879: 0x5261, - 14880: 0x66B9, - 14881: 0x6BB2, - 14882: 0x7E96, - 14883: 0x87FE, - 14884: 0x8D0D, - 14885: 0x9583, - 14886: 0x965D, - 14887: 0x651D, - 14888: 0x6D89, - 14889: 0x71EE, - 14890: 0xF96E, - 14891: 0x57CE, - 14892: 0x59D3, - 14893: 0x5BAC, - 14894: 0x6027, - 14895: 0x60FA, - 14896: 0x6210, - 14897: 0x661F, - 14898: 0x665F, - 14899: 0x7329, - 14900: 0x73F9, - 14901: 0x76DB, - 14902: 0x7701, - 14903: 0x7B6C, - 14904: 0x8056, - 14905: 0x8072, - 14906: 0x8165, - 14907: 0x8AA0, - 14908: 0x9192, - 14909: 0x4E16, - 14910: 0x52E2, - 14911: 0x6B72, - 14912: 0x6D17, - 14913: 0x7A05, - 14914: 0x7B39, - 14915: 0x7D30, - 14916: 0xF96F, - 14917: 0x8CB0, - 14918: 0x53EC, - 14919: 0x562F, - 14920: 0x5851, - 14921: 0x5BB5, - 14922: 0x5C0F, - 14923: 0x5C11, - 14924: 0x5DE2, - 14925: 0x6240, - 14926: 0x6383, - 14927: 0x6414, - 14928: 0x662D, - 14929: 0x68B3, - 14930: 0x6CBC, - 14931: 0x6D88, - 14932: 0x6EAF, - 14933: 0x701F, - 14934: 0x70A4, - 14935: 0x71D2, - 14936: 0x7526, - 14937: 0x758F, - 14938: 0x758E, - 14939: 0x7619, - 14940: 0x7B11, - 14941: 0x7BE0, - 14942: 0x7C2B, - 14943: 0x7D20, - 14944: 0x7D39, - 14945: 0x852C, - 14946: 0x856D, - 14947: 0x8607, - 14948: 0x8A34, - 14949: 0x900D, - 14950: 0x9061, - 14951: 0x90B5, - 14952: 0x92B7, - 14953: 0x97F6, - 14954: 0x9A37, - 14955: 0x4FD7, - 14956: 0x5C6C, - 14957: 0x675F, - 14958: 0x6D91, - 14959: 0x7C9F, - 14960: 0x7E8C, - 14961: 0x8B16, - 14962: 0x8D16, - 14963: 0x901F, - 14964: 0x5B6B, - 14965: 0x5DFD, - 14966: 0x640D, - 14967: 0x84C0, - 14968: 0x905C, - 14969: 0x98E1, - 14970: 0x7387, - 14971: 0x5B8B, - 14972: 0x609A, - 14973: 0x677E, - 14974: 0x6DDE, - 14975: 0x8A1F, - 14976: 0x8AA6, - 14977: 0x9001, - 14978: 0x980C, - 14979: 0x5237, - 14980: 0xF970, - 14981: 0x7051, - 14982: 0x788E, - 14983: 0x9396, - 14984: 0x8870, - 14985: 0x91D7, - 14986: 0x4FEE, - 14987: 0x53D7, - 14988: 0x55FD, - 14989: 0x56DA, - 14990: 0x5782, - 14991: 0x58FD, - 14992: 0x5AC2, - 14993: 0x5B88, - 14994: 0x5CAB, - 14995: 0x5CC0, - 14996: 0x5E25, - 14997: 0x6101, - 14998: 0x620D, - 14999: 0x624B, - 15000: 0x6388, - 15001: 0x641C, - 15002: 0x6536, - 15003: 0x6578, - 15004: 0x6A39, - 15005: 0x6B8A, - 15006: 0x6C34, - 15007: 0x6D19, - 15008: 0x6F31, - 15009: 0x71E7, - 15010: 0x72E9, - 15011: 0x7378, - 15012: 0x7407, - 15013: 0x74B2, - 15014: 0x7626, - 15015: 0x7761, - 15016: 0x79C0, - 15017: 0x7A57, - 15018: 0x7AEA, - 15019: 0x7CB9, - 15020: 0x7D8F, - 15021: 0x7DAC, - 15022: 0x7E61, - 15023: 0x7F9E, - 15024: 0x8129, - 15025: 0x8331, - 15026: 0x8490, - 15027: 0x84DA, - 15028: 0x85EA, - 15029: 0x8896, - 15030: 0x8AB0, - 15031: 0x8B90, - 15032: 0x8F38, - 15033: 0x9042, - 15034: 0x9083, - 15035: 0x916C, - 15036: 0x9296, - 15037: 0x92B9, - 15038: 0x968B, - 15039: 0x96A7, - 15040: 0x96A8, - 15041: 0x96D6, - 15042: 0x9700, - 15043: 0x9808, - 15044: 0x9996, - 15045: 0x9AD3, - 15046: 0x9B1A, - 15047: 0x53D4, - 15048: 0x587E, - 15049: 0x5919, - 15050: 0x5B70, - 15051: 0x5BBF, - 15052: 0x6DD1, - 15053: 0x6F5A, - 15054: 0x719F, - 15055: 0x7421, - 15056: 0x74B9, - 15057: 0x8085, - 15058: 0x83FD, - 15059: 0x5DE1, - 15060: 0x5F87, - 15061: 0x5FAA, - 15062: 0x6042, - 15063: 0x65EC, - 15064: 0x6812, - 15065: 0x696F, - 15066: 0x6A53, - 15067: 0x6B89, - 15068: 0x6D35, - 15069: 0x6DF3, - 15070: 0x73E3, - 15071: 0x76FE, - 15072: 0x77AC, - 15073: 0x7B4D, - 15074: 0x7D14, - 15075: 0x8123, - 15076: 0x821C, - 15077: 0x8340, - 15078: 0x84F4, - 15079: 0x8563, - 15080: 0x8A62, - 15081: 0x8AC4, - 15082: 0x9187, - 15083: 0x931E, - 15084: 0x9806, - 15085: 0x99B4, - 15086: 0x620C, - 15087: 0x8853, - 15088: 0x8FF0, - 15089: 0x9265, - 15090: 0x5D07, - 15091: 0x5D27, - 15092: 0x5D69, - 15093: 0x745F, - 15094: 0x819D, - 15095: 0x8768, - 15096: 0x6FD5, - 15097: 0x62FE, - 15098: 0x7FD2, - 15099: 0x8936, - 15100: 0x8972, - 15101: 0x4E1E, - 15102: 0x4E58, - 15103: 0x50E7, - 15104: 0x52DD, - 15105: 0x5347, - 15106: 0x627F, - 15107: 0x6607, - 15108: 0x7E69, - 15109: 0x8805, - 15110: 0x965E, - 15111: 0x4F8D, - 15112: 0x5319, - 15113: 0x5636, - 15114: 0x59CB, - 15115: 0x5AA4, - 15116: 0x5C38, - 15117: 0x5C4E, - 15118: 0x5C4D, - 15119: 0x5E02, - 15120: 0x5F11, - 15121: 0x6043, - 15122: 0x65BD, - 15123: 0x662F, - 15124: 0x6642, - 15125: 0x67BE, - 15126: 0x67F4, - 15127: 0x731C, - 15128: 0x77E2, - 15129: 0x793A, - 15130: 0x7FC5, - 15131: 0x8494, - 15132: 0x84CD, - 15133: 0x8996, - 15134: 0x8A66, - 15135: 0x8A69, - 15136: 0x8AE1, - 15137: 0x8C55, - 15138: 0x8C7A, - 15139: 0x57F4, - 15140: 0x5BD4, - 15141: 0x5F0F, - 15142: 0x606F, - 15143: 0x62ED, - 15144: 0x690D, - 15145: 0x6B96, - 15146: 0x6E5C, - 15147: 0x7184, - 15148: 0x7BD2, - 15149: 0x8755, - 15150: 0x8B58, - 15151: 0x8EFE, - 15152: 0x98DF, - 15153: 0x98FE, - 15154: 0x4F38, - 15155: 0x4F81, - 15156: 0x4FE1, - 15157: 0x547B, - 15158: 0x5A20, - 15159: 0x5BB8, - 15160: 0x613C, - 15161: 0x65B0, - 15162: 0x6668, - 15163: 0x71FC, - 15164: 0x7533, - 15165: 0x795E, - 15166: 0x7D33, - 15167: 0x814E, - 15168: 0x81E3, - 15169: 0x8398, - 15170: 0x85AA, - 15171: 0x85CE, - 15172: 0x8703, - 15173: 0x8A0A, - 15174: 0x8EAB, - 15175: 0x8F9B, - 15176: 0xF971, - 15177: 0x8FC5, - 15178: 0x5931, - 15179: 0x5BA4, - 15180: 0x5BE6, - 15181: 0x6089, - 15182: 0x5BE9, - 15183: 0x5C0B, - 15184: 0x5FC3, - 15185: 0x6C81, - 15186: 0xF972, - 15187: 0x6DF1, - 15188: 0x700B, - 15189: 0x751A, - 15190: 0x82AF, - 15191: 0x8AF6, - 15192: 0x4EC0, - 15193: 0x5341, - 15194: 0xF973, - 15195: 0x96D9, - 15196: 0x6C0F, - 15197: 0x4E9E, - 15198: 0x4FC4, - 15199: 0x5152, - 15200: 0x555E, - 15201: 0x5A25, - 15202: 0x5CE8, - 15203: 0x6211, - 15204: 0x7259, - 15205: 0x82BD, - 15206: 0x83AA, - 15207: 0x86FE, - 15208: 0x8859, - 15209: 0x8A1D, - 15210: 0x963F, - 15211: 0x96C5, - 15212: 0x9913, - 15213: 0x9D09, - 15214: 0x9D5D, - 15215: 0x580A, - 15216: 0x5CB3, - 15217: 0x5DBD, - 15218: 0x5E44, - 15219: 0x60E1, - 15220: 0x6115, - 15221: 0x63E1, - 15222: 0x6A02, - 15223: 0x6E25, - 15224: 0x9102, - 15225: 0x9354, - 15226: 0x984E, - 15227: 0x9C10, - 15228: 0x9F77, - 15229: 0x5B89, - 15230: 0x5CB8, - 15231: 0x6309, - 15232: 0x664F, - 15233: 0x6848, - 15234: 0x773C, - 15235: 0x96C1, - 15236: 0x978D, - 15237: 0x9854, - 15238: 0x9B9F, - 15239: 0x65A1, - 15240: 0x8B01, - 15241: 0x8ECB, - 15242: 0x95BC, - 15243: 0x5535, - 15244: 0x5CA9, - 15245: 0x5DD6, - 15246: 0x5EB5, - 15247: 0x6697, - 15248: 0x764C, - 15249: 0x83F4, - 15250: 0x95C7, - 15251: 0x58D3, - 15252: 0x62BC, - 15253: 0x72CE, - 15254: 0x9D28, - 15255: 0x4EF0, - 15256: 0x592E, - 15257: 0x600F, - 15258: 0x663B, - 15259: 0x6B83, - 15260: 0x79E7, - 15261: 0x9D26, - 15262: 0x5393, - 15263: 0x54C0, - 15264: 0x57C3, - 15265: 0x5D16, - 15266: 0x611B, - 15267: 0x66D6, - 15268: 0x6DAF, - 15269: 0x788D, - 15270: 0x827E, - 15271: 0x9698, - 15272: 0x9744, - 15273: 0x5384, - 15274: 0x627C, - 15275: 0x6396, - 15276: 0x6DB2, - 15277: 0x7E0A, - 15278: 0x814B, - 15279: 0x984D, - 15280: 0x6AFB, - 15281: 0x7F4C, - 15282: 0x9DAF, - 15283: 0x9E1A, - 15284: 0x4E5F, - 15285: 0x503B, - 15286: 0x51B6, - 15287: 0x591C, - 15288: 0x60F9, - 15289: 0x63F6, - 15290: 0x6930, - 15291: 0x723A, - 15292: 0x8036, - 15293: 0xF974, - 15294: 0x91CE, - 15295: 0x5F31, - 15296: 0xF975, - 15297: 0xF976, - 15298: 0x7D04, - 15299: 0x82E5, - 15300: 0x846F, - 15301: 0x84BB, - 15302: 0x85E5, - 15303: 0x8E8D, - 15304: 0xF977, - 15305: 0x4F6F, - 15306: 0xF978, - 15307: 0xF979, - 15308: 0x58E4, - 15309: 0x5B43, - 15310: 0x6059, - 15311: 0x63DA, - 15312: 0x6518, - 15313: 0x656D, - 15314: 0x6698, - 15315: 0xF97A, - 15316: 0x694A, - 15317: 0x6A23, - 15318: 0x6D0B, - 15319: 0x7001, - 15320: 0x716C, - 15321: 0x75D2, - 15322: 0x760D, - 15323: 0x79B3, - 15324: 0x7A70, - 15325: 0xF97B, - 15326: 0x7F8A, - 15327: 0xF97C, - 15328: 0x8944, - 15329: 0xF97D, - 15330: 0x8B93, - 15331: 0x91C0, - 15332: 0x967D, - 15333: 0xF97E, - 15334: 0x990A, - 15335: 0x5704, - 15336: 0x5FA1, - 15337: 0x65BC, - 15338: 0x6F01, - 15339: 0x7600, - 15340: 0x79A6, - 15341: 0x8A9E, - 15342: 0x99AD, - 15343: 0x9B5A, - 15344: 0x9F6C, - 15345: 0x5104, - 15346: 0x61B6, - 15347: 0x6291, - 15348: 0x6A8D, - 15349: 0x81C6, - 15350: 0x5043, - 15351: 0x5830, - 15352: 0x5F66, - 15353: 0x7109, - 15354: 0x8A00, - 15355: 0x8AFA, - 15356: 0x5B7C, - 15357: 0x8616, - 15358: 0x4FFA, - 15359: 0x513C, - 15360: 0x56B4, - 15361: 0x5944, - 15362: 0x63A9, - 15363: 0x6DF9, - 15364: 0x5DAA, - 15365: 0x696D, - 15366: 0x5186, - 15367: 0x4E88, - 15368: 0x4F59, - 15369: 0xF97F, - 15370: 0xF980, - 15371: 0xF981, - 15372: 0x5982, - 15373: 0xF982, - 15374: 0xF983, - 15375: 0x6B5F, - 15376: 0x6C5D, - 15377: 0xF984, - 15378: 0x74B5, - 15379: 0x7916, - 15380: 0xF985, - 15381: 0x8207, - 15382: 0x8245, - 15383: 0x8339, - 15384: 0x8F3F, - 15385: 0x8F5D, - 15386: 0xF986, - 15387: 0x9918, - 15388: 0xF987, - 15389: 0xF988, - 15390: 0xF989, - 15391: 0x4EA6, - 15392: 0xF98A, - 15393: 0x57DF, - 15394: 0x5F79, - 15395: 0x6613, - 15396: 0xF98B, - 15397: 0xF98C, - 15398: 0x75AB, - 15399: 0x7E79, - 15400: 0x8B6F, - 15401: 0xF98D, - 15402: 0x9006, - 15403: 0x9A5B, - 15404: 0x56A5, - 15405: 0x5827, - 15406: 0x59F8, - 15407: 0x5A1F, - 15408: 0x5BB4, - 15409: 0xF98E, - 15410: 0x5EF6, - 15411: 0xF98F, - 15412: 0xF990, - 15413: 0x6350, - 15414: 0x633B, - 15415: 0xF991, - 15416: 0x693D, - 15417: 0x6C87, - 15418: 0x6CBF, - 15419: 0x6D8E, - 15420: 0x6D93, - 15421: 0x6DF5, - 15422: 0x6F14, - 15423: 0xF992, - 15424: 0x70DF, - 15425: 0x7136, - 15426: 0x7159, - 15427: 0xF993, - 15428: 0x71C3, - 15429: 0x71D5, - 15430: 0xF994, - 15431: 0x784F, - 15432: 0x786F, - 15433: 0xF995, - 15434: 0x7B75, - 15435: 0x7DE3, - 15436: 0xF996, - 15437: 0x7E2F, - 15438: 0xF997, - 15439: 0x884D, - 15440: 0x8EDF, - 15441: 0xF998, - 15442: 0xF999, - 15443: 0xF99A, - 15444: 0x925B, - 15445: 0xF99B, - 15446: 0x9CF6, - 15447: 0xF99C, - 15448: 0xF99D, - 15449: 0xF99E, - 15450: 0x6085, - 15451: 0x6D85, - 15452: 0xF99F, - 15453: 0x71B1, - 15454: 0xF9A0, - 15455: 0xF9A1, - 15456: 0x95B1, - 15457: 0x53AD, - 15458: 0xF9A2, - 15459: 0xF9A3, - 15460: 0xF9A4, - 15461: 0x67D3, - 15462: 0xF9A5, - 15463: 0x708E, - 15464: 0x7130, - 15465: 0x7430, - 15466: 0x8276, - 15467: 0x82D2, - 15468: 0xF9A6, - 15469: 0x95BB, - 15470: 0x9AE5, - 15471: 0x9E7D, - 15472: 0x66C4, - 15473: 0xF9A7, - 15474: 0x71C1, - 15475: 0x8449, - 15476: 0xF9A8, - 15477: 0xF9A9, - 15478: 0x584B, - 15479: 0xF9AA, - 15480: 0xF9AB, - 15481: 0x5DB8, - 15482: 0x5F71, - 15483: 0xF9AC, - 15484: 0x6620, - 15485: 0x668E, - 15486: 0x6979, - 15487: 0x69AE, - 15488: 0x6C38, - 15489: 0x6CF3, - 15490: 0x6E36, - 15491: 0x6F41, - 15492: 0x6FDA, - 15493: 0x701B, - 15494: 0x702F, - 15495: 0x7150, - 15496: 0x71DF, - 15497: 0x7370, - 15498: 0xF9AD, - 15499: 0x745B, - 15500: 0xF9AE, - 15501: 0x74D4, - 15502: 0x76C8, - 15503: 0x7A4E, - 15504: 0x7E93, - 15505: 0xF9AF, - 15506: 0xF9B0, - 15507: 0x82F1, - 15508: 0x8A60, - 15509: 0x8FCE, - 15510: 0xF9B1, - 15511: 0x9348, - 15512: 0xF9B2, - 15513: 0x9719, - 15514: 0xF9B3, - 15515: 0xF9B4, - 15516: 0x4E42, - 15517: 0x502A, - 15518: 0xF9B5, - 15519: 0x5208, - 15520: 0x53E1, - 15521: 0x66F3, - 15522: 0x6C6D, - 15523: 0x6FCA, - 15524: 0x730A, - 15525: 0x777F, - 15526: 0x7A62, - 15527: 0x82AE, - 15528: 0x85DD, - 15529: 0x8602, - 15530: 0xF9B6, - 15531: 0x88D4, - 15532: 0x8A63, - 15533: 0x8B7D, - 15534: 0x8C6B, - 15535: 0xF9B7, - 15536: 0x92B3, - 15537: 0xF9B8, - 15538: 0x9713, - 15539: 0x9810, - 15540: 0x4E94, - 15541: 0x4F0D, - 15542: 0x4FC9, - 15543: 0x50B2, - 15544: 0x5348, - 15545: 0x543E, - 15546: 0x5433, - 15547: 0x55DA, - 15548: 0x5862, - 15549: 0x58BA, - 15550: 0x5967, - 15551: 0x5A1B, - 15552: 0x5BE4, - 15553: 0x609F, - 15554: 0xF9B9, - 15555: 0x61CA, - 15556: 0x6556, - 15557: 0x65FF, - 15558: 0x6664, - 15559: 0x68A7, - 15560: 0x6C5A, - 15561: 0x6FB3, - 15562: 0x70CF, - 15563: 0x71AC, - 15564: 0x7352, - 15565: 0x7B7D, - 15566: 0x8708, - 15567: 0x8AA4, - 15568: 0x9C32, - 15569: 0x9F07, - 15570: 0x5C4B, - 15571: 0x6C83, - 15572: 0x7344, - 15573: 0x7389, - 15574: 0x923A, - 15575: 0x6EAB, - 15576: 0x7465, - 15577: 0x761F, - 15578: 0x7A69, - 15579: 0x7E15, - 15580: 0x860A, - 15581: 0x5140, - 15582: 0x58C5, - 15583: 0x64C1, - 15584: 0x74EE, - 15585: 0x7515, - 15586: 0x7670, - 15587: 0x7FC1, - 15588: 0x9095, - 15589: 0x96CD, - 15590: 0x9954, - 15591: 0x6E26, - 15592: 0x74E6, - 15593: 0x7AA9, - 15594: 0x7AAA, - 15595: 0x81E5, - 15596: 0x86D9, - 15597: 0x8778, - 15598: 0x8A1B, - 15599: 0x5A49, - 15600: 0x5B8C, - 15601: 0x5B9B, - 15602: 0x68A1, - 15603: 0x6900, - 15604: 0x6D63, - 15605: 0x73A9, - 15606: 0x7413, - 15607: 0x742C, - 15608: 0x7897, - 15609: 0x7DE9, - 15610: 0x7FEB, - 15611: 0x8118, - 15612: 0x8155, - 15613: 0x839E, - 15614: 0x8C4C, - 15615: 0x962E, - 15616: 0x9811, - 15617: 0x66F0, - 15618: 0x5F80, - 15619: 0x65FA, - 15620: 0x6789, - 15621: 0x6C6A, - 15622: 0x738B, - 15623: 0x502D, - 15624: 0x5A03, - 15625: 0x6B6A, - 15626: 0x77EE, - 15627: 0x5916, - 15628: 0x5D6C, - 15629: 0x5DCD, - 15630: 0x7325, - 15631: 0x754F, - 15632: 0xF9BA, - 15633: 0xF9BB, - 15634: 0x50E5, - 15635: 0x51F9, - 15636: 0x582F, - 15637: 0x592D, - 15638: 0x5996, - 15639: 0x59DA, - 15640: 0x5BE5, - 15641: 0xF9BC, - 15642: 0xF9BD, - 15643: 0x5DA2, - 15644: 0x62D7, - 15645: 0x6416, - 15646: 0x6493, - 15647: 0x64FE, - 15648: 0xF9BE, - 15649: 0x66DC, - 15650: 0xF9BF, - 15651: 0x6A48, - 15652: 0xF9C0, - 15653: 0x71FF, - 15654: 0x7464, - 15655: 0xF9C1, - 15656: 0x7A88, - 15657: 0x7AAF, - 15658: 0x7E47, - 15659: 0x7E5E, - 15660: 0x8000, - 15661: 0x8170, - 15662: 0xF9C2, - 15663: 0x87EF, - 15664: 0x8981, - 15665: 0x8B20, - 15666: 0x9059, - 15667: 0xF9C3, - 15668: 0x9080, - 15669: 0x9952, - 15670: 0x617E, - 15671: 0x6B32, - 15672: 0x6D74, - 15673: 0x7E1F, - 15674: 0x8925, - 15675: 0x8FB1, - 15676: 0x4FD1, - 15677: 0x50AD, - 15678: 0x5197, - 15679: 0x52C7, - 15680: 0x57C7, - 15681: 0x5889, - 15682: 0x5BB9, - 15683: 0x5EB8, - 15684: 0x6142, - 15685: 0x6995, - 15686: 0x6D8C, - 15687: 0x6E67, - 15688: 0x6EB6, - 15689: 0x7194, - 15690: 0x7462, - 15691: 0x7528, - 15692: 0x752C, - 15693: 0x8073, - 15694: 0x8338, - 15695: 0x84C9, - 15696: 0x8E0A, - 15697: 0x9394, - 15698: 0x93DE, - 15699: 0xF9C4, - 15700: 0x4E8E, - 15701: 0x4F51, - 15702: 0x5076, - 15703: 0x512A, - 15704: 0x53C8, - 15705: 0x53CB, - 15706: 0x53F3, - 15707: 0x5B87, - 15708: 0x5BD3, - 15709: 0x5C24, - 15710: 0x611A, - 15711: 0x6182, - 15712: 0x65F4, - 15713: 0x725B, - 15714: 0x7397, - 15715: 0x7440, - 15716: 0x76C2, - 15717: 0x7950, - 15718: 0x7991, - 15719: 0x79B9, - 15720: 0x7D06, - 15721: 0x7FBD, - 15722: 0x828B, - 15723: 0x85D5, - 15724: 0x865E, - 15725: 0x8FC2, - 15726: 0x9047, - 15727: 0x90F5, - 15728: 0x91EA, - 15729: 0x9685, - 15730: 0x96E8, - 15731: 0x96E9, - 15732: 0x52D6, - 15733: 0x5F67, - 15734: 0x65ED, - 15735: 0x6631, - 15736: 0x682F, - 15737: 0x715C, - 15738: 0x7A36, - 15739: 0x90C1, - 15740: 0x980A, - 15741: 0x4E91, - 15742: 0xF9C5, - 15743: 0x6A52, - 15744: 0x6B9E, - 15745: 0x6F90, - 15746: 0x7189, - 15747: 0x8018, - 15748: 0x82B8, - 15749: 0x8553, - 15750: 0x904B, - 15751: 0x9695, - 15752: 0x96F2, - 15753: 0x97FB, - 15754: 0x851A, - 15755: 0x9B31, - 15756: 0x4E90, - 15757: 0x718A, - 15758: 0x96C4, - 15759: 0x5143, - 15760: 0x539F, - 15761: 0x54E1, - 15762: 0x5713, - 15763: 0x5712, - 15764: 0x57A3, - 15765: 0x5A9B, - 15766: 0x5AC4, - 15767: 0x5BC3, - 15768: 0x6028, - 15769: 0x613F, - 15770: 0x63F4, - 15771: 0x6C85, - 15772: 0x6D39, - 15773: 0x6E72, - 15774: 0x6E90, - 15775: 0x7230, - 15776: 0x733F, - 15777: 0x7457, - 15778: 0x82D1, - 15779: 0x8881, - 15780: 0x8F45, - 15781: 0x9060, - 15782: 0xF9C6, - 15783: 0x9662, - 15784: 0x9858, - 15785: 0x9D1B, - 15786: 0x6708, - 15787: 0x8D8A, - 15788: 0x925E, - 15789: 0x4F4D, - 15790: 0x5049, - 15791: 0x50DE, - 15792: 0x5371, - 15793: 0x570D, - 15794: 0x59D4, - 15795: 0x5A01, - 15796: 0x5C09, - 15797: 0x6170, - 15798: 0x6690, - 15799: 0x6E2D, - 15800: 0x7232, - 15801: 0x744B, - 15802: 0x7DEF, - 15803: 0x80C3, - 15804: 0x840E, - 15805: 0x8466, - 15806: 0x853F, - 15807: 0x875F, - 15808: 0x885B, - 15809: 0x8918, - 15810: 0x8B02, - 15811: 0x9055, - 15812: 0x97CB, - 15813: 0x9B4F, - 15814: 0x4E73, - 15815: 0x4F91, - 15816: 0x5112, - 15817: 0x516A, - 15818: 0xF9C7, - 15819: 0x552F, - 15820: 0x55A9, - 15821: 0x5B7A, - 15822: 0x5BA5, - 15823: 0x5E7C, - 15824: 0x5E7D, - 15825: 0x5EBE, - 15826: 0x60A0, - 15827: 0x60DF, - 15828: 0x6108, - 15829: 0x6109, - 15830: 0x63C4, - 15831: 0x6538, - 15832: 0x6709, - 15833: 0xF9C8, - 15834: 0x67D4, - 15835: 0x67DA, - 15836: 0xF9C9, - 15837: 0x6961, - 15838: 0x6962, - 15839: 0x6CB9, - 15840: 0x6D27, - 15841: 0xF9CA, - 15842: 0x6E38, - 15843: 0xF9CB, - 15844: 0x6FE1, - 15845: 0x7336, - 15846: 0x7337, - 15847: 0xF9CC, - 15848: 0x745C, - 15849: 0x7531, - 15850: 0xF9CD, - 15851: 0x7652, - 15852: 0xF9CE, - 15853: 0xF9CF, - 15854: 0x7DAD, - 15855: 0x81FE, - 15856: 0x8438, - 15857: 0x88D5, - 15858: 0x8A98, - 15859: 0x8ADB, - 15860: 0x8AED, - 15861: 0x8E30, - 15862: 0x8E42, - 15863: 0x904A, - 15864: 0x903E, - 15865: 0x907A, - 15866: 0x9149, - 15867: 0x91C9, - 15868: 0x936E, - 15869: 0xF9D0, - 15870: 0xF9D1, - 15871: 0x5809, - 15872: 0xF9D2, - 15873: 0x6BD3, - 15874: 0x8089, - 15875: 0x80B2, - 15876: 0xF9D3, - 15877: 0xF9D4, - 15878: 0x5141, - 15879: 0x596B, - 15880: 0x5C39, - 15881: 0xF9D5, - 15882: 0xF9D6, - 15883: 0x6F64, - 15884: 0x73A7, - 15885: 0x80E4, - 15886: 0x8D07, - 15887: 0xF9D7, - 15888: 0x9217, - 15889: 0x958F, - 15890: 0xF9D8, - 15891: 0xF9D9, - 15892: 0xF9DA, - 15893: 0xF9DB, - 15894: 0x807F, - 15895: 0x620E, - 15896: 0x701C, - 15897: 0x7D68, - 15898: 0x878D, - 15899: 0xF9DC, - 15900: 0x57A0, - 15901: 0x6069, - 15902: 0x6147, - 15903: 0x6BB7, - 15904: 0x8ABE, - 15905: 0x9280, - 15906: 0x96B1, - 15907: 0x4E59, - 15908: 0x541F, - 15909: 0x6DEB, - 15910: 0x852D, - 15911: 0x9670, - 15912: 0x97F3, - 15913: 0x98EE, - 15914: 0x63D6, - 15915: 0x6CE3, - 15916: 0x9091, - 15917: 0x51DD, - 15918: 0x61C9, - 15919: 0x81BA, - 15920: 0x9DF9, - 15921: 0x4F9D, - 15922: 0x501A, - 15923: 0x5100, - 15924: 0x5B9C, - 15925: 0x610F, - 15926: 0x61FF, - 15927: 0x64EC, - 15928: 0x6905, - 15929: 0x6BC5, - 15930: 0x7591, - 15931: 0x77E3, - 15932: 0x7FA9, - 15933: 0x8264, - 15934: 0x858F, - 15935: 0x87FB, - 15936: 0x8863, - 15937: 0x8ABC, - 15938: 0x8B70, - 15939: 0x91AB, - 15940: 0x4E8C, - 15941: 0x4EE5, - 15942: 0x4F0A, - 15943: 0xF9DD, - 15944: 0xF9DE, - 15945: 0x5937, - 15946: 0x59E8, - 15947: 0xF9DF, - 15948: 0x5DF2, - 15949: 0x5F1B, - 15950: 0x5F5B, - 15951: 0x6021, - 15952: 0xF9E0, - 15953: 0xF9E1, - 15954: 0xF9E2, - 15955: 0xF9E3, - 15956: 0x723E, - 15957: 0x73E5, - 15958: 0xF9E4, - 15959: 0x7570, - 15960: 0x75CD, - 15961: 0xF9E5, - 15962: 0x79FB, - 15963: 0xF9E6, - 15964: 0x800C, - 15965: 0x8033, - 15966: 0x8084, - 15967: 0x82E1, - 15968: 0x8351, - 15969: 0xF9E7, - 15970: 0xF9E8, - 15971: 0x8CBD, - 15972: 0x8CB3, - 15973: 0x9087, - 15974: 0xF9E9, - 15975: 0xF9EA, - 15976: 0x98F4, - 15977: 0x990C, - 15978: 0xF9EB, - 15979: 0xF9EC, - 15980: 0x7037, - 15981: 0x76CA, - 15982: 0x7FCA, - 15983: 0x7FCC, - 15984: 0x7FFC, - 15985: 0x8B1A, - 15986: 0x4EBA, - 15987: 0x4EC1, - 15988: 0x5203, - 15989: 0x5370, - 15990: 0xF9ED, - 15991: 0x54BD, - 15992: 0x56E0, - 15993: 0x59FB, - 15994: 0x5BC5, - 15995: 0x5F15, - 15996: 0x5FCD, - 15997: 0x6E6E, - 15998: 0xF9EE, - 15999: 0xF9EF, - 16000: 0x7D6A, - 16001: 0x8335, - 16002: 0xF9F0, - 16003: 0x8693, - 16004: 0x8A8D, - 16005: 0xF9F1, - 16006: 0x976D, - 16007: 0x9777, - 16008: 0xF9F2, - 16009: 0xF9F3, - 16010: 0x4E00, - 16011: 0x4F5A, - 16012: 0x4F7E, - 16013: 0x58F9, - 16014: 0x65E5, - 16015: 0x6EA2, - 16016: 0x9038, - 16017: 0x93B0, - 16018: 0x99B9, - 16019: 0x4EFB, - 16020: 0x58EC, - 16021: 0x598A, - 16022: 0x59D9, - 16023: 0x6041, - 16024: 0xF9F4, - 16025: 0xF9F5, - 16026: 0x7A14, - 16027: 0xF9F6, - 16028: 0x834F, - 16029: 0x8CC3, - 16030: 0x5165, - 16031: 0x5344, - 16032: 0xF9F7, - 16033: 0xF9F8, - 16034: 0xF9F9, - 16035: 0x4ECD, - 16036: 0x5269, - 16037: 0x5B55, - 16038: 0x82BF, - 16039: 0x4ED4, - 16040: 0x523A, - 16041: 0x54A8, - 16042: 0x59C9, - 16043: 0x59FF, - 16044: 0x5B50, - 16045: 0x5B57, - 16046: 0x5B5C, - 16047: 0x6063, - 16048: 0x6148, - 16049: 0x6ECB, - 16050: 0x7099, - 16051: 0x716E, - 16052: 0x7386, - 16053: 0x74F7, - 16054: 0x75B5, - 16055: 0x78C1, - 16056: 0x7D2B, - 16057: 0x8005, - 16058: 0x81EA, - 16059: 0x8328, - 16060: 0x8517, - 16061: 0x85C9, - 16062: 0x8AEE, - 16063: 0x8CC7, - 16064: 0x96CC, - 16065: 0x4F5C, - 16066: 0x52FA, - 16067: 0x56BC, - 16068: 0x65AB, - 16069: 0x6628, - 16070: 0x707C, - 16071: 0x70B8, - 16072: 0x7235, - 16073: 0x7DBD, - 16074: 0x828D, - 16075: 0x914C, - 16076: 0x96C0, - 16077: 0x9D72, - 16078: 0x5B71, - 16079: 0x68E7, - 16080: 0x6B98, - 16081: 0x6F7A, - 16082: 0x76DE, - 16083: 0x5C91, - 16084: 0x66AB, - 16085: 0x6F5B, - 16086: 0x7BB4, - 16087: 0x7C2A, - 16088: 0x8836, - 16089: 0x96DC, - 16090: 0x4E08, - 16091: 0x4ED7, - 16092: 0x5320, - 16093: 0x5834, - 16094: 0x58BB, - 16095: 0x58EF, - 16096: 0x596C, - 16097: 0x5C07, - 16098: 0x5E33, - 16099: 0x5E84, - 16100: 0x5F35, - 16101: 0x638C, - 16102: 0x66B2, - 16103: 0x6756, - 16104: 0x6A1F, - 16105: 0x6AA3, - 16106: 0x6B0C, - 16107: 0x6F3F, - 16108: 0x7246, - 16109: 0xF9FA, - 16110: 0x7350, - 16111: 0x748B, - 16112: 0x7AE0, - 16113: 0x7CA7, - 16114: 0x8178, - 16115: 0x81DF, - 16116: 0x81E7, - 16117: 0x838A, - 16118: 0x846C, - 16119: 0x8523, - 16120: 0x8594, - 16121: 0x85CF, - 16122: 0x88DD, - 16123: 0x8D13, - 16124: 0x91AC, - 16125: 0x9577, - 16126: 0x969C, - 16127: 0x518D, - 16128: 0x54C9, - 16129: 0x5728, - 16130: 0x5BB0, - 16131: 0x624D, - 16132: 0x6750, - 16133: 0x683D, - 16134: 0x6893, - 16135: 0x6E3D, - 16136: 0x6ED3, - 16137: 0x707D, - 16138: 0x7E21, - 16139: 0x88C1, - 16140: 0x8CA1, - 16141: 0x8F09, - 16142: 0x9F4B, - 16143: 0x9F4E, - 16144: 0x722D, - 16145: 0x7B8F, - 16146: 0x8ACD, - 16147: 0x931A, - 16148: 0x4F47, - 16149: 0x4F4E, - 16150: 0x5132, - 16151: 0x5480, - 16152: 0x59D0, - 16153: 0x5E95, - 16154: 0x62B5, - 16155: 0x6775, - 16156: 0x696E, - 16157: 0x6A17, - 16158: 0x6CAE, - 16159: 0x6E1A, - 16160: 0x72D9, - 16161: 0x732A, - 16162: 0x75BD, - 16163: 0x7BB8, - 16164: 0x7D35, - 16165: 0x82E7, - 16166: 0x83F9, - 16167: 0x8457, - 16168: 0x85F7, - 16169: 0x8A5B, - 16170: 0x8CAF, - 16171: 0x8E87, - 16172: 0x9019, - 16173: 0x90B8, - 16174: 0x96CE, - 16175: 0x9F5F, - 16176: 0x52E3, - 16177: 0x540A, - 16178: 0x5AE1, - 16179: 0x5BC2, - 16180: 0x6458, - 16181: 0x6575, - 16182: 0x6EF4, - 16183: 0x72C4, - 16184: 0xF9FB, - 16185: 0x7684, - 16186: 0x7A4D, - 16187: 0x7B1B, - 16188: 0x7C4D, - 16189: 0x7E3E, - 16190: 0x7FDF, - 16191: 0x837B, - 16192: 0x8B2B, - 16193: 0x8CCA, - 16194: 0x8D64, - 16195: 0x8DE1, - 16196: 0x8E5F, - 16197: 0x8FEA, - 16198: 0x8FF9, - 16199: 0x9069, - 16200: 0x93D1, - 16201: 0x4F43, - 16202: 0x4F7A, - 16203: 0x50B3, - 16204: 0x5168, - 16205: 0x5178, - 16206: 0x524D, - 16207: 0x526A, - 16208: 0x5861, - 16209: 0x587C, - 16210: 0x5960, - 16211: 0x5C08, - 16212: 0x5C55, - 16213: 0x5EDB, - 16214: 0x609B, - 16215: 0x6230, - 16216: 0x6813, - 16217: 0x6BBF, - 16218: 0x6C08, - 16219: 0x6FB1, - 16220: 0x714E, - 16221: 0x7420, - 16222: 0x7530, - 16223: 0x7538, - 16224: 0x7551, - 16225: 0x7672, - 16226: 0x7B4C, - 16227: 0x7B8B, - 16228: 0x7BAD, - 16229: 0x7BC6, - 16230: 0x7E8F, - 16231: 0x8A6E, - 16232: 0x8F3E, - 16233: 0x8F49, - 16234: 0x923F, - 16235: 0x9293, - 16236: 0x9322, - 16237: 0x942B, - 16238: 0x96FB, - 16239: 0x985A, - 16240: 0x986B, - 16241: 0x991E, - 16242: 0x5207, - 16243: 0x622A, - 16244: 0x6298, - 16245: 0x6D59, - 16246: 0x7664, - 16247: 0x7ACA, - 16248: 0x7BC0, - 16249: 0x7D76, - 16250: 0x5360, - 16251: 0x5CBE, - 16252: 0x5E97, - 16253: 0x6F38, - 16254: 0x70B9, - 16255: 0x7C98, - 16256: 0x9711, - 16257: 0x9B8E, - 16258: 0x9EDE, - 16259: 0x63A5, - 16260: 0x647A, - 16261: 0x8776, - 16262: 0x4E01, - 16263: 0x4E95, - 16264: 0x4EAD, - 16265: 0x505C, - 16266: 0x5075, - 16267: 0x5448, - 16268: 0x59C3, - 16269: 0x5B9A, - 16270: 0x5E40, - 16271: 0x5EAD, - 16272: 0x5EF7, - 16273: 0x5F81, - 16274: 0x60C5, - 16275: 0x633A, - 16276: 0x653F, - 16277: 0x6574, - 16278: 0x65CC, - 16279: 0x6676, - 16280: 0x6678, - 16281: 0x67FE, - 16282: 0x6968, - 16283: 0x6A89, - 16284: 0x6B63, - 16285: 0x6C40, - 16286: 0x6DC0, - 16287: 0x6DE8, - 16288: 0x6E1F, - 16289: 0x6E5E, - 16290: 0x701E, - 16291: 0x70A1, - 16292: 0x738E, - 16293: 0x73FD, - 16294: 0x753A, - 16295: 0x775B, - 16296: 0x7887, - 16297: 0x798E, - 16298: 0x7A0B, - 16299: 0x7A7D, - 16300: 0x7CBE, - 16301: 0x7D8E, - 16302: 0x8247, - 16303: 0x8A02, - 16304: 0x8AEA, - 16305: 0x8C9E, - 16306: 0x912D, - 16307: 0x914A, - 16308: 0x91D8, - 16309: 0x9266, - 16310: 0x92CC, - 16311: 0x9320, - 16312: 0x9706, - 16313: 0x9756, - 16314: 0x975C, - 16315: 0x9802, - 16316: 0x9F0E, - 16317: 0x5236, - 16318: 0x5291, - 16319: 0x557C, - 16320: 0x5824, - 16321: 0x5E1D, - 16322: 0x5F1F, - 16323: 0x608C, - 16324: 0x63D0, - 16325: 0x68AF, - 16326: 0x6FDF, - 16327: 0x796D, - 16328: 0x7B2C, - 16329: 0x81CD, - 16330: 0x85BA, - 16331: 0x88FD, - 16332: 0x8AF8, - 16333: 0x8E44, - 16334: 0x918D, - 16335: 0x9664, - 16336: 0x969B, - 16337: 0x973D, - 16338: 0x984C, - 16339: 0x9F4A, - 16340: 0x4FCE, - 16341: 0x5146, - 16342: 0x51CB, - 16343: 0x52A9, - 16344: 0x5632, - 16345: 0x5F14, - 16346: 0x5F6B, - 16347: 0x63AA, - 16348: 0x64CD, - 16349: 0x65E9, - 16350: 0x6641, - 16351: 0x66FA, - 16352: 0x66F9, - 16353: 0x671D, - 16354: 0x689D, - 16355: 0x68D7, - 16356: 0x69FD, - 16357: 0x6F15, - 16358: 0x6F6E, - 16359: 0x7167, - 16360: 0x71E5, - 16361: 0x722A, - 16362: 0x74AA, - 16363: 0x773A, - 16364: 0x7956, - 16365: 0x795A, - 16366: 0x79DF, - 16367: 0x7A20, - 16368: 0x7A95, - 16369: 0x7C97, - 16370: 0x7CDF, - 16371: 0x7D44, - 16372: 0x7E70, - 16373: 0x8087, - 16374: 0x85FB, - 16375: 0x86A4, - 16376: 0x8A54, - 16377: 0x8ABF, - 16378: 0x8D99, - 16379: 0x8E81, - 16380: 0x9020, - 16381: 0x906D, - 16382: 0x91E3, - 16383: 0x963B, - 16384: 0x96D5, - 16385: 0x9CE5, - 16386: 0x65CF, - 16387: 0x7C07, - 16388: 0x8DB3, - 16389: 0x93C3, - 16390: 0x5B58, - 16391: 0x5C0A, - 16392: 0x5352, - 16393: 0x62D9, - 16394: 0x731D, - 16395: 0x5027, - 16396: 0x5B97, - 16397: 0x5F9E, - 16398: 0x60B0, - 16399: 0x616B, - 16400: 0x68D5, - 16401: 0x6DD9, - 16402: 0x742E, - 16403: 0x7A2E, - 16404: 0x7D42, - 16405: 0x7D9C, - 16406: 0x7E31, - 16407: 0x816B, - 16408: 0x8E2A, - 16409: 0x8E35, - 16410: 0x937E, - 16411: 0x9418, - 16412: 0x4F50, - 16413: 0x5750, - 16414: 0x5DE6, - 16415: 0x5EA7, - 16416: 0x632B, - 16417: 0x7F6A, - 16418: 0x4E3B, - 16419: 0x4F4F, - 16420: 0x4F8F, - 16421: 0x505A, - 16422: 0x59DD, - 16423: 0x80C4, - 16424: 0x546A, - 16425: 0x5468, - 16426: 0x55FE, - 16427: 0x594F, - 16428: 0x5B99, - 16429: 0x5DDE, - 16430: 0x5EDA, - 16431: 0x665D, - 16432: 0x6731, - 16433: 0x67F1, - 16434: 0x682A, - 16435: 0x6CE8, - 16436: 0x6D32, - 16437: 0x6E4A, - 16438: 0x6F8D, - 16439: 0x70B7, - 16440: 0x73E0, - 16441: 0x7587, - 16442: 0x7C4C, - 16443: 0x7D02, - 16444: 0x7D2C, - 16445: 0x7DA2, - 16446: 0x821F, - 16447: 0x86DB, - 16448: 0x8A3B, - 16449: 0x8A85, - 16450: 0x8D70, - 16451: 0x8E8A, - 16452: 0x8F33, - 16453: 0x9031, - 16454: 0x914E, - 16455: 0x9152, - 16456: 0x9444, - 16457: 0x99D0, - 16458: 0x7AF9, - 16459: 0x7CA5, - 16460: 0x4FCA, - 16461: 0x5101, - 16462: 0x51C6, - 16463: 0x57C8, - 16464: 0x5BEF, - 16465: 0x5CFB, - 16466: 0x6659, - 16467: 0x6A3D, - 16468: 0x6D5A, - 16469: 0x6E96, - 16470: 0x6FEC, - 16471: 0x710C, - 16472: 0x756F, - 16473: 0x7AE3, - 16474: 0x8822, - 16475: 0x9021, - 16476: 0x9075, - 16477: 0x96CB, - 16478: 0x99FF, - 16479: 0x8301, - 16480: 0x4E2D, - 16481: 0x4EF2, - 16482: 0x8846, - 16483: 0x91CD, - 16484: 0x537D, - 16485: 0x6ADB, - 16486: 0x696B, - 16487: 0x6C41, - 16488: 0x847A, - 16489: 0x589E, - 16490: 0x618E, - 16491: 0x66FE, - 16492: 0x62EF, - 16493: 0x70DD, - 16494: 0x7511, - 16495: 0x75C7, - 16496: 0x7E52, - 16497: 0x84B8, - 16498: 0x8B49, - 16499: 0x8D08, - 16500: 0x4E4B, - 16501: 0x53EA, - 16502: 0x54AB, - 16503: 0x5730, - 16504: 0x5740, - 16505: 0x5FD7, - 16506: 0x6301, - 16507: 0x6307, - 16508: 0x646F, - 16509: 0x652F, - 16510: 0x65E8, - 16511: 0x667A, - 16512: 0x679D, - 16513: 0x67B3, - 16514: 0x6B62, - 16515: 0x6C60, - 16516: 0x6C9A, - 16517: 0x6F2C, - 16518: 0x77E5, - 16519: 0x7825, - 16520: 0x7949, - 16521: 0x7957, - 16522: 0x7D19, - 16523: 0x80A2, - 16524: 0x8102, - 16525: 0x81F3, - 16526: 0x829D, - 16527: 0x82B7, - 16528: 0x8718, - 16529: 0x8A8C, - 16530: 0xF9FC, - 16531: 0x8D04, - 16532: 0x8DBE, - 16533: 0x9072, - 16534: 0x76F4, - 16535: 0x7A19, - 16536: 0x7A37, - 16537: 0x7E54, - 16538: 0x8077, - 16539: 0x5507, - 16540: 0x55D4, - 16541: 0x5875, - 16542: 0x632F, - 16543: 0x6422, - 16544: 0x6649, - 16545: 0x664B, - 16546: 0x686D, - 16547: 0x699B, - 16548: 0x6B84, - 16549: 0x6D25, - 16550: 0x6EB1, - 16551: 0x73CD, - 16552: 0x7468, - 16553: 0x74A1, - 16554: 0x755B, - 16555: 0x75B9, - 16556: 0x76E1, - 16557: 0x771E, - 16558: 0x778B, - 16559: 0x79E6, - 16560: 0x7E09, - 16561: 0x7E1D, - 16562: 0x81FB, - 16563: 0x852F, - 16564: 0x8897, - 16565: 0x8A3A, - 16566: 0x8CD1, - 16567: 0x8EEB, - 16568: 0x8FB0, - 16569: 0x9032, - 16570: 0x93AD, - 16571: 0x9663, - 16572: 0x9673, - 16573: 0x9707, - 16574: 0x4F84, - 16575: 0x53F1, - 16576: 0x59EA, - 16577: 0x5AC9, - 16578: 0x5E19, - 16579: 0x684E, - 16580: 0x74C6, - 16581: 0x75BE, - 16582: 0x79E9, - 16583: 0x7A92, - 16584: 0x81A3, - 16585: 0x86ED, - 16586: 0x8CEA, - 16587: 0x8DCC, - 16588: 0x8FED, - 16589: 0x659F, - 16590: 0x6715, - 16591: 0xF9FD, - 16592: 0x57F7, - 16593: 0x6F57, - 16594: 0x7DDD, - 16595: 0x8F2F, - 16596: 0x93F6, - 16597: 0x96C6, - 16598: 0x5FB5, - 16599: 0x61F2, - 16600: 0x6F84, - 16601: 0x4E14, - 16602: 0x4F98, - 16603: 0x501F, - 16604: 0x53C9, - 16605: 0x55DF, - 16606: 0x5D6F, - 16607: 0x5DEE, - 16608: 0x6B21, - 16609: 0x6B64, - 16610: 0x78CB, - 16611: 0x7B9A, - 16612: 0xF9FE, - 16613: 0x8E49, - 16614: 0x8ECA, - 16615: 0x906E, - 16616: 0x6349, - 16617: 0x643E, - 16618: 0x7740, - 16619: 0x7A84, - 16620: 0x932F, - 16621: 0x947F, - 16622: 0x9F6A, - 16623: 0x64B0, - 16624: 0x6FAF, - 16625: 0x71E6, - 16626: 0x74A8, - 16627: 0x74DA, - 16628: 0x7AC4, - 16629: 0x7C12, - 16630: 0x7E82, - 16631: 0x7CB2, - 16632: 0x7E98, - 16633: 0x8B9A, - 16634: 0x8D0A, - 16635: 0x947D, - 16636: 0x9910, - 16637: 0x994C, - 16638: 0x5239, - 16639: 0x5BDF, - 16640: 0x64E6, - 16641: 0x672D, - 16642: 0x7D2E, - 16643: 0x50ED, - 16644: 0x53C3, - 16645: 0x5879, - 16646: 0x6158, - 16647: 0x6159, - 16648: 0x61FA, - 16649: 0x65AC, - 16650: 0x7AD9, - 16651: 0x8B92, - 16652: 0x8B96, - 16653: 0x5009, - 16654: 0x5021, - 16655: 0x5275, - 16656: 0x5531, - 16657: 0x5A3C, - 16658: 0x5EE0, - 16659: 0x5F70, - 16660: 0x6134, - 16661: 0x655E, - 16662: 0x660C, - 16663: 0x6636, - 16664: 0x66A2, - 16665: 0x69CD, - 16666: 0x6EC4, - 16667: 0x6F32, - 16668: 0x7316, - 16669: 0x7621, - 16670: 0x7A93, - 16671: 0x8139, - 16672: 0x8259, - 16673: 0x83D6, - 16674: 0x84BC, - 16675: 0x50B5, - 16676: 0x57F0, - 16677: 0x5BC0, - 16678: 0x5BE8, - 16679: 0x5F69, - 16680: 0x63A1, - 16681: 0x7826, - 16682: 0x7DB5, - 16683: 0x83DC, - 16684: 0x8521, - 16685: 0x91C7, - 16686: 0x91F5, - 16687: 0x518A, - 16688: 0x67F5, - 16689: 0x7B56, - 16690: 0x8CAC, - 16691: 0x51C4, - 16692: 0x59BB, - 16693: 0x60BD, - 16694: 0x8655, - 16695: 0x501C, - 16696: 0xF9FF, - 16697: 0x5254, - 16698: 0x5C3A, - 16699: 0x617D, - 16700: 0x621A, - 16701: 0x62D3, - 16702: 0x64F2, - 16703: 0x65A5, - 16704: 0x6ECC, - 16705: 0x7620, - 16706: 0x810A, - 16707: 0x8E60, - 16708: 0x965F, - 16709: 0x96BB, - 16710: 0x4EDF, - 16711: 0x5343, - 16712: 0x5598, - 16713: 0x5929, - 16714: 0x5DDD, - 16715: 0x64C5, - 16716: 0x6CC9, - 16717: 0x6DFA, - 16718: 0x7394, - 16719: 0x7A7F, - 16720: 0x821B, - 16721: 0x85A6, - 16722: 0x8CE4, - 16723: 0x8E10, - 16724: 0x9077, - 16725: 0x91E7, - 16726: 0x95E1, - 16727: 0x9621, - 16728: 0x97C6, - 16729: 0x51F8, - 16730: 0x54F2, - 16731: 0x5586, - 16732: 0x5FB9, - 16733: 0x64A4, - 16734: 0x6F88, - 16735: 0x7DB4, - 16736: 0x8F1F, - 16737: 0x8F4D, - 16738: 0x9435, - 16739: 0x50C9, - 16740: 0x5C16, - 16741: 0x6CBE, - 16742: 0x6DFB, - 16743: 0x751B, - 16744: 0x77BB, - 16745: 0x7C3D, - 16746: 0x7C64, - 16747: 0x8A79, - 16748: 0x8AC2, - 16749: 0x581E, - 16750: 0x59BE, - 16751: 0x5E16, - 16752: 0x6377, - 16753: 0x7252, - 16754: 0x758A, - 16755: 0x776B, - 16756: 0x8ADC, - 16757: 0x8CBC, - 16758: 0x8F12, - 16759: 0x5EF3, - 16760: 0x6674, - 16761: 0x6DF8, - 16762: 0x807D, - 16763: 0x83C1, - 16764: 0x8ACB, - 16765: 0x9751, - 16766: 0x9BD6, - 16767: 0xFA00, - 16768: 0x5243, - 16769: 0x66FF, - 16770: 0x6D95, - 16771: 0x6EEF, - 16772: 0x7DE0, - 16773: 0x8AE6, - 16774: 0x902E, - 16775: 0x905E, - 16776: 0x9AD4, - 16777: 0x521D, - 16778: 0x527F, - 16779: 0x54E8, - 16780: 0x6194, - 16781: 0x6284, - 16782: 0x62DB, - 16783: 0x68A2, - 16784: 0x6912, - 16785: 0x695A, - 16786: 0x6A35, - 16787: 0x7092, - 16788: 0x7126, - 16789: 0x785D, - 16790: 0x7901, - 16791: 0x790E, - 16792: 0x79D2, - 16793: 0x7A0D, - 16794: 0x8096, - 16795: 0x8278, - 16796: 0x82D5, - 16797: 0x8349, - 16798: 0x8549, - 16799: 0x8C82, - 16800: 0x8D85, - 16801: 0x9162, - 16802: 0x918B, - 16803: 0x91AE, - 16804: 0x4FC3, - 16805: 0x56D1, - 16806: 0x71ED, - 16807: 0x77D7, - 16808: 0x8700, - 16809: 0x89F8, - 16810: 0x5BF8, - 16811: 0x5FD6, - 16812: 0x6751, - 16813: 0x90A8, - 16814: 0x53E2, - 16815: 0x585A, - 16816: 0x5BF5, - 16817: 0x60A4, - 16818: 0x6181, - 16819: 0x6460, - 16820: 0x7E3D, - 16821: 0x8070, - 16822: 0x8525, - 16823: 0x9283, - 16824: 0x64AE, - 16825: 0x50AC, - 16826: 0x5D14, - 16827: 0x6700, - 16828: 0x589C, - 16829: 0x62BD, - 16830: 0x63A8, - 16831: 0x690E, - 16832: 0x6978, - 16833: 0x6A1E, - 16834: 0x6E6B, - 16835: 0x76BA, - 16836: 0x79CB, - 16837: 0x82BB, - 16838: 0x8429, - 16839: 0x8ACF, - 16840: 0x8DA8, - 16841: 0x8FFD, - 16842: 0x9112, - 16843: 0x914B, - 16844: 0x919C, - 16845: 0x9310, - 16846: 0x9318, - 16847: 0x939A, - 16848: 0x96DB, - 16849: 0x9A36, - 16850: 0x9C0D, - 16851: 0x4E11, - 16852: 0x755C, - 16853: 0x795D, - 16854: 0x7AFA, - 16855: 0x7B51, - 16856: 0x7BC9, - 16857: 0x7E2E, - 16858: 0x84C4, - 16859: 0x8E59, - 16860: 0x8E74, - 16861: 0x8EF8, - 16862: 0x9010, - 16863: 0x6625, - 16864: 0x693F, - 16865: 0x7443, - 16866: 0x51FA, - 16867: 0x672E, - 16868: 0x9EDC, - 16869: 0x5145, - 16870: 0x5FE0, - 16871: 0x6C96, - 16872: 0x87F2, - 16873: 0x885D, - 16874: 0x8877, - 16875: 0x60B4, - 16876: 0x81B5, - 16877: 0x8403, - 16878: 0x8D05, - 16879: 0x53D6, - 16880: 0x5439, - 16881: 0x5634, - 16882: 0x5A36, - 16883: 0x5C31, - 16884: 0x708A, - 16885: 0x7FE0, - 16886: 0x805A, - 16887: 0x8106, - 16888: 0x81ED, - 16889: 0x8DA3, - 16890: 0x9189, - 16891: 0x9A5F, - 16892: 0x9DF2, - 16893: 0x5074, - 16894: 0x4EC4, - 16895: 0x53A0, - 16896: 0x60FB, - 16897: 0x6E2C, - 16898: 0x5C64, - 16899: 0x4F88, - 16900: 0x5024, - 16901: 0x55E4, - 16902: 0x5CD9, - 16903: 0x5E5F, - 16904: 0x6065, - 16905: 0x6894, - 16906: 0x6CBB, - 16907: 0x6DC4, - 16908: 0x71BE, - 16909: 0x75D4, - 16910: 0x75F4, - 16911: 0x7661, - 16912: 0x7A1A, - 16913: 0x7A49, - 16914: 0x7DC7, - 16915: 0x7DFB, - 16916: 0x7F6E, - 16917: 0x81F4, - 16918: 0x86A9, - 16919: 0x8F1C, - 16920: 0x96C9, - 16921: 0x99B3, - 16922: 0x9F52, - 16923: 0x5247, - 16924: 0x52C5, - 16925: 0x98ED, - 16926: 0x89AA, - 16927: 0x4E03, - 16928: 0x67D2, - 16929: 0x6F06, - 16930: 0x4FB5, - 16931: 0x5BE2, - 16932: 0x6795, - 16933: 0x6C88, - 16934: 0x6D78, - 16935: 0x741B, - 16936: 0x7827, - 16937: 0x91DD, - 16938: 0x937C, - 16939: 0x87C4, - 16940: 0x79E4, - 16941: 0x7A31, - 16942: 0x5FEB, - 16943: 0x4ED6, - 16944: 0x54A4, - 16945: 0x553E, - 16946: 0x58AE, - 16947: 0x59A5, - 16948: 0x60F0, - 16949: 0x6253, - 16950: 0x62D6, - 16951: 0x6736, - 16952: 0x6955, - 16953: 0x8235, - 16954: 0x9640, - 16955: 0x99B1, - 16956: 0x99DD, - 16957: 0x502C, - 16958: 0x5353, - 16959: 0x5544, - 16960: 0x577C, - 16961: 0xFA01, - 16962: 0x6258, - 16963: 0xFA02, - 16964: 0x64E2, - 16965: 0x666B, - 16966: 0x67DD, - 16967: 0x6FC1, - 16968: 0x6FEF, - 16969: 0x7422, - 16970: 0x7438, - 16971: 0x8A17, - 16972: 0x9438, - 16973: 0x5451, - 16974: 0x5606, - 16975: 0x5766, - 16976: 0x5F48, - 16977: 0x619A, - 16978: 0x6B4E, - 16979: 0x7058, - 16980: 0x70AD, - 16981: 0x7DBB, - 16982: 0x8A95, - 16983: 0x596A, - 16984: 0x812B, - 16985: 0x63A2, - 16986: 0x7708, - 16987: 0x803D, - 16988: 0x8CAA, - 16989: 0x5854, - 16990: 0x642D, - 16991: 0x69BB, - 16992: 0x5B95, - 16993: 0x5E11, - 16994: 0x6E6F, - 16995: 0xFA03, - 16996: 0x8569, - 16997: 0x514C, - 16998: 0x53F0, - 16999: 0x592A, - 17000: 0x6020, - 17001: 0x614B, - 17002: 0x6B86, - 17003: 0x6C70, - 17004: 0x6CF0, - 17005: 0x7B1E, - 17006: 0x80CE, - 17007: 0x82D4, - 17008: 0x8DC6, - 17009: 0x90B0, - 17010: 0x98B1, - 17011: 0xFA04, - 17012: 0x64C7, - 17013: 0x6FA4, - 17014: 0x6491, - 17015: 0x6504, - 17016: 0x514E, - 17017: 0x5410, - 17018: 0x571F, - 17019: 0x8A0E, - 17020: 0x615F, - 17021: 0x6876, - 17022: 0xFA05, - 17023: 0x75DB, - 17024: 0x7B52, - 17025: 0x7D71, - 17026: 0x901A, - 17027: 0x5806, - 17028: 0x69CC, - 17029: 0x817F, - 17030: 0x892A, - 17031: 0x9000, - 17032: 0x9839, - 17033: 0x5078, - 17034: 0x5957, - 17035: 0x59AC, - 17036: 0x6295, - 17037: 0x900F, - 17038: 0x9B2A, - 17039: 0x615D, - 17040: 0x7279, - 17041: 0x95D6, - 17042: 0x5761, - 17043: 0x5A46, - 17044: 0x5DF4, - 17045: 0x628A, - 17046: 0x64AD, - 17047: 0x64FA, - 17048: 0x6777, - 17049: 0x6CE2, - 17050: 0x6D3E, - 17051: 0x722C, - 17052: 0x7436, - 17053: 0x7834, - 17054: 0x7F77, - 17055: 0x82AD, - 17056: 0x8DDB, - 17057: 0x9817, - 17058: 0x5224, - 17059: 0x5742, - 17060: 0x677F, - 17061: 0x7248, - 17062: 0x74E3, - 17063: 0x8CA9, - 17064: 0x8FA6, - 17065: 0x9211, - 17066: 0x962A, - 17067: 0x516B, - 17068: 0x53ED, - 17069: 0x634C, - 17070: 0x4F69, - 17071: 0x5504, - 17072: 0x6096, - 17073: 0x6557, - 17074: 0x6C9B, - 17075: 0x6D7F, - 17076: 0x724C, - 17077: 0x72FD, - 17078: 0x7A17, - 17079: 0x8987, - 17080: 0x8C9D, - 17081: 0x5F6D, - 17082: 0x6F8E, - 17083: 0x70F9, - 17084: 0x81A8, - 17085: 0x610E, - 17086: 0x4FBF, - 17087: 0x504F, - 17088: 0x6241, - 17089: 0x7247, - 17090: 0x7BC7, - 17091: 0x7DE8, - 17092: 0x7FE9, - 17093: 0x904D, - 17094: 0x97AD, - 17095: 0x9A19, - 17096: 0x8CB6, - 17097: 0x576A, - 17098: 0x5E73, - 17099: 0x67B0, - 17100: 0x840D, - 17101: 0x8A55, - 17102: 0x5420, - 17103: 0x5B16, - 17104: 0x5E63, - 17105: 0x5EE2, - 17106: 0x5F0A, - 17107: 0x6583, - 17108: 0x80BA, - 17109: 0x853D, - 17110: 0x9589, - 17111: 0x965B, - 17112: 0x4F48, - 17113: 0x5305, - 17114: 0x530D, - 17115: 0x530F, - 17116: 0x5486, - 17117: 0x54FA, - 17118: 0x5703, - 17119: 0x5E03, - 17120: 0x6016, - 17121: 0x629B, - 17122: 0x62B1, - 17123: 0x6355, - 17124: 0xFA06, - 17125: 0x6CE1, - 17126: 0x6D66, - 17127: 0x75B1, - 17128: 0x7832, - 17129: 0x80DE, - 17130: 0x812F, - 17131: 0x82DE, - 17132: 0x8461, - 17133: 0x84B2, - 17134: 0x888D, - 17135: 0x8912, - 17136: 0x900B, - 17137: 0x92EA, - 17138: 0x98FD, - 17139: 0x9B91, - 17140: 0x5E45, - 17141: 0x66B4, - 17142: 0x66DD, - 17143: 0x7011, - 17144: 0x7206, - 17145: 0xFA07, - 17146: 0x4FF5, - 17147: 0x527D, - 17148: 0x5F6A, - 17149: 0x6153, - 17150: 0x6753, - 17151: 0x6A19, - 17152: 0x6F02, - 17153: 0x74E2, - 17154: 0x7968, - 17155: 0x8868, - 17156: 0x8C79, - 17157: 0x98C7, - 17158: 0x98C4, - 17159: 0x9A43, - 17160: 0x54C1, - 17161: 0x7A1F, - 17162: 0x6953, - 17163: 0x8AF7, - 17164: 0x8C4A, - 17165: 0x98A8, - 17166: 0x99AE, - 17167: 0x5F7C, - 17168: 0x62AB, - 17169: 0x75B2, - 17170: 0x76AE, - 17171: 0x88AB, - 17172: 0x907F, - 17173: 0x9642, - 17174: 0x5339, - 17175: 0x5F3C, - 17176: 0x5FC5, - 17177: 0x6CCC, - 17178: 0x73CC, - 17179: 0x7562, - 17180: 0x758B, - 17181: 0x7B46, - 17182: 0x82FE, - 17183: 0x999D, - 17184: 0x4E4F, - 17185: 0x903C, - 17186: 0x4E0B, - 17187: 0x4F55, - 17188: 0x53A6, - 17189: 0x590F, - 17190: 0x5EC8, - 17191: 0x6630, - 17192: 0x6CB3, - 17193: 0x7455, - 17194: 0x8377, - 17195: 0x8766, - 17196: 0x8CC0, - 17197: 0x9050, - 17198: 0x971E, - 17199: 0x9C15, - 17200: 0x58D1, - 17201: 0x5B78, - 17202: 0x8650, - 17203: 0x8B14, - 17204: 0x9DB4, - 17205: 0x5BD2, - 17206: 0x6068, - 17207: 0x608D, - 17208: 0x65F1, - 17209: 0x6C57, - 17210: 0x6F22, - 17211: 0x6FA3, - 17212: 0x701A, - 17213: 0x7F55, - 17214: 0x7FF0, - 17215: 0x9591, - 17216: 0x9592, - 17217: 0x9650, - 17218: 0x97D3, - 17219: 0x5272, - 17220: 0x8F44, - 17221: 0x51FD, - 17222: 0x542B, - 17223: 0x54B8, - 17224: 0x5563, - 17225: 0x558A, - 17226: 0x6ABB, - 17227: 0x6DB5, - 17228: 0x7DD8, - 17229: 0x8266, - 17230: 0x929C, - 17231: 0x9677, - 17232: 0x9E79, - 17233: 0x5408, - 17234: 0x54C8, - 17235: 0x76D2, - 17236: 0x86E4, - 17237: 0x95A4, - 17238: 0x95D4, - 17239: 0x965C, - 17240: 0x4EA2, - 17241: 0x4F09, - 17242: 0x59EE, - 17243: 0x5AE6, - 17244: 0x5DF7, - 17245: 0x6052, - 17246: 0x6297, - 17247: 0x676D, - 17248: 0x6841, - 17249: 0x6C86, - 17250: 0x6E2F, - 17251: 0x7F38, - 17252: 0x809B, - 17253: 0x822A, - 17254: 0xFA08, - 17255: 0xFA09, - 17256: 0x9805, - 17257: 0x4EA5, - 17258: 0x5055, - 17259: 0x54B3, - 17260: 0x5793, - 17261: 0x595A, - 17262: 0x5B69, - 17263: 0x5BB3, - 17264: 0x61C8, - 17265: 0x6977, - 17266: 0x6D77, - 17267: 0x7023, - 17268: 0x87F9, - 17269: 0x89E3, - 17270: 0x8A72, - 17271: 0x8AE7, - 17272: 0x9082, - 17273: 0x99ED, - 17274: 0x9AB8, - 17275: 0x52BE, - 17276: 0x6838, - 17277: 0x5016, - 17278: 0x5E78, - 17279: 0x674F, - 17280: 0x8347, - 17281: 0x884C, - 17282: 0x4EAB, - 17283: 0x5411, - 17284: 0x56AE, - 17285: 0x73E6, - 17286: 0x9115, - 17287: 0x97FF, - 17288: 0x9909, - 17289: 0x9957, - 17290: 0x9999, - 17291: 0x5653, - 17292: 0x589F, - 17293: 0x865B, - 17294: 0x8A31, - 17295: 0x61B2, - 17296: 0x6AF6, - 17297: 0x737B, - 17298: 0x8ED2, - 17299: 0x6B47, - 17300: 0x96AA, - 17301: 0x9A57, - 17302: 0x5955, - 17303: 0x7200, - 17304: 0x8D6B, - 17305: 0x9769, - 17306: 0x4FD4, - 17307: 0x5CF4, - 17308: 0x5F26, - 17309: 0x61F8, - 17310: 0x665B, - 17311: 0x6CEB, - 17312: 0x70AB, - 17313: 0x7384, - 17314: 0x73B9, - 17315: 0x73FE, - 17316: 0x7729, - 17317: 0x774D, - 17318: 0x7D43, - 17319: 0x7D62, - 17320: 0x7E23, - 17321: 0x8237, - 17322: 0x8852, - 17323: 0xFA0A, - 17324: 0x8CE2, - 17325: 0x9249, - 17326: 0x986F, - 17327: 0x5B51, - 17328: 0x7A74, - 17329: 0x8840, - 17330: 0x9801, - 17331: 0x5ACC, - 17332: 0x4FE0, - 17333: 0x5354, - 17334: 0x593E, - 17335: 0x5CFD, - 17336: 0x633E, - 17337: 0x6D79, - 17338: 0x72F9, - 17339: 0x8105, - 17340: 0x8107, - 17341: 0x83A2, - 17342: 0x92CF, - 17343: 0x9830, - 17344: 0x4EA8, - 17345: 0x5144, - 17346: 0x5211, - 17347: 0x578B, - 17348: 0x5F62, - 17349: 0x6CC2, - 17350: 0x6ECE, - 17351: 0x7005, - 17352: 0x7050, - 17353: 0x70AF, - 17354: 0x7192, - 17355: 0x73E9, - 17356: 0x7469, - 17357: 0x834A, - 17358: 0x87A2, - 17359: 0x8861, - 17360: 0x9008, - 17361: 0x90A2, - 17362: 0x93A3, - 17363: 0x99A8, - 17364: 0x516E, - 17365: 0x5F57, - 17366: 0x60E0, - 17367: 0x6167, - 17368: 0x66B3, - 17369: 0x8559, - 17370: 0x8E4A, - 17371: 0x91AF, - 17372: 0x978B, - 17373: 0x4E4E, - 17374: 0x4E92, - 17375: 0x547C, - 17376: 0x58D5, - 17377: 0x58FA, - 17378: 0x597D, - 17379: 0x5CB5, - 17380: 0x5F27, - 17381: 0x6236, - 17382: 0x6248, - 17383: 0x660A, - 17384: 0x6667, - 17385: 0x6BEB, - 17386: 0x6D69, - 17387: 0x6DCF, - 17388: 0x6E56, - 17389: 0x6EF8, - 17390: 0x6F94, - 17391: 0x6FE0, - 17392: 0x6FE9, - 17393: 0x705D, - 17394: 0x72D0, - 17395: 0x7425, - 17396: 0x745A, - 17397: 0x74E0, - 17398: 0x7693, - 17399: 0x795C, - 17400: 0x7CCA, - 17401: 0x7E1E, - 17402: 0x80E1, - 17403: 0x82A6, - 17404: 0x846B, - 17405: 0x84BF, - 17406: 0x864E, - 17407: 0x865F, - 17408: 0x8774, - 17409: 0x8B77, - 17410: 0x8C6A, - 17411: 0x93AC, - 17412: 0x9800, - 17413: 0x9865, - 17414: 0x60D1, - 17415: 0x6216, - 17416: 0x9177, - 17417: 0x5A5A, - 17418: 0x660F, - 17419: 0x6DF7, - 17420: 0x6E3E, - 17421: 0x743F, - 17422: 0x9B42, - 17423: 0x5FFD, - 17424: 0x60DA, - 17425: 0x7B0F, - 17426: 0x54C4, - 17427: 0x5F18, - 17428: 0x6C5E, - 17429: 0x6CD3, - 17430: 0x6D2A, - 17431: 0x70D8, - 17432: 0x7D05, - 17433: 0x8679, - 17434: 0x8A0C, - 17435: 0x9D3B, - 17436: 0x5316, - 17437: 0x548C, - 17438: 0x5B05, - 17439: 0x6A3A, - 17440: 0x706B, - 17441: 0x7575, - 17442: 0x798D, - 17443: 0x79BE, - 17444: 0x82B1, - 17445: 0x83EF, - 17446: 0x8A71, - 17447: 0x8B41, - 17448: 0x8CA8, - 17449: 0x9774, - 17450: 0xFA0B, - 17451: 0x64F4, - 17452: 0x652B, - 17453: 0x78BA, - 17454: 0x78BB, - 17455: 0x7A6B, - 17456: 0x4E38, - 17457: 0x559A, - 17458: 0x5950, - 17459: 0x5BA6, - 17460: 0x5E7B, - 17461: 0x60A3, - 17462: 0x63DB, - 17463: 0x6B61, - 17464: 0x6665, - 17465: 0x6853, - 17466: 0x6E19, - 17467: 0x7165, - 17468: 0x74B0, - 17469: 0x7D08, - 17470: 0x9084, - 17471: 0x9A69, - 17472: 0x9C25, - 17473: 0x6D3B, - 17474: 0x6ED1, - 17475: 0x733E, - 17476: 0x8C41, - 17477: 0x95CA, - 17478: 0x51F0, - 17479: 0x5E4C, - 17480: 0x5FA8, - 17481: 0x604D, - 17482: 0x60F6, - 17483: 0x6130, - 17484: 0x614C, - 17485: 0x6643, - 17486: 0x6644, - 17487: 0x69A5, - 17488: 0x6CC1, - 17489: 0x6E5F, - 17490: 0x6EC9, - 17491: 0x6F62, - 17492: 0x714C, - 17493: 0x749C, - 17494: 0x7687, - 17495: 0x7BC1, - 17496: 0x7C27, - 17497: 0x8352, - 17498: 0x8757, - 17499: 0x9051, - 17500: 0x968D, - 17501: 0x9EC3, - 17502: 0x532F, - 17503: 0x56DE, - 17504: 0x5EFB, - 17505: 0x5F8A, - 17506: 0x6062, - 17507: 0x6094, - 17508: 0x61F7, - 17509: 0x6666, - 17510: 0x6703, - 17511: 0x6A9C, - 17512: 0x6DEE, - 17513: 0x6FAE, - 17514: 0x7070, - 17515: 0x736A, - 17516: 0x7E6A, - 17517: 0x81BE, - 17518: 0x8334, - 17519: 0x86D4, - 17520: 0x8AA8, - 17521: 0x8CC4, - 17522: 0x5283, - 17523: 0x7372, - 17524: 0x5B96, - 17525: 0x6A6B, - 17526: 0x9404, - 17527: 0x54EE, - 17528: 0x5686, - 17529: 0x5B5D, - 17530: 0x6548, - 17531: 0x6585, - 17532: 0x66C9, - 17533: 0x689F, - 17534: 0x6D8D, - 17535: 0x6DC6, - 17536: 0x723B, - 17537: 0x80B4, - 17538: 0x9175, - 17539: 0x9A4D, - 17540: 0x4FAF, - 17541: 0x5019, - 17542: 0x539A, - 17543: 0x540E, - 17544: 0x543C, - 17545: 0x5589, - 17546: 0x55C5, - 17547: 0x5E3F, - 17548: 0x5F8C, - 17549: 0x673D, - 17550: 0x7166, - 17551: 0x73DD, - 17552: 0x9005, - 17553: 0x52DB, - 17554: 0x52F3, - 17555: 0x5864, - 17556: 0x58CE, - 17557: 0x7104, - 17558: 0x718F, - 17559: 0x71FB, - 17560: 0x85B0, - 17561: 0x8A13, - 17562: 0x6688, - 17563: 0x85A8, - 17564: 0x55A7, - 17565: 0x6684, - 17566: 0x714A, - 17567: 0x8431, - 17568: 0x5349, - 17569: 0x5599, - 17570: 0x6BC1, - 17571: 0x5F59, - 17572: 0x5FBD, - 17573: 0x63EE, - 17574: 0x6689, - 17575: 0x7147, - 17576: 0x8AF1, - 17577: 0x8F1D, - 17578: 0x9EBE, - 17579: 0x4F11, - 17580: 0x643A, - 17581: 0x70CB, - 17582: 0x7566, - 17583: 0x8667, - 17584: 0x6064, - 17585: 0x8B4E, - 17586: 0x9DF8, - 17587: 0x5147, - 17588: 0x51F6, - 17589: 0x5308, - 17590: 0x6D36, - 17591: 0x80F8, - 17592: 0x9ED1, - 17593: 0x6615, - 17594: 0x6B23, - 17595: 0x7098, - 17596: 0x75D5, - 17597: 0x5403, - 17598: 0x5C79, - 17599: 0x7D07, - 17600: 0x8A16, - 17601: 0x6B20, - 17602: 0x6B3D, - 17603: 0x6B46, - 17604: 0x5438, - 17605: 0x6070, - 17606: 0x6D3D, - 17607: 0x7FD5, - 17608: 0x8208, - 17609: 0x50D6, - 17610: 0x51DE, - 17611: 0x559C, - 17612: 0x566B, - 17613: 0x56CD, - 17614: 0x59EC, - 17615: 0x5B09, - 17616: 0x5E0C, - 17617: 0x6199, - 17618: 0x6198, - 17619: 0x6231, - 17620: 0x665E, - 17621: 0x66E6, - 17622: 0x7199, - 17623: 0x71B9, - 17624: 0x71BA, - 17625: 0x72A7, - 17626: 0x79A7, - 17627: 0x7A00, - 17628: 0x7FB2, - 17629: 0x8A70, -} - -const numEncodeTables = 7 - -// encodeX are the encoding tables from Unicode to EUC-KR code, -// sorted by decreasing length. -// encode0: 20893 entries for runes in [19968, 40861). -// encode1: 11172 entries for runes in [44032, 55204). -// encode2: 1625 entries for runes in [ 8213, 9838). -// encode3: 990 entries for runes in [12288, 13278). -// encode4: 945 entries for runes in [ 161, 1106). -// encode5: 268 entries for runes in [63744, 64012). -// encode6: 230 entries for runes in [65281, 65511). - -const encode0Low, encode0High = 19968, 40861 - -var encode0 = [...]uint16{ - 19968 - 19968: 0xECE9, - 19969 - 19968: 0xEFCB, - 19971 - 19968: 0xF6D2, - 19975 - 19968: 0xD8B2, - 19976 - 19968: 0xEDDB, - 19977 - 19968: 0xDFB2, - 19978 - 19968: 0xDFBE, - 19979 - 19968: 0xF9BB, - 19981 - 19968: 0xDCF4, - 19985 - 19968: 0xF5E4, - 19988 - 19968: 0xF3A6, - 19989 - 19968: 0xDDE0, - 19990 - 19968: 0xE1A6, - 19992 - 19968: 0xCEF8, - 19993 - 19968: 0xDCB0, - 19998 - 19968: 0xE3AA, - 20013 - 19968: 0xF1E9, - 20018 - 19968: 0xCDFA, - 20024 - 19968: 0xFCAF, - 20025 - 19968: 0xD3A1, - 20027 - 19968: 0xF1AB, - 20034 - 19968: 0xE7D1, - 20035 - 19968: 0xD2AC, - 20037 - 19968: 0xCEF9, - 20043 - 19968: 0xF1FD, - 20045 - 19968: 0xDEBF, - 20046 - 19968: 0xFBBA, - 20047 - 19968: 0xF9B9, - 20054 - 19968: 0xCED2, - 20056 - 19968: 0xE3AB, - 20057 - 19968: 0xEBE0, - 20061 - 19968: 0xCEFA, - 20062 - 19968: 0xCBF7, - 20063 - 19968: 0xE5A5, - 20075 - 19968: 0xCAE1, - 20077 - 19968: 0xD4CC, - 20083 - 19968: 0xEAE1, - 20086 - 19968: 0xDCE3, - 20087 - 19968: 0xDFAD, - 20094 - 19968: 0xCBEB, - 20098 - 19968: 0xD5AF, - 20102 - 19968: 0xD6F5, - 20104 - 19968: 0xE5F8, - 20107 - 19968: 0xDEC0, - 20108 - 19968: 0xECA3, - 20110 - 19968: 0xE9CD, - 20112 - 19968: 0xEAA7, - 20113 - 19968: 0xE9F6, - 20114 - 19968: 0xFBBB, - 20116 - 19968: 0xE7E9, - 20117 - 19968: 0xEFCC, - 20120 - 19968: 0xD0E6, - 20123 - 19968: 0xDEC1, - 20126 - 19968: 0xE4AC, - 20129 - 19968: 0xD8CC, - 20130 - 19968: 0xF9F1, - 20132 - 19968: 0xCEDF, - 20133 - 19968: 0xFAA4, - 20134 - 19968: 0xE6B2, - 20136 - 19968: 0xFAFB, - 20139 - 19968: 0xFABD, - 20140 - 19968: 0xCCC8, - 20141 - 19968: 0xEFCD, - 20142 - 19968: 0xD5D5, - 20150 - 19968: 0xD3A2, - 20154 - 19968: 0xECD1, - 20160 - 19968: 0xE4A7, - 20161 - 19968: 0xECD2, - 20164 - 19968: 0xF6B1, - 20167 - 19968: 0xCEFB, - 20170 - 19968: 0xD0D1, - 20171 - 19968: 0xCBBF, - 20173 - 19968: 0xEDA4, - 20180 - 19968: 0xEDA8, - 20181 - 19968: 0xDEC2, - 20182 - 19968: 0xF6E2, - 20183 - 19968: 0xEDDC, - 20184 - 19968: 0xDCF5, - 20185 - 19968: 0xE0B9, - 20189 - 19968: 0xD4CE, - 20191 - 19968: 0xF4B5, - 20195 - 19968: 0xD3DB, - 20196 - 19968: 0xD6B5, - 20197 - 19968: 0xECA4, - 20208 - 19968: 0xE4E6, - 20210 - 19968: 0xF1EA, - 20214 - 19968: 0xCBEC, - 20215 - 19968: 0xCBC0, - 20219 - 19968: 0xECF2, - 20225 - 19968: 0xD0EA, - 20233 - 19968: 0xF9F2, - 20234 - 19968: 0xECA5, - 20235 - 19968: 0xD0DF, - 20237 - 19968: 0xE7EA, - 20238 - 19968: 0xD0EB, - 20239 - 19968: 0xDCD1, - 20240 - 19968: 0xDBE9, - 20241 - 19968: 0xFDCC, - 20271 - 19968: 0xDBD7, - 20276 - 19968: 0xDAE1, - 20278 - 19968: 0xD6B6, - 20280 - 19968: 0xE3DF, - 20282 - 19968: 0xDEC3, - 20284 - 19968: 0xDEC4, - 20285 - 19968: 0xCAA1, - 20291 - 19968: 0xEEEC, - 20294 - 19968: 0xD3A3, - 20295 - 19968: 0xEEB7, - 20296 - 19968: 0xF8CF, - 20301 - 19968: 0xEAC8, - 20302 - 19968: 0xEEB8, - 20303 - 19968: 0xF1AC, - 20304 - 19968: 0xF1A5, - 20305 - 19968: 0xE9CE, - 20309 - 19968: 0xF9BC, - 20313 - 19968: 0xE5F9, - 20314 - 19968: 0xECEA, - 20315 - 19968: 0xDDD6, - 20316 - 19968: 0xEDC2, - 20329 - 19968: 0xF8A5, - 20335 - 19968: 0xE5BA, - 20336 - 19968: 0xDBD8, - 20339 - 19968: 0xCAA2, - 20342 - 19968: 0xD1CD, - 20346 - 19968: 0xEEED, - 20350 - 19968: 0xECEB, - 20351 - 19968: 0xDEC5, - 20353 - 19968: 0xE3E0, - 20355 - 19968: 0xCAC9, - 20356 - 19968: 0xF2E9, - 20358 - 19968: 0xD5CE, - 20360 - 19968: 0xF6B6, - 20362 - 19968: 0xCEC2, - 20363 - 19968: 0xD6C7, - 20365 - 19968: 0xE3B4, - 20367 - 19968: 0xF1AD, - 20369 - 19968: 0xEAE2, - 20374 - 19968: 0xD7C2, - 20376 - 19968: 0xF3A7, - 20379 - 19968: 0xCDEA, - 20381 - 19968: 0xEBEE, - 20398 - 19968: 0xD9B2, - 20399 - 19968: 0xFDA5, - 20405 - 19968: 0xF6D5, - 20406 - 19968: 0xD5E2, - 20415 - 19968: 0xF8B5, - 20418 - 19968: 0xCCF5, - 20419 - 19968: 0xF5B5, - 20420 - 19968: 0xE4AD, - 20425 - 19968: 0xE7EB, - 20426 - 19968: 0xF1D5, - 20430 - 19968: 0xF0BB, - 20433 - 19968: 0xE9B5, - 20435 - 19968: 0xCCC9, - 20436 - 19968: 0xFAD5, - 20439 - 19968: 0xE1D4, - 20442 - 19968: 0xD7D6, - 20445 - 19968: 0xDCC1, - 20447 - 19968: 0xDEC6, - 20448 - 19968: 0xFAEF, - 20449 - 19968: 0xE3E1, - 20462 - 19968: 0xE1F3, - 20463 - 19968: 0xDCF6, - 20465 - 19968: 0xCEFC, - 20467 - 19968: 0xDBC4, - 20469 - 19968: 0xF8F1, - 20472 - 19968: 0xDCE4, - 20474 - 19968: 0xE5EF, - 20482 - 19968: 0xDCB1, - 20486 - 19968: 0xD5D6, - 20489 - 19968: 0xF3DA, - 20491 - 19968: 0xCBC1, - 20493 - 19968: 0xDBC3, - 20497 - 19968: 0xD9FA, - 20498 - 19968: 0xD3EE, - 20502 - 19968: 0xFAB8, - 20505 - 19968: 0xFDA6, - 20506 - 19968: 0xEBEF, - 20508 - 19968: 0xF4A6, - 20510 - 19968: 0xCCCA, - 20511 - 19968: 0xF3A8, - 20513 - 19968: 0xF3DB, - 20515 - 19968: 0xDBA7, - 20516 - 19968: 0xF6B7, - 20518 - 19968: 0xCFE6, - 20519 - 19968: 0xF0F2, - 20520 - 19968: 0xCBDA, - 20522 - 19968: 0xE7D2, - 20523 - 19968: 0xD7C3, - 20524 - 19968: 0xF6F0, - 20525 - 19968: 0xE8DE, - 20539 - 19968: 0xE5A6, - 20547 - 19968: 0xE5E7, - 20551 - 19968: 0xCAA3, - 20552 - 19968: 0xCCA7, - 20553 - 19968: 0xEAC9, - 20559 - 19968: 0xF8B6, - 20565 - 19968: 0xFAA5, - 20570 - 19968: 0xF1AE, - 20572 - 19968: 0xEFCE, - 20581 - 19968: 0xCBED, - 20596 - 19968: 0xF6B0, - 20597 - 19968: 0xEFCF, - 20598 - 19968: 0xE9CF, - 20600 - 19968: 0xF7DE, - 20608 - 19968: 0xCED3, - 20613 - 19968: 0xDCF7, - 20621 - 19968: 0xDBA8, - 20625 - 19968: 0xCBF8, - 20632 - 19968: 0xDFA1, - 20633 - 19968: 0xDDE1, - 20652 - 19968: 0xF5CA, - 20653 - 19968: 0xE9B6, - 20658 - 19968: 0xE7EC, - 20659 - 19968: 0xEEEE, - 20661 - 19968: 0xF3F0, - 20663 - 19968: 0xDFBF, - 20670 - 19968: 0xCCCB, - 20677 - 19968: 0xD0C1, - 20681 - 19968: 0xF4D2, - 20682 - 19968: 0xE0BA, - 20687 - 19968: 0xDFC0, - 20689 - 19968: 0xCEE0, - 20693 - 19968: 0xDCD2, - 20694 - 19968: 0xFDEA, - 20698 - 19968: 0xD6F6, - 20702 - 19968: 0xEACA, - 20709 - 19968: 0xE8E9, - 20711 - 19968: 0xE3AC, - 20717 - 19968: 0xF3D0, - 20729 - 19968: 0xCAA4, - 20731 - 19968: 0xDBF8, - 20735 - 19968: 0xDEC7, - 20736 - 19968: 0xEBF0, - 20737 - 19968: 0xF1D6, - 20740 - 19968: 0xE5E2, - 20742 - 19968: 0xCCCC, - 20745 - 19968: 0xCBFB, - 20754 - 19968: 0xEAE3, - 20767 - 19968: 0xDFC1, - 20769 - 19968: 0xD6ED, - 20778 - 19968: 0xE9D0, - 20786 - 19968: 0xEEB9, - 20791 - 19968: 0xD5E3, - 20794 - 19968: 0xD1D3, - 20796 - 19968: 0xE5F0, - 20800 - 19968: 0xE8B4, - 20801 - 19968: 0xEBC3, - 20803 - 19968: 0xEAAA, - 20804 - 19968: 0xFAFC, - 20805 - 19968: 0xF5F6, - 20806 - 19968: 0xF0BC, - 20807 - 19968: 0xFDD4, - 20808 - 19968: 0xE0BB, - 20809 - 19968: 0xCEC3, - 20811 - 19968: 0xD0BA, - 20812 - 19968: 0xF7BA, - 20813 - 19968: 0xD8F3, - 20814 - 19968: 0xF7CD, - 20818 - 19968: 0xE4AE, - 20828 - 19968: 0xD4DF, - 20834 - 19968: 0xD0E7, - 20837 - 19968: 0xECFD, - 20839 - 19968: 0xD2AE, - 20840 - 19968: 0xEEEF, - 20841 - 19968: 0xD5D7, - 20842 - 19968: 0xEAE4, - 20843 - 19968: 0xF8A2, - 20844 - 19968: 0xCDEB, - 20845 - 19968: 0xD7BF, - 20846 - 19968: 0xFBB1, - 20849 - 19968: 0xCDEC, - 20853 - 19968: 0xDCB2, - 20854 - 19968: 0xD0EC, - 20855 - 19968: 0xCEFD, - 20856 - 19968: 0xEEF0, - 20860 - 19968: 0xCCC2, - 20864 - 19968: 0xD0ED, - 20870 - 19968: 0xE5F7, - 20874 - 19968: 0xF3FC, - 20877 - 19968: 0xEEA2, - 20882 - 19968: 0xD9B3, - 20885 - 19968: 0xD8F4, - 20887 - 19968: 0xE9B7, - 20896 - 19968: 0xCEAE, - 20901 - 19968: 0xD9A2, - 20906 - 19968: 0xD8F1, - 20908 - 19968: 0xD4CF, - 20918 - 19968: 0xE5A7, - 20919 - 19968: 0xD5D2, - 20925 - 19968: 0xD6A9, - 20932 - 19968: 0xF4A2, - 20934 - 19968: 0xF1D7, - 20937 - 19968: 0xD5D8, - 20939 - 19968: 0xF0BD, - 20940 - 19968: 0xD7D0, - 20941 - 19968: 0xD4D0, - 20956 - 19968: 0xD7CF, - 20957 - 19968: 0xEBEA, - 20958 - 19968: 0xFDEB, - 20961 - 19968: 0xDBED, - 20976 - 19968: 0xFCC5, - 20977 - 19968: 0xCBC2, - 20982 - 19968: 0xFDD5, - 20984 - 19968: 0xF4C8, - 20985 - 19968: 0xE8EA, - 20986 - 19968: 0xF5F3, - 20989 - 19968: 0xF9DE, - 20992 - 19968: 0xD3EF, - 20995 - 19968: 0xECD3, - 20998 - 19968: 0xDDC2, - 20999 - 19968: 0xEFB7, - 21000 - 19968: 0xE7D4, - 21002 - 19968: 0xCACA, - 21006 - 19968: 0xD9FB, - 21009 - 19968: 0xFAFD, - 21015 - 19968: 0xD6AA, - 21021 - 19968: 0xF4F8, - 21028 - 19968: 0xF7F7, - 21029 - 19968: 0xDCAC, - 21033 - 19968: 0xD7D7, - 21034 - 19968: 0xDFA2, - 21038 - 19968: 0xCEBE, - 21040 - 19968: 0xD3F0, - 21046 - 19968: 0xF0A4, - 21047 - 19968: 0xE1EC, - 21048 - 19968: 0xCFE7, - 21049 - 19968: 0xF3CB, - 21050 - 19968: 0xEDA9, - 21051 - 19968: 0xCABE, - 21059 - 19968: 0xF4EF, - 21063 - 19968: 0xF6CE, - 21066 - 19968: 0xDEFB, - 21067 - 19968: 0xD0BB, - 21068 - 19968: 0xD5B7, - 21069 - 19968: 0xEEF1, - 21076 - 19968: 0xF4A8, - 21078 - 19968: 0xDCF8, - 21083 - 19968: 0xCBA7, - 21085 - 19968: 0xDACE, - 21089 - 19968: 0xE0E6, - 21097 - 19968: 0xEDA5, - 21098 - 19968: 0xEEF2, - 21103 - 19968: 0xDCF9, - 21106 - 19968: 0xF9DC, - 21109 - 19968: 0xF3DC, - 21117 - 19968: 0xF8F2, - 21119 - 19968: 0xF4F9, - 21123 - 19968: 0xFCF1, - 21127 - 19968: 0xD0BC, - 21128 - 19968: 0xDBF9, - 21129 - 19968: 0xD7B1, - 21133 - 19968: 0xCBFC, - 21137 - 19968: 0xF0A5, - 21138 - 19968: 0xCBFD, - 21147 - 19968: 0xD5F4, - 21151 - 19968: 0xCDED, - 21152 - 19968: 0xCAA5, - 21155 - 19968: 0xD6AB, - 21156 - 19968: 0xD0C2, - 21161 - 19968: 0xF0BE, - 21162 - 19968: 0xD2BD, - 21163 - 19968: 0xCCA4, - 21182 - 19968: 0xFAB6, - 21185 - 19968: 0xCCCD, - 21187 - 19968: 0xDAFA, - 21189 - 19968: 0xF6CF, - 21191 - 19968: 0xE9B8, - 21193 - 19968: 0xD8F5, - 21197 - 19968: 0xCCCE, - 21202 - 19968: 0xD7CD, - 21205 - 19968: 0xD4D1, - 21206 - 19968: 0xE9ED, - 21208 - 19968: 0xCAEB, - 21209 - 19968: 0xD9E2, - 21211 - 19968: 0xFDB2, - 21213 - 19968: 0xE3AD, - 21214 - 19968: 0xD6CC, - 21215 - 19968: 0xD9B4, - 21218 - 19968: 0xE1A7, - 21219 - 19968: 0xEED3, - 21220 - 19968: 0xD0C3, - 21235 - 19968: 0xFDB3, - 21237 - 19968: 0xD5E4, - 21240 - 19968: 0xCFE8, - 21242 - 19968: 0xEDC3, - 21243 - 19968: 0xD0B2, - 21246 - 19968: 0xCEFE, - 21247 - 19968: 0xDAA8, - 21253 - 19968: 0xF8D0, - 21256 - 19968: 0xFDD6, - 21261 - 19968: 0xF8D1, - 21263 - 19968: 0xF8D2, - 21264 - 19968: 0xDCD3, - 21269 - 19968: 0xDDE2, - 21270 - 19968: 0xFBF9, - 21271 - 19968: 0xDDC1, - 21273 - 19968: 0xE3B5, - 21280 - 19968: 0xEDDD, - 21281 - 19968: 0xCEC4, - 21283 - 19968: 0xCBA1, - 21290 - 19968: 0xDDE3, - 21295 - 19968: 0xFCDD, - 21305 - 19968: 0xF9AF, - 21311 - 19968: 0xD2FB, - 21312 - 19968: 0xCFA1, - 21313 - 19968: 0xE4A8, - 21315 - 19968: 0xF4B6, - 21316 - 19968: 0xECFE, - 21319 - 19968: 0xE3AE, - 21320 - 19968: 0xE7ED, - 21321 - 19968: 0xFDC1, - 21322 - 19968: 0xDAE2, - 21325 - 19968: 0xD8B3, - 21329 - 19968: 0xDDE4, - 21330 - 19968: 0xF0EF, - 21331 - 19968: 0xF6F1, - 21332 - 19968: 0xFAF0, - 21335 - 19968: 0xD1F5, - 21338 - 19968: 0xDACF, - 21340 - 19968: 0xDCD4, - 21342 - 19968: 0xDCA6, - 21344 - 19968: 0xEFBF, - 21350 - 19968: 0xCECF, - 21352 - 19968: 0xE0D9, - 21359 - 19968: 0xD9D6, - 21360 - 19968: 0xECD4, - 21361 - 19968: 0xEACB, - 21364 - 19968: 0xCABF, - 21365 - 19968: 0xD5B0, - 21367 - 19968: 0xCFE9, - 21373 - 19968: 0xF1ED, - 21375 - 19968: 0xCCCF, - 21380 - 19968: 0xE4F8, - 21395 - 19968: 0xE4ED, - 21400 - 19968: 0xD7D8, - 21402 - 19968: 0xFDA7, - 21407 - 19968: 0xEAAB, - 21408 - 19968: 0xF6B2, - 21413 - 19968: 0xCFF0, - 21414 - 19968: 0xF9BD, - 21421 - 19968: 0xE6F4, - 21435 - 19968: 0xCBDB, - 21443 - 19968: 0xF3D1, - 21448 - 19968: 0xE9D1, - 21449 - 19968: 0xF3A9, - 21450 - 19968: 0xD0E0, - 21451 - 19968: 0xE9D2, - 21453 - 19968: 0xDAE3, - 21460 - 19968: 0xE2D2, - 21462 - 19968: 0xF6A2, - 21463 - 19968: 0xE1F4, - 21467 - 19968: 0xDAE4, - 21473 - 19968: 0xE7D5, - 21474 - 19968: 0xF5BF, - 21475 - 19968: 0xCFA2, - 21476 - 19968: 0xCDAF, - 21477 - 19968: 0xCFA3, - 21481 - 19968: 0xCDB0, - 21482 - 19968: 0xF1FE, - 21483 - 19968: 0xD0A3, - 21484 - 19968: 0xE1AF, - 21485 - 19968: 0xF8A3, - 21487 - 19968: 0xCAA6, - 21488 - 19968: 0xF7BB, - 21489 - 19968: 0xF2EA, - 21490 - 19968: 0xDEC8, - 21491 - 19968: 0xE9D3, - 21496 - 19968: 0xDEC9, - 21507 - 19968: 0xFDDE, - 21508 - 19968: 0xCAC0, - 21512 - 19968: 0xF9EA, - 21513 - 19968: 0xD1CE, - 21514 - 19968: 0xEED4, - 21516 - 19968: 0xD4D2, - 21517 - 19968: 0xD9A3, - 21518 - 19968: 0xFDA8, - 21519 - 19968: 0xD7D9, - 21520 - 19968: 0xF7CE, - 21521 - 19968: 0xFABE, - 21531 - 19968: 0xCFD6, - 21533 - 19968: 0xD7F0, - 21535 - 19968: 0xEBE1, - 21536 - 19968: 0xF8C5, - 21542 - 19968: 0xDCFA, - 21545 - 19968: 0xDDC3, - 21547 - 19968: 0xF9DF, - 21555 - 19968: 0xE7EF, - 21560 - 19968: 0xFDE5, - 21561 - 19968: 0xF6A3, - 21563 - 19968: 0xD9FC, - 21564 - 19968: 0xFDA9, - 21566 - 19968: 0xE7EE, - 21570 - 19968: 0xD5E5, - 21576 - 19968: 0xEFD0, - 21578 - 19968: 0xCDB1, - 21585 - 19968: 0xF7A2, - 21608 - 19968: 0xF1B2, - 21610 - 19968: 0xF1B1, - 21617 - 19968: 0xCDB2, - 21619 - 19968: 0xDAAB, - 21621 - 19968: 0xCAA7, - 21627 - 19968: 0xE3E2, - 21628 - 19968: 0xFBBC, - 21629 - 19968: 0xD9A4, - 21632 - 19968: 0xEEBA, - 21638 - 19968: 0xF8D3, - 21644 - 19968: 0xFBFA, - 21646 - 19968: 0xCFA4, - 21648 - 19968: 0xDCFB, - 21668 - 19968: 0xF6E3, - 21672 - 19968: 0xEDAA, - 21675 - 19968: 0xF2A1, - 21676 - 19968: 0xCEE1, - 21683 - 19968: 0xFAA6, - 21688 - 19968: 0xF9E0, - 21693 - 19968: 0xECD6, - 21696 - 19968: 0xE4EE, - 21697 - 19968: 0xF9A1, - 21700 - 19968: 0xFBEF, - 21704 - 19968: 0xF9EB, - 21705 - 19968: 0xEEA3, - 21729 - 19968: 0xEAAC, - 21733 - 19968: 0xCAA8, - 21736 - 19968: 0xF4FA, - 21741 - 19968: 0xCDD6, - 21742 - 19968: 0xFCF6, - 21746 - 19968: 0xF4C9, - 21754 - 19968: 0xF8D4, - 21764 - 19968: 0xF8A6, - 21766 - 19968: 0xDECA, - 21767 - 19968: 0xF2C6, - 21774 - 19968: 0xD7DA, - 21776 - 19968: 0xD3D0, - 21788 - 19968: 0xD8C5, - 21807 - 19968: 0xEAE6, - 21809 - 19968: 0xF3DD, - 21813 - 19968: 0xE4DA, - 21822 - 19968: 0xF6E4, - 21828 - 19968: 0xF6F2, - 21830 - 19968: 0xDFC2, - 21839 - 19968: 0xD9FD, - 21843 - 19968: 0xCCF6, - 21846 - 19968: 0xD3BA, - 21854 - 19968: 0xE4AF, - 21859 - 19968: 0xF9E1, - 21884 - 19968: 0xF0A6, - 21888 - 19968: 0xCBD3, - 21892 - 19968: 0xE0BC, - 21894 - 19968: 0xF4CA, - 21895 - 19968: 0xD4FA, - 21897 - 19968: 0xFDAA, - 21898 - 19968: 0xF9E2, - 21912 - 19968: 0xF4B7, - 21913 - 19968: 0xFDC2, - 21914 - 19968: 0xFCB0, - 21916 - 19968: 0xFDEC, - 21917 - 19968: 0xCAE2, - 21927 - 19968: 0xFDBD, - 21929 - 19968: 0xEAE7, - 21930 - 19968: 0xDFC3, - 21931 - 19968: 0xD1D2, - 21932 - 19968: 0xCEE2, - 21934 - 19968: 0xD3A4, - 21957 - 19968: 0xFDAB, - 21959 - 19968: 0xDFE0, - 21972 - 19968: 0xF2C7, - 21978 - 19968: 0xE7F0, - 21980 - 19968: 0xD0EE, - 21983 - 19968: 0xF3AA, - 21987 - 19968: 0xDECB, - 21988 - 19968: 0xF6B8, - 22013 - 19968: 0xE1F5, - 22014 - 19968: 0xF1B3, - 22022 - 19968: 0xF7A3, - 22025 - 19968: 0xCAA9, - 22036 - 19968: 0xCFA5, - 22039 - 19968: 0xDFC4, - 22063 - 19968: 0xE1B0, - 22066 - 19968: 0xF0BF, - 22068 - 19968: 0xF6A4, - 22070 - 19968: 0xE3B6, - 22099 - 19968: 0xFAC6, - 22120 - 19968: 0xD0EF, - 22123 - 19968: 0xFDED, - 22132 - 19968: 0xDDC4, - 22150 - 19968: 0xFCF7, - 22181 - 19968: 0xE6BF, - 22188 - 19968: 0xDEAD, - 22190 - 19968: 0xFABF, - 22196 - 19968: 0xE5F1, - 22204 - 19968: 0xEDC4, - 22218 - 19968: 0xD2A5, - 22221 - 19968: 0xFDEE, - 22225 - 19968: 0xF5B6, - 22234 - 19968: 0xE1F6, - 22235 - 19968: 0xDECC, - 22238 - 19968: 0xFCDE, - 22240 - 19968: 0xECD7, - 22256 - 19968: 0xCDDD, - 22265 - 19968: 0xD6B7, - 22266 - 19968: 0xCDB3, - 22275 - 19968: 0xF8D5, - 22276 - 19968: 0xE5D8, - 22280 - 19968: 0xCFEA, - 22283 - 19968: 0xCFD0, - 22285 - 19968: 0xEACC, - 22290 - 19968: 0xEAAE, - 22291 - 19968: 0xEAAD, - 22294 - 19968: 0xD3F1, - 22296 - 19968: 0xD3A5, - 22303 - 19968: 0xF7CF, - 22312 - 19968: 0xEEA4, - 22317 - 19968: 0xD0A4, - 22320 - 19968: 0xF2A2, - 22331 - 19968: 0xD0F0, - 22336 - 19968: 0xF2A3, - 22338 - 19968: 0xF7F8, - 22343 - 19968: 0xD0B3, - 22346 - 19968: 0xDBA9, - 22349 - 19968: 0xD3BB, - 22350 - 19968: 0xCAEC, - 22352 - 19968: 0xF1A6, - 22353 - 19968: 0xCBD5, - 22369 - 19968: 0xF7E7, - 22372 - 19968: 0xCDDE, - 22374 - 19968: 0xF7A4, - 22378 - 19968: 0xF8C0, - 22382 - 19968: 0xD3DD, - 22384 - 19968: 0xCCD0, - 22389 - 19968: 0xCFA6, - 22396 - 19968: 0xF6F3, - 22402 - 19968: 0xE1F7, - 22408 - 19968: 0xD3DC, - 22411 - 19968: 0xFAFE, - 22419 - 19968: 0xFAA7, - 22432 - 19968: 0xEBD9, - 22434 - 19968: 0xCFA7, - 22435 - 19968: 0xEAAF, - 22467 - 19968: 0xE4EF, - 22471 - 19968: 0xE9B9, - 22472 - 19968: 0xF1D8, - 22475 - 19968: 0xD8D8, - 22478 - 19968: 0xE0F2, - 22495 - 19968: 0xE6B4, - 22496 - 19968: 0xDCFC, - 22512 - 19968: 0xF3F1, - 22516 - 19968: 0xE3D0, - 22519 - 19968: 0xF2FB, - 22521 - 19968: 0xDBC6, - 22522 - 19968: 0xD0F1, - 22524 - 19968: 0xD0F2, - 22528 - 19968: 0xCFDC, - 22530 - 19968: 0xD3D1, - 22533 - 19968: 0xCCB1, - 22534 - 19968: 0xF7D8, - 22536 - 19968: 0xCBA8, - 22537 - 19968: 0xEBBC, - 22538 - 19968: 0xE4BE, - 22558 - 19968: 0xF4DC, - 22561 - 19968: 0xDCC2, - 22564 - 19968: 0xF0A7, - 22567 - 19968: 0xE6C0, - 22570 - 19968: 0xCAED, - 22575 - 19968: 0xE8EB, - 22576 - 19968: 0xE5E8, - 22577 - 19968: 0xDCC3, - 22580 - 19968: 0xEDDE, - 22581 - 19968: 0xD3F2, - 22586 - 19968: 0xCCF7, - 22602 - 19968: 0xCED4, - 22603 - 19968: 0xE7AB, - 22607 - 19968: 0xCBC3, - 22609 - 19968: 0xE1B1, - 22612 - 19968: 0xF7B2, - 22615 - 19968: 0xD3F3, - 22616 - 19968: 0xD3D2, - 22618 - 19968: 0xF5C0, - 22622 - 19968: 0xDFDD, - 22625 - 19968: 0xEEF3, - 22626 - 19968: 0xE7F1, - 22628 - 19968: 0xFDB4, - 22645 - 19968: 0xF2C8, - 22649 - 19968: 0xF3D2, - 22652 - 19968: 0xEEF4, - 22654 - 19968: 0xE2D3, - 22659 - 19968: 0xCCD1, - 22661 - 19968: 0xDFEA, - 22665 - 19968: 0xE9BA, - 22675 - 19968: 0xD9D7, - 22684 - 19968: 0xF5CD, - 22686 - 19968: 0xF1F2, - 22687 - 19968: 0xFAC7, - 22696 - 19968: 0xD9F8, - 22697 - 19968: 0xD4C2, - 22702 - 19968: 0xF6E5, - 22707 - 19968: 0xDDC5, - 22714 - 19968: 0xE7F2, - 22715 - 19968: 0xEDDF, - 22718 - 19968: 0xCACB, - 22721 - 19968: 0xDBFA, - 22725 - 19968: 0xE8B5, - 22727 - 19968: 0xD3A6, - 22734 - 19968: 0xFDB5, - 22737 - 19968: 0xF9C9, - 22739 - 19968: 0xE4E2, - 22741 - 19968: 0xFBBD, - 22744 - 19968: 0xD7A4, - 22745 - 19968: 0xCEC5, - 22750 - 19968: 0xCED5, - 22751 - 19968: 0xD6E6, - 22756 - 19968: 0xE5BD, - 22763 - 19968: 0xDECD, - 22764 - 19968: 0xECF3, - 22767 - 19968: 0xEDE0, - 22777 - 19968: 0xECEC, - 22778 - 19968: 0xFBBE, - 22779 - 19968: 0xDFEB, - 22781 - 19968: 0xE1F8, - 22799 - 19968: 0xF9BE, - 22804 - 19968: 0xD0F3, - 22805 - 19968: 0xE0AA, - 22806 - 19968: 0xE8E2, - 22809 - 19968: 0xE2D4, - 22810 - 19968: 0xD2FD, - 22812 - 19968: 0xE5A8, - 22818 - 19968: 0xD9D3, - 22823 - 19968: 0xD3DE, - 22825 - 19968: 0xF4B8, - 22826 - 19968: 0xF7BC, - 22827 - 19968: 0xDCFD, - 22829 - 19968: 0xE8EC, - 22830 - 19968: 0xE4E7, - 22833 - 19968: 0xE3F7, - 22839 - 19968: 0xECA8, - 22846 - 19968: 0xFAF1, - 22852 - 19968: 0xE5F2, - 22855 - 19968: 0xD0F4, - 22856 - 19968: 0xD2AF, - 22857 - 19968: 0xDCE5, - 22862 - 19968: 0xD0A5, - 22863 - 19968: 0xF1B4, - 22864 - 19968: 0xFCB1, - 22865 - 19968: 0xCCF8, - 22868 - 19968: 0xDDC6, - 22869 - 19968: 0xFAD1, - 22871 - 19968: 0xF7DF, - 22874 - 19968: 0xFAA8, - 22880 - 19968: 0xEEF5, - 22882 - 19968: 0xDECE, - 22887 - 19968: 0xE7F3, - 22890 - 19968: 0xF7AC, - 22891 - 19968: 0xEBC4, - 22892 - 19968: 0xEDE1, - 22893 - 19968: 0xE0AB, - 22894 - 19968: 0xDDC7, - 22899 - 19968: 0xD2B3, - 22900 - 19968: 0xD2BF, - 22904 - 19968: 0xCACC, - 22909 - 19968: 0xFBBF, - 22914 - 19968: 0xE5FD, - 22915 - 19968: 0xDDE5, - 22916 - 19968: 0xD8CD, - 22922 - 19968: 0xECF4, - 22931 - 19968: 0xD0F5, - 22934 - 19968: 0xE8ED, - 22935 - 19968: 0xD0D2, - 22937 - 19968: 0xD9D8, - 22949 - 19968: 0xF6E6, - 22952 - 19968: 0xDBAA, - 22956 - 19968: 0xF7E0, - 22969 - 19968: 0xD8D9, - 22971 - 19968: 0xF4A3, - 22974 - 19968: 0xF4DD, - 22979 - 19968: 0xEFD1, - 22982 - 19968: 0xD9B5, - 22985 - 19968: 0xEDAB, - 22987 - 19968: 0xE3B7, - 22992 - 19968: 0xEEBB, - 22993 - 19968: 0xCDB4, - 22995 - 19968: 0xE0F3, - 22996 - 19968: 0xEACD, - 23001 - 19968: 0xECF5, - 23002 - 19968: 0xE8EE, - 23004 - 19968: 0xCBA9, - 23005 - 19968: 0xF1AF, - 23014 - 19968: 0xCACD, - 23016 - 19968: 0xECA9, - 23018 - 19968: 0xF2EB, - 23020 - 19968: 0xFDEF, - 23022 - 19968: 0xF9F3, - 23032 - 19968: 0xE6C1, - 23035 - 19968: 0xECD8, - 23039 - 19968: 0xEDAC, - 23041 - 19968: 0xEACE, - 23043 - 19968: 0xE8DF, - 23057 - 19968: 0xDECF, - 23064 - 19968: 0xD2A6, - 23067 - 19968: 0xE7F4, - 23068 - 19968: 0xD1D6, - 23071 - 19968: 0xE6C2, - 23072 - 19968: 0xE3E3, - 23077 - 19968: 0xE4B0, - 23081 - 19968: 0xD8B4, - 23094 - 19968: 0xF6A5, - 23100 - 19968: 0xF3DE, - 23105 - 19968: 0xD7A5, - 23110 - 19968: 0xF7E8, - 23113 - 19968: 0xE8C6, - 23130 - 19968: 0xFBE6, - 23138 - 19968: 0xDDE6, - 23142 - 19968: 0xDCFE, - 23186 - 19968: 0xD8DA, - 23194 - 19968: 0xDAAC, - 23195 - 19968: 0xEAB0, - 23204 - 19968: 0xE3B8, - 23233 - 19968: 0xCAAA, - 23234 - 19968: 0xE1F9, - 23236 - 19968: 0xEAB1, - 23241 - 19968: 0xF2EC, - 23244 - 19968: 0xFAEE, - 23265 - 19968: 0xEED5, - 23270 - 19968: 0xF9F4, - 23273 - 19968: 0xD2EC, - 23301 - 19968: 0xFBFB, - 23305 - 19968: 0xFDF0, - 23307 - 19968: 0xE0BD, - 23308 - 19968: 0xCEE3, - 23318 - 19968: 0xF8C6, - 23338 - 19968: 0xDEAE, - 23360 - 19968: 0xDFC5, - 23363 - 19968: 0xE5BE, - 23376 - 19968: 0xEDAD, - 23377 - 19968: 0xFAEA, - 23380 - 19968: 0xCDEE, - 23381 - 19968: 0xEDA6, - 23383 - 19968: 0xEDAE, - 23384 - 19968: 0xF0ED, - 23386 - 19968: 0xDDA1, - 23388 - 19968: 0xEDAF, - 23389 - 19968: 0xFCF8, - 23391 - 19968: 0xD8EB, - 23395 - 19968: 0xCCF9, - 23396 - 19968: 0xCDB5, - 23401 - 19968: 0xFAA9, - 23403 - 19968: 0xE1DD, - 23408 - 19968: 0xE2D5, - 23409 - 19968: 0xEDCF, - 23413 - 19968: 0xDDA2, - 23416 - 19968: 0xF9CA, - 23418 - 19968: 0xEAE8, - 23420 - 19968: 0xE5ED, - 23429 - 19968: 0xD3EB, - 23431 - 19968: 0xE9D4, - 23432 - 19968: 0xE1FA, - 23433 - 19968: 0xE4CC, - 23435 - 19968: 0xE1E4, - 23436 - 19968: 0xE8C7, - 23439 - 19968: 0xCEDB, - 23443 - 19968: 0xDCD5, - 23445 - 19968: 0xF7B5, - 23446 - 19968: 0xFCF3, - 23447 - 19968: 0xF0F3, - 23448 - 19968: 0xCEAF, - 23449 - 19968: 0xF1B5, - 23450 - 19968: 0xEFD2, - 23451 - 19968: 0xE8C8, - 23452 - 19968: 0xEBF1, - 23458 - 19968: 0xCBD4, - 23459 - 19968: 0xE0BE, - 23460 - 19968: 0xE3F8, - 23461 - 19968: 0xEAE9, - 23462 - 19968: 0xFCB2, - 23468 - 19968: 0xE0F4, - 23470 - 19968: 0xCFE0, - 23472 - 19968: 0xEEA5, - 23475 - 19968: 0xFAAA, - 23476 - 19968: 0xE6C3, - 23477 - 19968: 0xE1B2, - 23478 - 19968: 0xCAAB, - 23480 - 19968: 0xE3E4, - 23481 - 19968: 0xE9BB, - 23487 - 19968: 0xE2D6, - 23488 - 19968: 0xF3F2, - 23490 - 19968: 0xEED6, - 23491 - 19968: 0xEAB2, - 23492 - 19968: 0xD0F6, - 23493 - 19968: 0xECD9, - 23494 - 19968: 0xDACB, - 23495 - 19968: 0xCFA8, - 23500 - 19968: 0xDDA3, - 23504 - 19968: 0xD8DB, - 23506 - 19968: 0xF9CE, - 23507 - 19968: 0xE9D5, - 23508 - 19968: 0xE3D1, - 23511 - 19968: 0xD2BC, - 23518 - 19968: 0xD8AC, - 23519 - 19968: 0xF3CC, - 23521 - 19968: 0xCDFB, - 23522 - 19968: 0xF6D6, - 23524 - 19968: 0xE7F5, - 23525 - 19968: 0xE8EF, - 23526 - 19968: 0xE3F9, - 23527 - 19968: 0xD2BB, - 23528 - 19968: 0xF3F3, - 23529 - 19968: 0xE3FB, - 23531 - 19968: 0xDED0, - 23532 - 19968: 0xCEB0, - 23534 - 19968: 0xD6F7, - 23535 - 19968: 0xF1D9, - 23541 - 19968: 0xF5C1, - 23542 - 19968: 0xDCC4, - 23544 - 19968: 0xF5BB, - 23546 - 19968: 0xDED1, - 23553 - 19968: 0xDCE6, - 23556 - 19968: 0xDED2, - 23559 - 19968: 0xEDE2, - 23560 - 19968: 0xEEF6, - 23561 - 19968: 0xEACF, - 23562 - 19968: 0xF0EE, - 23563 - 19968: 0xE3FC, - 23565 - 19968: 0xD3DF, - 23566 - 19968: 0xD3F4, - 23567 - 19968: 0xE1B3, - 23569 - 19968: 0xE1B4, - 23574 - 19968: 0xF4D3, - 23577 - 19968: 0xDFC6, - 23588 - 19968: 0xE9D6, - 23592 - 19968: 0xDBAB, - 23601 - 19968: 0xF6A6, - 23608 - 19968: 0xE3B9, - 23609 - 19968: 0xEBC5, - 23610 - 19968: 0xF4A9, - 23611 - 19968: 0xCDB6, - 23612 - 19968: 0xD2F9, - 23614 - 19968: 0xDAAD, - 23615 - 19968: 0xD2E3, - 23616 - 19968: 0xCFD1, - 23621 - 19968: 0xCBDC, - 23622 - 19968: 0xCCFA, - 23624 - 19968: 0xCFDD, - 23627 - 19968: 0xE8A9, - 23629 - 19968: 0xE3BB, - 23630 - 19968: 0xE3BA, - 23633 - 19968: 0xE0DA, - 23637 - 19968: 0xEEF7, - 23643 - 19968: 0xDCB3, - 23648 - 19968: 0xD3F5, - 23650 - 19968: 0xD7A6, - 23652 - 19968: 0xF6B5, - 23653 - 19968: 0xD7DB, - 23660 - 19968: 0xE1D5, - 23663 - 19968: 0xD4EA, - 23665 - 19968: 0xDFA3, - 23673 - 19968: 0xFDDF, - 23696 - 19968: 0xD0F7, - 23697 - 19968: 0xEDD4, - 23713 - 19968: 0xCBAA, - 23721 - 19968: 0xE4DB, - 23723 - 19968: 0xE1FB, - 23724 - 19968: 0xCBA2, - 23729 - 19968: 0xD3E0, - 23731 - 19968: 0xE4BF, - 23733 - 19968: 0xFBC0, - 23735 - 19968: 0xDABE, - 23736 - 19968: 0xE4CD, - 23738 - 19968: 0xD6B9, - 23742 - 19968: 0xEFC0, - 23744 - 19968: 0xE1FC, - 23769 - 19968: 0xF6B9, - 23776 - 19968: 0xDFC7, - 23784 - 19968: 0xE4B1, - 23791 - 19968: 0xDCE7, - 23792 - 19968: 0xDCE8, - 23796 - 19968: 0xFAD6, - 23798 - 19968: 0xD3F6, - 23803 - 19968: 0xF1DA, - 23805 - 19968: 0xFAF2, - 23815 - 19968: 0xE2FD, - 23821 - 19968: 0xD5CF, - 23822 - 19968: 0xD0F8, - 23825 - 19968: 0xCDDF, - 23828 - 19968: 0xF5CB, - 23830 - 19968: 0xE4F0, - 23831 - 19968: 0xCBAB, - 23833 - 19968: 0xD7C4, - 23847 - 19968: 0xE2FE, - 23849 - 19968: 0xDDDA, - 23883 - 19968: 0xDAAE, - 23884 - 19968: 0xCAEE, - 23888 - 19968: 0xD5B9, - 23913 - 19968: 0xE3A1, - 23916 - 19968: 0xE8E3, - 23919 - 19968: 0xF3AB, - 23943 - 19968: 0xCFA9, - 23947 - 19968: 0xD3F7, - 23965 - 19968: 0xD4F1, - 23968 - 19968: 0xCEE4, - 23970 - 19968: 0xE8F2, - 23978 - 19968: 0xE5F5, - 23992 - 19968: 0xE7AE, - 23994 - 19968: 0xD6BA, - 23996 - 19968: 0xDFEC, - 23997 - 19968: 0xE4C0, - 24013 - 19968: 0xE8E4, - 24018 - 19968: 0xD8B5, - 24022 - 19968: 0xE4DC, - 24029 - 19968: 0xF4B9, - 24030 - 19968: 0xF1B6, - 24033 - 19968: 0xE2DE, - 24034 - 19968: 0xE1B5, - 24037 - 19968: 0xCDEF, - 24038 - 19968: 0xF1A7, - 24039 - 19968: 0xCEE5, - 24040 - 19968: 0xCBDD, - 24043 - 19968: 0xD9E3, - 24046 - 19968: 0xF3AC, - 24049 - 19968: 0xD0F9, - 24050 - 19968: 0xECAB, - 24051 - 19968: 0xDED3, - 24052 - 19968: 0xF7E9, - 24055 - 19968: 0xF9F5, - 24061 - 19968: 0xE1DE, - 24062 - 19968: 0xCBEE, - 24066 - 19968: 0xE3BC, - 24067 - 19968: 0xF8D6, - 24070 - 19968: 0xDBEE, - 24076 - 19968: 0xFDF1, - 24081 - 19968: 0xF7B6, - 24086 - 19968: 0xF4DE, - 24089 - 19968: 0xF2ED, - 24091 - 19968: 0xDBD9, - 24093 - 19968: 0xF0A8, - 24101 - 19968: 0xE1FD, - 24107 - 19968: 0xDED4, - 24109 - 19968: 0xE0AC, - 24115 - 19968: 0xEDE3, - 24118 - 19968: 0xD3E1, - 24120 - 19968: 0xDFC8, - 24125 - 19968: 0xD9B6, - 24127 - 19968: 0xFDAC, - 24128 - 19968: 0xEFD3, - 24132 - 19968: 0xE4C1, - 24133 - 19968: 0xF8EB, - 24135 - 19968: 0xDBAC, - 24140 - 19968: 0xFCC6, - 24149 - 19968: 0xD8AD, - 24159 - 19968: 0xF6BA, - 24161 - 19968: 0xDBDF, - 24162 - 19968: 0xD3D3, - 24163 - 19968: 0xF8C7, - 24178 - 19968: 0xCACE, - 24179 - 19968: 0xF8C1, - 24180 - 19968: 0xD2B4, - 24183 - 19968: 0xDCB4, - 24184 - 19968: 0xFAB9, - 24185 - 19968: 0xCACF, - 24187 - 19968: 0xFCB3, - 24188 - 19968: 0xEAEA, - 24189 - 19968: 0xEAEB, - 24190 - 19968: 0xD0FA, - 24196 - 19968: 0xEDE4, - 24199 - 19968: 0xDDE7, - 24202 - 19968: 0xDFC9, - 24207 - 19968: 0xDFED, - 24213 - 19968: 0xEEBC, - 24215 - 19968: 0xEFC1, - 24218 - 19968: 0xCCD2, - 24220 - 19968: 0xDDA4, - 24224 - 19968: 0xDFCA, - 24230 - 19968: 0xD3F8, - 24231 - 19968: 0xF1A8, - 24235 - 19968: 0xCDB7, - 24237 - 19968: 0xEFD4, - 24245 - 19968: 0xE4DD, - 24246 - 19968: 0xDFEE, - 24247 - 19968: 0xCBAC, - 24248 - 19968: 0xE9BC, - 24254 - 19968: 0xEAEC, - 24258 - 19968: 0xDFCB, - 24264 - 19968: 0xF9BF, - 24265 - 19968: 0xD6AF, - 24266 - 19968: 0xD5C6, - 24272 - 19968: 0xCFAA, - 24275 - 19968: 0xCEA9, - 24278 - 19968: 0xD6F8, - 24282 - 19968: 0xF1B7, - 24283 - 19968: 0xEEF8, - 24287 - 19968: 0xD9D9, - 24288 - 19968: 0xF3DF, - 24290 - 19968: 0xF8C8, - 24291 - 19968: 0xCEC6, - 24300 - 19968: 0xD5E6, - 24307 - 19968: 0xF4E6, - 24310 - 19968: 0xE6C5, - 24311 - 19968: 0xEFD5, - 24314 - 19968: 0xCBEF, - 24315 - 19968: 0xFCDF, - 24321 - 19968: 0xDCA7, - 24324 - 19968: 0xD6E7, - 24330 - 19968: 0xF8C9, - 24335 - 19968: 0xE3D2, - 24337 - 19968: 0xE3BD, - 24339 - 19968: 0xCFE1, - 24340 - 19968: 0xF0C0, - 24341 - 19968: 0xECDA, - 24343 - 19968: 0xDDD7, - 24344 - 19968: 0xFBF0, - 24347 - 19968: 0xECAC, - 24351 - 19968: 0xF0A9, - 24358 - 19968: 0xFAD7, - 24359 - 19968: 0xFBC1, - 24361 - 19968: 0xD2C0, - 24369 - 19968: 0xE5B0, - 24373 - 19968: 0xEDE5, - 24378 - 19968: 0xCBAD, - 24380 - 19968: 0xF9B0, - 24392 - 19968: 0xF7A5, - 24394 - 19968: 0xCBAE, - 24396 - 19968: 0xDAAF, - 24398 - 19968: 0xD8B6, - 24406 - 19968: 0xD3A7, - 24407 - 19968: 0xFBB2, - 24409 - 19968: 0xFDC4, - 24411 - 19968: 0xECAD, - 24418 - 19968: 0xFBA1, - 24422 - 19968: 0xE5E9, - 24423 - 19968: 0xE9EE, - 24425 - 19968: 0xF3F4, - 24426 - 19968: 0xF8F3, - 24427 - 19968: 0xF0C1, - 24428 - 19968: 0xDEAF, - 24429 - 19968: 0xF8B0, - 24432 - 19968: 0xF3E0, - 24433 - 19968: 0xE7AF, - 24439 - 19968: 0xDBAD, - 24441 - 19968: 0xE6B5, - 24444 - 19968: 0xF9A8, - 24447 - 19968: 0xDDD8, - 24448 - 19968: 0xE8D9, - 24449 - 19968: 0xEFD6, - 24453 - 19968: 0xD3E2, - 24455 - 19968: 0xE2DF, - 24458 - 19968: 0xFCE0, - 24459 - 19968: 0xD7C8, - 24460 - 19968: 0xFDAD, - 24464 - 19968: 0xDFEF, - 24465 - 19968: 0xCCD3, - 24466 - 19968: 0xD3F9, - 24471 - 19968: 0xD4F0, - 24472 - 19968: 0xDBC7, - 24473 - 19968: 0xDED5, - 24478 - 19968: 0xF0F4, - 24480 - 19968: 0xD5D0, - 24481 - 19968: 0xE5D9, - 24488 - 19968: 0xFCC7, - 24489 - 19968: 0xDCD6, - 24490 - 19968: 0xE2E0, - 24494 - 19968: 0xDAB0, - 24501 - 19968: 0xF3A3, - 24503 - 19968: 0xD3EC, - 24505 - 19968: 0xF4CB, - 24509 - 19968: 0xFDC5, - 24515 - 19968: 0xE3FD, - 24517 - 19968: 0xF9B1, - 24524 - 19968: 0xD0FB, - 24525 - 19968: 0xECDB, - 24534 - 19968: 0xF5BC, - 24535 - 19968: 0xF2A4, - 24536 - 19968: 0xD8CE, - 24537 - 19968: 0xD8CF, - 24544 - 19968: 0xF5F7, - 24555 - 19968: 0xF6E1, - 24565 - 19968: 0xD2B7, - 24573 - 19968: 0xFBEC, - 24575 - 19968: 0xDDC8, - 24591 - 19968: 0xE4E8, - 24594 - 19968: 0xD2C1, - 24598 - 19968: 0xF8D7, - 24604 - 19968: 0xD6BB, - 24605 - 19968: 0xDED6, - 24608 - 19968: 0xF7BD, - 24609 - 19968: 0xECAE, - 24613 - 19968: 0xD0E1, - 24615 - 19968: 0xE0F5, - 24616 - 19968: 0xEAB3, - 24618 - 19968: 0xCED6, - 24623 - 19968: 0xCCA5, - 24641 - 19968: 0xECF6, - 24642 - 19968: 0xE2E1, - 24643 - 19968: 0xE3BE, - 24653 - 19968: 0xFCC8, - 24656 - 19968: 0xCDF0, - 24658 - 19968: 0xF9F6, - 24661 - 19968: 0xDFF0, - 24665 - 19968: 0xE5BF, - 24669 - 19968: 0xCEBF, - 24674 - 19968: 0xFCE1, - 24675 - 19968: 0xEDB0, - 24676 - 19968: 0xFDD1, - 24677 - 19968: 0xF6BB, - 24680 - 19968: 0xF9CF, - 24681 - 19968: 0xEBDA, - 24682 - 19968: 0xCAC1, - 24684 - 19968: 0xD2B8, - 24685 - 19968: 0xCDF1, - 24687 - 19968: 0xE3D3, - 24688 - 19968: 0xFDE6, - 24709 - 19968: 0xE6ED, - 24713 - 19968: 0xE3FA, - 24716 - 19968: 0xF0AA, - 24717 - 19968: 0xF9D0, - 24724 - 19968: 0xFCE2, - 24726 - 19968: 0xF8A7, - 24730 - 19968: 0xE1E5, - 24731 - 19968: 0xEEF9, - 24735 - 19968: 0xE7F6, - 24736 - 19968: 0xEAED, - 24739 - 19968: 0xFCB4, - 24740 - 19968: 0xF5C2, - 24743 - 19968: 0xD7DC, - 24752 - 19968: 0xF0F5, - 24754 - 19968: 0xDDE8, - 24755 - 19968: 0xD3ED, - 24756 - 19968: 0xF5FC, - 24758 - 19968: 0xDABF, - 24760 - 19968: 0xCCFB, - 24764 - 19968: 0xD3FA, - 24765 - 19968: 0xF4A4, - 24773 - 19968: 0xEFD7, - 24775 - 19968: 0xD4C3, - 24785 - 19968: 0xFBE3, - 24794 - 19968: 0xFBED, - 24796 - 19968: 0xE0AD, - 24799 - 19968: 0xEAEE, - 24800 - 19968: 0xFBB3, - 24801 - 19968: 0xE4C2, - 24816 - 19968: 0xF6E7, - 24817 - 19968: 0xD2DD, - 24819 - 19968: 0xDFCC, - 24822 - 19968: 0xFCC9, - 24825 - 19968: 0xE5A9, - 24826 - 19968: 0xE0F6, - 24827 - 19968: 0xF6B3, - 24833 - 19968: 0xE1FE, - 24838 - 19968: 0xCBF0, - 24840 - 19968: 0xEAEF, - 24841 - 19968: 0xEAF0, - 24845 - 19968: 0xDAC0, - 24846 - 19968: 0xF8B4, - 24847 - 19968: 0xEBF2, - 24853 - 19968: 0xE4C3, - 24858 - 19968: 0xE9D7, - 24859 - 19968: 0xE4F1, - 24863 - 19968: 0xCAEF, - 24871 - 19968: 0xCED7, - 24880 - 19968: 0xFCCA, - 24884 - 19968: 0xF3E1, - 24887 - 19968: 0xCBC4, - 24892 - 19968: 0xE3E5, - 24894 - 19968: 0xCBC5, - 24895 - 19968: 0xEAB4, - 24898 - 19968: 0xE9BD, - 24900 - 19968: 0xD7C9, - 24903 - 19968: 0xEBDB, - 24904 - 19968: 0xEDB1, - 24906 - 19968: 0xCCC3, - 24907 - 19968: 0xF7BE, - 24908 - 19968: 0xFCCB, - 24915 - 19968: 0xF8F4, - 24917 - 19968: 0xD9B7, - 24920 - 19968: 0xF3D3, - 24921 - 19968: 0xF3D4, - 24925 - 19968: 0xF7E4, - 24927 - 19968: 0xF7D1, - 24930 - 19968: 0xD8B7, - 24931 - 19968: 0xCEB1, - 24932 - 19968: 0xCAC2, - 24935 - 19968: 0xFBB4, - 24936 - 19968: 0xCBC6, - 24939 - 19968: 0xF0F6, - 24942 - 19968: 0xD5E7, - 24944 - 19968: 0xEAD0, - 24950 - 19968: 0xCCD4, - 24951 - 19968: 0xCBAF, - 24957 - 19968: 0xF4AA, - 24958 - 19968: 0xE9AF, - 24961 - 19968: 0xF5C3, - 24962 - 19968: 0xE9D8, - 24970 - 19968: 0xDDE9, - 24974 - 19968: 0xF1F3, - 24976 - 19968: 0xD5FB, - 24977 - 19968: 0xDEBB, - 24980 - 19968: 0xF4FB, - 24984 - 19968: 0xFDF3, - 24985 - 19968: 0xFDF2, - 24986 - 19968: 0xF7A6, - 24996 - 19968: 0xDDC9, - 24999 - 19968: 0xD4D3, - 25001 - 19968: 0xCCA8, - 25003 - 19968: 0xDAC1, - 25004 - 19968: 0xCCD5, - 25006 - 19968: 0xD9E4, - 25010 - 19968: 0xFACA, - 25014 - 19968: 0xE5E3, - 25018 - 19968: 0xD3BC, - 25022 - 19968: 0xCAF0, - 25027 - 19968: 0xD0C4, - 25031 - 19968: 0xCAD0, - 25032 - 19968: 0xFAAB, - 25033 - 19968: 0xEBEB, - 25034 - 19968: 0xE7F8, - 25035 - 19968: 0xD9E5, - 25062 - 19968: 0xD1D7, - 25074 - 19968: 0xF3A4, - 25078 - 19968: 0xD4FB, - 25079 - 19968: 0xFCE3, - 25080 - 19968: 0xFAD8, - 25082 - 19968: 0xF3D5, - 25084 - 19968: 0xCFAB, - 25087 - 19968: 0xEBF3, - 25088 - 19968: 0xD5FC, - 25095 - 19968: 0xD3D4, - 25096 - 19968: 0xCDFC, - 25098 - 19968: 0xD9E6, - 25100 - 19968: 0xE2F9, - 25101 - 19968: 0xE2A1, - 25102 - 19968: 0xEBD4, - 25104 - 19968: 0xE0F7, - 25105 - 19968: 0xE4B2, - 25106 - 19968: 0xCCFC, - 25110 - 19968: 0xFBE4, - 25114 - 19968: 0xF4AB, - 25119 - 19968: 0xD0BD, - 25121 - 19968: 0xCAF1, - 25130 - 19968: 0xEFB8, - 25134 - 19968: 0xD7C0, - 25136 - 19968: 0xEEFA, - 25137 - 19968: 0xFDF4, - 25140 - 19968: 0xD3E3, - 25142 - 19968: 0xFBC2, - 25150 - 19968: 0xD5E8, - 25151 - 19968: 0xDBAE, - 25152 - 19968: 0xE1B6, - 25153 - 19968: 0xF8B7, - 25159 - 19968: 0xE0BF, - 25160 - 19968: 0xFBC3, - 25161 - 19968: 0xDDEA, - 25163 - 19968: 0xE2A2, - 25165 - 19968: 0xEEA6, - 25171 - 19968: 0xF6E8, - 25176 - 19968: 0xF6F5, - 25198 - 19968: 0xDDCA, - 25201 - 19968: 0xD0E2, - 25206 - 19968: 0xDDA6, - 25209 - 19968: 0xDDEB, - 25212 - 19968: 0xE4F9, - 25215 - 19968: 0xE3AF, - 25216 - 19968: 0xD0FC, - 25220 - 19968: 0xF4FC, - 25225 - 19968: 0xCCBC, - 25226 - 19968: 0xF7EA, - 25233 - 19968: 0xE5E4, - 25234 - 19968: 0xDFF1, - 25237 - 19968: 0xF7E1, - 25239 - 19968: 0xF9F7, - 25240 - 19968: 0xEFB9, - 25243 - 19968: 0xF8D8, - 25259 - 19968: 0xF9A9, - 25265 - 19968: 0xF8D9, - 25269 - 19968: 0xEEBD, - 25273 - 19968: 0xD8C6, - 25276 - 19968: 0xE4E3, - 25277 - 19968: 0xF5CE, - 25282 - 19968: 0xDDD9, - 25287 - 19968: 0xD9E7, - 25288 - 19968: 0xD2B9, - 25289 - 19968: 0xD5C3, - 25292 - 19968: 0xDAE5, - 25293 - 19968: 0xDAD0, - 25295 - 19968: 0xD1D9, - 25296 - 19968: 0xCED8, - 25298 - 19968: 0xCBDE, - 25299 - 19968: 0xF4AC, - 25300 - 19968: 0xDAFB, - 25302 - 19968: 0xF6E9, - 25303 - 19968: 0xE8F3, - 25304 - 19968: 0xCFAC, - 25305 - 19968: 0xF0F0, - 25307 - 19968: 0xF4FD, - 25308 - 19968: 0xDBC8, - 25324 - 19968: 0xCEC0, - 25325 - 19968: 0xE3D4, - 25326 - 19968: 0xD1CF, - 25327 - 19968: 0xF1F5, - 25329 - 19968: 0xCDF2, - 25331 - 19968: 0xCFEB, - 25335 - 19968: 0xCDB8, - 25342 - 19968: 0xE3A6, - 25343 - 19968: 0xD1DA, - 25345 - 19968: 0xF2A5, - 25351 - 19968: 0xF2A6, - 25353 - 19968: 0xE4CE, - 25361 - 19968: 0xD3FB, - 25387 - 19968: 0xF1A9, - 25391 - 19968: 0xF2C9, - 25402 - 19968: 0xEFD8, - 25403 - 19968: 0xE6C9, - 25405 - 19968: 0xD8B8, - 25406 - 19968: 0xFAF3, - 25417 - 19968: 0xF3B5, - 25420 - 19968: 0xF8A4, - 25423 - 19968: 0xD1F3, - 25424 - 19968: 0xE6C8, - 25429 - 19968: 0xF8DA, - 25447 - 19968: 0xDCE9, - 25448 - 19968: 0xDED7, - 25454 - 19968: 0xCBDF, - 25458 - 19968: 0xCFEC, - 25463 - 19968: 0xF4DF, - 25466 - 19968: 0xD1F4, - 25467 - 19968: 0xD2BA, - 25471 - 19968: 0xDFF2, - 25475 - 19968: 0xE1B7, - 25480 - 19968: 0xE2A3, - 25481 - 19968: 0xD3FC, - 25484 - 19968: 0xEDE6, - 25490 - 19968: 0xDBC9, - 25494 - 19968: 0xE4FA, - 25496 - 19968: 0xCFDE, - 25499 - 19968: 0xCED0, - 25504 - 19968: 0xD5D3, - 25505 - 19968: 0xF3F5, - 25506 - 19968: 0xF7AE, - 25509 - 19968: 0xEFC8, - 25511 - 19968: 0xCDF3, - 25512 - 19968: 0xF5CF, - 25513 - 19968: 0xE5F3, - 25514 - 19968: 0xF0C2, - 25536 - 19968: 0xCAD1, - 25540 - 19968: 0xEAF1, - 25542 - 19968: 0xD0A6, - 25551 - 19968: 0xD9DA, - 25552 - 19968: 0xF0AB, - 25558 - 19968: 0xEBE7, - 25562 - 19968: 0xE5C0, - 25563 - 19968: 0xFCB5, - 25569 - 19968: 0xE4C4, - 25581 - 19968: 0xCCA9, - 25582 - 19968: 0xFDC6, - 25588 - 19968: 0xEAB5, - 25590 - 19968: 0xE5AA, - 25591 - 19968: 0xDFBA, - 25613 - 19968: 0xE1DF, - 25615 - 19968: 0xDAD1, - 25620 - 19968: 0xE1B8, - 25622 - 19968: 0xE8F4, - 25623 - 19968: 0xD3FD, - 25628 - 19968: 0xE2A4, - 25634 - 19968: 0xF2CA, - 25644 - 19968: 0xDAE6, - 25645 - 19968: 0xF7B3, - 25658 - 19968: 0xFDCD, - 25662 - 19968: 0xF3B6, - 25688 - 19968: 0xEED7, - 25696 - 19968: 0xF5C4, - 25705 - 19968: 0xD8A4, - 25711 - 19968: 0xF2A7, - 25720 - 19968: 0xD9B8, - 25721 - 19968: 0xD9B9, - 25722 - 19968: 0xEFC9, - 25736 - 19968: 0xD6CE, - 25745 - 19968: 0xF7CB, - 25746 - 19968: 0xDFAE, - 25747 - 19968: 0xE8F5, - 25754 - 19968: 0xD2B5, - 25758 - 19968: 0xD3D5, - 25764 - 19968: 0xF4CC, - 25765 - 19968: 0xDAFC, - 25771 - 19968: 0xD9E8, - 25773 - 19968: 0xF7EB, - 25774 - 19968: 0xF5C9, - 25776 - 19968: 0xF3BC, - 25778 - 19968: 0xDAD2, - 25787 - 19968: 0xD3B5, - 25793 - 19968: 0xE8B6, - 25796 - 19968: 0xD6CF, - 25797 - 19968: 0xF4BA, - 25799 - 19968: 0xF7C9, - 25802 - 19968: 0xCCAA, - 25805 - 19968: 0xF0C3, - 25806 - 19968: 0xCCD6, - 25810 - 19968: 0xD0D3, - 25812 - 19968: 0xD3BD, - 25816 - 19968: 0xDBFB, - 25818 - 19968: 0xCBE0, - 25825 - 19968: 0xD3E4, - 25826 - 19968: 0xF6F7, - 25829 - 19968: 0xD5BA, - 25830 - 19968: 0xF3CD, - 25831 - 19968: 0xCBE1, - 25836 - 19968: 0xEBF4, - 25842 - 19968: 0xF4AD, - 25844 - 19968: 0xFCAA, - 25850 - 19968: 0xF7EC, - 25854 - 19968: 0xE8F6, - 25856 - 19968: 0xDAE7, - 25860 - 19968: 0xF7CC, - 25880 - 19968: 0xE5C1, - 25885 - 19968: 0xE0EE, - 25891 - 19968: 0xD5FD, - 25898 - 19968: 0xCEE6, - 25899 - 19968: 0xFCAB, - 25900 - 19968: 0xD5BB, - 25903 - 19968: 0xF2A8, - 25910 - 19968: 0xE2A5, - 25911 - 19968: 0xCDB9, - 25912 - 19968: 0xEAF2, - 25913 - 19968: 0xCBC7, - 25915 - 19968: 0xCDF4, - 25918 - 19968: 0xDBAF, - 25919 - 19968: 0xEFD9, - 25925 - 19968: 0xCDBA, - 25928 - 19968: 0xFCF9, - 25933 - 19968: 0xDFF3, - 25934 - 19968: 0xCEE7, - 25935 - 19968: 0xDAC2, - 25937 - 19968: 0xCFAD, - 25942 - 19968: 0xE7F9, - 25943 - 19968: 0xF8A8, - 25950 - 19968: 0xF3E2, - 25954 - 19968: 0xCAF2, - 25955 - 19968: 0xDFA4, - 25958 - 19968: 0xD4C4, - 25964 - 19968: 0xCCD7, - 25965 - 19968: 0xE5C2, - 25970 - 19968: 0xCDBB, - 25972 - 19968: 0xEFDA, - 25973 - 19968: 0xEED8, - 25975 - 19968: 0xDDA7, - 25976 - 19968: 0xE2A6, - 25982 - 19968: 0xE0C0, - 25986 - 19968: 0xD6B0, - 25987 - 19968: 0xF8CA, - 25989 - 19968: 0xFCFA, - 25991 - 19968: 0xD9FE, - 25996 - 19968: 0xDEB0, - 26000 - 19968: 0xDDEC, - 26001 - 19968: 0xDAE8, - 26007 - 19968: 0xD4E0, - 26009 - 19968: 0xD6F9, - 26011 - 19968: 0xCDD7, - 26012 - 19968: 0xDED8, - 26015 - 19968: 0xF2F8, - 26017 - 19968: 0xE4D6, - 26020 - 19968: 0xD0C5, - 26021 - 19968: 0xF4AE, - 26023 - 19968: 0xDDA8, - 26027 - 19968: 0xEDC5, - 26028 - 19968: 0xF3D6, - 26031 - 19968: 0xDED9, - 26032 - 19968: 0xE3E6, - 26039 - 19968: 0xD3A8, - 26041 - 19968: 0xDBB0, - 26044 - 19968: 0xE5DA, - 26045 - 19968: 0xE3BF, - 26049 - 19968: 0xDBB1, - 26053 - 19968: 0xD5E9, - 26059 - 19968: 0xE0C1, - 26060 - 19968: 0xEFDB, - 26063 - 19968: 0xF0E9, - 26066 - 19968: 0xD7B2, - 26071 - 19968: 0xD0FD, - 26080 - 19968: 0xD9E9, - 26083 - 19968: 0xD0FE, - 26085 - 19968: 0xECED, - 26086 - 19968: 0xD3A9, - 26088 - 19968: 0xF2A9, - 26089 - 19968: 0xF0C4, - 26092 - 19968: 0xE2E2, - 26093 - 19968: 0xE9EF, - 26097 - 19968: 0xF9D1, - 26100 - 19968: 0xE9D9, - 26106 - 19968: 0xE8DA, - 26107 - 19968: 0xDAC3, - 26108 - 19968: 0xDAC4, - 26109 - 19968: 0xD4C5, - 26111 - 19968: 0xE7FA, - 26118 - 19968: 0xCDE0, - 26119 - 19968: 0xE3B0, - 26121 - 19968: 0xDBB2, - 26122 - 19968: 0xFBC4, - 26124 - 19968: 0xF3E3, - 26126 - 19968: 0xD9A5, - 26127 - 19968: 0xFBE7, - 26128 - 19968: 0xDDCB, - 26129 - 19968: 0xD0D4, - 26131 - 19968: 0xE6B6, - 26132 - 19968: 0xE0AE, - 26133 - 19968: 0xFDDA, - 26142 - 19968: 0xDCB5, - 26143 - 19968: 0xE0F8, - 26144 - 19968: 0xE7B1, - 26149 - 19968: 0xF5F0, - 26151 - 19968: 0xD8DC, - 26152 - 19968: 0xEDC6, - 26157 - 19968: 0xE1B9, - 26159 - 19968: 0xE3C0, - 26160 - 19968: 0xF9C0, - 26161 - 19968: 0xE9F0, - 26164 - 19968: 0xD9DB, - 26166 - 19968: 0xF3E4, - 26170 - 19968: 0xDCB6, - 26171 - 19968: 0xE4E9, - 26177 - 19968: 0xF0C5, - 26178 - 19968: 0xE3C1, - 26179 - 19968: 0xFCCC, - 26180 - 19968: 0xFCCD, - 26185 - 19968: 0xF2CB, - 26187 - 19968: 0xF2CC, - 26191 - 19968: 0xE4CF, - 26201 - 19968: 0xF1DB, - 26203 - 19968: 0xFAD9, - 26205 - 19968: 0xF1B8, - 26206 - 19968: 0xFDF5, - 26207 - 19968: 0xE0F9, - 26212 - 19968: 0xE7FB, - 26213 - 19968: 0xFCB7, - 26214 - 19968: 0xFCE4, - 26215 - 19968: 0xFBC5, - 26216 - 19968: 0xE3E7, - 26217 - 19968: 0xD8B9, - 26219 - 19968: 0xF6F8, - 26222 - 19968: 0xDCC5, - 26223 - 19968: 0xCCD8, - 26227 - 19968: 0xE0AF, - 26228 - 19968: 0xF4E7, - 26230 - 19968: 0xEFDC, - 26231 - 19968: 0xCFFC, - 26232 - 19968: 0xEFDD, - 26234 - 19968: 0xF2AA, - 26244 - 19968: 0xFDBE, - 26247 - 19968: 0xCAAC, - 26248 - 19968: 0xFDBB, - 26249 - 19968: 0xFDC7, - 26254 - 19968: 0xE7B2, - 26256 - 19968: 0xEAD1, - 26257 - 19968: 0xDFF4, - 26262 - 19968: 0xD1EC, - 26263 - 19968: 0xE4DE, - 26264 - 19968: 0xE5C3, - 26269 - 19968: 0xD9A6, - 26272 - 19968: 0xCDBC, - 26274 - 19968: 0xF3E5, - 26283 - 19968: 0xEDD5, - 26286 - 19968: 0xD9BA, - 26290 - 19968: 0xEDE7, - 26291 - 19968: 0xFBB5, - 26292 - 19968: 0xF8EC, - 26297 - 19968: 0xE0E7, - 26299 - 19968: 0xCCD9, - 26302 - 19968: 0xD4C6, - 26308 - 19968: 0xE7A5, - 26310 - 19968: 0xD5F5, - 26311 - 19968: 0xD3BE, - 26313 - 19968: 0xFCFB, - 26326 - 19968: 0xE4F2, - 26329 - 19968: 0xDFF5, - 26332 - 19968: 0xE8F8, - 26333 - 19968: 0xF8ED, - 26336 - 19968: 0xCEC7, - 26342 - 19968: 0xFDF6, - 26352 - 19968: 0xE8D8, - 26354 - 19968: 0xCDD8, - 26355 - 19968: 0xE7D6, - 26356 - 19968: 0xCCDA, - 26359 - 19968: 0xCAE3, - 26360 - 19968: 0xDFF6, - 26361 - 19968: 0xF0C7, - 26362 - 19968: 0xF0C6, - 26364 - 19968: 0xD8BA, - 26366 - 19968: 0xF1F4, - 26367 - 19968: 0xF4F0, - 26368 - 19968: 0xF5CC, - 26371 - 19968: 0xFCE5, - 26376 - 19968: 0xEAC5, - 26377 - 19968: 0xEAF3, - 26379 - 19968: 0xDDDB, - 26381 - 19968: 0xDCD7, - 26388 - 19968: 0xDEFD, - 26389 - 19968: 0xF2F9, - 26391 - 19968: 0xD5C7, - 26395 - 19968: 0xD8D0, - 26397 - 19968: 0xF0C8, - 26398 - 19968: 0xD1A1, - 26399 - 19968: 0xD1A2, - 26406 - 19968: 0xD9D4, - 26407 - 19968: 0xD6E8, - 26408 - 19968: 0xD9CA, - 26410 - 19968: 0xDAB1, - 26411 - 19968: 0xD8C7, - 26412 - 19968: 0xDCE2, - 26413 - 19968: 0xF3CE, - 26414 - 19968: 0xF5F4, - 26417 - 19968: 0xF1B9, - 26420 - 19968: 0xDAD3, - 26422 - 19968: 0xF6EA, - 26426 - 19968: 0xCFF5, - 26429 - 19968: 0xFDAE, - 26438 - 19968: 0xCAD2, - 26441 - 19968: 0xDFB4, - 26446 - 19968: 0xD7DD, - 26447 - 19968: 0xFABA, - 26448 - 19968: 0xEEA7, - 26449 - 19968: 0xF5BD, - 26451 - 19968: 0xF8F5, - 26454 - 19968: 0xEDE8, - 26460 - 19968: 0xD4E1, - 26462 - 19968: 0xD1A3, - 26463 - 19968: 0xE1D6, - 26477 - 19968: 0xF9F8, - 26479 - 19968: 0xDBCA, - 26480 - 19968: 0xCBF9, - 26481 - 19968: 0xD4D4, - 26483 - 19968: 0xD9DC, - 26485 - 19968: 0xEEBE, - 26487 - 19968: 0xF7ED, - 26491 - 19968: 0xD2EE, - 26494 - 19968: 0xE1E6, - 26495 - 19968: 0xF7F9, - 26503 - 19968: 0xDDED, - 26505 - 19968: 0xE8DB, - 26507 - 19968: 0xDBB3, - 26511 - 19968: 0xD1F7, - 26512 - 19968: 0xE0B0, - 26515 - 19968: 0xD4E2, - 26517 - 19968: 0xF6D7, - 26519 - 19968: 0xD7F9, - 26522 - 19968: 0xD8DD, - 26524 - 19968: 0xCDFD, - 26525 - 19968: 0xF2AB, - 26543 - 19968: 0xCDBD, - 26544 - 19968: 0xF8C2, - 26547 - 19968: 0xF2AC, - 26550 - 19968: 0xCAAD, - 26551 - 19968: 0xCAAE, - 26552 - 19968: 0xCFAE, - 26558 - 19968: 0xE3C2, - 26564 - 19968: 0xDCB7, - 26575 - 19968: 0xDBDA, - 26576 - 19968: 0xD9BB, - 26577 - 19968: 0xCAF3, - 26578 - 19968: 0xF6D3, - 26579 - 19968: 0xE6F8, - 26580 - 19968: 0xEAF5, - 26586 - 19968: 0xEAF6, - 26589 - 19968: 0xF6F9, - 26601 - 19968: 0xCFAF, - 26604 - 19968: 0xCAD3, - 26607 - 19968: 0xCAAF, - 26608 - 19968: 0xD2B0, - 26609 - 19968: 0xF1BA, - 26611 - 19968: 0xD7B3, - 26612 - 19968: 0xE3C3, - 26613 - 19968: 0xF3FD, - 26614 - 19968: 0xDEDA, - 26619 - 19968: 0xDEDB, - 26622 - 19968: 0xEFDE, - 26642 - 19968: 0xE2E3, - 26643 - 19968: 0xEEFB, - 26646 - 19968: 0xDFF7, - 26647 - 19968: 0xD7CA, - 26657 - 19968: 0xCEE8, - 26658 - 19968: 0xDBDB, - 26666 - 19968: 0xF1BB, - 26671 - 19968: 0xE9F1, - 26680 - 19968: 0xFAB7, - 26681 - 19968: 0xD0C6, - 26684 - 19968: 0xCCAB, - 26685 - 19968: 0xEEA8, - 26688 - 19968: 0xCBFA, - 26689 - 19968: 0xF9F9, - 26690 - 19968: 0xCCFD, - 26691 - 19968: 0xD3FE, - 26696 - 19968: 0xE4D0, - 26702 - 19968: 0xF2EE, - 26704 - 19968: 0xD4D5, - 26705 - 19968: 0xDFCD, - 26707 - 19968: 0xFCB8, - 26708 - 19968: 0xD1D0, - 26733 - 19968: 0xF2CD, - 26742 - 19968: 0xF7D2, - 26751 - 19968: 0xCAD4, - 26753 - 19968: 0xD5D9, - 26757 - 19968: 0xD8DE, - 26767 - 19968: 0xCDD9, - 26771 - 19968: 0xEEA9, - 26772 - 19968: 0xF6BC, - 26775 - 19968: 0xCCDB, - 26781 - 19968: 0xF0C9, - 26783 - 19968: 0xFCFC, - 26785 - 19968: 0xE8C9, - 26786 - 19968: 0xF4FE, - 26791 - 19968: 0xE7FC, - 26792 - 19968: 0xD7DE, - 26797 - 19968: 0xDEDC, - 26799 - 19968: 0xF0AC, - 26800 - 19968: 0xCCFE, - 26801 - 19968: 0xCDE1, - 26803 - 19968: 0xE1BA, - 26805 - 19968: 0xDBEF, - 26806 - 19968: 0xDAB2, - 26820 - 19968: 0xD1A5, - 26821 - 19968: 0xDCB8, - 26825 - 19968: 0xD8F6, - 26827 - 19968: 0xD1A4, - 26829 - 19968: 0xCDE2, - 26834 - 19968: 0xDCEA, - 26837 - 19968: 0xF0F7, - 26839 - 19968: 0xF0CA, - 26840 - 19968: 0xD0BE, - 26842 - 19968: 0xDDDC, - 26847 - 19968: 0xD4D6, - 26848 - 19968: 0xD3D6, - 26855 - 19968: 0xEDD0, - 26856 - 19968: 0xCDA1, - 26862 - 19968: 0xDFB5, - 26866 - 19968: 0xDFF8, - 26873 - 19968: 0xD4A1, - 26874 - 19968: 0xCEB2, - 26880 - 19968: 0xE8CA, - 26885 - 19968: 0xEBF5, - 26893 - 19968: 0xE3D5, - 26894 - 19968: 0xF5D0, - 26898 - 19968: 0xF5A1, - 26919 - 19968: 0xD9A7, - 26928 - 19968: 0xE5AB, - 26941 - 19968: 0xE6CB, - 26943 - 19968: 0xF5F1, - 26954 - 19968: 0xE5C5, - 26963 - 19968: 0xF9A3, - 26964 - 19968: 0xE0DB, - 26965 - 19968: 0xF6EB, - 26967 - 19968: 0xCBF1, - 26969 - 19968: 0xD9EA, - 26970 - 19968: 0xF5A2, - 26974 - 19968: 0xD7D1, - 26976 - 19968: 0xD1F8, - 26977 - 19968: 0xEAF8, - 26978 - 19968: 0xEAF9, - 26979 - 19968: 0xDAB3, - 26984 - 19968: 0xEFDF, - 26987 - 19968: 0xF1EF, - 26989 - 19968: 0xE5F6, - 26990 - 19968: 0xEEBF, - 26991 - 19968: 0xE2E4, - 26997 - 19968: 0xD0BF, - 26999 - 19968: 0xFAAC, - 27000 - 19968: 0xF5D1, - 27001 - 19968: 0xE7B3, - 27029 - 19968: 0xE9BE, - 27035 - 19968: 0xF2CE, - 27036 - 19968: 0xDBB4, - 27045 - 19968: 0xFCCE, - 27047 - 19968: 0xDDEE, - 27054 - 19968: 0xE7B4, - 27060 - 19968: 0xD7B4, - 27067 - 19968: 0xF7B4, - 27073 - 19968: 0xCDBE, - 27075 - 19968: 0xDAE9, - 27083 - 19968: 0xCFB0, - 27084 - 19968: 0xF7D9, - 27085 - 19968: 0xF3E6, - 27088 - 19968: 0xCED9, - 27112 - 19968: 0xCEAA, - 27114 - 19968: 0xCBC8, - 27131 - 19968: 0xD0A7, - 27133 - 19968: 0xF0CB, - 27135 - 19968: 0xD0C7, - 27138 - 19968: 0xE4C5, - 27146 - 19968: 0xDBE0, - 27153 - 19968: 0xD5DA, - 27155 - 19968: 0xD7A7, - 27159 - 19968: 0xEEC0, - 27161 - 19968: 0xF8F6, - 27166 - 19968: 0xF5D2, - 27167 - 19968: 0xEDE9, - 27169 - 19968: 0xD9BC, - 27171 - 19968: 0xE5C6, - 27189 - 19968: 0xF5A3, - 27192 - 19968: 0xDAD4, - 27193 - 19968: 0xE2A7, - 27194 - 19968: 0xFBFC, - 27197 - 19968: 0xF1DC, - 27204 - 19968: 0xCAF4, - 27208 - 19968: 0xE8FA, - 27211 - 19968: 0xCEE9, - 27218 - 19968: 0xE9F8, - 27219 - 19968: 0xE2E5, - 27224 - 19968: 0xD0B9, - 27225 - 19968: 0xD4F2, - 27231 - 19968: 0xD1A6, - 27233 - 19968: 0xDFCE, - 27243 - 19968: 0xFCF4, - 27264 - 19968: 0xD3AA, - 27268 - 19968: 0xCCAC, - 27273 - 19968: 0xEFE0, - 27277 - 19968: 0xE5E5, - 27278 - 19968: 0xD0D5, - 27287 - 19968: 0xDBFC, - 27292 - 19968: 0xFCE6, - 27298 - 19968: 0xCBFE, - 27299 - 19968: 0xEDEA, - 27315 - 19968: 0xDEB1, - 27323 - 19968: 0xF9E3, - 27330 - 19968: 0xD4A2, - 27331 - 19968: 0xCFF6, - 27347 - 19968: 0xD6D0, - 27354 - 19968: 0xD5EA, - 27355 - 19968: 0xF1EE, - 27382 - 19968: 0xFACB, - 27387 - 19968: 0xE5A1, - 27396 - 19968: 0xD5B1, - 27402 - 19968: 0xCFED, - 27404 - 19968: 0xEDEB, - 27410 - 19968: 0xD5B2, - 27414 - 19968: 0xD5BC, - 27424 - 19968: 0xFDE2, - 27425 - 19968: 0xF3AD, - 27427 - 19968: 0xFDDB, - 27442 - 19968: 0xE9B0, - 27450 - 19968: 0xD1A7, - 27453 - 19968: 0xFDE3, - 27454 - 19968: 0xCEB3, - 27462 - 19968: 0xFDE4, - 27463 - 19968: 0xFACE, - 27468 - 19968: 0xCAB0, - 27470 - 19968: 0xF7A7, - 27472 - 19968: 0xCFB1, - 27487 - 19968: 0xE6A2, - 27489 - 19968: 0xFCB6, - 27490 - 19968: 0xF2AD, - 27491 - 19968: 0xEFE1, - 27492 - 19968: 0xF3AE, - 27493 - 19968: 0xDCC6, - 27494 - 19968: 0xD9EB, - 27498 - 19968: 0xE8E0, - 27506 - 19968: 0xE1A8, - 27511 - 19968: 0xD5F6, - 27512 - 19968: 0xCFFD, - 27515 - 19968: 0xDEDD, - 27519 - 19968: 0xD9D1, - 27523 - 19968: 0xE4EA, - 27524 - 19968: 0xF2CF, - 27526 - 19968: 0xF7BF, - 27529 - 19968: 0xE2E6, - 27530 - 19968: 0xE2A8, - 27542 - 19968: 0xE3D6, - 27544 - 19968: 0xEDD1, - 27550 - 19968: 0xE9F9, - 27566 - 19968: 0xD6B1, - 27567 - 19968: 0xDEB2, - 27570 - 19968: 0xE0E8, - 27573 - 19968: 0xD3AB, - 27575 - 19968: 0xEBDC, - 27578 - 19968: 0xDFAF, - 27580 - 19968: 0xCAC3, - 27583 - 19968: 0xEEFC, - 27585 - 19968: 0xFDC3, - 27589 - 19968: 0xEBF6, - 27590 - 19968: 0xCFB2, - 27595 - 19968: 0xD9EC, - 27597 - 19968: 0xD9BD, - 27599 - 19968: 0xD8DF, - 27602 - 19968: 0xD4B8, - 27603 - 19968: 0xEBBE, - 27604 - 19968: 0xDDEF, - 27606 - 19968: 0xDDF0, - 27607 - 19968: 0xDDF1, - 27608 - 19968: 0xDDF2, - 27611 - 19968: 0xD9BE, - 27627 - 19968: 0xFBC6, - 27628 - 19968: 0xCFB3, - 27656 - 19968: 0xEEFD, - 27663 - 19968: 0xE4AB, - 27665 - 19968: 0xDAC5, - 27667 - 19968: 0xD8EC, - 27683 - 19968: 0xD1A8, - 27700 - 19968: 0xE2A9, - 27703 - 19968: 0xDEBC, - 27704 - 19968: 0xE7B5, - 27710 - 19968: 0xDBF0, - 27712 - 19968: 0xEFE2, - 27713 - 19968: 0xF1F0, - 27714 - 19968: 0xCFB4, - 27726 - 19968: 0xDBF1, - 27728 - 19968: 0xE0B1, - 27733 - 19968: 0xDFA5, - 27735 - 19968: 0xF9D2, - 27738 - 19968: 0xE7FD, - 27741 - 19968: 0xE6A3, - 27742 - 19968: 0xFBF1, - 27743 - 19968: 0xCBB0, - 27744 - 19968: 0xF2AE, - 27752 - 19968: 0xCDE7, - 27754 - 19968: 0xE8DC, - 27757 - 19968: 0xE7D7, - 27760 - 19968: 0xF7C0, - 27762 - 19968: 0xD0E3, - 27766 - 19968: 0xDAA1, - 27770 - 19968: 0xCCBD, - 27773 - 19968: 0xD1A9, - 27774 - 19968: 0xDDCC, - 27777 - 19968: 0xE3FE, - 27778 - 19968: 0xD1AA, - 27779 - 19968: 0xE8AA, - 27781 - 19968: 0xEAB6, - 27782 - 19968: 0xF9FA, - 27783 - 19968: 0xE6CC, - 27784 - 19968: 0xF6D8, - 27788 - 19968: 0xD4C7, - 27792 - 19968: 0xD9CB, - 27794 - 19968: 0xD9D2, - 27795 - 19968: 0xD3CB, - 27796 - 19968: 0xD8F7, - 27797 - 19968: 0xDAA9, - 27798 - 19968: 0xF5F8, - 27801 - 19968: 0xDEDE, - 27802 - 19968: 0xF2AF, - 27803 - 19968: 0xF8A9, - 27819 - 19968: 0xD8C8, - 27822 - 19968: 0xEEC1, - 27827 - 19968: 0xF9C1, - 27832 - 19968: 0xDDF3, - 27833 - 19968: 0xEAFA, - 27835 - 19968: 0xF6BD, - 27836 - 19968: 0xE1BB, - 27837 - 19968: 0xCDBF, - 27838 - 19968: 0xF4D4, - 27839 - 19968: 0xE6CD, - 27841 - 19968: 0xFCCF, - 27842 - 19968: 0xFBA2, - 27844 - 19968: 0xE0DC, - 27849 - 19968: 0xF4BB, - 27850 - 19968: 0xDAD5, - 27852 - 19968: 0xF9B2, - 27859 - 19968: 0xFBF2, - 27861 - 19968: 0xDBF6, - 27863 - 19968: 0xDEDF, - 27867 - 19968: 0xDBF2, - 27873 - 19968: 0xF8DC, - 27874 - 19968: 0xF7EE, - 27875 - 19968: 0xEBE8, - 27877 - 19968: 0xD2FA, - 27880 - 19968: 0xF1BC, - 27883 - 19968: 0xFADA, - 27886 - 19968: 0xDAEA, - 27887 - 19968: 0xDAC6, - 27888 - 19968: 0xF7C1, - 27891 - 19968: 0xE7B6, - 27915 - 19968: 0xE5C7, - 27916 - 19968: 0xD6AC, - 27921 - 19968: 0xDCC7, - 27927 - 19968: 0xE1A9, - 27929 - 19968: 0xE2AA, - 27931 - 19968: 0xD5A6, - 27934 - 19968: 0xD4D7, - 27941 - 19968: 0xF2D0, - 27943 - 19968: 0xEAFB, - 27945 - 19968: 0xE0DD, - 27946 - 19968: 0xFBF3, - 27954 - 19968: 0xF1BD, - 27957 - 19968: 0xE2E7, - 27958 - 19968: 0xFDD7, - 27960 - 19968: 0xCEC8, - 27961 - 19968: 0xEAB7, - 27963 - 19968: 0xFCC0, - 27965 - 19968: 0xFDE7, - 27966 - 19968: 0xF7EF, - 27969 - 19968: 0xD7B5, - 27993 - 19968: 0xEFBA, - 27994 - 19968: 0xF1DD, - 27996 - 19968: 0xDEB3, - 28003 - 19968: 0xE8CB, - 28006 - 19968: 0xF8DD, - 28009 - 19968: 0xFBC7, - 28010 - 19968: 0xD5C8, - 28012 - 19968: 0xD7DF, - 28014 - 19968: 0xDDA9, - 28020 - 19968: 0xE9B1, - 28023 - 19968: 0xFAAD, - 28024 - 19968: 0xF6D9, - 28025 - 19968: 0xFAF4, - 28031 - 19968: 0xF8AA, - 28037 - 19968: 0xE6EE, - 28039 - 19968: 0xCCDC, - 28040 - 19968: 0xE1BC, - 28041 - 19968: 0xE0EF, - 28044 - 19968: 0xE9BF, - 28045 - 19968: 0xFCFD, - 28046 - 19968: 0xE6CE, - 28049 - 19968: 0xE1D7, - 28051 - 19968: 0xE6CF, - 28053 - 19968: 0xF4F1, - 28079 - 19968: 0xE4F3, - 28082 - 19968: 0xE4FB, - 28085 - 19968: 0xF9E4, - 28096 - 19968: 0xEFE3, - 28099 - 19968: 0xCFEE, - 28100 - 19968: 0xF6BE, - 28101 - 19968: 0xE0B2, - 28102 - 19968: 0xFCFE, - 28103 - 19968: 0xD1AB, - 28107 - 19968: 0xD7FA, - 28111 - 19968: 0xFBC8, - 28113 - 19968: 0xE2D7, - 28120 - 19968: 0xD4A3, - 28121 - 19968: 0xF0F8, - 28122 - 19968: 0xD7A8, - 28126 - 19968: 0xE1E7, - 28129 - 19968: 0xD3BF, - 28136 - 19968: 0xEFE4, - 28138 - 19968: 0xD7C5, - 28139 - 19968: 0xEBE2, - 28142 - 19968: 0xFCE7, - 28145 - 19968: 0xE4A2, - 28147 - 19968: 0xE2E8, - 28149 - 19968: 0xE6D0, - 28151 - 19968: 0xFBE8, - 28152 - 19968: 0xF4E8, - 28153 - 19968: 0xE5F4, - 28154 - 19968: 0xF4BC, - 28155 - 19968: 0xF4D5, - 28183 - 19968: 0xDFB6, - 28185 - 19968: 0xFCB9, - 28186 - 19968: 0xEEC2, - 28187 - 19968: 0xCAF5, - 28191 - 19968: 0xEFE5, - 28192 - 19968: 0xCBE2, - 28193 - 19968: 0xD4A4, - 28195 - 19968: 0xDEE0, - 28196 - 19968: 0xDAFD, - 28197 - 19968: 0xE4C6, - 28198 - 19968: 0xE8BE, - 28203 - 19968: 0xE0DE, - 28204 - 19968: 0xF6B4, - 28205 - 19968: 0xEAD2, - 28207 - 19968: 0xF9FB, - 28210 - 19968: 0xE0C2, - 28212 - 19968: 0xCAE4, - 28214 - 19968: 0xE7B7, - 28216 - 19968: 0xEAFD, - 28218 - 19968: 0xD9DD, - 28220 - 19968: 0xDAB4, - 28221 - 19968: 0xEEAA, - 28222 - 19968: 0xFBE9, - 28227 - 19968: 0xDBCB, - 28228 - 19968: 0xDAB5, - 28234 - 19968: 0xF1BE, - 28237 - 19968: 0xD3AC, - 28246 - 19968: 0xFBC9, - 28248 - 19968: 0xDFCF, - 28251 - 19968: 0xD3C0, - 28252 - 19968: 0xE3D7, - 28254 - 19968: 0xEFE6, - 28255 - 19968: 0xFCD0, - 28263 - 19968: 0xE9C0, - 28267 - 19968: 0xF5D3, - 28270 - 19968: 0xECDC, - 28271 - 19968: 0xF7B7, - 28274 - 19968: 0xEAB8, - 28275 - 19968: 0xD1F9, - 28282 - 19968: 0xDCC8, - 28304 - 19968: 0xEAB9, - 28310 - 19968: 0xF1DE, - 28316 - 19968: 0xD7B6, - 28317 - 19968: 0xCFB5, - 28319 - 19968: 0xD9A8, - 28322 - 19968: 0xECEE, - 28325 - 19968: 0xDDAA, - 28330 - 19968: 0xCDA2, - 28331 - 19968: 0xE8AE, - 28335 - 19968: 0xE1BD, - 28337 - 19968: 0xF2D1, - 28342 - 19968: 0xE9C1, - 28346 - 19968: 0xD2FC, - 28354 - 19968: 0xDBB5, - 28356 - 19968: 0xF3E7, - 28357 - 19968: 0xD8FE, - 28361 - 19968: 0xFCD1, - 28363 - 19968: 0xEDB2, - 28364 - 19968: 0xF4AF, - 28366 - 19968: 0xFBA3, - 28369 - 19968: 0xFCC1, - 28371 - 19968: 0xEEAB, - 28372 - 19968: 0xD4A5, - 28399 - 19968: 0xF4F2, - 28404 - 19968: 0xEED9, - 28408 - 19968: 0xFBCA, - 28414 - 19968: 0xCDE3, - 28415 - 19968: 0xD8BB, - 28417 - 19968: 0xE5DB, - 28418 - 19968: 0xF8F7, - 28422 - 19968: 0xF6D4, - 28431 - 19968: 0xD7A9, - 28433 - 19968: 0xCBC9, - 28436 - 19968: 0xE6D1, - 28437 - 19968: 0xF0CC, - 28448 - 19968: 0xD8AE, - 28450 - 19968: 0xF9D3, - 28451 - 19968: 0xD5FE, - 28459 - 19968: 0xD8BC, - 28460 - 19968: 0xF2B0, - 28465 - 19968: 0xE2AB, - 28466 - 19968: 0xF3E8, - 28472 - 19968: 0xEFC2, - 28479 - 19968: 0xEDEC, - 28481 - 19968: 0xE7B8, - 28497 - 19968: 0xDAFE, - 28500 - 19968: 0xCCBE, - 28503 - 19968: 0xF2FC, - 28504 - 19968: 0xDAEB, - 28506 - 19968: 0xE2D8, - 28507 - 19968: 0xEDD6, - 28510 - 19968: 0xD6D1, - 28511 - 19968: 0xE0B3, - 28514 - 19968: 0xFCD2, - 28516 - 19968: 0xEBC8, - 28525 - 19968: 0xD3C1, - 28526 - 19968: 0xF0CD, - 28528 - 19968: 0xCFF7, - 28538 - 19968: 0xEDD2, - 28540 - 19968: 0xD4D8, - 28541 - 19968: 0xDCC9, - 28542 - 19968: 0xD7F1, - 28545 - 19968: 0xDFBB, - 28548 - 19968: 0xF3A5, - 28552 - 19968: 0xF4CD, - 28557 - 19968: 0xF1BF, - 28558 - 19968: 0xF8B1, - 28560 - 19968: 0xE9FA, - 28564 - 19968: 0xFBCB, - 28567 - 19968: 0xCAD5, - 28579 - 19968: 0xF9D4, - 28580 - 19968: 0xF7CA, - 28583 - 19968: 0xD6C8, - 28590 - 19968: 0xFCE8, - 28591 - 19968: 0xF3BD, - 28593 - 19968: 0xEEFE, - 28595 - 19968: 0xE7FE, - 28601 - 19968: 0xD3C2, - 28606 - 19968: 0xD3B6, - 28608 - 19968: 0xCCAD, - 28609 - 19968: 0xF6FA, - 28610 - 19968: 0xD6B2, - 28611 - 19968: 0xD2D8, - 28618 - 19968: 0xE7D8, - 28629 - 19968: 0xE3A5, - 28634 - 19968: 0xE7B9, - 28639 - 19968: 0xF0AD, - 28640 - 19968: 0xFBCC, - 28641 - 19968: 0xEBA1, - 28644 - 19968: 0xD4A6, - 28649 - 19968: 0xFBCD, - 28651 - 19968: 0xD5BD, - 28652 - 19968: 0xF1DF, - 28655 - 19968: 0xF6FB, - 28657 - 19968: 0xDEB4, - 28670 - 19968: 0xD5EB, - 28673 - 19968: 0xE5C8, - 28677 - 19968: 0xFBA4, - 28678 - 19968: 0xD4B9, - 28681 - 19968: 0xDEE1, - 28683 - 19968: 0xE4A3, - 28687 - 19968: 0xD7B7, - 28689 - 19968: 0xF8EE, - 28693 - 19968: 0xDEB5, - 28696 - 19968: 0xD6D2, - 28698 - 19968: 0xF9D5, - 28699 - 19968: 0xE7BA, - 28700 - 19968: 0xEBD5, - 28701 - 19968: 0xD5F7, - 28702 - 19968: 0xEFE7, - 28703 - 19968: 0xE1BE, - 28707 - 19968: 0xFAAE, - 28711 - 19968: 0xD6E9, - 28712 - 19968: 0xD6EE, - 28719 - 19968: 0xE7BB, - 28727 - 19968: 0xECCB, - 28734 - 19968: 0xD5B3, - 28748 - 19968: 0xCEB4, - 28752 - 19968: 0xFBA5, - 28753 - 19968: 0xE1EE, - 28760 - 19968: 0xF7A8, - 28765 - 19968: 0xFBCE, - 28771 - 19968: 0xD8BD, - 28779 - 19968: 0xFBFD, - 28784 - 19968: 0xFCE9, - 28792 - 19968: 0xCFB6, - 28796 - 19968: 0xEDC7, - 28797 - 19968: 0xEEAC, - 28805 - 19968: 0xCCDD, - 28810 - 19968: 0xF6A7, - 28814 - 19968: 0xE6FA, - 28818 - 19968: 0xF5A4, - 28824 - 19968: 0xFDDC, - 28825 - 19968: 0xEDB3, - 28826 - 19968: 0xCEC9, - 28833 - 19968: 0xEFE8, - 28836 - 19968: 0xE1BF, - 28843 - 19968: 0xFADB, - 28844 - 19968: 0xCBE3, - 28845 - 19968: 0xF7A9, - 28847 - 19968: 0xFBA6, - 28851 - 19968: 0xDCB9, - 28855 - 19968: 0xF1C0, - 28856 - 19968: 0xEDC8, - 28857 - 19968: 0xEFC3, - 28872 - 19968: 0xD6AD, - 28875 - 19968: 0xFDCE, - 28879 - 19968: 0xE8A1, - 28888 - 19968: 0xFBF4, - 28889 - 19968: 0xD5A7, - 28893 - 19968: 0xF1F6, - 28895 - 19968: 0xE6D3, - 28913 - 19968: 0xCCDE, - 28921 - 19968: 0xF8B2, - 28925 - 19968: 0xDCEB, - 28932 - 19968: 0xFDB6, - 28937 - 19968: 0xE5EA, - 28940 - 19968: 0xF1E0, - 28953 - 19968: 0xDBCC, - 28954 - 19968: 0xDDCD, - 28958 - 19968: 0xD4C8, - 28961 - 19968: 0xD9ED, - 28966 - 19968: 0xF5A5, - 28976 - 19968: 0xE6FB, - 28982 - 19968: 0xE6D4, - 28999 - 19968: 0xFDC8, - 29001 - 19968: 0xD6A1, - 29002 - 19968: 0xFDBF, - 29004 - 19968: 0xFCD3, - 29006 - 19968: 0xEFA1, - 29008 - 19968: 0xE7BC, - 29014 - 19968: 0xD1EE, - 29017 - 19968: 0xE6D5, - 29020 - 19968: 0xE9F2, - 29022 - 19968: 0xDFB0, - 29028 - 19968: 0xD8E0, - 29029 - 19968: 0xFCBA, - 29030 - 19968: 0xFDAF, - 29031 - 19968: 0xF0CE, - 29033 - 19968: 0xDBE1, - 29036 - 19968: 0xE5C9, - 29038 - 19968: 0xEDB4, - 29053 - 19968: 0xE0C3, - 29060 - 19968: 0xE3D8, - 29065 - 19968: 0xE9FB, - 29066 - 19968: 0xEAA8, - 29071 - 19968: 0xFDB7, - 29074 - 19968: 0xFBA7, - 29076 - 19968: 0xE9C2, - 29081 - 19968: 0xFDF7, - 29087 - 19968: 0xE2D9, - 29090 - 19968: 0xDCEC, - 29100 - 19968: 0xE8A2, - 29105 - 19968: 0xE6F0, - 29113 - 19968: 0xFDF8, - 29114 - 19968: 0xFDF9, - 29118 - 19968: 0xF6BF, - 29121 - 19968: 0xE7A7, - 29123 - 19968: 0xE6D7, - 29128 - 19968: 0xD4F3, - 29129 - 19968: 0xD4C9, - 29134 - 19968: 0xD6FA, - 29136 - 19968: 0xD7F2, - 29138 - 19968: 0xE1C0, - 29140 - 19968: 0xDBE2, - 29141 - 19968: 0xE6D8, - 29151 - 19968: 0xE7BD, - 29157 - 19968: 0xF0CF, - 29158 - 19968: 0xF3BE, - 29159 - 19968: 0xE2AC, - 29165 - 19968: 0xF5B7, - 29166 - 19968: 0xE0F0, - 29179 - 19968: 0xFDB8, - 29180 - 19968: 0xE3E8, - 29182 - 19968: 0xD4A7, - 29183 - 19968: 0xE8FC, - 29184 - 19968: 0xFAD2, - 29190 - 19968: 0xF8EF, - 29200 - 19968: 0xD6D3, - 29211 - 19968: 0xD5B4, - 29226 - 19968: 0xF0D0, - 29228 - 19968: 0xF7F0, - 29229 - 19968: 0xEEB3, - 29232 - 19968: 0xEABA, - 29234 - 19968: 0xEAD3, - 29237 - 19968: 0xEDC9, - 29238 - 19968: 0xDDAB, - 29242 - 19968: 0xE5AC, - 29243 - 19968: 0xFDA1, - 29245 - 19968: 0xDFD0, - 29246 - 19968: 0xECB3, - 29248 - 19968: 0xDFD1, - 29254 - 19968: 0xEDED, - 29255 - 19968: 0xF8B8, - 29256 - 19968: 0xF7FA, - 29260 - 19968: 0xF8AB, - 29266 - 19968: 0xF4E0, - 29272 - 19968: 0xD4BA, - 29273 - 19968: 0xE4B3, - 29275 - 19968: 0xE9DA, - 29277 - 19968: 0xDEB6, - 29279 - 19968: 0xD9BF, - 29281 - 19968: 0xD9C0, - 29282 - 19968: 0xD6EF, - 29287 - 19968: 0xD9CC, - 29289 - 19968: 0xDAAA, - 29298 - 19968: 0xDFE5, - 29305 - 19968: 0xF7E5, - 29309 - 19968: 0xCCB2, - 29312 - 19968: 0xDFF9, - 29313 - 19968: 0xD7E0, - 29346 - 19968: 0xD4BB, - 29351 - 19968: 0xFDFA, - 29356 - 19968: 0xCCB3, - 29359 - 19968: 0xDBF3, - 29376 - 19968: 0xDFD2, - 29378 - 19968: 0xCECA, - 29380 - 19968: 0xEEDA, - 29390 - 19968: 0xE4E4, - 29392 - 19968: 0xFBCF, - 29399 - 19968: 0xCFB7, - 29401 - 19968: 0xEEC3, - 29409 - 19968: 0xCEEA, - 29417 - 19968: 0xE2AD, - 29432 - 19968: 0xD7E1, - 29433 - 19968: 0xFAF5, - 29436 - 19968: 0xD5C9, - 29437 - 19968: 0xF8AC, - 29450 - 19968: 0xE7D9, - 29462 - 19968: 0xF3E9, - 29467 - 19968: 0xD8ED, - 29468 - 19968: 0xE3C4, - 29469 - 19968: 0xF0F1, - 29477 - 19968: 0xE8E5, - 29481 - 19968: 0xE0FA, - 29482 - 19968: 0xEEC4, - 29483 - 19968: 0xD9DE, - 29494 - 19968: 0xEBA2, - 29495 - 19968: 0xEBA3, - 29502 - 19968: 0xFCC2, - 29503 - 19968: 0xEABB, - 29508 - 19968: 0xE8AB, - 29509 - 19968: 0xDEE2, - 29520 - 19968: 0xEDEF, - 29522 - 19968: 0xE8A3, - 29527 - 19968: 0xCFF1, - 29544 - 19968: 0xD4BC, - 29546 - 19968: 0xFCEA, - 29552 - 19968: 0xE7BE, - 29554 - 19968: 0xFCF2, - 29557 - 19968: 0xD6B4, - 29560 - 19968: 0xE2AE, - 29562 - 19968: 0xD3B7, - 29563 - 19968: 0xFACC, - 29572 - 19968: 0xFADC, - 29574 - 19968: 0xEDB5, - 29575 - 19968: 0xE1E3, - 29577 - 19968: 0xE8AC, - 29579 - 19968: 0xE8DD, - 29582 - 19968: 0xEFE9, - 29588 - 19968: 0xF4BD, - 29590 - 19968: 0xCFB8, - 29591 - 19968: 0xE9DB, - 29592 - 19968: 0xD1AC, - 29599 - 19968: 0xDAC7, - 29607 - 19968: 0xEBC9, - 29609 - 19968: 0xE8CC, - 29613 - 19968: 0xDEB7, - 29618 - 19968: 0xD6BC, - 29619 - 19968: 0xD3E5, - 29625 - 19968: 0xFADD, - 29632 - 19968: 0xDAD6, - 29634 - 19968: 0xCAB1, - 29641 - 19968: 0xDAC8, - 29642 - 19968: 0xDFA6, - 29644 - 19968: 0xF9B3, - 29645 - 19968: 0xF2D2, - 29647 - 19968: 0xCAC4, - 29654 - 19968: 0xCECB, - 29657 - 19968: 0xCDF5, - 29661 - 19968: 0xFDB0, - 29662 - 19968: 0xD5A8, - 29664 - 19968: 0xF1C1, - 29667 - 19968: 0xE2E9, - 29668 - 19968: 0xDCCA, - 29669 - 19968: 0xECB4, - 29670 - 19968: 0xFAC0, - 29673 - 19968: 0xFBA8, - 29674 - 19968: 0xD0A8, - 29677 - 19968: 0xDAEC, - 29687 - 19968: 0xD9EE, - 29689 - 19968: 0xE0FB, - 29693 - 19968: 0xEFEA, - 29694 - 19968: 0xFADE, - 29697 - 19968: 0xE0C4, - 29699 - 19968: 0xCFB9, - 29701 - 19968: 0xD5CA, - 29702 - 19968: 0xD7E2, - 29703 - 19968: 0xE2AF, - 29705 - 19968: 0xD7B8, - 29715 - 19968: 0xE8CD, - 29723 - 19968: 0xF6DA, - 29728 - 19968: 0xEFA2, - 29729 - 19968: 0xE2DA, - 29730 - 19968: 0xF6FC, - 29733 - 19968: 0xFBD0, - 29734 - 19968: 0xD1AD, - 29736 - 19968: 0xCDE4, - 29738 - 19968: 0xD1AE, - 29739 - 19968: 0xDCED, - 29740 - 19968: 0xE8CE, - 29742 - 19968: 0xF0F9, - 29743 - 19968: 0xCEB5, - 29744 - 19968: 0xE6FC, - 29747 - 19968: 0xD7FB, - 29748 - 19968: 0xD0D6, - 29749 - 19968: 0xDDF5, - 29750 - 19968: 0xF7F1, - 29752 - 19968: 0xF6FD, - 29754 - 19968: 0xDBF7, - 29759 - 19968: 0xFBEA, - 29760 - 19968: 0xE9DC, - 29761 - 19968: 0xD9C1, - 29763 - 19968: 0xF5F2, - 29764 - 19968: 0xE0C5, - 29771 - 19968: 0xEAD4, - 29781 - 19968: 0xF9C2, - 29783 - 19968: 0xEABC, - 29785 - 19968: 0xD2C5, - 29786 - 19968: 0xFBD1, - 29787 - 19968: 0xE7C0, - 29788 - 19968: 0xEBA5, - 29790 - 19968: 0xDFFA, - 29791 - 19968: 0xE3A2, - 29792 - 19968: 0xD7B9, - 29794 - 19968: 0xE9C3, - 29796 - 19968: 0xE8FD, - 29797 - 19968: 0xE8AF, - 29800 - 19968: 0xF2D3, - 29801 - 19968: 0xFBA9, - 29802 - 19968: 0xD8A5, - 29807 - 19968: 0xD5CB, - 29822 - 19968: 0xD0C8, - 29826 - 19968: 0xD1AF, - 29827 - 19968: 0xD7E3, - 29831 - 19968: 0xE0C6, - 29833 - 19968: 0xD6A2, - 29835 - 19968: 0xEDF0, - 29848 - 19968: 0xD7F3, - 29852 - 19968: 0xFCD4, - 29854 - 19968: 0xDAD7, - 29855 - 19968: 0xCCDF, - 29857 - 19968: 0xF2D4, - 29859 - 19968: 0xD1B0, - 29861 - 19968: 0xCCE0, - 29863 - 19968: 0xDBFD, - 29864 - 19968: 0xF3BF, - 29866 - 19968: 0xF0D1, - 29872 - 19968: 0xFCBB, - 29874 - 19968: 0xE2B0, - 29877 - 19968: 0xE6A5, - 29881 - 19968: 0xE2DB, - 29885 - 19968: 0xDFDE, - 29887 - 19968: 0xE0C7, - 29894 - 19968: 0xF2EF, - 29898 - 19968: 0xCCE1, - 29903 - 19968: 0xD6EA, - 29908 - 19968: 0xE7C2, - 29912 - 19968: 0xCEB6, - 29914 - 19968: 0xF3C0, - 29916 - 19968: 0xCDFE, - 29920 - 19968: 0xFBD2, - 29922 - 19968: 0xF8F8, - 29923 - 19968: 0xF7FB, - 29926 - 19968: 0xE8BF, - 29934 - 19968: 0xE8B7, - 29943 - 19968: 0xEDB6, - 29953 - 19968: 0xDCBA, - 29956 - 19968: 0xCCB4, - 29969 - 19968: 0xF1F7, - 29973 - 19968: 0xE8B8, - 29976 - 19968: 0xCAF6, - 29978 - 19968: 0xE4A4, - 29979 - 19968: 0xF4D6, - 29983 - 19968: 0xDFE6, - 29987 - 19968: 0xDFA7, - 29989 - 19968: 0xDFE7, - 29990 - 19968: 0xE1C1, - 29992 - 19968: 0xE9C4, - 29995 - 19968: 0xDCCB, - 29996 - 19968: 0xE9C5, - 30000 - 19968: 0xEFA3, - 30001 - 19968: 0xEBA6, - 30002 - 19968: 0xCBA3, - 30003 - 19968: 0xE3E9, - 30007 - 19968: 0xD1FB, - 30008 - 19968: 0xEFA4, - 30010 - 19968: 0xEFEB, - 30023 - 19968: 0xD0B4, - 30028 - 19968: 0xCDA3, - 30031 - 19968: 0xE8E6, - 30033 - 19968: 0xEFA5, - 30035 - 19968: 0xD3CC, - 30036 - 19968: 0xDAED, - 30041 - 19968: 0xD7BA, - 30043 - 19968: 0xF2D5, - 30044 - 19968: 0xF5E5, - 30045 - 19968: 0xD9EF, - 30050 - 19968: 0xF9B4, - 30053 - 19968: 0xD5D4, - 30054 - 19968: 0xFDCF, - 30058 - 19968: 0xDBE3, - 30063 - 19968: 0xF1E1, - 30064 - 19968: 0xECB6, - 30069 - 19968: 0xFBFE, - 30070 - 19968: 0xD3D7, - 30072 - 19968: 0xD1B1, - 30074 - 19968: 0xCBB1, - 30079 - 19968: 0xD1B2, - 30086 - 19968: 0xCBB2, - 30087 - 19968: 0xF1C2, - 30090 - 19968: 0xF4E1, - 30091 - 19968: 0xF9B5, - 30094 - 19968: 0xE1C3, - 30095 - 19968: 0xE1C2, - 30097 - 19968: 0xEBF7, - 30109 - 19968: 0xDFA8, - 30117 - 19968: 0xCBCA, - 30123 - 19968: 0xE6B9, - 30129 - 19968: 0xF8DE, - 30130 - 19968: 0xF9AA, - 30131 - 19968: 0xCAF7, - 30133 - 19968: 0xEDB7, - 30136 - 19968: 0xD3B8, - 30137 - 19968: 0xF2D6, - 30140 - 19968: 0xD4D9, - 30141 - 19968: 0xEEC5, - 30142 - 19968: 0xF2F0, - 30146 - 19968: 0xCAB2, - 30149 - 19968: 0xDCBB, - 30151 - 19968: 0xF1F8, - 30157 - 19968: 0xECB7, - 30162 - 19968: 0xE5CA, - 30164 - 19968: 0xF6C0, - 30165 - 19968: 0xFDDD, - 30168 - 19968: 0xD4E3, - 30169 - 19968: 0xCCE2, - 30171 - 19968: 0xF7D4, - 30178 - 19968: 0xD7E5, - 30192 - 19968: 0xD3C3, - 30194 - 19968: 0xD8A6, - 30196 - 19968: 0xF6C1, - 30202 - 19968: 0xDDF6, - 30204 - 19968: 0xCDC0, - 30208 - 19968: 0xE5DC, - 30221 - 19968: 0xE5CB, - 30233 - 19968: 0xE1C4, - 30239 - 19968: 0xE8B0, - 30240 - 19968: 0xF4B0, - 30241 - 19968: 0xF3EA, - 30242 - 19968: 0xDAEE, - 30244 - 19968: 0xD7BB, - 30246 - 19968: 0xE2B1, - 30267 - 19968: 0xD7AA, - 30274 - 19968: 0xD6FB, - 30284 - 19968: 0xE4DF, - 30286 - 19968: 0xCAD6, - 30290 - 19968: 0xEBA8, - 30294 - 19968: 0xDBFE, - 30305 - 19968: 0xF6C2, - 30308 - 19968: 0xEFBB, - 30313 - 19968: 0xD4FD, - 30316 - 19968: 0xE0C8, - 30320 - 19968: 0xE8B9, - 30322 - 19968: 0xEFA6, - 30328 - 19968: 0xCDA4, - 30331 - 19968: 0xD4F4, - 30332 - 19968: 0xDBA1, - 30333 - 19968: 0xDBDC, - 30334 - 19968: 0xDBDD, - 30340 - 19968: 0xEEDC, - 30342 - 19968: 0xCBCB, - 30343 - 19968: 0xFCD5, - 30350 - 19968: 0xCEEB, - 30352 - 19968: 0xCDC1, - 30355 - 19968: 0xFBD3, - 30382 - 19968: 0xF9AB, - 30394 - 19968: 0xF5D4, - 30399 - 19968: 0xD9A9, - 30402 - 19968: 0xE9DD, - 30403 - 19968: 0xDBCD, - 30406 - 19968: 0xDDCE, - 30408 - 19968: 0xE7C3, - 30410 - 19968: 0xECCC, - 30418 - 19968: 0xF9EC, - 30422 - 19968: 0xCBCC, - 30427 - 19968: 0xE0FC, - 30428 - 19968: 0xD4A8, - 30430 - 19968: 0xEDD3, - 30431 - 19968: 0xD8EF, - 30433 - 19968: 0xF2D7, - 30435 - 19968: 0xCAF8, - 30436 - 19968: 0xDAEF, - 30439 - 19968: 0xD6D4, - 30446 - 19968: 0xD9CD, - 30450 - 19968: 0xD8EE, - 30452 - 19968: 0xF2C1, - 30456 - 19968: 0xDFD3, - 30460 - 19968: 0xDAF0, - 30462 - 19968: 0xE2EA, - 30465 - 19968: 0xE0FD, - 30468 - 19968: 0xD8F8, - 30472 - 19968: 0xF7AF, - 30473 - 19968: 0xDAB6, - 30475 - 19968: 0xCAD7, - 30494 - 19968: 0xF2D8, - 30496 - 19968: 0xD8F9, - 30505 - 19968: 0xFADF, - 30519 - 19968: 0xCFEF, - 30520 - 19968: 0xD9C2, - 30522 - 19968: 0xF0D2, - 30524 - 19968: 0xE4D1, - 30528 - 19968: 0xF3B7, - 30541 - 19968: 0xFAE0, - 30555 - 19968: 0xEFEC, - 30561 - 19968: 0xE2B2, - 30563 - 19968: 0xD4BD, - 30566 - 19968: 0xD9CE, - 30571 - 19968: 0xF4E2, - 30585 - 19968: 0xD4A9, - 30590 - 19968: 0xCDC2, - 30591 - 19968: 0xE7DA, - 30603 - 19968: 0xF2D9, - 30609 - 19968: 0xD9AA, - 30622 - 19968: 0xD8BE, - 30629 - 19968: 0xDCAD, - 30636 - 19968: 0xE2EB, - 30637 - 19968: 0xD6FC, - 30640 - 19968: 0xCAF9, - 30643 - 19968: 0xD4DA, - 30651 - 19968: 0xF4D7, - 30652 - 19968: 0xCCA1, - 30655 - 19968: 0xCFBA, - 30679 - 19968: 0xF5B8, - 30683 - 19968: 0xD9C3, - 30684 - 19968: 0xD0E8, - 30690 - 19968: 0xE3C5, - 30691 - 19968: 0xEBF8, - 30693 - 19968: 0xF2B1, - 30697 - 19968: 0xCFBB, - 30701 - 19968: 0xD3AD, - 30702 - 19968: 0xE8E1, - 30703 - 19968: 0xCEEC, - 30707 - 19968: 0xE0B4, - 30722 - 19968: 0xDEE3, - 30738 - 19968: 0xDDF7, - 30757 - 19968: 0xF2B2, - 30758 - 19968: 0xF3F6, - 30759 - 19968: 0xF6DB, - 30764 - 19968: 0xD7FE, - 30770 - 19968: 0xF8DF, - 30772 - 19968: 0xF7F2, - 30789 - 19968: 0xD0A9, - 30799 - 19968: 0xE6DA, - 30813 - 19968: 0xF5A6, - 30827 - 19968: 0xD7BC, - 30828 - 19968: 0xCCE3, - 30831 - 19968: 0xE6DB, - 30844 - 19968: 0xDDDD, - 30849 - 19968: 0xD1B3, - 30855 - 19968: 0xEFED, - 30860 - 19968: 0xD6DE, - 30861 - 19968: 0xE4F4, - 30862 - 19968: 0xE1EF, - 30865 - 19968: 0xDDF8, - 30871 - 19968: 0xE8CF, - 30883 - 19968: 0xCAE5, - 30887 - 19968: 0xDCA1, - 30889 - 19968: 0xE0B5, - 30906 - 19968: 0xFCAC, - 30907 - 19968: 0xFCAD, - 30908 - 19968: 0xD8A7, - 30913 - 19968: 0xEDB8, - 30917 - 19968: 0xDBB6, - 30922 - 19968: 0xD6F0, - 30923 - 19968: 0xF3AF, - 30926 - 19968: 0xCDA5, - 30928 - 19968: 0xDAF1, - 30952 - 19968: 0xD8A8, - 30956 - 19968: 0xCCE4, - 30959 - 19968: 0xD1B4, - 30965 - 19968: 0xCAD8, - 30971 - 19968: 0xDAF2, - 30977 - 19968: 0xF5A7, - 30990 - 19968: 0xF5A8, - 30998 - 19968: 0xE6A6, - 31018 - 19968: 0xD5EC, - 31019 - 19968: 0xD5F8, - 31020 - 19968: 0xDAF3, - 31034 - 19968: 0xE3C6, - 31038 - 19968: 0xDEE4, - 31040 - 19968: 0xDEE5, - 31041 - 19968: 0xD1B5, - 31047 - 19968: 0xD1B6, - 31048 - 19968: 0xD1B7, - 31049 - 19968: 0xF2B3, - 31056 - 19968: 0xE9DE, - 31062 - 19968: 0xF0D3, - 31063 - 19968: 0xF2B4, - 31066 - 19968: 0xF0D4, - 31067 - 19968: 0xCBE4, - 31068 - 19968: 0xFBD4, - 31069 - 19968: 0xF5E6, - 31070 - 19968: 0xE3EA, - 31072 - 19968: 0xDEE6, - 31077 - 19968: 0xDFD4, - 31080 - 19968: 0xF8F9, - 31085 - 19968: 0xF0AE, - 31098 - 19968: 0xD1B8, - 31103 - 19968: 0xD6DF, - 31105 - 19968: 0xD0D7, - 31117 - 19968: 0xFCA1, - 31118 - 19968: 0xEFEE, - 31119 - 19968: 0xDCD8, - 31121 - 19968: 0xE9DF, - 31142 - 19968: 0xE5DD, - 31143 - 19968: 0xFDFB, - 31146 - 19968: 0xE0C9, - 31150 - 19968: 0xD6C9, - 31153 - 19968: 0xD4AA, - 31155 - 19968: 0xE5CC, - 31161 - 19968: 0xE9E0, - 31165 - 19968: 0xD0D8, - 31166 - 19968: 0xFCA2, - 31167 - 19968: 0xD4BE, - 31168 - 19968: 0xE2B3, - 31169 - 19968: 0xDEE7, - 31177 - 19968: 0xDCBC, - 31178 - 19968: 0xD2B6, - 31179 - 19968: 0xF5D5, - 31185 - 19968: 0xCEA1, - 31186 - 19968: 0xF5A9, - 31189 - 19968: 0xDDF9, - 31192 - 19968: 0xDDFA, - 31199 - 19968: 0xF0D5, - 31204 - 19968: 0xF6DF, - 31206 - 19968: 0xF2DA, - 31207 - 19968: 0xE4EB, - 31209 - 19968: 0xF2F1, - 31227 - 19968: 0xECB9, - 31232 - 19968: 0xFDFC, - 31237 - 19968: 0xE1AA, - 31240 - 19968: 0xCAD9, - 31243 - 19968: 0xEFEF, - 31245 - 19968: 0xF5AA, - 31252 - 19968: 0xECF9, - 31255 - 19968: 0xF8AD, - 31257 - 19968: 0xF2C2, - 31258 - 19968: 0xF6C3, - 31260 - 19968: 0xD7D2, - 31263 - 19968: 0xF9A2, - 31264 - 19968: 0xF0D6, - 31278 - 19968: 0xF0FA, - 31281 - 19968: 0xF6E0, - 31286 - 19968: 0xE9F3, - 31287 - 19968: 0xF2C3, - 31291 - 19968: 0xD4AB, - 31292 - 19968: 0xCAB3, - 31293 - 19968: 0xCDA6, - 31295 - 19968: 0xCDC3, - 31296 - 19968: 0xCDDA, - 31302 - 19968: 0xD9CF, - 31305 - 19968: 0xF6C4, - 31309 - 19968: 0xEEDD, - 31310 - 19968: 0xE7C4, - 31319 - 19968: 0xE2B4, - 31329 - 19968: 0xDFE2, - 31330 - 19968: 0xE7DB, - 31337 - 19968: 0xE8B1, - 31339 - 19968: 0xFCAE, - 31344 - 19968: 0xE5CD, - 31348 - 19968: 0xFAEB, - 31350 - 19968: 0xCFBC, - 31353 - 19968: 0xCFE2, - 31354 - 19968: 0xCDF6, - 31357 - 19968: 0xEFF0, - 31359 - 19968: 0xF4BE, - 31361 - 19968: 0xD4CD, - 31364 - 19968: 0xF3B8, - 31368 - 19968: 0xE9A1, - 31378 - 19968: 0xF2F2, - 31379 - 19968: 0xF3EB, - 31381 - 19968: 0xF0D7, - 31384 - 19968: 0xCFD7, - 31391 - 19968: 0xCFDF, - 31401 - 19968: 0xE8C0, - 31402 - 19968: 0xE8C1, - 31406 - 19968: 0xCFE3, - 31407 - 19968: 0xE9A2, - 31418 - 19968: 0xD0AA, - 31428 - 19968: 0xF3C1, - 31429 - 19968: 0xD0AB, - 31431 - 19968: 0xD4E4, - 31434 - 19968: 0xEFBC, - 31435 - 19968: 0xD8A1, - 31447 - 19968: 0xD9DF, - 31449 - 19968: 0xF3D7, - 31453 - 19968: 0xDCBD, - 31455 - 19968: 0xCCE5, - 31456 - 19968: 0xEDF1, - 31459 - 19968: 0xF1E2, - 31461 - 19968: 0xD4DB, - 31466 - 19968: 0xE2B5, - 31469 - 19968: 0xCAE6, - 31471 - 19968: 0xD3AE, - 31478 - 19968: 0xCCE6, - 31481 - 19968: 0xF1D3, - 31482 - 19968: 0xF5E7, - 31487 - 19968: 0xCADA, - 31503 - 19968: 0xFBEE, - 31505 - 19968: 0xE1C5, - 31513 - 19968: 0xDFE9, - 31515 - 19968: 0xEEDE, - 31518 - 19968: 0xF7C2, - 31520 - 19968: 0xD8A2, - 31526 - 19968: 0xDDAC, - 31532 - 19968: 0xF0AF, - 31533 - 19968: 0xD6BD, - 31545 - 19968: 0xE1AB, - 31558 - 19968: 0xF9B6, - 31561 - 19968: 0xD4F5, - 31563 - 19968: 0xD0C9, - 31564 - 19968: 0xEFA7, - 31565 - 19968: 0xE2EC, - 31567 - 19968: 0xDBEA, - 31568 - 19968: 0xCECC, - 31569 - 19968: 0xF5E8, - 31570 - 19968: 0xF7D5, - 31572 - 19968: 0xD3CD, - 31574 - 19968: 0xF3FE, - 31584 - 19968: 0xD0B5, - 31596 - 19968: 0xE0FE, - 31598 - 19968: 0xDFFB, - 31605 - 19968: 0xE6DD, - 31613 - 19968: 0xE8A4, - 31623 - 19968: 0xCBCD, - 31627 - 19968: 0xEFA8, - 31631 - 19968: 0xEEB4, - 31636 - 19968: 0xDAD8, - 31637 - 19968: 0xD1B9, - 31639 - 19968: 0xDFA9, - 31642 - 19968: 0xF3B0, - 31645 - 19968: 0xCCC4, - 31649 - 19968: 0xCEB7, - 31661 - 19968: 0xEFA9, - 31665 - 19968: 0xDFD5, - 31668 - 19968: 0xEDD7, - 31672 - 19968: 0xEEC6, - 31680 - 19968: 0xEFBD, - 31681 - 19968: 0xFCD6, - 31684 - 19968: 0xDBF4, - 31686 - 19968: 0xEFAA, - 31687 - 19968: 0xF8B9, - 31689 - 19968: 0xF5E9, - 31698 - 19968: 0xE3D9, - 31712 - 19968: 0xE1C6, - 31716 - 19968: 0xD4BF, - 31721 - 19968: 0xDEE8, - 31751 - 19968: 0xF0EA, - 31762 - 19968: 0xF3C2, - 31774 - 19968: 0xD3AF, - 31777 - 19968: 0xCADB, - 31783 - 19968: 0xFCD7, - 31786 - 19968: 0xEDD8, - 31787 - 19968: 0xE1C7, - 31805 - 19968: 0xF4D8, - 31806 - 19968: 0xD6B3, - 31807 - 19968: 0xDDAD, - 31811 - 19968: 0xD5BE, - 31820 - 19968: 0xF1C3, - 31821 - 19968: 0xEEDF, - 31840 - 19968: 0xD6EB, - 31844 - 19968: 0xF4D9, - 31852 - 19968: 0xD7E6, - 31859 - 19968: 0xDAB7, - 31875 - 19968: 0xDDFB, - 31881 - 19968: 0xDDCF, - 31890 - 19968: 0xD8A3, - 31893 - 19968: 0xDAD9, - 31895 - 19968: 0xF0D8, - 31896 - 19968: 0xEFC4, - 31903 - 19968: 0xE1D8, - 31909 - 19968: 0xF1D4, - 31911 - 19968: 0xEDF2, - 31918 - 19968: 0xD5DB, - 31921 - 19968: 0xD5DC, - 31922 - 19968: 0xF3C4, - 31923 - 19968: 0xCBD7, - 31929 - 19968: 0xE2B6, - 31934 - 19968: 0xEFF1, - 31946 - 19968: 0xFBD5, - 31958 - 19968: 0xD3D8, - 31966 - 19968: 0xDDD0, - 31967 - 19968: 0xF0D9, - 31968 - 19968: 0xCBB3, - 31975 - 19968: 0xD5DD, - 31995 - 19968: 0xCDA7, - 31998 - 19968: 0xD0AC, - 32000 - 19968: 0xD1BA, - 32002 - 19968: 0xF1C4, - 32004 - 19968: 0xE5B3, - 32005 - 19968: 0xFBF5, - 32006 - 19968: 0xE9E1, - 32007 - 19968: 0xFDE0, - 32008 - 19968: 0xFCBC, - 32010 - 19968: 0xDAA2, - 32011 - 19968: 0xDAA3, - 32013 - 19968: 0xD2A1, - 32016 - 19968: 0xD2EF, - 32020 - 19968: 0xE2ED, - 32023 - 19968: 0xDEE9, - 32024 - 19968: 0xCEDC, - 32025 - 19968: 0xF2B5, - 32026 - 19968: 0xD0E4, - 32027 - 19968: 0xDDD1, - 32032 - 19968: 0xE1C8, - 32033 - 19968: 0xDBB7, - 32034 - 19968: 0xDFE3, - 32043 - 19968: 0xEDB9, - 32044 - 19968: 0xF1C5, - 32046 - 19968: 0xF3CF, - 32047 - 19968: 0xD7AB, - 32048 - 19968: 0xE1AC, - 32051 - 19968: 0xE3EB, - 32053 - 19968: 0xEEC7, - 32057 - 19968: 0xE1C9, - 32058 - 19968: 0xCAFA, - 32066 - 19968: 0xF0FB, - 32067 - 19968: 0xFAE1, - 32068 - 19968: 0xF0DA, - 32069 - 19968: 0xCCE7, - 32070 - 19968: 0xDAF4, - 32080 - 19968: 0xCCBF, - 32094 - 19968: 0xCEED, - 32097 - 19968: 0xD5A9, - 32098 - 19968: 0xFAE2, - 32102 - 19968: 0xD0E5, - 32104 - 19968: 0xEBD6, - 32106 - 19968: 0xECDF, - 32110 - 19968: 0xDFFC, - 32113 - 19968: 0xF7D6, - 32114 - 19968: 0xDEEA, - 32115 - 19968: 0xCBB4, - 32118 - 19968: 0xEFBE, - 32121 - 19968: 0xCCB5, - 32127 - 19968: 0xCFBD, - 32142 - 19968: 0xEFF2, - 32143 - 19968: 0xE2B7, - 32147 - 19968: 0xCCE8, - 32156 - 19968: 0xF0FC, - 32160 - 19968: 0xD6E0, - 32162 - 19968: 0xF1C6, - 32172 - 19968: 0xE2B8, - 32173 - 19968: 0xEBAB, - 32177 - 19968: 0xCBB5, - 32178 - 19968: 0xD8D1, - 32180 - 19968: 0xF4CE, - 32181 - 19968: 0xF3F7, - 32184 - 19968: 0xD7C6, - 32186 - 19968: 0xD1BB, - 32187 - 19968: 0xF7AA, - 32189 - 19968: 0xEDCA, - 32190 - 19968: 0xD7D3, - 32191 - 19968: 0xD8FA, - 32199 - 19968: 0xF6C5, - 32202 - 19968: 0xD1CC, - 32203 - 19968: 0xDDFC, - 32214 - 19968: 0xDFFD, - 32216 - 19968: 0xF9E5, - 32218 - 19968: 0xE0CA, - 32221 - 19968: 0xF2FD, - 32222 - 19968: 0xD3B0, - 32224 - 19968: 0xF4F3, - 32225 - 19968: 0xDAC9, - 32227 - 19968: 0xE6DE, - 32232 - 19968: 0xF8BA, - 32233 - 19968: 0xE8D0, - 32236 - 19968: 0xD8FB, - 32239 - 19968: 0xEAD5, - 32244 - 19968: 0xD6A3, - 32251 - 19968: 0xF6C6, - 32265 - 19968: 0xF2DB, - 32266 - 19968: 0xE4FC, - 32277 - 19968: 0xE8B2, - 32283 - 19968: 0xDADA, - 32285 - 19968: 0xF2DC, - 32286 - 19968: 0xFBD6, - 32287 - 19968: 0xE9B2, - 32289 - 19968: 0xEEAD, - 32291 - 19968: 0xFAE3, - 32299 - 19968: 0xDCEE, - 32302 - 19968: 0xF5EA, - 32303 - 19968: 0xE6E0, - 32305 - 19968: 0xF0FD, - 32311 - 19968: 0xD7AC, - 32317 - 19968: 0xF5C5, - 32318 - 19968: 0xEEE0, - 32321 - 19968: 0xDBE5, - 32323 - 19968: 0xDDDE, - 32326 - 19968: 0xD9F0, - 32327 - 19968: 0xE9A3, - 32338 - 19968: 0xF1F9, - 32340 - 19968: 0xF2C4, - 32341 - 19968: 0xE0CB, - 32350 - 19968: 0xE9A4, - 32353 - 19968: 0xE2B9, - 32361 - 19968: 0xE3B1, - 32362 - 19968: 0xFCEB, - 32363 - 19968: 0xCDA8, - 32365 - 19968: 0xCCB6, - 32368 - 19968: 0xF0DB, - 32377 - 19968: 0xE6BA, - 32380 - 19968: 0xCDA9, - 32386 - 19968: 0xF3C3, - 32396 - 19968: 0xE1D9, - 32399 - 19968: 0xEFAB, - 32403 - 19968: 0xE7C5, - 32406 - 19968: 0xE0E9, - 32408 - 19968: 0xF3C5, - 32411 - 19968: 0xD4C0, - 32412 - 19968: 0xD5BF, - 32566 - 19968: 0xDDAE, - 32568 - 19968: 0xF9FC, - 32570 - 19968: 0xCCC0, - 32588 - 19968: 0xE5A2, - 32592 - 19968: 0xCEB8, - 32596 - 19968: 0xD8D2, - 32597 - 19968: 0xF9D6, - 32618 - 19968: 0xF1AA, - 32619 - 19968: 0xCED1, - 32622 - 19968: 0xF6C7, - 32624 - 19968: 0xDBEB, - 32626 - 19968: 0xDFFE, - 32629 - 19968: 0xD8E1, - 32631 - 19968: 0xF7F3, - 32633 - 19968: 0xD7E7, - 32645 - 19968: 0xD4FE, - 32648 - 19968: 0xD1BC, - 32650 - 19968: 0xE5CF, - 32652 - 19968: 0xCBB6, - 32654 - 19968: 0xDAB8, - 32660 - 19968: 0xCDC4, - 32666 - 19968: 0xD6BE, - 32670 - 19968: 0xE2BA, - 32676 - 19968: 0xCFD8, - 32680 - 19968: 0xE0CC, - 32681 - 19968: 0xEBF9, - 32690 - 19968: 0xFDFD, - 32696 - 19968: 0xD7E8, - 32697 - 19968: 0xCBD8, - 32701 - 19968: 0xE9E2, - 32705 - 19968: 0xE8BA, - 32709 - 19968: 0xE3C7, - 32714 - 19968: 0xECCD, - 32716 - 19968: 0xECCE, - 32718 - 19968: 0xD6BF, - 32722 - 19968: 0xE3A7, - 32724 - 19968: 0xDFD6, - 32725 - 19968: 0xFDE8, - 32735 - 19968: 0xEEE1, - 32736 - 19968: 0xF6A8, - 32737 - 19968: 0xDDFD, - 32745 - 19968: 0xF8BB, - 32747 - 19968: 0xE8D1, - 32752 - 19968: 0xF9D7, - 32761 - 19968: 0xCEEE, - 32764 - 19968: 0xECCF, - 32768 - 19968: 0xE9A5, - 32769 - 19968: 0xD6D5, - 32771 - 19968: 0xCDC5, - 32773 - 19968: 0xEDBA, - 32774 - 19968: 0xD1BD, - 32777 - 19968: 0xCFBE, - 32780 - 19968: 0xECBB, - 32784 - 19968: 0xD2B1, - 32789 - 19968: 0xCCE9, - 32791 - 19968: 0xD9C4, - 32792 - 19968: 0xE9FC, - 32813 - 19968: 0xD1BE, - 32819 - 19968: 0xECBC, - 32822 - 19968: 0xE5AD, - 32829 - 19968: 0xF7B0, - 32831 - 19968: 0xCCEA, - 32835 - 19968: 0xD3C4, - 32838 - 19968: 0xD6C0, - 32842 - 19968: 0xD6FD, - 32854 - 19968: 0xE1A1, - 32856 - 19968: 0xDEBD, - 32858 - 19968: 0xF6A9, - 32862 - 19968: 0xDAA4, - 32879 - 19968: 0xD6A4, - 32880 - 19968: 0xF5C6, - 32882 - 19968: 0xE1A2, - 32883 - 19968: 0xE9C6, - 32887 - 19968: 0xF2C5, - 32893 - 19968: 0xF4E9, - 32894 - 19968: 0xD6EC, - 32895 - 19968: 0xEBD3, - 32900 - 19968: 0xECBD, - 32901 - 19968: 0xE2DC, - 32902 - 19968: 0xDEEB, - 32903 - 19968: 0xF0DC, - 32905 - 19968: 0xEBBF, - 32907 - 19968: 0xD7CE, - 32908 - 19968: 0xD1BF, - 32918 - 19968: 0xF5AB, - 32923 - 19968: 0xF9FD, - 32925 - 19968: 0xCADC, - 32929 - 19968: 0xCDC6, - 32930 - 19968: 0xF2B6, - 32933 - 19968: 0xDDFE, - 32937 - 19968: 0xCCB7, - 32938 - 19968: 0xDBB8, - 32943 - 19968: 0xD0E9, - 32945 - 19968: 0xCEDD, - 32946 - 19968: 0xEBC0, - 32948 - 19968: 0xFDA2, - 32954 - 19968: 0xF8CB, - 32963 - 19968: 0xEAD6, - 32964 - 19968: 0xF1B0, - 32972 - 19968: 0xDBCE, - 32974 - 19968: 0xF7C3, - 32986 - 19968: 0xDBCF, - 32987 - 19968: 0xCBA4, - 32990 - 19968: 0xF8E0, - 32993 - 19968: 0xFBD7, - 32996 - 19968: 0xEBCA, - 32997 - 19968: 0xE0A1, - 33009 - 19968: 0xCECD, - 33012 - 19968: 0xD4DC, - 33016 - 19968: 0xFDD8, - 33021 - 19968: 0xD2F6, - 33026 - 19968: 0xF2B7, - 33029 - 19968: 0xFAF6, - 33030 - 19968: 0xF6AA, - 33031 - 19968: 0xFAF7, - 33032 - 19968: 0xD8E6, - 33034 - 19968: 0xF4B1, - 33048 - 19968: 0xE8D2, - 33050 - 19968: 0xCAC5, - 33051 - 19968: 0xCCEB, - 33059 - 19968: 0xE2EE, - 33065 - 19968: 0xE2BB, - 33067 - 19968: 0xF7AD, - 33071 - 19968: 0xF8E1, - 33081 - 19968: 0xF3EC, - 33086 - 19968: 0xDEA1, - 33099 - 19968: 0xE4FD, - 33102 - 19968: 0xE3EC, - 33104 - 19968: 0xDDAF, - 33105 - 19968: 0xDDB0, - 33108 - 19968: 0xCBB7, - 33109 - 19968: 0xE8D3, - 33125 - 19968: 0xE1A3, - 33126 - 19968: 0xD2E0, - 33131 - 19968: 0xF0FE, - 33136 - 19968: 0xE9A6, - 33137 - 19968: 0xCBF2, - 33144 - 19968: 0xEDF3, - 33145 - 19968: 0xDCD9, - 33146 - 19968: 0xE0CD, - 33151 - 19968: 0xF7DA, - 33152 - 19968: 0xDBB9, - 33160 - 19968: 0xCCAE, - 33162 - 19968: 0xDADB, - 33167 - 19968: 0xCDC7, - 33178 - 19968: 0xDDB1, - 33180 - 19968: 0xD8AF, - 33181 - 19968: 0xE3A3, - 33184 - 19968: 0xCEEF, - 33187 - 19968: 0xF2F3, - 33192 - 19968: 0xF8B3, - 33203 - 19968: 0xE0CE, - 33205 - 19968: 0xF5FD, - 33210 - 19968: 0xEBEC, - 33213 - 19968: 0xD3C5, - 33214 - 19968: 0xFCEC, - 33215 - 19968: 0xD2DB, - 33216 - 19968: 0xD4EB, - 33218 - 19968: 0xDEA2, - 33222 - 19968: 0xE5E6, - 33229 - 19968: 0xF0B0, - 33240 - 19968: 0xD5C4, - 33247 - 19968: 0xEDF4, - 33251 - 19968: 0xE3ED, - 33253 - 19968: 0xE8C2, - 33255 - 19968: 0xEDF5, - 33256 - 19968: 0xD7FC, - 33258 - 19968: 0xEDBB, - 33261 - 19968: 0xF6AB, - 33267 - 19968: 0xF2B8, - 33268 - 19968: 0xF6C8, - 33274 - 19968: 0xD3E6, - 33275 - 19968: 0xF2DD, - 33276 - 19968: 0xCFBF, - 33278 - 19968: 0xEBAC, - 33285 - 19968: 0xCFC0, - 33287 - 19968: 0xE6A8, - 33288 - 19968: 0xFDE9, - 33290 - 19968: 0xCFC1, - 33292 - 19968: 0xE0DF, - 33293 - 19968: 0xDEEC, - 33298 - 19968: 0xE0A2, - 33307 - 19968: 0xF4BF, - 33308 - 19968: 0xE2EF, - 33310 - 19968: 0xD9F1, - 33311 - 19968: 0xF1C7, - 33313 - 19968: 0xCBB8, - 33322 - 19968: 0xF9FE, - 33323 - 19968: 0xDBBA, - 33324 - 19968: 0xDAF5, - 33333 - 19968: 0xF6EC, - 33334 - 19968: 0xDADC, - 33335 - 19968: 0xFAE4, - 33337 - 19968: 0xE0CF, - 33344 - 19968: 0xDDB2, - 33349 - 19968: 0xE6A9, - 33351 - 19968: 0xEFF3, - 33369 - 19968: 0xF3ED, - 33380 - 19968: 0xEBFA, - 33382 - 19968: 0xF9E6, - 33390 - 19968: 0xCADD, - 33391 - 19968: 0xD5DE, - 33393 - 19968: 0xCADE, - 33394 - 19968: 0xDFE4, - 33398 - 19968: 0xE6FD, - 33400 - 19968: 0xF5AC, - 33406 - 19968: 0xE4F5, - 33419 - 19968: 0xE9E3, - 33421 - 19968: 0xEDCB, - 33422 - 19968: 0xCFE4, - 33426 - 19968: 0xD8D3, - 33433 - 19968: 0xDDB3, - 33434 - 19968: 0xD4EC, - 33437 - 19968: 0xF2B9, - 33439 - 19968: 0xDFB7, - 33445 - 19968: 0xCBCE, - 33446 - 19968: 0xFBD8, - 33449 - 19968: 0xD0D9, - 33452 - 19968: 0xDDD2, - 33453 - 19968: 0xF7F4, - 33454 - 19968: 0xE7DC, - 33455 - 19968: 0xE4A5, - 33457 - 19968: 0xFCA3, - 33459 - 19968: 0xDBBB, - 33463 - 19968: 0xF2BA, - 33464 - 19968: 0xE9FD, - 33465 - 19968: 0xD0CA, - 33467 - 19968: 0xF5D6, - 33468 - 19968: 0xD9C5, - 33469 - 19968: 0xE4B4, - 33471 - 19968: 0xEDA7, - 33489 - 19968: 0xEABD, - 33490 - 19968: 0xE6FE, - 33492 - 19968: 0xF7C4, - 33493 - 19968: 0xF5AD, - 33495 - 19968: 0xD9E0, - 33499 - 19968: 0xCAB4, - 33502 - 19968: 0xF8E2, - 33503 - 19968: 0xCFC2, - 33505 - 19968: 0xECBE, - 33509 - 19968: 0xE5B4, - 33510 - 19968: 0xCDC8, - 33511 - 19968: 0xEEC8, - 33521 - 19968: 0xE7C8, - 33533 - 19968: 0xCDC9, - 33534 - 19968: 0xF9B7, - 33537 - 19968: 0xF1E8, - 33538 - 19968: 0xD9F2, - 33539 - 19968: 0xDBF5, - 33540 - 19968: 0xCAB5, - 33541 - 19968: 0xD9C6, - 33545 - 19968: 0xD8C9, - 33559 - 19968: 0xD9AB, - 33576 - 19968: 0xEDBC, - 33579 - 19968: 0xD8D4, - 33583 - 19968: 0xDCDA, - 33585 - 19968: 0xE2BC, - 33588 - 19968: 0xFCED, - 33589 - 19968: 0xECE0, - 33590 - 19968: 0xD2FE, - 33592 - 19968: 0xE9C7, - 33593 - 19968: 0xE6AA, - 33600 - 19968: 0xE2F0, - 33607 - 19968: 0xFABB, - 33609 - 19968: 0xF5AE, - 33610 - 19968: 0xFBAA, - 33615 - 19968: 0xECFB, - 33617 - 19968: 0xECBF, - 33618 - 19968: 0xFCD8, - 33651 - 19968: 0xD4E5, - 33655 - 19968: 0xF9C3, - 33659 - 19968: 0xEEE2, - 33673 - 19968: 0xD7E9, - 33674 - 19968: 0xEDF6, - 33678 - 19968: 0xDEED, - 33686 - 19968: 0xCCEC, - 33688 - 19968: 0xE3EE, - 33694 - 19968: 0xE8D4, - 33698 - 19968: 0xFAF8, - 33705 - 19968: 0xDDB4, - 33706 - 19968: 0xE4B5, - 33707 - 19968: 0xD8B0, - 33725 - 19968: 0xD8D5, - 33729 - 19968: 0xF4EA, - 33733 - 19968: 0xCEB9, - 33737 - 19968: 0xD6E1, - 33738 - 19968: 0xCFD2, - 33740 - 19968: 0xD0B6, - 33747 - 19968: 0xCEA2, - 33750 - 19968: 0xF3EE, - 33756 - 19968: 0xF3F8, - 33769 - 19968: 0xDCCC, - 33771 - 19968: 0xD0CB, - 33775 - 19968: 0xFCA4, - 33776 - 19968: 0xCDCA, - 33777 - 19968: 0xD7D4, - 33778 - 19968: 0xDEA3, - 33780 - 19968: 0xE4E0, - 33785 - 19968: 0xEEC9, - 33789 - 19968: 0xE2DD, - 33795 - 19968: 0xF5FE, - 33796 - 19968: 0xD4AC, - 33802 - 19968: 0xD5D1, - 33804 - 19968: 0xD8F0, - 33805 - 19968: 0xF8C3, - 33806 - 19968: 0xEAD7, - 33833 - 19968: 0xF5D7, - 33836 - 19968: 0xD8BF, - 33841 - 19968: 0xFDC0, - 33848 - 19968: 0xEBAD, - 33853 - 19968: 0xD5AA, - 33865 - 19968: 0xE7A8, - 33879 - 19968: 0xEECA, - 33883 - 19968: 0xCAE7, - 33889 - 19968: 0xF8E3, - 33891 - 19968: 0xD4DD, - 33894 - 19968: 0xEAD8, - 33899 - 19968: 0xFBD9, - 33900 - 19968: 0xEDF7, - 33903 - 19968: 0xE5B5, - 33909 - 19968: 0xD0AD, - 33914 - 19968: 0xF1F1, - 33936 - 19968: 0xE2BD, - 33940 - 19968: 0xE3C8, - 33945 - 19968: 0xD9D5, - 33948 - 19968: 0xDFAA, - 33953 - 19968: 0xDBBC, - 33970 - 19968: 0xF8E4, - 33976 - 19968: 0xF1FA, - 33979 - 19968: 0xE5B6, - 33980 - 19968: 0xF3EF, - 33983 - 19968: 0xFBDA, - 33984 - 19968: 0xE1E0, - 33986 - 19968: 0xD9AC, - 33988 - 19968: 0xF5EB, - 33990 - 19968: 0xE0B6, - 33993 - 19968: 0xE9C8, - 33995 - 19968: 0xCBCF, - 33997 - 19968: 0xE3C9, - 34001 - 19968: 0xDEEE, - 34010 - 19968: 0xE2BE, - 34028 - 19968: 0xDCEF, - 34030 - 19968: 0xD6A5, - 34036 - 19968: 0xE2F1, - 34044 - 19968: 0xD6FE, - 34065 - 19968: 0xD9A1, - 34067 - 19968: 0xD8C0, - 34068 - 19968: 0xDCDB, - 34071 - 19968: 0xEDBD, - 34072 - 19968: 0xDFB8, - 34074 - 19968: 0xEAA5, - 34078 - 19968: 0xD7AD, - 34081 - 19968: 0xF3F9, - 34083 - 19968: 0xEDF8, - 34085 - 19968: 0xF5C7, - 34092 - 19968: 0xE1CA, - 34093 - 19968: 0xEBE3, - 34095 - 19968: 0xF2DE, - 34109 - 19968: 0xF8CC, - 34111 - 19968: 0xEAD9, - 34113 - 19968: 0xD3C6, - 34115 - 19968: 0xDBE6, - 34121 - 19968: 0xF5AF, - 34126 - 19968: 0xCEF0, - 34131 - 19968: 0xE9FE, - 34137 - 19968: 0xFBB6, - 34147 - 19968: 0xE2F2, - 34152 - 19968: 0xCFF2, - 34153 - 19968: 0xF7B9, - 34154 - 19968: 0xD9F3, - 34157 - 19968: 0xE1CB, - 34180 - 19968: 0xDADD, - 34183 - 19968: 0xDAB9, - 34191 - 19968: 0xEBFB, - 34193 - 19968: 0xCBB9, - 34196 - 19968: 0xEDF9, - 34203 - 19968: 0xE0E0, - 34214 - 19968: 0xF4C0, - 34216 - 19968: 0xFDBC, - 34217 - 19968: 0xDFB1, - 34218 - 19968: 0xE3EF, - 34223 - 19968: 0xE0A3, - 34224 - 19968: 0xFDB9, - 34234 - 19968: 0xF0B1, - 34241 - 19968: 0xCDCB, - 34249 - 19968: 0xEDBE, - 34253 - 19968: 0xD5C0, - 34254 - 19968: 0xE3F0, - 34255 - 19968: 0xEDFA, - 34261 - 19968: 0xE9E4, - 34268 - 19968: 0xD5ED, - 34269 - 19968: 0xE7DD, - 34276 - 19968: 0xD4F6, - 34277 - 19968: 0xE5B7, - 34281 - 19968: 0xDBE7, - 34282 - 19968: 0xE2BF, - 34295 - 19968: 0xEECB, - 34298 - 19968: 0xD7F4, - 34299 - 19968: 0xF0DD, - 34303 - 19968: 0xCEAB, - 34306 - 19968: 0xE7DE, - 34310 - 19968: 0xD6D6, - 34311 - 19968: 0xE1CC, - 34314 - 19968: 0xE8B3, - 34326 - 19968: 0xE5EE, - 34327 - 19968: 0xDCA2, - 34330 - 19968: 0xE0D0, - 34349 - 19968: 0xD5B5, - 34367 - 19968: 0xD5A1, - 34382 - 19968: 0xFBDB, - 34384 - 19968: 0xF9CB, - 34388 - 19968: 0xCBF3, - 34389 - 19968: 0xF4A5, - 34395 - 19968: 0xFAC8, - 34396 - 19968: 0xD6D7, - 34398 - 19968: 0xE9E5, - 34399 - 19968: 0xFBDC, - 34407 - 19968: 0xFDD0, - 34425 - 19968: 0xFBF6, - 34442 - 19968: 0xDAA5, - 34444 - 19968: 0xDBBD, - 34451 - 19968: 0xECE2, - 34467 - 19968: 0xCDF7, - 34468 - 19968: 0xF0DE, - 34473 - 19968: 0xF6C9, - 34503 - 19968: 0xDEEF, - 34507 - 19968: 0xD3B1, - 34516 - 19968: 0xFCEE, - 34521 - 19968: 0xE8C3, - 34523 - 19968: 0xF1C8, - 34527 - 19968: 0xCEF1, - 34532 - 19968: 0xF9ED, - 34541 - 19968: 0xF2F4, - 34558 - 19968: 0xE4B6, - 34560 - 19968: 0xF5B9, - 34562 - 19968: 0xDCF0, - 34563 - 19968: 0xE3F1, - 34568 - 19968: 0xE8A5, - 34584 - 19968: 0xF2BB, - 34586 - 19968: 0xDEA4, - 34588 - 19968: 0xDACC, - 34638 - 19968: 0xCAE9, - 34645 - 19968: 0xE3DA, - 34647 - 19968: 0xFCD9, - 34655 - 19968: 0xEADA, - 34662 - 19968: 0xF9C4, - 34664 - 19968: 0xE3A4, - 34676 - 19968: 0xFBDD, - 34678 - 19968: 0xEFCA, - 34680 - 19968: 0xE8C4, - 34690 - 19968: 0xD5CC, - 34701 - 19968: 0xEBD7, - 34719 - 19968: 0xD9AD, - 34722 - 19968: 0xFBAB, - 34739 - 19968: 0xD3D9, - 34746 - 19968: 0xD5A2, - 34756 - 19968: 0xF6DE, - 34784 - 19968: 0xDAF6, - 34796 - 19968: 0xE0D1, - 34799 - 19968: 0xE9A8, - 34802 - 19968: 0xF5F9, - 34809 - 19968: 0xFAAF, - 34811 - 19968: 0xEBFC, - 34814 - 19968: 0xE0EA, - 34821 - 19968: 0xE3B2, - 34847 - 19968: 0xD5C5, - 34850 - 19968: 0xF1E3, - 34851 - 19968: 0xD5EE, - 34865 - 19968: 0xCDCC, - 34870 - 19968: 0xEDD9, - 34875 - 19968: 0xD8C1, - 34880 - 19968: 0xFAEC, - 34886 - 19968: 0xF1EB, - 34892 - 19968: 0xFABC, - 34893 - 19968: 0xE6E2, - 34898 - 19968: 0xFAE5, - 34899 - 19968: 0xE2FA, - 34903 - 19968: 0xCAB6, - 34905 - 19968: 0xE4B7, - 34907 - 19968: 0xEADB, - 34909 - 19968: 0xF5FA, - 34913 - 19968: 0xFBAC, - 34914 - 19968: 0xCFC3, - 34915 - 19968: 0xEBFD, - 34920 - 19968: 0xF8FA, - 34923 - 19968: 0xDFB9, - 34928 - 19968: 0xE1F1, - 34930 - 19968: 0xD2A4, - 34935 - 19968: 0xF5FB, - 34942 - 19968: 0xD0DA, - 34943 - 19968: 0xD0DB, - 34945 - 19968: 0xEABE, - 34946 - 19968: 0xD9B1, - 34952 - 19968: 0xCAB7, - 34955 - 19968: 0xD3E7, - 34957 - 19968: 0xF8E5, - 34962 - 19968: 0xD3B2, - 34966 - 19968: 0xE2C0, - 34967 - 19968: 0xF2DF, - 34974 - 19968: 0xCDE5, - 34987 - 19968: 0xF9AC, - 34996 - 19968: 0xCDCD, - 35009 - 19968: 0xEEAE, - 35010 - 19968: 0xD6AE, - 35023 - 19968: 0xD7EA, - 35028 - 19968: 0xE7E0, - 35029 - 19968: 0xEBAE, - 35033 - 19968: 0xCFD9, - 35036 - 19968: 0xDCCD, - 35037 - 19968: 0xEDFB, - 35039 - 19968: 0xDEF0, - 35041 - 19968: 0xD7EB, - 35048 - 19968: 0xDEA5, - 35059 - 19968: 0xDFD7, - 35060 - 19968: 0xDBD0, - 35061 - 19968: 0xDBD1, - 35064 - 19968: 0xD5A3, - 35069 - 19968: 0xF0B2, - 35079 - 19968: 0xDCDC, - 35088 - 19968: 0xCAE8, - 35090 - 19968: 0xF8E6, - 35091 - 19968: 0xDCCE, - 35096 - 19968: 0xEADC, - 35097 - 19968: 0xDBD2, - 35109 - 19968: 0xE9B3, - 35114 - 19968: 0xF7DB, - 35126 - 19968: 0xE3A8, - 35128 - 19968: 0xD7AE, - 35131 - 19968: 0xE0E1, - 35137 - 19968: 0xCBBA, - 35140 - 19968: 0xE5D1, - 35167 - 19968: 0xD0DC, - 35172 - 19968: 0xD5C1, - 35178 - 19968: 0xD8CA, - 35186 - 19968: 0xE3A9, - 35199 - 19968: 0xE0A4, - 35201 - 19968: 0xE9A9, - 35203 - 19968: 0xD3C7, - 35206 - 19968: 0xDCDD, - 35207 - 19968: 0xF8AE, - 35211 - 19968: 0xCCB8, - 35215 - 19968: 0xD0AE, - 35219 - 19968: 0xD8F2, - 35222 - 19968: 0xE3CA, - 35233 - 19968: 0xCCAF, - 35241 - 19968: 0xD4AD, - 35242 - 19968: 0xF6D1, - 35250 - 19968: 0xD0CC, - 35258 - 19968: 0xCAC6, - 35261 - 19968: 0xD5C2, - 35264 - 19968: 0xCEBA, - 35282 - 19968: 0xCAC7, - 35299 - 19968: 0xFAB0, - 35316 - 19968: 0xDFD8, - 35320 - 19968: 0xF5BA, - 35328 - 19968: 0xE5EB, - 35330 - 19968: 0xEFF4, - 35331 - 19968: 0xDDB5, - 35336 - 19968: 0xCDAA, - 35338 - 19968: 0xE3F2, - 35340 - 19968: 0xFBF7, - 35342 - 19968: 0xF7D0, - 35347 - 19968: 0xFDBA, - 35350 - 19968: 0xFDE1, - 35351 - 19968: 0xF6FE, - 35352 - 19968: 0xD1C0, - 35355 - 19968: 0xE8C5, - 35357 - 19968: 0xE4B8, - 35359 - 19968: 0xE1E8, - 35363 - 19968: 0xCCC1, - 35365 - 19968: 0xD2ED, - 35370 - 19968: 0xDBBE, - 35373 - 19968: 0xE0E2, - 35377 - 19968: 0xFAC9, - 35380 - 19968: 0xE1CD, - 35382 - 19968: 0xCAB8, - 35386 - 19968: 0xF2E0, - 35387 - 19968: 0xF1C9, - 35408 - 19968: 0xDEF1, - 35412 - 19968: 0xF0DF, - 35413 - 19968: 0xF8C4, - 35419 - 19968: 0xEECC, - 35422 - 19968: 0xDEF2, - 35424 - 19968: 0xE7C9, - 35426 - 19968: 0xE2F3, - 35427 - 19968: 0xE7E1, - 35430 - 19968: 0xE3CB, - 35433 - 19968: 0xE3CC, - 35437 - 19968: 0xCFF8, - 35438 - 19968: 0xEFAC, - 35440 - 19968: 0xFDFE, - 35441 - 19968: 0xFCA5, - 35442 - 19968: 0xFAB1, - 35443 - 19968: 0xDFD9, - 35445 - 19968: 0xE0D2, - 35449 - 19968: 0xF4DA, - 35461 - 19968: 0xF1CA, - 35463 - 19968: 0xCEA3, - 35468 - 19968: 0xF2BC, - 35469 - 19968: 0xECE3, - 35475 - 19968: 0xE0A5, - 35477 - 19968: 0xF7AB, - 35480 - 19968: 0xEBAF, - 35486 - 19968: 0xE5DE, - 35488 - 19968: 0xE1A4, - 35489 - 19968: 0xCDAB, - 35491 - 19968: 0xD9F4, - 35492 - 19968: 0xE8A6, - 35493 - 19968: 0xCDCE, - 35494 - 19968: 0xE1E9, - 35496 - 19968: 0xFCEF, - 35498 - 19968: 0xE0E3, - 35504 - 19968: 0xE2C1, - 35506 - 19968: 0xCEA4, - 35513 - 19968: 0xDEA6, - 35516 - 19968: 0xEBFE, - 35518 - 19968: 0xEBDD, - 35519 - 19968: 0xF0E0, - 35522 - 19968: 0xF4DB, - 35524 - 19968: 0xE2F4, - 35527 - 19968: 0xD3C8, - 35531 - 19968: 0xF4EB, - 35533 - 19968: 0xEEB5, - 35535 - 19968: 0xF5D8, - 35538 - 19968: 0xD5DF, - 35542 - 19968: 0xD6E5, - 35547 - 19968: 0xEBB0, - 35548 - 19968: 0xF4E3, - 35553 - 19968: 0xE3CD, - 35558 - 19968: 0xF4F4, - 35559 - 19968: 0xFAB2, - 35562 - 19968: 0xEFF5, - 35563 - 19968: 0xCADF, - 35565 - 19968: 0xEBB1, - 35566 - 19968: 0xEDBF, - 35569 - 19968: 0xFDC9, - 35574 - 19968: 0xE4A6, - 35575 - 19968: 0xF9A4, - 35576 - 19968: 0xF0B3, - 35578 - 19968: 0xE5EC, - 35582 - 19968: 0xD1E7, - 35584 - 19968: 0xD9C7, - 35585 - 19968: 0xE4D7, - 35586 - 19968: 0xEADD, - 35588 - 19968: 0xD4F7, - 35598 - 19968: 0xDABA, - 35600 - 19968: 0xDACD, - 35604 - 19968: 0xF9CC, - 35606 - 19968: 0xE1DA, - 35607 - 19968: 0xDBBF, - 35609 - 19968: 0xCCC5, - 35610 - 19968: 0xECD0, - 35611 - 19968: 0xCBBB, - 35613 - 19968: 0xDEF3, - 35616 - 19968: 0xE9AA, - 35624 - 19968: 0xD9C8, - 35627 - 19968: 0xEEE3, - 35628 - 19968: 0xD7BD, - 35635 - 19968: 0xCFC4, - 35641 - 19968: 0xD0CD, - 35649 - 19968: 0xFCA6, - 35657 - 19968: 0xF1FB, - 35662 - 19968: 0xFDD2, - 35663 - 19968: 0xD1C1, - 35672 - 19968: 0xE3DB, - 35674 - 19968: 0xD3C9, - 35676 - 19968: 0xDCCF, - 35686 - 19968: 0xCCED, - 35692 - 19968: 0xDEA7, - 35695 - 19968: 0xE6BB, - 35696 - 19968: 0xECA1, - 35700 - 19968: 0xCCB9, - 35703 - 19968: 0xFBDE, - 35709 - 19968: 0xE7E2, - 35712 - 19968: 0xD4C1, - 35722 - 19968: 0xDCA8, - 35728 - 19968: 0xE2C2, - 35730 - 19968: 0xF3D8, - 35731 - 19968: 0xE5D3, - 35734 - 19968: 0xF3D9, - 35738 - 19968: 0xF3C6, - 35895 - 19968: 0xCDDB, - 35903 - 19968: 0xCDAC, - 35905 - 19968: 0xFCC3, - 35910 - 19968: 0xD4E7, - 35912 - 19968: 0xD1C2, - 35914 - 19968: 0xF9A5, - 35916 - 19968: 0xE8D5, - 35925 - 19968: 0xE3CE, - 35930 - 19968: 0xD4CA, - 35937 - 19968: 0xDFDA, - 35946 - 19968: 0xFBDF, - 35947 - 19968: 0xE7E3, - 35961 - 19968: 0xF8FB, - 35962 - 19968: 0xE3CF, - 35970 - 19968: 0xF5B0, - 35978 - 19968: 0xD8E7, - 35980 - 19968: 0xD9C9, - 35997 - 19968: 0xF8AF, - 35998 - 19968: 0xEFF6, - 36000 - 19968: 0xDDB6, - 36001 - 19968: 0xEEAF, - 36002 - 19968: 0xCDF8, - 36007 - 19968: 0xDEB8, - 36008 - 19968: 0xFCA7, - 36009 - 19968: 0xF7FC, - 36010 - 19968: 0xF7B1, - 36011 - 19968: 0xCEBB, - 36012 - 19968: 0xF4A1, - 36015 - 19968: 0xEECD, - 36016 - 19968: 0xE1AE, - 36019 - 19968: 0xECC3, - 36020 - 19968: 0xCFFE, - 36022 - 19968: 0xF8BF, - 36023 - 19968: 0xD8E2, - 36024 - 19968: 0xD3E8, - 36027 - 19968: 0xDEA8, - 36028 - 19968: 0xF4E4, - 36029 - 19968: 0xECC2, - 36031 - 19968: 0xD9F5, - 36032 - 19968: 0xF9C5, - 36033 - 19968: 0xDDD3, - 36034 - 19968: 0xD6F1, - 36035 - 19968: 0xECFC, - 36036 - 19968: 0xFCF0, - 36039 - 19968: 0xEDC0, - 36040 - 19968: 0xCAB9, - 36042 - 19968: 0xEEE4, - 36049 - 19968: 0xF2E1, - 36051 - 19968: 0xDEB9, - 36058 - 19968: 0xD6F2, - 36060 - 19968: 0xDEF4, - 36062 - 19968: 0xDFDB, - 36064 - 19968: 0xDBD3, - 36066 - 19968: 0xFAE7, - 36067 - 19968: 0xD8E3, - 36068 - 19968: 0xF4C1, - 36070 - 19968: 0xDDB7, - 36074 - 19968: 0xF2F5, - 36077 - 19968: 0xD4AE, - 36084 - 19968: 0xD6F3, - 36091 - 19968: 0xDDB8, - 36092 - 19968: 0xCFC5, - 36093 - 19968: 0xDFDF, - 36100 - 19968: 0xF2BE, - 36101 - 19968: 0xF6A1, - 36103 - 19968: 0xEBCB, - 36104 - 19968: 0xF1FC, - 36106 - 19968: 0xF3C7, - 36109 - 19968: 0xE0EB, - 36115 - 19968: 0xEDFC, - 36118 - 19968: 0xE1DB, - 36196 - 19968: 0xEEE5, - 36198 - 19968: 0xDEF5, - 36203 - 19968: 0xFAD3, - 36208 - 19968: 0xF1CB, - 36211 - 19968: 0xD0AF, - 36212 - 19968: 0xDDB9, - 36215 - 19968: 0xD1C3, - 36229 - 19968: 0xF5B1, - 36234 - 19968: 0xEAC6, - 36249 - 19968: 0xF0E1, - 36259 - 19968: 0xF6AC, - 36264 - 19968: 0xF5D9, - 36275 - 19968: 0xF0EB, - 36282 - 19968: 0xDDBA, - 36286 - 19968: 0xF2BF, - 36294 - 19968: 0xF7C5, - 36299 - 19968: 0xDBA2, - 36300 - 19968: 0xF2F6, - 36303 - 19968: 0xCABA, - 36315 - 19968: 0xF7F5, - 36317 - 19968: 0xCBE5, - 36321 - 19968: 0xEEE6, - 36323 - 19968: 0xE0D3, - 36328 - 19968: 0xCEA5, - 36335 - 19968: 0xD6D8, - 36339 - 19968: 0xD4AF, - 36362 - 19968: 0xE9C9, - 36367 - 19968: 0xD3CE, - 36368 - 19968: 0xF4C2, - 36382 - 19968: 0xCBE6, - 36394 - 19968: 0xF1A1, - 36400 - 19968: 0xEBB2, - 36405 - 19968: 0xF1A2, - 36418 - 19968: 0xEBB3, - 36420 - 19968: 0xF0B4, - 36423 - 19968: 0xCBF4, - 36424 - 19968: 0xD4B0, - 36425 - 19968: 0xF3B2, - 36426 - 19968: 0xFBB7, - 36441 - 19968: 0xF5EC, - 36447 - 19968: 0xEEE7, - 36448 - 19968: 0xF4B2, - 36468 - 19968: 0xF5ED, - 36470 - 19968: 0xCFF3, - 36481 - 19968: 0xF0E2, - 36487 - 19968: 0xEECE, - 36490 - 19968: 0xF1CC, - 36493 - 19968: 0xE5B8, - 36522 - 19968: 0xD7F5, - 36523 - 19968: 0xE3F3, - 36524 - 19968: 0xCFE5, - 36544 - 19968: 0xCFC6, - 36554 - 19968: 0xF3B3, - 36555 - 19968: 0xE4D8, - 36556 - 19968: 0xCFF9, - 36557 - 19968: 0xCFDA, - 36562 - 19968: 0xFACD, - 36575 - 19968: 0xE6E3, - 36587 - 19968: 0xF2E2, - 36600 - 19968: 0xF5EE, - 36603 - 19968: 0xCABB, - 36606 - 19968: 0xE3DC, - 36611 - 19968: 0xCEF2, - 36613 - 19968: 0xD6D9, - 36617 - 19968: 0xEEB0, - 36626 - 19968: 0xF4E5, - 36627 - 19968: 0xD8C2, - 36628 - 19968: 0xDCD0, - 36629 - 19968: 0xCCEE, - 36635 - 19968: 0xD5E0, - 36636 - 19968: 0xF6CA, - 36637 - 19968: 0xFDCA, - 36638 - 19968: 0xD8D6, - 36639 - 19968: 0xF4CF, - 36646 - 19968: 0xD6A6, - 36647 - 19968: 0xDCBE, - 36649 - 19968: 0xDBD4, - 36650 - 19968: 0xD7C7, - 36655 - 19968: 0xF2FE, - 36659 - 19968: 0xF1CD, - 36664 - 19968: 0xE2C3, - 36665 - 19968: 0xDCDE, - 36667 - 19968: 0xDCDF, - 36670 - 19968: 0xEFAD, - 36671 - 19968: 0xE6AB, - 36676 - 19968: 0xF9DD, - 36677 - 19968: 0xEABF, - 36681 - 19968: 0xEFAE, - 36685 - 19968: 0xF4D0, - 36686 - 19968: 0xCEF3, - 36701 - 19968: 0xE6AC, - 36703 - 19968: 0xCEDE, - 36706 - 19968: 0xD5F9, - 36763 - 19968: 0xE3F4, - 36764 - 19968: 0xCDD0, - 36771 - 19968: 0xD5B8, - 36774 - 19968: 0xF7FD, - 36776 - 19968: 0xDCA9, - 36781 - 19968: 0xDEF6, - 36783 - 19968: 0xDCAA, - 36784 - 19968: 0xF2E3, - 36785 - 19968: 0xE9B4, - 36786 - 19968: 0xD2DC, - 36802 - 19968: 0xE9E6, - 36805 - 19968: 0xE3F6, - 36814 - 19968: 0xE7CA, - 36817 - 19968: 0xD0CE, - 36820 - 19968: 0xDAF7, - 36838 - 19968: 0xCABC, - 36842 - 19968: 0xEEE8, - 36843 - 19968: 0xDADE, - 36845 - 19968: 0xF2F7, - 36848 - 19968: 0xE2FB, - 36850 - 19968: 0xCCA6, - 36855 - 19968: 0xDABB, - 36857 - 19968: 0xEEE9, - 36861 - 19968: 0xF5DA, - 36864 - 19968: 0xF7DC, - 36865 - 19968: 0xE1EA, - 36866 - 19968: 0xCEC1, - 36867 - 19968: 0xD4B1, - 36869 - 19968: 0xFDB1, - 36870 - 19968: 0xE6BD, - 36872 - 19968: 0xFBAD, - 36875 - 19968: 0xF8E7, - 36877 - 19968: 0xE1CE, - 36879 - 19968: 0xF7E2, - 36880 - 19968: 0xF5EF, - 36881 - 19968: 0xCFC7, - 36884 - 19968: 0xD4B2, - 36885 - 19968: 0xCCEF, - 36887 - 19968: 0xD4E8, - 36889 - 19968: 0xEECF, - 36890 - 19968: 0xF7D7, - 36893 - 19968: 0xE0A6, - 36894 - 19968: 0xD6C1, - 36895 - 19968: 0xE1DC, - 36896 - 19968: 0xF0E3, - 36897 - 19968: 0xF1E4, - 36898 - 19968: 0xDCF1, - 36899 - 19968: 0xD6A7, - 36910 - 19968: 0xF4F5, - 36913 - 19968: 0xF1CE, - 36914 - 19968: 0xF2E4, - 36917 - 19968: 0xD0B0, - 36920 - 19968: 0xECEF, - 36924 - 19968: 0xF9BA, - 36926 - 19968: 0xEBB5, - 36929 - 19968: 0xD4ED, - 36930 - 19968: 0xE2C4, - 36935 - 19968: 0xE9E7, - 36938 - 19968: 0xEBB4, - 36939 - 19968: 0xEAA1, - 36941 - 19968: 0xF8BC, - 36942 - 19968: 0xCEA6, - 36944 - 19968: 0xF9C6, - 36945 - 19968: 0xFCDA, - 36947 - 19968: 0xD4B3, - 36948 - 19968: 0xD3B9, - 36949 - 19968: 0xEADE, - 36953 - 19968: 0xE9AB, - 36956 - 19968: 0xE1E1, - 36957 - 19968: 0xD3CF, - 36958 - 19968: 0xF4F6, - 36960 - 19968: 0xEAC0, - 36961 - 19968: 0xE1CF, - 36963 - 19968: 0xCCBA, - 36969 - 19968: 0xEEEA, - 36973 - 19968: 0xF0E4, - 36974 - 19968: 0xF3B4, - 36975 - 19968: 0xD4EE, - 36978 - 19968: 0xF2C0, - 36981 - 19968: 0xF1E5, - 36983 - 19968: 0xF4C3, - 36984 - 19968: 0xE0D4, - 36986 - 19968: 0xEBB6, - 36988 - 19968: 0xD7A1, - 36989 - 19968: 0xCBE8, - 36991 - 19968: 0xF9AD, - 36992 - 19968: 0xE9AD, - 36993 - 19968: 0xD8E4, - 36994 - 19968: 0xFAB3, - 36995 - 19968: 0xE2C5, - 36996 - 19968: 0xFCBD, - 36999 - 19968: 0xECC4, - 37000 - 19968: 0xD8B1, - 37002 - 19968: 0xDCAB, - 37007 - 19968: 0xD5A4, - 37009 - 19968: 0xEBE9, - 37013 - 19968: 0xE8BB, - 37017 - 19968: 0xD8D7, - 37026 - 19968: 0xFBAE, - 37027 - 19968: 0xD1E1, - 37030 - 19968: 0xDBC0, - 37032 - 19968: 0xF5BE, - 37034 - 19968: 0xDEF7, - 37039 - 19968: 0xCAFB, - 37040 - 19968: 0xF7C6, - 37041 - 19968: 0xCFC8, - 37045 - 19968: 0xE1D0, - 37048 - 19968: 0xEED0, - 37057 - 19968: 0xE9F4, - 37066 - 19968: 0xCEF4, - 37086 - 19968: 0xD5CD, - 37089 - 19968: 0xCFDB, - 37096 - 19968: 0xDDBB, - 37101 - 19968: 0xCEAC, - 37109 - 19968: 0xE9E8, - 37117 - 19968: 0xD4B4, - 37122 - 19968: 0xE4C7, - 37138 - 19968: 0xF5DB, - 37141 - 19968: 0xFAC1, - 37145 - 19968: 0xDEA9, - 37159 - 19968: 0xD4F8, - 37165 - 19968: 0xEFF7, - 37170 - 19968: 0xD3B3, - 37193 - 19968: 0xEBB7, - 37194 - 19968: 0xEFF8, - 37195 - 19968: 0xF5DC, - 37196 - 19968: 0xEDCC, - 37197 - 19968: 0xDBD5, - 37198 - 19968: 0xF1CF, - 37202 - 19968: 0xF1D0, - 37218 - 19968: 0xF5B2, - 37225 - 19968: 0xD9AE, - 37226 - 19968: 0xD5AC, - 37228 - 19968: 0xE2C6, - 37237 - 19968: 0xFDA3, - 37239 - 19968: 0xFBE5, - 37240 - 19968: 0xDFAB, - 37255 - 19968: 0xE2F5, - 37257 - 19968: 0xF6AD, - 37259 - 19968: 0xF5B3, - 37261 - 19968: 0xF0B5, - 37266 - 19968: 0xE1A5, - 37276 - 19968: 0xF5DD, - 37291 - 19968: 0xECA2, - 37292 - 19968: 0xEDFD, - 37294 - 19968: 0xF5B4, - 37295 - 19968: 0xFBB8, - 37297 - 19968: 0xDBA3, - 37300 - 19968: 0xD6CA, - 37301 - 19968: 0xCBD9, - 37312 - 19968: 0xE5D4, - 37319 - 19968: 0xF3FA, - 37321 - 19968: 0xEBB8, - 37323 - 19968: 0xE0B7, - 37324 - 19968: 0xD7EC, - 37325 - 19968: 0xF1EC, - 37326 - 19968: 0xE5AF, - 37327 - 19968: 0xD5E1, - 37328 - 19968: 0xD7ED, - 37329 - 19968: 0xD1D1, - 37335 - 19968: 0xE1F2, - 37336 - 19968: 0xEFF9, - 37340 - 19968: 0xDDBC, - 37341 - 19968: 0xF6DC, - 37347 - 19968: 0xF0E5, - 37351 - 19968: 0xF4C4, - 37354 - 19968: 0xE9E9, - 37365 - 19968: 0xF3FB, - 37389 - 19968: 0xD4EF, - 37392 - 19968: 0xCCA2, - 37393 - 19968: 0xF7FE, - 37394 - 19968: 0xDFBC, - 37399 - 19968: 0xEBCD, - 37406 - 19968: 0xD0B7, - 37428 - 19968: 0xD6C2, - 37434 - 19968: 0xE8AD, - 37439 - 19968: 0xEFAF, - 37440 - 19968: 0xCBA5, - 37445 - 19968: 0xCBE9, - 37449 - 19968: 0xFAE8, - 37463 - 19968: 0xCCC6, - 37467 - 19968: 0xE6E7, - 37470 - 19968: 0xEAC7, - 37474 - 19968: 0xDBA4, - 37476 - 19968: 0xCFC9, - 37477 - 19968: 0xE2FC, - 37478 - 19968: 0xEFFA, - 37504 - 19968: 0xEBDE, - 37507 - 19968: 0xF5C8, - 37509 - 19968: 0xD4DE, - 37521 - 19968: 0xE0D5, - 37523 - 19968: 0xEFB0, - 37526 - 19968: 0xE2C7, - 37528 - 19968: 0xD9AF, - 37532 - 19968: 0xF9E7, - 37555 - 19968: 0xE7E5, - 37558 - 19968: 0xCFCA, - 37559 - 19968: 0xE1D1, - 37561 - 19968: 0xE2C8, - 37580 - 19968: 0xEFFB, - 37583 - 19968: 0xFAF9, - 37586 - 19968: 0xDCF2, - 37604 - 19968: 0xE0A7, - 37610 - 19968: 0xF8E8, - 37624 - 19968: 0xCBEA, - 37628 - 19968: 0xCBBC, - 37636 - 19968: 0xD6E2, - 37648 - 19968: 0xF5DE, - 37656 - 19968: 0xF5DF, - 37658 - 19968: 0xEEB6, - 37662 - 19968: 0xE2F6, - 37663 - 19968: 0xD3CA, - 37664 - 19968: 0xEFFC, - 37665 - 19968: 0xD1C4, - 37666 - 19968: 0xEFB1, - 37668 - 19968: 0xD1C5, - 37670 - 19968: 0xD0DE, - 37672 - 19968: 0xD9E1, - 37675 - 19968: 0xE0B8, - 37678 - 19968: 0xCDD1, - 37679 - 19968: 0xF3B9, - 37704 - 19968: 0xE7CC, - 37706 - 19968: 0xD6A8, - 37707 - 19968: 0xCEA7, - 37709 - 19968: 0xD4B5, - 37716 - 19968: 0xE4C8, - 37723 - 19968: 0xD3B4, - 37742 - 19968: 0xEBB9, - 37749 - 19968: 0xCBF5, - 37756 - 19968: 0xF6DD, - 37758 - 19968: 0xF1A3, - 37772 - 19968: 0xCCC7, - 37780 - 19968: 0xE9CA, - 37782 - 19968: 0xE1F0, - 37786 - 19968: 0xF5E0, - 37795 - 19968: 0xFBAF, - 37799 - 19968: 0xCBD1, - 37804 - 19968: 0xFBE0, - 37805 - 19968: 0xF2E5, - 37808 - 19968: 0xECF0, - 37827 - 19968: 0xF0EC, - 37841 - 19968: 0xEEEB, - 37854 - 19968: 0xE9CB, - 37857 - 19968: 0xCCF0, - 37860 - 19968: 0xD7AF, - 37878 - 19968: 0xF3A1, - 37892 - 19968: 0xFCF5, - 37912 - 19968: 0xF1A4, - 37925 - 19968: 0xE0D6, - 37931 - 19968: 0xEFB2, - 37941 - 19968: 0xF4D1, - 37944 - 19968: 0xF7A1, - 37956 - 19968: 0xF1D1, - 37969 - 19968: 0xCAFC, - 37970 - 19968: 0xCAFD, - 37979 - 19968: 0xCECE, - 38013 - 19968: 0xF3C8, - 38015 - 19968: 0xF3BA, - 38263 - 19968: 0xEDFE, - 38272 - 19968: 0xDAA6, - 38275 - 19968: 0xE0EC, - 38281 - 19968: 0xF8CD, - 38283 - 19968: 0xCBD2, - 38287 - 19968: 0xEBCE, - 38289 - 19968: 0xF9D8, - 38290 - 19968: 0xF9D9, - 38291 - 19968: 0xCAE0, - 38292 - 19968: 0xDACA, - 38296 - 19968: 0xCBA6, - 38307 - 19968: 0xCAC8, - 38308 - 19968: 0xF9EE, - 38309 - 19968: 0xDBEC, - 38312 - 19968: 0xD0B1, - 38317 - 19968: 0xD5EF, - 38321 - 19968: 0xE6F3, - 38331 - 19968: 0xE7A2, - 38332 - 19968: 0xE4D9, - 38343 - 19968: 0xE4E1, - 38346 - 19968: 0xFCC4, - 38356 - 19968: 0xF9EF, - 38357 - 19968: 0xCFF4, - 38358 - 19968: 0xF7E6, - 38364 - 19968: 0xCEBC, - 38369 - 19968: 0xF4C5, - 38370 - 19968: 0xDCA3, - 38428 - 19968: 0xDDBD, - 38433 - 19968: 0xF4C6, - 38442 - 19968: 0xF8A1, - 38446 - 19968: 0xE8D6, - 38450 - 19968: 0xDBC1, - 38459 - 19968: 0xF0E6, - 38463 - 19968: 0xE4B9, - 38464 - 19968: 0xF6ED, - 38466 - 19968: 0xF9AE, - 38468 - 19968: 0xDDBE, - 38475 - 19968: 0xD7B0, - 38476 - 19968: 0xD8E8, - 38477 - 19968: 0xCBBD, - 38480 - 19968: 0xF9DA, - 38491 - 19968: 0xF8CE, - 38492 - 19968: 0xF9F0, - 38493 - 19968: 0xE0ED, - 38494 - 19968: 0xE3B3, - 38495 - 19968: 0xF4B3, - 38498 - 19968: 0xEAC2, - 38499 - 19968: 0xF2E6, - 38500 - 19968: 0xF0B6, - 38506 - 19968: 0xDBD6, - 38512 - 19968: 0xEBE4, - 38515 - 19968: 0xF2E7, - 38517 - 19968: 0xD7D5, - 38518 - 19968: 0xD4B6, - 38519 - 19968: 0xF9E8, - 38520 - 19968: 0xD7C1, - 38525 - 19968: 0xE5D5, - 38533 - 19968: 0xE9EA, - 38534 - 19968: 0xD7CC, - 38538 - 19968: 0xD3E9, - 38539 - 19968: 0xE2C9, - 38541 - 19968: 0xFCDB, - 38542 - 19968: 0xCDAD, - 38548 - 19968: 0xCCB0, - 38549 - 19968: 0xEAA2, - 38552 - 19968: 0xE4F6, - 38553 - 19968: 0xD0C0, - 38555 - 19968: 0xF0B7, - 38556 - 19968: 0xEEA1, - 38563 - 19968: 0xD7F6, - 38567 - 19968: 0xE2CA, - 38568 - 19968: 0xE2CB, - 38570 - 19968: 0xFACF, - 38577 - 19968: 0xEBDF, - 38583 - 19968: 0xD6CB, - 38587 - 19968: 0xF4B4, - 38592 - 19968: 0xEDCD, - 38593 - 19968: 0xE4D2, - 38596 - 19968: 0xEAA9, - 38597 - 19968: 0xE4BA, - 38598 - 19968: 0xF3A2, - 38599 - 19968: 0xCDD2, - 38601 - 19968: 0xF6CB, - 38603 - 19968: 0xF1E6, - 38604 - 19968: 0xEDC1, - 38605 - 19968: 0xE8BC, - 38606 - 19968: 0xEED1, - 38613 - 19968: 0xF0E7, - 38614 - 19968: 0xE2CC, - 38617 - 19968: 0xE4AA, - 38619 - 19968: 0xF5E1, - 38620 - 19968: 0xEDDA, - 38626 - 19968: 0xD7EE, - 38627 - 19968: 0xD1F1, - 38632 - 19968: 0xE9EB, - 38633 - 19968: 0xE9EC, - 38634 - 19968: 0xE0E4, - 38639 - 19968: 0xDAA7, - 38640 - 19968: 0xDDD4, - 38642 - 19968: 0xEAA3, - 38646 - 19968: 0xD6C3, - 38647 - 19968: 0xD6F4, - 38649 - 19968: 0xDADF, - 38651 - 19968: 0xEFB3, - 38656 - 19968: 0xE2CD, - 38662 - 19968: 0xEFFD, - 38663 - 19968: 0xF2E8, - 38673 - 19968: 0xEFC5, - 38675 - 19968: 0xE7E7, - 38678 - 19968: 0xD7FD, - 38681 - 19968: 0xE7CE, - 38684 - 19968: 0xDFDC, - 38686 - 19968: 0xF9C7, - 38695 - 19968: 0xD9F6, - 38704 - 19968: 0xDFAC, - 38706 - 19968: 0xD6DA, - 38713 - 19968: 0xDCA4, - 38717 - 19968: 0xF0B8, - 38722 - 19968: 0xD5FA, - 38724 - 19968: 0xE4F7, - 38728 - 19968: 0xD6C4, - 38737 - 19968: 0xF4EC, - 38742 - 19968: 0xEFFE, - 38748 - 19968: 0xF0A1, - 38750 - 19968: 0xDEAA, - 38753 - 19968: 0xDABC, - 38754 - 19968: 0xD8FC, - 38761 - 19968: 0xFAD4, - 38765 - 19968: 0xECE5, - 38772 - 19968: 0xFCA8, - 38775 - 19968: 0xECE6, - 38778 - 19968: 0xD8CB, - 38795 - 19968: 0xFBB9, - 38797 - 19968: 0xE4D3, - 38799 - 19968: 0xCDF9, - 38816 - 19968: 0xCFD3, - 38824 - 19968: 0xCAEA, - 38827 - 19968: 0xCFD4, - 38829 - 19968: 0xF8BD, - 38854 - 19968: 0xF4C7, - 38859 - 19968: 0xEADF, - 38867 - 19968: 0xF9DB, - 38876 - 19968: 0xD4B7, - 38899 - 19968: 0xEBE5, - 38902 - 19968: 0xE1D2, - 38907 - 19968: 0xEAA4, - 38911 - 19968: 0xFAC2, - 38912 - 19968: 0xFBE1, - 38913 - 19968: 0xFAED, - 38914 - 19968: 0xF0A2, - 38915 - 19968: 0xCCF1, - 38917 - 19968: 0xFAA3, - 38918 - 19968: 0xE2F7, - 38920 - 19968: 0xE2CE, - 38922 - 19968: 0xE9F5, - 38924 - 19968: 0xE1EB, - 38928 - 19968: 0xE7E8, - 38929 - 19968: 0xE8D7, - 38930 - 19968: 0xDAF8, - 38931 - 19968: 0xD4CB, - 38935 - 19968: 0xF7F6, - 38936 - 19968: 0xD6C5, - 38957 - 19968: 0xD4E9, - 38960 - 19968: 0xFAFA, - 38968 - 19968: 0xCCF2, - 38969 - 19968: 0xF7DD, - 38971 - 19968: 0xDEBA, - 38982 - 19968: 0xCEA8, - 38988 - 19968: 0xF0B9, - 38989 - 19968: 0xE4FE, - 38990 - 19968: 0xE4C9, - 38996 - 19968: 0xE4D4, - 39000 - 19968: 0xEAC3, - 39002 - 19968: 0xEFB4, - 39006 - 19968: 0xD7BE, - 39013 - 19968: 0xFBE2, - 39015 - 19968: 0xCDD3, - 39019 - 19968: 0xEFB5, - 39023 - 19968: 0xFAE9, - 39080 - 19968: 0xF9A6, - 39087 - 19968: 0xDFBD, - 39089 - 19968: 0xF7C7, - 39108 - 19968: 0xF8FD, - 39111 - 19968: 0xF8FC, - 39131 - 19968: 0xDEAB, - 39132 - 19968: 0xDBE8, - 39135 - 19968: 0xE3DD, - 39137 - 19968: 0xE1E2, - 39138 - 19968: 0xD1C6, - 39149 - 19968: 0xF6D0, - 39150 - 19968: 0xEBE6, - 39151 - 19968: 0xDAF9, - 39156 - 19968: 0xECC7, - 39164 - 19968: 0xDEF8, - 39165 - 19968: 0xF8E9, - 39166 - 19968: 0xE3DE, - 39171 - 19968: 0xCEF5, - 39177 - 19968: 0xFAC3, - 39178 - 19968: 0xE5D7, - 39180 - 19968: 0xECC8, - 39184 - 19968: 0xF3C9, - 39187 - 19968: 0xE4BB, - 39192 - 19968: 0xE6AE, - 39198 - 19968: 0xEFB6, - 39200 - 19968: 0xDCBF, - 39208 - 19968: 0xCEBD, - 39237 - 19968: 0xD8C3, - 39241 - 19968: 0xD0CF, - 39243 - 19968: 0xCFFA, - 39244 - 19968: 0xF3CA, - 39245 - 19968: 0xE0D7, - 39249 - 19968: 0xD1C7, - 39250 - 19968: 0xE9AE, - 39252 - 19968: 0xE8BD, - 39255 - 19968: 0xFAC4, - 39318 - 19968: 0xE2CF, - 39321 - 19968: 0xFAC5, - 39325 - 19968: 0xF9B8, - 39333 - 19968: 0xDCE0, - 39336 - 19968: 0xFBB0, - 39340 - 19968: 0xD8A9, - 39341 - 19968: 0xE5DF, - 39342 - 19968: 0xF9A7, - 39345 - 19968: 0xF6EE, - 39347 - 19968: 0xF6CC, - 39348 - 19968: 0xE2F8, - 39353 - 19968: 0xECF1, - 39361 - 19968: 0xDAE0, - 39376 - 19968: 0xF1D2, - 39377 - 19968: 0xD2CC, - 39378 - 19968: 0xCFCB, - 39381 - 19968: 0xCABD, - 39385 - 19968: 0xDDBF, - 39389 - 19968: 0xF6EF, - 39391 - 19968: 0xDEF9, - 39405 - 19968: 0xFAB4, - 39409 - 19968: 0xD5AD, - 39423 - 19968: 0xF1E7, - 39425 - 19968: 0xDEBE, - 39432 - 19968: 0xDCC0, - 39438 - 19968: 0xD1C8, - 39439 - 19968: 0xD1C9, - 39449 - 19968: 0xF8BE, - 39467 - 19968: 0xCBF6, - 39472 - 19968: 0xD4F9, - 39478 - 19968: 0xF5E2, - 39479 - 19968: 0xE1D3, - 39488 - 19968: 0xD8E9, - 39491 - 19968: 0xF8FE, - 39493 - 19968: 0xCFCC, - 39501 - 19968: 0xFDA4, - 39509 - 19968: 0xCEF6, - 39511 - 19968: 0xFAD0, - 39514 - 19968: 0xCCF3, - 39515 - 19968: 0xE6BE, - 39519 - 19968: 0xF6AE, - 39522 - 19968: 0xD5F0, - 39525 - 19968: 0xD1CA, - 39529 - 19968: 0xFCBE, - 39530 - 19968: 0xD5F1, - 39592 - 19968: 0xCDE9, - 39608 - 19968: 0xFAB5, - 39635 - 19968: 0xE2D0, - 39636 - 19968: 0xF4F7, - 39640 - 19968: 0xCDD4, - 39653 - 19968: 0xE7A3, - 39662 - 19968: 0xDBA5, - 39706 - 19968: 0xE2D1, - 39719 - 19968: 0xD7A2, - 39722 - 19968: 0xF7E3, - 39729 - 19968: 0xEAA6, - 39740 - 19968: 0xD0A1, - 39745 - 19968: 0xCEDA, - 39746 - 19968: 0xFBEB, - 39747 - 19968: 0xDBA6, - 39748 - 19968: 0xDBDE, - 39749 - 19968: 0xD8E5, - 39759 - 19968: 0xEAE0, - 39764 - 19968: 0xD8AA, - 39770 - 19968: 0xE5E0, - 39791 - 19968: 0xD6DB, - 39822 - 19968: 0xEFC6, - 39825 - 19968: 0xF8EA, - 39839 - 19968: 0xE4D5, - 39851 - 19968: 0xCEF7, - 39854 - 19968: 0xE0D8, - 39881 - 19968: 0xD7EF, - 39894 - 19968: 0xF4ED, - 39908 - 19968: 0xCDE6, - 39912 - 19968: 0xCCF4, - 39949 - 19968: 0xF5E3, - 39952 - 19968: 0xE4CA, - 39954 - 19968: 0xDCE1, - 39957 - 19968: 0xF9C8, - 39973 - 19968: 0xFCBF, - 39986 - 19968: 0xE8A7, - 39995 - 19968: 0xD8C4, - 40007 - 19968: 0xCBBE, - 40009 - 19968: 0xDCAE, - 40023 - 19968: 0xD7F7, - 40165 - 19968: 0xF0E8, - 40167 - 19968: 0xDDC0, - 40169 - 19968: 0xCFCD, - 40179 - 19968: 0xDCF3, - 40180 - 19968: 0xD9B0, - 40182 - 19968: 0xE6E9, - 40201 - 19968: 0xE4BC, - 40219 - 19968: 0xEAC4, - 40230 - 19968: 0xE4EC, - 40232 - 19968: 0xE4E5, - 40251 - 19968: 0xFBF8, - 40273 - 19968: 0xCCBB, - 40285 - 19968: 0xE4BD, - 40288 - 19968: 0xCDDC, - 40289 - 19968: 0xD9F7, - 40300 - 19968: 0xDDDF, - 40306 - 19968: 0xEDCE, - 40361 - 19968: 0xD9D0, - 40367 - 19968: 0xE5A3, - 40372 - 19968: 0xF9CD, - 40388 - 19968: 0xCDAE, - 40407 - 19968: 0xCFCE, - 40434 - 19968: 0xF6AF, - 40440 - 19968: 0xFDD3, - 40441 - 19968: 0xEBED, - 40442 - 19968: 0xD6DC, - 40474 - 19968: 0xE5A4, - 40478 - 19968: 0xD5B6, - 40565 - 19968: 0xD6DD, - 40569 - 19968: 0xF9E9, - 40573 - 19968: 0xE7A4, - 40575 - 19968: 0xD6E3, - 40594 - 19968: 0xD1CB, - 40595 - 19968: 0xD6E4, - 40599 - 19968: 0xD5F2, - 40605 - 19968: 0xDEFA, - 40607 - 19968: 0xD7F8, - 40613 - 19968: 0xD8EA, - 40628 - 19968: 0xCFD5, - 40629 - 19968: 0xD8FD, - 40635 - 19968: 0xD8AB, - 40638 - 19968: 0xFDCB, - 40643 - 19968: 0xFCDC, - 40653 - 19968: 0xE0A8, - 40654 - 19968: 0xD5F3, - 40657 - 19968: 0xFDD9, - 40660 - 19968: 0xCCA3, - 40664 - 19968: 0xD9F9, - 40667 - 19968: 0xD3EA, - 40668 - 19968: 0xF5F5, - 40670 - 19968: 0xEFC7, - 40680 - 19968: 0xD3DA, - 40692 - 19968: 0xDABD, - 40711 - 19968: 0xE8A8, - 40712 - 19968: 0xDCAF, - 40718 - 19968: 0xF0A3, - 40723 - 19968: 0xCDD5, - 40736 - 19968: 0xE0A9, - 40763 - 19968: 0xDEAC, - 40778 - 19968: 0xF0BA, - 40779 - 19968: 0xEEB1, - 40782 - 19968: 0xEEB2, - 40786 - 19968: 0xF6CD, - 40799 - 19968: 0xEED2, - 40801 - 19968: 0xD6C6, - 40807 - 19968: 0xE0E5, - 40810 - 19968: 0xF3BB, - 40812 - 19968: 0xE5E1, - 40823 - 19968: 0xE4CB, - 40845 - 19968: 0xD7A3, - 40848 - 19968: 0xDBC2, - 40853 - 19968: 0xCAFE, - 40860 - 19968: 0xCFCF, -} - -const encode1Low, encode1High = 44032, 55204 - -var encode1 = [...]uint16{ - 44032 - 44032: 0xB0A1, - 44033 - 44032: 0xB0A2, - 44034 - 44032: 0x8141, - 44035 - 44032: 0x8142, - 44036 - 44032: 0xB0A3, - 44037 - 44032: 0x8143, - 44038 - 44032: 0x8144, - 44039 - 44032: 0xB0A4, - 44040 - 44032: 0xB0A5, - 44041 - 44032: 0xB0A6, - 44042 - 44032: 0xB0A7, - 44043 - 44032: 0x8145, - 44044 - 44032: 0x8146, - 44045 - 44032: 0x8147, - 44046 - 44032: 0x8148, - 44047 - 44032: 0x8149, - 44048 - 44032: 0xB0A8, - 44049 - 44032: 0xB0A9, - 44050 - 44032: 0xB0AA, - 44051 - 44032: 0xB0AB, - 44052 - 44032: 0xB0AC, - 44053 - 44032: 0xB0AD, - 44054 - 44032: 0xB0AE, - 44055 - 44032: 0xB0AF, - 44056 - 44032: 0x814A, - 44057 - 44032: 0xB0B0, - 44058 - 44032: 0xB0B1, - 44059 - 44032: 0xB0B2, - 44060 - 44032: 0xB0B3, - 44061 - 44032: 0xB0B4, - 44062 - 44032: 0x814B, - 44063 - 44032: 0x814C, - 44064 - 44032: 0xB0B5, - 44065 - 44032: 0x814D, - 44066 - 44032: 0x814E, - 44067 - 44032: 0x814F, - 44068 - 44032: 0xB0B6, - 44069 - 44032: 0x8150, - 44070 - 44032: 0x8151, - 44071 - 44032: 0x8152, - 44072 - 44032: 0x8153, - 44073 - 44032: 0x8154, - 44074 - 44032: 0x8155, - 44075 - 44032: 0x8156, - 44076 - 44032: 0xB0B7, - 44077 - 44032: 0xB0B8, - 44078 - 44032: 0x8157, - 44079 - 44032: 0xB0B9, - 44080 - 44032: 0xB0BA, - 44081 - 44032: 0xB0BB, - 44082 - 44032: 0x8158, - 44083 - 44032: 0x8159, - 44084 - 44032: 0x815A, - 44085 - 44032: 0x8161, - 44086 - 44032: 0x8162, - 44087 - 44032: 0x8163, - 44088 - 44032: 0xB0BC, - 44089 - 44032: 0xB0BD, - 44090 - 44032: 0x8164, - 44091 - 44032: 0x8165, - 44092 - 44032: 0xB0BE, - 44093 - 44032: 0x8166, - 44094 - 44032: 0x8167, - 44095 - 44032: 0x8168, - 44096 - 44032: 0xB0BF, - 44097 - 44032: 0x8169, - 44098 - 44032: 0x816A, - 44099 - 44032: 0x816B, - 44100 - 44032: 0x816C, - 44101 - 44032: 0x816D, - 44102 - 44032: 0x816E, - 44103 - 44032: 0x816F, - 44104 - 44032: 0x8170, - 44105 - 44032: 0x8171, - 44106 - 44032: 0x8172, - 44107 - 44032: 0xB0C0, - 44108 - 44032: 0x8173, - 44109 - 44032: 0xB0C1, - 44110 - 44032: 0x8174, - 44111 - 44032: 0x8175, - 44112 - 44032: 0x8176, - 44113 - 44032: 0x8177, - 44114 - 44032: 0x8178, - 44115 - 44032: 0x8179, - 44116 - 44032: 0xB0C2, - 44117 - 44032: 0x817A, - 44118 - 44032: 0x8181, - 44119 - 44032: 0x8182, - 44120 - 44032: 0xB0C3, - 44121 - 44032: 0x8183, - 44122 - 44032: 0x8184, - 44123 - 44032: 0x8185, - 44124 - 44032: 0xB0C4, - 44125 - 44032: 0x8186, - 44126 - 44032: 0x8187, - 44127 - 44032: 0x8188, - 44128 - 44032: 0x8189, - 44129 - 44032: 0x818A, - 44130 - 44032: 0x818B, - 44131 - 44032: 0x818C, - 44132 - 44032: 0x818D, - 44133 - 44032: 0x818E, - 44134 - 44032: 0x818F, - 44135 - 44032: 0x8190, - 44136 - 44032: 0x8191, - 44137 - 44032: 0x8192, - 44138 - 44032: 0x8193, - 44139 - 44032: 0x8194, - 44140 - 44032: 0x8195, - 44141 - 44032: 0x8196, - 44142 - 44032: 0x8197, - 44143 - 44032: 0x8198, - 44144 - 44032: 0xB0C5, - 44145 - 44032: 0xB0C6, - 44146 - 44032: 0x8199, - 44147 - 44032: 0x819A, - 44148 - 44032: 0xB0C7, - 44149 - 44032: 0x819B, - 44150 - 44032: 0x819C, - 44151 - 44032: 0xB0C8, - 44152 - 44032: 0xB0C9, - 44153 - 44032: 0x819D, - 44154 - 44032: 0xB0CA, - 44155 - 44032: 0x819E, - 44156 - 44032: 0x819F, - 44157 - 44032: 0x81A0, - 44158 - 44032: 0x81A1, - 44159 - 44032: 0x81A2, - 44160 - 44032: 0xB0CB, - 44161 - 44032: 0xB0CC, - 44162 - 44032: 0x81A3, - 44163 - 44032: 0xB0CD, - 44164 - 44032: 0xB0CE, - 44165 - 44032: 0xB0CF, - 44166 - 44032: 0xB0D0, - 44167 - 44032: 0x81A4, - 44168 - 44032: 0x81A5, - 44169 - 44032: 0xB0D1, - 44170 - 44032: 0xB0D2, - 44171 - 44032: 0xB0D3, - 44172 - 44032: 0xB0D4, - 44173 - 44032: 0x81A6, - 44174 - 44032: 0x81A7, - 44175 - 44032: 0x81A8, - 44176 - 44032: 0xB0D5, - 44177 - 44032: 0x81A9, - 44178 - 44032: 0x81AA, - 44179 - 44032: 0x81AB, - 44180 - 44032: 0xB0D6, - 44181 - 44032: 0x81AC, - 44182 - 44032: 0x81AD, - 44183 - 44032: 0x81AE, - 44184 - 44032: 0x81AF, - 44185 - 44032: 0x81B0, - 44186 - 44032: 0x81B1, - 44187 - 44032: 0x81B2, - 44188 - 44032: 0xB0D7, - 44189 - 44032: 0xB0D8, - 44190 - 44032: 0x81B3, - 44191 - 44032: 0xB0D9, - 44192 - 44032: 0xB0DA, - 44193 - 44032: 0xB0DB, - 44194 - 44032: 0x81B4, - 44195 - 44032: 0x81B5, - 44196 - 44032: 0x81B6, - 44197 - 44032: 0x81B7, - 44198 - 44032: 0x81B8, - 44199 - 44032: 0x81B9, - 44200 - 44032: 0xB0DC, - 44201 - 44032: 0xB0DD, - 44202 - 44032: 0xB0DE, - 44203 - 44032: 0x81BA, - 44204 - 44032: 0xB0DF, - 44205 - 44032: 0x81BB, - 44206 - 44032: 0x81BC, - 44207 - 44032: 0xB0E0, - 44208 - 44032: 0xB0E1, - 44209 - 44032: 0x81BD, - 44210 - 44032: 0x81BE, - 44211 - 44032: 0x81BF, - 44212 - 44032: 0x81C0, - 44213 - 44032: 0x81C1, - 44214 - 44032: 0x81C2, - 44215 - 44032: 0x81C3, - 44216 - 44032: 0xB0E2, - 44217 - 44032: 0xB0E3, - 44218 - 44032: 0x81C4, - 44219 - 44032: 0xB0E4, - 44220 - 44032: 0xB0E5, - 44221 - 44032: 0xB0E6, - 44222 - 44032: 0x81C5, - 44223 - 44032: 0x81C6, - 44224 - 44032: 0x81C7, - 44225 - 44032: 0xB0E7, - 44226 - 44032: 0x81C8, - 44227 - 44032: 0x81C9, - 44228 - 44032: 0xB0E8, - 44229 - 44032: 0x81CA, - 44230 - 44032: 0x81CB, - 44231 - 44032: 0x81CC, - 44232 - 44032: 0xB0E9, - 44233 - 44032: 0x81CD, - 44234 - 44032: 0x81CE, - 44235 - 44032: 0x81CF, - 44236 - 44032: 0xB0EA, - 44237 - 44032: 0x81D0, - 44238 - 44032: 0x81D1, - 44239 - 44032: 0x81D2, - 44240 - 44032: 0x81D3, - 44241 - 44032: 0x81D4, - 44242 - 44032: 0x81D5, - 44243 - 44032: 0x81D6, - 44244 - 44032: 0x81D7, - 44245 - 44032: 0xB0EB, - 44246 - 44032: 0x81D8, - 44247 - 44032: 0xB0EC, - 44248 - 44032: 0x81D9, - 44249 - 44032: 0x81DA, - 44250 - 44032: 0x81DB, - 44251 - 44032: 0x81DC, - 44252 - 44032: 0x81DD, - 44253 - 44032: 0x81DE, - 44254 - 44032: 0x81DF, - 44255 - 44032: 0x81E0, - 44256 - 44032: 0xB0ED, - 44257 - 44032: 0xB0EE, - 44258 - 44032: 0x81E1, - 44259 - 44032: 0x81E2, - 44260 - 44032: 0xB0EF, - 44261 - 44032: 0x81E3, - 44262 - 44032: 0x81E4, - 44263 - 44032: 0xB0F0, - 44264 - 44032: 0xB0F1, - 44265 - 44032: 0x81E5, - 44266 - 44032: 0xB0F2, - 44267 - 44032: 0x81E6, - 44268 - 44032: 0xB0F3, - 44269 - 44032: 0x81E7, - 44270 - 44032: 0x81E8, - 44271 - 44032: 0xB0F4, - 44272 - 44032: 0xB0F5, - 44273 - 44032: 0xB0F6, - 44274 - 44032: 0x81E9, - 44275 - 44032: 0xB0F7, - 44276 - 44032: 0x81EA, - 44277 - 44032: 0xB0F8, - 44278 - 44032: 0xB0F9, - 44279 - 44032: 0x81EB, - 44280 - 44032: 0x81EC, - 44281 - 44032: 0x81ED, - 44282 - 44032: 0x81EE, - 44283 - 44032: 0x81EF, - 44284 - 44032: 0xB0FA, - 44285 - 44032: 0xB0FB, - 44286 - 44032: 0x81F0, - 44287 - 44032: 0x81F1, - 44288 - 44032: 0xB0FC, - 44289 - 44032: 0x81F2, - 44290 - 44032: 0x81F3, - 44291 - 44032: 0x81F4, - 44292 - 44032: 0xB0FD, - 44293 - 44032: 0x81F5, - 44294 - 44032: 0xB0FE, - 44295 - 44032: 0x81F6, - 44296 - 44032: 0x81F7, - 44297 - 44032: 0x81F8, - 44298 - 44032: 0x81F9, - 44299 - 44032: 0x81FA, - 44300 - 44032: 0xB1A1, - 44301 - 44032: 0xB1A2, - 44302 - 44032: 0x81FB, - 44303 - 44032: 0xB1A3, - 44304 - 44032: 0x81FC, - 44305 - 44032: 0xB1A4, - 44306 - 44032: 0x81FD, - 44307 - 44032: 0x81FE, - 44308 - 44032: 0x8241, - 44309 - 44032: 0x8242, - 44310 - 44032: 0x8243, - 44311 - 44032: 0x8244, - 44312 - 44032: 0xB1A5, - 44313 - 44032: 0x8245, - 44314 - 44032: 0x8246, - 44315 - 44032: 0x8247, - 44316 - 44032: 0xB1A6, - 44317 - 44032: 0x8248, - 44318 - 44032: 0x8249, - 44319 - 44032: 0x824A, - 44320 - 44032: 0xB1A7, - 44321 - 44032: 0x824B, - 44322 - 44032: 0x824C, - 44323 - 44032: 0x824D, - 44324 - 44032: 0x824E, - 44325 - 44032: 0x824F, - 44326 - 44032: 0x8250, - 44327 - 44032: 0x8251, - 44328 - 44032: 0x8252, - 44329 - 44032: 0xB1A8, - 44330 - 44032: 0x8253, - 44331 - 44032: 0x8254, - 44332 - 44032: 0xB1A9, - 44333 - 44032: 0xB1AA, - 44334 - 44032: 0x8255, - 44335 - 44032: 0x8256, - 44336 - 44032: 0x8257, - 44337 - 44032: 0x8258, - 44338 - 44032: 0x8259, - 44339 - 44032: 0x825A, - 44340 - 44032: 0xB1AB, - 44341 - 44032: 0xB1AC, - 44342 - 44032: 0x8261, - 44343 - 44032: 0x8262, - 44344 - 44032: 0xB1AD, - 44345 - 44032: 0x8263, - 44346 - 44032: 0x8264, - 44347 - 44032: 0x8265, - 44348 - 44032: 0xB1AE, - 44349 - 44032: 0x8266, - 44350 - 44032: 0x8267, - 44351 - 44032: 0x8268, - 44352 - 44032: 0x8269, - 44353 - 44032: 0x826A, - 44354 - 44032: 0x826B, - 44355 - 44032: 0x826C, - 44356 - 44032: 0xB1AF, - 44357 - 44032: 0xB1B0, - 44358 - 44032: 0x826D, - 44359 - 44032: 0xB1B1, - 44360 - 44032: 0x826E, - 44361 - 44032: 0xB1B2, - 44362 - 44032: 0x826F, - 44363 - 44032: 0x8270, - 44364 - 44032: 0x8271, - 44365 - 44032: 0x8272, - 44366 - 44032: 0x8273, - 44367 - 44032: 0x8274, - 44368 - 44032: 0xB1B3, - 44369 - 44032: 0x8275, - 44370 - 44032: 0x8276, - 44371 - 44032: 0x8277, - 44372 - 44032: 0xB1B4, - 44373 - 44032: 0x8278, - 44374 - 44032: 0x8279, - 44375 - 44032: 0x827A, - 44376 - 44032: 0xB1B5, - 44377 - 44032: 0x8281, - 44378 - 44032: 0x8282, - 44379 - 44032: 0x8283, - 44380 - 44032: 0x8284, - 44381 - 44032: 0x8285, - 44382 - 44032: 0x8286, - 44383 - 44032: 0x8287, - 44384 - 44032: 0x8288, - 44385 - 44032: 0xB1B6, - 44386 - 44032: 0x8289, - 44387 - 44032: 0xB1B7, - 44388 - 44032: 0x828A, - 44389 - 44032: 0x828B, - 44390 - 44032: 0x828C, - 44391 - 44032: 0x828D, - 44392 - 44032: 0x828E, - 44393 - 44032: 0x828F, - 44394 - 44032: 0x8290, - 44395 - 44032: 0x8291, - 44396 - 44032: 0xB1B8, - 44397 - 44032: 0xB1B9, - 44398 - 44032: 0x8292, - 44399 - 44032: 0x8293, - 44400 - 44032: 0xB1BA, - 44401 - 44032: 0x8294, - 44402 - 44032: 0x8295, - 44403 - 44032: 0xB1BB, - 44404 - 44032: 0xB1BC, - 44405 - 44032: 0xB1BD, - 44406 - 44032: 0xB1BE, - 44407 - 44032: 0x8296, - 44408 - 44032: 0x8297, - 44409 - 44032: 0x8298, - 44410 - 44032: 0x8299, - 44411 - 44032: 0xB1BF, - 44412 - 44032: 0xB1C0, - 44413 - 44032: 0xB1C1, - 44414 - 44032: 0x829A, - 44415 - 44032: 0xB1C2, - 44416 - 44032: 0x829B, - 44417 - 44032: 0xB1C3, - 44418 - 44032: 0xB1C4, - 44419 - 44032: 0x829C, - 44420 - 44032: 0x829D, - 44421 - 44032: 0x829E, - 44422 - 44032: 0x829F, - 44423 - 44032: 0x82A0, - 44424 - 44032: 0xB1C5, - 44425 - 44032: 0xB1C6, - 44426 - 44032: 0x82A1, - 44427 - 44032: 0x82A2, - 44428 - 44032: 0xB1C7, - 44429 - 44032: 0x82A3, - 44430 - 44032: 0x82A4, - 44431 - 44032: 0x82A5, - 44432 - 44032: 0xB1C8, - 44433 - 44032: 0x82A6, - 44434 - 44032: 0x82A7, - 44435 - 44032: 0x82A8, - 44436 - 44032: 0x82A9, - 44437 - 44032: 0x82AA, - 44438 - 44032: 0x82AB, - 44439 - 44032: 0x82AC, - 44440 - 44032: 0x82AD, - 44441 - 44032: 0x82AE, - 44442 - 44032: 0x82AF, - 44443 - 44032: 0x82B0, - 44444 - 44032: 0xB1C9, - 44445 - 44032: 0xB1CA, - 44446 - 44032: 0x82B1, - 44447 - 44032: 0x82B2, - 44448 - 44032: 0x82B3, - 44449 - 44032: 0x82B4, - 44450 - 44032: 0x82B5, - 44451 - 44032: 0x82B6, - 44452 - 44032: 0xB1CB, - 44453 - 44032: 0x82B7, - 44454 - 44032: 0x82B8, - 44455 - 44032: 0x82B9, - 44456 - 44032: 0x82BA, - 44457 - 44032: 0x82BB, - 44458 - 44032: 0x82BC, - 44459 - 44032: 0x82BD, - 44460 - 44032: 0x82BE, - 44461 - 44032: 0x82BF, - 44462 - 44032: 0x82C0, - 44463 - 44032: 0x82C1, - 44464 - 44032: 0x82C2, - 44465 - 44032: 0x82C3, - 44466 - 44032: 0x82C4, - 44467 - 44032: 0x82C5, - 44468 - 44032: 0x82C6, - 44469 - 44032: 0x82C7, - 44470 - 44032: 0x82C8, - 44471 - 44032: 0xB1CC, - 44472 - 44032: 0x82C9, - 44473 - 44032: 0x82CA, - 44474 - 44032: 0x82CB, - 44475 - 44032: 0x82CC, - 44476 - 44032: 0x82CD, - 44477 - 44032: 0x82CE, - 44478 - 44032: 0x82CF, - 44479 - 44032: 0x82D0, - 44480 - 44032: 0xB1CD, - 44481 - 44032: 0xB1CE, - 44482 - 44032: 0x82D1, - 44483 - 44032: 0x82D2, - 44484 - 44032: 0xB1CF, - 44485 - 44032: 0x82D3, - 44486 - 44032: 0x82D4, - 44487 - 44032: 0x82D5, - 44488 - 44032: 0xB1D0, - 44489 - 44032: 0x82D6, - 44490 - 44032: 0x82D7, - 44491 - 44032: 0x82D8, - 44492 - 44032: 0x82D9, - 44493 - 44032: 0x82DA, - 44494 - 44032: 0x82DB, - 44495 - 44032: 0x82DC, - 44496 - 44032: 0xB1D1, - 44497 - 44032: 0xB1D2, - 44498 - 44032: 0x82DD, - 44499 - 44032: 0xB1D3, - 44500 - 44032: 0x82DE, - 44501 - 44032: 0x82DF, - 44502 - 44032: 0x82E0, - 44503 - 44032: 0x82E1, - 44504 - 44032: 0x82E2, - 44505 - 44032: 0x82E3, - 44506 - 44032: 0x82E4, - 44507 - 44032: 0x82E5, - 44508 - 44032: 0xB1D4, - 44509 - 44032: 0x82E6, - 44510 - 44032: 0x82E7, - 44511 - 44032: 0x82E8, - 44512 - 44032: 0xB1D5, - 44513 - 44032: 0x82E9, - 44514 - 44032: 0x82EA, - 44515 - 44032: 0x82EB, - 44516 - 44032: 0xB1D6, - 44517 - 44032: 0x82EC, - 44518 - 44032: 0x82ED, - 44519 - 44032: 0x82EE, - 44520 - 44032: 0x82EF, - 44521 - 44032: 0x82F0, - 44522 - 44032: 0x82F1, - 44523 - 44032: 0x82F2, - 44524 - 44032: 0x82F3, - 44525 - 44032: 0x82F4, - 44526 - 44032: 0x82F5, - 44527 - 44032: 0x82F6, - 44528 - 44032: 0x82F7, - 44529 - 44032: 0x82F8, - 44530 - 44032: 0x82F9, - 44531 - 44032: 0x82FA, - 44532 - 44032: 0x82FB, - 44533 - 44032: 0x82FC, - 44534 - 44032: 0x82FD, - 44535 - 44032: 0x82FE, - 44536 - 44032: 0xB1D7, - 44537 - 44032: 0xB1D8, - 44538 - 44032: 0x8341, - 44539 - 44032: 0x8342, - 44540 - 44032: 0xB1D9, - 44541 - 44032: 0x8343, - 44542 - 44032: 0x8344, - 44543 - 44032: 0xB1DA, - 44544 - 44032: 0xB1DB, - 44545 - 44032: 0xB1DC, - 44546 - 44032: 0x8345, - 44547 - 44032: 0x8346, - 44548 - 44032: 0x8347, - 44549 - 44032: 0x8348, - 44550 - 44032: 0x8349, - 44551 - 44032: 0x834A, - 44552 - 44032: 0xB1DD, - 44553 - 44032: 0xB1DE, - 44554 - 44032: 0x834B, - 44555 - 44032: 0xB1DF, - 44556 - 44032: 0x834C, - 44557 - 44032: 0xB1E0, - 44558 - 44032: 0x834D, - 44559 - 44032: 0x834E, - 44560 - 44032: 0x834F, - 44561 - 44032: 0x8350, - 44562 - 44032: 0x8351, - 44563 - 44032: 0x8352, - 44564 - 44032: 0xB1E1, - 44565 - 44032: 0x8353, - 44566 - 44032: 0x8354, - 44567 - 44032: 0x8355, - 44568 - 44032: 0x8356, - 44569 - 44032: 0x8357, - 44570 - 44032: 0x8358, - 44571 - 44032: 0x8359, - 44572 - 44032: 0x835A, - 44573 - 44032: 0x8361, - 44574 - 44032: 0x8362, - 44575 - 44032: 0x8363, - 44576 - 44032: 0x8364, - 44577 - 44032: 0x8365, - 44578 - 44032: 0x8366, - 44579 - 44032: 0x8367, - 44580 - 44032: 0x8368, - 44581 - 44032: 0x8369, - 44582 - 44032: 0x836A, - 44583 - 44032: 0x836B, - 44584 - 44032: 0x836C, - 44585 - 44032: 0x836D, - 44586 - 44032: 0x836E, - 44587 - 44032: 0x836F, - 44588 - 44032: 0x8370, - 44589 - 44032: 0x8371, - 44590 - 44032: 0x8372, - 44591 - 44032: 0x8373, - 44592 - 44032: 0xB1E2, - 44593 - 44032: 0xB1E3, - 44594 - 44032: 0x8374, - 44595 - 44032: 0x8375, - 44596 - 44032: 0xB1E4, - 44597 - 44032: 0x8376, - 44598 - 44032: 0x8377, - 44599 - 44032: 0xB1E5, - 44600 - 44032: 0xB1E6, - 44601 - 44032: 0x8378, - 44602 - 44032: 0xB1E7, - 44603 - 44032: 0x8379, - 44604 - 44032: 0x837A, - 44605 - 44032: 0x8381, - 44606 - 44032: 0x8382, - 44607 - 44032: 0x8383, - 44608 - 44032: 0xB1E8, - 44609 - 44032: 0xB1E9, - 44610 - 44032: 0x8384, - 44611 - 44032: 0xB1EA, - 44612 - 44032: 0x8385, - 44613 - 44032: 0xB1EB, - 44614 - 44032: 0xB1EC, - 44615 - 44032: 0x8386, - 44616 - 44032: 0x8387, - 44617 - 44032: 0x8388, - 44618 - 44032: 0xB1ED, - 44619 - 44032: 0x8389, - 44620 - 44032: 0xB1EE, - 44621 - 44032: 0xB1EF, - 44622 - 44032: 0xB1F0, - 44623 - 44032: 0x838A, - 44624 - 44032: 0xB1F1, - 44625 - 44032: 0x838B, - 44626 - 44032: 0x838C, - 44627 - 44032: 0x838D, - 44628 - 44032: 0xB1F2, - 44629 - 44032: 0x838E, - 44630 - 44032: 0xB1F3, - 44631 - 44032: 0x838F, - 44632 - 44032: 0x8390, - 44633 - 44032: 0x8391, - 44634 - 44032: 0x8392, - 44635 - 44032: 0x8393, - 44636 - 44032: 0xB1F4, - 44637 - 44032: 0xB1F5, - 44638 - 44032: 0x8394, - 44639 - 44032: 0xB1F6, - 44640 - 44032: 0xB1F7, - 44641 - 44032: 0xB1F8, - 44642 - 44032: 0x8395, - 44643 - 44032: 0x8396, - 44644 - 44032: 0x8397, - 44645 - 44032: 0xB1F9, - 44646 - 44032: 0x8398, - 44647 - 44032: 0x8399, - 44648 - 44032: 0xB1FA, - 44649 - 44032: 0xB1FB, - 44650 - 44032: 0x839A, - 44651 - 44032: 0x839B, - 44652 - 44032: 0xB1FC, - 44653 - 44032: 0x839C, - 44654 - 44032: 0x839D, - 44655 - 44032: 0x839E, - 44656 - 44032: 0xB1FD, - 44657 - 44032: 0x839F, - 44658 - 44032: 0x83A0, - 44659 - 44032: 0x83A1, - 44660 - 44032: 0x83A2, - 44661 - 44032: 0x83A3, - 44662 - 44032: 0x83A4, - 44663 - 44032: 0x83A5, - 44664 - 44032: 0xB1FE, - 44665 - 44032: 0xB2A1, - 44666 - 44032: 0x83A6, - 44667 - 44032: 0xB2A2, - 44668 - 44032: 0xB2A3, - 44669 - 44032: 0xB2A4, - 44670 - 44032: 0x83A7, - 44671 - 44032: 0x83A8, - 44672 - 44032: 0x83A9, - 44673 - 44032: 0x83AA, - 44674 - 44032: 0x83AB, - 44675 - 44032: 0x83AC, - 44676 - 44032: 0xB2A5, - 44677 - 44032: 0xB2A6, - 44678 - 44032: 0x83AD, - 44679 - 44032: 0x83AE, - 44680 - 44032: 0x83AF, - 44681 - 44032: 0x83B0, - 44682 - 44032: 0x83B1, - 44683 - 44032: 0x83B2, - 44684 - 44032: 0xB2A7, - 44685 - 44032: 0x83B3, - 44686 - 44032: 0x83B4, - 44687 - 44032: 0x83B5, - 44688 - 44032: 0x83B6, - 44689 - 44032: 0x83B7, - 44690 - 44032: 0x83B8, - 44691 - 44032: 0x83B9, - 44692 - 44032: 0x83BA, - 44693 - 44032: 0x83BB, - 44694 - 44032: 0x83BC, - 44695 - 44032: 0x83BD, - 44696 - 44032: 0x83BE, - 44697 - 44032: 0x83BF, - 44698 - 44032: 0x83C0, - 44699 - 44032: 0x83C1, - 44700 - 44032: 0x83C2, - 44701 - 44032: 0x83C3, - 44702 - 44032: 0x83C4, - 44703 - 44032: 0x83C5, - 44704 - 44032: 0x83C6, - 44705 - 44032: 0x83C7, - 44706 - 44032: 0x83C8, - 44707 - 44032: 0x83C9, - 44708 - 44032: 0x83CA, - 44709 - 44032: 0x83CB, - 44710 - 44032: 0x83CC, - 44711 - 44032: 0x83CD, - 44712 - 44032: 0x83CE, - 44713 - 44032: 0x83CF, - 44714 - 44032: 0x83D0, - 44715 - 44032: 0x83D1, - 44716 - 44032: 0x83D2, - 44717 - 44032: 0x83D3, - 44718 - 44032: 0x83D4, - 44719 - 44032: 0x83D5, - 44720 - 44032: 0x83D6, - 44721 - 44032: 0x83D7, - 44722 - 44032: 0x83D8, - 44723 - 44032: 0x83D9, - 44724 - 44032: 0x83DA, - 44725 - 44032: 0x83DB, - 44726 - 44032: 0x83DC, - 44727 - 44032: 0x83DD, - 44728 - 44032: 0x83DE, - 44729 - 44032: 0x83DF, - 44730 - 44032: 0x83E0, - 44731 - 44032: 0x83E1, - 44732 - 44032: 0xB2A8, - 44733 - 44032: 0xB2A9, - 44734 - 44032: 0xB2AA, - 44735 - 44032: 0x83E2, - 44736 - 44032: 0xB2AB, - 44737 - 44032: 0x83E3, - 44738 - 44032: 0x83E4, - 44739 - 44032: 0x83E5, - 44740 - 44032: 0xB2AC, - 44741 - 44032: 0x83E6, - 44742 - 44032: 0x83E7, - 44743 - 44032: 0x83E8, - 44744 - 44032: 0x83E9, - 44745 - 44032: 0x83EA, - 44746 - 44032: 0x83EB, - 44747 - 44032: 0x83EC, - 44748 - 44032: 0xB2AD, - 44749 - 44032: 0xB2AE, - 44750 - 44032: 0x83ED, - 44751 - 44032: 0xB2AF, - 44752 - 44032: 0xB2B0, - 44753 - 44032: 0xB2B1, - 44754 - 44032: 0x83EE, - 44755 - 44032: 0x83EF, - 44756 - 44032: 0x83F0, - 44757 - 44032: 0x83F1, - 44758 - 44032: 0x83F2, - 44759 - 44032: 0x83F3, - 44760 - 44032: 0xB2B2, - 44761 - 44032: 0xB2B3, - 44762 - 44032: 0x83F4, - 44763 - 44032: 0x83F5, - 44764 - 44032: 0xB2B4, - 44765 - 44032: 0x83F6, - 44766 - 44032: 0x83F7, - 44767 - 44032: 0x83F8, - 44768 - 44032: 0x83F9, - 44769 - 44032: 0x83FA, - 44770 - 44032: 0x83FB, - 44771 - 44032: 0x83FC, - 44772 - 44032: 0x83FD, - 44773 - 44032: 0x83FE, - 44774 - 44032: 0x8441, - 44775 - 44032: 0x8442, - 44776 - 44032: 0xB2B5, - 44777 - 44032: 0x8443, - 44778 - 44032: 0x8444, - 44779 - 44032: 0xB2B6, - 44780 - 44032: 0x8445, - 44781 - 44032: 0xB2B7, - 44782 - 44032: 0x8446, - 44783 - 44032: 0x8447, - 44784 - 44032: 0x8448, - 44785 - 44032: 0x8449, - 44786 - 44032: 0x844A, - 44787 - 44032: 0x844B, - 44788 - 44032: 0xB2B8, - 44789 - 44032: 0x844C, - 44790 - 44032: 0x844D, - 44791 - 44032: 0x844E, - 44792 - 44032: 0xB2B9, - 44793 - 44032: 0x844F, - 44794 - 44032: 0x8450, - 44795 - 44032: 0x8451, - 44796 - 44032: 0xB2BA, - 44797 - 44032: 0x8452, - 44798 - 44032: 0x8453, - 44799 - 44032: 0x8454, - 44800 - 44032: 0x8455, - 44801 - 44032: 0x8456, - 44802 - 44032: 0x8457, - 44803 - 44032: 0x8458, - 44804 - 44032: 0x8459, - 44805 - 44032: 0x845A, - 44806 - 44032: 0x8461, - 44807 - 44032: 0xB2BB, - 44808 - 44032: 0xB2BC, - 44809 - 44032: 0x8462, - 44810 - 44032: 0x8463, - 44811 - 44032: 0x8464, - 44812 - 44032: 0x8465, - 44813 - 44032: 0xB2BD, - 44814 - 44032: 0x8466, - 44815 - 44032: 0x8467, - 44816 - 44032: 0xB2BE, - 44817 - 44032: 0x8468, - 44818 - 44032: 0x8469, - 44819 - 44032: 0x846A, - 44820 - 44032: 0x846B, - 44821 - 44032: 0x846C, - 44822 - 44032: 0x846D, - 44823 - 44032: 0x846E, - 44824 - 44032: 0x846F, - 44825 - 44032: 0x8470, - 44826 - 44032: 0x8471, - 44827 - 44032: 0x8472, - 44828 - 44032: 0x8473, - 44829 - 44032: 0x8474, - 44830 - 44032: 0x8475, - 44831 - 44032: 0x8476, - 44832 - 44032: 0x8477, - 44833 - 44032: 0x8478, - 44834 - 44032: 0x8479, - 44835 - 44032: 0x847A, - 44836 - 44032: 0x8481, - 44837 - 44032: 0x8482, - 44838 - 44032: 0x8483, - 44839 - 44032: 0x8484, - 44840 - 44032: 0x8485, - 44841 - 44032: 0x8486, - 44842 - 44032: 0x8487, - 44843 - 44032: 0x8488, - 44844 - 44032: 0xB2BF, - 44845 - 44032: 0xB2C0, - 44846 - 44032: 0x8489, - 44847 - 44032: 0x848A, - 44848 - 44032: 0xB2C1, - 44849 - 44032: 0x848B, - 44850 - 44032: 0xB2C2, - 44851 - 44032: 0x848C, - 44852 - 44032: 0xB2C3, - 44853 - 44032: 0x848D, - 44854 - 44032: 0x848E, - 44855 - 44032: 0x848F, - 44856 - 44032: 0x8490, - 44857 - 44032: 0x8491, - 44858 - 44032: 0x8492, - 44859 - 44032: 0x8493, - 44860 - 44032: 0xB2C4, - 44861 - 44032: 0xB2C5, - 44862 - 44032: 0x8494, - 44863 - 44032: 0xB2C6, - 44864 - 44032: 0x8495, - 44865 - 44032: 0xB2C7, - 44866 - 44032: 0xB2C8, - 44867 - 44032: 0xB2C9, - 44868 - 44032: 0x8496, - 44869 - 44032: 0x8497, - 44870 - 44032: 0x8498, - 44871 - 44032: 0x8499, - 44872 - 44032: 0xB2CA, - 44873 - 44032: 0xB2CB, - 44874 - 44032: 0x849A, - 44875 - 44032: 0x849B, - 44876 - 44032: 0x849C, - 44877 - 44032: 0x849D, - 44878 - 44032: 0x849E, - 44879 - 44032: 0x849F, - 44880 - 44032: 0xB2CC, - 44881 - 44032: 0x84A0, - 44882 - 44032: 0x84A1, - 44883 - 44032: 0x84A2, - 44884 - 44032: 0x84A3, - 44885 - 44032: 0x84A4, - 44886 - 44032: 0x84A5, - 44887 - 44032: 0x84A6, - 44888 - 44032: 0x84A7, - 44889 - 44032: 0x84A8, - 44890 - 44032: 0x84A9, - 44891 - 44032: 0x84AA, - 44892 - 44032: 0xB2CD, - 44893 - 44032: 0xB2CE, - 44894 - 44032: 0x84AB, - 44895 - 44032: 0x84AC, - 44896 - 44032: 0x84AD, - 44897 - 44032: 0x84AE, - 44898 - 44032: 0x84AF, - 44899 - 44032: 0x84B0, - 44900 - 44032: 0xB2CF, - 44901 - 44032: 0xB2D0, - 44902 - 44032: 0x84B1, - 44903 - 44032: 0x84B2, - 44904 - 44032: 0x84B3, - 44905 - 44032: 0x84B4, - 44906 - 44032: 0x84B5, - 44907 - 44032: 0x84B6, - 44908 - 44032: 0x84B7, - 44909 - 44032: 0x84B8, - 44910 - 44032: 0x84B9, - 44911 - 44032: 0x84BA, - 44912 - 44032: 0x84BB, - 44913 - 44032: 0x84BC, - 44914 - 44032: 0x84BD, - 44915 - 44032: 0x84BE, - 44916 - 44032: 0x84BF, - 44917 - 44032: 0x84C0, - 44918 - 44032: 0x84C1, - 44919 - 44032: 0x84C2, - 44920 - 44032: 0x84C3, - 44921 - 44032: 0xB2D1, - 44922 - 44032: 0x84C4, - 44923 - 44032: 0x84C5, - 44924 - 44032: 0x84C6, - 44925 - 44032: 0x84C7, - 44926 - 44032: 0x84C8, - 44927 - 44032: 0x84C9, - 44928 - 44032: 0xB2D2, - 44929 - 44032: 0x84CA, - 44930 - 44032: 0x84CB, - 44931 - 44032: 0x84CC, - 44932 - 44032: 0xB2D3, - 44933 - 44032: 0x84CD, - 44934 - 44032: 0x84CE, - 44935 - 44032: 0x84CF, - 44936 - 44032: 0xB2D4, - 44937 - 44032: 0x84D0, - 44938 - 44032: 0x84D1, - 44939 - 44032: 0x84D2, - 44940 - 44032: 0x84D3, - 44941 - 44032: 0x84D4, - 44942 - 44032: 0x84D5, - 44943 - 44032: 0x84D6, - 44944 - 44032: 0xB2D5, - 44945 - 44032: 0xB2D6, - 44946 - 44032: 0x84D7, - 44947 - 44032: 0x84D8, - 44948 - 44032: 0x84D9, - 44949 - 44032: 0xB2D7, - 44950 - 44032: 0x84DA, - 44951 - 44032: 0x84DB, - 44952 - 44032: 0x84DC, - 44953 - 44032: 0x84DD, - 44954 - 44032: 0x84DE, - 44955 - 44032: 0x84DF, - 44956 - 44032: 0xB2D8, - 44957 - 44032: 0x84E0, - 44958 - 44032: 0x84E1, - 44959 - 44032: 0x84E2, - 44960 - 44032: 0x84E3, - 44961 - 44032: 0x84E4, - 44962 - 44032: 0x84E5, - 44963 - 44032: 0x84E6, - 44964 - 44032: 0x84E7, - 44965 - 44032: 0x84E8, - 44966 - 44032: 0x84E9, - 44967 - 44032: 0x84EA, - 44968 - 44032: 0x84EB, - 44969 - 44032: 0x84EC, - 44970 - 44032: 0x84ED, - 44971 - 44032: 0x84EE, - 44972 - 44032: 0x84EF, - 44973 - 44032: 0x84F0, - 44974 - 44032: 0x84F1, - 44975 - 44032: 0x84F2, - 44976 - 44032: 0x84F3, - 44977 - 44032: 0x84F4, - 44978 - 44032: 0x84F5, - 44979 - 44032: 0x84F6, - 44980 - 44032: 0x84F7, - 44981 - 44032: 0x84F8, - 44982 - 44032: 0x84F9, - 44983 - 44032: 0x84FA, - 44984 - 44032: 0xB2D9, - 44985 - 44032: 0xB2DA, - 44986 - 44032: 0x84FB, - 44987 - 44032: 0x84FC, - 44988 - 44032: 0xB2DB, - 44989 - 44032: 0x84FD, - 44990 - 44032: 0x84FE, - 44991 - 44032: 0x8541, - 44992 - 44032: 0xB2DC, - 44993 - 44032: 0x8542, - 44994 - 44032: 0x8543, - 44995 - 44032: 0x8544, - 44996 - 44032: 0x8545, - 44997 - 44032: 0x8546, - 44998 - 44032: 0x8547, - 44999 - 44032: 0xB2DD, - 45000 - 44032: 0xB2DE, - 45001 - 44032: 0xB2DF, - 45002 - 44032: 0x8548, - 45003 - 44032: 0xB2E0, - 45004 - 44032: 0x8549, - 45005 - 44032: 0xB2E1, - 45006 - 44032: 0xB2E2, - 45007 - 44032: 0x854A, - 45008 - 44032: 0x854B, - 45009 - 44032: 0x854C, - 45010 - 44032: 0x854D, - 45011 - 44032: 0x854E, - 45012 - 44032: 0xB2E3, - 45013 - 44032: 0x854F, - 45014 - 44032: 0x8550, - 45015 - 44032: 0x8551, - 45016 - 44032: 0x8552, - 45017 - 44032: 0x8553, - 45018 - 44032: 0x8554, - 45019 - 44032: 0x8555, - 45020 - 44032: 0xB2E4, - 45021 - 44032: 0x8556, - 45022 - 44032: 0x8557, - 45023 - 44032: 0x8558, - 45024 - 44032: 0x8559, - 45025 - 44032: 0x855A, - 45026 - 44032: 0x8561, - 45027 - 44032: 0x8562, - 45028 - 44032: 0x8563, - 45029 - 44032: 0x8564, - 45030 - 44032: 0x8565, - 45031 - 44032: 0x8566, - 45032 - 44032: 0xB2E5, - 45033 - 44032: 0xB2E6, - 45034 - 44032: 0x8567, - 45035 - 44032: 0x8568, - 45036 - 44032: 0x8569, - 45037 - 44032: 0x856A, - 45038 - 44032: 0x856B, - 45039 - 44032: 0x856C, - 45040 - 44032: 0xB2E7, - 45041 - 44032: 0xB2E8, - 45042 - 44032: 0x856D, - 45043 - 44032: 0x856E, - 45044 - 44032: 0xB2E9, - 45045 - 44032: 0x856F, - 45046 - 44032: 0x8570, - 45047 - 44032: 0x8571, - 45048 - 44032: 0xB2EA, - 45049 - 44032: 0x8572, - 45050 - 44032: 0x8573, - 45051 - 44032: 0x8574, - 45052 - 44032: 0x8575, - 45053 - 44032: 0x8576, - 45054 - 44032: 0x8577, - 45055 - 44032: 0x8578, - 45056 - 44032: 0xB2EB, - 45057 - 44032: 0xB2EC, - 45058 - 44032: 0x8579, - 45059 - 44032: 0x857A, - 45060 - 44032: 0xB2ED, - 45061 - 44032: 0x8581, - 45062 - 44032: 0x8582, - 45063 - 44032: 0x8583, - 45064 - 44032: 0x8584, - 45065 - 44032: 0x8585, - 45066 - 44032: 0x8586, - 45067 - 44032: 0x8587, - 45068 - 44032: 0xB2EE, - 45069 - 44032: 0x8588, - 45070 - 44032: 0x8589, - 45071 - 44032: 0x858A, - 45072 - 44032: 0xB2EF, - 45073 - 44032: 0x858B, - 45074 - 44032: 0x858C, - 45075 - 44032: 0x858D, - 45076 - 44032: 0xB2F0, - 45077 - 44032: 0x858E, - 45078 - 44032: 0x858F, - 45079 - 44032: 0x8590, - 45080 - 44032: 0x8591, - 45081 - 44032: 0x8592, - 45082 - 44032: 0x8593, - 45083 - 44032: 0x8594, - 45084 - 44032: 0xB2F1, - 45085 - 44032: 0xB2F2, - 45086 - 44032: 0x8595, - 45087 - 44032: 0x8596, - 45088 - 44032: 0x8597, - 45089 - 44032: 0x8598, - 45090 - 44032: 0x8599, - 45091 - 44032: 0x859A, - 45092 - 44032: 0x859B, - 45093 - 44032: 0x859C, - 45094 - 44032: 0x859D, - 45095 - 44032: 0x859E, - 45096 - 44032: 0xB2F3, - 45097 - 44032: 0x859F, - 45098 - 44032: 0x85A0, - 45099 - 44032: 0x85A1, - 45100 - 44032: 0x85A2, - 45101 - 44032: 0x85A3, - 45102 - 44032: 0x85A4, - 45103 - 44032: 0x85A5, - 45104 - 44032: 0x85A6, - 45105 - 44032: 0x85A7, - 45106 - 44032: 0x85A8, - 45107 - 44032: 0x85A9, - 45108 - 44032: 0x85AA, - 45109 - 44032: 0x85AB, - 45110 - 44032: 0x85AC, - 45111 - 44032: 0x85AD, - 45112 - 44032: 0x85AE, - 45113 - 44032: 0x85AF, - 45114 - 44032: 0x85B0, - 45115 - 44032: 0x85B1, - 45116 - 44032: 0x85B2, - 45117 - 44032: 0x85B3, - 45118 - 44032: 0x85B4, - 45119 - 44032: 0x85B5, - 45120 - 44032: 0x85B6, - 45121 - 44032: 0x85B7, - 45122 - 44032: 0x85B8, - 45123 - 44032: 0x85B9, - 45124 - 44032: 0xB2F4, - 45125 - 44032: 0xB2F5, - 45126 - 44032: 0x85BA, - 45127 - 44032: 0x85BB, - 45128 - 44032: 0xB2F6, - 45129 - 44032: 0x85BC, - 45130 - 44032: 0xB2F7, - 45131 - 44032: 0x85BD, - 45132 - 44032: 0xB2F8, - 45133 - 44032: 0x85BE, - 45134 - 44032: 0xB2F9, - 45135 - 44032: 0x85BF, - 45136 - 44032: 0x85C0, - 45137 - 44032: 0x85C1, - 45138 - 44032: 0x85C2, - 45139 - 44032: 0xB2FA, - 45140 - 44032: 0xB2FB, - 45141 - 44032: 0xB2FC, - 45142 - 44032: 0x85C3, - 45143 - 44032: 0xB2FD, - 45144 - 44032: 0x85C4, - 45145 - 44032: 0xB2FE, - 45146 - 44032: 0x85C5, - 45147 - 44032: 0x85C6, - 45148 - 44032: 0x85C7, - 45149 - 44032: 0xB3A1, - 45150 - 44032: 0x85C8, - 45151 - 44032: 0x85C9, - 45152 - 44032: 0x85CA, - 45153 - 44032: 0x85CB, - 45154 - 44032: 0x85CC, - 45155 - 44032: 0x85CD, - 45156 - 44032: 0x85CE, - 45157 - 44032: 0x85CF, - 45158 - 44032: 0x85D0, - 45159 - 44032: 0x85D1, - 45160 - 44032: 0x85D2, - 45161 - 44032: 0x85D3, - 45162 - 44032: 0x85D4, - 45163 - 44032: 0x85D5, - 45164 - 44032: 0x85D6, - 45165 - 44032: 0x85D7, - 45166 - 44032: 0x85D8, - 45167 - 44032: 0x85D9, - 45168 - 44032: 0x85DA, - 45169 - 44032: 0x85DB, - 45170 - 44032: 0x85DC, - 45171 - 44032: 0x85DD, - 45172 - 44032: 0x85DE, - 45173 - 44032: 0x85DF, - 45174 - 44032: 0x85E0, - 45175 - 44032: 0x85E1, - 45176 - 44032: 0x85E2, - 45177 - 44032: 0x85E3, - 45178 - 44032: 0x85E4, - 45179 - 44032: 0x85E5, - 45180 - 44032: 0xB3A2, - 45181 - 44032: 0xB3A3, - 45182 - 44032: 0x85E6, - 45183 - 44032: 0x85E7, - 45184 - 44032: 0xB3A4, - 45185 - 44032: 0x85E8, - 45186 - 44032: 0x85E9, - 45187 - 44032: 0x85EA, - 45188 - 44032: 0xB3A5, - 45189 - 44032: 0x85EB, - 45190 - 44032: 0x85EC, - 45191 - 44032: 0x85ED, - 45192 - 44032: 0x85EE, - 45193 - 44032: 0x85EF, - 45194 - 44032: 0x85F0, - 45195 - 44032: 0x85F1, - 45196 - 44032: 0xB3A6, - 45197 - 44032: 0xB3A7, - 45198 - 44032: 0x85F2, - 45199 - 44032: 0xB3A8, - 45200 - 44032: 0x85F3, - 45201 - 44032: 0xB3A9, - 45202 - 44032: 0x85F4, - 45203 - 44032: 0x85F5, - 45204 - 44032: 0x85F6, - 45205 - 44032: 0x85F7, - 45206 - 44032: 0x85F8, - 45207 - 44032: 0x85F9, - 45208 - 44032: 0xB3AA, - 45209 - 44032: 0xB3AB, - 45210 - 44032: 0xB3AC, - 45211 - 44032: 0x85FA, - 45212 - 44032: 0xB3AD, - 45213 - 44032: 0x85FB, - 45214 - 44032: 0x85FC, - 45215 - 44032: 0xB3AE, - 45216 - 44032: 0xB3AF, - 45217 - 44032: 0xB3B0, - 45218 - 44032: 0xB3B1, - 45219 - 44032: 0x85FD, - 45220 - 44032: 0x85FE, - 45221 - 44032: 0x8641, - 45222 - 44032: 0x8642, - 45223 - 44032: 0x8643, - 45224 - 44032: 0xB3B2, - 45225 - 44032: 0xB3B3, - 45226 - 44032: 0x8644, - 45227 - 44032: 0xB3B4, - 45228 - 44032: 0xB3B5, - 45229 - 44032: 0xB3B6, - 45230 - 44032: 0xB3B7, - 45231 - 44032: 0xB3B8, - 45232 - 44032: 0x8645, - 45233 - 44032: 0xB3B9, - 45234 - 44032: 0x8646, - 45235 - 44032: 0xB3BA, - 45236 - 44032: 0xB3BB, - 45237 - 44032: 0xB3BC, - 45238 - 44032: 0x8647, - 45239 - 44032: 0x8648, - 45240 - 44032: 0xB3BD, - 45241 - 44032: 0x8649, - 45242 - 44032: 0x864A, - 45243 - 44032: 0x864B, - 45244 - 44032: 0xB3BE, - 45245 - 44032: 0x864C, - 45246 - 44032: 0x864D, - 45247 - 44032: 0x864E, - 45248 - 44032: 0x864F, - 45249 - 44032: 0x8650, - 45250 - 44032: 0x8651, - 45251 - 44032: 0x8652, - 45252 - 44032: 0xB3BF, - 45253 - 44032: 0xB3C0, - 45254 - 44032: 0x8653, - 45255 - 44032: 0xB3C1, - 45256 - 44032: 0xB3C2, - 45257 - 44032: 0xB3C3, - 45258 - 44032: 0x8654, - 45259 - 44032: 0x8655, - 45260 - 44032: 0x8656, - 45261 - 44032: 0x8657, - 45262 - 44032: 0x8658, - 45263 - 44032: 0x8659, - 45264 - 44032: 0xB3C4, - 45265 - 44032: 0xB3C5, - 45266 - 44032: 0x865A, - 45267 - 44032: 0x8661, - 45268 - 44032: 0xB3C6, - 45269 - 44032: 0x8662, - 45270 - 44032: 0x8663, - 45271 - 44032: 0x8664, - 45272 - 44032: 0xB3C7, - 45273 - 44032: 0x8665, - 45274 - 44032: 0x8666, - 45275 - 44032: 0x8667, - 45276 - 44032: 0x8668, - 45277 - 44032: 0x8669, - 45278 - 44032: 0x866A, - 45279 - 44032: 0x866B, - 45280 - 44032: 0xB3C8, - 45281 - 44032: 0x866C, - 45282 - 44032: 0x866D, - 45283 - 44032: 0x866E, - 45284 - 44032: 0x866F, - 45285 - 44032: 0xB3C9, - 45286 - 44032: 0x8670, - 45287 - 44032: 0x8671, - 45288 - 44032: 0x8672, - 45289 - 44032: 0x8673, - 45290 - 44032: 0x8674, - 45291 - 44032: 0x8675, - 45292 - 44032: 0x8676, - 45293 - 44032: 0x8677, - 45294 - 44032: 0x8678, - 45295 - 44032: 0x8679, - 45296 - 44032: 0x867A, - 45297 - 44032: 0x8681, - 45298 - 44032: 0x8682, - 45299 - 44032: 0x8683, - 45300 - 44032: 0x8684, - 45301 - 44032: 0x8685, - 45302 - 44032: 0x8686, - 45303 - 44032: 0x8687, - 45304 - 44032: 0x8688, - 45305 - 44032: 0x8689, - 45306 - 44032: 0x868A, - 45307 - 44032: 0x868B, - 45308 - 44032: 0x868C, - 45309 - 44032: 0x868D, - 45310 - 44032: 0x868E, - 45311 - 44032: 0x868F, - 45312 - 44032: 0x8690, - 45313 - 44032: 0x8691, - 45314 - 44032: 0x8692, - 45315 - 44032: 0x8693, - 45316 - 44032: 0x8694, - 45317 - 44032: 0x8695, - 45318 - 44032: 0x8696, - 45319 - 44032: 0x8697, - 45320 - 44032: 0xB3CA, - 45321 - 44032: 0xB3CB, - 45322 - 44032: 0x8698, - 45323 - 44032: 0xB3CC, - 45324 - 44032: 0xB3CD, - 45325 - 44032: 0x8699, - 45326 - 44032: 0x869A, - 45327 - 44032: 0x869B, - 45328 - 44032: 0xB3CE, - 45329 - 44032: 0x869C, - 45330 - 44032: 0xB3CF, - 45331 - 44032: 0xB3D0, - 45332 - 44032: 0x869D, - 45333 - 44032: 0x869E, - 45334 - 44032: 0x869F, - 45335 - 44032: 0x86A0, - 45336 - 44032: 0xB3D1, - 45337 - 44032: 0xB3D2, - 45338 - 44032: 0x86A1, - 45339 - 44032: 0xB3D3, - 45340 - 44032: 0xB3D4, - 45341 - 44032: 0xB3D5, - 45342 - 44032: 0x86A2, - 45343 - 44032: 0x86A3, - 45344 - 44032: 0x86A4, - 45345 - 44032: 0x86A5, - 45346 - 44032: 0x86A6, - 45347 - 44032: 0xB3D6, - 45348 - 44032: 0xB3D7, - 45349 - 44032: 0xB3D8, - 45350 - 44032: 0x86A7, - 45351 - 44032: 0x86A8, - 45352 - 44032: 0xB3D9, - 45353 - 44032: 0x86A9, - 45354 - 44032: 0x86AA, - 45355 - 44032: 0x86AB, - 45356 - 44032: 0xB3DA, - 45357 - 44032: 0x86AC, - 45358 - 44032: 0x86AD, - 45359 - 44032: 0x86AE, - 45360 - 44032: 0x86AF, - 45361 - 44032: 0x86B0, - 45362 - 44032: 0x86B1, - 45363 - 44032: 0x86B2, - 45364 - 44032: 0xB3DB, - 45365 - 44032: 0xB3DC, - 45366 - 44032: 0x86B3, - 45367 - 44032: 0xB3DD, - 45368 - 44032: 0xB3DE, - 45369 - 44032: 0xB3DF, - 45370 - 44032: 0x86B4, - 45371 - 44032: 0x86B5, - 45372 - 44032: 0x86B6, - 45373 - 44032: 0x86B7, - 45374 - 44032: 0x86B8, - 45375 - 44032: 0x86B9, - 45376 - 44032: 0xB3E0, - 45377 - 44032: 0xB3E1, - 45378 - 44032: 0x86BA, - 45379 - 44032: 0x86BB, - 45380 - 44032: 0xB3E2, - 45381 - 44032: 0x86BC, - 45382 - 44032: 0x86BD, - 45383 - 44032: 0x86BE, - 45384 - 44032: 0xB3E3, - 45385 - 44032: 0x86BF, - 45386 - 44032: 0x86C0, - 45387 - 44032: 0x86C1, - 45388 - 44032: 0x86C2, - 45389 - 44032: 0x86C3, - 45390 - 44032: 0x86C4, - 45391 - 44032: 0x86C5, - 45392 - 44032: 0xB3E4, - 45393 - 44032: 0xB3E5, - 45394 - 44032: 0x86C6, - 45395 - 44032: 0x86C7, - 45396 - 44032: 0xB3E6, - 45397 - 44032: 0xB3E7, - 45398 - 44032: 0x86C8, - 45399 - 44032: 0x86C9, - 45400 - 44032: 0xB3E8, - 45401 - 44032: 0x86CA, - 45402 - 44032: 0x86CB, - 45403 - 44032: 0x86CC, - 45404 - 44032: 0xB3E9, - 45405 - 44032: 0x86CD, - 45406 - 44032: 0x86CE, - 45407 - 44032: 0x86CF, - 45408 - 44032: 0xB3EA, - 45409 - 44032: 0x86D0, - 45410 - 44032: 0x86D1, - 45411 - 44032: 0x86D2, - 45412 - 44032: 0x86D3, - 45413 - 44032: 0x86D4, - 45414 - 44032: 0x86D5, - 45415 - 44032: 0x86D6, - 45416 - 44032: 0x86D7, - 45417 - 44032: 0x86D8, - 45418 - 44032: 0x86D9, - 45419 - 44032: 0x86DA, - 45420 - 44032: 0x86DB, - 45421 - 44032: 0x86DC, - 45422 - 44032: 0x86DD, - 45423 - 44032: 0x86DE, - 45424 - 44032: 0x86DF, - 45425 - 44032: 0x86E0, - 45426 - 44032: 0x86E1, - 45427 - 44032: 0x86E2, - 45428 - 44032: 0x86E3, - 45429 - 44032: 0x86E4, - 45430 - 44032: 0x86E5, - 45431 - 44032: 0x86E6, - 45432 - 44032: 0xB3EB, - 45433 - 44032: 0xB3EC, - 45434 - 44032: 0x86E7, - 45435 - 44032: 0x86E8, - 45436 - 44032: 0xB3ED, - 45437 - 44032: 0x86E9, - 45438 - 44032: 0x86EA, - 45439 - 44032: 0x86EB, - 45440 - 44032: 0xB3EE, - 45441 - 44032: 0x86EC, - 45442 - 44032: 0xB3EF, - 45443 - 44032: 0x86ED, - 45444 - 44032: 0x86EE, - 45445 - 44032: 0x86EF, - 45446 - 44032: 0x86F0, - 45447 - 44032: 0x86F1, - 45448 - 44032: 0xB3F0, - 45449 - 44032: 0xB3F1, - 45450 - 44032: 0x86F2, - 45451 - 44032: 0xB3F2, - 45452 - 44032: 0x86F3, - 45453 - 44032: 0xB3F3, - 45454 - 44032: 0x86F4, - 45455 - 44032: 0x86F5, - 45456 - 44032: 0x86F6, - 45457 - 44032: 0x86F7, - 45458 - 44032: 0xB3F4, - 45459 - 44032: 0xB3F5, - 45460 - 44032: 0xB3F6, - 45461 - 44032: 0x86F8, - 45462 - 44032: 0x86F9, - 45463 - 44032: 0x86FA, - 45464 - 44032: 0xB3F7, - 45465 - 44032: 0x86FB, - 45466 - 44032: 0x86FC, - 45467 - 44032: 0x86FD, - 45468 - 44032: 0xB3F8, - 45469 - 44032: 0x86FE, - 45470 - 44032: 0x8741, - 45471 - 44032: 0x8742, - 45472 - 44032: 0x8743, - 45473 - 44032: 0x8744, - 45474 - 44032: 0x8745, - 45475 - 44032: 0x8746, - 45476 - 44032: 0x8747, - 45477 - 44032: 0x8748, - 45478 - 44032: 0x8749, - 45479 - 44032: 0x874A, - 45480 - 44032: 0xB3F9, - 45481 - 44032: 0x874B, - 45482 - 44032: 0x874C, - 45483 - 44032: 0x874D, - 45484 - 44032: 0x874E, - 45485 - 44032: 0x874F, - 45486 - 44032: 0x8750, - 45487 - 44032: 0x8751, - 45488 - 44032: 0x8752, - 45489 - 44032: 0x8753, - 45490 - 44032: 0x8754, - 45491 - 44032: 0x8755, - 45492 - 44032: 0x8756, - 45493 - 44032: 0x8757, - 45494 - 44032: 0x8758, - 45495 - 44032: 0x8759, - 45496 - 44032: 0x875A, - 45497 - 44032: 0x8761, - 45498 - 44032: 0x8762, - 45499 - 44032: 0x8763, - 45500 - 44032: 0x8764, - 45501 - 44032: 0x8765, - 45502 - 44032: 0x8766, - 45503 - 44032: 0x8767, - 45504 - 44032: 0x8768, - 45505 - 44032: 0x8769, - 45506 - 44032: 0x876A, - 45507 - 44032: 0x876B, - 45508 - 44032: 0x876C, - 45509 - 44032: 0x876D, - 45510 - 44032: 0x876E, - 45511 - 44032: 0x876F, - 45512 - 44032: 0x8770, - 45513 - 44032: 0x8771, - 45514 - 44032: 0x8772, - 45515 - 44032: 0x8773, - 45516 - 44032: 0xB3FA, - 45517 - 44032: 0x8774, - 45518 - 44032: 0x8775, - 45519 - 44032: 0x8776, - 45520 - 44032: 0xB3FB, - 45521 - 44032: 0x8777, - 45522 - 44032: 0x8778, - 45523 - 44032: 0x8779, - 45524 - 44032: 0xB3FC, - 45525 - 44032: 0x877A, - 45526 - 44032: 0x8781, - 45527 - 44032: 0x8782, - 45528 - 44032: 0x8783, - 45529 - 44032: 0x8784, - 45530 - 44032: 0x8785, - 45531 - 44032: 0x8786, - 45532 - 44032: 0xB3FD, - 45533 - 44032: 0xB3FE, - 45534 - 44032: 0x8787, - 45535 - 44032: 0xB4A1, - 45536 - 44032: 0x8788, - 45537 - 44032: 0x8789, - 45538 - 44032: 0x878A, - 45539 - 44032: 0x878B, - 45540 - 44032: 0x878C, - 45541 - 44032: 0x878D, - 45542 - 44032: 0x878E, - 45543 - 44032: 0x878F, - 45544 - 44032: 0xB4A2, - 45545 - 44032: 0xB4A3, - 45546 - 44032: 0x8790, - 45547 - 44032: 0x8791, - 45548 - 44032: 0xB4A4, - 45549 - 44032: 0x8792, - 45550 - 44032: 0x8793, - 45551 - 44032: 0x8794, - 45552 - 44032: 0xB4A5, - 45553 - 44032: 0x8795, - 45554 - 44032: 0x8796, - 45555 - 44032: 0x8797, - 45556 - 44032: 0x8798, - 45557 - 44032: 0x8799, - 45558 - 44032: 0x879A, - 45559 - 44032: 0x879B, - 45560 - 44032: 0x879C, - 45561 - 44032: 0xB4A6, - 45562 - 44032: 0x879D, - 45563 - 44032: 0xB4A7, - 45564 - 44032: 0x879E, - 45565 - 44032: 0xB4A8, - 45566 - 44032: 0x879F, - 45567 - 44032: 0x87A0, - 45568 - 44032: 0x87A1, - 45569 - 44032: 0x87A2, - 45570 - 44032: 0x87A3, - 45571 - 44032: 0x87A4, - 45572 - 44032: 0xB4A9, - 45573 - 44032: 0xB4AA, - 45574 - 44032: 0x87A5, - 45575 - 44032: 0x87A6, - 45576 - 44032: 0xB4AB, - 45577 - 44032: 0x87A7, - 45578 - 44032: 0x87A8, - 45579 - 44032: 0xB4AC, - 45580 - 44032: 0xB4AD, - 45581 - 44032: 0x87A9, - 45582 - 44032: 0x87AA, - 45583 - 44032: 0x87AB, - 45584 - 44032: 0x87AC, - 45585 - 44032: 0x87AD, - 45586 - 44032: 0x87AE, - 45587 - 44032: 0x87AF, - 45588 - 44032: 0xB4AE, - 45589 - 44032: 0xB4AF, - 45590 - 44032: 0x87B0, - 45591 - 44032: 0xB4B0, - 45592 - 44032: 0x87B1, - 45593 - 44032: 0xB4B1, - 45594 - 44032: 0x87B2, - 45595 - 44032: 0x87B3, - 45596 - 44032: 0x87B4, - 45597 - 44032: 0x87B5, - 45598 - 44032: 0x87B6, - 45599 - 44032: 0x87B7, - 45600 - 44032: 0xB4B2, - 45601 - 44032: 0x87B8, - 45602 - 44032: 0x87B9, - 45603 - 44032: 0x87BA, - 45604 - 44032: 0x87BB, - 45605 - 44032: 0x87BC, - 45606 - 44032: 0x87BD, - 45607 - 44032: 0x87BE, - 45608 - 44032: 0x87BF, - 45609 - 44032: 0x87C0, - 45610 - 44032: 0x87C1, - 45611 - 44032: 0x87C2, - 45612 - 44032: 0x87C3, - 45613 - 44032: 0x87C4, - 45614 - 44032: 0x87C5, - 45615 - 44032: 0x87C6, - 45616 - 44032: 0x87C7, - 45617 - 44032: 0x87C8, - 45618 - 44032: 0x87C9, - 45619 - 44032: 0x87CA, - 45620 - 44032: 0xB4B3, - 45621 - 44032: 0x87CB, - 45622 - 44032: 0x87CC, - 45623 - 44032: 0x87CD, - 45624 - 44032: 0x87CE, - 45625 - 44032: 0x87CF, - 45626 - 44032: 0x87D0, - 45627 - 44032: 0x87D1, - 45628 - 44032: 0xB4B4, - 45629 - 44032: 0x87D2, - 45630 - 44032: 0x87D3, - 45631 - 44032: 0x87D4, - 45632 - 44032: 0x87D5, - 45633 - 44032: 0x87D6, - 45634 - 44032: 0x87D7, - 45635 - 44032: 0x87D8, - 45636 - 44032: 0x87D9, - 45637 - 44032: 0x87DA, - 45638 - 44032: 0x87DB, - 45639 - 44032: 0x87DC, - 45640 - 44032: 0x87DD, - 45641 - 44032: 0x87DE, - 45642 - 44032: 0x87DF, - 45643 - 44032: 0x87E0, - 45644 - 44032: 0x87E1, - 45645 - 44032: 0x87E2, - 45646 - 44032: 0x87E3, - 45647 - 44032: 0x87E4, - 45648 - 44032: 0x87E5, - 45649 - 44032: 0x87E6, - 45650 - 44032: 0x87E7, - 45651 - 44032: 0x87E8, - 45652 - 44032: 0x87E9, - 45653 - 44032: 0x87EA, - 45654 - 44032: 0x87EB, - 45655 - 44032: 0x87EC, - 45656 - 44032: 0xB4B5, - 45657 - 44032: 0x87ED, - 45658 - 44032: 0x87EE, - 45659 - 44032: 0x87EF, - 45660 - 44032: 0xB4B6, - 45661 - 44032: 0x87F0, - 45662 - 44032: 0x87F1, - 45663 - 44032: 0x87F2, - 45664 - 44032: 0xB4B7, - 45665 - 44032: 0x87F3, - 45666 - 44032: 0x87F4, - 45667 - 44032: 0x87F5, - 45668 - 44032: 0x87F6, - 45669 - 44032: 0x87F7, - 45670 - 44032: 0x87F8, - 45671 - 44032: 0x87F9, - 45672 - 44032: 0xB4B8, - 45673 - 44032: 0xB4B9, - 45674 - 44032: 0x87FA, - 45675 - 44032: 0x87FB, - 45676 - 44032: 0x87FC, - 45677 - 44032: 0x87FD, - 45678 - 44032: 0x87FE, - 45679 - 44032: 0x8841, - 45680 - 44032: 0x8842, - 45681 - 44032: 0x8843, - 45682 - 44032: 0x8844, - 45683 - 44032: 0x8845, - 45684 - 44032: 0xB4BA, - 45685 - 44032: 0xB4BB, - 45686 - 44032: 0x8846, - 45687 - 44032: 0x8847, - 45688 - 44032: 0x8848, - 45689 - 44032: 0x8849, - 45690 - 44032: 0x884A, - 45691 - 44032: 0x884B, - 45692 - 44032: 0xB4BC, - 45693 - 44032: 0x884C, - 45694 - 44032: 0x884D, - 45695 - 44032: 0x884E, - 45696 - 44032: 0x884F, - 45697 - 44032: 0x8850, - 45698 - 44032: 0x8851, - 45699 - 44032: 0x8852, - 45700 - 44032: 0xB4BD, - 45701 - 44032: 0xB4BE, - 45702 - 44032: 0x8853, - 45703 - 44032: 0x8854, - 45704 - 44032: 0x8855, - 45705 - 44032: 0xB4BF, - 45706 - 44032: 0x8856, - 45707 - 44032: 0x8857, - 45708 - 44032: 0x8858, - 45709 - 44032: 0x8859, - 45710 - 44032: 0x885A, - 45711 - 44032: 0x8861, - 45712 - 44032: 0xB4C0, - 45713 - 44032: 0xB4C1, - 45714 - 44032: 0x8862, - 45715 - 44032: 0x8863, - 45716 - 44032: 0xB4C2, - 45717 - 44032: 0x8864, - 45718 - 44032: 0x8865, - 45719 - 44032: 0x8866, - 45720 - 44032: 0xB4C3, - 45721 - 44032: 0xB4C4, - 45722 - 44032: 0xB4C5, - 45723 - 44032: 0x8867, - 45724 - 44032: 0x8868, - 45725 - 44032: 0x8869, - 45726 - 44032: 0x886A, - 45727 - 44032: 0x886B, - 45728 - 44032: 0xB4C6, - 45729 - 44032: 0xB4C7, - 45730 - 44032: 0x886C, - 45731 - 44032: 0xB4C8, - 45732 - 44032: 0x886D, - 45733 - 44032: 0xB4C9, - 45734 - 44032: 0xB4CA, - 45735 - 44032: 0x886E, - 45736 - 44032: 0x886F, - 45737 - 44032: 0x8870, - 45738 - 44032: 0xB4CB, - 45739 - 44032: 0x8871, - 45740 - 44032: 0xB4CC, - 45741 - 44032: 0x8872, - 45742 - 44032: 0x8873, - 45743 - 44032: 0x8874, - 45744 - 44032: 0xB4CD, - 45745 - 44032: 0x8875, - 45746 - 44032: 0x8876, - 45747 - 44032: 0x8877, - 45748 - 44032: 0xB4CE, - 45749 - 44032: 0x8878, - 45750 - 44032: 0x8879, - 45751 - 44032: 0x887A, - 45752 - 44032: 0x8881, - 45753 - 44032: 0x8882, - 45754 - 44032: 0x8883, - 45755 - 44032: 0x8884, - 45756 - 44032: 0x8885, - 45757 - 44032: 0x8886, - 45758 - 44032: 0x8887, - 45759 - 44032: 0x8888, - 45760 - 44032: 0x8889, - 45761 - 44032: 0x888A, - 45762 - 44032: 0x888B, - 45763 - 44032: 0x888C, - 45764 - 44032: 0x888D, - 45765 - 44032: 0x888E, - 45766 - 44032: 0x888F, - 45767 - 44032: 0x8890, - 45768 - 44032: 0xB4CF, - 45769 - 44032: 0xB4D0, - 45770 - 44032: 0x8891, - 45771 - 44032: 0x8892, - 45772 - 44032: 0xB4D1, - 45773 - 44032: 0x8893, - 45774 - 44032: 0x8894, - 45775 - 44032: 0x8895, - 45776 - 44032: 0xB4D2, - 45777 - 44032: 0x8896, - 45778 - 44032: 0xB4D3, - 45779 - 44032: 0x8897, - 45780 - 44032: 0x8898, - 45781 - 44032: 0x8899, - 45782 - 44032: 0x889A, - 45783 - 44032: 0x889B, - 45784 - 44032: 0xB4D4, - 45785 - 44032: 0xB4D5, - 45786 - 44032: 0x889C, - 45787 - 44032: 0xB4D6, - 45788 - 44032: 0x889D, - 45789 - 44032: 0xB4D7, - 45790 - 44032: 0x889E, - 45791 - 44032: 0x889F, - 45792 - 44032: 0x88A0, - 45793 - 44032: 0x88A1, - 45794 - 44032: 0xB4D8, - 45795 - 44032: 0x88A2, - 45796 - 44032: 0xB4D9, - 45797 - 44032: 0xB4DA, - 45798 - 44032: 0xB4DB, - 45799 - 44032: 0x88A3, - 45800 - 44032: 0xB4DC, - 45801 - 44032: 0x88A4, - 45802 - 44032: 0x88A5, - 45803 - 44032: 0xB4DD, - 45804 - 44032: 0xB4DE, - 45805 - 44032: 0xB4DF, - 45806 - 44032: 0xB4E0, - 45807 - 44032: 0xB4E1, - 45808 - 44032: 0x88A6, - 45809 - 44032: 0x88A7, - 45810 - 44032: 0x88A8, - 45811 - 44032: 0xB4E2, - 45812 - 44032: 0xB4E3, - 45813 - 44032: 0xB4E4, - 45814 - 44032: 0x88A9, - 45815 - 44032: 0xB4E5, - 45816 - 44032: 0xB4E6, - 45817 - 44032: 0xB4E7, - 45818 - 44032: 0xB4E8, - 45819 - 44032: 0xB4E9, - 45820 - 44032: 0x88AA, - 45821 - 44032: 0x88AB, - 45822 - 44032: 0x88AC, - 45823 - 44032: 0xB4EA, - 45824 - 44032: 0xB4EB, - 45825 - 44032: 0xB4EC, - 45826 - 44032: 0x88AD, - 45827 - 44032: 0x88AE, - 45828 - 44032: 0xB4ED, - 45829 - 44032: 0x88AF, - 45830 - 44032: 0x88B0, - 45831 - 44032: 0x88B1, - 45832 - 44032: 0xB4EE, - 45833 - 44032: 0x88B2, - 45834 - 44032: 0x88B3, - 45835 - 44032: 0x88B4, - 45836 - 44032: 0x88B5, - 45837 - 44032: 0x88B6, - 45838 - 44032: 0x88B7, - 45839 - 44032: 0x88B8, - 45840 - 44032: 0xB4EF, - 45841 - 44032: 0xB4F0, - 45842 - 44032: 0x88B9, - 45843 - 44032: 0xB4F1, - 45844 - 44032: 0xB4F2, - 45845 - 44032: 0xB4F3, - 45846 - 44032: 0x88BA, - 45847 - 44032: 0x88BB, - 45848 - 44032: 0x88BC, - 45849 - 44032: 0x88BD, - 45850 - 44032: 0x88BE, - 45851 - 44032: 0x88BF, - 45852 - 44032: 0xB4F4, - 45853 - 44032: 0x88C0, - 45854 - 44032: 0x88C1, - 45855 - 44032: 0x88C2, - 45856 - 44032: 0x88C3, - 45857 - 44032: 0x88C4, - 45858 - 44032: 0x88C5, - 45859 - 44032: 0x88C6, - 45860 - 44032: 0x88C7, - 45861 - 44032: 0x88C8, - 45862 - 44032: 0x88C9, - 45863 - 44032: 0x88CA, - 45864 - 44032: 0x88CB, - 45865 - 44032: 0x88CC, - 45866 - 44032: 0x88CD, - 45867 - 44032: 0x88CE, - 45868 - 44032: 0x88CF, - 45869 - 44032: 0x88D0, - 45870 - 44032: 0x88D1, - 45871 - 44032: 0x88D2, - 45872 - 44032: 0x88D3, - 45873 - 44032: 0x88D4, - 45874 - 44032: 0x88D5, - 45875 - 44032: 0x88D6, - 45876 - 44032: 0x88D7, - 45877 - 44032: 0x88D8, - 45878 - 44032: 0x88D9, - 45879 - 44032: 0x88DA, - 45880 - 44032: 0x88DB, - 45881 - 44032: 0x88DC, - 45882 - 44032: 0x88DD, - 45883 - 44032: 0x88DE, - 45884 - 44032: 0x88DF, - 45885 - 44032: 0x88E0, - 45886 - 44032: 0x88E1, - 45887 - 44032: 0x88E2, - 45888 - 44032: 0x88E3, - 45889 - 44032: 0x88E4, - 45890 - 44032: 0x88E5, - 45891 - 44032: 0x88E6, - 45892 - 44032: 0x88E7, - 45893 - 44032: 0x88E8, - 45894 - 44032: 0x88E9, - 45895 - 44032: 0x88EA, - 45896 - 44032: 0x88EB, - 45897 - 44032: 0x88EC, - 45898 - 44032: 0x88ED, - 45899 - 44032: 0x88EE, - 45900 - 44032: 0x88EF, - 45901 - 44032: 0x88F0, - 45902 - 44032: 0x88F1, - 45903 - 44032: 0x88F2, - 45904 - 44032: 0x88F3, - 45905 - 44032: 0x88F4, - 45906 - 44032: 0x88F5, - 45907 - 44032: 0x88F6, - 45908 - 44032: 0xB4F5, - 45909 - 44032: 0xB4F6, - 45910 - 44032: 0xB4F7, - 45911 - 44032: 0x88F7, - 45912 - 44032: 0xB4F8, - 45913 - 44032: 0x88F8, - 45914 - 44032: 0x88F9, - 45915 - 44032: 0xB4F9, - 45916 - 44032: 0xB4FA, - 45917 - 44032: 0x88FA, - 45918 - 44032: 0xB4FB, - 45919 - 44032: 0xB4FC, - 45920 - 44032: 0x88FB, - 45921 - 44032: 0x88FC, - 45922 - 44032: 0x88FD, - 45923 - 44032: 0x88FE, - 45924 - 44032: 0xB4FD, - 45925 - 44032: 0xB4FE, - 45926 - 44032: 0x8941, - 45927 - 44032: 0xB5A1, - 45928 - 44032: 0x8942, - 45929 - 44032: 0xB5A2, - 45930 - 44032: 0x8943, - 45931 - 44032: 0xB5A3, - 45932 - 44032: 0x8944, - 45933 - 44032: 0x8945, - 45934 - 44032: 0xB5A4, - 45935 - 44032: 0x8946, - 45936 - 44032: 0xB5A5, - 45937 - 44032: 0xB5A6, - 45938 - 44032: 0x8947, - 45939 - 44032: 0x8948, - 45940 - 44032: 0xB5A7, - 45941 - 44032: 0x8949, - 45942 - 44032: 0x894A, - 45943 - 44032: 0x894B, - 45944 - 44032: 0xB5A8, - 45945 - 44032: 0x894C, - 45946 - 44032: 0x894D, - 45947 - 44032: 0x894E, - 45948 - 44032: 0x894F, - 45949 - 44032: 0x8950, - 45950 - 44032: 0x8951, - 45951 - 44032: 0x8952, - 45952 - 44032: 0xB5A9, - 45953 - 44032: 0xB5AA, - 45954 - 44032: 0x8953, - 45955 - 44032: 0xB5AB, - 45956 - 44032: 0xB5AC, - 45957 - 44032: 0xB5AD, - 45958 - 44032: 0x8954, - 45959 - 44032: 0x8955, - 45960 - 44032: 0x8956, - 45961 - 44032: 0x8957, - 45962 - 44032: 0x8958, - 45963 - 44032: 0x8959, - 45964 - 44032: 0xB5AE, - 45965 - 44032: 0x895A, - 45966 - 44032: 0x8961, - 45967 - 44032: 0x8962, - 45968 - 44032: 0xB5AF, - 45969 - 44032: 0x8963, - 45970 - 44032: 0x8964, - 45971 - 44032: 0x8965, - 45972 - 44032: 0xB5B0, - 45973 - 44032: 0x8966, - 45974 - 44032: 0x8967, - 45975 - 44032: 0x8968, - 45976 - 44032: 0x8969, - 45977 - 44032: 0x896A, - 45978 - 44032: 0x896B, - 45979 - 44032: 0x896C, - 45980 - 44032: 0x896D, - 45981 - 44032: 0x896E, - 45982 - 44032: 0x896F, - 45983 - 44032: 0x8970, - 45984 - 44032: 0xB5B1, - 45985 - 44032: 0xB5B2, - 45986 - 44032: 0x8971, - 45987 - 44032: 0x8972, - 45988 - 44032: 0x8973, - 45989 - 44032: 0x8974, - 45990 - 44032: 0x8975, - 45991 - 44032: 0x8976, - 45992 - 44032: 0xB5B3, - 45993 - 44032: 0x8977, - 45994 - 44032: 0x8978, - 45995 - 44032: 0x8979, - 45996 - 44032: 0xB5B4, - 45997 - 44032: 0x897A, - 45998 - 44032: 0x8981, - 45999 - 44032: 0x8982, - 46000 - 44032: 0x8983, - 46001 - 44032: 0x8984, - 46002 - 44032: 0x8985, - 46003 - 44032: 0x8986, - 46004 - 44032: 0x8987, - 46005 - 44032: 0x8988, - 46006 - 44032: 0x8989, - 46007 - 44032: 0x898A, - 46008 - 44032: 0x898B, - 46009 - 44032: 0x898C, - 46010 - 44032: 0x898D, - 46011 - 44032: 0x898E, - 46012 - 44032: 0x898F, - 46013 - 44032: 0x8990, - 46014 - 44032: 0x8991, - 46015 - 44032: 0x8992, - 46016 - 44032: 0x8993, - 46017 - 44032: 0x8994, - 46018 - 44032: 0x8995, - 46019 - 44032: 0x8996, - 46020 - 44032: 0xB5B5, - 46021 - 44032: 0xB5B6, - 46022 - 44032: 0x8997, - 46023 - 44032: 0x8998, - 46024 - 44032: 0xB5B7, - 46025 - 44032: 0x8999, - 46026 - 44032: 0x899A, - 46027 - 44032: 0xB5B8, - 46028 - 44032: 0xB5B9, - 46029 - 44032: 0x899B, - 46030 - 44032: 0xB5BA, - 46031 - 44032: 0x899C, - 46032 - 44032: 0xB5BB, - 46033 - 44032: 0x899D, - 46034 - 44032: 0x899E, - 46035 - 44032: 0x899F, - 46036 - 44032: 0xB5BC, - 46037 - 44032: 0xB5BD, - 46038 - 44032: 0x89A0, - 46039 - 44032: 0xB5BE, - 46040 - 44032: 0x89A1, - 46041 - 44032: 0xB5BF, - 46042 - 44032: 0x89A2, - 46043 - 44032: 0xB5C0, - 46044 - 44032: 0x89A3, - 46045 - 44032: 0xB5C1, - 46046 - 44032: 0x89A4, - 46047 - 44032: 0x89A5, - 46048 - 44032: 0xB5C2, - 46049 - 44032: 0x89A6, - 46050 - 44032: 0x89A7, - 46051 - 44032: 0x89A8, - 46052 - 44032: 0xB5C3, - 46053 - 44032: 0x89A9, - 46054 - 44032: 0x89AA, - 46055 - 44032: 0x89AB, - 46056 - 44032: 0xB5C4, - 46057 - 44032: 0x89AC, - 46058 - 44032: 0x89AD, - 46059 - 44032: 0x89AE, - 46060 - 44032: 0x89AF, - 46061 - 44032: 0x89B0, - 46062 - 44032: 0x89B1, - 46063 - 44032: 0x89B2, - 46064 - 44032: 0x89B3, - 46065 - 44032: 0x89B4, - 46066 - 44032: 0x89B5, - 46067 - 44032: 0x89B6, - 46068 - 44032: 0x89B7, - 46069 - 44032: 0x89B8, - 46070 - 44032: 0x89B9, - 46071 - 44032: 0x89BA, - 46072 - 44032: 0x89BB, - 46073 - 44032: 0x89BC, - 46074 - 44032: 0x89BD, - 46075 - 44032: 0x89BE, - 46076 - 44032: 0xB5C5, - 46077 - 44032: 0x89BF, - 46078 - 44032: 0x89C0, - 46079 - 44032: 0x89C1, - 46080 - 44032: 0x89C2, - 46081 - 44032: 0x89C3, - 46082 - 44032: 0x89C4, - 46083 - 44032: 0x89C5, - 46084 - 44032: 0x89C6, - 46085 - 44032: 0x89C7, - 46086 - 44032: 0x89C8, - 46087 - 44032: 0x89C9, - 46088 - 44032: 0x89CA, - 46089 - 44032: 0x89CB, - 46090 - 44032: 0x89CC, - 46091 - 44032: 0x89CD, - 46092 - 44032: 0x89CE, - 46093 - 44032: 0x89CF, - 46094 - 44032: 0x89D0, - 46095 - 44032: 0x89D1, - 46096 - 44032: 0xB5C6, - 46097 - 44032: 0x89D2, - 46098 - 44032: 0x89D3, - 46099 - 44032: 0x89D4, - 46100 - 44032: 0x89D5, - 46101 - 44032: 0x89D6, - 46102 - 44032: 0x89D7, - 46103 - 44032: 0x89D8, - 46104 - 44032: 0xB5C7, - 46105 - 44032: 0x89D9, - 46106 - 44032: 0x89DA, - 46107 - 44032: 0x89DB, - 46108 - 44032: 0xB5C8, - 46109 - 44032: 0x89DC, - 46110 - 44032: 0x89DD, - 46111 - 44032: 0x89DE, - 46112 - 44032: 0xB5C9, - 46113 - 44032: 0x89DF, - 46114 - 44032: 0x89E0, - 46115 - 44032: 0x89E1, - 46116 - 44032: 0x89E2, - 46117 - 44032: 0x89E3, - 46118 - 44032: 0x89E4, - 46119 - 44032: 0x89E5, - 46120 - 44032: 0xB5CA, - 46121 - 44032: 0xB5CB, - 46122 - 44032: 0x89E6, - 46123 - 44032: 0xB5CC, - 46124 - 44032: 0x89E7, - 46125 - 44032: 0x89E8, - 46126 - 44032: 0x89E9, - 46127 - 44032: 0x89EA, - 46128 - 44032: 0x89EB, - 46129 - 44032: 0x89EC, - 46130 - 44032: 0x89ED, - 46131 - 44032: 0x89EE, - 46132 - 44032: 0xB5CD, - 46133 - 44032: 0x89EF, - 46134 - 44032: 0x89F0, - 46135 - 44032: 0x89F1, - 46136 - 44032: 0x89F2, - 46137 - 44032: 0x89F3, - 46138 - 44032: 0x89F4, - 46139 - 44032: 0x89F5, - 46140 - 44032: 0x89F6, - 46141 - 44032: 0x89F7, - 46142 - 44032: 0x89F8, - 46143 - 44032: 0x89F9, - 46144 - 44032: 0x89FA, - 46145 - 44032: 0x89FB, - 46146 - 44032: 0x89FC, - 46147 - 44032: 0x89FD, - 46148 - 44032: 0x89FE, - 46149 - 44032: 0x8A41, - 46150 - 44032: 0x8A42, - 46151 - 44032: 0x8A43, - 46152 - 44032: 0x8A44, - 46153 - 44032: 0x8A45, - 46154 - 44032: 0x8A46, - 46155 - 44032: 0x8A47, - 46156 - 44032: 0x8A48, - 46157 - 44032: 0x8A49, - 46158 - 44032: 0x8A4A, - 46159 - 44032: 0x8A4B, - 46160 - 44032: 0xB5CE, - 46161 - 44032: 0xB5CF, - 46162 - 44032: 0x8A4C, - 46163 - 44032: 0x8A4D, - 46164 - 44032: 0xB5D0, - 46165 - 44032: 0x8A4E, - 46166 - 44032: 0x8A4F, - 46167 - 44032: 0x8A50, - 46168 - 44032: 0xB5D1, - 46169 - 44032: 0x8A51, - 46170 - 44032: 0x8A52, - 46171 - 44032: 0x8A53, - 46172 - 44032: 0x8A54, - 46173 - 44032: 0x8A55, - 46174 - 44032: 0x8A56, - 46175 - 44032: 0x8A57, - 46176 - 44032: 0xB5D2, - 46177 - 44032: 0xB5D3, - 46178 - 44032: 0x8A58, - 46179 - 44032: 0xB5D4, - 46180 - 44032: 0x8A59, - 46181 - 44032: 0xB5D5, - 46182 - 44032: 0x8A5A, - 46183 - 44032: 0x8A61, - 46184 - 44032: 0x8A62, - 46185 - 44032: 0x8A63, - 46186 - 44032: 0x8A64, - 46187 - 44032: 0x8A65, - 46188 - 44032: 0xB5D6, - 46189 - 44032: 0x8A66, - 46190 - 44032: 0x8A67, - 46191 - 44032: 0x8A68, - 46192 - 44032: 0x8A69, - 46193 - 44032: 0x8A6A, - 46194 - 44032: 0x8A6B, - 46195 - 44032: 0x8A6C, - 46196 - 44032: 0x8A6D, - 46197 - 44032: 0x8A6E, - 46198 - 44032: 0x8A6F, - 46199 - 44032: 0x8A70, - 46200 - 44032: 0x8A71, - 46201 - 44032: 0x8A72, - 46202 - 44032: 0x8A73, - 46203 - 44032: 0x8A74, - 46204 - 44032: 0x8A75, - 46205 - 44032: 0x8A76, - 46206 - 44032: 0x8A77, - 46207 - 44032: 0x8A78, - 46208 - 44032: 0xB5D7, - 46209 - 44032: 0x8A79, - 46210 - 44032: 0x8A7A, - 46211 - 44032: 0x8A81, - 46212 - 44032: 0x8A82, - 46213 - 44032: 0x8A83, - 46214 - 44032: 0x8A84, - 46215 - 44032: 0x8A85, - 46216 - 44032: 0xB5D8, - 46217 - 44032: 0x8A86, - 46218 - 44032: 0x8A87, - 46219 - 44032: 0x8A88, - 46220 - 44032: 0x8A89, - 46221 - 44032: 0x8A8A, - 46222 - 44032: 0x8A8B, - 46223 - 44032: 0x8A8C, - 46224 - 44032: 0x8A8D, - 46225 - 44032: 0x8A8E, - 46226 - 44032: 0x8A8F, - 46227 - 44032: 0x8A90, - 46228 - 44032: 0x8A91, - 46229 - 44032: 0x8A92, - 46230 - 44032: 0x8A93, - 46231 - 44032: 0x8A94, - 46232 - 44032: 0x8A95, - 46233 - 44032: 0x8A96, - 46234 - 44032: 0x8A97, - 46235 - 44032: 0x8A98, - 46236 - 44032: 0x8A99, - 46237 - 44032: 0xB5D9, - 46238 - 44032: 0x8A9A, - 46239 - 44032: 0x8A9B, - 46240 - 44032: 0x8A9C, - 46241 - 44032: 0x8A9D, - 46242 - 44032: 0x8A9E, - 46243 - 44032: 0x8A9F, - 46244 - 44032: 0xB5DA, - 46245 - 44032: 0x8AA0, - 46246 - 44032: 0x8AA1, - 46247 - 44032: 0x8AA2, - 46248 - 44032: 0xB5DB, - 46249 - 44032: 0x8AA3, - 46250 - 44032: 0x8AA4, - 46251 - 44032: 0x8AA5, - 46252 - 44032: 0xB5DC, - 46253 - 44032: 0x8AA6, - 46254 - 44032: 0x8AA7, - 46255 - 44032: 0x8AA8, - 46256 - 44032: 0x8AA9, - 46257 - 44032: 0x8AAA, - 46258 - 44032: 0x8AAB, - 46259 - 44032: 0x8AAC, - 46260 - 44032: 0x8AAD, - 46261 - 44032: 0xB5DD, - 46262 - 44032: 0x8AAE, - 46263 - 44032: 0xB5DE, - 46264 - 44032: 0x8AAF, - 46265 - 44032: 0xB5DF, - 46266 - 44032: 0x8AB0, - 46267 - 44032: 0x8AB1, - 46268 - 44032: 0x8AB2, - 46269 - 44032: 0x8AB3, - 46270 - 44032: 0x8AB4, - 46271 - 44032: 0x8AB5, - 46272 - 44032: 0xB5E0, - 46273 - 44032: 0x8AB6, - 46274 - 44032: 0x8AB7, - 46275 - 44032: 0x8AB8, - 46276 - 44032: 0xB5E1, - 46277 - 44032: 0x8AB9, - 46278 - 44032: 0x8ABA, - 46279 - 44032: 0x8ABB, - 46280 - 44032: 0xB5E2, - 46281 - 44032: 0x8ABC, - 46282 - 44032: 0x8ABD, - 46283 - 44032: 0x8ABE, - 46284 - 44032: 0x8ABF, - 46285 - 44032: 0x8AC0, - 46286 - 44032: 0x8AC1, - 46287 - 44032: 0x8AC2, - 46288 - 44032: 0xB5E3, - 46289 - 44032: 0x8AC3, - 46290 - 44032: 0x8AC4, - 46291 - 44032: 0x8AC5, - 46292 - 44032: 0x8AC6, - 46293 - 44032: 0xB5E4, - 46294 - 44032: 0x8AC7, - 46295 - 44032: 0x8AC8, - 46296 - 44032: 0x8AC9, - 46297 - 44032: 0x8ACA, - 46298 - 44032: 0x8ACB, - 46299 - 44032: 0x8ACC, - 46300 - 44032: 0xB5E5, - 46301 - 44032: 0xB5E6, - 46302 - 44032: 0x8ACD, - 46303 - 44032: 0x8ACE, - 46304 - 44032: 0xB5E7, - 46305 - 44032: 0x8ACF, - 46306 - 44032: 0x8AD0, - 46307 - 44032: 0xB5E8, - 46308 - 44032: 0xB5E9, - 46309 - 44032: 0x8AD1, - 46310 - 44032: 0xB5EA, - 46311 - 44032: 0x8AD2, - 46312 - 44032: 0x8AD3, - 46313 - 44032: 0x8AD4, - 46314 - 44032: 0x8AD5, - 46315 - 44032: 0x8AD6, - 46316 - 44032: 0xB5EB, - 46317 - 44032: 0xB5EC, - 46318 - 44032: 0x8AD7, - 46319 - 44032: 0xB5ED, - 46320 - 44032: 0x8AD8, - 46321 - 44032: 0xB5EE, - 46322 - 44032: 0x8AD9, - 46323 - 44032: 0x8ADA, - 46324 - 44032: 0x8ADB, - 46325 - 44032: 0x8ADC, - 46326 - 44032: 0x8ADD, - 46327 - 44032: 0x8ADE, - 46328 - 44032: 0xB5EF, - 46329 - 44032: 0x8ADF, - 46330 - 44032: 0x8AE0, - 46331 - 44032: 0x8AE1, - 46332 - 44032: 0x8AE2, - 46333 - 44032: 0x8AE3, - 46334 - 44032: 0x8AE4, - 46335 - 44032: 0x8AE5, - 46336 - 44032: 0x8AE6, - 46337 - 44032: 0x8AE7, - 46338 - 44032: 0x8AE8, - 46339 - 44032: 0x8AE9, - 46340 - 44032: 0x8AEA, - 46341 - 44032: 0x8AEB, - 46342 - 44032: 0x8AEC, - 46343 - 44032: 0x8AED, - 46344 - 44032: 0x8AEE, - 46345 - 44032: 0x8AEF, - 46346 - 44032: 0x8AF0, - 46347 - 44032: 0x8AF1, - 46348 - 44032: 0x8AF2, - 46349 - 44032: 0x8AF3, - 46350 - 44032: 0x8AF4, - 46351 - 44032: 0x8AF5, - 46352 - 44032: 0x8AF6, - 46353 - 44032: 0x8AF7, - 46354 - 44032: 0x8AF8, - 46355 - 44032: 0x8AF9, - 46356 - 44032: 0xB5F0, - 46357 - 44032: 0xB5F1, - 46358 - 44032: 0x8AFA, - 46359 - 44032: 0x8AFB, - 46360 - 44032: 0xB5F2, - 46361 - 44032: 0x8AFC, - 46362 - 44032: 0x8AFD, - 46363 - 44032: 0xB5F3, - 46364 - 44032: 0xB5F4, - 46365 - 44032: 0x8AFE, - 46366 - 44032: 0x8B41, - 46367 - 44032: 0x8B42, - 46368 - 44032: 0x8B43, - 46369 - 44032: 0x8B44, - 46370 - 44032: 0x8B45, - 46371 - 44032: 0x8B46, - 46372 - 44032: 0xB5F5, - 46373 - 44032: 0xB5F6, - 46374 - 44032: 0x8B47, - 46375 - 44032: 0xB5F7, - 46376 - 44032: 0xB5F8, - 46377 - 44032: 0xB5F9, - 46378 - 44032: 0xB5FA, - 46379 - 44032: 0x8B48, - 46380 - 44032: 0x8B49, - 46381 - 44032: 0x8B4A, - 46382 - 44032: 0x8B4B, - 46383 - 44032: 0x8B4C, - 46384 - 44032: 0xB5FB, - 46385 - 44032: 0xB5FC, - 46386 - 44032: 0x8B4D, - 46387 - 44032: 0x8B4E, - 46388 - 44032: 0xB5FD, - 46389 - 44032: 0x8B4F, - 46390 - 44032: 0x8B50, - 46391 - 44032: 0x8B51, - 46392 - 44032: 0xB5FE, - 46393 - 44032: 0x8B52, - 46394 - 44032: 0x8B53, - 46395 - 44032: 0x8B54, - 46396 - 44032: 0x8B55, - 46397 - 44032: 0x8B56, - 46398 - 44032: 0x8B57, - 46399 - 44032: 0x8B58, - 46400 - 44032: 0xB6A1, - 46401 - 44032: 0xB6A2, - 46402 - 44032: 0x8B59, - 46403 - 44032: 0xB6A3, - 46404 - 44032: 0xB6A4, - 46405 - 44032: 0xB6A5, - 46406 - 44032: 0x8B5A, - 46407 - 44032: 0x8B61, - 46408 - 44032: 0x8B62, - 46409 - 44032: 0x8B63, - 46410 - 44032: 0x8B64, - 46411 - 44032: 0xB6A6, - 46412 - 44032: 0xB6A7, - 46413 - 44032: 0xB6A8, - 46414 - 44032: 0x8B65, - 46415 - 44032: 0x8B66, - 46416 - 44032: 0xB6A9, - 46417 - 44032: 0x8B67, - 46418 - 44032: 0x8B68, - 46419 - 44032: 0x8B69, - 46420 - 44032: 0xB6AA, - 46421 - 44032: 0x8B6A, - 46422 - 44032: 0x8B6B, - 46423 - 44032: 0x8B6C, - 46424 - 44032: 0x8B6D, - 46425 - 44032: 0x8B6E, - 46426 - 44032: 0x8B6F, - 46427 - 44032: 0x8B70, - 46428 - 44032: 0xB6AB, - 46429 - 44032: 0xB6AC, - 46430 - 44032: 0x8B71, - 46431 - 44032: 0xB6AD, - 46432 - 44032: 0xB6AE, - 46433 - 44032: 0xB6AF, - 46434 - 44032: 0x8B72, - 46435 - 44032: 0x8B73, - 46436 - 44032: 0x8B74, - 46437 - 44032: 0x8B75, - 46438 - 44032: 0x8B76, - 46439 - 44032: 0x8B77, - 46440 - 44032: 0x8B78, - 46441 - 44032: 0x8B79, - 46442 - 44032: 0x8B7A, - 46443 - 44032: 0x8B81, - 46444 - 44032: 0x8B82, - 46445 - 44032: 0x8B83, - 46446 - 44032: 0x8B84, - 46447 - 44032: 0x8B85, - 46448 - 44032: 0x8B86, - 46449 - 44032: 0x8B87, - 46450 - 44032: 0x8B88, - 46451 - 44032: 0x8B89, - 46452 - 44032: 0x8B8A, - 46453 - 44032: 0x8B8B, - 46454 - 44032: 0x8B8C, - 46455 - 44032: 0x8B8D, - 46456 - 44032: 0x8B8E, - 46457 - 44032: 0x8B8F, - 46458 - 44032: 0x8B90, - 46459 - 44032: 0x8B91, - 46460 - 44032: 0x8B92, - 46461 - 44032: 0x8B93, - 46462 - 44032: 0x8B94, - 46463 - 44032: 0x8B95, - 46464 - 44032: 0x8B96, - 46465 - 44032: 0x8B97, - 46466 - 44032: 0x8B98, - 46467 - 44032: 0x8B99, - 46468 - 44032: 0x8B9A, - 46469 - 44032: 0x8B9B, - 46470 - 44032: 0x8B9C, - 46471 - 44032: 0x8B9D, - 46472 - 44032: 0x8B9E, - 46473 - 44032: 0x8B9F, - 46474 - 44032: 0x8BA0, - 46475 - 44032: 0x8BA1, - 46476 - 44032: 0x8BA2, - 46477 - 44032: 0x8BA3, - 46478 - 44032: 0x8BA4, - 46479 - 44032: 0x8BA5, - 46480 - 44032: 0x8BA6, - 46481 - 44032: 0x8BA7, - 46482 - 44032: 0x8BA8, - 46483 - 44032: 0x8BA9, - 46484 - 44032: 0x8BAA, - 46485 - 44032: 0x8BAB, - 46486 - 44032: 0x8BAC, - 46487 - 44032: 0x8BAD, - 46488 - 44032: 0x8BAE, - 46489 - 44032: 0x8BAF, - 46490 - 44032: 0x8BB0, - 46491 - 44032: 0x8BB1, - 46492 - 44032: 0x8BB2, - 46493 - 44032: 0x8BB3, - 46494 - 44032: 0x8BB4, - 46495 - 44032: 0x8BB5, - 46496 - 44032: 0xB6B0, - 46497 - 44032: 0xB6B1, - 46498 - 44032: 0x8BB6, - 46499 - 44032: 0x8BB7, - 46500 - 44032: 0xB6B2, - 46501 - 44032: 0x8BB8, - 46502 - 44032: 0x8BB9, - 46503 - 44032: 0x8BBA, - 46504 - 44032: 0xB6B3, - 46505 - 44032: 0x8BBB, - 46506 - 44032: 0xB6B4, - 46507 - 44032: 0xB6B5, - 46508 - 44032: 0x8BBC, - 46509 - 44032: 0x8BBD, - 46510 - 44032: 0x8BBE, - 46511 - 44032: 0x8BBF, - 46512 - 44032: 0xB6B6, - 46513 - 44032: 0xB6B7, - 46514 - 44032: 0x8BC0, - 46515 - 44032: 0xB6B8, - 46516 - 44032: 0xB6B9, - 46517 - 44032: 0xB6BA, - 46518 - 44032: 0x8BC1, - 46519 - 44032: 0x8BC2, - 46520 - 44032: 0x8BC3, - 46521 - 44032: 0x8BC4, - 46522 - 44032: 0x8BC5, - 46523 - 44032: 0xB6BB, - 46524 - 44032: 0xB6BC, - 46525 - 44032: 0xB6BD, - 46526 - 44032: 0x8BC6, - 46527 - 44032: 0x8BC7, - 46528 - 44032: 0xB6BE, - 46529 - 44032: 0x8BC8, - 46530 - 44032: 0x8BC9, - 46531 - 44032: 0x8BCA, - 46532 - 44032: 0xB6BF, - 46533 - 44032: 0x8BCB, - 46534 - 44032: 0x8BCC, - 46535 - 44032: 0x8BCD, - 46536 - 44032: 0x8BCE, - 46537 - 44032: 0x8BCF, - 46538 - 44032: 0x8BD0, - 46539 - 44032: 0x8BD1, - 46540 - 44032: 0xB6C0, - 46541 - 44032: 0xB6C1, - 46542 - 44032: 0x8BD2, - 46543 - 44032: 0xB6C2, - 46544 - 44032: 0xB6C3, - 46545 - 44032: 0xB6C4, - 46546 - 44032: 0x8BD3, - 46547 - 44032: 0x8BD4, - 46548 - 44032: 0x8BD5, - 46549 - 44032: 0x8BD6, - 46550 - 44032: 0x8BD7, - 46551 - 44032: 0x8BD8, - 46552 - 44032: 0xB6C5, - 46553 - 44032: 0x8BD9, - 46554 - 44032: 0x8BDA, - 46555 - 44032: 0x8BDB, - 46556 - 44032: 0x8BDC, - 46557 - 44032: 0x8BDD, - 46558 - 44032: 0x8BDE, - 46559 - 44032: 0x8BDF, - 46560 - 44032: 0x8BE0, - 46561 - 44032: 0x8BE1, - 46562 - 44032: 0x8BE2, - 46563 - 44032: 0x8BE3, - 46564 - 44032: 0x8BE4, - 46565 - 44032: 0x8BE5, - 46566 - 44032: 0x8BE6, - 46567 - 44032: 0x8BE7, - 46568 - 44032: 0x8BE8, - 46569 - 44032: 0x8BE9, - 46570 - 44032: 0x8BEA, - 46571 - 44032: 0x8BEB, - 46572 - 44032: 0xB6C6, - 46573 - 44032: 0x8BEC, - 46574 - 44032: 0x8BED, - 46575 - 44032: 0x8BEE, - 46576 - 44032: 0x8BEF, - 46577 - 44032: 0x8BF0, - 46578 - 44032: 0x8BF1, - 46579 - 44032: 0x8BF2, - 46580 - 44032: 0x8BF3, - 46581 - 44032: 0x8BF4, - 46582 - 44032: 0x8BF5, - 46583 - 44032: 0x8BF6, - 46584 - 44032: 0x8BF7, - 46585 - 44032: 0x8BF8, - 46586 - 44032: 0x8BF9, - 46587 - 44032: 0x8BFA, - 46588 - 44032: 0x8BFB, - 46589 - 44032: 0x8BFC, - 46590 - 44032: 0x8BFD, - 46591 - 44032: 0x8BFE, - 46592 - 44032: 0x8C41, - 46593 - 44032: 0x8C42, - 46594 - 44032: 0x8C43, - 46595 - 44032: 0x8C44, - 46596 - 44032: 0x8C45, - 46597 - 44032: 0x8C46, - 46598 - 44032: 0x8C47, - 46599 - 44032: 0x8C48, - 46600 - 44032: 0x8C49, - 46601 - 44032: 0x8C4A, - 46602 - 44032: 0x8C4B, - 46603 - 44032: 0x8C4C, - 46604 - 44032: 0x8C4D, - 46605 - 44032: 0x8C4E, - 46606 - 44032: 0x8C4F, - 46607 - 44032: 0x8C50, - 46608 - 44032: 0xB6C7, - 46609 - 44032: 0xB6C8, - 46610 - 44032: 0x8C51, - 46611 - 44032: 0x8C52, - 46612 - 44032: 0xB6C9, - 46613 - 44032: 0x8C53, - 46614 - 44032: 0x8C54, - 46615 - 44032: 0x8C55, - 46616 - 44032: 0xB6CA, - 46617 - 44032: 0x8C56, - 46618 - 44032: 0x8C57, - 46619 - 44032: 0x8C58, - 46620 - 44032: 0x8C59, - 46621 - 44032: 0x8C5A, - 46622 - 44032: 0x8C61, - 46623 - 44032: 0x8C62, - 46624 - 44032: 0x8C63, - 46625 - 44032: 0x8C64, - 46626 - 44032: 0x8C65, - 46627 - 44032: 0x8C66, - 46628 - 44032: 0x8C67, - 46629 - 44032: 0xB6CB, - 46630 - 44032: 0x8C68, - 46631 - 44032: 0x8C69, - 46632 - 44032: 0x8C6A, - 46633 - 44032: 0x8C6B, - 46634 - 44032: 0x8C6C, - 46635 - 44032: 0x8C6D, - 46636 - 44032: 0xB6CC, - 46637 - 44032: 0x8C6E, - 46638 - 44032: 0x8C6F, - 46639 - 44032: 0x8C70, - 46640 - 44032: 0x8C71, - 46641 - 44032: 0x8C72, - 46642 - 44032: 0x8C73, - 46643 - 44032: 0x8C74, - 46644 - 44032: 0xB6CD, - 46645 - 44032: 0x8C75, - 46646 - 44032: 0x8C76, - 46647 - 44032: 0x8C77, - 46648 - 44032: 0x8C78, - 46649 - 44032: 0x8C79, - 46650 - 44032: 0x8C7A, - 46651 - 44032: 0x8C81, - 46652 - 44032: 0x8C82, - 46653 - 44032: 0x8C83, - 46654 - 44032: 0x8C84, - 46655 - 44032: 0x8C85, - 46656 - 44032: 0x8C86, - 46657 - 44032: 0x8C87, - 46658 - 44032: 0x8C88, - 46659 - 44032: 0x8C89, - 46660 - 44032: 0x8C8A, - 46661 - 44032: 0x8C8B, - 46662 - 44032: 0x8C8C, - 46663 - 44032: 0x8C8D, - 46664 - 44032: 0xB6CE, - 46665 - 44032: 0x8C8E, - 46666 - 44032: 0x8C8F, - 46667 - 44032: 0x8C90, - 46668 - 44032: 0x8C91, - 46669 - 44032: 0x8C92, - 46670 - 44032: 0x8C93, - 46671 - 44032: 0x8C94, - 46672 - 44032: 0x8C95, - 46673 - 44032: 0x8C96, - 46674 - 44032: 0x8C97, - 46675 - 44032: 0x8C98, - 46676 - 44032: 0x8C99, - 46677 - 44032: 0x8C9A, - 46678 - 44032: 0x8C9B, - 46679 - 44032: 0x8C9C, - 46680 - 44032: 0x8C9D, - 46681 - 44032: 0x8C9E, - 46682 - 44032: 0x8C9F, - 46683 - 44032: 0x8CA0, - 46684 - 44032: 0x8CA1, - 46685 - 44032: 0x8CA2, - 46686 - 44032: 0x8CA3, - 46687 - 44032: 0x8CA4, - 46688 - 44032: 0x8CA5, - 46689 - 44032: 0x8CA6, - 46690 - 44032: 0x8CA7, - 46691 - 44032: 0x8CA8, - 46692 - 44032: 0xB6CF, - 46693 - 44032: 0x8CA9, - 46694 - 44032: 0x8CAA, - 46695 - 44032: 0x8CAB, - 46696 - 44032: 0xB6D0, - 46697 - 44032: 0x8CAC, - 46698 - 44032: 0x8CAD, - 46699 - 44032: 0x8CAE, - 46700 - 44032: 0x8CAF, - 46701 - 44032: 0x8CB0, - 46702 - 44032: 0x8CB1, - 46703 - 44032: 0x8CB2, - 46704 - 44032: 0x8CB3, - 46705 - 44032: 0x8CB4, - 46706 - 44032: 0x8CB5, - 46707 - 44032: 0x8CB6, - 46708 - 44032: 0x8CB7, - 46709 - 44032: 0x8CB8, - 46710 - 44032: 0x8CB9, - 46711 - 44032: 0x8CBA, - 46712 - 44032: 0x8CBB, - 46713 - 44032: 0x8CBC, - 46714 - 44032: 0x8CBD, - 46715 - 44032: 0x8CBE, - 46716 - 44032: 0x8CBF, - 46717 - 44032: 0x8CC0, - 46718 - 44032: 0x8CC1, - 46719 - 44032: 0x8CC2, - 46720 - 44032: 0x8CC3, - 46721 - 44032: 0x8CC4, - 46722 - 44032: 0x8CC5, - 46723 - 44032: 0x8CC6, - 46724 - 44032: 0x8CC7, - 46725 - 44032: 0x8CC8, - 46726 - 44032: 0x8CC9, - 46727 - 44032: 0x8CCA, - 46728 - 44032: 0x8CCB, - 46729 - 44032: 0x8CCC, - 46730 - 44032: 0x8CCD, - 46731 - 44032: 0x8CCE, - 46732 - 44032: 0x8CCF, - 46733 - 44032: 0x8CD0, - 46734 - 44032: 0x8CD1, - 46735 - 44032: 0x8CD2, - 46736 - 44032: 0x8CD3, - 46737 - 44032: 0x8CD4, - 46738 - 44032: 0x8CD5, - 46739 - 44032: 0x8CD6, - 46740 - 44032: 0x8CD7, - 46741 - 44032: 0x8CD8, - 46742 - 44032: 0x8CD9, - 46743 - 44032: 0x8CDA, - 46744 - 44032: 0x8CDB, - 46745 - 44032: 0x8CDC, - 46746 - 44032: 0x8CDD, - 46747 - 44032: 0x8CDE, - 46748 - 44032: 0xB6D1, - 46749 - 44032: 0xB6D2, - 46750 - 44032: 0x8CDF, - 46751 - 44032: 0x8CE0, - 46752 - 44032: 0xB6D3, - 46753 - 44032: 0x8CE1, - 46754 - 44032: 0x8CE2, - 46755 - 44032: 0x8CE3, - 46756 - 44032: 0xB6D4, - 46757 - 44032: 0x8CE4, - 46758 - 44032: 0x8CE5, - 46759 - 44032: 0x8CE6, - 46760 - 44032: 0x8CE7, - 46761 - 44032: 0x8CE8, - 46762 - 44032: 0x8CE9, - 46763 - 44032: 0xB6D5, - 46764 - 44032: 0xB6D6, - 46765 - 44032: 0x8CEA, - 46766 - 44032: 0x8CEB, - 46767 - 44032: 0x8CEC, - 46768 - 44032: 0x8CED, - 46769 - 44032: 0xB6D7, - 46770 - 44032: 0x8CEE, - 46771 - 44032: 0x8CEF, - 46772 - 44032: 0x8CF0, - 46773 - 44032: 0x8CF1, - 46774 - 44032: 0x8CF2, - 46775 - 44032: 0x8CF3, - 46776 - 44032: 0x8CF4, - 46777 - 44032: 0x8CF5, - 46778 - 44032: 0x8CF6, - 46779 - 44032: 0x8CF7, - 46780 - 44032: 0x8CF8, - 46781 - 44032: 0x8CF9, - 46782 - 44032: 0x8CFA, - 46783 - 44032: 0x8CFB, - 46784 - 44032: 0x8CFC, - 46785 - 44032: 0x8CFD, - 46786 - 44032: 0x8CFE, - 46787 - 44032: 0x8D41, - 46788 - 44032: 0x8D42, - 46789 - 44032: 0x8D43, - 46790 - 44032: 0x8D44, - 46791 - 44032: 0x8D45, - 46792 - 44032: 0x8D46, - 46793 - 44032: 0x8D47, - 46794 - 44032: 0x8D48, - 46795 - 44032: 0x8D49, - 46796 - 44032: 0x8D4A, - 46797 - 44032: 0x8D4B, - 46798 - 44032: 0x8D4C, - 46799 - 44032: 0x8D4D, - 46800 - 44032: 0x8D4E, - 46801 - 44032: 0x8D4F, - 46802 - 44032: 0x8D50, - 46803 - 44032: 0x8D51, - 46804 - 44032: 0xB6D8, - 46805 - 44032: 0x8D52, - 46806 - 44032: 0x8D53, - 46807 - 44032: 0x8D54, - 46808 - 44032: 0x8D55, - 46809 - 44032: 0x8D56, - 46810 - 44032: 0x8D57, - 46811 - 44032: 0x8D58, - 46812 - 44032: 0x8D59, - 46813 - 44032: 0x8D5A, - 46814 - 44032: 0x8D61, - 46815 - 44032: 0x8D62, - 46816 - 44032: 0x8D63, - 46817 - 44032: 0x8D64, - 46818 - 44032: 0x8D65, - 46819 - 44032: 0x8D66, - 46820 - 44032: 0x8D67, - 46821 - 44032: 0x8D68, - 46822 - 44032: 0x8D69, - 46823 - 44032: 0x8D6A, - 46824 - 44032: 0x8D6B, - 46825 - 44032: 0x8D6C, - 46826 - 44032: 0x8D6D, - 46827 - 44032: 0x8D6E, - 46828 - 44032: 0x8D6F, - 46829 - 44032: 0x8D70, - 46830 - 44032: 0x8D71, - 46831 - 44032: 0x8D72, - 46832 - 44032: 0xB6D9, - 46833 - 44032: 0x8D73, - 46834 - 44032: 0x8D74, - 46835 - 44032: 0x8D75, - 46836 - 44032: 0xB6DA, - 46837 - 44032: 0x8D76, - 46838 - 44032: 0x8D77, - 46839 - 44032: 0x8D78, - 46840 - 44032: 0xB6DB, - 46841 - 44032: 0x8D79, - 46842 - 44032: 0x8D7A, - 46843 - 44032: 0x8D81, - 46844 - 44032: 0x8D82, - 46845 - 44032: 0x8D83, - 46846 - 44032: 0x8D84, - 46847 - 44032: 0x8D85, - 46848 - 44032: 0xB6DC, - 46849 - 44032: 0xB6DD, - 46850 - 44032: 0x8D86, - 46851 - 44032: 0x8D87, - 46852 - 44032: 0x8D88, - 46853 - 44032: 0xB6DE, - 46854 - 44032: 0x8D89, - 46855 - 44032: 0x8D8A, - 46856 - 44032: 0x8D8B, - 46857 - 44032: 0x8D8C, - 46858 - 44032: 0x8D8D, - 46859 - 44032: 0x8D8E, - 46860 - 44032: 0x8D8F, - 46861 - 44032: 0x8D90, - 46862 - 44032: 0x8D91, - 46863 - 44032: 0x8D92, - 46864 - 44032: 0x8D93, - 46865 - 44032: 0x8D94, - 46866 - 44032: 0x8D95, - 46867 - 44032: 0x8D96, - 46868 - 44032: 0x8D97, - 46869 - 44032: 0x8D98, - 46870 - 44032: 0x8D99, - 46871 - 44032: 0x8D9A, - 46872 - 44032: 0x8D9B, - 46873 - 44032: 0x8D9C, - 46874 - 44032: 0x8D9D, - 46875 - 44032: 0x8D9E, - 46876 - 44032: 0x8D9F, - 46877 - 44032: 0x8DA0, - 46878 - 44032: 0x8DA1, - 46879 - 44032: 0x8DA2, - 46880 - 44032: 0x8DA3, - 46881 - 44032: 0x8DA4, - 46882 - 44032: 0x8DA5, - 46883 - 44032: 0x8DA6, - 46884 - 44032: 0x8DA7, - 46885 - 44032: 0x8DA8, - 46886 - 44032: 0x8DA9, - 46887 - 44032: 0x8DAA, - 46888 - 44032: 0xB6DF, - 46889 - 44032: 0xB6E0, - 46890 - 44032: 0x8DAB, - 46891 - 44032: 0x8DAC, - 46892 - 44032: 0xB6E1, - 46893 - 44032: 0x8DAD, - 46894 - 44032: 0x8DAE, - 46895 - 44032: 0xB6E2, - 46896 - 44032: 0xB6E3, - 46897 - 44032: 0x8DAF, - 46898 - 44032: 0x8DB0, - 46899 - 44032: 0x8DB1, - 46900 - 44032: 0x8DB2, - 46901 - 44032: 0x8DB3, - 46902 - 44032: 0x8DB4, - 46903 - 44032: 0x8DB5, - 46904 - 44032: 0xB6E4, - 46905 - 44032: 0xB6E5, - 46906 - 44032: 0x8DB6, - 46907 - 44032: 0xB6E6, - 46908 - 44032: 0x8DB7, - 46909 - 44032: 0x8DB8, - 46910 - 44032: 0x8DB9, - 46911 - 44032: 0x8DBA, - 46912 - 44032: 0x8DBB, - 46913 - 44032: 0x8DBC, - 46914 - 44032: 0x8DBD, - 46915 - 44032: 0x8DBE, - 46916 - 44032: 0xB6E7, - 46917 - 44032: 0x8DBF, - 46918 - 44032: 0x8DC0, - 46919 - 44032: 0x8DC1, - 46920 - 44032: 0xB6E8, - 46921 - 44032: 0x8DC2, - 46922 - 44032: 0x8DC3, - 46923 - 44032: 0x8DC4, - 46924 - 44032: 0xB6E9, - 46925 - 44032: 0x8DC5, - 46926 - 44032: 0x8DC6, - 46927 - 44032: 0x8DC7, - 46928 - 44032: 0x8DC8, - 46929 - 44032: 0x8DC9, - 46930 - 44032: 0x8DCA, - 46931 - 44032: 0x8DCB, - 46932 - 44032: 0xB6EA, - 46933 - 44032: 0xB6EB, - 46934 - 44032: 0x8DCC, - 46935 - 44032: 0x8DCD, - 46936 - 44032: 0x8DCE, - 46937 - 44032: 0x8DCF, - 46938 - 44032: 0x8DD0, - 46939 - 44032: 0x8DD1, - 46940 - 44032: 0x8DD2, - 46941 - 44032: 0x8DD3, - 46942 - 44032: 0x8DD4, - 46943 - 44032: 0x8DD5, - 46944 - 44032: 0xB6EC, - 46945 - 44032: 0x8DD6, - 46946 - 44032: 0x8DD7, - 46947 - 44032: 0x8DD8, - 46948 - 44032: 0xB6ED, - 46949 - 44032: 0x8DD9, - 46950 - 44032: 0x8DDA, - 46951 - 44032: 0x8DDB, - 46952 - 44032: 0xB6EE, - 46953 - 44032: 0x8DDC, - 46954 - 44032: 0x8DDD, - 46955 - 44032: 0x8DDE, - 46956 - 44032: 0x8DDF, - 46957 - 44032: 0x8DE0, - 46958 - 44032: 0x8DE1, - 46959 - 44032: 0x8DE2, - 46960 - 44032: 0xB6EF, - 46961 - 44032: 0xB6F0, - 46962 - 44032: 0x8DE3, - 46963 - 44032: 0xB6F1, - 46964 - 44032: 0x8DE4, - 46965 - 44032: 0xB6F2, - 46966 - 44032: 0x8DE5, - 46967 - 44032: 0x8DE6, - 46968 - 44032: 0x8DE7, - 46969 - 44032: 0x8DE8, - 46970 - 44032: 0x8DE9, - 46971 - 44032: 0x8DEA, - 46972 - 44032: 0xB6F3, - 46973 - 44032: 0xB6F4, - 46974 - 44032: 0x8DEB, - 46975 - 44032: 0x8DEC, - 46976 - 44032: 0xB6F5, - 46977 - 44032: 0x8DED, - 46978 - 44032: 0x8DEE, - 46979 - 44032: 0x8DEF, - 46980 - 44032: 0xB6F6, - 46981 - 44032: 0x8DF0, - 46982 - 44032: 0x8DF1, - 46983 - 44032: 0x8DF2, - 46984 - 44032: 0x8DF3, - 46985 - 44032: 0x8DF4, - 46986 - 44032: 0x8DF5, - 46987 - 44032: 0x8DF6, - 46988 - 44032: 0xB6F7, - 46989 - 44032: 0xB6F8, - 46990 - 44032: 0x8DF7, - 46991 - 44032: 0xB6F9, - 46992 - 44032: 0xB6FA, - 46993 - 44032: 0xB6FB, - 46994 - 44032: 0xB6FC, - 46995 - 44032: 0x8DF8, - 46996 - 44032: 0x8DF9, - 46997 - 44032: 0x8DFA, - 46998 - 44032: 0xB6FD, - 46999 - 44032: 0xB6FE, - 47000 - 44032: 0xB7A1, - 47001 - 44032: 0xB7A2, - 47002 - 44032: 0x8DFB, - 47003 - 44032: 0x8DFC, - 47004 - 44032: 0xB7A3, - 47005 - 44032: 0x8DFD, - 47006 - 44032: 0x8DFE, - 47007 - 44032: 0x8E41, - 47008 - 44032: 0xB7A4, - 47009 - 44032: 0x8E42, - 47010 - 44032: 0x8E43, - 47011 - 44032: 0x8E44, - 47012 - 44032: 0x8E45, - 47013 - 44032: 0x8E46, - 47014 - 44032: 0x8E47, - 47015 - 44032: 0x8E48, - 47016 - 44032: 0xB7A5, - 47017 - 44032: 0xB7A6, - 47018 - 44032: 0x8E49, - 47019 - 44032: 0xB7A7, - 47020 - 44032: 0xB7A8, - 47021 - 44032: 0xB7A9, - 47022 - 44032: 0x8E4A, - 47023 - 44032: 0x8E4B, - 47024 - 44032: 0x8E4C, - 47025 - 44032: 0x8E4D, - 47026 - 44032: 0x8E4E, - 47027 - 44032: 0x8E4F, - 47028 - 44032: 0xB7AA, - 47029 - 44032: 0xB7AB, - 47030 - 44032: 0x8E50, - 47031 - 44032: 0x8E51, - 47032 - 44032: 0xB7AC, - 47033 - 44032: 0x8E52, - 47034 - 44032: 0x8E53, - 47035 - 44032: 0x8E54, - 47036 - 44032: 0x8E55, - 47037 - 44032: 0x8E56, - 47038 - 44032: 0x8E57, - 47039 - 44032: 0x8E58, - 47040 - 44032: 0x8E59, - 47041 - 44032: 0x8E5A, - 47042 - 44032: 0x8E61, - 47043 - 44032: 0x8E62, - 47044 - 44032: 0x8E63, - 47045 - 44032: 0x8E64, - 47046 - 44032: 0x8E65, - 47047 - 44032: 0xB7AD, - 47048 - 44032: 0x8E66, - 47049 - 44032: 0xB7AE, - 47050 - 44032: 0x8E67, - 47051 - 44032: 0x8E68, - 47052 - 44032: 0x8E69, - 47053 - 44032: 0x8E6A, - 47054 - 44032: 0x8E6B, - 47055 - 44032: 0x8E6C, - 47056 - 44032: 0x8E6D, - 47057 - 44032: 0x8E6E, - 47058 - 44032: 0x8E6F, - 47059 - 44032: 0x8E70, - 47060 - 44032: 0x8E71, - 47061 - 44032: 0x8E72, - 47062 - 44032: 0x8E73, - 47063 - 44032: 0x8E74, - 47064 - 44032: 0x8E75, - 47065 - 44032: 0x8E76, - 47066 - 44032: 0x8E77, - 47067 - 44032: 0x8E78, - 47068 - 44032: 0x8E79, - 47069 - 44032: 0x8E7A, - 47070 - 44032: 0x8E81, - 47071 - 44032: 0x8E82, - 47072 - 44032: 0x8E83, - 47073 - 44032: 0x8E84, - 47074 - 44032: 0x8E85, - 47075 - 44032: 0x8E86, - 47076 - 44032: 0x8E87, - 47077 - 44032: 0x8E88, - 47078 - 44032: 0x8E89, - 47079 - 44032: 0x8E8A, - 47080 - 44032: 0x8E8B, - 47081 - 44032: 0x8E8C, - 47082 - 44032: 0x8E8D, - 47083 - 44032: 0x8E8E, - 47084 - 44032: 0xB7AF, - 47085 - 44032: 0xB7B0, - 47086 - 44032: 0x8E8F, - 47087 - 44032: 0x8E90, - 47088 - 44032: 0xB7B1, - 47089 - 44032: 0x8E91, - 47090 - 44032: 0x8E92, - 47091 - 44032: 0x8E93, - 47092 - 44032: 0xB7B2, - 47093 - 44032: 0x8E94, - 47094 - 44032: 0x8E95, - 47095 - 44032: 0x8E96, - 47096 - 44032: 0x8E97, - 47097 - 44032: 0x8E98, - 47098 - 44032: 0x8E99, - 47099 - 44032: 0x8E9A, - 47100 - 44032: 0xB7B3, - 47101 - 44032: 0xB7B4, - 47102 - 44032: 0x8E9B, - 47103 - 44032: 0xB7B5, - 47104 - 44032: 0xB7B6, - 47105 - 44032: 0xB7B7, - 47106 - 44032: 0x8E9C, - 47107 - 44032: 0x8E9D, - 47108 - 44032: 0x8E9E, - 47109 - 44032: 0x8E9F, - 47110 - 44032: 0x8EA0, - 47111 - 44032: 0xB7B8, - 47112 - 44032: 0xB7B9, - 47113 - 44032: 0xB7BA, - 47114 - 44032: 0x8EA1, - 47115 - 44032: 0x8EA2, - 47116 - 44032: 0xB7BB, - 47117 - 44032: 0x8EA3, - 47118 - 44032: 0x8EA4, - 47119 - 44032: 0x8EA5, - 47120 - 44032: 0xB7BC, - 47121 - 44032: 0x8EA6, - 47122 - 44032: 0x8EA7, - 47123 - 44032: 0x8EA8, - 47124 - 44032: 0x8EA9, - 47125 - 44032: 0x8EAA, - 47126 - 44032: 0x8EAB, - 47127 - 44032: 0x8EAC, - 47128 - 44032: 0xB7BD, - 47129 - 44032: 0xB7BE, - 47130 - 44032: 0x8EAD, - 47131 - 44032: 0xB7BF, - 47132 - 44032: 0x8EAE, - 47133 - 44032: 0xB7C0, - 47134 - 44032: 0x8EAF, - 47135 - 44032: 0x8EB0, - 47136 - 44032: 0x8EB1, - 47137 - 44032: 0x8EB2, - 47138 - 44032: 0x8EB3, - 47139 - 44032: 0x8EB4, - 47140 - 44032: 0xB7C1, - 47141 - 44032: 0xB7C2, - 47142 - 44032: 0x8EB5, - 47143 - 44032: 0x8EB6, - 47144 - 44032: 0xB7C3, - 47145 - 44032: 0x8EB7, - 47146 - 44032: 0x8EB8, - 47147 - 44032: 0x8EB9, - 47148 - 44032: 0xB7C4, - 47149 - 44032: 0x8EBA, - 47150 - 44032: 0x8EBB, - 47151 - 44032: 0x8EBC, - 47152 - 44032: 0x8EBD, - 47153 - 44032: 0x8EBE, - 47154 - 44032: 0x8EBF, - 47155 - 44032: 0x8EC0, - 47156 - 44032: 0xB7C5, - 47157 - 44032: 0xB7C6, - 47158 - 44032: 0x8EC1, - 47159 - 44032: 0xB7C7, - 47160 - 44032: 0xB7C8, - 47161 - 44032: 0xB7C9, - 47162 - 44032: 0x8EC2, - 47163 - 44032: 0x8EC3, - 47164 - 44032: 0x8EC4, - 47165 - 44032: 0x8EC5, - 47166 - 44032: 0x8EC6, - 47167 - 44032: 0x8EC7, - 47168 - 44032: 0xB7CA, - 47169 - 44032: 0x8EC8, - 47170 - 44032: 0x8EC9, - 47171 - 44032: 0x8ECA, - 47172 - 44032: 0xB7CB, - 47173 - 44032: 0x8ECB, - 47174 - 44032: 0x8ECC, - 47175 - 44032: 0x8ECD, - 47176 - 44032: 0x8ECE, - 47177 - 44032: 0x8ECF, - 47178 - 44032: 0x8ED0, - 47179 - 44032: 0x8ED1, - 47180 - 44032: 0x8ED2, - 47181 - 44032: 0x8ED3, - 47182 - 44032: 0x8ED4, - 47183 - 44032: 0x8ED5, - 47184 - 44032: 0x8ED6, - 47185 - 44032: 0xB7CC, - 47186 - 44032: 0x8ED7, - 47187 - 44032: 0xB7CD, - 47188 - 44032: 0x8ED8, - 47189 - 44032: 0x8ED9, - 47190 - 44032: 0x8EDA, - 47191 - 44032: 0x8EDB, - 47192 - 44032: 0x8EDC, - 47193 - 44032: 0x8EDD, - 47194 - 44032: 0x8EDE, - 47195 - 44032: 0x8EDF, - 47196 - 44032: 0xB7CE, - 47197 - 44032: 0xB7CF, - 47198 - 44032: 0x8EE0, - 47199 - 44032: 0x8EE1, - 47200 - 44032: 0xB7D0, - 47201 - 44032: 0x8EE2, - 47202 - 44032: 0x8EE3, - 47203 - 44032: 0x8EE4, - 47204 - 44032: 0xB7D1, - 47205 - 44032: 0x8EE5, - 47206 - 44032: 0x8EE6, - 47207 - 44032: 0x8EE7, - 47208 - 44032: 0x8EE8, - 47209 - 44032: 0x8EE9, - 47210 - 44032: 0x8EEA, - 47211 - 44032: 0x8EEB, - 47212 - 44032: 0xB7D2, - 47213 - 44032: 0xB7D3, - 47214 - 44032: 0x8EEC, - 47215 - 44032: 0xB7D4, - 47216 - 44032: 0x8EED, - 47217 - 44032: 0xB7D5, - 47218 - 44032: 0x8EEE, - 47219 - 44032: 0x8EEF, - 47220 - 44032: 0x8EF0, - 47221 - 44032: 0x8EF1, - 47222 - 44032: 0x8EF2, - 47223 - 44032: 0x8EF3, - 47224 - 44032: 0xB7D6, - 47225 - 44032: 0x8EF4, - 47226 - 44032: 0x8EF5, - 47227 - 44032: 0x8EF6, - 47228 - 44032: 0xB7D7, - 47229 - 44032: 0x8EF7, - 47230 - 44032: 0x8EF8, - 47231 - 44032: 0x8EF9, - 47232 - 44032: 0x8EFA, - 47233 - 44032: 0x8EFB, - 47234 - 44032: 0x8EFC, - 47235 - 44032: 0x8EFD, - 47236 - 44032: 0x8EFE, - 47237 - 44032: 0x8F41, - 47238 - 44032: 0x8F42, - 47239 - 44032: 0x8F43, - 47240 - 44032: 0x8F44, - 47241 - 44032: 0x8F45, - 47242 - 44032: 0x8F46, - 47243 - 44032: 0x8F47, - 47244 - 44032: 0x8F48, - 47245 - 44032: 0xB7D8, - 47246 - 44032: 0x8F49, - 47247 - 44032: 0x8F4A, - 47248 - 44032: 0x8F4B, - 47249 - 44032: 0x8F4C, - 47250 - 44032: 0x8F4D, - 47251 - 44032: 0x8F4E, - 47252 - 44032: 0x8F4F, - 47253 - 44032: 0x8F50, - 47254 - 44032: 0x8F51, - 47255 - 44032: 0x8F52, - 47256 - 44032: 0x8F53, - 47257 - 44032: 0x8F54, - 47258 - 44032: 0x8F55, - 47259 - 44032: 0x8F56, - 47260 - 44032: 0x8F57, - 47261 - 44032: 0x8F58, - 47262 - 44032: 0x8F59, - 47263 - 44032: 0x8F5A, - 47264 - 44032: 0x8F61, - 47265 - 44032: 0x8F62, - 47266 - 44032: 0x8F63, - 47267 - 44032: 0x8F64, - 47268 - 44032: 0x8F65, - 47269 - 44032: 0x8F66, - 47270 - 44032: 0x8F67, - 47271 - 44032: 0x8F68, - 47272 - 44032: 0xB7D9, - 47273 - 44032: 0x8F69, - 47274 - 44032: 0x8F6A, - 47275 - 44032: 0x8F6B, - 47276 - 44032: 0x8F6C, - 47277 - 44032: 0x8F6D, - 47278 - 44032: 0x8F6E, - 47279 - 44032: 0x8F6F, - 47280 - 44032: 0xB7DA, - 47281 - 44032: 0x8F70, - 47282 - 44032: 0x8F71, - 47283 - 44032: 0x8F72, - 47284 - 44032: 0xB7DB, - 47285 - 44032: 0x8F73, - 47286 - 44032: 0x8F74, - 47287 - 44032: 0x8F75, - 47288 - 44032: 0xB7DC, - 47289 - 44032: 0x8F76, - 47290 - 44032: 0x8F77, - 47291 - 44032: 0x8F78, - 47292 - 44032: 0x8F79, - 47293 - 44032: 0x8F7A, - 47294 - 44032: 0x8F81, - 47295 - 44032: 0x8F82, - 47296 - 44032: 0xB7DD, - 47297 - 44032: 0xB7DE, - 47298 - 44032: 0x8F83, - 47299 - 44032: 0xB7DF, - 47300 - 44032: 0x8F84, - 47301 - 44032: 0xB7E0, - 47302 - 44032: 0x8F85, - 47303 - 44032: 0x8F86, - 47304 - 44032: 0x8F87, - 47305 - 44032: 0x8F88, - 47306 - 44032: 0x8F89, - 47307 - 44032: 0x8F8A, - 47308 - 44032: 0xB7E1, - 47309 - 44032: 0x8F8B, - 47310 - 44032: 0x8F8C, - 47311 - 44032: 0x8F8D, - 47312 - 44032: 0xB7E2, - 47313 - 44032: 0x8F8E, - 47314 - 44032: 0x8F8F, - 47315 - 44032: 0x8F90, - 47316 - 44032: 0xB7E3, - 47317 - 44032: 0x8F91, - 47318 - 44032: 0x8F92, - 47319 - 44032: 0x8F93, - 47320 - 44032: 0x8F94, - 47321 - 44032: 0x8F95, - 47322 - 44032: 0x8F96, - 47323 - 44032: 0x8F97, - 47324 - 44032: 0x8F98, - 47325 - 44032: 0xB7E4, - 47326 - 44032: 0x8F99, - 47327 - 44032: 0xB7E5, - 47328 - 44032: 0x8F9A, - 47329 - 44032: 0xB7E6, - 47330 - 44032: 0x8F9B, - 47331 - 44032: 0x8F9C, - 47332 - 44032: 0x8F9D, - 47333 - 44032: 0x8F9E, - 47334 - 44032: 0x8F9F, - 47335 - 44032: 0x8FA0, - 47336 - 44032: 0xB7E7, - 47337 - 44032: 0xB7E8, - 47338 - 44032: 0x8FA1, - 47339 - 44032: 0x8FA2, - 47340 - 44032: 0xB7E9, - 47341 - 44032: 0x8FA3, - 47342 - 44032: 0x8FA4, - 47343 - 44032: 0x8FA5, - 47344 - 44032: 0xB7EA, - 47345 - 44032: 0x8FA6, - 47346 - 44032: 0x8FA7, - 47347 - 44032: 0x8FA8, - 47348 - 44032: 0x8FA9, - 47349 - 44032: 0x8FAA, - 47350 - 44032: 0x8FAB, - 47351 - 44032: 0x8FAC, - 47352 - 44032: 0xB7EB, - 47353 - 44032: 0xB7EC, - 47354 - 44032: 0x8FAD, - 47355 - 44032: 0xB7ED, - 47356 - 44032: 0x8FAE, - 47357 - 44032: 0xB7EE, - 47358 - 44032: 0x8FAF, - 47359 - 44032: 0x8FB0, - 47360 - 44032: 0x8FB1, - 47361 - 44032: 0x8FB2, - 47362 - 44032: 0x8FB3, - 47363 - 44032: 0x8FB4, - 47364 - 44032: 0xB7EF, - 47365 - 44032: 0x8FB5, - 47366 - 44032: 0x8FB6, - 47367 - 44032: 0x8FB7, - 47368 - 44032: 0x8FB8, - 47369 - 44032: 0x8FB9, - 47370 - 44032: 0x8FBA, - 47371 - 44032: 0x8FBB, - 47372 - 44032: 0x8FBC, - 47373 - 44032: 0x8FBD, - 47374 - 44032: 0x8FBE, - 47375 - 44032: 0x8FBF, - 47376 - 44032: 0x8FC0, - 47377 - 44032: 0x8FC1, - 47378 - 44032: 0x8FC2, - 47379 - 44032: 0x8FC3, - 47380 - 44032: 0x8FC4, - 47381 - 44032: 0x8FC5, - 47382 - 44032: 0x8FC6, - 47383 - 44032: 0x8FC7, - 47384 - 44032: 0xB7F0, - 47385 - 44032: 0x8FC8, - 47386 - 44032: 0x8FC9, - 47387 - 44032: 0x8FCA, - 47388 - 44032: 0x8FCB, - 47389 - 44032: 0x8FCC, - 47390 - 44032: 0x8FCD, - 47391 - 44032: 0x8FCE, - 47392 - 44032: 0xB7F1, - 47393 - 44032: 0x8FCF, - 47394 - 44032: 0x8FD0, - 47395 - 44032: 0x8FD1, - 47396 - 44032: 0x8FD2, - 47397 - 44032: 0x8FD3, - 47398 - 44032: 0x8FD4, - 47399 - 44032: 0x8FD5, - 47400 - 44032: 0x8FD6, - 47401 - 44032: 0x8FD7, - 47402 - 44032: 0x8FD8, - 47403 - 44032: 0x8FD9, - 47404 - 44032: 0x8FDA, - 47405 - 44032: 0x8FDB, - 47406 - 44032: 0x8FDC, - 47407 - 44032: 0x8FDD, - 47408 - 44032: 0x8FDE, - 47409 - 44032: 0x8FDF, - 47410 - 44032: 0x8FE0, - 47411 - 44032: 0x8FE1, - 47412 - 44032: 0x8FE2, - 47413 - 44032: 0x8FE3, - 47414 - 44032: 0x8FE4, - 47415 - 44032: 0x8FE5, - 47416 - 44032: 0x8FE6, - 47417 - 44032: 0x8FE7, - 47418 - 44032: 0x8FE8, - 47419 - 44032: 0x8FE9, - 47420 - 44032: 0xB7F2, - 47421 - 44032: 0xB7F3, - 47422 - 44032: 0x8FEA, - 47423 - 44032: 0x8FEB, - 47424 - 44032: 0xB7F4, - 47425 - 44032: 0x8FEC, - 47426 - 44032: 0x8FED, - 47427 - 44032: 0x8FEE, - 47428 - 44032: 0xB7F5, - 47429 - 44032: 0x8FEF, - 47430 - 44032: 0x8FF0, - 47431 - 44032: 0x8FF1, - 47432 - 44032: 0x8FF2, - 47433 - 44032: 0x8FF3, - 47434 - 44032: 0x8FF4, - 47435 - 44032: 0x8FF5, - 47436 - 44032: 0xB7F6, - 47437 - 44032: 0x8FF6, - 47438 - 44032: 0x8FF7, - 47439 - 44032: 0xB7F7, - 47440 - 44032: 0x8FF8, - 47441 - 44032: 0xB7F8, - 47442 - 44032: 0x8FF9, - 47443 - 44032: 0x8FFA, - 47444 - 44032: 0x8FFB, - 47445 - 44032: 0x8FFC, - 47446 - 44032: 0x8FFD, - 47447 - 44032: 0x8FFE, - 47448 - 44032: 0xB7F9, - 47449 - 44032: 0xB7FA, - 47450 - 44032: 0x9041, - 47451 - 44032: 0x9042, - 47452 - 44032: 0xB7FB, - 47453 - 44032: 0x9043, - 47454 - 44032: 0x9044, - 47455 - 44032: 0x9045, - 47456 - 44032: 0xB7FC, - 47457 - 44032: 0x9046, - 47458 - 44032: 0x9047, - 47459 - 44032: 0x9048, - 47460 - 44032: 0x9049, - 47461 - 44032: 0x904A, - 47462 - 44032: 0x904B, - 47463 - 44032: 0x904C, - 47464 - 44032: 0xB7FD, - 47465 - 44032: 0xB7FE, - 47466 - 44032: 0x904D, - 47467 - 44032: 0xB8A1, - 47468 - 44032: 0x904E, - 47469 - 44032: 0xB8A2, - 47470 - 44032: 0x904F, - 47471 - 44032: 0x9050, - 47472 - 44032: 0x9051, - 47473 - 44032: 0x9052, - 47474 - 44032: 0x9053, - 47475 - 44032: 0x9054, - 47476 - 44032: 0xB8A3, - 47477 - 44032: 0xB8A4, - 47478 - 44032: 0x9055, - 47479 - 44032: 0x9056, - 47480 - 44032: 0xB8A5, - 47481 - 44032: 0x9057, - 47482 - 44032: 0x9058, - 47483 - 44032: 0x9059, - 47484 - 44032: 0xB8A6, - 47485 - 44032: 0x905A, - 47486 - 44032: 0x9061, - 47487 - 44032: 0x9062, - 47488 - 44032: 0x9063, - 47489 - 44032: 0x9064, - 47490 - 44032: 0x9065, - 47491 - 44032: 0x9066, - 47492 - 44032: 0xB8A7, - 47493 - 44032: 0xB8A8, - 47494 - 44032: 0x9067, - 47495 - 44032: 0xB8A9, - 47496 - 44032: 0x9068, - 47497 - 44032: 0xB8AA, - 47498 - 44032: 0xB8AB, - 47499 - 44032: 0x9069, - 47500 - 44032: 0x906A, - 47501 - 44032: 0xB8AC, - 47502 - 44032: 0xB8AD, - 47503 - 44032: 0x906B, - 47504 - 44032: 0x906C, - 47505 - 44032: 0x906D, - 47506 - 44032: 0x906E, - 47507 - 44032: 0x906F, - 47508 - 44032: 0x9070, - 47509 - 44032: 0x9071, - 47510 - 44032: 0x9072, - 47511 - 44032: 0x9073, - 47512 - 44032: 0x9074, - 47513 - 44032: 0x9075, - 47514 - 44032: 0x9076, - 47515 - 44032: 0x9077, - 47516 - 44032: 0x9078, - 47517 - 44032: 0x9079, - 47518 - 44032: 0x907A, - 47519 - 44032: 0x9081, - 47520 - 44032: 0x9082, - 47521 - 44032: 0x9083, - 47522 - 44032: 0x9084, - 47523 - 44032: 0x9085, - 47524 - 44032: 0x9086, - 47525 - 44032: 0x9087, - 47526 - 44032: 0x9088, - 47527 - 44032: 0x9089, - 47528 - 44032: 0x908A, - 47529 - 44032: 0x908B, - 47530 - 44032: 0x908C, - 47531 - 44032: 0x908D, - 47532 - 44032: 0xB8AE, - 47533 - 44032: 0xB8AF, - 47534 - 44032: 0x908E, - 47535 - 44032: 0x908F, - 47536 - 44032: 0xB8B0, - 47537 - 44032: 0x9090, - 47538 - 44032: 0x9091, - 47539 - 44032: 0x9092, - 47540 - 44032: 0xB8B1, - 47541 - 44032: 0x9093, - 47542 - 44032: 0x9094, - 47543 - 44032: 0x9095, - 47544 - 44032: 0x9096, - 47545 - 44032: 0x9097, - 47546 - 44032: 0x9098, - 47547 - 44032: 0x9099, - 47548 - 44032: 0xB8B2, - 47549 - 44032: 0xB8B3, - 47550 - 44032: 0x909A, - 47551 - 44032: 0xB8B4, - 47552 - 44032: 0x909B, - 47553 - 44032: 0xB8B5, - 47554 - 44032: 0x909C, - 47555 - 44032: 0x909D, - 47556 - 44032: 0x909E, - 47557 - 44032: 0x909F, - 47558 - 44032: 0x90A0, - 47559 - 44032: 0x90A1, - 47560 - 44032: 0xB8B6, - 47561 - 44032: 0xB8B7, - 47562 - 44032: 0x90A2, - 47563 - 44032: 0x90A3, - 47564 - 44032: 0xB8B8, - 47565 - 44032: 0x90A4, - 47566 - 44032: 0xB8B9, - 47567 - 44032: 0xB8BA, - 47568 - 44032: 0xB8BB, - 47569 - 44032: 0xB8BC, - 47570 - 44032: 0xB8BD, - 47571 - 44032: 0x90A5, - 47572 - 44032: 0x90A6, - 47573 - 44032: 0x90A7, - 47574 - 44032: 0x90A8, - 47575 - 44032: 0x90A9, - 47576 - 44032: 0xB8BE, - 47577 - 44032: 0xB8BF, - 47578 - 44032: 0x90AA, - 47579 - 44032: 0xB8C0, - 47580 - 44032: 0x90AB, - 47581 - 44032: 0xB8C1, - 47582 - 44032: 0xB8C2, - 47583 - 44032: 0x90AC, - 47584 - 44032: 0x90AD, - 47585 - 44032: 0xB8C3, - 47586 - 44032: 0x90AE, - 47587 - 44032: 0xB8C4, - 47588 - 44032: 0xB8C5, - 47589 - 44032: 0xB8C6, - 47590 - 44032: 0x90AF, - 47591 - 44032: 0x90B0, - 47592 - 44032: 0xB8C7, - 47593 - 44032: 0x90B1, - 47594 - 44032: 0x90B2, - 47595 - 44032: 0x90B3, - 47596 - 44032: 0xB8C8, - 47597 - 44032: 0x90B4, - 47598 - 44032: 0x90B5, - 47599 - 44032: 0x90B6, - 47600 - 44032: 0x90B7, - 47601 - 44032: 0x90B8, - 47602 - 44032: 0x90B9, - 47603 - 44032: 0x90BA, - 47604 - 44032: 0xB8C9, - 47605 - 44032: 0xB8CA, - 47606 - 44032: 0x90BB, - 47607 - 44032: 0xB8CB, - 47608 - 44032: 0xB8CC, - 47609 - 44032: 0xB8CD, - 47610 - 44032: 0xB8CE, - 47611 - 44032: 0x90BC, - 47612 - 44032: 0x90BD, - 47613 - 44032: 0x90BE, - 47614 - 44032: 0x90BF, - 47615 - 44032: 0x90C0, - 47616 - 44032: 0xB8CF, - 47617 - 44032: 0xB8D0, - 47618 - 44032: 0x90C1, - 47619 - 44032: 0x90C2, - 47620 - 44032: 0x90C3, - 47621 - 44032: 0x90C4, - 47622 - 44032: 0x90C5, - 47623 - 44032: 0x90C6, - 47624 - 44032: 0xB8D1, - 47625 - 44032: 0x90C7, - 47626 - 44032: 0x90C8, - 47627 - 44032: 0x90C9, - 47628 - 44032: 0x90CA, - 47629 - 44032: 0x90CB, - 47630 - 44032: 0x90CC, - 47631 - 44032: 0x90CD, - 47632 - 44032: 0x90CE, - 47633 - 44032: 0x90CF, - 47634 - 44032: 0x90D0, - 47635 - 44032: 0x90D1, - 47636 - 44032: 0x90D2, - 47637 - 44032: 0xB8D2, - 47638 - 44032: 0x90D3, - 47639 - 44032: 0x90D4, - 47640 - 44032: 0x90D5, - 47641 - 44032: 0x90D6, - 47642 - 44032: 0x90D7, - 47643 - 44032: 0x90D8, - 47644 - 44032: 0x90D9, - 47645 - 44032: 0x90DA, - 47646 - 44032: 0x90DB, - 47647 - 44032: 0x90DC, - 47648 - 44032: 0x90DD, - 47649 - 44032: 0x90DE, - 47650 - 44032: 0x90DF, - 47651 - 44032: 0x90E0, - 47652 - 44032: 0x90E1, - 47653 - 44032: 0x90E2, - 47654 - 44032: 0x90E3, - 47655 - 44032: 0x90E4, - 47656 - 44032: 0x90E5, - 47657 - 44032: 0x90E6, - 47658 - 44032: 0x90E7, - 47659 - 44032: 0x90E8, - 47660 - 44032: 0x90E9, - 47661 - 44032: 0x90EA, - 47662 - 44032: 0x90EB, - 47663 - 44032: 0x90EC, - 47664 - 44032: 0x90ED, - 47665 - 44032: 0x90EE, - 47666 - 44032: 0x90EF, - 47667 - 44032: 0x90F0, - 47668 - 44032: 0x90F1, - 47669 - 44032: 0x90F2, - 47670 - 44032: 0x90F3, - 47671 - 44032: 0x90F4, - 47672 - 44032: 0xB8D3, - 47673 - 44032: 0xB8D4, - 47674 - 44032: 0x90F5, - 47675 - 44032: 0x90F6, - 47676 - 44032: 0xB8D5, - 47677 - 44032: 0x90F7, - 47678 - 44032: 0x90F8, - 47679 - 44032: 0x90F9, - 47680 - 44032: 0xB8D6, - 47681 - 44032: 0x90FA, - 47682 - 44032: 0xB8D7, - 47683 - 44032: 0x90FB, - 47684 - 44032: 0x90FC, - 47685 - 44032: 0x90FD, - 47686 - 44032: 0x90FE, - 47687 - 44032: 0x9141, - 47688 - 44032: 0xB8D8, - 47689 - 44032: 0xB8D9, - 47690 - 44032: 0x9142, - 47691 - 44032: 0xB8DA, - 47692 - 44032: 0x9143, - 47693 - 44032: 0xB8DB, - 47694 - 44032: 0xB8DC, - 47695 - 44032: 0x9144, - 47696 - 44032: 0x9145, - 47697 - 44032: 0x9146, - 47698 - 44032: 0x9147, - 47699 - 44032: 0xB8DD, - 47700 - 44032: 0xB8DE, - 47701 - 44032: 0xB8DF, - 47702 - 44032: 0x9148, - 47703 - 44032: 0x9149, - 47704 - 44032: 0xB8E0, - 47705 - 44032: 0x914A, - 47706 - 44032: 0x914B, - 47707 - 44032: 0x914C, - 47708 - 44032: 0xB8E1, - 47709 - 44032: 0x914D, - 47710 - 44032: 0x914E, - 47711 - 44032: 0x914F, - 47712 - 44032: 0x9150, - 47713 - 44032: 0x9151, - 47714 - 44032: 0x9152, - 47715 - 44032: 0x9153, - 47716 - 44032: 0xB8E2, - 47717 - 44032: 0xB8E3, - 47718 - 44032: 0x9154, - 47719 - 44032: 0xB8E4, - 47720 - 44032: 0xB8E5, - 47721 - 44032: 0xB8E6, - 47722 - 44032: 0x9155, - 47723 - 44032: 0x9156, - 47724 - 44032: 0x9157, - 47725 - 44032: 0x9158, - 47726 - 44032: 0x9159, - 47727 - 44032: 0x915A, - 47728 - 44032: 0xB8E7, - 47729 - 44032: 0xB8E8, - 47730 - 44032: 0x9161, - 47731 - 44032: 0x9162, - 47732 - 44032: 0xB8E9, - 47733 - 44032: 0x9163, - 47734 - 44032: 0x9164, - 47735 - 44032: 0x9165, - 47736 - 44032: 0xB8EA, - 47737 - 44032: 0x9166, - 47738 - 44032: 0x9167, - 47739 - 44032: 0x9168, - 47740 - 44032: 0x9169, - 47741 - 44032: 0x916A, - 47742 - 44032: 0x916B, - 47743 - 44032: 0x916C, - 47744 - 44032: 0x916D, - 47745 - 44032: 0x916E, - 47746 - 44032: 0x916F, - 47747 - 44032: 0xB8EB, - 47748 - 44032: 0xB8EC, - 47749 - 44032: 0xB8ED, - 47750 - 44032: 0x9170, - 47751 - 44032: 0xB8EE, - 47752 - 44032: 0x9171, - 47753 - 44032: 0x9172, - 47754 - 44032: 0x9173, - 47755 - 44032: 0x9174, - 47756 - 44032: 0xB8EF, - 47757 - 44032: 0x9175, - 47758 - 44032: 0x9176, - 47759 - 44032: 0x9177, - 47760 - 44032: 0x9178, - 47761 - 44032: 0x9179, - 47762 - 44032: 0x917A, - 47763 - 44032: 0x9181, - 47764 - 44032: 0x9182, - 47765 - 44032: 0x9183, - 47766 - 44032: 0x9184, - 47767 - 44032: 0x9185, - 47768 - 44032: 0x9186, - 47769 - 44032: 0x9187, - 47770 - 44032: 0x9188, - 47771 - 44032: 0x9189, - 47772 - 44032: 0x918A, - 47773 - 44032: 0x918B, - 47774 - 44032: 0x918C, - 47775 - 44032: 0x918D, - 47776 - 44032: 0x918E, - 47777 - 44032: 0x918F, - 47778 - 44032: 0x9190, - 47779 - 44032: 0x9191, - 47780 - 44032: 0x9192, - 47781 - 44032: 0x9193, - 47782 - 44032: 0x9194, - 47783 - 44032: 0x9195, - 47784 - 44032: 0xB8F0, - 47785 - 44032: 0xB8F1, - 47786 - 44032: 0x9196, - 47787 - 44032: 0xB8F2, - 47788 - 44032: 0xB8F3, - 47789 - 44032: 0x9197, - 47790 - 44032: 0x9198, - 47791 - 44032: 0x9199, - 47792 - 44032: 0xB8F4, - 47793 - 44032: 0x919A, - 47794 - 44032: 0xB8F5, - 47795 - 44032: 0x919B, - 47796 - 44032: 0x919C, - 47797 - 44032: 0x919D, - 47798 - 44032: 0x919E, - 47799 - 44032: 0x919F, - 47800 - 44032: 0xB8F6, - 47801 - 44032: 0xB8F7, - 47802 - 44032: 0x91A0, - 47803 - 44032: 0xB8F8, - 47804 - 44032: 0x91A1, - 47805 - 44032: 0xB8F9, - 47806 - 44032: 0x91A2, - 47807 - 44032: 0x91A3, - 47808 - 44032: 0x91A4, - 47809 - 44032: 0x91A5, - 47810 - 44032: 0x91A6, - 47811 - 44032: 0x91A7, - 47812 - 44032: 0xB8FA, - 47813 - 44032: 0x91A8, - 47814 - 44032: 0x91A9, - 47815 - 44032: 0x91AA, - 47816 - 44032: 0xB8FB, - 47817 - 44032: 0x91AB, - 47818 - 44032: 0x91AC, - 47819 - 44032: 0x91AD, - 47820 - 44032: 0x91AE, - 47821 - 44032: 0x91AF, - 47822 - 44032: 0x91B0, - 47823 - 44032: 0x91B1, - 47824 - 44032: 0x91B2, - 47825 - 44032: 0x91B3, - 47826 - 44032: 0x91B4, - 47827 - 44032: 0x91B5, - 47828 - 44032: 0x91B6, - 47829 - 44032: 0x91B7, - 47830 - 44032: 0x91B8, - 47831 - 44032: 0x91B9, - 47832 - 44032: 0xB8FC, - 47833 - 44032: 0xB8FD, - 47834 - 44032: 0x91BA, - 47835 - 44032: 0x91BB, - 47836 - 44032: 0x91BC, - 47837 - 44032: 0x91BD, - 47838 - 44032: 0x91BE, - 47839 - 44032: 0x91BF, - 47840 - 44032: 0x91C0, - 47841 - 44032: 0x91C1, - 47842 - 44032: 0x91C2, - 47843 - 44032: 0x91C3, - 47844 - 44032: 0x91C4, - 47845 - 44032: 0x91C5, - 47846 - 44032: 0x91C6, - 47847 - 44032: 0x91C7, - 47848 - 44032: 0x91C8, - 47849 - 44032: 0x91C9, - 47850 - 44032: 0x91CA, - 47851 - 44032: 0x91CB, - 47852 - 44032: 0x91CC, - 47853 - 44032: 0x91CD, - 47854 - 44032: 0x91CE, - 47855 - 44032: 0x91CF, - 47856 - 44032: 0x91D0, - 47857 - 44032: 0x91D1, - 47858 - 44032: 0x91D2, - 47859 - 44032: 0x91D3, - 47860 - 44032: 0x91D4, - 47861 - 44032: 0x91D5, - 47862 - 44032: 0x91D6, - 47863 - 44032: 0x91D7, - 47864 - 44032: 0x91D8, - 47865 - 44032: 0x91D9, - 47866 - 44032: 0x91DA, - 47867 - 44032: 0x91DB, - 47868 - 44032: 0xB8FE, - 47869 - 44032: 0x91DC, - 47870 - 44032: 0x91DD, - 47871 - 44032: 0x91DE, - 47872 - 44032: 0xB9A1, - 47873 - 44032: 0x91DF, - 47874 - 44032: 0x91E0, - 47875 - 44032: 0x91E1, - 47876 - 44032: 0xB9A2, - 47877 - 44032: 0x91E2, - 47878 - 44032: 0x91E3, - 47879 - 44032: 0x91E4, - 47880 - 44032: 0x91E5, - 47881 - 44032: 0x91E6, - 47882 - 44032: 0x91E7, - 47883 - 44032: 0x91E8, - 47884 - 44032: 0x91E9, - 47885 - 44032: 0xB9A3, - 47886 - 44032: 0x91EA, - 47887 - 44032: 0xB9A4, - 47888 - 44032: 0x91EB, - 47889 - 44032: 0xB9A5, - 47890 - 44032: 0x91EC, - 47891 - 44032: 0x91ED, - 47892 - 44032: 0x91EE, - 47893 - 44032: 0x91EF, - 47894 - 44032: 0x91F0, - 47895 - 44032: 0x91F1, - 47896 - 44032: 0xB9A6, - 47897 - 44032: 0x91F2, - 47898 - 44032: 0x91F3, - 47899 - 44032: 0x91F4, - 47900 - 44032: 0xB9A7, - 47901 - 44032: 0x91F5, - 47902 - 44032: 0x91F6, - 47903 - 44032: 0x91F7, - 47904 - 44032: 0xB9A8, - 47905 - 44032: 0x91F8, - 47906 - 44032: 0x91F9, - 47907 - 44032: 0x91FA, - 47908 - 44032: 0x91FB, - 47909 - 44032: 0x91FC, - 47910 - 44032: 0x91FD, - 47911 - 44032: 0x91FE, - 47912 - 44032: 0x9241, - 47913 - 44032: 0xB9A9, - 47914 - 44032: 0x9242, - 47915 - 44032: 0xB9AA, - 47916 - 44032: 0x9243, - 47917 - 44032: 0x9244, - 47918 - 44032: 0x9245, - 47919 - 44032: 0x9246, - 47920 - 44032: 0x9247, - 47921 - 44032: 0x9248, - 47922 - 44032: 0x9249, - 47923 - 44032: 0x924A, - 47924 - 44032: 0xB9AB, - 47925 - 44032: 0xB9AC, - 47926 - 44032: 0xB9AD, - 47927 - 44032: 0x924B, - 47928 - 44032: 0xB9AE, - 47929 - 44032: 0x924C, - 47930 - 44032: 0x924D, - 47931 - 44032: 0xB9AF, - 47932 - 44032: 0xB9B0, - 47933 - 44032: 0xB9B1, - 47934 - 44032: 0xB9B2, - 47935 - 44032: 0x924E, - 47936 - 44032: 0x924F, - 47937 - 44032: 0x9250, - 47938 - 44032: 0x9251, - 47939 - 44032: 0x9252, - 47940 - 44032: 0xB9B3, - 47941 - 44032: 0xB9B4, - 47942 - 44032: 0x9253, - 47943 - 44032: 0xB9B5, - 47944 - 44032: 0x9254, - 47945 - 44032: 0xB9B6, - 47946 - 44032: 0x9255, - 47947 - 44032: 0x9256, - 47948 - 44032: 0x9257, - 47949 - 44032: 0xB9B7, - 47950 - 44032: 0x9258, - 47951 - 44032: 0xB9B8, - 47952 - 44032: 0xB9B9, - 47953 - 44032: 0x9259, - 47954 - 44032: 0x925A, - 47955 - 44032: 0x9261, - 47956 - 44032: 0xB9BA, - 47957 - 44032: 0x9262, - 47958 - 44032: 0x9263, - 47959 - 44032: 0x9264, - 47960 - 44032: 0xB9BB, - 47961 - 44032: 0x9265, - 47962 - 44032: 0x9266, - 47963 - 44032: 0x9267, - 47964 - 44032: 0x9268, - 47965 - 44032: 0x9269, - 47966 - 44032: 0x926A, - 47967 - 44032: 0x926B, - 47968 - 44032: 0x926C, - 47969 - 44032: 0xB9BC, - 47970 - 44032: 0x926D, - 47971 - 44032: 0xB9BD, - 47972 - 44032: 0x926E, - 47973 - 44032: 0x926F, - 47974 - 44032: 0x9270, - 47975 - 44032: 0x9271, - 47976 - 44032: 0x9272, - 47977 - 44032: 0x9273, - 47978 - 44032: 0x9274, - 47979 - 44032: 0x9275, - 47980 - 44032: 0xB9BE, - 47981 - 44032: 0x9276, - 47982 - 44032: 0x9277, - 47983 - 44032: 0x9278, - 47984 - 44032: 0x9279, - 47985 - 44032: 0x927A, - 47986 - 44032: 0x9281, - 47987 - 44032: 0x9282, - 47988 - 44032: 0x9283, - 47989 - 44032: 0x9284, - 47990 - 44032: 0x9285, - 47991 - 44032: 0x9286, - 47992 - 44032: 0x9287, - 47993 - 44032: 0x9288, - 47994 - 44032: 0x9289, - 47995 - 44032: 0x928A, - 47996 - 44032: 0x928B, - 47997 - 44032: 0x928C, - 47998 - 44032: 0x928D, - 47999 - 44032: 0x928E, - 48000 - 44032: 0x928F, - 48001 - 44032: 0x9290, - 48002 - 44032: 0x9291, - 48003 - 44032: 0x9292, - 48004 - 44032: 0x9293, - 48005 - 44032: 0x9294, - 48006 - 44032: 0x9295, - 48007 - 44032: 0x9296, - 48008 - 44032: 0xB9BF, - 48009 - 44032: 0x9297, - 48010 - 44032: 0x9298, - 48011 - 44032: 0x9299, - 48012 - 44032: 0xB9C0, - 48013 - 44032: 0x929A, - 48014 - 44032: 0x929B, - 48015 - 44032: 0x929C, - 48016 - 44032: 0xB9C1, - 48017 - 44032: 0x929D, - 48018 - 44032: 0x929E, - 48019 - 44032: 0x929F, - 48020 - 44032: 0x92A0, - 48021 - 44032: 0x92A1, - 48022 - 44032: 0x92A2, - 48023 - 44032: 0x92A3, - 48024 - 44032: 0x92A4, - 48025 - 44032: 0x92A5, - 48026 - 44032: 0x92A6, - 48027 - 44032: 0x92A7, - 48028 - 44032: 0x92A8, - 48029 - 44032: 0x92A9, - 48030 - 44032: 0x92AA, - 48031 - 44032: 0x92AB, - 48032 - 44032: 0x92AC, - 48033 - 44032: 0x92AD, - 48034 - 44032: 0x92AE, - 48035 - 44032: 0x92AF, - 48036 - 44032: 0xB9C2, - 48037 - 44032: 0x92B0, - 48038 - 44032: 0x92B1, - 48039 - 44032: 0x92B2, - 48040 - 44032: 0xB9C3, - 48041 - 44032: 0x92B3, - 48042 - 44032: 0x92B4, - 48043 - 44032: 0x92B5, - 48044 - 44032: 0xB9C4, - 48045 - 44032: 0x92B6, - 48046 - 44032: 0x92B7, - 48047 - 44032: 0x92B8, - 48048 - 44032: 0x92B9, - 48049 - 44032: 0x92BA, - 48050 - 44032: 0x92BB, - 48051 - 44032: 0x92BC, - 48052 - 44032: 0xB9C5, - 48053 - 44032: 0x92BD, - 48054 - 44032: 0x92BE, - 48055 - 44032: 0xB9C6, - 48056 - 44032: 0x92BF, - 48057 - 44032: 0x92C0, - 48058 - 44032: 0x92C1, - 48059 - 44032: 0x92C2, - 48060 - 44032: 0x92C3, - 48061 - 44032: 0x92C4, - 48062 - 44032: 0x92C5, - 48063 - 44032: 0x92C6, - 48064 - 44032: 0xB9C7, - 48065 - 44032: 0x92C7, - 48066 - 44032: 0x92C8, - 48067 - 44032: 0x92C9, - 48068 - 44032: 0xB9C8, - 48069 - 44032: 0x92CA, - 48070 - 44032: 0x92CB, - 48071 - 44032: 0x92CC, - 48072 - 44032: 0xB9C9, - 48073 - 44032: 0x92CD, - 48074 - 44032: 0x92CE, - 48075 - 44032: 0x92CF, - 48076 - 44032: 0x92D0, - 48077 - 44032: 0x92D1, - 48078 - 44032: 0x92D2, - 48079 - 44032: 0x92D3, - 48080 - 44032: 0xB9CA, - 48081 - 44032: 0x92D4, - 48082 - 44032: 0x92D5, - 48083 - 44032: 0xB9CB, - 48084 - 44032: 0x92D6, - 48085 - 44032: 0x92D7, - 48086 - 44032: 0x92D8, - 48087 - 44032: 0x92D9, - 48088 - 44032: 0x92DA, - 48089 - 44032: 0x92DB, - 48090 - 44032: 0x92DC, - 48091 - 44032: 0x92DD, - 48092 - 44032: 0x92DE, - 48093 - 44032: 0x92DF, - 48094 - 44032: 0x92E0, - 48095 - 44032: 0x92E1, - 48096 - 44032: 0x92E2, - 48097 - 44032: 0x92E3, - 48098 - 44032: 0x92E4, - 48099 - 44032: 0x92E5, - 48100 - 44032: 0x92E6, - 48101 - 44032: 0x92E7, - 48102 - 44032: 0x92E8, - 48103 - 44032: 0x92E9, - 48104 - 44032: 0x92EA, - 48105 - 44032: 0x92EB, - 48106 - 44032: 0x92EC, - 48107 - 44032: 0x92ED, - 48108 - 44032: 0x92EE, - 48109 - 44032: 0x92EF, - 48110 - 44032: 0x92F0, - 48111 - 44032: 0x92F1, - 48112 - 44032: 0x92F2, - 48113 - 44032: 0x92F3, - 48114 - 44032: 0x92F4, - 48115 - 44032: 0x92F5, - 48116 - 44032: 0x92F6, - 48117 - 44032: 0x92F7, - 48118 - 44032: 0x92F8, - 48119 - 44032: 0x92F9, - 48120 - 44032: 0xB9CC, - 48121 - 44032: 0xB9CD, - 48122 - 44032: 0x92FA, - 48123 - 44032: 0x92FB, - 48124 - 44032: 0xB9CE, - 48125 - 44032: 0x92FC, - 48126 - 44032: 0x92FD, - 48127 - 44032: 0xB9CF, - 48128 - 44032: 0xB9D0, - 48129 - 44032: 0x92FE, - 48130 - 44032: 0xB9D1, - 48131 - 44032: 0x9341, - 48132 - 44032: 0x9342, - 48133 - 44032: 0x9343, - 48134 - 44032: 0x9344, - 48135 - 44032: 0x9345, - 48136 - 44032: 0xB9D2, - 48137 - 44032: 0xB9D3, - 48138 - 44032: 0x9346, - 48139 - 44032: 0xB9D4, - 48140 - 44032: 0xB9D5, - 48141 - 44032: 0xB9D6, - 48142 - 44032: 0x9347, - 48143 - 44032: 0xB9D7, - 48144 - 44032: 0x9348, - 48145 - 44032: 0xB9D8, - 48146 - 44032: 0x9349, - 48147 - 44032: 0x934A, - 48148 - 44032: 0xB9D9, - 48149 - 44032: 0xB9DA, - 48150 - 44032: 0xB9DB, - 48151 - 44032: 0xB9DC, - 48152 - 44032: 0xB9DD, - 48153 - 44032: 0x934B, - 48154 - 44032: 0x934C, - 48155 - 44032: 0xB9DE, - 48156 - 44032: 0xB9DF, - 48157 - 44032: 0xB9E0, - 48158 - 44032: 0xB9E1, - 48159 - 44032: 0xB9E2, - 48160 - 44032: 0x934D, - 48161 - 44032: 0x934E, - 48162 - 44032: 0x934F, - 48163 - 44032: 0x9350, - 48164 - 44032: 0xB9E3, - 48165 - 44032: 0xB9E4, - 48166 - 44032: 0x9351, - 48167 - 44032: 0xB9E5, - 48168 - 44032: 0x9352, - 48169 - 44032: 0xB9E6, - 48170 - 44032: 0x9353, - 48171 - 44032: 0x9354, - 48172 - 44032: 0x9355, - 48173 - 44032: 0xB9E7, - 48174 - 44032: 0x9356, - 48175 - 44032: 0x9357, - 48176 - 44032: 0xB9E8, - 48177 - 44032: 0xB9E9, - 48178 - 44032: 0x9358, - 48179 - 44032: 0x9359, - 48180 - 44032: 0xB9EA, - 48181 - 44032: 0x935A, - 48182 - 44032: 0x9361, - 48183 - 44032: 0x9362, - 48184 - 44032: 0xB9EB, - 48185 - 44032: 0x9363, - 48186 - 44032: 0x9364, - 48187 - 44032: 0x9365, - 48188 - 44032: 0x9366, - 48189 - 44032: 0x9367, - 48190 - 44032: 0x9368, - 48191 - 44032: 0x9369, - 48192 - 44032: 0xB9EC, - 48193 - 44032: 0xB9ED, - 48194 - 44032: 0x936A, - 48195 - 44032: 0xB9EE, - 48196 - 44032: 0xB9EF, - 48197 - 44032: 0xB9F0, - 48198 - 44032: 0x936B, - 48199 - 44032: 0x936C, - 48200 - 44032: 0x936D, - 48201 - 44032: 0xB9F1, - 48202 - 44032: 0x936E, - 48203 - 44032: 0x936F, - 48204 - 44032: 0xB9F2, - 48205 - 44032: 0xB9F3, - 48206 - 44032: 0x9370, - 48207 - 44032: 0x9371, - 48208 - 44032: 0xB9F4, - 48209 - 44032: 0x9372, - 48210 - 44032: 0x9373, - 48211 - 44032: 0x9374, - 48212 - 44032: 0x9375, - 48213 - 44032: 0x9376, - 48214 - 44032: 0x9377, - 48215 - 44032: 0x9378, - 48216 - 44032: 0x9379, - 48217 - 44032: 0x937A, - 48218 - 44032: 0x9381, - 48219 - 44032: 0x9382, - 48220 - 44032: 0x9383, - 48221 - 44032: 0xB9F5, - 48222 - 44032: 0x9384, - 48223 - 44032: 0x9385, - 48224 - 44032: 0x9386, - 48225 - 44032: 0x9387, - 48226 - 44032: 0x9388, - 48227 - 44032: 0x9389, - 48228 - 44032: 0x938A, - 48229 - 44032: 0x938B, - 48230 - 44032: 0x938C, - 48231 - 44032: 0x938D, - 48232 - 44032: 0x938E, - 48233 - 44032: 0x938F, - 48234 - 44032: 0x9390, - 48235 - 44032: 0x9391, - 48236 - 44032: 0x9392, - 48237 - 44032: 0x9393, - 48238 - 44032: 0x9394, - 48239 - 44032: 0x9395, - 48240 - 44032: 0x9396, - 48241 - 44032: 0x9397, - 48242 - 44032: 0x9398, - 48243 - 44032: 0x9399, - 48244 - 44032: 0x939A, - 48245 - 44032: 0x939B, - 48246 - 44032: 0x939C, - 48247 - 44032: 0x939D, - 48248 - 44032: 0x939E, - 48249 - 44032: 0x939F, - 48250 - 44032: 0x93A0, - 48251 - 44032: 0x93A1, - 48252 - 44032: 0x93A2, - 48253 - 44032: 0x93A3, - 48254 - 44032: 0x93A4, - 48255 - 44032: 0x93A5, - 48256 - 44032: 0x93A6, - 48257 - 44032: 0x93A7, - 48258 - 44032: 0x93A8, - 48259 - 44032: 0x93A9, - 48260 - 44032: 0xB9F6, - 48261 - 44032: 0xB9F7, - 48262 - 44032: 0x93AA, - 48263 - 44032: 0x93AB, - 48264 - 44032: 0xB9F8, - 48265 - 44032: 0x93AC, - 48266 - 44032: 0x93AD, - 48267 - 44032: 0xB9F9, - 48268 - 44032: 0xB9FA, - 48269 - 44032: 0x93AE, - 48270 - 44032: 0xB9FB, - 48271 - 44032: 0x93AF, - 48272 - 44032: 0x93B0, - 48273 - 44032: 0x93B1, - 48274 - 44032: 0x93B2, - 48275 - 44032: 0x93B3, - 48276 - 44032: 0xB9FC, - 48277 - 44032: 0xB9FD, - 48278 - 44032: 0x93B4, - 48279 - 44032: 0xB9FE, - 48280 - 44032: 0x93B5, - 48281 - 44032: 0xBAA1, - 48282 - 44032: 0xBAA2, - 48283 - 44032: 0x93B6, - 48284 - 44032: 0x93B7, - 48285 - 44032: 0x93B8, - 48286 - 44032: 0x93B9, - 48287 - 44032: 0x93BA, - 48288 - 44032: 0xBAA3, - 48289 - 44032: 0xBAA4, - 48290 - 44032: 0x93BB, - 48291 - 44032: 0x93BC, - 48292 - 44032: 0xBAA5, - 48293 - 44032: 0x93BD, - 48294 - 44032: 0x93BE, - 48295 - 44032: 0xBAA6, - 48296 - 44032: 0xBAA7, - 48297 - 44032: 0x93BF, - 48298 - 44032: 0x93C0, - 48299 - 44032: 0x93C1, - 48300 - 44032: 0x93C2, - 48301 - 44032: 0x93C3, - 48302 - 44032: 0x93C4, - 48303 - 44032: 0x93C5, - 48304 - 44032: 0xBAA8, - 48305 - 44032: 0xBAA9, - 48306 - 44032: 0x93C6, - 48307 - 44032: 0xBAAA, - 48308 - 44032: 0xBAAB, - 48309 - 44032: 0xBAAC, - 48310 - 44032: 0x93C7, - 48311 - 44032: 0x93C8, - 48312 - 44032: 0x93C9, - 48313 - 44032: 0x93CA, - 48314 - 44032: 0x93CB, - 48315 - 44032: 0x93CC, - 48316 - 44032: 0xBAAD, - 48317 - 44032: 0xBAAE, - 48318 - 44032: 0x93CD, - 48319 - 44032: 0x93CE, - 48320 - 44032: 0xBAAF, - 48321 - 44032: 0x93CF, - 48322 - 44032: 0x93D0, - 48323 - 44032: 0x93D1, - 48324 - 44032: 0xBAB0, - 48325 - 44032: 0x93D2, - 48326 - 44032: 0x93D3, - 48327 - 44032: 0x93D4, - 48328 - 44032: 0x93D5, - 48329 - 44032: 0x93D6, - 48330 - 44032: 0x93D7, - 48331 - 44032: 0x93D8, - 48332 - 44032: 0x93D9, - 48333 - 44032: 0xBAB1, - 48334 - 44032: 0x93DA, - 48335 - 44032: 0xBAB2, - 48336 - 44032: 0xBAB3, - 48337 - 44032: 0xBAB4, - 48338 - 44032: 0x93DB, - 48339 - 44032: 0x93DC, - 48340 - 44032: 0x93DD, - 48341 - 44032: 0xBAB5, - 48342 - 44032: 0x93DE, - 48343 - 44032: 0x93DF, - 48344 - 44032: 0xBAB6, - 48345 - 44032: 0x93E0, - 48346 - 44032: 0x93E1, - 48347 - 44032: 0x93E2, - 48348 - 44032: 0xBAB7, - 48349 - 44032: 0x93E3, - 48350 - 44032: 0x93E4, - 48351 - 44032: 0x93E5, - 48352 - 44032: 0x93E6, - 48353 - 44032: 0x93E7, - 48354 - 44032: 0x93E8, - 48355 - 44032: 0x93E9, - 48356 - 44032: 0x93EA, - 48357 - 44032: 0x93EB, - 48358 - 44032: 0x93EC, - 48359 - 44032: 0x93ED, - 48360 - 44032: 0x93EE, - 48361 - 44032: 0x93EF, - 48362 - 44032: 0x93F0, - 48363 - 44032: 0x93F1, - 48364 - 44032: 0x93F2, - 48365 - 44032: 0x93F3, - 48366 - 44032: 0x93F4, - 48367 - 44032: 0x93F5, - 48368 - 44032: 0x93F6, - 48369 - 44032: 0x93F7, - 48370 - 44032: 0x93F8, - 48371 - 44032: 0x93F9, - 48372 - 44032: 0xBAB8, - 48373 - 44032: 0xBAB9, - 48374 - 44032: 0xBABA, - 48375 - 44032: 0x93FA, - 48376 - 44032: 0xBABB, - 48377 - 44032: 0x93FB, - 48378 - 44032: 0x93FC, - 48379 - 44032: 0x93FD, - 48380 - 44032: 0xBABC, - 48381 - 44032: 0x93FE, - 48382 - 44032: 0x9441, - 48383 - 44032: 0x9442, - 48384 - 44032: 0x9443, - 48385 - 44032: 0x9444, - 48386 - 44032: 0x9445, - 48387 - 44032: 0x9446, - 48388 - 44032: 0xBABD, - 48389 - 44032: 0xBABE, - 48390 - 44032: 0x9447, - 48391 - 44032: 0xBABF, - 48392 - 44032: 0x9448, - 48393 - 44032: 0xBAC0, - 48394 - 44032: 0x9449, - 48395 - 44032: 0x944A, - 48396 - 44032: 0x944B, - 48397 - 44032: 0x944C, - 48398 - 44032: 0x944D, - 48399 - 44032: 0x944E, - 48400 - 44032: 0xBAC1, - 48401 - 44032: 0x944F, - 48402 - 44032: 0x9450, - 48403 - 44032: 0x9451, - 48404 - 44032: 0xBAC2, - 48405 - 44032: 0x9452, - 48406 - 44032: 0x9453, - 48407 - 44032: 0x9454, - 48408 - 44032: 0x9455, - 48409 - 44032: 0x9456, - 48410 - 44032: 0x9457, - 48411 - 44032: 0x9458, - 48412 - 44032: 0x9459, - 48413 - 44032: 0x945A, - 48414 - 44032: 0x9461, - 48415 - 44032: 0x9462, - 48416 - 44032: 0x9463, - 48417 - 44032: 0x9464, - 48418 - 44032: 0x9465, - 48419 - 44032: 0x9466, - 48420 - 44032: 0xBAC3, - 48421 - 44032: 0x9467, - 48422 - 44032: 0x9468, - 48423 - 44032: 0x9469, - 48424 - 44032: 0x946A, - 48425 - 44032: 0x946B, - 48426 - 44032: 0x946C, - 48427 - 44032: 0x946D, - 48428 - 44032: 0xBAC4, - 48429 - 44032: 0x946E, - 48430 - 44032: 0x946F, - 48431 - 44032: 0x9470, - 48432 - 44032: 0x9471, - 48433 - 44032: 0x9472, - 48434 - 44032: 0x9473, - 48435 - 44032: 0x9474, - 48436 - 44032: 0x9475, - 48437 - 44032: 0x9476, - 48438 - 44032: 0x9477, - 48439 - 44032: 0x9478, - 48440 - 44032: 0x9479, - 48441 - 44032: 0x947A, - 48442 - 44032: 0x9481, - 48443 - 44032: 0x9482, - 48444 - 44032: 0x9483, - 48445 - 44032: 0x9484, - 48446 - 44032: 0x9485, - 48447 - 44032: 0x9486, - 48448 - 44032: 0xBAC5, - 48449 - 44032: 0x9487, - 48450 - 44032: 0x9488, - 48451 - 44032: 0x9489, - 48452 - 44032: 0x948A, - 48453 - 44032: 0x948B, - 48454 - 44032: 0x948C, - 48455 - 44032: 0x948D, - 48456 - 44032: 0xBAC6, - 48457 - 44032: 0xBAC7, - 48458 - 44032: 0x948E, - 48459 - 44032: 0x948F, - 48460 - 44032: 0xBAC8, - 48461 - 44032: 0x9490, - 48462 - 44032: 0x9491, - 48463 - 44032: 0x9492, - 48464 - 44032: 0xBAC9, - 48465 - 44032: 0x9493, - 48466 - 44032: 0x9494, - 48467 - 44032: 0x9495, - 48468 - 44032: 0x9496, - 48469 - 44032: 0x9497, - 48470 - 44032: 0x9498, - 48471 - 44032: 0x9499, - 48472 - 44032: 0xBACA, - 48473 - 44032: 0xBACB, - 48474 - 44032: 0x949A, - 48475 - 44032: 0x949B, - 48476 - 44032: 0x949C, - 48477 - 44032: 0x949D, - 48478 - 44032: 0x949E, - 48479 - 44032: 0x949F, - 48480 - 44032: 0x94A0, - 48481 - 44032: 0x94A1, - 48482 - 44032: 0x94A2, - 48483 - 44032: 0x94A3, - 48484 - 44032: 0xBACC, - 48485 - 44032: 0x94A4, - 48486 - 44032: 0x94A5, - 48487 - 44032: 0x94A6, - 48488 - 44032: 0xBACD, - 48489 - 44032: 0x94A7, - 48490 - 44032: 0x94A8, - 48491 - 44032: 0x94A9, - 48492 - 44032: 0x94AA, - 48493 - 44032: 0x94AB, - 48494 - 44032: 0x94AC, - 48495 - 44032: 0x94AD, - 48496 - 44032: 0x94AE, - 48497 - 44032: 0x94AF, - 48498 - 44032: 0x94B0, - 48499 - 44032: 0x94B1, - 48500 - 44032: 0x94B2, - 48501 - 44032: 0x94B3, - 48502 - 44032: 0x94B4, - 48503 - 44032: 0x94B5, - 48504 - 44032: 0x94B6, - 48505 - 44032: 0x94B7, - 48506 - 44032: 0x94B8, - 48507 - 44032: 0x94B9, - 48508 - 44032: 0x94BA, - 48509 - 44032: 0x94BB, - 48510 - 44032: 0x94BC, - 48511 - 44032: 0x94BD, - 48512 - 44032: 0xBACE, - 48513 - 44032: 0xBACF, - 48514 - 44032: 0x94BE, - 48515 - 44032: 0x94BF, - 48516 - 44032: 0xBAD0, - 48517 - 44032: 0x94C0, - 48518 - 44032: 0x94C1, - 48519 - 44032: 0xBAD1, - 48520 - 44032: 0xBAD2, - 48521 - 44032: 0xBAD3, - 48522 - 44032: 0xBAD4, - 48523 - 44032: 0x94C2, - 48524 - 44032: 0x94C3, - 48525 - 44032: 0x94C4, - 48526 - 44032: 0x94C5, - 48527 - 44032: 0x94C6, - 48528 - 44032: 0xBAD5, - 48529 - 44032: 0xBAD6, - 48530 - 44032: 0x94C7, - 48531 - 44032: 0xBAD7, - 48532 - 44032: 0x94C8, - 48533 - 44032: 0xBAD8, - 48534 - 44032: 0x94C9, - 48535 - 44032: 0x94CA, - 48536 - 44032: 0x94CB, - 48537 - 44032: 0xBAD9, - 48538 - 44032: 0xBADA, - 48539 - 44032: 0x94CC, - 48540 - 44032: 0xBADB, - 48541 - 44032: 0x94CD, - 48542 - 44032: 0x94CE, - 48543 - 44032: 0x94CF, - 48544 - 44032: 0x94D0, - 48545 - 44032: 0x94D1, - 48546 - 44032: 0x94D2, - 48547 - 44032: 0x94D3, - 48548 - 44032: 0xBADC, - 48549 - 44032: 0x94D4, - 48550 - 44032: 0x94D5, - 48551 - 44032: 0x94D6, - 48552 - 44032: 0x94D7, - 48553 - 44032: 0x94D8, - 48554 - 44032: 0x94D9, - 48555 - 44032: 0x94DA, - 48556 - 44032: 0x94DB, - 48557 - 44032: 0x94DC, - 48558 - 44032: 0x94DD, - 48559 - 44032: 0x94DE, - 48560 - 44032: 0xBADD, - 48561 - 44032: 0x94DF, - 48562 - 44032: 0x94E0, - 48563 - 44032: 0x94E1, - 48564 - 44032: 0x94E2, - 48565 - 44032: 0x94E3, - 48566 - 44032: 0x94E4, - 48567 - 44032: 0x94E5, - 48568 - 44032: 0xBADE, - 48569 - 44032: 0x94E6, - 48570 - 44032: 0x94E7, - 48571 - 44032: 0x94E8, - 48572 - 44032: 0x94E9, - 48573 - 44032: 0x94EA, - 48574 - 44032: 0x94EB, - 48575 - 44032: 0x94EC, - 48576 - 44032: 0x94ED, - 48577 - 44032: 0x94EE, - 48578 - 44032: 0x94EF, - 48579 - 44032: 0x94F0, - 48580 - 44032: 0x94F1, - 48581 - 44032: 0x94F2, - 48582 - 44032: 0x94F3, - 48583 - 44032: 0x94F4, - 48584 - 44032: 0x94F5, - 48585 - 44032: 0x94F6, - 48586 - 44032: 0x94F7, - 48587 - 44032: 0x94F8, - 48588 - 44032: 0x94F9, - 48589 - 44032: 0x94FA, - 48590 - 44032: 0x94FB, - 48591 - 44032: 0x94FC, - 48592 - 44032: 0x94FD, - 48593 - 44032: 0x94FE, - 48594 - 44032: 0x9541, - 48595 - 44032: 0x9542, - 48596 - 44032: 0xBADF, - 48597 - 44032: 0xBAE0, - 48598 - 44032: 0x9543, - 48599 - 44032: 0x9544, - 48600 - 44032: 0xBAE1, - 48601 - 44032: 0x9545, - 48602 - 44032: 0x9546, - 48603 - 44032: 0x9547, - 48604 - 44032: 0xBAE2, - 48605 - 44032: 0x9548, - 48606 - 44032: 0x9549, - 48607 - 44032: 0x954A, - 48608 - 44032: 0x954B, - 48609 - 44032: 0x954C, - 48610 - 44032: 0x954D, - 48611 - 44032: 0x954E, - 48612 - 44032: 0x954F, - 48613 - 44032: 0x9550, - 48614 - 44032: 0x9551, - 48615 - 44032: 0x9552, - 48616 - 44032: 0x9553, - 48617 - 44032: 0xBAE3, - 48618 - 44032: 0x9554, - 48619 - 44032: 0x9555, - 48620 - 44032: 0x9556, - 48621 - 44032: 0x9557, - 48622 - 44032: 0x9558, - 48623 - 44032: 0x9559, - 48624 - 44032: 0xBAE4, - 48625 - 44032: 0x955A, - 48626 - 44032: 0x9561, - 48627 - 44032: 0x9562, - 48628 - 44032: 0xBAE5, - 48629 - 44032: 0x9563, - 48630 - 44032: 0x9564, - 48631 - 44032: 0x9565, - 48632 - 44032: 0xBAE6, - 48633 - 44032: 0x9566, - 48634 - 44032: 0x9567, - 48635 - 44032: 0x9568, - 48636 - 44032: 0x9569, - 48637 - 44032: 0x956A, - 48638 - 44032: 0x956B, - 48639 - 44032: 0x956C, - 48640 - 44032: 0xBAE7, - 48641 - 44032: 0x956D, - 48642 - 44032: 0x956E, - 48643 - 44032: 0xBAE8, - 48644 - 44032: 0x956F, - 48645 - 44032: 0xBAE9, - 48646 - 44032: 0x9570, - 48647 - 44032: 0x9571, - 48648 - 44032: 0x9572, - 48649 - 44032: 0x9573, - 48650 - 44032: 0x9574, - 48651 - 44032: 0x9575, - 48652 - 44032: 0xBAEA, - 48653 - 44032: 0xBAEB, - 48654 - 44032: 0x9576, - 48655 - 44032: 0x9577, - 48656 - 44032: 0xBAEC, - 48657 - 44032: 0x9578, - 48658 - 44032: 0x9579, - 48659 - 44032: 0x957A, - 48660 - 44032: 0xBAED, - 48661 - 44032: 0x9581, - 48662 - 44032: 0x9582, - 48663 - 44032: 0x9583, - 48664 - 44032: 0x9584, - 48665 - 44032: 0x9585, - 48666 - 44032: 0x9586, - 48667 - 44032: 0x9587, - 48668 - 44032: 0xBAEE, - 48669 - 44032: 0xBAEF, - 48670 - 44032: 0x9588, - 48671 - 44032: 0xBAF0, - 48672 - 44032: 0x9589, - 48673 - 44032: 0x958A, - 48674 - 44032: 0x958B, - 48675 - 44032: 0x958C, - 48676 - 44032: 0x958D, - 48677 - 44032: 0x958E, - 48678 - 44032: 0x958F, - 48679 - 44032: 0x9590, - 48680 - 44032: 0x9591, - 48681 - 44032: 0x9592, - 48682 - 44032: 0x9593, - 48683 - 44032: 0x9594, - 48684 - 44032: 0x9595, - 48685 - 44032: 0x9596, - 48686 - 44032: 0x9597, - 48687 - 44032: 0x9598, - 48688 - 44032: 0x9599, - 48689 - 44032: 0x959A, - 48690 - 44032: 0x959B, - 48691 - 44032: 0x959C, - 48692 - 44032: 0x959D, - 48693 - 44032: 0x959E, - 48694 - 44032: 0x959F, - 48695 - 44032: 0x95A0, - 48696 - 44032: 0x95A1, - 48697 - 44032: 0x95A2, - 48698 - 44032: 0x95A3, - 48699 - 44032: 0x95A4, - 48700 - 44032: 0x95A5, - 48701 - 44032: 0x95A6, - 48702 - 44032: 0x95A7, - 48703 - 44032: 0x95A8, - 48704 - 44032: 0x95A9, - 48705 - 44032: 0x95AA, - 48706 - 44032: 0x95AB, - 48707 - 44032: 0x95AC, - 48708 - 44032: 0xBAF1, - 48709 - 44032: 0xBAF2, - 48710 - 44032: 0x95AD, - 48711 - 44032: 0x95AE, - 48712 - 44032: 0xBAF3, - 48713 - 44032: 0x95AF, - 48714 - 44032: 0x95B0, - 48715 - 44032: 0x95B1, - 48716 - 44032: 0xBAF4, - 48717 - 44032: 0x95B2, - 48718 - 44032: 0xBAF5, - 48719 - 44032: 0x95B3, - 48720 - 44032: 0x95B4, - 48721 - 44032: 0x95B5, - 48722 - 44032: 0x95B6, - 48723 - 44032: 0x95B7, - 48724 - 44032: 0xBAF6, - 48725 - 44032: 0xBAF7, - 48726 - 44032: 0x95B8, - 48727 - 44032: 0xBAF8, - 48728 - 44032: 0x95B9, - 48729 - 44032: 0xBAF9, - 48730 - 44032: 0xBAFA, - 48731 - 44032: 0xBAFB, - 48732 - 44032: 0x95BA, - 48733 - 44032: 0x95BB, - 48734 - 44032: 0x95BC, - 48735 - 44032: 0x95BD, - 48736 - 44032: 0xBAFC, - 48737 - 44032: 0xBAFD, - 48738 - 44032: 0x95BE, - 48739 - 44032: 0x95BF, - 48740 - 44032: 0xBAFE, - 48741 - 44032: 0x95C0, - 48742 - 44032: 0x95C1, - 48743 - 44032: 0x95C2, - 48744 - 44032: 0xBBA1, - 48745 - 44032: 0x95C3, - 48746 - 44032: 0xBBA2, - 48747 - 44032: 0x95C4, - 48748 - 44032: 0x95C5, - 48749 - 44032: 0x95C6, - 48750 - 44032: 0x95C7, - 48751 - 44032: 0x95C8, - 48752 - 44032: 0xBBA3, - 48753 - 44032: 0xBBA4, - 48754 - 44032: 0x95C9, - 48755 - 44032: 0xBBA5, - 48756 - 44032: 0xBBA6, - 48757 - 44032: 0xBBA7, - 48758 - 44032: 0x95CA, - 48759 - 44032: 0x95CB, - 48760 - 44032: 0x95CC, - 48761 - 44032: 0x95CD, - 48762 - 44032: 0x95CE, - 48763 - 44032: 0xBBA8, - 48764 - 44032: 0xBBA9, - 48765 - 44032: 0xBBAA, - 48766 - 44032: 0x95CF, - 48767 - 44032: 0x95D0, - 48768 - 44032: 0xBBAB, - 48769 - 44032: 0x95D1, - 48770 - 44032: 0x95D2, - 48771 - 44032: 0x95D3, - 48772 - 44032: 0xBBAC, - 48773 - 44032: 0x95D4, - 48774 - 44032: 0x95D5, - 48775 - 44032: 0x95D6, - 48776 - 44032: 0x95D7, - 48777 - 44032: 0x95D8, - 48778 - 44032: 0x95D9, - 48779 - 44032: 0x95DA, - 48780 - 44032: 0xBBAD, - 48781 - 44032: 0xBBAE, - 48782 - 44032: 0x95DB, - 48783 - 44032: 0xBBAF, - 48784 - 44032: 0xBBB0, - 48785 - 44032: 0xBBB1, - 48786 - 44032: 0x95DC, - 48787 - 44032: 0x95DD, - 48788 - 44032: 0x95DE, - 48789 - 44032: 0x95DF, - 48790 - 44032: 0x95E0, - 48791 - 44032: 0x95E1, - 48792 - 44032: 0xBBB2, - 48793 - 44032: 0xBBB3, - 48794 - 44032: 0x95E2, - 48795 - 44032: 0x95E3, - 48796 - 44032: 0x95E4, - 48797 - 44032: 0x95E5, - 48798 - 44032: 0x95E6, - 48799 - 44032: 0x95E7, - 48800 - 44032: 0x95E8, - 48801 - 44032: 0x95E9, - 48802 - 44032: 0x95EA, - 48803 - 44032: 0x95EB, - 48804 - 44032: 0x95EC, - 48805 - 44032: 0x95ED, - 48806 - 44032: 0x95EE, - 48807 - 44032: 0x95EF, - 48808 - 44032: 0xBBB4, - 48809 - 44032: 0x95F0, - 48810 - 44032: 0x95F1, - 48811 - 44032: 0x95F2, - 48812 - 44032: 0x95F3, - 48813 - 44032: 0x95F4, - 48814 - 44032: 0x95F5, - 48815 - 44032: 0x95F6, - 48816 - 44032: 0x95F7, - 48817 - 44032: 0x95F8, - 48818 - 44032: 0x95F9, - 48819 - 44032: 0x95FA, - 48820 - 44032: 0x95FB, - 48821 - 44032: 0x95FC, - 48822 - 44032: 0x95FD, - 48823 - 44032: 0x95FE, - 48824 - 44032: 0x9641, - 48825 - 44032: 0x9642, - 48826 - 44032: 0x9643, - 48827 - 44032: 0x9644, - 48828 - 44032: 0x9645, - 48829 - 44032: 0x9646, - 48830 - 44032: 0x9647, - 48831 - 44032: 0x9648, - 48832 - 44032: 0x9649, - 48833 - 44032: 0x964A, - 48834 - 44032: 0x964B, - 48835 - 44032: 0x964C, - 48836 - 44032: 0x964D, - 48837 - 44032: 0x964E, - 48838 - 44032: 0x964F, - 48839 - 44032: 0x9650, - 48840 - 44032: 0x9651, - 48841 - 44032: 0x9652, - 48842 - 44032: 0x9653, - 48843 - 44032: 0x9654, - 48844 - 44032: 0x9655, - 48845 - 44032: 0x9656, - 48846 - 44032: 0x9657, - 48847 - 44032: 0x9658, - 48848 - 44032: 0xBBB5, - 48849 - 44032: 0xBBB6, - 48850 - 44032: 0x9659, - 48851 - 44032: 0x965A, - 48852 - 44032: 0xBBB7, - 48853 - 44032: 0x9661, - 48854 - 44032: 0x9662, - 48855 - 44032: 0xBBB8, - 48856 - 44032: 0xBBB9, - 48857 - 44032: 0x9663, - 48858 - 44032: 0x9664, - 48859 - 44032: 0x9665, - 48860 - 44032: 0x9666, - 48861 - 44032: 0x9667, - 48862 - 44032: 0x9668, - 48863 - 44032: 0x9669, - 48864 - 44032: 0xBBBA, - 48865 - 44032: 0x966A, - 48866 - 44032: 0x966B, - 48867 - 44032: 0xBBBB, - 48868 - 44032: 0xBBBC, - 48869 - 44032: 0xBBBD, - 48870 - 44032: 0x966C, - 48871 - 44032: 0x966D, - 48872 - 44032: 0x966E, - 48873 - 44032: 0x966F, - 48874 - 44032: 0x9670, - 48875 - 44032: 0x9671, - 48876 - 44032: 0xBBBE, - 48877 - 44032: 0x9672, - 48878 - 44032: 0x9673, - 48879 - 44032: 0x9674, - 48880 - 44032: 0x9675, - 48881 - 44032: 0x9676, - 48882 - 44032: 0x9677, - 48883 - 44032: 0x9678, - 48884 - 44032: 0x9679, - 48885 - 44032: 0x967A, - 48886 - 44032: 0x9681, - 48887 - 44032: 0x9682, - 48888 - 44032: 0x9683, - 48889 - 44032: 0x9684, - 48890 - 44032: 0x9685, - 48891 - 44032: 0x9686, - 48892 - 44032: 0x9687, - 48893 - 44032: 0x9688, - 48894 - 44032: 0x9689, - 48895 - 44032: 0x968A, - 48896 - 44032: 0x968B, - 48897 - 44032: 0xBBBF, - 48898 - 44032: 0x968C, - 48899 - 44032: 0x968D, - 48900 - 44032: 0x968E, - 48901 - 44032: 0x968F, - 48902 - 44032: 0x9690, - 48903 - 44032: 0x9691, - 48904 - 44032: 0xBBC0, - 48905 - 44032: 0xBBC1, - 48906 - 44032: 0x9692, - 48907 - 44032: 0x9693, - 48908 - 44032: 0x9694, - 48909 - 44032: 0x9695, - 48910 - 44032: 0x9696, - 48911 - 44032: 0x9697, - 48912 - 44032: 0x9698, - 48913 - 44032: 0x9699, - 48914 - 44032: 0x969A, - 48915 - 44032: 0x969B, - 48916 - 44032: 0x969C, - 48917 - 44032: 0x969D, - 48918 - 44032: 0x969E, - 48919 - 44032: 0x969F, - 48920 - 44032: 0xBBC2, - 48921 - 44032: 0xBBC3, - 48922 - 44032: 0x96A0, - 48923 - 44032: 0xBBC4, - 48924 - 44032: 0xBBC5, - 48925 - 44032: 0xBBC6, - 48926 - 44032: 0x96A1, - 48927 - 44032: 0x96A2, - 48928 - 44032: 0x96A3, - 48929 - 44032: 0x96A4, - 48930 - 44032: 0x96A5, - 48931 - 44032: 0x96A6, - 48932 - 44032: 0x96A7, - 48933 - 44032: 0x96A8, - 48934 - 44032: 0x96A9, - 48935 - 44032: 0x96AA, - 48936 - 44032: 0x96AB, - 48937 - 44032: 0x96AC, - 48938 - 44032: 0x96AD, - 48939 - 44032: 0x96AE, - 48940 - 44032: 0x96AF, - 48941 - 44032: 0x96B0, - 48942 - 44032: 0x96B1, - 48943 - 44032: 0x96B2, - 48944 - 44032: 0x96B3, - 48945 - 44032: 0x96B4, - 48946 - 44032: 0x96B5, - 48947 - 44032: 0x96B6, - 48948 - 44032: 0x96B7, - 48949 - 44032: 0x96B8, - 48950 - 44032: 0x96B9, - 48951 - 44032: 0x96BA, - 48952 - 44032: 0x96BB, - 48953 - 44032: 0x96BC, - 48954 - 44032: 0x96BD, - 48955 - 44032: 0x96BE, - 48956 - 44032: 0x96BF, - 48957 - 44032: 0x96C0, - 48958 - 44032: 0x96C1, - 48959 - 44032: 0x96C2, - 48960 - 44032: 0xBBC7, - 48961 - 44032: 0xBBC8, - 48962 - 44032: 0x96C3, - 48963 - 44032: 0x96C4, - 48964 - 44032: 0xBBC9, - 48965 - 44032: 0x96C5, - 48966 - 44032: 0x96C6, - 48967 - 44032: 0x96C7, - 48968 - 44032: 0xBBCA, - 48969 - 44032: 0x96C8, - 48970 - 44032: 0x96C9, - 48971 - 44032: 0x96CA, - 48972 - 44032: 0x96CB, - 48973 - 44032: 0x96CC, - 48974 - 44032: 0x96CD, - 48975 - 44032: 0x96CE, - 48976 - 44032: 0xBBCB, - 48977 - 44032: 0xBBCC, - 48978 - 44032: 0x96CF, - 48979 - 44032: 0x96D0, - 48980 - 44032: 0x96D1, - 48981 - 44032: 0xBBCD, - 48982 - 44032: 0x96D2, - 48983 - 44032: 0x96D3, - 48984 - 44032: 0x96D4, - 48985 - 44032: 0x96D5, - 48986 - 44032: 0x96D6, - 48987 - 44032: 0x96D7, - 48988 - 44032: 0x96D8, - 48989 - 44032: 0x96D9, - 48990 - 44032: 0x96DA, - 48991 - 44032: 0x96DB, - 48992 - 44032: 0x96DC, - 48993 - 44032: 0x96DD, - 48994 - 44032: 0x96DE, - 48995 - 44032: 0x96DF, - 48996 - 44032: 0x96E0, - 48997 - 44032: 0x96E1, - 48998 - 44032: 0x96E2, - 48999 - 44032: 0x96E3, - 49000 - 44032: 0x96E4, - 49001 - 44032: 0x96E5, - 49002 - 44032: 0x96E6, - 49003 - 44032: 0x96E7, - 49004 - 44032: 0x96E8, - 49005 - 44032: 0x96E9, - 49006 - 44032: 0x96EA, - 49007 - 44032: 0x96EB, - 49008 - 44032: 0x96EC, - 49009 - 44032: 0x96ED, - 49010 - 44032: 0x96EE, - 49011 - 44032: 0x96EF, - 49012 - 44032: 0x96F0, - 49013 - 44032: 0x96F1, - 49014 - 44032: 0x96F2, - 49015 - 44032: 0x96F3, - 49016 - 44032: 0x96F4, - 49017 - 44032: 0x96F5, - 49018 - 44032: 0x96F6, - 49019 - 44032: 0x96F7, - 49020 - 44032: 0x96F8, - 49021 - 44032: 0x96F9, - 49022 - 44032: 0x96FA, - 49023 - 44032: 0x96FB, - 49024 - 44032: 0x96FC, - 49025 - 44032: 0x96FD, - 49026 - 44032: 0x96FE, - 49027 - 44032: 0x9741, - 49028 - 44032: 0x9742, - 49029 - 44032: 0x9743, - 49030 - 44032: 0x9744, - 49031 - 44032: 0x9745, - 49032 - 44032: 0x9746, - 49033 - 44032: 0x9747, - 49034 - 44032: 0x9748, - 49035 - 44032: 0x9749, - 49036 - 44032: 0x974A, - 49037 - 44032: 0x974B, - 49038 - 44032: 0x974C, - 49039 - 44032: 0x974D, - 49040 - 44032: 0x974E, - 49041 - 44032: 0x974F, - 49042 - 44032: 0x9750, - 49043 - 44032: 0x9751, - 49044 - 44032: 0xBBCE, - 49045 - 44032: 0x9752, - 49046 - 44032: 0x9753, - 49047 - 44032: 0x9754, - 49048 - 44032: 0x9755, - 49049 - 44032: 0x9756, - 49050 - 44032: 0x9757, - 49051 - 44032: 0x9758, - 49052 - 44032: 0x9759, - 49053 - 44032: 0x975A, - 49054 - 44032: 0x9761, - 49055 - 44032: 0x9762, - 49056 - 44032: 0x9763, - 49057 - 44032: 0x9764, - 49058 - 44032: 0x9765, - 49059 - 44032: 0x9766, - 49060 - 44032: 0x9767, - 49061 - 44032: 0x9768, - 49062 - 44032: 0x9769, - 49063 - 44032: 0x976A, - 49064 - 44032: 0x976B, - 49065 - 44032: 0x976C, - 49066 - 44032: 0x976D, - 49067 - 44032: 0x976E, - 49068 - 44032: 0x976F, - 49069 - 44032: 0x9770, - 49070 - 44032: 0x9771, - 49071 - 44032: 0x9772, - 49072 - 44032: 0xBBCF, - 49073 - 44032: 0x9773, - 49074 - 44032: 0x9774, - 49075 - 44032: 0x9775, - 49076 - 44032: 0x9776, - 49077 - 44032: 0x9777, - 49078 - 44032: 0x9778, - 49079 - 44032: 0x9779, - 49080 - 44032: 0x977A, - 49081 - 44032: 0x9781, - 49082 - 44032: 0x9782, - 49083 - 44032: 0x9783, - 49084 - 44032: 0x9784, - 49085 - 44032: 0x9785, - 49086 - 44032: 0x9786, - 49087 - 44032: 0x9787, - 49088 - 44032: 0x9788, - 49089 - 44032: 0x9789, - 49090 - 44032: 0x978A, - 49091 - 44032: 0x978B, - 49092 - 44032: 0x978C, - 49093 - 44032: 0xBBD0, - 49094 - 44032: 0x978D, - 49095 - 44032: 0x978E, - 49096 - 44032: 0x978F, - 49097 - 44032: 0x9790, - 49098 - 44032: 0x9791, - 49099 - 44032: 0x9792, - 49100 - 44032: 0xBBD1, - 49101 - 44032: 0xBBD2, - 49102 - 44032: 0x9793, - 49103 - 44032: 0x9794, - 49104 - 44032: 0xBBD3, - 49105 - 44032: 0x9795, - 49106 - 44032: 0x9796, - 49107 - 44032: 0x9797, - 49108 - 44032: 0xBBD4, - 49109 - 44032: 0x9798, - 49110 - 44032: 0x9799, - 49111 - 44032: 0x979A, - 49112 - 44032: 0x979B, - 49113 - 44032: 0x979C, - 49114 - 44032: 0x979D, - 49115 - 44032: 0x979E, - 49116 - 44032: 0xBBD5, - 49117 - 44032: 0x979F, - 49118 - 44032: 0x97A0, - 49119 - 44032: 0xBBD6, - 49120 - 44032: 0x97A1, - 49121 - 44032: 0xBBD7, - 49122 - 44032: 0x97A2, - 49123 - 44032: 0x97A3, - 49124 - 44032: 0x97A4, - 49125 - 44032: 0x97A5, - 49126 - 44032: 0x97A6, - 49127 - 44032: 0x97A7, - 49128 - 44032: 0x97A8, - 49129 - 44032: 0x97A9, - 49130 - 44032: 0x97AA, - 49131 - 44032: 0x97AB, - 49132 - 44032: 0x97AC, - 49133 - 44032: 0x97AD, - 49134 - 44032: 0x97AE, - 49135 - 44032: 0x97AF, - 49136 - 44032: 0x97B0, - 49137 - 44032: 0x97B1, - 49138 - 44032: 0x97B2, - 49139 - 44032: 0x97B3, - 49140 - 44032: 0x97B4, - 49141 - 44032: 0x97B5, - 49142 - 44032: 0x97B6, - 49143 - 44032: 0x97B7, - 49144 - 44032: 0x97B8, - 49145 - 44032: 0x97B9, - 49146 - 44032: 0x97BA, - 49147 - 44032: 0x97BB, - 49148 - 44032: 0x97BC, - 49149 - 44032: 0x97BD, - 49150 - 44032: 0x97BE, - 49151 - 44032: 0x97BF, - 49152 - 44032: 0x97C0, - 49153 - 44032: 0x97C1, - 49154 - 44032: 0x97C2, - 49155 - 44032: 0x97C3, - 49156 - 44032: 0x97C4, - 49157 - 44032: 0x97C5, - 49158 - 44032: 0x97C6, - 49159 - 44032: 0x97C7, - 49160 - 44032: 0x97C8, - 49161 - 44032: 0x97C9, - 49162 - 44032: 0x97CA, - 49163 - 44032: 0x97CB, - 49164 - 44032: 0x97CC, - 49165 - 44032: 0x97CD, - 49166 - 44032: 0x97CE, - 49167 - 44032: 0x97CF, - 49168 - 44032: 0x97D0, - 49169 - 44032: 0x97D1, - 49170 - 44032: 0x97D2, - 49171 - 44032: 0x97D3, - 49172 - 44032: 0x97D4, - 49173 - 44032: 0x97D5, - 49174 - 44032: 0x97D6, - 49175 - 44032: 0x97D7, - 49176 - 44032: 0x97D8, - 49177 - 44032: 0x97D9, - 49178 - 44032: 0x97DA, - 49179 - 44032: 0x97DB, - 49180 - 44032: 0x97DC, - 49181 - 44032: 0x97DD, - 49182 - 44032: 0x97DE, - 49183 - 44032: 0x97DF, - 49184 - 44032: 0x97E0, - 49185 - 44032: 0x97E1, - 49186 - 44032: 0x97E2, - 49187 - 44032: 0x97E3, - 49188 - 44032: 0x97E4, - 49189 - 44032: 0x97E5, - 49190 - 44032: 0x97E6, - 49191 - 44032: 0x97E7, - 49192 - 44032: 0x97E8, - 49193 - 44032: 0x97E9, - 49194 - 44032: 0x97EA, - 49195 - 44032: 0x97EB, - 49196 - 44032: 0x97EC, - 49197 - 44032: 0x97ED, - 49198 - 44032: 0x97EE, - 49199 - 44032: 0x97EF, - 49200 - 44032: 0x97F0, - 49201 - 44032: 0x97F1, - 49202 - 44032: 0x97F2, - 49203 - 44032: 0x97F3, - 49204 - 44032: 0x97F4, - 49205 - 44032: 0x97F5, - 49206 - 44032: 0x97F6, - 49207 - 44032: 0x97F7, - 49208 - 44032: 0x97F8, - 49209 - 44032: 0x97F9, - 49210 - 44032: 0x97FA, - 49211 - 44032: 0x97FB, - 49212 - 44032: 0xBBD8, - 49213 - 44032: 0x97FC, - 49214 - 44032: 0x97FD, - 49215 - 44032: 0x97FE, - 49216 - 44032: 0x9841, - 49217 - 44032: 0x9842, - 49218 - 44032: 0x9843, - 49219 - 44032: 0x9844, - 49220 - 44032: 0x9845, - 49221 - 44032: 0x9846, - 49222 - 44032: 0x9847, - 49223 - 44032: 0x9848, - 49224 - 44032: 0x9849, - 49225 - 44032: 0x984A, - 49226 - 44032: 0x984B, - 49227 - 44032: 0x984C, - 49228 - 44032: 0x984D, - 49229 - 44032: 0x984E, - 49230 - 44032: 0x984F, - 49231 - 44032: 0x9850, - 49232 - 44032: 0x9851, - 49233 - 44032: 0xBBD9, - 49234 - 44032: 0x9852, - 49235 - 44032: 0x9853, - 49236 - 44032: 0x9854, - 49237 - 44032: 0x9855, - 49238 - 44032: 0x9856, - 49239 - 44032: 0x9857, - 49240 - 44032: 0xBBDA, - 49241 - 44032: 0x9858, - 49242 - 44032: 0x9859, - 49243 - 44032: 0x985A, - 49244 - 44032: 0xBBDB, - 49245 - 44032: 0x9861, - 49246 - 44032: 0x9862, - 49247 - 44032: 0x9863, - 49248 - 44032: 0xBBDC, - 49249 - 44032: 0x9864, - 49250 - 44032: 0x9865, - 49251 - 44032: 0x9866, - 49252 - 44032: 0x9867, - 49253 - 44032: 0x9868, - 49254 - 44032: 0x9869, - 49255 - 44032: 0x986A, - 49256 - 44032: 0xBBDD, - 49257 - 44032: 0xBBDE, - 49258 - 44032: 0x986B, - 49259 - 44032: 0x986C, - 49260 - 44032: 0x986D, - 49261 - 44032: 0x986E, - 49262 - 44032: 0x986F, - 49263 - 44032: 0x9870, - 49264 - 44032: 0x9871, - 49265 - 44032: 0x9872, - 49266 - 44032: 0x9873, - 49267 - 44032: 0x9874, - 49268 - 44032: 0x9875, - 49269 - 44032: 0x9876, - 49270 - 44032: 0x9877, - 49271 - 44032: 0x9878, - 49272 - 44032: 0x9879, - 49273 - 44032: 0x987A, - 49274 - 44032: 0x9881, - 49275 - 44032: 0x9882, - 49276 - 44032: 0x9883, - 49277 - 44032: 0x9884, - 49278 - 44032: 0x9885, - 49279 - 44032: 0x9886, - 49280 - 44032: 0x9887, - 49281 - 44032: 0x9888, - 49282 - 44032: 0x9889, - 49283 - 44032: 0x988A, - 49284 - 44032: 0x988B, - 49285 - 44032: 0x988C, - 49286 - 44032: 0x988D, - 49287 - 44032: 0x988E, - 49288 - 44032: 0x988F, - 49289 - 44032: 0x9890, - 49290 - 44032: 0x9891, - 49291 - 44032: 0x9892, - 49292 - 44032: 0x9893, - 49293 - 44032: 0x9894, - 49294 - 44032: 0x9895, - 49295 - 44032: 0x9896, - 49296 - 44032: 0xBBDF, - 49297 - 44032: 0xBBE0, - 49298 - 44032: 0x9897, - 49299 - 44032: 0x9898, - 49300 - 44032: 0xBBE1, - 49301 - 44032: 0x9899, - 49302 - 44032: 0x989A, - 49303 - 44032: 0x989B, - 49304 - 44032: 0xBBE2, - 49305 - 44032: 0x989C, - 49306 - 44032: 0x989D, - 49307 - 44032: 0x989E, - 49308 - 44032: 0x989F, - 49309 - 44032: 0x98A0, - 49310 - 44032: 0x98A1, - 49311 - 44032: 0x98A2, - 49312 - 44032: 0xBBE3, - 49313 - 44032: 0xBBE4, - 49314 - 44032: 0x98A3, - 49315 - 44032: 0xBBE5, - 49316 - 44032: 0x98A4, - 49317 - 44032: 0xBBE6, - 49318 - 44032: 0x98A5, - 49319 - 44032: 0x98A6, - 49320 - 44032: 0x98A7, - 49321 - 44032: 0x98A8, - 49322 - 44032: 0x98A9, - 49323 - 44032: 0x98AA, - 49324 - 44032: 0xBBE7, - 49325 - 44032: 0xBBE8, - 49326 - 44032: 0x98AB, - 49327 - 44032: 0xBBE9, - 49328 - 44032: 0xBBEA, - 49329 - 44032: 0x98AC, - 49330 - 44032: 0x98AD, - 49331 - 44032: 0xBBEB, - 49332 - 44032: 0xBBEC, - 49333 - 44032: 0xBBED, - 49334 - 44032: 0xBBEE, - 49335 - 44032: 0x98AE, - 49336 - 44032: 0x98AF, - 49337 - 44032: 0x98B0, - 49338 - 44032: 0x98B1, - 49339 - 44032: 0x98B2, - 49340 - 44032: 0xBBEF, - 49341 - 44032: 0xBBF0, - 49342 - 44032: 0x98B3, - 49343 - 44032: 0xBBF1, - 49344 - 44032: 0xBBF2, - 49345 - 44032: 0xBBF3, - 49346 - 44032: 0x98B4, - 49347 - 44032: 0x98B5, - 49348 - 44032: 0x98B6, - 49349 - 44032: 0xBBF4, - 49350 - 44032: 0x98B7, - 49351 - 44032: 0x98B8, - 49352 - 44032: 0xBBF5, - 49353 - 44032: 0xBBF6, - 49354 - 44032: 0x98B9, - 49355 - 44032: 0x98BA, - 49356 - 44032: 0xBBF7, - 49357 - 44032: 0x98BB, - 49358 - 44032: 0x98BC, - 49359 - 44032: 0x98BD, - 49360 - 44032: 0xBBF8, - 49361 - 44032: 0x98BE, - 49362 - 44032: 0x98BF, - 49363 - 44032: 0x98C0, - 49364 - 44032: 0x98C1, - 49365 - 44032: 0x98C2, - 49366 - 44032: 0x98C3, - 49367 - 44032: 0x98C4, - 49368 - 44032: 0xBBF9, - 49369 - 44032: 0xBBFA, - 49370 - 44032: 0x98C5, - 49371 - 44032: 0xBBFB, - 49372 - 44032: 0xBBFC, - 49373 - 44032: 0xBBFD, - 49374 - 44032: 0x98C6, - 49375 - 44032: 0x98C7, - 49376 - 44032: 0x98C8, - 49377 - 44032: 0x98C9, - 49378 - 44032: 0x98CA, - 49379 - 44032: 0x98CB, - 49380 - 44032: 0xBBFE, - 49381 - 44032: 0xBCA1, - 49382 - 44032: 0x98CC, - 49383 - 44032: 0x98CD, - 49384 - 44032: 0xBCA2, - 49385 - 44032: 0x98CE, - 49386 - 44032: 0x98CF, - 49387 - 44032: 0x98D0, - 49388 - 44032: 0xBCA3, - 49389 - 44032: 0x98D1, - 49390 - 44032: 0x98D2, - 49391 - 44032: 0x98D3, - 49392 - 44032: 0x98D4, - 49393 - 44032: 0x98D5, - 49394 - 44032: 0x98D6, - 49395 - 44032: 0x98D7, - 49396 - 44032: 0xBCA4, - 49397 - 44032: 0xBCA5, - 49398 - 44032: 0x98D8, - 49399 - 44032: 0xBCA6, - 49400 - 44032: 0x98D9, - 49401 - 44032: 0xBCA7, - 49402 - 44032: 0x98DA, - 49403 - 44032: 0x98DB, - 49404 - 44032: 0x98DC, - 49405 - 44032: 0x98DD, - 49406 - 44032: 0x98DE, - 49407 - 44032: 0x98DF, - 49408 - 44032: 0xBCA8, - 49409 - 44032: 0x98E0, - 49410 - 44032: 0x98E1, - 49411 - 44032: 0x98E2, - 49412 - 44032: 0xBCA9, - 49413 - 44032: 0x98E3, - 49414 - 44032: 0x98E4, - 49415 - 44032: 0x98E5, - 49416 - 44032: 0xBCAA, - 49417 - 44032: 0x98E6, - 49418 - 44032: 0x98E7, - 49419 - 44032: 0x98E8, - 49420 - 44032: 0x98E9, - 49421 - 44032: 0x98EA, - 49422 - 44032: 0x98EB, - 49423 - 44032: 0x98EC, - 49424 - 44032: 0xBCAB, - 49425 - 44032: 0x98ED, - 49426 - 44032: 0x98EE, - 49427 - 44032: 0x98EF, - 49428 - 44032: 0x98F0, - 49429 - 44032: 0xBCAC, - 49430 - 44032: 0x98F1, - 49431 - 44032: 0x98F2, - 49432 - 44032: 0x98F3, - 49433 - 44032: 0x98F4, - 49434 - 44032: 0x98F5, - 49435 - 44032: 0x98F6, - 49436 - 44032: 0xBCAD, - 49437 - 44032: 0xBCAE, - 49438 - 44032: 0xBCAF, - 49439 - 44032: 0xBCB0, - 49440 - 44032: 0xBCB1, - 49441 - 44032: 0x98F7, - 49442 - 44032: 0x98F8, - 49443 - 44032: 0xBCB2, - 49444 - 44032: 0xBCB3, - 49445 - 44032: 0x98F9, - 49446 - 44032: 0xBCB4, - 49447 - 44032: 0xBCB5, - 49448 - 44032: 0x98FA, - 49449 - 44032: 0x98FB, - 49450 - 44032: 0x98FC, - 49451 - 44032: 0x98FD, - 49452 - 44032: 0xBCB6, - 49453 - 44032: 0xBCB7, - 49454 - 44032: 0x98FE, - 49455 - 44032: 0xBCB8, - 49456 - 44032: 0xBCB9, - 49457 - 44032: 0xBCBA, - 49458 - 44032: 0x9941, - 49459 - 44032: 0x9942, - 49460 - 44032: 0x9943, - 49461 - 44032: 0x9944, - 49462 - 44032: 0xBCBB, - 49463 - 44032: 0x9945, - 49464 - 44032: 0xBCBC, - 49465 - 44032: 0xBCBD, - 49466 - 44032: 0x9946, - 49467 - 44032: 0x9947, - 49468 - 44032: 0xBCBE, - 49469 - 44032: 0x9948, - 49470 - 44032: 0x9949, - 49471 - 44032: 0x994A, - 49472 - 44032: 0xBCBF, - 49473 - 44032: 0x994B, - 49474 - 44032: 0x994C, - 49475 - 44032: 0x994D, - 49476 - 44032: 0x994E, - 49477 - 44032: 0x994F, - 49478 - 44032: 0x9950, - 49479 - 44032: 0x9951, - 49480 - 44032: 0xBCC0, - 49481 - 44032: 0xBCC1, - 49482 - 44032: 0x9952, - 49483 - 44032: 0xBCC2, - 49484 - 44032: 0xBCC3, - 49485 - 44032: 0xBCC4, - 49486 - 44032: 0x9953, - 49487 - 44032: 0x9954, - 49488 - 44032: 0x9955, - 49489 - 44032: 0x9956, - 49490 - 44032: 0x9957, - 49491 - 44032: 0x9958, - 49492 - 44032: 0xBCC5, - 49493 - 44032: 0xBCC6, - 49494 - 44032: 0x9959, - 49495 - 44032: 0x995A, - 49496 - 44032: 0xBCC7, - 49497 - 44032: 0x9961, - 49498 - 44032: 0x9962, - 49499 - 44032: 0x9963, - 49500 - 44032: 0xBCC8, - 49501 - 44032: 0x9964, - 49502 - 44032: 0x9965, - 49503 - 44032: 0x9966, - 49504 - 44032: 0x9967, - 49505 - 44032: 0x9968, - 49506 - 44032: 0x9969, - 49507 - 44032: 0x996A, - 49508 - 44032: 0xBCC9, - 49509 - 44032: 0xBCCA, - 49510 - 44032: 0x996B, - 49511 - 44032: 0xBCCB, - 49512 - 44032: 0xBCCC, - 49513 - 44032: 0xBCCD, - 49514 - 44032: 0x996C, - 49515 - 44032: 0x996D, - 49516 - 44032: 0x996E, - 49517 - 44032: 0x996F, - 49518 - 44032: 0x9970, - 49519 - 44032: 0x9971, - 49520 - 44032: 0xBCCE, - 49521 - 44032: 0x9972, - 49522 - 44032: 0x9973, - 49523 - 44032: 0x9974, - 49524 - 44032: 0xBCCF, - 49525 - 44032: 0x9975, - 49526 - 44032: 0x9976, - 49527 - 44032: 0x9977, - 49528 - 44032: 0xBCD0, - 49529 - 44032: 0x9978, - 49530 - 44032: 0x9979, - 49531 - 44032: 0x997A, - 49532 - 44032: 0x9981, - 49533 - 44032: 0x9982, - 49534 - 44032: 0x9983, - 49535 - 44032: 0x9984, - 49536 - 44032: 0x9985, - 49537 - 44032: 0x9986, - 49538 - 44032: 0x9987, - 49539 - 44032: 0x9988, - 49540 - 44032: 0x9989, - 49541 - 44032: 0xBCD1, - 49542 - 44032: 0x998A, - 49543 - 44032: 0x998B, - 49544 - 44032: 0x998C, - 49545 - 44032: 0x998D, - 49546 - 44032: 0x998E, - 49547 - 44032: 0x998F, - 49548 - 44032: 0xBCD2, - 49549 - 44032: 0xBCD3, - 49550 - 44032: 0xBCD4, - 49551 - 44032: 0x9990, - 49552 - 44032: 0xBCD5, - 49553 - 44032: 0x9991, - 49554 - 44032: 0x9992, - 49555 - 44032: 0x9993, - 49556 - 44032: 0xBCD6, - 49557 - 44032: 0x9994, - 49558 - 44032: 0xBCD7, - 49559 - 44032: 0x9995, - 49560 - 44032: 0x9996, - 49561 - 44032: 0x9997, - 49562 - 44032: 0x9998, - 49563 - 44032: 0x9999, - 49564 - 44032: 0xBCD8, - 49565 - 44032: 0xBCD9, - 49566 - 44032: 0x999A, - 49567 - 44032: 0xBCDA, - 49568 - 44032: 0x999B, - 49569 - 44032: 0xBCDB, - 49570 - 44032: 0x999C, - 49571 - 44032: 0x999D, - 49572 - 44032: 0x999E, - 49573 - 44032: 0xBCDC, - 49574 - 44032: 0x999F, - 49575 - 44032: 0x99A0, - 49576 - 44032: 0xBCDD, - 49577 - 44032: 0xBCDE, - 49578 - 44032: 0x99A1, - 49579 - 44032: 0x99A2, - 49580 - 44032: 0xBCDF, - 49581 - 44032: 0x99A3, - 49582 - 44032: 0x99A4, - 49583 - 44032: 0x99A5, - 49584 - 44032: 0xBCE0, - 49585 - 44032: 0x99A6, - 49586 - 44032: 0x99A7, - 49587 - 44032: 0x99A8, - 49588 - 44032: 0x99A9, - 49589 - 44032: 0x99AA, - 49590 - 44032: 0x99AB, - 49591 - 44032: 0x99AC, - 49592 - 44032: 0x99AD, - 49593 - 44032: 0x99AE, - 49594 - 44032: 0x99AF, - 49595 - 44032: 0x99B0, - 49596 - 44032: 0x99B1, - 49597 - 44032: 0xBCE1, - 49598 - 44032: 0x99B2, - 49599 - 44032: 0x99B3, - 49600 - 44032: 0x99B4, - 49601 - 44032: 0x99B5, - 49602 - 44032: 0x99B6, - 49603 - 44032: 0x99B7, - 49604 - 44032: 0xBCE2, - 49605 - 44032: 0x99B8, - 49606 - 44032: 0x99B9, - 49607 - 44032: 0x99BA, - 49608 - 44032: 0xBCE3, - 49609 - 44032: 0x99BB, - 49610 - 44032: 0x99BC, - 49611 - 44032: 0x99BD, - 49612 - 44032: 0xBCE4, - 49613 - 44032: 0x99BE, - 49614 - 44032: 0x99BF, - 49615 - 44032: 0x99C0, - 49616 - 44032: 0x99C1, - 49617 - 44032: 0x99C2, - 49618 - 44032: 0x99C3, - 49619 - 44032: 0x99C4, - 49620 - 44032: 0xBCE5, - 49621 - 44032: 0x99C5, - 49622 - 44032: 0x99C6, - 49623 - 44032: 0xBCE6, - 49624 - 44032: 0xBCE7, - 49625 - 44032: 0x99C7, - 49626 - 44032: 0x99C8, - 49627 - 44032: 0x99C9, - 49628 - 44032: 0x99CA, - 49629 - 44032: 0x99CB, - 49630 - 44032: 0x99CC, - 49631 - 44032: 0x99CD, - 49632 - 44032: 0xBCE8, - 49633 - 44032: 0x99CE, - 49634 - 44032: 0x99CF, - 49635 - 44032: 0x99D0, - 49636 - 44032: 0xBCE9, - 49637 - 44032: 0x99D1, - 49638 - 44032: 0x99D2, - 49639 - 44032: 0x99D3, - 49640 - 44032: 0xBCEA, - 49641 - 44032: 0x99D4, - 49642 - 44032: 0x99D5, - 49643 - 44032: 0x99D6, - 49644 - 44032: 0x99D7, - 49645 - 44032: 0x99D8, - 49646 - 44032: 0x99D9, - 49647 - 44032: 0x99DA, - 49648 - 44032: 0xBCEB, - 49649 - 44032: 0xBCEC, - 49650 - 44032: 0x99DB, - 49651 - 44032: 0xBCED, - 49652 - 44032: 0x99DC, - 49653 - 44032: 0x99DD, - 49654 - 44032: 0x99DE, - 49655 - 44032: 0x99DF, - 49656 - 44032: 0x99E0, - 49657 - 44032: 0x99E1, - 49658 - 44032: 0x99E2, - 49659 - 44032: 0x99E3, - 49660 - 44032: 0xBCEE, - 49661 - 44032: 0xBCEF, - 49662 - 44032: 0x99E4, - 49663 - 44032: 0x99E5, - 49664 - 44032: 0xBCF0, - 49665 - 44032: 0x99E6, - 49666 - 44032: 0x99E7, - 49667 - 44032: 0x99E8, - 49668 - 44032: 0xBCF1, - 49669 - 44032: 0x99E9, - 49670 - 44032: 0x99EA, - 49671 - 44032: 0x99EB, - 49672 - 44032: 0x99EC, - 49673 - 44032: 0x99ED, - 49674 - 44032: 0x99EE, - 49675 - 44032: 0x99EF, - 49676 - 44032: 0xBCF2, - 49677 - 44032: 0xBCF3, - 49678 - 44032: 0x99F0, - 49679 - 44032: 0xBCF4, - 49680 - 44032: 0x99F1, - 49681 - 44032: 0xBCF5, - 49682 - 44032: 0x99F2, - 49683 - 44032: 0x99F3, - 49684 - 44032: 0x99F4, - 49685 - 44032: 0x99F5, - 49686 - 44032: 0x99F6, - 49687 - 44032: 0x99F7, - 49688 - 44032: 0xBCF6, - 49689 - 44032: 0xBCF7, - 49690 - 44032: 0x99F8, - 49691 - 44032: 0x99F9, - 49692 - 44032: 0xBCF8, - 49693 - 44032: 0x99FA, - 49694 - 44032: 0x99FB, - 49695 - 44032: 0xBCF9, - 49696 - 44032: 0xBCFA, - 49697 - 44032: 0x99FC, - 49698 - 44032: 0x99FD, - 49699 - 44032: 0x99FE, - 49700 - 44032: 0x9A41, - 49701 - 44032: 0x9A42, - 49702 - 44032: 0x9A43, - 49703 - 44032: 0x9A44, - 49704 - 44032: 0xBCFB, - 49705 - 44032: 0xBCFC, - 49706 - 44032: 0x9A45, - 49707 - 44032: 0xBCFD, - 49708 - 44032: 0x9A46, - 49709 - 44032: 0xBCFE, - 49710 - 44032: 0x9A47, - 49711 - 44032: 0xBDA1, - 49712 - 44032: 0x9A48, - 49713 - 44032: 0xBDA2, - 49714 - 44032: 0xBDA3, - 49715 - 44032: 0x9A49, - 49716 - 44032: 0xBDA4, - 49717 - 44032: 0x9A4A, - 49718 - 44032: 0x9A4B, - 49719 - 44032: 0x9A4C, - 49720 - 44032: 0x9A4D, - 49721 - 44032: 0x9A4E, - 49722 - 44032: 0x9A4F, - 49723 - 44032: 0x9A50, - 49724 - 44032: 0x9A51, - 49725 - 44032: 0x9A52, - 49726 - 44032: 0x9A53, - 49727 - 44032: 0x9A54, - 49728 - 44032: 0x9A55, - 49729 - 44032: 0x9A56, - 49730 - 44032: 0x9A57, - 49731 - 44032: 0x9A58, - 49732 - 44032: 0x9A59, - 49733 - 44032: 0x9A5A, - 49734 - 44032: 0x9A61, - 49735 - 44032: 0x9A62, - 49736 - 44032: 0xBDA5, - 49737 - 44032: 0x9A63, - 49738 - 44032: 0x9A64, - 49739 - 44032: 0x9A65, - 49740 - 44032: 0x9A66, - 49741 - 44032: 0x9A67, - 49742 - 44032: 0x9A68, - 49743 - 44032: 0x9A69, - 49744 - 44032: 0xBDA6, - 49745 - 44032: 0xBDA7, - 49746 - 44032: 0x9A6A, - 49747 - 44032: 0x9A6B, - 49748 - 44032: 0xBDA8, - 49749 - 44032: 0x9A6C, - 49750 - 44032: 0x9A6D, - 49751 - 44032: 0x9A6E, - 49752 - 44032: 0xBDA9, - 49753 - 44032: 0x9A6F, - 49754 - 44032: 0x9A70, - 49755 - 44032: 0x9A71, - 49756 - 44032: 0x9A72, - 49757 - 44032: 0x9A73, - 49758 - 44032: 0x9A74, - 49759 - 44032: 0x9A75, - 49760 - 44032: 0xBDAA, - 49761 - 44032: 0x9A76, - 49762 - 44032: 0x9A77, - 49763 - 44032: 0x9A78, - 49764 - 44032: 0x9A79, - 49765 - 44032: 0xBDAB, - 49766 - 44032: 0x9A7A, - 49767 - 44032: 0x9A81, - 49768 - 44032: 0x9A82, - 49769 - 44032: 0x9A83, - 49770 - 44032: 0x9A84, - 49771 - 44032: 0x9A85, - 49772 - 44032: 0xBDAC, - 49773 - 44032: 0xBDAD, - 49774 - 44032: 0x9A86, - 49775 - 44032: 0x9A87, - 49776 - 44032: 0xBDAE, - 49777 - 44032: 0x9A88, - 49778 - 44032: 0x9A89, - 49779 - 44032: 0x9A8A, - 49780 - 44032: 0xBDAF, - 49781 - 44032: 0x9A8B, - 49782 - 44032: 0x9A8C, - 49783 - 44032: 0x9A8D, - 49784 - 44032: 0x9A8E, - 49785 - 44032: 0x9A8F, - 49786 - 44032: 0x9A90, - 49787 - 44032: 0x9A91, - 49788 - 44032: 0xBDB0, - 49789 - 44032: 0xBDB1, - 49790 - 44032: 0x9A92, - 49791 - 44032: 0xBDB2, - 49792 - 44032: 0x9A93, - 49793 - 44032: 0xBDB3, - 49794 - 44032: 0x9A94, - 49795 - 44032: 0x9A95, - 49796 - 44032: 0x9A96, - 49797 - 44032: 0x9A97, - 49798 - 44032: 0x9A98, - 49799 - 44032: 0x9A99, - 49800 - 44032: 0xBDB4, - 49801 - 44032: 0xBDB5, - 49802 - 44032: 0x9A9A, - 49803 - 44032: 0x9A9B, - 49804 - 44032: 0x9A9C, - 49805 - 44032: 0x9A9D, - 49806 - 44032: 0x9A9E, - 49807 - 44032: 0x9A9F, - 49808 - 44032: 0xBDB6, - 49809 - 44032: 0x9AA0, - 49810 - 44032: 0x9AA1, - 49811 - 44032: 0x9AA2, - 49812 - 44032: 0x9AA3, - 49813 - 44032: 0x9AA4, - 49814 - 44032: 0x9AA5, - 49815 - 44032: 0x9AA6, - 49816 - 44032: 0xBDB7, - 49817 - 44032: 0x9AA7, - 49818 - 44032: 0x9AA8, - 49819 - 44032: 0xBDB8, - 49820 - 44032: 0x9AA9, - 49821 - 44032: 0xBDB9, - 49822 - 44032: 0x9AAA, - 49823 - 44032: 0x9AAB, - 49824 - 44032: 0x9AAC, - 49825 - 44032: 0x9AAD, - 49826 - 44032: 0x9AAE, - 49827 - 44032: 0x9AAF, - 49828 - 44032: 0xBDBA, - 49829 - 44032: 0xBDBB, - 49830 - 44032: 0x9AB0, - 49831 - 44032: 0x9AB1, - 49832 - 44032: 0xBDBC, - 49833 - 44032: 0x9AB2, - 49834 - 44032: 0x9AB3, - 49835 - 44032: 0x9AB4, - 49836 - 44032: 0xBDBD, - 49837 - 44032: 0xBDBE, - 49838 - 44032: 0x9AB5, - 49839 - 44032: 0x9AB6, - 49840 - 44032: 0x9AB7, - 49841 - 44032: 0x9AB8, - 49842 - 44032: 0x9AB9, - 49843 - 44032: 0x9ABA, - 49844 - 44032: 0xBDBF, - 49845 - 44032: 0xBDC0, - 49846 - 44032: 0x9ABB, - 49847 - 44032: 0xBDC1, - 49848 - 44032: 0x9ABC, - 49849 - 44032: 0xBDC2, - 49850 - 44032: 0x9ABD, - 49851 - 44032: 0x9ABE, - 49852 - 44032: 0x9ABF, - 49853 - 44032: 0x9AC0, - 49854 - 44032: 0x9AC1, - 49855 - 44032: 0x9AC2, - 49856 - 44032: 0x9AC3, - 49857 - 44032: 0x9AC4, - 49858 - 44032: 0x9AC5, - 49859 - 44032: 0x9AC6, - 49860 - 44032: 0x9AC7, - 49861 - 44032: 0x9AC8, - 49862 - 44032: 0x9AC9, - 49863 - 44032: 0x9ACA, - 49864 - 44032: 0x9ACB, - 49865 - 44032: 0x9ACC, - 49866 - 44032: 0x9ACD, - 49867 - 44032: 0x9ACE, - 49868 - 44032: 0x9ACF, - 49869 - 44032: 0x9AD0, - 49870 - 44032: 0x9AD1, - 49871 - 44032: 0x9AD2, - 49872 - 44032: 0x9AD3, - 49873 - 44032: 0x9AD4, - 49874 - 44032: 0x9AD5, - 49875 - 44032: 0x9AD6, - 49876 - 44032: 0x9AD7, - 49877 - 44032: 0x9AD8, - 49878 - 44032: 0x9AD9, - 49879 - 44032: 0x9ADA, - 49880 - 44032: 0x9ADB, - 49881 - 44032: 0x9ADC, - 49882 - 44032: 0x9ADD, - 49883 - 44032: 0x9ADE, - 49884 - 44032: 0xBDC3, - 49885 - 44032: 0xBDC4, - 49886 - 44032: 0x9ADF, - 49887 - 44032: 0x9AE0, - 49888 - 44032: 0xBDC5, - 49889 - 44032: 0x9AE1, - 49890 - 44032: 0x9AE2, - 49891 - 44032: 0xBDC6, - 49892 - 44032: 0xBDC7, - 49893 - 44032: 0x9AE3, - 49894 - 44032: 0x9AE4, - 49895 - 44032: 0x9AE5, - 49896 - 44032: 0x9AE6, - 49897 - 44032: 0x9AE7, - 49898 - 44032: 0x9AE8, - 49899 - 44032: 0xBDC8, - 49900 - 44032: 0xBDC9, - 49901 - 44032: 0xBDCA, - 49902 - 44032: 0x9AE9, - 49903 - 44032: 0xBDCB, - 49904 - 44032: 0x9AEA, - 49905 - 44032: 0xBDCC, - 49906 - 44032: 0x9AEB, - 49907 - 44032: 0x9AEC, - 49908 - 44032: 0x9AED, - 49909 - 44032: 0x9AEE, - 49910 - 44032: 0xBDCD, - 49911 - 44032: 0x9AEF, - 49912 - 44032: 0xBDCE, - 49913 - 44032: 0xBDCF, - 49914 - 44032: 0x9AF0, - 49915 - 44032: 0xBDD0, - 49916 - 44032: 0xBDD1, - 49917 - 44032: 0x9AF1, - 49918 - 44032: 0x9AF2, - 49919 - 44032: 0x9AF3, - 49920 - 44032: 0xBDD2, - 49921 - 44032: 0x9AF4, - 49922 - 44032: 0x9AF5, - 49923 - 44032: 0x9AF6, - 49924 - 44032: 0x9AF7, - 49925 - 44032: 0x9AF8, - 49926 - 44032: 0x9AF9, - 49927 - 44032: 0x9AFA, - 49928 - 44032: 0xBDD3, - 49929 - 44032: 0xBDD4, - 49930 - 44032: 0x9AFB, - 49931 - 44032: 0x9AFC, - 49932 - 44032: 0xBDD5, - 49933 - 44032: 0xBDD6, - 49934 - 44032: 0x9AFD, - 49935 - 44032: 0x9AFE, - 49936 - 44032: 0x9B41, - 49937 - 44032: 0x9B42, - 49938 - 44032: 0x9B43, - 49939 - 44032: 0xBDD7, - 49940 - 44032: 0xBDD8, - 49941 - 44032: 0xBDD9, - 49942 - 44032: 0x9B44, - 49943 - 44032: 0x9B45, - 49944 - 44032: 0xBDDA, - 49945 - 44032: 0x9B46, - 49946 - 44032: 0x9B47, - 49947 - 44032: 0x9B48, - 49948 - 44032: 0xBDDB, - 49949 - 44032: 0x9B49, - 49950 - 44032: 0x9B4A, - 49951 - 44032: 0x9B4B, - 49952 - 44032: 0x9B4C, - 49953 - 44032: 0x9B4D, - 49954 - 44032: 0x9B4E, - 49955 - 44032: 0x9B4F, - 49956 - 44032: 0xBDDC, - 49957 - 44032: 0xBDDD, - 49958 - 44032: 0x9B50, - 49959 - 44032: 0x9B51, - 49960 - 44032: 0xBDDE, - 49961 - 44032: 0xBDDF, - 49962 - 44032: 0x9B52, - 49963 - 44032: 0x9B53, - 49964 - 44032: 0x9B54, - 49965 - 44032: 0x9B55, - 49966 - 44032: 0x9B56, - 49967 - 44032: 0x9B57, - 49968 - 44032: 0x9B58, - 49969 - 44032: 0x9B59, - 49970 - 44032: 0x9B5A, - 49971 - 44032: 0x9B61, - 49972 - 44032: 0x9B62, - 49973 - 44032: 0x9B63, - 49974 - 44032: 0x9B64, - 49975 - 44032: 0x9B65, - 49976 - 44032: 0x9B66, - 49977 - 44032: 0x9B67, - 49978 - 44032: 0x9B68, - 49979 - 44032: 0x9B69, - 49980 - 44032: 0x9B6A, - 49981 - 44032: 0x9B6B, - 49982 - 44032: 0x9B6C, - 49983 - 44032: 0x9B6D, - 49984 - 44032: 0x9B6E, - 49985 - 44032: 0x9B6F, - 49986 - 44032: 0x9B70, - 49987 - 44032: 0x9B71, - 49988 - 44032: 0x9B72, - 49989 - 44032: 0xBDE0, - 49990 - 44032: 0x9B73, - 49991 - 44032: 0x9B74, - 49992 - 44032: 0x9B75, - 49993 - 44032: 0x9B76, - 49994 - 44032: 0x9B77, - 49995 - 44032: 0x9B78, - 49996 - 44032: 0x9B79, - 49997 - 44032: 0x9B7A, - 49998 - 44032: 0x9B81, - 49999 - 44032: 0x9B82, - 50000 - 44032: 0x9B83, - 50001 - 44032: 0x9B84, - 50002 - 44032: 0x9B85, - 50003 - 44032: 0x9B86, - 50004 - 44032: 0x9B87, - 50005 - 44032: 0x9B88, - 50006 - 44032: 0x9B89, - 50007 - 44032: 0x9B8A, - 50008 - 44032: 0x9B8B, - 50009 - 44032: 0x9B8C, - 50010 - 44032: 0x9B8D, - 50011 - 44032: 0x9B8E, - 50012 - 44032: 0x9B8F, - 50013 - 44032: 0x9B90, - 50014 - 44032: 0x9B91, - 50015 - 44032: 0x9B92, - 50016 - 44032: 0x9B93, - 50017 - 44032: 0x9B94, - 50018 - 44032: 0x9B95, - 50019 - 44032: 0x9B96, - 50020 - 44032: 0x9B97, - 50021 - 44032: 0x9B98, - 50022 - 44032: 0x9B99, - 50023 - 44032: 0x9B9A, - 50024 - 44032: 0xBDE1, - 50025 - 44032: 0xBDE2, - 50026 - 44032: 0x9B9B, - 50027 - 44032: 0x9B9C, - 50028 - 44032: 0xBDE3, - 50029 - 44032: 0x9B9D, - 50030 - 44032: 0x9B9E, - 50031 - 44032: 0x9B9F, - 50032 - 44032: 0xBDE4, - 50033 - 44032: 0x9BA0, - 50034 - 44032: 0xBDE5, - 50035 - 44032: 0x9BA1, - 50036 - 44032: 0x9BA2, - 50037 - 44032: 0x9BA3, - 50038 - 44032: 0x9BA4, - 50039 - 44032: 0x9BA5, - 50040 - 44032: 0xBDE6, - 50041 - 44032: 0xBDE7, - 50042 - 44032: 0x9BA6, - 50043 - 44032: 0x9BA7, - 50044 - 44032: 0xBDE8, - 50045 - 44032: 0xBDE9, - 50046 - 44032: 0x9BA8, - 50047 - 44032: 0x9BA9, - 50048 - 44032: 0x9BAA, - 50049 - 44032: 0x9BAB, - 50050 - 44032: 0x9BAC, - 50051 - 44032: 0x9BAD, - 50052 - 44032: 0xBDEA, - 50053 - 44032: 0x9BAE, - 50054 - 44032: 0x9BAF, - 50055 - 44032: 0x9BB0, - 50056 - 44032: 0xBDEB, - 50057 - 44032: 0x9BB1, - 50058 - 44032: 0x9BB2, - 50059 - 44032: 0x9BB3, - 50060 - 44032: 0xBDEC, - 50061 - 44032: 0x9BB4, - 50062 - 44032: 0x9BB5, - 50063 - 44032: 0x9BB6, - 50064 - 44032: 0x9BB7, - 50065 - 44032: 0x9BB8, - 50066 - 44032: 0x9BB9, - 50067 - 44032: 0x9BBA, - 50068 - 44032: 0x9BBB, - 50069 - 44032: 0x9BBC, - 50070 - 44032: 0x9BBD, - 50071 - 44032: 0x9BBE, - 50072 - 44032: 0x9BBF, - 50073 - 44032: 0x9BC0, - 50074 - 44032: 0x9BC1, - 50075 - 44032: 0x9BC2, - 50076 - 44032: 0x9BC3, - 50077 - 44032: 0x9BC4, - 50078 - 44032: 0x9BC5, - 50079 - 44032: 0x9BC6, - 50080 - 44032: 0x9BC7, - 50081 - 44032: 0x9BC8, - 50082 - 44032: 0x9BC9, - 50083 - 44032: 0x9BCA, - 50084 - 44032: 0x9BCB, - 50085 - 44032: 0x9BCC, - 50086 - 44032: 0x9BCD, - 50087 - 44032: 0x9BCE, - 50088 - 44032: 0x9BCF, - 50089 - 44032: 0x9BD0, - 50090 - 44032: 0x9BD1, - 50091 - 44032: 0x9BD2, - 50092 - 44032: 0x9BD3, - 50093 - 44032: 0x9BD4, - 50094 - 44032: 0x9BD5, - 50095 - 44032: 0x9BD6, - 50096 - 44032: 0x9BD7, - 50097 - 44032: 0x9BD8, - 50098 - 44032: 0x9BD9, - 50099 - 44032: 0x9BDA, - 50100 - 44032: 0x9BDB, - 50101 - 44032: 0x9BDC, - 50102 - 44032: 0x9BDD, - 50103 - 44032: 0x9BDE, - 50104 - 44032: 0x9BDF, - 50105 - 44032: 0x9BE0, - 50106 - 44032: 0x9BE1, - 50107 - 44032: 0x9BE2, - 50108 - 44032: 0x9BE3, - 50109 - 44032: 0x9BE4, - 50110 - 44032: 0x9BE5, - 50111 - 44032: 0x9BE6, - 50112 - 44032: 0xBDED, - 50113 - 44032: 0x9BE7, - 50114 - 44032: 0x9BE8, - 50115 - 44032: 0x9BE9, - 50116 - 44032: 0x9BEA, - 50117 - 44032: 0x9BEB, - 50118 - 44032: 0x9BEC, - 50119 - 44032: 0x9BED, - 50120 - 44032: 0x9BEE, - 50121 - 44032: 0x9BEF, - 50122 - 44032: 0x9BF0, - 50123 - 44032: 0x9BF1, - 50124 - 44032: 0x9BF2, - 50125 - 44032: 0x9BF3, - 50126 - 44032: 0x9BF4, - 50127 - 44032: 0x9BF5, - 50128 - 44032: 0x9BF6, - 50129 - 44032: 0x9BF7, - 50130 - 44032: 0x9BF8, - 50131 - 44032: 0x9BF9, - 50132 - 44032: 0x9BFA, - 50133 - 44032: 0x9BFB, - 50134 - 44032: 0x9BFC, - 50135 - 44032: 0x9BFD, - 50136 - 44032: 0xBDEE, - 50137 - 44032: 0xBDEF, - 50138 - 44032: 0x9BFE, - 50139 - 44032: 0x9C41, - 50140 - 44032: 0xBDF0, - 50141 - 44032: 0x9C42, - 50142 - 44032: 0x9C43, - 50143 - 44032: 0xBDF1, - 50144 - 44032: 0xBDF2, - 50145 - 44032: 0x9C44, - 50146 - 44032: 0xBDF3, - 50147 - 44032: 0x9C45, - 50148 - 44032: 0x9C46, - 50149 - 44032: 0x9C47, - 50150 - 44032: 0x9C48, - 50151 - 44032: 0x9C49, - 50152 - 44032: 0xBDF4, - 50153 - 44032: 0xBDF5, - 50154 - 44032: 0x9C4A, - 50155 - 44032: 0x9C4B, - 50156 - 44032: 0x9C4C, - 50157 - 44032: 0xBDF6, - 50158 - 44032: 0x9C4D, - 50159 - 44032: 0x9C4E, - 50160 - 44032: 0x9C4F, - 50161 - 44032: 0x9C50, - 50162 - 44032: 0x9C51, - 50163 - 44032: 0x9C52, - 50164 - 44032: 0xBDF7, - 50165 - 44032: 0xBDF8, - 50166 - 44032: 0x9C53, - 50167 - 44032: 0x9C54, - 50168 - 44032: 0xBDF9, - 50169 - 44032: 0x9C55, - 50170 - 44032: 0x9C56, - 50171 - 44032: 0x9C57, - 50172 - 44032: 0x9C58, - 50173 - 44032: 0x9C59, - 50174 - 44032: 0x9C5A, - 50175 - 44032: 0x9C61, - 50176 - 44032: 0x9C62, - 50177 - 44032: 0x9C63, - 50178 - 44032: 0x9C64, - 50179 - 44032: 0x9C65, - 50180 - 44032: 0x9C66, - 50181 - 44032: 0x9C67, - 50182 - 44032: 0x9C68, - 50183 - 44032: 0x9C69, - 50184 - 44032: 0xBDFA, - 50185 - 44032: 0x9C6A, - 50186 - 44032: 0x9C6B, - 50187 - 44032: 0x9C6C, - 50188 - 44032: 0x9C6D, - 50189 - 44032: 0x9C6E, - 50190 - 44032: 0x9C6F, - 50191 - 44032: 0x9C70, - 50192 - 44032: 0xBDFB, - 50193 - 44032: 0x9C71, - 50194 - 44032: 0x9C72, - 50195 - 44032: 0x9C73, - 50196 - 44032: 0x9C74, - 50197 - 44032: 0x9C75, - 50198 - 44032: 0x9C76, - 50199 - 44032: 0x9C77, - 50200 - 44032: 0x9C78, - 50201 - 44032: 0x9C79, - 50202 - 44032: 0x9C7A, - 50203 - 44032: 0x9C81, - 50204 - 44032: 0x9C82, - 50205 - 44032: 0x9C83, - 50206 - 44032: 0x9C84, - 50207 - 44032: 0x9C85, - 50208 - 44032: 0x9C86, - 50209 - 44032: 0x9C87, - 50210 - 44032: 0x9C88, - 50211 - 44032: 0x9C89, - 50212 - 44032: 0xBDFC, - 50213 - 44032: 0x9C8A, - 50214 - 44032: 0x9C8B, - 50215 - 44032: 0x9C8C, - 50216 - 44032: 0x9C8D, - 50217 - 44032: 0x9C8E, - 50218 - 44032: 0x9C8F, - 50219 - 44032: 0x9C90, - 50220 - 44032: 0xBDFD, - 50221 - 44032: 0x9C91, - 50222 - 44032: 0x9C92, - 50223 - 44032: 0x9C93, - 50224 - 44032: 0xBDFE, - 50225 - 44032: 0x9C94, - 50226 - 44032: 0x9C95, - 50227 - 44032: 0x9C96, - 50228 - 44032: 0xBEA1, - 50229 - 44032: 0x9C97, - 50230 - 44032: 0x9C98, - 50231 - 44032: 0x9C99, - 50232 - 44032: 0x9C9A, - 50233 - 44032: 0x9C9B, - 50234 - 44032: 0x9C9C, - 50235 - 44032: 0x9C9D, - 50236 - 44032: 0xBEA2, - 50237 - 44032: 0xBEA3, - 50238 - 44032: 0x9C9E, - 50239 - 44032: 0x9C9F, - 50240 - 44032: 0x9CA0, - 50241 - 44032: 0x9CA1, - 50242 - 44032: 0x9CA2, - 50243 - 44032: 0x9CA3, - 50244 - 44032: 0x9CA4, - 50245 - 44032: 0x9CA5, - 50246 - 44032: 0x9CA6, - 50247 - 44032: 0x9CA7, - 50248 - 44032: 0xBEA4, - 50249 - 44032: 0x9CA8, - 50250 - 44032: 0x9CA9, - 50251 - 44032: 0x9CAA, - 50252 - 44032: 0x9CAB, - 50253 - 44032: 0x9CAC, - 50254 - 44032: 0x9CAD, - 50255 - 44032: 0x9CAE, - 50256 - 44032: 0x9CAF, - 50257 - 44032: 0x9CB0, - 50258 - 44032: 0x9CB1, - 50259 - 44032: 0x9CB2, - 50260 - 44032: 0x9CB3, - 50261 - 44032: 0x9CB4, - 50262 - 44032: 0x9CB5, - 50263 - 44032: 0x9CB6, - 50264 - 44032: 0x9CB7, - 50265 - 44032: 0x9CB8, - 50266 - 44032: 0x9CB9, - 50267 - 44032: 0x9CBA, - 50268 - 44032: 0x9CBB, - 50269 - 44032: 0x9CBC, - 50270 - 44032: 0x9CBD, - 50271 - 44032: 0x9CBE, - 50272 - 44032: 0x9CBF, - 50273 - 44032: 0x9CC0, - 50274 - 44032: 0x9CC1, - 50275 - 44032: 0x9CC2, - 50276 - 44032: 0xBEA5, - 50277 - 44032: 0xBEA6, - 50278 - 44032: 0x9CC3, - 50279 - 44032: 0x9CC4, - 50280 - 44032: 0xBEA7, - 50281 - 44032: 0x9CC5, - 50282 - 44032: 0x9CC6, - 50283 - 44032: 0x9CC7, - 50284 - 44032: 0xBEA8, - 50285 - 44032: 0x9CC8, - 50286 - 44032: 0x9CC9, - 50287 - 44032: 0x9CCA, - 50288 - 44032: 0x9CCB, - 50289 - 44032: 0x9CCC, - 50290 - 44032: 0x9CCD, - 50291 - 44032: 0x9CCE, - 50292 - 44032: 0xBEA9, - 50293 - 44032: 0xBEAA, - 50294 - 44032: 0x9CCF, - 50295 - 44032: 0x9CD0, - 50296 - 44032: 0x9CD1, - 50297 - 44032: 0xBEAB, - 50298 - 44032: 0x9CD2, - 50299 - 44032: 0x9CD3, - 50300 - 44032: 0x9CD4, - 50301 - 44032: 0x9CD5, - 50302 - 44032: 0x9CD6, - 50303 - 44032: 0x9CD7, - 50304 - 44032: 0xBEAC, - 50305 - 44032: 0x9CD8, - 50306 - 44032: 0x9CD9, - 50307 - 44032: 0x9CDA, - 50308 - 44032: 0x9CDB, - 50309 - 44032: 0x9CDC, - 50310 - 44032: 0x9CDD, - 50311 - 44032: 0x9CDE, - 50312 - 44032: 0x9CDF, - 50313 - 44032: 0x9CE0, - 50314 - 44032: 0x9CE1, - 50315 - 44032: 0x9CE2, - 50316 - 44032: 0x9CE3, - 50317 - 44032: 0x9CE4, - 50318 - 44032: 0x9CE5, - 50319 - 44032: 0x9CE6, - 50320 - 44032: 0x9CE7, - 50321 - 44032: 0x9CE8, - 50322 - 44032: 0x9CE9, - 50323 - 44032: 0x9CEA, - 50324 - 44032: 0xBEAD, - 50325 - 44032: 0x9CEB, - 50326 - 44032: 0x9CEC, - 50327 - 44032: 0x9CED, - 50328 - 44032: 0x9CEE, - 50329 - 44032: 0x9CEF, - 50330 - 44032: 0x9CF0, - 50331 - 44032: 0x9CF1, - 50332 - 44032: 0xBEAE, - 50333 - 44032: 0x9CF2, - 50334 - 44032: 0x9CF3, - 50335 - 44032: 0x9CF4, - 50336 - 44032: 0x9CF5, - 50337 - 44032: 0x9CF6, - 50338 - 44032: 0x9CF7, - 50339 - 44032: 0x9CF8, - 50340 - 44032: 0x9CF9, - 50341 - 44032: 0x9CFA, - 50342 - 44032: 0x9CFB, - 50343 - 44032: 0x9CFC, - 50344 - 44032: 0x9CFD, - 50345 - 44032: 0x9CFE, - 50346 - 44032: 0x9D41, - 50347 - 44032: 0x9D42, - 50348 - 44032: 0x9D43, - 50349 - 44032: 0x9D44, - 50350 - 44032: 0x9D45, - 50351 - 44032: 0x9D46, - 50352 - 44032: 0x9D47, - 50353 - 44032: 0x9D48, - 50354 - 44032: 0x9D49, - 50355 - 44032: 0x9D4A, - 50356 - 44032: 0x9D4B, - 50357 - 44032: 0x9D4C, - 50358 - 44032: 0x9D4D, - 50359 - 44032: 0x9D4E, - 50360 - 44032: 0xBEAF, - 50361 - 44032: 0x9D4F, - 50362 - 44032: 0x9D50, - 50363 - 44032: 0x9D51, - 50364 - 44032: 0xBEB0, - 50365 - 44032: 0x9D52, - 50366 - 44032: 0x9D53, - 50367 - 44032: 0x9D54, - 50368 - 44032: 0x9D55, - 50369 - 44032: 0x9D56, - 50370 - 44032: 0x9D57, - 50371 - 44032: 0x9D58, - 50372 - 44032: 0x9D59, - 50373 - 44032: 0x9D5A, - 50374 - 44032: 0x9D61, - 50375 - 44032: 0x9D62, - 50376 - 44032: 0x9D63, - 50377 - 44032: 0x9D64, - 50378 - 44032: 0x9D65, - 50379 - 44032: 0x9D66, - 50380 - 44032: 0x9D67, - 50381 - 44032: 0x9D68, - 50382 - 44032: 0x9D69, - 50383 - 44032: 0x9D6A, - 50384 - 44032: 0x9D6B, - 50385 - 44032: 0x9D6C, - 50386 - 44032: 0x9D6D, - 50387 - 44032: 0x9D6E, - 50388 - 44032: 0x9D6F, - 50389 - 44032: 0x9D70, - 50390 - 44032: 0x9D71, - 50391 - 44032: 0x9D72, - 50392 - 44032: 0x9D73, - 50393 - 44032: 0x9D74, - 50394 - 44032: 0x9D75, - 50395 - 44032: 0x9D76, - 50396 - 44032: 0x9D77, - 50397 - 44032: 0x9D78, - 50398 - 44032: 0x9D79, - 50399 - 44032: 0x9D7A, - 50400 - 44032: 0x9D81, - 50401 - 44032: 0x9D82, - 50402 - 44032: 0x9D83, - 50403 - 44032: 0x9D84, - 50404 - 44032: 0x9D85, - 50405 - 44032: 0x9D86, - 50406 - 44032: 0x9D87, - 50407 - 44032: 0x9D88, - 50408 - 44032: 0x9D89, - 50409 - 44032: 0xBEB1, - 50410 - 44032: 0x9D8A, - 50411 - 44032: 0x9D8B, - 50412 - 44032: 0x9D8C, - 50413 - 44032: 0x9D8D, - 50414 - 44032: 0x9D8E, - 50415 - 44032: 0x9D8F, - 50416 - 44032: 0xBEB2, - 50417 - 44032: 0xBEB3, - 50418 - 44032: 0x9D90, - 50419 - 44032: 0x9D91, - 50420 - 44032: 0xBEB4, - 50421 - 44032: 0x9D92, - 50422 - 44032: 0x9D93, - 50423 - 44032: 0x9D94, - 50424 - 44032: 0xBEB5, - 50425 - 44032: 0x9D95, - 50426 - 44032: 0xBEB6, - 50427 - 44032: 0x9D96, - 50428 - 44032: 0x9D97, - 50429 - 44032: 0x9D98, - 50430 - 44032: 0x9D99, - 50431 - 44032: 0xBEB7, - 50432 - 44032: 0xBEB8, - 50433 - 44032: 0xBEB9, - 50434 - 44032: 0x9D9A, - 50435 - 44032: 0x9D9B, - 50436 - 44032: 0x9D9C, - 50437 - 44032: 0x9D9D, - 50438 - 44032: 0x9D9E, - 50439 - 44032: 0x9D9F, - 50440 - 44032: 0x9DA0, - 50441 - 44032: 0x9DA1, - 50442 - 44032: 0x9DA2, - 50443 - 44032: 0x9DA3, - 50444 - 44032: 0xBEBA, - 50445 - 44032: 0x9DA4, - 50446 - 44032: 0x9DA5, - 50447 - 44032: 0x9DA6, - 50448 - 44032: 0xBEBB, - 50449 - 44032: 0x9DA7, - 50450 - 44032: 0x9DA8, - 50451 - 44032: 0x9DA9, - 50452 - 44032: 0xBEBC, - 50453 - 44032: 0x9DAA, - 50454 - 44032: 0x9DAB, - 50455 - 44032: 0x9DAC, - 50456 - 44032: 0x9DAD, - 50457 - 44032: 0x9DAE, - 50458 - 44032: 0x9DAF, - 50459 - 44032: 0x9DB0, - 50460 - 44032: 0xBEBD, - 50461 - 44032: 0x9DB1, - 50462 - 44032: 0x9DB2, - 50463 - 44032: 0x9DB3, - 50464 - 44032: 0x9DB4, - 50465 - 44032: 0x9DB5, - 50466 - 44032: 0x9DB6, - 50467 - 44032: 0x9DB7, - 50468 - 44032: 0x9DB8, - 50469 - 44032: 0x9DB9, - 50470 - 44032: 0x9DBA, - 50471 - 44032: 0x9DBB, - 50472 - 44032: 0xBEBE, - 50473 - 44032: 0xBEBF, - 50474 - 44032: 0x9DBC, - 50475 - 44032: 0x9DBD, - 50476 - 44032: 0xBEC0, - 50477 - 44032: 0x9DBE, - 50478 - 44032: 0x9DBF, - 50479 - 44032: 0x9DC0, - 50480 - 44032: 0xBEC1, - 50481 - 44032: 0x9DC1, - 50482 - 44032: 0x9DC2, - 50483 - 44032: 0x9DC3, - 50484 - 44032: 0x9DC4, - 50485 - 44032: 0x9DC5, - 50486 - 44032: 0x9DC6, - 50487 - 44032: 0x9DC7, - 50488 - 44032: 0xBEC2, - 50489 - 44032: 0xBEC3, - 50490 - 44032: 0x9DC8, - 50491 - 44032: 0xBEC4, - 50492 - 44032: 0x9DC9, - 50493 - 44032: 0xBEC5, - 50494 - 44032: 0x9DCA, - 50495 - 44032: 0x9DCB, - 50496 - 44032: 0x9DCC, - 50497 - 44032: 0x9DCD, - 50498 - 44032: 0x9DCE, - 50499 - 44032: 0x9DCF, - 50500 - 44032: 0xBEC6, - 50501 - 44032: 0xBEC7, - 50502 - 44032: 0x9DD0, - 50503 - 44032: 0x9DD1, - 50504 - 44032: 0xBEC8, - 50505 - 44032: 0xBEC9, - 50506 - 44032: 0xBECA, - 50507 - 44032: 0x9DD2, - 50508 - 44032: 0xBECB, - 50509 - 44032: 0xBECC, - 50510 - 44032: 0xBECD, - 50511 - 44032: 0x9DD3, - 50512 - 44032: 0x9DD4, - 50513 - 44032: 0x9DD5, - 50514 - 44032: 0x9DD6, - 50515 - 44032: 0xBECE, - 50516 - 44032: 0xBECF, - 50517 - 44032: 0xBED0, - 50518 - 44032: 0x9DD7, - 50519 - 44032: 0xBED1, - 50520 - 44032: 0xBED2, - 50521 - 44032: 0xBED3, - 50522 - 44032: 0x9DD8, - 50523 - 44032: 0x9DD9, - 50524 - 44032: 0x9DDA, - 50525 - 44032: 0xBED4, - 50526 - 44032: 0xBED5, - 50527 - 44032: 0x9DDB, - 50528 - 44032: 0xBED6, - 50529 - 44032: 0xBED7, - 50530 - 44032: 0x9DDC, - 50531 - 44032: 0x9DDD, - 50532 - 44032: 0xBED8, - 50533 - 44032: 0x9DDE, - 50534 - 44032: 0x9DDF, - 50535 - 44032: 0x9DE0, - 50536 - 44032: 0xBED9, - 50537 - 44032: 0x9DE1, - 50538 - 44032: 0x9DE2, - 50539 - 44032: 0x9DE3, - 50540 - 44032: 0x9DE4, - 50541 - 44032: 0x9DE5, - 50542 - 44032: 0x9DE6, - 50543 - 44032: 0x9DE7, - 50544 - 44032: 0xBEDA, - 50545 - 44032: 0xBEDB, - 50546 - 44032: 0x9DE8, - 50547 - 44032: 0xBEDC, - 50548 - 44032: 0xBEDD, - 50549 - 44032: 0xBEDE, - 50550 - 44032: 0x9DE9, - 50551 - 44032: 0x9DEA, - 50552 - 44032: 0x9DEB, - 50553 - 44032: 0x9DEC, - 50554 - 44032: 0x9DED, - 50555 - 44032: 0x9DEE, - 50556 - 44032: 0xBEDF, - 50557 - 44032: 0xBEE0, - 50558 - 44032: 0x9DEF, - 50559 - 44032: 0x9DF0, - 50560 - 44032: 0xBEE1, - 50561 - 44032: 0x9DF1, - 50562 - 44032: 0x9DF2, - 50563 - 44032: 0x9DF3, - 50564 - 44032: 0xBEE2, - 50565 - 44032: 0x9DF4, - 50566 - 44032: 0x9DF5, - 50567 - 44032: 0xBEE3, - 50568 - 44032: 0x9DF6, - 50569 - 44032: 0x9DF7, - 50570 - 44032: 0x9DF8, - 50571 - 44032: 0x9DF9, - 50572 - 44032: 0xBEE4, - 50573 - 44032: 0xBEE5, - 50574 - 44032: 0x9DFA, - 50575 - 44032: 0xBEE6, - 50576 - 44032: 0x9DFB, - 50577 - 44032: 0xBEE7, - 50578 - 44032: 0x9DFC, - 50579 - 44032: 0x9DFD, - 50580 - 44032: 0x9DFE, - 50581 - 44032: 0xBEE8, - 50582 - 44032: 0x9E41, - 50583 - 44032: 0xBEE9, - 50584 - 44032: 0xBEEA, - 50585 - 44032: 0x9E42, - 50586 - 44032: 0x9E43, - 50587 - 44032: 0x9E44, - 50588 - 44032: 0xBEEB, - 50589 - 44032: 0x9E45, - 50590 - 44032: 0x9E46, - 50591 - 44032: 0x9E47, - 50592 - 44032: 0xBEEC, - 50593 - 44032: 0x9E48, - 50594 - 44032: 0x9E49, - 50595 - 44032: 0x9E4A, - 50596 - 44032: 0x9E4B, - 50597 - 44032: 0x9E4C, - 50598 - 44032: 0x9E4D, - 50599 - 44032: 0x9E4E, - 50600 - 44032: 0x9E4F, - 50601 - 44032: 0xBEED, - 50602 - 44032: 0x9E50, - 50603 - 44032: 0x9E51, - 50604 - 44032: 0x9E52, - 50605 - 44032: 0x9E53, - 50606 - 44032: 0x9E54, - 50607 - 44032: 0x9E55, - 50608 - 44032: 0x9E56, - 50609 - 44032: 0x9E57, - 50610 - 44032: 0x9E58, - 50611 - 44032: 0x9E59, - 50612 - 44032: 0xBEEE, - 50613 - 44032: 0xBEEF, - 50614 - 44032: 0x9E5A, - 50615 - 44032: 0x9E61, - 50616 - 44032: 0xBEF0, - 50617 - 44032: 0xBEF1, - 50618 - 44032: 0x9E62, - 50619 - 44032: 0xBEF2, - 50620 - 44032: 0xBEF3, - 50621 - 44032: 0xBEF4, - 50622 - 44032: 0xBEF5, - 50623 - 44032: 0x9E63, - 50624 - 44032: 0x9E64, - 50625 - 44032: 0x9E65, - 50626 - 44032: 0x9E66, - 50627 - 44032: 0x9E67, - 50628 - 44032: 0xBEF6, - 50629 - 44032: 0xBEF7, - 50630 - 44032: 0xBEF8, - 50631 - 44032: 0xBEF9, - 50632 - 44032: 0xBEFA, - 50633 - 44032: 0xBEFB, - 50634 - 44032: 0xBEFC, - 50635 - 44032: 0x9E68, - 50636 - 44032: 0xBEFD, - 50637 - 44032: 0x9E69, - 50638 - 44032: 0xBEFE, - 50639 - 44032: 0x9E6A, - 50640 - 44032: 0xBFA1, - 50641 - 44032: 0xBFA2, - 50642 - 44032: 0x9E6B, - 50643 - 44032: 0x9E6C, - 50644 - 44032: 0xBFA3, - 50645 - 44032: 0x9E6D, - 50646 - 44032: 0x9E6E, - 50647 - 44032: 0x9E6F, - 50648 - 44032: 0xBFA4, - 50649 - 44032: 0x9E70, - 50650 - 44032: 0x9E71, - 50651 - 44032: 0x9E72, - 50652 - 44032: 0x9E73, - 50653 - 44032: 0x9E74, - 50654 - 44032: 0x9E75, - 50655 - 44032: 0x9E76, - 50656 - 44032: 0xBFA5, - 50657 - 44032: 0xBFA6, - 50658 - 44032: 0x9E77, - 50659 - 44032: 0xBFA7, - 50660 - 44032: 0x9E78, - 50661 - 44032: 0xBFA8, - 50662 - 44032: 0x9E79, - 50663 - 44032: 0x9E7A, - 50664 - 44032: 0x9E81, - 50665 - 44032: 0x9E82, - 50666 - 44032: 0x9E83, - 50667 - 44032: 0x9E84, - 50668 - 44032: 0xBFA9, - 50669 - 44032: 0xBFAA, - 50670 - 44032: 0xBFAB, - 50671 - 44032: 0x9E85, - 50672 - 44032: 0xBFAC, - 50673 - 44032: 0x9E86, - 50674 - 44032: 0x9E87, - 50675 - 44032: 0x9E88, - 50676 - 44032: 0xBFAD, - 50677 - 44032: 0x9E89, - 50678 - 44032: 0xBFAE, - 50679 - 44032: 0xBFAF, - 50680 - 44032: 0x9E8A, - 50681 - 44032: 0x9E8B, - 50682 - 44032: 0x9E8C, - 50683 - 44032: 0x9E8D, - 50684 - 44032: 0xBFB0, - 50685 - 44032: 0xBFB1, - 50686 - 44032: 0xBFB2, - 50687 - 44032: 0xBFB3, - 50688 - 44032: 0xBFB4, - 50689 - 44032: 0xBFB5, - 50690 - 44032: 0x9E8E, - 50691 - 44032: 0x9E8F, - 50692 - 44032: 0x9E90, - 50693 - 44032: 0xBFB6, - 50694 - 44032: 0xBFB7, - 50695 - 44032: 0xBFB8, - 50696 - 44032: 0xBFB9, - 50697 - 44032: 0x9E91, - 50698 - 44032: 0x9E92, - 50699 - 44032: 0x9E93, - 50700 - 44032: 0xBFBA, - 50701 - 44032: 0x9E94, - 50702 - 44032: 0x9E95, - 50703 - 44032: 0x9E96, - 50704 - 44032: 0xBFBB, - 50705 - 44032: 0x9E97, - 50706 - 44032: 0x9E98, - 50707 - 44032: 0x9E99, - 50708 - 44032: 0x9E9A, - 50709 - 44032: 0x9E9B, - 50710 - 44032: 0x9E9C, - 50711 - 44032: 0x9E9D, - 50712 - 44032: 0xBFBC, - 50713 - 44032: 0xBFBD, - 50714 - 44032: 0x9E9E, - 50715 - 44032: 0xBFBE, - 50716 - 44032: 0xBFBF, - 50717 - 44032: 0x9E9F, - 50718 - 44032: 0x9EA0, - 50719 - 44032: 0x9EA1, - 50720 - 44032: 0x9EA2, - 50721 - 44032: 0x9EA3, - 50722 - 44032: 0x9EA4, - 50723 - 44032: 0x9EA5, - 50724 - 44032: 0xBFC0, - 50725 - 44032: 0xBFC1, - 50726 - 44032: 0x9EA6, - 50727 - 44032: 0x9EA7, - 50728 - 44032: 0xBFC2, - 50729 - 44032: 0x9EA8, - 50730 - 44032: 0x9EA9, - 50731 - 44032: 0x9EAA, - 50732 - 44032: 0xBFC3, - 50733 - 44032: 0xBFC4, - 50734 - 44032: 0xBFC5, - 50735 - 44032: 0x9EAB, - 50736 - 44032: 0xBFC6, - 50737 - 44032: 0x9EAC, - 50738 - 44032: 0x9EAD, - 50739 - 44032: 0xBFC7, - 50740 - 44032: 0xBFC8, - 50741 - 44032: 0xBFC9, - 50742 - 44032: 0x9EAE, - 50743 - 44032: 0xBFCA, - 50744 - 44032: 0x9EAF, - 50745 - 44032: 0xBFCB, - 50746 - 44032: 0x9EB0, - 50747 - 44032: 0xBFCC, - 50748 - 44032: 0x9EB1, - 50749 - 44032: 0x9EB2, - 50750 - 44032: 0x9EB3, - 50751 - 44032: 0x9EB4, - 50752 - 44032: 0xBFCD, - 50753 - 44032: 0xBFCE, - 50754 - 44032: 0x9EB5, - 50755 - 44032: 0x9EB6, - 50756 - 44032: 0xBFCF, - 50757 - 44032: 0x9EB7, - 50758 - 44032: 0x9EB8, - 50759 - 44032: 0x9EB9, - 50760 - 44032: 0xBFD0, - 50761 - 44032: 0x9EBA, - 50762 - 44032: 0x9EBB, - 50763 - 44032: 0x9EBC, - 50764 - 44032: 0x9EBD, - 50765 - 44032: 0x9EBE, - 50766 - 44032: 0x9EBF, - 50767 - 44032: 0x9EC0, - 50768 - 44032: 0xBFD1, - 50769 - 44032: 0xBFD2, - 50770 - 44032: 0x9EC1, - 50771 - 44032: 0xBFD3, - 50772 - 44032: 0xBFD4, - 50773 - 44032: 0xBFD5, - 50774 - 44032: 0x9EC2, - 50775 - 44032: 0x9EC3, - 50776 - 44032: 0x9EC4, - 50777 - 44032: 0x9EC5, - 50778 - 44032: 0x9EC6, - 50779 - 44032: 0x9EC7, - 50780 - 44032: 0xBFD6, - 50781 - 44032: 0xBFD7, - 50782 - 44032: 0x9EC8, - 50783 - 44032: 0x9EC9, - 50784 - 44032: 0xBFD8, - 50785 - 44032: 0x9ECA, - 50786 - 44032: 0x9ECB, - 50787 - 44032: 0x9ECC, - 50788 - 44032: 0x9ECD, - 50789 - 44032: 0x9ECE, - 50790 - 44032: 0x9ECF, - 50791 - 44032: 0x9ED0, - 50792 - 44032: 0x9ED1, - 50793 - 44032: 0x9ED2, - 50794 - 44032: 0x9ED3, - 50795 - 44032: 0x9ED4, - 50796 - 44032: 0xBFD9, - 50797 - 44032: 0x9ED5, - 50798 - 44032: 0x9ED6, - 50799 - 44032: 0xBFDA, - 50800 - 44032: 0x9ED7, - 50801 - 44032: 0xBFDB, - 50802 - 44032: 0x9ED8, - 50803 - 44032: 0x9ED9, - 50804 - 44032: 0x9EDA, - 50805 - 44032: 0x9EDB, - 50806 - 44032: 0x9EDC, - 50807 - 44032: 0x9EDD, - 50808 - 44032: 0xBFDC, - 50809 - 44032: 0xBFDD, - 50810 - 44032: 0x9EDE, - 50811 - 44032: 0x9EDF, - 50812 - 44032: 0xBFDE, - 50813 - 44032: 0x9EE0, - 50814 - 44032: 0x9EE1, - 50815 - 44032: 0x9EE2, - 50816 - 44032: 0xBFDF, - 50817 - 44032: 0x9EE3, - 50818 - 44032: 0x9EE4, - 50819 - 44032: 0x9EE5, - 50820 - 44032: 0x9EE6, - 50821 - 44032: 0x9EE7, - 50822 - 44032: 0x9EE8, - 50823 - 44032: 0x9EE9, - 50824 - 44032: 0xBFE0, - 50825 - 44032: 0xBFE1, - 50826 - 44032: 0x9EEA, - 50827 - 44032: 0xBFE2, - 50828 - 44032: 0x9EEB, - 50829 - 44032: 0xBFE3, - 50830 - 44032: 0x9EEC, - 50831 - 44032: 0x9EED, - 50832 - 44032: 0x9EEE, - 50833 - 44032: 0x9EEF, - 50834 - 44032: 0x9EF0, - 50835 - 44032: 0x9EF1, - 50836 - 44032: 0xBFE4, - 50837 - 44032: 0xBFE5, - 50838 - 44032: 0x9EF2, - 50839 - 44032: 0x9EF3, - 50840 - 44032: 0xBFE6, - 50841 - 44032: 0x9EF4, - 50842 - 44032: 0x9EF5, - 50843 - 44032: 0x9EF6, - 50844 - 44032: 0xBFE7, - 50845 - 44032: 0x9EF7, - 50846 - 44032: 0x9EF8, - 50847 - 44032: 0x9EF9, - 50848 - 44032: 0x9EFA, - 50849 - 44032: 0x9EFB, - 50850 - 44032: 0x9EFC, - 50851 - 44032: 0x9EFD, - 50852 - 44032: 0xBFE8, - 50853 - 44032: 0xBFE9, - 50854 - 44032: 0x9EFE, - 50855 - 44032: 0xBFEA, - 50856 - 44032: 0x9F41, - 50857 - 44032: 0xBFEB, - 50858 - 44032: 0x9F42, - 50859 - 44032: 0x9F43, - 50860 - 44032: 0x9F44, - 50861 - 44032: 0x9F45, - 50862 - 44032: 0x9F46, - 50863 - 44032: 0x9F47, - 50864 - 44032: 0xBFEC, - 50865 - 44032: 0xBFED, - 50866 - 44032: 0x9F48, - 50867 - 44032: 0x9F49, - 50868 - 44032: 0xBFEE, - 50869 - 44032: 0x9F4A, - 50870 - 44032: 0x9F4B, - 50871 - 44032: 0x9F4C, - 50872 - 44032: 0xBFEF, - 50873 - 44032: 0xBFF0, - 50874 - 44032: 0xBFF1, - 50875 - 44032: 0x9F4D, - 50876 - 44032: 0x9F4E, - 50877 - 44032: 0x9F4F, - 50878 - 44032: 0x9F50, - 50879 - 44032: 0x9F51, - 50880 - 44032: 0xBFF2, - 50881 - 44032: 0xBFF3, - 50882 - 44032: 0x9F52, - 50883 - 44032: 0xBFF4, - 50884 - 44032: 0x9F53, - 50885 - 44032: 0xBFF5, - 50886 - 44032: 0x9F54, - 50887 - 44032: 0x9F55, - 50888 - 44032: 0x9F56, - 50889 - 44032: 0x9F57, - 50890 - 44032: 0x9F58, - 50891 - 44032: 0x9F59, - 50892 - 44032: 0xBFF6, - 50893 - 44032: 0xBFF7, - 50894 - 44032: 0x9F5A, - 50895 - 44032: 0x9F61, - 50896 - 44032: 0xBFF8, - 50897 - 44032: 0x9F62, - 50898 - 44032: 0x9F63, - 50899 - 44032: 0x9F64, - 50900 - 44032: 0xBFF9, - 50901 - 44032: 0x9F65, - 50902 - 44032: 0x9F66, - 50903 - 44032: 0x9F67, - 50904 - 44032: 0x9F68, - 50905 - 44032: 0x9F69, - 50906 - 44032: 0x9F6A, - 50907 - 44032: 0x9F6B, - 50908 - 44032: 0xBFFA, - 50909 - 44032: 0xBFFB, - 50910 - 44032: 0x9F6C, - 50911 - 44032: 0x9F6D, - 50912 - 44032: 0xBFFC, - 50913 - 44032: 0xBFFD, - 50914 - 44032: 0x9F6E, - 50915 - 44032: 0x9F6F, - 50916 - 44032: 0x9F70, - 50917 - 44032: 0x9F71, - 50918 - 44032: 0x9F72, - 50919 - 44032: 0x9F73, - 50920 - 44032: 0xBFFE, - 50921 - 44032: 0xC0A1, - 50922 - 44032: 0x9F74, - 50923 - 44032: 0x9F75, - 50924 - 44032: 0xC0A2, - 50925 - 44032: 0x9F76, - 50926 - 44032: 0x9F77, - 50927 - 44032: 0x9F78, - 50928 - 44032: 0xC0A3, - 50929 - 44032: 0x9F79, - 50930 - 44032: 0x9F7A, - 50931 - 44032: 0x9F81, - 50932 - 44032: 0x9F82, - 50933 - 44032: 0x9F83, - 50934 - 44032: 0x9F84, - 50935 - 44032: 0x9F85, - 50936 - 44032: 0xC0A4, - 50937 - 44032: 0xC0A5, - 50938 - 44032: 0x9F86, - 50939 - 44032: 0x9F87, - 50940 - 44032: 0x9F88, - 50941 - 44032: 0xC0A6, - 50942 - 44032: 0x9F89, - 50943 - 44032: 0x9F8A, - 50944 - 44032: 0x9F8B, - 50945 - 44032: 0x9F8C, - 50946 - 44032: 0x9F8D, - 50947 - 44032: 0x9F8E, - 50948 - 44032: 0xC0A7, - 50949 - 44032: 0xC0A8, - 50950 - 44032: 0x9F8F, - 50951 - 44032: 0x9F90, - 50952 - 44032: 0xC0A9, - 50953 - 44032: 0x9F91, - 50954 - 44032: 0x9F92, - 50955 - 44032: 0x9F93, - 50956 - 44032: 0xC0AA, - 50957 - 44032: 0x9F94, - 50958 - 44032: 0x9F95, - 50959 - 44032: 0x9F96, - 50960 - 44032: 0x9F97, - 50961 - 44032: 0x9F98, - 50962 - 44032: 0x9F99, - 50963 - 44032: 0x9F9A, - 50964 - 44032: 0xC0AB, - 50965 - 44032: 0xC0AC, - 50966 - 44032: 0x9F9B, - 50967 - 44032: 0xC0AD, - 50968 - 44032: 0x9F9C, - 50969 - 44032: 0xC0AE, - 50970 - 44032: 0x9F9D, - 50971 - 44032: 0x9F9E, - 50972 - 44032: 0x9F9F, - 50973 - 44032: 0x9FA0, - 50974 - 44032: 0x9FA1, - 50975 - 44032: 0x9FA2, - 50976 - 44032: 0xC0AF, - 50977 - 44032: 0xC0B0, - 50978 - 44032: 0x9FA3, - 50979 - 44032: 0x9FA4, - 50980 - 44032: 0xC0B1, - 50981 - 44032: 0x9FA5, - 50982 - 44032: 0x9FA6, - 50983 - 44032: 0x9FA7, - 50984 - 44032: 0xC0B2, - 50985 - 44032: 0x9FA8, - 50986 - 44032: 0x9FA9, - 50987 - 44032: 0x9FAA, - 50988 - 44032: 0x9FAB, - 50989 - 44032: 0x9FAC, - 50990 - 44032: 0x9FAD, - 50991 - 44032: 0x9FAE, - 50992 - 44032: 0xC0B3, - 50993 - 44032: 0xC0B4, - 50994 - 44032: 0x9FAF, - 50995 - 44032: 0xC0B5, - 50996 - 44032: 0x9FB0, - 50997 - 44032: 0xC0B6, - 50998 - 44032: 0x9FB1, - 50999 - 44032: 0xC0B7, - 51000 - 44032: 0x9FB2, - 51001 - 44032: 0x9FB3, - 51002 - 44032: 0x9FB4, - 51003 - 44032: 0x9FB5, - 51004 - 44032: 0xC0B8, - 51005 - 44032: 0xC0B9, - 51006 - 44032: 0x9FB6, - 51007 - 44032: 0x9FB7, - 51008 - 44032: 0xC0BA, - 51009 - 44032: 0x9FB8, - 51010 - 44032: 0x9FB9, - 51011 - 44032: 0x9FBA, - 51012 - 44032: 0xC0BB, - 51013 - 44032: 0x9FBB, - 51014 - 44032: 0x9FBC, - 51015 - 44032: 0x9FBD, - 51016 - 44032: 0x9FBE, - 51017 - 44032: 0x9FBF, - 51018 - 44032: 0xC0BC, - 51019 - 44032: 0x9FC0, - 51020 - 44032: 0xC0BD, - 51021 - 44032: 0xC0BE, - 51022 - 44032: 0x9FC1, - 51023 - 44032: 0xC0BF, - 51024 - 44032: 0x9FC2, - 51025 - 44032: 0xC0C0, - 51026 - 44032: 0xC0C1, - 51027 - 44032: 0xC0C2, - 51028 - 44032: 0xC0C3, - 51029 - 44032: 0xC0C4, - 51030 - 44032: 0xC0C5, - 51031 - 44032: 0xC0C6, - 51032 - 44032: 0xC0C7, - 51033 - 44032: 0x9FC3, - 51034 - 44032: 0x9FC4, - 51035 - 44032: 0x9FC5, - 51036 - 44032: 0xC0C8, - 51037 - 44032: 0x9FC6, - 51038 - 44032: 0x9FC7, - 51039 - 44032: 0x9FC8, - 51040 - 44032: 0xC0C9, - 51041 - 44032: 0x9FC9, - 51042 - 44032: 0x9FCA, - 51043 - 44032: 0x9FCB, - 51044 - 44032: 0x9FCC, - 51045 - 44032: 0x9FCD, - 51046 - 44032: 0x9FCE, - 51047 - 44032: 0x9FCF, - 51048 - 44032: 0xC0CA, - 51049 - 44032: 0x9FD0, - 51050 - 44032: 0x9FD1, - 51051 - 44032: 0xC0CB, - 51052 - 44032: 0x9FD2, - 51053 - 44032: 0x9FD3, - 51054 - 44032: 0x9FD4, - 51055 - 44032: 0x9FD5, - 51056 - 44032: 0x9FD6, - 51057 - 44032: 0x9FD7, - 51058 - 44032: 0x9FD8, - 51059 - 44032: 0x9FD9, - 51060 - 44032: 0xC0CC, - 51061 - 44032: 0xC0CD, - 51062 - 44032: 0x9FDA, - 51063 - 44032: 0x9FDB, - 51064 - 44032: 0xC0CE, - 51065 - 44032: 0x9FDC, - 51066 - 44032: 0x9FDD, - 51067 - 44032: 0x9FDE, - 51068 - 44032: 0xC0CF, - 51069 - 44032: 0xC0D0, - 51070 - 44032: 0xC0D1, - 51071 - 44032: 0x9FDF, - 51072 - 44032: 0x9FE0, - 51073 - 44032: 0x9FE1, - 51074 - 44032: 0x9FE2, - 51075 - 44032: 0xC0D2, - 51076 - 44032: 0xC0D3, - 51077 - 44032: 0xC0D4, - 51078 - 44032: 0x9FE3, - 51079 - 44032: 0xC0D5, - 51080 - 44032: 0xC0D6, - 51081 - 44032: 0xC0D7, - 51082 - 44032: 0xC0D8, - 51083 - 44032: 0x9FE4, - 51084 - 44032: 0x9FE5, - 51085 - 44032: 0x9FE6, - 51086 - 44032: 0xC0D9, - 51087 - 44032: 0x9FE7, - 51088 - 44032: 0xC0DA, - 51089 - 44032: 0xC0DB, - 51090 - 44032: 0x9FE8, - 51091 - 44032: 0x9FE9, - 51092 - 44032: 0xC0DC, - 51093 - 44032: 0x9FEA, - 51094 - 44032: 0xC0DD, - 51095 - 44032: 0xC0DE, - 51096 - 44032: 0xC0DF, - 51097 - 44032: 0x9FEB, - 51098 - 44032: 0xC0E0, - 51099 - 44032: 0x9FEC, - 51100 - 44032: 0x9FED, - 51101 - 44032: 0x9FEE, - 51102 - 44032: 0x9FEF, - 51103 - 44032: 0x9FF0, - 51104 - 44032: 0xC0E1, - 51105 - 44032: 0xC0E2, - 51106 - 44032: 0x9FF1, - 51107 - 44032: 0xC0E3, - 51108 - 44032: 0xC0E4, - 51109 - 44032: 0xC0E5, - 51110 - 44032: 0xC0E6, - 51111 - 44032: 0x9FF2, - 51112 - 44032: 0x9FF3, - 51113 - 44032: 0x9FF4, - 51114 - 44032: 0x9FF5, - 51115 - 44032: 0x9FF6, - 51116 - 44032: 0xC0E7, - 51117 - 44032: 0xC0E8, - 51118 - 44032: 0x9FF7, - 51119 - 44032: 0x9FF8, - 51120 - 44032: 0xC0E9, - 51121 - 44032: 0x9FF9, - 51122 - 44032: 0x9FFA, - 51123 - 44032: 0x9FFB, - 51124 - 44032: 0xC0EA, - 51125 - 44032: 0x9FFC, - 51126 - 44032: 0x9FFD, - 51127 - 44032: 0x9FFE, - 51128 - 44032: 0xA041, - 51129 - 44032: 0xA042, - 51130 - 44032: 0xA043, - 51131 - 44032: 0xA044, - 51132 - 44032: 0xC0EB, - 51133 - 44032: 0xC0EC, - 51134 - 44032: 0xA045, - 51135 - 44032: 0xC0ED, - 51136 - 44032: 0xC0EE, - 51137 - 44032: 0xC0EF, - 51138 - 44032: 0xA046, - 51139 - 44032: 0xA047, - 51140 - 44032: 0xA048, - 51141 - 44032: 0xA049, - 51142 - 44032: 0xA04A, - 51143 - 44032: 0xA04B, - 51144 - 44032: 0xC0F0, - 51145 - 44032: 0xC0F1, - 51146 - 44032: 0xA04C, - 51147 - 44032: 0xA04D, - 51148 - 44032: 0xC0F2, - 51149 - 44032: 0xA04E, - 51150 - 44032: 0xC0F3, - 51151 - 44032: 0xA04F, - 51152 - 44032: 0xC0F4, - 51153 - 44032: 0xA050, - 51154 - 44032: 0xA051, - 51155 - 44032: 0xA052, - 51156 - 44032: 0xA053, - 51157 - 44032: 0xA054, - 51158 - 44032: 0xA055, - 51159 - 44032: 0xA056, - 51160 - 44032: 0xC0F5, - 51161 - 44032: 0xA057, - 51162 - 44032: 0xA058, - 51163 - 44032: 0xA059, - 51164 - 44032: 0xA05A, - 51165 - 44032: 0xC0F6, - 51166 - 44032: 0xA061, - 51167 - 44032: 0xA062, - 51168 - 44032: 0xA063, - 51169 - 44032: 0xA064, - 51170 - 44032: 0xA065, - 51171 - 44032: 0xA066, - 51172 - 44032: 0xC0F7, - 51173 - 44032: 0xA067, - 51174 - 44032: 0xA068, - 51175 - 44032: 0xA069, - 51176 - 44032: 0xC0F8, - 51177 - 44032: 0xA06A, - 51178 - 44032: 0xA06B, - 51179 - 44032: 0xA06C, - 51180 - 44032: 0xC0F9, - 51181 - 44032: 0xA06D, - 51182 - 44032: 0xA06E, - 51183 - 44032: 0xA06F, - 51184 - 44032: 0xA070, - 51185 - 44032: 0xA071, - 51186 - 44032: 0xA072, - 51187 - 44032: 0xA073, - 51188 - 44032: 0xA074, - 51189 - 44032: 0xA075, - 51190 - 44032: 0xA076, - 51191 - 44032: 0xA077, - 51192 - 44032: 0xA078, - 51193 - 44032: 0xA079, - 51194 - 44032: 0xA07A, - 51195 - 44032: 0xA081, - 51196 - 44032: 0xA082, - 51197 - 44032: 0xA083, - 51198 - 44032: 0xA084, - 51199 - 44032: 0xA085, - 51200 - 44032: 0xC0FA, - 51201 - 44032: 0xC0FB, - 51202 - 44032: 0xA086, - 51203 - 44032: 0xA087, - 51204 - 44032: 0xC0FC, - 51205 - 44032: 0xA088, - 51206 - 44032: 0xA089, - 51207 - 44032: 0xA08A, - 51208 - 44032: 0xC0FD, - 51209 - 44032: 0xA08B, - 51210 - 44032: 0xC0FE, - 51211 - 44032: 0xA08C, - 51212 - 44032: 0xA08D, - 51213 - 44032: 0xA08E, - 51214 - 44032: 0xA08F, - 51215 - 44032: 0xA090, - 51216 - 44032: 0xC1A1, - 51217 - 44032: 0xC1A2, - 51218 - 44032: 0xA091, - 51219 - 44032: 0xC1A3, - 51220 - 44032: 0xA092, - 51221 - 44032: 0xC1A4, - 51222 - 44032: 0xC1A5, - 51223 - 44032: 0xA093, - 51224 - 44032: 0xA094, - 51225 - 44032: 0xA095, - 51226 - 44032: 0xA096, - 51227 - 44032: 0xA097, - 51228 - 44032: 0xC1A6, - 51229 - 44032: 0xC1A7, - 51230 - 44032: 0xA098, - 51231 - 44032: 0xA099, - 51232 - 44032: 0xC1A8, - 51233 - 44032: 0xA09A, - 51234 - 44032: 0xA09B, - 51235 - 44032: 0xA09C, - 51236 - 44032: 0xC1A9, - 51237 - 44032: 0xA09D, - 51238 - 44032: 0xA09E, - 51239 - 44032: 0xA09F, - 51240 - 44032: 0xA0A0, - 51241 - 44032: 0xA0A1, - 51242 - 44032: 0xA0A2, - 51243 - 44032: 0xA0A3, - 51244 - 44032: 0xC1AA, - 51245 - 44032: 0xC1AB, - 51246 - 44032: 0xA0A4, - 51247 - 44032: 0xC1AC, - 51248 - 44032: 0xA0A5, - 51249 - 44032: 0xC1AD, - 51250 - 44032: 0xA0A6, - 51251 - 44032: 0xA0A7, - 51252 - 44032: 0xA0A8, - 51253 - 44032: 0xA0A9, - 51254 - 44032: 0xA0AA, - 51255 - 44032: 0xA0AB, - 51256 - 44032: 0xC1AE, - 51257 - 44032: 0xA0AC, - 51258 - 44032: 0xA0AD, - 51259 - 44032: 0xA0AE, - 51260 - 44032: 0xC1AF, - 51261 - 44032: 0xA0AF, - 51262 - 44032: 0xA0B0, - 51263 - 44032: 0xA0B1, - 51264 - 44032: 0xC1B0, - 51265 - 44032: 0xA0B2, - 51266 - 44032: 0xA0B3, - 51267 - 44032: 0xA0B4, - 51268 - 44032: 0xA0B5, - 51269 - 44032: 0xA0B6, - 51270 - 44032: 0xA0B7, - 51271 - 44032: 0xA0B8, - 51272 - 44032: 0xC1B1, - 51273 - 44032: 0xC1B2, - 51274 - 44032: 0xA0B9, - 51275 - 44032: 0xA0BA, - 51276 - 44032: 0xC1B3, - 51277 - 44032: 0xC1B4, - 51278 - 44032: 0xA0BB, - 51279 - 44032: 0xA0BC, - 51280 - 44032: 0xA0BD, - 51281 - 44032: 0xA0BE, - 51282 - 44032: 0xA0BF, - 51283 - 44032: 0xA0C0, - 51284 - 44032: 0xC1B5, - 51285 - 44032: 0xA0C1, - 51286 - 44032: 0xA0C2, - 51287 - 44032: 0xA0C3, - 51288 - 44032: 0xA0C4, - 51289 - 44032: 0xA0C5, - 51290 - 44032: 0xA0C6, - 51291 - 44032: 0xA0C7, - 51292 - 44032: 0xA0C8, - 51293 - 44032: 0xA0C9, - 51294 - 44032: 0xA0CA, - 51295 - 44032: 0xA0CB, - 51296 - 44032: 0xA0CC, - 51297 - 44032: 0xA0CD, - 51298 - 44032: 0xA0CE, - 51299 - 44032: 0xA0CF, - 51300 - 44032: 0xA0D0, - 51301 - 44032: 0xA0D1, - 51302 - 44032: 0xA0D2, - 51303 - 44032: 0xA0D3, - 51304 - 44032: 0xA0D4, - 51305 - 44032: 0xA0D5, - 51306 - 44032: 0xA0D6, - 51307 - 44032: 0xA0D7, - 51308 - 44032: 0xA0D8, - 51309 - 44032: 0xA0D9, - 51310 - 44032: 0xA0DA, - 51311 - 44032: 0xA0DB, - 51312 - 44032: 0xC1B6, - 51313 - 44032: 0xC1B7, - 51314 - 44032: 0xA0DC, - 51315 - 44032: 0xA0DD, - 51316 - 44032: 0xC1B8, - 51317 - 44032: 0xA0DE, - 51318 - 44032: 0xA0DF, - 51319 - 44032: 0xA0E0, - 51320 - 44032: 0xC1B9, - 51321 - 44032: 0xA0E1, - 51322 - 44032: 0xC1BA, - 51323 - 44032: 0xA0E2, - 51324 - 44032: 0xA0E3, - 51325 - 44032: 0xA0E4, - 51326 - 44032: 0xA0E5, - 51327 - 44032: 0xA0E6, - 51328 - 44032: 0xC1BB, - 51329 - 44032: 0xC1BC, - 51330 - 44032: 0xA0E7, - 51331 - 44032: 0xC1BD, - 51332 - 44032: 0xA0E8, - 51333 - 44032: 0xC1BE, - 51334 - 44032: 0xC1BF, - 51335 - 44032: 0xC1C0, - 51336 - 44032: 0xA0E9, - 51337 - 44032: 0xA0EA, - 51338 - 44032: 0xA0EB, - 51339 - 44032: 0xC1C1, - 51340 - 44032: 0xC1C2, - 51341 - 44032: 0xC1C3, - 51342 - 44032: 0xA0EC, - 51343 - 44032: 0xA0ED, - 51344 - 44032: 0xA0EE, - 51345 - 44032: 0xA0EF, - 51346 - 44032: 0xA0F0, - 51347 - 44032: 0xA0F1, - 51348 - 44032: 0xC1C4, - 51349 - 44032: 0xA0F2, - 51350 - 44032: 0xA0F3, - 51351 - 44032: 0xA0F4, - 51352 - 44032: 0xA0F5, - 51353 - 44032: 0xA0F6, - 51354 - 44032: 0xA0F7, - 51355 - 44032: 0xA0F8, - 51356 - 44032: 0xA0F9, - 51357 - 44032: 0xC1C5, - 51358 - 44032: 0xA0FA, - 51359 - 44032: 0xC1C6, - 51360 - 44032: 0xA0FB, - 51361 - 44032: 0xC1C7, - 51362 - 44032: 0xA0FC, - 51363 - 44032: 0xA0FD, - 51364 - 44032: 0xA0FE, - 51365 - 44032: 0xA141, - 51366 - 44032: 0xA142, - 51367 - 44032: 0xA143, - 51368 - 44032: 0xC1C8, - 51369 - 44032: 0xA144, - 51370 - 44032: 0xA145, - 51371 - 44032: 0xA146, - 51372 - 44032: 0xA147, - 51373 - 44032: 0xA148, - 51374 - 44032: 0xA149, - 51375 - 44032: 0xA14A, - 51376 - 44032: 0xA14B, - 51377 - 44032: 0xA14C, - 51378 - 44032: 0xA14D, - 51379 - 44032: 0xA14E, - 51380 - 44032: 0xA14F, - 51381 - 44032: 0xA150, - 51382 - 44032: 0xA151, - 51383 - 44032: 0xA152, - 51384 - 44032: 0xA153, - 51385 - 44032: 0xA154, - 51386 - 44032: 0xA155, - 51387 - 44032: 0xA156, - 51388 - 44032: 0xC1C9, - 51389 - 44032: 0xC1CA, - 51390 - 44032: 0xA157, - 51391 - 44032: 0xA158, - 51392 - 44032: 0xA159, - 51393 - 44032: 0xA15A, - 51394 - 44032: 0xA161, - 51395 - 44032: 0xA162, - 51396 - 44032: 0xC1CB, - 51397 - 44032: 0xA163, - 51398 - 44032: 0xA164, - 51399 - 44032: 0xA165, - 51400 - 44032: 0xC1CC, - 51401 - 44032: 0xA166, - 51402 - 44032: 0xA167, - 51403 - 44032: 0xA168, - 51404 - 44032: 0xC1CD, - 51405 - 44032: 0xA169, - 51406 - 44032: 0xA16A, - 51407 - 44032: 0xA16B, - 51408 - 44032: 0xA16C, - 51409 - 44032: 0xA16D, - 51410 - 44032: 0xA16E, - 51411 - 44032: 0xA16F, - 51412 - 44032: 0xC1CE, - 51413 - 44032: 0xC1CF, - 51414 - 44032: 0xA170, - 51415 - 44032: 0xC1D0, - 51416 - 44032: 0xA171, - 51417 - 44032: 0xC1D1, - 51418 - 44032: 0xA172, - 51419 - 44032: 0xA173, - 51420 - 44032: 0xA174, - 51421 - 44032: 0xA175, - 51422 - 44032: 0xA176, - 51423 - 44032: 0xA177, - 51424 - 44032: 0xC1D2, - 51425 - 44032: 0xC1D3, - 51426 - 44032: 0xA178, - 51427 - 44032: 0xA179, - 51428 - 44032: 0xC1D4, - 51429 - 44032: 0xA17A, - 51430 - 44032: 0xA181, - 51431 - 44032: 0xA182, - 51432 - 44032: 0xA183, - 51433 - 44032: 0xA184, - 51434 - 44032: 0xA185, - 51435 - 44032: 0xA186, - 51436 - 44032: 0xA187, - 51437 - 44032: 0xA188, - 51438 - 44032: 0xA189, - 51439 - 44032: 0xA18A, - 51440 - 44032: 0xA18B, - 51441 - 44032: 0xA18C, - 51442 - 44032: 0xA18D, - 51443 - 44032: 0xA18E, - 51444 - 44032: 0xA18F, - 51445 - 44032: 0xC1D5, - 51446 - 44032: 0xA190, - 51447 - 44032: 0xA191, - 51448 - 44032: 0xA192, - 51449 - 44032: 0xA193, - 51450 - 44032: 0xA194, - 51451 - 44032: 0xA195, - 51452 - 44032: 0xC1D6, - 51453 - 44032: 0xC1D7, - 51454 - 44032: 0xA196, - 51455 - 44032: 0xA197, - 51456 - 44032: 0xC1D8, - 51457 - 44032: 0xA198, - 51458 - 44032: 0xA199, - 51459 - 44032: 0xA19A, - 51460 - 44032: 0xC1D9, - 51461 - 44032: 0xC1DA, - 51462 - 44032: 0xC1DB, - 51463 - 44032: 0xA19B, - 51464 - 44032: 0xA19C, - 51465 - 44032: 0xA19D, - 51466 - 44032: 0xA19E, - 51467 - 44032: 0xA19F, - 51468 - 44032: 0xC1DC, - 51469 - 44032: 0xC1DD, - 51470 - 44032: 0xA1A0, - 51471 - 44032: 0xC1DE, - 51472 - 44032: 0xA241, - 51473 - 44032: 0xC1DF, - 51474 - 44032: 0xA242, - 51475 - 44032: 0xA243, - 51476 - 44032: 0xA244, - 51477 - 44032: 0xA245, - 51478 - 44032: 0xA246, - 51479 - 44032: 0xA247, - 51480 - 44032: 0xC1E0, - 51481 - 44032: 0xA248, - 51482 - 44032: 0xA249, - 51483 - 44032: 0xA24A, - 51484 - 44032: 0xA24B, - 51485 - 44032: 0xA24C, - 51486 - 44032: 0xA24D, - 51487 - 44032: 0xA24E, - 51488 - 44032: 0xA24F, - 51489 - 44032: 0xA250, - 51490 - 44032: 0xA251, - 51491 - 44032: 0xA252, - 51492 - 44032: 0xA253, - 51493 - 44032: 0xA254, - 51494 - 44032: 0xA255, - 51495 - 44032: 0xA256, - 51496 - 44032: 0xA257, - 51497 - 44032: 0xA258, - 51498 - 44032: 0xA259, - 51499 - 44032: 0xA25A, - 51500 - 44032: 0xC1E1, - 51501 - 44032: 0xA261, - 51502 - 44032: 0xA262, - 51503 - 44032: 0xA263, - 51504 - 44032: 0xA264, - 51505 - 44032: 0xA265, - 51506 - 44032: 0xA266, - 51507 - 44032: 0xA267, - 51508 - 44032: 0xC1E2, - 51509 - 44032: 0xA268, - 51510 - 44032: 0xA269, - 51511 - 44032: 0xA26A, - 51512 - 44032: 0xA26B, - 51513 - 44032: 0xA26C, - 51514 - 44032: 0xA26D, - 51515 - 44032: 0xA26E, - 51516 - 44032: 0xA26F, - 51517 - 44032: 0xA270, - 51518 - 44032: 0xA271, - 51519 - 44032: 0xA272, - 51520 - 44032: 0xA273, - 51521 - 44032: 0xA274, - 51522 - 44032: 0xA275, - 51523 - 44032: 0xA276, - 51524 - 44032: 0xA277, - 51525 - 44032: 0xA278, - 51526 - 44032: 0xA279, - 51527 - 44032: 0xA27A, - 51528 - 44032: 0xA281, - 51529 - 44032: 0xA282, - 51530 - 44032: 0xA283, - 51531 - 44032: 0xA284, - 51532 - 44032: 0xA285, - 51533 - 44032: 0xA286, - 51534 - 44032: 0xA287, - 51535 - 44032: 0xA288, - 51536 - 44032: 0xC1E3, - 51537 - 44032: 0xC1E4, - 51538 - 44032: 0xA289, - 51539 - 44032: 0xA28A, - 51540 - 44032: 0xC1E5, - 51541 - 44032: 0xA28B, - 51542 - 44032: 0xA28C, - 51543 - 44032: 0xA28D, - 51544 - 44032: 0xC1E6, - 51545 - 44032: 0xA28E, - 51546 - 44032: 0xA28F, - 51547 - 44032: 0xA290, - 51548 - 44032: 0xA291, - 51549 - 44032: 0xA292, - 51550 - 44032: 0xA293, - 51551 - 44032: 0xA294, - 51552 - 44032: 0xC1E7, - 51553 - 44032: 0xC1E8, - 51554 - 44032: 0xA295, - 51555 - 44032: 0xC1E9, - 51556 - 44032: 0xA296, - 51557 - 44032: 0xA297, - 51558 - 44032: 0xA298, - 51559 - 44032: 0xA299, - 51560 - 44032: 0xA29A, - 51561 - 44032: 0xA29B, - 51562 - 44032: 0xA29C, - 51563 - 44032: 0xA29D, - 51564 - 44032: 0xC1EA, - 51565 - 44032: 0xA29E, - 51566 - 44032: 0xA29F, - 51567 - 44032: 0xA2A0, - 51568 - 44032: 0xC1EB, - 51569 - 44032: 0xA341, - 51570 - 44032: 0xA342, - 51571 - 44032: 0xA343, - 51572 - 44032: 0xC1EC, - 51573 - 44032: 0xA344, - 51574 - 44032: 0xA345, - 51575 - 44032: 0xA346, - 51576 - 44032: 0xA347, - 51577 - 44032: 0xA348, - 51578 - 44032: 0xA349, - 51579 - 44032: 0xA34A, - 51580 - 44032: 0xC1ED, - 51581 - 44032: 0xA34B, - 51582 - 44032: 0xA34C, - 51583 - 44032: 0xA34D, - 51584 - 44032: 0xA34E, - 51585 - 44032: 0xA34F, - 51586 - 44032: 0xA350, - 51587 - 44032: 0xA351, - 51588 - 44032: 0xA352, - 51589 - 44032: 0xA353, - 51590 - 44032: 0xA354, - 51591 - 44032: 0xA355, - 51592 - 44032: 0xC1EE, - 51593 - 44032: 0xC1EF, - 51594 - 44032: 0xA356, - 51595 - 44032: 0xA357, - 51596 - 44032: 0xC1F0, - 51597 - 44032: 0xA358, - 51598 - 44032: 0xA359, - 51599 - 44032: 0xA35A, - 51600 - 44032: 0xC1F1, - 51601 - 44032: 0xA361, - 51602 - 44032: 0xA362, - 51603 - 44032: 0xA363, - 51604 - 44032: 0xA364, - 51605 - 44032: 0xA365, - 51606 - 44032: 0xA366, - 51607 - 44032: 0xA367, - 51608 - 44032: 0xC1F2, - 51609 - 44032: 0xC1F3, - 51610 - 44032: 0xA368, - 51611 - 44032: 0xC1F4, - 51612 - 44032: 0xA369, - 51613 - 44032: 0xC1F5, - 51614 - 44032: 0xA36A, - 51615 - 44032: 0xA36B, - 51616 - 44032: 0xA36C, - 51617 - 44032: 0xA36D, - 51618 - 44032: 0xA36E, - 51619 - 44032: 0xA36F, - 51620 - 44032: 0xA370, - 51621 - 44032: 0xA371, - 51622 - 44032: 0xA372, - 51623 - 44032: 0xA373, - 51624 - 44032: 0xA374, - 51625 - 44032: 0xA375, - 51626 - 44032: 0xA376, - 51627 - 44032: 0xA377, - 51628 - 44032: 0xA378, - 51629 - 44032: 0xA379, - 51630 - 44032: 0xA37A, - 51631 - 44032: 0xA381, - 51632 - 44032: 0xA382, - 51633 - 44032: 0xA383, - 51634 - 44032: 0xA384, - 51635 - 44032: 0xA385, - 51636 - 44032: 0xA386, - 51637 - 44032: 0xA387, - 51638 - 44032: 0xA388, - 51639 - 44032: 0xA389, - 51640 - 44032: 0xA38A, - 51641 - 44032: 0xA38B, - 51642 - 44032: 0xA38C, - 51643 - 44032: 0xA38D, - 51644 - 44032: 0xA38E, - 51645 - 44032: 0xA38F, - 51646 - 44032: 0xA390, - 51647 - 44032: 0xA391, - 51648 - 44032: 0xC1F6, - 51649 - 44032: 0xC1F7, - 51650 - 44032: 0xA392, - 51651 - 44032: 0xA393, - 51652 - 44032: 0xC1F8, - 51653 - 44032: 0xA394, - 51654 - 44032: 0xA395, - 51655 - 44032: 0xC1F9, - 51656 - 44032: 0xC1FA, - 51657 - 44032: 0xA396, - 51658 - 44032: 0xC1FB, - 51659 - 44032: 0xA397, - 51660 - 44032: 0xA398, - 51661 - 44032: 0xA399, - 51662 - 44032: 0xA39A, - 51663 - 44032: 0xA39B, - 51664 - 44032: 0xC1FC, - 51665 - 44032: 0xC1FD, - 51666 - 44032: 0xA39C, - 51667 - 44032: 0xC1FE, - 51668 - 44032: 0xA39D, - 51669 - 44032: 0xC2A1, - 51670 - 44032: 0xC2A2, - 51671 - 44032: 0xA39E, - 51672 - 44032: 0xA39F, - 51673 - 44032: 0xC2A3, - 51674 - 44032: 0xC2A4, - 51675 - 44032: 0xA3A0, - 51676 - 44032: 0xC2A5, - 51677 - 44032: 0xC2A6, - 51678 - 44032: 0xA441, - 51679 - 44032: 0xA442, - 51680 - 44032: 0xC2A7, - 51681 - 44032: 0xA443, - 51682 - 44032: 0xC2A8, - 51683 - 44032: 0xA444, - 51684 - 44032: 0xC2A9, - 51685 - 44032: 0xA445, - 51686 - 44032: 0xA446, - 51687 - 44032: 0xC2AA, - 51688 - 44032: 0xA447, - 51689 - 44032: 0xA448, - 51690 - 44032: 0xA449, - 51691 - 44032: 0xA44A, - 51692 - 44032: 0xC2AB, - 51693 - 44032: 0xC2AC, - 51694 - 44032: 0xA44B, - 51695 - 44032: 0xC2AD, - 51696 - 44032: 0xC2AE, - 51697 - 44032: 0xC2AF, - 51698 - 44032: 0xA44C, - 51699 - 44032: 0xA44D, - 51700 - 44032: 0xA44E, - 51701 - 44032: 0xA44F, - 51702 - 44032: 0xA450, - 51703 - 44032: 0xA451, - 51704 - 44032: 0xC2B0, - 51705 - 44032: 0xC2B1, - 51706 - 44032: 0xA452, - 51707 - 44032: 0xA453, - 51708 - 44032: 0xC2B2, - 51709 - 44032: 0xA454, - 51710 - 44032: 0xA455, - 51711 - 44032: 0xA456, - 51712 - 44032: 0xC2B3, - 51713 - 44032: 0xA457, - 51714 - 44032: 0xA458, - 51715 - 44032: 0xA459, - 51716 - 44032: 0xA45A, - 51717 - 44032: 0xA461, - 51718 - 44032: 0xA462, - 51719 - 44032: 0xA463, - 51720 - 44032: 0xC2B4, - 51721 - 44032: 0xC2B5, - 51722 - 44032: 0xA464, - 51723 - 44032: 0xC2B6, - 51724 - 44032: 0xC2B7, - 51725 - 44032: 0xC2B8, - 51726 - 44032: 0xA465, - 51727 - 44032: 0xA466, - 51728 - 44032: 0xA467, - 51729 - 44032: 0xA468, - 51730 - 44032: 0xA469, - 51731 - 44032: 0xA46A, - 51732 - 44032: 0xC2B9, - 51733 - 44032: 0xA46B, - 51734 - 44032: 0xA46C, - 51735 - 44032: 0xA46D, - 51736 - 44032: 0xC2BA, - 51737 - 44032: 0xA46E, - 51738 - 44032: 0xA46F, - 51739 - 44032: 0xA470, - 51740 - 44032: 0xA471, - 51741 - 44032: 0xA472, - 51742 - 44032: 0xA473, - 51743 - 44032: 0xA474, - 51744 - 44032: 0xA475, - 51745 - 44032: 0xA476, - 51746 - 44032: 0xA477, - 51747 - 44032: 0xA478, - 51748 - 44032: 0xA479, - 51749 - 44032: 0xA47A, - 51750 - 44032: 0xA481, - 51751 - 44032: 0xA482, - 51752 - 44032: 0xA483, - 51753 - 44032: 0xC2BB, - 51754 - 44032: 0xA484, - 51755 - 44032: 0xA485, - 51756 - 44032: 0xA486, - 51757 - 44032: 0xA487, - 51758 - 44032: 0xA488, - 51759 - 44032: 0xA489, - 51760 - 44032: 0xA48A, - 51761 - 44032: 0xA48B, - 51762 - 44032: 0xA48C, - 51763 - 44032: 0xA48D, - 51764 - 44032: 0xA48E, - 51765 - 44032: 0xA48F, - 51766 - 44032: 0xA490, - 51767 - 44032: 0xA491, - 51768 - 44032: 0xA492, - 51769 - 44032: 0xA493, - 51770 - 44032: 0xA494, - 51771 - 44032: 0xA495, - 51772 - 44032: 0xA496, - 51773 - 44032: 0xA497, - 51774 - 44032: 0xA498, - 51775 - 44032: 0xA499, - 51776 - 44032: 0xA49A, - 51777 - 44032: 0xA49B, - 51778 - 44032: 0xA49C, - 51779 - 44032: 0xA49D, - 51780 - 44032: 0xA49E, - 51781 - 44032: 0xA49F, - 51782 - 44032: 0xA4A0, - 51783 - 44032: 0xA541, - 51784 - 44032: 0xA542, - 51785 - 44032: 0xA543, - 51786 - 44032: 0xA544, - 51787 - 44032: 0xA545, - 51788 - 44032: 0xC2BC, - 51789 - 44032: 0xC2BD, - 51790 - 44032: 0xA546, - 51791 - 44032: 0xA547, - 51792 - 44032: 0xC2BE, - 51793 - 44032: 0xA548, - 51794 - 44032: 0xA549, - 51795 - 44032: 0xA54A, - 51796 - 44032: 0xC2BF, - 51797 - 44032: 0xA54B, - 51798 - 44032: 0xA54C, - 51799 - 44032: 0xA54D, - 51800 - 44032: 0xA54E, - 51801 - 44032: 0xA54F, - 51802 - 44032: 0xA550, - 51803 - 44032: 0xA551, - 51804 - 44032: 0xC2C0, - 51805 - 44032: 0xC2C1, - 51806 - 44032: 0xA552, - 51807 - 44032: 0xC2C2, - 51808 - 44032: 0xC2C3, - 51809 - 44032: 0xC2C4, - 51810 - 44032: 0xA553, - 51811 - 44032: 0xA554, - 51812 - 44032: 0xA555, - 51813 - 44032: 0xA556, - 51814 - 44032: 0xA557, - 51815 - 44032: 0xA558, - 51816 - 44032: 0xC2C5, - 51817 - 44032: 0xA559, - 51818 - 44032: 0xA55A, - 51819 - 44032: 0xA561, - 51820 - 44032: 0xA562, - 51821 - 44032: 0xA563, - 51822 - 44032: 0xA564, - 51823 - 44032: 0xA565, - 51824 - 44032: 0xA566, - 51825 - 44032: 0xA567, - 51826 - 44032: 0xA568, - 51827 - 44032: 0xA569, - 51828 - 44032: 0xA56A, - 51829 - 44032: 0xA56B, - 51830 - 44032: 0xA56C, - 51831 - 44032: 0xA56D, - 51832 - 44032: 0xA56E, - 51833 - 44032: 0xA56F, - 51834 - 44032: 0xA570, - 51835 - 44032: 0xA571, - 51836 - 44032: 0xA572, - 51837 - 44032: 0xC2C6, - 51838 - 44032: 0xA573, - 51839 - 44032: 0xA574, - 51840 - 44032: 0xA575, - 51841 - 44032: 0xA576, - 51842 - 44032: 0xA577, - 51843 - 44032: 0xA578, - 51844 - 44032: 0xC2C7, - 51845 - 44032: 0xA579, - 51846 - 44032: 0xA57A, - 51847 - 44032: 0xA581, - 51848 - 44032: 0xA582, - 51849 - 44032: 0xA583, - 51850 - 44032: 0xA584, - 51851 - 44032: 0xA585, - 51852 - 44032: 0xA586, - 51853 - 44032: 0xA587, - 51854 - 44032: 0xA588, - 51855 - 44032: 0xA589, - 51856 - 44032: 0xA58A, - 51857 - 44032: 0xA58B, - 51858 - 44032: 0xA58C, - 51859 - 44032: 0xA58D, - 51860 - 44032: 0xA58E, - 51861 - 44032: 0xA58F, - 51862 - 44032: 0xA590, - 51863 - 44032: 0xA591, - 51864 - 44032: 0xC2C8, - 51865 - 44032: 0xA592, - 51866 - 44032: 0xA593, - 51867 - 44032: 0xA594, - 51868 - 44032: 0xA595, - 51869 - 44032: 0xA596, - 51870 - 44032: 0xA597, - 51871 - 44032: 0xA598, - 51872 - 44032: 0xA599, - 51873 - 44032: 0xA59A, - 51874 - 44032: 0xA59B, - 51875 - 44032: 0xA59C, - 51876 - 44032: 0xA59D, - 51877 - 44032: 0xA59E, - 51878 - 44032: 0xA59F, - 51879 - 44032: 0xA5A0, - 51880 - 44032: 0xA641, - 51881 - 44032: 0xA642, - 51882 - 44032: 0xA643, - 51883 - 44032: 0xA644, - 51884 - 44032: 0xA645, - 51885 - 44032: 0xA646, - 51886 - 44032: 0xA647, - 51887 - 44032: 0xA648, - 51888 - 44032: 0xA649, - 51889 - 44032: 0xA64A, - 51890 - 44032: 0xA64B, - 51891 - 44032: 0xA64C, - 51892 - 44032: 0xA64D, - 51893 - 44032: 0xA64E, - 51894 - 44032: 0xA64F, - 51895 - 44032: 0xA650, - 51896 - 44032: 0xA651, - 51897 - 44032: 0xA652, - 51898 - 44032: 0xA653, - 51899 - 44032: 0xA654, - 51900 - 44032: 0xC2C9, - 51901 - 44032: 0xC2CA, - 51902 - 44032: 0xA655, - 51903 - 44032: 0xA656, - 51904 - 44032: 0xC2CB, - 51905 - 44032: 0xA657, - 51906 - 44032: 0xA658, - 51907 - 44032: 0xA659, - 51908 - 44032: 0xC2CC, - 51909 - 44032: 0xA65A, - 51910 - 44032: 0xA661, - 51911 - 44032: 0xA662, - 51912 - 44032: 0xA663, - 51913 - 44032: 0xA664, - 51914 - 44032: 0xA665, - 51915 - 44032: 0xA666, - 51916 - 44032: 0xC2CD, - 51917 - 44032: 0xC2CE, - 51918 - 44032: 0xA667, - 51919 - 44032: 0xC2CF, - 51920 - 44032: 0xA668, - 51921 - 44032: 0xC2D0, - 51922 - 44032: 0xA669, - 51923 - 44032: 0xC2D1, - 51924 - 44032: 0xA66A, - 51925 - 44032: 0xA66B, - 51926 - 44032: 0xA66C, - 51927 - 44032: 0xA66D, - 51928 - 44032: 0xC2D2, - 51929 - 44032: 0xC2D3, - 51930 - 44032: 0xA66E, - 51931 - 44032: 0xA66F, - 51932 - 44032: 0xA670, - 51933 - 44032: 0xA671, - 51934 - 44032: 0xA672, - 51935 - 44032: 0xA673, - 51936 - 44032: 0xC2D4, - 51937 - 44032: 0xA674, - 51938 - 44032: 0xA675, - 51939 - 44032: 0xA676, - 51940 - 44032: 0xA677, - 51941 - 44032: 0xA678, - 51942 - 44032: 0xA679, - 51943 - 44032: 0xA67A, - 51944 - 44032: 0xA681, - 51945 - 44032: 0xA682, - 51946 - 44032: 0xA683, - 51947 - 44032: 0xA684, - 51948 - 44032: 0xC2D5, - 51949 - 44032: 0xA685, - 51950 - 44032: 0xA686, - 51951 - 44032: 0xA687, - 51952 - 44032: 0xA688, - 51953 - 44032: 0xA689, - 51954 - 44032: 0xA68A, - 51955 - 44032: 0xA68B, - 51956 - 44032: 0xC2D6, - 51957 - 44032: 0xA68C, - 51958 - 44032: 0xA68D, - 51959 - 44032: 0xA68E, - 51960 - 44032: 0xA68F, - 51961 - 44032: 0xA690, - 51962 - 44032: 0xA691, - 51963 - 44032: 0xA692, - 51964 - 44032: 0xA693, - 51965 - 44032: 0xA694, - 51966 - 44032: 0xA695, - 51967 - 44032: 0xA696, - 51968 - 44032: 0xA697, - 51969 - 44032: 0xA698, - 51970 - 44032: 0xA699, - 51971 - 44032: 0xA69A, - 51972 - 44032: 0xA69B, - 51973 - 44032: 0xA69C, - 51974 - 44032: 0xA69D, - 51975 - 44032: 0xA69E, - 51976 - 44032: 0xC2D7, - 51977 - 44032: 0xA69F, - 51978 - 44032: 0xA6A0, - 51979 - 44032: 0xA741, - 51980 - 44032: 0xA742, - 51981 - 44032: 0xA743, - 51982 - 44032: 0xA744, - 51983 - 44032: 0xA745, - 51984 - 44032: 0xC2D8, - 51985 - 44032: 0xA746, - 51986 - 44032: 0xA747, - 51987 - 44032: 0xA748, - 51988 - 44032: 0xC2D9, - 51989 - 44032: 0xA749, - 51990 - 44032: 0xA74A, - 51991 - 44032: 0xA74B, - 51992 - 44032: 0xC2DA, - 51993 - 44032: 0xA74C, - 51994 - 44032: 0xA74D, - 51995 - 44032: 0xA74E, - 51996 - 44032: 0xA74F, - 51997 - 44032: 0xA750, - 51998 - 44032: 0xA751, - 51999 - 44032: 0xA752, - 52000 - 44032: 0xC2DB, - 52001 - 44032: 0xC2DC, - 52002 - 44032: 0xA753, - 52003 - 44032: 0xA754, - 52004 - 44032: 0xA755, - 52005 - 44032: 0xA756, - 52006 - 44032: 0xA757, - 52007 - 44032: 0xA758, - 52008 - 44032: 0xA759, - 52009 - 44032: 0xA75A, - 52010 - 44032: 0xA761, - 52011 - 44032: 0xA762, - 52012 - 44032: 0xA763, - 52013 - 44032: 0xA764, - 52014 - 44032: 0xA765, - 52015 - 44032: 0xA766, - 52016 - 44032: 0xA767, - 52017 - 44032: 0xA768, - 52018 - 44032: 0xA769, - 52019 - 44032: 0xA76A, - 52020 - 44032: 0xA76B, - 52021 - 44032: 0xA76C, - 52022 - 44032: 0xA76D, - 52023 - 44032: 0xA76E, - 52024 - 44032: 0xA76F, - 52025 - 44032: 0xA770, - 52026 - 44032: 0xA771, - 52027 - 44032: 0xA772, - 52028 - 44032: 0xA773, - 52029 - 44032: 0xA774, - 52030 - 44032: 0xA775, - 52031 - 44032: 0xA776, - 52032 - 44032: 0xA777, - 52033 - 44032: 0xC2DD, - 52034 - 44032: 0xA778, - 52035 - 44032: 0xA779, - 52036 - 44032: 0xA77A, - 52037 - 44032: 0xA781, - 52038 - 44032: 0xA782, - 52039 - 44032: 0xA783, - 52040 - 44032: 0xC2DE, - 52041 - 44032: 0xC2DF, - 52042 - 44032: 0xA784, - 52043 - 44032: 0xA785, - 52044 - 44032: 0xC2E0, - 52045 - 44032: 0xA786, - 52046 - 44032: 0xA787, - 52047 - 44032: 0xA788, - 52048 - 44032: 0xC2E1, - 52049 - 44032: 0xA789, - 52050 - 44032: 0xA78A, - 52051 - 44032: 0xA78B, - 52052 - 44032: 0xA78C, - 52053 - 44032: 0xA78D, - 52054 - 44032: 0xA78E, - 52055 - 44032: 0xA78F, - 52056 - 44032: 0xC2E2, - 52057 - 44032: 0xC2E3, - 52058 - 44032: 0xA790, - 52059 - 44032: 0xA791, - 52060 - 44032: 0xA792, - 52061 - 44032: 0xC2E4, - 52062 - 44032: 0xA793, - 52063 - 44032: 0xA794, - 52064 - 44032: 0xA795, - 52065 - 44032: 0xA796, - 52066 - 44032: 0xA797, - 52067 - 44032: 0xA798, - 52068 - 44032: 0xC2E5, - 52069 - 44032: 0xA799, - 52070 - 44032: 0xA79A, - 52071 - 44032: 0xA79B, - 52072 - 44032: 0xA79C, - 52073 - 44032: 0xA79D, - 52074 - 44032: 0xA79E, - 52075 - 44032: 0xA79F, - 52076 - 44032: 0xA7A0, - 52077 - 44032: 0xA841, - 52078 - 44032: 0xA842, - 52079 - 44032: 0xA843, - 52080 - 44032: 0xA844, - 52081 - 44032: 0xA845, - 52082 - 44032: 0xA846, - 52083 - 44032: 0xA847, - 52084 - 44032: 0xA848, - 52085 - 44032: 0xA849, - 52086 - 44032: 0xA84A, - 52087 - 44032: 0xA84B, - 52088 - 44032: 0xC2E6, - 52089 - 44032: 0xC2E7, - 52090 - 44032: 0xA84C, - 52091 - 44032: 0xA84D, - 52092 - 44032: 0xA84E, - 52093 - 44032: 0xA84F, - 52094 - 44032: 0xA850, - 52095 - 44032: 0xA851, - 52096 - 44032: 0xA852, - 52097 - 44032: 0xA853, - 52098 - 44032: 0xA854, - 52099 - 44032: 0xA855, - 52100 - 44032: 0xA856, - 52101 - 44032: 0xA857, - 52102 - 44032: 0xA858, - 52103 - 44032: 0xA859, - 52104 - 44032: 0xA85A, - 52105 - 44032: 0xA861, - 52106 - 44032: 0xA862, - 52107 - 44032: 0xA863, - 52108 - 44032: 0xA864, - 52109 - 44032: 0xA865, - 52110 - 44032: 0xA866, - 52111 - 44032: 0xA867, - 52112 - 44032: 0xA868, - 52113 - 44032: 0xA869, - 52114 - 44032: 0xA86A, - 52115 - 44032: 0xA86B, - 52116 - 44032: 0xA86C, - 52117 - 44032: 0xA86D, - 52118 - 44032: 0xA86E, - 52119 - 44032: 0xA86F, - 52120 - 44032: 0xA870, - 52121 - 44032: 0xA871, - 52122 - 44032: 0xA872, - 52123 - 44032: 0xA873, - 52124 - 44032: 0xC2E8, - 52125 - 44032: 0xA874, - 52126 - 44032: 0xA875, - 52127 - 44032: 0xA876, - 52128 - 44032: 0xA877, - 52129 - 44032: 0xA878, - 52130 - 44032: 0xA879, - 52131 - 44032: 0xA87A, - 52132 - 44032: 0xA881, - 52133 - 44032: 0xA882, - 52134 - 44032: 0xA883, - 52135 - 44032: 0xA884, - 52136 - 44032: 0xA885, - 52137 - 44032: 0xA886, - 52138 - 44032: 0xA887, - 52139 - 44032: 0xA888, - 52140 - 44032: 0xA889, - 52141 - 44032: 0xA88A, - 52142 - 44032: 0xA88B, - 52143 - 44032: 0xA88C, - 52144 - 44032: 0xA88D, - 52145 - 44032: 0xA88E, - 52146 - 44032: 0xA88F, - 52147 - 44032: 0xA890, - 52148 - 44032: 0xA891, - 52149 - 44032: 0xA892, - 52150 - 44032: 0xA893, - 52151 - 44032: 0xA894, - 52152 - 44032: 0xC2E9, - 52153 - 44032: 0xA895, - 52154 - 44032: 0xA896, - 52155 - 44032: 0xA897, - 52156 - 44032: 0xA898, - 52157 - 44032: 0xA899, - 52158 - 44032: 0xA89A, - 52159 - 44032: 0xA89B, - 52160 - 44032: 0xA89C, - 52161 - 44032: 0xA89D, - 52162 - 44032: 0xA89E, - 52163 - 44032: 0xA89F, - 52164 - 44032: 0xA8A0, - 52165 - 44032: 0xA941, - 52166 - 44032: 0xA942, - 52167 - 44032: 0xA943, - 52168 - 44032: 0xA944, - 52169 - 44032: 0xA945, - 52170 - 44032: 0xA946, - 52171 - 44032: 0xA947, - 52172 - 44032: 0xA948, - 52173 - 44032: 0xA949, - 52174 - 44032: 0xA94A, - 52175 - 44032: 0xA94B, - 52176 - 44032: 0xA94C, - 52177 - 44032: 0xA94D, - 52178 - 44032: 0xA94E, - 52179 - 44032: 0xA94F, - 52180 - 44032: 0xC2EA, - 52181 - 44032: 0xA950, - 52182 - 44032: 0xA951, - 52183 - 44032: 0xA952, - 52184 - 44032: 0xA953, - 52185 - 44032: 0xA954, - 52186 - 44032: 0xA955, - 52187 - 44032: 0xA956, - 52188 - 44032: 0xA957, - 52189 - 44032: 0xA958, - 52190 - 44032: 0xA959, - 52191 - 44032: 0xA95A, - 52192 - 44032: 0xA961, - 52193 - 44032: 0xA962, - 52194 - 44032: 0xA963, - 52195 - 44032: 0xA964, - 52196 - 44032: 0xC2EB, - 52197 - 44032: 0xA965, - 52198 - 44032: 0xA966, - 52199 - 44032: 0xC2EC, - 52200 - 44032: 0xA967, - 52201 - 44032: 0xC2ED, - 52202 - 44032: 0xA968, - 52203 - 44032: 0xA969, - 52204 - 44032: 0xA96A, - 52205 - 44032: 0xA96B, - 52206 - 44032: 0xA96C, - 52207 - 44032: 0xA96D, - 52208 - 44032: 0xA96E, - 52209 - 44032: 0xA96F, - 52210 - 44032: 0xA970, - 52211 - 44032: 0xA971, - 52212 - 44032: 0xA972, - 52213 - 44032: 0xA973, - 52214 - 44032: 0xA974, - 52215 - 44032: 0xA975, - 52216 - 44032: 0xA976, - 52217 - 44032: 0xA977, - 52218 - 44032: 0xA978, - 52219 - 44032: 0xA979, - 52220 - 44032: 0xA97A, - 52221 - 44032: 0xA981, - 52222 - 44032: 0xA982, - 52223 - 44032: 0xA983, - 52224 - 44032: 0xA984, - 52225 - 44032: 0xA985, - 52226 - 44032: 0xA986, - 52227 - 44032: 0xA987, - 52228 - 44032: 0xA988, - 52229 - 44032: 0xA989, - 52230 - 44032: 0xA98A, - 52231 - 44032: 0xA98B, - 52232 - 44032: 0xA98C, - 52233 - 44032: 0xA98D, - 52234 - 44032: 0xA98E, - 52235 - 44032: 0xA98F, - 52236 - 44032: 0xC2EE, - 52237 - 44032: 0xC2EF, - 52238 - 44032: 0xA990, - 52239 - 44032: 0xA991, - 52240 - 44032: 0xC2F0, - 52241 - 44032: 0xA992, - 52242 - 44032: 0xA993, - 52243 - 44032: 0xA994, - 52244 - 44032: 0xC2F1, - 52245 - 44032: 0xA995, - 52246 - 44032: 0xA996, - 52247 - 44032: 0xA997, - 52248 - 44032: 0xA998, - 52249 - 44032: 0xA999, - 52250 - 44032: 0xA99A, - 52251 - 44032: 0xA99B, - 52252 - 44032: 0xC2F2, - 52253 - 44032: 0xC2F3, - 52254 - 44032: 0xA99C, - 52255 - 44032: 0xA99D, - 52256 - 44032: 0xA99E, - 52257 - 44032: 0xC2F4, - 52258 - 44032: 0xC2F5, - 52259 - 44032: 0xA99F, - 52260 - 44032: 0xA9A0, - 52261 - 44032: 0xAA41, - 52262 - 44032: 0xAA42, - 52263 - 44032: 0xC2F6, - 52264 - 44032: 0xC2F7, - 52265 - 44032: 0xC2F8, - 52266 - 44032: 0xAA43, - 52267 - 44032: 0xAA44, - 52268 - 44032: 0xC2F9, - 52269 - 44032: 0xAA45, - 52270 - 44032: 0xC2FA, - 52271 - 44032: 0xAA46, - 52272 - 44032: 0xC2FB, - 52273 - 44032: 0xAA47, - 52274 - 44032: 0xAA48, - 52275 - 44032: 0xAA49, - 52276 - 44032: 0xAA4A, - 52277 - 44032: 0xAA4B, - 52278 - 44032: 0xAA4C, - 52279 - 44032: 0xAA4D, - 52280 - 44032: 0xC2FC, - 52281 - 44032: 0xC2FD, - 52282 - 44032: 0xAA4E, - 52283 - 44032: 0xC2FE, - 52284 - 44032: 0xC3A1, - 52285 - 44032: 0xC3A2, - 52286 - 44032: 0xC3A3, - 52287 - 44032: 0xAA4F, - 52288 - 44032: 0xAA50, - 52289 - 44032: 0xAA51, - 52290 - 44032: 0xAA52, - 52291 - 44032: 0xAA53, - 52292 - 44032: 0xC3A4, - 52293 - 44032: 0xC3A5, - 52294 - 44032: 0xAA54, - 52295 - 44032: 0xAA55, - 52296 - 44032: 0xC3A6, - 52297 - 44032: 0xAA56, - 52298 - 44032: 0xAA57, - 52299 - 44032: 0xAA58, - 52300 - 44032: 0xC3A7, - 52301 - 44032: 0xAA59, - 52302 - 44032: 0xAA5A, - 52303 - 44032: 0xAA61, - 52304 - 44032: 0xAA62, - 52305 - 44032: 0xAA63, - 52306 - 44032: 0xAA64, - 52307 - 44032: 0xAA65, - 52308 - 44032: 0xC3A8, - 52309 - 44032: 0xC3A9, - 52310 - 44032: 0xAA66, - 52311 - 44032: 0xC3AA, - 52312 - 44032: 0xC3AB, - 52313 - 44032: 0xC3AC, - 52314 - 44032: 0xAA67, - 52315 - 44032: 0xAA68, - 52316 - 44032: 0xAA69, - 52317 - 44032: 0xAA6A, - 52318 - 44032: 0xAA6B, - 52319 - 44032: 0xAA6C, - 52320 - 44032: 0xC3AD, - 52321 - 44032: 0xAA6D, - 52322 - 44032: 0xAA6E, - 52323 - 44032: 0xAA6F, - 52324 - 44032: 0xC3AE, - 52325 - 44032: 0xAA70, - 52326 - 44032: 0xC3AF, - 52327 - 44032: 0xAA71, - 52328 - 44032: 0xC3B0, - 52329 - 44032: 0xAA72, - 52330 - 44032: 0xAA73, - 52331 - 44032: 0xAA74, - 52332 - 44032: 0xAA75, - 52333 - 44032: 0xAA76, - 52334 - 44032: 0xAA77, - 52335 - 44032: 0xAA78, - 52336 - 44032: 0xC3B1, - 52337 - 44032: 0xAA79, - 52338 - 44032: 0xAA7A, - 52339 - 44032: 0xAA81, - 52340 - 44032: 0xAA82, - 52341 - 44032: 0xC3B2, - 52342 - 44032: 0xAA83, - 52343 - 44032: 0xAA84, - 52344 - 44032: 0xAA85, - 52345 - 44032: 0xAA86, - 52346 - 44032: 0xAA87, - 52347 - 44032: 0xAA88, - 52348 - 44032: 0xAA89, - 52349 - 44032: 0xAA8A, - 52350 - 44032: 0xAA8B, - 52351 - 44032: 0xAA8C, - 52352 - 44032: 0xAA8D, - 52353 - 44032: 0xAA8E, - 52354 - 44032: 0xAA8F, - 52355 - 44032: 0xAA90, - 52356 - 44032: 0xAA91, - 52357 - 44032: 0xAA92, - 52358 - 44032: 0xAA93, - 52359 - 44032: 0xAA94, - 52360 - 44032: 0xAA95, - 52361 - 44032: 0xAA96, - 52362 - 44032: 0xAA97, - 52363 - 44032: 0xAA98, - 52364 - 44032: 0xAA99, - 52365 - 44032: 0xAA9A, - 52366 - 44032: 0xAA9B, - 52367 - 44032: 0xAA9C, - 52368 - 44032: 0xAA9D, - 52369 - 44032: 0xAA9E, - 52370 - 44032: 0xAA9F, - 52371 - 44032: 0xAAA0, - 52372 - 44032: 0xAB41, - 52373 - 44032: 0xAB42, - 52374 - 44032: 0xAB43, - 52375 - 44032: 0xAB44, - 52376 - 44032: 0xC3B3, - 52377 - 44032: 0xC3B4, - 52378 - 44032: 0xAB45, - 52379 - 44032: 0xAB46, - 52380 - 44032: 0xC3B5, - 52381 - 44032: 0xAB47, - 52382 - 44032: 0xAB48, - 52383 - 44032: 0xAB49, - 52384 - 44032: 0xC3B6, - 52385 - 44032: 0xAB4A, - 52386 - 44032: 0xAB4B, - 52387 - 44032: 0xAB4C, - 52388 - 44032: 0xAB4D, - 52389 - 44032: 0xAB4E, - 52390 - 44032: 0xAB4F, - 52391 - 44032: 0xAB50, - 52392 - 44032: 0xC3B7, - 52393 - 44032: 0xC3B8, - 52394 - 44032: 0xAB51, - 52395 - 44032: 0xC3B9, - 52396 - 44032: 0xC3BA, - 52397 - 44032: 0xC3BB, - 52398 - 44032: 0xAB52, - 52399 - 44032: 0xAB53, - 52400 - 44032: 0xAB54, - 52401 - 44032: 0xAB55, - 52402 - 44032: 0xAB56, - 52403 - 44032: 0xAB57, - 52404 - 44032: 0xC3BC, - 52405 - 44032: 0xC3BD, - 52406 - 44032: 0xAB58, - 52407 - 44032: 0xAB59, - 52408 - 44032: 0xC3BE, - 52409 - 44032: 0xAB5A, - 52410 - 44032: 0xAB61, - 52411 - 44032: 0xAB62, - 52412 - 44032: 0xC3BF, - 52413 - 44032: 0xAB63, - 52414 - 44032: 0xAB64, - 52415 - 44032: 0xAB65, - 52416 - 44032: 0xAB66, - 52417 - 44032: 0xAB67, - 52418 - 44032: 0xAB68, - 52419 - 44032: 0xAB69, - 52420 - 44032: 0xC3C0, - 52421 - 44032: 0xC3C1, - 52422 - 44032: 0xAB6A, - 52423 - 44032: 0xC3C2, - 52424 - 44032: 0xAB6B, - 52425 - 44032: 0xC3C3, - 52426 - 44032: 0xAB6C, - 52427 - 44032: 0xAB6D, - 52428 - 44032: 0xAB6E, - 52429 - 44032: 0xAB6F, - 52430 - 44032: 0xAB70, - 52431 - 44032: 0xAB71, - 52432 - 44032: 0xC3C4, - 52433 - 44032: 0xAB72, - 52434 - 44032: 0xAB73, - 52435 - 44032: 0xAB74, - 52436 - 44032: 0xC3C5, - 52437 - 44032: 0xAB75, - 52438 - 44032: 0xAB76, - 52439 - 44032: 0xAB77, - 52440 - 44032: 0xAB78, - 52441 - 44032: 0xAB79, - 52442 - 44032: 0xAB7A, - 52443 - 44032: 0xAB81, - 52444 - 44032: 0xAB82, - 52445 - 44032: 0xAB83, - 52446 - 44032: 0xAB84, - 52447 - 44032: 0xAB85, - 52448 - 44032: 0xAB86, - 52449 - 44032: 0xAB87, - 52450 - 44032: 0xAB88, - 52451 - 44032: 0xAB89, - 52452 - 44032: 0xC3C6, - 52453 - 44032: 0xAB8A, - 52454 - 44032: 0xAB8B, - 52455 - 44032: 0xAB8C, - 52456 - 44032: 0xAB8D, - 52457 - 44032: 0xAB8E, - 52458 - 44032: 0xAB8F, - 52459 - 44032: 0xAB90, - 52460 - 44032: 0xC3C7, - 52461 - 44032: 0xAB91, - 52462 - 44032: 0xAB92, - 52463 - 44032: 0xAB93, - 52464 - 44032: 0xC3C8, - 52465 - 44032: 0xAB94, - 52466 - 44032: 0xAB95, - 52467 - 44032: 0xAB96, - 52468 - 44032: 0xAB97, - 52469 - 44032: 0xAB98, - 52470 - 44032: 0xAB99, - 52471 - 44032: 0xAB9A, - 52472 - 44032: 0xAB9B, - 52473 - 44032: 0xAB9C, - 52474 - 44032: 0xAB9D, - 52475 - 44032: 0xAB9E, - 52476 - 44032: 0xAB9F, - 52477 - 44032: 0xABA0, - 52478 - 44032: 0xAC41, - 52479 - 44032: 0xAC42, - 52480 - 44032: 0xAC43, - 52481 - 44032: 0xC3C9, - 52482 - 44032: 0xAC44, - 52483 - 44032: 0xAC45, - 52484 - 44032: 0xAC46, - 52485 - 44032: 0xAC47, - 52486 - 44032: 0xAC48, - 52487 - 44032: 0xAC49, - 52488 - 44032: 0xC3CA, - 52489 - 44032: 0xC3CB, - 52490 - 44032: 0xAC4A, - 52491 - 44032: 0xAC4B, - 52492 - 44032: 0xC3CC, - 52493 - 44032: 0xAC4C, - 52494 - 44032: 0xAC4D, - 52495 - 44032: 0xAC4E, - 52496 - 44032: 0xC3CD, - 52497 - 44032: 0xAC4F, - 52498 - 44032: 0xAC50, - 52499 - 44032: 0xAC51, - 52500 - 44032: 0xAC52, - 52501 - 44032: 0xAC53, - 52502 - 44032: 0xAC54, - 52503 - 44032: 0xAC55, - 52504 - 44032: 0xC3CE, - 52505 - 44032: 0xC3CF, - 52506 - 44032: 0xAC56, - 52507 - 44032: 0xC3D0, - 52508 - 44032: 0xAC57, - 52509 - 44032: 0xC3D1, - 52510 - 44032: 0xAC58, - 52511 - 44032: 0xAC59, - 52512 - 44032: 0xAC5A, - 52513 - 44032: 0xAC61, - 52514 - 44032: 0xAC62, - 52515 - 44032: 0xAC63, - 52516 - 44032: 0xC3D2, - 52517 - 44032: 0xAC64, - 52518 - 44032: 0xAC65, - 52519 - 44032: 0xAC66, - 52520 - 44032: 0xC3D3, - 52521 - 44032: 0xAC67, - 52522 - 44032: 0xAC68, - 52523 - 44032: 0xAC69, - 52524 - 44032: 0xC3D4, - 52525 - 44032: 0xAC6A, - 52526 - 44032: 0xAC6B, - 52527 - 44032: 0xAC6C, - 52528 - 44032: 0xAC6D, - 52529 - 44032: 0xAC6E, - 52530 - 44032: 0xAC6F, - 52531 - 44032: 0xAC70, - 52532 - 44032: 0xAC71, - 52533 - 44032: 0xAC72, - 52534 - 44032: 0xAC73, - 52535 - 44032: 0xAC74, - 52536 - 44032: 0xAC75, - 52537 - 44032: 0xC3D5, - 52538 - 44032: 0xAC76, - 52539 - 44032: 0xAC77, - 52540 - 44032: 0xAC78, - 52541 - 44032: 0xAC79, - 52542 - 44032: 0xAC7A, - 52543 - 44032: 0xAC81, - 52544 - 44032: 0xAC82, - 52545 - 44032: 0xAC83, - 52546 - 44032: 0xAC84, - 52547 - 44032: 0xAC85, - 52548 - 44032: 0xAC86, - 52549 - 44032: 0xAC87, - 52550 - 44032: 0xAC88, - 52551 - 44032: 0xAC89, - 52552 - 44032: 0xAC8A, - 52553 - 44032: 0xAC8B, - 52554 - 44032: 0xAC8C, - 52555 - 44032: 0xAC8D, - 52556 - 44032: 0xAC8E, - 52557 - 44032: 0xAC8F, - 52558 - 44032: 0xAC90, - 52559 - 44032: 0xAC91, - 52560 - 44032: 0xAC92, - 52561 - 44032: 0xAC93, - 52562 - 44032: 0xAC94, - 52563 - 44032: 0xAC95, - 52564 - 44032: 0xAC96, - 52565 - 44032: 0xAC97, - 52566 - 44032: 0xAC98, - 52567 - 44032: 0xAC99, - 52568 - 44032: 0xAC9A, - 52569 - 44032: 0xAC9B, - 52570 - 44032: 0xAC9C, - 52571 - 44032: 0xAC9D, - 52572 - 44032: 0xC3D6, - 52573 - 44032: 0xAC9E, - 52574 - 44032: 0xAC9F, - 52575 - 44032: 0xACA0, - 52576 - 44032: 0xC3D7, - 52577 - 44032: 0xAD41, - 52578 - 44032: 0xAD42, - 52579 - 44032: 0xAD43, - 52580 - 44032: 0xC3D8, - 52581 - 44032: 0xAD44, - 52582 - 44032: 0xAD45, - 52583 - 44032: 0xAD46, - 52584 - 44032: 0xAD47, - 52585 - 44032: 0xAD48, - 52586 - 44032: 0xAD49, - 52587 - 44032: 0xAD4A, - 52588 - 44032: 0xC3D9, - 52589 - 44032: 0xC3DA, - 52590 - 44032: 0xAD4B, - 52591 - 44032: 0xC3DB, - 52592 - 44032: 0xAD4C, - 52593 - 44032: 0xC3DC, - 52594 - 44032: 0xAD4D, - 52595 - 44032: 0xAD4E, - 52596 - 44032: 0xAD4F, - 52597 - 44032: 0xAD50, - 52598 - 44032: 0xAD51, - 52599 - 44032: 0xAD52, - 52600 - 44032: 0xC3DD, - 52601 - 44032: 0xAD53, - 52602 - 44032: 0xAD54, - 52603 - 44032: 0xAD55, - 52604 - 44032: 0xAD56, - 52605 - 44032: 0xAD57, - 52606 - 44032: 0xAD58, - 52607 - 44032: 0xAD59, - 52608 - 44032: 0xAD5A, - 52609 - 44032: 0xAD61, - 52610 - 44032: 0xAD62, - 52611 - 44032: 0xAD63, - 52612 - 44032: 0xAD64, - 52613 - 44032: 0xAD65, - 52614 - 44032: 0xAD66, - 52615 - 44032: 0xAD67, - 52616 - 44032: 0xC3DE, - 52617 - 44032: 0xAD68, - 52618 - 44032: 0xAD69, - 52619 - 44032: 0xAD6A, - 52620 - 44032: 0xAD6B, - 52621 - 44032: 0xAD6C, - 52622 - 44032: 0xAD6D, - 52623 - 44032: 0xAD6E, - 52624 - 44032: 0xAD6F, - 52625 - 44032: 0xAD70, - 52626 - 44032: 0xAD71, - 52627 - 44032: 0xAD72, - 52628 - 44032: 0xC3DF, - 52629 - 44032: 0xC3E0, - 52630 - 44032: 0xAD73, - 52631 - 44032: 0xAD74, - 52632 - 44032: 0xC3E1, - 52633 - 44032: 0xAD75, - 52634 - 44032: 0xAD76, - 52635 - 44032: 0xAD77, - 52636 - 44032: 0xC3E2, - 52637 - 44032: 0xAD78, - 52638 - 44032: 0xAD79, - 52639 - 44032: 0xAD7A, - 52640 - 44032: 0xAD81, - 52641 - 44032: 0xAD82, - 52642 - 44032: 0xAD83, - 52643 - 44032: 0xAD84, - 52644 - 44032: 0xC3E3, - 52645 - 44032: 0xC3E4, - 52646 - 44032: 0xAD85, - 52647 - 44032: 0xC3E5, - 52648 - 44032: 0xAD86, - 52649 - 44032: 0xC3E6, - 52650 - 44032: 0xAD87, - 52651 - 44032: 0xAD88, - 52652 - 44032: 0xAD89, - 52653 - 44032: 0xAD8A, - 52654 - 44032: 0xAD8B, - 52655 - 44032: 0xAD8C, - 52656 - 44032: 0xC3E7, - 52657 - 44032: 0xAD8D, - 52658 - 44032: 0xAD8E, - 52659 - 44032: 0xAD8F, - 52660 - 44032: 0xAD90, - 52661 - 44032: 0xAD91, - 52662 - 44032: 0xAD92, - 52663 - 44032: 0xAD93, - 52664 - 44032: 0xAD94, - 52665 - 44032: 0xAD95, - 52666 - 44032: 0xAD96, - 52667 - 44032: 0xAD97, - 52668 - 44032: 0xAD98, - 52669 - 44032: 0xAD99, - 52670 - 44032: 0xAD9A, - 52671 - 44032: 0xAD9B, - 52672 - 44032: 0xAD9C, - 52673 - 44032: 0xAD9D, - 52674 - 44032: 0xAD9E, - 52675 - 44032: 0xAD9F, - 52676 - 44032: 0xC3E8, - 52677 - 44032: 0xADA0, - 52678 - 44032: 0xAE41, - 52679 - 44032: 0xAE42, - 52680 - 44032: 0xAE43, - 52681 - 44032: 0xAE44, - 52682 - 44032: 0xAE45, - 52683 - 44032: 0xAE46, - 52684 - 44032: 0xC3E9, - 52685 - 44032: 0xAE47, - 52686 - 44032: 0xAE48, - 52687 - 44032: 0xAE49, - 52688 - 44032: 0xC3EA, - 52689 - 44032: 0xAE4A, - 52690 - 44032: 0xAE4B, - 52691 - 44032: 0xAE4C, - 52692 - 44032: 0xAE4D, - 52693 - 44032: 0xAE4E, - 52694 - 44032: 0xAE4F, - 52695 - 44032: 0xAE50, - 52696 - 44032: 0xAE51, - 52697 - 44032: 0xAE52, - 52698 - 44032: 0xAE53, - 52699 - 44032: 0xAE54, - 52700 - 44032: 0xAE55, - 52701 - 44032: 0xAE56, - 52702 - 44032: 0xAE57, - 52703 - 44032: 0xAE58, - 52704 - 44032: 0xAE59, - 52705 - 44032: 0xAE5A, - 52706 - 44032: 0xAE61, - 52707 - 44032: 0xAE62, - 52708 - 44032: 0xAE63, - 52709 - 44032: 0xAE64, - 52710 - 44032: 0xAE65, - 52711 - 44032: 0xAE66, - 52712 - 44032: 0xC3EB, - 52713 - 44032: 0xAE67, - 52714 - 44032: 0xAE68, - 52715 - 44032: 0xAE69, - 52716 - 44032: 0xC3EC, - 52717 - 44032: 0xAE6A, - 52718 - 44032: 0xAE6B, - 52719 - 44032: 0xAE6C, - 52720 - 44032: 0xC3ED, - 52721 - 44032: 0xAE6D, - 52722 - 44032: 0xAE6E, - 52723 - 44032: 0xAE6F, - 52724 - 44032: 0xAE70, - 52725 - 44032: 0xAE71, - 52726 - 44032: 0xAE72, - 52727 - 44032: 0xAE73, - 52728 - 44032: 0xC3EE, - 52729 - 44032: 0xC3EF, - 52730 - 44032: 0xAE74, - 52731 - 44032: 0xC3F0, - 52732 - 44032: 0xAE75, - 52733 - 44032: 0xC3F1, - 52734 - 44032: 0xAE76, - 52735 - 44032: 0xAE77, - 52736 - 44032: 0xAE78, - 52737 - 44032: 0xAE79, - 52738 - 44032: 0xAE7A, - 52739 - 44032: 0xAE81, - 52740 - 44032: 0xC3F2, - 52741 - 44032: 0xAE82, - 52742 - 44032: 0xAE83, - 52743 - 44032: 0xAE84, - 52744 - 44032: 0xC3F3, - 52745 - 44032: 0xAE85, - 52746 - 44032: 0xAE86, - 52747 - 44032: 0xAE87, - 52748 - 44032: 0xC3F4, - 52749 - 44032: 0xAE88, - 52750 - 44032: 0xAE89, - 52751 - 44032: 0xAE8A, - 52752 - 44032: 0xAE8B, - 52753 - 44032: 0xAE8C, - 52754 - 44032: 0xAE8D, - 52755 - 44032: 0xAE8E, - 52756 - 44032: 0xC3F5, - 52757 - 44032: 0xAE8F, - 52758 - 44032: 0xAE90, - 52759 - 44032: 0xAE91, - 52760 - 44032: 0xAE92, - 52761 - 44032: 0xC3F6, - 52762 - 44032: 0xAE93, - 52763 - 44032: 0xAE94, - 52764 - 44032: 0xAE95, - 52765 - 44032: 0xAE96, - 52766 - 44032: 0xAE97, - 52767 - 44032: 0xAE98, - 52768 - 44032: 0xC3F7, - 52769 - 44032: 0xC3F8, - 52770 - 44032: 0xAE99, - 52771 - 44032: 0xAE9A, - 52772 - 44032: 0xC3F9, - 52773 - 44032: 0xAE9B, - 52774 - 44032: 0xAE9C, - 52775 - 44032: 0xAE9D, - 52776 - 44032: 0xC3FA, - 52777 - 44032: 0xAE9E, - 52778 - 44032: 0xAE9F, - 52779 - 44032: 0xAEA0, - 52780 - 44032: 0xAF41, - 52781 - 44032: 0xAF42, - 52782 - 44032: 0xAF43, - 52783 - 44032: 0xAF44, - 52784 - 44032: 0xC3FB, - 52785 - 44032: 0xC3FC, - 52786 - 44032: 0xAF45, - 52787 - 44032: 0xC3FD, - 52788 - 44032: 0xAF46, - 52789 - 44032: 0xC3FE, - 52790 - 44032: 0xAF47, - 52791 - 44032: 0xAF48, - 52792 - 44032: 0xAF49, - 52793 - 44032: 0xAF4A, - 52794 - 44032: 0xAF4B, - 52795 - 44032: 0xAF4C, - 52796 - 44032: 0xAF4D, - 52797 - 44032: 0xAF4E, - 52798 - 44032: 0xAF4F, - 52799 - 44032: 0xAF50, - 52800 - 44032: 0xAF51, - 52801 - 44032: 0xAF52, - 52802 - 44032: 0xAF53, - 52803 - 44032: 0xAF54, - 52804 - 44032: 0xAF55, - 52805 - 44032: 0xAF56, - 52806 - 44032: 0xAF57, - 52807 - 44032: 0xAF58, - 52808 - 44032: 0xAF59, - 52809 - 44032: 0xAF5A, - 52810 - 44032: 0xAF61, - 52811 - 44032: 0xAF62, - 52812 - 44032: 0xAF63, - 52813 - 44032: 0xAF64, - 52814 - 44032: 0xAF65, - 52815 - 44032: 0xAF66, - 52816 - 44032: 0xAF67, - 52817 - 44032: 0xAF68, - 52818 - 44032: 0xAF69, - 52819 - 44032: 0xAF6A, - 52820 - 44032: 0xAF6B, - 52821 - 44032: 0xAF6C, - 52822 - 44032: 0xAF6D, - 52823 - 44032: 0xAF6E, - 52824 - 44032: 0xC4A1, - 52825 - 44032: 0xC4A2, - 52826 - 44032: 0xAF6F, - 52827 - 44032: 0xAF70, - 52828 - 44032: 0xC4A3, - 52829 - 44032: 0xAF71, - 52830 - 44032: 0xAF72, - 52831 - 44032: 0xC4A4, - 52832 - 44032: 0xC4A5, - 52833 - 44032: 0xC4A6, - 52834 - 44032: 0xAF73, - 52835 - 44032: 0xAF74, - 52836 - 44032: 0xAF75, - 52837 - 44032: 0xAF76, - 52838 - 44032: 0xAF77, - 52839 - 44032: 0xAF78, - 52840 - 44032: 0xC4A7, - 52841 - 44032: 0xC4A8, - 52842 - 44032: 0xAF79, - 52843 - 44032: 0xC4A9, - 52844 - 44032: 0xAF7A, - 52845 - 44032: 0xC4AA, - 52846 - 44032: 0xAF81, - 52847 - 44032: 0xAF82, - 52848 - 44032: 0xAF83, - 52849 - 44032: 0xAF84, - 52850 - 44032: 0xAF85, - 52851 - 44032: 0xAF86, - 52852 - 44032: 0xC4AB, - 52853 - 44032: 0xC4AC, - 52854 - 44032: 0xAF87, - 52855 - 44032: 0xAF88, - 52856 - 44032: 0xC4AD, - 52857 - 44032: 0xAF89, - 52858 - 44032: 0xAF8A, - 52859 - 44032: 0xAF8B, - 52860 - 44032: 0xC4AE, - 52861 - 44032: 0xAF8C, - 52862 - 44032: 0xAF8D, - 52863 - 44032: 0xAF8E, - 52864 - 44032: 0xAF8F, - 52865 - 44032: 0xAF90, - 52866 - 44032: 0xAF91, - 52867 - 44032: 0xAF92, - 52868 - 44032: 0xC4AF, - 52869 - 44032: 0xC4B0, - 52870 - 44032: 0xAF93, - 52871 - 44032: 0xC4B1, - 52872 - 44032: 0xAF94, - 52873 - 44032: 0xC4B2, - 52874 - 44032: 0xAF95, - 52875 - 44032: 0xAF96, - 52876 - 44032: 0xAF97, - 52877 - 44032: 0xAF98, - 52878 - 44032: 0xAF99, - 52879 - 44032: 0xAF9A, - 52880 - 44032: 0xC4B3, - 52881 - 44032: 0xC4B4, - 52882 - 44032: 0xAF9B, - 52883 - 44032: 0xAF9C, - 52884 - 44032: 0xC4B5, - 52885 - 44032: 0xAF9D, - 52886 - 44032: 0xAF9E, - 52887 - 44032: 0xAF9F, - 52888 - 44032: 0xC4B6, - 52889 - 44032: 0xAFA0, - 52890 - 44032: 0xB041, - 52891 - 44032: 0xB042, - 52892 - 44032: 0xB043, - 52893 - 44032: 0xB044, - 52894 - 44032: 0xB045, - 52895 - 44032: 0xB046, - 52896 - 44032: 0xC4B7, - 52897 - 44032: 0xC4B8, - 52898 - 44032: 0xB047, - 52899 - 44032: 0xC4B9, - 52900 - 44032: 0xC4BA, - 52901 - 44032: 0xC4BB, - 52902 - 44032: 0xB048, - 52903 - 44032: 0xB049, - 52904 - 44032: 0xB04A, - 52905 - 44032: 0xB04B, - 52906 - 44032: 0xB04C, - 52907 - 44032: 0xB04D, - 52908 - 44032: 0xC4BC, - 52909 - 44032: 0xC4BD, - 52910 - 44032: 0xB04E, - 52911 - 44032: 0xB04F, - 52912 - 44032: 0xB050, - 52913 - 44032: 0xB051, - 52914 - 44032: 0xB052, - 52915 - 44032: 0xB053, - 52916 - 44032: 0xB054, - 52917 - 44032: 0xB055, - 52918 - 44032: 0xB056, - 52919 - 44032: 0xB057, - 52920 - 44032: 0xB058, - 52921 - 44032: 0xB059, - 52922 - 44032: 0xB05A, - 52923 - 44032: 0xB061, - 52924 - 44032: 0xB062, - 52925 - 44032: 0xB063, - 52926 - 44032: 0xB064, - 52927 - 44032: 0xB065, - 52928 - 44032: 0xB066, - 52929 - 44032: 0xC4BE, - 52930 - 44032: 0xB067, - 52931 - 44032: 0xB068, - 52932 - 44032: 0xB069, - 52933 - 44032: 0xB06A, - 52934 - 44032: 0xB06B, - 52935 - 44032: 0xB06C, - 52936 - 44032: 0xB06D, - 52937 - 44032: 0xB06E, - 52938 - 44032: 0xB06F, - 52939 - 44032: 0xB070, - 52940 - 44032: 0xB071, - 52941 - 44032: 0xB072, - 52942 - 44032: 0xB073, - 52943 - 44032: 0xB074, - 52944 - 44032: 0xB075, - 52945 - 44032: 0xB076, - 52946 - 44032: 0xB077, - 52947 - 44032: 0xB078, - 52948 - 44032: 0xB079, - 52949 - 44032: 0xB07A, - 52950 - 44032: 0xB081, - 52951 - 44032: 0xB082, - 52952 - 44032: 0xB083, - 52953 - 44032: 0xB084, - 52954 - 44032: 0xB085, - 52955 - 44032: 0xB086, - 52956 - 44032: 0xB087, - 52957 - 44032: 0xB088, - 52958 - 44032: 0xB089, - 52959 - 44032: 0xB08A, - 52960 - 44032: 0xB08B, - 52961 - 44032: 0xB08C, - 52962 - 44032: 0xB08D, - 52963 - 44032: 0xB08E, - 52964 - 44032: 0xC4BF, - 52965 - 44032: 0xC4C0, - 52966 - 44032: 0xB08F, - 52967 - 44032: 0xB090, - 52968 - 44032: 0xC4C1, - 52969 - 44032: 0xB091, - 52970 - 44032: 0xB092, - 52971 - 44032: 0xC4C2, - 52972 - 44032: 0xC4C3, - 52973 - 44032: 0xB093, - 52974 - 44032: 0xB094, - 52975 - 44032: 0xB095, - 52976 - 44032: 0xB096, - 52977 - 44032: 0xB097, - 52978 - 44032: 0xB098, - 52979 - 44032: 0xB099, - 52980 - 44032: 0xC4C4, - 52981 - 44032: 0xC4C5, - 52982 - 44032: 0xB09A, - 52983 - 44032: 0xC4C6, - 52984 - 44032: 0xC4C7, - 52985 - 44032: 0xC4C8, - 52986 - 44032: 0xB09B, - 52987 - 44032: 0xB09C, - 52988 - 44032: 0xB09D, - 52989 - 44032: 0xB09E, - 52990 - 44032: 0xB09F, - 52991 - 44032: 0xB0A0, - 52992 - 44032: 0xC4C9, - 52993 - 44032: 0xC4CA, - 52994 - 44032: 0xB141, - 52995 - 44032: 0xB142, - 52996 - 44032: 0xC4CB, - 52997 - 44032: 0xB143, - 52998 - 44032: 0xB144, - 52999 - 44032: 0xB145, - 53000 - 44032: 0xC4CC, - 53001 - 44032: 0xB146, - 53002 - 44032: 0xB147, - 53003 - 44032: 0xB148, - 53004 - 44032: 0xB149, - 53005 - 44032: 0xB14A, - 53006 - 44032: 0xB14B, - 53007 - 44032: 0xB14C, - 53008 - 44032: 0xC4CD, - 53009 - 44032: 0xC4CE, - 53010 - 44032: 0xB14D, - 53011 - 44032: 0xC4CF, - 53012 - 44032: 0xB14E, - 53013 - 44032: 0xC4D0, - 53014 - 44032: 0xB14F, - 53015 - 44032: 0xB150, - 53016 - 44032: 0xB151, - 53017 - 44032: 0xB152, - 53018 - 44032: 0xB153, - 53019 - 44032: 0xB154, - 53020 - 44032: 0xC4D1, - 53021 - 44032: 0xB155, - 53022 - 44032: 0xB156, - 53023 - 44032: 0xB157, - 53024 - 44032: 0xC4D2, - 53025 - 44032: 0xB158, - 53026 - 44032: 0xB159, - 53027 - 44032: 0xB15A, - 53028 - 44032: 0xC4D3, - 53029 - 44032: 0xB161, - 53030 - 44032: 0xB162, - 53031 - 44032: 0xB163, - 53032 - 44032: 0xB164, - 53033 - 44032: 0xB165, - 53034 - 44032: 0xB166, - 53035 - 44032: 0xB167, - 53036 - 44032: 0xC4D4, - 53037 - 44032: 0xC4D5, - 53038 - 44032: 0xB168, - 53039 - 44032: 0xC4D6, - 53040 - 44032: 0xC4D7, - 53041 - 44032: 0xC4D8, - 53042 - 44032: 0xB169, - 53043 - 44032: 0xB16A, - 53044 - 44032: 0xB16B, - 53045 - 44032: 0xB16C, - 53046 - 44032: 0xB16D, - 53047 - 44032: 0xB16E, - 53048 - 44032: 0xC4D9, - 53049 - 44032: 0xB16F, - 53050 - 44032: 0xB170, - 53051 - 44032: 0xB171, - 53052 - 44032: 0xB172, - 53053 - 44032: 0xB173, - 53054 - 44032: 0xB174, - 53055 - 44032: 0xB175, - 53056 - 44032: 0xB176, - 53057 - 44032: 0xB177, - 53058 - 44032: 0xB178, - 53059 - 44032: 0xB179, - 53060 - 44032: 0xB17A, - 53061 - 44032: 0xB181, - 53062 - 44032: 0xB182, - 53063 - 44032: 0xB183, - 53064 - 44032: 0xB184, - 53065 - 44032: 0xB185, - 53066 - 44032: 0xB186, - 53067 - 44032: 0xB187, - 53068 - 44032: 0xB188, - 53069 - 44032: 0xB189, - 53070 - 44032: 0xB18A, - 53071 - 44032: 0xB18B, - 53072 - 44032: 0xB18C, - 53073 - 44032: 0xB18D, - 53074 - 44032: 0xB18E, - 53075 - 44032: 0xB18F, - 53076 - 44032: 0xC4DA, - 53077 - 44032: 0xC4DB, - 53078 - 44032: 0xB190, - 53079 - 44032: 0xB191, - 53080 - 44032: 0xC4DC, - 53081 - 44032: 0xB192, - 53082 - 44032: 0xB193, - 53083 - 44032: 0xB194, - 53084 - 44032: 0xC4DD, - 53085 - 44032: 0xB195, - 53086 - 44032: 0xB196, - 53087 - 44032: 0xB197, - 53088 - 44032: 0xB198, - 53089 - 44032: 0xB199, - 53090 - 44032: 0xB19A, - 53091 - 44032: 0xB19B, - 53092 - 44032: 0xC4DE, - 53093 - 44032: 0xC4DF, - 53094 - 44032: 0xB19C, - 53095 - 44032: 0xC4E0, - 53096 - 44032: 0xB19D, - 53097 - 44032: 0xC4E1, - 53098 - 44032: 0xB19E, - 53099 - 44032: 0xB19F, - 53100 - 44032: 0xB1A0, - 53101 - 44032: 0xB241, - 53102 - 44032: 0xB242, - 53103 - 44032: 0xB243, - 53104 - 44032: 0xC4E2, - 53105 - 44032: 0xC4E3, - 53106 - 44032: 0xB244, - 53107 - 44032: 0xB245, - 53108 - 44032: 0xC4E4, - 53109 - 44032: 0xB246, - 53110 - 44032: 0xB247, - 53111 - 44032: 0xB248, - 53112 - 44032: 0xC4E5, - 53113 - 44032: 0xB249, - 53114 - 44032: 0xB24A, - 53115 - 44032: 0xB24B, - 53116 - 44032: 0xB24C, - 53117 - 44032: 0xB24D, - 53118 - 44032: 0xB24E, - 53119 - 44032: 0xB24F, - 53120 - 44032: 0xC4E6, - 53121 - 44032: 0xB250, - 53122 - 44032: 0xB251, - 53123 - 44032: 0xB252, - 53124 - 44032: 0xB253, - 53125 - 44032: 0xC4E7, - 53126 - 44032: 0xB254, - 53127 - 44032: 0xB255, - 53128 - 44032: 0xB256, - 53129 - 44032: 0xB257, - 53130 - 44032: 0xB258, - 53131 - 44032: 0xB259, - 53132 - 44032: 0xC4E8, - 53133 - 44032: 0xB25A, - 53134 - 44032: 0xB261, - 53135 - 44032: 0xB262, - 53136 - 44032: 0xB263, - 53137 - 44032: 0xB264, - 53138 - 44032: 0xB265, - 53139 - 44032: 0xB266, - 53140 - 44032: 0xB267, - 53141 - 44032: 0xB268, - 53142 - 44032: 0xB269, - 53143 - 44032: 0xB26A, - 53144 - 44032: 0xB26B, - 53145 - 44032: 0xB26C, - 53146 - 44032: 0xB26D, - 53147 - 44032: 0xB26E, - 53148 - 44032: 0xB26F, - 53149 - 44032: 0xB270, - 53150 - 44032: 0xB271, - 53151 - 44032: 0xB272, - 53152 - 44032: 0xB273, - 53153 - 44032: 0xC4E9, - 53154 - 44032: 0xB274, - 53155 - 44032: 0xB275, - 53156 - 44032: 0xB276, - 53157 - 44032: 0xB277, - 53158 - 44032: 0xB278, - 53159 - 44032: 0xB279, - 53160 - 44032: 0xC4EA, - 53161 - 44032: 0xB27A, - 53162 - 44032: 0xB281, - 53163 - 44032: 0xB282, - 53164 - 44032: 0xB283, - 53165 - 44032: 0xB284, - 53166 - 44032: 0xB285, - 53167 - 44032: 0xB286, - 53168 - 44032: 0xC4EB, - 53169 - 44032: 0xB287, - 53170 - 44032: 0xB288, - 53171 - 44032: 0xB289, - 53172 - 44032: 0xB28A, - 53173 - 44032: 0xB28B, - 53174 - 44032: 0xB28C, - 53175 - 44032: 0xB28D, - 53176 - 44032: 0xB28E, - 53177 - 44032: 0xB28F, - 53178 - 44032: 0xB290, - 53179 - 44032: 0xB291, - 53180 - 44032: 0xB292, - 53181 - 44032: 0xB293, - 53182 - 44032: 0xB294, - 53183 - 44032: 0xB295, - 53184 - 44032: 0xB296, - 53185 - 44032: 0xB297, - 53186 - 44032: 0xB298, - 53187 - 44032: 0xB299, - 53188 - 44032: 0xC4EC, - 53189 - 44032: 0xB29A, - 53190 - 44032: 0xB29B, - 53191 - 44032: 0xB29C, - 53192 - 44032: 0xB29D, - 53193 - 44032: 0xB29E, - 53194 - 44032: 0xB29F, - 53195 - 44032: 0xB2A0, - 53196 - 44032: 0xB341, - 53197 - 44032: 0xB342, - 53198 - 44032: 0xB343, - 53199 - 44032: 0xB344, - 53200 - 44032: 0xB345, - 53201 - 44032: 0xB346, - 53202 - 44032: 0xB347, - 53203 - 44032: 0xB348, - 53204 - 44032: 0xB349, - 53205 - 44032: 0xB34A, - 53206 - 44032: 0xB34B, - 53207 - 44032: 0xB34C, - 53208 - 44032: 0xB34D, - 53209 - 44032: 0xB34E, - 53210 - 44032: 0xB34F, - 53211 - 44032: 0xB350, - 53212 - 44032: 0xB351, - 53213 - 44032: 0xB352, - 53214 - 44032: 0xB353, - 53215 - 44032: 0xB354, - 53216 - 44032: 0xC4ED, - 53217 - 44032: 0xC4EE, - 53218 - 44032: 0xB355, - 53219 - 44032: 0xB356, - 53220 - 44032: 0xC4EF, - 53221 - 44032: 0xB357, - 53222 - 44032: 0xB358, - 53223 - 44032: 0xB359, - 53224 - 44032: 0xC4F0, - 53225 - 44032: 0xB35A, - 53226 - 44032: 0xB361, - 53227 - 44032: 0xB362, - 53228 - 44032: 0xB363, - 53229 - 44032: 0xB364, - 53230 - 44032: 0xB365, - 53231 - 44032: 0xB366, - 53232 - 44032: 0xC4F1, - 53233 - 44032: 0xC4F2, - 53234 - 44032: 0xB367, - 53235 - 44032: 0xC4F3, - 53236 - 44032: 0xB368, - 53237 - 44032: 0xC4F4, - 53238 - 44032: 0xB369, - 53239 - 44032: 0xB36A, - 53240 - 44032: 0xB36B, - 53241 - 44032: 0xB36C, - 53242 - 44032: 0xB36D, - 53243 - 44032: 0xB36E, - 53244 - 44032: 0xC4F5, - 53245 - 44032: 0xB36F, - 53246 - 44032: 0xB370, - 53247 - 44032: 0xB371, - 53248 - 44032: 0xC4F6, - 53249 - 44032: 0xB372, - 53250 - 44032: 0xB373, - 53251 - 44032: 0xB374, - 53252 - 44032: 0xC4F7, - 53253 - 44032: 0xB375, - 53254 - 44032: 0xB376, - 53255 - 44032: 0xB377, - 53256 - 44032: 0xB378, - 53257 - 44032: 0xB379, - 53258 - 44032: 0xB37A, - 53259 - 44032: 0xB381, - 53260 - 44032: 0xB382, - 53261 - 44032: 0xB383, - 53262 - 44032: 0xB384, - 53263 - 44032: 0xB385, - 53264 - 44032: 0xB386, - 53265 - 44032: 0xC4F8, - 53266 - 44032: 0xB387, - 53267 - 44032: 0xB388, - 53268 - 44032: 0xB389, - 53269 - 44032: 0xB38A, - 53270 - 44032: 0xB38B, - 53271 - 44032: 0xB38C, - 53272 - 44032: 0xC4F9, - 53273 - 44032: 0xB38D, - 53274 - 44032: 0xB38E, - 53275 - 44032: 0xB38F, - 53276 - 44032: 0xB390, - 53277 - 44032: 0xB391, - 53278 - 44032: 0xB392, - 53279 - 44032: 0xB393, - 53280 - 44032: 0xB394, - 53281 - 44032: 0xB395, - 53282 - 44032: 0xB396, - 53283 - 44032: 0xB397, - 53284 - 44032: 0xB398, - 53285 - 44032: 0xB399, - 53286 - 44032: 0xB39A, - 53287 - 44032: 0xB39B, - 53288 - 44032: 0xB39C, - 53289 - 44032: 0xB39D, - 53290 - 44032: 0xB39E, - 53291 - 44032: 0xB39F, - 53292 - 44032: 0xB3A0, - 53293 - 44032: 0xC4FA, - 53294 - 44032: 0xB441, - 53295 - 44032: 0xB442, - 53296 - 44032: 0xB443, - 53297 - 44032: 0xB444, - 53298 - 44032: 0xB445, - 53299 - 44032: 0xB446, - 53300 - 44032: 0xC4FB, - 53301 - 44032: 0xC4FC, - 53302 - 44032: 0xB447, - 53303 - 44032: 0xB448, - 53304 - 44032: 0xC4FD, - 53305 - 44032: 0xB449, - 53306 - 44032: 0xB44A, - 53307 - 44032: 0xB44B, - 53308 - 44032: 0xC4FE, - 53309 - 44032: 0xB44C, - 53310 - 44032: 0xB44D, - 53311 - 44032: 0xB44E, - 53312 - 44032: 0xB44F, - 53313 - 44032: 0xB450, - 53314 - 44032: 0xB451, - 53315 - 44032: 0xB452, - 53316 - 44032: 0xC5A1, - 53317 - 44032: 0xC5A2, - 53318 - 44032: 0xB453, - 53319 - 44032: 0xC5A3, - 53320 - 44032: 0xB454, - 53321 - 44032: 0xC5A4, - 53322 - 44032: 0xB455, - 53323 - 44032: 0xB456, - 53324 - 44032: 0xB457, - 53325 - 44032: 0xB458, - 53326 - 44032: 0xB459, - 53327 - 44032: 0xB45A, - 53328 - 44032: 0xC5A5, - 53329 - 44032: 0xB461, - 53330 - 44032: 0xB462, - 53331 - 44032: 0xB463, - 53332 - 44032: 0xC5A6, - 53333 - 44032: 0xB464, - 53334 - 44032: 0xB465, - 53335 - 44032: 0xB466, - 53336 - 44032: 0xC5A7, - 53337 - 44032: 0xB467, - 53338 - 44032: 0xB468, - 53339 - 44032: 0xB469, - 53340 - 44032: 0xB46A, - 53341 - 44032: 0xB46B, - 53342 - 44032: 0xB46C, - 53343 - 44032: 0xB46D, - 53344 - 44032: 0xC5A8, - 53345 - 44032: 0xB46E, - 53346 - 44032: 0xB46F, - 53347 - 44032: 0xB470, - 53348 - 44032: 0xB471, - 53349 - 44032: 0xB472, - 53350 - 44032: 0xB473, - 53351 - 44032: 0xB474, - 53352 - 44032: 0xB475, - 53353 - 44032: 0xB476, - 53354 - 44032: 0xB477, - 53355 - 44032: 0xB478, - 53356 - 44032: 0xC5A9, - 53357 - 44032: 0xC5AA, - 53358 - 44032: 0xB479, - 53359 - 44032: 0xB47A, - 53360 - 44032: 0xC5AB, - 53361 - 44032: 0xB481, - 53362 - 44032: 0xB482, - 53363 - 44032: 0xB483, - 53364 - 44032: 0xC5AC, - 53365 - 44032: 0xB484, - 53366 - 44032: 0xB485, - 53367 - 44032: 0xB486, - 53368 - 44032: 0xB487, - 53369 - 44032: 0xB488, - 53370 - 44032: 0xB489, - 53371 - 44032: 0xB48A, - 53372 - 44032: 0xC5AD, - 53373 - 44032: 0xC5AE, - 53374 - 44032: 0xB48B, - 53375 - 44032: 0xB48C, - 53376 - 44032: 0xB48D, - 53377 - 44032: 0xC5AF, - 53378 - 44032: 0xB48E, - 53379 - 44032: 0xB48F, - 53380 - 44032: 0xB490, - 53381 - 44032: 0xB491, - 53382 - 44032: 0xB492, - 53383 - 44032: 0xB493, - 53384 - 44032: 0xB494, - 53385 - 44032: 0xB495, - 53386 - 44032: 0xB496, - 53387 - 44032: 0xB497, - 53388 - 44032: 0xB498, - 53389 - 44032: 0xB499, - 53390 - 44032: 0xB49A, - 53391 - 44032: 0xB49B, - 53392 - 44032: 0xB49C, - 53393 - 44032: 0xB49D, - 53394 - 44032: 0xB49E, - 53395 - 44032: 0xB49F, - 53396 - 44032: 0xB4A0, - 53397 - 44032: 0xB541, - 53398 - 44032: 0xB542, - 53399 - 44032: 0xB543, - 53400 - 44032: 0xB544, - 53401 - 44032: 0xB545, - 53402 - 44032: 0xB546, - 53403 - 44032: 0xB547, - 53404 - 44032: 0xB548, - 53405 - 44032: 0xB549, - 53406 - 44032: 0xB54A, - 53407 - 44032: 0xB54B, - 53408 - 44032: 0xB54C, - 53409 - 44032: 0xB54D, - 53410 - 44032: 0xB54E, - 53411 - 44032: 0xB54F, - 53412 - 44032: 0xC5B0, - 53413 - 44032: 0xC5B1, - 53414 - 44032: 0xB550, - 53415 - 44032: 0xB551, - 53416 - 44032: 0xC5B2, - 53417 - 44032: 0xB552, - 53418 - 44032: 0xB553, - 53419 - 44032: 0xB554, - 53420 - 44032: 0xC5B3, - 53421 - 44032: 0xB555, - 53422 - 44032: 0xB556, - 53423 - 44032: 0xB557, - 53424 - 44032: 0xB558, - 53425 - 44032: 0xB559, - 53426 - 44032: 0xB55A, - 53427 - 44032: 0xB561, - 53428 - 44032: 0xC5B4, - 53429 - 44032: 0xC5B5, - 53430 - 44032: 0xB562, - 53431 - 44032: 0xC5B6, - 53432 - 44032: 0xB563, - 53433 - 44032: 0xC5B7, - 53434 - 44032: 0xB564, - 53435 - 44032: 0xB565, - 53436 - 44032: 0xB566, - 53437 - 44032: 0xB567, - 53438 - 44032: 0xB568, - 53439 - 44032: 0xB569, - 53440 - 44032: 0xC5B8, - 53441 - 44032: 0xC5B9, - 53442 - 44032: 0xB56A, - 53443 - 44032: 0xB56B, - 53444 - 44032: 0xC5BA, - 53445 - 44032: 0xB56C, - 53446 - 44032: 0xB56D, - 53447 - 44032: 0xB56E, - 53448 - 44032: 0xC5BB, - 53449 - 44032: 0xC5BC, - 53450 - 44032: 0xB56F, - 53451 - 44032: 0xB570, - 53452 - 44032: 0xB571, - 53453 - 44032: 0xB572, - 53454 - 44032: 0xB573, - 53455 - 44032: 0xB574, - 53456 - 44032: 0xC5BD, - 53457 - 44032: 0xC5BE, - 53458 - 44032: 0xB575, - 53459 - 44032: 0xC5BF, - 53460 - 44032: 0xC5C0, - 53461 - 44032: 0xC5C1, - 53462 - 44032: 0xB576, - 53463 - 44032: 0xB577, - 53464 - 44032: 0xB578, - 53465 - 44032: 0xB579, - 53466 - 44032: 0xB57A, - 53467 - 44032: 0xB581, - 53468 - 44032: 0xC5C2, - 53469 - 44032: 0xC5C3, - 53470 - 44032: 0xB582, - 53471 - 44032: 0xB583, - 53472 - 44032: 0xC5C4, - 53473 - 44032: 0xB584, - 53474 - 44032: 0xB585, - 53475 - 44032: 0xB586, - 53476 - 44032: 0xC5C5, - 53477 - 44032: 0xB587, - 53478 - 44032: 0xB588, - 53479 - 44032: 0xB589, - 53480 - 44032: 0xB58A, - 53481 - 44032: 0xB58B, - 53482 - 44032: 0xB58C, - 53483 - 44032: 0xB58D, - 53484 - 44032: 0xC5C6, - 53485 - 44032: 0xC5C7, - 53486 - 44032: 0xB58E, - 53487 - 44032: 0xC5C8, - 53488 - 44032: 0xC5C9, - 53489 - 44032: 0xC5CA, - 53490 - 44032: 0xB58F, - 53491 - 44032: 0xB590, - 53492 - 44032: 0xB591, - 53493 - 44032: 0xB592, - 53494 - 44032: 0xB593, - 53495 - 44032: 0xB594, - 53496 - 44032: 0xC5CB, - 53497 - 44032: 0xB595, - 53498 - 44032: 0xB596, - 53499 - 44032: 0xB597, - 53500 - 44032: 0xB598, - 53501 - 44032: 0xB599, - 53502 - 44032: 0xB59A, - 53503 - 44032: 0xB59B, - 53504 - 44032: 0xB59C, - 53505 - 44032: 0xB59D, - 53506 - 44032: 0xB59E, - 53507 - 44032: 0xB59F, - 53508 - 44032: 0xB5A0, - 53509 - 44032: 0xB641, - 53510 - 44032: 0xB642, - 53511 - 44032: 0xB643, - 53512 - 44032: 0xB644, - 53513 - 44032: 0xB645, - 53514 - 44032: 0xB646, - 53515 - 44032: 0xB647, - 53516 - 44032: 0xB648, - 53517 - 44032: 0xC5CC, - 53518 - 44032: 0xB649, - 53519 - 44032: 0xB64A, - 53520 - 44032: 0xB64B, - 53521 - 44032: 0xB64C, - 53522 - 44032: 0xB64D, - 53523 - 44032: 0xB64E, - 53524 - 44032: 0xB64F, - 53525 - 44032: 0xB650, - 53526 - 44032: 0xB651, - 53527 - 44032: 0xB652, - 53528 - 44032: 0xB653, - 53529 - 44032: 0xB654, - 53530 - 44032: 0xB655, - 53531 - 44032: 0xB656, - 53532 - 44032: 0xB657, - 53533 - 44032: 0xB658, - 53534 - 44032: 0xB659, - 53535 - 44032: 0xB65A, - 53536 - 44032: 0xB661, - 53537 - 44032: 0xB662, - 53538 - 44032: 0xB663, - 53539 - 44032: 0xB664, - 53540 - 44032: 0xB665, - 53541 - 44032: 0xB666, - 53542 - 44032: 0xB667, - 53543 - 44032: 0xB668, - 53544 - 44032: 0xB669, - 53545 - 44032: 0xB66A, - 53546 - 44032: 0xB66B, - 53547 - 44032: 0xB66C, - 53548 - 44032: 0xB66D, - 53549 - 44032: 0xB66E, - 53550 - 44032: 0xB66F, - 53551 - 44032: 0xB670, - 53552 - 44032: 0xC5CD, - 53553 - 44032: 0xC5CE, - 53554 - 44032: 0xB671, - 53555 - 44032: 0xB672, - 53556 - 44032: 0xC5CF, - 53557 - 44032: 0xB673, - 53558 - 44032: 0xB674, - 53559 - 44032: 0xB675, - 53560 - 44032: 0xC5D0, - 53561 - 44032: 0xB676, - 53562 - 44032: 0xC5D1, - 53563 - 44032: 0xB677, - 53564 - 44032: 0xB678, - 53565 - 44032: 0xB679, - 53566 - 44032: 0xB67A, - 53567 - 44032: 0xB681, - 53568 - 44032: 0xC5D2, - 53569 - 44032: 0xC5D3, - 53570 - 44032: 0xB682, - 53571 - 44032: 0xC5D4, - 53572 - 44032: 0xC5D5, - 53573 - 44032: 0xC5D6, - 53574 - 44032: 0xB683, - 53575 - 44032: 0xB684, - 53576 - 44032: 0xB685, - 53577 - 44032: 0xB686, - 53578 - 44032: 0xB687, - 53579 - 44032: 0xB688, - 53580 - 44032: 0xC5D7, - 53581 - 44032: 0xC5D8, - 53582 - 44032: 0xB689, - 53583 - 44032: 0xB68A, - 53584 - 44032: 0xC5D9, - 53585 - 44032: 0xB68B, - 53586 - 44032: 0xB68C, - 53587 - 44032: 0xB68D, - 53588 - 44032: 0xC5DA, - 53589 - 44032: 0xB68E, - 53590 - 44032: 0xB68F, - 53591 - 44032: 0xB690, - 53592 - 44032: 0xB691, - 53593 - 44032: 0xB692, - 53594 - 44032: 0xB693, - 53595 - 44032: 0xB694, - 53596 - 44032: 0xC5DB, - 53597 - 44032: 0xC5DC, - 53598 - 44032: 0xB695, - 53599 - 44032: 0xC5DD, - 53600 - 44032: 0xB696, - 53601 - 44032: 0xC5DE, - 53602 - 44032: 0xB697, - 53603 - 44032: 0xB698, - 53604 - 44032: 0xB699, - 53605 - 44032: 0xB69A, - 53606 - 44032: 0xB69B, - 53607 - 44032: 0xB69C, - 53608 - 44032: 0xC5DF, - 53609 - 44032: 0xB69D, - 53610 - 44032: 0xB69E, - 53611 - 44032: 0xB69F, - 53612 - 44032: 0xC5E0, - 53613 - 44032: 0xB6A0, - 53614 - 44032: 0xB741, - 53615 - 44032: 0xB742, - 53616 - 44032: 0xB743, - 53617 - 44032: 0xB744, - 53618 - 44032: 0xB745, - 53619 - 44032: 0xB746, - 53620 - 44032: 0xB747, - 53621 - 44032: 0xB748, - 53622 - 44032: 0xB749, - 53623 - 44032: 0xB74A, - 53624 - 44032: 0xB74B, - 53625 - 44032: 0xB74C, - 53626 - 44032: 0xB74D, - 53627 - 44032: 0xB74E, - 53628 - 44032: 0xC5E1, - 53629 - 44032: 0xB74F, - 53630 - 44032: 0xB750, - 53631 - 44032: 0xB751, - 53632 - 44032: 0xB752, - 53633 - 44032: 0xB753, - 53634 - 44032: 0xB754, - 53635 - 44032: 0xB755, - 53636 - 44032: 0xC5E2, - 53637 - 44032: 0xB756, - 53638 - 44032: 0xB757, - 53639 - 44032: 0xB758, - 53640 - 44032: 0xC5E3, - 53641 - 44032: 0xB759, - 53642 - 44032: 0xB75A, - 53643 - 44032: 0xB761, - 53644 - 44032: 0xB762, - 53645 - 44032: 0xB763, - 53646 - 44032: 0xB764, - 53647 - 44032: 0xB765, - 53648 - 44032: 0xB766, - 53649 - 44032: 0xB767, - 53650 - 44032: 0xB768, - 53651 - 44032: 0xB769, - 53652 - 44032: 0xB76A, - 53653 - 44032: 0xB76B, - 53654 - 44032: 0xB76C, - 53655 - 44032: 0xB76D, - 53656 - 44032: 0xB76E, - 53657 - 44032: 0xB76F, - 53658 - 44032: 0xB770, - 53659 - 44032: 0xB771, - 53660 - 44032: 0xB772, - 53661 - 44032: 0xB773, - 53662 - 44032: 0xB774, - 53663 - 44032: 0xB775, - 53664 - 44032: 0xC5E4, - 53665 - 44032: 0xC5E5, - 53666 - 44032: 0xB776, - 53667 - 44032: 0xB777, - 53668 - 44032: 0xC5E6, - 53669 - 44032: 0xB778, - 53670 - 44032: 0xB779, - 53671 - 44032: 0xB77A, - 53672 - 44032: 0xC5E7, - 53673 - 44032: 0xB781, - 53674 - 44032: 0xB782, - 53675 - 44032: 0xB783, - 53676 - 44032: 0xB784, - 53677 - 44032: 0xB785, - 53678 - 44032: 0xB786, - 53679 - 44032: 0xB787, - 53680 - 44032: 0xC5E8, - 53681 - 44032: 0xC5E9, - 53682 - 44032: 0xB788, - 53683 - 44032: 0xC5EA, - 53684 - 44032: 0xB789, - 53685 - 44032: 0xC5EB, - 53686 - 44032: 0xB78A, - 53687 - 44032: 0xB78B, - 53688 - 44032: 0xB78C, - 53689 - 44032: 0xB78D, - 53690 - 44032: 0xC5EC, - 53691 - 44032: 0xB78E, - 53692 - 44032: 0xC5ED, - 53693 - 44032: 0xB78F, - 53694 - 44032: 0xB790, - 53695 - 44032: 0xB791, - 53696 - 44032: 0xC5EE, - 53697 - 44032: 0xB792, - 53698 - 44032: 0xB793, - 53699 - 44032: 0xB794, - 53700 - 44032: 0xB795, - 53701 - 44032: 0xB796, - 53702 - 44032: 0xB797, - 53703 - 44032: 0xB798, - 53704 - 44032: 0xB799, - 53705 - 44032: 0xB79A, - 53706 - 44032: 0xB79B, - 53707 - 44032: 0xB79C, - 53708 - 44032: 0xB79D, - 53709 - 44032: 0xB79E, - 53710 - 44032: 0xB79F, - 53711 - 44032: 0xB7A0, - 53712 - 44032: 0xB841, - 53713 - 44032: 0xB842, - 53714 - 44032: 0xB843, - 53715 - 44032: 0xB844, - 53716 - 44032: 0xB845, - 53717 - 44032: 0xB846, - 53718 - 44032: 0xB847, - 53719 - 44032: 0xB848, - 53720 - 44032: 0xC5EF, - 53721 - 44032: 0xB849, - 53722 - 44032: 0xB84A, - 53723 - 44032: 0xB84B, - 53724 - 44032: 0xB84C, - 53725 - 44032: 0xB84D, - 53726 - 44032: 0xB84E, - 53727 - 44032: 0xB84F, - 53728 - 44032: 0xB850, - 53729 - 44032: 0xB851, - 53730 - 44032: 0xB852, - 53731 - 44032: 0xB853, - 53732 - 44032: 0xB854, - 53733 - 44032: 0xB855, - 53734 - 44032: 0xB856, - 53735 - 44032: 0xB857, - 53736 - 44032: 0xB858, - 53737 - 44032: 0xB859, - 53738 - 44032: 0xB85A, - 53739 - 44032: 0xB861, - 53740 - 44032: 0xB862, - 53741 - 44032: 0xB863, - 53742 - 44032: 0xB864, - 53743 - 44032: 0xB865, - 53744 - 44032: 0xB866, - 53745 - 44032: 0xB867, - 53746 - 44032: 0xB868, - 53747 - 44032: 0xB869, - 53748 - 44032: 0xC5F0, - 53749 - 44032: 0xB86A, - 53750 - 44032: 0xB86B, - 53751 - 44032: 0xB86C, - 53752 - 44032: 0xC5F1, - 53753 - 44032: 0xB86D, - 53754 - 44032: 0xB86E, - 53755 - 44032: 0xB86F, - 53756 - 44032: 0xB870, - 53757 - 44032: 0xB871, - 53758 - 44032: 0xB872, - 53759 - 44032: 0xB873, - 53760 - 44032: 0xB874, - 53761 - 44032: 0xB875, - 53762 - 44032: 0xB876, - 53763 - 44032: 0xB877, - 53764 - 44032: 0xB878, - 53765 - 44032: 0xB879, - 53766 - 44032: 0xB87A, - 53767 - 44032: 0xC5F2, - 53768 - 44032: 0xB881, - 53769 - 44032: 0xC5F3, - 53770 - 44032: 0xB882, - 53771 - 44032: 0xB883, - 53772 - 44032: 0xB884, - 53773 - 44032: 0xB885, - 53774 - 44032: 0xB886, - 53775 - 44032: 0xB887, - 53776 - 44032: 0xC5F4, - 53777 - 44032: 0xB888, - 53778 - 44032: 0xB889, - 53779 - 44032: 0xB88A, - 53780 - 44032: 0xB88B, - 53781 - 44032: 0xB88C, - 53782 - 44032: 0xB88D, - 53783 - 44032: 0xB88E, - 53784 - 44032: 0xB88F, - 53785 - 44032: 0xB890, - 53786 - 44032: 0xB891, - 53787 - 44032: 0xB892, - 53788 - 44032: 0xB893, - 53789 - 44032: 0xB894, - 53790 - 44032: 0xB895, - 53791 - 44032: 0xB896, - 53792 - 44032: 0xB897, - 53793 - 44032: 0xB898, - 53794 - 44032: 0xB899, - 53795 - 44032: 0xB89A, - 53796 - 44032: 0xB89B, - 53797 - 44032: 0xB89C, - 53798 - 44032: 0xB89D, - 53799 - 44032: 0xB89E, - 53800 - 44032: 0xB89F, - 53801 - 44032: 0xB8A0, - 53802 - 44032: 0xB941, - 53803 - 44032: 0xB942, - 53804 - 44032: 0xC5F5, - 53805 - 44032: 0xC5F6, - 53806 - 44032: 0xB943, - 53807 - 44032: 0xB944, - 53808 - 44032: 0xC5F7, - 53809 - 44032: 0xB945, - 53810 - 44032: 0xB946, - 53811 - 44032: 0xB947, - 53812 - 44032: 0xC5F8, - 53813 - 44032: 0xB948, - 53814 - 44032: 0xB949, - 53815 - 44032: 0xB94A, - 53816 - 44032: 0xB94B, - 53817 - 44032: 0xB94C, - 53818 - 44032: 0xB94D, - 53819 - 44032: 0xB94E, - 53820 - 44032: 0xC5F9, - 53821 - 44032: 0xC5FA, - 53822 - 44032: 0xB94F, - 53823 - 44032: 0xC5FB, - 53824 - 44032: 0xB950, - 53825 - 44032: 0xC5FC, - 53826 - 44032: 0xB951, - 53827 - 44032: 0xB952, - 53828 - 44032: 0xB953, - 53829 - 44032: 0xB954, - 53830 - 44032: 0xB955, - 53831 - 44032: 0xB956, - 53832 - 44032: 0xC5FD, - 53833 - 44032: 0xB957, - 53834 - 44032: 0xB958, - 53835 - 44032: 0xB959, - 53836 - 44032: 0xB95A, - 53837 - 44032: 0xB961, - 53838 - 44032: 0xB962, - 53839 - 44032: 0xB963, - 53840 - 44032: 0xB964, - 53841 - 44032: 0xB965, - 53842 - 44032: 0xB966, - 53843 - 44032: 0xB967, - 53844 - 44032: 0xB968, - 53845 - 44032: 0xB969, - 53846 - 44032: 0xB96A, - 53847 - 44032: 0xB96B, - 53848 - 44032: 0xB96C, - 53849 - 44032: 0xB96D, - 53850 - 44032: 0xB96E, - 53851 - 44032: 0xB96F, - 53852 - 44032: 0xC5FE, - 53853 - 44032: 0xB970, - 53854 - 44032: 0xB971, - 53855 - 44032: 0xB972, - 53856 - 44032: 0xB973, - 53857 - 44032: 0xB974, - 53858 - 44032: 0xB975, - 53859 - 44032: 0xB976, - 53860 - 44032: 0xC6A1, - 53861 - 44032: 0xB977, - 53862 - 44032: 0xB978, - 53863 - 44032: 0xB979, - 53864 - 44032: 0xB97A, - 53865 - 44032: 0xB981, - 53866 - 44032: 0xB982, - 53867 - 44032: 0xB983, - 53868 - 44032: 0xB984, - 53869 - 44032: 0xB985, - 53870 - 44032: 0xB986, - 53871 - 44032: 0xB987, - 53872 - 44032: 0xB988, - 53873 - 44032: 0xB989, - 53874 - 44032: 0xB98A, - 53875 - 44032: 0xB98B, - 53876 - 44032: 0xB98C, - 53877 - 44032: 0xB98D, - 53878 - 44032: 0xB98E, - 53879 - 44032: 0xB98F, - 53880 - 44032: 0xB990, - 53881 - 44032: 0xB991, - 53882 - 44032: 0xB992, - 53883 - 44032: 0xB993, - 53884 - 44032: 0xB994, - 53885 - 44032: 0xB995, - 53886 - 44032: 0xB996, - 53887 - 44032: 0xB997, - 53888 - 44032: 0xC6A2, - 53889 - 44032: 0xC6A3, - 53890 - 44032: 0xB998, - 53891 - 44032: 0xB999, - 53892 - 44032: 0xC6A4, - 53893 - 44032: 0xB99A, - 53894 - 44032: 0xB99B, - 53895 - 44032: 0xB99C, - 53896 - 44032: 0xC6A5, - 53897 - 44032: 0xB99D, - 53898 - 44032: 0xB99E, - 53899 - 44032: 0xB99F, - 53900 - 44032: 0xB9A0, - 53901 - 44032: 0xBA41, - 53902 - 44032: 0xBA42, - 53903 - 44032: 0xBA43, - 53904 - 44032: 0xC6A6, - 53905 - 44032: 0xC6A7, - 53906 - 44032: 0xBA44, - 53907 - 44032: 0xBA45, - 53908 - 44032: 0xBA46, - 53909 - 44032: 0xC6A8, - 53910 - 44032: 0xBA47, - 53911 - 44032: 0xBA48, - 53912 - 44032: 0xBA49, - 53913 - 44032: 0xBA4A, - 53914 - 44032: 0xBA4B, - 53915 - 44032: 0xBA4C, - 53916 - 44032: 0xC6A9, - 53917 - 44032: 0xBA4D, - 53918 - 44032: 0xBA4E, - 53919 - 44032: 0xBA4F, - 53920 - 44032: 0xC6AA, - 53921 - 44032: 0xBA50, - 53922 - 44032: 0xBA51, - 53923 - 44032: 0xBA52, - 53924 - 44032: 0xC6AB, - 53925 - 44032: 0xBA53, - 53926 - 44032: 0xBA54, - 53927 - 44032: 0xBA55, - 53928 - 44032: 0xBA56, - 53929 - 44032: 0xBA57, - 53930 - 44032: 0xBA58, - 53931 - 44032: 0xBA59, - 53932 - 44032: 0xC6AC, - 53933 - 44032: 0xBA5A, - 53934 - 44032: 0xBA61, - 53935 - 44032: 0xBA62, - 53936 - 44032: 0xBA63, - 53937 - 44032: 0xC6AD, - 53938 - 44032: 0xBA64, - 53939 - 44032: 0xBA65, - 53940 - 44032: 0xBA66, - 53941 - 44032: 0xBA67, - 53942 - 44032: 0xBA68, - 53943 - 44032: 0xBA69, - 53944 - 44032: 0xC6AE, - 53945 - 44032: 0xC6AF, - 53946 - 44032: 0xBA6A, - 53947 - 44032: 0xBA6B, - 53948 - 44032: 0xC6B0, - 53949 - 44032: 0xBA6C, - 53950 - 44032: 0xBA6D, - 53951 - 44032: 0xC6B1, - 53952 - 44032: 0xC6B2, - 53953 - 44032: 0xBA6E, - 53954 - 44032: 0xC6B3, - 53955 - 44032: 0xBA6F, - 53956 - 44032: 0xBA70, - 53957 - 44032: 0xBA71, - 53958 - 44032: 0xBA72, - 53959 - 44032: 0xBA73, - 53960 - 44032: 0xC6B4, - 53961 - 44032: 0xC6B5, - 53962 - 44032: 0xBA74, - 53963 - 44032: 0xC6B6, - 53964 - 44032: 0xBA75, - 53965 - 44032: 0xBA76, - 53966 - 44032: 0xBA77, - 53967 - 44032: 0xBA78, - 53968 - 44032: 0xBA79, - 53969 - 44032: 0xBA7A, - 53970 - 44032: 0xBA81, - 53971 - 44032: 0xBA82, - 53972 - 44032: 0xC6B7, - 53973 - 44032: 0xBA83, - 53974 - 44032: 0xBA84, - 53975 - 44032: 0xBA85, - 53976 - 44032: 0xC6B8, - 53977 - 44032: 0xBA86, - 53978 - 44032: 0xBA87, - 53979 - 44032: 0xBA88, - 53980 - 44032: 0xC6B9, - 53981 - 44032: 0xBA89, - 53982 - 44032: 0xBA8A, - 53983 - 44032: 0xBA8B, - 53984 - 44032: 0xBA8C, - 53985 - 44032: 0xBA8D, - 53986 - 44032: 0xBA8E, - 53987 - 44032: 0xBA8F, - 53988 - 44032: 0xC6BA, - 53989 - 44032: 0xC6BB, - 53990 - 44032: 0xBA90, - 53991 - 44032: 0xBA91, - 53992 - 44032: 0xBA92, - 53993 - 44032: 0xBA93, - 53994 - 44032: 0xBA94, - 53995 - 44032: 0xBA95, - 53996 - 44032: 0xBA96, - 53997 - 44032: 0xBA97, - 53998 - 44032: 0xBA98, - 53999 - 44032: 0xBA99, - 54000 - 44032: 0xC6BC, - 54001 - 44032: 0xC6BD, - 54002 - 44032: 0xBA9A, - 54003 - 44032: 0xBA9B, - 54004 - 44032: 0xC6BE, - 54005 - 44032: 0xBA9C, - 54006 - 44032: 0xBA9D, - 54007 - 44032: 0xBA9E, - 54008 - 44032: 0xC6BF, - 54009 - 44032: 0xBA9F, - 54010 - 44032: 0xBAA0, - 54011 - 44032: 0xBB41, - 54012 - 44032: 0xBB42, - 54013 - 44032: 0xBB43, - 54014 - 44032: 0xBB44, - 54015 - 44032: 0xBB45, - 54016 - 44032: 0xC6C0, - 54017 - 44032: 0xC6C1, - 54018 - 44032: 0xBB46, - 54019 - 44032: 0xC6C2, - 54020 - 44032: 0xBB47, - 54021 - 44032: 0xC6C3, - 54022 - 44032: 0xBB48, - 54023 - 44032: 0xBB49, - 54024 - 44032: 0xBB4A, - 54025 - 44032: 0xBB4B, - 54026 - 44032: 0xBB4C, - 54027 - 44032: 0xBB4D, - 54028 - 44032: 0xC6C4, - 54029 - 44032: 0xC6C5, - 54030 - 44032: 0xC6C6, - 54031 - 44032: 0xBB4E, - 54032 - 44032: 0xC6C7, - 54033 - 44032: 0xBB4F, - 54034 - 44032: 0xBB50, - 54035 - 44032: 0xBB51, - 54036 - 44032: 0xC6C8, - 54037 - 44032: 0xBB52, - 54038 - 44032: 0xC6C9, - 54039 - 44032: 0xBB53, - 54040 - 44032: 0xBB54, - 54041 - 44032: 0xBB55, - 54042 - 44032: 0xBB56, - 54043 - 44032: 0xBB57, - 54044 - 44032: 0xC6CA, - 54045 - 44032: 0xC6CB, - 54046 - 44032: 0xBB58, - 54047 - 44032: 0xC6CC, - 54048 - 44032: 0xC6CD, - 54049 - 44032: 0xC6CE, - 54050 - 44032: 0xBB59, - 54051 - 44032: 0xBB5A, - 54052 - 44032: 0xBB61, - 54053 - 44032: 0xC6CF, - 54054 - 44032: 0xBB62, - 54055 - 44032: 0xBB63, - 54056 - 44032: 0xC6D0, - 54057 - 44032: 0xC6D1, - 54058 - 44032: 0xBB64, - 54059 - 44032: 0xBB65, - 54060 - 44032: 0xC6D2, - 54061 - 44032: 0xBB66, - 54062 - 44032: 0xBB67, - 54063 - 44032: 0xBB68, - 54064 - 44032: 0xC6D3, - 54065 - 44032: 0xBB69, - 54066 - 44032: 0xBB6A, - 54067 - 44032: 0xBB6B, - 54068 - 44032: 0xBB6C, - 54069 - 44032: 0xBB6D, - 54070 - 44032: 0xBB6E, - 54071 - 44032: 0xBB6F, - 54072 - 44032: 0xC6D4, - 54073 - 44032: 0xC6D5, - 54074 - 44032: 0xBB70, - 54075 - 44032: 0xC6D6, - 54076 - 44032: 0xC6D7, - 54077 - 44032: 0xC6D8, - 54078 - 44032: 0xBB71, - 54079 - 44032: 0xBB72, - 54080 - 44032: 0xBB73, - 54081 - 44032: 0xBB74, - 54082 - 44032: 0xBB75, - 54083 - 44032: 0xBB76, - 54084 - 44032: 0xC6D9, - 54085 - 44032: 0xC6DA, - 54086 - 44032: 0xBB77, - 54087 - 44032: 0xBB78, - 54088 - 44032: 0xBB79, - 54089 - 44032: 0xBB7A, - 54090 - 44032: 0xBB81, - 54091 - 44032: 0xBB82, - 54092 - 44032: 0xBB83, - 54093 - 44032: 0xBB84, - 54094 - 44032: 0xBB85, - 54095 - 44032: 0xBB86, - 54096 - 44032: 0xBB87, - 54097 - 44032: 0xBB88, - 54098 - 44032: 0xBB89, - 54099 - 44032: 0xBB8A, - 54100 - 44032: 0xBB8B, - 54101 - 44032: 0xBB8C, - 54102 - 44032: 0xBB8D, - 54103 - 44032: 0xBB8E, - 54104 - 44032: 0xBB8F, - 54105 - 44032: 0xBB90, - 54106 - 44032: 0xBB91, - 54107 - 44032: 0xBB92, - 54108 - 44032: 0xBB93, - 54109 - 44032: 0xBB94, - 54110 - 44032: 0xBB95, - 54111 - 44032: 0xBB96, - 54112 - 44032: 0xBB97, - 54113 - 44032: 0xBB98, - 54114 - 44032: 0xBB99, - 54115 - 44032: 0xBB9A, - 54116 - 44032: 0xBB9B, - 54117 - 44032: 0xBB9C, - 54118 - 44032: 0xBB9D, - 54119 - 44032: 0xBB9E, - 54120 - 44032: 0xBB9F, - 54121 - 44032: 0xBBA0, - 54122 - 44032: 0xBC41, - 54123 - 44032: 0xBC42, - 54124 - 44032: 0xBC43, - 54125 - 44032: 0xBC44, - 54126 - 44032: 0xBC45, - 54127 - 44032: 0xBC46, - 54128 - 44032: 0xBC47, - 54129 - 44032: 0xBC48, - 54130 - 44032: 0xBC49, - 54131 - 44032: 0xBC4A, - 54132 - 44032: 0xBC4B, - 54133 - 44032: 0xBC4C, - 54134 - 44032: 0xBC4D, - 54135 - 44032: 0xBC4E, - 54136 - 44032: 0xBC4F, - 54137 - 44032: 0xBC50, - 54138 - 44032: 0xBC51, - 54139 - 44032: 0xBC52, - 54140 - 44032: 0xC6DB, - 54141 - 44032: 0xC6DC, - 54142 - 44032: 0xBC53, - 54143 - 44032: 0xBC54, - 54144 - 44032: 0xC6DD, - 54145 - 44032: 0xBC55, - 54146 - 44032: 0xBC56, - 54147 - 44032: 0xBC57, - 54148 - 44032: 0xC6DE, - 54149 - 44032: 0xBC58, - 54150 - 44032: 0xBC59, - 54151 - 44032: 0xBC5A, - 54152 - 44032: 0xBC61, - 54153 - 44032: 0xBC62, - 54154 - 44032: 0xBC63, - 54155 - 44032: 0xBC64, - 54156 - 44032: 0xC6DF, - 54157 - 44032: 0xC6E0, - 54158 - 44032: 0xBC65, - 54159 - 44032: 0xC6E1, - 54160 - 44032: 0xC6E2, - 54161 - 44032: 0xC6E3, - 54162 - 44032: 0xBC66, - 54163 - 44032: 0xBC67, - 54164 - 44032: 0xBC68, - 54165 - 44032: 0xBC69, - 54166 - 44032: 0xBC6A, - 54167 - 44032: 0xBC6B, - 54168 - 44032: 0xC6E4, - 54169 - 44032: 0xC6E5, - 54170 - 44032: 0xBC6C, - 54171 - 44032: 0xBC6D, - 54172 - 44032: 0xC6E6, - 54173 - 44032: 0xBC6E, - 54174 - 44032: 0xBC6F, - 54175 - 44032: 0xBC70, - 54176 - 44032: 0xC6E7, - 54177 - 44032: 0xBC71, - 54178 - 44032: 0xBC72, - 54179 - 44032: 0xBC73, - 54180 - 44032: 0xBC74, - 54181 - 44032: 0xBC75, - 54182 - 44032: 0xBC76, - 54183 - 44032: 0xBC77, - 54184 - 44032: 0xC6E8, - 54185 - 44032: 0xC6E9, - 54186 - 44032: 0xBC78, - 54187 - 44032: 0xC6EA, - 54188 - 44032: 0xBC79, - 54189 - 44032: 0xC6EB, - 54190 - 44032: 0xBC7A, - 54191 - 44032: 0xBC81, - 54192 - 44032: 0xBC82, - 54193 - 44032: 0xBC83, - 54194 - 44032: 0xBC84, - 54195 - 44032: 0xBC85, - 54196 - 44032: 0xC6EC, - 54197 - 44032: 0xBC86, - 54198 - 44032: 0xBC87, - 54199 - 44032: 0xBC88, - 54200 - 44032: 0xC6ED, - 54201 - 44032: 0xBC89, - 54202 - 44032: 0xBC8A, - 54203 - 44032: 0xBC8B, - 54204 - 44032: 0xC6EE, - 54205 - 44032: 0xBC8C, - 54206 - 44032: 0xBC8D, - 54207 - 44032: 0xBC8E, - 54208 - 44032: 0xBC8F, - 54209 - 44032: 0xBC90, - 54210 - 44032: 0xBC91, - 54211 - 44032: 0xBC92, - 54212 - 44032: 0xC6EF, - 54213 - 44032: 0xC6F0, - 54214 - 44032: 0xBC93, - 54215 - 44032: 0xBC94, - 54216 - 44032: 0xC6F1, - 54217 - 44032: 0xC6F2, - 54218 - 44032: 0xBC95, - 54219 - 44032: 0xBC96, - 54220 - 44032: 0xBC97, - 54221 - 44032: 0xBC98, - 54222 - 44032: 0xBC99, - 54223 - 44032: 0xBC9A, - 54224 - 44032: 0xC6F3, - 54225 - 44032: 0xBC9B, - 54226 - 44032: 0xBC9C, - 54227 - 44032: 0xBC9D, - 54228 - 44032: 0xBC9E, - 54229 - 44032: 0xBC9F, - 54230 - 44032: 0xBCA0, - 54231 - 44032: 0xBD41, - 54232 - 44032: 0xC6F4, - 54233 - 44032: 0xBD42, - 54234 - 44032: 0xBD43, - 54235 - 44032: 0xBD44, - 54236 - 44032: 0xBD45, - 54237 - 44032: 0xBD46, - 54238 - 44032: 0xBD47, - 54239 - 44032: 0xBD48, - 54240 - 44032: 0xBD49, - 54241 - 44032: 0xC6F5, - 54242 - 44032: 0xBD4A, - 54243 - 44032: 0xC6F6, - 54244 - 44032: 0xBD4B, - 54245 - 44032: 0xBD4C, - 54246 - 44032: 0xBD4D, - 54247 - 44032: 0xBD4E, - 54248 - 44032: 0xBD4F, - 54249 - 44032: 0xBD50, - 54250 - 44032: 0xBD51, - 54251 - 44032: 0xBD52, - 54252 - 44032: 0xC6F7, - 54253 - 44032: 0xC6F8, - 54254 - 44032: 0xBD53, - 54255 - 44032: 0xBD54, - 54256 - 44032: 0xC6F9, - 54257 - 44032: 0xBD55, - 54258 - 44032: 0xBD56, - 54259 - 44032: 0xBD57, - 54260 - 44032: 0xC6FA, - 54261 - 44032: 0xBD58, - 54262 - 44032: 0xBD59, - 54263 - 44032: 0xBD5A, - 54264 - 44032: 0xBD61, - 54265 - 44032: 0xBD62, - 54266 - 44032: 0xBD63, - 54267 - 44032: 0xBD64, - 54268 - 44032: 0xC6FB, - 54269 - 44032: 0xC6FC, - 54270 - 44032: 0xBD65, - 54271 - 44032: 0xC6FD, - 54272 - 44032: 0xBD66, - 54273 - 44032: 0xC6FE, - 54274 - 44032: 0xBD67, - 54275 - 44032: 0xBD68, - 54276 - 44032: 0xBD69, - 54277 - 44032: 0xBD6A, - 54278 - 44032: 0xBD6B, - 54279 - 44032: 0xBD6C, - 54280 - 44032: 0xC7A1, - 54281 - 44032: 0xBD6D, - 54282 - 44032: 0xBD6E, - 54283 - 44032: 0xBD6F, - 54284 - 44032: 0xBD70, - 54285 - 44032: 0xBD71, - 54286 - 44032: 0xBD72, - 54287 - 44032: 0xBD73, - 54288 - 44032: 0xBD74, - 54289 - 44032: 0xBD75, - 54290 - 44032: 0xBD76, - 54291 - 44032: 0xBD77, - 54292 - 44032: 0xBD78, - 54293 - 44032: 0xBD79, - 54294 - 44032: 0xBD7A, - 54295 - 44032: 0xBD81, - 54296 - 44032: 0xBD82, - 54297 - 44032: 0xBD83, - 54298 - 44032: 0xBD84, - 54299 - 44032: 0xBD85, - 54300 - 44032: 0xBD86, - 54301 - 44032: 0xC7A2, - 54302 - 44032: 0xBD87, - 54303 - 44032: 0xBD88, - 54304 - 44032: 0xBD89, - 54305 - 44032: 0xBD8A, - 54306 - 44032: 0xBD8B, - 54307 - 44032: 0xBD8C, - 54308 - 44032: 0xBD8D, - 54309 - 44032: 0xBD8E, - 54310 - 44032: 0xBD8F, - 54311 - 44032: 0xBD90, - 54312 - 44032: 0xBD91, - 54313 - 44032: 0xBD92, - 54314 - 44032: 0xBD93, - 54315 - 44032: 0xBD94, - 54316 - 44032: 0xBD95, - 54317 - 44032: 0xBD96, - 54318 - 44032: 0xBD97, - 54319 - 44032: 0xBD98, - 54320 - 44032: 0xBD99, - 54321 - 44032: 0xBD9A, - 54322 - 44032: 0xBD9B, - 54323 - 44032: 0xBD9C, - 54324 - 44032: 0xBD9D, - 54325 - 44032: 0xBD9E, - 54326 - 44032: 0xBD9F, - 54327 - 44032: 0xBDA0, - 54328 - 44032: 0xBE41, - 54329 - 44032: 0xBE42, - 54330 - 44032: 0xBE43, - 54331 - 44032: 0xBE44, - 54332 - 44032: 0xBE45, - 54333 - 44032: 0xBE46, - 54334 - 44032: 0xBE47, - 54335 - 44032: 0xBE48, - 54336 - 44032: 0xC7A3, - 54337 - 44032: 0xBE49, - 54338 - 44032: 0xBE4A, - 54339 - 44032: 0xBE4B, - 54340 - 44032: 0xC7A4, - 54341 - 44032: 0xBE4C, - 54342 - 44032: 0xBE4D, - 54343 - 44032: 0xBE4E, - 54344 - 44032: 0xBE4F, - 54345 - 44032: 0xBE50, - 54346 - 44032: 0xBE51, - 54347 - 44032: 0xBE52, - 54348 - 44032: 0xBE53, - 54349 - 44032: 0xBE54, - 54350 - 44032: 0xBE55, - 54351 - 44032: 0xBE56, - 54352 - 44032: 0xBE57, - 54353 - 44032: 0xBE58, - 54354 - 44032: 0xBE59, - 54355 - 44032: 0xBE5A, - 54356 - 44032: 0xBE61, - 54357 - 44032: 0xBE62, - 54358 - 44032: 0xBE63, - 54359 - 44032: 0xBE64, - 54360 - 44032: 0xBE65, - 54361 - 44032: 0xBE66, - 54362 - 44032: 0xBE67, - 54363 - 44032: 0xBE68, - 54364 - 44032: 0xC7A5, - 54365 - 44032: 0xBE69, - 54366 - 44032: 0xBE6A, - 54367 - 44032: 0xBE6B, - 54368 - 44032: 0xC7A6, - 54369 - 44032: 0xBE6C, - 54370 - 44032: 0xBE6D, - 54371 - 44032: 0xBE6E, - 54372 - 44032: 0xC7A7, - 54373 - 44032: 0xBE6F, - 54374 - 44032: 0xBE70, - 54375 - 44032: 0xBE71, - 54376 - 44032: 0xBE72, - 54377 - 44032: 0xBE73, - 54378 - 44032: 0xBE74, - 54379 - 44032: 0xBE75, - 54380 - 44032: 0xBE76, - 54381 - 44032: 0xC7A8, - 54382 - 44032: 0xBE77, - 54383 - 44032: 0xC7A9, - 54384 - 44032: 0xBE78, - 54385 - 44032: 0xBE79, - 54386 - 44032: 0xBE7A, - 54387 - 44032: 0xBE81, - 54388 - 44032: 0xBE82, - 54389 - 44032: 0xBE83, - 54390 - 44032: 0xBE84, - 54391 - 44032: 0xBE85, - 54392 - 44032: 0xC7AA, - 54393 - 44032: 0xC7AB, - 54394 - 44032: 0xBE86, - 54395 - 44032: 0xBE87, - 54396 - 44032: 0xC7AC, - 54397 - 44032: 0xBE88, - 54398 - 44032: 0xBE89, - 54399 - 44032: 0xC7AD, - 54400 - 44032: 0xC7AE, - 54401 - 44032: 0xBE8A, - 54402 - 44032: 0xC7AF, - 54403 - 44032: 0xBE8B, - 54404 - 44032: 0xBE8C, - 54405 - 44032: 0xBE8D, - 54406 - 44032: 0xBE8E, - 54407 - 44032: 0xBE8F, - 54408 - 44032: 0xC7B0, - 54409 - 44032: 0xC7B1, - 54410 - 44032: 0xBE90, - 54411 - 44032: 0xC7B2, - 54412 - 44032: 0xBE91, - 54413 - 44032: 0xC7B3, - 54414 - 44032: 0xBE92, - 54415 - 44032: 0xBE93, - 54416 - 44032: 0xBE94, - 54417 - 44032: 0xBE95, - 54418 - 44032: 0xBE96, - 54419 - 44032: 0xBE97, - 54420 - 44032: 0xC7B4, - 54421 - 44032: 0xBE98, - 54422 - 44032: 0xBE99, - 54423 - 44032: 0xBE9A, - 54424 - 44032: 0xBE9B, - 54425 - 44032: 0xBE9C, - 54426 - 44032: 0xBE9D, - 54427 - 44032: 0xBE9E, - 54428 - 44032: 0xBE9F, - 54429 - 44032: 0xBEA0, - 54430 - 44032: 0xBF41, - 54431 - 44032: 0xBF42, - 54432 - 44032: 0xBF43, - 54433 - 44032: 0xBF44, - 54434 - 44032: 0xBF45, - 54435 - 44032: 0xBF46, - 54436 - 44032: 0xBF47, - 54437 - 44032: 0xBF48, - 54438 - 44032: 0xBF49, - 54439 - 44032: 0xBF4A, - 54440 - 44032: 0xBF4B, - 54441 - 44032: 0xC7B5, - 54442 - 44032: 0xBF4C, - 54443 - 44032: 0xBF4D, - 54444 - 44032: 0xBF4E, - 54445 - 44032: 0xBF4F, - 54446 - 44032: 0xBF50, - 54447 - 44032: 0xBF51, - 54448 - 44032: 0xBF52, - 54449 - 44032: 0xBF53, - 54450 - 44032: 0xBF54, - 54451 - 44032: 0xBF55, - 54452 - 44032: 0xBF56, - 54453 - 44032: 0xBF57, - 54454 - 44032: 0xBF58, - 54455 - 44032: 0xBF59, - 54456 - 44032: 0xBF5A, - 54457 - 44032: 0xBF61, - 54458 - 44032: 0xBF62, - 54459 - 44032: 0xBF63, - 54460 - 44032: 0xBF64, - 54461 - 44032: 0xBF65, - 54462 - 44032: 0xBF66, - 54463 - 44032: 0xBF67, - 54464 - 44032: 0xBF68, - 54465 - 44032: 0xBF69, - 54466 - 44032: 0xBF6A, - 54467 - 44032: 0xBF6B, - 54468 - 44032: 0xBF6C, - 54469 - 44032: 0xBF6D, - 54470 - 44032: 0xBF6E, - 54471 - 44032: 0xBF6F, - 54472 - 44032: 0xBF70, - 54473 - 44032: 0xBF71, - 54474 - 44032: 0xBF72, - 54475 - 44032: 0xBF73, - 54476 - 44032: 0xC7B6, - 54477 - 44032: 0xBF74, - 54478 - 44032: 0xBF75, - 54479 - 44032: 0xBF76, - 54480 - 44032: 0xC7B7, - 54481 - 44032: 0xBF77, - 54482 - 44032: 0xBF78, - 54483 - 44032: 0xBF79, - 54484 - 44032: 0xC7B8, - 54485 - 44032: 0xBF7A, - 54486 - 44032: 0xBF81, - 54487 - 44032: 0xBF82, - 54488 - 44032: 0xBF83, - 54489 - 44032: 0xBF84, - 54490 - 44032: 0xBF85, - 54491 - 44032: 0xBF86, - 54492 - 44032: 0xC7B9, - 54493 - 44032: 0xBF87, - 54494 - 44032: 0xBF88, - 54495 - 44032: 0xC7BA, - 54496 - 44032: 0xBF89, - 54497 - 44032: 0xBF8A, - 54498 - 44032: 0xBF8B, - 54499 - 44032: 0xBF8C, - 54500 - 44032: 0xBF8D, - 54501 - 44032: 0xBF8E, - 54502 - 44032: 0xBF8F, - 54503 - 44032: 0xBF90, - 54504 - 44032: 0xC7BB, - 54505 - 44032: 0xBF91, - 54506 - 44032: 0xBF92, - 54507 - 44032: 0xBF93, - 54508 - 44032: 0xC7BC, - 54509 - 44032: 0xBF94, - 54510 - 44032: 0xBF95, - 54511 - 44032: 0xBF96, - 54512 - 44032: 0xC7BD, - 54513 - 44032: 0xBF97, - 54514 - 44032: 0xBF98, - 54515 - 44032: 0xBF99, - 54516 - 44032: 0xBF9A, - 54517 - 44032: 0xBF9B, - 54518 - 44032: 0xBF9C, - 54519 - 44032: 0xBF9D, - 54520 - 44032: 0xC7BE, - 54521 - 44032: 0xBF9E, - 54522 - 44032: 0xBF9F, - 54523 - 44032: 0xC7BF, - 54524 - 44032: 0xBFA0, - 54525 - 44032: 0xC7C0, - 54526 - 44032: 0xC041, - 54527 - 44032: 0xC042, - 54528 - 44032: 0xC043, - 54529 - 44032: 0xC044, - 54530 - 44032: 0xC045, - 54531 - 44032: 0xC046, - 54532 - 44032: 0xC7C1, - 54533 - 44032: 0xC047, - 54534 - 44032: 0xC048, - 54535 - 44032: 0xC049, - 54536 - 44032: 0xC7C2, - 54537 - 44032: 0xC04A, - 54538 - 44032: 0xC04B, - 54539 - 44032: 0xC04C, - 54540 - 44032: 0xC7C3, - 54541 - 44032: 0xC04D, - 54542 - 44032: 0xC04E, - 54543 - 44032: 0xC04F, - 54544 - 44032: 0xC050, - 54545 - 44032: 0xC051, - 54546 - 44032: 0xC052, - 54547 - 44032: 0xC053, - 54548 - 44032: 0xC7C4, - 54549 - 44032: 0xC7C5, - 54550 - 44032: 0xC054, - 54551 - 44032: 0xC7C6, - 54552 - 44032: 0xC055, - 54553 - 44032: 0xC056, - 54554 - 44032: 0xC057, - 54555 - 44032: 0xC058, - 54556 - 44032: 0xC059, - 54557 - 44032: 0xC05A, - 54558 - 44032: 0xC061, - 54559 - 44032: 0xC062, - 54560 - 44032: 0xC063, - 54561 - 44032: 0xC064, - 54562 - 44032: 0xC065, - 54563 - 44032: 0xC066, - 54564 - 44032: 0xC067, - 54565 - 44032: 0xC068, - 54566 - 44032: 0xC069, - 54567 - 44032: 0xC06A, - 54568 - 44032: 0xC06B, - 54569 - 44032: 0xC06C, - 54570 - 44032: 0xC06D, - 54571 - 44032: 0xC06E, - 54572 - 44032: 0xC06F, - 54573 - 44032: 0xC070, - 54574 - 44032: 0xC071, - 54575 - 44032: 0xC072, - 54576 - 44032: 0xC073, - 54577 - 44032: 0xC074, - 54578 - 44032: 0xC075, - 54579 - 44032: 0xC076, - 54580 - 44032: 0xC077, - 54581 - 44032: 0xC078, - 54582 - 44032: 0xC079, - 54583 - 44032: 0xC07A, - 54584 - 44032: 0xC081, - 54585 - 44032: 0xC082, - 54586 - 44032: 0xC083, - 54587 - 44032: 0xC084, - 54588 - 44032: 0xC7C7, - 54589 - 44032: 0xC7C8, - 54590 - 44032: 0xC085, - 54591 - 44032: 0xC086, - 54592 - 44032: 0xC7C9, - 54593 - 44032: 0xC087, - 54594 - 44032: 0xC088, - 54595 - 44032: 0xC089, - 54596 - 44032: 0xC7CA, - 54597 - 44032: 0xC08A, - 54598 - 44032: 0xC08B, - 54599 - 44032: 0xC08C, - 54600 - 44032: 0xC08D, - 54601 - 44032: 0xC08E, - 54602 - 44032: 0xC08F, - 54603 - 44032: 0xC090, - 54604 - 44032: 0xC7CB, - 54605 - 44032: 0xC7CC, - 54606 - 44032: 0xC091, - 54607 - 44032: 0xC7CD, - 54608 - 44032: 0xC092, - 54609 - 44032: 0xC7CE, - 54610 - 44032: 0xC093, - 54611 - 44032: 0xC094, - 54612 - 44032: 0xC095, - 54613 - 44032: 0xC096, - 54614 - 44032: 0xC097, - 54615 - 44032: 0xC098, - 54616 - 44032: 0xC7CF, - 54617 - 44032: 0xC7D0, - 54618 - 44032: 0xC099, - 54619 - 44032: 0xC09A, - 54620 - 44032: 0xC7D1, - 54621 - 44032: 0xC09B, - 54622 - 44032: 0xC09C, - 54623 - 44032: 0xC09D, - 54624 - 44032: 0xC7D2, - 54625 - 44032: 0xC09E, - 54626 - 44032: 0xC09F, - 54627 - 44032: 0xC0A0, - 54628 - 44032: 0xC141, - 54629 - 44032: 0xC7D3, - 54630 - 44032: 0xC142, - 54631 - 44032: 0xC143, - 54632 - 44032: 0xC7D4, - 54633 - 44032: 0xC7D5, - 54634 - 44032: 0xC144, - 54635 - 44032: 0xC7D6, - 54636 - 44032: 0xC145, - 54637 - 44032: 0xC7D7, - 54638 - 44032: 0xC146, - 54639 - 44032: 0xC147, - 54640 - 44032: 0xC148, - 54641 - 44032: 0xC149, - 54642 - 44032: 0xC14A, - 54643 - 44032: 0xC14B, - 54644 - 44032: 0xC7D8, - 54645 - 44032: 0xC7D9, - 54646 - 44032: 0xC14C, - 54647 - 44032: 0xC14D, - 54648 - 44032: 0xC7DA, - 54649 - 44032: 0xC14E, - 54650 - 44032: 0xC14F, - 54651 - 44032: 0xC150, - 54652 - 44032: 0xC7DB, - 54653 - 44032: 0xC151, - 54654 - 44032: 0xC152, - 54655 - 44032: 0xC153, - 54656 - 44032: 0xC154, - 54657 - 44032: 0xC155, - 54658 - 44032: 0xC156, - 54659 - 44032: 0xC157, - 54660 - 44032: 0xC7DC, - 54661 - 44032: 0xC7DD, - 54662 - 44032: 0xC158, - 54663 - 44032: 0xC7DE, - 54664 - 44032: 0xC7DF, - 54665 - 44032: 0xC7E0, - 54666 - 44032: 0xC159, - 54667 - 44032: 0xC15A, - 54668 - 44032: 0xC161, - 54669 - 44032: 0xC162, - 54670 - 44032: 0xC163, - 54671 - 44032: 0xC164, - 54672 - 44032: 0xC7E1, - 54673 - 44032: 0xC165, - 54674 - 44032: 0xC166, - 54675 - 44032: 0xC167, - 54676 - 44032: 0xC168, - 54677 - 44032: 0xC169, - 54678 - 44032: 0xC16A, - 54679 - 44032: 0xC16B, - 54680 - 44032: 0xC16C, - 54681 - 44032: 0xC16D, - 54682 - 44032: 0xC16E, - 54683 - 44032: 0xC16F, - 54684 - 44032: 0xC170, - 54685 - 44032: 0xC171, - 54686 - 44032: 0xC172, - 54687 - 44032: 0xC173, - 54688 - 44032: 0xC174, - 54689 - 44032: 0xC175, - 54690 - 44032: 0xC176, - 54691 - 44032: 0xC177, - 54692 - 44032: 0xC178, - 54693 - 44032: 0xC7E2, - 54694 - 44032: 0xC179, - 54695 - 44032: 0xC17A, - 54696 - 44032: 0xC181, - 54697 - 44032: 0xC182, - 54698 - 44032: 0xC183, - 54699 - 44032: 0xC184, - 54700 - 44032: 0xC185, - 54701 - 44032: 0xC186, - 54702 - 44032: 0xC187, - 54703 - 44032: 0xC188, - 54704 - 44032: 0xC189, - 54705 - 44032: 0xC18A, - 54706 - 44032: 0xC18B, - 54707 - 44032: 0xC18C, - 54708 - 44032: 0xC18D, - 54709 - 44032: 0xC18E, - 54710 - 44032: 0xC18F, - 54711 - 44032: 0xC190, - 54712 - 44032: 0xC191, - 54713 - 44032: 0xC192, - 54714 - 44032: 0xC193, - 54715 - 44032: 0xC194, - 54716 - 44032: 0xC195, - 54717 - 44032: 0xC196, - 54718 - 44032: 0xC197, - 54719 - 44032: 0xC198, - 54720 - 44032: 0xC199, - 54721 - 44032: 0xC19A, - 54722 - 44032: 0xC19B, - 54723 - 44032: 0xC19C, - 54724 - 44032: 0xC19D, - 54725 - 44032: 0xC19E, - 54726 - 44032: 0xC19F, - 54727 - 44032: 0xC1A0, - 54728 - 44032: 0xC7E3, - 54729 - 44032: 0xC7E4, - 54730 - 44032: 0xC241, - 54731 - 44032: 0xC242, - 54732 - 44032: 0xC7E5, - 54733 - 44032: 0xC243, - 54734 - 44032: 0xC244, - 54735 - 44032: 0xC245, - 54736 - 44032: 0xC7E6, - 54737 - 44032: 0xC246, - 54738 - 44032: 0xC7E7, - 54739 - 44032: 0xC247, - 54740 - 44032: 0xC248, - 54741 - 44032: 0xC249, - 54742 - 44032: 0xC24A, - 54743 - 44032: 0xC24B, - 54744 - 44032: 0xC7E8, - 54745 - 44032: 0xC7E9, - 54746 - 44032: 0xC24C, - 54747 - 44032: 0xC7EA, - 54748 - 44032: 0xC24D, - 54749 - 44032: 0xC7EB, - 54750 - 44032: 0xC24E, - 54751 - 44032: 0xC24F, - 54752 - 44032: 0xC250, - 54753 - 44032: 0xC251, - 54754 - 44032: 0xC252, - 54755 - 44032: 0xC253, - 54756 - 44032: 0xC7EC, - 54757 - 44032: 0xC7ED, - 54758 - 44032: 0xC254, - 54759 - 44032: 0xC255, - 54760 - 44032: 0xC7EE, - 54761 - 44032: 0xC256, - 54762 - 44032: 0xC257, - 54763 - 44032: 0xC258, - 54764 - 44032: 0xC7EF, - 54765 - 44032: 0xC259, - 54766 - 44032: 0xC25A, - 54767 - 44032: 0xC261, - 54768 - 44032: 0xC262, - 54769 - 44032: 0xC263, - 54770 - 44032: 0xC264, - 54771 - 44032: 0xC265, - 54772 - 44032: 0xC7F0, - 54773 - 44032: 0xC7F1, - 54774 - 44032: 0xC266, - 54775 - 44032: 0xC7F2, - 54776 - 44032: 0xC267, - 54777 - 44032: 0xC7F3, - 54778 - 44032: 0xC268, - 54779 - 44032: 0xC269, - 54780 - 44032: 0xC26A, - 54781 - 44032: 0xC26B, - 54782 - 44032: 0xC26C, - 54783 - 44032: 0xC26D, - 54784 - 44032: 0xC7F4, - 54785 - 44032: 0xC7F5, - 54786 - 44032: 0xC26E, - 54787 - 44032: 0xC26F, - 54788 - 44032: 0xC7F6, - 54789 - 44032: 0xC270, - 54790 - 44032: 0xC271, - 54791 - 44032: 0xC272, - 54792 - 44032: 0xC7F7, - 54793 - 44032: 0xC273, - 54794 - 44032: 0xC274, - 54795 - 44032: 0xC275, - 54796 - 44032: 0xC276, - 54797 - 44032: 0xC277, - 54798 - 44032: 0xC278, - 54799 - 44032: 0xC279, - 54800 - 44032: 0xC7F8, - 54801 - 44032: 0xC7F9, - 54802 - 44032: 0xC27A, - 54803 - 44032: 0xC7FA, - 54804 - 44032: 0xC7FB, - 54805 - 44032: 0xC7FC, - 54806 - 44032: 0xC281, - 54807 - 44032: 0xC282, - 54808 - 44032: 0xC283, - 54809 - 44032: 0xC284, - 54810 - 44032: 0xC285, - 54811 - 44032: 0xC286, - 54812 - 44032: 0xC7FD, - 54813 - 44032: 0xC287, - 54814 - 44032: 0xC288, - 54815 - 44032: 0xC289, - 54816 - 44032: 0xC7FE, - 54817 - 44032: 0xC28A, - 54818 - 44032: 0xC28B, - 54819 - 44032: 0xC28C, - 54820 - 44032: 0xC8A1, - 54821 - 44032: 0xC28D, - 54822 - 44032: 0xC28E, - 54823 - 44032: 0xC28F, - 54824 - 44032: 0xC290, - 54825 - 44032: 0xC291, - 54826 - 44032: 0xC292, - 54827 - 44032: 0xC293, - 54828 - 44032: 0xC294, - 54829 - 44032: 0xC8A2, - 54830 - 44032: 0xC295, - 54831 - 44032: 0xC296, - 54832 - 44032: 0xC297, - 54833 - 44032: 0xC298, - 54834 - 44032: 0xC299, - 54835 - 44032: 0xC29A, - 54836 - 44032: 0xC29B, - 54837 - 44032: 0xC29C, - 54838 - 44032: 0xC29D, - 54839 - 44032: 0xC29E, - 54840 - 44032: 0xC8A3, - 54841 - 44032: 0xC8A4, - 54842 - 44032: 0xC29F, - 54843 - 44032: 0xC2A0, - 54844 - 44032: 0xC8A5, - 54845 - 44032: 0xC341, - 54846 - 44032: 0xC342, - 54847 - 44032: 0xC343, - 54848 - 44032: 0xC8A6, - 54849 - 44032: 0xC344, - 54850 - 44032: 0xC345, - 54851 - 44032: 0xC346, - 54852 - 44032: 0xC347, - 54853 - 44032: 0xC8A7, - 54854 - 44032: 0xC348, - 54855 - 44032: 0xC349, - 54856 - 44032: 0xC8A8, - 54857 - 44032: 0xC8A9, - 54858 - 44032: 0xC34A, - 54859 - 44032: 0xC8AA, - 54860 - 44032: 0xC34B, - 54861 - 44032: 0xC8AB, - 54862 - 44032: 0xC34C, - 54863 - 44032: 0xC34D, - 54864 - 44032: 0xC34E, - 54865 - 44032: 0xC8AC, - 54866 - 44032: 0xC34F, - 54867 - 44032: 0xC350, - 54868 - 44032: 0xC8AD, - 54869 - 44032: 0xC8AE, - 54870 - 44032: 0xC351, - 54871 - 44032: 0xC352, - 54872 - 44032: 0xC8AF, - 54873 - 44032: 0xC353, - 54874 - 44032: 0xC354, - 54875 - 44032: 0xC355, - 54876 - 44032: 0xC8B0, - 54877 - 44032: 0xC356, - 54878 - 44032: 0xC357, - 54879 - 44032: 0xC358, - 54880 - 44032: 0xC359, - 54881 - 44032: 0xC35A, - 54882 - 44032: 0xC361, - 54883 - 44032: 0xC362, - 54884 - 44032: 0xC363, - 54885 - 44032: 0xC364, - 54886 - 44032: 0xC365, - 54887 - 44032: 0xC8B1, - 54888 - 44032: 0xC366, - 54889 - 44032: 0xC8B2, - 54890 - 44032: 0xC367, - 54891 - 44032: 0xC368, - 54892 - 44032: 0xC369, - 54893 - 44032: 0xC36A, - 54894 - 44032: 0xC36B, - 54895 - 44032: 0xC36C, - 54896 - 44032: 0xC8B3, - 54897 - 44032: 0xC8B4, - 54898 - 44032: 0xC36D, - 54899 - 44032: 0xC36E, - 54900 - 44032: 0xC8B5, - 54901 - 44032: 0xC36F, - 54902 - 44032: 0xC370, - 54903 - 44032: 0xC371, - 54904 - 44032: 0xC372, - 54905 - 44032: 0xC373, - 54906 - 44032: 0xC374, - 54907 - 44032: 0xC375, - 54908 - 44032: 0xC376, - 54909 - 44032: 0xC377, - 54910 - 44032: 0xC378, - 54911 - 44032: 0xC379, - 54912 - 44032: 0xC37A, - 54913 - 44032: 0xC381, - 54914 - 44032: 0xC382, - 54915 - 44032: 0xC8B6, - 54916 - 44032: 0xC383, - 54917 - 44032: 0xC8B7, - 54918 - 44032: 0xC384, - 54919 - 44032: 0xC385, - 54920 - 44032: 0xC386, - 54921 - 44032: 0xC387, - 54922 - 44032: 0xC388, - 54923 - 44032: 0xC389, - 54924 - 44032: 0xC8B8, - 54925 - 44032: 0xC8B9, - 54926 - 44032: 0xC38A, - 54927 - 44032: 0xC38B, - 54928 - 44032: 0xC8BA, - 54929 - 44032: 0xC38C, - 54930 - 44032: 0xC38D, - 54931 - 44032: 0xC38E, - 54932 - 44032: 0xC8BB, - 54933 - 44032: 0xC38F, - 54934 - 44032: 0xC390, - 54935 - 44032: 0xC391, - 54936 - 44032: 0xC392, - 54937 - 44032: 0xC393, - 54938 - 44032: 0xC394, - 54939 - 44032: 0xC395, - 54940 - 44032: 0xC396, - 54941 - 44032: 0xC8BC, - 54942 - 44032: 0xC397, - 54943 - 44032: 0xC8BD, - 54944 - 44032: 0xC398, - 54945 - 44032: 0xC8BE, - 54946 - 44032: 0xC399, - 54947 - 44032: 0xC39A, - 54948 - 44032: 0xC39B, - 54949 - 44032: 0xC39C, - 54950 - 44032: 0xC39D, - 54951 - 44032: 0xC39E, - 54952 - 44032: 0xC8BF, - 54953 - 44032: 0xC39F, - 54954 - 44032: 0xC3A0, - 54955 - 44032: 0xC441, - 54956 - 44032: 0xC8C0, - 54957 - 44032: 0xC442, - 54958 - 44032: 0xC443, - 54959 - 44032: 0xC444, - 54960 - 44032: 0xC8C1, - 54961 - 44032: 0xC445, - 54962 - 44032: 0xC446, - 54963 - 44032: 0xC447, - 54964 - 44032: 0xC448, - 54965 - 44032: 0xC449, - 54966 - 44032: 0xC44A, - 54967 - 44032: 0xC44B, - 54968 - 44032: 0xC44C, - 54969 - 44032: 0xC8C2, - 54970 - 44032: 0xC44D, - 54971 - 44032: 0xC8C3, - 54972 - 44032: 0xC44E, - 54973 - 44032: 0xC44F, - 54974 - 44032: 0xC450, - 54975 - 44032: 0xC451, - 54976 - 44032: 0xC452, - 54977 - 44032: 0xC453, - 54978 - 44032: 0xC454, - 54979 - 44032: 0xC455, - 54980 - 44032: 0xC8C4, - 54981 - 44032: 0xC8C5, - 54982 - 44032: 0xC456, - 54983 - 44032: 0xC457, - 54984 - 44032: 0xC8C6, - 54985 - 44032: 0xC458, - 54986 - 44032: 0xC459, - 54987 - 44032: 0xC45A, - 54988 - 44032: 0xC8C7, - 54989 - 44032: 0xC461, - 54990 - 44032: 0xC462, - 54991 - 44032: 0xC463, - 54992 - 44032: 0xC464, - 54993 - 44032: 0xC8C8, - 54994 - 44032: 0xC465, - 54995 - 44032: 0xC466, - 54996 - 44032: 0xC8C9, - 54997 - 44032: 0xC467, - 54998 - 44032: 0xC468, - 54999 - 44032: 0xC8CA, - 55000 - 44032: 0xC469, - 55001 - 44032: 0xC8CB, - 55002 - 44032: 0xC46A, - 55003 - 44032: 0xC46B, - 55004 - 44032: 0xC46C, - 55005 - 44032: 0xC46D, - 55006 - 44032: 0xC46E, - 55007 - 44032: 0xC46F, - 55008 - 44032: 0xC8CC, - 55009 - 44032: 0xC470, - 55010 - 44032: 0xC471, - 55011 - 44032: 0xC472, - 55012 - 44032: 0xC8CD, - 55013 - 44032: 0xC473, - 55014 - 44032: 0xC474, - 55015 - 44032: 0xC475, - 55016 - 44032: 0xC8CE, - 55017 - 44032: 0xC476, - 55018 - 44032: 0xC477, - 55019 - 44032: 0xC478, - 55020 - 44032: 0xC479, - 55021 - 44032: 0xC47A, - 55022 - 44032: 0xC481, - 55023 - 44032: 0xC482, - 55024 - 44032: 0xC8CF, - 55025 - 44032: 0xC483, - 55026 - 44032: 0xC484, - 55027 - 44032: 0xC485, - 55028 - 44032: 0xC486, - 55029 - 44032: 0xC8D0, - 55030 - 44032: 0xC487, - 55031 - 44032: 0xC488, - 55032 - 44032: 0xC489, - 55033 - 44032: 0xC48A, - 55034 - 44032: 0xC48B, - 55035 - 44032: 0xC48C, - 55036 - 44032: 0xC8D1, - 55037 - 44032: 0xC8D2, - 55038 - 44032: 0xC48D, - 55039 - 44032: 0xC48E, - 55040 - 44032: 0xC8D3, - 55041 - 44032: 0xC48F, - 55042 - 44032: 0xC490, - 55043 - 44032: 0xC491, - 55044 - 44032: 0xC8D4, - 55045 - 44032: 0xC492, - 55046 - 44032: 0xC493, - 55047 - 44032: 0xC494, - 55048 - 44032: 0xC495, - 55049 - 44032: 0xC496, - 55050 - 44032: 0xC497, - 55051 - 44032: 0xC498, - 55052 - 44032: 0xC499, - 55053 - 44032: 0xC49A, - 55054 - 44032: 0xC49B, - 55055 - 44032: 0xC49C, - 55056 - 44032: 0xC49D, - 55057 - 44032: 0xC8D5, - 55058 - 44032: 0xC49E, - 55059 - 44032: 0xC49F, - 55060 - 44032: 0xC4A0, - 55061 - 44032: 0xC541, - 55062 - 44032: 0xC542, - 55063 - 44032: 0xC543, - 55064 - 44032: 0xC8D6, - 55065 - 44032: 0xC8D7, - 55066 - 44032: 0xC544, - 55067 - 44032: 0xC545, - 55068 - 44032: 0xC8D8, - 55069 - 44032: 0xC546, - 55070 - 44032: 0xC547, - 55071 - 44032: 0xC548, - 55072 - 44032: 0xC8D9, - 55073 - 44032: 0xC549, - 55074 - 44032: 0xC54A, - 55075 - 44032: 0xC54B, - 55076 - 44032: 0xC54C, - 55077 - 44032: 0xC54D, - 55078 - 44032: 0xC54E, - 55079 - 44032: 0xC54F, - 55080 - 44032: 0xC8DA, - 55081 - 44032: 0xC8DB, - 55082 - 44032: 0xC550, - 55083 - 44032: 0xC8DC, - 55084 - 44032: 0xC551, - 55085 - 44032: 0xC8DD, - 55086 - 44032: 0xC552, - 55087 - 44032: 0xC553, - 55088 - 44032: 0xC554, - 55089 - 44032: 0xC555, - 55090 - 44032: 0xC556, - 55091 - 44032: 0xC557, - 55092 - 44032: 0xC8DE, - 55093 - 44032: 0xC8DF, - 55094 - 44032: 0xC558, - 55095 - 44032: 0xC559, - 55096 - 44032: 0xC8E0, - 55097 - 44032: 0xC55A, - 55098 - 44032: 0xC561, - 55099 - 44032: 0xC562, - 55100 - 44032: 0xC8E1, - 55101 - 44032: 0xC563, - 55102 - 44032: 0xC564, - 55103 - 44032: 0xC565, - 55104 - 44032: 0xC566, - 55105 - 44032: 0xC567, - 55106 - 44032: 0xC568, - 55107 - 44032: 0xC569, - 55108 - 44032: 0xC8E2, - 55109 - 44032: 0xC56A, - 55110 - 44032: 0xC56B, - 55111 - 44032: 0xC8E3, - 55112 - 44032: 0xC56C, - 55113 - 44032: 0xC8E4, - 55114 - 44032: 0xC56D, - 55115 - 44032: 0xC56E, - 55116 - 44032: 0xC56F, - 55117 - 44032: 0xC570, - 55118 - 44032: 0xC571, - 55119 - 44032: 0xC572, - 55120 - 44032: 0xC8E5, - 55121 - 44032: 0xC8E6, - 55122 - 44032: 0xC573, - 55123 - 44032: 0xC574, - 55124 - 44032: 0xC8E7, - 55125 - 44032: 0xC575, - 55126 - 44032: 0xC8E8, - 55127 - 44032: 0xC8E9, - 55128 - 44032: 0xC8EA, - 55129 - 44032: 0xC8EB, - 55130 - 44032: 0xC576, - 55131 - 44032: 0xC577, - 55132 - 44032: 0xC578, - 55133 - 44032: 0xC579, - 55134 - 44032: 0xC57A, - 55135 - 44032: 0xC581, - 55136 - 44032: 0xC8EC, - 55137 - 44032: 0xC8ED, - 55138 - 44032: 0xC582, - 55139 - 44032: 0xC8EE, - 55140 - 44032: 0xC583, - 55141 - 44032: 0xC8EF, - 55142 - 44032: 0xC584, - 55143 - 44032: 0xC585, - 55144 - 44032: 0xC586, - 55145 - 44032: 0xC8F0, - 55146 - 44032: 0xC587, - 55147 - 44032: 0xC588, - 55148 - 44032: 0xC8F1, - 55149 - 44032: 0xC589, - 55150 - 44032: 0xC58A, - 55151 - 44032: 0xC58B, - 55152 - 44032: 0xC8F2, - 55153 - 44032: 0xC58C, - 55154 - 44032: 0xC58D, - 55155 - 44032: 0xC58E, - 55156 - 44032: 0xC8F3, - 55157 - 44032: 0xC58F, - 55158 - 44032: 0xC590, - 55159 - 44032: 0xC591, - 55160 - 44032: 0xC592, - 55161 - 44032: 0xC593, - 55162 - 44032: 0xC594, - 55163 - 44032: 0xC595, - 55164 - 44032: 0xC8F4, - 55165 - 44032: 0xC8F5, - 55166 - 44032: 0xC596, - 55167 - 44032: 0xC597, - 55168 - 44032: 0xC598, - 55169 - 44032: 0xC8F6, - 55170 - 44032: 0xC599, - 55171 - 44032: 0xC59A, - 55172 - 44032: 0xC59B, - 55173 - 44032: 0xC59C, - 55174 - 44032: 0xC59D, - 55175 - 44032: 0xC59E, - 55176 - 44032: 0xC8F7, - 55177 - 44032: 0xC8F8, - 55178 - 44032: 0xC59F, - 55179 - 44032: 0xC5A0, - 55180 - 44032: 0xC8F9, - 55181 - 44032: 0xC641, - 55182 - 44032: 0xC642, - 55183 - 44032: 0xC643, - 55184 - 44032: 0xC8FA, - 55185 - 44032: 0xC644, - 55186 - 44032: 0xC645, - 55187 - 44032: 0xC646, - 55188 - 44032: 0xC647, - 55189 - 44032: 0xC648, - 55190 - 44032: 0xC649, - 55191 - 44032: 0xC64A, - 55192 - 44032: 0xC8FB, - 55193 - 44032: 0xC8FC, - 55194 - 44032: 0xC64B, - 55195 - 44032: 0xC8FD, - 55196 - 44032: 0xC64C, - 55197 - 44032: 0xC8FE, - 55198 - 44032: 0xC64D, - 55199 - 44032: 0xC64E, - 55200 - 44032: 0xC64F, - 55201 - 44032: 0xC650, - 55202 - 44032: 0xC651, - 55203 - 44032: 0xC652, -} - -const encode2Low, encode2High = 8213, 9838 - -var encode2 = [...]uint16{ - 8213 - 8213: 0xA1AA, - 8216 - 8213: 0xA1AE, - 8217 - 8213: 0xA1AF, - 8220 - 8213: 0xA1B0, - 8221 - 8213: 0xA1B1, - 8224 - 8213: 0xA2D3, - 8225 - 8213: 0xA2D4, - 8229 - 8213: 0xA1A5, - 8230 - 8213: 0xA1A6, - 8240 - 8213: 0xA2B6, - 8242 - 8213: 0xA1C7, - 8243 - 8213: 0xA1C8, - 8251 - 8213: 0xA1D8, - 8308 - 8213: 0xA9F9, - 8319 - 8213: 0xA9FA, - 8321 - 8213: 0xA9FB, - 8322 - 8213: 0xA9FC, - 8323 - 8213: 0xA9FD, - 8324 - 8213: 0xA9FE, - 8364 - 8213: 0xA2E6, - 8451 - 8213: 0xA1C9, - 8457 - 8213: 0xA2B5, - 8467 - 8213: 0xA7A4, - 8470 - 8213: 0xA2E0, - 8481 - 8213: 0xA2E5, - 8482 - 8213: 0xA2E2, - 8486 - 8213: 0xA7D9, - 8491 - 8213: 0xA1CA, - 8531 - 8213: 0xA8F7, - 8532 - 8213: 0xA8F8, - 8539 - 8213: 0xA8FB, - 8540 - 8213: 0xA8FC, - 8541 - 8213: 0xA8FD, - 8542 - 8213: 0xA8FE, - 8544 - 8213: 0xA5B0, - 8545 - 8213: 0xA5B1, - 8546 - 8213: 0xA5B2, - 8547 - 8213: 0xA5B3, - 8548 - 8213: 0xA5B4, - 8549 - 8213: 0xA5B5, - 8550 - 8213: 0xA5B6, - 8551 - 8213: 0xA5B7, - 8552 - 8213: 0xA5B8, - 8553 - 8213: 0xA5B9, - 8560 - 8213: 0xA5A1, - 8561 - 8213: 0xA5A2, - 8562 - 8213: 0xA5A3, - 8563 - 8213: 0xA5A4, - 8564 - 8213: 0xA5A5, - 8565 - 8213: 0xA5A6, - 8566 - 8213: 0xA5A7, - 8567 - 8213: 0xA5A8, - 8568 - 8213: 0xA5A9, - 8569 - 8213: 0xA5AA, - 8592 - 8213: 0xA1E7, - 8593 - 8213: 0xA1E8, - 8594 - 8213: 0xA1E6, - 8595 - 8213: 0xA1E9, - 8596 - 8213: 0xA1EA, - 8597 - 8213: 0xA2D5, - 8598 - 8213: 0xA2D8, - 8599 - 8213: 0xA2D6, - 8600 - 8213: 0xA2D9, - 8601 - 8213: 0xA2D7, - 8658 - 8213: 0xA2A1, - 8660 - 8213: 0xA2A2, - 8704 - 8213: 0xA2A3, - 8706 - 8213: 0xA1D3, - 8707 - 8213: 0xA2A4, - 8711 - 8213: 0xA1D4, - 8712 - 8213: 0xA1F4, - 8715 - 8213: 0xA1F5, - 8719 - 8213: 0xA2B3, - 8721 - 8213: 0xA2B2, - 8730 - 8213: 0xA1EE, - 8733 - 8213: 0xA1F0, - 8734 - 8213: 0xA1C4, - 8736 - 8213: 0xA1D0, - 8741 - 8213: 0xA1AB, - 8743 - 8213: 0xA1FC, - 8744 - 8213: 0xA1FD, - 8745 - 8213: 0xA1FB, - 8746 - 8213: 0xA1FA, - 8747 - 8213: 0xA1F2, - 8748 - 8213: 0xA1F3, - 8750 - 8213: 0xA2B1, - 8756 - 8213: 0xA1C5, - 8757 - 8213: 0xA1F1, - 8764 - 8213: 0xA1AD, - 8765 - 8213: 0xA1EF, - 8786 - 8213: 0xA1D6, - 8800 - 8213: 0xA1C1, - 8801 - 8213: 0xA1D5, - 8804 - 8213: 0xA1C2, - 8805 - 8213: 0xA1C3, - 8810 - 8213: 0xA1EC, - 8811 - 8213: 0xA1ED, - 8834 - 8213: 0xA1F8, - 8835 - 8213: 0xA1F9, - 8838 - 8213: 0xA1F6, - 8839 - 8213: 0xA1F7, - 8857 - 8213: 0xA2C1, - 8869 - 8213: 0xA1D1, - 8978 - 8213: 0xA1D2, - 9312 - 8213: 0xA8E7, - 9313 - 8213: 0xA8E8, - 9314 - 8213: 0xA8E9, - 9315 - 8213: 0xA8EA, - 9316 - 8213: 0xA8EB, - 9317 - 8213: 0xA8EC, - 9318 - 8213: 0xA8ED, - 9319 - 8213: 0xA8EE, - 9320 - 8213: 0xA8EF, - 9321 - 8213: 0xA8F0, - 9322 - 8213: 0xA8F1, - 9323 - 8213: 0xA8F2, - 9324 - 8213: 0xA8F3, - 9325 - 8213: 0xA8F4, - 9326 - 8213: 0xA8F5, - 9332 - 8213: 0xA9E7, - 9333 - 8213: 0xA9E8, - 9334 - 8213: 0xA9E9, - 9335 - 8213: 0xA9EA, - 9336 - 8213: 0xA9EB, - 9337 - 8213: 0xA9EC, - 9338 - 8213: 0xA9ED, - 9339 - 8213: 0xA9EE, - 9340 - 8213: 0xA9EF, - 9341 - 8213: 0xA9F0, - 9342 - 8213: 0xA9F1, - 9343 - 8213: 0xA9F2, - 9344 - 8213: 0xA9F3, - 9345 - 8213: 0xA9F4, - 9346 - 8213: 0xA9F5, - 9372 - 8213: 0xA9CD, - 9373 - 8213: 0xA9CE, - 9374 - 8213: 0xA9CF, - 9375 - 8213: 0xA9D0, - 9376 - 8213: 0xA9D1, - 9377 - 8213: 0xA9D2, - 9378 - 8213: 0xA9D3, - 9379 - 8213: 0xA9D4, - 9380 - 8213: 0xA9D5, - 9381 - 8213: 0xA9D6, - 9382 - 8213: 0xA9D7, - 9383 - 8213: 0xA9D8, - 9384 - 8213: 0xA9D9, - 9385 - 8213: 0xA9DA, - 9386 - 8213: 0xA9DB, - 9387 - 8213: 0xA9DC, - 9388 - 8213: 0xA9DD, - 9389 - 8213: 0xA9DE, - 9390 - 8213: 0xA9DF, - 9391 - 8213: 0xA9E0, - 9392 - 8213: 0xA9E1, - 9393 - 8213: 0xA9E2, - 9394 - 8213: 0xA9E3, - 9395 - 8213: 0xA9E4, - 9396 - 8213: 0xA9E5, - 9397 - 8213: 0xA9E6, - 9424 - 8213: 0xA8CD, - 9425 - 8213: 0xA8CE, - 9426 - 8213: 0xA8CF, - 9427 - 8213: 0xA8D0, - 9428 - 8213: 0xA8D1, - 9429 - 8213: 0xA8D2, - 9430 - 8213: 0xA8D3, - 9431 - 8213: 0xA8D4, - 9432 - 8213: 0xA8D5, - 9433 - 8213: 0xA8D6, - 9434 - 8213: 0xA8D7, - 9435 - 8213: 0xA8D8, - 9436 - 8213: 0xA8D9, - 9437 - 8213: 0xA8DA, - 9438 - 8213: 0xA8DB, - 9439 - 8213: 0xA8DC, - 9440 - 8213: 0xA8DD, - 9441 - 8213: 0xA8DE, - 9442 - 8213: 0xA8DF, - 9443 - 8213: 0xA8E0, - 9444 - 8213: 0xA8E1, - 9445 - 8213: 0xA8E2, - 9446 - 8213: 0xA8E3, - 9447 - 8213: 0xA8E4, - 9448 - 8213: 0xA8E5, - 9449 - 8213: 0xA8E6, - 9472 - 8213: 0xA6A1, - 9473 - 8213: 0xA6AC, - 9474 - 8213: 0xA6A2, - 9475 - 8213: 0xA6AD, - 9484 - 8213: 0xA6A3, - 9485 - 8213: 0xA6C8, - 9486 - 8213: 0xA6C7, - 9487 - 8213: 0xA6AE, - 9488 - 8213: 0xA6A4, - 9489 - 8213: 0xA6C2, - 9490 - 8213: 0xA6C1, - 9491 - 8213: 0xA6AF, - 9492 - 8213: 0xA6A6, - 9493 - 8213: 0xA6C6, - 9494 - 8213: 0xA6C5, - 9495 - 8213: 0xA6B1, - 9496 - 8213: 0xA6A5, - 9497 - 8213: 0xA6C4, - 9498 - 8213: 0xA6C3, - 9499 - 8213: 0xA6B0, - 9500 - 8213: 0xA6A7, - 9501 - 8213: 0xA6BC, - 9502 - 8213: 0xA6C9, - 9503 - 8213: 0xA6CA, - 9504 - 8213: 0xA6B7, - 9505 - 8213: 0xA6CB, - 9506 - 8213: 0xA6CC, - 9507 - 8213: 0xA6B2, - 9508 - 8213: 0xA6A9, - 9509 - 8213: 0xA6BE, - 9510 - 8213: 0xA6CD, - 9511 - 8213: 0xA6CE, - 9512 - 8213: 0xA6B9, - 9513 - 8213: 0xA6CF, - 9514 - 8213: 0xA6D0, - 9515 - 8213: 0xA6B4, - 9516 - 8213: 0xA6A8, - 9517 - 8213: 0xA6D1, - 9518 - 8213: 0xA6D2, - 9519 - 8213: 0xA6B8, - 9520 - 8213: 0xA6BD, - 9521 - 8213: 0xA6D3, - 9522 - 8213: 0xA6D4, - 9523 - 8213: 0xA6B3, - 9524 - 8213: 0xA6AA, - 9525 - 8213: 0xA6D5, - 9526 - 8213: 0xA6D6, - 9527 - 8213: 0xA6BA, - 9528 - 8213: 0xA6BF, - 9529 - 8213: 0xA6D7, - 9530 - 8213: 0xA6D8, - 9531 - 8213: 0xA6B5, - 9532 - 8213: 0xA6AB, - 9533 - 8213: 0xA6D9, - 9534 - 8213: 0xA6DA, - 9535 - 8213: 0xA6BB, - 9536 - 8213: 0xA6DB, - 9537 - 8213: 0xA6DC, - 9538 - 8213: 0xA6C0, - 9539 - 8213: 0xA6DD, - 9540 - 8213: 0xA6DE, - 9541 - 8213: 0xA6DF, - 9542 - 8213: 0xA6E0, - 9543 - 8213: 0xA6E1, - 9544 - 8213: 0xA6E2, - 9545 - 8213: 0xA6E3, - 9546 - 8213: 0xA6E4, - 9547 - 8213: 0xA6B6, - 9618 - 8213: 0xA2C6, - 9632 - 8213: 0xA1E1, - 9633 - 8213: 0xA1E0, - 9635 - 8213: 0xA2C3, - 9636 - 8213: 0xA2C7, - 9637 - 8213: 0xA2C8, - 9638 - 8213: 0xA2CB, - 9639 - 8213: 0xA2CA, - 9640 - 8213: 0xA2C9, - 9641 - 8213: 0xA2CC, - 9650 - 8213: 0xA1E3, - 9651 - 8213: 0xA1E2, - 9654 - 8213: 0xA2BA, - 9655 - 8213: 0xA2B9, - 9660 - 8213: 0xA1E5, - 9661 - 8213: 0xA1E4, - 9664 - 8213: 0xA2B8, - 9665 - 8213: 0xA2B7, - 9670 - 8213: 0xA1DF, - 9671 - 8213: 0xA1DE, - 9672 - 8213: 0xA2C2, - 9675 - 8213: 0xA1DB, - 9678 - 8213: 0xA1DD, - 9679 - 8213: 0xA1DC, - 9680 - 8213: 0xA2C4, - 9681 - 8213: 0xA2C5, - 9733 - 8213: 0xA1DA, - 9734 - 8213: 0xA1D9, - 9742 - 8213: 0xA2CF, - 9743 - 8213: 0xA2CE, - 9756 - 8213: 0xA2D0, - 9758 - 8213: 0xA2D1, - 9792 - 8213: 0xA1CF, - 9794 - 8213: 0xA1CE, - 9824 - 8213: 0xA2BC, - 9825 - 8213: 0xA2BD, - 9827 - 8213: 0xA2C0, - 9828 - 8213: 0xA2BB, - 9829 - 8213: 0xA2BE, - 9831 - 8213: 0xA2BF, - 9832 - 8213: 0xA2CD, - 9833 - 8213: 0xA2DB, - 9834 - 8213: 0xA2DC, - 9836 - 8213: 0xA2DD, - 9837 - 8213: 0xA2DA, -} - -const encode3Low, encode3High = 12288, 13278 - -var encode3 = [...]uint16{ - 12288 - 12288: 0xA1A1, - 12289 - 12288: 0xA1A2, - 12290 - 12288: 0xA1A3, - 12291 - 12288: 0xA1A8, - 12296 - 12288: 0xA1B4, - 12297 - 12288: 0xA1B5, - 12298 - 12288: 0xA1B6, - 12299 - 12288: 0xA1B7, - 12300 - 12288: 0xA1B8, - 12301 - 12288: 0xA1B9, - 12302 - 12288: 0xA1BA, - 12303 - 12288: 0xA1BB, - 12304 - 12288: 0xA1BC, - 12305 - 12288: 0xA1BD, - 12307 - 12288: 0xA1EB, - 12308 - 12288: 0xA1B2, - 12309 - 12288: 0xA1B3, - 12353 - 12288: 0xAAA1, - 12354 - 12288: 0xAAA2, - 12355 - 12288: 0xAAA3, - 12356 - 12288: 0xAAA4, - 12357 - 12288: 0xAAA5, - 12358 - 12288: 0xAAA6, - 12359 - 12288: 0xAAA7, - 12360 - 12288: 0xAAA8, - 12361 - 12288: 0xAAA9, - 12362 - 12288: 0xAAAA, - 12363 - 12288: 0xAAAB, - 12364 - 12288: 0xAAAC, - 12365 - 12288: 0xAAAD, - 12366 - 12288: 0xAAAE, - 12367 - 12288: 0xAAAF, - 12368 - 12288: 0xAAB0, - 12369 - 12288: 0xAAB1, - 12370 - 12288: 0xAAB2, - 12371 - 12288: 0xAAB3, - 12372 - 12288: 0xAAB4, - 12373 - 12288: 0xAAB5, - 12374 - 12288: 0xAAB6, - 12375 - 12288: 0xAAB7, - 12376 - 12288: 0xAAB8, - 12377 - 12288: 0xAAB9, - 12378 - 12288: 0xAABA, - 12379 - 12288: 0xAABB, - 12380 - 12288: 0xAABC, - 12381 - 12288: 0xAABD, - 12382 - 12288: 0xAABE, - 12383 - 12288: 0xAABF, - 12384 - 12288: 0xAAC0, - 12385 - 12288: 0xAAC1, - 12386 - 12288: 0xAAC2, - 12387 - 12288: 0xAAC3, - 12388 - 12288: 0xAAC4, - 12389 - 12288: 0xAAC5, - 12390 - 12288: 0xAAC6, - 12391 - 12288: 0xAAC7, - 12392 - 12288: 0xAAC8, - 12393 - 12288: 0xAAC9, - 12394 - 12288: 0xAACA, - 12395 - 12288: 0xAACB, - 12396 - 12288: 0xAACC, - 12397 - 12288: 0xAACD, - 12398 - 12288: 0xAACE, - 12399 - 12288: 0xAACF, - 12400 - 12288: 0xAAD0, - 12401 - 12288: 0xAAD1, - 12402 - 12288: 0xAAD2, - 12403 - 12288: 0xAAD3, - 12404 - 12288: 0xAAD4, - 12405 - 12288: 0xAAD5, - 12406 - 12288: 0xAAD6, - 12407 - 12288: 0xAAD7, - 12408 - 12288: 0xAAD8, - 12409 - 12288: 0xAAD9, - 12410 - 12288: 0xAADA, - 12411 - 12288: 0xAADB, - 12412 - 12288: 0xAADC, - 12413 - 12288: 0xAADD, - 12414 - 12288: 0xAADE, - 12415 - 12288: 0xAADF, - 12416 - 12288: 0xAAE0, - 12417 - 12288: 0xAAE1, - 12418 - 12288: 0xAAE2, - 12419 - 12288: 0xAAE3, - 12420 - 12288: 0xAAE4, - 12421 - 12288: 0xAAE5, - 12422 - 12288: 0xAAE6, - 12423 - 12288: 0xAAE7, - 12424 - 12288: 0xAAE8, - 12425 - 12288: 0xAAE9, - 12426 - 12288: 0xAAEA, - 12427 - 12288: 0xAAEB, - 12428 - 12288: 0xAAEC, - 12429 - 12288: 0xAAED, - 12430 - 12288: 0xAAEE, - 12431 - 12288: 0xAAEF, - 12432 - 12288: 0xAAF0, - 12433 - 12288: 0xAAF1, - 12434 - 12288: 0xAAF2, - 12435 - 12288: 0xAAF3, - 12449 - 12288: 0xABA1, - 12450 - 12288: 0xABA2, - 12451 - 12288: 0xABA3, - 12452 - 12288: 0xABA4, - 12453 - 12288: 0xABA5, - 12454 - 12288: 0xABA6, - 12455 - 12288: 0xABA7, - 12456 - 12288: 0xABA8, - 12457 - 12288: 0xABA9, - 12458 - 12288: 0xABAA, - 12459 - 12288: 0xABAB, - 12460 - 12288: 0xABAC, - 12461 - 12288: 0xABAD, - 12462 - 12288: 0xABAE, - 12463 - 12288: 0xABAF, - 12464 - 12288: 0xABB0, - 12465 - 12288: 0xABB1, - 12466 - 12288: 0xABB2, - 12467 - 12288: 0xABB3, - 12468 - 12288: 0xABB4, - 12469 - 12288: 0xABB5, - 12470 - 12288: 0xABB6, - 12471 - 12288: 0xABB7, - 12472 - 12288: 0xABB8, - 12473 - 12288: 0xABB9, - 12474 - 12288: 0xABBA, - 12475 - 12288: 0xABBB, - 12476 - 12288: 0xABBC, - 12477 - 12288: 0xABBD, - 12478 - 12288: 0xABBE, - 12479 - 12288: 0xABBF, - 12480 - 12288: 0xABC0, - 12481 - 12288: 0xABC1, - 12482 - 12288: 0xABC2, - 12483 - 12288: 0xABC3, - 12484 - 12288: 0xABC4, - 12485 - 12288: 0xABC5, - 12486 - 12288: 0xABC6, - 12487 - 12288: 0xABC7, - 12488 - 12288: 0xABC8, - 12489 - 12288: 0xABC9, - 12490 - 12288: 0xABCA, - 12491 - 12288: 0xABCB, - 12492 - 12288: 0xABCC, - 12493 - 12288: 0xABCD, - 12494 - 12288: 0xABCE, - 12495 - 12288: 0xABCF, - 12496 - 12288: 0xABD0, - 12497 - 12288: 0xABD1, - 12498 - 12288: 0xABD2, - 12499 - 12288: 0xABD3, - 12500 - 12288: 0xABD4, - 12501 - 12288: 0xABD5, - 12502 - 12288: 0xABD6, - 12503 - 12288: 0xABD7, - 12504 - 12288: 0xABD8, - 12505 - 12288: 0xABD9, - 12506 - 12288: 0xABDA, - 12507 - 12288: 0xABDB, - 12508 - 12288: 0xABDC, - 12509 - 12288: 0xABDD, - 12510 - 12288: 0xABDE, - 12511 - 12288: 0xABDF, - 12512 - 12288: 0xABE0, - 12513 - 12288: 0xABE1, - 12514 - 12288: 0xABE2, - 12515 - 12288: 0xABE3, - 12516 - 12288: 0xABE4, - 12517 - 12288: 0xABE5, - 12518 - 12288: 0xABE6, - 12519 - 12288: 0xABE7, - 12520 - 12288: 0xABE8, - 12521 - 12288: 0xABE9, - 12522 - 12288: 0xABEA, - 12523 - 12288: 0xABEB, - 12524 - 12288: 0xABEC, - 12525 - 12288: 0xABED, - 12526 - 12288: 0xABEE, - 12527 - 12288: 0xABEF, - 12528 - 12288: 0xABF0, - 12529 - 12288: 0xABF1, - 12530 - 12288: 0xABF2, - 12531 - 12288: 0xABF3, - 12532 - 12288: 0xABF4, - 12533 - 12288: 0xABF5, - 12534 - 12288: 0xABF6, - 12593 - 12288: 0xA4A1, - 12594 - 12288: 0xA4A2, - 12595 - 12288: 0xA4A3, - 12596 - 12288: 0xA4A4, - 12597 - 12288: 0xA4A5, - 12598 - 12288: 0xA4A6, - 12599 - 12288: 0xA4A7, - 12600 - 12288: 0xA4A8, - 12601 - 12288: 0xA4A9, - 12602 - 12288: 0xA4AA, - 12603 - 12288: 0xA4AB, - 12604 - 12288: 0xA4AC, - 12605 - 12288: 0xA4AD, - 12606 - 12288: 0xA4AE, - 12607 - 12288: 0xA4AF, - 12608 - 12288: 0xA4B0, - 12609 - 12288: 0xA4B1, - 12610 - 12288: 0xA4B2, - 12611 - 12288: 0xA4B3, - 12612 - 12288: 0xA4B4, - 12613 - 12288: 0xA4B5, - 12614 - 12288: 0xA4B6, - 12615 - 12288: 0xA4B7, - 12616 - 12288: 0xA4B8, - 12617 - 12288: 0xA4B9, - 12618 - 12288: 0xA4BA, - 12619 - 12288: 0xA4BB, - 12620 - 12288: 0xA4BC, - 12621 - 12288: 0xA4BD, - 12622 - 12288: 0xA4BE, - 12623 - 12288: 0xA4BF, - 12624 - 12288: 0xA4C0, - 12625 - 12288: 0xA4C1, - 12626 - 12288: 0xA4C2, - 12627 - 12288: 0xA4C3, - 12628 - 12288: 0xA4C4, - 12629 - 12288: 0xA4C5, - 12630 - 12288: 0xA4C6, - 12631 - 12288: 0xA4C7, - 12632 - 12288: 0xA4C8, - 12633 - 12288: 0xA4C9, - 12634 - 12288: 0xA4CA, - 12635 - 12288: 0xA4CB, - 12636 - 12288: 0xA4CC, - 12637 - 12288: 0xA4CD, - 12638 - 12288: 0xA4CE, - 12639 - 12288: 0xA4CF, - 12640 - 12288: 0xA4D0, - 12641 - 12288: 0xA4D1, - 12642 - 12288: 0xA4D2, - 12643 - 12288: 0xA4D3, - 12644 - 12288: 0xA4D4, - 12645 - 12288: 0xA4D5, - 12646 - 12288: 0xA4D6, - 12647 - 12288: 0xA4D7, - 12648 - 12288: 0xA4D8, - 12649 - 12288: 0xA4D9, - 12650 - 12288: 0xA4DA, - 12651 - 12288: 0xA4DB, - 12652 - 12288: 0xA4DC, - 12653 - 12288: 0xA4DD, - 12654 - 12288: 0xA4DE, - 12655 - 12288: 0xA4DF, - 12656 - 12288: 0xA4E0, - 12657 - 12288: 0xA4E1, - 12658 - 12288: 0xA4E2, - 12659 - 12288: 0xA4E3, - 12660 - 12288: 0xA4E4, - 12661 - 12288: 0xA4E5, - 12662 - 12288: 0xA4E6, - 12663 - 12288: 0xA4E7, - 12664 - 12288: 0xA4E8, - 12665 - 12288: 0xA4E9, - 12666 - 12288: 0xA4EA, - 12667 - 12288: 0xA4EB, - 12668 - 12288: 0xA4EC, - 12669 - 12288: 0xA4ED, - 12670 - 12288: 0xA4EE, - 12671 - 12288: 0xA4EF, - 12672 - 12288: 0xA4F0, - 12673 - 12288: 0xA4F1, - 12674 - 12288: 0xA4F2, - 12675 - 12288: 0xA4F3, - 12676 - 12288: 0xA4F4, - 12677 - 12288: 0xA4F5, - 12678 - 12288: 0xA4F6, - 12679 - 12288: 0xA4F7, - 12680 - 12288: 0xA4F8, - 12681 - 12288: 0xA4F9, - 12682 - 12288: 0xA4FA, - 12683 - 12288: 0xA4FB, - 12684 - 12288: 0xA4FC, - 12685 - 12288: 0xA4FD, - 12686 - 12288: 0xA4FE, - 12800 - 12288: 0xA9B1, - 12801 - 12288: 0xA9B2, - 12802 - 12288: 0xA9B3, - 12803 - 12288: 0xA9B4, - 12804 - 12288: 0xA9B5, - 12805 - 12288: 0xA9B6, - 12806 - 12288: 0xA9B7, - 12807 - 12288: 0xA9B8, - 12808 - 12288: 0xA9B9, - 12809 - 12288: 0xA9BA, - 12810 - 12288: 0xA9BB, - 12811 - 12288: 0xA9BC, - 12812 - 12288: 0xA9BD, - 12813 - 12288: 0xA9BE, - 12814 - 12288: 0xA9BF, - 12815 - 12288: 0xA9C0, - 12816 - 12288: 0xA9C1, - 12817 - 12288: 0xA9C2, - 12818 - 12288: 0xA9C3, - 12819 - 12288: 0xA9C4, - 12820 - 12288: 0xA9C5, - 12821 - 12288: 0xA9C6, - 12822 - 12288: 0xA9C7, - 12823 - 12288: 0xA9C8, - 12824 - 12288: 0xA9C9, - 12825 - 12288: 0xA9CA, - 12826 - 12288: 0xA9CB, - 12827 - 12288: 0xA9CC, - 12828 - 12288: 0xA2DF, - 12896 - 12288: 0xA8B1, - 12897 - 12288: 0xA8B2, - 12898 - 12288: 0xA8B3, - 12899 - 12288: 0xA8B4, - 12900 - 12288: 0xA8B5, - 12901 - 12288: 0xA8B6, - 12902 - 12288: 0xA8B7, - 12903 - 12288: 0xA8B8, - 12904 - 12288: 0xA8B9, - 12905 - 12288: 0xA8BA, - 12906 - 12288: 0xA8BB, - 12907 - 12288: 0xA8BC, - 12908 - 12288: 0xA8BD, - 12909 - 12288: 0xA8BE, - 12910 - 12288: 0xA8BF, - 12911 - 12288: 0xA8C0, - 12912 - 12288: 0xA8C1, - 12913 - 12288: 0xA8C2, - 12914 - 12288: 0xA8C3, - 12915 - 12288: 0xA8C4, - 12916 - 12288: 0xA8C5, - 12917 - 12288: 0xA8C6, - 12918 - 12288: 0xA8C7, - 12919 - 12288: 0xA8C8, - 12920 - 12288: 0xA8C9, - 12921 - 12288: 0xA8CA, - 12922 - 12288: 0xA8CB, - 12923 - 12288: 0xA8CC, - 12927 - 12288: 0xA2DE, - 13184 - 12288: 0xA7C9, - 13185 - 12288: 0xA7CA, - 13186 - 12288: 0xA7CB, - 13187 - 12288: 0xA7CC, - 13188 - 12288: 0xA7CD, - 13192 - 12288: 0xA7BA, - 13193 - 12288: 0xA7BB, - 13194 - 12288: 0xA7DC, - 13195 - 12288: 0xA7DD, - 13196 - 12288: 0xA7DE, - 13197 - 12288: 0xA7B6, - 13198 - 12288: 0xA7B7, - 13199 - 12288: 0xA7B8, - 13200 - 12288: 0xA7D4, - 13201 - 12288: 0xA7D5, - 13202 - 12288: 0xA7D6, - 13203 - 12288: 0xA7D7, - 13204 - 12288: 0xA7D8, - 13205 - 12288: 0xA7A1, - 13206 - 12288: 0xA7A2, - 13207 - 12288: 0xA7A3, - 13208 - 12288: 0xA7A5, - 13209 - 12288: 0xA7AB, - 13210 - 12288: 0xA7AC, - 13211 - 12288: 0xA7AD, - 13212 - 12288: 0xA7AE, - 13213 - 12288: 0xA7AF, - 13214 - 12288: 0xA7B0, - 13215 - 12288: 0xA7B1, - 13216 - 12288: 0xA7B2, - 13217 - 12288: 0xA7B3, - 13218 - 12288: 0xA7B4, - 13219 - 12288: 0xA7A7, - 13220 - 12288: 0xA7A8, - 13221 - 12288: 0xA7A9, - 13222 - 12288: 0xA7AA, - 13223 - 12288: 0xA7BD, - 13224 - 12288: 0xA7BE, - 13225 - 12288: 0xA7E5, - 13226 - 12288: 0xA7E6, - 13227 - 12288: 0xA7E7, - 13228 - 12288: 0xA7E8, - 13229 - 12288: 0xA7E1, - 13230 - 12288: 0xA7E2, - 13231 - 12288: 0xA7E3, - 13232 - 12288: 0xA7BF, - 13233 - 12288: 0xA7C0, - 13234 - 12288: 0xA7C1, - 13235 - 12288: 0xA7C2, - 13236 - 12288: 0xA7C3, - 13237 - 12288: 0xA7C4, - 13238 - 12288: 0xA7C5, - 13239 - 12288: 0xA7C6, - 13240 - 12288: 0xA7C7, - 13241 - 12288: 0xA7C8, - 13242 - 12288: 0xA7CE, - 13243 - 12288: 0xA7CF, - 13244 - 12288: 0xA7D0, - 13245 - 12288: 0xA7D1, - 13246 - 12288: 0xA7D2, - 13247 - 12288: 0xA7D3, - 13248 - 12288: 0xA7DA, - 13249 - 12288: 0xA7DB, - 13250 - 12288: 0xA2E3, - 13251 - 12288: 0xA7EC, - 13252 - 12288: 0xA7A6, - 13253 - 12288: 0xA7E0, - 13254 - 12288: 0xA7EF, - 13255 - 12288: 0xA2E1, - 13256 - 12288: 0xA7BC, - 13257 - 12288: 0xA7ED, - 13258 - 12288: 0xA7B5, - 13263 - 12288: 0xA7B9, - 13264 - 12288: 0xA7EA, - 13267 - 12288: 0xA7EB, - 13270 - 12288: 0xA7DF, - 13272 - 12288: 0xA2E4, - 13275 - 12288: 0xA7E4, - 13276 - 12288: 0xA7EE, - 13277 - 12288: 0xA7E9, -} - -const encode4Low, encode4High = 161, 1106 - -var encode4 = [...]uint16{ - 161 - 161: 0xA2AE, - 164 - 161: 0xA2B4, - 167 - 161: 0xA1D7, - 168 - 161: 0xA1A7, - 170 - 161: 0xA8A3, - 173 - 161: 0xA1A9, - 174 - 161: 0xA2E7, - 176 - 161: 0xA1C6, - 177 - 161: 0xA1BE, - 178 - 161: 0xA9F7, - 179 - 161: 0xA9F8, - 180 - 161: 0xA2A5, - 182 - 161: 0xA2D2, - 183 - 161: 0xA1A4, - 184 - 161: 0xA2AC, - 185 - 161: 0xA9F6, - 186 - 161: 0xA8AC, - 188 - 161: 0xA8F9, - 189 - 161: 0xA8F6, - 190 - 161: 0xA8FA, - 191 - 161: 0xA2AF, - 198 - 161: 0xA8A1, - 208 - 161: 0xA8A2, - 215 - 161: 0xA1BF, - 216 - 161: 0xA8AA, - 222 - 161: 0xA8AD, - 223 - 161: 0xA9AC, - 230 - 161: 0xA9A1, - 240 - 161: 0xA9A3, - 247 - 161: 0xA1C0, - 248 - 161: 0xA9AA, - 254 - 161: 0xA9AD, - 273 - 161: 0xA9A2, - 294 - 161: 0xA8A4, - 295 - 161: 0xA9A4, - 305 - 161: 0xA9A5, - 306 - 161: 0xA8A6, - 307 - 161: 0xA9A6, - 312 - 161: 0xA9A7, - 319 - 161: 0xA8A8, - 320 - 161: 0xA9A8, - 321 - 161: 0xA8A9, - 322 - 161: 0xA9A9, - 329 - 161: 0xA9B0, - 330 - 161: 0xA8AF, - 331 - 161: 0xA9AF, - 338 - 161: 0xA8AB, - 339 - 161: 0xA9AB, - 358 - 161: 0xA8AE, - 359 - 161: 0xA9AE, - 711 - 161: 0xA2A7, - 720 - 161: 0xA2B0, - 728 - 161: 0xA2A8, - 729 - 161: 0xA2AB, - 730 - 161: 0xA2AA, - 731 - 161: 0xA2AD, - 733 - 161: 0xA2A9, - 913 - 161: 0xA5C1, - 914 - 161: 0xA5C2, - 915 - 161: 0xA5C3, - 916 - 161: 0xA5C4, - 917 - 161: 0xA5C5, - 918 - 161: 0xA5C6, - 919 - 161: 0xA5C7, - 920 - 161: 0xA5C8, - 921 - 161: 0xA5C9, - 922 - 161: 0xA5CA, - 923 - 161: 0xA5CB, - 924 - 161: 0xA5CC, - 925 - 161: 0xA5CD, - 926 - 161: 0xA5CE, - 927 - 161: 0xA5CF, - 928 - 161: 0xA5D0, - 929 - 161: 0xA5D1, - 931 - 161: 0xA5D2, - 932 - 161: 0xA5D3, - 933 - 161: 0xA5D4, - 934 - 161: 0xA5D5, - 935 - 161: 0xA5D6, - 936 - 161: 0xA5D7, - 937 - 161: 0xA5D8, - 945 - 161: 0xA5E1, - 946 - 161: 0xA5E2, - 947 - 161: 0xA5E3, - 948 - 161: 0xA5E4, - 949 - 161: 0xA5E5, - 950 - 161: 0xA5E6, - 951 - 161: 0xA5E7, - 952 - 161: 0xA5E8, - 953 - 161: 0xA5E9, - 954 - 161: 0xA5EA, - 955 - 161: 0xA5EB, - 956 - 161: 0xA5EC, - 957 - 161: 0xA5ED, - 958 - 161: 0xA5EE, - 959 - 161: 0xA5EF, - 960 - 161: 0xA5F0, - 961 - 161: 0xA5F1, - 963 - 161: 0xA5F2, - 964 - 161: 0xA5F3, - 965 - 161: 0xA5F4, - 966 - 161: 0xA5F5, - 967 - 161: 0xA5F6, - 968 - 161: 0xA5F7, - 969 - 161: 0xA5F8, - 1025 - 161: 0xACA7, - 1040 - 161: 0xACA1, - 1041 - 161: 0xACA2, - 1042 - 161: 0xACA3, - 1043 - 161: 0xACA4, - 1044 - 161: 0xACA5, - 1045 - 161: 0xACA6, - 1046 - 161: 0xACA8, - 1047 - 161: 0xACA9, - 1048 - 161: 0xACAA, - 1049 - 161: 0xACAB, - 1050 - 161: 0xACAC, - 1051 - 161: 0xACAD, - 1052 - 161: 0xACAE, - 1053 - 161: 0xACAF, - 1054 - 161: 0xACB0, - 1055 - 161: 0xACB1, - 1056 - 161: 0xACB2, - 1057 - 161: 0xACB3, - 1058 - 161: 0xACB4, - 1059 - 161: 0xACB5, - 1060 - 161: 0xACB6, - 1061 - 161: 0xACB7, - 1062 - 161: 0xACB8, - 1063 - 161: 0xACB9, - 1064 - 161: 0xACBA, - 1065 - 161: 0xACBB, - 1066 - 161: 0xACBC, - 1067 - 161: 0xACBD, - 1068 - 161: 0xACBE, - 1069 - 161: 0xACBF, - 1070 - 161: 0xACC0, - 1071 - 161: 0xACC1, - 1072 - 161: 0xACD1, - 1073 - 161: 0xACD2, - 1074 - 161: 0xACD3, - 1075 - 161: 0xACD4, - 1076 - 161: 0xACD5, - 1077 - 161: 0xACD6, - 1078 - 161: 0xACD8, - 1079 - 161: 0xACD9, - 1080 - 161: 0xACDA, - 1081 - 161: 0xACDB, - 1082 - 161: 0xACDC, - 1083 - 161: 0xACDD, - 1084 - 161: 0xACDE, - 1085 - 161: 0xACDF, - 1086 - 161: 0xACE0, - 1087 - 161: 0xACE1, - 1088 - 161: 0xACE2, - 1089 - 161: 0xACE3, - 1090 - 161: 0xACE4, - 1091 - 161: 0xACE5, - 1092 - 161: 0xACE6, - 1093 - 161: 0xACE7, - 1094 - 161: 0xACE8, - 1095 - 161: 0xACE9, - 1096 - 161: 0xACEA, - 1097 - 161: 0xACEB, - 1098 - 161: 0xACEC, - 1099 - 161: 0xACED, - 1100 - 161: 0xACEE, - 1101 - 161: 0xACEF, - 1102 - 161: 0xACF0, - 1103 - 161: 0xACF1, - 1105 - 161: 0xACD7, -} - -const encode5Low, encode5High = 63744, 64012 - -var encode5 = [...]uint16{ - 63744 - 63744: 0xCBD0, - 63745 - 63744: 0xCBD6, - 63746 - 63744: 0xCBE7, - 63747 - 63744: 0xCDCF, - 63748 - 63744: 0xCDE8, - 63749 - 63744: 0xCEAD, - 63750 - 63744: 0xCFFB, - 63751 - 63744: 0xD0A2, - 63752 - 63744: 0xD0B8, - 63753 - 63744: 0xD0D0, - 63754 - 63744: 0xD0DD, - 63755 - 63744: 0xD1D4, - 63756 - 63744: 0xD1D5, - 63757 - 63744: 0xD1D8, - 63758 - 63744: 0xD1DB, - 63759 - 63744: 0xD1DC, - 63760 - 63744: 0xD1DD, - 63761 - 63744: 0xD1DE, - 63762 - 63744: 0xD1DF, - 63763 - 63744: 0xD1E0, - 63764 - 63744: 0xD1E2, - 63765 - 63744: 0xD1E3, - 63766 - 63744: 0xD1E4, - 63767 - 63744: 0xD1E5, - 63768 - 63744: 0xD1E6, - 63769 - 63744: 0xD1E8, - 63770 - 63744: 0xD1E9, - 63771 - 63744: 0xD1EA, - 63772 - 63744: 0xD1EB, - 63773 - 63744: 0xD1ED, - 63774 - 63744: 0xD1EF, - 63775 - 63744: 0xD1F0, - 63776 - 63744: 0xD1F2, - 63777 - 63744: 0xD1F6, - 63778 - 63744: 0xD1FA, - 63779 - 63744: 0xD1FC, - 63780 - 63744: 0xD1FD, - 63781 - 63744: 0xD1FE, - 63782 - 63744: 0xD2A2, - 63783 - 63744: 0xD2A3, - 63784 - 63744: 0xD2A7, - 63785 - 63744: 0xD2A8, - 63786 - 63744: 0xD2A9, - 63787 - 63744: 0xD2AA, - 63788 - 63744: 0xD2AB, - 63789 - 63744: 0xD2AD, - 63790 - 63744: 0xD2B2, - 63791 - 63744: 0xD2BE, - 63792 - 63744: 0xD2C2, - 63793 - 63744: 0xD2C3, - 63794 - 63744: 0xD2C4, - 63795 - 63744: 0xD2C6, - 63796 - 63744: 0xD2C7, - 63797 - 63744: 0xD2C8, - 63798 - 63744: 0xD2C9, - 63799 - 63744: 0xD2CA, - 63800 - 63744: 0xD2CB, - 63801 - 63744: 0xD2CD, - 63802 - 63744: 0xD2CE, - 63803 - 63744: 0xD2CF, - 63804 - 63744: 0xD2D0, - 63805 - 63744: 0xD2D1, - 63806 - 63744: 0xD2D2, - 63807 - 63744: 0xD2D3, - 63808 - 63744: 0xD2D4, - 63809 - 63744: 0xD2D5, - 63810 - 63744: 0xD2D6, - 63811 - 63744: 0xD2D7, - 63812 - 63744: 0xD2D9, - 63813 - 63744: 0xD2DA, - 63814 - 63744: 0xD2DE, - 63815 - 63744: 0xD2DF, - 63816 - 63744: 0xD2E1, - 63817 - 63744: 0xD2E2, - 63818 - 63744: 0xD2E4, - 63819 - 63744: 0xD2E5, - 63820 - 63744: 0xD2E6, - 63821 - 63744: 0xD2E7, - 63822 - 63744: 0xD2E8, - 63823 - 63744: 0xD2E9, - 63824 - 63744: 0xD2EA, - 63825 - 63744: 0xD2EB, - 63826 - 63744: 0xD2F0, - 63827 - 63744: 0xD2F1, - 63828 - 63744: 0xD2F2, - 63829 - 63744: 0xD2F3, - 63830 - 63744: 0xD2F4, - 63831 - 63744: 0xD2F5, - 63832 - 63744: 0xD2F7, - 63833 - 63744: 0xD2F8, - 63834 - 63744: 0xD4E6, - 63835 - 63744: 0xD4FC, - 63836 - 63744: 0xD5A5, - 63837 - 63744: 0xD5AB, - 63838 - 63744: 0xD5AE, - 63839 - 63744: 0xD6B8, - 63840 - 63744: 0xD6CD, - 63841 - 63744: 0xD7CB, - 63842 - 63744: 0xD7E4, - 63843 - 63744: 0xDBC5, - 63844 - 63744: 0xDBE4, - 63845 - 63744: 0xDCA5, - 63846 - 63744: 0xDDA5, - 63847 - 63744: 0xDDD5, - 63848 - 63744: 0xDDF4, - 63849 - 63744: 0xDEFC, - 63850 - 63744: 0xDEFE, - 63851 - 63744: 0xDFB3, - 63852 - 63744: 0xDFE1, - 63853 - 63744: 0xDFE8, - 63854 - 63744: 0xE0F1, - 63855 - 63744: 0xE1AD, - 63856 - 63744: 0xE1ED, - 63857 - 63744: 0xE3F5, - 63858 - 63744: 0xE4A1, - 63859 - 63744: 0xE4A9, - 63860 - 63744: 0xE5AE, - 63861 - 63744: 0xE5B1, - 63862 - 63744: 0xE5B2, - 63863 - 63744: 0xE5B9, - 63864 - 63744: 0xE5BB, - 63865 - 63744: 0xE5BC, - 63866 - 63744: 0xE5C4, - 63867 - 63744: 0xE5CE, - 63868 - 63744: 0xE5D0, - 63869 - 63744: 0xE5D2, - 63870 - 63744: 0xE5D6, - 63871 - 63744: 0xE5FA, - 63872 - 63744: 0xE5FB, - 63873 - 63744: 0xE5FC, - 63874 - 63744: 0xE5FE, - 63875 - 63744: 0xE6A1, - 63876 - 63744: 0xE6A4, - 63877 - 63744: 0xE6A7, - 63878 - 63744: 0xE6AD, - 63879 - 63744: 0xE6AF, - 63880 - 63744: 0xE6B0, - 63881 - 63744: 0xE6B1, - 63882 - 63744: 0xE6B3, - 63883 - 63744: 0xE6B7, - 63884 - 63744: 0xE6B8, - 63885 - 63744: 0xE6BC, - 63886 - 63744: 0xE6C4, - 63887 - 63744: 0xE6C6, - 63888 - 63744: 0xE6C7, - 63889 - 63744: 0xE6CA, - 63890 - 63744: 0xE6D2, - 63891 - 63744: 0xE6D6, - 63892 - 63744: 0xE6D9, - 63893 - 63744: 0xE6DC, - 63894 - 63744: 0xE6DF, - 63895 - 63744: 0xE6E1, - 63896 - 63744: 0xE6E4, - 63897 - 63744: 0xE6E5, - 63898 - 63744: 0xE6E6, - 63899 - 63744: 0xE6E8, - 63900 - 63744: 0xE6EA, - 63901 - 63744: 0xE6EB, - 63902 - 63744: 0xE6EC, - 63903 - 63744: 0xE6EF, - 63904 - 63744: 0xE6F1, - 63905 - 63744: 0xE6F2, - 63906 - 63744: 0xE6F5, - 63907 - 63744: 0xE6F6, - 63908 - 63744: 0xE6F7, - 63909 - 63744: 0xE6F9, - 63910 - 63744: 0xE7A1, - 63911 - 63744: 0xE7A6, - 63912 - 63744: 0xE7A9, - 63913 - 63744: 0xE7AA, - 63914 - 63744: 0xE7AC, - 63915 - 63744: 0xE7AD, - 63916 - 63744: 0xE7B0, - 63917 - 63744: 0xE7BF, - 63918 - 63744: 0xE7C1, - 63919 - 63744: 0xE7C6, - 63920 - 63744: 0xE7C7, - 63921 - 63744: 0xE7CB, - 63922 - 63744: 0xE7CD, - 63923 - 63744: 0xE7CF, - 63924 - 63744: 0xE7D0, - 63925 - 63744: 0xE7D3, - 63926 - 63744: 0xE7DF, - 63927 - 63744: 0xE7E4, - 63928 - 63744: 0xE7E6, - 63929 - 63744: 0xE7F7, - 63930 - 63744: 0xE8E7, - 63931 - 63744: 0xE8E8, - 63932 - 63744: 0xE8F0, - 63933 - 63744: 0xE8F1, - 63934 - 63744: 0xE8F7, - 63935 - 63744: 0xE8F9, - 63936 - 63744: 0xE8FB, - 63937 - 63744: 0xE8FE, - 63938 - 63744: 0xE9A7, - 63939 - 63744: 0xE9AC, - 63940 - 63744: 0xE9CC, - 63941 - 63744: 0xE9F7, - 63942 - 63744: 0xEAC1, - 63943 - 63744: 0xEAE5, - 63944 - 63744: 0xEAF4, - 63945 - 63744: 0xEAF7, - 63946 - 63744: 0xEAFC, - 63947 - 63744: 0xEAFE, - 63948 - 63744: 0xEBA4, - 63949 - 63744: 0xEBA7, - 63950 - 63744: 0xEBA9, - 63951 - 63744: 0xEBAA, - 63952 - 63744: 0xEBBA, - 63953 - 63744: 0xEBBB, - 63954 - 63744: 0xEBBD, - 63955 - 63744: 0xEBC1, - 63956 - 63744: 0xEBC2, - 63957 - 63744: 0xEBC6, - 63958 - 63744: 0xEBC7, - 63959 - 63744: 0xEBCC, - 63960 - 63744: 0xEBCF, - 63961 - 63744: 0xEBD0, - 63962 - 63744: 0xEBD1, - 63963 - 63744: 0xEBD2, - 63964 - 63744: 0xEBD8, - 63965 - 63744: 0xECA6, - 63966 - 63744: 0xECA7, - 63967 - 63744: 0xECAA, - 63968 - 63744: 0xECAF, - 63969 - 63744: 0xECB0, - 63970 - 63744: 0xECB1, - 63971 - 63744: 0xECB2, - 63972 - 63744: 0xECB5, - 63973 - 63744: 0xECB8, - 63974 - 63744: 0xECBA, - 63975 - 63744: 0xECC0, - 63976 - 63744: 0xECC1, - 63977 - 63744: 0xECC5, - 63978 - 63744: 0xECC6, - 63979 - 63744: 0xECC9, - 63980 - 63744: 0xECCA, - 63981 - 63744: 0xECD5, - 63982 - 63744: 0xECDD, - 63983 - 63744: 0xECDE, - 63984 - 63744: 0xECE1, - 63985 - 63744: 0xECE4, - 63986 - 63744: 0xECE7, - 63987 - 63744: 0xECE8, - 63988 - 63744: 0xECF7, - 63989 - 63744: 0xECF8, - 63990 - 63744: 0xECFA, - 63991 - 63744: 0xEDA1, - 63992 - 63744: 0xEDA2, - 63993 - 63744: 0xEDA3, - 63994 - 63744: 0xEDEE, - 63995 - 63744: 0xEEDB, - 63996 - 63744: 0xF2BD, - 63997 - 63744: 0xF2FA, - 63998 - 63744: 0xF3B1, - 63999 - 63744: 0xF4A7, - 64000 - 63744: 0xF4EE, - 64001 - 63744: 0xF6F4, - 64002 - 63744: 0xF6F6, - 64003 - 63744: 0xF7B8, - 64004 - 63744: 0xF7C8, - 64005 - 63744: 0xF7D3, - 64006 - 63744: 0xF8DB, - 64007 - 63744: 0xF8F0, - 64008 - 63744: 0xFAA1, - 64009 - 63744: 0xFAA2, - 64010 - 63744: 0xFAE6, - 64011 - 63744: 0xFCA9, -} - -const encode6Low, encode6High = 65281, 65511 - -var encode6 = [...]uint16{ - 65281 - 65281: 0xA3A1, - 65282 - 65281: 0xA3A2, - 65283 - 65281: 0xA3A3, - 65284 - 65281: 0xA3A4, - 65285 - 65281: 0xA3A5, - 65286 - 65281: 0xA3A6, - 65287 - 65281: 0xA3A7, - 65288 - 65281: 0xA3A8, - 65289 - 65281: 0xA3A9, - 65290 - 65281: 0xA3AA, - 65291 - 65281: 0xA3AB, - 65292 - 65281: 0xA3AC, - 65293 - 65281: 0xA3AD, - 65294 - 65281: 0xA3AE, - 65295 - 65281: 0xA3AF, - 65296 - 65281: 0xA3B0, - 65297 - 65281: 0xA3B1, - 65298 - 65281: 0xA3B2, - 65299 - 65281: 0xA3B3, - 65300 - 65281: 0xA3B4, - 65301 - 65281: 0xA3B5, - 65302 - 65281: 0xA3B6, - 65303 - 65281: 0xA3B7, - 65304 - 65281: 0xA3B8, - 65305 - 65281: 0xA3B9, - 65306 - 65281: 0xA3BA, - 65307 - 65281: 0xA3BB, - 65308 - 65281: 0xA3BC, - 65309 - 65281: 0xA3BD, - 65310 - 65281: 0xA3BE, - 65311 - 65281: 0xA3BF, - 65312 - 65281: 0xA3C0, - 65313 - 65281: 0xA3C1, - 65314 - 65281: 0xA3C2, - 65315 - 65281: 0xA3C3, - 65316 - 65281: 0xA3C4, - 65317 - 65281: 0xA3C5, - 65318 - 65281: 0xA3C6, - 65319 - 65281: 0xA3C7, - 65320 - 65281: 0xA3C8, - 65321 - 65281: 0xA3C9, - 65322 - 65281: 0xA3CA, - 65323 - 65281: 0xA3CB, - 65324 - 65281: 0xA3CC, - 65325 - 65281: 0xA3CD, - 65326 - 65281: 0xA3CE, - 65327 - 65281: 0xA3CF, - 65328 - 65281: 0xA3D0, - 65329 - 65281: 0xA3D1, - 65330 - 65281: 0xA3D2, - 65331 - 65281: 0xA3D3, - 65332 - 65281: 0xA3D4, - 65333 - 65281: 0xA3D5, - 65334 - 65281: 0xA3D6, - 65335 - 65281: 0xA3D7, - 65336 - 65281: 0xA3D8, - 65337 - 65281: 0xA3D9, - 65338 - 65281: 0xA3DA, - 65339 - 65281: 0xA3DB, - 65340 - 65281: 0xA1AC, - 65341 - 65281: 0xA3DD, - 65342 - 65281: 0xA3DE, - 65343 - 65281: 0xA3DF, - 65344 - 65281: 0xA3E0, - 65345 - 65281: 0xA3E1, - 65346 - 65281: 0xA3E2, - 65347 - 65281: 0xA3E3, - 65348 - 65281: 0xA3E4, - 65349 - 65281: 0xA3E5, - 65350 - 65281: 0xA3E6, - 65351 - 65281: 0xA3E7, - 65352 - 65281: 0xA3E8, - 65353 - 65281: 0xA3E9, - 65354 - 65281: 0xA3EA, - 65355 - 65281: 0xA3EB, - 65356 - 65281: 0xA3EC, - 65357 - 65281: 0xA3ED, - 65358 - 65281: 0xA3EE, - 65359 - 65281: 0xA3EF, - 65360 - 65281: 0xA3F0, - 65361 - 65281: 0xA3F1, - 65362 - 65281: 0xA3F2, - 65363 - 65281: 0xA3F3, - 65364 - 65281: 0xA3F4, - 65365 - 65281: 0xA3F5, - 65366 - 65281: 0xA3F6, - 65367 - 65281: 0xA3F7, - 65368 - 65281: 0xA3F8, - 65369 - 65281: 0xA3F9, - 65370 - 65281: 0xA3FA, - 65371 - 65281: 0xA3FB, - 65372 - 65281: 0xA3FC, - 65373 - 65281: 0xA3FD, - 65374 - 65281: 0xA2A6, - 65504 - 65281: 0xA1CB, - 65505 - 65281: 0xA1CC, - 65506 - 65281: 0xA1FE, - 65507 - 65281: 0xA3FE, - 65509 - 65281: 0xA1CD, - 65510 - 65281: 0xA3DC, -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go deleted file mode 100644 index 5ecc526..0000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "golang.org/x/text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{GB18030, GBK, HZGB2312} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/all_test.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/all_test.go deleted file mode 100644 index afdb7aa..0000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/all_test.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/transform" -) - -func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Decode", e.NewDecoder(), nil -} -func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement -} - -func TestNonRepertoire(t *testing.T) { - testCases := []struct { - init func(e encoding.Encoding) (string, transform.Transformer, error) - e encoding.Encoding - src, want string - }{ - {dec, GBK, "a\xfe\xfeb", "a\ufffdb"}, - {dec, HZGB2312, "~{z~", "\ufffd"}, - - {enc, GBK, "갂", ""}, - {enc, GBK, "a갂", "a"}, - {enc, GBK, "\u4e02갂", "\x81@"}, - - {enc, HZGB2312, "갂", ""}, - {enc, HZGB2312, "a갂", "a"}, - {enc, HZGB2312, "\u6cf5갂", "~{1C~}"}, - } - for _, tc := range testCases { - dir, tr, wantErr := tc.init(tc.e) - - dst, _, err := transform.String(tr, tc.src) - if err != wantErr { - t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr) - } - if got := string(dst); got != tc.want { - t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go deleted file mode 100644 index e0b15bb..0000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go +++ /dev/null @@ -1,281 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -var ( - // GB18030 is the GB18030 encoding. - GB18030 encoding.Encoding = &gbk18030 - // GBK is the GBK encoding. It encodes an extension of the GB2312 character set - // and is also known as Code Page 936. - GBK encoding.Encoding = &gbk -) - -var gbk = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: false}, - gbkEncoder{gb18030: false}, - }, - "GBK", - identifier.GBK, -} - -var gbk18030 = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: true}, - gbkEncoder{gb18030: true}, - }, - "GB18030", - identifier.GB18030, -} - -var ( - errInvalidGB18030 = errors.New("simplifiedchinese: invalid GB18030 encoding") - errInvalidGBK = errors.New("simplifiedchinese: invalid GBK encoding") -) - -type gbkDecoder struct { - transform.NopResetter - gb18030 bool -} - -func (d gbkDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - case c0 == 0x80: - r, size = '€', 1 - - case c0 < 0xff: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0x80 <= c1 && c1 < 0xff: - c1 -= 0x41 - case d.gb18030 && 0x30 <= c1 && c1 < 0x40: - if nSrc+3 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c2 := src[nSrc+2] - if c2 < 0x81 || 0xff <= c2 { - err = errInvalidGB18030 - break loop - } - c3 := src[nSrc+3] - if c3 < 0x30 || 0x3a <= c3 { - err = errInvalidGB18030 - break loop - } - size = 4 - r = ((rune(c0-0x81)*10+rune(c1-0x30))*126+rune(c2-0x81))*10 + rune(c3-0x30) - if r < 39420 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][0]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[1]) - rune(dec[0]) - goto write - } - r -= 189000 - if 0 <= r && r < 0x100000 { - r += 0x10000 - goto write - } - err = errInvalidGB18030 - break loop - default: - if d.gb18030 { - err = errInvalidGB18030 - } else { - err = errInvalidGBK - } - break loop - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*190 + int(c1); i < len(decode) { - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - if d.gb18030 { - err = errInvalidGB18030 - } else { - err = errInvalidGBK - } - break loop - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - if d.gb18030 { - err = errInvalidGB18030 - } else { - err = errInvalidGBK - } - } - return nDst, nSrc, err -} - -type gbkEncoder struct { - transform.NopResetter - gb18030 bool -} - -func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, r2, size := rune(0), rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r2 = rune(encode0[r-encode0Low]); r2 != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - if r == '€' { - r = 0x80 - goto write1 - } - if r2 = rune(encode1[r-encode1Low]); r2 != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r2 = rune(encode2[r-encode2Low]); r2 != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r2 = rune(encode3[r-encode3Low]); r2 != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r2 = rune(encode4[r-encode4Low]); r2 != 0 { - goto write2 - } - } - - if e.gb18030 { - if r < 0x10000 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][1]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[0]) - rune(dec[1]) - goto write4 - } else if r < 0x110000 { - r += 189000 - 0x10000 - goto write4 - } - } - err = internal.ErrASCIIReplacement - break - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r2 >> 8) - dst[nDst+1] = uint8(r2) - nDst += 2 - continue - - write4: - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+3] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+2] = uint8(r%126 + 0x81) - r /= 126 - dst[nDst+1] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+0] = uint8(r + 0x81) - nDst += 4 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 5 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go deleted file mode 100644 index 85de6b1..0000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// HZGB2312 is the HZ-GB2312 encoding. -var HZGB2312 encoding.Encoding = &hzGB2312 - -var hzGB2312 = internal.Encoding{ - internal.FuncEncoding{hzGB2312NewDecoder, hzGB2312NewEncoder}, - "HZ-GB2312", - identifier.HZGB2312, -} - -func hzGB2312NewDecoder() transform.Transformer { - return new(hzGB2312Decoder) -} - -func hzGB2312NewEncoder() transform.Transformer { - return new(hzGB2312Encoder) -} - -var errInvalidHZGB2312 = errors.New("simplifiedchinese: invalid HZ-GB2312 encoding") - -const ( - asciiState = iota - gbState -) - -type hzGB2312Decoder int - -func (d *hzGB2312Decoder) Reset() { - *d = asciiState -} - -func (d *hzGB2312Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - err = errInvalidHZGB2312 - break loop - } - - if c0 == '~' { - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - size = 2 - switch src[nSrc+1] { - case '{': - *d = gbState - continue - case '}': - *d = asciiState - continue - case '~': - if nDst >= len(dst) { - err = transform.ErrShortDst - break loop - } - dst[nDst] = '~' - nDst++ - continue - case '\n': - continue - default: - err = errInvalidHZGB2312 - break loop - } - } - - if *d == asciiState { - r, size = rune(c0), 1 - } else { - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - err = errInvalidHZGB2312 - break loop - } - - r, size = '\ufffd', 2 - if i := int(c0-0x01)*190 + int(c1+0x3f); i < len(decode) { - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidHZGB2312 - } - return nDst, nSrc, err -} - -type hzGB2312Encoder int - -func (d *hzGB2312Encoder) Reset() { - *d = asciiState -} - -func (e *hzGB2312Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if r == '~' { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '~' - nDst += 2 - continue - } else if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst += 1 - continue - - } - - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto writeGB - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto writeGB - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto writeGB - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto writeGB - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto writeGB - } - } - - terminateInASCIIState: - // Switch back to ASCII state in case of error so that an ASCII - // replacement character can be written in the correct state. - if *e != asciiState { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } - err = internal.ErrASCIIReplacement - break - - writeGB: - c0 := uint8(r>>8) - 0x80 - c1 := uint8(r) - 0x80 - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - goto terminateInASCIIState - } - if *e == asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = gbState - dst[nDst+0] = '~' - dst[nDst+1] = '{' - nDst += 2 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = c0 - dst[nDst+1] = c1 - nDst += 2 - continue - } - // TODO: should one always terminate in ASCII state to make it safe to - // concatenate two HZ-GB2312-encoded strings? - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go deleted file mode 100644 index 55016c7..0000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package simplifiedchinese provides Simplified Chinese encodings such as GBK.\n") - fmt.Printf(`package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese"` + "\n\n") - - printGB18030() - printGBK() -} - -func printGB18030() { - res, err := http.Get("http://encoding.spec.whatwg.org/index-gb18030.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - fmt.Printf("// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt\n") - fmt.Printf("var gb18030 = [...][2]uint16{\n") - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint32(0), uint32(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0x10000 && y < 0x10000 { - fmt.Printf("\t{0x%04x, 0x%04x},\n", x, y) - } - } - fmt.Printf("}\n\n") -} - -func printGBK() { - res, err := http.Get("http://encoding.spec.whatwg.org/index-gbk.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint16{} - reverse := [65536]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint16(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 126*190 <= x { - log.Fatalf("GBK code %d is out of range", x) - } - mapping[x] = y - if reverse[y] == 0 { - c0, c1 := x/190, x%190 - if c1 >= 0x3f { - c1++ - } - reverse[y] = (0x81+c0)<<8 | (0x40 + c1) - } - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from GBK code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt\n") - fmt.Printf("var decode = [...]uint16{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%04X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to GBK code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go deleted file mode 100644 index 415f52a..0000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go +++ /dev/null @@ -1,43999 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package simplifiedchinese provides Simplified Chinese encodings such as GBK. -package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese" - -// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt -var gb18030 = [...][2]uint16{ - {0x0000, 0x0080}, - {0x0024, 0x00a5}, - {0x0026, 0x00a9}, - {0x002d, 0x00b2}, - {0x0032, 0x00b8}, - {0x0051, 0x00d8}, - {0x0059, 0x00e2}, - {0x005f, 0x00eb}, - {0x0060, 0x00ee}, - {0x0064, 0x00f4}, - {0x0067, 0x00f8}, - {0x0068, 0x00fb}, - {0x0069, 0x00fd}, - {0x006d, 0x0102}, - {0x007e, 0x0114}, - {0x0085, 0x011c}, - {0x0094, 0x012c}, - {0x00ac, 0x0145}, - {0x00af, 0x0149}, - {0x00b3, 0x014e}, - {0x00d0, 0x016c}, - {0x0132, 0x01cf}, - {0x0133, 0x01d1}, - {0x0134, 0x01d3}, - {0x0135, 0x01d5}, - {0x0136, 0x01d7}, - {0x0137, 0x01d9}, - {0x0138, 0x01db}, - {0x0139, 0x01dd}, - {0x0155, 0x01fa}, - {0x01ac, 0x0252}, - {0x01bb, 0x0262}, - {0x0220, 0x02c8}, - {0x0221, 0x02cc}, - {0x022e, 0x02da}, - {0x02e5, 0x03a2}, - {0x02e6, 0x03aa}, - {0x02ed, 0x03c2}, - {0x02ee, 0x03ca}, - {0x0325, 0x0402}, - {0x0333, 0x0450}, - {0x0334, 0x0452}, - {0x1ef2, 0x2011}, - {0x1ef4, 0x2017}, - {0x1ef5, 0x201a}, - {0x1ef7, 0x201e}, - {0x1efe, 0x2027}, - {0x1f07, 0x2031}, - {0x1f08, 0x2034}, - {0x1f09, 0x2036}, - {0x1f0e, 0x203c}, - {0x1f7e, 0x20ad}, - {0x1fd4, 0x2104}, - {0x1fd5, 0x2106}, - {0x1fd8, 0x210a}, - {0x1fe4, 0x2117}, - {0x1fee, 0x2122}, - {0x202c, 0x216c}, - {0x2030, 0x217a}, - {0x2046, 0x2194}, - {0x2048, 0x219a}, - {0x20b6, 0x2209}, - {0x20bc, 0x2210}, - {0x20bd, 0x2212}, - {0x20c0, 0x2216}, - {0x20c4, 0x221b}, - {0x20c6, 0x2221}, - {0x20c8, 0x2224}, - {0x20c9, 0x2226}, - {0x20ca, 0x222c}, - {0x20cc, 0x222f}, - {0x20d1, 0x2238}, - {0x20d6, 0x223e}, - {0x20e0, 0x2249}, - {0x20e3, 0x224d}, - {0x20e8, 0x2253}, - {0x20f5, 0x2262}, - {0x20f7, 0x2268}, - {0x20fd, 0x2270}, - {0x2122, 0x2296}, - {0x2125, 0x229a}, - {0x2130, 0x22a6}, - {0x2149, 0x22c0}, - {0x219b, 0x2313}, - {0x22e8, 0x246a}, - {0x22f2, 0x249c}, - {0x2356, 0x254c}, - {0x235a, 0x2574}, - {0x2367, 0x2590}, - {0x236a, 0x2596}, - {0x2374, 0x25a2}, - {0x2384, 0x25b4}, - {0x238c, 0x25be}, - {0x2394, 0x25c8}, - {0x2397, 0x25cc}, - {0x2399, 0x25d0}, - {0x23ab, 0x25e6}, - {0x23ca, 0x2607}, - {0x23cc, 0x260a}, - {0x2402, 0x2641}, - {0x2403, 0x2643}, - {0x2c41, 0x2e82}, - {0x2c43, 0x2e85}, - {0x2c46, 0x2e89}, - {0x2c48, 0x2e8d}, - {0x2c52, 0x2e98}, - {0x2c61, 0x2ea8}, - {0x2c63, 0x2eab}, - {0x2c66, 0x2eaf}, - {0x2c6a, 0x2eb4}, - {0x2c6c, 0x2eb8}, - {0x2c6f, 0x2ebc}, - {0x2c7d, 0x2ecb}, - {0x2da2, 0x2ffc}, - {0x2da6, 0x3004}, - {0x2da7, 0x3018}, - {0x2dac, 0x301f}, - {0x2dae, 0x302a}, - {0x2dc2, 0x303f}, - {0x2dc4, 0x3094}, - {0x2dcb, 0x309f}, - {0x2dcd, 0x30f7}, - {0x2dd2, 0x30ff}, - {0x2dd8, 0x312a}, - {0x2ece, 0x322a}, - {0x2ed5, 0x3232}, - {0x2f46, 0x32a4}, - {0x3030, 0x3390}, - {0x303c, 0x339f}, - {0x303e, 0x33a2}, - {0x3060, 0x33c5}, - {0x3069, 0x33cf}, - {0x306b, 0x33d3}, - {0x306d, 0x33d6}, - {0x30de, 0x3448}, - {0x3109, 0x3474}, - {0x3233, 0x359f}, - {0x32a2, 0x360f}, - {0x32ad, 0x361b}, - {0x35aa, 0x3919}, - {0x35ff, 0x396f}, - {0x365f, 0x39d1}, - {0x366d, 0x39e0}, - {0x3700, 0x3a74}, - {0x37da, 0x3b4f}, - {0x38f9, 0x3c6f}, - {0x396a, 0x3ce1}, - {0x3cdf, 0x4057}, - {0x3de7, 0x4160}, - {0x3fbe, 0x4338}, - {0x4032, 0x43ad}, - {0x4036, 0x43b2}, - {0x4061, 0x43de}, - {0x4159, 0x44d7}, - {0x42ce, 0x464d}, - {0x42e2, 0x4662}, - {0x43a3, 0x4724}, - {0x43a8, 0x472a}, - {0x43fa, 0x477d}, - {0x440a, 0x478e}, - {0x45c3, 0x4948}, - {0x45f5, 0x497b}, - {0x45f7, 0x497e}, - {0x45fb, 0x4984}, - {0x45fc, 0x4987}, - {0x4610, 0x499c}, - {0x4613, 0x49a0}, - {0x4629, 0x49b8}, - {0x48e8, 0x4c78}, - {0x490f, 0x4ca4}, - {0x497e, 0x4d1a}, - {0x4a12, 0x4daf}, - {0x4a63, 0x9fa6}, - {0x82bd, 0xe76c}, - {0x82be, 0xe7c8}, - {0x82bf, 0xe7e7}, - {0x82cc, 0xe815}, - {0x82cd, 0xe819}, - {0x82d2, 0xe81f}, - {0x82d9, 0xe827}, - {0x82dd, 0xe82d}, - {0x82e1, 0xe833}, - {0x82e9, 0xe83c}, - {0x82f0, 0xe844}, - {0x8300, 0xe856}, - {0x830e, 0xe865}, - {0x93d5, 0xf92d}, - {0x9421, 0xf97a}, - {0x943c, 0xf996}, - {0x948d, 0xf9e8}, - {0x9496, 0xf9f2}, - {0x94b0, 0xfa10}, - {0x94b1, 0xfa12}, - {0x94b2, 0xfa15}, - {0x94b5, 0xfa19}, - {0x94bb, 0xfa22}, - {0x94bc, 0xfa25}, - {0x94be, 0xfa2a}, - {0x98c4, 0xfe32}, - {0x98c5, 0xfe45}, - {0x98c9, 0xfe53}, - {0x98ca, 0xfe58}, - {0x98cb, 0xfe67}, - {0x98cc, 0xfe6c}, - {0x9961, 0xff5f}, - {0x99e2, 0xffe6}, -} - -// decode is the decoding table from GBK code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt -var decode = [...]uint16{ - 0: 0x4E02, - 1: 0x4E04, - 2: 0x4E05, - 3: 0x4E06, - 4: 0x4E0F, - 5: 0x4E12, - 6: 0x4E17, - 7: 0x4E1F, - 8: 0x4E20, - 9: 0x4E21, - 10: 0x4E23, - 11: 0x4E26, - 12: 0x4E29, - 13: 0x4E2E, - 14: 0x4E2F, - 15: 0x4E31, - 16: 0x4E33, - 17: 0x4E35, - 18: 0x4E37, - 19: 0x4E3C, - 20: 0x4E40, - 21: 0x4E41, - 22: 0x4E42, - 23: 0x4E44, - 24: 0x4E46, - 25: 0x4E4A, - 26: 0x4E51, - 27: 0x4E55, - 28: 0x4E57, - 29: 0x4E5A, - 30: 0x4E5B, - 31: 0x4E62, - 32: 0x4E63, - 33: 0x4E64, - 34: 0x4E65, - 35: 0x4E67, - 36: 0x4E68, - 37: 0x4E6A, - 38: 0x4E6B, - 39: 0x4E6C, - 40: 0x4E6D, - 41: 0x4E6E, - 42: 0x4E6F, - 43: 0x4E72, - 44: 0x4E74, - 45: 0x4E75, - 46: 0x4E76, - 47: 0x4E77, - 48: 0x4E78, - 49: 0x4E79, - 50: 0x4E7A, - 51: 0x4E7B, - 52: 0x4E7C, - 53: 0x4E7D, - 54: 0x4E7F, - 55: 0x4E80, - 56: 0x4E81, - 57: 0x4E82, - 58: 0x4E83, - 59: 0x4E84, - 60: 0x4E85, - 61: 0x4E87, - 62: 0x4E8A, - 63: 0x4E90, - 64: 0x4E96, - 65: 0x4E97, - 66: 0x4E99, - 67: 0x4E9C, - 68: 0x4E9D, - 69: 0x4E9E, - 70: 0x4EA3, - 71: 0x4EAA, - 72: 0x4EAF, - 73: 0x4EB0, - 74: 0x4EB1, - 75: 0x4EB4, - 76: 0x4EB6, - 77: 0x4EB7, - 78: 0x4EB8, - 79: 0x4EB9, - 80: 0x4EBC, - 81: 0x4EBD, - 82: 0x4EBE, - 83: 0x4EC8, - 84: 0x4ECC, - 85: 0x4ECF, - 86: 0x4ED0, - 87: 0x4ED2, - 88: 0x4EDA, - 89: 0x4EDB, - 90: 0x4EDC, - 91: 0x4EE0, - 92: 0x4EE2, - 93: 0x4EE6, - 94: 0x4EE7, - 95: 0x4EE9, - 96: 0x4EED, - 97: 0x4EEE, - 98: 0x4EEF, - 99: 0x4EF1, - 100: 0x4EF4, - 101: 0x4EF8, - 102: 0x4EF9, - 103: 0x4EFA, - 104: 0x4EFC, - 105: 0x4EFE, - 106: 0x4F00, - 107: 0x4F02, - 108: 0x4F03, - 109: 0x4F04, - 110: 0x4F05, - 111: 0x4F06, - 112: 0x4F07, - 113: 0x4F08, - 114: 0x4F0B, - 115: 0x4F0C, - 116: 0x4F12, - 117: 0x4F13, - 118: 0x4F14, - 119: 0x4F15, - 120: 0x4F16, - 121: 0x4F1C, - 122: 0x4F1D, - 123: 0x4F21, - 124: 0x4F23, - 125: 0x4F28, - 126: 0x4F29, - 127: 0x4F2C, - 128: 0x4F2D, - 129: 0x4F2E, - 130: 0x4F31, - 131: 0x4F33, - 132: 0x4F35, - 133: 0x4F37, - 134: 0x4F39, - 135: 0x4F3B, - 136: 0x4F3E, - 137: 0x4F3F, - 138: 0x4F40, - 139: 0x4F41, - 140: 0x4F42, - 141: 0x4F44, - 142: 0x4F45, - 143: 0x4F47, - 144: 0x4F48, - 145: 0x4F49, - 146: 0x4F4A, - 147: 0x4F4B, - 148: 0x4F4C, - 149: 0x4F52, - 150: 0x4F54, - 151: 0x4F56, - 152: 0x4F61, - 153: 0x4F62, - 154: 0x4F66, - 155: 0x4F68, - 156: 0x4F6A, - 157: 0x4F6B, - 158: 0x4F6D, - 159: 0x4F6E, - 160: 0x4F71, - 161: 0x4F72, - 162: 0x4F75, - 163: 0x4F77, - 164: 0x4F78, - 165: 0x4F79, - 166: 0x4F7A, - 167: 0x4F7D, - 168: 0x4F80, - 169: 0x4F81, - 170: 0x4F82, - 171: 0x4F85, - 172: 0x4F86, - 173: 0x4F87, - 174: 0x4F8A, - 175: 0x4F8C, - 176: 0x4F8E, - 177: 0x4F90, - 178: 0x4F92, - 179: 0x4F93, - 180: 0x4F95, - 181: 0x4F96, - 182: 0x4F98, - 183: 0x4F99, - 184: 0x4F9A, - 185: 0x4F9C, - 186: 0x4F9E, - 187: 0x4F9F, - 188: 0x4FA1, - 189: 0x4FA2, - 190: 0x4FA4, - 191: 0x4FAB, - 192: 0x4FAD, - 193: 0x4FB0, - 194: 0x4FB1, - 195: 0x4FB2, - 196: 0x4FB3, - 197: 0x4FB4, - 198: 0x4FB6, - 199: 0x4FB7, - 200: 0x4FB8, - 201: 0x4FB9, - 202: 0x4FBA, - 203: 0x4FBB, - 204: 0x4FBC, - 205: 0x4FBD, - 206: 0x4FBE, - 207: 0x4FC0, - 208: 0x4FC1, - 209: 0x4FC2, - 210: 0x4FC6, - 211: 0x4FC7, - 212: 0x4FC8, - 213: 0x4FC9, - 214: 0x4FCB, - 215: 0x4FCC, - 216: 0x4FCD, - 217: 0x4FD2, - 218: 0x4FD3, - 219: 0x4FD4, - 220: 0x4FD5, - 221: 0x4FD6, - 222: 0x4FD9, - 223: 0x4FDB, - 224: 0x4FE0, - 225: 0x4FE2, - 226: 0x4FE4, - 227: 0x4FE5, - 228: 0x4FE7, - 229: 0x4FEB, - 230: 0x4FEC, - 231: 0x4FF0, - 232: 0x4FF2, - 233: 0x4FF4, - 234: 0x4FF5, - 235: 0x4FF6, - 236: 0x4FF7, - 237: 0x4FF9, - 238: 0x4FFB, - 239: 0x4FFC, - 240: 0x4FFD, - 241: 0x4FFF, - 242: 0x5000, - 243: 0x5001, - 244: 0x5002, - 245: 0x5003, - 246: 0x5004, - 247: 0x5005, - 248: 0x5006, - 249: 0x5007, - 250: 0x5008, - 251: 0x5009, - 252: 0x500A, - 253: 0x500B, - 254: 0x500E, - 255: 0x5010, - 256: 0x5011, - 257: 0x5013, - 258: 0x5015, - 259: 0x5016, - 260: 0x5017, - 261: 0x501B, - 262: 0x501D, - 263: 0x501E, - 264: 0x5020, - 265: 0x5022, - 266: 0x5023, - 267: 0x5024, - 268: 0x5027, - 269: 0x502B, - 270: 0x502F, - 271: 0x5030, - 272: 0x5031, - 273: 0x5032, - 274: 0x5033, - 275: 0x5034, - 276: 0x5035, - 277: 0x5036, - 278: 0x5037, - 279: 0x5038, - 280: 0x5039, - 281: 0x503B, - 282: 0x503D, - 283: 0x503F, - 284: 0x5040, - 285: 0x5041, - 286: 0x5042, - 287: 0x5044, - 288: 0x5045, - 289: 0x5046, - 290: 0x5049, - 291: 0x504A, - 292: 0x504B, - 293: 0x504D, - 294: 0x5050, - 295: 0x5051, - 296: 0x5052, - 297: 0x5053, - 298: 0x5054, - 299: 0x5056, - 300: 0x5057, - 301: 0x5058, - 302: 0x5059, - 303: 0x505B, - 304: 0x505D, - 305: 0x505E, - 306: 0x505F, - 307: 0x5060, - 308: 0x5061, - 309: 0x5062, - 310: 0x5063, - 311: 0x5064, - 312: 0x5066, - 313: 0x5067, - 314: 0x5068, - 315: 0x5069, - 316: 0x506A, - 317: 0x506B, - 318: 0x506D, - 319: 0x506E, - 320: 0x506F, - 321: 0x5070, - 322: 0x5071, - 323: 0x5072, - 324: 0x5073, - 325: 0x5074, - 326: 0x5075, - 327: 0x5078, - 328: 0x5079, - 329: 0x507A, - 330: 0x507C, - 331: 0x507D, - 332: 0x5081, - 333: 0x5082, - 334: 0x5083, - 335: 0x5084, - 336: 0x5086, - 337: 0x5087, - 338: 0x5089, - 339: 0x508A, - 340: 0x508B, - 341: 0x508C, - 342: 0x508E, - 343: 0x508F, - 344: 0x5090, - 345: 0x5091, - 346: 0x5092, - 347: 0x5093, - 348: 0x5094, - 349: 0x5095, - 350: 0x5096, - 351: 0x5097, - 352: 0x5098, - 353: 0x5099, - 354: 0x509A, - 355: 0x509B, - 356: 0x509C, - 357: 0x509D, - 358: 0x509E, - 359: 0x509F, - 360: 0x50A0, - 361: 0x50A1, - 362: 0x50A2, - 363: 0x50A4, - 364: 0x50A6, - 365: 0x50AA, - 366: 0x50AB, - 367: 0x50AD, - 368: 0x50AE, - 369: 0x50AF, - 370: 0x50B0, - 371: 0x50B1, - 372: 0x50B3, - 373: 0x50B4, - 374: 0x50B5, - 375: 0x50B6, - 376: 0x50B7, - 377: 0x50B8, - 378: 0x50B9, - 379: 0x50BC, - 380: 0x50BD, - 381: 0x50BE, - 382: 0x50BF, - 383: 0x50C0, - 384: 0x50C1, - 385: 0x50C2, - 386: 0x50C3, - 387: 0x50C4, - 388: 0x50C5, - 389: 0x50C6, - 390: 0x50C7, - 391: 0x50C8, - 392: 0x50C9, - 393: 0x50CA, - 394: 0x50CB, - 395: 0x50CC, - 396: 0x50CD, - 397: 0x50CE, - 398: 0x50D0, - 399: 0x50D1, - 400: 0x50D2, - 401: 0x50D3, - 402: 0x50D4, - 403: 0x50D5, - 404: 0x50D7, - 405: 0x50D8, - 406: 0x50D9, - 407: 0x50DB, - 408: 0x50DC, - 409: 0x50DD, - 410: 0x50DE, - 411: 0x50DF, - 412: 0x50E0, - 413: 0x50E1, - 414: 0x50E2, - 415: 0x50E3, - 416: 0x50E4, - 417: 0x50E5, - 418: 0x50E8, - 419: 0x50E9, - 420: 0x50EA, - 421: 0x50EB, - 422: 0x50EF, - 423: 0x50F0, - 424: 0x50F1, - 425: 0x50F2, - 426: 0x50F4, - 427: 0x50F6, - 428: 0x50F7, - 429: 0x50F8, - 430: 0x50F9, - 431: 0x50FA, - 432: 0x50FC, - 433: 0x50FD, - 434: 0x50FE, - 435: 0x50FF, - 436: 0x5100, - 437: 0x5101, - 438: 0x5102, - 439: 0x5103, - 440: 0x5104, - 441: 0x5105, - 442: 0x5108, - 443: 0x5109, - 444: 0x510A, - 445: 0x510C, - 446: 0x510D, - 447: 0x510E, - 448: 0x510F, - 449: 0x5110, - 450: 0x5111, - 451: 0x5113, - 452: 0x5114, - 453: 0x5115, - 454: 0x5116, - 455: 0x5117, - 456: 0x5118, - 457: 0x5119, - 458: 0x511A, - 459: 0x511B, - 460: 0x511C, - 461: 0x511D, - 462: 0x511E, - 463: 0x511F, - 464: 0x5120, - 465: 0x5122, - 466: 0x5123, - 467: 0x5124, - 468: 0x5125, - 469: 0x5126, - 470: 0x5127, - 471: 0x5128, - 472: 0x5129, - 473: 0x512A, - 474: 0x512B, - 475: 0x512C, - 476: 0x512D, - 477: 0x512E, - 478: 0x512F, - 479: 0x5130, - 480: 0x5131, - 481: 0x5132, - 482: 0x5133, - 483: 0x5134, - 484: 0x5135, - 485: 0x5136, - 486: 0x5137, - 487: 0x5138, - 488: 0x5139, - 489: 0x513A, - 490: 0x513B, - 491: 0x513C, - 492: 0x513D, - 493: 0x513E, - 494: 0x5142, - 495: 0x5147, - 496: 0x514A, - 497: 0x514C, - 498: 0x514E, - 499: 0x514F, - 500: 0x5150, - 501: 0x5152, - 502: 0x5153, - 503: 0x5157, - 504: 0x5158, - 505: 0x5159, - 506: 0x515B, - 507: 0x515D, - 508: 0x515E, - 509: 0x515F, - 510: 0x5160, - 511: 0x5161, - 512: 0x5163, - 513: 0x5164, - 514: 0x5166, - 515: 0x5167, - 516: 0x5169, - 517: 0x516A, - 518: 0x516F, - 519: 0x5172, - 520: 0x517A, - 521: 0x517E, - 522: 0x517F, - 523: 0x5183, - 524: 0x5184, - 525: 0x5186, - 526: 0x5187, - 527: 0x518A, - 528: 0x518B, - 529: 0x518E, - 530: 0x518F, - 531: 0x5190, - 532: 0x5191, - 533: 0x5193, - 534: 0x5194, - 535: 0x5198, - 536: 0x519A, - 537: 0x519D, - 538: 0x519E, - 539: 0x519F, - 540: 0x51A1, - 541: 0x51A3, - 542: 0x51A6, - 543: 0x51A7, - 544: 0x51A8, - 545: 0x51A9, - 546: 0x51AA, - 547: 0x51AD, - 548: 0x51AE, - 549: 0x51B4, - 550: 0x51B8, - 551: 0x51B9, - 552: 0x51BA, - 553: 0x51BE, - 554: 0x51BF, - 555: 0x51C1, - 556: 0x51C2, - 557: 0x51C3, - 558: 0x51C5, - 559: 0x51C8, - 560: 0x51CA, - 561: 0x51CD, - 562: 0x51CE, - 563: 0x51D0, - 564: 0x51D2, - 565: 0x51D3, - 566: 0x51D4, - 567: 0x51D5, - 568: 0x51D6, - 569: 0x51D7, - 570: 0x51D8, - 571: 0x51D9, - 572: 0x51DA, - 573: 0x51DC, - 574: 0x51DE, - 575: 0x51DF, - 576: 0x51E2, - 577: 0x51E3, - 578: 0x51E5, - 579: 0x51E6, - 580: 0x51E7, - 581: 0x51E8, - 582: 0x51E9, - 583: 0x51EA, - 584: 0x51EC, - 585: 0x51EE, - 586: 0x51F1, - 587: 0x51F2, - 588: 0x51F4, - 589: 0x51F7, - 590: 0x51FE, - 591: 0x5204, - 592: 0x5205, - 593: 0x5209, - 594: 0x520B, - 595: 0x520C, - 596: 0x520F, - 597: 0x5210, - 598: 0x5213, - 599: 0x5214, - 600: 0x5215, - 601: 0x521C, - 602: 0x521E, - 603: 0x521F, - 604: 0x5221, - 605: 0x5222, - 606: 0x5223, - 607: 0x5225, - 608: 0x5226, - 609: 0x5227, - 610: 0x522A, - 611: 0x522C, - 612: 0x522F, - 613: 0x5231, - 614: 0x5232, - 615: 0x5234, - 616: 0x5235, - 617: 0x523C, - 618: 0x523E, - 619: 0x5244, - 620: 0x5245, - 621: 0x5246, - 622: 0x5247, - 623: 0x5248, - 624: 0x5249, - 625: 0x524B, - 626: 0x524E, - 627: 0x524F, - 628: 0x5252, - 629: 0x5253, - 630: 0x5255, - 631: 0x5257, - 632: 0x5258, - 633: 0x5259, - 634: 0x525A, - 635: 0x525B, - 636: 0x525D, - 637: 0x525F, - 638: 0x5260, - 639: 0x5262, - 640: 0x5263, - 641: 0x5264, - 642: 0x5266, - 643: 0x5268, - 644: 0x526B, - 645: 0x526C, - 646: 0x526D, - 647: 0x526E, - 648: 0x5270, - 649: 0x5271, - 650: 0x5273, - 651: 0x5274, - 652: 0x5275, - 653: 0x5276, - 654: 0x5277, - 655: 0x5278, - 656: 0x5279, - 657: 0x527A, - 658: 0x527B, - 659: 0x527C, - 660: 0x527E, - 661: 0x5280, - 662: 0x5283, - 663: 0x5284, - 664: 0x5285, - 665: 0x5286, - 666: 0x5287, - 667: 0x5289, - 668: 0x528A, - 669: 0x528B, - 670: 0x528C, - 671: 0x528D, - 672: 0x528E, - 673: 0x528F, - 674: 0x5291, - 675: 0x5292, - 676: 0x5294, - 677: 0x5295, - 678: 0x5296, - 679: 0x5297, - 680: 0x5298, - 681: 0x5299, - 682: 0x529A, - 683: 0x529C, - 684: 0x52A4, - 685: 0x52A5, - 686: 0x52A6, - 687: 0x52A7, - 688: 0x52AE, - 689: 0x52AF, - 690: 0x52B0, - 691: 0x52B4, - 692: 0x52B5, - 693: 0x52B6, - 694: 0x52B7, - 695: 0x52B8, - 696: 0x52B9, - 697: 0x52BA, - 698: 0x52BB, - 699: 0x52BC, - 700: 0x52BD, - 701: 0x52C0, - 702: 0x52C1, - 703: 0x52C2, - 704: 0x52C4, - 705: 0x52C5, - 706: 0x52C6, - 707: 0x52C8, - 708: 0x52CA, - 709: 0x52CC, - 710: 0x52CD, - 711: 0x52CE, - 712: 0x52CF, - 713: 0x52D1, - 714: 0x52D3, - 715: 0x52D4, - 716: 0x52D5, - 717: 0x52D7, - 718: 0x52D9, - 719: 0x52DA, - 720: 0x52DB, - 721: 0x52DC, - 722: 0x52DD, - 723: 0x52DE, - 724: 0x52E0, - 725: 0x52E1, - 726: 0x52E2, - 727: 0x52E3, - 728: 0x52E5, - 729: 0x52E6, - 730: 0x52E7, - 731: 0x52E8, - 732: 0x52E9, - 733: 0x52EA, - 734: 0x52EB, - 735: 0x52EC, - 736: 0x52ED, - 737: 0x52EE, - 738: 0x52EF, - 739: 0x52F1, - 740: 0x52F2, - 741: 0x52F3, - 742: 0x52F4, - 743: 0x52F5, - 744: 0x52F6, - 745: 0x52F7, - 746: 0x52F8, - 747: 0x52FB, - 748: 0x52FC, - 749: 0x52FD, - 750: 0x5301, - 751: 0x5302, - 752: 0x5303, - 753: 0x5304, - 754: 0x5307, - 755: 0x5309, - 756: 0x530A, - 757: 0x530B, - 758: 0x530C, - 759: 0x530E, - 760: 0x5311, - 761: 0x5312, - 762: 0x5313, - 763: 0x5314, - 764: 0x5318, - 765: 0x531B, - 766: 0x531C, - 767: 0x531E, - 768: 0x531F, - 769: 0x5322, - 770: 0x5324, - 771: 0x5325, - 772: 0x5327, - 773: 0x5328, - 774: 0x5329, - 775: 0x532B, - 776: 0x532C, - 777: 0x532D, - 778: 0x532F, - 779: 0x5330, - 780: 0x5331, - 781: 0x5332, - 782: 0x5333, - 783: 0x5334, - 784: 0x5335, - 785: 0x5336, - 786: 0x5337, - 787: 0x5338, - 788: 0x533C, - 789: 0x533D, - 790: 0x5340, - 791: 0x5342, - 792: 0x5344, - 793: 0x5346, - 794: 0x534B, - 795: 0x534C, - 796: 0x534D, - 797: 0x5350, - 798: 0x5354, - 799: 0x5358, - 800: 0x5359, - 801: 0x535B, - 802: 0x535D, - 803: 0x5365, - 804: 0x5368, - 805: 0x536A, - 806: 0x536C, - 807: 0x536D, - 808: 0x5372, - 809: 0x5376, - 810: 0x5379, - 811: 0x537B, - 812: 0x537C, - 813: 0x537D, - 814: 0x537E, - 815: 0x5380, - 816: 0x5381, - 817: 0x5383, - 818: 0x5387, - 819: 0x5388, - 820: 0x538A, - 821: 0x538E, - 822: 0x538F, - 823: 0x5390, - 824: 0x5391, - 825: 0x5392, - 826: 0x5393, - 827: 0x5394, - 828: 0x5396, - 829: 0x5397, - 830: 0x5399, - 831: 0x539B, - 832: 0x539C, - 833: 0x539E, - 834: 0x53A0, - 835: 0x53A1, - 836: 0x53A4, - 837: 0x53A7, - 838: 0x53AA, - 839: 0x53AB, - 840: 0x53AC, - 841: 0x53AD, - 842: 0x53AF, - 843: 0x53B0, - 844: 0x53B1, - 845: 0x53B2, - 846: 0x53B3, - 847: 0x53B4, - 848: 0x53B5, - 849: 0x53B7, - 850: 0x53B8, - 851: 0x53B9, - 852: 0x53BA, - 853: 0x53BC, - 854: 0x53BD, - 855: 0x53BE, - 856: 0x53C0, - 857: 0x53C3, - 858: 0x53C4, - 859: 0x53C5, - 860: 0x53C6, - 861: 0x53C7, - 862: 0x53CE, - 863: 0x53CF, - 864: 0x53D0, - 865: 0x53D2, - 866: 0x53D3, - 867: 0x53D5, - 868: 0x53DA, - 869: 0x53DC, - 870: 0x53DD, - 871: 0x53DE, - 872: 0x53E1, - 873: 0x53E2, - 874: 0x53E7, - 875: 0x53F4, - 876: 0x53FA, - 877: 0x53FE, - 878: 0x53FF, - 879: 0x5400, - 880: 0x5402, - 881: 0x5405, - 882: 0x5407, - 883: 0x540B, - 884: 0x5414, - 885: 0x5418, - 886: 0x5419, - 887: 0x541A, - 888: 0x541C, - 889: 0x5422, - 890: 0x5424, - 891: 0x5425, - 892: 0x542A, - 893: 0x5430, - 894: 0x5433, - 895: 0x5436, - 896: 0x5437, - 897: 0x543A, - 898: 0x543D, - 899: 0x543F, - 900: 0x5441, - 901: 0x5442, - 902: 0x5444, - 903: 0x5445, - 904: 0x5447, - 905: 0x5449, - 906: 0x544C, - 907: 0x544D, - 908: 0x544E, - 909: 0x544F, - 910: 0x5451, - 911: 0x545A, - 912: 0x545D, - 913: 0x545E, - 914: 0x545F, - 915: 0x5460, - 916: 0x5461, - 917: 0x5463, - 918: 0x5465, - 919: 0x5467, - 920: 0x5469, - 921: 0x546A, - 922: 0x546B, - 923: 0x546C, - 924: 0x546D, - 925: 0x546E, - 926: 0x546F, - 927: 0x5470, - 928: 0x5474, - 929: 0x5479, - 930: 0x547A, - 931: 0x547E, - 932: 0x547F, - 933: 0x5481, - 934: 0x5483, - 935: 0x5485, - 936: 0x5487, - 937: 0x5488, - 938: 0x5489, - 939: 0x548A, - 940: 0x548D, - 941: 0x5491, - 942: 0x5493, - 943: 0x5497, - 944: 0x5498, - 945: 0x549C, - 946: 0x549E, - 947: 0x549F, - 948: 0x54A0, - 949: 0x54A1, - 950: 0x54A2, - 951: 0x54A5, - 952: 0x54AE, - 953: 0x54B0, - 954: 0x54B2, - 955: 0x54B5, - 956: 0x54B6, - 957: 0x54B7, - 958: 0x54B9, - 959: 0x54BA, - 960: 0x54BC, - 961: 0x54BE, - 962: 0x54C3, - 963: 0x54C5, - 964: 0x54CA, - 965: 0x54CB, - 966: 0x54D6, - 967: 0x54D8, - 968: 0x54DB, - 969: 0x54E0, - 970: 0x54E1, - 971: 0x54E2, - 972: 0x54E3, - 973: 0x54E4, - 974: 0x54EB, - 975: 0x54EC, - 976: 0x54EF, - 977: 0x54F0, - 978: 0x54F1, - 979: 0x54F4, - 980: 0x54F5, - 981: 0x54F6, - 982: 0x54F7, - 983: 0x54F8, - 984: 0x54F9, - 985: 0x54FB, - 986: 0x54FE, - 987: 0x5500, - 988: 0x5502, - 989: 0x5503, - 990: 0x5504, - 991: 0x5505, - 992: 0x5508, - 993: 0x550A, - 994: 0x550B, - 995: 0x550C, - 996: 0x550D, - 997: 0x550E, - 998: 0x5512, - 999: 0x5513, - 1000: 0x5515, - 1001: 0x5516, - 1002: 0x5517, - 1003: 0x5518, - 1004: 0x5519, - 1005: 0x551A, - 1006: 0x551C, - 1007: 0x551D, - 1008: 0x551E, - 1009: 0x551F, - 1010: 0x5521, - 1011: 0x5525, - 1012: 0x5526, - 1013: 0x5528, - 1014: 0x5529, - 1015: 0x552B, - 1016: 0x552D, - 1017: 0x5532, - 1018: 0x5534, - 1019: 0x5535, - 1020: 0x5536, - 1021: 0x5538, - 1022: 0x5539, - 1023: 0x553A, - 1024: 0x553B, - 1025: 0x553D, - 1026: 0x5540, - 1027: 0x5542, - 1028: 0x5545, - 1029: 0x5547, - 1030: 0x5548, - 1031: 0x554B, - 1032: 0x554C, - 1033: 0x554D, - 1034: 0x554E, - 1035: 0x554F, - 1036: 0x5551, - 1037: 0x5552, - 1038: 0x5553, - 1039: 0x5554, - 1040: 0x5557, - 1041: 0x5558, - 1042: 0x5559, - 1043: 0x555A, - 1044: 0x555B, - 1045: 0x555D, - 1046: 0x555E, - 1047: 0x555F, - 1048: 0x5560, - 1049: 0x5562, - 1050: 0x5563, - 1051: 0x5568, - 1052: 0x5569, - 1053: 0x556B, - 1054: 0x556F, - 1055: 0x5570, - 1056: 0x5571, - 1057: 0x5572, - 1058: 0x5573, - 1059: 0x5574, - 1060: 0x5579, - 1061: 0x557A, - 1062: 0x557D, - 1063: 0x557F, - 1064: 0x5585, - 1065: 0x5586, - 1066: 0x558C, - 1067: 0x558D, - 1068: 0x558E, - 1069: 0x5590, - 1070: 0x5592, - 1071: 0x5593, - 1072: 0x5595, - 1073: 0x5596, - 1074: 0x5597, - 1075: 0x559A, - 1076: 0x559B, - 1077: 0x559E, - 1078: 0x55A0, - 1079: 0x55A1, - 1080: 0x55A2, - 1081: 0x55A3, - 1082: 0x55A4, - 1083: 0x55A5, - 1084: 0x55A6, - 1085: 0x55A8, - 1086: 0x55A9, - 1087: 0x55AA, - 1088: 0x55AB, - 1089: 0x55AC, - 1090: 0x55AD, - 1091: 0x55AE, - 1092: 0x55AF, - 1093: 0x55B0, - 1094: 0x55B2, - 1095: 0x55B4, - 1096: 0x55B6, - 1097: 0x55B8, - 1098: 0x55BA, - 1099: 0x55BC, - 1100: 0x55BF, - 1101: 0x55C0, - 1102: 0x55C1, - 1103: 0x55C2, - 1104: 0x55C3, - 1105: 0x55C6, - 1106: 0x55C7, - 1107: 0x55C8, - 1108: 0x55CA, - 1109: 0x55CB, - 1110: 0x55CE, - 1111: 0x55CF, - 1112: 0x55D0, - 1113: 0x55D5, - 1114: 0x55D7, - 1115: 0x55D8, - 1116: 0x55D9, - 1117: 0x55DA, - 1118: 0x55DB, - 1119: 0x55DE, - 1120: 0x55E0, - 1121: 0x55E2, - 1122: 0x55E7, - 1123: 0x55E9, - 1124: 0x55ED, - 1125: 0x55EE, - 1126: 0x55F0, - 1127: 0x55F1, - 1128: 0x55F4, - 1129: 0x55F6, - 1130: 0x55F8, - 1131: 0x55F9, - 1132: 0x55FA, - 1133: 0x55FB, - 1134: 0x55FC, - 1135: 0x55FF, - 1136: 0x5602, - 1137: 0x5603, - 1138: 0x5604, - 1139: 0x5605, - 1140: 0x5606, - 1141: 0x5607, - 1142: 0x560A, - 1143: 0x560B, - 1144: 0x560D, - 1145: 0x5610, - 1146: 0x5611, - 1147: 0x5612, - 1148: 0x5613, - 1149: 0x5614, - 1150: 0x5615, - 1151: 0x5616, - 1152: 0x5617, - 1153: 0x5619, - 1154: 0x561A, - 1155: 0x561C, - 1156: 0x561D, - 1157: 0x5620, - 1158: 0x5621, - 1159: 0x5622, - 1160: 0x5625, - 1161: 0x5626, - 1162: 0x5628, - 1163: 0x5629, - 1164: 0x562A, - 1165: 0x562B, - 1166: 0x562E, - 1167: 0x562F, - 1168: 0x5630, - 1169: 0x5633, - 1170: 0x5635, - 1171: 0x5637, - 1172: 0x5638, - 1173: 0x563A, - 1174: 0x563C, - 1175: 0x563D, - 1176: 0x563E, - 1177: 0x5640, - 1178: 0x5641, - 1179: 0x5642, - 1180: 0x5643, - 1181: 0x5644, - 1182: 0x5645, - 1183: 0x5646, - 1184: 0x5647, - 1185: 0x5648, - 1186: 0x5649, - 1187: 0x564A, - 1188: 0x564B, - 1189: 0x564F, - 1190: 0x5650, - 1191: 0x5651, - 1192: 0x5652, - 1193: 0x5653, - 1194: 0x5655, - 1195: 0x5656, - 1196: 0x565A, - 1197: 0x565B, - 1198: 0x565D, - 1199: 0x565E, - 1200: 0x565F, - 1201: 0x5660, - 1202: 0x5661, - 1203: 0x5663, - 1204: 0x5665, - 1205: 0x5666, - 1206: 0x5667, - 1207: 0x566D, - 1208: 0x566E, - 1209: 0x566F, - 1210: 0x5670, - 1211: 0x5672, - 1212: 0x5673, - 1213: 0x5674, - 1214: 0x5675, - 1215: 0x5677, - 1216: 0x5678, - 1217: 0x5679, - 1218: 0x567A, - 1219: 0x567D, - 1220: 0x567E, - 1221: 0x567F, - 1222: 0x5680, - 1223: 0x5681, - 1224: 0x5682, - 1225: 0x5683, - 1226: 0x5684, - 1227: 0x5687, - 1228: 0x5688, - 1229: 0x5689, - 1230: 0x568A, - 1231: 0x568B, - 1232: 0x568C, - 1233: 0x568D, - 1234: 0x5690, - 1235: 0x5691, - 1236: 0x5692, - 1237: 0x5694, - 1238: 0x5695, - 1239: 0x5696, - 1240: 0x5697, - 1241: 0x5698, - 1242: 0x5699, - 1243: 0x569A, - 1244: 0x569B, - 1245: 0x569C, - 1246: 0x569D, - 1247: 0x569E, - 1248: 0x569F, - 1249: 0x56A0, - 1250: 0x56A1, - 1251: 0x56A2, - 1252: 0x56A4, - 1253: 0x56A5, - 1254: 0x56A6, - 1255: 0x56A7, - 1256: 0x56A8, - 1257: 0x56A9, - 1258: 0x56AA, - 1259: 0x56AB, - 1260: 0x56AC, - 1261: 0x56AD, - 1262: 0x56AE, - 1263: 0x56B0, - 1264: 0x56B1, - 1265: 0x56B2, - 1266: 0x56B3, - 1267: 0x56B4, - 1268: 0x56B5, - 1269: 0x56B6, - 1270: 0x56B8, - 1271: 0x56B9, - 1272: 0x56BA, - 1273: 0x56BB, - 1274: 0x56BD, - 1275: 0x56BE, - 1276: 0x56BF, - 1277: 0x56C0, - 1278: 0x56C1, - 1279: 0x56C2, - 1280: 0x56C3, - 1281: 0x56C4, - 1282: 0x56C5, - 1283: 0x56C6, - 1284: 0x56C7, - 1285: 0x56C8, - 1286: 0x56C9, - 1287: 0x56CB, - 1288: 0x56CC, - 1289: 0x56CD, - 1290: 0x56CE, - 1291: 0x56CF, - 1292: 0x56D0, - 1293: 0x56D1, - 1294: 0x56D2, - 1295: 0x56D3, - 1296: 0x56D5, - 1297: 0x56D6, - 1298: 0x56D8, - 1299: 0x56D9, - 1300: 0x56DC, - 1301: 0x56E3, - 1302: 0x56E5, - 1303: 0x56E6, - 1304: 0x56E7, - 1305: 0x56E8, - 1306: 0x56E9, - 1307: 0x56EA, - 1308: 0x56EC, - 1309: 0x56EE, - 1310: 0x56EF, - 1311: 0x56F2, - 1312: 0x56F3, - 1313: 0x56F6, - 1314: 0x56F7, - 1315: 0x56F8, - 1316: 0x56FB, - 1317: 0x56FC, - 1318: 0x5700, - 1319: 0x5701, - 1320: 0x5702, - 1321: 0x5705, - 1322: 0x5707, - 1323: 0x570B, - 1324: 0x570C, - 1325: 0x570D, - 1326: 0x570E, - 1327: 0x570F, - 1328: 0x5710, - 1329: 0x5711, - 1330: 0x5712, - 1331: 0x5713, - 1332: 0x5714, - 1333: 0x5715, - 1334: 0x5716, - 1335: 0x5717, - 1336: 0x5718, - 1337: 0x5719, - 1338: 0x571A, - 1339: 0x571B, - 1340: 0x571D, - 1341: 0x571E, - 1342: 0x5720, - 1343: 0x5721, - 1344: 0x5722, - 1345: 0x5724, - 1346: 0x5725, - 1347: 0x5726, - 1348: 0x5727, - 1349: 0x572B, - 1350: 0x5731, - 1351: 0x5732, - 1352: 0x5734, - 1353: 0x5735, - 1354: 0x5736, - 1355: 0x5737, - 1356: 0x5738, - 1357: 0x573C, - 1358: 0x573D, - 1359: 0x573F, - 1360: 0x5741, - 1361: 0x5743, - 1362: 0x5744, - 1363: 0x5745, - 1364: 0x5746, - 1365: 0x5748, - 1366: 0x5749, - 1367: 0x574B, - 1368: 0x5752, - 1369: 0x5753, - 1370: 0x5754, - 1371: 0x5755, - 1372: 0x5756, - 1373: 0x5758, - 1374: 0x5759, - 1375: 0x5762, - 1376: 0x5763, - 1377: 0x5765, - 1378: 0x5767, - 1379: 0x576C, - 1380: 0x576E, - 1381: 0x5770, - 1382: 0x5771, - 1383: 0x5772, - 1384: 0x5774, - 1385: 0x5775, - 1386: 0x5778, - 1387: 0x5779, - 1388: 0x577A, - 1389: 0x577D, - 1390: 0x577E, - 1391: 0x577F, - 1392: 0x5780, - 1393: 0x5781, - 1394: 0x5787, - 1395: 0x5788, - 1396: 0x5789, - 1397: 0x578A, - 1398: 0x578D, - 1399: 0x578E, - 1400: 0x578F, - 1401: 0x5790, - 1402: 0x5791, - 1403: 0x5794, - 1404: 0x5795, - 1405: 0x5796, - 1406: 0x5797, - 1407: 0x5798, - 1408: 0x5799, - 1409: 0x579A, - 1410: 0x579C, - 1411: 0x579D, - 1412: 0x579E, - 1413: 0x579F, - 1414: 0x57A5, - 1415: 0x57A8, - 1416: 0x57AA, - 1417: 0x57AC, - 1418: 0x57AF, - 1419: 0x57B0, - 1420: 0x57B1, - 1421: 0x57B3, - 1422: 0x57B5, - 1423: 0x57B6, - 1424: 0x57B7, - 1425: 0x57B9, - 1426: 0x57BA, - 1427: 0x57BB, - 1428: 0x57BC, - 1429: 0x57BD, - 1430: 0x57BE, - 1431: 0x57BF, - 1432: 0x57C0, - 1433: 0x57C1, - 1434: 0x57C4, - 1435: 0x57C5, - 1436: 0x57C6, - 1437: 0x57C7, - 1438: 0x57C8, - 1439: 0x57C9, - 1440: 0x57CA, - 1441: 0x57CC, - 1442: 0x57CD, - 1443: 0x57D0, - 1444: 0x57D1, - 1445: 0x57D3, - 1446: 0x57D6, - 1447: 0x57D7, - 1448: 0x57DB, - 1449: 0x57DC, - 1450: 0x57DE, - 1451: 0x57E1, - 1452: 0x57E2, - 1453: 0x57E3, - 1454: 0x57E5, - 1455: 0x57E6, - 1456: 0x57E7, - 1457: 0x57E8, - 1458: 0x57E9, - 1459: 0x57EA, - 1460: 0x57EB, - 1461: 0x57EC, - 1462: 0x57EE, - 1463: 0x57F0, - 1464: 0x57F1, - 1465: 0x57F2, - 1466: 0x57F3, - 1467: 0x57F5, - 1468: 0x57F6, - 1469: 0x57F7, - 1470: 0x57FB, - 1471: 0x57FC, - 1472: 0x57FE, - 1473: 0x57FF, - 1474: 0x5801, - 1475: 0x5803, - 1476: 0x5804, - 1477: 0x5805, - 1478: 0x5808, - 1479: 0x5809, - 1480: 0x580A, - 1481: 0x580C, - 1482: 0x580E, - 1483: 0x580F, - 1484: 0x5810, - 1485: 0x5812, - 1486: 0x5813, - 1487: 0x5814, - 1488: 0x5816, - 1489: 0x5817, - 1490: 0x5818, - 1491: 0x581A, - 1492: 0x581B, - 1493: 0x581C, - 1494: 0x581D, - 1495: 0x581F, - 1496: 0x5822, - 1497: 0x5823, - 1498: 0x5825, - 1499: 0x5826, - 1500: 0x5827, - 1501: 0x5828, - 1502: 0x5829, - 1503: 0x582B, - 1504: 0x582C, - 1505: 0x582D, - 1506: 0x582E, - 1507: 0x582F, - 1508: 0x5831, - 1509: 0x5832, - 1510: 0x5833, - 1511: 0x5834, - 1512: 0x5836, - 1513: 0x5837, - 1514: 0x5838, - 1515: 0x5839, - 1516: 0x583A, - 1517: 0x583B, - 1518: 0x583C, - 1519: 0x583D, - 1520: 0x583E, - 1521: 0x583F, - 1522: 0x5840, - 1523: 0x5841, - 1524: 0x5842, - 1525: 0x5843, - 1526: 0x5845, - 1527: 0x5846, - 1528: 0x5847, - 1529: 0x5848, - 1530: 0x5849, - 1531: 0x584A, - 1532: 0x584B, - 1533: 0x584E, - 1534: 0x584F, - 1535: 0x5850, - 1536: 0x5852, - 1537: 0x5853, - 1538: 0x5855, - 1539: 0x5856, - 1540: 0x5857, - 1541: 0x5859, - 1542: 0x585A, - 1543: 0x585B, - 1544: 0x585C, - 1545: 0x585D, - 1546: 0x585F, - 1547: 0x5860, - 1548: 0x5861, - 1549: 0x5862, - 1550: 0x5863, - 1551: 0x5864, - 1552: 0x5866, - 1553: 0x5867, - 1554: 0x5868, - 1555: 0x5869, - 1556: 0x586A, - 1557: 0x586D, - 1558: 0x586E, - 1559: 0x586F, - 1560: 0x5870, - 1561: 0x5871, - 1562: 0x5872, - 1563: 0x5873, - 1564: 0x5874, - 1565: 0x5875, - 1566: 0x5876, - 1567: 0x5877, - 1568: 0x5878, - 1569: 0x5879, - 1570: 0x587A, - 1571: 0x587B, - 1572: 0x587C, - 1573: 0x587D, - 1574: 0x587F, - 1575: 0x5882, - 1576: 0x5884, - 1577: 0x5886, - 1578: 0x5887, - 1579: 0x5888, - 1580: 0x588A, - 1581: 0x588B, - 1582: 0x588C, - 1583: 0x588D, - 1584: 0x588E, - 1585: 0x588F, - 1586: 0x5890, - 1587: 0x5891, - 1588: 0x5894, - 1589: 0x5895, - 1590: 0x5896, - 1591: 0x5897, - 1592: 0x5898, - 1593: 0x589B, - 1594: 0x589C, - 1595: 0x589D, - 1596: 0x58A0, - 1597: 0x58A1, - 1598: 0x58A2, - 1599: 0x58A3, - 1600: 0x58A4, - 1601: 0x58A5, - 1602: 0x58A6, - 1603: 0x58A7, - 1604: 0x58AA, - 1605: 0x58AB, - 1606: 0x58AC, - 1607: 0x58AD, - 1608: 0x58AE, - 1609: 0x58AF, - 1610: 0x58B0, - 1611: 0x58B1, - 1612: 0x58B2, - 1613: 0x58B3, - 1614: 0x58B4, - 1615: 0x58B5, - 1616: 0x58B6, - 1617: 0x58B7, - 1618: 0x58B8, - 1619: 0x58B9, - 1620: 0x58BA, - 1621: 0x58BB, - 1622: 0x58BD, - 1623: 0x58BE, - 1624: 0x58BF, - 1625: 0x58C0, - 1626: 0x58C2, - 1627: 0x58C3, - 1628: 0x58C4, - 1629: 0x58C6, - 1630: 0x58C7, - 1631: 0x58C8, - 1632: 0x58C9, - 1633: 0x58CA, - 1634: 0x58CB, - 1635: 0x58CC, - 1636: 0x58CD, - 1637: 0x58CE, - 1638: 0x58CF, - 1639: 0x58D0, - 1640: 0x58D2, - 1641: 0x58D3, - 1642: 0x58D4, - 1643: 0x58D6, - 1644: 0x58D7, - 1645: 0x58D8, - 1646: 0x58D9, - 1647: 0x58DA, - 1648: 0x58DB, - 1649: 0x58DC, - 1650: 0x58DD, - 1651: 0x58DE, - 1652: 0x58DF, - 1653: 0x58E0, - 1654: 0x58E1, - 1655: 0x58E2, - 1656: 0x58E3, - 1657: 0x58E5, - 1658: 0x58E6, - 1659: 0x58E7, - 1660: 0x58E8, - 1661: 0x58E9, - 1662: 0x58EA, - 1663: 0x58ED, - 1664: 0x58EF, - 1665: 0x58F1, - 1666: 0x58F2, - 1667: 0x58F4, - 1668: 0x58F5, - 1669: 0x58F7, - 1670: 0x58F8, - 1671: 0x58FA, - 1672: 0x58FB, - 1673: 0x58FC, - 1674: 0x58FD, - 1675: 0x58FE, - 1676: 0x58FF, - 1677: 0x5900, - 1678: 0x5901, - 1679: 0x5903, - 1680: 0x5905, - 1681: 0x5906, - 1682: 0x5908, - 1683: 0x5909, - 1684: 0x590A, - 1685: 0x590B, - 1686: 0x590C, - 1687: 0x590E, - 1688: 0x5910, - 1689: 0x5911, - 1690: 0x5912, - 1691: 0x5913, - 1692: 0x5917, - 1693: 0x5918, - 1694: 0x591B, - 1695: 0x591D, - 1696: 0x591E, - 1697: 0x5920, - 1698: 0x5921, - 1699: 0x5922, - 1700: 0x5923, - 1701: 0x5926, - 1702: 0x5928, - 1703: 0x592C, - 1704: 0x5930, - 1705: 0x5932, - 1706: 0x5933, - 1707: 0x5935, - 1708: 0x5936, - 1709: 0x593B, - 1710: 0x593D, - 1711: 0x593E, - 1712: 0x593F, - 1713: 0x5940, - 1714: 0x5943, - 1715: 0x5945, - 1716: 0x5946, - 1717: 0x594A, - 1718: 0x594C, - 1719: 0x594D, - 1720: 0x5950, - 1721: 0x5952, - 1722: 0x5953, - 1723: 0x5959, - 1724: 0x595B, - 1725: 0x595C, - 1726: 0x595D, - 1727: 0x595E, - 1728: 0x595F, - 1729: 0x5961, - 1730: 0x5963, - 1731: 0x5964, - 1732: 0x5966, - 1733: 0x5967, - 1734: 0x5968, - 1735: 0x5969, - 1736: 0x596A, - 1737: 0x596B, - 1738: 0x596C, - 1739: 0x596D, - 1740: 0x596E, - 1741: 0x596F, - 1742: 0x5970, - 1743: 0x5971, - 1744: 0x5972, - 1745: 0x5975, - 1746: 0x5977, - 1747: 0x597A, - 1748: 0x597B, - 1749: 0x597C, - 1750: 0x597E, - 1751: 0x597F, - 1752: 0x5980, - 1753: 0x5985, - 1754: 0x5989, - 1755: 0x598B, - 1756: 0x598C, - 1757: 0x598E, - 1758: 0x598F, - 1759: 0x5990, - 1760: 0x5991, - 1761: 0x5994, - 1762: 0x5995, - 1763: 0x5998, - 1764: 0x599A, - 1765: 0x599B, - 1766: 0x599C, - 1767: 0x599D, - 1768: 0x599F, - 1769: 0x59A0, - 1770: 0x59A1, - 1771: 0x59A2, - 1772: 0x59A6, - 1773: 0x59A7, - 1774: 0x59AC, - 1775: 0x59AD, - 1776: 0x59B0, - 1777: 0x59B1, - 1778: 0x59B3, - 1779: 0x59B4, - 1780: 0x59B5, - 1781: 0x59B6, - 1782: 0x59B7, - 1783: 0x59B8, - 1784: 0x59BA, - 1785: 0x59BC, - 1786: 0x59BD, - 1787: 0x59BF, - 1788: 0x59C0, - 1789: 0x59C1, - 1790: 0x59C2, - 1791: 0x59C3, - 1792: 0x59C4, - 1793: 0x59C5, - 1794: 0x59C7, - 1795: 0x59C8, - 1796: 0x59C9, - 1797: 0x59CC, - 1798: 0x59CD, - 1799: 0x59CE, - 1800: 0x59CF, - 1801: 0x59D5, - 1802: 0x59D6, - 1803: 0x59D9, - 1804: 0x59DB, - 1805: 0x59DE, - 1806: 0x59DF, - 1807: 0x59E0, - 1808: 0x59E1, - 1809: 0x59E2, - 1810: 0x59E4, - 1811: 0x59E6, - 1812: 0x59E7, - 1813: 0x59E9, - 1814: 0x59EA, - 1815: 0x59EB, - 1816: 0x59ED, - 1817: 0x59EE, - 1818: 0x59EF, - 1819: 0x59F0, - 1820: 0x59F1, - 1821: 0x59F2, - 1822: 0x59F3, - 1823: 0x59F4, - 1824: 0x59F5, - 1825: 0x59F6, - 1826: 0x59F7, - 1827: 0x59F8, - 1828: 0x59FA, - 1829: 0x59FC, - 1830: 0x59FD, - 1831: 0x59FE, - 1832: 0x5A00, - 1833: 0x5A02, - 1834: 0x5A0A, - 1835: 0x5A0B, - 1836: 0x5A0D, - 1837: 0x5A0E, - 1838: 0x5A0F, - 1839: 0x5A10, - 1840: 0x5A12, - 1841: 0x5A14, - 1842: 0x5A15, - 1843: 0x5A16, - 1844: 0x5A17, - 1845: 0x5A19, - 1846: 0x5A1A, - 1847: 0x5A1B, - 1848: 0x5A1D, - 1849: 0x5A1E, - 1850: 0x5A21, - 1851: 0x5A22, - 1852: 0x5A24, - 1853: 0x5A26, - 1854: 0x5A27, - 1855: 0x5A28, - 1856: 0x5A2A, - 1857: 0x5A2B, - 1858: 0x5A2C, - 1859: 0x5A2D, - 1860: 0x5A2E, - 1861: 0x5A2F, - 1862: 0x5A30, - 1863: 0x5A33, - 1864: 0x5A35, - 1865: 0x5A37, - 1866: 0x5A38, - 1867: 0x5A39, - 1868: 0x5A3A, - 1869: 0x5A3B, - 1870: 0x5A3D, - 1871: 0x5A3E, - 1872: 0x5A3F, - 1873: 0x5A41, - 1874: 0x5A42, - 1875: 0x5A43, - 1876: 0x5A44, - 1877: 0x5A45, - 1878: 0x5A47, - 1879: 0x5A48, - 1880: 0x5A4B, - 1881: 0x5A4C, - 1882: 0x5A4D, - 1883: 0x5A4E, - 1884: 0x5A4F, - 1885: 0x5A50, - 1886: 0x5A51, - 1887: 0x5A52, - 1888: 0x5A53, - 1889: 0x5A54, - 1890: 0x5A56, - 1891: 0x5A57, - 1892: 0x5A58, - 1893: 0x5A59, - 1894: 0x5A5B, - 1895: 0x5A5C, - 1896: 0x5A5D, - 1897: 0x5A5E, - 1898: 0x5A5F, - 1899: 0x5A60, - 1900: 0x5A61, - 1901: 0x5A63, - 1902: 0x5A64, - 1903: 0x5A65, - 1904: 0x5A66, - 1905: 0x5A68, - 1906: 0x5A69, - 1907: 0x5A6B, - 1908: 0x5A6C, - 1909: 0x5A6D, - 1910: 0x5A6E, - 1911: 0x5A6F, - 1912: 0x5A70, - 1913: 0x5A71, - 1914: 0x5A72, - 1915: 0x5A73, - 1916: 0x5A78, - 1917: 0x5A79, - 1918: 0x5A7B, - 1919: 0x5A7C, - 1920: 0x5A7D, - 1921: 0x5A7E, - 1922: 0x5A80, - 1923: 0x5A81, - 1924: 0x5A82, - 1925: 0x5A83, - 1926: 0x5A84, - 1927: 0x5A85, - 1928: 0x5A86, - 1929: 0x5A87, - 1930: 0x5A88, - 1931: 0x5A89, - 1932: 0x5A8A, - 1933: 0x5A8B, - 1934: 0x5A8C, - 1935: 0x5A8D, - 1936: 0x5A8E, - 1937: 0x5A8F, - 1938: 0x5A90, - 1939: 0x5A91, - 1940: 0x5A93, - 1941: 0x5A94, - 1942: 0x5A95, - 1943: 0x5A96, - 1944: 0x5A97, - 1945: 0x5A98, - 1946: 0x5A99, - 1947: 0x5A9C, - 1948: 0x5A9D, - 1949: 0x5A9E, - 1950: 0x5A9F, - 1951: 0x5AA0, - 1952: 0x5AA1, - 1953: 0x5AA2, - 1954: 0x5AA3, - 1955: 0x5AA4, - 1956: 0x5AA5, - 1957: 0x5AA6, - 1958: 0x5AA7, - 1959: 0x5AA8, - 1960: 0x5AA9, - 1961: 0x5AAB, - 1962: 0x5AAC, - 1963: 0x5AAD, - 1964: 0x5AAE, - 1965: 0x5AAF, - 1966: 0x5AB0, - 1967: 0x5AB1, - 1968: 0x5AB4, - 1969: 0x5AB6, - 1970: 0x5AB7, - 1971: 0x5AB9, - 1972: 0x5ABA, - 1973: 0x5ABB, - 1974: 0x5ABC, - 1975: 0x5ABD, - 1976: 0x5ABF, - 1977: 0x5AC0, - 1978: 0x5AC3, - 1979: 0x5AC4, - 1980: 0x5AC5, - 1981: 0x5AC6, - 1982: 0x5AC7, - 1983: 0x5AC8, - 1984: 0x5ACA, - 1985: 0x5ACB, - 1986: 0x5ACD, - 1987: 0x5ACE, - 1988: 0x5ACF, - 1989: 0x5AD0, - 1990: 0x5AD1, - 1991: 0x5AD3, - 1992: 0x5AD5, - 1993: 0x5AD7, - 1994: 0x5AD9, - 1995: 0x5ADA, - 1996: 0x5ADB, - 1997: 0x5ADD, - 1998: 0x5ADE, - 1999: 0x5ADF, - 2000: 0x5AE2, - 2001: 0x5AE4, - 2002: 0x5AE5, - 2003: 0x5AE7, - 2004: 0x5AE8, - 2005: 0x5AEA, - 2006: 0x5AEC, - 2007: 0x5AED, - 2008: 0x5AEE, - 2009: 0x5AEF, - 2010: 0x5AF0, - 2011: 0x5AF2, - 2012: 0x5AF3, - 2013: 0x5AF4, - 2014: 0x5AF5, - 2015: 0x5AF6, - 2016: 0x5AF7, - 2017: 0x5AF8, - 2018: 0x5AF9, - 2019: 0x5AFA, - 2020: 0x5AFB, - 2021: 0x5AFC, - 2022: 0x5AFD, - 2023: 0x5AFE, - 2024: 0x5AFF, - 2025: 0x5B00, - 2026: 0x5B01, - 2027: 0x5B02, - 2028: 0x5B03, - 2029: 0x5B04, - 2030: 0x5B05, - 2031: 0x5B06, - 2032: 0x5B07, - 2033: 0x5B08, - 2034: 0x5B0A, - 2035: 0x5B0B, - 2036: 0x5B0C, - 2037: 0x5B0D, - 2038: 0x5B0E, - 2039: 0x5B0F, - 2040: 0x5B10, - 2041: 0x5B11, - 2042: 0x5B12, - 2043: 0x5B13, - 2044: 0x5B14, - 2045: 0x5B15, - 2046: 0x5B18, - 2047: 0x5B19, - 2048: 0x5B1A, - 2049: 0x5B1B, - 2050: 0x5B1C, - 2051: 0x5B1D, - 2052: 0x5B1E, - 2053: 0x5B1F, - 2054: 0x5B20, - 2055: 0x5B21, - 2056: 0x5B22, - 2057: 0x5B23, - 2058: 0x5B24, - 2059: 0x5B25, - 2060: 0x5B26, - 2061: 0x5B27, - 2062: 0x5B28, - 2063: 0x5B29, - 2064: 0x5B2A, - 2065: 0x5B2B, - 2066: 0x5B2C, - 2067: 0x5B2D, - 2068: 0x5B2E, - 2069: 0x5B2F, - 2070: 0x5B30, - 2071: 0x5B31, - 2072: 0x5B33, - 2073: 0x5B35, - 2074: 0x5B36, - 2075: 0x5B38, - 2076: 0x5B39, - 2077: 0x5B3A, - 2078: 0x5B3B, - 2079: 0x5B3C, - 2080: 0x5B3D, - 2081: 0x5B3E, - 2082: 0x5B3F, - 2083: 0x5B41, - 2084: 0x5B42, - 2085: 0x5B43, - 2086: 0x5B44, - 2087: 0x5B45, - 2088: 0x5B46, - 2089: 0x5B47, - 2090: 0x5B48, - 2091: 0x5B49, - 2092: 0x5B4A, - 2093: 0x5B4B, - 2094: 0x5B4C, - 2095: 0x5B4D, - 2096: 0x5B4E, - 2097: 0x5B4F, - 2098: 0x5B52, - 2099: 0x5B56, - 2100: 0x5B5E, - 2101: 0x5B60, - 2102: 0x5B61, - 2103: 0x5B67, - 2104: 0x5B68, - 2105: 0x5B6B, - 2106: 0x5B6D, - 2107: 0x5B6E, - 2108: 0x5B6F, - 2109: 0x5B72, - 2110: 0x5B74, - 2111: 0x5B76, - 2112: 0x5B77, - 2113: 0x5B78, - 2114: 0x5B79, - 2115: 0x5B7B, - 2116: 0x5B7C, - 2117: 0x5B7E, - 2118: 0x5B7F, - 2119: 0x5B82, - 2120: 0x5B86, - 2121: 0x5B8A, - 2122: 0x5B8D, - 2123: 0x5B8E, - 2124: 0x5B90, - 2125: 0x5B91, - 2126: 0x5B92, - 2127: 0x5B94, - 2128: 0x5B96, - 2129: 0x5B9F, - 2130: 0x5BA7, - 2131: 0x5BA8, - 2132: 0x5BA9, - 2133: 0x5BAC, - 2134: 0x5BAD, - 2135: 0x5BAE, - 2136: 0x5BAF, - 2137: 0x5BB1, - 2138: 0x5BB2, - 2139: 0x5BB7, - 2140: 0x5BBA, - 2141: 0x5BBB, - 2142: 0x5BBC, - 2143: 0x5BC0, - 2144: 0x5BC1, - 2145: 0x5BC3, - 2146: 0x5BC8, - 2147: 0x5BC9, - 2148: 0x5BCA, - 2149: 0x5BCB, - 2150: 0x5BCD, - 2151: 0x5BCE, - 2152: 0x5BCF, - 2153: 0x5BD1, - 2154: 0x5BD4, - 2155: 0x5BD5, - 2156: 0x5BD6, - 2157: 0x5BD7, - 2158: 0x5BD8, - 2159: 0x5BD9, - 2160: 0x5BDA, - 2161: 0x5BDB, - 2162: 0x5BDC, - 2163: 0x5BE0, - 2164: 0x5BE2, - 2165: 0x5BE3, - 2166: 0x5BE6, - 2167: 0x5BE7, - 2168: 0x5BE9, - 2169: 0x5BEA, - 2170: 0x5BEB, - 2171: 0x5BEC, - 2172: 0x5BED, - 2173: 0x5BEF, - 2174: 0x5BF1, - 2175: 0x5BF2, - 2176: 0x5BF3, - 2177: 0x5BF4, - 2178: 0x5BF5, - 2179: 0x5BF6, - 2180: 0x5BF7, - 2181: 0x5BFD, - 2182: 0x5BFE, - 2183: 0x5C00, - 2184: 0x5C02, - 2185: 0x5C03, - 2186: 0x5C05, - 2187: 0x5C07, - 2188: 0x5C08, - 2189: 0x5C0B, - 2190: 0x5C0C, - 2191: 0x5C0D, - 2192: 0x5C0E, - 2193: 0x5C10, - 2194: 0x5C12, - 2195: 0x5C13, - 2196: 0x5C17, - 2197: 0x5C19, - 2198: 0x5C1B, - 2199: 0x5C1E, - 2200: 0x5C1F, - 2201: 0x5C20, - 2202: 0x5C21, - 2203: 0x5C23, - 2204: 0x5C26, - 2205: 0x5C28, - 2206: 0x5C29, - 2207: 0x5C2A, - 2208: 0x5C2B, - 2209: 0x5C2D, - 2210: 0x5C2E, - 2211: 0x5C2F, - 2212: 0x5C30, - 2213: 0x5C32, - 2214: 0x5C33, - 2215: 0x5C35, - 2216: 0x5C36, - 2217: 0x5C37, - 2218: 0x5C43, - 2219: 0x5C44, - 2220: 0x5C46, - 2221: 0x5C47, - 2222: 0x5C4C, - 2223: 0x5C4D, - 2224: 0x5C52, - 2225: 0x5C53, - 2226: 0x5C54, - 2227: 0x5C56, - 2228: 0x5C57, - 2229: 0x5C58, - 2230: 0x5C5A, - 2231: 0x5C5B, - 2232: 0x5C5C, - 2233: 0x5C5D, - 2234: 0x5C5F, - 2235: 0x5C62, - 2236: 0x5C64, - 2237: 0x5C67, - 2238: 0x5C68, - 2239: 0x5C69, - 2240: 0x5C6A, - 2241: 0x5C6B, - 2242: 0x5C6C, - 2243: 0x5C6D, - 2244: 0x5C70, - 2245: 0x5C72, - 2246: 0x5C73, - 2247: 0x5C74, - 2248: 0x5C75, - 2249: 0x5C76, - 2250: 0x5C77, - 2251: 0x5C78, - 2252: 0x5C7B, - 2253: 0x5C7C, - 2254: 0x5C7D, - 2255: 0x5C7E, - 2256: 0x5C80, - 2257: 0x5C83, - 2258: 0x5C84, - 2259: 0x5C85, - 2260: 0x5C86, - 2261: 0x5C87, - 2262: 0x5C89, - 2263: 0x5C8A, - 2264: 0x5C8B, - 2265: 0x5C8E, - 2266: 0x5C8F, - 2267: 0x5C92, - 2268: 0x5C93, - 2269: 0x5C95, - 2270: 0x5C9D, - 2271: 0x5C9E, - 2272: 0x5C9F, - 2273: 0x5CA0, - 2274: 0x5CA1, - 2275: 0x5CA4, - 2276: 0x5CA5, - 2277: 0x5CA6, - 2278: 0x5CA7, - 2279: 0x5CA8, - 2280: 0x5CAA, - 2281: 0x5CAE, - 2282: 0x5CAF, - 2283: 0x5CB0, - 2284: 0x5CB2, - 2285: 0x5CB4, - 2286: 0x5CB6, - 2287: 0x5CB9, - 2288: 0x5CBA, - 2289: 0x5CBB, - 2290: 0x5CBC, - 2291: 0x5CBE, - 2292: 0x5CC0, - 2293: 0x5CC2, - 2294: 0x5CC3, - 2295: 0x5CC5, - 2296: 0x5CC6, - 2297: 0x5CC7, - 2298: 0x5CC8, - 2299: 0x5CC9, - 2300: 0x5CCA, - 2301: 0x5CCC, - 2302: 0x5CCD, - 2303: 0x5CCE, - 2304: 0x5CCF, - 2305: 0x5CD0, - 2306: 0x5CD1, - 2307: 0x5CD3, - 2308: 0x5CD4, - 2309: 0x5CD5, - 2310: 0x5CD6, - 2311: 0x5CD7, - 2312: 0x5CD8, - 2313: 0x5CDA, - 2314: 0x5CDB, - 2315: 0x5CDC, - 2316: 0x5CDD, - 2317: 0x5CDE, - 2318: 0x5CDF, - 2319: 0x5CE0, - 2320: 0x5CE2, - 2321: 0x5CE3, - 2322: 0x5CE7, - 2323: 0x5CE9, - 2324: 0x5CEB, - 2325: 0x5CEC, - 2326: 0x5CEE, - 2327: 0x5CEF, - 2328: 0x5CF1, - 2329: 0x5CF2, - 2330: 0x5CF3, - 2331: 0x5CF4, - 2332: 0x5CF5, - 2333: 0x5CF6, - 2334: 0x5CF7, - 2335: 0x5CF8, - 2336: 0x5CF9, - 2337: 0x5CFA, - 2338: 0x5CFC, - 2339: 0x5CFD, - 2340: 0x5CFE, - 2341: 0x5CFF, - 2342: 0x5D00, - 2343: 0x5D01, - 2344: 0x5D04, - 2345: 0x5D05, - 2346: 0x5D08, - 2347: 0x5D09, - 2348: 0x5D0A, - 2349: 0x5D0B, - 2350: 0x5D0C, - 2351: 0x5D0D, - 2352: 0x5D0F, - 2353: 0x5D10, - 2354: 0x5D11, - 2355: 0x5D12, - 2356: 0x5D13, - 2357: 0x5D15, - 2358: 0x5D17, - 2359: 0x5D18, - 2360: 0x5D19, - 2361: 0x5D1A, - 2362: 0x5D1C, - 2363: 0x5D1D, - 2364: 0x5D1F, - 2365: 0x5D20, - 2366: 0x5D21, - 2367: 0x5D22, - 2368: 0x5D23, - 2369: 0x5D25, - 2370: 0x5D28, - 2371: 0x5D2A, - 2372: 0x5D2B, - 2373: 0x5D2C, - 2374: 0x5D2F, - 2375: 0x5D30, - 2376: 0x5D31, - 2377: 0x5D32, - 2378: 0x5D33, - 2379: 0x5D35, - 2380: 0x5D36, - 2381: 0x5D37, - 2382: 0x5D38, - 2383: 0x5D39, - 2384: 0x5D3A, - 2385: 0x5D3B, - 2386: 0x5D3C, - 2387: 0x5D3F, - 2388: 0x5D40, - 2389: 0x5D41, - 2390: 0x5D42, - 2391: 0x5D43, - 2392: 0x5D44, - 2393: 0x5D45, - 2394: 0x5D46, - 2395: 0x5D48, - 2396: 0x5D49, - 2397: 0x5D4D, - 2398: 0x5D4E, - 2399: 0x5D4F, - 2400: 0x5D50, - 2401: 0x5D51, - 2402: 0x5D52, - 2403: 0x5D53, - 2404: 0x5D54, - 2405: 0x5D55, - 2406: 0x5D56, - 2407: 0x5D57, - 2408: 0x5D59, - 2409: 0x5D5A, - 2410: 0x5D5C, - 2411: 0x5D5E, - 2412: 0x5D5F, - 2413: 0x5D60, - 2414: 0x5D61, - 2415: 0x5D62, - 2416: 0x5D63, - 2417: 0x5D64, - 2418: 0x5D65, - 2419: 0x5D66, - 2420: 0x5D67, - 2421: 0x5D68, - 2422: 0x5D6A, - 2423: 0x5D6D, - 2424: 0x5D6E, - 2425: 0x5D70, - 2426: 0x5D71, - 2427: 0x5D72, - 2428: 0x5D73, - 2429: 0x5D75, - 2430: 0x5D76, - 2431: 0x5D77, - 2432: 0x5D78, - 2433: 0x5D79, - 2434: 0x5D7A, - 2435: 0x5D7B, - 2436: 0x5D7C, - 2437: 0x5D7D, - 2438: 0x5D7E, - 2439: 0x5D7F, - 2440: 0x5D80, - 2441: 0x5D81, - 2442: 0x5D83, - 2443: 0x5D84, - 2444: 0x5D85, - 2445: 0x5D86, - 2446: 0x5D87, - 2447: 0x5D88, - 2448: 0x5D89, - 2449: 0x5D8A, - 2450: 0x5D8B, - 2451: 0x5D8C, - 2452: 0x5D8D, - 2453: 0x5D8E, - 2454: 0x5D8F, - 2455: 0x5D90, - 2456: 0x5D91, - 2457: 0x5D92, - 2458: 0x5D93, - 2459: 0x5D94, - 2460: 0x5D95, - 2461: 0x5D96, - 2462: 0x5D97, - 2463: 0x5D98, - 2464: 0x5D9A, - 2465: 0x5D9B, - 2466: 0x5D9C, - 2467: 0x5D9E, - 2468: 0x5D9F, - 2469: 0x5DA0, - 2470: 0x5DA1, - 2471: 0x5DA2, - 2472: 0x5DA3, - 2473: 0x5DA4, - 2474: 0x5DA5, - 2475: 0x5DA6, - 2476: 0x5DA7, - 2477: 0x5DA8, - 2478: 0x5DA9, - 2479: 0x5DAA, - 2480: 0x5DAB, - 2481: 0x5DAC, - 2482: 0x5DAD, - 2483: 0x5DAE, - 2484: 0x5DAF, - 2485: 0x5DB0, - 2486: 0x5DB1, - 2487: 0x5DB2, - 2488: 0x5DB3, - 2489: 0x5DB4, - 2490: 0x5DB5, - 2491: 0x5DB6, - 2492: 0x5DB8, - 2493: 0x5DB9, - 2494: 0x5DBA, - 2495: 0x5DBB, - 2496: 0x5DBC, - 2497: 0x5DBD, - 2498: 0x5DBE, - 2499: 0x5DBF, - 2500: 0x5DC0, - 2501: 0x5DC1, - 2502: 0x5DC2, - 2503: 0x5DC3, - 2504: 0x5DC4, - 2505: 0x5DC6, - 2506: 0x5DC7, - 2507: 0x5DC8, - 2508: 0x5DC9, - 2509: 0x5DCA, - 2510: 0x5DCB, - 2511: 0x5DCC, - 2512: 0x5DCE, - 2513: 0x5DCF, - 2514: 0x5DD0, - 2515: 0x5DD1, - 2516: 0x5DD2, - 2517: 0x5DD3, - 2518: 0x5DD4, - 2519: 0x5DD5, - 2520: 0x5DD6, - 2521: 0x5DD7, - 2522: 0x5DD8, - 2523: 0x5DD9, - 2524: 0x5DDA, - 2525: 0x5DDC, - 2526: 0x5DDF, - 2527: 0x5DE0, - 2528: 0x5DE3, - 2529: 0x5DE4, - 2530: 0x5DEA, - 2531: 0x5DEC, - 2532: 0x5DED, - 2533: 0x5DF0, - 2534: 0x5DF5, - 2535: 0x5DF6, - 2536: 0x5DF8, - 2537: 0x5DF9, - 2538: 0x5DFA, - 2539: 0x5DFB, - 2540: 0x5DFC, - 2541: 0x5DFF, - 2542: 0x5E00, - 2543: 0x5E04, - 2544: 0x5E07, - 2545: 0x5E09, - 2546: 0x5E0A, - 2547: 0x5E0B, - 2548: 0x5E0D, - 2549: 0x5E0E, - 2550: 0x5E12, - 2551: 0x5E13, - 2552: 0x5E17, - 2553: 0x5E1E, - 2554: 0x5E1F, - 2555: 0x5E20, - 2556: 0x5E21, - 2557: 0x5E22, - 2558: 0x5E23, - 2559: 0x5E24, - 2560: 0x5E25, - 2561: 0x5E28, - 2562: 0x5E29, - 2563: 0x5E2A, - 2564: 0x5E2B, - 2565: 0x5E2C, - 2566: 0x5E2F, - 2567: 0x5E30, - 2568: 0x5E32, - 2569: 0x5E33, - 2570: 0x5E34, - 2571: 0x5E35, - 2572: 0x5E36, - 2573: 0x5E39, - 2574: 0x5E3A, - 2575: 0x5E3E, - 2576: 0x5E3F, - 2577: 0x5E40, - 2578: 0x5E41, - 2579: 0x5E43, - 2580: 0x5E46, - 2581: 0x5E47, - 2582: 0x5E48, - 2583: 0x5E49, - 2584: 0x5E4A, - 2585: 0x5E4B, - 2586: 0x5E4D, - 2587: 0x5E4E, - 2588: 0x5E4F, - 2589: 0x5E50, - 2590: 0x5E51, - 2591: 0x5E52, - 2592: 0x5E53, - 2593: 0x5E56, - 2594: 0x5E57, - 2595: 0x5E58, - 2596: 0x5E59, - 2597: 0x5E5A, - 2598: 0x5E5C, - 2599: 0x5E5D, - 2600: 0x5E5F, - 2601: 0x5E60, - 2602: 0x5E63, - 2603: 0x5E64, - 2604: 0x5E65, - 2605: 0x5E66, - 2606: 0x5E67, - 2607: 0x5E68, - 2608: 0x5E69, - 2609: 0x5E6A, - 2610: 0x5E6B, - 2611: 0x5E6C, - 2612: 0x5E6D, - 2613: 0x5E6E, - 2614: 0x5E6F, - 2615: 0x5E70, - 2616: 0x5E71, - 2617: 0x5E75, - 2618: 0x5E77, - 2619: 0x5E79, - 2620: 0x5E7E, - 2621: 0x5E81, - 2622: 0x5E82, - 2623: 0x5E83, - 2624: 0x5E85, - 2625: 0x5E88, - 2626: 0x5E89, - 2627: 0x5E8C, - 2628: 0x5E8D, - 2629: 0x5E8E, - 2630: 0x5E92, - 2631: 0x5E98, - 2632: 0x5E9B, - 2633: 0x5E9D, - 2634: 0x5EA1, - 2635: 0x5EA2, - 2636: 0x5EA3, - 2637: 0x5EA4, - 2638: 0x5EA8, - 2639: 0x5EA9, - 2640: 0x5EAA, - 2641: 0x5EAB, - 2642: 0x5EAC, - 2643: 0x5EAE, - 2644: 0x5EAF, - 2645: 0x5EB0, - 2646: 0x5EB1, - 2647: 0x5EB2, - 2648: 0x5EB4, - 2649: 0x5EBA, - 2650: 0x5EBB, - 2651: 0x5EBC, - 2652: 0x5EBD, - 2653: 0x5EBF, - 2654: 0x5EC0, - 2655: 0x5EC1, - 2656: 0x5EC2, - 2657: 0x5EC3, - 2658: 0x5EC4, - 2659: 0x5EC5, - 2660: 0x5EC6, - 2661: 0x5EC7, - 2662: 0x5EC8, - 2663: 0x5ECB, - 2664: 0x5ECC, - 2665: 0x5ECD, - 2666: 0x5ECE, - 2667: 0x5ECF, - 2668: 0x5ED0, - 2669: 0x5ED4, - 2670: 0x5ED5, - 2671: 0x5ED7, - 2672: 0x5ED8, - 2673: 0x5ED9, - 2674: 0x5EDA, - 2675: 0x5EDC, - 2676: 0x5EDD, - 2677: 0x5EDE, - 2678: 0x5EDF, - 2679: 0x5EE0, - 2680: 0x5EE1, - 2681: 0x5EE2, - 2682: 0x5EE3, - 2683: 0x5EE4, - 2684: 0x5EE5, - 2685: 0x5EE6, - 2686: 0x5EE7, - 2687: 0x5EE9, - 2688: 0x5EEB, - 2689: 0x5EEC, - 2690: 0x5EED, - 2691: 0x5EEE, - 2692: 0x5EEF, - 2693: 0x5EF0, - 2694: 0x5EF1, - 2695: 0x5EF2, - 2696: 0x5EF3, - 2697: 0x5EF5, - 2698: 0x5EF8, - 2699: 0x5EF9, - 2700: 0x5EFB, - 2701: 0x5EFC, - 2702: 0x5EFD, - 2703: 0x5F05, - 2704: 0x5F06, - 2705: 0x5F07, - 2706: 0x5F09, - 2707: 0x5F0C, - 2708: 0x5F0D, - 2709: 0x5F0E, - 2710: 0x5F10, - 2711: 0x5F12, - 2712: 0x5F14, - 2713: 0x5F16, - 2714: 0x5F19, - 2715: 0x5F1A, - 2716: 0x5F1C, - 2717: 0x5F1D, - 2718: 0x5F1E, - 2719: 0x5F21, - 2720: 0x5F22, - 2721: 0x5F23, - 2722: 0x5F24, - 2723: 0x5F28, - 2724: 0x5F2B, - 2725: 0x5F2C, - 2726: 0x5F2E, - 2727: 0x5F30, - 2728: 0x5F32, - 2729: 0x5F33, - 2730: 0x5F34, - 2731: 0x5F35, - 2732: 0x5F36, - 2733: 0x5F37, - 2734: 0x5F38, - 2735: 0x5F3B, - 2736: 0x5F3D, - 2737: 0x5F3E, - 2738: 0x5F3F, - 2739: 0x5F41, - 2740: 0x5F42, - 2741: 0x5F43, - 2742: 0x5F44, - 2743: 0x5F45, - 2744: 0x5F46, - 2745: 0x5F47, - 2746: 0x5F48, - 2747: 0x5F49, - 2748: 0x5F4A, - 2749: 0x5F4B, - 2750: 0x5F4C, - 2751: 0x5F4D, - 2752: 0x5F4E, - 2753: 0x5F4F, - 2754: 0x5F51, - 2755: 0x5F54, - 2756: 0x5F59, - 2757: 0x5F5A, - 2758: 0x5F5B, - 2759: 0x5F5C, - 2760: 0x5F5E, - 2761: 0x5F5F, - 2762: 0x5F60, - 2763: 0x5F63, - 2764: 0x5F65, - 2765: 0x5F67, - 2766: 0x5F68, - 2767: 0x5F6B, - 2768: 0x5F6E, - 2769: 0x5F6F, - 2770: 0x5F72, - 2771: 0x5F74, - 2772: 0x5F75, - 2773: 0x5F76, - 2774: 0x5F78, - 2775: 0x5F7A, - 2776: 0x5F7D, - 2777: 0x5F7E, - 2778: 0x5F7F, - 2779: 0x5F83, - 2780: 0x5F86, - 2781: 0x5F8D, - 2782: 0x5F8E, - 2783: 0x5F8F, - 2784: 0x5F91, - 2785: 0x5F93, - 2786: 0x5F94, - 2787: 0x5F96, - 2788: 0x5F9A, - 2789: 0x5F9B, - 2790: 0x5F9D, - 2791: 0x5F9E, - 2792: 0x5F9F, - 2793: 0x5FA0, - 2794: 0x5FA2, - 2795: 0x5FA3, - 2796: 0x5FA4, - 2797: 0x5FA5, - 2798: 0x5FA6, - 2799: 0x5FA7, - 2800: 0x5FA9, - 2801: 0x5FAB, - 2802: 0x5FAC, - 2803: 0x5FAF, - 2804: 0x5FB0, - 2805: 0x5FB1, - 2806: 0x5FB2, - 2807: 0x5FB3, - 2808: 0x5FB4, - 2809: 0x5FB6, - 2810: 0x5FB8, - 2811: 0x5FB9, - 2812: 0x5FBA, - 2813: 0x5FBB, - 2814: 0x5FBE, - 2815: 0x5FBF, - 2816: 0x5FC0, - 2817: 0x5FC1, - 2818: 0x5FC2, - 2819: 0x5FC7, - 2820: 0x5FC8, - 2821: 0x5FCA, - 2822: 0x5FCB, - 2823: 0x5FCE, - 2824: 0x5FD3, - 2825: 0x5FD4, - 2826: 0x5FD5, - 2827: 0x5FDA, - 2828: 0x5FDB, - 2829: 0x5FDC, - 2830: 0x5FDE, - 2831: 0x5FDF, - 2832: 0x5FE2, - 2833: 0x5FE3, - 2834: 0x5FE5, - 2835: 0x5FE6, - 2836: 0x5FE8, - 2837: 0x5FE9, - 2838: 0x5FEC, - 2839: 0x5FEF, - 2840: 0x5FF0, - 2841: 0x5FF2, - 2842: 0x5FF3, - 2843: 0x5FF4, - 2844: 0x5FF6, - 2845: 0x5FF7, - 2846: 0x5FF9, - 2847: 0x5FFA, - 2848: 0x5FFC, - 2849: 0x6007, - 2850: 0x6008, - 2851: 0x6009, - 2852: 0x600B, - 2853: 0x600C, - 2854: 0x6010, - 2855: 0x6011, - 2856: 0x6013, - 2857: 0x6017, - 2858: 0x6018, - 2859: 0x601A, - 2860: 0x601E, - 2861: 0x601F, - 2862: 0x6022, - 2863: 0x6023, - 2864: 0x6024, - 2865: 0x602C, - 2866: 0x602D, - 2867: 0x602E, - 2868: 0x6030, - 2869: 0x6031, - 2870: 0x6032, - 2871: 0x6033, - 2872: 0x6034, - 2873: 0x6036, - 2874: 0x6037, - 2875: 0x6038, - 2876: 0x6039, - 2877: 0x603A, - 2878: 0x603D, - 2879: 0x603E, - 2880: 0x6040, - 2881: 0x6044, - 2882: 0x6045, - 2883: 0x6046, - 2884: 0x6047, - 2885: 0x6048, - 2886: 0x6049, - 2887: 0x604A, - 2888: 0x604C, - 2889: 0x604E, - 2890: 0x604F, - 2891: 0x6051, - 2892: 0x6053, - 2893: 0x6054, - 2894: 0x6056, - 2895: 0x6057, - 2896: 0x6058, - 2897: 0x605B, - 2898: 0x605C, - 2899: 0x605E, - 2900: 0x605F, - 2901: 0x6060, - 2902: 0x6061, - 2903: 0x6065, - 2904: 0x6066, - 2905: 0x606E, - 2906: 0x6071, - 2907: 0x6072, - 2908: 0x6074, - 2909: 0x6075, - 2910: 0x6077, - 2911: 0x607E, - 2912: 0x6080, - 2913: 0x6081, - 2914: 0x6082, - 2915: 0x6085, - 2916: 0x6086, - 2917: 0x6087, - 2918: 0x6088, - 2919: 0x608A, - 2920: 0x608B, - 2921: 0x608E, - 2922: 0x608F, - 2923: 0x6090, - 2924: 0x6091, - 2925: 0x6093, - 2926: 0x6095, - 2927: 0x6097, - 2928: 0x6098, - 2929: 0x6099, - 2930: 0x609C, - 2931: 0x609E, - 2932: 0x60A1, - 2933: 0x60A2, - 2934: 0x60A4, - 2935: 0x60A5, - 2936: 0x60A7, - 2937: 0x60A9, - 2938: 0x60AA, - 2939: 0x60AE, - 2940: 0x60B0, - 2941: 0x60B3, - 2942: 0x60B5, - 2943: 0x60B6, - 2944: 0x60B7, - 2945: 0x60B9, - 2946: 0x60BA, - 2947: 0x60BD, - 2948: 0x60BE, - 2949: 0x60BF, - 2950: 0x60C0, - 2951: 0x60C1, - 2952: 0x60C2, - 2953: 0x60C3, - 2954: 0x60C4, - 2955: 0x60C7, - 2956: 0x60C8, - 2957: 0x60C9, - 2958: 0x60CC, - 2959: 0x60CD, - 2960: 0x60CE, - 2961: 0x60CF, - 2962: 0x60D0, - 2963: 0x60D2, - 2964: 0x60D3, - 2965: 0x60D4, - 2966: 0x60D6, - 2967: 0x60D7, - 2968: 0x60D9, - 2969: 0x60DB, - 2970: 0x60DE, - 2971: 0x60E1, - 2972: 0x60E2, - 2973: 0x60E3, - 2974: 0x60E4, - 2975: 0x60E5, - 2976: 0x60EA, - 2977: 0x60F1, - 2978: 0x60F2, - 2979: 0x60F5, - 2980: 0x60F7, - 2981: 0x60F8, - 2982: 0x60FB, - 2983: 0x60FC, - 2984: 0x60FD, - 2985: 0x60FE, - 2986: 0x60FF, - 2987: 0x6102, - 2988: 0x6103, - 2989: 0x6104, - 2990: 0x6105, - 2991: 0x6107, - 2992: 0x610A, - 2993: 0x610B, - 2994: 0x610C, - 2995: 0x6110, - 2996: 0x6111, - 2997: 0x6112, - 2998: 0x6113, - 2999: 0x6114, - 3000: 0x6116, - 3001: 0x6117, - 3002: 0x6118, - 3003: 0x6119, - 3004: 0x611B, - 3005: 0x611C, - 3006: 0x611D, - 3007: 0x611E, - 3008: 0x6121, - 3009: 0x6122, - 3010: 0x6125, - 3011: 0x6128, - 3012: 0x6129, - 3013: 0x612A, - 3014: 0x612C, - 3015: 0x612D, - 3016: 0x612E, - 3017: 0x612F, - 3018: 0x6130, - 3019: 0x6131, - 3020: 0x6132, - 3021: 0x6133, - 3022: 0x6134, - 3023: 0x6135, - 3024: 0x6136, - 3025: 0x6137, - 3026: 0x6138, - 3027: 0x6139, - 3028: 0x613A, - 3029: 0x613B, - 3030: 0x613C, - 3031: 0x613D, - 3032: 0x613E, - 3033: 0x6140, - 3034: 0x6141, - 3035: 0x6142, - 3036: 0x6143, - 3037: 0x6144, - 3038: 0x6145, - 3039: 0x6146, - 3040: 0x6147, - 3041: 0x6149, - 3042: 0x614B, - 3043: 0x614D, - 3044: 0x614F, - 3045: 0x6150, - 3046: 0x6152, - 3047: 0x6153, - 3048: 0x6154, - 3049: 0x6156, - 3050: 0x6157, - 3051: 0x6158, - 3052: 0x6159, - 3053: 0x615A, - 3054: 0x615B, - 3055: 0x615C, - 3056: 0x615E, - 3057: 0x615F, - 3058: 0x6160, - 3059: 0x6161, - 3060: 0x6163, - 3061: 0x6164, - 3062: 0x6165, - 3063: 0x6166, - 3064: 0x6169, - 3065: 0x616A, - 3066: 0x616B, - 3067: 0x616C, - 3068: 0x616D, - 3069: 0x616E, - 3070: 0x616F, - 3071: 0x6171, - 3072: 0x6172, - 3073: 0x6173, - 3074: 0x6174, - 3075: 0x6176, - 3076: 0x6178, - 3077: 0x6179, - 3078: 0x617A, - 3079: 0x617B, - 3080: 0x617C, - 3081: 0x617D, - 3082: 0x617E, - 3083: 0x617F, - 3084: 0x6180, - 3085: 0x6181, - 3086: 0x6182, - 3087: 0x6183, - 3088: 0x6184, - 3089: 0x6185, - 3090: 0x6186, - 3091: 0x6187, - 3092: 0x6188, - 3093: 0x6189, - 3094: 0x618A, - 3095: 0x618C, - 3096: 0x618D, - 3097: 0x618F, - 3098: 0x6190, - 3099: 0x6191, - 3100: 0x6192, - 3101: 0x6193, - 3102: 0x6195, - 3103: 0x6196, - 3104: 0x6197, - 3105: 0x6198, - 3106: 0x6199, - 3107: 0x619A, - 3108: 0x619B, - 3109: 0x619C, - 3110: 0x619E, - 3111: 0x619F, - 3112: 0x61A0, - 3113: 0x61A1, - 3114: 0x61A2, - 3115: 0x61A3, - 3116: 0x61A4, - 3117: 0x61A5, - 3118: 0x61A6, - 3119: 0x61AA, - 3120: 0x61AB, - 3121: 0x61AD, - 3122: 0x61AE, - 3123: 0x61AF, - 3124: 0x61B0, - 3125: 0x61B1, - 3126: 0x61B2, - 3127: 0x61B3, - 3128: 0x61B4, - 3129: 0x61B5, - 3130: 0x61B6, - 3131: 0x61B8, - 3132: 0x61B9, - 3133: 0x61BA, - 3134: 0x61BB, - 3135: 0x61BC, - 3136: 0x61BD, - 3137: 0x61BF, - 3138: 0x61C0, - 3139: 0x61C1, - 3140: 0x61C3, - 3141: 0x61C4, - 3142: 0x61C5, - 3143: 0x61C6, - 3144: 0x61C7, - 3145: 0x61C9, - 3146: 0x61CC, - 3147: 0x61CD, - 3148: 0x61CE, - 3149: 0x61CF, - 3150: 0x61D0, - 3151: 0x61D3, - 3152: 0x61D5, - 3153: 0x61D6, - 3154: 0x61D7, - 3155: 0x61D8, - 3156: 0x61D9, - 3157: 0x61DA, - 3158: 0x61DB, - 3159: 0x61DC, - 3160: 0x61DD, - 3161: 0x61DE, - 3162: 0x61DF, - 3163: 0x61E0, - 3164: 0x61E1, - 3165: 0x61E2, - 3166: 0x61E3, - 3167: 0x61E4, - 3168: 0x61E5, - 3169: 0x61E7, - 3170: 0x61E8, - 3171: 0x61E9, - 3172: 0x61EA, - 3173: 0x61EB, - 3174: 0x61EC, - 3175: 0x61ED, - 3176: 0x61EE, - 3177: 0x61EF, - 3178: 0x61F0, - 3179: 0x61F1, - 3180: 0x61F2, - 3181: 0x61F3, - 3182: 0x61F4, - 3183: 0x61F6, - 3184: 0x61F7, - 3185: 0x61F8, - 3186: 0x61F9, - 3187: 0x61FA, - 3188: 0x61FB, - 3189: 0x61FC, - 3190: 0x61FD, - 3191: 0x61FE, - 3192: 0x6200, - 3193: 0x6201, - 3194: 0x6202, - 3195: 0x6203, - 3196: 0x6204, - 3197: 0x6205, - 3198: 0x6207, - 3199: 0x6209, - 3200: 0x6213, - 3201: 0x6214, - 3202: 0x6219, - 3203: 0x621C, - 3204: 0x621D, - 3205: 0x621E, - 3206: 0x6220, - 3207: 0x6223, - 3208: 0x6226, - 3209: 0x6227, - 3210: 0x6228, - 3211: 0x6229, - 3212: 0x622B, - 3213: 0x622D, - 3214: 0x622F, - 3215: 0x6230, - 3216: 0x6231, - 3217: 0x6232, - 3218: 0x6235, - 3219: 0x6236, - 3220: 0x6238, - 3221: 0x6239, - 3222: 0x623A, - 3223: 0x623B, - 3224: 0x623C, - 3225: 0x6242, - 3226: 0x6244, - 3227: 0x6245, - 3228: 0x6246, - 3229: 0x624A, - 3230: 0x624F, - 3231: 0x6250, - 3232: 0x6255, - 3233: 0x6256, - 3234: 0x6257, - 3235: 0x6259, - 3236: 0x625A, - 3237: 0x625C, - 3238: 0x625D, - 3239: 0x625E, - 3240: 0x625F, - 3241: 0x6260, - 3242: 0x6261, - 3243: 0x6262, - 3244: 0x6264, - 3245: 0x6265, - 3246: 0x6268, - 3247: 0x6271, - 3248: 0x6272, - 3249: 0x6274, - 3250: 0x6275, - 3251: 0x6277, - 3252: 0x6278, - 3253: 0x627A, - 3254: 0x627B, - 3255: 0x627D, - 3256: 0x6281, - 3257: 0x6282, - 3258: 0x6283, - 3259: 0x6285, - 3260: 0x6286, - 3261: 0x6287, - 3262: 0x6288, - 3263: 0x628B, - 3264: 0x628C, - 3265: 0x628D, - 3266: 0x628E, - 3267: 0x628F, - 3268: 0x6290, - 3269: 0x6294, - 3270: 0x6299, - 3271: 0x629C, - 3272: 0x629D, - 3273: 0x629E, - 3274: 0x62A3, - 3275: 0x62A6, - 3276: 0x62A7, - 3277: 0x62A9, - 3278: 0x62AA, - 3279: 0x62AD, - 3280: 0x62AE, - 3281: 0x62AF, - 3282: 0x62B0, - 3283: 0x62B2, - 3284: 0x62B3, - 3285: 0x62B4, - 3286: 0x62B6, - 3287: 0x62B7, - 3288: 0x62B8, - 3289: 0x62BA, - 3290: 0x62BE, - 3291: 0x62C0, - 3292: 0x62C1, - 3293: 0x62C3, - 3294: 0x62CB, - 3295: 0x62CF, - 3296: 0x62D1, - 3297: 0x62D5, - 3298: 0x62DD, - 3299: 0x62DE, - 3300: 0x62E0, - 3301: 0x62E1, - 3302: 0x62E4, - 3303: 0x62EA, - 3304: 0x62EB, - 3305: 0x62F0, - 3306: 0x62F2, - 3307: 0x62F5, - 3308: 0x62F8, - 3309: 0x62F9, - 3310: 0x62FA, - 3311: 0x62FB, - 3312: 0x6300, - 3313: 0x6303, - 3314: 0x6304, - 3315: 0x6305, - 3316: 0x6306, - 3317: 0x630A, - 3318: 0x630B, - 3319: 0x630C, - 3320: 0x630D, - 3321: 0x630F, - 3322: 0x6310, - 3323: 0x6312, - 3324: 0x6313, - 3325: 0x6314, - 3326: 0x6315, - 3327: 0x6317, - 3328: 0x6318, - 3329: 0x6319, - 3330: 0x631C, - 3331: 0x6326, - 3332: 0x6327, - 3333: 0x6329, - 3334: 0x632C, - 3335: 0x632D, - 3336: 0x632E, - 3337: 0x6330, - 3338: 0x6331, - 3339: 0x6333, - 3340: 0x6334, - 3341: 0x6335, - 3342: 0x6336, - 3343: 0x6337, - 3344: 0x6338, - 3345: 0x633B, - 3346: 0x633C, - 3347: 0x633E, - 3348: 0x633F, - 3349: 0x6340, - 3350: 0x6341, - 3351: 0x6344, - 3352: 0x6347, - 3353: 0x6348, - 3354: 0x634A, - 3355: 0x6351, - 3356: 0x6352, - 3357: 0x6353, - 3358: 0x6354, - 3359: 0x6356, - 3360: 0x6357, - 3361: 0x6358, - 3362: 0x6359, - 3363: 0x635A, - 3364: 0x635B, - 3365: 0x635C, - 3366: 0x635D, - 3367: 0x6360, - 3368: 0x6364, - 3369: 0x6365, - 3370: 0x6366, - 3371: 0x6368, - 3372: 0x636A, - 3373: 0x636B, - 3374: 0x636C, - 3375: 0x636F, - 3376: 0x6370, - 3377: 0x6372, - 3378: 0x6373, - 3379: 0x6374, - 3380: 0x6375, - 3381: 0x6378, - 3382: 0x6379, - 3383: 0x637C, - 3384: 0x637D, - 3385: 0x637E, - 3386: 0x637F, - 3387: 0x6381, - 3388: 0x6383, - 3389: 0x6384, - 3390: 0x6385, - 3391: 0x6386, - 3392: 0x638B, - 3393: 0x638D, - 3394: 0x6391, - 3395: 0x6393, - 3396: 0x6394, - 3397: 0x6395, - 3398: 0x6397, - 3399: 0x6399, - 3400: 0x639A, - 3401: 0x639B, - 3402: 0x639C, - 3403: 0x639D, - 3404: 0x639E, - 3405: 0x639F, - 3406: 0x63A1, - 3407: 0x63A4, - 3408: 0x63A6, - 3409: 0x63AB, - 3410: 0x63AF, - 3411: 0x63B1, - 3412: 0x63B2, - 3413: 0x63B5, - 3414: 0x63B6, - 3415: 0x63B9, - 3416: 0x63BB, - 3417: 0x63BD, - 3418: 0x63BF, - 3419: 0x63C0, - 3420: 0x63C1, - 3421: 0x63C2, - 3422: 0x63C3, - 3423: 0x63C5, - 3424: 0x63C7, - 3425: 0x63C8, - 3426: 0x63CA, - 3427: 0x63CB, - 3428: 0x63CC, - 3429: 0x63D1, - 3430: 0x63D3, - 3431: 0x63D4, - 3432: 0x63D5, - 3433: 0x63D7, - 3434: 0x63D8, - 3435: 0x63D9, - 3436: 0x63DA, - 3437: 0x63DB, - 3438: 0x63DC, - 3439: 0x63DD, - 3440: 0x63DF, - 3441: 0x63E2, - 3442: 0x63E4, - 3443: 0x63E5, - 3444: 0x63E6, - 3445: 0x63E7, - 3446: 0x63E8, - 3447: 0x63EB, - 3448: 0x63EC, - 3449: 0x63EE, - 3450: 0x63EF, - 3451: 0x63F0, - 3452: 0x63F1, - 3453: 0x63F3, - 3454: 0x63F5, - 3455: 0x63F7, - 3456: 0x63F9, - 3457: 0x63FA, - 3458: 0x63FB, - 3459: 0x63FC, - 3460: 0x63FE, - 3461: 0x6403, - 3462: 0x6404, - 3463: 0x6406, - 3464: 0x6407, - 3465: 0x6408, - 3466: 0x6409, - 3467: 0x640A, - 3468: 0x640D, - 3469: 0x640E, - 3470: 0x6411, - 3471: 0x6412, - 3472: 0x6415, - 3473: 0x6416, - 3474: 0x6417, - 3475: 0x6418, - 3476: 0x6419, - 3477: 0x641A, - 3478: 0x641D, - 3479: 0x641F, - 3480: 0x6422, - 3481: 0x6423, - 3482: 0x6424, - 3483: 0x6425, - 3484: 0x6427, - 3485: 0x6428, - 3486: 0x6429, - 3487: 0x642B, - 3488: 0x642E, - 3489: 0x642F, - 3490: 0x6430, - 3491: 0x6431, - 3492: 0x6432, - 3493: 0x6433, - 3494: 0x6435, - 3495: 0x6436, - 3496: 0x6437, - 3497: 0x6438, - 3498: 0x6439, - 3499: 0x643B, - 3500: 0x643C, - 3501: 0x643E, - 3502: 0x6440, - 3503: 0x6442, - 3504: 0x6443, - 3505: 0x6449, - 3506: 0x644B, - 3507: 0x644C, - 3508: 0x644D, - 3509: 0x644E, - 3510: 0x644F, - 3511: 0x6450, - 3512: 0x6451, - 3513: 0x6453, - 3514: 0x6455, - 3515: 0x6456, - 3516: 0x6457, - 3517: 0x6459, - 3518: 0x645A, - 3519: 0x645B, - 3520: 0x645C, - 3521: 0x645D, - 3522: 0x645F, - 3523: 0x6460, - 3524: 0x6461, - 3525: 0x6462, - 3526: 0x6463, - 3527: 0x6464, - 3528: 0x6465, - 3529: 0x6466, - 3530: 0x6468, - 3531: 0x646A, - 3532: 0x646B, - 3533: 0x646C, - 3534: 0x646E, - 3535: 0x646F, - 3536: 0x6470, - 3537: 0x6471, - 3538: 0x6472, - 3539: 0x6473, - 3540: 0x6474, - 3541: 0x6475, - 3542: 0x6476, - 3543: 0x6477, - 3544: 0x647B, - 3545: 0x647C, - 3546: 0x647D, - 3547: 0x647E, - 3548: 0x647F, - 3549: 0x6480, - 3550: 0x6481, - 3551: 0x6483, - 3552: 0x6486, - 3553: 0x6488, - 3554: 0x6489, - 3555: 0x648A, - 3556: 0x648B, - 3557: 0x648C, - 3558: 0x648D, - 3559: 0x648E, - 3560: 0x648F, - 3561: 0x6490, - 3562: 0x6493, - 3563: 0x6494, - 3564: 0x6497, - 3565: 0x6498, - 3566: 0x649A, - 3567: 0x649B, - 3568: 0x649C, - 3569: 0x649D, - 3570: 0x649F, - 3571: 0x64A0, - 3572: 0x64A1, - 3573: 0x64A2, - 3574: 0x64A3, - 3575: 0x64A5, - 3576: 0x64A6, - 3577: 0x64A7, - 3578: 0x64A8, - 3579: 0x64AA, - 3580: 0x64AB, - 3581: 0x64AF, - 3582: 0x64B1, - 3583: 0x64B2, - 3584: 0x64B3, - 3585: 0x64B4, - 3586: 0x64B6, - 3587: 0x64B9, - 3588: 0x64BB, - 3589: 0x64BD, - 3590: 0x64BE, - 3591: 0x64BF, - 3592: 0x64C1, - 3593: 0x64C3, - 3594: 0x64C4, - 3595: 0x64C6, - 3596: 0x64C7, - 3597: 0x64C8, - 3598: 0x64C9, - 3599: 0x64CA, - 3600: 0x64CB, - 3601: 0x64CC, - 3602: 0x64CF, - 3603: 0x64D1, - 3604: 0x64D3, - 3605: 0x64D4, - 3606: 0x64D5, - 3607: 0x64D6, - 3608: 0x64D9, - 3609: 0x64DA, - 3610: 0x64DB, - 3611: 0x64DC, - 3612: 0x64DD, - 3613: 0x64DF, - 3614: 0x64E0, - 3615: 0x64E1, - 3616: 0x64E3, - 3617: 0x64E5, - 3618: 0x64E7, - 3619: 0x64E8, - 3620: 0x64E9, - 3621: 0x64EA, - 3622: 0x64EB, - 3623: 0x64EC, - 3624: 0x64ED, - 3625: 0x64EE, - 3626: 0x64EF, - 3627: 0x64F0, - 3628: 0x64F1, - 3629: 0x64F2, - 3630: 0x64F3, - 3631: 0x64F4, - 3632: 0x64F5, - 3633: 0x64F6, - 3634: 0x64F7, - 3635: 0x64F8, - 3636: 0x64F9, - 3637: 0x64FA, - 3638: 0x64FB, - 3639: 0x64FC, - 3640: 0x64FD, - 3641: 0x64FE, - 3642: 0x64FF, - 3643: 0x6501, - 3644: 0x6502, - 3645: 0x6503, - 3646: 0x6504, - 3647: 0x6505, - 3648: 0x6506, - 3649: 0x6507, - 3650: 0x6508, - 3651: 0x650A, - 3652: 0x650B, - 3653: 0x650C, - 3654: 0x650D, - 3655: 0x650E, - 3656: 0x650F, - 3657: 0x6510, - 3658: 0x6511, - 3659: 0x6513, - 3660: 0x6514, - 3661: 0x6515, - 3662: 0x6516, - 3663: 0x6517, - 3664: 0x6519, - 3665: 0x651A, - 3666: 0x651B, - 3667: 0x651C, - 3668: 0x651D, - 3669: 0x651E, - 3670: 0x651F, - 3671: 0x6520, - 3672: 0x6521, - 3673: 0x6522, - 3674: 0x6523, - 3675: 0x6524, - 3676: 0x6526, - 3677: 0x6527, - 3678: 0x6528, - 3679: 0x6529, - 3680: 0x652A, - 3681: 0x652C, - 3682: 0x652D, - 3683: 0x6530, - 3684: 0x6531, - 3685: 0x6532, - 3686: 0x6533, - 3687: 0x6537, - 3688: 0x653A, - 3689: 0x653C, - 3690: 0x653D, - 3691: 0x6540, - 3692: 0x6541, - 3693: 0x6542, - 3694: 0x6543, - 3695: 0x6544, - 3696: 0x6546, - 3697: 0x6547, - 3698: 0x654A, - 3699: 0x654B, - 3700: 0x654D, - 3701: 0x654E, - 3702: 0x6550, - 3703: 0x6552, - 3704: 0x6553, - 3705: 0x6554, - 3706: 0x6557, - 3707: 0x6558, - 3708: 0x655A, - 3709: 0x655C, - 3710: 0x655F, - 3711: 0x6560, - 3712: 0x6561, - 3713: 0x6564, - 3714: 0x6565, - 3715: 0x6567, - 3716: 0x6568, - 3717: 0x6569, - 3718: 0x656A, - 3719: 0x656D, - 3720: 0x656E, - 3721: 0x656F, - 3722: 0x6571, - 3723: 0x6573, - 3724: 0x6575, - 3725: 0x6576, - 3726: 0x6578, - 3727: 0x6579, - 3728: 0x657A, - 3729: 0x657B, - 3730: 0x657C, - 3731: 0x657D, - 3732: 0x657E, - 3733: 0x657F, - 3734: 0x6580, - 3735: 0x6581, - 3736: 0x6582, - 3737: 0x6583, - 3738: 0x6584, - 3739: 0x6585, - 3740: 0x6586, - 3741: 0x6588, - 3742: 0x6589, - 3743: 0x658A, - 3744: 0x658D, - 3745: 0x658E, - 3746: 0x658F, - 3747: 0x6592, - 3748: 0x6594, - 3749: 0x6595, - 3750: 0x6596, - 3751: 0x6598, - 3752: 0x659A, - 3753: 0x659D, - 3754: 0x659E, - 3755: 0x65A0, - 3756: 0x65A2, - 3757: 0x65A3, - 3758: 0x65A6, - 3759: 0x65A8, - 3760: 0x65AA, - 3761: 0x65AC, - 3762: 0x65AE, - 3763: 0x65B1, - 3764: 0x65B2, - 3765: 0x65B3, - 3766: 0x65B4, - 3767: 0x65B5, - 3768: 0x65B6, - 3769: 0x65B7, - 3770: 0x65B8, - 3771: 0x65BA, - 3772: 0x65BB, - 3773: 0x65BE, - 3774: 0x65BF, - 3775: 0x65C0, - 3776: 0x65C2, - 3777: 0x65C7, - 3778: 0x65C8, - 3779: 0x65C9, - 3780: 0x65CA, - 3781: 0x65CD, - 3782: 0x65D0, - 3783: 0x65D1, - 3784: 0x65D3, - 3785: 0x65D4, - 3786: 0x65D5, - 3787: 0x65D8, - 3788: 0x65D9, - 3789: 0x65DA, - 3790: 0x65DB, - 3791: 0x65DC, - 3792: 0x65DD, - 3793: 0x65DE, - 3794: 0x65DF, - 3795: 0x65E1, - 3796: 0x65E3, - 3797: 0x65E4, - 3798: 0x65EA, - 3799: 0x65EB, - 3800: 0x65F2, - 3801: 0x65F3, - 3802: 0x65F4, - 3803: 0x65F5, - 3804: 0x65F8, - 3805: 0x65F9, - 3806: 0x65FB, - 3807: 0x65FC, - 3808: 0x65FD, - 3809: 0x65FE, - 3810: 0x65FF, - 3811: 0x6601, - 3812: 0x6604, - 3813: 0x6605, - 3814: 0x6607, - 3815: 0x6608, - 3816: 0x6609, - 3817: 0x660B, - 3818: 0x660D, - 3819: 0x6610, - 3820: 0x6611, - 3821: 0x6612, - 3822: 0x6616, - 3823: 0x6617, - 3824: 0x6618, - 3825: 0x661A, - 3826: 0x661B, - 3827: 0x661C, - 3828: 0x661E, - 3829: 0x6621, - 3830: 0x6622, - 3831: 0x6623, - 3832: 0x6624, - 3833: 0x6626, - 3834: 0x6629, - 3835: 0x662A, - 3836: 0x662B, - 3837: 0x662C, - 3838: 0x662E, - 3839: 0x6630, - 3840: 0x6632, - 3841: 0x6633, - 3842: 0x6637, - 3843: 0x6638, - 3844: 0x6639, - 3845: 0x663A, - 3846: 0x663B, - 3847: 0x663D, - 3848: 0x663F, - 3849: 0x6640, - 3850: 0x6642, - 3851: 0x6644, - 3852: 0x6645, - 3853: 0x6646, - 3854: 0x6647, - 3855: 0x6648, - 3856: 0x6649, - 3857: 0x664A, - 3858: 0x664D, - 3859: 0x664E, - 3860: 0x6650, - 3861: 0x6651, - 3862: 0x6658, - 3863: 0x6659, - 3864: 0x665B, - 3865: 0x665C, - 3866: 0x665D, - 3867: 0x665E, - 3868: 0x6660, - 3869: 0x6662, - 3870: 0x6663, - 3871: 0x6665, - 3872: 0x6667, - 3873: 0x6669, - 3874: 0x666A, - 3875: 0x666B, - 3876: 0x666C, - 3877: 0x666D, - 3878: 0x6671, - 3879: 0x6672, - 3880: 0x6673, - 3881: 0x6675, - 3882: 0x6678, - 3883: 0x6679, - 3884: 0x667B, - 3885: 0x667C, - 3886: 0x667D, - 3887: 0x667F, - 3888: 0x6680, - 3889: 0x6681, - 3890: 0x6683, - 3891: 0x6685, - 3892: 0x6686, - 3893: 0x6688, - 3894: 0x6689, - 3895: 0x668A, - 3896: 0x668B, - 3897: 0x668D, - 3898: 0x668E, - 3899: 0x668F, - 3900: 0x6690, - 3901: 0x6692, - 3902: 0x6693, - 3903: 0x6694, - 3904: 0x6695, - 3905: 0x6698, - 3906: 0x6699, - 3907: 0x669A, - 3908: 0x669B, - 3909: 0x669C, - 3910: 0x669E, - 3911: 0x669F, - 3912: 0x66A0, - 3913: 0x66A1, - 3914: 0x66A2, - 3915: 0x66A3, - 3916: 0x66A4, - 3917: 0x66A5, - 3918: 0x66A6, - 3919: 0x66A9, - 3920: 0x66AA, - 3921: 0x66AB, - 3922: 0x66AC, - 3923: 0x66AD, - 3924: 0x66AF, - 3925: 0x66B0, - 3926: 0x66B1, - 3927: 0x66B2, - 3928: 0x66B3, - 3929: 0x66B5, - 3930: 0x66B6, - 3931: 0x66B7, - 3932: 0x66B8, - 3933: 0x66BA, - 3934: 0x66BB, - 3935: 0x66BC, - 3936: 0x66BD, - 3937: 0x66BF, - 3938: 0x66C0, - 3939: 0x66C1, - 3940: 0x66C2, - 3941: 0x66C3, - 3942: 0x66C4, - 3943: 0x66C5, - 3944: 0x66C6, - 3945: 0x66C7, - 3946: 0x66C8, - 3947: 0x66C9, - 3948: 0x66CA, - 3949: 0x66CB, - 3950: 0x66CC, - 3951: 0x66CD, - 3952: 0x66CE, - 3953: 0x66CF, - 3954: 0x66D0, - 3955: 0x66D1, - 3956: 0x66D2, - 3957: 0x66D3, - 3958: 0x66D4, - 3959: 0x66D5, - 3960: 0x66D6, - 3961: 0x66D7, - 3962: 0x66D8, - 3963: 0x66DA, - 3964: 0x66DE, - 3965: 0x66DF, - 3966: 0x66E0, - 3967: 0x66E1, - 3968: 0x66E2, - 3969: 0x66E3, - 3970: 0x66E4, - 3971: 0x66E5, - 3972: 0x66E7, - 3973: 0x66E8, - 3974: 0x66EA, - 3975: 0x66EB, - 3976: 0x66EC, - 3977: 0x66ED, - 3978: 0x66EE, - 3979: 0x66EF, - 3980: 0x66F1, - 3981: 0x66F5, - 3982: 0x66F6, - 3983: 0x66F8, - 3984: 0x66FA, - 3985: 0x66FB, - 3986: 0x66FD, - 3987: 0x6701, - 3988: 0x6702, - 3989: 0x6703, - 3990: 0x6704, - 3991: 0x6705, - 3992: 0x6706, - 3993: 0x6707, - 3994: 0x670C, - 3995: 0x670E, - 3996: 0x670F, - 3997: 0x6711, - 3998: 0x6712, - 3999: 0x6713, - 4000: 0x6716, - 4001: 0x6718, - 4002: 0x6719, - 4003: 0x671A, - 4004: 0x671C, - 4005: 0x671E, - 4006: 0x6720, - 4007: 0x6721, - 4008: 0x6722, - 4009: 0x6723, - 4010: 0x6724, - 4011: 0x6725, - 4012: 0x6727, - 4013: 0x6729, - 4014: 0x672E, - 4015: 0x6730, - 4016: 0x6732, - 4017: 0x6733, - 4018: 0x6736, - 4019: 0x6737, - 4020: 0x6738, - 4021: 0x6739, - 4022: 0x673B, - 4023: 0x673C, - 4024: 0x673E, - 4025: 0x673F, - 4026: 0x6741, - 4027: 0x6744, - 4028: 0x6745, - 4029: 0x6747, - 4030: 0x674A, - 4031: 0x674B, - 4032: 0x674D, - 4033: 0x6752, - 4034: 0x6754, - 4035: 0x6755, - 4036: 0x6757, - 4037: 0x6758, - 4038: 0x6759, - 4039: 0x675A, - 4040: 0x675B, - 4041: 0x675D, - 4042: 0x6762, - 4043: 0x6763, - 4044: 0x6764, - 4045: 0x6766, - 4046: 0x6767, - 4047: 0x676B, - 4048: 0x676C, - 4049: 0x676E, - 4050: 0x6771, - 4051: 0x6774, - 4052: 0x6776, - 4053: 0x6778, - 4054: 0x6779, - 4055: 0x677A, - 4056: 0x677B, - 4057: 0x677D, - 4058: 0x6780, - 4059: 0x6782, - 4060: 0x6783, - 4061: 0x6785, - 4062: 0x6786, - 4063: 0x6788, - 4064: 0x678A, - 4065: 0x678C, - 4066: 0x678D, - 4067: 0x678E, - 4068: 0x678F, - 4069: 0x6791, - 4070: 0x6792, - 4071: 0x6793, - 4072: 0x6794, - 4073: 0x6796, - 4074: 0x6799, - 4075: 0x679B, - 4076: 0x679F, - 4077: 0x67A0, - 4078: 0x67A1, - 4079: 0x67A4, - 4080: 0x67A6, - 4081: 0x67A9, - 4082: 0x67AC, - 4083: 0x67AE, - 4084: 0x67B1, - 4085: 0x67B2, - 4086: 0x67B4, - 4087: 0x67B9, - 4088: 0x67BA, - 4089: 0x67BB, - 4090: 0x67BC, - 4091: 0x67BD, - 4092: 0x67BE, - 4093: 0x67BF, - 4094: 0x67C0, - 4095: 0x67C2, - 4096: 0x67C5, - 4097: 0x67C6, - 4098: 0x67C7, - 4099: 0x67C8, - 4100: 0x67C9, - 4101: 0x67CA, - 4102: 0x67CB, - 4103: 0x67CC, - 4104: 0x67CD, - 4105: 0x67CE, - 4106: 0x67D5, - 4107: 0x67D6, - 4108: 0x67D7, - 4109: 0x67DB, - 4110: 0x67DF, - 4111: 0x67E1, - 4112: 0x67E3, - 4113: 0x67E4, - 4114: 0x67E6, - 4115: 0x67E7, - 4116: 0x67E8, - 4117: 0x67EA, - 4118: 0x67EB, - 4119: 0x67ED, - 4120: 0x67EE, - 4121: 0x67F2, - 4122: 0x67F5, - 4123: 0x67F6, - 4124: 0x67F7, - 4125: 0x67F8, - 4126: 0x67F9, - 4127: 0x67FA, - 4128: 0x67FB, - 4129: 0x67FC, - 4130: 0x67FE, - 4131: 0x6801, - 4132: 0x6802, - 4133: 0x6803, - 4134: 0x6804, - 4135: 0x6806, - 4136: 0x680D, - 4137: 0x6810, - 4138: 0x6812, - 4139: 0x6814, - 4140: 0x6815, - 4141: 0x6818, - 4142: 0x6819, - 4143: 0x681A, - 4144: 0x681B, - 4145: 0x681C, - 4146: 0x681E, - 4147: 0x681F, - 4148: 0x6820, - 4149: 0x6822, - 4150: 0x6823, - 4151: 0x6824, - 4152: 0x6825, - 4153: 0x6826, - 4154: 0x6827, - 4155: 0x6828, - 4156: 0x682B, - 4157: 0x682C, - 4158: 0x682D, - 4159: 0x682E, - 4160: 0x682F, - 4161: 0x6830, - 4162: 0x6831, - 4163: 0x6834, - 4164: 0x6835, - 4165: 0x6836, - 4166: 0x683A, - 4167: 0x683B, - 4168: 0x683F, - 4169: 0x6847, - 4170: 0x684B, - 4171: 0x684D, - 4172: 0x684F, - 4173: 0x6852, - 4174: 0x6856, - 4175: 0x6857, - 4176: 0x6858, - 4177: 0x6859, - 4178: 0x685A, - 4179: 0x685B, - 4180: 0x685C, - 4181: 0x685D, - 4182: 0x685E, - 4183: 0x685F, - 4184: 0x686A, - 4185: 0x686C, - 4186: 0x686D, - 4187: 0x686E, - 4188: 0x686F, - 4189: 0x6870, - 4190: 0x6871, - 4191: 0x6872, - 4192: 0x6873, - 4193: 0x6875, - 4194: 0x6878, - 4195: 0x6879, - 4196: 0x687A, - 4197: 0x687B, - 4198: 0x687C, - 4199: 0x687D, - 4200: 0x687E, - 4201: 0x687F, - 4202: 0x6880, - 4203: 0x6882, - 4204: 0x6884, - 4205: 0x6887, - 4206: 0x6888, - 4207: 0x6889, - 4208: 0x688A, - 4209: 0x688B, - 4210: 0x688C, - 4211: 0x688D, - 4212: 0x688E, - 4213: 0x6890, - 4214: 0x6891, - 4215: 0x6892, - 4216: 0x6894, - 4217: 0x6895, - 4218: 0x6896, - 4219: 0x6898, - 4220: 0x6899, - 4221: 0x689A, - 4222: 0x689B, - 4223: 0x689C, - 4224: 0x689D, - 4225: 0x689E, - 4226: 0x689F, - 4227: 0x68A0, - 4228: 0x68A1, - 4229: 0x68A3, - 4230: 0x68A4, - 4231: 0x68A5, - 4232: 0x68A9, - 4233: 0x68AA, - 4234: 0x68AB, - 4235: 0x68AC, - 4236: 0x68AE, - 4237: 0x68B1, - 4238: 0x68B2, - 4239: 0x68B4, - 4240: 0x68B6, - 4241: 0x68B7, - 4242: 0x68B8, - 4243: 0x68B9, - 4244: 0x68BA, - 4245: 0x68BB, - 4246: 0x68BC, - 4247: 0x68BD, - 4248: 0x68BE, - 4249: 0x68BF, - 4250: 0x68C1, - 4251: 0x68C3, - 4252: 0x68C4, - 4253: 0x68C5, - 4254: 0x68C6, - 4255: 0x68C7, - 4256: 0x68C8, - 4257: 0x68CA, - 4258: 0x68CC, - 4259: 0x68CE, - 4260: 0x68CF, - 4261: 0x68D0, - 4262: 0x68D1, - 4263: 0x68D3, - 4264: 0x68D4, - 4265: 0x68D6, - 4266: 0x68D7, - 4267: 0x68D9, - 4268: 0x68DB, - 4269: 0x68DC, - 4270: 0x68DD, - 4271: 0x68DE, - 4272: 0x68DF, - 4273: 0x68E1, - 4274: 0x68E2, - 4275: 0x68E4, - 4276: 0x68E5, - 4277: 0x68E6, - 4278: 0x68E7, - 4279: 0x68E8, - 4280: 0x68E9, - 4281: 0x68EA, - 4282: 0x68EB, - 4283: 0x68EC, - 4284: 0x68ED, - 4285: 0x68EF, - 4286: 0x68F2, - 4287: 0x68F3, - 4288: 0x68F4, - 4289: 0x68F6, - 4290: 0x68F7, - 4291: 0x68F8, - 4292: 0x68FB, - 4293: 0x68FD, - 4294: 0x68FE, - 4295: 0x68FF, - 4296: 0x6900, - 4297: 0x6902, - 4298: 0x6903, - 4299: 0x6904, - 4300: 0x6906, - 4301: 0x6907, - 4302: 0x6908, - 4303: 0x6909, - 4304: 0x690A, - 4305: 0x690C, - 4306: 0x690F, - 4307: 0x6911, - 4308: 0x6913, - 4309: 0x6914, - 4310: 0x6915, - 4311: 0x6916, - 4312: 0x6917, - 4313: 0x6918, - 4314: 0x6919, - 4315: 0x691A, - 4316: 0x691B, - 4317: 0x691C, - 4318: 0x691D, - 4319: 0x691E, - 4320: 0x6921, - 4321: 0x6922, - 4322: 0x6923, - 4323: 0x6925, - 4324: 0x6926, - 4325: 0x6927, - 4326: 0x6928, - 4327: 0x6929, - 4328: 0x692A, - 4329: 0x692B, - 4330: 0x692C, - 4331: 0x692E, - 4332: 0x692F, - 4333: 0x6931, - 4334: 0x6932, - 4335: 0x6933, - 4336: 0x6935, - 4337: 0x6936, - 4338: 0x6937, - 4339: 0x6938, - 4340: 0x693A, - 4341: 0x693B, - 4342: 0x693C, - 4343: 0x693E, - 4344: 0x6940, - 4345: 0x6941, - 4346: 0x6943, - 4347: 0x6944, - 4348: 0x6945, - 4349: 0x6946, - 4350: 0x6947, - 4351: 0x6948, - 4352: 0x6949, - 4353: 0x694A, - 4354: 0x694B, - 4355: 0x694C, - 4356: 0x694D, - 4357: 0x694E, - 4358: 0x694F, - 4359: 0x6950, - 4360: 0x6951, - 4361: 0x6952, - 4362: 0x6953, - 4363: 0x6955, - 4364: 0x6956, - 4365: 0x6958, - 4366: 0x6959, - 4367: 0x695B, - 4368: 0x695C, - 4369: 0x695F, - 4370: 0x6961, - 4371: 0x6962, - 4372: 0x6964, - 4373: 0x6965, - 4374: 0x6967, - 4375: 0x6968, - 4376: 0x6969, - 4377: 0x696A, - 4378: 0x696C, - 4379: 0x696D, - 4380: 0x696F, - 4381: 0x6970, - 4382: 0x6972, - 4383: 0x6973, - 4384: 0x6974, - 4385: 0x6975, - 4386: 0x6976, - 4387: 0x697A, - 4388: 0x697B, - 4389: 0x697D, - 4390: 0x697E, - 4391: 0x697F, - 4392: 0x6981, - 4393: 0x6983, - 4394: 0x6985, - 4395: 0x698A, - 4396: 0x698B, - 4397: 0x698C, - 4398: 0x698E, - 4399: 0x698F, - 4400: 0x6990, - 4401: 0x6991, - 4402: 0x6992, - 4403: 0x6993, - 4404: 0x6996, - 4405: 0x6997, - 4406: 0x6999, - 4407: 0x699A, - 4408: 0x699D, - 4409: 0x699E, - 4410: 0x699F, - 4411: 0x69A0, - 4412: 0x69A1, - 4413: 0x69A2, - 4414: 0x69A3, - 4415: 0x69A4, - 4416: 0x69A5, - 4417: 0x69A6, - 4418: 0x69A9, - 4419: 0x69AA, - 4420: 0x69AC, - 4421: 0x69AE, - 4422: 0x69AF, - 4423: 0x69B0, - 4424: 0x69B2, - 4425: 0x69B3, - 4426: 0x69B5, - 4427: 0x69B6, - 4428: 0x69B8, - 4429: 0x69B9, - 4430: 0x69BA, - 4431: 0x69BC, - 4432: 0x69BD, - 4433: 0x69BE, - 4434: 0x69BF, - 4435: 0x69C0, - 4436: 0x69C2, - 4437: 0x69C3, - 4438: 0x69C4, - 4439: 0x69C5, - 4440: 0x69C6, - 4441: 0x69C7, - 4442: 0x69C8, - 4443: 0x69C9, - 4444: 0x69CB, - 4445: 0x69CD, - 4446: 0x69CF, - 4447: 0x69D1, - 4448: 0x69D2, - 4449: 0x69D3, - 4450: 0x69D5, - 4451: 0x69D6, - 4452: 0x69D7, - 4453: 0x69D8, - 4454: 0x69D9, - 4455: 0x69DA, - 4456: 0x69DC, - 4457: 0x69DD, - 4458: 0x69DE, - 4459: 0x69E1, - 4460: 0x69E2, - 4461: 0x69E3, - 4462: 0x69E4, - 4463: 0x69E5, - 4464: 0x69E6, - 4465: 0x69E7, - 4466: 0x69E8, - 4467: 0x69E9, - 4468: 0x69EA, - 4469: 0x69EB, - 4470: 0x69EC, - 4471: 0x69EE, - 4472: 0x69EF, - 4473: 0x69F0, - 4474: 0x69F1, - 4475: 0x69F3, - 4476: 0x69F4, - 4477: 0x69F5, - 4478: 0x69F6, - 4479: 0x69F7, - 4480: 0x69F8, - 4481: 0x69F9, - 4482: 0x69FA, - 4483: 0x69FB, - 4484: 0x69FC, - 4485: 0x69FE, - 4486: 0x6A00, - 4487: 0x6A01, - 4488: 0x6A02, - 4489: 0x6A03, - 4490: 0x6A04, - 4491: 0x6A05, - 4492: 0x6A06, - 4493: 0x6A07, - 4494: 0x6A08, - 4495: 0x6A09, - 4496: 0x6A0B, - 4497: 0x6A0C, - 4498: 0x6A0D, - 4499: 0x6A0E, - 4500: 0x6A0F, - 4501: 0x6A10, - 4502: 0x6A11, - 4503: 0x6A12, - 4504: 0x6A13, - 4505: 0x6A14, - 4506: 0x6A15, - 4507: 0x6A16, - 4508: 0x6A19, - 4509: 0x6A1A, - 4510: 0x6A1B, - 4511: 0x6A1C, - 4512: 0x6A1D, - 4513: 0x6A1E, - 4514: 0x6A20, - 4515: 0x6A22, - 4516: 0x6A23, - 4517: 0x6A24, - 4518: 0x6A25, - 4519: 0x6A26, - 4520: 0x6A27, - 4521: 0x6A29, - 4522: 0x6A2B, - 4523: 0x6A2C, - 4524: 0x6A2D, - 4525: 0x6A2E, - 4526: 0x6A30, - 4527: 0x6A32, - 4528: 0x6A33, - 4529: 0x6A34, - 4530: 0x6A36, - 4531: 0x6A37, - 4532: 0x6A38, - 4533: 0x6A39, - 4534: 0x6A3A, - 4535: 0x6A3B, - 4536: 0x6A3C, - 4537: 0x6A3F, - 4538: 0x6A40, - 4539: 0x6A41, - 4540: 0x6A42, - 4541: 0x6A43, - 4542: 0x6A45, - 4543: 0x6A46, - 4544: 0x6A48, - 4545: 0x6A49, - 4546: 0x6A4A, - 4547: 0x6A4B, - 4548: 0x6A4C, - 4549: 0x6A4D, - 4550: 0x6A4E, - 4551: 0x6A4F, - 4552: 0x6A51, - 4553: 0x6A52, - 4554: 0x6A53, - 4555: 0x6A54, - 4556: 0x6A55, - 4557: 0x6A56, - 4558: 0x6A57, - 4559: 0x6A5A, - 4560: 0x6A5C, - 4561: 0x6A5D, - 4562: 0x6A5E, - 4563: 0x6A5F, - 4564: 0x6A60, - 4565: 0x6A62, - 4566: 0x6A63, - 4567: 0x6A64, - 4568: 0x6A66, - 4569: 0x6A67, - 4570: 0x6A68, - 4571: 0x6A69, - 4572: 0x6A6A, - 4573: 0x6A6B, - 4574: 0x6A6C, - 4575: 0x6A6D, - 4576: 0x6A6E, - 4577: 0x6A6F, - 4578: 0x6A70, - 4579: 0x6A72, - 4580: 0x6A73, - 4581: 0x6A74, - 4582: 0x6A75, - 4583: 0x6A76, - 4584: 0x6A77, - 4585: 0x6A78, - 4586: 0x6A7A, - 4587: 0x6A7B, - 4588: 0x6A7D, - 4589: 0x6A7E, - 4590: 0x6A7F, - 4591: 0x6A81, - 4592: 0x6A82, - 4593: 0x6A83, - 4594: 0x6A85, - 4595: 0x6A86, - 4596: 0x6A87, - 4597: 0x6A88, - 4598: 0x6A89, - 4599: 0x6A8A, - 4600: 0x6A8B, - 4601: 0x6A8C, - 4602: 0x6A8D, - 4603: 0x6A8F, - 4604: 0x6A92, - 4605: 0x6A93, - 4606: 0x6A94, - 4607: 0x6A95, - 4608: 0x6A96, - 4609: 0x6A98, - 4610: 0x6A99, - 4611: 0x6A9A, - 4612: 0x6A9B, - 4613: 0x6A9C, - 4614: 0x6A9D, - 4615: 0x6A9E, - 4616: 0x6A9F, - 4617: 0x6AA1, - 4618: 0x6AA2, - 4619: 0x6AA3, - 4620: 0x6AA4, - 4621: 0x6AA5, - 4622: 0x6AA6, - 4623: 0x6AA7, - 4624: 0x6AA8, - 4625: 0x6AAA, - 4626: 0x6AAD, - 4627: 0x6AAE, - 4628: 0x6AAF, - 4629: 0x6AB0, - 4630: 0x6AB1, - 4631: 0x6AB2, - 4632: 0x6AB3, - 4633: 0x6AB4, - 4634: 0x6AB5, - 4635: 0x6AB6, - 4636: 0x6AB7, - 4637: 0x6AB8, - 4638: 0x6AB9, - 4639: 0x6ABA, - 4640: 0x6ABB, - 4641: 0x6ABC, - 4642: 0x6ABD, - 4643: 0x6ABE, - 4644: 0x6ABF, - 4645: 0x6AC0, - 4646: 0x6AC1, - 4647: 0x6AC2, - 4648: 0x6AC3, - 4649: 0x6AC4, - 4650: 0x6AC5, - 4651: 0x6AC6, - 4652: 0x6AC7, - 4653: 0x6AC8, - 4654: 0x6AC9, - 4655: 0x6ACA, - 4656: 0x6ACB, - 4657: 0x6ACC, - 4658: 0x6ACD, - 4659: 0x6ACE, - 4660: 0x6ACF, - 4661: 0x6AD0, - 4662: 0x6AD1, - 4663: 0x6AD2, - 4664: 0x6AD3, - 4665: 0x6AD4, - 4666: 0x6AD5, - 4667: 0x6AD6, - 4668: 0x6AD7, - 4669: 0x6AD8, - 4670: 0x6AD9, - 4671: 0x6ADA, - 4672: 0x6ADB, - 4673: 0x6ADC, - 4674: 0x6ADD, - 4675: 0x6ADE, - 4676: 0x6ADF, - 4677: 0x6AE0, - 4678: 0x6AE1, - 4679: 0x6AE2, - 4680: 0x6AE3, - 4681: 0x6AE4, - 4682: 0x6AE5, - 4683: 0x6AE6, - 4684: 0x6AE7, - 4685: 0x6AE8, - 4686: 0x6AE9, - 4687: 0x6AEA, - 4688: 0x6AEB, - 4689: 0x6AEC, - 4690: 0x6AED, - 4691: 0x6AEE, - 4692: 0x6AEF, - 4693: 0x6AF0, - 4694: 0x6AF1, - 4695: 0x6AF2, - 4696: 0x6AF3, - 4697: 0x6AF4, - 4698: 0x6AF5, - 4699: 0x6AF6, - 4700: 0x6AF7, - 4701: 0x6AF8, - 4702: 0x6AF9, - 4703: 0x6AFA, - 4704: 0x6AFB, - 4705: 0x6AFC, - 4706: 0x6AFD, - 4707: 0x6AFE, - 4708: 0x6AFF, - 4709: 0x6B00, - 4710: 0x6B01, - 4711: 0x6B02, - 4712: 0x6B03, - 4713: 0x6B04, - 4714: 0x6B05, - 4715: 0x6B06, - 4716: 0x6B07, - 4717: 0x6B08, - 4718: 0x6B09, - 4719: 0x6B0A, - 4720: 0x6B0B, - 4721: 0x6B0C, - 4722: 0x6B0D, - 4723: 0x6B0E, - 4724: 0x6B0F, - 4725: 0x6B10, - 4726: 0x6B11, - 4727: 0x6B12, - 4728: 0x6B13, - 4729: 0x6B14, - 4730: 0x6B15, - 4731: 0x6B16, - 4732: 0x6B17, - 4733: 0x6B18, - 4734: 0x6B19, - 4735: 0x6B1A, - 4736: 0x6B1B, - 4737: 0x6B1C, - 4738: 0x6B1D, - 4739: 0x6B1E, - 4740: 0x6B1F, - 4741: 0x6B25, - 4742: 0x6B26, - 4743: 0x6B28, - 4744: 0x6B29, - 4745: 0x6B2A, - 4746: 0x6B2B, - 4747: 0x6B2C, - 4748: 0x6B2D, - 4749: 0x6B2E, - 4750: 0x6B2F, - 4751: 0x6B30, - 4752: 0x6B31, - 4753: 0x6B33, - 4754: 0x6B34, - 4755: 0x6B35, - 4756: 0x6B36, - 4757: 0x6B38, - 4758: 0x6B3B, - 4759: 0x6B3C, - 4760: 0x6B3D, - 4761: 0x6B3F, - 4762: 0x6B40, - 4763: 0x6B41, - 4764: 0x6B42, - 4765: 0x6B44, - 4766: 0x6B45, - 4767: 0x6B48, - 4768: 0x6B4A, - 4769: 0x6B4B, - 4770: 0x6B4D, - 4771: 0x6B4E, - 4772: 0x6B4F, - 4773: 0x6B50, - 4774: 0x6B51, - 4775: 0x6B52, - 4776: 0x6B53, - 4777: 0x6B54, - 4778: 0x6B55, - 4779: 0x6B56, - 4780: 0x6B57, - 4781: 0x6B58, - 4782: 0x6B5A, - 4783: 0x6B5B, - 4784: 0x6B5C, - 4785: 0x6B5D, - 4786: 0x6B5E, - 4787: 0x6B5F, - 4788: 0x6B60, - 4789: 0x6B61, - 4790: 0x6B68, - 4791: 0x6B69, - 4792: 0x6B6B, - 4793: 0x6B6C, - 4794: 0x6B6D, - 4795: 0x6B6E, - 4796: 0x6B6F, - 4797: 0x6B70, - 4798: 0x6B71, - 4799: 0x6B72, - 4800: 0x6B73, - 4801: 0x6B74, - 4802: 0x6B75, - 4803: 0x6B76, - 4804: 0x6B77, - 4805: 0x6B78, - 4806: 0x6B7A, - 4807: 0x6B7D, - 4808: 0x6B7E, - 4809: 0x6B7F, - 4810: 0x6B80, - 4811: 0x6B85, - 4812: 0x6B88, - 4813: 0x6B8C, - 4814: 0x6B8E, - 4815: 0x6B8F, - 4816: 0x6B90, - 4817: 0x6B91, - 4818: 0x6B94, - 4819: 0x6B95, - 4820: 0x6B97, - 4821: 0x6B98, - 4822: 0x6B99, - 4823: 0x6B9C, - 4824: 0x6B9D, - 4825: 0x6B9E, - 4826: 0x6B9F, - 4827: 0x6BA0, - 4828: 0x6BA2, - 4829: 0x6BA3, - 4830: 0x6BA4, - 4831: 0x6BA5, - 4832: 0x6BA6, - 4833: 0x6BA7, - 4834: 0x6BA8, - 4835: 0x6BA9, - 4836: 0x6BAB, - 4837: 0x6BAC, - 4838: 0x6BAD, - 4839: 0x6BAE, - 4840: 0x6BAF, - 4841: 0x6BB0, - 4842: 0x6BB1, - 4843: 0x6BB2, - 4844: 0x6BB6, - 4845: 0x6BB8, - 4846: 0x6BB9, - 4847: 0x6BBA, - 4848: 0x6BBB, - 4849: 0x6BBC, - 4850: 0x6BBD, - 4851: 0x6BBE, - 4852: 0x6BC0, - 4853: 0x6BC3, - 4854: 0x6BC4, - 4855: 0x6BC6, - 4856: 0x6BC7, - 4857: 0x6BC8, - 4858: 0x6BC9, - 4859: 0x6BCA, - 4860: 0x6BCC, - 4861: 0x6BCE, - 4862: 0x6BD0, - 4863: 0x6BD1, - 4864: 0x6BD8, - 4865: 0x6BDA, - 4866: 0x6BDC, - 4867: 0x6BDD, - 4868: 0x6BDE, - 4869: 0x6BDF, - 4870: 0x6BE0, - 4871: 0x6BE2, - 4872: 0x6BE3, - 4873: 0x6BE4, - 4874: 0x6BE5, - 4875: 0x6BE6, - 4876: 0x6BE7, - 4877: 0x6BE8, - 4878: 0x6BE9, - 4879: 0x6BEC, - 4880: 0x6BED, - 4881: 0x6BEE, - 4882: 0x6BF0, - 4883: 0x6BF1, - 4884: 0x6BF2, - 4885: 0x6BF4, - 4886: 0x6BF6, - 4887: 0x6BF7, - 4888: 0x6BF8, - 4889: 0x6BFA, - 4890: 0x6BFB, - 4891: 0x6BFC, - 4892: 0x6BFE, - 4893: 0x6BFF, - 4894: 0x6C00, - 4895: 0x6C01, - 4896: 0x6C02, - 4897: 0x6C03, - 4898: 0x6C04, - 4899: 0x6C08, - 4900: 0x6C09, - 4901: 0x6C0A, - 4902: 0x6C0B, - 4903: 0x6C0C, - 4904: 0x6C0E, - 4905: 0x6C12, - 4906: 0x6C17, - 4907: 0x6C1C, - 4908: 0x6C1D, - 4909: 0x6C1E, - 4910: 0x6C20, - 4911: 0x6C23, - 4912: 0x6C25, - 4913: 0x6C2B, - 4914: 0x6C2C, - 4915: 0x6C2D, - 4916: 0x6C31, - 4917: 0x6C33, - 4918: 0x6C36, - 4919: 0x6C37, - 4920: 0x6C39, - 4921: 0x6C3A, - 4922: 0x6C3B, - 4923: 0x6C3C, - 4924: 0x6C3E, - 4925: 0x6C3F, - 4926: 0x6C43, - 4927: 0x6C44, - 4928: 0x6C45, - 4929: 0x6C48, - 4930: 0x6C4B, - 4931: 0x6C4C, - 4932: 0x6C4D, - 4933: 0x6C4E, - 4934: 0x6C4F, - 4935: 0x6C51, - 4936: 0x6C52, - 4937: 0x6C53, - 4938: 0x6C56, - 4939: 0x6C58, - 4940: 0x6C59, - 4941: 0x6C5A, - 4942: 0x6C62, - 4943: 0x6C63, - 4944: 0x6C65, - 4945: 0x6C66, - 4946: 0x6C67, - 4947: 0x6C6B, - 4948: 0x6C6C, - 4949: 0x6C6D, - 4950: 0x6C6E, - 4951: 0x6C6F, - 4952: 0x6C71, - 4953: 0x6C73, - 4954: 0x6C75, - 4955: 0x6C77, - 4956: 0x6C78, - 4957: 0x6C7A, - 4958: 0x6C7B, - 4959: 0x6C7C, - 4960: 0x6C7F, - 4961: 0x6C80, - 4962: 0x6C84, - 4963: 0x6C87, - 4964: 0x6C8A, - 4965: 0x6C8B, - 4966: 0x6C8D, - 4967: 0x6C8E, - 4968: 0x6C91, - 4969: 0x6C92, - 4970: 0x6C95, - 4971: 0x6C96, - 4972: 0x6C97, - 4973: 0x6C98, - 4974: 0x6C9A, - 4975: 0x6C9C, - 4976: 0x6C9D, - 4977: 0x6C9E, - 4978: 0x6CA0, - 4979: 0x6CA2, - 4980: 0x6CA8, - 4981: 0x6CAC, - 4982: 0x6CAF, - 4983: 0x6CB0, - 4984: 0x6CB4, - 4985: 0x6CB5, - 4986: 0x6CB6, - 4987: 0x6CB7, - 4988: 0x6CBA, - 4989: 0x6CC0, - 4990: 0x6CC1, - 4991: 0x6CC2, - 4992: 0x6CC3, - 4993: 0x6CC6, - 4994: 0x6CC7, - 4995: 0x6CC8, - 4996: 0x6CCB, - 4997: 0x6CCD, - 4998: 0x6CCE, - 4999: 0x6CCF, - 5000: 0x6CD1, - 5001: 0x6CD2, - 5002: 0x6CD8, - 5003: 0x6CD9, - 5004: 0x6CDA, - 5005: 0x6CDC, - 5006: 0x6CDD, - 5007: 0x6CDF, - 5008: 0x6CE4, - 5009: 0x6CE6, - 5010: 0x6CE7, - 5011: 0x6CE9, - 5012: 0x6CEC, - 5013: 0x6CED, - 5014: 0x6CF2, - 5015: 0x6CF4, - 5016: 0x6CF9, - 5017: 0x6CFF, - 5018: 0x6D00, - 5019: 0x6D02, - 5020: 0x6D03, - 5021: 0x6D05, - 5022: 0x6D06, - 5023: 0x6D08, - 5024: 0x6D09, - 5025: 0x6D0A, - 5026: 0x6D0D, - 5027: 0x6D0F, - 5028: 0x6D10, - 5029: 0x6D11, - 5030: 0x6D13, - 5031: 0x6D14, - 5032: 0x6D15, - 5033: 0x6D16, - 5034: 0x6D18, - 5035: 0x6D1C, - 5036: 0x6D1D, - 5037: 0x6D1F, - 5038: 0x6D20, - 5039: 0x6D21, - 5040: 0x6D22, - 5041: 0x6D23, - 5042: 0x6D24, - 5043: 0x6D26, - 5044: 0x6D28, - 5045: 0x6D29, - 5046: 0x6D2C, - 5047: 0x6D2D, - 5048: 0x6D2F, - 5049: 0x6D30, - 5050: 0x6D34, - 5051: 0x6D36, - 5052: 0x6D37, - 5053: 0x6D38, - 5054: 0x6D3A, - 5055: 0x6D3F, - 5056: 0x6D40, - 5057: 0x6D42, - 5058: 0x6D44, - 5059: 0x6D49, - 5060: 0x6D4C, - 5061: 0x6D50, - 5062: 0x6D55, - 5063: 0x6D56, - 5064: 0x6D57, - 5065: 0x6D58, - 5066: 0x6D5B, - 5067: 0x6D5D, - 5068: 0x6D5F, - 5069: 0x6D61, - 5070: 0x6D62, - 5071: 0x6D64, - 5072: 0x6D65, - 5073: 0x6D67, - 5074: 0x6D68, - 5075: 0x6D6B, - 5076: 0x6D6C, - 5077: 0x6D6D, - 5078: 0x6D70, - 5079: 0x6D71, - 5080: 0x6D72, - 5081: 0x6D73, - 5082: 0x6D75, - 5083: 0x6D76, - 5084: 0x6D79, - 5085: 0x6D7A, - 5086: 0x6D7B, - 5087: 0x6D7D, - 5088: 0x6D7E, - 5089: 0x6D7F, - 5090: 0x6D80, - 5091: 0x6D81, - 5092: 0x6D83, - 5093: 0x6D84, - 5094: 0x6D86, - 5095: 0x6D87, - 5096: 0x6D8A, - 5097: 0x6D8B, - 5098: 0x6D8D, - 5099: 0x6D8F, - 5100: 0x6D90, - 5101: 0x6D92, - 5102: 0x6D96, - 5103: 0x6D97, - 5104: 0x6D98, - 5105: 0x6D99, - 5106: 0x6D9A, - 5107: 0x6D9C, - 5108: 0x6DA2, - 5109: 0x6DA5, - 5110: 0x6DAC, - 5111: 0x6DAD, - 5112: 0x6DB0, - 5113: 0x6DB1, - 5114: 0x6DB3, - 5115: 0x6DB4, - 5116: 0x6DB6, - 5117: 0x6DB7, - 5118: 0x6DB9, - 5119: 0x6DBA, - 5120: 0x6DBB, - 5121: 0x6DBC, - 5122: 0x6DBD, - 5123: 0x6DBE, - 5124: 0x6DC1, - 5125: 0x6DC2, - 5126: 0x6DC3, - 5127: 0x6DC8, - 5128: 0x6DC9, - 5129: 0x6DCA, - 5130: 0x6DCD, - 5131: 0x6DCE, - 5132: 0x6DCF, - 5133: 0x6DD0, - 5134: 0x6DD2, - 5135: 0x6DD3, - 5136: 0x6DD4, - 5137: 0x6DD5, - 5138: 0x6DD7, - 5139: 0x6DDA, - 5140: 0x6DDB, - 5141: 0x6DDC, - 5142: 0x6DDF, - 5143: 0x6DE2, - 5144: 0x6DE3, - 5145: 0x6DE5, - 5146: 0x6DE7, - 5147: 0x6DE8, - 5148: 0x6DE9, - 5149: 0x6DEA, - 5150: 0x6DED, - 5151: 0x6DEF, - 5152: 0x6DF0, - 5153: 0x6DF2, - 5154: 0x6DF4, - 5155: 0x6DF5, - 5156: 0x6DF6, - 5157: 0x6DF8, - 5158: 0x6DFA, - 5159: 0x6DFD, - 5160: 0x6DFE, - 5161: 0x6DFF, - 5162: 0x6E00, - 5163: 0x6E01, - 5164: 0x6E02, - 5165: 0x6E03, - 5166: 0x6E04, - 5167: 0x6E06, - 5168: 0x6E07, - 5169: 0x6E08, - 5170: 0x6E09, - 5171: 0x6E0B, - 5172: 0x6E0F, - 5173: 0x6E12, - 5174: 0x6E13, - 5175: 0x6E15, - 5176: 0x6E18, - 5177: 0x6E19, - 5178: 0x6E1B, - 5179: 0x6E1C, - 5180: 0x6E1E, - 5181: 0x6E1F, - 5182: 0x6E22, - 5183: 0x6E26, - 5184: 0x6E27, - 5185: 0x6E28, - 5186: 0x6E2A, - 5187: 0x6E2C, - 5188: 0x6E2E, - 5189: 0x6E30, - 5190: 0x6E31, - 5191: 0x6E33, - 5192: 0x6E35, - 5193: 0x6E36, - 5194: 0x6E37, - 5195: 0x6E39, - 5196: 0x6E3B, - 5197: 0x6E3C, - 5198: 0x6E3D, - 5199: 0x6E3E, - 5200: 0x6E3F, - 5201: 0x6E40, - 5202: 0x6E41, - 5203: 0x6E42, - 5204: 0x6E45, - 5205: 0x6E46, - 5206: 0x6E47, - 5207: 0x6E48, - 5208: 0x6E49, - 5209: 0x6E4A, - 5210: 0x6E4B, - 5211: 0x6E4C, - 5212: 0x6E4F, - 5213: 0x6E50, - 5214: 0x6E51, - 5215: 0x6E52, - 5216: 0x6E55, - 5217: 0x6E57, - 5218: 0x6E59, - 5219: 0x6E5A, - 5220: 0x6E5C, - 5221: 0x6E5D, - 5222: 0x6E5E, - 5223: 0x6E60, - 5224: 0x6E61, - 5225: 0x6E62, - 5226: 0x6E63, - 5227: 0x6E64, - 5228: 0x6E65, - 5229: 0x6E66, - 5230: 0x6E67, - 5231: 0x6E68, - 5232: 0x6E69, - 5233: 0x6E6A, - 5234: 0x6E6C, - 5235: 0x6E6D, - 5236: 0x6E6F, - 5237: 0x6E70, - 5238: 0x6E71, - 5239: 0x6E72, - 5240: 0x6E73, - 5241: 0x6E74, - 5242: 0x6E75, - 5243: 0x6E76, - 5244: 0x6E77, - 5245: 0x6E78, - 5246: 0x6E79, - 5247: 0x6E7A, - 5248: 0x6E7B, - 5249: 0x6E7C, - 5250: 0x6E7D, - 5251: 0x6E80, - 5252: 0x6E81, - 5253: 0x6E82, - 5254: 0x6E84, - 5255: 0x6E87, - 5256: 0x6E88, - 5257: 0x6E8A, - 5258: 0x6E8B, - 5259: 0x6E8C, - 5260: 0x6E8D, - 5261: 0x6E8E, - 5262: 0x6E91, - 5263: 0x6E92, - 5264: 0x6E93, - 5265: 0x6E94, - 5266: 0x6E95, - 5267: 0x6E96, - 5268: 0x6E97, - 5269: 0x6E99, - 5270: 0x6E9A, - 5271: 0x6E9B, - 5272: 0x6E9D, - 5273: 0x6E9E, - 5274: 0x6EA0, - 5275: 0x6EA1, - 5276: 0x6EA3, - 5277: 0x6EA4, - 5278: 0x6EA6, - 5279: 0x6EA8, - 5280: 0x6EA9, - 5281: 0x6EAB, - 5282: 0x6EAC, - 5283: 0x6EAD, - 5284: 0x6EAE, - 5285: 0x6EB0, - 5286: 0x6EB3, - 5287: 0x6EB5, - 5288: 0x6EB8, - 5289: 0x6EB9, - 5290: 0x6EBC, - 5291: 0x6EBE, - 5292: 0x6EBF, - 5293: 0x6EC0, - 5294: 0x6EC3, - 5295: 0x6EC4, - 5296: 0x6EC5, - 5297: 0x6EC6, - 5298: 0x6EC8, - 5299: 0x6EC9, - 5300: 0x6ECA, - 5301: 0x6ECC, - 5302: 0x6ECD, - 5303: 0x6ECE, - 5304: 0x6ED0, - 5305: 0x6ED2, - 5306: 0x6ED6, - 5307: 0x6ED8, - 5308: 0x6ED9, - 5309: 0x6EDB, - 5310: 0x6EDC, - 5311: 0x6EDD, - 5312: 0x6EE3, - 5313: 0x6EE7, - 5314: 0x6EEA, - 5315: 0x6EEB, - 5316: 0x6EEC, - 5317: 0x6EED, - 5318: 0x6EEE, - 5319: 0x6EEF, - 5320: 0x6EF0, - 5321: 0x6EF1, - 5322: 0x6EF2, - 5323: 0x6EF3, - 5324: 0x6EF5, - 5325: 0x6EF6, - 5326: 0x6EF7, - 5327: 0x6EF8, - 5328: 0x6EFA, - 5329: 0x6EFB, - 5330: 0x6EFC, - 5331: 0x6EFD, - 5332: 0x6EFE, - 5333: 0x6EFF, - 5334: 0x6F00, - 5335: 0x6F01, - 5336: 0x6F03, - 5337: 0x6F04, - 5338: 0x6F05, - 5339: 0x6F07, - 5340: 0x6F08, - 5341: 0x6F0A, - 5342: 0x6F0B, - 5343: 0x6F0C, - 5344: 0x6F0D, - 5345: 0x6F0E, - 5346: 0x6F10, - 5347: 0x6F11, - 5348: 0x6F12, - 5349: 0x6F16, - 5350: 0x6F17, - 5351: 0x6F18, - 5352: 0x6F19, - 5353: 0x6F1A, - 5354: 0x6F1B, - 5355: 0x6F1C, - 5356: 0x6F1D, - 5357: 0x6F1E, - 5358: 0x6F1F, - 5359: 0x6F21, - 5360: 0x6F22, - 5361: 0x6F23, - 5362: 0x6F25, - 5363: 0x6F26, - 5364: 0x6F27, - 5365: 0x6F28, - 5366: 0x6F2C, - 5367: 0x6F2E, - 5368: 0x6F30, - 5369: 0x6F32, - 5370: 0x6F34, - 5371: 0x6F35, - 5372: 0x6F37, - 5373: 0x6F38, - 5374: 0x6F39, - 5375: 0x6F3A, - 5376: 0x6F3B, - 5377: 0x6F3C, - 5378: 0x6F3D, - 5379: 0x6F3F, - 5380: 0x6F40, - 5381: 0x6F41, - 5382: 0x6F42, - 5383: 0x6F43, - 5384: 0x6F44, - 5385: 0x6F45, - 5386: 0x6F48, - 5387: 0x6F49, - 5388: 0x6F4A, - 5389: 0x6F4C, - 5390: 0x6F4E, - 5391: 0x6F4F, - 5392: 0x6F50, - 5393: 0x6F51, - 5394: 0x6F52, - 5395: 0x6F53, - 5396: 0x6F54, - 5397: 0x6F55, - 5398: 0x6F56, - 5399: 0x6F57, - 5400: 0x6F59, - 5401: 0x6F5A, - 5402: 0x6F5B, - 5403: 0x6F5D, - 5404: 0x6F5F, - 5405: 0x6F60, - 5406: 0x6F61, - 5407: 0x6F63, - 5408: 0x6F64, - 5409: 0x6F65, - 5410: 0x6F67, - 5411: 0x6F68, - 5412: 0x6F69, - 5413: 0x6F6A, - 5414: 0x6F6B, - 5415: 0x6F6C, - 5416: 0x6F6F, - 5417: 0x6F70, - 5418: 0x6F71, - 5419: 0x6F73, - 5420: 0x6F75, - 5421: 0x6F76, - 5422: 0x6F77, - 5423: 0x6F79, - 5424: 0x6F7B, - 5425: 0x6F7D, - 5426: 0x6F7E, - 5427: 0x6F7F, - 5428: 0x6F80, - 5429: 0x6F81, - 5430: 0x6F82, - 5431: 0x6F83, - 5432: 0x6F85, - 5433: 0x6F86, - 5434: 0x6F87, - 5435: 0x6F8A, - 5436: 0x6F8B, - 5437: 0x6F8F, - 5438: 0x6F90, - 5439: 0x6F91, - 5440: 0x6F92, - 5441: 0x6F93, - 5442: 0x6F94, - 5443: 0x6F95, - 5444: 0x6F96, - 5445: 0x6F97, - 5446: 0x6F98, - 5447: 0x6F99, - 5448: 0x6F9A, - 5449: 0x6F9B, - 5450: 0x6F9D, - 5451: 0x6F9E, - 5452: 0x6F9F, - 5453: 0x6FA0, - 5454: 0x6FA2, - 5455: 0x6FA3, - 5456: 0x6FA4, - 5457: 0x6FA5, - 5458: 0x6FA6, - 5459: 0x6FA8, - 5460: 0x6FA9, - 5461: 0x6FAA, - 5462: 0x6FAB, - 5463: 0x6FAC, - 5464: 0x6FAD, - 5465: 0x6FAE, - 5466: 0x6FAF, - 5467: 0x6FB0, - 5468: 0x6FB1, - 5469: 0x6FB2, - 5470: 0x6FB4, - 5471: 0x6FB5, - 5472: 0x6FB7, - 5473: 0x6FB8, - 5474: 0x6FBA, - 5475: 0x6FBB, - 5476: 0x6FBC, - 5477: 0x6FBD, - 5478: 0x6FBE, - 5479: 0x6FBF, - 5480: 0x6FC1, - 5481: 0x6FC3, - 5482: 0x6FC4, - 5483: 0x6FC5, - 5484: 0x6FC6, - 5485: 0x6FC7, - 5486: 0x6FC8, - 5487: 0x6FCA, - 5488: 0x6FCB, - 5489: 0x6FCC, - 5490: 0x6FCD, - 5491: 0x6FCE, - 5492: 0x6FCF, - 5493: 0x6FD0, - 5494: 0x6FD3, - 5495: 0x6FD4, - 5496: 0x6FD5, - 5497: 0x6FD6, - 5498: 0x6FD7, - 5499: 0x6FD8, - 5500: 0x6FD9, - 5501: 0x6FDA, - 5502: 0x6FDB, - 5503: 0x6FDC, - 5504: 0x6FDD, - 5505: 0x6FDF, - 5506: 0x6FE2, - 5507: 0x6FE3, - 5508: 0x6FE4, - 5509: 0x6FE5, - 5510: 0x6FE6, - 5511: 0x6FE7, - 5512: 0x6FE8, - 5513: 0x6FE9, - 5514: 0x6FEA, - 5515: 0x6FEB, - 5516: 0x6FEC, - 5517: 0x6FED, - 5518: 0x6FF0, - 5519: 0x6FF1, - 5520: 0x6FF2, - 5521: 0x6FF3, - 5522: 0x6FF4, - 5523: 0x6FF5, - 5524: 0x6FF6, - 5525: 0x6FF7, - 5526: 0x6FF8, - 5527: 0x6FF9, - 5528: 0x6FFA, - 5529: 0x6FFB, - 5530: 0x6FFC, - 5531: 0x6FFD, - 5532: 0x6FFE, - 5533: 0x6FFF, - 5534: 0x7000, - 5535: 0x7001, - 5536: 0x7002, - 5537: 0x7003, - 5538: 0x7004, - 5539: 0x7005, - 5540: 0x7006, - 5541: 0x7007, - 5542: 0x7008, - 5543: 0x7009, - 5544: 0x700A, - 5545: 0x700B, - 5546: 0x700C, - 5547: 0x700D, - 5548: 0x700E, - 5549: 0x700F, - 5550: 0x7010, - 5551: 0x7012, - 5552: 0x7013, - 5553: 0x7014, - 5554: 0x7015, - 5555: 0x7016, - 5556: 0x7017, - 5557: 0x7018, - 5558: 0x7019, - 5559: 0x701C, - 5560: 0x701D, - 5561: 0x701E, - 5562: 0x701F, - 5563: 0x7020, - 5564: 0x7021, - 5565: 0x7022, - 5566: 0x7024, - 5567: 0x7025, - 5568: 0x7026, - 5569: 0x7027, - 5570: 0x7028, - 5571: 0x7029, - 5572: 0x702A, - 5573: 0x702B, - 5574: 0x702C, - 5575: 0x702D, - 5576: 0x702E, - 5577: 0x702F, - 5578: 0x7030, - 5579: 0x7031, - 5580: 0x7032, - 5581: 0x7033, - 5582: 0x7034, - 5583: 0x7036, - 5584: 0x7037, - 5585: 0x7038, - 5586: 0x703A, - 5587: 0x703B, - 5588: 0x703C, - 5589: 0x703D, - 5590: 0x703E, - 5591: 0x703F, - 5592: 0x7040, - 5593: 0x7041, - 5594: 0x7042, - 5595: 0x7043, - 5596: 0x7044, - 5597: 0x7045, - 5598: 0x7046, - 5599: 0x7047, - 5600: 0x7048, - 5601: 0x7049, - 5602: 0x704A, - 5603: 0x704B, - 5604: 0x704D, - 5605: 0x704E, - 5606: 0x7050, - 5607: 0x7051, - 5608: 0x7052, - 5609: 0x7053, - 5610: 0x7054, - 5611: 0x7055, - 5612: 0x7056, - 5613: 0x7057, - 5614: 0x7058, - 5615: 0x7059, - 5616: 0x705A, - 5617: 0x705B, - 5618: 0x705C, - 5619: 0x705D, - 5620: 0x705F, - 5621: 0x7060, - 5622: 0x7061, - 5623: 0x7062, - 5624: 0x7063, - 5625: 0x7064, - 5626: 0x7065, - 5627: 0x7066, - 5628: 0x7067, - 5629: 0x7068, - 5630: 0x7069, - 5631: 0x706A, - 5632: 0x706E, - 5633: 0x7071, - 5634: 0x7072, - 5635: 0x7073, - 5636: 0x7074, - 5637: 0x7077, - 5638: 0x7079, - 5639: 0x707A, - 5640: 0x707B, - 5641: 0x707D, - 5642: 0x7081, - 5643: 0x7082, - 5644: 0x7083, - 5645: 0x7084, - 5646: 0x7086, - 5647: 0x7087, - 5648: 0x7088, - 5649: 0x708B, - 5650: 0x708C, - 5651: 0x708D, - 5652: 0x708F, - 5653: 0x7090, - 5654: 0x7091, - 5655: 0x7093, - 5656: 0x7097, - 5657: 0x7098, - 5658: 0x709A, - 5659: 0x709B, - 5660: 0x709E, - 5661: 0x709F, - 5662: 0x70A0, - 5663: 0x70A1, - 5664: 0x70A2, - 5665: 0x70A3, - 5666: 0x70A4, - 5667: 0x70A5, - 5668: 0x70A6, - 5669: 0x70A7, - 5670: 0x70A8, - 5671: 0x70A9, - 5672: 0x70AA, - 5673: 0x70B0, - 5674: 0x70B2, - 5675: 0x70B4, - 5676: 0x70B5, - 5677: 0x70B6, - 5678: 0x70BA, - 5679: 0x70BE, - 5680: 0x70BF, - 5681: 0x70C4, - 5682: 0x70C5, - 5683: 0x70C6, - 5684: 0x70C7, - 5685: 0x70C9, - 5686: 0x70CB, - 5687: 0x70CC, - 5688: 0x70CD, - 5689: 0x70CE, - 5690: 0x70CF, - 5691: 0x70D0, - 5692: 0x70D1, - 5693: 0x70D2, - 5694: 0x70D3, - 5695: 0x70D4, - 5696: 0x70D5, - 5697: 0x70D6, - 5698: 0x70D7, - 5699: 0x70DA, - 5700: 0x70DC, - 5701: 0x70DD, - 5702: 0x70DE, - 5703: 0x70E0, - 5704: 0x70E1, - 5705: 0x70E2, - 5706: 0x70E3, - 5707: 0x70E5, - 5708: 0x70EA, - 5709: 0x70EE, - 5710: 0x70F0, - 5711: 0x70F1, - 5712: 0x70F2, - 5713: 0x70F3, - 5714: 0x70F4, - 5715: 0x70F5, - 5716: 0x70F6, - 5717: 0x70F8, - 5718: 0x70FA, - 5719: 0x70FB, - 5720: 0x70FC, - 5721: 0x70FE, - 5722: 0x70FF, - 5723: 0x7100, - 5724: 0x7101, - 5725: 0x7102, - 5726: 0x7103, - 5727: 0x7104, - 5728: 0x7105, - 5729: 0x7106, - 5730: 0x7107, - 5731: 0x7108, - 5732: 0x710B, - 5733: 0x710C, - 5734: 0x710D, - 5735: 0x710E, - 5736: 0x710F, - 5737: 0x7111, - 5738: 0x7112, - 5739: 0x7114, - 5740: 0x7117, - 5741: 0x711B, - 5742: 0x711C, - 5743: 0x711D, - 5744: 0x711E, - 5745: 0x711F, - 5746: 0x7120, - 5747: 0x7121, - 5748: 0x7122, - 5749: 0x7123, - 5750: 0x7124, - 5751: 0x7125, - 5752: 0x7127, - 5753: 0x7128, - 5754: 0x7129, - 5755: 0x712A, - 5756: 0x712B, - 5757: 0x712C, - 5758: 0x712D, - 5759: 0x712E, - 5760: 0x7132, - 5761: 0x7133, - 5762: 0x7134, - 5763: 0x7135, - 5764: 0x7137, - 5765: 0x7138, - 5766: 0x7139, - 5767: 0x713A, - 5768: 0x713B, - 5769: 0x713C, - 5770: 0x713D, - 5771: 0x713E, - 5772: 0x713F, - 5773: 0x7140, - 5774: 0x7141, - 5775: 0x7142, - 5776: 0x7143, - 5777: 0x7144, - 5778: 0x7146, - 5779: 0x7147, - 5780: 0x7148, - 5781: 0x7149, - 5782: 0x714B, - 5783: 0x714D, - 5784: 0x714F, - 5785: 0x7150, - 5786: 0x7151, - 5787: 0x7152, - 5788: 0x7153, - 5789: 0x7154, - 5790: 0x7155, - 5791: 0x7156, - 5792: 0x7157, - 5793: 0x7158, - 5794: 0x7159, - 5795: 0x715A, - 5796: 0x715B, - 5797: 0x715D, - 5798: 0x715F, - 5799: 0x7160, - 5800: 0x7161, - 5801: 0x7162, - 5802: 0x7163, - 5803: 0x7165, - 5804: 0x7169, - 5805: 0x716A, - 5806: 0x716B, - 5807: 0x716C, - 5808: 0x716D, - 5809: 0x716F, - 5810: 0x7170, - 5811: 0x7171, - 5812: 0x7174, - 5813: 0x7175, - 5814: 0x7176, - 5815: 0x7177, - 5816: 0x7179, - 5817: 0x717B, - 5818: 0x717C, - 5819: 0x717E, - 5820: 0x717F, - 5821: 0x7180, - 5822: 0x7181, - 5823: 0x7182, - 5824: 0x7183, - 5825: 0x7185, - 5826: 0x7186, - 5827: 0x7187, - 5828: 0x7188, - 5829: 0x7189, - 5830: 0x718B, - 5831: 0x718C, - 5832: 0x718D, - 5833: 0x718E, - 5834: 0x7190, - 5835: 0x7191, - 5836: 0x7192, - 5837: 0x7193, - 5838: 0x7195, - 5839: 0x7196, - 5840: 0x7197, - 5841: 0x719A, - 5842: 0x719B, - 5843: 0x719C, - 5844: 0x719D, - 5845: 0x719E, - 5846: 0x71A1, - 5847: 0x71A2, - 5848: 0x71A3, - 5849: 0x71A4, - 5850: 0x71A5, - 5851: 0x71A6, - 5852: 0x71A7, - 5853: 0x71A9, - 5854: 0x71AA, - 5855: 0x71AB, - 5856: 0x71AD, - 5857: 0x71AE, - 5858: 0x71AF, - 5859: 0x71B0, - 5860: 0x71B1, - 5861: 0x71B2, - 5862: 0x71B4, - 5863: 0x71B6, - 5864: 0x71B7, - 5865: 0x71B8, - 5866: 0x71BA, - 5867: 0x71BB, - 5868: 0x71BC, - 5869: 0x71BD, - 5870: 0x71BE, - 5871: 0x71BF, - 5872: 0x71C0, - 5873: 0x71C1, - 5874: 0x71C2, - 5875: 0x71C4, - 5876: 0x71C5, - 5877: 0x71C6, - 5878: 0x71C7, - 5879: 0x71C8, - 5880: 0x71C9, - 5881: 0x71CA, - 5882: 0x71CB, - 5883: 0x71CC, - 5884: 0x71CD, - 5885: 0x71CF, - 5886: 0x71D0, - 5887: 0x71D1, - 5888: 0x71D2, - 5889: 0x71D3, - 5890: 0x71D6, - 5891: 0x71D7, - 5892: 0x71D8, - 5893: 0x71D9, - 5894: 0x71DA, - 5895: 0x71DB, - 5896: 0x71DC, - 5897: 0x71DD, - 5898: 0x71DE, - 5899: 0x71DF, - 5900: 0x71E1, - 5901: 0x71E2, - 5902: 0x71E3, - 5903: 0x71E4, - 5904: 0x71E6, - 5905: 0x71E8, - 5906: 0x71E9, - 5907: 0x71EA, - 5908: 0x71EB, - 5909: 0x71EC, - 5910: 0x71ED, - 5911: 0x71EF, - 5912: 0x71F0, - 5913: 0x71F1, - 5914: 0x71F2, - 5915: 0x71F3, - 5916: 0x71F4, - 5917: 0x71F5, - 5918: 0x71F6, - 5919: 0x71F7, - 5920: 0x71F8, - 5921: 0x71FA, - 5922: 0x71FB, - 5923: 0x71FC, - 5924: 0x71FD, - 5925: 0x71FE, - 5926: 0x71FF, - 5927: 0x7200, - 5928: 0x7201, - 5929: 0x7202, - 5930: 0x7203, - 5931: 0x7204, - 5932: 0x7205, - 5933: 0x7207, - 5934: 0x7208, - 5935: 0x7209, - 5936: 0x720A, - 5937: 0x720B, - 5938: 0x720C, - 5939: 0x720D, - 5940: 0x720E, - 5941: 0x720F, - 5942: 0x7210, - 5943: 0x7211, - 5944: 0x7212, - 5945: 0x7213, - 5946: 0x7214, - 5947: 0x7215, - 5948: 0x7216, - 5949: 0x7217, - 5950: 0x7218, - 5951: 0x7219, - 5952: 0x721A, - 5953: 0x721B, - 5954: 0x721C, - 5955: 0x721E, - 5956: 0x721F, - 5957: 0x7220, - 5958: 0x7221, - 5959: 0x7222, - 5960: 0x7223, - 5961: 0x7224, - 5962: 0x7225, - 5963: 0x7226, - 5964: 0x7227, - 5965: 0x7229, - 5966: 0x722B, - 5967: 0x722D, - 5968: 0x722E, - 5969: 0x722F, - 5970: 0x7232, - 5971: 0x7233, - 5972: 0x7234, - 5973: 0x723A, - 5974: 0x723C, - 5975: 0x723E, - 5976: 0x7240, - 5977: 0x7241, - 5978: 0x7242, - 5979: 0x7243, - 5980: 0x7244, - 5981: 0x7245, - 5982: 0x7246, - 5983: 0x7249, - 5984: 0x724A, - 5985: 0x724B, - 5986: 0x724E, - 5987: 0x724F, - 5988: 0x7250, - 5989: 0x7251, - 5990: 0x7253, - 5991: 0x7254, - 5992: 0x7255, - 5993: 0x7257, - 5994: 0x7258, - 5995: 0x725A, - 5996: 0x725C, - 5997: 0x725E, - 5998: 0x7260, - 5999: 0x7263, - 6000: 0x7264, - 6001: 0x7265, - 6002: 0x7268, - 6003: 0x726A, - 6004: 0x726B, - 6005: 0x726C, - 6006: 0x726D, - 6007: 0x7270, - 6008: 0x7271, - 6009: 0x7273, - 6010: 0x7274, - 6011: 0x7276, - 6012: 0x7277, - 6013: 0x7278, - 6014: 0x727B, - 6015: 0x727C, - 6016: 0x727D, - 6017: 0x7282, - 6018: 0x7283, - 6019: 0x7285, - 6020: 0x7286, - 6021: 0x7287, - 6022: 0x7288, - 6023: 0x7289, - 6024: 0x728C, - 6025: 0x728E, - 6026: 0x7290, - 6027: 0x7291, - 6028: 0x7293, - 6029: 0x7294, - 6030: 0x7295, - 6031: 0x7296, - 6032: 0x7297, - 6033: 0x7298, - 6034: 0x7299, - 6035: 0x729A, - 6036: 0x729B, - 6037: 0x729C, - 6038: 0x729D, - 6039: 0x729E, - 6040: 0x72A0, - 6041: 0x72A1, - 6042: 0x72A2, - 6043: 0x72A3, - 6044: 0x72A4, - 6045: 0x72A5, - 6046: 0x72A6, - 6047: 0x72A7, - 6048: 0x72A8, - 6049: 0x72A9, - 6050: 0x72AA, - 6051: 0x72AB, - 6052: 0x72AE, - 6053: 0x72B1, - 6054: 0x72B2, - 6055: 0x72B3, - 6056: 0x72B5, - 6057: 0x72BA, - 6058: 0x72BB, - 6059: 0x72BC, - 6060: 0x72BD, - 6061: 0x72BE, - 6062: 0x72BF, - 6063: 0x72C0, - 6064: 0x72C5, - 6065: 0x72C6, - 6066: 0x72C7, - 6067: 0x72C9, - 6068: 0x72CA, - 6069: 0x72CB, - 6070: 0x72CC, - 6071: 0x72CF, - 6072: 0x72D1, - 6073: 0x72D3, - 6074: 0x72D4, - 6075: 0x72D5, - 6076: 0x72D6, - 6077: 0x72D8, - 6078: 0x72DA, - 6079: 0x72DB, - 6176: 0x3000, - 6177: 0x3001, - 6178: 0x3002, - 6179: 0x00B7, - 6180: 0x02C9, - 6181: 0x02C7, - 6182: 0x00A8, - 6183: 0x3003, - 6184: 0x3005, - 6185: 0x2014, - 6186: 0xFF5E, - 6187: 0x2016, - 6188: 0x2026, - 6189: 0x2018, - 6190: 0x2019, - 6191: 0x201C, - 6192: 0x201D, - 6193: 0x3014, - 6194: 0x3015, - 6195: 0x3008, - 6196: 0x3009, - 6197: 0x300A, - 6198: 0x300B, - 6199: 0x300C, - 6200: 0x300D, - 6201: 0x300E, - 6202: 0x300F, - 6203: 0x3016, - 6204: 0x3017, - 6205: 0x3010, - 6206: 0x3011, - 6207: 0x00B1, - 6208: 0x00D7, - 6209: 0x00F7, - 6210: 0x2236, - 6211: 0x2227, - 6212: 0x2228, - 6213: 0x2211, - 6214: 0x220F, - 6215: 0x222A, - 6216: 0x2229, - 6217: 0x2208, - 6218: 0x2237, - 6219: 0x221A, - 6220: 0x22A5, - 6221: 0x2225, - 6222: 0x2220, - 6223: 0x2312, - 6224: 0x2299, - 6225: 0x222B, - 6226: 0x222E, - 6227: 0x2261, - 6228: 0x224C, - 6229: 0x2248, - 6230: 0x223D, - 6231: 0x221D, - 6232: 0x2260, - 6233: 0x226E, - 6234: 0x226F, - 6235: 0x2264, - 6236: 0x2265, - 6237: 0x221E, - 6238: 0x2235, - 6239: 0x2234, - 6240: 0x2642, - 6241: 0x2640, - 6242: 0x00B0, - 6243: 0x2032, - 6244: 0x2033, - 6245: 0x2103, - 6246: 0xFF04, - 6247: 0x00A4, - 6248: 0xFFE0, - 6249: 0xFFE1, - 6250: 0x2030, - 6251: 0x00A7, - 6252: 0x2116, - 6253: 0x2606, - 6254: 0x2605, - 6255: 0x25CB, - 6256: 0x25CF, - 6257: 0x25CE, - 6258: 0x25C7, - 6259: 0x25C6, - 6260: 0x25A1, - 6261: 0x25A0, - 6262: 0x25B3, - 6263: 0x25B2, - 6264: 0x203B, - 6265: 0x2192, - 6266: 0x2190, - 6267: 0x2191, - 6268: 0x2193, - 6269: 0x3013, - 6366: 0x2170, - 6367: 0x2171, - 6368: 0x2172, - 6369: 0x2173, - 6370: 0x2174, - 6371: 0x2175, - 6372: 0x2176, - 6373: 0x2177, - 6374: 0x2178, - 6375: 0x2179, - 6382: 0x2488, - 6383: 0x2489, - 6384: 0x248A, - 6385: 0x248B, - 6386: 0x248C, - 6387: 0x248D, - 6388: 0x248E, - 6389: 0x248F, - 6390: 0x2490, - 6391: 0x2491, - 6392: 0x2492, - 6393: 0x2493, - 6394: 0x2494, - 6395: 0x2495, - 6396: 0x2496, - 6397: 0x2497, - 6398: 0x2498, - 6399: 0x2499, - 6400: 0x249A, - 6401: 0x249B, - 6402: 0x2474, - 6403: 0x2475, - 6404: 0x2476, - 6405: 0x2477, - 6406: 0x2478, - 6407: 0x2479, - 6408: 0x247A, - 6409: 0x247B, - 6410: 0x247C, - 6411: 0x247D, - 6412: 0x247E, - 6413: 0x247F, - 6414: 0x2480, - 6415: 0x2481, - 6416: 0x2482, - 6417: 0x2483, - 6418: 0x2484, - 6419: 0x2485, - 6420: 0x2486, - 6421: 0x2487, - 6422: 0x2460, - 6423: 0x2461, - 6424: 0x2462, - 6425: 0x2463, - 6426: 0x2464, - 6427: 0x2465, - 6428: 0x2466, - 6429: 0x2467, - 6430: 0x2468, - 6431: 0x2469, - 6432: 0x20AC, - 6434: 0x3220, - 6435: 0x3221, - 6436: 0x3222, - 6437: 0x3223, - 6438: 0x3224, - 6439: 0x3225, - 6440: 0x3226, - 6441: 0x3227, - 6442: 0x3228, - 6443: 0x3229, - 6446: 0x2160, - 6447: 0x2161, - 6448: 0x2162, - 6449: 0x2163, - 6450: 0x2164, - 6451: 0x2165, - 6452: 0x2166, - 6453: 0x2167, - 6454: 0x2168, - 6455: 0x2169, - 6456: 0x216A, - 6457: 0x216B, - 6555: 0x3000, - 6556: 0xFF01, - 6557: 0xFF02, - 6558: 0xFF03, - 6559: 0xFFE5, - 6560: 0xFF05, - 6561: 0xFF06, - 6562: 0xFF07, - 6563: 0xFF08, - 6564: 0xFF09, - 6565: 0xFF0A, - 6566: 0xFF0B, - 6567: 0xFF0C, - 6568: 0xFF0D, - 6569: 0xFF0E, - 6570: 0xFF0F, - 6571: 0xFF10, - 6572: 0xFF11, - 6573: 0xFF12, - 6574: 0xFF13, - 6575: 0xFF14, - 6576: 0xFF15, - 6577: 0xFF16, - 6578: 0xFF17, - 6579: 0xFF18, - 6580: 0xFF19, - 6581: 0xFF1A, - 6582: 0xFF1B, - 6583: 0xFF1C, - 6584: 0xFF1D, - 6585: 0xFF1E, - 6586: 0xFF1F, - 6587: 0xFF20, - 6588: 0xFF21, - 6589: 0xFF22, - 6590: 0xFF23, - 6591: 0xFF24, - 6592: 0xFF25, - 6593: 0xFF26, - 6594: 0xFF27, - 6595: 0xFF28, - 6596: 0xFF29, - 6597: 0xFF2A, - 6598: 0xFF2B, - 6599: 0xFF2C, - 6600: 0xFF2D, - 6601: 0xFF2E, - 6602: 0xFF2F, - 6603: 0xFF30, - 6604: 0xFF31, - 6605: 0xFF32, - 6606: 0xFF33, - 6607: 0xFF34, - 6608: 0xFF35, - 6609: 0xFF36, - 6610: 0xFF37, - 6611: 0xFF38, - 6612: 0xFF39, - 6613: 0xFF3A, - 6614: 0xFF3B, - 6615: 0xFF3C, - 6616: 0xFF3D, - 6617: 0xFF3E, - 6618: 0xFF3F, - 6619: 0xFF40, - 6620: 0xFF41, - 6621: 0xFF42, - 6622: 0xFF43, - 6623: 0xFF44, - 6624: 0xFF45, - 6625: 0xFF46, - 6626: 0xFF47, - 6627: 0xFF48, - 6628: 0xFF49, - 6629: 0xFF4A, - 6630: 0xFF4B, - 6631: 0xFF4C, - 6632: 0xFF4D, - 6633: 0xFF4E, - 6634: 0xFF4F, - 6635: 0xFF50, - 6636: 0xFF51, - 6637: 0xFF52, - 6638: 0xFF53, - 6639: 0xFF54, - 6640: 0xFF55, - 6641: 0xFF56, - 6642: 0xFF57, - 6643: 0xFF58, - 6644: 0xFF59, - 6645: 0xFF5A, - 6646: 0xFF5B, - 6647: 0xFF5C, - 6648: 0xFF5D, - 6649: 0xFFE3, - 6746: 0x3041, - 6747: 0x3042, - 6748: 0x3043, - 6749: 0x3044, - 6750: 0x3045, - 6751: 0x3046, - 6752: 0x3047, - 6753: 0x3048, - 6754: 0x3049, - 6755: 0x304A, - 6756: 0x304B, - 6757: 0x304C, - 6758: 0x304D, - 6759: 0x304E, - 6760: 0x304F, - 6761: 0x3050, - 6762: 0x3051, - 6763: 0x3052, - 6764: 0x3053, - 6765: 0x3054, - 6766: 0x3055, - 6767: 0x3056, - 6768: 0x3057, - 6769: 0x3058, - 6770: 0x3059, - 6771: 0x305A, - 6772: 0x305B, - 6773: 0x305C, - 6774: 0x305D, - 6775: 0x305E, - 6776: 0x305F, - 6777: 0x3060, - 6778: 0x3061, - 6779: 0x3062, - 6780: 0x3063, - 6781: 0x3064, - 6782: 0x3065, - 6783: 0x3066, - 6784: 0x3067, - 6785: 0x3068, - 6786: 0x3069, - 6787: 0x306A, - 6788: 0x306B, - 6789: 0x306C, - 6790: 0x306D, - 6791: 0x306E, - 6792: 0x306F, - 6793: 0x3070, - 6794: 0x3071, - 6795: 0x3072, - 6796: 0x3073, - 6797: 0x3074, - 6798: 0x3075, - 6799: 0x3076, - 6800: 0x3077, - 6801: 0x3078, - 6802: 0x3079, - 6803: 0x307A, - 6804: 0x307B, - 6805: 0x307C, - 6806: 0x307D, - 6807: 0x307E, - 6808: 0x307F, - 6809: 0x3080, - 6810: 0x3081, - 6811: 0x3082, - 6812: 0x3083, - 6813: 0x3084, - 6814: 0x3085, - 6815: 0x3086, - 6816: 0x3087, - 6817: 0x3088, - 6818: 0x3089, - 6819: 0x308A, - 6820: 0x308B, - 6821: 0x308C, - 6822: 0x308D, - 6823: 0x308E, - 6824: 0x308F, - 6825: 0x3090, - 6826: 0x3091, - 6827: 0x3092, - 6828: 0x3093, - 6936: 0x30A1, - 6937: 0x30A2, - 6938: 0x30A3, - 6939: 0x30A4, - 6940: 0x30A5, - 6941: 0x30A6, - 6942: 0x30A7, - 6943: 0x30A8, - 6944: 0x30A9, - 6945: 0x30AA, - 6946: 0x30AB, - 6947: 0x30AC, - 6948: 0x30AD, - 6949: 0x30AE, - 6950: 0x30AF, - 6951: 0x30B0, - 6952: 0x30B1, - 6953: 0x30B2, - 6954: 0x30B3, - 6955: 0x30B4, - 6956: 0x30B5, - 6957: 0x30B6, - 6958: 0x30B7, - 6959: 0x30B8, - 6960: 0x30B9, - 6961: 0x30BA, - 6962: 0x30BB, - 6963: 0x30BC, - 6964: 0x30BD, - 6965: 0x30BE, - 6966: 0x30BF, - 6967: 0x30C0, - 6968: 0x30C1, - 6969: 0x30C2, - 6970: 0x30C3, - 6971: 0x30C4, - 6972: 0x30C5, - 6973: 0x30C6, - 6974: 0x30C7, - 6975: 0x30C8, - 6976: 0x30C9, - 6977: 0x30CA, - 6978: 0x30CB, - 6979: 0x30CC, - 6980: 0x30CD, - 6981: 0x30CE, - 6982: 0x30CF, - 6983: 0x30D0, - 6984: 0x30D1, - 6985: 0x30D2, - 6986: 0x30D3, - 6987: 0x30D4, - 6988: 0x30D5, - 6989: 0x30D6, - 6990: 0x30D7, - 6991: 0x30D8, - 6992: 0x30D9, - 6993: 0x30DA, - 6994: 0x30DB, - 6995: 0x30DC, - 6996: 0x30DD, - 6997: 0x30DE, - 6998: 0x30DF, - 6999: 0x30E0, - 7000: 0x30E1, - 7001: 0x30E2, - 7002: 0x30E3, - 7003: 0x30E4, - 7004: 0x30E5, - 7005: 0x30E6, - 7006: 0x30E7, - 7007: 0x30E8, - 7008: 0x30E9, - 7009: 0x30EA, - 7010: 0x30EB, - 7011: 0x30EC, - 7012: 0x30ED, - 7013: 0x30EE, - 7014: 0x30EF, - 7015: 0x30F0, - 7016: 0x30F1, - 7017: 0x30F2, - 7018: 0x30F3, - 7019: 0x30F4, - 7020: 0x30F5, - 7021: 0x30F6, - 7126: 0x0391, - 7127: 0x0392, - 7128: 0x0393, - 7129: 0x0394, - 7130: 0x0395, - 7131: 0x0396, - 7132: 0x0397, - 7133: 0x0398, - 7134: 0x0399, - 7135: 0x039A, - 7136: 0x039B, - 7137: 0x039C, - 7138: 0x039D, - 7139: 0x039E, - 7140: 0x039F, - 7141: 0x03A0, - 7142: 0x03A1, - 7143: 0x03A3, - 7144: 0x03A4, - 7145: 0x03A5, - 7146: 0x03A6, - 7147: 0x03A7, - 7148: 0x03A8, - 7149: 0x03A9, - 7158: 0x03B1, - 7159: 0x03B2, - 7160: 0x03B3, - 7161: 0x03B4, - 7162: 0x03B5, - 7163: 0x03B6, - 7164: 0x03B7, - 7165: 0x03B8, - 7166: 0x03B9, - 7167: 0x03BA, - 7168: 0x03BB, - 7169: 0x03BC, - 7170: 0x03BD, - 7171: 0x03BE, - 7172: 0x03BF, - 7173: 0x03C0, - 7174: 0x03C1, - 7175: 0x03C3, - 7176: 0x03C4, - 7177: 0x03C5, - 7178: 0x03C6, - 7179: 0x03C7, - 7180: 0x03C8, - 7181: 0x03C9, - 7189: 0xFE35, - 7190: 0xFE36, - 7191: 0xFE39, - 7192: 0xFE3A, - 7193: 0xFE3F, - 7194: 0xFE40, - 7195: 0xFE3D, - 7196: 0xFE3E, - 7197: 0xFE41, - 7198: 0xFE42, - 7199: 0xFE43, - 7200: 0xFE44, - 7203: 0xFE3B, - 7204: 0xFE3C, - 7205: 0xFE37, - 7206: 0xFE38, - 7207: 0xFE31, - 7209: 0xFE33, - 7210: 0xFE34, - 7316: 0x0410, - 7317: 0x0411, - 7318: 0x0412, - 7319: 0x0413, - 7320: 0x0414, - 7321: 0x0415, - 7322: 0x0401, - 7323: 0x0416, - 7324: 0x0417, - 7325: 0x0418, - 7326: 0x0419, - 7327: 0x041A, - 7328: 0x041B, - 7329: 0x041C, - 7330: 0x041D, - 7331: 0x041E, - 7332: 0x041F, - 7333: 0x0420, - 7334: 0x0421, - 7335: 0x0422, - 7336: 0x0423, - 7337: 0x0424, - 7338: 0x0425, - 7339: 0x0426, - 7340: 0x0427, - 7341: 0x0428, - 7342: 0x0429, - 7343: 0x042A, - 7344: 0x042B, - 7345: 0x042C, - 7346: 0x042D, - 7347: 0x042E, - 7348: 0x042F, - 7364: 0x0430, - 7365: 0x0431, - 7366: 0x0432, - 7367: 0x0433, - 7368: 0x0434, - 7369: 0x0435, - 7370: 0x0451, - 7371: 0x0436, - 7372: 0x0437, - 7373: 0x0438, - 7374: 0x0439, - 7375: 0x043A, - 7376: 0x043B, - 7377: 0x043C, - 7378: 0x043D, - 7379: 0x043E, - 7380: 0x043F, - 7381: 0x0440, - 7382: 0x0441, - 7383: 0x0442, - 7384: 0x0443, - 7385: 0x0444, - 7386: 0x0445, - 7387: 0x0446, - 7388: 0x0447, - 7389: 0x0448, - 7390: 0x0449, - 7391: 0x044A, - 7392: 0x044B, - 7393: 0x044C, - 7394: 0x044D, - 7395: 0x044E, - 7396: 0x044F, - 7410: 0x02CA, - 7411: 0x02CB, - 7412: 0x02D9, - 7413: 0x2013, - 7414: 0x2015, - 7415: 0x2025, - 7416: 0x2035, - 7417: 0x2105, - 7418: 0x2109, - 7419: 0x2196, - 7420: 0x2197, - 7421: 0x2198, - 7422: 0x2199, - 7423: 0x2215, - 7424: 0x221F, - 7425: 0x2223, - 7426: 0x2252, - 7427: 0x2266, - 7428: 0x2267, - 7429: 0x22BF, - 7430: 0x2550, - 7431: 0x2551, - 7432: 0x2552, - 7433: 0x2553, - 7434: 0x2554, - 7435: 0x2555, - 7436: 0x2556, - 7437: 0x2557, - 7438: 0x2558, - 7439: 0x2559, - 7440: 0x255A, - 7441: 0x255B, - 7442: 0x255C, - 7443: 0x255D, - 7444: 0x255E, - 7445: 0x255F, - 7446: 0x2560, - 7447: 0x2561, - 7448: 0x2562, - 7449: 0x2563, - 7450: 0x2564, - 7451: 0x2565, - 7452: 0x2566, - 7453: 0x2567, - 7454: 0x2568, - 7455: 0x2569, - 7456: 0x256A, - 7457: 0x256B, - 7458: 0x256C, - 7459: 0x256D, - 7460: 0x256E, - 7461: 0x256F, - 7462: 0x2570, - 7463: 0x2571, - 7464: 0x2572, - 7465: 0x2573, - 7466: 0x2581, - 7467: 0x2582, - 7468: 0x2583, - 7469: 0x2584, - 7470: 0x2585, - 7471: 0x2586, - 7472: 0x2587, - 7473: 0x2588, - 7474: 0x2589, - 7475: 0x258A, - 7476: 0x258B, - 7477: 0x258C, - 7478: 0x258D, - 7479: 0x258E, - 7480: 0x258F, - 7481: 0x2593, - 7482: 0x2594, - 7483: 0x2595, - 7484: 0x25BC, - 7485: 0x25BD, - 7486: 0x25E2, - 7487: 0x25E3, - 7488: 0x25E4, - 7489: 0x25E5, - 7490: 0x2609, - 7491: 0x2295, - 7492: 0x3012, - 7493: 0x301D, - 7494: 0x301E, - 7506: 0x0101, - 7507: 0x00E1, - 7508: 0x01CE, - 7509: 0x00E0, - 7510: 0x0113, - 7511: 0x00E9, - 7512: 0x011B, - 7513: 0x00E8, - 7514: 0x012B, - 7515: 0x00ED, - 7516: 0x01D0, - 7517: 0x00EC, - 7518: 0x014D, - 7519: 0x00F3, - 7520: 0x01D2, - 7521: 0x00F2, - 7522: 0x016B, - 7523: 0x00FA, - 7524: 0x01D4, - 7525: 0x00F9, - 7526: 0x01D6, - 7527: 0x01D8, - 7528: 0x01DA, - 7529: 0x01DC, - 7530: 0x00FC, - 7531: 0x00EA, - 7532: 0x0251, - 7534: 0x0144, - 7535: 0x0148, - 7536: 0x01F9, - 7537: 0x0261, - 7542: 0x3105, - 7543: 0x3106, - 7544: 0x3107, - 7545: 0x3108, - 7546: 0x3109, - 7547: 0x310A, - 7548: 0x310B, - 7549: 0x310C, - 7550: 0x310D, - 7551: 0x310E, - 7552: 0x310F, - 7553: 0x3110, - 7554: 0x3111, - 7555: 0x3112, - 7556: 0x3113, - 7557: 0x3114, - 7558: 0x3115, - 7559: 0x3116, - 7560: 0x3117, - 7561: 0x3118, - 7562: 0x3119, - 7563: 0x311A, - 7564: 0x311B, - 7565: 0x311C, - 7566: 0x311D, - 7567: 0x311E, - 7568: 0x311F, - 7569: 0x3120, - 7570: 0x3121, - 7571: 0x3122, - 7572: 0x3123, - 7573: 0x3124, - 7574: 0x3125, - 7575: 0x3126, - 7576: 0x3127, - 7577: 0x3128, - 7578: 0x3129, - 7600: 0x3021, - 7601: 0x3022, - 7602: 0x3023, - 7603: 0x3024, - 7604: 0x3025, - 7605: 0x3026, - 7606: 0x3027, - 7607: 0x3028, - 7608: 0x3029, - 7609: 0x32A3, - 7610: 0x338E, - 7611: 0x338F, - 7612: 0x339C, - 7613: 0x339D, - 7614: 0x339E, - 7615: 0x33A1, - 7616: 0x33C4, - 7617: 0x33CE, - 7618: 0x33D1, - 7619: 0x33D2, - 7620: 0x33D5, - 7621: 0xFE30, - 7622: 0xFFE2, - 7623: 0xFFE4, - 7625: 0x2121, - 7626: 0x3231, - 7628: 0x2010, - 7632: 0x30FC, - 7633: 0x309B, - 7634: 0x309C, - 7635: 0x30FD, - 7636: 0x30FE, - 7637: 0x3006, - 7638: 0x309D, - 7639: 0x309E, - 7640: 0xFE49, - 7641: 0xFE4A, - 7642: 0xFE4B, - 7643: 0xFE4C, - 7644: 0xFE4D, - 7645: 0xFE4E, - 7646: 0xFE4F, - 7647: 0xFE50, - 7648: 0xFE51, - 7649: 0xFE52, - 7650: 0xFE54, - 7651: 0xFE55, - 7652: 0xFE56, - 7653: 0xFE57, - 7654: 0xFE59, - 7655: 0xFE5A, - 7656: 0xFE5B, - 7657: 0xFE5C, - 7658: 0xFE5D, - 7659: 0xFE5E, - 7660: 0xFE5F, - 7661: 0xFE60, - 7662: 0xFE61, - 7663: 0xFE62, - 7664: 0xFE63, - 7665: 0xFE64, - 7666: 0xFE65, - 7667: 0xFE66, - 7668: 0xFE68, - 7669: 0xFE69, - 7670: 0xFE6A, - 7671: 0xFE6B, - 7672: 0x303E, - 7673: 0x2FF0, - 7674: 0x2FF1, - 7675: 0x2FF2, - 7676: 0x2FF3, - 7677: 0x2FF4, - 7678: 0x2FF5, - 7679: 0x2FF6, - 7680: 0x2FF7, - 7681: 0x2FF8, - 7682: 0x2FF9, - 7683: 0x2FFA, - 7684: 0x2FFB, - 7685: 0x3007, - 7699: 0x2500, - 7700: 0x2501, - 7701: 0x2502, - 7702: 0x2503, - 7703: 0x2504, - 7704: 0x2505, - 7705: 0x2506, - 7706: 0x2507, - 7707: 0x2508, - 7708: 0x2509, - 7709: 0x250A, - 7710: 0x250B, - 7711: 0x250C, - 7712: 0x250D, - 7713: 0x250E, - 7714: 0x250F, - 7715: 0x2510, - 7716: 0x2511, - 7717: 0x2512, - 7718: 0x2513, - 7719: 0x2514, - 7720: 0x2515, - 7721: 0x2516, - 7722: 0x2517, - 7723: 0x2518, - 7724: 0x2519, - 7725: 0x251A, - 7726: 0x251B, - 7727: 0x251C, - 7728: 0x251D, - 7729: 0x251E, - 7730: 0x251F, - 7731: 0x2520, - 7732: 0x2521, - 7733: 0x2522, - 7734: 0x2523, - 7735: 0x2524, - 7736: 0x2525, - 7737: 0x2526, - 7738: 0x2527, - 7739: 0x2528, - 7740: 0x2529, - 7741: 0x252A, - 7742: 0x252B, - 7743: 0x252C, - 7744: 0x252D, - 7745: 0x252E, - 7746: 0x252F, - 7747: 0x2530, - 7748: 0x2531, - 7749: 0x2532, - 7750: 0x2533, - 7751: 0x2534, - 7752: 0x2535, - 7753: 0x2536, - 7754: 0x2537, - 7755: 0x2538, - 7756: 0x2539, - 7757: 0x253A, - 7758: 0x253B, - 7759: 0x253C, - 7760: 0x253D, - 7761: 0x253E, - 7762: 0x253F, - 7763: 0x2540, - 7764: 0x2541, - 7765: 0x2542, - 7766: 0x2543, - 7767: 0x2544, - 7768: 0x2545, - 7769: 0x2546, - 7770: 0x2547, - 7771: 0x2548, - 7772: 0x2549, - 7773: 0x254A, - 7774: 0x254B, - 7790: 0x72DC, - 7791: 0x72DD, - 7792: 0x72DF, - 7793: 0x72E2, - 7794: 0x72E3, - 7795: 0x72E4, - 7796: 0x72E5, - 7797: 0x72E6, - 7798: 0x72E7, - 7799: 0x72EA, - 7800: 0x72EB, - 7801: 0x72F5, - 7802: 0x72F6, - 7803: 0x72F9, - 7804: 0x72FD, - 7805: 0x72FE, - 7806: 0x72FF, - 7807: 0x7300, - 7808: 0x7302, - 7809: 0x7304, - 7810: 0x7305, - 7811: 0x7306, - 7812: 0x7307, - 7813: 0x7308, - 7814: 0x7309, - 7815: 0x730B, - 7816: 0x730C, - 7817: 0x730D, - 7818: 0x730F, - 7819: 0x7310, - 7820: 0x7311, - 7821: 0x7312, - 7822: 0x7314, - 7823: 0x7318, - 7824: 0x7319, - 7825: 0x731A, - 7826: 0x731F, - 7827: 0x7320, - 7828: 0x7323, - 7829: 0x7324, - 7830: 0x7326, - 7831: 0x7327, - 7832: 0x7328, - 7833: 0x732D, - 7834: 0x732F, - 7835: 0x7330, - 7836: 0x7332, - 7837: 0x7333, - 7838: 0x7335, - 7839: 0x7336, - 7840: 0x733A, - 7841: 0x733B, - 7842: 0x733C, - 7843: 0x733D, - 7844: 0x7340, - 7845: 0x7341, - 7846: 0x7342, - 7847: 0x7343, - 7848: 0x7344, - 7849: 0x7345, - 7850: 0x7346, - 7851: 0x7347, - 7852: 0x7348, - 7853: 0x7349, - 7854: 0x734A, - 7855: 0x734B, - 7856: 0x734C, - 7857: 0x734E, - 7858: 0x734F, - 7859: 0x7351, - 7860: 0x7353, - 7861: 0x7354, - 7862: 0x7355, - 7863: 0x7356, - 7864: 0x7358, - 7865: 0x7359, - 7866: 0x735A, - 7867: 0x735B, - 7868: 0x735C, - 7869: 0x735D, - 7870: 0x735E, - 7871: 0x735F, - 7872: 0x7361, - 7873: 0x7362, - 7874: 0x7363, - 7875: 0x7364, - 7876: 0x7365, - 7877: 0x7366, - 7878: 0x7367, - 7879: 0x7368, - 7880: 0x7369, - 7881: 0x736A, - 7882: 0x736B, - 7883: 0x736E, - 7884: 0x7370, - 7885: 0x7371, - 7980: 0x7372, - 7981: 0x7373, - 7982: 0x7374, - 7983: 0x7375, - 7984: 0x7376, - 7985: 0x7377, - 7986: 0x7378, - 7987: 0x7379, - 7988: 0x737A, - 7989: 0x737B, - 7990: 0x737C, - 7991: 0x737D, - 7992: 0x737F, - 7993: 0x7380, - 7994: 0x7381, - 7995: 0x7382, - 7996: 0x7383, - 7997: 0x7385, - 7998: 0x7386, - 7999: 0x7388, - 8000: 0x738A, - 8001: 0x738C, - 8002: 0x738D, - 8003: 0x738F, - 8004: 0x7390, - 8005: 0x7392, - 8006: 0x7393, - 8007: 0x7394, - 8008: 0x7395, - 8009: 0x7397, - 8010: 0x7398, - 8011: 0x7399, - 8012: 0x739A, - 8013: 0x739C, - 8014: 0x739D, - 8015: 0x739E, - 8016: 0x73A0, - 8017: 0x73A1, - 8018: 0x73A3, - 8019: 0x73A4, - 8020: 0x73A5, - 8021: 0x73A6, - 8022: 0x73A7, - 8023: 0x73A8, - 8024: 0x73AA, - 8025: 0x73AC, - 8026: 0x73AD, - 8027: 0x73B1, - 8028: 0x73B4, - 8029: 0x73B5, - 8030: 0x73B6, - 8031: 0x73B8, - 8032: 0x73B9, - 8033: 0x73BC, - 8034: 0x73BD, - 8035: 0x73BE, - 8036: 0x73BF, - 8037: 0x73C1, - 8038: 0x73C3, - 8039: 0x73C4, - 8040: 0x73C5, - 8041: 0x73C6, - 8042: 0x73C7, - 8043: 0x73CB, - 8044: 0x73CC, - 8045: 0x73CE, - 8046: 0x73D2, - 8047: 0x73D3, - 8048: 0x73D4, - 8049: 0x73D5, - 8050: 0x73D6, - 8051: 0x73D7, - 8052: 0x73D8, - 8053: 0x73DA, - 8054: 0x73DB, - 8055: 0x73DC, - 8056: 0x73DD, - 8057: 0x73DF, - 8058: 0x73E1, - 8059: 0x73E2, - 8060: 0x73E3, - 8061: 0x73E4, - 8062: 0x73E6, - 8063: 0x73E8, - 8064: 0x73EA, - 8065: 0x73EB, - 8066: 0x73EC, - 8067: 0x73EE, - 8068: 0x73EF, - 8069: 0x73F0, - 8070: 0x73F1, - 8071: 0x73F3, - 8072: 0x73F4, - 8073: 0x73F5, - 8074: 0x73F6, - 8075: 0x73F7, - 8170: 0x73F8, - 8171: 0x73F9, - 8172: 0x73FA, - 8173: 0x73FB, - 8174: 0x73FC, - 8175: 0x73FD, - 8176: 0x73FE, - 8177: 0x73FF, - 8178: 0x7400, - 8179: 0x7401, - 8180: 0x7402, - 8181: 0x7404, - 8182: 0x7407, - 8183: 0x7408, - 8184: 0x740B, - 8185: 0x740C, - 8186: 0x740D, - 8187: 0x740E, - 8188: 0x7411, - 8189: 0x7412, - 8190: 0x7413, - 8191: 0x7414, - 8192: 0x7415, - 8193: 0x7416, - 8194: 0x7417, - 8195: 0x7418, - 8196: 0x7419, - 8197: 0x741C, - 8198: 0x741D, - 8199: 0x741E, - 8200: 0x741F, - 8201: 0x7420, - 8202: 0x7421, - 8203: 0x7423, - 8204: 0x7424, - 8205: 0x7427, - 8206: 0x7429, - 8207: 0x742B, - 8208: 0x742D, - 8209: 0x742F, - 8210: 0x7431, - 8211: 0x7432, - 8212: 0x7437, - 8213: 0x7438, - 8214: 0x7439, - 8215: 0x743A, - 8216: 0x743B, - 8217: 0x743D, - 8218: 0x743E, - 8219: 0x743F, - 8220: 0x7440, - 8221: 0x7442, - 8222: 0x7443, - 8223: 0x7444, - 8224: 0x7445, - 8225: 0x7446, - 8226: 0x7447, - 8227: 0x7448, - 8228: 0x7449, - 8229: 0x744A, - 8230: 0x744B, - 8231: 0x744C, - 8232: 0x744D, - 8233: 0x744E, - 8234: 0x744F, - 8235: 0x7450, - 8236: 0x7451, - 8237: 0x7452, - 8238: 0x7453, - 8239: 0x7454, - 8240: 0x7456, - 8241: 0x7458, - 8242: 0x745D, - 8243: 0x7460, - 8244: 0x7461, - 8245: 0x7462, - 8246: 0x7463, - 8247: 0x7464, - 8248: 0x7465, - 8249: 0x7466, - 8250: 0x7467, - 8251: 0x7468, - 8252: 0x7469, - 8253: 0x746A, - 8254: 0x746B, - 8255: 0x746C, - 8256: 0x746E, - 8257: 0x746F, - 8258: 0x7471, - 8259: 0x7472, - 8260: 0x7473, - 8261: 0x7474, - 8262: 0x7475, - 8263: 0x7478, - 8264: 0x7479, - 8265: 0x747A, - 8360: 0x747B, - 8361: 0x747C, - 8362: 0x747D, - 8363: 0x747F, - 8364: 0x7482, - 8365: 0x7484, - 8366: 0x7485, - 8367: 0x7486, - 8368: 0x7488, - 8369: 0x7489, - 8370: 0x748A, - 8371: 0x748C, - 8372: 0x748D, - 8373: 0x748F, - 8374: 0x7491, - 8375: 0x7492, - 8376: 0x7493, - 8377: 0x7494, - 8378: 0x7495, - 8379: 0x7496, - 8380: 0x7497, - 8381: 0x7498, - 8382: 0x7499, - 8383: 0x749A, - 8384: 0x749B, - 8385: 0x749D, - 8386: 0x749F, - 8387: 0x74A0, - 8388: 0x74A1, - 8389: 0x74A2, - 8390: 0x74A3, - 8391: 0x74A4, - 8392: 0x74A5, - 8393: 0x74A6, - 8394: 0x74AA, - 8395: 0x74AB, - 8396: 0x74AC, - 8397: 0x74AD, - 8398: 0x74AE, - 8399: 0x74AF, - 8400: 0x74B0, - 8401: 0x74B1, - 8402: 0x74B2, - 8403: 0x74B3, - 8404: 0x74B4, - 8405: 0x74B5, - 8406: 0x74B6, - 8407: 0x74B7, - 8408: 0x74B8, - 8409: 0x74B9, - 8410: 0x74BB, - 8411: 0x74BC, - 8412: 0x74BD, - 8413: 0x74BE, - 8414: 0x74BF, - 8415: 0x74C0, - 8416: 0x74C1, - 8417: 0x74C2, - 8418: 0x74C3, - 8419: 0x74C4, - 8420: 0x74C5, - 8421: 0x74C6, - 8422: 0x74C7, - 8423: 0x74C8, - 8424: 0x74C9, - 8425: 0x74CA, - 8426: 0x74CB, - 8427: 0x74CC, - 8428: 0x74CD, - 8429: 0x74CE, - 8430: 0x74CF, - 8431: 0x74D0, - 8432: 0x74D1, - 8433: 0x74D3, - 8434: 0x74D4, - 8435: 0x74D5, - 8436: 0x74D6, - 8437: 0x74D7, - 8438: 0x74D8, - 8439: 0x74D9, - 8440: 0x74DA, - 8441: 0x74DB, - 8442: 0x74DD, - 8443: 0x74DF, - 8444: 0x74E1, - 8445: 0x74E5, - 8446: 0x74E7, - 8447: 0x74E8, - 8448: 0x74E9, - 8449: 0x74EA, - 8450: 0x74EB, - 8451: 0x74EC, - 8452: 0x74ED, - 8453: 0x74F0, - 8454: 0x74F1, - 8455: 0x74F2, - 8550: 0x74F3, - 8551: 0x74F5, - 8552: 0x74F8, - 8553: 0x74F9, - 8554: 0x74FA, - 8555: 0x74FB, - 8556: 0x74FC, - 8557: 0x74FD, - 8558: 0x74FE, - 8559: 0x7500, - 8560: 0x7501, - 8561: 0x7502, - 8562: 0x7503, - 8563: 0x7505, - 8564: 0x7506, - 8565: 0x7507, - 8566: 0x7508, - 8567: 0x7509, - 8568: 0x750A, - 8569: 0x750B, - 8570: 0x750C, - 8571: 0x750E, - 8572: 0x7510, - 8573: 0x7512, - 8574: 0x7514, - 8575: 0x7515, - 8576: 0x7516, - 8577: 0x7517, - 8578: 0x751B, - 8579: 0x751D, - 8580: 0x751E, - 8581: 0x7520, - 8582: 0x7521, - 8583: 0x7522, - 8584: 0x7523, - 8585: 0x7524, - 8586: 0x7526, - 8587: 0x7527, - 8588: 0x752A, - 8589: 0x752E, - 8590: 0x7534, - 8591: 0x7536, - 8592: 0x7539, - 8593: 0x753C, - 8594: 0x753D, - 8595: 0x753F, - 8596: 0x7541, - 8597: 0x7542, - 8598: 0x7543, - 8599: 0x7544, - 8600: 0x7546, - 8601: 0x7547, - 8602: 0x7549, - 8603: 0x754A, - 8604: 0x754D, - 8605: 0x7550, - 8606: 0x7551, - 8607: 0x7552, - 8608: 0x7553, - 8609: 0x7555, - 8610: 0x7556, - 8611: 0x7557, - 8612: 0x7558, - 8613: 0x755D, - 8614: 0x755E, - 8615: 0x755F, - 8616: 0x7560, - 8617: 0x7561, - 8618: 0x7562, - 8619: 0x7563, - 8620: 0x7564, - 8621: 0x7567, - 8622: 0x7568, - 8623: 0x7569, - 8624: 0x756B, - 8625: 0x756C, - 8626: 0x756D, - 8627: 0x756E, - 8628: 0x756F, - 8629: 0x7570, - 8630: 0x7571, - 8631: 0x7573, - 8632: 0x7575, - 8633: 0x7576, - 8634: 0x7577, - 8635: 0x757A, - 8636: 0x757B, - 8637: 0x757C, - 8638: 0x757D, - 8639: 0x757E, - 8640: 0x7580, - 8641: 0x7581, - 8642: 0x7582, - 8643: 0x7584, - 8644: 0x7585, - 8645: 0x7587, - 8740: 0x7588, - 8741: 0x7589, - 8742: 0x758A, - 8743: 0x758C, - 8744: 0x758D, - 8745: 0x758E, - 8746: 0x7590, - 8747: 0x7593, - 8748: 0x7595, - 8749: 0x7598, - 8750: 0x759B, - 8751: 0x759C, - 8752: 0x759E, - 8753: 0x75A2, - 8754: 0x75A6, - 8755: 0x75A7, - 8756: 0x75A8, - 8757: 0x75A9, - 8758: 0x75AA, - 8759: 0x75AD, - 8760: 0x75B6, - 8761: 0x75B7, - 8762: 0x75BA, - 8763: 0x75BB, - 8764: 0x75BF, - 8765: 0x75C0, - 8766: 0x75C1, - 8767: 0x75C6, - 8768: 0x75CB, - 8769: 0x75CC, - 8770: 0x75CE, - 8771: 0x75CF, - 8772: 0x75D0, - 8773: 0x75D1, - 8774: 0x75D3, - 8775: 0x75D7, - 8776: 0x75D9, - 8777: 0x75DA, - 8778: 0x75DC, - 8779: 0x75DD, - 8780: 0x75DF, - 8781: 0x75E0, - 8782: 0x75E1, - 8783: 0x75E5, - 8784: 0x75E9, - 8785: 0x75EC, - 8786: 0x75ED, - 8787: 0x75EE, - 8788: 0x75EF, - 8789: 0x75F2, - 8790: 0x75F3, - 8791: 0x75F5, - 8792: 0x75F6, - 8793: 0x75F7, - 8794: 0x75F8, - 8795: 0x75FA, - 8796: 0x75FB, - 8797: 0x75FD, - 8798: 0x75FE, - 8799: 0x7602, - 8800: 0x7604, - 8801: 0x7606, - 8802: 0x7607, - 8803: 0x7608, - 8804: 0x7609, - 8805: 0x760B, - 8806: 0x760D, - 8807: 0x760E, - 8808: 0x760F, - 8809: 0x7611, - 8810: 0x7612, - 8811: 0x7613, - 8812: 0x7614, - 8813: 0x7616, - 8814: 0x761A, - 8815: 0x761C, - 8816: 0x761D, - 8817: 0x761E, - 8818: 0x7621, - 8819: 0x7623, - 8820: 0x7627, - 8821: 0x7628, - 8822: 0x762C, - 8823: 0x762E, - 8824: 0x762F, - 8825: 0x7631, - 8826: 0x7632, - 8827: 0x7636, - 8828: 0x7637, - 8829: 0x7639, - 8830: 0x763A, - 8831: 0x763B, - 8832: 0x763D, - 8833: 0x7641, - 8834: 0x7642, - 8835: 0x7644, - 8930: 0x7645, - 8931: 0x7646, - 8932: 0x7647, - 8933: 0x7648, - 8934: 0x7649, - 8935: 0x764A, - 8936: 0x764B, - 8937: 0x764E, - 8938: 0x764F, - 8939: 0x7650, - 8940: 0x7651, - 8941: 0x7652, - 8942: 0x7653, - 8943: 0x7655, - 8944: 0x7657, - 8945: 0x7658, - 8946: 0x7659, - 8947: 0x765A, - 8948: 0x765B, - 8949: 0x765D, - 8950: 0x765F, - 8951: 0x7660, - 8952: 0x7661, - 8953: 0x7662, - 8954: 0x7664, - 8955: 0x7665, - 8956: 0x7666, - 8957: 0x7667, - 8958: 0x7668, - 8959: 0x7669, - 8960: 0x766A, - 8961: 0x766C, - 8962: 0x766D, - 8963: 0x766E, - 8964: 0x7670, - 8965: 0x7671, - 8966: 0x7672, - 8967: 0x7673, - 8968: 0x7674, - 8969: 0x7675, - 8970: 0x7676, - 8971: 0x7677, - 8972: 0x7679, - 8973: 0x767A, - 8974: 0x767C, - 8975: 0x767F, - 8976: 0x7680, - 8977: 0x7681, - 8978: 0x7683, - 8979: 0x7685, - 8980: 0x7689, - 8981: 0x768A, - 8982: 0x768C, - 8983: 0x768D, - 8984: 0x768F, - 8985: 0x7690, - 8986: 0x7692, - 8987: 0x7694, - 8988: 0x7695, - 8989: 0x7697, - 8990: 0x7698, - 8991: 0x769A, - 8992: 0x769B, - 8993: 0x769C, - 8994: 0x769D, - 8995: 0x769E, - 8996: 0x769F, - 8997: 0x76A0, - 8998: 0x76A1, - 8999: 0x76A2, - 9000: 0x76A3, - 9001: 0x76A5, - 9002: 0x76A6, - 9003: 0x76A7, - 9004: 0x76A8, - 9005: 0x76A9, - 9006: 0x76AA, - 9007: 0x76AB, - 9008: 0x76AC, - 9009: 0x76AD, - 9010: 0x76AF, - 9011: 0x76B0, - 9012: 0x76B3, - 9013: 0x76B5, - 9014: 0x76B6, - 9015: 0x76B7, - 9016: 0x76B8, - 9017: 0x76B9, - 9018: 0x76BA, - 9019: 0x76BB, - 9020: 0x76BC, - 9021: 0x76BD, - 9022: 0x76BE, - 9023: 0x76C0, - 9024: 0x76C1, - 9025: 0x76C3, - 9026: 0x554A, - 9027: 0x963F, - 9028: 0x57C3, - 9029: 0x6328, - 9030: 0x54CE, - 9031: 0x5509, - 9032: 0x54C0, - 9033: 0x7691, - 9034: 0x764C, - 9035: 0x853C, - 9036: 0x77EE, - 9037: 0x827E, - 9038: 0x788D, - 9039: 0x7231, - 9040: 0x9698, - 9041: 0x978D, - 9042: 0x6C28, - 9043: 0x5B89, - 9044: 0x4FFA, - 9045: 0x6309, - 9046: 0x6697, - 9047: 0x5CB8, - 9048: 0x80FA, - 9049: 0x6848, - 9050: 0x80AE, - 9051: 0x6602, - 9052: 0x76CE, - 9053: 0x51F9, - 9054: 0x6556, - 9055: 0x71AC, - 9056: 0x7FF1, - 9057: 0x8884, - 9058: 0x50B2, - 9059: 0x5965, - 9060: 0x61CA, - 9061: 0x6FB3, - 9062: 0x82AD, - 9063: 0x634C, - 9064: 0x6252, - 9065: 0x53ED, - 9066: 0x5427, - 9067: 0x7B06, - 9068: 0x516B, - 9069: 0x75A4, - 9070: 0x5DF4, - 9071: 0x62D4, - 9072: 0x8DCB, - 9073: 0x9776, - 9074: 0x628A, - 9075: 0x8019, - 9076: 0x575D, - 9077: 0x9738, - 9078: 0x7F62, - 9079: 0x7238, - 9080: 0x767D, - 9081: 0x67CF, - 9082: 0x767E, - 9083: 0x6446, - 9084: 0x4F70, - 9085: 0x8D25, - 9086: 0x62DC, - 9087: 0x7A17, - 9088: 0x6591, - 9089: 0x73ED, - 9090: 0x642C, - 9091: 0x6273, - 9092: 0x822C, - 9093: 0x9881, - 9094: 0x677F, - 9095: 0x7248, - 9096: 0x626E, - 9097: 0x62CC, - 9098: 0x4F34, - 9099: 0x74E3, - 9100: 0x534A, - 9101: 0x529E, - 9102: 0x7ECA, - 9103: 0x90A6, - 9104: 0x5E2E, - 9105: 0x6886, - 9106: 0x699C, - 9107: 0x8180, - 9108: 0x7ED1, - 9109: 0x68D2, - 9110: 0x78C5, - 9111: 0x868C, - 9112: 0x9551, - 9113: 0x508D, - 9114: 0x8C24, - 9115: 0x82DE, - 9116: 0x80DE, - 9117: 0x5305, - 9118: 0x8912, - 9119: 0x5265, - 9120: 0x76C4, - 9121: 0x76C7, - 9122: 0x76C9, - 9123: 0x76CB, - 9124: 0x76CC, - 9125: 0x76D3, - 9126: 0x76D5, - 9127: 0x76D9, - 9128: 0x76DA, - 9129: 0x76DC, - 9130: 0x76DD, - 9131: 0x76DE, - 9132: 0x76E0, - 9133: 0x76E1, - 9134: 0x76E2, - 9135: 0x76E3, - 9136: 0x76E4, - 9137: 0x76E6, - 9138: 0x76E7, - 9139: 0x76E8, - 9140: 0x76E9, - 9141: 0x76EA, - 9142: 0x76EB, - 9143: 0x76EC, - 9144: 0x76ED, - 9145: 0x76F0, - 9146: 0x76F3, - 9147: 0x76F5, - 9148: 0x76F6, - 9149: 0x76F7, - 9150: 0x76FA, - 9151: 0x76FB, - 9152: 0x76FD, - 9153: 0x76FF, - 9154: 0x7700, - 9155: 0x7702, - 9156: 0x7703, - 9157: 0x7705, - 9158: 0x7706, - 9159: 0x770A, - 9160: 0x770C, - 9161: 0x770E, - 9162: 0x770F, - 9163: 0x7710, - 9164: 0x7711, - 9165: 0x7712, - 9166: 0x7713, - 9167: 0x7714, - 9168: 0x7715, - 9169: 0x7716, - 9170: 0x7717, - 9171: 0x7718, - 9172: 0x771B, - 9173: 0x771C, - 9174: 0x771D, - 9175: 0x771E, - 9176: 0x7721, - 9177: 0x7723, - 9178: 0x7724, - 9179: 0x7725, - 9180: 0x7727, - 9181: 0x772A, - 9182: 0x772B, - 9183: 0x772C, - 9184: 0x772E, - 9185: 0x7730, - 9186: 0x7731, - 9187: 0x7732, - 9188: 0x7733, - 9189: 0x7734, - 9190: 0x7739, - 9191: 0x773B, - 9192: 0x773D, - 9193: 0x773E, - 9194: 0x773F, - 9195: 0x7742, - 9196: 0x7744, - 9197: 0x7745, - 9198: 0x7746, - 9199: 0x7748, - 9200: 0x7749, - 9201: 0x774A, - 9202: 0x774B, - 9203: 0x774C, - 9204: 0x774D, - 9205: 0x774E, - 9206: 0x774F, - 9207: 0x7752, - 9208: 0x7753, - 9209: 0x7754, - 9210: 0x7755, - 9211: 0x7756, - 9212: 0x7757, - 9213: 0x7758, - 9214: 0x7759, - 9215: 0x775C, - 9216: 0x8584, - 9217: 0x96F9, - 9218: 0x4FDD, - 9219: 0x5821, - 9220: 0x9971, - 9221: 0x5B9D, - 9222: 0x62B1, - 9223: 0x62A5, - 9224: 0x66B4, - 9225: 0x8C79, - 9226: 0x9C8D, - 9227: 0x7206, - 9228: 0x676F, - 9229: 0x7891, - 9230: 0x60B2, - 9231: 0x5351, - 9232: 0x5317, - 9233: 0x8F88, - 9234: 0x80CC, - 9235: 0x8D1D, - 9236: 0x94A1, - 9237: 0x500D, - 9238: 0x72C8, - 9239: 0x5907, - 9240: 0x60EB, - 9241: 0x7119, - 9242: 0x88AB, - 9243: 0x5954, - 9244: 0x82EF, - 9245: 0x672C, - 9246: 0x7B28, - 9247: 0x5D29, - 9248: 0x7EF7, - 9249: 0x752D, - 9250: 0x6CF5, - 9251: 0x8E66, - 9252: 0x8FF8, - 9253: 0x903C, - 9254: 0x9F3B, - 9255: 0x6BD4, - 9256: 0x9119, - 9257: 0x7B14, - 9258: 0x5F7C, - 9259: 0x78A7, - 9260: 0x84D6, - 9261: 0x853D, - 9262: 0x6BD5, - 9263: 0x6BD9, - 9264: 0x6BD6, - 9265: 0x5E01, - 9266: 0x5E87, - 9267: 0x75F9, - 9268: 0x95ED, - 9269: 0x655D, - 9270: 0x5F0A, - 9271: 0x5FC5, - 9272: 0x8F9F, - 9273: 0x58C1, - 9274: 0x81C2, - 9275: 0x907F, - 9276: 0x965B, - 9277: 0x97AD, - 9278: 0x8FB9, - 9279: 0x7F16, - 9280: 0x8D2C, - 9281: 0x6241, - 9282: 0x4FBF, - 9283: 0x53D8, - 9284: 0x535E, - 9285: 0x8FA8, - 9286: 0x8FA9, - 9287: 0x8FAB, - 9288: 0x904D, - 9289: 0x6807, - 9290: 0x5F6A, - 9291: 0x8198, - 9292: 0x8868, - 9293: 0x9CD6, - 9294: 0x618B, - 9295: 0x522B, - 9296: 0x762A, - 9297: 0x5F6C, - 9298: 0x658C, - 9299: 0x6FD2, - 9300: 0x6EE8, - 9301: 0x5BBE, - 9302: 0x6448, - 9303: 0x5175, - 9304: 0x51B0, - 9305: 0x67C4, - 9306: 0x4E19, - 9307: 0x79C9, - 9308: 0x997C, - 9309: 0x70B3, - 9310: 0x775D, - 9311: 0x775E, - 9312: 0x775F, - 9313: 0x7760, - 9314: 0x7764, - 9315: 0x7767, - 9316: 0x7769, - 9317: 0x776A, - 9318: 0x776D, - 9319: 0x776E, - 9320: 0x776F, - 9321: 0x7770, - 9322: 0x7771, - 9323: 0x7772, - 9324: 0x7773, - 9325: 0x7774, - 9326: 0x7775, - 9327: 0x7776, - 9328: 0x7777, - 9329: 0x7778, - 9330: 0x777A, - 9331: 0x777B, - 9332: 0x777C, - 9333: 0x7781, - 9334: 0x7782, - 9335: 0x7783, - 9336: 0x7786, - 9337: 0x7787, - 9338: 0x7788, - 9339: 0x7789, - 9340: 0x778A, - 9341: 0x778B, - 9342: 0x778F, - 9343: 0x7790, - 9344: 0x7793, - 9345: 0x7794, - 9346: 0x7795, - 9347: 0x7796, - 9348: 0x7797, - 9349: 0x7798, - 9350: 0x7799, - 9351: 0x779A, - 9352: 0x779B, - 9353: 0x779C, - 9354: 0x779D, - 9355: 0x779E, - 9356: 0x77A1, - 9357: 0x77A3, - 9358: 0x77A4, - 9359: 0x77A6, - 9360: 0x77A8, - 9361: 0x77AB, - 9362: 0x77AD, - 9363: 0x77AE, - 9364: 0x77AF, - 9365: 0x77B1, - 9366: 0x77B2, - 9367: 0x77B4, - 9368: 0x77B6, - 9369: 0x77B7, - 9370: 0x77B8, - 9371: 0x77B9, - 9372: 0x77BA, - 9373: 0x77BC, - 9374: 0x77BE, - 9375: 0x77C0, - 9376: 0x77C1, - 9377: 0x77C2, - 9378: 0x77C3, - 9379: 0x77C4, - 9380: 0x77C5, - 9381: 0x77C6, - 9382: 0x77C7, - 9383: 0x77C8, - 9384: 0x77C9, - 9385: 0x77CA, - 9386: 0x77CB, - 9387: 0x77CC, - 9388: 0x77CE, - 9389: 0x77CF, - 9390: 0x77D0, - 9391: 0x77D1, - 9392: 0x77D2, - 9393: 0x77D3, - 9394: 0x77D4, - 9395: 0x77D5, - 9396: 0x77D6, - 9397: 0x77D8, - 9398: 0x77D9, - 9399: 0x77DA, - 9400: 0x77DD, - 9401: 0x77DE, - 9402: 0x77DF, - 9403: 0x77E0, - 9404: 0x77E1, - 9405: 0x77E4, - 9406: 0x75C5, - 9407: 0x5E76, - 9408: 0x73BB, - 9409: 0x83E0, - 9410: 0x64AD, - 9411: 0x62E8, - 9412: 0x94B5, - 9413: 0x6CE2, - 9414: 0x535A, - 9415: 0x52C3, - 9416: 0x640F, - 9417: 0x94C2, - 9418: 0x7B94, - 9419: 0x4F2F, - 9420: 0x5E1B, - 9421: 0x8236, - 9422: 0x8116, - 9423: 0x818A, - 9424: 0x6E24, - 9425: 0x6CCA, - 9426: 0x9A73, - 9427: 0x6355, - 9428: 0x535C, - 9429: 0x54FA, - 9430: 0x8865, - 9431: 0x57E0, - 9432: 0x4E0D, - 9433: 0x5E03, - 9434: 0x6B65, - 9435: 0x7C3F, - 9436: 0x90E8, - 9437: 0x6016, - 9438: 0x64E6, - 9439: 0x731C, - 9440: 0x88C1, - 9441: 0x6750, - 9442: 0x624D, - 9443: 0x8D22, - 9444: 0x776C, - 9445: 0x8E29, - 9446: 0x91C7, - 9447: 0x5F69, - 9448: 0x83DC, - 9449: 0x8521, - 9450: 0x9910, - 9451: 0x53C2, - 9452: 0x8695, - 9453: 0x6B8B, - 9454: 0x60ED, - 9455: 0x60E8, - 9456: 0x707F, - 9457: 0x82CD, - 9458: 0x8231, - 9459: 0x4ED3, - 9460: 0x6CA7, - 9461: 0x85CF, - 9462: 0x64CD, - 9463: 0x7CD9, - 9464: 0x69FD, - 9465: 0x66F9, - 9466: 0x8349, - 9467: 0x5395, - 9468: 0x7B56, - 9469: 0x4FA7, - 9470: 0x518C, - 9471: 0x6D4B, - 9472: 0x5C42, - 9473: 0x8E6D, - 9474: 0x63D2, - 9475: 0x53C9, - 9476: 0x832C, - 9477: 0x8336, - 9478: 0x67E5, - 9479: 0x78B4, - 9480: 0x643D, - 9481: 0x5BDF, - 9482: 0x5C94, - 9483: 0x5DEE, - 9484: 0x8BE7, - 9485: 0x62C6, - 9486: 0x67F4, - 9487: 0x8C7A, - 9488: 0x6400, - 9489: 0x63BA, - 9490: 0x8749, - 9491: 0x998B, - 9492: 0x8C17, - 9493: 0x7F20, - 9494: 0x94F2, - 9495: 0x4EA7, - 9496: 0x9610, - 9497: 0x98A4, - 9498: 0x660C, - 9499: 0x7316, - 9500: 0x77E6, - 9501: 0x77E8, - 9502: 0x77EA, - 9503: 0x77EF, - 9504: 0x77F0, - 9505: 0x77F1, - 9506: 0x77F2, - 9507: 0x77F4, - 9508: 0x77F5, - 9509: 0x77F7, - 9510: 0x77F9, - 9511: 0x77FA, - 9512: 0x77FB, - 9513: 0x77FC, - 9514: 0x7803, - 9515: 0x7804, - 9516: 0x7805, - 9517: 0x7806, - 9518: 0x7807, - 9519: 0x7808, - 9520: 0x780A, - 9521: 0x780B, - 9522: 0x780E, - 9523: 0x780F, - 9524: 0x7810, - 9525: 0x7813, - 9526: 0x7815, - 9527: 0x7819, - 9528: 0x781B, - 9529: 0x781E, - 9530: 0x7820, - 9531: 0x7821, - 9532: 0x7822, - 9533: 0x7824, - 9534: 0x7828, - 9535: 0x782A, - 9536: 0x782B, - 9537: 0x782E, - 9538: 0x782F, - 9539: 0x7831, - 9540: 0x7832, - 9541: 0x7833, - 9542: 0x7835, - 9543: 0x7836, - 9544: 0x783D, - 9545: 0x783F, - 9546: 0x7841, - 9547: 0x7842, - 9548: 0x7843, - 9549: 0x7844, - 9550: 0x7846, - 9551: 0x7848, - 9552: 0x7849, - 9553: 0x784A, - 9554: 0x784B, - 9555: 0x784D, - 9556: 0x784F, - 9557: 0x7851, - 9558: 0x7853, - 9559: 0x7854, - 9560: 0x7858, - 9561: 0x7859, - 9562: 0x785A, - 9563: 0x785B, - 9564: 0x785C, - 9565: 0x785E, - 9566: 0x785F, - 9567: 0x7860, - 9568: 0x7861, - 9569: 0x7862, - 9570: 0x7863, - 9571: 0x7864, - 9572: 0x7865, - 9573: 0x7866, - 9574: 0x7867, - 9575: 0x7868, - 9576: 0x7869, - 9577: 0x786F, - 9578: 0x7870, - 9579: 0x7871, - 9580: 0x7872, - 9581: 0x7873, - 9582: 0x7874, - 9583: 0x7875, - 9584: 0x7876, - 9585: 0x7878, - 9586: 0x7879, - 9587: 0x787A, - 9588: 0x787B, - 9589: 0x787D, - 9590: 0x787E, - 9591: 0x787F, - 9592: 0x7880, - 9593: 0x7881, - 9594: 0x7882, - 9595: 0x7883, - 9596: 0x573A, - 9597: 0x5C1D, - 9598: 0x5E38, - 9599: 0x957F, - 9600: 0x507F, - 9601: 0x80A0, - 9602: 0x5382, - 9603: 0x655E, - 9604: 0x7545, - 9605: 0x5531, - 9606: 0x5021, - 9607: 0x8D85, - 9608: 0x6284, - 9609: 0x949E, - 9610: 0x671D, - 9611: 0x5632, - 9612: 0x6F6E, - 9613: 0x5DE2, - 9614: 0x5435, - 9615: 0x7092, - 9616: 0x8F66, - 9617: 0x626F, - 9618: 0x64A4, - 9619: 0x63A3, - 9620: 0x5F7B, - 9621: 0x6F88, - 9622: 0x90F4, - 9623: 0x81E3, - 9624: 0x8FB0, - 9625: 0x5C18, - 9626: 0x6668, - 9627: 0x5FF1, - 9628: 0x6C89, - 9629: 0x9648, - 9630: 0x8D81, - 9631: 0x886C, - 9632: 0x6491, - 9633: 0x79F0, - 9634: 0x57CE, - 9635: 0x6A59, - 9636: 0x6210, - 9637: 0x5448, - 9638: 0x4E58, - 9639: 0x7A0B, - 9640: 0x60E9, - 9641: 0x6F84, - 9642: 0x8BDA, - 9643: 0x627F, - 9644: 0x901E, - 9645: 0x9A8B, - 9646: 0x79E4, - 9647: 0x5403, - 9648: 0x75F4, - 9649: 0x6301, - 9650: 0x5319, - 9651: 0x6C60, - 9652: 0x8FDF, - 9653: 0x5F1B, - 9654: 0x9A70, - 9655: 0x803B, - 9656: 0x9F7F, - 9657: 0x4F88, - 9658: 0x5C3A, - 9659: 0x8D64, - 9660: 0x7FC5, - 9661: 0x65A5, - 9662: 0x70BD, - 9663: 0x5145, - 9664: 0x51B2, - 9665: 0x866B, - 9666: 0x5D07, - 9667: 0x5BA0, - 9668: 0x62BD, - 9669: 0x916C, - 9670: 0x7574, - 9671: 0x8E0C, - 9672: 0x7A20, - 9673: 0x6101, - 9674: 0x7B79, - 9675: 0x4EC7, - 9676: 0x7EF8, - 9677: 0x7785, - 9678: 0x4E11, - 9679: 0x81ED, - 9680: 0x521D, - 9681: 0x51FA, - 9682: 0x6A71, - 9683: 0x53A8, - 9684: 0x8E87, - 9685: 0x9504, - 9686: 0x96CF, - 9687: 0x6EC1, - 9688: 0x9664, - 9689: 0x695A, - 9690: 0x7884, - 9691: 0x7885, - 9692: 0x7886, - 9693: 0x7888, - 9694: 0x788A, - 9695: 0x788B, - 9696: 0x788F, - 9697: 0x7890, - 9698: 0x7892, - 9699: 0x7894, - 9700: 0x7895, - 9701: 0x7896, - 9702: 0x7899, - 9703: 0x789D, - 9704: 0x789E, - 9705: 0x78A0, - 9706: 0x78A2, - 9707: 0x78A4, - 9708: 0x78A6, - 9709: 0x78A8, - 9710: 0x78A9, - 9711: 0x78AA, - 9712: 0x78AB, - 9713: 0x78AC, - 9714: 0x78AD, - 9715: 0x78AE, - 9716: 0x78AF, - 9717: 0x78B5, - 9718: 0x78B6, - 9719: 0x78B7, - 9720: 0x78B8, - 9721: 0x78BA, - 9722: 0x78BB, - 9723: 0x78BC, - 9724: 0x78BD, - 9725: 0x78BF, - 9726: 0x78C0, - 9727: 0x78C2, - 9728: 0x78C3, - 9729: 0x78C4, - 9730: 0x78C6, - 9731: 0x78C7, - 9732: 0x78C8, - 9733: 0x78CC, - 9734: 0x78CD, - 9735: 0x78CE, - 9736: 0x78CF, - 9737: 0x78D1, - 9738: 0x78D2, - 9739: 0x78D3, - 9740: 0x78D6, - 9741: 0x78D7, - 9742: 0x78D8, - 9743: 0x78DA, - 9744: 0x78DB, - 9745: 0x78DC, - 9746: 0x78DD, - 9747: 0x78DE, - 9748: 0x78DF, - 9749: 0x78E0, - 9750: 0x78E1, - 9751: 0x78E2, - 9752: 0x78E3, - 9753: 0x78E4, - 9754: 0x78E5, - 9755: 0x78E6, - 9756: 0x78E7, - 9757: 0x78E9, - 9758: 0x78EA, - 9759: 0x78EB, - 9760: 0x78ED, - 9761: 0x78EE, - 9762: 0x78EF, - 9763: 0x78F0, - 9764: 0x78F1, - 9765: 0x78F3, - 9766: 0x78F5, - 9767: 0x78F6, - 9768: 0x78F8, - 9769: 0x78F9, - 9770: 0x78FB, - 9771: 0x78FC, - 9772: 0x78FD, - 9773: 0x78FE, - 9774: 0x78FF, - 9775: 0x7900, - 9776: 0x7902, - 9777: 0x7903, - 9778: 0x7904, - 9779: 0x7906, - 9780: 0x7907, - 9781: 0x7908, - 9782: 0x7909, - 9783: 0x790A, - 9784: 0x790B, - 9785: 0x790C, - 9786: 0x7840, - 9787: 0x50A8, - 9788: 0x77D7, - 9789: 0x6410, - 9790: 0x89E6, - 9791: 0x5904, - 9792: 0x63E3, - 9793: 0x5DDD, - 9794: 0x7A7F, - 9795: 0x693D, - 9796: 0x4F20, - 9797: 0x8239, - 9798: 0x5598, - 9799: 0x4E32, - 9800: 0x75AE, - 9801: 0x7A97, - 9802: 0x5E62, - 9803: 0x5E8A, - 9804: 0x95EF, - 9805: 0x521B, - 9806: 0x5439, - 9807: 0x708A, - 9808: 0x6376, - 9809: 0x9524, - 9810: 0x5782, - 9811: 0x6625, - 9812: 0x693F, - 9813: 0x9187, - 9814: 0x5507, - 9815: 0x6DF3, - 9816: 0x7EAF, - 9817: 0x8822, - 9818: 0x6233, - 9819: 0x7EF0, - 9820: 0x75B5, - 9821: 0x8328, - 9822: 0x78C1, - 9823: 0x96CC, - 9824: 0x8F9E, - 9825: 0x6148, - 9826: 0x74F7, - 9827: 0x8BCD, - 9828: 0x6B64, - 9829: 0x523A, - 9830: 0x8D50, - 9831: 0x6B21, - 9832: 0x806A, - 9833: 0x8471, - 9834: 0x56F1, - 9835: 0x5306, - 9836: 0x4ECE, - 9837: 0x4E1B, - 9838: 0x51D1, - 9839: 0x7C97, - 9840: 0x918B, - 9841: 0x7C07, - 9842: 0x4FC3, - 9843: 0x8E7F, - 9844: 0x7BE1, - 9845: 0x7A9C, - 9846: 0x6467, - 9847: 0x5D14, - 9848: 0x50AC, - 9849: 0x8106, - 9850: 0x7601, - 9851: 0x7CB9, - 9852: 0x6DEC, - 9853: 0x7FE0, - 9854: 0x6751, - 9855: 0x5B58, - 9856: 0x5BF8, - 9857: 0x78CB, - 9858: 0x64AE, - 9859: 0x6413, - 9860: 0x63AA, - 9861: 0x632B, - 9862: 0x9519, - 9863: 0x642D, - 9864: 0x8FBE, - 9865: 0x7B54, - 9866: 0x7629, - 9867: 0x6253, - 9868: 0x5927, - 9869: 0x5446, - 9870: 0x6B79, - 9871: 0x50A3, - 9872: 0x6234, - 9873: 0x5E26, - 9874: 0x6B86, - 9875: 0x4EE3, - 9876: 0x8D37, - 9877: 0x888B, - 9878: 0x5F85, - 9879: 0x902E, - 9880: 0x790D, - 9881: 0x790E, - 9882: 0x790F, - 9883: 0x7910, - 9884: 0x7911, - 9885: 0x7912, - 9886: 0x7914, - 9887: 0x7915, - 9888: 0x7916, - 9889: 0x7917, - 9890: 0x7918, - 9891: 0x7919, - 9892: 0x791A, - 9893: 0x791B, - 9894: 0x791C, - 9895: 0x791D, - 9896: 0x791F, - 9897: 0x7920, - 9898: 0x7921, - 9899: 0x7922, - 9900: 0x7923, - 9901: 0x7925, - 9902: 0x7926, - 9903: 0x7927, - 9904: 0x7928, - 9905: 0x7929, - 9906: 0x792A, - 9907: 0x792B, - 9908: 0x792C, - 9909: 0x792D, - 9910: 0x792E, - 9911: 0x792F, - 9912: 0x7930, - 9913: 0x7931, - 9914: 0x7932, - 9915: 0x7933, - 9916: 0x7935, - 9917: 0x7936, - 9918: 0x7937, - 9919: 0x7938, - 9920: 0x7939, - 9921: 0x793D, - 9922: 0x793F, - 9923: 0x7942, - 9924: 0x7943, - 9925: 0x7944, - 9926: 0x7945, - 9927: 0x7947, - 9928: 0x794A, - 9929: 0x794B, - 9930: 0x794C, - 9931: 0x794D, - 9932: 0x794E, - 9933: 0x794F, - 9934: 0x7950, - 9935: 0x7951, - 9936: 0x7952, - 9937: 0x7954, - 9938: 0x7955, - 9939: 0x7958, - 9940: 0x7959, - 9941: 0x7961, - 9942: 0x7963, - 9943: 0x7964, - 9944: 0x7966, - 9945: 0x7969, - 9946: 0x796A, - 9947: 0x796B, - 9948: 0x796C, - 9949: 0x796E, - 9950: 0x7970, - 9951: 0x7971, - 9952: 0x7972, - 9953: 0x7973, - 9954: 0x7974, - 9955: 0x7975, - 9956: 0x7976, - 9957: 0x7979, - 9958: 0x797B, - 9959: 0x797C, - 9960: 0x797D, - 9961: 0x797E, - 9962: 0x797F, - 9963: 0x7982, - 9964: 0x7983, - 9965: 0x7986, - 9966: 0x7987, - 9967: 0x7988, - 9968: 0x7989, - 9969: 0x798B, - 9970: 0x798C, - 9971: 0x798D, - 9972: 0x798E, - 9973: 0x7990, - 9974: 0x7991, - 9975: 0x7992, - 9976: 0x6020, - 9977: 0x803D, - 9978: 0x62C5, - 9979: 0x4E39, - 9980: 0x5355, - 9981: 0x90F8, - 9982: 0x63B8, - 9983: 0x80C6, - 9984: 0x65E6, - 9985: 0x6C2E, - 9986: 0x4F46, - 9987: 0x60EE, - 9988: 0x6DE1, - 9989: 0x8BDE, - 9990: 0x5F39, - 9991: 0x86CB, - 9992: 0x5F53, - 9993: 0x6321, - 9994: 0x515A, - 9995: 0x8361, - 9996: 0x6863, - 9997: 0x5200, - 9998: 0x6363, - 9999: 0x8E48, - 10000: 0x5012, - 10001: 0x5C9B, - 10002: 0x7977, - 10003: 0x5BFC, - 10004: 0x5230, - 10005: 0x7A3B, - 10006: 0x60BC, - 10007: 0x9053, - 10008: 0x76D7, - 10009: 0x5FB7, - 10010: 0x5F97, - 10011: 0x7684, - 10012: 0x8E6C, - 10013: 0x706F, - 10014: 0x767B, - 10015: 0x7B49, - 10016: 0x77AA, - 10017: 0x51F3, - 10018: 0x9093, - 10019: 0x5824, - 10020: 0x4F4E, - 10021: 0x6EF4, - 10022: 0x8FEA, - 10023: 0x654C, - 10024: 0x7B1B, - 10025: 0x72C4, - 10026: 0x6DA4, - 10027: 0x7FDF, - 10028: 0x5AE1, - 10029: 0x62B5, - 10030: 0x5E95, - 10031: 0x5730, - 10032: 0x8482, - 10033: 0x7B2C, - 10034: 0x5E1D, - 10035: 0x5F1F, - 10036: 0x9012, - 10037: 0x7F14, - 10038: 0x98A0, - 10039: 0x6382, - 10040: 0x6EC7, - 10041: 0x7898, - 10042: 0x70B9, - 10043: 0x5178, - 10044: 0x975B, - 10045: 0x57AB, - 10046: 0x7535, - 10047: 0x4F43, - 10048: 0x7538, - 10049: 0x5E97, - 10050: 0x60E6, - 10051: 0x5960, - 10052: 0x6DC0, - 10053: 0x6BBF, - 10054: 0x7889, - 10055: 0x53FC, - 10056: 0x96D5, - 10057: 0x51CB, - 10058: 0x5201, - 10059: 0x6389, - 10060: 0x540A, - 10061: 0x9493, - 10062: 0x8C03, - 10063: 0x8DCC, - 10064: 0x7239, - 10065: 0x789F, - 10066: 0x8776, - 10067: 0x8FED, - 10068: 0x8C0D, - 10069: 0x53E0, - 10070: 0x7993, - 10071: 0x7994, - 10072: 0x7995, - 10073: 0x7996, - 10074: 0x7997, - 10075: 0x7998, - 10076: 0x7999, - 10077: 0x799B, - 10078: 0x799C, - 10079: 0x799D, - 10080: 0x799E, - 10081: 0x799F, - 10082: 0x79A0, - 10083: 0x79A1, - 10084: 0x79A2, - 10085: 0x79A3, - 10086: 0x79A4, - 10087: 0x79A5, - 10088: 0x79A6, - 10089: 0x79A8, - 10090: 0x79A9, - 10091: 0x79AA, - 10092: 0x79AB, - 10093: 0x79AC, - 10094: 0x79AD, - 10095: 0x79AE, - 10096: 0x79AF, - 10097: 0x79B0, - 10098: 0x79B1, - 10099: 0x79B2, - 10100: 0x79B4, - 10101: 0x79B5, - 10102: 0x79B6, - 10103: 0x79B7, - 10104: 0x79B8, - 10105: 0x79BC, - 10106: 0x79BF, - 10107: 0x79C2, - 10108: 0x79C4, - 10109: 0x79C5, - 10110: 0x79C7, - 10111: 0x79C8, - 10112: 0x79CA, - 10113: 0x79CC, - 10114: 0x79CE, - 10115: 0x79CF, - 10116: 0x79D0, - 10117: 0x79D3, - 10118: 0x79D4, - 10119: 0x79D6, - 10120: 0x79D7, - 10121: 0x79D9, - 10122: 0x79DA, - 10123: 0x79DB, - 10124: 0x79DC, - 10125: 0x79DD, - 10126: 0x79DE, - 10127: 0x79E0, - 10128: 0x79E1, - 10129: 0x79E2, - 10130: 0x79E5, - 10131: 0x79E8, - 10132: 0x79EA, - 10133: 0x79EC, - 10134: 0x79EE, - 10135: 0x79F1, - 10136: 0x79F2, - 10137: 0x79F3, - 10138: 0x79F4, - 10139: 0x79F5, - 10140: 0x79F6, - 10141: 0x79F7, - 10142: 0x79F9, - 10143: 0x79FA, - 10144: 0x79FC, - 10145: 0x79FE, - 10146: 0x79FF, - 10147: 0x7A01, - 10148: 0x7A04, - 10149: 0x7A05, - 10150: 0x7A07, - 10151: 0x7A08, - 10152: 0x7A09, - 10153: 0x7A0A, - 10154: 0x7A0C, - 10155: 0x7A0F, - 10156: 0x7A10, - 10157: 0x7A11, - 10158: 0x7A12, - 10159: 0x7A13, - 10160: 0x7A15, - 10161: 0x7A16, - 10162: 0x7A18, - 10163: 0x7A19, - 10164: 0x7A1B, - 10165: 0x7A1C, - 10166: 0x4E01, - 10167: 0x76EF, - 10168: 0x53EE, - 10169: 0x9489, - 10170: 0x9876, - 10171: 0x9F0E, - 10172: 0x952D, - 10173: 0x5B9A, - 10174: 0x8BA2, - 10175: 0x4E22, - 10176: 0x4E1C, - 10177: 0x51AC, - 10178: 0x8463, - 10179: 0x61C2, - 10180: 0x52A8, - 10181: 0x680B, - 10182: 0x4F97, - 10183: 0x606B, - 10184: 0x51BB, - 10185: 0x6D1E, - 10186: 0x515C, - 10187: 0x6296, - 10188: 0x6597, - 10189: 0x9661, - 10190: 0x8C46, - 10191: 0x9017, - 10192: 0x75D8, - 10193: 0x90FD, - 10194: 0x7763, - 10195: 0x6BD2, - 10196: 0x728A, - 10197: 0x72EC, - 10198: 0x8BFB, - 10199: 0x5835, - 10200: 0x7779, - 10201: 0x8D4C, - 10202: 0x675C, - 10203: 0x9540, - 10204: 0x809A, - 10205: 0x5EA6, - 10206: 0x6E21, - 10207: 0x5992, - 10208: 0x7AEF, - 10209: 0x77ED, - 10210: 0x953B, - 10211: 0x6BB5, - 10212: 0x65AD, - 10213: 0x7F0E, - 10214: 0x5806, - 10215: 0x5151, - 10216: 0x961F, - 10217: 0x5BF9, - 10218: 0x58A9, - 10219: 0x5428, - 10220: 0x8E72, - 10221: 0x6566, - 10222: 0x987F, - 10223: 0x56E4, - 10224: 0x949D, - 10225: 0x76FE, - 10226: 0x9041, - 10227: 0x6387, - 10228: 0x54C6, - 10229: 0x591A, - 10230: 0x593A, - 10231: 0x579B, - 10232: 0x8EB2, - 10233: 0x6735, - 10234: 0x8DFA, - 10235: 0x8235, - 10236: 0x5241, - 10237: 0x60F0, - 10238: 0x5815, - 10239: 0x86FE, - 10240: 0x5CE8, - 10241: 0x9E45, - 10242: 0x4FC4, - 10243: 0x989D, - 10244: 0x8BB9, - 10245: 0x5A25, - 10246: 0x6076, - 10247: 0x5384, - 10248: 0x627C, - 10249: 0x904F, - 10250: 0x9102, - 10251: 0x997F, - 10252: 0x6069, - 10253: 0x800C, - 10254: 0x513F, - 10255: 0x8033, - 10256: 0x5C14, - 10257: 0x9975, - 10258: 0x6D31, - 10259: 0x4E8C, - 10260: 0x7A1D, - 10261: 0x7A1F, - 10262: 0x7A21, - 10263: 0x7A22, - 10264: 0x7A24, - 10265: 0x7A25, - 10266: 0x7A26, - 10267: 0x7A27, - 10268: 0x7A28, - 10269: 0x7A29, - 10270: 0x7A2A, - 10271: 0x7A2B, - 10272: 0x7A2C, - 10273: 0x7A2D, - 10274: 0x7A2E, - 10275: 0x7A2F, - 10276: 0x7A30, - 10277: 0x7A31, - 10278: 0x7A32, - 10279: 0x7A34, - 10280: 0x7A35, - 10281: 0x7A36, - 10282: 0x7A38, - 10283: 0x7A3A, - 10284: 0x7A3E, - 10285: 0x7A40, - 10286: 0x7A41, - 10287: 0x7A42, - 10288: 0x7A43, - 10289: 0x7A44, - 10290: 0x7A45, - 10291: 0x7A47, - 10292: 0x7A48, - 10293: 0x7A49, - 10294: 0x7A4A, - 10295: 0x7A4B, - 10296: 0x7A4C, - 10297: 0x7A4D, - 10298: 0x7A4E, - 10299: 0x7A4F, - 10300: 0x7A50, - 10301: 0x7A52, - 10302: 0x7A53, - 10303: 0x7A54, - 10304: 0x7A55, - 10305: 0x7A56, - 10306: 0x7A58, - 10307: 0x7A59, - 10308: 0x7A5A, - 10309: 0x7A5B, - 10310: 0x7A5C, - 10311: 0x7A5D, - 10312: 0x7A5E, - 10313: 0x7A5F, - 10314: 0x7A60, - 10315: 0x7A61, - 10316: 0x7A62, - 10317: 0x7A63, - 10318: 0x7A64, - 10319: 0x7A65, - 10320: 0x7A66, - 10321: 0x7A67, - 10322: 0x7A68, - 10323: 0x7A69, - 10324: 0x7A6A, - 10325: 0x7A6B, - 10326: 0x7A6C, - 10327: 0x7A6D, - 10328: 0x7A6E, - 10329: 0x7A6F, - 10330: 0x7A71, - 10331: 0x7A72, - 10332: 0x7A73, - 10333: 0x7A75, - 10334: 0x7A7B, - 10335: 0x7A7C, - 10336: 0x7A7D, - 10337: 0x7A7E, - 10338: 0x7A82, - 10339: 0x7A85, - 10340: 0x7A87, - 10341: 0x7A89, - 10342: 0x7A8A, - 10343: 0x7A8B, - 10344: 0x7A8C, - 10345: 0x7A8E, - 10346: 0x7A8F, - 10347: 0x7A90, - 10348: 0x7A93, - 10349: 0x7A94, - 10350: 0x7A99, - 10351: 0x7A9A, - 10352: 0x7A9B, - 10353: 0x7A9E, - 10354: 0x7AA1, - 10355: 0x7AA2, - 10356: 0x8D30, - 10357: 0x53D1, - 10358: 0x7F5A, - 10359: 0x7B4F, - 10360: 0x4F10, - 10361: 0x4E4F, - 10362: 0x9600, - 10363: 0x6CD5, - 10364: 0x73D0, - 10365: 0x85E9, - 10366: 0x5E06, - 10367: 0x756A, - 10368: 0x7FFB, - 10369: 0x6A0A, - 10370: 0x77FE, - 10371: 0x9492, - 10372: 0x7E41, - 10373: 0x51E1, - 10374: 0x70E6, - 10375: 0x53CD, - 10376: 0x8FD4, - 10377: 0x8303, - 10378: 0x8D29, - 10379: 0x72AF, - 10380: 0x996D, - 10381: 0x6CDB, - 10382: 0x574A, - 10383: 0x82B3, - 10384: 0x65B9, - 10385: 0x80AA, - 10386: 0x623F, - 10387: 0x9632, - 10388: 0x59A8, - 10389: 0x4EFF, - 10390: 0x8BBF, - 10391: 0x7EBA, - 10392: 0x653E, - 10393: 0x83F2, - 10394: 0x975E, - 10395: 0x5561, - 10396: 0x98DE, - 10397: 0x80A5, - 10398: 0x532A, - 10399: 0x8BFD, - 10400: 0x5420, - 10401: 0x80BA, - 10402: 0x5E9F, - 10403: 0x6CB8, - 10404: 0x8D39, - 10405: 0x82AC, - 10406: 0x915A, - 10407: 0x5429, - 10408: 0x6C1B, - 10409: 0x5206, - 10410: 0x7EB7, - 10411: 0x575F, - 10412: 0x711A, - 10413: 0x6C7E, - 10414: 0x7C89, - 10415: 0x594B, - 10416: 0x4EFD, - 10417: 0x5FFF, - 10418: 0x6124, - 10419: 0x7CAA, - 10420: 0x4E30, - 10421: 0x5C01, - 10422: 0x67AB, - 10423: 0x8702, - 10424: 0x5CF0, - 10425: 0x950B, - 10426: 0x98CE, - 10427: 0x75AF, - 10428: 0x70FD, - 10429: 0x9022, - 10430: 0x51AF, - 10431: 0x7F1D, - 10432: 0x8BBD, - 10433: 0x5949, - 10434: 0x51E4, - 10435: 0x4F5B, - 10436: 0x5426, - 10437: 0x592B, - 10438: 0x6577, - 10439: 0x80A4, - 10440: 0x5B75, - 10441: 0x6276, - 10442: 0x62C2, - 10443: 0x8F90, - 10444: 0x5E45, - 10445: 0x6C1F, - 10446: 0x7B26, - 10447: 0x4F0F, - 10448: 0x4FD8, - 10449: 0x670D, - 10450: 0x7AA3, - 10451: 0x7AA4, - 10452: 0x7AA7, - 10453: 0x7AA9, - 10454: 0x7AAA, - 10455: 0x7AAB, - 10456: 0x7AAE, - 10457: 0x7AAF, - 10458: 0x7AB0, - 10459: 0x7AB1, - 10460: 0x7AB2, - 10461: 0x7AB4, - 10462: 0x7AB5, - 10463: 0x7AB6, - 10464: 0x7AB7, - 10465: 0x7AB8, - 10466: 0x7AB9, - 10467: 0x7ABA, - 10468: 0x7ABB, - 10469: 0x7ABC, - 10470: 0x7ABD, - 10471: 0x7ABE, - 10472: 0x7AC0, - 10473: 0x7AC1, - 10474: 0x7AC2, - 10475: 0x7AC3, - 10476: 0x7AC4, - 10477: 0x7AC5, - 10478: 0x7AC6, - 10479: 0x7AC7, - 10480: 0x7AC8, - 10481: 0x7AC9, - 10482: 0x7ACA, - 10483: 0x7ACC, - 10484: 0x7ACD, - 10485: 0x7ACE, - 10486: 0x7ACF, - 10487: 0x7AD0, - 10488: 0x7AD1, - 10489: 0x7AD2, - 10490: 0x7AD3, - 10491: 0x7AD4, - 10492: 0x7AD5, - 10493: 0x7AD7, - 10494: 0x7AD8, - 10495: 0x7ADA, - 10496: 0x7ADB, - 10497: 0x7ADC, - 10498: 0x7ADD, - 10499: 0x7AE1, - 10500: 0x7AE2, - 10501: 0x7AE4, - 10502: 0x7AE7, - 10503: 0x7AE8, - 10504: 0x7AE9, - 10505: 0x7AEA, - 10506: 0x7AEB, - 10507: 0x7AEC, - 10508: 0x7AEE, - 10509: 0x7AF0, - 10510: 0x7AF1, - 10511: 0x7AF2, - 10512: 0x7AF3, - 10513: 0x7AF4, - 10514: 0x7AF5, - 10515: 0x7AF6, - 10516: 0x7AF7, - 10517: 0x7AF8, - 10518: 0x7AFB, - 10519: 0x7AFC, - 10520: 0x7AFE, - 10521: 0x7B00, - 10522: 0x7B01, - 10523: 0x7B02, - 10524: 0x7B05, - 10525: 0x7B07, - 10526: 0x7B09, - 10527: 0x7B0C, - 10528: 0x7B0D, - 10529: 0x7B0E, - 10530: 0x7B10, - 10531: 0x7B12, - 10532: 0x7B13, - 10533: 0x7B16, - 10534: 0x7B17, - 10535: 0x7B18, - 10536: 0x7B1A, - 10537: 0x7B1C, - 10538: 0x7B1D, - 10539: 0x7B1F, - 10540: 0x7B21, - 10541: 0x7B22, - 10542: 0x7B23, - 10543: 0x7B27, - 10544: 0x7B29, - 10545: 0x7B2D, - 10546: 0x6D6E, - 10547: 0x6DAA, - 10548: 0x798F, - 10549: 0x88B1, - 10550: 0x5F17, - 10551: 0x752B, - 10552: 0x629A, - 10553: 0x8F85, - 10554: 0x4FEF, - 10555: 0x91DC, - 10556: 0x65A7, - 10557: 0x812F, - 10558: 0x8151, - 10559: 0x5E9C, - 10560: 0x8150, - 10561: 0x8D74, - 10562: 0x526F, - 10563: 0x8986, - 10564: 0x8D4B, - 10565: 0x590D, - 10566: 0x5085, - 10567: 0x4ED8, - 10568: 0x961C, - 10569: 0x7236, - 10570: 0x8179, - 10571: 0x8D1F, - 10572: 0x5BCC, - 10573: 0x8BA3, - 10574: 0x9644, - 10575: 0x5987, - 10576: 0x7F1A, - 10577: 0x5490, - 10578: 0x5676, - 10579: 0x560E, - 10580: 0x8BE5, - 10581: 0x6539, - 10582: 0x6982, - 10583: 0x9499, - 10584: 0x76D6, - 10585: 0x6E89, - 10586: 0x5E72, - 10587: 0x7518, - 10588: 0x6746, - 10589: 0x67D1, - 10590: 0x7AFF, - 10591: 0x809D, - 10592: 0x8D76, - 10593: 0x611F, - 10594: 0x79C6, - 10595: 0x6562, - 10596: 0x8D63, - 10597: 0x5188, - 10598: 0x521A, - 10599: 0x94A2, - 10600: 0x7F38, - 10601: 0x809B, - 10602: 0x7EB2, - 10603: 0x5C97, - 10604: 0x6E2F, - 10605: 0x6760, - 10606: 0x7BD9, - 10607: 0x768B, - 10608: 0x9AD8, - 10609: 0x818F, - 10610: 0x7F94, - 10611: 0x7CD5, - 10612: 0x641E, - 10613: 0x9550, - 10614: 0x7A3F, - 10615: 0x544A, - 10616: 0x54E5, - 10617: 0x6B4C, - 10618: 0x6401, - 10619: 0x6208, - 10620: 0x9E3D, - 10621: 0x80F3, - 10622: 0x7599, - 10623: 0x5272, - 10624: 0x9769, - 10625: 0x845B, - 10626: 0x683C, - 10627: 0x86E4, - 10628: 0x9601, - 10629: 0x9694, - 10630: 0x94EC, - 10631: 0x4E2A, - 10632: 0x5404, - 10633: 0x7ED9, - 10634: 0x6839, - 10635: 0x8DDF, - 10636: 0x8015, - 10637: 0x66F4, - 10638: 0x5E9A, - 10639: 0x7FB9, - 10640: 0x7B2F, - 10641: 0x7B30, - 10642: 0x7B32, - 10643: 0x7B34, - 10644: 0x7B35, - 10645: 0x7B36, - 10646: 0x7B37, - 10647: 0x7B39, - 10648: 0x7B3B, - 10649: 0x7B3D, - 10650: 0x7B3F, - 10651: 0x7B40, - 10652: 0x7B41, - 10653: 0x7B42, - 10654: 0x7B43, - 10655: 0x7B44, - 10656: 0x7B46, - 10657: 0x7B48, - 10658: 0x7B4A, - 10659: 0x7B4D, - 10660: 0x7B4E, - 10661: 0x7B53, - 10662: 0x7B55, - 10663: 0x7B57, - 10664: 0x7B59, - 10665: 0x7B5C, - 10666: 0x7B5E, - 10667: 0x7B5F, - 10668: 0x7B61, - 10669: 0x7B63, - 10670: 0x7B64, - 10671: 0x7B65, - 10672: 0x7B66, - 10673: 0x7B67, - 10674: 0x7B68, - 10675: 0x7B69, - 10676: 0x7B6A, - 10677: 0x7B6B, - 10678: 0x7B6C, - 10679: 0x7B6D, - 10680: 0x7B6F, - 10681: 0x7B70, - 10682: 0x7B73, - 10683: 0x7B74, - 10684: 0x7B76, - 10685: 0x7B78, - 10686: 0x7B7A, - 10687: 0x7B7C, - 10688: 0x7B7D, - 10689: 0x7B7F, - 10690: 0x7B81, - 10691: 0x7B82, - 10692: 0x7B83, - 10693: 0x7B84, - 10694: 0x7B86, - 10695: 0x7B87, - 10696: 0x7B88, - 10697: 0x7B89, - 10698: 0x7B8A, - 10699: 0x7B8B, - 10700: 0x7B8C, - 10701: 0x7B8E, - 10702: 0x7B8F, - 10703: 0x7B91, - 10704: 0x7B92, - 10705: 0x7B93, - 10706: 0x7B96, - 10707: 0x7B98, - 10708: 0x7B99, - 10709: 0x7B9A, - 10710: 0x7B9B, - 10711: 0x7B9E, - 10712: 0x7B9F, - 10713: 0x7BA0, - 10714: 0x7BA3, - 10715: 0x7BA4, - 10716: 0x7BA5, - 10717: 0x7BAE, - 10718: 0x7BAF, - 10719: 0x7BB0, - 10720: 0x7BB2, - 10721: 0x7BB3, - 10722: 0x7BB5, - 10723: 0x7BB6, - 10724: 0x7BB7, - 10725: 0x7BB9, - 10726: 0x7BBA, - 10727: 0x7BBB, - 10728: 0x7BBC, - 10729: 0x7BBD, - 10730: 0x7BBE, - 10731: 0x7BBF, - 10732: 0x7BC0, - 10733: 0x7BC2, - 10734: 0x7BC3, - 10735: 0x7BC4, - 10736: 0x57C2, - 10737: 0x803F, - 10738: 0x6897, - 10739: 0x5DE5, - 10740: 0x653B, - 10741: 0x529F, - 10742: 0x606D, - 10743: 0x9F9A, - 10744: 0x4F9B, - 10745: 0x8EAC, - 10746: 0x516C, - 10747: 0x5BAB, - 10748: 0x5F13, - 10749: 0x5DE9, - 10750: 0x6C5E, - 10751: 0x62F1, - 10752: 0x8D21, - 10753: 0x5171, - 10754: 0x94A9, - 10755: 0x52FE, - 10756: 0x6C9F, - 10757: 0x82DF, - 10758: 0x72D7, - 10759: 0x57A2, - 10760: 0x6784, - 10761: 0x8D2D, - 10762: 0x591F, - 10763: 0x8F9C, - 10764: 0x83C7, - 10765: 0x5495, - 10766: 0x7B8D, - 10767: 0x4F30, - 10768: 0x6CBD, - 10769: 0x5B64, - 10770: 0x59D1, - 10771: 0x9F13, - 10772: 0x53E4, - 10773: 0x86CA, - 10774: 0x9AA8, - 10775: 0x8C37, - 10776: 0x80A1, - 10777: 0x6545, - 10778: 0x987E, - 10779: 0x56FA, - 10780: 0x96C7, - 10781: 0x522E, - 10782: 0x74DC, - 10783: 0x5250, - 10784: 0x5BE1, - 10785: 0x6302, - 10786: 0x8902, - 10787: 0x4E56, - 10788: 0x62D0, - 10789: 0x602A, - 10790: 0x68FA, - 10791: 0x5173, - 10792: 0x5B98, - 10793: 0x51A0, - 10794: 0x89C2, - 10795: 0x7BA1, - 10796: 0x9986, - 10797: 0x7F50, - 10798: 0x60EF, - 10799: 0x704C, - 10800: 0x8D2F, - 10801: 0x5149, - 10802: 0x5E7F, - 10803: 0x901B, - 10804: 0x7470, - 10805: 0x89C4, - 10806: 0x572D, - 10807: 0x7845, - 10808: 0x5F52, - 10809: 0x9F9F, - 10810: 0x95FA, - 10811: 0x8F68, - 10812: 0x9B3C, - 10813: 0x8BE1, - 10814: 0x7678, - 10815: 0x6842, - 10816: 0x67DC, - 10817: 0x8DEA, - 10818: 0x8D35, - 10819: 0x523D, - 10820: 0x8F8A, - 10821: 0x6EDA, - 10822: 0x68CD, - 10823: 0x9505, - 10824: 0x90ED, - 10825: 0x56FD, - 10826: 0x679C, - 10827: 0x88F9, - 10828: 0x8FC7, - 10829: 0x54C8, - 10830: 0x7BC5, - 10831: 0x7BC8, - 10832: 0x7BC9, - 10833: 0x7BCA, - 10834: 0x7BCB, - 10835: 0x7BCD, - 10836: 0x7BCE, - 10837: 0x7BCF, - 10838: 0x7BD0, - 10839: 0x7BD2, - 10840: 0x7BD4, - 10841: 0x7BD5, - 10842: 0x7BD6, - 10843: 0x7BD7, - 10844: 0x7BD8, - 10845: 0x7BDB, - 10846: 0x7BDC, - 10847: 0x7BDE, - 10848: 0x7BDF, - 10849: 0x7BE0, - 10850: 0x7BE2, - 10851: 0x7BE3, - 10852: 0x7BE4, - 10853: 0x7BE7, - 10854: 0x7BE8, - 10855: 0x7BE9, - 10856: 0x7BEB, - 10857: 0x7BEC, - 10858: 0x7BED, - 10859: 0x7BEF, - 10860: 0x7BF0, - 10861: 0x7BF2, - 10862: 0x7BF3, - 10863: 0x7BF4, - 10864: 0x7BF5, - 10865: 0x7BF6, - 10866: 0x7BF8, - 10867: 0x7BF9, - 10868: 0x7BFA, - 10869: 0x7BFB, - 10870: 0x7BFD, - 10871: 0x7BFF, - 10872: 0x7C00, - 10873: 0x7C01, - 10874: 0x7C02, - 10875: 0x7C03, - 10876: 0x7C04, - 10877: 0x7C05, - 10878: 0x7C06, - 10879: 0x7C08, - 10880: 0x7C09, - 10881: 0x7C0A, - 10882: 0x7C0D, - 10883: 0x7C0E, - 10884: 0x7C10, - 10885: 0x7C11, - 10886: 0x7C12, - 10887: 0x7C13, - 10888: 0x7C14, - 10889: 0x7C15, - 10890: 0x7C17, - 10891: 0x7C18, - 10892: 0x7C19, - 10893: 0x7C1A, - 10894: 0x7C1B, - 10895: 0x7C1C, - 10896: 0x7C1D, - 10897: 0x7C1E, - 10898: 0x7C20, - 10899: 0x7C21, - 10900: 0x7C22, - 10901: 0x7C23, - 10902: 0x7C24, - 10903: 0x7C25, - 10904: 0x7C28, - 10905: 0x7C29, - 10906: 0x7C2B, - 10907: 0x7C2C, - 10908: 0x7C2D, - 10909: 0x7C2E, - 10910: 0x7C2F, - 10911: 0x7C30, - 10912: 0x7C31, - 10913: 0x7C32, - 10914: 0x7C33, - 10915: 0x7C34, - 10916: 0x7C35, - 10917: 0x7C36, - 10918: 0x7C37, - 10919: 0x7C39, - 10920: 0x7C3A, - 10921: 0x7C3B, - 10922: 0x7C3C, - 10923: 0x7C3D, - 10924: 0x7C3E, - 10925: 0x7C42, - 10926: 0x9AB8, - 10927: 0x5B69, - 10928: 0x6D77, - 10929: 0x6C26, - 10930: 0x4EA5, - 10931: 0x5BB3, - 10932: 0x9A87, - 10933: 0x9163, - 10934: 0x61A8, - 10935: 0x90AF, - 10936: 0x97E9, - 10937: 0x542B, - 10938: 0x6DB5, - 10939: 0x5BD2, - 10940: 0x51FD, - 10941: 0x558A, - 10942: 0x7F55, - 10943: 0x7FF0, - 10944: 0x64BC, - 10945: 0x634D, - 10946: 0x65F1, - 10947: 0x61BE, - 10948: 0x608D, - 10949: 0x710A, - 10950: 0x6C57, - 10951: 0x6C49, - 10952: 0x592F, - 10953: 0x676D, - 10954: 0x822A, - 10955: 0x58D5, - 10956: 0x568E, - 10957: 0x8C6A, - 10958: 0x6BEB, - 10959: 0x90DD, - 10960: 0x597D, - 10961: 0x8017, - 10962: 0x53F7, - 10963: 0x6D69, - 10964: 0x5475, - 10965: 0x559D, - 10966: 0x8377, - 10967: 0x83CF, - 10968: 0x6838, - 10969: 0x79BE, - 10970: 0x548C, - 10971: 0x4F55, - 10972: 0x5408, - 10973: 0x76D2, - 10974: 0x8C89, - 10975: 0x9602, - 10976: 0x6CB3, - 10977: 0x6DB8, - 10978: 0x8D6B, - 10979: 0x8910, - 10980: 0x9E64, - 10981: 0x8D3A, - 10982: 0x563F, - 10983: 0x9ED1, - 10984: 0x75D5, - 10985: 0x5F88, - 10986: 0x72E0, - 10987: 0x6068, - 10988: 0x54FC, - 10989: 0x4EA8, - 10990: 0x6A2A, - 10991: 0x8861, - 10992: 0x6052, - 10993: 0x8F70, - 10994: 0x54C4, - 10995: 0x70D8, - 10996: 0x8679, - 10997: 0x9E3F, - 10998: 0x6D2A, - 10999: 0x5B8F, - 11000: 0x5F18, - 11001: 0x7EA2, - 11002: 0x5589, - 11003: 0x4FAF, - 11004: 0x7334, - 11005: 0x543C, - 11006: 0x539A, - 11007: 0x5019, - 11008: 0x540E, - 11009: 0x547C, - 11010: 0x4E4E, - 11011: 0x5FFD, - 11012: 0x745A, - 11013: 0x58F6, - 11014: 0x846B, - 11015: 0x80E1, - 11016: 0x8774, - 11017: 0x72D0, - 11018: 0x7CCA, - 11019: 0x6E56, - 11020: 0x7C43, - 11021: 0x7C44, - 11022: 0x7C45, - 11023: 0x7C46, - 11024: 0x7C47, - 11025: 0x7C48, - 11026: 0x7C49, - 11027: 0x7C4A, - 11028: 0x7C4B, - 11029: 0x7C4C, - 11030: 0x7C4E, - 11031: 0x7C4F, - 11032: 0x7C50, - 11033: 0x7C51, - 11034: 0x7C52, - 11035: 0x7C53, - 11036: 0x7C54, - 11037: 0x7C55, - 11038: 0x7C56, - 11039: 0x7C57, - 11040: 0x7C58, - 11041: 0x7C59, - 11042: 0x7C5A, - 11043: 0x7C5B, - 11044: 0x7C5C, - 11045: 0x7C5D, - 11046: 0x7C5E, - 11047: 0x7C5F, - 11048: 0x7C60, - 11049: 0x7C61, - 11050: 0x7C62, - 11051: 0x7C63, - 11052: 0x7C64, - 11053: 0x7C65, - 11054: 0x7C66, - 11055: 0x7C67, - 11056: 0x7C68, - 11057: 0x7C69, - 11058: 0x7C6A, - 11059: 0x7C6B, - 11060: 0x7C6C, - 11061: 0x7C6D, - 11062: 0x7C6E, - 11063: 0x7C6F, - 11064: 0x7C70, - 11065: 0x7C71, - 11066: 0x7C72, - 11067: 0x7C75, - 11068: 0x7C76, - 11069: 0x7C77, - 11070: 0x7C78, - 11071: 0x7C79, - 11072: 0x7C7A, - 11073: 0x7C7E, - 11074: 0x7C7F, - 11075: 0x7C80, - 11076: 0x7C81, - 11077: 0x7C82, - 11078: 0x7C83, - 11079: 0x7C84, - 11080: 0x7C85, - 11081: 0x7C86, - 11082: 0x7C87, - 11083: 0x7C88, - 11084: 0x7C8A, - 11085: 0x7C8B, - 11086: 0x7C8C, - 11087: 0x7C8D, - 11088: 0x7C8E, - 11089: 0x7C8F, - 11090: 0x7C90, - 11091: 0x7C93, - 11092: 0x7C94, - 11093: 0x7C96, - 11094: 0x7C99, - 11095: 0x7C9A, - 11096: 0x7C9B, - 11097: 0x7CA0, - 11098: 0x7CA1, - 11099: 0x7CA3, - 11100: 0x7CA6, - 11101: 0x7CA7, - 11102: 0x7CA8, - 11103: 0x7CA9, - 11104: 0x7CAB, - 11105: 0x7CAC, - 11106: 0x7CAD, - 11107: 0x7CAF, - 11108: 0x7CB0, - 11109: 0x7CB4, - 11110: 0x7CB5, - 11111: 0x7CB6, - 11112: 0x7CB7, - 11113: 0x7CB8, - 11114: 0x7CBA, - 11115: 0x7CBB, - 11116: 0x5F27, - 11117: 0x864E, - 11118: 0x552C, - 11119: 0x62A4, - 11120: 0x4E92, - 11121: 0x6CAA, - 11122: 0x6237, - 11123: 0x82B1, - 11124: 0x54D7, - 11125: 0x534E, - 11126: 0x733E, - 11127: 0x6ED1, - 11128: 0x753B, - 11129: 0x5212, - 11130: 0x5316, - 11131: 0x8BDD, - 11132: 0x69D0, - 11133: 0x5F8A, - 11134: 0x6000, - 11135: 0x6DEE, - 11136: 0x574F, - 11137: 0x6B22, - 11138: 0x73AF, - 11139: 0x6853, - 11140: 0x8FD8, - 11141: 0x7F13, - 11142: 0x6362, - 11143: 0x60A3, - 11144: 0x5524, - 11145: 0x75EA, - 11146: 0x8C62, - 11147: 0x7115, - 11148: 0x6DA3, - 11149: 0x5BA6, - 11150: 0x5E7B, - 11151: 0x8352, - 11152: 0x614C, - 11153: 0x9EC4, - 11154: 0x78FA, - 11155: 0x8757, - 11156: 0x7C27, - 11157: 0x7687, - 11158: 0x51F0, - 11159: 0x60F6, - 11160: 0x714C, - 11161: 0x6643, - 11162: 0x5E4C, - 11163: 0x604D, - 11164: 0x8C0E, - 11165: 0x7070, - 11166: 0x6325, - 11167: 0x8F89, - 11168: 0x5FBD, - 11169: 0x6062, - 11170: 0x86D4, - 11171: 0x56DE, - 11172: 0x6BC1, - 11173: 0x6094, - 11174: 0x6167, - 11175: 0x5349, - 11176: 0x60E0, - 11177: 0x6666, - 11178: 0x8D3F, - 11179: 0x79FD, - 11180: 0x4F1A, - 11181: 0x70E9, - 11182: 0x6C47, - 11183: 0x8BB3, - 11184: 0x8BF2, - 11185: 0x7ED8, - 11186: 0x8364, - 11187: 0x660F, - 11188: 0x5A5A, - 11189: 0x9B42, - 11190: 0x6D51, - 11191: 0x6DF7, - 11192: 0x8C41, - 11193: 0x6D3B, - 11194: 0x4F19, - 11195: 0x706B, - 11196: 0x83B7, - 11197: 0x6216, - 11198: 0x60D1, - 11199: 0x970D, - 11200: 0x8D27, - 11201: 0x7978, - 11202: 0x51FB, - 11203: 0x573E, - 11204: 0x57FA, - 11205: 0x673A, - 11206: 0x7578, - 11207: 0x7A3D, - 11208: 0x79EF, - 11209: 0x7B95, - 11210: 0x7CBF, - 11211: 0x7CC0, - 11212: 0x7CC2, - 11213: 0x7CC3, - 11214: 0x7CC4, - 11215: 0x7CC6, - 11216: 0x7CC9, - 11217: 0x7CCB, - 11218: 0x7CCE, - 11219: 0x7CCF, - 11220: 0x7CD0, - 11221: 0x7CD1, - 11222: 0x7CD2, - 11223: 0x7CD3, - 11224: 0x7CD4, - 11225: 0x7CD8, - 11226: 0x7CDA, - 11227: 0x7CDB, - 11228: 0x7CDD, - 11229: 0x7CDE, - 11230: 0x7CE1, - 11231: 0x7CE2, - 11232: 0x7CE3, - 11233: 0x7CE4, - 11234: 0x7CE5, - 11235: 0x7CE6, - 11236: 0x7CE7, - 11237: 0x7CE9, - 11238: 0x7CEA, - 11239: 0x7CEB, - 11240: 0x7CEC, - 11241: 0x7CED, - 11242: 0x7CEE, - 11243: 0x7CF0, - 11244: 0x7CF1, - 11245: 0x7CF2, - 11246: 0x7CF3, - 11247: 0x7CF4, - 11248: 0x7CF5, - 11249: 0x7CF6, - 11250: 0x7CF7, - 11251: 0x7CF9, - 11252: 0x7CFA, - 11253: 0x7CFC, - 11254: 0x7CFD, - 11255: 0x7CFE, - 11256: 0x7CFF, - 11257: 0x7D00, - 11258: 0x7D01, - 11259: 0x7D02, - 11260: 0x7D03, - 11261: 0x7D04, - 11262: 0x7D05, - 11263: 0x7D06, - 11264: 0x7D07, - 11265: 0x7D08, - 11266: 0x7D09, - 11267: 0x7D0B, - 11268: 0x7D0C, - 11269: 0x7D0D, - 11270: 0x7D0E, - 11271: 0x7D0F, - 11272: 0x7D10, - 11273: 0x7D11, - 11274: 0x7D12, - 11275: 0x7D13, - 11276: 0x7D14, - 11277: 0x7D15, - 11278: 0x7D16, - 11279: 0x7D17, - 11280: 0x7D18, - 11281: 0x7D19, - 11282: 0x7D1A, - 11283: 0x7D1B, - 11284: 0x7D1C, - 11285: 0x7D1D, - 11286: 0x7D1E, - 11287: 0x7D1F, - 11288: 0x7D21, - 11289: 0x7D23, - 11290: 0x7D24, - 11291: 0x7D25, - 11292: 0x7D26, - 11293: 0x7D28, - 11294: 0x7D29, - 11295: 0x7D2A, - 11296: 0x7D2C, - 11297: 0x7D2D, - 11298: 0x7D2E, - 11299: 0x7D30, - 11300: 0x7D31, - 11301: 0x7D32, - 11302: 0x7D33, - 11303: 0x7D34, - 11304: 0x7D35, - 11305: 0x7D36, - 11306: 0x808C, - 11307: 0x9965, - 11308: 0x8FF9, - 11309: 0x6FC0, - 11310: 0x8BA5, - 11311: 0x9E21, - 11312: 0x59EC, - 11313: 0x7EE9, - 11314: 0x7F09, - 11315: 0x5409, - 11316: 0x6781, - 11317: 0x68D8, - 11318: 0x8F91, - 11319: 0x7C4D, - 11320: 0x96C6, - 11321: 0x53CA, - 11322: 0x6025, - 11323: 0x75BE, - 11324: 0x6C72, - 11325: 0x5373, - 11326: 0x5AC9, - 11327: 0x7EA7, - 11328: 0x6324, - 11329: 0x51E0, - 11330: 0x810A, - 11331: 0x5DF1, - 11332: 0x84DF, - 11333: 0x6280, - 11334: 0x5180, - 11335: 0x5B63, - 11336: 0x4F0E, - 11337: 0x796D, - 11338: 0x5242, - 11339: 0x60B8, - 11340: 0x6D4E, - 11341: 0x5BC4, - 11342: 0x5BC2, - 11343: 0x8BA1, - 11344: 0x8BB0, - 11345: 0x65E2, - 11346: 0x5FCC, - 11347: 0x9645, - 11348: 0x5993, - 11349: 0x7EE7, - 11350: 0x7EAA, - 11351: 0x5609, - 11352: 0x67B7, - 11353: 0x5939, - 11354: 0x4F73, - 11355: 0x5BB6, - 11356: 0x52A0, - 11357: 0x835A, - 11358: 0x988A, - 11359: 0x8D3E, - 11360: 0x7532, - 11361: 0x94BE, - 11362: 0x5047, - 11363: 0x7A3C, - 11364: 0x4EF7, - 11365: 0x67B6, - 11366: 0x9A7E, - 11367: 0x5AC1, - 11368: 0x6B7C, - 11369: 0x76D1, - 11370: 0x575A, - 11371: 0x5C16, - 11372: 0x7B3A, - 11373: 0x95F4, - 11374: 0x714E, - 11375: 0x517C, - 11376: 0x80A9, - 11377: 0x8270, - 11378: 0x5978, - 11379: 0x7F04, - 11380: 0x8327, - 11381: 0x68C0, - 11382: 0x67EC, - 11383: 0x78B1, - 11384: 0x7877, - 11385: 0x62E3, - 11386: 0x6361, - 11387: 0x7B80, - 11388: 0x4FED, - 11389: 0x526A, - 11390: 0x51CF, - 11391: 0x8350, - 11392: 0x69DB, - 11393: 0x9274, - 11394: 0x8DF5, - 11395: 0x8D31, - 11396: 0x89C1, - 11397: 0x952E, - 11398: 0x7BAD, - 11399: 0x4EF6, - 11400: 0x7D37, - 11401: 0x7D38, - 11402: 0x7D39, - 11403: 0x7D3A, - 11404: 0x7D3B, - 11405: 0x7D3C, - 11406: 0x7D3D, - 11407: 0x7D3E, - 11408: 0x7D3F, - 11409: 0x7D40, - 11410: 0x7D41, - 11411: 0x7D42, - 11412: 0x7D43, - 11413: 0x7D44, - 11414: 0x7D45, - 11415: 0x7D46, - 11416: 0x7D47, - 11417: 0x7D48, - 11418: 0x7D49, - 11419: 0x7D4A, - 11420: 0x7D4B, - 11421: 0x7D4C, - 11422: 0x7D4D, - 11423: 0x7D4E, - 11424: 0x7D4F, - 11425: 0x7D50, - 11426: 0x7D51, - 11427: 0x7D52, - 11428: 0x7D53, - 11429: 0x7D54, - 11430: 0x7D55, - 11431: 0x7D56, - 11432: 0x7D57, - 11433: 0x7D58, - 11434: 0x7D59, - 11435: 0x7D5A, - 11436: 0x7D5B, - 11437: 0x7D5C, - 11438: 0x7D5D, - 11439: 0x7D5E, - 11440: 0x7D5F, - 11441: 0x7D60, - 11442: 0x7D61, - 11443: 0x7D62, - 11444: 0x7D63, - 11445: 0x7D64, - 11446: 0x7D65, - 11447: 0x7D66, - 11448: 0x7D67, - 11449: 0x7D68, - 11450: 0x7D69, - 11451: 0x7D6A, - 11452: 0x7D6B, - 11453: 0x7D6C, - 11454: 0x7D6D, - 11455: 0x7D6F, - 11456: 0x7D70, - 11457: 0x7D71, - 11458: 0x7D72, - 11459: 0x7D73, - 11460: 0x7D74, - 11461: 0x7D75, - 11462: 0x7D76, - 11463: 0x7D78, - 11464: 0x7D79, - 11465: 0x7D7A, - 11466: 0x7D7B, - 11467: 0x7D7C, - 11468: 0x7D7D, - 11469: 0x7D7E, - 11470: 0x7D7F, - 11471: 0x7D80, - 11472: 0x7D81, - 11473: 0x7D82, - 11474: 0x7D83, - 11475: 0x7D84, - 11476: 0x7D85, - 11477: 0x7D86, - 11478: 0x7D87, - 11479: 0x7D88, - 11480: 0x7D89, - 11481: 0x7D8A, - 11482: 0x7D8B, - 11483: 0x7D8C, - 11484: 0x7D8D, - 11485: 0x7D8E, - 11486: 0x7D8F, - 11487: 0x7D90, - 11488: 0x7D91, - 11489: 0x7D92, - 11490: 0x7D93, - 11491: 0x7D94, - 11492: 0x7D95, - 11493: 0x7D96, - 11494: 0x7D97, - 11495: 0x7D98, - 11496: 0x5065, - 11497: 0x8230, - 11498: 0x5251, - 11499: 0x996F, - 11500: 0x6E10, - 11501: 0x6E85, - 11502: 0x6DA7, - 11503: 0x5EFA, - 11504: 0x50F5, - 11505: 0x59DC, - 11506: 0x5C06, - 11507: 0x6D46, - 11508: 0x6C5F, - 11509: 0x7586, - 11510: 0x848B, - 11511: 0x6868, - 11512: 0x5956, - 11513: 0x8BB2, - 11514: 0x5320, - 11515: 0x9171, - 11516: 0x964D, - 11517: 0x8549, - 11518: 0x6912, - 11519: 0x7901, - 11520: 0x7126, - 11521: 0x80F6, - 11522: 0x4EA4, - 11523: 0x90CA, - 11524: 0x6D47, - 11525: 0x9A84, - 11526: 0x5A07, - 11527: 0x56BC, - 11528: 0x6405, - 11529: 0x94F0, - 11530: 0x77EB, - 11531: 0x4FA5, - 11532: 0x811A, - 11533: 0x72E1, - 11534: 0x89D2, - 11535: 0x997A, - 11536: 0x7F34, - 11537: 0x7EDE, - 11538: 0x527F, - 11539: 0x6559, - 11540: 0x9175, - 11541: 0x8F7F, - 11542: 0x8F83, - 11543: 0x53EB, - 11544: 0x7A96, - 11545: 0x63ED, - 11546: 0x63A5, - 11547: 0x7686, - 11548: 0x79F8, - 11549: 0x8857, - 11550: 0x9636, - 11551: 0x622A, - 11552: 0x52AB, - 11553: 0x8282, - 11554: 0x6854, - 11555: 0x6770, - 11556: 0x6377, - 11557: 0x776B, - 11558: 0x7AED, - 11559: 0x6D01, - 11560: 0x7ED3, - 11561: 0x89E3, - 11562: 0x59D0, - 11563: 0x6212, - 11564: 0x85C9, - 11565: 0x82A5, - 11566: 0x754C, - 11567: 0x501F, - 11568: 0x4ECB, - 11569: 0x75A5, - 11570: 0x8BEB, - 11571: 0x5C4A, - 11572: 0x5DFE, - 11573: 0x7B4B, - 11574: 0x65A4, - 11575: 0x91D1, - 11576: 0x4ECA, - 11577: 0x6D25, - 11578: 0x895F, - 11579: 0x7D27, - 11580: 0x9526, - 11581: 0x4EC5, - 11582: 0x8C28, - 11583: 0x8FDB, - 11584: 0x9773, - 11585: 0x664B, - 11586: 0x7981, - 11587: 0x8FD1, - 11588: 0x70EC, - 11589: 0x6D78, - 11590: 0x7D99, - 11591: 0x7D9A, - 11592: 0x7D9B, - 11593: 0x7D9C, - 11594: 0x7D9D, - 11595: 0x7D9E, - 11596: 0x7D9F, - 11597: 0x7DA0, - 11598: 0x7DA1, - 11599: 0x7DA2, - 11600: 0x7DA3, - 11601: 0x7DA4, - 11602: 0x7DA5, - 11603: 0x7DA7, - 11604: 0x7DA8, - 11605: 0x7DA9, - 11606: 0x7DAA, - 11607: 0x7DAB, - 11608: 0x7DAC, - 11609: 0x7DAD, - 11610: 0x7DAF, - 11611: 0x7DB0, - 11612: 0x7DB1, - 11613: 0x7DB2, - 11614: 0x7DB3, - 11615: 0x7DB4, - 11616: 0x7DB5, - 11617: 0x7DB6, - 11618: 0x7DB7, - 11619: 0x7DB8, - 11620: 0x7DB9, - 11621: 0x7DBA, - 11622: 0x7DBB, - 11623: 0x7DBC, - 11624: 0x7DBD, - 11625: 0x7DBE, - 11626: 0x7DBF, - 11627: 0x7DC0, - 11628: 0x7DC1, - 11629: 0x7DC2, - 11630: 0x7DC3, - 11631: 0x7DC4, - 11632: 0x7DC5, - 11633: 0x7DC6, - 11634: 0x7DC7, - 11635: 0x7DC8, - 11636: 0x7DC9, - 11637: 0x7DCA, - 11638: 0x7DCB, - 11639: 0x7DCC, - 11640: 0x7DCD, - 11641: 0x7DCE, - 11642: 0x7DCF, - 11643: 0x7DD0, - 11644: 0x7DD1, - 11645: 0x7DD2, - 11646: 0x7DD3, - 11647: 0x7DD4, - 11648: 0x7DD5, - 11649: 0x7DD6, - 11650: 0x7DD7, - 11651: 0x7DD8, - 11652: 0x7DD9, - 11653: 0x7DDA, - 11654: 0x7DDB, - 11655: 0x7DDC, - 11656: 0x7DDD, - 11657: 0x7DDE, - 11658: 0x7DDF, - 11659: 0x7DE0, - 11660: 0x7DE1, - 11661: 0x7DE2, - 11662: 0x7DE3, - 11663: 0x7DE4, - 11664: 0x7DE5, - 11665: 0x7DE6, - 11666: 0x7DE7, - 11667: 0x7DE8, - 11668: 0x7DE9, - 11669: 0x7DEA, - 11670: 0x7DEB, - 11671: 0x7DEC, - 11672: 0x7DED, - 11673: 0x7DEE, - 11674: 0x7DEF, - 11675: 0x7DF0, - 11676: 0x7DF1, - 11677: 0x7DF2, - 11678: 0x7DF3, - 11679: 0x7DF4, - 11680: 0x7DF5, - 11681: 0x7DF6, - 11682: 0x7DF7, - 11683: 0x7DF8, - 11684: 0x7DF9, - 11685: 0x7DFA, - 11686: 0x5C3D, - 11687: 0x52B2, - 11688: 0x8346, - 11689: 0x5162, - 11690: 0x830E, - 11691: 0x775B, - 11692: 0x6676, - 11693: 0x9CB8, - 11694: 0x4EAC, - 11695: 0x60CA, - 11696: 0x7CBE, - 11697: 0x7CB3, - 11698: 0x7ECF, - 11699: 0x4E95, - 11700: 0x8B66, - 11701: 0x666F, - 11702: 0x9888, - 11703: 0x9759, - 11704: 0x5883, - 11705: 0x656C, - 11706: 0x955C, - 11707: 0x5F84, - 11708: 0x75C9, - 11709: 0x9756, - 11710: 0x7ADF, - 11711: 0x7ADE, - 11712: 0x51C0, - 11713: 0x70AF, - 11714: 0x7A98, - 11715: 0x63EA, - 11716: 0x7A76, - 11717: 0x7EA0, - 11718: 0x7396, - 11719: 0x97ED, - 11720: 0x4E45, - 11721: 0x7078, - 11722: 0x4E5D, - 11723: 0x9152, - 11724: 0x53A9, - 11725: 0x6551, - 11726: 0x65E7, - 11727: 0x81FC, - 11728: 0x8205, - 11729: 0x548E, - 11730: 0x5C31, - 11731: 0x759A, - 11732: 0x97A0, - 11733: 0x62D8, - 11734: 0x72D9, - 11735: 0x75BD, - 11736: 0x5C45, - 11737: 0x9A79, - 11738: 0x83CA, - 11739: 0x5C40, - 11740: 0x5480, - 11741: 0x77E9, - 11742: 0x4E3E, - 11743: 0x6CAE, - 11744: 0x805A, - 11745: 0x62D2, - 11746: 0x636E, - 11747: 0x5DE8, - 11748: 0x5177, - 11749: 0x8DDD, - 11750: 0x8E1E, - 11751: 0x952F, - 11752: 0x4FF1, - 11753: 0x53E5, - 11754: 0x60E7, - 11755: 0x70AC, - 11756: 0x5267, - 11757: 0x6350, - 11758: 0x9E43, - 11759: 0x5A1F, - 11760: 0x5026, - 11761: 0x7737, - 11762: 0x5377, - 11763: 0x7EE2, - 11764: 0x6485, - 11765: 0x652B, - 11766: 0x6289, - 11767: 0x6398, - 11768: 0x5014, - 11769: 0x7235, - 11770: 0x89C9, - 11771: 0x51B3, - 11772: 0x8BC0, - 11773: 0x7EDD, - 11774: 0x5747, - 11775: 0x83CC, - 11776: 0x94A7, - 11777: 0x519B, - 11778: 0x541B, - 11779: 0x5CFB, - 11780: 0x7DFB, - 11781: 0x7DFC, - 11782: 0x7DFD, - 11783: 0x7DFE, - 11784: 0x7DFF, - 11785: 0x7E00, - 11786: 0x7E01, - 11787: 0x7E02, - 11788: 0x7E03, - 11789: 0x7E04, - 11790: 0x7E05, - 11791: 0x7E06, - 11792: 0x7E07, - 11793: 0x7E08, - 11794: 0x7E09, - 11795: 0x7E0A, - 11796: 0x7E0B, - 11797: 0x7E0C, - 11798: 0x7E0D, - 11799: 0x7E0E, - 11800: 0x7E0F, - 11801: 0x7E10, - 11802: 0x7E11, - 11803: 0x7E12, - 11804: 0x7E13, - 11805: 0x7E14, - 11806: 0x7E15, - 11807: 0x7E16, - 11808: 0x7E17, - 11809: 0x7E18, - 11810: 0x7E19, - 11811: 0x7E1A, - 11812: 0x7E1B, - 11813: 0x7E1C, - 11814: 0x7E1D, - 11815: 0x7E1E, - 11816: 0x7E1F, - 11817: 0x7E20, - 11818: 0x7E21, - 11819: 0x7E22, - 11820: 0x7E23, - 11821: 0x7E24, - 11822: 0x7E25, - 11823: 0x7E26, - 11824: 0x7E27, - 11825: 0x7E28, - 11826: 0x7E29, - 11827: 0x7E2A, - 11828: 0x7E2B, - 11829: 0x7E2C, - 11830: 0x7E2D, - 11831: 0x7E2E, - 11832: 0x7E2F, - 11833: 0x7E30, - 11834: 0x7E31, - 11835: 0x7E32, - 11836: 0x7E33, - 11837: 0x7E34, - 11838: 0x7E35, - 11839: 0x7E36, - 11840: 0x7E37, - 11841: 0x7E38, - 11842: 0x7E39, - 11843: 0x7E3A, - 11844: 0x7E3C, - 11845: 0x7E3D, - 11846: 0x7E3E, - 11847: 0x7E3F, - 11848: 0x7E40, - 11849: 0x7E42, - 11850: 0x7E43, - 11851: 0x7E44, - 11852: 0x7E45, - 11853: 0x7E46, - 11854: 0x7E48, - 11855: 0x7E49, - 11856: 0x7E4A, - 11857: 0x7E4B, - 11858: 0x7E4C, - 11859: 0x7E4D, - 11860: 0x7E4E, - 11861: 0x7E4F, - 11862: 0x7E50, - 11863: 0x7E51, - 11864: 0x7E52, - 11865: 0x7E53, - 11866: 0x7E54, - 11867: 0x7E55, - 11868: 0x7E56, - 11869: 0x7E57, - 11870: 0x7E58, - 11871: 0x7E59, - 11872: 0x7E5A, - 11873: 0x7E5B, - 11874: 0x7E5C, - 11875: 0x7E5D, - 11876: 0x4FCA, - 11877: 0x7AE3, - 11878: 0x6D5A, - 11879: 0x90E1, - 11880: 0x9A8F, - 11881: 0x5580, - 11882: 0x5496, - 11883: 0x5361, - 11884: 0x54AF, - 11885: 0x5F00, - 11886: 0x63E9, - 11887: 0x6977, - 11888: 0x51EF, - 11889: 0x6168, - 11890: 0x520A, - 11891: 0x582A, - 11892: 0x52D8, - 11893: 0x574E, - 11894: 0x780D, - 11895: 0x770B, - 11896: 0x5EB7, - 11897: 0x6177, - 11898: 0x7CE0, - 11899: 0x625B, - 11900: 0x6297, - 11901: 0x4EA2, - 11902: 0x7095, - 11903: 0x8003, - 11904: 0x62F7, - 11905: 0x70E4, - 11906: 0x9760, - 11907: 0x5777, - 11908: 0x82DB, - 11909: 0x67EF, - 11910: 0x68F5, - 11911: 0x78D5, - 11912: 0x9897, - 11913: 0x79D1, - 11914: 0x58F3, - 11915: 0x54B3, - 11916: 0x53EF, - 11917: 0x6E34, - 11918: 0x514B, - 11919: 0x523B, - 11920: 0x5BA2, - 11921: 0x8BFE, - 11922: 0x80AF, - 11923: 0x5543, - 11924: 0x57A6, - 11925: 0x6073, - 11926: 0x5751, - 11927: 0x542D, - 11928: 0x7A7A, - 11929: 0x6050, - 11930: 0x5B54, - 11931: 0x63A7, - 11932: 0x62A0, - 11933: 0x53E3, - 11934: 0x6263, - 11935: 0x5BC7, - 11936: 0x67AF, - 11937: 0x54ED, - 11938: 0x7A9F, - 11939: 0x82E6, - 11940: 0x9177, - 11941: 0x5E93, - 11942: 0x88E4, - 11943: 0x5938, - 11944: 0x57AE, - 11945: 0x630E, - 11946: 0x8DE8, - 11947: 0x80EF, - 11948: 0x5757, - 11949: 0x7B77, - 11950: 0x4FA9, - 11951: 0x5FEB, - 11952: 0x5BBD, - 11953: 0x6B3E, - 11954: 0x5321, - 11955: 0x7B50, - 11956: 0x72C2, - 11957: 0x6846, - 11958: 0x77FF, - 11959: 0x7736, - 11960: 0x65F7, - 11961: 0x51B5, - 11962: 0x4E8F, - 11963: 0x76D4, - 11964: 0x5CBF, - 11965: 0x7AA5, - 11966: 0x8475, - 11967: 0x594E, - 11968: 0x9B41, - 11969: 0x5080, - 11970: 0x7E5E, - 11971: 0x7E5F, - 11972: 0x7E60, - 11973: 0x7E61, - 11974: 0x7E62, - 11975: 0x7E63, - 11976: 0x7E64, - 11977: 0x7E65, - 11978: 0x7E66, - 11979: 0x7E67, - 11980: 0x7E68, - 11981: 0x7E69, - 11982: 0x7E6A, - 11983: 0x7E6B, - 11984: 0x7E6C, - 11985: 0x7E6D, - 11986: 0x7E6E, - 11987: 0x7E6F, - 11988: 0x7E70, - 11989: 0x7E71, - 11990: 0x7E72, - 11991: 0x7E73, - 11992: 0x7E74, - 11993: 0x7E75, - 11994: 0x7E76, - 11995: 0x7E77, - 11996: 0x7E78, - 11997: 0x7E79, - 11998: 0x7E7A, - 11999: 0x7E7B, - 12000: 0x7E7C, - 12001: 0x7E7D, - 12002: 0x7E7E, - 12003: 0x7E7F, - 12004: 0x7E80, - 12005: 0x7E81, - 12006: 0x7E83, - 12007: 0x7E84, - 12008: 0x7E85, - 12009: 0x7E86, - 12010: 0x7E87, - 12011: 0x7E88, - 12012: 0x7E89, - 12013: 0x7E8A, - 12014: 0x7E8B, - 12015: 0x7E8C, - 12016: 0x7E8D, - 12017: 0x7E8E, - 12018: 0x7E8F, - 12019: 0x7E90, - 12020: 0x7E91, - 12021: 0x7E92, - 12022: 0x7E93, - 12023: 0x7E94, - 12024: 0x7E95, - 12025: 0x7E96, - 12026: 0x7E97, - 12027: 0x7E98, - 12028: 0x7E99, - 12029: 0x7E9A, - 12030: 0x7E9C, - 12031: 0x7E9D, - 12032: 0x7E9E, - 12033: 0x7EAE, - 12034: 0x7EB4, - 12035: 0x7EBB, - 12036: 0x7EBC, - 12037: 0x7ED6, - 12038: 0x7EE4, - 12039: 0x7EEC, - 12040: 0x7EF9, - 12041: 0x7F0A, - 12042: 0x7F10, - 12043: 0x7F1E, - 12044: 0x7F37, - 12045: 0x7F39, - 12046: 0x7F3B, - 12047: 0x7F3C, - 12048: 0x7F3D, - 12049: 0x7F3E, - 12050: 0x7F3F, - 12051: 0x7F40, - 12052: 0x7F41, - 12053: 0x7F43, - 12054: 0x7F46, - 12055: 0x7F47, - 12056: 0x7F48, - 12057: 0x7F49, - 12058: 0x7F4A, - 12059: 0x7F4B, - 12060: 0x7F4C, - 12061: 0x7F4D, - 12062: 0x7F4E, - 12063: 0x7F4F, - 12064: 0x7F52, - 12065: 0x7F53, - 12066: 0x9988, - 12067: 0x6127, - 12068: 0x6E83, - 12069: 0x5764, - 12070: 0x6606, - 12071: 0x6346, - 12072: 0x56F0, - 12073: 0x62EC, - 12074: 0x6269, - 12075: 0x5ED3, - 12076: 0x9614, - 12077: 0x5783, - 12078: 0x62C9, - 12079: 0x5587, - 12080: 0x8721, - 12081: 0x814A, - 12082: 0x8FA3, - 12083: 0x5566, - 12084: 0x83B1, - 12085: 0x6765, - 12086: 0x8D56, - 12087: 0x84DD, - 12088: 0x5A6A, - 12089: 0x680F, - 12090: 0x62E6, - 12091: 0x7BEE, - 12092: 0x9611, - 12093: 0x5170, - 12094: 0x6F9C, - 12095: 0x8C30, - 12096: 0x63FD, - 12097: 0x89C8, - 12098: 0x61D2, - 12099: 0x7F06, - 12100: 0x70C2, - 12101: 0x6EE5, - 12102: 0x7405, - 12103: 0x6994, - 12104: 0x72FC, - 12105: 0x5ECA, - 12106: 0x90CE, - 12107: 0x6717, - 12108: 0x6D6A, - 12109: 0x635E, - 12110: 0x52B3, - 12111: 0x7262, - 12112: 0x8001, - 12113: 0x4F6C, - 12114: 0x59E5, - 12115: 0x916A, - 12116: 0x70D9, - 12117: 0x6D9D, - 12118: 0x52D2, - 12119: 0x4E50, - 12120: 0x96F7, - 12121: 0x956D, - 12122: 0x857E, - 12123: 0x78CA, - 12124: 0x7D2F, - 12125: 0x5121, - 12126: 0x5792, - 12127: 0x64C2, - 12128: 0x808B, - 12129: 0x7C7B, - 12130: 0x6CEA, - 12131: 0x68F1, - 12132: 0x695E, - 12133: 0x51B7, - 12134: 0x5398, - 12135: 0x68A8, - 12136: 0x7281, - 12137: 0x9ECE, - 12138: 0x7BF1, - 12139: 0x72F8, - 12140: 0x79BB, - 12141: 0x6F13, - 12142: 0x7406, - 12143: 0x674E, - 12144: 0x91CC, - 12145: 0x9CA4, - 12146: 0x793C, - 12147: 0x8389, - 12148: 0x8354, - 12149: 0x540F, - 12150: 0x6817, - 12151: 0x4E3D, - 12152: 0x5389, - 12153: 0x52B1, - 12154: 0x783E, - 12155: 0x5386, - 12156: 0x5229, - 12157: 0x5088, - 12158: 0x4F8B, - 12159: 0x4FD0, - 12160: 0x7F56, - 12161: 0x7F59, - 12162: 0x7F5B, - 12163: 0x7F5C, - 12164: 0x7F5D, - 12165: 0x7F5E, - 12166: 0x7F60, - 12167: 0x7F63, - 12168: 0x7F64, - 12169: 0x7F65, - 12170: 0x7F66, - 12171: 0x7F67, - 12172: 0x7F6B, - 12173: 0x7F6C, - 12174: 0x7F6D, - 12175: 0x7F6F, - 12176: 0x7F70, - 12177: 0x7F73, - 12178: 0x7F75, - 12179: 0x7F76, - 12180: 0x7F77, - 12181: 0x7F78, - 12182: 0x7F7A, - 12183: 0x7F7B, - 12184: 0x7F7C, - 12185: 0x7F7D, - 12186: 0x7F7F, - 12187: 0x7F80, - 12188: 0x7F82, - 12189: 0x7F83, - 12190: 0x7F84, - 12191: 0x7F85, - 12192: 0x7F86, - 12193: 0x7F87, - 12194: 0x7F88, - 12195: 0x7F89, - 12196: 0x7F8B, - 12197: 0x7F8D, - 12198: 0x7F8F, - 12199: 0x7F90, - 12200: 0x7F91, - 12201: 0x7F92, - 12202: 0x7F93, - 12203: 0x7F95, - 12204: 0x7F96, - 12205: 0x7F97, - 12206: 0x7F98, - 12207: 0x7F99, - 12208: 0x7F9B, - 12209: 0x7F9C, - 12210: 0x7FA0, - 12211: 0x7FA2, - 12212: 0x7FA3, - 12213: 0x7FA5, - 12214: 0x7FA6, - 12215: 0x7FA8, - 12216: 0x7FA9, - 12217: 0x7FAA, - 12218: 0x7FAB, - 12219: 0x7FAC, - 12220: 0x7FAD, - 12221: 0x7FAE, - 12222: 0x7FB1, - 12223: 0x7FB3, - 12224: 0x7FB4, - 12225: 0x7FB5, - 12226: 0x7FB6, - 12227: 0x7FB7, - 12228: 0x7FBA, - 12229: 0x7FBB, - 12230: 0x7FBE, - 12231: 0x7FC0, - 12232: 0x7FC2, - 12233: 0x7FC3, - 12234: 0x7FC4, - 12235: 0x7FC6, - 12236: 0x7FC7, - 12237: 0x7FC8, - 12238: 0x7FC9, - 12239: 0x7FCB, - 12240: 0x7FCD, - 12241: 0x7FCF, - 12242: 0x7FD0, - 12243: 0x7FD1, - 12244: 0x7FD2, - 12245: 0x7FD3, - 12246: 0x7FD6, - 12247: 0x7FD7, - 12248: 0x7FD9, - 12249: 0x7FDA, - 12250: 0x7FDB, - 12251: 0x7FDC, - 12252: 0x7FDD, - 12253: 0x7FDE, - 12254: 0x7FE2, - 12255: 0x7FE3, - 12256: 0x75E2, - 12257: 0x7ACB, - 12258: 0x7C92, - 12259: 0x6CA5, - 12260: 0x96B6, - 12261: 0x529B, - 12262: 0x7483, - 12263: 0x54E9, - 12264: 0x4FE9, - 12265: 0x8054, - 12266: 0x83B2, - 12267: 0x8FDE, - 12268: 0x9570, - 12269: 0x5EC9, - 12270: 0x601C, - 12271: 0x6D9F, - 12272: 0x5E18, - 12273: 0x655B, - 12274: 0x8138, - 12275: 0x94FE, - 12276: 0x604B, - 12277: 0x70BC, - 12278: 0x7EC3, - 12279: 0x7CAE, - 12280: 0x51C9, - 12281: 0x6881, - 12282: 0x7CB1, - 12283: 0x826F, - 12284: 0x4E24, - 12285: 0x8F86, - 12286: 0x91CF, - 12287: 0x667E, - 12288: 0x4EAE, - 12289: 0x8C05, - 12290: 0x64A9, - 12291: 0x804A, - 12292: 0x50DA, - 12293: 0x7597, - 12294: 0x71CE, - 12295: 0x5BE5, - 12296: 0x8FBD, - 12297: 0x6F66, - 12298: 0x4E86, - 12299: 0x6482, - 12300: 0x9563, - 12301: 0x5ED6, - 12302: 0x6599, - 12303: 0x5217, - 12304: 0x88C2, - 12305: 0x70C8, - 12306: 0x52A3, - 12307: 0x730E, - 12308: 0x7433, - 12309: 0x6797, - 12310: 0x78F7, - 12311: 0x9716, - 12312: 0x4E34, - 12313: 0x90BB, - 12314: 0x9CDE, - 12315: 0x6DCB, - 12316: 0x51DB, - 12317: 0x8D41, - 12318: 0x541D, - 12319: 0x62CE, - 12320: 0x73B2, - 12321: 0x83F1, - 12322: 0x96F6, - 12323: 0x9F84, - 12324: 0x94C3, - 12325: 0x4F36, - 12326: 0x7F9A, - 12327: 0x51CC, - 12328: 0x7075, - 12329: 0x9675, - 12330: 0x5CAD, - 12331: 0x9886, - 12332: 0x53E6, - 12333: 0x4EE4, - 12334: 0x6E9C, - 12335: 0x7409, - 12336: 0x69B4, - 12337: 0x786B, - 12338: 0x998F, - 12339: 0x7559, - 12340: 0x5218, - 12341: 0x7624, - 12342: 0x6D41, - 12343: 0x67F3, - 12344: 0x516D, - 12345: 0x9F99, - 12346: 0x804B, - 12347: 0x5499, - 12348: 0x7B3C, - 12349: 0x7ABF, - 12350: 0x7FE4, - 12351: 0x7FE7, - 12352: 0x7FE8, - 12353: 0x7FEA, - 12354: 0x7FEB, - 12355: 0x7FEC, - 12356: 0x7FED, - 12357: 0x7FEF, - 12358: 0x7FF2, - 12359: 0x7FF4, - 12360: 0x7FF5, - 12361: 0x7FF6, - 12362: 0x7FF7, - 12363: 0x7FF8, - 12364: 0x7FF9, - 12365: 0x7FFA, - 12366: 0x7FFD, - 12367: 0x7FFE, - 12368: 0x7FFF, - 12369: 0x8002, - 12370: 0x8007, - 12371: 0x8008, - 12372: 0x8009, - 12373: 0x800A, - 12374: 0x800E, - 12375: 0x800F, - 12376: 0x8011, - 12377: 0x8013, - 12378: 0x801A, - 12379: 0x801B, - 12380: 0x801D, - 12381: 0x801E, - 12382: 0x801F, - 12383: 0x8021, - 12384: 0x8023, - 12385: 0x8024, - 12386: 0x802B, - 12387: 0x802C, - 12388: 0x802D, - 12389: 0x802E, - 12390: 0x802F, - 12391: 0x8030, - 12392: 0x8032, - 12393: 0x8034, - 12394: 0x8039, - 12395: 0x803A, - 12396: 0x803C, - 12397: 0x803E, - 12398: 0x8040, - 12399: 0x8041, - 12400: 0x8044, - 12401: 0x8045, - 12402: 0x8047, - 12403: 0x8048, - 12404: 0x8049, - 12405: 0x804E, - 12406: 0x804F, - 12407: 0x8050, - 12408: 0x8051, - 12409: 0x8053, - 12410: 0x8055, - 12411: 0x8056, - 12412: 0x8057, - 12413: 0x8059, - 12414: 0x805B, - 12415: 0x805C, - 12416: 0x805D, - 12417: 0x805E, - 12418: 0x805F, - 12419: 0x8060, - 12420: 0x8061, - 12421: 0x8062, - 12422: 0x8063, - 12423: 0x8064, - 12424: 0x8065, - 12425: 0x8066, - 12426: 0x8067, - 12427: 0x8068, - 12428: 0x806B, - 12429: 0x806C, - 12430: 0x806D, - 12431: 0x806E, - 12432: 0x806F, - 12433: 0x8070, - 12434: 0x8072, - 12435: 0x8073, - 12436: 0x8074, - 12437: 0x8075, - 12438: 0x8076, - 12439: 0x8077, - 12440: 0x8078, - 12441: 0x8079, - 12442: 0x807A, - 12443: 0x807B, - 12444: 0x807C, - 12445: 0x807D, - 12446: 0x9686, - 12447: 0x5784, - 12448: 0x62E2, - 12449: 0x9647, - 12450: 0x697C, - 12451: 0x5A04, - 12452: 0x6402, - 12453: 0x7BD3, - 12454: 0x6F0F, - 12455: 0x964B, - 12456: 0x82A6, - 12457: 0x5362, - 12458: 0x9885, - 12459: 0x5E90, - 12460: 0x7089, - 12461: 0x63B3, - 12462: 0x5364, - 12463: 0x864F, - 12464: 0x9C81, - 12465: 0x9E93, - 12466: 0x788C, - 12467: 0x9732, - 12468: 0x8DEF, - 12469: 0x8D42, - 12470: 0x9E7F, - 12471: 0x6F5E, - 12472: 0x7984, - 12473: 0x5F55, - 12474: 0x9646, - 12475: 0x622E, - 12476: 0x9A74, - 12477: 0x5415, - 12478: 0x94DD, - 12479: 0x4FA3, - 12480: 0x65C5, - 12481: 0x5C65, - 12482: 0x5C61, - 12483: 0x7F15, - 12484: 0x8651, - 12485: 0x6C2F, - 12486: 0x5F8B, - 12487: 0x7387, - 12488: 0x6EE4, - 12489: 0x7EFF, - 12490: 0x5CE6, - 12491: 0x631B, - 12492: 0x5B6A, - 12493: 0x6EE6, - 12494: 0x5375, - 12495: 0x4E71, - 12496: 0x63A0, - 12497: 0x7565, - 12498: 0x62A1, - 12499: 0x8F6E, - 12500: 0x4F26, - 12501: 0x4ED1, - 12502: 0x6CA6, - 12503: 0x7EB6, - 12504: 0x8BBA, - 12505: 0x841D, - 12506: 0x87BA, - 12507: 0x7F57, - 12508: 0x903B, - 12509: 0x9523, - 12510: 0x7BA9, - 12511: 0x9AA1, - 12512: 0x88F8, - 12513: 0x843D, - 12514: 0x6D1B, - 12515: 0x9A86, - 12516: 0x7EDC, - 12517: 0x5988, - 12518: 0x9EBB, - 12519: 0x739B, - 12520: 0x7801, - 12521: 0x8682, - 12522: 0x9A6C, - 12523: 0x9A82, - 12524: 0x561B, - 12525: 0x5417, - 12526: 0x57CB, - 12527: 0x4E70, - 12528: 0x9EA6, - 12529: 0x5356, - 12530: 0x8FC8, - 12531: 0x8109, - 12532: 0x7792, - 12533: 0x9992, - 12534: 0x86EE, - 12535: 0x6EE1, - 12536: 0x8513, - 12537: 0x66FC, - 12538: 0x6162, - 12539: 0x6F2B, - 12540: 0x807E, - 12541: 0x8081, - 12542: 0x8082, - 12543: 0x8085, - 12544: 0x8088, - 12545: 0x808A, - 12546: 0x808D, - 12547: 0x808E, - 12548: 0x808F, - 12549: 0x8090, - 12550: 0x8091, - 12551: 0x8092, - 12552: 0x8094, - 12553: 0x8095, - 12554: 0x8097, - 12555: 0x8099, - 12556: 0x809E, - 12557: 0x80A3, - 12558: 0x80A6, - 12559: 0x80A7, - 12560: 0x80A8, - 12561: 0x80AC, - 12562: 0x80B0, - 12563: 0x80B3, - 12564: 0x80B5, - 12565: 0x80B6, - 12566: 0x80B8, - 12567: 0x80B9, - 12568: 0x80BB, - 12569: 0x80C5, - 12570: 0x80C7, - 12571: 0x80C8, - 12572: 0x80C9, - 12573: 0x80CA, - 12574: 0x80CB, - 12575: 0x80CF, - 12576: 0x80D0, - 12577: 0x80D1, - 12578: 0x80D2, - 12579: 0x80D3, - 12580: 0x80D4, - 12581: 0x80D5, - 12582: 0x80D8, - 12583: 0x80DF, - 12584: 0x80E0, - 12585: 0x80E2, - 12586: 0x80E3, - 12587: 0x80E6, - 12588: 0x80EE, - 12589: 0x80F5, - 12590: 0x80F7, - 12591: 0x80F9, - 12592: 0x80FB, - 12593: 0x80FE, - 12594: 0x80FF, - 12595: 0x8100, - 12596: 0x8101, - 12597: 0x8103, - 12598: 0x8104, - 12599: 0x8105, - 12600: 0x8107, - 12601: 0x8108, - 12602: 0x810B, - 12603: 0x810C, - 12604: 0x8115, - 12605: 0x8117, - 12606: 0x8119, - 12607: 0x811B, - 12608: 0x811C, - 12609: 0x811D, - 12610: 0x811F, - 12611: 0x8120, - 12612: 0x8121, - 12613: 0x8122, - 12614: 0x8123, - 12615: 0x8124, - 12616: 0x8125, - 12617: 0x8126, - 12618: 0x8127, - 12619: 0x8128, - 12620: 0x8129, - 12621: 0x812A, - 12622: 0x812B, - 12623: 0x812D, - 12624: 0x812E, - 12625: 0x8130, - 12626: 0x8133, - 12627: 0x8134, - 12628: 0x8135, - 12629: 0x8137, - 12630: 0x8139, - 12631: 0x813A, - 12632: 0x813B, - 12633: 0x813C, - 12634: 0x813D, - 12635: 0x813F, - 12636: 0x8C29, - 12637: 0x8292, - 12638: 0x832B, - 12639: 0x76F2, - 12640: 0x6C13, - 12641: 0x5FD9, - 12642: 0x83BD, - 12643: 0x732B, - 12644: 0x8305, - 12645: 0x951A, - 12646: 0x6BDB, - 12647: 0x77DB, - 12648: 0x94C6, - 12649: 0x536F, - 12650: 0x8302, - 12651: 0x5192, - 12652: 0x5E3D, - 12653: 0x8C8C, - 12654: 0x8D38, - 12655: 0x4E48, - 12656: 0x73AB, - 12657: 0x679A, - 12658: 0x6885, - 12659: 0x9176, - 12660: 0x9709, - 12661: 0x7164, - 12662: 0x6CA1, - 12663: 0x7709, - 12664: 0x5A92, - 12665: 0x9541, - 12666: 0x6BCF, - 12667: 0x7F8E, - 12668: 0x6627, - 12669: 0x5BD0, - 12670: 0x59B9, - 12671: 0x5A9A, - 12672: 0x95E8, - 12673: 0x95F7, - 12674: 0x4EEC, - 12675: 0x840C, - 12676: 0x8499, - 12677: 0x6AAC, - 12678: 0x76DF, - 12679: 0x9530, - 12680: 0x731B, - 12681: 0x68A6, - 12682: 0x5B5F, - 12683: 0x772F, - 12684: 0x919A, - 12685: 0x9761, - 12686: 0x7CDC, - 12687: 0x8FF7, - 12688: 0x8C1C, - 12689: 0x5F25, - 12690: 0x7C73, - 12691: 0x79D8, - 12692: 0x89C5, - 12693: 0x6CCC, - 12694: 0x871C, - 12695: 0x5BC6, - 12696: 0x5E42, - 12697: 0x68C9, - 12698: 0x7720, - 12699: 0x7EF5, - 12700: 0x5195, - 12701: 0x514D, - 12702: 0x52C9, - 12703: 0x5A29, - 12704: 0x7F05, - 12705: 0x9762, - 12706: 0x82D7, - 12707: 0x63CF, - 12708: 0x7784, - 12709: 0x85D0, - 12710: 0x79D2, - 12711: 0x6E3A, - 12712: 0x5E99, - 12713: 0x5999, - 12714: 0x8511, - 12715: 0x706D, - 12716: 0x6C11, - 12717: 0x62BF, - 12718: 0x76BF, - 12719: 0x654F, - 12720: 0x60AF, - 12721: 0x95FD, - 12722: 0x660E, - 12723: 0x879F, - 12724: 0x9E23, - 12725: 0x94ED, - 12726: 0x540D, - 12727: 0x547D, - 12728: 0x8C2C, - 12729: 0x6478, - 12730: 0x8140, - 12731: 0x8141, - 12732: 0x8142, - 12733: 0x8143, - 12734: 0x8144, - 12735: 0x8145, - 12736: 0x8147, - 12737: 0x8149, - 12738: 0x814D, - 12739: 0x814E, - 12740: 0x814F, - 12741: 0x8152, - 12742: 0x8156, - 12743: 0x8157, - 12744: 0x8158, - 12745: 0x815B, - 12746: 0x815C, - 12747: 0x815D, - 12748: 0x815E, - 12749: 0x815F, - 12750: 0x8161, - 12751: 0x8162, - 12752: 0x8163, - 12753: 0x8164, - 12754: 0x8166, - 12755: 0x8168, - 12756: 0x816A, - 12757: 0x816B, - 12758: 0x816C, - 12759: 0x816F, - 12760: 0x8172, - 12761: 0x8173, - 12762: 0x8175, - 12763: 0x8176, - 12764: 0x8177, - 12765: 0x8178, - 12766: 0x8181, - 12767: 0x8183, - 12768: 0x8184, - 12769: 0x8185, - 12770: 0x8186, - 12771: 0x8187, - 12772: 0x8189, - 12773: 0x818B, - 12774: 0x818C, - 12775: 0x818D, - 12776: 0x818E, - 12777: 0x8190, - 12778: 0x8192, - 12779: 0x8193, - 12780: 0x8194, - 12781: 0x8195, - 12782: 0x8196, - 12783: 0x8197, - 12784: 0x8199, - 12785: 0x819A, - 12786: 0x819E, - 12787: 0x819F, - 12788: 0x81A0, - 12789: 0x81A1, - 12790: 0x81A2, - 12791: 0x81A4, - 12792: 0x81A5, - 12793: 0x81A7, - 12794: 0x81A9, - 12795: 0x81AB, - 12796: 0x81AC, - 12797: 0x81AD, - 12798: 0x81AE, - 12799: 0x81AF, - 12800: 0x81B0, - 12801: 0x81B1, - 12802: 0x81B2, - 12803: 0x81B4, - 12804: 0x81B5, - 12805: 0x81B6, - 12806: 0x81B7, - 12807: 0x81B8, - 12808: 0x81B9, - 12809: 0x81BC, - 12810: 0x81BD, - 12811: 0x81BE, - 12812: 0x81BF, - 12813: 0x81C4, - 12814: 0x81C5, - 12815: 0x81C7, - 12816: 0x81C8, - 12817: 0x81C9, - 12818: 0x81CB, - 12819: 0x81CD, - 12820: 0x81CE, - 12821: 0x81CF, - 12822: 0x81D0, - 12823: 0x81D1, - 12824: 0x81D2, - 12825: 0x81D3, - 12826: 0x6479, - 12827: 0x8611, - 12828: 0x6A21, - 12829: 0x819C, - 12830: 0x78E8, - 12831: 0x6469, - 12832: 0x9B54, - 12833: 0x62B9, - 12834: 0x672B, - 12835: 0x83AB, - 12836: 0x58A8, - 12837: 0x9ED8, - 12838: 0x6CAB, - 12839: 0x6F20, - 12840: 0x5BDE, - 12841: 0x964C, - 12842: 0x8C0B, - 12843: 0x725F, - 12844: 0x67D0, - 12845: 0x62C7, - 12846: 0x7261, - 12847: 0x4EA9, - 12848: 0x59C6, - 12849: 0x6BCD, - 12850: 0x5893, - 12851: 0x66AE, - 12852: 0x5E55, - 12853: 0x52DF, - 12854: 0x6155, - 12855: 0x6728, - 12856: 0x76EE, - 12857: 0x7766, - 12858: 0x7267, - 12859: 0x7A46, - 12860: 0x62FF, - 12861: 0x54EA, - 12862: 0x5450, - 12863: 0x94A0, - 12864: 0x90A3, - 12865: 0x5A1C, - 12866: 0x7EB3, - 12867: 0x6C16, - 12868: 0x4E43, - 12869: 0x5976, - 12870: 0x8010, - 12871: 0x5948, - 12872: 0x5357, - 12873: 0x7537, - 12874: 0x96BE, - 12875: 0x56CA, - 12876: 0x6320, - 12877: 0x8111, - 12878: 0x607C, - 12879: 0x95F9, - 12880: 0x6DD6, - 12881: 0x5462, - 12882: 0x9981, - 12883: 0x5185, - 12884: 0x5AE9, - 12885: 0x80FD, - 12886: 0x59AE, - 12887: 0x9713, - 12888: 0x502A, - 12889: 0x6CE5, - 12890: 0x5C3C, - 12891: 0x62DF, - 12892: 0x4F60, - 12893: 0x533F, - 12894: 0x817B, - 12895: 0x9006, - 12896: 0x6EBA, - 12897: 0x852B, - 12898: 0x62C8, - 12899: 0x5E74, - 12900: 0x78BE, - 12901: 0x64B5, - 12902: 0x637B, - 12903: 0x5FF5, - 12904: 0x5A18, - 12905: 0x917F, - 12906: 0x9E1F, - 12907: 0x5C3F, - 12908: 0x634F, - 12909: 0x8042, - 12910: 0x5B7D, - 12911: 0x556E, - 12912: 0x954A, - 12913: 0x954D, - 12914: 0x6D85, - 12915: 0x60A8, - 12916: 0x67E0, - 12917: 0x72DE, - 12918: 0x51DD, - 12919: 0x5B81, - 12920: 0x81D4, - 12921: 0x81D5, - 12922: 0x81D6, - 12923: 0x81D7, - 12924: 0x81D8, - 12925: 0x81D9, - 12926: 0x81DA, - 12927: 0x81DB, - 12928: 0x81DC, - 12929: 0x81DD, - 12930: 0x81DE, - 12931: 0x81DF, - 12932: 0x81E0, - 12933: 0x81E1, - 12934: 0x81E2, - 12935: 0x81E4, - 12936: 0x81E5, - 12937: 0x81E6, - 12938: 0x81E8, - 12939: 0x81E9, - 12940: 0x81EB, - 12941: 0x81EE, - 12942: 0x81EF, - 12943: 0x81F0, - 12944: 0x81F1, - 12945: 0x81F2, - 12946: 0x81F5, - 12947: 0x81F6, - 12948: 0x81F7, - 12949: 0x81F8, - 12950: 0x81F9, - 12951: 0x81FA, - 12952: 0x81FD, - 12953: 0x81FF, - 12954: 0x8203, - 12955: 0x8207, - 12956: 0x8208, - 12957: 0x8209, - 12958: 0x820A, - 12959: 0x820B, - 12960: 0x820E, - 12961: 0x820F, - 12962: 0x8211, - 12963: 0x8213, - 12964: 0x8215, - 12965: 0x8216, - 12966: 0x8217, - 12967: 0x8218, - 12968: 0x8219, - 12969: 0x821A, - 12970: 0x821D, - 12971: 0x8220, - 12972: 0x8224, - 12973: 0x8225, - 12974: 0x8226, - 12975: 0x8227, - 12976: 0x8229, - 12977: 0x822E, - 12978: 0x8232, - 12979: 0x823A, - 12980: 0x823C, - 12981: 0x823D, - 12982: 0x823F, - 12983: 0x8240, - 12984: 0x8241, - 12985: 0x8242, - 12986: 0x8243, - 12987: 0x8245, - 12988: 0x8246, - 12989: 0x8248, - 12990: 0x824A, - 12991: 0x824C, - 12992: 0x824D, - 12993: 0x824E, - 12994: 0x8250, - 12995: 0x8251, - 12996: 0x8252, - 12997: 0x8253, - 12998: 0x8254, - 12999: 0x8255, - 13000: 0x8256, - 13001: 0x8257, - 13002: 0x8259, - 13003: 0x825B, - 13004: 0x825C, - 13005: 0x825D, - 13006: 0x825E, - 13007: 0x8260, - 13008: 0x8261, - 13009: 0x8262, - 13010: 0x8263, - 13011: 0x8264, - 13012: 0x8265, - 13013: 0x8266, - 13014: 0x8267, - 13015: 0x8269, - 13016: 0x62E7, - 13017: 0x6CDE, - 13018: 0x725B, - 13019: 0x626D, - 13020: 0x94AE, - 13021: 0x7EBD, - 13022: 0x8113, - 13023: 0x6D53, - 13024: 0x519C, - 13025: 0x5F04, - 13026: 0x5974, - 13027: 0x52AA, - 13028: 0x6012, - 13029: 0x5973, - 13030: 0x6696, - 13031: 0x8650, - 13032: 0x759F, - 13033: 0x632A, - 13034: 0x61E6, - 13035: 0x7CEF, - 13036: 0x8BFA, - 13037: 0x54E6, - 13038: 0x6B27, - 13039: 0x9E25, - 13040: 0x6BB4, - 13041: 0x85D5, - 13042: 0x5455, - 13043: 0x5076, - 13044: 0x6CA4, - 13045: 0x556A, - 13046: 0x8DB4, - 13047: 0x722C, - 13048: 0x5E15, - 13049: 0x6015, - 13050: 0x7436, - 13051: 0x62CD, - 13052: 0x6392, - 13053: 0x724C, - 13054: 0x5F98, - 13055: 0x6E43, - 13056: 0x6D3E, - 13057: 0x6500, - 13058: 0x6F58, - 13059: 0x76D8, - 13060: 0x78D0, - 13061: 0x76FC, - 13062: 0x7554, - 13063: 0x5224, - 13064: 0x53DB, - 13065: 0x4E53, - 13066: 0x5E9E, - 13067: 0x65C1, - 13068: 0x802A, - 13069: 0x80D6, - 13070: 0x629B, - 13071: 0x5486, - 13072: 0x5228, - 13073: 0x70AE, - 13074: 0x888D, - 13075: 0x8DD1, - 13076: 0x6CE1, - 13077: 0x5478, - 13078: 0x80DA, - 13079: 0x57F9, - 13080: 0x88F4, - 13081: 0x8D54, - 13082: 0x966A, - 13083: 0x914D, - 13084: 0x4F69, - 13085: 0x6C9B, - 13086: 0x55B7, - 13087: 0x76C6, - 13088: 0x7830, - 13089: 0x62A8, - 13090: 0x70F9, - 13091: 0x6F8E, - 13092: 0x5F6D, - 13093: 0x84EC, - 13094: 0x68DA, - 13095: 0x787C, - 13096: 0x7BF7, - 13097: 0x81A8, - 13098: 0x670B, - 13099: 0x9E4F, - 13100: 0x6367, - 13101: 0x78B0, - 13102: 0x576F, - 13103: 0x7812, - 13104: 0x9739, - 13105: 0x6279, - 13106: 0x62AB, - 13107: 0x5288, - 13108: 0x7435, - 13109: 0x6BD7, - 13110: 0x826A, - 13111: 0x826B, - 13112: 0x826C, - 13113: 0x826D, - 13114: 0x8271, - 13115: 0x8275, - 13116: 0x8276, - 13117: 0x8277, - 13118: 0x8278, - 13119: 0x827B, - 13120: 0x827C, - 13121: 0x8280, - 13122: 0x8281, - 13123: 0x8283, - 13124: 0x8285, - 13125: 0x8286, - 13126: 0x8287, - 13127: 0x8289, - 13128: 0x828C, - 13129: 0x8290, - 13130: 0x8293, - 13131: 0x8294, - 13132: 0x8295, - 13133: 0x8296, - 13134: 0x829A, - 13135: 0x829B, - 13136: 0x829E, - 13137: 0x82A0, - 13138: 0x82A2, - 13139: 0x82A3, - 13140: 0x82A7, - 13141: 0x82B2, - 13142: 0x82B5, - 13143: 0x82B6, - 13144: 0x82BA, - 13145: 0x82BB, - 13146: 0x82BC, - 13147: 0x82BF, - 13148: 0x82C0, - 13149: 0x82C2, - 13150: 0x82C3, - 13151: 0x82C5, - 13152: 0x82C6, - 13153: 0x82C9, - 13154: 0x82D0, - 13155: 0x82D6, - 13156: 0x82D9, - 13157: 0x82DA, - 13158: 0x82DD, - 13159: 0x82E2, - 13160: 0x82E7, - 13161: 0x82E8, - 13162: 0x82E9, - 13163: 0x82EA, - 13164: 0x82EC, - 13165: 0x82ED, - 13166: 0x82EE, - 13167: 0x82F0, - 13168: 0x82F2, - 13169: 0x82F3, - 13170: 0x82F5, - 13171: 0x82F6, - 13172: 0x82F8, - 13173: 0x82FA, - 13174: 0x82FC, - 13175: 0x82FD, - 13176: 0x82FE, - 13177: 0x82FF, - 13178: 0x8300, - 13179: 0x830A, - 13180: 0x830B, - 13181: 0x830D, - 13182: 0x8310, - 13183: 0x8312, - 13184: 0x8313, - 13185: 0x8316, - 13186: 0x8318, - 13187: 0x8319, - 13188: 0x831D, - 13189: 0x831E, - 13190: 0x831F, - 13191: 0x8320, - 13192: 0x8321, - 13193: 0x8322, - 13194: 0x8323, - 13195: 0x8324, - 13196: 0x8325, - 13197: 0x8326, - 13198: 0x8329, - 13199: 0x832A, - 13200: 0x832E, - 13201: 0x8330, - 13202: 0x8332, - 13203: 0x8337, - 13204: 0x833B, - 13205: 0x833D, - 13206: 0x5564, - 13207: 0x813E, - 13208: 0x75B2, - 13209: 0x76AE, - 13210: 0x5339, - 13211: 0x75DE, - 13212: 0x50FB, - 13213: 0x5C41, - 13214: 0x8B6C, - 13215: 0x7BC7, - 13216: 0x504F, - 13217: 0x7247, - 13218: 0x9A97, - 13219: 0x98D8, - 13220: 0x6F02, - 13221: 0x74E2, - 13222: 0x7968, - 13223: 0x6487, - 13224: 0x77A5, - 13225: 0x62FC, - 13226: 0x9891, - 13227: 0x8D2B, - 13228: 0x54C1, - 13229: 0x8058, - 13230: 0x4E52, - 13231: 0x576A, - 13232: 0x82F9, - 13233: 0x840D, - 13234: 0x5E73, - 13235: 0x51ED, - 13236: 0x74F6, - 13237: 0x8BC4, - 13238: 0x5C4F, - 13239: 0x5761, - 13240: 0x6CFC, - 13241: 0x9887, - 13242: 0x5A46, - 13243: 0x7834, - 13244: 0x9B44, - 13245: 0x8FEB, - 13246: 0x7C95, - 13247: 0x5256, - 13248: 0x6251, - 13249: 0x94FA, - 13250: 0x4EC6, - 13251: 0x8386, - 13252: 0x8461, - 13253: 0x83E9, - 13254: 0x84B2, - 13255: 0x57D4, - 13256: 0x6734, - 13257: 0x5703, - 13258: 0x666E, - 13259: 0x6D66, - 13260: 0x8C31, - 13261: 0x66DD, - 13262: 0x7011, - 13263: 0x671F, - 13264: 0x6B3A, - 13265: 0x6816, - 13266: 0x621A, - 13267: 0x59BB, - 13268: 0x4E03, - 13269: 0x51C4, - 13270: 0x6F06, - 13271: 0x67D2, - 13272: 0x6C8F, - 13273: 0x5176, - 13274: 0x68CB, - 13275: 0x5947, - 13276: 0x6B67, - 13277: 0x7566, - 13278: 0x5D0E, - 13279: 0x8110, - 13280: 0x9F50, - 13281: 0x65D7, - 13282: 0x7948, - 13283: 0x7941, - 13284: 0x9A91, - 13285: 0x8D77, - 13286: 0x5C82, - 13287: 0x4E5E, - 13288: 0x4F01, - 13289: 0x542F, - 13290: 0x5951, - 13291: 0x780C, - 13292: 0x5668, - 13293: 0x6C14, - 13294: 0x8FC4, - 13295: 0x5F03, - 13296: 0x6C7D, - 13297: 0x6CE3, - 13298: 0x8BAB, - 13299: 0x6390, - 13300: 0x833E, - 13301: 0x833F, - 13302: 0x8341, - 13303: 0x8342, - 13304: 0x8344, - 13305: 0x8345, - 13306: 0x8348, - 13307: 0x834A, - 13308: 0x834B, - 13309: 0x834C, - 13310: 0x834D, - 13311: 0x834E, - 13312: 0x8353, - 13313: 0x8355, - 13314: 0x8356, - 13315: 0x8357, - 13316: 0x8358, - 13317: 0x8359, - 13318: 0x835D, - 13319: 0x8362, - 13320: 0x8370, - 13321: 0x8371, - 13322: 0x8372, - 13323: 0x8373, - 13324: 0x8374, - 13325: 0x8375, - 13326: 0x8376, - 13327: 0x8379, - 13328: 0x837A, - 13329: 0x837E, - 13330: 0x837F, - 13331: 0x8380, - 13332: 0x8381, - 13333: 0x8382, - 13334: 0x8383, - 13335: 0x8384, - 13336: 0x8387, - 13337: 0x8388, - 13338: 0x838A, - 13339: 0x838B, - 13340: 0x838C, - 13341: 0x838D, - 13342: 0x838F, - 13343: 0x8390, - 13344: 0x8391, - 13345: 0x8394, - 13346: 0x8395, - 13347: 0x8396, - 13348: 0x8397, - 13349: 0x8399, - 13350: 0x839A, - 13351: 0x839D, - 13352: 0x839F, - 13353: 0x83A1, - 13354: 0x83A2, - 13355: 0x83A3, - 13356: 0x83A4, - 13357: 0x83A5, - 13358: 0x83A6, - 13359: 0x83A7, - 13360: 0x83AC, - 13361: 0x83AD, - 13362: 0x83AE, - 13363: 0x83AF, - 13364: 0x83B5, - 13365: 0x83BB, - 13366: 0x83BE, - 13367: 0x83BF, - 13368: 0x83C2, - 13369: 0x83C3, - 13370: 0x83C4, - 13371: 0x83C6, - 13372: 0x83C8, - 13373: 0x83C9, - 13374: 0x83CB, - 13375: 0x83CD, - 13376: 0x83CE, - 13377: 0x83D0, - 13378: 0x83D1, - 13379: 0x83D2, - 13380: 0x83D3, - 13381: 0x83D5, - 13382: 0x83D7, - 13383: 0x83D9, - 13384: 0x83DA, - 13385: 0x83DB, - 13386: 0x83DE, - 13387: 0x83E2, - 13388: 0x83E3, - 13389: 0x83E4, - 13390: 0x83E6, - 13391: 0x83E7, - 13392: 0x83E8, - 13393: 0x83EB, - 13394: 0x83EC, - 13395: 0x83ED, - 13396: 0x6070, - 13397: 0x6D3D, - 13398: 0x7275, - 13399: 0x6266, - 13400: 0x948E, - 13401: 0x94C5, - 13402: 0x5343, - 13403: 0x8FC1, - 13404: 0x7B7E, - 13405: 0x4EDF, - 13406: 0x8C26, - 13407: 0x4E7E, - 13408: 0x9ED4, - 13409: 0x94B1, - 13410: 0x94B3, - 13411: 0x524D, - 13412: 0x6F5C, - 13413: 0x9063, - 13414: 0x6D45, - 13415: 0x8C34, - 13416: 0x5811, - 13417: 0x5D4C, - 13418: 0x6B20, - 13419: 0x6B49, - 13420: 0x67AA, - 13421: 0x545B, - 13422: 0x8154, - 13423: 0x7F8C, - 13424: 0x5899, - 13425: 0x8537, - 13426: 0x5F3A, - 13427: 0x62A2, - 13428: 0x6A47, - 13429: 0x9539, - 13430: 0x6572, - 13431: 0x6084, - 13432: 0x6865, - 13433: 0x77A7, - 13434: 0x4E54, - 13435: 0x4FA8, - 13436: 0x5DE7, - 13437: 0x9798, - 13438: 0x64AC, - 13439: 0x7FD8, - 13440: 0x5CED, - 13441: 0x4FCF, - 13442: 0x7A8D, - 13443: 0x5207, - 13444: 0x8304, - 13445: 0x4E14, - 13446: 0x602F, - 13447: 0x7A83, - 13448: 0x94A6, - 13449: 0x4FB5, - 13450: 0x4EB2, - 13451: 0x79E6, - 13452: 0x7434, - 13453: 0x52E4, - 13454: 0x82B9, - 13455: 0x64D2, - 13456: 0x79BD, - 13457: 0x5BDD, - 13458: 0x6C81, - 13459: 0x9752, - 13460: 0x8F7B, - 13461: 0x6C22, - 13462: 0x503E, - 13463: 0x537F, - 13464: 0x6E05, - 13465: 0x64CE, - 13466: 0x6674, - 13467: 0x6C30, - 13468: 0x60C5, - 13469: 0x9877, - 13470: 0x8BF7, - 13471: 0x5E86, - 13472: 0x743C, - 13473: 0x7A77, - 13474: 0x79CB, - 13475: 0x4E18, - 13476: 0x90B1, - 13477: 0x7403, - 13478: 0x6C42, - 13479: 0x56DA, - 13480: 0x914B, - 13481: 0x6CC5, - 13482: 0x8D8B, - 13483: 0x533A, - 13484: 0x86C6, - 13485: 0x66F2, - 13486: 0x8EAF, - 13487: 0x5C48, - 13488: 0x9A71, - 13489: 0x6E20, - 13490: 0x83EE, - 13491: 0x83EF, - 13492: 0x83F3, - 13493: 0x83F4, - 13494: 0x83F5, - 13495: 0x83F6, - 13496: 0x83F7, - 13497: 0x83FA, - 13498: 0x83FB, - 13499: 0x83FC, - 13500: 0x83FE, - 13501: 0x83FF, - 13502: 0x8400, - 13503: 0x8402, - 13504: 0x8405, - 13505: 0x8407, - 13506: 0x8408, - 13507: 0x8409, - 13508: 0x840A, - 13509: 0x8410, - 13510: 0x8412, - 13511: 0x8413, - 13512: 0x8414, - 13513: 0x8415, - 13514: 0x8416, - 13515: 0x8417, - 13516: 0x8419, - 13517: 0x841A, - 13518: 0x841B, - 13519: 0x841E, - 13520: 0x841F, - 13521: 0x8420, - 13522: 0x8421, - 13523: 0x8422, - 13524: 0x8423, - 13525: 0x8429, - 13526: 0x842A, - 13527: 0x842B, - 13528: 0x842C, - 13529: 0x842D, - 13530: 0x842E, - 13531: 0x842F, - 13532: 0x8430, - 13533: 0x8432, - 13534: 0x8433, - 13535: 0x8434, - 13536: 0x8435, - 13537: 0x8436, - 13538: 0x8437, - 13539: 0x8439, - 13540: 0x843A, - 13541: 0x843B, - 13542: 0x843E, - 13543: 0x843F, - 13544: 0x8440, - 13545: 0x8441, - 13546: 0x8442, - 13547: 0x8443, - 13548: 0x8444, - 13549: 0x8445, - 13550: 0x8447, - 13551: 0x8448, - 13552: 0x8449, - 13553: 0x844A, - 13554: 0x844B, - 13555: 0x844C, - 13556: 0x844D, - 13557: 0x844E, - 13558: 0x844F, - 13559: 0x8450, - 13560: 0x8452, - 13561: 0x8453, - 13562: 0x8454, - 13563: 0x8455, - 13564: 0x8456, - 13565: 0x8458, - 13566: 0x845D, - 13567: 0x845E, - 13568: 0x845F, - 13569: 0x8460, - 13570: 0x8462, - 13571: 0x8464, - 13572: 0x8465, - 13573: 0x8466, - 13574: 0x8467, - 13575: 0x8468, - 13576: 0x846A, - 13577: 0x846E, - 13578: 0x846F, - 13579: 0x8470, - 13580: 0x8472, - 13581: 0x8474, - 13582: 0x8477, - 13583: 0x8479, - 13584: 0x847B, - 13585: 0x847C, - 13586: 0x53D6, - 13587: 0x5A36, - 13588: 0x9F8B, - 13589: 0x8DA3, - 13590: 0x53BB, - 13591: 0x5708, - 13592: 0x98A7, - 13593: 0x6743, - 13594: 0x919B, - 13595: 0x6CC9, - 13596: 0x5168, - 13597: 0x75CA, - 13598: 0x62F3, - 13599: 0x72AC, - 13600: 0x5238, - 13601: 0x529D, - 13602: 0x7F3A, - 13603: 0x7094, - 13604: 0x7638, - 13605: 0x5374, - 13606: 0x9E4A, - 13607: 0x69B7, - 13608: 0x786E, - 13609: 0x96C0, - 13610: 0x88D9, - 13611: 0x7FA4, - 13612: 0x7136, - 13613: 0x71C3, - 13614: 0x5189, - 13615: 0x67D3, - 13616: 0x74E4, - 13617: 0x58E4, - 13618: 0x6518, - 13619: 0x56B7, - 13620: 0x8BA9, - 13621: 0x9976, - 13622: 0x6270, - 13623: 0x7ED5, - 13624: 0x60F9, - 13625: 0x70ED, - 13626: 0x58EC, - 13627: 0x4EC1, - 13628: 0x4EBA, - 13629: 0x5FCD, - 13630: 0x97E7, - 13631: 0x4EFB, - 13632: 0x8BA4, - 13633: 0x5203, - 13634: 0x598A, - 13635: 0x7EAB, - 13636: 0x6254, - 13637: 0x4ECD, - 13638: 0x65E5, - 13639: 0x620E, - 13640: 0x8338, - 13641: 0x84C9, - 13642: 0x8363, - 13643: 0x878D, - 13644: 0x7194, - 13645: 0x6EB6, - 13646: 0x5BB9, - 13647: 0x7ED2, - 13648: 0x5197, - 13649: 0x63C9, - 13650: 0x67D4, - 13651: 0x8089, - 13652: 0x8339, - 13653: 0x8815, - 13654: 0x5112, - 13655: 0x5B7A, - 13656: 0x5982, - 13657: 0x8FB1, - 13658: 0x4E73, - 13659: 0x6C5D, - 13660: 0x5165, - 13661: 0x8925, - 13662: 0x8F6F, - 13663: 0x962E, - 13664: 0x854A, - 13665: 0x745E, - 13666: 0x9510, - 13667: 0x95F0, - 13668: 0x6DA6, - 13669: 0x82E5, - 13670: 0x5F31, - 13671: 0x6492, - 13672: 0x6D12, - 13673: 0x8428, - 13674: 0x816E, - 13675: 0x9CC3, - 13676: 0x585E, - 13677: 0x8D5B, - 13678: 0x4E09, - 13679: 0x53C1, - 13680: 0x847D, - 13681: 0x847E, - 13682: 0x847F, - 13683: 0x8480, - 13684: 0x8481, - 13685: 0x8483, - 13686: 0x8484, - 13687: 0x8485, - 13688: 0x8486, - 13689: 0x848A, - 13690: 0x848D, - 13691: 0x848F, - 13692: 0x8490, - 13693: 0x8491, - 13694: 0x8492, - 13695: 0x8493, - 13696: 0x8494, - 13697: 0x8495, - 13698: 0x8496, - 13699: 0x8498, - 13700: 0x849A, - 13701: 0x849B, - 13702: 0x849D, - 13703: 0x849E, - 13704: 0x849F, - 13705: 0x84A0, - 13706: 0x84A2, - 13707: 0x84A3, - 13708: 0x84A4, - 13709: 0x84A5, - 13710: 0x84A6, - 13711: 0x84A7, - 13712: 0x84A8, - 13713: 0x84A9, - 13714: 0x84AA, - 13715: 0x84AB, - 13716: 0x84AC, - 13717: 0x84AD, - 13718: 0x84AE, - 13719: 0x84B0, - 13720: 0x84B1, - 13721: 0x84B3, - 13722: 0x84B5, - 13723: 0x84B6, - 13724: 0x84B7, - 13725: 0x84BB, - 13726: 0x84BC, - 13727: 0x84BE, - 13728: 0x84C0, - 13729: 0x84C2, - 13730: 0x84C3, - 13731: 0x84C5, - 13732: 0x84C6, - 13733: 0x84C7, - 13734: 0x84C8, - 13735: 0x84CB, - 13736: 0x84CC, - 13737: 0x84CE, - 13738: 0x84CF, - 13739: 0x84D2, - 13740: 0x84D4, - 13741: 0x84D5, - 13742: 0x84D7, - 13743: 0x84D8, - 13744: 0x84D9, - 13745: 0x84DA, - 13746: 0x84DB, - 13747: 0x84DC, - 13748: 0x84DE, - 13749: 0x84E1, - 13750: 0x84E2, - 13751: 0x84E4, - 13752: 0x84E7, - 13753: 0x84E8, - 13754: 0x84E9, - 13755: 0x84EA, - 13756: 0x84EB, - 13757: 0x84ED, - 13758: 0x84EE, - 13759: 0x84EF, - 13760: 0x84F1, - 13761: 0x84F2, - 13762: 0x84F3, - 13763: 0x84F4, - 13764: 0x84F5, - 13765: 0x84F6, - 13766: 0x84F7, - 13767: 0x84F8, - 13768: 0x84F9, - 13769: 0x84FA, - 13770: 0x84FB, - 13771: 0x84FD, - 13772: 0x84FE, - 13773: 0x8500, - 13774: 0x8501, - 13775: 0x8502, - 13776: 0x4F1E, - 13777: 0x6563, - 13778: 0x6851, - 13779: 0x55D3, - 13780: 0x4E27, - 13781: 0x6414, - 13782: 0x9A9A, - 13783: 0x626B, - 13784: 0x5AC2, - 13785: 0x745F, - 13786: 0x8272, - 13787: 0x6DA9, - 13788: 0x68EE, - 13789: 0x50E7, - 13790: 0x838E, - 13791: 0x7802, - 13792: 0x6740, - 13793: 0x5239, - 13794: 0x6C99, - 13795: 0x7EB1, - 13796: 0x50BB, - 13797: 0x5565, - 13798: 0x715E, - 13799: 0x7B5B, - 13800: 0x6652, - 13801: 0x73CA, - 13802: 0x82EB, - 13803: 0x6749, - 13804: 0x5C71, - 13805: 0x5220, - 13806: 0x717D, - 13807: 0x886B, - 13808: 0x95EA, - 13809: 0x9655, - 13810: 0x64C5, - 13811: 0x8D61, - 13812: 0x81B3, - 13813: 0x5584, - 13814: 0x6C55, - 13815: 0x6247, - 13816: 0x7F2E, - 13817: 0x5892, - 13818: 0x4F24, - 13819: 0x5546, - 13820: 0x8D4F, - 13821: 0x664C, - 13822: 0x4E0A, - 13823: 0x5C1A, - 13824: 0x88F3, - 13825: 0x68A2, - 13826: 0x634E, - 13827: 0x7A0D, - 13828: 0x70E7, - 13829: 0x828D, - 13830: 0x52FA, - 13831: 0x97F6, - 13832: 0x5C11, - 13833: 0x54E8, - 13834: 0x90B5, - 13835: 0x7ECD, - 13836: 0x5962, - 13837: 0x8D4A, - 13838: 0x86C7, - 13839: 0x820C, - 13840: 0x820D, - 13841: 0x8D66, - 13842: 0x6444, - 13843: 0x5C04, - 13844: 0x6151, - 13845: 0x6D89, - 13846: 0x793E, - 13847: 0x8BBE, - 13848: 0x7837, - 13849: 0x7533, - 13850: 0x547B, - 13851: 0x4F38, - 13852: 0x8EAB, - 13853: 0x6DF1, - 13854: 0x5A20, - 13855: 0x7EC5, - 13856: 0x795E, - 13857: 0x6C88, - 13858: 0x5BA1, - 13859: 0x5A76, - 13860: 0x751A, - 13861: 0x80BE, - 13862: 0x614E, - 13863: 0x6E17, - 13864: 0x58F0, - 13865: 0x751F, - 13866: 0x7525, - 13867: 0x7272, - 13868: 0x5347, - 13869: 0x7EF3, - 13870: 0x8503, - 13871: 0x8504, - 13872: 0x8505, - 13873: 0x8506, - 13874: 0x8507, - 13875: 0x8508, - 13876: 0x8509, - 13877: 0x850A, - 13878: 0x850B, - 13879: 0x850D, - 13880: 0x850E, - 13881: 0x850F, - 13882: 0x8510, - 13883: 0x8512, - 13884: 0x8514, - 13885: 0x8515, - 13886: 0x8516, - 13887: 0x8518, - 13888: 0x8519, - 13889: 0x851B, - 13890: 0x851C, - 13891: 0x851D, - 13892: 0x851E, - 13893: 0x8520, - 13894: 0x8522, - 13895: 0x8523, - 13896: 0x8524, - 13897: 0x8525, - 13898: 0x8526, - 13899: 0x8527, - 13900: 0x8528, - 13901: 0x8529, - 13902: 0x852A, - 13903: 0x852D, - 13904: 0x852E, - 13905: 0x852F, - 13906: 0x8530, - 13907: 0x8531, - 13908: 0x8532, - 13909: 0x8533, - 13910: 0x8534, - 13911: 0x8535, - 13912: 0x8536, - 13913: 0x853E, - 13914: 0x853F, - 13915: 0x8540, - 13916: 0x8541, - 13917: 0x8542, - 13918: 0x8544, - 13919: 0x8545, - 13920: 0x8546, - 13921: 0x8547, - 13922: 0x854B, - 13923: 0x854C, - 13924: 0x854D, - 13925: 0x854E, - 13926: 0x854F, - 13927: 0x8550, - 13928: 0x8551, - 13929: 0x8552, - 13930: 0x8553, - 13931: 0x8554, - 13932: 0x8555, - 13933: 0x8557, - 13934: 0x8558, - 13935: 0x855A, - 13936: 0x855B, - 13937: 0x855C, - 13938: 0x855D, - 13939: 0x855F, - 13940: 0x8560, - 13941: 0x8561, - 13942: 0x8562, - 13943: 0x8563, - 13944: 0x8565, - 13945: 0x8566, - 13946: 0x8567, - 13947: 0x8569, - 13948: 0x856A, - 13949: 0x856B, - 13950: 0x856C, - 13951: 0x856D, - 13952: 0x856E, - 13953: 0x856F, - 13954: 0x8570, - 13955: 0x8571, - 13956: 0x8573, - 13957: 0x8575, - 13958: 0x8576, - 13959: 0x8577, - 13960: 0x8578, - 13961: 0x857C, - 13962: 0x857D, - 13963: 0x857F, - 13964: 0x8580, - 13965: 0x8581, - 13966: 0x7701, - 13967: 0x76DB, - 13968: 0x5269, - 13969: 0x80DC, - 13970: 0x5723, - 13971: 0x5E08, - 13972: 0x5931, - 13973: 0x72EE, - 13974: 0x65BD, - 13975: 0x6E7F, - 13976: 0x8BD7, - 13977: 0x5C38, - 13978: 0x8671, - 13979: 0x5341, - 13980: 0x77F3, - 13981: 0x62FE, - 13982: 0x65F6, - 13983: 0x4EC0, - 13984: 0x98DF, - 13985: 0x8680, - 13986: 0x5B9E, - 13987: 0x8BC6, - 13988: 0x53F2, - 13989: 0x77E2, - 13990: 0x4F7F, - 13991: 0x5C4E, - 13992: 0x9A76, - 13993: 0x59CB, - 13994: 0x5F0F, - 13995: 0x793A, - 13996: 0x58EB, - 13997: 0x4E16, - 13998: 0x67FF, - 13999: 0x4E8B, - 14000: 0x62ED, - 14001: 0x8A93, - 14002: 0x901D, - 14003: 0x52BF, - 14004: 0x662F, - 14005: 0x55DC, - 14006: 0x566C, - 14007: 0x9002, - 14008: 0x4ED5, - 14009: 0x4F8D, - 14010: 0x91CA, - 14011: 0x9970, - 14012: 0x6C0F, - 14013: 0x5E02, - 14014: 0x6043, - 14015: 0x5BA4, - 14016: 0x89C6, - 14017: 0x8BD5, - 14018: 0x6536, - 14019: 0x624B, - 14020: 0x9996, - 14021: 0x5B88, - 14022: 0x5BFF, - 14023: 0x6388, - 14024: 0x552E, - 14025: 0x53D7, - 14026: 0x7626, - 14027: 0x517D, - 14028: 0x852C, - 14029: 0x67A2, - 14030: 0x68B3, - 14031: 0x6B8A, - 14032: 0x6292, - 14033: 0x8F93, - 14034: 0x53D4, - 14035: 0x8212, - 14036: 0x6DD1, - 14037: 0x758F, - 14038: 0x4E66, - 14039: 0x8D4E, - 14040: 0x5B70, - 14041: 0x719F, - 14042: 0x85AF, - 14043: 0x6691, - 14044: 0x66D9, - 14045: 0x7F72, - 14046: 0x8700, - 14047: 0x9ECD, - 14048: 0x9F20, - 14049: 0x5C5E, - 14050: 0x672F, - 14051: 0x8FF0, - 14052: 0x6811, - 14053: 0x675F, - 14054: 0x620D, - 14055: 0x7AD6, - 14056: 0x5885, - 14057: 0x5EB6, - 14058: 0x6570, - 14059: 0x6F31, - 14060: 0x8582, - 14061: 0x8583, - 14062: 0x8586, - 14063: 0x8588, - 14064: 0x8589, - 14065: 0x858A, - 14066: 0x858B, - 14067: 0x858C, - 14068: 0x858D, - 14069: 0x858E, - 14070: 0x8590, - 14071: 0x8591, - 14072: 0x8592, - 14073: 0x8593, - 14074: 0x8594, - 14075: 0x8595, - 14076: 0x8596, - 14077: 0x8597, - 14078: 0x8598, - 14079: 0x8599, - 14080: 0x859A, - 14081: 0x859D, - 14082: 0x859E, - 14083: 0x859F, - 14084: 0x85A0, - 14085: 0x85A1, - 14086: 0x85A2, - 14087: 0x85A3, - 14088: 0x85A5, - 14089: 0x85A6, - 14090: 0x85A7, - 14091: 0x85A9, - 14092: 0x85AB, - 14093: 0x85AC, - 14094: 0x85AD, - 14095: 0x85B1, - 14096: 0x85B2, - 14097: 0x85B3, - 14098: 0x85B4, - 14099: 0x85B5, - 14100: 0x85B6, - 14101: 0x85B8, - 14102: 0x85BA, - 14103: 0x85BB, - 14104: 0x85BC, - 14105: 0x85BD, - 14106: 0x85BE, - 14107: 0x85BF, - 14108: 0x85C0, - 14109: 0x85C2, - 14110: 0x85C3, - 14111: 0x85C4, - 14112: 0x85C5, - 14113: 0x85C6, - 14114: 0x85C7, - 14115: 0x85C8, - 14116: 0x85CA, - 14117: 0x85CB, - 14118: 0x85CC, - 14119: 0x85CD, - 14120: 0x85CE, - 14121: 0x85D1, - 14122: 0x85D2, - 14123: 0x85D4, - 14124: 0x85D6, - 14125: 0x85D7, - 14126: 0x85D8, - 14127: 0x85D9, - 14128: 0x85DA, - 14129: 0x85DB, - 14130: 0x85DD, - 14131: 0x85DE, - 14132: 0x85DF, - 14133: 0x85E0, - 14134: 0x85E1, - 14135: 0x85E2, - 14136: 0x85E3, - 14137: 0x85E5, - 14138: 0x85E6, - 14139: 0x85E7, - 14140: 0x85E8, - 14141: 0x85EA, - 14142: 0x85EB, - 14143: 0x85EC, - 14144: 0x85ED, - 14145: 0x85EE, - 14146: 0x85EF, - 14147: 0x85F0, - 14148: 0x85F1, - 14149: 0x85F2, - 14150: 0x85F3, - 14151: 0x85F4, - 14152: 0x85F5, - 14153: 0x85F6, - 14154: 0x85F7, - 14155: 0x85F8, - 14156: 0x6055, - 14157: 0x5237, - 14158: 0x800D, - 14159: 0x6454, - 14160: 0x8870, - 14161: 0x7529, - 14162: 0x5E05, - 14163: 0x6813, - 14164: 0x62F4, - 14165: 0x971C, - 14166: 0x53CC, - 14167: 0x723D, - 14168: 0x8C01, - 14169: 0x6C34, - 14170: 0x7761, - 14171: 0x7A0E, - 14172: 0x542E, - 14173: 0x77AC, - 14174: 0x987A, - 14175: 0x821C, - 14176: 0x8BF4, - 14177: 0x7855, - 14178: 0x6714, - 14179: 0x70C1, - 14180: 0x65AF, - 14181: 0x6495, - 14182: 0x5636, - 14183: 0x601D, - 14184: 0x79C1, - 14185: 0x53F8, - 14186: 0x4E1D, - 14187: 0x6B7B, - 14188: 0x8086, - 14189: 0x5BFA, - 14190: 0x55E3, - 14191: 0x56DB, - 14192: 0x4F3A, - 14193: 0x4F3C, - 14194: 0x9972, - 14195: 0x5DF3, - 14196: 0x677E, - 14197: 0x8038, - 14198: 0x6002, - 14199: 0x9882, - 14200: 0x9001, - 14201: 0x5B8B, - 14202: 0x8BBC, - 14203: 0x8BF5, - 14204: 0x641C, - 14205: 0x8258, - 14206: 0x64DE, - 14207: 0x55FD, - 14208: 0x82CF, - 14209: 0x9165, - 14210: 0x4FD7, - 14211: 0x7D20, - 14212: 0x901F, - 14213: 0x7C9F, - 14214: 0x50F3, - 14215: 0x5851, - 14216: 0x6EAF, - 14217: 0x5BBF, - 14218: 0x8BC9, - 14219: 0x8083, - 14220: 0x9178, - 14221: 0x849C, - 14222: 0x7B97, - 14223: 0x867D, - 14224: 0x968B, - 14225: 0x968F, - 14226: 0x7EE5, - 14227: 0x9AD3, - 14228: 0x788E, - 14229: 0x5C81, - 14230: 0x7A57, - 14231: 0x9042, - 14232: 0x96A7, - 14233: 0x795F, - 14234: 0x5B59, - 14235: 0x635F, - 14236: 0x7B0B, - 14237: 0x84D1, - 14238: 0x68AD, - 14239: 0x5506, - 14240: 0x7F29, - 14241: 0x7410, - 14242: 0x7D22, - 14243: 0x9501, - 14244: 0x6240, - 14245: 0x584C, - 14246: 0x4ED6, - 14247: 0x5B83, - 14248: 0x5979, - 14249: 0x5854, - 14250: 0x85F9, - 14251: 0x85FA, - 14252: 0x85FC, - 14253: 0x85FD, - 14254: 0x85FE, - 14255: 0x8600, - 14256: 0x8601, - 14257: 0x8602, - 14258: 0x8603, - 14259: 0x8604, - 14260: 0x8606, - 14261: 0x8607, - 14262: 0x8608, - 14263: 0x8609, - 14264: 0x860A, - 14265: 0x860B, - 14266: 0x860C, - 14267: 0x860D, - 14268: 0x860E, - 14269: 0x860F, - 14270: 0x8610, - 14271: 0x8612, - 14272: 0x8613, - 14273: 0x8614, - 14274: 0x8615, - 14275: 0x8617, - 14276: 0x8618, - 14277: 0x8619, - 14278: 0x861A, - 14279: 0x861B, - 14280: 0x861C, - 14281: 0x861D, - 14282: 0x861E, - 14283: 0x861F, - 14284: 0x8620, - 14285: 0x8621, - 14286: 0x8622, - 14287: 0x8623, - 14288: 0x8624, - 14289: 0x8625, - 14290: 0x8626, - 14291: 0x8628, - 14292: 0x862A, - 14293: 0x862B, - 14294: 0x862C, - 14295: 0x862D, - 14296: 0x862E, - 14297: 0x862F, - 14298: 0x8630, - 14299: 0x8631, - 14300: 0x8632, - 14301: 0x8633, - 14302: 0x8634, - 14303: 0x8635, - 14304: 0x8636, - 14305: 0x8637, - 14306: 0x8639, - 14307: 0x863A, - 14308: 0x863B, - 14309: 0x863D, - 14310: 0x863E, - 14311: 0x863F, - 14312: 0x8640, - 14313: 0x8641, - 14314: 0x8642, - 14315: 0x8643, - 14316: 0x8644, - 14317: 0x8645, - 14318: 0x8646, - 14319: 0x8647, - 14320: 0x8648, - 14321: 0x8649, - 14322: 0x864A, - 14323: 0x864B, - 14324: 0x864C, - 14325: 0x8652, - 14326: 0x8653, - 14327: 0x8655, - 14328: 0x8656, - 14329: 0x8657, - 14330: 0x8658, - 14331: 0x8659, - 14332: 0x865B, - 14333: 0x865C, - 14334: 0x865D, - 14335: 0x865F, - 14336: 0x8660, - 14337: 0x8661, - 14338: 0x8663, - 14339: 0x8664, - 14340: 0x8665, - 14341: 0x8666, - 14342: 0x8667, - 14343: 0x8668, - 14344: 0x8669, - 14345: 0x866A, - 14346: 0x736D, - 14347: 0x631E, - 14348: 0x8E4B, - 14349: 0x8E0F, - 14350: 0x80CE, - 14351: 0x82D4, - 14352: 0x62AC, - 14353: 0x53F0, - 14354: 0x6CF0, - 14355: 0x915E, - 14356: 0x592A, - 14357: 0x6001, - 14358: 0x6C70, - 14359: 0x574D, - 14360: 0x644A, - 14361: 0x8D2A, - 14362: 0x762B, - 14363: 0x6EE9, - 14364: 0x575B, - 14365: 0x6A80, - 14366: 0x75F0, - 14367: 0x6F6D, - 14368: 0x8C2D, - 14369: 0x8C08, - 14370: 0x5766, - 14371: 0x6BEF, - 14372: 0x8892, - 14373: 0x78B3, - 14374: 0x63A2, - 14375: 0x53F9, - 14376: 0x70AD, - 14377: 0x6C64, - 14378: 0x5858, - 14379: 0x642A, - 14380: 0x5802, - 14381: 0x68E0, - 14382: 0x819B, - 14383: 0x5510, - 14384: 0x7CD6, - 14385: 0x5018, - 14386: 0x8EBA, - 14387: 0x6DCC, - 14388: 0x8D9F, - 14389: 0x70EB, - 14390: 0x638F, - 14391: 0x6D9B, - 14392: 0x6ED4, - 14393: 0x7EE6, - 14394: 0x8404, - 14395: 0x6843, - 14396: 0x9003, - 14397: 0x6DD8, - 14398: 0x9676, - 14399: 0x8BA8, - 14400: 0x5957, - 14401: 0x7279, - 14402: 0x85E4, - 14403: 0x817E, - 14404: 0x75BC, - 14405: 0x8A8A, - 14406: 0x68AF, - 14407: 0x5254, - 14408: 0x8E22, - 14409: 0x9511, - 14410: 0x63D0, - 14411: 0x9898, - 14412: 0x8E44, - 14413: 0x557C, - 14414: 0x4F53, - 14415: 0x66FF, - 14416: 0x568F, - 14417: 0x60D5, - 14418: 0x6D95, - 14419: 0x5243, - 14420: 0x5C49, - 14421: 0x5929, - 14422: 0x6DFB, - 14423: 0x586B, - 14424: 0x7530, - 14425: 0x751C, - 14426: 0x606C, - 14427: 0x8214, - 14428: 0x8146, - 14429: 0x6311, - 14430: 0x6761, - 14431: 0x8FE2, - 14432: 0x773A, - 14433: 0x8DF3, - 14434: 0x8D34, - 14435: 0x94C1, - 14436: 0x5E16, - 14437: 0x5385, - 14438: 0x542C, - 14439: 0x70C3, - 14440: 0x866D, - 14441: 0x866F, - 14442: 0x8670, - 14443: 0x8672, - 14444: 0x8673, - 14445: 0x8674, - 14446: 0x8675, - 14447: 0x8676, - 14448: 0x8677, - 14449: 0x8678, - 14450: 0x8683, - 14451: 0x8684, - 14452: 0x8685, - 14453: 0x8686, - 14454: 0x8687, - 14455: 0x8688, - 14456: 0x8689, - 14457: 0x868E, - 14458: 0x868F, - 14459: 0x8690, - 14460: 0x8691, - 14461: 0x8692, - 14462: 0x8694, - 14463: 0x8696, - 14464: 0x8697, - 14465: 0x8698, - 14466: 0x8699, - 14467: 0x869A, - 14468: 0x869B, - 14469: 0x869E, - 14470: 0x869F, - 14471: 0x86A0, - 14472: 0x86A1, - 14473: 0x86A2, - 14474: 0x86A5, - 14475: 0x86A6, - 14476: 0x86AB, - 14477: 0x86AD, - 14478: 0x86AE, - 14479: 0x86B2, - 14480: 0x86B3, - 14481: 0x86B7, - 14482: 0x86B8, - 14483: 0x86B9, - 14484: 0x86BB, - 14485: 0x86BC, - 14486: 0x86BD, - 14487: 0x86BE, - 14488: 0x86BF, - 14489: 0x86C1, - 14490: 0x86C2, - 14491: 0x86C3, - 14492: 0x86C5, - 14493: 0x86C8, - 14494: 0x86CC, - 14495: 0x86CD, - 14496: 0x86D2, - 14497: 0x86D3, - 14498: 0x86D5, - 14499: 0x86D6, - 14500: 0x86D7, - 14501: 0x86DA, - 14502: 0x86DC, - 14503: 0x86DD, - 14504: 0x86E0, - 14505: 0x86E1, - 14506: 0x86E2, - 14507: 0x86E3, - 14508: 0x86E5, - 14509: 0x86E6, - 14510: 0x86E7, - 14511: 0x86E8, - 14512: 0x86EA, - 14513: 0x86EB, - 14514: 0x86EC, - 14515: 0x86EF, - 14516: 0x86F5, - 14517: 0x86F6, - 14518: 0x86F7, - 14519: 0x86FA, - 14520: 0x86FB, - 14521: 0x86FC, - 14522: 0x86FD, - 14523: 0x86FF, - 14524: 0x8701, - 14525: 0x8704, - 14526: 0x8705, - 14527: 0x8706, - 14528: 0x870B, - 14529: 0x870C, - 14530: 0x870E, - 14531: 0x870F, - 14532: 0x8710, - 14533: 0x8711, - 14534: 0x8714, - 14535: 0x8716, - 14536: 0x6C40, - 14537: 0x5EF7, - 14538: 0x505C, - 14539: 0x4EAD, - 14540: 0x5EAD, - 14541: 0x633A, - 14542: 0x8247, - 14543: 0x901A, - 14544: 0x6850, - 14545: 0x916E, - 14546: 0x77B3, - 14547: 0x540C, - 14548: 0x94DC, - 14549: 0x5F64, - 14550: 0x7AE5, - 14551: 0x6876, - 14552: 0x6345, - 14553: 0x7B52, - 14554: 0x7EDF, - 14555: 0x75DB, - 14556: 0x5077, - 14557: 0x6295, - 14558: 0x5934, - 14559: 0x900F, - 14560: 0x51F8, - 14561: 0x79C3, - 14562: 0x7A81, - 14563: 0x56FE, - 14564: 0x5F92, - 14565: 0x9014, - 14566: 0x6D82, - 14567: 0x5C60, - 14568: 0x571F, - 14569: 0x5410, - 14570: 0x5154, - 14571: 0x6E4D, - 14572: 0x56E2, - 14573: 0x63A8, - 14574: 0x9893, - 14575: 0x817F, - 14576: 0x8715, - 14577: 0x892A, - 14578: 0x9000, - 14579: 0x541E, - 14580: 0x5C6F, - 14581: 0x81C0, - 14582: 0x62D6, - 14583: 0x6258, - 14584: 0x8131, - 14585: 0x9E35, - 14586: 0x9640, - 14587: 0x9A6E, - 14588: 0x9A7C, - 14589: 0x692D, - 14590: 0x59A5, - 14591: 0x62D3, - 14592: 0x553E, - 14593: 0x6316, - 14594: 0x54C7, - 14595: 0x86D9, - 14596: 0x6D3C, - 14597: 0x5A03, - 14598: 0x74E6, - 14599: 0x889C, - 14600: 0x6B6A, - 14601: 0x5916, - 14602: 0x8C4C, - 14603: 0x5F2F, - 14604: 0x6E7E, - 14605: 0x73A9, - 14606: 0x987D, - 14607: 0x4E38, - 14608: 0x70F7, - 14609: 0x5B8C, - 14610: 0x7897, - 14611: 0x633D, - 14612: 0x665A, - 14613: 0x7696, - 14614: 0x60CB, - 14615: 0x5B9B, - 14616: 0x5A49, - 14617: 0x4E07, - 14618: 0x8155, - 14619: 0x6C6A, - 14620: 0x738B, - 14621: 0x4EA1, - 14622: 0x6789, - 14623: 0x7F51, - 14624: 0x5F80, - 14625: 0x65FA, - 14626: 0x671B, - 14627: 0x5FD8, - 14628: 0x5984, - 14629: 0x5A01, - 14630: 0x8719, - 14631: 0x871B, - 14632: 0x871D, - 14633: 0x871F, - 14634: 0x8720, - 14635: 0x8724, - 14636: 0x8726, - 14637: 0x8727, - 14638: 0x8728, - 14639: 0x872A, - 14640: 0x872B, - 14641: 0x872C, - 14642: 0x872D, - 14643: 0x872F, - 14644: 0x8730, - 14645: 0x8732, - 14646: 0x8733, - 14647: 0x8735, - 14648: 0x8736, - 14649: 0x8738, - 14650: 0x8739, - 14651: 0x873A, - 14652: 0x873C, - 14653: 0x873D, - 14654: 0x8740, - 14655: 0x8741, - 14656: 0x8742, - 14657: 0x8743, - 14658: 0x8744, - 14659: 0x8745, - 14660: 0x8746, - 14661: 0x874A, - 14662: 0x874B, - 14663: 0x874D, - 14664: 0x874F, - 14665: 0x8750, - 14666: 0x8751, - 14667: 0x8752, - 14668: 0x8754, - 14669: 0x8755, - 14670: 0x8756, - 14671: 0x8758, - 14672: 0x875A, - 14673: 0x875B, - 14674: 0x875C, - 14675: 0x875D, - 14676: 0x875E, - 14677: 0x875F, - 14678: 0x8761, - 14679: 0x8762, - 14680: 0x8766, - 14681: 0x8767, - 14682: 0x8768, - 14683: 0x8769, - 14684: 0x876A, - 14685: 0x876B, - 14686: 0x876C, - 14687: 0x876D, - 14688: 0x876F, - 14689: 0x8771, - 14690: 0x8772, - 14691: 0x8773, - 14692: 0x8775, - 14693: 0x8777, - 14694: 0x8778, - 14695: 0x8779, - 14696: 0x877A, - 14697: 0x877F, - 14698: 0x8780, - 14699: 0x8781, - 14700: 0x8784, - 14701: 0x8786, - 14702: 0x8787, - 14703: 0x8789, - 14704: 0x878A, - 14705: 0x878C, - 14706: 0x878E, - 14707: 0x878F, - 14708: 0x8790, - 14709: 0x8791, - 14710: 0x8792, - 14711: 0x8794, - 14712: 0x8795, - 14713: 0x8796, - 14714: 0x8798, - 14715: 0x8799, - 14716: 0x879A, - 14717: 0x879B, - 14718: 0x879C, - 14719: 0x879D, - 14720: 0x879E, - 14721: 0x87A0, - 14722: 0x87A1, - 14723: 0x87A2, - 14724: 0x87A3, - 14725: 0x87A4, - 14726: 0x5DCD, - 14727: 0x5FAE, - 14728: 0x5371, - 14729: 0x97E6, - 14730: 0x8FDD, - 14731: 0x6845, - 14732: 0x56F4, - 14733: 0x552F, - 14734: 0x60DF, - 14735: 0x4E3A, - 14736: 0x6F4D, - 14737: 0x7EF4, - 14738: 0x82C7, - 14739: 0x840E, - 14740: 0x59D4, - 14741: 0x4F1F, - 14742: 0x4F2A, - 14743: 0x5C3E, - 14744: 0x7EAC, - 14745: 0x672A, - 14746: 0x851A, - 14747: 0x5473, - 14748: 0x754F, - 14749: 0x80C3, - 14750: 0x5582, - 14751: 0x9B4F, - 14752: 0x4F4D, - 14753: 0x6E2D, - 14754: 0x8C13, - 14755: 0x5C09, - 14756: 0x6170, - 14757: 0x536B, - 14758: 0x761F, - 14759: 0x6E29, - 14760: 0x868A, - 14761: 0x6587, - 14762: 0x95FB, - 14763: 0x7EB9, - 14764: 0x543B, - 14765: 0x7A33, - 14766: 0x7D0A, - 14767: 0x95EE, - 14768: 0x55E1, - 14769: 0x7FC1, - 14770: 0x74EE, - 14771: 0x631D, - 14772: 0x8717, - 14773: 0x6DA1, - 14774: 0x7A9D, - 14775: 0x6211, - 14776: 0x65A1, - 14777: 0x5367, - 14778: 0x63E1, - 14779: 0x6C83, - 14780: 0x5DEB, - 14781: 0x545C, - 14782: 0x94A8, - 14783: 0x4E4C, - 14784: 0x6C61, - 14785: 0x8BEC, - 14786: 0x5C4B, - 14787: 0x65E0, - 14788: 0x829C, - 14789: 0x68A7, - 14790: 0x543E, - 14791: 0x5434, - 14792: 0x6BCB, - 14793: 0x6B66, - 14794: 0x4E94, - 14795: 0x6342, - 14796: 0x5348, - 14797: 0x821E, - 14798: 0x4F0D, - 14799: 0x4FAE, - 14800: 0x575E, - 14801: 0x620A, - 14802: 0x96FE, - 14803: 0x6664, - 14804: 0x7269, - 14805: 0x52FF, - 14806: 0x52A1, - 14807: 0x609F, - 14808: 0x8BEF, - 14809: 0x6614, - 14810: 0x7199, - 14811: 0x6790, - 14812: 0x897F, - 14813: 0x7852, - 14814: 0x77FD, - 14815: 0x6670, - 14816: 0x563B, - 14817: 0x5438, - 14818: 0x9521, - 14819: 0x727A, - 14820: 0x87A5, - 14821: 0x87A6, - 14822: 0x87A7, - 14823: 0x87A9, - 14824: 0x87AA, - 14825: 0x87AE, - 14826: 0x87B0, - 14827: 0x87B1, - 14828: 0x87B2, - 14829: 0x87B4, - 14830: 0x87B6, - 14831: 0x87B7, - 14832: 0x87B8, - 14833: 0x87B9, - 14834: 0x87BB, - 14835: 0x87BC, - 14836: 0x87BE, - 14837: 0x87BF, - 14838: 0x87C1, - 14839: 0x87C2, - 14840: 0x87C3, - 14841: 0x87C4, - 14842: 0x87C5, - 14843: 0x87C7, - 14844: 0x87C8, - 14845: 0x87C9, - 14846: 0x87CC, - 14847: 0x87CD, - 14848: 0x87CE, - 14849: 0x87CF, - 14850: 0x87D0, - 14851: 0x87D4, - 14852: 0x87D5, - 14853: 0x87D6, - 14854: 0x87D7, - 14855: 0x87D8, - 14856: 0x87D9, - 14857: 0x87DA, - 14858: 0x87DC, - 14859: 0x87DD, - 14860: 0x87DE, - 14861: 0x87DF, - 14862: 0x87E1, - 14863: 0x87E2, - 14864: 0x87E3, - 14865: 0x87E4, - 14866: 0x87E6, - 14867: 0x87E7, - 14868: 0x87E8, - 14869: 0x87E9, - 14870: 0x87EB, - 14871: 0x87EC, - 14872: 0x87ED, - 14873: 0x87EF, - 14874: 0x87F0, - 14875: 0x87F1, - 14876: 0x87F2, - 14877: 0x87F3, - 14878: 0x87F4, - 14879: 0x87F5, - 14880: 0x87F6, - 14881: 0x87F7, - 14882: 0x87F8, - 14883: 0x87FA, - 14884: 0x87FB, - 14885: 0x87FC, - 14886: 0x87FD, - 14887: 0x87FF, - 14888: 0x8800, - 14889: 0x8801, - 14890: 0x8802, - 14891: 0x8804, - 14892: 0x8805, - 14893: 0x8806, - 14894: 0x8807, - 14895: 0x8808, - 14896: 0x8809, - 14897: 0x880B, - 14898: 0x880C, - 14899: 0x880D, - 14900: 0x880E, - 14901: 0x880F, - 14902: 0x8810, - 14903: 0x8811, - 14904: 0x8812, - 14905: 0x8814, - 14906: 0x8817, - 14907: 0x8818, - 14908: 0x8819, - 14909: 0x881A, - 14910: 0x881C, - 14911: 0x881D, - 14912: 0x881E, - 14913: 0x881F, - 14914: 0x8820, - 14915: 0x8823, - 14916: 0x7A00, - 14917: 0x606F, - 14918: 0x5E0C, - 14919: 0x6089, - 14920: 0x819D, - 14921: 0x5915, - 14922: 0x60DC, - 14923: 0x7184, - 14924: 0x70EF, - 14925: 0x6EAA, - 14926: 0x6C50, - 14927: 0x7280, - 14928: 0x6A84, - 14929: 0x88AD, - 14930: 0x5E2D, - 14931: 0x4E60, - 14932: 0x5AB3, - 14933: 0x559C, - 14934: 0x94E3, - 14935: 0x6D17, - 14936: 0x7CFB, - 14937: 0x9699, - 14938: 0x620F, - 14939: 0x7EC6, - 14940: 0x778E, - 14941: 0x867E, - 14942: 0x5323, - 14943: 0x971E, - 14944: 0x8F96, - 14945: 0x6687, - 14946: 0x5CE1, - 14947: 0x4FA0, - 14948: 0x72ED, - 14949: 0x4E0B, - 14950: 0x53A6, - 14951: 0x590F, - 14952: 0x5413, - 14953: 0x6380, - 14954: 0x9528, - 14955: 0x5148, - 14956: 0x4ED9, - 14957: 0x9C9C, - 14958: 0x7EA4, - 14959: 0x54B8, - 14960: 0x8D24, - 14961: 0x8854, - 14962: 0x8237, - 14963: 0x95F2, - 14964: 0x6D8E, - 14965: 0x5F26, - 14966: 0x5ACC, - 14967: 0x663E, - 14968: 0x9669, - 14969: 0x73B0, - 14970: 0x732E, - 14971: 0x53BF, - 14972: 0x817A, - 14973: 0x9985, - 14974: 0x7FA1, - 14975: 0x5BAA, - 14976: 0x9677, - 14977: 0x9650, - 14978: 0x7EBF, - 14979: 0x76F8, - 14980: 0x53A2, - 14981: 0x9576, - 14982: 0x9999, - 14983: 0x7BB1, - 14984: 0x8944, - 14985: 0x6E58, - 14986: 0x4E61, - 14987: 0x7FD4, - 14988: 0x7965, - 14989: 0x8BE6, - 14990: 0x60F3, - 14991: 0x54CD, - 14992: 0x4EAB, - 14993: 0x9879, - 14994: 0x5DF7, - 14995: 0x6A61, - 14996: 0x50CF, - 14997: 0x5411, - 14998: 0x8C61, - 14999: 0x8427, - 15000: 0x785D, - 15001: 0x9704, - 15002: 0x524A, - 15003: 0x54EE, - 15004: 0x56A3, - 15005: 0x9500, - 15006: 0x6D88, - 15007: 0x5BB5, - 15008: 0x6DC6, - 15009: 0x6653, - 15010: 0x8824, - 15011: 0x8825, - 15012: 0x8826, - 15013: 0x8827, - 15014: 0x8828, - 15015: 0x8829, - 15016: 0x882A, - 15017: 0x882B, - 15018: 0x882C, - 15019: 0x882D, - 15020: 0x882E, - 15021: 0x882F, - 15022: 0x8830, - 15023: 0x8831, - 15024: 0x8833, - 15025: 0x8834, - 15026: 0x8835, - 15027: 0x8836, - 15028: 0x8837, - 15029: 0x8838, - 15030: 0x883A, - 15031: 0x883B, - 15032: 0x883D, - 15033: 0x883E, - 15034: 0x883F, - 15035: 0x8841, - 15036: 0x8842, - 15037: 0x8843, - 15038: 0x8846, - 15039: 0x8847, - 15040: 0x8848, - 15041: 0x8849, - 15042: 0x884A, - 15043: 0x884B, - 15044: 0x884E, - 15045: 0x884F, - 15046: 0x8850, - 15047: 0x8851, - 15048: 0x8852, - 15049: 0x8853, - 15050: 0x8855, - 15051: 0x8856, - 15052: 0x8858, - 15053: 0x885A, - 15054: 0x885B, - 15055: 0x885C, - 15056: 0x885D, - 15057: 0x885E, - 15058: 0x885F, - 15059: 0x8860, - 15060: 0x8866, - 15061: 0x8867, - 15062: 0x886A, - 15063: 0x886D, - 15064: 0x886F, - 15065: 0x8871, - 15066: 0x8873, - 15067: 0x8874, - 15068: 0x8875, - 15069: 0x8876, - 15070: 0x8878, - 15071: 0x8879, - 15072: 0x887A, - 15073: 0x887B, - 15074: 0x887C, - 15075: 0x8880, - 15076: 0x8883, - 15077: 0x8886, - 15078: 0x8887, - 15079: 0x8889, - 15080: 0x888A, - 15081: 0x888C, - 15082: 0x888E, - 15083: 0x888F, - 15084: 0x8890, - 15085: 0x8891, - 15086: 0x8893, - 15087: 0x8894, - 15088: 0x8895, - 15089: 0x8897, - 15090: 0x8898, - 15091: 0x8899, - 15092: 0x889A, - 15093: 0x889B, - 15094: 0x889D, - 15095: 0x889E, - 15096: 0x889F, - 15097: 0x88A0, - 15098: 0x88A1, - 15099: 0x88A3, - 15100: 0x88A5, - 15101: 0x88A6, - 15102: 0x88A7, - 15103: 0x88A8, - 15104: 0x88A9, - 15105: 0x88AA, - 15106: 0x5C0F, - 15107: 0x5B5D, - 15108: 0x6821, - 15109: 0x8096, - 15110: 0x5578, - 15111: 0x7B11, - 15112: 0x6548, - 15113: 0x6954, - 15114: 0x4E9B, - 15115: 0x6B47, - 15116: 0x874E, - 15117: 0x978B, - 15118: 0x534F, - 15119: 0x631F, - 15120: 0x643A, - 15121: 0x90AA, - 15122: 0x659C, - 15123: 0x80C1, - 15124: 0x8C10, - 15125: 0x5199, - 15126: 0x68B0, - 15127: 0x5378, - 15128: 0x87F9, - 15129: 0x61C8, - 15130: 0x6CC4, - 15131: 0x6CFB, - 15132: 0x8C22, - 15133: 0x5C51, - 15134: 0x85AA, - 15135: 0x82AF, - 15136: 0x950C, - 15137: 0x6B23, - 15138: 0x8F9B, - 15139: 0x65B0, - 15140: 0x5FFB, - 15141: 0x5FC3, - 15142: 0x4FE1, - 15143: 0x8845, - 15144: 0x661F, - 15145: 0x8165, - 15146: 0x7329, - 15147: 0x60FA, - 15148: 0x5174, - 15149: 0x5211, - 15150: 0x578B, - 15151: 0x5F62, - 15152: 0x90A2, - 15153: 0x884C, - 15154: 0x9192, - 15155: 0x5E78, - 15156: 0x674F, - 15157: 0x6027, - 15158: 0x59D3, - 15159: 0x5144, - 15160: 0x51F6, - 15161: 0x80F8, - 15162: 0x5308, - 15163: 0x6C79, - 15164: 0x96C4, - 15165: 0x718A, - 15166: 0x4F11, - 15167: 0x4FEE, - 15168: 0x7F9E, - 15169: 0x673D, - 15170: 0x55C5, - 15171: 0x9508, - 15172: 0x79C0, - 15173: 0x8896, - 15174: 0x7EE3, - 15175: 0x589F, - 15176: 0x620C, - 15177: 0x9700, - 15178: 0x865A, - 15179: 0x5618, - 15180: 0x987B, - 15181: 0x5F90, - 15182: 0x8BB8, - 15183: 0x84C4, - 15184: 0x9157, - 15185: 0x53D9, - 15186: 0x65ED, - 15187: 0x5E8F, - 15188: 0x755C, - 15189: 0x6064, - 15190: 0x7D6E, - 15191: 0x5A7F, - 15192: 0x7EEA, - 15193: 0x7EED, - 15194: 0x8F69, - 15195: 0x55A7, - 15196: 0x5BA3, - 15197: 0x60AC, - 15198: 0x65CB, - 15199: 0x7384, - 15200: 0x88AC, - 15201: 0x88AE, - 15202: 0x88AF, - 15203: 0x88B0, - 15204: 0x88B2, - 15205: 0x88B3, - 15206: 0x88B4, - 15207: 0x88B5, - 15208: 0x88B6, - 15209: 0x88B8, - 15210: 0x88B9, - 15211: 0x88BA, - 15212: 0x88BB, - 15213: 0x88BD, - 15214: 0x88BE, - 15215: 0x88BF, - 15216: 0x88C0, - 15217: 0x88C3, - 15218: 0x88C4, - 15219: 0x88C7, - 15220: 0x88C8, - 15221: 0x88CA, - 15222: 0x88CB, - 15223: 0x88CC, - 15224: 0x88CD, - 15225: 0x88CF, - 15226: 0x88D0, - 15227: 0x88D1, - 15228: 0x88D3, - 15229: 0x88D6, - 15230: 0x88D7, - 15231: 0x88DA, - 15232: 0x88DB, - 15233: 0x88DC, - 15234: 0x88DD, - 15235: 0x88DE, - 15236: 0x88E0, - 15237: 0x88E1, - 15238: 0x88E6, - 15239: 0x88E7, - 15240: 0x88E9, - 15241: 0x88EA, - 15242: 0x88EB, - 15243: 0x88EC, - 15244: 0x88ED, - 15245: 0x88EE, - 15246: 0x88EF, - 15247: 0x88F2, - 15248: 0x88F5, - 15249: 0x88F6, - 15250: 0x88F7, - 15251: 0x88FA, - 15252: 0x88FB, - 15253: 0x88FD, - 15254: 0x88FF, - 15255: 0x8900, - 15256: 0x8901, - 15257: 0x8903, - 15258: 0x8904, - 15259: 0x8905, - 15260: 0x8906, - 15261: 0x8907, - 15262: 0x8908, - 15263: 0x8909, - 15264: 0x890B, - 15265: 0x890C, - 15266: 0x890D, - 15267: 0x890E, - 15268: 0x890F, - 15269: 0x8911, - 15270: 0x8914, - 15271: 0x8915, - 15272: 0x8916, - 15273: 0x8917, - 15274: 0x8918, - 15275: 0x891C, - 15276: 0x891D, - 15277: 0x891E, - 15278: 0x891F, - 15279: 0x8920, - 15280: 0x8922, - 15281: 0x8923, - 15282: 0x8924, - 15283: 0x8926, - 15284: 0x8927, - 15285: 0x8928, - 15286: 0x8929, - 15287: 0x892C, - 15288: 0x892D, - 15289: 0x892E, - 15290: 0x892F, - 15291: 0x8931, - 15292: 0x8932, - 15293: 0x8933, - 15294: 0x8935, - 15295: 0x8937, - 15296: 0x9009, - 15297: 0x7663, - 15298: 0x7729, - 15299: 0x7EDA, - 15300: 0x9774, - 15301: 0x859B, - 15302: 0x5B66, - 15303: 0x7A74, - 15304: 0x96EA, - 15305: 0x8840, - 15306: 0x52CB, - 15307: 0x718F, - 15308: 0x5FAA, - 15309: 0x65EC, - 15310: 0x8BE2, - 15311: 0x5BFB, - 15312: 0x9A6F, - 15313: 0x5DE1, - 15314: 0x6B89, - 15315: 0x6C5B, - 15316: 0x8BAD, - 15317: 0x8BAF, - 15318: 0x900A, - 15319: 0x8FC5, - 15320: 0x538B, - 15321: 0x62BC, - 15322: 0x9E26, - 15323: 0x9E2D, - 15324: 0x5440, - 15325: 0x4E2B, - 15326: 0x82BD, - 15327: 0x7259, - 15328: 0x869C, - 15329: 0x5D16, - 15330: 0x8859, - 15331: 0x6DAF, - 15332: 0x96C5, - 15333: 0x54D1, - 15334: 0x4E9A, - 15335: 0x8BB6, - 15336: 0x7109, - 15337: 0x54BD, - 15338: 0x9609, - 15339: 0x70DF, - 15340: 0x6DF9, - 15341: 0x76D0, - 15342: 0x4E25, - 15343: 0x7814, - 15344: 0x8712, - 15345: 0x5CA9, - 15346: 0x5EF6, - 15347: 0x8A00, - 15348: 0x989C, - 15349: 0x960E, - 15350: 0x708E, - 15351: 0x6CBF, - 15352: 0x5944, - 15353: 0x63A9, - 15354: 0x773C, - 15355: 0x884D, - 15356: 0x6F14, - 15357: 0x8273, - 15358: 0x5830, - 15359: 0x71D5, - 15360: 0x538C, - 15361: 0x781A, - 15362: 0x96C1, - 15363: 0x5501, - 15364: 0x5F66, - 15365: 0x7130, - 15366: 0x5BB4, - 15367: 0x8C1A, - 15368: 0x9A8C, - 15369: 0x6B83, - 15370: 0x592E, - 15371: 0x9E2F, - 15372: 0x79E7, - 15373: 0x6768, - 15374: 0x626C, - 15375: 0x4F6F, - 15376: 0x75A1, - 15377: 0x7F8A, - 15378: 0x6D0B, - 15379: 0x9633, - 15380: 0x6C27, - 15381: 0x4EF0, - 15382: 0x75D2, - 15383: 0x517B, - 15384: 0x6837, - 15385: 0x6F3E, - 15386: 0x9080, - 15387: 0x8170, - 15388: 0x5996, - 15389: 0x7476, - 15390: 0x8938, - 15391: 0x8939, - 15392: 0x893A, - 15393: 0x893B, - 15394: 0x893C, - 15395: 0x893D, - 15396: 0x893E, - 15397: 0x893F, - 15398: 0x8940, - 15399: 0x8942, - 15400: 0x8943, - 15401: 0x8945, - 15402: 0x8946, - 15403: 0x8947, - 15404: 0x8948, - 15405: 0x8949, - 15406: 0x894A, - 15407: 0x894B, - 15408: 0x894C, - 15409: 0x894D, - 15410: 0x894E, - 15411: 0x894F, - 15412: 0x8950, - 15413: 0x8951, - 15414: 0x8952, - 15415: 0x8953, - 15416: 0x8954, - 15417: 0x8955, - 15418: 0x8956, - 15419: 0x8957, - 15420: 0x8958, - 15421: 0x8959, - 15422: 0x895A, - 15423: 0x895B, - 15424: 0x895C, - 15425: 0x895D, - 15426: 0x8960, - 15427: 0x8961, - 15428: 0x8962, - 15429: 0x8963, - 15430: 0x8964, - 15431: 0x8965, - 15432: 0x8967, - 15433: 0x8968, - 15434: 0x8969, - 15435: 0x896A, - 15436: 0x896B, - 15437: 0x896C, - 15438: 0x896D, - 15439: 0x896E, - 15440: 0x896F, - 15441: 0x8970, - 15442: 0x8971, - 15443: 0x8972, - 15444: 0x8973, - 15445: 0x8974, - 15446: 0x8975, - 15447: 0x8976, - 15448: 0x8977, - 15449: 0x8978, - 15450: 0x8979, - 15451: 0x897A, - 15452: 0x897C, - 15453: 0x897D, - 15454: 0x897E, - 15455: 0x8980, - 15456: 0x8982, - 15457: 0x8984, - 15458: 0x8985, - 15459: 0x8987, - 15460: 0x8988, - 15461: 0x8989, - 15462: 0x898A, - 15463: 0x898B, - 15464: 0x898C, - 15465: 0x898D, - 15466: 0x898E, - 15467: 0x898F, - 15468: 0x8990, - 15469: 0x8991, - 15470: 0x8992, - 15471: 0x8993, - 15472: 0x8994, - 15473: 0x8995, - 15474: 0x8996, - 15475: 0x8997, - 15476: 0x8998, - 15477: 0x8999, - 15478: 0x899A, - 15479: 0x899B, - 15480: 0x899C, - 15481: 0x899D, - 15482: 0x899E, - 15483: 0x899F, - 15484: 0x89A0, - 15485: 0x89A1, - 15486: 0x6447, - 15487: 0x5C27, - 15488: 0x9065, - 15489: 0x7A91, - 15490: 0x8C23, - 15491: 0x59DA, - 15492: 0x54AC, - 15493: 0x8200, - 15494: 0x836F, - 15495: 0x8981, - 15496: 0x8000, - 15497: 0x6930, - 15498: 0x564E, - 15499: 0x8036, - 15500: 0x7237, - 15501: 0x91CE, - 15502: 0x51B6, - 15503: 0x4E5F, - 15504: 0x9875, - 15505: 0x6396, - 15506: 0x4E1A, - 15507: 0x53F6, - 15508: 0x66F3, - 15509: 0x814B, - 15510: 0x591C, - 15511: 0x6DB2, - 15512: 0x4E00, - 15513: 0x58F9, - 15514: 0x533B, - 15515: 0x63D6, - 15516: 0x94F1, - 15517: 0x4F9D, - 15518: 0x4F0A, - 15519: 0x8863, - 15520: 0x9890, - 15521: 0x5937, - 15522: 0x9057, - 15523: 0x79FB, - 15524: 0x4EEA, - 15525: 0x80F0, - 15526: 0x7591, - 15527: 0x6C82, - 15528: 0x5B9C, - 15529: 0x59E8, - 15530: 0x5F5D, - 15531: 0x6905, - 15532: 0x8681, - 15533: 0x501A, - 15534: 0x5DF2, - 15535: 0x4E59, - 15536: 0x77E3, - 15537: 0x4EE5, - 15538: 0x827A, - 15539: 0x6291, - 15540: 0x6613, - 15541: 0x9091, - 15542: 0x5C79, - 15543: 0x4EBF, - 15544: 0x5F79, - 15545: 0x81C6, - 15546: 0x9038, - 15547: 0x8084, - 15548: 0x75AB, - 15549: 0x4EA6, - 15550: 0x88D4, - 15551: 0x610F, - 15552: 0x6BC5, - 15553: 0x5FC6, - 15554: 0x4E49, - 15555: 0x76CA, - 15556: 0x6EA2, - 15557: 0x8BE3, - 15558: 0x8BAE, - 15559: 0x8C0A, - 15560: 0x8BD1, - 15561: 0x5F02, - 15562: 0x7FFC, - 15563: 0x7FCC, - 15564: 0x7ECE, - 15565: 0x8335, - 15566: 0x836B, - 15567: 0x56E0, - 15568: 0x6BB7, - 15569: 0x97F3, - 15570: 0x9634, - 15571: 0x59FB, - 15572: 0x541F, - 15573: 0x94F6, - 15574: 0x6DEB, - 15575: 0x5BC5, - 15576: 0x996E, - 15577: 0x5C39, - 15578: 0x5F15, - 15579: 0x9690, - 15580: 0x89A2, - 15581: 0x89A3, - 15582: 0x89A4, - 15583: 0x89A5, - 15584: 0x89A6, - 15585: 0x89A7, - 15586: 0x89A8, - 15587: 0x89A9, - 15588: 0x89AA, - 15589: 0x89AB, - 15590: 0x89AC, - 15591: 0x89AD, - 15592: 0x89AE, - 15593: 0x89AF, - 15594: 0x89B0, - 15595: 0x89B1, - 15596: 0x89B2, - 15597: 0x89B3, - 15598: 0x89B4, - 15599: 0x89B5, - 15600: 0x89B6, - 15601: 0x89B7, - 15602: 0x89B8, - 15603: 0x89B9, - 15604: 0x89BA, - 15605: 0x89BB, - 15606: 0x89BC, - 15607: 0x89BD, - 15608: 0x89BE, - 15609: 0x89BF, - 15610: 0x89C0, - 15611: 0x89C3, - 15612: 0x89CD, - 15613: 0x89D3, - 15614: 0x89D4, - 15615: 0x89D5, - 15616: 0x89D7, - 15617: 0x89D8, - 15618: 0x89D9, - 15619: 0x89DB, - 15620: 0x89DD, - 15621: 0x89DF, - 15622: 0x89E0, - 15623: 0x89E1, - 15624: 0x89E2, - 15625: 0x89E4, - 15626: 0x89E7, - 15627: 0x89E8, - 15628: 0x89E9, - 15629: 0x89EA, - 15630: 0x89EC, - 15631: 0x89ED, - 15632: 0x89EE, - 15633: 0x89F0, - 15634: 0x89F1, - 15635: 0x89F2, - 15636: 0x89F4, - 15637: 0x89F5, - 15638: 0x89F6, - 15639: 0x89F7, - 15640: 0x89F8, - 15641: 0x89F9, - 15642: 0x89FA, - 15643: 0x89FB, - 15644: 0x89FC, - 15645: 0x89FD, - 15646: 0x89FE, - 15647: 0x89FF, - 15648: 0x8A01, - 15649: 0x8A02, - 15650: 0x8A03, - 15651: 0x8A04, - 15652: 0x8A05, - 15653: 0x8A06, - 15654: 0x8A08, - 15655: 0x8A09, - 15656: 0x8A0A, - 15657: 0x8A0B, - 15658: 0x8A0C, - 15659: 0x8A0D, - 15660: 0x8A0E, - 15661: 0x8A0F, - 15662: 0x8A10, - 15663: 0x8A11, - 15664: 0x8A12, - 15665: 0x8A13, - 15666: 0x8A14, - 15667: 0x8A15, - 15668: 0x8A16, - 15669: 0x8A17, - 15670: 0x8A18, - 15671: 0x8A19, - 15672: 0x8A1A, - 15673: 0x8A1B, - 15674: 0x8A1C, - 15675: 0x8A1D, - 15676: 0x5370, - 15677: 0x82F1, - 15678: 0x6A31, - 15679: 0x5A74, - 15680: 0x9E70, - 15681: 0x5E94, - 15682: 0x7F28, - 15683: 0x83B9, - 15684: 0x8424, - 15685: 0x8425, - 15686: 0x8367, - 15687: 0x8747, - 15688: 0x8FCE, - 15689: 0x8D62, - 15690: 0x76C8, - 15691: 0x5F71, - 15692: 0x9896, - 15693: 0x786C, - 15694: 0x6620, - 15695: 0x54DF, - 15696: 0x62E5, - 15697: 0x4F63, - 15698: 0x81C3, - 15699: 0x75C8, - 15700: 0x5EB8, - 15701: 0x96CD, - 15702: 0x8E0A, - 15703: 0x86F9, - 15704: 0x548F, - 15705: 0x6CF3, - 15706: 0x6D8C, - 15707: 0x6C38, - 15708: 0x607F, - 15709: 0x52C7, - 15710: 0x7528, - 15711: 0x5E7D, - 15712: 0x4F18, - 15713: 0x60A0, - 15714: 0x5FE7, - 15715: 0x5C24, - 15716: 0x7531, - 15717: 0x90AE, - 15718: 0x94C0, - 15719: 0x72B9, - 15720: 0x6CB9, - 15721: 0x6E38, - 15722: 0x9149, - 15723: 0x6709, - 15724: 0x53CB, - 15725: 0x53F3, - 15726: 0x4F51, - 15727: 0x91C9, - 15728: 0x8BF1, - 15729: 0x53C8, - 15730: 0x5E7C, - 15731: 0x8FC2, - 15732: 0x6DE4, - 15733: 0x4E8E, - 15734: 0x76C2, - 15735: 0x6986, - 15736: 0x865E, - 15737: 0x611A, - 15738: 0x8206, - 15739: 0x4F59, - 15740: 0x4FDE, - 15741: 0x903E, - 15742: 0x9C7C, - 15743: 0x6109, - 15744: 0x6E1D, - 15745: 0x6E14, - 15746: 0x9685, - 15747: 0x4E88, - 15748: 0x5A31, - 15749: 0x96E8, - 15750: 0x4E0E, - 15751: 0x5C7F, - 15752: 0x79B9, - 15753: 0x5B87, - 15754: 0x8BED, - 15755: 0x7FBD, - 15756: 0x7389, - 15757: 0x57DF, - 15758: 0x828B, - 15759: 0x90C1, - 15760: 0x5401, - 15761: 0x9047, - 15762: 0x55BB, - 15763: 0x5CEA, - 15764: 0x5FA1, - 15765: 0x6108, - 15766: 0x6B32, - 15767: 0x72F1, - 15768: 0x80B2, - 15769: 0x8A89, - 15770: 0x8A1E, - 15771: 0x8A1F, - 15772: 0x8A20, - 15773: 0x8A21, - 15774: 0x8A22, - 15775: 0x8A23, - 15776: 0x8A24, - 15777: 0x8A25, - 15778: 0x8A26, - 15779: 0x8A27, - 15780: 0x8A28, - 15781: 0x8A29, - 15782: 0x8A2A, - 15783: 0x8A2B, - 15784: 0x8A2C, - 15785: 0x8A2D, - 15786: 0x8A2E, - 15787: 0x8A2F, - 15788: 0x8A30, - 15789: 0x8A31, - 15790: 0x8A32, - 15791: 0x8A33, - 15792: 0x8A34, - 15793: 0x8A35, - 15794: 0x8A36, - 15795: 0x8A37, - 15796: 0x8A38, - 15797: 0x8A39, - 15798: 0x8A3A, - 15799: 0x8A3B, - 15800: 0x8A3C, - 15801: 0x8A3D, - 15802: 0x8A3F, - 15803: 0x8A40, - 15804: 0x8A41, - 15805: 0x8A42, - 15806: 0x8A43, - 15807: 0x8A44, - 15808: 0x8A45, - 15809: 0x8A46, - 15810: 0x8A47, - 15811: 0x8A49, - 15812: 0x8A4A, - 15813: 0x8A4B, - 15814: 0x8A4C, - 15815: 0x8A4D, - 15816: 0x8A4E, - 15817: 0x8A4F, - 15818: 0x8A50, - 15819: 0x8A51, - 15820: 0x8A52, - 15821: 0x8A53, - 15822: 0x8A54, - 15823: 0x8A55, - 15824: 0x8A56, - 15825: 0x8A57, - 15826: 0x8A58, - 15827: 0x8A59, - 15828: 0x8A5A, - 15829: 0x8A5B, - 15830: 0x8A5C, - 15831: 0x8A5D, - 15832: 0x8A5E, - 15833: 0x8A5F, - 15834: 0x8A60, - 15835: 0x8A61, - 15836: 0x8A62, - 15837: 0x8A63, - 15838: 0x8A64, - 15839: 0x8A65, - 15840: 0x8A66, - 15841: 0x8A67, - 15842: 0x8A68, - 15843: 0x8A69, - 15844: 0x8A6A, - 15845: 0x8A6B, - 15846: 0x8A6C, - 15847: 0x8A6D, - 15848: 0x8A6E, - 15849: 0x8A6F, - 15850: 0x8A70, - 15851: 0x8A71, - 15852: 0x8A72, - 15853: 0x8A73, - 15854: 0x8A74, - 15855: 0x8A75, - 15856: 0x8A76, - 15857: 0x8A77, - 15858: 0x8A78, - 15859: 0x8A7A, - 15860: 0x8A7B, - 15861: 0x8A7C, - 15862: 0x8A7D, - 15863: 0x8A7E, - 15864: 0x8A7F, - 15865: 0x8A80, - 15866: 0x6D74, - 15867: 0x5BD3, - 15868: 0x88D5, - 15869: 0x9884, - 15870: 0x8C6B, - 15871: 0x9A6D, - 15872: 0x9E33, - 15873: 0x6E0A, - 15874: 0x51A4, - 15875: 0x5143, - 15876: 0x57A3, - 15877: 0x8881, - 15878: 0x539F, - 15879: 0x63F4, - 15880: 0x8F95, - 15881: 0x56ED, - 15882: 0x5458, - 15883: 0x5706, - 15884: 0x733F, - 15885: 0x6E90, - 15886: 0x7F18, - 15887: 0x8FDC, - 15888: 0x82D1, - 15889: 0x613F, - 15890: 0x6028, - 15891: 0x9662, - 15892: 0x66F0, - 15893: 0x7EA6, - 15894: 0x8D8A, - 15895: 0x8DC3, - 15896: 0x94A5, - 15897: 0x5CB3, - 15898: 0x7CA4, - 15899: 0x6708, - 15900: 0x60A6, - 15901: 0x9605, - 15902: 0x8018, - 15903: 0x4E91, - 15904: 0x90E7, - 15905: 0x5300, - 15906: 0x9668, - 15907: 0x5141, - 15908: 0x8FD0, - 15909: 0x8574, - 15910: 0x915D, - 15911: 0x6655, - 15912: 0x97F5, - 15913: 0x5B55, - 15914: 0x531D, - 15915: 0x7838, - 15916: 0x6742, - 15917: 0x683D, - 15918: 0x54C9, - 15919: 0x707E, - 15920: 0x5BB0, - 15921: 0x8F7D, - 15922: 0x518D, - 15923: 0x5728, - 15924: 0x54B1, - 15925: 0x6512, - 15926: 0x6682, - 15927: 0x8D5E, - 15928: 0x8D43, - 15929: 0x810F, - 15930: 0x846C, - 15931: 0x906D, - 15932: 0x7CDF, - 15933: 0x51FF, - 15934: 0x85FB, - 15935: 0x67A3, - 15936: 0x65E9, - 15937: 0x6FA1, - 15938: 0x86A4, - 15939: 0x8E81, - 15940: 0x566A, - 15941: 0x9020, - 15942: 0x7682, - 15943: 0x7076, - 15944: 0x71E5, - 15945: 0x8D23, - 15946: 0x62E9, - 15947: 0x5219, - 15948: 0x6CFD, - 15949: 0x8D3C, - 15950: 0x600E, - 15951: 0x589E, - 15952: 0x618E, - 15953: 0x66FE, - 15954: 0x8D60, - 15955: 0x624E, - 15956: 0x55B3, - 15957: 0x6E23, - 15958: 0x672D, - 15959: 0x8F67, - 15960: 0x8A81, - 15961: 0x8A82, - 15962: 0x8A83, - 15963: 0x8A84, - 15964: 0x8A85, - 15965: 0x8A86, - 15966: 0x8A87, - 15967: 0x8A88, - 15968: 0x8A8B, - 15969: 0x8A8C, - 15970: 0x8A8D, - 15971: 0x8A8E, - 15972: 0x8A8F, - 15973: 0x8A90, - 15974: 0x8A91, - 15975: 0x8A92, - 15976: 0x8A94, - 15977: 0x8A95, - 15978: 0x8A96, - 15979: 0x8A97, - 15980: 0x8A98, - 15981: 0x8A99, - 15982: 0x8A9A, - 15983: 0x8A9B, - 15984: 0x8A9C, - 15985: 0x8A9D, - 15986: 0x8A9E, - 15987: 0x8A9F, - 15988: 0x8AA0, - 15989: 0x8AA1, - 15990: 0x8AA2, - 15991: 0x8AA3, - 15992: 0x8AA4, - 15993: 0x8AA5, - 15994: 0x8AA6, - 15995: 0x8AA7, - 15996: 0x8AA8, - 15997: 0x8AA9, - 15998: 0x8AAA, - 15999: 0x8AAB, - 16000: 0x8AAC, - 16001: 0x8AAD, - 16002: 0x8AAE, - 16003: 0x8AAF, - 16004: 0x8AB0, - 16005: 0x8AB1, - 16006: 0x8AB2, - 16007: 0x8AB3, - 16008: 0x8AB4, - 16009: 0x8AB5, - 16010: 0x8AB6, - 16011: 0x8AB7, - 16012: 0x8AB8, - 16013: 0x8AB9, - 16014: 0x8ABA, - 16015: 0x8ABB, - 16016: 0x8ABC, - 16017: 0x8ABD, - 16018: 0x8ABE, - 16019: 0x8ABF, - 16020: 0x8AC0, - 16021: 0x8AC1, - 16022: 0x8AC2, - 16023: 0x8AC3, - 16024: 0x8AC4, - 16025: 0x8AC5, - 16026: 0x8AC6, - 16027: 0x8AC7, - 16028: 0x8AC8, - 16029: 0x8AC9, - 16030: 0x8ACA, - 16031: 0x8ACB, - 16032: 0x8ACC, - 16033: 0x8ACD, - 16034: 0x8ACE, - 16035: 0x8ACF, - 16036: 0x8AD0, - 16037: 0x8AD1, - 16038: 0x8AD2, - 16039: 0x8AD3, - 16040: 0x8AD4, - 16041: 0x8AD5, - 16042: 0x8AD6, - 16043: 0x8AD7, - 16044: 0x8AD8, - 16045: 0x8AD9, - 16046: 0x8ADA, - 16047: 0x8ADB, - 16048: 0x8ADC, - 16049: 0x8ADD, - 16050: 0x8ADE, - 16051: 0x8ADF, - 16052: 0x8AE0, - 16053: 0x8AE1, - 16054: 0x8AE2, - 16055: 0x8AE3, - 16056: 0x94E1, - 16057: 0x95F8, - 16058: 0x7728, - 16059: 0x6805, - 16060: 0x69A8, - 16061: 0x548B, - 16062: 0x4E4D, - 16063: 0x70B8, - 16064: 0x8BC8, - 16065: 0x6458, - 16066: 0x658B, - 16067: 0x5B85, - 16068: 0x7A84, - 16069: 0x503A, - 16070: 0x5BE8, - 16071: 0x77BB, - 16072: 0x6BE1, - 16073: 0x8A79, - 16074: 0x7C98, - 16075: 0x6CBE, - 16076: 0x76CF, - 16077: 0x65A9, - 16078: 0x8F97, - 16079: 0x5D2D, - 16080: 0x5C55, - 16081: 0x8638, - 16082: 0x6808, - 16083: 0x5360, - 16084: 0x6218, - 16085: 0x7AD9, - 16086: 0x6E5B, - 16087: 0x7EFD, - 16088: 0x6A1F, - 16089: 0x7AE0, - 16090: 0x5F70, - 16091: 0x6F33, - 16092: 0x5F20, - 16093: 0x638C, - 16094: 0x6DA8, - 16095: 0x6756, - 16096: 0x4E08, - 16097: 0x5E10, - 16098: 0x8D26, - 16099: 0x4ED7, - 16100: 0x80C0, - 16101: 0x7634, - 16102: 0x969C, - 16103: 0x62DB, - 16104: 0x662D, - 16105: 0x627E, - 16106: 0x6CBC, - 16107: 0x8D75, - 16108: 0x7167, - 16109: 0x7F69, - 16110: 0x5146, - 16111: 0x8087, - 16112: 0x53EC, - 16113: 0x906E, - 16114: 0x6298, - 16115: 0x54F2, - 16116: 0x86F0, - 16117: 0x8F99, - 16118: 0x8005, - 16119: 0x9517, - 16120: 0x8517, - 16121: 0x8FD9, - 16122: 0x6D59, - 16123: 0x73CD, - 16124: 0x659F, - 16125: 0x771F, - 16126: 0x7504, - 16127: 0x7827, - 16128: 0x81FB, - 16129: 0x8D1E, - 16130: 0x9488, - 16131: 0x4FA6, - 16132: 0x6795, - 16133: 0x75B9, - 16134: 0x8BCA, - 16135: 0x9707, - 16136: 0x632F, - 16137: 0x9547, - 16138: 0x9635, - 16139: 0x84B8, - 16140: 0x6323, - 16141: 0x7741, - 16142: 0x5F81, - 16143: 0x72F0, - 16144: 0x4E89, - 16145: 0x6014, - 16146: 0x6574, - 16147: 0x62EF, - 16148: 0x6B63, - 16149: 0x653F, - 16150: 0x8AE4, - 16151: 0x8AE5, - 16152: 0x8AE6, - 16153: 0x8AE7, - 16154: 0x8AE8, - 16155: 0x8AE9, - 16156: 0x8AEA, - 16157: 0x8AEB, - 16158: 0x8AEC, - 16159: 0x8AED, - 16160: 0x8AEE, - 16161: 0x8AEF, - 16162: 0x8AF0, - 16163: 0x8AF1, - 16164: 0x8AF2, - 16165: 0x8AF3, - 16166: 0x8AF4, - 16167: 0x8AF5, - 16168: 0x8AF6, - 16169: 0x8AF7, - 16170: 0x8AF8, - 16171: 0x8AF9, - 16172: 0x8AFA, - 16173: 0x8AFB, - 16174: 0x8AFC, - 16175: 0x8AFD, - 16176: 0x8AFE, - 16177: 0x8AFF, - 16178: 0x8B00, - 16179: 0x8B01, - 16180: 0x8B02, - 16181: 0x8B03, - 16182: 0x8B04, - 16183: 0x8B05, - 16184: 0x8B06, - 16185: 0x8B08, - 16186: 0x8B09, - 16187: 0x8B0A, - 16188: 0x8B0B, - 16189: 0x8B0C, - 16190: 0x8B0D, - 16191: 0x8B0E, - 16192: 0x8B0F, - 16193: 0x8B10, - 16194: 0x8B11, - 16195: 0x8B12, - 16196: 0x8B13, - 16197: 0x8B14, - 16198: 0x8B15, - 16199: 0x8B16, - 16200: 0x8B17, - 16201: 0x8B18, - 16202: 0x8B19, - 16203: 0x8B1A, - 16204: 0x8B1B, - 16205: 0x8B1C, - 16206: 0x8B1D, - 16207: 0x8B1E, - 16208: 0x8B1F, - 16209: 0x8B20, - 16210: 0x8B21, - 16211: 0x8B22, - 16212: 0x8B23, - 16213: 0x8B24, - 16214: 0x8B25, - 16215: 0x8B27, - 16216: 0x8B28, - 16217: 0x8B29, - 16218: 0x8B2A, - 16219: 0x8B2B, - 16220: 0x8B2C, - 16221: 0x8B2D, - 16222: 0x8B2E, - 16223: 0x8B2F, - 16224: 0x8B30, - 16225: 0x8B31, - 16226: 0x8B32, - 16227: 0x8B33, - 16228: 0x8B34, - 16229: 0x8B35, - 16230: 0x8B36, - 16231: 0x8B37, - 16232: 0x8B38, - 16233: 0x8B39, - 16234: 0x8B3A, - 16235: 0x8B3B, - 16236: 0x8B3C, - 16237: 0x8B3D, - 16238: 0x8B3E, - 16239: 0x8B3F, - 16240: 0x8B40, - 16241: 0x8B41, - 16242: 0x8B42, - 16243: 0x8B43, - 16244: 0x8B44, - 16245: 0x8B45, - 16246: 0x5E27, - 16247: 0x75C7, - 16248: 0x90D1, - 16249: 0x8BC1, - 16250: 0x829D, - 16251: 0x679D, - 16252: 0x652F, - 16253: 0x5431, - 16254: 0x8718, - 16255: 0x77E5, - 16256: 0x80A2, - 16257: 0x8102, - 16258: 0x6C41, - 16259: 0x4E4B, - 16260: 0x7EC7, - 16261: 0x804C, - 16262: 0x76F4, - 16263: 0x690D, - 16264: 0x6B96, - 16265: 0x6267, - 16266: 0x503C, - 16267: 0x4F84, - 16268: 0x5740, - 16269: 0x6307, - 16270: 0x6B62, - 16271: 0x8DBE, - 16272: 0x53EA, - 16273: 0x65E8, - 16274: 0x7EB8, - 16275: 0x5FD7, - 16276: 0x631A, - 16277: 0x63B7, - 16278: 0x81F3, - 16279: 0x81F4, - 16280: 0x7F6E, - 16281: 0x5E1C, - 16282: 0x5CD9, - 16283: 0x5236, - 16284: 0x667A, - 16285: 0x79E9, - 16286: 0x7A1A, - 16287: 0x8D28, - 16288: 0x7099, - 16289: 0x75D4, - 16290: 0x6EDE, - 16291: 0x6CBB, - 16292: 0x7A92, - 16293: 0x4E2D, - 16294: 0x76C5, - 16295: 0x5FE0, - 16296: 0x949F, - 16297: 0x8877, - 16298: 0x7EC8, - 16299: 0x79CD, - 16300: 0x80BF, - 16301: 0x91CD, - 16302: 0x4EF2, - 16303: 0x4F17, - 16304: 0x821F, - 16305: 0x5468, - 16306: 0x5DDE, - 16307: 0x6D32, - 16308: 0x8BCC, - 16309: 0x7CA5, - 16310: 0x8F74, - 16311: 0x8098, - 16312: 0x5E1A, - 16313: 0x5492, - 16314: 0x76B1, - 16315: 0x5B99, - 16316: 0x663C, - 16317: 0x9AA4, - 16318: 0x73E0, - 16319: 0x682A, - 16320: 0x86DB, - 16321: 0x6731, - 16322: 0x732A, - 16323: 0x8BF8, - 16324: 0x8BDB, - 16325: 0x9010, - 16326: 0x7AF9, - 16327: 0x70DB, - 16328: 0x716E, - 16329: 0x62C4, - 16330: 0x77A9, - 16331: 0x5631, - 16332: 0x4E3B, - 16333: 0x8457, - 16334: 0x67F1, - 16335: 0x52A9, - 16336: 0x86C0, - 16337: 0x8D2E, - 16338: 0x94F8, - 16339: 0x7B51, - 16340: 0x8B46, - 16341: 0x8B47, - 16342: 0x8B48, - 16343: 0x8B49, - 16344: 0x8B4A, - 16345: 0x8B4B, - 16346: 0x8B4C, - 16347: 0x8B4D, - 16348: 0x8B4E, - 16349: 0x8B4F, - 16350: 0x8B50, - 16351: 0x8B51, - 16352: 0x8B52, - 16353: 0x8B53, - 16354: 0x8B54, - 16355: 0x8B55, - 16356: 0x8B56, - 16357: 0x8B57, - 16358: 0x8B58, - 16359: 0x8B59, - 16360: 0x8B5A, - 16361: 0x8B5B, - 16362: 0x8B5C, - 16363: 0x8B5D, - 16364: 0x8B5E, - 16365: 0x8B5F, - 16366: 0x8B60, - 16367: 0x8B61, - 16368: 0x8B62, - 16369: 0x8B63, - 16370: 0x8B64, - 16371: 0x8B65, - 16372: 0x8B67, - 16373: 0x8B68, - 16374: 0x8B69, - 16375: 0x8B6A, - 16376: 0x8B6B, - 16377: 0x8B6D, - 16378: 0x8B6E, - 16379: 0x8B6F, - 16380: 0x8B70, - 16381: 0x8B71, - 16382: 0x8B72, - 16383: 0x8B73, - 16384: 0x8B74, - 16385: 0x8B75, - 16386: 0x8B76, - 16387: 0x8B77, - 16388: 0x8B78, - 16389: 0x8B79, - 16390: 0x8B7A, - 16391: 0x8B7B, - 16392: 0x8B7C, - 16393: 0x8B7D, - 16394: 0x8B7E, - 16395: 0x8B7F, - 16396: 0x8B80, - 16397: 0x8B81, - 16398: 0x8B82, - 16399: 0x8B83, - 16400: 0x8B84, - 16401: 0x8B85, - 16402: 0x8B86, - 16403: 0x8B87, - 16404: 0x8B88, - 16405: 0x8B89, - 16406: 0x8B8A, - 16407: 0x8B8B, - 16408: 0x8B8C, - 16409: 0x8B8D, - 16410: 0x8B8E, - 16411: 0x8B8F, - 16412: 0x8B90, - 16413: 0x8B91, - 16414: 0x8B92, - 16415: 0x8B93, - 16416: 0x8B94, - 16417: 0x8B95, - 16418: 0x8B96, - 16419: 0x8B97, - 16420: 0x8B98, - 16421: 0x8B99, - 16422: 0x8B9A, - 16423: 0x8B9B, - 16424: 0x8B9C, - 16425: 0x8B9D, - 16426: 0x8B9E, - 16427: 0x8B9F, - 16428: 0x8BAC, - 16429: 0x8BB1, - 16430: 0x8BBB, - 16431: 0x8BC7, - 16432: 0x8BD0, - 16433: 0x8BEA, - 16434: 0x8C09, - 16435: 0x8C1E, - 16436: 0x4F4F, - 16437: 0x6CE8, - 16438: 0x795D, - 16439: 0x9A7B, - 16440: 0x6293, - 16441: 0x722A, - 16442: 0x62FD, - 16443: 0x4E13, - 16444: 0x7816, - 16445: 0x8F6C, - 16446: 0x64B0, - 16447: 0x8D5A, - 16448: 0x7BC6, - 16449: 0x6869, - 16450: 0x5E84, - 16451: 0x88C5, - 16452: 0x5986, - 16453: 0x649E, - 16454: 0x58EE, - 16455: 0x72B6, - 16456: 0x690E, - 16457: 0x9525, - 16458: 0x8FFD, - 16459: 0x8D58, - 16460: 0x5760, - 16461: 0x7F00, - 16462: 0x8C06, - 16463: 0x51C6, - 16464: 0x6349, - 16465: 0x62D9, - 16466: 0x5353, - 16467: 0x684C, - 16468: 0x7422, - 16469: 0x8301, - 16470: 0x914C, - 16471: 0x5544, - 16472: 0x7740, - 16473: 0x707C, - 16474: 0x6D4A, - 16475: 0x5179, - 16476: 0x54A8, - 16477: 0x8D44, - 16478: 0x59FF, - 16479: 0x6ECB, - 16480: 0x6DC4, - 16481: 0x5B5C, - 16482: 0x7D2B, - 16483: 0x4ED4, - 16484: 0x7C7D, - 16485: 0x6ED3, - 16486: 0x5B50, - 16487: 0x81EA, - 16488: 0x6E0D, - 16489: 0x5B57, - 16490: 0x9B03, - 16491: 0x68D5, - 16492: 0x8E2A, - 16493: 0x5B97, - 16494: 0x7EFC, - 16495: 0x603B, - 16496: 0x7EB5, - 16497: 0x90B9, - 16498: 0x8D70, - 16499: 0x594F, - 16500: 0x63CD, - 16501: 0x79DF, - 16502: 0x8DB3, - 16503: 0x5352, - 16504: 0x65CF, - 16505: 0x7956, - 16506: 0x8BC5, - 16507: 0x963B, - 16508: 0x7EC4, - 16509: 0x94BB, - 16510: 0x7E82, - 16511: 0x5634, - 16512: 0x9189, - 16513: 0x6700, - 16514: 0x7F6A, - 16515: 0x5C0A, - 16516: 0x9075, - 16517: 0x6628, - 16518: 0x5DE6, - 16519: 0x4F50, - 16520: 0x67DE, - 16521: 0x505A, - 16522: 0x4F5C, - 16523: 0x5750, - 16524: 0x5EA7, - 16530: 0x8C38, - 16531: 0x8C39, - 16532: 0x8C3A, - 16533: 0x8C3B, - 16534: 0x8C3C, - 16535: 0x8C3D, - 16536: 0x8C3E, - 16537: 0x8C3F, - 16538: 0x8C40, - 16539: 0x8C42, - 16540: 0x8C43, - 16541: 0x8C44, - 16542: 0x8C45, - 16543: 0x8C48, - 16544: 0x8C4A, - 16545: 0x8C4B, - 16546: 0x8C4D, - 16547: 0x8C4E, - 16548: 0x8C4F, - 16549: 0x8C50, - 16550: 0x8C51, - 16551: 0x8C52, - 16552: 0x8C53, - 16553: 0x8C54, - 16554: 0x8C56, - 16555: 0x8C57, - 16556: 0x8C58, - 16557: 0x8C59, - 16558: 0x8C5B, - 16559: 0x8C5C, - 16560: 0x8C5D, - 16561: 0x8C5E, - 16562: 0x8C5F, - 16563: 0x8C60, - 16564: 0x8C63, - 16565: 0x8C64, - 16566: 0x8C65, - 16567: 0x8C66, - 16568: 0x8C67, - 16569: 0x8C68, - 16570: 0x8C69, - 16571: 0x8C6C, - 16572: 0x8C6D, - 16573: 0x8C6E, - 16574: 0x8C6F, - 16575: 0x8C70, - 16576: 0x8C71, - 16577: 0x8C72, - 16578: 0x8C74, - 16579: 0x8C75, - 16580: 0x8C76, - 16581: 0x8C77, - 16582: 0x8C7B, - 16583: 0x8C7C, - 16584: 0x8C7D, - 16585: 0x8C7E, - 16586: 0x8C7F, - 16587: 0x8C80, - 16588: 0x8C81, - 16589: 0x8C83, - 16590: 0x8C84, - 16591: 0x8C86, - 16592: 0x8C87, - 16593: 0x8C88, - 16594: 0x8C8B, - 16595: 0x8C8D, - 16596: 0x8C8E, - 16597: 0x8C8F, - 16598: 0x8C90, - 16599: 0x8C91, - 16600: 0x8C92, - 16601: 0x8C93, - 16602: 0x8C95, - 16603: 0x8C96, - 16604: 0x8C97, - 16605: 0x8C99, - 16606: 0x8C9A, - 16607: 0x8C9B, - 16608: 0x8C9C, - 16609: 0x8C9D, - 16610: 0x8C9E, - 16611: 0x8C9F, - 16612: 0x8CA0, - 16613: 0x8CA1, - 16614: 0x8CA2, - 16615: 0x8CA3, - 16616: 0x8CA4, - 16617: 0x8CA5, - 16618: 0x8CA6, - 16619: 0x8CA7, - 16620: 0x8CA8, - 16621: 0x8CA9, - 16622: 0x8CAA, - 16623: 0x8CAB, - 16624: 0x8CAC, - 16625: 0x8CAD, - 16626: 0x4E8D, - 16627: 0x4E0C, - 16628: 0x5140, - 16629: 0x4E10, - 16630: 0x5EFF, - 16631: 0x5345, - 16632: 0x4E15, - 16633: 0x4E98, - 16634: 0x4E1E, - 16635: 0x9B32, - 16636: 0x5B6C, - 16637: 0x5669, - 16638: 0x4E28, - 16639: 0x79BA, - 16640: 0x4E3F, - 16641: 0x5315, - 16642: 0x4E47, - 16643: 0x592D, - 16644: 0x723B, - 16645: 0x536E, - 16646: 0x6C10, - 16647: 0x56DF, - 16648: 0x80E4, - 16649: 0x9997, - 16650: 0x6BD3, - 16651: 0x777E, - 16652: 0x9F17, - 16653: 0x4E36, - 16654: 0x4E9F, - 16655: 0x9F10, - 16656: 0x4E5C, - 16657: 0x4E69, - 16658: 0x4E93, - 16659: 0x8288, - 16660: 0x5B5B, - 16661: 0x556C, - 16662: 0x560F, - 16663: 0x4EC4, - 16664: 0x538D, - 16665: 0x539D, - 16666: 0x53A3, - 16667: 0x53A5, - 16668: 0x53AE, - 16669: 0x9765, - 16670: 0x8D5D, - 16671: 0x531A, - 16672: 0x53F5, - 16673: 0x5326, - 16674: 0x532E, - 16675: 0x533E, - 16676: 0x8D5C, - 16677: 0x5366, - 16678: 0x5363, - 16679: 0x5202, - 16680: 0x5208, - 16681: 0x520E, - 16682: 0x522D, - 16683: 0x5233, - 16684: 0x523F, - 16685: 0x5240, - 16686: 0x524C, - 16687: 0x525E, - 16688: 0x5261, - 16689: 0x525C, - 16690: 0x84AF, - 16691: 0x527D, - 16692: 0x5282, - 16693: 0x5281, - 16694: 0x5290, - 16695: 0x5293, - 16696: 0x5182, - 16697: 0x7F54, - 16698: 0x4EBB, - 16699: 0x4EC3, - 16700: 0x4EC9, - 16701: 0x4EC2, - 16702: 0x4EE8, - 16703: 0x4EE1, - 16704: 0x4EEB, - 16705: 0x4EDE, - 16706: 0x4F1B, - 16707: 0x4EF3, - 16708: 0x4F22, - 16709: 0x4F64, - 16710: 0x4EF5, - 16711: 0x4F25, - 16712: 0x4F27, - 16713: 0x4F09, - 16714: 0x4F2B, - 16715: 0x4F5E, - 16716: 0x4F67, - 16717: 0x6538, - 16718: 0x4F5A, - 16719: 0x4F5D, - 16720: 0x8CAE, - 16721: 0x8CAF, - 16722: 0x8CB0, - 16723: 0x8CB1, - 16724: 0x8CB2, - 16725: 0x8CB3, - 16726: 0x8CB4, - 16727: 0x8CB5, - 16728: 0x8CB6, - 16729: 0x8CB7, - 16730: 0x8CB8, - 16731: 0x8CB9, - 16732: 0x8CBA, - 16733: 0x8CBB, - 16734: 0x8CBC, - 16735: 0x8CBD, - 16736: 0x8CBE, - 16737: 0x8CBF, - 16738: 0x8CC0, - 16739: 0x8CC1, - 16740: 0x8CC2, - 16741: 0x8CC3, - 16742: 0x8CC4, - 16743: 0x8CC5, - 16744: 0x8CC6, - 16745: 0x8CC7, - 16746: 0x8CC8, - 16747: 0x8CC9, - 16748: 0x8CCA, - 16749: 0x8CCB, - 16750: 0x8CCC, - 16751: 0x8CCD, - 16752: 0x8CCE, - 16753: 0x8CCF, - 16754: 0x8CD0, - 16755: 0x8CD1, - 16756: 0x8CD2, - 16757: 0x8CD3, - 16758: 0x8CD4, - 16759: 0x8CD5, - 16760: 0x8CD6, - 16761: 0x8CD7, - 16762: 0x8CD8, - 16763: 0x8CD9, - 16764: 0x8CDA, - 16765: 0x8CDB, - 16766: 0x8CDC, - 16767: 0x8CDD, - 16768: 0x8CDE, - 16769: 0x8CDF, - 16770: 0x8CE0, - 16771: 0x8CE1, - 16772: 0x8CE2, - 16773: 0x8CE3, - 16774: 0x8CE4, - 16775: 0x8CE5, - 16776: 0x8CE6, - 16777: 0x8CE7, - 16778: 0x8CE8, - 16779: 0x8CE9, - 16780: 0x8CEA, - 16781: 0x8CEB, - 16782: 0x8CEC, - 16783: 0x8CED, - 16784: 0x8CEE, - 16785: 0x8CEF, - 16786: 0x8CF0, - 16787: 0x8CF1, - 16788: 0x8CF2, - 16789: 0x8CF3, - 16790: 0x8CF4, - 16791: 0x8CF5, - 16792: 0x8CF6, - 16793: 0x8CF7, - 16794: 0x8CF8, - 16795: 0x8CF9, - 16796: 0x8CFA, - 16797: 0x8CFB, - 16798: 0x8CFC, - 16799: 0x8CFD, - 16800: 0x8CFE, - 16801: 0x8CFF, - 16802: 0x8D00, - 16803: 0x8D01, - 16804: 0x8D02, - 16805: 0x8D03, - 16806: 0x8D04, - 16807: 0x8D05, - 16808: 0x8D06, - 16809: 0x8D07, - 16810: 0x8D08, - 16811: 0x8D09, - 16812: 0x8D0A, - 16813: 0x8D0B, - 16814: 0x8D0C, - 16815: 0x8D0D, - 16816: 0x4F5F, - 16817: 0x4F57, - 16818: 0x4F32, - 16819: 0x4F3D, - 16820: 0x4F76, - 16821: 0x4F74, - 16822: 0x4F91, - 16823: 0x4F89, - 16824: 0x4F83, - 16825: 0x4F8F, - 16826: 0x4F7E, - 16827: 0x4F7B, - 16828: 0x4FAA, - 16829: 0x4F7C, - 16830: 0x4FAC, - 16831: 0x4F94, - 16832: 0x4FE6, - 16833: 0x4FE8, - 16834: 0x4FEA, - 16835: 0x4FC5, - 16836: 0x4FDA, - 16837: 0x4FE3, - 16838: 0x4FDC, - 16839: 0x4FD1, - 16840: 0x4FDF, - 16841: 0x4FF8, - 16842: 0x5029, - 16843: 0x504C, - 16844: 0x4FF3, - 16845: 0x502C, - 16846: 0x500F, - 16847: 0x502E, - 16848: 0x502D, - 16849: 0x4FFE, - 16850: 0x501C, - 16851: 0x500C, - 16852: 0x5025, - 16853: 0x5028, - 16854: 0x507E, - 16855: 0x5043, - 16856: 0x5055, - 16857: 0x5048, - 16858: 0x504E, - 16859: 0x506C, - 16860: 0x507B, - 16861: 0x50A5, - 16862: 0x50A7, - 16863: 0x50A9, - 16864: 0x50BA, - 16865: 0x50D6, - 16866: 0x5106, - 16867: 0x50ED, - 16868: 0x50EC, - 16869: 0x50E6, - 16870: 0x50EE, - 16871: 0x5107, - 16872: 0x510B, - 16873: 0x4EDD, - 16874: 0x6C3D, - 16875: 0x4F58, - 16876: 0x4F65, - 16877: 0x4FCE, - 16878: 0x9FA0, - 16879: 0x6C46, - 16880: 0x7C74, - 16881: 0x516E, - 16882: 0x5DFD, - 16883: 0x9EC9, - 16884: 0x9998, - 16885: 0x5181, - 16886: 0x5914, - 16887: 0x52F9, - 16888: 0x530D, - 16889: 0x8A07, - 16890: 0x5310, - 16891: 0x51EB, - 16892: 0x5919, - 16893: 0x5155, - 16894: 0x4EA0, - 16895: 0x5156, - 16896: 0x4EB3, - 16897: 0x886E, - 16898: 0x88A4, - 16899: 0x4EB5, - 16900: 0x8114, - 16901: 0x88D2, - 16902: 0x7980, - 16903: 0x5B34, - 16904: 0x8803, - 16905: 0x7FB8, - 16906: 0x51AB, - 16907: 0x51B1, - 16908: 0x51BD, - 16909: 0x51BC, - 16910: 0x8D0E, - 16911: 0x8D0F, - 16912: 0x8D10, - 16913: 0x8D11, - 16914: 0x8D12, - 16915: 0x8D13, - 16916: 0x8D14, - 16917: 0x8D15, - 16918: 0x8D16, - 16919: 0x8D17, - 16920: 0x8D18, - 16921: 0x8D19, - 16922: 0x8D1A, - 16923: 0x8D1B, - 16924: 0x8D1C, - 16925: 0x8D20, - 16926: 0x8D51, - 16927: 0x8D52, - 16928: 0x8D57, - 16929: 0x8D5F, - 16930: 0x8D65, - 16931: 0x8D68, - 16932: 0x8D69, - 16933: 0x8D6A, - 16934: 0x8D6C, - 16935: 0x8D6E, - 16936: 0x8D6F, - 16937: 0x8D71, - 16938: 0x8D72, - 16939: 0x8D78, - 16940: 0x8D79, - 16941: 0x8D7A, - 16942: 0x8D7B, - 16943: 0x8D7C, - 16944: 0x8D7D, - 16945: 0x8D7E, - 16946: 0x8D7F, - 16947: 0x8D80, - 16948: 0x8D82, - 16949: 0x8D83, - 16950: 0x8D86, - 16951: 0x8D87, - 16952: 0x8D88, - 16953: 0x8D89, - 16954: 0x8D8C, - 16955: 0x8D8D, - 16956: 0x8D8E, - 16957: 0x8D8F, - 16958: 0x8D90, - 16959: 0x8D92, - 16960: 0x8D93, - 16961: 0x8D95, - 16962: 0x8D96, - 16963: 0x8D97, - 16964: 0x8D98, - 16965: 0x8D99, - 16966: 0x8D9A, - 16967: 0x8D9B, - 16968: 0x8D9C, - 16969: 0x8D9D, - 16970: 0x8D9E, - 16971: 0x8DA0, - 16972: 0x8DA1, - 16973: 0x8DA2, - 16974: 0x8DA4, - 16975: 0x8DA5, - 16976: 0x8DA6, - 16977: 0x8DA7, - 16978: 0x8DA8, - 16979: 0x8DA9, - 16980: 0x8DAA, - 16981: 0x8DAB, - 16982: 0x8DAC, - 16983: 0x8DAD, - 16984: 0x8DAE, - 16985: 0x8DAF, - 16986: 0x8DB0, - 16987: 0x8DB2, - 16988: 0x8DB6, - 16989: 0x8DB7, - 16990: 0x8DB9, - 16991: 0x8DBB, - 16992: 0x8DBD, - 16993: 0x8DC0, - 16994: 0x8DC1, - 16995: 0x8DC2, - 16996: 0x8DC5, - 16997: 0x8DC7, - 16998: 0x8DC8, - 16999: 0x8DC9, - 17000: 0x8DCA, - 17001: 0x8DCD, - 17002: 0x8DD0, - 17003: 0x8DD2, - 17004: 0x8DD3, - 17005: 0x8DD4, - 17006: 0x51C7, - 17007: 0x5196, - 17008: 0x51A2, - 17009: 0x51A5, - 17010: 0x8BA0, - 17011: 0x8BA6, - 17012: 0x8BA7, - 17013: 0x8BAA, - 17014: 0x8BB4, - 17015: 0x8BB5, - 17016: 0x8BB7, - 17017: 0x8BC2, - 17018: 0x8BC3, - 17019: 0x8BCB, - 17020: 0x8BCF, - 17021: 0x8BCE, - 17022: 0x8BD2, - 17023: 0x8BD3, - 17024: 0x8BD4, - 17025: 0x8BD6, - 17026: 0x8BD8, - 17027: 0x8BD9, - 17028: 0x8BDC, - 17029: 0x8BDF, - 17030: 0x8BE0, - 17031: 0x8BE4, - 17032: 0x8BE8, - 17033: 0x8BE9, - 17034: 0x8BEE, - 17035: 0x8BF0, - 17036: 0x8BF3, - 17037: 0x8BF6, - 17038: 0x8BF9, - 17039: 0x8BFC, - 17040: 0x8BFF, - 17041: 0x8C00, - 17042: 0x8C02, - 17043: 0x8C04, - 17044: 0x8C07, - 17045: 0x8C0C, - 17046: 0x8C0F, - 17047: 0x8C11, - 17048: 0x8C12, - 17049: 0x8C14, - 17050: 0x8C15, - 17051: 0x8C16, - 17052: 0x8C19, - 17053: 0x8C1B, - 17054: 0x8C18, - 17055: 0x8C1D, - 17056: 0x8C1F, - 17057: 0x8C20, - 17058: 0x8C21, - 17059: 0x8C25, - 17060: 0x8C27, - 17061: 0x8C2A, - 17062: 0x8C2B, - 17063: 0x8C2E, - 17064: 0x8C2F, - 17065: 0x8C32, - 17066: 0x8C33, - 17067: 0x8C35, - 17068: 0x8C36, - 17069: 0x5369, - 17070: 0x537A, - 17071: 0x961D, - 17072: 0x9622, - 17073: 0x9621, - 17074: 0x9631, - 17075: 0x962A, - 17076: 0x963D, - 17077: 0x963C, - 17078: 0x9642, - 17079: 0x9649, - 17080: 0x9654, - 17081: 0x965F, - 17082: 0x9667, - 17083: 0x966C, - 17084: 0x9672, - 17085: 0x9674, - 17086: 0x9688, - 17087: 0x968D, - 17088: 0x9697, - 17089: 0x96B0, - 17090: 0x9097, - 17091: 0x909B, - 17092: 0x909D, - 17093: 0x9099, - 17094: 0x90AC, - 17095: 0x90A1, - 17096: 0x90B4, - 17097: 0x90B3, - 17098: 0x90B6, - 17099: 0x90BA, - 17100: 0x8DD5, - 17101: 0x8DD8, - 17102: 0x8DD9, - 17103: 0x8DDC, - 17104: 0x8DE0, - 17105: 0x8DE1, - 17106: 0x8DE2, - 17107: 0x8DE5, - 17108: 0x8DE6, - 17109: 0x8DE7, - 17110: 0x8DE9, - 17111: 0x8DED, - 17112: 0x8DEE, - 17113: 0x8DF0, - 17114: 0x8DF1, - 17115: 0x8DF2, - 17116: 0x8DF4, - 17117: 0x8DF6, - 17118: 0x8DFC, - 17119: 0x8DFE, - 17120: 0x8DFF, - 17121: 0x8E00, - 17122: 0x8E01, - 17123: 0x8E02, - 17124: 0x8E03, - 17125: 0x8E04, - 17126: 0x8E06, - 17127: 0x8E07, - 17128: 0x8E08, - 17129: 0x8E0B, - 17130: 0x8E0D, - 17131: 0x8E0E, - 17132: 0x8E10, - 17133: 0x8E11, - 17134: 0x8E12, - 17135: 0x8E13, - 17136: 0x8E15, - 17137: 0x8E16, - 17138: 0x8E17, - 17139: 0x8E18, - 17140: 0x8E19, - 17141: 0x8E1A, - 17142: 0x8E1B, - 17143: 0x8E1C, - 17144: 0x8E20, - 17145: 0x8E21, - 17146: 0x8E24, - 17147: 0x8E25, - 17148: 0x8E26, - 17149: 0x8E27, - 17150: 0x8E28, - 17151: 0x8E2B, - 17152: 0x8E2D, - 17153: 0x8E30, - 17154: 0x8E32, - 17155: 0x8E33, - 17156: 0x8E34, - 17157: 0x8E36, - 17158: 0x8E37, - 17159: 0x8E38, - 17160: 0x8E3B, - 17161: 0x8E3C, - 17162: 0x8E3E, - 17163: 0x8E3F, - 17164: 0x8E43, - 17165: 0x8E45, - 17166: 0x8E46, - 17167: 0x8E4C, - 17168: 0x8E4D, - 17169: 0x8E4E, - 17170: 0x8E4F, - 17171: 0x8E50, - 17172: 0x8E53, - 17173: 0x8E54, - 17174: 0x8E55, - 17175: 0x8E56, - 17176: 0x8E57, - 17177: 0x8E58, - 17178: 0x8E5A, - 17179: 0x8E5B, - 17180: 0x8E5C, - 17181: 0x8E5D, - 17182: 0x8E5E, - 17183: 0x8E5F, - 17184: 0x8E60, - 17185: 0x8E61, - 17186: 0x8E62, - 17187: 0x8E63, - 17188: 0x8E64, - 17189: 0x8E65, - 17190: 0x8E67, - 17191: 0x8E68, - 17192: 0x8E6A, - 17193: 0x8E6B, - 17194: 0x8E6E, - 17195: 0x8E71, - 17196: 0x90B8, - 17197: 0x90B0, - 17198: 0x90CF, - 17199: 0x90C5, - 17200: 0x90BE, - 17201: 0x90D0, - 17202: 0x90C4, - 17203: 0x90C7, - 17204: 0x90D3, - 17205: 0x90E6, - 17206: 0x90E2, - 17207: 0x90DC, - 17208: 0x90D7, - 17209: 0x90DB, - 17210: 0x90EB, - 17211: 0x90EF, - 17212: 0x90FE, - 17213: 0x9104, - 17214: 0x9122, - 17215: 0x911E, - 17216: 0x9123, - 17217: 0x9131, - 17218: 0x912F, - 17219: 0x9139, - 17220: 0x9143, - 17221: 0x9146, - 17222: 0x520D, - 17223: 0x5942, - 17224: 0x52A2, - 17225: 0x52AC, - 17226: 0x52AD, - 17227: 0x52BE, - 17228: 0x54FF, - 17229: 0x52D0, - 17230: 0x52D6, - 17231: 0x52F0, - 17232: 0x53DF, - 17233: 0x71EE, - 17234: 0x77CD, - 17235: 0x5EF4, - 17236: 0x51F5, - 17237: 0x51FC, - 17238: 0x9B2F, - 17239: 0x53B6, - 17240: 0x5F01, - 17241: 0x755A, - 17242: 0x5DEF, - 17243: 0x574C, - 17244: 0x57A9, - 17245: 0x57A1, - 17246: 0x587E, - 17247: 0x58BC, - 17248: 0x58C5, - 17249: 0x58D1, - 17250: 0x5729, - 17251: 0x572C, - 17252: 0x572A, - 17253: 0x5733, - 17254: 0x5739, - 17255: 0x572E, - 17256: 0x572F, - 17257: 0x575C, - 17258: 0x573B, - 17259: 0x5742, - 17260: 0x5769, - 17261: 0x5785, - 17262: 0x576B, - 17263: 0x5786, - 17264: 0x577C, - 17265: 0x577B, - 17266: 0x5768, - 17267: 0x576D, - 17268: 0x5776, - 17269: 0x5773, - 17270: 0x57AD, - 17271: 0x57A4, - 17272: 0x578C, - 17273: 0x57B2, - 17274: 0x57CF, - 17275: 0x57A7, - 17276: 0x57B4, - 17277: 0x5793, - 17278: 0x57A0, - 17279: 0x57D5, - 17280: 0x57D8, - 17281: 0x57DA, - 17282: 0x57D9, - 17283: 0x57D2, - 17284: 0x57B8, - 17285: 0x57F4, - 17286: 0x57EF, - 17287: 0x57F8, - 17288: 0x57E4, - 17289: 0x57DD, - 17290: 0x8E73, - 17291: 0x8E75, - 17292: 0x8E77, - 17293: 0x8E78, - 17294: 0x8E79, - 17295: 0x8E7A, - 17296: 0x8E7B, - 17297: 0x8E7D, - 17298: 0x8E7E, - 17299: 0x8E80, - 17300: 0x8E82, - 17301: 0x8E83, - 17302: 0x8E84, - 17303: 0x8E86, - 17304: 0x8E88, - 17305: 0x8E89, - 17306: 0x8E8A, - 17307: 0x8E8B, - 17308: 0x8E8C, - 17309: 0x8E8D, - 17310: 0x8E8E, - 17311: 0x8E91, - 17312: 0x8E92, - 17313: 0x8E93, - 17314: 0x8E95, - 17315: 0x8E96, - 17316: 0x8E97, - 17317: 0x8E98, - 17318: 0x8E99, - 17319: 0x8E9A, - 17320: 0x8E9B, - 17321: 0x8E9D, - 17322: 0x8E9F, - 17323: 0x8EA0, - 17324: 0x8EA1, - 17325: 0x8EA2, - 17326: 0x8EA3, - 17327: 0x8EA4, - 17328: 0x8EA5, - 17329: 0x8EA6, - 17330: 0x8EA7, - 17331: 0x8EA8, - 17332: 0x8EA9, - 17333: 0x8EAA, - 17334: 0x8EAD, - 17335: 0x8EAE, - 17336: 0x8EB0, - 17337: 0x8EB1, - 17338: 0x8EB3, - 17339: 0x8EB4, - 17340: 0x8EB5, - 17341: 0x8EB6, - 17342: 0x8EB7, - 17343: 0x8EB8, - 17344: 0x8EB9, - 17345: 0x8EBB, - 17346: 0x8EBC, - 17347: 0x8EBD, - 17348: 0x8EBE, - 17349: 0x8EBF, - 17350: 0x8EC0, - 17351: 0x8EC1, - 17352: 0x8EC2, - 17353: 0x8EC3, - 17354: 0x8EC4, - 17355: 0x8EC5, - 17356: 0x8EC6, - 17357: 0x8EC7, - 17358: 0x8EC8, - 17359: 0x8EC9, - 17360: 0x8ECA, - 17361: 0x8ECB, - 17362: 0x8ECC, - 17363: 0x8ECD, - 17364: 0x8ECF, - 17365: 0x8ED0, - 17366: 0x8ED1, - 17367: 0x8ED2, - 17368: 0x8ED3, - 17369: 0x8ED4, - 17370: 0x8ED5, - 17371: 0x8ED6, - 17372: 0x8ED7, - 17373: 0x8ED8, - 17374: 0x8ED9, - 17375: 0x8EDA, - 17376: 0x8EDB, - 17377: 0x8EDC, - 17378: 0x8EDD, - 17379: 0x8EDE, - 17380: 0x8EDF, - 17381: 0x8EE0, - 17382: 0x8EE1, - 17383: 0x8EE2, - 17384: 0x8EE3, - 17385: 0x8EE4, - 17386: 0x580B, - 17387: 0x580D, - 17388: 0x57FD, - 17389: 0x57ED, - 17390: 0x5800, - 17391: 0x581E, - 17392: 0x5819, - 17393: 0x5844, - 17394: 0x5820, - 17395: 0x5865, - 17396: 0x586C, - 17397: 0x5881, - 17398: 0x5889, - 17399: 0x589A, - 17400: 0x5880, - 17401: 0x99A8, - 17402: 0x9F19, - 17403: 0x61FF, - 17404: 0x8279, - 17405: 0x827D, - 17406: 0x827F, - 17407: 0x828F, - 17408: 0x828A, - 17409: 0x82A8, - 17410: 0x8284, - 17411: 0x828E, - 17412: 0x8291, - 17413: 0x8297, - 17414: 0x8299, - 17415: 0x82AB, - 17416: 0x82B8, - 17417: 0x82BE, - 17418: 0x82B0, - 17419: 0x82C8, - 17420: 0x82CA, - 17421: 0x82E3, - 17422: 0x8298, - 17423: 0x82B7, - 17424: 0x82AE, - 17425: 0x82CB, - 17426: 0x82CC, - 17427: 0x82C1, - 17428: 0x82A9, - 17429: 0x82B4, - 17430: 0x82A1, - 17431: 0x82AA, - 17432: 0x829F, - 17433: 0x82C4, - 17434: 0x82CE, - 17435: 0x82A4, - 17436: 0x82E1, - 17437: 0x8309, - 17438: 0x82F7, - 17439: 0x82E4, - 17440: 0x830F, - 17441: 0x8307, - 17442: 0x82DC, - 17443: 0x82F4, - 17444: 0x82D2, - 17445: 0x82D8, - 17446: 0x830C, - 17447: 0x82FB, - 17448: 0x82D3, - 17449: 0x8311, - 17450: 0x831A, - 17451: 0x8306, - 17452: 0x8314, - 17453: 0x8315, - 17454: 0x82E0, - 17455: 0x82D5, - 17456: 0x831C, - 17457: 0x8351, - 17458: 0x835B, - 17459: 0x835C, - 17460: 0x8308, - 17461: 0x8392, - 17462: 0x833C, - 17463: 0x8334, - 17464: 0x8331, - 17465: 0x839B, - 17466: 0x835E, - 17467: 0x832F, - 17468: 0x834F, - 17469: 0x8347, - 17470: 0x8343, - 17471: 0x835F, - 17472: 0x8340, - 17473: 0x8317, - 17474: 0x8360, - 17475: 0x832D, - 17476: 0x833A, - 17477: 0x8333, - 17478: 0x8366, - 17479: 0x8365, - 17480: 0x8EE5, - 17481: 0x8EE6, - 17482: 0x8EE7, - 17483: 0x8EE8, - 17484: 0x8EE9, - 17485: 0x8EEA, - 17486: 0x8EEB, - 17487: 0x8EEC, - 17488: 0x8EED, - 17489: 0x8EEE, - 17490: 0x8EEF, - 17491: 0x8EF0, - 17492: 0x8EF1, - 17493: 0x8EF2, - 17494: 0x8EF3, - 17495: 0x8EF4, - 17496: 0x8EF5, - 17497: 0x8EF6, - 17498: 0x8EF7, - 17499: 0x8EF8, - 17500: 0x8EF9, - 17501: 0x8EFA, - 17502: 0x8EFB, - 17503: 0x8EFC, - 17504: 0x8EFD, - 17505: 0x8EFE, - 17506: 0x8EFF, - 17507: 0x8F00, - 17508: 0x8F01, - 17509: 0x8F02, - 17510: 0x8F03, - 17511: 0x8F04, - 17512: 0x8F05, - 17513: 0x8F06, - 17514: 0x8F07, - 17515: 0x8F08, - 17516: 0x8F09, - 17517: 0x8F0A, - 17518: 0x8F0B, - 17519: 0x8F0C, - 17520: 0x8F0D, - 17521: 0x8F0E, - 17522: 0x8F0F, - 17523: 0x8F10, - 17524: 0x8F11, - 17525: 0x8F12, - 17526: 0x8F13, - 17527: 0x8F14, - 17528: 0x8F15, - 17529: 0x8F16, - 17530: 0x8F17, - 17531: 0x8F18, - 17532: 0x8F19, - 17533: 0x8F1A, - 17534: 0x8F1B, - 17535: 0x8F1C, - 17536: 0x8F1D, - 17537: 0x8F1E, - 17538: 0x8F1F, - 17539: 0x8F20, - 17540: 0x8F21, - 17541: 0x8F22, - 17542: 0x8F23, - 17543: 0x8F24, - 17544: 0x8F25, - 17545: 0x8F26, - 17546: 0x8F27, - 17547: 0x8F28, - 17548: 0x8F29, - 17549: 0x8F2A, - 17550: 0x8F2B, - 17551: 0x8F2C, - 17552: 0x8F2D, - 17553: 0x8F2E, - 17554: 0x8F2F, - 17555: 0x8F30, - 17556: 0x8F31, - 17557: 0x8F32, - 17558: 0x8F33, - 17559: 0x8F34, - 17560: 0x8F35, - 17561: 0x8F36, - 17562: 0x8F37, - 17563: 0x8F38, - 17564: 0x8F39, - 17565: 0x8F3A, - 17566: 0x8F3B, - 17567: 0x8F3C, - 17568: 0x8F3D, - 17569: 0x8F3E, - 17570: 0x8F3F, - 17571: 0x8F40, - 17572: 0x8F41, - 17573: 0x8F42, - 17574: 0x8F43, - 17575: 0x8F44, - 17576: 0x8368, - 17577: 0x831B, - 17578: 0x8369, - 17579: 0x836C, - 17580: 0x836A, - 17581: 0x836D, - 17582: 0x836E, - 17583: 0x83B0, - 17584: 0x8378, - 17585: 0x83B3, - 17586: 0x83B4, - 17587: 0x83A0, - 17588: 0x83AA, - 17589: 0x8393, - 17590: 0x839C, - 17591: 0x8385, - 17592: 0x837C, - 17593: 0x83B6, - 17594: 0x83A9, - 17595: 0x837D, - 17596: 0x83B8, - 17597: 0x837B, - 17598: 0x8398, - 17599: 0x839E, - 17600: 0x83A8, - 17601: 0x83BA, - 17602: 0x83BC, - 17603: 0x83C1, - 17604: 0x8401, - 17605: 0x83E5, - 17606: 0x83D8, - 17607: 0x5807, - 17608: 0x8418, - 17609: 0x840B, - 17610: 0x83DD, - 17611: 0x83FD, - 17612: 0x83D6, - 17613: 0x841C, - 17614: 0x8438, - 17615: 0x8411, - 17616: 0x8406, - 17617: 0x83D4, - 17618: 0x83DF, - 17619: 0x840F, - 17620: 0x8403, - 17621: 0x83F8, - 17622: 0x83F9, - 17623: 0x83EA, - 17624: 0x83C5, - 17625: 0x83C0, - 17626: 0x8426, - 17627: 0x83F0, - 17628: 0x83E1, - 17629: 0x845C, - 17630: 0x8451, - 17631: 0x845A, - 17632: 0x8459, - 17633: 0x8473, - 17634: 0x8487, - 17635: 0x8488, - 17636: 0x847A, - 17637: 0x8489, - 17638: 0x8478, - 17639: 0x843C, - 17640: 0x8446, - 17641: 0x8469, - 17642: 0x8476, - 17643: 0x848C, - 17644: 0x848E, - 17645: 0x8431, - 17646: 0x846D, - 17647: 0x84C1, - 17648: 0x84CD, - 17649: 0x84D0, - 17650: 0x84E6, - 17651: 0x84BD, - 17652: 0x84D3, - 17653: 0x84CA, - 17654: 0x84BF, - 17655: 0x84BA, - 17656: 0x84E0, - 17657: 0x84A1, - 17658: 0x84B9, - 17659: 0x84B4, - 17660: 0x8497, - 17661: 0x84E5, - 17662: 0x84E3, - 17663: 0x850C, - 17664: 0x750D, - 17665: 0x8538, - 17666: 0x84F0, - 17667: 0x8539, - 17668: 0x851F, - 17669: 0x853A, - 17670: 0x8F45, - 17671: 0x8F46, - 17672: 0x8F47, - 17673: 0x8F48, - 17674: 0x8F49, - 17675: 0x8F4A, - 17676: 0x8F4B, - 17677: 0x8F4C, - 17678: 0x8F4D, - 17679: 0x8F4E, - 17680: 0x8F4F, - 17681: 0x8F50, - 17682: 0x8F51, - 17683: 0x8F52, - 17684: 0x8F53, - 17685: 0x8F54, - 17686: 0x8F55, - 17687: 0x8F56, - 17688: 0x8F57, - 17689: 0x8F58, - 17690: 0x8F59, - 17691: 0x8F5A, - 17692: 0x8F5B, - 17693: 0x8F5C, - 17694: 0x8F5D, - 17695: 0x8F5E, - 17696: 0x8F5F, - 17697: 0x8F60, - 17698: 0x8F61, - 17699: 0x8F62, - 17700: 0x8F63, - 17701: 0x8F64, - 17702: 0x8F65, - 17703: 0x8F6A, - 17704: 0x8F80, - 17705: 0x8F8C, - 17706: 0x8F92, - 17707: 0x8F9D, - 17708: 0x8FA0, - 17709: 0x8FA1, - 17710: 0x8FA2, - 17711: 0x8FA4, - 17712: 0x8FA5, - 17713: 0x8FA6, - 17714: 0x8FA7, - 17715: 0x8FAA, - 17716: 0x8FAC, - 17717: 0x8FAD, - 17718: 0x8FAE, - 17719: 0x8FAF, - 17720: 0x8FB2, - 17721: 0x8FB3, - 17722: 0x8FB4, - 17723: 0x8FB5, - 17724: 0x8FB7, - 17725: 0x8FB8, - 17726: 0x8FBA, - 17727: 0x8FBB, - 17728: 0x8FBC, - 17729: 0x8FBF, - 17730: 0x8FC0, - 17731: 0x8FC3, - 17732: 0x8FC6, - 17733: 0x8FC9, - 17734: 0x8FCA, - 17735: 0x8FCB, - 17736: 0x8FCC, - 17737: 0x8FCD, - 17738: 0x8FCF, - 17739: 0x8FD2, - 17740: 0x8FD6, - 17741: 0x8FD7, - 17742: 0x8FDA, - 17743: 0x8FE0, - 17744: 0x8FE1, - 17745: 0x8FE3, - 17746: 0x8FE7, - 17747: 0x8FEC, - 17748: 0x8FEF, - 17749: 0x8FF1, - 17750: 0x8FF2, - 17751: 0x8FF4, - 17752: 0x8FF5, - 17753: 0x8FF6, - 17754: 0x8FFA, - 17755: 0x8FFB, - 17756: 0x8FFC, - 17757: 0x8FFE, - 17758: 0x8FFF, - 17759: 0x9007, - 17760: 0x9008, - 17761: 0x900C, - 17762: 0x900E, - 17763: 0x9013, - 17764: 0x9015, - 17765: 0x9018, - 17766: 0x8556, - 17767: 0x853B, - 17768: 0x84FF, - 17769: 0x84FC, - 17770: 0x8559, - 17771: 0x8548, - 17772: 0x8568, - 17773: 0x8564, - 17774: 0x855E, - 17775: 0x857A, - 17776: 0x77A2, - 17777: 0x8543, - 17778: 0x8572, - 17779: 0x857B, - 17780: 0x85A4, - 17781: 0x85A8, - 17782: 0x8587, - 17783: 0x858F, - 17784: 0x8579, - 17785: 0x85AE, - 17786: 0x859C, - 17787: 0x8585, - 17788: 0x85B9, - 17789: 0x85B7, - 17790: 0x85B0, - 17791: 0x85D3, - 17792: 0x85C1, - 17793: 0x85DC, - 17794: 0x85FF, - 17795: 0x8627, - 17796: 0x8605, - 17797: 0x8629, - 17798: 0x8616, - 17799: 0x863C, - 17800: 0x5EFE, - 17801: 0x5F08, - 17802: 0x593C, - 17803: 0x5941, - 17804: 0x8037, - 17805: 0x5955, - 17806: 0x595A, - 17807: 0x5958, - 17808: 0x530F, - 17809: 0x5C22, - 17810: 0x5C25, - 17811: 0x5C2C, - 17812: 0x5C34, - 17813: 0x624C, - 17814: 0x626A, - 17815: 0x629F, - 17816: 0x62BB, - 17817: 0x62CA, - 17818: 0x62DA, - 17819: 0x62D7, - 17820: 0x62EE, - 17821: 0x6322, - 17822: 0x62F6, - 17823: 0x6339, - 17824: 0x634B, - 17825: 0x6343, - 17826: 0x63AD, - 17827: 0x63F6, - 17828: 0x6371, - 17829: 0x637A, - 17830: 0x638E, - 17831: 0x63B4, - 17832: 0x636D, - 17833: 0x63AC, - 17834: 0x638A, - 17835: 0x6369, - 17836: 0x63AE, - 17837: 0x63BC, - 17838: 0x63F2, - 17839: 0x63F8, - 17840: 0x63E0, - 17841: 0x63FF, - 17842: 0x63C4, - 17843: 0x63DE, - 17844: 0x63CE, - 17845: 0x6452, - 17846: 0x63C6, - 17847: 0x63BE, - 17848: 0x6445, - 17849: 0x6441, - 17850: 0x640B, - 17851: 0x641B, - 17852: 0x6420, - 17853: 0x640C, - 17854: 0x6426, - 17855: 0x6421, - 17856: 0x645E, - 17857: 0x6484, - 17858: 0x646D, - 17859: 0x6496, - 17860: 0x9019, - 17861: 0x901C, - 17862: 0x9023, - 17863: 0x9024, - 17864: 0x9025, - 17865: 0x9027, - 17866: 0x9028, - 17867: 0x9029, - 17868: 0x902A, - 17869: 0x902B, - 17870: 0x902C, - 17871: 0x9030, - 17872: 0x9031, - 17873: 0x9032, - 17874: 0x9033, - 17875: 0x9034, - 17876: 0x9037, - 17877: 0x9039, - 17878: 0x903A, - 17879: 0x903D, - 17880: 0x903F, - 17881: 0x9040, - 17882: 0x9043, - 17883: 0x9045, - 17884: 0x9046, - 17885: 0x9048, - 17886: 0x9049, - 17887: 0x904A, - 17888: 0x904B, - 17889: 0x904C, - 17890: 0x904E, - 17891: 0x9054, - 17892: 0x9055, - 17893: 0x9056, - 17894: 0x9059, - 17895: 0x905A, - 17896: 0x905C, - 17897: 0x905D, - 17898: 0x905E, - 17899: 0x905F, - 17900: 0x9060, - 17901: 0x9061, - 17902: 0x9064, - 17903: 0x9066, - 17904: 0x9067, - 17905: 0x9069, - 17906: 0x906A, - 17907: 0x906B, - 17908: 0x906C, - 17909: 0x906F, - 17910: 0x9070, - 17911: 0x9071, - 17912: 0x9072, - 17913: 0x9073, - 17914: 0x9076, - 17915: 0x9077, - 17916: 0x9078, - 17917: 0x9079, - 17918: 0x907A, - 17919: 0x907B, - 17920: 0x907C, - 17921: 0x907E, - 17922: 0x9081, - 17923: 0x9084, - 17924: 0x9085, - 17925: 0x9086, - 17926: 0x9087, - 17927: 0x9089, - 17928: 0x908A, - 17929: 0x908C, - 17930: 0x908D, - 17931: 0x908E, - 17932: 0x908F, - 17933: 0x9090, - 17934: 0x9092, - 17935: 0x9094, - 17936: 0x9096, - 17937: 0x9098, - 17938: 0x909A, - 17939: 0x909C, - 17940: 0x909E, - 17941: 0x909F, - 17942: 0x90A0, - 17943: 0x90A4, - 17944: 0x90A5, - 17945: 0x90A7, - 17946: 0x90A8, - 17947: 0x90A9, - 17948: 0x90AB, - 17949: 0x90AD, - 17950: 0x90B2, - 17951: 0x90B7, - 17952: 0x90BC, - 17953: 0x90BD, - 17954: 0x90BF, - 17955: 0x90C0, - 17956: 0x647A, - 17957: 0x64B7, - 17958: 0x64B8, - 17959: 0x6499, - 17960: 0x64BA, - 17961: 0x64C0, - 17962: 0x64D0, - 17963: 0x64D7, - 17964: 0x64E4, - 17965: 0x64E2, - 17966: 0x6509, - 17967: 0x6525, - 17968: 0x652E, - 17969: 0x5F0B, - 17970: 0x5FD2, - 17971: 0x7519, - 17972: 0x5F11, - 17973: 0x535F, - 17974: 0x53F1, - 17975: 0x53FD, - 17976: 0x53E9, - 17977: 0x53E8, - 17978: 0x53FB, - 17979: 0x5412, - 17980: 0x5416, - 17981: 0x5406, - 17982: 0x544B, - 17983: 0x5452, - 17984: 0x5453, - 17985: 0x5454, - 17986: 0x5456, - 17987: 0x5443, - 17988: 0x5421, - 17989: 0x5457, - 17990: 0x5459, - 17991: 0x5423, - 17992: 0x5432, - 17993: 0x5482, - 17994: 0x5494, - 17995: 0x5477, - 17996: 0x5471, - 17997: 0x5464, - 17998: 0x549A, - 17999: 0x549B, - 18000: 0x5484, - 18001: 0x5476, - 18002: 0x5466, - 18003: 0x549D, - 18004: 0x54D0, - 18005: 0x54AD, - 18006: 0x54C2, - 18007: 0x54B4, - 18008: 0x54D2, - 18009: 0x54A7, - 18010: 0x54A6, - 18011: 0x54D3, - 18012: 0x54D4, - 18013: 0x5472, - 18014: 0x54A3, - 18015: 0x54D5, - 18016: 0x54BB, - 18017: 0x54BF, - 18018: 0x54CC, - 18019: 0x54D9, - 18020: 0x54DA, - 18021: 0x54DC, - 18022: 0x54A9, - 18023: 0x54AA, - 18024: 0x54A4, - 18025: 0x54DD, - 18026: 0x54CF, - 18027: 0x54DE, - 18028: 0x551B, - 18029: 0x54E7, - 18030: 0x5520, - 18031: 0x54FD, - 18032: 0x5514, - 18033: 0x54F3, - 18034: 0x5522, - 18035: 0x5523, - 18036: 0x550F, - 18037: 0x5511, - 18038: 0x5527, - 18039: 0x552A, - 18040: 0x5567, - 18041: 0x558F, - 18042: 0x55B5, - 18043: 0x5549, - 18044: 0x556D, - 18045: 0x5541, - 18046: 0x5555, - 18047: 0x553F, - 18048: 0x5550, - 18049: 0x553C, - 18050: 0x90C2, - 18051: 0x90C3, - 18052: 0x90C6, - 18053: 0x90C8, - 18054: 0x90C9, - 18055: 0x90CB, - 18056: 0x90CC, - 18057: 0x90CD, - 18058: 0x90D2, - 18059: 0x90D4, - 18060: 0x90D5, - 18061: 0x90D6, - 18062: 0x90D8, - 18063: 0x90D9, - 18064: 0x90DA, - 18065: 0x90DE, - 18066: 0x90DF, - 18067: 0x90E0, - 18068: 0x90E3, - 18069: 0x90E4, - 18070: 0x90E5, - 18071: 0x90E9, - 18072: 0x90EA, - 18073: 0x90EC, - 18074: 0x90EE, - 18075: 0x90F0, - 18076: 0x90F1, - 18077: 0x90F2, - 18078: 0x90F3, - 18079: 0x90F5, - 18080: 0x90F6, - 18081: 0x90F7, - 18082: 0x90F9, - 18083: 0x90FA, - 18084: 0x90FB, - 18085: 0x90FC, - 18086: 0x90FF, - 18087: 0x9100, - 18088: 0x9101, - 18089: 0x9103, - 18090: 0x9105, - 18091: 0x9106, - 18092: 0x9107, - 18093: 0x9108, - 18094: 0x9109, - 18095: 0x910A, - 18096: 0x910B, - 18097: 0x910C, - 18098: 0x910D, - 18099: 0x910E, - 18100: 0x910F, - 18101: 0x9110, - 18102: 0x9111, - 18103: 0x9112, - 18104: 0x9113, - 18105: 0x9114, - 18106: 0x9115, - 18107: 0x9116, - 18108: 0x9117, - 18109: 0x9118, - 18110: 0x911A, - 18111: 0x911B, - 18112: 0x911C, - 18113: 0x911D, - 18114: 0x911F, - 18115: 0x9120, - 18116: 0x9121, - 18117: 0x9124, - 18118: 0x9125, - 18119: 0x9126, - 18120: 0x9127, - 18121: 0x9128, - 18122: 0x9129, - 18123: 0x912A, - 18124: 0x912B, - 18125: 0x912C, - 18126: 0x912D, - 18127: 0x912E, - 18128: 0x9130, - 18129: 0x9132, - 18130: 0x9133, - 18131: 0x9134, - 18132: 0x9135, - 18133: 0x9136, - 18134: 0x9137, - 18135: 0x9138, - 18136: 0x913A, - 18137: 0x913B, - 18138: 0x913C, - 18139: 0x913D, - 18140: 0x913E, - 18141: 0x913F, - 18142: 0x9140, - 18143: 0x9141, - 18144: 0x9142, - 18145: 0x9144, - 18146: 0x5537, - 18147: 0x5556, - 18148: 0x5575, - 18149: 0x5576, - 18150: 0x5577, - 18151: 0x5533, - 18152: 0x5530, - 18153: 0x555C, - 18154: 0x558B, - 18155: 0x55D2, - 18156: 0x5583, - 18157: 0x55B1, - 18158: 0x55B9, - 18159: 0x5588, - 18160: 0x5581, - 18161: 0x559F, - 18162: 0x557E, - 18163: 0x55D6, - 18164: 0x5591, - 18165: 0x557B, - 18166: 0x55DF, - 18167: 0x55BD, - 18168: 0x55BE, - 18169: 0x5594, - 18170: 0x5599, - 18171: 0x55EA, - 18172: 0x55F7, - 18173: 0x55C9, - 18174: 0x561F, - 18175: 0x55D1, - 18176: 0x55EB, - 18177: 0x55EC, - 18178: 0x55D4, - 18179: 0x55E6, - 18180: 0x55DD, - 18181: 0x55C4, - 18182: 0x55EF, - 18183: 0x55E5, - 18184: 0x55F2, - 18185: 0x55F3, - 18186: 0x55CC, - 18187: 0x55CD, - 18188: 0x55E8, - 18189: 0x55F5, - 18190: 0x55E4, - 18191: 0x8F94, - 18192: 0x561E, - 18193: 0x5608, - 18194: 0x560C, - 18195: 0x5601, - 18196: 0x5624, - 18197: 0x5623, - 18198: 0x55FE, - 18199: 0x5600, - 18200: 0x5627, - 18201: 0x562D, - 18202: 0x5658, - 18203: 0x5639, - 18204: 0x5657, - 18205: 0x562C, - 18206: 0x564D, - 18207: 0x5662, - 18208: 0x5659, - 18209: 0x565C, - 18210: 0x564C, - 18211: 0x5654, - 18212: 0x5686, - 18213: 0x5664, - 18214: 0x5671, - 18215: 0x566B, - 18216: 0x567B, - 18217: 0x567C, - 18218: 0x5685, - 18219: 0x5693, - 18220: 0x56AF, - 18221: 0x56D4, - 18222: 0x56D7, - 18223: 0x56DD, - 18224: 0x56E1, - 18225: 0x56F5, - 18226: 0x56EB, - 18227: 0x56F9, - 18228: 0x56FF, - 18229: 0x5704, - 18230: 0x570A, - 18231: 0x5709, - 18232: 0x571C, - 18233: 0x5E0F, - 18234: 0x5E19, - 18235: 0x5E14, - 18236: 0x5E11, - 18237: 0x5E31, - 18238: 0x5E3B, - 18239: 0x5E3C, - 18240: 0x9145, - 18241: 0x9147, - 18242: 0x9148, - 18243: 0x9151, - 18244: 0x9153, - 18245: 0x9154, - 18246: 0x9155, - 18247: 0x9156, - 18248: 0x9158, - 18249: 0x9159, - 18250: 0x915B, - 18251: 0x915C, - 18252: 0x915F, - 18253: 0x9160, - 18254: 0x9166, - 18255: 0x9167, - 18256: 0x9168, - 18257: 0x916B, - 18258: 0x916D, - 18259: 0x9173, - 18260: 0x917A, - 18261: 0x917B, - 18262: 0x917C, - 18263: 0x9180, - 18264: 0x9181, - 18265: 0x9182, - 18266: 0x9183, - 18267: 0x9184, - 18268: 0x9186, - 18269: 0x9188, - 18270: 0x918A, - 18271: 0x918E, - 18272: 0x918F, - 18273: 0x9193, - 18274: 0x9194, - 18275: 0x9195, - 18276: 0x9196, - 18277: 0x9197, - 18278: 0x9198, - 18279: 0x9199, - 18280: 0x919C, - 18281: 0x919D, - 18282: 0x919E, - 18283: 0x919F, - 18284: 0x91A0, - 18285: 0x91A1, - 18286: 0x91A4, - 18287: 0x91A5, - 18288: 0x91A6, - 18289: 0x91A7, - 18290: 0x91A8, - 18291: 0x91A9, - 18292: 0x91AB, - 18293: 0x91AC, - 18294: 0x91B0, - 18295: 0x91B1, - 18296: 0x91B2, - 18297: 0x91B3, - 18298: 0x91B6, - 18299: 0x91B7, - 18300: 0x91B8, - 18301: 0x91B9, - 18302: 0x91BB, - 18303: 0x91BC, - 18304: 0x91BD, - 18305: 0x91BE, - 18306: 0x91BF, - 18307: 0x91C0, - 18308: 0x91C1, - 18309: 0x91C2, - 18310: 0x91C3, - 18311: 0x91C4, - 18312: 0x91C5, - 18313: 0x91C6, - 18314: 0x91C8, - 18315: 0x91CB, - 18316: 0x91D0, - 18317: 0x91D2, - 18318: 0x91D3, - 18319: 0x91D4, - 18320: 0x91D5, - 18321: 0x91D6, - 18322: 0x91D7, - 18323: 0x91D8, - 18324: 0x91D9, - 18325: 0x91DA, - 18326: 0x91DB, - 18327: 0x91DD, - 18328: 0x91DE, - 18329: 0x91DF, - 18330: 0x91E0, - 18331: 0x91E1, - 18332: 0x91E2, - 18333: 0x91E3, - 18334: 0x91E4, - 18335: 0x91E5, - 18336: 0x5E37, - 18337: 0x5E44, - 18338: 0x5E54, - 18339: 0x5E5B, - 18340: 0x5E5E, - 18341: 0x5E61, - 18342: 0x5C8C, - 18343: 0x5C7A, - 18344: 0x5C8D, - 18345: 0x5C90, - 18346: 0x5C96, - 18347: 0x5C88, - 18348: 0x5C98, - 18349: 0x5C99, - 18350: 0x5C91, - 18351: 0x5C9A, - 18352: 0x5C9C, - 18353: 0x5CB5, - 18354: 0x5CA2, - 18355: 0x5CBD, - 18356: 0x5CAC, - 18357: 0x5CAB, - 18358: 0x5CB1, - 18359: 0x5CA3, - 18360: 0x5CC1, - 18361: 0x5CB7, - 18362: 0x5CC4, - 18363: 0x5CD2, - 18364: 0x5CE4, - 18365: 0x5CCB, - 18366: 0x5CE5, - 18367: 0x5D02, - 18368: 0x5D03, - 18369: 0x5D27, - 18370: 0x5D26, - 18371: 0x5D2E, - 18372: 0x5D24, - 18373: 0x5D1E, - 18374: 0x5D06, - 18375: 0x5D1B, - 18376: 0x5D58, - 18377: 0x5D3E, - 18378: 0x5D34, - 18379: 0x5D3D, - 18380: 0x5D6C, - 18381: 0x5D5B, - 18382: 0x5D6F, - 18383: 0x5D5D, - 18384: 0x5D6B, - 18385: 0x5D4B, - 18386: 0x5D4A, - 18387: 0x5D69, - 18388: 0x5D74, - 18389: 0x5D82, - 18390: 0x5D99, - 18391: 0x5D9D, - 18392: 0x8C73, - 18393: 0x5DB7, - 18394: 0x5DC5, - 18395: 0x5F73, - 18396: 0x5F77, - 18397: 0x5F82, - 18398: 0x5F87, - 18399: 0x5F89, - 18400: 0x5F8C, - 18401: 0x5F95, - 18402: 0x5F99, - 18403: 0x5F9C, - 18404: 0x5FA8, - 18405: 0x5FAD, - 18406: 0x5FB5, - 18407: 0x5FBC, - 18408: 0x8862, - 18409: 0x5F61, - 18410: 0x72AD, - 18411: 0x72B0, - 18412: 0x72B4, - 18413: 0x72B7, - 18414: 0x72B8, - 18415: 0x72C3, - 18416: 0x72C1, - 18417: 0x72CE, - 18418: 0x72CD, - 18419: 0x72D2, - 18420: 0x72E8, - 18421: 0x72EF, - 18422: 0x72E9, - 18423: 0x72F2, - 18424: 0x72F4, - 18425: 0x72F7, - 18426: 0x7301, - 18427: 0x72F3, - 18428: 0x7303, - 18429: 0x72FA, - 18430: 0x91E6, - 18431: 0x91E7, - 18432: 0x91E8, - 18433: 0x91E9, - 18434: 0x91EA, - 18435: 0x91EB, - 18436: 0x91EC, - 18437: 0x91ED, - 18438: 0x91EE, - 18439: 0x91EF, - 18440: 0x91F0, - 18441: 0x91F1, - 18442: 0x91F2, - 18443: 0x91F3, - 18444: 0x91F4, - 18445: 0x91F5, - 18446: 0x91F6, - 18447: 0x91F7, - 18448: 0x91F8, - 18449: 0x91F9, - 18450: 0x91FA, - 18451: 0x91FB, - 18452: 0x91FC, - 18453: 0x91FD, - 18454: 0x91FE, - 18455: 0x91FF, - 18456: 0x9200, - 18457: 0x9201, - 18458: 0x9202, - 18459: 0x9203, - 18460: 0x9204, - 18461: 0x9205, - 18462: 0x9206, - 18463: 0x9207, - 18464: 0x9208, - 18465: 0x9209, - 18466: 0x920A, - 18467: 0x920B, - 18468: 0x920C, - 18469: 0x920D, - 18470: 0x920E, - 18471: 0x920F, - 18472: 0x9210, - 18473: 0x9211, - 18474: 0x9212, - 18475: 0x9213, - 18476: 0x9214, - 18477: 0x9215, - 18478: 0x9216, - 18479: 0x9217, - 18480: 0x9218, - 18481: 0x9219, - 18482: 0x921A, - 18483: 0x921B, - 18484: 0x921C, - 18485: 0x921D, - 18486: 0x921E, - 18487: 0x921F, - 18488: 0x9220, - 18489: 0x9221, - 18490: 0x9222, - 18491: 0x9223, - 18492: 0x9224, - 18493: 0x9225, - 18494: 0x9226, - 18495: 0x9227, - 18496: 0x9228, - 18497: 0x9229, - 18498: 0x922A, - 18499: 0x922B, - 18500: 0x922C, - 18501: 0x922D, - 18502: 0x922E, - 18503: 0x922F, - 18504: 0x9230, - 18505: 0x9231, - 18506: 0x9232, - 18507: 0x9233, - 18508: 0x9234, - 18509: 0x9235, - 18510: 0x9236, - 18511: 0x9237, - 18512: 0x9238, - 18513: 0x9239, - 18514: 0x923A, - 18515: 0x923B, - 18516: 0x923C, - 18517: 0x923D, - 18518: 0x923E, - 18519: 0x923F, - 18520: 0x9240, - 18521: 0x9241, - 18522: 0x9242, - 18523: 0x9243, - 18524: 0x9244, - 18525: 0x9245, - 18526: 0x72FB, - 18527: 0x7317, - 18528: 0x7313, - 18529: 0x7321, - 18530: 0x730A, - 18531: 0x731E, - 18532: 0x731D, - 18533: 0x7315, - 18534: 0x7322, - 18535: 0x7339, - 18536: 0x7325, - 18537: 0x732C, - 18538: 0x7338, - 18539: 0x7331, - 18540: 0x7350, - 18541: 0x734D, - 18542: 0x7357, - 18543: 0x7360, - 18544: 0x736C, - 18545: 0x736F, - 18546: 0x737E, - 18547: 0x821B, - 18548: 0x5925, - 18549: 0x98E7, - 18550: 0x5924, - 18551: 0x5902, - 18552: 0x9963, - 18553: 0x9967, - 18554: 0x9968, - 18555: 0x9969, - 18556: 0x996A, - 18557: 0x996B, - 18558: 0x996C, - 18559: 0x9974, - 18560: 0x9977, - 18561: 0x997D, - 18562: 0x9980, - 18563: 0x9984, - 18564: 0x9987, - 18565: 0x998A, - 18566: 0x998D, - 18567: 0x9990, - 18568: 0x9991, - 18569: 0x9993, - 18570: 0x9994, - 18571: 0x9995, - 18572: 0x5E80, - 18573: 0x5E91, - 18574: 0x5E8B, - 18575: 0x5E96, - 18576: 0x5EA5, - 18577: 0x5EA0, - 18578: 0x5EB9, - 18579: 0x5EB5, - 18580: 0x5EBE, - 18581: 0x5EB3, - 18582: 0x8D53, - 18583: 0x5ED2, - 18584: 0x5ED1, - 18585: 0x5EDB, - 18586: 0x5EE8, - 18587: 0x5EEA, - 18588: 0x81BA, - 18589: 0x5FC4, - 18590: 0x5FC9, - 18591: 0x5FD6, - 18592: 0x5FCF, - 18593: 0x6003, - 18594: 0x5FEE, - 18595: 0x6004, - 18596: 0x5FE1, - 18597: 0x5FE4, - 18598: 0x5FFE, - 18599: 0x6005, - 18600: 0x6006, - 18601: 0x5FEA, - 18602: 0x5FED, - 18603: 0x5FF8, - 18604: 0x6019, - 18605: 0x6035, - 18606: 0x6026, - 18607: 0x601B, - 18608: 0x600F, - 18609: 0x600D, - 18610: 0x6029, - 18611: 0x602B, - 18612: 0x600A, - 18613: 0x603F, - 18614: 0x6021, - 18615: 0x6078, - 18616: 0x6079, - 18617: 0x607B, - 18618: 0x607A, - 18619: 0x6042, - 18620: 0x9246, - 18621: 0x9247, - 18622: 0x9248, - 18623: 0x9249, - 18624: 0x924A, - 18625: 0x924B, - 18626: 0x924C, - 18627: 0x924D, - 18628: 0x924E, - 18629: 0x924F, - 18630: 0x9250, - 18631: 0x9251, - 18632: 0x9252, - 18633: 0x9253, - 18634: 0x9254, - 18635: 0x9255, - 18636: 0x9256, - 18637: 0x9257, - 18638: 0x9258, - 18639: 0x9259, - 18640: 0x925A, - 18641: 0x925B, - 18642: 0x925C, - 18643: 0x925D, - 18644: 0x925E, - 18645: 0x925F, - 18646: 0x9260, - 18647: 0x9261, - 18648: 0x9262, - 18649: 0x9263, - 18650: 0x9264, - 18651: 0x9265, - 18652: 0x9266, - 18653: 0x9267, - 18654: 0x9268, - 18655: 0x9269, - 18656: 0x926A, - 18657: 0x926B, - 18658: 0x926C, - 18659: 0x926D, - 18660: 0x926E, - 18661: 0x926F, - 18662: 0x9270, - 18663: 0x9271, - 18664: 0x9272, - 18665: 0x9273, - 18666: 0x9275, - 18667: 0x9276, - 18668: 0x9277, - 18669: 0x9278, - 18670: 0x9279, - 18671: 0x927A, - 18672: 0x927B, - 18673: 0x927C, - 18674: 0x927D, - 18675: 0x927E, - 18676: 0x927F, - 18677: 0x9280, - 18678: 0x9281, - 18679: 0x9282, - 18680: 0x9283, - 18681: 0x9284, - 18682: 0x9285, - 18683: 0x9286, - 18684: 0x9287, - 18685: 0x9288, - 18686: 0x9289, - 18687: 0x928A, - 18688: 0x928B, - 18689: 0x928C, - 18690: 0x928D, - 18691: 0x928F, - 18692: 0x9290, - 18693: 0x9291, - 18694: 0x9292, - 18695: 0x9293, - 18696: 0x9294, - 18697: 0x9295, - 18698: 0x9296, - 18699: 0x9297, - 18700: 0x9298, - 18701: 0x9299, - 18702: 0x929A, - 18703: 0x929B, - 18704: 0x929C, - 18705: 0x929D, - 18706: 0x929E, - 18707: 0x929F, - 18708: 0x92A0, - 18709: 0x92A1, - 18710: 0x92A2, - 18711: 0x92A3, - 18712: 0x92A4, - 18713: 0x92A5, - 18714: 0x92A6, - 18715: 0x92A7, - 18716: 0x606A, - 18717: 0x607D, - 18718: 0x6096, - 18719: 0x609A, - 18720: 0x60AD, - 18721: 0x609D, - 18722: 0x6083, - 18723: 0x6092, - 18724: 0x608C, - 18725: 0x609B, - 18726: 0x60EC, - 18727: 0x60BB, - 18728: 0x60B1, - 18729: 0x60DD, - 18730: 0x60D8, - 18731: 0x60C6, - 18732: 0x60DA, - 18733: 0x60B4, - 18734: 0x6120, - 18735: 0x6126, - 18736: 0x6115, - 18737: 0x6123, - 18738: 0x60F4, - 18739: 0x6100, - 18740: 0x610E, - 18741: 0x612B, - 18742: 0x614A, - 18743: 0x6175, - 18744: 0x61AC, - 18745: 0x6194, - 18746: 0x61A7, - 18747: 0x61B7, - 18748: 0x61D4, - 18749: 0x61F5, - 18750: 0x5FDD, - 18751: 0x96B3, - 18752: 0x95E9, - 18753: 0x95EB, - 18754: 0x95F1, - 18755: 0x95F3, - 18756: 0x95F5, - 18757: 0x95F6, - 18758: 0x95FC, - 18759: 0x95FE, - 18760: 0x9603, - 18761: 0x9604, - 18762: 0x9606, - 18763: 0x9608, - 18764: 0x960A, - 18765: 0x960B, - 18766: 0x960C, - 18767: 0x960D, - 18768: 0x960F, - 18769: 0x9612, - 18770: 0x9615, - 18771: 0x9616, - 18772: 0x9617, - 18773: 0x9619, - 18774: 0x961A, - 18775: 0x4E2C, - 18776: 0x723F, - 18777: 0x6215, - 18778: 0x6C35, - 18779: 0x6C54, - 18780: 0x6C5C, - 18781: 0x6C4A, - 18782: 0x6CA3, - 18783: 0x6C85, - 18784: 0x6C90, - 18785: 0x6C94, - 18786: 0x6C8C, - 18787: 0x6C68, - 18788: 0x6C69, - 18789: 0x6C74, - 18790: 0x6C76, - 18791: 0x6C86, - 18792: 0x6CA9, - 18793: 0x6CD0, - 18794: 0x6CD4, - 18795: 0x6CAD, - 18796: 0x6CF7, - 18797: 0x6CF8, - 18798: 0x6CF1, - 18799: 0x6CD7, - 18800: 0x6CB2, - 18801: 0x6CE0, - 18802: 0x6CD6, - 18803: 0x6CFA, - 18804: 0x6CEB, - 18805: 0x6CEE, - 18806: 0x6CB1, - 18807: 0x6CD3, - 18808: 0x6CEF, - 18809: 0x6CFE, - 18810: 0x92A8, - 18811: 0x92A9, - 18812: 0x92AA, - 18813: 0x92AB, - 18814: 0x92AC, - 18815: 0x92AD, - 18816: 0x92AF, - 18817: 0x92B0, - 18818: 0x92B1, - 18819: 0x92B2, - 18820: 0x92B3, - 18821: 0x92B4, - 18822: 0x92B5, - 18823: 0x92B6, - 18824: 0x92B7, - 18825: 0x92B8, - 18826: 0x92B9, - 18827: 0x92BA, - 18828: 0x92BB, - 18829: 0x92BC, - 18830: 0x92BD, - 18831: 0x92BE, - 18832: 0x92BF, - 18833: 0x92C0, - 18834: 0x92C1, - 18835: 0x92C2, - 18836: 0x92C3, - 18837: 0x92C4, - 18838: 0x92C5, - 18839: 0x92C6, - 18840: 0x92C7, - 18841: 0x92C9, - 18842: 0x92CA, - 18843: 0x92CB, - 18844: 0x92CC, - 18845: 0x92CD, - 18846: 0x92CE, - 18847: 0x92CF, - 18848: 0x92D0, - 18849: 0x92D1, - 18850: 0x92D2, - 18851: 0x92D3, - 18852: 0x92D4, - 18853: 0x92D5, - 18854: 0x92D6, - 18855: 0x92D7, - 18856: 0x92D8, - 18857: 0x92D9, - 18858: 0x92DA, - 18859: 0x92DB, - 18860: 0x92DC, - 18861: 0x92DD, - 18862: 0x92DE, - 18863: 0x92DF, - 18864: 0x92E0, - 18865: 0x92E1, - 18866: 0x92E2, - 18867: 0x92E3, - 18868: 0x92E4, - 18869: 0x92E5, - 18870: 0x92E6, - 18871: 0x92E7, - 18872: 0x92E8, - 18873: 0x92E9, - 18874: 0x92EA, - 18875: 0x92EB, - 18876: 0x92EC, - 18877: 0x92ED, - 18878: 0x92EE, - 18879: 0x92EF, - 18880: 0x92F0, - 18881: 0x92F1, - 18882: 0x92F2, - 18883: 0x92F3, - 18884: 0x92F4, - 18885: 0x92F5, - 18886: 0x92F6, - 18887: 0x92F7, - 18888: 0x92F8, - 18889: 0x92F9, - 18890: 0x92FA, - 18891: 0x92FB, - 18892: 0x92FC, - 18893: 0x92FD, - 18894: 0x92FE, - 18895: 0x92FF, - 18896: 0x9300, - 18897: 0x9301, - 18898: 0x9302, - 18899: 0x9303, - 18900: 0x9304, - 18901: 0x9305, - 18902: 0x9306, - 18903: 0x9307, - 18904: 0x9308, - 18905: 0x9309, - 18906: 0x6D39, - 18907: 0x6D27, - 18908: 0x6D0C, - 18909: 0x6D43, - 18910: 0x6D48, - 18911: 0x6D07, - 18912: 0x6D04, - 18913: 0x6D19, - 18914: 0x6D0E, - 18915: 0x6D2B, - 18916: 0x6D4D, - 18917: 0x6D2E, - 18918: 0x6D35, - 18919: 0x6D1A, - 18920: 0x6D4F, - 18921: 0x6D52, - 18922: 0x6D54, - 18923: 0x6D33, - 18924: 0x6D91, - 18925: 0x6D6F, - 18926: 0x6D9E, - 18927: 0x6DA0, - 18928: 0x6D5E, - 18929: 0x6D93, - 18930: 0x6D94, - 18931: 0x6D5C, - 18932: 0x6D60, - 18933: 0x6D7C, - 18934: 0x6D63, - 18935: 0x6E1A, - 18936: 0x6DC7, - 18937: 0x6DC5, - 18938: 0x6DDE, - 18939: 0x6E0E, - 18940: 0x6DBF, - 18941: 0x6DE0, - 18942: 0x6E11, - 18943: 0x6DE6, - 18944: 0x6DDD, - 18945: 0x6DD9, - 18946: 0x6E16, - 18947: 0x6DAB, - 18948: 0x6E0C, - 18949: 0x6DAE, - 18950: 0x6E2B, - 18951: 0x6E6E, - 18952: 0x6E4E, - 18953: 0x6E6B, - 18954: 0x6EB2, - 18955: 0x6E5F, - 18956: 0x6E86, - 18957: 0x6E53, - 18958: 0x6E54, - 18959: 0x6E32, - 18960: 0x6E25, - 18961: 0x6E44, - 18962: 0x6EDF, - 18963: 0x6EB1, - 18964: 0x6E98, - 18965: 0x6EE0, - 18966: 0x6F2D, - 18967: 0x6EE2, - 18968: 0x6EA5, - 18969: 0x6EA7, - 18970: 0x6EBD, - 18971: 0x6EBB, - 18972: 0x6EB7, - 18973: 0x6ED7, - 18974: 0x6EB4, - 18975: 0x6ECF, - 18976: 0x6E8F, - 18977: 0x6EC2, - 18978: 0x6E9F, - 18979: 0x6F62, - 18980: 0x6F46, - 18981: 0x6F47, - 18982: 0x6F24, - 18983: 0x6F15, - 18984: 0x6EF9, - 18985: 0x6F2F, - 18986: 0x6F36, - 18987: 0x6F4B, - 18988: 0x6F74, - 18989: 0x6F2A, - 18990: 0x6F09, - 18991: 0x6F29, - 18992: 0x6F89, - 18993: 0x6F8D, - 18994: 0x6F8C, - 18995: 0x6F78, - 18996: 0x6F72, - 18997: 0x6F7C, - 18998: 0x6F7A, - 18999: 0x6FD1, - 19000: 0x930A, - 19001: 0x930B, - 19002: 0x930C, - 19003: 0x930D, - 19004: 0x930E, - 19005: 0x930F, - 19006: 0x9310, - 19007: 0x9311, - 19008: 0x9312, - 19009: 0x9313, - 19010: 0x9314, - 19011: 0x9315, - 19012: 0x9316, - 19013: 0x9317, - 19014: 0x9318, - 19015: 0x9319, - 19016: 0x931A, - 19017: 0x931B, - 19018: 0x931C, - 19019: 0x931D, - 19020: 0x931E, - 19021: 0x931F, - 19022: 0x9320, - 19023: 0x9321, - 19024: 0x9322, - 19025: 0x9323, - 19026: 0x9324, - 19027: 0x9325, - 19028: 0x9326, - 19029: 0x9327, - 19030: 0x9328, - 19031: 0x9329, - 19032: 0x932A, - 19033: 0x932B, - 19034: 0x932C, - 19035: 0x932D, - 19036: 0x932E, - 19037: 0x932F, - 19038: 0x9330, - 19039: 0x9331, - 19040: 0x9332, - 19041: 0x9333, - 19042: 0x9334, - 19043: 0x9335, - 19044: 0x9336, - 19045: 0x9337, - 19046: 0x9338, - 19047: 0x9339, - 19048: 0x933A, - 19049: 0x933B, - 19050: 0x933C, - 19051: 0x933D, - 19052: 0x933F, - 19053: 0x9340, - 19054: 0x9341, - 19055: 0x9342, - 19056: 0x9343, - 19057: 0x9344, - 19058: 0x9345, - 19059: 0x9346, - 19060: 0x9347, - 19061: 0x9348, - 19062: 0x9349, - 19063: 0x934A, - 19064: 0x934B, - 19065: 0x934C, - 19066: 0x934D, - 19067: 0x934E, - 19068: 0x934F, - 19069: 0x9350, - 19070: 0x9351, - 19071: 0x9352, - 19072: 0x9353, - 19073: 0x9354, - 19074: 0x9355, - 19075: 0x9356, - 19076: 0x9357, - 19077: 0x9358, - 19078: 0x9359, - 19079: 0x935A, - 19080: 0x935B, - 19081: 0x935C, - 19082: 0x935D, - 19083: 0x935E, - 19084: 0x935F, - 19085: 0x9360, - 19086: 0x9361, - 19087: 0x9362, - 19088: 0x9363, - 19089: 0x9364, - 19090: 0x9365, - 19091: 0x9366, - 19092: 0x9367, - 19093: 0x9368, - 19094: 0x9369, - 19095: 0x936B, - 19096: 0x6FC9, - 19097: 0x6FA7, - 19098: 0x6FB9, - 19099: 0x6FB6, - 19100: 0x6FC2, - 19101: 0x6FE1, - 19102: 0x6FEE, - 19103: 0x6FDE, - 19104: 0x6FE0, - 19105: 0x6FEF, - 19106: 0x701A, - 19107: 0x7023, - 19108: 0x701B, - 19109: 0x7039, - 19110: 0x7035, - 19111: 0x704F, - 19112: 0x705E, - 19113: 0x5B80, - 19114: 0x5B84, - 19115: 0x5B95, - 19116: 0x5B93, - 19117: 0x5BA5, - 19118: 0x5BB8, - 19119: 0x752F, - 19120: 0x9A9E, - 19121: 0x6434, - 19122: 0x5BE4, - 19123: 0x5BEE, - 19124: 0x8930, - 19125: 0x5BF0, - 19126: 0x8E47, - 19127: 0x8B07, - 19128: 0x8FB6, - 19129: 0x8FD3, - 19130: 0x8FD5, - 19131: 0x8FE5, - 19132: 0x8FEE, - 19133: 0x8FE4, - 19134: 0x8FE9, - 19135: 0x8FE6, - 19136: 0x8FF3, - 19137: 0x8FE8, - 19138: 0x9005, - 19139: 0x9004, - 19140: 0x900B, - 19141: 0x9026, - 19142: 0x9011, - 19143: 0x900D, - 19144: 0x9016, - 19145: 0x9021, - 19146: 0x9035, - 19147: 0x9036, - 19148: 0x902D, - 19149: 0x902F, - 19150: 0x9044, - 19151: 0x9051, - 19152: 0x9052, - 19153: 0x9050, - 19154: 0x9068, - 19155: 0x9058, - 19156: 0x9062, - 19157: 0x905B, - 19158: 0x66B9, - 19159: 0x9074, - 19160: 0x907D, - 19161: 0x9082, - 19162: 0x9088, - 19163: 0x9083, - 19164: 0x908B, - 19165: 0x5F50, - 19166: 0x5F57, - 19167: 0x5F56, - 19168: 0x5F58, - 19169: 0x5C3B, - 19170: 0x54AB, - 19171: 0x5C50, - 19172: 0x5C59, - 19173: 0x5B71, - 19174: 0x5C63, - 19175: 0x5C66, - 19176: 0x7FBC, - 19177: 0x5F2A, - 19178: 0x5F29, - 19179: 0x5F2D, - 19180: 0x8274, - 19181: 0x5F3C, - 19182: 0x9B3B, - 19183: 0x5C6E, - 19184: 0x5981, - 19185: 0x5983, - 19186: 0x598D, - 19187: 0x59A9, - 19188: 0x59AA, - 19189: 0x59A3, - 19190: 0x936C, - 19191: 0x936D, - 19192: 0x936E, - 19193: 0x936F, - 19194: 0x9370, - 19195: 0x9371, - 19196: 0x9372, - 19197: 0x9373, - 19198: 0x9374, - 19199: 0x9375, - 19200: 0x9376, - 19201: 0x9377, - 19202: 0x9378, - 19203: 0x9379, - 19204: 0x937A, - 19205: 0x937B, - 19206: 0x937C, - 19207: 0x937D, - 19208: 0x937E, - 19209: 0x937F, - 19210: 0x9380, - 19211: 0x9381, - 19212: 0x9382, - 19213: 0x9383, - 19214: 0x9384, - 19215: 0x9385, - 19216: 0x9386, - 19217: 0x9387, - 19218: 0x9388, - 19219: 0x9389, - 19220: 0x938A, - 19221: 0x938B, - 19222: 0x938C, - 19223: 0x938D, - 19224: 0x938E, - 19225: 0x9390, - 19226: 0x9391, - 19227: 0x9392, - 19228: 0x9393, - 19229: 0x9394, - 19230: 0x9395, - 19231: 0x9396, - 19232: 0x9397, - 19233: 0x9398, - 19234: 0x9399, - 19235: 0x939A, - 19236: 0x939B, - 19237: 0x939C, - 19238: 0x939D, - 19239: 0x939E, - 19240: 0x939F, - 19241: 0x93A0, - 19242: 0x93A1, - 19243: 0x93A2, - 19244: 0x93A3, - 19245: 0x93A4, - 19246: 0x93A5, - 19247: 0x93A6, - 19248: 0x93A7, - 19249: 0x93A8, - 19250: 0x93A9, - 19251: 0x93AA, - 19252: 0x93AB, - 19253: 0x93AC, - 19254: 0x93AD, - 19255: 0x93AE, - 19256: 0x93AF, - 19257: 0x93B0, - 19258: 0x93B1, - 19259: 0x93B2, - 19260: 0x93B3, - 19261: 0x93B4, - 19262: 0x93B5, - 19263: 0x93B6, - 19264: 0x93B7, - 19265: 0x93B8, - 19266: 0x93B9, - 19267: 0x93BA, - 19268: 0x93BB, - 19269: 0x93BC, - 19270: 0x93BD, - 19271: 0x93BE, - 19272: 0x93BF, - 19273: 0x93C0, - 19274: 0x93C1, - 19275: 0x93C2, - 19276: 0x93C3, - 19277: 0x93C4, - 19278: 0x93C5, - 19279: 0x93C6, - 19280: 0x93C7, - 19281: 0x93C8, - 19282: 0x93C9, - 19283: 0x93CB, - 19284: 0x93CC, - 19285: 0x93CD, - 19286: 0x5997, - 19287: 0x59CA, - 19288: 0x59AB, - 19289: 0x599E, - 19290: 0x59A4, - 19291: 0x59D2, - 19292: 0x59B2, - 19293: 0x59AF, - 19294: 0x59D7, - 19295: 0x59BE, - 19296: 0x5A05, - 19297: 0x5A06, - 19298: 0x59DD, - 19299: 0x5A08, - 19300: 0x59E3, - 19301: 0x59D8, - 19302: 0x59F9, - 19303: 0x5A0C, - 19304: 0x5A09, - 19305: 0x5A32, - 19306: 0x5A34, - 19307: 0x5A11, - 19308: 0x5A23, - 19309: 0x5A13, - 19310: 0x5A40, - 19311: 0x5A67, - 19312: 0x5A4A, - 19313: 0x5A55, - 19314: 0x5A3C, - 19315: 0x5A62, - 19316: 0x5A75, - 19317: 0x80EC, - 19318: 0x5AAA, - 19319: 0x5A9B, - 19320: 0x5A77, - 19321: 0x5A7A, - 19322: 0x5ABE, - 19323: 0x5AEB, - 19324: 0x5AB2, - 19325: 0x5AD2, - 19326: 0x5AD4, - 19327: 0x5AB8, - 19328: 0x5AE0, - 19329: 0x5AE3, - 19330: 0x5AF1, - 19331: 0x5AD6, - 19332: 0x5AE6, - 19333: 0x5AD8, - 19334: 0x5ADC, - 19335: 0x5B09, - 19336: 0x5B17, - 19337: 0x5B16, - 19338: 0x5B32, - 19339: 0x5B37, - 19340: 0x5B40, - 19341: 0x5C15, - 19342: 0x5C1C, - 19343: 0x5B5A, - 19344: 0x5B65, - 19345: 0x5B73, - 19346: 0x5B51, - 19347: 0x5B53, - 19348: 0x5B62, - 19349: 0x9A75, - 19350: 0x9A77, - 19351: 0x9A78, - 19352: 0x9A7A, - 19353: 0x9A7F, - 19354: 0x9A7D, - 19355: 0x9A80, - 19356: 0x9A81, - 19357: 0x9A85, - 19358: 0x9A88, - 19359: 0x9A8A, - 19360: 0x9A90, - 19361: 0x9A92, - 19362: 0x9A93, - 19363: 0x9A96, - 19364: 0x9A98, - 19365: 0x9A9B, - 19366: 0x9A9C, - 19367: 0x9A9D, - 19368: 0x9A9F, - 19369: 0x9AA0, - 19370: 0x9AA2, - 19371: 0x9AA3, - 19372: 0x9AA5, - 19373: 0x9AA7, - 19374: 0x7E9F, - 19375: 0x7EA1, - 19376: 0x7EA3, - 19377: 0x7EA5, - 19378: 0x7EA8, - 19379: 0x7EA9, - 19380: 0x93CE, - 19381: 0x93CF, - 19382: 0x93D0, - 19383: 0x93D1, - 19384: 0x93D2, - 19385: 0x93D3, - 19386: 0x93D4, - 19387: 0x93D5, - 19388: 0x93D7, - 19389: 0x93D8, - 19390: 0x93D9, - 19391: 0x93DA, - 19392: 0x93DB, - 19393: 0x93DC, - 19394: 0x93DD, - 19395: 0x93DE, - 19396: 0x93DF, - 19397: 0x93E0, - 19398: 0x93E1, - 19399: 0x93E2, - 19400: 0x93E3, - 19401: 0x93E4, - 19402: 0x93E5, - 19403: 0x93E6, - 19404: 0x93E7, - 19405: 0x93E8, - 19406: 0x93E9, - 19407: 0x93EA, - 19408: 0x93EB, - 19409: 0x93EC, - 19410: 0x93ED, - 19411: 0x93EE, - 19412: 0x93EF, - 19413: 0x93F0, - 19414: 0x93F1, - 19415: 0x93F2, - 19416: 0x93F3, - 19417: 0x93F4, - 19418: 0x93F5, - 19419: 0x93F6, - 19420: 0x93F7, - 19421: 0x93F8, - 19422: 0x93F9, - 19423: 0x93FA, - 19424: 0x93FB, - 19425: 0x93FC, - 19426: 0x93FD, - 19427: 0x93FE, - 19428: 0x93FF, - 19429: 0x9400, - 19430: 0x9401, - 19431: 0x9402, - 19432: 0x9403, - 19433: 0x9404, - 19434: 0x9405, - 19435: 0x9406, - 19436: 0x9407, - 19437: 0x9408, - 19438: 0x9409, - 19439: 0x940A, - 19440: 0x940B, - 19441: 0x940C, - 19442: 0x940D, - 19443: 0x940E, - 19444: 0x940F, - 19445: 0x9410, - 19446: 0x9411, - 19447: 0x9412, - 19448: 0x9413, - 19449: 0x9414, - 19450: 0x9415, - 19451: 0x9416, - 19452: 0x9417, - 19453: 0x9418, - 19454: 0x9419, - 19455: 0x941A, - 19456: 0x941B, - 19457: 0x941C, - 19458: 0x941D, - 19459: 0x941E, - 19460: 0x941F, - 19461: 0x9420, - 19462: 0x9421, - 19463: 0x9422, - 19464: 0x9423, - 19465: 0x9424, - 19466: 0x9425, - 19467: 0x9426, - 19468: 0x9427, - 19469: 0x9428, - 19470: 0x9429, - 19471: 0x942A, - 19472: 0x942B, - 19473: 0x942C, - 19474: 0x942D, - 19475: 0x942E, - 19476: 0x7EAD, - 19477: 0x7EB0, - 19478: 0x7EBE, - 19479: 0x7EC0, - 19480: 0x7EC1, - 19481: 0x7EC2, - 19482: 0x7EC9, - 19483: 0x7ECB, - 19484: 0x7ECC, - 19485: 0x7ED0, - 19486: 0x7ED4, - 19487: 0x7ED7, - 19488: 0x7EDB, - 19489: 0x7EE0, - 19490: 0x7EE1, - 19491: 0x7EE8, - 19492: 0x7EEB, - 19493: 0x7EEE, - 19494: 0x7EEF, - 19495: 0x7EF1, - 19496: 0x7EF2, - 19497: 0x7F0D, - 19498: 0x7EF6, - 19499: 0x7EFA, - 19500: 0x7EFB, - 19501: 0x7EFE, - 19502: 0x7F01, - 19503: 0x7F02, - 19504: 0x7F03, - 19505: 0x7F07, - 19506: 0x7F08, - 19507: 0x7F0B, - 19508: 0x7F0C, - 19509: 0x7F0F, - 19510: 0x7F11, - 19511: 0x7F12, - 19512: 0x7F17, - 19513: 0x7F19, - 19514: 0x7F1C, - 19515: 0x7F1B, - 19516: 0x7F1F, - 19517: 0x7F21, - 19518: 0x7F22, - 19519: 0x7F23, - 19520: 0x7F24, - 19521: 0x7F25, - 19522: 0x7F26, - 19523: 0x7F27, - 19524: 0x7F2A, - 19525: 0x7F2B, - 19526: 0x7F2C, - 19527: 0x7F2D, - 19528: 0x7F2F, - 19529: 0x7F30, - 19530: 0x7F31, - 19531: 0x7F32, - 19532: 0x7F33, - 19533: 0x7F35, - 19534: 0x5E7A, - 19535: 0x757F, - 19536: 0x5DDB, - 19537: 0x753E, - 19538: 0x9095, - 19539: 0x738E, - 19540: 0x7391, - 19541: 0x73AE, - 19542: 0x73A2, - 19543: 0x739F, - 19544: 0x73CF, - 19545: 0x73C2, - 19546: 0x73D1, - 19547: 0x73B7, - 19548: 0x73B3, - 19549: 0x73C0, - 19550: 0x73C9, - 19551: 0x73C8, - 19552: 0x73E5, - 19553: 0x73D9, - 19554: 0x987C, - 19555: 0x740A, - 19556: 0x73E9, - 19557: 0x73E7, - 19558: 0x73DE, - 19559: 0x73BA, - 19560: 0x73F2, - 19561: 0x740F, - 19562: 0x742A, - 19563: 0x745B, - 19564: 0x7426, - 19565: 0x7425, - 19566: 0x7428, - 19567: 0x7430, - 19568: 0x742E, - 19569: 0x742C, - 19570: 0x942F, - 19571: 0x9430, - 19572: 0x9431, - 19573: 0x9432, - 19574: 0x9433, - 19575: 0x9434, - 19576: 0x9435, - 19577: 0x9436, - 19578: 0x9437, - 19579: 0x9438, - 19580: 0x9439, - 19581: 0x943A, - 19582: 0x943B, - 19583: 0x943C, - 19584: 0x943D, - 19585: 0x943F, - 19586: 0x9440, - 19587: 0x9441, - 19588: 0x9442, - 19589: 0x9443, - 19590: 0x9444, - 19591: 0x9445, - 19592: 0x9446, - 19593: 0x9447, - 19594: 0x9448, - 19595: 0x9449, - 19596: 0x944A, - 19597: 0x944B, - 19598: 0x944C, - 19599: 0x944D, - 19600: 0x944E, - 19601: 0x944F, - 19602: 0x9450, - 19603: 0x9451, - 19604: 0x9452, - 19605: 0x9453, - 19606: 0x9454, - 19607: 0x9455, - 19608: 0x9456, - 19609: 0x9457, - 19610: 0x9458, - 19611: 0x9459, - 19612: 0x945A, - 19613: 0x945B, - 19614: 0x945C, - 19615: 0x945D, - 19616: 0x945E, - 19617: 0x945F, - 19618: 0x9460, - 19619: 0x9461, - 19620: 0x9462, - 19621: 0x9463, - 19622: 0x9464, - 19623: 0x9465, - 19624: 0x9466, - 19625: 0x9467, - 19626: 0x9468, - 19627: 0x9469, - 19628: 0x946A, - 19629: 0x946C, - 19630: 0x946D, - 19631: 0x946E, - 19632: 0x946F, - 19633: 0x9470, - 19634: 0x9471, - 19635: 0x9472, - 19636: 0x9473, - 19637: 0x9474, - 19638: 0x9475, - 19639: 0x9476, - 19640: 0x9477, - 19641: 0x9478, - 19642: 0x9479, - 19643: 0x947A, - 19644: 0x947B, - 19645: 0x947C, - 19646: 0x947D, - 19647: 0x947E, - 19648: 0x947F, - 19649: 0x9480, - 19650: 0x9481, - 19651: 0x9482, - 19652: 0x9483, - 19653: 0x9484, - 19654: 0x9491, - 19655: 0x9496, - 19656: 0x9498, - 19657: 0x94C7, - 19658: 0x94CF, - 19659: 0x94D3, - 19660: 0x94D4, - 19661: 0x94DA, - 19662: 0x94E6, - 19663: 0x94FB, - 19664: 0x951C, - 19665: 0x9520, - 19666: 0x741B, - 19667: 0x741A, - 19668: 0x7441, - 19669: 0x745C, - 19670: 0x7457, - 19671: 0x7455, - 19672: 0x7459, - 19673: 0x7477, - 19674: 0x746D, - 19675: 0x747E, - 19676: 0x749C, - 19677: 0x748E, - 19678: 0x7480, - 19679: 0x7481, - 19680: 0x7487, - 19681: 0x748B, - 19682: 0x749E, - 19683: 0x74A8, - 19684: 0x74A9, - 19685: 0x7490, - 19686: 0x74A7, - 19687: 0x74D2, - 19688: 0x74BA, - 19689: 0x97EA, - 19690: 0x97EB, - 19691: 0x97EC, - 19692: 0x674C, - 19693: 0x6753, - 19694: 0x675E, - 19695: 0x6748, - 19696: 0x6769, - 19697: 0x67A5, - 19698: 0x6787, - 19699: 0x676A, - 19700: 0x6773, - 19701: 0x6798, - 19702: 0x67A7, - 19703: 0x6775, - 19704: 0x67A8, - 19705: 0x679E, - 19706: 0x67AD, - 19707: 0x678B, - 19708: 0x6777, - 19709: 0x677C, - 19710: 0x67F0, - 19711: 0x6809, - 19712: 0x67D8, - 19713: 0x680A, - 19714: 0x67E9, - 19715: 0x67B0, - 19716: 0x680C, - 19717: 0x67D9, - 19718: 0x67B5, - 19719: 0x67DA, - 19720: 0x67B3, - 19721: 0x67DD, - 19722: 0x6800, - 19723: 0x67C3, - 19724: 0x67B8, - 19725: 0x67E2, - 19726: 0x680E, - 19727: 0x67C1, - 19728: 0x67FD, - 19729: 0x6832, - 19730: 0x6833, - 19731: 0x6860, - 19732: 0x6861, - 19733: 0x684E, - 19734: 0x6862, - 19735: 0x6844, - 19736: 0x6864, - 19737: 0x6883, - 19738: 0x681D, - 19739: 0x6855, - 19740: 0x6866, - 19741: 0x6841, - 19742: 0x6867, - 19743: 0x6840, - 19744: 0x683E, - 19745: 0x684A, - 19746: 0x6849, - 19747: 0x6829, - 19748: 0x68B5, - 19749: 0x688F, - 19750: 0x6874, - 19751: 0x6877, - 19752: 0x6893, - 19753: 0x686B, - 19754: 0x68C2, - 19755: 0x696E, - 19756: 0x68FC, - 19757: 0x691F, - 19758: 0x6920, - 19759: 0x68F9, - 19760: 0x9527, - 19761: 0x9533, - 19762: 0x953D, - 19763: 0x9543, - 19764: 0x9548, - 19765: 0x954B, - 19766: 0x9555, - 19767: 0x955A, - 19768: 0x9560, - 19769: 0x956E, - 19770: 0x9574, - 19771: 0x9575, - 19772: 0x9577, - 19773: 0x9578, - 19774: 0x9579, - 19775: 0x957A, - 19776: 0x957B, - 19777: 0x957C, - 19778: 0x957D, - 19779: 0x957E, - 19780: 0x9580, - 19781: 0x9581, - 19782: 0x9582, - 19783: 0x9583, - 19784: 0x9584, - 19785: 0x9585, - 19786: 0x9586, - 19787: 0x9587, - 19788: 0x9588, - 19789: 0x9589, - 19790: 0x958A, - 19791: 0x958B, - 19792: 0x958C, - 19793: 0x958D, - 19794: 0x958E, - 19795: 0x958F, - 19796: 0x9590, - 19797: 0x9591, - 19798: 0x9592, - 19799: 0x9593, - 19800: 0x9594, - 19801: 0x9595, - 19802: 0x9596, - 19803: 0x9597, - 19804: 0x9598, - 19805: 0x9599, - 19806: 0x959A, - 19807: 0x959B, - 19808: 0x959C, - 19809: 0x959D, - 19810: 0x959E, - 19811: 0x959F, - 19812: 0x95A0, - 19813: 0x95A1, - 19814: 0x95A2, - 19815: 0x95A3, - 19816: 0x95A4, - 19817: 0x95A5, - 19818: 0x95A6, - 19819: 0x95A7, - 19820: 0x95A8, - 19821: 0x95A9, - 19822: 0x95AA, - 19823: 0x95AB, - 19824: 0x95AC, - 19825: 0x95AD, - 19826: 0x95AE, - 19827: 0x95AF, - 19828: 0x95B0, - 19829: 0x95B1, - 19830: 0x95B2, - 19831: 0x95B3, - 19832: 0x95B4, - 19833: 0x95B5, - 19834: 0x95B6, - 19835: 0x95B7, - 19836: 0x95B8, - 19837: 0x95B9, - 19838: 0x95BA, - 19839: 0x95BB, - 19840: 0x95BC, - 19841: 0x95BD, - 19842: 0x95BE, - 19843: 0x95BF, - 19844: 0x95C0, - 19845: 0x95C1, - 19846: 0x95C2, - 19847: 0x95C3, - 19848: 0x95C4, - 19849: 0x95C5, - 19850: 0x95C6, - 19851: 0x95C7, - 19852: 0x95C8, - 19853: 0x95C9, - 19854: 0x95CA, - 19855: 0x95CB, - 19856: 0x6924, - 19857: 0x68F0, - 19858: 0x690B, - 19859: 0x6901, - 19860: 0x6957, - 19861: 0x68E3, - 19862: 0x6910, - 19863: 0x6971, - 19864: 0x6939, - 19865: 0x6960, - 19866: 0x6942, - 19867: 0x695D, - 19868: 0x6984, - 19869: 0x696B, - 19870: 0x6980, - 19871: 0x6998, - 19872: 0x6978, - 19873: 0x6934, - 19874: 0x69CC, - 19875: 0x6987, - 19876: 0x6988, - 19877: 0x69CE, - 19878: 0x6989, - 19879: 0x6966, - 19880: 0x6963, - 19881: 0x6979, - 19882: 0x699B, - 19883: 0x69A7, - 19884: 0x69BB, - 19885: 0x69AB, - 19886: 0x69AD, - 19887: 0x69D4, - 19888: 0x69B1, - 19889: 0x69C1, - 19890: 0x69CA, - 19891: 0x69DF, - 19892: 0x6995, - 19893: 0x69E0, - 19894: 0x698D, - 19895: 0x69FF, - 19896: 0x6A2F, - 19897: 0x69ED, - 19898: 0x6A17, - 19899: 0x6A18, - 19900: 0x6A65, - 19901: 0x69F2, - 19902: 0x6A44, - 19903: 0x6A3E, - 19904: 0x6AA0, - 19905: 0x6A50, - 19906: 0x6A5B, - 19907: 0x6A35, - 19908: 0x6A8E, - 19909: 0x6A79, - 19910: 0x6A3D, - 19911: 0x6A28, - 19912: 0x6A58, - 19913: 0x6A7C, - 19914: 0x6A91, - 19915: 0x6A90, - 19916: 0x6AA9, - 19917: 0x6A97, - 19918: 0x6AAB, - 19919: 0x7337, - 19920: 0x7352, - 19921: 0x6B81, - 19922: 0x6B82, - 19923: 0x6B87, - 19924: 0x6B84, - 19925: 0x6B92, - 19926: 0x6B93, - 19927: 0x6B8D, - 19928: 0x6B9A, - 19929: 0x6B9B, - 19930: 0x6BA1, - 19931: 0x6BAA, - 19932: 0x8F6B, - 19933: 0x8F6D, - 19934: 0x8F71, - 19935: 0x8F72, - 19936: 0x8F73, - 19937: 0x8F75, - 19938: 0x8F76, - 19939: 0x8F78, - 19940: 0x8F77, - 19941: 0x8F79, - 19942: 0x8F7A, - 19943: 0x8F7C, - 19944: 0x8F7E, - 19945: 0x8F81, - 19946: 0x8F82, - 19947: 0x8F84, - 19948: 0x8F87, - 19949: 0x8F8B, - 19950: 0x95CC, - 19951: 0x95CD, - 19952: 0x95CE, - 19953: 0x95CF, - 19954: 0x95D0, - 19955: 0x95D1, - 19956: 0x95D2, - 19957: 0x95D3, - 19958: 0x95D4, - 19959: 0x95D5, - 19960: 0x95D6, - 19961: 0x95D7, - 19962: 0x95D8, - 19963: 0x95D9, - 19964: 0x95DA, - 19965: 0x95DB, - 19966: 0x95DC, - 19967: 0x95DD, - 19968: 0x95DE, - 19969: 0x95DF, - 19970: 0x95E0, - 19971: 0x95E1, - 19972: 0x95E2, - 19973: 0x95E3, - 19974: 0x95E4, - 19975: 0x95E5, - 19976: 0x95E6, - 19977: 0x95E7, - 19978: 0x95EC, - 19979: 0x95FF, - 19980: 0x9607, - 19981: 0x9613, - 19982: 0x9618, - 19983: 0x961B, - 19984: 0x961E, - 19985: 0x9620, - 19986: 0x9623, - 19987: 0x9624, - 19988: 0x9625, - 19989: 0x9626, - 19990: 0x9627, - 19991: 0x9628, - 19992: 0x9629, - 19993: 0x962B, - 19994: 0x962C, - 19995: 0x962D, - 19996: 0x962F, - 19997: 0x9630, - 19998: 0x9637, - 19999: 0x9638, - 20000: 0x9639, - 20001: 0x963A, - 20002: 0x963E, - 20003: 0x9641, - 20004: 0x9643, - 20005: 0x964A, - 20006: 0x964E, - 20007: 0x964F, - 20008: 0x9651, - 20009: 0x9652, - 20010: 0x9653, - 20011: 0x9656, - 20012: 0x9657, - 20013: 0x9658, - 20014: 0x9659, - 20015: 0x965A, - 20016: 0x965C, - 20017: 0x965D, - 20018: 0x965E, - 20019: 0x9660, - 20020: 0x9663, - 20021: 0x9665, - 20022: 0x9666, - 20023: 0x966B, - 20024: 0x966D, - 20025: 0x966E, - 20026: 0x966F, - 20027: 0x9670, - 20028: 0x9671, - 20029: 0x9673, - 20030: 0x9678, - 20031: 0x9679, - 20032: 0x967A, - 20033: 0x967B, - 20034: 0x967C, - 20035: 0x967D, - 20036: 0x967E, - 20037: 0x967F, - 20038: 0x9680, - 20039: 0x9681, - 20040: 0x9682, - 20041: 0x9683, - 20042: 0x9684, - 20043: 0x9687, - 20044: 0x9689, - 20045: 0x968A, - 20046: 0x8F8D, - 20047: 0x8F8E, - 20048: 0x8F8F, - 20049: 0x8F98, - 20050: 0x8F9A, - 20051: 0x8ECE, - 20052: 0x620B, - 20053: 0x6217, - 20054: 0x621B, - 20055: 0x621F, - 20056: 0x6222, - 20057: 0x6221, - 20058: 0x6225, - 20059: 0x6224, - 20060: 0x622C, - 20061: 0x81E7, - 20062: 0x74EF, - 20063: 0x74F4, - 20064: 0x74FF, - 20065: 0x750F, - 20066: 0x7511, - 20067: 0x7513, - 20068: 0x6534, - 20069: 0x65EE, - 20070: 0x65EF, - 20071: 0x65F0, - 20072: 0x660A, - 20073: 0x6619, - 20074: 0x6772, - 20075: 0x6603, - 20076: 0x6615, - 20077: 0x6600, - 20078: 0x7085, - 20079: 0x66F7, - 20080: 0x661D, - 20081: 0x6634, - 20082: 0x6631, - 20083: 0x6636, - 20084: 0x6635, - 20085: 0x8006, - 20086: 0x665F, - 20087: 0x6654, - 20088: 0x6641, - 20089: 0x664F, - 20090: 0x6656, - 20091: 0x6661, - 20092: 0x6657, - 20093: 0x6677, - 20094: 0x6684, - 20095: 0x668C, - 20096: 0x66A7, - 20097: 0x669D, - 20098: 0x66BE, - 20099: 0x66DB, - 20100: 0x66DC, - 20101: 0x66E6, - 20102: 0x66E9, - 20103: 0x8D32, - 20104: 0x8D33, - 20105: 0x8D36, - 20106: 0x8D3B, - 20107: 0x8D3D, - 20108: 0x8D40, - 20109: 0x8D45, - 20110: 0x8D46, - 20111: 0x8D48, - 20112: 0x8D49, - 20113: 0x8D47, - 20114: 0x8D4D, - 20115: 0x8D55, - 20116: 0x8D59, - 20117: 0x89C7, - 20118: 0x89CA, - 20119: 0x89CB, - 20120: 0x89CC, - 20121: 0x89CE, - 20122: 0x89CF, - 20123: 0x89D0, - 20124: 0x89D1, - 20125: 0x726E, - 20126: 0x729F, - 20127: 0x725D, - 20128: 0x7266, - 20129: 0x726F, - 20130: 0x727E, - 20131: 0x727F, - 20132: 0x7284, - 20133: 0x728B, - 20134: 0x728D, - 20135: 0x728F, - 20136: 0x7292, - 20137: 0x6308, - 20138: 0x6332, - 20139: 0x63B0, - 20140: 0x968C, - 20141: 0x968E, - 20142: 0x9691, - 20143: 0x9692, - 20144: 0x9693, - 20145: 0x9695, - 20146: 0x9696, - 20147: 0x969A, - 20148: 0x969B, - 20149: 0x969D, - 20150: 0x969E, - 20151: 0x969F, - 20152: 0x96A0, - 20153: 0x96A1, - 20154: 0x96A2, - 20155: 0x96A3, - 20156: 0x96A4, - 20157: 0x96A5, - 20158: 0x96A6, - 20159: 0x96A8, - 20160: 0x96A9, - 20161: 0x96AA, - 20162: 0x96AB, - 20163: 0x96AC, - 20164: 0x96AD, - 20165: 0x96AE, - 20166: 0x96AF, - 20167: 0x96B1, - 20168: 0x96B2, - 20169: 0x96B4, - 20170: 0x96B5, - 20171: 0x96B7, - 20172: 0x96B8, - 20173: 0x96BA, - 20174: 0x96BB, - 20175: 0x96BF, - 20176: 0x96C2, - 20177: 0x96C3, - 20178: 0x96C8, - 20179: 0x96CA, - 20180: 0x96CB, - 20181: 0x96D0, - 20182: 0x96D1, - 20183: 0x96D3, - 20184: 0x96D4, - 20185: 0x96D6, - 20186: 0x96D7, - 20187: 0x96D8, - 20188: 0x96D9, - 20189: 0x96DA, - 20190: 0x96DB, - 20191: 0x96DC, - 20192: 0x96DD, - 20193: 0x96DE, - 20194: 0x96DF, - 20195: 0x96E1, - 20196: 0x96E2, - 20197: 0x96E3, - 20198: 0x96E4, - 20199: 0x96E5, - 20200: 0x96E6, - 20201: 0x96E7, - 20202: 0x96EB, - 20203: 0x96EC, - 20204: 0x96ED, - 20205: 0x96EE, - 20206: 0x96F0, - 20207: 0x96F1, - 20208: 0x96F2, - 20209: 0x96F4, - 20210: 0x96F5, - 20211: 0x96F8, - 20212: 0x96FA, - 20213: 0x96FB, - 20214: 0x96FC, - 20215: 0x96FD, - 20216: 0x96FF, - 20217: 0x9702, - 20218: 0x9703, - 20219: 0x9705, - 20220: 0x970A, - 20221: 0x970B, - 20222: 0x970C, - 20223: 0x9710, - 20224: 0x9711, - 20225: 0x9712, - 20226: 0x9714, - 20227: 0x9715, - 20228: 0x9717, - 20229: 0x9718, - 20230: 0x9719, - 20231: 0x971A, - 20232: 0x971B, - 20233: 0x971D, - 20234: 0x971F, - 20235: 0x9720, - 20236: 0x643F, - 20237: 0x64D8, - 20238: 0x8004, - 20239: 0x6BEA, - 20240: 0x6BF3, - 20241: 0x6BFD, - 20242: 0x6BF5, - 20243: 0x6BF9, - 20244: 0x6C05, - 20245: 0x6C07, - 20246: 0x6C06, - 20247: 0x6C0D, - 20248: 0x6C15, - 20249: 0x6C18, - 20250: 0x6C19, - 20251: 0x6C1A, - 20252: 0x6C21, - 20253: 0x6C29, - 20254: 0x6C24, - 20255: 0x6C2A, - 20256: 0x6C32, - 20257: 0x6535, - 20258: 0x6555, - 20259: 0x656B, - 20260: 0x724D, - 20261: 0x7252, - 20262: 0x7256, - 20263: 0x7230, - 20264: 0x8662, - 20265: 0x5216, - 20266: 0x809F, - 20267: 0x809C, - 20268: 0x8093, - 20269: 0x80BC, - 20270: 0x670A, - 20271: 0x80BD, - 20272: 0x80B1, - 20273: 0x80AB, - 20274: 0x80AD, - 20275: 0x80B4, - 20276: 0x80B7, - 20277: 0x80E7, - 20278: 0x80E8, - 20279: 0x80E9, - 20280: 0x80EA, - 20281: 0x80DB, - 20282: 0x80C2, - 20283: 0x80C4, - 20284: 0x80D9, - 20285: 0x80CD, - 20286: 0x80D7, - 20287: 0x6710, - 20288: 0x80DD, - 20289: 0x80EB, - 20290: 0x80F1, - 20291: 0x80F4, - 20292: 0x80ED, - 20293: 0x810D, - 20294: 0x810E, - 20295: 0x80F2, - 20296: 0x80FC, - 20297: 0x6715, - 20298: 0x8112, - 20299: 0x8C5A, - 20300: 0x8136, - 20301: 0x811E, - 20302: 0x812C, - 20303: 0x8118, - 20304: 0x8132, - 20305: 0x8148, - 20306: 0x814C, - 20307: 0x8153, - 20308: 0x8174, - 20309: 0x8159, - 20310: 0x815A, - 20311: 0x8171, - 20312: 0x8160, - 20313: 0x8169, - 20314: 0x817C, - 20315: 0x817D, - 20316: 0x816D, - 20317: 0x8167, - 20318: 0x584D, - 20319: 0x5AB5, - 20320: 0x8188, - 20321: 0x8182, - 20322: 0x8191, - 20323: 0x6ED5, - 20324: 0x81A3, - 20325: 0x81AA, - 20326: 0x81CC, - 20327: 0x6726, - 20328: 0x81CA, - 20329: 0x81BB, - 20330: 0x9721, - 20331: 0x9722, - 20332: 0x9723, - 20333: 0x9724, - 20334: 0x9725, - 20335: 0x9726, - 20336: 0x9727, - 20337: 0x9728, - 20338: 0x9729, - 20339: 0x972B, - 20340: 0x972C, - 20341: 0x972E, - 20342: 0x972F, - 20343: 0x9731, - 20344: 0x9733, - 20345: 0x9734, - 20346: 0x9735, - 20347: 0x9736, - 20348: 0x9737, - 20349: 0x973A, - 20350: 0x973B, - 20351: 0x973C, - 20352: 0x973D, - 20353: 0x973F, - 20354: 0x9740, - 20355: 0x9741, - 20356: 0x9742, - 20357: 0x9743, - 20358: 0x9744, - 20359: 0x9745, - 20360: 0x9746, - 20361: 0x9747, - 20362: 0x9748, - 20363: 0x9749, - 20364: 0x974A, - 20365: 0x974B, - 20366: 0x974C, - 20367: 0x974D, - 20368: 0x974E, - 20369: 0x974F, - 20370: 0x9750, - 20371: 0x9751, - 20372: 0x9754, - 20373: 0x9755, - 20374: 0x9757, - 20375: 0x9758, - 20376: 0x975A, - 20377: 0x975C, - 20378: 0x975D, - 20379: 0x975F, - 20380: 0x9763, - 20381: 0x9764, - 20382: 0x9766, - 20383: 0x9767, - 20384: 0x9768, - 20385: 0x976A, - 20386: 0x976B, - 20387: 0x976C, - 20388: 0x976D, - 20389: 0x976E, - 20390: 0x976F, - 20391: 0x9770, - 20392: 0x9771, - 20393: 0x9772, - 20394: 0x9775, - 20395: 0x9777, - 20396: 0x9778, - 20397: 0x9779, - 20398: 0x977A, - 20399: 0x977B, - 20400: 0x977D, - 20401: 0x977E, - 20402: 0x977F, - 20403: 0x9780, - 20404: 0x9781, - 20405: 0x9782, - 20406: 0x9783, - 20407: 0x9784, - 20408: 0x9786, - 20409: 0x9787, - 20410: 0x9788, - 20411: 0x9789, - 20412: 0x978A, - 20413: 0x978C, - 20414: 0x978E, - 20415: 0x978F, - 20416: 0x9790, - 20417: 0x9793, - 20418: 0x9795, - 20419: 0x9796, - 20420: 0x9797, - 20421: 0x9799, - 20422: 0x979A, - 20423: 0x979B, - 20424: 0x979C, - 20425: 0x979D, - 20426: 0x81C1, - 20427: 0x81A6, - 20428: 0x6B24, - 20429: 0x6B37, - 20430: 0x6B39, - 20431: 0x6B43, - 20432: 0x6B46, - 20433: 0x6B59, - 20434: 0x98D1, - 20435: 0x98D2, - 20436: 0x98D3, - 20437: 0x98D5, - 20438: 0x98D9, - 20439: 0x98DA, - 20440: 0x6BB3, - 20441: 0x5F40, - 20442: 0x6BC2, - 20443: 0x89F3, - 20444: 0x6590, - 20445: 0x9F51, - 20446: 0x6593, - 20447: 0x65BC, - 20448: 0x65C6, - 20449: 0x65C4, - 20450: 0x65C3, - 20451: 0x65CC, - 20452: 0x65CE, - 20453: 0x65D2, - 20454: 0x65D6, - 20455: 0x7080, - 20456: 0x709C, - 20457: 0x7096, - 20458: 0x709D, - 20459: 0x70BB, - 20460: 0x70C0, - 20461: 0x70B7, - 20462: 0x70AB, - 20463: 0x70B1, - 20464: 0x70E8, - 20465: 0x70CA, - 20466: 0x7110, - 20467: 0x7113, - 20468: 0x7116, - 20469: 0x712F, - 20470: 0x7131, - 20471: 0x7173, - 20472: 0x715C, - 20473: 0x7168, - 20474: 0x7145, - 20475: 0x7172, - 20476: 0x714A, - 20477: 0x7178, - 20478: 0x717A, - 20479: 0x7198, - 20480: 0x71B3, - 20481: 0x71B5, - 20482: 0x71A8, - 20483: 0x71A0, - 20484: 0x71E0, - 20485: 0x71D4, - 20486: 0x71E7, - 20487: 0x71F9, - 20488: 0x721D, - 20489: 0x7228, - 20490: 0x706C, - 20491: 0x7118, - 20492: 0x7166, - 20493: 0x71B9, - 20494: 0x623E, - 20495: 0x623D, - 20496: 0x6243, - 20497: 0x6248, - 20498: 0x6249, - 20499: 0x793B, - 20500: 0x7940, - 20501: 0x7946, - 20502: 0x7949, - 20503: 0x795B, - 20504: 0x795C, - 20505: 0x7953, - 20506: 0x795A, - 20507: 0x7962, - 20508: 0x7957, - 20509: 0x7960, - 20510: 0x796F, - 20511: 0x7967, - 20512: 0x797A, - 20513: 0x7985, - 20514: 0x798A, - 20515: 0x799A, - 20516: 0x79A7, - 20517: 0x79B3, - 20518: 0x5FD1, - 20519: 0x5FD0, - 20520: 0x979E, - 20521: 0x979F, - 20522: 0x97A1, - 20523: 0x97A2, - 20524: 0x97A4, - 20525: 0x97A5, - 20526: 0x97A6, - 20527: 0x97A7, - 20528: 0x97A8, - 20529: 0x97A9, - 20530: 0x97AA, - 20531: 0x97AC, - 20532: 0x97AE, - 20533: 0x97B0, - 20534: 0x97B1, - 20535: 0x97B3, - 20536: 0x97B5, - 20537: 0x97B6, - 20538: 0x97B7, - 20539: 0x97B8, - 20540: 0x97B9, - 20541: 0x97BA, - 20542: 0x97BB, - 20543: 0x97BC, - 20544: 0x97BD, - 20545: 0x97BE, - 20546: 0x97BF, - 20547: 0x97C0, - 20548: 0x97C1, - 20549: 0x97C2, - 20550: 0x97C3, - 20551: 0x97C4, - 20552: 0x97C5, - 20553: 0x97C6, - 20554: 0x97C7, - 20555: 0x97C8, - 20556: 0x97C9, - 20557: 0x97CA, - 20558: 0x97CB, - 20559: 0x97CC, - 20560: 0x97CD, - 20561: 0x97CE, - 20562: 0x97CF, - 20563: 0x97D0, - 20564: 0x97D1, - 20565: 0x97D2, - 20566: 0x97D3, - 20567: 0x97D4, - 20568: 0x97D5, - 20569: 0x97D6, - 20570: 0x97D7, - 20571: 0x97D8, - 20572: 0x97D9, - 20573: 0x97DA, - 20574: 0x97DB, - 20575: 0x97DC, - 20576: 0x97DD, - 20577: 0x97DE, - 20578: 0x97DF, - 20579: 0x97E0, - 20580: 0x97E1, - 20581: 0x97E2, - 20582: 0x97E3, - 20583: 0x97E4, - 20584: 0x97E5, - 20585: 0x97E8, - 20586: 0x97EE, - 20587: 0x97EF, - 20588: 0x97F0, - 20589: 0x97F1, - 20590: 0x97F2, - 20591: 0x97F4, - 20592: 0x97F7, - 20593: 0x97F8, - 20594: 0x97F9, - 20595: 0x97FA, - 20596: 0x97FB, - 20597: 0x97FC, - 20598: 0x97FD, - 20599: 0x97FE, - 20600: 0x97FF, - 20601: 0x9800, - 20602: 0x9801, - 20603: 0x9802, - 20604: 0x9803, - 20605: 0x9804, - 20606: 0x9805, - 20607: 0x9806, - 20608: 0x9807, - 20609: 0x9808, - 20610: 0x9809, - 20611: 0x980A, - 20612: 0x980B, - 20613: 0x980C, - 20614: 0x980D, - 20615: 0x980E, - 20616: 0x603C, - 20617: 0x605D, - 20618: 0x605A, - 20619: 0x6067, - 20620: 0x6041, - 20621: 0x6059, - 20622: 0x6063, - 20623: 0x60AB, - 20624: 0x6106, - 20625: 0x610D, - 20626: 0x615D, - 20627: 0x61A9, - 20628: 0x619D, - 20629: 0x61CB, - 20630: 0x61D1, - 20631: 0x6206, - 20632: 0x8080, - 20633: 0x807F, - 20634: 0x6C93, - 20635: 0x6CF6, - 20636: 0x6DFC, - 20637: 0x77F6, - 20638: 0x77F8, - 20639: 0x7800, - 20640: 0x7809, - 20641: 0x7817, - 20642: 0x7818, - 20643: 0x7811, - 20644: 0x65AB, - 20645: 0x782D, - 20646: 0x781C, - 20647: 0x781D, - 20648: 0x7839, - 20649: 0x783A, - 20650: 0x783B, - 20651: 0x781F, - 20652: 0x783C, - 20653: 0x7825, - 20654: 0x782C, - 20655: 0x7823, - 20656: 0x7829, - 20657: 0x784E, - 20658: 0x786D, - 20659: 0x7856, - 20660: 0x7857, - 20661: 0x7826, - 20662: 0x7850, - 20663: 0x7847, - 20664: 0x784C, - 20665: 0x786A, - 20666: 0x789B, - 20667: 0x7893, - 20668: 0x789A, - 20669: 0x7887, - 20670: 0x789C, - 20671: 0x78A1, - 20672: 0x78A3, - 20673: 0x78B2, - 20674: 0x78B9, - 20675: 0x78A5, - 20676: 0x78D4, - 20677: 0x78D9, - 20678: 0x78C9, - 20679: 0x78EC, - 20680: 0x78F2, - 20681: 0x7905, - 20682: 0x78F4, - 20683: 0x7913, - 20684: 0x7924, - 20685: 0x791E, - 20686: 0x7934, - 20687: 0x9F9B, - 20688: 0x9EF9, - 20689: 0x9EFB, - 20690: 0x9EFC, - 20691: 0x76F1, - 20692: 0x7704, - 20693: 0x770D, - 20694: 0x76F9, - 20695: 0x7707, - 20696: 0x7708, - 20697: 0x771A, - 20698: 0x7722, - 20699: 0x7719, - 20700: 0x772D, - 20701: 0x7726, - 20702: 0x7735, - 20703: 0x7738, - 20704: 0x7750, - 20705: 0x7751, - 20706: 0x7747, - 20707: 0x7743, - 20708: 0x775A, - 20709: 0x7768, - 20710: 0x980F, - 20711: 0x9810, - 20712: 0x9811, - 20713: 0x9812, - 20714: 0x9813, - 20715: 0x9814, - 20716: 0x9815, - 20717: 0x9816, - 20718: 0x9817, - 20719: 0x9818, - 20720: 0x9819, - 20721: 0x981A, - 20722: 0x981B, - 20723: 0x981C, - 20724: 0x981D, - 20725: 0x981E, - 20726: 0x981F, - 20727: 0x9820, - 20728: 0x9821, - 20729: 0x9822, - 20730: 0x9823, - 20731: 0x9824, - 20732: 0x9825, - 20733: 0x9826, - 20734: 0x9827, - 20735: 0x9828, - 20736: 0x9829, - 20737: 0x982A, - 20738: 0x982B, - 20739: 0x982C, - 20740: 0x982D, - 20741: 0x982E, - 20742: 0x982F, - 20743: 0x9830, - 20744: 0x9831, - 20745: 0x9832, - 20746: 0x9833, - 20747: 0x9834, - 20748: 0x9835, - 20749: 0x9836, - 20750: 0x9837, - 20751: 0x9838, - 20752: 0x9839, - 20753: 0x983A, - 20754: 0x983B, - 20755: 0x983C, - 20756: 0x983D, - 20757: 0x983E, - 20758: 0x983F, - 20759: 0x9840, - 20760: 0x9841, - 20761: 0x9842, - 20762: 0x9843, - 20763: 0x9844, - 20764: 0x9845, - 20765: 0x9846, - 20766: 0x9847, - 20767: 0x9848, - 20768: 0x9849, - 20769: 0x984A, - 20770: 0x984B, - 20771: 0x984C, - 20772: 0x984D, - 20773: 0x984E, - 20774: 0x984F, - 20775: 0x9850, - 20776: 0x9851, - 20777: 0x9852, - 20778: 0x9853, - 20779: 0x9854, - 20780: 0x9855, - 20781: 0x9856, - 20782: 0x9857, - 20783: 0x9858, - 20784: 0x9859, - 20785: 0x985A, - 20786: 0x985B, - 20787: 0x985C, - 20788: 0x985D, - 20789: 0x985E, - 20790: 0x985F, - 20791: 0x9860, - 20792: 0x9861, - 20793: 0x9862, - 20794: 0x9863, - 20795: 0x9864, - 20796: 0x9865, - 20797: 0x9866, - 20798: 0x9867, - 20799: 0x9868, - 20800: 0x9869, - 20801: 0x986A, - 20802: 0x986B, - 20803: 0x986C, - 20804: 0x986D, - 20805: 0x986E, - 20806: 0x7762, - 20807: 0x7765, - 20808: 0x777F, - 20809: 0x778D, - 20810: 0x777D, - 20811: 0x7780, - 20812: 0x778C, - 20813: 0x7791, - 20814: 0x779F, - 20815: 0x77A0, - 20816: 0x77B0, - 20817: 0x77B5, - 20818: 0x77BD, - 20819: 0x753A, - 20820: 0x7540, - 20821: 0x754E, - 20822: 0x754B, - 20823: 0x7548, - 20824: 0x755B, - 20825: 0x7572, - 20826: 0x7579, - 20827: 0x7583, - 20828: 0x7F58, - 20829: 0x7F61, - 20830: 0x7F5F, - 20831: 0x8A48, - 20832: 0x7F68, - 20833: 0x7F74, - 20834: 0x7F71, - 20835: 0x7F79, - 20836: 0x7F81, - 20837: 0x7F7E, - 20838: 0x76CD, - 20839: 0x76E5, - 20840: 0x8832, - 20841: 0x9485, - 20842: 0x9486, - 20843: 0x9487, - 20844: 0x948B, - 20845: 0x948A, - 20846: 0x948C, - 20847: 0x948D, - 20848: 0x948F, - 20849: 0x9490, - 20850: 0x9494, - 20851: 0x9497, - 20852: 0x9495, - 20853: 0x949A, - 20854: 0x949B, - 20855: 0x949C, - 20856: 0x94A3, - 20857: 0x94A4, - 20858: 0x94AB, - 20859: 0x94AA, - 20860: 0x94AD, - 20861: 0x94AC, - 20862: 0x94AF, - 20863: 0x94B0, - 20864: 0x94B2, - 20865: 0x94B4, - 20866: 0x94B6, - 20867: 0x94B7, - 20868: 0x94B8, - 20869: 0x94B9, - 20870: 0x94BA, - 20871: 0x94BC, - 20872: 0x94BD, - 20873: 0x94BF, - 20874: 0x94C4, - 20875: 0x94C8, - 20876: 0x94C9, - 20877: 0x94CA, - 20878: 0x94CB, - 20879: 0x94CC, - 20880: 0x94CD, - 20881: 0x94CE, - 20882: 0x94D0, - 20883: 0x94D1, - 20884: 0x94D2, - 20885: 0x94D5, - 20886: 0x94D6, - 20887: 0x94D7, - 20888: 0x94D9, - 20889: 0x94D8, - 20890: 0x94DB, - 20891: 0x94DE, - 20892: 0x94DF, - 20893: 0x94E0, - 20894: 0x94E2, - 20895: 0x94E4, - 20896: 0x94E5, - 20897: 0x94E7, - 20898: 0x94E8, - 20899: 0x94EA, - 20900: 0x986F, - 20901: 0x9870, - 20902: 0x9871, - 20903: 0x9872, - 20904: 0x9873, - 20905: 0x9874, - 20906: 0x988B, - 20907: 0x988E, - 20908: 0x9892, - 20909: 0x9895, - 20910: 0x9899, - 20911: 0x98A3, - 20912: 0x98A8, - 20913: 0x98A9, - 20914: 0x98AA, - 20915: 0x98AB, - 20916: 0x98AC, - 20917: 0x98AD, - 20918: 0x98AE, - 20919: 0x98AF, - 20920: 0x98B0, - 20921: 0x98B1, - 20922: 0x98B2, - 20923: 0x98B3, - 20924: 0x98B4, - 20925: 0x98B5, - 20926: 0x98B6, - 20927: 0x98B7, - 20928: 0x98B8, - 20929: 0x98B9, - 20930: 0x98BA, - 20931: 0x98BB, - 20932: 0x98BC, - 20933: 0x98BD, - 20934: 0x98BE, - 20935: 0x98BF, - 20936: 0x98C0, - 20937: 0x98C1, - 20938: 0x98C2, - 20939: 0x98C3, - 20940: 0x98C4, - 20941: 0x98C5, - 20942: 0x98C6, - 20943: 0x98C7, - 20944: 0x98C8, - 20945: 0x98C9, - 20946: 0x98CA, - 20947: 0x98CB, - 20948: 0x98CC, - 20949: 0x98CD, - 20950: 0x98CF, - 20951: 0x98D0, - 20952: 0x98D4, - 20953: 0x98D6, - 20954: 0x98D7, - 20955: 0x98DB, - 20956: 0x98DC, - 20957: 0x98DD, - 20958: 0x98E0, - 20959: 0x98E1, - 20960: 0x98E2, - 20961: 0x98E3, - 20962: 0x98E4, - 20963: 0x98E5, - 20964: 0x98E6, - 20965: 0x98E9, - 20966: 0x98EA, - 20967: 0x98EB, - 20968: 0x98EC, - 20969: 0x98ED, - 20970: 0x98EE, - 20971: 0x98EF, - 20972: 0x98F0, - 20973: 0x98F1, - 20974: 0x98F2, - 20975: 0x98F3, - 20976: 0x98F4, - 20977: 0x98F5, - 20978: 0x98F6, - 20979: 0x98F7, - 20980: 0x98F8, - 20981: 0x98F9, - 20982: 0x98FA, - 20983: 0x98FB, - 20984: 0x98FC, - 20985: 0x98FD, - 20986: 0x98FE, - 20987: 0x98FF, - 20988: 0x9900, - 20989: 0x9901, - 20990: 0x9902, - 20991: 0x9903, - 20992: 0x9904, - 20993: 0x9905, - 20994: 0x9906, - 20995: 0x9907, - 20996: 0x94E9, - 20997: 0x94EB, - 20998: 0x94EE, - 20999: 0x94EF, - 21000: 0x94F3, - 21001: 0x94F4, - 21002: 0x94F5, - 21003: 0x94F7, - 21004: 0x94F9, - 21005: 0x94FC, - 21006: 0x94FD, - 21007: 0x94FF, - 21008: 0x9503, - 21009: 0x9502, - 21010: 0x9506, - 21011: 0x9507, - 21012: 0x9509, - 21013: 0x950A, - 21014: 0x950D, - 21015: 0x950E, - 21016: 0x950F, - 21017: 0x9512, - 21018: 0x9513, - 21019: 0x9514, - 21020: 0x9515, - 21021: 0x9516, - 21022: 0x9518, - 21023: 0x951B, - 21024: 0x951D, - 21025: 0x951E, - 21026: 0x951F, - 21027: 0x9522, - 21028: 0x952A, - 21029: 0x952B, - 21030: 0x9529, - 21031: 0x952C, - 21032: 0x9531, - 21033: 0x9532, - 21034: 0x9534, - 21035: 0x9536, - 21036: 0x9537, - 21037: 0x9538, - 21038: 0x953C, - 21039: 0x953E, - 21040: 0x953F, - 21041: 0x9542, - 21042: 0x9535, - 21043: 0x9544, - 21044: 0x9545, - 21045: 0x9546, - 21046: 0x9549, - 21047: 0x954C, - 21048: 0x954E, - 21049: 0x954F, - 21050: 0x9552, - 21051: 0x9553, - 21052: 0x9554, - 21053: 0x9556, - 21054: 0x9557, - 21055: 0x9558, - 21056: 0x9559, - 21057: 0x955B, - 21058: 0x955E, - 21059: 0x955F, - 21060: 0x955D, - 21061: 0x9561, - 21062: 0x9562, - 21063: 0x9564, - 21064: 0x9565, - 21065: 0x9566, - 21066: 0x9567, - 21067: 0x9568, - 21068: 0x9569, - 21069: 0x956A, - 21070: 0x956B, - 21071: 0x956C, - 21072: 0x956F, - 21073: 0x9571, - 21074: 0x9572, - 21075: 0x9573, - 21076: 0x953A, - 21077: 0x77E7, - 21078: 0x77EC, - 21079: 0x96C9, - 21080: 0x79D5, - 21081: 0x79ED, - 21082: 0x79E3, - 21083: 0x79EB, - 21084: 0x7A06, - 21085: 0x5D47, - 21086: 0x7A03, - 21087: 0x7A02, - 21088: 0x7A1E, - 21089: 0x7A14, - 21090: 0x9908, - 21091: 0x9909, - 21092: 0x990A, - 21093: 0x990B, - 21094: 0x990C, - 21095: 0x990E, - 21096: 0x990F, - 21097: 0x9911, - 21098: 0x9912, - 21099: 0x9913, - 21100: 0x9914, - 21101: 0x9915, - 21102: 0x9916, - 21103: 0x9917, - 21104: 0x9918, - 21105: 0x9919, - 21106: 0x991A, - 21107: 0x991B, - 21108: 0x991C, - 21109: 0x991D, - 21110: 0x991E, - 21111: 0x991F, - 21112: 0x9920, - 21113: 0x9921, - 21114: 0x9922, - 21115: 0x9923, - 21116: 0x9924, - 21117: 0x9925, - 21118: 0x9926, - 21119: 0x9927, - 21120: 0x9928, - 21121: 0x9929, - 21122: 0x992A, - 21123: 0x992B, - 21124: 0x992C, - 21125: 0x992D, - 21126: 0x992F, - 21127: 0x9930, - 21128: 0x9931, - 21129: 0x9932, - 21130: 0x9933, - 21131: 0x9934, - 21132: 0x9935, - 21133: 0x9936, - 21134: 0x9937, - 21135: 0x9938, - 21136: 0x9939, - 21137: 0x993A, - 21138: 0x993B, - 21139: 0x993C, - 21140: 0x993D, - 21141: 0x993E, - 21142: 0x993F, - 21143: 0x9940, - 21144: 0x9941, - 21145: 0x9942, - 21146: 0x9943, - 21147: 0x9944, - 21148: 0x9945, - 21149: 0x9946, - 21150: 0x9947, - 21151: 0x9948, - 21152: 0x9949, - 21153: 0x994A, - 21154: 0x994B, - 21155: 0x994C, - 21156: 0x994D, - 21157: 0x994E, - 21158: 0x994F, - 21159: 0x9950, - 21160: 0x9951, - 21161: 0x9952, - 21162: 0x9953, - 21163: 0x9956, - 21164: 0x9957, - 21165: 0x9958, - 21166: 0x9959, - 21167: 0x995A, - 21168: 0x995B, - 21169: 0x995C, - 21170: 0x995D, - 21171: 0x995E, - 21172: 0x995F, - 21173: 0x9960, - 21174: 0x9961, - 21175: 0x9962, - 21176: 0x9964, - 21177: 0x9966, - 21178: 0x9973, - 21179: 0x9978, - 21180: 0x9979, - 21181: 0x997B, - 21182: 0x997E, - 21183: 0x9982, - 21184: 0x9983, - 21185: 0x9989, - 21186: 0x7A39, - 21187: 0x7A37, - 21188: 0x7A51, - 21189: 0x9ECF, - 21190: 0x99A5, - 21191: 0x7A70, - 21192: 0x7688, - 21193: 0x768E, - 21194: 0x7693, - 21195: 0x7699, - 21196: 0x76A4, - 21197: 0x74DE, - 21198: 0x74E0, - 21199: 0x752C, - 21200: 0x9E20, - 21201: 0x9E22, - 21202: 0x9E28, - 21203: 0x9E29, - 21204: 0x9E2A, - 21205: 0x9E2B, - 21206: 0x9E2C, - 21207: 0x9E32, - 21208: 0x9E31, - 21209: 0x9E36, - 21210: 0x9E38, - 21211: 0x9E37, - 21212: 0x9E39, - 21213: 0x9E3A, - 21214: 0x9E3E, - 21215: 0x9E41, - 21216: 0x9E42, - 21217: 0x9E44, - 21218: 0x9E46, - 21219: 0x9E47, - 21220: 0x9E48, - 21221: 0x9E49, - 21222: 0x9E4B, - 21223: 0x9E4C, - 21224: 0x9E4E, - 21225: 0x9E51, - 21226: 0x9E55, - 21227: 0x9E57, - 21228: 0x9E5A, - 21229: 0x9E5B, - 21230: 0x9E5C, - 21231: 0x9E5E, - 21232: 0x9E63, - 21233: 0x9E66, - 21234: 0x9E67, - 21235: 0x9E68, - 21236: 0x9E69, - 21237: 0x9E6A, - 21238: 0x9E6B, - 21239: 0x9E6C, - 21240: 0x9E71, - 21241: 0x9E6D, - 21242: 0x9E73, - 21243: 0x7592, - 21244: 0x7594, - 21245: 0x7596, - 21246: 0x75A0, - 21247: 0x759D, - 21248: 0x75AC, - 21249: 0x75A3, - 21250: 0x75B3, - 21251: 0x75B4, - 21252: 0x75B8, - 21253: 0x75C4, - 21254: 0x75B1, - 21255: 0x75B0, - 21256: 0x75C3, - 21257: 0x75C2, - 21258: 0x75D6, - 21259: 0x75CD, - 21260: 0x75E3, - 21261: 0x75E8, - 21262: 0x75E6, - 21263: 0x75E4, - 21264: 0x75EB, - 21265: 0x75E7, - 21266: 0x7603, - 21267: 0x75F1, - 21268: 0x75FC, - 21269: 0x75FF, - 21270: 0x7610, - 21271: 0x7600, - 21272: 0x7605, - 21273: 0x760C, - 21274: 0x7617, - 21275: 0x760A, - 21276: 0x7625, - 21277: 0x7618, - 21278: 0x7615, - 21279: 0x7619, - 21280: 0x998C, - 21281: 0x998E, - 21282: 0x999A, - 21283: 0x999B, - 21284: 0x999C, - 21285: 0x999D, - 21286: 0x999E, - 21287: 0x999F, - 21288: 0x99A0, - 21289: 0x99A1, - 21290: 0x99A2, - 21291: 0x99A3, - 21292: 0x99A4, - 21293: 0x99A6, - 21294: 0x99A7, - 21295: 0x99A9, - 21296: 0x99AA, - 21297: 0x99AB, - 21298: 0x99AC, - 21299: 0x99AD, - 21300: 0x99AE, - 21301: 0x99AF, - 21302: 0x99B0, - 21303: 0x99B1, - 21304: 0x99B2, - 21305: 0x99B3, - 21306: 0x99B4, - 21307: 0x99B5, - 21308: 0x99B6, - 21309: 0x99B7, - 21310: 0x99B8, - 21311: 0x99B9, - 21312: 0x99BA, - 21313: 0x99BB, - 21314: 0x99BC, - 21315: 0x99BD, - 21316: 0x99BE, - 21317: 0x99BF, - 21318: 0x99C0, - 21319: 0x99C1, - 21320: 0x99C2, - 21321: 0x99C3, - 21322: 0x99C4, - 21323: 0x99C5, - 21324: 0x99C6, - 21325: 0x99C7, - 21326: 0x99C8, - 21327: 0x99C9, - 21328: 0x99CA, - 21329: 0x99CB, - 21330: 0x99CC, - 21331: 0x99CD, - 21332: 0x99CE, - 21333: 0x99CF, - 21334: 0x99D0, - 21335: 0x99D1, - 21336: 0x99D2, - 21337: 0x99D3, - 21338: 0x99D4, - 21339: 0x99D5, - 21340: 0x99D6, - 21341: 0x99D7, - 21342: 0x99D8, - 21343: 0x99D9, - 21344: 0x99DA, - 21345: 0x99DB, - 21346: 0x99DC, - 21347: 0x99DD, - 21348: 0x99DE, - 21349: 0x99DF, - 21350: 0x99E0, - 21351: 0x99E1, - 21352: 0x99E2, - 21353: 0x99E3, - 21354: 0x99E4, - 21355: 0x99E5, - 21356: 0x99E6, - 21357: 0x99E7, - 21358: 0x99E8, - 21359: 0x99E9, - 21360: 0x99EA, - 21361: 0x99EB, - 21362: 0x99EC, - 21363: 0x99ED, - 21364: 0x99EE, - 21365: 0x99EF, - 21366: 0x99F0, - 21367: 0x99F1, - 21368: 0x99F2, - 21369: 0x99F3, - 21370: 0x99F4, - 21371: 0x99F5, - 21372: 0x99F6, - 21373: 0x99F7, - 21374: 0x99F8, - 21375: 0x99F9, - 21376: 0x761B, - 21377: 0x763C, - 21378: 0x7622, - 21379: 0x7620, - 21380: 0x7640, - 21381: 0x762D, - 21382: 0x7630, - 21383: 0x763F, - 21384: 0x7635, - 21385: 0x7643, - 21386: 0x763E, - 21387: 0x7633, - 21388: 0x764D, - 21389: 0x765E, - 21390: 0x7654, - 21391: 0x765C, - 21392: 0x7656, - 21393: 0x766B, - 21394: 0x766F, - 21395: 0x7FCA, - 21396: 0x7AE6, - 21397: 0x7A78, - 21398: 0x7A79, - 21399: 0x7A80, - 21400: 0x7A86, - 21401: 0x7A88, - 21402: 0x7A95, - 21403: 0x7AA6, - 21404: 0x7AA0, - 21405: 0x7AAC, - 21406: 0x7AA8, - 21407: 0x7AAD, - 21408: 0x7AB3, - 21409: 0x8864, - 21410: 0x8869, - 21411: 0x8872, - 21412: 0x887D, - 21413: 0x887F, - 21414: 0x8882, - 21415: 0x88A2, - 21416: 0x88C6, - 21417: 0x88B7, - 21418: 0x88BC, - 21419: 0x88C9, - 21420: 0x88E2, - 21421: 0x88CE, - 21422: 0x88E3, - 21423: 0x88E5, - 21424: 0x88F1, - 21425: 0x891A, - 21426: 0x88FC, - 21427: 0x88E8, - 21428: 0x88FE, - 21429: 0x88F0, - 21430: 0x8921, - 21431: 0x8919, - 21432: 0x8913, - 21433: 0x891B, - 21434: 0x890A, - 21435: 0x8934, - 21436: 0x892B, - 21437: 0x8936, - 21438: 0x8941, - 21439: 0x8966, - 21440: 0x897B, - 21441: 0x758B, - 21442: 0x80E5, - 21443: 0x76B2, - 21444: 0x76B4, - 21445: 0x77DC, - 21446: 0x8012, - 21447: 0x8014, - 21448: 0x8016, - 21449: 0x801C, - 21450: 0x8020, - 21451: 0x8022, - 21452: 0x8025, - 21453: 0x8026, - 21454: 0x8027, - 21455: 0x8029, - 21456: 0x8028, - 21457: 0x8031, - 21458: 0x800B, - 21459: 0x8035, - 21460: 0x8043, - 21461: 0x8046, - 21462: 0x804D, - 21463: 0x8052, - 21464: 0x8069, - 21465: 0x8071, - 21466: 0x8983, - 21467: 0x9878, - 21468: 0x9880, - 21469: 0x9883, - 21470: 0x99FA, - 21471: 0x99FB, - 21472: 0x99FC, - 21473: 0x99FD, - 21474: 0x99FE, - 21475: 0x99FF, - 21476: 0x9A00, - 21477: 0x9A01, - 21478: 0x9A02, - 21479: 0x9A03, - 21480: 0x9A04, - 21481: 0x9A05, - 21482: 0x9A06, - 21483: 0x9A07, - 21484: 0x9A08, - 21485: 0x9A09, - 21486: 0x9A0A, - 21487: 0x9A0B, - 21488: 0x9A0C, - 21489: 0x9A0D, - 21490: 0x9A0E, - 21491: 0x9A0F, - 21492: 0x9A10, - 21493: 0x9A11, - 21494: 0x9A12, - 21495: 0x9A13, - 21496: 0x9A14, - 21497: 0x9A15, - 21498: 0x9A16, - 21499: 0x9A17, - 21500: 0x9A18, - 21501: 0x9A19, - 21502: 0x9A1A, - 21503: 0x9A1B, - 21504: 0x9A1C, - 21505: 0x9A1D, - 21506: 0x9A1E, - 21507: 0x9A1F, - 21508: 0x9A20, - 21509: 0x9A21, - 21510: 0x9A22, - 21511: 0x9A23, - 21512: 0x9A24, - 21513: 0x9A25, - 21514: 0x9A26, - 21515: 0x9A27, - 21516: 0x9A28, - 21517: 0x9A29, - 21518: 0x9A2A, - 21519: 0x9A2B, - 21520: 0x9A2C, - 21521: 0x9A2D, - 21522: 0x9A2E, - 21523: 0x9A2F, - 21524: 0x9A30, - 21525: 0x9A31, - 21526: 0x9A32, - 21527: 0x9A33, - 21528: 0x9A34, - 21529: 0x9A35, - 21530: 0x9A36, - 21531: 0x9A37, - 21532: 0x9A38, - 21533: 0x9A39, - 21534: 0x9A3A, - 21535: 0x9A3B, - 21536: 0x9A3C, - 21537: 0x9A3D, - 21538: 0x9A3E, - 21539: 0x9A3F, - 21540: 0x9A40, - 21541: 0x9A41, - 21542: 0x9A42, - 21543: 0x9A43, - 21544: 0x9A44, - 21545: 0x9A45, - 21546: 0x9A46, - 21547: 0x9A47, - 21548: 0x9A48, - 21549: 0x9A49, - 21550: 0x9A4A, - 21551: 0x9A4B, - 21552: 0x9A4C, - 21553: 0x9A4D, - 21554: 0x9A4E, - 21555: 0x9A4F, - 21556: 0x9A50, - 21557: 0x9A51, - 21558: 0x9A52, - 21559: 0x9A53, - 21560: 0x9A54, - 21561: 0x9A55, - 21562: 0x9A56, - 21563: 0x9A57, - 21564: 0x9A58, - 21565: 0x9A59, - 21566: 0x9889, - 21567: 0x988C, - 21568: 0x988D, - 21569: 0x988F, - 21570: 0x9894, - 21571: 0x989A, - 21572: 0x989B, - 21573: 0x989E, - 21574: 0x989F, - 21575: 0x98A1, - 21576: 0x98A2, - 21577: 0x98A5, - 21578: 0x98A6, - 21579: 0x864D, - 21580: 0x8654, - 21581: 0x866C, - 21582: 0x866E, - 21583: 0x867F, - 21584: 0x867A, - 21585: 0x867C, - 21586: 0x867B, - 21587: 0x86A8, - 21588: 0x868D, - 21589: 0x868B, - 21590: 0x86AC, - 21591: 0x869D, - 21592: 0x86A7, - 21593: 0x86A3, - 21594: 0x86AA, - 21595: 0x8693, - 21596: 0x86A9, - 21597: 0x86B6, - 21598: 0x86C4, - 21599: 0x86B5, - 21600: 0x86CE, - 21601: 0x86B0, - 21602: 0x86BA, - 21603: 0x86B1, - 21604: 0x86AF, - 21605: 0x86C9, - 21606: 0x86CF, - 21607: 0x86B4, - 21608: 0x86E9, - 21609: 0x86F1, - 21610: 0x86F2, - 21611: 0x86ED, - 21612: 0x86F3, - 21613: 0x86D0, - 21614: 0x8713, - 21615: 0x86DE, - 21616: 0x86F4, - 21617: 0x86DF, - 21618: 0x86D8, - 21619: 0x86D1, - 21620: 0x8703, - 21621: 0x8707, - 21622: 0x86F8, - 21623: 0x8708, - 21624: 0x870A, - 21625: 0x870D, - 21626: 0x8709, - 21627: 0x8723, - 21628: 0x873B, - 21629: 0x871E, - 21630: 0x8725, - 21631: 0x872E, - 21632: 0x871A, - 21633: 0x873E, - 21634: 0x8748, - 21635: 0x8734, - 21636: 0x8731, - 21637: 0x8729, - 21638: 0x8737, - 21639: 0x873F, - 21640: 0x8782, - 21641: 0x8722, - 21642: 0x877D, - 21643: 0x877E, - 21644: 0x877B, - 21645: 0x8760, - 21646: 0x8770, - 21647: 0x874C, - 21648: 0x876E, - 21649: 0x878B, - 21650: 0x8753, - 21651: 0x8763, - 21652: 0x877C, - 21653: 0x8764, - 21654: 0x8759, - 21655: 0x8765, - 21656: 0x8793, - 21657: 0x87AF, - 21658: 0x87A8, - 21659: 0x87D2, - 21660: 0x9A5A, - 21661: 0x9A5B, - 21662: 0x9A5C, - 21663: 0x9A5D, - 21664: 0x9A5E, - 21665: 0x9A5F, - 21666: 0x9A60, - 21667: 0x9A61, - 21668: 0x9A62, - 21669: 0x9A63, - 21670: 0x9A64, - 21671: 0x9A65, - 21672: 0x9A66, - 21673: 0x9A67, - 21674: 0x9A68, - 21675: 0x9A69, - 21676: 0x9A6A, - 21677: 0x9A6B, - 21678: 0x9A72, - 21679: 0x9A83, - 21680: 0x9A89, - 21681: 0x9A8D, - 21682: 0x9A8E, - 21683: 0x9A94, - 21684: 0x9A95, - 21685: 0x9A99, - 21686: 0x9AA6, - 21687: 0x9AA9, - 21688: 0x9AAA, - 21689: 0x9AAB, - 21690: 0x9AAC, - 21691: 0x9AAD, - 21692: 0x9AAE, - 21693: 0x9AAF, - 21694: 0x9AB2, - 21695: 0x9AB3, - 21696: 0x9AB4, - 21697: 0x9AB5, - 21698: 0x9AB9, - 21699: 0x9ABB, - 21700: 0x9ABD, - 21701: 0x9ABE, - 21702: 0x9ABF, - 21703: 0x9AC3, - 21704: 0x9AC4, - 21705: 0x9AC6, - 21706: 0x9AC7, - 21707: 0x9AC8, - 21708: 0x9AC9, - 21709: 0x9ACA, - 21710: 0x9ACD, - 21711: 0x9ACE, - 21712: 0x9ACF, - 21713: 0x9AD0, - 21714: 0x9AD2, - 21715: 0x9AD4, - 21716: 0x9AD5, - 21717: 0x9AD6, - 21718: 0x9AD7, - 21719: 0x9AD9, - 21720: 0x9ADA, - 21721: 0x9ADB, - 21722: 0x9ADC, - 21723: 0x9ADD, - 21724: 0x9ADE, - 21725: 0x9AE0, - 21726: 0x9AE2, - 21727: 0x9AE3, - 21728: 0x9AE4, - 21729: 0x9AE5, - 21730: 0x9AE7, - 21731: 0x9AE8, - 21732: 0x9AE9, - 21733: 0x9AEA, - 21734: 0x9AEC, - 21735: 0x9AEE, - 21736: 0x9AF0, - 21737: 0x9AF1, - 21738: 0x9AF2, - 21739: 0x9AF3, - 21740: 0x9AF4, - 21741: 0x9AF5, - 21742: 0x9AF6, - 21743: 0x9AF7, - 21744: 0x9AF8, - 21745: 0x9AFA, - 21746: 0x9AFC, - 21747: 0x9AFD, - 21748: 0x9AFE, - 21749: 0x9AFF, - 21750: 0x9B00, - 21751: 0x9B01, - 21752: 0x9B02, - 21753: 0x9B04, - 21754: 0x9B05, - 21755: 0x9B06, - 21756: 0x87C6, - 21757: 0x8788, - 21758: 0x8785, - 21759: 0x87AD, - 21760: 0x8797, - 21761: 0x8783, - 21762: 0x87AB, - 21763: 0x87E5, - 21764: 0x87AC, - 21765: 0x87B5, - 21766: 0x87B3, - 21767: 0x87CB, - 21768: 0x87D3, - 21769: 0x87BD, - 21770: 0x87D1, - 21771: 0x87C0, - 21772: 0x87CA, - 21773: 0x87DB, - 21774: 0x87EA, - 21775: 0x87E0, - 21776: 0x87EE, - 21777: 0x8816, - 21778: 0x8813, - 21779: 0x87FE, - 21780: 0x880A, - 21781: 0x881B, - 21782: 0x8821, - 21783: 0x8839, - 21784: 0x883C, - 21785: 0x7F36, - 21786: 0x7F42, - 21787: 0x7F44, - 21788: 0x7F45, - 21789: 0x8210, - 21790: 0x7AFA, - 21791: 0x7AFD, - 21792: 0x7B08, - 21793: 0x7B03, - 21794: 0x7B04, - 21795: 0x7B15, - 21796: 0x7B0A, - 21797: 0x7B2B, - 21798: 0x7B0F, - 21799: 0x7B47, - 21800: 0x7B38, - 21801: 0x7B2A, - 21802: 0x7B19, - 21803: 0x7B2E, - 21804: 0x7B31, - 21805: 0x7B20, - 21806: 0x7B25, - 21807: 0x7B24, - 21808: 0x7B33, - 21809: 0x7B3E, - 21810: 0x7B1E, - 21811: 0x7B58, - 21812: 0x7B5A, - 21813: 0x7B45, - 21814: 0x7B75, - 21815: 0x7B4C, - 21816: 0x7B5D, - 21817: 0x7B60, - 21818: 0x7B6E, - 21819: 0x7B7B, - 21820: 0x7B62, - 21821: 0x7B72, - 21822: 0x7B71, - 21823: 0x7B90, - 21824: 0x7BA6, - 21825: 0x7BA7, - 21826: 0x7BB8, - 21827: 0x7BAC, - 21828: 0x7B9D, - 21829: 0x7BA8, - 21830: 0x7B85, - 21831: 0x7BAA, - 21832: 0x7B9C, - 21833: 0x7BA2, - 21834: 0x7BAB, - 21835: 0x7BB4, - 21836: 0x7BD1, - 21837: 0x7BC1, - 21838: 0x7BCC, - 21839: 0x7BDD, - 21840: 0x7BDA, - 21841: 0x7BE5, - 21842: 0x7BE6, - 21843: 0x7BEA, - 21844: 0x7C0C, - 21845: 0x7BFE, - 21846: 0x7BFC, - 21847: 0x7C0F, - 21848: 0x7C16, - 21849: 0x7C0B, - 21850: 0x9B07, - 21851: 0x9B09, - 21852: 0x9B0A, - 21853: 0x9B0B, - 21854: 0x9B0C, - 21855: 0x9B0D, - 21856: 0x9B0E, - 21857: 0x9B10, - 21858: 0x9B11, - 21859: 0x9B12, - 21860: 0x9B14, - 21861: 0x9B15, - 21862: 0x9B16, - 21863: 0x9B17, - 21864: 0x9B18, - 21865: 0x9B19, - 21866: 0x9B1A, - 21867: 0x9B1B, - 21868: 0x9B1C, - 21869: 0x9B1D, - 21870: 0x9B1E, - 21871: 0x9B20, - 21872: 0x9B21, - 21873: 0x9B22, - 21874: 0x9B24, - 21875: 0x9B25, - 21876: 0x9B26, - 21877: 0x9B27, - 21878: 0x9B28, - 21879: 0x9B29, - 21880: 0x9B2A, - 21881: 0x9B2B, - 21882: 0x9B2C, - 21883: 0x9B2D, - 21884: 0x9B2E, - 21885: 0x9B30, - 21886: 0x9B31, - 21887: 0x9B33, - 21888: 0x9B34, - 21889: 0x9B35, - 21890: 0x9B36, - 21891: 0x9B37, - 21892: 0x9B38, - 21893: 0x9B39, - 21894: 0x9B3A, - 21895: 0x9B3D, - 21896: 0x9B3E, - 21897: 0x9B3F, - 21898: 0x9B40, - 21899: 0x9B46, - 21900: 0x9B4A, - 21901: 0x9B4B, - 21902: 0x9B4C, - 21903: 0x9B4E, - 21904: 0x9B50, - 21905: 0x9B52, - 21906: 0x9B53, - 21907: 0x9B55, - 21908: 0x9B56, - 21909: 0x9B57, - 21910: 0x9B58, - 21911: 0x9B59, - 21912: 0x9B5A, - 21913: 0x9B5B, - 21914: 0x9B5C, - 21915: 0x9B5D, - 21916: 0x9B5E, - 21917: 0x9B5F, - 21918: 0x9B60, - 21919: 0x9B61, - 21920: 0x9B62, - 21921: 0x9B63, - 21922: 0x9B64, - 21923: 0x9B65, - 21924: 0x9B66, - 21925: 0x9B67, - 21926: 0x9B68, - 21927: 0x9B69, - 21928: 0x9B6A, - 21929: 0x9B6B, - 21930: 0x9B6C, - 21931: 0x9B6D, - 21932: 0x9B6E, - 21933: 0x9B6F, - 21934: 0x9B70, - 21935: 0x9B71, - 21936: 0x9B72, - 21937: 0x9B73, - 21938: 0x9B74, - 21939: 0x9B75, - 21940: 0x9B76, - 21941: 0x9B77, - 21942: 0x9B78, - 21943: 0x9B79, - 21944: 0x9B7A, - 21945: 0x9B7B, - 21946: 0x7C1F, - 21947: 0x7C2A, - 21948: 0x7C26, - 21949: 0x7C38, - 21950: 0x7C41, - 21951: 0x7C40, - 21952: 0x81FE, - 21953: 0x8201, - 21954: 0x8202, - 21955: 0x8204, - 21956: 0x81EC, - 21957: 0x8844, - 21958: 0x8221, - 21959: 0x8222, - 21960: 0x8223, - 21961: 0x822D, - 21962: 0x822F, - 21963: 0x8228, - 21964: 0x822B, - 21965: 0x8238, - 21966: 0x823B, - 21967: 0x8233, - 21968: 0x8234, - 21969: 0x823E, - 21970: 0x8244, - 21971: 0x8249, - 21972: 0x824B, - 21973: 0x824F, - 21974: 0x825A, - 21975: 0x825F, - 21976: 0x8268, - 21977: 0x887E, - 21978: 0x8885, - 21979: 0x8888, - 21980: 0x88D8, - 21981: 0x88DF, - 21982: 0x895E, - 21983: 0x7F9D, - 21984: 0x7F9F, - 21985: 0x7FA7, - 21986: 0x7FAF, - 21987: 0x7FB0, - 21988: 0x7FB2, - 21989: 0x7C7C, - 21990: 0x6549, - 21991: 0x7C91, - 21992: 0x7C9D, - 21993: 0x7C9C, - 21994: 0x7C9E, - 21995: 0x7CA2, - 21996: 0x7CB2, - 21997: 0x7CBC, - 21998: 0x7CBD, - 21999: 0x7CC1, - 22000: 0x7CC7, - 22001: 0x7CCC, - 22002: 0x7CCD, - 22003: 0x7CC8, - 22004: 0x7CC5, - 22005: 0x7CD7, - 22006: 0x7CE8, - 22007: 0x826E, - 22008: 0x66A8, - 22009: 0x7FBF, - 22010: 0x7FCE, - 22011: 0x7FD5, - 22012: 0x7FE5, - 22013: 0x7FE1, - 22014: 0x7FE6, - 22015: 0x7FE9, - 22016: 0x7FEE, - 22017: 0x7FF3, - 22018: 0x7CF8, - 22019: 0x7D77, - 22020: 0x7DA6, - 22021: 0x7DAE, - 22022: 0x7E47, - 22023: 0x7E9B, - 22024: 0x9EB8, - 22025: 0x9EB4, - 22026: 0x8D73, - 22027: 0x8D84, - 22028: 0x8D94, - 22029: 0x8D91, - 22030: 0x8DB1, - 22031: 0x8D67, - 22032: 0x8D6D, - 22033: 0x8C47, - 22034: 0x8C49, - 22035: 0x914A, - 22036: 0x9150, - 22037: 0x914E, - 22038: 0x914F, - 22039: 0x9164, - 22040: 0x9B7C, - 22041: 0x9B7D, - 22042: 0x9B7E, - 22043: 0x9B7F, - 22044: 0x9B80, - 22045: 0x9B81, - 22046: 0x9B82, - 22047: 0x9B83, - 22048: 0x9B84, - 22049: 0x9B85, - 22050: 0x9B86, - 22051: 0x9B87, - 22052: 0x9B88, - 22053: 0x9B89, - 22054: 0x9B8A, - 22055: 0x9B8B, - 22056: 0x9B8C, - 22057: 0x9B8D, - 22058: 0x9B8E, - 22059: 0x9B8F, - 22060: 0x9B90, - 22061: 0x9B91, - 22062: 0x9B92, - 22063: 0x9B93, - 22064: 0x9B94, - 22065: 0x9B95, - 22066: 0x9B96, - 22067: 0x9B97, - 22068: 0x9B98, - 22069: 0x9B99, - 22070: 0x9B9A, - 22071: 0x9B9B, - 22072: 0x9B9C, - 22073: 0x9B9D, - 22074: 0x9B9E, - 22075: 0x9B9F, - 22076: 0x9BA0, - 22077: 0x9BA1, - 22078: 0x9BA2, - 22079: 0x9BA3, - 22080: 0x9BA4, - 22081: 0x9BA5, - 22082: 0x9BA6, - 22083: 0x9BA7, - 22084: 0x9BA8, - 22085: 0x9BA9, - 22086: 0x9BAA, - 22087: 0x9BAB, - 22088: 0x9BAC, - 22089: 0x9BAD, - 22090: 0x9BAE, - 22091: 0x9BAF, - 22092: 0x9BB0, - 22093: 0x9BB1, - 22094: 0x9BB2, - 22095: 0x9BB3, - 22096: 0x9BB4, - 22097: 0x9BB5, - 22098: 0x9BB6, - 22099: 0x9BB7, - 22100: 0x9BB8, - 22101: 0x9BB9, - 22102: 0x9BBA, - 22103: 0x9BBB, - 22104: 0x9BBC, - 22105: 0x9BBD, - 22106: 0x9BBE, - 22107: 0x9BBF, - 22108: 0x9BC0, - 22109: 0x9BC1, - 22110: 0x9BC2, - 22111: 0x9BC3, - 22112: 0x9BC4, - 22113: 0x9BC5, - 22114: 0x9BC6, - 22115: 0x9BC7, - 22116: 0x9BC8, - 22117: 0x9BC9, - 22118: 0x9BCA, - 22119: 0x9BCB, - 22120: 0x9BCC, - 22121: 0x9BCD, - 22122: 0x9BCE, - 22123: 0x9BCF, - 22124: 0x9BD0, - 22125: 0x9BD1, - 22126: 0x9BD2, - 22127: 0x9BD3, - 22128: 0x9BD4, - 22129: 0x9BD5, - 22130: 0x9BD6, - 22131: 0x9BD7, - 22132: 0x9BD8, - 22133: 0x9BD9, - 22134: 0x9BDA, - 22135: 0x9BDB, - 22136: 0x9162, - 22137: 0x9161, - 22138: 0x9170, - 22139: 0x9169, - 22140: 0x916F, - 22141: 0x917D, - 22142: 0x917E, - 22143: 0x9172, - 22144: 0x9174, - 22145: 0x9179, - 22146: 0x918C, - 22147: 0x9185, - 22148: 0x9190, - 22149: 0x918D, - 22150: 0x9191, - 22151: 0x91A2, - 22152: 0x91A3, - 22153: 0x91AA, - 22154: 0x91AD, - 22155: 0x91AE, - 22156: 0x91AF, - 22157: 0x91B5, - 22158: 0x91B4, - 22159: 0x91BA, - 22160: 0x8C55, - 22161: 0x9E7E, - 22162: 0x8DB8, - 22163: 0x8DEB, - 22164: 0x8E05, - 22165: 0x8E59, - 22166: 0x8E69, - 22167: 0x8DB5, - 22168: 0x8DBF, - 22169: 0x8DBC, - 22170: 0x8DBA, - 22171: 0x8DC4, - 22172: 0x8DD6, - 22173: 0x8DD7, - 22174: 0x8DDA, - 22175: 0x8DDE, - 22176: 0x8DCE, - 22177: 0x8DCF, - 22178: 0x8DDB, - 22179: 0x8DC6, - 22180: 0x8DEC, - 22181: 0x8DF7, - 22182: 0x8DF8, - 22183: 0x8DE3, - 22184: 0x8DF9, - 22185: 0x8DFB, - 22186: 0x8DE4, - 22187: 0x8E09, - 22188: 0x8DFD, - 22189: 0x8E14, - 22190: 0x8E1D, - 22191: 0x8E1F, - 22192: 0x8E2C, - 22193: 0x8E2E, - 22194: 0x8E23, - 22195: 0x8E2F, - 22196: 0x8E3A, - 22197: 0x8E40, - 22198: 0x8E39, - 22199: 0x8E35, - 22200: 0x8E3D, - 22201: 0x8E31, - 22202: 0x8E49, - 22203: 0x8E41, - 22204: 0x8E42, - 22205: 0x8E51, - 22206: 0x8E52, - 22207: 0x8E4A, - 22208: 0x8E70, - 22209: 0x8E76, - 22210: 0x8E7C, - 22211: 0x8E6F, - 22212: 0x8E74, - 22213: 0x8E85, - 22214: 0x8E8F, - 22215: 0x8E94, - 22216: 0x8E90, - 22217: 0x8E9C, - 22218: 0x8E9E, - 22219: 0x8C78, - 22220: 0x8C82, - 22221: 0x8C8A, - 22222: 0x8C85, - 22223: 0x8C98, - 22224: 0x8C94, - 22225: 0x659B, - 22226: 0x89D6, - 22227: 0x89DE, - 22228: 0x89DA, - 22229: 0x89DC, - 22230: 0x9BDC, - 22231: 0x9BDD, - 22232: 0x9BDE, - 22233: 0x9BDF, - 22234: 0x9BE0, - 22235: 0x9BE1, - 22236: 0x9BE2, - 22237: 0x9BE3, - 22238: 0x9BE4, - 22239: 0x9BE5, - 22240: 0x9BE6, - 22241: 0x9BE7, - 22242: 0x9BE8, - 22243: 0x9BE9, - 22244: 0x9BEA, - 22245: 0x9BEB, - 22246: 0x9BEC, - 22247: 0x9BED, - 22248: 0x9BEE, - 22249: 0x9BEF, - 22250: 0x9BF0, - 22251: 0x9BF1, - 22252: 0x9BF2, - 22253: 0x9BF3, - 22254: 0x9BF4, - 22255: 0x9BF5, - 22256: 0x9BF6, - 22257: 0x9BF7, - 22258: 0x9BF8, - 22259: 0x9BF9, - 22260: 0x9BFA, - 22261: 0x9BFB, - 22262: 0x9BFC, - 22263: 0x9BFD, - 22264: 0x9BFE, - 22265: 0x9BFF, - 22266: 0x9C00, - 22267: 0x9C01, - 22268: 0x9C02, - 22269: 0x9C03, - 22270: 0x9C04, - 22271: 0x9C05, - 22272: 0x9C06, - 22273: 0x9C07, - 22274: 0x9C08, - 22275: 0x9C09, - 22276: 0x9C0A, - 22277: 0x9C0B, - 22278: 0x9C0C, - 22279: 0x9C0D, - 22280: 0x9C0E, - 22281: 0x9C0F, - 22282: 0x9C10, - 22283: 0x9C11, - 22284: 0x9C12, - 22285: 0x9C13, - 22286: 0x9C14, - 22287: 0x9C15, - 22288: 0x9C16, - 22289: 0x9C17, - 22290: 0x9C18, - 22291: 0x9C19, - 22292: 0x9C1A, - 22293: 0x9C1B, - 22294: 0x9C1C, - 22295: 0x9C1D, - 22296: 0x9C1E, - 22297: 0x9C1F, - 22298: 0x9C20, - 22299: 0x9C21, - 22300: 0x9C22, - 22301: 0x9C23, - 22302: 0x9C24, - 22303: 0x9C25, - 22304: 0x9C26, - 22305: 0x9C27, - 22306: 0x9C28, - 22307: 0x9C29, - 22308: 0x9C2A, - 22309: 0x9C2B, - 22310: 0x9C2C, - 22311: 0x9C2D, - 22312: 0x9C2E, - 22313: 0x9C2F, - 22314: 0x9C30, - 22315: 0x9C31, - 22316: 0x9C32, - 22317: 0x9C33, - 22318: 0x9C34, - 22319: 0x9C35, - 22320: 0x9C36, - 22321: 0x9C37, - 22322: 0x9C38, - 22323: 0x9C39, - 22324: 0x9C3A, - 22325: 0x9C3B, - 22326: 0x89E5, - 22327: 0x89EB, - 22328: 0x89EF, - 22329: 0x8A3E, - 22330: 0x8B26, - 22331: 0x9753, - 22332: 0x96E9, - 22333: 0x96F3, - 22334: 0x96EF, - 22335: 0x9706, - 22336: 0x9701, - 22337: 0x9708, - 22338: 0x970F, - 22339: 0x970E, - 22340: 0x972A, - 22341: 0x972D, - 22342: 0x9730, - 22343: 0x973E, - 22344: 0x9F80, - 22345: 0x9F83, - 22346: 0x9F85, - 22347: 0x9F86, - 22348: 0x9F87, - 22349: 0x9F88, - 22350: 0x9F89, - 22351: 0x9F8A, - 22352: 0x9F8C, - 22353: 0x9EFE, - 22354: 0x9F0B, - 22355: 0x9F0D, - 22356: 0x96B9, - 22357: 0x96BC, - 22358: 0x96BD, - 22359: 0x96CE, - 22360: 0x96D2, - 22361: 0x77BF, - 22362: 0x96E0, - 22363: 0x928E, - 22364: 0x92AE, - 22365: 0x92C8, - 22366: 0x933E, - 22367: 0x936A, - 22368: 0x93CA, - 22369: 0x938F, - 22370: 0x943E, - 22371: 0x946B, - 22372: 0x9C7F, - 22373: 0x9C82, - 22374: 0x9C85, - 22375: 0x9C86, - 22376: 0x9C87, - 22377: 0x9C88, - 22378: 0x7A23, - 22379: 0x9C8B, - 22380: 0x9C8E, - 22381: 0x9C90, - 22382: 0x9C91, - 22383: 0x9C92, - 22384: 0x9C94, - 22385: 0x9C95, - 22386: 0x9C9A, - 22387: 0x9C9B, - 22388: 0x9C9E, - 22389: 0x9C9F, - 22390: 0x9CA0, - 22391: 0x9CA1, - 22392: 0x9CA2, - 22393: 0x9CA3, - 22394: 0x9CA5, - 22395: 0x9CA6, - 22396: 0x9CA7, - 22397: 0x9CA8, - 22398: 0x9CA9, - 22399: 0x9CAB, - 22400: 0x9CAD, - 22401: 0x9CAE, - 22402: 0x9CB0, - 22403: 0x9CB1, - 22404: 0x9CB2, - 22405: 0x9CB3, - 22406: 0x9CB4, - 22407: 0x9CB5, - 22408: 0x9CB6, - 22409: 0x9CB7, - 22410: 0x9CBA, - 22411: 0x9CBB, - 22412: 0x9CBC, - 22413: 0x9CBD, - 22414: 0x9CC4, - 22415: 0x9CC5, - 22416: 0x9CC6, - 22417: 0x9CC7, - 22418: 0x9CCA, - 22419: 0x9CCB, - 22420: 0x9C3C, - 22421: 0x9C3D, - 22422: 0x9C3E, - 22423: 0x9C3F, - 22424: 0x9C40, - 22425: 0x9C41, - 22426: 0x9C42, - 22427: 0x9C43, - 22428: 0x9C44, - 22429: 0x9C45, - 22430: 0x9C46, - 22431: 0x9C47, - 22432: 0x9C48, - 22433: 0x9C49, - 22434: 0x9C4A, - 22435: 0x9C4B, - 22436: 0x9C4C, - 22437: 0x9C4D, - 22438: 0x9C4E, - 22439: 0x9C4F, - 22440: 0x9C50, - 22441: 0x9C51, - 22442: 0x9C52, - 22443: 0x9C53, - 22444: 0x9C54, - 22445: 0x9C55, - 22446: 0x9C56, - 22447: 0x9C57, - 22448: 0x9C58, - 22449: 0x9C59, - 22450: 0x9C5A, - 22451: 0x9C5B, - 22452: 0x9C5C, - 22453: 0x9C5D, - 22454: 0x9C5E, - 22455: 0x9C5F, - 22456: 0x9C60, - 22457: 0x9C61, - 22458: 0x9C62, - 22459: 0x9C63, - 22460: 0x9C64, - 22461: 0x9C65, - 22462: 0x9C66, - 22463: 0x9C67, - 22464: 0x9C68, - 22465: 0x9C69, - 22466: 0x9C6A, - 22467: 0x9C6B, - 22468: 0x9C6C, - 22469: 0x9C6D, - 22470: 0x9C6E, - 22471: 0x9C6F, - 22472: 0x9C70, - 22473: 0x9C71, - 22474: 0x9C72, - 22475: 0x9C73, - 22476: 0x9C74, - 22477: 0x9C75, - 22478: 0x9C76, - 22479: 0x9C77, - 22480: 0x9C78, - 22481: 0x9C79, - 22482: 0x9C7A, - 22483: 0x9C7B, - 22484: 0x9C7D, - 22485: 0x9C7E, - 22486: 0x9C80, - 22487: 0x9C83, - 22488: 0x9C84, - 22489: 0x9C89, - 22490: 0x9C8A, - 22491: 0x9C8C, - 22492: 0x9C8F, - 22493: 0x9C93, - 22494: 0x9C96, - 22495: 0x9C97, - 22496: 0x9C98, - 22497: 0x9C99, - 22498: 0x9C9D, - 22499: 0x9CAA, - 22500: 0x9CAC, - 22501: 0x9CAF, - 22502: 0x9CB9, - 22503: 0x9CBE, - 22504: 0x9CBF, - 22505: 0x9CC0, - 22506: 0x9CC1, - 22507: 0x9CC2, - 22508: 0x9CC8, - 22509: 0x9CC9, - 22510: 0x9CD1, - 22511: 0x9CD2, - 22512: 0x9CDA, - 22513: 0x9CDB, - 22514: 0x9CE0, - 22515: 0x9CE1, - 22516: 0x9CCC, - 22517: 0x9CCD, - 22518: 0x9CCE, - 22519: 0x9CCF, - 22520: 0x9CD0, - 22521: 0x9CD3, - 22522: 0x9CD4, - 22523: 0x9CD5, - 22524: 0x9CD7, - 22525: 0x9CD8, - 22526: 0x9CD9, - 22527: 0x9CDC, - 22528: 0x9CDD, - 22529: 0x9CDF, - 22530: 0x9CE2, - 22531: 0x977C, - 22532: 0x9785, - 22533: 0x9791, - 22534: 0x9792, - 22535: 0x9794, - 22536: 0x97AF, - 22537: 0x97AB, - 22538: 0x97A3, - 22539: 0x97B2, - 22540: 0x97B4, - 22541: 0x9AB1, - 22542: 0x9AB0, - 22543: 0x9AB7, - 22544: 0x9E58, - 22545: 0x9AB6, - 22546: 0x9ABA, - 22547: 0x9ABC, - 22548: 0x9AC1, - 22549: 0x9AC0, - 22550: 0x9AC5, - 22551: 0x9AC2, - 22552: 0x9ACB, - 22553: 0x9ACC, - 22554: 0x9AD1, - 22555: 0x9B45, - 22556: 0x9B43, - 22557: 0x9B47, - 22558: 0x9B49, - 22559: 0x9B48, - 22560: 0x9B4D, - 22561: 0x9B51, - 22562: 0x98E8, - 22563: 0x990D, - 22564: 0x992E, - 22565: 0x9955, - 22566: 0x9954, - 22567: 0x9ADF, - 22568: 0x9AE1, - 22569: 0x9AE6, - 22570: 0x9AEF, - 22571: 0x9AEB, - 22572: 0x9AFB, - 22573: 0x9AED, - 22574: 0x9AF9, - 22575: 0x9B08, - 22576: 0x9B0F, - 22577: 0x9B13, - 22578: 0x9B1F, - 22579: 0x9B23, - 22580: 0x9EBD, - 22581: 0x9EBE, - 22582: 0x7E3B, - 22583: 0x9E82, - 22584: 0x9E87, - 22585: 0x9E88, - 22586: 0x9E8B, - 22587: 0x9E92, - 22588: 0x93D6, - 22589: 0x9E9D, - 22590: 0x9E9F, - 22591: 0x9EDB, - 22592: 0x9EDC, - 22593: 0x9EDD, - 22594: 0x9EE0, - 22595: 0x9EDF, - 22596: 0x9EE2, - 22597: 0x9EE9, - 22598: 0x9EE7, - 22599: 0x9EE5, - 22600: 0x9EEA, - 22601: 0x9EEF, - 22602: 0x9F22, - 22603: 0x9F2C, - 22604: 0x9F2F, - 22605: 0x9F39, - 22606: 0x9F37, - 22607: 0x9F3D, - 22608: 0x9F3E, - 22609: 0x9F44, - 22610: 0x9CE3, - 22611: 0x9CE4, - 22612: 0x9CE5, - 22613: 0x9CE6, - 22614: 0x9CE7, - 22615: 0x9CE8, - 22616: 0x9CE9, - 22617: 0x9CEA, - 22618: 0x9CEB, - 22619: 0x9CEC, - 22620: 0x9CED, - 22621: 0x9CEE, - 22622: 0x9CEF, - 22623: 0x9CF0, - 22624: 0x9CF1, - 22625: 0x9CF2, - 22626: 0x9CF3, - 22627: 0x9CF4, - 22628: 0x9CF5, - 22629: 0x9CF6, - 22630: 0x9CF7, - 22631: 0x9CF8, - 22632: 0x9CF9, - 22633: 0x9CFA, - 22634: 0x9CFB, - 22635: 0x9CFC, - 22636: 0x9CFD, - 22637: 0x9CFE, - 22638: 0x9CFF, - 22639: 0x9D00, - 22640: 0x9D01, - 22641: 0x9D02, - 22642: 0x9D03, - 22643: 0x9D04, - 22644: 0x9D05, - 22645: 0x9D06, - 22646: 0x9D07, - 22647: 0x9D08, - 22648: 0x9D09, - 22649: 0x9D0A, - 22650: 0x9D0B, - 22651: 0x9D0C, - 22652: 0x9D0D, - 22653: 0x9D0E, - 22654: 0x9D0F, - 22655: 0x9D10, - 22656: 0x9D11, - 22657: 0x9D12, - 22658: 0x9D13, - 22659: 0x9D14, - 22660: 0x9D15, - 22661: 0x9D16, - 22662: 0x9D17, - 22663: 0x9D18, - 22664: 0x9D19, - 22665: 0x9D1A, - 22666: 0x9D1B, - 22667: 0x9D1C, - 22668: 0x9D1D, - 22669: 0x9D1E, - 22670: 0x9D1F, - 22671: 0x9D20, - 22672: 0x9D21, - 22673: 0x9D22, - 22674: 0x9D23, - 22675: 0x9D24, - 22676: 0x9D25, - 22677: 0x9D26, - 22678: 0x9D27, - 22679: 0x9D28, - 22680: 0x9D29, - 22681: 0x9D2A, - 22682: 0x9D2B, - 22683: 0x9D2C, - 22684: 0x9D2D, - 22685: 0x9D2E, - 22686: 0x9D2F, - 22687: 0x9D30, - 22688: 0x9D31, - 22689: 0x9D32, - 22690: 0x9D33, - 22691: 0x9D34, - 22692: 0x9D35, - 22693: 0x9D36, - 22694: 0x9D37, - 22695: 0x9D38, - 22696: 0x9D39, - 22697: 0x9D3A, - 22698: 0x9D3B, - 22699: 0x9D3C, - 22700: 0x9D3D, - 22701: 0x9D3E, - 22702: 0x9D3F, - 22703: 0x9D40, - 22704: 0x9D41, - 22705: 0x9D42, - 22800: 0x9D43, - 22801: 0x9D44, - 22802: 0x9D45, - 22803: 0x9D46, - 22804: 0x9D47, - 22805: 0x9D48, - 22806: 0x9D49, - 22807: 0x9D4A, - 22808: 0x9D4B, - 22809: 0x9D4C, - 22810: 0x9D4D, - 22811: 0x9D4E, - 22812: 0x9D4F, - 22813: 0x9D50, - 22814: 0x9D51, - 22815: 0x9D52, - 22816: 0x9D53, - 22817: 0x9D54, - 22818: 0x9D55, - 22819: 0x9D56, - 22820: 0x9D57, - 22821: 0x9D58, - 22822: 0x9D59, - 22823: 0x9D5A, - 22824: 0x9D5B, - 22825: 0x9D5C, - 22826: 0x9D5D, - 22827: 0x9D5E, - 22828: 0x9D5F, - 22829: 0x9D60, - 22830: 0x9D61, - 22831: 0x9D62, - 22832: 0x9D63, - 22833: 0x9D64, - 22834: 0x9D65, - 22835: 0x9D66, - 22836: 0x9D67, - 22837: 0x9D68, - 22838: 0x9D69, - 22839: 0x9D6A, - 22840: 0x9D6B, - 22841: 0x9D6C, - 22842: 0x9D6D, - 22843: 0x9D6E, - 22844: 0x9D6F, - 22845: 0x9D70, - 22846: 0x9D71, - 22847: 0x9D72, - 22848: 0x9D73, - 22849: 0x9D74, - 22850: 0x9D75, - 22851: 0x9D76, - 22852: 0x9D77, - 22853: 0x9D78, - 22854: 0x9D79, - 22855: 0x9D7A, - 22856: 0x9D7B, - 22857: 0x9D7C, - 22858: 0x9D7D, - 22859: 0x9D7E, - 22860: 0x9D7F, - 22861: 0x9D80, - 22862: 0x9D81, - 22863: 0x9D82, - 22864: 0x9D83, - 22865: 0x9D84, - 22866: 0x9D85, - 22867: 0x9D86, - 22868: 0x9D87, - 22869: 0x9D88, - 22870: 0x9D89, - 22871: 0x9D8A, - 22872: 0x9D8B, - 22873: 0x9D8C, - 22874: 0x9D8D, - 22875: 0x9D8E, - 22876: 0x9D8F, - 22877: 0x9D90, - 22878: 0x9D91, - 22879: 0x9D92, - 22880: 0x9D93, - 22881: 0x9D94, - 22882: 0x9D95, - 22883: 0x9D96, - 22884: 0x9D97, - 22885: 0x9D98, - 22886: 0x9D99, - 22887: 0x9D9A, - 22888: 0x9D9B, - 22889: 0x9D9C, - 22890: 0x9D9D, - 22891: 0x9D9E, - 22892: 0x9D9F, - 22893: 0x9DA0, - 22894: 0x9DA1, - 22895: 0x9DA2, - 22990: 0x9DA3, - 22991: 0x9DA4, - 22992: 0x9DA5, - 22993: 0x9DA6, - 22994: 0x9DA7, - 22995: 0x9DA8, - 22996: 0x9DA9, - 22997: 0x9DAA, - 22998: 0x9DAB, - 22999: 0x9DAC, - 23000: 0x9DAD, - 23001: 0x9DAE, - 23002: 0x9DAF, - 23003: 0x9DB0, - 23004: 0x9DB1, - 23005: 0x9DB2, - 23006: 0x9DB3, - 23007: 0x9DB4, - 23008: 0x9DB5, - 23009: 0x9DB6, - 23010: 0x9DB7, - 23011: 0x9DB8, - 23012: 0x9DB9, - 23013: 0x9DBA, - 23014: 0x9DBB, - 23015: 0x9DBC, - 23016: 0x9DBD, - 23017: 0x9DBE, - 23018: 0x9DBF, - 23019: 0x9DC0, - 23020: 0x9DC1, - 23021: 0x9DC2, - 23022: 0x9DC3, - 23023: 0x9DC4, - 23024: 0x9DC5, - 23025: 0x9DC6, - 23026: 0x9DC7, - 23027: 0x9DC8, - 23028: 0x9DC9, - 23029: 0x9DCA, - 23030: 0x9DCB, - 23031: 0x9DCC, - 23032: 0x9DCD, - 23033: 0x9DCE, - 23034: 0x9DCF, - 23035: 0x9DD0, - 23036: 0x9DD1, - 23037: 0x9DD2, - 23038: 0x9DD3, - 23039: 0x9DD4, - 23040: 0x9DD5, - 23041: 0x9DD6, - 23042: 0x9DD7, - 23043: 0x9DD8, - 23044: 0x9DD9, - 23045: 0x9DDA, - 23046: 0x9DDB, - 23047: 0x9DDC, - 23048: 0x9DDD, - 23049: 0x9DDE, - 23050: 0x9DDF, - 23051: 0x9DE0, - 23052: 0x9DE1, - 23053: 0x9DE2, - 23054: 0x9DE3, - 23055: 0x9DE4, - 23056: 0x9DE5, - 23057: 0x9DE6, - 23058: 0x9DE7, - 23059: 0x9DE8, - 23060: 0x9DE9, - 23061: 0x9DEA, - 23062: 0x9DEB, - 23063: 0x9DEC, - 23064: 0x9DED, - 23065: 0x9DEE, - 23066: 0x9DEF, - 23067: 0x9DF0, - 23068: 0x9DF1, - 23069: 0x9DF2, - 23070: 0x9DF3, - 23071: 0x9DF4, - 23072: 0x9DF5, - 23073: 0x9DF6, - 23074: 0x9DF7, - 23075: 0x9DF8, - 23076: 0x9DF9, - 23077: 0x9DFA, - 23078: 0x9DFB, - 23079: 0x9DFC, - 23080: 0x9DFD, - 23081: 0x9DFE, - 23082: 0x9DFF, - 23083: 0x9E00, - 23084: 0x9E01, - 23085: 0x9E02, - 23180: 0x9E03, - 23181: 0x9E04, - 23182: 0x9E05, - 23183: 0x9E06, - 23184: 0x9E07, - 23185: 0x9E08, - 23186: 0x9E09, - 23187: 0x9E0A, - 23188: 0x9E0B, - 23189: 0x9E0C, - 23190: 0x9E0D, - 23191: 0x9E0E, - 23192: 0x9E0F, - 23193: 0x9E10, - 23194: 0x9E11, - 23195: 0x9E12, - 23196: 0x9E13, - 23197: 0x9E14, - 23198: 0x9E15, - 23199: 0x9E16, - 23200: 0x9E17, - 23201: 0x9E18, - 23202: 0x9E19, - 23203: 0x9E1A, - 23204: 0x9E1B, - 23205: 0x9E1C, - 23206: 0x9E1D, - 23207: 0x9E1E, - 23208: 0x9E24, - 23209: 0x9E27, - 23210: 0x9E2E, - 23211: 0x9E30, - 23212: 0x9E34, - 23213: 0x9E3B, - 23214: 0x9E3C, - 23215: 0x9E40, - 23216: 0x9E4D, - 23217: 0x9E50, - 23218: 0x9E52, - 23219: 0x9E53, - 23220: 0x9E54, - 23221: 0x9E56, - 23222: 0x9E59, - 23223: 0x9E5D, - 23224: 0x9E5F, - 23225: 0x9E60, - 23226: 0x9E61, - 23227: 0x9E62, - 23228: 0x9E65, - 23229: 0x9E6E, - 23230: 0x9E6F, - 23231: 0x9E72, - 23232: 0x9E74, - 23233: 0x9E75, - 23234: 0x9E76, - 23235: 0x9E77, - 23236: 0x9E78, - 23237: 0x9E79, - 23238: 0x9E7A, - 23239: 0x9E7B, - 23240: 0x9E7C, - 23241: 0x9E7D, - 23242: 0x9E80, - 23243: 0x9E81, - 23244: 0x9E83, - 23245: 0x9E84, - 23246: 0x9E85, - 23247: 0x9E86, - 23248: 0x9E89, - 23249: 0x9E8A, - 23250: 0x9E8C, - 23251: 0x9E8D, - 23252: 0x9E8E, - 23253: 0x9E8F, - 23254: 0x9E90, - 23255: 0x9E91, - 23256: 0x9E94, - 23257: 0x9E95, - 23258: 0x9E96, - 23259: 0x9E97, - 23260: 0x9E98, - 23261: 0x9E99, - 23262: 0x9E9A, - 23263: 0x9E9B, - 23264: 0x9E9C, - 23265: 0x9E9E, - 23266: 0x9EA0, - 23267: 0x9EA1, - 23268: 0x9EA2, - 23269: 0x9EA3, - 23270: 0x9EA4, - 23271: 0x9EA5, - 23272: 0x9EA7, - 23273: 0x9EA8, - 23274: 0x9EA9, - 23275: 0x9EAA, - 23370: 0x9EAB, - 23371: 0x9EAC, - 23372: 0x9EAD, - 23373: 0x9EAE, - 23374: 0x9EAF, - 23375: 0x9EB0, - 23376: 0x9EB1, - 23377: 0x9EB2, - 23378: 0x9EB3, - 23379: 0x9EB5, - 23380: 0x9EB6, - 23381: 0x9EB7, - 23382: 0x9EB9, - 23383: 0x9EBA, - 23384: 0x9EBC, - 23385: 0x9EBF, - 23386: 0x9EC0, - 23387: 0x9EC1, - 23388: 0x9EC2, - 23389: 0x9EC3, - 23390: 0x9EC5, - 23391: 0x9EC6, - 23392: 0x9EC7, - 23393: 0x9EC8, - 23394: 0x9ECA, - 23395: 0x9ECB, - 23396: 0x9ECC, - 23397: 0x9ED0, - 23398: 0x9ED2, - 23399: 0x9ED3, - 23400: 0x9ED5, - 23401: 0x9ED6, - 23402: 0x9ED7, - 23403: 0x9ED9, - 23404: 0x9EDA, - 23405: 0x9EDE, - 23406: 0x9EE1, - 23407: 0x9EE3, - 23408: 0x9EE4, - 23409: 0x9EE6, - 23410: 0x9EE8, - 23411: 0x9EEB, - 23412: 0x9EEC, - 23413: 0x9EED, - 23414: 0x9EEE, - 23415: 0x9EF0, - 23416: 0x9EF1, - 23417: 0x9EF2, - 23418: 0x9EF3, - 23419: 0x9EF4, - 23420: 0x9EF5, - 23421: 0x9EF6, - 23422: 0x9EF7, - 23423: 0x9EF8, - 23424: 0x9EFA, - 23425: 0x9EFD, - 23426: 0x9EFF, - 23427: 0x9F00, - 23428: 0x9F01, - 23429: 0x9F02, - 23430: 0x9F03, - 23431: 0x9F04, - 23432: 0x9F05, - 23433: 0x9F06, - 23434: 0x9F07, - 23435: 0x9F08, - 23436: 0x9F09, - 23437: 0x9F0A, - 23438: 0x9F0C, - 23439: 0x9F0F, - 23440: 0x9F11, - 23441: 0x9F12, - 23442: 0x9F14, - 23443: 0x9F15, - 23444: 0x9F16, - 23445: 0x9F18, - 23446: 0x9F1A, - 23447: 0x9F1B, - 23448: 0x9F1C, - 23449: 0x9F1D, - 23450: 0x9F1E, - 23451: 0x9F1F, - 23452: 0x9F21, - 23453: 0x9F23, - 23454: 0x9F24, - 23455: 0x9F25, - 23456: 0x9F26, - 23457: 0x9F27, - 23458: 0x9F28, - 23459: 0x9F29, - 23460: 0x9F2A, - 23461: 0x9F2B, - 23462: 0x9F2D, - 23463: 0x9F2E, - 23464: 0x9F30, - 23465: 0x9F31, - 23560: 0x9F32, - 23561: 0x9F33, - 23562: 0x9F34, - 23563: 0x9F35, - 23564: 0x9F36, - 23565: 0x9F38, - 23566: 0x9F3A, - 23567: 0x9F3C, - 23568: 0x9F3F, - 23569: 0x9F40, - 23570: 0x9F41, - 23571: 0x9F42, - 23572: 0x9F43, - 23573: 0x9F45, - 23574: 0x9F46, - 23575: 0x9F47, - 23576: 0x9F48, - 23577: 0x9F49, - 23578: 0x9F4A, - 23579: 0x9F4B, - 23580: 0x9F4C, - 23581: 0x9F4D, - 23582: 0x9F4E, - 23583: 0x9F4F, - 23584: 0x9F52, - 23585: 0x9F53, - 23586: 0x9F54, - 23587: 0x9F55, - 23588: 0x9F56, - 23589: 0x9F57, - 23590: 0x9F58, - 23591: 0x9F59, - 23592: 0x9F5A, - 23593: 0x9F5B, - 23594: 0x9F5C, - 23595: 0x9F5D, - 23596: 0x9F5E, - 23597: 0x9F5F, - 23598: 0x9F60, - 23599: 0x9F61, - 23600: 0x9F62, - 23601: 0x9F63, - 23602: 0x9F64, - 23603: 0x9F65, - 23604: 0x9F66, - 23605: 0x9F67, - 23606: 0x9F68, - 23607: 0x9F69, - 23608: 0x9F6A, - 23609: 0x9F6B, - 23610: 0x9F6C, - 23611: 0x9F6D, - 23612: 0x9F6E, - 23613: 0x9F6F, - 23614: 0x9F70, - 23615: 0x9F71, - 23616: 0x9F72, - 23617: 0x9F73, - 23618: 0x9F74, - 23619: 0x9F75, - 23620: 0x9F76, - 23621: 0x9F77, - 23622: 0x9F78, - 23623: 0x9F79, - 23624: 0x9F7A, - 23625: 0x9F7B, - 23626: 0x9F7C, - 23627: 0x9F7D, - 23628: 0x9F7E, - 23629: 0x9F81, - 23630: 0x9F82, - 23631: 0x9F8D, - 23632: 0x9F8E, - 23633: 0x9F8F, - 23634: 0x9F90, - 23635: 0x9F91, - 23636: 0x9F92, - 23637: 0x9F93, - 23638: 0x9F94, - 23639: 0x9F95, - 23640: 0x9F96, - 23641: 0x9F97, - 23642: 0x9F98, - 23643: 0x9F9C, - 23644: 0x9F9D, - 23645: 0x9F9E, - 23646: 0x9FA1, - 23647: 0x9FA2, - 23648: 0x9FA3, - 23649: 0x9FA4, - 23650: 0x9FA5, - 23651: 0xF92C, - 23652: 0xF979, - 23653: 0xF995, - 23654: 0xF9E7, - 23655: 0xF9F1, - 23750: 0xFA0C, - 23751: 0xFA0D, - 23752: 0xFA0E, - 23753: 0xFA0F, - 23754: 0xFA11, - 23755: 0xFA13, - 23756: 0xFA14, - 23757: 0xFA18, - 23758: 0xFA1F, - 23759: 0xFA20, - 23760: 0xFA21, - 23761: 0xFA23, - 23762: 0xFA24, - 23763: 0xFA27, - 23764: 0xFA28, - 23765: 0xFA29, - 23766: 0x2E81, - 23770: 0x2E84, - 23771: 0x3473, - 23772: 0x3447, - 23773: 0x2E88, - 23774: 0x2E8B, - 23776: 0x359E, - 23777: 0x361A, - 23778: 0x360E, - 23779: 0x2E8C, - 23780: 0x2E97, - 23781: 0x396E, - 23782: 0x3918, - 23784: 0x39CF, - 23785: 0x39DF, - 23786: 0x3A73, - 23787: 0x39D0, - 23790: 0x3B4E, - 23791: 0x3C6E, - 23792: 0x3CE0, - 23793: 0x2EA7, - 23796: 0x2EAA, - 23797: 0x4056, - 23798: 0x415F, - 23799: 0x2EAE, - 23800: 0x4337, - 23801: 0x2EB3, - 23802: 0x2EB6, - 23803: 0x2EB7, - 23805: 0x43B1, - 23806: 0x43AC, - 23807: 0x2EBB, - 23808: 0x43DD, - 23809: 0x44D6, - 23810: 0x4661, - 23811: 0x464C, - 23813: 0x4723, - 23814: 0x4729, - 23815: 0x477C, - 23816: 0x478D, - 23817: 0x2ECA, - 23818: 0x4947, - 23819: 0x497A, - 23820: 0x497D, - 23821: 0x4982, - 23822: 0x4983, - 23823: 0x4985, - 23824: 0x4986, - 23825: 0x499F, - 23826: 0x499B, - 23827: 0x49B7, - 23828: 0x49B6, - 23831: 0x4CA3, - 23832: 0x4C9F, - 23833: 0x4CA0, - 23834: 0x4CA1, - 23835: 0x4C77, - 23836: 0x4CA2, - 23837: 0x4D13, - 23838: 0x4D14, - 23839: 0x4D15, - 23840: 0x4D16, - 23841: 0x4D17, - 23842: 0x4D18, - 23843: 0x4D19, - 23844: 0x4DAE, -} - -const numEncodeTables = 5 - -// encodeX are the encoding tables from Unicode to GBK code, -// sorted by decreasing length. -// encode0: 28965 entries for runes in [11905, 40870). -// encode1: 1587 entries for runes in [ 8208, 9795). -// encode2: 942 entries for runes in [ 164, 1106). -// encode3: 438 entries for runes in [65072, 65510). -// encode4: 254 entries for runes in [63788, 64042). - -const encode0Low, encode0High = 11905, 40870 - -var encode0 = [...]uint16{ - 11905 - 11905: 0xFE50, - 11908 - 11905: 0xFE54, - 11912 - 11905: 0xFE57, - 11915 - 11905: 0xFE58, - 11916 - 11905: 0xFE5D, - 11927 - 11905: 0xFE5E, - 11943 - 11905: 0xFE6B, - 11946 - 11905: 0xFE6E, - 11950 - 11905: 0xFE71, - 11955 - 11905: 0xFE73, - 11958 - 11905: 0xFE74, - 11959 - 11905: 0xFE75, - 11963 - 11905: 0xFE79, - 11978 - 11905: 0xFE84, - 12272 - 11905: 0xA98A, - 12273 - 11905: 0xA98B, - 12274 - 11905: 0xA98C, - 12275 - 11905: 0xA98D, - 12276 - 11905: 0xA98E, - 12277 - 11905: 0xA98F, - 12278 - 11905: 0xA990, - 12279 - 11905: 0xA991, - 12280 - 11905: 0xA992, - 12281 - 11905: 0xA993, - 12282 - 11905: 0xA994, - 12283 - 11905: 0xA995, - 12288 - 11905: 0xA1A1, - 12289 - 11905: 0xA1A2, - 12290 - 11905: 0xA1A3, - 12291 - 11905: 0xA1A8, - 12293 - 11905: 0xA1A9, - 12294 - 11905: 0xA965, - 12295 - 11905: 0xA996, - 12296 - 11905: 0xA1B4, - 12297 - 11905: 0xA1B5, - 12298 - 11905: 0xA1B6, - 12299 - 11905: 0xA1B7, - 12300 - 11905: 0xA1B8, - 12301 - 11905: 0xA1B9, - 12302 - 11905: 0xA1BA, - 12303 - 11905: 0xA1BB, - 12304 - 11905: 0xA1BE, - 12305 - 11905: 0xA1BF, - 12306 - 11905: 0xA893, - 12307 - 11905: 0xA1FE, - 12308 - 11905: 0xA1B2, - 12309 - 11905: 0xA1B3, - 12310 - 11905: 0xA1BC, - 12311 - 11905: 0xA1BD, - 12317 - 11905: 0xA894, - 12318 - 11905: 0xA895, - 12321 - 11905: 0xA940, - 12322 - 11905: 0xA941, - 12323 - 11905: 0xA942, - 12324 - 11905: 0xA943, - 12325 - 11905: 0xA944, - 12326 - 11905: 0xA945, - 12327 - 11905: 0xA946, - 12328 - 11905: 0xA947, - 12329 - 11905: 0xA948, - 12350 - 11905: 0xA989, - 12353 - 11905: 0xA4A1, - 12354 - 11905: 0xA4A2, - 12355 - 11905: 0xA4A3, - 12356 - 11905: 0xA4A4, - 12357 - 11905: 0xA4A5, - 12358 - 11905: 0xA4A6, - 12359 - 11905: 0xA4A7, - 12360 - 11905: 0xA4A8, - 12361 - 11905: 0xA4A9, - 12362 - 11905: 0xA4AA, - 12363 - 11905: 0xA4AB, - 12364 - 11905: 0xA4AC, - 12365 - 11905: 0xA4AD, - 12366 - 11905: 0xA4AE, - 12367 - 11905: 0xA4AF, - 12368 - 11905: 0xA4B0, - 12369 - 11905: 0xA4B1, - 12370 - 11905: 0xA4B2, - 12371 - 11905: 0xA4B3, - 12372 - 11905: 0xA4B4, - 12373 - 11905: 0xA4B5, - 12374 - 11905: 0xA4B6, - 12375 - 11905: 0xA4B7, - 12376 - 11905: 0xA4B8, - 12377 - 11905: 0xA4B9, - 12378 - 11905: 0xA4BA, - 12379 - 11905: 0xA4BB, - 12380 - 11905: 0xA4BC, - 12381 - 11905: 0xA4BD, - 12382 - 11905: 0xA4BE, - 12383 - 11905: 0xA4BF, - 12384 - 11905: 0xA4C0, - 12385 - 11905: 0xA4C1, - 12386 - 11905: 0xA4C2, - 12387 - 11905: 0xA4C3, - 12388 - 11905: 0xA4C4, - 12389 - 11905: 0xA4C5, - 12390 - 11905: 0xA4C6, - 12391 - 11905: 0xA4C7, - 12392 - 11905: 0xA4C8, - 12393 - 11905: 0xA4C9, - 12394 - 11905: 0xA4CA, - 12395 - 11905: 0xA4CB, - 12396 - 11905: 0xA4CC, - 12397 - 11905: 0xA4CD, - 12398 - 11905: 0xA4CE, - 12399 - 11905: 0xA4CF, - 12400 - 11905: 0xA4D0, - 12401 - 11905: 0xA4D1, - 12402 - 11905: 0xA4D2, - 12403 - 11905: 0xA4D3, - 12404 - 11905: 0xA4D4, - 12405 - 11905: 0xA4D5, - 12406 - 11905: 0xA4D6, - 12407 - 11905: 0xA4D7, - 12408 - 11905: 0xA4D8, - 12409 - 11905: 0xA4D9, - 12410 - 11905: 0xA4DA, - 12411 - 11905: 0xA4DB, - 12412 - 11905: 0xA4DC, - 12413 - 11905: 0xA4DD, - 12414 - 11905: 0xA4DE, - 12415 - 11905: 0xA4DF, - 12416 - 11905: 0xA4E0, - 12417 - 11905: 0xA4E1, - 12418 - 11905: 0xA4E2, - 12419 - 11905: 0xA4E3, - 12420 - 11905: 0xA4E4, - 12421 - 11905: 0xA4E5, - 12422 - 11905: 0xA4E6, - 12423 - 11905: 0xA4E7, - 12424 - 11905: 0xA4E8, - 12425 - 11905: 0xA4E9, - 12426 - 11905: 0xA4EA, - 12427 - 11905: 0xA4EB, - 12428 - 11905: 0xA4EC, - 12429 - 11905: 0xA4ED, - 12430 - 11905: 0xA4EE, - 12431 - 11905: 0xA4EF, - 12432 - 11905: 0xA4F0, - 12433 - 11905: 0xA4F1, - 12434 - 11905: 0xA4F2, - 12435 - 11905: 0xA4F3, - 12443 - 11905: 0xA961, - 12444 - 11905: 0xA962, - 12445 - 11905: 0xA966, - 12446 - 11905: 0xA967, - 12449 - 11905: 0xA5A1, - 12450 - 11905: 0xA5A2, - 12451 - 11905: 0xA5A3, - 12452 - 11905: 0xA5A4, - 12453 - 11905: 0xA5A5, - 12454 - 11905: 0xA5A6, - 12455 - 11905: 0xA5A7, - 12456 - 11905: 0xA5A8, - 12457 - 11905: 0xA5A9, - 12458 - 11905: 0xA5AA, - 12459 - 11905: 0xA5AB, - 12460 - 11905: 0xA5AC, - 12461 - 11905: 0xA5AD, - 12462 - 11905: 0xA5AE, - 12463 - 11905: 0xA5AF, - 12464 - 11905: 0xA5B0, - 12465 - 11905: 0xA5B1, - 12466 - 11905: 0xA5B2, - 12467 - 11905: 0xA5B3, - 12468 - 11905: 0xA5B4, - 12469 - 11905: 0xA5B5, - 12470 - 11905: 0xA5B6, - 12471 - 11905: 0xA5B7, - 12472 - 11905: 0xA5B8, - 12473 - 11905: 0xA5B9, - 12474 - 11905: 0xA5BA, - 12475 - 11905: 0xA5BB, - 12476 - 11905: 0xA5BC, - 12477 - 11905: 0xA5BD, - 12478 - 11905: 0xA5BE, - 12479 - 11905: 0xA5BF, - 12480 - 11905: 0xA5C0, - 12481 - 11905: 0xA5C1, - 12482 - 11905: 0xA5C2, - 12483 - 11905: 0xA5C3, - 12484 - 11905: 0xA5C4, - 12485 - 11905: 0xA5C5, - 12486 - 11905: 0xA5C6, - 12487 - 11905: 0xA5C7, - 12488 - 11905: 0xA5C8, - 12489 - 11905: 0xA5C9, - 12490 - 11905: 0xA5CA, - 12491 - 11905: 0xA5CB, - 12492 - 11905: 0xA5CC, - 12493 - 11905: 0xA5CD, - 12494 - 11905: 0xA5CE, - 12495 - 11905: 0xA5CF, - 12496 - 11905: 0xA5D0, - 12497 - 11905: 0xA5D1, - 12498 - 11905: 0xA5D2, - 12499 - 11905: 0xA5D3, - 12500 - 11905: 0xA5D4, - 12501 - 11905: 0xA5D5, - 12502 - 11905: 0xA5D6, - 12503 - 11905: 0xA5D7, - 12504 - 11905: 0xA5D8, - 12505 - 11905: 0xA5D9, - 12506 - 11905: 0xA5DA, - 12507 - 11905: 0xA5DB, - 12508 - 11905: 0xA5DC, - 12509 - 11905: 0xA5DD, - 12510 - 11905: 0xA5DE, - 12511 - 11905: 0xA5DF, - 12512 - 11905: 0xA5E0, - 12513 - 11905: 0xA5E1, - 12514 - 11905: 0xA5E2, - 12515 - 11905: 0xA5E3, - 12516 - 11905: 0xA5E4, - 12517 - 11905: 0xA5E5, - 12518 - 11905: 0xA5E6, - 12519 - 11905: 0xA5E7, - 12520 - 11905: 0xA5E8, - 12521 - 11905: 0xA5E9, - 12522 - 11905: 0xA5EA, - 12523 - 11905: 0xA5EB, - 12524 - 11905: 0xA5EC, - 12525 - 11905: 0xA5ED, - 12526 - 11905: 0xA5EE, - 12527 - 11905: 0xA5EF, - 12528 - 11905: 0xA5F0, - 12529 - 11905: 0xA5F1, - 12530 - 11905: 0xA5F2, - 12531 - 11905: 0xA5F3, - 12532 - 11905: 0xA5F4, - 12533 - 11905: 0xA5F5, - 12534 - 11905: 0xA5F6, - 12540 - 11905: 0xA960, - 12541 - 11905: 0xA963, - 12542 - 11905: 0xA964, - 12549 - 11905: 0xA8C5, - 12550 - 11905: 0xA8C6, - 12551 - 11905: 0xA8C7, - 12552 - 11905: 0xA8C8, - 12553 - 11905: 0xA8C9, - 12554 - 11905: 0xA8CA, - 12555 - 11905: 0xA8CB, - 12556 - 11905: 0xA8CC, - 12557 - 11905: 0xA8CD, - 12558 - 11905: 0xA8CE, - 12559 - 11905: 0xA8CF, - 12560 - 11905: 0xA8D0, - 12561 - 11905: 0xA8D1, - 12562 - 11905: 0xA8D2, - 12563 - 11905: 0xA8D3, - 12564 - 11905: 0xA8D4, - 12565 - 11905: 0xA8D5, - 12566 - 11905: 0xA8D6, - 12567 - 11905: 0xA8D7, - 12568 - 11905: 0xA8D8, - 12569 - 11905: 0xA8D9, - 12570 - 11905: 0xA8DA, - 12571 - 11905: 0xA8DB, - 12572 - 11905: 0xA8DC, - 12573 - 11905: 0xA8DD, - 12574 - 11905: 0xA8DE, - 12575 - 11905: 0xA8DF, - 12576 - 11905: 0xA8E0, - 12577 - 11905: 0xA8E1, - 12578 - 11905: 0xA8E2, - 12579 - 11905: 0xA8E3, - 12580 - 11905: 0xA8E4, - 12581 - 11905: 0xA8E5, - 12582 - 11905: 0xA8E6, - 12583 - 11905: 0xA8E7, - 12584 - 11905: 0xA8E8, - 12585 - 11905: 0xA8E9, - 12832 - 11905: 0xA2E5, - 12833 - 11905: 0xA2E6, - 12834 - 11905: 0xA2E7, - 12835 - 11905: 0xA2E8, - 12836 - 11905: 0xA2E9, - 12837 - 11905: 0xA2EA, - 12838 - 11905: 0xA2EB, - 12839 - 11905: 0xA2EC, - 12840 - 11905: 0xA2ED, - 12841 - 11905: 0xA2EE, - 12849 - 11905: 0xA95A, - 12963 - 11905: 0xA949, - 13198 - 11905: 0xA94A, - 13199 - 11905: 0xA94B, - 13212 - 11905: 0xA94C, - 13213 - 11905: 0xA94D, - 13214 - 11905: 0xA94E, - 13217 - 11905: 0xA94F, - 13252 - 11905: 0xA950, - 13262 - 11905: 0xA951, - 13265 - 11905: 0xA952, - 13266 - 11905: 0xA953, - 13269 - 11905: 0xA954, - 13383 - 11905: 0xFE56, - 13427 - 11905: 0xFE55, - 13726 - 11905: 0xFE5A, - 13838 - 11905: 0xFE5C, - 13850 - 11905: 0xFE5B, - 14616 - 11905: 0xFE60, - 14702 - 11905: 0xFE5F, - 14799 - 11905: 0xFE62, - 14800 - 11905: 0xFE65, - 14815 - 11905: 0xFE63, - 14963 - 11905: 0xFE64, - 15182 - 11905: 0xFE68, - 15470 - 11905: 0xFE69, - 15584 - 11905: 0xFE6A, - 16470 - 11905: 0xFE6F, - 16735 - 11905: 0xFE70, - 17207 - 11905: 0xFE72, - 17324 - 11905: 0xFE78, - 17329 - 11905: 0xFE77, - 17373 - 11905: 0xFE7A, - 17622 - 11905: 0xFE7B, - 17996 - 11905: 0xFE7D, - 18017 - 11905: 0xFE7C, - 18211 - 11905: 0xFE80, - 18217 - 11905: 0xFE81, - 18300 - 11905: 0xFE82, - 18317 - 11905: 0xFE83, - 18759 - 11905: 0xFE85, - 18810 - 11905: 0xFE86, - 18813 - 11905: 0xFE87, - 18818 - 11905: 0xFE88, - 18819 - 11905: 0xFE89, - 18821 - 11905: 0xFE8A, - 18822 - 11905: 0xFE8B, - 18843 - 11905: 0xFE8D, - 18847 - 11905: 0xFE8C, - 18870 - 11905: 0xFE8F, - 18871 - 11905: 0xFE8E, - 19575 - 11905: 0xFE96, - 19615 - 11905: 0xFE93, - 19616 - 11905: 0xFE94, - 19617 - 11905: 0xFE95, - 19618 - 11905: 0xFE97, - 19619 - 11905: 0xFE92, - 19731 - 11905: 0xFE98, - 19732 - 11905: 0xFE99, - 19733 - 11905: 0xFE9A, - 19734 - 11905: 0xFE9B, - 19735 - 11905: 0xFE9C, - 19736 - 11905: 0xFE9D, - 19737 - 11905: 0xFE9E, - 19886 - 11905: 0xFE9F, - 19968 - 11905: 0xD2BB, - 19969 - 11905: 0xB6A1, - 19970 - 11905: 0x8140, - 19971 - 11905: 0xC6DF, - 19972 - 11905: 0x8141, - 19973 - 11905: 0x8142, - 19974 - 11905: 0x8143, - 19975 - 11905: 0xCDF2, - 19976 - 11905: 0xD5C9, - 19977 - 11905: 0xC8FD, - 19978 - 11905: 0xC9CF, - 19979 - 11905: 0xCFC2, - 19980 - 11905: 0xD8A2, - 19981 - 11905: 0xB2BB, - 19982 - 11905: 0xD3EB, - 19983 - 11905: 0x8144, - 19984 - 11905: 0xD8A4, - 19985 - 11905: 0xB3F3, - 19986 - 11905: 0x8145, - 19987 - 11905: 0xD7A8, - 19988 - 11905: 0xC7D2, - 19989 - 11905: 0xD8A7, - 19990 - 11905: 0xCAC0, - 19991 - 11905: 0x8146, - 19992 - 11905: 0xC7F0, - 19993 - 11905: 0xB1FB, - 19994 - 11905: 0xD2B5, - 19995 - 11905: 0xB4D4, - 19996 - 11905: 0xB6AB, - 19997 - 11905: 0xCBBF, - 19998 - 11905: 0xD8A9, - 19999 - 11905: 0x8147, - 20000 - 11905: 0x8148, - 20001 - 11905: 0x8149, - 20002 - 11905: 0xB6AA, - 20003 - 11905: 0x814A, - 20004 - 11905: 0xC1BD, - 20005 - 11905: 0xD1CF, - 20006 - 11905: 0x814B, - 20007 - 11905: 0xC9A5, - 20008 - 11905: 0xD8AD, - 20009 - 11905: 0x814C, - 20010 - 11905: 0xB8F6, - 20011 - 11905: 0xD1BE, - 20012 - 11905: 0xE3DC, - 20013 - 11905: 0xD6D0, - 20014 - 11905: 0x814D, - 20015 - 11905: 0x814E, - 20016 - 11905: 0xB7E1, - 20017 - 11905: 0x814F, - 20018 - 11905: 0xB4AE, - 20019 - 11905: 0x8150, - 20020 - 11905: 0xC1D9, - 20021 - 11905: 0x8151, - 20022 - 11905: 0xD8BC, - 20023 - 11905: 0x8152, - 20024 - 11905: 0xCDE8, - 20025 - 11905: 0xB5A4, - 20026 - 11905: 0xCEAA, - 20027 - 11905: 0xD6F7, - 20028 - 11905: 0x8153, - 20029 - 11905: 0xC0F6, - 20030 - 11905: 0xBED9, - 20031 - 11905: 0xD8AF, - 20032 - 11905: 0x8154, - 20033 - 11905: 0x8155, - 20034 - 11905: 0x8156, - 20035 - 11905: 0xC4CB, - 20036 - 11905: 0x8157, - 20037 - 11905: 0xBEC3, - 20038 - 11905: 0x8158, - 20039 - 11905: 0xD8B1, - 20040 - 11905: 0xC3B4, - 20041 - 11905: 0xD2E5, - 20042 - 11905: 0x8159, - 20043 - 11905: 0xD6AE, - 20044 - 11905: 0xCEDA, - 20045 - 11905: 0xD5A7, - 20046 - 11905: 0xBAF5, - 20047 - 11905: 0xB7A6, - 20048 - 11905: 0xC0D6, - 20049 - 11905: 0x815A, - 20050 - 11905: 0xC6B9, - 20051 - 11905: 0xC5D2, - 20052 - 11905: 0xC7C7, - 20053 - 11905: 0x815B, - 20054 - 11905: 0xB9D4, - 20055 - 11905: 0x815C, - 20056 - 11905: 0xB3CB, - 20057 - 11905: 0xD2D2, - 20058 - 11905: 0x815D, - 20059 - 11905: 0x815E, - 20060 - 11905: 0xD8BF, - 20061 - 11905: 0xBEC5, - 20062 - 11905: 0xC6F2, - 20063 - 11905: 0xD2B2, - 20064 - 11905: 0xCFB0, - 20065 - 11905: 0xCFE7, - 20066 - 11905: 0x815F, - 20067 - 11905: 0x8160, - 20068 - 11905: 0x8161, - 20069 - 11905: 0x8162, - 20070 - 11905: 0xCAE9, - 20071 - 11905: 0x8163, - 20072 - 11905: 0x8164, - 20073 - 11905: 0xD8C0, - 20074 - 11905: 0x8165, - 20075 - 11905: 0x8166, - 20076 - 11905: 0x8167, - 20077 - 11905: 0x8168, - 20078 - 11905: 0x8169, - 20079 - 11905: 0x816A, - 20080 - 11905: 0xC2F2, - 20081 - 11905: 0xC2D2, - 20082 - 11905: 0x816B, - 20083 - 11905: 0xC8E9, - 20084 - 11905: 0x816C, - 20085 - 11905: 0x816D, - 20086 - 11905: 0x816E, - 20087 - 11905: 0x816F, - 20088 - 11905: 0x8170, - 20089 - 11905: 0x8171, - 20090 - 11905: 0x8172, - 20091 - 11905: 0x8173, - 20092 - 11905: 0x8174, - 20093 - 11905: 0x8175, - 20094 - 11905: 0xC7AC, - 20095 - 11905: 0x8176, - 20096 - 11905: 0x8177, - 20097 - 11905: 0x8178, - 20098 - 11905: 0x8179, - 20099 - 11905: 0x817A, - 20100 - 11905: 0x817B, - 20101 - 11905: 0x817C, - 20102 - 11905: 0xC1CB, - 20103 - 11905: 0x817D, - 20104 - 11905: 0xD3E8, - 20105 - 11905: 0xD5F9, - 20106 - 11905: 0x817E, - 20107 - 11905: 0xCAC2, - 20108 - 11905: 0xB6FE, - 20109 - 11905: 0xD8A1, - 20110 - 11905: 0xD3DA, - 20111 - 11905: 0xBFF7, - 20112 - 11905: 0x8180, - 20113 - 11905: 0xD4C6, - 20114 - 11905: 0xBBA5, - 20115 - 11905: 0xD8C1, - 20116 - 11905: 0xCEE5, - 20117 - 11905: 0xBEAE, - 20118 - 11905: 0x8181, - 20119 - 11905: 0x8182, - 20120 - 11905: 0xD8A8, - 20121 - 11905: 0x8183, - 20122 - 11905: 0xD1C7, - 20123 - 11905: 0xD0A9, - 20124 - 11905: 0x8184, - 20125 - 11905: 0x8185, - 20126 - 11905: 0x8186, - 20127 - 11905: 0xD8BD, - 20128 - 11905: 0xD9EF, - 20129 - 11905: 0xCDF6, - 20130 - 11905: 0xBFBA, - 20131 - 11905: 0x8187, - 20132 - 11905: 0xBDBB, - 20133 - 11905: 0xBAA5, - 20134 - 11905: 0xD2E0, - 20135 - 11905: 0xB2FA, - 20136 - 11905: 0xBAE0, - 20137 - 11905: 0xC4B6, - 20138 - 11905: 0x8188, - 20139 - 11905: 0xCFED, - 20140 - 11905: 0xBEA9, - 20141 - 11905: 0xCDA4, - 20142 - 11905: 0xC1C1, - 20143 - 11905: 0x8189, - 20144 - 11905: 0x818A, - 20145 - 11905: 0x818B, - 20146 - 11905: 0xC7D7, - 20147 - 11905: 0xD9F1, - 20148 - 11905: 0x818C, - 20149 - 11905: 0xD9F4, - 20150 - 11905: 0x818D, - 20151 - 11905: 0x818E, - 20152 - 11905: 0x818F, - 20153 - 11905: 0x8190, - 20154 - 11905: 0xC8CB, - 20155 - 11905: 0xD8E9, - 20156 - 11905: 0x8191, - 20157 - 11905: 0x8192, - 20158 - 11905: 0x8193, - 20159 - 11905: 0xD2DA, - 20160 - 11905: 0xCAB2, - 20161 - 11905: 0xC8CA, - 20162 - 11905: 0xD8EC, - 20163 - 11905: 0xD8EA, - 20164 - 11905: 0xD8C6, - 20165 - 11905: 0xBDF6, - 20166 - 11905: 0xC6CD, - 20167 - 11905: 0xB3F0, - 20168 - 11905: 0x8194, - 20169 - 11905: 0xD8EB, - 20170 - 11905: 0xBDF1, - 20171 - 11905: 0xBDE9, - 20172 - 11905: 0x8195, - 20173 - 11905: 0xC8D4, - 20174 - 11905: 0xB4D3, - 20175 - 11905: 0x8196, - 20176 - 11905: 0x8197, - 20177 - 11905: 0xC2D8, - 20178 - 11905: 0x8198, - 20179 - 11905: 0xB2D6, - 20180 - 11905: 0xD7D0, - 20181 - 11905: 0xCACB, - 20182 - 11905: 0xCBFB, - 20183 - 11905: 0xD5CC, - 20184 - 11905: 0xB8B6, - 20185 - 11905: 0xCFC9, - 20186 - 11905: 0x8199, - 20187 - 11905: 0x819A, - 20188 - 11905: 0x819B, - 20189 - 11905: 0xD9DA, - 20190 - 11905: 0xD8F0, - 20191 - 11905: 0xC7AA, - 20192 - 11905: 0x819C, - 20193 - 11905: 0xD8EE, - 20194 - 11905: 0x819D, - 20195 - 11905: 0xB4FA, - 20196 - 11905: 0xC1EE, - 20197 - 11905: 0xD2D4, - 20198 - 11905: 0x819E, - 20199 - 11905: 0x819F, - 20200 - 11905: 0xD8ED, - 20201 - 11905: 0x81A0, - 20202 - 11905: 0xD2C7, - 20203 - 11905: 0xD8EF, - 20204 - 11905: 0xC3C7, - 20205 - 11905: 0x81A1, - 20206 - 11905: 0x81A2, - 20207 - 11905: 0x81A3, - 20208 - 11905: 0xD1F6, - 20209 - 11905: 0x81A4, - 20210 - 11905: 0xD6D9, - 20211 - 11905: 0xD8F2, - 20212 - 11905: 0x81A5, - 20213 - 11905: 0xD8F5, - 20214 - 11905: 0xBCFE, - 20215 - 11905: 0xBCDB, - 20216 - 11905: 0x81A6, - 20217 - 11905: 0x81A7, - 20218 - 11905: 0x81A8, - 20219 - 11905: 0xC8CE, - 20220 - 11905: 0x81A9, - 20221 - 11905: 0xB7DD, - 20222 - 11905: 0x81AA, - 20223 - 11905: 0xB7C2, - 20224 - 11905: 0x81AB, - 20225 - 11905: 0xC6F3, - 20226 - 11905: 0x81AC, - 20227 - 11905: 0x81AD, - 20228 - 11905: 0x81AE, - 20229 - 11905: 0x81AF, - 20230 - 11905: 0x81B0, - 20231 - 11905: 0x81B1, - 20232 - 11905: 0x81B2, - 20233 - 11905: 0xD8F8, - 20234 - 11905: 0xD2C1, - 20235 - 11905: 0x81B3, - 20236 - 11905: 0x81B4, - 20237 - 11905: 0xCEE9, - 20238 - 11905: 0xBCBF, - 20239 - 11905: 0xB7FC, - 20240 - 11905: 0xB7A5, - 20241 - 11905: 0xD0DD, - 20242 - 11905: 0x81B5, - 20243 - 11905: 0x81B6, - 20244 - 11905: 0x81B7, - 20245 - 11905: 0x81B8, - 20246 - 11905: 0x81B9, - 20247 - 11905: 0xD6DA, - 20248 - 11905: 0xD3C5, - 20249 - 11905: 0xBBEF, - 20250 - 11905: 0xBBE1, - 20251 - 11905: 0xD8F1, - 20252 - 11905: 0x81BA, - 20253 - 11905: 0x81BB, - 20254 - 11905: 0xC9A1, - 20255 - 11905: 0xCEB0, - 20256 - 11905: 0xB4AB, - 20257 - 11905: 0x81BC, - 20258 - 11905: 0xD8F3, - 20259 - 11905: 0x81BD, - 20260 - 11905: 0xC9CB, - 20261 - 11905: 0xD8F6, - 20262 - 11905: 0xC2D7, - 20263 - 11905: 0xD8F7, - 20264 - 11905: 0x81BE, - 20265 - 11905: 0x81BF, - 20266 - 11905: 0xCEB1, - 20267 - 11905: 0xD8F9, - 20268 - 11905: 0x81C0, - 20269 - 11905: 0x81C1, - 20270 - 11905: 0x81C2, - 20271 - 11905: 0xB2AE, - 20272 - 11905: 0xB9C0, - 20273 - 11905: 0x81C3, - 20274 - 11905: 0xD9A3, - 20275 - 11905: 0x81C4, - 20276 - 11905: 0xB0E9, - 20277 - 11905: 0x81C5, - 20278 - 11905: 0xC1E6, - 20279 - 11905: 0x81C6, - 20280 - 11905: 0xC9EC, - 20281 - 11905: 0x81C7, - 20282 - 11905: 0xCBC5, - 20283 - 11905: 0x81C8, - 20284 - 11905: 0xCBC6, - 20285 - 11905: 0xD9A4, - 20286 - 11905: 0x81C9, - 20287 - 11905: 0x81CA, - 20288 - 11905: 0x81CB, - 20289 - 11905: 0x81CC, - 20290 - 11905: 0x81CD, - 20291 - 11905: 0xB5E8, - 20292 - 11905: 0x81CE, - 20293 - 11905: 0x81CF, - 20294 - 11905: 0xB5AB, - 20295 - 11905: 0x81D0, - 20296 - 11905: 0x81D1, - 20297 - 11905: 0x81D2, - 20298 - 11905: 0x81D3, - 20299 - 11905: 0x81D4, - 20300 - 11905: 0x81D5, - 20301 - 11905: 0xCEBB, - 20302 - 11905: 0xB5CD, - 20303 - 11905: 0xD7A1, - 20304 - 11905: 0xD7F4, - 20305 - 11905: 0xD3D3, - 20306 - 11905: 0x81D6, - 20307 - 11905: 0xCCE5, - 20308 - 11905: 0x81D7, - 20309 - 11905: 0xBACE, - 20310 - 11905: 0x81D8, - 20311 - 11905: 0xD9A2, - 20312 - 11905: 0xD9DC, - 20313 - 11905: 0xD3E0, - 20314 - 11905: 0xD8FD, - 20315 - 11905: 0xB7F0, - 20316 - 11905: 0xD7F7, - 20317 - 11905: 0xD8FE, - 20318 - 11905: 0xD8FA, - 20319 - 11905: 0xD9A1, - 20320 - 11905: 0xC4E3, - 20321 - 11905: 0x81D9, - 20322 - 11905: 0x81DA, - 20323 - 11905: 0xD3B6, - 20324 - 11905: 0xD8F4, - 20325 - 11905: 0xD9DD, - 20326 - 11905: 0x81DB, - 20327 - 11905: 0xD8FB, - 20328 - 11905: 0x81DC, - 20329 - 11905: 0xC5E5, - 20330 - 11905: 0x81DD, - 20331 - 11905: 0x81DE, - 20332 - 11905: 0xC0D0, - 20333 - 11905: 0x81DF, - 20334 - 11905: 0x81E0, - 20335 - 11905: 0xD1F0, - 20336 - 11905: 0xB0DB, - 20337 - 11905: 0x81E1, - 20338 - 11905: 0x81E2, - 20339 - 11905: 0xBCD1, - 20340 - 11905: 0xD9A6, - 20341 - 11905: 0x81E3, - 20342 - 11905: 0xD9A5, - 20343 - 11905: 0x81E4, - 20344 - 11905: 0x81E5, - 20345 - 11905: 0x81E6, - 20346 - 11905: 0x81E7, - 20347 - 11905: 0xD9AC, - 20348 - 11905: 0xD9AE, - 20349 - 11905: 0x81E8, - 20350 - 11905: 0xD9AB, - 20351 - 11905: 0xCAB9, - 20352 - 11905: 0x81E9, - 20353 - 11905: 0x81EA, - 20354 - 11905: 0x81EB, - 20355 - 11905: 0xD9A9, - 20356 - 11905: 0xD6B6, - 20357 - 11905: 0x81EC, - 20358 - 11905: 0x81ED, - 20359 - 11905: 0x81EE, - 20360 - 11905: 0xB3DE, - 20361 - 11905: 0xD9A8, - 20362 - 11905: 0x81EF, - 20363 - 11905: 0xC0FD, - 20364 - 11905: 0x81F0, - 20365 - 11905: 0xCACC, - 20366 - 11905: 0x81F1, - 20367 - 11905: 0xD9AA, - 20368 - 11905: 0x81F2, - 20369 - 11905: 0xD9A7, - 20370 - 11905: 0x81F3, - 20371 - 11905: 0x81F4, - 20372 - 11905: 0xD9B0, - 20373 - 11905: 0x81F5, - 20374 - 11905: 0x81F6, - 20375 - 11905: 0xB6B1, - 20376 - 11905: 0x81F7, - 20377 - 11905: 0x81F8, - 20378 - 11905: 0x81F9, - 20379 - 11905: 0xB9A9, - 20380 - 11905: 0x81FA, - 20381 - 11905: 0xD2C0, - 20382 - 11905: 0x81FB, - 20383 - 11905: 0x81FC, - 20384 - 11905: 0xCFC0, - 20385 - 11905: 0x81FD, - 20386 - 11905: 0x81FE, - 20387 - 11905: 0xC2C2, - 20388 - 11905: 0x8240, - 20389 - 11905: 0xBDC4, - 20390 - 11905: 0xD5EC, - 20391 - 11905: 0xB2E0, - 20392 - 11905: 0xC7C8, - 20393 - 11905: 0xBFEB, - 20394 - 11905: 0xD9AD, - 20395 - 11905: 0x8241, - 20396 - 11905: 0xD9AF, - 20397 - 11905: 0x8242, - 20398 - 11905: 0xCEEA, - 20399 - 11905: 0xBAEE, - 20400 - 11905: 0x8243, - 20401 - 11905: 0x8244, - 20402 - 11905: 0x8245, - 20403 - 11905: 0x8246, - 20404 - 11905: 0x8247, - 20405 - 11905: 0xC7D6, - 20406 - 11905: 0x8248, - 20407 - 11905: 0x8249, - 20408 - 11905: 0x824A, - 20409 - 11905: 0x824B, - 20410 - 11905: 0x824C, - 20411 - 11905: 0x824D, - 20412 - 11905: 0x824E, - 20413 - 11905: 0x824F, - 20414 - 11905: 0x8250, - 20415 - 11905: 0xB1E3, - 20416 - 11905: 0x8251, - 20417 - 11905: 0x8252, - 20418 - 11905: 0x8253, - 20419 - 11905: 0xB4D9, - 20420 - 11905: 0xB6ED, - 20421 - 11905: 0xD9B4, - 20422 - 11905: 0x8254, - 20423 - 11905: 0x8255, - 20424 - 11905: 0x8256, - 20425 - 11905: 0x8257, - 20426 - 11905: 0xBFA1, - 20427 - 11905: 0x8258, - 20428 - 11905: 0x8259, - 20429 - 11905: 0x825A, - 20430 - 11905: 0xD9DE, - 20431 - 11905: 0xC7CE, - 20432 - 11905: 0xC0FE, - 20433 - 11905: 0xD9B8, - 20434 - 11905: 0x825B, - 20435 - 11905: 0x825C, - 20436 - 11905: 0x825D, - 20437 - 11905: 0x825E, - 20438 - 11905: 0x825F, - 20439 - 11905: 0xCBD7, - 20440 - 11905: 0xB7FD, - 20441 - 11905: 0x8260, - 20442 - 11905: 0xD9B5, - 20443 - 11905: 0x8261, - 20444 - 11905: 0xD9B7, - 20445 - 11905: 0xB1A3, - 20446 - 11905: 0xD3E1, - 20447 - 11905: 0xD9B9, - 20448 - 11905: 0x8262, - 20449 - 11905: 0xD0C5, - 20450 - 11905: 0x8263, - 20451 - 11905: 0xD9B6, - 20452 - 11905: 0x8264, - 20453 - 11905: 0x8265, - 20454 - 11905: 0xD9B1, - 20455 - 11905: 0x8266, - 20456 - 11905: 0xD9B2, - 20457 - 11905: 0xC1A9, - 20458 - 11905: 0xD9B3, - 20459 - 11905: 0x8267, - 20460 - 11905: 0x8268, - 20461 - 11905: 0xBCF3, - 20462 - 11905: 0xD0DE, - 20463 - 11905: 0xB8A9, - 20464 - 11905: 0x8269, - 20465 - 11905: 0xBEE3, - 20466 - 11905: 0x826A, - 20467 - 11905: 0xD9BD, - 20468 - 11905: 0x826B, - 20469 - 11905: 0x826C, - 20470 - 11905: 0x826D, - 20471 - 11905: 0x826E, - 20472 - 11905: 0xD9BA, - 20473 - 11905: 0x826F, - 20474 - 11905: 0xB0B3, - 20475 - 11905: 0x8270, - 20476 - 11905: 0x8271, - 20477 - 11905: 0x8272, - 20478 - 11905: 0xD9C2, - 20479 - 11905: 0x8273, - 20480 - 11905: 0x8274, - 20481 - 11905: 0x8275, - 20482 - 11905: 0x8276, - 20483 - 11905: 0x8277, - 20484 - 11905: 0x8278, - 20485 - 11905: 0x8279, - 20486 - 11905: 0x827A, - 20487 - 11905: 0x827B, - 20488 - 11905: 0x827C, - 20489 - 11905: 0x827D, - 20490 - 11905: 0x827E, - 20491 - 11905: 0x8280, - 20492 - 11905: 0xD9C4, - 20493 - 11905: 0xB1B6, - 20494 - 11905: 0x8281, - 20495 - 11905: 0xD9BF, - 20496 - 11905: 0x8282, - 20497 - 11905: 0x8283, - 20498 - 11905: 0xB5B9, - 20499 - 11905: 0x8284, - 20500 - 11905: 0xBEF3, - 20501 - 11905: 0x8285, - 20502 - 11905: 0x8286, - 20503 - 11905: 0x8287, - 20504 - 11905: 0xCCC8, - 20505 - 11905: 0xBAF2, - 20506 - 11905: 0xD2D0, - 20507 - 11905: 0x8288, - 20508 - 11905: 0xD9C3, - 20509 - 11905: 0x8289, - 20510 - 11905: 0x828A, - 20511 - 11905: 0xBDE8, - 20512 - 11905: 0x828B, - 20513 - 11905: 0xB3AB, - 20514 - 11905: 0x828C, - 20515 - 11905: 0x828D, - 20516 - 11905: 0x828E, - 20517 - 11905: 0xD9C5, - 20518 - 11905: 0xBEEB, - 20519 - 11905: 0x828F, - 20520 - 11905: 0xD9C6, - 20521 - 11905: 0xD9BB, - 20522 - 11905: 0xC4DF, - 20523 - 11905: 0x8290, - 20524 - 11905: 0xD9BE, - 20525 - 11905: 0xD9C1, - 20526 - 11905: 0xD9C0, - 20527 - 11905: 0x8291, - 20528 - 11905: 0x8292, - 20529 - 11905: 0x8293, - 20530 - 11905: 0x8294, - 20531 - 11905: 0x8295, - 20532 - 11905: 0x8296, - 20533 - 11905: 0x8297, - 20534 - 11905: 0x8298, - 20535 - 11905: 0x8299, - 20536 - 11905: 0x829A, - 20537 - 11905: 0x829B, - 20538 - 11905: 0xD5AE, - 20539 - 11905: 0x829C, - 20540 - 11905: 0xD6B5, - 20541 - 11905: 0x829D, - 20542 - 11905: 0xC7E3, - 20543 - 11905: 0x829E, - 20544 - 11905: 0x829F, - 20545 - 11905: 0x82A0, - 20546 - 11905: 0x82A1, - 20547 - 11905: 0xD9C8, - 20548 - 11905: 0x82A2, - 20549 - 11905: 0x82A3, - 20550 - 11905: 0x82A4, - 20551 - 11905: 0xBCD9, - 20552 - 11905: 0xD9CA, - 20553 - 11905: 0x82A5, - 20554 - 11905: 0x82A6, - 20555 - 11905: 0x82A7, - 20556 - 11905: 0xD9BC, - 20557 - 11905: 0x82A8, - 20558 - 11905: 0xD9CB, - 20559 - 11905: 0xC6AB, - 20560 - 11905: 0x82A9, - 20561 - 11905: 0x82AA, - 20562 - 11905: 0x82AB, - 20563 - 11905: 0x82AC, - 20564 - 11905: 0x82AD, - 20565 - 11905: 0xD9C9, - 20566 - 11905: 0x82AE, - 20567 - 11905: 0x82AF, - 20568 - 11905: 0x82B0, - 20569 - 11905: 0x82B1, - 20570 - 11905: 0xD7F6, - 20571 - 11905: 0x82B2, - 20572 - 11905: 0xCDA3, - 20573 - 11905: 0x82B3, - 20574 - 11905: 0x82B4, - 20575 - 11905: 0x82B5, - 20576 - 11905: 0x82B6, - 20577 - 11905: 0x82B7, - 20578 - 11905: 0x82B8, - 20579 - 11905: 0x82B9, - 20580 - 11905: 0x82BA, - 20581 - 11905: 0xBDA1, - 20582 - 11905: 0x82BB, - 20583 - 11905: 0x82BC, - 20584 - 11905: 0x82BD, - 20585 - 11905: 0x82BE, - 20586 - 11905: 0x82BF, - 20587 - 11905: 0x82C0, - 20588 - 11905: 0xD9CC, - 20589 - 11905: 0x82C1, - 20590 - 11905: 0x82C2, - 20591 - 11905: 0x82C3, - 20592 - 11905: 0x82C4, - 20593 - 11905: 0x82C5, - 20594 - 11905: 0x82C6, - 20595 - 11905: 0x82C7, - 20596 - 11905: 0x82C8, - 20597 - 11905: 0x82C9, - 20598 - 11905: 0xC5BC, - 20599 - 11905: 0xCDB5, - 20600 - 11905: 0x82CA, - 20601 - 11905: 0x82CB, - 20602 - 11905: 0x82CC, - 20603 - 11905: 0xD9CD, - 20604 - 11905: 0x82CD, - 20605 - 11905: 0x82CE, - 20606 - 11905: 0xD9C7, - 20607 - 11905: 0xB3A5, - 20608 - 11905: 0xBFFE, - 20609 - 11905: 0x82CF, - 20610 - 11905: 0x82D0, - 20611 - 11905: 0x82D1, - 20612 - 11905: 0x82D2, - 20613 - 11905: 0xB8B5, - 20614 - 11905: 0x82D3, - 20615 - 11905: 0x82D4, - 20616 - 11905: 0xC0FC, - 20617 - 11905: 0x82D5, - 20618 - 11905: 0x82D6, - 20619 - 11905: 0x82D7, - 20620 - 11905: 0x82D8, - 20621 - 11905: 0xB0F8, - 20622 - 11905: 0x82D9, - 20623 - 11905: 0x82DA, - 20624 - 11905: 0x82DB, - 20625 - 11905: 0x82DC, - 20626 - 11905: 0x82DD, - 20627 - 11905: 0x82DE, - 20628 - 11905: 0x82DF, - 20629 - 11905: 0x82E0, - 20630 - 11905: 0x82E1, - 20631 - 11905: 0x82E2, - 20632 - 11905: 0x82E3, - 20633 - 11905: 0x82E4, - 20634 - 11905: 0x82E5, - 20635 - 11905: 0x82E6, - 20636 - 11905: 0x82E7, - 20637 - 11905: 0x82E8, - 20638 - 11905: 0x82E9, - 20639 - 11905: 0x82EA, - 20640 - 11905: 0x82EB, - 20641 - 11905: 0x82EC, - 20642 - 11905: 0x82ED, - 20643 - 11905: 0xB4F6, - 20644 - 11905: 0x82EE, - 20645 - 11905: 0xD9CE, - 20646 - 11905: 0x82EF, - 20647 - 11905: 0xD9CF, - 20648 - 11905: 0xB4A2, - 20649 - 11905: 0xD9D0, - 20650 - 11905: 0x82F0, - 20651 - 11905: 0x82F1, - 20652 - 11905: 0xB4DF, - 20653 - 11905: 0x82F2, - 20654 - 11905: 0x82F3, - 20655 - 11905: 0x82F4, - 20656 - 11905: 0x82F5, - 20657 - 11905: 0x82F6, - 20658 - 11905: 0xB0C1, - 20659 - 11905: 0x82F7, - 20660 - 11905: 0x82F8, - 20661 - 11905: 0x82F9, - 20662 - 11905: 0x82FA, - 20663 - 11905: 0x82FB, - 20664 - 11905: 0x82FC, - 20665 - 11905: 0x82FD, - 20666 - 11905: 0xD9D1, - 20667 - 11905: 0xC9B5, - 20668 - 11905: 0x82FE, - 20669 - 11905: 0x8340, - 20670 - 11905: 0x8341, - 20671 - 11905: 0x8342, - 20672 - 11905: 0x8343, - 20673 - 11905: 0x8344, - 20674 - 11905: 0x8345, - 20675 - 11905: 0x8346, - 20676 - 11905: 0x8347, - 20677 - 11905: 0x8348, - 20678 - 11905: 0x8349, - 20679 - 11905: 0x834A, - 20680 - 11905: 0x834B, - 20681 - 11905: 0x834C, - 20682 - 11905: 0x834D, - 20683 - 11905: 0x834E, - 20684 - 11905: 0x834F, - 20685 - 11905: 0x8350, - 20686 - 11905: 0x8351, - 20687 - 11905: 0xCFF1, - 20688 - 11905: 0x8352, - 20689 - 11905: 0x8353, - 20690 - 11905: 0x8354, - 20691 - 11905: 0x8355, - 20692 - 11905: 0x8356, - 20693 - 11905: 0x8357, - 20694 - 11905: 0xD9D2, - 20695 - 11905: 0x8358, - 20696 - 11905: 0x8359, - 20697 - 11905: 0x835A, - 20698 - 11905: 0xC1C5, - 20699 - 11905: 0x835B, - 20700 - 11905: 0x835C, - 20701 - 11905: 0x835D, - 20702 - 11905: 0x835E, - 20703 - 11905: 0x835F, - 20704 - 11905: 0x8360, - 20705 - 11905: 0x8361, - 20706 - 11905: 0x8362, - 20707 - 11905: 0x8363, - 20708 - 11905: 0x8364, - 20709 - 11905: 0x8365, - 20710 - 11905: 0xD9D6, - 20711 - 11905: 0xC9AE, - 20712 - 11905: 0x8366, - 20713 - 11905: 0x8367, - 20714 - 11905: 0x8368, - 20715 - 11905: 0x8369, - 20716 - 11905: 0xD9D5, - 20717 - 11905: 0xD9D4, - 20718 - 11905: 0xD9D7, - 20719 - 11905: 0x836A, - 20720 - 11905: 0x836B, - 20721 - 11905: 0x836C, - 20722 - 11905: 0x836D, - 20723 - 11905: 0xCBDB, - 20724 - 11905: 0x836E, - 20725 - 11905: 0xBDA9, - 20726 - 11905: 0x836F, - 20727 - 11905: 0x8370, - 20728 - 11905: 0x8371, - 20729 - 11905: 0x8372, - 20730 - 11905: 0x8373, - 20731 - 11905: 0xC6A7, - 20732 - 11905: 0x8374, - 20733 - 11905: 0x8375, - 20734 - 11905: 0x8376, - 20735 - 11905: 0x8377, - 20736 - 11905: 0x8378, - 20737 - 11905: 0x8379, - 20738 - 11905: 0x837A, - 20739 - 11905: 0x837B, - 20740 - 11905: 0x837C, - 20741 - 11905: 0x837D, - 20742 - 11905: 0xD9D3, - 20743 - 11905: 0xD9D8, - 20744 - 11905: 0x837E, - 20745 - 11905: 0x8380, - 20746 - 11905: 0x8381, - 20747 - 11905: 0xD9D9, - 20748 - 11905: 0x8382, - 20749 - 11905: 0x8383, - 20750 - 11905: 0x8384, - 20751 - 11905: 0x8385, - 20752 - 11905: 0x8386, - 20753 - 11905: 0x8387, - 20754 - 11905: 0xC8E5, - 20755 - 11905: 0x8388, - 20756 - 11905: 0x8389, - 20757 - 11905: 0x838A, - 20758 - 11905: 0x838B, - 20759 - 11905: 0x838C, - 20760 - 11905: 0x838D, - 20761 - 11905: 0x838E, - 20762 - 11905: 0x838F, - 20763 - 11905: 0x8390, - 20764 - 11905: 0x8391, - 20765 - 11905: 0x8392, - 20766 - 11905: 0x8393, - 20767 - 11905: 0x8394, - 20768 - 11905: 0x8395, - 20769 - 11905: 0xC0DC, - 20770 - 11905: 0x8396, - 20771 - 11905: 0x8397, - 20772 - 11905: 0x8398, - 20773 - 11905: 0x8399, - 20774 - 11905: 0x839A, - 20775 - 11905: 0x839B, - 20776 - 11905: 0x839C, - 20777 - 11905: 0x839D, - 20778 - 11905: 0x839E, - 20779 - 11905: 0x839F, - 20780 - 11905: 0x83A0, - 20781 - 11905: 0x83A1, - 20782 - 11905: 0x83A2, - 20783 - 11905: 0x83A3, - 20784 - 11905: 0x83A4, - 20785 - 11905: 0x83A5, - 20786 - 11905: 0x83A6, - 20787 - 11905: 0x83A7, - 20788 - 11905: 0x83A8, - 20789 - 11905: 0x83A9, - 20790 - 11905: 0x83AA, - 20791 - 11905: 0x83AB, - 20792 - 11905: 0x83AC, - 20793 - 11905: 0x83AD, - 20794 - 11905: 0x83AE, - 20795 - 11905: 0x83AF, - 20796 - 11905: 0x83B0, - 20797 - 11905: 0x83B1, - 20798 - 11905: 0x83B2, - 20799 - 11905: 0xB6F9, - 20800 - 11905: 0xD8A3, - 20801 - 11905: 0xD4CA, - 20802 - 11905: 0x83B3, - 20803 - 11905: 0xD4AA, - 20804 - 11905: 0xD0D6, - 20805 - 11905: 0xB3E4, - 20806 - 11905: 0xD5D7, - 20807 - 11905: 0x83B4, - 20808 - 11905: 0xCFC8, - 20809 - 11905: 0xB9E2, - 20810 - 11905: 0x83B5, - 20811 - 11905: 0xBFCB, - 20812 - 11905: 0x83B6, - 20813 - 11905: 0xC3E2, - 20814 - 11905: 0x83B7, - 20815 - 11905: 0x83B8, - 20816 - 11905: 0x83B9, - 20817 - 11905: 0xB6D2, - 20818 - 11905: 0x83BA, - 20819 - 11905: 0x83BB, - 20820 - 11905: 0xCDC3, - 20821 - 11905: 0xD9EE, - 20822 - 11905: 0xD9F0, - 20823 - 11905: 0x83BC, - 20824 - 11905: 0x83BD, - 20825 - 11905: 0x83BE, - 20826 - 11905: 0xB5B3, - 20827 - 11905: 0x83BF, - 20828 - 11905: 0xB6B5, - 20829 - 11905: 0x83C0, - 20830 - 11905: 0x83C1, - 20831 - 11905: 0x83C2, - 20832 - 11905: 0x83C3, - 20833 - 11905: 0x83C4, - 20834 - 11905: 0xBEA4, - 20835 - 11905: 0x83C5, - 20836 - 11905: 0x83C6, - 20837 - 11905: 0xC8EB, - 20838 - 11905: 0x83C7, - 20839 - 11905: 0x83C8, - 20840 - 11905: 0xC8AB, - 20841 - 11905: 0x83C9, - 20842 - 11905: 0x83CA, - 20843 - 11905: 0xB0CB, - 20844 - 11905: 0xB9AB, - 20845 - 11905: 0xC1F9, - 20846 - 11905: 0xD9E2, - 20847 - 11905: 0x83CB, - 20848 - 11905: 0xC0BC, - 20849 - 11905: 0xB9B2, - 20850 - 11905: 0x83CC, - 20851 - 11905: 0xB9D8, - 20852 - 11905: 0xD0CB, - 20853 - 11905: 0xB1F8, - 20854 - 11905: 0xC6E4, - 20855 - 11905: 0xBEDF, - 20856 - 11905: 0xB5E4, - 20857 - 11905: 0xD7C8, - 20858 - 11905: 0x83CD, - 20859 - 11905: 0xD1F8, - 20860 - 11905: 0xBCE6, - 20861 - 11905: 0xCADE, - 20862 - 11905: 0x83CE, - 20863 - 11905: 0x83CF, - 20864 - 11905: 0xBCBD, - 20865 - 11905: 0xD9E6, - 20866 - 11905: 0xD8E7, - 20867 - 11905: 0x83D0, - 20868 - 11905: 0x83D1, - 20869 - 11905: 0xC4DA, - 20870 - 11905: 0x83D2, - 20871 - 11905: 0x83D3, - 20872 - 11905: 0xB8D4, - 20873 - 11905: 0xC8BD, - 20874 - 11905: 0x83D4, - 20875 - 11905: 0x83D5, - 20876 - 11905: 0xB2E1, - 20877 - 11905: 0xD4D9, - 20878 - 11905: 0x83D6, - 20879 - 11905: 0x83D7, - 20880 - 11905: 0x83D8, - 20881 - 11905: 0x83D9, - 20882 - 11905: 0xC3B0, - 20883 - 11905: 0x83DA, - 20884 - 11905: 0x83DB, - 20885 - 11905: 0xC3E1, - 20886 - 11905: 0xDAA2, - 20887 - 11905: 0xC8DF, - 20888 - 11905: 0x83DC, - 20889 - 11905: 0xD0B4, - 20890 - 11905: 0x83DD, - 20891 - 11905: 0xBEFC, - 20892 - 11905: 0xC5A9, - 20893 - 11905: 0x83DE, - 20894 - 11905: 0x83DF, - 20895 - 11905: 0x83E0, - 20896 - 11905: 0xB9DA, - 20897 - 11905: 0x83E1, - 20898 - 11905: 0xDAA3, - 20899 - 11905: 0x83E2, - 20900 - 11905: 0xD4A9, - 20901 - 11905: 0xDAA4, - 20902 - 11905: 0x83E3, - 20903 - 11905: 0x83E4, - 20904 - 11905: 0x83E5, - 20905 - 11905: 0x83E6, - 20906 - 11905: 0x83E7, - 20907 - 11905: 0xD9FB, - 20908 - 11905: 0xB6AC, - 20909 - 11905: 0x83E8, - 20910 - 11905: 0x83E9, - 20911 - 11905: 0xB7EB, - 20912 - 11905: 0xB1F9, - 20913 - 11905: 0xD9FC, - 20914 - 11905: 0xB3E5, - 20915 - 11905: 0xBEF6, - 20916 - 11905: 0x83EA, - 20917 - 11905: 0xBFF6, - 20918 - 11905: 0xD2B1, - 20919 - 11905: 0xC0E4, - 20920 - 11905: 0x83EB, - 20921 - 11905: 0x83EC, - 20922 - 11905: 0x83ED, - 20923 - 11905: 0xB6B3, - 20924 - 11905: 0xD9FE, - 20925 - 11905: 0xD9FD, - 20926 - 11905: 0x83EE, - 20927 - 11905: 0x83EF, - 20928 - 11905: 0xBEBB, - 20929 - 11905: 0x83F0, - 20930 - 11905: 0x83F1, - 20931 - 11905: 0x83F2, - 20932 - 11905: 0xC6E0, - 20933 - 11905: 0x83F3, - 20934 - 11905: 0xD7BC, - 20935 - 11905: 0xDAA1, - 20936 - 11905: 0x83F4, - 20937 - 11905: 0xC1B9, - 20938 - 11905: 0x83F5, - 20939 - 11905: 0xB5F2, - 20940 - 11905: 0xC1E8, - 20941 - 11905: 0x83F6, - 20942 - 11905: 0x83F7, - 20943 - 11905: 0xBCF5, - 20944 - 11905: 0x83F8, - 20945 - 11905: 0xB4D5, - 20946 - 11905: 0x83F9, - 20947 - 11905: 0x83FA, - 20948 - 11905: 0x83FB, - 20949 - 11905: 0x83FC, - 20950 - 11905: 0x83FD, - 20951 - 11905: 0x83FE, - 20952 - 11905: 0x8440, - 20953 - 11905: 0x8441, - 20954 - 11905: 0x8442, - 20955 - 11905: 0xC1DD, - 20956 - 11905: 0x8443, - 20957 - 11905: 0xC4FD, - 20958 - 11905: 0x8444, - 20959 - 11905: 0x8445, - 20960 - 11905: 0xBCB8, - 20961 - 11905: 0xB7B2, - 20962 - 11905: 0x8446, - 20963 - 11905: 0x8447, - 20964 - 11905: 0xB7EF, - 20965 - 11905: 0x8448, - 20966 - 11905: 0x8449, - 20967 - 11905: 0x844A, - 20968 - 11905: 0x844B, - 20969 - 11905: 0x844C, - 20970 - 11905: 0x844D, - 20971 - 11905: 0xD9EC, - 20972 - 11905: 0x844E, - 20973 - 11905: 0xC6BE, - 20974 - 11905: 0x844F, - 20975 - 11905: 0xBFAD, - 20976 - 11905: 0xBBCB, - 20977 - 11905: 0x8450, - 20978 - 11905: 0x8451, - 20979 - 11905: 0xB5CA, - 20980 - 11905: 0x8452, - 20981 - 11905: 0xDBC9, - 20982 - 11905: 0xD0D7, - 20983 - 11905: 0x8453, - 20984 - 11905: 0xCDB9, - 20985 - 11905: 0xB0BC, - 20986 - 11905: 0xB3F6, - 20987 - 11905: 0xBBF7, - 20988 - 11905: 0xDBCA, - 20989 - 11905: 0xBAAF, - 20990 - 11905: 0x8454, - 20991 - 11905: 0xD4E4, - 20992 - 11905: 0xB5B6, - 20993 - 11905: 0xB5F3, - 20994 - 11905: 0xD8D6, - 20995 - 11905: 0xC8D0, - 20996 - 11905: 0x8455, - 20997 - 11905: 0x8456, - 20998 - 11905: 0xB7D6, - 20999 - 11905: 0xC7D0, - 21000 - 11905: 0xD8D7, - 21001 - 11905: 0x8457, - 21002 - 11905: 0xBFAF, - 21003 - 11905: 0x8458, - 21004 - 11905: 0x8459, - 21005 - 11905: 0xDBBB, - 21006 - 11905: 0xD8D8, - 21007 - 11905: 0x845A, - 21008 - 11905: 0x845B, - 21009 - 11905: 0xD0CC, - 21010 - 11905: 0xBBAE, - 21011 - 11905: 0x845C, - 21012 - 11905: 0x845D, - 21013 - 11905: 0x845E, - 21014 - 11905: 0xEBBE, - 21015 - 11905: 0xC1D0, - 21016 - 11905: 0xC1F5, - 21017 - 11905: 0xD4F2, - 21018 - 11905: 0xB8D5, - 21019 - 11905: 0xB4B4, - 21020 - 11905: 0x845F, - 21021 - 11905: 0xB3F5, - 21022 - 11905: 0x8460, - 21023 - 11905: 0x8461, - 21024 - 11905: 0xC9BE, - 21025 - 11905: 0x8462, - 21026 - 11905: 0x8463, - 21027 - 11905: 0x8464, - 21028 - 11905: 0xC5D0, - 21029 - 11905: 0x8465, - 21030 - 11905: 0x8466, - 21031 - 11905: 0x8467, - 21032 - 11905: 0xC5D9, - 21033 - 11905: 0xC0FB, - 21034 - 11905: 0x8468, - 21035 - 11905: 0xB1F0, - 21036 - 11905: 0x8469, - 21037 - 11905: 0xD8D9, - 21038 - 11905: 0xB9CE, - 21039 - 11905: 0x846A, - 21040 - 11905: 0xB5BD, - 21041 - 11905: 0x846B, - 21042 - 11905: 0x846C, - 21043 - 11905: 0xD8DA, - 21044 - 11905: 0x846D, - 21045 - 11905: 0x846E, - 21046 - 11905: 0xD6C6, - 21047 - 11905: 0xCBA2, - 21048 - 11905: 0xC8AF, - 21049 - 11905: 0xC9B2, - 21050 - 11905: 0xB4CC, - 21051 - 11905: 0xBFCC, - 21052 - 11905: 0x846F, - 21053 - 11905: 0xB9F4, - 21054 - 11905: 0x8470, - 21055 - 11905: 0xD8DB, - 21056 - 11905: 0xD8DC, - 21057 - 11905: 0xB6E7, - 21058 - 11905: 0xBCC1, - 21059 - 11905: 0xCCEA, - 21060 - 11905: 0x8471, - 21061 - 11905: 0x8472, - 21062 - 11905: 0x8473, - 21063 - 11905: 0x8474, - 21064 - 11905: 0x8475, - 21065 - 11905: 0x8476, - 21066 - 11905: 0xCFF7, - 21067 - 11905: 0x8477, - 21068 - 11905: 0xD8DD, - 21069 - 11905: 0xC7B0, - 21070 - 11905: 0x8478, - 21071 - 11905: 0x8479, - 21072 - 11905: 0xB9D0, - 21073 - 11905: 0xBDA3, - 21074 - 11905: 0x847A, - 21075 - 11905: 0x847B, - 21076 - 11905: 0xCCDE, - 21077 - 11905: 0x847C, - 21078 - 11905: 0xC6CA, - 21079 - 11905: 0x847D, - 21080 - 11905: 0x847E, - 21081 - 11905: 0x8480, - 21082 - 11905: 0x8481, - 21083 - 11905: 0x8482, - 21084 - 11905: 0xD8E0, - 21085 - 11905: 0x8483, - 21086 - 11905: 0xD8DE, - 21087 - 11905: 0x8484, - 21088 - 11905: 0x8485, - 21089 - 11905: 0xD8DF, - 21090 - 11905: 0x8486, - 21091 - 11905: 0x8487, - 21092 - 11905: 0x8488, - 21093 - 11905: 0xB0FE, - 21094 - 11905: 0x8489, - 21095 - 11905: 0xBEE7, - 21096 - 11905: 0x848A, - 21097 - 11905: 0xCAA3, - 21098 - 11905: 0xBCF4, - 21099 - 11905: 0x848B, - 21100 - 11905: 0x848C, - 21101 - 11905: 0x848D, - 21102 - 11905: 0x848E, - 21103 - 11905: 0xB8B1, - 21104 - 11905: 0x848F, - 21105 - 11905: 0x8490, - 21106 - 11905: 0xB8EE, - 21107 - 11905: 0x8491, - 21108 - 11905: 0x8492, - 21109 - 11905: 0x8493, - 21110 - 11905: 0x8494, - 21111 - 11905: 0x8495, - 21112 - 11905: 0x8496, - 21113 - 11905: 0x8497, - 21114 - 11905: 0x8498, - 21115 - 11905: 0x8499, - 21116 - 11905: 0x849A, - 21117 - 11905: 0xD8E2, - 21118 - 11905: 0x849B, - 21119 - 11905: 0xBDCB, - 21120 - 11905: 0x849C, - 21121 - 11905: 0xD8E4, - 21122 - 11905: 0xD8E3, - 21123 - 11905: 0x849D, - 21124 - 11905: 0x849E, - 21125 - 11905: 0x849F, - 21126 - 11905: 0x84A0, - 21127 - 11905: 0x84A1, - 21128 - 11905: 0xC5FC, - 21129 - 11905: 0x84A2, - 21130 - 11905: 0x84A3, - 21131 - 11905: 0x84A4, - 21132 - 11905: 0x84A5, - 21133 - 11905: 0x84A6, - 21134 - 11905: 0x84A7, - 21135 - 11905: 0x84A8, - 21136 - 11905: 0xD8E5, - 21137 - 11905: 0x84A9, - 21138 - 11905: 0x84AA, - 21139 - 11905: 0xD8E6, - 21140 - 11905: 0x84AB, - 21141 - 11905: 0x84AC, - 21142 - 11905: 0x84AD, - 21143 - 11905: 0x84AE, - 21144 - 11905: 0x84AF, - 21145 - 11905: 0x84B0, - 21146 - 11905: 0x84B1, - 21147 - 11905: 0xC1A6, - 21148 - 11905: 0x84B2, - 21149 - 11905: 0xC8B0, - 21150 - 11905: 0xB0EC, - 21151 - 11905: 0xB9A6, - 21152 - 11905: 0xBCD3, - 21153 - 11905: 0xCEF1, - 21154 - 11905: 0xDBBD, - 21155 - 11905: 0xC1D3, - 21156 - 11905: 0x84B3, - 21157 - 11905: 0x84B4, - 21158 - 11905: 0x84B5, - 21159 - 11905: 0x84B6, - 21160 - 11905: 0xB6AF, - 21161 - 11905: 0xD6FA, - 21162 - 11905: 0xC5AC, - 21163 - 11905: 0xBDD9, - 21164 - 11905: 0xDBBE, - 21165 - 11905: 0xDBBF, - 21166 - 11905: 0x84B7, - 21167 - 11905: 0x84B8, - 21168 - 11905: 0x84B9, - 21169 - 11905: 0xC0F8, - 21170 - 11905: 0xBEA2, - 21171 - 11905: 0xC0CD, - 21172 - 11905: 0x84BA, - 21173 - 11905: 0x84BB, - 21174 - 11905: 0x84BC, - 21175 - 11905: 0x84BD, - 21176 - 11905: 0x84BE, - 21177 - 11905: 0x84BF, - 21178 - 11905: 0x84C0, - 21179 - 11905: 0x84C1, - 21180 - 11905: 0x84C2, - 21181 - 11905: 0x84C3, - 21182 - 11905: 0xDBC0, - 21183 - 11905: 0xCAC6, - 21184 - 11905: 0x84C4, - 21185 - 11905: 0x84C5, - 21186 - 11905: 0x84C6, - 21187 - 11905: 0xB2AA, - 21188 - 11905: 0x84C7, - 21189 - 11905: 0x84C8, - 21190 - 11905: 0x84C9, - 21191 - 11905: 0xD3C2, - 21192 - 11905: 0x84CA, - 21193 - 11905: 0xC3E3, - 21194 - 11905: 0x84CB, - 21195 - 11905: 0xD1AB, - 21196 - 11905: 0x84CC, - 21197 - 11905: 0x84CD, - 21198 - 11905: 0x84CE, - 21199 - 11905: 0x84CF, - 21200 - 11905: 0xDBC2, - 21201 - 11905: 0x84D0, - 21202 - 11905: 0xC0D5, - 21203 - 11905: 0x84D1, - 21204 - 11905: 0x84D2, - 21205 - 11905: 0x84D3, - 21206 - 11905: 0xDBC3, - 21207 - 11905: 0x84D4, - 21208 - 11905: 0xBFB1, - 21209 - 11905: 0x84D5, - 21210 - 11905: 0x84D6, - 21211 - 11905: 0x84D7, - 21212 - 11905: 0x84D8, - 21213 - 11905: 0x84D9, - 21214 - 11905: 0x84DA, - 21215 - 11905: 0xC4BC, - 21216 - 11905: 0x84DB, - 21217 - 11905: 0x84DC, - 21218 - 11905: 0x84DD, - 21219 - 11905: 0x84DE, - 21220 - 11905: 0xC7DA, - 21221 - 11905: 0x84DF, - 21222 - 11905: 0x84E0, - 21223 - 11905: 0x84E1, - 21224 - 11905: 0x84E2, - 21225 - 11905: 0x84E3, - 21226 - 11905: 0x84E4, - 21227 - 11905: 0x84E5, - 21228 - 11905: 0x84E6, - 21229 - 11905: 0x84E7, - 21230 - 11905: 0x84E8, - 21231 - 11905: 0x84E9, - 21232 - 11905: 0xDBC4, - 21233 - 11905: 0x84EA, - 21234 - 11905: 0x84EB, - 21235 - 11905: 0x84EC, - 21236 - 11905: 0x84ED, - 21237 - 11905: 0x84EE, - 21238 - 11905: 0x84EF, - 21239 - 11905: 0x84F0, - 21240 - 11905: 0x84F1, - 21241 - 11905: 0xD9E8, - 21242 - 11905: 0xC9D7, - 21243 - 11905: 0x84F2, - 21244 - 11905: 0x84F3, - 21245 - 11905: 0x84F4, - 21246 - 11905: 0xB9B4, - 21247 - 11905: 0xCEF0, - 21248 - 11905: 0xD4C8, - 21249 - 11905: 0x84F5, - 21250 - 11905: 0x84F6, - 21251 - 11905: 0x84F7, - 21252 - 11905: 0x84F8, - 21253 - 11905: 0xB0FC, - 21254 - 11905: 0xB4D2, - 21255 - 11905: 0x84F9, - 21256 - 11905: 0xD0D9, - 21257 - 11905: 0x84FA, - 21258 - 11905: 0x84FB, - 21259 - 11905: 0x84FC, - 21260 - 11905: 0x84FD, - 21261 - 11905: 0xD9E9, - 21262 - 11905: 0x84FE, - 21263 - 11905: 0xDECB, - 21264 - 11905: 0xD9EB, - 21265 - 11905: 0x8540, - 21266 - 11905: 0x8541, - 21267 - 11905: 0x8542, - 21268 - 11905: 0x8543, - 21269 - 11905: 0xD8B0, - 21270 - 11905: 0xBBAF, - 21271 - 11905: 0xB1B1, - 21272 - 11905: 0x8544, - 21273 - 11905: 0xB3D7, - 21274 - 11905: 0xD8CE, - 21275 - 11905: 0x8545, - 21276 - 11905: 0x8546, - 21277 - 11905: 0xD4D1, - 21278 - 11905: 0x8547, - 21279 - 11905: 0x8548, - 21280 - 11905: 0xBDB3, - 21281 - 11905: 0xBFEF, - 21282 - 11905: 0x8549, - 21283 - 11905: 0xCFBB, - 21284 - 11905: 0x854A, - 21285 - 11905: 0x854B, - 21286 - 11905: 0xD8D0, - 21287 - 11905: 0x854C, - 21288 - 11905: 0x854D, - 21289 - 11905: 0x854E, - 21290 - 11905: 0xB7CB, - 21291 - 11905: 0x854F, - 21292 - 11905: 0x8550, - 21293 - 11905: 0x8551, - 21294 - 11905: 0xD8D1, - 21295 - 11905: 0x8552, - 21296 - 11905: 0x8553, - 21297 - 11905: 0x8554, - 21298 - 11905: 0x8555, - 21299 - 11905: 0x8556, - 21300 - 11905: 0x8557, - 21301 - 11905: 0x8558, - 21302 - 11905: 0x8559, - 21303 - 11905: 0x855A, - 21304 - 11905: 0x855B, - 21305 - 11905: 0xC6A5, - 21306 - 11905: 0xC7F8, - 21307 - 11905: 0xD2BD, - 21308 - 11905: 0x855C, - 21309 - 11905: 0x855D, - 21310 - 11905: 0xD8D2, - 21311 - 11905: 0xC4E4, - 21312 - 11905: 0x855E, - 21313 - 11905: 0xCAAE, - 21314 - 11905: 0x855F, - 21315 - 11905: 0xC7A7, - 21316 - 11905: 0x8560, - 21317 - 11905: 0xD8A6, - 21318 - 11905: 0x8561, - 21319 - 11905: 0xC9FD, - 21320 - 11905: 0xCEE7, - 21321 - 11905: 0xBBDC, - 21322 - 11905: 0xB0EB, - 21323 - 11905: 0x8562, - 21324 - 11905: 0x8563, - 21325 - 11905: 0x8564, - 21326 - 11905: 0xBBAA, - 21327 - 11905: 0xD0AD, - 21328 - 11905: 0x8565, - 21329 - 11905: 0xB1B0, - 21330 - 11905: 0xD7E4, - 21331 - 11905: 0xD7BF, - 21332 - 11905: 0x8566, - 21333 - 11905: 0xB5A5, - 21334 - 11905: 0xC2F4, - 21335 - 11905: 0xC4CF, - 21336 - 11905: 0x8567, - 21337 - 11905: 0x8568, - 21338 - 11905: 0xB2A9, - 21339 - 11905: 0x8569, - 21340 - 11905: 0xB2B7, - 21341 - 11905: 0x856A, - 21342 - 11905: 0xB1E5, - 21343 - 11905: 0xDFB2, - 21344 - 11905: 0xD5BC, - 21345 - 11905: 0xBFA8, - 21346 - 11905: 0xC2AC, - 21347 - 11905: 0xD8D5, - 21348 - 11905: 0xC2B1, - 21349 - 11905: 0x856B, - 21350 - 11905: 0xD8D4, - 21351 - 11905: 0xCED4, - 21352 - 11905: 0x856C, - 21353 - 11905: 0xDAE0, - 21354 - 11905: 0x856D, - 21355 - 11905: 0xCEC0, - 21356 - 11905: 0x856E, - 21357 - 11905: 0x856F, - 21358 - 11905: 0xD8B4, - 21359 - 11905: 0xC3AE, - 21360 - 11905: 0xD3A1, - 21361 - 11905: 0xCEA3, - 21362 - 11905: 0x8570, - 21363 - 11905: 0xBCB4, - 21364 - 11905: 0xC8B4, - 21365 - 11905: 0xC2D1, - 21366 - 11905: 0x8571, - 21367 - 11905: 0xBEED, - 21368 - 11905: 0xD0B6, - 21369 - 11905: 0x8572, - 21370 - 11905: 0xDAE1, - 21371 - 11905: 0x8573, - 21372 - 11905: 0x8574, - 21373 - 11905: 0x8575, - 21374 - 11905: 0x8576, - 21375 - 11905: 0xC7E4, - 21376 - 11905: 0x8577, - 21377 - 11905: 0x8578, - 21378 - 11905: 0xB3A7, - 21379 - 11905: 0x8579, - 21380 - 11905: 0xB6F2, - 21381 - 11905: 0xCCFC, - 21382 - 11905: 0xC0FA, - 21383 - 11905: 0x857A, - 21384 - 11905: 0x857B, - 21385 - 11905: 0xC0F7, - 21386 - 11905: 0x857C, - 21387 - 11905: 0xD1B9, - 21388 - 11905: 0xD1E1, - 21389 - 11905: 0xD8C7, - 21390 - 11905: 0x857D, - 21391 - 11905: 0x857E, - 21392 - 11905: 0x8580, - 21393 - 11905: 0x8581, - 21394 - 11905: 0x8582, - 21395 - 11905: 0x8583, - 21396 - 11905: 0x8584, - 21397 - 11905: 0xB2DE, - 21398 - 11905: 0x8585, - 21399 - 11905: 0x8586, - 21400 - 11905: 0xC0E5, - 21401 - 11905: 0x8587, - 21402 - 11905: 0xBAF1, - 21403 - 11905: 0x8588, - 21404 - 11905: 0x8589, - 21405 - 11905: 0xD8C8, - 21406 - 11905: 0x858A, - 21407 - 11905: 0xD4AD, - 21408 - 11905: 0x858B, - 21409 - 11905: 0x858C, - 21410 - 11905: 0xCFE1, - 21411 - 11905: 0xD8C9, - 21412 - 11905: 0x858D, - 21413 - 11905: 0xD8CA, - 21414 - 11905: 0xCFC3, - 21415 - 11905: 0x858E, - 21416 - 11905: 0xB3F8, - 21417 - 11905: 0xBEC7, - 21418 - 11905: 0x858F, - 21419 - 11905: 0x8590, - 21420 - 11905: 0x8591, - 21421 - 11905: 0x8592, - 21422 - 11905: 0xD8CB, - 21423 - 11905: 0x8593, - 21424 - 11905: 0x8594, - 21425 - 11905: 0x8595, - 21426 - 11905: 0x8596, - 21427 - 11905: 0x8597, - 21428 - 11905: 0x8598, - 21429 - 11905: 0x8599, - 21430 - 11905: 0xDBCC, - 21431 - 11905: 0x859A, - 21432 - 11905: 0x859B, - 21433 - 11905: 0x859C, - 21434 - 11905: 0x859D, - 21435 - 11905: 0xC8A5, - 21436 - 11905: 0x859E, - 21437 - 11905: 0x859F, - 21438 - 11905: 0x85A0, - 21439 - 11905: 0xCFD8, - 21440 - 11905: 0x85A1, - 21441 - 11905: 0xC8FE, - 21442 - 11905: 0xB2CE, - 21443 - 11905: 0x85A2, - 21444 - 11905: 0x85A3, - 21445 - 11905: 0x85A4, - 21446 - 11905: 0x85A5, - 21447 - 11905: 0x85A6, - 21448 - 11905: 0xD3D6, - 21449 - 11905: 0xB2E6, - 21450 - 11905: 0xBCB0, - 21451 - 11905: 0xD3D1, - 21452 - 11905: 0xCBAB, - 21453 - 11905: 0xB7B4, - 21454 - 11905: 0x85A7, - 21455 - 11905: 0x85A8, - 21456 - 11905: 0x85A9, - 21457 - 11905: 0xB7A2, - 21458 - 11905: 0x85AA, - 21459 - 11905: 0x85AB, - 21460 - 11905: 0xCAE5, - 21461 - 11905: 0x85AC, - 21462 - 11905: 0xC8A1, - 21463 - 11905: 0xCADC, - 21464 - 11905: 0xB1E4, - 21465 - 11905: 0xD0F0, - 21466 - 11905: 0x85AD, - 21467 - 11905: 0xC5D1, - 21468 - 11905: 0x85AE, - 21469 - 11905: 0x85AF, - 21470 - 11905: 0x85B0, - 21471 - 11905: 0xDBC5, - 21472 - 11905: 0xB5FE, - 21473 - 11905: 0x85B1, - 21474 - 11905: 0x85B2, - 21475 - 11905: 0xBFDA, - 21476 - 11905: 0xB9C5, - 21477 - 11905: 0xBEE4, - 21478 - 11905: 0xC1ED, - 21479 - 11905: 0x85B3, - 21480 - 11905: 0xDFB6, - 21481 - 11905: 0xDFB5, - 21482 - 11905: 0xD6BB, - 21483 - 11905: 0xBDD0, - 21484 - 11905: 0xD5D9, - 21485 - 11905: 0xB0C8, - 21486 - 11905: 0xB6A3, - 21487 - 11905: 0xBFC9, - 21488 - 11905: 0xCCA8, - 21489 - 11905: 0xDFB3, - 21490 - 11905: 0xCAB7, - 21491 - 11905: 0xD3D2, - 21492 - 11905: 0x85B4, - 21493 - 11905: 0xD8CF, - 21494 - 11905: 0xD2B6, - 21495 - 11905: 0xBAC5, - 21496 - 11905: 0xCBBE, - 21497 - 11905: 0xCCBE, - 21498 - 11905: 0x85B5, - 21499 - 11905: 0xDFB7, - 21500 - 11905: 0xB5F0, - 21501 - 11905: 0xDFB4, - 21502 - 11905: 0x85B6, - 21503 - 11905: 0x85B7, - 21504 - 11905: 0x85B8, - 21505 - 11905: 0xD3F5, - 21506 - 11905: 0x85B9, - 21507 - 11905: 0xB3D4, - 21508 - 11905: 0xB8F7, - 21509 - 11905: 0x85BA, - 21510 - 11905: 0xDFBA, - 21511 - 11905: 0x85BB, - 21512 - 11905: 0xBACF, - 21513 - 11905: 0xBCAA, - 21514 - 11905: 0xB5F5, - 21515 - 11905: 0x85BC, - 21516 - 11905: 0xCDAC, - 21517 - 11905: 0xC3FB, - 21518 - 11905: 0xBAF3, - 21519 - 11905: 0xC0F4, - 21520 - 11905: 0xCDC2, - 21521 - 11905: 0xCFF2, - 21522 - 11905: 0xDFB8, - 21523 - 11905: 0xCFC5, - 21524 - 11905: 0x85BD, - 21525 - 11905: 0xC2C0, - 21526 - 11905: 0xDFB9, - 21527 - 11905: 0xC2F0, - 21528 - 11905: 0x85BE, - 21529 - 11905: 0x85BF, - 21530 - 11905: 0x85C0, - 21531 - 11905: 0xBEFD, - 21532 - 11905: 0x85C1, - 21533 - 11905: 0xC1DF, - 21534 - 11905: 0xCDCC, - 21535 - 11905: 0xD2F7, - 21536 - 11905: 0xB7CD, - 21537 - 11905: 0xDFC1, - 21538 - 11905: 0x85C2, - 21539 - 11905: 0xDFC4, - 21540 - 11905: 0x85C3, - 21541 - 11905: 0x85C4, - 21542 - 11905: 0xB7F1, - 21543 - 11905: 0xB0C9, - 21544 - 11905: 0xB6D6, - 21545 - 11905: 0xB7D4, - 21546 - 11905: 0x85C5, - 21547 - 11905: 0xBAAC, - 21548 - 11905: 0xCCFD, - 21549 - 11905: 0xBFD4, - 21550 - 11905: 0xCBB1, - 21551 - 11905: 0xC6F4, - 21552 - 11905: 0x85C6, - 21553 - 11905: 0xD6A8, - 21554 - 11905: 0xDFC5, - 21555 - 11905: 0x85C7, - 21556 - 11905: 0xCEE2, - 21557 - 11905: 0xB3B3, - 21558 - 11905: 0x85C8, - 21559 - 11905: 0x85C9, - 21560 - 11905: 0xCEFC, - 21561 - 11905: 0xB4B5, - 21562 - 11905: 0x85CA, - 21563 - 11905: 0xCEC7, - 21564 - 11905: 0xBAF0, - 21565 - 11905: 0x85CB, - 21566 - 11905: 0xCEE1, - 21567 - 11905: 0x85CC, - 21568 - 11905: 0xD1BD, - 21569 - 11905: 0x85CD, - 21570 - 11905: 0x85CE, - 21571 - 11905: 0xDFC0, - 21572 - 11905: 0x85CF, - 21573 - 11905: 0x85D0, - 21574 - 11905: 0xB4F4, - 21575 - 11905: 0x85D1, - 21576 - 11905: 0xB3CA, - 21577 - 11905: 0x85D2, - 21578 - 11905: 0xB8E6, - 21579 - 11905: 0xDFBB, - 21580 - 11905: 0x85D3, - 21581 - 11905: 0x85D4, - 21582 - 11905: 0x85D5, - 21583 - 11905: 0x85D6, - 21584 - 11905: 0xC4C5, - 21585 - 11905: 0x85D7, - 21586 - 11905: 0xDFBC, - 21587 - 11905: 0xDFBD, - 21588 - 11905: 0xDFBE, - 21589 - 11905: 0xC5BB, - 21590 - 11905: 0xDFBF, - 21591 - 11905: 0xDFC2, - 21592 - 11905: 0xD4B1, - 21593 - 11905: 0xDFC3, - 21594 - 11905: 0x85D8, - 21595 - 11905: 0xC7BA, - 21596 - 11905: 0xCED8, - 21597 - 11905: 0x85D9, - 21598 - 11905: 0x85DA, - 21599 - 11905: 0x85DB, - 21600 - 11905: 0x85DC, - 21601 - 11905: 0x85DD, - 21602 - 11905: 0xC4D8, - 21603 - 11905: 0x85DE, - 21604 - 11905: 0xDFCA, - 21605 - 11905: 0x85DF, - 21606 - 11905: 0xDFCF, - 21607 - 11905: 0x85E0, - 21608 - 11905: 0xD6DC, - 21609 - 11905: 0x85E1, - 21610 - 11905: 0x85E2, - 21611 - 11905: 0x85E3, - 21612 - 11905: 0x85E4, - 21613 - 11905: 0x85E5, - 21614 - 11905: 0x85E6, - 21615 - 11905: 0x85E7, - 21616 - 11905: 0x85E8, - 21617 - 11905: 0xDFC9, - 21618 - 11905: 0xDFDA, - 21619 - 11905: 0xCEB6, - 21620 - 11905: 0x85E9, - 21621 - 11905: 0xBAC7, - 21622 - 11905: 0xDFCE, - 21623 - 11905: 0xDFC8, - 21624 - 11905: 0xC5DE, - 21625 - 11905: 0x85EA, - 21626 - 11905: 0x85EB, - 21627 - 11905: 0xC9EB, - 21628 - 11905: 0xBAF4, - 21629 - 11905: 0xC3FC, - 21630 - 11905: 0x85EC, - 21631 - 11905: 0x85ED, - 21632 - 11905: 0xBED7, - 21633 - 11905: 0x85EE, - 21634 - 11905: 0xDFC6, - 21635 - 11905: 0x85EF, - 21636 - 11905: 0xDFCD, - 21637 - 11905: 0x85F0, - 21638 - 11905: 0xC5D8, - 21639 - 11905: 0x85F1, - 21640 - 11905: 0x85F2, - 21641 - 11905: 0x85F3, - 21642 - 11905: 0x85F4, - 21643 - 11905: 0xD5A6, - 21644 - 11905: 0xBACD, - 21645 - 11905: 0x85F5, - 21646 - 11905: 0xBECC, - 21647 - 11905: 0xD3BD, - 21648 - 11905: 0xB8C0, - 21649 - 11905: 0x85F6, - 21650 - 11905: 0xD6E4, - 21651 - 11905: 0x85F7, - 21652 - 11905: 0xDFC7, - 21653 - 11905: 0xB9BE, - 21654 - 11905: 0xBFA7, - 21655 - 11905: 0x85F8, - 21656 - 11905: 0x85F9, - 21657 - 11905: 0xC1FC, - 21658 - 11905: 0xDFCB, - 21659 - 11905: 0xDFCC, - 21660 - 11905: 0x85FA, - 21661 - 11905: 0xDFD0, - 21662 - 11905: 0x85FB, - 21663 - 11905: 0x85FC, - 21664 - 11905: 0x85FD, - 21665 - 11905: 0x85FE, - 21666 - 11905: 0x8640, - 21667 - 11905: 0xDFDB, - 21668 - 11905: 0xDFE5, - 21669 - 11905: 0x8641, - 21670 - 11905: 0xDFD7, - 21671 - 11905: 0xDFD6, - 21672 - 11905: 0xD7C9, - 21673 - 11905: 0xDFE3, - 21674 - 11905: 0xDFE4, - 21675 - 11905: 0xE5EB, - 21676 - 11905: 0xD2A7, - 21677 - 11905: 0xDFD2, - 21678 - 11905: 0x8642, - 21679 - 11905: 0xBFA9, - 21680 - 11905: 0x8643, - 21681 - 11905: 0xD4DB, - 21682 - 11905: 0x8644, - 21683 - 11905: 0xBFC8, - 21684 - 11905: 0xDFD4, - 21685 - 11905: 0x8645, - 21686 - 11905: 0x8646, - 21687 - 11905: 0x8647, - 21688 - 11905: 0xCFCC, - 21689 - 11905: 0x8648, - 21690 - 11905: 0x8649, - 21691 - 11905: 0xDFDD, - 21692 - 11905: 0x864A, - 21693 - 11905: 0xD1CA, - 21694 - 11905: 0x864B, - 21695 - 11905: 0xDFDE, - 21696 - 11905: 0xB0A7, - 21697 - 11905: 0xC6B7, - 21698 - 11905: 0xDFD3, - 21699 - 11905: 0x864C, - 21700 - 11905: 0xBAE5, - 21701 - 11905: 0x864D, - 21702 - 11905: 0xB6DF, - 21703 - 11905: 0xCDDB, - 21704 - 11905: 0xB9FE, - 21705 - 11905: 0xD4D5, - 21706 - 11905: 0x864E, - 21707 - 11905: 0x864F, - 21708 - 11905: 0xDFDF, - 21709 - 11905: 0xCFEC, - 21710 - 11905: 0xB0A5, - 21711 - 11905: 0xDFE7, - 21712 - 11905: 0xDFD1, - 21713 - 11905: 0xD1C6, - 21714 - 11905: 0xDFD5, - 21715 - 11905: 0xDFD8, - 21716 - 11905: 0xDFD9, - 21717 - 11905: 0xDFDC, - 21718 - 11905: 0x8650, - 21719 - 11905: 0xBBA9, - 21720 - 11905: 0x8651, - 21721 - 11905: 0xDFE0, - 21722 - 11905: 0xDFE1, - 21723 - 11905: 0x8652, - 21724 - 11905: 0xDFE2, - 21725 - 11905: 0xDFE6, - 21726 - 11905: 0xDFE8, - 21727 - 11905: 0xD3B4, - 21728 - 11905: 0x8653, - 21729 - 11905: 0x8654, - 21730 - 11905: 0x8655, - 21731 - 11905: 0x8656, - 21732 - 11905: 0x8657, - 21733 - 11905: 0xB8E7, - 21734 - 11905: 0xC5B6, - 21735 - 11905: 0xDFEA, - 21736 - 11905: 0xC9DA, - 21737 - 11905: 0xC1A8, - 21738 - 11905: 0xC4C4, - 21739 - 11905: 0x8658, - 21740 - 11905: 0x8659, - 21741 - 11905: 0xBFDE, - 21742 - 11905: 0xCFF8, - 21743 - 11905: 0x865A, - 21744 - 11905: 0x865B, - 21745 - 11905: 0x865C, - 21746 - 11905: 0xD5DC, - 21747 - 11905: 0xDFEE, - 21748 - 11905: 0x865D, - 21749 - 11905: 0x865E, - 21750 - 11905: 0x865F, - 21751 - 11905: 0x8660, - 21752 - 11905: 0x8661, - 21753 - 11905: 0x8662, - 21754 - 11905: 0xB2B8, - 21755 - 11905: 0x8663, - 21756 - 11905: 0xBADF, - 21757 - 11905: 0xDFEC, - 21758 - 11905: 0x8664, - 21759 - 11905: 0xDBC1, - 21760 - 11905: 0x8665, - 21761 - 11905: 0xD1E4, - 21762 - 11905: 0x8666, - 21763 - 11905: 0x8667, - 21764 - 11905: 0x8668, - 21765 - 11905: 0x8669, - 21766 - 11905: 0xCBF4, - 21767 - 11905: 0xB4BD, - 21768 - 11905: 0x866A, - 21769 - 11905: 0xB0A6, - 21770 - 11905: 0x866B, - 21771 - 11905: 0x866C, - 21772 - 11905: 0x866D, - 21773 - 11905: 0x866E, - 21774 - 11905: 0x866F, - 21775 - 11905: 0xDFF1, - 21776 - 11905: 0xCCC6, - 21777 - 11905: 0xDFF2, - 21778 - 11905: 0x8670, - 21779 - 11905: 0x8671, - 21780 - 11905: 0xDFED, - 21781 - 11905: 0x8672, - 21782 - 11905: 0x8673, - 21783 - 11905: 0x8674, - 21784 - 11905: 0x8675, - 21785 - 11905: 0x8676, - 21786 - 11905: 0x8677, - 21787 - 11905: 0xDFE9, - 21788 - 11905: 0x8678, - 21789 - 11905: 0x8679, - 21790 - 11905: 0x867A, - 21791 - 11905: 0x867B, - 21792 - 11905: 0xDFEB, - 21793 - 11905: 0x867C, - 21794 - 11905: 0xDFEF, - 21795 - 11905: 0xDFF0, - 21796 - 11905: 0xBBBD, - 21797 - 11905: 0x867D, - 21798 - 11905: 0x867E, - 21799 - 11905: 0xDFF3, - 21800 - 11905: 0x8680, - 21801 - 11905: 0x8681, - 21802 - 11905: 0xDFF4, - 21803 - 11905: 0x8682, - 21804 - 11905: 0xBBA3, - 21805 - 11905: 0x8683, - 21806 - 11905: 0xCADB, - 21807 - 11905: 0xCEA8, - 21808 - 11905: 0xE0A7, - 21809 - 11905: 0xB3AA, - 21810 - 11905: 0x8684, - 21811 - 11905: 0xE0A6, - 21812 - 11905: 0x8685, - 21813 - 11905: 0x8686, - 21814 - 11905: 0x8687, - 21815 - 11905: 0xE0A1, - 21816 - 11905: 0x8688, - 21817 - 11905: 0x8689, - 21818 - 11905: 0x868A, - 21819 - 11905: 0x868B, - 21820 - 11905: 0xDFFE, - 21821 - 11905: 0x868C, - 21822 - 11905: 0xCDD9, - 21823 - 11905: 0xDFFC, - 21824 - 11905: 0x868D, - 21825 - 11905: 0xDFFA, - 21826 - 11905: 0x868E, - 21827 - 11905: 0xBFD0, - 21828 - 11905: 0xD7C4, - 21829 - 11905: 0x868F, - 21830 - 11905: 0xC9CC, - 21831 - 11905: 0x8690, - 21832 - 11905: 0x8691, - 21833 - 11905: 0xDFF8, - 21834 - 11905: 0xB0A1, - 21835 - 11905: 0x8692, - 21836 - 11905: 0x8693, - 21837 - 11905: 0x8694, - 21838 - 11905: 0x8695, - 21839 - 11905: 0x8696, - 21840 - 11905: 0xDFFD, - 21841 - 11905: 0x8697, - 21842 - 11905: 0x8698, - 21843 - 11905: 0x8699, - 21844 - 11905: 0x869A, - 21845 - 11905: 0xDFFB, - 21846 - 11905: 0xE0A2, - 21847 - 11905: 0x869B, - 21848 - 11905: 0x869C, - 21849 - 11905: 0x869D, - 21850 - 11905: 0x869E, - 21851 - 11905: 0x869F, - 21852 - 11905: 0xE0A8, - 21853 - 11905: 0x86A0, - 21854 - 11905: 0x86A1, - 21855 - 11905: 0x86A2, - 21856 - 11905: 0x86A3, - 21857 - 11905: 0xB7C8, - 21858 - 11905: 0x86A4, - 21859 - 11905: 0x86A5, - 21860 - 11905: 0xC6A1, - 21861 - 11905: 0xC9B6, - 21862 - 11905: 0xC0B2, - 21863 - 11905: 0xDFF5, - 21864 - 11905: 0x86A6, - 21865 - 11905: 0x86A7, - 21866 - 11905: 0xC5BE, - 21867 - 11905: 0x86A8, - 21868 - 11905: 0xD8C4, - 21869 - 11905: 0xDFF9, - 21870 - 11905: 0xC4F6, - 21871 - 11905: 0x86A9, - 21872 - 11905: 0x86AA, - 21873 - 11905: 0x86AB, - 21874 - 11905: 0x86AC, - 21875 - 11905: 0x86AD, - 21876 - 11905: 0x86AE, - 21877 - 11905: 0xE0A3, - 21878 - 11905: 0xE0A4, - 21879 - 11905: 0xE0A5, - 21880 - 11905: 0xD0A5, - 21881 - 11905: 0x86AF, - 21882 - 11905: 0x86B0, - 21883 - 11905: 0xE0B4, - 21884 - 11905: 0xCCE4, - 21885 - 11905: 0x86B1, - 21886 - 11905: 0xE0B1, - 21887 - 11905: 0x86B2, - 21888 - 11905: 0xBFA6, - 21889 - 11905: 0xE0AF, - 21890 - 11905: 0xCEB9, - 21891 - 11905: 0xE0AB, - 21892 - 11905: 0xC9C6, - 21893 - 11905: 0x86B3, - 21894 - 11905: 0x86B4, - 21895 - 11905: 0xC0AE, - 21896 - 11905: 0xE0AE, - 21897 - 11905: 0xBAED, - 21898 - 11905: 0xBAB0, - 21899 - 11905: 0xE0A9, - 21900 - 11905: 0x86B5, - 21901 - 11905: 0x86B6, - 21902 - 11905: 0x86B7, - 21903 - 11905: 0xDFF6, - 21904 - 11905: 0x86B8, - 21905 - 11905: 0xE0B3, - 21906 - 11905: 0x86B9, - 21907 - 11905: 0x86BA, - 21908 - 11905: 0xE0B8, - 21909 - 11905: 0x86BB, - 21910 - 11905: 0x86BC, - 21911 - 11905: 0x86BD, - 21912 - 11905: 0xB4AD, - 21913 - 11905: 0xE0B9, - 21914 - 11905: 0x86BE, - 21915 - 11905: 0x86BF, - 21916 - 11905: 0xCFB2, - 21917 - 11905: 0xBAC8, - 21918 - 11905: 0x86C0, - 21919 - 11905: 0xE0B0, - 21920 - 11905: 0x86C1, - 21921 - 11905: 0x86C2, - 21922 - 11905: 0x86C3, - 21923 - 11905: 0x86C4, - 21924 - 11905: 0x86C5, - 21925 - 11905: 0x86C6, - 21926 - 11905: 0x86C7, - 21927 - 11905: 0xD0FA, - 21928 - 11905: 0x86C8, - 21929 - 11905: 0x86C9, - 21930 - 11905: 0x86CA, - 21931 - 11905: 0x86CB, - 21932 - 11905: 0x86CC, - 21933 - 11905: 0x86CD, - 21934 - 11905: 0x86CE, - 21935 - 11905: 0x86CF, - 21936 - 11905: 0x86D0, - 21937 - 11905: 0xE0AC, - 21938 - 11905: 0x86D1, - 21939 - 11905: 0xD4FB, - 21940 - 11905: 0x86D2, - 21941 - 11905: 0xDFF7, - 21942 - 11905: 0x86D3, - 21943 - 11905: 0xC5E7, - 21944 - 11905: 0x86D4, - 21945 - 11905: 0xE0AD, - 21946 - 11905: 0x86D5, - 21947 - 11905: 0xD3F7, - 21948 - 11905: 0x86D6, - 21949 - 11905: 0xE0B6, - 21950 - 11905: 0xE0B7, - 21951 - 11905: 0x86D7, - 21952 - 11905: 0x86D8, - 21953 - 11905: 0x86D9, - 21954 - 11905: 0x86DA, - 21955 - 11905: 0x86DB, - 21956 - 11905: 0xE0C4, - 21957 - 11905: 0xD0E1, - 21958 - 11905: 0x86DC, - 21959 - 11905: 0x86DD, - 21960 - 11905: 0x86DE, - 21961 - 11905: 0xE0BC, - 21962 - 11905: 0x86DF, - 21963 - 11905: 0x86E0, - 21964 - 11905: 0xE0C9, - 21965 - 11905: 0xE0CA, - 21966 - 11905: 0x86E1, - 21967 - 11905: 0x86E2, - 21968 - 11905: 0x86E3, - 21969 - 11905: 0xE0BE, - 21970 - 11905: 0xE0AA, - 21971 - 11905: 0xC9A4, - 21972 - 11905: 0xE0C1, - 21973 - 11905: 0x86E4, - 21974 - 11905: 0xE0B2, - 21975 - 11905: 0x86E5, - 21976 - 11905: 0x86E6, - 21977 - 11905: 0x86E7, - 21978 - 11905: 0x86E8, - 21979 - 11905: 0x86E9, - 21980 - 11905: 0xCAC8, - 21981 - 11905: 0xE0C3, - 21982 - 11905: 0x86EA, - 21983 - 11905: 0xE0B5, - 21984 - 11905: 0x86EB, - 21985 - 11905: 0xCECB, - 21986 - 11905: 0x86EC, - 21987 - 11905: 0xCBC3, - 21988 - 11905: 0xE0CD, - 21989 - 11905: 0xE0C6, - 21990 - 11905: 0xE0C2, - 21991 - 11905: 0x86ED, - 21992 - 11905: 0xE0CB, - 21993 - 11905: 0x86EE, - 21994 - 11905: 0xE0BA, - 21995 - 11905: 0xE0BF, - 21996 - 11905: 0xE0C0, - 21997 - 11905: 0x86EF, - 21998 - 11905: 0x86F0, - 21999 - 11905: 0xE0C5, - 22000 - 11905: 0x86F1, - 22001 - 11905: 0x86F2, - 22002 - 11905: 0xE0C7, - 22003 - 11905: 0xE0C8, - 22004 - 11905: 0x86F3, - 22005 - 11905: 0xE0CC, - 22006 - 11905: 0x86F4, - 22007 - 11905: 0xE0BB, - 22008 - 11905: 0x86F5, - 22009 - 11905: 0x86F6, - 22010 - 11905: 0x86F7, - 22011 - 11905: 0x86F8, - 22012 - 11905: 0x86F9, - 22013 - 11905: 0xCBD4, - 22014 - 11905: 0xE0D5, - 22015 - 11905: 0x86FA, - 22016 - 11905: 0xE0D6, - 22017 - 11905: 0xE0D2, - 22018 - 11905: 0x86FB, - 22019 - 11905: 0x86FC, - 22020 - 11905: 0x86FD, - 22021 - 11905: 0x86FE, - 22022 - 11905: 0x8740, - 22023 - 11905: 0x8741, - 22024 - 11905: 0xE0D0, - 22025 - 11905: 0xBCCE, - 22026 - 11905: 0x8742, - 22027 - 11905: 0x8743, - 22028 - 11905: 0xE0D1, - 22029 - 11905: 0x8744, - 22030 - 11905: 0xB8C2, - 22031 - 11905: 0xD8C5, - 22032 - 11905: 0x8745, - 22033 - 11905: 0x8746, - 22034 - 11905: 0x8747, - 22035 - 11905: 0x8748, - 22036 - 11905: 0x8749, - 22037 - 11905: 0x874A, - 22038 - 11905: 0x874B, - 22039 - 11905: 0x874C, - 22040 - 11905: 0xD0EA, - 22041 - 11905: 0x874D, - 22042 - 11905: 0x874E, - 22043 - 11905: 0xC2EF, - 22044 - 11905: 0x874F, - 22045 - 11905: 0x8750, - 22046 - 11905: 0xE0CF, - 22047 - 11905: 0xE0BD, - 22048 - 11905: 0x8751, - 22049 - 11905: 0x8752, - 22050 - 11905: 0x8753, - 22051 - 11905: 0xE0D4, - 22052 - 11905: 0xE0D3, - 22053 - 11905: 0x8754, - 22054 - 11905: 0x8755, - 22055 - 11905: 0xE0D7, - 22056 - 11905: 0x8756, - 22057 - 11905: 0x8757, - 22058 - 11905: 0x8758, - 22059 - 11905: 0x8759, - 22060 - 11905: 0xE0DC, - 22061 - 11905: 0xE0D8, - 22062 - 11905: 0x875A, - 22063 - 11905: 0x875B, - 22064 - 11905: 0x875C, - 22065 - 11905: 0xD6F6, - 22066 - 11905: 0xB3B0, - 22067 - 11905: 0x875D, - 22068 - 11905: 0xD7EC, - 22069 - 11905: 0x875E, - 22070 - 11905: 0xCBBB, - 22071 - 11905: 0x875F, - 22072 - 11905: 0x8760, - 22073 - 11905: 0xE0DA, - 22074 - 11905: 0x8761, - 22075 - 11905: 0xCEFB, - 22076 - 11905: 0x8762, - 22077 - 11905: 0x8763, - 22078 - 11905: 0x8764, - 22079 - 11905: 0xBAD9, - 22080 - 11905: 0x8765, - 22081 - 11905: 0x8766, - 22082 - 11905: 0x8767, - 22083 - 11905: 0x8768, - 22084 - 11905: 0x8769, - 22085 - 11905: 0x876A, - 22086 - 11905: 0x876B, - 22087 - 11905: 0x876C, - 22088 - 11905: 0x876D, - 22089 - 11905: 0x876E, - 22090 - 11905: 0x876F, - 22091 - 11905: 0x8770, - 22092 - 11905: 0xE0E1, - 22093 - 11905: 0xE0DD, - 22094 - 11905: 0xD2AD, - 22095 - 11905: 0x8771, - 22096 - 11905: 0x8772, - 22097 - 11905: 0x8773, - 22098 - 11905: 0x8774, - 22099 - 11905: 0x8775, - 22100 - 11905: 0xE0E2, - 22101 - 11905: 0x8776, - 22102 - 11905: 0x8777, - 22103 - 11905: 0xE0DB, - 22104 - 11905: 0xE0D9, - 22105 - 11905: 0xE0DF, - 22106 - 11905: 0x8778, - 22107 - 11905: 0x8779, - 22108 - 11905: 0xE0E0, - 22109 - 11905: 0x877A, - 22110 - 11905: 0x877B, - 22111 - 11905: 0x877C, - 22112 - 11905: 0x877D, - 22113 - 11905: 0x877E, - 22114 - 11905: 0xE0DE, - 22115 - 11905: 0x8780, - 22116 - 11905: 0xE0E4, - 22117 - 11905: 0x8781, - 22118 - 11905: 0x8782, - 22119 - 11905: 0x8783, - 22120 - 11905: 0xC6F7, - 22121 - 11905: 0xD8AC, - 22122 - 11905: 0xD4EB, - 22123 - 11905: 0xE0E6, - 22124 - 11905: 0xCAC9, - 22125 - 11905: 0x8784, - 22126 - 11905: 0x8785, - 22127 - 11905: 0x8786, - 22128 - 11905: 0x8787, - 22129 - 11905: 0xE0E5, - 22130 - 11905: 0x8788, - 22131 - 11905: 0x8789, - 22132 - 11905: 0x878A, - 22133 - 11905: 0x878B, - 22134 - 11905: 0xB8C1, - 22135 - 11905: 0x878C, - 22136 - 11905: 0x878D, - 22137 - 11905: 0x878E, - 22138 - 11905: 0x878F, - 22139 - 11905: 0xE0E7, - 22140 - 11905: 0xE0E8, - 22141 - 11905: 0x8790, - 22142 - 11905: 0x8791, - 22143 - 11905: 0x8792, - 22144 - 11905: 0x8793, - 22145 - 11905: 0x8794, - 22146 - 11905: 0x8795, - 22147 - 11905: 0x8796, - 22148 - 11905: 0x8797, - 22149 - 11905: 0xE0E9, - 22150 - 11905: 0xE0E3, - 22151 - 11905: 0x8798, - 22152 - 11905: 0x8799, - 22153 - 11905: 0x879A, - 22154 - 11905: 0x879B, - 22155 - 11905: 0x879C, - 22156 - 11905: 0x879D, - 22157 - 11905: 0x879E, - 22158 - 11905: 0xBABF, - 22159 - 11905: 0xCCE7, - 22160 - 11905: 0x879F, - 22161 - 11905: 0x87A0, - 22162 - 11905: 0x87A1, - 22163 - 11905: 0xE0EA, - 22164 - 11905: 0x87A2, - 22165 - 11905: 0x87A3, - 22166 - 11905: 0x87A4, - 22167 - 11905: 0x87A5, - 22168 - 11905: 0x87A6, - 22169 - 11905: 0x87A7, - 22170 - 11905: 0x87A8, - 22171 - 11905: 0x87A9, - 22172 - 11905: 0x87AA, - 22173 - 11905: 0x87AB, - 22174 - 11905: 0x87AC, - 22175 - 11905: 0x87AD, - 22176 - 11905: 0x87AE, - 22177 - 11905: 0x87AF, - 22178 - 11905: 0x87B0, - 22179 - 11905: 0xCFF9, - 22180 - 11905: 0x87B1, - 22181 - 11905: 0x87B2, - 22182 - 11905: 0x87B3, - 22183 - 11905: 0x87B4, - 22184 - 11905: 0x87B5, - 22185 - 11905: 0x87B6, - 22186 - 11905: 0x87B7, - 22187 - 11905: 0x87B8, - 22188 - 11905: 0x87B9, - 22189 - 11905: 0x87BA, - 22190 - 11905: 0x87BB, - 22191 - 11905: 0xE0EB, - 22192 - 11905: 0x87BC, - 22193 - 11905: 0x87BD, - 22194 - 11905: 0x87BE, - 22195 - 11905: 0x87BF, - 22196 - 11905: 0x87C0, - 22197 - 11905: 0x87C1, - 22198 - 11905: 0x87C2, - 22199 - 11905: 0xC8C2, - 22200 - 11905: 0x87C3, - 22201 - 11905: 0x87C4, - 22202 - 11905: 0x87C5, - 22203 - 11905: 0x87C6, - 22204 - 11905: 0xBDC0, - 22205 - 11905: 0x87C7, - 22206 - 11905: 0x87C8, - 22207 - 11905: 0x87C9, - 22208 - 11905: 0x87CA, - 22209 - 11905: 0x87CB, - 22210 - 11905: 0x87CC, - 22211 - 11905: 0x87CD, - 22212 - 11905: 0x87CE, - 22213 - 11905: 0x87CF, - 22214 - 11905: 0x87D0, - 22215 - 11905: 0x87D1, - 22216 - 11905: 0x87D2, - 22217 - 11905: 0x87D3, - 22218 - 11905: 0xC4D2, - 22219 - 11905: 0x87D4, - 22220 - 11905: 0x87D5, - 22221 - 11905: 0x87D6, - 22222 - 11905: 0x87D7, - 22223 - 11905: 0x87D8, - 22224 - 11905: 0x87D9, - 22225 - 11905: 0x87DA, - 22226 - 11905: 0x87DB, - 22227 - 11905: 0x87DC, - 22228 - 11905: 0xE0EC, - 22229 - 11905: 0x87DD, - 22230 - 11905: 0x87DE, - 22231 - 11905: 0xE0ED, - 22232 - 11905: 0x87DF, - 22233 - 11905: 0x87E0, - 22234 - 11905: 0xC7F4, - 22235 - 11905: 0xCBC4, - 22236 - 11905: 0x87E1, - 22237 - 11905: 0xE0EE, - 22238 - 11905: 0xBBD8, - 22239 - 11905: 0xD8B6, - 22240 - 11905: 0xD2F2, - 22241 - 11905: 0xE0EF, - 22242 - 11905: 0xCDC5, - 22243 - 11905: 0x87E2, - 22244 - 11905: 0xB6DA, - 22245 - 11905: 0x87E3, - 22246 - 11905: 0x87E4, - 22247 - 11905: 0x87E5, - 22248 - 11905: 0x87E6, - 22249 - 11905: 0x87E7, - 22250 - 11905: 0x87E8, - 22251 - 11905: 0xE0F1, - 22252 - 11905: 0x87E9, - 22253 - 11905: 0xD4B0, - 22254 - 11905: 0x87EA, - 22255 - 11905: 0x87EB, - 22256 - 11905: 0xC0A7, - 22257 - 11905: 0xB4D1, - 22258 - 11905: 0x87EC, - 22259 - 11905: 0x87ED, - 22260 - 11905: 0xCEA7, - 22261 - 11905: 0xE0F0, - 22262 - 11905: 0x87EE, - 22263 - 11905: 0x87EF, - 22264 - 11905: 0x87F0, - 22265 - 11905: 0xE0F2, - 22266 - 11905: 0xB9CC, - 22267 - 11905: 0x87F1, - 22268 - 11905: 0x87F2, - 22269 - 11905: 0xB9FA, - 22270 - 11905: 0xCDBC, - 22271 - 11905: 0xE0F3, - 22272 - 11905: 0x87F3, - 22273 - 11905: 0x87F4, - 22274 - 11905: 0x87F5, - 22275 - 11905: 0xC6D4, - 22276 - 11905: 0xE0F4, - 22277 - 11905: 0x87F6, - 22278 - 11905: 0xD4B2, - 22279 - 11905: 0x87F7, - 22280 - 11905: 0xC8A6, - 22281 - 11905: 0xE0F6, - 22282 - 11905: 0xE0F5, - 22283 - 11905: 0x87F8, - 22284 - 11905: 0x87F9, - 22285 - 11905: 0x87FA, - 22286 - 11905: 0x87FB, - 22287 - 11905: 0x87FC, - 22288 - 11905: 0x87FD, - 22289 - 11905: 0x87FE, - 22290 - 11905: 0x8840, - 22291 - 11905: 0x8841, - 22292 - 11905: 0x8842, - 22293 - 11905: 0x8843, - 22294 - 11905: 0x8844, - 22295 - 11905: 0x8845, - 22296 - 11905: 0x8846, - 22297 - 11905: 0x8847, - 22298 - 11905: 0x8848, - 22299 - 11905: 0x8849, - 22300 - 11905: 0xE0F7, - 22301 - 11905: 0x884A, - 22302 - 11905: 0x884B, - 22303 - 11905: 0xCDC1, - 22304 - 11905: 0x884C, - 22305 - 11905: 0x884D, - 22306 - 11905: 0x884E, - 22307 - 11905: 0xCAA5, - 22308 - 11905: 0x884F, - 22309 - 11905: 0x8850, - 22310 - 11905: 0x8851, - 22311 - 11905: 0x8852, - 22312 - 11905: 0xD4DA, - 22313 - 11905: 0xDBD7, - 22314 - 11905: 0xDBD9, - 22315 - 11905: 0x8853, - 22316 - 11905: 0xDBD8, - 22317 - 11905: 0xB9E7, - 22318 - 11905: 0xDBDC, - 22319 - 11905: 0xDBDD, - 22320 - 11905: 0xB5D8, - 22321 - 11905: 0x8854, - 22322 - 11905: 0x8855, - 22323 - 11905: 0xDBDA, - 22324 - 11905: 0x8856, - 22325 - 11905: 0x8857, - 22326 - 11905: 0x8858, - 22327 - 11905: 0x8859, - 22328 - 11905: 0x885A, - 22329 - 11905: 0xDBDB, - 22330 - 11905: 0xB3A1, - 22331 - 11905: 0xDBDF, - 22332 - 11905: 0x885B, - 22333 - 11905: 0x885C, - 22334 - 11905: 0xBBF8, - 22335 - 11905: 0x885D, - 22336 - 11905: 0xD6B7, - 22337 - 11905: 0x885E, - 22338 - 11905: 0xDBE0, - 22339 - 11905: 0x885F, - 22340 - 11905: 0x8860, - 22341 - 11905: 0x8861, - 22342 - 11905: 0x8862, - 22343 - 11905: 0xBEF9, - 22344 - 11905: 0x8863, - 22345 - 11905: 0x8864, - 22346 - 11905: 0xB7BB, - 22347 - 11905: 0x8865, - 22348 - 11905: 0xDBD0, - 22349 - 11905: 0xCCAE, - 22350 - 11905: 0xBFB2, - 22351 - 11905: 0xBBB5, - 22352 - 11905: 0xD7F8, - 22353 - 11905: 0xBFD3, - 22354 - 11905: 0x8866, - 22355 - 11905: 0x8867, - 22356 - 11905: 0x8868, - 22357 - 11905: 0x8869, - 22358 - 11905: 0x886A, - 22359 - 11905: 0xBFE9, - 22360 - 11905: 0x886B, - 22361 - 11905: 0x886C, - 22362 - 11905: 0xBCE1, - 22363 - 11905: 0xCCB3, - 22364 - 11905: 0xDBDE, - 22365 - 11905: 0xB0D3, - 22366 - 11905: 0xCEEB, - 22367 - 11905: 0xB7D8, - 22368 - 11905: 0xD7B9, - 22369 - 11905: 0xC6C2, - 22370 - 11905: 0x886D, - 22371 - 11905: 0x886E, - 22372 - 11905: 0xC0A4, - 22373 - 11905: 0x886F, - 22374 - 11905: 0xCCB9, - 22375 - 11905: 0x8870, - 22376 - 11905: 0xDBE7, - 22377 - 11905: 0xDBE1, - 22378 - 11905: 0xC6BA, - 22379 - 11905: 0xDBE3, - 22380 - 11905: 0x8871, - 22381 - 11905: 0xDBE8, - 22382 - 11905: 0x8872, - 22383 - 11905: 0xC5F7, - 22384 - 11905: 0x8873, - 22385 - 11905: 0x8874, - 22386 - 11905: 0x8875, - 22387 - 11905: 0xDBEA, - 22388 - 11905: 0x8876, - 22389 - 11905: 0x8877, - 22390 - 11905: 0xDBE9, - 22391 - 11905: 0xBFC0, - 22392 - 11905: 0x8878, - 22393 - 11905: 0x8879, - 22394 - 11905: 0x887A, - 22395 - 11905: 0xDBE6, - 22396 - 11905: 0xDBE5, - 22397 - 11905: 0x887B, - 22398 - 11905: 0x887C, - 22399 - 11905: 0x887D, - 22400 - 11905: 0x887E, - 22401 - 11905: 0x8880, - 22402 - 11905: 0xB4B9, - 22403 - 11905: 0xC0AC, - 22404 - 11905: 0xC2A2, - 22405 - 11905: 0xDBE2, - 22406 - 11905: 0xDBE4, - 22407 - 11905: 0x8881, - 22408 - 11905: 0x8882, - 22409 - 11905: 0x8883, - 22410 - 11905: 0x8884, - 22411 - 11905: 0xD0CD, - 22412 - 11905: 0xDBED, - 22413 - 11905: 0x8885, - 22414 - 11905: 0x8886, - 22415 - 11905: 0x8887, - 22416 - 11905: 0x8888, - 22417 - 11905: 0x8889, - 22418 - 11905: 0xC0DD, - 22419 - 11905: 0xDBF2, - 22420 - 11905: 0x888A, - 22421 - 11905: 0x888B, - 22422 - 11905: 0x888C, - 22423 - 11905: 0x888D, - 22424 - 11905: 0x888E, - 22425 - 11905: 0x888F, - 22426 - 11905: 0x8890, - 22427 - 11905: 0xB6E2, - 22428 - 11905: 0x8891, - 22429 - 11905: 0x8892, - 22430 - 11905: 0x8893, - 22431 - 11905: 0x8894, - 22432 - 11905: 0xDBF3, - 22433 - 11905: 0xDBD2, - 22434 - 11905: 0xB9B8, - 22435 - 11905: 0xD4AB, - 22436 - 11905: 0xDBEC, - 22437 - 11905: 0x8895, - 22438 - 11905: 0xBFD1, - 22439 - 11905: 0xDBF0, - 22440 - 11905: 0x8896, - 22441 - 11905: 0xDBD1, - 22442 - 11905: 0x8897, - 22443 - 11905: 0xB5E6, - 22444 - 11905: 0x8898, - 22445 - 11905: 0xDBEB, - 22446 - 11905: 0xBFE5, - 22447 - 11905: 0x8899, - 22448 - 11905: 0x889A, - 22449 - 11905: 0x889B, - 22450 - 11905: 0xDBEE, - 22451 - 11905: 0x889C, - 22452 - 11905: 0xDBF1, - 22453 - 11905: 0x889D, - 22454 - 11905: 0x889E, - 22455 - 11905: 0x889F, - 22456 - 11905: 0xDBF9, - 22457 - 11905: 0x88A0, - 22458 - 11905: 0x88A1, - 22459 - 11905: 0x88A2, - 22460 - 11905: 0x88A3, - 22461 - 11905: 0x88A4, - 22462 - 11905: 0x88A5, - 22463 - 11905: 0x88A6, - 22464 - 11905: 0x88A7, - 22465 - 11905: 0x88A8, - 22466 - 11905: 0xB9A1, - 22467 - 11905: 0xB0A3, - 22468 - 11905: 0x88A9, - 22469 - 11905: 0x88AA, - 22470 - 11905: 0x88AB, - 22471 - 11905: 0x88AC, - 22472 - 11905: 0x88AD, - 22473 - 11905: 0x88AE, - 22474 - 11905: 0x88AF, - 22475 - 11905: 0xC2F1, - 22476 - 11905: 0x88B0, - 22477 - 11905: 0x88B1, - 22478 - 11905: 0xB3C7, - 22479 - 11905: 0xDBEF, - 22480 - 11905: 0x88B2, - 22481 - 11905: 0x88B3, - 22482 - 11905: 0xDBF8, - 22483 - 11905: 0x88B4, - 22484 - 11905: 0xC6D2, - 22485 - 11905: 0xDBF4, - 22486 - 11905: 0x88B5, - 22487 - 11905: 0x88B6, - 22488 - 11905: 0xDBF5, - 22489 - 11905: 0xDBF7, - 22490 - 11905: 0xDBF6, - 22491 - 11905: 0x88B7, - 22492 - 11905: 0x88B8, - 22493 - 11905: 0xDBFE, - 22494 - 11905: 0x88B9, - 22495 - 11905: 0xD3F2, - 22496 - 11905: 0xB2BA, - 22497 - 11905: 0x88BA, - 22498 - 11905: 0x88BB, - 22499 - 11905: 0x88BC, - 22500 - 11905: 0xDBFD, - 22501 - 11905: 0x88BD, - 22502 - 11905: 0x88BE, - 22503 - 11905: 0x88BF, - 22504 - 11905: 0x88C0, - 22505 - 11905: 0x88C1, - 22506 - 11905: 0x88C2, - 22507 - 11905: 0x88C3, - 22508 - 11905: 0x88C4, - 22509 - 11905: 0xDCA4, - 22510 - 11905: 0x88C5, - 22511 - 11905: 0xDBFB, - 22512 - 11905: 0x88C6, - 22513 - 11905: 0x88C7, - 22514 - 11905: 0x88C8, - 22515 - 11905: 0x88C9, - 22516 - 11905: 0xDBFA, - 22517 - 11905: 0x88CA, - 22518 - 11905: 0x88CB, - 22519 - 11905: 0x88CC, - 22520 - 11905: 0xDBFC, - 22521 - 11905: 0xC5E0, - 22522 - 11905: 0xBBF9, - 22523 - 11905: 0x88CD, - 22524 - 11905: 0x88CE, - 22525 - 11905: 0xDCA3, - 22526 - 11905: 0x88CF, - 22527 - 11905: 0x88D0, - 22528 - 11905: 0xDCA5, - 22529 - 11905: 0x88D1, - 22530 - 11905: 0xCCC3, - 22531 - 11905: 0x88D2, - 22532 - 11905: 0x88D3, - 22533 - 11905: 0x88D4, - 22534 - 11905: 0xB6D1, - 22535 - 11905: 0xDDC0, - 22536 - 11905: 0x88D5, - 22537 - 11905: 0x88D6, - 22538 - 11905: 0x88D7, - 22539 - 11905: 0xDCA1, - 22540 - 11905: 0x88D8, - 22541 - 11905: 0xDCA2, - 22542 - 11905: 0x88D9, - 22543 - 11905: 0x88DA, - 22544 - 11905: 0x88DB, - 22545 - 11905: 0xC7B5, - 22546 - 11905: 0x88DC, - 22547 - 11905: 0x88DD, - 22548 - 11905: 0x88DE, - 22549 - 11905: 0xB6E9, - 22550 - 11905: 0x88DF, - 22551 - 11905: 0x88E0, - 22552 - 11905: 0x88E1, - 22553 - 11905: 0xDCA7, - 22554 - 11905: 0x88E2, - 22555 - 11905: 0x88E3, - 22556 - 11905: 0x88E4, - 22557 - 11905: 0x88E5, - 22558 - 11905: 0xDCA6, - 22559 - 11905: 0x88E6, - 22560 - 11905: 0xDCA9, - 22561 - 11905: 0xB1A4, - 22562 - 11905: 0x88E7, - 22563 - 11905: 0x88E8, - 22564 - 11905: 0xB5CC, - 22565 - 11905: 0x88E9, - 22566 - 11905: 0x88EA, - 22567 - 11905: 0x88EB, - 22568 - 11905: 0x88EC, - 22569 - 11905: 0x88ED, - 22570 - 11905: 0xBFB0, - 22571 - 11905: 0x88EE, - 22572 - 11905: 0x88EF, - 22573 - 11905: 0x88F0, - 22574 - 11905: 0x88F1, - 22575 - 11905: 0x88F2, - 22576 - 11905: 0xD1DF, - 22577 - 11905: 0x88F3, - 22578 - 11905: 0x88F4, - 22579 - 11905: 0x88F5, - 22580 - 11905: 0x88F6, - 22581 - 11905: 0xB6C2, - 22582 - 11905: 0x88F7, - 22583 - 11905: 0x88F8, - 22584 - 11905: 0x88F9, - 22585 - 11905: 0x88FA, - 22586 - 11905: 0x88FB, - 22587 - 11905: 0x88FC, - 22588 - 11905: 0x88FD, - 22589 - 11905: 0x88FE, - 22590 - 11905: 0x8940, - 22591 - 11905: 0x8941, - 22592 - 11905: 0x8942, - 22593 - 11905: 0x8943, - 22594 - 11905: 0x8944, - 22595 - 11905: 0x8945, - 22596 - 11905: 0xDCA8, - 22597 - 11905: 0x8946, - 22598 - 11905: 0x8947, - 22599 - 11905: 0x8948, - 22600 - 11905: 0x8949, - 22601 - 11905: 0x894A, - 22602 - 11905: 0x894B, - 22603 - 11905: 0x894C, - 22604 - 11905: 0xCBFA, - 22605 - 11905: 0xEBF3, - 22606 - 11905: 0x894D, - 22607 - 11905: 0x894E, - 22608 - 11905: 0x894F, - 22609 - 11905: 0xCBDC, - 22610 - 11905: 0x8950, - 22611 - 11905: 0x8951, - 22612 - 11905: 0xCBFE, - 22613 - 11905: 0x8952, - 22614 - 11905: 0x8953, - 22615 - 11905: 0x8954, - 22616 - 11905: 0xCCC1, - 22617 - 11905: 0x8955, - 22618 - 11905: 0x8956, - 22619 - 11905: 0x8957, - 22620 - 11905: 0x8958, - 22621 - 11905: 0x8959, - 22622 - 11905: 0xC8FB, - 22623 - 11905: 0x895A, - 22624 - 11905: 0x895B, - 22625 - 11905: 0x895C, - 22626 - 11905: 0x895D, - 22627 - 11905: 0x895E, - 22628 - 11905: 0x895F, - 22629 - 11905: 0xDCAA, - 22630 - 11905: 0x8960, - 22631 - 11905: 0x8961, - 22632 - 11905: 0x8962, - 22633 - 11905: 0x8963, - 22634 - 11905: 0x8964, - 22635 - 11905: 0xCCEE, - 22636 - 11905: 0xDCAB, - 22637 - 11905: 0x8965, - 22638 - 11905: 0x8966, - 22639 - 11905: 0x8967, - 22640 - 11905: 0x8968, - 22641 - 11905: 0x8969, - 22642 - 11905: 0x896A, - 22643 - 11905: 0x896B, - 22644 - 11905: 0x896C, - 22645 - 11905: 0x896D, - 22646 - 11905: 0x896E, - 22647 - 11905: 0x896F, - 22648 - 11905: 0x8970, - 22649 - 11905: 0x8971, - 22650 - 11905: 0x8972, - 22651 - 11905: 0x8973, - 22652 - 11905: 0x8974, - 22653 - 11905: 0x8975, - 22654 - 11905: 0xDBD3, - 22655 - 11905: 0x8976, - 22656 - 11905: 0xDCAF, - 22657 - 11905: 0xDCAC, - 22658 - 11905: 0x8977, - 22659 - 11905: 0xBEB3, - 22660 - 11905: 0x8978, - 22661 - 11905: 0xCAFB, - 22662 - 11905: 0x8979, - 22663 - 11905: 0x897A, - 22664 - 11905: 0x897B, - 22665 - 11905: 0xDCAD, - 22666 - 11905: 0x897C, - 22667 - 11905: 0x897D, - 22668 - 11905: 0x897E, - 22669 - 11905: 0x8980, - 22670 - 11905: 0x8981, - 22671 - 11905: 0x8982, - 22672 - 11905: 0x8983, - 22673 - 11905: 0x8984, - 22674 - 11905: 0xC9CA, - 22675 - 11905: 0xC4B9, - 22676 - 11905: 0x8985, - 22677 - 11905: 0x8986, - 22678 - 11905: 0x8987, - 22679 - 11905: 0x8988, - 22680 - 11905: 0x8989, - 22681 - 11905: 0xC7BD, - 22682 - 11905: 0xDCAE, - 22683 - 11905: 0x898A, - 22684 - 11905: 0x898B, - 22685 - 11905: 0x898C, - 22686 - 11905: 0xD4F6, - 22687 - 11905: 0xD0E6, - 22688 - 11905: 0x898D, - 22689 - 11905: 0x898E, - 22690 - 11905: 0x898F, - 22691 - 11905: 0x8990, - 22692 - 11905: 0x8991, - 22693 - 11905: 0x8992, - 22694 - 11905: 0x8993, - 22695 - 11905: 0x8994, - 22696 - 11905: 0xC4AB, - 22697 - 11905: 0xB6D5, - 22698 - 11905: 0x8995, - 22699 - 11905: 0x8996, - 22700 - 11905: 0x8997, - 22701 - 11905: 0x8998, - 22702 - 11905: 0x8999, - 22703 - 11905: 0x899A, - 22704 - 11905: 0x899B, - 22705 - 11905: 0x899C, - 22706 - 11905: 0x899D, - 22707 - 11905: 0x899E, - 22708 - 11905: 0x899F, - 22709 - 11905: 0x89A0, - 22710 - 11905: 0x89A1, - 22711 - 11905: 0x89A2, - 22712 - 11905: 0x89A3, - 22713 - 11905: 0x89A4, - 22714 - 11905: 0x89A5, - 22715 - 11905: 0x89A6, - 22716 - 11905: 0xDBD4, - 22717 - 11905: 0x89A7, - 22718 - 11905: 0x89A8, - 22719 - 11905: 0x89A9, - 22720 - 11905: 0x89AA, - 22721 - 11905: 0xB1DA, - 22722 - 11905: 0x89AB, - 22723 - 11905: 0x89AC, - 22724 - 11905: 0x89AD, - 22725 - 11905: 0xDBD5, - 22726 - 11905: 0x89AE, - 22727 - 11905: 0x89AF, - 22728 - 11905: 0x89B0, - 22729 - 11905: 0x89B1, - 22730 - 11905: 0x89B2, - 22731 - 11905: 0x89B3, - 22732 - 11905: 0x89B4, - 22733 - 11905: 0x89B5, - 22734 - 11905: 0x89B6, - 22735 - 11905: 0x89B7, - 22736 - 11905: 0x89B8, - 22737 - 11905: 0xDBD6, - 22738 - 11905: 0x89B9, - 22739 - 11905: 0x89BA, - 22740 - 11905: 0x89BB, - 22741 - 11905: 0xBABE, - 22742 - 11905: 0x89BC, - 22743 - 11905: 0x89BD, - 22744 - 11905: 0x89BE, - 22745 - 11905: 0x89BF, - 22746 - 11905: 0x89C0, - 22747 - 11905: 0x89C1, - 22748 - 11905: 0x89C2, - 22749 - 11905: 0x89C3, - 22750 - 11905: 0x89C4, - 22751 - 11905: 0x89C5, - 22752 - 11905: 0x89C6, - 22753 - 11905: 0x89C7, - 22754 - 11905: 0x89C8, - 22755 - 11905: 0x89C9, - 22756 - 11905: 0xC8C0, - 22757 - 11905: 0x89CA, - 22758 - 11905: 0x89CB, - 22759 - 11905: 0x89CC, - 22760 - 11905: 0x89CD, - 22761 - 11905: 0x89CE, - 22762 - 11905: 0x89CF, - 22763 - 11905: 0xCABF, - 22764 - 11905: 0xC8C9, - 22765 - 11905: 0x89D0, - 22766 - 11905: 0xD7B3, - 22767 - 11905: 0x89D1, - 22768 - 11905: 0xC9F9, - 22769 - 11905: 0x89D2, - 22770 - 11905: 0x89D3, - 22771 - 11905: 0xBFC7, - 22772 - 11905: 0x89D4, - 22773 - 11905: 0x89D5, - 22774 - 11905: 0xBAF8, - 22775 - 11905: 0x89D6, - 22776 - 11905: 0x89D7, - 22777 - 11905: 0xD2BC, - 22778 - 11905: 0x89D8, - 22779 - 11905: 0x89D9, - 22780 - 11905: 0x89DA, - 22781 - 11905: 0x89DB, - 22782 - 11905: 0x89DC, - 22783 - 11905: 0x89DD, - 22784 - 11905: 0x89DE, - 22785 - 11905: 0x89DF, - 22786 - 11905: 0xE2BA, - 22787 - 11905: 0x89E0, - 22788 - 11905: 0xB4A6, - 22789 - 11905: 0x89E1, - 22790 - 11905: 0x89E2, - 22791 - 11905: 0xB1B8, - 22792 - 11905: 0x89E3, - 22793 - 11905: 0x89E4, - 22794 - 11905: 0x89E5, - 22795 - 11905: 0x89E6, - 22796 - 11905: 0x89E7, - 22797 - 11905: 0xB8B4, - 22798 - 11905: 0x89E8, - 22799 - 11905: 0xCFC4, - 22800 - 11905: 0x89E9, - 22801 - 11905: 0x89EA, - 22802 - 11905: 0x89EB, - 22803 - 11905: 0x89EC, - 22804 - 11905: 0xD9E7, - 22805 - 11905: 0xCFA6, - 22806 - 11905: 0xCDE2, - 22807 - 11905: 0x89ED, - 22808 - 11905: 0x89EE, - 22809 - 11905: 0xD9ED, - 22810 - 11905: 0xB6E0, - 22811 - 11905: 0x89EF, - 22812 - 11905: 0xD2B9, - 22813 - 11905: 0x89F0, - 22814 - 11905: 0x89F1, - 22815 - 11905: 0xB9BB, - 22816 - 11905: 0x89F2, - 22817 - 11905: 0x89F3, - 22818 - 11905: 0x89F4, - 22819 - 11905: 0x89F5, - 22820 - 11905: 0xE2B9, - 22821 - 11905: 0xE2B7, - 22822 - 11905: 0x89F6, - 22823 - 11905: 0xB4F3, - 22824 - 11905: 0x89F7, - 22825 - 11905: 0xCCEC, - 22826 - 11905: 0xCCAB, - 22827 - 11905: 0xB7F2, - 22828 - 11905: 0x89F8, - 22829 - 11905: 0xD8B2, - 22830 - 11905: 0xD1EB, - 22831 - 11905: 0xBABB, - 22832 - 11905: 0x89F9, - 22833 - 11905: 0xCAA7, - 22834 - 11905: 0x89FA, - 22835 - 11905: 0x89FB, - 22836 - 11905: 0xCDB7, - 22837 - 11905: 0x89FC, - 22838 - 11905: 0x89FD, - 22839 - 11905: 0xD2C4, - 22840 - 11905: 0xBFE4, - 22841 - 11905: 0xBCD0, - 22842 - 11905: 0xB6E1, - 22843 - 11905: 0x89FE, - 22844 - 11905: 0xDEC5, - 22845 - 11905: 0x8A40, - 22846 - 11905: 0x8A41, - 22847 - 11905: 0x8A42, - 22848 - 11905: 0x8A43, - 22849 - 11905: 0xDEC6, - 22850 - 11905: 0xDBBC, - 22851 - 11905: 0x8A44, - 22852 - 11905: 0xD1D9, - 22853 - 11905: 0x8A45, - 22854 - 11905: 0x8A46, - 22855 - 11905: 0xC6E6, - 22856 - 11905: 0xC4CE, - 22857 - 11905: 0xB7EE, - 22858 - 11905: 0x8A47, - 22859 - 11905: 0xB7DC, - 22860 - 11905: 0x8A48, - 22861 - 11905: 0x8A49, - 22862 - 11905: 0xBFFC, - 22863 - 11905: 0xD7E0, - 22864 - 11905: 0x8A4A, - 22865 - 11905: 0xC6F5, - 22866 - 11905: 0x8A4B, - 22867 - 11905: 0x8A4C, - 22868 - 11905: 0xB1BC, - 22869 - 11905: 0xDEC8, - 22870 - 11905: 0xBDB1, - 22871 - 11905: 0xCCD7, - 22872 - 11905: 0xDECA, - 22873 - 11905: 0x8A4D, - 22874 - 11905: 0xDEC9, - 22875 - 11905: 0x8A4E, - 22876 - 11905: 0x8A4F, - 22877 - 11905: 0x8A50, - 22878 - 11905: 0x8A51, - 22879 - 11905: 0x8A52, - 22880 - 11905: 0xB5EC, - 22881 - 11905: 0x8A53, - 22882 - 11905: 0xC9DD, - 22883 - 11905: 0x8A54, - 22884 - 11905: 0x8A55, - 22885 - 11905: 0xB0C2, - 22886 - 11905: 0x8A56, - 22887 - 11905: 0x8A57, - 22888 - 11905: 0x8A58, - 22889 - 11905: 0x8A59, - 22890 - 11905: 0x8A5A, - 22891 - 11905: 0x8A5B, - 22892 - 11905: 0x8A5C, - 22893 - 11905: 0x8A5D, - 22894 - 11905: 0x8A5E, - 22895 - 11905: 0x8A5F, - 22896 - 11905: 0x8A60, - 22897 - 11905: 0x8A61, - 22898 - 11905: 0x8A62, - 22899 - 11905: 0xC5AE, - 22900 - 11905: 0xC5AB, - 22901 - 11905: 0x8A63, - 22902 - 11905: 0xC4CC, - 22903 - 11905: 0x8A64, - 22904 - 11905: 0xBCE9, - 22905 - 11905: 0xCBFD, - 22906 - 11905: 0x8A65, - 22907 - 11905: 0x8A66, - 22908 - 11905: 0x8A67, - 22909 - 11905: 0xBAC3, - 22910 - 11905: 0x8A68, - 22911 - 11905: 0x8A69, - 22912 - 11905: 0x8A6A, - 22913 - 11905: 0xE5F9, - 22914 - 11905: 0xC8E7, - 22915 - 11905: 0xE5FA, - 22916 - 11905: 0xCDFD, - 22917 - 11905: 0x8A6B, - 22918 - 11905: 0xD7B1, - 22919 - 11905: 0xB8BE, - 22920 - 11905: 0xC2E8, - 22921 - 11905: 0x8A6C, - 22922 - 11905: 0xC8D1, - 22923 - 11905: 0x8A6D, - 22924 - 11905: 0x8A6E, - 22925 - 11905: 0xE5FB, - 22926 - 11905: 0x8A6F, - 22927 - 11905: 0x8A70, - 22928 - 11905: 0x8A71, - 22929 - 11905: 0x8A72, - 22930 - 11905: 0xB6CA, - 22931 - 11905: 0xBCCB, - 22932 - 11905: 0x8A73, - 22933 - 11905: 0x8A74, - 22934 - 11905: 0xD1FD, - 22935 - 11905: 0xE6A1, - 22936 - 11905: 0x8A75, - 22937 - 11905: 0xC3EE, - 22938 - 11905: 0x8A76, - 22939 - 11905: 0x8A77, - 22940 - 11905: 0x8A78, - 22941 - 11905: 0x8A79, - 22942 - 11905: 0xE6A4, - 22943 - 11905: 0x8A7A, - 22944 - 11905: 0x8A7B, - 22945 - 11905: 0x8A7C, - 22946 - 11905: 0x8A7D, - 22947 - 11905: 0xE5FE, - 22948 - 11905: 0xE6A5, - 22949 - 11905: 0xCDD7, - 22950 - 11905: 0x8A7E, - 22951 - 11905: 0x8A80, - 22952 - 11905: 0xB7C1, - 22953 - 11905: 0xE5FC, - 22954 - 11905: 0xE5FD, - 22955 - 11905: 0xE6A3, - 22956 - 11905: 0x8A81, - 22957 - 11905: 0x8A82, - 22958 - 11905: 0xC4DD, - 22959 - 11905: 0xE6A8, - 22960 - 11905: 0x8A83, - 22961 - 11905: 0x8A84, - 22962 - 11905: 0xE6A7, - 22963 - 11905: 0x8A85, - 22964 - 11905: 0x8A86, - 22965 - 11905: 0x8A87, - 22966 - 11905: 0x8A88, - 22967 - 11905: 0x8A89, - 22968 - 11905: 0x8A8A, - 22969 - 11905: 0xC3C3, - 22970 - 11905: 0x8A8B, - 22971 - 11905: 0xC6DE, - 22972 - 11905: 0x8A8C, - 22973 - 11905: 0x8A8D, - 22974 - 11905: 0xE6AA, - 22975 - 11905: 0x8A8E, - 22976 - 11905: 0x8A8F, - 22977 - 11905: 0x8A90, - 22978 - 11905: 0x8A91, - 22979 - 11905: 0x8A92, - 22980 - 11905: 0x8A93, - 22981 - 11905: 0x8A94, - 22982 - 11905: 0xC4B7, - 22983 - 11905: 0x8A95, - 22984 - 11905: 0x8A96, - 22985 - 11905: 0x8A97, - 22986 - 11905: 0xE6A2, - 22987 - 11905: 0xCABC, - 22988 - 11905: 0x8A98, - 22989 - 11905: 0x8A99, - 22990 - 11905: 0x8A9A, - 22991 - 11905: 0x8A9B, - 22992 - 11905: 0xBDE3, - 22993 - 11905: 0xB9C3, - 22994 - 11905: 0xE6A6, - 22995 - 11905: 0xD0D5, - 22996 - 11905: 0xCEAF, - 22997 - 11905: 0x8A9C, - 22998 - 11905: 0x8A9D, - 22999 - 11905: 0xE6A9, - 23000 - 11905: 0xE6B0, - 23001 - 11905: 0x8A9E, - 23002 - 11905: 0xD2A6, - 23003 - 11905: 0x8A9F, - 23004 - 11905: 0xBDAA, - 23005 - 11905: 0xE6AD, - 23006 - 11905: 0x8AA0, - 23007 - 11905: 0x8AA1, - 23008 - 11905: 0x8AA2, - 23009 - 11905: 0x8AA3, - 23010 - 11905: 0x8AA4, - 23011 - 11905: 0xE6AF, - 23012 - 11905: 0x8AA5, - 23013 - 11905: 0xC0D1, - 23014 - 11905: 0x8AA6, - 23015 - 11905: 0x8AA7, - 23016 - 11905: 0xD2CC, - 23017 - 11905: 0x8AA8, - 23018 - 11905: 0x8AA9, - 23019 - 11905: 0x8AAA, - 23020 - 11905: 0xBCA7, - 23021 - 11905: 0x8AAB, - 23022 - 11905: 0x8AAC, - 23023 - 11905: 0x8AAD, - 23024 - 11905: 0x8AAE, - 23025 - 11905: 0x8AAF, - 23026 - 11905: 0x8AB0, - 23027 - 11905: 0x8AB1, - 23028 - 11905: 0x8AB2, - 23029 - 11905: 0x8AB3, - 23030 - 11905: 0x8AB4, - 23031 - 11905: 0x8AB5, - 23032 - 11905: 0x8AB6, - 23033 - 11905: 0xE6B1, - 23034 - 11905: 0x8AB7, - 23035 - 11905: 0xD2F6, - 23036 - 11905: 0x8AB8, - 23037 - 11905: 0x8AB9, - 23038 - 11905: 0x8ABA, - 23039 - 11905: 0xD7CB, - 23040 - 11905: 0x8ABB, - 23041 - 11905: 0xCDFE, - 23042 - 11905: 0x8ABC, - 23043 - 11905: 0xCDDE, - 23044 - 11905: 0xC2A6, - 23045 - 11905: 0xE6AB, - 23046 - 11905: 0xE6AC, - 23047 - 11905: 0xBDBF, - 23048 - 11905: 0xE6AE, - 23049 - 11905: 0xE6B3, - 23050 - 11905: 0x8ABD, - 23051 - 11905: 0x8ABE, - 23052 - 11905: 0xE6B2, - 23053 - 11905: 0x8ABF, - 23054 - 11905: 0x8AC0, - 23055 - 11905: 0x8AC1, - 23056 - 11905: 0x8AC2, - 23057 - 11905: 0xE6B6, - 23058 - 11905: 0x8AC3, - 23059 - 11905: 0xE6B8, - 23060 - 11905: 0x8AC4, - 23061 - 11905: 0x8AC5, - 23062 - 11905: 0x8AC6, - 23063 - 11905: 0x8AC7, - 23064 - 11905: 0xC4EF, - 23065 - 11905: 0x8AC8, - 23066 - 11905: 0x8AC9, - 23067 - 11905: 0x8ACA, - 23068 - 11905: 0xC4C8, - 23069 - 11905: 0x8ACB, - 23070 - 11905: 0x8ACC, - 23071 - 11905: 0xBEEA, - 23072 - 11905: 0xC9EF, - 23073 - 11905: 0x8ACD, - 23074 - 11905: 0x8ACE, - 23075 - 11905: 0xE6B7, - 23076 - 11905: 0x8ACF, - 23077 - 11905: 0xB6F0, - 23078 - 11905: 0x8AD0, - 23079 - 11905: 0x8AD1, - 23080 - 11905: 0x8AD2, - 23081 - 11905: 0xC3E4, - 23082 - 11905: 0x8AD3, - 23083 - 11905: 0x8AD4, - 23084 - 11905: 0x8AD5, - 23085 - 11905: 0x8AD6, - 23086 - 11905: 0x8AD7, - 23087 - 11905: 0x8AD8, - 23088 - 11905: 0x8AD9, - 23089 - 11905: 0xD3E9, - 23090 - 11905: 0xE6B4, - 23091 - 11905: 0x8ADA, - 23092 - 11905: 0xE6B5, - 23093 - 11905: 0x8ADB, - 23094 - 11905: 0xC8A2, - 23095 - 11905: 0x8ADC, - 23096 - 11905: 0x8ADD, - 23097 - 11905: 0x8ADE, - 23098 - 11905: 0x8ADF, - 23099 - 11905: 0x8AE0, - 23100 - 11905: 0xE6BD, - 23101 - 11905: 0x8AE1, - 23102 - 11905: 0x8AE2, - 23103 - 11905: 0x8AE3, - 23104 - 11905: 0xE6B9, - 23105 - 11905: 0x8AE4, - 23106 - 11905: 0x8AE5, - 23107 - 11905: 0x8AE6, - 23108 - 11905: 0x8AE7, - 23109 - 11905: 0x8AE8, - 23110 - 11905: 0xC6C5, - 23111 - 11905: 0x8AE9, - 23112 - 11905: 0x8AEA, - 23113 - 11905: 0xCDF1, - 23114 - 11905: 0xE6BB, - 23115 - 11905: 0x8AEB, - 23116 - 11905: 0x8AEC, - 23117 - 11905: 0x8AED, - 23118 - 11905: 0x8AEE, - 23119 - 11905: 0x8AEF, - 23120 - 11905: 0x8AF0, - 23121 - 11905: 0x8AF1, - 23122 - 11905: 0x8AF2, - 23123 - 11905: 0x8AF3, - 23124 - 11905: 0x8AF4, - 23125 - 11905: 0xE6BC, - 23126 - 11905: 0x8AF5, - 23127 - 11905: 0x8AF6, - 23128 - 11905: 0x8AF7, - 23129 - 11905: 0x8AF8, - 23130 - 11905: 0xBBE9, - 23131 - 11905: 0x8AF9, - 23132 - 11905: 0x8AFA, - 23133 - 11905: 0x8AFB, - 23134 - 11905: 0x8AFC, - 23135 - 11905: 0x8AFD, - 23136 - 11905: 0x8AFE, - 23137 - 11905: 0x8B40, - 23138 - 11905: 0xE6BE, - 23139 - 11905: 0x8B41, - 23140 - 11905: 0x8B42, - 23141 - 11905: 0x8B43, - 23142 - 11905: 0x8B44, - 23143 - 11905: 0xE6BA, - 23144 - 11905: 0x8B45, - 23145 - 11905: 0x8B46, - 23146 - 11905: 0xC0B7, - 23147 - 11905: 0x8B47, - 23148 - 11905: 0x8B48, - 23149 - 11905: 0x8B49, - 23150 - 11905: 0x8B4A, - 23151 - 11905: 0x8B4B, - 23152 - 11905: 0x8B4C, - 23153 - 11905: 0x8B4D, - 23154 - 11905: 0x8B4E, - 23155 - 11905: 0x8B4F, - 23156 - 11905: 0xD3A4, - 23157 - 11905: 0xE6BF, - 23158 - 11905: 0xC9F4, - 23159 - 11905: 0xE6C3, - 23160 - 11905: 0x8B50, - 23161 - 11905: 0x8B51, - 23162 - 11905: 0xE6C4, - 23163 - 11905: 0x8B52, - 23164 - 11905: 0x8B53, - 23165 - 11905: 0x8B54, - 23166 - 11905: 0x8B55, - 23167 - 11905: 0xD0F6, - 23168 - 11905: 0x8B56, - 23169 - 11905: 0x8B57, - 23170 - 11905: 0x8B58, - 23171 - 11905: 0x8B59, - 23172 - 11905: 0x8B5A, - 23173 - 11905: 0x8B5B, - 23174 - 11905: 0x8B5C, - 23175 - 11905: 0x8B5D, - 23176 - 11905: 0x8B5E, - 23177 - 11905: 0x8B5F, - 23178 - 11905: 0x8B60, - 23179 - 11905: 0x8B61, - 23180 - 11905: 0x8B62, - 23181 - 11905: 0x8B63, - 23182 - 11905: 0x8B64, - 23183 - 11905: 0x8B65, - 23184 - 11905: 0x8B66, - 23185 - 11905: 0x8B67, - 23186 - 11905: 0xC3BD, - 23187 - 11905: 0x8B68, - 23188 - 11905: 0x8B69, - 23189 - 11905: 0x8B6A, - 23190 - 11905: 0x8B6B, - 23191 - 11905: 0x8B6C, - 23192 - 11905: 0x8B6D, - 23193 - 11905: 0x8B6E, - 23194 - 11905: 0xC3C4, - 23195 - 11905: 0xE6C2, - 23196 - 11905: 0x8B6F, - 23197 - 11905: 0x8B70, - 23198 - 11905: 0x8B71, - 23199 - 11905: 0x8B72, - 23200 - 11905: 0x8B73, - 23201 - 11905: 0x8B74, - 23202 - 11905: 0x8B75, - 23203 - 11905: 0x8B76, - 23204 - 11905: 0x8B77, - 23205 - 11905: 0x8B78, - 23206 - 11905: 0x8B79, - 23207 - 11905: 0x8B7A, - 23208 - 11905: 0x8B7B, - 23209 - 11905: 0x8B7C, - 23210 - 11905: 0xE6C1, - 23211 - 11905: 0x8B7D, - 23212 - 11905: 0x8B7E, - 23213 - 11905: 0x8B80, - 23214 - 11905: 0x8B81, - 23215 - 11905: 0x8B82, - 23216 - 11905: 0x8B83, - 23217 - 11905: 0x8B84, - 23218 - 11905: 0xE6C7, - 23219 - 11905: 0xCFB1, - 23220 - 11905: 0x8B85, - 23221 - 11905: 0xEBF4, - 23222 - 11905: 0x8B86, - 23223 - 11905: 0x8B87, - 23224 - 11905: 0xE6CA, - 23225 - 11905: 0x8B88, - 23226 - 11905: 0x8B89, - 23227 - 11905: 0x8B8A, - 23228 - 11905: 0x8B8B, - 23229 - 11905: 0x8B8C, - 23230 - 11905: 0xE6C5, - 23231 - 11905: 0x8B8D, - 23232 - 11905: 0x8B8E, - 23233 - 11905: 0xBCDE, - 23234 - 11905: 0xC9A9, - 23235 - 11905: 0x8B8F, - 23236 - 11905: 0x8B90, - 23237 - 11905: 0x8B91, - 23238 - 11905: 0x8B92, - 23239 - 11905: 0x8B93, - 23240 - 11905: 0x8B94, - 23241 - 11905: 0xBCB5, - 23242 - 11905: 0x8B95, - 23243 - 11905: 0x8B96, - 23244 - 11905: 0xCFD3, - 23245 - 11905: 0x8B97, - 23246 - 11905: 0x8B98, - 23247 - 11905: 0x8B99, - 23248 - 11905: 0x8B9A, - 23249 - 11905: 0x8B9B, - 23250 - 11905: 0xE6C8, - 23251 - 11905: 0x8B9C, - 23252 - 11905: 0xE6C9, - 23253 - 11905: 0x8B9D, - 23254 - 11905: 0xE6CE, - 23255 - 11905: 0x8B9E, - 23256 - 11905: 0xE6D0, - 23257 - 11905: 0x8B9F, - 23258 - 11905: 0x8BA0, - 23259 - 11905: 0x8BA1, - 23260 - 11905: 0xE6D1, - 23261 - 11905: 0x8BA2, - 23262 - 11905: 0x8BA3, - 23263 - 11905: 0x8BA4, - 23264 - 11905: 0xE6CB, - 23265 - 11905: 0xB5D5, - 23266 - 11905: 0x8BA5, - 23267 - 11905: 0xE6CC, - 23268 - 11905: 0x8BA6, - 23269 - 11905: 0x8BA7, - 23270 - 11905: 0xE6CF, - 23271 - 11905: 0x8BA8, - 23272 - 11905: 0x8BA9, - 23273 - 11905: 0xC4DB, - 23274 - 11905: 0x8BAA, - 23275 - 11905: 0xE6C6, - 23276 - 11905: 0x8BAB, - 23277 - 11905: 0x8BAC, - 23278 - 11905: 0x8BAD, - 23279 - 11905: 0x8BAE, - 23280 - 11905: 0x8BAF, - 23281 - 11905: 0xE6CD, - 23282 - 11905: 0x8BB0, - 23283 - 11905: 0x8BB1, - 23284 - 11905: 0x8BB2, - 23285 - 11905: 0x8BB3, - 23286 - 11905: 0x8BB4, - 23287 - 11905: 0x8BB5, - 23288 - 11905: 0x8BB6, - 23289 - 11905: 0x8BB7, - 23290 - 11905: 0x8BB8, - 23291 - 11905: 0x8BB9, - 23292 - 11905: 0x8BBA, - 23293 - 11905: 0x8BBB, - 23294 - 11905: 0x8BBC, - 23295 - 11905: 0x8BBD, - 23296 - 11905: 0x8BBE, - 23297 - 11905: 0x8BBF, - 23298 - 11905: 0x8BC0, - 23299 - 11905: 0x8BC1, - 23300 - 11905: 0x8BC2, - 23301 - 11905: 0x8BC3, - 23302 - 11905: 0x8BC4, - 23303 - 11905: 0x8BC5, - 23304 - 11905: 0x8BC6, - 23305 - 11905: 0xE6D2, - 23306 - 11905: 0x8BC7, - 23307 - 11905: 0x8BC8, - 23308 - 11905: 0x8BC9, - 23309 - 11905: 0x8BCA, - 23310 - 11905: 0x8BCB, - 23311 - 11905: 0x8BCC, - 23312 - 11905: 0x8BCD, - 23313 - 11905: 0x8BCE, - 23314 - 11905: 0x8BCF, - 23315 - 11905: 0x8BD0, - 23316 - 11905: 0x8BD1, - 23317 - 11905: 0x8BD2, - 23318 - 11905: 0xE6D4, - 23319 - 11905: 0xE6D3, - 23320 - 11905: 0x8BD3, - 23321 - 11905: 0x8BD4, - 23322 - 11905: 0x8BD5, - 23323 - 11905: 0x8BD6, - 23324 - 11905: 0x8BD7, - 23325 - 11905: 0x8BD8, - 23326 - 11905: 0x8BD9, - 23327 - 11905: 0x8BDA, - 23328 - 11905: 0x8BDB, - 23329 - 11905: 0x8BDC, - 23330 - 11905: 0x8BDD, - 23331 - 11905: 0x8BDE, - 23332 - 11905: 0x8BDF, - 23333 - 11905: 0x8BE0, - 23334 - 11905: 0x8BE1, - 23335 - 11905: 0x8BE2, - 23336 - 11905: 0x8BE3, - 23337 - 11905: 0x8BE4, - 23338 - 11905: 0x8BE5, - 23339 - 11905: 0x8BE6, - 23340 - 11905: 0x8BE7, - 23341 - 11905: 0x8BE8, - 23342 - 11905: 0x8BE9, - 23343 - 11905: 0x8BEA, - 23344 - 11905: 0x8BEB, - 23345 - 11905: 0x8BEC, - 23346 - 11905: 0xE6D5, - 23347 - 11905: 0x8BED, - 23348 - 11905: 0xD9F8, - 23349 - 11905: 0x8BEE, - 23350 - 11905: 0x8BEF, - 23351 - 11905: 0xE6D6, - 23352 - 11905: 0x8BF0, - 23353 - 11905: 0x8BF1, - 23354 - 11905: 0x8BF2, - 23355 - 11905: 0x8BF3, - 23356 - 11905: 0x8BF4, - 23357 - 11905: 0x8BF5, - 23358 - 11905: 0x8BF6, - 23359 - 11905: 0x8BF7, - 23360 - 11905: 0xE6D7, - 23361 - 11905: 0x8BF8, - 23362 - 11905: 0x8BF9, - 23363 - 11905: 0x8BFA, - 23364 - 11905: 0x8BFB, - 23365 - 11905: 0x8BFC, - 23366 - 11905: 0x8BFD, - 23367 - 11905: 0x8BFE, - 23368 - 11905: 0x8C40, - 23369 - 11905: 0x8C41, - 23370 - 11905: 0x8C42, - 23371 - 11905: 0x8C43, - 23372 - 11905: 0x8C44, - 23373 - 11905: 0x8C45, - 23374 - 11905: 0x8C46, - 23375 - 11905: 0x8C47, - 23376 - 11905: 0xD7D3, - 23377 - 11905: 0xE6DD, - 23378 - 11905: 0x8C48, - 23379 - 11905: 0xE6DE, - 23380 - 11905: 0xBFD7, - 23381 - 11905: 0xD4D0, - 23382 - 11905: 0x8C49, - 23383 - 11905: 0xD7D6, - 23384 - 11905: 0xB4E6, - 23385 - 11905: 0xCBEF, - 23386 - 11905: 0xE6DA, - 23387 - 11905: 0xD8C3, - 23388 - 11905: 0xD7CE, - 23389 - 11905: 0xD0A2, - 23390 - 11905: 0x8C4A, - 23391 - 11905: 0xC3CF, - 23392 - 11905: 0x8C4B, - 23393 - 11905: 0x8C4C, - 23394 - 11905: 0xE6DF, - 23395 - 11905: 0xBCBE, - 23396 - 11905: 0xB9C2, - 23397 - 11905: 0xE6DB, - 23398 - 11905: 0xD1A7, - 23399 - 11905: 0x8C4D, - 23400 - 11905: 0x8C4E, - 23401 - 11905: 0xBAA2, - 23402 - 11905: 0xC2CF, - 23403 - 11905: 0x8C4F, - 23404 - 11905: 0xD8AB, - 23405 - 11905: 0x8C50, - 23406 - 11905: 0x8C51, - 23407 - 11905: 0x8C52, - 23408 - 11905: 0xCAEB, - 23409 - 11905: 0xE5EE, - 23410 - 11905: 0x8C53, - 23411 - 11905: 0xE6DC, - 23412 - 11905: 0x8C54, - 23413 - 11905: 0xB7F5, - 23414 - 11905: 0x8C55, - 23415 - 11905: 0x8C56, - 23416 - 11905: 0x8C57, - 23417 - 11905: 0x8C58, - 23418 - 11905: 0xC8E6, - 23419 - 11905: 0x8C59, - 23420 - 11905: 0x8C5A, - 23421 - 11905: 0xC4F5, - 23422 - 11905: 0x8C5B, - 23423 - 11905: 0x8C5C, - 23424 - 11905: 0xE5B2, - 23425 - 11905: 0xC4FE, - 23426 - 11905: 0x8C5D, - 23427 - 11905: 0xCBFC, - 23428 - 11905: 0xE5B3, - 23429 - 11905: 0xD5AC, - 23430 - 11905: 0x8C5E, - 23431 - 11905: 0xD3EE, - 23432 - 11905: 0xCAD8, - 23433 - 11905: 0xB0B2, - 23434 - 11905: 0x8C5F, - 23435 - 11905: 0xCBCE, - 23436 - 11905: 0xCDEA, - 23437 - 11905: 0x8C60, - 23438 - 11905: 0x8C61, - 23439 - 11905: 0xBAEA, - 23440 - 11905: 0x8C62, - 23441 - 11905: 0x8C63, - 23442 - 11905: 0x8C64, - 23443 - 11905: 0xE5B5, - 23444 - 11905: 0x8C65, - 23445 - 11905: 0xE5B4, - 23446 - 11905: 0x8C66, - 23447 - 11905: 0xD7DA, - 23448 - 11905: 0xB9D9, - 23449 - 11905: 0xD6E6, - 23450 - 11905: 0xB6A8, - 23451 - 11905: 0xCDF0, - 23452 - 11905: 0xD2CB, - 23453 - 11905: 0xB1A6, - 23454 - 11905: 0xCAB5, - 23455 - 11905: 0x8C67, - 23456 - 11905: 0xB3E8, - 23457 - 11905: 0xC9F3, - 23458 - 11905: 0xBFCD, - 23459 - 11905: 0xD0FB, - 23460 - 11905: 0xCAD2, - 23461 - 11905: 0xE5B6, - 23462 - 11905: 0xBBC2, - 23463 - 11905: 0x8C68, - 23464 - 11905: 0x8C69, - 23465 - 11905: 0x8C6A, - 23466 - 11905: 0xCFDC, - 23467 - 11905: 0xB9AC, - 23468 - 11905: 0x8C6B, - 23469 - 11905: 0x8C6C, - 23470 - 11905: 0x8C6D, - 23471 - 11905: 0x8C6E, - 23472 - 11905: 0xD4D7, - 23473 - 11905: 0x8C6F, - 23474 - 11905: 0x8C70, - 23475 - 11905: 0xBAA6, - 23476 - 11905: 0xD1E7, - 23477 - 11905: 0xCFFC, - 23478 - 11905: 0xBCD2, - 23479 - 11905: 0x8C71, - 23480 - 11905: 0xE5B7, - 23481 - 11905: 0xC8DD, - 23482 - 11905: 0x8C72, - 23483 - 11905: 0x8C73, - 23484 - 11905: 0x8C74, - 23485 - 11905: 0xBFED, - 23486 - 11905: 0xB1F6, - 23487 - 11905: 0xCBDE, - 23488 - 11905: 0x8C75, - 23489 - 11905: 0x8C76, - 23490 - 11905: 0xBCC5, - 23491 - 11905: 0x8C77, - 23492 - 11905: 0xBCC4, - 23493 - 11905: 0xD2FA, - 23494 - 11905: 0xC3DC, - 23495 - 11905: 0xBFDC, - 23496 - 11905: 0x8C78, - 23497 - 11905: 0x8C79, - 23498 - 11905: 0x8C7A, - 23499 - 11905: 0x8C7B, - 23500 - 11905: 0xB8BB, - 23501 - 11905: 0x8C7C, - 23502 - 11905: 0x8C7D, - 23503 - 11905: 0x8C7E, - 23504 - 11905: 0xC3C2, - 23505 - 11905: 0x8C80, - 23506 - 11905: 0xBAAE, - 23507 - 11905: 0xD4A2, - 23508 - 11905: 0x8C81, - 23509 - 11905: 0x8C82, - 23510 - 11905: 0x8C83, - 23511 - 11905: 0x8C84, - 23512 - 11905: 0x8C85, - 23513 - 11905: 0x8C86, - 23514 - 11905: 0x8C87, - 23515 - 11905: 0x8C88, - 23516 - 11905: 0x8C89, - 23517 - 11905: 0xC7DE, - 23518 - 11905: 0xC4AF, - 23519 - 11905: 0xB2EC, - 23520 - 11905: 0x8C8A, - 23521 - 11905: 0xB9D1, - 23522 - 11905: 0x8C8B, - 23523 - 11905: 0x8C8C, - 23524 - 11905: 0xE5BB, - 23525 - 11905: 0xC1C8, - 23526 - 11905: 0x8C8D, - 23527 - 11905: 0x8C8E, - 23528 - 11905: 0xD5AF, - 23529 - 11905: 0x8C8F, - 23530 - 11905: 0x8C90, - 23531 - 11905: 0x8C91, - 23532 - 11905: 0x8C92, - 23533 - 11905: 0x8C93, - 23534 - 11905: 0xE5BC, - 23535 - 11905: 0x8C94, - 23536 - 11905: 0xE5BE, - 23537 - 11905: 0x8C95, - 23538 - 11905: 0x8C96, - 23539 - 11905: 0x8C97, - 23540 - 11905: 0x8C98, - 23541 - 11905: 0x8C99, - 23542 - 11905: 0x8C9A, - 23543 - 11905: 0x8C9B, - 23544 - 11905: 0xB4E7, - 23545 - 11905: 0xB6D4, - 23546 - 11905: 0xCBC2, - 23547 - 11905: 0xD1B0, - 23548 - 11905: 0xB5BC, - 23549 - 11905: 0x8C9C, - 23550 - 11905: 0x8C9D, - 23551 - 11905: 0xCAD9, - 23552 - 11905: 0x8C9E, - 23553 - 11905: 0xB7E2, - 23554 - 11905: 0x8C9F, - 23555 - 11905: 0x8CA0, - 23556 - 11905: 0xC9E4, - 23557 - 11905: 0x8CA1, - 23558 - 11905: 0xBDAB, - 23559 - 11905: 0x8CA2, - 23560 - 11905: 0x8CA3, - 23561 - 11905: 0xCEBE, - 23562 - 11905: 0xD7F0, - 23563 - 11905: 0x8CA4, - 23564 - 11905: 0x8CA5, - 23565 - 11905: 0x8CA6, - 23566 - 11905: 0x8CA7, - 23567 - 11905: 0xD0A1, - 23568 - 11905: 0x8CA8, - 23569 - 11905: 0xC9D9, - 23570 - 11905: 0x8CA9, - 23571 - 11905: 0x8CAA, - 23572 - 11905: 0xB6FB, - 23573 - 11905: 0xE6D8, - 23574 - 11905: 0xBCE2, - 23575 - 11905: 0x8CAB, - 23576 - 11905: 0xB3BE, - 23577 - 11905: 0x8CAC, - 23578 - 11905: 0xC9D0, - 23579 - 11905: 0x8CAD, - 23580 - 11905: 0xE6D9, - 23581 - 11905: 0xB3A2, - 23582 - 11905: 0x8CAE, - 23583 - 11905: 0x8CAF, - 23584 - 11905: 0x8CB0, - 23585 - 11905: 0x8CB1, - 23586 - 11905: 0xDECC, - 23587 - 11905: 0x8CB2, - 23588 - 11905: 0xD3C8, - 23589 - 11905: 0xDECD, - 23590 - 11905: 0x8CB3, - 23591 - 11905: 0xD2A2, - 23592 - 11905: 0x8CB4, - 23593 - 11905: 0x8CB5, - 23594 - 11905: 0x8CB6, - 23595 - 11905: 0x8CB7, - 23596 - 11905: 0xDECE, - 23597 - 11905: 0x8CB8, - 23598 - 11905: 0x8CB9, - 23599 - 11905: 0x8CBA, - 23600 - 11905: 0x8CBB, - 23601 - 11905: 0xBECD, - 23602 - 11905: 0x8CBC, - 23603 - 11905: 0x8CBD, - 23604 - 11905: 0xDECF, - 23605 - 11905: 0x8CBE, - 23606 - 11905: 0x8CBF, - 23607 - 11905: 0x8CC0, - 23608 - 11905: 0xCAAC, - 23609 - 11905: 0xD2FC, - 23610 - 11905: 0xB3DF, - 23611 - 11905: 0xE5EA, - 23612 - 11905: 0xC4E1, - 23613 - 11905: 0xBEA1, - 23614 - 11905: 0xCEB2, - 23615 - 11905: 0xC4F2, - 23616 - 11905: 0xBED6, - 23617 - 11905: 0xC6A8, - 23618 - 11905: 0xB2E3, - 23619 - 11905: 0x8CC1, - 23620 - 11905: 0x8CC2, - 23621 - 11905: 0xBED3, - 23622 - 11905: 0x8CC3, - 23623 - 11905: 0x8CC4, - 23624 - 11905: 0xC7FC, - 23625 - 11905: 0xCCEB, - 23626 - 11905: 0xBDEC, - 23627 - 11905: 0xCEDD, - 23628 - 11905: 0x8CC5, - 23629 - 11905: 0x8CC6, - 23630 - 11905: 0xCABA, - 23631 - 11905: 0xC6C1, - 23632 - 11905: 0xE5EC, - 23633 - 11905: 0xD0BC, - 23634 - 11905: 0x8CC7, - 23635 - 11905: 0x8CC8, - 23636 - 11905: 0x8CC9, - 23637 - 11905: 0xD5B9, - 23638 - 11905: 0x8CCA, - 23639 - 11905: 0x8CCB, - 23640 - 11905: 0x8CCC, - 23641 - 11905: 0xE5ED, - 23642 - 11905: 0x8CCD, - 23643 - 11905: 0x8CCE, - 23644 - 11905: 0x8CCF, - 23645 - 11905: 0x8CD0, - 23646 - 11905: 0xCAF4, - 23647 - 11905: 0x8CD1, - 23648 - 11905: 0xCDC0, - 23649 - 11905: 0xC2C5, - 23650 - 11905: 0x8CD2, - 23651 - 11905: 0xE5EF, - 23652 - 11905: 0x8CD3, - 23653 - 11905: 0xC2C4, - 23654 - 11905: 0xE5F0, - 23655 - 11905: 0x8CD4, - 23656 - 11905: 0x8CD5, - 23657 - 11905: 0x8CD6, - 23658 - 11905: 0x8CD7, - 23659 - 11905: 0x8CD8, - 23660 - 11905: 0x8CD9, - 23661 - 11905: 0x8CDA, - 23662 - 11905: 0xE5F8, - 23663 - 11905: 0xCDCD, - 23664 - 11905: 0x8CDB, - 23665 - 11905: 0xC9BD, - 23666 - 11905: 0x8CDC, - 23667 - 11905: 0x8CDD, - 23668 - 11905: 0x8CDE, - 23669 - 11905: 0x8CDF, - 23670 - 11905: 0x8CE0, - 23671 - 11905: 0x8CE1, - 23672 - 11905: 0x8CE2, - 23673 - 11905: 0xD2D9, - 23674 - 11905: 0xE1A8, - 23675 - 11905: 0x8CE3, - 23676 - 11905: 0x8CE4, - 23677 - 11905: 0x8CE5, - 23678 - 11905: 0x8CE6, - 23679 - 11905: 0xD3EC, - 23680 - 11905: 0x8CE7, - 23681 - 11905: 0xCBEA, - 23682 - 11905: 0xC6F1, - 23683 - 11905: 0x8CE8, - 23684 - 11905: 0x8CE9, - 23685 - 11905: 0x8CEA, - 23686 - 11905: 0x8CEB, - 23687 - 11905: 0x8CEC, - 23688 - 11905: 0xE1AC, - 23689 - 11905: 0x8CED, - 23690 - 11905: 0x8CEE, - 23691 - 11905: 0x8CEF, - 23692 - 11905: 0xE1A7, - 23693 - 11905: 0xE1A9, - 23694 - 11905: 0x8CF0, - 23695 - 11905: 0x8CF1, - 23696 - 11905: 0xE1AA, - 23697 - 11905: 0xE1AF, - 23698 - 11905: 0x8CF2, - 23699 - 11905: 0x8CF3, - 23700 - 11905: 0xB2ED, - 23701 - 11905: 0x8CF4, - 23702 - 11905: 0xE1AB, - 23703 - 11905: 0xB8DA, - 23704 - 11905: 0xE1AD, - 23705 - 11905: 0xE1AE, - 23706 - 11905: 0xE1B0, - 23707 - 11905: 0xB5BA, - 23708 - 11905: 0xE1B1, - 23709 - 11905: 0x8CF5, - 23710 - 11905: 0x8CF6, - 23711 - 11905: 0x8CF7, - 23712 - 11905: 0x8CF8, - 23713 - 11905: 0x8CF9, - 23714 - 11905: 0xE1B3, - 23715 - 11905: 0xE1B8, - 23716 - 11905: 0x8CFA, - 23717 - 11905: 0x8CFB, - 23718 - 11905: 0x8CFC, - 23719 - 11905: 0x8CFD, - 23720 - 11905: 0x8CFE, - 23721 - 11905: 0xD1D2, - 23722 - 11905: 0x8D40, - 23723 - 11905: 0xE1B6, - 23724 - 11905: 0xE1B5, - 23725 - 11905: 0xC1EB, - 23726 - 11905: 0x8D41, - 23727 - 11905: 0x8D42, - 23728 - 11905: 0x8D43, - 23729 - 11905: 0xE1B7, - 23730 - 11905: 0x8D44, - 23731 - 11905: 0xD4C0, - 23732 - 11905: 0x8D45, - 23733 - 11905: 0xE1B2, - 23734 - 11905: 0x8D46, - 23735 - 11905: 0xE1BA, - 23736 - 11905: 0xB0B6, - 23737 - 11905: 0x8D47, - 23738 - 11905: 0x8D48, - 23739 - 11905: 0x8D49, - 23740 - 11905: 0x8D4A, - 23741 - 11905: 0xE1B4, - 23742 - 11905: 0x8D4B, - 23743 - 11905: 0xBFF9, - 23744 - 11905: 0x8D4C, - 23745 - 11905: 0xE1B9, - 23746 - 11905: 0x8D4D, - 23747 - 11905: 0x8D4E, - 23748 - 11905: 0xE1BB, - 23749 - 11905: 0x8D4F, - 23750 - 11905: 0x8D50, - 23751 - 11905: 0x8D51, - 23752 - 11905: 0x8D52, - 23753 - 11905: 0x8D53, - 23754 - 11905: 0x8D54, - 23755 - 11905: 0xE1BE, - 23756 - 11905: 0x8D55, - 23757 - 11905: 0x8D56, - 23758 - 11905: 0x8D57, - 23759 - 11905: 0x8D58, - 23760 - 11905: 0x8D59, - 23761 - 11905: 0x8D5A, - 23762 - 11905: 0xE1BC, - 23763 - 11905: 0x8D5B, - 23764 - 11905: 0x8D5C, - 23765 - 11905: 0x8D5D, - 23766 - 11905: 0x8D5E, - 23767 - 11905: 0x8D5F, - 23768 - 11905: 0x8D60, - 23769 - 11905: 0xD6C5, - 23770 - 11905: 0x8D61, - 23771 - 11905: 0x8D62, - 23772 - 11905: 0x8D63, - 23773 - 11905: 0x8D64, - 23774 - 11905: 0x8D65, - 23775 - 11905: 0x8D66, - 23776 - 11905: 0x8D67, - 23777 - 11905: 0xCFBF, - 23778 - 11905: 0x8D68, - 23779 - 11905: 0x8D69, - 23780 - 11905: 0xE1BD, - 23781 - 11905: 0xE1BF, - 23782 - 11905: 0xC2CD, - 23783 - 11905: 0x8D6A, - 23784 - 11905: 0xB6EB, - 23785 - 11905: 0x8D6B, - 23786 - 11905: 0xD3F8, - 23787 - 11905: 0x8D6C, - 23788 - 11905: 0x8D6D, - 23789 - 11905: 0xC7CD, - 23790 - 11905: 0x8D6E, - 23791 - 11905: 0x8D6F, - 23792 - 11905: 0xB7E5, - 23793 - 11905: 0x8D70, - 23794 - 11905: 0x8D71, - 23795 - 11905: 0x8D72, - 23796 - 11905: 0x8D73, - 23797 - 11905: 0x8D74, - 23798 - 11905: 0x8D75, - 23799 - 11905: 0x8D76, - 23800 - 11905: 0x8D77, - 23801 - 11905: 0x8D78, - 23802 - 11905: 0x8D79, - 23803 - 11905: 0xBEFE, - 23804 - 11905: 0x8D7A, - 23805 - 11905: 0x8D7B, - 23806 - 11905: 0x8D7C, - 23807 - 11905: 0x8D7D, - 23808 - 11905: 0x8D7E, - 23809 - 11905: 0x8D80, - 23810 - 11905: 0xE1C0, - 23811 - 11905: 0xE1C1, - 23812 - 11905: 0x8D81, - 23813 - 11905: 0x8D82, - 23814 - 11905: 0xE1C7, - 23815 - 11905: 0xB3E7, - 23816 - 11905: 0x8D83, - 23817 - 11905: 0x8D84, - 23818 - 11905: 0x8D85, - 23819 - 11905: 0x8D86, - 23820 - 11905: 0x8D87, - 23821 - 11905: 0x8D88, - 23822 - 11905: 0xC6E9, - 23823 - 11905: 0x8D89, - 23824 - 11905: 0x8D8A, - 23825 - 11905: 0x8D8B, - 23826 - 11905: 0x8D8C, - 23827 - 11905: 0x8D8D, - 23828 - 11905: 0xB4DE, - 23829 - 11905: 0x8D8E, - 23830 - 11905: 0xD1C2, - 23831 - 11905: 0x8D8F, - 23832 - 11905: 0x8D90, - 23833 - 11905: 0x8D91, - 23834 - 11905: 0x8D92, - 23835 - 11905: 0xE1C8, - 23836 - 11905: 0x8D93, - 23837 - 11905: 0x8D94, - 23838 - 11905: 0xE1C6, - 23839 - 11905: 0x8D95, - 23840 - 11905: 0x8D96, - 23841 - 11905: 0x8D97, - 23842 - 11905: 0x8D98, - 23843 - 11905: 0x8D99, - 23844 - 11905: 0xE1C5, - 23845 - 11905: 0x8D9A, - 23846 - 11905: 0xE1C3, - 23847 - 11905: 0xE1C2, - 23848 - 11905: 0x8D9B, - 23849 - 11905: 0xB1C0, - 23850 - 11905: 0x8D9C, - 23851 - 11905: 0x8D9D, - 23852 - 11905: 0x8D9E, - 23853 - 11905: 0xD5B8, - 23854 - 11905: 0xE1C4, - 23855 - 11905: 0x8D9F, - 23856 - 11905: 0x8DA0, - 23857 - 11905: 0x8DA1, - 23858 - 11905: 0x8DA2, - 23859 - 11905: 0x8DA3, - 23860 - 11905: 0xE1CB, - 23861 - 11905: 0x8DA4, - 23862 - 11905: 0x8DA5, - 23863 - 11905: 0x8DA6, - 23864 - 11905: 0x8DA7, - 23865 - 11905: 0x8DA8, - 23866 - 11905: 0x8DA9, - 23867 - 11905: 0x8DAA, - 23868 - 11905: 0x8DAB, - 23869 - 11905: 0xE1CC, - 23870 - 11905: 0xE1CA, - 23871 - 11905: 0x8DAC, - 23872 - 11905: 0x8DAD, - 23873 - 11905: 0x8DAE, - 23874 - 11905: 0x8DAF, - 23875 - 11905: 0x8DB0, - 23876 - 11905: 0x8DB1, - 23877 - 11905: 0x8DB2, - 23878 - 11905: 0x8DB3, - 23879 - 11905: 0xEFFA, - 23880 - 11905: 0x8DB4, - 23881 - 11905: 0x8DB5, - 23882 - 11905: 0xE1D3, - 23883 - 11905: 0xE1D2, - 23884 - 11905: 0xC7B6, - 23885 - 11905: 0x8DB6, - 23886 - 11905: 0x8DB7, - 23887 - 11905: 0x8DB8, - 23888 - 11905: 0x8DB9, - 23889 - 11905: 0x8DBA, - 23890 - 11905: 0x8DBB, - 23891 - 11905: 0x8DBC, - 23892 - 11905: 0x8DBD, - 23893 - 11905: 0x8DBE, - 23894 - 11905: 0x8DBF, - 23895 - 11905: 0x8DC0, - 23896 - 11905: 0xE1C9, - 23897 - 11905: 0x8DC1, - 23898 - 11905: 0x8DC2, - 23899 - 11905: 0xE1CE, - 23900 - 11905: 0x8DC3, - 23901 - 11905: 0xE1D0, - 23902 - 11905: 0x8DC4, - 23903 - 11905: 0x8DC5, - 23904 - 11905: 0x8DC6, - 23905 - 11905: 0x8DC7, - 23906 - 11905: 0x8DC8, - 23907 - 11905: 0x8DC9, - 23908 - 11905: 0x8DCA, - 23909 - 11905: 0x8DCB, - 23910 - 11905: 0x8DCC, - 23911 - 11905: 0x8DCD, - 23912 - 11905: 0x8DCE, - 23913 - 11905: 0xE1D4, - 23914 - 11905: 0x8DCF, - 23915 - 11905: 0xE1D1, - 23916 - 11905: 0xE1CD, - 23917 - 11905: 0x8DD0, - 23918 - 11905: 0x8DD1, - 23919 - 11905: 0xE1CF, - 23920 - 11905: 0x8DD2, - 23921 - 11905: 0x8DD3, - 23922 - 11905: 0x8DD4, - 23923 - 11905: 0x8DD5, - 23924 - 11905: 0xE1D5, - 23925 - 11905: 0x8DD6, - 23926 - 11905: 0x8DD7, - 23927 - 11905: 0x8DD8, - 23928 - 11905: 0x8DD9, - 23929 - 11905: 0x8DDA, - 23930 - 11905: 0x8DDB, - 23931 - 11905: 0x8DDC, - 23932 - 11905: 0x8DDD, - 23933 - 11905: 0x8DDE, - 23934 - 11905: 0x8DDF, - 23935 - 11905: 0x8DE0, - 23936 - 11905: 0x8DE1, - 23937 - 11905: 0x8DE2, - 23938 - 11905: 0xE1D6, - 23939 - 11905: 0x8DE3, - 23940 - 11905: 0x8DE4, - 23941 - 11905: 0x8DE5, - 23942 - 11905: 0x8DE6, - 23943 - 11905: 0x8DE7, - 23944 - 11905: 0x8DE8, - 23945 - 11905: 0x8DE9, - 23946 - 11905: 0x8DEA, - 23947 - 11905: 0x8DEB, - 23948 - 11905: 0x8DEC, - 23949 - 11905: 0x8DED, - 23950 - 11905: 0x8DEE, - 23951 - 11905: 0x8DEF, - 23952 - 11905: 0x8DF0, - 23953 - 11905: 0x8DF1, - 23954 - 11905: 0x8DF2, - 23955 - 11905: 0x8DF3, - 23956 - 11905: 0x8DF4, - 23957 - 11905: 0x8DF5, - 23958 - 11905: 0x8DF6, - 23959 - 11905: 0x8DF7, - 23960 - 11905: 0x8DF8, - 23961 - 11905: 0xE1D7, - 23962 - 11905: 0x8DF9, - 23963 - 11905: 0x8DFA, - 23964 - 11905: 0x8DFB, - 23965 - 11905: 0xE1D8, - 23966 - 11905: 0x8DFC, - 23967 - 11905: 0x8DFD, - 23968 - 11905: 0x8DFE, - 23969 - 11905: 0x8E40, - 23970 - 11905: 0x8E41, - 23971 - 11905: 0x8E42, - 23972 - 11905: 0x8E43, - 23973 - 11905: 0x8E44, - 23974 - 11905: 0x8E45, - 23975 - 11905: 0x8E46, - 23976 - 11905: 0x8E47, - 23977 - 11905: 0x8E48, - 23978 - 11905: 0x8E49, - 23979 - 11905: 0x8E4A, - 23980 - 11905: 0x8E4B, - 23981 - 11905: 0x8E4C, - 23982 - 11905: 0x8E4D, - 23983 - 11905: 0x8E4E, - 23984 - 11905: 0x8E4F, - 23985 - 11905: 0x8E50, - 23986 - 11905: 0x8E51, - 23987 - 11905: 0x8E52, - 23988 - 11905: 0x8E53, - 23989 - 11905: 0x8E54, - 23990 - 11905: 0x8E55, - 23991 - 11905: 0xE1DA, - 23992 - 11905: 0x8E56, - 23993 - 11905: 0x8E57, - 23994 - 11905: 0x8E58, - 23995 - 11905: 0x8E59, - 23996 - 11905: 0x8E5A, - 23997 - 11905: 0x8E5B, - 23998 - 11905: 0x8E5C, - 23999 - 11905: 0x8E5D, - 24000 - 11905: 0x8E5E, - 24001 - 11905: 0x8E5F, - 24002 - 11905: 0x8E60, - 24003 - 11905: 0x8E61, - 24004 - 11905: 0x8E62, - 24005 - 11905: 0xE1DB, - 24006 - 11905: 0x8E63, - 24007 - 11905: 0x8E64, - 24008 - 11905: 0x8E65, - 24009 - 11905: 0x8E66, - 24010 - 11905: 0x8E67, - 24011 - 11905: 0x8E68, - 24012 - 11905: 0x8E69, - 24013 - 11905: 0xCEA1, - 24014 - 11905: 0x8E6A, - 24015 - 11905: 0x8E6B, - 24016 - 11905: 0x8E6C, - 24017 - 11905: 0x8E6D, - 24018 - 11905: 0x8E6E, - 24019 - 11905: 0x8E6F, - 24020 - 11905: 0x8E70, - 24021 - 11905: 0x8E71, - 24022 - 11905: 0x8E72, - 24023 - 11905: 0x8E73, - 24024 - 11905: 0x8E74, - 24025 - 11905: 0x8E75, - 24026 - 11905: 0x8E76, - 24027 - 11905: 0xE7DD, - 24028 - 11905: 0x8E77, - 24029 - 11905: 0xB4A8, - 24030 - 11905: 0xD6DD, - 24031 - 11905: 0x8E78, - 24032 - 11905: 0x8E79, - 24033 - 11905: 0xD1B2, - 24034 - 11905: 0xB3B2, - 24035 - 11905: 0x8E7A, - 24036 - 11905: 0x8E7B, - 24037 - 11905: 0xB9A4, - 24038 - 11905: 0xD7F3, - 24039 - 11905: 0xC7C9, - 24040 - 11905: 0xBEDE, - 24041 - 11905: 0xB9AE, - 24042 - 11905: 0x8E7C, - 24043 - 11905: 0xCED7, - 24044 - 11905: 0x8E7D, - 24045 - 11905: 0x8E7E, - 24046 - 11905: 0xB2EE, - 24047 - 11905: 0xDBCF, - 24048 - 11905: 0x8E80, - 24049 - 11905: 0xBCBA, - 24050 - 11905: 0xD2D1, - 24051 - 11905: 0xCBC8, - 24052 - 11905: 0xB0CD, - 24053 - 11905: 0x8E81, - 24054 - 11905: 0x8E82, - 24055 - 11905: 0xCFEF, - 24056 - 11905: 0x8E83, - 24057 - 11905: 0x8E84, - 24058 - 11905: 0x8E85, - 24059 - 11905: 0x8E86, - 24060 - 11905: 0x8E87, - 24061 - 11905: 0xD9E3, - 24062 - 11905: 0xBDED, - 24063 - 11905: 0x8E88, - 24064 - 11905: 0x8E89, - 24065 - 11905: 0xB1D2, - 24066 - 11905: 0xCAD0, - 24067 - 11905: 0xB2BC, - 24068 - 11905: 0x8E8A, - 24069 - 11905: 0xCBA7, - 24070 - 11905: 0xB7AB, - 24071 - 11905: 0x8E8B, - 24072 - 11905: 0xCAA6, - 24073 - 11905: 0x8E8C, - 24074 - 11905: 0x8E8D, - 24075 - 11905: 0x8E8E, - 24076 - 11905: 0xCFA3, - 24077 - 11905: 0x8E8F, - 24078 - 11905: 0x8E90, - 24079 - 11905: 0xE0F8, - 24080 - 11905: 0xD5CA, - 24081 - 11905: 0xE0FB, - 24082 - 11905: 0x8E91, - 24083 - 11905: 0x8E92, - 24084 - 11905: 0xE0FA, - 24085 - 11905: 0xC5C1, - 24086 - 11905: 0xCCFB, - 24087 - 11905: 0x8E93, - 24088 - 11905: 0xC1B1, - 24089 - 11905: 0xE0F9, - 24090 - 11905: 0xD6E3, - 24091 - 11905: 0xB2AF, - 24092 - 11905: 0xD6C4, - 24093 - 11905: 0xB5DB, - 24094 - 11905: 0x8E94, - 24095 - 11905: 0x8E95, - 24096 - 11905: 0x8E96, - 24097 - 11905: 0x8E97, - 24098 - 11905: 0x8E98, - 24099 - 11905: 0x8E99, - 24100 - 11905: 0x8E9A, - 24101 - 11905: 0x8E9B, - 24102 - 11905: 0xB4F8, - 24103 - 11905: 0xD6A1, - 24104 - 11905: 0x8E9C, - 24105 - 11905: 0x8E9D, - 24106 - 11905: 0x8E9E, - 24107 - 11905: 0x8E9F, - 24108 - 11905: 0x8EA0, - 24109 - 11905: 0xCFAF, - 24110 - 11905: 0xB0EF, - 24111 - 11905: 0x8EA1, - 24112 - 11905: 0x8EA2, - 24113 - 11905: 0xE0FC, - 24114 - 11905: 0x8EA3, - 24115 - 11905: 0x8EA4, - 24116 - 11905: 0x8EA5, - 24117 - 11905: 0x8EA6, - 24118 - 11905: 0x8EA7, - 24119 - 11905: 0xE1A1, - 24120 - 11905: 0xB3A3, - 24121 - 11905: 0x8EA8, - 24122 - 11905: 0x8EA9, - 24123 - 11905: 0xE0FD, - 24124 - 11905: 0xE0FE, - 24125 - 11905: 0xC3B1, - 24126 - 11905: 0x8EAA, - 24127 - 11905: 0x8EAB, - 24128 - 11905: 0x8EAC, - 24129 - 11905: 0x8EAD, - 24130 - 11905: 0xC3DD, - 24131 - 11905: 0x8EAE, - 24132 - 11905: 0xE1A2, - 24133 - 11905: 0xB7F9, - 24134 - 11905: 0x8EAF, - 24135 - 11905: 0x8EB0, - 24136 - 11905: 0x8EB1, - 24137 - 11905: 0x8EB2, - 24138 - 11905: 0x8EB3, - 24139 - 11905: 0x8EB4, - 24140 - 11905: 0xBBCF, - 24141 - 11905: 0x8EB5, - 24142 - 11905: 0x8EB6, - 24143 - 11905: 0x8EB7, - 24144 - 11905: 0x8EB8, - 24145 - 11905: 0x8EB9, - 24146 - 11905: 0x8EBA, - 24147 - 11905: 0x8EBB, - 24148 - 11905: 0xE1A3, - 24149 - 11905: 0xC4BB, - 24150 - 11905: 0x8EBC, - 24151 - 11905: 0x8EBD, - 24152 - 11905: 0x8EBE, - 24153 - 11905: 0x8EBF, - 24154 - 11905: 0x8EC0, - 24155 - 11905: 0xE1A4, - 24156 - 11905: 0x8EC1, - 24157 - 11905: 0x8EC2, - 24158 - 11905: 0xE1A5, - 24159 - 11905: 0x8EC3, - 24160 - 11905: 0x8EC4, - 24161 - 11905: 0xE1A6, - 24162 - 11905: 0xB4B1, - 24163 - 11905: 0x8EC5, - 24164 - 11905: 0x8EC6, - 24165 - 11905: 0x8EC7, - 24166 - 11905: 0x8EC8, - 24167 - 11905: 0x8EC9, - 24168 - 11905: 0x8ECA, - 24169 - 11905: 0x8ECB, - 24170 - 11905: 0x8ECC, - 24171 - 11905: 0x8ECD, - 24172 - 11905: 0x8ECE, - 24173 - 11905: 0x8ECF, - 24174 - 11905: 0x8ED0, - 24175 - 11905: 0x8ED1, - 24176 - 11905: 0x8ED2, - 24177 - 11905: 0x8ED3, - 24178 - 11905: 0xB8C9, - 24179 - 11905: 0xC6BD, - 24180 - 11905: 0xC4EA, - 24181 - 11905: 0x8ED4, - 24182 - 11905: 0xB2A2, - 24183 - 11905: 0x8ED5, - 24184 - 11905: 0xD0D2, - 24185 - 11905: 0x8ED6, - 24186 - 11905: 0xE7DB, - 24187 - 11905: 0xBBC3, - 24188 - 11905: 0xD3D7, - 24189 - 11905: 0xD3C4, - 24190 - 11905: 0x8ED7, - 24191 - 11905: 0xB9E3, - 24192 - 11905: 0xE2CF, - 24193 - 11905: 0x8ED8, - 24194 - 11905: 0x8ED9, - 24195 - 11905: 0x8EDA, - 24196 - 11905: 0xD7AF, - 24197 - 11905: 0x8EDB, - 24198 - 11905: 0xC7EC, - 24199 - 11905: 0xB1D3, - 24200 - 11905: 0x8EDC, - 24201 - 11905: 0x8EDD, - 24202 - 11905: 0xB4B2, - 24203 - 11905: 0xE2D1, - 24204 - 11905: 0x8EDE, - 24205 - 11905: 0x8EDF, - 24206 - 11905: 0x8EE0, - 24207 - 11905: 0xD0F2, - 24208 - 11905: 0xC2AE, - 24209 - 11905: 0xE2D0, - 24210 - 11905: 0x8EE1, - 24211 - 11905: 0xBFE2, - 24212 - 11905: 0xD3A6, - 24213 - 11905: 0xB5D7, - 24214 - 11905: 0xE2D2, - 24215 - 11905: 0xB5EA, - 24216 - 11905: 0x8EE2, - 24217 - 11905: 0xC3ED, - 24218 - 11905: 0xB8FD, - 24219 - 11905: 0x8EE3, - 24220 - 11905: 0xB8AE, - 24221 - 11905: 0x8EE4, - 24222 - 11905: 0xC5D3, - 24223 - 11905: 0xB7CF, - 24224 - 11905: 0xE2D4, - 24225 - 11905: 0x8EE5, - 24226 - 11905: 0x8EE6, - 24227 - 11905: 0x8EE7, - 24228 - 11905: 0x8EE8, - 24229 - 11905: 0xE2D3, - 24230 - 11905: 0xB6C8, - 24231 - 11905: 0xD7F9, - 24232 - 11905: 0x8EE9, - 24233 - 11905: 0x8EEA, - 24234 - 11905: 0x8EEB, - 24235 - 11905: 0x8EEC, - 24236 - 11905: 0x8EED, - 24237 - 11905: 0xCDA5, - 24238 - 11905: 0x8EEE, - 24239 - 11905: 0x8EEF, - 24240 - 11905: 0x8EF0, - 24241 - 11905: 0x8EF1, - 24242 - 11905: 0x8EF2, - 24243 - 11905: 0xE2D8, - 24244 - 11905: 0x8EF3, - 24245 - 11905: 0xE2D6, - 24246 - 11905: 0xCAFC, - 24247 - 11905: 0xBFB5, - 24248 - 11905: 0xD3B9, - 24249 - 11905: 0xE2D5, - 24250 - 11905: 0x8EF4, - 24251 - 11905: 0x8EF5, - 24252 - 11905: 0x8EF6, - 24253 - 11905: 0x8EF7, - 24254 - 11905: 0xE2D7, - 24255 - 11905: 0x8EF8, - 24256 - 11905: 0x8EF9, - 24257 - 11905: 0x8EFA, - 24258 - 11905: 0x8EFB, - 24259 - 11905: 0x8EFC, - 24260 - 11905: 0x8EFD, - 24261 - 11905: 0x8EFE, - 24262 - 11905: 0x8F40, - 24263 - 11905: 0x8F41, - 24264 - 11905: 0x8F42, - 24265 - 11905: 0xC1AE, - 24266 - 11905: 0xC0C8, - 24267 - 11905: 0x8F43, - 24268 - 11905: 0x8F44, - 24269 - 11905: 0x8F45, - 24270 - 11905: 0x8F46, - 24271 - 11905: 0x8F47, - 24272 - 11905: 0x8F48, - 24273 - 11905: 0xE2DB, - 24274 - 11905: 0xE2DA, - 24275 - 11905: 0xC0AA, - 24276 - 11905: 0x8F49, - 24277 - 11905: 0x8F4A, - 24278 - 11905: 0xC1CE, - 24279 - 11905: 0x8F4B, - 24280 - 11905: 0x8F4C, - 24281 - 11905: 0x8F4D, - 24282 - 11905: 0x8F4E, - 24283 - 11905: 0xE2DC, - 24284 - 11905: 0x8F4F, - 24285 - 11905: 0x8F50, - 24286 - 11905: 0x8F51, - 24287 - 11905: 0x8F52, - 24288 - 11905: 0x8F53, - 24289 - 11905: 0x8F54, - 24290 - 11905: 0x8F55, - 24291 - 11905: 0x8F56, - 24292 - 11905: 0x8F57, - 24293 - 11905: 0x8F58, - 24294 - 11905: 0x8F59, - 24295 - 11905: 0x8F5A, - 24296 - 11905: 0xE2DD, - 24297 - 11905: 0x8F5B, - 24298 - 11905: 0xE2DE, - 24299 - 11905: 0x8F5C, - 24300 - 11905: 0x8F5D, - 24301 - 11905: 0x8F5E, - 24302 - 11905: 0x8F5F, - 24303 - 11905: 0x8F60, - 24304 - 11905: 0x8F61, - 24305 - 11905: 0x8F62, - 24306 - 11905: 0x8F63, - 24307 - 11905: 0x8F64, - 24308 - 11905: 0xDBC8, - 24309 - 11905: 0x8F65, - 24310 - 11905: 0xD1D3, - 24311 - 11905: 0xCDA2, - 24312 - 11905: 0x8F66, - 24313 - 11905: 0x8F67, - 24314 - 11905: 0xBDA8, - 24315 - 11905: 0x8F68, - 24316 - 11905: 0x8F69, - 24317 - 11905: 0x8F6A, - 24318 - 11905: 0xDEC3, - 24319 - 11905: 0xD8A5, - 24320 - 11905: 0xBFAA, - 24321 - 11905: 0xDBCD, - 24322 - 11905: 0xD2EC, - 24323 - 11905: 0xC6FA, - 24324 - 11905: 0xC5AA, - 24325 - 11905: 0x8F6B, - 24326 - 11905: 0x8F6C, - 24327 - 11905: 0x8F6D, - 24328 - 11905: 0xDEC4, - 24329 - 11905: 0x8F6E, - 24330 - 11905: 0xB1D7, - 24331 - 11905: 0xDFAE, - 24332 - 11905: 0x8F6F, - 24333 - 11905: 0x8F70, - 24334 - 11905: 0x8F71, - 24335 - 11905: 0xCABD, - 24336 - 11905: 0x8F72, - 24337 - 11905: 0xDFB1, - 24338 - 11905: 0x8F73, - 24339 - 11905: 0xB9AD, - 24340 - 11905: 0x8F74, - 24341 - 11905: 0xD2FD, - 24342 - 11905: 0x8F75, - 24343 - 11905: 0xB8A5, - 24344 - 11905: 0xBAEB, - 24345 - 11905: 0x8F76, - 24346 - 11905: 0x8F77, - 24347 - 11905: 0xB3DA, - 24348 - 11905: 0x8F78, - 24349 - 11905: 0x8F79, - 24350 - 11905: 0x8F7A, - 24351 - 11905: 0xB5DC, - 24352 - 11905: 0xD5C5, - 24353 - 11905: 0x8F7B, - 24354 - 11905: 0x8F7C, - 24355 - 11905: 0x8F7D, - 24356 - 11905: 0x8F7E, - 24357 - 11905: 0xC3D6, - 24358 - 11905: 0xCFD2, - 24359 - 11905: 0xBBA1, - 24360 - 11905: 0x8F80, - 24361 - 11905: 0xE5F3, - 24362 - 11905: 0xE5F2, - 24363 - 11905: 0x8F81, - 24364 - 11905: 0x8F82, - 24365 - 11905: 0xE5F4, - 24366 - 11905: 0x8F83, - 24367 - 11905: 0xCDE4, - 24368 - 11905: 0x8F84, - 24369 - 11905: 0xC8F5, - 24370 - 11905: 0x8F85, - 24371 - 11905: 0x8F86, - 24372 - 11905: 0x8F87, - 24373 - 11905: 0x8F88, - 24374 - 11905: 0x8F89, - 24375 - 11905: 0x8F8A, - 24376 - 11905: 0x8F8B, - 24377 - 11905: 0xB5AF, - 24378 - 11905: 0xC7BF, - 24379 - 11905: 0x8F8C, - 24380 - 11905: 0xE5F6, - 24381 - 11905: 0x8F8D, - 24382 - 11905: 0x8F8E, - 24383 - 11905: 0x8F8F, - 24384 - 11905: 0xECB0, - 24385 - 11905: 0x8F90, - 24386 - 11905: 0x8F91, - 24387 - 11905: 0x8F92, - 24388 - 11905: 0x8F93, - 24389 - 11905: 0x8F94, - 24390 - 11905: 0x8F95, - 24391 - 11905: 0x8F96, - 24392 - 11905: 0x8F97, - 24393 - 11905: 0x8F98, - 24394 - 11905: 0x8F99, - 24395 - 11905: 0x8F9A, - 24396 - 11905: 0x8F9B, - 24397 - 11905: 0x8F9C, - 24398 - 11905: 0x8F9D, - 24399 - 11905: 0x8F9E, - 24400 - 11905: 0xE5E6, - 24401 - 11905: 0x8F9F, - 24402 - 11905: 0xB9E9, - 24403 - 11905: 0xB5B1, - 24404 - 11905: 0x8FA0, - 24405 - 11905: 0xC2BC, - 24406 - 11905: 0xE5E8, - 24407 - 11905: 0xE5E7, - 24408 - 11905: 0xE5E9, - 24409 - 11905: 0x8FA1, - 24410 - 11905: 0x8FA2, - 24411 - 11905: 0x8FA3, - 24412 - 11905: 0x8FA4, - 24413 - 11905: 0xD2CD, - 24414 - 11905: 0x8FA5, - 24415 - 11905: 0x8FA6, - 24416 - 11905: 0x8FA7, - 24417 - 11905: 0xE1EA, - 24418 - 11905: 0xD0CE, - 24419 - 11905: 0x8FA8, - 24420 - 11905: 0xCDAE, - 24421 - 11905: 0x8FA9, - 24422 - 11905: 0xD1E5, - 24423 - 11905: 0x8FAA, - 24424 - 11905: 0x8FAB, - 24425 - 11905: 0xB2CA, - 24426 - 11905: 0xB1EB, - 24427 - 11905: 0x8FAC, - 24428 - 11905: 0xB1F2, - 24429 - 11905: 0xC5ED, - 24430 - 11905: 0x8FAD, - 24431 - 11905: 0x8FAE, - 24432 - 11905: 0xD5C3, - 24433 - 11905: 0xD3B0, - 24434 - 11905: 0x8FAF, - 24435 - 11905: 0xE1DC, - 24436 - 11905: 0x8FB0, - 24437 - 11905: 0x8FB1, - 24438 - 11905: 0x8FB2, - 24439 - 11905: 0xE1DD, - 24440 - 11905: 0x8FB3, - 24441 - 11905: 0xD2DB, - 24442 - 11905: 0x8FB4, - 24443 - 11905: 0xB3B9, - 24444 - 11905: 0xB1CB, - 24445 - 11905: 0x8FB5, - 24446 - 11905: 0x8FB6, - 24447 - 11905: 0x8FB7, - 24448 - 11905: 0xCDF9, - 24449 - 11905: 0xD5F7, - 24450 - 11905: 0xE1DE, - 24451 - 11905: 0x8FB8, - 24452 - 11905: 0xBEB6, - 24453 - 11905: 0xB4FD, - 24454 - 11905: 0x8FB9, - 24455 - 11905: 0xE1DF, - 24456 - 11905: 0xBADC, - 24457 - 11905: 0xE1E0, - 24458 - 11905: 0xBBB2, - 24459 - 11905: 0xC2C9, - 24460 - 11905: 0xE1E1, - 24461 - 11905: 0x8FBA, - 24462 - 11905: 0x8FBB, - 24463 - 11905: 0x8FBC, - 24464 - 11905: 0xD0EC, - 24465 - 11905: 0x8FBD, - 24466 - 11905: 0xCDBD, - 24467 - 11905: 0x8FBE, - 24468 - 11905: 0x8FBF, - 24469 - 11905: 0xE1E2, - 24470 - 11905: 0x8FC0, - 24471 - 11905: 0xB5C3, - 24472 - 11905: 0xC5C7, - 24473 - 11905: 0xE1E3, - 24474 - 11905: 0x8FC1, - 24475 - 11905: 0x8FC2, - 24476 - 11905: 0xE1E4, - 24477 - 11905: 0x8FC3, - 24478 - 11905: 0x8FC4, - 24479 - 11905: 0x8FC5, - 24480 - 11905: 0x8FC6, - 24481 - 11905: 0xD3F9, - 24482 - 11905: 0x8FC7, - 24483 - 11905: 0x8FC8, - 24484 - 11905: 0x8FC9, - 24485 - 11905: 0x8FCA, - 24486 - 11905: 0x8FCB, - 24487 - 11905: 0x8FCC, - 24488 - 11905: 0xE1E5, - 24489 - 11905: 0x8FCD, - 24490 - 11905: 0xD1AD, - 24491 - 11905: 0x8FCE, - 24492 - 11905: 0x8FCF, - 24493 - 11905: 0xE1E6, - 24494 - 11905: 0xCEA2, - 24495 - 11905: 0x8FD0, - 24496 - 11905: 0x8FD1, - 24497 - 11905: 0x8FD2, - 24498 - 11905: 0x8FD3, - 24499 - 11905: 0x8FD4, - 24500 - 11905: 0x8FD5, - 24501 - 11905: 0xE1E7, - 24502 - 11905: 0x8FD6, - 24503 - 11905: 0xB5C2, - 24504 - 11905: 0x8FD7, - 24505 - 11905: 0x8FD8, - 24506 - 11905: 0x8FD9, - 24507 - 11905: 0x8FDA, - 24508 - 11905: 0xE1E8, - 24509 - 11905: 0xBBD5, - 24510 - 11905: 0x8FDB, - 24511 - 11905: 0x8FDC, - 24512 - 11905: 0x8FDD, - 24513 - 11905: 0x8FDE, - 24514 - 11905: 0x8FDF, - 24515 - 11905: 0xD0C4, - 24516 - 11905: 0xE2E0, - 24517 - 11905: 0xB1D8, - 24518 - 11905: 0xD2E4, - 24519 - 11905: 0x8FE0, - 24520 - 11905: 0x8FE1, - 24521 - 11905: 0xE2E1, - 24522 - 11905: 0x8FE2, - 24523 - 11905: 0x8FE3, - 24524 - 11905: 0xBCC9, - 24525 - 11905: 0xC8CC, - 24526 - 11905: 0x8FE4, - 24527 - 11905: 0xE2E3, - 24528 - 11905: 0xECFE, - 24529 - 11905: 0xECFD, - 24530 - 11905: 0xDFAF, - 24531 - 11905: 0x8FE5, - 24532 - 11905: 0x8FE6, - 24533 - 11905: 0x8FE7, - 24534 - 11905: 0xE2E2, - 24535 - 11905: 0xD6BE, - 24536 - 11905: 0xCDFC, - 24537 - 11905: 0xC3A6, - 24538 - 11905: 0x8FE8, - 24539 - 11905: 0x8FE9, - 24540 - 11905: 0x8FEA, - 24541 - 11905: 0xE3C3, - 24542 - 11905: 0x8FEB, - 24543 - 11905: 0x8FEC, - 24544 - 11905: 0xD6D2, - 24545 - 11905: 0xE2E7, - 24546 - 11905: 0x8FED, - 24547 - 11905: 0x8FEE, - 24548 - 11905: 0xE2E8, - 24549 - 11905: 0x8FEF, - 24550 - 11905: 0x8FF0, - 24551 - 11905: 0xD3C7, - 24552 - 11905: 0x8FF1, - 24553 - 11905: 0x8FF2, - 24554 - 11905: 0xE2EC, - 24555 - 11905: 0xBFEC, - 24556 - 11905: 0x8FF3, - 24557 - 11905: 0xE2ED, - 24558 - 11905: 0xE2E5, - 24559 - 11905: 0x8FF4, - 24560 - 11905: 0x8FF5, - 24561 - 11905: 0xB3C0, - 24562 - 11905: 0x8FF6, - 24563 - 11905: 0x8FF7, - 24564 - 11905: 0x8FF8, - 24565 - 11905: 0xC4EE, - 24566 - 11905: 0x8FF9, - 24567 - 11905: 0x8FFA, - 24568 - 11905: 0xE2EE, - 24569 - 11905: 0x8FFB, - 24570 - 11905: 0x8FFC, - 24571 - 11905: 0xD0C3, - 24572 - 11905: 0x8FFD, - 24573 - 11905: 0xBAF6, - 24574 - 11905: 0xE2E9, - 24575 - 11905: 0xB7DE, - 24576 - 11905: 0xBBB3, - 24577 - 11905: 0xCCAC, - 24578 - 11905: 0xCBCB, - 24579 - 11905: 0xE2E4, - 24580 - 11905: 0xE2E6, - 24581 - 11905: 0xE2EA, - 24582 - 11905: 0xE2EB, - 24583 - 11905: 0x8FFE, - 24584 - 11905: 0x9040, - 24585 - 11905: 0x9041, - 24586 - 11905: 0xE2F7, - 24587 - 11905: 0x9042, - 24588 - 11905: 0x9043, - 24589 - 11905: 0xE2F4, - 24590 - 11905: 0xD4F5, - 24591 - 11905: 0xE2F3, - 24592 - 11905: 0x9044, - 24593 - 11905: 0x9045, - 24594 - 11905: 0xC5AD, - 24595 - 11905: 0x9046, - 24596 - 11905: 0xD5FA, - 24597 - 11905: 0xC5C2, - 24598 - 11905: 0xB2C0, - 24599 - 11905: 0x9047, - 24600 - 11905: 0x9048, - 24601 - 11905: 0xE2EF, - 24602 - 11905: 0x9049, - 24603 - 11905: 0xE2F2, - 24604 - 11905: 0xC1AF, - 24605 - 11905: 0xCBBC, - 24606 - 11905: 0x904A, - 24607 - 11905: 0x904B, - 24608 - 11905: 0xB5A1, - 24609 - 11905: 0xE2F9, - 24610 - 11905: 0x904C, - 24611 - 11905: 0x904D, - 24612 - 11905: 0x904E, - 24613 - 11905: 0xBCB1, - 24614 - 11905: 0xE2F1, - 24615 - 11905: 0xD0D4, - 24616 - 11905: 0xD4B9, - 24617 - 11905: 0xE2F5, - 24618 - 11905: 0xB9D6, - 24619 - 11905: 0xE2F6, - 24620 - 11905: 0x904F, - 24621 - 11905: 0x9050, - 24622 - 11905: 0x9051, - 24623 - 11905: 0xC7D3, - 24624 - 11905: 0x9052, - 24625 - 11905: 0x9053, - 24626 - 11905: 0x9054, - 24627 - 11905: 0x9055, - 24628 - 11905: 0x9056, - 24629 - 11905: 0xE2F0, - 24630 - 11905: 0x9057, - 24631 - 11905: 0x9058, - 24632 - 11905: 0x9059, - 24633 - 11905: 0x905A, - 24634 - 11905: 0x905B, - 24635 - 11905: 0xD7DC, - 24636 - 11905: 0xEDA1, - 24637 - 11905: 0x905C, - 24638 - 11905: 0x905D, - 24639 - 11905: 0xE2F8, - 24640 - 11905: 0x905E, - 24641 - 11905: 0xEDA5, - 24642 - 11905: 0xE2FE, - 24643 - 11905: 0xCAD1, - 24644 - 11905: 0x905F, - 24645 - 11905: 0x9060, - 24646 - 11905: 0x9061, - 24647 - 11905: 0x9062, - 24648 - 11905: 0x9063, - 24649 - 11905: 0x9064, - 24650 - 11905: 0x9065, - 24651 - 11905: 0xC1B5, - 24652 - 11905: 0x9066, - 24653 - 11905: 0xBBD0, - 24654 - 11905: 0x9067, - 24655 - 11905: 0x9068, - 24656 - 11905: 0xBFD6, - 24657 - 11905: 0x9069, - 24658 - 11905: 0xBAE3, - 24659 - 11905: 0x906A, - 24660 - 11905: 0x906B, - 24661 - 11905: 0xCBA1, - 24662 - 11905: 0x906C, - 24663 - 11905: 0x906D, - 24664 - 11905: 0x906E, - 24665 - 11905: 0xEDA6, - 24666 - 11905: 0xEDA3, - 24667 - 11905: 0x906F, - 24668 - 11905: 0x9070, - 24669 - 11905: 0xEDA2, - 24670 - 11905: 0x9071, - 24671 - 11905: 0x9072, - 24672 - 11905: 0x9073, - 24673 - 11905: 0x9074, - 24674 - 11905: 0xBBD6, - 24675 - 11905: 0xEDA7, - 24676 - 11905: 0xD0F4, - 24677 - 11905: 0x9075, - 24678 - 11905: 0x9076, - 24679 - 11905: 0xEDA4, - 24680 - 11905: 0xBADE, - 24681 - 11905: 0xB6F7, - 24682 - 11905: 0xE3A1, - 24683 - 11905: 0xB6B2, - 24684 - 11905: 0xCCF1, - 24685 - 11905: 0xB9A7, - 24686 - 11905: 0x9077, - 24687 - 11905: 0xCFA2, - 24688 - 11905: 0xC7A1, - 24689 - 11905: 0x9078, - 24690 - 11905: 0x9079, - 24691 - 11905: 0xBFD2, - 24692 - 11905: 0x907A, - 24693 - 11905: 0x907B, - 24694 - 11905: 0xB6F1, - 24695 - 11905: 0x907C, - 24696 - 11905: 0xE2FA, - 24697 - 11905: 0xE2FB, - 24698 - 11905: 0xE2FD, - 24699 - 11905: 0xE2FC, - 24700 - 11905: 0xC4D5, - 24701 - 11905: 0xE3A2, - 24702 - 11905: 0x907D, - 24703 - 11905: 0xD3C1, - 24704 - 11905: 0x907E, - 24705 - 11905: 0x9080, - 24706 - 11905: 0x9081, - 24707 - 11905: 0xE3A7, - 24708 - 11905: 0xC7C4, - 24709 - 11905: 0x9082, - 24710 - 11905: 0x9083, - 24711 - 11905: 0x9084, - 24712 - 11905: 0x9085, - 24713 - 11905: 0xCFA4, - 24714 - 11905: 0x9086, - 24715 - 11905: 0x9087, - 24716 - 11905: 0xE3A9, - 24717 - 11905: 0xBAB7, - 24718 - 11905: 0x9088, - 24719 - 11905: 0x9089, - 24720 - 11905: 0x908A, - 24721 - 11905: 0x908B, - 24722 - 11905: 0xE3A8, - 24723 - 11905: 0x908C, - 24724 - 11905: 0xBBDA, - 24725 - 11905: 0x908D, - 24726 - 11905: 0xE3A3, - 24727 - 11905: 0x908E, - 24728 - 11905: 0x908F, - 24729 - 11905: 0x9090, - 24730 - 11905: 0xE3A4, - 24731 - 11905: 0xE3AA, - 24732 - 11905: 0x9091, - 24733 - 11905: 0xE3A6, - 24734 - 11905: 0x9092, - 24735 - 11905: 0xCEF2, - 24736 - 11905: 0xD3C6, - 24737 - 11905: 0x9093, - 24738 - 11905: 0x9094, - 24739 - 11905: 0xBBBC, - 24740 - 11905: 0x9095, - 24741 - 11905: 0x9096, - 24742 - 11905: 0xD4C3, - 24743 - 11905: 0x9097, - 24744 - 11905: 0xC4FA, - 24745 - 11905: 0x9098, - 24746 - 11905: 0x9099, - 24747 - 11905: 0xEDA8, - 24748 - 11905: 0xD0FC, - 24749 - 11905: 0xE3A5, - 24750 - 11905: 0x909A, - 24751 - 11905: 0xC3F5, - 24752 - 11905: 0x909B, - 24753 - 11905: 0xE3AD, - 24754 - 11905: 0xB1AF, - 24755 - 11905: 0x909C, - 24756 - 11905: 0xE3B2, - 24757 - 11905: 0x909D, - 24758 - 11905: 0x909E, - 24759 - 11905: 0x909F, - 24760 - 11905: 0xBCC2, - 24761 - 11905: 0x90A0, - 24762 - 11905: 0x90A1, - 24763 - 11905: 0xE3AC, - 24764 - 11905: 0xB5BF, - 24765 - 11905: 0x90A2, - 24766 - 11905: 0x90A3, - 24767 - 11905: 0x90A4, - 24768 - 11905: 0x90A5, - 24769 - 11905: 0x90A6, - 24770 - 11905: 0x90A7, - 24771 - 11905: 0x90A8, - 24772 - 11905: 0x90A9, - 24773 - 11905: 0xC7E9, - 24774 - 11905: 0xE3B0, - 24775 - 11905: 0x90AA, - 24776 - 11905: 0x90AB, - 24777 - 11905: 0x90AC, - 24778 - 11905: 0xBEAA, - 24779 - 11905: 0xCDEF, - 24780 - 11905: 0x90AD, - 24781 - 11905: 0x90AE, - 24782 - 11905: 0x90AF, - 24783 - 11905: 0x90B0, - 24784 - 11905: 0x90B1, - 24785 - 11905: 0xBBF3, - 24786 - 11905: 0x90B2, - 24787 - 11905: 0x90B3, - 24788 - 11905: 0x90B4, - 24789 - 11905: 0xCCE8, - 24790 - 11905: 0x90B5, - 24791 - 11905: 0x90B6, - 24792 - 11905: 0xE3AF, - 24793 - 11905: 0x90B7, - 24794 - 11905: 0xE3B1, - 24795 - 11905: 0x90B8, - 24796 - 11905: 0xCFA7, - 24797 - 11905: 0xE3AE, - 24798 - 11905: 0x90B9, - 24799 - 11905: 0xCEA9, - 24800 - 11905: 0xBBDD, - 24801 - 11905: 0x90BA, - 24802 - 11905: 0x90BB, - 24803 - 11905: 0x90BC, - 24804 - 11905: 0x90BD, - 24805 - 11905: 0x90BE, - 24806 - 11905: 0xB5EB, - 24807 - 11905: 0xBEE5, - 24808 - 11905: 0xB2D2, - 24809 - 11905: 0xB3CD, - 24810 - 11905: 0x90BF, - 24811 - 11905: 0xB1B9, - 24812 - 11905: 0xE3AB, - 24813 - 11905: 0xB2D1, - 24814 - 11905: 0xB5AC, - 24815 - 11905: 0xB9DF, - 24816 - 11905: 0xB6E8, - 24817 - 11905: 0x90C0, - 24818 - 11905: 0x90C1, - 24819 - 11905: 0xCFEB, - 24820 - 11905: 0xE3B7, - 24821 - 11905: 0x90C2, - 24822 - 11905: 0xBBCC, - 24823 - 11905: 0x90C3, - 24824 - 11905: 0x90C4, - 24825 - 11905: 0xC8C7, - 24826 - 11905: 0xD0CA, - 24827 - 11905: 0x90C5, - 24828 - 11905: 0x90C6, - 24829 - 11905: 0x90C7, - 24830 - 11905: 0x90C8, - 24831 - 11905: 0x90C9, - 24832 - 11905: 0xE3B8, - 24833 - 11905: 0xB3EE, - 24834 - 11905: 0x90CA, - 24835 - 11905: 0x90CB, - 24836 - 11905: 0x90CC, - 24837 - 11905: 0x90CD, - 24838 - 11905: 0xEDA9, - 24839 - 11905: 0x90CE, - 24840 - 11905: 0xD3FA, - 24841 - 11905: 0xD3E4, - 24842 - 11905: 0x90CF, - 24843 - 11905: 0x90D0, - 24844 - 11905: 0x90D1, - 24845 - 11905: 0xEDAA, - 24846 - 11905: 0xE3B9, - 24847 - 11905: 0xD2E2, - 24848 - 11905: 0x90D2, - 24849 - 11905: 0x90D3, - 24850 - 11905: 0x90D4, - 24851 - 11905: 0x90D5, - 24852 - 11905: 0x90D6, - 24853 - 11905: 0xE3B5, - 24854 - 11905: 0x90D7, - 24855 - 11905: 0x90D8, - 24856 - 11905: 0x90D9, - 24857 - 11905: 0x90DA, - 24858 - 11905: 0xD3DE, - 24859 - 11905: 0x90DB, - 24860 - 11905: 0x90DC, - 24861 - 11905: 0x90DD, - 24862 - 11905: 0x90DE, - 24863 - 11905: 0xB8D0, - 24864 - 11905: 0xE3B3, - 24865 - 11905: 0x90DF, - 24866 - 11905: 0x90E0, - 24867 - 11905: 0xE3B6, - 24868 - 11905: 0xB7DF, - 24869 - 11905: 0x90E1, - 24870 - 11905: 0xE3B4, - 24871 - 11905: 0xC0A2, - 24872 - 11905: 0x90E2, - 24873 - 11905: 0x90E3, - 24874 - 11905: 0x90E4, - 24875 - 11905: 0xE3BA, - 24876 - 11905: 0x90E5, - 24877 - 11905: 0x90E6, - 24878 - 11905: 0x90E7, - 24879 - 11905: 0x90E8, - 24880 - 11905: 0x90E9, - 24881 - 11905: 0x90EA, - 24882 - 11905: 0x90EB, - 24883 - 11905: 0x90EC, - 24884 - 11905: 0x90ED, - 24885 - 11905: 0x90EE, - 24886 - 11905: 0x90EF, - 24887 - 11905: 0x90F0, - 24888 - 11905: 0x90F1, - 24889 - 11905: 0x90F2, - 24890 - 11905: 0x90F3, - 24891 - 11905: 0x90F4, - 24892 - 11905: 0x90F5, - 24893 - 11905: 0x90F6, - 24894 - 11905: 0x90F7, - 24895 - 11905: 0xD4B8, - 24896 - 11905: 0x90F8, - 24897 - 11905: 0x90F9, - 24898 - 11905: 0x90FA, - 24899 - 11905: 0x90FB, - 24900 - 11905: 0x90FC, - 24901 - 11905: 0x90FD, - 24902 - 11905: 0x90FE, - 24903 - 11905: 0x9140, - 24904 - 11905: 0xB4C8, - 24905 - 11905: 0x9141, - 24906 - 11905: 0xE3BB, - 24907 - 11905: 0x9142, - 24908 - 11905: 0xBBC5, - 24909 - 11905: 0x9143, - 24910 - 11905: 0xC9F7, - 24911 - 11905: 0x9144, - 24912 - 11905: 0x9145, - 24913 - 11905: 0xC9E5, - 24914 - 11905: 0x9146, - 24915 - 11905: 0x9147, - 24916 - 11905: 0x9148, - 24917 - 11905: 0xC4BD, - 24918 - 11905: 0x9149, - 24919 - 11905: 0x914A, - 24920 - 11905: 0x914B, - 24921 - 11905: 0x914C, - 24922 - 11905: 0x914D, - 24923 - 11905: 0x914E, - 24924 - 11905: 0x914F, - 24925 - 11905: 0xEDAB, - 24926 - 11905: 0x9150, - 24927 - 11905: 0x9151, - 24928 - 11905: 0x9152, - 24929 - 11905: 0x9153, - 24930 - 11905: 0xC2FD, - 24931 - 11905: 0x9154, - 24932 - 11905: 0x9155, - 24933 - 11905: 0x9156, - 24934 - 11905: 0x9157, - 24935 - 11905: 0xBBDB, - 24936 - 11905: 0xBFAE, - 24937 - 11905: 0x9158, - 24938 - 11905: 0x9159, - 24939 - 11905: 0x915A, - 24940 - 11905: 0x915B, - 24941 - 11905: 0x915C, - 24942 - 11905: 0x915D, - 24943 - 11905: 0x915E, - 24944 - 11905: 0xCEBF, - 24945 - 11905: 0x915F, - 24946 - 11905: 0x9160, - 24947 - 11905: 0x9161, - 24948 - 11905: 0x9162, - 24949 - 11905: 0xE3BC, - 24950 - 11905: 0x9163, - 24951 - 11905: 0xBFB6, - 24952 - 11905: 0x9164, - 24953 - 11905: 0x9165, - 24954 - 11905: 0x9166, - 24955 - 11905: 0x9167, - 24956 - 11905: 0x9168, - 24957 - 11905: 0x9169, - 24958 - 11905: 0x916A, - 24959 - 11905: 0x916B, - 24960 - 11905: 0x916C, - 24961 - 11905: 0x916D, - 24962 - 11905: 0x916E, - 24963 - 11905: 0x916F, - 24964 - 11905: 0x9170, - 24965 - 11905: 0x9171, - 24966 - 11905: 0x9172, - 24967 - 11905: 0x9173, - 24968 - 11905: 0x9174, - 24969 - 11905: 0x9175, - 24970 - 11905: 0x9176, - 24971 - 11905: 0xB1EF, - 24972 - 11905: 0x9177, - 24973 - 11905: 0x9178, - 24974 - 11905: 0xD4F7, - 24975 - 11905: 0x9179, - 24976 - 11905: 0x917A, - 24977 - 11905: 0x917B, - 24978 - 11905: 0x917C, - 24979 - 11905: 0x917D, - 24980 - 11905: 0xE3BE, - 24981 - 11905: 0x917E, - 24982 - 11905: 0x9180, - 24983 - 11905: 0x9181, - 24984 - 11905: 0x9182, - 24985 - 11905: 0x9183, - 24986 - 11905: 0x9184, - 24987 - 11905: 0x9185, - 24988 - 11905: 0x9186, - 24989 - 11905: 0xEDAD, - 24990 - 11905: 0x9187, - 24991 - 11905: 0x9188, - 24992 - 11905: 0x9189, - 24993 - 11905: 0x918A, - 24994 - 11905: 0x918B, - 24995 - 11905: 0x918C, - 24996 - 11905: 0x918D, - 24997 - 11905: 0x918E, - 24998 - 11905: 0x918F, - 24999 - 11905: 0xE3BF, - 25000 - 11905: 0xBAA9, - 25001 - 11905: 0xEDAC, - 25002 - 11905: 0x9190, - 25003 - 11905: 0x9191, - 25004 - 11905: 0xE3BD, - 25005 - 11905: 0x9192, - 25006 - 11905: 0x9193, - 25007 - 11905: 0x9194, - 25008 - 11905: 0x9195, - 25009 - 11905: 0x9196, - 25010 - 11905: 0x9197, - 25011 - 11905: 0x9198, - 25012 - 11905: 0x9199, - 25013 - 11905: 0x919A, - 25014 - 11905: 0x919B, - 25015 - 11905: 0xE3C0, - 25016 - 11905: 0x919C, - 25017 - 11905: 0x919D, - 25018 - 11905: 0x919E, - 25019 - 11905: 0x919F, - 25020 - 11905: 0x91A0, - 25021 - 11905: 0x91A1, - 25022 - 11905: 0xBAB6, - 25023 - 11905: 0x91A2, - 25024 - 11905: 0x91A3, - 25025 - 11905: 0x91A4, - 25026 - 11905: 0xB6AE, - 25027 - 11905: 0x91A5, - 25028 - 11905: 0x91A6, - 25029 - 11905: 0x91A7, - 25030 - 11905: 0x91A8, - 25031 - 11905: 0x91A9, - 25032 - 11905: 0xD0B8, - 25033 - 11905: 0x91AA, - 25034 - 11905: 0xB0C3, - 25035 - 11905: 0xEDAE, - 25036 - 11905: 0x91AB, - 25037 - 11905: 0x91AC, - 25038 - 11905: 0x91AD, - 25039 - 11905: 0x91AE, - 25040 - 11905: 0x91AF, - 25041 - 11905: 0xEDAF, - 25042 - 11905: 0xC0C1, - 25043 - 11905: 0x91B0, - 25044 - 11905: 0xE3C1, - 25045 - 11905: 0x91B1, - 25046 - 11905: 0x91B2, - 25047 - 11905: 0x91B3, - 25048 - 11905: 0x91B4, - 25049 - 11905: 0x91B5, - 25050 - 11905: 0x91B6, - 25051 - 11905: 0x91B7, - 25052 - 11905: 0x91B8, - 25053 - 11905: 0x91B9, - 25054 - 11905: 0x91BA, - 25055 - 11905: 0x91BB, - 25056 - 11905: 0x91BC, - 25057 - 11905: 0x91BD, - 25058 - 11905: 0x91BE, - 25059 - 11905: 0x91BF, - 25060 - 11905: 0x91C0, - 25061 - 11905: 0x91C1, - 25062 - 11905: 0xC5B3, - 25063 - 11905: 0x91C2, - 25064 - 11905: 0x91C3, - 25065 - 11905: 0x91C4, - 25066 - 11905: 0x91C5, - 25067 - 11905: 0x91C6, - 25068 - 11905: 0x91C7, - 25069 - 11905: 0x91C8, - 25070 - 11905: 0x91C9, - 25071 - 11905: 0x91CA, - 25072 - 11905: 0x91CB, - 25073 - 11905: 0x91CC, - 25074 - 11905: 0x91CD, - 25075 - 11905: 0x91CE, - 25076 - 11905: 0x91CF, - 25077 - 11905: 0xE3C2, - 25078 - 11905: 0x91D0, - 25079 - 11905: 0x91D1, - 25080 - 11905: 0x91D2, - 25081 - 11905: 0x91D3, - 25082 - 11905: 0x91D4, - 25083 - 11905: 0x91D5, - 25084 - 11905: 0x91D6, - 25085 - 11905: 0x91D7, - 25086 - 11905: 0x91D8, - 25087 - 11905: 0xDCB2, - 25088 - 11905: 0x91D9, - 25089 - 11905: 0x91DA, - 25090 - 11905: 0x91DB, - 25091 - 11905: 0x91DC, - 25092 - 11905: 0x91DD, - 25093 - 11905: 0x91DE, - 25094 - 11905: 0xEDB0, - 25095 - 11905: 0x91DF, - 25096 - 11905: 0xB8EA, - 25097 - 11905: 0x91E0, - 25098 - 11905: 0xCEEC, - 25099 - 11905: 0xEAA7, - 25100 - 11905: 0xD0E7, - 25101 - 11905: 0xCAF9, - 25102 - 11905: 0xC8D6, - 25103 - 11905: 0xCFB7, - 25104 - 11905: 0xB3C9, - 25105 - 11905: 0xCED2, - 25106 - 11905: 0xBDE4, - 25107 - 11905: 0x91E1, - 25108 - 11905: 0x91E2, - 25109 - 11905: 0xE3DE, - 25110 - 11905: 0xBBF2, - 25111 - 11905: 0xEAA8, - 25112 - 11905: 0xD5BD, - 25113 - 11905: 0x91E3, - 25114 - 11905: 0xC6DD, - 25115 - 11905: 0xEAA9, - 25116 - 11905: 0x91E4, - 25117 - 11905: 0x91E5, - 25118 - 11905: 0x91E6, - 25119 - 11905: 0xEAAA, - 25120 - 11905: 0x91E7, - 25121 - 11905: 0xEAAC, - 25122 - 11905: 0xEAAB, - 25123 - 11905: 0x91E8, - 25124 - 11905: 0xEAAE, - 25125 - 11905: 0xEAAD, - 25126 - 11905: 0x91E9, - 25127 - 11905: 0x91EA, - 25128 - 11905: 0x91EB, - 25129 - 11905: 0x91EC, - 25130 - 11905: 0xBDD8, - 25131 - 11905: 0x91ED, - 25132 - 11905: 0xEAAF, - 25133 - 11905: 0x91EE, - 25134 - 11905: 0xC2BE, - 25135 - 11905: 0x91EF, - 25136 - 11905: 0x91F0, - 25137 - 11905: 0x91F1, - 25138 - 11905: 0x91F2, - 25139 - 11905: 0xB4C1, - 25140 - 11905: 0xB4F7, - 25141 - 11905: 0x91F3, - 25142 - 11905: 0x91F4, - 25143 - 11905: 0xBBA7, - 25144 - 11905: 0x91F5, - 25145 - 11905: 0x91F6, - 25146 - 11905: 0x91F7, - 25147 - 11905: 0x91F8, - 25148 - 11905: 0x91F9, - 25149 - 11905: 0xECE6, - 25150 - 11905: 0xECE5, - 25151 - 11905: 0xB7BF, - 25152 - 11905: 0xCBF9, - 25153 - 11905: 0xB1E2, - 25154 - 11905: 0x91FA, - 25155 - 11905: 0xECE7, - 25156 - 11905: 0x91FB, - 25157 - 11905: 0x91FC, - 25158 - 11905: 0x91FD, - 25159 - 11905: 0xC9C8, - 25160 - 11905: 0xECE8, - 25161 - 11905: 0xECE9, - 25162 - 11905: 0x91FE, - 25163 - 11905: 0xCAD6, - 25164 - 11905: 0xDED0, - 25165 - 11905: 0xB2C5, - 25166 - 11905: 0xD4FA, - 25167 - 11905: 0x9240, - 25168 - 11905: 0x9241, - 25169 - 11905: 0xC6CB, - 25170 - 11905: 0xB0C7, - 25171 - 11905: 0xB4F2, - 25172 - 11905: 0xC8D3, - 25173 - 11905: 0x9242, - 25174 - 11905: 0x9243, - 25175 - 11905: 0x9244, - 25176 - 11905: 0xCDD0, - 25177 - 11905: 0x9245, - 25178 - 11905: 0x9246, - 25179 - 11905: 0xBFB8, - 25180 - 11905: 0x9247, - 25181 - 11905: 0x9248, - 25182 - 11905: 0x9249, - 25183 - 11905: 0x924A, - 25184 - 11905: 0x924B, - 25185 - 11905: 0x924C, - 25186 - 11905: 0x924D, - 25187 - 11905: 0xBFDB, - 25188 - 11905: 0x924E, - 25189 - 11905: 0x924F, - 25190 - 11905: 0xC7A4, - 25191 - 11905: 0xD6B4, - 25192 - 11905: 0x9250, - 25193 - 11905: 0xC0A9, - 25194 - 11905: 0xDED1, - 25195 - 11905: 0xC9A8, - 25196 - 11905: 0xD1EF, - 25197 - 11905: 0xC5A4, - 25198 - 11905: 0xB0E7, - 25199 - 11905: 0xB3B6, - 25200 - 11905: 0xC8C5, - 25201 - 11905: 0x9251, - 25202 - 11905: 0x9252, - 25203 - 11905: 0xB0E2, - 25204 - 11905: 0x9253, - 25205 - 11905: 0x9254, - 25206 - 11905: 0xB7F6, - 25207 - 11905: 0x9255, - 25208 - 11905: 0x9256, - 25209 - 11905: 0xC5FA, - 25210 - 11905: 0x9257, - 25211 - 11905: 0x9258, - 25212 - 11905: 0xB6F3, - 25213 - 11905: 0x9259, - 25214 - 11905: 0xD5D2, - 25215 - 11905: 0xB3D0, - 25216 - 11905: 0xBCBC, - 25217 - 11905: 0x925A, - 25218 - 11905: 0x925B, - 25219 - 11905: 0x925C, - 25220 - 11905: 0xB3AD, - 25221 - 11905: 0x925D, - 25222 - 11905: 0x925E, - 25223 - 11905: 0x925F, - 25224 - 11905: 0x9260, - 25225 - 11905: 0xBEF1, - 25226 - 11905: 0xB0D1, - 25227 - 11905: 0x9261, - 25228 - 11905: 0x9262, - 25229 - 11905: 0x9263, - 25230 - 11905: 0x9264, - 25231 - 11905: 0x9265, - 25232 - 11905: 0x9266, - 25233 - 11905: 0xD2D6, - 25234 - 11905: 0xCAE3, - 25235 - 11905: 0xD7A5, - 25236 - 11905: 0x9267, - 25237 - 11905: 0xCDB6, - 25238 - 11905: 0xB6B6, - 25239 - 11905: 0xBFB9, - 25240 - 11905: 0xD5DB, - 25241 - 11905: 0x9268, - 25242 - 11905: 0xB8A7, - 25243 - 11905: 0xC5D7, - 25244 - 11905: 0x9269, - 25245 - 11905: 0x926A, - 25246 - 11905: 0x926B, - 25247 - 11905: 0xDED2, - 25248 - 11905: 0xBFD9, - 25249 - 11905: 0xC2D5, - 25250 - 11905: 0xC7C0, - 25251 - 11905: 0x926C, - 25252 - 11905: 0xBBA4, - 25253 - 11905: 0xB1A8, - 25254 - 11905: 0x926D, - 25255 - 11905: 0x926E, - 25256 - 11905: 0xC5EA, - 25257 - 11905: 0x926F, - 25258 - 11905: 0x9270, - 25259 - 11905: 0xC5FB, - 25260 - 11905: 0xCCA7, - 25261 - 11905: 0x9271, - 25262 - 11905: 0x9272, - 25263 - 11905: 0x9273, - 25264 - 11905: 0x9274, - 25265 - 11905: 0xB1A7, - 25266 - 11905: 0x9275, - 25267 - 11905: 0x9276, - 25268 - 11905: 0x9277, - 25269 - 11905: 0xB5D6, - 25270 - 11905: 0x9278, - 25271 - 11905: 0x9279, - 25272 - 11905: 0x927A, - 25273 - 11905: 0xC4A8, - 25274 - 11905: 0x927B, - 25275 - 11905: 0xDED3, - 25276 - 11905: 0xD1BA, - 25277 - 11905: 0xB3E9, - 25278 - 11905: 0x927C, - 25279 - 11905: 0xC3F2, - 25280 - 11905: 0x927D, - 25281 - 11905: 0x927E, - 25282 - 11905: 0xB7F7, - 25283 - 11905: 0x9280, - 25284 - 11905: 0xD6F4, - 25285 - 11905: 0xB5A3, - 25286 - 11905: 0xB2F0, - 25287 - 11905: 0xC4B4, - 25288 - 11905: 0xC4E9, - 25289 - 11905: 0xC0AD, - 25290 - 11905: 0xDED4, - 25291 - 11905: 0x9281, - 25292 - 11905: 0xB0E8, - 25293 - 11905: 0xC5C4, - 25294 - 11905: 0xC1E0, - 25295 - 11905: 0x9282, - 25296 - 11905: 0xB9D5, - 25297 - 11905: 0x9283, - 25298 - 11905: 0xBEDC, - 25299 - 11905: 0xCDD8, - 25300 - 11905: 0xB0CE, - 25301 - 11905: 0x9284, - 25302 - 11905: 0xCDCF, - 25303 - 11905: 0xDED6, - 25304 - 11905: 0xBED0, - 25305 - 11905: 0xD7BE, - 25306 - 11905: 0xDED5, - 25307 - 11905: 0xD5D0, - 25308 - 11905: 0xB0DD, - 25309 - 11905: 0x9285, - 25310 - 11905: 0x9286, - 25311 - 11905: 0xC4E2, - 25312 - 11905: 0x9287, - 25313 - 11905: 0x9288, - 25314 - 11905: 0xC2A3, - 25315 - 11905: 0xBCF0, - 25316 - 11905: 0x9289, - 25317 - 11905: 0xD3B5, - 25318 - 11905: 0xC0B9, - 25319 - 11905: 0xC5A1, - 25320 - 11905: 0xB2A6, - 25321 - 11905: 0xD4F1, - 25322 - 11905: 0x928A, - 25323 - 11905: 0x928B, - 25324 - 11905: 0xC0A8, - 25325 - 11905: 0xCAC3, - 25326 - 11905: 0xDED7, - 25327 - 11905: 0xD5FC, - 25328 - 11905: 0x928C, - 25329 - 11905: 0xB9B0, - 25330 - 11905: 0x928D, - 25331 - 11905: 0xC8AD, - 25332 - 11905: 0xCBA9, - 25333 - 11905: 0x928E, - 25334 - 11905: 0xDED9, - 25335 - 11905: 0xBFBD, - 25336 - 11905: 0x928F, - 25337 - 11905: 0x9290, - 25338 - 11905: 0x9291, - 25339 - 11905: 0x9292, - 25340 - 11905: 0xC6B4, - 25341 - 11905: 0xD7A7, - 25342 - 11905: 0xCAB0, - 25343 - 11905: 0xC4C3, - 25344 - 11905: 0x9293, - 25345 - 11905: 0xB3D6, - 25346 - 11905: 0xB9D2, - 25347 - 11905: 0x9294, - 25348 - 11905: 0x9295, - 25349 - 11905: 0x9296, - 25350 - 11905: 0x9297, - 25351 - 11905: 0xD6B8, - 25352 - 11905: 0xEAFC, - 25353 - 11905: 0xB0B4, - 25354 - 11905: 0x9298, - 25355 - 11905: 0x9299, - 25356 - 11905: 0x929A, - 25357 - 11905: 0x929B, - 25358 - 11905: 0xBFE6, - 25359 - 11905: 0x929C, - 25360 - 11905: 0x929D, - 25361 - 11905: 0xCCF4, - 25362 - 11905: 0x929E, - 25363 - 11905: 0x929F, - 25364 - 11905: 0x92A0, - 25365 - 11905: 0x92A1, - 25366 - 11905: 0xCDDA, - 25367 - 11905: 0x92A2, - 25368 - 11905: 0x92A3, - 25369 - 11905: 0x92A4, - 25370 - 11905: 0xD6BF, - 25371 - 11905: 0xC2CE, - 25372 - 11905: 0x92A5, - 25373 - 11905: 0xCECE, - 25374 - 11905: 0xCCA2, - 25375 - 11905: 0xD0AE, - 25376 - 11905: 0xC4D3, - 25377 - 11905: 0xB5B2, - 25378 - 11905: 0xDED8, - 25379 - 11905: 0xD5F5, - 25380 - 11905: 0xBCB7, - 25381 - 11905: 0xBBD3, - 25382 - 11905: 0x92A6, - 25383 - 11905: 0x92A7, - 25384 - 11905: 0xB0A4, - 25385 - 11905: 0x92A8, - 25386 - 11905: 0xC5B2, - 25387 - 11905: 0xB4EC, - 25388 - 11905: 0x92A9, - 25389 - 11905: 0x92AA, - 25390 - 11905: 0x92AB, - 25391 - 11905: 0xD5F1, - 25392 - 11905: 0x92AC, - 25393 - 11905: 0x92AD, - 25394 - 11905: 0xEAFD, - 25395 - 11905: 0x92AE, - 25396 - 11905: 0x92AF, - 25397 - 11905: 0x92B0, - 25398 - 11905: 0x92B1, - 25399 - 11905: 0x92B2, - 25400 - 11905: 0x92B3, - 25401 - 11905: 0xDEDA, - 25402 - 11905: 0xCDA6, - 25403 - 11905: 0x92B4, - 25404 - 11905: 0x92B5, - 25405 - 11905: 0xCDEC, - 25406 - 11905: 0x92B6, - 25407 - 11905: 0x92B7, - 25408 - 11905: 0x92B8, - 25409 - 11905: 0x92B9, - 25410 - 11905: 0xCEE6, - 25411 - 11905: 0xDEDC, - 25412 - 11905: 0x92BA, - 25413 - 11905: 0xCDB1, - 25414 - 11905: 0xC0A6, - 25415 - 11905: 0x92BB, - 25416 - 11905: 0x92BC, - 25417 - 11905: 0xD7BD, - 25418 - 11905: 0x92BD, - 25419 - 11905: 0xDEDB, - 25420 - 11905: 0xB0C6, - 25421 - 11905: 0xBAB4, - 25422 - 11905: 0xC9D3, - 25423 - 11905: 0xC4F3, - 25424 - 11905: 0xBEE8, - 25425 - 11905: 0x92BE, - 25426 - 11905: 0x92BF, - 25427 - 11905: 0x92C0, - 25428 - 11905: 0x92C1, - 25429 - 11905: 0xB2B6, - 25430 - 11905: 0x92C2, - 25431 - 11905: 0x92C3, - 25432 - 11905: 0x92C4, - 25433 - 11905: 0x92C5, - 25434 - 11905: 0x92C6, - 25435 - 11905: 0x92C7, - 25436 - 11905: 0x92C8, - 25437 - 11905: 0x92C9, - 25438 - 11905: 0xC0CC, - 25439 - 11905: 0xCBF0, - 25440 - 11905: 0x92CA, - 25441 - 11905: 0xBCF1, - 25442 - 11905: 0xBBBB, - 25443 - 11905: 0xB5B7, - 25444 - 11905: 0x92CB, - 25445 - 11905: 0x92CC, - 25446 - 11905: 0x92CD, - 25447 - 11905: 0xC5F5, - 25448 - 11905: 0x92CE, - 25449 - 11905: 0xDEE6, - 25450 - 11905: 0x92CF, - 25451 - 11905: 0x92D0, - 25452 - 11905: 0x92D1, - 25453 - 11905: 0xDEE3, - 25454 - 11905: 0xBEDD, - 25455 - 11905: 0x92D2, - 25456 - 11905: 0x92D3, - 25457 - 11905: 0xDEDF, - 25458 - 11905: 0x92D4, - 25459 - 11905: 0x92D5, - 25460 - 11905: 0x92D6, - 25461 - 11905: 0x92D7, - 25462 - 11905: 0xB4B7, - 25463 - 11905: 0xBDDD, - 25464 - 11905: 0x92D8, - 25465 - 11905: 0x92D9, - 25466 - 11905: 0xDEE0, - 25467 - 11905: 0xC4ED, - 25468 - 11905: 0x92DA, - 25469 - 11905: 0x92DB, - 25470 - 11905: 0x92DC, - 25471 - 11905: 0x92DD, - 25472 - 11905: 0xCFC6, - 25473 - 11905: 0x92DE, - 25474 - 11905: 0xB5E0, - 25475 - 11905: 0x92DF, - 25476 - 11905: 0x92E0, - 25477 - 11905: 0x92E1, - 25478 - 11905: 0x92E2, - 25479 - 11905: 0xB6DE, - 25480 - 11905: 0xCADA, - 25481 - 11905: 0xB5F4, - 25482 - 11905: 0xDEE5, - 25483 - 11905: 0x92E3, - 25484 - 11905: 0xD5C6, - 25485 - 11905: 0x92E4, - 25486 - 11905: 0xDEE1, - 25487 - 11905: 0xCCCD, - 25488 - 11905: 0xC6FE, - 25489 - 11905: 0x92E5, - 25490 - 11905: 0xC5C5, - 25491 - 11905: 0x92E6, - 25492 - 11905: 0x92E7, - 25493 - 11905: 0x92E8, - 25494 - 11905: 0xD2B4, - 25495 - 11905: 0x92E9, - 25496 - 11905: 0xBEF2, - 25497 - 11905: 0x92EA, - 25498 - 11905: 0x92EB, - 25499 - 11905: 0x92EC, - 25500 - 11905: 0x92ED, - 25501 - 11905: 0x92EE, - 25502 - 11905: 0x92EF, - 25503 - 11905: 0x92F0, - 25504 - 11905: 0xC2D3, - 25505 - 11905: 0x92F1, - 25506 - 11905: 0xCCBD, - 25507 - 11905: 0xB3B8, - 25508 - 11905: 0x92F2, - 25509 - 11905: 0xBDD3, - 25510 - 11905: 0x92F3, - 25511 - 11905: 0xBFD8, - 25512 - 11905: 0xCDC6, - 25513 - 11905: 0xD1DA, - 25514 - 11905: 0xB4EB, - 25515 - 11905: 0x92F4, - 25516 - 11905: 0xDEE4, - 25517 - 11905: 0xDEDD, - 25518 - 11905: 0xDEE7, - 25519 - 11905: 0x92F5, - 25520 - 11905: 0xEAFE, - 25521 - 11905: 0x92F6, - 25522 - 11905: 0x92F7, - 25523 - 11905: 0xC2B0, - 25524 - 11905: 0xDEE2, - 25525 - 11905: 0x92F8, - 25526 - 11905: 0x92F9, - 25527 - 11905: 0xD6C0, - 25528 - 11905: 0xB5A7, - 25529 - 11905: 0x92FA, - 25530 - 11905: 0xB2F4, - 25531 - 11905: 0x92FB, - 25532 - 11905: 0xDEE8, - 25533 - 11905: 0x92FC, - 25534 - 11905: 0xDEF2, - 25535 - 11905: 0x92FD, - 25536 - 11905: 0x92FE, - 25537 - 11905: 0x9340, - 25538 - 11905: 0x9341, - 25539 - 11905: 0x9342, - 25540 - 11905: 0xDEED, - 25541 - 11905: 0x9343, - 25542 - 11905: 0xDEF1, - 25543 - 11905: 0x9344, - 25544 - 11905: 0x9345, - 25545 - 11905: 0xC8E0, - 25546 - 11905: 0x9346, - 25547 - 11905: 0x9347, - 25548 - 11905: 0x9348, - 25549 - 11905: 0xD7E1, - 25550 - 11905: 0xDEEF, - 25551 - 11905: 0xC3E8, - 25552 - 11905: 0xCCE1, - 25553 - 11905: 0x9349, - 25554 - 11905: 0xB2E5, - 25555 - 11905: 0x934A, - 25556 - 11905: 0x934B, - 25557 - 11905: 0x934C, - 25558 - 11905: 0xD2BE, - 25559 - 11905: 0x934D, - 25560 - 11905: 0x934E, - 25561 - 11905: 0x934F, - 25562 - 11905: 0x9350, - 25563 - 11905: 0x9351, - 25564 - 11905: 0x9352, - 25565 - 11905: 0x9353, - 25566 - 11905: 0xDEEE, - 25567 - 11905: 0x9354, - 25568 - 11905: 0xDEEB, - 25569 - 11905: 0xCED5, - 25570 - 11905: 0x9355, - 25571 - 11905: 0xB4A7, - 25572 - 11905: 0x9356, - 25573 - 11905: 0x9357, - 25574 - 11905: 0x9358, - 25575 - 11905: 0x9359, - 25576 - 11905: 0x935A, - 25577 - 11905: 0xBFAB, - 25578 - 11905: 0xBEBE, - 25579 - 11905: 0x935B, - 25580 - 11905: 0x935C, - 25581 - 11905: 0xBDD2, - 25582 - 11905: 0x935D, - 25583 - 11905: 0x935E, - 25584 - 11905: 0x935F, - 25585 - 11905: 0x9360, - 25586 - 11905: 0xDEE9, - 25587 - 11905: 0x9361, - 25588 - 11905: 0xD4AE, - 25589 - 11905: 0x9362, - 25590 - 11905: 0xDEDE, - 25591 - 11905: 0x9363, - 25592 - 11905: 0xDEEA, - 25593 - 11905: 0x9364, - 25594 - 11905: 0x9365, - 25595 - 11905: 0x9366, - 25596 - 11905: 0x9367, - 25597 - 11905: 0xC0BF, - 25598 - 11905: 0x9368, - 25599 - 11905: 0xDEEC, - 25600 - 11905: 0xB2F3, - 25601 - 11905: 0xB8E9, - 25602 - 11905: 0xC2A7, - 25603 - 11905: 0x9369, - 25604 - 11905: 0x936A, - 25605 - 11905: 0xBDC1, - 25606 - 11905: 0x936B, - 25607 - 11905: 0x936C, - 25608 - 11905: 0x936D, - 25609 - 11905: 0x936E, - 25610 - 11905: 0x936F, - 25611 - 11905: 0xDEF5, - 25612 - 11905: 0xDEF8, - 25613 - 11905: 0x9370, - 25614 - 11905: 0x9371, - 25615 - 11905: 0xB2AB, - 25616 - 11905: 0xB4A4, - 25617 - 11905: 0x9372, - 25618 - 11905: 0x9373, - 25619 - 11905: 0xB4EA, - 25620 - 11905: 0xC9A6, - 25621 - 11905: 0x9374, - 25622 - 11905: 0x9375, - 25623 - 11905: 0x9376, - 25624 - 11905: 0x9377, - 25625 - 11905: 0x9378, - 25626 - 11905: 0x9379, - 25627 - 11905: 0xDEF6, - 25628 - 11905: 0xCBD1, - 25629 - 11905: 0x937A, - 25630 - 11905: 0xB8E3, - 25631 - 11905: 0x937B, - 25632 - 11905: 0xDEF7, - 25633 - 11905: 0xDEFA, - 25634 - 11905: 0x937C, - 25635 - 11905: 0x937D, - 25636 - 11905: 0x937E, - 25637 - 11905: 0x9380, - 25638 - 11905: 0xDEF9, - 25639 - 11905: 0x9381, - 25640 - 11905: 0x9382, - 25641 - 11905: 0x9383, - 25642 - 11905: 0xCCC2, - 25643 - 11905: 0x9384, - 25644 - 11905: 0xB0E1, - 25645 - 11905: 0xB4EE, - 25646 - 11905: 0x9385, - 25647 - 11905: 0x9386, - 25648 - 11905: 0x9387, - 25649 - 11905: 0x9388, - 25650 - 11905: 0x9389, - 25651 - 11905: 0x938A, - 25652 - 11905: 0xE5BA, - 25653 - 11905: 0x938B, - 25654 - 11905: 0x938C, - 25655 - 11905: 0x938D, - 25656 - 11905: 0x938E, - 25657 - 11905: 0x938F, - 25658 - 11905: 0xD0AF, - 25659 - 11905: 0x9390, - 25660 - 11905: 0x9391, - 25661 - 11905: 0xB2EB, - 25662 - 11905: 0x9392, - 25663 - 11905: 0xEBA1, - 25664 - 11905: 0x9393, - 25665 - 11905: 0xDEF4, - 25666 - 11905: 0x9394, - 25667 - 11905: 0x9395, - 25668 - 11905: 0xC9E3, - 25669 - 11905: 0xDEF3, - 25670 - 11905: 0xB0DA, - 25671 - 11905: 0xD2A1, - 25672 - 11905: 0xB1F7, - 25673 - 11905: 0x9396, - 25674 - 11905: 0xCCAF, - 25675 - 11905: 0x9397, - 25676 - 11905: 0x9398, - 25677 - 11905: 0x9399, - 25678 - 11905: 0x939A, - 25679 - 11905: 0x939B, - 25680 - 11905: 0x939C, - 25681 - 11905: 0x939D, - 25682 - 11905: 0xDEF0, - 25683 - 11905: 0x939E, - 25684 - 11905: 0xCBA4, - 25685 - 11905: 0x939F, - 25686 - 11905: 0x93A0, - 25687 - 11905: 0x93A1, - 25688 - 11905: 0xD5AA, - 25689 - 11905: 0x93A2, - 25690 - 11905: 0x93A3, - 25691 - 11905: 0x93A4, - 25692 - 11905: 0x93A5, - 25693 - 11905: 0x93A6, - 25694 - 11905: 0xDEFB, - 25695 - 11905: 0x93A7, - 25696 - 11905: 0x93A8, - 25697 - 11905: 0x93A9, - 25698 - 11905: 0x93AA, - 25699 - 11905: 0x93AB, - 25700 - 11905: 0x93AC, - 25701 - 11905: 0x93AD, - 25702 - 11905: 0x93AE, - 25703 - 11905: 0xB4DD, - 25704 - 11905: 0x93AF, - 25705 - 11905: 0xC4A6, - 25706 - 11905: 0x93B0, - 25707 - 11905: 0x93B1, - 25708 - 11905: 0x93B2, - 25709 - 11905: 0xDEFD, - 25710 - 11905: 0x93B3, - 25711 - 11905: 0x93B4, - 25712 - 11905: 0x93B5, - 25713 - 11905: 0x93B6, - 25714 - 11905: 0x93B7, - 25715 - 11905: 0x93B8, - 25716 - 11905: 0x93B9, - 25717 - 11905: 0x93BA, - 25718 - 11905: 0x93BB, - 25719 - 11905: 0x93BC, - 25720 - 11905: 0xC3FE, - 25721 - 11905: 0xC4A1, - 25722 - 11905: 0xDFA1, - 25723 - 11905: 0x93BD, - 25724 - 11905: 0x93BE, - 25725 - 11905: 0x93BF, - 25726 - 11905: 0x93C0, - 25727 - 11905: 0x93C1, - 25728 - 11905: 0x93C2, - 25729 - 11905: 0x93C3, - 25730 - 11905: 0xC1CC, - 25731 - 11905: 0x93C4, - 25732 - 11905: 0xDEFC, - 25733 - 11905: 0xBEEF, - 25734 - 11905: 0x93C5, - 25735 - 11905: 0xC6B2, - 25736 - 11905: 0x93C6, - 25737 - 11905: 0x93C7, - 25738 - 11905: 0x93C8, - 25739 - 11905: 0x93C9, - 25740 - 11905: 0x93CA, - 25741 - 11905: 0x93CB, - 25742 - 11905: 0x93CC, - 25743 - 11905: 0x93CD, - 25744 - 11905: 0x93CE, - 25745 - 11905: 0xB3C5, - 25746 - 11905: 0xC8F6, - 25747 - 11905: 0x93CF, - 25748 - 11905: 0x93D0, - 25749 - 11905: 0xCBBA, - 25750 - 11905: 0xDEFE, - 25751 - 11905: 0x93D1, - 25752 - 11905: 0x93D2, - 25753 - 11905: 0xDFA4, - 25754 - 11905: 0x93D3, - 25755 - 11905: 0x93D4, - 25756 - 11905: 0x93D5, - 25757 - 11905: 0x93D6, - 25758 - 11905: 0xD7B2, - 25759 - 11905: 0x93D7, - 25760 - 11905: 0x93D8, - 25761 - 11905: 0x93D9, - 25762 - 11905: 0x93DA, - 25763 - 11905: 0x93DB, - 25764 - 11905: 0xB3B7, - 25765 - 11905: 0x93DC, - 25766 - 11905: 0x93DD, - 25767 - 11905: 0x93DE, - 25768 - 11905: 0x93DF, - 25769 - 11905: 0xC1C3, - 25770 - 11905: 0x93E0, - 25771 - 11905: 0x93E1, - 25772 - 11905: 0xC7CB, - 25773 - 11905: 0xB2A5, - 25774 - 11905: 0xB4E9, - 25775 - 11905: 0x93E2, - 25776 - 11905: 0xD7AB, - 25777 - 11905: 0x93E3, - 25778 - 11905: 0x93E4, - 25779 - 11905: 0x93E5, - 25780 - 11905: 0x93E6, - 25781 - 11905: 0xC4EC, - 25782 - 11905: 0x93E7, - 25783 - 11905: 0xDFA2, - 25784 - 11905: 0xDFA3, - 25785 - 11905: 0x93E8, - 25786 - 11905: 0xDFA5, - 25787 - 11905: 0x93E9, - 25788 - 11905: 0xBAB3, - 25789 - 11905: 0x93EA, - 25790 - 11905: 0x93EB, - 25791 - 11905: 0x93EC, - 25792 - 11905: 0xDFA6, - 25793 - 11905: 0x93ED, - 25794 - 11905: 0xC0DE, - 25795 - 11905: 0x93EE, - 25796 - 11905: 0x93EF, - 25797 - 11905: 0xC9C3, - 25798 - 11905: 0x93F0, - 25799 - 11905: 0x93F1, - 25800 - 11905: 0x93F2, - 25801 - 11905: 0x93F3, - 25802 - 11905: 0x93F4, - 25803 - 11905: 0x93F5, - 25804 - 11905: 0x93F6, - 25805 - 11905: 0xB2D9, - 25806 - 11905: 0xC7E6, - 25807 - 11905: 0x93F7, - 25808 - 11905: 0xDFA7, - 25809 - 11905: 0x93F8, - 25810 - 11905: 0xC7DC, - 25811 - 11905: 0x93F9, - 25812 - 11905: 0x93FA, - 25813 - 11905: 0x93FB, - 25814 - 11905: 0x93FC, - 25815 - 11905: 0xDFA8, - 25816 - 11905: 0xEBA2, - 25817 - 11905: 0x93FD, - 25818 - 11905: 0x93FE, - 25819 - 11905: 0x9440, - 25820 - 11905: 0x9441, - 25821 - 11905: 0x9442, - 25822 - 11905: 0xCBD3, - 25823 - 11905: 0x9443, - 25824 - 11905: 0x9444, - 25825 - 11905: 0x9445, - 25826 - 11905: 0xDFAA, - 25827 - 11905: 0x9446, - 25828 - 11905: 0xDFA9, - 25829 - 11905: 0x9447, - 25830 - 11905: 0xB2C1, - 25831 - 11905: 0x9448, - 25832 - 11905: 0x9449, - 25833 - 11905: 0x944A, - 25834 - 11905: 0x944B, - 25835 - 11905: 0x944C, - 25836 - 11905: 0x944D, - 25837 - 11905: 0x944E, - 25838 - 11905: 0x944F, - 25839 - 11905: 0x9450, - 25840 - 11905: 0x9451, - 25841 - 11905: 0x9452, - 25842 - 11905: 0x9453, - 25843 - 11905: 0x9454, - 25844 - 11905: 0x9455, - 25845 - 11905: 0x9456, - 25846 - 11905: 0x9457, - 25847 - 11905: 0x9458, - 25848 - 11905: 0x9459, - 25849 - 11905: 0x945A, - 25850 - 11905: 0x945B, - 25851 - 11905: 0x945C, - 25852 - 11905: 0x945D, - 25853 - 11905: 0x945E, - 25854 - 11905: 0x945F, - 25855 - 11905: 0x9460, - 25856 - 11905: 0xC5CA, - 25857 - 11905: 0x9461, - 25858 - 11905: 0x9462, - 25859 - 11905: 0x9463, - 25860 - 11905: 0x9464, - 25861 - 11905: 0x9465, - 25862 - 11905: 0x9466, - 25863 - 11905: 0x9467, - 25864 - 11905: 0x9468, - 25865 - 11905: 0xDFAB, - 25866 - 11905: 0x9469, - 25867 - 11905: 0x946A, - 25868 - 11905: 0x946B, - 25869 - 11905: 0x946C, - 25870 - 11905: 0x946D, - 25871 - 11905: 0x946E, - 25872 - 11905: 0x946F, - 25873 - 11905: 0x9470, - 25874 - 11905: 0xD4DC, - 25875 - 11905: 0x9471, - 25876 - 11905: 0x9472, - 25877 - 11905: 0x9473, - 25878 - 11905: 0x9474, - 25879 - 11905: 0x9475, - 25880 - 11905: 0xC8C1, - 25881 - 11905: 0x9476, - 25882 - 11905: 0x9477, - 25883 - 11905: 0x9478, - 25884 - 11905: 0x9479, - 25885 - 11905: 0x947A, - 25886 - 11905: 0x947B, - 25887 - 11905: 0x947C, - 25888 - 11905: 0x947D, - 25889 - 11905: 0x947E, - 25890 - 11905: 0x9480, - 25891 - 11905: 0x9481, - 25892 - 11905: 0x9482, - 25893 - 11905: 0xDFAC, - 25894 - 11905: 0x9483, - 25895 - 11905: 0x9484, - 25896 - 11905: 0x9485, - 25897 - 11905: 0x9486, - 25898 - 11905: 0x9487, - 25899 - 11905: 0xBEF0, - 25900 - 11905: 0x9488, - 25901 - 11905: 0x9489, - 25902 - 11905: 0xDFAD, - 25903 - 11905: 0xD6A7, - 25904 - 11905: 0x948A, - 25905 - 11905: 0x948B, - 25906 - 11905: 0x948C, - 25907 - 11905: 0x948D, - 25908 - 11905: 0xEAB7, - 25909 - 11905: 0xEBB6, - 25910 - 11905: 0xCAD5, - 25911 - 11905: 0x948E, - 25912 - 11905: 0xD8FC, - 25913 - 11905: 0xB8C4, - 25914 - 11905: 0x948F, - 25915 - 11905: 0xB9A5, - 25916 - 11905: 0x9490, - 25917 - 11905: 0x9491, - 25918 - 11905: 0xB7C5, - 25919 - 11905: 0xD5FE, - 25920 - 11905: 0x9492, - 25921 - 11905: 0x9493, - 25922 - 11905: 0x9494, - 25923 - 11905: 0x9495, - 25924 - 11905: 0x9496, - 25925 - 11905: 0xB9CA, - 25926 - 11905: 0x9497, - 25927 - 11905: 0x9498, - 25928 - 11905: 0xD0A7, - 25929 - 11905: 0xF4CD, - 25930 - 11905: 0x9499, - 25931 - 11905: 0x949A, - 25932 - 11905: 0xB5D0, - 25933 - 11905: 0x949B, - 25934 - 11905: 0x949C, - 25935 - 11905: 0xC3F4, - 25936 - 11905: 0x949D, - 25937 - 11905: 0xBEC8, - 25938 - 11905: 0x949E, - 25939 - 11905: 0x949F, - 25940 - 11905: 0x94A0, - 25941 - 11905: 0xEBB7, - 25942 - 11905: 0xB0BD, - 25943 - 11905: 0x94A1, - 25944 - 11905: 0x94A2, - 25945 - 11905: 0xBDCC, - 25946 - 11905: 0x94A3, - 25947 - 11905: 0xC1B2, - 25948 - 11905: 0x94A4, - 25949 - 11905: 0xB1D6, - 25950 - 11905: 0xB3A8, - 25951 - 11905: 0x94A5, - 25952 - 11905: 0x94A6, - 25953 - 11905: 0x94A7, - 25954 - 11905: 0xB8D2, - 25955 - 11905: 0xC9A2, - 25956 - 11905: 0x94A8, - 25957 - 11905: 0x94A9, - 25958 - 11905: 0xB6D8, - 25959 - 11905: 0x94AA, - 25960 - 11905: 0x94AB, - 25961 - 11905: 0x94AC, - 25962 - 11905: 0x94AD, - 25963 - 11905: 0xEBB8, - 25964 - 11905: 0xBEB4, - 25965 - 11905: 0x94AE, - 25966 - 11905: 0x94AF, - 25967 - 11905: 0x94B0, - 25968 - 11905: 0xCAFD, - 25969 - 11905: 0x94B1, - 25970 - 11905: 0xC7C3, - 25971 - 11905: 0x94B2, - 25972 - 11905: 0xD5FB, - 25973 - 11905: 0x94B3, - 25974 - 11905: 0x94B4, - 25975 - 11905: 0xB7F3, - 25976 - 11905: 0x94B5, - 25977 - 11905: 0x94B6, - 25978 - 11905: 0x94B7, - 25979 - 11905: 0x94B8, - 25980 - 11905: 0x94B9, - 25981 - 11905: 0x94BA, - 25982 - 11905: 0x94BB, - 25983 - 11905: 0x94BC, - 25984 - 11905: 0x94BD, - 25985 - 11905: 0x94BE, - 25986 - 11905: 0x94BF, - 25987 - 11905: 0x94C0, - 25988 - 11905: 0x94C1, - 25989 - 11905: 0x94C2, - 25990 - 11905: 0x94C3, - 25991 - 11905: 0xCEC4, - 25992 - 11905: 0x94C4, - 25993 - 11905: 0x94C5, - 25994 - 11905: 0x94C6, - 25995 - 11905: 0xD5AB, - 25996 - 11905: 0xB1F3, - 25997 - 11905: 0x94C7, - 25998 - 11905: 0x94C8, - 25999 - 11905: 0x94C9, - 26000 - 11905: 0xECB3, - 26001 - 11905: 0xB0DF, - 26002 - 11905: 0x94CA, - 26003 - 11905: 0xECB5, - 26004 - 11905: 0x94CB, - 26005 - 11905: 0x94CC, - 26006 - 11905: 0x94CD, - 26007 - 11905: 0xB6B7, - 26008 - 11905: 0x94CE, - 26009 - 11905: 0xC1CF, - 26010 - 11905: 0x94CF, - 26011 - 11905: 0xF5FA, - 26012 - 11905: 0xD0B1, - 26013 - 11905: 0x94D0, - 26014 - 11905: 0x94D1, - 26015 - 11905: 0xD5E5, - 26016 - 11905: 0x94D2, - 26017 - 11905: 0xCED3, - 26018 - 11905: 0x94D3, - 26019 - 11905: 0x94D4, - 26020 - 11905: 0xBDEF, - 26021 - 11905: 0xB3E2, - 26022 - 11905: 0x94D5, - 26023 - 11905: 0xB8AB, - 26024 - 11905: 0x94D6, - 26025 - 11905: 0xD5B6, - 26026 - 11905: 0x94D7, - 26027 - 11905: 0xEDBD, - 26028 - 11905: 0x94D8, - 26029 - 11905: 0xB6CF, - 26030 - 11905: 0x94D9, - 26031 - 11905: 0xCBB9, - 26032 - 11905: 0xD0C2, - 26033 - 11905: 0x94DA, - 26034 - 11905: 0x94DB, - 26035 - 11905: 0x94DC, - 26036 - 11905: 0x94DD, - 26037 - 11905: 0x94DE, - 26038 - 11905: 0x94DF, - 26039 - 11905: 0x94E0, - 26040 - 11905: 0x94E1, - 26041 - 11905: 0xB7BD, - 26042 - 11905: 0x94E2, - 26043 - 11905: 0x94E3, - 26044 - 11905: 0xECB6, - 26045 - 11905: 0xCAA9, - 26046 - 11905: 0x94E4, - 26047 - 11905: 0x94E5, - 26048 - 11905: 0x94E6, - 26049 - 11905: 0xC5D4, - 26050 - 11905: 0x94E7, - 26051 - 11905: 0xECB9, - 26052 - 11905: 0xECB8, - 26053 - 11905: 0xC2C3, - 26054 - 11905: 0xECB7, - 26055 - 11905: 0x94E8, - 26056 - 11905: 0x94E9, - 26057 - 11905: 0x94EA, - 26058 - 11905: 0x94EB, - 26059 - 11905: 0xD0FD, - 26060 - 11905: 0xECBA, - 26061 - 11905: 0x94EC, - 26062 - 11905: 0xECBB, - 26063 - 11905: 0xD7E5, - 26064 - 11905: 0x94ED, - 26065 - 11905: 0x94EE, - 26066 - 11905: 0xECBC, - 26067 - 11905: 0x94EF, - 26068 - 11905: 0x94F0, - 26069 - 11905: 0x94F1, - 26070 - 11905: 0xECBD, - 26071 - 11905: 0xC6EC, - 26072 - 11905: 0x94F2, - 26073 - 11905: 0x94F3, - 26074 - 11905: 0x94F4, - 26075 - 11905: 0x94F5, - 26076 - 11905: 0x94F6, - 26077 - 11905: 0x94F7, - 26078 - 11905: 0x94F8, - 26079 - 11905: 0x94F9, - 26080 - 11905: 0xCEDE, - 26081 - 11905: 0x94FA, - 26082 - 11905: 0xBCC8, - 26083 - 11905: 0x94FB, - 26084 - 11905: 0x94FC, - 26085 - 11905: 0xC8D5, - 26086 - 11905: 0xB5A9, - 26087 - 11905: 0xBEC9, - 26088 - 11905: 0xD6BC, - 26089 - 11905: 0xD4E7, - 26090 - 11905: 0x94FD, - 26091 - 11905: 0x94FE, - 26092 - 11905: 0xD1AE, - 26093 - 11905: 0xD0F1, - 26094 - 11905: 0xEAB8, - 26095 - 11905: 0xEAB9, - 26096 - 11905: 0xEABA, - 26097 - 11905: 0xBAB5, - 26098 - 11905: 0x9540, - 26099 - 11905: 0x9541, - 26100 - 11905: 0x9542, - 26101 - 11905: 0x9543, - 26102 - 11905: 0xCAB1, - 26103 - 11905: 0xBFF5, - 26104 - 11905: 0x9544, - 26105 - 11905: 0x9545, - 26106 - 11905: 0xCDFA, - 26107 - 11905: 0x9546, - 26108 - 11905: 0x9547, - 26109 - 11905: 0x9548, - 26110 - 11905: 0x9549, - 26111 - 11905: 0x954A, - 26112 - 11905: 0xEAC0, - 26113 - 11905: 0x954B, - 26114 - 11905: 0xB0BA, - 26115 - 11905: 0xEABE, - 26116 - 11905: 0x954C, - 26117 - 11905: 0x954D, - 26118 - 11905: 0xC0A5, - 26119 - 11905: 0x954E, - 26120 - 11905: 0x954F, - 26121 - 11905: 0x9550, - 26122 - 11905: 0xEABB, - 26123 - 11905: 0x9551, - 26124 - 11905: 0xB2FD, - 26125 - 11905: 0x9552, - 26126 - 11905: 0xC3F7, - 26127 - 11905: 0xBBE8, - 26128 - 11905: 0x9553, - 26129 - 11905: 0x9554, - 26130 - 11905: 0x9555, - 26131 - 11905: 0xD2D7, - 26132 - 11905: 0xCEF4, - 26133 - 11905: 0xEABF, - 26134 - 11905: 0x9556, - 26135 - 11905: 0x9557, - 26136 - 11905: 0x9558, - 26137 - 11905: 0xEABC, - 26138 - 11905: 0x9559, - 26139 - 11905: 0x955A, - 26140 - 11905: 0x955B, - 26141 - 11905: 0xEAC3, - 26142 - 11905: 0x955C, - 26143 - 11905: 0xD0C7, - 26144 - 11905: 0xD3B3, - 26145 - 11905: 0x955D, - 26146 - 11905: 0x955E, - 26147 - 11905: 0x955F, - 26148 - 11905: 0x9560, - 26149 - 11905: 0xB4BA, - 26150 - 11905: 0x9561, - 26151 - 11905: 0xC3C1, - 26152 - 11905: 0xD7F2, - 26153 - 11905: 0x9562, - 26154 - 11905: 0x9563, - 26155 - 11905: 0x9564, - 26156 - 11905: 0x9565, - 26157 - 11905: 0xD5D1, - 26158 - 11905: 0x9566, - 26159 - 11905: 0xCAC7, - 26160 - 11905: 0x9567, - 26161 - 11905: 0xEAC5, - 26162 - 11905: 0x9568, - 26163 - 11905: 0x9569, - 26164 - 11905: 0xEAC4, - 26165 - 11905: 0xEAC7, - 26166 - 11905: 0xEAC6, - 26167 - 11905: 0x956A, - 26168 - 11905: 0x956B, - 26169 - 11905: 0x956C, - 26170 - 11905: 0x956D, - 26171 - 11905: 0x956E, - 26172 - 11905: 0xD6E7, - 26173 - 11905: 0x956F, - 26174 - 11905: 0xCFD4, - 26175 - 11905: 0x9570, - 26176 - 11905: 0x9571, - 26177 - 11905: 0xEACB, - 26178 - 11905: 0x9572, - 26179 - 11905: 0xBBCE, - 26180 - 11905: 0x9573, - 26181 - 11905: 0x9574, - 26182 - 11905: 0x9575, - 26183 - 11905: 0x9576, - 26184 - 11905: 0x9577, - 26185 - 11905: 0x9578, - 26186 - 11905: 0x9579, - 26187 - 11905: 0xBDFA, - 26188 - 11905: 0xC9CE, - 26189 - 11905: 0x957A, - 26190 - 11905: 0x957B, - 26191 - 11905: 0xEACC, - 26192 - 11905: 0x957C, - 26193 - 11905: 0x957D, - 26194 - 11905: 0xC9B9, - 26195 - 11905: 0xCFFE, - 26196 - 11905: 0xEACA, - 26197 - 11905: 0xD4CE, - 26198 - 11905: 0xEACD, - 26199 - 11905: 0xEACF, - 26200 - 11905: 0x957E, - 26201 - 11905: 0x9580, - 26202 - 11905: 0xCDED, - 26203 - 11905: 0x9581, - 26204 - 11905: 0x9582, - 26205 - 11905: 0x9583, - 26206 - 11905: 0x9584, - 26207 - 11905: 0xEAC9, - 26208 - 11905: 0x9585, - 26209 - 11905: 0xEACE, - 26210 - 11905: 0x9586, - 26211 - 11905: 0x9587, - 26212 - 11905: 0xCEEE, - 26213 - 11905: 0x9588, - 26214 - 11905: 0xBBDE, - 26215 - 11905: 0x9589, - 26216 - 11905: 0xB3BF, - 26217 - 11905: 0x958A, - 26218 - 11905: 0x958B, - 26219 - 11905: 0x958C, - 26220 - 11905: 0x958D, - 26221 - 11905: 0x958E, - 26222 - 11905: 0xC6D5, - 26223 - 11905: 0xBEB0, - 26224 - 11905: 0xCEFA, - 26225 - 11905: 0x958F, - 26226 - 11905: 0x9590, - 26227 - 11905: 0x9591, - 26228 - 11905: 0xC7E7, - 26229 - 11905: 0x9592, - 26230 - 11905: 0xBEA7, - 26231 - 11905: 0xEAD0, - 26232 - 11905: 0x9593, - 26233 - 11905: 0x9594, - 26234 - 11905: 0xD6C7, - 26235 - 11905: 0x9595, - 26236 - 11905: 0x9596, - 26237 - 11905: 0x9597, - 26238 - 11905: 0xC1C0, - 26239 - 11905: 0x9598, - 26240 - 11905: 0x9599, - 26241 - 11905: 0x959A, - 26242 - 11905: 0xD4DD, - 26243 - 11905: 0x959B, - 26244 - 11905: 0xEAD1, - 26245 - 11905: 0x959C, - 26246 - 11905: 0x959D, - 26247 - 11905: 0xCFBE, - 26248 - 11905: 0x959E, - 26249 - 11905: 0x959F, - 26250 - 11905: 0x95A0, - 26251 - 11905: 0x95A1, - 26252 - 11905: 0xEAD2, - 26253 - 11905: 0x95A2, - 26254 - 11905: 0x95A3, - 26255 - 11905: 0x95A4, - 26256 - 11905: 0x95A5, - 26257 - 11905: 0xCAEE, - 26258 - 11905: 0x95A6, - 26259 - 11905: 0x95A7, - 26260 - 11905: 0x95A8, - 26261 - 11905: 0x95A9, - 26262 - 11905: 0xC5AF, - 26263 - 11905: 0xB0B5, - 26264 - 11905: 0x95AA, - 26265 - 11905: 0x95AB, - 26266 - 11905: 0x95AC, - 26267 - 11905: 0x95AD, - 26268 - 11905: 0x95AE, - 26269 - 11905: 0xEAD4, - 26270 - 11905: 0x95AF, - 26271 - 11905: 0x95B0, - 26272 - 11905: 0x95B1, - 26273 - 11905: 0x95B2, - 26274 - 11905: 0x95B3, - 26275 - 11905: 0x95B4, - 26276 - 11905: 0x95B5, - 26277 - 11905: 0x95B6, - 26278 - 11905: 0x95B7, - 26279 - 11905: 0xEAD3, - 26280 - 11905: 0xF4DF, - 26281 - 11905: 0x95B8, - 26282 - 11905: 0x95B9, - 26283 - 11905: 0x95BA, - 26284 - 11905: 0x95BB, - 26285 - 11905: 0x95BC, - 26286 - 11905: 0xC4BA, - 26287 - 11905: 0x95BD, - 26288 - 11905: 0x95BE, - 26289 - 11905: 0x95BF, - 26290 - 11905: 0x95C0, - 26291 - 11905: 0x95C1, - 26292 - 11905: 0xB1A9, - 26293 - 11905: 0x95C2, - 26294 - 11905: 0x95C3, - 26295 - 11905: 0x95C4, - 26296 - 11905: 0x95C5, - 26297 - 11905: 0xE5DF, - 26298 - 11905: 0x95C6, - 26299 - 11905: 0x95C7, - 26300 - 11905: 0x95C8, - 26301 - 11905: 0x95C9, - 26302 - 11905: 0xEAD5, - 26303 - 11905: 0x95CA, - 26304 - 11905: 0x95CB, - 26305 - 11905: 0x95CC, - 26306 - 11905: 0x95CD, - 26307 - 11905: 0x95CE, - 26308 - 11905: 0x95CF, - 26309 - 11905: 0x95D0, - 26310 - 11905: 0x95D1, - 26311 - 11905: 0x95D2, - 26312 - 11905: 0x95D3, - 26313 - 11905: 0x95D4, - 26314 - 11905: 0x95D5, - 26315 - 11905: 0x95D6, - 26316 - 11905: 0x95D7, - 26317 - 11905: 0x95D8, - 26318 - 11905: 0x95D9, - 26319 - 11905: 0x95DA, - 26320 - 11905: 0x95DB, - 26321 - 11905: 0x95DC, - 26322 - 11905: 0x95DD, - 26323 - 11905: 0x95DE, - 26324 - 11905: 0x95DF, - 26325 - 11905: 0x95E0, - 26326 - 11905: 0x95E1, - 26327 - 11905: 0x95E2, - 26328 - 11905: 0x95E3, - 26329 - 11905: 0xCAEF, - 26330 - 11905: 0x95E4, - 26331 - 11905: 0xEAD6, - 26332 - 11905: 0xEAD7, - 26333 - 11905: 0xC6D8, - 26334 - 11905: 0x95E5, - 26335 - 11905: 0x95E6, - 26336 - 11905: 0x95E7, - 26337 - 11905: 0x95E8, - 26338 - 11905: 0x95E9, - 26339 - 11905: 0x95EA, - 26340 - 11905: 0x95EB, - 26341 - 11905: 0x95EC, - 26342 - 11905: 0xEAD8, - 26343 - 11905: 0x95ED, - 26344 - 11905: 0x95EE, - 26345 - 11905: 0xEAD9, - 26346 - 11905: 0x95EF, - 26347 - 11905: 0x95F0, - 26348 - 11905: 0x95F1, - 26349 - 11905: 0x95F2, - 26350 - 11905: 0x95F3, - 26351 - 11905: 0x95F4, - 26352 - 11905: 0xD4BB, - 26353 - 11905: 0x95F5, - 26354 - 11905: 0xC7FA, - 26355 - 11905: 0xD2B7, - 26356 - 11905: 0xB8FC, - 26357 - 11905: 0x95F6, - 26358 - 11905: 0x95F7, - 26359 - 11905: 0xEAC2, - 26360 - 11905: 0x95F8, - 26361 - 11905: 0xB2DC, - 26362 - 11905: 0x95F9, - 26363 - 11905: 0x95FA, - 26364 - 11905: 0xC2FC, - 26365 - 11905: 0x95FB, - 26366 - 11905: 0xD4F8, - 26367 - 11905: 0xCCE6, - 26368 - 11905: 0xD7EE, - 26369 - 11905: 0x95FC, - 26370 - 11905: 0x95FD, - 26371 - 11905: 0x95FE, - 26372 - 11905: 0x9640, - 26373 - 11905: 0x9641, - 26374 - 11905: 0x9642, - 26375 - 11905: 0x9643, - 26376 - 11905: 0xD4C2, - 26377 - 11905: 0xD3D0, - 26378 - 11905: 0xEBC3, - 26379 - 11905: 0xC5F3, - 26380 - 11905: 0x9644, - 26381 - 11905: 0xB7FE, - 26382 - 11905: 0x9645, - 26383 - 11905: 0x9646, - 26384 - 11905: 0xEBD4, - 26385 - 11905: 0x9647, - 26386 - 11905: 0x9648, - 26387 - 11905: 0x9649, - 26388 - 11905: 0xCBB7, - 26389 - 11905: 0xEBDE, - 26390 - 11905: 0x964A, - 26391 - 11905: 0xC0CA, - 26392 - 11905: 0x964B, - 26393 - 11905: 0x964C, - 26394 - 11905: 0x964D, - 26395 - 11905: 0xCDFB, - 26396 - 11905: 0x964E, - 26397 - 11905: 0xB3AF, - 26398 - 11905: 0x964F, - 26399 - 11905: 0xC6DA, - 26400 - 11905: 0x9650, - 26401 - 11905: 0x9651, - 26402 - 11905: 0x9652, - 26403 - 11905: 0x9653, - 26404 - 11905: 0x9654, - 26405 - 11905: 0x9655, - 26406 - 11905: 0xEBFC, - 26407 - 11905: 0x9656, - 26408 - 11905: 0xC4BE, - 26409 - 11905: 0x9657, - 26410 - 11905: 0xCEB4, - 26411 - 11905: 0xC4A9, - 26412 - 11905: 0xB1BE, - 26413 - 11905: 0xD4FD, - 26414 - 11905: 0x9658, - 26415 - 11905: 0xCAF5, - 26416 - 11905: 0x9659, - 26417 - 11905: 0xD6EC, - 26418 - 11905: 0x965A, - 26419 - 11905: 0x965B, - 26420 - 11905: 0xC6D3, - 26421 - 11905: 0xB6E4, - 26422 - 11905: 0x965C, - 26423 - 11905: 0x965D, - 26424 - 11905: 0x965E, - 26425 - 11905: 0x965F, - 26426 - 11905: 0xBBFA, - 26427 - 11905: 0x9660, - 26428 - 11905: 0x9661, - 26429 - 11905: 0xD0E0, - 26430 - 11905: 0x9662, - 26431 - 11905: 0x9663, - 26432 - 11905: 0xC9B1, - 26433 - 11905: 0x9664, - 26434 - 11905: 0xD4D3, - 26435 - 11905: 0xC8A8, - 26436 - 11905: 0x9665, - 26437 - 11905: 0x9666, - 26438 - 11905: 0xB8CB, - 26439 - 11905: 0x9667, - 26440 - 11905: 0xE8BE, - 26441 - 11905: 0xC9BC, - 26442 - 11905: 0x9668, - 26443 - 11905: 0x9669, - 26444 - 11905: 0xE8BB, - 26445 - 11905: 0x966A, - 26446 - 11905: 0xC0EE, - 26447 - 11905: 0xD0D3, - 26448 - 11905: 0xB2C4, - 26449 - 11905: 0xB4E5, - 26450 - 11905: 0x966B, - 26451 - 11905: 0xE8BC, - 26452 - 11905: 0x966C, - 26453 - 11905: 0x966D, - 26454 - 11905: 0xD5C8, - 26455 - 11905: 0x966E, - 26456 - 11905: 0x966F, - 26457 - 11905: 0x9670, - 26458 - 11905: 0x9671, - 26459 - 11905: 0x9672, - 26460 - 11905: 0xB6C5, - 26461 - 11905: 0x9673, - 26462 - 11905: 0xE8BD, - 26463 - 11905: 0xCAF8, - 26464 - 11905: 0xB8DC, - 26465 - 11905: 0xCCF5, - 26466 - 11905: 0x9674, - 26467 - 11905: 0x9675, - 26468 - 11905: 0x9676, - 26469 - 11905: 0xC0B4, - 26470 - 11905: 0x9677, - 26471 - 11905: 0x9678, - 26472 - 11905: 0xD1EE, - 26473 - 11905: 0xE8BF, - 26474 - 11905: 0xE8C2, - 26475 - 11905: 0x9679, - 26476 - 11905: 0x967A, - 26477 - 11905: 0xBABC, - 26478 - 11905: 0x967B, - 26479 - 11905: 0xB1AD, - 26480 - 11905: 0xBDDC, - 26481 - 11905: 0x967C, - 26482 - 11905: 0xEABD, - 26483 - 11905: 0xE8C3, - 26484 - 11905: 0x967D, - 26485 - 11905: 0xE8C6, - 26486 - 11905: 0x967E, - 26487 - 11905: 0xE8CB, - 26488 - 11905: 0x9680, - 26489 - 11905: 0x9681, - 26490 - 11905: 0x9682, - 26491 - 11905: 0x9683, - 26492 - 11905: 0xE8CC, - 26493 - 11905: 0x9684, - 26494 - 11905: 0xCBC9, - 26495 - 11905: 0xB0E5, - 26496 - 11905: 0x9685, - 26497 - 11905: 0xBCAB, - 26498 - 11905: 0x9686, - 26499 - 11905: 0x9687, - 26500 - 11905: 0xB9B9, - 26501 - 11905: 0x9688, - 26502 - 11905: 0x9689, - 26503 - 11905: 0xE8C1, - 26504 - 11905: 0x968A, - 26505 - 11905: 0xCDF7, - 26506 - 11905: 0x968B, - 26507 - 11905: 0xE8CA, - 26508 - 11905: 0x968C, - 26509 - 11905: 0x968D, - 26510 - 11905: 0x968E, - 26511 - 11905: 0x968F, - 26512 - 11905: 0xCEF6, - 26513 - 11905: 0x9690, - 26514 - 11905: 0x9691, - 26515 - 11905: 0x9692, - 26516 - 11905: 0x9693, - 26517 - 11905: 0xD5ED, - 26518 - 11905: 0x9694, - 26519 - 11905: 0xC1D6, - 26520 - 11905: 0xE8C4, - 26521 - 11905: 0x9695, - 26522 - 11905: 0xC3B6, - 26523 - 11905: 0x9696, - 26524 - 11905: 0xB9FB, - 26525 - 11905: 0xD6A6, - 26526 - 11905: 0xE8C8, - 26527 - 11905: 0x9697, - 26528 - 11905: 0x9698, - 26529 - 11905: 0x9699, - 26530 - 11905: 0xCAE0, - 26531 - 11905: 0xD4E6, - 26532 - 11905: 0x969A, - 26533 - 11905: 0xE8C0, - 26534 - 11905: 0x969B, - 26535 - 11905: 0xE8C5, - 26536 - 11905: 0xE8C7, - 26537 - 11905: 0x969C, - 26538 - 11905: 0xC7B9, - 26539 - 11905: 0xB7E3, - 26540 - 11905: 0x969D, - 26541 - 11905: 0xE8C9, - 26542 - 11905: 0x969E, - 26543 - 11905: 0xBFDD, - 26544 - 11905: 0xE8D2, - 26545 - 11905: 0x969F, - 26546 - 11905: 0x96A0, - 26547 - 11905: 0xE8D7, - 26548 - 11905: 0x96A1, - 26549 - 11905: 0xE8D5, - 26550 - 11905: 0xBCDC, - 26551 - 11905: 0xBCCF, - 26552 - 11905: 0xE8DB, - 26553 - 11905: 0x96A2, - 26554 - 11905: 0x96A3, - 26555 - 11905: 0x96A4, - 26556 - 11905: 0x96A5, - 26557 - 11905: 0x96A6, - 26558 - 11905: 0x96A7, - 26559 - 11905: 0x96A8, - 26560 - 11905: 0x96A9, - 26561 - 11905: 0xE8DE, - 26562 - 11905: 0x96AA, - 26563 - 11905: 0xE8DA, - 26564 - 11905: 0xB1FA, - 26565 - 11905: 0x96AB, - 26566 - 11905: 0x96AC, - 26567 - 11905: 0x96AD, - 26568 - 11905: 0x96AE, - 26569 - 11905: 0x96AF, - 26570 - 11905: 0x96B0, - 26571 - 11905: 0x96B1, - 26572 - 11905: 0x96B2, - 26573 - 11905: 0x96B3, - 26574 - 11905: 0x96B4, - 26575 - 11905: 0xB0D8, - 26576 - 11905: 0xC4B3, - 26577 - 11905: 0xB8CC, - 26578 - 11905: 0xC6E2, - 26579 - 11905: 0xC8BE, - 26580 - 11905: 0xC8E1, - 26581 - 11905: 0x96B5, - 26582 - 11905: 0x96B6, - 26583 - 11905: 0x96B7, - 26584 - 11905: 0xE8CF, - 26585 - 11905: 0xE8D4, - 26586 - 11905: 0xE8D6, - 26587 - 11905: 0x96B8, - 26588 - 11905: 0xB9F1, - 26589 - 11905: 0xE8D8, - 26590 - 11905: 0xD7F5, - 26591 - 11905: 0x96B9, - 26592 - 11905: 0xC4FB, - 26593 - 11905: 0x96BA, - 26594 - 11905: 0xE8DC, - 26595 - 11905: 0x96BB, - 26596 - 11905: 0x96BC, - 26597 - 11905: 0xB2E9, - 26598 - 11905: 0x96BD, - 26599 - 11905: 0x96BE, - 26600 - 11905: 0x96BF, - 26601 - 11905: 0xE8D1, - 26602 - 11905: 0x96C0, - 26603 - 11905: 0x96C1, - 26604 - 11905: 0xBCED, - 26605 - 11905: 0x96C2, - 26606 - 11905: 0x96C3, - 26607 - 11905: 0xBFC2, - 26608 - 11905: 0xE8CD, - 26609 - 11905: 0xD6F9, - 26610 - 11905: 0x96C4, - 26611 - 11905: 0xC1F8, - 26612 - 11905: 0xB2F1, - 26613 - 11905: 0x96C5, - 26614 - 11905: 0x96C6, - 26615 - 11905: 0x96C7, - 26616 - 11905: 0x96C8, - 26617 - 11905: 0x96C9, - 26618 - 11905: 0x96CA, - 26619 - 11905: 0x96CB, - 26620 - 11905: 0x96CC, - 26621 - 11905: 0xE8DF, - 26622 - 11905: 0x96CD, - 26623 - 11905: 0xCAC1, - 26624 - 11905: 0xE8D9, - 26625 - 11905: 0x96CE, - 26626 - 11905: 0x96CF, - 26627 - 11905: 0x96D0, - 26628 - 11905: 0x96D1, - 26629 - 11905: 0xD5A4, - 26630 - 11905: 0x96D2, - 26631 - 11905: 0xB1EA, - 26632 - 11905: 0xD5BB, - 26633 - 11905: 0xE8CE, - 26634 - 11905: 0xE8D0, - 26635 - 11905: 0xB6B0, - 26636 - 11905: 0xE8D3, - 26637 - 11905: 0x96D3, - 26638 - 11905: 0xE8DD, - 26639 - 11905: 0xC0B8, - 26640 - 11905: 0x96D4, - 26641 - 11905: 0xCAF7, - 26642 - 11905: 0x96D5, - 26643 - 11905: 0xCBA8, - 26644 - 11905: 0x96D6, - 26645 - 11905: 0x96D7, - 26646 - 11905: 0xC6DC, - 26647 - 11905: 0xC0F5, - 26648 - 11905: 0x96D8, - 26649 - 11905: 0x96D9, - 26650 - 11905: 0x96DA, - 26651 - 11905: 0x96DB, - 26652 - 11905: 0x96DC, - 26653 - 11905: 0xE8E9, - 26654 - 11905: 0x96DD, - 26655 - 11905: 0x96DE, - 26656 - 11905: 0x96DF, - 26657 - 11905: 0xD0A3, - 26658 - 11905: 0x96E0, - 26659 - 11905: 0x96E1, - 26660 - 11905: 0x96E2, - 26661 - 11905: 0x96E3, - 26662 - 11905: 0x96E4, - 26663 - 11905: 0x96E5, - 26664 - 11905: 0x96E6, - 26665 - 11905: 0xE8F2, - 26666 - 11905: 0xD6EA, - 26667 - 11905: 0x96E7, - 26668 - 11905: 0x96E8, - 26669 - 11905: 0x96E9, - 26670 - 11905: 0x96EA, - 26671 - 11905: 0x96EB, - 26672 - 11905: 0x96EC, - 26673 - 11905: 0x96ED, - 26674 - 11905: 0xE8E0, - 26675 - 11905: 0xE8E1, - 26676 - 11905: 0x96EE, - 26677 - 11905: 0x96EF, - 26678 - 11905: 0x96F0, - 26679 - 11905: 0xD1F9, - 26680 - 11905: 0xBACB, - 26681 - 11905: 0xB8F9, - 26682 - 11905: 0x96F1, - 26683 - 11905: 0x96F2, - 26684 - 11905: 0xB8F1, - 26685 - 11905: 0xD4D4, - 26686 - 11905: 0xE8EF, - 26687 - 11905: 0x96F3, - 26688 - 11905: 0xE8EE, - 26689 - 11905: 0xE8EC, - 26690 - 11905: 0xB9F0, - 26691 - 11905: 0xCCD2, - 26692 - 11905: 0xE8E6, - 26693 - 11905: 0xCEA6, - 26694 - 11905: 0xBFF2, - 26695 - 11905: 0x96F4, - 26696 - 11905: 0xB0B8, - 26697 - 11905: 0xE8F1, - 26698 - 11905: 0xE8F0, - 26699 - 11905: 0x96F5, - 26700 - 11905: 0xD7C0, - 26701 - 11905: 0x96F6, - 26702 - 11905: 0xE8E4, - 26703 - 11905: 0x96F7, - 26704 - 11905: 0xCDA9, - 26705 - 11905: 0xC9A3, - 26706 - 11905: 0x96F8, - 26707 - 11905: 0xBBB8, - 26708 - 11905: 0xBDDB, - 26709 - 11905: 0xE8EA, - 26710 - 11905: 0x96F9, - 26711 - 11905: 0x96FA, - 26712 - 11905: 0x96FB, - 26713 - 11905: 0x96FC, - 26714 - 11905: 0x96FD, - 26715 - 11905: 0x96FE, - 26716 - 11905: 0x9740, - 26717 - 11905: 0x9741, - 26718 - 11905: 0x9742, - 26719 - 11905: 0x9743, - 26720 - 11905: 0xE8E2, - 26721 - 11905: 0xE8E3, - 26722 - 11905: 0xE8E5, - 26723 - 11905: 0xB5B5, - 26724 - 11905: 0xE8E7, - 26725 - 11905: 0xC7C5, - 26726 - 11905: 0xE8EB, - 26727 - 11905: 0xE8ED, - 26728 - 11905: 0xBDB0, - 26729 - 11905: 0xD7AE, - 26730 - 11905: 0x9744, - 26731 - 11905: 0xE8F8, - 26732 - 11905: 0x9745, - 26733 - 11905: 0x9746, - 26734 - 11905: 0x9747, - 26735 - 11905: 0x9748, - 26736 - 11905: 0x9749, - 26737 - 11905: 0x974A, - 26738 - 11905: 0x974B, - 26739 - 11905: 0x974C, - 26740 - 11905: 0xE8F5, - 26741 - 11905: 0x974D, - 26742 - 11905: 0xCDB0, - 26743 - 11905: 0xE8F6, - 26744 - 11905: 0x974E, - 26745 - 11905: 0x974F, - 26746 - 11905: 0x9750, - 26747 - 11905: 0x9751, - 26748 - 11905: 0x9752, - 26749 - 11905: 0x9753, - 26750 - 11905: 0x9754, - 26751 - 11905: 0x9755, - 26752 - 11905: 0x9756, - 26753 - 11905: 0xC1BA, - 26754 - 11905: 0x9757, - 26755 - 11905: 0xE8E8, - 26756 - 11905: 0x9758, - 26757 - 11905: 0xC3B7, - 26758 - 11905: 0xB0F0, - 26759 - 11905: 0x9759, - 26760 - 11905: 0x975A, - 26761 - 11905: 0x975B, - 26762 - 11905: 0x975C, - 26763 - 11905: 0x975D, - 26764 - 11905: 0x975E, - 26765 - 11905: 0x975F, - 26766 - 11905: 0x9760, - 26767 - 11905: 0xE8F4, - 26768 - 11905: 0x9761, - 26769 - 11905: 0x9762, - 26770 - 11905: 0x9763, - 26771 - 11905: 0xE8F7, - 26772 - 11905: 0x9764, - 26773 - 11905: 0x9765, - 26774 - 11905: 0x9766, - 26775 - 11905: 0xB9A3, - 26776 - 11905: 0x9767, - 26777 - 11905: 0x9768, - 26778 - 11905: 0x9769, - 26779 - 11905: 0x976A, - 26780 - 11905: 0x976B, - 26781 - 11905: 0x976C, - 26782 - 11905: 0x976D, - 26783 - 11905: 0x976E, - 26784 - 11905: 0x976F, - 26785 - 11905: 0x9770, - 26786 - 11905: 0xC9D2, - 26787 - 11905: 0x9771, - 26788 - 11905: 0x9772, - 26789 - 11905: 0x9773, - 26790 - 11905: 0xC3CE, - 26791 - 11905: 0xCEE0, - 26792 - 11905: 0xC0E6, - 26793 - 11905: 0x9774, - 26794 - 11905: 0x9775, - 26795 - 11905: 0x9776, - 26796 - 11905: 0x9777, - 26797 - 11905: 0xCBF3, - 26798 - 11905: 0x9778, - 26799 - 11905: 0xCCDD, - 26800 - 11905: 0xD0B5, - 26801 - 11905: 0x9779, - 26802 - 11905: 0x977A, - 26803 - 11905: 0xCAE1, - 26804 - 11905: 0x977B, - 26805 - 11905: 0xE8F3, - 26806 - 11905: 0x977C, - 26807 - 11905: 0x977D, - 26808 - 11905: 0x977E, - 26809 - 11905: 0x9780, - 26810 - 11905: 0x9781, - 26811 - 11905: 0x9782, - 26812 - 11905: 0x9783, - 26813 - 11905: 0x9784, - 26814 - 11905: 0x9785, - 26815 - 11905: 0x9786, - 26816 - 11905: 0xBCEC, - 26817 - 11905: 0x9787, - 26818 - 11905: 0xE8F9, - 26819 - 11905: 0x9788, - 26820 - 11905: 0x9789, - 26821 - 11905: 0x978A, - 26822 - 11905: 0x978B, - 26823 - 11905: 0x978C, - 26824 - 11905: 0x978D, - 26825 - 11905: 0xC3DE, - 26826 - 11905: 0x978E, - 26827 - 11905: 0xC6E5, - 26828 - 11905: 0x978F, - 26829 - 11905: 0xB9F7, - 26830 - 11905: 0x9790, - 26831 - 11905: 0x9791, - 26832 - 11905: 0x9792, - 26833 - 11905: 0x9793, - 26834 - 11905: 0xB0F4, - 26835 - 11905: 0x9794, - 26836 - 11905: 0x9795, - 26837 - 11905: 0xD7D8, - 26838 - 11905: 0x9796, - 26839 - 11905: 0x9797, - 26840 - 11905: 0xBCAC, - 26841 - 11905: 0x9798, - 26842 - 11905: 0xC5EF, - 26843 - 11905: 0x9799, - 26844 - 11905: 0x979A, - 26845 - 11905: 0x979B, - 26846 - 11905: 0x979C, - 26847 - 11905: 0x979D, - 26848 - 11905: 0xCCC4, - 26849 - 11905: 0x979E, - 26850 - 11905: 0x979F, - 26851 - 11905: 0xE9A6, - 26852 - 11905: 0x97A0, - 26853 - 11905: 0x97A1, - 26854 - 11905: 0x97A2, - 26855 - 11905: 0x97A3, - 26856 - 11905: 0x97A4, - 26857 - 11905: 0x97A5, - 26858 - 11905: 0x97A6, - 26859 - 11905: 0x97A7, - 26860 - 11905: 0x97A8, - 26861 - 11905: 0x97A9, - 26862 - 11905: 0xC9AD, - 26863 - 11905: 0x97AA, - 26864 - 11905: 0xE9A2, - 26865 - 11905: 0xC0E2, - 26866 - 11905: 0x97AB, - 26867 - 11905: 0x97AC, - 26868 - 11905: 0x97AD, - 26869 - 11905: 0xBFC3, - 26870 - 11905: 0x97AE, - 26871 - 11905: 0x97AF, - 26872 - 11905: 0x97B0, - 26873 - 11905: 0xE8FE, - 26874 - 11905: 0xB9D7, - 26875 - 11905: 0x97B1, - 26876 - 11905: 0xE8FB, - 26877 - 11905: 0x97B2, - 26878 - 11905: 0x97B3, - 26879 - 11905: 0x97B4, - 26880 - 11905: 0x97B5, - 26881 - 11905: 0xE9A4, - 26882 - 11905: 0x97B6, - 26883 - 11905: 0x97B7, - 26884 - 11905: 0x97B8, - 26885 - 11905: 0xD2CE, - 26886 - 11905: 0x97B9, - 26887 - 11905: 0x97BA, - 26888 - 11905: 0x97BB, - 26889 - 11905: 0x97BC, - 26890 - 11905: 0x97BD, - 26891 - 11905: 0xE9A3, - 26892 - 11905: 0x97BE, - 26893 - 11905: 0xD6B2, - 26894 - 11905: 0xD7B5, - 26895 - 11905: 0x97BF, - 26896 - 11905: 0xE9A7, - 26897 - 11905: 0x97C0, - 26898 - 11905: 0xBDB7, - 26899 - 11905: 0x97C1, - 26900 - 11905: 0x97C2, - 26901 - 11905: 0x97C3, - 26902 - 11905: 0x97C4, - 26903 - 11905: 0x97C5, - 26904 - 11905: 0x97C6, - 26905 - 11905: 0x97C7, - 26906 - 11905: 0x97C8, - 26907 - 11905: 0x97C9, - 26908 - 11905: 0x97CA, - 26909 - 11905: 0x97CB, - 26910 - 11905: 0x97CC, - 26911 - 11905: 0xE8FC, - 26912 - 11905: 0xE8FD, - 26913 - 11905: 0x97CD, - 26914 - 11905: 0x97CE, - 26915 - 11905: 0x97CF, - 26916 - 11905: 0xE9A1, - 26917 - 11905: 0x97D0, - 26918 - 11905: 0x97D1, - 26919 - 11905: 0x97D2, - 26920 - 11905: 0x97D3, - 26921 - 11905: 0x97D4, - 26922 - 11905: 0x97D5, - 26923 - 11905: 0x97D6, - 26924 - 11905: 0x97D7, - 26925 - 11905: 0xCDD6, - 26926 - 11905: 0x97D8, - 26927 - 11905: 0x97D9, - 26928 - 11905: 0xD2AC, - 26929 - 11905: 0x97DA, - 26930 - 11905: 0x97DB, - 26931 - 11905: 0x97DC, - 26932 - 11905: 0xE9B2, - 26933 - 11905: 0x97DD, - 26934 - 11905: 0x97DE, - 26935 - 11905: 0x97DF, - 26936 - 11905: 0x97E0, - 26937 - 11905: 0xE9A9, - 26938 - 11905: 0x97E1, - 26939 - 11905: 0x97E2, - 26940 - 11905: 0x97E3, - 26941 - 11905: 0xB4AA, - 26942 - 11905: 0x97E4, - 26943 - 11905: 0xB4BB, - 26944 - 11905: 0x97E5, - 26945 - 11905: 0x97E6, - 26946 - 11905: 0xE9AB, - 26947 - 11905: 0x97E7, - 26948 - 11905: 0x97E8, - 26949 - 11905: 0x97E9, - 26950 - 11905: 0x97EA, - 26951 - 11905: 0x97EB, - 26952 - 11905: 0x97EC, - 26953 - 11905: 0x97ED, - 26954 - 11905: 0x97EE, - 26955 - 11905: 0x97EF, - 26956 - 11905: 0x97F0, - 26957 - 11905: 0x97F1, - 26958 - 11905: 0x97F2, - 26959 - 11905: 0x97F3, - 26960 - 11905: 0x97F4, - 26961 - 11905: 0x97F5, - 26962 - 11905: 0x97F6, - 26963 - 11905: 0x97F7, - 26964 - 11905: 0xD0A8, - 26965 - 11905: 0x97F8, - 26966 - 11905: 0x97F9, - 26967 - 11905: 0xE9A5, - 26968 - 11905: 0x97FA, - 26969 - 11905: 0x97FB, - 26970 - 11905: 0xB3FE, - 26971 - 11905: 0x97FC, - 26972 - 11905: 0x97FD, - 26973 - 11905: 0xE9AC, - 26974 - 11905: 0xC0E3, - 26975 - 11905: 0x97FE, - 26976 - 11905: 0xE9AA, - 26977 - 11905: 0x9840, - 26978 - 11905: 0x9841, - 26979 - 11905: 0xE9B9, - 26980 - 11905: 0x9842, - 26981 - 11905: 0x9843, - 26982 - 11905: 0xE9B8, - 26983 - 11905: 0x9844, - 26984 - 11905: 0x9845, - 26985 - 11905: 0x9846, - 26986 - 11905: 0x9847, - 26987 - 11905: 0xE9AE, - 26988 - 11905: 0x9848, - 26989 - 11905: 0x9849, - 26990 - 11905: 0xE8FA, - 26991 - 11905: 0x984A, - 26992 - 11905: 0x984B, - 26993 - 11905: 0xE9A8, - 26994 - 11905: 0x984C, - 26995 - 11905: 0x984D, - 26996 - 11905: 0x984E, - 26997 - 11905: 0x984F, - 26998 - 11905: 0x9850, - 26999 - 11905: 0xBFAC, - 27000 - 11905: 0xE9B1, - 27001 - 11905: 0xE9BA, - 27002 - 11905: 0x9851, - 27003 - 11905: 0x9852, - 27004 - 11905: 0xC2A5, - 27005 - 11905: 0x9853, - 27006 - 11905: 0x9854, - 27007 - 11905: 0x9855, - 27008 - 11905: 0xE9AF, - 27009 - 11905: 0x9856, - 27010 - 11905: 0xB8C5, - 27011 - 11905: 0x9857, - 27012 - 11905: 0xE9AD, - 27013 - 11905: 0x9858, - 27014 - 11905: 0xD3DC, - 27015 - 11905: 0xE9B4, - 27016 - 11905: 0xE9B5, - 27017 - 11905: 0xE9B7, - 27018 - 11905: 0x9859, - 27019 - 11905: 0x985A, - 27020 - 11905: 0x985B, - 27021 - 11905: 0xE9C7, - 27022 - 11905: 0x985C, - 27023 - 11905: 0x985D, - 27024 - 11905: 0x985E, - 27025 - 11905: 0x985F, - 27026 - 11905: 0x9860, - 27027 - 11905: 0x9861, - 27028 - 11905: 0xC0C6, - 27029 - 11905: 0xE9C5, - 27030 - 11905: 0x9862, - 27031 - 11905: 0x9863, - 27032 - 11905: 0xE9B0, - 27033 - 11905: 0x9864, - 27034 - 11905: 0x9865, - 27035 - 11905: 0xE9BB, - 27036 - 11905: 0xB0F1, - 27037 - 11905: 0x9866, - 27038 - 11905: 0x9867, - 27039 - 11905: 0x9868, - 27040 - 11905: 0x9869, - 27041 - 11905: 0x986A, - 27042 - 11905: 0x986B, - 27043 - 11905: 0x986C, - 27044 - 11905: 0x986D, - 27045 - 11905: 0x986E, - 27046 - 11905: 0x986F, - 27047 - 11905: 0xE9BC, - 27048 - 11905: 0xD5A5, - 27049 - 11905: 0x9870, - 27050 - 11905: 0x9871, - 27051 - 11905: 0xE9BE, - 27052 - 11905: 0x9872, - 27053 - 11905: 0xE9BF, - 27054 - 11905: 0x9873, - 27055 - 11905: 0x9874, - 27056 - 11905: 0x9875, - 27057 - 11905: 0xE9C1, - 27058 - 11905: 0x9876, - 27059 - 11905: 0x9877, - 27060 - 11905: 0xC1F1, - 27061 - 11905: 0x9878, - 27062 - 11905: 0x9879, - 27063 - 11905: 0xC8B6, - 27064 - 11905: 0x987A, - 27065 - 11905: 0x987B, - 27066 - 11905: 0x987C, - 27067 - 11905: 0xE9BD, - 27068 - 11905: 0x987D, - 27069 - 11905: 0x987E, - 27070 - 11905: 0x9880, - 27071 - 11905: 0x9881, - 27072 - 11905: 0x9882, - 27073 - 11905: 0xE9C2, - 27074 - 11905: 0x9883, - 27075 - 11905: 0x9884, - 27076 - 11905: 0x9885, - 27077 - 11905: 0x9886, - 27078 - 11905: 0x9887, - 27079 - 11905: 0x9888, - 27080 - 11905: 0x9889, - 27081 - 11905: 0x988A, - 27082 - 11905: 0xE9C3, - 27083 - 11905: 0x988B, - 27084 - 11905: 0xE9B3, - 27085 - 11905: 0x988C, - 27086 - 11905: 0xE9B6, - 27087 - 11905: 0x988D, - 27088 - 11905: 0xBBB1, - 27089 - 11905: 0x988E, - 27090 - 11905: 0x988F, - 27091 - 11905: 0x9890, - 27092 - 11905: 0xE9C0, - 27093 - 11905: 0x9891, - 27094 - 11905: 0x9892, - 27095 - 11905: 0x9893, - 27096 - 11905: 0x9894, - 27097 - 11905: 0x9895, - 27098 - 11905: 0x9896, - 27099 - 11905: 0xBCF7, - 27100 - 11905: 0x9897, - 27101 - 11905: 0x9898, - 27102 - 11905: 0x9899, - 27103 - 11905: 0xE9C4, - 27104 - 11905: 0xE9C6, - 27105 - 11905: 0x989A, - 27106 - 11905: 0x989B, - 27107 - 11905: 0x989C, - 27108 - 11905: 0x989D, - 27109 - 11905: 0x989E, - 27110 - 11905: 0x989F, - 27111 - 11905: 0x98A0, - 27112 - 11905: 0x98A1, - 27113 - 11905: 0x98A2, - 27114 - 11905: 0x98A3, - 27115 - 11905: 0x98A4, - 27116 - 11905: 0x98A5, - 27117 - 11905: 0xE9CA, - 27118 - 11905: 0x98A6, - 27119 - 11905: 0x98A7, - 27120 - 11905: 0x98A8, - 27121 - 11905: 0x98A9, - 27122 - 11905: 0xE9CE, - 27123 - 11905: 0x98AA, - 27124 - 11905: 0x98AB, - 27125 - 11905: 0x98AC, - 27126 - 11905: 0x98AD, - 27127 - 11905: 0x98AE, - 27128 - 11905: 0x98AF, - 27129 - 11905: 0x98B0, - 27130 - 11905: 0x98B1, - 27131 - 11905: 0x98B2, - 27132 - 11905: 0x98B3, - 27133 - 11905: 0xB2DB, - 27134 - 11905: 0x98B4, - 27135 - 11905: 0xE9C8, - 27136 - 11905: 0x98B5, - 27137 - 11905: 0x98B6, - 27138 - 11905: 0x98B7, - 27139 - 11905: 0x98B8, - 27140 - 11905: 0x98B9, - 27141 - 11905: 0x98BA, - 27142 - 11905: 0x98BB, - 27143 - 11905: 0x98BC, - 27144 - 11905: 0x98BD, - 27145 - 11905: 0x98BE, - 27146 - 11905: 0xB7AE, - 27147 - 11905: 0x98BF, - 27148 - 11905: 0x98C0, - 27149 - 11905: 0x98C1, - 27150 - 11905: 0x98C2, - 27151 - 11905: 0x98C3, - 27152 - 11905: 0x98C4, - 27153 - 11905: 0x98C5, - 27154 - 11905: 0x98C6, - 27155 - 11905: 0x98C7, - 27156 - 11905: 0x98C8, - 27157 - 11905: 0x98C9, - 27158 - 11905: 0x98CA, - 27159 - 11905: 0xE9CB, - 27160 - 11905: 0xE9CC, - 27161 - 11905: 0x98CB, - 27162 - 11905: 0x98CC, - 27163 - 11905: 0x98CD, - 27164 - 11905: 0x98CE, - 27165 - 11905: 0x98CF, - 27166 - 11905: 0x98D0, - 27167 - 11905: 0xD5C1, - 27168 - 11905: 0x98D1, - 27169 - 11905: 0xC4A3, - 27170 - 11905: 0x98D2, - 27171 - 11905: 0x98D3, - 27172 - 11905: 0x98D4, - 27173 - 11905: 0x98D5, - 27174 - 11905: 0x98D6, - 27175 - 11905: 0x98D7, - 27176 - 11905: 0xE9D8, - 27177 - 11905: 0x98D8, - 27178 - 11905: 0xBAE1, - 27179 - 11905: 0x98D9, - 27180 - 11905: 0x98DA, - 27181 - 11905: 0x98DB, - 27182 - 11905: 0x98DC, - 27183 - 11905: 0xE9C9, - 27184 - 11905: 0x98DD, - 27185 - 11905: 0xD3A3, - 27186 - 11905: 0x98DE, - 27187 - 11905: 0x98DF, - 27188 - 11905: 0x98E0, - 27189 - 11905: 0xE9D4, - 27190 - 11905: 0x98E1, - 27191 - 11905: 0x98E2, - 27192 - 11905: 0x98E3, - 27193 - 11905: 0x98E4, - 27194 - 11905: 0x98E5, - 27195 - 11905: 0x98E6, - 27196 - 11905: 0x98E7, - 27197 - 11905: 0xE9D7, - 27198 - 11905: 0xE9D0, - 27199 - 11905: 0x98E8, - 27200 - 11905: 0x98E9, - 27201 - 11905: 0x98EA, - 27202 - 11905: 0x98EB, - 27203 - 11905: 0x98EC, - 27204 - 11905: 0xE9CF, - 27205 - 11905: 0x98ED, - 27206 - 11905: 0x98EE, - 27207 - 11905: 0xC7C1, - 27208 - 11905: 0x98EF, - 27209 - 11905: 0x98F0, - 27210 - 11905: 0x98F1, - 27211 - 11905: 0x98F2, - 27212 - 11905: 0x98F3, - 27213 - 11905: 0x98F4, - 27214 - 11905: 0x98F5, - 27215 - 11905: 0x98F6, - 27216 - 11905: 0xE9D2, - 27217 - 11905: 0x98F7, - 27218 - 11905: 0x98F8, - 27219 - 11905: 0x98F9, - 27220 - 11905: 0x98FA, - 27221 - 11905: 0x98FB, - 27222 - 11905: 0x98FC, - 27223 - 11905: 0x98FD, - 27224 - 11905: 0xE9D9, - 27225 - 11905: 0xB3C8, - 27226 - 11905: 0x98FE, - 27227 - 11905: 0xE9D3, - 27228 - 11905: 0x9940, - 27229 - 11905: 0x9941, - 27230 - 11905: 0x9942, - 27231 - 11905: 0x9943, - 27232 - 11905: 0x9944, - 27233 - 11905: 0xCFF0, - 27234 - 11905: 0x9945, - 27235 - 11905: 0x9946, - 27236 - 11905: 0x9947, - 27237 - 11905: 0xE9CD, - 27238 - 11905: 0x9948, - 27239 - 11905: 0x9949, - 27240 - 11905: 0x994A, - 27241 - 11905: 0x994B, - 27242 - 11905: 0x994C, - 27243 - 11905: 0x994D, - 27244 - 11905: 0x994E, - 27245 - 11905: 0x994F, - 27246 - 11905: 0x9950, - 27247 - 11905: 0x9951, - 27248 - 11905: 0x9952, - 27249 - 11905: 0xB3F7, - 27250 - 11905: 0x9953, - 27251 - 11905: 0x9954, - 27252 - 11905: 0x9955, - 27253 - 11905: 0x9956, - 27254 - 11905: 0x9957, - 27255 - 11905: 0x9958, - 27256 - 11905: 0x9959, - 27257 - 11905: 0xE9D6, - 27258 - 11905: 0x995A, - 27259 - 11905: 0x995B, - 27260 - 11905: 0xE9DA, - 27261 - 11905: 0x995C, - 27262 - 11905: 0x995D, - 27263 - 11905: 0x995E, - 27264 - 11905: 0xCCB4, - 27265 - 11905: 0x995F, - 27266 - 11905: 0x9960, - 27267 - 11905: 0x9961, - 27268 - 11905: 0xCFAD, - 27269 - 11905: 0x9962, - 27270 - 11905: 0x9963, - 27271 - 11905: 0x9964, - 27272 - 11905: 0x9965, - 27273 - 11905: 0x9966, - 27274 - 11905: 0x9967, - 27275 - 11905: 0x9968, - 27276 - 11905: 0x9969, - 27277 - 11905: 0x996A, - 27278 - 11905: 0xE9D5, - 27279 - 11905: 0x996B, - 27280 - 11905: 0xE9DC, - 27281 - 11905: 0xE9DB, - 27282 - 11905: 0x996C, - 27283 - 11905: 0x996D, - 27284 - 11905: 0x996E, - 27285 - 11905: 0x996F, - 27286 - 11905: 0x9970, - 27287 - 11905: 0xE9DE, - 27288 - 11905: 0x9971, - 27289 - 11905: 0x9972, - 27290 - 11905: 0x9973, - 27291 - 11905: 0x9974, - 27292 - 11905: 0x9975, - 27293 - 11905: 0x9976, - 27294 - 11905: 0x9977, - 27295 - 11905: 0x9978, - 27296 - 11905: 0xE9D1, - 27297 - 11905: 0x9979, - 27298 - 11905: 0x997A, - 27299 - 11905: 0x997B, - 27300 - 11905: 0x997C, - 27301 - 11905: 0x997D, - 27302 - 11905: 0x997E, - 27303 - 11905: 0x9980, - 27304 - 11905: 0x9981, - 27305 - 11905: 0xE9DD, - 27306 - 11905: 0x9982, - 27307 - 11905: 0xE9DF, - 27308 - 11905: 0xC3CA, - 27309 - 11905: 0x9983, - 27310 - 11905: 0x9984, - 27311 - 11905: 0x9985, - 27312 - 11905: 0x9986, - 27313 - 11905: 0x9987, - 27314 - 11905: 0x9988, - 27315 - 11905: 0x9989, - 27316 - 11905: 0x998A, - 27317 - 11905: 0x998B, - 27318 - 11905: 0x998C, - 27319 - 11905: 0x998D, - 27320 - 11905: 0x998E, - 27321 - 11905: 0x998F, - 27322 - 11905: 0x9990, - 27323 - 11905: 0x9991, - 27324 - 11905: 0x9992, - 27325 - 11905: 0x9993, - 27326 - 11905: 0x9994, - 27327 - 11905: 0x9995, - 27328 - 11905: 0x9996, - 27329 - 11905: 0x9997, - 27330 - 11905: 0x9998, - 27331 - 11905: 0x9999, - 27332 - 11905: 0x999A, - 27333 - 11905: 0x999B, - 27334 - 11905: 0x999C, - 27335 - 11905: 0x999D, - 27336 - 11905: 0x999E, - 27337 - 11905: 0x999F, - 27338 - 11905: 0x99A0, - 27339 - 11905: 0x99A1, - 27340 - 11905: 0x99A2, - 27341 - 11905: 0x99A3, - 27342 - 11905: 0x99A4, - 27343 - 11905: 0x99A5, - 27344 - 11905: 0x99A6, - 27345 - 11905: 0x99A7, - 27346 - 11905: 0x99A8, - 27347 - 11905: 0x99A9, - 27348 - 11905: 0x99AA, - 27349 - 11905: 0x99AB, - 27350 - 11905: 0x99AC, - 27351 - 11905: 0x99AD, - 27352 - 11905: 0x99AE, - 27353 - 11905: 0x99AF, - 27354 - 11905: 0x99B0, - 27355 - 11905: 0x99B1, - 27356 - 11905: 0x99B2, - 27357 - 11905: 0x99B3, - 27358 - 11905: 0x99B4, - 27359 - 11905: 0x99B5, - 27360 - 11905: 0x99B6, - 27361 - 11905: 0x99B7, - 27362 - 11905: 0x99B8, - 27363 - 11905: 0x99B9, - 27364 - 11905: 0x99BA, - 27365 - 11905: 0x99BB, - 27366 - 11905: 0x99BC, - 27367 - 11905: 0x99BD, - 27368 - 11905: 0x99BE, - 27369 - 11905: 0x99BF, - 27370 - 11905: 0x99C0, - 27371 - 11905: 0x99C1, - 27372 - 11905: 0x99C2, - 27373 - 11905: 0x99C3, - 27374 - 11905: 0x99C4, - 27375 - 11905: 0x99C5, - 27376 - 11905: 0x99C6, - 27377 - 11905: 0x99C7, - 27378 - 11905: 0x99C8, - 27379 - 11905: 0x99C9, - 27380 - 11905: 0x99CA, - 27381 - 11905: 0x99CB, - 27382 - 11905: 0x99CC, - 27383 - 11905: 0x99CD, - 27384 - 11905: 0x99CE, - 27385 - 11905: 0x99CF, - 27386 - 11905: 0x99D0, - 27387 - 11905: 0x99D1, - 27388 - 11905: 0x99D2, - 27389 - 11905: 0x99D3, - 27390 - 11905: 0x99D4, - 27391 - 11905: 0x99D5, - 27392 - 11905: 0x99D6, - 27393 - 11905: 0x99D7, - 27394 - 11905: 0x99D8, - 27395 - 11905: 0x99D9, - 27396 - 11905: 0x99DA, - 27397 - 11905: 0x99DB, - 27398 - 11905: 0x99DC, - 27399 - 11905: 0x99DD, - 27400 - 11905: 0x99DE, - 27401 - 11905: 0x99DF, - 27402 - 11905: 0x99E0, - 27403 - 11905: 0x99E1, - 27404 - 11905: 0x99E2, - 27405 - 11905: 0x99E3, - 27406 - 11905: 0x99E4, - 27407 - 11905: 0x99E5, - 27408 - 11905: 0x99E6, - 27409 - 11905: 0x99E7, - 27410 - 11905: 0x99E8, - 27411 - 11905: 0x99E9, - 27412 - 11905: 0x99EA, - 27413 - 11905: 0x99EB, - 27414 - 11905: 0x99EC, - 27415 - 11905: 0x99ED, - 27416 - 11905: 0x99EE, - 27417 - 11905: 0x99EF, - 27418 - 11905: 0x99F0, - 27419 - 11905: 0x99F1, - 27420 - 11905: 0x99F2, - 27421 - 11905: 0x99F3, - 27422 - 11905: 0x99F4, - 27423 - 11905: 0x99F5, - 27424 - 11905: 0xC7B7, - 27425 - 11905: 0xB4CE, - 27426 - 11905: 0xBBB6, - 27427 - 11905: 0xD0C0, - 27428 - 11905: 0xECA3, - 27429 - 11905: 0x99F6, - 27430 - 11905: 0x99F7, - 27431 - 11905: 0xC5B7, - 27432 - 11905: 0x99F8, - 27433 - 11905: 0x99F9, - 27434 - 11905: 0x99FA, - 27435 - 11905: 0x99FB, - 27436 - 11905: 0x99FC, - 27437 - 11905: 0x99FD, - 27438 - 11905: 0x99FE, - 27439 - 11905: 0x9A40, - 27440 - 11905: 0x9A41, - 27441 - 11905: 0x9A42, - 27442 - 11905: 0xD3FB, - 27443 - 11905: 0x9A43, - 27444 - 11905: 0x9A44, - 27445 - 11905: 0x9A45, - 27446 - 11905: 0x9A46, - 27447 - 11905: 0xECA4, - 27448 - 11905: 0x9A47, - 27449 - 11905: 0xECA5, - 27450 - 11905: 0xC6DB, - 27451 - 11905: 0x9A48, - 27452 - 11905: 0x9A49, - 27453 - 11905: 0x9A4A, - 27454 - 11905: 0xBFEE, - 27455 - 11905: 0x9A4B, - 27456 - 11905: 0x9A4C, - 27457 - 11905: 0x9A4D, - 27458 - 11905: 0x9A4E, - 27459 - 11905: 0xECA6, - 27460 - 11905: 0x9A4F, - 27461 - 11905: 0x9A50, - 27462 - 11905: 0xECA7, - 27463 - 11905: 0xD0AA, - 27464 - 11905: 0x9A51, - 27465 - 11905: 0xC7B8, - 27466 - 11905: 0x9A52, - 27467 - 11905: 0x9A53, - 27468 - 11905: 0xB8E8, - 27469 - 11905: 0x9A54, - 27470 - 11905: 0x9A55, - 27471 - 11905: 0x9A56, - 27472 - 11905: 0x9A57, - 27473 - 11905: 0x9A58, - 27474 - 11905: 0x9A59, - 27475 - 11905: 0x9A5A, - 27476 - 11905: 0x9A5B, - 27477 - 11905: 0x9A5C, - 27478 - 11905: 0x9A5D, - 27479 - 11905: 0x9A5E, - 27480 - 11905: 0x9A5F, - 27481 - 11905: 0xECA8, - 27482 - 11905: 0x9A60, - 27483 - 11905: 0x9A61, - 27484 - 11905: 0x9A62, - 27485 - 11905: 0x9A63, - 27486 - 11905: 0x9A64, - 27487 - 11905: 0x9A65, - 27488 - 11905: 0x9A66, - 27489 - 11905: 0x9A67, - 27490 - 11905: 0xD6B9, - 27491 - 11905: 0xD5FD, - 27492 - 11905: 0xB4CB, - 27493 - 11905: 0xB2BD, - 27494 - 11905: 0xCEE4, - 27495 - 11905: 0xC6E7, - 27496 - 11905: 0x9A68, - 27497 - 11905: 0x9A69, - 27498 - 11905: 0xCDE1, - 27499 - 11905: 0x9A6A, - 27500 - 11905: 0x9A6B, - 27501 - 11905: 0x9A6C, - 27502 - 11905: 0x9A6D, - 27503 - 11905: 0x9A6E, - 27504 - 11905: 0x9A6F, - 27505 - 11905: 0x9A70, - 27506 - 11905: 0x9A71, - 27507 - 11905: 0x9A72, - 27508 - 11905: 0x9A73, - 27509 - 11905: 0x9A74, - 27510 - 11905: 0x9A75, - 27511 - 11905: 0x9A76, - 27512 - 11905: 0x9A77, - 27513 - 11905: 0xB4F5, - 27514 - 11905: 0x9A78, - 27515 - 11905: 0xCBC0, - 27516 - 11905: 0xBCDF, - 27517 - 11905: 0x9A79, - 27518 - 11905: 0x9A7A, - 27519 - 11905: 0x9A7B, - 27520 - 11905: 0x9A7C, - 27521 - 11905: 0xE9E2, - 27522 - 11905: 0xE9E3, - 27523 - 11905: 0xD1EA, - 27524 - 11905: 0xE9E5, - 27525 - 11905: 0x9A7D, - 27526 - 11905: 0xB4F9, - 27527 - 11905: 0xE9E4, - 27528 - 11905: 0x9A7E, - 27529 - 11905: 0xD1B3, - 27530 - 11905: 0xCAE2, - 27531 - 11905: 0xB2D0, - 27532 - 11905: 0x9A80, - 27533 - 11905: 0xE9E8, - 27534 - 11905: 0x9A81, - 27535 - 11905: 0x9A82, - 27536 - 11905: 0x9A83, - 27537 - 11905: 0x9A84, - 27538 - 11905: 0xE9E6, - 27539 - 11905: 0xE9E7, - 27540 - 11905: 0x9A85, - 27541 - 11905: 0x9A86, - 27542 - 11905: 0xD6B3, - 27543 - 11905: 0x9A87, - 27544 - 11905: 0x9A88, - 27545 - 11905: 0x9A89, - 27546 - 11905: 0xE9E9, - 27547 - 11905: 0xE9EA, - 27548 - 11905: 0x9A8A, - 27549 - 11905: 0x9A8B, - 27550 - 11905: 0x9A8C, - 27551 - 11905: 0x9A8D, - 27552 - 11905: 0x9A8E, - 27553 - 11905: 0xE9EB, - 27554 - 11905: 0x9A8F, - 27555 - 11905: 0x9A90, - 27556 - 11905: 0x9A91, - 27557 - 11905: 0x9A92, - 27558 - 11905: 0x9A93, - 27559 - 11905: 0x9A94, - 27560 - 11905: 0x9A95, - 27561 - 11905: 0x9A96, - 27562 - 11905: 0xE9EC, - 27563 - 11905: 0x9A97, - 27564 - 11905: 0x9A98, - 27565 - 11905: 0x9A99, - 27566 - 11905: 0x9A9A, - 27567 - 11905: 0x9A9B, - 27568 - 11905: 0x9A9C, - 27569 - 11905: 0x9A9D, - 27570 - 11905: 0x9A9E, - 27571 - 11905: 0xECAF, - 27572 - 11905: 0xC5B9, - 27573 - 11905: 0xB6CE, - 27574 - 11905: 0x9A9F, - 27575 - 11905: 0xD2F3, - 27576 - 11905: 0x9AA0, - 27577 - 11905: 0x9AA1, - 27578 - 11905: 0x9AA2, - 27579 - 11905: 0x9AA3, - 27580 - 11905: 0x9AA4, - 27581 - 11905: 0x9AA5, - 27582 - 11905: 0x9AA6, - 27583 - 11905: 0xB5EE, - 27584 - 11905: 0x9AA7, - 27585 - 11905: 0xBBD9, - 27586 - 11905: 0xECB1, - 27587 - 11905: 0x9AA8, - 27588 - 11905: 0x9AA9, - 27589 - 11905: 0xD2E3, - 27590 - 11905: 0x9AAA, - 27591 - 11905: 0x9AAB, - 27592 - 11905: 0x9AAC, - 27593 - 11905: 0x9AAD, - 27594 - 11905: 0x9AAE, - 27595 - 11905: 0xCEE3, - 27596 - 11905: 0x9AAF, - 27597 - 11905: 0xC4B8, - 27598 - 11905: 0x9AB0, - 27599 - 11905: 0xC3BF, - 27600 - 11905: 0x9AB1, - 27601 - 11905: 0x9AB2, - 27602 - 11905: 0xB6BE, - 27603 - 11905: 0xD8B9, - 27604 - 11905: 0xB1C8, - 27605 - 11905: 0xB1CF, - 27606 - 11905: 0xB1D1, - 27607 - 11905: 0xC5FE, - 27608 - 11905: 0x9AB3, - 27609 - 11905: 0xB1D0, - 27610 - 11905: 0x9AB4, - 27611 - 11905: 0xC3AB, - 27612 - 11905: 0x9AB5, - 27613 - 11905: 0x9AB6, - 27614 - 11905: 0x9AB7, - 27615 - 11905: 0x9AB8, - 27616 - 11905: 0x9AB9, - 27617 - 11905: 0xD5B1, - 27618 - 11905: 0x9ABA, - 27619 - 11905: 0x9ABB, - 27620 - 11905: 0x9ABC, - 27621 - 11905: 0x9ABD, - 27622 - 11905: 0x9ABE, - 27623 - 11905: 0x9ABF, - 27624 - 11905: 0x9AC0, - 27625 - 11905: 0x9AC1, - 27626 - 11905: 0xEBA4, - 27627 - 11905: 0xBAC1, - 27628 - 11905: 0x9AC2, - 27629 - 11905: 0x9AC3, - 27630 - 11905: 0x9AC4, - 27631 - 11905: 0xCCBA, - 27632 - 11905: 0x9AC5, - 27633 - 11905: 0x9AC6, - 27634 - 11905: 0x9AC7, - 27635 - 11905: 0xEBA5, - 27636 - 11905: 0x9AC8, - 27637 - 11905: 0xEBA7, - 27638 - 11905: 0x9AC9, - 27639 - 11905: 0x9ACA, - 27640 - 11905: 0x9ACB, - 27641 - 11905: 0xEBA8, - 27642 - 11905: 0x9ACC, - 27643 - 11905: 0x9ACD, - 27644 - 11905: 0x9ACE, - 27645 - 11905: 0xEBA6, - 27646 - 11905: 0x9ACF, - 27647 - 11905: 0x9AD0, - 27648 - 11905: 0x9AD1, - 27649 - 11905: 0x9AD2, - 27650 - 11905: 0x9AD3, - 27651 - 11905: 0x9AD4, - 27652 - 11905: 0x9AD5, - 27653 - 11905: 0xEBA9, - 27654 - 11905: 0xEBAB, - 27655 - 11905: 0xEBAA, - 27656 - 11905: 0x9AD6, - 27657 - 11905: 0x9AD7, - 27658 - 11905: 0x9AD8, - 27659 - 11905: 0x9AD9, - 27660 - 11905: 0x9ADA, - 27661 - 11905: 0xEBAC, - 27662 - 11905: 0x9ADB, - 27663 - 11905: 0xCACF, - 27664 - 11905: 0xD8B5, - 27665 - 11905: 0xC3F1, - 27666 - 11905: 0x9ADC, - 27667 - 11905: 0xC3A5, - 27668 - 11905: 0xC6F8, - 27669 - 11905: 0xEBAD, - 27670 - 11905: 0xC4CA, - 27671 - 11905: 0x9ADD, - 27672 - 11905: 0xEBAE, - 27673 - 11905: 0xEBAF, - 27674 - 11905: 0xEBB0, - 27675 - 11905: 0xB7D5, - 27676 - 11905: 0x9ADE, - 27677 - 11905: 0x9ADF, - 27678 - 11905: 0x9AE0, - 27679 - 11905: 0xB7FA, - 27680 - 11905: 0x9AE1, - 27681 - 11905: 0xEBB1, - 27682 - 11905: 0xC7E2, - 27683 - 11905: 0x9AE2, - 27684 - 11905: 0xEBB3, - 27685 - 11905: 0x9AE3, - 27686 - 11905: 0xBAA4, - 27687 - 11905: 0xD1F5, - 27688 - 11905: 0xB0B1, - 27689 - 11905: 0xEBB2, - 27690 - 11905: 0xEBB4, - 27691 - 11905: 0x9AE4, - 27692 - 11905: 0x9AE5, - 27693 - 11905: 0x9AE6, - 27694 - 11905: 0xB5AA, - 27695 - 11905: 0xC2C8, - 27696 - 11905: 0xC7E8, - 27697 - 11905: 0x9AE7, - 27698 - 11905: 0xEBB5, - 27699 - 11905: 0x9AE8, - 27700 - 11905: 0xCBAE, - 27701 - 11905: 0xE3DF, - 27702 - 11905: 0x9AE9, - 27703 - 11905: 0x9AEA, - 27704 - 11905: 0xD3C0, - 27705 - 11905: 0x9AEB, - 27706 - 11905: 0x9AEC, - 27707 - 11905: 0x9AED, - 27708 - 11905: 0x9AEE, - 27709 - 11905: 0xD9DB, - 27710 - 11905: 0x9AEF, - 27711 - 11905: 0x9AF0, - 27712 - 11905: 0xCDA1, - 27713 - 11905: 0xD6AD, - 27714 - 11905: 0xC7F3, - 27715 - 11905: 0x9AF1, - 27716 - 11905: 0x9AF2, - 27717 - 11905: 0x9AF3, - 27718 - 11905: 0xD9E0, - 27719 - 11905: 0xBBE3, - 27720 - 11905: 0x9AF4, - 27721 - 11905: 0xBABA, - 27722 - 11905: 0xE3E2, - 27723 - 11905: 0x9AF5, - 27724 - 11905: 0x9AF6, - 27725 - 11905: 0x9AF7, - 27726 - 11905: 0x9AF8, - 27727 - 11905: 0x9AF9, - 27728 - 11905: 0xCFAB, - 27729 - 11905: 0x9AFA, - 27730 - 11905: 0x9AFB, - 27731 - 11905: 0x9AFC, - 27732 - 11905: 0xE3E0, - 27733 - 11905: 0xC9C7, - 27734 - 11905: 0x9AFD, - 27735 - 11905: 0xBAB9, - 27736 - 11905: 0x9AFE, - 27737 - 11905: 0x9B40, - 27738 - 11905: 0x9B41, - 27739 - 11905: 0xD1B4, - 27740 - 11905: 0xE3E1, - 27741 - 11905: 0xC8EA, - 27742 - 11905: 0xB9AF, - 27743 - 11905: 0xBDAD, - 27744 - 11905: 0xB3D8, - 27745 - 11905: 0xCEDB, - 27746 - 11905: 0x9B42, - 27747 - 11905: 0x9B43, - 27748 - 11905: 0xCCC0, - 27749 - 11905: 0x9B44, - 27750 - 11905: 0x9B45, - 27751 - 11905: 0x9B46, - 27752 - 11905: 0xE3E8, - 27753 - 11905: 0xE3E9, - 27754 - 11905: 0xCDF4, - 27755 - 11905: 0x9B47, - 27756 - 11905: 0x9B48, - 27757 - 11905: 0x9B49, - 27758 - 11905: 0x9B4A, - 27759 - 11905: 0x9B4B, - 27760 - 11905: 0xCCAD, - 27761 - 11905: 0x9B4C, - 27762 - 11905: 0xBCB3, - 27763 - 11905: 0x9B4D, - 27764 - 11905: 0xE3EA, - 27765 - 11905: 0x9B4E, - 27766 - 11905: 0xE3EB, - 27767 - 11905: 0x9B4F, - 27768 - 11905: 0x9B50, - 27769 - 11905: 0xD0DA, - 27770 - 11905: 0x9B51, - 27771 - 11905: 0x9B52, - 27772 - 11905: 0x9B53, - 27773 - 11905: 0xC6FB, - 27774 - 11905: 0xB7DA, - 27775 - 11905: 0x9B54, - 27776 - 11905: 0x9B55, - 27777 - 11905: 0xC7DF, - 27778 - 11905: 0xD2CA, - 27779 - 11905: 0xCED6, - 27780 - 11905: 0x9B56, - 27781 - 11905: 0xE3E4, - 27782 - 11905: 0xE3EC, - 27783 - 11905: 0x9B57, - 27784 - 11905: 0xC9F2, - 27785 - 11905: 0xB3C1, - 27786 - 11905: 0x9B58, - 27787 - 11905: 0x9B59, - 27788 - 11905: 0xE3E7, - 27789 - 11905: 0x9B5A, - 27790 - 11905: 0x9B5B, - 27791 - 11905: 0xC6E3, - 27792 - 11905: 0xE3E5, - 27793 - 11905: 0x9B5C, - 27794 - 11905: 0x9B5D, - 27795 - 11905: 0xEDB3, - 27796 - 11905: 0xE3E6, - 27797 - 11905: 0x9B5E, - 27798 - 11905: 0x9B5F, - 27799 - 11905: 0x9B60, - 27800 - 11905: 0x9B61, - 27801 - 11905: 0xC9B3, - 27802 - 11905: 0x9B62, - 27803 - 11905: 0xC5E6, - 27804 - 11905: 0x9B63, - 27805 - 11905: 0x9B64, - 27806 - 11905: 0x9B65, - 27807 - 11905: 0xB9B5, - 27808 - 11905: 0x9B66, - 27809 - 11905: 0xC3BB, - 27810 - 11905: 0x9B67, - 27811 - 11905: 0xE3E3, - 27812 - 11905: 0xC5BD, - 27813 - 11905: 0xC1A4, - 27814 - 11905: 0xC2D9, - 27815 - 11905: 0xB2D7, - 27816 - 11905: 0x9B68, - 27817 - 11905: 0xE3ED, - 27818 - 11905: 0xBBA6, - 27819 - 11905: 0xC4AD, - 27820 - 11905: 0x9B69, - 27821 - 11905: 0xE3F0, - 27822 - 11905: 0xBEDA, - 27823 - 11905: 0x9B6A, - 27824 - 11905: 0x9B6B, - 27825 - 11905: 0xE3FB, - 27826 - 11905: 0xE3F5, - 27827 - 11905: 0xBAD3, - 27828 - 11905: 0x9B6C, - 27829 - 11905: 0x9B6D, - 27830 - 11905: 0x9B6E, - 27831 - 11905: 0x9B6F, - 27832 - 11905: 0xB7D0, - 27833 - 11905: 0xD3CD, - 27834 - 11905: 0x9B70, - 27835 - 11905: 0xD6CE, - 27836 - 11905: 0xD5D3, - 27837 - 11905: 0xB9C1, - 27838 - 11905: 0xD5B4, - 27839 - 11905: 0xD1D8, - 27840 - 11905: 0x9B71, - 27841 - 11905: 0x9B72, - 27842 - 11905: 0x9B73, - 27843 - 11905: 0x9B74, - 27844 - 11905: 0xD0B9, - 27845 - 11905: 0xC7F6, - 27846 - 11905: 0x9B75, - 27847 - 11905: 0x9B76, - 27848 - 11905: 0x9B77, - 27849 - 11905: 0xC8AA, - 27850 - 11905: 0xB2B4, - 27851 - 11905: 0x9B78, - 27852 - 11905: 0xC3DA, - 27853 - 11905: 0x9B79, - 27854 - 11905: 0x9B7A, - 27855 - 11905: 0x9B7B, - 27856 - 11905: 0xE3EE, - 27857 - 11905: 0x9B7C, - 27858 - 11905: 0x9B7D, - 27859 - 11905: 0xE3FC, - 27860 - 11905: 0xE3EF, - 27861 - 11905: 0xB7A8, - 27862 - 11905: 0xE3F7, - 27863 - 11905: 0xE3F4, - 27864 - 11905: 0x9B7E, - 27865 - 11905: 0x9B80, - 27866 - 11905: 0x9B81, - 27867 - 11905: 0xB7BA, - 27868 - 11905: 0x9B82, - 27869 - 11905: 0x9B83, - 27870 - 11905: 0xC5A2, - 27871 - 11905: 0x9B84, - 27872 - 11905: 0xE3F6, - 27873 - 11905: 0xC5DD, - 27874 - 11905: 0xB2A8, - 27875 - 11905: 0xC6FC, - 27876 - 11905: 0x9B85, - 27877 - 11905: 0xC4E0, - 27878 - 11905: 0x9B86, - 27879 - 11905: 0x9B87, - 27880 - 11905: 0xD7A2, - 27881 - 11905: 0x9B88, - 27882 - 11905: 0xC0E1, - 27883 - 11905: 0xE3F9, - 27884 - 11905: 0x9B89, - 27885 - 11905: 0x9B8A, - 27886 - 11905: 0xE3FA, - 27887 - 11905: 0xE3FD, - 27888 - 11905: 0xCCA9, - 27889 - 11905: 0xE3F3, - 27890 - 11905: 0x9B8B, - 27891 - 11905: 0xD3BE, - 27892 - 11905: 0x9B8C, - 27893 - 11905: 0xB1C3, - 27894 - 11905: 0xEDB4, - 27895 - 11905: 0xE3F1, - 27896 - 11905: 0xE3F2, - 27897 - 11905: 0x9B8D, - 27898 - 11905: 0xE3F8, - 27899 - 11905: 0xD0BA, - 27900 - 11905: 0xC6C3, - 27901 - 11905: 0xD4F3, - 27902 - 11905: 0xE3FE, - 27903 - 11905: 0x9B8E, - 27904 - 11905: 0x9B8F, - 27905 - 11905: 0xBDE0, - 27906 - 11905: 0x9B90, - 27907 - 11905: 0x9B91, - 27908 - 11905: 0xE4A7, - 27909 - 11905: 0x9B92, - 27910 - 11905: 0x9B93, - 27911 - 11905: 0xE4A6, - 27912 - 11905: 0x9B94, - 27913 - 11905: 0x9B95, - 27914 - 11905: 0x9B96, - 27915 - 11905: 0xD1F3, - 27916 - 11905: 0xE4A3, - 27917 - 11905: 0x9B97, - 27918 - 11905: 0xE4A9, - 27919 - 11905: 0x9B98, - 27920 - 11905: 0x9B99, - 27921 - 11905: 0x9B9A, - 27922 - 11905: 0xC8F7, - 27923 - 11905: 0x9B9B, - 27924 - 11905: 0x9B9C, - 27925 - 11905: 0x9B9D, - 27926 - 11905: 0x9B9E, - 27927 - 11905: 0xCFB4, - 27928 - 11905: 0x9B9F, - 27929 - 11905: 0xE4A8, - 27930 - 11905: 0xE4AE, - 27931 - 11905: 0xC2E5, - 27932 - 11905: 0x9BA0, - 27933 - 11905: 0x9BA1, - 27934 - 11905: 0xB6B4, - 27935 - 11905: 0x9BA2, - 27936 - 11905: 0x9BA3, - 27937 - 11905: 0x9BA4, - 27938 - 11905: 0x9BA5, - 27939 - 11905: 0x9BA6, - 27940 - 11905: 0x9BA7, - 27941 - 11905: 0xBDF2, - 27942 - 11905: 0x9BA8, - 27943 - 11905: 0xE4A2, - 27944 - 11905: 0x9BA9, - 27945 - 11905: 0x9BAA, - 27946 - 11905: 0xBAE9, - 27947 - 11905: 0xE4AA, - 27948 - 11905: 0x9BAB, - 27949 - 11905: 0x9BAC, - 27950 - 11905: 0xE4AC, - 27951 - 11905: 0x9BAD, - 27952 - 11905: 0x9BAE, - 27953 - 11905: 0xB6FD, - 27954 - 11905: 0xD6DE, - 27955 - 11905: 0xE4B2, - 27956 - 11905: 0x9BAF, - 27957 - 11905: 0xE4AD, - 27958 - 11905: 0x9BB0, - 27959 - 11905: 0x9BB1, - 27960 - 11905: 0x9BB2, - 27961 - 11905: 0xE4A1, - 27962 - 11905: 0x9BB3, - 27963 - 11905: 0xBBEE, - 27964 - 11905: 0xCDDD, - 27965 - 11905: 0xC7A2, - 27966 - 11905: 0xC5C9, - 27967 - 11905: 0x9BB4, - 27968 - 11905: 0x9BB5, - 27969 - 11905: 0xC1F7, - 27970 - 11905: 0x9BB6, - 27971 - 11905: 0xE4A4, - 27972 - 11905: 0x9BB7, - 27973 - 11905: 0xC7B3, - 27974 - 11905: 0xBDAC, - 27975 - 11905: 0xBDBD, - 27976 - 11905: 0xE4A5, - 27977 - 11905: 0x9BB8, - 27978 - 11905: 0xD7C7, - 27979 - 11905: 0xB2E2, - 27980 - 11905: 0x9BB9, - 27981 - 11905: 0xE4AB, - 27982 - 11905: 0xBCC3, - 27983 - 11905: 0xE4AF, - 27984 - 11905: 0x9BBA, - 27985 - 11905: 0xBBEB, - 27986 - 11905: 0xE4B0, - 27987 - 11905: 0xC5A8, - 27988 - 11905: 0xE4B1, - 27989 - 11905: 0x9BBB, - 27990 - 11905: 0x9BBC, - 27991 - 11905: 0x9BBD, - 27992 - 11905: 0x9BBE, - 27993 - 11905: 0xD5E3, - 27994 - 11905: 0xBFA3, - 27995 - 11905: 0x9BBF, - 27996 - 11905: 0xE4BA, - 27997 - 11905: 0x9BC0, - 27998 - 11905: 0xE4B7, - 27999 - 11905: 0x9BC1, - 28000 - 11905: 0xE4BB, - 28001 - 11905: 0x9BC2, - 28002 - 11905: 0x9BC3, - 28003 - 11905: 0xE4BD, - 28004 - 11905: 0x9BC4, - 28005 - 11905: 0x9BC5, - 28006 - 11905: 0xC6D6, - 28007 - 11905: 0x9BC6, - 28008 - 11905: 0x9BC7, - 28009 - 11905: 0xBAC6, - 28010 - 11905: 0xC0CB, - 28011 - 11905: 0x9BC8, - 28012 - 11905: 0x9BC9, - 28013 - 11905: 0x9BCA, - 28014 - 11905: 0xB8A1, - 28015 - 11905: 0xE4B4, - 28016 - 11905: 0x9BCB, - 28017 - 11905: 0x9BCC, - 28018 - 11905: 0x9BCD, - 28019 - 11905: 0x9BCE, - 28020 - 11905: 0xD4A1, - 28021 - 11905: 0x9BCF, - 28022 - 11905: 0x9BD0, - 28023 - 11905: 0xBAA3, - 28024 - 11905: 0xBDFE, - 28025 - 11905: 0x9BD1, - 28026 - 11905: 0x9BD2, - 28027 - 11905: 0x9BD3, - 28028 - 11905: 0xE4BC, - 28029 - 11905: 0x9BD4, - 28030 - 11905: 0x9BD5, - 28031 - 11905: 0x9BD6, - 28032 - 11905: 0x9BD7, - 28033 - 11905: 0x9BD8, - 28034 - 11905: 0xCDBF, - 28035 - 11905: 0x9BD9, - 28036 - 11905: 0x9BDA, - 28037 - 11905: 0xC4F9, - 28038 - 11905: 0x9BDB, - 28039 - 11905: 0x9BDC, - 28040 - 11905: 0xCFFB, - 28041 - 11905: 0xC9E6, - 28042 - 11905: 0x9BDD, - 28043 - 11905: 0x9BDE, - 28044 - 11905: 0xD3BF, - 28045 - 11905: 0x9BDF, - 28046 - 11905: 0xCFD1, - 28047 - 11905: 0x9BE0, - 28048 - 11905: 0x9BE1, - 28049 - 11905: 0xE4B3, - 28050 - 11905: 0x9BE2, - 28051 - 11905: 0xE4B8, - 28052 - 11905: 0xE4B9, - 28053 - 11905: 0xCCE9, - 28054 - 11905: 0x9BE3, - 28055 - 11905: 0x9BE4, - 28056 - 11905: 0x9BE5, - 28057 - 11905: 0x9BE6, - 28058 - 11905: 0x9BE7, - 28059 - 11905: 0xCCCE, - 28060 - 11905: 0x9BE8, - 28061 - 11905: 0xC0D4, - 28062 - 11905: 0xE4B5, - 28063 - 11905: 0xC1B0, - 28064 - 11905: 0xE4B6, - 28065 - 11905: 0xCED0, - 28066 - 11905: 0x9BE9, - 28067 - 11905: 0xBBC1, - 28068 - 11905: 0xB5D3, - 28069 - 11905: 0x9BEA, - 28070 - 11905: 0xC8F3, - 28071 - 11905: 0xBDA7, - 28072 - 11905: 0xD5C7, - 28073 - 11905: 0xC9AC, - 28074 - 11905: 0xB8A2, - 28075 - 11905: 0xE4CA, - 28076 - 11905: 0x9BEB, - 28077 - 11905: 0x9BEC, - 28078 - 11905: 0xE4CC, - 28079 - 11905: 0xD1C4, - 28080 - 11905: 0x9BED, - 28081 - 11905: 0x9BEE, - 28082 - 11905: 0xD2BA, - 28083 - 11905: 0x9BEF, - 28084 - 11905: 0x9BF0, - 28085 - 11905: 0xBAAD, - 28086 - 11905: 0x9BF1, - 28087 - 11905: 0x9BF2, - 28088 - 11905: 0xBAD4, - 28089 - 11905: 0x9BF3, - 28090 - 11905: 0x9BF4, - 28091 - 11905: 0x9BF5, - 28092 - 11905: 0x9BF6, - 28093 - 11905: 0x9BF7, - 28094 - 11905: 0x9BF8, - 28095 - 11905: 0xE4C3, - 28096 - 11905: 0xB5ED, - 28097 - 11905: 0x9BF9, - 28098 - 11905: 0x9BFA, - 28099 - 11905: 0x9BFB, - 28100 - 11905: 0xD7CD, - 28101 - 11905: 0xE4C0, - 28102 - 11905: 0xCFFD, - 28103 - 11905: 0xE4BF, - 28104 - 11905: 0x9BFC, - 28105 - 11905: 0x9BFD, - 28106 - 11905: 0x9BFE, - 28107 - 11905: 0xC1DC, - 28108 - 11905: 0xCCCA, - 28109 - 11905: 0x9C40, - 28110 - 11905: 0x9C41, - 28111 - 11905: 0x9C42, - 28112 - 11905: 0x9C43, - 28113 - 11905: 0xCAE7, - 28114 - 11905: 0x9C44, - 28115 - 11905: 0x9C45, - 28116 - 11905: 0x9C46, - 28117 - 11905: 0x9C47, - 28118 - 11905: 0xC4D7, - 28119 - 11905: 0x9C48, - 28120 - 11905: 0xCCD4, - 28121 - 11905: 0xE4C8, - 28122 - 11905: 0x9C49, - 28123 - 11905: 0x9C4A, - 28124 - 11905: 0x9C4B, - 28125 - 11905: 0xE4C7, - 28126 - 11905: 0xE4C1, - 28127 - 11905: 0x9C4C, - 28128 - 11905: 0xE4C4, - 28129 - 11905: 0xB5AD, - 28130 - 11905: 0x9C4D, - 28131 - 11905: 0x9C4E, - 28132 - 11905: 0xD3D9, - 28133 - 11905: 0x9C4F, - 28134 - 11905: 0xE4C6, - 28135 - 11905: 0x9C50, - 28136 - 11905: 0x9C51, - 28137 - 11905: 0x9C52, - 28138 - 11905: 0x9C53, - 28139 - 11905: 0xD2F9, - 28140 - 11905: 0xB4E3, - 28141 - 11905: 0x9C54, - 28142 - 11905: 0xBBB4, - 28143 - 11905: 0x9C55, - 28144 - 11905: 0x9C56, - 28145 - 11905: 0xC9EE, - 28146 - 11905: 0x9C57, - 28147 - 11905: 0xB4BE, - 28148 - 11905: 0x9C58, - 28149 - 11905: 0x9C59, - 28150 - 11905: 0x9C5A, - 28151 - 11905: 0xBBEC, - 28152 - 11905: 0x9C5B, - 28153 - 11905: 0xD1CD, - 28154 - 11905: 0x9C5C, - 28155 - 11905: 0xCCED, - 28156 - 11905: 0xEDB5, - 28157 - 11905: 0x9C5D, - 28158 - 11905: 0x9C5E, - 28159 - 11905: 0x9C5F, - 28160 - 11905: 0x9C60, - 28161 - 11905: 0x9C61, - 28162 - 11905: 0x9C62, - 28163 - 11905: 0x9C63, - 28164 - 11905: 0x9C64, - 28165 - 11905: 0xC7E5, - 28166 - 11905: 0x9C65, - 28167 - 11905: 0x9C66, - 28168 - 11905: 0x9C67, - 28169 - 11905: 0x9C68, - 28170 - 11905: 0xD4A8, - 28171 - 11905: 0x9C69, - 28172 - 11905: 0xE4CB, - 28173 - 11905: 0xD7D5, - 28174 - 11905: 0xE4C2, - 28175 - 11905: 0x9C6A, - 28176 - 11905: 0xBDA5, - 28177 - 11905: 0xE4C5, - 28178 - 11905: 0x9C6B, - 28179 - 11905: 0x9C6C, - 28180 - 11905: 0xD3E6, - 28181 - 11905: 0x9C6D, - 28182 - 11905: 0xE4C9, - 28183 - 11905: 0xC9F8, - 28184 - 11905: 0x9C6E, - 28185 - 11905: 0x9C6F, - 28186 - 11905: 0xE4BE, - 28187 - 11905: 0x9C70, - 28188 - 11905: 0x9C71, - 28189 - 11905: 0xD3E5, - 28190 - 11905: 0x9C72, - 28191 - 11905: 0x9C73, - 28192 - 11905: 0xC7FE, - 28193 - 11905: 0xB6C9, - 28194 - 11905: 0x9C74, - 28195 - 11905: 0xD4FC, - 28196 - 11905: 0xB2B3, - 28197 - 11905: 0xE4D7, - 28198 - 11905: 0x9C75, - 28199 - 11905: 0x9C76, - 28200 - 11905: 0x9C77, - 28201 - 11905: 0xCEC2, - 28202 - 11905: 0x9C78, - 28203 - 11905: 0xE4CD, - 28204 - 11905: 0x9C79, - 28205 - 11905: 0xCEBC, - 28206 - 11905: 0x9C7A, - 28207 - 11905: 0xB8DB, - 28208 - 11905: 0x9C7B, - 28209 - 11905: 0x9C7C, - 28210 - 11905: 0xE4D6, - 28211 - 11905: 0x9C7D, - 28212 - 11905: 0xBFCA, - 28213 - 11905: 0x9C7E, - 28214 - 11905: 0x9C80, - 28215 - 11905: 0x9C81, - 28216 - 11905: 0xD3CE, - 28217 - 11905: 0x9C82, - 28218 - 11905: 0xC3EC, - 28219 - 11905: 0x9C83, - 28220 - 11905: 0x9C84, - 28221 - 11905: 0x9C85, - 28222 - 11905: 0x9C86, - 28223 - 11905: 0x9C87, - 28224 - 11905: 0x9C88, - 28225 - 11905: 0x9C89, - 28226 - 11905: 0x9C8A, - 28227 - 11905: 0xC5C8, - 28228 - 11905: 0xE4D8, - 28229 - 11905: 0x9C8B, - 28230 - 11905: 0x9C8C, - 28231 - 11905: 0x9C8D, - 28232 - 11905: 0x9C8E, - 28233 - 11905: 0x9C8F, - 28234 - 11905: 0x9C90, - 28235 - 11905: 0x9C91, - 28236 - 11905: 0x9C92, - 28237 - 11905: 0xCDC4, - 28238 - 11905: 0xE4CF, - 28239 - 11905: 0x9C93, - 28240 - 11905: 0x9C94, - 28241 - 11905: 0x9C95, - 28242 - 11905: 0x9C96, - 28243 - 11905: 0xE4D4, - 28244 - 11905: 0xE4D5, - 28245 - 11905: 0x9C97, - 28246 - 11905: 0xBAFE, - 28247 - 11905: 0x9C98, - 28248 - 11905: 0xCFE6, - 28249 - 11905: 0x9C99, - 28250 - 11905: 0x9C9A, - 28251 - 11905: 0xD5BF, - 28252 - 11905: 0x9C9B, - 28253 - 11905: 0x9C9C, - 28254 - 11905: 0x9C9D, - 28255 - 11905: 0xE4D2, - 28256 - 11905: 0x9C9E, - 28257 - 11905: 0x9C9F, - 28258 - 11905: 0x9CA0, - 28259 - 11905: 0x9CA1, - 28260 - 11905: 0x9CA2, - 28261 - 11905: 0x9CA3, - 28262 - 11905: 0x9CA4, - 28263 - 11905: 0x9CA5, - 28264 - 11905: 0x9CA6, - 28265 - 11905: 0x9CA7, - 28266 - 11905: 0x9CA8, - 28267 - 11905: 0xE4D0, - 28268 - 11905: 0x9CA9, - 28269 - 11905: 0x9CAA, - 28270 - 11905: 0xE4CE, - 28271 - 11905: 0x9CAB, - 28272 - 11905: 0x9CAC, - 28273 - 11905: 0x9CAD, - 28274 - 11905: 0x9CAE, - 28275 - 11905: 0x9CAF, - 28276 - 11905: 0x9CB0, - 28277 - 11905: 0x9CB1, - 28278 - 11905: 0x9CB2, - 28279 - 11905: 0x9CB3, - 28280 - 11905: 0x9CB4, - 28281 - 11905: 0x9CB5, - 28282 - 11905: 0x9CB6, - 28283 - 11905: 0x9CB7, - 28284 - 11905: 0x9CB8, - 28285 - 11905: 0x9CB9, - 28286 - 11905: 0xCDE5, - 28287 - 11905: 0xCAAA, - 28288 - 11905: 0x9CBA, - 28289 - 11905: 0x9CBB, - 28290 - 11905: 0x9CBC, - 28291 - 11905: 0xC0A3, - 28292 - 11905: 0x9CBD, - 28293 - 11905: 0xBDA6, - 28294 - 11905: 0xE4D3, - 28295 - 11905: 0x9CBE, - 28296 - 11905: 0x9CBF, - 28297 - 11905: 0xB8C8, - 28298 - 11905: 0x9CC0, - 28299 - 11905: 0x9CC1, - 28300 - 11905: 0x9CC2, - 28301 - 11905: 0x9CC3, - 28302 - 11905: 0x9CC4, - 28303 - 11905: 0xE4E7, - 28304 - 11905: 0xD4B4, - 28305 - 11905: 0x9CC5, - 28306 - 11905: 0x9CC6, - 28307 - 11905: 0x9CC7, - 28308 - 11905: 0x9CC8, - 28309 - 11905: 0x9CC9, - 28310 - 11905: 0x9CCA, - 28311 - 11905: 0x9CCB, - 28312 - 11905: 0xE4DB, - 28313 - 11905: 0x9CCC, - 28314 - 11905: 0x9CCD, - 28315 - 11905: 0x9CCE, - 28316 - 11905: 0xC1EF, - 28317 - 11905: 0x9CCF, - 28318 - 11905: 0x9CD0, - 28319 - 11905: 0xE4E9, - 28320 - 11905: 0x9CD1, - 28321 - 11905: 0x9CD2, - 28322 - 11905: 0xD2E7, - 28323 - 11905: 0x9CD3, - 28324 - 11905: 0x9CD4, - 28325 - 11905: 0xE4DF, - 28326 - 11905: 0x9CD5, - 28327 - 11905: 0xE4E0, - 28328 - 11905: 0x9CD6, - 28329 - 11905: 0x9CD7, - 28330 - 11905: 0xCFAA, - 28331 - 11905: 0x9CD8, - 28332 - 11905: 0x9CD9, - 28333 - 11905: 0x9CDA, - 28334 - 11905: 0x9CDB, - 28335 - 11905: 0xCBDD, - 28336 - 11905: 0x9CDC, - 28337 - 11905: 0xE4DA, - 28338 - 11905: 0xE4D1, - 28339 - 11905: 0x9CDD, - 28340 - 11905: 0xE4E5, - 28341 - 11905: 0x9CDE, - 28342 - 11905: 0xC8DC, - 28343 - 11905: 0xE4E3, - 28344 - 11905: 0x9CDF, - 28345 - 11905: 0x9CE0, - 28346 - 11905: 0xC4E7, - 28347 - 11905: 0xE4E2, - 28348 - 11905: 0x9CE1, - 28349 - 11905: 0xE4E1, - 28350 - 11905: 0x9CE2, - 28351 - 11905: 0x9CE3, - 28352 - 11905: 0x9CE4, - 28353 - 11905: 0xB3FC, - 28354 - 11905: 0xE4E8, - 28355 - 11905: 0x9CE5, - 28356 - 11905: 0x9CE6, - 28357 - 11905: 0x9CE7, - 28358 - 11905: 0x9CE8, - 28359 - 11905: 0xB5E1, - 28360 - 11905: 0x9CE9, - 28361 - 11905: 0x9CEA, - 28362 - 11905: 0x9CEB, - 28363 - 11905: 0xD7CC, - 28364 - 11905: 0x9CEC, - 28365 - 11905: 0x9CED, - 28366 - 11905: 0x9CEE, - 28367 - 11905: 0xE4E6, - 28368 - 11905: 0x9CEF, - 28369 - 11905: 0xBBAC, - 28370 - 11905: 0x9CF0, - 28371 - 11905: 0xD7D2, - 28372 - 11905: 0xCCCF, - 28373 - 11905: 0xEBF8, - 28374 - 11905: 0x9CF1, - 28375 - 11905: 0xE4E4, - 28376 - 11905: 0x9CF2, - 28377 - 11905: 0x9CF3, - 28378 - 11905: 0xB9F6, - 28379 - 11905: 0x9CF4, - 28380 - 11905: 0x9CF5, - 28381 - 11905: 0x9CF6, - 28382 - 11905: 0xD6CD, - 28383 - 11905: 0xE4D9, - 28384 - 11905: 0xE4DC, - 28385 - 11905: 0xC2FA, - 28386 - 11905: 0xE4DE, - 28387 - 11905: 0x9CF7, - 28388 - 11905: 0xC2CB, - 28389 - 11905: 0xC0C4, - 28390 - 11905: 0xC2D0, - 28391 - 11905: 0x9CF8, - 28392 - 11905: 0xB1F5, - 28393 - 11905: 0xCCB2, - 28394 - 11905: 0x9CF9, - 28395 - 11905: 0x9CFA, - 28396 - 11905: 0x9CFB, - 28397 - 11905: 0x9CFC, - 28398 - 11905: 0x9CFD, - 28399 - 11905: 0x9CFE, - 28400 - 11905: 0x9D40, - 28401 - 11905: 0x9D41, - 28402 - 11905: 0x9D42, - 28403 - 11905: 0x9D43, - 28404 - 11905: 0xB5CE, - 28405 - 11905: 0x9D44, - 28406 - 11905: 0x9D45, - 28407 - 11905: 0x9D46, - 28408 - 11905: 0x9D47, - 28409 - 11905: 0xE4EF, - 28410 - 11905: 0x9D48, - 28411 - 11905: 0x9D49, - 28412 - 11905: 0x9D4A, - 28413 - 11905: 0x9D4B, - 28414 - 11905: 0x9D4C, - 28415 - 11905: 0x9D4D, - 28416 - 11905: 0x9D4E, - 28417 - 11905: 0x9D4F, - 28418 - 11905: 0xC6AF, - 28419 - 11905: 0x9D50, - 28420 - 11905: 0x9D51, - 28421 - 11905: 0x9D52, - 28422 - 11905: 0xC6E1, - 28423 - 11905: 0x9D53, - 28424 - 11905: 0x9D54, - 28425 - 11905: 0xE4F5, - 28426 - 11905: 0x9D55, - 28427 - 11905: 0x9D56, - 28428 - 11905: 0x9D57, - 28429 - 11905: 0x9D58, - 28430 - 11905: 0x9D59, - 28431 - 11905: 0xC2A9, - 28432 - 11905: 0x9D5A, - 28433 - 11905: 0x9D5B, - 28434 - 11905: 0x9D5C, - 28435 - 11905: 0xC0EC, - 28436 - 11905: 0xD1DD, - 28437 - 11905: 0xE4EE, - 28438 - 11905: 0x9D5D, - 28439 - 11905: 0x9D5E, - 28440 - 11905: 0x9D5F, - 28441 - 11905: 0x9D60, - 28442 - 11905: 0x9D61, - 28443 - 11905: 0x9D62, - 28444 - 11905: 0x9D63, - 28445 - 11905: 0x9D64, - 28446 - 11905: 0x9D65, - 28447 - 11905: 0x9D66, - 28448 - 11905: 0xC4AE, - 28449 - 11905: 0x9D67, - 28450 - 11905: 0x9D68, - 28451 - 11905: 0x9D69, - 28452 - 11905: 0xE4ED, - 28453 - 11905: 0x9D6A, - 28454 - 11905: 0x9D6B, - 28455 - 11905: 0x9D6C, - 28456 - 11905: 0x9D6D, - 28457 - 11905: 0xE4F6, - 28458 - 11905: 0xE4F4, - 28459 - 11905: 0xC2FE, - 28460 - 11905: 0x9D6E, - 28461 - 11905: 0xE4DD, - 28462 - 11905: 0x9D6F, - 28463 - 11905: 0xE4F0, - 28464 - 11905: 0x9D70, - 28465 - 11905: 0xCAFE, - 28466 - 11905: 0x9D71, - 28467 - 11905: 0xD5C4, - 28468 - 11905: 0x9D72, - 28469 - 11905: 0x9D73, - 28470 - 11905: 0xE4F1, - 28471 - 11905: 0x9D74, - 28472 - 11905: 0x9D75, - 28473 - 11905: 0x9D76, - 28474 - 11905: 0x9D77, - 28475 - 11905: 0x9D78, - 28476 - 11905: 0x9D79, - 28477 - 11905: 0x9D7A, - 28478 - 11905: 0xD1FA, - 28479 - 11905: 0x9D7B, - 28480 - 11905: 0x9D7C, - 28481 - 11905: 0x9D7D, - 28482 - 11905: 0x9D7E, - 28483 - 11905: 0x9D80, - 28484 - 11905: 0x9D81, - 28485 - 11905: 0x9D82, - 28486 - 11905: 0xE4EB, - 28487 - 11905: 0xE4EC, - 28488 - 11905: 0x9D83, - 28489 - 11905: 0x9D84, - 28490 - 11905: 0x9D85, - 28491 - 11905: 0xE4F2, - 28492 - 11905: 0x9D86, - 28493 - 11905: 0xCEAB, - 28494 - 11905: 0x9D87, - 28495 - 11905: 0x9D88, - 28496 - 11905: 0x9D89, - 28497 - 11905: 0x9D8A, - 28498 - 11905: 0x9D8B, - 28499 - 11905: 0x9D8C, - 28500 - 11905: 0x9D8D, - 28501 - 11905: 0x9D8E, - 28502 - 11905: 0x9D8F, - 28503 - 11905: 0x9D90, - 28504 - 11905: 0xC5CB, - 28505 - 11905: 0x9D91, - 28506 - 11905: 0x9D92, - 28507 - 11905: 0x9D93, - 28508 - 11905: 0xC7B1, - 28509 - 11905: 0x9D94, - 28510 - 11905: 0xC2BA, - 28511 - 11905: 0x9D95, - 28512 - 11905: 0x9D96, - 28513 - 11905: 0x9D97, - 28514 - 11905: 0xE4EA, - 28515 - 11905: 0x9D98, - 28516 - 11905: 0x9D99, - 28517 - 11905: 0x9D9A, - 28518 - 11905: 0xC1CA, - 28519 - 11905: 0x9D9B, - 28520 - 11905: 0x9D9C, - 28521 - 11905: 0x9D9D, - 28522 - 11905: 0x9D9E, - 28523 - 11905: 0x9D9F, - 28524 - 11905: 0x9DA0, - 28525 - 11905: 0xCCB6, - 28526 - 11905: 0xB3B1, - 28527 - 11905: 0x9DA1, - 28528 - 11905: 0x9DA2, - 28529 - 11905: 0x9DA3, - 28530 - 11905: 0xE4FB, - 28531 - 11905: 0x9DA4, - 28532 - 11905: 0xE4F3, - 28533 - 11905: 0x9DA5, - 28534 - 11905: 0x9DA6, - 28535 - 11905: 0x9DA7, - 28536 - 11905: 0xE4FA, - 28537 - 11905: 0x9DA8, - 28538 - 11905: 0xE4FD, - 28539 - 11905: 0x9DA9, - 28540 - 11905: 0xE4FC, - 28541 - 11905: 0x9DAA, - 28542 - 11905: 0x9DAB, - 28543 - 11905: 0x9DAC, - 28544 - 11905: 0x9DAD, - 28545 - 11905: 0x9DAE, - 28546 - 11905: 0x9DAF, - 28547 - 11905: 0x9DB0, - 28548 - 11905: 0xB3CE, - 28549 - 11905: 0x9DB1, - 28550 - 11905: 0x9DB2, - 28551 - 11905: 0x9DB3, - 28552 - 11905: 0xB3BA, - 28553 - 11905: 0xE4F7, - 28554 - 11905: 0x9DB4, - 28555 - 11905: 0x9DB5, - 28556 - 11905: 0xE4F9, - 28557 - 11905: 0xE4F8, - 28558 - 11905: 0xC5EC, - 28559 - 11905: 0x9DB6, - 28560 - 11905: 0x9DB7, - 28561 - 11905: 0x9DB8, - 28562 - 11905: 0x9DB9, - 28563 - 11905: 0x9DBA, - 28564 - 11905: 0x9DBB, - 28565 - 11905: 0x9DBC, - 28566 - 11905: 0x9DBD, - 28567 - 11905: 0x9DBE, - 28568 - 11905: 0x9DBF, - 28569 - 11905: 0x9DC0, - 28570 - 11905: 0x9DC1, - 28571 - 11905: 0x9DC2, - 28572 - 11905: 0xC0BD, - 28573 - 11905: 0x9DC3, - 28574 - 11905: 0x9DC4, - 28575 - 11905: 0x9DC5, - 28576 - 11905: 0x9DC6, - 28577 - 11905: 0xD4E8, - 28578 - 11905: 0x9DC7, - 28579 - 11905: 0x9DC8, - 28580 - 11905: 0x9DC9, - 28581 - 11905: 0x9DCA, - 28582 - 11905: 0x9DCB, - 28583 - 11905: 0xE5A2, - 28584 - 11905: 0x9DCC, - 28585 - 11905: 0x9DCD, - 28586 - 11905: 0x9DCE, - 28587 - 11905: 0x9DCF, - 28588 - 11905: 0x9DD0, - 28589 - 11905: 0x9DD1, - 28590 - 11905: 0x9DD2, - 28591 - 11905: 0x9DD3, - 28592 - 11905: 0x9DD4, - 28593 - 11905: 0x9DD5, - 28594 - 11905: 0x9DD6, - 28595 - 11905: 0xB0C4, - 28596 - 11905: 0x9DD7, - 28597 - 11905: 0x9DD8, - 28598 - 11905: 0xE5A4, - 28599 - 11905: 0x9DD9, - 28600 - 11905: 0x9DDA, - 28601 - 11905: 0xE5A3, - 28602 - 11905: 0x9DDB, - 28603 - 11905: 0x9DDC, - 28604 - 11905: 0x9DDD, - 28605 - 11905: 0x9DDE, - 28606 - 11905: 0x9DDF, - 28607 - 11905: 0x9DE0, - 28608 - 11905: 0xBCA4, - 28609 - 11905: 0x9DE1, - 28610 - 11905: 0xE5A5, - 28611 - 11905: 0x9DE2, - 28612 - 11905: 0x9DE3, - 28613 - 11905: 0x9DE4, - 28614 - 11905: 0x9DE5, - 28615 - 11905: 0x9DE6, - 28616 - 11905: 0x9DE7, - 28617 - 11905: 0xE5A1, - 28618 - 11905: 0x9DE8, - 28619 - 11905: 0x9DE9, - 28620 - 11905: 0x9DEA, - 28621 - 11905: 0x9DEB, - 28622 - 11905: 0x9DEC, - 28623 - 11905: 0x9DED, - 28624 - 11905: 0x9DEE, - 28625 - 11905: 0xE4FE, - 28626 - 11905: 0xB1F4, - 28627 - 11905: 0x9DEF, - 28628 - 11905: 0x9DF0, - 28629 - 11905: 0x9DF1, - 28630 - 11905: 0x9DF2, - 28631 - 11905: 0x9DF3, - 28632 - 11905: 0x9DF4, - 28633 - 11905: 0x9DF5, - 28634 - 11905: 0x9DF6, - 28635 - 11905: 0x9DF7, - 28636 - 11905: 0x9DF8, - 28637 - 11905: 0x9DF9, - 28638 - 11905: 0xE5A8, - 28639 - 11905: 0x9DFA, - 28640 - 11905: 0xE5A9, - 28641 - 11905: 0xE5A6, - 28642 - 11905: 0x9DFB, - 28643 - 11905: 0x9DFC, - 28644 - 11905: 0x9DFD, - 28645 - 11905: 0x9DFE, - 28646 - 11905: 0x9E40, - 28647 - 11905: 0x9E41, - 28648 - 11905: 0x9E42, - 28649 - 11905: 0x9E43, - 28650 - 11905: 0x9E44, - 28651 - 11905: 0x9E45, - 28652 - 11905: 0x9E46, - 28653 - 11905: 0x9E47, - 28654 - 11905: 0xE5A7, - 28655 - 11905: 0xE5AA, - 28656 - 11905: 0x9E48, - 28657 - 11905: 0x9E49, - 28658 - 11905: 0x9E4A, - 28659 - 11905: 0x9E4B, - 28660 - 11905: 0x9E4C, - 28661 - 11905: 0x9E4D, - 28662 - 11905: 0x9E4E, - 28663 - 11905: 0x9E4F, - 28664 - 11905: 0x9E50, - 28665 - 11905: 0x9E51, - 28666 - 11905: 0x9E52, - 28667 - 11905: 0x9E53, - 28668 - 11905: 0x9E54, - 28669 - 11905: 0x9E55, - 28670 - 11905: 0x9E56, - 28671 - 11905: 0x9E57, - 28672 - 11905: 0x9E58, - 28673 - 11905: 0x9E59, - 28674 - 11905: 0x9E5A, - 28675 - 11905: 0x9E5B, - 28676 - 11905: 0x9E5C, - 28677 - 11905: 0x9E5D, - 28678 - 11905: 0x9E5E, - 28679 - 11905: 0x9E5F, - 28680 - 11905: 0x9E60, - 28681 - 11905: 0x9E61, - 28682 - 11905: 0x9E62, - 28683 - 11905: 0x9E63, - 28684 - 11905: 0x9E64, - 28685 - 11905: 0x9E65, - 28686 - 11905: 0x9E66, - 28687 - 11905: 0x9E67, - 28688 - 11905: 0x9E68, - 28689 - 11905: 0xC6D9, - 28690 - 11905: 0x9E69, - 28691 - 11905: 0x9E6A, - 28692 - 11905: 0x9E6B, - 28693 - 11905: 0x9E6C, - 28694 - 11905: 0x9E6D, - 28695 - 11905: 0x9E6E, - 28696 - 11905: 0x9E6F, - 28697 - 11905: 0x9E70, - 28698 - 11905: 0xE5AB, - 28699 - 11905: 0xE5AD, - 28700 - 11905: 0x9E71, - 28701 - 11905: 0x9E72, - 28702 - 11905: 0x9E73, - 28703 - 11905: 0x9E74, - 28704 - 11905: 0x9E75, - 28705 - 11905: 0x9E76, - 28706 - 11905: 0x9E77, - 28707 - 11905: 0xE5AC, - 28708 - 11905: 0x9E78, - 28709 - 11905: 0x9E79, - 28710 - 11905: 0x9E7A, - 28711 - 11905: 0x9E7B, - 28712 - 11905: 0x9E7C, - 28713 - 11905: 0x9E7D, - 28714 - 11905: 0x9E7E, - 28715 - 11905: 0x9E80, - 28716 - 11905: 0x9E81, - 28717 - 11905: 0x9E82, - 28718 - 11905: 0x9E83, - 28719 - 11905: 0x9E84, - 28720 - 11905: 0x9E85, - 28721 - 11905: 0x9E86, - 28722 - 11905: 0x9E87, - 28723 - 11905: 0x9E88, - 28724 - 11905: 0x9E89, - 28725 - 11905: 0xE5AF, - 28726 - 11905: 0x9E8A, - 28727 - 11905: 0x9E8B, - 28728 - 11905: 0x9E8C, - 28729 - 11905: 0xE5AE, - 28730 - 11905: 0x9E8D, - 28731 - 11905: 0x9E8E, - 28732 - 11905: 0x9E8F, - 28733 - 11905: 0x9E90, - 28734 - 11905: 0x9E91, - 28735 - 11905: 0x9E92, - 28736 - 11905: 0x9E93, - 28737 - 11905: 0x9E94, - 28738 - 11905: 0x9E95, - 28739 - 11905: 0x9E96, - 28740 - 11905: 0x9E97, - 28741 - 11905: 0x9E98, - 28742 - 11905: 0x9E99, - 28743 - 11905: 0x9E9A, - 28744 - 11905: 0x9E9B, - 28745 - 11905: 0x9E9C, - 28746 - 11905: 0x9E9D, - 28747 - 11905: 0x9E9E, - 28748 - 11905: 0xB9E0, - 28749 - 11905: 0x9E9F, - 28750 - 11905: 0x9EA0, - 28751 - 11905: 0xE5B0, - 28752 - 11905: 0x9EA1, - 28753 - 11905: 0x9EA2, - 28754 - 11905: 0x9EA3, - 28755 - 11905: 0x9EA4, - 28756 - 11905: 0x9EA5, - 28757 - 11905: 0x9EA6, - 28758 - 11905: 0x9EA7, - 28759 - 11905: 0x9EA8, - 28760 - 11905: 0x9EA9, - 28761 - 11905: 0x9EAA, - 28762 - 11905: 0x9EAB, - 28763 - 11905: 0x9EAC, - 28764 - 11905: 0x9EAD, - 28765 - 11905: 0x9EAE, - 28766 - 11905: 0xE5B1, - 28767 - 11905: 0x9EAF, - 28768 - 11905: 0x9EB0, - 28769 - 11905: 0x9EB1, - 28770 - 11905: 0x9EB2, - 28771 - 11905: 0x9EB3, - 28772 - 11905: 0x9EB4, - 28773 - 11905: 0x9EB5, - 28774 - 11905: 0x9EB6, - 28775 - 11905: 0x9EB7, - 28776 - 11905: 0x9EB8, - 28777 - 11905: 0x9EB9, - 28778 - 11905: 0x9EBA, - 28779 - 11905: 0xBBF0, - 28780 - 11905: 0xECE1, - 28781 - 11905: 0xC3F0, - 28782 - 11905: 0x9EBB, - 28783 - 11905: 0xB5C6, - 28784 - 11905: 0xBBD2, - 28785 - 11905: 0x9EBC, - 28786 - 11905: 0x9EBD, - 28787 - 11905: 0x9EBE, - 28788 - 11905: 0x9EBF, - 28789 - 11905: 0xC1E9, - 28790 - 11905: 0xD4EE, - 28791 - 11905: 0x9EC0, - 28792 - 11905: 0xBEC4, - 28793 - 11905: 0x9EC1, - 28794 - 11905: 0x9EC2, - 28795 - 11905: 0x9EC3, - 28796 - 11905: 0xD7C6, - 28797 - 11905: 0x9EC4, - 28798 - 11905: 0xD4D6, - 28799 - 11905: 0xB2D3, - 28800 - 11905: 0xECBE, - 28801 - 11905: 0x9EC5, - 28802 - 11905: 0x9EC6, - 28803 - 11905: 0x9EC7, - 28804 - 11905: 0x9EC8, - 28805 - 11905: 0xEAC1, - 28806 - 11905: 0x9EC9, - 28807 - 11905: 0x9ECA, - 28808 - 11905: 0x9ECB, - 28809 - 11905: 0xC2AF, - 28810 - 11905: 0xB4B6, - 28811 - 11905: 0x9ECC, - 28812 - 11905: 0x9ECD, - 28813 - 11905: 0x9ECE, - 28814 - 11905: 0xD1D7, - 28815 - 11905: 0x9ECF, - 28816 - 11905: 0x9ED0, - 28817 - 11905: 0x9ED1, - 28818 - 11905: 0xB3B4, - 28819 - 11905: 0x9ED2, - 28820 - 11905: 0xC8B2, - 28821 - 11905: 0xBFBB, - 28822 - 11905: 0xECC0, - 28823 - 11905: 0x9ED3, - 28824 - 11905: 0x9ED4, - 28825 - 11905: 0xD6CB, - 28826 - 11905: 0x9ED5, - 28827 - 11905: 0x9ED6, - 28828 - 11905: 0xECBF, - 28829 - 11905: 0xECC1, - 28830 - 11905: 0x9ED7, - 28831 - 11905: 0x9ED8, - 28832 - 11905: 0x9ED9, - 28833 - 11905: 0x9EDA, - 28834 - 11905: 0x9EDB, - 28835 - 11905: 0x9EDC, - 28836 - 11905: 0x9EDD, - 28837 - 11905: 0x9EDE, - 28838 - 11905: 0x9EDF, - 28839 - 11905: 0x9EE0, - 28840 - 11905: 0x9EE1, - 28841 - 11905: 0x9EE2, - 28842 - 11905: 0x9EE3, - 28843 - 11905: 0xECC5, - 28844 - 11905: 0xBEE6, - 28845 - 11905: 0xCCBF, - 28846 - 11905: 0xC5DA, - 28847 - 11905: 0xBEBC, - 28848 - 11905: 0x9EE4, - 28849 - 11905: 0xECC6, - 28850 - 11905: 0x9EE5, - 28851 - 11905: 0xB1FE, - 28852 - 11905: 0x9EE6, - 28853 - 11905: 0x9EE7, - 28854 - 11905: 0x9EE8, - 28855 - 11905: 0xECC4, - 28856 - 11905: 0xD5A8, - 28857 - 11905: 0xB5E3, - 28858 - 11905: 0x9EE9, - 28859 - 11905: 0xECC2, - 28860 - 11905: 0xC1B6, - 28861 - 11905: 0xB3E3, - 28862 - 11905: 0x9EEA, - 28863 - 11905: 0x9EEB, - 28864 - 11905: 0xECC3, - 28865 - 11905: 0xCBB8, - 28866 - 11905: 0xC0C3, - 28867 - 11905: 0xCCFE, - 28868 - 11905: 0x9EEC, - 28869 - 11905: 0x9EED, - 28870 - 11905: 0x9EEE, - 28871 - 11905: 0x9EEF, - 28872 - 11905: 0xC1D2, - 28873 - 11905: 0x9EF0, - 28874 - 11905: 0xECC8, - 28875 - 11905: 0x9EF1, - 28876 - 11905: 0x9EF2, - 28877 - 11905: 0x9EF3, - 28878 - 11905: 0x9EF4, - 28879 - 11905: 0x9EF5, - 28880 - 11905: 0x9EF6, - 28881 - 11905: 0x9EF7, - 28882 - 11905: 0x9EF8, - 28883 - 11905: 0x9EF9, - 28884 - 11905: 0x9EFA, - 28885 - 11905: 0x9EFB, - 28886 - 11905: 0x9EFC, - 28887 - 11905: 0x9EFD, - 28888 - 11905: 0xBAE6, - 28889 - 11905: 0xC0D3, - 28890 - 11905: 0x9EFE, - 28891 - 11905: 0xD6F2, - 28892 - 11905: 0x9F40, - 28893 - 11905: 0x9F41, - 28894 - 11905: 0x9F42, - 28895 - 11905: 0xD1CC, - 28896 - 11905: 0x9F43, - 28897 - 11905: 0x9F44, - 28898 - 11905: 0x9F45, - 28899 - 11905: 0x9F46, - 28900 - 11905: 0xBFBE, - 28901 - 11905: 0x9F47, - 28902 - 11905: 0xB7B3, - 28903 - 11905: 0xC9D5, - 28904 - 11905: 0xECC7, - 28905 - 11905: 0xBBE2, - 28906 - 11905: 0x9F48, - 28907 - 11905: 0xCCCC, - 28908 - 11905: 0xBDFD, - 28909 - 11905: 0xC8C8, - 28910 - 11905: 0x9F49, - 28911 - 11905: 0xCFA9, - 28912 - 11905: 0x9F4A, - 28913 - 11905: 0x9F4B, - 28914 - 11905: 0x9F4C, - 28915 - 11905: 0x9F4D, - 28916 - 11905: 0x9F4E, - 28917 - 11905: 0x9F4F, - 28918 - 11905: 0x9F50, - 28919 - 11905: 0xCDE9, - 28920 - 11905: 0x9F51, - 28921 - 11905: 0xC5EB, - 28922 - 11905: 0x9F52, - 28923 - 11905: 0x9F53, - 28924 - 11905: 0x9F54, - 28925 - 11905: 0xB7E9, - 28926 - 11905: 0x9F55, - 28927 - 11905: 0x9F56, - 28928 - 11905: 0x9F57, - 28929 - 11905: 0x9F58, - 28930 - 11905: 0x9F59, - 28931 - 11905: 0x9F5A, - 28932 - 11905: 0x9F5B, - 28933 - 11905: 0x9F5C, - 28934 - 11905: 0x9F5D, - 28935 - 11905: 0x9F5E, - 28936 - 11905: 0x9F5F, - 28937 - 11905: 0xD1C9, - 28938 - 11905: 0xBAB8, - 28939 - 11905: 0x9F60, - 28940 - 11905: 0x9F61, - 28941 - 11905: 0x9F62, - 28942 - 11905: 0x9F63, - 28943 - 11905: 0x9F64, - 28944 - 11905: 0xECC9, - 28945 - 11905: 0x9F65, - 28946 - 11905: 0x9F66, - 28947 - 11905: 0xECCA, - 28948 - 11905: 0x9F67, - 28949 - 11905: 0xBBC0, - 28950 - 11905: 0xECCB, - 28951 - 11905: 0x9F68, - 28952 - 11905: 0xECE2, - 28953 - 11905: 0xB1BA, - 28954 - 11905: 0xB7D9, - 28955 - 11905: 0x9F69, - 28956 - 11905: 0x9F6A, - 28957 - 11905: 0x9F6B, - 28958 - 11905: 0x9F6C, - 28959 - 11905: 0x9F6D, - 28960 - 11905: 0x9F6E, - 28961 - 11905: 0x9F6F, - 28962 - 11905: 0x9F70, - 28963 - 11905: 0x9F71, - 28964 - 11905: 0x9F72, - 28965 - 11905: 0x9F73, - 28966 - 11905: 0xBDB9, - 28967 - 11905: 0x9F74, - 28968 - 11905: 0x9F75, - 28969 - 11905: 0x9F76, - 28970 - 11905: 0x9F77, - 28971 - 11905: 0x9F78, - 28972 - 11905: 0x9F79, - 28973 - 11905: 0x9F7A, - 28974 - 11905: 0x9F7B, - 28975 - 11905: 0xECCC, - 28976 - 11905: 0xD1E6, - 28977 - 11905: 0xECCD, - 28978 - 11905: 0x9F7C, - 28979 - 11905: 0x9F7D, - 28980 - 11905: 0x9F7E, - 28981 - 11905: 0x9F80, - 28982 - 11905: 0xC8BB, - 28983 - 11905: 0x9F81, - 28984 - 11905: 0x9F82, - 28985 - 11905: 0x9F83, - 28986 - 11905: 0x9F84, - 28987 - 11905: 0x9F85, - 28988 - 11905: 0x9F86, - 28989 - 11905: 0x9F87, - 28990 - 11905: 0x9F88, - 28991 - 11905: 0x9F89, - 28992 - 11905: 0x9F8A, - 28993 - 11905: 0x9F8B, - 28994 - 11905: 0x9F8C, - 28995 - 11905: 0x9F8D, - 28996 - 11905: 0x9F8E, - 28997 - 11905: 0xECD1, - 28998 - 11905: 0x9F8F, - 28999 - 11905: 0x9F90, - 29000 - 11905: 0x9F91, - 29001 - 11905: 0x9F92, - 29002 - 11905: 0xECD3, - 29003 - 11905: 0x9F93, - 29004 - 11905: 0xBBCD, - 29005 - 11905: 0x9F94, - 29006 - 11905: 0xBCE5, - 29007 - 11905: 0x9F95, - 29008 - 11905: 0x9F96, - 29009 - 11905: 0x9F97, - 29010 - 11905: 0x9F98, - 29011 - 11905: 0x9F99, - 29012 - 11905: 0x9F9A, - 29013 - 11905: 0x9F9B, - 29014 - 11905: 0x9F9C, - 29015 - 11905: 0x9F9D, - 29016 - 11905: 0x9F9E, - 29017 - 11905: 0x9F9F, - 29018 - 11905: 0x9FA0, - 29019 - 11905: 0x9FA1, - 29020 - 11905: 0xECCF, - 29021 - 11905: 0x9FA2, - 29022 - 11905: 0xC9B7, - 29023 - 11905: 0x9FA3, - 29024 - 11905: 0x9FA4, - 29025 - 11905: 0x9FA5, - 29026 - 11905: 0x9FA6, - 29027 - 11905: 0x9FA7, - 29028 - 11905: 0xC3BA, - 29029 - 11905: 0x9FA8, - 29030 - 11905: 0xECE3, - 29031 - 11905: 0xD5D5, - 29032 - 11905: 0xECD0, - 29033 - 11905: 0x9FA9, - 29034 - 11905: 0x9FAA, - 29035 - 11905: 0x9FAB, - 29036 - 11905: 0x9FAC, - 29037 - 11905: 0x9FAD, - 29038 - 11905: 0xD6F3, - 29039 - 11905: 0x9FAE, - 29040 - 11905: 0x9FAF, - 29041 - 11905: 0x9FB0, - 29042 - 11905: 0xECD2, - 29043 - 11905: 0xECCE, - 29044 - 11905: 0x9FB1, - 29045 - 11905: 0x9FB2, - 29046 - 11905: 0x9FB3, - 29047 - 11905: 0x9FB4, - 29048 - 11905: 0xECD4, - 29049 - 11905: 0x9FB5, - 29050 - 11905: 0xECD5, - 29051 - 11905: 0x9FB6, - 29052 - 11905: 0x9FB7, - 29053 - 11905: 0xC9BF, - 29054 - 11905: 0x9FB8, - 29055 - 11905: 0x9FB9, - 29056 - 11905: 0x9FBA, - 29057 - 11905: 0x9FBB, - 29058 - 11905: 0x9FBC, - 29059 - 11905: 0x9FBD, - 29060 - 11905: 0xCFA8, - 29061 - 11905: 0x9FBE, - 29062 - 11905: 0x9FBF, - 29063 - 11905: 0x9FC0, - 29064 - 11905: 0x9FC1, - 29065 - 11905: 0x9FC2, - 29066 - 11905: 0xD0DC, - 29067 - 11905: 0x9FC3, - 29068 - 11905: 0x9FC4, - 29069 - 11905: 0x9FC5, - 29070 - 11905: 0x9FC6, - 29071 - 11905: 0xD1AC, - 29072 - 11905: 0x9FC7, - 29073 - 11905: 0x9FC8, - 29074 - 11905: 0x9FC9, - 29075 - 11905: 0x9FCA, - 29076 - 11905: 0xC8DB, - 29077 - 11905: 0x9FCB, - 29078 - 11905: 0x9FCC, - 29079 - 11905: 0x9FCD, - 29080 - 11905: 0xECD6, - 29081 - 11905: 0xCEF5, - 29082 - 11905: 0x9FCE, - 29083 - 11905: 0x9FCF, - 29084 - 11905: 0x9FD0, - 29085 - 11905: 0x9FD1, - 29086 - 11905: 0x9FD2, - 29087 - 11905: 0xCAEC, - 29088 - 11905: 0xECDA, - 29089 - 11905: 0x9FD3, - 29090 - 11905: 0x9FD4, - 29091 - 11905: 0x9FD5, - 29092 - 11905: 0x9FD6, - 29093 - 11905: 0x9FD7, - 29094 - 11905: 0x9FD8, - 29095 - 11905: 0x9FD9, - 29096 - 11905: 0xECD9, - 29097 - 11905: 0x9FDA, - 29098 - 11905: 0x9FDB, - 29099 - 11905: 0x9FDC, - 29100 - 11905: 0xB0BE, - 29101 - 11905: 0x9FDD, - 29102 - 11905: 0x9FDE, - 29103 - 11905: 0x9FDF, - 29104 - 11905: 0x9FE0, - 29105 - 11905: 0x9FE1, - 29106 - 11905: 0x9FE2, - 29107 - 11905: 0xECD7, - 29108 - 11905: 0x9FE3, - 29109 - 11905: 0xECD8, - 29110 - 11905: 0x9FE4, - 29111 - 11905: 0x9FE5, - 29112 - 11905: 0x9FE6, - 29113 - 11905: 0xECE4, - 29114 - 11905: 0x9FE7, - 29115 - 11905: 0x9FE8, - 29116 - 11905: 0x9FE9, - 29117 - 11905: 0x9FEA, - 29118 - 11905: 0x9FEB, - 29119 - 11905: 0x9FEC, - 29120 - 11905: 0x9FED, - 29121 - 11905: 0x9FEE, - 29122 - 11905: 0x9FEF, - 29123 - 11905: 0xC8BC, - 29124 - 11905: 0x9FF0, - 29125 - 11905: 0x9FF1, - 29126 - 11905: 0x9FF2, - 29127 - 11905: 0x9FF3, - 29128 - 11905: 0x9FF4, - 29129 - 11905: 0x9FF5, - 29130 - 11905: 0x9FF6, - 29131 - 11905: 0x9FF7, - 29132 - 11905: 0x9FF8, - 29133 - 11905: 0x9FF9, - 29134 - 11905: 0xC1C7, - 29135 - 11905: 0x9FFA, - 29136 - 11905: 0x9FFB, - 29137 - 11905: 0x9FFC, - 29138 - 11905: 0x9FFD, - 29139 - 11905: 0x9FFE, - 29140 - 11905: 0xECDC, - 29141 - 11905: 0xD1E0, - 29142 - 11905: 0xA040, - 29143 - 11905: 0xA041, - 29144 - 11905: 0xA042, - 29145 - 11905: 0xA043, - 29146 - 11905: 0xA044, - 29147 - 11905: 0xA045, - 29148 - 11905: 0xA046, - 29149 - 11905: 0xA047, - 29150 - 11905: 0xA048, - 29151 - 11905: 0xA049, - 29152 - 11905: 0xECDB, - 29153 - 11905: 0xA04A, - 29154 - 11905: 0xA04B, - 29155 - 11905: 0xA04C, - 29156 - 11905: 0xA04D, - 29157 - 11905: 0xD4EF, - 29158 - 11905: 0xA04E, - 29159 - 11905: 0xECDD, - 29160 - 11905: 0xA04F, - 29161 - 11905: 0xA050, - 29162 - 11905: 0xA051, - 29163 - 11905: 0xA052, - 29164 - 11905: 0xA053, - 29165 - 11905: 0xA054, - 29166 - 11905: 0xDBC6, - 29167 - 11905: 0xA055, - 29168 - 11905: 0xA056, - 29169 - 11905: 0xA057, - 29170 - 11905: 0xA058, - 29171 - 11905: 0xA059, - 29172 - 11905: 0xA05A, - 29173 - 11905: 0xA05B, - 29174 - 11905: 0xA05C, - 29175 - 11905: 0xA05D, - 29176 - 11905: 0xA05E, - 29177 - 11905: 0xECDE, - 29178 - 11905: 0xA05F, - 29179 - 11905: 0xA060, - 29180 - 11905: 0xA061, - 29181 - 11905: 0xA062, - 29182 - 11905: 0xA063, - 29183 - 11905: 0xA064, - 29184 - 11905: 0xA065, - 29185 - 11905: 0xA066, - 29186 - 11905: 0xA067, - 29187 - 11905: 0xA068, - 29188 - 11905: 0xA069, - 29189 - 11905: 0xA06A, - 29190 - 11905: 0xB1AC, - 29191 - 11905: 0xA06B, - 29192 - 11905: 0xA06C, - 29193 - 11905: 0xA06D, - 29194 - 11905: 0xA06E, - 29195 - 11905: 0xA06F, - 29196 - 11905: 0xA070, - 29197 - 11905: 0xA071, - 29198 - 11905: 0xA072, - 29199 - 11905: 0xA073, - 29200 - 11905: 0xA074, - 29201 - 11905: 0xA075, - 29202 - 11905: 0xA076, - 29203 - 11905: 0xA077, - 29204 - 11905: 0xA078, - 29205 - 11905: 0xA079, - 29206 - 11905: 0xA07A, - 29207 - 11905: 0xA07B, - 29208 - 11905: 0xA07C, - 29209 - 11905: 0xA07D, - 29210 - 11905: 0xA07E, - 29211 - 11905: 0xA080, - 29212 - 11905: 0xA081, - 29213 - 11905: 0xECDF, - 29214 - 11905: 0xA082, - 29215 - 11905: 0xA083, - 29216 - 11905: 0xA084, - 29217 - 11905: 0xA085, - 29218 - 11905: 0xA086, - 29219 - 11905: 0xA087, - 29220 - 11905: 0xA088, - 29221 - 11905: 0xA089, - 29222 - 11905: 0xA08A, - 29223 - 11905: 0xA08B, - 29224 - 11905: 0xECE0, - 29225 - 11905: 0xA08C, - 29226 - 11905: 0xD7A6, - 29227 - 11905: 0xA08D, - 29228 - 11905: 0xC5C0, - 29229 - 11905: 0xA08E, - 29230 - 11905: 0xA08F, - 29231 - 11905: 0xA090, - 29232 - 11905: 0xEBBC, - 29233 - 11905: 0xB0AE, - 29234 - 11905: 0xA091, - 29235 - 11905: 0xA092, - 29236 - 11905: 0xA093, - 29237 - 11905: 0xBEF4, - 29238 - 11905: 0xB8B8, - 29239 - 11905: 0xD2AF, - 29240 - 11905: 0xB0D6, - 29241 - 11905: 0xB5F9, - 29242 - 11905: 0xA094, - 29243 - 11905: 0xD8B3, - 29244 - 11905: 0xA095, - 29245 - 11905: 0xCBAC, - 29246 - 11905: 0xA096, - 29247 - 11905: 0xE3DD, - 29248 - 11905: 0xA097, - 29249 - 11905: 0xA098, - 29250 - 11905: 0xA099, - 29251 - 11905: 0xA09A, - 29252 - 11905: 0xA09B, - 29253 - 11905: 0xA09C, - 29254 - 11905: 0xA09D, - 29255 - 11905: 0xC6AC, - 29256 - 11905: 0xB0E6, - 29257 - 11905: 0xA09E, - 29258 - 11905: 0xA09F, - 29259 - 11905: 0xA0A0, - 29260 - 11905: 0xC5C6, - 29261 - 11905: 0xEBB9, - 29262 - 11905: 0xA0A1, - 29263 - 11905: 0xA0A2, - 29264 - 11905: 0xA0A3, - 29265 - 11905: 0xA0A4, - 29266 - 11905: 0xEBBA, - 29267 - 11905: 0xA0A5, - 29268 - 11905: 0xA0A6, - 29269 - 11905: 0xA0A7, - 29270 - 11905: 0xEBBB, - 29271 - 11905: 0xA0A8, - 29272 - 11905: 0xA0A9, - 29273 - 11905: 0xD1C0, - 29274 - 11905: 0xA0AA, - 29275 - 11905: 0xC5A3, - 29276 - 11905: 0xA0AB, - 29277 - 11905: 0xEAF2, - 29278 - 11905: 0xA0AC, - 29279 - 11905: 0xC4B2, - 29280 - 11905: 0xA0AD, - 29281 - 11905: 0xC4B5, - 29282 - 11905: 0xC0CE, - 29283 - 11905: 0xA0AE, - 29284 - 11905: 0xA0AF, - 29285 - 11905: 0xA0B0, - 29286 - 11905: 0xEAF3, - 29287 - 11905: 0xC4C1, - 29288 - 11905: 0xA0B1, - 29289 - 11905: 0xCEEF, - 29290 - 11905: 0xA0B2, - 29291 - 11905: 0xA0B3, - 29292 - 11905: 0xA0B4, - 29293 - 11905: 0xA0B5, - 29294 - 11905: 0xEAF0, - 29295 - 11905: 0xEAF4, - 29296 - 11905: 0xA0B6, - 29297 - 11905: 0xA0B7, - 29298 - 11905: 0xC9FC, - 29299 - 11905: 0xA0B8, - 29300 - 11905: 0xA0B9, - 29301 - 11905: 0xC7A3, - 29302 - 11905: 0xA0BA, - 29303 - 11905: 0xA0BB, - 29304 - 11905: 0xA0BC, - 29305 - 11905: 0xCCD8, - 29306 - 11905: 0xCEFE, - 29307 - 11905: 0xA0BD, - 29308 - 11905: 0xA0BE, - 29309 - 11905: 0xA0BF, - 29310 - 11905: 0xEAF5, - 29311 - 11905: 0xEAF6, - 29312 - 11905: 0xCFAC, - 29313 - 11905: 0xC0E7, - 29314 - 11905: 0xA0C0, - 29315 - 11905: 0xA0C1, - 29316 - 11905: 0xEAF7, - 29317 - 11905: 0xA0C2, - 29318 - 11905: 0xA0C3, - 29319 - 11905: 0xA0C4, - 29320 - 11905: 0xA0C5, - 29321 - 11905: 0xA0C6, - 29322 - 11905: 0xB6BF, - 29323 - 11905: 0xEAF8, - 29324 - 11905: 0xA0C7, - 29325 - 11905: 0xEAF9, - 29326 - 11905: 0xA0C8, - 29327 - 11905: 0xEAFA, - 29328 - 11905: 0xA0C9, - 29329 - 11905: 0xA0CA, - 29330 - 11905: 0xEAFB, - 29331 - 11905: 0xA0CB, - 29332 - 11905: 0xA0CC, - 29333 - 11905: 0xA0CD, - 29334 - 11905: 0xA0CE, - 29335 - 11905: 0xA0CF, - 29336 - 11905: 0xA0D0, - 29337 - 11905: 0xA0D1, - 29338 - 11905: 0xA0D2, - 29339 - 11905: 0xA0D3, - 29340 - 11905: 0xA0D4, - 29341 - 11905: 0xA0D5, - 29342 - 11905: 0xA0D6, - 29343 - 11905: 0xEAF1, - 29344 - 11905: 0xA0D7, - 29345 - 11905: 0xA0D8, - 29346 - 11905: 0xA0D9, - 29347 - 11905: 0xA0DA, - 29348 - 11905: 0xA0DB, - 29349 - 11905: 0xA0DC, - 29350 - 11905: 0xA0DD, - 29351 - 11905: 0xA0DE, - 29352 - 11905: 0xA0DF, - 29353 - 11905: 0xA0E0, - 29354 - 11905: 0xA0E1, - 29355 - 11905: 0xA0E2, - 29356 - 11905: 0xC8AE, - 29357 - 11905: 0xE1EB, - 29358 - 11905: 0xA0E3, - 29359 - 11905: 0xB7B8, - 29360 - 11905: 0xE1EC, - 29361 - 11905: 0xA0E4, - 29362 - 11905: 0xA0E5, - 29363 - 11905: 0xA0E6, - 29364 - 11905: 0xE1ED, - 29365 - 11905: 0xA0E7, - 29366 - 11905: 0xD7B4, - 29367 - 11905: 0xE1EE, - 29368 - 11905: 0xE1EF, - 29369 - 11905: 0xD3CC, - 29370 - 11905: 0xA0E8, - 29371 - 11905: 0xA0E9, - 29372 - 11905: 0xA0EA, - 29373 - 11905: 0xA0EB, - 29374 - 11905: 0xA0EC, - 29375 - 11905: 0xA0ED, - 29376 - 11905: 0xA0EE, - 29377 - 11905: 0xE1F1, - 29378 - 11905: 0xBFF1, - 29379 - 11905: 0xE1F0, - 29380 - 11905: 0xB5D2, - 29381 - 11905: 0xA0EF, - 29382 - 11905: 0xA0F0, - 29383 - 11905: 0xA0F1, - 29384 - 11905: 0xB1B7, - 29385 - 11905: 0xA0F2, - 29386 - 11905: 0xA0F3, - 29387 - 11905: 0xA0F4, - 29388 - 11905: 0xA0F5, - 29389 - 11905: 0xE1F3, - 29390 - 11905: 0xE1F2, - 29391 - 11905: 0xA0F6, - 29392 - 11905: 0xBAFC, - 29393 - 11905: 0xA0F7, - 29394 - 11905: 0xE1F4, - 29395 - 11905: 0xA0F8, - 29396 - 11905: 0xA0F9, - 29397 - 11905: 0xA0FA, - 29398 - 11905: 0xA0FB, - 29399 - 11905: 0xB9B7, - 29400 - 11905: 0xA0FC, - 29401 - 11905: 0xBED1, - 29402 - 11905: 0xA0FD, - 29403 - 11905: 0xA0FE, - 29404 - 11905: 0xAA40, - 29405 - 11905: 0xAA41, - 29406 - 11905: 0xC4FC, - 29407 - 11905: 0xAA42, - 29408 - 11905: 0xBADD, - 29409 - 11905: 0xBDC6, - 29410 - 11905: 0xAA43, - 29411 - 11905: 0xAA44, - 29412 - 11905: 0xAA45, - 29413 - 11905: 0xAA46, - 29414 - 11905: 0xAA47, - 29415 - 11905: 0xAA48, - 29416 - 11905: 0xE1F5, - 29417 - 11905: 0xE1F7, - 29418 - 11905: 0xAA49, - 29419 - 11905: 0xAA4A, - 29420 - 11905: 0xB6C0, - 29421 - 11905: 0xCFC1, - 29422 - 11905: 0xCAA8, - 29423 - 11905: 0xE1F6, - 29424 - 11905: 0xD5F8, - 29425 - 11905: 0xD3FC, - 29426 - 11905: 0xE1F8, - 29427 - 11905: 0xE1FC, - 29428 - 11905: 0xE1F9, - 29429 - 11905: 0xAA4B, - 29430 - 11905: 0xAA4C, - 29431 - 11905: 0xE1FA, - 29432 - 11905: 0xC0EA, - 29433 - 11905: 0xAA4D, - 29434 - 11905: 0xE1FE, - 29435 - 11905: 0xE2A1, - 29436 - 11905: 0xC0C7, - 29437 - 11905: 0xAA4E, - 29438 - 11905: 0xAA4F, - 29439 - 11905: 0xAA50, - 29440 - 11905: 0xAA51, - 29441 - 11905: 0xE1FB, - 29442 - 11905: 0xAA52, - 29443 - 11905: 0xE1FD, - 29444 - 11905: 0xAA53, - 29445 - 11905: 0xAA54, - 29446 - 11905: 0xAA55, - 29447 - 11905: 0xAA56, - 29448 - 11905: 0xAA57, - 29449 - 11905: 0xAA58, - 29450 - 11905: 0xE2A5, - 29451 - 11905: 0xAA59, - 29452 - 11905: 0xAA5A, - 29453 - 11905: 0xAA5B, - 29454 - 11905: 0xC1D4, - 29455 - 11905: 0xAA5C, - 29456 - 11905: 0xAA5D, - 29457 - 11905: 0xAA5E, - 29458 - 11905: 0xAA5F, - 29459 - 11905: 0xE2A3, - 29460 - 11905: 0xAA60, - 29461 - 11905: 0xE2A8, - 29462 - 11905: 0xB2FE, - 29463 - 11905: 0xE2A2, - 29464 - 11905: 0xAA61, - 29465 - 11905: 0xAA62, - 29466 - 11905: 0xAA63, - 29467 - 11905: 0xC3CD, - 29468 - 11905: 0xB2C2, - 29469 - 11905: 0xE2A7, - 29470 - 11905: 0xE2A6, - 29471 - 11905: 0xAA64, - 29472 - 11905: 0xAA65, - 29473 - 11905: 0xE2A4, - 29474 - 11905: 0xE2A9, - 29475 - 11905: 0xAA66, - 29476 - 11905: 0xAA67, - 29477 - 11905: 0xE2AB, - 29478 - 11905: 0xAA68, - 29479 - 11905: 0xAA69, - 29480 - 11905: 0xAA6A, - 29481 - 11905: 0xD0C9, - 29482 - 11905: 0xD6ED, - 29483 - 11905: 0xC3A8, - 29484 - 11905: 0xE2AC, - 29485 - 11905: 0xAA6B, - 29486 - 11905: 0xCFD7, - 29487 - 11905: 0xAA6C, - 29488 - 11905: 0xAA6D, - 29489 - 11905: 0xE2AE, - 29490 - 11905: 0xAA6E, - 29491 - 11905: 0xAA6F, - 29492 - 11905: 0xBAEF, - 29493 - 11905: 0xAA70, - 29494 - 11905: 0xAA71, - 29495 - 11905: 0xE9E0, - 29496 - 11905: 0xE2AD, - 29497 - 11905: 0xE2AA, - 29498 - 11905: 0xAA72, - 29499 - 11905: 0xAA73, - 29500 - 11905: 0xAA74, - 29501 - 11905: 0xAA75, - 29502 - 11905: 0xBBAB, - 29503 - 11905: 0xD4B3, - 29504 - 11905: 0xAA76, - 29505 - 11905: 0xAA77, - 29506 - 11905: 0xAA78, - 29507 - 11905: 0xAA79, - 29508 - 11905: 0xAA7A, - 29509 - 11905: 0xAA7B, - 29510 - 11905: 0xAA7C, - 29511 - 11905: 0xAA7D, - 29512 - 11905: 0xAA7E, - 29513 - 11905: 0xAA80, - 29514 - 11905: 0xAA81, - 29515 - 11905: 0xAA82, - 29516 - 11905: 0xAA83, - 29517 - 11905: 0xE2B0, - 29518 - 11905: 0xAA84, - 29519 - 11905: 0xAA85, - 29520 - 11905: 0xE2AF, - 29521 - 11905: 0xAA86, - 29522 - 11905: 0xE9E1, - 29523 - 11905: 0xAA87, - 29524 - 11905: 0xAA88, - 29525 - 11905: 0xAA89, - 29526 - 11905: 0xAA8A, - 29527 - 11905: 0xE2B1, - 29528 - 11905: 0xAA8B, - 29529 - 11905: 0xAA8C, - 29530 - 11905: 0xAA8D, - 29531 - 11905: 0xAA8E, - 29532 - 11905: 0xAA8F, - 29533 - 11905: 0xAA90, - 29534 - 11905: 0xAA91, - 29535 - 11905: 0xAA92, - 29536 - 11905: 0xE2B2, - 29537 - 11905: 0xAA93, - 29538 - 11905: 0xAA94, - 29539 - 11905: 0xAA95, - 29540 - 11905: 0xAA96, - 29541 - 11905: 0xAA97, - 29542 - 11905: 0xAA98, - 29543 - 11905: 0xAA99, - 29544 - 11905: 0xAA9A, - 29545 - 11905: 0xAA9B, - 29546 - 11905: 0xAA9C, - 29547 - 11905: 0xAA9D, - 29548 - 11905: 0xE2B3, - 29549 - 11905: 0xCCA1, - 29550 - 11905: 0xAA9E, - 29551 - 11905: 0xE2B4, - 29552 - 11905: 0xAA9F, - 29553 - 11905: 0xAAA0, - 29554 - 11905: 0xAB40, - 29555 - 11905: 0xAB41, - 29556 - 11905: 0xAB42, - 29557 - 11905: 0xAB43, - 29558 - 11905: 0xAB44, - 29559 - 11905: 0xAB45, - 29560 - 11905: 0xAB46, - 29561 - 11905: 0xAB47, - 29562 - 11905: 0xAB48, - 29563 - 11905: 0xAB49, - 29564 - 11905: 0xAB4A, - 29565 - 11905: 0xAB4B, - 29566 - 11905: 0xE2B5, - 29567 - 11905: 0xAB4C, - 29568 - 11905: 0xAB4D, - 29569 - 11905: 0xAB4E, - 29570 - 11905: 0xAB4F, - 29571 - 11905: 0xAB50, - 29572 - 11905: 0xD0FE, - 29573 - 11905: 0xAB51, - 29574 - 11905: 0xAB52, - 29575 - 11905: 0xC2CA, - 29576 - 11905: 0xAB53, - 29577 - 11905: 0xD3F1, - 29578 - 11905: 0xAB54, - 29579 - 11905: 0xCDF5, - 29580 - 11905: 0xAB55, - 29581 - 11905: 0xAB56, - 29582 - 11905: 0xE7E0, - 29583 - 11905: 0xAB57, - 29584 - 11905: 0xAB58, - 29585 - 11905: 0xE7E1, - 29586 - 11905: 0xAB59, - 29587 - 11905: 0xAB5A, - 29588 - 11905: 0xAB5B, - 29589 - 11905: 0xAB5C, - 29590 - 11905: 0xBEC1, - 29591 - 11905: 0xAB5D, - 29592 - 11905: 0xAB5E, - 29593 - 11905: 0xAB5F, - 29594 - 11905: 0xAB60, - 29595 - 11905: 0xC2EA, - 29596 - 11905: 0xAB61, - 29597 - 11905: 0xAB62, - 29598 - 11905: 0xAB63, - 29599 - 11905: 0xE7E4, - 29600 - 11905: 0xAB64, - 29601 - 11905: 0xAB65, - 29602 - 11905: 0xE7E3, - 29603 - 11905: 0xAB66, - 29604 - 11905: 0xAB67, - 29605 - 11905: 0xAB68, - 29606 - 11905: 0xAB69, - 29607 - 11905: 0xAB6A, - 29608 - 11905: 0xAB6B, - 29609 - 11905: 0xCDE6, - 29610 - 11905: 0xAB6C, - 29611 - 11905: 0xC3B5, - 29612 - 11905: 0xAB6D, - 29613 - 11905: 0xAB6E, - 29614 - 11905: 0xE7E2, - 29615 - 11905: 0xBBB7, - 29616 - 11905: 0xCFD6, - 29617 - 11905: 0xAB6F, - 29618 - 11905: 0xC1E1, - 29619 - 11905: 0xE7E9, - 29620 - 11905: 0xAB70, - 29621 - 11905: 0xAB71, - 29622 - 11905: 0xAB72, - 29623 - 11905: 0xE7E8, - 29624 - 11905: 0xAB73, - 29625 - 11905: 0xAB74, - 29626 - 11905: 0xE7F4, - 29627 - 11905: 0xB2A3, - 29628 - 11905: 0xAB75, - 29629 - 11905: 0xAB76, - 29630 - 11905: 0xAB77, - 29631 - 11905: 0xAB78, - 29632 - 11905: 0xE7EA, - 29633 - 11905: 0xAB79, - 29634 - 11905: 0xE7E6, - 29635 - 11905: 0xAB7A, - 29636 - 11905: 0xAB7B, - 29637 - 11905: 0xAB7C, - 29638 - 11905: 0xAB7D, - 29639 - 11905: 0xAB7E, - 29640 - 11905: 0xE7EC, - 29641 - 11905: 0xE7EB, - 29642 - 11905: 0xC9BA, - 29643 - 11905: 0xAB80, - 29644 - 11905: 0xAB81, - 29645 - 11905: 0xD5E4, - 29646 - 11905: 0xAB82, - 29647 - 11905: 0xE7E5, - 29648 - 11905: 0xB7A9, - 29649 - 11905: 0xE7E7, - 29650 - 11905: 0xAB83, - 29651 - 11905: 0xAB84, - 29652 - 11905: 0xAB85, - 29653 - 11905: 0xAB86, - 29654 - 11905: 0xAB87, - 29655 - 11905: 0xAB88, - 29656 - 11905: 0xAB89, - 29657 - 11905: 0xE7EE, - 29658 - 11905: 0xAB8A, - 29659 - 11905: 0xAB8B, - 29660 - 11905: 0xAB8C, - 29661 - 11905: 0xAB8D, - 29662 - 11905: 0xE7F3, - 29663 - 11905: 0xAB8E, - 29664 - 11905: 0xD6E9, - 29665 - 11905: 0xAB8F, - 29666 - 11905: 0xAB90, - 29667 - 11905: 0xAB91, - 29668 - 11905: 0xAB92, - 29669 - 11905: 0xE7ED, - 29670 - 11905: 0xAB93, - 29671 - 11905: 0xE7F2, - 29672 - 11905: 0xAB94, - 29673 - 11905: 0xE7F1, - 29674 - 11905: 0xAB95, - 29675 - 11905: 0xAB96, - 29676 - 11905: 0xAB97, - 29677 - 11905: 0xB0E0, - 29678 - 11905: 0xAB98, - 29679 - 11905: 0xAB99, - 29680 - 11905: 0xAB9A, - 29681 - 11905: 0xAB9B, - 29682 - 11905: 0xE7F5, - 29683 - 11905: 0xAB9C, - 29684 - 11905: 0xAB9D, - 29685 - 11905: 0xAB9E, - 29686 - 11905: 0xAB9F, - 29687 - 11905: 0xABA0, - 29688 - 11905: 0xAC40, - 29689 - 11905: 0xAC41, - 29690 - 11905: 0xAC42, - 29691 - 11905: 0xAC43, - 29692 - 11905: 0xAC44, - 29693 - 11905: 0xAC45, - 29694 - 11905: 0xAC46, - 29695 - 11905: 0xAC47, - 29696 - 11905: 0xAC48, - 29697 - 11905: 0xAC49, - 29698 - 11905: 0xAC4A, - 29699 - 11905: 0xC7F2, - 29700 - 11905: 0xAC4B, - 29701 - 11905: 0xC0C5, - 29702 - 11905: 0xC0ED, - 29703 - 11905: 0xAC4C, - 29704 - 11905: 0xAC4D, - 29705 - 11905: 0xC1F0, - 29706 - 11905: 0xE7F0, - 29707 - 11905: 0xAC4E, - 29708 - 11905: 0xAC4F, - 29709 - 11905: 0xAC50, - 29710 - 11905: 0xAC51, - 29711 - 11905: 0xE7F6, - 29712 - 11905: 0xCBF6, - 29713 - 11905: 0xAC52, - 29714 - 11905: 0xAC53, - 29715 - 11905: 0xAC54, - 29716 - 11905: 0xAC55, - 29717 - 11905: 0xAC56, - 29718 - 11905: 0xAC57, - 29719 - 11905: 0xAC58, - 29720 - 11905: 0xAC59, - 29721 - 11905: 0xAC5A, - 29722 - 11905: 0xE8A2, - 29723 - 11905: 0xE8A1, - 29724 - 11905: 0xAC5B, - 29725 - 11905: 0xAC5C, - 29726 - 11905: 0xAC5D, - 29727 - 11905: 0xAC5E, - 29728 - 11905: 0xAC5F, - 29729 - 11905: 0xAC60, - 29730 - 11905: 0xD7C1, - 29731 - 11905: 0xAC61, - 29732 - 11905: 0xAC62, - 29733 - 11905: 0xE7FA, - 29734 - 11905: 0xE7F9, - 29735 - 11905: 0xAC63, - 29736 - 11905: 0xE7FB, - 29737 - 11905: 0xAC64, - 29738 - 11905: 0xE7F7, - 29739 - 11905: 0xAC65, - 29740 - 11905: 0xE7FE, - 29741 - 11905: 0xAC66, - 29742 - 11905: 0xE7FD, - 29743 - 11905: 0xAC67, - 29744 - 11905: 0xE7FC, - 29745 - 11905: 0xAC68, - 29746 - 11905: 0xAC69, - 29747 - 11905: 0xC1D5, - 29748 - 11905: 0xC7D9, - 29749 - 11905: 0xC5FD, - 29750 - 11905: 0xC5C3, - 29751 - 11905: 0xAC6A, - 29752 - 11905: 0xAC6B, - 29753 - 11905: 0xAC6C, - 29754 - 11905: 0xAC6D, - 29755 - 11905: 0xAC6E, - 29756 - 11905: 0xC7ED, - 29757 - 11905: 0xAC6F, - 29758 - 11905: 0xAC70, - 29759 - 11905: 0xAC71, - 29760 - 11905: 0xAC72, - 29761 - 11905: 0xE8A3, - 29762 - 11905: 0xAC73, - 29763 - 11905: 0xAC74, - 29764 - 11905: 0xAC75, - 29765 - 11905: 0xAC76, - 29766 - 11905: 0xAC77, - 29767 - 11905: 0xAC78, - 29768 - 11905: 0xAC79, - 29769 - 11905: 0xAC7A, - 29770 - 11905: 0xAC7B, - 29771 - 11905: 0xAC7C, - 29772 - 11905: 0xAC7D, - 29773 - 11905: 0xAC7E, - 29774 - 11905: 0xAC80, - 29775 - 11905: 0xAC81, - 29776 - 11905: 0xAC82, - 29777 - 11905: 0xAC83, - 29778 - 11905: 0xAC84, - 29779 - 11905: 0xAC85, - 29780 - 11905: 0xAC86, - 29781 - 11905: 0xE8A6, - 29782 - 11905: 0xAC87, - 29783 - 11905: 0xE8A5, - 29784 - 11905: 0xAC88, - 29785 - 11905: 0xE8A7, - 29786 - 11905: 0xBAF7, - 29787 - 11905: 0xE7F8, - 29788 - 11905: 0xE8A4, - 29789 - 11905: 0xAC89, - 29790 - 11905: 0xC8F0, - 29791 - 11905: 0xC9AA, - 29792 - 11905: 0xAC8A, - 29793 - 11905: 0xAC8B, - 29794 - 11905: 0xAC8C, - 29795 - 11905: 0xAC8D, - 29796 - 11905: 0xAC8E, - 29797 - 11905: 0xAC8F, - 29798 - 11905: 0xAC90, - 29799 - 11905: 0xAC91, - 29800 - 11905: 0xAC92, - 29801 - 11905: 0xAC93, - 29802 - 11905: 0xAC94, - 29803 - 11905: 0xAC95, - 29804 - 11905: 0xAC96, - 29805 - 11905: 0xE8A9, - 29806 - 11905: 0xAC97, - 29807 - 11905: 0xAC98, - 29808 - 11905: 0xB9E5, - 29809 - 11905: 0xAC99, - 29810 - 11905: 0xAC9A, - 29811 - 11905: 0xAC9B, - 29812 - 11905: 0xAC9C, - 29813 - 11905: 0xAC9D, - 29814 - 11905: 0xD1FE, - 29815 - 11905: 0xE8A8, - 29816 - 11905: 0xAC9E, - 29817 - 11905: 0xAC9F, - 29818 - 11905: 0xACA0, - 29819 - 11905: 0xAD40, - 29820 - 11905: 0xAD41, - 29821 - 11905: 0xAD42, - 29822 - 11905: 0xE8AA, - 29823 - 11905: 0xAD43, - 29824 - 11905: 0xE8AD, - 29825 - 11905: 0xE8AE, - 29826 - 11905: 0xAD44, - 29827 - 11905: 0xC1A7, - 29828 - 11905: 0xAD45, - 29829 - 11905: 0xAD46, - 29830 - 11905: 0xAD47, - 29831 - 11905: 0xE8AF, - 29832 - 11905: 0xAD48, - 29833 - 11905: 0xAD49, - 29834 - 11905: 0xAD4A, - 29835 - 11905: 0xE8B0, - 29836 - 11905: 0xAD4B, - 29837 - 11905: 0xAD4C, - 29838 - 11905: 0xE8AC, - 29839 - 11905: 0xAD4D, - 29840 - 11905: 0xE8B4, - 29841 - 11905: 0xAD4E, - 29842 - 11905: 0xAD4F, - 29843 - 11905: 0xAD50, - 29844 - 11905: 0xAD51, - 29845 - 11905: 0xAD52, - 29846 - 11905: 0xAD53, - 29847 - 11905: 0xAD54, - 29848 - 11905: 0xAD55, - 29849 - 11905: 0xAD56, - 29850 - 11905: 0xAD57, - 29851 - 11905: 0xAD58, - 29852 - 11905: 0xE8AB, - 29853 - 11905: 0xAD59, - 29854 - 11905: 0xE8B1, - 29855 - 11905: 0xAD5A, - 29856 - 11905: 0xAD5B, - 29857 - 11905: 0xAD5C, - 29858 - 11905: 0xAD5D, - 29859 - 11905: 0xAD5E, - 29860 - 11905: 0xAD5F, - 29861 - 11905: 0xAD60, - 29862 - 11905: 0xAD61, - 29863 - 11905: 0xE8B5, - 29864 - 11905: 0xE8B2, - 29865 - 11905: 0xE8B3, - 29866 - 11905: 0xAD62, - 29867 - 11905: 0xAD63, - 29868 - 11905: 0xAD64, - 29869 - 11905: 0xAD65, - 29870 - 11905: 0xAD66, - 29871 - 11905: 0xAD67, - 29872 - 11905: 0xAD68, - 29873 - 11905: 0xAD69, - 29874 - 11905: 0xAD6A, - 29875 - 11905: 0xAD6B, - 29876 - 11905: 0xAD6C, - 29877 - 11905: 0xAD6D, - 29878 - 11905: 0xAD6E, - 29879 - 11905: 0xAD6F, - 29880 - 11905: 0xAD70, - 29881 - 11905: 0xAD71, - 29882 - 11905: 0xE8B7, - 29883 - 11905: 0xAD72, - 29884 - 11905: 0xAD73, - 29885 - 11905: 0xAD74, - 29886 - 11905: 0xAD75, - 29887 - 11905: 0xAD76, - 29888 - 11905: 0xAD77, - 29889 - 11905: 0xAD78, - 29890 - 11905: 0xAD79, - 29891 - 11905: 0xAD7A, - 29892 - 11905: 0xAD7B, - 29893 - 11905: 0xAD7C, - 29894 - 11905: 0xAD7D, - 29895 - 11905: 0xAD7E, - 29896 - 11905: 0xAD80, - 29897 - 11905: 0xAD81, - 29898 - 11905: 0xAD82, - 29899 - 11905: 0xAD83, - 29900 - 11905: 0xAD84, - 29901 - 11905: 0xAD85, - 29902 - 11905: 0xAD86, - 29903 - 11905: 0xAD87, - 29904 - 11905: 0xAD88, - 29905 - 11905: 0xAD89, - 29906 - 11905: 0xE8B6, - 29907 - 11905: 0xAD8A, - 29908 - 11905: 0xAD8B, - 29909 - 11905: 0xAD8C, - 29910 - 11905: 0xAD8D, - 29911 - 11905: 0xAD8E, - 29912 - 11905: 0xAD8F, - 29913 - 11905: 0xAD90, - 29914 - 11905: 0xAD91, - 29915 - 11905: 0xAD92, - 29916 - 11905: 0xB9CF, - 29917 - 11905: 0xAD93, - 29918 - 11905: 0xF0AC, - 29919 - 11905: 0xAD94, - 29920 - 11905: 0xF0AD, - 29921 - 11905: 0xAD95, - 29922 - 11905: 0xC6B0, - 29923 - 11905: 0xB0EA, - 29924 - 11905: 0xC8BF, - 29925 - 11905: 0xAD96, - 29926 - 11905: 0xCDDF, - 29927 - 11905: 0xAD97, - 29928 - 11905: 0xAD98, - 29929 - 11905: 0xAD99, - 29930 - 11905: 0xAD9A, - 29931 - 11905: 0xAD9B, - 29932 - 11905: 0xAD9C, - 29933 - 11905: 0xAD9D, - 29934 - 11905: 0xCECD, - 29935 - 11905: 0xEAB1, - 29936 - 11905: 0xAD9E, - 29937 - 11905: 0xAD9F, - 29938 - 11905: 0xADA0, - 29939 - 11905: 0xAE40, - 29940 - 11905: 0xEAB2, - 29941 - 11905: 0xAE41, - 29942 - 11905: 0xC6BF, - 29943 - 11905: 0xB4C9, - 29944 - 11905: 0xAE42, - 29945 - 11905: 0xAE43, - 29946 - 11905: 0xAE44, - 29947 - 11905: 0xAE45, - 29948 - 11905: 0xAE46, - 29949 - 11905: 0xAE47, - 29950 - 11905: 0xAE48, - 29951 - 11905: 0xEAB3, - 29952 - 11905: 0xAE49, - 29953 - 11905: 0xAE4A, - 29954 - 11905: 0xAE4B, - 29955 - 11905: 0xAE4C, - 29956 - 11905: 0xD5E7, - 29957 - 11905: 0xAE4D, - 29958 - 11905: 0xAE4E, - 29959 - 11905: 0xAE4F, - 29960 - 11905: 0xAE50, - 29961 - 11905: 0xAE51, - 29962 - 11905: 0xAE52, - 29963 - 11905: 0xAE53, - 29964 - 11905: 0xAE54, - 29965 - 11905: 0xDDF9, - 29966 - 11905: 0xAE55, - 29967 - 11905: 0xEAB4, - 29968 - 11905: 0xAE56, - 29969 - 11905: 0xEAB5, - 29970 - 11905: 0xAE57, - 29971 - 11905: 0xEAB6, - 29972 - 11905: 0xAE58, - 29973 - 11905: 0xAE59, - 29974 - 11905: 0xAE5A, - 29975 - 11905: 0xAE5B, - 29976 - 11905: 0xB8CA, - 29977 - 11905: 0xDFB0, - 29978 - 11905: 0xC9F5, - 29979 - 11905: 0xAE5C, - 29980 - 11905: 0xCCF0, - 29981 - 11905: 0xAE5D, - 29982 - 11905: 0xAE5E, - 29983 - 11905: 0xC9FA, - 29984 - 11905: 0xAE5F, - 29985 - 11905: 0xAE60, - 29986 - 11905: 0xAE61, - 29987 - 11905: 0xAE62, - 29988 - 11905: 0xAE63, - 29989 - 11905: 0xC9FB, - 29990 - 11905: 0xAE64, - 29991 - 11905: 0xAE65, - 29992 - 11905: 0xD3C3, - 29993 - 11905: 0xCBA6, - 29994 - 11905: 0xAE66, - 29995 - 11905: 0xB8A6, - 29996 - 11905: 0xF0AE, - 29997 - 11905: 0xB1C2, - 29998 - 11905: 0xAE67, - 29999 - 11905: 0xE5B8, - 30000 - 11905: 0xCCEF, - 30001 - 11905: 0xD3C9, - 30002 - 11905: 0xBCD7, - 30003 - 11905: 0xC9EA, - 30004 - 11905: 0xAE68, - 30005 - 11905: 0xB5E7, - 30006 - 11905: 0xAE69, - 30007 - 11905: 0xC4D0, - 30008 - 11905: 0xB5E9, - 30009 - 11905: 0xAE6A, - 30010 - 11905: 0xEEAE, - 30011 - 11905: 0xBBAD, - 30012 - 11905: 0xAE6B, - 30013 - 11905: 0xAE6C, - 30014 - 11905: 0xE7DE, - 30015 - 11905: 0xAE6D, - 30016 - 11905: 0xEEAF, - 30017 - 11905: 0xAE6E, - 30018 - 11905: 0xAE6F, - 30019 - 11905: 0xAE70, - 30020 - 11905: 0xAE71, - 30021 - 11905: 0xB3A9, - 30022 - 11905: 0xAE72, - 30023 - 11905: 0xAE73, - 30024 - 11905: 0xEEB2, - 30025 - 11905: 0xAE74, - 30026 - 11905: 0xAE75, - 30027 - 11905: 0xEEB1, - 30028 - 11905: 0xBDE7, - 30029 - 11905: 0xAE76, - 30030 - 11905: 0xEEB0, - 30031 - 11905: 0xCEB7, - 30032 - 11905: 0xAE77, - 30033 - 11905: 0xAE78, - 30034 - 11905: 0xAE79, - 30035 - 11905: 0xAE7A, - 30036 - 11905: 0xC5CF, - 30037 - 11905: 0xAE7B, - 30038 - 11905: 0xAE7C, - 30039 - 11905: 0xAE7D, - 30040 - 11905: 0xAE7E, - 30041 - 11905: 0xC1F4, - 30042 - 11905: 0xDBCE, - 30043 - 11905: 0xEEB3, - 30044 - 11905: 0xD0F3, - 30045 - 11905: 0xAE80, - 30046 - 11905: 0xAE81, - 30047 - 11905: 0xAE82, - 30048 - 11905: 0xAE83, - 30049 - 11905: 0xAE84, - 30050 - 11905: 0xAE85, - 30051 - 11905: 0xAE86, - 30052 - 11905: 0xAE87, - 30053 - 11905: 0xC2D4, - 30054 - 11905: 0xC6E8, - 30055 - 11905: 0xAE88, - 30056 - 11905: 0xAE89, - 30057 - 11905: 0xAE8A, - 30058 - 11905: 0xB7AC, - 30059 - 11905: 0xAE8B, - 30060 - 11905: 0xAE8C, - 30061 - 11905: 0xAE8D, - 30062 - 11905: 0xAE8E, - 30063 - 11905: 0xAE8F, - 30064 - 11905: 0xAE90, - 30065 - 11905: 0xAE91, - 30066 - 11905: 0xEEB4, - 30067 - 11905: 0xAE92, - 30068 - 11905: 0xB3EB, - 30069 - 11905: 0xAE93, - 30070 - 11905: 0xAE94, - 30071 - 11905: 0xAE95, - 30072 - 11905: 0xBBFB, - 30073 - 11905: 0xEEB5, - 30074 - 11905: 0xAE96, - 30075 - 11905: 0xAE97, - 30076 - 11905: 0xAE98, - 30077 - 11905: 0xAE99, - 30078 - 11905: 0xAE9A, - 30079 - 11905: 0xE7DC, - 30080 - 11905: 0xAE9B, - 30081 - 11905: 0xAE9C, - 30082 - 11905: 0xAE9D, - 30083 - 11905: 0xEEB6, - 30084 - 11905: 0xAE9E, - 30085 - 11905: 0xAE9F, - 30086 - 11905: 0xBDAE, - 30087 - 11905: 0xAEA0, - 30088 - 11905: 0xAF40, - 30089 - 11905: 0xAF41, - 30090 - 11905: 0xAF42, - 30091 - 11905: 0xF1E2, - 30092 - 11905: 0xAF43, - 30093 - 11905: 0xAF44, - 30094 - 11905: 0xAF45, - 30095 - 11905: 0xCAE8, - 30096 - 11905: 0xAF46, - 30097 - 11905: 0xD2C9, - 30098 - 11905: 0xF0DA, - 30099 - 11905: 0xAF47, - 30100 - 11905: 0xF0DB, - 30101 - 11905: 0xAF48, - 30102 - 11905: 0xF0DC, - 30103 - 11905: 0xC1C6, - 30104 - 11905: 0xAF49, - 30105 - 11905: 0xB8ED, - 30106 - 11905: 0xBECE, - 30107 - 11905: 0xAF4A, - 30108 - 11905: 0xAF4B, - 30109 - 11905: 0xF0DE, - 30110 - 11905: 0xAF4C, - 30111 - 11905: 0xC5B1, - 30112 - 11905: 0xF0DD, - 30113 - 11905: 0xD1F1, - 30114 - 11905: 0xAF4D, - 30115 - 11905: 0xF0E0, - 30116 - 11905: 0xB0CC, - 30117 - 11905: 0xBDEA, - 30118 - 11905: 0xAF4E, - 30119 - 11905: 0xAF4F, - 30120 - 11905: 0xAF50, - 30121 - 11905: 0xAF51, - 30122 - 11905: 0xAF52, - 30123 - 11905: 0xD2DF, - 30124 - 11905: 0xF0DF, - 30125 - 11905: 0xAF53, - 30126 - 11905: 0xB4AF, - 30127 - 11905: 0xB7E8, - 30128 - 11905: 0xF0E6, - 30129 - 11905: 0xF0E5, - 30130 - 11905: 0xC6A3, - 30131 - 11905: 0xF0E1, - 30132 - 11905: 0xF0E2, - 30133 - 11905: 0xB4C3, - 30134 - 11905: 0xAF54, - 30135 - 11905: 0xAF55, - 30136 - 11905: 0xF0E3, - 30137 - 11905: 0xD5EE, - 30138 - 11905: 0xAF56, - 30139 - 11905: 0xAF57, - 30140 - 11905: 0xCCDB, - 30141 - 11905: 0xBED2, - 30142 - 11905: 0xBCB2, - 30143 - 11905: 0xAF58, - 30144 - 11905: 0xAF59, - 30145 - 11905: 0xAF5A, - 30146 - 11905: 0xF0E8, - 30147 - 11905: 0xF0E7, - 30148 - 11905: 0xF0E4, - 30149 - 11905: 0xB2A1, - 30150 - 11905: 0xAF5B, - 30151 - 11905: 0xD6A2, - 30152 - 11905: 0xD3B8, - 30153 - 11905: 0xBEB7, - 30154 - 11905: 0xC8AC, - 30155 - 11905: 0xAF5C, - 30156 - 11905: 0xAF5D, - 30157 - 11905: 0xF0EA, - 30158 - 11905: 0xAF5E, - 30159 - 11905: 0xAF5F, - 30160 - 11905: 0xAF60, - 30161 - 11905: 0xAF61, - 30162 - 11905: 0xD1F7, - 30163 - 11905: 0xAF62, - 30164 - 11905: 0xD6CC, - 30165 - 11905: 0xBADB, - 30166 - 11905: 0xF0E9, - 30167 - 11905: 0xAF63, - 30168 - 11905: 0xB6BB, - 30169 - 11905: 0xAF64, - 30170 - 11905: 0xAF65, - 30171 - 11905: 0xCDB4, - 30172 - 11905: 0xAF66, - 30173 - 11905: 0xAF67, - 30174 - 11905: 0xC6A6, - 30175 - 11905: 0xAF68, - 30176 - 11905: 0xAF69, - 30177 - 11905: 0xAF6A, - 30178 - 11905: 0xC1A1, - 30179 - 11905: 0xF0EB, - 30180 - 11905: 0xF0EE, - 30181 - 11905: 0xAF6B, - 30182 - 11905: 0xF0ED, - 30183 - 11905: 0xF0F0, - 30184 - 11905: 0xF0EC, - 30185 - 11905: 0xAF6C, - 30186 - 11905: 0xBBBE, - 30187 - 11905: 0xF0EF, - 30188 - 11905: 0xAF6D, - 30189 - 11905: 0xAF6E, - 30190 - 11905: 0xAF6F, - 30191 - 11905: 0xAF70, - 30192 - 11905: 0xCCB5, - 30193 - 11905: 0xF0F2, - 30194 - 11905: 0xAF71, - 30195 - 11905: 0xAF72, - 30196 - 11905: 0xB3D5, - 30197 - 11905: 0xAF73, - 30198 - 11905: 0xAF74, - 30199 - 11905: 0xAF75, - 30200 - 11905: 0xAF76, - 30201 - 11905: 0xB1D4, - 30202 - 11905: 0xAF77, - 30203 - 11905: 0xAF78, - 30204 - 11905: 0xF0F3, - 30205 - 11905: 0xAF79, - 30206 - 11905: 0xAF7A, - 30207 - 11905: 0xF0F4, - 30208 - 11905: 0xF0F6, - 30209 - 11905: 0xB4E1, - 30210 - 11905: 0xAF7B, - 30211 - 11905: 0xF0F1, - 30212 - 11905: 0xAF7C, - 30213 - 11905: 0xF0F7, - 30214 - 11905: 0xAF7D, - 30215 - 11905: 0xAF7E, - 30216 - 11905: 0xAF80, - 30217 - 11905: 0xAF81, - 30218 - 11905: 0xF0FA, - 30219 - 11905: 0xAF82, - 30220 - 11905: 0xF0F8, - 30221 - 11905: 0xAF83, - 30222 - 11905: 0xAF84, - 30223 - 11905: 0xAF85, - 30224 - 11905: 0xF0F5, - 30225 - 11905: 0xAF86, - 30226 - 11905: 0xAF87, - 30227 - 11905: 0xAF88, - 30228 - 11905: 0xAF89, - 30229 - 11905: 0xF0FD, - 30230 - 11905: 0xAF8A, - 30231 - 11905: 0xF0F9, - 30232 - 11905: 0xF0FC, - 30233 - 11905: 0xF0FE, - 30234 - 11905: 0xAF8B, - 30235 - 11905: 0xF1A1, - 30236 - 11905: 0xAF8C, - 30237 - 11905: 0xAF8D, - 30238 - 11905: 0xAF8E, - 30239 - 11905: 0xCEC1, - 30240 - 11905: 0xF1A4, - 30241 - 11905: 0xAF8F, - 30242 - 11905: 0xF1A3, - 30243 - 11905: 0xAF90, - 30244 - 11905: 0xC1F6, - 30245 - 11905: 0xF0FB, - 30246 - 11905: 0xCADD, - 30247 - 11905: 0xAF91, - 30248 - 11905: 0xAF92, - 30249 - 11905: 0xB4F1, - 30250 - 11905: 0xB1F1, - 30251 - 11905: 0xCCB1, - 30252 - 11905: 0xAF93, - 30253 - 11905: 0xF1A6, - 30254 - 11905: 0xAF94, - 30255 - 11905: 0xAF95, - 30256 - 11905: 0xF1A7, - 30257 - 11905: 0xAF96, - 30258 - 11905: 0xAF97, - 30259 - 11905: 0xF1AC, - 30260 - 11905: 0xD5CE, - 30261 - 11905: 0xF1A9, - 30262 - 11905: 0xAF98, - 30263 - 11905: 0xAF99, - 30264 - 11905: 0xC8B3, - 30265 - 11905: 0xAF9A, - 30266 - 11905: 0xAF9B, - 30267 - 11905: 0xAF9C, - 30268 - 11905: 0xF1A2, - 30269 - 11905: 0xAF9D, - 30270 - 11905: 0xF1AB, - 30271 - 11905: 0xF1A8, - 30272 - 11905: 0xF1A5, - 30273 - 11905: 0xAF9E, - 30274 - 11905: 0xAF9F, - 30275 - 11905: 0xF1AA, - 30276 - 11905: 0xAFA0, - 30277 - 11905: 0xB040, - 30278 - 11905: 0xB041, - 30279 - 11905: 0xB042, - 30280 - 11905: 0xB043, - 30281 - 11905: 0xB044, - 30282 - 11905: 0xB045, - 30283 - 11905: 0xB046, - 30284 - 11905: 0xB0A9, - 30285 - 11905: 0xF1AD, - 30286 - 11905: 0xB047, - 30287 - 11905: 0xB048, - 30288 - 11905: 0xB049, - 30289 - 11905: 0xB04A, - 30290 - 11905: 0xB04B, - 30291 - 11905: 0xB04C, - 30292 - 11905: 0xF1AF, - 30293 - 11905: 0xB04D, - 30294 - 11905: 0xF1B1, - 30295 - 11905: 0xB04E, - 30296 - 11905: 0xB04F, - 30297 - 11905: 0xB050, - 30298 - 11905: 0xB051, - 30299 - 11905: 0xB052, - 30300 - 11905: 0xF1B0, - 30301 - 11905: 0xB053, - 30302 - 11905: 0xF1AE, - 30303 - 11905: 0xB054, - 30304 - 11905: 0xB055, - 30305 - 11905: 0xB056, - 30306 - 11905: 0xB057, - 30307 - 11905: 0xD1A2, - 30308 - 11905: 0xB058, - 30309 - 11905: 0xB059, - 30310 - 11905: 0xB05A, - 30311 - 11905: 0xB05B, - 30312 - 11905: 0xB05C, - 30313 - 11905: 0xB05D, - 30314 - 11905: 0xB05E, - 30315 - 11905: 0xF1B2, - 30316 - 11905: 0xB05F, - 30317 - 11905: 0xB060, - 30318 - 11905: 0xB061, - 30319 - 11905: 0xF1B3, - 30320 - 11905: 0xB062, - 30321 - 11905: 0xB063, - 30322 - 11905: 0xB064, - 30323 - 11905: 0xB065, - 30324 - 11905: 0xB066, - 30325 - 11905: 0xB067, - 30326 - 11905: 0xB068, - 30327 - 11905: 0xB069, - 30328 - 11905: 0xB9EF, - 30329 - 11905: 0xB06A, - 30330 - 11905: 0xB06B, - 30331 - 11905: 0xB5C7, - 30332 - 11905: 0xB06C, - 30333 - 11905: 0xB0D7, - 30334 - 11905: 0xB0D9, - 30335 - 11905: 0xB06D, - 30336 - 11905: 0xB06E, - 30337 - 11905: 0xB06F, - 30338 - 11905: 0xD4ED, - 30339 - 11905: 0xB070, - 30340 - 11905: 0xB5C4, - 30341 - 11905: 0xB071, - 30342 - 11905: 0xBDD4, - 30343 - 11905: 0xBBCA, - 30344 - 11905: 0xF0A7, - 30345 - 11905: 0xB072, - 30346 - 11905: 0xB073, - 30347 - 11905: 0xB8DE, - 30348 - 11905: 0xB074, - 30349 - 11905: 0xB075, - 30350 - 11905: 0xF0A8, - 30351 - 11905: 0xB076, - 30352 - 11905: 0xB077, - 30353 - 11905: 0xB0A8, - 30354 - 11905: 0xB078, - 30355 - 11905: 0xF0A9, - 30356 - 11905: 0xB079, - 30357 - 11905: 0xB07A, - 30358 - 11905: 0xCDEE, - 30359 - 11905: 0xB07B, - 30360 - 11905: 0xB07C, - 30361 - 11905: 0xF0AA, - 30362 - 11905: 0xB07D, - 30363 - 11905: 0xB07E, - 30364 - 11905: 0xB080, - 30365 - 11905: 0xB081, - 30366 - 11905: 0xB082, - 30367 - 11905: 0xB083, - 30368 - 11905: 0xB084, - 30369 - 11905: 0xB085, - 30370 - 11905: 0xB086, - 30371 - 11905: 0xB087, - 30372 - 11905: 0xF0AB, - 30373 - 11905: 0xB088, - 30374 - 11905: 0xB089, - 30375 - 11905: 0xB08A, - 30376 - 11905: 0xB08B, - 30377 - 11905: 0xB08C, - 30378 - 11905: 0xB08D, - 30379 - 11905: 0xB08E, - 30380 - 11905: 0xB08F, - 30381 - 11905: 0xB090, - 30382 - 11905: 0xC6A4, - 30383 - 11905: 0xB091, - 30384 - 11905: 0xB092, - 30385 - 11905: 0xD6E5, - 30386 - 11905: 0xF1E4, - 30387 - 11905: 0xB093, - 30388 - 11905: 0xF1E5, - 30389 - 11905: 0xB094, - 30390 - 11905: 0xB095, - 30391 - 11905: 0xB096, - 30392 - 11905: 0xB097, - 30393 - 11905: 0xB098, - 30394 - 11905: 0xB099, - 30395 - 11905: 0xB09A, - 30396 - 11905: 0xB09B, - 30397 - 11905: 0xB09C, - 30398 - 11905: 0xB09D, - 30399 - 11905: 0xC3F3, - 30400 - 11905: 0xB09E, - 30401 - 11905: 0xB09F, - 30402 - 11905: 0xD3DB, - 30403 - 11905: 0xB0A0, - 30404 - 11905: 0xB140, - 30405 - 11905: 0xD6D1, - 30406 - 11905: 0xC5E8, - 30407 - 11905: 0xB141, - 30408 - 11905: 0xD3AF, - 30409 - 11905: 0xB142, - 30410 - 11905: 0xD2E6, - 30411 - 11905: 0xB143, - 30412 - 11905: 0xB144, - 30413 - 11905: 0xEEC1, - 30414 - 11905: 0xB0BB, - 30415 - 11905: 0xD5B5, - 30416 - 11905: 0xD1CE, - 30417 - 11905: 0xBCE0, - 30418 - 11905: 0xBAD0, - 30419 - 11905: 0xB145, - 30420 - 11905: 0xBFF8, - 30421 - 11905: 0xB146, - 30422 - 11905: 0xB8C7, - 30423 - 11905: 0xB5C1, - 30424 - 11905: 0xC5CC, - 30425 - 11905: 0xB147, - 30426 - 11905: 0xB148, - 30427 - 11905: 0xCAA2, - 30428 - 11905: 0xB149, - 30429 - 11905: 0xB14A, - 30430 - 11905: 0xB14B, - 30431 - 11905: 0xC3CB, - 30432 - 11905: 0xB14C, - 30433 - 11905: 0xB14D, - 30434 - 11905: 0xB14E, - 30435 - 11905: 0xB14F, - 30436 - 11905: 0xB150, - 30437 - 11905: 0xEEC2, - 30438 - 11905: 0xB151, - 30439 - 11905: 0xB152, - 30440 - 11905: 0xB153, - 30441 - 11905: 0xB154, - 30442 - 11905: 0xB155, - 30443 - 11905: 0xB156, - 30444 - 11905: 0xB157, - 30445 - 11905: 0xB158, - 30446 - 11905: 0xC4BF, - 30447 - 11905: 0xB6A2, - 30448 - 11905: 0xB159, - 30449 - 11905: 0xEDEC, - 30450 - 11905: 0xC3A4, - 30451 - 11905: 0xB15A, - 30452 - 11905: 0xD6B1, - 30453 - 11905: 0xB15B, - 30454 - 11905: 0xB15C, - 30455 - 11905: 0xB15D, - 30456 - 11905: 0xCFE0, - 30457 - 11905: 0xEDEF, - 30458 - 11905: 0xB15E, - 30459 - 11905: 0xB15F, - 30460 - 11905: 0xC5CE, - 30461 - 11905: 0xB160, - 30462 - 11905: 0xB6DC, - 30463 - 11905: 0xB161, - 30464 - 11905: 0xB162, - 30465 - 11905: 0xCAA1, - 30466 - 11905: 0xB163, - 30467 - 11905: 0xB164, - 30468 - 11905: 0xEDED, - 30469 - 11905: 0xB165, - 30470 - 11905: 0xB166, - 30471 - 11905: 0xEDF0, - 30472 - 11905: 0xEDF1, - 30473 - 11905: 0xC3BC, - 30474 - 11905: 0xB167, - 30475 - 11905: 0xBFB4, - 30476 - 11905: 0xB168, - 30477 - 11905: 0xEDEE, - 30478 - 11905: 0xB169, - 30479 - 11905: 0xB16A, - 30480 - 11905: 0xB16B, - 30481 - 11905: 0xB16C, - 30482 - 11905: 0xB16D, - 30483 - 11905: 0xB16E, - 30484 - 11905: 0xB16F, - 30485 - 11905: 0xB170, - 30486 - 11905: 0xB171, - 30487 - 11905: 0xB172, - 30488 - 11905: 0xB173, - 30489 - 11905: 0xEDF4, - 30490 - 11905: 0xEDF2, - 30491 - 11905: 0xB174, - 30492 - 11905: 0xB175, - 30493 - 11905: 0xB176, - 30494 - 11905: 0xB177, - 30495 - 11905: 0xD5E6, - 30496 - 11905: 0xC3DF, - 30497 - 11905: 0xB178, - 30498 - 11905: 0xEDF3, - 30499 - 11905: 0xB179, - 30500 - 11905: 0xB17A, - 30501 - 11905: 0xB17B, - 30502 - 11905: 0xEDF6, - 30503 - 11905: 0xB17C, - 30504 - 11905: 0xD5A3, - 30505 - 11905: 0xD1A3, - 30506 - 11905: 0xB17D, - 30507 - 11905: 0xB17E, - 30508 - 11905: 0xB180, - 30509 - 11905: 0xEDF5, - 30510 - 11905: 0xB181, - 30511 - 11905: 0xC3D0, - 30512 - 11905: 0xB182, - 30513 - 11905: 0xB183, - 30514 - 11905: 0xB184, - 30515 - 11905: 0xB185, - 30516 - 11905: 0xB186, - 30517 - 11905: 0xEDF7, - 30518 - 11905: 0xBFF4, - 30519 - 11905: 0xBEEC, - 30520 - 11905: 0xEDF8, - 30521 - 11905: 0xB187, - 30522 - 11905: 0xCCF7, - 30523 - 11905: 0xB188, - 30524 - 11905: 0xD1DB, - 30525 - 11905: 0xB189, - 30526 - 11905: 0xB18A, - 30527 - 11905: 0xB18B, - 30528 - 11905: 0xD7C5, - 30529 - 11905: 0xD5F6, - 30530 - 11905: 0xB18C, - 30531 - 11905: 0xEDFC, - 30532 - 11905: 0xB18D, - 30533 - 11905: 0xB18E, - 30534 - 11905: 0xB18F, - 30535 - 11905: 0xEDFB, - 30536 - 11905: 0xB190, - 30537 - 11905: 0xB191, - 30538 - 11905: 0xB192, - 30539 - 11905: 0xB193, - 30540 - 11905: 0xB194, - 30541 - 11905: 0xB195, - 30542 - 11905: 0xB196, - 30543 - 11905: 0xB197, - 30544 - 11905: 0xEDF9, - 30545 - 11905: 0xEDFA, - 30546 - 11905: 0xB198, - 30547 - 11905: 0xB199, - 30548 - 11905: 0xB19A, - 30549 - 11905: 0xB19B, - 30550 - 11905: 0xB19C, - 30551 - 11905: 0xB19D, - 30552 - 11905: 0xB19E, - 30553 - 11905: 0xB19F, - 30554 - 11905: 0xEDFD, - 30555 - 11905: 0xBEA6, - 30556 - 11905: 0xB1A0, - 30557 - 11905: 0xB240, - 30558 - 11905: 0xB241, - 30559 - 11905: 0xB242, - 30560 - 11905: 0xB243, - 30561 - 11905: 0xCBAF, - 30562 - 11905: 0xEEA1, - 30563 - 11905: 0xB6BD, - 30564 - 11905: 0xB244, - 30565 - 11905: 0xEEA2, - 30566 - 11905: 0xC4C0, - 30567 - 11905: 0xB245, - 30568 - 11905: 0xEDFE, - 30569 - 11905: 0xB246, - 30570 - 11905: 0xB247, - 30571 - 11905: 0xBDDE, - 30572 - 11905: 0xB2C7, - 30573 - 11905: 0xB248, - 30574 - 11905: 0xB249, - 30575 - 11905: 0xB24A, - 30576 - 11905: 0xB24B, - 30577 - 11905: 0xB24C, - 30578 - 11905: 0xB24D, - 30579 - 11905: 0xB24E, - 30580 - 11905: 0xB24F, - 30581 - 11905: 0xB250, - 30582 - 11905: 0xB251, - 30583 - 11905: 0xB252, - 30584 - 11905: 0xB253, - 30585 - 11905: 0xB6C3, - 30586 - 11905: 0xB254, - 30587 - 11905: 0xB255, - 30588 - 11905: 0xB256, - 30589 - 11905: 0xEEA5, - 30590 - 11905: 0xD8BA, - 30591 - 11905: 0xEEA3, - 30592 - 11905: 0xEEA6, - 30593 - 11905: 0xB257, - 30594 - 11905: 0xB258, - 30595 - 11905: 0xB259, - 30596 - 11905: 0xC3E9, - 30597 - 11905: 0xB3F2, - 30598 - 11905: 0xB25A, - 30599 - 11905: 0xB25B, - 30600 - 11905: 0xB25C, - 30601 - 11905: 0xB25D, - 30602 - 11905: 0xB25E, - 30603 - 11905: 0xB25F, - 30604 - 11905: 0xEEA7, - 30605 - 11905: 0xEEA4, - 30606 - 11905: 0xCFB9, - 30607 - 11905: 0xB260, - 30608 - 11905: 0xB261, - 30609 - 11905: 0xEEA8, - 30610 - 11905: 0xC2F7, - 30611 - 11905: 0xB262, - 30612 - 11905: 0xB263, - 30613 - 11905: 0xB264, - 30614 - 11905: 0xB265, - 30615 - 11905: 0xB266, - 30616 - 11905: 0xB267, - 30617 - 11905: 0xB268, - 30618 - 11905: 0xB269, - 30619 - 11905: 0xB26A, - 30620 - 11905: 0xB26B, - 30621 - 11905: 0xB26C, - 30622 - 11905: 0xB26D, - 30623 - 11905: 0xEEA9, - 30624 - 11905: 0xEEAA, - 30625 - 11905: 0xB26E, - 30626 - 11905: 0xDEAB, - 30627 - 11905: 0xB26F, - 30628 - 11905: 0xB270, - 30629 - 11905: 0xC6B3, - 30630 - 11905: 0xB271, - 30631 - 11905: 0xC7C6, - 30632 - 11905: 0xB272, - 30633 - 11905: 0xD6F5, - 30634 - 11905: 0xB5C9, - 30635 - 11905: 0xB273, - 30636 - 11905: 0xCBB2, - 30637 - 11905: 0xB274, - 30638 - 11905: 0xB275, - 30639 - 11905: 0xB276, - 30640 - 11905: 0xEEAB, - 30641 - 11905: 0xB277, - 30642 - 11905: 0xB278, - 30643 - 11905: 0xCDAB, - 30644 - 11905: 0xB279, - 30645 - 11905: 0xEEAC, - 30646 - 11905: 0xB27A, - 30647 - 11905: 0xB27B, - 30648 - 11905: 0xB27C, - 30649 - 11905: 0xB27D, - 30650 - 11905: 0xB27E, - 30651 - 11905: 0xD5B0, - 30652 - 11905: 0xB280, - 30653 - 11905: 0xEEAD, - 30654 - 11905: 0xB281, - 30655 - 11905: 0xF6C4, - 30656 - 11905: 0xB282, - 30657 - 11905: 0xB283, - 30658 - 11905: 0xB284, - 30659 - 11905: 0xB285, - 30660 - 11905: 0xB286, - 30661 - 11905: 0xB287, - 30662 - 11905: 0xB288, - 30663 - 11905: 0xB289, - 30664 - 11905: 0xB28A, - 30665 - 11905: 0xB28B, - 30666 - 11905: 0xB28C, - 30667 - 11905: 0xB28D, - 30668 - 11905: 0xB28E, - 30669 - 11905: 0xDBC7, - 30670 - 11905: 0xB28F, - 30671 - 11905: 0xB290, - 30672 - 11905: 0xB291, - 30673 - 11905: 0xB292, - 30674 - 11905: 0xB293, - 30675 - 11905: 0xB294, - 30676 - 11905: 0xB295, - 30677 - 11905: 0xB296, - 30678 - 11905: 0xB297, - 30679 - 11905: 0xB4A3, - 30680 - 11905: 0xB298, - 30681 - 11905: 0xB299, - 30682 - 11905: 0xB29A, - 30683 - 11905: 0xC3AC, - 30684 - 11905: 0xF1E6, - 30685 - 11905: 0xB29B, - 30686 - 11905: 0xB29C, - 30687 - 11905: 0xB29D, - 30688 - 11905: 0xB29E, - 30689 - 11905: 0xB29F, - 30690 - 11905: 0xCAB8, - 30691 - 11905: 0xD2D3, - 30692 - 11905: 0xB2A0, - 30693 - 11905: 0xD6AA, - 30694 - 11905: 0xB340, - 30695 - 11905: 0xEFF2, - 30696 - 11905: 0xB341, - 30697 - 11905: 0xBED8, - 30698 - 11905: 0xB342, - 30699 - 11905: 0xBDC3, - 30700 - 11905: 0xEFF3, - 30701 - 11905: 0xB6CC, - 30702 - 11905: 0xB0AB, - 30703 - 11905: 0xB343, - 30704 - 11905: 0xB344, - 30705 - 11905: 0xB345, - 30706 - 11905: 0xB346, - 30707 - 11905: 0xCAAF, - 30708 - 11905: 0xB347, - 30709 - 11905: 0xB348, - 30710 - 11905: 0xEDB6, - 30711 - 11905: 0xB349, - 30712 - 11905: 0xEDB7, - 30713 - 11905: 0xB34A, - 30714 - 11905: 0xB34B, - 30715 - 11905: 0xB34C, - 30716 - 11905: 0xB34D, - 30717 - 11905: 0xCEF9, - 30718 - 11905: 0xB7AF, - 30719 - 11905: 0xBFF3, - 30720 - 11905: 0xEDB8, - 30721 - 11905: 0xC2EB, - 30722 - 11905: 0xC9B0, - 30723 - 11905: 0xB34E, - 30724 - 11905: 0xB34F, - 30725 - 11905: 0xB350, - 30726 - 11905: 0xB351, - 30727 - 11905: 0xB352, - 30728 - 11905: 0xB353, - 30729 - 11905: 0xEDB9, - 30730 - 11905: 0xB354, - 30731 - 11905: 0xB355, - 30732 - 11905: 0xC6F6, - 30733 - 11905: 0xBFB3, - 30734 - 11905: 0xB356, - 30735 - 11905: 0xB357, - 30736 - 11905: 0xB358, - 30737 - 11905: 0xEDBC, - 30738 - 11905: 0xC5F8, - 30739 - 11905: 0xB359, - 30740 - 11905: 0xD1D0, - 30741 - 11905: 0xB35A, - 30742 - 11905: 0xD7A9, - 30743 - 11905: 0xEDBA, - 30744 - 11905: 0xEDBB, - 30745 - 11905: 0xB35B, - 30746 - 11905: 0xD1E2, - 30747 - 11905: 0xB35C, - 30748 - 11905: 0xEDBF, - 30749 - 11905: 0xEDC0, - 30750 - 11905: 0xB35D, - 30751 - 11905: 0xEDC4, - 30752 - 11905: 0xB35E, - 30753 - 11905: 0xB35F, - 30754 - 11905: 0xB360, - 30755 - 11905: 0xEDC8, - 30756 - 11905: 0xB361, - 30757 - 11905: 0xEDC6, - 30758 - 11905: 0xEDCE, - 30759 - 11905: 0xD5E8, - 30760 - 11905: 0xB362, - 30761 - 11905: 0xEDC9, - 30762 - 11905: 0xB363, - 30763 - 11905: 0xB364, - 30764 - 11905: 0xEDC7, - 30765 - 11905: 0xEDBE, - 30766 - 11905: 0xB365, - 30767 - 11905: 0xB366, - 30768 - 11905: 0xC5E9, - 30769 - 11905: 0xB367, - 30770 - 11905: 0xB368, - 30771 - 11905: 0xB369, - 30772 - 11905: 0xC6C6, - 30773 - 11905: 0xB36A, - 30774 - 11905: 0xB36B, - 30775 - 11905: 0xC9E9, - 30776 - 11905: 0xD4D2, - 30777 - 11905: 0xEDC1, - 30778 - 11905: 0xEDC2, - 30779 - 11905: 0xEDC3, - 30780 - 11905: 0xEDC5, - 30781 - 11905: 0xB36C, - 30782 - 11905: 0xC0F9, - 30783 - 11905: 0xB36D, - 30784 - 11905: 0xB4A1, - 30785 - 11905: 0xB36E, - 30786 - 11905: 0xB36F, - 30787 - 11905: 0xB370, - 30788 - 11905: 0xB371, - 30789 - 11905: 0xB9E8, - 30790 - 11905: 0xB372, - 30791 - 11905: 0xEDD0, - 30792 - 11905: 0xB373, - 30793 - 11905: 0xB374, - 30794 - 11905: 0xB375, - 30795 - 11905: 0xB376, - 30796 - 11905: 0xEDD1, - 30797 - 11905: 0xB377, - 30798 - 11905: 0xEDCA, - 30799 - 11905: 0xB378, - 30800 - 11905: 0xEDCF, - 30801 - 11905: 0xB379, - 30802 - 11905: 0xCEF8, - 30803 - 11905: 0xB37A, - 30804 - 11905: 0xB37B, - 30805 - 11905: 0xCBB6, - 30806 - 11905: 0xEDCC, - 30807 - 11905: 0xEDCD, - 30808 - 11905: 0xB37C, - 30809 - 11905: 0xB37D, - 30810 - 11905: 0xB37E, - 30811 - 11905: 0xB380, - 30812 - 11905: 0xB381, - 30813 - 11905: 0xCFF5, - 30814 - 11905: 0xB382, - 30815 - 11905: 0xB383, - 30816 - 11905: 0xB384, - 30817 - 11905: 0xB385, - 30818 - 11905: 0xB386, - 30819 - 11905: 0xB387, - 30820 - 11905: 0xB388, - 30821 - 11905: 0xB389, - 30822 - 11905: 0xB38A, - 30823 - 11905: 0xB38B, - 30824 - 11905: 0xB38C, - 30825 - 11905: 0xB38D, - 30826 - 11905: 0xEDD2, - 30827 - 11905: 0xC1F2, - 30828 - 11905: 0xD3B2, - 30829 - 11905: 0xEDCB, - 30830 - 11905: 0xC8B7, - 30831 - 11905: 0xB38E, - 30832 - 11905: 0xB38F, - 30833 - 11905: 0xB390, - 30834 - 11905: 0xB391, - 30835 - 11905: 0xB392, - 30836 - 11905: 0xB393, - 30837 - 11905: 0xB394, - 30838 - 11905: 0xB395, - 30839 - 11905: 0xBCEF, - 30840 - 11905: 0xB396, - 30841 - 11905: 0xB397, - 30842 - 11905: 0xB398, - 30843 - 11905: 0xB399, - 30844 - 11905: 0xC5F0, - 30845 - 11905: 0xB39A, - 30846 - 11905: 0xB39B, - 30847 - 11905: 0xB39C, - 30848 - 11905: 0xB39D, - 30849 - 11905: 0xB39E, - 30850 - 11905: 0xB39F, - 30851 - 11905: 0xB3A0, - 30852 - 11905: 0xB440, - 30853 - 11905: 0xB441, - 30854 - 11905: 0xB442, - 30855 - 11905: 0xEDD6, - 30856 - 11905: 0xB443, - 30857 - 11905: 0xB5EF, - 30858 - 11905: 0xB444, - 30859 - 11905: 0xB445, - 30860 - 11905: 0xC2B5, - 30861 - 11905: 0xB0AD, - 30862 - 11905: 0xCBE9, - 30863 - 11905: 0xB446, - 30864 - 11905: 0xB447, - 30865 - 11905: 0xB1AE, - 30866 - 11905: 0xB448, - 30867 - 11905: 0xEDD4, - 30868 - 11905: 0xB449, - 30869 - 11905: 0xB44A, - 30870 - 11905: 0xB44B, - 30871 - 11905: 0xCDEB, - 30872 - 11905: 0xB5E2, - 30873 - 11905: 0xB44C, - 30874 - 11905: 0xEDD5, - 30875 - 11905: 0xEDD3, - 30876 - 11905: 0xEDD7, - 30877 - 11905: 0xB44D, - 30878 - 11905: 0xB44E, - 30879 - 11905: 0xB5FA, - 30880 - 11905: 0xB44F, - 30881 - 11905: 0xEDD8, - 30882 - 11905: 0xB450, - 30883 - 11905: 0xEDD9, - 30884 - 11905: 0xB451, - 30885 - 11905: 0xEDDC, - 30886 - 11905: 0xB452, - 30887 - 11905: 0xB1CC, - 30888 - 11905: 0xB453, - 30889 - 11905: 0xB454, - 30890 - 11905: 0xB455, - 30891 - 11905: 0xB456, - 30892 - 11905: 0xB457, - 30893 - 11905: 0xB458, - 30894 - 11905: 0xB459, - 30895 - 11905: 0xB45A, - 30896 - 11905: 0xC5F6, - 30897 - 11905: 0xBCEE, - 30898 - 11905: 0xEDDA, - 30899 - 11905: 0xCCBC, - 30900 - 11905: 0xB2EA, - 30901 - 11905: 0xB45B, - 30902 - 11905: 0xB45C, - 30903 - 11905: 0xB45D, - 30904 - 11905: 0xB45E, - 30905 - 11905: 0xEDDB, - 30906 - 11905: 0xB45F, - 30907 - 11905: 0xB460, - 30908 - 11905: 0xB461, - 30909 - 11905: 0xB462, - 30910 - 11905: 0xC4EB, - 30911 - 11905: 0xB463, - 30912 - 11905: 0xB464, - 30913 - 11905: 0xB4C5, - 30914 - 11905: 0xB465, - 30915 - 11905: 0xB466, - 30916 - 11905: 0xB467, - 30917 - 11905: 0xB0F5, - 30918 - 11905: 0xB468, - 30919 - 11905: 0xB469, - 30920 - 11905: 0xB46A, - 30921 - 11905: 0xEDDF, - 30922 - 11905: 0xC0DA, - 30923 - 11905: 0xB4E8, - 30924 - 11905: 0xB46B, - 30925 - 11905: 0xB46C, - 30926 - 11905: 0xB46D, - 30927 - 11905: 0xB46E, - 30928 - 11905: 0xC5CD, - 30929 - 11905: 0xB46F, - 30930 - 11905: 0xB470, - 30931 - 11905: 0xB471, - 30932 - 11905: 0xEDDD, - 30933 - 11905: 0xBFC4, - 30934 - 11905: 0xB472, - 30935 - 11905: 0xB473, - 30936 - 11905: 0xB474, - 30937 - 11905: 0xEDDE, - 30938 - 11905: 0xB475, - 30939 - 11905: 0xB476, - 30940 - 11905: 0xB477, - 30941 - 11905: 0xB478, - 30942 - 11905: 0xB479, - 30943 - 11905: 0xB47A, - 30944 - 11905: 0xB47B, - 30945 - 11905: 0xB47C, - 30946 - 11905: 0xB47D, - 30947 - 11905: 0xB47E, - 30948 - 11905: 0xB480, - 30949 - 11905: 0xB481, - 30950 - 11905: 0xB482, - 30951 - 11905: 0xB483, - 30952 - 11905: 0xC4A5, - 30953 - 11905: 0xB484, - 30954 - 11905: 0xB485, - 30955 - 11905: 0xB486, - 30956 - 11905: 0xEDE0, - 30957 - 11905: 0xB487, - 30958 - 11905: 0xB488, - 30959 - 11905: 0xB489, - 30960 - 11905: 0xB48A, - 30961 - 11905: 0xB48B, - 30962 - 11905: 0xEDE1, - 30963 - 11905: 0xB48C, - 30964 - 11905: 0xEDE3, - 30965 - 11905: 0xB48D, - 30966 - 11905: 0xB48E, - 30967 - 11905: 0xC1D7, - 30968 - 11905: 0xB48F, - 30969 - 11905: 0xB490, - 30970 - 11905: 0xBBC7, - 30971 - 11905: 0xB491, - 30972 - 11905: 0xB492, - 30973 - 11905: 0xB493, - 30974 - 11905: 0xB494, - 30975 - 11905: 0xB495, - 30976 - 11905: 0xB496, - 30977 - 11905: 0xBDB8, - 30978 - 11905: 0xB497, - 30979 - 11905: 0xB498, - 30980 - 11905: 0xB499, - 30981 - 11905: 0xEDE2, - 30982 - 11905: 0xB49A, - 30983 - 11905: 0xB49B, - 30984 - 11905: 0xB49C, - 30985 - 11905: 0xB49D, - 30986 - 11905: 0xB49E, - 30987 - 11905: 0xB49F, - 30988 - 11905: 0xB4A0, - 30989 - 11905: 0xB540, - 30990 - 11905: 0xB541, - 30991 - 11905: 0xB542, - 30992 - 11905: 0xB543, - 30993 - 11905: 0xB544, - 30994 - 11905: 0xB545, - 30995 - 11905: 0xEDE4, - 30996 - 11905: 0xB546, - 30997 - 11905: 0xB547, - 30998 - 11905: 0xB548, - 30999 - 11905: 0xB549, - 31000 - 11905: 0xB54A, - 31001 - 11905: 0xB54B, - 31002 - 11905: 0xB54C, - 31003 - 11905: 0xB54D, - 31004 - 11905: 0xB54E, - 31005 - 11905: 0xB54F, - 31006 - 11905: 0xEDE6, - 31007 - 11905: 0xB550, - 31008 - 11905: 0xB551, - 31009 - 11905: 0xB552, - 31010 - 11905: 0xB553, - 31011 - 11905: 0xB554, - 31012 - 11905: 0xEDE5, - 31013 - 11905: 0xB555, - 31014 - 11905: 0xB556, - 31015 - 11905: 0xB557, - 31016 - 11905: 0xB558, - 31017 - 11905: 0xB559, - 31018 - 11905: 0xB55A, - 31019 - 11905: 0xB55B, - 31020 - 11905: 0xB55C, - 31021 - 11905: 0xB55D, - 31022 - 11905: 0xB55E, - 31023 - 11905: 0xB55F, - 31024 - 11905: 0xB560, - 31025 - 11905: 0xB561, - 31026 - 11905: 0xB562, - 31027 - 11905: 0xB563, - 31028 - 11905: 0xEDE7, - 31029 - 11905: 0xB564, - 31030 - 11905: 0xB565, - 31031 - 11905: 0xB566, - 31032 - 11905: 0xB567, - 31033 - 11905: 0xB568, - 31034 - 11905: 0xCABE, - 31035 - 11905: 0xECEA, - 31036 - 11905: 0xC0F1, - 31037 - 11905: 0xB569, - 31038 - 11905: 0xC9E7, - 31039 - 11905: 0xB56A, - 31040 - 11905: 0xECEB, - 31041 - 11905: 0xC6EE, - 31042 - 11905: 0xB56B, - 31043 - 11905: 0xB56C, - 31044 - 11905: 0xB56D, - 31045 - 11905: 0xB56E, - 31046 - 11905: 0xECEC, - 31047 - 11905: 0xB56F, - 31048 - 11905: 0xC6ED, - 31049 - 11905: 0xECED, - 31050 - 11905: 0xB570, - 31051 - 11905: 0xB571, - 31052 - 11905: 0xB572, - 31053 - 11905: 0xB573, - 31054 - 11905: 0xB574, - 31055 - 11905: 0xB575, - 31056 - 11905: 0xB576, - 31057 - 11905: 0xB577, - 31058 - 11905: 0xB578, - 31059 - 11905: 0xECF0, - 31060 - 11905: 0xB579, - 31061 - 11905: 0xB57A, - 31062 - 11905: 0xD7E6, - 31063 - 11905: 0xECF3, - 31064 - 11905: 0xB57B, - 31065 - 11905: 0xB57C, - 31066 - 11905: 0xECF1, - 31067 - 11905: 0xECEE, - 31068 - 11905: 0xECEF, - 31069 - 11905: 0xD7A3, - 31070 - 11905: 0xC9F1, - 31071 - 11905: 0xCBEE, - 31072 - 11905: 0xECF4, - 31073 - 11905: 0xB57D, - 31074 - 11905: 0xECF2, - 31075 - 11905: 0xB57E, - 31076 - 11905: 0xB580, - 31077 - 11905: 0xCFE9, - 31078 - 11905: 0xB581, - 31079 - 11905: 0xECF6, - 31080 - 11905: 0xC6B1, - 31081 - 11905: 0xB582, - 31082 - 11905: 0xB583, - 31083 - 11905: 0xB584, - 31084 - 11905: 0xB585, - 31085 - 11905: 0xBCC0, - 31086 - 11905: 0xB586, - 31087 - 11905: 0xECF5, - 31088 - 11905: 0xB587, - 31089 - 11905: 0xB588, - 31090 - 11905: 0xB589, - 31091 - 11905: 0xB58A, - 31092 - 11905: 0xB58B, - 31093 - 11905: 0xB58C, - 31094 - 11905: 0xB58D, - 31095 - 11905: 0xB5BB, - 31096 - 11905: 0xBBF6, - 31097 - 11905: 0xB58E, - 31098 - 11905: 0xECF7, - 31099 - 11905: 0xB58F, - 31100 - 11905: 0xB590, - 31101 - 11905: 0xB591, - 31102 - 11905: 0xB592, - 31103 - 11905: 0xB593, - 31104 - 11905: 0xD9F7, - 31105 - 11905: 0xBDFB, - 31106 - 11905: 0xB594, - 31107 - 11905: 0xB595, - 31108 - 11905: 0xC2BB, - 31109 - 11905: 0xECF8, - 31110 - 11905: 0xB596, - 31111 - 11905: 0xB597, - 31112 - 11905: 0xB598, - 31113 - 11905: 0xB599, - 31114 - 11905: 0xECF9, - 31115 - 11905: 0xB59A, - 31116 - 11905: 0xB59B, - 31117 - 11905: 0xB59C, - 31118 - 11905: 0xB59D, - 31119 - 11905: 0xB8A3, - 31120 - 11905: 0xB59E, - 31121 - 11905: 0xB59F, - 31122 - 11905: 0xB5A0, - 31123 - 11905: 0xB640, - 31124 - 11905: 0xB641, - 31125 - 11905: 0xB642, - 31126 - 11905: 0xB643, - 31127 - 11905: 0xB644, - 31128 - 11905: 0xB645, - 31129 - 11905: 0xB646, - 31130 - 11905: 0xECFA, - 31131 - 11905: 0xB647, - 31132 - 11905: 0xB648, - 31133 - 11905: 0xB649, - 31134 - 11905: 0xB64A, - 31135 - 11905: 0xB64B, - 31136 - 11905: 0xB64C, - 31137 - 11905: 0xB64D, - 31138 - 11905: 0xB64E, - 31139 - 11905: 0xB64F, - 31140 - 11905: 0xB650, - 31141 - 11905: 0xB651, - 31142 - 11905: 0xB652, - 31143 - 11905: 0xECFB, - 31144 - 11905: 0xB653, - 31145 - 11905: 0xB654, - 31146 - 11905: 0xB655, - 31147 - 11905: 0xB656, - 31148 - 11905: 0xB657, - 31149 - 11905: 0xB658, - 31150 - 11905: 0xB659, - 31151 - 11905: 0xB65A, - 31152 - 11905: 0xB65B, - 31153 - 11905: 0xB65C, - 31154 - 11905: 0xB65D, - 31155 - 11905: 0xECFC, - 31156 - 11905: 0xB65E, - 31157 - 11905: 0xB65F, - 31158 - 11905: 0xB660, - 31159 - 11905: 0xB661, - 31160 - 11905: 0xB662, - 31161 - 11905: 0xD3ED, - 31162 - 11905: 0xD8AE, - 31163 - 11905: 0xC0EB, - 31164 - 11905: 0xB663, - 31165 - 11905: 0xC7DD, - 31166 - 11905: 0xBACC, - 31167 - 11905: 0xB664, - 31168 - 11905: 0xD0E3, - 31169 - 11905: 0xCBBD, - 31170 - 11905: 0xB665, - 31171 - 11905: 0xCDBA, - 31172 - 11905: 0xB666, - 31173 - 11905: 0xB667, - 31174 - 11905: 0xB8D1, - 31175 - 11905: 0xB668, - 31176 - 11905: 0xB669, - 31177 - 11905: 0xB1FC, - 31178 - 11905: 0xB66A, - 31179 - 11905: 0xC7EF, - 31180 - 11905: 0xB66B, - 31181 - 11905: 0xD6D6, - 31182 - 11905: 0xB66C, - 31183 - 11905: 0xB66D, - 31184 - 11905: 0xB66E, - 31185 - 11905: 0xBFC6, - 31186 - 11905: 0xC3EB, - 31187 - 11905: 0xB66F, - 31188 - 11905: 0xB670, - 31189 - 11905: 0xEFF5, - 31190 - 11905: 0xB671, - 31191 - 11905: 0xB672, - 31192 - 11905: 0xC3D8, - 31193 - 11905: 0xB673, - 31194 - 11905: 0xB674, - 31195 - 11905: 0xB675, - 31196 - 11905: 0xB676, - 31197 - 11905: 0xB677, - 31198 - 11905: 0xB678, - 31199 - 11905: 0xD7E2, - 31200 - 11905: 0xB679, - 31201 - 11905: 0xB67A, - 31202 - 11905: 0xB67B, - 31203 - 11905: 0xEFF7, - 31204 - 11905: 0xB3D3, - 31205 - 11905: 0xB67C, - 31206 - 11905: 0xC7D8, - 31207 - 11905: 0xD1ED, - 31208 - 11905: 0xB67D, - 31209 - 11905: 0xD6C8, - 31210 - 11905: 0xB67E, - 31211 - 11905: 0xEFF8, - 31212 - 11905: 0xB680, - 31213 - 11905: 0xEFF6, - 31214 - 11905: 0xB681, - 31215 - 11905: 0xBBFD, - 31216 - 11905: 0xB3C6, - 31217 - 11905: 0xB682, - 31218 - 11905: 0xB683, - 31219 - 11905: 0xB684, - 31220 - 11905: 0xB685, - 31221 - 11905: 0xB686, - 31222 - 11905: 0xB687, - 31223 - 11905: 0xB688, - 31224 - 11905: 0xBDD5, - 31225 - 11905: 0xB689, - 31226 - 11905: 0xB68A, - 31227 - 11905: 0xD2C6, - 31228 - 11905: 0xB68B, - 31229 - 11905: 0xBBE0, - 31230 - 11905: 0xB68C, - 31231 - 11905: 0xB68D, - 31232 - 11905: 0xCFA1, - 31233 - 11905: 0xB68E, - 31234 - 11905: 0xEFFC, - 31235 - 11905: 0xEFFB, - 31236 - 11905: 0xB68F, - 31237 - 11905: 0xB690, - 31238 - 11905: 0xEFF9, - 31239 - 11905: 0xB691, - 31240 - 11905: 0xB692, - 31241 - 11905: 0xB693, - 31242 - 11905: 0xB694, - 31243 - 11905: 0xB3CC, - 31244 - 11905: 0xB695, - 31245 - 11905: 0xC9D4, - 31246 - 11905: 0xCBB0, - 31247 - 11905: 0xB696, - 31248 - 11905: 0xB697, - 31249 - 11905: 0xB698, - 31250 - 11905: 0xB699, - 31251 - 11905: 0xB69A, - 31252 - 11905: 0xEFFE, - 31253 - 11905: 0xB69B, - 31254 - 11905: 0xB69C, - 31255 - 11905: 0xB0DE, - 31256 - 11905: 0xB69D, - 31257 - 11905: 0xB69E, - 31258 - 11905: 0xD6C9, - 31259 - 11905: 0xB69F, - 31260 - 11905: 0xB6A0, - 31261 - 11905: 0xB740, - 31262 - 11905: 0xEFFD, - 31263 - 11905: 0xB741, - 31264 - 11905: 0xB3ED, - 31265 - 11905: 0xB742, - 31266 - 11905: 0xB743, - 31267 - 11905: 0xF6D5, - 31268 - 11905: 0xB744, - 31269 - 11905: 0xB745, - 31270 - 11905: 0xB746, - 31271 - 11905: 0xB747, - 31272 - 11905: 0xB748, - 31273 - 11905: 0xB749, - 31274 - 11905: 0xB74A, - 31275 - 11905: 0xB74B, - 31276 - 11905: 0xB74C, - 31277 - 11905: 0xB74D, - 31278 - 11905: 0xB74E, - 31279 - 11905: 0xB74F, - 31280 - 11905: 0xB750, - 31281 - 11905: 0xB751, - 31282 - 11905: 0xB752, - 31283 - 11905: 0xCEC8, - 31284 - 11905: 0xB753, - 31285 - 11905: 0xB754, - 31286 - 11905: 0xB755, - 31287 - 11905: 0xF0A2, - 31288 - 11905: 0xB756, - 31289 - 11905: 0xF0A1, - 31290 - 11905: 0xB757, - 31291 - 11905: 0xB5BE, - 31292 - 11905: 0xBCDA, - 31293 - 11905: 0xBBFC, - 31294 - 11905: 0xB758, - 31295 - 11905: 0xB8E5, - 31296 - 11905: 0xB759, - 31297 - 11905: 0xB75A, - 31298 - 11905: 0xB75B, - 31299 - 11905: 0xB75C, - 31300 - 11905: 0xB75D, - 31301 - 11905: 0xB75E, - 31302 - 11905: 0xC4C2, - 31303 - 11905: 0xB75F, - 31304 - 11905: 0xB760, - 31305 - 11905: 0xB761, - 31306 - 11905: 0xB762, - 31307 - 11905: 0xB763, - 31308 - 11905: 0xB764, - 31309 - 11905: 0xB765, - 31310 - 11905: 0xB766, - 31311 - 11905: 0xB767, - 31312 - 11905: 0xB768, - 31313 - 11905: 0xF0A3, - 31314 - 11905: 0xB769, - 31315 - 11905: 0xB76A, - 31316 - 11905: 0xB76B, - 31317 - 11905: 0xB76C, - 31318 - 11905: 0xB76D, - 31319 - 11905: 0xCBEB, - 31320 - 11905: 0xB76E, - 31321 - 11905: 0xB76F, - 31322 - 11905: 0xB770, - 31323 - 11905: 0xB771, - 31324 - 11905: 0xB772, - 31325 - 11905: 0xB773, - 31326 - 11905: 0xB774, - 31327 - 11905: 0xB775, - 31328 - 11905: 0xB776, - 31329 - 11905: 0xB777, - 31330 - 11905: 0xB778, - 31331 - 11905: 0xB779, - 31332 - 11905: 0xB77A, - 31333 - 11905: 0xB77B, - 31334 - 11905: 0xB77C, - 31335 - 11905: 0xB77D, - 31336 - 11905: 0xB77E, - 31337 - 11905: 0xB780, - 31338 - 11905: 0xB781, - 31339 - 11905: 0xB782, - 31340 - 11905: 0xB783, - 31341 - 11905: 0xB784, - 31342 - 11905: 0xB785, - 31343 - 11905: 0xB786, - 31344 - 11905: 0xF0A6, - 31345 - 11905: 0xB787, - 31346 - 11905: 0xB788, - 31347 - 11905: 0xB789, - 31348 - 11905: 0xD1A8, - 31349 - 11905: 0xB78A, - 31350 - 11905: 0xBEBF, - 31351 - 11905: 0xC7EE, - 31352 - 11905: 0xF1B6, - 31353 - 11905: 0xF1B7, - 31354 - 11905: 0xBFD5, - 31355 - 11905: 0xB78B, - 31356 - 11905: 0xB78C, - 31357 - 11905: 0xB78D, - 31358 - 11905: 0xB78E, - 31359 - 11905: 0xB4A9, - 31360 - 11905: 0xF1B8, - 31361 - 11905: 0xCDBB, - 31362 - 11905: 0xB78F, - 31363 - 11905: 0xC7D4, - 31364 - 11905: 0xD5AD, - 31365 - 11905: 0xB790, - 31366 - 11905: 0xF1B9, - 31367 - 11905: 0xB791, - 31368 - 11905: 0xF1BA, - 31369 - 11905: 0xB792, - 31370 - 11905: 0xB793, - 31371 - 11905: 0xB794, - 31372 - 11905: 0xB795, - 31373 - 11905: 0xC7CF, - 31374 - 11905: 0xB796, - 31375 - 11905: 0xB797, - 31376 - 11905: 0xB798, - 31377 - 11905: 0xD2A4, - 31378 - 11905: 0xD6CF, - 31379 - 11905: 0xB799, - 31380 - 11905: 0xB79A, - 31381 - 11905: 0xF1BB, - 31382 - 11905: 0xBDD1, - 31383 - 11905: 0xB4B0, - 31384 - 11905: 0xBEBD, - 31385 - 11905: 0xB79B, - 31386 - 11905: 0xB79C, - 31387 - 11905: 0xB79D, - 31388 - 11905: 0xB4DC, - 31389 - 11905: 0xCED1, - 31390 - 11905: 0xB79E, - 31391 - 11905: 0xBFDF, - 31392 - 11905: 0xF1BD, - 31393 - 11905: 0xB79F, - 31394 - 11905: 0xB7A0, - 31395 - 11905: 0xB840, - 31396 - 11905: 0xB841, - 31397 - 11905: 0xBFFA, - 31398 - 11905: 0xF1BC, - 31399 - 11905: 0xB842, - 31400 - 11905: 0xF1BF, - 31401 - 11905: 0xB843, - 31402 - 11905: 0xB844, - 31403 - 11905: 0xB845, - 31404 - 11905: 0xF1BE, - 31405 - 11905: 0xF1C0, - 31406 - 11905: 0xB846, - 31407 - 11905: 0xB847, - 31408 - 11905: 0xB848, - 31409 - 11905: 0xB849, - 31410 - 11905: 0xB84A, - 31411 - 11905: 0xF1C1, - 31412 - 11905: 0xB84B, - 31413 - 11905: 0xB84C, - 31414 - 11905: 0xB84D, - 31415 - 11905: 0xB84E, - 31416 - 11905: 0xB84F, - 31417 - 11905: 0xB850, - 31418 - 11905: 0xB851, - 31419 - 11905: 0xB852, - 31420 - 11905: 0xB853, - 31421 - 11905: 0xB854, - 31422 - 11905: 0xB855, - 31423 - 11905: 0xC1FE, - 31424 - 11905: 0xB856, - 31425 - 11905: 0xB857, - 31426 - 11905: 0xB858, - 31427 - 11905: 0xB859, - 31428 - 11905: 0xB85A, - 31429 - 11905: 0xB85B, - 31430 - 11905: 0xB85C, - 31431 - 11905: 0xB85D, - 31432 - 11905: 0xB85E, - 31433 - 11905: 0xB85F, - 31434 - 11905: 0xB860, - 31435 - 11905: 0xC1A2, - 31436 - 11905: 0xB861, - 31437 - 11905: 0xB862, - 31438 - 11905: 0xB863, - 31439 - 11905: 0xB864, - 31440 - 11905: 0xB865, - 31441 - 11905: 0xB866, - 31442 - 11905: 0xB867, - 31443 - 11905: 0xB868, - 31444 - 11905: 0xB869, - 31445 - 11905: 0xB86A, - 31446 - 11905: 0xCAFA, - 31447 - 11905: 0xB86B, - 31448 - 11905: 0xB86C, - 31449 - 11905: 0xD5BE, - 31450 - 11905: 0xB86D, - 31451 - 11905: 0xB86E, - 31452 - 11905: 0xB86F, - 31453 - 11905: 0xB870, - 31454 - 11905: 0xBEBA, - 31455 - 11905: 0xBEB9, - 31456 - 11905: 0xD5C2, - 31457 - 11905: 0xB871, - 31458 - 11905: 0xB872, - 31459 - 11905: 0xBFA2, - 31460 - 11905: 0xB873, - 31461 - 11905: 0xCDAF, - 31462 - 11905: 0xF1B5, - 31463 - 11905: 0xB874, - 31464 - 11905: 0xB875, - 31465 - 11905: 0xB876, - 31466 - 11905: 0xB877, - 31467 - 11905: 0xB878, - 31468 - 11905: 0xB879, - 31469 - 11905: 0xBDDF, - 31470 - 11905: 0xB87A, - 31471 - 11905: 0xB6CB, - 31472 - 11905: 0xB87B, - 31473 - 11905: 0xB87C, - 31474 - 11905: 0xB87D, - 31475 - 11905: 0xB87E, - 31476 - 11905: 0xB880, - 31477 - 11905: 0xB881, - 31478 - 11905: 0xB882, - 31479 - 11905: 0xB883, - 31480 - 11905: 0xB884, - 31481 - 11905: 0xD6F1, - 31482 - 11905: 0xF3C3, - 31483 - 11905: 0xB885, - 31484 - 11905: 0xB886, - 31485 - 11905: 0xF3C4, - 31486 - 11905: 0xB887, - 31487 - 11905: 0xB8CD, - 31488 - 11905: 0xB888, - 31489 - 11905: 0xB889, - 31490 - 11905: 0xB88A, - 31491 - 11905: 0xF3C6, - 31492 - 11905: 0xF3C7, - 31493 - 11905: 0xB88B, - 31494 - 11905: 0xB0CA, - 31495 - 11905: 0xB88C, - 31496 - 11905: 0xF3C5, - 31497 - 11905: 0xB88D, - 31498 - 11905: 0xF3C9, - 31499 - 11905: 0xCBF1, - 31500 - 11905: 0xB88E, - 31501 - 11905: 0xB88F, - 31502 - 11905: 0xB890, - 31503 - 11905: 0xF3CB, - 31504 - 11905: 0xB891, - 31505 - 11905: 0xD0A6, - 31506 - 11905: 0xB892, - 31507 - 11905: 0xB893, - 31508 - 11905: 0xB1CA, - 31509 - 11905: 0xF3C8, - 31510 - 11905: 0xB894, - 31511 - 11905: 0xB895, - 31512 - 11905: 0xB896, - 31513 - 11905: 0xF3CF, - 31514 - 11905: 0xB897, - 31515 - 11905: 0xB5D1, - 31516 - 11905: 0xB898, - 31517 - 11905: 0xB899, - 31518 - 11905: 0xF3D7, - 31519 - 11905: 0xB89A, - 31520 - 11905: 0xF3D2, - 31521 - 11905: 0xB89B, - 31522 - 11905: 0xB89C, - 31523 - 11905: 0xB89D, - 31524 - 11905: 0xF3D4, - 31525 - 11905: 0xF3D3, - 31526 - 11905: 0xB7FB, - 31527 - 11905: 0xB89E, - 31528 - 11905: 0xB1BF, - 31529 - 11905: 0xB89F, - 31530 - 11905: 0xF3CE, - 31531 - 11905: 0xF3CA, - 31532 - 11905: 0xB5DA, - 31533 - 11905: 0xB8A0, - 31534 - 11905: 0xF3D0, - 31535 - 11905: 0xB940, - 31536 - 11905: 0xB941, - 31537 - 11905: 0xF3D1, - 31538 - 11905: 0xB942, - 31539 - 11905: 0xF3D5, - 31540 - 11905: 0xB943, - 31541 - 11905: 0xB944, - 31542 - 11905: 0xB945, - 31543 - 11905: 0xB946, - 31544 - 11905: 0xF3CD, - 31545 - 11905: 0xB947, - 31546 - 11905: 0xBCE3, - 31547 - 11905: 0xB948, - 31548 - 11905: 0xC1FD, - 31549 - 11905: 0xB949, - 31550 - 11905: 0xF3D6, - 31551 - 11905: 0xB94A, - 31552 - 11905: 0xB94B, - 31553 - 11905: 0xB94C, - 31554 - 11905: 0xB94D, - 31555 - 11905: 0xB94E, - 31556 - 11905: 0xB94F, - 31557 - 11905: 0xF3DA, - 31558 - 11905: 0xB950, - 31559 - 11905: 0xF3CC, - 31560 - 11905: 0xB951, - 31561 - 11905: 0xB5C8, - 31562 - 11905: 0xB952, - 31563 - 11905: 0xBDEE, - 31564 - 11905: 0xF3DC, - 31565 - 11905: 0xB953, - 31566 - 11905: 0xB954, - 31567 - 11905: 0xB7A4, - 31568 - 11905: 0xBFF0, - 31569 - 11905: 0xD6FE, - 31570 - 11905: 0xCDB2, - 31571 - 11905: 0xB955, - 31572 - 11905: 0xB4F0, - 31573 - 11905: 0xB956, - 31574 - 11905: 0xB2DF, - 31575 - 11905: 0xB957, - 31576 - 11905: 0xF3D8, - 31577 - 11905: 0xB958, - 31578 - 11905: 0xF3D9, - 31579 - 11905: 0xC9B8, - 31580 - 11905: 0xB959, - 31581 - 11905: 0xF3DD, - 31582 - 11905: 0xB95A, - 31583 - 11905: 0xB95B, - 31584 - 11905: 0xF3DE, - 31585 - 11905: 0xB95C, - 31586 - 11905: 0xF3E1, - 31587 - 11905: 0xB95D, - 31588 - 11905: 0xB95E, - 31589 - 11905: 0xB95F, - 31590 - 11905: 0xB960, - 31591 - 11905: 0xB961, - 31592 - 11905: 0xB962, - 31593 - 11905: 0xB963, - 31594 - 11905: 0xB964, - 31595 - 11905: 0xB965, - 31596 - 11905: 0xB966, - 31597 - 11905: 0xB967, - 31598 - 11905: 0xF3DF, - 31599 - 11905: 0xB968, - 31600 - 11905: 0xB969, - 31601 - 11905: 0xF3E3, - 31602 - 11905: 0xF3E2, - 31603 - 11905: 0xB96A, - 31604 - 11905: 0xB96B, - 31605 - 11905: 0xF3DB, - 31606 - 11905: 0xB96C, - 31607 - 11905: 0xBFEA, - 31608 - 11905: 0xB96D, - 31609 - 11905: 0xB3EF, - 31610 - 11905: 0xB96E, - 31611 - 11905: 0xF3E0, - 31612 - 11905: 0xB96F, - 31613 - 11905: 0xB970, - 31614 - 11905: 0xC7A9, - 31615 - 11905: 0xB971, - 31616 - 11905: 0xBCF2, - 31617 - 11905: 0xB972, - 31618 - 11905: 0xB973, - 31619 - 11905: 0xB974, - 31620 - 11905: 0xB975, - 31621 - 11905: 0xF3EB, - 31622 - 11905: 0xB976, - 31623 - 11905: 0xB977, - 31624 - 11905: 0xB978, - 31625 - 11905: 0xB979, - 31626 - 11905: 0xB97A, - 31627 - 11905: 0xB97B, - 31628 - 11905: 0xB97C, - 31629 - 11905: 0xB9BF, - 31630 - 11905: 0xB97D, - 31631 - 11905: 0xB97E, - 31632 - 11905: 0xF3E4, - 31633 - 11905: 0xB980, - 31634 - 11905: 0xB981, - 31635 - 11905: 0xB982, - 31636 - 11905: 0xB2AD, - 31637 - 11905: 0xBBFE, - 31638 - 11905: 0xB983, - 31639 - 11905: 0xCBE3, - 31640 - 11905: 0xB984, - 31641 - 11905: 0xB985, - 31642 - 11905: 0xB986, - 31643 - 11905: 0xB987, - 31644 - 11905: 0xF3ED, - 31645 - 11905: 0xF3E9, - 31646 - 11905: 0xB988, - 31647 - 11905: 0xB989, - 31648 - 11905: 0xB98A, - 31649 - 11905: 0xB9DC, - 31650 - 11905: 0xF3EE, - 31651 - 11905: 0xB98B, - 31652 - 11905: 0xB98C, - 31653 - 11905: 0xB98D, - 31654 - 11905: 0xF3E5, - 31655 - 11905: 0xF3E6, - 31656 - 11905: 0xF3EA, - 31657 - 11905: 0xC2E1, - 31658 - 11905: 0xF3EC, - 31659 - 11905: 0xF3EF, - 31660 - 11905: 0xF3E8, - 31661 - 11905: 0xBCFD, - 31662 - 11905: 0xB98E, - 31663 - 11905: 0xB98F, - 31664 - 11905: 0xB990, - 31665 - 11905: 0xCFE4, - 31666 - 11905: 0xB991, - 31667 - 11905: 0xB992, - 31668 - 11905: 0xF3F0, - 31669 - 11905: 0xB993, - 31670 - 11905: 0xB994, - 31671 - 11905: 0xB995, - 31672 - 11905: 0xF3E7, - 31673 - 11905: 0xB996, - 31674 - 11905: 0xB997, - 31675 - 11905: 0xB998, - 31676 - 11905: 0xB999, - 31677 - 11905: 0xB99A, - 31678 - 11905: 0xB99B, - 31679 - 11905: 0xB99C, - 31680 - 11905: 0xB99D, - 31681 - 11905: 0xF3F2, - 31682 - 11905: 0xB99E, - 31683 - 11905: 0xB99F, - 31684 - 11905: 0xB9A0, - 31685 - 11905: 0xBA40, - 31686 - 11905: 0xD7AD, - 31687 - 11905: 0xC6AA, - 31688 - 11905: 0xBA41, - 31689 - 11905: 0xBA42, - 31690 - 11905: 0xBA43, - 31691 - 11905: 0xBA44, - 31692 - 11905: 0xF3F3, - 31693 - 11905: 0xBA45, - 31694 - 11905: 0xBA46, - 31695 - 11905: 0xBA47, - 31696 - 11905: 0xBA48, - 31697 - 11905: 0xF3F1, - 31698 - 11905: 0xBA49, - 31699 - 11905: 0xC2A8, - 31700 - 11905: 0xBA4A, - 31701 - 11905: 0xBA4B, - 31702 - 11905: 0xBA4C, - 31703 - 11905: 0xBA4D, - 31704 - 11905: 0xBA4E, - 31705 - 11905: 0xB8DD, - 31706 - 11905: 0xF3F5, - 31707 - 11905: 0xBA4F, - 31708 - 11905: 0xBA50, - 31709 - 11905: 0xF3F4, - 31710 - 11905: 0xBA51, - 31711 - 11905: 0xBA52, - 31712 - 11905: 0xBA53, - 31713 - 11905: 0xB4DB, - 31714 - 11905: 0xBA54, - 31715 - 11905: 0xBA55, - 31716 - 11905: 0xBA56, - 31717 - 11905: 0xF3F6, - 31718 - 11905: 0xF3F7, - 31719 - 11905: 0xBA57, - 31720 - 11905: 0xBA58, - 31721 - 11905: 0xBA59, - 31722 - 11905: 0xF3F8, - 31723 - 11905: 0xBA5A, - 31724 - 11905: 0xBA5B, - 31725 - 11905: 0xBA5C, - 31726 - 11905: 0xC0BA, - 31727 - 11905: 0xBA5D, - 31728 - 11905: 0xBA5E, - 31729 - 11905: 0xC0E9, - 31730 - 11905: 0xBA5F, - 31731 - 11905: 0xBA60, - 31732 - 11905: 0xBA61, - 31733 - 11905: 0xBA62, - 31734 - 11905: 0xBA63, - 31735 - 11905: 0xC5F1, - 31736 - 11905: 0xBA64, - 31737 - 11905: 0xBA65, - 31738 - 11905: 0xBA66, - 31739 - 11905: 0xBA67, - 31740 - 11905: 0xF3FB, - 31741 - 11905: 0xBA68, - 31742 - 11905: 0xF3FA, - 31743 - 11905: 0xBA69, - 31744 - 11905: 0xBA6A, - 31745 - 11905: 0xBA6B, - 31746 - 11905: 0xBA6C, - 31747 - 11905: 0xBA6D, - 31748 - 11905: 0xBA6E, - 31749 - 11905: 0xBA6F, - 31750 - 11905: 0xBA70, - 31751 - 11905: 0xB4D8, - 31752 - 11905: 0xBA71, - 31753 - 11905: 0xBA72, - 31754 - 11905: 0xBA73, - 31755 - 11905: 0xF3FE, - 31756 - 11905: 0xF3F9, - 31757 - 11905: 0xBA74, - 31758 - 11905: 0xBA75, - 31759 - 11905: 0xF3FC, - 31760 - 11905: 0xBA76, - 31761 - 11905: 0xBA77, - 31762 - 11905: 0xBA78, - 31763 - 11905: 0xBA79, - 31764 - 11905: 0xBA7A, - 31765 - 11905: 0xBA7B, - 31766 - 11905: 0xF3FD, - 31767 - 11905: 0xBA7C, - 31768 - 11905: 0xBA7D, - 31769 - 11905: 0xBA7E, - 31770 - 11905: 0xBA80, - 31771 - 11905: 0xBA81, - 31772 - 11905: 0xBA82, - 31773 - 11905: 0xBA83, - 31774 - 11905: 0xBA84, - 31775 - 11905: 0xF4A1, - 31776 - 11905: 0xBA85, - 31777 - 11905: 0xBA86, - 31778 - 11905: 0xBA87, - 31779 - 11905: 0xBA88, - 31780 - 11905: 0xBA89, - 31781 - 11905: 0xBA8A, - 31782 - 11905: 0xF4A3, - 31783 - 11905: 0xBBC9, - 31784 - 11905: 0xBA8B, - 31785 - 11905: 0xBA8C, - 31786 - 11905: 0xF4A2, - 31787 - 11905: 0xBA8D, - 31788 - 11905: 0xBA8E, - 31789 - 11905: 0xBA8F, - 31790 - 11905: 0xBA90, - 31791 - 11905: 0xBA91, - 31792 - 11905: 0xBA92, - 31793 - 11905: 0xBA93, - 31794 - 11905: 0xBA94, - 31795 - 11905: 0xBA95, - 31796 - 11905: 0xBA96, - 31797 - 11905: 0xBA97, - 31798 - 11905: 0xBA98, - 31799 - 11905: 0xBA99, - 31800 - 11905: 0xF4A4, - 31801 - 11905: 0xBA9A, - 31802 - 11905: 0xBA9B, - 31803 - 11905: 0xBA9C, - 31804 - 11905: 0xBA9D, - 31805 - 11905: 0xBA9E, - 31806 - 11905: 0xBA9F, - 31807 - 11905: 0xB2BE, - 31808 - 11905: 0xF4A6, - 31809 - 11905: 0xF4A5, - 31810 - 11905: 0xBAA0, - 31811 - 11905: 0xBB40, - 31812 - 11905: 0xBB41, - 31813 - 11905: 0xBB42, - 31814 - 11905: 0xBB43, - 31815 - 11905: 0xBB44, - 31816 - 11905: 0xBB45, - 31817 - 11905: 0xBB46, - 31818 - 11905: 0xBB47, - 31819 - 11905: 0xBB48, - 31820 - 11905: 0xBB49, - 31821 - 11905: 0xBCAE, - 31822 - 11905: 0xBB4A, - 31823 - 11905: 0xBB4B, - 31824 - 11905: 0xBB4C, - 31825 - 11905: 0xBB4D, - 31826 - 11905: 0xBB4E, - 31827 - 11905: 0xBB4F, - 31828 - 11905: 0xBB50, - 31829 - 11905: 0xBB51, - 31830 - 11905: 0xBB52, - 31831 - 11905: 0xBB53, - 31832 - 11905: 0xBB54, - 31833 - 11905: 0xBB55, - 31834 - 11905: 0xBB56, - 31835 - 11905: 0xBB57, - 31836 - 11905: 0xBB58, - 31837 - 11905: 0xBB59, - 31838 - 11905: 0xBB5A, - 31839 - 11905: 0xBB5B, - 31840 - 11905: 0xBB5C, - 31841 - 11905: 0xBB5D, - 31842 - 11905: 0xBB5E, - 31843 - 11905: 0xBB5F, - 31844 - 11905: 0xBB60, - 31845 - 11905: 0xBB61, - 31846 - 11905: 0xBB62, - 31847 - 11905: 0xBB63, - 31848 - 11905: 0xBB64, - 31849 - 11905: 0xBB65, - 31850 - 11905: 0xBB66, - 31851 - 11905: 0xBB67, - 31852 - 11905: 0xBB68, - 31853 - 11905: 0xBB69, - 31854 - 11905: 0xBB6A, - 31855 - 11905: 0xBB6B, - 31856 - 11905: 0xBB6C, - 31857 - 11905: 0xBB6D, - 31858 - 11905: 0xBB6E, - 31859 - 11905: 0xC3D7, - 31860 - 11905: 0xD9E1, - 31861 - 11905: 0xBB6F, - 31862 - 11905: 0xBB70, - 31863 - 11905: 0xBB71, - 31864 - 11905: 0xBB72, - 31865 - 11905: 0xBB73, - 31866 - 11905: 0xBB74, - 31867 - 11905: 0xC0E0, - 31868 - 11905: 0xF4CC, - 31869 - 11905: 0xD7D1, - 31870 - 11905: 0xBB75, - 31871 - 11905: 0xBB76, - 31872 - 11905: 0xBB77, - 31873 - 11905: 0xBB78, - 31874 - 11905: 0xBB79, - 31875 - 11905: 0xBB7A, - 31876 - 11905: 0xBB7B, - 31877 - 11905: 0xBB7C, - 31878 - 11905: 0xBB7D, - 31879 - 11905: 0xBB7E, - 31880 - 11905: 0xBB80, - 31881 - 11905: 0xB7DB, - 31882 - 11905: 0xBB81, - 31883 - 11905: 0xBB82, - 31884 - 11905: 0xBB83, - 31885 - 11905: 0xBB84, - 31886 - 11905: 0xBB85, - 31887 - 11905: 0xBB86, - 31888 - 11905: 0xBB87, - 31889 - 11905: 0xF4CE, - 31890 - 11905: 0xC1A3, - 31891 - 11905: 0xBB88, - 31892 - 11905: 0xBB89, - 31893 - 11905: 0xC6C9, - 31894 - 11905: 0xBB8A, - 31895 - 11905: 0xB4D6, - 31896 - 11905: 0xD5B3, - 31897 - 11905: 0xBB8B, - 31898 - 11905: 0xBB8C, - 31899 - 11905: 0xBB8D, - 31900 - 11905: 0xF4D0, - 31901 - 11905: 0xF4CF, - 31902 - 11905: 0xF4D1, - 31903 - 11905: 0xCBDA, - 31904 - 11905: 0xBB8E, - 31905 - 11905: 0xBB8F, - 31906 - 11905: 0xF4D2, - 31907 - 11905: 0xBB90, - 31908 - 11905: 0xD4C1, - 31909 - 11905: 0xD6E0, - 31910 - 11905: 0xBB91, - 31911 - 11905: 0xBB92, - 31912 - 11905: 0xBB93, - 31913 - 11905: 0xBB94, - 31914 - 11905: 0xB7E0, - 31915 - 11905: 0xBB95, - 31916 - 11905: 0xBB96, - 31917 - 11905: 0xBB97, - 31918 - 11905: 0xC1B8, - 31919 - 11905: 0xBB98, - 31920 - 11905: 0xBB99, - 31921 - 11905: 0xC1BB, - 31922 - 11905: 0xF4D3, - 31923 - 11905: 0xBEAC, - 31924 - 11905: 0xBB9A, - 31925 - 11905: 0xBB9B, - 31926 - 11905: 0xBB9C, - 31927 - 11905: 0xBB9D, - 31928 - 11905: 0xBB9E, - 31929 - 11905: 0xB4E2, - 31930 - 11905: 0xBB9F, - 31931 - 11905: 0xBBA0, - 31932 - 11905: 0xF4D4, - 31933 - 11905: 0xF4D5, - 31934 - 11905: 0xBEAB, - 31935 - 11905: 0xBC40, - 31936 - 11905: 0xBC41, - 31937 - 11905: 0xF4D6, - 31938 - 11905: 0xBC42, - 31939 - 11905: 0xBC43, - 31940 - 11905: 0xBC44, - 31941 - 11905: 0xF4DB, - 31942 - 11905: 0xBC45, - 31943 - 11905: 0xF4D7, - 31944 - 11905: 0xF4DA, - 31945 - 11905: 0xBC46, - 31946 - 11905: 0xBAFD, - 31947 - 11905: 0xBC47, - 31948 - 11905: 0xF4D8, - 31949 - 11905: 0xF4D9, - 31950 - 11905: 0xBC48, - 31951 - 11905: 0xBC49, - 31952 - 11905: 0xBC4A, - 31953 - 11905: 0xBC4B, - 31954 - 11905: 0xBC4C, - 31955 - 11905: 0xBC4D, - 31956 - 11905: 0xBC4E, - 31957 - 11905: 0xB8E2, - 31958 - 11905: 0xCCC7, - 31959 - 11905: 0xF4DC, - 31960 - 11905: 0xBC4F, - 31961 - 11905: 0xB2DA, - 31962 - 11905: 0xBC50, - 31963 - 11905: 0xBC51, - 31964 - 11905: 0xC3D3, - 31965 - 11905: 0xBC52, - 31966 - 11905: 0xBC53, - 31967 - 11905: 0xD4E3, - 31968 - 11905: 0xBFB7, - 31969 - 11905: 0xBC54, - 31970 - 11905: 0xBC55, - 31971 - 11905: 0xBC56, - 31972 - 11905: 0xBC57, - 31973 - 11905: 0xBC58, - 31974 - 11905: 0xBC59, - 31975 - 11905: 0xBC5A, - 31976 - 11905: 0xF4DD, - 31977 - 11905: 0xBC5B, - 31978 - 11905: 0xBC5C, - 31979 - 11905: 0xBC5D, - 31980 - 11905: 0xBC5E, - 31981 - 11905: 0xBC5F, - 31982 - 11905: 0xBC60, - 31983 - 11905: 0xC5B4, - 31984 - 11905: 0xBC61, - 31985 - 11905: 0xBC62, - 31986 - 11905: 0xBC63, - 31987 - 11905: 0xBC64, - 31988 - 11905: 0xBC65, - 31989 - 11905: 0xBC66, - 31990 - 11905: 0xBC67, - 31991 - 11905: 0xBC68, - 31992 - 11905: 0xF4E9, - 31993 - 11905: 0xBC69, - 31994 - 11905: 0xBC6A, - 31995 - 11905: 0xCFB5, - 31996 - 11905: 0xBC6B, - 31997 - 11905: 0xBC6C, - 31998 - 11905: 0xBC6D, - 31999 - 11905: 0xBC6E, - 32000 - 11905: 0xBC6F, - 32001 - 11905: 0xBC70, - 32002 - 11905: 0xBC71, - 32003 - 11905: 0xBC72, - 32004 - 11905: 0xBC73, - 32005 - 11905: 0xBC74, - 32006 - 11905: 0xBC75, - 32007 - 11905: 0xBC76, - 32008 - 11905: 0xBC77, - 32009 - 11905: 0xBC78, - 32010 - 11905: 0xCEC9, - 32011 - 11905: 0xBC79, - 32012 - 11905: 0xBC7A, - 32013 - 11905: 0xBC7B, - 32014 - 11905: 0xBC7C, - 32015 - 11905: 0xBC7D, - 32016 - 11905: 0xBC7E, - 32017 - 11905: 0xBC80, - 32018 - 11905: 0xBC81, - 32019 - 11905: 0xBC82, - 32020 - 11905: 0xBC83, - 32021 - 11905: 0xBC84, - 32022 - 11905: 0xBC85, - 32023 - 11905: 0xBC86, - 32024 - 11905: 0xBC87, - 32025 - 11905: 0xBC88, - 32026 - 11905: 0xBC89, - 32027 - 11905: 0xBC8A, - 32028 - 11905: 0xBC8B, - 32029 - 11905: 0xBC8C, - 32030 - 11905: 0xBC8D, - 32031 - 11905: 0xBC8E, - 32032 - 11905: 0xCBD8, - 32033 - 11905: 0xBC8F, - 32034 - 11905: 0xCBF7, - 32035 - 11905: 0xBC90, - 32036 - 11905: 0xBC91, - 32037 - 11905: 0xBC92, - 32038 - 11905: 0xBC93, - 32039 - 11905: 0xBDF4, - 32040 - 11905: 0xBC94, - 32041 - 11905: 0xBC95, - 32042 - 11905: 0xBC96, - 32043 - 11905: 0xD7CF, - 32044 - 11905: 0xBC97, - 32045 - 11905: 0xBC98, - 32046 - 11905: 0xBC99, - 32047 - 11905: 0xC0DB, - 32048 - 11905: 0xBC9A, - 32049 - 11905: 0xBC9B, - 32050 - 11905: 0xBC9C, - 32051 - 11905: 0xBC9D, - 32052 - 11905: 0xBC9E, - 32053 - 11905: 0xBC9F, - 32054 - 11905: 0xBCA0, - 32055 - 11905: 0xBD40, - 32056 - 11905: 0xBD41, - 32057 - 11905: 0xBD42, - 32058 - 11905: 0xBD43, - 32059 - 11905: 0xBD44, - 32060 - 11905: 0xBD45, - 32061 - 11905: 0xBD46, - 32062 - 11905: 0xBD47, - 32063 - 11905: 0xBD48, - 32064 - 11905: 0xBD49, - 32065 - 11905: 0xBD4A, - 32066 - 11905: 0xBD4B, - 32067 - 11905: 0xBD4C, - 32068 - 11905: 0xBD4D, - 32069 - 11905: 0xBD4E, - 32070 - 11905: 0xBD4F, - 32071 - 11905: 0xBD50, - 32072 - 11905: 0xBD51, - 32073 - 11905: 0xBD52, - 32074 - 11905: 0xBD53, - 32075 - 11905: 0xBD54, - 32076 - 11905: 0xBD55, - 32077 - 11905: 0xBD56, - 32078 - 11905: 0xBD57, - 32079 - 11905: 0xBD58, - 32080 - 11905: 0xBD59, - 32081 - 11905: 0xBD5A, - 32082 - 11905: 0xBD5B, - 32083 - 11905: 0xBD5C, - 32084 - 11905: 0xBD5D, - 32085 - 11905: 0xBD5E, - 32086 - 11905: 0xBD5F, - 32087 - 11905: 0xBD60, - 32088 - 11905: 0xBD61, - 32089 - 11905: 0xBD62, - 32090 - 11905: 0xBD63, - 32091 - 11905: 0xBD64, - 32092 - 11905: 0xBD65, - 32093 - 11905: 0xBD66, - 32094 - 11905: 0xBD67, - 32095 - 11905: 0xBD68, - 32096 - 11905: 0xBD69, - 32097 - 11905: 0xBD6A, - 32098 - 11905: 0xBD6B, - 32099 - 11905: 0xBD6C, - 32100 - 11905: 0xBD6D, - 32101 - 11905: 0xBD6E, - 32102 - 11905: 0xBD6F, - 32103 - 11905: 0xBD70, - 32104 - 11905: 0xBD71, - 32105 - 11905: 0xBD72, - 32106 - 11905: 0xBD73, - 32107 - 11905: 0xBD74, - 32108 - 11905: 0xBD75, - 32109 - 11905: 0xBD76, - 32110 - 11905: 0xD0F5, - 32111 - 11905: 0xBD77, - 32112 - 11905: 0xBD78, - 32113 - 11905: 0xBD79, - 32114 - 11905: 0xBD7A, - 32115 - 11905: 0xBD7B, - 32116 - 11905: 0xBD7C, - 32117 - 11905: 0xBD7D, - 32118 - 11905: 0xBD7E, - 32119 - 11905: 0xF4EA, - 32120 - 11905: 0xBD80, - 32121 - 11905: 0xBD81, - 32122 - 11905: 0xBD82, - 32123 - 11905: 0xBD83, - 32124 - 11905: 0xBD84, - 32125 - 11905: 0xBD85, - 32126 - 11905: 0xBD86, - 32127 - 11905: 0xBD87, - 32128 - 11905: 0xBD88, - 32129 - 11905: 0xBD89, - 32130 - 11905: 0xBD8A, - 32131 - 11905: 0xBD8B, - 32132 - 11905: 0xBD8C, - 32133 - 11905: 0xBD8D, - 32134 - 11905: 0xBD8E, - 32135 - 11905: 0xBD8F, - 32136 - 11905: 0xBD90, - 32137 - 11905: 0xBD91, - 32138 - 11905: 0xBD92, - 32139 - 11905: 0xBD93, - 32140 - 11905: 0xBD94, - 32141 - 11905: 0xBD95, - 32142 - 11905: 0xBD96, - 32143 - 11905: 0xBD97, - 32144 - 11905: 0xBD98, - 32145 - 11905: 0xBD99, - 32146 - 11905: 0xBD9A, - 32147 - 11905: 0xBD9B, - 32148 - 11905: 0xBD9C, - 32149 - 11905: 0xBD9D, - 32150 - 11905: 0xBD9E, - 32151 - 11905: 0xBD9F, - 32152 - 11905: 0xBDA0, - 32153 - 11905: 0xBE40, - 32154 - 11905: 0xBE41, - 32155 - 11905: 0xBE42, - 32156 - 11905: 0xBE43, - 32157 - 11905: 0xBE44, - 32158 - 11905: 0xBE45, - 32159 - 11905: 0xBE46, - 32160 - 11905: 0xBE47, - 32161 - 11905: 0xBE48, - 32162 - 11905: 0xBE49, - 32163 - 11905: 0xBE4A, - 32164 - 11905: 0xBE4B, - 32165 - 11905: 0xBE4C, - 32166 - 11905: 0xF4EB, - 32167 - 11905: 0xBE4D, - 32168 - 11905: 0xBE4E, - 32169 - 11905: 0xBE4F, - 32170 - 11905: 0xBE50, - 32171 - 11905: 0xBE51, - 32172 - 11905: 0xBE52, - 32173 - 11905: 0xBE53, - 32174 - 11905: 0xF4EC, - 32175 - 11905: 0xBE54, - 32176 - 11905: 0xBE55, - 32177 - 11905: 0xBE56, - 32178 - 11905: 0xBE57, - 32179 - 11905: 0xBE58, - 32180 - 11905: 0xBE59, - 32181 - 11905: 0xBE5A, - 32182 - 11905: 0xBE5B, - 32183 - 11905: 0xBE5C, - 32184 - 11905: 0xBE5D, - 32185 - 11905: 0xBE5E, - 32186 - 11905: 0xBE5F, - 32187 - 11905: 0xBE60, - 32188 - 11905: 0xBE61, - 32189 - 11905: 0xBE62, - 32190 - 11905: 0xBE63, - 32191 - 11905: 0xBE64, - 32192 - 11905: 0xBE65, - 32193 - 11905: 0xBE66, - 32194 - 11905: 0xBE67, - 32195 - 11905: 0xBE68, - 32196 - 11905: 0xBE69, - 32197 - 11905: 0xBE6A, - 32198 - 11905: 0xBE6B, - 32199 - 11905: 0xBE6C, - 32200 - 11905: 0xBE6D, - 32201 - 11905: 0xBE6E, - 32202 - 11905: 0xBE6F, - 32203 - 11905: 0xBE70, - 32204 - 11905: 0xBE71, - 32205 - 11905: 0xBE72, - 32206 - 11905: 0xBE73, - 32207 - 11905: 0xBE74, - 32208 - 11905: 0xBE75, - 32209 - 11905: 0xBE76, - 32210 - 11905: 0xBE77, - 32211 - 11905: 0xBE78, - 32212 - 11905: 0xBE79, - 32213 - 11905: 0xBE7A, - 32214 - 11905: 0xBE7B, - 32215 - 11905: 0xBE7C, - 32216 - 11905: 0xBE7D, - 32217 - 11905: 0xBE7E, - 32218 - 11905: 0xBE80, - 32219 - 11905: 0xBE81, - 32220 - 11905: 0xBE82, - 32221 - 11905: 0xBE83, - 32222 - 11905: 0xBE84, - 32223 - 11905: 0xBE85, - 32224 - 11905: 0xBE86, - 32225 - 11905: 0xBE87, - 32226 - 11905: 0xBE88, - 32227 - 11905: 0xBE89, - 32228 - 11905: 0xBE8A, - 32229 - 11905: 0xBE8B, - 32230 - 11905: 0xBE8C, - 32231 - 11905: 0xBE8D, - 32232 - 11905: 0xBE8E, - 32233 - 11905: 0xBE8F, - 32234 - 11905: 0xBE90, - 32235 - 11905: 0xBE91, - 32236 - 11905: 0xBE92, - 32237 - 11905: 0xBE93, - 32238 - 11905: 0xBE94, - 32239 - 11905: 0xBE95, - 32240 - 11905: 0xBE96, - 32241 - 11905: 0xBE97, - 32242 - 11905: 0xBE98, - 32243 - 11905: 0xBE99, - 32244 - 11905: 0xBE9A, - 32245 - 11905: 0xBE9B, - 32246 - 11905: 0xBE9C, - 32247 - 11905: 0xBE9D, - 32248 - 11905: 0xBE9E, - 32249 - 11905: 0xBE9F, - 32250 - 11905: 0xBEA0, - 32251 - 11905: 0xBF40, - 32252 - 11905: 0xBF41, - 32253 - 11905: 0xBF42, - 32254 - 11905: 0xBF43, - 32255 - 11905: 0xBF44, - 32256 - 11905: 0xBF45, - 32257 - 11905: 0xBF46, - 32258 - 11905: 0xBF47, - 32259 - 11905: 0xBF48, - 32260 - 11905: 0xBF49, - 32261 - 11905: 0xBF4A, - 32262 - 11905: 0xBF4B, - 32263 - 11905: 0xBF4C, - 32264 - 11905: 0xBF4D, - 32265 - 11905: 0xBF4E, - 32266 - 11905: 0xBF4F, - 32267 - 11905: 0xBF50, - 32268 - 11905: 0xBF51, - 32269 - 11905: 0xBF52, - 32270 - 11905: 0xBF53, - 32271 - 11905: 0xBF54, - 32272 - 11905: 0xBF55, - 32273 - 11905: 0xBF56, - 32274 - 11905: 0xBF57, - 32275 - 11905: 0xBF58, - 32276 - 11905: 0xBF59, - 32277 - 11905: 0xBF5A, - 32278 - 11905: 0xBF5B, - 32279 - 11905: 0xBF5C, - 32280 - 11905: 0xBF5D, - 32281 - 11905: 0xBF5E, - 32282 - 11905: 0xBF5F, - 32283 - 11905: 0xBF60, - 32284 - 11905: 0xBF61, - 32285 - 11905: 0xBF62, - 32286 - 11905: 0xBF63, - 32287 - 11905: 0xBF64, - 32288 - 11905: 0xBF65, - 32289 - 11905: 0xBF66, - 32290 - 11905: 0xBF67, - 32291 - 11905: 0xBF68, - 32292 - 11905: 0xBF69, - 32293 - 11905: 0xBF6A, - 32294 - 11905: 0xBF6B, - 32295 - 11905: 0xBF6C, - 32296 - 11905: 0xBF6D, - 32297 - 11905: 0xBF6E, - 32298 - 11905: 0xBF6F, - 32299 - 11905: 0xBF70, - 32300 - 11905: 0xBF71, - 32301 - 11905: 0xBF72, - 32302 - 11905: 0xBF73, - 32303 - 11905: 0xBF74, - 32304 - 11905: 0xBF75, - 32305 - 11905: 0xBF76, - 32306 - 11905: 0xBF77, - 32307 - 11905: 0xBF78, - 32308 - 11905: 0xBF79, - 32309 - 11905: 0xBF7A, - 32310 - 11905: 0xBF7B, - 32311 - 11905: 0xBF7C, - 32312 - 11905: 0xBF7D, - 32313 - 11905: 0xBF7E, - 32314 - 11905: 0xBF80, - 32315 - 11905: 0xF7E3, - 32316 - 11905: 0xBF81, - 32317 - 11905: 0xBF82, - 32318 - 11905: 0xBF83, - 32319 - 11905: 0xBF84, - 32320 - 11905: 0xBF85, - 32321 - 11905: 0xB7B1, - 32322 - 11905: 0xBF86, - 32323 - 11905: 0xBF87, - 32324 - 11905: 0xBF88, - 32325 - 11905: 0xBF89, - 32326 - 11905: 0xBF8A, - 32327 - 11905: 0xF4ED, - 32328 - 11905: 0xBF8B, - 32329 - 11905: 0xBF8C, - 32330 - 11905: 0xBF8D, - 32331 - 11905: 0xBF8E, - 32332 - 11905: 0xBF8F, - 32333 - 11905: 0xBF90, - 32334 - 11905: 0xBF91, - 32335 - 11905: 0xBF92, - 32336 - 11905: 0xBF93, - 32337 - 11905: 0xBF94, - 32338 - 11905: 0xBF95, - 32339 - 11905: 0xBF96, - 32340 - 11905: 0xBF97, - 32341 - 11905: 0xBF98, - 32342 - 11905: 0xBF99, - 32343 - 11905: 0xBF9A, - 32344 - 11905: 0xBF9B, - 32345 - 11905: 0xBF9C, - 32346 - 11905: 0xBF9D, - 32347 - 11905: 0xBF9E, - 32348 - 11905: 0xBF9F, - 32349 - 11905: 0xBFA0, - 32350 - 11905: 0xC040, - 32351 - 11905: 0xC041, - 32352 - 11905: 0xC042, - 32353 - 11905: 0xC043, - 32354 - 11905: 0xC044, - 32355 - 11905: 0xC045, - 32356 - 11905: 0xC046, - 32357 - 11905: 0xC047, - 32358 - 11905: 0xC048, - 32359 - 11905: 0xC049, - 32360 - 11905: 0xC04A, - 32361 - 11905: 0xC04B, - 32362 - 11905: 0xC04C, - 32363 - 11905: 0xC04D, - 32364 - 11905: 0xC04E, - 32365 - 11905: 0xC04F, - 32366 - 11905: 0xC050, - 32367 - 11905: 0xC051, - 32368 - 11905: 0xC052, - 32369 - 11905: 0xC053, - 32370 - 11905: 0xC054, - 32371 - 11905: 0xC055, - 32372 - 11905: 0xC056, - 32373 - 11905: 0xC057, - 32374 - 11905: 0xC058, - 32375 - 11905: 0xC059, - 32376 - 11905: 0xC05A, - 32377 - 11905: 0xC05B, - 32378 - 11905: 0xC05C, - 32379 - 11905: 0xC05D, - 32380 - 11905: 0xC05E, - 32381 - 11905: 0xC05F, - 32382 - 11905: 0xC060, - 32383 - 11905: 0xC061, - 32384 - 11905: 0xC062, - 32385 - 11905: 0xC063, - 32386 - 11905: 0xD7EB, - 32387 - 11905: 0xC064, - 32388 - 11905: 0xC065, - 32389 - 11905: 0xC066, - 32390 - 11905: 0xC067, - 32391 - 11905: 0xC068, - 32392 - 11905: 0xC069, - 32393 - 11905: 0xC06A, - 32394 - 11905: 0xC06B, - 32395 - 11905: 0xC06C, - 32396 - 11905: 0xC06D, - 32397 - 11905: 0xC06E, - 32398 - 11905: 0xC06F, - 32399 - 11905: 0xC070, - 32400 - 11905: 0xC071, - 32401 - 11905: 0xC072, - 32402 - 11905: 0xC073, - 32403 - 11905: 0xC074, - 32404 - 11905: 0xC075, - 32405 - 11905: 0xC076, - 32406 - 11905: 0xC077, - 32407 - 11905: 0xC078, - 32408 - 11905: 0xC079, - 32409 - 11905: 0xC07A, - 32410 - 11905: 0xC07B, - 32411 - 11905: 0xF4EE, - 32412 - 11905: 0xC07C, - 32413 - 11905: 0xC07D, - 32414 - 11905: 0xC07E, - 32415 - 11905: 0xE6F9, - 32416 - 11905: 0xBEC0, - 32417 - 11905: 0xE6FA, - 32418 - 11905: 0xBAEC, - 32419 - 11905: 0xE6FB, - 32420 - 11905: 0xCFCB, - 32421 - 11905: 0xE6FC, - 32422 - 11905: 0xD4BC, - 32423 - 11905: 0xBCB6, - 32424 - 11905: 0xE6FD, - 32425 - 11905: 0xE6FE, - 32426 - 11905: 0xBCCD, - 32427 - 11905: 0xC8D2, - 32428 - 11905: 0xCEB3, - 32429 - 11905: 0xE7A1, - 32430 - 11905: 0xC080, - 32431 - 11905: 0xB4BF, - 32432 - 11905: 0xE7A2, - 32433 - 11905: 0xC9B4, - 32434 - 11905: 0xB8D9, - 32435 - 11905: 0xC4C9, - 32436 - 11905: 0xC081, - 32437 - 11905: 0xD7DD, - 32438 - 11905: 0xC2DA, - 32439 - 11905: 0xB7D7, - 32440 - 11905: 0xD6BD, - 32441 - 11905: 0xCEC6, - 32442 - 11905: 0xB7C4, - 32443 - 11905: 0xC082, - 32444 - 11905: 0xC083, - 32445 - 11905: 0xC5A6, - 32446 - 11905: 0xE7A3, - 32447 - 11905: 0xCFDF, - 32448 - 11905: 0xE7A4, - 32449 - 11905: 0xE7A5, - 32450 - 11905: 0xE7A6, - 32451 - 11905: 0xC1B7, - 32452 - 11905: 0xD7E9, - 32453 - 11905: 0xC9F0, - 32454 - 11905: 0xCFB8, - 32455 - 11905: 0xD6AF, - 32456 - 11905: 0xD6D5, - 32457 - 11905: 0xE7A7, - 32458 - 11905: 0xB0ED, - 32459 - 11905: 0xE7A8, - 32460 - 11905: 0xE7A9, - 32461 - 11905: 0xC9DC, - 32462 - 11905: 0xD2EF, - 32463 - 11905: 0xBEAD, - 32464 - 11905: 0xE7AA, - 32465 - 11905: 0xB0F3, - 32466 - 11905: 0xC8DE, - 32467 - 11905: 0xBDE1, - 32468 - 11905: 0xE7AB, - 32469 - 11905: 0xC8C6, - 32470 - 11905: 0xC084, - 32471 - 11905: 0xE7AC, - 32472 - 11905: 0xBBE6, - 32473 - 11905: 0xB8F8, - 32474 - 11905: 0xD1A4, - 32475 - 11905: 0xE7AD, - 32476 - 11905: 0xC2E7, - 32477 - 11905: 0xBEF8, - 32478 - 11905: 0xBDCA, - 32479 - 11905: 0xCDB3, - 32480 - 11905: 0xE7AE, - 32481 - 11905: 0xE7AF, - 32482 - 11905: 0xBEEE, - 32483 - 11905: 0xD0E5, - 32484 - 11905: 0xC085, - 32485 - 11905: 0xCBE7, - 32486 - 11905: 0xCCD0, - 32487 - 11905: 0xBCCC, - 32488 - 11905: 0xE7B0, - 32489 - 11905: 0xBCA8, - 32490 - 11905: 0xD0F7, - 32491 - 11905: 0xE7B1, - 32492 - 11905: 0xC086, - 32493 - 11905: 0xD0F8, - 32494 - 11905: 0xE7B2, - 32495 - 11905: 0xE7B3, - 32496 - 11905: 0xB4C2, - 32497 - 11905: 0xE7B4, - 32498 - 11905: 0xE7B5, - 32499 - 11905: 0xC9FE, - 32500 - 11905: 0xCEAC, - 32501 - 11905: 0xC3E0, - 32502 - 11905: 0xE7B7, - 32503 - 11905: 0xB1C1, - 32504 - 11905: 0xB3F1, - 32505 - 11905: 0xC087, - 32506 - 11905: 0xE7B8, - 32507 - 11905: 0xE7B9, - 32508 - 11905: 0xD7DB, - 32509 - 11905: 0xD5C0, - 32510 - 11905: 0xE7BA, - 32511 - 11905: 0xC2CC, - 32512 - 11905: 0xD7BA, - 32513 - 11905: 0xE7BB, - 32514 - 11905: 0xE7BC, - 32515 - 11905: 0xE7BD, - 32516 - 11905: 0xBCEA, - 32517 - 11905: 0xC3E5, - 32518 - 11905: 0xC0C2, - 32519 - 11905: 0xE7BE, - 32520 - 11905: 0xE7BF, - 32521 - 11905: 0xBCA9, - 32522 - 11905: 0xC088, - 32523 - 11905: 0xE7C0, - 32524 - 11905: 0xE7C1, - 32525 - 11905: 0xE7B6, - 32526 - 11905: 0xB6D0, - 32527 - 11905: 0xE7C2, - 32528 - 11905: 0xC089, - 32529 - 11905: 0xE7C3, - 32530 - 11905: 0xE7C4, - 32531 - 11905: 0xBBBA, - 32532 - 11905: 0xB5DE, - 32533 - 11905: 0xC2C6, - 32534 - 11905: 0xB1E0, - 32535 - 11905: 0xE7C5, - 32536 - 11905: 0xD4B5, - 32537 - 11905: 0xE7C6, - 32538 - 11905: 0xB8BF, - 32539 - 11905: 0xE7C8, - 32540 - 11905: 0xE7C7, - 32541 - 11905: 0xB7EC, - 32542 - 11905: 0xC08A, - 32543 - 11905: 0xE7C9, - 32544 - 11905: 0xB2F8, - 32545 - 11905: 0xE7CA, - 32546 - 11905: 0xE7CB, - 32547 - 11905: 0xE7CC, - 32548 - 11905: 0xE7CD, - 32549 - 11905: 0xE7CE, - 32550 - 11905: 0xE7CF, - 32551 - 11905: 0xE7D0, - 32552 - 11905: 0xD3A7, - 32553 - 11905: 0xCBF5, - 32554 - 11905: 0xE7D1, - 32555 - 11905: 0xE7D2, - 32556 - 11905: 0xE7D3, - 32557 - 11905: 0xE7D4, - 32558 - 11905: 0xC9C9, - 32559 - 11905: 0xE7D5, - 32560 - 11905: 0xE7D6, - 32561 - 11905: 0xE7D7, - 32562 - 11905: 0xE7D8, - 32563 - 11905: 0xE7D9, - 32564 - 11905: 0xBDC9, - 32565 - 11905: 0xE7DA, - 32566 - 11905: 0xF3BE, - 32567 - 11905: 0xC08B, - 32568 - 11905: 0xB8D7, - 32569 - 11905: 0xC08C, - 32570 - 11905: 0xC8B1, - 32571 - 11905: 0xC08D, - 32572 - 11905: 0xC08E, - 32573 - 11905: 0xC08F, - 32574 - 11905: 0xC090, - 32575 - 11905: 0xC091, - 32576 - 11905: 0xC092, - 32577 - 11905: 0xC093, - 32578 - 11905: 0xF3BF, - 32579 - 11905: 0xC094, - 32580 - 11905: 0xF3C0, - 32581 - 11905: 0xF3C1, - 32582 - 11905: 0xC095, - 32583 - 11905: 0xC096, - 32584 - 11905: 0xC097, - 32585 - 11905: 0xC098, - 32586 - 11905: 0xC099, - 32587 - 11905: 0xC09A, - 32588 - 11905: 0xC09B, - 32589 - 11905: 0xC09C, - 32590 - 11905: 0xC09D, - 32591 - 11905: 0xC09E, - 32592 - 11905: 0xB9DE, - 32593 - 11905: 0xCDF8, - 32594 - 11905: 0xC09F, - 32595 - 11905: 0xC0A0, - 32596 - 11905: 0xD8E8, - 32597 - 11905: 0xBAB1, - 32598 - 11905: 0xC140, - 32599 - 11905: 0xC2DE, - 32600 - 11905: 0xEEB7, - 32601 - 11905: 0xC141, - 32602 - 11905: 0xB7A3, - 32603 - 11905: 0xC142, - 32604 - 11905: 0xC143, - 32605 - 11905: 0xC144, - 32606 - 11905: 0xC145, - 32607 - 11905: 0xEEB9, - 32608 - 11905: 0xC146, - 32609 - 11905: 0xEEB8, - 32610 - 11905: 0xB0D5, - 32611 - 11905: 0xC147, - 32612 - 11905: 0xC148, - 32613 - 11905: 0xC149, - 32614 - 11905: 0xC14A, - 32615 - 11905: 0xC14B, - 32616 - 11905: 0xEEBB, - 32617 - 11905: 0xD5D6, - 32618 - 11905: 0xD7EF, - 32619 - 11905: 0xC14C, - 32620 - 11905: 0xC14D, - 32621 - 11905: 0xC14E, - 32622 - 11905: 0xD6C3, - 32623 - 11905: 0xC14F, - 32624 - 11905: 0xC150, - 32625 - 11905: 0xEEBD, - 32626 - 11905: 0xCAF0, - 32627 - 11905: 0xC151, - 32628 - 11905: 0xEEBC, - 32629 - 11905: 0xC152, - 32630 - 11905: 0xC153, - 32631 - 11905: 0xC154, - 32632 - 11905: 0xC155, - 32633 - 11905: 0xEEBE, - 32634 - 11905: 0xC156, - 32635 - 11905: 0xC157, - 32636 - 11905: 0xC158, - 32637 - 11905: 0xC159, - 32638 - 11905: 0xEEC0, - 32639 - 11905: 0xC15A, - 32640 - 11905: 0xC15B, - 32641 - 11905: 0xEEBF, - 32642 - 11905: 0xC15C, - 32643 - 11905: 0xC15D, - 32644 - 11905: 0xC15E, - 32645 - 11905: 0xC15F, - 32646 - 11905: 0xC160, - 32647 - 11905: 0xC161, - 32648 - 11905: 0xC162, - 32649 - 11905: 0xC163, - 32650 - 11905: 0xD1F2, - 32651 - 11905: 0xC164, - 32652 - 11905: 0xC7BC, - 32653 - 11905: 0xC165, - 32654 - 11905: 0xC3C0, - 32655 - 11905: 0xC166, - 32656 - 11905: 0xC167, - 32657 - 11905: 0xC168, - 32658 - 11905: 0xC169, - 32659 - 11905: 0xC16A, - 32660 - 11905: 0xB8E1, - 32661 - 11905: 0xC16B, - 32662 - 11905: 0xC16C, - 32663 - 11905: 0xC16D, - 32664 - 11905: 0xC16E, - 32665 - 11905: 0xC16F, - 32666 - 11905: 0xC1E7, - 32667 - 11905: 0xC170, - 32668 - 11905: 0xC171, - 32669 - 11905: 0xF4C6, - 32670 - 11905: 0xD0DF, - 32671 - 11905: 0xF4C7, - 32672 - 11905: 0xC172, - 32673 - 11905: 0xCFDB, - 32674 - 11905: 0xC173, - 32675 - 11905: 0xC174, - 32676 - 11905: 0xC8BA, - 32677 - 11905: 0xC175, - 32678 - 11905: 0xC176, - 32679 - 11905: 0xF4C8, - 32680 - 11905: 0xC177, - 32681 - 11905: 0xC178, - 32682 - 11905: 0xC179, - 32683 - 11905: 0xC17A, - 32684 - 11905: 0xC17B, - 32685 - 11905: 0xC17C, - 32686 - 11905: 0xC17D, - 32687 - 11905: 0xF4C9, - 32688 - 11905: 0xF4CA, - 32689 - 11905: 0xC17E, - 32690 - 11905: 0xF4CB, - 32691 - 11905: 0xC180, - 32692 - 11905: 0xC181, - 32693 - 11905: 0xC182, - 32694 - 11905: 0xC183, - 32695 - 11905: 0xC184, - 32696 - 11905: 0xD9FA, - 32697 - 11905: 0xB8FE, - 32698 - 11905: 0xC185, - 32699 - 11905: 0xC186, - 32700 - 11905: 0xE5F1, - 32701 - 11905: 0xD3F0, - 32702 - 11905: 0xC187, - 32703 - 11905: 0xF4E0, - 32704 - 11905: 0xC188, - 32705 - 11905: 0xCECC, - 32706 - 11905: 0xC189, - 32707 - 11905: 0xC18A, - 32708 - 11905: 0xC18B, - 32709 - 11905: 0xB3E1, - 32710 - 11905: 0xC18C, - 32711 - 11905: 0xC18D, - 32712 - 11905: 0xC18E, - 32713 - 11905: 0xC18F, - 32714 - 11905: 0xF1B4, - 32715 - 11905: 0xC190, - 32716 - 11905: 0xD2EE, - 32717 - 11905: 0xC191, - 32718 - 11905: 0xF4E1, - 32719 - 11905: 0xC192, - 32720 - 11905: 0xC193, - 32721 - 11905: 0xC194, - 32722 - 11905: 0xC195, - 32723 - 11905: 0xC196, - 32724 - 11905: 0xCFE8, - 32725 - 11905: 0xF4E2, - 32726 - 11905: 0xC197, - 32727 - 11905: 0xC198, - 32728 - 11905: 0xC7CC, - 32729 - 11905: 0xC199, - 32730 - 11905: 0xC19A, - 32731 - 11905: 0xC19B, - 32732 - 11905: 0xC19C, - 32733 - 11905: 0xC19D, - 32734 - 11905: 0xC19E, - 32735 - 11905: 0xB5D4, - 32736 - 11905: 0xB4E4, - 32737 - 11905: 0xF4E4, - 32738 - 11905: 0xC19F, - 32739 - 11905: 0xC1A0, - 32740 - 11905: 0xC240, - 32741 - 11905: 0xF4E3, - 32742 - 11905: 0xF4E5, - 32743 - 11905: 0xC241, - 32744 - 11905: 0xC242, - 32745 - 11905: 0xF4E6, - 32746 - 11905: 0xC243, - 32747 - 11905: 0xC244, - 32748 - 11905: 0xC245, - 32749 - 11905: 0xC246, - 32750 - 11905: 0xF4E7, - 32751 - 11905: 0xC247, - 32752 - 11905: 0xBAB2, - 32753 - 11905: 0xB0BF, - 32754 - 11905: 0xC248, - 32755 - 11905: 0xF4E8, - 32756 - 11905: 0xC249, - 32757 - 11905: 0xC24A, - 32758 - 11905: 0xC24B, - 32759 - 11905: 0xC24C, - 32760 - 11905: 0xC24D, - 32761 - 11905: 0xC24E, - 32762 - 11905: 0xC24F, - 32763 - 11905: 0xB7AD, - 32764 - 11905: 0xD2ED, - 32765 - 11905: 0xC250, - 32766 - 11905: 0xC251, - 32767 - 11905: 0xC252, - 32768 - 11905: 0xD2AB, - 32769 - 11905: 0xC0CF, - 32770 - 11905: 0xC253, - 32771 - 11905: 0xBFBC, - 32772 - 11905: 0xEBA3, - 32773 - 11905: 0xD5DF, - 32774 - 11905: 0xEAC8, - 32775 - 11905: 0xC254, - 32776 - 11905: 0xC255, - 32777 - 11905: 0xC256, - 32778 - 11905: 0xC257, - 32779 - 11905: 0xF1F3, - 32780 - 11905: 0xB6F8, - 32781 - 11905: 0xCBA3, - 32782 - 11905: 0xC258, - 32783 - 11905: 0xC259, - 32784 - 11905: 0xC4CD, - 32785 - 11905: 0xC25A, - 32786 - 11905: 0xF1E7, - 32787 - 11905: 0xC25B, - 32788 - 11905: 0xF1E8, - 32789 - 11905: 0xB8FB, - 32790 - 11905: 0xF1E9, - 32791 - 11905: 0xBAC4, - 32792 - 11905: 0xD4C5, - 32793 - 11905: 0xB0D2, - 32794 - 11905: 0xC25C, - 32795 - 11905: 0xC25D, - 32796 - 11905: 0xF1EA, - 32797 - 11905: 0xC25E, - 32798 - 11905: 0xC25F, - 32799 - 11905: 0xC260, - 32800 - 11905: 0xF1EB, - 32801 - 11905: 0xC261, - 32802 - 11905: 0xF1EC, - 32803 - 11905: 0xC262, - 32804 - 11905: 0xC263, - 32805 - 11905: 0xF1ED, - 32806 - 11905: 0xF1EE, - 32807 - 11905: 0xF1EF, - 32808 - 11905: 0xF1F1, - 32809 - 11905: 0xF1F0, - 32810 - 11905: 0xC5D5, - 32811 - 11905: 0xC264, - 32812 - 11905: 0xC265, - 32813 - 11905: 0xC266, - 32814 - 11905: 0xC267, - 32815 - 11905: 0xC268, - 32816 - 11905: 0xC269, - 32817 - 11905: 0xF1F2, - 32818 - 11905: 0xC26A, - 32819 - 11905: 0xB6FA, - 32820 - 11905: 0xC26B, - 32821 - 11905: 0xF1F4, - 32822 - 11905: 0xD2AE, - 32823 - 11905: 0xDEC7, - 32824 - 11905: 0xCBCA, - 32825 - 11905: 0xC26C, - 32826 - 11905: 0xC26D, - 32827 - 11905: 0xB3DC, - 32828 - 11905: 0xC26E, - 32829 - 11905: 0xB5A2, - 32830 - 11905: 0xC26F, - 32831 - 11905: 0xB9A2, - 32832 - 11905: 0xC270, - 32833 - 11905: 0xC271, - 32834 - 11905: 0xC4F4, - 32835 - 11905: 0xF1F5, - 32836 - 11905: 0xC272, - 32837 - 11905: 0xC273, - 32838 - 11905: 0xF1F6, - 32839 - 11905: 0xC274, - 32840 - 11905: 0xC275, - 32841 - 11905: 0xC276, - 32842 - 11905: 0xC1C4, - 32843 - 11905: 0xC1FB, - 32844 - 11905: 0xD6B0, - 32845 - 11905: 0xF1F7, - 32846 - 11905: 0xC277, - 32847 - 11905: 0xC278, - 32848 - 11905: 0xC279, - 32849 - 11905: 0xC27A, - 32850 - 11905: 0xF1F8, - 32851 - 11905: 0xC27B, - 32852 - 11905: 0xC1AA, - 32853 - 11905: 0xC27C, - 32854 - 11905: 0xC27D, - 32855 - 11905: 0xC27E, - 32856 - 11905: 0xC6B8, - 32857 - 11905: 0xC280, - 32858 - 11905: 0xBEDB, - 32859 - 11905: 0xC281, - 32860 - 11905: 0xC282, - 32861 - 11905: 0xC283, - 32862 - 11905: 0xC284, - 32863 - 11905: 0xC285, - 32864 - 11905: 0xC286, - 32865 - 11905: 0xC287, - 32866 - 11905: 0xC288, - 32867 - 11905: 0xC289, - 32868 - 11905: 0xC28A, - 32869 - 11905: 0xC28B, - 32870 - 11905: 0xC28C, - 32871 - 11905: 0xC28D, - 32872 - 11905: 0xC28E, - 32873 - 11905: 0xF1F9, - 32874 - 11905: 0xB4CF, - 32875 - 11905: 0xC28F, - 32876 - 11905: 0xC290, - 32877 - 11905: 0xC291, - 32878 - 11905: 0xC292, - 32879 - 11905: 0xC293, - 32880 - 11905: 0xC294, - 32881 - 11905: 0xF1FA, - 32882 - 11905: 0xC295, - 32883 - 11905: 0xC296, - 32884 - 11905: 0xC297, - 32885 - 11905: 0xC298, - 32886 - 11905: 0xC299, - 32887 - 11905: 0xC29A, - 32888 - 11905: 0xC29B, - 32889 - 11905: 0xC29C, - 32890 - 11905: 0xC29D, - 32891 - 11905: 0xC29E, - 32892 - 11905: 0xC29F, - 32893 - 11905: 0xC2A0, - 32894 - 11905: 0xC340, - 32895 - 11905: 0xEDB2, - 32896 - 11905: 0xEDB1, - 32897 - 11905: 0xC341, - 32898 - 11905: 0xC342, - 32899 - 11905: 0xCBE0, - 32900 - 11905: 0xD2DE, - 32901 - 11905: 0xC343, - 32902 - 11905: 0xCBC1, - 32903 - 11905: 0xD5D8, - 32904 - 11905: 0xC344, - 32905 - 11905: 0xC8E2, - 32906 - 11905: 0xC345, - 32907 - 11905: 0xC0DF, - 32908 - 11905: 0xBCA1, - 32909 - 11905: 0xC346, - 32910 - 11905: 0xC347, - 32911 - 11905: 0xC348, - 32912 - 11905: 0xC349, - 32913 - 11905: 0xC34A, - 32914 - 11905: 0xC34B, - 32915 - 11905: 0xEBC1, - 32916 - 11905: 0xC34C, - 32917 - 11905: 0xC34D, - 32918 - 11905: 0xD0A4, - 32919 - 11905: 0xC34E, - 32920 - 11905: 0xD6E2, - 32921 - 11905: 0xC34F, - 32922 - 11905: 0xB6C7, - 32923 - 11905: 0xB8D8, - 32924 - 11905: 0xEBC0, - 32925 - 11905: 0xB8CE, - 32926 - 11905: 0xC350, - 32927 - 11905: 0xEBBF, - 32928 - 11905: 0xB3A6, - 32929 - 11905: 0xB9C9, - 32930 - 11905: 0xD6AB, - 32931 - 11905: 0xC351, - 32932 - 11905: 0xB7F4, - 32933 - 11905: 0xB7CA, - 32934 - 11905: 0xC352, - 32935 - 11905: 0xC353, - 32936 - 11905: 0xC354, - 32937 - 11905: 0xBCE7, - 32938 - 11905: 0xB7BE, - 32939 - 11905: 0xEBC6, - 32940 - 11905: 0xC355, - 32941 - 11905: 0xEBC7, - 32942 - 11905: 0xB0B9, - 32943 - 11905: 0xBFCF, - 32944 - 11905: 0xC356, - 32945 - 11905: 0xEBC5, - 32946 - 11905: 0xD3FD, - 32947 - 11905: 0xC357, - 32948 - 11905: 0xEBC8, - 32949 - 11905: 0xC358, - 32950 - 11905: 0xC359, - 32951 - 11905: 0xEBC9, - 32952 - 11905: 0xC35A, - 32953 - 11905: 0xC35B, - 32954 - 11905: 0xB7CE, - 32955 - 11905: 0xC35C, - 32956 - 11905: 0xEBC2, - 32957 - 11905: 0xEBC4, - 32958 - 11905: 0xC9F6, - 32959 - 11905: 0xD6D7, - 32960 - 11905: 0xD5CD, - 32961 - 11905: 0xD0B2, - 32962 - 11905: 0xEBCF, - 32963 - 11905: 0xCEB8, - 32964 - 11905: 0xEBD0, - 32965 - 11905: 0xC35D, - 32966 - 11905: 0xB5A8, - 32967 - 11905: 0xC35E, - 32968 - 11905: 0xC35F, - 32969 - 11905: 0xC360, - 32970 - 11905: 0xC361, - 32971 - 11905: 0xC362, - 32972 - 11905: 0xB1B3, - 32973 - 11905: 0xEBD2, - 32974 - 11905: 0xCCA5, - 32975 - 11905: 0xC363, - 32976 - 11905: 0xC364, - 32977 - 11905: 0xC365, - 32978 - 11905: 0xC366, - 32979 - 11905: 0xC367, - 32980 - 11905: 0xC368, - 32981 - 11905: 0xC369, - 32982 - 11905: 0xC5D6, - 32983 - 11905: 0xEBD3, - 32984 - 11905: 0xC36A, - 32985 - 11905: 0xEBD1, - 32986 - 11905: 0xC5DF, - 32987 - 11905: 0xEBCE, - 32988 - 11905: 0xCAA4, - 32989 - 11905: 0xEBD5, - 32990 - 11905: 0xB0FB, - 32991 - 11905: 0xC36B, - 32992 - 11905: 0xC36C, - 32993 - 11905: 0xBAFA, - 32994 - 11905: 0xC36D, - 32995 - 11905: 0xC36E, - 32996 - 11905: 0xD8B7, - 32997 - 11905: 0xF1E3, - 32998 - 11905: 0xC36F, - 32999 - 11905: 0xEBCA, - 33000 - 11905: 0xEBCB, - 33001 - 11905: 0xEBCC, - 33002 - 11905: 0xEBCD, - 33003 - 11905: 0xEBD6, - 33004 - 11905: 0xE6C0, - 33005 - 11905: 0xEBD9, - 33006 - 11905: 0xC370, - 33007 - 11905: 0xBFE8, - 33008 - 11905: 0xD2C8, - 33009 - 11905: 0xEBD7, - 33010 - 11905: 0xEBDC, - 33011 - 11905: 0xB8EC, - 33012 - 11905: 0xEBD8, - 33013 - 11905: 0xC371, - 33014 - 11905: 0xBDBA, - 33015 - 11905: 0xC372, - 33016 - 11905: 0xD0D8, - 33017 - 11905: 0xC373, - 33018 - 11905: 0xB0B7, - 33019 - 11905: 0xC374, - 33020 - 11905: 0xEBDD, - 33021 - 11905: 0xC4DC, - 33022 - 11905: 0xC375, - 33023 - 11905: 0xC376, - 33024 - 11905: 0xC377, - 33025 - 11905: 0xC378, - 33026 - 11905: 0xD6AC, - 33027 - 11905: 0xC379, - 33028 - 11905: 0xC37A, - 33029 - 11905: 0xC37B, - 33030 - 11905: 0xB4E0, - 33031 - 11905: 0xC37C, - 33032 - 11905: 0xC37D, - 33033 - 11905: 0xC2F6, - 33034 - 11905: 0xBCB9, - 33035 - 11905: 0xC37E, - 33036 - 11905: 0xC380, - 33037 - 11905: 0xEBDA, - 33038 - 11905: 0xEBDB, - 33039 - 11905: 0xD4E0, - 33040 - 11905: 0xC6EA, - 33041 - 11905: 0xC4D4, - 33042 - 11905: 0xEBDF, - 33043 - 11905: 0xC5A7, - 33044 - 11905: 0xD9F5, - 33045 - 11905: 0xC381, - 33046 - 11905: 0xB2B1, - 33047 - 11905: 0xC382, - 33048 - 11905: 0xEBE4, - 33049 - 11905: 0xC383, - 33050 - 11905: 0xBDC5, - 33051 - 11905: 0xC384, - 33052 - 11905: 0xC385, - 33053 - 11905: 0xC386, - 33054 - 11905: 0xEBE2, - 33055 - 11905: 0xC387, - 33056 - 11905: 0xC388, - 33057 - 11905: 0xC389, - 33058 - 11905: 0xC38A, - 33059 - 11905: 0xC38B, - 33060 - 11905: 0xC38C, - 33061 - 11905: 0xC38D, - 33062 - 11905: 0xC38E, - 33063 - 11905: 0xC38F, - 33064 - 11905: 0xC390, - 33065 - 11905: 0xC391, - 33066 - 11905: 0xC392, - 33067 - 11905: 0xC393, - 33068 - 11905: 0xEBE3, - 33069 - 11905: 0xC394, - 33070 - 11905: 0xC395, - 33071 - 11905: 0xB8AC, - 33072 - 11905: 0xC396, - 33073 - 11905: 0xCDD1, - 33074 - 11905: 0xEBE5, - 33075 - 11905: 0xC397, - 33076 - 11905: 0xC398, - 33077 - 11905: 0xC399, - 33078 - 11905: 0xEBE1, - 33079 - 11905: 0xC39A, - 33080 - 11905: 0xC1B3, - 33081 - 11905: 0xC39B, - 33082 - 11905: 0xC39C, - 33083 - 11905: 0xC39D, - 33084 - 11905: 0xC39E, - 33085 - 11905: 0xC39F, - 33086 - 11905: 0xC6A2, - 33087 - 11905: 0xC3A0, - 33088 - 11905: 0xC440, - 33089 - 11905: 0xC441, - 33090 - 11905: 0xC442, - 33091 - 11905: 0xC443, - 33092 - 11905: 0xC444, - 33093 - 11905: 0xC445, - 33094 - 11905: 0xCCF3, - 33095 - 11905: 0xC446, - 33096 - 11905: 0xEBE6, - 33097 - 11905: 0xC447, - 33098 - 11905: 0xC0B0, - 33099 - 11905: 0xD2B8, - 33100 - 11905: 0xEBE7, - 33101 - 11905: 0xC448, - 33102 - 11905: 0xC449, - 33103 - 11905: 0xC44A, - 33104 - 11905: 0xB8AF, - 33105 - 11905: 0xB8AD, - 33106 - 11905: 0xC44B, - 33107 - 11905: 0xEBE8, - 33108 - 11905: 0xC7BB, - 33109 - 11905: 0xCDF3, - 33110 - 11905: 0xC44C, - 33111 - 11905: 0xC44D, - 33112 - 11905: 0xC44E, - 33113 - 11905: 0xEBEA, - 33114 - 11905: 0xEBEB, - 33115 - 11905: 0xC44F, - 33116 - 11905: 0xC450, - 33117 - 11905: 0xC451, - 33118 - 11905: 0xC452, - 33119 - 11905: 0xC453, - 33120 - 11905: 0xEBED, - 33121 - 11905: 0xC454, - 33122 - 11905: 0xC455, - 33123 - 11905: 0xC456, - 33124 - 11905: 0xC457, - 33125 - 11905: 0xD0C8, - 33126 - 11905: 0xC458, - 33127 - 11905: 0xEBF2, - 33128 - 11905: 0xC459, - 33129 - 11905: 0xEBEE, - 33130 - 11905: 0xC45A, - 33131 - 11905: 0xC45B, - 33132 - 11905: 0xC45C, - 33133 - 11905: 0xEBF1, - 33134 - 11905: 0xC8F9, - 33135 - 11905: 0xC45D, - 33136 - 11905: 0xD1FC, - 33137 - 11905: 0xEBEC, - 33138 - 11905: 0xC45E, - 33139 - 11905: 0xC45F, - 33140 - 11905: 0xEBE9, - 33141 - 11905: 0xC460, - 33142 - 11905: 0xC461, - 33143 - 11905: 0xC462, - 33144 - 11905: 0xC463, - 33145 - 11905: 0xB8B9, - 33146 - 11905: 0xCFD9, - 33147 - 11905: 0xC4E5, - 33148 - 11905: 0xEBEF, - 33149 - 11905: 0xEBF0, - 33150 - 11905: 0xCCDA, - 33151 - 11905: 0xCDC8, - 33152 - 11905: 0xB0F2, - 33153 - 11905: 0xC464, - 33154 - 11905: 0xEBF6, - 33155 - 11905: 0xC465, - 33156 - 11905: 0xC466, - 33157 - 11905: 0xC467, - 33158 - 11905: 0xC468, - 33159 - 11905: 0xC469, - 33160 - 11905: 0xEBF5, - 33161 - 11905: 0xC46A, - 33162 - 11905: 0xB2B2, - 33163 - 11905: 0xC46B, - 33164 - 11905: 0xC46C, - 33165 - 11905: 0xC46D, - 33166 - 11905: 0xC46E, - 33167 - 11905: 0xB8E0, - 33168 - 11905: 0xC46F, - 33169 - 11905: 0xEBF7, - 33170 - 11905: 0xC470, - 33171 - 11905: 0xC471, - 33172 - 11905: 0xC472, - 33173 - 11905: 0xC473, - 33174 - 11905: 0xC474, - 33175 - 11905: 0xC475, - 33176 - 11905: 0xB1EC, - 33177 - 11905: 0xC476, - 33178 - 11905: 0xC477, - 33179 - 11905: 0xCCC5, - 33180 - 11905: 0xC4A4, - 33181 - 11905: 0xCFA5, - 33182 - 11905: 0xC478, - 33183 - 11905: 0xC479, - 33184 - 11905: 0xC47A, - 33185 - 11905: 0xC47B, - 33186 - 11905: 0xC47C, - 33187 - 11905: 0xEBF9, - 33188 - 11905: 0xC47D, - 33189 - 11905: 0xC47E, - 33190 - 11905: 0xECA2, - 33191 - 11905: 0xC480, - 33192 - 11905: 0xC5F2, - 33193 - 11905: 0xC481, - 33194 - 11905: 0xEBFA, - 33195 - 11905: 0xC482, - 33196 - 11905: 0xC483, - 33197 - 11905: 0xC484, - 33198 - 11905: 0xC485, - 33199 - 11905: 0xC486, - 33200 - 11905: 0xC487, - 33201 - 11905: 0xC488, - 33202 - 11905: 0xC489, - 33203 - 11905: 0xC9C5, - 33204 - 11905: 0xC48A, - 33205 - 11905: 0xC48B, - 33206 - 11905: 0xC48C, - 33207 - 11905: 0xC48D, - 33208 - 11905: 0xC48E, - 33209 - 11905: 0xC48F, - 33210 - 11905: 0xE2DF, - 33211 - 11905: 0xEBFE, - 33212 - 11905: 0xC490, - 33213 - 11905: 0xC491, - 33214 - 11905: 0xC492, - 33215 - 11905: 0xC493, - 33216 - 11905: 0xCDCE, - 33217 - 11905: 0xECA1, - 33218 - 11905: 0xB1DB, - 33219 - 11905: 0xD3B7, - 33220 - 11905: 0xC494, - 33221 - 11905: 0xC495, - 33222 - 11905: 0xD2DC, - 33223 - 11905: 0xC496, - 33224 - 11905: 0xC497, - 33225 - 11905: 0xC498, - 33226 - 11905: 0xEBFD, - 33227 - 11905: 0xC499, - 33228 - 11905: 0xEBFB, - 33229 - 11905: 0xC49A, - 33230 - 11905: 0xC49B, - 33231 - 11905: 0xC49C, - 33232 - 11905: 0xC49D, - 33233 - 11905: 0xC49E, - 33234 - 11905: 0xC49F, - 33235 - 11905: 0xC4A0, - 33236 - 11905: 0xC540, - 33237 - 11905: 0xC541, - 33238 - 11905: 0xC542, - 33239 - 11905: 0xC543, - 33240 - 11905: 0xC544, - 33241 - 11905: 0xC545, - 33242 - 11905: 0xC546, - 33243 - 11905: 0xC547, - 33244 - 11905: 0xC548, - 33245 - 11905: 0xC549, - 33246 - 11905: 0xC54A, - 33247 - 11905: 0xC54B, - 33248 - 11905: 0xC54C, - 33249 - 11905: 0xC54D, - 33250 - 11905: 0xC54E, - 33251 - 11905: 0xB3BC, - 33252 - 11905: 0xC54F, - 33253 - 11905: 0xC550, - 33254 - 11905: 0xC551, - 33255 - 11905: 0xEAB0, - 33256 - 11905: 0xC552, - 33257 - 11905: 0xC553, - 33258 - 11905: 0xD7D4, - 33259 - 11905: 0xC554, - 33260 - 11905: 0xF4AB, - 33261 - 11905: 0xB3F4, - 33262 - 11905: 0xC555, - 33263 - 11905: 0xC556, - 33264 - 11905: 0xC557, - 33265 - 11905: 0xC558, - 33266 - 11905: 0xC559, - 33267 - 11905: 0xD6C1, - 33268 - 11905: 0xD6C2, - 33269 - 11905: 0xC55A, - 33270 - 11905: 0xC55B, - 33271 - 11905: 0xC55C, - 33272 - 11905: 0xC55D, - 33273 - 11905: 0xC55E, - 33274 - 11905: 0xC55F, - 33275 - 11905: 0xD5E9, - 33276 - 11905: 0xBECA, - 33277 - 11905: 0xC560, - 33278 - 11905: 0xF4A7, - 33279 - 11905: 0xC561, - 33280 - 11905: 0xD2A8, - 33281 - 11905: 0xF4A8, - 33282 - 11905: 0xF4A9, - 33283 - 11905: 0xC562, - 33284 - 11905: 0xF4AA, - 33285 - 11905: 0xBECB, - 33286 - 11905: 0xD3DF, - 33287 - 11905: 0xC563, - 33288 - 11905: 0xC564, - 33289 - 11905: 0xC565, - 33290 - 11905: 0xC566, - 33291 - 11905: 0xC567, - 33292 - 11905: 0xC9E0, - 33293 - 11905: 0xC9E1, - 33294 - 11905: 0xC568, - 33295 - 11905: 0xC569, - 33296 - 11905: 0xF3C2, - 33297 - 11905: 0xC56A, - 33298 - 11905: 0xCAE6, - 33299 - 11905: 0xC56B, - 33300 - 11905: 0xCCF2, - 33301 - 11905: 0xC56C, - 33302 - 11905: 0xC56D, - 33303 - 11905: 0xC56E, - 33304 - 11905: 0xC56F, - 33305 - 11905: 0xC570, - 33306 - 11905: 0xC571, - 33307 - 11905: 0xE2B6, - 33308 - 11905: 0xCBB4, - 33309 - 11905: 0xC572, - 33310 - 11905: 0xCEE8, - 33311 - 11905: 0xD6DB, - 33312 - 11905: 0xC573, - 33313 - 11905: 0xF4AD, - 33314 - 11905: 0xF4AE, - 33315 - 11905: 0xF4AF, - 33316 - 11905: 0xC574, - 33317 - 11905: 0xC575, - 33318 - 11905: 0xC576, - 33319 - 11905: 0xC577, - 33320 - 11905: 0xF4B2, - 33321 - 11905: 0xC578, - 33322 - 11905: 0xBABD, - 33323 - 11905: 0xF4B3, - 33324 - 11905: 0xB0E3, - 33325 - 11905: 0xF4B0, - 33326 - 11905: 0xC579, - 33327 - 11905: 0xF4B1, - 33328 - 11905: 0xBDA2, - 33329 - 11905: 0xB2D5, - 33330 - 11905: 0xC57A, - 33331 - 11905: 0xF4B6, - 33332 - 11905: 0xF4B7, - 33333 - 11905: 0xB6E6, - 33334 - 11905: 0xB2B0, - 33335 - 11905: 0xCFCF, - 33336 - 11905: 0xF4B4, - 33337 - 11905: 0xB4AC, - 33338 - 11905: 0xC57B, - 33339 - 11905: 0xF4B5, - 33340 - 11905: 0xC57C, - 33341 - 11905: 0xC57D, - 33342 - 11905: 0xF4B8, - 33343 - 11905: 0xC57E, - 33344 - 11905: 0xC580, - 33345 - 11905: 0xC581, - 33346 - 11905: 0xC582, - 33347 - 11905: 0xC583, - 33348 - 11905: 0xF4B9, - 33349 - 11905: 0xC584, - 33350 - 11905: 0xC585, - 33351 - 11905: 0xCDA7, - 33352 - 11905: 0xC586, - 33353 - 11905: 0xF4BA, - 33354 - 11905: 0xC587, - 33355 - 11905: 0xF4BB, - 33356 - 11905: 0xC588, - 33357 - 11905: 0xC589, - 33358 - 11905: 0xC58A, - 33359 - 11905: 0xF4BC, - 33360 - 11905: 0xC58B, - 33361 - 11905: 0xC58C, - 33362 - 11905: 0xC58D, - 33363 - 11905: 0xC58E, - 33364 - 11905: 0xC58F, - 33365 - 11905: 0xC590, - 33366 - 11905: 0xC591, - 33367 - 11905: 0xC592, - 33368 - 11905: 0xCBD2, - 33369 - 11905: 0xC593, - 33370 - 11905: 0xF4BD, - 33371 - 11905: 0xC594, - 33372 - 11905: 0xC595, - 33373 - 11905: 0xC596, - 33374 - 11905: 0xC597, - 33375 - 11905: 0xF4BE, - 33376 - 11905: 0xC598, - 33377 - 11905: 0xC599, - 33378 - 11905: 0xC59A, - 33379 - 11905: 0xC59B, - 33380 - 11905: 0xC59C, - 33381 - 11905: 0xC59D, - 33382 - 11905: 0xC59E, - 33383 - 11905: 0xC59F, - 33384 - 11905: 0xF4BF, - 33385 - 11905: 0xC5A0, - 33386 - 11905: 0xC640, - 33387 - 11905: 0xC641, - 33388 - 11905: 0xC642, - 33389 - 11905: 0xC643, - 33390 - 11905: 0xF4DE, - 33391 - 11905: 0xC1BC, - 33392 - 11905: 0xBCE8, - 33393 - 11905: 0xC644, - 33394 - 11905: 0xC9AB, - 33395 - 11905: 0xD1DE, - 33396 - 11905: 0xE5F5, - 33397 - 11905: 0xC645, - 33398 - 11905: 0xC646, - 33399 - 11905: 0xC647, - 33400 - 11905: 0xC648, - 33401 - 11905: 0xDCB3, - 33402 - 11905: 0xD2D5, - 33403 - 11905: 0xC649, - 33404 - 11905: 0xC64A, - 33405 - 11905: 0xDCB4, - 33406 - 11905: 0xB0AC, - 33407 - 11905: 0xDCB5, - 33408 - 11905: 0xC64B, - 33409 - 11905: 0xC64C, - 33410 - 11905: 0xBDDA, - 33411 - 11905: 0xC64D, - 33412 - 11905: 0xDCB9, - 33413 - 11905: 0xC64E, - 33414 - 11905: 0xC64F, - 33415 - 11905: 0xC650, - 33416 - 11905: 0xD8C2, - 33417 - 11905: 0xC651, - 33418 - 11905: 0xDCB7, - 33419 - 11905: 0xD3F3, - 33420 - 11905: 0xC652, - 33421 - 11905: 0xC9D6, - 33422 - 11905: 0xDCBA, - 33423 - 11905: 0xDCB6, - 33424 - 11905: 0xC653, - 33425 - 11905: 0xDCBB, - 33426 - 11905: 0xC3A2, - 33427 - 11905: 0xC654, - 33428 - 11905: 0xC655, - 33429 - 11905: 0xC656, - 33430 - 11905: 0xC657, - 33431 - 11905: 0xDCBC, - 33432 - 11905: 0xDCC5, - 33433 - 11905: 0xDCBD, - 33434 - 11905: 0xC658, - 33435 - 11905: 0xC659, - 33436 - 11905: 0xCEDF, - 33437 - 11905: 0xD6A5, - 33438 - 11905: 0xC65A, - 33439 - 11905: 0xDCCF, - 33440 - 11905: 0xC65B, - 33441 - 11905: 0xDCCD, - 33442 - 11905: 0xC65C, - 33443 - 11905: 0xC65D, - 33444 - 11905: 0xDCD2, - 33445 - 11905: 0xBDE6, - 33446 - 11905: 0xC2AB, - 33447 - 11905: 0xC65E, - 33448 - 11905: 0xDCB8, - 33449 - 11905: 0xDCCB, - 33450 - 11905: 0xDCCE, - 33451 - 11905: 0xDCBE, - 33452 - 11905: 0xB7D2, - 33453 - 11905: 0xB0C5, - 33454 - 11905: 0xDCC7, - 33455 - 11905: 0xD0BE, - 33456 - 11905: 0xDCC1, - 33457 - 11905: 0xBBA8, - 33458 - 11905: 0xC65F, - 33459 - 11905: 0xB7BC, - 33460 - 11905: 0xDCCC, - 33461 - 11905: 0xC660, - 33462 - 11905: 0xC661, - 33463 - 11905: 0xDCC6, - 33464 - 11905: 0xDCBF, - 33465 - 11905: 0xC7DB, - 33466 - 11905: 0xC662, - 33467 - 11905: 0xC663, - 33468 - 11905: 0xC664, - 33469 - 11905: 0xD1BF, - 33470 - 11905: 0xDCC0, - 33471 - 11905: 0xC665, - 33472 - 11905: 0xC666, - 33473 - 11905: 0xDCCA, - 33474 - 11905: 0xC667, - 33475 - 11905: 0xC668, - 33476 - 11905: 0xDCD0, - 33477 - 11905: 0xC669, - 33478 - 11905: 0xC66A, - 33479 - 11905: 0xCEAD, - 33480 - 11905: 0xDCC2, - 33481 - 11905: 0xC66B, - 33482 - 11905: 0xDCC3, - 33483 - 11905: 0xDCC8, - 33484 - 11905: 0xDCC9, - 33485 - 11905: 0xB2D4, - 33486 - 11905: 0xDCD1, - 33487 - 11905: 0xCBD5, - 33488 - 11905: 0xC66C, - 33489 - 11905: 0xD4B7, - 33490 - 11905: 0xDCDB, - 33491 - 11905: 0xDCDF, - 33492 - 11905: 0xCCA6, - 33493 - 11905: 0xDCE6, - 33494 - 11905: 0xC66D, - 33495 - 11905: 0xC3E7, - 33496 - 11905: 0xDCDC, - 33497 - 11905: 0xC66E, - 33498 - 11905: 0xC66F, - 33499 - 11905: 0xBFC1, - 33500 - 11905: 0xDCD9, - 33501 - 11905: 0xC670, - 33502 - 11905: 0xB0FA, - 33503 - 11905: 0xB9B6, - 33504 - 11905: 0xDCE5, - 33505 - 11905: 0xDCD3, - 33506 - 11905: 0xC671, - 33507 - 11905: 0xDCC4, - 33508 - 11905: 0xDCD6, - 33509 - 11905: 0xC8F4, - 33510 - 11905: 0xBFE0, - 33511 - 11905: 0xC672, - 33512 - 11905: 0xC673, - 33513 - 11905: 0xC674, - 33514 - 11905: 0xC675, - 33515 - 11905: 0xC9BB, - 33516 - 11905: 0xC676, - 33517 - 11905: 0xC677, - 33518 - 11905: 0xC678, - 33519 - 11905: 0xB1BD, - 33520 - 11905: 0xC679, - 33521 - 11905: 0xD3A2, - 33522 - 11905: 0xC67A, - 33523 - 11905: 0xC67B, - 33524 - 11905: 0xDCDA, - 33525 - 11905: 0xC67C, - 33526 - 11905: 0xC67D, - 33527 - 11905: 0xDCD5, - 33528 - 11905: 0xC67E, - 33529 - 11905: 0xC6BB, - 33530 - 11905: 0xC680, - 33531 - 11905: 0xDCDE, - 33532 - 11905: 0xC681, - 33533 - 11905: 0xC682, - 33534 - 11905: 0xC683, - 33535 - 11905: 0xC684, - 33536 - 11905: 0xC685, - 33537 - 11905: 0xD7C2, - 33538 - 11905: 0xC3AF, - 33539 - 11905: 0xB7B6, - 33540 - 11905: 0xC7D1, - 33541 - 11905: 0xC3A9, - 33542 - 11905: 0xDCE2, - 33543 - 11905: 0xDCD8, - 33544 - 11905: 0xDCEB, - 33545 - 11905: 0xDCD4, - 33546 - 11905: 0xC686, - 33547 - 11905: 0xC687, - 33548 - 11905: 0xDCDD, - 33549 - 11905: 0xC688, - 33550 - 11905: 0xBEA5, - 33551 - 11905: 0xDCD7, - 33552 - 11905: 0xC689, - 33553 - 11905: 0xDCE0, - 33554 - 11905: 0xC68A, - 33555 - 11905: 0xC68B, - 33556 - 11905: 0xDCE3, - 33557 - 11905: 0xDCE4, - 33558 - 11905: 0xC68C, - 33559 - 11905: 0xDCF8, - 33560 - 11905: 0xC68D, - 33561 - 11905: 0xC68E, - 33562 - 11905: 0xDCE1, - 33563 - 11905: 0xDDA2, - 33564 - 11905: 0xDCE7, - 33565 - 11905: 0xC68F, - 33566 - 11905: 0xC690, - 33567 - 11905: 0xC691, - 33568 - 11905: 0xC692, - 33569 - 11905: 0xC693, - 33570 - 11905: 0xC694, - 33571 - 11905: 0xC695, - 33572 - 11905: 0xC696, - 33573 - 11905: 0xC697, - 33574 - 11905: 0xC698, - 33575 - 11905: 0xBCEB, - 33576 - 11905: 0xB4C4, - 33577 - 11905: 0xC699, - 33578 - 11905: 0xC69A, - 33579 - 11905: 0xC3A3, - 33580 - 11905: 0xB2E7, - 33581 - 11905: 0xDCFA, - 33582 - 11905: 0xC69B, - 33583 - 11905: 0xDCF2, - 33584 - 11905: 0xC69C, - 33585 - 11905: 0xDCEF, - 33586 - 11905: 0xC69D, - 33587 - 11905: 0xDCFC, - 33588 - 11905: 0xDCEE, - 33589 - 11905: 0xD2F0, - 33590 - 11905: 0xB2E8, - 33591 - 11905: 0xC69E, - 33592 - 11905: 0xC8D7, - 33593 - 11905: 0xC8E3, - 33594 - 11905: 0xDCFB, - 33595 - 11905: 0xC69F, - 33596 - 11905: 0xDCED, - 33597 - 11905: 0xC6A0, - 33598 - 11905: 0xC740, - 33599 - 11905: 0xC741, - 33600 - 11905: 0xDCF7, - 33601 - 11905: 0xC742, - 33602 - 11905: 0xC743, - 33603 - 11905: 0xDCF5, - 33604 - 11905: 0xC744, - 33605 - 11905: 0xC745, - 33606 - 11905: 0xBEA3, - 33607 - 11905: 0xDCF4, - 33608 - 11905: 0xC746, - 33609 - 11905: 0xB2DD, - 33610 - 11905: 0xC747, - 33611 - 11905: 0xC748, - 33612 - 11905: 0xC749, - 33613 - 11905: 0xC74A, - 33614 - 11905: 0xC74B, - 33615 - 11905: 0xDCF3, - 33616 - 11905: 0xBCF6, - 33617 - 11905: 0xDCE8, - 33618 - 11905: 0xBBC4, - 33619 - 11905: 0xC74C, - 33620 - 11905: 0xC0F3, - 33621 - 11905: 0xC74D, - 33622 - 11905: 0xC74E, - 33623 - 11905: 0xC74F, - 33624 - 11905: 0xC750, - 33625 - 11905: 0xC751, - 33626 - 11905: 0xBCD4, - 33627 - 11905: 0xDCE9, - 33628 - 11905: 0xDCEA, - 33629 - 11905: 0xC752, - 33630 - 11905: 0xDCF1, - 33631 - 11905: 0xDCF6, - 33632 - 11905: 0xDCF9, - 33633 - 11905: 0xB5B4, - 33634 - 11905: 0xC753, - 33635 - 11905: 0xC8D9, - 33636 - 11905: 0xBBE7, - 33637 - 11905: 0xDCFE, - 33638 - 11905: 0xDCFD, - 33639 - 11905: 0xD3AB, - 33640 - 11905: 0xDDA1, - 33641 - 11905: 0xDDA3, - 33642 - 11905: 0xDDA5, - 33643 - 11905: 0xD2F1, - 33644 - 11905: 0xDDA4, - 33645 - 11905: 0xDDA6, - 33646 - 11905: 0xDDA7, - 33647 - 11905: 0xD2A9, - 33648 - 11905: 0xC754, - 33649 - 11905: 0xC755, - 33650 - 11905: 0xC756, - 33651 - 11905: 0xC757, - 33652 - 11905: 0xC758, - 33653 - 11905: 0xC759, - 33654 - 11905: 0xC75A, - 33655 - 11905: 0xBAC9, - 33656 - 11905: 0xDDA9, - 33657 - 11905: 0xC75B, - 33658 - 11905: 0xC75C, - 33659 - 11905: 0xDDB6, - 33660 - 11905: 0xDDB1, - 33661 - 11905: 0xDDB4, - 33662 - 11905: 0xC75D, - 33663 - 11905: 0xC75E, - 33664 - 11905: 0xC75F, - 33665 - 11905: 0xC760, - 33666 - 11905: 0xC761, - 33667 - 11905: 0xC762, - 33668 - 11905: 0xC763, - 33669 - 11905: 0xDDB0, - 33670 - 11905: 0xC6CE, - 33671 - 11905: 0xC764, - 33672 - 11905: 0xC765, - 33673 - 11905: 0xC0F2, - 33674 - 11905: 0xC766, - 33675 - 11905: 0xC767, - 33676 - 11905: 0xC768, - 33677 - 11905: 0xC769, - 33678 - 11905: 0xC9AF, - 33679 - 11905: 0xC76A, - 33680 - 11905: 0xC76B, - 33681 - 11905: 0xC76C, - 33682 - 11905: 0xDCEC, - 33683 - 11905: 0xDDAE, - 33684 - 11905: 0xC76D, - 33685 - 11905: 0xC76E, - 33686 - 11905: 0xC76F, - 33687 - 11905: 0xC770, - 33688 - 11905: 0xDDB7, - 33689 - 11905: 0xC771, - 33690 - 11905: 0xC772, - 33691 - 11905: 0xDCF0, - 33692 - 11905: 0xDDAF, - 33693 - 11905: 0xC773, - 33694 - 11905: 0xDDB8, - 33695 - 11905: 0xC774, - 33696 - 11905: 0xDDAC, - 33697 - 11905: 0xC775, - 33698 - 11905: 0xC776, - 33699 - 11905: 0xC777, - 33700 - 11905: 0xC778, - 33701 - 11905: 0xC779, - 33702 - 11905: 0xC77A, - 33703 - 11905: 0xC77B, - 33704 - 11905: 0xDDB9, - 33705 - 11905: 0xDDB3, - 33706 - 11905: 0xDDAD, - 33707 - 11905: 0xC4AA, - 33708 - 11905: 0xC77C, - 33709 - 11905: 0xC77D, - 33710 - 11905: 0xC77E, - 33711 - 11905: 0xC780, - 33712 - 11905: 0xDDA8, - 33713 - 11905: 0xC0B3, - 33714 - 11905: 0xC1AB, - 33715 - 11905: 0xDDAA, - 33716 - 11905: 0xDDAB, - 33717 - 11905: 0xC781, - 33718 - 11905: 0xDDB2, - 33719 - 11905: 0xBBF1, - 33720 - 11905: 0xDDB5, - 33721 - 11905: 0xD3A8, - 33722 - 11905: 0xDDBA, - 33723 - 11905: 0xC782, - 33724 - 11905: 0xDDBB, - 33725 - 11905: 0xC3A7, - 33726 - 11905: 0xC783, - 33727 - 11905: 0xC784, - 33728 - 11905: 0xDDD2, - 33729 - 11905: 0xDDBC, - 33730 - 11905: 0xC785, - 33731 - 11905: 0xC786, - 33732 - 11905: 0xC787, - 33733 - 11905: 0xDDD1, - 33734 - 11905: 0xC788, - 33735 - 11905: 0xB9BD, - 33736 - 11905: 0xC789, - 33737 - 11905: 0xC78A, - 33738 - 11905: 0xBED5, - 33739 - 11905: 0xC78B, - 33740 - 11905: 0xBEFA, - 33741 - 11905: 0xC78C, - 33742 - 11905: 0xC78D, - 33743 - 11905: 0xBACA, - 33744 - 11905: 0xC78E, - 33745 - 11905: 0xC78F, - 33746 - 11905: 0xC790, - 33747 - 11905: 0xC791, - 33748 - 11905: 0xDDCA, - 33749 - 11905: 0xC792, - 33750 - 11905: 0xDDC5, - 33751 - 11905: 0xC793, - 33752 - 11905: 0xDDBF, - 33753 - 11905: 0xC794, - 33754 - 11905: 0xC795, - 33755 - 11905: 0xC796, - 33756 - 11905: 0xB2CB, - 33757 - 11905: 0xDDC3, - 33758 - 11905: 0xC797, - 33759 - 11905: 0xDDCB, - 33760 - 11905: 0xB2A4, - 33761 - 11905: 0xDDD5, - 33762 - 11905: 0xC798, - 33763 - 11905: 0xC799, - 33764 - 11905: 0xC79A, - 33765 - 11905: 0xDDBE, - 33766 - 11905: 0xC79B, - 33767 - 11905: 0xC79C, - 33768 - 11905: 0xC79D, - 33769 - 11905: 0xC6D0, - 33770 - 11905: 0xDDD0, - 33771 - 11905: 0xC79E, - 33772 - 11905: 0xC79F, - 33773 - 11905: 0xC7A0, - 33774 - 11905: 0xC840, - 33775 - 11905: 0xC841, - 33776 - 11905: 0xDDD4, - 33777 - 11905: 0xC1E2, - 33778 - 11905: 0xB7C6, - 33779 - 11905: 0xC842, - 33780 - 11905: 0xC843, - 33781 - 11905: 0xC844, - 33782 - 11905: 0xC845, - 33783 - 11905: 0xC846, - 33784 - 11905: 0xDDCE, - 33785 - 11905: 0xDDCF, - 33786 - 11905: 0xC847, - 33787 - 11905: 0xC848, - 33788 - 11905: 0xC849, - 33789 - 11905: 0xDDC4, - 33790 - 11905: 0xC84A, - 33791 - 11905: 0xC84B, - 33792 - 11905: 0xC84C, - 33793 - 11905: 0xDDBD, - 33794 - 11905: 0xC84D, - 33795 - 11905: 0xDDCD, - 33796 - 11905: 0xCCD1, - 33797 - 11905: 0xC84E, - 33798 - 11905: 0xDDC9, - 33799 - 11905: 0xC84F, - 33800 - 11905: 0xC850, - 33801 - 11905: 0xC851, - 33802 - 11905: 0xC852, - 33803 - 11905: 0xDDC2, - 33804 - 11905: 0xC3C8, - 33805 - 11905: 0xC6BC, - 33806 - 11905: 0xCEAE, - 33807 - 11905: 0xDDCC, - 33808 - 11905: 0xC853, - 33809 - 11905: 0xDDC8, - 33810 - 11905: 0xC854, - 33811 - 11905: 0xC855, - 33812 - 11905: 0xC856, - 33813 - 11905: 0xC857, - 33814 - 11905: 0xC858, - 33815 - 11905: 0xC859, - 33816 - 11905: 0xDDC1, - 33817 - 11905: 0xC85A, - 33818 - 11905: 0xC85B, - 33819 - 11905: 0xC85C, - 33820 - 11905: 0xDDC6, - 33821 - 11905: 0xC2DC, - 33822 - 11905: 0xC85D, - 33823 - 11905: 0xC85E, - 33824 - 11905: 0xC85F, - 33825 - 11905: 0xC860, - 33826 - 11905: 0xC861, - 33827 - 11905: 0xC862, - 33828 - 11905: 0xD3A9, - 33829 - 11905: 0xD3AA, - 33830 - 11905: 0xDDD3, - 33831 - 11905: 0xCFF4, - 33832 - 11905: 0xC8F8, - 33833 - 11905: 0xC863, - 33834 - 11905: 0xC864, - 33835 - 11905: 0xC865, - 33836 - 11905: 0xC866, - 33837 - 11905: 0xC867, - 33838 - 11905: 0xC868, - 33839 - 11905: 0xC869, - 33840 - 11905: 0xC86A, - 33841 - 11905: 0xDDE6, - 33842 - 11905: 0xC86B, - 33843 - 11905: 0xC86C, - 33844 - 11905: 0xC86D, - 33845 - 11905: 0xC86E, - 33846 - 11905: 0xC86F, - 33847 - 11905: 0xC870, - 33848 - 11905: 0xDDC7, - 33849 - 11905: 0xC871, - 33850 - 11905: 0xC872, - 33851 - 11905: 0xC873, - 33852 - 11905: 0xDDE0, - 33853 - 11905: 0xC2E4, - 33854 - 11905: 0xC874, - 33855 - 11905: 0xC875, - 33856 - 11905: 0xC876, - 33857 - 11905: 0xC877, - 33858 - 11905: 0xC878, - 33859 - 11905: 0xC879, - 33860 - 11905: 0xC87A, - 33861 - 11905: 0xC87B, - 33862 - 11905: 0xDDE1, - 33863 - 11905: 0xC87C, - 33864 - 11905: 0xC87D, - 33865 - 11905: 0xC87E, - 33866 - 11905: 0xC880, - 33867 - 11905: 0xC881, - 33868 - 11905: 0xC882, - 33869 - 11905: 0xC883, - 33870 - 11905: 0xC884, - 33871 - 11905: 0xC885, - 33872 - 11905: 0xC886, - 33873 - 11905: 0xDDD7, - 33874 - 11905: 0xC887, - 33875 - 11905: 0xC888, - 33876 - 11905: 0xC889, - 33877 - 11905: 0xC88A, - 33878 - 11905: 0xC88B, - 33879 - 11905: 0xD6F8, - 33880 - 11905: 0xC88C, - 33881 - 11905: 0xDDD9, - 33882 - 11905: 0xDDD8, - 33883 - 11905: 0xB8F0, - 33884 - 11905: 0xDDD6, - 33885 - 11905: 0xC88D, - 33886 - 11905: 0xC88E, - 33887 - 11905: 0xC88F, - 33888 - 11905: 0xC890, - 33889 - 11905: 0xC6CF, - 33890 - 11905: 0xC891, - 33891 - 11905: 0xB6AD, - 33892 - 11905: 0xC892, - 33893 - 11905: 0xC893, - 33894 - 11905: 0xC894, - 33895 - 11905: 0xC895, - 33896 - 11905: 0xC896, - 33897 - 11905: 0xDDE2, - 33898 - 11905: 0xC897, - 33899 - 11905: 0xBAF9, - 33900 - 11905: 0xD4E1, - 33901 - 11905: 0xDDE7, - 33902 - 11905: 0xC898, - 33903 - 11905: 0xC899, - 33904 - 11905: 0xC89A, - 33905 - 11905: 0xB4D0, - 33906 - 11905: 0xC89B, - 33907 - 11905: 0xDDDA, - 33908 - 11905: 0xC89C, - 33909 - 11905: 0xBFFB, - 33910 - 11905: 0xDDE3, - 33911 - 11905: 0xC89D, - 33912 - 11905: 0xDDDF, - 33913 - 11905: 0xC89E, - 33914 - 11905: 0xDDDD, - 33915 - 11905: 0xC89F, - 33916 - 11905: 0xC8A0, - 33917 - 11905: 0xC940, - 33918 - 11905: 0xC941, - 33919 - 11905: 0xC942, - 33920 - 11905: 0xC943, - 33921 - 11905: 0xC944, - 33922 - 11905: 0xB5D9, - 33923 - 11905: 0xC945, - 33924 - 11905: 0xC946, - 33925 - 11905: 0xC947, - 33926 - 11905: 0xC948, - 33927 - 11905: 0xDDDB, - 33928 - 11905: 0xDDDC, - 33929 - 11905: 0xDDDE, - 33930 - 11905: 0xC949, - 33931 - 11905: 0xBDAF, - 33932 - 11905: 0xDDE4, - 33933 - 11905: 0xC94A, - 33934 - 11905: 0xDDE5, - 33935 - 11905: 0xC94B, - 33936 - 11905: 0xC94C, - 33937 - 11905: 0xC94D, - 33938 - 11905: 0xC94E, - 33939 - 11905: 0xC94F, - 33940 - 11905: 0xC950, - 33941 - 11905: 0xC951, - 33942 - 11905: 0xC952, - 33943 - 11905: 0xDDF5, - 33944 - 11905: 0xC953, - 33945 - 11905: 0xC3C9, - 33946 - 11905: 0xC954, - 33947 - 11905: 0xC955, - 33948 - 11905: 0xCBE2, - 33949 - 11905: 0xC956, - 33950 - 11905: 0xC957, - 33951 - 11905: 0xC958, - 33952 - 11905: 0xC959, - 33953 - 11905: 0xDDF2, - 33954 - 11905: 0xC95A, - 33955 - 11905: 0xC95B, - 33956 - 11905: 0xC95C, - 33957 - 11905: 0xC95D, - 33958 - 11905: 0xC95E, - 33959 - 11905: 0xC95F, - 33960 - 11905: 0xC960, - 33961 - 11905: 0xC961, - 33962 - 11905: 0xC962, - 33963 - 11905: 0xC963, - 33964 - 11905: 0xC964, - 33965 - 11905: 0xC965, - 33966 - 11905: 0xC966, - 33967 - 11905: 0xD8E1, - 33968 - 11905: 0xC967, - 33969 - 11905: 0xC968, - 33970 - 11905: 0xC6D1, - 33971 - 11905: 0xC969, - 33972 - 11905: 0xDDF4, - 33973 - 11905: 0xC96A, - 33974 - 11905: 0xC96B, - 33975 - 11905: 0xC96C, - 33976 - 11905: 0xD5F4, - 33977 - 11905: 0xDDF3, - 33978 - 11905: 0xDDF0, - 33979 - 11905: 0xC96D, - 33980 - 11905: 0xC96E, - 33981 - 11905: 0xDDEC, - 33982 - 11905: 0xC96F, - 33983 - 11905: 0xDDEF, - 33984 - 11905: 0xC970, - 33985 - 11905: 0xDDE8, - 33986 - 11905: 0xC971, - 33987 - 11905: 0xC972, - 33988 - 11905: 0xD0EE, - 33989 - 11905: 0xC973, - 33990 - 11905: 0xC974, - 33991 - 11905: 0xC975, - 33992 - 11905: 0xC976, - 33993 - 11905: 0xC8D8, - 33994 - 11905: 0xDDEE, - 33995 - 11905: 0xC977, - 33996 - 11905: 0xC978, - 33997 - 11905: 0xDDE9, - 33998 - 11905: 0xC979, - 33999 - 11905: 0xC97A, - 34000 - 11905: 0xDDEA, - 34001 - 11905: 0xCBF2, - 34002 - 11905: 0xC97B, - 34003 - 11905: 0xDDED, - 34004 - 11905: 0xC97C, - 34005 - 11905: 0xC97D, - 34006 - 11905: 0xB1CD, - 34007 - 11905: 0xC97E, - 34008 - 11905: 0xC980, - 34009 - 11905: 0xC981, - 34010 - 11905: 0xC982, - 34011 - 11905: 0xC983, - 34012 - 11905: 0xC984, - 34013 - 11905: 0xC0B6, - 34014 - 11905: 0xC985, - 34015 - 11905: 0xBCBB, - 34016 - 11905: 0xDDF1, - 34017 - 11905: 0xC986, - 34018 - 11905: 0xC987, - 34019 - 11905: 0xDDF7, - 34020 - 11905: 0xC988, - 34021 - 11905: 0xDDF6, - 34022 - 11905: 0xDDEB, - 34023 - 11905: 0xC989, - 34024 - 11905: 0xC98A, - 34025 - 11905: 0xC98B, - 34026 - 11905: 0xC98C, - 34027 - 11905: 0xC98D, - 34028 - 11905: 0xC5EE, - 34029 - 11905: 0xC98E, - 34030 - 11905: 0xC98F, - 34031 - 11905: 0xC990, - 34032 - 11905: 0xDDFB, - 34033 - 11905: 0xC991, - 34034 - 11905: 0xC992, - 34035 - 11905: 0xC993, - 34036 - 11905: 0xC994, - 34037 - 11905: 0xC995, - 34038 - 11905: 0xC996, - 34039 - 11905: 0xC997, - 34040 - 11905: 0xC998, - 34041 - 11905: 0xC999, - 34042 - 11905: 0xC99A, - 34043 - 11905: 0xC99B, - 34044 - 11905: 0xDEA4, - 34045 - 11905: 0xC99C, - 34046 - 11905: 0xC99D, - 34047 - 11905: 0xDEA3, - 34048 - 11905: 0xC99E, - 34049 - 11905: 0xC99F, - 34050 - 11905: 0xC9A0, - 34051 - 11905: 0xCA40, - 34052 - 11905: 0xCA41, - 34053 - 11905: 0xCA42, - 34054 - 11905: 0xCA43, - 34055 - 11905: 0xCA44, - 34056 - 11905: 0xCA45, - 34057 - 11905: 0xCA46, - 34058 - 11905: 0xCA47, - 34059 - 11905: 0xCA48, - 34060 - 11905: 0xDDF8, - 34061 - 11905: 0xCA49, - 34062 - 11905: 0xCA4A, - 34063 - 11905: 0xCA4B, - 34064 - 11905: 0xCA4C, - 34065 - 11905: 0xC3EF, - 34066 - 11905: 0xCA4D, - 34067 - 11905: 0xC2FB, - 34068 - 11905: 0xCA4E, - 34069 - 11905: 0xCA4F, - 34070 - 11905: 0xCA50, - 34071 - 11905: 0xD5E1, - 34072 - 11905: 0xCA51, - 34073 - 11905: 0xCA52, - 34074 - 11905: 0xCEB5, - 34075 - 11905: 0xCA53, - 34076 - 11905: 0xCA54, - 34077 - 11905: 0xCA55, - 34078 - 11905: 0xCA56, - 34079 - 11905: 0xDDFD, - 34080 - 11905: 0xCA57, - 34081 - 11905: 0xB2CC, - 34082 - 11905: 0xCA58, - 34083 - 11905: 0xCA59, - 34084 - 11905: 0xCA5A, - 34085 - 11905: 0xCA5B, - 34086 - 11905: 0xCA5C, - 34087 - 11905: 0xCA5D, - 34088 - 11905: 0xCA5E, - 34089 - 11905: 0xCA5F, - 34090 - 11905: 0xCA60, - 34091 - 11905: 0xC4E8, - 34092 - 11905: 0xCADF, - 34093 - 11905: 0xCA61, - 34094 - 11905: 0xCA62, - 34095 - 11905: 0xCA63, - 34096 - 11905: 0xCA64, - 34097 - 11905: 0xCA65, - 34098 - 11905: 0xCA66, - 34099 - 11905: 0xCA67, - 34100 - 11905: 0xCA68, - 34101 - 11905: 0xCA69, - 34102 - 11905: 0xCA6A, - 34103 - 11905: 0xC7BE, - 34104 - 11905: 0xDDFA, - 34105 - 11905: 0xDDFC, - 34106 - 11905: 0xDDFE, - 34107 - 11905: 0xDEA2, - 34108 - 11905: 0xB0AA, - 34109 - 11905: 0xB1CE, - 34110 - 11905: 0xCA6B, - 34111 - 11905: 0xCA6C, - 34112 - 11905: 0xCA6D, - 34113 - 11905: 0xCA6E, - 34114 - 11905: 0xCA6F, - 34115 - 11905: 0xDEAC, - 34116 - 11905: 0xCA70, - 34117 - 11905: 0xCA71, - 34118 - 11905: 0xCA72, - 34119 - 11905: 0xCA73, - 34120 - 11905: 0xDEA6, - 34121 - 11905: 0xBDB6, - 34122 - 11905: 0xC8EF, - 34123 - 11905: 0xCA74, - 34124 - 11905: 0xCA75, - 34125 - 11905: 0xCA76, - 34126 - 11905: 0xCA77, - 34127 - 11905: 0xCA78, - 34128 - 11905: 0xCA79, - 34129 - 11905: 0xCA7A, - 34130 - 11905: 0xCA7B, - 34131 - 11905: 0xCA7C, - 34132 - 11905: 0xCA7D, - 34133 - 11905: 0xCA7E, - 34134 - 11905: 0xDEA1, - 34135 - 11905: 0xCA80, - 34136 - 11905: 0xCA81, - 34137 - 11905: 0xDEA5, - 34138 - 11905: 0xCA82, - 34139 - 11905: 0xCA83, - 34140 - 11905: 0xCA84, - 34141 - 11905: 0xCA85, - 34142 - 11905: 0xDEA9, - 34143 - 11905: 0xCA86, - 34144 - 11905: 0xCA87, - 34145 - 11905: 0xCA88, - 34146 - 11905: 0xCA89, - 34147 - 11905: 0xCA8A, - 34148 - 11905: 0xDEA8, - 34149 - 11905: 0xCA8B, - 34150 - 11905: 0xCA8C, - 34151 - 11905: 0xCA8D, - 34152 - 11905: 0xDEA7, - 34153 - 11905: 0xCA8E, - 34154 - 11905: 0xCA8F, - 34155 - 11905: 0xCA90, - 34156 - 11905: 0xCA91, - 34157 - 11905: 0xCA92, - 34158 - 11905: 0xCA93, - 34159 - 11905: 0xCA94, - 34160 - 11905: 0xCA95, - 34161 - 11905: 0xCA96, - 34162 - 11905: 0xDEAD, - 34163 - 11905: 0xCA97, - 34164 - 11905: 0xD4CC, - 34165 - 11905: 0xCA98, - 34166 - 11905: 0xCA99, - 34167 - 11905: 0xCA9A, - 34168 - 11905: 0xCA9B, - 34169 - 11905: 0xDEB3, - 34170 - 11905: 0xDEAA, - 34171 - 11905: 0xDEAE, - 34172 - 11905: 0xCA9C, - 34173 - 11905: 0xCA9D, - 34174 - 11905: 0xC0D9, - 34175 - 11905: 0xCA9E, - 34176 - 11905: 0xCA9F, - 34177 - 11905: 0xCAA0, - 34178 - 11905: 0xCB40, - 34179 - 11905: 0xCB41, - 34180 - 11905: 0xB1A1, - 34181 - 11905: 0xDEB6, - 34182 - 11905: 0xCB42, - 34183 - 11905: 0xDEB1, - 34184 - 11905: 0xCB43, - 34185 - 11905: 0xCB44, - 34186 - 11905: 0xCB45, - 34187 - 11905: 0xCB46, - 34188 - 11905: 0xCB47, - 34189 - 11905: 0xCB48, - 34190 - 11905: 0xCB49, - 34191 - 11905: 0xDEB2, - 34192 - 11905: 0xCB4A, - 34193 - 11905: 0xCB4B, - 34194 - 11905: 0xCB4C, - 34195 - 11905: 0xCB4D, - 34196 - 11905: 0xCB4E, - 34197 - 11905: 0xCB4F, - 34198 - 11905: 0xCB50, - 34199 - 11905: 0xCB51, - 34200 - 11905: 0xCB52, - 34201 - 11905: 0xCB53, - 34202 - 11905: 0xCB54, - 34203 - 11905: 0xD1A6, - 34204 - 11905: 0xDEB5, - 34205 - 11905: 0xCB55, - 34206 - 11905: 0xCB56, - 34207 - 11905: 0xCB57, - 34208 - 11905: 0xCB58, - 34209 - 11905: 0xCB59, - 34210 - 11905: 0xCB5A, - 34211 - 11905: 0xCB5B, - 34212 - 11905: 0xDEAF, - 34213 - 11905: 0xCB5C, - 34214 - 11905: 0xCB5D, - 34215 - 11905: 0xCB5E, - 34216 - 11905: 0xDEB0, - 34217 - 11905: 0xCB5F, - 34218 - 11905: 0xD0BD, - 34219 - 11905: 0xCB60, - 34220 - 11905: 0xCB61, - 34221 - 11905: 0xCB62, - 34222 - 11905: 0xDEB4, - 34223 - 11905: 0xCAED, - 34224 - 11905: 0xDEB9, - 34225 - 11905: 0xCB63, - 34226 - 11905: 0xCB64, - 34227 - 11905: 0xCB65, - 34228 - 11905: 0xCB66, - 34229 - 11905: 0xCB67, - 34230 - 11905: 0xCB68, - 34231 - 11905: 0xDEB8, - 34232 - 11905: 0xCB69, - 34233 - 11905: 0xDEB7, - 34234 - 11905: 0xCB6A, - 34235 - 11905: 0xCB6B, - 34236 - 11905: 0xCB6C, - 34237 - 11905: 0xCB6D, - 34238 - 11905: 0xCB6E, - 34239 - 11905: 0xCB6F, - 34240 - 11905: 0xCB70, - 34241 - 11905: 0xDEBB, - 34242 - 11905: 0xCB71, - 34243 - 11905: 0xCB72, - 34244 - 11905: 0xCB73, - 34245 - 11905: 0xCB74, - 34246 - 11905: 0xCB75, - 34247 - 11905: 0xCB76, - 34248 - 11905: 0xCB77, - 34249 - 11905: 0xBDE5, - 34250 - 11905: 0xCB78, - 34251 - 11905: 0xCB79, - 34252 - 11905: 0xCB7A, - 34253 - 11905: 0xCB7B, - 34254 - 11905: 0xCB7C, - 34255 - 11905: 0xB2D8, - 34256 - 11905: 0xC3EA, - 34257 - 11905: 0xCB7D, - 34258 - 11905: 0xCB7E, - 34259 - 11905: 0xDEBA, - 34260 - 11905: 0xCB80, - 34261 - 11905: 0xC5BA, - 34262 - 11905: 0xCB81, - 34263 - 11905: 0xCB82, - 34264 - 11905: 0xCB83, - 34265 - 11905: 0xCB84, - 34266 - 11905: 0xCB85, - 34267 - 11905: 0xCB86, - 34268 - 11905: 0xDEBC, - 34269 - 11905: 0xCB87, - 34270 - 11905: 0xCB88, - 34271 - 11905: 0xCB89, - 34272 - 11905: 0xCB8A, - 34273 - 11905: 0xCB8B, - 34274 - 11905: 0xCB8C, - 34275 - 11905: 0xCB8D, - 34276 - 11905: 0xCCD9, - 34277 - 11905: 0xCB8E, - 34278 - 11905: 0xCB8F, - 34279 - 11905: 0xCB90, - 34280 - 11905: 0xCB91, - 34281 - 11905: 0xB7AA, - 34282 - 11905: 0xCB92, - 34283 - 11905: 0xCB93, - 34284 - 11905: 0xCB94, - 34285 - 11905: 0xCB95, - 34286 - 11905: 0xCB96, - 34287 - 11905: 0xCB97, - 34288 - 11905: 0xCB98, - 34289 - 11905: 0xCB99, - 34290 - 11905: 0xCB9A, - 34291 - 11905: 0xCB9B, - 34292 - 11905: 0xCB9C, - 34293 - 11905: 0xCB9D, - 34294 - 11905: 0xCB9E, - 34295 - 11905: 0xCB9F, - 34296 - 11905: 0xCBA0, - 34297 - 11905: 0xCC40, - 34298 - 11905: 0xCC41, - 34299 - 11905: 0xD4E5, - 34300 - 11905: 0xCC42, - 34301 - 11905: 0xCC43, - 34302 - 11905: 0xCC44, - 34303 - 11905: 0xDEBD, - 34304 - 11905: 0xCC45, - 34305 - 11905: 0xCC46, - 34306 - 11905: 0xCC47, - 34307 - 11905: 0xCC48, - 34308 - 11905: 0xCC49, - 34309 - 11905: 0xDEBF, - 34310 - 11905: 0xCC4A, - 34311 - 11905: 0xCC4B, - 34312 - 11905: 0xCC4C, - 34313 - 11905: 0xCC4D, - 34314 - 11905: 0xCC4E, - 34315 - 11905: 0xCC4F, - 34316 - 11905: 0xCC50, - 34317 - 11905: 0xCC51, - 34318 - 11905: 0xCC52, - 34319 - 11905: 0xCC53, - 34320 - 11905: 0xCC54, - 34321 - 11905: 0xC4A2, - 34322 - 11905: 0xCC55, - 34323 - 11905: 0xCC56, - 34324 - 11905: 0xCC57, - 34325 - 11905: 0xCC58, - 34326 - 11905: 0xDEC1, - 34327 - 11905: 0xCC59, - 34328 - 11905: 0xCC5A, - 34329 - 11905: 0xCC5B, - 34330 - 11905: 0xCC5C, - 34331 - 11905: 0xCC5D, - 34332 - 11905: 0xCC5E, - 34333 - 11905: 0xCC5F, - 34334 - 11905: 0xCC60, - 34335 - 11905: 0xCC61, - 34336 - 11905: 0xCC62, - 34337 - 11905: 0xCC63, - 34338 - 11905: 0xCC64, - 34339 - 11905: 0xCC65, - 34340 - 11905: 0xCC66, - 34341 - 11905: 0xCC67, - 34342 - 11905: 0xCC68, - 34343 - 11905: 0xDEBE, - 34344 - 11905: 0xCC69, - 34345 - 11905: 0xDEC0, - 34346 - 11905: 0xCC6A, - 34347 - 11905: 0xCC6B, - 34348 - 11905: 0xCC6C, - 34349 - 11905: 0xCC6D, - 34350 - 11905: 0xCC6E, - 34351 - 11905: 0xCC6F, - 34352 - 11905: 0xCC70, - 34353 - 11905: 0xCC71, - 34354 - 11905: 0xCC72, - 34355 - 11905: 0xCC73, - 34356 - 11905: 0xCC74, - 34357 - 11905: 0xCC75, - 34358 - 11905: 0xCC76, - 34359 - 11905: 0xCC77, - 34360 - 11905: 0xD5BA, - 34361 - 11905: 0xCC78, - 34362 - 11905: 0xCC79, - 34363 - 11905: 0xCC7A, - 34364 - 11905: 0xDEC2, - 34365 - 11905: 0xCC7B, - 34366 - 11905: 0xCC7C, - 34367 - 11905: 0xCC7D, - 34368 - 11905: 0xCC7E, - 34369 - 11905: 0xCC80, - 34370 - 11905: 0xCC81, - 34371 - 11905: 0xCC82, - 34372 - 11905: 0xCC83, - 34373 - 11905: 0xCC84, - 34374 - 11905: 0xCC85, - 34375 - 11905: 0xCC86, - 34376 - 11905: 0xCC87, - 34377 - 11905: 0xCC88, - 34378 - 11905: 0xCC89, - 34379 - 11905: 0xCC8A, - 34380 - 11905: 0xCC8B, - 34381 - 11905: 0xF2AE, - 34382 - 11905: 0xBBA2, - 34383 - 11905: 0xC2B2, - 34384 - 11905: 0xC5B0, - 34385 - 11905: 0xC2C7, - 34386 - 11905: 0xCC8C, - 34387 - 11905: 0xCC8D, - 34388 - 11905: 0xF2AF, - 34389 - 11905: 0xCC8E, - 34390 - 11905: 0xCC8F, - 34391 - 11905: 0xCC90, - 34392 - 11905: 0xCC91, - 34393 - 11905: 0xCC92, - 34394 - 11905: 0xD0E9, - 34395 - 11905: 0xCC93, - 34396 - 11905: 0xCC94, - 34397 - 11905: 0xCC95, - 34398 - 11905: 0xD3DD, - 34399 - 11905: 0xCC96, - 34400 - 11905: 0xCC97, - 34401 - 11905: 0xCC98, - 34402 - 11905: 0xEBBD, - 34403 - 11905: 0xCC99, - 34404 - 11905: 0xCC9A, - 34405 - 11905: 0xCC9B, - 34406 - 11905: 0xCC9C, - 34407 - 11905: 0xCC9D, - 34408 - 11905: 0xCC9E, - 34409 - 11905: 0xCC9F, - 34410 - 11905: 0xCCA0, - 34411 - 11905: 0xB3E6, - 34412 - 11905: 0xF2B0, - 34413 - 11905: 0xCD40, - 34414 - 11905: 0xF2B1, - 34415 - 11905: 0xCD41, - 34416 - 11905: 0xCD42, - 34417 - 11905: 0xCAAD, - 34418 - 11905: 0xCD43, - 34419 - 11905: 0xCD44, - 34420 - 11905: 0xCD45, - 34421 - 11905: 0xCD46, - 34422 - 11905: 0xCD47, - 34423 - 11905: 0xCD48, - 34424 - 11905: 0xCD49, - 34425 - 11905: 0xBAE7, - 34426 - 11905: 0xF2B3, - 34427 - 11905: 0xF2B5, - 34428 - 11905: 0xF2B4, - 34429 - 11905: 0xCBE4, - 34430 - 11905: 0xCFBA, - 34431 - 11905: 0xF2B2, - 34432 - 11905: 0xCAB4, - 34433 - 11905: 0xD2CF, - 34434 - 11905: 0xC2EC, - 34435 - 11905: 0xCD4A, - 34436 - 11905: 0xCD4B, - 34437 - 11905: 0xCD4C, - 34438 - 11905: 0xCD4D, - 34439 - 11905: 0xCD4E, - 34440 - 11905: 0xCD4F, - 34441 - 11905: 0xCD50, - 34442 - 11905: 0xCEC3, - 34443 - 11905: 0xF2B8, - 34444 - 11905: 0xB0F6, - 34445 - 11905: 0xF2B7, - 34446 - 11905: 0xCD51, - 34447 - 11905: 0xCD52, - 34448 - 11905: 0xCD53, - 34449 - 11905: 0xCD54, - 34450 - 11905: 0xCD55, - 34451 - 11905: 0xF2BE, - 34452 - 11905: 0xCD56, - 34453 - 11905: 0xB2CF, - 34454 - 11905: 0xCD57, - 34455 - 11905: 0xCD58, - 34456 - 11905: 0xCD59, - 34457 - 11905: 0xCD5A, - 34458 - 11905: 0xCD5B, - 34459 - 11905: 0xCD5C, - 34460 - 11905: 0xD1C1, - 34461 - 11905: 0xF2BA, - 34462 - 11905: 0xCD5D, - 34463 - 11905: 0xCD5E, - 34464 - 11905: 0xCD5F, - 34465 - 11905: 0xCD60, - 34466 - 11905: 0xCD61, - 34467 - 11905: 0xF2BC, - 34468 - 11905: 0xD4E9, - 34469 - 11905: 0xCD62, - 34470 - 11905: 0xCD63, - 34471 - 11905: 0xF2BB, - 34472 - 11905: 0xF2B6, - 34473 - 11905: 0xF2BF, - 34474 - 11905: 0xF2BD, - 34475 - 11905: 0xCD64, - 34476 - 11905: 0xF2B9, - 34477 - 11905: 0xCD65, - 34478 - 11905: 0xCD66, - 34479 - 11905: 0xF2C7, - 34480 - 11905: 0xF2C4, - 34481 - 11905: 0xF2C6, - 34482 - 11905: 0xCD67, - 34483 - 11905: 0xCD68, - 34484 - 11905: 0xF2CA, - 34485 - 11905: 0xF2C2, - 34486 - 11905: 0xF2C0, - 34487 - 11905: 0xCD69, - 34488 - 11905: 0xCD6A, - 34489 - 11905: 0xCD6B, - 34490 - 11905: 0xF2C5, - 34491 - 11905: 0xCD6C, - 34492 - 11905: 0xCD6D, - 34493 - 11905: 0xCD6E, - 34494 - 11905: 0xCD6F, - 34495 - 11905: 0xCD70, - 34496 - 11905: 0xD6FB, - 34497 - 11905: 0xCD71, - 34498 - 11905: 0xCD72, - 34499 - 11905: 0xCD73, - 34500 - 11905: 0xF2C1, - 34501 - 11905: 0xCD74, - 34502 - 11905: 0xC7F9, - 34503 - 11905: 0xC9DF, - 34504 - 11905: 0xCD75, - 34505 - 11905: 0xF2C8, - 34506 - 11905: 0xB9C6, - 34507 - 11905: 0xB5B0, - 34508 - 11905: 0xCD76, - 34509 - 11905: 0xCD77, - 34510 - 11905: 0xF2C3, - 34511 - 11905: 0xF2C9, - 34512 - 11905: 0xF2D0, - 34513 - 11905: 0xF2D6, - 34514 - 11905: 0xCD78, - 34515 - 11905: 0xCD79, - 34516 - 11905: 0xBBD7, - 34517 - 11905: 0xCD7A, - 34518 - 11905: 0xCD7B, - 34519 - 11905: 0xCD7C, - 34520 - 11905: 0xF2D5, - 34521 - 11905: 0xCDDC, - 34522 - 11905: 0xCD7D, - 34523 - 11905: 0xD6EB, - 34524 - 11905: 0xCD7E, - 34525 - 11905: 0xCD80, - 34526 - 11905: 0xF2D2, - 34527 - 11905: 0xF2D4, - 34528 - 11905: 0xCD81, - 34529 - 11905: 0xCD82, - 34530 - 11905: 0xCD83, - 34531 - 11905: 0xCD84, - 34532 - 11905: 0xB8F2, - 34533 - 11905: 0xCD85, - 34534 - 11905: 0xCD86, - 34535 - 11905: 0xCD87, - 34536 - 11905: 0xCD88, - 34537 - 11905: 0xF2CB, - 34538 - 11905: 0xCD89, - 34539 - 11905: 0xCD8A, - 34540 - 11905: 0xCD8B, - 34541 - 11905: 0xF2CE, - 34542 - 11905: 0xC2F9, - 34543 - 11905: 0xCD8C, - 34544 - 11905: 0xD5DD, - 34545 - 11905: 0xF2CC, - 34546 - 11905: 0xF2CD, - 34547 - 11905: 0xF2CF, - 34548 - 11905: 0xF2D3, - 34549 - 11905: 0xCD8D, - 34550 - 11905: 0xCD8E, - 34551 - 11905: 0xCD8F, - 34552 - 11905: 0xF2D9, - 34553 - 11905: 0xD3BC, - 34554 - 11905: 0xCD90, - 34555 - 11905: 0xCD91, - 34556 - 11905: 0xCD92, - 34557 - 11905: 0xCD93, - 34558 - 11905: 0xB6EA, - 34559 - 11905: 0xCD94, - 34560 - 11905: 0xCAF1, - 34561 - 11905: 0xCD95, - 34562 - 11905: 0xB7E4, - 34563 - 11905: 0xF2D7, - 34564 - 11905: 0xCD96, - 34565 - 11905: 0xCD97, - 34566 - 11905: 0xCD98, - 34567 - 11905: 0xF2D8, - 34568 - 11905: 0xF2DA, - 34569 - 11905: 0xF2DD, - 34570 - 11905: 0xF2DB, - 34571 - 11905: 0xCD99, - 34572 - 11905: 0xCD9A, - 34573 - 11905: 0xF2DC, - 34574 - 11905: 0xCD9B, - 34575 - 11905: 0xCD9C, - 34576 - 11905: 0xCD9D, - 34577 - 11905: 0xCD9E, - 34578 - 11905: 0xD1D1, - 34579 - 11905: 0xF2D1, - 34580 - 11905: 0xCD9F, - 34581 - 11905: 0xCDC9, - 34582 - 11905: 0xCDA0, - 34583 - 11905: 0xCECF, - 34584 - 11905: 0xD6A9, - 34585 - 11905: 0xCE40, - 34586 - 11905: 0xF2E3, - 34587 - 11905: 0xCE41, - 34588 - 11905: 0xC3DB, - 34589 - 11905: 0xCE42, - 34590 - 11905: 0xF2E0, - 34591 - 11905: 0xCE43, - 34592 - 11905: 0xCE44, - 34593 - 11905: 0xC0AF, - 34594 - 11905: 0xF2EC, - 34595 - 11905: 0xF2DE, - 34596 - 11905: 0xCE45, - 34597 - 11905: 0xF2E1, - 34598 - 11905: 0xCE46, - 34599 - 11905: 0xCE47, - 34600 - 11905: 0xCE48, - 34601 - 11905: 0xF2E8, - 34602 - 11905: 0xCE49, - 34603 - 11905: 0xCE4A, - 34604 - 11905: 0xCE4B, - 34605 - 11905: 0xCE4C, - 34606 - 11905: 0xF2E2, - 34607 - 11905: 0xCE4D, - 34608 - 11905: 0xCE4E, - 34609 - 11905: 0xF2E7, - 34610 - 11905: 0xCE4F, - 34611 - 11905: 0xCE50, - 34612 - 11905: 0xF2E6, - 34613 - 11905: 0xCE51, - 34614 - 11905: 0xCE52, - 34615 - 11905: 0xF2E9, - 34616 - 11905: 0xCE53, - 34617 - 11905: 0xCE54, - 34618 - 11905: 0xCE55, - 34619 - 11905: 0xF2DF, - 34620 - 11905: 0xCE56, - 34621 - 11905: 0xCE57, - 34622 - 11905: 0xF2E4, - 34623 - 11905: 0xF2EA, - 34624 - 11905: 0xCE58, - 34625 - 11905: 0xCE59, - 34626 - 11905: 0xCE5A, - 34627 - 11905: 0xCE5B, - 34628 - 11905: 0xCE5C, - 34629 - 11905: 0xCE5D, - 34630 - 11905: 0xCE5E, - 34631 - 11905: 0xD3AC, - 34632 - 11905: 0xF2E5, - 34633 - 11905: 0xB2F5, - 34634 - 11905: 0xCE5F, - 34635 - 11905: 0xCE60, - 34636 - 11905: 0xF2F2, - 34637 - 11905: 0xCE61, - 34638 - 11905: 0xD0AB, - 34639 - 11905: 0xCE62, - 34640 - 11905: 0xCE63, - 34641 - 11905: 0xCE64, - 34642 - 11905: 0xCE65, - 34643 - 11905: 0xF2F5, - 34644 - 11905: 0xCE66, - 34645 - 11905: 0xCE67, - 34646 - 11905: 0xCE68, - 34647 - 11905: 0xBBC8, - 34648 - 11905: 0xCE69, - 34649 - 11905: 0xF2F9, - 34650 - 11905: 0xCE6A, - 34651 - 11905: 0xCE6B, - 34652 - 11905: 0xCE6C, - 34653 - 11905: 0xCE6D, - 34654 - 11905: 0xCE6E, - 34655 - 11905: 0xCE6F, - 34656 - 11905: 0xF2F0, - 34657 - 11905: 0xCE70, - 34658 - 11905: 0xCE71, - 34659 - 11905: 0xF2F6, - 34660 - 11905: 0xF2F8, - 34661 - 11905: 0xF2FA, - 34662 - 11905: 0xCE72, - 34663 - 11905: 0xCE73, - 34664 - 11905: 0xCE74, - 34665 - 11905: 0xCE75, - 34666 - 11905: 0xCE76, - 34667 - 11905: 0xCE77, - 34668 - 11905: 0xCE78, - 34669 - 11905: 0xCE79, - 34670 - 11905: 0xF2F3, - 34671 - 11905: 0xCE7A, - 34672 - 11905: 0xF2F1, - 34673 - 11905: 0xCE7B, - 34674 - 11905: 0xCE7C, - 34675 - 11905: 0xCE7D, - 34676 - 11905: 0xBAFB, - 34677 - 11905: 0xCE7E, - 34678 - 11905: 0xB5FB, - 34679 - 11905: 0xCE80, - 34680 - 11905: 0xCE81, - 34681 - 11905: 0xCE82, - 34682 - 11905: 0xCE83, - 34683 - 11905: 0xF2EF, - 34684 - 11905: 0xF2F7, - 34685 - 11905: 0xF2ED, - 34686 - 11905: 0xF2EE, - 34687 - 11905: 0xCE84, - 34688 - 11905: 0xCE85, - 34689 - 11905: 0xCE86, - 34690 - 11905: 0xF2EB, - 34691 - 11905: 0xF3A6, - 34692 - 11905: 0xCE87, - 34693 - 11905: 0xF3A3, - 34694 - 11905: 0xCE88, - 34695 - 11905: 0xCE89, - 34696 - 11905: 0xF3A2, - 34697 - 11905: 0xCE8A, - 34698 - 11905: 0xCE8B, - 34699 - 11905: 0xF2F4, - 34700 - 11905: 0xCE8C, - 34701 - 11905: 0xC8DA, - 34702 - 11905: 0xCE8D, - 34703 - 11905: 0xCE8E, - 34704 - 11905: 0xCE8F, - 34705 - 11905: 0xCE90, - 34706 - 11905: 0xCE91, - 34707 - 11905: 0xF2FB, - 34708 - 11905: 0xCE92, - 34709 - 11905: 0xCE93, - 34710 - 11905: 0xCE94, - 34711 - 11905: 0xF3A5, - 34712 - 11905: 0xCE95, - 34713 - 11905: 0xCE96, - 34714 - 11905: 0xCE97, - 34715 - 11905: 0xCE98, - 34716 - 11905: 0xCE99, - 34717 - 11905: 0xCE9A, - 34718 - 11905: 0xCE9B, - 34719 - 11905: 0xC3F8, - 34720 - 11905: 0xCE9C, - 34721 - 11905: 0xCE9D, - 34722 - 11905: 0xCE9E, - 34723 - 11905: 0xCE9F, - 34724 - 11905: 0xCEA0, - 34725 - 11905: 0xCF40, - 34726 - 11905: 0xCF41, - 34727 - 11905: 0xCF42, - 34728 - 11905: 0xF2FD, - 34729 - 11905: 0xCF43, - 34730 - 11905: 0xCF44, - 34731 - 11905: 0xF3A7, - 34732 - 11905: 0xF3A9, - 34733 - 11905: 0xF3A4, - 34734 - 11905: 0xCF45, - 34735 - 11905: 0xF2FC, - 34736 - 11905: 0xCF46, - 34737 - 11905: 0xCF47, - 34738 - 11905: 0xCF48, - 34739 - 11905: 0xF3AB, - 34740 - 11905: 0xCF49, - 34741 - 11905: 0xF3AA, - 34742 - 11905: 0xCF4A, - 34743 - 11905: 0xCF4B, - 34744 - 11905: 0xCF4C, - 34745 - 11905: 0xCF4D, - 34746 - 11905: 0xC2DD, - 34747 - 11905: 0xCF4E, - 34748 - 11905: 0xCF4F, - 34749 - 11905: 0xF3AE, - 34750 - 11905: 0xCF50, - 34751 - 11905: 0xCF51, - 34752 - 11905: 0xF3B0, - 34753 - 11905: 0xCF52, - 34754 - 11905: 0xCF53, - 34755 - 11905: 0xCF54, - 34756 - 11905: 0xCF55, - 34757 - 11905: 0xCF56, - 34758 - 11905: 0xF3A1, - 34759 - 11905: 0xCF57, - 34760 - 11905: 0xCF58, - 34761 - 11905: 0xCF59, - 34762 - 11905: 0xF3B1, - 34763 - 11905: 0xF3AC, - 34764 - 11905: 0xCF5A, - 34765 - 11905: 0xCF5B, - 34766 - 11905: 0xCF5C, - 34767 - 11905: 0xCF5D, - 34768 - 11905: 0xCF5E, - 34769 - 11905: 0xF3AF, - 34770 - 11905: 0xF2FE, - 34771 - 11905: 0xF3AD, - 34772 - 11905: 0xCF5F, - 34773 - 11905: 0xCF60, - 34774 - 11905: 0xCF61, - 34775 - 11905: 0xCF62, - 34776 - 11905: 0xCF63, - 34777 - 11905: 0xCF64, - 34778 - 11905: 0xCF65, - 34779 - 11905: 0xF3B2, - 34780 - 11905: 0xCF66, - 34781 - 11905: 0xCF67, - 34782 - 11905: 0xCF68, - 34783 - 11905: 0xCF69, - 34784 - 11905: 0xF3B4, - 34785 - 11905: 0xCF6A, - 34786 - 11905: 0xCF6B, - 34787 - 11905: 0xCF6C, - 34788 - 11905: 0xCF6D, - 34789 - 11905: 0xF3A8, - 34790 - 11905: 0xCF6E, - 34791 - 11905: 0xCF6F, - 34792 - 11905: 0xCF70, - 34793 - 11905: 0xCF71, - 34794 - 11905: 0xF3B3, - 34795 - 11905: 0xCF72, - 34796 - 11905: 0xCF73, - 34797 - 11905: 0xCF74, - 34798 - 11905: 0xF3B5, - 34799 - 11905: 0xCF75, - 34800 - 11905: 0xCF76, - 34801 - 11905: 0xCF77, - 34802 - 11905: 0xCF78, - 34803 - 11905: 0xCF79, - 34804 - 11905: 0xCF7A, - 34805 - 11905: 0xCF7B, - 34806 - 11905: 0xCF7C, - 34807 - 11905: 0xCF7D, - 34808 - 11905: 0xCF7E, - 34809 - 11905: 0xD0B7, - 34810 - 11905: 0xCF80, - 34811 - 11905: 0xCF81, - 34812 - 11905: 0xCF82, - 34813 - 11905: 0xCF83, - 34814 - 11905: 0xF3B8, - 34815 - 11905: 0xCF84, - 34816 - 11905: 0xCF85, - 34817 - 11905: 0xCF86, - 34818 - 11905: 0xCF87, - 34819 - 11905: 0xD9F9, - 34820 - 11905: 0xCF88, - 34821 - 11905: 0xCF89, - 34822 - 11905: 0xCF8A, - 34823 - 11905: 0xCF8B, - 34824 - 11905: 0xCF8C, - 34825 - 11905: 0xCF8D, - 34826 - 11905: 0xF3B9, - 34827 - 11905: 0xCF8E, - 34828 - 11905: 0xCF8F, - 34829 - 11905: 0xCF90, - 34830 - 11905: 0xCF91, - 34831 - 11905: 0xCF92, - 34832 - 11905: 0xCF93, - 34833 - 11905: 0xCF94, - 34834 - 11905: 0xCF95, - 34835 - 11905: 0xF3B7, - 34836 - 11905: 0xCF96, - 34837 - 11905: 0xC8E4, - 34838 - 11905: 0xF3B6, - 34839 - 11905: 0xCF97, - 34840 - 11905: 0xCF98, - 34841 - 11905: 0xCF99, - 34842 - 11905: 0xCF9A, - 34843 - 11905: 0xF3BA, - 34844 - 11905: 0xCF9B, - 34845 - 11905: 0xCF9C, - 34846 - 11905: 0xCF9D, - 34847 - 11905: 0xCF9E, - 34848 - 11905: 0xCF9F, - 34849 - 11905: 0xF3BB, - 34850 - 11905: 0xB4C0, - 34851 - 11905: 0xCFA0, - 34852 - 11905: 0xD040, - 34853 - 11905: 0xD041, - 34854 - 11905: 0xD042, - 34855 - 11905: 0xD043, - 34856 - 11905: 0xD044, - 34857 - 11905: 0xD045, - 34858 - 11905: 0xD046, - 34859 - 11905: 0xD047, - 34860 - 11905: 0xD048, - 34861 - 11905: 0xD049, - 34862 - 11905: 0xD04A, - 34863 - 11905: 0xD04B, - 34864 - 11905: 0xD04C, - 34865 - 11905: 0xD04D, - 34866 - 11905: 0xEEC3, - 34867 - 11905: 0xD04E, - 34868 - 11905: 0xD04F, - 34869 - 11905: 0xD050, - 34870 - 11905: 0xD051, - 34871 - 11905: 0xD052, - 34872 - 11905: 0xD053, - 34873 - 11905: 0xF3BC, - 34874 - 11905: 0xD054, - 34875 - 11905: 0xD055, - 34876 - 11905: 0xF3BD, - 34877 - 11905: 0xD056, - 34878 - 11905: 0xD057, - 34879 - 11905: 0xD058, - 34880 - 11905: 0xD1AA, - 34881 - 11905: 0xD059, - 34882 - 11905: 0xD05A, - 34883 - 11905: 0xD05B, - 34884 - 11905: 0xF4AC, - 34885 - 11905: 0xD0C6, - 34886 - 11905: 0xD05C, - 34887 - 11905: 0xD05D, - 34888 - 11905: 0xD05E, - 34889 - 11905: 0xD05F, - 34890 - 11905: 0xD060, - 34891 - 11905: 0xD061, - 34892 - 11905: 0xD0D0, - 34893 - 11905: 0xD1DC, - 34894 - 11905: 0xD062, - 34895 - 11905: 0xD063, - 34896 - 11905: 0xD064, - 34897 - 11905: 0xD065, - 34898 - 11905: 0xD066, - 34899 - 11905: 0xD067, - 34900 - 11905: 0xCFCE, - 34901 - 11905: 0xD068, - 34902 - 11905: 0xD069, - 34903 - 11905: 0xBDD6, - 34904 - 11905: 0xD06A, - 34905 - 11905: 0xD1C3, - 34906 - 11905: 0xD06B, - 34907 - 11905: 0xD06C, - 34908 - 11905: 0xD06D, - 34909 - 11905: 0xD06E, - 34910 - 11905: 0xD06F, - 34911 - 11905: 0xD070, - 34912 - 11905: 0xD071, - 34913 - 11905: 0xBAE2, - 34914 - 11905: 0xE1E9, - 34915 - 11905: 0xD2C2, - 34916 - 11905: 0xF1C2, - 34917 - 11905: 0xB2B9, - 34918 - 11905: 0xD072, - 34919 - 11905: 0xD073, - 34920 - 11905: 0xB1ED, - 34921 - 11905: 0xF1C3, - 34922 - 11905: 0xD074, - 34923 - 11905: 0xC9C0, - 34924 - 11905: 0xB3C4, - 34925 - 11905: 0xD075, - 34926 - 11905: 0xD9F2, - 34927 - 11905: 0xD076, - 34928 - 11905: 0xCBA5, - 34929 - 11905: 0xD077, - 34930 - 11905: 0xF1C4, - 34931 - 11905: 0xD078, - 34932 - 11905: 0xD079, - 34933 - 11905: 0xD07A, - 34934 - 11905: 0xD07B, - 34935 - 11905: 0xD6D4, - 34936 - 11905: 0xD07C, - 34937 - 11905: 0xD07D, - 34938 - 11905: 0xD07E, - 34939 - 11905: 0xD080, - 34940 - 11905: 0xD081, - 34941 - 11905: 0xF1C5, - 34942 - 11905: 0xF4C0, - 34943 - 11905: 0xF1C6, - 34944 - 11905: 0xD082, - 34945 - 11905: 0xD4AC, - 34946 - 11905: 0xF1C7, - 34947 - 11905: 0xD083, - 34948 - 11905: 0xB0C0, - 34949 - 11905: 0xF4C1, - 34950 - 11905: 0xD084, - 34951 - 11905: 0xD085, - 34952 - 11905: 0xF4C2, - 34953 - 11905: 0xD086, - 34954 - 11905: 0xD087, - 34955 - 11905: 0xB4FC, - 34956 - 11905: 0xD088, - 34957 - 11905: 0xC5DB, - 34958 - 11905: 0xD089, - 34959 - 11905: 0xD08A, - 34960 - 11905: 0xD08B, - 34961 - 11905: 0xD08C, - 34962 - 11905: 0xCCBB, - 34963 - 11905: 0xD08D, - 34964 - 11905: 0xD08E, - 34965 - 11905: 0xD08F, - 34966 - 11905: 0xD0E4, - 34967 - 11905: 0xD090, - 34968 - 11905: 0xD091, - 34969 - 11905: 0xD092, - 34970 - 11905: 0xD093, - 34971 - 11905: 0xD094, - 34972 - 11905: 0xCDE0, - 34973 - 11905: 0xD095, - 34974 - 11905: 0xD096, - 34975 - 11905: 0xD097, - 34976 - 11905: 0xD098, - 34977 - 11905: 0xD099, - 34978 - 11905: 0xF1C8, - 34979 - 11905: 0xD09A, - 34980 - 11905: 0xD9F3, - 34981 - 11905: 0xD09B, - 34982 - 11905: 0xD09C, - 34983 - 11905: 0xD09D, - 34984 - 11905: 0xD09E, - 34985 - 11905: 0xD09F, - 34986 - 11905: 0xD0A0, - 34987 - 11905: 0xB1BB, - 34988 - 11905: 0xD140, - 34989 - 11905: 0xCFAE, - 34990 - 11905: 0xD141, - 34991 - 11905: 0xD142, - 34992 - 11905: 0xD143, - 34993 - 11905: 0xB8A4, - 34994 - 11905: 0xD144, - 34995 - 11905: 0xD145, - 34996 - 11905: 0xD146, - 34997 - 11905: 0xD147, - 34998 - 11905: 0xD148, - 34999 - 11905: 0xF1CA, - 35000 - 11905: 0xD149, - 35001 - 11905: 0xD14A, - 35002 - 11905: 0xD14B, - 35003 - 11905: 0xD14C, - 35004 - 11905: 0xF1CB, - 35005 - 11905: 0xD14D, - 35006 - 11905: 0xD14E, - 35007 - 11905: 0xD14F, - 35008 - 11905: 0xD150, - 35009 - 11905: 0xB2C3, - 35010 - 11905: 0xC1D1, - 35011 - 11905: 0xD151, - 35012 - 11905: 0xD152, - 35013 - 11905: 0xD7B0, - 35014 - 11905: 0xF1C9, - 35015 - 11905: 0xD153, - 35016 - 11905: 0xD154, - 35017 - 11905: 0xF1CC, - 35018 - 11905: 0xD155, - 35019 - 11905: 0xD156, - 35020 - 11905: 0xD157, - 35021 - 11905: 0xD158, - 35022 - 11905: 0xF1CE, - 35023 - 11905: 0xD159, - 35024 - 11905: 0xD15A, - 35025 - 11905: 0xD15B, - 35026 - 11905: 0xD9F6, - 35027 - 11905: 0xD15C, - 35028 - 11905: 0xD2E1, - 35029 - 11905: 0xD4A3, - 35030 - 11905: 0xD15D, - 35031 - 11905: 0xD15E, - 35032 - 11905: 0xF4C3, - 35033 - 11905: 0xC8B9, - 35034 - 11905: 0xD15F, - 35035 - 11905: 0xD160, - 35036 - 11905: 0xD161, - 35037 - 11905: 0xD162, - 35038 - 11905: 0xD163, - 35039 - 11905: 0xF4C4, - 35040 - 11905: 0xD164, - 35041 - 11905: 0xD165, - 35042 - 11905: 0xF1CD, - 35043 - 11905: 0xF1CF, - 35044 - 11905: 0xBFE3, - 35045 - 11905: 0xF1D0, - 35046 - 11905: 0xD166, - 35047 - 11905: 0xD167, - 35048 - 11905: 0xF1D4, - 35049 - 11905: 0xD168, - 35050 - 11905: 0xD169, - 35051 - 11905: 0xD16A, - 35052 - 11905: 0xD16B, - 35053 - 11905: 0xD16C, - 35054 - 11905: 0xD16D, - 35055 - 11905: 0xD16E, - 35056 - 11905: 0xF1D6, - 35057 - 11905: 0xF1D1, - 35058 - 11905: 0xD16F, - 35059 - 11905: 0xC9D1, - 35060 - 11905: 0xC5E1, - 35061 - 11905: 0xD170, - 35062 - 11905: 0xD171, - 35063 - 11905: 0xD172, - 35064 - 11905: 0xC2E3, - 35065 - 11905: 0xB9FC, - 35066 - 11905: 0xD173, - 35067 - 11905: 0xD174, - 35068 - 11905: 0xF1D3, - 35069 - 11905: 0xD175, - 35070 - 11905: 0xF1D5, - 35071 - 11905: 0xD176, - 35072 - 11905: 0xD177, - 35073 - 11905: 0xD178, - 35074 - 11905: 0xB9D3, - 35075 - 11905: 0xD179, - 35076 - 11905: 0xD17A, - 35077 - 11905: 0xD17B, - 35078 - 11905: 0xD17C, - 35079 - 11905: 0xD17D, - 35080 - 11905: 0xD17E, - 35081 - 11905: 0xD180, - 35082 - 11905: 0xF1DB, - 35083 - 11905: 0xD181, - 35084 - 11905: 0xD182, - 35085 - 11905: 0xD183, - 35086 - 11905: 0xD184, - 35087 - 11905: 0xD185, - 35088 - 11905: 0xBAD6, - 35089 - 11905: 0xD186, - 35090 - 11905: 0xB0FD, - 35091 - 11905: 0xF1D9, - 35092 - 11905: 0xD187, - 35093 - 11905: 0xD188, - 35094 - 11905: 0xD189, - 35095 - 11905: 0xD18A, - 35096 - 11905: 0xD18B, - 35097 - 11905: 0xF1D8, - 35098 - 11905: 0xF1D2, - 35099 - 11905: 0xF1DA, - 35100 - 11905: 0xD18C, - 35101 - 11905: 0xD18D, - 35102 - 11905: 0xD18E, - 35103 - 11905: 0xD18F, - 35104 - 11905: 0xD190, - 35105 - 11905: 0xF1D7, - 35106 - 11905: 0xD191, - 35107 - 11905: 0xD192, - 35108 - 11905: 0xD193, - 35109 - 11905: 0xC8EC, - 35110 - 11905: 0xD194, - 35111 - 11905: 0xD195, - 35112 - 11905: 0xD196, - 35113 - 11905: 0xD197, - 35114 - 11905: 0xCDCA, - 35115 - 11905: 0xF1DD, - 35116 - 11905: 0xD198, - 35117 - 11905: 0xD199, - 35118 - 11905: 0xD19A, - 35119 - 11905: 0xD19B, - 35120 - 11905: 0xE5BD, - 35121 - 11905: 0xD19C, - 35122 - 11905: 0xD19D, - 35123 - 11905: 0xD19E, - 35124 - 11905: 0xF1DC, - 35125 - 11905: 0xD19F, - 35126 - 11905: 0xF1DE, - 35127 - 11905: 0xD1A0, - 35128 - 11905: 0xD240, - 35129 - 11905: 0xD241, - 35130 - 11905: 0xD242, - 35131 - 11905: 0xD243, - 35132 - 11905: 0xD244, - 35133 - 11905: 0xD245, - 35134 - 11905: 0xD246, - 35135 - 11905: 0xD247, - 35136 - 11905: 0xD248, - 35137 - 11905: 0xF1DF, - 35138 - 11905: 0xD249, - 35139 - 11905: 0xD24A, - 35140 - 11905: 0xCFE5, - 35141 - 11905: 0xD24B, - 35142 - 11905: 0xD24C, - 35143 - 11905: 0xD24D, - 35144 - 11905: 0xD24E, - 35145 - 11905: 0xD24F, - 35146 - 11905: 0xD250, - 35147 - 11905: 0xD251, - 35148 - 11905: 0xD252, - 35149 - 11905: 0xD253, - 35150 - 11905: 0xD254, - 35151 - 11905: 0xD255, - 35152 - 11905: 0xD256, - 35153 - 11905: 0xD257, - 35154 - 11905: 0xD258, - 35155 - 11905: 0xD259, - 35156 - 11905: 0xD25A, - 35157 - 11905: 0xD25B, - 35158 - 11905: 0xD25C, - 35159 - 11905: 0xD25D, - 35160 - 11905: 0xD25E, - 35161 - 11905: 0xD25F, - 35162 - 11905: 0xD260, - 35163 - 11905: 0xD261, - 35164 - 11905: 0xD262, - 35165 - 11905: 0xD263, - 35166 - 11905: 0xF4C5, - 35167 - 11905: 0xBDF3, - 35168 - 11905: 0xD264, - 35169 - 11905: 0xD265, - 35170 - 11905: 0xD266, - 35171 - 11905: 0xD267, - 35172 - 11905: 0xD268, - 35173 - 11905: 0xD269, - 35174 - 11905: 0xF1E0, - 35175 - 11905: 0xD26A, - 35176 - 11905: 0xD26B, - 35177 - 11905: 0xD26C, - 35178 - 11905: 0xD26D, - 35179 - 11905: 0xD26E, - 35180 - 11905: 0xD26F, - 35181 - 11905: 0xD270, - 35182 - 11905: 0xD271, - 35183 - 11905: 0xD272, - 35184 - 11905: 0xD273, - 35185 - 11905: 0xD274, - 35186 - 11905: 0xD275, - 35187 - 11905: 0xD276, - 35188 - 11905: 0xD277, - 35189 - 11905: 0xD278, - 35190 - 11905: 0xD279, - 35191 - 11905: 0xD27A, - 35192 - 11905: 0xD27B, - 35193 - 11905: 0xD27C, - 35194 - 11905: 0xD27D, - 35195 - 11905: 0xF1E1, - 35196 - 11905: 0xD27E, - 35197 - 11905: 0xD280, - 35198 - 11905: 0xD281, - 35199 - 11905: 0xCEF7, - 35200 - 11905: 0xD282, - 35201 - 11905: 0xD2AA, - 35202 - 11905: 0xD283, - 35203 - 11905: 0xF1FB, - 35204 - 11905: 0xD284, - 35205 - 11905: 0xD285, - 35206 - 11905: 0xB8B2, - 35207 - 11905: 0xD286, - 35208 - 11905: 0xD287, - 35209 - 11905: 0xD288, - 35210 - 11905: 0xD289, - 35211 - 11905: 0xD28A, - 35212 - 11905: 0xD28B, - 35213 - 11905: 0xD28C, - 35214 - 11905: 0xD28D, - 35215 - 11905: 0xD28E, - 35216 - 11905: 0xD28F, - 35217 - 11905: 0xD290, - 35218 - 11905: 0xD291, - 35219 - 11905: 0xD292, - 35220 - 11905: 0xD293, - 35221 - 11905: 0xD294, - 35222 - 11905: 0xD295, - 35223 - 11905: 0xD296, - 35224 - 11905: 0xD297, - 35225 - 11905: 0xD298, - 35226 - 11905: 0xD299, - 35227 - 11905: 0xD29A, - 35228 - 11905: 0xD29B, - 35229 - 11905: 0xD29C, - 35230 - 11905: 0xD29D, - 35231 - 11905: 0xD29E, - 35232 - 11905: 0xD29F, - 35233 - 11905: 0xD2A0, - 35234 - 11905: 0xD340, - 35235 - 11905: 0xD341, - 35236 - 11905: 0xD342, - 35237 - 11905: 0xD343, - 35238 - 11905: 0xD344, - 35239 - 11905: 0xD345, - 35240 - 11905: 0xD346, - 35241 - 11905: 0xD347, - 35242 - 11905: 0xD348, - 35243 - 11905: 0xD349, - 35244 - 11905: 0xD34A, - 35245 - 11905: 0xD34B, - 35246 - 11905: 0xD34C, - 35247 - 11905: 0xD34D, - 35248 - 11905: 0xD34E, - 35249 - 11905: 0xD34F, - 35250 - 11905: 0xD350, - 35251 - 11905: 0xD351, - 35252 - 11905: 0xD352, - 35253 - 11905: 0xD353, - 35254 - 11905: 0xD354, - 35255 - 11905: 0xD355, - 35256 - 11905: 0xD356, - 35257 - 11905: 0xD357, - 35258 - 11905: 0xD358, - 35259 - 11905: 0xD359, - 35260 - 11905: 0xD35A, - 35261 - 11905: 0xD35B, - 35262 - 11905: 0xD35C, - 35263 - 11905: 0xD35D, - 35264 - 11905: 0xD35E, - 35265 - 11905: 0xBCFB, - 35266 - 11905: 0xB9DB, - 35267 - 11905: 0xD35F, - 35268 - 11905: 0xB9E6, - 35269 - 11905: 0xC3D9, - 35270 - 11905: 0xCAD3, - 35271 - 11905: 0xEAE8, - 35272 - 11905: 0xC0C0, - 35273 - 11905: 0xBEF5, - 35274 - 11905: 0xEAE9, - 35275 - 11905: 0xEAEA, - 35276 - 11905: 0xEAEB, - 35277 - 11905: 0xD360, - 35278 - 11905: 0xEAEC, - 35279 - 11905: 0xEAED, - 35280 - 11905: 0xEAEE, - 35281 - 11905: 0xEAEF, - 35282 - 11905: 0xBDC7, - 35283 - 11905: 0xD361, - 35284 - 11905: 0xD362, - 35285 - 11905: 0xD363, - 35286 - 11905: 0xF5FB, - 35287 - 11905: 0xD364, - 35288 - 11905: 0xD365, - 35289 - 11905: 0xD366, - 35290 - 11905: 0xF5FD, - 35291 - 11905: 0xD367, - 35292 - 11905: 0xF5FE, - 35293 - 11905: 0xD368, - 35294 - 11905: 0xF5FC, - 35295 - 11905: 0xD369, - 35296 - 11905: 0xD36A, - 35297 - 11905: 0xD36B, - 35298 - 11905: 0xD36C, - 35299 - 11905: 0xBDE2, - 35300 - 11905: 0xD36D, - 35301 - 11905: 0xF6A1, - 35302 - 11905: 0xB4A5, - 35303 - 11905: 0xD36E, - 35304 - 11905: 0xD36F, - 35305 - 11905: 0xD370, - 35306 - 11905: 0xD371, - 35307 - 11905: 0xF6A2, - 35308 - 11905: 0xD372, - 35309 - 11905: 0xD373, - 35310 - 11905: 0xD374, - 35311 - 11905: 0xF6A3, - 35312 - 11905: 0xD375, - 35313 - 11905: 0xD376, - 35314 - 11905: 0xD377, - 35315 - 11905: 0xECB2, - 35316 - 11905: 0xD378, - 35317 - 11905: 0xD379, - 35318 - 11905: 0xD37A, - 35319 - 11905: 0xD37B, - 35320 - 11905: 0xD37C, - 35321 - 11905: 0xD37D, - 35322 - 11905: 0xD37E, - 35323 - 11905: 0xD380, - 35324 - 11905: 0xD381, - 35325 - 11905: 0xD382, - 35326 - 11905: 0xD383, - 35327 - 11905: 0xD384, - 35328 - 11905: 0xD1D4, - 35329 - 11905: 0xD385, - 35330 - 11905: 0xD386, - 35331 - 11905: 0xD387, - 35332 - 11905: 0xD388, - 35333 - 11905: 0xD389, - 35334 - 11905: 0xD38A, - 35335 - 11905: 0xD9EA, - 35336 - 11905: 0xD38B, - 35337 - 11905: 0xD38C, - 35338 - 11905: 0xD38D, - 35339 - 11905: 0xD38E, - 35340 - 11905: 0xD38F, - 35341 - 11905: 0xD390, - 35342 - 11905: 0xD391, - 35343 - 11905: 0xD392, - 35344 - 11905: 0xD393, - 35345 - 11905: 0xD394, - 35346 - 11905: 0xD395, - 35347 - 11905: 0xD396, - 35348 - 11905: 0xD397, - 35349 - 11905: 0xD398, - 35350 - 11905: 0xD399, - 35351 - 11905: 0xD39A, - 35352 - 11905: 0xD39B, - 35353 - 11905: 0xD39C, - 35354 - 11905: 0xD39D, - 35355 - 11905: 0xD39E, - 35356 - 11905: 0xD39F, - 35357 - 11905: 0xD3A0, - 35358 - 11905: 0xD440, - 35359 - 11905: 0xD441, - 35360 - 11905: 0xD442, - 35361 - 11905: 0xD443, - 35362 - 11905: 0xD444, - 35363 - 11905: 0xD445, - 35364 - 11905: 0xD446, - 35365 - 11905: 0xD447, - 35366 - 11905: 0xD448, - 35367 - 11905: 0xD449, - 35368 - 11905: 0xD44A, - 35369 - 11905: 0xD44B, - 35370 - 11905: 0xD44C, - 35371 - 11905: 0xD44D, - 35372 - 11905: 0xD44E, - 35373 - 11905: 0xD44F, - 35374 - 11905: 0xD450, - 35375 - 11905: 0xD451, - 35376 - 11905: 0xD452, - 35377 - 11905: 0xD453, - 35378 - 11905: 0xD454, - 35379 - 11905: 0xD455, - 35380 - 11905: 0xD456, - 35381 - 11905: 0xD457, - 35382 - 11905: 0xD458, - 35383 - 11905: 0xD459, - 35384 - 11905: 0xD45A, - 35385 - 11905: 0xD45B, - 35386 - 11905: 0xD45C, - 35387 - 11905: 0xD45D, - 35388 - 11905: 0xD45E, - 35389 - 11905: 0xD45F, - 35390 - 11905: 0xF6A4, - 35391 - 11905: 0xD460, - 35392 - 11905: 0xD461, - 35393 - 11905: 0xD462, - 35394 - 11905: 0xD463, - 35395 - 11905: 0xD464, - 35396 - 11905: 0xD465, - 35397 - 11905: 0xD466, - 35398 - 11905: 0xD467, - 35399 - 11905: 0xD468, - 35400 - 11905: 0xEEBA, - 35401 - 11905: 0xD469, - 35402 - 11905: 0xD46A, - 35403 - 11905: 0xD46B, - 35404 - 11905: 0xD46C, - 35405 - 11905: 0xD46D, - 35406 - 11905: 0xD46E, - 35407 - 11905: 0xD46F, - 35408 - 11905: 0xD470, - 35409 - 11905: 0xD471, - 35410 - 11905: 0xD472, - 35411 - 11905: 0xD473, - 35412 - 11905: 0xD474, - 35413 - 11905: 0xD475, - 35414 - 11905: 0xD476, - 35415 - 11905: 0xD477, - 35416 - 11905: 0xD478, - 35417 - 11905: 0xD479, - 35418 - 11905: 0xD47A, - 35419 - 11905: 0xD47B, - 35420 - 11905: 0xD47C, - 35421 - 11905: 0xD47D, - 35422 - 11905: 0xD47E, - 35423 - 11905: 0xD480, - 35424 - 11905: 0xD481, - 35425 - 11905: 0xD482, - 35426 - 11905: 0xD483, - 35427 - 11905: 0xD484, - 35428 - 11905: 0xD485, - 35429 - 11905: 0xD486, - 35430 - 11905: 0xD487, - 35431 - 11905: 0xD488, - 35432 - 11905: 0xD489, - 35433 - 11905: 0xD48A, - 35434 - 11905: 0xD48B, - 35435 - 11905: 0xD48C, - 35436 - 11905: 0xD48D, - 35437 - 11905: 0xD48E, - 35438 - 11905: 0xD48F, - 35439 - 11905: 0xD490, - 35440 - 11905: 0xD491, - 35441 - 11905: 0xD492, - 35442 - 11905: 0xD493, - 35443 - 11905: 0xD494, - 35444 - 11905: 0xD495, - 35445 - 11905: 0xD496, - 35446 - 11905: 0xD497, - 35447 - 11905: 0xD498, - 35448 - 11905: 0xD499, - 35449 - 11905: 0xD5B2, - 35450 - 11905: 0xD49A, - 35451 - 11905: 0xD49B, - 35452 - 11905: 0xD49C, - 35453 - 11905: 0xD49D, - 35454 - 11905: 0xD49E, - 35455 - 11905: 0xD49F, - 35456 - 11905: 0xD4A0, - 35457 - 11905: 0xD540, - 35458 - 11905: 0xD541, - 35459 - 11905: 0xD542, - 35460 - 11905: 0xD543, - 35461 - 11905: 0xD544, - 35462 - 11905: 0xD545, - 35463 - 11905: 0xD546, - 35464 - 11905: 0xD547, - 35465 - 11905: 0xD3FE, - 35466 - 11905: 0xCCDC, - 35467 - 11905: 0xD548, - 35468 - 11905: 0xD549, - 35469 - 11905: 0xD54A, - 35470 - 11905: 0xD54B, - 35471 - 11905: 0xD54C, - 35472 - 11905: 0xD54D, - 35473 - 11905: 0xD54E, - 35474 - 11905: 0xD54F, - 35475 - 11905: 0xCAC4, - 35476 - 11905: 0xD550, - 35477 - 11905: 0xD551, - 35478 - 11905: 0xD552, - 35479 - 11905: 0xD553, - 35480 - 11905: 0xD554, - 35481 - 11905: 0xD555, - 35482 - 11905: 0xD556, - 35483 - 11905: 0xD557, - 35484 - 11905: 0xD558, - 35485 - 11905: 0xD559, - 35486 - 11905: 0xD55A, - 35487 - 11905: 0xD55B, - 35488 - 11905: 0xD55C, - 35489 - 11905: 0xD55D, - 35490 - 11905: 0xD55E, - 35491 - 11905: 0xD55F, - 35492 - 11905: 0xD560, - 35493 - 11905: 0xD561, - 35494 - 11905: 0xD562, - 35495 - 11905: 0xD563, - 35496 - 11905: 0xD564, - 35497 - 11905: 0xD565, - 35498 - 11905: 0xD566, - 35499 - 11905: 0xD567, - 35500 - 11905: 0xD568, - 35501 - 11905: 0xD569, - 35502 - 11905: 0xD56A, - 35503 - 11905: 0xD56B, - 35504 - 11905: 0xD56C, - 35505 - 11905: 0xD56D, - 35506 - 11905: 0xD56E, - 35507 - 11905: 0xD56F, - 35508 - 11905: 0xD570, - 35509 - 11905: 0xD571, - 35510 - 11905: 0xD572, - 35511 - 11905: 0xD573, - 35512 - 11905: 0xD574, - 35513 - 11905: 0xD575, - 35514 - 11905: 0xD576, - 35515 - 11905: 0xD577, - 35516 - 11905: 0xD578, - 35517 - 11905: 0xD579, - 35518 - 11905: 0xD57A, - 35519 - 11905: 0xD57B, - 35520 - 11905: 0xD57C, - 35521 - 11905: 0xD57D, - 35522 - 11905: 0xD57E, - 35523 - 11905: 0xD580, - 35524 - 11905: 0xD581, - 35525 - 11905: 0xD582, - 35526 - 11905: 0xD583, - 35527 - 11905: 0xD584, - 35528 - 11905: 0xD585, - 35529 - 11905: 0xD586, - 35530 - 11905: 0xD587, - 35531 - 11905: 0xD588, - 35532 - 11905: 0xD589, - 35533 - 11905: 0xD58A, - 35534 - 11905: 0xD58B, - 35535 - 11905: 0xD58C, - 35536 - 11905: 0xD58D, - 35537 - 11905: 0xD58E, - 35538 - 11905: 0xD58F, - 35539 - 11905: 0xD590, - 35540 - 11905: 0xD591, - 35541 - 11905: 0xD592, - 35542 - 11905: 0xD593, - 35543 - 11905: 0xD594, - 35544 - 11905: 0xD595, - 35545 - 11905: 0xD596, - 35546 - 11905: 0xD597, - 35547 - 11905: 0xD598, - 35548 - 11905: 0xD599, - 35549 - 11905: 0xD59A, - 35550 - 11905: 0xD59B, - 35551 - 11905: 0xD59C, - 35552 - 11905: 0xD59D, - 35553 - 11905: 0xD59E, - 35554 - 11905: 0xD59F, - 35555 - 11905: 0xD5A0, - 35556 - 11905: 0xD640, - 35557 - 11905: 0xD641, - 35558 - 11905: 0xD642, - 35559 - 11905: 0xD643, - 35560 - 11905: 0xD644, - 35561 - 11905: 0xD645, - 35562 - 11905: 0xD646, - 35563 - 11905: 0xD647, - 35564 - 11905: 0xD648, - 35565 - 11905: 0xD649, - 35566 - 11905: 0xD64A, - 35567 - 11905: 0xD64B, - 35568 - 11905: 0xD64C, - 35569 - 11905: 0xD64D, - 35570 - 11905: 0xD64E, - 35571 - 11905: 0xD64F, - 35572 - 11905: 0xD650, - 35573 - 11905: 0xD651, - 35574 - 11905: 0xD652, - 35575 - 11905: 0xD653, - 35576 - 11905: 0xD654, - 35577 - 11905: 0xD655, - 35578 - 11905: 0xD656, - 35579 - 11905: 0xD657, - 35580 - 11905: 0xD658, - 35581 - 11905: 0xD659, - 35582 - 11905: 0xD65A, - 35583 - 11905: 0xD65B, - 35584 - 11905: 0xD65C, - 35585 - 11905: 0xD65D, - 35586 - 11905: 0xD65E, - 35587 - 11905: 0xD65F, - 35588 - 11905: 0xD660, - 35589 - 11905: 0xD661, - 35590 - 11905: 0xD662, - 35591 - 11905: 0xE5C0, - 35592 - 11905: 0xD663, - 35593 - 11905: 0xD664, - 35594 - 11905: 0xD665, - 35595 - 11905: 0xD666, - 35596 - 11905: 0xD667, - 35597 - 11905: 0xD668, - 35598 - 11905: 0xD669, - 35599 - 11905: 0xD66A, - 35600 - 11905: 0xD66B, - 35601 - 11905: 0xD66C, - 35602 - 11905: 0xD66D, - 35603 - 11905: 0xD66E, - 35604 - 11905: 0xD66F, - 35605 - 11905: 0xD670, - 35606 - 11905: 0xD671, - 35607 - 11905: 0xD672, - 35608 - 11905: 0xD673, - 35609 - 11905: 0xD674, - 35610 - 11905: 0xD675, - 35611 - 11905: 0xD676, - 35612 - 11905: 0xD677, - 35613 - 11905: 0xD678, - 35614 - 11905: 0xD679, - 35615 - 11905: 0xD67A, - 35616 - 11905: 0xD67B, - 35617 - 11905: 0xD67C, - 35618 - 11905: 0xD67D, - 35619 - 11905: 0xD67E, - 35620 - 11905: 0xD680, - 35621 - 11905: 0xD681, - 35622 - 11905: 0xF6A5, - 35623 - 11905: 0xD682, - 35624 - 11905: 0xD683, - 35625 - 11905: 0xD684, - 35626 - 11905: 0xD685, - 35627 - 11905: 0xD686, - 35628 - 11905: 0xD687, - 35629 - 11905: 0xD688, - 35630 - 11905: 0xD689, - 35631 - 11905: 0xD68A, - 35632 - 11905: 0xD68B, - 35633 - 11905: 0xD68C, - 35634 - 11905: 0xD68D, - 35635 - 11905: 0xD68E, - 35636 - 11905: 0xD68F, - 35637 - 11905: 0xD690, - 35638 - 11905: 0xD691, - 35639 - 11905: 0xD692, - 35640 - 11905: 0xD693, - 35641 - 11905: 0xD694, - 35642 - 11905: 0xD695, - 35643 - 11905: 0xD696, - 35644 - 11905: 0xD697, - 35645 - 11905: 0xD698, - 35646 - 11905: 0xD699, - 35647 - 11905: 0xD69A, - 35648 - 11905: 0xD69B, - 35649 - 11905: 0xD69C, - 35650 - 11905: 0xD69D, - 35651 - 11905: 0xD69E, - 35652 - 11905: 0xD69F, - 35653 - 11905: 0xD6A0, - 35654 - 11905: 0xD740, - 35655 - 11905: 0xD741, - 35656 - 11905: 0xD742, - 35657 - 11905: 0xD743, - 35658 - 11905: 0xD744, - 35659 - 11905: 0xD745, - 35660 - 11905: 0xD746, - 35661 - 11905: 0xD747, - 35662 - 11905: 0xD748, - 35663 - 11905: 0xD749, - 35664 - 11905: 0xD74A, - 35665 - 11905: 0xD74B, - 35666 - 11905: 0xD74C, - 35667 - 11905: 0xD74D, - 35668 - 11905: 0xD74E, - 35669 - 11905: 0xD74F, - 35670 - 11905: 0xD750, - 35671 - 11905: 0xD751, - 35672 - 11905: 0xD752, - 35673 - 11905: 0xD753, - 35674 - 11905: 0xD754, - 35675 - 11905: 0xD755, - 35676 - 11905: 0xD756, - 35677 - 11905: 0xD757, - 35678 - 11905: 0xD758, - 35679 - 11905: 0xD759, - 35680 - 11905: 0xD75A, - 35681 - 11905: 0xD75B, - 35682 - 11905: 0xD75C, - 35683 - 11905: 0xD75D, - 35684 - 11905: 0xD75E, - 35685 - 11905: 0xD75F, - 35686 - 11905: 0xBEAF, - 35687 - 11905: 0xD760, - 35688 - 11905: 0xD761, - 35689 - 11905: 0xD762, - 35690 - 11905: 0xD763, - 35691 - 11905: 0xD764, - 35692 - 11905: 0xC6A9, - 35693 - 11905: 0xD765, - 35694 - 11905: 0xD766, - 35695 - 11905: 0xD767, - 35696 - 11905: 0xD768, - 35697 - 11905: 0xD769, - 35698 - 11905: 0xD76A, - 35699 - 11905: 0xD76B, - 35700 - 11905: 0xD76C, - 35701 - 11905: 0xD76D, - 35702 - 11905: 0xD76E, - 35703 - 11905: 0xD76F, - 35704 - 11905: 0xD770, - 35705 - 11905: 0xD771, - 35706 - 11905: 0xD772, - 35707 - 11905: 0xD773, - 35708 - 11905: 0xD774, - 35709 - 11905: 0xD775, - 35710 - 11905: 0xD776, - 35711 - 11905: 0xD777, - 35712 - 11905: 0xD778, - 35713 - 11905: 0xD779, - 35714 - 11905: 0xD77A, - 35715 - 11905: 0xD77B, - 35716 - 11905: 0xD77C, - 35717 - 11905: 0xD77D, - 35718 - 11905: 0xD77E, - 35719 - 11905: 0xD780, - 35720 - 11905: 0xD781, - 35721 - 11905: 0xD782, - 35722 - 11905: 0xD783, - 35723 - 11905: 0xD784, - 35724 - 11905: 0xD785, - 35725 - 11905: 0xD786, - 35726 - 11905: 0xD787, - 35727 - 11905: 0xD788, - 35728 - 11905: 0xD789, - 35729 - 11905: 0xD78A, - 35730 - 11905: 0xD78B, - 35731 - 11905: 0xD78C, - 35732 - 11905: 0xD78D, - 35733 - 11905: 0xD78E, - 35734 - 11905: 0xD78F, - 35735 - 11905: 0xD790, - 35736 - 11905: 0xD791, - 35737 - 11905: 0xD792, - 35738 - 11905: 0xD793, - 35739 - 11905: 0xD794, - 35740 - 11905: 0xD795, - 35741 - 11905: 0xD796, - 35742 - 11905: 0xD797, - 35743 - 11905: 0xD798, - 35744 - 11905: 0xDAA5, - 35745 - 11905: 0xBCC6, - 35746 - 11905: 0xB6A9, - 35747 - 11905: 0xB8BC, - 35748 - 11905: 0xC8CF, - 35749 - 11905: 0xBCA5, - 35750 - 11905: 0xDAA6, - 35751 - 11905: 0xDAA7, - 35752 - 11905: 0xCCD6, - 35753 - 11905: 0xC8C3, - 35754 - 11905: 0xDAA8, - 35755 - 11905: 0xC6FD, - 35756 - 11905: 0xD799, - 35757 - 11905: 0xD1B5, - 35758 - 11905: 0xD2E9, - 35759 - 11905: 0xD1B6, - 35760 - 11905: 0xBCC7, - 35761 - 11905: 0xD79A, - 35762 - 11905: 0xBDB2, - 35763 - 11905: 0xBBE4, - 35764 - 11905: 0xDAA9, - 35765 - 11905: 0xDAAA, - 35766 - 11905: 0xD1C8, - 35767 - 11905: 0xDAAB, - 35768 - 11905: 0xD0ED, - 35769 - 11905: 0xB6EF, - 35770 - 11905: 0xC2DB, - 35771 - 11905: 0xD79B, - 35772 - 11905: 0xCBCF, - 35773 - 11905: 0xB7ED, - 35774 - 11905: 0xC9E8, - 35775 - 11905: 0xB7C3, - 35776 - 11905: 0xBEF7, - 35777 - 11905: 0xD6A4, - 35778 - 11905: 0xDAAC, - 35779 - 11905: 0xDAAD, - 35780 - 11905: 0xC6C0, - 35781 - 11905: 0xD7E7, - 35782 - 11905: 0xCAB6, - 35783 - 11905: 0xD79C, - 35784 - 11905: 0xD5A9, - 35785 - 11905: 0xCBDF, - 35786 - 11905: 0xD5EF, - 35787 - 11905: 0xDAAE, - 35788 - 11905: 0xD6DF, - 35789 - 11905: 0xB4CA, - 35790 - 11905: 0xDAB0, - 35791 - 11905: 0xDAAF, - 35792 - 11905: 0xD79D, - 35793 - 11905: 0xD2EB, - 35794 - 11905: 0xDAB1, - 35795 - 11905: 0xDAB2, - 35796 - 11905: 0xDAB3, - 35797 - 11905: 0xCAD4, - 35798 - 11905: 0xDAB4, - 35799 - 11905: 0xCAAB, - 35800 - 11905: 0xDAB5, - 35801 - 11905: 0xDAB6, - 35802 - 11905: 0xB3CF, - 35803 - 11905: 0xD6EF, - 35804 - 11905: 0xDAB7, - 35805 - 11905: 0xBBB0, - 35806 - 11905: 0xB5AE, - 35807 - 11905: 0xDAB8, - 35808 - 11905: 0xDAB9, - 35809 - 11905: 0xB9EE, - 35810 - 11905: 0xD1AF, - 35811 - 11905: 0xD2E8, - 35812 - 11905: 0xDABA, - 35813 - 11905: 0xB8C3, - 35814 - 11905: 0xCFEA, - 35815 - 11905: 0xB2EF, - 35816 - 11905: 0xDABB, - 35817 - 11905: 0xDABC, - 35818 - 11905: 0xD79E, - 35819 - 11905: 0xBDEB, - 35820 - 11905: 0xCEDC, - 35821 - 11905: 0xD3EF, - 35822 - 11905: 0xDABD, - 35823 - 11905: 0xCEF3, - 35824 - 11905: 0xDABE, - 35825 - 11905: 0xD3D5, - 35826 - 11905: 0xBBE5, - 35827 - 11905: 0xDABF, - 35828 - 11905: 0xCBB5, - 35829 - 11905: 0xCBD0, - 35830 - 11905: 0xDAC0, - 35831 - 11905: 0xC7EB, - 35832 - 11905: 0xD6EE, - 35833 - 11905: 0xDAC1, - 35834 - 11905: 0xC5B5, - 35835 - 11905: 0xB6C1, - 35836 - 11905: 0xDAC2, - 35837 - 11905: 0xB7CC, - 35838 - 11905: 0xBFCE, - 35839 - 11905: 0xDAC3, - 35840 - 11905: 0xDAC4, - 35841 - 11905: 0xCBAD, - 35842 - 11905: 0xDAC5, - 35843 - 11905: 0xB5F7, - 35844 - 11905: 0xDAC6, - 35845 - 11905: 0xC1C2, - 35846 - 11905: 0xD7BB, - 35847 - 11905: 0xDAC7, - 35848 - 11905: 0xCCB8, - 35849 - 11905: 0xD79F, - 35850 - 11905: 0xD2EA, - 35851 - 11905: 0xC4B1, - 35852 - 11905: 0xDAC8, - 35853 - 11905: 0xB5FD, - 35854 - 11905: 0xBBD1, - 35855 - 11905: 0xDAC9, - 35856 - 11905: 0xD0B3, - 35857 - 11905: 0xDACA, - 35858 - 11905: 0xDACB, - 35859 - 11905: 0xCEBD, - 35860 - 11905: 0xDACC, - 35861 - 11905: 0xDACD, - 35862 - 11905: 0xDACE, - 35863 - 11905: 0xB2F7, - 35864 - 11905: 0xDAD1, - 35865 - 11905: 0xDACF, - 35866 - 11905: 0xD1E8, - 35867 - 11905: 0xDAD0, - 35868 - 11905: 0xC3D5, - 35869 - 11905: 0xDAD2, - 35870 - 11905: 0xD7A0, - 35871 - 11905: 0xDAD3, - 35872 - 11905: 0xDAD4, - 35873 - 11905: 0xDAD5, - 35874 - 11905: 0xD0BB, - 35875 - 11905: 0xD2A5, - 35876 - 11905: 0xB0F9, - 35877 - 11905: 0xDAD6, - 35878 - 11905: 0xC7AB, - 35879 - 11905: 0xDAD7, - 35880 - 11905: 0xBDF7, - 35881 - 11905: 0xC3A1, - 35882 - 11905: 0xDAD8, - 35883 - 11905: 0xDAD9, - 35884 - 11905: 0xC3FD, - 35885 - 11905: 0xCCB7, - 35886 - 11905: 0xDADA, - 35887 - 11905: 0xDADB, - 35888 - 11905: 0xC0BE, - 35889 - 11905: 0xC6D7, - 35890 - 11905: 0xDADC, - 35891 - 11905: 0xDADD, - 35892 - 11905: 0xC7B4, - 35893 - 11905: 0xDADE, - 35894 - 11905: 0xDADF, - 35895 - 11905: 0xB9C8, - 35896 - 11905: 0xD840, - 35897 - 11905: 0xD841, - 35898 - 11905: 0xD842, - 35899 - 11905: 0xD843, - 35900 - 11905: 0xD844, - 35901 - 11905: 0xD845, - 35902 - 11905: 0xD846, - 35903 - 11905: 0xD847, - 35904 - 11905: 0xD848, - 35905 - 11905: 0xBBED, - 35906 - 11905: 0xD849, - 35907 - 11905: 0xD84A, - 35908 - 11905: 0xD84B, - 35909 - 11905: 0xD84C, - 35910 - 11905: 0xB6B9, - 35911 - 11905: 0xF4F8, - 35912 - 11905: 0xD84D, - 35913 - 11905: 0xF4F9, - 35914 - 11905: 0xD84E, - 35915 - 11905: 0xD84F, - 35916 - 11905: 0xCDE3, - 35917 - 11905: 0xD850, - 35918 - 11905: 0xD851, - 35919 - 11905: 0xD852, - 35920 - 11905: 0xD853, - 35921 - 11905: 0xD854, - 35922 - 11905: 0xD855, - 35923 - 11905: 0xD856, - 35924 - 11905: 0xD857, - 35925 - 11905: 0xF5B9, - 35926 - 11905: 0xD858, - 35927 - 11905: 0xD859, - 35928 - 11905: 0xD85A, - 35929 - 11905: 0xD85B, - 35930 - 11905: 0xEBE0, - 35931 - 11905: 0xD85C, - 35932 - 11905: 0xD85D, - 35933 - 11905: 0xD85E, - 35934 - 11905: 0xD85F, - 35935 - 11905: 0xD860, - 35936 - 11905: 0xD861, - 35937 - 11905: 0xCFF3, - 35938 - 11905: 0xBBBF, - 35939 - 11905: 0xD862, - 35940 - 11905: 0xD863, - 35941 - 11905: 0xD864, - 35942 - 11905: 0xD865, - 35943 - 11905: 0xD866, - 35944 - 11905: 0xD867, - 35945 - 11905: 0xD868, - 35946 - 11905: 0xBAC0, - 35947 - 11905: 0xD4A5, - 35948 - 11905: 0xD869, - 35949 - 11905: 0xD86A, - 35950 - 11905: 0xD86B, - 35951 - 11905: 0xD86C, - 35952 - 11905: 0xD86D, - 35953 - 11905: 0xD86E, - 35954 - 11905: 0xD86F, - 35955 - 11905: 0xE1D9, - 35956 - 11905: 0xD870, - 35957 - 11905: 0xD871, - 35958 - 11905: 0xD872, - 35959 - 11905: 0xD873, - 35960 - 11905: 0xF5F4, - 35961 - 11905: 0xB1AA, - 35962 - 11905: 0xB2F2, - 35963 - 11905: 0xD874, - 35964 - 11905: 0xD875, - 35965 - 11905: 0xD876, - 35966 - 11905: 0xD877, - 35967 - 11905: 0xD878, - 35968 - 11905: 0xD879, - 35969 - 11905: 0xD87A, - 35970 - 11905: 0xF5F5, - 35971 - 11905: 0xD87B, - 35972 - 11905: 0xD87C, - 35973 - 11905: 0xF5F7, - 35974 - 11905: 0xD87D, - 35975 - 11905: 0xD87E, - 35976 - 11905: 0xD880, - 35977 - 11905: 0xBAD1, - 35978 - 11905: 0xF5F6, - 35979 - 11905: 0xD881, - 35980 - 11905: 0xC3B2, - 35981 - 11905: 0xD882, - 35982 - 11905: 0xD883, - 35983 - 11905: 0xD884, - 35984 - 11905: 0xD885, - 35985 - 11905: 0xD886, - 35986 - 11905: 0xD887, - 35987 - 11905: 0xD888, - 35988 - 11905: 0xF5F9, - 35989 - 11905: 0xD889, - 35990 - 11905: 0xD88A, - 35991 - 11905: 0xD88B, - 35992 - 11905: 0xF5F8, - 35993 - 11905: 0xD88C, - 35994 - 11905: 0xD88D, - 35995 - 11905: 0xD88E, - 35996 - 11905: 0xD88F, - 35997 - 11905: 0xD890, - 35998 - 11905: 0xD891, - 35999 - 11905: 0xD892, - 36000 - 11905: 0xD893, - 36001 - 11905: 0xD894, - 36002 - 11905: 0xD895, - 36003 - 11905: 0xD896, - 36004 - 11905: 0xD897, - 36005 - 11905: 0xD898, - 36006 - 11905: 0xD899, - 36007 - 11905: 0xD89A, - 36008 - 11905: 0xD89B, - 36009 - 11905: 0xD89C, - 36010 - 11905: 0xD89D, - 36011 - 11905: 0xD89E, - 36012 - 11905: 0xD89F, - 36013 - 11905: 0xD8A0, - 36014 - 11905: 0xD940, - 36015 - 11905: 0xD941, - 36016 - 11905: 0xD942, - 36017 - 11905: 0xD943, - 36018 - 11905: 0xD944, - 36019 - 11905: 0xD945, - 36020 - 11905: 0xD946, - 36021 - 11905: 0xD947, - 36022 - 11905: 0xD948, - 36023 - 11905: 0xD949, - 36024 - 11905: 0xD94A, - 36025 - 11905: 0xD94B, - 36026 - 11905: 0xD94C, - 36027 - 11905: 0xD94D, - 36028 - 11905: 0xD94E, - 36029 - 11905: 0xD94F, - 36030 - 11905: 0xD950, - 36031 - 11905: 0xD951, - 36032 - 11905: 0xD952, - 36033 - 11905: 0xD953, - 36034 - 11905: 0xD954, - 36035 - 11905: 0xD955, - 36036 - 11905: 0xD956, - 36037 - 11905: 0xD957, - 36038 - 11905: 0xD958, - 36039 - 11905: 0xD959, - 36040 - 11905: 0xD95A, - 36041 - 11905: 0xD95B, - 36042 - 11905: 0xD95C, - 36043 - 11905: 0xD95D, - 36044 - 11905: 0xD95E, - 36045 - 11905: 0xD95F, - 36046 - 11905: 0xD960, - 36047 - 11905: 0xD961, - 36048 - 11905: 0xD962, - 36049 - 11905: 0xD963, - 36050 - 11905: 0xD964, - 36051 - 11905: 0xD965, - 36052 - 11905: 0xD966, - 36053 - 11905: 0xD967, - 36054 - 11905: 0xD968, - 36055 - 11905: 0xD969, - 36056 - 11905: 0xD96A, - 36057 - 11905: 0xD96B, - 36058 - 11905: 0xD96C, - 36059 - 11905: 0xD96D, - 36060 - 11905: 0xD96E, - 36061 - 11905: 0xD96F, - 36062 - 11905: 0xD970, - 36063 - 11905: 0xD971, - 36064 - 11905: 0xD972, - 36065 - 11905: 0xD973, - 36066 - 11905: 0xD974, - 36067 - 11905: 0xD975, - 36068 - 11905: 0xD976, - 36069 - 11905: 0xD977, - 36070 - 11905: 0xD978, - 36071 - 11905: 0xD979, - 36072 - 11905: 0xD97A, - 36073 - 11905: 0xD97B, - 36074 - 11905: 0xD97C, - 36075 - 11905: 0xD97D, - 36076 - 11905: 0xD97E, - 36077 - 11905: 0xD980, - 36078 - 11905: 0xD981, - 36079 - 11905: 0xD982, - 36080 - 11905: 0xD983, - 36081 - 11905: 0xD984, - 36082 - 11905: 0xD985, - 36083 - 11905: 0xD986, - 36084 - 11905: 0xD987, - 36085 - 11905: 0xD988, - 36086 - 11905: 0xD989, - 36087 - 11905: 0xD98A, - 36088 - 11905: 0xD98B, - 36089 - 11905: 0xD98C, - 36090 - 11905: 0xD98D, - 36091 - 11905: 0xD98E, - 36092 - 11905: 0xD98F, - 36093 - 11905: 0xD990, - 36094 - 11905: 0xD991, - 36095 - 11905: 0xD992, - 36096 - 11905: 0xD993, - 36097 - 11905: 0xD994, - 36098 - 11905: 0xD995, - 36099 - 11905: 0xD996, - 36100 - 11905: 0xD997, - 36101 - 11905: 0xD998, - 36102 - 11905: 0xD999, - 36103 - 11905: 0xD99A, - 36104 - 11905: 0xD99B, - 36105 - 11905: 0xD99C, - 36106 - 11905: 0xD99D, - 36107 - 11905: 0xD99E, - 36108 - 11905: 0xD99F, - 36109 - 11905: 0xD9A0, - 36110 - 11905: 0xDA40, - 36111 - 11905: 0xDA41, - 36112 - 11905: 0xDA42, - 36113 - 11905: 0xDA43, - 36114 - 11905: 0xDA44, - 36115 - 11905: 0xDA45, - 36116 - 11905: 0xDA46, - 36117 - 11905: 0xDA47, - 36118 - 11905: 0xDA48, - 36119 - 11905: 0xDA49, - 36120 - 11905: 0xDA4A, - 36121 - 11905: 0xDA4B, - 36122 - 11905: 0xDA4C, - 36123 - 11905: 0xDA4D, - 36124 - 11905: 0xDA4E, - 36125 - 11905: 0xB1B4, - 36126 - 11905: 0xD5EA, - 36127 - 11905: 0xB8BA, - 36128 - 11905: 0xDA4F, - 36129 - 11905: 0xB9B1, - 36130 - 11905: 0xB2C6, - 36131 - 11905: 0xD4F0, - 36132 - 11905: 0xCFCD, - 36133 - 11905: 0xB0DC, - 36134 - 11905: 0xD5CB, - 36135 - 11905: 0xBBF5, - 36136 - 11905: 0xD6CA, - 36137 - 11905: 0xB7B7, - 36138 - 11905: 0xCCB0, - 36139 - 11905: 0xC6B6, - 36140 - 11905: 0xB1E1, - 36141 - 11905: 0xB9BA, - 36142 - 11905: 0xD6FC, - 36143 - 11905: 0xB9E1, - 36144 - 11905: 0xB7A1, - 36145 - 11905: 0xBCFA, - 36146 - 11905: 0xEADA, - 36147 - 11905: 0xEADB, - 36148 - 11905: 0xCCF9, - 36149 - 11905: 0xB9F3, - 36150 - 11905: 0xEADC, - 36151 - 11905: 0xB4FB, - 36152 - 11905: 0xC3B3, - 36153 - 11905: 0xB7D1, - 36154 - 11905: 0xBAD8, - 36155 - 11905: 0xEADD, - 36156 - 11905: 0xD4F4, - 36157 - 11905: 0xEADE, - 36158 - 11905: 0xBCD6, - 36159 - 11905: 0xBBDF, - 36160 - 11905: 0xEADF, - 36161 - 11905: 0xC1DE, - 36162 - 11905: 0xC2B8, - 36163 - 11905: 0xD4DF, - 36164 - 11905: 0xD7CA, - 36165 - 11905: 0xEAE0, - 36166 - 11905: 0xEAE1, - 36167 - 11905: 0xEAE4, - 36168 - 11905: 0xEAE2, - 36169 - 11905: 0xEAE3, - 36170 - 11905: 0xC9DE, - 36171 - 11905: 0xB8B3, - 36172 - 11905: 0xB6C4, - 36173 - 11905: 0xEAE5, - 36174 - 11905: 0xCAEA, - 36175 - 11905: 0xC9CD, - 36176 - 11905: 0xB4CD, - 36177 - 11905: 0xDA50, - 36178 - 11905: 0xDA51, - 36179 - 11905: 0xE2D9, - 36180 - 11905: 0xC5E2, - 36181 - 11905: 0xEAE6, - 36182 - 11905: 0xC0B5, - 36183 - 11905: 0xDA52, - 36184 - 11905: 0xD7B8, - 36185 - 11905: 0xEAE7, - 36186 - 11905: 0xD7AC, - 36187 - 11905: 0xC8FC, - 36188 - 11905: 0xD8D3, - 36189 - 11905: 0xD8CD, - 36190 - 11905: 0xD4DE, - 36191 - 11905: 0xDA53, - 36192 - 11905: 0xD4F9, - 36193 - 11905: 0xC9C4, - 36194 - 11905: 0xD3AE, - 36195 - 11905: 0xB8D3, - 36196 - 11905: 0xB3E0, - 36197 - 11905: 0xDA54, - 36198 - 11905: 0xC9E2, - 36199 - 11905: 0xF4F6, - 36200 - 11905: 0xDA55, - 36201 - 11905: 0xDA56, - 36202 - 11905: 0xDA57, - 36203 - 11905: 0xBAD5, - 36204 - 11905: 0xDA58, - 36205 - 11905: 0xF4F7, - 36206 - 11905: 0xDA59, - 36207 - 11905: 0xDA5A, - 36208 - 11905: 0xD7DF, - 36209 - 11905: 0xDA5B, - 36210 - 11905: 0xDA5C, - 36211 - 11905: 0xF4F1, - 36212 - 11905: 0xB8B0, - 36213 - 11905: 0xD5D4, - 36214 - 11905: 0xB8CF, - 36215 - 11905: 0xC6F0, - 36216 - 11905: 0xDA5D, - 36217 - 11905: 0xDA5E, - 36218 - 11905: 0xDA5F, - 36219 - 11905: 0xDA60, - 36220 - 11905: 0xDA61, - 36221 - 11905: 0xDA62, - 36222 - 11905: 0xDA63, - 36223 - 11905: 0xDA64, - 36224 - 11905: 0xDA65, - 36225 - 11905: 0xB3C3, - 36226 - 11905: 0xDA66, - 36227 - 11905: 0xDA67, - 36228 - 11905: 0xF4F2, - 36229 - 11905: 0xB3AC, - 36230 - 11905: 0xDA68, - 36231 - 11905: 0xDA69, - 36232 - 11905: 0xDA6A, - 36233 - 11905: 0xDA6B, - 36234 - 11905: 0xD4BD, - 36235 - 11905: 0xC7F7, - 36236 - 11905: 0xDA6C, - 36237 - 11905: 0xDA6D, - 36238 - 11905: 0xDA6E, - 36239 - 11905: 0xDA6F, - 36240 - 11905: 0xDA70, - 36241 - 11905: 0xF4F4, - 36242 - 11905: 0xDA71, - 36243 - 11905: 0xDA72, - 36244 - 11905: 0xF4F3, - 36245 - 11905: 0xDA73, - 36246 - 11905: 0xDA74, - 36247 - 11905: 0xDA75, - 36248 - 11905: 0xDA76, - 36249 - 11905: 0xDA77, - 36250 - 11905: 0xDA78, - 36251 - 11905: 0xDA79, - 36252 - 11905: 0xDA7A, - 36253 - 11905: 0xDA7B, - 36254 - 11905: 0xDA7C, - 36255 - 11905: 0xCCCB, - 36256 - 11905: 0xDA7D, - 36257 - 11905: 0xDA7E, - 36258 - 11905: 0xDA80, - 36259 - 11905: 0xC8A4, - 36260 - 11905: 0xDA81, - 36261 - 11905: 0xDA82, - 36262 - 11905: 0xDA83, - 36263 - 11905: 0xDA84, - 36264 - 11905: 0xDA85, - 36265 - 11905: 0xDA86, - 36266 - 11905: 0xDA87, - 36267 - 11905: 0xDA88, - 36268 - 11905: 0xDA89, - 36269 - 11905: 0xDA8A, - 36270 - 11905: 0xDA8B, - 36271 - 11905: 0xDA8C, - 36272 - 11905: 0xDA8D, - 36273 - 11905: 0xF4F5, - 36274 - 11905: 0xDA8E, - 36275 - 11905: 0xD7E3, - 36276 - 11905: 0xC5BF, - 36277 - 11905: 0xF5C0, - 36278 - 11905: 0xDA8F, - 36279 - 11905: 0xDA90, - 36280 - 11905: 0xF5BB, - 36281 - 11905: 0xDA91, - 36282 - 11905: 0xF5C3, - 36283 - 11905: 0xDA92, - 36284 - 11905: 0xF5C2, - 36285 - 11905: 0xDA93, - 36286 - 11905: 0xD6BA, - 36287 - 11905: 0xF5C1, - 36288 - 11905: 0xDA94, - 36289 - 11905: 0xDA95, - 36290 - 11905: 0xDA96, - 36291 - 11905: 0xD4BE, - 36292 - 11905: 0xF5C4, - 36293 - 11905: 0xDA97, - 36294 - 11905: 0xF5CC, - 36295 - 11905: 0xDA98, - 36296 - 11905: 0xDA99, - 36297 - 11905: 0xDA9A, - 36298 - 11905: 0xDA9B, - 36299 - 11905: 0xB0CF, - 36300 - 11905: 0xB5F8, - 36301 - 11905: 0xDA9C, - 36302 - 11905: 0xF5C9, - 36303 - 11905: 0xF5CA, - 36304 - 11905: 0xDA9D, - 36305 - 11905: 0xC5DC, - 36306 - 11905: 0xDA9E, - 36307 - 11905: 0xDA9F, - 36308 - 11905: 0xDAA0, - 36309 - 11905: 0xDB40, - 36310 - 11905: 0xF5C5, - 36311 - 11905: 0xF5C6, - 36312 - 11905: 0xDB41, - 36313 - 11905: 0xDB42, - 36314 - 11905: 0xF5C7, - 36315 - 11905: 0xF5CB, - 36316 - 11905: 0xDB43, - 36317 - 11905: 0xBEE0, - 36318 - 11905: 0xF5C8, - 36319 - 11905: 0xB8FA, - 36320 - 11905: 0xDB44, - 36321 - 11905: 0xDB45, - 36322 - 11905: 0xDB46, - 36323 - 11905: 0xF5D0, - 36324 - 11905: 0xF5D3, - 36325 - 11905: 0xDB47, - 36326 - 11905: 0xDB48, - 36327 - 11905: 0xDB49, - 36328 - 11905: 0xBFE7, - 36329 - 11905: 0xDB4A, - 36330 - 11905: 0xB9F2, - 36331 - 11905: 0xF5BC, - 36332 - 11905: 0xF5CD, - 36333 - 11905: 0xDB4B, - 36334 - 11905: 0xDB4C, - 36335 - 11905: 0xC2B7, - 36336 - 11905: 0xDB4D, - 36337 - 11905: 0xDB4E, - 36338 - 11905: 0xDB4F, - 36339 - 11905: 0xCCF8, - 36340 - 11905: 0xDB50, - 36341 - 11905: 0xBCF9, - 36342 - 11905: 0xDB51, - 36343 - 11905: 0xF5CE, - 36344 - 11905: 0xF5CF, - 36345 - 11905: 0xF5D1, - 36346 - 11905: 0xB6E5, - 36347 - 11905: 0xF5D2, - 36348 - 11905: 0xDB52, - 36349 - 11905: 0xF5D5, - 36350 - 11905: 0xDB53, - 36351 - 11905: 0xDB54, - 36352 - 11905: 0xDB55, - 36353 - 11905: 0xDB56, - 36354 - 11905: 0xDB57, - 36355 - 11905: 0xDB58, - 36356 - 11905: 0xDB59, - 36357 - 11905: 0xF5BD, - 36358 - 11905: 0xDB5A, - 36359 - 11905: 0xDB5B, - 36360 - 11905: 0xDB5C, - 36361 - 11905: 0xF5D4, - 36362 - 11905: 0xD3BB, - 36363 - 11905: 0xDB5D, - 36364 - 11905: 0xB3EC, - 36365 - 11905: 0xDB5E, - 36366 - 11905: 0xDB5F, - 36367 - 11905: 0xCCA4, - 36368 - 11905: 0xDB60, - 36369 - 11905: 0xDB61, - 36370 - 11905: 0xDB62, - 36371 - 11905: 0xDB63, - 36372 - 11905: 0xF5D6, - 36373 - 11905: 0xDB64, - 36374 - 11905: 0xDB65, - 36375 - 11905: 0xDB66, - 36376 - 11905: 0xDB67, - 36377 - 11905: 0xDB68, - 36378 - 11905: 0xDB69, - 36379 - 11905: 0xDB6A, - 36380 - 11905: 0xDB6B, - 36381 - 11905: 0xF5D7, - 36382 - 11905: 0xBEE1, - 36383 - 11905: 0xF5D8, - 36384 - 11905: 0xDB6C, - 36385 - 11905: 0xDB6D, - 36386 - 11905: 0xCCDF, - 36387 - 11905: 0xF5DB, - 36388 - 11905: 0xDB6E, - 36389 - 11905: 0xDB6F, - 36390 - 11905: 0xDB70, - 36391 - 11905: 0xDB71, - 36392 - 11905: 0xDB72, - 36393 - 11905: 0xB2C8, - 36394 - 11905: 0xD7D9, - 36395 - 11905: 0xDB73, - 36396 - 11905: 0xF5D9, - 36397 - 11905: 0xDB74, - 36398 - 11905: 0xF5DA, - 36399 - 11905: 0xF5DC, - 36400 - 11905: 0xDB75, - 36401 - 11905: 0xF5E2, - 36402 - 11905: 0xDB76, - 36403 - 11905: 0xDB77, - 36404 - 11905: 0xDB78, - 36405 - 11905: 0xF5E0, - 36406 - 11905: 0xDB79, - 36407 - 11905: 0xDB7A, - 36408 - 11905: 0xDB7B, - 36409 - 11905: 0xF5DF, - 36410 - 11905: 0xF5DD, - 36411 - 11905: 0xDB7C, - 36412 - 11905: 0xDB7D, - 36413 - 11905: 0xF5E1, - 36414 - 11905: 0xDB7E, - 36415 - 11905: 0xDB80, - 36416 - 11905: 0xF5DE, - 36417 - 11905: 0xF5E4, - 36418 - 11905: 0xF5E5, - 36419 - 11905: 0xDB81, - 36420 - 11905: 0xCCE3, - 36421 - 11905: 0xDB82, - 36422 - 11905: 0xDB83, - 36423 - 11905: 0xE5BF, - 36424 - 11905: 0xB5B8, - 36425 - 11905: 0xF5E3, - 36426 - 11905: 0xF5E8, - 36427 - 11905: 0xCCA3, - 36428 - 11905: 0xDB84, - 36429 - 11905: 0xDB85, - 36430 - 11905: 0xDB86, - 36431 - 11905: 0xDB87, - 36432 - 11905: 0xDB88, - 36433 - 11905: 0xF5E6, - 36434 - 11905: 0xF5E7, - 36435 - 11905: 0xDB89, - 36436 - 11905: 0xDB8A, - 36437 - 11905: 0xDB8B, - 36438 - 11905: 0xDB8C, - 36439 - 11905: 0xDB8D, - 36440 - 11905: 0xDB8E, - 36441 - 11905: 0xF5BE, - 36442 - 11905: 0xDB8F, - 36443 - 11905: 0xDB90, - 36444 - 11905: 0xDB91, - 36445 - 11905: 0xDB92, - 36446 - 11905: 0xDB93, - 36447 - 11905: 0xDB94, - 36448 - 11905: 0xDB95, - 36449 - 11905: 0xDB96, - 36450 - 11905: 0xDB97, - 36451 - 11905: 0xDB98, - 36452 - 11905: 0xDB99, - 36453 - 11905: 0xDB9A, - 36454 - 11905: 0xB1C4, - 36455 - 11905: 0xDB9B, - 36456 - 11905: 0xDB9C, - 36457 - 11905: 0xF5BF, - 36458 - 11905: 0xDB9D, - 36459 - 11905: 0xDB9E, - 36460 - 11905: 0xB5C5, - 36461 - 11905: 0xB2E4, - 36462 - 11905: 0xDB9F, - 36463 - 11905: 0xF5EC, - 36464 - 11905: 0xF5E9, - 36465 - 11905: 0xDBA0, - 36466 - 11905: 0xB6D7, - 36467 - 11905: 0xDC40, - 36468 - 11905: 0xF5ED, - 36469 - 11905: 0xDC41, - 36470 - 11905: 0xF5EA, - 36471 - 11905: 0xDC42, - 36472 - 11905: 0xDC43, - 36473 - 11905: 0xDC44, - 36474 - 11905: 0xDC45, - 36475 - 11905: 0xDC46, - 36476 - 11905: 0xF5EB, - 36477 - 11905: 0xDC47, - 36478 - 11905: 0xDC48, - 36479 - 11905: 0xB4DA, - 36480 - 11905: 0xDC49, - 36481 - 11905: 0xD4EA, - 36482 - 11905: 0xDC4A, - 36483 - 11905: 0xDC4B, - 36484 - 11905: 0xDC4C, - 36485 - 11905: 0xF5EE, - 36486 - 11905: 0xDC4D, - 36487 - 11905: 0xB3F9, - 36488 - 11905: 0xDC4E, - 36489 - 11905: 0xDC4F, - 36490 - 11905: 0xDC50, - 36491 - 11905: 0xDC51, - 36492 - 11905: 0xDC52, - 36493 - 11905: 0xDC53, - 36494 - 11905: 0xDC54, - 36495 - 11905: 0xF5EF, - 36496 - 11905: 0xF5F1, - 36497 - 11905: 0xDC55, - 36498 - 11905: 0xDC56, - 36499 - 11905: 0xDC57, - 36500 - 11905: 0xF5F0, - 36501 - 11905: 0xDC58, - 36502 - 11905: 0xDC59, - 36503 - 11905: 0xDC5A, - 36504 - 11905: 0xDC5B, - 36505 - 11905: 0xDC5C, - 36506 - 11905: 0xDC5D, - 36507 - 11905: 0xDC5E, - 36508 - 11905: 0xF5F2, - 36509 - 11905: 0xDC5F, - 36510 - 11905: 0xF5F3, - 36511 - 11905: 0xDC60, - 36512 - 11905: 0xDC61, - 36513 - 11905: 0xDC62, - 36514 - 11905: 0xDC63, - 36515 - 11905: 0xDC64, - 36516 - 11905: 0xDC65, - 36517 - 11905: 0xDC66, - 36518 - 11905: 0xDC67, - 36519 - 11905: 0xDC68, - 36520 - 11905: 0xDC69, - 36521 - 11905: 0xDC6A, - 36522 - 11905: 0xDC6B, - 36523 - 11905: 0xC9ED, - 36524 - 11905: 0xB9AA, - 36525 - 11905: 0xDC6C, - 36526 - 11905: 0xDC6D, - 36527 - 11905: 0xC7FB, - 36528 - 11905: 0xDC6E, - 36529 - 11905: 0xDC6F, - 36530 - 11905: 0xB6E3, - 36531 - 11905: 0xDC70, - 36532 - 11905: 0xDC71, - 36533 - 11905: 0xDC72, - 36534 - 11905: 0xDC73, - 36535 - 11905: 0xDC74, - 36536 - 11905: 0xDC75, - 36537 - 11905: 0xDC76, - 36538 - 11905: 0xCCC9, - 36539 - 11905: 0xDC77, - 36540 - 11905: 0xDC78, - 36541 - 11905: 0xDC79, - 36542 - 11905: 0xDC7A, - 36543 - 11905: 0xDC7B, - 36544 - 11905: 0xDC7C, - 36545 - 11905: 0xDC7D, - 36546 - 11905: 0xDC7E, - 36547 - 11905: 0xDC80, - 36548 - 11905: 0xDC81, - 36549 - 11905: 0xDC82, - 36550 - 11905: 0xDC83, - 36551 - 11905: 0xDC84, - 36552 - 11905: 0xDC85, - 36553 - 11905: 0xDC86, - 36554 - 11905: 0xDC87, - 36555 - 11905: 0xDC88, - 36556 - 11905: 0xDC89, - 36557 - 11905: 0xDC8A, - 36558 - 11905: 0xEAA6, - 36559 - 11905: 0xDC8B, - 36560 - 11905: 0xDC8C, - 36561 - 11905: 0xDC8D, - 36562 - 11905: 0xDC8E, - 36563 - 11905: 0xDC8F, - 36564 - 11905: 0xDC90, - 36565 - 11905: 0xDC91, - 36566 - 11905: 0xDC92, - 36567 - 11905: 0xDC93, - 36568 - 11905: 0xDC94, - 36569 - 11905: 0xDC95, - 36570 - 11905: 0xDC96, - 36571 - 11905: 0xDC97, - 36572 - 11905: 0xDC98, - 36573 - 11905: 0xDC99, - 36574 - 11905: 0xDC9A, - 36575 - 11905: 0xDC9B, - 36576 - 11905: 0xDC9C, - 36577 - 11905: 0xDC9D, - 36578 - 11905: 0xDC9E, - 36579 - 11905: 0xDC9F, - 36580 - 11905: 0xDCA0, - 36581 - 11905: 0xDD40, - 36582 - 11905: 0xDD41, - 36583 - 11905: 0xDD42, - 36584 - 11905: 0xDD43, - 36585 - 11905: 0xDD44, - 36586 - 11905: 0xDD45, - 36587 - 11905: 0xDD46, - 36588 - 11905: 0xDD47, - 36589 - 11905: 0xDD48, - 36590 - 11905: 0xDD49, - 36591 - 11905: 0xDD4A, - 36592 - 11905: 0xDD4B, - 36593 - 11905: 0xDD4C, - 36594 - 11905: 0xDD4D, - 36595 - 11905: 0xDD4E, - 36596 - 11905: 0xDD4F, - 36597 - 11905: 0xDD50, - 36598 - 11905: 0xDD51, - 36599 - 11905: 0xDD52, - 36600 - 11905: 0xDD53, - 36601 - 11905: 0xDD54, - 36602 - 11905: 0xDD55, - 36603 - 11905: 0xDD56, - 36604 - 11905: 0xDD57, - 36605 - 11905: 0xDD58, - 36606 - 11905: 0xDD59, - 36607 - 11905: 0xDD5A, - 36608 - 11905: 0xDD5B, - 36609 - 11905: 0xDD5C, - 36610 - 11905: 0xDD5D, - 36611 - 11905: 0xDD5E, - 36612 - 11905: 0xDD5F, - 36613 - 11905: 0xDD60, - 36614 - 11905: 0xDD61, - 36615 - 11905: 0xDD62, - 36616 - 11905: 0xDD63, - 36617 - 11905: 0xDD64, - 36618 - 11905: 0xDD65, - 36619 - 11905: 0xDD66, - 36620 - 11905: 0xDD67, - 36621 - 11905: 0xDD68, - 36622 - 11905: 0xDD69, - 36623 - 11905: 0xDD6A, - 36624 - 11905: 0xDD6B, - 36625 - 11905: 0xDD6C, - 36626 - 11905: 0xDD6D, - 36627 - 11905: 0xDD6E, - 36628 - 11905: 0xDD6F, - 36629 - 11905: 0xDD70, - 36630 - 11905: 0xDD71, - 36631 - 11905: 0xDD72, - 36632 - 11905: 0xDD73, - 36633 - 11905: 0xDD74, - 36634 - 11905: 0xDD75, - 36635 - 11905: 0xDD76, - 36636 - 11905: 0xDD77, - 36637 - 11905: 0xDD78, - 36638 - 11905: 0xDD79, - 36639 - 11905: 0xDD7A, - 36640 - 11905: 0xDD7B, - 36641 - 11905: 0xDD7C, - 36642 - 11905: 0xDD7D, - 36643 - 11905: 0xDD7E, - 36644 - 11905: 0xDD80, - 36645 - 11905: 0xDD81, - 36646 - 11905: 0xDD82, - 36647 - 11905: 0xDD83, - 36648 - 11905: 0xDD84, - 36649 - 11905: 0xDD85, - 36650 - 11905: 0xDD86, - 36651 - 11905: 0xDD87, - 36652 - 11905: 0xDD88, - 36653 - 11905: 0xDD89, - 36654 - 11905: 0xDD8A, - 36655 - 11905: 0xDD8B, - 36656 - 11905: 0xDD8C, - 36657 - 11905: 0xDD8D, - 36658 - 11905: 0xDD8E, - 36659 - 11905: 0xDD8F, - 36660 - 11905: 0xDD90, - 36661 - 11905: 0xDD91, - 36662 - 11905: 0xDD92, - 36663 - 11905: 0xDD93, - 36664 - 11905: 0xDD94, - 36665 - 11905: 0xDD95, - 36666 - 11905: 0xDD96, - 36667 - 11905: 0xDD97, - 36668 - 11905: 0xDD98, - 36669 - 11905: 0xDD99, - 36670 - 11905: 0xDD9A, - 36671 - 11905: 0xDD9B, - 36672 - 11905: 0xDD9C, - 36673 - 11905: 0xDD9D, - 36674 - 11905: 0xDD9E, - 36675 - 11905: 0xDD9F, - 36676 - 11905: 0xDDA0, - 36677 - 11905: 0xDE40, - 36678 - 11905: 0xDE41, - 36679 - 11905: 0xDE42, - 36680 - 11905: 0xDE43, - 36681 - 11905: 0xDE44, - 36682 - 11905: 0xDE45, - 36683 - 11905: 0xDE46, - 36684 - 11905: 0xDE47, - 36685 - 11905: 0xDE48, - 36686 - 11905: 0xDE49, - 36687 - 11905: 0xDE4A, - 36688 - 11905: 0xDE4B, - 36689 - 11905: 0xDE4C, - 36690 - 11905: 0xDE4D, - 36691 - 11905: 0xDE4E, - 36692 - 11905: 0xDE4F, - 36693 - 11905: 0xDE50, - 36694 - 11905: 0xDE51, - 36695 - 11905: 0xDE52, - 36696 - 11905: 0xDE53, - 36697 - 11905: 0xDE54, - 36698 - 11905: 0xDE55, - 36699 - 11905: 0xDE56, - 36700 - 11905: 0xDE57, - 36701 - 11905: 0xDE58, - 36702 - 11905: 0xDE59, - 36703 - 11905: 0xDE5A, - 36704 - 11905: 0xDE5B, - 36705 - 11905: 0xDE5C, - 36706 - 11905: 0xDE5D, - 36707 - 11905: 0xDE5E, - 36708 - 11905: 0xDE5F, - 36709 - 11905: 0xDE60, - 36710 - 11905: 0xB3B5, - 36711 - 11905: 0xD4FE, - 36712 - 11905: 0xB9EC, - 36713 - 11905: 0xD0F9, - 36714 - 11905: 0xDE61, - 36715 - 11905: 0xE9ED, - 36716 - 11905: 0xD7AA, - 36717 - 11905: 0xE9EE, - 36718 - 11905: 0xC2D6, - 36719 - 11905: 0xC8ED, - 36720 - 11905: 0xBAE4, - 36721 - 11905: 0xE9EF, - 36722 - 11905: 0xE9F0, - 36723 - 11905: 0xE9F1, - 36724 - 11905: 0xD6E1, - 36725 - 11905: 0xE9F2, - 36726 - 11905: 0xE9F3, - 36727 - 11905: 0xE9F5, - 36728 - 11905: 0xE9F4, - 36729 - 11905: 0xE9F6, - 36730 - 11905: 0xE9F7, - 36731 - 11905: 0xC7E1, - 36732 - 11905: 0xE9F8, - 36733 - 11905: 0xD4D8, - 36734 - 11905: 0xE9F9, - 36735 - 11905: 0xBDCE, - 36736 - 11905: 0xDE62, - 36737 - 11905: 0xE9FA, - 36738 - 11905: 0xE9FB, - 36739 - 11905: 0xBDCF, - 36740 - 11905: 0xE9FC, - 36741 - 11905: 0xB8A8, - 36742 - 11905: 0xC1BE, - 36743 - 11905: 0xE9FD, - 36744 - 11905: 0xB1B2, - 36745 - 11905: 0xBBD4, - 36746 - 11905: 0xB9F5, - 36747 - 11905: 0xE9FE, - 36748 - 11905: 0xDE63, - 36749 - 11905: 0xEAA1, - 36750 - 11905: 0xEAA2, - 36751 - 11905: 0xEAA3, - 36752 - 11905: 0xB7F8, - 36753 - 11905: 0xBCAD, - 36754 - 11905: 0xDE64, - 36755 - 11905: 0xCAE4, - 36756 - 11905: 0xE0CE, - 36757 - 11905: 0xD4AF, - 36758 - 11905: 0xCFBD, - 36759 - 11905: 0xD5B7, - 36760 - 11905: 0xEAA4, - 36761 - 11905: 0xD5DE, - 36762 - 11905: 0xEAA5, - 36763 - 11905: 0xD0C1, - 36764 - 11905: 0xB9BC, - 36765 - 11905: 0xDE65, - 36766 - 11905: 0xB4C7, - 36767 - 11905: 0xB1D9, - 36768 - 11905: 0xDE66, - 36769 - 11905: 0xDE67, - 36770 - 11905: 0xDE68, - 36771 - 11905: 0xC0B1, - 36772 - 11905: 0xDE69, - 36773 - 11905: 0xDE6A, - 36774 - 11905: 0xDE6B, - 36775 - 11905: 0xDE6C, - 36776 - 11905: 0xB1E6, - 36777 - 11905: 0xB1E7, - 36778 - 11905: 0xDE6D, - 36779 - 11905: 0xB1E8, - 36780 - 11905: 0xDE6E, - 36781 - 11905: 0xDE6F, - 36782 - 11905: 0xDE70, - 36783 - 11905: 0xDE71, - 36784 - 11905: 0xB3BD, - 36785 - 11905: 0xC8E8, - 36786 - 11905: 0xDE72, - 36787 - 11905: 0xDE73, - 36788 - 11905: 0xDE74, - 36789 - 11905: 0xDE75, - 36790 - 11905: 0xE5C1, - 36791 - 11905: 0xDE76, - 36792 - 11905: 0xDE77, - 36793 - 11905: 0xB1DF, - 36794 - 11905: 0xDE78, - 36795 - 11905: 0xDE79, - 36796 - 11905: 0xDE7A, - 36797 - 11905: 0xC1C9, - 36798 - 11905: 0xB4EF, - 36799 - 11905: 0xDE7B, - 36800 - 11905: 0xDE7C, - 36801 - 11905: 0xC7A8, - 36802 - 11905: 0xD3D8, - 36803 - 11905: 0xDE7D, - 36804 - 11905: 0xC6F9, - 36805 - 11905: 0xD1B8, - 36806 - 11905: 0xDE7E, - 36807 - 11905: 0xB9FD, - 36808 - 11905: 0xC2F5, - 36809 - 11905: 0xDE80, - 36810 - 11905: 0xDE81, - 36811 - 11905: 0xDE82, - 36812 - 11905: 0xDE83, - 36813 - 11905: 0xDE84, - 36814 - 11905: 0xD3AD, - 36815 - 11905: 0xDE85, - 36816 - 11905: 0xD4CB, - 36817 - 11905: 0xBDFC, - 36818 - 11905: 0xDE86, - 36819 - 11905: 0xE5C2, - 36820 - 11905: 0xB7B5, - 36821 - 11905: 0xE5C3, - 36822 - 11905: 0xDE87, - 36823 - 11905: 0xDE88, - 36824 - 11905: 0xBBB9, - 36825 - 11905: 0xD5E2, - 36826 - 11905: 0xDE89, - 36827 - 11905: 0xBDF8, - 36828 - 11905: 0xD4B6, - 36829 - 11905: 0xCEA5, - 36830 - 11905: 0xC1AC, - 36831 - 11905: 0xB3D9, - 36832 - 11905: 0xDE8A, - 36833 - 11905: 0xDE8B, - 36834 - 11905: 0xCCF6, - 36835 - 11905: 0xDE8C, - 36836 - 11905: 0xE5C6, - 36837 - 11905: 0xE5C4, - 36838 - 11905: 0xE5C8, - 36839 - 11905: 0xDE8D, - 36840 - 11905: 0xE5CA, - 36841 - 11905: 0xE5C7, - 36842 - 11905: 0xB5CF, - 36843 - 11905: 0xC6C8, - 36844 - 11905: 0xDE8E, - 36845 - 11905: 0xB5FC, - 36846 - 11905: 0xE5C5, - 36847 - 11905: 0xDE8F, - 36848 - 11905: 0xCAF6, - 36849 - 11905: 0xDE90, - 36850 - 11905: 0xDE91, - 36851 - 11905: 0xE5C9, - 36852 - 11905: 0xDE92, - 36853 - 11905: 0xDE93, - 36854 - 11905: 0xDE94, - 36855 - 11905: 0xC3D4, - 36856 - 11905: 0xB1C5, - 36857 - 11905: 0xBCA3, - 36858 - 11905: 0xDE95, - 36859 - 11905: 0xDE96, - 36860 - 11905: 0xDE97, - 36861 - 11905: 0xD7B7, - 36862 - 11905: 0xDE98, - 36863 - 11905: 0xDE99, - 36864 - 11905: 0xCDCB, - 36865 - 11905: 0xCBCD, - 36866 - 11905: 0xCACA, - 36867 - 11905: 0xCCD3, - 36868 - 11905: 0xE5CC, - 36869 - 11905: 0xE5CB, - 36870 - 11905: 0xC4E6, - 36871 - 11905: 0xDE9A, - 36872 - 11905: 0xDE9B, - 36873 - 11905: 0xD1A1, - 36874 - 11905: 0xD1B7, - 36875 - 11905: 0xE5CD, - 36876 - 11905: 0xDE9C, - 36877 - 11905: 0xE5D0, - 36878 - 11905: 0xDE9D, - 36879 - 11905: 0xCDB8, - 36880 - 11905: 0xD6F0, - 36881 - 11905: 0xE5CF, - 36882 - 11905: 0xB5DD, - 36883 - 11905: 0xDE9E, - 36884 - 11905: 0xCDBE, - 36885 - 11905: 0xDE9F, - 36886 - 11905: 0xE5D1, - 36887 - 11905: 0xB6BA, - 36888 - 11905: 0xDEA0, - 36889 - 11905: 0xDF40, - 36890 - 11905: 0xCDA8, - 36891 - 11905: 0xB9E4, - 36892 - 11905: 0xDF41, - 36893 - 11905: 0xCAC5, - 36894 - 11905: 0xB3D1, - 36895 - 11905: 0xCBD9, - 36896 - 11905: 0xD4EC, - 36897 - 11905: 0xE5D2, - 36898 - 11905: 0xB7EA, - 36899 - 11905: 0xDF42, - 36900 - 11905: 0xDF43, - 36901 - 11905: 0xDF44, - 36902 - 11905: 0xE5CE, - 36903 - 11905: 0xDF45, - 36904 - 11905: 0xDF46, - 36905 - 11905: 0xDF47, - 36906 - 11905: 0xDF48, - 36907 - 11905: 0xDF49, - 36908 - 11905: 0xDF4A, - 36909 - 11905: 0xE5D5, - 36910 - 11905: 0xB4FE, - 36911 - 11905: 0xE5D6, - 36912 - 11905: 0xDF4B, - 36913 - 11905: 0xDF4C, - 36914 - 11905: 0xDF4D, - 36915 - 11905: 0xDF4E, - 36916 - 11905: 0xDF4F, - 36917 - 11905: 0xE5D3, - 36918 - 11905: 0xE5D4, - 36919 - 11905: 0xDF50, - 36920 - 11905: 0xD2DD, - 36921 - 11905: 0xDF51, - 36922 - 11905: 0xDF52, - 36923 - 11905: 0xC2DF, - 36924 - 11905: 0xB1C6, - 36925 - 11905: 0xDF53, - 36926 - 11905: 0xD3E2, - 36927 - 11905: 0xDF54, - 36928 - 11905: 0xDF55, - 36929 - 11905: 0xB6DD, - 36930 - 11905: 0xCBEC, - 36931 - 11905: 0xDF56, - 36932 - 11905: 0xE5D7, - 36933 - 11905: 0xDF57, - 36934 - 11905: 0xDF58, - 36935 - 11905: 0xD3F6, - 36936 - 11905: 0xDF59, - 36937 - 11905: 0xDF5A, - 36938 - 11905: 0xDF5B, - 36939 - 11905: 0xDF5C, - 36940 - 11905: 0xDF5D, - 36941 - 11905: 0xB1E9, - 36942 - 11905: 0xDF5E, - 36943 - 11905: 0xB6F4, - 36944 - 11905: 0xE5DA, - 36945 - 11905: 0xE5D8, - 36946 - 11905: 0xE5D9, - 36947 - 11905: 0xB5C0, - 36948 - 11905: 0xDF5F, - 36949 - 11905: 0xDF60, - 36950 - 11905: 0xDF61, - 36951 - 11905: 0xD2C5, - 36952 - 11905: 0xE5DC, - 36953 - 11905: 0xDF62, - 36954 - 11905: 0xDF63, - 36955 - 11905: 0xE5DE, - 36956 - 11905: 0xDF64, - 36957 - 11905: 0xDF65, - 36958 - 11905: 0xDF66, - 36959 - 11905: 0xDF67, - 36960 - 11905: 0xDF68, - 36961 - 11905: 0xDF69, - 36962 - 11905: 0xE5DD, - 36963 - 11905: 0xC7B2, - 36964 - 11905: 0xDF6A, - 36965 - 11905: 0xD2A3, - 36966 - 11905: 0xDF6B, - 36967 - 11905: 0xDF6C, - 36968 - 11905: 0xE5DB, - 36969 - 11905: 0xDF6D, - 36970 - 11905: 0xDF6E, - 36971 - 11905: 0xDF6F, - 36972 - 11905: 0xDF70, - 36973 - 11905: 0xD4E2, - 36974 - 11905: 0xD5DA, - 36975 - 11905: 0xDF71, - 36976 - 11905: 0xDF72, - 36977 - 11905: 0xDF73, - 36978 - 11905: 0xDF74, - 36979 - 11905: 0xDF75, - 36980 - 11905: 0xE5E0, - 36981 - 11905: 0xD7F1, - 36982 - 11905: 0xDF76, - 36983 - 11905: 0xDF77, - 36984 - 11905: 0xDF78, - 36985 - 11905: 0xDF79, - 36986 - 11905: 0xDF7A, - 36987 - 11905: 0xDF7B, - 36988 - 11905: 0xDF7C, - 36989 - 11905: 0xE5E1, - 36990 - 11905: 0xDF7D, - 36991 - 11905: 0xB1DC, - 36992 - 11905: 0xD1FB, - 36993 - 11905: 0xDF7E, - 36994 - 11905: 0xE5E2, - 36995 - 11905: 0xE5E4, - 36996 - 11905: 0xDF80, - 36997 - 11905: 0xDF81, - 36998 - 11905: 0xDF82, - 36999 - 11905: 0xDF83, - 37000 - 11905: 0xE5E3, - 37001 - 11905: 0xDF84, - 37002 - 11905: 0xDF85, - 37003 - 11905: 0xE5E5, - 37004 - 11905: 0xDF86, - 37005 - 11905: 0xDF87, - 37006 - 11905: 0xDF88, - 37007 - 11905: 0xDF89, - 37008 - 11905: 0xDF8A, - 37009 - 11905: 0xD2D8, - 37010 - 11905: 0xDF8B, - 37011 - 11905: 0xB5CB, - 37012 - 11905: 0xDF8C, - 37013 - 11905: 0xE7DF, - 37014 - 11905: 0xDF8D, - 37015 - 11905: 0xDAF5, - 37016 - 11905: 0xDF8E, - 37017 - 11905: 0xDAF8, - 37018 - 11905: 0xDF8F, - 37019 - 11905: 0xDAF6, - 37020 - 11905: 0xDF90, - 37021 - 11905: 0xDAF7, - 37022 - 11905: 0xDF91, - 37023 - 11905: 0xDF92, - 37024 - 11905: 0xDF93, - 37025 - 11905: 0xDAFA, - 37026 - 11905: 0xD0CF, - 37027 - 11905: 0xC4C7, - 37028 - 11905: 0xDF94, - 37029 - 11905: 0xDF95, - 37030 - 11905: 0xB0EE, - 37031 - 11905: 0xDF96, - 37032 - 11905: 0xDF97, - 37033 - 11905: 0xDF98, - 37034 - 11905: 0xD0B0, - 37035 - 11905: 0xDF99, - 37036 - 11905: 0xDAF9, - 37037 - 11905: 0xDF9A, - 37038 - 11905: 0xD3CA, - 37039 - 11905: 0xBAAA, - 37040 - 11905: 0xDBA2, - 37041 - 11905: 0xC7F1, - 37042 - 11905: 0xDF9B, - 37043 - 11905: 0xDAFC, - 37044 - 11905: 0xDAFB, - 37045 - 11905: 0xC9DB, - 37046 - 11905: 0xDAFD, - 37047 - 11905: 0xDF9C, - 37048 - 11905: 0xDBA1, - 37049 - 11905: 0xD7DE, - 37050 - 11905: 0xDAFE, - 37051 - 11905: 0xC1DA, - 37052 - 11905: 0xDF9D, - 37053 - 11905: 0xDF9E, - 37054 - 11905: 0xDBA5, - 37055 - 11905: 0xDF9F, - 37056 - 11905: 0xDFA0, - 37057 - 11905: 0xD3F4, - 37058 - 11905: 0xE040, - 37059 - 11905: 0xE041, - 37060 - 11905: 0xDBA7, - 37061 - 11905: 0xDBA4, - 37062 - 11905: 0xE042, - 37063 - 11905: 0xDBA8, - 37064 - 11905: 0xE043, - 37065 - 11905: 0xE044, - 37066 - 11905: 0xBDBC, - 37067 - 11905: 0xE045, - 37068 - 11905: 0xE046, - 37069 - 11905: 0xE047, - 37070 - 11905: 0xC0C9, - 37071 - 11905: 0xDBA3, - 37072 - 11905: 0xDBA6, - 37073 - 11905: 0xD6A3, - 37074 - 11905: 0xE048, - 37075 - 11905: 0xDBA9, - 37076 - 11905: 0xE049, - 37077 - 11905: 0xE04A, - 37078 - 11905: 0xE04B, - 37079 - 11905: 0xDBAD, - 37080 - 11905: 0xE04C, - 37081 - 11905: 0xE04D, - 37082 - 11905: 0xE04E, - 37083 - 11905: 0xDBAE, - 37084 - 11905: 0xDBAC, - 37085 - 11905: 0xBAC2, - 37086 - 11905: 0xE04F, - 37087 - 11905: 0xE050, - 37088 - 11905: 0xE051, - 37089 - 11905: 0xBFA4, - 37090 - 11905: 0xDBAB, - 37091 - 11905: 0xE052, - 37092 - 11905: 0xE053, - 37093 - 11905: 0xE054, - 37094 - 11905: 0xDBAA, - 37095 - 11905: 0xD4C7, - 37096 - 11905: 0xB2BF, - 37097 - 11905: 0xE055, - 37098 - 11905: 0xE056, - 37099 - 11905: 0xDBAF, - 37100 - 11905: 0xE057, - 37101 - 11905: 0xB9F9, - 37102 - 11905: 0xE058, - 37103 - 11905: 0xDBB0, - 37104 - 11905: 0xE059, - 37105 - 11905: 0xE05A, - 37106 - 11905: 0xE05B, - 37107 - 11905: 0xE05C, - 37108 - 11905: 0xB3BB, - 37109 - 11905: 0xE05D, - 37110 - 11905: 0xE05E, - 37111 - 11905: 0xE05F, - 37112 - 11905: 0xB5A6, - 37113 - 11905: 0xE060, - 37114 - 11905: 0xE061, - 37115 - 11905: 0xE062, - 37116 - 11905: 0xE063, - 37117 - 11905: 0xB6BC, - 37118 - 11905: 0xDBB1, - 37119 - 11905: 0xE064, - 37120 - 11905: 0xE065, - 37121 - 11905: 0xE066, - 37122 - 11905: 0xB6F5, - 37123 - 11905: 0xE067, - 37124 - 11905: 0xDBB2, - 37125 - 11905: 0xE068, - 37126 - 11905: 0xE069, - 37127 - 11905: 0xE06A, - 37128 - 11905: 0xE06B, - 37129 - 11905: 0xE06C, - 37130 - 11905: 0xE06D, - 37131 - 11905: 0xE06E, - 37132 - 11905: 0xE06F, - 37133 - 11905: 0xE070, - 37134 - 11905: 0xE071, - 37135 - 11905: 0xE072, - 37136 - 11905: 0xE073, - 37137 - 11905: 0xE074, - 37138 - 11905: 0xE075, - 37139 - 11905: 0xE076, - 37140 - 11905: 0xE077, - 37141 - 11905: 0xE078, - 37142 - 11905: 0xE079, - 37143 - 11905: 0xE07A, - 37144 - 11905: 0xE07B, - 37145 - 11905: 0xB1C9, - 37146 - 11905: 0xE07C, - 37147 - 11905: 0xE07D, - 37148 - 11905: 0xE07E, - 37149 - 11905: 0xE080, - 37150 - 11905: 0xDBB4, - 37151 - 11905: 0xE081, - 37152 - 11905: 0xE082, - 37153 - 11905: 0xE083, - 37154 - 11905: 0xDBB3, - 37155 - 11905: 0xDBB5, - 37156 - 11905: 0xE084, - 37157 - 11905: 0xE085, - 37158 - 11905: 0xE086, - 37159 - 11905: 0xE087, - 37160 - 11905: 0xE088, - 37161 - 11905: 0xE089, - 37162 - 11905: 0xE08A, - 37163 - 11905: 0xE08B, - 37164 - 11905: 0xE08C, - 37165 - 11905: 0xE08D, - 37166 - 11905: 0xE08E, - 37167 - 11905: 0xDBB7, - 37168 - 11905: 0xE08F, - 37169 - 11905: 0xDBB6, - 37170 - 11905: 0xE090, - 37171 - 11905: 0xE091, - 37172 - 11905: 0xE092, - 37173 - 11905: 0xE093, - 37174 - 11905: 0xE094, - 37175 - 11905: 0xE095, - 37176 - 11905: 0xE096, - 37177 - 11905: 0xDBB8, - 37178 - 11905: 0xE097, - 37179 - 11905: 0xE098, - 37180 - 11905: 0xE099, - 37181 - 11905: 0xE09A, - 37182 - 11905: 0xE09B, - 37183 - 11905: 0xE09C, - 37184 - 11905: 0xE09D, - 37185 - 11905: 0xE09E, - 37186 - 11905: 0xE09F, - 37187 - 11905: 0xDBB9, - 37188 - 11905: 0xE0A0, - 37189 - 11905: 0xE140, - 37190 - 11905: 0xDBBA, - 37191 - 11905: 0xE141, - 37192 - 11905: 0xE142, - 37193 - 11905: 0xD3CF, - 37194 - 11905: 0xF4FA, - 37195 - 11905: 0xC7F5, - 37196 - 11905: 0xD7C3, - 37197 - 11905: 0xC5E4, - 37198 - 11905: 0xF4FC, - 37199 - 11905: 0xF4FD, - 37200 - 11905: 0xF4FB, - 37201 - 11905: 0xE143, - 37202 - 11905: 0xBEC6, - 37203 - 11905: 0xE144, - 37204 - 11905: 0xE145, - 37205 - 11905: 0xE146, - 37206 - 11905: 0xE147, - 37207 - 11905: 0xD0EF, - 37208 - 11905: 0xE148, - 37209 - 11905: 0xE149, - 37210 - 11905: 0xB7D3, - 37211 - 11905: 0xE14A, - 37212 - 11905: 0xE14B, - 37213 - 11905: 0xD4CD, - 37214 - 11905: 0xCCAA, - 37215 - 11905: 0xE14C, - 37216 - 11905: 0xE14D, - 37217 - 11905: 0xF5A2, - 37218 - 11905: 0xF5A1, - 37219 - 11905: 0xBAA8, - 37220 - 11905: 0xF4FE, - 37221 - 11905: 0xCBD6, - 37222 - 11905: 0xE14E, - 37223 - 11905: 0xE14F, - 37224 - 11905: 0xE150, - 37225 - 11905: 0xF5A4, - 37226 - 11905: 0xC0D2, - 37227 - 11905: 0xE151, - 37228 - 11905: 0xB3EA, - 37229 - 11905: 0xE152, - 37230 - 11905: 0xCDAA, - 37231 - 11905: 0xF5A5, - 37232 - 11905: 0xF5A3, - 37233 - 11905: 0xBDB4, - 37234 - 11905: 0xF5A8, - 37235 - 11905: 0xE153, - 37236 - 11905: 0xF5A9, - 37237 - 11905: 0xBDCD, - 37238 - 11905: 0xC3B8, - 37239 - 11905: 0xBFE1, - 37240 - 11905: 0xCBE1, - 37241 - 11905: 0xF5AA, - 37242 - 11905: 0xE154, - 37243 - 11905: 0xE155, - 37244 - 11905: 0xE156, - 37245 - 11905: 0xF5A6, - 37246 - 11905: 0xF5A7, - 37247 - 11905: 0xC4F0, - 37248 - 11905: 0xE157, - 37249 - 11905: 0xE158, - 37250 - 11905: 0xE159, - 37251 - 11905: 0xE15A, - 37252 - 11905: 0xE15B, - 37253 - 11905: 0xF5AC, - 37254 - 11905: 0xE15C, - 37255 - 11905: 0xB4BC, - 37256 - 11905: 0xE15D, - 37257 - 11905: 0xD7ED, - 37258 - 11905: 0xE15E, - 37259 - 11905: 0xB4D7, - 37260 - 11905: 0xF5AB, - 37261 - 11905: 0xF5AE, - 37262 - 11905: 0xE15F, - 37263 - 11905: 0xE160, - 37264 - 11905: 0xF5AD, - 37265 - 11905: 0xF5AF, - 37266 - 11905: 0xD0D1, - 37267 - 11905: 0xE161, - 37268 - 11905: 0xE162, - 37269 - 11905: 0xE163, - 37270 - 11905: 0xE164, - 37271 - 11905: 0xE165, - 37272 - 11905: 0xE166, - 37273 - 11905: 0xE167, - 37274 - 11905: 0xC3D1, - 37275 - 11905: 0xC8A9, - 37276 - 11905: 0xE168, - 37277 - 11905: 0xE169, - 37278 - 11905: 0xE16A, - 37279 - 11905: 0xE16B, - 37280 - 11905: 0xE16C, - 37281 - 11905: 0xE16D, - 37282 - 11905: 0xF5B0, - 37283 - 11905: 0xF5B1, - 37284 - 11905: 0xE16E, - 37285 - 11905: 0xE16F, - 37286 - 11905: 0xE170, - 37287 - 11905: 0xE171, - 37288 - 11905: 0xE172, - 37289 - 11905: 0xE173, - 37290 - 11905: 0xF5B2, - 37291 - 11905: 0xE174, - 37292 - 11905: 0xE175, - 37293 - 11905: 0xF5B3, - 37294 - 11905: 0xF5B4, - 37295 - 11905: 0xF5B5, - 37296 - 11905: 0xE176, - 37297 - 11905: 0xE177, - 37298 - 11905: 0xE178, - 37299 - 11905: 0xE179, - 37300 - 11905: 0xF5B7, - 37301 - 11905: 0xF5B6, - 37302 - 11905: 0xE17A, - 37303 - 11905: 0xE17B, - 37304 - 11905: 0xE17C, - 37305 - 11905: 0xE17D, - 37306 - 11905: 0xF5B8, - 37307 - 11905: 0xE17E, - 37308 - 11905: 0xE180, - 37309 - 11905: 0xE181, - 37310 - 11905: 0xE182, - 37311 - 11905: 0xE183, - 37312 - 11905: 0xE184, - 37313 - 11905: 0xE185, - 37314 - 11905: 0xE186, - 37315 - 11905: 0xE187, - 37316 - 11905: 0xE188, - 37317 - 11905: 0xE189, - 37318 - 11905: 0xE18A, - 37319 - 11905: 0xB2C9, - 37320 - 11905: 0xE18B, - 37321 - 11905: 0xD3D4, - 37322 - 11905: 0xCACD, - 37323 - 11905: 0xE18C, - 37324 - 11905: 0xC0EF, - 37325 - 11905: 0xD6D8, - 37326 - 11905: 0xD2B0, - 37327 - 11905: 0xC1BF, - 37328 - 11905: 0xE18D, - 37329 - 11905: 0xBDF0, - 37330 - 11905: 0xE18E, - 37331 - 11905: 0xE18F, - 37332 - 11905: 0xE190, - 37333 - 11905: 0xE191, - 37334 - 11905: 0xE192, - 37335 - 11905: 0xE193, - 37336 - 11905: 0xE194, - 37337 - 11905: 0xE195, - 37338 - 11905: 0xE196, - 37339 - 11905: 0xE197, - 37340 - 11905: 0xB8AA, - 37341 - 11905: 0xE198, - 37342 - 11905: 0xE199, - 37343 - 11905: 0xE19A, - 37344 - 11905: 0xE19B, - 37345 - 11905: 0xE19C, - 37346 - 11905: 0xE19D, - 37347 - 11905: 0xE19E, - 37348 - 11905: 0xE19F, - 37349 - 11905: 0xE1A0, - 37350 - 11905: 0xE240, - 37351 - 11905: 0xE241, - 37352 - 11905: 0xE242, - 37353 - 11905: 0xE243, - 37354 - 11905: 0xE244, - 37355 - 11905: 0xE245, - 37356 - 11905: 0xE246, - 37357 - 11905: 0xE247, - 37358 - 11905: 0xE248, - 37359 - 11905: 0xE249, - 37360 - 11905: 0xE24A, - 37361 - 11905: 0xE24B, - 37362 - 11905: 0xE24C, - 37363 - 11905: 0xE24D, - 37364 - 11905: 0xE24E, - 37365 - 11905: 0xE24F, - 37366 - 11905: 0xE250, - 37367 - 11905: 0xE251, - 37368 - 11905: 0xE252, - 37369 - 11905: 0xE253, - 37370 - 11905: 0xE254, - 37371 - 11905: 0xE255, - 37372 - 11905: 0xE256, - 37373 - 11905: 0xE257, - 37374 - 11905: 0xE258, - 37375 - 11905: 0xE259, - 37376 - 11905: 0xE25A, - 37377 - 11905: 0xE25B, - 37378 - 11905: 0xE25C, - 37379 - 11905: 0xE25D, - 37380 - 11905: 0xE25E, - 37381 - 11905: 0xE25F, - 37382 - 11905: 0xE260, - 37383 - 11905: 0xE261, - 37384 - 11905: 0xE262, - 37385 - 11905: 0xE263, - 37386 - 11905: 0xE264, - 37387 - 11905: 0xE265, - 37388 - 11905: 0xE266, - 37389 - 11905: 0xE267, - 37390 - 11905: 0xE268, - 37391 - 11905: 0xE269, - 37392 - 11905: 0xE26A, - 37393 - 11905: 0xE26B, - 37394 - 11905: 0xE26C, - 37395 - 11905: 0xE26D, - 37396 - 11905: 0xE26E, - 37397 - 11905: 0xE26F, - 37398 - 11905: 0xE270, - 37399 - 11905: 0xE271, - 37400 - 11905: 0xE272, - 37401 - 11905: 0xE273, - 37402 - 11905: 0xE274, - 37403 - 11905: 0xE275, - 37404 - 11905: 0xE276, - 37405 - 11905: 0xE277, - 37406 - 11905: 0xE278, - 37407 - 11905: 0xE279, - 37408 - 11905: 0xE27A, - 37409 - 11905: 0xE27B, - 37410 - 11905: 0xE27C, - 37411 - 11905: 0xE27D, - 37412 - 11905: 0xE27E, - 37413 - 11905: 0xE280, - 37414 - 11905: 0xE281, - 37415 - 11905: 0xE282, - 37416 - 11905: 0xE283, - 37417 - 11905: 0xE284, - 37418 - 11905: 0xE285, - 37419 - 11905: 0xE286, - 37420 - 11905: 0xE287, - 37421 - 11905: 0xE288, - 37422 - 11905: 0xE289, - 37423 - 11905: 0xE28A, - 37424 - 11905: 0xE28B, - 37425 - 11905: 0xE28C, - 37426 - 11905: 0xE28D, - 37427 - 11905: 0xE28E, - 37428 - 11905: 0xE28F, - 37429 - 11905: 0xE290, - 37430 - 11905: 0xE291, - 37431 - 11905: 0xE292, - 37432 - 11905: 0xE293, - 37433 - 11905: 0xE294, - 37434 - 11905: 0xE295, - 37435 - 11905: 0xE296, - 37436 - 11905: 0xE297, - 37437 - 11905: 0xE298, - 37438 - 11905: 0xE299, - 37439 - 11905: 0xE29A, - 37440 - 11905: 0xE29B, - 37441 - 11905: 0xE29C, - 37442 - 11905: 0xE29D, - 37443 - 11905: 0xE29E, - 37444 - 11905: 0xE29F, - 37445 - 11905: 0xE2A0, - 37446 - 11905: 0xE340, - 37447 - 11905: 0xE341, - 37448 - 11905: 0xE342, - 37449 - 11905: 0xE343, - 37450 - 11905: 0xE344, - 37451 - 11905: 0xE345, - 37452 - 11905: 0xE346, - 37453 - 11905: 0xE347, - 37454 - 11905: 0xE348, - 37455 - 11905: 0xE349, - 37456 - 11905: 0xE34A, - 37457 - 11905: 0xE34B, - 37458 - 11905: 0xE34C, - 37459 - 11905: 0xE34D, - 37460 - 11905: 0xE34E, - 37461 - 11905: 0xE34F, - 37462 - 11905: 0xE350, - 37463 - 11905: 0xE351, - 37464 - 11905: 0xE352, - 37465 - 11905: 0xE353, - 37466 - 11905: 0xE354, - 37467 - 11905: 0xE355, - 37468 - 11905: 0xE356, - 37469 - 11905: 0xE357, - 37470 - 11905: 0xE358, - 37471 - 11905: 0xE359, - 37472 - 11905: 0xE35A, - 37473 - 11905: 0xE35B, - 37474 - 11905: 0xE35C, - 37475 - 11905: 0xE35D, - 37476 - 11905: 0xE35E, - 37477 - 11905: 0xE35F, - 37478 - 11905: 0xE360, - 37479 - 11905: 0xE361, - 37480 - 11905: 0xE362, - 37481 - 11905: 0xE363, - 37482 - 11905: 0xE364, - 37483 - 11905: 0xE365, - 37484 - 11905: 0xE366, - 37485 - 11905: 0xE367, - 37486 - 11905: 0xE368, - 37487 - 11905: 0xE369, - 37488 - 11905: 0xE36A, - 37489 - 11905: 0xE36B, - 37490 - 11905: 0xE36C, - 37491 - 11905: 0xE36D, - 37492 - 11905: 0xBCF8, - 37493 - 11905: 0xE36E, - 37494 - 11905: 0xE36F, - 37495 - 11905: 0xE370, - 37496 - 11905: 0xE371, - 37497 - 11905: 0xE372, - 37498 - 11905: 0xE373, - 37499 - 11905: 0xE374, - 37500 - 11905: 0xE375, - 37501 - 11905: 0xE376, - 37502 - 11905: 0xE377, - 37503 - 11905: 0xE378, - 37504 - 11905: 0xE379, - 37505 - 11905: 0xE37A, - 37506 - 11905: 0xE37B, - 37507 - 11905: 0xE37C, - 37508 - 11905: 0xE37D, - 37509 - 11905: 0xE37E, - 37510 - 11905: 0xE380, - 37511 - 11905: 0xE381, - 37512 - 11905: 0xE382, - 37513 - 11905: 0xE383, - 37514 - 11905: 0xE384, - 37515 - 11905: 0xE385, - 37516 - 11905: 0xE386, - 37517 - 11905: 0xE387, - 37518 - 11905: 0xF6C6, - 37519 - 11905: 0xE388, - 37520 - 11905: 0xE389, - 37521 - 11905: 0xE38A, - 37522 - 11905: 0xE38B, - 37523 - 11905: 0xE38C, - 37524 - 11905: 0xE38D, - 37525 - 11905: 0xE38E, - 37526 - 11905: 0xE38F, - 37527 - 11905: 0xE390, - 37528 - 11905: 0xE391, - 37529 - 11905: 0xE392, - 37530 - 11905: 0xE393, - 37531 - 11905: 0xE394, - 37532 - 11905: 0xE395, - 37533 - 11905: 0xE396, - 37534 - 11905: 0xE397, - 37535 - 11905: 0xE398, - 37536 - 11905: 0xE399, - 37537 - 11905: 0xE39A, - 37538 - 11905: 0xE39B, - 37539 - 11905: 0xE39C, - 37540 - 11905: 0xE39D, - 37541 - 11905: 0xE39E, - 37542 - 11905: 0xE39F, - 37543 - 11905: 0xE3A0, - 37544 - 11905: 0xE440, - 37545 - 11905: 0xE441, - 37546 - 11905: 0xE442, - 37547 - 11905: 0xE443, - 37548 - 11905: 0xE444, - 37549 - 11905: 0xE445, - 37550 - 11905: 0xF6C7, - 37551 - 11905: 0xE446, - 37552 - 11905: 0xE447, - 37553 - 11905: 0xE448, - 37554 - 11905: 0xE449, - 37555 - 11905: 0xE44A, - 37556 - 11905: 0xE44B, - 37557 - 11905: 0xE44C, - 37558 - 11905: 0xE44D, - 37559 - 11905: 0xE44E, - 37560 - 11905: 0xE44F, - 37561 - 11905: 0xE450, - 37562 - 11905: 0xE451, - 37563 - 11905: 0xE452, - 37564 - 11905: 0xE453, - 37565 - 11905: 0xE454, - 37566 - 11905: 0xE455, - 37567 - 11905: 0xE456, - 37568 - 11905: 0xE457, - 37569 - 11905: 0xE458, - 37570 - 11905: 0xE459, - 37571 - 11905: 0xE45A, - 37572 - 11905: 0xE45B, - 37573 - 11905: 0xE45C, - 37574 - 11905: 0xE45D, - 37575 - 11905: 0xE45E, - 37576 - 11905: 0xF6C8, - 37577 - 11905: 0xE45F, - 37578 - 11905: 0xE460, - 37579 - 11905: 0xE461, - 37580 - 11905: 0xE462, - 37581 - 11905: 0xE463, - 37582 - 11905: 0xE464, - 37583 - 11905: 0xE465, - 37584 - 11905: 0xE466, - 37585 - 11905: 0xE467, - 37586 - 11905: 0xE468, - 37587 - 11905: 0xE469, - 37588 - 11905: 0xE46A, - 37589 - 11905: 0xE46B, - 37590 - 11905: 0xE46C, - 37591 - 11905: 0xE46D, - 37592 - 11905: 0xE46E, - 37593 - 11905: 0xE46F, - 37594 - 11905: 0xE470, - 37595 - 11905: 0xE471, - 37596 - 11905: 0xE472, - 37597 - 11905: 0xE473, - 37598 - 11905: 0xE474, - 37599 - 11905: 0xE475, - 37600 - 11905: 0xE476, - 37601 - 11905: 0xE477, - 37602 - 11905: 0xE478, - 37603 - 11905: 0xE479, - 37604 - 11905: 0xE47A, - 37605 - 11905: 0xE47B, - 37606 - 11905: 0xE47C, - 37607 - 11905: 0xE47D, - 37608 - 11905: 0xE47E, - 37609 - 11905: 0xE480, - 37610 - 11905: 0xE481, - 37611 - 11905: 0xE482, - 37612 - 11905: 0xE483, - 37613 - 11905: 0xE484, - 37614 - 11905: 0xE485, - 37615 - 11905: 0xE486, - 37616 - 11905: 0xE487, - 37617 - 11905: 0xE488, - 37618 - 11905: 0xE489, - 37619 - 11905: 0xE48A, - 37620 - 11905: 0xE48B, - 37621 - 11905: 0xE48C, - 37622 - 11905: 0xE48D, - 37623 - 11905: 0xE48E, - 37624 - 11905: 0xE48F, - 37625 - 11905: 0xE490, - 37626 - 11905: 0xE491, - 37627 - 11905: 0xE492, - 37628 - 11905: 0xE493, - 37629 - 11905: 0xE494, - 37630 - 11905: 0xE495, - 37631 - 11905: 0xE496, - 37632 - 11905: 0xE497, - 37633 - 11905: 0xE498, - 37634 - 11905: 0xE499, - 37635 - 11905: 0xE49A, - 37636 - 11905: 0xE49B, - 37637 - 11905: 0xE49C, - 37638 - 11905: 0xE49D, - 37639 - 11905: 0xE49E, - 37640 - 11905: 0xE49F, - 37641 - 11905: 0xE4A0, - 37642 - 11905: 0xE540, - 37643 - 11905: 0xE541, - 37644 - 11905: 0xE542, - 37645 - 11905: 0xE543, - 37646 - 11905: 0xE544, - 37647 - 11905: 0xE545, - 37648 - 11905: 0xE546, - 37649 - 11905: 0xE547, - 37650 - 11905: 0xE548, - 37651 - 11905: 0xE549, - 37652 - 11905: 0xE54A, - 37653 - 11905: 0xE54B, - 37654 - 11905: 0xE54C, - 37655 - 11905: 0xE54D, - 37656 - 11905: 0xE54E, - 37657 - 11905: 0xE54F, - 37658 - 11905: 0xE550, - 37659 - 11905: 0xE551, - 37660 - 11905: 0xE552, - 37661 - 11905: 0xE553, - 37662 - 11905: 0xE554, - 37663 - 11905: 0xE555, - 37664 - 11905: 0xE556, - 37665 - 11905: 0xE557, - 37666 - 11905: 0xE558, - 37667 - 11905: 0xE559, - 37668 - 11905: 0xE55A, - 37669 - 11905: 0xE55B, - 37670 - 11905: 0xE55C, - 37671 - 11905: 0xE55D, - 37672 - 11905: 0xE55E, - 37673 - 11905: 0xE55F, - 37674 - 11905: 0xE560, - 37675 - 11905: 0xE561, - 37676 - 11905: 0xE562, - 37677 - 11905: 0xE563, - 37678 - 11905: 0xE564, - 37679 - 11905: 0xE565, - 37680 - 11905: 0xE566, - 37681 - 11905: 0xE567, - 37682 - 11905: 0xE568, - 37683 - 11905: 0xE569, - 37684 - 11905: 0xE56A, - 37685 - 11905: 0xE56B, - 37686 - 11905: 0xE56C, - 37687 - 11905: 0xE56D, - 37688 - 11905: 0xE56E, - 37689 - 11905: 0xE56F, - 37690 - 11905: 0xE570, - 37691 - 11905: 0xE571, - 37692 - 11905: 0xE572, - 37693 - 11905: 0xE573, - 37694 - 11905: 0xF6C9, - 37695 - 11905: 0xE574, - 37696 - 11905: 0xE575, - 37697 - 11905: 0xE576, - 37698 - 11905: 0xE577, - 37699 - 11905: 0xE578, - 37700 - 11905: 0xE579, - 37701 - 11905: 0xE57A, - 37702 - 11905: 0xE57B, - 37703 - 11905: 0xE57C, - 37704 - 11905: 0xE57D, - 37705 - 11905: 0xE57E, - 37706 - 11905: 0xE580, - 37707 - 11905: 0xE581, - 37708 - 11905: 0xE582, - 37709 - 11905: 0xE583, - 37710 - 11905: 0xE584, - 37711 - 11905: 0xE585, - 37712 - 11905: 0xE586, - 37713 - 11905: 0xE587, - 37714 - 11905: 0xE588, - 37715 - 11905: 0xE589, - 37716 - 11905: 0xE58A, - 37717 - 11905: 0xE58B, - 37718 - 11905: 0xE58C, - 37719 - 11905: 0xE58D, - 37720 - 11905: 0xE58E, - 37721 - 11905: 0xE58F, - 37722 - 11905: 0xE590, - 37723 - 11905: 0xE591, - 37724 - 11905: 0xE592, - 37725 - 11905: 0xE593, - 37726 - 11905: 0xE594, - 37727 - 11905: 0xE595, - 37728 - 11905: 0xE596, - 37729 - 11905: 0xE597, - 37730 - 11905: 0xE598, - 37731 - 11905: 0xE599, - 37732 - 11905: 0xE59A, - 37733 - 11905: 0xE59B, - 37734 - 11905: 0xE59C, - 37735 - 11905: 0xE59D, - 37736 - 11905: 0xE59E, - 37737 - 11905: 0xE59F, - 37738 - 11905: 0xF6CA, - 37739 - 11905: 0xE5A0, - 37740 - 11905: 0xE640, - 37741 - 11905: 0xE641, - 37742 - 11905: 0xE642, - 37743 - 11905: 0xE643, - 37744 - 11905: 0xE644, - 37745 - 11905: 0xE645, - 37746 - 11905: 0xE646, - 37747 - 11905: 0xE647, - 37748 - 11905: 0xE648, - 37749 - 11905: 0xE649, - 37750 - 11905: 0xE64A, - 37751 - 11905: 0xE64B, - 37752 - 11905: 0xE64C, - 37753 - 11905: 0xE64D, - 37754 - 11905: 0xE64E, - 37755 - 11905: 0xE64F, - 37756 - 11905: 0xE650, - 37757 - 11905: 0xE651, - 37758 - 11905: 0xE652, - 37759 - 11905: 0xE653, - 37760 - 11905: 0xE654, - 37761 - 11905: 0xE655, - 37762 - 11905: 0xE656, - 37763 - 11905: 0xE657, - 37764 - 11905: 0xE658, - 37765 - 11905: 0xE659, - 37766 - 11905: 0xE65A, - 37767 - 11905: 0xE65B, - 37768 - 11905: 0xE65C, - 37769 - 11905: 0xE65D, - 37770 - 11905: 0xE65E, - 37771 - 11905: 0xE65F, - 37772 - 11905: 0xE660, - 37773 - 11905: 0xE661, - 37774 - 11905: 0xE662, - 37775 - 11905: 0xF6CC, - 37776 - 11905: 0xE663, - 37777 - 11905: 0xE664, - 37778 - 11905: 0xE665, - 37779 - 11905: 0xE666, - 37780 - 11905: 0xE667, - 37781 - 11905: 0xE668, - 37782 - 11905: 0xE669, - 37783 - 11905: 0xE66A, - 37784 - 11905: 0xE66B, - 37785 - 11905: 0xE66C, - 37786 - 11905: 0xE66D, - 37787 - 11905: 0xE66E, - 37788 - 11905: 0xE66F, - 37789 - 11905: 0xE670, - 37790 - 11905: 0xE671, - 37791 - 11905: 0xE672, - 37792 - 11905: 0xE673, - 37793 - 11905: 0xE674, - 37794 - 11905: 0xE675, - 37795 - 11905: 0xE676, - 37796 - 11905: 0xE677, - 37797 - 11905: 0xE678, - 37798 - 11905: 0xE679, - 37799 - 11905: 0xE67A, - 37800 - 11905: 0xE67B, - 37801 - 11905: 0xE67C, - 37802 - 11905: 0xE67D, - 37803 - 11905: 0xE67E, - 37804 - 11905: 0xE680, - 37805 - 11905: 0xE681, - 37806 - 11905: 0xE682, - 37807 - 11905: 0xE683, - 37808 - 11905: 0xE684, - 37809 - 11905: 0xE685, - 37810 - 11905: 0xE686, - 37811 - 11905: 0xE687, - 37812 - 11905: 0xE688, - 37813 - 11905: 0xE689, - 37814 - 11905: 0xE68A, - 37815 - 11905: 0xE68B, - 37816 - 11905: 0xE68C, - 37817 - 11905: 0xE68D, - 37818 - 11905: 0xE68E, - 37819 - 11905: 0xE68F, - 37820 - 11905: 0xE690, - 37821 - 11905: 0xE691, - 37822 - 11905: 0xE692, - 37823 - 11905: 0xE693, - 37824 - 11905: 0xE694, - 37825 - 11905: 0xE695, - 37826 - 11905: 0xE696, - 37827 - 11905: 0xE697, - 37828 - 11905: 0xE698, - 37829 - 11905: 0xE699, - 37830 - 11905: 0xE69A, - 37831 - 11905: 0xE69B, - 37832 - 11905: 0xE69C, - 37833 - 11905: 0xE69D, - 37834 - 11905: 0xF6CB, - 37835 - 11905: 0xE69E, - 37836 - 11905: 0xE69F, - 37837 - 11905: 0xE6A0, - 37838 - 11905: 0xE740, - 37839 - 11905: 0xE741, - 37840 - 11905: 0xE742, - 37841 - 11905: 0xE743, - 37842 - 11905: 0xE744, - 37843 - 11905: 0xE745, - 37844 - 11905: 0xE746, - 37845 - 11905: 0xE747, - 37846 - 11905: 0xF7E9, - 37847 - 11905: 0xE748, - 37848 - 11905: 0xE749, - 37849 - 11905: 0xE74A, - 37850 - 11905: 0xE74B, - 37851 - 11905: 0xE74C, - 37852 - 11905: 0xE74D, - 37853 - 11905: 0xE74E, - 37854 - 11905: 0xE74F, - 37855 - 11905: 0xE750, - 37856 - 11905: 0xE751, - 37857 - 11905: 0xE752, - 37858 - 11905: 0xE753, - 37859 - 11905: 0xE754, - 37860 - 11905: 0xE755, - 37861 - 11905: 0xE756, - 37862 - 11905: 0xE757, - 37863 - 11905: 0xE758, - 37864 - 11905: 0xE759, - 37865 - 11905: 0xE75A, - 37866 - 11905: 0xE75B, - 37867 - 11905: 0xE75C, - 37868 - 11905: 0xE75D, - 37869 - 11905: 0xE75E, - 37870 - 11905: 0xE75F, - 37871 - 11905: 0xE760, - 37872 - 11905: 0xE761, - 37873 - 11905: 0xE762, - 37874 - 11905: 0xE763, - 37875 - 11905: 0xE764, - 37876 - 11905: 0xE765, - 37877 - 11905: 0xE766, - 37878 - 11905: 0xE767, - 37879 - 11905: 0xE768, - 37880 - 11905: 0xE769, - 37881 - 11905: 0xE76A, - 37882 - 11905: 0xE76B, - 37883 - 11905: 0xE76C, - 37884 - 11905: 0xE76D, - 37885 - 11905: 0xE76E, - 37886 - 11905: 0xE76F, - 37887 - 11905: 0xE770, - 37888 - 11905: 0xE771, - 37889 - 11905: 0xE772, - 37890 - 11905: 0xE773, - 37891 - 11905: 0xE774, - 37892 - 11905: 0xE775, - 37893 - 11905: 0xE776, - 37894 - 11905: 0xE777, - 37895 - 11905: 0xE778, - 37896 - 11905: 0xE779, - 37897 - 11905: 0xE77A, - 37898 - 11905: 0xE77B, - 37899 - 11905: 0xE77C, - 37900 - 11905: 0xE77D, - 37901 - 11905: 0xE77E, - 37902 - 11905: 0xE780, - 37903 - 11905: 0xE781, - 37904 - 11905: 0xE782, - 37905 - 11905: 0xE783, - 37906 - 11905: 0xE784, - 37907 - 11905: 0xE785, - 37908 - 11905: 0xE786, - 37909 - 11905: 0xE787, - 37910 - 11905: 0xE788, - 37911 - 11905: 0xE789, - 37912 - 11905: 0xE78A, - 37913 - 11905: 0xE78B, - 37914 - 11905: 0xE78C, - 37915 - 11905: 0xE78D, - 37916 - 11905: 0xE78E, - 37917 - 11905: 0xE78F, - 37918 - 11905: 0xE790, - 37919 - 11905: 0xE791, - 37920 - 11905: 0xE792, - 37921 - 11905: 0xE793, - 37922 - 11905: 0xE794, - 37923 - 11905: 0xE795, - 37924 - 11905: 0xE796, - 37925 - 11905: 0xE797, - 37926 - 11905: 0xE798, - 37927 - 11905: 0xE799, - 37928 - 11905: 0xE79A, - 37929 - 11905: 0xE79B, - 37930 - 11905: 0xE79C, - 37931 - 11905: 0xE79D, - 37932 - 11905: 0xE79E, - 37933 - 11905: 0xE79F, - 37934 - 11905: 0xE7A0, - 37935 - 11905: 0xE840, - 37936 - 11905: 0xE841, - 37937 - 11905: 0xE842, - 37938 - 11905: 0xE843, - 37939 - 11905: 0xE844, - 37940 - 11905: 0xE845, - 37941 - 11905: 0xE846, - 37942 - 11905: 0xE847, - 37943 - 11905: 0xE848, - 37944 - 11905: 0xE849, - 37945 - 11905: 0xE84A, - 37946 - 11905: 0xE84B, - 37947 - 11905: 0xE84C, - 37948 - 11905: 0xE84D, - 37949 - 11905: 0xE84E, - 37950 - 11905: 0xF6CD, - 37951 - 11905: 0xE84F, - 37952 - 11905: 0xE850, - 37953 - 11905: 0xE851, - 37954 - 11905: 0xE852, - 37955 - 11905: 0xE853, - 37956 - 11905: 0xE854, - 37957 - 11905: 0xE855, - 37958 - 11905: 0xE856, - 37959 - 11905: 0xE857, - 37960 - 11905: 0xE858, - 37961 - 11905: 0xE859, - 37962 - 11905: 0xE85A, - 37963 - 11905: 0xE85B, - 37964 - 11905: 0xE85C, - 37965 - 11905: 0xE85D, - 37966 - 11905: 0xE85E, - 37967 - 11905: 0xE85F, - 37968 - 11905: 0xE860, - 37969 - 11905: 0xE861, - 37970 - 11905: 0xE862, - 37971 - 11905: 0xE863, - 37972 - 11905: 0xE864, - 37973 - 11905: 0xE865, - 37974 - 11905: 0xE866, - 37975 - 11905: 0xE867, - 37976 - 11905: 0xE868, - 37977 - 11905: 0xE869, - 37978 - 11905: 0xE86A, - 37979 - 11905: 0xE86B, - 37980 - 11905: 0xE86C, - 37981 - 11905: 0xE86D, - 37982 - 11905: 0xE86E, - 37983 - 11905: 0xE86F, - 37984 - 11905: 0xE870, - 37985 - 11905: 0xE871, - 37986 - 11905: 0xE872, - 37987 - 11905: 0xE873, - 37988 - 11905: 0xE874, - 37989 - 11905: 0xE875, - 37990 - 11905: 0xE876, - 37991 - 11905: 0xE877, - 37992 - 11905: 0xE878, - 37993 - 11905: 0xE879, - 37994 - 11905: 0xE87A, - 37995 - 11905: 0xF6CE, - 37996 - 11905: 0xE87B, - 37997 - 11905: 0xE87C, - 37998 - 11905: 0xE87D, - 37999 - 11905: 0xE87E, - 38000 - 11905: 0xE880, - 38001 - 11905: 0xE881, - 38002 - 11905: 0xE882, - 38003 - 11905: 0xE883, - 38004 - 11905: 0xE884, - 38005 - 11905: 0xE885, - 38006 - 11905: 0xE886, - 38007 - 11905: 0xE887, - 38008 - 11905: 0xE888, - 38009 - 11905: 0xE889, - 38010 - 11905: 0xE88A, - 38011 - 11905: 0xE88B, - 38012 - 11905: 0xE88C, - 38013 - 11905: 0xE88D, - 38014 - 11905: 0xE88E, - 38015 - 11905: 0xE88F, - 38016 - 11905: 0xE890, - 38017 - 11905: 0xE891, - 38018 - 11905: 0xE892, - 38019 - 11905: 0xE893, - 38020 - 11905: 0xE894, - 38021 - 11905: 0xEEC4, - 38022 - 11905: 0xEEC5, - 38023 - 11905: 0xEEC6, - 38024 - 11905: 0xD5EB, - 38025 - 11905: 0xB6A4, - 38026 - 11905: 0xEEC8, - 38027 - 11905: 0xEEC7, - 38028 - 11905: 0xEEC9, - 38029 - 11905: 0xEECA, - 38030 - 11905: 0xC7A5, - 38031 - 11905: 0xEECB, - 38032 - 11905: 0xEECC, - 38033 - 11905: 0xE895, - 38034 - 11905: 0xB7B0, - 38035 - 11905: 0xB5F6, - 38036 - 11905: 0xEECD, - 38037 - 11905: 0xEECF, - 38038 - 11905: 0xE896, - 38039 - 11905: 0xEECE, - 38040 - 11905: 0xE897, - 38041 - 11905: 0xB8C6, - 38042 - 11905: 0xEED0, - 38043 - 11905: 0xEED1, - 38044 - 11905: 0xEED2, - 38045 - 11905: 0xB6DB, - 38046 - 11905: 0xB3AE, - 38047 - 11905: 0xD6D3, - 38048 - 11905: 0xC4C6, - 38049 - 11905: 0xB1B5, - 38050 - 11905: 0xB8D6, - 38051 - 11905: 0xEED3, - 38052 - 11905: 0xEED4, - 38053 - 11905: 0xD4BF, - 38054 - 11905: 0xC7D5, - 38055 - 11905: 0xBEFB, - 38056 - 11905: 0xCED9, - 38057 - 11905: 0xB9B3, - 38058 - 11905: 0xEED6, - 38059 - 11905: 0xEED5, - 38060 - 11905: 0xEED8, - 38061 - 11905: 0xEED7, - 38062 - 11905: 0xC5A5, - 38063 - 11905: 0xEED9, - 38064 - 11905: 0xEEDA, - 38065 - 11905: 0xC7AE, - 38066 - 11905: 0xEEDB, - 38067 - 11905: 0xC7AF, - 38068 - 11905: 0xEEDC, - 38069 - 11905: 0xB2A7, - 38070 - 11905: 0xEEDD, - 38071 - 11905: 0xEEDE, - 38072 - 11905: 0xEEDF, - 38073 - 11905: 0xEEE0, - 38074 - 11905: 0xEEE1, - 38075 - 11905: 0xD7EA, - 38076 - 11905: 0xEEE2, - 38077 - 11905: 0xEEE3, - 38078 - 11905: 0xBCD8, - 38079 - 11905: 0xEEE4, - 38080 - 11905: 0xD3CB, - 38081 - 11905: 0xCCFA, - 38082 - 11905: 0xB2AC, - 38083 - 11905: 0xC1E5, - 38084 - 11905: 0xEEE5, - 38085 - 11905: 0xC7A6, - 38086 - 11905: 0xC3AD, - 38087 - 11905: 0xE898, - 38088 - 11905: 0xEEE6, - 38089 - 11905: 0xEEE7, - 38090 - 11905: 0xEEE8, - 38091 - 11905: 0xEEE9, - 38092 - 11905: 0xEEEA, - 38093 - 11905: 0xEEEB, - 38094 - 11905: 0xEEEC, - 38095 - 11905: 0xE899, - 38096 - 11905: 0xEEED, - 38097 - 11905: 0xEEEE, - 38098 - 11905: 0xEEEF, - 38099 - 11905: 0xE89A, - 38100 - 11905: 0xE89B, - 38101 - 11905: 0xEEF0, - 38102 - 11905: 0xEEF1, - 38103 - 11905: 0xEEF2, - 38104 - 11905: 0xEEF4, - 38105 - 11905: 0xEEF3, - 38106 - 11905: 0xE89C, - 38107 - 11905: 0xEEF5, - 38108 - 11905: 0xCDAD, - 38109 - 11905: 0xC2C1, - 38110 - 11905: 0xEEF6, - 38111 - 11905: 0xEEF7, - 38112 - 11905: 0xEEF8, - 38113 - 11905: 0xD5A1, - 38114 - 11905: 0xEEF9, - 38115 - 11905: 0xCFB3, - 38116 - 11905: 0xEEFA, - 38117 - 11905: 0xEEFB, - 38118 - 11905: 0xE89D, - 38119 - 11905: 0xEEFC, - 38120 - 11905: 0xEEFD, - 38121 - 11905: 0xEFA1, - 38122 - 11905: 0xEEFE, - 38123 - 11905: 0xEFA2, - 38124 - 11905: 0xB8F5, - 38125 - 11905: 0xC3FA, - 38126 - 11905: 0xEFA3, - 38127 - 11905: 0xEFA4, - 38128 - 11905: 0xBDC2, - 38129 - 11905: 0xD2BF, - 38130 - 11905: 0xB2F9, - 38131 - 11905: 0xEFA5, - 38132 - 11905: 0xEFA6, - 38133 - 11905: 0xEFA7, - 38134 - 11905: 0xD2F8, - 38135 - 11905: 0xEFA8, - 38136 - 11905: 0xD6FD, - 38137 - 11905: 0xEFA9, - 38138 - 11905: 0xC6CC, - 38139 - 11905: 0xE89E, - 38140 - 11905: 0xEFAA, - 38141 - 11905: 0xEFAB, - 38142 - 11905: 0xC1B4, - 38143 - 11905: 0xEFAC, - 38144 - 11905: 0xCFFA, - 38145 - 11905: 0xCBF8, - 38146 - 11905: 0xEFAE, - 38147 - 11905: 0xEFAD, - 38148 - 11905: 0xB3FA, - 38149 - 11905: 0xB9F8, - 38150 - 11905: 0xEFAF, - 38151 - 11905: 0xEFB0, - 38152 - 11905: 0xD0E2, - 38153 - 11905: 0xEFB1, - 38154 - 11905: 0xEFB2, - 38155 - 11905: 0xB7E6, - 38156 - 11905: 0xD0BF, - 38157 - 11905: 0xEFB3, - 38158 - 11905: 0xEFB4, - 38159 - 11905: 0xEFB5, - 38160 - 11905: 0xC8F1, - 38161 - 11905: 0xCCE0, - 38162 - 11905: 0xEFB6, - 38163 - 11905: 0xEFB7, - 38164 - 11905: 0xEFB8, - 38165 - 11905: 0xEFB9, - 38166 - 11905: 0xEFBA, - 38167 - 11905: 0xD5E0, - 38168 - 11905: 0xEFBB, - 38169 - 11905: 0xB4ED, - 38170 - 11905: 0xC3AA, - 38171 - 11905: 0xEFBC, - 38172 - 11905: 0xE89F, - 38173 - 11905: 0xEFBD, - 38174 - 11905: 0xEFBE, - 38175 - 11905: 0xEFBF, - 38176 - 11905: 0xE8A0, - 38177 - 11905: 0xCEFD, - 38178 - 11905: 0xEFC0, - 38179 - 11905: 0xC2E0, - 38180 - 11905: 0xB4B8, - 38181 - 11905: 0xD7B6, - 38182 - 11905: 0xBDF5, - 38183 - 11905: 0xE940, - 38184 - 11905: 0xCFC7, - 38185 - 11905: 0xEFC3, - 38186 - 11905: 0xEFC1, - 38187 - 11905: 0xEFC2, - 38188 - 11905: 0xEFC4, - 38189 - 11905: 0xB6A7, - 38190 - 11905: 0xBCFC, - 38191 - 11905: 0xBEE2, - 38192 - 11905: 0xC3CC, - 38193 - 11905: 0xEFC5, - 38194 - 11905: 0xEFC6, - 38195 - 11905: 0xE941, - 38196 - 11905: 0xEFC7, - 38197 - 11905: 0xEFCF, - 38198 - 11905: 0xEFC8, - 38199 - 11905: 0xEFC9, - 38200 - 11905: 0xEFCA, - 38201 - 11905: 0xC7C2, - 38202 - 11905: 0xEFF1, - 38203 - 11905: 0xB6CD, - 38204 - 11905: 0xEFCB, - 38205 - 11905: 0xE942, - 38206 - 11905: 0xEFCC, - 38207 - 11905: 0xEFCD, - 38208 - 11905: 0xB6C6, - 38209 - 11905: 0xC3BE, - 38210 - 11905: 0xEFCE, - 38211 - 11905: 0xE943, - 38212 - 11905: 0xEFD0, - 38213 - 11905: 0xEFD1, - 38214 - 11905: 0xEFD2, - 38215 - 11905: 0xD5F2, - 38216 - 11905: 0xE944, - 38217 - 11905: 0xEFD3, - 38218 - 11905: 0xC4F7, - 38219 - 11905: 0xE945, - 38220 - 11905: 0xEFD4, - 38221 - 11905: 0xC4F8, - 38222 - 11905: 0xEFD5, - 38223 - 11905: 0xEFD6, - 38224 - 11905: 0xB8E4, - 38225 - 11905: 0xB0F7, - 38226 - 11905: 0xEFD7, - 38227 - 11905: 0xEFD8, - 38228 - 11905: 0xEFD9, - 38229 - 11905: 0xE946, - 38230 - 11905: 0xEFDA, - 38231 - 11905: 0xEFDB, - 38232 - 11905: 0xEFDC, - 38233 - 11905: 0xEFDD, - 38234 - 11905: 0xE947, - 38235 - 11905: 0xEFDE, - 38236 - 11905: 0xBEB5, - 38237 - 11905: 0xEFE1, - 38238 - 11905: 0xEFDF, - 38239 - 11905: 0xEFE0, - 38240 - 11905: 0xE948, - 38241 - 11905: 0xEFE2, - 38242 - 11905: 0xEFE3, - 38243 - 11905: 0xC1CD, - 38244 - 11905: 0xEFE4, - 38245 - 11905: 0xEFE5, - 38246 - 11905: 0xEFE6, - 38247 - 11905: 0xEFE7, - 38248 - 11905: 0xEFE8, - 38249 - 11905: 0xEFE9, - 38250 - 11905: 0xEFEA, - 38251 - 11905: 0xEFEB, - 38252 - 11905: 0xEFEC, - 38253 - 11905: 0xC0D8, - 38254 - 11905: 0xE949, - 38255 - 11905: 0xEFED, - 38256 - 11905: 0xC1AD, - 38257 - 11905: 0xEFEE, - 38258 - 11905: 0xEFEF, - 38259 - 11905: 0xEFF0, - 38260 - 11905: 0xE94A, - 38261 - 11905: 0xE94B, - 38262 - 11905: 0xCFE2, - 38263 - 11905: 0xE94C, - 38264 - 11905: 0xE94D, - 38265 - 11905: 0xE94E, - 38266 - 11905: 0xE94F, - 38267 - 11905: 0xE950, - 38268 - 11905: 0xE951, - 38269 - 11905: 0xE952, - 38270 - 11905: 0xE953, - 38271 - 11905: 0xB3A4, - 38272 - 11905: 0xE954, - 38273 - 11905: 0xE955, - 38274 - 11905: 0xE956, - 38275 - 11905: 0xE957, - 38276 - 11905: 0xE958, - 38277 - 11905: 0xE959, - 38278 - 11905: 0xE95A, - 38279 - 11905: 0xE95B, - 38280 - 11905: 0xE95C, - 38281 - 11905: 0xE95D, - 38282 - 11905: 0xE95E, - 38283 - 11905: 0xE95F, - 38284 - 11905: 0xE960, - 38285 - 11905: 0xE961, - 38286 - 11905: 0xE962, - 38287 - 11905: 0xE963, - 38288 - 11905: 0xE964, - 38289 - 11905: 0xE965, - 38290 - 11905: 0xE966, - 38291 - 11905: 0xE967, - 38292 - 11905: 0xE968, - 38293 - 11905: 0xE969, - 38294 - 11905: 0xE96A, - 38295 - 11905: 0xE96B, - 38296 - 11905: 0xE96C, - 38297 - 11905: 0xE96D, - 38298 - 11905: 0xE96E, - 38299 - 11905: 0xE96F, - 38300 - 11905: 0xE970, - 38301 - 11905: 0xE971, - 38302 - 11905: 0xE972, - 38303 - 11905: 0xE973, - 38304 - 11905: 0xE974, - 38305 - 11905: 0xE975, - 38306 - 11905: 0xE976, - 38307 - 11905: 0xE977, - 38308 - 11905: 0xE978, - 38309 - 11905: 0xE979, - 38310 - 11905: 0xE97A, - 38311 - 11905: 0xE97B, - 38312 - 11905: 0xE97C, - 38313 - 11905: 0xE97D, - 38314 - 11905: 0xE97E, - 38315 - 11905: 0xE980, - 38316 - 11905: 0xE981, - 38317 - 11905: 0xE982, - 38318 - 11905: 0xE983, - 38319 - 11905: 0xE984, - 38320 - 11905: 0xE985, - 38321 - 11905: 0xE986, - 38322 - 11905: 0xE987, - 38323 - 11905: 0xE988, - 38324 - 11905: 0xE989, - 38325 - 11905: 0xE98A, - 38326 - 11905: 0xE98B, - 38327 - 11905: 0xE98C, - 38328 - 11905: 0xE98D, - 38329 - 11905: 0xE98E, - 38330 - 11905: 0xE98F, - 38331 - 11905: 0xE990, - 38332 - 11905: 0xE991, - 38333 - 11905: 0xE992, - 38334 - 11905: 0xE993, - 38335 - 11905: 0xE994, - 38336 - 11905: 0xE995, - 38337 - 11905: 0xE996, - 38338 - 11905: 0xE997, - 38339 - 11905: 0xE998, - 38340 - 11905: 0xE999, - 38341 - 11905: 0xE99A, - 38342 - 11905: 0xE99B, - 38343 - 11905: 0xE99C, - 38344 - 11905: 0xE99D, - 38345 - 11905: 0xE99E, - 38346 - 11905: 0xE99F, - 38347 - 11905: 0xE9A0, - 38348 - 11905: 0xEA40, - 38349 - 11905: 0xEA41, - 38350 - 11905: 0xEA42, - 38351 - 11905: 0xEA43, - 38352 - 11905: 0xEA44, - 38353 - 11905: 0xEA45, - 38354 - 11905: 0xEA46, - 38355 - 11905: 0xEA47, - 38356 - 11905: 0xEA48, - 38357 - 11905: 0xEA49, - 38358 - 11905: 0xEA4A, - 38359 - 11905: 0xEA4B, - 38360 - 11905: 0xEA4C, - 38361 - 11905: 0xEA4D, - 38362 - 11905: 0xEA4E, - 38363 - 11905: 0xEA4F, - 38364 - 11905: 0xEA50, - 38365 - 11905: 0xEA51, - 38366 - 11905: 0xEA52, - 38367 - 11905: 0xEA53, - 38368 - 11905: 0xEA54, - 38369 - 11905: 0xEA55, - 38370 - 11905: 0xEA56, - 38371 - 11905: 0xEA57, - 38372 - 11905: 0xEA58, - 38373 - 11905: 0xEA59, - 38374 - 11905: 0xEA5A, - 38375 - 11905: 0xEA5B, - 38376 - 11905: 0xC3C5, - 38377 - 11905: 0xE3C5, - 38378 - 11905: 0xC9C1, - 38379 - 11905: 0xE3C6, - 38380 - 11905: 0xEA5C, - 38381 - 11905: 0xB1D5, - 38382 - 11905: 0xCECA, - 38383 - 11905: 0xB4B3, - 38384 - 11905: 0xC8F2, - 38385 - 11905: 0xE3C7, - 38386 - 11905: 0xCFD0, - 38387 - 11905: 0xE3C8, - 38388 - 11905: 0xBCE4, - 38389 - 11905: 0xE3C9, - 38390 - 11905: 0xE3CA, - 38391 - 11905: 0xC3C6, - 38392 - 11905: 0xD5A2, - 38393 - 11905: 0xC4D6, - 38394 - 11905: 0xB9EB, - 38395 - 11905: 0xCEC5, - 38396 - 11905: 0xE3CB, - 38397 - 11905: 0xC3F6, - 38398 - 11905: 0xE3CC, - 38399 - 11905: 0xEA5D, - 38400 - 11905: 0xB7A7, - 38401 - 11905: 0xB8F3, - 38402 - 11905: 0xBAD2, - 38403 - 11905: 0xE3CD, - 38404 - 11905: 0xE3CE, - 38405 - 11905: 0xD4C4, - 38406 - 11905: 0xE3CF, - 38407 - 11905: 0xEA5E, - 38408 - 11905: 0xE3D0, - 38409 - 11905: 0xD1CB, - 38410 - 11905: 0xE3D1, - 38411 - 11905: 0xE3D2, - 38412 - 11905: 0xE3D3, - 38413 - 11905: 0xE3D4, - 38414 - 11905: 0xD1D6, - 38415 - 11905: 0xE3D5, - 38416 - 11905: 0xB2FB, - 38417 - 11905: 0xC0BB, - 38418 - 11905: 0xE3D6, - 38419 - 11905: 0xEA5F, - 38420 - 11905: 0xC0AB, - 38421 - 11905: 0xE3D7, - 38422 - 11905: 0xE3D8, - 38423 - 11905: 0xE3D9, - 38424 - 11905: 0xEA60, - 38425 - 11905: 0xE3DA, - 38426 - 11905: 0xE3DB, - 38427 - 11905: 0xEA61, - 38428 - 11905: 0xB8B7, - 38429 - 11905: 0xDAE2, - 38430 - 11905: 0xEA62, - 38431 - 11905: 0xB6D3, - 38432 - 11905: 0xEA63, - 38433 - 11905: 0xDAE4, - 38434 - 11905: 0xDAE3, - 38435 - 11905: 0xEA64, - 38436 - 11905: 0xEA65, - 38437 - 11905: 0xEA66, - 38438 - 11905: 0xEA67, - 38439 - 11905: 0xEA68, - 38440 - 11905: 0xEA69, - 38441 - 11905: 0xEA6A, - 38442 - 11905: 0xDAE6, - 38443 - 11905: 0xEA6B, - 38444 - 11905: 0xEA6C, - 38445 - 11905: 0xEA6D, - 38446 - 11905: 0xC8EE, - 38447 - 11905: 0xEA6E, - 38448 - 11905: 0xEA6F, - 38449 - 11905: 0xDAE5, - 38450 - 11905: 0xB7C0, - 38451 - 11905: 0xD1F4, - 38452 - 11905: 0xD2F5, - 38453 - 11905: 0xD5F3, - 38454 - 11905: 0xBDD7, - 38455 - 11905: 0xEA70, - 38456 - 11905: 0xEA71, - 38457 - 11905: 0xEA72, - 38458 - 11905: 0xEA73, - 38459 - 11905: 0xD7E8, - 38460 - 11905: 0xDAE8, - 38461 - 11905: 0xDAE7, - 38462 - 11905: 0xEA74, - 38463 - 11905: 0xB0A2, - 38464 - 11905: 0xCDD3, - 38465 - 11905: 0xEA75, - 38466 - 11905: 0xDAE9, - 38467 - 11905: 0xEA76, - 38468 - 11905: 0xB8BD, - 38469 - 11905: 0xBCCA, - 38470 - 11905: 0xC2BD, - 38471 - 11905: 0xC2A4, - 38472 - 11905: 0xB3C2, - 38473 - 11905: 0xDAEA, - 38474 - 11905: 0xEA77, - 38475 - 11905: 0xC2AA, - 38476 - 11905: 0xC4B0, - 38477 - 11905: 0xBDB5, - 38478 - 11905: 0xEA78, - 38479 - 11905: 0xEA79, - 38480 - 11905: 0xCFDE, - 38481 - 11905: 0xEA7A, - 38482 - 11905: 0xEA7B, - 38483 - 11905: 0xEA7C, - 38484 - 11905: 0xDAEB, - 38485 - 11905: 0xC9C2, - 38486 - 11905: 0xEA7D, - 38487 - 11905: 0xEA7E, - 38488 - 11905: 0xEA80, - 38489 - 11905: 0xEA81, - 38490 - 11905: 0xEA82, - 38491 - 11905: 0xB1DD, - 38492 - 11905: 0xEA83, - 38493 - 11905: 0xEA84, - 38494 - 11905: 0xEA85, - 38495 - 11905: 0xDAEC, - 38496 - 11905: 0xEA86, - 38497 - 11905: 0xB6B8, - 38498 - 11905: 0xD4BA, - 38499 - 11905: 0xEA87, - 38500 - 11905: 0xB3FD, - 38501 - 11905: 0xEA88, - 38502 - 11905: 0xEA89, - 38503 - 11905: 0xDAED, - 38504 - 11905: 0xD4C9, - 38505 - 11905: 0xCFD5, - 38506 - 11905: 0xC5E3, - 38507 - 11905: 0xEA8A, - 38508 - 11905: 0xDAEE, - 38509 - 11905: 0xEA8B, - 38510 - 11905: 0xEA8C, - 38511 - 11905: 0xEA8D, - 38512 - 11905: 0xEA8E, - 38513 - 11905: 0xEA8F, - 38514 - 11905: 0xDAEF, - 38515 - 11905: 0xEA90, - 38516 - 11905: 0xDAF0, - 38517 - 11905: 0xC1EA, - 38518 - 11905: 0xCCD5, - 38519 - 11905: 0xCFDD, - 38520 - 11905: 0xEA91, - 38521 - 11905: 0xEA92, - 38522 - 11905: 0xEA93, - 38523 - 11905: 0xEA94, - 38524 - 11905: 0xEA95, - 38525 - 11905: 0xEA96, - 38526 - 11905: 0xEA97, - 38527 - 11905: 0xEA98, - 38528 - 11905: 0xEA99, - 38529 - 11905: 0xEA9A, - 38530 - 11905: 0xEA9B, - 38531 - 11905: 0xEA9C, - 38532 - 11905: 0xEA9D, - 38533 - 11905: 0xD3E7, - 38534 - 11905: 0xC2A1, - 38535 - 11905: 0xEA9E, - 38536 - 11905: 0xDAF1, - 38537 - 11905: 0xEA9F, - 38538 - 11905: 0xEAA0, - 38539 - 11905: 0xCBE5, - 38540 - 11905: 0xEB40, - 38541 - 11905: 0xDAF2, - 38542 - 11905: 0xEB41, - 38543 - 11905: 0xCBE6, - 38544 - 11905: 0xD2FE, - 38545 - 11905: 0xEB42, - 38546 - 11905: 0xEB43, - 38547 - 11905: 0xEB44, - 38548 - 11905: 0xB8F4, - 38549 - 11905: 0xEB45, - 38550 - 11905: 0xEB46, - 38551 - 11905: 0xDAF3, - 38552 - 11905: 0xB0AF, - 38553 - 11905: 0xCFB6, - 38554 - 11905: 0xEB47, - 38555 - 11905: 0xEB48, - 38556 - 11905: 0xD5CF, - 38557 - 11905: 0xEB49, - 38558 - 11905: 0xEB4A, - 38559 - 11905: 0xEB4B, - 38560 - 11905: 0xEB4C, - 38561 - 11905: 0xEB4D, - 38562 - 11905: 0xEB4E, - 38563 - 11905: 0xEB4F, - 38564 - 11905: 0xEB50, - 38565 - 11905: 0xEB51, - 38566 - 11905: 0xEB52, - 38567 - 11905: 0xCBED, - 38568 - 11905: 0xEB53, - 38569 - 11905: 0xEB54, - 38570 - 11905: 0xEB55, - 38571 - 11905: 0xEB56, - 38572 - 11905: 0xEB57, - 38573 - 11905: 0xEB58, - 38574 - 11905: 0xEB59, - 38575 - 11905: 0xEB5A, - 38576 - 11905: 0xDAF4, - 38577 - 11905: 0xEB5B, - 38578 - 11905: 0xEB5C, - 38579 - 11905: 0xE3C4, - 38580 - 11905: 0xEB5D, - 38581 - 11905: 0xEB5E, - 38582 - 11905: 0xC1A5, - 38583 - 11905: 0xEB5F, - 38584 - 11905: 0xEB60, - 38585 - 11905: 0xF6BF, - 38586 - 11905: 0xEB61, - 38587 - 11905: 0xEB62, - 38588 - 11905: 0xF6C0, - 38589 - 11905: 0xF6C1, - 38590 - 11905: 0xC4D1, - 38591 - 11905: 0xEB63, - 38592 - 11905: 0xC8B8, - 38593 - 11905: 0xD1E3, - 38594 - 11905: 0xEB64, - 38595 - 11905: 0xEB65, - 38596 - 11905: 0xD0DB, - 38597 - 11905: 0xD1C5, - 38598 - 11905: 0xBCAF, - 38599 - 11905: 0xB9CD, - 38600 - 11905: 0xEB66, - 38601 - 11905: 0xEFF4, - 38602 - 11905: 0xEB67, - 38603 - 11905: 0xEB68, - 38604 - 11905: 0xB4C6, - 38605 - 11905: 0xD3BA, - 38606 - 11905: 0xF6C2, - 38607 - 11905: 0xB3FB, - 38608 - 11905: 0xEB69, - 38609 - 11905: 0xEB6A, - 38610 - 11905: 0xF6C3, - 38611 - 11905: 0xEB6B, - 38612 - 11905: 0xEB6C, - 38613 - 11905: 0xB5F1, - 38614 - 11905: 0xEB6D, - 38615 - 11905: 0xEB6E, - 38616 - 11905: 0xEB6F, - 38617 - 11905: 0xEB70, - 38618 - 11905: 0xEB71, - 38619 - 11905: 0xEB72, - 38620 - 11905: 0xEB73, - 38621 - 11905: 0xEB74, - 38622 - 11905: 0xEB75, - 38623 - 11905: 0xEB76, - 38624 - 11905: 0xF6C5, - 38625 - 11905: 0xEB77, - 38626 - 11905: 0xEB78, - 38627 - 11905: 0xEB79, - 38628 - 11905: 0xEB7A, - 38629 - 11905: 0xEB7B, - 38630 - 11905: 0xEB7C, - 38631 - 11905: 0xEB7D, - 38632 - 11905: 0xD3EA, - 38633 - 11905: 0xF6A7, - 38634 - 11905: 0xD1A9, - 38635 - 11905: 0xEB7E, - 38636 - 11905: 0xEB80, - 38637 - 11905: 0xEB81, - 38638 - 11905: 0xEB82, - 38639 - 11905: 0xF6A9, - 38640 - 11905: 0xEB83, - 38641 - 11905: 0xEB84, - 38642 - 11905: 0xEB85, - 38643 - 11905: 0xF6A8, - 38644 - 11905: 0xEB86, - 38645 - 11905: 0xEB87, - 38646 - 11905: 0xC1E3, - 38647 - 11905: 0xC0D7, - 38648 - 11905: 0xEB88, - 38649 - 11905: 0xB1A2, - 38650 - 11905: 0xEB89, - 38651 - 11905: 0xEB8A, - 38652 - 11905: 0xEB8B, - 38653 - 11905: 0xEB8C, - 38654 - 11905: 0xCEED, - 38655 - 11905: 0xEB8D, - 38656 - 11905: 0xD0E8, - 38657 - 11905: 0xF6AB, - 38658 - 11905: 0xEB8E, - 38659 - 11905: 0xEB8F, - 38660 - 11905: 0xCFF6, - 38661 - 11905: 0xEB90, - 38662 - 11905: 0xF6AA, - 38663 - 11905: 0xD5F0, - 38664 - 11905: 0xF6AC, - 38665 - 11905: 0xC3B9, - 38666 - 11905: 0xEB91, - 38667 - 11905: 0xEB92, - 38668 - 11905: 0xEB93, - 38669 - 11905: 0xBBF4, - 38670 - 11905: 0xF6AE, - 38671 - 11905: 0xF6AD, - 38672 - 11905: 0xEB94, - 38673 - 11905: 0xEB95, - 38674 - 11905: 0xEB96, - 38675 - 11905: 0xC4DE, - 38676 - 11905: 0xEB97, - 38677 - 11905: 0xEB98, - 38678 - 11905: 0xC1D8, - 38679 - 11905: 0xEB99, - 38680 - 11905: 0xEB9A, - 38681 - 11905: 0xEB9B, - 38682 - 11905: 0xEB9C, - 38683 - 11905: 0xEB9D, - 38684 - 11905: 0xCBAA, - 38685 - 11905: 0xEB9E, - 38686 - 11905: 0xCFBC, - 38687 - 11905: 0xEB9F, - 38688 - 11905: 0xEBA0, - 38689 - 11905: 0xEC40, - 38690 - 11905: 0xEC41, - 38691 - 11905: 0xEC42, - 38692 - 11905: 0xEC43, - 38693 - 11905: 0xEC44, - 38694 - 11905: 0xEC45, - 38695 - 11905: 0xEC46, - 38696 - 11905: 0xEC47, - 38697 - 11905: 0xEC48, - 38698 - 11905: 0xF6AF, - 38699 - 11905: 0xEC49, - 38700 - 11905: 0xEC4A, - 38701 - 11905: 0xF6B0, - 38702 - 11905: 0xEC4B, - 38703 - 11905: 0xEC4C, - 38704 - 11905: 0xF6B1, - 38705 - 11905: 0xEC4D, - 38706 - 11905: 0xC2B6, - 38707 - 11905: 0xEC4E, - 38708 - 11905: 0xEC4F, - 38709 - 11905: 0xEC50, - 38710 - 11905: 0xEC51, - 38711 - 11905: 0xEC52, - 38712 - 11905: 0xB0D4, - 38713 - 11905: 0xC5F9, - 38714 - 11905: 0xEC53, - 38715 - 11905: 0xEC54, - 38716 - 11905: 0xEC55, - 38717 - 11905: 0xEC56, - 38718 - 11905: 0xF6B2, - 38719 - 11905: 0xEC57, - 38720 - 11905: 0xEC58, - 38721 - 11905: 0xEC59, - 38722 - 11905: 0xEC5A, - 38723 - 11905: 0xEC5B, - 38724 - 11905: 0xEC5C, - 38725 - 11905: 0xEC5D, - 38726 - 11905: 0xEC5E, - 38727 - 11905: 0xEC5F, - 38728 - 11905: 0xEC60, - 38729 - 11905: 0xEC61, - 38730 - 11905: 0xEC62, - 38731 - 11905: 0xEC63, - 38732 - 11905: 0xEC64, - 38733 - 11905: 0xEC65, - 38734 - 11905: 0xEC66, - 38735 - 11905: 0xEC67, - 38736 - 11905: 0xEC68, - 38737 - 11905: 0xEC69, - 38738 - 11905: 0xC7E0, - 38739 - 11905: 0xF6A6, - 38740 - 11905: 0xEC6A, - 38741 - 11905: 0xEC6B, - 38742 - 11905: 0xBEB8, - 38743 - 11905: 0xEC6C, - 38744 - 11905: 0xEC6D, - 38745 - 11905: 0xBEB2, - 38746 - 11905: 0xEC6E, - 38747 - 11905: 0xB5E5, - 38748 - 11905: 0xEC6F, - 38749 - 11905: 0xEC70, - 38750 - 11905: 0xB7C7, - 38751 - 11905: 0xEC71, - 38752 - 11905: 0xBFBF, - 38753 - 11905: 0xC3D2, - 38754 - 11905: 0xC3E6, - 38755 - 11905: 0xEC72, - 38756 - 11905: 0xEC73, - 38757 - 11905: 0xD8CC, - 38758 - 11905: 0xEC74, - 38759 - 11905: 0xEC75, - 38760 - 11905: 0xEC76, - 38761 - 11905: 0xB8EF, - 38762 - 11905: 0xEC77, - 38763 - 11905: 0xEC78, - 38764 - 11905: 0xEC79, - 38765 - 11905: 0xEC7A, - 38766 - 11905: 0xEC7B, - 38767 - 11905: 0xEC7C, - 38768 - 11905: 0xEC7D, - 38769 - 11905: 0xEC7E, - 38770 - 11905: 0xEC80, - 38771 - 11905: 0xBDF9, - 38772 - 11905: 0xD1A5, - 38773 - 11905: 0xEC81, - 38774 - 11905: 0xB0D0, - 38775 - 11905: 0xEC82, - 38776 - 11905: 0xEC83, - 38777 - 11905: 0xEC84, - 38778 - 11905: 0xEC85, - 38779 - 11905: 0xEC86, - 38780 - 11905: 0xF7B0, - 38781 - 11905: 0xEC87, - 38782 - 11905: 0xEC88, - 38783 - 11905: 0xEC89, - 38784 - 11905: 0xEC8A, - 38785 - 11905: 0xEC8B, - 38786 - 11905: 0xEC8C, - 38787 - 11905: 0xEC8D, - 38788 - 11905: 0xEC8E, - 38789 - 11905: 0xF7B1, - 38790 - 11905: 0xEC8F, - 38791 - 11905: 0xEC90, - 38792 - 11905: 0xEC91, - 38793 - 11905: 0xEC92, - 38794 - 11905: 0xEC93, - 38795 - 11905: 0xD0AC, - 38796 - 11905: 0xEC94, - 38797 - 11905: 0xB0B0, - 38798 - 11905: 0xEC95, - 38799 - 11905: 0xEC96, - 38800 - 11905: 0xEC97, - 38801 - 11905: 0xF7B2, - 38802 - 11905: 0xF7B3, - 38803 - 11905: 0xEC98, - 38804 - 11905: 0xF7B4, - 38805 - 11905: 0xEC99, - 38806 - 11905: 0xEC9A, - 38807 - 11905: 0xEC9B, - 38808 - 11905: 0xC7CA, - 38809 - 11905: 0xEC9C, - 38810 - 11905: 0xEC9D, - 38811 - 11905: 0xEC9E, - 38812 - 11905: 0xEC9F, - 38813 - 11905: 0xECA0, - 38814 - 11905: 0xED40, - 38815 - 11905: 0xED41, - 38816 - 11905: 0xBECF, - 38817 - 11905: 0xED42, - 38818 - 11905: 0xED43, - 38819 - 11905: 0xF7B7, - 38820 - 11905: 0xED44, - 38821 - 11905: 0xED45, - 38822 - 11905: 0xED46, - 38823 - 11905: 0xED47, - 38824 - 11905: 0xED48, - 38825 - 11905: 0xED49, - 38826 - 11905: 0xED4A, - 38827 - 11905: 0xF7B6, - 38828 - 11905: 0xED4B, - 38829 - 11905: 0xB1DE, - 38830 - 11905: 0xED4C, - 38831 - 11905: 0xF7B5, - 38832 - 11905: 0xED4D, - 38833 - 11905: 0xED4E, - 38834 - 11905: 0xF7B8, - 38835 - 11905: 0xED4F, - 38836 - 11905: 0xF7B9, - 38837 - 11905: 0xED50, - 38838 - 11905: 0xED51, - 38839 - 11905: 0xED52, - 38840 - 11905: 0xED53, - 38841 - 11905: 0xED54, - 38842 - 11905: 0xED55, - 38843 - 11905: 0xED56, - 38844 - 11905: 0xED57, - 38845 - 11905: 0xED58, - 38846 - 11905: 0xED59, - 38847 - 11905: 0xED5A, - 38848 - 11905: 0xED5B, - 38849 - 11905: 0xED5C, - 38850 - 11905: 0xED5D, - 38851 - 11905: 0xED5E, - 38852 - 11905: 0xED5F, - 38853 - 11905: 0xED60, - 38854 - 11905: 0xED61, - 38855 - 11905: 0xED62, - 38856 - 11905: 0xED63, - 38857 - 11905: 0xED64, - 38858 - 11905: 0xED65, - 38859 - 11905: 0xED66, - 38860 - 11905: 0xED67, - 38861 - 11905: 0xED68, - 38862 - 11905: 0xED69, - 38863 - 11905: 0xED6A, - 38864 - 11905: 0xED6B, - 38865 - 11905: 0xED6C, - 38866 - 11905: 0xED6D, - 38867 - 11905: 0xED6E, - 38868 - 11905: 0xED6F, - 38869 - 11905: 0xED70, - 38870 - 11905: 0xED71, - 38871 - 11905: 0xED72, - 38872 - 11905: 0xED73, - 38873 - 11905: 0xED74, - 38874 - 11905: 0xED75, - 38875 - 11905: 0xED76, - 38876 - 11905: 0xED77, - 38877 - 11905: 0xED78, - 38878 - 11905: 0xED79, - 38879 - 11905: 0xED7A, - 38880 - 11905: 0xED7B, - 38881 - 11905: 0xED7C, - 38882 - 11905: 0xED7D, - 38883 - 11905: 0xED7E, - 38884 - 11905: 0xED80, - 38885 - 11905: 0xED81, - 38886 - 11905: 0xCEA4, - 38887 - 11905: 0xC8CD, - 38888 - 11905: 0xED82, - 38889 - 11905: 0xBAAB, - 38890 - 11905: 0xE8B8, - 38891 - 11905: 0xE8B9, - 38892 - 11905: 0xE8BA, - 38893 - 11905: 0xBEC2, - 38894 - 11905: 0xED83, - 38895 - 11905: 0xED84, - 38896 - 11905: 0xED85, - 38897 - 11905: 0xED86, - 38898 - 11905: 0xED87, - 38899 - 11905: 0xD2F4, - 38900 - 11905: 0xED88, - 38901 - 11905: 0xD4CF, - 38902 - 11905: 0xC9D8, - 38903 - 11905: 0xED89, - 38904 - 11905: 0xED8A, - 38905 - 11905: 0xED8B, - 38906 - 11905: 0xED8C, - 38907 - 11905: 0xED8D, - 38908 - 11905: 0xED8E, - 38909 - 11905: 0xED8F, - 38910 - 11905: 0xED90, - 38911 - 11905: 0xED91, - 38912 - 11905: 0xED92, - 38913 - 11905: 0xED93, - 38914 - 11905: 0xED94, - 38915 - 11905: 0xED95, - 38916 - 11905: 0xED96, - 38917 - 11905: 0xED97, - 38918 - 11905: 0xED98, - 38919 - 11905: 0xED99, - 38920 - 11905: 0xED9A, - 38921 - 11905: 0xED9B, - 38922 - 11905: 0xED9C, - 38923 - 11905: 0xED9D, - 38924 - 11905: 0xED9E, - 38925 - 11905: 0xED9F, - 38926 - 11905: 0xEDA0, - 38927 - 11905: 0xEE40, - 38928 - 11905: 0xEE41, - 38929 - 11905: 0xEE42, - 38930 - 11905: 0xEE43, - 38931 - 11905: 0xEE44, - 38932 - 11905: 0xEE45, - 38933 - 11905: 0xEE46, - 38934 - 11905: 0xEE47, - 38935 - 11905: 0xEE48, - 38936 - 11905: 0xEE49, - 38937 - 11905: 0xEE4A, - 38938 - 11905: 0xEE4B, - 38939 - 11905: 0xEE4C, - 38940 - 11905: 0xEE4D, - 38941 - 11905: 0xEE4E, - 38942 - 11905: 0xEE4F, - 38943 - 11905: 0xEE50, - 38944 - 11905: 0xEE51, - 38945 - 11905: 0xEE52, - 38946 - 11905: 0xEE53, - 38947 - 11905: 0xEE54, - 38948 - 11905: 0xEE55, - 38949 - 11905: 0xEE56, - 38950 - 11905: 0xEE57, - 38951 - 11905: 0xEE58, - 38952 - 11905: 0xEE59, - 38953 - 11905: 0xEE5A, - 38954 - 11905: 0xEE5B, - 38955 - 11905: 0xEE5C, - 38956 - 11905: 0xEE5D, - 38957 - 11905: 0xEE5E, - 38958 - 11905: 0xEE5F, - 38959 - 11905: 0xEE60, - 38960 - 11905: 0xEE61, - 38961 - 11905: 0xEE62, - 38962 - 11905: 0xEE63, - 38963 - 11905: 0xEE64, - 38964 - 11905: 0xEE65, - 38965 - 11905: 0xEE66, - 38966 - 11905: 0xEE67, - 38967 - 11905: 0xEE68, - 38968 - 11905: 0xEE69, - 38969 - 11905: 0xEE6A, - 38970 - 11905: 0xEE6B, - 38971 - 11905: 0xEE6C, - 38972 - 11905: 0xEE6D, - 38973 - 11905: 0xEE6E, - 38974 - 11905: 0xEE6F, - 38975 - 11905: 0xEE70, - 38976 - 11905: 0xEE71, - 38977 - 11905: 0xEE72, - 38978 - 11905: 0xEE73, - 38979 - 11905: 0xEE74, - 38980 - 11905: 0xEE75, - 38981 - 11905: 0xEE76, - 38982 - 11905: 0xEE77, - 38983 - 11905: 0xEE78, - 38984 - 11905: 0xEE79, - 38985 - 11905: 0xEE7A, - 38986 - 11905: 0xEE7B, - 38987 - 11905: 0xEE7C, - 38988 - 11905: 0xEE7D, - 38989 - 11905: 0xEE7E, - 38990 - 11905: 0xEE80, - 38991 - 11905: 0xEE81, - 38992 - 11905: 0xEE82, - 38993 - 11905: 0xEE83, - 38994 - 11905: 0xEE84, - 38995 - 11905: 0xEE85, - 38996 - 11905: 0xEE86, - 38997 - 11905: 0xEE87, - 38998 - 11905: 0xEE88, - 38999 - 11905: 0xEE89, - 39000 - 11905: 0xEE8A, - 39001 - 11905: 0xEE8B, - 39002 - 11905: 0xEE8C, - 39003 - 11905: 0xEE8D, - 39004 - 11905: 0xEE8E, - 39005 - 11905: 0xEE8F, - 39006 - 11905: 0xEE90, - 39007 - 11905: 0xEE91, - 39008 - 11905: 0xEE92, - 39009 - 11905: 0xEE93, - 39010 - 11905: 0xEE94, - 39011 - 11905: 0xEE95, - 39012 - 11905: 0xEE96, - 39013 - 11905: 0xEE97, - 39014 - 11905: 0xEE98, - 39015 - 11905: 0xEE99, - 39016 - 11905: 0xEE9A, - 39017 - 11905: 0xEE9B, - 39018 - 11905: 0xEE9C, - 39019 - 11905: 0xEE9D, - 39020 - 11905: 0xEE9E, - 39021 - 11905: 0xEE9F, - 39022 - 11905: 0xEEA0, - 39023 - 11905: 0xEF40, - 39024 - 11905: 0xEF41, - 39025 - 11905: 0xEF42, - 39026 - 11905: 0xEF43, - 39027 - 11905: 0xEF44, - 39028 - 11905: 0xEF45, - 39029 - 11905: 0xD2B3, - 39030 - 11905: 0xB6A5, - 39031 - 11905: 0xC7EA, - 39032 - 11905: 0xF1FC, - 39033 - 11905: 0xCFEE, - 39034 - 11905: 0xCBB3, - 39035 - 11905: 0xD0EB, - 39036 - 11905: 0xE7EF, - 39037 - 11905: 0xCDE7, - 39038 - 11905: 0xB9CB, - 39039 - 11905: 0xB6D9, - 39040 - 11905: 0xF1FD, - 39041 - 11905: 0xB0E4, - 39042 - 11905: 0xCBCC, - 39043 - 11905: 0xF1FE, - 39044 - 11905: 0xD4A4, - 39045 - 11905: 0xC2AD, - 39046 - 11905: 0xC1EC, - 39047 - 11905: 0xC6C4, - 39048 - 11905: 0xBEB1, - 39049 - 11905: 0xF2A1, - 39050 - 11905: 0xBCD5, - 39051 - 11905: 0xEF46, - 39052 - 11905: 0xF2A2, - 39053 - 11905: 0xF2A3, - 39054 - 11905: 0xEF47, - 39055 - 11905: 0xF2A4, - 39056 - 11905: 0xD2C3, - 39057 - 11905: 0xC6B5, - 39058 - 11905: 0xEF48, - 39059 - 11905: 0xCDC7, - 39060 - 11905: 0xF2A5, - 39061 - 11905: 0xEF49, - 39062 - 11905: 0xD3B1, - 39063 - 11905: 0xBFC5, - 39064 - 11905: 0xCCE2, - 39065 - 11905: 0xEF4A, - 39066 - 11905: 0xF2A6, - 39067 - 11905: 0xF2A7, - 39068 - 11905: 0xD1D5, - 39069 - 11905: 0xB6EE, - 39070 - 11905: 0xF2A8, - 39071 - 11905: 0xF2A9, - 39072 - 11905: 0xB5DF, - 39073 - 11905: 0xF2AA, - 39074 - 11905: 0xF2AB, - 39075 - 11905: 0xEF4B, - 39076 - 11905: 0xB2FC, - 39077 - 11905: 0xF2AC, - 39078 - 11905: 0xF2AD, - 39079 - 11905: 0xC8A7, - 39080 - 11905: 0xEF4C, - 39081 - 11905: 0xEF4D, - 39082 - 11905: 0xEF4E, - 39083 - 11905: 0xEF4F, - 39084 - 11905: 0xEF50, - 39085 - 11905: 0xEF51, - 39086 - 11905: 0xEF52, - 39087 - 11905: 0xEF53, - 39088 - 11905: 0xEF54, - 39089 - 11905: 0xEF55, - 39090 - 11905: 0xEF56, - 39091 - 11905: 0xEF57, - 39092 - 11905: 0xEF58, - 39093 - 11905: 0xEF59, - 39094 - 11905: 0xEF5A, - 39095 - 11905: 0xEF5B, - 39096 - 11905: 0xEF5C, - 39097 - 11905: 0xEF5D, - 39098 - 11905: 0xEF5E, - 39099 - 11905: 0xEF5F, - 39100 - 11905: 0xEF60, - 39101 - 11905: 0xEF61, - 39102 - 11905: 0xEF62, - 39103 - 11905: 0xEF63, - 39104 - 11905: 0xEF64, - 39105 - 11905: 0xEF65, - 39106 - 11905: 0xEF66, - 39107 - 11905: 0xEF67, - 39108 - 11905: 0xEF68, - 39109 - 11905: 0xEF69, - 39110 - 11905: 0xEF6A, - 39111 - 11905: 0xEF6B, - 39112 - 11905: 0xEF6C, - 39113 - 11905: 0xEF6D, - 39114 - 11905: 0xEF6E, - 39115 - 11905: 0xEF6F, - 39116 - 11905: 0xEF70, - 39117 - 11905: 0xEF71, - 39118 - 11905: 0xB7E7, - 39119 - 11905: 0xEF72, - 39120 - 11905: 0xEF73, - 39121 - 11905: 0xECA9, - 39122 - 11905: 0xECAA, - 39123 - 11905: 0xECAB, - 39124 - 11905: 0xEF74, - 39125 - 11905: 0xECAC, - 39126 - 11905: 0xEF75, - 39127 - 11905: 0xEF76, - 39128 - 11905: 0xC6AE, - 39129 - 11905: 0xECAD, - 39130 - 11905: 0xECAE, - 39131 - 11905: 0xEF77, - 39132 - 11905: 0xEF78, - 39133 - 11905: 0xEF79, - 39134 - 11905: 0xB7C9, - 39135 - 11905: 0xCAB3, - 39136 - 11905: 0xEF7A, - 39137 - 11905: 0xEF7B, - 39138 - 11905: 0xEF7C, - 39139 - 11905: 0xEF7D, - 39140 - 11905: 0xEF7E, - 39141 - 11905: 0xEF80, - 39142 - 11905: 0xEF81, - 39143 - 11905: 0xE2B8, - 39144 - 11905: 0xF7CF, - 39145 - 11905: 0xEF82, - 39146 - 11905: 0xEF83, - 39147 - 11905: 0xEF84, - 39148 - 11905: 0xEF85, - 39149 - 11905: 0xEF86, - 39150 - 11905: 0xEF87, - 39151 - 11905: 0xEF88, - 39152 - 11905: 0xEF89, - 39153 - 11905: 0xEF8A, - 39154 - 11905: 0xEF8B, - 39155 - 11905: 0xEF8C, - 39156 - 11905: 0xEF8D, - 39157 - 11905: 0xEF8E, - 39158 - 11905: 0xEF8F, - 39159 - 11905: 0xEF90, - 39160 - 11905: 0xEF91, - 39161 - 11905: 0xEF92, - 39162 - 11905: 0xEF93, - 39163 - 11905: 0xEF94, - 39164 - 11905: 0xEF95, - 39165 - 11905: 0xEF96, - 39166 - 11905: 0xEF97, - 39167 - 11905: 0xEF98, - 39168 - 11905: 0xEF99, - 39169 - 11905: 0xEF9A, - 39170 - 11905: 0xEF9B, - 39171 - 11905: 0xEF9C, - 39172 - 11905: 0xEF9D, - 39173 - 11905: 0xEF9E, - 39174 - 11905: 0xEF9F, - 39175 - 11905: 0xEFA0, - 39176 - 11905: 0xF040, - 39177 - 11905: 0xF041, - 39178 - 11905: 0xF042, - 39179 - 11905: 0xF043, - 39180 - 11905: 0xF044, - 39181 - 11905: 0xF7D0, - 39182 - 11905: 0xF045, - 39183 - 11905: 0xF046, - 39184 - 11905: 0xB2CD, - 39185 - 11905: 0xF047, - 39186 - 11905: 0xF048, - 39187 - 11905: 0xF049, - 39188 - 11905: 0xF04A, - 39189 - 11905: 0xF04B, - 39190 - 11905: 0xF04C, - 39191 - 11905: 0xF04D, - 39192 - 11905: 0xF04E, - 39193 - 11905: 0xF04F, - 39194 - 11905: 0xF050, - 39195 - 11905: 0xF051, - 39196 - 11905: 0xF052, - 39197 - 11905: 0xF053, - 39198 - 11905: 0xF054, - 39199 - 11905: 0xF055, - 39200 - 11905: 0xF056, - 39201 - 11905: 0xF057, - 39202 - 11905: 0xF058, - 39203 - 11905: 0xF059, - 39204 - 11905: 0xF05A, - 39205 - 11905: 0xF05B, - 39206 - 11905: 0xF05C, - 39207 - 11905: 0xF05D, - 39208 - 11905: 0xF05E, - 39209 - 11905: 0xF05F, - 39210 - 11905: 0xF060, - 39211 - 11905: 0xF061, - 39212 - 11905: 0xF062, - 39213 - 11905: 0xF063, - 39214 - 11905: 0xF7D1, - 39215 - 11905: 0xF064, - 39216 - 11905: 0xF065, - 39217 - 11905: 0xF066, - 39218 - 11905: 0xF067, - 39219 - 11905: 0xF068, - 39220 - 11905: 0xF069, - 39221 - 11905: 0xF06A, - 39222 - 11905: 0xF06B, - 39223 - 11905: 0xF06C, - 39224 - 11905: 0xF06D, - 39225 - 11905: 0xF06E, - 39226 - 11905: 0xF06F, - 39227 - 11905: 0xF070, - 39228 - 11905: 0xF071, - 39229 - 11905: 0xF072, - 39230 - 11905: 0xF073, - 39231 - 11905: 0xF074, - 39232 - 11905: 0xF075, - 39233 - 11905: 0xF076, - 39234 - 11905: 0xF077, - 39235 - 11905: 0xF078, - 39236 - 11905: 0xF079, - 39237 - 11905: 0xF07A, - 39238 - 11905: 0xF07B, - 39239 - 11905: 0xF07C, - 39240 - 11905: 0xF07D, - 39241 - 11905: 0xF07E, - 39242 - 11905: 0xF080, - 39243 - 11905: 0xF081, - 39244 - 11905: 0xF082, - 39245 - 11905: 0xF083, - 39246 - 11905: 0xF084, - 39247 - 11905: 0xF085, - 39248 - 11905: 0xF086, - 39249 - 11905: 0xF087, - 39250 - 11905: 0xF088, - 39251 - 11905: 0xF089, - 39252 - 11905: 0xF7D3, - 39253 - 11905: 0xF7D2, - 39254 - 11905: 0xF08A, - 39255 - 11905: 0xF08B, - 39256 - 11905: 0xF08C, - 39257 - 11905: 0xF08D, - 39258 - 11905: 0xF08E, - 39259 - 11905: 0xF08F, - 39260 - 11905: 0xF090, - 39261 - 11905: 0xF091, - 39262 - 11905: 0xF092, - 39263 - 11905: 0xF093, - 39264 - 11905: 0xF094, - 39265 - 11905: 0xF095, - 39266 - 11905: 0xF096, - 39267 - 11905: 0xE2BB, - 39268 - 11905: 0xF097, - 39269 - 11905: 0xBCA2, - 39270 - 11905: 0xF098, - 39271 - 11905: 0xE2BC, - 39272 - 11905: 0xE2BD, - 39273 - 11905: 0xE2BE, - 39274 - 11905: 0xE2BF, - 39275 - 11905: 0xE2C0, - 39276 - 11905: 0xE2C1, - 39277 - 11905: 0xB7B9, - 39278 - 11905: 0xD2FB, - 39279 - 11905: 0xBDA4, - 39280 - 11905: 0xCACE, - 39281 - 11905: 0xB1A5, - 39282 - 11905: 0xCBC7, - 39283 - 11905: 0xF099, - 39284 - 11905: 0xE2C2, - 39285 - 11905: 0xB6FC, - 39286 - 11905: 0xC8C4, - 39287 - 11905: 0xE2C3, - 39288 - 11905: 0xF09A, - 39289 - 11905: 0xF09B, - 39290 - 11905: 0xBDC8, - 39291 - 11905: 0xF09C, - 39292 - 11905: 0xB1FD, - 39293 - 11905: 0xE2C4, - 39294 - 11905: 0xF09D, - 39295 - 11905: 0xB6F6, - 39296 - 11905: 0xE2C5, - 39297 - 11905: 0xC4D9, - 39298 - 11905: 0xF09E, - 39299 - 11905: 0xF09F, - 39300 - 11905: 0xE2C6, - 39301 - 11905: 0xCFDA, - 39302 - 11905: 0xB9DD, - 39303 - 11905: 0xE2C7, - 39304 - 11905: 0xC0A1, - 39305 - 11905: 0xF0A0, - 39306 - 11905: 0xE2C8, - 39307 - 11905: 0xB2F6, - 39308 - 11905: 0xF140, - 39309 - 11905: 0xE2C9, - 39310 - 11905: 0xF141, - 39311 - 11905: 0xC1F3, - 39312 - 11905: 0xE2CA, - 39313 - 11905: 0xE2CB, - 39314 - 11905: 0xC2F8, - 39315 - 11905: 0xE2CC, - 39316 - 11905: 0xE2CD, - 39317 - 11905: 0xE2CE, - 39318 - 11905: 0xCAD7, - 39319 - 11905: 0xD8B8, - 39320 - 11905: 0xD9E5, - 39321 - 11905: 0xCFE3, - 39322 - 11905: 0xF142, - 39323 - 11905: 0xF143, - 39324 - 11905: 0xF144, - 39325 - 11905: 0xF145, - 39326 - 11905: 0xF146, - 39327 - 11905: 0xF147, - 39328 - 11905: 0xF148, - 39329 - 11905: 0xF149, - 39330 - 11905: 0xF14A, - 39331 - 11905: 0xF14B, - 39332 - 11905: 0xF14C, - 39333 - 11905: 0xF0A5, - 39334 - 11905: 0xF14D, - 39335 - 11905: 0xF14E, - 39336 - 11905: 0xDCB0, - 39337 - 11905: 0xF14F, - 39338 - 11905: 0xF150, - 39339 - 11905: 0xF151, - 39340 - 11905: 0xF152, - 39341 - 11905: 0xF153, - 39342 - 11905: 0xF154, - 39343 - 11905: 0xF155, - 39344 - 11905: 0xF156, - 39345 - 11905: 0xF157, - 39346 - 11905: 0xF158, - 39347 - 11905: 0xF159, - 39348 - 11905: 0xF15A, - 39349 - 11905: 0xF15B, - 39350 - 11905: 0xF15C, - 39351 - 11905: 0xF15D, - 39352 - 11905: 0xF15E, - 39353 - 11905: 0xF15F, - 39354 - 11905: 0xF160, - 39355 - 11905: 0xF161, - 39356 - 11905: 0xF162, - 39357 - 11905: 0xF163, - 39358 - 11905: 0xF164, - 39359 - 11905: 0xF165, - 39360 - 11905: 0xF166, - 39361 - 11905: 0xF167, - 39362 - 11905: 0xF168, - 39363 - 11905: 0xF169, - 39364 - 11905: 0xF16A, - 39365 - 11905: 0xF16B, - 39366 - 11905: 0xF16C, - 39367 - 11905: 0xF16D, - 39368 - 11905: 0xF16E, - 39369 - 11905: 0xF16F, - 39370 - 11905: 0xF170, - 39371 - 11905: 0xF171, - 39372 - 11905: 0xF172, - 39373 - 11905: 0xF173, - 39374 - 11905: 0xF174, - 39375 - 11905: 0xF175, - 39376 - 11905: 0xF176, - 39377 - 11905: 0xF177, - 39378 - 11905: 0xF178, - 39379 - 11905: 0xF179, - 39380 - 11905: 0xF17A, - 39381 - 11905: 0xF17B, - 39382 - 11905: 0xF17C, - 39383 - 11905: 0xF17D, - 39384 - 11905: 0xF17E, - 39385 - 11905: 0xF180, - 39386 - 11905: 0xF181, - 39387 - 11905: 0xF182, - 39388 - 11905: 0xF183, - 39389 - 11905: 0xF184, - 39390 - 11905: 0xF185, - 39391 - 11905: 0xF186, - 39392 - 11905: 0xF187, - 39393 - 11905: 0xF188, - 39394 - 11905: 0xF189, - 39395 - 11905: 0xF18A, - 39396 - 11905: 0xF18B, - 39397 - 11905: 0xF18C, - 39398 - 11905: 0xF18D, - 39399 - 11905: 0xF18E, - 39400 - 11905: 0xF18F, - 39401 - 11905: 0xF190, - 39402 - 11905: 0xF191, - 39403 - 11905: 0xF192, - 39404 - 11905: 0xF193, - 39405 - 11905: 0xF194, - 39406 - 11905: 0xF195, - 39407 - 11905: 0xF196, - 39408 - 11905: 0xF197, - 39409 - 11905: 0xF198, - 39410 - 11905: 0xF199, - 39411 - 11905: 0xF19A, - 39412 - 11905: 0xF19B, - 39413 - 11905: 0xF19C, - 39414 - 11905: 0xF19D, - 39415 - 11905: 0xF19E, - 39416 - 11905: 0xF19F, - 39417 - 11905: 0xF1A0, - 39418 - 11905: 0xF240, - 39419 - 11905: 0xF241, - 39420 - 11905: 0xF242, - 39421 - 11905: 0xF243, - 39422 - 11905: 0xF244, - 39423 - 11905: 0xF245, - 39424 - 11905: 0xF246, - 39425 - 11905: 0xF247, - 39426 - 11905: 0xF248, - 39427 - 11905: 0xF249, - 39428 - 11905: 0xF24A, - 39429 - 11905: 0xF24B, - 39430 - 11905: 0xF24C, - 39431 - 11905: 0xF24D, - 39432 - 11905: 0xF24E, - 39433 - 11905: 0xF24F, - 39434 - 11905: 0xF250, - 39435 - 11905: 0xF251, - 39436 - 11905: 0xF252, - 39437 - 11905: 0xF253, - 39438 - 11905: 0xF254, - 39439 - 11905: 0xF255, - 39440 - 11905: 0xF256, - 39441 - 11905: 0xF257, - 39442 - 11905: 0xF258, - 39443 - 11905: 0xF259, - 39444 - 11905: 0xF25A, - 39445 - 11905: 0xF25B, - 39446 - 11905: 0xF25C, - 39447 - 11905: 0xF25D, - 39448 - 11905: 0xF25E, - 39449 - 11905: 0xF25F, - 39450 - 11905: 0xF260, - 39451 - 11905: 0xF261, - 39452 - 11905: 0xF262, - 39453 - 11905: 0xF263, - 39454 - 11905: 0xF264, - 39455 - 11905: 0xF265, - 39456 - 11905: 0xF266, - 39457 - 11905: 0xF267, - 39458 - 11905: 0xF268, - 39459 - 11905: 0xF269, - 39460 - 11905: 0xF26A, - 39461 - 11905: 0xF26B, - 39462 - 11905: 0xF26C, - 39463 - 11905: 0xF26D, - 39464 - 11905: 0xF26E, - 39465 - 11905: 0xF26F, - 39466 - 11905: 0xF270, - 39467 - 11905: 0xF271, - 39468 - 11905: 0xF272, - 39469 - 11905: 0xF273, - 39470 - 11905: 0xF274, - 39471 - 11905: 0xF275, - 39472 - 11905: 0xF276, - 39473 - 11905: 0xF277, - 39474 - 11905: 0xF278, - 39475 - 11905: 0xF279, - 39476 - 11905: 0xF27A, - 39477 - 11905: 0xF27B, - 39478 - 11905: 0xF27C, - 39479 - 11905: 0xF27D, - 39480 - 11905: 0xF27E, - 39481 - 11905: 0xF280, - 39482 - 11905: 0xF281, - 39483 - 11905: 0xF282, - 39484 - 11905: 0xF283, - 39485 - 11905: 0xF284, - 39486 - 11905: 0xF285, - 39487 - 11905: 0xF286, - 39488 - 11905: 0xF287, - 39489 - 11905: 0xF288, - 39490 - 11905: 0xF289, - 39491 - 11905: 0xF28A, - 39492 - 11905: 0xF28B, - 39493 - 11905: 0xF28C, - 39494 - 11905: 0xF28D, - 39495 - 11905: 0xF28E, - 39496 - 11905: 0xF28F, - 39497 - 11905: 0xF290, - 39498 - 11905: 0xF291, - 39499 - 11905: 0xF292, - 39500 - 11905: 0xF293, - 39501 - 11905: 0xF294, - 39502 - 11905: 0xF295, - 39503 - 11905: 0xF296, - 39504 - 11905: 0xF297, - 39505 - 11905: 0xF298, - 39506 - 11905: 0xF299, - 39507 - 11905: 0xF29A, - 39508 - 11905: 0xF29B, - 39509 - 11905: 0xF29C, - 39510 - 11905: 0xF29D, - 39511 - 11905: 0xF29E, - 39512 - 11905: 0xF29F, - 39513 - 11905: 0xF2A0, - 39514 - 11905: 0xF340, - 39515 - 11905: 0xF341, - 39516 - 11905: 0xF342, - 39517 - 11905: 0xF343, - 39518 - 11905: 0xF344, - 39519 - 11905: 0xF345, - 39520 - 11905: 0xF346, - 39521 - 11905: 0xF347, - 39522 - 11905: 0xF348, - 39523 - 11905: 0xF349, - 39524 - 11905: 0xF34A, - 39525 - 11905: 0xF34B, - 39526 - 11905: 0xF34C, - 39527 - 11905: 0xF34D, - 39528 - 11905: 0xF34E, - 39529 - 11905: 0xF34F, - 39530 - 11905: 0xF350, - 39531 - 11905: 0xF351, - 39532 - 11905: 0xC2ED, - 39533 - 11905: 0xD4A6, - 39534 - 11905: 0xCDD4, - 39535 - 11905: 0xD1B1, - 39536 - 11905: 0xB3DB, - 39537 - 11905: 0xC7FD, - 39538 - 11905: 0xF352, - 39539 - 11905: 0xB2B5, - 39540 - 11905: 0xC2BF, - 39541 - 11905: 0xE6E0, - 39542 - 11905: 0xCABB, - 39543 - 11905: 0xE6E1, - 39544 - 11905: 0xE6E2, - 39545 - 11905: 0xBED4, - 39546 - 11905: 0xE6E3, - 39547 - 11905: 0xD7A4, - 39548 - 11905: 0xCDD5, - 39549 - 11905: 0xE6E5, - 39550 - 11905: 0xBCDD, - 39551 - 11905: 0xE6E4, - 39552 - 11905: 0xE6E6, - 39553 - 11905: 0xE6E7, - 39554 - 11905: 0xC2EE, - 39555 - 11905: 0xF353, - 39556 - 11905: 0xBDBE, - 39557 - 11905: 0xE6E8, - 39558 - 11905: 0xC2E6, - 39559 - 11905: 0xBAA7, - 39560 - 11905: 0xE6E9, - 39561 - 11905: 0xF354, - 39562 - 11905: 0xE6EA, - 39563 - 11905: 0xB3D2, - 39564 - 11905: 0xD1E9, - 39565 - 11905: 0xF355, - 39566 - 11905: 0xF356, - 39567 - 11905: 0xBFA5, - 39568 - 11905: 0xE6EB, - 39569 - 11905: 0xC6EF, - 39570 - 11905: 0xE6EC, - 39571 - 11905: 0xE6ED, - 39572 - 11905: 0xF357, - 39573 - 11905: 0xF358, - 39574 - 11905: 0xE6EE, - 39575 - 11905: 0xC6AD, - 39576 - 11905: 0xE6EF, - 39577 - 11905: 0xF359, - 39578 - 11905: 0xC9A7, - 39579 - 11905: 0xE6F0, - 39580 - 11905: 0xE6F1, - 39581 - 11905: 0xE6F2, - 39582 - 11905: 0xE5B9, - 39583 - 11905: 0xE6F3, - 39584 - 11905: 0xE6F4, - 39585 - 11905: 0xC2E2, - 39586 - 11905: 0xE6F5, - 39587 - 11905: 0xE6F6, - 39588 - 11905: 0xD6E8, - 39589 - 11905: 0xE6F7, - 39590 - 11905: 0xF35A, - 39591 - 11905: 0xE6F8, - 39592 - 11905: 0xB9C7, - 39593 - 11905: 0xF35B, - 39594 - 11905: 0xF35C, - 39595 - 11905: 0xF35D, - 39596 - 11905: 0xF35E, - 39597 - 11905: 0xF35F, - 39598 - 11905: 0xF360, - 39599 - 11905: 0xF361, - 39600 - 11905: 0xF7BB, - 39601 - 11905: 0xF7BA, - 39602 - 11905: 0xF362, - 39603 - 11905: 0xF363, - 39604 - 11905: 0xF364, - 39605 - 11905: 0xF365, - 39606 - 11905: 0xF7BE, - 39607 - 11905: 0xF7BC, - 39608 - 11905: 0xBAA1, - 39609 - 11905: 0xF366, - 39610 - 11905: 0xF7BF, - 39611 - 11905: 0xF367, - 39612 - 11905: 0xF7C0, - 39613 - 11905: 0xF368, - 39614 - 11905: 0xF369, - 39615 - 11905: 0xF36A, - 39616 - 11905: 0xF7C2, - 39617 - 11905: 0xF7C1, - 39618 - 11905: 0xF7C4, - 39619 - 11905: 0xF36B, - 39620 - 11905: 0xF36C, - 39621 - 11905: 0xF7C3, - 39622 - 11905: 0xF36D, - 39623 - 11905: 0xF36E, - 39624 - 11905: 0xF36F, - 39625 - 11905: 0xF370, - 39626 - 11905: 0xF371, - 39627 - 11905: 0xF7C5, - 39628 - 11905: 0xF7C6, - 39629 - 11905: 0xF372, - 39630 - 11905: 0xF373, - 39631 - 11905: 0xF374, - 39632 - 11905: 0xF375, - 39633 - 11905: 0xF7C7, - 39634 - 11905: 0xF376, - 39635 - 11905: 0xCBE8, - 39636 - 11905: 0xF377, - 39637 - 11905: 0xF378, - 39638 - 11905: 0xF379, - 39639 - 11905: 0xF37A, - 39640 - 11905: 0xB8DF, - 39641 - 11905: 0xF37B, - 39642 - 11905: 0xF37C, - 39643 - 11905: 0xF37D, - 39644 - 11905: 0xF37E, - 39645 - 11905: 0xF380, - 39646 - 11905: 0xF381, - 39647 - 11905: 0xF7D4, - 39648 - 11905: 0xF382, - 39649 - 11905: 0xF7D5, - 39650 - 11905: 0xF383, - 39651 - 11905: 0xF384, - 39652 - 11905: 0xF385, - 39653 - 11905: 0xF386, - 39654 - 11905: 0xF7D6, - 39655 - 11905: 0xF387, - 39656 - 11905: 0xF388, - 39657 - 11905: 0xF389, - 39658 - 11905: 0xF38A, - 39659 - 11905: 0xF7D8, - 39660 - 11905: 0xF38B, - 39661 - 11905: 0xF7DA, - 39662 - 11905: 0xF38C, - 39663 - 11905: 0xF7D7, - 39664 - 11905: 0xF38D, - 39665 - 11905: 0xF38E, - 39666 - 11905: 0xF38F, - 39667 - 11905: 0xF390, - 39668 - 11905: 0xF391, - 39669 - 11905: 0xF392, - 39670 - 11905: 0xF393, - 39671 - 11905: 0xF394, - 39672 - 11905: 0xF395, - 39673 - 11905: 0xF7DB, - 39674 - 11905: 0xF396, - 39675 - 11905: 0xF7D9, - 39676 - 11905: 0xF397, - 39677 - 11905: 0xF398, - 39678 - 11905: 0xF399, - 39679 - 11905: 0xF39A, - 39680 - 11905: 0xF39B, - 39681 - 11905: 0xF39C, - 39682 - 11905: 0xF39D, - 39683 - 11905: 0xD7D7, - 39684 - 11905: 0xF39E, - 39685 - 11905: 0xF39F, - 39686 - 11905: 0xF3A0, - 39687 - 11905: 0xF440, - 39688 - 11905: 0xF7DC, - 39689 - 11905: 0xF441, - 39690 - 11905: 0xF442, - 39691 - 11905: 0xF443, - 39692 - 11905: 0xF444, - 39693 - 11905: 0xF445, - 39694 - 11905: 0xF446, - 39695 - 11905: 0xF7DD, - 39696 - 11905: 0xF447, - 39697 - 11905: 0xF448, - 39698 - 11905: 0xF449, - 39699 - 11905: 0xF7DE, - 39700 - 11905: 0xF44A, - 39701 - 11905: 0xF44B, - 39702 - 11905: 0xF44C, - 39703 - 11905: 0xF44D, - 39704 - 11905: 0xF44E, - 39705 - 11905: 0xF44F, - 39706 - 11905: 0xF450, - 39707 - 11905: 0xF451, - 39708 - 11905: 0xF452, - 39709 - 11905: 0xF453, - 39710 - 11905: 0xF454, - 39711 - 11905: 0xF7DF, - 39712 - 11905: 0xF455, - 39713 - 11905: 0xF456, - 39714 - 11905: 0xF457, - 39715 - 11905: 0xF7E0, - 39716 - 11905: 0xF458, - 39717 - 11905: 0xF459, - 39718 - 11905: 0xF45A, - 39719 - 11905: 0xF45B, - 39720 - 11905: 0xF45C, - 39721 - 11905: 0xF45D, - 39722 - 11905: 0xF45E, - 39723 - 11905: 0xF45F, - 39724 - 11905: 0xF460, - 39725 - 11905: 0xF461, - 39726 - 11905: 0xF462, - 39727 - 11905: 0xDBCB, - 39728 - 11905: 0xF463, - 39729 - 11905: 0xF464, - 39730 - 11905: 0xD8AA, - 39731 - 11905: 0xF465, - 39732 - 11905: 0xF466, - 39733 - 11905: 0xF467, - 39734 - 11905: 0xF468, - 39735 - 11905: 0xF469, - 39736 - 11905: 0xF46A, - 39737 - 11905: 0xF46B, - 39738 - 11905: 0xF46C, - 39739 - 11905: 0xE5F7, - 39740 - 11905: 0xB9ED, - 39741 - 11905: 0xF46D, - 39742 - 11905: 0xF46E, - 39743 - 11905: 0xF46F, - 39744 - 11905: 0xF470, - 39745 - 11905: 0xBFFD, - 39746 - 11905: 0xBBEA, - 39747 - 11905: 0xF7C9, - 39748 - 11905: 0xC6C7, - 39749 - 11905: 0xF7C8, - 39750 - 11905: 0xF471, - 39751 - 11905: 0xF7CA, - 39752 - 11905: 0xF7CC, - 39753 - 11905: 0xF7CB, - 39754 - 11905: 0xF472, - 39755 - 11905: 0xF473, - 39756 - 11905: 0xF474, - 39757 - 11905: 0xF7CD, - 39758 - 11905: 0xF475, - 39759 - 11905: 0xCEBA, - 39760 - 11905: 0xF476, - 39761 - 11905: 0xF7CE, - 39762 - 11905: 0xF477, - 39763 - 11905: 0xF478, - 39764 - 11905: 0xC4A7, - 39765 - 11905: 0xF479, - 39766 - 11905: 0xF47A, - 39767 - 11905: 0xF47B, - 39768 - 11905: 0xF47C, - 39769 - 11905: 0xF47D, - 39770 - 11905: 0xF47E, - 39771 - 11905: 0xF480, - 39772 - 11905: 0xF481, - 39773 - 11905: 0xF482, - 39774 - 11905: 0xF483, - 39775 - 11905: 0xF484, - 39776 - 11905: 0xF485, - 39777 - 11905: 0xF486, - 39778 - 11905: 0xF487, - 39779 - 11905: 0xF488, - 39780 - 11905: 0xF489, - 39781 - 11905: 0xF48A, - 39782 - 11905: 0xF48B, - 39783 - 11905: 0xF48C, - 39784 - 11905: 0xF48D, - 39785 - 11905: 0xF48E, - 39786 - 11905: 0xF48F, - 39787 - 11905: 0xF490, - 39788 - 11905: 0xF491, - 39789 - 11905: 0xF492, - 39790 - 11905: 0xF493, - 39791 - 11905: 0xF494, - 39792 - 11905: 0xF495, - 39793 - 11905: 0xF496, - 39794 - 11905: 0xF497, - 39795 - 11905: 0xF498, - 39796 - 11905: 0xF499, - 39797 - 11905: 0xF49A, - 39798 - 11905: 0xF49B, - 39799 - 11905: 0xF49C, - 39800 - 11905: 0xF49D, - 39801 - 11905: 0xF49E, - 39802 - 11905: 0xF49F, - 39803 - 11905: 0xF4A0, - 39804 - 11905: 0xF540, - 39805 - 11905: 0xF541, - 39806 - 11905: 0xF542, - 39807 - 11905: 0xF543, - 39808 - 11905: 0xF544, - 39809 - 11905: 0xF545, - 39810 - 11905: 0xF546, - 39811 - 11905: 0xF547, - 39812 - 11905: 0xF548, - 39813 - 11905: 0xF549, - 39814 - 11905: 0xF54A, - 39815 - 11905: 0xF54B, - 39816 - 11905: 0xF54C, - 39817 - 11905: 0xF54D, - 39818 - 11905: 0xF54E, - 39819 - 11905: 0xF54F, - 39820 - 11905: 0xF550, - 39821 - 11905: 0xF551, - 39822 - 11905: 0xF552, - 39823 - 11905: 0xF553, - 39824 - 11905: 0xF554, - 39825 - 11905: 0xF555, - 39826 - 11905: 0xF556, - 39827 - 11905: 0xF557, - 39828 - 11905: 0xF558, - 39829 - 11905: 0xF559, - 39830 - 11905: 0xF55A, - 39831 - 11905: 0xF55B, - 39832 - 11905: 0xF55C, - 39833 - 11905: 0xF55D, - 39834 - 11905: 0xF55E, - 39835 - 11905: 0xF55F, - 39836 - 11905: 0xF560, - 39837 - 11905: 0xF561, - 39838 - 11905: 0xF562, - 39839 - 11905: 0xF563, - 39840 - 11905: 0xF564, - 39841 - 11905: 0xF565, - 39842 - 11905: 0xF566, - 39843 - 11905: 0xF567, - 39844 - 11905: 0xF568, - 39845 - 11905: 0xF569, - 39846 - 11905: 0xF56A, - 39847 - 11905: 0xF56B, - 39848 - 11905: 0xF56C, - 39849 - 11905: 0xF56D, - 39850 - 11905: 0xF56E, - 39851 - 11905: 0xF56F, - 39852 - 11905: 0xF570, - 39853 - 11905: 0xF571, - 39854 - 11905: 0xF572, - 39855 - 11905: 0xF573, - 39856 - 11905: 0xF574, - 39857 - 11905: 0xF575, - 39858 - 11905: 0xF576, - 39859 - 11905: 0xF577, - 39860 - 11905: 0xF578, - 39861 - 11905: 0xF579, - 39862 - 11905: 0xF57A, - 39863 - 11905: 0xF57B, - 39864 - 11905: 0xF57C, - 39865 - 11905: 0xF57D, - 39866 - 11905: 0xF57E, - 39867 - 11905: 0xF580, - 39868 - 11905: 0xF581, - 39869 - 11905: 0xF582, - 39870 - 11905: 0xF583, - 39871 - 11905: 0xF584, - 39872 - 11905: 0xF585, - 39873 - 11905: 0xF586, - 39874 - 11905: 0xF587, - 39875 - 11905: 0xF588, - 39876 - 11905: 0xF589, - 39877 - 11905: 0xF58A, - 39878 - 11905: 0xF58B, - 39879 - 11905: 0xF58C, - 39880 - 11905: 0xF58D, - 39881 - 11905: 0xF58E, - 39882 - 11905: 0xF58F, - 39883 - 11905: 0xF590, - 39884 - 11905: 0xF591, - 39885 - 11905: 0xF592, - 39886 - 11905: 0xF593, - 39887 - 11905: 0xF594, - 39888 - 11905: 0xF595, - 39889 - 11905: 0xF596, - 39890 - 11905: 0xF597, - 39891 - 11905: 0xF598, - 39892 - 11905: 0xF599, - 39893 - 11905: 0xF59A, - 39894 - 11905: 0xF59B, - 39895 - 11905: 0xF59C, - 39896 - 11905: 0xF59D, - 39897 - 11905: 0xF59E, - 39898 - 11905: 0xF59F, - 39899 - 11905: 0xF5A0, - 39900 - 11905: 0xF640, - 39901 - 11905: 0xF641, - 39902 - 11905: 0xF642, - 39903 - 11905: 0xF643, - 39904 - 11905: 0xF644, - 39905 - 11905: 0xF645, - 39906 - 11905: 0xF646, - 39907 - 11905: 0xF647, - 39908 - 11905: 0xF648, - 39909 - 11905: 0xF649, - 39910 - 11905: 0xF64A, - 39911 - 11905: 0xF64B, - 39912 - 11905: 0xF64C, - 39913 - 11905: 0xF64D, - 39914 - 11905: 0xF64E, - 39915 - 11905: 0xF64F, - 39916 - 11905: 0xF650, - 39917 - 11905: 0xF651, - 39918 - 11905: 0xF652, - 39919 - 11905: 0xF653, - 39920 - 11905: 0xF654, - 39921 - 11905: 0xF655, - 39922 - 11905: 0xF656, - 39923 - 11905: 0xF657, - 39924 - 11905: 0xF658, - 39925 - 11905: 0xF659, - 39926 - 11905: 0xF65A, - 39927 - 11905: 0xF65B, - 39928 - 11905: 0xF65C, - 39929 - 11905: 0xF65D, - 39930 - 11905: 0xF65E, - 39931 - 11905: 0xF65F, - 39932 - 11905: 0xF660, - 39933 - 11905: 0xF661, - 39934 - 11905: 0xF662, - 39935 - 11905: 0xF663, - 39936 - 11905: 0xF664, - 39937 - 11905: 0xF665, - 39938 - 11905: 0xF666, - 39939 - 11905: 0xF667, - 39940 - 11905: 0xF668, - 39941 - 11905: 0xF669, - 39942 - 11905: 0xF66A, - 39943 - 11905: 0xF66B, - 39944 - 11905: 0xF66C, - 39945 - 11905: 0xF66D, - 39946 - 11905: 0xF66E, - 39947 - 11905: 0xF66F, - 39948 - 11905: 0xF670, - 39949 - 11905: 0xF671, - 39950 - 11905: 0xF672, - 39951 - 11905: 0xF673, - 39952 - 11905: 0xF674, - 39953 - 11905: 0xF675, - 39954 - 11905: 0xF676, - 39955 - 11905: 0xF677, - 39956 - 11905: 0xF678, - 39957 - 11905: 0xF679, - 39958 - 11905: 0xF67A, - 39959 - 11905: 0xF67B, - 39960 - 11905: 0xF67C, - 39961 - 11905: 0xF67D, - 39962 - 11905: 0xF67E, - 39963 - 11905: 0xF680, - 39964 - 11905: 0xF681, - 39965 - 11905: 0xF682, - 39966 - 11905: 0xF683, - 39967 - 11905: 0xF684, - 39968 - 11905: 0xF685, - 39969 - 11905: 0xF686, - 39970 - 11905: 0xF687, - 39971 - 11905: 0xF688, - 39972 - 11905: 0xF689, - 39973 - 11905: 0xF68A, - 39974 - 11905: 0xF68B, - 39975 - 11905: 0xF68C, - 39976 - 11905: 0xF68D, - 39977 - 11905: 0xF68E, - 39978 - 11905: 0xF68F, - 39979 - 11905: 0xF690, - 39980 - 11905: 0xF691, - 39981 - 11905: 0xF692, - 39982 - 11905: 0xF693, - 39983 - 11905: 0xF694, - 39984 - 11905: 0xF695, - 39985 - 11905: 0xF696, - 39986 - 11905: 0xF697, - 39987 - 11905: 0xF698, - 39988 - 11905: 0xF699, - 39989 - 11905: 0xF69A, - 39990 - 11905: 0xF69B, - 39991 - 11905: 0xF69C, - 39992 - 11905: 0xF69D, - 39993 - 11905: 0xF69E, - 39994 - 11905: 0xF69F, - 39995 - 11905: 0xF6A0, - 39996 - 11905: 0xF740, - 39997 - 11905: 0xF741, - 39998 - 11905: 0xF742, - 39999 - 11905: 0xF743, - 40000 - 11905: 0xF744, - 40001 - 11905: 0xF745, - 40002 - 11905: 0xF746, - 40003 - 11905: 0xF747, - 40004 - 11905: 0xF748, - 40005 - 11905: 0xF749, - 40006 - 11905: 0xF74A, - 40007 - 11905: 0xF74B, - 40008 - 11905: 0xF74C, - 40009 - 11905: 0xF74D, - 40010 - 11905: 0xF74E, - 40011 - 11905: 0xF74F, - 40012 - 11905: 0xF750, - 40013 - 11905: 0xF751, - 40014 - 11905: 0xF752, - 40015 - 11905: 0xF753, - 40016 - 11905: 0xF754, - 40017 - 11905: 0xF755, - 40018 - 11905: 0xF756, - 40019 - 11905: 0xF757, - 40020 - 11905: 0xF758, - 40021 - 11905: 0xF759, - 40022 - 11905: 0xF75A, - 40023 - 11905: 0xF75B, - 40024 - 11905: 0xF75C, - 40025 - 11905: 0xF75D, - 40026 - 11905: 0xF75E, - 40027 - 11905: 0xF75F, - 40028 - 11905: 0xF760, - 40029 - 11905: 0xF761, - 40030 - 11905: 0xF762, - 40031 - 11905: 0xF763, - 40032 - 11905: 0xF764, - 40033 - 11905: 0xF765, - 40034 - 11905: 0xF766, - 40035 - 11905: 0xF767, - 40036 - 11905: 0xF768, - 40037 - 11905: 0xF769, - 40038 - 11905: 0xF76A, - 40039 - 11905: 0xF76B, - 40040 - 11905: 0xF76C, - 40041 - 11905: 0xF76D, - 40042 - 11905: 0xF76E, - 40043 - 11905: 0xF76F, - 40044 - 11905: 0xF770, - 40045 - 11905: 0xF771, - 40046 - 11905: 0xF772, - 40047 - 11905: 0xF773, - 40048 - 11905: 0xF774, - 40049 - 11905: 0xF775, - 40050 - 11905: 0xF776, - 40051 - 11905: 0xF777, - 40052 - 11905: 0xF778, - 40053 - 11905: 0xF779, - 40054 - 11905: 0xF77A, - 40055 - 11905: 0xF77B, - 40056 - 11905: 0xF77C, - 40057 - 11905: 0xF77D, - 40058 - 11905: 0xF77E, - 40059 - 11905: 0xF780, - 40060 - 11905: 0xD3E3, - 40061 - 11905: 0xF781, - 40062 - 11905: 0xF782, - 40063 - 11905: 0xF6CF, - 40064 - 11905: 0xF783, - 40065 - 11905: 0xC2B3, - 40066 - 11905: 0xF6D0, - 40067 - 11905: 0xF784, - 40068 - 11905: 0xF785, - 40069 - 11905: 0xF6D1, - 40070 - 11905: 0xF6D2, - 40071 - 11905: 0xF6D3, - 40072 - 11905: 0xF6D4, - 40073 - 11905: 0xF786, - 40074 - 11905: 0xF787, - 40075 - 11905: 0xF6D6, - 40076 - 11905: 0xF788, - 40077 - 11905: 0xB1AB, - 40078 - 11905: 0xF6D7, - 40079 - 11905: 0xF789, - 40080 - 11905: 0xF6D8, - 40081 - 11905: 0xF6D9, - 40082 - 11905: 0xF6DA, - 40083 - 11905: 0xF78A, - 40084 - 11905: 0xF6DB, - 40085 - 11905: 0xF6DC, - 40086 - 11905: 0xF78B, - 40087 - 11905: 0xF78C, - 40088 - 11905: 0xF78D, - 40089 - 11905: 0xF78E, - 40090 - 11905: 0xF6DD, - 40091 - 11905: 0xF6DE, - 40092 - 11905: 0xCFCA, - 40093 - 11905: 0xF78F, - 40094 - 11905: 0xF6DF, - 40095 - 11905: 0xF6E0, - 40096 - 11905: 0xF6E1, - 40097 - 11905: 0xF6E2, - 40098 - 11905: 0xF6E3, - 40099 - 11905: 0xF6E4, - 40100 - 11905: 0xC0F0, - 40101 - 11905: 0xF6E5, - 40102 - 11905: 0xF6E6, - 40103 - 11905: 0xF6E7, - 40104 - 11905: 0xF6E8, - 40105 - 11905: 0xF6E9, - 40106 - 11905: 0xF790, - 40107 - 11905: 0xF6EA, - 40108 - 11905: 0xF791, - 40109 - 11905: 0xF6EB, - 40110 - 11905: 0xF6EC, - 40111 - 11905: 0xF792, - 40112 - 11905: 0xF6ED, - 40113 - 11905: 0xF6EE, - 40114 - 11905: 0xF6EF, - 40115 - 11905: 0xF6F0, - 40116 - 11905: 0xF6F1, - 40117 - 11905: 0xF6F2, - 40118 - 11905: 0xF6F3, - 40119 - 11905: 0xF6F4, - 40120 - 11905: 0xBEA8, - 40121 - 11905: 0xF793, - 40122 - 11905: 0xF6F5, - 40123 - 11905: 0xF6F6, - 40124 - 11905: 0xF6F7, - 40125 - 11905: 0xF6F8, - 40126 - 11905: 0xF794, - 40127 - 11905: 0xF795, - 40128 - 11905: 0xF796, - 40129 - 11905: 0xF797, - 40130 - 11905: 0xF798, - 40131 - 11905: 0xC8FA, - 40132 - 11905: 0xF6F9, - 40133 - 11905: 0xF6FA, - 40134 - 11905: 0xF6FB, - 40135 - 11905: 0xF6FC, - 40136 - 11905: 0xF799, - 40137 - 11905: 0xF79A, - 40138 - 11905: 0xF6FD, - 40139 - 11905: 0xF6FE, - 40140 - 11905: 0xF7A1, - 40141 - 11905: 0xF7A2, - 40142 - 11905: 0xF7A3, - 40143 - 11905: 0xF7A4, - 40144 - 11905: 0xF7A5, - 40145 - 11905: 0xF79B, - 40146 - 11905: 0xF79C, - 40147 - 11905: 0xF7A6, - 40148 - 11905: 0xF7A7, - 40149 - 11905: 0xF7A8, - 40150 - 11905: 0xB1EE, - 40151 - 11905: 0xF7A9, - 40152 - 11905: 0xF7AA, - 40153 - 11905: 0xF7AB, - 40154 - 11905: 0xF79D, - 40155 - 11905: 0xF79E, - 40156 - 11905: 0xF7AC, - 40157 - 11905: 0xF7AD, - 40158 - 11905: 0xC1DB, - 40159 - 11905: 0xF7AE, - 40160 - 11905: 0xF79F, - 40161 - 11905: 0xF7A0, - 40162 - 11905: 0xF7AF, - 40163 - 11905: 0xF840, - 40164 - 11905: 0xF841, - 40165 - 11905: 0xF842, - 40166 - 11905: 0xF843, - 40167 - 11905: 0xF844, - 40168 - 11905: 0xF845, - 40169 - 11905: 0xF846, - 40170 - 11905: 0xF847, - 40171 - 11905: 0xF848, - 40172 - 11905: 0xF849, - 40173 - 11905: 0xF84A, - 40174 - 11905: 0xF84B, - 40175 - 11905: 0xF84C, - 40176 - 11905: 0xF84D, - 40177 - 11905: 0xF84E, - 40178 - 11905: 0xF84F, - 40179 - 11905: 0xF850, - 40180 - 11905: 0xF851, - 40181 - 11905: 0xF852, - 40182 - 11905: 0xF853, - 40183 - 11905: 0xF854, - 40184 - 11905: 0xF855, - 40185 - 11905: 0xF856, - 40186 - 11905: 0xF857, - 40187 - 11905: 0xF858, - 40188 - 11905: 0xF859, - 40189 - 11905: 0xF85A, - 40190 - 11905: 0xF85B, - 40191 - 11905: 0xF85C, - 40192 - 11905: 0xF85D, - 40193 - 11905: 0xF85E, - 40194 - 11905: 0xF85F, - 40195 - 11905: 0xF860, - 40196 - 11905: 0xF861, - 40197 - 11905: 0xF862, - 40198 - 11905: 0xF863, - 40199 - 11905: 0xF864, - 40200 - 11905: 0xF865, - 40201 - 11905: 0xF866, - 40202 - 11905: 0xF867, - 40203 - 11905: 0xF868, - 40204 - 11905: 0xF869, - 40205 - 11905: 0xF86A, - 40206 - 11905: 0xF86B, - 40207 - 11905: 0xF86C, - 40208 - 11905: 0xF86D, - 40209 - 11905: 0xF86E, - 40210 - 11905: 0xF86F, - 40211 - 11905: 0xF870, - 40212 - 11905: 0xF871, - 40213 - 11905: 0xF872, - 40214 - 11905: 0xF873, - 40215 - 11905: 0xF874, - 40216 - 11905: 0xF875, - 40217 - 11905: 0xF876, - 40218 - 11905: 0xF877, - 40219 - 11905: 0xF878, - 40220 - 11905: 0xF879, - 40221 - 11905: 0xF87A, - 40222 - 11905: 0xF87B, - 40223 - 11905: 0xF87C, - 40224 - 11905: 0xF87D, - 40225 - 11905: 0xF87E, - 40226 - 11905: 0xF880, - 40227 - 11905: 0xF881, - 40228 - 11905: 0xF882, - 40229 - 11905: 0xF883, - 40230 - 11905: 0xF884, - 40231 - 11905: 0xF885, - 40232 - 11905: 0xF886, - 40233 - 11905: 0xF887, - 40234 - 11905: 0xF888, - 40235 - 11905: 0xF889, - 40236 - 11905: 0xF88A, - 40237 - 11905: 0xF88B, - 40238 - 11905: 0xF88C, - 40239 - 11905: 0xF88D, - 40240 - 11905: 0xF88E, - 40241 - 11905: 0xF88F, - 40242 - 11905: 0xF890, - 40243 - 11905: 0xF891, - 40244 - 11905: 0xF892, - 40245 - 11905: 0xF893, - 40246 - 11905: 0xF894, - 40247 - 11905: 0xF895, - 40248 - 11905: 0xF896, - 40249 - 11905: 0xF897, - 40250 - 11905: 0xF898, - 40251 - 11905: 0xF899, - 40252 - 11905: 0xF89A, - 40253 - 11905: 0xF89B, - 40254 - 11905: 0xF89C, - 40255 - 11905: 0xF89D, - 40256 - 11905: 0xF89E, - 40257 - 11905: 0xF89F, - 40258 - 11905: 0xF8A0, - 40259 - 11905: 0xF940, - 40260 - 11905: 0xF941, - 40261 - 11905: 0xF942, - 40262 - 11905: 0xF943, - 40263 - 11905: 0xF944, - 40264 - 11905: 0xF945, - 40265 - 11905: 0xF946, - 40266 - 11905: 0xF947, - 40267 - 11905: 0xF948, - 40268 - 11905: 0xF949, - 40269 - 11905: 0xF94A, - 40270 - 11905: 0xF94B, - 40271 - 11905: 0xF94C, - 40272 - 11905: 0xF94D, - 40273 - 11905: 0xF94E, - 40274 - 11905: 0xF94F, - 40275 - 11905: 0xF950, - 40276 - 11905: 0xF951, - 40277 - 11905: 0xF952, - 40278 - 11905: 0xF953, - 40279 - 11905: 0xF954, - 40280 - 11905: 0xF955, - 40281 - 11905: 0xF956, - 40282 - 11905: 0xF957, - 40283 - 11905: 0xF958, - 40284 - 11905: 0xF959, - 40285 - 11905: 0xF95A, - 40286 - 11905: 0xF95B, - 40287 - 11905: 0xF95C, - 40288 - 11905: 0xF95D, - 40289 - 11905: 0xF95E, - 40290 - 11905: 0xF95F, - 40291 - 11905: 0xF960, - 40292 - 11905: 0xF961, - 40293 - 11905: 0xF962, - 40294 - 11905: 0xF963, - 40295 - 11905: 0xF964, - 40296 - 11905: 0xF965, - 40297 - 11905: 0xF966, - 40298 - 11905: 0xF967, - 40299 - 11905: 0xF968, - 40300 - 11905: 0xF969, - 40301 - 11905: 0xF96A, - 40302 - 11905: 0xF96B, - 40303 - 11905: 0xF96C, - 40304 - 11905: 0xF96D, - 40305 - 11905: 0xF96E, - 40306 - 11905: 0xF96F, - 40307 - 11905: 0xF970, - 40308 - 11905: 0xF971, - 40309 - 11905: 0xF972, - 40310 - 11905: 0xF973, - 40311 - 11905: 0xF974, - 40312 - 11905: 0xF975, - 40313 - 11905: 0xF976, - 40314 - 11905: 0xF977, - 40315 - 11905: 0xF978, - 40316 - 11905: 0xF979, - 40317 - 11905: 0xF97A, - 40318 - 11905: 0xF97B, - 40319 - 11905: 0xF97C, - 40320 - 11905: 0xF97D, - 40321 - 11905: 0xF97E, - 40322 - 11905: 0xF980, - 40323 - 11905: 0xF981, - 40324 - 11905: 0xF982, - 40325 - 11905: 0xF983, - 40326 - 11905: 0xF984, - 40327 - 11905: 0xF985, - 40328 - 11905: 0xF986, - 40329 - 11905: 0xF987, - 40330 - 11905: 0xF988, - 40331 - 11905: 0xF989, - 40332 - 11905: 0xF98A, - 40333 - 11905: 0xF98B, - 40334 - 11905: 0xF98C, - 40335 - 11905: 0xF98D, - 40336 - 11905: 0xF98E, - 40337 - 11905: 0xF98F, - 40338 - 11905: 0xF990, - 40339 - 11905: 0xF991, - 40340 - 11905: 0xF992, - 40341 - 11905: 0xF993, - 40342 - 11905: 0xF994, - 40343 - 11905: 0xF995, - 40344 - 11905: 0xF996, - 40345 - 11905: 0xF997, - 40346 - 11905: 0xF998, - 40347 - 11905: 0xF999, - 40348 - 11905: 0xF99A, - 40349 - 11905: 0xF99B, - 40350 - 11905: 0xF99C, - 40351 - 11905: 0xF99D, - 40352 - 11905: 0xF99E, - 40353 - 11905: 0xF99F, - 40354 - 11905: 0xF9A0, - 40355 - 11905: 0xFA40, - 40356 - 11905: 0xFA41, - 40357 - 11905: 0xFA42, - 40358 - 11905: 0xFA43, - 40359 - 11905: 0xFA44, - 40360 - 11905: 0xFA45, - 40361 - 11905: 0xFA46, - 40362 - 11905: 0xFA47, - 40363 - 11905: 0xFA48, - 40364 - 11905: 0xFA49, - 40365 - 11905: 0xFA4A, - 40366 - 11905: 0xFA4B, - 40367 - 11905: 0xFA4C, - 40368 - 11905: 0xFA4D, - 40369 - 11905: 0xFA4E, - 40370 - 11905: 0xFA4F, - 40371 - 11905: 0xFA50, - 40372 - 11905: 0xFA51, - 40373 - 11905: 0xFA52, - 40374 - 11905: 0xFA53, - 40375 - 11905: 0xFA54, - 40376 - 11905: 0xFA55, - 40377 - 11905: 0xFA56, - 40378 - 11905: 0xFA57, - 40379 - 11905: 0xFA58, - 40380 - 11905: 0xFA59, - 40381 - 11905: 0xFA5A, - 40382 - 11905: 0xFA5B, - 40383 - 11905: 0xFA5C, - 40384 - 11905: 0xFA5D, - 40385 - 11905: 0xFA5E, - 40386 - 11905: 0xFA5F, - 40387 - 11905: 0xFA60, - 40388 - 11905: 0xFA61, - 40389 - 11905: 0xFA62, - 40390 - 11905: 0xFA63, - 40391 - 11905: 0xFA64, - 40392 - 11905: 0xFA65, - 40393 - 11905: 0xFA66, - 40394 - 11905: 0xFA67, - 40395 - 11905: 0xFA68, - 40396 - 11905: 0xFA69, - 40397 - 11905: 0xFA6A, - 40398 - 11905: 0xFA6B, - 40399 - 11905: 0xFA6C, - 40400 - 11905: 0xFA6D, - 40401 - 11905: 0xFA6E, - 40402 - 11905: 0xFA6F, - 40403 - 11905: 0xFA70, - 40404 - 11905: 0xFA71, - 40405 - 11905: 0xFA72, - 40406 - 11905: 0xFA73, - 40407 - 11905: 0xFA74, - 40408 - 11905: 0xFA75, - 40409 - 11905: 0xFA76, - 40410 - 11905: 0xFA77, - 40411 - 11905: 0xFA78, - 40412 - 11905: 0xFA79, - 40413 - 11905: 0xFA7A, - 40414 - 11905: 0xFA7B, - 40415 - 11905: 0xFA7C, - 40416 - 11905: 0xFA7D, - 40417 - 11905: 0xFA7E, - 40418 - 11905: 0xFA80, - 40419 - 11905: 0xFA81, - 40420 - 11905: 0xFA82, - 40421 - 11905: 0xFA83, - 40422 - 11905: 0xFA84, - 40423 - 11905: 0xFA85, - 40424 - 11905: 0xFA86, - 40425 - 11905: 0xFA87, - 40426 - 11905: 0xFA88, - 40427 - 11905: 0xFA89, - 40428 - 11905: 0xFA8A, - 40429 - 11905: 0xFA8B, - 40430 - 11905: 0xFA8C, - 40431 - 11905: 0xFA8D, - 40432 - 11905: 0xFA8E, - 40433 - 11905: 0xFA8F, - 40434 - 11905: 0xFA90, - 40435 - 11905: 0xFA91, - 40436 - 11905: 0xFA92, - 40437 - 11905: 0xFA93, - 40438 - 11905: 0xFA94, - 40439 - 11905: 0xFA95, - 40440 - 11905: 0xFA96, - 40441 - 11905: 0xFA97, - 40442 - 11905: 0xFA98, - 40443 - 11905: 0xFA99, - 40444 - 11905: 0xFA9A, - 40445 - 11905: 0xFA9B, - 40446 - 11905: 0xFA9C, - 40447 - 11905: 0xFA9D, - 40448 - 11905: 0xFA9E, - 40449 - 11905: 0xFA9F, - 40450 - 11905: 0xFAA0, - 40451 - 11905: 0xFB40, - 40452 - 11905: 0xFB41, - 40453 - 11905: 0xFB42, - 40454 - 11905: 0xFB43, - 40455 - 11905: 0xFB44, - 40456 - 11905: 0xFB45, - 40457 - 11905: 0xFB46, - 40458 - 11905: 0xFB47, - 40459 - 11905: 0xFB48, - 40460 - 11905: 0xFB49, - 40461 - 11905: 0xFB4A, - 40462 - 11905: 0xFB4B, - 40463 - 11905: 0xFB4C, - 40464 - 11905: 0xFB4D, - 40465 - 11905: 0xFB4E, - 40466 - 11905: 0xFB4F, - 40467 - 11905: 0xFB50, - 40468 - 11905: 0xFB51, - 40469 - 11905: 0xFB52, - 40470 - 11905: 0xFB53, - 40471 - 11905: 0xFB54, - 40472 - 11905: 0xFB55, - 40473 - 11905: 0xFB56, - 40474 - 11905: 0xFB57, - 40475 - 11905: 0xFB58, - 40476 - 11905: 0xFB59, - 40477 - 11905: 0xFB5A, - 40478 - 11905: 0xFB5B, - 40479 - 11905: 0xC4F1, - 40480 - 11905: 0xF0AF, - 40481 - 11905: 0xBCA6, - 40482 - 11905: 0xF0B0, - 40483 - 11905: 0xC3F9, - 40484 - 11905: 0xFB5C, - 40485 - 11905: 0xC5B8, - 40486 - 11905: 0xD1BB, - 40487 - 11905: 0xFB5D, - 40488 - 11905: 0xF0B1, - 40489 - 11905: 0xF0B2, - 40490 - 11905: 0xF0B3, - 40491 - 11905: 0xF0B4, - 40492 - 11905: 0xF0B5, - 40493 - 11905: 0xD1BC, - 40494 - 11905: 0xFB5E, - 40495 - 11905: 0xD1EC, - 40496 - 11905: 0xFB5F, - 40497 - 11905: 0xF0B7, - 40498 - 11905: 0xF0B6, - 40499 - 11905: 0xD4A7, - 40500 - 11905: 0xFB60, - 40501 - 11905: 0xCDD2, - 40502 - 11905: 0xF0B8, - 40503 - 11905: 0xF0BA, - 40504 - 11905: 0xF0B9, - 40505 - 11905: 0xF0BB, - 40506 - 11905: 0xF0BC, - 40507 - 11905: 0xFB61, - 40508 - 11905: 0xFB62, - 40509 - 11905: 0xB8EB, - 40510 - 11905: 0xF0BD, - 40511 - 11905: 0xBAE8, - 40512 - 11905: 0xFB63, - 40513 - 11905: 0xF0BE, - 40514 - 11905: 0xF0BF, - 40515 - 11905: 0xBEE9, - 40516 - 11905: 0xF0C0, - 40517 - 11905: 0xB6EC, - 40518 - 11905: 0xF0C1, - 40519 - 11905: 0xF0C2, - 40520 - 11905: 0xF0C3, - 40521 - 11905: 0xF0C4, - 40522 - 11905: 0xC8B5, - 40523 - 11905: 0xF0C5, - 40524 - 11905: 0xF0C6, - 40525 - 11905: 0xFB64, - 40526 - 11905: 0xF0C7, - 40527 - 11905: 0xC5F4, - 40528 - 11905: 0xFB65, - 40529 - 11905: 0xF0C8, - 40530 - 11905: 0xFB66, - 40531 - 11905: 0xFB67, - 40532 - 11905: 0xFB68, - 40533 - 11905: 0xF0C9, - 40534 - 11905: 0xFB69, - 40535 - 11905: 0xF0CA, - 40536 - 11905: 0xF7BD, - 40537 - 11905: 0xFB6A, - 40538 - 11905: 0xF0CB, - 40539 - 11905: 0xF0CC, - 40540 - 11905: 0xF0CD, - 40541 - 11905: 0xFB6B, - 40542 - 11905: 0xF0CE, - 40543 - 11905: 0xFB6C, - 40544 - 11905: 0xFB6D, - 40545 - 11905: 0xFB6E, - 40546 - 11905: 0xFB6F, - 40547 - 11905: 0xF0CF, - 40548 - 11905: 0xBAD7, - 40549 - 11905: 0xFB70, - 40550 - 11905: 0xF0D0, - 40551 - 11905: 0xF0D1, - 40552 - 11905: 0xF0D2, - 40553 - 11905: 0xF0D3, - 40554 - 11905: 0xF0D4, - 40555 - 11905: 0xF0D5, - 40556 - 11905: 0xF0D6, - 40557 - 11905: 0xF0D8, - 40558 - 11905: 0xFB71, - 40559 - 11905: 0xFB72, - 40560 - 11905: 0xD3A5, - 40561 - 11905: 0xF0D7, - 40562 - 11905: 0xFB73, - 40563 - 11905: 0xF0D9, - 40564 - 11905: 0xFB74, - 40565 - 11905: 0xFB75, - 40566 - 11905: 0xFB76, - 40567 - 11905: 0xFB77, - 40568 - 11905: 0xFB78, - 40569 - 11905: 0xFB79, - 40570 - 11905: 0xFB7A, - 40571 - 11905: 0xFB7B, - 40572 - 11905: 0xFB7C, - 40573 - 11905: 0xFB7D, - 40574 - 11905: 0xF5BA, - 40575 - 11905: 0xC2B9, - 40576 - 11905: 0xFB7E, - 40577 - 11905: 0xFB80, - 40578 - 11905: 0xF7E4, - 40579 - 11905: 0xFB81, - 40580 - 11905: 0xFB82, - 40581 - 11905: 0xFB83, - 40582 - 11905: 0xFB84, - 40583 - 11905: 0xF7E5, - 40584 - 11905: 0xF7E6, - 40585 - 11905: 0xFB85, - 40586 - 11905: 0xFB86, - 40587 - 11905: 0xF7E7, - 40588 - 11905: 0xFB87, - 40589 - 11905: 0xFB88, - 40590 - 11905: 0xFB89, - 40591 - 11905: 0xFB8A, - 40592 - 11905: 0xFB8B, - 40593 - 11905: 0xFB8C, - 40594 - 11905: 0xF7E8, - 40595 - 11905: 0xC2B4, - 40596 - 11905: 0xFB8D, - 40597 - 11905: 0xFB8E, - 40598 - 11905: 0xFB8F, - 40599 - 11905: 0xFB90, - 40600 - 11905: 0xFB91, - 40601 - 11905: 0xFB92, - 40602 - 11905: 0xFB93, - 40603 - 11905: 0xFB94, - 40604 - 11905: 0xFB95, - 40605 - 11905: 0xF7EA, - 40606 - 11905: 0xFB96, - 40607 - 11905: 0xF7EB, - 40608 - 11905: 0xFB97, - 40609 - 11905: 0xFB98, - 40610 - 11905: 0xFB99, - 40611 - 11905: 0xFB9A, - 40612 - 11905: 0xFB9B, - 40613 - 11905: 0xFB9C, - 40614 - 11905: 0xC2F3, - 40615 - 11905: 0xFB9D, - 40616 - 11905: 0xFB9E, - 40617 - 11905: 0xFB9F, - 40618 - 11905: 0xFBA0, - 40619 - 11905: 0xFC40, - 40620 - 11905: 0xFC41, - 40621 - 11905: 0xFC42, - 40622 - 11905: 0xFC43, - 40623 - 11905: 0xFC44, - 40624 - 11905: 0xFC45, - 40625 - 11905: 0xFC46, - 40626 - 11905: 0xFC47, - 40627 - 11905: 0xFC48, - 40628 - 11905: 0xF4F0, - 40629 - 11905: 0xFC49, - 40630 - 11905: 0xFC4A, - 40631 - 11905: 0xFC4B, - 40632 - 11905: 0xF4EF, - 40633 - 11905: 0xFC4C, - 40634 - 11905: 0xFC4D, - 40635 - 11905: 0xC2E9, - 40636 - 11905: 0xFC4E, - 40637 - 11905: 0xF7E1, - 40638 - 11905: 0xF7E2, - 40639 - 11905: 0xFC4F, - 40640 - 11905: 0xFC50, - 40641 - 11905: 0xFC51, - 40642 - 11905: 0xFC52, - 40643 - 11905: 0xFC53, - 40644 - 11905: 0xBBC6, - 40645 - 11905: 0xFC54, - 40646 - 11905: 0xFC55, - 40647 - 11905: 0xFC56, - 40648 - 11905: 0xFC57, - 40649 - 11905: 0xD9E4, - 40650 - 11905: 0xFC58, - 40651 - 11905: 0xFC59, - 40652 - 11905: 0xFC5A, - 40653 - 11905: 0xCAF2, - 40654 - 11905: 0xC0E8, - 40655 - 11905: 0xF0A4, - 40656 - 11905: 0xFC5B, - 40657 - 11905: 0xBADA, - 40658 - 11905: 0xFC5C, - 40659 - 11905: 0xFC5D, - 40660 - 11905: 0xC7AD, - 40661 - 11905: 0xFC5E, - 40662 - 11905: 0xFC5F, - 40663 - 11905: 0xFC60, - 40664 - 11905: 0xC4AC, - 40665 - 11905: 0xFC61, - 40666 - 11905: 0xFC62, - 40667 - 11905: 0xF7EC, - 40668 - 11905: 0xF7ED, - 40669 - 11905: 0xF7EE, - 40670 - 11905: 0xFC63, - 40671 - 11905: 0xF7F0, - 40672 - 11905: 0xF7EF, - 40673 - 11905: 0xFC64, - 40674 - 11905: 0xF7F1, - 40675 - 11905: 0xFC65, - 40676 - 11905: 0xFC66, - 40677 - 11905: 0xF7F4, - 40678 - 11905: 0xFC67, - 40679 - 11905: 0xF7F3, - 40680 - 11905: 0xFC68, - 40681 - 11905: 0xF7F2, - 40682 - 11905: 0xF7F5, - 40683 - 11905: 0xFC69, - 40684 - 11905: 0xFC6A, - 40685 - 11905: 0xFC6B, - 40686 - 11905: 0xFC6C, - 40687 - 11905: 0xF7F6, - 40688 - 11905: 0xFC6D, - 40689 - 11905: 0xFC6E, - 40690 - 11905: 0xFC6F, - 40691 - 11905: 0xFC70, - 40692 - 11905: 0xFC71, - 40693 - 11905: 0xFC72, - 40694 - 11905: 0xFC73, - 40695 - 11905: 0xFC74, - 40696 - 11905: 0xFC75, - 40697 - 11905: 0xEDE9, - 40698 - 11905: 0xFC76, - 40699 - 11905: 0xEDEA, - 40700 - 11905: 0xEDEB, - 40701 - 11905: 0xFC77, - 40702 - 11905: 0xF6BC, - 40703 - 11905: 0xFC78, - 40704 - 11905: 0xFC79, - 40705 - 11905: 0xFC7A, - 40706 - 11905: 0xFC7B, - 40707 - 11905: 0xFC7C, - 40708 - 11905: 0xFC7D, - 40709 - 11905: 0xFC7E, - 40710 - 11905: 0xFC80, - 40711 - 11905: 0xFC81, - 40712 - 11905: 0xFC82, - 40713 - 11905: 0xFC83, - 40714 - 11905: 0xFC84, - 40715 - 11905: 0xF6BD, - 40716 - 11905: 0xFC85, - 40717 - 11905: 0xF6BE, - 40718 - 11905: 0xB6A6, - 40719 - 11905: 0xFC86, - 40720 - 11905: 0xD8BE, - 40721 - 11905: 0xFC87, - 40722 - 11905: 0xFC88, - 40723 - 11905: 0xB9C4, - 40724 - 11905: 0xFC89, - 40725 - 11905: 0xFC8A, - 40726 - 11905: 0xFC8B, - 40727 - 11905: 0xD8BB, - 40728 - 11905: 0xFC8C, - 40729 - 11905: 0xDCB1, - 40730 - 11905: 0xFC8D, - 40731 - 11905: 0xFC8E, - 40732 - 11905: 0xFC8F, - 40733 - 11905: 0xFC90, - 40734 - 11905: 0xFC91, - 40735 - 11905: 0xFC92, - 40736 - 11905: 0xCAF3, - 40737 - 11905: 0xFC93, - 40738 - 11905: 0xF7F7, - 40739 - 11905: 0xFC94, - 40740 - 11905: 0xFC95, - 40741 - 11905: 0xFC96, - 40742 - 11905: 0xFC97, - 40743 - 11905: 0xFC98, - 40744 - 11905: 0xFC99, - 40745 - 11905: 0xFC9A, - 40746 - 11905: 0xFC9B, - 40747 - 11905: 0xFC9C, - 40748 - 11905: 0xF7F8, - 40749 - 11905: 0xFC9D, - 40750 - 11905: 0xFC9E, - 40751 - 11905: 0xF7F9, - 40752 - 11905: 0xFC9F, - 40753 - 11905: 0xFCA0, - 40754 - 11905: 0xFD40, - 40755 - 11905: 0xFD41, - 40756 - 11905: 0xFD42, - 40757 - 11905: 0xFD43, - 40758 - 11905: 0xFD44, - 40759 - 11905: 0xF7FB, - 40760 - 11905: 0xFD45, - 40761 - 11905: 0xF7FA, - 40762 - 11905: 0xFD46, - 40763 - 11905: 0xB1C7, - 40764 - 11905: 0xFD47, - 40765 - 11905: 0xF7FC, - 40766 - 11905: 0xF7FD, - 40767 - 11905: 0xFD48, - 40768 - 11905: 0xFD49, - 40769 - 11905: 0xFD4A, - 40770 - 11905: 0xFD4B, - 40771 - 11905: 0xFD4C, - 40772 - 11905: 0xF7FE, - 40773 - 11905: 0xFD4D, - 40774 - 11905: 0xFD4E, - 40775 - 11905: 0xFD4F, - 40776 - 11905: 0xFD50, - 40777 - 11905: 0xFD51, - 40778 - 11905: 0xFD52, - 40779 - 11905: 0xFD53, - 40780 - 11905: 0xFD54, - 40781 - 11905: 0xFD55, - 40782 - 11905: 0xFD56, - 40783 - 11905: 0xFD57, - 40784 - 11905: 0xC6EB, - 40785 - 11905: 0xECB4, - 40786 - 11905: 0xFD58, - 40787 - 11905: 0xFD59, - 40788 - 11905: 0xFD5A, - 40789 - 11905: 0xFD5B, - 40790 - 11905: 0xFD5C, - 40791 - 11905: 0xFD5D, - 40792 - 11905: 0xFD5E, - 40793 - 11905: 0xFD5F, - 40794 - 11905: 0xFD60, - 40795 - 11905: 0xFD61, - 40796 - 11905: 0xFD62, - 40797 - 11905: 0xFD63, - 40798 - 11905: 0xFD64, - 40799 - 11905: 0xFD65, - 40800 - 11905: 0xFD66, - 40801 - 11905: 0xFD67, - 40802 - 11905: 0xFD68, - 40803 - 11905: 0xFD69, - 40804 - 11905: 0xFD6A, - 40805 - 11905: 0xFD6B, - 40806 - 11905: 0xFD6C, - 40807 - 11905: 0xFD6D, - 40808 - 11905: 0xFD6E, - 40809 - 11905: 0xFD6F, - 40810 - 11905: 0xFD70, - 40811 - 11905: 0xFD71, - 40812 - 11905: 0xFD72, - 40813 - 11905: 0xFD73, - 40814 - 11905: 0xFD74, - 40815 - 11905: 0xFD75, - 40816 - 11905: 0xFD76, - 40817 - 11905: 0xFD77, - 40818 - 11905: 0xFD78, - 40819 - 11905: 0xFD79, - 40820 - 11905: 0xFD7A, - 40821 - 11905: 0xFD7B, - 40822 - 11905: 0xFD7C, - 40823 - 11905: 0xFD7D, - 40824 - 11905: 0xFD7E, - 40825 - 11905: 0xFD80, - 40826 - 11905: 0xFD81, - 40827 - 11905: 0xFD82, - 40828 - 11905: 0xFD83, - 40829 - 11905: 0xFD84, - 40830 - 11905: 0xFD85, - 40831 - 11905: 0xB3DD, - 40832 - 11905: 0xF6B3, - 40833 - 11905: 0xFD86, - 40834 - 11905: 0xFD87, - 40835 - 11905: 0xF6B4, - 40836 - 11905: 0xC1E4, - 40837 - 11905: 0xF6B5, - 40838 - 11905: 0xF6B6, - 40839 - 11905: 0xF6B7, - 40840 - 11905: 0xF6B8, - 40841 - 11905: 0xF6B9, - 40842 - 11905: 0xF6BA, - 40843 - 11905: 0xC8A3, - 40844 - 11905: 0xF6BB, - 40845 - 11905: 0xFD88, - 40846 - 11905: 0xFD89, - 40847 - 11905: 0xFD8A, - 40848 - 11905: 0xFD8B, - 40849 - 11905: 0xFD8C, - 40850 - 11905: 0xFD8D, - 40851 - 11905: 0xFD8E, - 40852 - 11905: 0xFD8F, - 40853 - 11905: 0xFD90, - 40854 - 11905: 0xFD91, - 40855 - 11905: 0xFD92, - 40856 - 11905: 0xFD93, - 40857 - 11905: 0xC1FA, - 40858 - 11905: 0xB9A8, - 40859 - 11905: 0xEDE8, - 40860 - 11905: 0xFD94, - 40861 - 11905: 0xFD95, - 40862 - 11905: 0xFD96, - 40863 - 11905: 0xB9EA, - 40864 - 11905: 0xD9DF, - 40865 - 11905: 0xFD97, - 40866 - 11905: 0xFD98, - 40867 - 11905: 0xFD99, - 40868 - 11905: 0xFD9A, - 40869 - 11905: 0xFD9B, -} - -const encode1Low, encode1High = 8208, 9795 - -var encode1 = [...]uint16{ - 8208 - 8208: 0xA95C, - 8211 - 8208: 0xA843, - 8212 - 8208: 0xA1AA, - 8213 - 8208: 0xA844, - 8214 - 8208: 0xA1AC, - 8216 - 8208: 0xA1AE, - 8217 - 8208: 0xA1AF, - 8220 - 8208: 0xA1B0, - 8221 - 8208: 0xA1B1, - 8229 - 8208: 0xA845, - 8230 - 8208: 0xA1AD, - 8240 - 8208: 0xA1EB, - 8242 - 8208: 0xA1E4, - 8243 - 8208: 0xA1E5, - 8245 - 8208: 0xA846, - 8251 - 8208: 0xA1F9, - 8364 - 8208: 0xA2E3, - 8451 - 8208: 0xA1E6, - 8453 - 8208: 0xA847, - 8457 - 8208: 0xA848, - 8470 - 8208: 0xA1ED, - 8481 - 8208: 0xA959, - 8544 - 8208: 0xA2F1, - 8545 - 8208: 0xA2F2, - 8546 - 8208: 0xA2F3, - 8547 - 8208: 0xA2F4, - 8548 - 8208: 0xA2F5, - 8549 - 8208: 0xA2F6, - 8550 - 8208: 0xA2F7, - 8551 - 8208: 0xA2F8, - 8552 - 8208: 0xA2F9, - 8553 - 8208: 0xA2FA, - 8554 - 8208: 0xA2FB, - 8555 - 8208: 0xA2FC, - 8560 - 8208: 0xA2A1, - 8561 - 8208: 0xA2A2, - 8562 - 8208: 0xA2A3, - 8563 - 8208: 0xA2A4, - 8564 - 8208: 0xA2A5, - 8565 - 8208: 0xA2A6, - 8566 - 8208: 0xA2A7, - 8567 - 8208: 0xA2A8, - 8568 - 8208: 0xA2A9, - 8569 - 8208: 0xA2AA, - 8592 - 8208: 0xA1FB, - 8593 - 8208: 0xA1FC, - 8594 - 8208: 0xA1FA, - 8595 - 8208: 0xA1FD, - 8598 - 8208: 0xA849, - 8599 - 8208: 0xA84A, - 8600 - 8208: 0xA84B, - 8601 - 8208: 0xA84C, - 8712 - 8208: 0xA1CA, - 8719 - 8208: 0xA1C7, - 8721 - 8208: 0xA1C6, - 8725 - 8208: 0xA84D, - 8730 - 8208: 0xA1CC, - 8733 - 8208: 0xA1D8, - 8734 - 8208: 0xA1DE, - 8735 - 8208: 0xA84E, - 8736 - 8208: 0xA1CF, - 8739 - 8208: 0xA84F, - 8741 - 8208: 0xA1CE, - 8743 - 8208: 0xA1C4, - 8744 - 8208: 0xA1C5, - 8745 - 8208: 0xA1C9, - 8746 - 8208: 0xA1C8, - 8747 - 8208: 0xA1D2, - 8750 - 8208: 0xA1D3, - 8756 - 8208: 0xA1E0, - 8757 - 8208: 0xA1DF, - 8758 - 8208: 0xA1C3, - 8759 - 8208: 0xA1CB, - 8765 - 8208: 0xA1D7, - 8776 - 8208: 0xA1D6, - 8780 - 8208: 0xA1D5, - 8786 - 8208: 0xA850, - 8800 - 8208: 0xA1D9, - 8801 - 8208: 0xA1D4, - 8804 - 8208: 0xA1DC, - 8805 - 8208: 0xA1DD, - 8806 - 8208: 0xA851, - 8807 - 8208: 0xA852, - 8814 - 8208: 0xA1DA, - 8815 - 8208: 0xA1DB, - 8853 - 8208: 0xA892, - 8857 - 8208: 0xA1D1, - 8869 - 8208: 0xA1CD, - 8895 - 8208: 0xA853, - 8978 - 8208: 0xA1D0, - 9312 - 8208: 0xA2D9, - 9313 - 8208: 0xA2DA, - 9314 - 8208: 0xA2DB, - 9315 - 8208: 0xA2DC, - 9316 - 8208: 0xA2DD, - 9317 - 8208: 0xA2DE, - 9318 - 8208: 0xA2DF, - 9319 - 8208: 0xA2E0, - 9320 - 8208: 0xA2E1, - 9321 - 8208: 0xA2E2, - 9332 - 8208: 0xA2C5, - 9333 - 8208: 0xA2C6, - 9334 - 8208: 0xA2C7, - 9335 - 8208: 0xA2C8, - 9336 - 8208: 0xA2C9, - 9337 - 8208: 0xA2CA, - 9338 - 8208: 0xA2CB, - 9339 - 8208: 0xA2CC, - 9340 - 8208: 0xA2CD, - 9341 - 8208: 0xA2CE, - 9342 - 8208: 0xA2CF, - 9343 - 8208: 0xA2D0, - 9344 - 8208: 0xA2D1, - 9345 - 8208: 0xA2D2, - 9346 - 8208: 0xA2D3, - 9347 - 8208: 0xA2D4, - 9348 - 8208: 0xA2D5, - 9349 - 8208: 0xA2D6, - 9350 - 8208: 0xA2D7, - 9351 - 8208: 0xA2D8, - 9352 - 8208: 0xA2B1, - 9353 - 8208: 0xA2B2, - 9354 - 8208: 0xA2B3, - 9355 - 8208: 0xA2B4, - 9356 - 8208: 0xA2B5, - 9357 - 8208: 0xA2B6, - 9358 - 8208: 0xA2B7, - 9359 - 8208: 0xA2B8, - 9360 - 8208: 0xA2B9, - 9361 - 8208: 0xA2BA, - 9362 - 8208: 0xA2BB, - 9363 - 8208: 0xA2BC, - 9364 - 8208: 0xA2BD, - 9365 - 8208: 0xA2BE, - 9366 - 8208: 0xA2BF, - 9367 - 8208: 0xA2C0, - 9368 - 8208: 0xA2C1, - 9369 - 8208: 0xA2C2, - 9370 - 8208: 0xA2C3, - 9371 - 8208: 0xA2C4, - 9472 - 8208: 0xA9A4, - 9473 - 8208: 0xA9A5, - 9474 - 8208: 0xA9A6, - 9475 - 8208: 0xA9A7, - 9476 - 8208: 0xA9A8, - 9477 - 8208: 0xA9A9, - 9478 - 8208: 0xA9AA, - 9479 - 8208: 0xA9AB, - 9480 - 8208: 0xA9AC, - 9481 - 8208: 0xA9AD, - 9482 - 8208: 0xA9AE, - 9483 - 8208: 0xA9AF, - 9484 - 8208: 0xA9B0, - 9485 - 8208: 0xA9B1, - 9486 - 8208: 0xA9B2, - 9487 - 8208: 0xA9B3, - 9488 - 8208: 0xA9B4, - 9489 - 8208: 0xA9B5, - 9490 - 8208: 0xA9B6, - 9491 - 8208: 0xA9B7, - 9492 - 8208: 0xA9B8, - 9493 - 8208: 0xA9B9, - 9494 - 8208: 0xA9BA, - 9495 - 8208: 0xA9BB, - 9496 - 8208: 0xA9BC, - 9497 - 8208: 0xA9BD, - 9498 - 8208: 0xA9BE, - 9499 - 8208: 0xA9BF, - 9500 - 8208: 0xA9C0, - 9501 - 8208: 0xA9C1, - 9502 - 8208: 0xA9C2, - 9503 - 8208: 0xA9C3, - 9504 - 8208: 0xA9C4, - 9505 - 8208: 0xA9C5, - 9506 - 8208: 0xA9C6, - 9507 - 8208: 0xA9C7, - 9508 - 8208: 0xA9C8, - 9509 - 8208: 0xA9C9, - 9510 - 8208: 0xA9CA, - 9511 - 8208: 0xA9CB, - 9512 - 8208: 0xA9CC, - 9513 - 8208: 0xA9CD, - 9514 - 8208: 0xA9CE, - 9515 - 8208: 0xA9CF, - 9516 - 8208: 0xA9D0, - 9517 - 8208: 0xA9D1, - 9518 - 8208: 0xA9D2, - 9519 - 8208: 0xA9D3, - 9520 - 8208: 0xA9D4, - 9521 - 8208: 0xA9D5, - 9522 - 8208: 0xA9D6, - 9523 - 8208: 0xA9D7, - 9524 - 8208: 0xA9D8, - 9525 - 8208: 0xA9D9, - 9526 - 8208: 0xA9DA, - 9527 - 8208: 0xA9DB, - 9528 - 8208: 0xA9DC, - 9529 - 8208: 0xA9DD, - 9530 - 8208: 0xA9DE, - 9531 - 8208: 0xA9DF, - 9532 - 8208: 0xA9E0, - 9533 - 8208: 0xA9E1, - 9534 - 8208: 0xA9E2, - 9535 - 8208: 0xA9E3, - 9536 - 8208: 0xA9E4, - 9537 - 8208: 0xA9E5, - 9538 - 8208: 0xA9E6, - 9539 - 8208: 0xA9E7, - 9540 - 8208: 0xA9E8, - 9541 - 8208: 0xA9E9, - 9542 - 8208: 0xA9EA, - 9543 - 8208: 0xA9EB, - 9544 - 8208: 0xA9EC, - 9545 - 8208: 0xA9ED, - 9546 - 8208: 0xA9EE, - 9547 - 8208: 0xA9EF, - 9552 - 8208: 0xA854, - 9553 - 8208: 0xA855, - 9554 - 8208: 0xA856, - 9555 - 8208: 0xA857, - 9556 - 8208: 0xA858, - 9557 - 8208: 0xA859, - 9558 - 8208: 0xA85A, - 9559 - 8208: 0xA85B, - 9560 - 8208: 0xA85C, - 9561 - 8208: 0xA85D, - 9562 - 8208: 0xA85E, - 9563 - 8208: 0xA85F, - 9564 - 8208: 0xA860, - 9565 - 8208: 0xA861, - 9566 - 8208: 0xA862, - 9567 - 8208: 0xA863, - 9568 - 8208: 0xA864, - 9569 - 8208: 0xA865, - 9570 - 8208: 0xA866, - 9571 - 8208: 0xA867, - 9572 - 8208: 0xA868, - 9573 - 8208: 0xA869, - 9574 - 8208: 0xA86A, - 9575 - 8208: 0xA86B, - 9576 - 8208: 0xA86C, - 9577 - 8208: 0xA86D, - 9578 - 8208: 0xA86E, - 9579 - 8208: 0xA86F, - 9580 - 8208: 0xA870, - 9581 - 8208: 0xA871, - 9582 - 8208: 0xA872, - 9583 - 8208: 0xA873, - 9584 - 8208: 0xA874, - 9585 - 8208: 0xA875, - 9586 - 8208: 0xA876, - 9587 - 8208: 0xA877, - 9601 - 8208: 0xA878, - 9602 - 8208: 0xA879, - 9603 - 8208: 0xA87A, - 9604 - 8208: 0xA87B, - 9605 - 8208: 0xA87C, - 9606 - 8208: 0xA87D, - 9607 - 8208: 0xA87E, - 9608 - 8208: 0xA880, - 9609 - 8208: 0xA881, - 9610 - 8208: 0xA882, - 9611 - 8208: 0xA883, - 9612 - 8208: 0xA884, - 9613 - 8208: 0xA885, - 9614 - 8208: 0xA886, - 9615 - 8208: 0xA887, - 9619 - 8208: 0xA888, - 9620 - 8208: 0xA889, - 9621 - 8208: 0xA88A, - 9632 - 8208: 0xA1F6, - 9633 - 8208: 0xA1F5, - 9650 - 8208: 0xA1F8, - 9651 - 8208: 0xA1F7, - 9660 - 8208: 0xA88B, - 9661 - 8208: 0xA88C, - 9670 - 8208: 0xA1F4, - 9671 - 8208: 0xA1F3, - 9675 - 8208: 0xA1F0, - 9678 - 8208: 0xA1F2, - 9679 - 8208: 0xA1F1, - 9698 - 8208: 0xA88D, - 9699 - 8208: 0xA88E, - 9700 - 8208: 0xA88F, - 9701 - 8208: 0xA890, - 9733 - 8208: 0xA1EF, - 9734 - 8208: 0xA1EE, - 9737 - 8208: 0xA891, - 9792 - 8208: 0xA1E2, - 9794 - 8208: 0xA1E1, -} - -const encode2Low, encode2High = 164, 1106 - -var encode2 = [...]uint16{ - 164 - 164: 0xA1E8, - 167 - 164: 0xA1EC, - 168 - 164: 0xA1A7, - 176 - 164: 0xA1E3, - 177 - 164: 0xA1C0, - 183 - 164: 0xA1A4, - 215 - 164: 0xA1C1, - 224 - 164: 0xA8A4, - 225 - 164: 0xA8A2, - 232 - 164: 0xA8A8, - 233 - 164: 0xA8A6, - 234 - 164: 0xA8BA, - 236 - 164: 0xA8AC, - 237 - 164: 0xA8AA, - 242 - 164: 0xA8B0, - 243 - 164: 0xA8AE, - 247 - 164: 0xA1C2, - 249 - 164: 0xA8B4, - 250 - 164: 0xA8B2, - 252 - 164: 0xA8B9, - 257 - 164: 0xA8A1, - 275 - 164: 0xA8A5, - 283 - 164: 0xA8A7, - 299 - 164: 0xA8A9, - 324 - 164: 0xA8BD, - 328 - 164: 0xA8BE, - 333 - 164: 0xA8AD, - 363 - 164: 0xA8B1, - 462 - 164: 0xA8A3, - 464 - 164: 0xA8AB, - 466 - 164: 0xA8AF, - 468 - 164: 0xA8B3, - 470 - 164: 0xA8B5, - 472 - 164: 0xA8B6, - 474 - 164: 0xA8B7, - 476 - 164: 0xA8B8, - 505 - 164: 0xA8BF, - 593 - 164: 0xA8BB, - 609 - 164: 0xA8C0, - 711 - 164: 0xA1A6, - 713 - 164: 0xA1A5, - 714 - 164: 0xA840, - 715 - 164: 0xA841, - 729 - 164: 0xA842, - 913 - 164: 0xA6A1, - 914 - 164: 0xA6A2, - 915 - 164: 0xA6A3, - 916 - 164: 0xA6A4, - 917 - 164: 0xA6A5, - 918 - 164: 0xA6A6, - 919 - 164: 0xA6A7, - 920 - 164: 0xA6A8, - 921 - 164: 0xA6A9, - 922 - 164: 0xA6AA, - 923 - 164: 0xA6AB, - 924 - 164: 0xA6AC, - 925 - 164: 0xA6AD, - 926 - 164: 0xA6AE, - 927 - 164: 0xA6AF, - 928 - 164: 0xA6B0, - 929 - 164: 0xA6B1, - 931 - 164: 0xA6B2, - 932 - 164: 0xA6B3, - 933 - 164: 0xA6B4, - 934 - 164: 0xA6B5, - 935 - 164: 0xA6B6, - 936 - 164: 0xA6B7, - 937 - 164: 0xA6B8, - 945 - 164: 0xA6C1, - 946 - 164: 0xA6C2, - 947 - 164: 0xA6C3, - 948 - 164: 0xA6C4, - 949 - 164: 0xA6C5, - 950 - 164: 0xA6C6, - 951 - 164: 0xA6C7, - 952 - 164: 0xA6C8, - 953 - 164: 0xA6C9, - 954 - 164: 0xA6CA, - 955 - 164: 0xA6CB, - 956 - 164: 0xA6CC, - 957 - 164: 0xA6CD, - 958 - 164: 0xA6CE, - 959 - 164: 0xA6CF, - 960 - 164: 0xA6D0, - 961 - 164: 0xA6D1, - 963 - 164: 0xA6D2, - 964 - 164: 0xA6D3, - 965 - 164: 0xA6D4, - 966 - 164: 0xA6D5, - 967 - 164: 0xA6D6, - 968 - 164: 0xA6D7, - 969 - 164: 0xA6D8, - 1025 - 164: 0xA7A7, - 1040 - 164: 0xA7A1, - 1041 - 164: 0xA7A2, - 1042 - 164: 0xA7A3, - 1043 - 164: 0xA7A4, - 1044 - 164: 0xA7A5, - 1045 - 164: 0xA7A6, - 1046 - 164: 0xA7A8, - 1047 - 164: 0xA7A9, - 1048 - 164: 0xA7AA, - 1049 - 164: 0xA7AB, - 1050 - 164: 0xA7AC, - 1051 - 164: 0xA7AD, - 1052 - 164: 0xA7AE, - 1053 - 164: 0xA7AF, - 1054 - 164: 0xA7B0, - 1055 - 164: 0xA7B1, - 1056 - 164: 0xA7B2, - 1057 - 164: 0xA7B3, - 1058 - 164: 0xA7B4, - 1059 - 164: 0xA7B5, - 1060 - 164: 0xA7B6, - 1061 - 164: 0xA7B7, - 1062 - 164: 0xA7B8, - 1063 - 164: 0xA7B9, - 1064 - 164: 0xA7BA, - 1065 - 164: 0xA7BB, - 1066 - 164: 0xA7BC, - 1067 - 164: 0xA7BD, - 1068 - 164: 0xA7BE, - 1069 - 164: 0xA7BF, - 1070 - 164: 0xA7C0, - 1071 - 164: 0xA7C1, - 1072 - 164: 0xA7D1, - 1073 - 164: 0xA7D2, - 1074 - 164: 0xA7D3, - 1075 - 164: 0xA7D4, - 1076 - 164: 0xA7D5, - 1077 - 164: 0xA7D6, - 1078 - 164: 0xA7D8, - 1079 - 164: 0xA7D9, - 1080 - 164: 0xA7DA, - 1081 - 164: 0xA7DB, - 1082 - 164: 0xA7DC, - 1083 - 164: 0xA7DD, - 1084 - 164: 0xA7DE, - 1085 - 164: 0xA7DF, - 1086 - 164: 0xA7E0, - 1087 - 164: 0xA7E1, - 1088 - 164: 0xA7E2, - 1089 - 164: 0xA7E3, - 1090 - 164: 0xA7E4, - 1091 - 164: 0xA7E5, - 1092 - 164: 0xA7E6, - 1093 - 164: 0xA7E7, - 1094 - 164: 0xA7E8, - 1095 - 164: 0xA7E9, - 1096 - 164: 0xA7EA, - 1097 - 164: 0xA7EB, - 1098 - 164: 0xA7EC, - 1099 - 164: 0xA7ED, - 1100 - 164: 0xA7EE, - 1101 - 164: 0xA7EF, - 1102 - 164: 0xA7F0, - 1103 - 164: 0xA7F1, - 1105 - 164: 0xA7D7, -} - -const encode3Low, encode3High = 65072, 65510 - -var encode3 = [...]uint16{ - 65072 - 65072: 0xA955, - 65073 - 65072: 0xA6F2, - 65075 - 65072: 0xA6F4, - 65076 - 65072: 0xA6F5, - 65077 - 65072: 0xA6E0, - 65078 - 65072: 0xA6E1, - 65079 - 65072: 0xA6F0, - 65080 - 65072: 0xA6F1, - 65081 - 65072: 0xA6E2, - 65082 - 65072: 0xA6E3, - 65083 - 65072: 0xA6EE, - 65084 - 65072: 0xA6EF, - 65085 - 65072: 0xA6E6, - 65086 - 65072: 0xA6E7, - 65087 - 65072: 0xA6E4, - 65088 - 65072: 0xA6E5, - 65089 - 65072: 0xA6E8, - 65090 - 65072: 0xA6E9, - 65091 - 65072: 0xA6EA, - 65092 - 65072: 0xA6EB, - 65097 - 65072: 0xA968, - 65098 - 65072: 0xA969, - 65099 - 65072: 0xA96A, - 65100 - 65072: 0xA96B, - 65101 - 65072: 0xA96C, - 65102 - 65072: 0xA96D, - 65103 - 65072: 0xA96E, - 65104 - 65072: 0xA96F, - 65105 - 65072: 0xA970, - 65106 - 65072: 0xA971, - 65108 - 65072: 0xA972, - 65109 - 65072: 0xA973, - 65110 - 65072: 0xA974, - 65111 - 65072: 0xA975, - 65113 - 65072: 0xA976, - 65114 - 65072: 0xA977, - 65115 - 65072: 0xA978, - 65116 - 65072: 0xA979, - 65117 - 65072: 0xA97A, - 65118 - 65072: 0xA97B, - 65119 - 65072: 0xA97C, - 65120 - 65072: 0xA97D, - 65121 - 65072: 0xA97E, - 65122 - 65072: 0xA980, - 65123 - 65072: 0xA981, - 65124 - 65072: 0xA982, - 65125 - 65072: 0xA983, - 65126 - 65072: 0xA984, - 65128 - 65072: 0xA985, - 65129 - 65072: 0xA986, - 65130 - 65072: 0xA987, - 65131 - 65072: 0xA988, - 65281 - 65072: 0xA3A1, - 65282 - 65072: 0xA3A2, - 65283 - 65072: 0xA3A3, - 65284 - 65072: 0xA1E7, - 65285 - 65072: 0xA3A5, - 65286 - 65072: 0xA3A6, - 65287 - 65072: 0xA3A7, - 65288 - 65072: 0xA3A8, - 65289 - 65072: 0xA3A9, - 65290 - 65072: 0xA3AA, - 65291 - 65072: 0xA3AB, - 65292 - 65072: 0xA3AC, - 65293 - 65072: 0xA3AD, - 65294 - 65072: 0xA3AE, - 65295 - 65072: 0xA3AF, - 65296 - 65072: 0xA3B0, - 65297 - 65072: 0xA3B1, - 65298 - 65072: 0xA3B2, - 65299 - 65072: 0xA3B3, - 65300 - 65072: 0xA3B4, - 65301 - 65072: 0xA3B5, - 65302 - 65072: 0xA3B6, - 65303 - 65072: 0xA3B7, - 65304 - 65072: 0xA3B8, - 65305 - 65072: 0xA3B9, - 65306 - 65072: 0xA3BA, - 65307 - 65072: 0xA3BB, - 65308 - 65072: 0xA3BC, - 65309 - 65072: 0xA3BD, - 65310 - 65072: 0xA3BE, - 65311 - 65072: 0xA3BF, - 65312 - 65072: 0xA3C0, - 65313 - 65072: 0xA3C1, - 65314 - 65072: 0xA3C2, - 65315 - 65072: 0xA3C3, - 65316 - 65072: 0xA3C4, - 65317 - 65072: 0xA3C5, - 65318 - 65072: 0xA3C6, - 65319 - 65072: 0xA3C7, - 65320 - 65072: 0xA3C8, - 65321 - 65072: 0xA3C9, - 65322 - 65072: 0xA3CA, - 65323 - 65072: 0xA3CB, - 65324 - 65072: 0xA3CC, - 65325 - 65072: 0xA3CD, - 65326 - 65072: 0xA3CE, - 65327 - 65072: 0xA3CF, - 65328 - 65072: 0xA3D0, - 65329 - 65072: 0xA3D1, - 65330 - 65072: 0xA3D2, - 65331 - 65072: 0xA3D3, - 65332 - 65072: 0xA3D4, - 65333 - 65072: 0xA3D5, - 65334 - 65072: 0xA3D6, - 65335 - 65072: 0xA3D7, - 65336 - 65072: 0xA3D8, - 65337 - 65072: 0xA3D9, - 65338 - 65072: 0xA3DA, - 65339 - 65072: 0xA3DB, - 65340 - 65072: 0xA3DC, - 65341 - 65072: 0xA3DD, - 65342 - 65072: 0xA3DE, - 65343 - 65072: 0xA3DF, - 65344 - 65072: 0xA3E0, - 65345 - 65072: 0xA3E1, - 65346 - 65072: 0xA3E2, - 65347 - 65072: 0xA3E3, - 65348 - 65072: 0xA3E4, - 65349 - 65072: 0xA3E5, - 65350 - 65072: 0xA3E6, - 65351 - 65072: 0xA3E7, - 65352 - 65072: 0xA3E8, - 65353 - 65072: 0xA3E9, - 65354 - 65072: 0xA3EA, - 65355 - 65072: 0xA3EB, - 65356 - 65072: 0xA3EC, - 65357 - 65072: 0xA3ED, - 65358 - 65072: 0xA3EE, - 65359 - 65072: 0xA3EF, - 65360 - 65072: 0xA3F0, - 65361 - 65072: 0xA3F1, - 65362 - 65072: 0xA3F2, - 65363 - 65072: 0xA3F3, - 65364 - 65072: 0xA3F4, - 65365 - 65072: 0xA3F5, - 65366 - 65072: 0xA3F6, - 65367 - 65072: 0xA3F7, - 65368 - 65072: 0xA3F8, - 65369 - 65072: 0xA3F9, - 65370 - 65072: 0xA3FA, - 65371 - 65072: 0xA3FB, - 65372 - 65072: 0xA3FC, - 65373 - 65072: 0xA3FD, - 65374 - 65072: 0xA1AB, - 65504 - 65072: 0xA1E9, - 65505 - 65072: 0xA1EA, - 65506 - 65072: 0xA956, - 65507 - 65072: 0xA3FE, - 65508 - 65072: 0xA957, - 65509 - 65072: 0xA3A4, -} - -const encode4Low, encode4High = 63788, 64042 - -var encode4 = [...]uint16{ - 63788 - 63788: 0xFD9C, - 63865 - 63788: 0xFD9D, - 63893 - 63788: 0xFD9E, - 63975 - 63788: 0xFD9F, - 63985 - 63788: 0xFDA0, - 64012 - 63788: 0xFE40, - 64013 - 63788: 0xFE41, - 64014 - 63788: 0xFE42, - 64015 - 63788: 0xFE43, - 64017 - 63788: 0xFE44, - 64019 - 63788: 0xFE45, - 64020 - 63788: 0xFE46, - 64024 - 63788: 0xFE47, - 64031 - 63788: 0xFE48, - 64032 - 63788: 0xFE49, - 64033 - 63788: 0xFE4A, - 64035 - 63788: 0xFE4B, - 64036 - 63788: 0xFE4C, - 64039 - 63788: 0xFE4D, - 64040 - 63788: 0xFE4E, - 64041 - 63788: 0xFE4F, -} diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt b/vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt deleted file mode 100644 index bd7a572..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt +++ /dev/null @@ -1,510 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/4650/pg4650.txt --------- - - CANDIDE, - - ou - - L'OPTIMISME, - - TRADUIT DE L'ALLEMAND - - DE M. LE DOCTEUR RALPH, - - AVEC LES ADDITIONS - - QU'ON A TROUV07ES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT - - 08 MINDEN, L'AN DE GR00CE 1759 - - 1759 - - - -CHAPITRE I. - -Comment Candide fut lev dans un beau ch09teau, et comment il fut -chass d'icelui. - -Il y avait en Vestphalie, dans le ch09teau de M. le baron de -Thunder-ten-tronckh, un jeune gar04on qui la nature avait donn -les moeurs les plus douces. Sa physionomie annon04ait son 09me. -Il avait le jugement assez droit, avec l'esprit le plus simple; -c'est, je crois, pour cette raison qu'on le nommait Candide. Les -anciens domestiques de la maison soup04onnaient qu'il tait fils -de la soeur de monsieur le baron et d'un bon et honnte -gentilhomme du voisinage, que cette demoiselle ne voulut jamais -pouser parce qu'il n'avait pu prouver que soixante et onze -quartiers, et que le reste de son arbre gnalogique avait t -perdu par l'injure du temps. - -Monsieur le baron tait un des plus puissants seigneurs de la -Westphalie, car son ch09teau avait une porte et des fentres. Sa -grande salle mme tait orne d'une tapisserie. Tous les chiens -de ses basses-cours composaient une meute dans le besoin; ses -palefreniers taient ses piqueurs; le vicaire du village tait -son grand-aum00nier. Ils l'appelaient tous monseigneur, et ils -riaient quand il fesait des contes. - -Madame la baronne, qui pesait environ trois cent cinquante -livres, s'attirait par l une trs grande considration, et -fesait les honneurs de la maison avec une dignit qui la rendait -encore plus respectable. Sa fille Cungonde, 09ge de dix-sept -ans, tait haute en couleur, fra06che, grasse, apptissante. Le -fils du baron paraissait en tout digne de son pre. Le -prcepteur Pangloss[1] tait l'oracle de la maison, et le petit -Candide coutait ses le04ons avec toute la bonne foi de son 09ge et -de son caractre. - - [1] De _pan_, tout, et _glossa_, langue. B. - - -Pangloss enseignait la mtaphysico-thologo-cosmolonigologie. Il -prouvait admirablement qu'il n'y a point d'effet sans cause, et -que, dans ce meilleur des mondes possibles, le ch09teau de -monseigneur le baron tait le plus beau des ch09teaux, et madame -la meilleure des baronnes possibles. - -Il est dmontr, disait-il, que les choses ne peuvent tre -autrement; car tout tant fait pour une fin, tout est -ncessairement pour la meilleure fin. Remarquez bien que les nez -ont t faits pour porter des lunettes; aussi avons-nous des -lunettes[2]. Les jambes sont visiblement institues pour tre -chausses, et nous avons des chausses. Les pierres ont t -formes pour tre tailles et pour en faire des ch09teaux; aussi -monseigneur a un trs beau ch09teau: le plus grand baron de la -province doit tre le mieux log; et les cochons tant faits pour -tre mangs, nous mangeons du porc toute l'anne: par consquent, -ceux qui ont avanc que tout est bien ont dit une sottise; il -fallait dire que tout est au mieux. - - [2] Voyez tome XXVII, page 528; et dans les _Mlanges_, anne - 1738, le chapitre XI de la troisime partie des _07lments de la - philosophie de Newton_; et anne 1768, le chapitre X des - _Singularits de la nature_. B. - - -Candide coutait attentivement, et croyait innocemment; car il -trouvait mademoiselle Cungonde extrmement belle, quoiqu'il ne -pr06t jamais la hardiesse de le lui dire. Il concluait qu'aprs -le bonheur d'tre n baron de Thunder-ten-tronckh, le second -degr de bonheur tait d'tre mademoiselle Cungonde; le -troisime, de la voir tous les jours; et le quatrime, d'entendre -ma06tre Pangloss, le plus grand philosophe de la province, et par -consquent de toute la terre. - -Un jour Cungonde, en se promenant auprs du ch09teau, dans le -petit bois qu'on appelait parc, vit entre des broussailles le -docteur Pangloss qui donnait une le04on de physique exprimentale - la femme de chambre de sa mre, petite brune trs jolie et trs -docile. Comme mademoiselle Cungonde avait beaucoup de -disposition pour les sciences, elle observa, sans souffler, les -expriences ritres dont elle fut tmoin; elle vit clairement -la raison suffisante du docteur, les effets et les causes, et -s'en retourna tout agite, toute pensive, toute remplie du dsir -d'tre savante, songeant qu'elle pourrait bien tre la raison -suffisante du jeune Candide, qui pouvait aussi tre la sienne. - -Elle rencontra Candide en revenant au ch09teau, et rougit: Candide -rougit aussi . Elle lui dit bonjour d'une voix entrecoupe; et -Candide lui parla sans savoir ce qu'il disait. Le lendemain, -aprs le d06ner, comme on sortait de table, Cungonde et Candide -se trouvrent derrire un paravent; Cungonde laissa tomber son -mouchoir, Candide le ramassa; elle lui prit innocemment la main; -le jeune homme baisa innocemment la main de la jeune demoiselle -avec une vivacit, une sensibilit, une gr09ce toute particulire; -leurs bouches se rencontrrent, leurs yeux s'enflammrent, leurs -genoux tremblrent, leurs mains s'garrent. M. le baron de -Thunder-ten-tronckh passa auprs du paravent, et voyant cette -cause et cet effet, chassa Candide du ch09teau grands coups de -pied dans le derrire. Cungonde s'vanouit: elle fut soufflete -par madame la baronne ds qu'elle fut revenue elle-mme; et -tout fut constern dans le plus beau et le plus agrable des -ch09teaux possibles. - - - -CHAPITRE II - -Ce que devint Candide parmi les Bulgares. - - -Candide, chass du paradis terrestre, marcha longtemps sans -savoir o, pleurant, levant les yeux au ciel, les tournant -souvent vers le plus beau des ch09teaux qui renfermait la plus -belle des baronnettes; il se coucha sans souper au milieu des -champs entre deux sillons; la neige tombait gros flocons. -Candide, tout transi, se tra06na le lendemain vers la ville -voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant -point d'argent, mourant de faim et de lassitude. Il s'arrta -tristement la porte d'un cabaret. Deux hommes habills de bleu -le remarqurent: Camarade, dit l'un, voil un jeune homme trs -bien fait, et qui a la taille requise; ils s'avancrent vers -Candide et le prirent d06ner trs civilement.--Messieurs, leur -dit Candide avec une modestie charmante, vous me faites beaucoup -d'honneur, mais je n'ai pas de quoi payer mon cot.--Ah! -monsieur, lui dit un des bleus, les personnes de votre figure et -de votre mrite ne paient jamais rien: n'avez-vous pas cinq pieds -cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en -fesant la rvrence.--Ah! monsieur, mettez-vous table; non -seulement nous vous dfraierons, mais nous ne souffrirons jamais -qu'un homme comme vous manque d'argent; les hommes ne sont faits -que pour se secourir les uns les autres.--Vous avez raison, dit -Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois -bien que tout est au mieux. On le prie d'accepter quelques cus, -il les prend et veut faire son billet; on n'en veut point, on se -met table. N'aimez-vous pas tendrement?....--Oh! oui, -rpond-il, j'aime tendrement mademoiselle Cungonde.--Non, dit -l'un de ces messieurs, nous vous demandons si vous n'aimez pas -tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne -l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il -faut boire sa sant.--Oh! trs volontiers, messieurs. Et il -boit. C'en est assez, lui dit-on, vous voil l'appui, le -soutien, le dfenseur, le hros des Bulgares; votre fortune est -faite, et votre gloire est assure. On lui met sur-le-champ les -fers aux pieds, et on le mne au rgiment. On le fait tourner -droite, gauche, hausser la baguette, remettre la baguette, -coucher en joue, tirer, doubler le pas, et on lui donne trente -coups de b09ton; le lendemain, il fait l'exercice un peu moins -mal, et il ne re04oit que vingt coups; le surlendemain, on ne lui -en donne que dix, et il est regard par ses camarades comme un -prodige. - -Candide, tout stupfait, ne dmlait pas encore trop bien comment -il tait un hros. Il s'avisa un beau jour de printemps de -s'aller promener, marchant tout droit devant lui, croyant que -c'tait un privilge de l'espce humaine, comme de l'espce -animale, de se servir de ses jambes son plaisir. Il n'eut pas -fait deux lieues que voil quatre autres hros de six pieds qui -l'atteignent, qui le lient, qui le mnent dans un cachot. On lui -demanda juridiquement ce qu'il aimait le mieux d'tre fustig -trente-six fois par tout le rgiment, ou de recevoir -la-fois -douze balles de plomb dans la cervelle. Il eut beau dire que les -volonts sont libres, et qu'il ne voulait ni l'un ni l'autre, il -fallut faire un choix; il se dtermina, en vertu du don de Dieu -qu'on nomme _libert_, passer trente-six fois par les -baguettes; il essuya deux promenades. Le rgiment tait compos -de deux mille hommes; cela lui composa quatre mille coups de -baguette, qui, depuis la nuque du cou jusqu'au cul, lui -dcouvrirent les muscles et les nerfs. Comme on allait procder - la troisime course, Candide, n'en pouvant plus, demanda en -gr09ce qu'on voul04t bien avoir la bont de lui casser la tte; il -obtint cette faveur; on lui bande les yeux; on le fait mettre -genoux. Le roi des Bulgares passe dans ce moment, s'informe du -crime du patient; et comme ce roi avait un grand gnie, il -comprit, par tout ce qu'il apprit de Candide, que c'tait un -jeune mtaphysicien fort ignorant des choses de ce monde, et il -lui accorda sa gr09ce avec une clmence qui sera loue dans tous -les journaux et dans tous les sicles. Un brave chirurgien -gurit Candide en trois semaines avec les mollients enseigns -par Dioscoride. Il avait dj un peu de peau et pouvait marcher, -quand le roi des Bulgares livra bataille au roi des Abares. - - - -CHAPITRE III. - -Comment Candide se sauva d'entre les Bulgares, et ce qu'il -devint. - - -Rien n'tait si beau, si leste, si brillant, si bien ordonn que -les deux armes. Les trompettes, les fifres, les hautbois, les -tambours, les canons; formaient une harmonie telle qu'il n'y en -eut jamais en enfer. Les canons renversrent d'abord peu prs -six mille hommes de chaque c00t; ensuite la mousqueterie 00ta du -meilleur des mondes environ neuf dix mille coquins qui en -infectaient la surface. La ba07onnette fut aussi la raison -suffisante de la mort de quelques milliers d'hommes. Le tout -pouvait bien se monter une trentaine de mille 09mes. Candide, -qui tremblait comme un philosophe, se cacha du mieux qu'il put -pendant cette boucherie hro07que. - -Enfin, tandis que les deux rois fesaient chanter des _Te Deum_, -chacun dans son camp, il prit le parti d'aller raisonner ailleurs -des effets et des causes. Il passa par-dessus des tas de morts -et de mourants, et gagna d'abord un village voisin; il tait en -cendres: c'tait un village abare que les Bulgares avaient br04l, -selon les lois du droit public. Ici des vieillards cribls de -coups regardaient mourir leurs femmes gorges, qui tenaient -leurs enfants leurs mamelles sanglantes; l des filles -ventres aprs avoir assouvi les besoins naturels de quelques -hros, rendaient les derniers soupirs; d'autres demi br04les -criaient qu'on achev09t de leur donner la mort. Des cervelles -taient rpandues sur la terre c00t de bras et de jambes -coups. - -Candide s'enfuit au plus vite dans un autre village: il -appartenait des Bulgares, et les hros abares l'avaient trait -de mme. Candide, toujours marchant sur des membres palpitants -ou travers des ruines, arriva enfin hors du th09tre de la -guerre, portant quelques petites provisions dans son bissac, et -n'oubliant jamais mademoiselle Cungonde. Ses provisions lui -manqurent quand il fut en Hollande; mais ayant entendu dire que -tout le monde tait riche dans ce pays-l, et qu'on y tait -chrtien, il ne douta pas qu'on ne le trait09t aussi bien qu'il -l'avait t dans le ch09teau de M. le baron, avant qu'il en e04t -t chass pour les beaux yeux de mademoiselle Cungonde. - -Il demanda l'aum00ne plusieurs graves personnages, qui lui -rpondirent tous que, s'il continuait faire ce mtier, on -l'enfermerait dans une maison de correction pour lui apprendre -vivre. - -Il s'adressa ensuite un homme qui venait de parler tout seul -une heure de suite sur la charit dans une grande assemble. Cet -orateur le regardant de travers lui dit: Que venez-vous faire -ici? y tes-vous pour la bonne cause? Il n'y a point d'effet sans -cause, rpondit modestement Candide; tout est encha06n -ncessairement et arrang pour le mieux. Il a fallu que je fusse -chass d'auprs de mademoiselle Cungonde, que j'aie pass par -les baguettes, et il faut que je demande mon pain, jusqu' ce que -je puisse en gagner; tout cela ne pouvait tre autrement. Mon -ami, lui dit l'orateur, croyez-vous que le pape soit -l'antechrist? Je ne l'avais pas encore entendu dire, rpondit -Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque -de pain. Tu ne mrites pas d'en manger, dit l'autre: va, coquin, -va, misrable, ne m'approche de ta vie. La femme de l'orateur -ayant mis la tte la fentre, et avisant un homme qui doutait -que le pape f04t antechrist, lui rpandit sur le chef un -plein..... O ciel! quel excs se porte le zle de la religion -dans les dames! - -Un homme qui n'avait point t baptis, un bon anabaptiste, nomm -Jacques, vit la manire cruelle et ignominieuse dont on traitait -ainsi un de ses frres, un tre deux pieds sans plumes, qui -avait une 09me; il l'amena chez lui, le nettoya, lui donna du pain -et de la bire, lui fit prsent de deux florins, et voulut mme -lui apprendre travailler dans ses manufactures aux toffes de -Perse qu'on fabrique en Hollande. Candide se prosternant presque -devant lui, s'criait: Ma06tre Pangloss me l'avait bien dit que -tout est au mieux dans ce monde, car je suis infiniment plus -touch de votre extrme gnrosit que de la duret de ce -monsieur manteau noir, et de madame son pouse. - -Le lendemain, en se promenant, il rencontra un gueux tout couvert -de pustules, les yeux morts, le bout du nez rong, la bouche de -travers, les dents noires, et parlant de la gorge, tourment -d'une toux violente, et crachant une dent chaque effort. - - - -CHAPITRE IV. - -Comment Candide rencontra son ancien ma06tre de philosophie, le -docteur Pangloss, et ce qui en advint. - - -Candide, plus mu encore de compassion que d'horreur, donna cet -pouvantable gueux les deux florins qu'il avait re04us de son -honnte anabaptiste Jacques. Le fant00me le regarda fixement, -versa des larmes, et sauta son cou. Candide effray recule. -Hlas! dit le misrable l'autre misrable, ne reconnaissez-vous -plus votre cher Pangloss? Qu'entends-je? vous, mon cher ma06tre! -vous, dans cet tat horrible! quel malheur vous est-il donc -arriv? pourquoi n'tes-vous plus dans le plus beau des ch09teaux? -qu'est devenue mademoiselle Cungonde, la perle des filles, le -chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss. -Aussit00t Candide le mena dans l'table de l'anabaptiste, o il -lui fit manger un peu de pain; et quand Pangloss fut refait: Eh -bien! lui dit-il, Cungonde? Elle est morte, reprit l'autre. -Candide s'vanouit ce mot: son ami rappela ses sens avec un peu -de mauvais vinaigre qui se trouva par hasard dans l'table. -Candide rouvre les yeux. Cungonde est morte! Ah! meilleur des -mondes, o tes-vous? Mais de quelle maladie est-elle morte? ne -serait-ce point de m'avoir vu chasser du beau ch09teau de monsieur -son pre grands coups de pied? Non, dit Pangloss, elle a t -ventre par des soldats bulgares, aprs avoir t viole autant -qu'on peut l'tre; ils ont cass la tte monsieur le baron qui -voulait la dfendre; madame la baronne a t coupe en morceaux; -mon pauvre pupille trait prcisment comme sa soeur; et quant au -ch09teau, il n'est pas rest pierre sur pierre, pas une grange, -pas un mouton, pas un canard, pas un arbre; mais nous avons t -bien vengs, car les Abares en ont fait autant dans une baronnie -voisine qui appartenait un seigneur bulgare. - -A ce discours, Candide s'vanouit encore; mais revenu soi, et -ayant dit tout ce qu'il devait dire, il s'enquit de la cause et -de l'effet, et de la raison suffisante qui avait mis Pangloss -dans un si piteux tat. Hlas! dit l'autre, c'est l'amour: -l'amour, le consolateur du genre humain, le conservateur de -l'univers, l'09me de tous les tres sensibles, le tendre amour. -Hlas! dit Candide, je l'ai connu cet amour, ce souverain des -coeurs, cette 09me de notre 09me; il ne m'a jamais valu qu'un -baiser et vingt coups de pied au cul. Comment cette belle cause -a-t-elle pu produire en vous un effet si abominable? - -Pangloss rpondit en ces termes: O mon cher Candide! vous avez -connu Paquette, cette jolie suivante de notre auguste baronne: -j'ai go04t dans ses bras les dlices du paradis, qui ont produit -ces tourments d'enfer dont vous me voyez dvor; elle en tait -infecte, elle en est peut-tre morte. Paquette tenait ce -prsent d'un cordelier trs savant qui avait remont la source, -car il l'avait eu d'une vieille comtesse, qui l'avait re04u d'un -capitaine de cavalerie, qui le devait une marquise, qui le -tenait d'un page, qui l'avait re04u d'un jsuite, qui, tant -novice, l'avait eu en droite ligne d'un des compagnons de -Christophe Colomb. Pour moi, je ne le donnerai personne, car -je me meurs. - -O Pangloss! s'cria Candide, voil une trange gnalogie! -n'est-ce pas le diable qui en fut la souche? Point du tout, -rpliqua ce grand homme; c'tait une chose indispensable dans le -meilleur des mondes, un ingrdient ncessaire; car si Colomb -n'avait pas attrap dans une 06le de l'Amrique cette maladie[1] -qui empoisonne la source de la gnration, qui souvent mme -empche la gnration, et qui est videmment l'oppos du grand -but de la nature, nous n'aurions ni le chocolat ni la cochenille; -il faut encore observer que jusqu'aujourd'hui, dans notre -continent, cette maladie nous est particulire, comme la -controverse. Les Turcs, les Indiens, les Persans, les Chinois, -les Siamois, les Japonais, ne la connaissent pas encore; mais il -y a une raison suffisante pour qu'ils la connaissent leur tour -dans quelques sicles. En attendant elle a fait un merveilleux -progrs parmi nous, et surtout dans ces grandes armes composes -d'honntes stipendiaires bien levs, qui dcident du destin des -tats; on peut assurer que, quand trente mille hommes combattent -en bataille range contre des troupes gales en nombre, il y a -environ vingt mille vrols de chaque c00t. - - [1] Voyez tome XXXI, page 7. B. - - -Voil qui est admirable, dit Candide; mais il faut vous faire -gurir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou, -mon ami, et dans toute l'tendue de ce globe on ne peut ni se -faire saigner, ni prendre un lavement sans payer, ou sans qu'il y -ait quelqu'un qui paie pour nous. - -Ce dernier discours dtermina Candide; il alla se jeter aux pieds -de son charitable anabaptiste Jacques, et lui fit une peinture si -touchante de l'tat o son ami tait rduit, que le bon-homme -n'hsita pas recueillir le docteur Pangloss; il le fit gurir -ses dpens. Pangloss, dans la cure, ne perdit qu'un oeil et une -oreille. Il crivait bien, et savait parfaitement -l'arithmtique. L'anabaptiste Jacques en fit son teneur de -livres. Au bout de deux mois, tant oblig d'aller Lisbonne -pour les affaires de son commerce, il mena dans son vaisseau ses -deux philosophes. Pangloss lui expliqua comment tout tait on ne -peut mieux. Jacques n'tait pas de cet avis. Il faut bien, -disait-il, que les hommes aient un peu corrompu la nature, car -ils ne sont point ns loups, et ils sont devenus loups. Dieu ne -leur a donn ni canons de vingt-quatre, ni ba07onnettes, et ils se -sont fait des ba07onnettes et des canons pour se dtruire. Je -pourrais mettre en ligne de compte les banqueroutes, et la -justice qui s'empare des biens des banqueroutiers pour en -frustrer les cranciers. Tout cela tait indispensable, -rpliquait le docteur borgne, et les malheurs particuliers font -le bien gnral; de sorte que plus il y a de malheurs -particuliers, et plus tout est bien. Tandis qu'il raisonnait, -l'air s'obscurcit, les vents soufflrent des quatre coins du -monde, et le vaisseau fut assailli de la plus horrible tempte, -la vue du port de Lisbonne. - - -CHAPITRE V. - -Tempte, naufrage, tremblement de terre, et ce qui advint du -docteur Pangloss, de Candide, et de l'anabaptiste Jacques. - -La moiti des passagers affaiblis, expirants de ces angoisses -inconcevables que le roulis d'un vaisseau porte dans les nerfs et -dans toutes les humeurs du corps agites en sens contraires, -n'avait pas mme la force de s'inquiter du danger. L'autre -moiti jetait des cris et fesait des prires; les voiles taient -dchires, les m09ts briss, le vaisseau entr'ouvert. Travaillait -qui pouvait, personne ne s'entendait, personne ne commandait. -L'anabaptiste aidait un peu la manoeuvre; il tait sur le -tillac; un matelot furieux le frappe rudement et l'tend sur les -planches; mais du coup qu'il lui donna, il eut lui-mme une si -violente secousse, qu'il tomba hors du vaisseau, la tte la -premire. Il restait suspendu et accroch une partie de m09t -rompu. Le bon Jacques court son secours, l'aide remonter, et -de l'effort qu'il fait, il est prcipit dans la mer la vue du -matelot, qui le laissa prir sans daigner seulement le regarder. -Candide approche, voit son bienfaiteur qui repara06t un moment, et -qui est englouti pour jamais. Il veut se jeter aprs lui dans la -mer: le philosophe Pangloss l'en empche, en lui prouvant que la -rade de Lisbonne avait t forme exprs pour que cet anabaptiste -s'y noy09t. Tandis qu'il le prouvait _ priori_, le vaisseau -s'entr'ouvre, tout prit la rserve de Pangloss, de Candide, et -de ce brutal de matelot qui avait noy le vertueux anabaptiste; -le coquin nagea heureusement jusqu'au rivage, o Pangloss et -Candide furent ports sur une planche. - -Quand ils furent revenus un peu eux, ils marchrent vers -Lisbonne; il leur restait quelque argent, avec lequel ils -espraient se sauver de la faim aprs avoir chapp la tempte. - -A peine ont-ils mis le pied dans la ville, en pleurant la mort de -leur bienfaiteur, qu'ils sentent la terre trembler sous leurs -pas[1]; la mer s'lve en bouillonnant dans le port, et brise les -vaisseaux qui sont l'ancre. Des tourbillons de flammes et de -cendres couvrent les rues et les places publiques; les maisons -s'croulent, les toits sont renverss sur les fondements, et les -fondements se dispersent; trente mille habitants de tout 09ge et -de tout sexe sont crass sous des ruines. Le matelot disait en -sifflant et en jurant: il y aura quelque chose gagner ici. -Quelle peut tre la raison suffisante de ce phnomne? disait -Pangloss. Voici le dernier jour du monde! s'criait Candide. -Le matelot court incontinent au milieu des dbris, affronte la -mort pour trouver de l'argent, en trouve, s'en empare, s'enivre, -et ayant cuv son vin, achte les faveurs de la premire fille de -bonne volont qu'il rencontre sur les ruines des maisons -dtruites, et au milieu des mourants et des morts. Pangloss le -tirait cependant par la manche: Mon ami, lui disait-il, cela -n'est pas bien, vous manquez la raison universelle, vous prenez -mal votre temps. Tte et sang, rpondit l'autre, je suis matelot -et n Batavia; j'ai march quatre fois sur le crucifix dans -quatre voyages au Japon[2]; tu as bien trouv ton homme avec ta -raison universelle! - - - [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755. - B. - - [2] Voyez tome XVIII, page 470. B. - - -Quelques clats de pierre avaient bless Candide; il tait tendu -dans la rue et couvert de dbris. Il disait Pangloss: Hlas! -procure-moi un peu de vin et d'huile; je me meurs. Ce -tremblement de terre n'est pas une chose nouvelle, rpondit -Pangloss; la ville de Lima prouva les mmes secousses en -Amrique l'anne passe; mmes causes, mmes effets; il y a -certainement une tra06ne de soufre sous terre depuis Lima jusqu' -Lisbonne. Rien n'est plus probable, dit Candide; mais, pour -Dieu, un peu d'huile et de vin. Comment probable? rpliqua le -philosophe, je soutiens que la chose est dmontre. Candide -perdit connaissance, et Pangloss lui apporta un peu d'eau d'une -fontaine voisine. - -Le lendemain, ayant trouv quelques provisions de bouche en se -glissant travers des dcombres, ils rparrent un peu leurs -forces. Ensuite ils travaillrent comme les autres soulager -les habitants chapps la mort. Quelques citoyens, secourus -par eux, leur donnrent un aussi bon d06ner qu'on le pouvait dans -un tel dsastre: il est vrai que le repas tait triste; les -convives arrosaient leur pain de leurs larmes; mais Pangloss les -consola, en les assurant que les choses ne pouvaient tre -autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car -s'il y a un volcan Lisbonne, il ne pouvait tre ailleurs; car -il est impossible que les choses ne soient pas o elles sont, car -tout est bien. - -Un petit homme noir, familier de l'inquisition, lequel tait -c00t de lui, prit poliment la parole et dit: Apparemment que -monsieur ne croit pas au pch originel; car si tout est au -mieux, il n'y a donc eu ni chute ni punition. - -Je demande trs humblement pardon votre excellence, rpondit -Pangloss encore plus poliment, car la chute de l'homme et la -maldiction entraient ncessairement dans le meilleur des mondes -possibles. Monsieur ne croit donc pas la libert? dit le -familier. Votre excellence m'excusera, dit Pangloss; la libert -peut subsister avec la ncessit absolue; car il tait ncessaire -que nous fussions libres; car enfin la volont dtermine...... -Pangloss tait au milieu de sa phrase, quand Je familier fit un -signe de tte son estafier qui lui servait boire du vin de -Porto ou d'Oporto. diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txt b/vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txt deleted file mode 100644 index 820608bf134d0a5a027252eb8436b33f2a71b402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51932 zcmb{5%aUcsmEQRn=Tjs{m?&8)wMtT}2W6-POqFHe9i-ZfgHB#5H5!4Mhe?7iKWul22OUEI%!cW-`q^Wx^qo5wdF zuYX_Oe6)W1Z#VBB?|iskeX-vC_4@b2mz25!k=GDyy$CIDje1F~l#d`lQZl13(pReaWTEBm^p8R^<^A|V&_U7N+{MF6B zUcY_5?wVKMU!(kH{r~9Z$<=?4)_aft%>SO=ym|A(o40PBt^eP?`B!VCKYy%b_-w7> z&mHBRn>TKLbo1kzcb7arSpWZQ{rq#JdiUn1Yh7>M{Cth^?$V64J-#veo9pL0>(vkL z*8MM&v~hm0ENC=izP03iy5@L$&Gpmu+Pv?q75wd=rOP*Oez8V+dN=yd*1uN4IyCa5 zWvQQ?bo-MvCw=|!xbN}0=cnt{&(|3L?;6F^Zyl@j+dJ#G$4f5K{_UOQKR@m`%m1&A zJAbss`PogQKU+^eUfMG5PuKtNp635{%>DP{xn~Eu-d;Z&n+3?5CjZkK^M5RfX!0*_ z{{2Gz|M{KAf8Ffoaah-S-&`xF!=D~AJzMtc3cvmI@XfE51W%VYzFI#0V*StKKR!J7 z@y+eQ0KZ=UK3-ScgBiYF|2{r^`u+9$T7%%SRe0DtX+x67@i*?>#?;97RJYKf`Xg!N{ez~r^T-QE2=H7C~URY*J zXB}1;lDp%B^*kmss;iHdzJ7VEGRAvytnJm}p0Doidw%m@)*V)wE`GJ1@|%%AIY#@Z zyYc>Ez4Kp>6+K=uzQ10*T0g&9?|gCGeO}jx$1|^%J|3-mt?u!%(PzilUmUOI-Otzc zua9>;^Yx*(FAv{*yzpxlTKVm|p!jE)907R>&Ht=5CI|S{VZFW z`qi52lXcHVP8R&==67rC4-f4alV&{q(UQ!%-&ntWxnvSOSg_IdD#-ciy6*k|Yt8@s z?ukaCU1(w>vB~J4uixp=`_LxNJYKJ@Y1TvUZ``e|8Lb@dXXTf;|Na^QUy$|Dy64pz zo7O@-OQ_^;PHH2Y%B`u=e* zD_BLg*)|{_>D(yZ8lEc`XpMQSLnT}g={zA{Ztuec9W?sV6vG@8K=zGuq~W3oH_(_VTX89!dH zLuk6sLopn@@^(?nb7UW^eY!BsQ^l|CS>|9D?~hOT-5sCbt-t&h2V#PEmt3(d`_q8c zX8y@$s62 zjt0AX&E7T3$Y+h=Ik}A19KT*y*zLtJ78&w*?8Mp_e~&8HA;e@jmzWPSX!)ceu!!x0RJk~CXoJX*#knnh2dAaU~n{-VBgC=%}1-1vh ze`q|k#NnGkVSiZe#Ttj~dsOj=8&3Z?FkFK;bn4UQBke|yx$TRldF@5BbGhzuc z%M#gwuF_@LglX3wE&Yk9Jdww+uNra4X;lRZQQPTt&erB@gLXg z@ouA&>^I93;s5hv_B_kIXI_v!j`xu-U5Zj^#QnVN{hL27=~S%VN&ES`*J0bZXC|FB zytAI7{}4PLwvjg0PS=+h!%(;+Bo8NtYS^Iz&;S0=YC3B^G4XcE-1=LMN{AjlS?j|` zU*7!vsz3gpHNsgZGB#FHqo?y&Hmja7VeNTm_pu=zu=ZtkWd^pllEL_JlV{74c+W=J zteic^JFT}&`{OkltW5++6L8>ua!eLAS}HnO)mPu>YwF<9!&}GG?;Za4>gK(}+9Sta z?RzH;zJGTY329bNlpX%&E>b_br*-n-`Qf_J$Y?lg>@1$<)E~cGTKw#=9rPDxzFc0~ zd;HM*lX;9BSXj)M9BF35ekuc&&gU>;%*B({WG|O4rBHlkM5q|dLA$6nX?C8 z;-6HTpY*S+XUlat+i$*M*%;IMtO?hv#;(_A^jXuE0jeKfW%(W}!i^l%^S5`a6BBL^ z32@%9$CE>&w4L6I_QoeW-*2{jiQkqzXMI%xR#pe`SicW8WDa@KnVZsIPk+3g!U0(< zi%!JAf<>kAs#(*c^?rO+E((`>*7I1e*J`8ZeLp>(mXD?ZHR=az_E`Q}EA;TYwO%Yj za_bS%W-VixR{tu`A6ap8E7%A=KWY3+iRGR0 zYPKZvrG7<4k>=BHk*yp(ewY;`*Iq|9%~oc*ly3Kbesg7$*E0maWe>AY&b4{q(*OVC zx@+R!bY^ybR&6kOBEK)14I{IiyeO%$E1i#JX5>0JU$30TJ1WcDV=ZaI?6fORE&rik5cF))A@#WSg*B7N(i*6>DB^|kL?>v&H z>AYKeE8~?sWl&PRNIQISe0F9V<~aNHJc$eGad?NXlw)H)90pPFSLHa2<+%{_`q_#F z+amF^nlYc%o&0P?%=%)a<&lqX{_pkQFIIQ$*`Z%rDOdTc<>~+7WX&BP$FA?KYX5f0 zn}yiA%w+4i-3vY7|6`5CejzgNwBy7$&ch; z^i;1AmM_Jy<~cILwbA^$Gd!_ghWN)d!o(T!(_isceE4EX z0})j|TeBe`-yIJs4m?{=$4k5zJC0VGU*#0P*7YVWY^by*7kuNyQds37M*Z$R`}~3~ z&u8RS{RlecA)3oSXl{A_WqePA?jIZQ z6)Oo3u#%^QX=|FE!1TM!6sJBv*qK(mmsKuv7QN&$uCnVs0Ym3unq$19z%a8Y}str{_^(km{ zYtU@&9_b*mE*IOjw>QX{YkZa#Fz3{{PuDvm%fG}c%gjedljXrCWV9~xv9ZiaoMij# zJh@cf!b)EragCXTBQ&i2@2+x5CV zhGxwbn8qqjQF@t4)|yF6YjA9gf`e2Qgg!F*>1fj0hI%)Y+bO7Yy}J5~F) z#}k<9lJl)rl#WreA&toAhF9W(t=+*%8YJ(oMt3yHtIk^1Zx0g>Y5BbOe3`wFiVQE- zzsEI6kyZDyjrbmmPpqSbG)t2Y%^1_v@yTOF4rAg)tEonJ z%0b_XMw1?{*m!cL@Y$Yn<7K_U?zUL9LEVx2c{v@|waWrdB!vF6ububE_3-k|?>Z(6 zlDC=8<9h!(+lPQTO))W2{=lC_K#WHxbB(>?It+u;uJ4e?{o@@jFIiGvCbm6aqj@r` zjt*qxI9tY(MPl?2!v1G==vg=+9Uac|YU3(?yI-CX@z`!Mg!@m;83i-**t`{5UY-zn zJ=6G6arup`}rLfWxC>l6Q7rTiLRf0KPG#~%USvMz-wJ4 zh{WF-dX@2ARv|E7_9^bo4oDIDb?5z_tx?3T zi9h~j)oL=)@fs&-T5l_lg@eCY>wbCXH~f9(ynOZ&gSW>_FgKVlf9AJE3?t>kp5&)` ziMkAC#{8cg_jcxGXUX!Rb9DXe=6@ahLZdNEUSw47OrEyav)PAd!90Y&{D!5h`J7|& z$xc0-_efwUHoUgzwm4nqRp(QPEIFB3EToFk1ur8YDJ={}9vu;J;@FINiTm@OLpesA zoIj6V&lw6Hl@;@=^uX$6z-7N=4~3Z7$s-u14N`}sVR27pwR#e*K#pQh(%m$Qt!It= z4)WDge9P10SrB#~UE32$z{)&@10m`F0tJ9sZ9Tdb)ewJO2SCYAVU{U4?Q`VTK zW1;7#)odJIV}0zHHuR<@4+|MQXIB7w1u;pR3wZO>5=_9i-18U*BT7b zJ>Thl3}3!bJ=EC~_@s+B7ZSg>)@&tlNLolEm(^p~X}$8^G`3G3kSrFhTEQ9{*>o^$ zX>Z!@MBE8g)@)7ZyX=HkpR`&(MbMDRLhS*2$2{)E4}4?J#@cs!a*Ue(J@4K*jb=no zeYoDm?-=L5uIqIPWS4sd?FxT&^Vf&wezfF|aoO}fp7zP@EO+T8^qa3fS);sMuSmX6 zriJde52eefm?QFZp>)D5_N2(&>r3QG+u6}u^Jk;F0wbNdnO@eY%I@lO?-lB70 zG$(37&Lu+kb5OwZd4OoZO7qO61v`N}YhR!qdsgNGj-oXc<7 z2Z!kCb?V=fF#@T6b()PW?vEU|;Lht#$wNJ+@c6@HwP(~#w!mVnKDg|d;4M% z@W=Y?tSZ8uc_U69-Nofl_wc$PfS(k}jBm{A`YSH}@o`t)Ty;OV-K*SMm8ZesL{T=U zfnw=pO!@V)P+EJs=7@vL^S$-_*)x-Nsub7SBaWjcKed8Zv^)Ce(-$GLJ+xvY460Q6 zY3AEIc?LzerYfH`sylS8%ImHFz7@mr+iSF$y*VdqeY&)fzih9E1JTro(?6UD#(TWK z@erq!bEaF>!bD8knkq6`dp<1|U(8=b+Iv5kTpX-UdL1UPrulcaQMQh$VX8HC-bF>Q zPi9^|7pIC=`zicK6LOc^^?sTh_A6f+{^+hJM`Un56(ZD*6Dx}L)y-J7uEt~|^cfGu zP3cBYuvNsvq_7h(Omis@xhJ{}m+R7$5&pxn!TzLLT7b7tmYmbkBt>~o_UAWcB`O^` z92rN4!+G9GYp=Uku7&+*C27K2(JEOW!zkGwulQ^jV4Zgww`5Q;naAz=T_m9EY`8fm?|QaoBbA83GVycwPAw<8uoLZsud<@> zHytEb@Su^(THK$0^5{W-T8%@Dan{fF;pRGb`G#@#Ijo+}-uyr}`g+C5TJ`+-BX{*~M`}KTqhXv;;}v$(aEDKVuBWiqG^6amB|lF8Wpr zdhTp1na5;};bXIZZ4IPQF$Tuqq~P+Sl;hIa54qKmIdDr#xdUUPaESqW9~KRT^W#d;ssucGY?I-Z>=ZjY3lunP&-b%w`8(@j_Kcqq0#tt&Qc6*T{JC@>OhBr$;d>G{9vM57Jp|+A)mj@z%D;O78j~Do$Q+~ z7dhG+@+vzI16!;Z=XjaB|L04I*;YfvV_*6w!fdRdA=SNiRRPKgY#GG>R@*E zO!G86@#P&Cl!vxQ4q209KuA*fgl9ewOJxl?kx}|w9q%gJovZL|e_%dE@$|3)J505n z*G{Z1YC0WnE&90dlKzVRBK4dEojgkRUHo~v^n(XGMPVgH4T!EAxZ~>7dG0dXnL}|} zpUIw61$k{KAAkMd3%loB|N|``=j;r2kU9RX(m`I z)|9!{Mfu{?BN>drNm-;Bi-faF2$ikFm2(cvE<5X2S;+0`6ikoko#Pqagrls9)vqi1 zvyZ!LxYr8GqbDZOzTC+g=d&~JfmN9e)PA9WM+M#qK{}I^m(T!&}k{9+TCpxyRE< zHMYC78Vwm`^G_=(Yho+f-ujp|(1qM!XMXWx9g*xNW7wxb#8fdR&BtM_K3d;96=I4j z`DYrfPdXW+aeJqkr?)b9K^kP_v-|G7W1H{c={_M6Z)^{t&pd-A=ktc4<(+kn#X_t) z6$;2u9y;2vgV#51T)sbhWc3rz*JS*<1FrC(^R;4{XaV7(%MVxF7(jF)Yj~6gm`_J zrs~_f^;+!SwJtf*^(ycVdBtKQ^!sSO2tD6vu`QbPb+7bxc+%*9nBjjOlHtm52piQa zd{!P*#p8Z_BFiJSzRJUA#V_@y!Wg}$@$=5qSc=SbYFYYhvynF(vV&gIHEV9~jB(O; zmP)G=3*#O9V=cw=n0aI|Q{PawbL04Ta@RPSUK*{Fp~L^>DCIk5m2q8vPO+ROS@}SS zq^G)>^bv>9*>nU{5Urk{6me;nUB`O)zwtIor*rZ@58O;o@a;9m`7`pf#=%#1jITDQ z6*b(mzx#$X$$>lkZtkq^&iB?g92xDc^;0)Xy(xoqx5|c&cK$GXjr4*caWJo<$H@cm zWSMMdh&_MVIdlfvREY#U6ckv8Q z_6kZm72$PUKx+8~yLI2N47q7A{_eV-untyCW1X7`(_Xzq{;n=)pQU=NetY^mM@2Sc zgOF6zce3N5?6(eiQL*v&NvycYoD;jQBl*sb1}Cz<|GnTrZR z+TsQFDeMG{J>=h8-?TAIECxG$Vr9_dNx5Bj(*RCsr-Byfy4-s6X#DSKD6-D*lMmE= zH=<632&Drz5q+4NPq5&OTD~yjxQ3y#e2jITM^=bYLa(_xUuh3*JZ^R@)a8Rb{yoq5 z<~y;~9PO?d=lqEenKHfSD{xFVw7D%)XV_guB5Rs&nd}r=D8J@<-`y*ZmqqjFVm+@P zjqEv$U?0tuqC%4B^Lj0V$=~r|*qzv^TR`58F_xHm^*me5S_F=Pbv1p1L;Bm6_S${J zBRebL$6@fTB`baMsB`zy+~aqHf7-_wINT0j_AFy)>=@L_TG#XSeP`!hMRk+s&J1$y z-EU+=ds*_+yE%(vFjOus;+HE|8BG5rzb6X~kk^bcjyu!+H9KGtsIv=USDHU<^waJc zq1S8y8?9;hWa9=}RWoDpcE0N&jBd%q%Ct58z&UB3r7pE#zADzKY^`xuVR;u_WuNgZ z-YD*mEY|sQt=7yv!}9#6^(NQkwjs<+>fQ2?{KD!mP1RDo;JW<}+~S!yvF~Vt*Km^G z!H@0`T=iWjRw!R$g;~wDce;btNgp2T_wjuhAoMr$pkSi3%nMWSps}6r*LmYudptd} zURDNlOlItAjA6HjPu4tMtN7Ws$~K)*<92RspXZ%kE{~gRV)9%%e!RZHxQ>8lNrhvK zL^8OWlhftg;dx>cR^lURRV7xQ8iN$s8}+h#&CX?NXaB+=WfZ1VyvKx>8<&wlZaVmQh`6tg!uE|)e?977Q#qY{&^P?E?Tn+4OyQlN^vp4c`a@?+e zH*+*HDUCUOkZ}9(r=qMtR2l^B`LctbdcAS1*~%&*(yQu(iQ3jXeE=2K^j-7D?ET#l zsq64;S*NE%owc&M9Bsa(k~T5kuqxY3+^^q>70AX1d3dp=TrO6yZc%M8UIcNUY7zQG z^r@$2Kgf05hfnmBpeEVc`47e6Pv0UObw0$C?W)E}B*lTlwr4ww5LP|@N3lJG^8IW7n9+6@+;~+PMH{*6)bLN&Z;(%) za;25$dc1jilfRip;W%NtF*~~%k1K&(0=I|o)llK-0nCnj;~zi0r-Af zxVytp_WI+JT1Md~4+&-Y-X62er5KL0R07v5M4~ugc5Yg^71OPJUDm+oS)p^3?e9Zg zJRd5IKAG_J!3Kf6&$_=$e8sbSKI}z8lJ9x)hTZ49-tjzFtS{CYT8%96JhoAjY9ehG z!VqS_O{6*Rfnv{CDH+?1aX;^738S)Wr|UZH(eB%}sS)zPeD=DB1idlf&TYrC-(Mp; z5grSw#oE`s^qrXh(jTp5P6u6k(rCQ6X!RlhY{Na@E|TzG-96FWdVNOX@y*{I_fE`a zvohhlu8sqp#JHm&BVp94>hMd(YrnZZGbXDaKF^*LRg!*WHda}$)y+L4<#~03uB`1! zF?4JkTMZ_%z`KXsjduS0%6ZK(1uQh4j>VjDq}3gtv$vJeT$b8>Rz0eDpS@)in6@*L z?jAYlUZtbDWhHA#dKq{1(XjSA$2<4G%Z8;dk)wXvS!WWE-H5XvUG(lfWA5)TC*QD9 zS^VTsuaAM9+97l3dmTPMK5{OR={_>eJ6;i{^7AymBOx87D}8S=>FUA~2AK2wS^Y=H zy%_1`&G**ttvcymu2)Wn`n($y#069Dm?eDvZe8!UER)XoyH3(4>;HWFGFvsGcksZM zYi>E;&zF2vV{`73BytF`YrGK7NMSX8zg<7EHP-Yk(cy`&u95!Akm~=&>&-Ws9~#aOMOmjrVZoy7v3h%8*IeX?GChp z^h*Dc^QGqRaot4JVVo;6uOv;qaX~Nh5mczQUvD(qdl77Y5~Y zJe7%&Np5eGbxU@a^A$xV67)6xl$$2lq5c@>%Vr z{GK1*<`d3s_Vmu&v!mB`M61cBce4Gso%6aYYHlN+V;GMmWBsyS|B!9+T5KUx$V&$C z=I@=$ICWVGoZ~VL|I>N~R+B!9*azYV^Y@@$m+`1?&N)u;;+-{WbtReq`Cx$YJ2QT= zo|%(z7}TeRVhIc(pD${~b$K)I$Pdn*)S0F7cX}HZjL)B=EyvC(=ZFyliAC3O zQKk8lHGexrQ$6bOh+3{ruZJ8(iOIH%clJ2>^ZD+bjfBc_4ZW<{?GVAMw`eS+zq}jO zUk{sDG^4Ts)_$^{b6@CxzUF0PqxqyisY8F?*e_<4y~|IHaM{6U3eU>I@Ymj7;_5-#ns><@vf+u9Ze7o1*hhfMTU`icUl5b>lx8=7r^VB6L}q z+1P`vWD$6|Gk~wh$U|$N@tTcR$uXJS@cFeBhELK>``GN*_qvDyFgq32d53s1=6sTk z!{mL2Vd)>NRi&BGJxn)#p(`wtkeQ53PuA~)kBtkXi3WY&$W-kOqZTu$o-!(#?L6^19UyTZFdw(OQWa;x~g{K=}Ek9h6mH)qv zVd!>i0$%WieD?ah%SKXGDXRNUEis2IA1q1E-#=$;$e-^3fb!8)v+Vr%_Rw&#nup1< z*l{Z3Jc7sJE;xY2=~$TEN?m`x=A?T$ME-W!@4MEsyI8lg5k?t*ns{rJVF?;?M!kMv zduF64{?zN5dH0BA7+brf%x*I4u9R6m1n zF-F#Tz8;f^7lZ4|t89-MaoqLTRx^M9b1W8X#OI_Bp>gu~!R}#{Z`hS8*EJje9zJ~Y z4nwhHHXT$>WJ{+aa%kN=JnKKBhWHP-ZzO6_bi1;z51N$@MOMw3_P8 zb$<+pCHkBOTeZsX76+|%Dy~cILd0ZhF_`$+4p7z9xl=zpb?z|CnrA-*|Lh*7C(N;N zIVZDBQaepkxhUC$+IPZ%W z!}#Q@L)-F+{n`5a&+~gWY86F6SSE>;swJu>d-jdH9`x8M`_s#K*Koe~CUctlCZx84 zd|^&KVC2>a>ksSh65-^jrx694jGG_^xS7_T`yw~)AdxYzq4cJp9~_dvNmyj zvb@V~l6B82WH=L%wwI|Meaq%K;}XA$Q%)DiU3oBn6n%F+non%6Wchqc?~hku`)XV@ z;zNJI@p^A|W+6GPvA}dNbh_=Au`Ee;Wq*m0@2zWF%CdKVmF|p_A1}$uMAOfpWVGeP zWS^lcHu8wgBC*aH30O;aNpz*FbDZ$^yX@=Z0Qyl0IoWl)e%}lO16I7xzm9LoXgU+# z9eKOhit&mH3RJzDz7q4j8?W4BNc06IOria zOJ--Q=GU{=T7)PM7|oue2A>FtSyEgthQ%{J=~#}$+l*db7H{ncDUPIn{*;Dg7CV0= z>8DFJ+Od+et*=KTmEPnYk=^AYtPty&BLuq=FR{8=FUOucx3rVJxPsg2GR0um&ptY2 z-WGweI0JUeAUA6N^hz-Q?b1Ni{aIEshqY=Go{2@X0K4$Ly^3@m=ENcyPk!5ud3MM3-q5(VDe5IlXOmi8W}RU+hzq zX&`jXxuJa2&vL|aNUX_U^oB?SM_BT5H}Sf6MXS6U63=$0X;Rf`+Iw)~o4=_DNBW_= z0@*csb;zvI9%k`j;~=X{-|6g8@x98~YRENNI=oL#swyd}uqDrZe_e$Hk|wua*FGtU zxgPp#kSEMZUw$`VY|9R8zop+iZfz>V?ZGUO$H7pX5u#`~k1#grZjTv^j;$U#k(abF zO7ZrLv9x~1I<%TswwK*}9~ODexvlm6aoNwmaRZ-ub4h!PSe0eJ6-G}>n@)j)L|Q| z2nk&c%X1dXGeun8h~kS{Hd&y^7-etgznE2ww|bg7pGWlUd|CwmsUza3jhCJGOism8 z>`Px(`g)X{wJ=(TP>~&9%Vp1JO~^l85xUqjV(qC?_6f9j+F3gBcUK-X{A|e=R{1VD z;oX%VuYd7s9&x^c)vXQNct(xXGe2AJRKIj(k7jodR*HPhbVk25*(Izp*tyAg>e+6W z)jA75TAf|q9CNTA6q3QHWvln=Uh>34tX{2d<$1~LB*OaE+mkVD-*Z0P5r)p6d&Wt= z;VnHC^WHuri-D{zEW!280Ig{EVPZur+9%Ei=W6b*}gS)LWlRcwmVg~hi>fFg^gh$*|feO z4vBf~{8bIx!pTiGkIz=7J;ooBVx8N3y2@HBH>_ ziART&RXSys^K7h$d5s#jnrWnOW{4!Q8SD>eU#`C!{%wDQ*k1r973|4nAFsa}9NPcp zZk$KQ_ji+;AB~l*5c0)Ma?;j5cZ;7~eY)O_tyup)3*;-=dRJ)q51aQnxnlQxqv6}f z$k~!-g)us}3Os+_`yNStd`PnMMzT!4Iu-3OS7Q~UaphF%cyjj?&mK5lNd|Eis!0a< z-YcF?_9nm7#~8fFsvGsiP>ed?(pc=n?9*wjpVpnK!)EKgSO+JHEL%qt8M3zOw^1ON z*Pq#N`k=pEGMJS$&n!7L(BOgY1x5(%i#Y;bV|fuGDVi$Qt&hKFl8F+0~Kc$v(w8jD}I39GQQ)M_IKq zi6p^xA%WKUHuT6{Cg)FB)?RF-0*Vq&9%-1OVWM7AS-_nzm64;o+R!yE_lTZ@kbN zNl7ODj-~1(RB4g6=m-}O^Um>HNMj8-&3OMr!S|Qco6&ddnl)@DpI*}-DdvLGje>b9 z3)D&C>AcH|JI^qlfB#!uMkm);gL9rl)Be`6b@L~)Zwb@Ou>EK&Vn?y4 zmD@#Cz0^<73o+#I8q`ep#(c)lGqV*WK}B5X8vdbgNO7uQ`_??apM=uc*}HryeZIBE zrQhbPuE7v=1~;r?M%P)Fq~g--dNhea{RXpS2YV>N(BnNHP~k&fSAq zw{L>un_>H0ft|ZTFOTdxTf$#^3_B;7lYqmmQ+@ZuwLG1Oxa?*m&tA(Oar2?o@%ORr zXq{ctYZ6U%IVjCbW39Rq<>agiLv?-RCSnA=lVeaCKXg9G+S@Td|0URsu{eFa0kgAt zDC`^J$U-Z7rCIoX#F_4HRVwL4M=X<8!`Idm*6obzbc=Zt@38OOj54I2bIyw|&OTW- zow2VYZ#niur}XEH{=4_)!s2wr3bT)qX8OLgoz2Xwq}-=!%7?0I=+(;AgVnHbKz1?d zPoK|EW0!gUw!rA~yXH%2Cm+DHP#nsV$I6Z6 zeY>F|?_?oR1zmo2k|dkE{~V2F-4F{mp>VR-`*_2E!eP49Zgx*PJ)bY^d zohLe7A$m^bC61E%iz6;unSGFUI*n8Gu*Sx1g)jsC<(&Mt&hTZH?D^?)^IhEAw_Jvx zbjsW5EsT|F4DY}=RPw;m|9TRb__zDrd-J>2=` zuJkv%NxdSY8R!H{*Z-1vibC!=bJeHEnR9dZ89bf%eTQ7cSm(U9albfNaL#?qIh}Xc z98--{30wQ#y(ngm9mpZBv387$UnW<3<8B4!gB&A$+Y@ZBu4Iw9pWl63Rb$k-clL}X z*Hll0ipD&jf8W*RXq(;Uv>!aHtK(n!wfoCtjfJ&jo7o!L%NcbC;`TVu-UyAzE1+?A zPGY*L&(qN5{3;JjPaA4`b|;1T$Fs+~WWAShaB7dqSNp8H_3*i}{O)1T;vDgHcdD=A&J)3p*NmsAyV$;?5N`Cq5kUd7o zKgMGIc1jwgk2K3>ys{l3JPi%IlQKIi#X~>yBYUJ%n+zYgT19%@vx(c-pDbp`56+t6 z8?ChrBvx{-wbThL3c8E*Jl>qp(J7*d)Ms5!CE%&CYq?TqJ7hJTZYW9(bB{;x+GOsX zb9R9B&L}rW{5kmcOsvAzc24;~+11RHU(Ppkq!V%J><4)ZO?yrN=skh?^9bl+Cpmsx zpP%_@z2iyu_t3FkX9hiM<#na+<2NR})Cg2z+w76|SpzNO7uU`#&k7Sg%iw>q?(yDy zC!psp$29u6KXlo@V%zjZcD!o@`d3H(^6uLp@*<;Pe;Ev}++EF`eb8)Dn-|NJCuKuf z#(0Ps=*-yWW?RuXdv+H@B$ItWaS<;YaWobO$xSEo8w`cmc++2dKXa40R3o&jqiv5+ zZUapl?O1Ksp6UC|b%*FI1IGhcdOoX}=4fUxIXf$4Vx_J?m|Ubzv9()`aYuXZ<$0|^ zOf4ews&fZ#x(Jui!HD!%7Gq9YGU8~habsIMuWZ(;9+o*x7x1lP zl;Jv`McInY53e!dlCX&GJD^o^^hL;Ynf zH8GgxtUeu=3zmJDlg4IrEG{-=`4C!mw*NB0CBw{;`V52kWza9L79YtQDz*)FH2TMbDYC*ukA2lVJ|%y)e*09gIx8JCliM6@ zlNV3#^POXi>)6wZhQ+Li4g773Fp|Z?hpWX1Eai$k$6Dt+13%*b!*BfyL+Xpz3P#q`JWpOK*nGv|4BJ;l`ddx6ehp4Wc=RDT)E zFAlVkF9ha6=N;@hXXc8ErW(QQ-&?PSHR?Hxo-gAh?tR!gRd2B)YkE!ZSvK3W`xWM@ zYm+gg-G0L{e5ekW{L!(~}9&i9*(CwHYdz;m1I;e z@E6gdY9;T$S%Y;QNC?Kpvl?^Mj~d*!LuqAyv&I)IWKi!P9i;t<8}gR7@(PG_Z}=0n zn&FH@8iz#u1@Cf+$x7-H?h$B-_sLpG8vgbv(7(U=H|s1}(GJgD+N>BDUyx4x5-s*l zvnM78w!$h^GI!_0_WRzt@A@=bT-nMer<;gAUQfsERLncqSv`x^Cy2NI@_0g})QMap zr`x|=XX5^9{fDP9`kajOds=z@3A z;yiyj?>dxq&)VqpTrtcpLnpj1~}5`%P9BTXjCdI^to-nX{U8nvMH>Nl>?-7CO|Yl<8}G>gbOZ^!KnJIkGNZXm`?ky&}oAXV00>P9vqM^Jf9 zb;U3Rn+2xkBVpfX za{kT$Yt6GK_Fgh|R$({e(++KhTLOkJNpOeWJPjV2yILy;-0 z@itdOfDEDUIITLk)RlFX9jBj8+)b|Y_8~Q$^Reko71<}wV72r3$rHy8A7Kh>h@E6L zc`t?&|M~-m8mMro|YLefJL2hX-$2Q@-P@3i}!lgM=BFDqa>{AFX-aMb9tSzal7~kdM&Y zuB*rE`dgu9-X3ZOcgNfH@@FRFK$aPbE=HQq9l~fB2a&_0G>pUN zI~dt#*D1UEf}^Vb#}eKdTc0D{=tm_Ku4qKugm*RX<=r8mI@4Wr0O!}SiiUdf{z}iQ zWJ&jJ`<&-*gjs`(g2rfizTe`z>6zU&N(OoD3c#}2S;c*E?a*6PSH6<=KZ^Fs&X zhKOWs=juUbrKfE~l|DUV&wMYYmC?W|ABl;LL=sPtE$?}`Ufr%4##`hF^XZwfW6{TR zxIKC3%$$RwJfO^p51C=&S&#(ljT#k_-5s~n8Ab0^NmgwNM+@JuSB@jl*UrM)8q^V{e;YyRDF z2fJW}qHD3F9n?-Am04|_q^D-iA9zTtNDkj4KRDBgD1-RZ8MbHZ*{}i)?kw-prgSm- zE9RV6ym5BMW*LmTr>k(gwD)3-GdgL0>o~KljMo~<0HFJvAD?S6GSkx8!$T@>D<30U z(e2W+C%*q+Y4T6uY}6PDKl2sXhoBc?yQ^>Ma7<9x6 zlRN%+y`G(Xnkt?_=%qxmT}UO72=c-DIWdq|?fye{J!>C&d6Qhf*d(*q3_AXCyY3s- zI6v<_)~l@14JAa&6^0sdSD7+C8YZKO^rGL$Fk2;1BJeTJO%E vFwErrWat~7;y_Q!rPH+0NnfqhTvlJ5@Y%XT|K5LNecuk|hTG4MF3$f4@wXAd diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txt b/vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txt deleted file mode 100644 index c540e2015cccb39d50d2a3343fb9a77c857a037d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103864 zcmc%RPp@y+k>2+n=T($OoE)B{o!CyCfk9mfX$n+}-C`>S48ypw9lCGY|Lw%_s|zyo zyEx!PI(HyXG%-9$eSrN17B+t8lIpgdL1C{|tLmwzo?3gKA4zrp!5{p=H-GR4fAEjj z{(S9Uth{ev|;J=K%T@2MtCIDG%Z+TU3F z>udkr8lM>0_cOI{`M1|oKc9b(iDC0!+1_ovFV_Be?I&wrUeBNI^J(q>FJ7~?vwya0 zv-q#g<*Tjv+1fAGzFzxgjXpoWp1-`-|FyJI|4-M<%dGxv4Ilnl(+)?(=E9_j-}ed%+qXFZs~AFVyD{g>oDi_g^k)f!It&05^e-d>Cz zShMid6OF|^;`%4+*Jt-j?5x4_Y}RnZ;qmX+aH+PM;;S>e#xD$dr7hj$&YC=!t&6$q zPiHYO#h8iOCwIL%pEWa%uUIu;KI(tg|ChD@=gRFp)W4qeXMOUf?-!SU_F0_u|FVYX z|GQ?s>GOxX{+nxmeeHi*`_IjP7W4P9xA?>hck|V!nRgHMR!@A-YiG_s+x>us( zpRWDuwONDtevR)RuKoG-6gO-BX8)VD;$L_D7i-S_eYc-Ax#9e)%O?-+to3(V3_ssL zSo8PzyEXVQJ8!mp)fWG$UU0{4)=u8Es1|(u*vZ}fkuOe7IC%1%dVYDG%|8F{HBXqd z@Dv|kIQ8$nwpZ8rKVQ?k9JS;*ukS~CiW4(y_47zO=kkj^zsVd~yDEeR2Esu1|h1yPvgxvDS?2^(My} zA8Y)?;1o9hqj~AAI`UuFXpm;zYwwb{c*E}O9&65gI22PIzV4f|=e4=)m;1!izPsYS ziE~%t>4{JGXLc)?jsR?=Hd87cP4Lat;4klmAG!dKP1z`Z7N_;o(wU zIBGL7|88y8=+fPZ=hJmoZSgdlHFZB*ox}T|*YvN}SwjzT z(yQ266L)flTO3?EcMoUR%^e;K2Zmm8f^p8L`;O1)KYMKE`e9+E{kzL2j^65cs&D3V z*;o7I!+{QPrOXsel^9$JG@z6HLdZ7Z+&vU_urn5H2w8jI^Y81yoC%v8XJ>&HhPw{a)O6JGjR z_wC>lf7Y%>J$C2t_wOFmXl})L)^~IFo#oeWnDx}mo#UcLGdr=$5ZFu=RH1WJbR{IbH&5`F`tv? znP1QD7c4qFuc^s?zE6&Kev%tw2n3e;b_B;NzOO?t_@;wYlt<`^1F?bQ5PUH{98^ zJbqfR__;@Fc;`a!M$hr<#pHXS!bW`8fJBID=Dh?@p)LoiFZs$CF05&)TE+z>MLkWhTE{yX*42zPaqnec}LnuC+T3gANR@ zcEAs%apmeMAH1`t za_d{4V(^KBp3c7YsvmJ`!cLF)tI@rI&BTj^XI)Lb@j06{*e`3d=1!!Iy&Q4BS*s6s zC|t44ZgzdnO}x6!U)RcsTeGMKJvr0wr|t^A^*_7rcRem~?{3HWy zvul2OtEI15yXym2Zts<~9`rkF&6MB%tW6KtX{cWLH0Uf%i=RC+Ls78-SM2Qi-CDitO}}ZCwomJuweQxPi_^ob71LS`zxO|1!&e;6 z%^x4SI13kEy~wwowSIr$$5+kt6O)Ew>dTsD;rF*p?cc7+feoja^X}so_s-?&gT)uu zV(TlO=N!J;IJLU}^8Vt=oqf^}XX{7bG=6o}(3j`Ewtc#t`tX@&8qTiocUye^*81um zI8)!ZqPzH3f8xZvuF)ADU%E7#S>M-ddT}47zD({hardAI7Y`^__US&gGwV!qZb{X>Y#o)?n)?ozL3oa?a%5Pj}CA*6QQeyKW|( z$-RHe@ICS4eD>|0g@tP|-W7g5&DzOb&2pUeJt#Ll=c_qr-u1{I-?`!+-9dOKRvLC^-Dfz@YjfF;uYLSIzwfTgg#)+wn*mOI zcy!NZ*YU7+hutfEilc+?+xhR}X>NAD%i^5N;e+L=Rx!on0{@J|CvK--KL1^hFW09A z9dI*ud9-tP@4eZ(KkCBkp18Ac;5$n%{mfc_lRw+FJh8KeFW>p!!uWB)L#&u^)D{ol z`@pO_rwNX7tY@t|t*7Sqbe)x}|2Xn>uHGX&F|$^$^^^wZw-ko>_%t&d?`QQbmcc!> z<%?UjW_@~eZ@l-kP!DfBX01B~tByN@ll{s6tb+^O?uqzWdtFo48LZ}U=IYJ9 zIn1u%y~PzbF`w$q@0q774o-FTh)eTpPWs2e*{tQqnV+5gThChh#p#g_X;;h-ndS3h zOQ z>C>6H_V>`Q-#PUD%AYHzZ&WpCU=6qY*|qP(sRLhgIq$gj z*^@jv@}(F2d)+i~rZ4fh;N00ci!`|RIvf9pmzm)2yd1pvn^%3PH)|*N=gY_cr)%j9 z6PNQ2^xsk4Z8gN|XV%U*`)cdWUYvLsbf6R8eLl3AwfkJcd89!;eBr5MJ!|*(60dWX z;>%H^JN5pG<74`rHGX$E{?5ERdTI82vv$_j^Y_*E8|kmD`OW;iHkW<1Pd$bEVb^$= zci+d(JmZ$O_~P%(Q%>{g&YZIlV=o?ty(isX*G?{J-yNGh|F|aJ48-caZw20BVY3tO zY4@`xC+?4Qg>j#Oyi;%cw`#`!QyS|_-(vMqFF4QIU1NRV?5SV(SByLwpMB2me~514 zVCokaGh=tGQ?Ez3&gnR7=X+I8{BLRZ-Jan90}r$FH}zBRiT?GRMl_SJhqr!1z@9bu zaa9*b|7?-&-S@c6o;Bx3T>sXdi|M{w)5yMi$cL9&aMh>Btf|N6tbS(K>17Q|jJ{zP z+j|GE@BQprE-ZTJan?RwYq_+VwUaYF#XD;TvuiQ1@OLkoi@31ENkd%Zq+5M;4o9w@ za1ZCaJAB38?;IT-^`nO{;|t?yZPwJn<($hsM_+fo^prDeaiOFB_;3x^`qcNc-N#9N zy*uyTz;h07*3wQa?&8nCed(nqI*5mN&aC)9U;nJtPdcmT?s&q3q0X$8TMzf%#5lt( zJa3~ z2U^o}*61asy?=-C^R?Htv=m<*ap%A12v3Y0SZDu#xO@M*nWkzb#3=m-N>Pv7)Y*R&Jc{R%JaQ;&bYaq7GtIQo@aTzRv;IGsAE zsYiUA<0#kjJiGIlJ^$l1e*gDFYRXaH93IX2(M)Dzo5kPQ^(35yL-3xV|*XFVxUwd4#ce_pxeASKj>{@;IkEXEI5Ffv} z_WaBo@Ua%-+sW7c>g;KKbDfE`R;T;v{lC|NC!gUXKI}Vwa~A^#?ySL}v;Nhsp5Ac1 z*M!TLCiZH>F&FjWG3!}-w+0W-*ERF)PKGn<6aR15;_-3U_0coEX3zZXxYtX^zSnVU z|Jml$GYohz^zXgW|8Lit!G~Szx4!Fh)~82j)_srUcW>a*Bwgk@QtUv<~O}u3^>3*}t=T^{vBC|0f^XhO0Lm@WW@;@S~*}HLv=j>Fe68 z!BJ0Mc(dzs?%(WQjqXTiaz0;!4;ya#6Hnjw|DFBWOZuN$siEg;xsx#CoqyK%eOk!D zQJ<&gFy7Lr`&1qK?rMDXaQ5+T_i3ai&S@G>?|FH8Y(6JGo@TEuZJ*X=EgWkYdb0K{ zD4$MzaQSe;dDg1i{=@o;k;flLbz#g}dDh+4_q&e!r})yi`ysxyUevUwLz?$~cQ$+W z^_qI_7+vwf8(;RcHftwO?~wi3zg)Os;V^4r-En=K*lKi!=d8Uo197nBmucU|!OwYf;%928i$i^u(_Y{3 zTcbZy>W?>gNcy>qkY>7kx|nE11})Ej*M?n8Wjy}nb=dY$#t&5Y0gu36o1JpDEi z`?{tFoX$Ij13uNH!OPmL@j0{h&!6z*mOr~bId$*kh-nt_Ib)j%46*KVbA8(Ntl=#e zN4%TI>^khbc4FY1??&&fe&EC>>{;JE?|v8LrP1@Q<*;{aW^~uZo(}bFFAk30)rJ@5 z>>5`6yzbilYX0HO`rtnLol6tA&f%Dcd}~_HS~&F=ALn9m<4g1E&-#ji*ZUCv-X%|U zVc_Ck+gm$(TAQ^;{i~%1an9AK&+?q<53coG&-!#vS-fDBn@^tp)p+!N@ZWjQ`e2z$ z`dH_a6CWC<8y#oOx%zS7!;_Z9c)~pI3LfWgk2}WwJ4tIXG{O@_tgHtixou?}X2f1lyT^(zA=b8Pi-SgDI2fp|)s}q*K zoqu-4;6H2W1i!n)=N#^=ooDfI<~^kepZTd(-FuF+S?k*dA0PQ<`9pH!YNl{#AwTT< z3~;K3+}?c}d|bmZ%-OYAef930Gp;W&-4Xq(EvMMob$^f28c!C_`}YI~7^8g+?sRuA?5J9*b5j=0WR z?}eWA26xudEo^6apZb5b`*7r?NAI3*BMx$Lds@>spI-1eexc2%HF*{^n|px4k^P<6%8(akTE--H1cA%&5CymhO3VP7EBw{?uIck6XIQ!4al9=5_uK z*MGRx6VK>+#?J2JYJJ`p{h!|fnBB=A+9Pe!Q4igX*)=>pmenoN zbL{n_uTy*Vc2+!0 z9A+&(VcORtQ*6#f~*ORAsarSh6U3*%awR>JQ>0m8~W}Z0w5Df3RJN4aK^PXLI&(*YUR_D9M zuZBEv)jZ$T`#lh+9=@}N@BJN7tMhskE6pE%*Y)+fYh1*Ax`+>#TQ1Y`y54AHKSHz?6yQp`sc?(-~4ku)q+>fd7sKx zm&rfx|MTwWGCk`FR`sj25ry<2_faixnK=Kh_ye9vp}PIKS?Xzh!&uh+g@`)2J=*M7P-YkaIcIeMP8 z?nnE$n?DY;O&fXo0uET)YZ1Am5b<^h5fxrIJOpf<4P1KT$OInNJpS73kDW@5z zF>CHXwbM5Jp7%_@@78eO*9YwSdD``?#X*17^;ECi`Yp%)?4j7-u3s&AvxZ-Bt>eOf z-d+A#d+VJG)A^}A9KG_>(ph|AI*<4Lof7xi8ff4&XncJ(4 zm*?5T%kF0_PS)uLqg?)U!xILdcTC;hQ#tj0_VAO-FSqYScLT4u>2KEh-2hh~__5cu zV$y2XC(gOrYS5wm>^ffR;A`K#|IKlpHvKb3--W zQ=|H`>-!A&@P~$`b=pC+_UOMGXo zyQr=`zP^KLi5L91&93FTpYZUMV_lE1;;mlaRamnozIyk2%3qv&Z4Vnyb;B~pG;p8r zafSnvmsW9!r(UYj`#0;8*WDDur;hr?r;D@hy}I}Ke#6s8Y`Usp|GHK`_j~chp6TaD zYkE9$@lfkgf9{B$<8r?r&3ZPbKI-fKP32EFxaVAGV&5IT>mFt`W@EbtdX*=C*32K@ zZ`YbvXP)AlbN;um=tNieFy)rhotX7CQ!&n+iJdj~;r-g9yAp0W{oOe4P4CygTa3@w z;;OfFseXI+02es!)U1h#A05Tg;jP%-3+MQSea@hF78m{g?KK?PFV^_gZ0PF0b(+(_ov9AIbAB+ZXI`&sX5iVq6Q54c zyH<;RvDSMxyJq-zzaME3cX2r3&a6Lm2VVAk*3#sB|N7gBXSMaMK3w{zU3E_l$`dDN z)*jtMdeeoTw0XZqb2aR%ea>0E;=+DZj}OkQiGziYTGdnQUT4<#);mapzPauiJauNR z?>~NN!f(!M-~EsDs5h9^sRvs1w*hD0D`#TOu$eWNw0Xp$ISoxb&Z0-+8BPT<_<2iNOn&T4JBqKELc&`;1pO@@OyK`!Q?s`SB4a zhYn9`vvz(L^#5*6yqL~BVKxW7KKdTkhZpUpes=TYvc2&zijWbw|@h?~i`#-}^XugbNdg_IfkFS<{CaV)*+XTId)GaRv;NYA*6A%)ZE9I$D`&1}{n^KhuRFqTU;o{~ z?y&RoeZx^azq)3b2F*Zy7H)U%jFr=`oHJ4@P1LDwdeNY7v$~!8zBQZXH|u*@^Ms4X zxsKE8`cHj+vHSB|qz262tev{5r+?3|@WfmE*-JX}vEuYlEDm$oPxo1GXYXg9&d(fk zZD#n)8ZPREMT0mv^S-5bvs7=^?sv96i+}W9=Zo{pg#{Zo_1zn$cX8o~!O4tqRIeF} zbEdC*{Hzbx*EM&eI2hJx{3y?y<(Ywca%Sy*N5Aho(ck;}@6Me#qPUTu*JfjweEMkPOQ)O zTs%DM^BW=0U6{3EuxOk=+ zP0P_Mj&j3qKkIY9Xz@eu)%i|T2iN91yT&bE{ONk{U2Sz|4Hk~pIDfY$PaiP){+!%f zJ1^g?^g|o|r?pwL7jOOOzB>DC4F~UDdYO-0&-l>*_N?iFpKsRG$GQ6Y(|5eoiIY4% z&f3WjcD2&+*Xs+nob#U{Vfa>7*WE7eyl-j#NKah#p(dU<{19!M(OmIyhtYkZL3rZc zx;yut#OcXQzE3y!dZ_QTqs99*dw8#Fv)0|`x0f4+J>BFrJ8|~iHSx2SzT#N@cTe=L zmV8>(6JBDU*Tk@QYigvs-m6#t`hx?%UhA7rEj`}vdHLu4N)Nn0u9=zo>V}<8^@}r% z`qo!H%c)O!v*vw$>FJBP0a8p9B;F5j%tNFQ|7BmA^I`%3%tpN;!{YUwu()u0AHSv-T)QyfgPzUG=)poxQAY*6j7C?^&Z0Uh;5t?y27M+FbVKKE>I~O>25~hhV{h zL4*5uY1S8idHwcJ>z}eqgg*a@E0%dWo_1qQy(Av(~~cr`NMZ7Uaxq#`Qtg4 zPrdl+Grr==iGwr!<431B;f0g)Z`Znep3a`uX6?kWhf^=s)&70*+zIc)z2>Y>4>&rj z7kb&xns>;#C%x!|@AKMR_KSTMkE8r_NXy;>an+n%ySL)aMvgPjbkMt8Pq}K(+WBr5 zOK-V2%o^VI)wVAG)YZ8&HE?OxxWN3lCa?Q5yLP|D(#)BBbA4Si|1&<`@IPOZBfdJY zy4TI1_esrJgC|B!>sdQ{5T`Z{uWi^_H&ZyB3F+jl*AE+FIYa>m6=& z{JR-_&zkR&Jo$02-;+zYwE={4)?pSR=nb&7ufoO zABI@_S#u6cEdN~3`#Fs6VjSZq77h*iJ7CYsnd3}+82o4L^SdL?JJUbcR7Vbd>esAZ z*Yw8++dUGmC*0%eygs`#;^pEoYw*r>^Xja+KiN1n?8WQG54 z#z#-i&vytnSaS7;BRze0^z2NH>WF(ZuP~g; z>v!brn%>U&JEb z&#^waclT(Qeq#H3dftIkufAt;aFSyU8^2k5i(B#CKYRUj7v#RhD@=9ti_@&t=MS0t z)0I9^&6UjX#dXzwEj@z=sd)>OJpzF8gYq<-riw zESgiif4pZf^y7Z%wYtT)+x+${?CvQp#WsUkpMKP?FL8Q%TAMXF-lOJ76Y=VoGrLv? zNBzThF6U9qtUtbLiAyj0X3l3nYcS(^VxGO+b)-k{xf)^Nsn1#KeHF{6k6Gh?UE_;i zn%J8~y~eBWVzr8|SNvuT4>@?m>FneDR#a;?7Drh3I?lQ?*6-HNeqeMSr)qRh)HmnX zHJs$v$Lu=I^!#B>UcNBQ<;=&^?-cKydjwA%PdUxtyi@5R#tg)C-|DHDdOGiQzl-?P z=&aaT->Egu@SDAyG_tN1KF!=y?|id{7fcpc_4sEEht}P<@78znaNf6%f7b5$@~i#2 z);oariPK!;mJaS-9AI?+VCi$#;tVt0^j|EW`O81GbsvgRN4{G4_Z$4w@`u!!&Ar!A zUtfMNq(wZQ*Eg5_**Ix z$@;|VK@2X|=~C~{>zm8I+$S#f_2CI89p$O(F1@VH8qL!V51jdCtvc47!R%aY*v`A3 zkNzH{yB@k1^6j72=+Jwm22SeFn!dzZpR=`(W19bvzvImePk8FhntN=mCr{dmJ?rz= z|MzkEVq?P;s|P&IO~0qP*M7P-Ykb*>A(!?vX6n$d**M2LP4$&- zvum8v*IKL|o8#rbT?un6qaX;vdDqq7`g83~t=t%DMCJ8$bhV`Ak2vmS%X+ zKppF5l6Gd>-wZr(b8p}j|GewD?5o4ir&l@MxxNkj>7ZtP-Ff&eqBl=C)qE@7-w-_U zhEGqmVZ2pG|6=9otsEF?zLht7<{rwUZ90qZH}m;h3bt5W^dU#xSyRiNf7a?Fy~8e7 zO#0C*-T0gB`9AQ&=kxn-*5aUl>ojxrVGY-lv%Y4nymPHjete(T=CZH$$zSeUdWmno zczS2Ullz<7dAjwj!L_-;;h(ja>)E~2gA1Pqp7ia$>)rmYui12;#hm^1-pu;- z+8mpS*v@{pYkj<~bzhw89~WHJZ_cx8T=Z(KHXh={pEb(SBaG@+GYov?>%U&^Jv)ap zYxSp|eH?JUpVdp>Ul`qExpKt7cYkK><$A)x_WC;jH;w~v#4i|y{hq8n|T z70Wkkr}oW9Px9r+m-DN5Oh?c{`uIA>z2 z(cMmG*u{v);jG;pXZN(&#b{v+c~oq53?AUzEf|#XLo(m3@1IO zo4&p0`TC8bX8g@04s@6`Ji@H!QzKl(y*=O@S&cx4|nZ{>! zjrZ#szxe;K7B}%`g$MiTn%cd4*6E^l+?pe;X6?kYr!(x%oA;?td~hvJ-SX6`kGmet zBEKAXvsSGz{rAgn*2K)(Pp&mCX4ik;)PFjvZ7oKPS%b@OAGRk=i;*J+t~sZjK4>y) z{LP4_eCcKF9EKR@a%W9_cgdOfa_ZaDS$f6`w^N^DP7Hm@*AE@;8p=1D=7U!nIIE9) zUV6Y6FV^#UZ7%zApSal9yBLP+tmVh?^R=^%xbWw8W{(>jakEygwK>rVZawM$QBSk} z;?oN*ean5?^{k!w-|k+Vr&#M*!=rijF5|&JYifwM?zc%Zg8@&SS#z$BX74Gt-)r`1 z{JQHj;kTYOSaNy~+T(+lJq`cX+N_x^{%_&^KK%7V1J7#BuD|cQ^5czBM{o2v^P4x{ z`8Tz`>RVkk|I->A{XDJF0fu<~-lw_t>CyhwpO0?1wN|5;YP;8Ba8ScM==!`imwmZU zK4-HA_pIIB;1dIf>03?lX#s~%Ts2>h^RT-E_~M6W81mIR^_Hg|Txaf4J>K6LF)(Hg zPw{H-Rip2WTqdS7eAUKHjx}E~PrIJA?v8r)_{8lIS3SSQr#!sm)?b`n);DW!@)e_5Ng<`x#7`o7oEBdy$-dV)>IQ^VQ4+UD-;H)~<@pWhqj zv&Jumb#JAZQu`D{(k`fV<-!g<;CtX0!}g2ngfJ63M*vzp@7h-Y_s z)|X~@;OlJG#QS#852m?(w}#`a#m72*npx-J!Azgx;alrR9G!=z_XsUm+Oh^@7BbrHEXA4%?@6( zh9Q2|&e#vT7e}k}9csqsJyQ!F9i6jxYx3)pCMUjl^H*PtZ;8Ie#YaBhtkI1Y_HpmM z7oQetRJS-eYRq+JFXz-StY!=2+cmiT7QxNA{+#2~JiANvj}eM zn9DwO7wQjgck08jrbT_Kfd`+vu5Wv@jjvdGikY=Io*4LbuTQPTH&6OlH^Z|IEd9rK zcKx#EdFs{o;_Tth#~Hrr=%cx&i@IW%m}WJ*ZdUyr?vB%??^}JVtIn+9*q!%^l|J&Q`-&zI3*SSxoxCww^WbkeWEW zu9-!Bg!8<K{^pS5OK&-q{XOuRnS zC|51}zGKDXQqS(=Trr*Zed>R=^!c9S@v`=`Hfv(5Qy<;ibnd@sX|c;Q(LzOZ3b zi%h{@Wa&?PVm&W?;AF|<~LXPOw6qHp2wf>tX&^^SC3w> z`rcM+*7v%muIH>hn%T)YE#rwpJj<`YpYPf88vlubzZ|{y-aqYn*7)N|w@0(DKk=sq z*8ZJ@9KGLri@O?WTHk%|>5bQ{#ku+7efHbGw|4*d<>sR!->mh1=j;8_2W)X_Rd06v zZVes{aD3|*y6mb9FARJD~kif{oze!s?y~ub z=?sQ_@y%R4{Nxt@wCh>xKGVoP4)*$mMVIDQkItRJrI~fVN$HmM{N1Pe>pjqudgnbkb=ALf9BI@nXVp?`PELI4 z*CTy>cX3cdPi8)sz1t@rZRkL&u$v=o&R)`p&l(?f?N9#cee&ZAzxmqZJ8O8VN0(WX zn@0V!_n)j!OgzG&8K3`q+|Sqen|=6?zAO4x!)!eN_S&rVyXfPt(*n+0*l)eFw3#(? z=pBzMzq(@d)ZF6m<@#tcYjS+U;uUUnaTjyyE}ka(?wi-SS}^2T)8P@9r}fX8IlZn` zPu@A7*}eOw$7T*U?VRCqa&-UV5LUVUzL(z|;|?e6*>$-1_kR6$*J|Ocx7K3HPXpTN zkN*)*{%YeZmc`vWpw6tN&s*;eeDz?8@tfy)Z7%zApUoUTfA^N3$(yylnXv3XthJWY zozf?NGfpFZ7I)gaGwRCKi#~s|CT`Z6kF{RJ=Cd~|{Z%v0@iKGR&4YHm7vVguZ`L05 z7r!(VhbJEQe)8)<@3`PmFa4Ir0VikX%!-RkXR~K&!?JER^1CCCc*_@Gk7-ATe9qI5 z-@YEy?Wk26%_e<~c#jBH+_@%+@+B{Ak&S?ur zO&Hw~d3<5%*O+c`km_;@4L?N(qG))!ntet7N(k~meu&M{&M0EvwF_Vyd{PnIJ0*0^KEbjuU?u9>{+8VjQ49e@i+Ts)}0HZdsYAS z=$sDsc$~!GU4QEJTNuZ%?|Q^d?+iCH?_H8RYp3>lfX|PM+TzX`e6{;x`YnbhdxZHH z>&K<{NpAC@8(wb zgg2~N^Ig*0U4wJR;^^Evrw&Z|TI;{~G{nDk_t!I@p8EG(v+I+inC7g{?vPsb3tu13 zW=-7dTDA0dzw@+cX0z*)WA)U=&3QWM4{q^l!he2Xvp)8V>j_spT=_p*o6BCV=c%2T zSrhL!sr>VIpB|je8cy9y+T@R?7=QERpT6^*;eWq2Yuzb6oWH%EYUq~^a>d)@GHYSC zFQ#{j|3_=`*`KY+pS2%)|HSuA=sSa>zGp2hnoa)KE5=h?zcs~+5s#nqr?pvY?$+l& zFWSFf!^QJ0tY#6OcpCPOsYQpMt-&$l^A6xsZtrpZ&|1!{!Lx?14|8sYvun8a`sx13 z@1A&uE8o0Nu6$vOg@ar9=G@%~r~T|1pZYk$vOm`}Xs-@zakF;L;JmNZ_Y~({Rpad4 zS^AwgAJ-qJdU#pitW`sN|Nh$@!AGp~YI@=w=h?Mb+R8ugeLR{ky!w80kK-G^?+(0v zb@9T_xjWz;gXdc?Yw?5=KfY?px26>{)Bd)d@wmd6wev2V_4&n#q0##_ zIb!Hgo!NCWu*OHMwf9WUIpeo@xDR6So;5YykJmMGQ%~*A&zi0A?GC`hg$8iqe%`UO z2Qw85L!M`~%*P#UPWmqf?yTt<=Xl2#H}&mj?d5vH=9hQgC%8-VTD@6c@9H@Ny`3@l z-f>m)d{@#b4b*c!YxuwubKX03#L+J9v=KLJ^3-vj-sve$E^TJ*!&-T;)KN2BYdG#> zYtOWD7I(9!8w~m8efF%jZ}jWhti{c`?}_+xZn$~h@_*cQwP)962@elXxy=<%dDT1T zG3!6;<4u?RdWgq~apt7CK2Oc{u6A=v>zDP-npm~cPMp1(v&OFn7;>API9z7!Lqy z-^ra^Xn;$#9_7pRjk$Bi3D&IX8RvfQz)Pdvi<4J+ow&V|&8nXDug`Qo^?AgXZ`R6h zuKDe8>rSh8;@CGATH~rVJ*~r=U01`pb89`Pt2NB}hn<#i&wJ?1d(q54+ck~TcXoZ| zcc*BgAGmm^7tgcy*&DsnH0|&G-D}rx*s~ZfYn~^@{rjeFzf00ZAJ1!gJ?-7@{f78r z?d!EK*S=Z%)3u+j%^KgY*3Nu+u<3c%bk^s*{`5hw`k7tR0#Ci^1y+5g)2z>3>C8S% zIWWU;hKKXtuIaZLv+J|Ad*<(veDi}}o%0NK_oz8{SLEQJjySVZZ`SA-PxtYx@z&jk z1!vZpCw}&4k8t(U9Za+5_1)(hhr9muq*vT<$7|MJ*XYPMYt?Q>Z)w`OT)1k(WcoN~ zSbz14pLfqp#Hmr8bd9svu=K9Zti4>%bTk)w=m#G;u;?Zy-K>2V=@1_?6Kn6;dtXdi z;c}1h-ifOZy{lDDz3bPR*jd9PZv6PqS~~oC*SLgJZ83alqUUr}mwjC8p3bh-;`h|M zCym6Y4eyNq+3v;AHvak+_q;ZjeYMXt?4M)Qf%Ut!z7wf$l z4=3!W_34{_&gJ7)ep>O(n%d69h2;#+tiiz9Ivm>b$(yy8>*+l0XV<+4;!kbf?Ora< z_|Q3Cvuic`X5%H+Z;02mS>qD}A9nhwp?BYKvGs=6kJe_bdi7MUGyOMn`PII^6EAx< zYjWM)_iJeqw^`p0!F$>`v9!>Wbr|XAjHwepJ&E_b=kqo5?!9(KhezME;`Cpg*|l2U z6`1_9_Vt>YYP*m6RRccjziIx-uJum~`QqWXrnz`LKV1HD<0D^8deH8Em+t(;;P>0L zv!5UBzIWi%By4=@OU+r+Kfc`y^S2h4uWt!`m|2{6L)}?BzY8?ui>rNo=sB(LI>^BX zKlN#+UU+&)AKdke>&XqKKGOR9_KS-r9N4pFcINnTP2D)C|A^zGJN8IlykX7SqZ~Rq z*8^Q<4Nmp#yQAOjI&Q`L9_o`0_0@e$!`ZVi^#WVJ>cy=&6=$D5aK!25?C0I?VZfrd zccs~c^R&KMlZUf49pIV8iC0c{vv0nb;+#FL&EeB~8o`xkZt!S<6F;u{SJ!^ls%fo8 z9Q9;PZ+Yc(r+&7+FuFVT*0WZRa{KLYpMQPe;2x?qYhSOa4U49D=|S)8c}>q>tijJ8 z#_!e_mKlXroqNyqVdnK9XV%1)uMQtRbTxBzoS)x=+5NqS_;8B%qzMe%;alU7Hv0aL zYqKUsZM}Qyop08zDP-n(s!v#QoG9 zrhGWF22&jFvxXy|o)|2>@XeZhKF_(H_VDtF?YoT6ti5$d>2TgrT;z+dXWYW(vsX`? z^|xzjJG<@<*HfIG(L!t*R>PToVLG2Rchg>e{@w>qzO(OU{xkLBI3t zY4@{cK7A)Y?m8awKVLJqX2{n&{qtSFU&Doe*21^$Zs2=zb%v8%eouLD#Lo4Ei3<*I zVc>OY7dO4i(LWq(acZd(?)eV8lkl9&7c*;TPk8sONf+^H&u1312K&6%ClBXvi*t8ioac95xZ|x(T6Qnep_thi{r+YRceQ8j<$Cs>tJl4OJ8O8sfej=7$%j7< z{LST$cO8fBpL4P4{q?S^i-$WRM;%rk&dyl;<;~jb8az+Edzy{7W~*=ha&ea5EbFKK zJn>M^nOHSCH$$2@$2%W=g~Mtw1H4^Ql@xg+X3XE@H99DZxD;WvYq_05|1EKK?8#j*Lo zDv$PXos~Dcu4nl)NZ;lp$635jerAlf-&E@K9^AF)Th^VhkJpL!h$GBmahWwW@$sCs z`}@XUPQ1jW8Gdq{!PKjNjxakK6sPvAb??Q|r~W$Q7xU+9`Z;ySQ@lFPPu|^eeDQJK zT}Y$u=Ug#n=d5#nIq+MH(HmZBcPIIpV{?~x*07gH2b_GLAAMh+)<0|YYz@adp$<;f zNV%O(8ex8Lp8hpZh=NmtzM=_>|q_u+ZhxU(g9I_nqn zNJrnbaKwGR7T&kJ)|c7g!pt4_V)$kauahTCe($Pv+{E?o6kjhtEa%T_bJ-v5(|I#d z=SSCBvzIe#X%7cJ|NUN=XY+yeDEIukBj3Nf((j3Xk9pejxnk13_mCcH(XT$#6^Ex9 zv!)+=YnnTkTMx5qzZ1lqe}}~UkoxdoHUGCbh&%gLPYv_yI{`;eXI;8}w}u;xSv&8y zdcFU0ozp{X`;WU8SI_x9#ib=KzRzd=$))=BC=Zu#XV>r7?sI%zpWc6;d-v|bss?WL z9j6cLixbYYQeW(>op%LJ_kdrXK4$F^=V}xyj$Ubf&a9ehh>NFqeaAyh9PV?j20m#! zyZ+SN)xt&mssEYN-za*}XV&DUnK`AIGkT^)J#|;Q-*D2g?;wosvwq#7GhaO%XYJG- zCT=)=yVg9?3#M;e9MW|zzg&3yv!-U;U|8e(yf&A;+b7-h-aDoKSv!vBEcC<=k6F)} zI@QIKp9XxNufgzql&iP+TGI$O{qXDWoGlDoXN`8<#q^QWx!C@eS=XOfxU+_%zS5&v zow=zbaNiPaPQc$~e^(7yb1htrIl_1`;wvFo|c!ncRx zTMkR^teJOwshPM^Njz)8eCe^ zNdBzpxqE;MPU?m`yRH{&XKYw*PXr!{zH zK5ICM!>5^g!fUUldgAhR-`c~0nJ(#fo;L$`4OW%_si#ius$>Q_O}2BdZzX4I$qXd z^+iiM)w}h{-7K7mm!HPphwq#&a%YX^d^F_qt^9bcad$RrdZ!VeIR59gx$OJiL2>2j z1N%mVOalWt^47L&;1>r_1*9683#K~ zX_Zd#)dQTD>xmPLSyT7CziD8W-FLBZS5N+2PZ~In_sK`k^qIB0Ue5UC$*~U`e&=bb zr)GyU6NBfh-8F*oDQ;=?>y3Mh_1Yb~&v7<}HsZcrgYl`}{;D&X#s9GOx~3=nr^{Ql z<0D5Oxb|-7*V;SKT|D1`S-<&xinqGmA!~TEMk{lGeR7=L!{noxczLt-NZ;<3e#M;c z#HoFKcoti(KHshRZPYy!Ll6Am^t)+xEtVfoPxs2->*uw(?CX6x(>u&r>)WHZbT_a1 zJ9~wlA5U1$i-Gxm4c4r^Tu)r(IoHEIuex-SFHZj_4?L^gx;|j)Qx5yZ+N|jp9)9MQ zHsaZj*5+EfFRyDjsILdPvqoEMIQn+hoZ{{->dTorFKe@gWBS;uVTNfHw|c`<48Nzk z@pcAZ?2p#;Dh_u(J;DBbO&?*>ACB``gV$O8ICo#pv-5j2SB`qteh=wQy;+k7!&)6$ zILD)V+JAGN^>r8Z12Y_azo3(dqIO?a_(B{1Bav%MT zz29?jII`w12G?18q;VSHE9SRrX=|UR*8J|s7i+YItBzi}kKv?EeDce~6PD+x@!#G3 zAFlnqHT{Q~Rxsr2iB|lyY{uqNo$%*~>8`}h*}XrU_}v5jHS6@$kGj=-+V!m6xyDOP zv%?FP{8`h-$Lr}#zh{5W@a$VMyFPpRefhzz_MNLUd^^{7zctbaUnchK11EQa9_G?) z;K7+S7<914J1yZj)4Mw_CJxn|^__jod4I(Ab6lL^Fl&4`$}8ub;Tgw2Yih!^ zZVqs*J>wK#HO^eMX07-z(oZam>iAaBA^+^!-yArnF6D+V_4TC*?b z!}`*yvr{YQ=?TMJoV%Cu@O@gFHD~zJ;?z_=o#Lv`_=|N0$GZOb!WGNU$Kvijsz*al z_2G05FYfViW({Z7+*i4{@ySoHJ=w&+DJdzS?Iz z`Mz1hM?P+H;-TId`{nNSeQIIv>Ef7Y7a^EY=GVrGqA>NvmW;wp##ejl98TIb<(5Bl5Q9gL40YaD3c z-+j$me9ZCW3eQ>jah>(yAijS`UX1uS*K_)GPiAAz_c>1W^;gm8WwGHmtFtB@^^lJS zkG>0W!ynGMkE18v-aq|>0wVB99XkE>o@1>hB+HA*R$`g+QsXq8fGrv z?0T2eH$3tFJGcJLMl4$9q{oTM(9rkez*R!5{K03g37B4=0Jn41j`P;`|{OtO5 zt(lmWJ^Zxn-pQLay^GNoUs|YtYD)7t&QH!_?`JfC3j=>oIekacWY$;DYE)B>c-Fl2 zNrPFd559YEa??*N%(Sa7dCt0jG)p&r-+COKGx500+Ia`eKs_~>xN6X#{p|XTl|%1) zT|Aw^a8GF%*Xo8}PqQ)2Espiv`;o?-!-cO_eRpBeV{ zaKy(=9Gr6B?OLqabe6uo!*IpOYX)(g_4RkAG4u@Uie_m8Z18C#mpMs@x)t<_-Z%{*IN9nsf{0v^UH%lpW>SRtdGw5PaWK= z{3l;{`SorMJHF2KGHduc*Y~4)G3ytjKRN1$@9w0>iK%AyieE47XVDx^EKAc?AeXe-;XKwGYIp_(8S%XCf@%-skJbq%^%RhU`pSE$dmpf~G@xz%9 zw|x40Uc-a=E|lAykS8bHaGdkO=-tH6dAf;tUF+^S>u$r;`>d&J%@=OPtNsbg1@RzVp88wZA?3k*^LO=eKt*Uwt|gqo#Oy>cw$( z{j)VOYBXOxiF;a`HG4VM`qvMvS@TZC$G-cLE^1qg!3$0^D@HBnba38XIr}cRoKr8H z+|}1BUqA7M^&i(}O`TI$aor8)XFfh*(A=4t_3kWvPTgkx_{7r;s`>e@AN>y0xBm3t zT&*-w2hUlfrM0tJd%2$YsYfsTtntT#S&Nyqlbe2Ulc$cnW;46~dQCmtzFm_mUVZlH zJvs63cLN4|{dJGy^|C%Xz{R5;aTMP@!o}J1+FbU1JfE&OSoIS=zI?Nme(71BnmCDx zhZuOY?VfZG%u%26W{qa&O!(}}E0&K2;^P1xN9O$O`^(Ee`=k;6^5pn?qc7{~xQq61 zaI3$Q3ti+r%GbLyHO{}K-JSd2Hof3YkMiQw(YV_MP& z&+x>mV-|9}hhk?9e%d-`dcl3xUasd?`>bA^)kqJ$yB}(u+JuMatl>uM^ZuMViK%Dn z`yAYHHE7U%lh2R$)7q@zsmhBaT@?zPT$z!_6RUh~W6NrSkb^P-FU9w+?8 zdv*qw?|E%5`+A>oG&B8_D|RlQTCnZmxF>MM^Y>oCnzct7(xLm}sSezHuh$v|%>3fy z&h=EkyI_4{n1kH>c%J?KZ1?c-i?i5zRmWX@i;JG+7vC&qecg|Ei!)z*?z(@uzV1%< z^z6g^uMeD_)|!2I@U7MR{93~lJ8Nfu_Rh{;AN@|Kudv0dUr#vN&l)Y#*}j>3SD3k( zhd6n&h68MCIM%S8_m0LNo^yV^>s5Xn<*PrJuX_?#b@}9-Jy^f4g#%L@4s!V806)BY zeR21i-3N0|JGh^!^}OeE*-!SV&Z%pC(g4@a=rU_G@>DxM^~i4x(>hK0ij7;`#dUAR z`7Y4F9qUf1$#JdQ?R$^(+RW;y9)BNBvp8|JzGHn# z%kEzHT0Rc&tYN*brJ*>y)AM=PbJ@@KS>JbD@idlOkKVa>hhJS!Gnh4ZNuK#Om)UiF zTK7)(9yc>*-NovrEv)W|dN`WD9?O^W=pBQpA2a^2*1IDQSA6QF8vL^c)3@7sd|{>O z?7H4g&hpbG|D!lq-`87MYKC>6*&Oxs>E4PzdyTW_tlhPygR|GQc=6rqKd)~t`(~f# z9Qe~S-T7eB8!kNSxz_rp4Zr^Mc4{ZbJ&5nquJssK@y_Hozk8i>XJgdD8BaXaqEou4 z<=pB66;IN7IncZ*MLe60QZI#0Dc&l=ySkG_6ieV(p5=Ug6f z)RX@3ww^UP`fh*M@p;eYvTydOCwiXub#|Xdz7?kyY0j6v@)<0Cwe`?UVRR;c*5vZz zkE4BeMvV1|HM{SAh_yd|Kd71CGhN&>CigdMuxW&E8a2=I>m6q?<;(@Pq`WO(wyoi%-&vvyW&xiA@ivsQg;esR{1?o+>Y^~+$G&B>D< zc=fmASgbC{YPtG ztbM)q<=QuEf4cV5wORYs+L`D4`}$H(Kl(5WeC@wolUx6Ka2DRFA>H_4J?fRux%@D~ zkr6y|ISf?BjiE(7zvW21ib_3NtRVXU)8`;&CyTYB;Zdz4ODB-@6l5-<^1t zHye9uX>UHxt?`BBzVKIjc8#++I#YMns#9DX^&n0RongX0=L=69ta^`2duO=GHG}+o zu)6Pe9B1`W&2sNGd>?V`9ky1lcs%PRt)1(u81>DI4(h$Gotj&xnVk0Jhbu-te3on9pqcnwi$JY_|JQatC~2e-#xO|Z#v^UYo~7K ztm%YVSm*B$ zx&3y%-#7E3wfgt7bgV8O-3c1#MT{A_w=mS_i}Ta2XYGznzwg%QQs2H0@#ll%dB>Rb zo%c)(Qxn(TkCQK4^Xxs8@0=fpbN1g{epqK6J+SnUM~Cz7&F=fg;Bn@QuNN`Z#~m-) zGXA-(#o&MT)Vljj|G!F&-g~oQ`o!msPb+JJy3aJQ~6=lplvSs%?{ zS*KC+e7XG1K+MULhH9j{+1hva)s#DHuWLBP#d_9ol`nVJ#KX{U{qV(sX5pXQ<5l0{ z@vDyax;l8pyZ`P}-Ptp-_~1&DbeUcA!=WV%bv@1CFKeFSPCR@0_dNcmwOOOR_eNbkp1r;7e%922qo?p`!sje3dwx2cIMs0O zo5bLpJ=E|09Tpom*ww-n?ySMplk-`lJ8U!7yI4L?G5oWJBW(K1pEa0#*7~hS`GFDL!Zt)XRVmCr}`B4?V7W* zFFE#jSHIrHrfX-jKK10l!^ysxTR*SS;N6;YIL>h>Zg%ZVFU^cTX67A*|Fkx1bao~` zK6vxNo;B~2b9sFCyHk&8b=SV0aKX#o^S5i&q*3*HAMRSkSv`4lxYu%qf4Fg`C!O`B zmUBJL8eaM9;luiH?5>H0`@A-neYsDV_H;~#YBzu9@Z#-R9W|PfZ@HXVgNtVzyK6K$ zW8~8zt>E_m#|ws9v!;gG!%GJ^`tGdQuh$1xty4GgXYJ2+FQ>U#;{osE+N1k+#@~CC zhkvu^Zz%jUZQgN(kp^6p0b2e-Dp6CXn+Bo6piMJ;l=Qx^)wH$ZB-fa4B7;@FL|87m}^V(eY%|5F^uP~j* z4IV$e=X%!fTXPeymiWKF_Odo>#XHA~4%T9x)@Dte@XvX42c5lN^NyT7^Xpe#xOk^G z96mAC5!ZQK@q1m1SN@mv%^GfMTZ<8k7hHRFtY_`Ke_!uj9)91h!BM-O;&kSG>N{V& zS~$|-%gAIxjk;GFX*?!0sK5eq9_(g-IxcscXz zpSfVe@%+Af@1Jw@f7Z}HeNWEtW-VNEP*;sv>+d5TxW%dY_MMequOD_TUQD&zJDB{l z28(8CRo$oc%^IHlZ>7KQo`}aweLa8bj?A9>R-OHv+}(Axn?rYb)~BEH?5*XhJ!^95 ztxtY>r{D9gabth7Cbu~EZPw@^U!7U|6whYSy-^Qlxp9MoS97y}S@X>2ex>`JL-$|3 z`tkj)zPimlF3#}K>sM=kq(HuDDq{e{Y%( zpEI@Po_}BY;r@S(-9L+GS8~Sj+^?b(ZPIG2#eM;@WY`rWJTkU0Y&4NzaN>8|Y~-Fm zk(13_AGlvQT>7^?L2=KizfV0?_jdOL65e4cH;m1**s#yqURFHMy10g0O}<}N(mn6F z{r-N>v%-hJy3Kp`+zyESc79SFa?=Pcv0+F@+}{&2<0Tc4iwQ2Zmj+4V)@ zl)k&3U<^C`tf-?`*s7gRc<)fzkAZPBAo8s&N zY;17ShqD^&VZv4Rb6)D6wfNxf)SdP3{=L(%ho|~%a<%XHZx-c0cQ)Ou9}eVfwkLmj zSED^{M)exT`g~g7SxFzhW~PR7de7>$A18OcFLZogZ?Sr2o0WS_vo3eDY~JCOGt7^; z$HCX;n)Q`aE@yS))r{!t#W@_!1_x*V?&X4AE`8SP?Ah;S=GS{5#=YF|%t{ZKZmiZ2EsMww`?lil>YJYM5U;1S6mOOv81@-5o#Xjtf1i$M(E3mweb~INEO* z=y0b-n9do&ByTqUYV;nk*@g2v63?@G{`Xk=&nxY!8pZVQIr73aEB$TH?~GwP-)a8m zogKIKL4P=jgO@$eiuuax2?KlY4-DcxpI7w!%L)wq)Fb6=pV{mA%XMytXYXRvbf$M! z1HSfSuDe|En-Bl^s`j~$FsFw}|F2h!{O0dxZ~fl?y8&>7Ngw+Dc{*PvvmWBAT;E(ac9{OKqHh@FRpaby_Wr}AgFzlX z<$K<<-ao9w=X>vtS|{%IKwdSnJF}&iKi%vZ&a+p3`19nOEv)*T75CQ_-@bZgds>+l zdD|!UIE1Ah)#0c2c;;I#cIxbLE?fCvJAY2GhtpYpvr$8geLDLOYr0vx+Hd90w|Sp2 z&hW!qExJcBxIKSY;fDh;^)8R^k>@!tbFFXu&k9WO>n^t%;=&-0SnsHJ@;(Q(o2|L= zk6ZO{lKsvx-&xT=zxaSbt#q?zx#|D=627xiPCVGD`q4u^@X(9Ru8(-=n{4LQm_1it zuKRnDji3JN)m@#F7ryLrhwIKs_ugN=bm4W@WA9J#Rn7dh*K_ zpC=v|*!3Zg9^}pEtn(;dY%$M!o=e{QZu5&z{mTJ!Se)z8j9{@(o^Zl*VxGO9@0+{) ze4OK7Y4{IOM3``e+XQ zK3VVOZ2w`(_w2L%7uWw=<7LmY5)S8+b9qi4RE1jeLIWm``*7xobRn%`u=+u+J%1hnVWjyfm^*<`Dw-d zoa0~i{>PQ`--_^84F7W7-?Ld8Up?VL3_Nki*1pW1{Va9IH;ETD#JS^TR+^#y<>wR6 zXHGT0_Wk>2edSAL&jbhGt>9o*KCFbT{@h{4K{Krf_4&<;`JJ)O@RRhXk6QI5cfHA( zzo!|THJT6H)tEhtlOsOEeAXA^zZ3V*mptziCv%DSDBY<)cZKh-D{9$282X07NgqG6 z=l@#a|K~%V_B<>0@zYAXOZQJJF#h8TEOW^n8+^a4-~$G;`Jdz7?%GMa#jX~N+0J>u zVjgjN@+Jis}w_4Rm4_~?TjtBXwQE&A- zYtu_Sxyw;r+?W}AyTd|qtmxnD;1Q=Ey}0Z1+ZFrB2Ft9lpuHD--*uQymM%0V4jup-w5@qrWn17Q=h+{=+*ReZy)db zM=xIN?<;pc&UwStOyLzL|E!!gXF9pVclwqS*YLnx%!lg^J500kc_m((ry0Ji;Gq~f zyvw}@@$kI5x#ZvXsb0L$^OKKGj<|vk_tl;~)9FPGwO~BIA5VLqmGd2R|6zr%TG`^E zS=V!XluONcS6k0NuG9y7`8umHE8_G-H!JGt^R4eIJKuT_8-3pbd7oG4h@Rkr`>kDj zkE{Mob~avLuPb73uD53WY0tAl52OD1>4P6V9A@X4jc>fzA@^Cy4=?(SNByzQO0|no zBOKnlx4zkY&;7xno^S(~{OZ*!|2v;*@DmGHbEs!A;RoNP;dot{m2;QWI`8p{zv6q}*x;|{eA|gx zTi-i1+spc@Cw^kx_1#qtr0 z3-#Rp_j=Y#e7763cK+;ivm$5ru%7!v*L$G$^U7TEulvLUy?ijLDc`KzG2i)tJ0Cb6 z;XnE5+bMt8<3v6XGP3ZG^ z+4HPa+qrL^`mmoI|FU;I!6)Xe_d(5Y>8-zuo6XbeW(5X$;!|EVJ=yer?$hj@Kf8Y? zDi0j##m|cOtane{N3)cReO5lLR9k&L%u4TRescf5;;wErS?Fg%S z+2o0`$9=I~`>oXvnupD@99>f<%6?eGtmzxX&XGcy$b?RCaQc6#`$F?-gR`krEE z#a(awXC)u!c=BHJmw#5yzv?hl7%%hpc&wZ9+^i)0^)w@37c+`I}bH$ux6yr=cE3YehfTbL>=a&_|e!~`rrw?w})4?ph8qa%%oBXs=j`q_0^d~;u>{%Y%`kl3zcyHAb zbAI>S<&`7O&V77Q5TlArfkF1GqV>%$&i9Ka=pZ*zdLJbY#a7QKi2WzVysNBYiT zR6}k#Usw9~&gNLHIMVNXKP%5(e_ekVn|D2Ve$D$g>xX;0dB*gPgkNt@E3>K{I95r*b;fN!gyPJJ;^<)p{>=~B+&TDRGZ8**1zWdFdZC2!|7LMgmU#)tQ zgI{|s2fta72R8O{&z>LE&rdEj@NoXDp1q5OrTNg=m+tY>-n#RF2?qU?pY2f}>Z>KU zIOkb8dF&wQSKbq|xGyX5JbQjw z@f6=|+{M%Jg}d7H?QngmJ1aPYse3%|w*&I9h5u#GvtrlOW^3nW&#=e6cy_(bN_{nZ a@nYq6p6gjWf8VZuTQRS@|MTkp;r{`yJrThG diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt deleted file mode 100644 index a4fd629..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt +++ /dev/null @@ -1,510 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/4650/pg4650.txt --------- - - CANDIDE, - - ou - - L'OPTIMISME, - - TRADUIT DE L'ALLEMAND - - DE M. LE DOCTEUR RALPH, - - AVEC LES ADDITIONS - - QU'ON A TROUVÉES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT - - À MINDEN, L'AN DE GRÂCE 1759 - - 1759 - - - -CHAPITRE I. - -Comment Candide fut élevé dans un beau château, et comment il fut -chassé d'icelui. - -Il y avait en Vestphalie, dans le château de M. le baron de -Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné -les moeurs les plus douces. Sa physionomie annonçait son âme. -Il avait le jugement assez droit, avec l'esprit le plus simple; -c'est, je crois, pour cette raison qu'on le nommait Candide. Les -anciens domestiques de la maison soupçonnaient qu'il était fils -de la soeur de monsieur le baron et d'un bon et honnête -gentilhomme du voisinage, que cette demoiselle ne voulut jamais -épouser parce qu'il n'avait pu prouver que soixante et onze -quartiers, et que le reste de son arbre généalogique avait été -perdu par l'injure du temps. - -Monsieur le baron était un des plus puissants seigneurs de la -Westphalie, car son château avait une porte et des fenêtres. Sa -grande salle même était ornée d'une tapisserie. Tous les chiens -de ses basses-cours composaient une meute dans le besoin; ses -palefreniers étaient ses piqueurs; le vicaire du village était -son grand-aumônier. Ils l'appelaient tous monseigneur, et ils -riaient quand il fesait des contes. - -Madame la baronne, qui pesait environ trois cent cinquante -livres, s'attirait par là une très grande considération, et -fesait les honneurs de la maison avec une dignité qui la rendait -encore plus respectable. Sa fille Cunégonde, âgée de dix-sept -ans, était haute en couleur, fraîche, grasse, appétissante. Le -fils du baron paraissait en tout digne de son père. Le -précepteur Pangloss[1] était l'oracle de la maison, et le petit -Candide écoutait ses leçons avec toute la bonne foi de son âge et -de son caractère. - - [1] De _pan_, tout, et _glossa_, langue. B. - - -Pangloss enseignait la métaphysico-théologo-cosmolonigologie. Il -prouvait admirablement qu'il n'y a point d'effet sans cause, et -que, dans ce meilleur des mondes possibles, le château de -monseigneur le baron était le plus beau des châteaux, et madame -la meilleure des baronnes possibles. - -Il est démontré, disait-il, que les choses ne peuvent être -autrement; car tout étant fait pour une fin, tout est -nécessairement pour la meilleure fin. Remarquez bien que les nez -ont été faits pour porter des lunettes; aussi avons-nous des -lunettes[2]. Les jambes sont visiblement instituées pour être -chaussées, et nous avons des chausses. Les pierres ont été -formées pour être taillées et pour en faire des châteaux; aussi -monseigneur a un très beau château: le plus grand baron de la -province doit être le mieux logé; et les cochons étant faits pour -être mangés, nous mangeons du porc toute l'année: par conséquent, -ceux qui ont avancé que tout est bien ont dit une sottise; il -fallait dire que tout est au mieux. - - [2] Voyez tome XXVII, page 528; et dans les _Mélanges_, année - 1738, le chapitre XI de la troisième partie des _Éléments de la - philosophie de Newton_; et année 1768, le chapitre X des - _Singularités de la nature_. B. - - -Candide écoutait attentivement, et croyait innocemment; car il -trouvait mademoiselle Cunégonde extrêmement belle, quoiqu'il ne -prît jamais la hardiesse de le lui dire. Il concluait qu'après -le bonheur d'être né baron de Thunder-ten-tronckh, le second -degré de bonheur était d'être mademoiselle Cunégonde; le -troisième, de la voir tous les jours; et le quatrième, d'entendre -maître Pangloss, le plus grand philosophe de la province, et par -conséquent de toute la terre. - -Un jour Cunégonde, en se promenant auprès du château, dans le -petit bois qu'on appelait parc, vit entre des broussailles le -docteur Pangloss qui donnait une leçon de physique expérimentale -à la femme de chambre de sa mère, petite brune très jolie et très -docile. Comme mademoiselle Cunégonde avait beaucoup de -disposition pour les sciences, elle observa, sans souffler, les -expériences réitérées dont elle fut témoin; elle vit clairement -la raison suffisante du docteur, les effets et les causes, et -s'en retourna tout agitée, toute pensive, toute remplie du désir -d'être savante, songeant qu'elle pourrait bien être la raison -suffisante du jeune Candide, qui pouvait aussi être la sienne. - -Elle rencontra Candide en revenant au château, et rougit: Candide -rougit aussi . Elle lui dit bonjour d'une voix entrecoupée; et -Candide lui parla sans savoir ce qu'il disait. Le lendemain, -après le dîner, comme on sortait de table, Cunégonde et Candide -se trouvèrent derrière un paravent; Cunégonde laissa tomber son -mouchoir, Candide le ramassa; elle lui prit innocemment la main; -le jeune homme baisa innocemment la main de la jeune demoiselle -avec une vivacité, une sensibilité, une grâce toute particulière; -leurs bouches se rencontrèrent, leurs yeux s'enflammèrent, leurs -genoux tremblèrent, leurs mains s'égarèrent. M. le baron de -Thunder-ten-tronckh passa auprès du paravent, et voyant cette -cause et cet effet, chassa Candide du château à grands coups de -pied dans le derrière. Cunégonde s'évanouit: elle fut souffletée -par madame la baronne dès qu'elle fut revenue à elle-même; et -tout fut consterné dans le plus beau et le plus agréable des -châteaux possibles. - - - -CHAPITRE II - -Ce que devint Candide parmi les Bulgares. - - -Candide, chassé du paradis terrestre, marcha longtemps sans -savoir où, pleurant, levant les yeux au ciel, les tournant -souvent vers le plus beau des châteaux qui renfermait la plus -belle des baronnettes; il se coucha sans souper au milieu des -champs entre deux sillons; la neige tombait à gros flocons. -Candide, tout transi, se traîna le lendemain vers la ville -voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant -point d'argent, mourant de faim et de lassitude. Il s'arrêta -tristement à la porte d'un cabaret. Deux hommes habillés de bleu -le remarquèrent: Camarade, dit l'un, voilà un jeune homme très -bien fait, et qui a la taille requise; ils s'avancèrent vers -Candide et le prièrent à dîner très civilement.--Messieurs, leur -dit Candide avec une modestie charmante, vous me faites beaucoup -d'honneur, mais je n'ai pas de quoi payer mon écot.--Ah! -monsieur, lui dit un des bleus, les personnes de votre figure et -de votre mérite ne paient jamais rien: n'avez-vous pas cinq pieds -cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en -fesant la révérence.--Ah! monsieur, mettez-vous à table; non -seulement nous vous défraierons, mais nous ne souffrirons jamais -qu'un homme comme vous manque d'argent; les hommes ne sont faits -que pour se secourir les uns les autres.--Vous avez raison, dit -Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois -bien que tout est au mieux. On le prie d'accepter quelques écus, -il les prend et veut faire son billet; on n'en veut point, on se -met à table. N'aimez-vous pas tendrement?....--Oh! oui, -répond-il, j'aime tendrement mademoiselle Cunégonde.--Non, dit -l'un de ces messieurs, nous vous demandons si vous n'aimez pas -tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne -l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il -faut boire à sa santé.--Oh! très volontiers, messieurs. Et il -boit. C'en est assez, lui dit-on, vous voilà l'appui, le -soutien, le défenseur, le héros des Bulgares; votre fortune est -faite, et votre gloire est assurée. On lui met sur-le-champ les -fers aux pieds, et on le mène au régiment. On le fait tourner à -droite, à gauche, hausser la baguette, remettre la baguette, -coucher en joue, tirer, doubler le pas, et on lui donne trente -coups de bâton; le lendemain, il fait l'exercice un peu moins -mal, et il ne reçoit que vingt coups; le surlendemain, on ne lui -en donne que dix, et il est regardé par ses camarades comme un -prodige. - -Candide, tout stupéfait, ne démêlait pas encore trop bien comment -il était un héros. Il s'avisa un beau jour de printemps de -s'aller promener, marchant tout droit devant lui, croyant que -c'était un privilège de l'espèce humaine, comme de l'espèce -animale, de se servir de ses jambes à son plaisir. Il n'eut pas -fait deux lieues que voilà quatre autres héros de six pieds qui -l'atteignent, qui le lient, qui le mènent dans un cachot. On lui -demanda juridiquement ce qu'il aimait le mieux d'être fustigé -trente-six fois par tout le régiment, ou de recevoir à-la-fois -douze balles de plomb dans la cervelle. Il eut beau dire que les -volontés sont libres, et qu'il ne voulait ni l'un ni l'autre, il -fallut faire un choix; il se détermina, en vertu du don de Dieu -qu'on nomme _liberté_, à passer trente-six fois par les -baguettes; il essuya deux promenades. Le régiment était composé -de deux mille hommes; cela lui composa quatre mille coups de -baguette, qui, depuis la nuque du cou jusqu'au cul, lui -découvrirent les muscles et les nerfs. Comme on allait procéder -à la troisième course, Candide, n'en pouvant plus, demanda en -grâce qu'on voulût bien avoir la bonté de lui casser la tête; il -obtint cette faveur; on lui bande les yeux; on le fait mettre à -genoux. Le roi des Bulgares passe dans ce moment, s'informe du -crime du patient; et comme ce roi avait un grand génie, il -comprit, par tout ce qu'il apprit de Candide, que c'était un -jeune métaphysicien fort ignorant des choses de ce monde, et il -lui accorda sa grâce avec une clémence qui sera louée dans tous -les journaux et dans tous les siècles. Un brave chirurgien -guérit Candide en trois semaines avec les émollients enseignés -par Dioscoride. Il avait déjà un peu de peau et pouvait marcher, -quand le roi des Bulgares livra bataille au roi des Abares. - - - -CHAPITRE III. - -Comment Candide se sauva d'entre les Bulgares, et ce qu'il -devint. - - -Rien n'était si beau, si leste, si brillant, si bien ordonné que -les deux armées. Les trompettes, les fifres, les hautbois, les -tambours, les canons; formaient une harmonie telle qu'il n'y en -eut jamais en enfer. Les canons renversèrent d'abord à peu près -six mille hommes de chaque côté; ensuite la mousqueterie ôta du -meilleur des mondes environ neuf à dix mille coquins qui en -infectaient la surface. La baïonnette fut aussi la raison -suffisante de la mort de quelques milliers d'hommes. Le tout -pouvait bien se monter à une trentaine de mille âmes. Candide, -qui tremblait comme un philosophe, se cacha du mieux qu'il put -pendant cette boucherie héroïque. - -Enfin, tandis que les deux rois fesaient chanter des _Te Deum_, -chacun dans son camp, il prit le parti d'aller raisonner ailleurs -des effets et des causes. Il passa par-dessus des tas de morts -et de mourants, et gagna d'abord un village voisin; il était en -cendres: c'était un village abare que les Bulgares avaient brûlé, -selon les lois du droit public. Ici des vieillards criblés de -coups regardaient mourir leurs femmes égorgées, qui tenaient -leurs enfants à leurs mamelles sanglantes; là des filles -éventrées après avoir assouvi les besoins naturels de quelques -héros, rendaient les derniers soupirs; d'autres à demi brûlées -criaient qu'on achevât de leur donner la mort. Des cervelles -étaient répandues sur la terre à côté de bras et de jambes -coupés. - -Candide s'enfuit au plus vite dans un autre village: il -appartenait à des Bulgares, et les héros abares l'avaient traité -de même. Candide, toujours marchant sur des membres palpitants -ou à travers des ruines, arriva enfin hors du théâtre de la -guerre, portant quelques petites provisions dans son bissac, et -n'oubliant jamais mademoiselle Cunégonde. Ses provisions lui -manquèrent quand il fut en Hollande; mais ayant entendu dire que -tout le monde était riche dans ce pays-là, et qu'on y était -chrétien, il ne douta pas qu'on ne le traitât aussi bien qu'il -l'avait été dans le château de M. le baron, avant qu'il en eût -été chassé pour les beaux yeux de mademoiselle Cunégonde. - -Il demanda l'aumône à plusieurs graves personnages, qui lui -répondirent tous que, s'il continuait à faire ce métier, on -l'enfermerait dans une maison de correction pour lui apprendre à -vivre. - -Il s'adressa ensuite à un homme qui venait de parler tout seul -une heure de suite sur la charité dans une grande assemblée. Cet -orateur le regardant de travers lui dit: Que venez-vous faire -ici? y êtes-vous pour la bonne cause? Il n'y a point d'effet sans -cause, répondit modestement Candide; tout est enchaîné -nécessairement et arrangé pour le mieux. Il a fallu que je fusse -chassé d'auprès de mademoiselle Cunégonde, que j'aie passé par -les baguettes, et il faut que je demande mon pain, jusqu'à ce que -je puisse en gagner; tout cela ne pouvait être autrement. Mon -ami, lui dit l'orateur, croyez-vous que le pape soit -l'antechrist? Je ne l'avais pas encore entendu dire, répondit -Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque -de pain. Tu ne mérites pas d'en manger, dit l'autre: va, coquin, -va, misérable, ne m'approche de ta vie. La femme de l'orateur -ayant mis la tête à la fenêtre, et avisant un homme qui doutait -que le pape fût antechrist, lui répandit sur le chef un -plein..... O ciel! à quel excès se porte le zèle de la religion -dans les dames! - -Un homme qui n'avait point été baptisé, un bon anabaptiste, nommé -Jacques, vit la manière cruelle et ignominieuse dont on traitait -ainsi un de ses frères, un être à deux pieds sans plumes, qui -avait une âme; il l'amena chez lui, le nettoya, lui donna du pain -et de la bière, lui fit présent de deux florins, et voulut même -lui apprendre à travailler dans ses manufactures aux étoffes de -Perse qu'on fabrique en Hollande. Candide se prosternant presque -devant lui, s'écriait: Maître Pangloss me l'avait bien dit que -tout est au mieux dans ce monde, car je suis infiniment plus -touché de votre extrême générosité que de la dureté de ce -monsieur à manteau noir, et de madame son épouse. - -Le lendemain, en se promenant, il rencontra un gueux tout couvert -de pustules, les yeux morts, le bout du nez rongé, la bouche de -travers, les dents noires, et parlant de la gorge, tourmenté -d'une toux violente, et crachant une dent à chaque effort. - - - -CHAPITRE IV. - -Comment Candide rencontra son ancien maître de philosophie, le -docteur Pangloss, et ce qui en advint. - - -Candide, plus ému encore de compassion que d'horreur, donna à cet -épouvantable gueux les deux florins qu'il avait reçus de son -honnête anabaptiste Jacques. Le fantôme le regarda fixement, -versa des larmes, et sauta à son cou. Candide effrayé recule. -Hélas! dit le misérable à l'autre misérable, ne reconnaissez-vous -plus votre cher Pangloss? Qu'entends-je? vous, mon cher maître! -vous, dans cet état horrible! quel malheur vous est-il donc -arrivé? pourquoi n'êtes-vous plus dans le plus beau des châteaux? -qu'est devenue mademoiselle Cunégonde, la perle des filles, le -chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss. -Aussitôt Candide le mena dans l'étable de l'anabaptiste, où il -lui fit manger un peu de pain; et quand Pangloss fut refait: Eh -bien! lui dit-il, Cunégonde? Elle est morte, reprit l'autre. -Candide s'évanouit à ce mot: son ami rappela ses sens avec un peu -de mauvais vinaigre qui se trouva par hasard dans l'étable. -Candide rouvre les yeux. Cunégonde est morte! Ah! meilleur des -mondes, où êtes-vous? Mais de quelle maladie est-elle morte? ne -serait-ce point de m'avoir vu chasser du beau château de monsieur -son père à grands coups de pied? Non, dit Pangloss, elle a été -éventrée par des soldats bulgares, après avoir été violée autant -qu'on peut l'être; ils ont cassé la tête à monsieur le baron qui -voulait la défendre; madame la baronne a été coupée en morceaux; -mon pauvre pupille traité précisément comme sa soeur; et quant au -château, il n'est pas resté pierre sur pierre, pas une grange, -pas un mouton, pas un canard, pas un arbre; mais nous avons été -bien vengés, car les Abares en ont fait autant dans une baronnie -voisine qui appartenait à un seigneur bulgare. - -A ce discours, Candide s'évanouit encore; mais revenu à soi, et -ayant dit tout ce qu'il devait dire, il s'enquit de la cause et -de l'effet, et de la raison suffisante qui avait mis Pangloss -dans un si piteux état. Hélas! dit l'autre, c'est l'amour: -l'amour, le consolateur du genre humain, le conservateur de -l'univers, l'âme de tous les êtres sensibles, le tendre amour. -Hélas! dit Candide, je l'ai connu cet amour, ce souverain des -coeurs, cette âme de notre âme; il ne m'a jamais valu qu'un -baiser et vingt coups de pied au cul. Comment cette belle cause -a-t-elle pu produire en vous un effet si abominable? - -Pangloss répondit en ces termes: O mon cher Candide! vous avez -connu Paquette, cette jolie suivante de notre auguste baronne: -j'ai goûté dans ses bras les délices du paradis, qui ont produit -ces tourments d'enfer dont vous me voyez dévoré; elle en était -infectée, elle en est peut-être morte. Paquette tenait ce -présent d'un cordelier très savant qui avait remonté à la source, -car il l'avait eu d'une vieille comtesse, qui l'avait reçu d'un -capitaine de cavalerie, qui le devait à une marquise, qui le -tenait d'un page, qui l'avait reçu d'un jésuite, qui, étant -novice, l'avait eu en droite ligne d'un des compagnons de -Christophe Colomb. Pour moi, je ne le donnerai à personne, car -je me meurs. - -O Pangloss! s'écria Candide, voilà une étrange généalogie! -n'est-ce pas le diable qui en fut la souche? Point du tout, -répliqua ce grand homme; c'était une chose indispensable dans le -meilleur des mondes, un ingrédient nécessaire; car si Colomb -n'avait pas attrapé dans une île de l'Amérique cette maladie[1] -qui empoisonne la source de la génération, qui souvent même -empêche la génération, et qui est évidemment l'opposé du grand -but de la nature, nous n'aurions ni le chocolat ni la cochenille; -il faut encore observer que jusqu'aujourd'hui, dans notre -continent, cette maladie nous est particulière, comme la -controverse. Les Turcs, les Indiens, les Persans, les Chinois, -les Siamois, les Japonais, ne la connaissent pas encore; mais il -y a une raison suffisante pour qu'ils la connaissent à leur tour -dans quelques siècles. En attendant elle a fait un merveilleux -progrès parmi nous, et surtout dans ces grandes armées composées -d'honnêtes stipendiaires bien élevés, qui décident du destin des -états; on peut assurer que, quand trente mille hommes combattent -en bataille rangée contre des troupes égales en nombre, il y a -environ vingt mille vérolés de chaque côté. - - [1] Voyez tome XXXI, page 7. B. - - -Voilà qui est admirable, dit Candide; mais il faut vous faire -guérir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou, -mon ami, et dans toute l'étendue de ce globe on ne peut ni se -faire saigner, ni prendre un lavement sans payer, ou sans qu'il y -ait quelqu'un qui paie pour nous. - -Ce dernier discours détermina Candide; il alla se jeter aux pieds -de son charitable anabaptiste Jacques, et lui fit une peinture si -touchante de l'état où son ami était réduit, que le bon-homme -n'hésita pas à recueillir le docteur Pangloss; il le fit guérir à -ses dépens. Pangloss, dans la cure, ne perdit qu'un oeil et une -oreille. Il écrivait bien, et savait parfaitement -l'arithmétique. L'anabaptiste Jacques en fit son teneur de -livres. Au bout de deux mois, étant obligé d'aller à Lisbonne -pour les affaires de son commerce, il mena dans son vaisseau ses -deux philosophes. Pangloss lui expliqua comment tout était on ne -peut mieux. Jacques n'était pas de cet avis. Il faut bien, -disait-il, que les hommes aient un peu corrompu la nature, car -ils ne sont point nés loups, et ils sont devenus loups. Dieu ne -leur a donné ni canons de vingt-quatre, ni baïonnettes, et ils se -sont fait des baïonnettes et des canons pour se détruire. Je -pourrais mettre en ligne de compte les banqueroutes, et la -justice qui s'empare des biens des banqueroutiers pour en -frustrer les créanciers. Tout cela était indispensable, -répliquait le docteur borgne, et les malheurs particuliers font -le bien général; de sorte que plus il y a de malheurs -particuliers, et plus tout est bien. Tandis qu'il raisonnait, -l'air s'obscurcit, les vents soufflèrent des quatre coins du -monde, et le vaisseau fut assailli de la plus horrible tempête, à -la vue du port de Lisbonne. - - -CHAPITRE V. - -Tempête, naufrage, tremblement de terre, et ce qui advint du -docteur Pangloss, de Candide, et de l'anabaptiste Jacques. - -La moitié des passagers affaiblis, expirants de ces angoisses -inconcevables que le roulis d'un vaisseau porte dans les nerfs et -dans toutes les humeurs du corps agitées en sens contraires, -n'avait pas même la force de s'inquiéter du danger. L'autre -moitié jetait des cris et fesait des prières; les voiles étaient -déchirées, les mâts brisés, le vaisseau entr'ouvert. Travaillait -qui pouvait, personne ne s'entendait, personne ne commandait. -L'anabaptiste aidait un peu à la manoeuvre; il était sur le -tillac; un matelot furieux le frappe rudement et l'étend sur les -planches; mais du coup qu'il lui donna, il eut lui-même une si -violente secousse, qu'il tomba hors du vaisseau, la tête la -première. Il restait suspendu et accroché à une partie de mât -rompu. Le bon Jacques court à son secours, l'aide à remonter, et -de l'effort qu'il fait, il est précipité dans la mer à la vue du -matelot, qui le laissa périr sans daigner seulement le regarder. -Candide approche, voit son bienfaiteur qui reparaît un moment, et -qui est englouti pour jamais. Il veut se jeter après lui dans la -mer: le philosophe Pangloss l'en empêche, en lui prouvant que la -rade de Lisbonne avait été formée exprès pour que cet anabaptiste -s'y noyât. Tandis qu'il le prouvait _à priori_, le vaisseau -s'entr'ouvre, tout périt à la réserve de Pangloss, de Candide, et -de ce brutal de matelot qui avait noyé le vertueux anabaptiste; -le coquin nagea heureusement jusqu'au rivage, où Pangloss et -Candide furent portés sur une planche. - -Quand ils furent revenus un peu à eux, ils marchèrent vers -Lisbonne; il leur restait quelque argent, avec lequel ils -espéraient se sauver de la faim après avoir échappé à la tempête. - -A peine ont-ils mis le pied dans la ville, en pleurant la mort de -leur bienfaiteur, qu'ils sentent la terre trembler sous leurs -pas[1]; la mer s'élève en bouillonnant dans le port, et brise les -vaisseaux qui sont à l'ancre. Des tourbillons de flammes et de -cendres couvrent les rues et les places publiques; les maisons -s'écroulent, les toits sont renversés sur les fondements, et les -fondements se dispersent; trente mille habitants de tout âge et -de tout sexe sont écrasés sous des ruines. Le matelot disait en -sifflant et en jurant: il y aura quelque chose à gagner ici. -Quelle peut être la raison suffisante de ce phénomène? disait -Pangloss. Voici le dernier jour du monde! s'écriait Candide. -Le matelot court incontinent au milieu des débris, affronte la -mort pour trouver de l'argent, en trouve, s'en empare, s'enivre, -et ayant cuvé son vin, achète les faveurs de la première fille de -bonne volonté qu'il rencontre sur les ruines des maisons -détruites, et au milieu des mourants et des morts. Pangloss le -tirait cependant par la manche: Mon ami, lui disait-il, cela -n'est pas bien, vous manquez à la raison universelle, vous prenez -mal votre temps. Tête et sang, répondit l'autre, je suis matelot -et né à Batavia; j'ai marché quatre fois sur le crucifix dans -quatre voyages au Japon[2]; tu as bien trouvé ton homme avec ta -raison universelle! - - - [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755. - B. - - [2] Voyez tome XVIII, page 470. B. - - -Quelques éclats de pierre avaient blessé Candide; il était étendu -dans la rue et couvert de débris. Il disait à Pangloss: Hélas! -procure-moi un peu de vin et d'huile; je me meurs. Ce -tremblement de terre n'est pas une chose nouvelle, répondit -Pangloss; la ville de Lima éprouva les mêmes secousses en -Amérique l'année passée; mêmes causes, mêmes effets; il y a -certainement une traînée de soufre sous terre depuis Lima jusqu'à -Lisbonne. Rien n'est plus probable, dit Candide; mais, pour -Dieu, un peu d'huile et de vin. Comment probable? répliqua le -philosophe, je soutiens que la chose est démontrée. Candide -perdit connaissance, et Pangloss lui apporta un peu d'eau d'une -fontaine voisine. - -Le lendemain, ayant trouvé quelques provisions de bouche en se -glissant à travers des décombres, ils réparèrent un peu leurs -forces. Ensuite ils travaillèrent comme les autres à soulager -les habitants échappés à la mort. Quelques citoyens, secourus -par eux, leur donnèrent un aussi bon dîner qu'on le pouvait dans -un tel désastre: il est vrai que le repas était triste; les -convives arrosaient leur pain de leurs larmes; mais Pangloss les -consola, en les assurant que les choses ne pouvaient être -autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car -s'il y a un volcan à Lisbonne, il ne pouvait être ailleurs; car -il est impossible que les choses ne soient pas où elles sont, car -tout est bien. - -Un petit homme noir, familier de l'inquisition, lequel était à -côté de lui, prit poliment la parole et dit: Apparemment que -monsieur ne croit pas au péché originel; car si tout est au -mieux, il n'y a donc eu ni chute ni punition. - -Je demande très humblement pardon à votre excellence, répondit -Pangloss encore plus poliment, car la chute de l'homme et la -malédiction entraient nécessairement dans le meilleur des mondes -possibles. Monsieur ne croit donc pas à la liberté? dit le -familier. Votre excellence m'excusera, dit Pangloss; la liberté -peut subsister avec la nécessité absolue; car il était nécessaire -que nous fussions libres; car enfin la volonté déterminée...... -Pangloss était au milieu de sa phrase, quand Je familier fit un -signe de tête à son estafier qui lui servait à boire du vin de -Porto ou d'Oporto. diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt b/vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt deleted file mode 100644 index 1f8f9ea..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt +++ /dev/null @@ -1,510 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/4650/pg4650.txt --------- - - CANDIDE, - - ou - - L'OPTIMISME, - - TRADUIT DE L'ALLEMAND - - DE M. LE DOCTEUR RALPH, - - AVEC LES ADDITIONS - - QU'ON A TROUVES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT - - MINDEN, L'AN DE GRCE 1759 - - 1759 - - - -CHAPITRE I. - -Comment Candide fut lev dans un beau chteau, et comment il fut -chass d'icelui. - -Il y avait en Vestphalie, dans le chteau de M. le baron de -Thunder-ten-tronckh, un jeune garon qui la nature avait donn -les moeurs les plus douces. Sa physionomie annonait son me. -Il avait le jugement assez droit, avec l'esprit le plus simple; -c'est, je crois, pour cette raison qu'on le nommait Candide. Les -anciens domestiques de la maison souponnaient qu'il tait fils -de la soeur de monsieur le baron et d'un bon et honnte -gentilhomme du voisinage, que cette demoiselle ne voulut jamais -pouser parce qu'il n'avait pu prouver que soixante et onze -quartiers, et que le reste de son arbre gnalogique avait t -perdu par l'injure du temps. - -Monsieur le baron tait un des plus puissants seigneurs de la -Westphalie, car son chteau avait une porte et des fentres. Sa -grande salle mme tait orne d'une tapisserie. Tous les chiens -de ses basses-cours composaient une meute dans le besoin; ses -palefreniers taient ses piqueurs; le vicaire du village tait -son grand-aumnier. Ils l'appelaient tous monseigneur, et ils -riaient quand il fesait des contes. - -Madame la baronne, qui pesait environ trois cent cinquante -livres, s'attirait par l une trs grande considration, et -fesait les honneurs de la maison avec une dignit qui la rendait -encore plus respectable. Sa fille Cungonde, ge de dix-sept -ans, tait haute en couleur, frache, grasse, apptissante. Le -fils du baron paraissait en tout digne de son pre. Le -prcepteur Pangloss[1] tait l'oracle de la maison, et le petit -Candide coutait ses leons avec toute la bonne foi de son ge et -de son caractre. - - [1] De _pan_, tout, et _glossa_, langue. B. - - -Pangloss enseignait la mtaphysico-thologo-cosmolonigologie. Il -prouvait admirablement qu'il n'y a point d'effet sans cause, et -que, dans ce meilleur des mondes possibles, le chteau de -monseigneur le baron tait le plus beau des chteaux, et madame -la meilleure des baronnes possibles. - -Il est dmontr, disait-il, que les choses ne peuvent tre -autrement; car tout tant fait pour une fin, tout est -ncessairement pour la meilleure fin. Remarquez bien que les nez -ont t faits pour porter des lunettes; aussi avons-nous des -lunettes[2]. Les jambes sont visiblement institues pour tre -chausses, et nous avons des chausses. Les pierres ont t -formes pour tre tailles et pour en faire des chteaux; aussi -monseigneur a un trs beau chteau: le plus grand baron de la -province doit tre le mieux log; et les cochons tant faits pour -tre mangs, nous mangeons du porc toute l'anne: par consquent, -ceux qui ont avanc que tout est bien ont dit une sottise; il -fallait dire que tout est au mieux. - - [2] Voyez tome XXVII, page 528; et dans les _Mlanges_, anne - 1738, le chapitre XI de la troisime partie des _lments de la - philosophie de Newton_; et anne 1768, le chapitre X des - _Singularits de la nature_. B. - - -Candide coutait attentivement, et croyait innocemment; car il -trouvait mademoiselle Cungonde extrmement belle, quoiqu'il ne -prt jamais la hardiesse de le lui dire. Il concluait qu'aprs -le bonheur d'tre n baron de Thunder-ten-tronckh, le second -degr de bonheur tait d'tre mademoiselle Cungonde; le -troisime, de la voir tous les jours; et le quatrime, d'entendre -matre Pangloss, le plus grand philosophe de la province, et par -consquent de toute la terre. - -Un jour Cungonde, en se promenant auprs du chteau, dans le -petit bois qu'on appelait parc, vit entre des broussailles le -docteur Pangloss qui donnait une leon de physique exprimentale - la femme de chambre de sa mre, petite brune trs jolie et trs -docile. Comme mademoiselle Cungonde avait beaucoup de -disposition pour les sciences, elle observa, sans souffler, les -expriences ritres dont elle fut tmoin; elle vit clairement -la raison suffisante du docteur, les effets et les causes, et -s'en retourna tout agite, toute pensive, toute remplie du dsir -d'tre savante, songeant qu'elle pourrait bien tre la raison -suffisante du jeune Candide, qui pouvait aussi tre la sienne. - -Elle rencontra Candide en revenant au chteau, et rougit: Candide -rougit aussi . Elle lui dit bonjour d'une voix entrecoupe; et -Candide lui parla sans savoir ce qu'il disait. Le lendemain, -aprs le dner, comme on sortait de table, Cungonde et Candide -se trouvrent derrire un paravent; Cungonde laissa tomber son -mouchoir, Candide le ramassa; elle lui prit innocemment la main; -le jeune homme baisa innocemment la main de la jeune demoiselle -avec une vivacit, une sensibilit, une grce toute particulire; -leurs bouches se rencontrrent, leurs yeux s'enflammrent, leurs -genoux tremblrent, leurs mains s'garrent. M. le baron de -Thunder-ten-tronckh passa auprs du paravent, et voyant cette -cause et cet effet, chassa Candide du chteau grands coups de -pied dans le derrire. Cungonde s'vanouit: elle fut soufflete -par madame la baronne ds qu'elle fut revenue elle-mme; et -tout fut constern dans le plus beau et le plus agrable des -chteaux possibles. - - - -CHAPITRE II - -Ce que devint Candide parmi les Bulgares. - - -Candide, chass du paradis terrestre, marcha longtemps sans -savoir o, pleurant, levant les yeux au ciel, les tournant -souvent vers le plus beau des chteaux qui renfermait la plus -belle des baronnettes; il se coucha sans souper au milieu des -champs entre deux sillons; la neige tombait gros flocons. -Candide, tout transi, se trana le lendemain vers la ville -voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant -point d'argent, mourant de faim et de lassitude. Il s'arrta -tristement la porte d'un cabaret. Deux hommes habills de bleu -le remarqurent: Camarade, dit l'un, voil un jeune homme trs -bien fait, et qui a la taille requise; ils s'avancrent vers -Candide et le prirent dner trs civilement.--Messieurs, leur -dit Candide avec une modestie charmante, vous me faites beaucoup -d'honneur, mais je n'ai pas de quoi payer mon cot.--Ah! -monsieur, lui dit un des bleus, les personnes de votre figure et -de votre mrite ne paient jamais rien: n'avez-vous pas cinq pieds -cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en -fesant la rvrence.--Ah! monsieur, mettez-vous table; non -seulement nous vous dfraierons, mais nous ne souffrirons jamais -qu'un homme comme vous manque d'argent; les hommes ne sont faits -que pour se secourir les uns les autres.--Vous avez raison, dit -Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois -bien que tout est au mieux. On le prie d'accepter quelques cus, -il les prend et veut faire son billet; on n'en veut point, on se -met table. N'aimez-vous pas tendrement?....--Oh! oui, -rpond-il, j'aime tendrement mademoiselle Cungonde.--Non, dit -l'un de ces messieurs, nous vous demandons si vous n'aimez pas -tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne -l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il -faut boire sa sant.--Oh! trs volontiers, messieurs. Et il -boit. C'en est assez, lui dit-on, vous voil l'appui, le -soutien, le dfenseur, le hros des Bulgares; votre fortune est -faite, et votre gloire est assure. On lui met sur-le-champ les -fers aux pieds, et on le mne au rgiment. On le fait tourner -droite, gauche, hausser la baguette, remettre la baguette, -coucher en joue, tirer, doubler le pas, et on lui donne trente -coups de bton; le lendemain, il fait l'exercice un peu moins -mal, et il ne reoit que vingt coups; le surlendemain, on ne lui -en donne que dix, et il est regard par ses camarades comme un -prodige. - -Candide, tout stupfait, ne dmlait pas encore trop bien comment -il tait un hros. Il s'avisa un beau jour de printemps de -s'aller promener, marchant tout droit devant lui, croyant que -c'tait un privilge de l'espce humaine, comme de l'espce -animale, de se servir de ses jambes son plaisir. Il n'eut pas -fait deux lieues que voil quatre autres hros de six pieds qui -l'atteignent, qui le lient, qui le mnent dans un cachot. On lui -demanda juridiquement ce qu'il aimait le mieux d'tre fustig -trente-six fois par tout le rgiment, ou de recevoir -la-fois -douze balles de plomb dans la cervelle. Il eut beau dire que les -volonts sont libres, et qu'il ne voulait ni l'un ni l'autre, il -fallut faire un choix; il se dtermina, en vertu du don de Dieu -qu'on nomme _libert_, passer trente-six fois par les -baguettes; il essuya deux promenades. Le rgiment tait compos -de deux mille hommes; cela lui composa quatre mille coups de -baguette, qui, depuis la nuque du cou jusqu'au cul, lui -dcouvrirent les muscles et les nerfs. Comme on allait procder - la troisime course, Candide, n'en pouvant plus, demanda en -grce qu'on voult bien avoir la bont de lui casser la tte; il -obtint cette faveur; on lui bande les yeux; on le fait mettre -genoux. Le roi des Bulgares passe dans ce moment, s'informe du -crime du patient; et comme ce roi avait un grand gnie, il -comprit, par tout ce qu'il apprit de Candide, que c'tait un -jeune mtaphysicien fort ignorant des choses de ce monde, et il -lui accorda sa grce avec une clmence qui sera loue dans tous -les journaux et dans tous les sicles. Un brave chirurgien -gurit Candide en trois semaines avec les mollients enseigns -par Dioscoride. Il avait dj un peu de peau et pouvait marcher, -quand le roi des Bulgares livra bataille au roi des Abares. - - - -CHAPITRE III. - -Comment Candide se sauva d'entre les Bulgares, et ce qu'il -devint. - - -Rien n'tait si beau, si leste, si brillant, si bien ordonn que -les deux armes. Les trompettes, les fifres, les hautbois, les -tambours, les canons; formaient une harmonie telle qu'il n'y en -eut jamais en enfer. Les canons renversrent d'abord peu prs -six mille hommes de chaque ct; ensuite la mousqueterie ta du -meilleur des mondes environ neuf dix mille coquins qui en -infectaient la surface. La baonnette fut aussi la raison -suffisante de la mort de quelques milliers d'hommes. Le tout -pouvait bien se monter une trentaine de mille mes. Candide, -qui tremblait comme un philosophe, se cacha du mieux qu'il put -pendant cette boucherie hroque. - -Enfin, tandis que les deux rois fesaient chanter des _Te Deum_, -chacun dans son camp, il prit le parti d'aller raisonner ailleurs -des effets et des causes. Il passa par-dessus des tas de morts -et de mourants, et gagna d'abord un village voisin; il tait en -cendres: c'tait un village abare que les Bulgares avaient brl, -selon les lois du droit public. Ici des vieillards cribls de -coups regardaient mourir leurs femmes gorges, qui tenaient -leurs enfants leurs mamelles sanglantes; l des filles -ventres aprs avoir assouvi les besoins naturels de quelques -hros, rendaient les derniers soupirs; d'autres demi brles -criaient qu'on achevt de leur donner la mort. Des cervelles -taient rpandues sur la terre ct de bras et de jambes -coups. - -Candide s'enfuit au plus vite dans un autre village: il -appartenait des Bulgares, et les hros abares l'avaient trait -de mme. Candide, toujours marchant sur des membres palpitants -ou travers des ruines, arriva enfin hors du thtre de la -guerre, portant quelques petites provisions dans son bissac, et -n'oubliant jamais mademoiselle Cungonde. Ses provisions lui -manqurent quand il fut en Hollande; mais ayant entendu dire que -tout le monde tait riche dans ce pays-l, et qu'on y tait -chrtien, il ne douta pas qu'on ne le traitt aussi bien qu'il -l'avait t dans le chteau de M. le baron, avant qu'il en et -t chass pour les beaux yeux de mademoiselle Cungonde. - -Il demanda l'aumne plusieurs graves personnages, qui lui -rpondirent tous que, s'il continuait faire ce mtier, on -l'enfermerait dans une maison de correction pour lui apprendre -vivre. - -Il s'adressa ensuite un homme qui venait de parler tout seul -une heure de suite sur la charit dans une grande assemble. Cet -orateur le regardant de travers lui dit: Que venez-vous faire -ici? y tes-vous pour la bonne cause? Il n'y a point d'effet sans -cause, rpondit modestement Candide; tout est enchan -ncessairement et arrang pour le mieux. Il a fallu que je fusse -chass d'auprs de mademoiselle Cungonde, que j'aie pass par -les baguettes, et il faut que je demande mon pain, jusqu' ce que -je puisse en gagner; tout cela ne pouvait tre autrement. Mon -ami, lui dit l'orateur, croyez-vous que le pape soit -l'antechrist? Je ne l'avais pas encore entendu dire, rpondit -Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque -de pain. Tu ne mrites pas d'en manger, dit l'autre: va, coquin, -va, misrable, ne m'approche de ta vie. La femme de l'orateur -ayant mis la tte la fentre, et avisant un homme qui doutait -que le pape ft antechrist, lui rpandit sur le chef un -plein..... O ciel! quel excs se porte le zle de la religion -dans les dames! - -Un homme qui n'avait point t baptis, un bon anabaptiste, nomm -Jacques, vit la manire cruelle et ignominieuse dont on traitait -ainsi un de ses frres, un tre deux pieds sans plumes, qui -avait une me; il l'amena chez lui, le nettoya, lui donna du pain -et de la bire, lui fit prsent de deux florins, et voulut mme -lui apprendre travailler dans ses manufactures aux toffes de -Perse qu'on fabrique en Hollande. Candide se prosternant presque -devant lui, s'criait: Matre Pangloss me l'avait bien dit que -tout est au mieux dans ce monde, car je suis infiniment plus -touch de votre extrme gnrosit que de la duret de ce -monsieur manteau noir, et de madame son pouse. - -Le lendemain, en se promenant, il rencontra un gueux tout couvert -de pustules, les yeux morts, le bout du nez rong, la bouche de -travers, les dents noires, et parlant de la gorge, tourment -d'une toux violente, et crachant une dent chaque effort. - - - -CHAPITRE IV. - -Comment Candide rencontra son ancien matre de philosophie, le -docteur Pangloss, et ce qui en advint. - - -Candide, plus mu encore de compassion que d'horreur, donna cet -pouvantable gueux les deux florins qu'il avait reus de son -honnte anabaptiste Jacques. Le fantme le regarda fixement, -versa des larmes, et sauta son cou. Candide effray recule. -Hlas! dit le misrable l'autre misrable, ne reconnaissez-vous -plus votre cher Pangloss? Qu'entends-je? vous, mon cher matre! -vous, dans cet tat horrible! quel malheur vous est-il donc -arriv? pourquoi n'tes-vous plus dans le plus beau des chteaux? -qu'est devenue mademoiselle Cungonde, la perle des filles, le -chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss. -Aussitt Candide le mena dans l'table de l'anabaptiste, o il -lui fit manger un peu de pain; et quand Pangloss fut refait: Eh -bien! lui dit-il, Cungonde? Elle est morte, reprit l'autre. -Candide s'vanouit ce mot: son ami rappela ses sens avec un peu -de mauvais vinaigre qui se trouva par hasard dans l'table. -Candide rouvre les yeux. Cungonde est morte! Ah! meilleur des -mondes, o tes-vous? Mais de quelle maladie est-elle morte? ne -serait-ce point de m'avoir vu chasser du beau chteau de monsieur -son pre grands coups de pied? Non, dit Pangloss, elle a t -ventre par des soldats bulgares, aprs avoir t viole autant -qu'on peut l'tre; ils ont cass la tte monsieur le baron qui -voulait la dfendre; madame la baronne a t coupe en morceaux; -mon pauvre pupille trait prcisment comme sa soeur; et quant au -chteau, il n'est pas rest pierre sur pierre, pas une grange, -pas un mouton, pas un canard, pas un arbre; mais nous avons t -bien vengs, car les Abares en ont fait autant dans une baronnie -voisine qui appartenait un seigneur bulgare. - -A ce discours, Candide s'vanouit encore; mais revenu soi, et -ayant dit tout ce qu'il devait dire, il s'enquit de la cause et -de l'effet, et de la raison suffisante qui avait mis Pangloss -dans un si piteux tat. Hlas! dit l'autre, c'est l'amour: -l'amour, le consolateur du genre humain, le conservateur de -l'univers, l'me de tous les tres sensibles, le tendre amour. -Hlas! dit Candide, je l'ai connu cet amour, ce souverain des -coeurs, cette me de notre me; il ne m'a jamais valu qu'un -baiser et vingt coups de pied au cul. Comment cette belle cause -a-t-elle pu produire en vous un effet si abominable? - -Pangloss rpondit en ces termes: O mon cher Candide! vous avez -connu Paquette, cette jolie suivante de notre auguste baronne: -j'ai got dans ses bras les dlices du paradis, qui ont produit -ces tourments d'enfer dont vous me voyez dvor; elle en tait -infecte, elle en est peut-tre morte. Paquette tenait ce -prsent d'un cordelier trs savant qui avait remont la source, -car il l'avait eu d'une vieille comtesse, qui l'avait reu d'un -capitaine de cavalerie, qui le devait une marquise, qui le -tenait d'un page, qui l'avait reu d'un jsuite, qui, tant -novice, l'avait eu en droite ligne d'un des compagnons de -Christophe Colomb. Pour moi, je ne le donnerai personne, car -je me meurs. - -O Pangloss! s'cria Candide, voil une trange gnalogie! -n'est-ce pas le diable qui en fut la souche? Point du tout, -rpliqua ce grand homme; c'tait une chose indispensable dans le -meilleur des mondes, un ingrdient ncessaire; car si Colomb -n'avait pas attrap dans une le de l'Amrique cette maladie[1] -qui empoisonne la source de la gnration, qui souvent mme -empche la gnration, et qui est videmment l'oppos du grand -but de la nature, nous n'aurions ni le chocolat ni la cochenille; -il faut encore observer que jusqu'aujourd'hui, dans notre -continent, cette maladie nous est particulire, comme la -controverse. Les Turcs, les Indiens, les Persans, les Chinois, -les Siamois, les Japonais, ne la connaissent pas encore; mais il -y a une raison suffisante pour qu'ils la connaissent leur tour -dans quelques sicles. En attendant elle a fait un merveilleux -progrs parmi nous, et surtout dans ces grandes armes composes -d'honntes stipendiaires bien levs, qui dcident du destin des -tats; on peut assurer que, quand trente mille hommes combattent -en bataille range contre des troupes gales en nombre, il y a -environ vingt mille vrols de chaque ct. - - [1] Voyez tome XXXI, page 7. B. - - -Voil qui est admirable, dit Candide; mais il faut vous faire -gurir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou, -mon ami, et dans toute l'tendue de ce globe on ne peut ni se -faire saigner, ni prendre un lavement sans payer, ou sans qu'il y -ait quelqu'un qui paie pour nous. - -Ce dernier discours dtermina Candide; il alla se jeter aux pieds -de son charitable anabaptiste Jacques, et lui fit une peinture si -touchante de l'tat o son ami tait rduit, que le bon-homme -n'hsita pas recueillir le docteur Pangloss; il le fit gurir -ses dpens. Pangloss, dans la cure, ne perdit qu'un oeil et une -oreille. Il crivait bien, et savait parfaitement -l'arithmtique. L'anabaptiste Jacques en fit son teneur de -livres. Au bout de deux mois, tant oblig d'aller Lisbonne -pour les affaires de son commerce, il mena dans son vaisseau ses -deux philosophes. Pangloss lui expliqua comment tout tait on ne -peut mieux. Jacques n'tait pas de cet avis. Il faut bien, -disait-il, que les hommes aient un peu corrompu la nature, car -ils ne sont point ns loups, et ils sont devenus loups. Dieu ne -leur a donn ni canons de vingt-quatre, ni baonnettes, et ils se -sont fait des baonnettes et des canons pour se dtruire. Je -pourrais mettre en ligne de compte les banqueroutes, et la -justice qui s'empare des biens des banqueroutiers pour en -frustrer les cranciers. Tout cela tait indispensable, -rpliquait le docteur borgne, et les malheurs particuliers font -le bien gnral; de sorte que plus il y a de malheurs -particuliers, et plus tout est bien. Tandis qu'il raisonnait, -l'air s'obscurcit, les vents soufflrent des quatre coins du -monde, et le vaisseau fut assailli de la plus horrible tempte, -la vue du port de Lisbonne. - - -CHAPITRE V. - -Tempte, naufrage, tremblement de terre, et ce qui advint du -docteur Pangloss, de Candide, et de l'anabaptiste Jacques. - -La moiti des passagers affaiblis, expirants de ces angoisses -inconcevables que le roulis d'un vaisseau porte dans les nerfs et -dans toutes les humeurs du corps agites en sens contraires, -n'avait pas mme la force de s'inquiter du danger. L'autre -moiti jetait des cris et fesait des prires; les voiles taient -dchires, les mts briss, le vaisseau entr'ouvert. Travaillait -qui pouvait, personne ne s'entendait, personne ne commandait. -L'anabaptiste aidait un peu la manoeuvre; il tait sur le -tillac; un matelot furieux le frappe rudement et l'tend sur les -planches; mais du coup qu'il lui donna, il eut lui-mme une si -violente secousse, qu'il tomba hors du vaisseau, la tte la -premire. Il restait suspendu et accroch une partie de mt -rompu. Le bon Jacques court son secours, l'aide remonter, et -de l'effort qu'il fait, il est prcipit dans la mer la vue du -matelot, qui le laissa prir sans daigner seulement le regarder. -Candide approche, voit son bienfaiteur qui reparat un moment, et -qui est englouti pour jamais. Il veut se jeter aprs lui dans la -mer: le philosophe Pangloss l'en empche, en lui prouvant que la -rade de Lisbonne avait t forme exprs pour que cet anabaptiste -s'y noyt. Tandis qu'il le prouvait _ priori_, le vaisseau -s'entr'ouvre, tout prit la rserve de Pangloss, de Candide, et -de ce brutal de matelot qui avait noy le vertueux anabaptiste; -le coquin nagea heureusement jusqu'au rivage, o Pangloss et -Candide furent ports sur une planche. - -Quand ils furent revenus un peu eux, ils marchrent vers -Lisbonne; il leur restait quelque argent, avec lequel ils -espraient se sauver de la faim aprs avoir chapp la tempte. - -A peine ont-ils mis le pied dans la ville, en pleurant la mort de -leur bienfaiteur, qu'ils sentent la terre trembler sous leurs -pas[1]; la mer s'lve en bouillonnant dans le port, et brise les -vaisseaux qui sont l'ancre. Des tourbillons de flammes et de -cendres couvrent les rues et les places publiques; les maisons -s'croulent, les toits sont renverss sur les fondements, et les -fondements se dispersent; trente mille habitants de tout ge et -de tout sexe sont crass sous des ruines. Le matelot disait en -sifflant et en jurant: il y aura quelque chose gagner ici. -Quelle peut tre la raison suffisante de ce phnomne? disait -Pangloss. Voici le dernier jour du monde! s'criait Candide. -Le matelot court incontinent au milieu des dbris, affronte la -mort pour trouver de l'argent, en trouve, s'en empare, s'enivre, -et ayant cuv son vin, achte les faveurs de la premire fille de -bonne volont qu'il rencontre sur les ruines des maisons -dtruites, et au milieu des mourants et des morts. Pangloss le -tirait cependant par la manche: Mon ami, lui disait-il, cela -n'est pas bien, vous manquez la raison universelle, vous prenez -mal votre temps. Tte et sang, rpondit l'autre, je suis matelot -et n Batavia; j'ai march quatre fois sur le crucifix dans -quatre voyages au Japon[2]; tu as bien trouv ton homme avec ta -raison universelle! - - - [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755. - B. - - [2] Voyez tome XVIII, page 470. B. - - -Quelques clats de pierre avaient bless Candide; il tait tendu -dans la rue et couvert de dbris. Il disait Pangloss: Hlas! -procure-moi un peu de vin et d'huile; je me meurs. Ce -tremblement de terre n'est pas une chose nouvelle, rpondit -Pangloss; la ville de Lima prouva les mmes secousses en -Amrique l'anne passe; mmes causes, mmes effets; il y a -certainement une trane de soufre sous terre depuis Lima jusqu' -Lisbonne. Rien n'est plus probable, dit Candide; mais, pour -Dieu, un peu d'huile et de vin. Comment probable? rpliqua le -philosophe, je soutiens que la chose est dmontre. Candide -perdit connaissance, et Pangloss lui apporta un peu d'eau d'une -fontaine voisine. - -Le lendemain, ayant trouv quelques provisions de bouche en se -glissant travers des dcombres, ils rparrent un peu leurs -forces. Ensuite ils travaillrent comme les autres soulager -les habitants chapps la mort. Quelques citoyens, secourus -par eux, leur donnrent un aussi bon dner qu'on le pouvait dans -un tel dsastre: il est vrai que le repas tait triste; les -convives arrosaient leur pain de leurs larmes; mais Pangloss les -consola, en les assurant que les choses ne pouvaient tre -autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car -s'il y a un volcan Lisbonne, il ne pouvait tre ailleurs; car -il est impossible que les choses ne soient pas o elles sont, car -tout est bien. - -Un petit homme noir, familier de l'inquisition, lequel tait -ct de lui, prit poliment la parole et dit: Apparemment que -monsieur ne croit pas au pch originel; car si tout est au -mieux, il n'y a donc eu ni chute ni punition. - -Je demande trs humblement pardon votre excellence, rpondit -Pangloss encore plus poliment, car la chute de l'homme et la -maldiction entraient ncessairement dans le meilleur des mondes -possibles. Monsieur ne croit donc pas la libert? dit le -familier. Votre excellence m'excusera, dit Pangloss; la libert -peut subsister avec la ncessit absolue; car il tait ncessaire -que nous fussions libres; car enfin la volont dtermine...... -Pangloss tait au milieu de sa phrase, quand Je familier fit un -signe de tte son estafier qui lui servait boire du vin de -Porto ou d'Oporto. diff --git a/vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt b/vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt deleted file mode 100644 index 7b03a99..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt +++ /dev/null @@ -1,178 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/1982/pg1982.txt --------- - - -ζǷ - -λǤ롣ͤβͤβDZߤԤäƤ -βˤϡˤγï⤤ʤ꡹ðɤ礭ʱˡ꤮ -ꤹɤȤޤäƤ롣礬ϩˤʾϡˤγˤ⡢ -򤹤Խޤ汨˹Ҥ⤦󻰿ͤϤꤽʤΤǤ롣줬ˤγ -ï⤤ʤ -ΤȱȡǯԤˤϡϿ̤ȤȤлȤȤ -ĤŤƵäΤӤϰ̤Ǥʤ쵭ˤȡʩ -ʩǺդơðĤꡢʤϤˤĤꤷڤϩФ -Ĥ߽ŤͤƿŤʤˤäƤȱȤǤ롣椬λǤ뤫顢 -νʤɤϡïΤƤƸܤߤԤʤäȤιӤ̤Ƥ -褤ˤơìʤˤࡣͤࡣȤȤޤˤϡ -ʤͤ򡢤ػäơΤƤƹԤȱ褿ǡ -ʤʤȡïǤⵤ̣򰭤äơζؤ­֤ߤ򤷤ʤˤʤ -ƤޤäΤǤ롣 -褫餫󽸤ޤä褿ָȡȤ -ؤơ⤤ʤӡˤΤޤƤʤ顢ӤޤäƤ롣 -ζͼƤǤʤˤϡ줬ޤ褦ˤϤä긫 -ϡξˤͤߤΤǤ롣⺣ϡ¤ -챩⸫ʤͣ꡹줫äƤܤĹ -Ϥʤξˡʵʤˤ򤯤ӤĤƤΤ롣 -ϼʤʤΰ־ʤ餷βʤˤοơˤ˽ -褿礭⮡ʤˤӡˤ򵤤ˤʤ顢ܤꡢΤդΤįƤΤ -롣 -ԤϤäֲͤߤԤäƤפȽ񤤤ͤϡ -Ǥ̤ɤ褦ȱƤϤʤդʤ顢ͤβȤصĤȦǤ -롣꤬μͤϡ͸˲ˤФ줿ˤ񤤤褦ˡԤ -Įϰ̤ʤ餺ƤβͤǯȤƤͤˤФ -줿Τ⡢οξ;Ȥ˳ʤʤ顢ֲͤߤԤäƤ -ȱ⡢ֱˤդꤳ줿ͤԤ꤬ʤơˤƤפ -ŬǤ롣ξ塢ζͤ⾯ʤ餺ʿīβͤ -Sentimentalisme˱ƶʤˤιﲼ꤫դФϡ̤˾ -뤱ʤǡͤϡƤ⺹뤷ɤˤ -ȤơФɤˤʤʤ򡢤ɤˤ褦ȤơȤȤʤ -򤿤ɤʤ顢äϩˤդ뱫βʹȤʤʹƤ -ĤĤǡ󤯤顢äȱ򤢤ĤƤ롣ͼǤϼ˶ -㤯ơ夲ȡβФˤĤФᰡʤ餫ˤˡŤ -Ť٤Ƥ롣 -ɤˤʤʤ򡢤ɤˤ٤ˤϡʤǤʤȤޡˤϤʤ -ǤСϡʤĤˤβƻФڤξǡʤˡˤ򤹤 -Ǥ롣ơξػäơΤ褦˼ΤƤƤޤФ -Ǥ롣ФʤȤСͤιͤϡ٤Ʊƻˤȶˡä -ζɽذ夷Ρ֤СפϡĤǤäƤ⡢ɡ֤Сפ -äͤϡʤФʤȤꤷʤ⡢Ρ֤СפΤ -Ĥ٤ˡθĤͤˤʤ곰˻ʤפȱ -ѶŪ˹ꤹΡͦФˤΤǤ롣 -ͤ礭ʤˤ򤷤ơ줫顢絷Ω夬äͼ䤨Τ -Ԥϡ⤦вߤδǤ롣Ȥδ֤ͼǤȶ˱θ -ʤ᤭̤롣ðɤˤȤޤäƤ꤮ꤹ⡢⤦ɤعԤäƤޤ - -ͤϡ¤ʤ顢δΡʤߡˤ˽Ťͤβθ⤯ -Τޤ򸫤ޤ路δΤʤܤˤΤʤճڤˤͤ줽 -ʽ꤬СǤȤ⤫⡢ȻפäǤ롣ȡ -ξϰؾ롢ιǷðɤäҤˤĤʤ顢ͤˤ -Ƥ⡢ɤͤФǤ롣ͤϡǹˤʤҤŤˤ -ʤ褦˵Ĥʤ顢Ϥ­򡢤Ҥΰֲʤؤ -ߤ -줫顢ʬθǤ롣ϰξؽФ롢ιҤʤˡ -ˤǭΤ褦˿Ȥ¤ơ©򻦤ʤ顢ƻҤ򱮤äƤϰξ夫 -餵Фθˡˤαˤ̤餷Ƥ롣ûʤҤˤˡ -֤ǿä⮤ΤˤǤ롣ͤϡϤᤫ顢ξˤԤϡͤФ -ȹäƤ줬ҤʾäƸȡǤïФȤܤơ -⤽βФ¶躡ưƤ餷ϡä -򤫤ŷ΢ˡʤǤäΤǡˤΤ줿ΤǤ -롣αˡξǡФȤ⤷Ƥ뤫ϡɤͣμԤǤϤ - -ͤϡܼʤˤΤ褦­̤ǡäȵޤҤ򡢰־ʤ -礦褦ˤƾĤ᤿Τʿˤʤ顢 -ؽФơ붲롢ϰƸ -ȡϰˤϡʹ̤ꡢĤλӳʤˤ̵¤˴Ƥ -뤬ФθεڤϰϤפä궹ΤǡϴĤȤ狼ʤͣ -ܤʤ顢ΤΤϡλӳȡʪ夿ӳȤȱ -롣ˤϽˤޤäƤ餷ơλӳϳ줬 -ʤĤơˡƤʹ֤ȱ¤ڤԤͤ¤äͷ -褦ˡ򳫤ꡢФꤷơξˤäƤ -⡢ȤȤι⤯ʤäƤʬˡܤꤷФθ򤦤ơ㤯ʤä -ʬαƤذŤʤ顢ʵפ˰ʤˤǡۤäƤ -ͤϡλӳ।˻פ鷺ɡäʤäˡ -μϡνִ֤ˤϡ⤦ɡ椦˺Ƥ붯ؼʤۤȤ -ɤȤȤˤˤ̳ФåäƤޤäǤ롣 -ͤδϡλϤơ¶ӳäƤʤޤäƤ˿ʹ -򸫤ȩʤҤϤˤʪؤ㤤餻ȱƬΡΤ褦 -Ϸ̤Ǥ롣Ϸ̤ϡμ˲ФȤ⤷Ҥäơλӳΰ -δ褦įƤȱӤĹ򸫤ȡ¿ʬλӳǤ -ͤϡϻʬζݤȻʬι񿴤ȤươûϸƵۡʤˤ򤹤Τ -˺Ƥ쵭εԤθڤСƬȡʤȤˤӤפ褦˴ -ΤǤ롣ȡϷ̤ϡҤ򡢾Ĥδ֤ޤơ줫顢ޤį -Ƥӳμξ򤫤ȡ١οƤλҤ͡ʤߡˤȤ褦 -ˡĹȱӤܤȴϤ᤿ȱϼ˽äȴ餷 -ȱӤܤȴΤ˽äƲͤοϡݤľäƹԤ -ơƱˡϷ̤ФϤư褿 -䡢Ϸ̤ФȱäƤϡ뤫Τʤǫʤषˡ -밭Фȿʬ˶褿ΤǤ롣λïβͤˡ -äβǤˤͤƤʤˡˤ򤹤뤫ͤˤʤ뤫ȱ -򡢲ƻФ顢餯ͤϡ̤ʤǤ -ۤɡˤΰ࿴ϡϷ̤ξޤҤΤ褦ˡ褯dz -ƤΤǤ롣 -ͤˤϡϷ̤ͤȱӤȴ狼ʤääơŪ -ˤϡβҤŤƤ褤ΤʤäͤˤȤäƤϡ -ˡξǡͤȱӤȴȱǴ˵ -餶밭Ǥäͤϡäʬͤˤʤ뵤Ǥʤϡ -˺ƤΤǤ롣 -ǡͤϡξ­ϤơʤꡢҤӾ夬ä -ʤҤŤˤ˼򤫤ʤ顢ԤϷ̤ߤäϷ̤ -äΤϡʤ -Ϸ̤ϡܲͤ򸫤ȡޤ׸ʤߡˤˤǤƤ줿褦ˡӾ夬 - -֤Τ졢ɤعԤ -ͤϡϷ̤ӳˤĤޤŤʤ顢Ƥդᤤƨ褦ȤԼɤǡ -ͤäϷ̤ϡǤⲼͤĤΤƹԤȤ롣ͤԤ -ޤȤơɤͤϻӳǡá̵ΤޤޡĤ߹ä -ϡϤᤫ顢狼äƤ롣ͤϤȤȤϷ̤ӤĤǡ̵ -ؤͤݤ١ܡʤȤˤεӤΤ褦ʡФӤǤ롣 -ֲ򤷤Ƥ򤷤Ƥ̤ȡ衣 -ͤϡϷ̤Ĥȡʤꡢξʧäơ򤤹ݡʤϤ͡ˤο -δؤĤĤɤ⡢Ϸ̤ۤäƤ롣ξʤʤդ碌ơ -©ڤʤ顢򡢴夬ޤ֤γؽФˤʤơΤ褦 -˼ٹʤ夦͡ˤۤäƤ롣򸫤ȡͤϻϤˤϷ̤ -ʬΰջ֤˻ۤƤȱռơΰռϡ -ޤǤϤdzƤο򲿻ʤġˤδ֤ˤޤƤޤä˻Ĥ -ΤϡͣŻ򤷤ơ줬Ρ¤餫դ­Ȥ -ФǤ롣ǡͤϡϷ̤򡢸ʤ顢Ƥä -ָʤϸȡʤӤˤģͤʤɤǤϤʤβ̤꤫ -ιμԤ餪򤫤ơɤ褦ȱ褦ʻϤʤͣʬ -ξǡ򤷤ƤΤʤäФΤ -ȡϷ̤ϡ򡢰礭ơäȤβͤδ򸫼ä -ޤ֤֤ʤäĻΤ褦ʡԤǸΤǤ롣줫顢Ⲥǡء -ɡȰĤˤʤä򲿤ʪǤǤ褦ư٤ǡäʩ -ưƤΤ롣λι顢ʤ餹ˤƤ褦ä -ͤμä褿 -֤ȱȴƤʡνȱȴƤʡʤĤˤˤ褦Ȼפ -㡣 -ͤϡϷ̤¸ʿޤʤΤ˼˾Ƽ˾Ʊˡ -ΤȰ줷ˡؤϤä褿ȡεʤˤ -ؤ̤ΤǤϷ̤ϡҼˡޤӳƬåʤȡˤäĹȴ -Ӥäʤꡢ걡ʤҤˤΤĤ֤䤯褦ǡʤ顢ʻ򱾤 - -ͤȱӤȴȱϡΤ̡ͤ -¿ϡΰ̤ʻ򡢤Ƥ⤤ʹ֤ФǤ롣ˡʬȱȴ -ʤɤϡؤФꤺĤڤäƴΤ򡢴ʤۤˤȱäơ -ӡʤϤˤοؤ˹Ԥä¤ˤäƻʤʤäʤ顢Ǥ -˹ԤäƤ⤷ʤ⡢ν봳ϡ̣褤ȱΤǡ -Ӥ礫äƤΤǤ롣ʬϡνΤȤ -פʤʤСʤˡˤ򤹤ΤǡʤǤ롣 -顢ʬΤƤⰭȤϻפʤϤꤷʤС -򤹤ΤǡʤǤ롣ơλʤ򡢤褯 -ΤäƤνϡʬΤƤΤˤʤȻפǤ -롣Ϸ̤ϡΤʰ̣λ򱾤ä -ͤϡˤơ򺸤μǤʤ顢Ȥơ -äʹƤμǤϡ֤ˤǿ礭⮡ʤˤӡˤ -ˤʤ顢ʹƤΤǤ롣ǷʹƤˡͤοˤϡ -ͦޤ褿ϡäβǤˤ˷礱ƤͦǤ롣 -ơäξؾʤˤäơϷ̤ᤨͦȤϡ -ȿФưȤͦǤ롣ͤϡ򤹤뤫ͤˤʤ뤫¤ʤ -ФǤϤʤλΤˤο鱾Сʤɤȱϡء -ʤռγɤФƤ -֤äȡ -Ϸ̤äȡͤޡʤˤ褦ǰ򲡤ơ­ -ؽФȡ԰դˡμ⮤ΥơϷ̤ζ߾ʤ꤬ߡˤĤߤʤ顢 -ä -֤ǤϡʤʤҤϤˤ򤷤褦Ⱥޤʡʤ⤽ʤС -ΤʤΤ -ͤϡФ䤯Ϸ̤ʪȤä줫顢­ˤߤĤȤϷ -̤򡢼ӤӳξؽݤҤθޤǤϡϤ˸ФǤ롣 -ͤϡȤäɰȩʪ來ˤơޤ֤˵ޤҤ -ꤿ -á褦ݤƤϷ̤ӳ椫顢Τ򵯤Τϡ -줫֤ʤλǤ롣Ϸ̤ϡĤ֤䤯褦ʡ᤯褦ΩƤʤ顢 -ޤdzƤФθ򤿤ˡҤθޤǡäƹԤäơ顢 -ûȱݡʤޡˤˤơβˤϡͣƶʤ -Ȥˤ뤬ФǤ롣 -ͤϡˡơԤĮضƯ˵ޤǤ diff --git a/vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt b/vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt deleted file mode 100644 index 0bc24bc..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt +++ /dev/null @@ -1,178 +0,0 @@ -This file was derived from -http://www.gutenberg.org/cache/epub/1982/pg1982.txt --------- -$BMe@8Lg(B - -$B3)@nN6G72p(B - -$B!!0?F|$NJkJ}$N;v$G$"$k!#0l?M$N2e$O!"$3$NCK$N30$K$b!"1+$d$_(B -$B$r$9$k;T=w3^$dYf1(K9;R$,!"$b$&Fs;0?M$O$"$j$=$&$J$b$N$G$"$k!#$=$l$,!"$3$NCK$N30(B -$B$KC/$b$$$J$$!#(B -$B!!2?8N$+$H1>$&$H!"$3$NFs;0G/!"5~ET$K$O!"CO?L$H$+DTIw$H$+2P;v$H$+q@q<$H$+1>$&:R(B -$B$$$,$D$E$$$F5/$3$C$?!#$=$3$GMlCf$N$5$S$lJ}$O0lDL$j$G$J$$!#5l5-$K$h$k$H!"J)A|$d(B -$BJ)6q$rBG:U$$$F!"$=$NC0$,$D$$$?$j!"6b6d$NGs!J$O$/!K$,$D$$$?$j$7$?LZ$r!"O)$P$?$K(B -$B$D$_=E$M$F?E$NNA!J$7$m!K$KGd$C$F$$$?$H1>$&$3$H$G$"$k!#MlCf$,$=$N;OKv$G$"$k$+$i!"(B -$BMe@8Lg$N=$M}$J$I$O!"85$h$jC/$b$&=,47$5$(=PMh$?!#$=$3$G!"F|$NL\(B -$B$,8+$($J$/$J$k$H!"C/$G$b5$L#$r0-$,$C$F!"$3$NLg$N6a=j$X$OB-$V$_$r$7$J$$;v$K$J$C(B -$B$F$7$^$C$?$N$G$"$k!#(B -$B!!$=$NBe$jKtrm$,2?=h$+$i$+!"$?$/$5$s=8$^$C$FMh$?!#Ck4V8+$k$H!"$=$Nrm$,2?1)$H$J(B -$B$/NX$rIA$$$F!"9b$$rvHx!J$7$S!K$N$^$o$j$rSF$-$J$,$i!"Ht$S$^$o$C$F$$$k!#e$N6u$,!"M<>F$1$G$"$+$/$J$k;~$K$O!"$=$l$,8UKc$r$^$$$?$h$&$K$O$C$-$j8+$($?!#rm(B -$B$O!"L^O@!"Lg$N>e$K$"$k;`?M$NFy$r!"Bo$_$KMh$k$N$G$"$k!#!e$K!"rm$NJ5!J$/$=!K$,!"E@!9$HGr$/$3$S$j$D$$$F$$$k$N$,8+$($k!#2e$NCJ$K@v$$$6$i$7$?:0$N2(!J$"$*!K$N?,$r?x$($F!"1&$NKK$K=P(B -$BMh$?!"Bg$-$JLLb.!J$K$-$S!K$r5$$K$7$J$,$i!"$\$s$d$j!"1+$N$U$k$N$rD/$a$F$$$k$N$G(B -$B$"$k!#(B -$B!!:n$&Ev$F$O$J$$!#$U$@$s$J$i!"L^O@!".$5$JM>GH$K30$J$i$J$$!#$@$+$i!"!V2$&$h$j$b!"!V1+$K$U$j$3$a$i$l$?2$&J}$,!"E,Ev$G$"$k!#$=$N>e!":#F|$N6uLOMM$b>/$J$+$i$:$3$NJ?0BD+$N2e(B -$B$,$k$1$7$-$,$J$$!#$=$3$G!"2$o$P$I$&$K$b$J$i$J$$;v$r!"$I$&$K$+$7$h$&$H$7$F!"$H$j$H$a$b$J$$9M(B -$B$($r$?$I$j$J$,$i!"$5$C$-$+$i$&2;$r$"$D$a$F$/$k!#M<0G$Oe$2$k$H!"Lg$N20:,$,!"e$G!"q@;`!J$&$($8$K!K$r$9$k$P(B -$B$+$j$G$"$k!#$=$&$7$F!"$3$NLg$N>e$X;}$C$FMh$F!"8$$N$h$&$K$&;v$r!"(B -$B@Q6KE*$K9NDj$9$k$@$1$N!"M&5$$,=P$:$K$$$?$N$G$"$k!#(B -$B!!2e$,$C$?!#Me$NO0$X>e$k!"I}$N9-$$!"G7$bC0$rEI$C$?Dt;R$,4c$K$D$$$?!#>e$J$i!"?M$,$$$?$K$7(B -$B$F$b!"$I$&$;;`?M$P$+$j$G$"$k!#2dAv$i$J$$$h$&$K5$$r$D$1$J$,$i!"ONApMz$r$O$$$?B-$r!"$=$NDt;R$N0lHV2<$NCJ$X$U(B -$B$_$+$1$?!#(B -$B!!$=$l$+$i!"2?J,$+$N8e$G$"$k!#Me@8Lg$NO0$N>e$X=P$k!"I}$N9-$$Dt;R$NCfCJ$K!"0l?M(B -$B$NCK$,!"G-$N$h$&$K?H$r$A$B$a$F!"B)$r;&$7$J$,$i!">e$NMF;R$r1.$C$F$$$?!#O0$N>e$+(B -$B$i$5$92P$N8w$,!"$+$9$+$K!"$=$NCK$N1&$NKK$r$L$i$7$F$$$k!#C;$$r$!J$R$2!K$NCf$K!"(B -$B@V$/G?$r;}$C$?LLb.$N$"$kKK$G$"$k!#2e$K$$$ke$C$F8+$k$H!">e$G$OC/$+2P$r$H$\$7$F!"(B -$B$7$+$b$=$N2P$rB6=h:!=h$HF0$+$7$F$$$k$i$7$$!#$3$l$O!"$=$NBy$C$?!"2+$$$m$$8w$,!"(B -$B6y!9$KCXia$NAc$r$+$1$?E70fN"$K!"$f$l$J$,$i1G$C$?$N$G!"$9$0$K$=$l$HCN$l$?$N$G$"(B -$B$k!#$3$N1+$NLk$K!"$3$NMe@8Lg$N>e$G!"2P$r$H$b$7$F$$$k$+$i$O!"$I$&$;M#$Ne$NCJ$^(B -$B$GGg$&$h$&$K$7$F>e$j$D$a$?!#$=$&$7$FBN$r=PMh$k$@$1!"J?$K$7$J$,$i!"pt$r=PMh$k$@(B -$B$1!"A0$X=P$7$F!"62$k62$k!"O0$NFb$rGA$$$F8+$?!#(B -$B!!8+$k$H!"O0$NFb$K$O!"1=$KJ9$$$?DL$j!"4v$D$+$N;S3$&;v$G(B -$B$"$k!#L^O@!"Cf$K$O=w$bCK$b$^$8$C$F$$$k$i$7$$!#$=$&$7$F!"$=$N;S3<$O3'!"$=$l$,!"(B -$B>(!J$+$D$F!K!"@8$-$F$$$??M4V$@$H1>$&;v2$N>e$K$3$m$,$C$F$$$?!#$7$+(B -$B$b!"8*$H$+6;$H$+$N9b$/$J$C$F$$$kItJ,$K!"$\$s$d$j$7$?2P$N8w$r$&$1$F!"Dc$/$J$C$F(B -$B$$$kItJ,$N1F$r0lAX0E$/$7$J$,$i!"1J5W$K0"!J$*$7!K$NG!$/L[$C$F$$$?!#(B -$B!!2p$,KX<=!J$[$H$s(B -$B$I$3$H$4$H$/!K$3$NCK$NSL3P$rC%$C$F$7$^$C$?$+$i$G$"$k!#(B -$B!!2>$NLZJR$r;}$C$F!"$=$N;S3<$N0l$D(B -$B$N4i$rGA$-$3$`$h$&$KD/$a$F$$$?!#H1$NLS$ND9$$=j$r8+$k$H!"B?J,=w$N;S3<$G$"$m$&!#(B -$B!!2>$NLZJR$r!">2HD$N4V$KA^$7$F!"$=$l$+$i!":#$^$GD/(B -$B$a$F$$$?;S3<$N$C$FH4$1$k$i$7$$!#(B -$B!!$=$NH1$NLS$,!"0lK\$:$DH4$1$k$N$K=>$C$F2/$7$:$D>C$($F9T$C(B -$B$?!#$=$&$7$F!"$=$l$HF1;~$K!"$=$NO7GL$KBP$9$k$O$2$7$$A~0-$,!">/$7$:$DF0$$$FMh$?!#(B -$B$$$d!"$3$NO7GL$KBP$9$k$H1>$C$F$O!"8lJ@$,$"$k$+$bCN$l$J$$!#G+!J$`$7$m!K!"$"$i$f(B -$B$k0-$KBP$9$kH?46$,!"0lJ,Kh$K6/$5$rA}$7$FMh$?$N$G$"$k!#$3$N;~!"C/$+$,$3$N2$&Ld(B -$BBj$r!"2~$a$F;}=P$7$?$i!"62$i$/22$KA^$7$?>>$NLZJR$N$h$&$K!"@*$h$/G3$(>e(B -$B$,$j$@$7$F$$$?$N$G$"$k!#(B -$B!!2$C$F!"9gM}E*(B -$B$K$O!"$=$l$rA10-$N2?$l$KJR$E$1$F$h$$$+CN$i$J$+$C$?!#$7$+$72e$G!";`?M$NH1$NLS$rH4$/$H1>$&;v$,!"$=$l$@$1$G4{$K5v$92D(B -$B$i$6$k0-$G$"$C$?!#L^O@!!2$O!!$H(B -$B$&$KK:$l$F$$$k$N$G$"$k!#(B -$B!!$=$3$G!"2B-$KNO$rF~$l$F!"$$$+$J$j!"Dt;R$+$i>e$XHt$S>e$,$C$?!!$=$&$7(B -$B$F@;JA!J$R$8$j$E$+!K$NB@Ea$K$&Kx$b$J$$!#(B -$B!!O7GL$O!"0lL\2e$,$C(B -$B$?!#(B -$B!!!V$*$N$l!"$I$3$X9T$/!#!W(B -$B!!2!Ii$O!"$O$8$a$+$i!"$o$+$C$F$$$k!#2$(!#1>$o$L$H!!$3$l$@$>$h!#!W(B -$B!!2d$rJ'$C$F!"Gr$$9]!J$O$,$M!K$N?'$r(B -$B$=$N4c$NA0$X$D$-$D$1$?!#$1$l$I$b!"O7GL$OL[$C$F$$$k!#N>$&;v$r0U<1$7$?!#$=$&$7$F!"$3$N0U<1$O!"(B -$B:#$^$G$O$2$7$/G3$($F$$$?A~0-$N?4$r2?;~!J$$$D!K$N4V$K$+Nd$^$7$F$7$^$C$?!#8e$K;D$C(B -$B$?$N$O!"M#!"0?;E;v$r$7$F!"$=$l$,1_K~$K@.="$7$?;~$N!"0B$i$+$JF@0U$HK~B-$H$,$"$k(B -$B$P$+$j$G$"$k!#$=$3$G!"2/$7@<$r=@$2$F$3$&1>$C$?!#(B -$B!!!V8J$O8!Hs0c;H!J$1$S$$$7!K$ND#$NLr?M$J$I$G$O$J$$!#:#$7J}$3$NLg$N2<$rDL$j$+$+$C(B -$B$?N9$N$&$h$&$J;v$O$J$$!#M#:#;~J,!"(B -$B$3$NLg$N>e$G!"2?$r$7$F$$$?$N$@$+!"$=$l$r8J$KOC$5$($9$l$P$$$$$N$@!#!W(B -$B!!$9$k$H!"O7GL$O!"8+3+$$$?4c$r!"0lAXBg$-$/$7$F!"$8$C$H$=$N2$7$?!#$=$&$7$F<:K>$9$k$HF1;~$K!"KtA0$N(B -$BA~0-$,!"Nd$JInJN$H0l$7$g$K!"?4$NCf$X$O$$$C$FMh$?!#$9$k$H!!$=$N5$?'!J$1$7$-!K$,!"(B -$B@hJ}$X$bDL$8$?$N$G$"$m$&!#O7GL$O!"JR$C(B -$B$?!#(B -$B!!@.Dx!";`?M$NH1$NLS$rH4$/$H1>$&;v$O!"0-$$;v$+$MCN$l$L!#$7$+$7!"$3$&1>$&;`?M$N(B -$BB?$/$O!"3'!!$=$N0L$J;v$r!"$5$l$F$b$$$$?M4V$P$+$j$G$"$k!#8=$K!"<+J,$,:#!"H1$rH4(B -$B$$$?=w$J$I$O!"$C$F!"(B -$BB@EaBS!J$?$A$O$-!K$N?X$XGd$j$K9T$C$?!#1VIB$K$+$+$C$F;`$J$J$+$C$?$J$i!":#$G$bGd(B -$B$j$K9T$C$F$$$?$+$b$7$l$J$$!#$7$+$b!"$3$N=w$NGd$k435{$O!"L#$,$h$$$H1>$&$N$G!"B@(B -$BEaBS$?$A$,!"7g$+$5$::ZNA$KGc$C$F$$$?$N$G$"$k!#<+J,$O!"$3$N=w$N$7$?;v$,0-$$$H$O(B -$B;W$o$J$$!#$7$J$1$l$P!"q@;`!J$($&$8$K!K$r$9$k$N$G!";EJ}$,$J$/$7$?;v$@$+$i$G$"$k!#(B -$B$@$+$i!"Kt:#!"<+J,$N$7$F$$$?;v$b0-$$;v$H$O;W$o$J$$!#$3$l$b$d$O$j$7$J$1$l$P!"q@(B -$B;`$r$9$k$N$G!";EJ}$,$J$/$9$k;v$@$+$i$G$"$k!#$=$&$7$F!"$=$N;EJ}$,$J$$;v$r!"$h$/(B -$BCN$C$F$$$?$3$N=w$O!"<+J,$N$9$k;v$r5v$7$F$/$l$k$N$K$A$,$$$J$$$H;W$&$+$i$G$"(B -$B$k!#!$C$?!#(B -$B!!2d$K$*$5$a$F!"$=$NB@Ea$NJA$r:8$Ne$X>e!J$"$,!K$C$F!"$=$NO7GL$rJa$($?;~$NM&5$$H$O!"A4A3!"(B -$BH?BP$JJ}8~$KF0$3$&$H$9$kM&5$$G$"$k!#2$($P!"q@;`$J$I$H1>$&;v$O!"KX!"9M(B -$B$($k;v$5$(=PMh$J$$Dx!"0U<1$N30$KDI$$=P$5$l$F$$$?!#(B -$B!!!V$-$C$H!"$=$&$+!#!W(B -$B!!O7GL$NOC$,40$k$H!"2e!J$($j$,$_!K$r$D$+$_$J$,$i!"(B -$B$3$&1>$C$?!#(B -$B!!!V$G$O!"8J$,0zGm!J$R$O$.!K$r$7$h$&$H:($`$^$$$J!#8J$b$=$&$7$J$1$l$P!"q@;`$r$9(B -$B$kBN$J$N$@!#!W(B -$B!!2e$X=3E]$7$?!#Dt;R$N8}$^$G$O!"6O$K8^Jb$r?t$($k$P$+$j$G$"$k!#(B -$B2-V.RTNeJB#,P#V.RTV.2;D\#,SC6xJ>V.2;SC#,=|6xJ>V.T6#,T66xJ>V.=|!#@{6xSUV.#,BR6xH!V.#,J56x18V.#,G?6x1\V.#,E-6xDSV.#,106x=>V.#,X}6x@MV.#,GW6x@kV.#,9%FdN^18#,3vFd2;Rb!#4K1xYRS!#~} - -~{FdSCU=R2#,9sJ$#,>CTr6[1x4lHq#,9%3GTrA&G|#,>C1)J&Tr9zSC2;Wc!#7r6[1x4lHq#,G|A&~}?~{;u#,TrVn:n3KFd1W6xFp#,KdSPVGU_#,2;D\IFFd:sRS!#9J1xNEW>KY#,N46CGIV.>CR2!#7r1x>C6x9z@{U_#,N4V.SPR2!#9J2;>!V*SC1xV.:&U_#,Tr2;D\>!V*SC1xV.@{R2!#~} - -~{IFSC1xU_#,R[2;TY<.#,A82;H}TX#,H!SCl69z#,RrA8l65P#,9J>|J3?IWcR2!#9zV.F6l6J&U_T6Jd#,T6JdTr0YPUF6#;=|l6J&U_9sBt#,9sBtTr0YPU=_#,2F=_Tr<1l6GpR[!#A&G|2F~}?~{#,VPT-DZPil6|0UBm#,C!#9JV*1xV.=+#,CqV.K>C|!#9z|~}?~{IO#,FF>|4NV.#;H+BC~}?~{IO#,FFBC4NV.#;H+Wd~}?~{IO#,FFWd4NV.#;H+Ni~}?~{IO#,FFNi4NV.!#JG9J0YU=0YJ$#,7GIFV.IFU_R2#;2;U=6xG|HKV.1x#,IFV.IFU_R2!#~} - -~{9JIO1x7%D1#,Fd4N7%=;#,Fd4N7%1x#,FdOB9%3G!#9%3GV.7(#,~}?~{2;5CRQ!#P^~}???~{#,>_FwP5#,H}TB6x:s3I#;>`~}?~{#,SVH}TB6x:sRQ!#=+2;J$Fd7^#,6xRO8=V.#,I1J?H}7VV.R;#,6x3G2;0NU_#,4K9%V.TVR2!#~} - -~{9JIFSC1xU_#,G|HKV.1x#,6x7GU=R2#,0NHKV.3G6x7G9%R2#,;YHKV.9z6x7G>CR2#,1XRTH+Uyl6LlOB#,9J1x2;6Y6x@{?IH+#,4KD19%V.7(R2!#~} - -~{9JSC1xV.7(#,J.TrN'V.#,NeTr9%V.#,16Tr7VV.#,5PTrD\U=V.#,IYTrD\LSV.#,2;HtTrD\1\V.!#9JP!5PV.}V.KyRT;|U_H}#:2;V*>|V.2;?IRT=x6xN=V.=x#,2;V*>|V.2;?IRTMK6xN=V.MK#,JGN=wc>|#;2;V*H}>|V.JB#,6xM,H}>|V.U~#,Tr>|J?;sRS#;2;V*H}>|V.H(#,6xM,H}>|V.HN#,Tr>|J?RIRS!#H}>||R}J$!#~} - -~{9JV*J$SPNe#:V*?IRTU=Sk2;?IRTU=U_#,J$!#J6~}?~{9QV.SCU_#,J$!#IOOBM,S{U_#,J$!#RTS]4}2;S]U_#,J$!#=+D\6x>}2;SyU_#,J$!#4KNeU_#,V*J$V.5@R2!#~} - -~{9JT;#:V*<:V*1K#,0YU=2;~}?~{#;2;V*1K6xV*<:#,R;J$R;8:#;2;V*1K2;V*<:#,C?U=1X0\!#~} - -~{>|PN5ZKD~} - -~{KoWST;#:NtV.IFU=U_#,OH~}?~{2;?IJ$#,RT4}5PV.?IJ$!#2;?IJ$TZ<:#,?IJ$TZ5P!#9JIFU=U_#,D\~}?~{2;?IJ$#,2;D\J95P1X?IJ$!#9JT;#:J$?IV*#,6x2;?I~}?~{!#~} - -~{2;?IJ$U_#,JXR2#;?IJ$U_#,9%R2!#JXTr2;Wc#,9%TrSP~}?~{!#IFJXU_#,2Xl6>E5XV.OB#,IF9%U_#,6/l6>ELlV.IO#,9JD\WT1#6xH+J$R2!#~} - -~{<{J$2;9}~}?~{HKV.KyV*#,7GIFV.IFU_R2#;U=J$6xLlOBT;IF#,7GIFV.IFU_R2!#9J>YGo:A2;~}?~{6`A&#,<{HUTB2;~}?~{CwD?#,NE@Wv*2;~}?~{4O6z!#9EV.IFU=U_#,J$l6RWJ$U_R2!#9JIFU=U_V.J$R2#,N^VGC{#,N^SB9&#,9JFdU=J$2;_/!#2;_/U_#,FdKy4k1XJ$#,J$RQ0\U_R2!#9JIFU=U_#,OHA"l62;0\V.5X#,6x2;J'5PV.0\R2!#JG9JJ$1xOHJ$#,6x:sGsU=#,0\1xOHU=6x:sGsJ$!#IFSC1xU_#,P^5@6x1#7(#,9JD\~}?~{J$0\V.U~!#~} - -~{1x7(#:R;T;6H#,6~T;A?#,H}T;J}#,KDT;3F#,NeT;J$!#5XIz6H#,6HIzA?#,A?IzJ}#,J}Iz3F#,3FIzJ$!#9JJ$1xHtRT~}?~{3F~}?~{#,0\1xHtRT~}?~{3F~}?~{!#J$U_V.U=#,Ht>v;}K.l6G'XpV.~}?~{U_#,PNR2!#~} - -~{1xJF5ZNe~} - -~{KoWST;#:72VN~}?~{HgVN9Q#,7VJ}JGR2#;67~}?~{Hg679Q#,PNC{JGR2#;H}>|V.~}?~{#,?IJ91XJ\5P6xN^0\U_#,FfU}JGR2#;1xV.KyJ/!#D>J/V.PT#,02Tr>2#,N#Tr6/#,7=TrV9#,T2TrPP!#9JIFU=HKV.JF#,HgW*T2J/l6G'XpV.I=U_#,JFR2!#~} - -~{PiJ55ZAy~} - -~{KoWST;#:72OH4&U=5X6x4}5PU_X}#,:s4&U=5X6xGwU=U_@M!#~} - -~{9JIFU=U_#,VBHK6x2;VBl6HK!#D\J95PHKWTVAU_#,@{V.R2#;D\J95PHK2;5CVAU_#,:&V.R2!#9J5PX}D\@MV.#,1%D\<"V.#,02D\6/V.!#3vFdKy1XGw#,GwFdKy2;Rb!#PPG'@o6x2;@MU_#,PPl6N^HKV.5XR2#;9%6x1XH!U_#,9%FdKy2;JXR2!#JX6x1X9LU_#,JXFdKy2;9%R2!#~} - -~{9JIF9%U_#,5P2;V*FdKyJX#;IFJXU_#,5P2;V*FdKy9%!#N":uN":u#,VAl6N^PN#;Iq:uIq:u#,VAl6N^Iy#,9JD\~}?~{5PV.K>C|!#=x6x2;?ISyU_#,3eFdPiR2#;MK6x2;?IW7U_#,KY6x2;?I<0R2!#9JNRS{U=#,5PKd8_@]In95#,2;5C2;SkNRU=U_#,9%FdKy1X>HR2#;NR2;S{U=#,Kd;-5X6xJXV.#,5P2;5CSkNRU=U_#,9TFdKyV.R2!#9JPNHK6xNRN^PN#,TrNRW(6x5P7V!#NRW(~}?~{R;#,5P7V~}?~{J.#,JGRTJ.9%FdR;R2!#TrNR~}?~{5P9Q#,D\RT~}?~{;w9QU_#,TrNaV.KySkU=U_THSR#,SR2;D\>HWs#,G02;D\>H:s#,:s2;D\>HG0#,6x?vT6U_J}J.@o#,=|U_J}@o:u#!RTNa6HV.#,T=HKV.1xKd6`#,R`^IRfl6J$TU#!9JT;#:J$?I~}?~{R2!#5PKd~}?~{#,?IJ9N^67!#9J2_V.6xV*5CJ'V.2V.@m#,PNV.6xV*K@IzV.5X#,=GV.6xV*SP~}?~{2;WcV.4&!#9JPN1xV.<+#,VAl6N^PN!#N^PNTrIn|Uy5ZF_~} - -~{KoWST;#:~} ~{72SC1xV.7(#,=+J\C|l6>}#,:O>|>[~}?~{#,=;:M6xIa#,D*DQl6>|Uy!#>|UyV.DQU_#,RTSX~}?~{V1#,RT;<~}?~{@{!#9JSXFdM>#,6xSUV.RT@{#,:sHK7"#,OHHKVA#,4KV*SXV1V.|Uy~}?~{@{#,>|Uy~}?~{N#!#>Y>|6xUy@{Tr2;<0#,N/>|6xUy@{Tr~}?~{VX>h!#JG9J~}?~{|#,>"U_OH#,F#U_:s#,Fd7(J.R;6xVA#;NeJ.@o6xUy@{#,TrujIO=+>|#,Fd7(0kVA#;H}J.@o6xUy@{#,TrH}7VV.6~VA!#JG9J>|N^~}?~{VXTrMv#,N^A8J3TrMv#,N^N/;}TrMv!#9J2;V*Vn:nV.D1U_#,2;D\T%=;#;2;V*I=AV!"OUWh!">ZTsV.PNU_#,2;D\PP>|#;2;SCOg5|UyV.7(R2!#!6>|U~!7T;#:!0QT2;O`NE#,9J~}?~{V.=p9D#;JS2;O`<{#,9J~}?~{V.l:Fl!#!17r=p9Dl:FlU_#,KyRTR;CqV.6zD?R2!#Cq|?I6aFx#,=+>|?I6aPD!#JG9J3/FxHq#,VgFx6h#,D:Fx9i!#IFSC1xU_#,1\FdHqFx#,;wFd6h9i#,4KVNFxU_R2!#RTVN4}BR#,RT>24};)#,4KVNPDU_R2!#RT=|4}T6#,RTX}4}@M#,RT1%4}<"#,4KVNA&U_R2!#N^Q{U}U}V.Fl#,N^;wLCLCV.3B#,4KVN1dU_R2!#9JSC1xV.7(#,8_AjNpOr#,13GpNpDf#,Qp11Np4S#,HqWdNp9%#,6|1xNpJ3#,9iJ&Np6t#,N'J&RE~}?~{#,Gn?\NpFH#,4KSC1xV.7(R2!#~} - -~{>E1d5Z0K~} - -~{KoWST;#:~} ~{72SC1xV.7(#,=+J\C|l6>}#,:O>|>[:O!#7:5XN^Ia#,ai5X:O=;#,>x5XN^At#,N'5XTrD1#,K@5XTrU=#,M>SPKy2;SI#,>|SPKy2;;w#,3GSPKy2;9%#,5XSPKy2;Uy#,>}C|SPKy2;J\!#9J=+M(l6>E1dV.@{U_#,V*SC1xRS#;=+2;M(>E1dV.@{#,KdV*5XPN#,2;D\5C5XV.@{RS#;VN1x2;V*>E1dV.Ju#,KdV*Ne@{#,2;D\5CHKV.SCRS!#JG9JVGU_V.BG#,1XTSl6@{:&#,TSl6@{6xNq?IPER2#,TSl6:&6x;|I1=+#,1XRTNeN##,2;?I2;2lR2!#~} - -~{PP>|5Z>E~} - -~{KoWST;#:724&>|O`5P#,>xI=R@~}?~{#,JSIz4&8_#,U=B!N^5G#,4K4&I=V.>|R2!#>xK.1XT6K.#,?M>xK.6x@4#,NpS-V.l6K.DZ#,An0k6I6x;wV.@{#,S{U=U_#,N^8=l6K.6xS-?M#,JSIz4&8_#,N^S-K.Aw#,4K4&K.IOV.>|R2!#>x3bTs#,N(X=H%N^At#,Ht=;>|l63bTsV.VP#,1XR@K.2]6x13~}?~{Jw#,4K4&3bTsV.>|R2!#F=B=4&RW#,SR138_#,G0K@:sIz#,4K4&F=B=V.>|R2!#724KKD>|V.@{#,;F5[V.KyRTJ$KD5[R2!#72>|:C8_6x6qOB#,9sQt6x|N^0Y<2#,JGN=1XJ$!#GpAj5L7@#,1X4&FdQt6xSR13V.#,4K1xV.@{#,5XV.VzR2!#IOSjK.AwVA#,S{IfU_#,4}Fd6(R2!#725XSP>x='!"Ll>.!"Ll@N!"LlB^!"LlO]!"LlO6#,1XX=H%V.#,Np=|R2!#NaT6V.#,5P=|V.#;NaS-V.#,5P13V.!#>|ETSPOUWh!"dj>.!"]s]g!"P!AV!"~}??~{U_#,1X=w82KwV.#,4K7|~}?~{V.Ky4&R2!#5P=|6x>2U_#,JQFdOUR2#;T66xLtU=U_#,S{HKV.=xR2#;FdKy>SRWU_#,@{R2#;~}?~{Jw6/U_#,@4R2#;~}?~{2]6`UOU_#,RIR2#;DqFpU_#,7|R2#;J^:'U_#,82R2#;3>8_6xHqU_#,35@4R2#;106x9cU_#,M=@4R2#;I"6xLu4oU_#,iT~}?~{R2#;IY6xMy@4U_#,S*>|R2#;4G106x18U_#,=xR2#;4GG?6x=xG}U_#,MKR2#;Ga35OH3v>SFd2`U_#,3BR2#;N^T<6xGk:MU_#,D1R2#;1|HEU_#,=+2;VXR2#;l:Fl6/U_#,BRR2#;@tE-U_#,>kR2#;I1BmHbJ3U_#,>|N^A8R2#;P|~}?~{2;75FdIaU_#,Gn?\R2#;W;W;tbtb#,PlSkHKQTU_#,J'~}?~{R2#;J}IMU_#,>=R2#;J}7#U_#,@'R2#;OH1)6x:sN7Fd~}?~{U_#,2;>+V.VAR2#;@4N/P;U_#,S{P]O"R2!#1xE-6xO`S-#,>C6x2;:O#,SV2;O`H%#,1X=w2lV.!#1x7G9sRf6`R2#,N)N^Nd=x#,WcRT2"A&AO5PH!HK6xRQ!#7rN)N^BG6xRW5PU_#,1XG\l6HK!#WdN4GW6x7#V.#,Tr2;7~#,2;7~TrDQSC!#WdRQGW8=6x7#2;PP#,Tr2;?ISC!#9J:OV.RTND#,FkV.RTNd#,JGN=1XH!!#AnKXPPRT=LFdCq#,TrCq7~#;AnKX2;PPRT=LFdCq#,TrCq2;7~!#AnKXPPU_#,Sk~}?~{O`5CR2!#~} - -~{5XPN5ZJ.~} - -~{KoWST;#:5XPNSPM(U_!"SP~}?~{U_!"SPV'U_!"SP0/U_!"SPOUU_!"SPT6U_!#NR?IRTMy#,1K?IRT@4#,T;M(!#M(PNU_#,OH>S8_Qt#,@{A85@#,RTU=Tr@{!#?IRTMy#,DQRT75#,T;~}?~{!#~}?~{PNU_#,5PN^18#,3v6xJ$V.#,5PHtSP18#,3v6x2;J$#,DQRT75#,2;@{!#NR3v6x2;@{#,1K3v6x2;@{#,T;V'!#V'PNU_#,5PKd@{NR#,NRN^3vR2#,R}6xH%V.#,An5P0k3v6x;wV.@{!#0/PNU_#,NROH>SV.#,1XS/V.RT4}5P!#Ht5POH>SV.#,S/6xNp4S#,2;S/6x4SV.!#OUPNU_#,NROH>SV.#,1X>S8_QtRT4}5P#;Ht5POH>SV.#,R}6xH%V.#,Np4SR2!#T6PNU_#,JF>yDQRTLtU=#,U=6x2;@{!#724KAyU_#,5XV.5@R2#,=+V.VAHN#,2;?I2;2lR2!#721xSPW_U_!"SP3[U_!"SPO]U_!"SP1@U_!"SPBRU_!"SP11U_!#724KAyU_#,7GLl5XV.TV#,=+V.9}R2!#7rJF>y#,RTR;;wJ.#,T;W_#;WdG?@tHu#,T;3[#;@tG?WdHu#,T;O]#;4s@tE-6x2;7~#,Sv5P~}?~{6xWTU=#,=+2;V*FdD\#,T;1@#;=+Hu2;QO#,=L5@2;Cw#,@tWdN^3##,3B1xW]:a#,T;BR#;=+2;D\AO5P#,RTIY:O~}?~{#,RTHu;wG?#,1xN^Q!7f#,T;11!#724KAyU_#,0\V.5@R2#,=+V.VAHN#,2;?I2;2lR2!#7r5XPNU_#,1xV.VzR2!#AO5PVFJ$#,cK@!#:q6x2;D\J9#,0.6x2;D\An#,BR6x2;D\VN#,F)Ht=>WS#,2;?ISCR2!#V*NaWdV.?IRT;w#,6x2;V*5PV.2;?I;w#,J$V.0kR2#;V*5PV.?I;w#,6x2;V*NaWdV.2;?IRT;w#,J$V.0kR2#;V*5PV.?I;w#,V*NaWdV.?IRT;w#,6x2;V*5XPNV.2;?IRTU=#,J$V.0kR2!#9JV*1xU_#,6/6x2;CT#,>Y6x2;Gn!#9JT;#:V*1KV*<:#,J$DK2;4y#;V*LlV*5X#,J$DK?IH+!#~} - -~{>E5X5ZJ.R;~} - -~{KoWST;#:SC1xV.7(#,SPI"5X#,SPGa5X#,SPUy5X#,SP=;5X#,SPai5X#,SPVX5X#,SP7:5X#,SPN'5X#,SPK@5X!#Vn:nWTU=Fd5XU_#,~}?~{I"5X#;HkHKV.5X2;InU_#,~}?~{Ga5X#;NR5CR`@{#,1K5CR`@{U_#,~}?~{Uy5X#;NR?IRTMy#,1K?IRT@4U_#,~}?~{=;5X#;Vn:nV.5XH}Jt#,OHVA6x5CLlOB~}?~{U_#,~}?~{ai5X#;HkHKV.5XIn#,133GRX6`U_#,~}?~{VX5X#;I=AV!"OUWh!">ZTs#,72DQPPV.5@U_#,~}?~{7:5X#;KySIHkU_0/#,Ky4S9iU_SX#,1K9Q?IRT;wNaV.~}?~{U_#,~}?~{N'5X#;<2U=Tr4f#,2;<2U=TrMvU_#,~}?~{K@5X!#JG9JI"5XTrN^U=#,Ga5XTrN^V9#,Uy5XTrN^9%#,=;5XTrN^>x#,ai5XTr:O=;#,VX5XTrBS#,7:5XTrPP#,N'5XTrD1#,K@5XTrU=!#9EV.IFSC1xU_#,D\J95PHKG0:s2;O`<0#,~}?~{9Q2;O`JQ#,9sH#,IOOB2;O`JU#,Wd@k6x2;|WcJ3!#=wQx6xNp@M#,2"Fx;}A&#,TK1x!A&!#1xJ?IuO]Tr2;>e#,N^KyMyTr9L#,InHkTr>P#,2;5CRQTr67!#JG9JFd1x2;P^6x=d#,2;Gs6x5C#,2;T<6xGW#,2;An6xPE#,={OiH%RI#,VAK@N^KyV.!#NaJ?N^~}?~{2F#,7G6q;uR2#;N^~}?~{C|#,7G6qJYR2!#An7"V.HU#,J?WdWxU_LiU4=s#,YHNTU_Li=;RC#,M6V.N^KyMy#,Vn!"~}?~{V.SBR2!#9JIFSC1xU_#,F)HgBJH;!#BJH;U_#,3#I=V.I_R2!#;wFdJWTrN2VA#,;wFdN2TrJWVA#,;wFdVPTrJWN2>cVA!#8RNJ1x?IJ9HgBJH;:u#?T;?I!#7rNbHKSkT=HKO`6qR2#,51FdM,V[6xHR2HgWsSRJV!#JG9J7=BmBqBV#,N4WcJQR2#;FkSBHgR;#,U~V.5@R2#;8UHa=T5C#,5XV.@mR2!#9JIFSC1xU_#,P/JVHtJ9R;HK#,2;5CRQR2!#=+>|V.JB#,>2RTSD#,U}RTVN#,D\S^J?WdV.6zD?#,J9V.N^V*#;RWFdJB#,8oFdD1#,J9HKN^J6#;RWFd>S#,SXFdM>#,J9Cq2;5CBG!#K'SkV.FZ#,Hg5G8_6xH%FdL]#;K'SkV.InHkVn:nV.5X#,6x7"Fd;z!#HtG}H:Qr#,G}6xMy#,G}6x@4#,D*V*KyV.!#>[H}>|V.~}?~{#,M6V.l6OU#,4KN==+>|V.JBR2!#>E5XV.1d#,G|IlV.A&#,HKGiV.@m#,2;?I2;2lR2!#72~}?~{?MV.5@#,InTrW(#,G3TrI"!#H%9zT=>36xJ&U_#,>x5XR2#;KD39U_#,ai5XR2#;HkInU_#,VX5XR2#;HkG3U_#,Ga5XR2#;139LG00/U_#,N'5XR2#;N^KyMyU_#,K@5XR2!#JG9JI"5XNa=+R;FdV>#,Ga5XNa=+J9V.Jt#,Uy5XNa=+GwFd:s#,=;5XNa=+=wFdJX#,=;5XNa=+9LFd=a#,ai5XNa=+=wFdJQ#,VX5XNa=+#,N'5XNa=+H{Fd~}?~{#,K@5XNa=+J>V.RT2;;n!#9J1xV.Gi#:N'TrSy#,2;5CRQTr67#,9}Tr4S!#JG9J2;V*Vn:nV.D1U_#,2;D\T$=;#;2;V*I=AV!"OUWh!">ZTsV.PNU_#,2;D\PP>|#;2;SCOg5<#,2;D\5C5X@{!#KDNeU_#,R;2;V*#,7G0TMuV.1xR2!#7r0TMuV.1x#,7%4s9z#,TrFd~}?~{2;5C>[#;M~|V.~}?~{#,HtJ9R;HK!#78V.RTJB#,Np8fRTQT#;78V.RT:&#,Np8fRT@{!#M6V.Mv5XH;:s4f#,O]V.K@5XH;:sIz!#7r~}?~{O]l6:&#,H;:sD\~}?~{J$0\!#9J~}?~{1xV.JB#,TZK3Oj5PV.Rb#,2"5PR;Or#,G'@oI1=+#,JGN=GID\3IJB!#JG9JU~>YV.HU#,RD9XU[7{#,N^M(FdJ9#,@wl6@HCmV.IO#,RTVoFdJB!#5PHK?*~}?~{#,1XX=HkV.#,OHFdKy0.#,N"SkV.FZ#,vU=JB!#JG9JJ\!#~} - -~{;p9%5ZJ.6~~} - -~{KoWST;#:72;p9%SPNe#:R;T;;pHK#,6~T;;p;}#,H}T;;p~}?~{#,KDT;;p?b#,NeT;;p6S!#PP;p1XSPRr#,Rr1XKX>_!#7";pSPJ1#,Fp;pSPHU!#J1U_#,LlV.ToR2!#HUU_#,TBTZ;~!"1Z!"Rm!"~}?~{R2!#724KKDK^U_#,7gFpV.HUR2!#72;p9%#,1XRrNe;pV.1d6xS&V.#:;p7"l6DZ#,TrTgS&V.l6Mb#;;p7"6xFd1x>2U_#,4}6xNp9%#,<+Fd;pA&#,?I4S6x4SV.#,2;?I4STrIO!#;p?I7"l6Mb#,N^4}l6DZ#,RTJ17"V.#,;p7"IO7g#,N^9%OB7g#,Vg7g>C#,R97gV9!#72>|1XV*Ne;pV.1d#,RTJ}JXV.!#9JRT;pWt9%U_Cw#,RTK.Wt9%U_G?!#K.?IRT>x#,2;?IRT6a!#7rU=J$9%H!6x2;6hFd9&U_PW#,C|T;!07QAt!1!#9JT;#:CwVwBGV.#,A<=+6hV.#,7G@{2;6/#,7G5C2;SC#,7GN#2;U=!#Vw2;?IRTE-6xPKJ&#,=+2;?IRT~}?~{6x9%U=!#:Ol6@{6x6/#,2;:Ol6@{6xIO!#E-?IRT84O2#,~}?~{?IRT84K5#,Mv9z2;?IRT844f#,K@U_2;?IRT84Iz!#9JCwVwIwV.#,A<=+>/V.!#4K029zH+>|V.5@R2!#~} - -~{SCtB;0Y=p#,2;V*5PV.GiU_#,2;HJV.VAR2#,7GCqV.=+R2#,7GVwV.WtR2#,7GJ$V.VwR2!#9JCw>}OM=+KyRT6/6xJ$HK#,3I9&3vl6~}?~{U_#,OHV*R2!#OHV*U_#,2;?IH!l69mIq#,2;?IOsl6JB#,2;?IQil66H#,1XH!l6HK#,V*5PV.GiU_R2!#9JSCcFp#,D*V*Fd5@#,JGN=Iq}V.1&R2!#Og|V.JB#,D*GWl6|V.KyS{;w#,3GV.KyS{9%#,HKV.KyS{I1#,1XOHV*FdJX=+!"WsSR!"~}?~{U_!"CEU_!"IaHKV.PUC{#,AnNa}OM=+#,D\RTIOVG~}?~{|V.KyJQ6x6/R2!#~} diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt deleted file mode 100644 index e15fe5c..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -始计第一 - -孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。 - -故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五曰法。 - -道者,令民与上同意,可与之死,可与之生,而不畏危也;天者,阴阳、寒暑、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知者不胜。 - -故校之以计,而索其情,曰:主孰有道?将孰有能?天地孰得?法令孰行?兵?孰强?士卒孰练?赏罚孰明?吾以此知胜负矣。 - -将听吾计,用之必胜,留之;将不听吾计,用之必败,去之。 - -计利以听,乃?之势,以佐其外。势者,因利而制权也。 - -兵者,诡道也。故能而示之不能,用而示之不用,近而示之远,远而示之近。利而诱之,乱而取之,实而备之,强而避之,怒而挠之,卑而骄之,佚而劳之,亲而离之,攻其无备,出其不意。此兵家之胜,不可先传也。 - -夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况无算乎!吾以此观之,胜负见矣。 - -作战第二 - -孙子曰:凡用兵之法,驰车千?,革车千乘,带甲十万,千里馈粮。则内外之费,宾客之用,胶漆之材,车甲之奉,日费千金,然后十万之师举矣。 - -其用战也,贵胜,久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐,屈力?货,则诸侯乘其弊而起,虽有智者,不能善其后矣。故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。 - -善用兵者,役不再籍,粮不三载,取用於国,因粮於敌,故军食可足也。国之贫於师者远输,远输则百姓贫;近於师者贵卖,贵卖则百姓竭,财竭则急於丘役。力屈财?,中原内虚於家,百姓之费,十去其七;公家之费,破军罢马,甲胄矢弩,戟?矛?,丘牛大车,十去其六。 - -故智将务食於敌,食敌一钟,当吾二十钟;萁秆一石,当吾二十石。故杀敌者,怒也;取敌之利者,货也。故车战,得车十乘以上,赏其先得者,而更其旌旗。车杂而乘之,卒善而养之,是谓胜敌而益强。 - -故兵贵胜,不贵久。故知兵之将,民之司命。国家安危之主也。 - -谋攻第三 - -孙子曰:凡用兵之法,全国?上,破国次之;全军?上,破军次之;全旅?上,破旅次之;全卒?上,破卒次之;全伍?上,破伍次之。是故百战百胜,非善之善者也;不战而屈人之兵,善之善者也。 - -故上兵伐谋,其次伐交,其次伐兵,其下攻城。攻城之法,?不得已。修???,具器械,三月而后成;距?,又三月而后已。将不胜其忿,而蚁附之,杀士三分之一,而城不拔者,此攻之灾也。 - -故善用兵者,屈人之兵,而非战也,拔人之城而非攻也,毁人之国而非久也,必以全争於天下,故兵不顿而利可全,此谋攻之法也。 - -故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。故小敌之坚,大敌之擒也。 - -夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故君之所以患於军者三:不知军之不可以进而谓之进,不知军之不可以退而谓之退,是谓縻军;不知三军之事,而同三军之政,则军士惑矣;不知三军之权,而同三军之任,则军士疑矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。 - -故知胜有五:知可以战与不可以战者,胜。识?寡之用者,胜。上下同欲者,胜。以虞待不虞者,胜。将能而君不御者,胜。此五者,知胜之道也。 - -故曰:知己知彼,百战不?;不知彼而知己,一胜一负;不知彼不知己,每战必败。 - -军形第四 - -孙子曰:昔之善战者,先?不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能?不可胜,不能使敌必可胜。故曰:胜可知,而不可?。 - -不可胜者,守也;可胜者,攻也。守则不足,攻则有?。善守者,藏於九地之下,善攻者,动於九天之上,故能自保而全胜也。 - -见胜不过?人之所知,非善之善者也;战胜而天下曰善,非善之善者也。故举秋毫不?多力,见日月不?明目,闻雷霆不?聪耳。古之善战者,胜於易胜者也。故善战者之胜也,无智名,无勇功,故其战胜不忒。不忒者,其所措必胜,胜已败者也。故善战者,先立於不败之地,而不失敌之败也。是故胜兵先胜,而后求战,败兵先战而后求胜。善用兵者,修道而保法,故能?胜败之政。 - -兵法:一曰度,二曰量,三曰数,四曰称,五曰胜。地生度,度生量,量生数,数生称,称生胜。故胜兵若以?称?,败兵若以?称?。胜者之战,若决积水於千仞之?者,形也。 - -兵势第五 - -孙子曰:凡治?如治寡,分数是也;斗?如斗寡,形名是也;三军之?,可使必受敌而无败者,奇正是也;兵之所加,如以?投卵者,虚实是也。 - -凡战者,以正合,以奇胜。故善出奇者,无穷如天地,不竭如江海。终而复始,日月是也。死而?生,四时是也。声不过五,五声之变,不可胜听也;色不过五,五色之变,不可胜观也;味不过五,五味之变,不可胜尝也;战势,不过奇正,奇正之变,不可胜穷也。奇正相生,如循环之无端,熟能穷之哉? - -激水之疾,至於漂石者,势也;?鸟之疾,至於毁折者,节也。是故善战者,其势险,其节短。势如张弩,节如发机。 - -纷纷??,斗乱而不可乱也;浑浑沌沌,形圆而不可败也。乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必取之。以利动之,以卒待之。 - -故善战者,求之於势,不责於人;故能择人而任势。任势者,其战人也,如转木石。木石之性,安则静,危则动,方则止,圆则行。故善战人之势,如转圆石於千仞之山者,势也。 - -虚实第六 - -孙子曰:凡先处战地而待敌者佚,后处战地而趋战者劳。 - -故善战者,致人而不致於人。能使敌人自至者,利之也;能使敌人不得至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所不意。行千里而不劳者,行於无人之地也;攻而必取者,攻其所不守也。守而必固者,守其所不攻也。 - -故善攻者,敌不知其所守;善守者,敌不知其所攻。微乎微乎,至於无形;神乎神乎,至於无声,故能?敌之司命。进而不可御者,冲其虚也;退而不可追者,速而不可及也。故我欲战,敌虽高垒深沟,不得不与我战者,攻其所必救也;我不欲战,虽画地而守之,敌不得与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专?一,敌分?十,是以十攻其一也。则我?敌寡,能以?击寡者,则吾之所与战者约矣。吾所与战之地不可知,不可知则敌所备者多,敌所备者多,则吾所与战者寡矣。故备前则后寡,备后则前寡,备左则右寡,备右则左寡,无所不备,则无所不寡。寡者,备人者也;?者,使人备己者也。故知战之地,知战之日,则可千里而会战;不知战之地,不知战日,则左不能救右,右不能救左,前不能救后,后不能救前,而况远者数十里,近者数里乎!以吾度之,越人之兵虽多,亦奚益於胜哉!故曰:胜可?也。敌虽?,可使无斗。故策之而知得失之计,候之而知动静之理,形之而知死生之地,角之而知有?不足之处。故形兵之极,至於无形。无形则深间不能窥,智者不能谋。因形而措胜於?,?不能知。人皆知我所以胜之形,而莫知吾所以制胜之形。故其战胜不?,而应形於无穷。夫兵形象水,水之行避高而趋下,兵之形避实而击虚;水因地而制流,兵因敌而制胜。故兵无常势,水无常形。能因敌变化而取胜者,谓之神。故五行无常胜,四时无常位,日有短长,月有死生。 - -军争第七 - -孙子曰: 凡用兵之法,将受命於君,合军聚?,交和而舍,莫难於军争。军争之难者,以迂?直,以患?利。故迂其途,而诱之以利,后人发,先人至,此知迂直之计者也。军争?利,军争?危。举军而争利则不及,委军而争利则?重捐。是故?甲而趋,日夜不处,倍道兼行,百?而争利,则擒三将军,劲者先,疲者后,其法十一而至;五十里而争利,则蹶上将军,其法半至;三十里而争利,则三分之二至。是故军无?重则亡,无粮食则亡,无委积则亡。故不知诸侯之谋者,不能豫交;不知山林、险阻、沮泽之形者,不能行军;不用乡导者,不能得地利。故兵以诈立,以利动,以分和?变者也。故其疾如风,其徐如林,侵掠如火,不动如山,难知如阴,动如雷震。掠乡分?,廓地分利,悬权而动。先知迂直之计者胜,此军争之法也。《军政》曰:“言不相闻,故?之金鼓;视不相见,故?之旌旗。”夫金鼓旌旗者,所以一民之耳目也。民既专一,则勇者不得独进,怯者不得独退,此用?之法也。故夜战多金鼓,昼战多旌旗,所以变人之耳目也。三军可夺气,将军可夺心。是故朝气锐,昼气惰,暮气归。善用兵者,避其锐气,击其惰归,此治气者也。以治待乱,以静待哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治变者也。故用兵之法,高陵勿向,背丘勿逆,佯北勿从,锐卒勿攻,饵兵勿食,归师勿遏,围师遗?,穷寇勿迫,此用兵之法也。 - -九变第八 - -孙子曰: 凡用兵之法,将受命於君,合军聚合。泛地无舍,衢地合交,绝地无留,围地则谋,死地则战,途有所不由,军有所不击,城有所不攻,地有所不争,君命有所不受。故将通於九变之利者,知用兵矣;将不通九变之利,虽知地形,不能得地之利矣;治兵不知九变之术,虽知五利,不能得人之用矣。是故智者之虑,必杂於利害,杂於利而务可信也,杂於害而患可解也。是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无恃其不来,恃吾有以待之;无恃其不攻,恃吾有所不可攻也。故将有五危,必死可杀,必生可虏,忿速可侮,廉洁可辱,爱民可烦。凡此五者,将之过也,用兵之灾也。覆军杀将,必以五危,不可不察也。 - -行军第九 - -孙子曰:凡处军相敌,绝山依?,视生处高,战隆无登,此处山之军也。绝水必远水,客绝水而来,勿迎之於水内,令半渡而击之利,欲战者,无附於水而迎客,视生处高,无迎水流,此处水上之军也。绝斥泽,唯亟去无留,若交军於斥泽之中,必依水草而背?树,此处斥泽之军也。平陆处易,右背高,前死后生,此处平陆之军也。凡此四军之利,黄帝之所以胜四帝也。凡军好高而恶下,贵阳而贱阴,养生而处实,军无百疾,是谓必胜。丘陵堤防,必处其阳而右背之,此兵之利,地之助也。上雨水流至,欲涉者,待其定也。凡地有绝涧、天井、天牢、天罗、天陷、天隙,必亟去之,勿近也。吾远之,敌近之;吾迎之,敌背之。军旁有险阻、潢井、蒹葭、小林、??者,必谨覆索之,此伏?之所处也。敌近而静者,恃其险也;远而挑战者,欲人之进也;其所居易者,利也;?树动者,来也;?草多障者,疑也;鸟起者,伏也;兽骇者,覆也;尘高而锐者,车来也;卑而广者,徒来也;散而条达者,樵?也;少而往来者,营军也;辞卑而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;半进半退者,诱也;杖而立者,饥也;汲而先饮者,渴也;见利而不进者,劳也;鸟集者,虚也;夜呼者,恐也;军扰者,将不重也;旌旗动者,乱也;吏怒者,倦也;杀马肉食者,军无粮也;悬?不返其舍者,穷寇也;谆谆翕翕,徐与人言者,失?也;数赏者,窘也;数罚者,困也;先暴而后畏其?者,不精之至也;来委谢者,欲休息也。兵怒而相迎,久而不合,又不相去,必谨察之。兵非贵益多也,惟无武进,足以并力料敌取人而已。夫惟无虑而易敌者,必擒於人。卒未亲而罚之,则不服,不服则难用。卒已亲附而罚不行,则不可用。故合之以文,齐之以武,是谓必取。令素行以教其民,则民服;令素不行以教其民,则民不服。令素行者,与?相得也。 - -地形第十 - -孙子曰:地形有通者、有?者、有支者、有隘者、有险者、有远者。我可以往,彼可以来,曰通。通形者,先居高阳,利粮道,以战则利。可以往,难以返,曰?。?形者,敌无备,出而胜之,敌若有备,出而不胜,难以返,不利。我出而不利,彼出而不利,曰支。支形者,敌虽利我,我无出也,引而去之,令敌半出而击之利。隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,不盈而从之。险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势均难以挑战,战而不利。凡此六者,地之道也,将之至任,不可不察也。凡兵有走者、有驰者、有陷者、有崩者、有乱者、有北者。凡此六者,非天地之灾,将之过也。夫势均,以一击十,曰走;卒强吏弱,曰驰;吏强卒弱,曰陷;大吏怒而不服,遇敌?而自战,将不知其能,曰崩;将弱不严,教道不明,吏卒无常,陈兵纵横,曰乱;将不能料敌,以少合?,以弱击强,兵无选锋,曰北。凡此六者,败之道也,将之至任,不可不察也。夫地形者,兵之助也。料敌制胜,计险隘远近,上将之道也。知此而用战者必胜,不知此而用战者必败。故战道必胜,主曰无战,必战可也;战道不胜,主曰必战,无战可也。故进不求名,退不避罪,唯民是保,而利於主,国之宝也。视卒如婴儿,故可以与之赴深溪;视卒如爱子,故可与之俱死。厚而不能使,爱而不能令,乱而不能治,譬若骄子,不可用也。知吾卒之可以击,而不知敌之不可击,胜之半也;知敌之可击,而不知吾卒之不可以击,胜之半也;知敌之可击,知吾卒之可以击,而不知地形之不可以战,胜之半也。故知兵者,动而不迷,举而不穷。故曰:知彼知己,胜乃不殆;知天知地,胜乃可全。 - -九地第十一 - -孙子曰:用兵之法,有散地,有轻地,有争地,有交地,有衢地,有重地,有泛地,有围地,有死地。诸侯自战其地者,?散地;入人之地不深者,?轻地;我得亦利,彼得亦利者,?争地;我可以往,彼可以来者,?交地;诸侯之地三属,先至而得天下?者,?衢地;入人之地深,背城邑多者,?重地;山林、险阻、沮泽,凡难行之道者,?泛地;所由入者隘,所从归者迂,彼寡可以击吾之?者,?围地;疾战则存,不疾战则亡者,?死地。是故散地则无战,轻地则无止,争地则无攻,交地则无绝,衢地则合交,重地则掠,泛地则行,围地则谋,死地则战。古之善用兵者,能使敌人前后不相及,?寡不相恃,贵贱不相救,上下不相收,卒离而不集,兵合而不齐。合於利而动,不合於利而止。敢问敌?而整将来,待之若何曰:先夺其所爱则听矣。兵之情主速,乘人之不及。由不虞之道,攻其所不戒也。凡?客之道,深入则专。主人不克,掠於饶野,三军足食。谨养而勿劳,并气积力,运兵计谋,?不可测。投之无所往,死且不北。死焉不得,士人尽力。兵士甚陷则不惧,无所往则固,深入则拘,不得已则斗。是故其兵不修而戒,不求而得,不约而亲,不令而信,禁祥去疑,至死无所之。吾士无?财,非恶货也;无?命,非恶寿也。令发之日,士卒坐者涕沾襟,偃卧者涕交颐,投之无所往,诸、?之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵可使如率然乎?曰可。夫吴人与越人相恶也,当其同舟而济而遇风,其相救也如左右手。是故方马埋轮,未足恃也;齐勇如一,政之道也;刚柔皆得,地之理也。故善用兵者,携手若使一人,不得已也。将军之事,静以幽,正以治,能愚士卒之耳目,使之无知;易其事,革其谋,使人无识;易其居,迂其途,使民不得虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而发其机。若驱群羊,驱而往,驱而来,莫知所之。聚三军之?,投之於险,此谓将军之事也。九地之变,屈伸之力,人情之理,不可不察也。凡?客之道,深则专,浅则散。去国越境而师者,绝地也;四彻者,衢地也;入深者,重地也;入浅者,轻地也;背固前隘者,围地也;无所往者,死地也。是故散地吾将一其志,轻地吾将使之属,争地吾将趋其后,交地吾将谨其守,交地吾将固其结,衢地吾将谨其恃,重地吾将继其食,泛地吾将进其途,围地吾将塞其?,死地吾将示之以不活。故兵之情:围则御,不得已则斗,过则从。是故不知诸侯之谋者,不能预交;不知山林、险阻、沮泽之形者,不能行军;不用乡导,不能得地利。四五者,一不知,非霸王之兵也。夫霸王之兵,伐大国,则其?不得聚;威加於敌,则其交不得合。是故不争天下之交,不养天下之权,信己之私,威加於敌,则其城可拔,其国可隳。施无法之赏,悬无政之令。犯三军之?,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然后存,陷之死地然后生。夫?陷於害,然后能?胜败。故?兵之事,在顺详敌之意,并敌一向,千里杀将,是谓巧能成事。是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开?,必亟入之,先其所爱,微与之期,践墨随敌,以决战事。是故始如处女,敌人开户;后如脱兔,敌不及拒。 - -火攻第十二 - -孙子曰:凡火攻有五:一曰火人,二曰火积,三曰火?,四曰火库,五曰火队。行火必有因,因必素具。发火有时,起火有日。时者,天之燥也。日者,月在箕、壁、翼、?也。凡此四宿者,风起之日也。凡火攻,必因五火之变而应之:火发於内,则早应之於外;火发而其兵静者,待而勿攻,极其火力,可从而从之,不可从则上。火可发於外,无待於内,以时发之,火发上风,无攻下风,昼风久,夜风止。凡军必知五火之变,以数守之。故以火佐攻者明,以水佐攻者强。水可以绝,不可以夺。夫战胜攻取而不惰其功者凶,命曰“费留”。故曰:明主虑之,良将惰之,非利不动,非得不用,非危不战。主不可以怒而兴师,将不可以?而攻战。合於利而动,不合於利而上。怒可以复喜,?可以复说,亡国不可以复存,死者不可以复生。故明主慎之,良将警之。此安国全军之道也。 - -用间第十三 - -孙子曰: 凡兴师十万,出征千里,百姓之费,公家之奉,日费千金,内外骚动,怠於道路,不得操事者,七十万家。相守数年,以争一日之胜,而爱爵禄百金,不知敌之情者,不仁之至也,非民之将也,非主之佐也,非胜之主也。故明君贤将所以动而胜人,成功出於?者,先知也。先知者,不可取於鬼神,不可象於事,不可验於度,必取於人,知敌之情者也。故用间有五:有因间,有内间,有反间,有死间,有生间。五间俱起,莫知其道,是谓神纪,人君之宝也。乡间者,因其乡人而用之;内间者,因其官人而用之;反间者,因其敌间而用之;死间者,??事於外,令吾闻知之而传於敌间也;生间者,反报也。故三军之事,莫亲於间,赏莫厚於间,事莫密於间,非圣贤不能用间,非仁义不能使间,非微妙不能得间之实。微哉微哉!无所不用间也。间事未发而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲杀,必先知其守将、左右、?者、门者、舍人之姓名,令吾间必索知之。敌间之来间我者,因而利之,导而舍之,故反间可得而用也;因是而知之,故乡间、内间可得而使也;因是而知之,故死间??事,可使告敌;因是而知之,故生间可使如期。五间之事,主必知之,知之必在於反间,故反间不可不厚也。昔殷之兴也,伊挚在夏;周之兴也,吕牙在殷。故明君贤将,能以上智?间者,必成大功。此兵之要,三军之所恃而动也。 diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt deleted file mode 100644 index ef38e4b..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -ʼƵһ - -Իߣ֮£֮أ֮ɲҲ - -ʾ֮£У֮Լƣ飺һԻԻ죬ԻأԻԻ - -ߣͬ⣬֮֮ηΣҲߣʱҲߣԶסҲߣǡšʡ¡ҲߣơٵҲߣĪţ֪֮ʤ֪߲ʤ - -У֮Լƣ飬ԻеܣãУǿʿͷԴ֪ʤӡ - -ƣ֮ʤ֮ƣ֮ذܣȥ֮ - -˞֮ƣ⡣ߣȨҲ - -ߣҲܶʾ֮ܣöʾ֮ãʾ֮ԶԶʾ֮֮Ҷȡ֮ʵ֮ǿ֮ŭ֮֮֮׶֮ޱ䲻⡣˱֮ʤȴҲ - -δսʤߣҲδս㲻ʤߣҲʤ㲻ʤԴ˹֮ʤӡ - -սڶ - -Իñ֮۳ǧ񆣬ﳵǧˣʮǧ֮ѣ֮ã֮ģ֮շǧȻʮ֮ʦӡ - -սҲʤ۱񣬹ñʦò㡣۱׶ߣӡʱ׾٣δ֮Ҳöߣδ֮Ҳʲ֪ñ֮ߣܾ֪ñ֮Ҳ - -ñߣ۲ټأȡ춹춵УʾʳҲ֮ƶʦԶ䣬Զƶʦ߹սߣƽۡƚԭ춼ң֮ѣʮȥߣ֮ѣƾʸꪘJìţ󳵣ʮȥ - -ǽʳ춵УʳһӣʮӣݽһʯʮʯɱߣŭҲȡ֮ߣҲʳսóʮϣȵߣ졣Ӷ֮ƶ֮νʤжǿ - -ʱʤá֪֮֮˾ҰΣ֮Ҳ - -ı - -Իñ֮ȫϣƹ֮ȫϣƾ֮ȫÞϣô֮ȫϣ֮ȫϣ֮ǹʰսʤ֮Ҳս֮֮Ҳ - -ϱıηη¹ǡ֮鲻ѡޙMݜе¶ɣ鞣¶ѡʤޣϸ֮ɱʿ֮һDzߣ˹֮Ҳ - -ñߣ֮սҲ֮ǶǹҲ֮ǾҲȫ£ʱٶȫı֮Ҳ - -ñ֮ʮΧ֮֮֮սܱ֮֮֮С֮ᣬ֮Ҳ - -ߣ֮Ҳǿ϶ʾ֮Ի춾֪֮Խν֪֮֮˶ν֮ˣν֪֮£֮ͬʿӣ֪֮Ȩ֮ͬΣʿӡȻɣ֮ӡνҾʤ - -֪ʤ壺֪ս벻սߣʤʶ֮ߣʤͬߣʤݴߣʤܶߣʤߣ֪ʤ֮Ҳ - -Ի֪֪ˣսO֪˶֪һʤһ֪˲֪ÿսذܡ - -ε - -Ի֮սߣȞ鲻ʤԴ֮ʤʤڼʤڵСսߣܞ鲻ʤʹбؿʤԻʤ֪ɞ顣 - -ʤߣҲʤߣҲ㣬Nߣ춾ŵ֮£ƹߣ춾֮ϣԱȫʤҲ - -ʤ֪֮֮ҲսʤԻƣ֮Ҳʾ²Ŀ϶֮սߣʤʤҲս֮ʤҲ¹սʤ߯߯ߣʤʤѰҲսߣ춲֮أʧ֮Ҳǹʤʤսܱսʤñߣ޵ܞʤ֮ - -һԻȣԻԻԻƣԻʤȣƣʤʤ愳㏣ܱ㏳愡ʤ֮սˮǧ֮GߣҲ - -Ƶ - -ԻαιѣҲ綷ѣҲ֮ʹܵжްߣҲ֮ӣԴVͶߣʵҲ - -սߣϣʤƳߣأ罭նʼҲʱҲ壬֮䣬ʤҲɫ壬ɫ֮䣬ʤҲζ壬ζ֮䣬ʤҲսƣ֮䣬ʤҲѭ֮޶ˣ֮գ - -ˮ֮ƯʯߣҲv֮춻ߣҲǹսߣգڶ̡󣬽緢 - -׷׼ҶҲ磬ԲɰҲΣ£ǿңҲӣҲǿҲƶߣ֮бش֮֮бȡ֮֮֮ - -սߣ֮ƣˣ˶ơߣսҲתľʯľʯ֮ԣ򾲣Σ򶯣ֹԲСս֮ƣתԲʯǧ֮ɽߣҲ - -ʵ - -Իȴսضսضս͡ - -սߣ˶ˡʹߣ֮Ҳʹ˲ߣ֮Ҳʵܼ֮֮֮ܶ⡣ǧߣ֮ҲȡߣҲضعߣҲ - -ƹߣв֪أߣв֪΢΢Σܞ֮˾ߣҲ˶׷ߣٶɼҲսòսߣؾҲҲս仭ض֮вսߣ֮Ҳ˶Σרз֡רһз֞ʮʮһҲұйѣԱߣ֮սԼӡս֮ز֪֪߶࣬߶࣬ս߹ӡʱǰѣǰѣҹѣѣѡߣҲߣʹ˱Ҳ֪ս֮أ֪ս֮գǧս֪ս֮أ֪սգܾңҲܾǰܾȺ󣬺ܾǰԶʮ֮Խ֮࣬ʤգԻʤɞҲ䱊ʹ޶ʲ֪֮ʧ֮ƣ֪֪֮֮֮֮أ֪֮N֮α֮Ρ䲻߲ܿıζʤ춱֪˽֪ʤ֮ΣĪ֪ʤ֮ΡսʤͣӦˮˮ֮бܸ߶£֮αʵ飻ˮضжʤʱ޳ƣˮ޳Ρб仯ȡʤߣν֮񡣹޳ʤʱ޳λж̳ - - - -Ի ñ֮춾Ͼ۱ͶᣬĪ춾֮ߣ؞ֱԻ;֮˷ֱ֪֮ҲΣپ򲻼ίwؾ衣ǹʒԼ׶ҹУeȣƣߺ䷨ʮһʮϽ䷨ʮ֮ǹʾwʳίʲ֪֮ıߣԥ֪ɽ֡衢֮ߣо絼ߣܵõʱթԷֺ͞Ҳ伲磬֣𣬲ɽֱ֪طȨֱ֪֮ʤ˾֮ҲԻԲţʞ֮ģӲʞ֮졣ߣһ֮ĿҲרһ߲ö߲öˣñ֮Ҳҹսģս죬Ա֮ĿҲɶɶġǹʳ裬ĺ顣ñߣ飬ҲδңԾҲԽԶͣԱҲ֮죬޻֮£αҲñ֮򣬱棬ӣ𹥣ʳʦΧʦIȣñ֮Ҳ - -űڰ - -Ի ñ֮춾ϾۺϡᣬغϽΧıս;ɣܡʽͨ춾ű֮ߣ֪ñӣͨű֪֮Σܵõ֮ӣα֪ű֪֮֮ܵӡǹ֮ǣҲ춺ɽҲǹԺҵñ֮䲻Դ֮䲻ɹҲʽΣɱ²ٿ꣬裬ɷߣ֮Ҳñ֮ҲɱΣɲҲ - -оھ - -ԻУɽYߣս¡޵ǣ˴ɽ֮ҲˮԶˮ;ˮӭ֮ˮڣɶ֮սߣ޸ˮӭͣߣӭˮ˴ˮ֮ҲΨؽȥ춳֮Уˮݶ˴֮Ҳƽ½ףұߣǰ˴ƽ½֮Ҳľ֮Ƶ֮ʤĵҲø߶£ʵްټνʤ̷شұ֮˱֮֮Ҳˮߣ䶨Ҳо쾮Ρޡݡ϶ؽȥ֮ҲԶ֮н֮ӭ֮б֮衢꾮硢С֡[Cߣؽ֮˷֮ҲнߣҲԶսߣ֮ҲߣҲߣҲݶߣҲߣҲ޺ߣҲ߶ߣҲߣͽҲɢߣԒҲٶߣӪҲDZߣҲǿߣҲᳵȳߣҲԼߣıҲ߶±ߣҲߣҲȶߣҲߣҲߣҲߣҲҹߣҲߣҲ춯ߣҲŭߣҲɱʳߣҲIߣҲ׻׻⣬ߣʧҲߣҲߣҲȱη䱊ߣ֮ҲίлߣϢҲŭӭöϣֲȥؽ֮ǹҲΩԲϵȡ˶ѡΩǶ׵ߣˡδ׶֮򲻷á׸У򲻿áʺ֮ģ֮䣬νȡԽزԽ񲻷ߣ뱊Ҳ - -εʮ - -ԻͨߡВߡ֧ߡаߡߡԶߡҿ˿ԻͨͨߣȾӸսԷԻ졣ߣޱʤ֮бʤԷҳ˳Ի֧֧ߣң޳Ҳȥ֮а֮ߣȾ֮ӯ֮ԴСȾ֮ӯӣӯ֮ߣȾ֮ؾӸԴУȾ֮ȥ֮ҲԶߣƾսսߣ֮Ҳ֮ΣɲҲߡгߡߡбߡߡбߡߣ֣֮֮ҲƾһʮԻߣǿԻۣǿԻݣŭБս֪ܣԻϣ̵޳±ݺᣬԻңϵУٺϱǿѡ棬Իߣ֮Ҳ֮ΣɲҲߣ֮ҲϵʤհԶϽ֮Ҳ֪˶ս߱ʤ֪˶ս߱ذܡսʤԻսսҲսʤԻսսҲʽ˲ΨDZ֮ҲӤʿ֮Ϫ簮ӣʿ֮ʹҶΣƩӣҲ֪֮Ի֪֮ɻʤ֮Ҳ֪֮ɻ֪֮Իʤ֮Ҳ֪֮ɻ֪֮Ի֪֮սʤ֮Ҳ֪ߣԣٶԻ֪֪ʤ˲֪֪أʤ˿ȫ - -ŵصʮһ - -Իñ֮ɢأأأнأأصأзأΧأءսߣɢأ֮زߣأҵ˵ߣأҿ˿ߣ齻أ֮±ߣأ֮ضߣصأɽ֡衢󣬷֮ߣ鷺أ߰ӹأ˹ѿԻ֮ߣΧأս棬սߣءǹɢսֹ޹޾ϽصӣУΧıս֮ñߣʹǰ༰Ѳѣȣ²գ϶롣ֹʵб֮Իȶӡ֮٣֮ɲ֮Ҳ֮ר˲ˣҰʳͣ˱ı鲻ɲ⡣Ͷ֮Ҳɲãʿ˾ʿ򲻾壬̣У򶷡ǹ޶䣬ãԼףţȥɣ֮ʿNƣǶҲNǶҲ֮գʿմ齻ãͶ֮֮ҲñߣƩȻȻߣɽ֮ҲβββʱʹȻԻɡԽҲͬ۶ö磬Ҳ֡ǹʷ֣δҲһ֮ҲԵã֮ҲñߣЯʹһˣҲ֮£ģΣʿ֮Ŀʹ֪֮£ıʹʶӣ;ʹ񲻵ǡ˧֮ڣǸ߶ȥݣ˧֮֮أȺĪ֪֮֮Ͷ֮գν֮Ҳŵ֮䣬֮֮ɲҲ֮רdzɢȥԽʦߣҲijߣҲߣصҲdzߣҲǰߣΧҲߣҲǹɢὫһ־Ὣʹ֮Ὣ󣬽ὫأὫᣬὫѣصὫʳὫ;ΧὫIὫʾ֮Բʱ֮飺Χ򶷣ӡǹʲ֪֮ıߣԤ֪ɽ֡衢֮ߣо絼ܵõߣһ֪ǰ֮Ҳ֮䱊þۣ춵У佻úϡǹʲ֮֮Ȩż֮˽춵УǿɰΣġʩ޷֮֮ͣ֮ʹһˡ֮£ԣ֮ԺͶ֮Ȼ棬֮Ȼ춺Ȼܞʤܡʞ֮£˳֮⣬һǧɱνܳ¡ǹ֮գĹ۷ͨʹ֮ϣ¡˿Hؽ֮΢֮ڣīУԾս¡ǹʼ紦Ů˿ãвܡ - -𹥵ʮ - -Ի壺һԻˣԻԻwԻ⣬Իӡлؾߡʱաʱߣ֮ҲߣڻڡFҲߣ֮Ҳ𹥣֮Ӧ֮ڣӦ֮⣻𷢶ߣ𹥣ɴӶ֮ɴϡɷ⣬޴ڣʱ֮Ϸ磬޹·磬ãҹֹ֪֮䣬֮ԻˮǿˮԾԶᡣսʤȡ书ףԻԻ֮֮ǵòãΣսŭʦԑCսϡŭԸϲCԸ˵Ը棬߲Ը֮֮˰ȫ֮Ҳ - -üʮ - -Ի ʦʮ򣬳ǧ֮ѣ֮շǧɧ춵·òߣʮҡ꣬һ֮ʤ»ٽ𣬲֪֮ߣ֮Ҳ֮Ҳ֮Ҳʤ֮ҲͽԶʤˣɹ춱ߣ֪Ҳ֪ߣȡ춹񣬲£춶ȣȡˣ֪֮Ҳü壺䣬ڼ䣬з䣬䣬䡣Ī֪νͣ˾֮Ҳߣ˶֮ڼߣ˶֮ߣм֮ߣN⣬֪֮춵мҲߣҲ֮£Ī춼䣬Ī춼䣬Ī춼䣬ʥͲü䣬岻ʹ䣬΢ܵü֮ʵ΢΢գüҲδߣ߼֮֮֮ɱ֪ؽҡ]ߡߡ֪֮֮м֮ߣ֮֮ʷɵöҲǶ֪֮䡢ڼɵöʹҲǶ֪֮N£ʹУǶ֪֮ʹڡ֮£֪֪֮֮춷䣬ʷ䲻ɲҲ֮Ҳֿģ֮Ҳ󡣹ͽǞߣسɴ󹦡˱֮Ҫ֮ѶҲ diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt deleted file mode 100644 index 375e1ad..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt +++ /dev/null @@ -1,107 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt -after converting from Traditional Chinese to Simplified Chinese. --------- -始计第一 - -孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。 - -故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五曰法。 - -道者,令民与上同意,可与之死,可与之生,而不畏危也;天者,阴阳、寒暑、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知者不胜。 - -故校之以计,而索其情,曰:主孰有道?将孰有能?天地孰得?法令孰行?兵眾孰强?士卒孰练?赏罚孰明?吾以此知胜负矣。 - -将听吾计,用之必胜,留之;将不听吾计,用之必败,去之。 - -计利以听,乃為之势,以佐其外。势者,因利而制权也。 - -兵者,诡道也。故能而示之不能,用而示之不用,近而示之远,远而示之近。利而诱之,乱而取之,实而备之,强而避之,怒而挠之,卑而骄之,佚而劳之,亲而离之,攻其无备,出其不意。此兵家之胜,不可先传也。 - -夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况无算乎!吾以此观之,胜负见矣。 - -作战第二 - -孙子曰:凡用兵之法,驰车千駟,革车千乘,带甲十万,千里馈粮。则内外之费,宾客之用,胶漆之材,车甲之奉,日费千金,然后十万之师举矣。 - -其用战也,贵胜,久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐,屈力殫货,则诸侯乘其弊而起,虽有智者,不能善其后矣。故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。 - -善用兵者,役不再籍,粮不三载,取用於国,因粮於敌,故军食可足也。国之贫於师者远输,远输则百姓贫;近於师者贵卖,贵卖则百姓竭,财竭则急於丘役。力屈财殫,中原内虚於家,百姓之费,十去其七;公家之费,破军罢马,甲胄矢弩,戟楯矛櫓,丘牛大车,十去其六。 - -故智将务食於敌,食敌一钟,当吾二十钟;萁秆一石,当吾二十石。故杀敌者,怒也;取敌之利者,货也。故车战,得车十乘以上,赏其先得者,而更其旌旗。车杂而乘之,卒善而养之,是谓胜敌而益强。 - -故兵贵胜,不贵久。故知兵之将,民之司命。国家安危之主也。 - -谋攻第三 - -孙子曰:凡用兵之法,全国為上,破国次之;全军為上,破军次之;全旅為上,破旅次之;全卒為上,破卒次之;全伍為上,破伍次之。是故百战百胜,非善之善者也;不战而屈人之兵,善之善者也。 - -故上兵伐谋,其次伐交,其次伐兵,其下攻城。攻城之法,為不得已。修櫓轒轀,具器械,三月而后成;距闉,又三月而后已。将不胜其忿,而蚁附之,杀士三分之一,而城不拔者,此攻之灾也。 - -故善用兵者,屈人之兵,而非战也,拔人之城而非攻也,毁人之国而非久也,必以全争於天下,故兵不顿而利可全,此谋攻之法也。 - -故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。故小敌之坚,大敌之擒也。 - -夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故君之所以患於军者三:不知军之不可以进而谓之进,不知军之不可以退而谓之退,是谓縻军;不知三军之事,而同三军之政,则军士惑矣;不知三军之权,而同三军之任,则军士疑矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。 - -故知胜有五:知可以战与不可以战者,胜。识眾寡之用者,胜。上下同欲者,胜。以虞待不虞者,胜。将能而君不御者,胜。此五者,知胜之道也。 - -故曰:知己知彼,百战不貽;不知彼而知己,一胜一负;不知彼不知己,每战必败。 - -军形第四 - -孙子曰:昔之善战者,先為不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能為不可胜,不能使敌必可胜。故曰:胜可知,而不可為。 - -不可胜者,守也;可胜者,攻也。守则不足,攻则有餘。善守者,藏於九地之下,善攻者,动於九天之上,故能自保而全胜也。 - -见胜不过眾人之所知,非善之善者也;战胜而天下曰善,非善之善者也。故举秋毫不為多力,见日月不為明目,闻雷霆不為聪耳。古之善战者,胜於易胜者也。故善战者之胜也,无智名,无勇功,故其战胜不忒。不忒者,其所措必胜,胜已败者也。故善战者,先立於不败之地,而不失敌之败也。是故胜兵先胜,而后求战,败兵先战而后求胜。善用兵者,修道而保法,故能為胜败之政。 - -兵法:一曰度,二曰量,三曰数,四曰称,五曰胜。地生度,度生量,量生数,数生称,称生胜。故胜兵若以鎰称銖,败兵若以銖称鎰。胜者之战,若决积水於千仞之谿者,形也。 - -兵势第五 - -孙子曰:凡治眾如治寡,分数是也;斗眾如斗寡,形名是也;三军之眾,可使必受敌而无败者,奇正是也;兵之所加,如以碫投卵者,虚实是也。 - -凡战者,以正合,以奇胜。故善出奇者,无穷如天地,不竭如江海。终而复始,日月是也。死而復生,四时是也。声不过五,五声之变,不可胜听也;色不过五,五色之变,不可胜观也;味不过五,五味之变,不可胜尝也;战势,不过奇正,奇正之变,不可胜穷也。奇正相生,如循环之无端,熟能穷之哉? - -激水之疾,至於漂石者,势也;鷙鸟之疾,至於毁折者,节也。是故善战者,其势险,其节短。势如张弩,节如发机。 - -纷纷紜紜,斗乱而不可乱也;浑浑沌沌,形圆而不可败也。乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必取之。以利动之,以卒待之。 - -故善战者,求之於势,不责於人;故能择人而任势。任势者,其战人也,如转木石。木石之性,安则静,危则动,方则止,圆则行。故善战人之势,如转圆石於千仞之山者,势也。 - -虚实第六 - -孙子曰:凡先处战地而待敌者佚,后处战地而趋战者劳。 - -故善战者,致人而不致於人。能使敌人自至者,利之也;能使敌人不得至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所不意。行千里而不劳者,行於无人之地也;攻而必取者,攻其所不守也。守而必固者,守其所不攻也。 - -故善攻者,敌不知其所守;善守者,敌不知其所攻。微乎微乎,至於无形;神乎神乎,至於无声,故能為敌之司命。进而不可御者,冲其虚也;退而不可追者,速而不可及也。故我欲战,敌虽高垒深沟,不得不与我战者,攻其所必救也;我不欲战,虽画地而守之,敌不得与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专為一,敌分為十,是以十攻其一也。则我眾敌寡,能以眾击寡者,则吾之所与战者约矣。吾所与战之地不可知,不可知则敌所备者多,敌所备者多,则吾所与战者寡矣。故备前则后寡,备后则前寡,备左则右寡,备右则左寡,无所不备,则无所不寡。寡者,备人者也;眾者,使人备己者也。故知战之地,知战之日,则可千里而会战;不知战之地,不知战日,则左不能救右,右不能救左,前不能救后,后不能救前,而况远者数十里,近者数里乎!以吾度之,越人之兵虽多,亦奚益於胜哉!故曰:胜可為也。敌虽眾,可使无斗。故策之而知得失之计,候之而知动静之理,形之而知死生之地,角之而知有餘不足之处。故形兵之极,至於无形。无形则深间不能窥,智者不能谋。因形而措胜於眾,眾不能知。人皆知我所以胜之形,而莫知吾所以制胜之形。故其战胜不復,而应形於无穷。夫兵形象水,水之行避高而趋下,兵之形避实而击虚;水因地而制流,兵因敌而制胜。故兵无常势,水无常形。能因敌变化而取胜者,谓之神。故五行无常胜,四时无常位,日有短长,月有死生。 - -军争第七 - -孙子曰: 凡用兵之法,将受命於君,合军聚眾,交和而舍,莫难於军争。军争之难者,以迂為直,以患為利。故迂其途,而诱之以利,后人发,先人至,此知迂直之计者也。军争為利,军争為危。举军而争利则不及,委军而争利则輜重捐。是故捲甲而趋,日夜不处,倍道兼行,百裡而争利,则擒三将军,劲者先,疲者后,其法十一而至;五十里而争利,则蹶上将军,其法半至;三十里而争利,则三分之二至。是故军无輜重则亡,无粮食则亡,无委积则亡。故不知诸侯之谋者,不能豫交;不知山林、险阻、沮泽之形者,不能行军;不用乡导者,不能得地利。故兵以诈立,以利动,以分和為变者也。故其疾如风,其徐如林,侵掠如火,不动如山,难知如阴,动如雷震。掠乡分眾,廓地分利,悬权而动。先知迂直之计者胜,此军争之法也。《军政》曰:“言不相闻,故為之金鼓;视不相见,故為之旌旗。”夫金鼓旌旗者,所以一民之耳目也。民既专一,则勇者不得独进,怯者不得独退,此用眾之法也。故夜战多金鼓,昼战多旌旗,所以变人之耳目也。三军可夺气,将军可夺心。是故朝气锐,昼气惰,暮气归。善用兵者,避其锐气,击其惰归,此治气者也。以治待乱,以静待哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治变者也。故用兵之法,高陵勿向,背丘勿逆,佯北勿从,锐卒勿攻,饵兵勿食,归师勿遏,围师遗闕,穷寇勿迫,此用兵之法也。 - -九变第八 - -孙子曰: 凡用兵之法,将受命於君,合军聚合。泛地无舍,衢地合交,绝地无留,围地则谋,死地则战,途有所不由,军有所不击,城有所不攻,地有所不争,君命有所不受。故将通於九变之利者,知用兵矣;将不通九变之利,虽知地形,不能得地之利矣;治兵不知九变之术,虽知五利,不能得人之用矣。是故智者之虑,必杂於利害,杂於利而务可信也,杂於害而患可解也。是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无恃其不来,恃吾有以待之;无恃其不攻,恃吾有所不可攻也。故将有五危,必死可杀,必生可虏,忿速可侮,廉洁可辱,爱民可烦。凡此五者,将之过也,用兵之灾也。覆军杀将,必以五危,不可不察也。 - -行军第九 - -孙子曰:凡处军相敌,绝山依穀,视生处高,战隆无登,此处山之军也。绝水必远水,客绝水而来,勿迎之於水内,令半渡而击之利,欲战者,无附於水而迎客,视生处高,无迎水流,此处水上之军也。绝斥泽,唯亟去无留,若交军於斥泽之中,必依水草而背眾树,此处斥泽之军也。平陆处易,右背高,前死后生,此处平陆之军也。凡此四军之利,黄帝之所以胜四帝也。凡军好高而恶下,贵阳而贱阴,养生而处实,军无百疾,是谓必胜。丘陵堤防,必处其阳而右背之,此兵之利,地之助也。上雨水流至,欲涉者,待其定也。凡地有绝涧、天井、天牢、天罗、天陷、天隙,必亟去之,勿近也。吾远之,敌近之;吾迎之,敌背之。军旁有险阻、潢井、蒹葭、小林、蘙薈者,必谨覆索之,此伏姦之所处也。敌近而静者,恃其险也;远而挑战者,欲人之进也;其所居易者,利也;眾树动者,来也;眾草多障者,疑也;鸟起者,伏也;兽骇者,覆也;尘高而锐者,车来也;卑而广者,徒来也;散而条达者,樵採也;少而往来者,营军也;辞卑而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;半进半退者,诱也;杖而立者,饥也;汲而先饮者,渴也;见利而不进者,劳也;鸟集者,虚也;夜呼者,恐也;军扰者,将不重也;旌旗动者,乱也;吏怒者,倦也;杀马肉食者,军无粮也;悬甀不返其舍者,穷寇也;谆谆翕翕,徐与人言者,失眾也;数赏者,窘也;数罚者,困也;先暴而后畏其眾者,不精之至也;来委谢者,欲休息也。兵怒而相迎,久而不合,又不相去,必谨察之。兵非贵益多也,惟无武进,足以并力料敌取人而已。夫惟无虑而易敌者,必擒於人。卒未亲而罚之,则不服,不服则难用。卒已亲附而罚不行,则不可用。故合之以文,齐之以武,是谓必取。令素行以教其民,则民服;令素不行以教其民,则民不服。令素行者,与眾相得也。 - -地形第十 - -孙子曰:地形有通者、有掛者、有支者、有隘者、有险者、有远者。我可以往,彼可以来,曰通。通形者,先居高阳,利粮道,以战则利。可以往,难以返,曰掛。掛形者,敌无备,出而胜之,敌若有备,出而不胜,难以返,不利。我出而不利,彼出而不利,曰支。支形者,敌虽利我,我无出也,引而去之,令敌半出而击之利。隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,不盈而从之。险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势均难以挑战,战而不利。凡此六者,地之道也,将之至任,不可不察也。凡兵有走者、有驰者、有陷者、有崩者、有乱者、有北者。凡此六者,非天地之灾,将之过也。夫势均,以一击十,曰走;卒强吏弱,曰驰;吏强卒弱,曰陷;大吏怒而不服,遇敌懟而自战,将不知其能,曰崩;将弱不严,教道不明,吏卒无常,陈兵纵横,曰乱;将不能料敌,以少合眾,以弱击强,兵无选锋,曰北。凡此六者,败之道也,将之至任,不可不察也。夫地形者,兵之助也。料敌制胜,计险隘远近,上将之道也。知此而用战者必胜,不知此而用战者必败。故战道必胜,主曰无战,必战可也;战道不胜,主曰必战,无战可也。故进不求名,退不避罪,唯民是保,而利於主,国之宝也。视卒如婴儿,故可以与之赴深溪;视卒如爱子,故可与之俱死。厚而不能使,爱而不能令,乱而不能治,譬若骄子,不可用也。知吾卒之可以击,而不知敌之不可击,胜之半也;知敌之可击,而不知吾卒之不可以击,胜之半也;知敌之可击,知吾卒之可以击,而不知地形之不可以战,胜之半也。故知兵者,动而不迷,举而不穷。故曰:知彼知己,胜乃不殆;知天知地,胜乃可全。 - -九地第十一 - -孙子曰:用兵之法,有散地,有轻地,有争地,有交地,有衢地,有重地,有泛地,有围地,有死地。诸侯自战其地者,為散地;入人之地不深者,為轻地;我得亦利,彼得亦利者,為争地;我可以往,彼可以来者,為交地;诸侯之地三属,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為重地;山林、险阻、沮泽,凡难行之道者,為泛地;所由入者隘,所从归者迂,彼寡可以击吾之眾者,為围地;疾战则存,不疾战则亡者,為死地。是故散地则无战,轻地则无止,争地则无攻,交地则无绝,衢地则合交,重地则掠,泛地则行,围地则谋,死地则战。古之善用兵者,能使敌人前后不相及,眾寡不相恃,贵贱不相救,上下不相收,卒离而不集,兵合而不齐。合於利而动,不合於利而止。敢问敌眾而整将来,待之若何曰:先夺其所爱则听矣。兵之情主速,乘人之不及。由不虞之道,攻其所不戒也。凡為客之道,深入则专。主人不克,掠於饶野,三军足食。谨养而勿劳,并气积力,运兵计谋,為不可测。投之无所往,死且不北。死焉不得,士人尽力。兵士甚陷则不惧,无所往则固,深入则拘,不得已则斗。是故其兵不修而戒,不求而得,不约而亲,不令而信,禁祥去疑,至死无所之。吾士无餘财,非恶货也;无餘命,非恶寿也。令发之日,士卒坐者涕沾襟,偃卧者涕交颐,投之无所往,诸、劌之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵可使如率然乎?曰可。夫吴人与越人相恶也,当其同舟而济而遇风,其相救也如左右手。是故方马埋轮,未足恃也;齐勇如一,政之道也;刚柔皆得,地之理也。故善用兵者,携手若使一人,不得已也。将军之事,静以幽,正以治,能愚士卒之耳目,使之无知;易其事,革其谋,使人无识;易其居,迂其途,使民不得虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而发其机。若驱群羊,驱而往,驱而来,莫知所之。聚三军之眾,投之於险,此谓将军之事也。九地之变,屈伸之力,人情之理,不可不察也。凡為客之道,深则专,浅则散。去国越境而师者,绝地也;四彻者,衢地也;入深者,重地也;入浅者,轻地也;背固前隘者,围地也;无所往者,死地也。是故散地吾将一其志,轻地吾将使之属,争地吾将趋其后,交地吾将谨其守,交地吾将固其结,衢地吾将谨其恃,重地吾将继其食,泛地吾将进其途,围地吾将塞其闕,死地吾将示之以不活。故兵之情:围则御,不得已则斗,过则从。是故不知诸侯之谋者,不能预交;不知山林、险阻、沮泽之形者,不能行军;不用乡导,不能得地利。四五者,一不知,非霸王之兵也。夫霸王之兵,伐大国,则其眾不得聚;威加於敌,则其交不得合。是故不争天下之交,不养天下之权,信己之私,威加於敌,则其城可拔,其国可隳。施无法之赏,悬无政之令。犯三军之眾,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然后存,陷之死地然后生。夫眾陷於害,然后能為胜败。故為兵之事,在顺详敌之意,并敌一向,千里杀将,是谓巧能成事。是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开闔,必亟入之,先其所爱,微与之期,践墨随敌,以决战事。是故始如处女,敌人开户;后如脱兔,敌不及拒。 - -火攻第十二 - -孙子曰:凡火攻有五:一曰火人,二曰火积,三曰火輜,四曰火库,五曰火队。行火必有因,因必素具。发火有时,起火有日。时者,天之燥也。日者,月在箕、壁、翼、軫也。凡此四宿者,风起之日也。凡火攻,必因五火之变而应之:火发於内,则早应之於外;火发而其兵静者,待而勿攻,极其火力,可从而从之,不可从则上。火可发於外,无待於内,以时发之,火发上风,无攻下风,昼风久,夜风止。凡军必知五火之变,以数守之。故以火佐攻者明,以水佐攻者强。水可以绝,不可以夺。夫战胜攻取而不惰其功者凶,命曰“费留”。故曰:明主虑之,良将惰之,非利不动,非得不用,非危不战。主不可以怒而兴师,将不可以慍而攻战。合於利而动,不合於利而上。怒可以复喜,慍可以复说,亡国不可以复存,死者不可以复生。故明主慎之,良将警之。此安国全军之道也。 - -用间第十三 - -孙子曰: 凡兴师十万,出征千里,百姓之费,公家之奉,日费千金,内外骚动,怠於道路,不得操事者,七十万家。相守数年,以争一日之胜,而爱爵禄百金,不知敌之情者,不仁之至也,非民之将也,非主之佐也,非胜之主也。故明君贤将所以动而胜人,成功出於眾者,先知也。先知者,不可取於鬼神,不可象於事,不可验於度,必取於人,知敌之情者也。故用间有五:有因间,有内间,有反间,有死间,有生间。五间俱起,莫知其道,是谓神纪,人君之宝也。乡间者,因其乡人而用之;内间者,因其官人而用之;反间者,因其敌间而用之;死间者,為誑事於外,令吾闻知之而传於敌间也;生间者,反报也。故三军之事,莫亲於间,赏莫厚於间,事莫密於间,非圣贤不能用间,非仁义不能使间,非微妙不能得间之实。微哉微哉!无所不用间也。间事未发而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲杀,必先知其守将、左右、謁者、门者、舍人之姓名,令吾间必索知之。敌间之来间我者,因而利之,导而舍之,故反间可得而用也;因是而知之,故乡间、内间可得而使也;因是而知之,故死间為誑事,可使告敌;因是而知之,故生间可使如期。五间之事,主必知之,知之必在於反间,故反间不可不厚也。昔殷之兴也,伊挚在夏;周之兴也,吕牙在殷。故明君贤将,能以上智為间者,必成大功。此兵之要,三军之所恃而动也。 diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt deleted file mode 100644 index 1918c8f..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt +++ /dev/null @@ -1,106 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt --------- -lpĤ@ - -]lGL̡AꤧjơAͤaAs`DAi]C - -GgHơAդHpAӯ䱡G@DAGѡATaA|NAkC - -D̡AOPWPNAiPAiP͡AӤȦM]FѪ̡ABHBɨ]Fa̡ABIBsUBͤ]FN̡ABHBBiBY]Fk̡ABxDBDΤ]CZ̡ANDA̳ӡA̤ӡC - -GդHpAӯ䱡AGDEDHNEHѦaEoHkOEHLEjHhEmH@EH^HӭtoC - -Nť^pAΤӡAdFNť^pAΤѡAhC - -pQHťADաAH~Cժ̡A]QӨv]C - -L̡A޹D]CGӥܤAΦӥܤΡAӥܤAӥܤCQӻAæӨAӳƤAjפAӼAźAHӳҤA˦ALơAX䤣NCLaӡAiǤ]C - -ҥԦӼqӪ̡Aoh]FԦӼq⤣Ӫ̡Ao֤]ChӡAֺ⤣ӡAӪpLGI^H[AӭtoC - -@ԲĤG - -]lGZΧLkAdoAdAaҤQUAdX³Ch~OAȤΡAAҤ^AOdAMQUv|oC - -ξԤ]AQӡA[hwLUA𫰫hO}A[ɮvhΤCҶwLUA}OfAhѫJӰ_A̡AൽoCGLDtA@[]CҧL[ӰQ̡A]CGɪΧL`̡AhɪΧLQ]C - -ΧL̡AФAyA³TAΩA]³ġAGxi]Cꤧhv̻AhʩmhFv̶QAQhʩmܡA]ܫhCСCO}]A줺aAʩmOAQhCFaOA}x}AҭHکAurACjAQh䤻C - -GNȭġAĤ@A^GQFmz@ۡA^GQۡCGĪ̡A]FĤQ̡Af]CGԡAoQHWAo̡AӧܺXCӭA򵽦ӾiAO׳ӼĦӯqjC - -GLQӡAQ[CGLNAqRCawMD]C - -ѧĤT - -]lGZΧLkAꬰWA}ꦸFxWA}xFȬWA}ȦF򬰤WA}򦸤FWA}COGʾԦʳӡAD̤]FԦө}HLA̤]C - -GWLѡA䦸A䦸LAU𫰡C𫰤kAowCrVA㾹ATӫᦨFZASTӫwCNӨAƪAhT@Aӫު̡A𤧨a]C - -GΧL̡A}HLAӫDԤ]AޤHӫD]AHӫD[]AHѤUAGLyӧQiAѧ𤧪k]C - -GΧLkAQh򤧡Ah𤧡AhAīhԤA֫hkAYhפCGpĤAjĤ]C - -ұN̡Aꤧ]CPhꥲjAثhꥲzCGgҥHwx̤TGxiHiӿפiAxiHhӿפhAOݭxFTxơAӦPTxFAhxhboFTxvAӦPTxAhxhèoCTxJbBáAhѫJܨoCO׶íx޳ӡC - -GӦGiHԻPiHԪ̡AӡCѲ褧Ϊ̡AӡCWUP̡AӡCHݤ̡AӡCNӧgs̡AӡC̡AӤD]C - -GGvAʾԤMFӪvA@Ӥ@tFvACԥѡC - -xβĥ| - -]lGԪ̡AiӡAHݼĤiӡCiӦbvAiӦbġCGԪ̡AରiӡAϼĥiӡCGGӥiAӤiC - -iӪ̡Au]FiӪ̡A]CuhAhlCu̡AéEaUA̡AʩEѤWAG۫OӥӤ]C - -ӤLHҪAD̤]FԳӦӤѤU굽AD̤]CG|@hOA뤣ءADp^oաCjԪ̡AөӪ̤]CGԪ̤Ӥ]ALWALi\AGԳӤ֡C̡֪AұӡAӤwѪ̤]CGԪ̡Aߩ󤣱ѤaAӤĤѤ]COGӧLӡAӫDԡAѧLԦӫDӡCΧL̡A׹DӫOkAGରӱѤFC - -LkG@סAGqATơA|١AӡCaͫסAץͶqAqͼơAƥͺ١A٥ͳӡCGӧLYHٻˡAѧLYH˺CӪ̤ԡAYMndQƪ̡AΤ]C - -LղĤ - -]lGZvpvAƬO]FpAΦWO]FTxAiϥĦӵLѪ̡A_O]FLҥ[ApHZ̡AO]C - -ZԪ̡AHXAH_ӡCGX_̡ALapѦaAܦpCצӽƩlAO]CӴ_͡A|ɬO]CnLAnܡAiť]F⤣LA⤧ܡAi[]FLAܡAiӹ]FԶաAL_A_ܡAiӽa]C_ۥ͡Ap`LݡAavH - -EeAܩ}̡۪Aդ]FeAܩ󷴧̡A`]COGԪ̡AIA`uCզpiA`poC - -ɯɯƯơAæӤiä]FPPAζӤiѤ]CåͩvAĥͩiAzͩjCváAƤ]FiġAդ]FjzAΤ]CGʼĪ̡AΤAĥqFAĥCHQʤAHݤC - -GԪ̡ADաAdHFGܤHӥաCժ̡AԤH]ApۡCۤʡAwhRAMhʡAhAhCGԤHաAp۩dQs̡Aդ]C - -Ĥ - -]lGZBԦaӫݼĪ̧HABԦa;Ԫ̳ҡC - -GԪ̡APHӤPHCϼĤHۦܪ̡AQ]FϼĤHoܪ̡A`]CGħHҤAȤAwʤCXҥ͡AͨҤNCdӤҪ̡ALHa]Fӥ̡AҤu]CuӥT̡AuҤ]C - -G̡AĤҦuFu̡AĤҧCLGLGAܩLΡFGGAܩLnAGରĤqRCiӤim̡AR]FhӤil̡AtӤiΤ]CGڱԡAS`AoPھԪ̡AҥϤ]FڤԡAeaӦuAĤoPھԪ̡AĨҤ]CGΤHӧڵLΡAhڱMӼĤCڱM@AĤQAOHQ@]ChڲĹAH̡Ah^һPԪ̬oC^һPԤaiAihĩҳƪ̦hAĩҳƪ̦hAh^һPԪ̹oCGƫehAƫheAƥhkAƥkhALҤơAhLҤC̡AƤH̤]F̡AϤHƤv̤]CGԤaAԤAhidӷ|ԡFԤaAԤAhϥkAkϥAeϫAᤣϫeAӪp̼ƤQءA̼إGIH^פAVHLhAOqӫvIGGӥi]CAiϵLCGӪopAԤӪRzAΤӪͤaAӪlBCGΧLAܩLΡCLΫh`sA̤ѡC]Φӱө󲳡AાCHҪکҥHӤΡAӲ^ҥHӤΡCGԳӤ_AΩLaCҧLζHAװͤUAL׹F]aӨyAL]ĦӨӡCGLL`աAL`ΡC]ܤƦӨӪ̡AפCGL`ӡA|ɵL`A馳uA릳͡C - -xĤC - -]lG ZΧLkANRgAXxEAMӪ١AxCx̡AHAHwQCG~AӻHQAHoAHܡAp̤]CxQAxMC|xӪQhΡAexӪQhCOGҦ͡A]BADݦAʸ̦ӪQAhTNxAl̥Ah̫AkQ@ӦܡFQئӪQAhݤWNxAkbܡFTQئӪQAhTGܡCOGxLh`AL³h`ALenh`CGѫJѪ̡AݥFsLBIBqAΪ̡AxFζmɪ̡AoaQCGLHBߡAHQʡAHMܪ̤]CGepA}pLAIpAʦpsApAʦpp_CmAaQAavӰʡCp̳ӡAxk]CmxFnGۻDAGFۨAGܺXCҪܺX̡AҥH@եؤ]CJM@Ahi̤oWiAĪ̤oWhAβk]CG]ԦhA޾ԦhܺXAҥHܤHեؤ]CTxiܮANxiܤߡCOG®UAޮkAǮkCΧL̡AרUAkkAv̤]CHvݶáAHRݼMAvߪ̤]CHݻAHHݳҡAHȡAvO̤]CLܥXAL󤧳Avܪ̤]CGΧLkAŦVAICŰfA˥_űqAUŧALŭAkvŹKAvAaFŭAΧLk]C - -EܲĤK - -]lG ZΧLkANRgAXxEXCxaL١AaXAaLdAahѡAahԡA~ҤѡAxҤAҤAaҤAgRҤCGNqEܤQ̡AΧLoFNqEܤQAaΡAoaQoFvLEܤNAQAoHΨoCOG̤{AQ`AQӰȥiH]A`ӱwiѤ]COG}ѫJ̥H`AнѫJ̥H~AͽѫJ̥HQCGΧLkAL䤣ӡA^HݤFL䤣A^Ҥi]CGNMAiAͥiAtiVAGidARiСCZ̡ANL]AΧLa]CЭxNAHMAi]C - -xĤE - -]lGZBxۼġAs̽\AͳBAԶLnABsx]CAȵӨӡAŪ蠟AObQAԪ̡ALӪȡAͳBALyABWx]CAA߫EhLdAYx󥸿AA̤ӭIABAx]CBAkIAe͡ABx]CZ|xQAҤҥHӥ|Ҥ]CZxnӴcUAQӽ⳱AiͦӳBAxLʯeAOץӡCCAB䶧ӥkIALQAaU]CWByܡAA̡Aݨw]CZaBѤBѨcBùBѳBѻءAEhAŪ]C^AĪ񤧡F^蠟AĭICxǦIBCB㶸BpLBP̡AЯAҳB]CĪR̡AI]FӬDԪ̡AHi]Fҩ~̡AQ]Fʪ̡AӤ]Fh٪̡Aä]F_̡A]F~b̡AФ]FаӾU̡AӤ]FӼs̡A{Ӥ]FӱF̡AĤ]F֦өӪ̡Ax]Fӳƪ̡Ai]FjӶiX̡Ah]FX~䰼̡A]FLӽЩM̡AѤ]FbӳL̡A]Fbibh̡A]Fӥߪ̡AȤ]FVӥ̡A]FQӤi̡AҤ]F̡A]F]I̡A]FxZ̡AN]FܺXʪ̡Aä]FO̡A¤]F׭̡AxL³]Faդ٪̡AaF]FνεA}PH̡A]Fƽ̡A~]Fƻ@̡Ax]FɦӫȨ䲳̡A뤧ܤ]Fөeª̡A𮧤]CLӬ۪A[ӤXASۥhAԹCLDQqh]ALZiAHäOƼĨHӤwCұL{өĪ̡AHC򥼿˦ӻ@AhAAAhΡCw˪ӻ@AhiΡCGXHAHZAOץCOHШAhAFOHШAhACO̡AP۱o]C - -aβĤQ - -]lGaΦq̡B̡B̡Bi̡BI̡B̡CڥiHAiHӡAqCqΪ̡A~AQ³DAHԫhQCiHAHA걾CΪ̡AĵLơAXӳӤAĭYơAXӤӡAHAQCڥXӤQAXӤQACΪ̡AQڡAڵLX]AަӥhAOĥbXQCiΪ̡Aڥ~AդHݼġCYĥ~AզӤűqAզӱqCIΪ̡Aڥ~A~HݼġFYĥ~AަӥhAűq]CΪ̡AէHDԡAԦӤQCZ̡AaD]ANܥAi]CZL̡B̡B̡BY̡Bê̡B_̡CZ̡ADѦaaANL]CҶէAH@QAꨫFjOzA깣FOjzA곴FjOӤAAJȦӦ۾ԡANAYFNzYAйDAOL`ALaAáFNƼġAH֦XAHzjALLWA_CZ̡AѤD]ANܥAi]CҦaΪ̡ALU]CƼĨӡApIiAWND]CӥξԪ̥ӡAӥξԪ̥ѡCGԹDӡADLԡAԥi]FԹDӡADꥲԡALԥi]CGiDWAh׸oAߥOOAӧQDAꤧ_]CpAGiHPu`ˡFpRlAGiPѦCpӤϡARӤOAæӤvAĴYźlAiΤ]C^򤧥iHAӤĤiAӤb]FĤiAӤ^򤧤iHAӤb]FĤiA^򤧥iHAӤaΤiHԡAӤb]CGL̡AʦӤgA|ӤaCGGvAӤDpFѪaAӤDiC - -EaĤQ@ - -]lGΧLkAaAaAaAaAaAaAxaAaAaCѫJ۾Ԩa̡AaFJHa`̡AaFڱoQAoQ̡AaFڥiHAiHӪ̡AaFѫJaTݡAܦӱoѤU̡AaFJHa`AIh̡AaFsLBIBqAAZ椧D̡AxaFҥѤJ̹iAұqk̨AiH^̡AaFeԫhsAeԫh`̡AaCOGahLԡAahLAahLAahLAahXAahAxahAahѡAahԡCjΧL̡AϼĤHeᤣۤΡA褣۫AQ⤣۱ϡAWUۦAӤALXӤCXQӰʡAXQӤCݼIJӾNӡAݤYGܨҷRhťoCLDtAHΡCѤDAҤ٤]CZȤDA`JhMCDHJAdzATxCԾiӤųҡAînOABLpѡAiC뤧LҩAB_CjoAhHɤOCLhƳhߡALҩhTA`JhAowhCOGLצӧ١ADӱoAӿˡAOӫHATháAܦLҤC^hLl]ADcf]FLlRADcؤ]COoAh򧤪̮g̡Aת̮[A뤧LҩAѡB󤧫i]CGΧL̡AĴpvMCvM̡A`sD]C䭺hܡAhܡA䤤hѦܡCݧLiϦpvMGHiCҧdHPVH۴c]AP٦ӹJA۱Ϥ]pkCOG谨IA]Fip@AFD]FXұoAaz]CGΧL̡AYϤ@HAow]CNxơARHաAHvAMh򤧦եءAϤLFơAѡAϤHLѡF~A~Aϥo{CӻPApnӥhFӻP`JѫJaAӵoCYXsϡAXөAXӨӡAҤCETxA뤧IAױNxƤ]CEaܡA}OAHzAi]CZȤDA`hMALhChVҦӮv̡Aa]F|̡Aa]FJ`̡Aa]FJL̡Aa]FITei̡Aa]FLҩ̡Aa]COGa^N@ӡAa^NϤݡAa^NͨAa^NԨuAa^NT䵲Aa^NԨAa^N~䭹Axa^Ni~Aa^NAa^NܤHCGLGhmAowhALhqCOGѫJѪ̡AwFsLBIBqAΪ̡AxFζmɡAoaQC|̡A@ADQL]CQLAjAh䲳oEF¥[ġAh椣oXCOGѤUAiѤUvAHvpA¥[ġAh䫰iޡAioCILkAaLFOCǤTxAYϤ@HCǤHơAŧiHFǤH`AŧiHQC뤧`aMsAaM͡CҲ`AMରӱѡCGLơAbԼĤNAüĤ@VAdNAOץনơCOGF|AišALqϡAFYqWAHݨơCĤH}AEJAҷRALPAHġAHMԨơCOGlpBkAĤH}FpߡAĤΩڡC - -ĤQG - -]lGZ𦳤G@HAGnATA|wAC]A]CoɡA_Cɪ̡AѤ]C̡AbߡBBlBH]CZ|J̡A_]CZA]ܦGo󤺡Ah~FoӨLR̡AݦӤŧAOAiqӱqAiqhWCio~ALݩ󤺡AHɵoAoWALUAޭ[A]CZxܡAHƦuCGH̩AH̱jCiHAiHܡCҾԳӧӤk\̤ARꡧOdCGGD{A}NkADQʡADoΡADMԡCDiHӿvANiHYӧԡCXQӰʡAXQӤWCiHƳߡAYiHƻA`ꤣiHƦsA̤iHƥ͡CGDVA}NĵCwxD]C - -ζĤQT - -]lG ZvQUAXdAʩmOAa^AOdA~̰ʡADAoިƪ̡ACQUaCۦuƦ~AH@餧ӡAӷRSʪAĤ̡Aܤ]ADN]ADD]ADӤD]CGgNҥHʦӳӤHA\X󲳪̡A]C̡Ai󰭯AiHơAiסAHAĤ̤]CGζG]AA϶AAͶCѰ_ADAOׯAHg_]Cm̡A]mHӥΤF̡A]xHӥΤF϶̡A]ĶӥΤF̡AƩ~AO^DӶǩĶ]FͶ̡Aϳ]CGTxơA˩󶡡Ap󶡡AƲK󶡡ADt夣ζADq϶ADLoCLvLvILҤζ]CƥoӥD̡APҧi̭ݦCZxұAұAHұAuNBkB̡֪B̡B٤HmWAO^CĶӶڪ̡A]ӧQAɦӪ٤AG϶ioӥΤ]F]OӪAGmBioӨϤ]F]OӪAGơAiϧiġF]OӪAGͶiϦpCơADAb϶AG϶ip]C蠟]A켰bLFP]AfbCGgNAHW̡Aj\CLnATxҫӰʤ]C diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt deleted file mode 100644 index 5797b37..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt +++ /dev/null @@ -1,106 +0,0 @@ -This file was derived from -http://www.gutenberg.org/files/23864/23864-0.txt --------- -始計第一 - -孫子曰:兵者,國之大事,死生之地,存亡之道,不可不察也。 - -故經之以五事,校之以計,而索其情:一曰道,二曰天,三曰地,四曰將,五曰法。 - -道者,令民與上同意,可與之死,可與之生,而不畏危也;天者,陰陽、寒暑、時制也;地者,遠近、險易、廣狹、死生也;將者,智、信、仁、勇、嚴也;法者,曲制、官道、主用也。凡此五者,將莫不聞,知之者勝,不知者不勝。 - -故校之以計,而索其情,曰:主孰有道?將孰有能?天地孰得?法令孰行?兵眾孰強?士卒孰練?賞罰孰明?吾以此知勝負矣。 - -將聽吾計,用之必勝,留之;將不聽吾計,用之必敗,去之。 - -計利以聽,乃為之勢,以佐其外。勢者,因利而制權也。 - -兵者,詭道也。故能而示之不能,用而示之不用,近而示之遠,遠而示之近。利而誘之,亂而取之,實而備之,強而避之,怒而撓之,卑而驕之,佚而勞之,親而離之,攻其無備,出其不意。此兵家之勝,不可先傳也。 - -夫未戰而廟算勝者,得算多也;未戰而廟算不勝者,得算少也。多算勝,少算不勝,而況無算乎!吾以此觀之,勝負見矣。 - -作戰第二 - -孫子曰:凡用兵之法,馳車千駟,革車千乘,帶甲十萬,千里饋糧。則內外之費,賓客之用,膠漆之材,車甲之奉,日費千金,然後十萬之師舉矣。 - -其用戰也,貴勝,久則鈍兵挫銳,攻城則力屈,久暴師則國用不足。夫鈍兵挫銳,屈力殫貨,則諸侯乘其弊而起,雖有智者,不能善其後矣。故兵聞拙速,未睹巧之久也。夫兵久而國利者,未之有也。故不盡知用兵之害者,則不能盡知用兵之利也。 - -善用兵者,役不再籍,糧不三載,取用於國,因糧於敵,故軍食可足也。國之貧於師者遠輸,遠輸則百姓貧;近於師者貴賣,貴賣則百姓竭,財竭則急於丘役。力屈財殫,中原內虛於家,百姓之費,十去其七;公家之費,破軍罷馬,甲胄矢弩,戟楯矛櫓,丘牛大車,十去其六。 - -故智將務食於敵,食敵一鍾,當吾二十鍾;萁稈一石,當吾二十石。故殺敵者,怒也;取敵之利者,貨也。故車戰,得車十乘以上,賞其先得者,而更其旌旗。車雜而乘之,卒善而養之,是謂勝敵而益強。 - -故兵貴勝,不貴久。故知兵之將,民之司命。國家安危之主也。 - -謀攻第三 - -孫子曰:凡用兵之法,全國為上,破國次之;全軍為上,破軍次之;全旅為上,破旅次之;全卒為上,破卒次之;全伍為上,破伍次之。是故百戰百勝,非善之善者也;不戰而屈人之兵,善之善者也。 - -故上兵伐謀,其次伐交,其次伐兵,其下攻城。攻城之法,為不得已。修櫓轒轀,具器械,三月而後成;距闉,又三月而後已。將不勝其忿,而蟻附之,殺士三分之一,而城不拔者,此攻之災也。 - -故善用兵者,屈人之兵,而非戰也,拔人之城而非攻也,毀人之國而非久也,必以全爭於天下,故兵不頓而利可全,此謀攻之法也。 - -故用兵之法,十則圍之,五則攻之,倍則分之,敵則能戰之,少則能逃之,不若則能避之。故小敵之堅,大敵之擒也。 - -夫將者,國之輔也。輔周則國必強,輔隙則國必弱。故君之所以患於軍者三:不知軍之不可以進而謂之進,不知軍之不可以退而謂之退,是謂縻軍;不知三軍之事,而同三軍之政,則軍士惑矣;不知三軍之權,而同三軍之任,則軍士疑矣。三軍既惑且疑,則諸侯之難至矣。是謂亂軍引勝。 - -故知勝有五:知可以戰與不可以戰者,勝。識眾寡之用者,勝。上下同欲者,勝。以虞待不虞者,勝。將能而君不御者,勝。此五者,知勝之道也。 - -故曰:知己知彼,百戰不貽;不知彼而知己,一勝一負;不知彼不知己,每戰必敗。 - -軍形第四 - -孫子曰:昔之善戰者,先為不可勝,以待敵之可勝。不可勝在己,可勝在敵。故善戰者,能為不可勝,不能使敵必可勝。故曰:勝可知,而不可為。 - -不可勝者,守也;可勝者,攻也。守則不足,攻則有餘。善守者,藏於九地之下,善攻者,動於九天之上,故能自保而全勝也。 - -見勝不過眾人之所知,非善之善者也;戰勝而天下曰善,非善之善者也。故舉秋毫不為多力,見日月不為明目,聞雷霆不為聰耳。古之善戰者,勝於易勝者也。故善戰者之勝也,無智名,無勇功,故其戰勝不忒。不忒者,其所措必勝,勝已敗者也。故善戰者,先立於不敗之地,而不失敵之敗也。是故勝兵先勝,而後求戰,敗兵先戰而後求勝。善用兵者,修道而保法,故能為勝敗之政。 - -兵法:一曰度,二曰量,三曰數,四曰稱,五曰勝。地生度,度生量,量生數,數生稱,稱生勝。故勝兵若以鎰稱銖,敗兵若以銖稱鎰。勝者之戰,若決積水於千仞之谿者,形也。 - -兵勢第五 - -孫子曰:凡治眾如治寡,分數是也;鬥眾如鬥寡,形名是也;三軍之眾,可使必受敵而無敗者,奇正是也;兵之所加,如以碫投卵者,虛實是也。 - -凡戰者,以正合,以奇勝。故善出奇者,無窮如天地,不竭如江海。終而複始,日月是也。死而復生,四時是也。聲不過五,五聲之變,不可勝聽也;色不過五,五色之變,不可勝觀也;味不過五,五味之變,不可勝嘗也;戰勢,不過奇正,奇正之變,不可勝窮也。奇正相生,如循環之無端,熟能窮之哉? - -激水之疾,至於漂石者,勢也;鷙鳥之疾,至於毀折者,節也。是故善戰者,其勢險,其節短。勢如張弩,節如發機。 - -紛紛紜紜,鬥亂而不可亂也;渾渾沌沌,形圓而不可敗也。亂生於治,怯生於勇,弱生於強。治亂,數也;勇怯,勢也;強弱,形也。故善動敵者,形之,敵必從之;予之,敵必取之。以利動之,以卒待之。 - -故善戰者,求之於勢,不責於人;故能擇人而任勢。任勢者,其戰人也,如轉木石。木石之性,安則靜,危則動,方則止,圓則行。故善戰人之勢,如轉圓石於千仞之山者,勢也。 - -虛實第六 - -孫子曰:凡先處戰地而待敵者佚,後處戰地而趨戰者勞。 - -故善戰者,致人而不致於人。能使敵人自至者,利之也;能使敵人不得至者,害之也。故敵佚能勞之,飽能饑之,安能動之。出其所必趨,趨其所不意。行千里而不勞者,行於無人之地也;攻而必取者,攻其所不守也。守而必固者,守其所不攻也。 - -故善攻者,敵不知其所守;善守者,敵不知其所攻。微乎微乎,至於無形;神乎神乎,至於無聲,故能為敵之司命。進而不可禦者,沖其虛也;退而不可追者,速而不可及也。故我欲戰,敵雖高壘深溝,不得不與我戰者,攻其所必救也;我不欲戰,雖畫地而守之,敵不得與我戰者,乖其所之也。故形人而我無形,則我專而敵分。我專為一,敵分為十,是以十攻其一也。則我眾敵寡,能以眾擊寡者,則吾之所與戰者約矣。吾所與戰之地不可知,不可知則敵所備者多,敵所備者多,則吾所與戰者寡矣。故備前則後寡,備後則前寡,備左則右寡,備右則左寡,無所不備,則無所不寡。寡者,備人者也;眾者,使人備己者也。故知戰之地,知戰之日,則可千里而會戰;不知戰之地,不知戰日,則左不能救右,右不能救左,前不能救後,後不能救前,而況遠者數十裏,近者數裏乎!以吾度之,越人之兵雖多,亦奚益於勝哉!故曰:勝可為也。敵雖眾,可使無鬥。故策之而知得失之計,候之而知動靜之理,形之而知死生之地,角之而知有餘不足之處。故形兵之極,至於無形。無形則深間不能窺,智者不能謀。因形而措勝於眾,眾不能知。人皆知我所以勝之形,而莫知吾所以制勝之形。故其戰勝不復,而應形於無窮。夫兵形象水,水之行避高而趨下,兵之形避實而擊虛;水因地而制流,兵因敵而制勝。故兵無常勢,水無常形。能因敵變化而取勝者,謂之神。故五行無常勝,四時無常位,日有短長,月有死生。 - -軍爭第七 - -孫子曰: 凡用兵之法,將受命於君,合軍聚眾,交和而舍,莫難於軍爭。軍爭之難者,以迂為直,以患為利。故迂其途,而誘之以利,後人發,先人至,此知迂直之計者也。軍爭為利,軍爭為危。舉軍而爭利則不及,委軍而爭利則輜重捐。是故捲甲而趨,日夜不處,倍道兼行,百裡而爭利,則擒三將軍,勁者先,疲者後,其法十一而至;五十裏而爭利,則蹶上將軍,其法半至;三十裏而爭利,則三分之二至。是故軍無輜重則亡,無糧食則亡,無委積則亡。故不知諸侯之謀者,不能豫交;不知山林、險阻、沮澤之形者,不能行軍;不用鄉導者,不能得地利。故兵以詐立,以利動,以分和為變者也。故其疾如風,其徐如林,侵掠如火,不動如山,難知如陰,動如雷震。掠鄉分眾,廓地分利,懸權而動。先知迂直之計者勝,此軍爭之法也。《軍政》曰:“言不相聞,故為之金鼓;視不相見,故為之旌旗。”夫金鼓旌旗者,所以一民之耳目也。民既專一,則勇者不得獨進,怯者不得獨退,此用眾之法也。故夜戰多金鼓,晝戰多旌旗,所以變人之耳目也。三軍可奪氣,將軍可奪心。是故朝氣銳,晝氣惰,暮氣歸。善用兵者,避其銳氣,擊其惰歸,此治氣者也。以治待亂,以靜待嘩,此治心者也。以近待遠,以佚待勞,以飽待饑,此治力者也。無邀正正之旗,無擊堂堂之陳,此治變者也。故用兵之法,高陵勿向,背丘勿逆,佯北勿從,銳卒勿攻,餌兵勿食,歸師勿遏,圍師遺闕,窮寇勿迫,此用兵之法也。 - -九變第八 - -孫子曰: 凡用兵之法,將受命於君,合軍聚合。泛地無舍,衢地合交,絕地無留,圍地則謀,死地則戰,途有所不由,軍有所不擊,城有所不攻,地有所不爭,君命有所不受。故將通於九變之利者,知用兵矣;將不通九變之利,雖知地形,不能得地之利矣;治兵不知九變之術,雖知五利,不能得人之用矣。是故智者之慮,必雜於利害,雜於利而務可信也,雜於害而患可解也。是故屈諸侯者以害,役諸侯者以業,趨諸侯者以利。故用兵之法,無恃其不來,恃吾有以待之;無恃其不攻,恃吾有所不可攻也。故將有五危,必死可殺,必生可虜,忿速可侮,廉潔可辱,愛民可煩。凡此五者,將之過也,用兵之災也。覆軍殺將,必以五危,不可不察也。 - -行軍第九 - -孫子曰:凡處軍相敵,絕山依穀,視生處高,戰隆無登,此處山之軍也。絕水必遠水,客絕水而來,勿迎之於水內,令半渡而擊之利,欲戰者,無附於水而迎客,視生處高,無迎水流,此處水上之軍也。絕斥澤,唯亟去無留,若交軍於斥澤之中,必依水草而背眾樹,此處斥澤之軍也。平陸處易,右背高,前死後生,此處平陸之軍也。凡此四軍之利,黃帝之所以勝四帝也。凡軍好高而惡下,貴陽而賤陰,養生而處實,軍無百疾,是謂必勝。丘陵堤防,必處其陽而右背之,此兵之利,地之助也。上雨水流至,欲涉者,待其定也。凡地有絕澗、天井、天牢、天羅、天陷、天隙,必亟去之,勿近也。吾遠之,敵近之;吾迎之,敵背之。軍旁有險阻、潢井、蒹葭、小林、蘙薈者,必謹覆索之,此伏姦之所處也。敵近而靜者,恃其險也;遠而挑戰者,欲人之進也;其所居易者,利也;眾樹動者,來也;眾草多障者,疑也;鳥起者,伏也;獸駭者,覆也;塵高而銳者,車來也;卑而廣者,徒來也;散而條達者,樵採也;少而往來者,營軍也;辭卑而備者,進也;辭強而進驅者,退也;輕車先出居其側者,陳也;無約而請和者,謀也;奔走而陳兵者,期也;半進半退者,誘也;杖而立者,饑也;汲而先飲者,渴也;見利而不進者,勞也;鳥集者,虛也;夜呼者,恐也;軍擾者,將不重也;旌旗動者,亂也;吏怒者,倦也;殺馬肉食者,軍無糧也;懸甀不返其舍者,窮寇也;諄諄翕翕,徐與人言者,失眾也;數賞者,窘也;數罰者,困也;先暴而後畏其眾者,不精之至也;來委謝者,欲休息也。兵怒而相迎,久而不合,又不相去,必謹察之。兵非貴益多也,惟無武進,足以並力料敵取人而已。夫惟無慮而易敵者,必擒於人。卒未親而罰之,則不服,不服則難用。卒已親附而罰不行,則不可用。故合之以文,齊之以武,是謂必取。令素行以教其民,則民服;令素不行以教其民,則民不服。令素行者,與眾相得也。 - -地形第十 - -孫子曰:地形有通者、有掛者、有支者、有隘者、有險者、有遠者。我可以往,彼可以來,曰通。通形者,先居高陽,利糧道,以戰則利。可以往,難以返,曰掛。掛形者,敵無備,出而勝之,敵若有備,出而不勝,難以返,不利。我出而不利,彼出而不利,曰支。支形者,敵雖利我,我無出也,引而去之,令敵半出而擊之利。隘形者,我先居之,必盈之以待敵。若敵先居之,盈而勿從,不盈而從之。險形者,我先居之,必居高陽以待敵;若敵先居之,引而去之,勿從也。遠形者,勢均難以挑戰,戰而不利。凡此六者,地之道也,將之至任,不可不察也。凡兵有走者、有馳者、有陷者、有崩者、有亂者、有北者。凡此六者,非天地之災,將之過也。夫勢均,以一擊十,曰走;卒強吏弱,曰馳;吏強卒弱,曰陷;大吏怒而不服,遇敵懟而自戰,將不知其能,曰崩;將弱不嚴,教道不明,吏卒無常,陳兵縱橫,曰亂;將不能料敵,以少合眾,以弱擊強,兵無選鋒,曰北。凡此六者,敗之道也,將之至任,不可不察也。夫地形者,兵之助也。料敵制勝,計險隘遠近,上將之道也。知此而用戰者必勝,不知此而用戰者必敗。故戰道必勝,主曰無戰,必戰可也;戰道不勝,主曰必戰,無戰可也。故進不求名,退不避罪,唯民是保,而利於主,國之寶也。視卒如嬰兒,故可以與之赴深溪;視卒如愛子,故可與之俱死。厚而不能使,愛而不能令,亂而不能治,譬若驕子,不可用也。知吾卒之可以擊,而不知敵之不可擊,勝之半也;知敵之可擊,而不知吾卒之不可以擊,勝之半也;知敵之可擊,知吾卒之可以擊,而不知地形之不可以戰,勝之半也。故知兵者,動而不迷,舉而不窮。故曰:知彼知己,勝乃不殆;知天知地,勝乃可全。 - -九地第十一 - -孫子曰:用兵之法,有散地,有輕地,有爭地,有交地,有衢地,有重地,有泛地,有圍地,有死地。諸侯自戰其地者,為散地;入人之地不深者,為輕地;我得亦利,彼得亦利者,為爭地;我可以往,彼可以來者,為交地;諸侯之地三屬,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為重地;山林、險阻、沮澤,凡難行之道者,為泛地;所由入者隘,所從歸者迂,彼寡可以擊吾之眾者,為圍地;疾戰則存,不疾戰則亡者,為死地。是故散地則無戰,輕地則無止,爭地則無攻,交地則無絕,衢地則合交,重地則掠,泛地則行,圍地則謀,死地則戰。古之善用兵者,能使敵人前後不相及,眾寡不相恃,貴賤不相救,上下不相收,卒離而不集,兵合而不齊。合於利而動,不合於利而止。敢問敵眾而整將來,待之若何曰:先奪其所愛則聽矣。兵之情主速,乘人之不及。由不虞之道,攻其所不戒也。凡為客之道,深入則專。主人不克,掠於饒野,三軍足食。謹養而勿勞,並氣積力,運兵計謀,為不可測。投之無所往,死且不北。死焉不得,士人盡力。兵士甚陷則不懼,無所往則固,深入則拘,不得已則鬥。是故其兵不修而戒,不求而得,不約而親,不令而信,禁祥去疑,至死無所之。吾士無餘財,非惡貨也;無餘命,非惡壽也。令發之日,士卒坐者涕沾襟,偃臥者涕交頤,投之無所往,諸、劌之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。擊其首則尾至,擊其尾則首至,擊其中則首尾俱至。敢問兵可使如率然乎?曰可。夫吳人與越人相惡也,當其同舟而濟而遇風,其相救也如左右手。是故方馬埋輪,未足恃也;齊勇如一,政之道也;剛柔皆得,地之理也。故善用兵者,攜手若使一人,不得已也。將軍之事,靜以幽,正以治,能愚士卒之耳目,使之無知;易其事,革其謀,使人無識;易其居,迂其途,使民不得慮。帥與之期,如登高而去其梯;帥與之深入諸侯之地,而發其機。若驅群羊,驅而往,驅而來,莫知所之。聚三軍之眾,投之於險,此謂將軍之事也。九地之變,屈伸之力,人情之理,不可不察也。凡為客之道,深則專,淺則散。去國越境而師者,絕地也;四徹者,衢地也;入深者,重地也;入淺者,輕地也;背固前隘者,圍地也;無所往者,死地也。是故散地吾將一其志,輕地吾將使之屬,爭地吾將趨其後,交地吾將謹其守,交地吾將固其結,衢地吾將謹其恃,重地吾將繼其食,泛地吾將進其途,圍地吾將塞其闕,死地吾將示之以不活。故兵之情:圍則禦,不得已則鬥,過則從。是故不知諸侯之謀者,不能預交;不知山林、險阻、沮澤之形者,不能行軍;不用鄉導,不能得地利。四五者,一不知,非霸王之兵也。夫霸王之兵,伐大國,則其眾不得聚;威加於敵,則其交不得合。是故不爭天下之交,不養天下之權,信己之私,威加於敵,則其城可拔,其國可隳。施無法之賞,懸無政之令。犯三軍之眾,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然後存,陷之死地然後生。夫眾陷於害,然後能為勝敗。故為兵之事,在順詳敵之意,並敵一向,千里殺將,是謂巧能成事。是故政舉之日,夷關折符,無通其使,厲於廊廟之上,以誅其事。敵人開闔,必亟入之,先其所愛,微與之期,踐墨隨敵,以決戰事。是故始如處女,敵人開戶;後如脫兔,敵不及拒。 - -火攻第十二 - -孫子曰:凡火攻有五:一曰火人,二曰火積,三曰火輜,四曰火庫,五曰火隊。行火必有因,因必素具。發火有時,起火有日。時者,天之燥也。日者,月在箕、壁、翼、軫也。凡此四宿者,風起之日也。凡火攻,必因五火之變而應之:火發於內,則早應之於外;火發而其兵靜者,待而勿攻,極其火力,可從而從之,不可從則上。火可發於外,無待於內,以時發之,火發上風,無攻下風,晝風久,夜風止。凡軍必知五火之變,以數守之。故以火佐攻者明,以水佐攻者強。水可以絕,不可以奪。夫戰勝攻取而不惰其功者凶,命曰“費留”。故曰:明主慮之,良將惰之,非利不動,非得不用,非危不戰。主不可以怒而興師,將不可以慍而攻戰。合於利而動,不合於利而上。怒可以複喜,慍可以複說,亡國不可以複存,死者不可以複生。故明主慎之,良將警之。此安國全軍之道也。 - -用間第十三 - -孫子曰: 凡興師十萬,出征千里,百姓之費,公家之奉,日費千金,內外騷動,怠於道路,不得操事者,七十萬家。相守數年,以爭一日之勝,而愛爵祿百金,不知敵之情者,不仁之至也,非民之將也,非主之佐也,非勝之主也。故明君賢將所以動而勝人,成功出於眾者,先知也。先知者,不可取於鬼神,不可象於事,不可驗於度,必取於人,知敵之情者也。故用間有五:有因間,有內間,有反間,有死間,有生間。五間俱起,莫知其道,是謂神紀,人君之寶也。鄉間者,因其鄉人而用之;內間者,因其官人而用之;反間者,因其敵間而用之;死間者,為誑事於外,令吾聞知之而傳於敵間也;生間者,反報也。故三軍之事,莫親於間,賞莫厚於間,事莫密於間,非聖賢不能用間,非仁義不能使間,非微妙不能得間之實。微哉微哉!無所不用間也。間事未發而先聞者,間與所告者兼死。凡軍之所欲擊,城之所欲攻,人之所欲殺,必先知其守將、左右、謁者、門者、舍人之姓名,令吾間必索知之。敵間之來間我者,因而利之,導而舍之,故反間可得而用也;因是而知之,故鄉間、內間可得而使也;因是而知之,故死間為誑事,可使告敵;因是而知之,故生間可使如期。五間之事,主必知之,知之必在於反間,故反間不可不厚也。昔殷之興也,伊摯在夏;周之興也,呂牙在殷。故明君賢將,能以上智為間者,必成大功。此兵之要,三軍之所恃而動也。 diff --git a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt deleted file mode 100644 index c9ba04c..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt +++ /dev/null @@ -1,175 +0,0 @@ -This file was derived from -http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32 --------- -[Ұ] - ̷ ΰ ϰ Ѵ. 츮 ִ ̶ 巯 . ϱ ̷ , ¦ 츮 ķ ̷ 츮 տ 𸥴. յ 鿡Դ ڽ ü ٽ δٴ ׷ ⵵ ִ... - -ٽ о . Ĺ ô Ͽ , . 21⸦ 츮鿡 ׷ ƿ ο ó ̴. ׷ ׷? ̷ 𸣰 ְ, ƴ ̴. 쿬 ̴. Ƴ ڴϴ ÷ ... Ƣ ڰ, ׷ ִ. - -[۰ Ұ] - (, 1900-1943) : Ҽ. ѱ Ҽ Ʋ ۰̴. (). ȣ (޻). 1920 ݱ⿡ Ұ üҼ <ó> < ϴ ȸ>, () ٷ < > 1920 ߹ Ŀ <ǾƳ> <> <> <> ¿ ɰ Ĺ Ȳ ν ε巯 ǰ ǥߴ. < > ̷ 迭 ϴ ǰ̴. 1930 Ŀ ǽİ а ٰ Ҽ ߽ <ž> <ġ()> <ȭ> Ҽ ǥߴ. - -ħϰ 帰 ǰ ϴ ƴ ٰ . - -̳̾߸ ҹ ȿ η°Ų 븩 ϴ ÷Դ ģ ̾. ȿ(ű⵵ ƴ) ô Ŵ 帰 ࿩ մ ϰ 忡 ϸ ϳϳ ִٰ ħ 纹̸ б() ¿ ֱ Ǿ. - -ù , ° - ħ ٶ ׸ ġ ̾. ׾߸ Ⱥپ 浵 ÷ ¥ ȭ Ǭ, Ǵ ټ Ǭ ϰ չٴڿ 긱 ŭ ⻼. ̳ ̶ Ƚ ̶ ׿ 󸶳 . ܵ ְŴϿ ׺ٵ δ Ƴ ׸ ̴. - - Ƴ ħ 𷰰Ÿ Ѿ. 䵵 ⸦ Դٽ ϴ ̴ ø . ¿ ٵ ƴϷε ״ ̶ 𿡰 ־ ̸ ٿ ڲ ´ٴ ڱ () Ͽ. ǻ翡 ݵ , Ͼ ε ° . ̴뵵 ԰ ü ̴. - -׶ ÷  ǿ ¥ ־ ÷ ϸ õ(۰) . ϰ ұ ʾ ä ΰ Ѽ ָԵ Ȥ Ұ ó ϴϸ ׳ , 谡 бٰ ȩ߰ Ͽ. ׶ ÷ ȭ , - -, , պ , Ծ , Ծ , ¼ ̾! ٷ !ϰ ÷ δ ķ. ȩ ٷǸ ̽ . ÷ ÿﵵ ߲߲Ͽ. - - ȯڰ ׷ Դ ʾҴ. ð ʹٰ . - -̷ ! 䵵 Դ , ó԰ ϰ., ߴ ĺҰǸ, ִ ÿġ ʾҴ. - - ִ. δ 翡 ä ( ) ִ. - Ƚ տ ÷ ǬǬϿ. ׷ װɷ ġ ʾҴ. 帣 ̸ ⸧ָӴϰ ָ , б Ƴ . ڿ <η°!> ϰ θ Ҹ . ڱ⸦ ҷ б л ÷ ־. л ¥¥, 빮 󸶿?, . - -Ƹ б 翡 ִ ̷ ̿Ͽ Ϸ ̸. ϿǸ , ְ ؼ 𸣴ٰ ħ ÷ پ̸. ׷ θ ä ؼ , <> 纹ϸ ̷ ÷ Ѿ . - -빮 Դϱ.ϰ ÷ Ͽ. ״ ߿ 嵵 öŸ Ⱑ Ⱦϱ? ó , ° ׸ Ͽϱ? ƴϴ, ƴϴ. ̻ϰԵ ¹ տ ̴.׸ Ƴ Ź б. - ׼ θ 󱼿 ޸ ũ ְϴ , ƿ. п پ־. ̷ µ, Ҹ ߾Ÿ ɱ׷ɱ׷ Ͽ. - -׶ ÷ , д, , Ҹ ϳ. ºٵ ɾ Կ 츱 ˾.ϰ, ½ پϱ ȯڴ , ׷, ׷ Ϳ.ϰ, Ҹ ڸ . - - , ޸ ŭ , Ƴ ÷ տ Ͽ. ׷ 빮 󸶶 ̿?ϰ л η°Ų ٶ󺸸 ȥ㸻, õ ְ, ̵簡., ߾Ÿ. - - ݽÿ. ̿ Ҿ ÷ Կ . θ û ׼ . Ѳ ̷ ݾ ҷ 󸶸ΰ! ׷ Ⱑ ڿ 縣 Ҵ.  ;. ִ ģ ͺٵ ĥ Ͽ. - - ʹ ѵ. ̷ ϸ л Ͽ. - -ƴϿýô. ռ ġ ⼭ űⰡ ÿ Ѵ´ϴ. ̷ ּž.ϰ ۺ 󱼿 귶. - -׷ ޶ ̴ .  մ ׷ ʵ ԰ ìⷯ . - - л ¿ ÷ ٸ ̻ϰ ŻϿ. ѴٴϺ Ͽ.  ٴϺ ġ ij <Ʈ> ̲ Ͽ. ̲⵵ Ͽ. - - ٸ ſ. ڱ ٴٸ ̴. コ . < ƿ. ̷ µ!> ̷ Ϳ ȴ. ׸  ϴ ڱ⸦ 븮 Ͽ. ׷ ϰ  ʹ. ϰ Ҹ ʹ. ̸, ġڱ.ϰ ź θ¢ Ϳ Դ. ÷ η°Ÿ ä Ѻǿ . - -, .ϰ, ÷ Ǵٽ Ͽ. ־ ÷ ٽñ Ͽ. ٸ ߸ ڱ Ӹ ٽɰ . - - ְ ¦ տ 翡, Ǵ ¾ ܰŸ ƴϰ, Դ. γ ⻼. ڽ ۿ ȵǴ  մԿ 㸮 , ȳ ٳɽÿ. ƴ. - -׷ η°Ÿ аŸ ߿ ư ޹̾. 뵿 Ͽ 帥 ľ ָ âڿ, 帣 ʿ  ѱⰡ ھƳ ϸ ̶ 󸶳 ο . ߱ ϳ . ¸ ˼۱׷ ڸ Ͼ Ҵ. - - ! η°Ÿ аŸ Ƹ . ̷ , ҹ̸ ! - -״ ȱ ̳ ϴ ԰ɰŷȴ. ׷ Ӹ ο Ƴ װ <̷ ƴ϶ ó ⸦ ٸ մ ¿ ɴ > ̾. ϰԵ ϱ ׷ ѹ Ϸ. ڱ⸦ ٸ ִٰ ⸦ ص Ǿ. ׷ٰ η°Ų տ . - -׷ ״ غ ̶ ٷ 忡 , ٴϴ ƴ η°Ÿ ڱ ó ϱ Ͽ. 󸶸 ԰, ̳ Ǵ Դ. ߿ մ ϴ ÷ Ӹ θ Ű <> θ , л . ״ ٽ ٰ. - -ƾ, η° ƴ Ÿöÿ? - - л ſ Ȱ Լ ٹ ä ÷ ŵ鶰 ʾҴ. ÷ ϴ ؿ Ǹ, ƾ, ֵ麸 ΰ Ŵ 帮ϴ. Ű.ϰ, ߱߱ϰԵ ִ Ϻ ¦ . - - ̷, ġʰ. Ҹ ° Ƽ. ÷ ÿ ϰ . - - Դ. ÷ Ÿ ̸ 븮 ־. ׷ () Ʋ ʾҴ. ϰ ư ̱ Ͽ Ÿ ϳ ־. ϰ ū ִ° Ƹ պ ȿ ũ Ͽ 忡 з ġ. ÷ . - -η°Ÿ Ÿöÿ. - -ѵ °̸ ϴٰ λ絿 ¿ֱ Ͽ. η°Ű ſ ̻ϰԵ ׸ η°Ű ٽñ ſǸ ̹ ´. ڲ տ Ÿ ٶ . ̳ ٸ ¢ ٴ ۿ . - - η°ű ذ , ϸŭ ȲϿ. 帮 ϴ ħħϰ Ȳȥ ϴ. â ձ ٴ޾Ƽ ״ ο Ҵ. Ϳü ϰ ׷. ׷ ׷ Ƚɿ ƴϿ, ڱ⸦ ģ ƴ ˰ ڵ ηϴ ̴. - -״ ࿡ ٴġ ð ̶ ø ŷȴ. () ̸ Ͽٴ ϰ ;. ״ θθ Ǿ. ġ ڱ - ϰ ޷ ٸ δ ٰ, ٰ ϴ Ͽ. - -׷ ħ 氡 ģ ġ̰ ´. ۿ 󱼿 ȫ , ΰ Ŀݰ Ŵ, 븣 ¦ а, ִ ιؿ ġ ̸ Ųٷ ٿ ÷ dzäϰ ־. - - ÷, ڳ  ϼ׷. ״ . - -׶׺ ̸ ÿ θ¢. Ҹ ϰ ϽϿ. ÷ ģ  ݰ . ڱ⸦ ̳ ⵵ Ͽ. - -ڳ״ ϼ׷. ڳ׵ ̰ ƺ.ϰ, ÷ 켭 . - -д, ٰ . ׷ , ڳ ޸ ° ?  ̸ . - - ϰ ߶Ͽ. ߾ ̴ ܶѲ Թ , 迡 ʺƴ ̸ ̸ ̸ ̸ Ͼ 붱 ϰ þ Źڿ ÷ ڱ ߵ . ̸ ű ִ ̸ ׸ ѵ ÿġ ʾҴ. ϵ ̴ з 붱 ̱⵵ ϰ ߾ ׸ ûϿ. - -ָ âڴ ĸ ڲڲ ̶̶ Ͽ. İ κο ̲ٸ ׸ ׳ Ű Ҵ. ° ׸ ޾Ƶ . ġ̿ ̶ ϰ âڿ ȭϿ. ̴. - - ÷ Ǯ Ͽ. 迡  ҷŸ ξ Ͽ. - -ġ Ǿ ÷ , ״ٴ, 츮 ܾ Ծ, ϼ. ǽ״. - -Ƶ ̳, ׸ ϳ. . Ҵ. - -׷ 󸶸 ΰ? - - , ! ̷ Ⱥξ , Ծ . ̰ µ. - -, ߱, ׸μ. - -̳, ̰ ԰ ,  Ծ.ϰ ġ ͸ ä ̴ θ¢. ׸ ״ ټ ߴ밡Է ޷, ̳, , ʾ. ߴ ƴ. ߴ밡 ġ ϴ Ͽ. ġ ˾ƺ ȭ , ̸ , ̳ ˰.ڸ 㸮 ĩĩ ϴ ¥ ߴ밡 տ ½ . ǰ Ǭ ߱׶ ϸ . - - , . ̷ ϸ Ϻ ݴ´. ÷ ߿ ó Ǵ ũ ٺٰ ҽÿ ϴ ʹ ٴ ҽġ , ! , , ٸٱ .ϰ ġ ִֿ ޾, ! ø !ϸ鼭, Ǯ ģ. ¾ ٽ ̴ Ǭ Ÿ ´´ٴ ¸ϰ . - - ξ ܸ Ҵ. ÷ Լ Ƶ̰ ſ ٵ, ξ, ξ., ƴ. - - ԰ ÷ ġ ġ ´. Ҹ  Ǵ ִ ÷Է . ̴ , ġ, 콺 ̾߱ ϳ ұ. ° 忡 ʾҰڳ. - -׷. - -ٰ Ⱑ Ƶ׷. ׷ 忡 ϸ մ ϳ ¿ ø ʾҳ. ű ħ ̽ л̽ - ٴϿ ư ִ - <> θ ° ְ. ٽ η° Ÿöÿ ϰ հ ϱ Ź Ѹġ ȴ Ƽϸ < ̷ !> Ҹ߸ Ҳ Ҹ, ! - - ÷ ϰԵ Ҳ Ҹ . Ͻÿ . - - , ¼, < !> ̱ Ҹ óŵ , . - - Ҹ . ׷ Ҹ ÷ ½½ Ͽ. - -ġ ̾ ̸ ٶ󺸸, ݹ ϴ ΰ. - - ÷ ڸ 鿩ø, 츮 ׾ٳ. - -, ״ٴ, ? - -̳ . . - - ģ , . - - , ׾, ... ü ij Դٴ, ̾, ̾.ϰ ÷ Ҹ . - -ġ 󱼷, , ϳ ϳ. ׷ , .ϰ ƴ. - -ġ Ѹġ ÷ ۽۽ ̱׷ ´. - -ױ ׾.ϰ ǰ . - -ױ ׾, Ƹ ִܴ. . ӾҴ.ϰ  ջ ġ ´. - - ƴ ΰ. ָճװ δ´ µ.ϰ, ġ̵ Ҿ ÷ ư Ͽ. - - ׾, ׾뵵׷. - - ÷ ȱ Ȯְ Ҹ Ҹ ־ ־. ġ ä ܾ ԰ Դ. ǿ . - - ÷ ߿ 簡 ٴ޾Ҵ. ̶ ص ̿, ü ƴ϶ Ȱ Ҷ ε ޿ ̴. ÷ ֱ⸦ ʾҴ 빮 鿩 װ ϴ ù () - dz찡 ٴ ٸ . - -Ÿ ħ Ҹ . ׸Ÿ Ҹ . ٸ ħ ߸ - ߸ٴϺ ħ ϰ ұϰ ϴ ϴ Ҹ,  Ҹ ̴. û() Ҹ ̿, ܶܶ ϰ Ѿ Ҹ ٴ ͵ Ҵ 𸣸. - -Ȥ ÷ ұ ħ ߴ 𸥴. ׷ 빮 ڸ , , µ ͺ ʾ, .̶ ģ ϴ. ̾߸ ؿ ù Ѿƹ 强() ̴. - -Ͽ ÷ 湮 Ĭ . ϴ ߱ - ڸ ؿ , Ϳ ˳ ܳ, ʳ, ߱Ⱑ ÷ ڸ 񷶴. - -ȿ  ѱ ̵ û ִ ȣ ƴ. - -̷ , ־õ() ̾! ͵ Ͼ . Ҹ Բ ߱ ٸ á. ׷ ߱濡 ä̴ ƴϰ ɰ ־. ̶ Ҹ Ҹ Ͽ. ̰ . 뵵 ׷ ٿ, ٴ ǥ ̴. Ҹ Կ ƴϰ ġ ӿ Ͽ. ٰ ٰ . - -߷ Ƴ Ӹ ޷ ׾߸ ġ ȯ Ӹ , , , ! پ, ! - - - -, ̰ , ƹ . - - -̳, ׾ ̳, . - - - -. , ׾. - -̷ٰ â , ġ ˾ƺڸ, ! ! ٶ ϰ õ , .ϴ ޾. ׷ þ. ÷ ĥ 󱼿 ߾ŷȴ. - - ٳҴµ ϴ, ϴ... ϰԵ ! ϸ... diff --git a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt deleted file mode 100644 index e10a3d4..0000000 --- a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt +++ /dev/null @@ -1,175 +0,0 @@ -This file was derived from -http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32 --------- -[소개] -잔인한 운명은 이렇게 인간을 조롱하곤 한다. 우리가 평소 마음 속 저 깊은 곳에 움켜쥐고 있던 자존심 따위는 어느 한 순간 전혀 무용지물이란 것이 드러나고 만다. 하기야 이렇게 삶의 한 순간, 눈 깜짝할 새에 우리를 후려 갈기고 지나가는 그 진실이 미래의 어느날에는 또 남김없이 우리 눈 앞에 펼쳐질지도 모른다. 죽음을 앞둔 사람들에게는 자신의 삶 전체가 한 순간에 다시 보인다는 그런 얘기도 있던데... - -다시 읽어보니 끔찍한 생각도 든다. 식민지 시대의 암울한 삶, 그 끈끈한 냄새를 피할 수 없다. 21세기를 사는 우리들에겐 그런 냄새는 아예 인연이 없는 것처럼 느껴질 수도 있을 것이다. 그러나 과연 그럴까? 이런 냄새를 모르고 평생 사는 사람도 있겠지만, 전혀 관련이 없는 것은 아닐 것이다. 그저 우연일 뿐이다. 아내를 박대하는 김 첨지의 모습... 요새 같으면 간이 배 밖으로 튀어나온 남자겠지만, 그래도 그 애정은 더 진한 것일 수도 있다. - -[작가 소개] -현 진 건(玄鎭健, 1900-1943) : 소설가. 한국 사실주의 단편소설의 기틀을 다진 작가이다. 본관은 연주(延州). 아호는 빙허(憑虛). 1920년대 전반기에는 자전적 요소가 강한 개인적 체험소설인 <빈처> <술 권하는 사회>, 성(性)의 문제와 애정문제를 다룬 <새빨간 웃음> 등이 있으며 1920년대 중반 이후에는 <피아노> <우편국에서> <불> <고향> 등 세태에의 관심과 식민지 상황하의 현실인식이 두드러진 작품을 많이 발표했다. <운수 좋은 날>도 이러한 계열에 속하는 작품이다. 1930년대 이후에는 역사의식과 예언주의적 문학관에 근거한 역사소설 중심의 <무영탑> <흑치상지(黑齒常之)> <선화공주> 등 장편소설을 발표했다. - -새침하게 흐린 품이 눈이 올 듯하더니 눈은 아니 오고 얼다가 만 비가 추적추적 내리었다. - -이날이야말로 동소문 안에서 인력거꾼 노릇을 하는 김 첨지에게는 오래간만에도 닥친 운수 좋은 날이었다. 문안에(거기도 문밖은 아니지만) 들어간답시는 앞집 마나님을 전찻길까지 모셔다 드린 것을 비롯으로 행여나 손님이 있을까 하고 정류장에서 어정어정하며 내리는 사람 하나하나에게 거의 비는 듯한 눈결을 보내고 있다가 마침내 교원인 듯한 양복장이를 동광학교(東光學校)까지 태워다 주기로 되었다. - -첫번에 삼십 전, 둘째 번에 오십 전 - 아침 댓바람에 그리 흔치 않은 일이었다. 그야말로 재수가 옴붙어서 근 열흘 동안 돈 구경도 못한 김 첨지는 십 전짜리 백통화 서 푼, 또는 다섯 푼이 찰깍하고 손바닥에 떨어질 제 거의 눈물을 흘릴 만큼 기뻤었다. 더구나 이날 이때에 이 팔십 전이라는 돈이 그에게 얼마나 유용한지 몰랐다. 컬컬한 목에 모주 한 잔도 적실 수 있거니와 그보다도 앓는 아내에게 설렁탕 한 그릇도 사다줄 수 있음이다. - -그의 아내가 기침으로 쿨럭거리기는 벌써 달포가 넘었다. 조밥도 굶기를 먹다시피 하는 형편이니 물론 약 한 첩 써 본 일이 없다. 구태여 쓰려면 못 쓸 바도 아니로되 그는 병이란 놈에게 약을 주어 보내면 재미를 붙여서 자꾸 온다는 자기의 신조(信條)에 어디까지 충실하였다. 따라서 의사에게 보인 적이 없으니 무슨 병인지는 알 수 없으되 반듯이 누워 가지고, 일어나기는 새로 모로도 못 눕는걸 보면 중증은 중증인 듯. 병이 이대도록 심해지기는 열흘 전에 조밥을 먹고 체한 때문이다. - -그때도 김 첨지가 오래간만에 돈을 얻어서 좁쌀 한 되와 십 전짜리 나무 한 단을 사다 주었더니 김 첨지의 말에 의지하면 그 오라질 년이 천방지축(天方地軸)으로 남비에 대고 끓였다. 마음은 급하고 불길은 달지 않아 채 익지도 않은 것을 그 오라질 년이 숟가락은 고만두고 손으로 움켜서 두 뺨에 주먹덩이 같은 혹이 불거지도록 누가 빼앗을 듯이 처박질 하더니만 그날 저녁부터 가슴이 땅긴다, 배가 켕긴다고 눈을 홉뜨고 지랄병을 하였다. 그때 김 첨지는 열화와 같이 성을 내며, - -“에이, 오라질 년, 조롱복은 할 수가 없어, 못 먹어 병, 먹어서 병, 어쩌란 말이야! 왜 눈을 바루 뜨지 못해!”하고 김 첨지는 앓는 이의 뺨을 한 번 후려갈겼다. 홉뜬 눈은 조금 바루어졌건만 이슬이 맺히었다. 김 첨지의 눈시울도 뜨끈뜨끈하였다. - -이 환자가 그러고도 먹는 데는 물리지 않았다. 사흘 전부터 설렁탕 국물이 마시고 싶다고 남편을 졸랐다. - -“이런 오라질 년! 조밥도 못 먹는 년이 설렁탕은, 또 처먹고 지랄병을 하게.”라고, 야단을 쳐보았건만, 못 사주는 마음이 시원치는 않았다. - -인제 설렁탕을 사줄 수도 있다. 앓는 어미 곁에서 배고파 보채는 개똥이(세 살먹이)에게 죽을 사줄 수도 있다. - 팔십 전을 손에 쥔 김 첨지의 마음은 푼푼하였다. 그러나 그의 행운은 그걸로 그치지 않았다. 땀과 빗물이 섞여 흐르는 목덜미를 기름주머니가 다 된 왜목 수건으로 닦으며, 그 학교 문을 돌아나올 때였다. 뒤에서 <인력거!> 하고 부르는 소리가 난다. 자기를 불러 멈춘 사람이 그 학교 학생인 줄 김 첨지는 한 번 보고 짐작할 수 있었다. 그 학생은 다짜고짜로, “남대문 정거장까지 얼마요?”라고, 물었다. - -아마도 그 학교 기숙사에 있는 이로 동기방학을 이용하여 귀향하려 함이리라. 오늘 가기로 작정은 하였건만 비는 오고, 짐은 있고 해서 어찌할 줄 모르다가 마침 김 첨지를 보고 뛰어나왔음이리라. 그렇지 않으면 왜 구두를 채 신지 못해서 질질 끌고, 비록 <고구라> 양복일망정 노박이로 비를 맞으며 김첨지를 뒤쫓아 나왔으랴. - -“남대문 정거장까지 말씀입니까.”하고 김 첨지는 잠깐 주저하였다. 그는 이 우중에 우장도 없이 그 먼 곳을 철벅거리고 가기가 싫었음일까? 처음 것, 둘째 것으로 그만 만족하였음일까? 아니다, 결코 아니다. 이상하게도 꼬리를 맞물고 덤비는 이 행운 앞에 조금 겁이 났음이다.그리고 집을 나올 제 아내의 부탁이 마음에 켕기었다. - 앞집 마나님한테서 부르러 왔을 제 병인은 그 뼈만 남은 얼굴에 유일의 생물 같은 유달리 크고 움폭한 눈에 애걸하는 빛을 띠우며, “오늘은 나가지 말아요. 제발 덕분에 집에 붙어있어요. 내가 이렇게 아픈데……”라고, 모기 소리같이 중얼거리고 숨을 걸그렁걸그렁 하였다. - -그때에 김 첨지는 대수롭지 않은 듯이, “압다, 젠장맞을 년, 별 빌어먹을 소리를 다 하네. 맞붙들고 앉았으면 누가 먹여 살릴 줄 알아.”하고, 훌쩍 뛰어나오려니까 환자는 붙잡을 듯이 팔을 내저으며, “나가지 말라도 그래, 그러면 일찌기 들어와요.”하고, 목메인 소리가 뒤를 따랐다. - -정거장까지 가잔 말을 들은 순간에 경련적으로 떠는 손, 유달리 큼직한 눈, 울 듯한 아내의 얼굴이 김 첨지의 눈앞에 어른어른하였다. “그래 남대문 정거장까지 얼마란 말이요?”하고 학생은 초조한 듯이 인력거꾼의 얼굴을 바라보며 혼잣말같이, “인천 차가 열 한 점에 있고, 그 다음에는 새로 두 점이든가.”라고, 중얼거린다. - -“일 원 오십 전만 줍시요.” 이 말이 저도 모를 사이에 불쑥 김 첨지의 입에서 떨어졌다. 제 입으로 부르고도 스스로 그 엄청난 돈 액수에 놀래었다. 한꺼번에 이런 금액을 불러라도 본 지가 그 얼마만인가! 그러자 그 돈 벌 용기가 병자에 대한 염려를 사르고 말았다. 설마 오늘 내로 어떠랴 싶었다. 무슨 일이 있더라도 제일 제이의 행운을 곱친 것보다도 오히려 갑절이 많은 이 행운을 놓칠 수 없다 하였다. - -“일 원 오십 전은 너무 과한데.” 이런 말을 하며 학생은 고개를 기웃하였다. - -“아니올시다. 잇수로 치면 여기서 거기가 시오리가 넘는답니다. 또 이런 진 날에 좀더 주셔야지요.”하고 빙글빙글 웃는 차부의 얼굴에는 숨길 수 없는 기쁨이 넘쳐 흘렀다. - -“그러면 달라는 대로 줄 터이니 빨리 가요.” 관대한 어린 손님은 그런 말을 남기고 총총히 옷도 입고 짐도 챙기러 갈 데로 갔다. - -그 학생을 태우고 나선 김 첨지의 다리는 이상하게 거뿐하였다. 달음질을 한다느니보다 거의 나는 듯하였다. 바퀴도 어떻게 속히 도는지 군다느니보다 마치 얼음을 지쳐나가는 <스케이트> 모양으로 미끄러져 가는 듯하였다. 얼은 땅에 비가 내려 미끄럽기도 하였지만. - -이윽고 끄는 이의 다리는 무거워졌다. 자기 집 가까이 다다른 까닭이다. 새삼스러운 염려가 그의 가슴을 눌렀다. <오늘은 나가지 말아요. 내가 이렇게 아픈데!> 이런 말이 잉잉 그의 귀에 울렸다. 그리고 병자의 움쑥 들어간 눈이 원망하는 듯이 자기를 노리는 듯하였다. 그러자 엉엉하고 우는 개똥이의 곡성을 들은 듯싶다. 딸국딸국 하고 숨 모으는 소리도 나는 듯싶다.“왜 이리우, 기차 놓치겠구먼.”하고 탄 이의 초조한 부르짖음이 간신히 그의 귀에 들어왔다. 언뜻 깨달으니 김 첨지는 인력거를 쥔 채 길 한복판에 엉거주춤 멈춰있지 않은가. - -“예, 예.”하고, 김 첨지는 또다시 달음질하였다. 집이 차차 멀어갈수록 김 첨지의 걸음에는 다시금 신이 나기 시작하였다. 다리를 재게 놀려야만 쉴새없이 자기의 머리에 떠오르는 모든 근심과 걱정을 잊을 듯이. - -정거장까지 끌어다주고 그 깜짝 놀란 일 원 오십 전을 정말 제 손에 쥠에, 제 말마따나 십 리나 되는 길을 비를 맞아 가며 질퍽거리고 온 생각은 아니하고, 거저나 얻은 듯이 고마왔다. 졸부나 된 듯이 기뻤다. 제자식 뻘밖에 안되는 어린 손님에게 몇 번 허리를 굽히며, “안녕히 다녀옵시요.”라고 깍듯이 재우쳤다. - -그러나 빈 인력거를 털털거리며 이 우중에 돌아갈 일이 꿈밖이었다. 노동으로 하여 흐른 땀이 식어지자 굶주린 창자에서, 물 흐르는 옷에서 어슬어슬 한기가 솟아나기 비롯하매 일 원 오십 전이란 돈이 얼마나 괜찮고 괴로운 것인 줄 절절히 느끼었다. 정거장을 떠나는 그의 발길은 힘 하나 없었다. 온몸이 옹송그려지며 당장 그 자리에 엎어져 못 일어날 것 같았다. - -“젠장맞을 것! 이 비를 맞으며 빈 인력거를 털털거리고 돌아를 간담. 이런 빌어먹을, 제 할미를 붙을 비가 왜 남의 상판을 딱딱 때려!” - -그는 몹시 홧증을 내며 누구에게 반항이나 하는 듯이 게걸거렸다. 그럴 즈음에 그의 머리엔 또 새로운 광명이 비쳤나니 그것은 <이러구 갈 게 아니라 이 근처를 빙빙 돌며 차 오기를 기다리면 또 손님을 태우게 될는지도 몰라>란 생각이었다. 오늘 운수가 괴상하게도 좋으니까 그런 요행이 또한번 없으리라고 누가 보증하랴. 꼬리를 굴리는 행운이 꼭 자기를 기다리고 있다고 내기를 해도 좋을 만한 믿음을 얻게 되었다. 그렇다고 정거장 인력거꾼의 등살이 무서우니 정거장 앞에 섰을 수는 없었다. - -그래 그는 이전에도 여러 번 해본 일이라 바로 정거장 앞 전차 정류장에서 조금 떨어지게, 사람 다니는 길과 전찻길 틈에 인력거를 세워놓고 자기는 그 근처를 빙빙 돌며 형세를 관망하기로 하였다. 얼마만에 기차는 왔고, 수십 명이나 되는 손이 정류장으로 쏟아져 나왔다. 그 중에서 손님을 물색하는 김 첨지의 눈엔 양머리에 뒤축 높은 구두를 신고 <망토>까지 두른 기생 퇴물인 듯, 난봉 여학생인 듯한 여편네의 모양이 띄었다. 그는 슬근슬근 그 여자의 곁으로 다가들었다. - -“아씨, 인력거 아니 타시랍시요?” - -그 여학생인지 뭔지가 한참은 매우 탯갈을 빼며 입술을 꼭 다문 채 김 첨지를 거들떠보지도 않았다. 김 첨지는 구걸하는 거지나 무엇같이 연해연방 그의 기색을 살피며, “아씨, 정거장 애들보담 아주 싸게 모셔다 드리겠읍니다. 댁이 어디신가요.”하고, 추근추근하게도 그 여자의 들고 있는 일본식 버들고리짝에 제 손을 대었다. - -“왜 이래, 남 귀치않게.” 소리를 벽력같이 지르고는 돌아선다. 김 첨지는 어랍시요 하고 물러섰다. - -전차는 왔다. 김 첨지는 원망스럽게 전차 타는 이를 노리고 있었다. 그러나 그의 예감(豫感)은 틀리지 않았다. 전차가 빡빡하게 사람을 싣고 움직이기 시작하였을 때 타고 남은 손 하나이 있었다. 굉장하게 큰 가방을 들고 있는걸 보면 아마 붐비는 차 안에 짐이 크다 하여 차장에게 밀려내려온 눈치였다. 김 첨지는 대어섰다. - -“인력거를 타시랍시요.” - -한동안 값으로 승강이를 하다가 육십 전에 인사동까지 태워다주기로 하였다. 인력거가 무거워지매 그의 몸은 이상하게도 가벼워졌고 그리고 또 인력거가 가벼워지니 몸은 다시금 무거워졌건만 이번에는 마음조차 초조해 온다. 집의 광경이 자꾸 눈앞에 어른거리어 인제 요행을 바랄 여유도 없었다. 나무 등걸이나 무엇 같고 제 것 같지도 않은 다리를 연해 꾸짖으며 갈팡질팡 뛰는 수밖에 없었다. - -저놈의 인력거군이 저렇게 술이 취해가지고 이 진 땅에 어찌 가노, 라고 길 가는 사람이 걱정을 하리만큼 그의 걸음은 황급하였다. 흐리고 비오는 하늘은 어둠침침하게 벌써 황혼에 가까운 듯하다. 창경원 앞까지 다달아서야 그는 턱에 닿은 숨을 돌리고 걸음도 늦추잡았다. 한 걸음 두 걸음 집이 가까와올수록 그의 마음조차 괴상하게 누그러웠다. 그런데 이 누그러움은 안심에서 오는 게 아니요, 자기를 덮친 무서운 불행을 빈틈없이 알게 될 때가 박두한 것을 두려워하는 마음에서 오는 것이다. - -그는 불행에 다닥치기 전 시간을 얼마쯤이라도 늘리려고 버르적거렸다. 기적(奇蹟)에 가까운 벌이를 하였다는 기쁨을 할 수 있으면 오래 지니고 싶었다. 그는 두리번두리번 사면을 살피었다. 그 모양은 마치 자기 집 - 곧 불행을 향하고 달려가는 제 다리를 제 힘으로는 도저히 어찌할 수 없으니 누구든지 나를 좀 잡아 다고, 구해 다고 하는 듯하였다. - -그럴 즈음에 마침 길가 선술집에서 그의 친구 치삼이가 나온다. 그의 우글우글 살찐 얼굴에 주홍이 돋는 듯, 온 턱과 뺨을 시커멓게 구레나룻이 덮였거늘, 노르탱탱한 얼굴이 바짝 말라서 여기저기 고랑이 패고, 수염도 있대야 턱밑에만 마치 솔잎 송이를 거꾸로 붙여놓은 듯한 김 첨지의 풍채하고는 기이한 대상을 짓고 있었다. - -“여보게 김 첨지, 자네 문안 들어갔다 오는 모양일세그려. 돈 많이 벌었을 테니 한 잔 빨리게.” - -뚱뚱보는 말라깽이를 보든 맡에 부르짖었다. 그 목소리는 몸짓과 딴판으로 연하고 싹싹하였다. 김 첨지는 이 친구를 만난 게 어떻게 반가운지 몰랐다. 자기를 살려준 은인이나 무엇같이 고맙기도 하였다. - -“자네는 벌써 한잔 한 모양일세그려. 자네도 오늘 재미가 좋아보이.”하고, 김 첨지는 얼굴을 펴서 웃었다. - -“압다, 재미 안 좋다고 술 못 먹을 낸가. 그런데 여보게, 자네 왼몸이 어째 물독에 빠진 새앙쥐 같은가? 어서 이리 들어와 말리게.” - -선술집은 훈훈하고 뜨뜻하였다. 추어탕을 끓이는 솥뚜껑을 열 적마다 뭉게뭉게 떠오르는 흰 김, 석쇠에서 뻐지짓뻐지짓 구워지는 너비아니 구이며 제육이며 간이며 콩팥이며 북어며 빈대떡……이 너저분하게 늘어놓인 안주 탁자에 김 첨지는 갑자기 속이 쓰려서 견딜 수 없었다. 마음대로 할 양이면 거기 있는 모든 먹음 먹이를 모조리 깡그리 집어삼켜도 시원치 않았다. 하되 배고픈 이는 위선 분량 많은 빈대떡 두 개를 쪼이기도 하고 추어탕을 한 그릇 청하였다. - -주린 창자는 음식맛을 보더니 더욱더욱 비어지며 자꾸자꾸 들이라들이라 하였다. 순식간에 두부와 미꾸리 든 국 한 그릇을 그냥 물같이 들이키고 말았다. 세째 그릇을 받아들었을 제 데우던 막걸이 곱배기 두 잔이 더웠다. 치삼이와 같이 마시자 원원히 비었던 속이라 찌르르하고 창자에 퍼지며 얼굴이 화끈하였다. 눌러 곱배기 한 잔을 또 마셨다. - -김 첨지의 눈은 벌써 개개 풀리기 시작하였다. 석쇠에 얹힌 떡 두 개를 숭덩숭덩 썰어서 볼을 불룩거리며 또 곱배기 두 잔을 부어라 하였다. - -치삼은 의아한 듯이 김 첨지를 보며, “여보게 또 붓다니, 벌써 우리가 넉 잔씩 먹었네, 돈이 사십 전일세.”라고 주의시켰다. - -“아따 이놈아, 사십 전이 그리 끔찍하냐. 오늘 내가 돈을 막 벌었어. 참 오늘 운수가 좋았느니.” - -“그래 얼마를 벌었단 말인가?” - -“삼십 원을 벌었어, 삼십 원을! 이런 젠장맞을 술을 왜 안부어……괜찮다 괜찮다, 막 먹어도 상관이 없어. 오늘 돈 산더미같이 벌었는데.” - -“어, 이 사람 취했군, 그만두세.” - -“이놈아, 이걸 먹고 취할 내냐, 어서 더 먹어.”하고는 치삼의 귀를 잡아채며 취한 이는 부르짖었다. 그리고 술을 붓는 열 다섯 살 됨직한 중대가리에게로 달려들며, “이놈, 오라질 놈, 왜 술을 붓지 않어.”라고 야단을 쳤다. 중대가리는 히히 웃고 치삼을 보며 문의하는 듯이 눈짓을 하였다. 주정꾼이 눈치를 알아보고 화를 버럭내며, “에미를 붙을 이 오라질 놈들 같으니, 이놈 내가 돈이 없을 줄 알고.”하자마자 허리춤을 훔칫훔칫 하더니 일 원짜리 한 장을 꺼내어 중대가리 앞에 펄쩍 집어던졌다. 그 사품에 몇 푼 은전이 잘그랑 하며 떨어진다. - -“여보게 돈 떨어졌네, 왜 돈을 막 끼얹나.” 이런 말을 하며 일변 돈을 줍는다. 김 첨지는 취한 중에도 돈의 거처를 살피는 듯이 눈을 크게 떠서 땅을 내려다보다가 불시에 제 하는 짓이 너무 더럽다는 듯이 고개를 소스라치자 더욱 성을 내며, “봐라 봐! 이 더러운 놈들아, 내가 돈이 없나, 다리뼉다구를 꺾어놓을 놈들 같으니.”하고 치삼의 주워주는 돈을 받아, “이 원수엣 돈! 이 육시를 할 돈!”하면서, 풀매질을 친다. 벽에 맞아 떨어진 돈은 다시 술 끓이는 양푼에 떨어지며 정당한 매를 맞는다는 듯이 쨍하고 울었다. - -곱배기 두 잔은 또 부어질 겨를도 없이 말려가고 말았다. 김 첨지는 입술과 수염에 붙은 술을 빨아들이고 나서 매우 만족한 듯이 그 솔잎 송이 수염을 쓰다듬으며, “또 부어, 또 부어.”라고, 외쳤다. - -또 한 잔 먹고 나서 김 첨지는 치삼의 어깨를 치며 문득 껄껄 웃는다. 그 웃음 소리가 어떻게 컸는지 술집에 있는 이의 눈은 모두 김 첨지에게로 몰리었다. 웃는 이는 더욱 웃으며, “여보게 치삼이, 내 우스운 이야기 하나 할까. 오늘 손을 태고 정거장에까지 가지 않았겠나.” - -“그래서.” - -“갔다가 그저 오기가 안 됐데그려. 그래 전차 정류장에서 어름어름하며 손님 하나를 태울 궁리를 하지 않았나. 거기 마침 마나님이신지 여학생님이신지 - 요새야 어디 논다니와 아가씨를 구별할 수가 있던가 - <망토>를 두르고 비를 맞고 서 있겠지. 슬근슬근 가까이 가서 인력거 타시랍시요 하고 손가방을 받으랴니까 내 손을 탁 뿌리치고 홱 돌아서더니만 <왜 남을 이렇게 귀찮게 굴어!> 그 소리야말로 꾀꼬리 소리지, 허허!” - -김 첨지는 교묘하게도 정말 꾀꼬리 같은 소리를 내었다. 모든 사람은 일시에 웃었다. - -“빌어먹을 깍쟁이 같은 년, 누가 저를 어쩌나, <왜 남을 귀찮게 굴어!> 어이구 소리가 처신도 없지, 허허.” - -웃음 소리들은 높아졌다. 그러나 그 웃음 소리들이 사라지기 전에 김 첨지는 훌쩍훌쩍 울기 시작하였다. - -치삼은 어이없이 주정뱅이를 바라보며, “금방 웃고 지랄을 하더니 우는 건 또 무슨 일인가.” - -김 첨지는 연해 코를 들여마시며, “우리 마누라가 죽었다네.” - -“뭐, 마누라가 죽다니, 언제?” - -“이놈아 언제는. 오늘이지.” - -“엑기 미친 놈, 거짓말 말아.” - -“거짓말은 왜, 참말로 죽었어, 참말로... 마누라 시체를 집어 뻐들쳐놓고 내가 술을 먹다니, 내가 죽일 놈이야, 죽일 놈이야.”하고 김 첨지는 엉엉 소리를 내어 운다. - -치삼은 흥이 조금 깨어지는 얼굴로, “원 이 사람이, 참말을 하나 거짓말을 하나. 그러면 집으로 가세, 가.”하고 우는 이의 팔을 잡아당기었다. - -치삼의 끄는 손을 뿌리치더니 김 첨지는 눈물이 글썽글썽한 눈으로 싱그레 웃는다. - -“죽기는 누가 죽어.”하고 득의가 양양. - -“죽기는 왜 죽어, 생때같이 살아만 있단다. 그 오라질 년이 밥을 죽이지. 인제 나한테 속았다.”하고 어린애 모양으로 손뼉을 치며 웃는다. - -“이 사람이 정말 미쳤단 말인가. 나도 아주먼네가 앓는단 말은 들었는데.”하고, 치삼이도 어느 불안을 느끼는 듯이 김 첨지에게 또 돌아가라고 권하였다. - -“안 죽었어, 안 죽었대도그래.” - -김 첨지는 홧증을 내며 확신있게 소리를 질렀으되 그 소리엔 안 죽은 것을 믿으려고 애쓰는 가락이 있었다. 기어이 일 원어치를 채워서 곱배기 한 잔씩 더 먹고 나왔다. 궂은 비는 의연히 추적추적 내린다. - -김 첨지는 취중에도 설렁탕을 사가지고 집에 다달았다. 집이라 해도 물론 셋집이요, 또 집 전체를 세든 게 아니라 안과 뚝떨어진 행랑방 한 간을 빌려 든 것인데 물을 길어대고 한 달에 일 원씩 내는 터이다. 만일 김 첨지가 주기를 띠지 않았던들 한 발을 대문에 들여놓았을 제 그곳을 지배하는 무시무시한 정적(靜寂) - 폭풍우가 지나간 뒤의 바다 같은 정적에 다리가 떨렸으리라. - -쿨룩거리는 기침 소리도 들을 수 없다. 그르렁거리는 숨소리조차 들을 수 없다. 다만 이 무덤같은 침묵을 깨뜨리는 - 깨뜨린다느니보다 한층 더 침묵을 깊게 하고 불길하게 하는 빡빡하는 그윽한 소리, 어린애의 젖 빠는 소리가 날 뿐이다. 만일 청각(聽覺)이 예민한 이 같으면 그 빡빡 소리는 빨 따름이요, 꿀떡꿀떡 하고 젖 넘어가는 소리가 없으니 빈 젖을 빤다는 것도 짐작할는지 모르리라. - -혹은 김 첨지도 이 불길한 침묵을 짐작했는지도 모른다. 그렇지 않으면 대문에 들어서자마자 전에 없이, “이 난장 맞을 년, 남편이 들어오는데 나와보지도 않아, 이 오라질 년.”이라고 고함을 친 게 수상하다. 이 고함이야말로 제 몸을 엄습해오는 무시무시한 증을 쫓아버리려는 허장성세(虛張聲勢)인 까닭이다. - -하여간 김 첨지는 방문을 왈칵 열었다. 구역을 나게 하는 추기 - 떨어진 삿자리 밑에서 나온 먼지내, 빨지 않은 기저귀에서 나는 똥내와 오줌내, 가지각색 때가 케케히 앉은 옷내, 병인의 땀 썩은 내가 섞인 추기가 무딘 김 첨지의 코를 찔렀다. - -방안에 들어서며 설렁탕을 한구석에 놓을 사이도 없이 주정군은 목청을 있는 대로 다 내어 호통을 쳤다. - -“이런 오라질 년, 주야장천(晝夜長川) 누워만 있으면 제일이야! 남편이 와도 일어나지를 못해.”라는 소리와 함께 발길로 누운 이의 다리를 몹시 찼다. 그러나 발길에 채이는 건 사람의 살이 아니고 나무등걸과 같은 느낌이 있었다. 이때에 빽빽 소리가 응아 소리로 변하였다. 개똥이가 물었던 젖을 빼어놓고 운다. 운대도 온 얼굴을 찡그려 붙여서, 운다는 표정을 할 뿐이다. 응아 소리도 입에서 나는 게 아니고 마치 뱃속에서 나는 듯하였다. 울다가 울다가 목도 잠겼고 또 울 기운조차 시진한 것 같다. - -발로 차도 그 보람이 없는 걸 보자 남편은 아내의 머리맡으로 달려들어 그야말로 까치집 같은 환자의 머리를 꺼들어 흔들며, “이 년아, 말을 해, 말을! 입이 붙었어, 이 오라질 년!” - -“…” - -“으응, 이것 봐, 아무 말이 없네.” -“…” - -“이년아, 죽었단 말이냐, 왜 말이 없어.” - -“…” - -“으응. 또 대답이 없네, 정말 죽었나버이.” - -이러다가 누운 이의 흰 창을 덮은, 위로 치뜬 눈을 알아보자마자, “이 눈깔! 이 눈깔! 왜 나를 바라보지 못하고 천정만 보느냐, 응.”하는 말 끝엔 목이 메었다. 그러자 산 사람의 눈에서 떨어진 닭의 똥 같은 눈물이 죽은 이의 뻣뻣한 얼굴을 어룽어룽 적시었다. 문득 김 첨지는 미칠 듯이 제 얼굴을 죽은 이의 얼굴에 한테 비비대며 중얼거렸다. - -“설렁탕을 사다놓았는데 왜 먹지를 못하니, 왜 먹지를 못하니... 괴상하게도 오늘은! 운수가 좋더니만... ” diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go b/vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go deleted file mode 100644 index e779b69..0000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package traditionalchinese - -import ( - "testing" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/transform" -) - -func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Decode", e.NewDecoder(), nil -} -func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) { - return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement -} - -func TestNonRepertoire(t *testing.T) { - testCases := []struct { - init func(e encoding.Encoding) (string, transform.Transformer, error) - e encoding.Encoding - src, want string - }{ - {dec, Big5, "\x81\x40", "\ufffd"}, - - {enc, Big5, "갂", ""}, - {enc, Big5, "a갂", "a"}, - {enc, Big5, "\u43f0갂", "\x87@"}, - } - for _, tc := range testCases { - dir, tr, wantErr := tc.init(tc.e) - - dst, _, err := transform.String(tr, tc.src) - if err != wantErr { - t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr) - } - if got := string(dst); got != tc.want { - t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go b/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go deleted file mode 100644 index 275821f..0000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package traditionalchinese - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{Big5} - -// Big5 is the Big5 encoding, also known as Code Page 950. -var Big5 encoding.Encoding = &big5 - -var big5 = internal.Encoding{ - &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}}, - "Big5", - identifier.Big5, -} - -var errInvalidBig5 = errors.New("traditionalchinese: invalid Big5 encoding") - -type big5Decoder struct{ transform.NopResetter } - -func (big5Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size, s := rune(0), 0, "" -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - err = transform.ErrShortSrc - break loop - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0xa1 <= c1 && c1 < 0xff: - c1 -= 0x62 - default: - err = errInvalidBig5 - break loop - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*157 + int(c1); i < len(decode) { - if 1133 <= i && i < 1167 { - // The two-rune special cases for LATIN CAPITAL / SMALL E WITH CIRCUMFLEX - // AND MACRON / CARON are from http://encoding.spec.whatwg.org/#big5 - switch i { - case 1133: - s = "\u00CA\u0304" - goto writeStr - case 1135: - s = "\u00CA\u030C" - goto writeStr - case 1164: - s = "\u00EA\u0304" - goto writeStr - case 1166: - s = "\u00EA\u030C" - goto writeStr - } - } - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - err = errInvalidBig5 - break loop - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - continue loop - - writeStr: - if nDst+len(s) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += copy(dst[nDst:], s) - continue loop - } - if atEOF && err == transform.ErrShortSrc { - err = errInvalidBig5 - } - return nDst, nSrc, err -} - -type big5Encoder struct{ transform.NopResetter } - -func (big5Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r >= utf8.RuneSelf { - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - case encode7Low <= r && r < encode7High: - if r = rune(encode7[r-encode7Low]); r != 0 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 8 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go deleted file mode 100644 index cf7fdb3..0000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// This program generates tables.go: -// go run maketables.go | gofmt > tables.go - -import ( - "bufio" - "fmt" - "log" - "net/http" - "sort" - "strings" -) - -func main() { - fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") - fmt.Printf("// Package traditionalchinese provides Traditional Chinese encodings such as Big5.\n") - fmt.Printf(`package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"` + "\n\n") - - res, err := http.Get("http://encoding.spec.whatwg.org/index-big5.txt") - if err != nil { - log.Fatalf("Get: %v", err) - } - defer res.Body.Close() - - mapping := [65536]uint32{} - reverse := [65536 * 4]uint16{} - - scanner := bufio.NewScanner(res.Body) - for scanner.Scan() { - s := strings.TrimSpace(scanner.Text()) - if s == "" || s[0] == '#' { - continue - } - x, y := uint16(0), uint32(0) - if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { - log.Fatalf("could not parse %q", s) - } - if x < 0 || 126*157 <= x { - log.Fatalf("Big5 code %d is out of range", x) - } - mapping[x] = y - - // The WHATWG spec http://encoding.spec.whatwg.org/#indexes says that - // "The index pointer for code point in index is the first pointer - // corresponding to code point in index", which would normally mean - // that the code below should be guarded by "if reverse[y] == 0", but - // last instead of first seems to match the behavior of - // "iconv -f UTF-8 -t BIG5". For example, U+8005 者 occurs twice in - // http://encoding.spec.whatwg.org/index-big5.txt, as index 2148 - // (encoded as "\x8e\xcd") and index 6543 (encoded as "\xaa\xcc") - // and "echo 者 | iconv -f UTF-8 -t BIG5 | xxd" gives "\xaa\xcc". - c0, c1 := x/157, x%157 - if c1 < 0x3f { - c1 += 0x40 - } else { - c1 += 0x62 - } - reverse[y] = (0x81+c0)<<8 | c1 - } - if err := scanner.Err(); err != nil { - log.Fatalf("scanner error: %v", err) - } - - fmt.Printf("// decode is the decoding table from Big5 code to Unicode.\n") - fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-big5.txt\n") - fmt.Printf("var decode = [...]uint32{\n") - for i, v := range mapping { - if v != 0 { - fmt.Printf("\t%d: 0x%08X,\n", i, v) - } - } - fmt.Printf("}\n\n") - - // Any run of at least separation continuous zero entries in the reverse map will - // be a separate encode table. - const separation = 1024 - - intervals := []interval(nil) - low, high := -1, -1 - for i, v := range reverse { - if v == 0 { - continue - } - if low < 0 { - low = i - } else if i-high >= separation { - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - low = i - } - high = i + 1 - } - if high >= 0 { - intervals = append(intervals, interval{low, high}) - } - sort.Sort(byDecreasingLength(intervals)) - - fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) - fmt.Printf("// encodeX are the encoding tables from Unicode to Big5 code,\n") - fmt.Printf("// sorted by decreasing length.\n") - for i, v := range intervals { - fmt.Printf("// encode%d: %5d entries for runes in [%6d, %6d).\n", i, v.len(), v.low, v.high) - } - fmt.Printf("\n") - - for i, v := range intervals { - fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) - fmt.Printf("var encode%d = [...]uint16{\n", i) - for j := v.low; j < v.high; j++ { - x := reverse[j] - if x == 0 { - continue - } - fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) - } - fmt.Printf("}\n\n") - } -} - -// interval is a half-open interval [low, high). -type interval struct { - low, high int -} - -func (i interval) len() int { return i.high - i.low } - -// byDecreasingLength sorts intervals by decreasing length. -type byDecreasingLength []interval - -func (b byDecreasingLength) Len() int { return len(b) } -func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } -func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go deleted file mode 100644 index d909e38..0000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go +++ /dev/null @@ -1,37142 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package traditionalchinese provides Traditional Chinese encodings such as Big5. -package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese" - -// decode is the decoding table from Big5 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-big5.txt -var decode = [...]uint32{ - 942: 0x000043F0, - 943: 0x00004C32, - 944: 0x00004603, - 945: 0x000045A6, - 946: 0x00004578, - 947: 0x00027267, - 948: 0x00004D77, - 949: 0x000045B3, - 950: 0x00027CB1, - 951: 0x00004CE2, - 952: 0x00027CC5, - 953: 0x00003B95, - 954: 0x00004736, - 955: 0x00004744, - 956: 0x00004C47, - 957: 0x00004C40, - 958: 0x000242BF, - 959: 0x00023617, - 960: 0x00027352, - 961: 0x00026E8B, - 962: 0x000270D2, - 963: 0x00004C57, - 964: 0x0002A351, - 965: 0x0000474F, - 966: 0x000045DA, - 967: 0x00004C85, - 968: 0x00027C6C, - 969: 0x00004D07, - 970: 0x00004AA4, - 971: 0x000046A1, - 972: 0x00026B23, - 973: 0x00007225, - 974: 0x00025A54, - 975: 0x00021A63, - 976: 0x00023E06, - 977: 0x00023F61, - 978: 0x0000664D, - 979: 0x000056FB, - 981: 0x00007D95, - 982: 0x0000591D, - 983: 0x00028BB9, - 984: 0x00003DF4, - 985: 0x00009734, - 986: 0x00027BEF, - 987: 0x00005BDB, - 988: 0x00021D5E, - 989: 0x00005AA4, - 990: 0x00003625, - 991: 0x00029EB0, - 992: 0x00005AD1, - 993: 0x00005BB7, - 994: 0x00005CFC, - 995: 0x0000676E, - 996: 0x00008593, - 997: 0x00029945, - 998: 0x00007461, - 999: 0x0000749D, - 1000: 0x00003875, - 1001: 0x00021D53, - 1002: 0x0002369E, - 1003: 0x00026021, - 1004: 0x00003EEC, - 1005: 0x000258DE, - 1006: 0x00003AF5, - 1007: 0x00007AFC, - 1008: 0x00009F97, - 1009: 0x00024161, - 1010: 0x0002890D, - 1011: 0x000231EA, - 1012: 0x00020A8A, - 1013: 0x0002325E, - 1014: 0x0000430A, - 1015: 0x00008484, - 1016: 0x00009F96, - 1017: 0x0000942F, - 1018: 0x00004930, - 1019: 0x00008613, - 1020: 0x00005896, - 1021: 0x0000974A, - 1022: 0x00009218, - 1023: 0x000079D0, - 1024: 0x00007A32, - 1025: 0x00006660, - 1026: 0x00006A29, - 1027: 0x0000889D, - 1028: 0x0000744C, - 1029: 0x00007BC5, - 1030: 0x00006782, - 1031: 0x00007A2C, - 1032: 0x0000524F, - 1033: 0x00009046, - 1034: 0x000034E6, - 1035: 0x000073C4, - 1036: 0x00025DB9, - 1037: 0x000074C6, - 1038: 0x00009FC7, - 1039: 0x000057B3, - 1040: 0x0000492F, - 1041: 0x0000544C, - 1042: 0x00004131, - 1043: 0x0002368E, - 1044: 0x00005818, - 1045: 0x00007A72, - 1046: 0x00027B65, - 1047: 0x00008B8F, - 1048: 0x000046AE, - 1049: 0x00026E88, - 1050: 0x00004181, - 1051: 0x00025D99, - 1052: 0x00007BAE, - 1053: 0x000224BC, - 1054: 0x00009FC8, - 1055: 0x000224C1, - 1056: 0x000224C9, - 1057: 0x000224CC, - 1058: 0x00009FC9, - 1059: 0x00008504, - 1060: 0x000235BB, - 1061: 0x000040B4, - 1062: 0x00009FCA, - 1063: 0x000044E1, - 1064: 0x0002ADFF, - 1065: 0x000062C1, - 1066: 0x0000706E, - 1067: 0x00009FCB, - 1099: 0x000031C0, - 1100: 0x000031C1, - 1101: 0x000031C2, - 1102: 0x000031C3, - 1103: 0x000031C4, - 1104: 0x0002010C, - 1105: 0x000031C5, - 1106: 0x000200D1, - 1107: 0x000200CD, - 1108: 0x000031C6, - 1109: 0x000031C7, - 1110: 0x000200CB, - 1111: 0x00021FE8, - 1112: 0x000031C8, - 1113: 0x000200CA, - 1114: 0x000031C9, - 1115: 0x000031CA, - 1116: 0x000031CB, - 1117: 0x000031CC, - 1118: 0x0002010E, - 1119: 0x000031CD, - 1120: 0x000031CE, - 1121: 0x00000100, - 1122: 0x000000C1, - 1123: 0x000001CD, - 1124: 0x000000C0, - 1125: 0x00000112, - 1126: 0x000000C9, - 1127: 0x0000011A, - 1128: 0x000000C8, - 1129: 0x0000014C, - 1130: 0x000000D3, - 1131: 0x000001D1, - 1132: 0x000000D2, - 1134: 0x00001EBE, - 1136: 0x00001EC0, - 1137: 0x000000CA, - 1138: 0x00000101, - 1139: 0x000000E1, - 1140: 0x000001CE, - 1141: 0x000000E0, - 1142: 0x00000251, - 1143: 0x00000113, - 1144: 0x000000E9, - 1145: 0x0000011B, - 1146: 0x000000E8, - 1147: 0x0000012B, - 1148: 0x000000ED, - 1149: 0x000001D0, - 1150: 0x000000EC, - 1151: 0x0000014D, - 1152: 0x000000F3, - 1153: 0x000001D2, - 1154: 0x000000F2, - 1155: 0x0000016B, - 1156: 0x000000FA, - 1157: 0x000001D4, - 1158: 0x000000F9, - 1159: 0x000001D6, - 1160: 0x000001D8, - 1161: 0x000001DA, - 1162: 0x000001DC, - 1163: 0x000000FC, - 1165: 0x00001EBF, - 1167: 0x00001EC1, - 1168: 0x000000EA, - 1169: 0x00000261, - 1170: 0x000023DA, - 1171: 0x000023DB, - 1256: 0x0002A3A9, - 1257: 0x00021145, - 1259: 0x0000650A, - 1262: 0x00004E3D, - 1263: 0x00006EDD, - 1264: 0x00009D4E, - 1265: 0x000091DF, - 1268: 0x00027735, - 1269: 0x00006491, - 1270: 0x00004F1A, - 1271: 0x00004F28, - 1272: 0x00004FA8, - 1273: 0x00005156, - 1274: 0x00005174, - 1275: 0x0000519C, - 1276: 0x000051E4, - 1277: 0x000052A1, - 1278: 0x000052A8, - 1279: 0x0000533B, - 1280: 0x0000534E, - 1281: 0x000053D1, - 1282: 0x000053D8, - 1283: 0x000056E2, - 1284: 0x000058F0, - 1285: 0x00005904, - 1286: 0x00005907, - 1287: 0x00005932, - 1288: 0x00005934, - 1289: 0x00005B66, - 1290: 0x00005B9E, - 1291: 0x00005B9F, - 1292: 0x00005C9A, - 1293: 0x00005E86, - 1294: 0x0000603B, - 1295: 0x00006589, - 1296: 0x000067FE, - 1297: 0x00006804, - 1298: 0x00006865, - 1299: 0x00006D4E, - 1300: 0x000070BC, - 1301: 0x00007535, - 1302: 0x00007EA4, - 1303: 0x00007EAC, - 1304: 0x00007EBA, - 1305: 0x00007EC7, - 1306: 0x00007ECF, - 1307: 0x00007EDF, - 1308: 0x00007F06, - 1309: 0x00007F37, - 1310: 0x0000827A, - 1311: 0x000082CF, - 1312: 0x0000836F, - 1313: 0x000089C6, - 1314: 0x00008BBE, - 1315: 0x00008BE2, - 1316: 0x00008F66, - 1317: 0x00008F67, - 1318: 0x00008F6E, - 1319: 0x00007411, - 1320: 0x00007CFC, - 1321: 0x00007DCD, - 1322: 0x00006946, - 1323: 0x00007AC9, - 1324: 0x00005227, - 1329: 0x0000918C, - 1330: 0x000078B8, - 1331: 0x0000915E, - 1332: 0x000080BC, - 1334: 0x00008D0B, - 1335: 0x000080F6, - 1336: 0x000209E7, - 1339: 0x0000809F, - 1340: 0x00009EC7, - 1341: 0x00004CCD, - 1342: 0x00009DC9, - 1343: 0x00009E0C, - 1344: 0x00004C3E, - 1345: 0x00029DF6, - 1346: 0x0002700E, - 1347: 0x00009E0A, - 1348: 0x0002A133, - 1349: 0x000035C1, - 1351: 0x00006E9A, - 1352: 0x0000823E, - 1353: 0x00007519, - 1355: 0x00004911, - 1356: 0x00009A6C, - 1357: 0x00009A8F, - 1358: 0x00009F99, - 1359: 0x00007987, - 1360: 0x0002846C, - 1361: 0x00021DCA, - 1362: 0x000205D0, - 1363: 0x00022AE6, - 1364: 0x00004E24, - 1365: 0x00004E81, - 1366: 0x00004E80, - 1367: 0x00004E87, - 1368: 0x00004EBF, - 1369: 0x00004EEB, - 1370: 0x00004F37, - 1371: 0x0000344C, - 1372: 0x00004FBD, - 1373: 0x00003E48, - 1374: 0x00005003, - 1375: 0x00005088, - 1376: 0x0000347D, - 1377: 0x00003493, - 1378: 0x000034A5, - 1379: 0x00005186, - 1380: 0x00005905, - 1381: 0x000051DB, - 1382: 0x000051FC, - 1383: 0x00005205, - 1384: 0x00004E89, - 1385: 0x00005279, - 1386: 0x00005290, - 1387: 0x00005327, - 1388: 0x000035C7, - 1389: 0x000053A9, - 1390: 0x00003551, - 1391: 0x000053B0, - 1392: 0x00003553, - 1393: 0x000053C2, - 1394: 0x00005423, - 1395: 0x0000356D, - 1396: 0x00003572, - 1397: 0x00003681, - 1398: 0x00005493, - 1399: 0x000054A3, - 1400: 0x000054B4, - 1401: 0x000054B9, - 1402: 0x000054D0, - 1403: 0x000054EF, - 1404: 0x00005518, - 1405: 0x00005523, - 1406: 0x00005528, - 1407: 0x00003598, - 1408: 0x0000553F, - 1409: 0x000035A5, - 1410: 0x000035BF, - 1411: 0x000055D7, - 1412: 0x000035C5, - 1413: 0x00027D84, - 1414: 0x00005525, - 1416: 0x00020C42, - 1417: 0x00020D15, - 1418: 0x0002512B, - 1419: 0x00005590, - 1420: 0x00022CC6, - 1421: 0x000039EC, - 1422: 0x00020341, - 1423: 0x00008E46, - 1424: 0x00024DB8, - 1425: 0x000294E5, - 1426: 0x00004053, - 1427: 0x000280BE, - 1428: 0x0000777A, - 1429: 0x00022C38, - 1430: 0x00003A34, - 1431: 0x000047D5, - 1432: 0x0002815D, - 1433: 0x000269F2, - 1434: 0x00024DEA, - 1435: 0x000064DD, - 1436: 0x00020D7C, - 1437: 0x00020FB4, - 1438: 0x00020CD5, - 1439: 0x000210F4, - 1440: 0x0000648D, - 1441: 0x00008E7E, - 1442: 0x00020E96, - 1443: 0x00020C0B, - 1444: 0x00020F64, - 1445: 0x00022CA9, - 1446: 0x00028256, - 1447: 0x000244D3, - 1449: 0x00020D46, - 1450: 0x00029A4D, - 1451: 0x000280E9, - 1452: 0x000047F4, - 1453: 0x00024EA7, - 1454: 0x00022CC2, - 1455: 0x00009AB2, - 1456: 0x00003A67, - 1457: 0x000295F4, - 1458: 0x00003FED, - 1459: 0x00003506, - 1460: 0x000252C7, - 1461: 0x000297D4, - 1462: 0x000278C8, - 1463: 0x00022D44, - 1464: 0x00009D6E, - 1465: 0x00009815, - 1467: 0x000043D9, - 1468: 0x000260A5, - 1469: 0x000064B4, - 1470: 0x000054E3, - 1471: 0x00022D4C, - 1472: 0x00022BCA, - 1473: 0x00021077, - 1474: 0x000039FB, - 1475: 0x0002106F, - 1476: 0x000266DA, - 1477: 0x00026716, - 1478: 0x000279A0, - 1479: 0x000064EA, - 1480: 0x00025052, - 1481: 0x00020C43, - 1482: 0x00008E68, - 1483: 0x000221A1, - 1484: 0x00028B4C, - 1485: 0x00020731, - 1487: 0x0000480B, - 1488: 0x000201A9, - 1489: 0x00003FFA, - 1490: 0x00005873, - 1491: 0x00022D8D, - 1493: 0x000245C8, - 1494: 0x000204FC, - 1495: 0x00026097, - 1496: 0x00020F4C, - 1497: 0x00020D96, - 1498: 0x00005579, - 1499: 0x000040BB, - 1500: 0x000043BA, - 1502: 0x00004AB4, - 1503: 0x00022A66, - 1504: 0x0002109D, - 1505: 0x000081AA, - 1506: 0x000098F5, - 1507: 0x00020D9C, - 1508: 0x00006379, - 1509: 0x000039FE, - 1510: 0x00022775, - 1511: 0x00008DC0, - 1512: 0x000056A1, - 1513: 0x0000647C, - 1514: 0x00003E43, - 1516: 0x0002A601, - 1517: 0x00020E09, - 1518: 0x00022ACF, - 1519: 0x00022CC9, - 1521: 0x000210C8, - 1522: 0x000239C2, - 1523: 0x00003992, - 1524: 0x00003A06, - 1525: 0x0002829B, - 1526: 0x00003578, - 1527: 0x00025E49, - 1528: 0x000220C7, - 1529: 0x00005652, - 1530: 0x00020F31, - 1531: 0x00022CB2, - 1532: 0x00029720, - 1533: 0x000034BC, - 1534: 0x00006C3D, - 1535: 0x00024E3B, - 1538: 0x00027574, - 1539: 0x00022E8B, - 1540: 0x00022208, - 1541: 0x0002A65B, - 1542: 0x00028CCD, - 1543: 0x00020E7A, - 1544: 0x00020C34, - 1545: 0x0002681C, - 1546: 0x00007F93, - 1547: 0x000210CF, - 1548: 0x00022803, - 1549: 0x00022939, - 1550: 0x000035FB, - 1551: 0x000251E3, - 1552: 0x00020E8C, - 1553: 0x00020F8D, - 1554: 0x00020EAA, - 1555: 0x00003F93, - 1556: 0x00020F30, - 1557: 0x00020D47, - 1558: 0x0002114F, - 1559: 0x00020E4C, - 1561: 0x00020EAB, - 1562: 0x00020BA9, - 1563: 0x00020D48, - 1564: 0x000210C0, - 1565: 0x0002113D, - 1566: 0x00003FF9, - 1567: 0x00022696, - 1568: 0x00006432, - 1569: 0x00020FAD, - 1570: 0x000233F4, - 1571: 0x00027639, - 1572: 0x00022BCE, - 1573: 0x00020D7E, - 1574: 0x00020D7F, - 1575: 0x00022C51, - 1576: 0x00022C55, - 1577: 0x00003A18, - 1578: 0x00020E98, - 1579: 0x000210C7, - 1580: 0x00020F2E, - 1581: 0x0002A632, - 1582: 0x00026B50, - 1583: 0x00028CD2, - 1584: 0x00028D99, - 1585: 0x00028CCA, - 1586: 0x000095AA, - 1587: 0x000054CC, - 1588: 0x000082C4, - 1589: 0x000055B9, - 1591: 0x00029EC3, - 1592: 0x00009C26, - 1593: 0x00009AB6, - 1594: 0x0002775E, - 1595: 0x00022DEE, - 1596: 0x00007140, - 1597: 0x0000816D, - 1598: 0x000080EC, - 1599: 0x00005C1C, - 1600: 0x00026572, - 1601: 0x00008134, - 1602: 0x00003797, - 1603: 0x0000535F, - 1604: 0x000280BD, - 1605: 0x000091B6, - 1606: 0x00020EFA, - 1607: 0x00020E0F, - 1608: 0x00020E77, - 1609: 0x00020EFB, - 1610: 0x000035DD, - 1611: 0x00024DEB, - 1612: 0x00003609, - 1613: 0x00020CD6, - 1614: 0x000056AF, - 1615: 0x000227B5, - 1616: 0x000210C9, - 1617: 0x00020E10, - 1618: 0x00020E78, - 1619: 0x00021078, - 1620: 0x00021148, - 1621: 0x00028207, - 1622: 0x00021455, - 1623: 0x00020E79, - 1624: 0x00024E50, - 1625: 0x00022DA4, - 1626: 0x00005A54, - 1627: 0x0002101D, - 1628: 0x0002101E, - 1629: 0x000210F5, - 1630: 0x000210F6, - 1631: 0x0000579C, - 1632: 0x00020E11, - 1633: 0x00027694, - 1634: 0x000282CD, - 1635: 0x00020FB5, - 1636: 0x00020E7B, - 1637: 0x0002517E, - 1638: 0x00003703, - 1639: 0x00020FB6, - 1640: 0x00021180, - 1641: 0x000252D8, - 1642: 0x0002A2BD, - 1643: 0x000249DA, - 1644: 0x0002183A, - 1645: 0x00024177, - 1646: 0x0002827C, - 1647: 0x00005899, - 1648: 0x00005268, - 1649: 0x0000361A, - 1650: 0x0002573D, - 1651: 0x00007BB2, - 1652: 0x00005B68, - 1653: 0x00004800, - 1654: 0x00004B2C, - 1655: 0x00009F27, - 1656: 0x000049E7, - 1657: 0x00009C1F, - 1658: 0x00009B8D, - 1659: 0x00025B74, - 1660: 0x0002313D, - 1661: 0x000055FB, - 1662: 0x000035F2, - 1663: 0x00005689, - 1664: 0x00004E28, - 1665: 0x00005902, - 1666: 0x00021BC1, - 1667: 0x0002F878, - 1668: 0x00009751, - 1669: 0x00020086, - 1670: 0x00004E5B, - 1671: 0x00004EBB, - 1672: 0x0000353E, - 1673: 0x00005C23, - 1674: 0x00005F51, - 1675: 0x00005FC4, - 1676: 0x000038FA, - 1677: 0x0000624C, - 1678: 0x00006535, - 1679: 0x00006B7A, - 1680: 0x00006C35, - 1681: 0x00006C3A, - 1682: 0x0000706C, - 1683: 0x0000722B, - 1684: 0x00004E2C, - 1685: 0x000072AD, - 1686: 0x000248E9, - 1687: 0x00007F52, - 1688: 0x0000793B, - 1689: 0x00007CF9, - 1690: 0x00007F53, - 1691: 0x0002626A, - 1692: 0x000034C1, - 1694: 0x0002634B, - 1695: 0x00008002, - 1696: 0x00008080, - 1697: 0x00026612, - 1698: 0x00026951, - 1699: 0x0000535D, - 1700: 0x00008864, - 1701: 0x000089C1, - 1702: 0x000278B2, - 1703: 0x00008BA0, - 1704: 0x00008D1D, - 1705: 0x00009485, - 1706: 0x00009578, - 1707: 0x0000957F, - 1708: 0x000095E8, - 1709: 0x00028E0F, - 1710: 0x000097E6, - 1711: 0x00009875, - 1712: 0x000098CE, - 1713: 0x000098DE, - 1714: 0x00009963, - 1715: 0x00029810, - 1716: 0x00009C7C, - 1717: 0x00009E1F, - 1718: 0x00009EC4, - 1719: 0x00006B6F, - 1720: 0x0000F907, - 1721: 0x00004E37, - 1722: 0x00020087, - 1723: 0x0000961D, - 1724: 0x00006237, - 1725: 0x000094A2, - 1727: 0x0000503B, - 1728: 0x00006DFE, - 1729: 0x00029C73, - 1730: 0x00009FA6, - 1731: 0x00003DC9, - 1732: 0x0000888F, - 1733: 0x0002414E, - 1734: 0x00007077, - 1735: 0x00005CF5, - 1736: 0x00004B20, - 1737: 0x000251CD, - 1738: 0x00003559, - 1739: 0x00025D30, - 1740: 0x00006122, - 1741: 0x00028A32, - 1742: 0x00008FA7, - 1743: 0x000091F6, - 1744: 0x00007191, - 1745: 0x00006719, - 1746: 0x000073BA, - 1747: 0x00023281, - 1748: 0x0002A107, - 1749: 0x00003C8B, - 1750: 0x00021980, - 1751: 0x00004B10, - 1752: 0x000078E4, - 1753: 0x00007402, - 1754: 0x000051AE, - 1755: 0x0002870F, - 1756: 0x00004009, - 1757: 0x00006A63, - 1758: 0x0002A2BA, - 1759: 0x00004223, - 1760: 0x0000860F, - 1761: 0x00020A6F, - 1762: 0x00007A2A, - 1763: 0x00029947, - 1764: 0x00028AEA, - 1765: 0x00009755, - 1766: 0x0000704D, - 1767: 0x00005324, - 1768: 0x0002207E, - 1769: 0x000093F4, - 1770: 0x000076D9, - 1771: 0x000289E3, - 1772: 0x00009FA7, - 1773: 0x000077DD, - 1774: 0x00004EA3, - 1775: 0x00004FF0, - 1776: 0x000050BC, - 1777: 0x00004E2F, - 1778: 0x00004F17, - 1779: 0x00009FA8, - 1780: 0x00005434, - 1781: 0x00007D8B, - 1782: 0x00005892, - 1783: 0x000058D0, - 1784: 0x00021DB6, - 1785: 0x00005E92, - 1786: 0x00005E99, - 1787: 0x00005FC2, - 1788: 0x00022712, - 1789: 0x0000658B, - 1790: 0x000233F9, - 1791: 0x00006919, - 1792: 0x00006A43, - 1793: 0x00023C63, - 1794: 0x00006CFF, - 1796: 0x00007200, - 1797: 0x00024505, - 1798: 0x0000738C, - 1799: 0x00003EDB, - 1800: 0x00024A13, - 1801: 0x00005B15, - 1802: 0x000074B9, - 1803: 0x00008B83, - 1804: 0x00025CA4, - 1805: 0x00025695, - 1806: 0x00007A93, - 1807: 0x00007BEC, - 1808: 0x00007CC3, - 1809: 0x00007E6C, - 1810: 0x000082F8, - 1811: 0x00008597, - 1812: 0x00009FA9, - 1813: 0x00008890, - 1814: 0x00009FAA, - 1815: 0x00008EB9, - 1816: 0x00009FAB, - 1817: 0x00008FCF, - 1818: 0x0000855F, - 1819: 0x000099E0, - 1820: 0x00009221, - 1821: 0x00009FAC, - 1822: 0x00028DB9, - 1823: 0x0002143F, - 1824: 0x00004071, - 1825: 0x000042A2, - 1826: 0x00005A1A, - 1830: 0x00009868, - 1831: 0x0000676B, - 1832: 0x00004276, - 1833: 0x0000573D, - 1835: 0x000085D6, - 1836: 0x0002497B, - 1837: 0x000082BF, - 1838: 0x0002710D, - 1839: 0x00004C81, - 1840: 0x00026D74, - 1841: 0x00005D7B, - 1842: 0x00026B15, - 1843: 0x00026FBE, - 1844: 0x00009FAD, - 1845: 0x00009FAE, - 1846: 0x00005B96, - 1847: 0x00009FAF, - 1848: 0x000066E7, - 1849: 0x00007E5B, - 1850: 0x00006E57, - 1851: 0x000079CA, - 1852: 0x00003D88, - 1853: 0x000044C3, - 1854: 0x00023256, - 1855: 0x00022796, - 1856: 0x0000439A, - 1857: 0x00004536, - 1859: 0x00005CD5, - 1860: 0x00023B1A, - 1861: 0x00008AF9, - 1862: 0x00005C78, - 1863: 0x00003D12, - 1864: 0x00023551, - 1865: 0x00005D78, - 1866: 0x00009FB2, - 1867: 0x00007157, - 1868: 0x00004558, - 1869: 0x000240EC, - 1870: 0x00021E23, - 1871: 0x00004C77, - 1872: 0x00003978, - 1873: 0x0000344A, - 1874: 0x000201A4, - 1875: 0x00026C41, - 1876: 0x00008ACC, - 1877: 0x00004FB4, - 1878: 0x00020239, - 1879: 0x000059BF, - 1880: 0x0000816C, - 1881: 0x00009856, - 1882: 0x000298FA, - 1883: 0x00005F3B, - 1884: 0x00020B9F, - 1886: 0x000221C1, - 1887: 0x0002896D, - 1888: 0x00004102, - 1889: 0x000046BB, - 1890: 0x00029079, - 1891: 0x00003F07, - 1892: 0x00009FB3, - 1893: 0x0002A1B5, - 1894: 0x000040F8, - 1895: 0x000037D6, - 1896: 0x000046F7, - 1897: 0x00026C46, - 1898: 0x0000417C, - 1899: 0x000286B2, - 1900: 0x000273FF, - 1901: 0x0000456D, - 1902: 0x000038D4, - 1903: 0x0002549A, - 1904: 0x00004561, - 1905: 0x0000451B, - 1906: 0x00004D89, - 1907: 0x00004C7B, - 1908: 0x00004D76, - 1909: 0x000045EA, - 1910: 0x00003FC8, - 1911: 0x00024B0F, - 1912: 0x00003661, - 1913: 0x000044DE, - 1914: 0x000044BD, - 1915: 0x000041ED, - 1916: 0x00005D3E, - 1917: 0x00005D48, - 1918: 0x00005D56, - 1919: 0x00003DFC, - 1920: 0x0000380F, - 1921: 0x00005DA4, - 1922: 0x00005DB9, - 1923: 0x00003820, - 1924: 0x00003838, - 1925: 0x00005E42, - 1926: 0x00005EBD, - 1927: 0x00005F25, - 1928: 0x00005F83, - 1929: 0x00003908, - 1930: 0x00003914, - 1931: 0x0000393F, - 1932: 0x0000394D, - 1933: 0x000060D7, - 1934: 0x0000613D, - 1935: 0x00005CE5, - 1936: 0x00003989, - 1937: 0x000061B7, - 1938: 0x000061B9, - 1939: 0x000061CF, - 1940: 0x000039B8, - 1941: 0x0000622C, - 1942: 0x00006290, - 1943: 0x000062E5, - 1944: 0x00006318, - 1945: 0x000039F8, - 1946: 0x000056B1, - 1947: 0x00003A03, - 1948: 0x000063E2, - 1949: 0x000063FB, - 1950: 0x00006407, - 1951: 0x0000645A, - 1952: 0x00003A4B, - 1953: 0x000064C0, - 1954: 0x00005D15, - 1955: 0x00005621, - 1956: 0x00009F9F, - 1957: 0x00003A97, - 1958: 0x00006586, - 1959: 0x00003ABD, - 1960: 0x000065FF, - 1961: 0x00006653, - 1962: 0x00003AF2, - 1963: 0x00006692, - 1964: 0x00003B22, - 1965: 0x00006716, - 1966: 0x00003B42, - 1967: 0x000067A4, - 1968: 0x00006800, - 1969: 0x00003B58, - 1970: 0x0000684A, - 1971: 0x00006884, - 1972: 0x00003B72, - 1973: 0x00003B71, - 1974: 0x00003B7B, - 1975: 0x00006909, - 1976: 0x00006943, - 1977: 0x0000725C, - 1978: 0x00006964, - 1979: 0x0000699F, - 1980: 0x00006985, - 1981: 0x00003BBC, - 1982: 0x000069D6, - 1983: 0x00003BDD, - 1984: 0x00006A65, - 1985: 0x00006A74, - 1986: 0x00006A71, - 1987: 0x00006A82, - 1988: 0x00003BEC, - 1989: 0x00006A99, - 1990: 0x00003BF2, - 1991: 0x00006AAB, - 1992: 0x00006AB5, - 1993: 0x00006AD4, - 1994: 0x00006AF6, - 1995: 0x00006B81, - 1996: 0x00006BC1, - 1997: 0x00006BEA, - 1998: 0x00006C75, - 1999: 0x00006CAA, - 2000: 0x00003CCB, - 2001: 0x00006D02, - 2002: 0x00006D06, - 2003: 0x00006D26, - 2004: 0x00006D81, - 2005: 0x00003CEF, - 2006: 0x00006DA4, - 2007: 0x00006DB1, - 2008: 0x00006E15, - 2009: 0x00006E18, - 2010: 0x00006E29, - 2011: 0x00006E86, - 2012: 0x000289C0, - 2013: 0x00006EBB, - 2014: 0x00006EE2, - 2015: 0x00006EDA, - 2016: 0x00009F7F, - 2017: 0x00006EE8, - 2018: 0x00006EE9, - 2019: 0x00006F24, - 2020: 0x00006F34, - 2021: 0x00003D46, - 2022: 0x00023F41, - 2023: 0x00006F81, - 2024: 0x00006FBE, - 2025: 0x00003D6A, - 2026: 0x00003D75, - 2027: 0x000071B7, - 2028: 0x00005C99, - 2029: 0x00003D8A, - 2030: 0x0000702C, - 2031: 0x00003D91, - 2032: 0x00007050, - 2033: 0x00007054, - 2034: 0x0000706F, - 2035: 0x0000707F, - 2036: 0x00007089, - 2037: 0x00020325, - 2038: 0x000043C1, - 2039: 0x000035F1, - 2040: 0x00020ED8, - 2041: 0x00023ED7, - 2042: 0x000057BE, - 2043: 0x00026ED3, - 2044: 0x0000713E, - 2045: 0x000257E0, - 2046: 0x0000364E, - 2047: 0x000069A2, - 2048: 0x00028BE9, - 2049: 0x00005B74, - 2050: 0x00007A49, - 2051: 0x000258E1, - 2052: 0x000294D9, - 2053: 0x00007A65, - 2054: 0x00007A7D, - 2055: 0x000259AC, - 2056: 0x00007ABB, - 2057: 0x00007AB0, - 2058: 0x00007AC2, - 2059: 0x00007AC3, - 2060: 0x000071D1, - 2061: 0x0002648D, - 2062: 0x000041CA, - 2063: 0x00007ADA, - 2064: 0x00007ADD, - 2065: 0x00007AEA, - 2066: 0x000041EF, - 2067: 0x000054B2, - 2068: 0x00025C01, - 2069: 0x00007B0B, - 2070: 0x00007B55, - 2071: 0x00007B29, - 2072: 0x0002530E, - 2073: 0x00025CFE, - 2074: 0x00007BA2, - 2075: 0x00007B6F, - 2076: 0x0000839C, - 2077: 0x00025BB4, - 2078: 0x00026C7F, - 2079: 0x00007BD0, - 2080: 0x00008421, - 2081: 0x00007B92, - 2082: 0x00007BB8, - 2083: 0x00025D20, - 2084: 0x00003DAD, - 2085: 0x00025C65, - 2086: 0x00008492, - 2087: 0x00007BFA, - 2088: 0x00007C06, - 2089: 0x00007C35, - 2090: 0x00025CC1, - 2091: 0x00007C44, - 2092: 0x00007C83, - 2093: 0x00024882, - 2094: 0x00007CA6, - 2095: 0x0000667D, - 2096: 0x00024578, - 2097: 0x00007CC9, - 2098: 0x00007CC7, - 2099: 0x00007CE6, - 2100: 0x00007C74, - 2101: 0x00007CF3, - 2102: 0x00007CF5, - 2103: 0x00007CCE, - 2104: 0x00007E67, - 2105: 0x0000451D, - 2106: 0x00026E44, - 2107: 0x00007D5D, - 2108: 0x00026ED6, - 2109: 0x0000748D, - 2110: 0x00007D89, - 2111: 0x00007DAB, - 2112: 0x00007135, - 2113: 0x00007DB3, - 2114: 0x00007DD2, - 2115: 0x00024057, - 2116: 0x00026029, - 2117: 0x00007DE4, - 2118: 0x00003D13, - 2119: 0x00007DF5, - 2120: 0x000217F9, - 2121: 0x00007DE5, - 2122: 0x0002836D, - 2123: 0x00007E1D, - 2124: 0x00026121, - 2125: 0x0002615A, - 2126: 0x00007E6E, - 2127: 0x00007E92, - 2128: 0x0000432B, - 2129: 0x0000946C, - 2130: 0x00007E27, - 2131: 0x00007F40, - 2132: 0x00007F41, - 2133: 0x00007F47, - 2134: 0x00007936, - 2135: 0x000262D0, - 2136: 0x000099E1, - 2137: 0x00007F97, - 2138: 0x00026351, - 2139: 0x00007FA3, - 2140: 0x00021661, - 2141: 0x00020068, - 2142: 0x0000455C, - 2143: 0x00023766, - 2144: 0x00004503, - 2145: 0x0002833A, - 2146: 0x00007FFA, - 2147: 0x00026489, - 2148: 0x00008005, - 2149: 0x00008008, - 2150: 0x0000801D, - 2151: 0x00008028, - 2152: 0x0000802F, - 2153: 0x0002A087, - 2154: 0x00026CC3, - 2155: 0x0000803B, - 2156: 0x0000803C, - 2157: 0x00008061, - 2158: 0x00022714, - 2159: 0x00004989, - 2160: 0x00026626, - 2161: 0x00023DE3, - 2162: 0x000266E8, - 2163: 0x00006725, - 2164: 0x000080A7, - 2165: 0x00028A48, - 2166: 0x00008107, - 2167: 0x0000811A, - 2168: 0x000058B0, - 2169: 0x000226F6, - 2170: 0x00006C7F, - 2171: 0x00026498, - 2172: 0x00024FB8, - 2173: 0x000064E7, - 2174: 0x0002148A, - 2175: 0x00008218, - 2176: 0x0002185E, - 2177: 0x00006A53, - 2178: 0x00024A65, - 2179: 0x00024A95, - 2180: 0x0000447A, - 2181: 0x00008229, - 2182: 0x00020B0D, - 2183: 0x00026A52, - 2184: 0x00023D7E, - 2185: 0x00004FF9, - 2186: 0x000214FD, - 2187: 0x000084E2, - 2188: 0x00008362, - 2189: 0x00026B0A, - 2190: 0x000249A7, - 2191: 0x00023530, - 2192: 0x00021773, - 2193: 0x00023DF8, - 2194: 0x000082AA, - 2195: 0x0000691B, - 2196: 0x0002F994, - 2197: 0x000041DB, - 2198: 0x0000854B, - 2199: 0x000082D0, - 2200: 0x0000831A, - 2201: 0x00020E16, - 2202: 0x000217B4, - 2203: 0x000036C1, - 2204: 0x0002317D, - 2205: 0x0002355A, - 2206: 0x0000827B, - 2207: 0x000082E2, - 2208: 0x00008318, - 2209: 0x00023E8B, - 2210: 0x00026DA3, - 2211: 0x00026B05, - 2212: 0x00026B97, - 2213: 0x000235CE, - 2214: 0x00003DBF, - 2215: 0x0000831D, - 2216: 0x000055EC, - 2217: 0x00008385, - 2218: 0x0000450B, - 2219: 0x00026DA5, - 2220: 0x000083AC, - 2221: 0x000083C1, - 2222: 0x000083D3, - 2223: 0x0000347E, - 2224: 0x00026ED4, - 2225: 0x00006A57, - 2226: 0x0000855A, - 2227: 0x00003496, - 2228: 0x00026E42, - 2229: 0x00022EEF, - 2230: 0x00008458, - 2231: 0x00025BE4, - 2232: 0x00008471, - 2233: 0x00003DD3, - 2234: 0x000044E4, - 2235: 0x00006AA7, - 2236: 0x0000844A, - 2237: 0x00023CB5, - 2238: 0x00007958, - 2239: 0x000084A8, - 2240: 0x00026B96, - 2241: 0x00026E77, - 2242: 0x00026E43, - 2243: 0x000084DE, - 2244: 0x0000840F, - 2245: 0x00008391, - 2246: 0x000044A0, - 2247: 0x00008493, - 2248: 0x000084E4, - 2249: 0x00025C91, - 2250: 0x00004240, - 2251: 0x00025CC0, - 2252: 0x00004543, - 2253: 0x00008534, - 2254: 0x00005AF2, - 2255: 0x00026E99, - 2256: 0x00004527, - 2257: 0x00008573, - 2258: 0x00004516, - 2259: 0x000067BF, - 2260: 0x00008616, - 2261: 0x00028625, - 2262: 0x0002863B, - 2263: 0x000085C1, - 2264: 0x00027088, - 2265: 0x00008602, - 2266: 0x00021582, - 2267: 0x000270CD, - 2268: 0x0002F9B2, - 2269: 0x0000456A, - 2270: 0x00008628, - 2271: 0x00003648, - 2272: 0x000218A2, - 2273: 0x000053F7, - 2274: 0x0002739A, - 2275: 0x0000867E, - 2276: 0x00008771, - 2277: 0x0002A0F8, - 2278: 0x000087EE, - 2279: 0x00022C27, - 2280: 0x000087B1, - 2281: 0x000087DA, - 2282: 0x0000880F, - 2283: 0x00005661, - 2284: 0x0000866C, - 2285: 0x00006856, - 2286: 0x0000460F, - 2287: 0x00008845, - 2288: 0x00008846, - 2289: 0x000275E0, - 2290: 0x00023DB9, - 2291: 0x000275E4, - 2292: 0x0000885E, - 2293: 0x0000889C, - 2294: 0x0000465B, - 2295: 0x000088B4, - 2296: 0x000088B5, - 2297: 0x000063C1, - 2298: 0x000088C5, - 2299: 0x00007777, - 2300: 0x0002770F, - 2301: 0x00008987, - 2302: 0x0000898A, - 2303: 0x000089A6, - 2304: 0x000089A9, - 2305: 0x000089A7, - 2306: 0x000089BC, - 2307: 0x00028A25, - 2308: 0x000089E7, - 2309: 0x00027924, - 2310: 0x00027ABD, - 2311: 0x00008A9C, - 2312: 0x00007793, - 2313: 0x000091FE, - 2314: 0x00008A90, - 2315: 0x00027A59, - 2316: 0x00007AE9, - 2317: 0x00027B3A, - 2318: 0x00023F8F, - 2319: 0x00004713, - 2320: 0x00027B38, - 2321: 0x0000717C, - 2322: 0x00008B0C, - 2323: 0x00008B1F, - 2324: 0x00025430, - 2325: 0x00025565, - 2326: 0x00008B3F, - 2327: 0x00008B4C, - 2328: 0x00008B4D, - 2329: 0x00008AA9, - 2330: 0x00024A7A, - 2331: 0x00008B90, - 2332: 0x00008B9B, - 2333: 0x00008AAF, - 2334: 0x000216DF, - 2335: 0x00004615, - 2336: 0x0000884F, - 2337: 0x00008C9B, - 2338: 0x00027D54, - 2339: 0x00027D8F, - 2340: 0x0002F9D4, - 2341: 0x00003725, - 2342: 0x00027D53, - 2343: 0x00008CD6, - 2344: 0x00027D98, - 2345: 0x00027DBD, - 2346: 0x00008D12, - 2347: 0x00008D03, - 2348: 0x00021910, - 2349: 0x00008CDB, - 2350: 0x0000705C, - 2351: 0x00008D11, - 2352: 0x00024CC9, - 2353: 0x00003ED0, - 2354: 0x00008D77, - 2355: 0x00008DA9, - 2356: 0x00028002, - 2357: 0x00021014, - 2358: 0x0002498A, - 2359: 0x00003B7C, - 2360: 0x000281BC, - 2361: 0x0002710C, - 2362: 0x00007AE7, - 2363: 0x00008EAD, - 2364: 0x00008EB6, - 2365: 0x00008EC3, - 2366: 0x000092D4, - 2367: 0x00008F19, - 2368: 0x00008F2D, - 2369: 0x00028365, - 2370: 0x00028412, - 2371: 0x00008FA5, - 2372: 0x00009303, - 2373: 0x0002A29F, - 2374: 0x00020A50, - 2375: 0x00008FB3, - 2376: 0x0000492A, - 2377: 0x000289DE, - 2378: 0x0002853D, - 2379: 0x00023DBB, - 2380: 0x00005EF8, - 2381: 0x00023262, - 2382: 0x00008FF9, - 2383: 0x0002A014, - 2384: 0x000286BC, - 2385: 0x00028501, - 2386: 0x00022325, - 2387: 0x00003980, - 2388: 0x00026ED7, - 2389: 0x00009037, - 2390: 0x0002853C, - 2391: 0x00027ABE, - 2392: 0x00009061, - 2393: 0x0002856C, - 2394: 0x0002860B, - 2395: 0x000090A8, - 2396: 0x00028713, - 2397: 0x000090C4, - 2398: 0x000286E6, - 2399: 0x000090AE, - 2400: 0x000090FD, - 2401: 0x00009167, - 2402: 0x00003AF0, - 2403: 0x000091A9, - 2404: 0x000091C4, - 2405: 0x00007CAC, - 2406: 0x00028933, - 2407: 0x00021E89, - 2408: 0x0000920E, - 2409: 0x00006C9F, - 2410: 0x00009241, - 2411: 0x00009262, - 2412: 0x000255B9, - 2413: 0x000092B9, - 2414: 0x00028AC6, - 2415: 0x00023C9B, - 2416: 0x00028B0C, - 2417: 0x000255DB, - 2418: 0x00020D31, - 2419: 0x0000932C, - 2420: 0x0000936B, - 2421: 0x00028AE1, - 2422: 0x00028BEB, - 2423: 0x0000708F, - 2424: 0x00005AC3, - 2425: 0x00028AE2, - 2426: 0x00028AE5, - 2427: 0x00004965, - 2428: 0x00009244, - 2429: 0x00028BEC, - 2430: 0x00028C39, - 2431: 0x00028BFF, - 2432: 0x00009373, - 2433: 0x0000945B, - 2434: 0x00008EBC, - 2435: 0x00009585, - 2436: 0x000095A6, - 2437: 0x00009426, - 2438: 0x000095A0, - 2439: 0x00006FF6, - 2440: 0x000042B9, - 2441: 0x0002267A, - 2442: 0x000286D8, - 2443: 0x0002127C, - 2444: 0x00023E2E, - 2445: 0x000049DF, - 2446: 0x00006C1C, - 2447: 0x0000967B, - 2448: 0x00009696, - 2449: 0x0000416C, - 2450: 0x000096A3, - 2451: 0x00026ED5, - 2452: 0x000061DA, - 2453: 0x000096B6, - 2454: 0x000078F5, - 2455: 0x00028AE0, - 2456: 0x000096BD, - 2457: 0x000053CC, - 2458: 0x000049A1, - 2459: 0x00026CB8, - 2460: 0x00020274, - 2461: 0x00026410, - 2462: 0x000290AF, - 2463: 0x000290E5, - 2464: 0x00024AD1, - 2465: 0x00021915, - 2466: 0x0002330A, - 2467: 0x00009731, - 2468: 0x00008642, - 2469: 0x00009736, - 2470: 0x00004A0F, - 2471: 0x0000453D, - 2472: 0x00004585, - 2473: 0x00024AE9, - 2474: 0x00007075, - 2475: 0x00005B41, - 2476: 0x0000971B, - 2477: 0x0000975C, - 2478: 0x000291D5, - 2479: 0x00009757, - 2480: 0x00005B4A, - 2481: 0x000291EB, - 2482: 0x0000975F, - 2483: 0x00009425, - 2484: 0x000050D0, - 2485: 0x000230B7, - 2486: 0x000230BC, - 2487: 0x00009789, - 2488: 0x0000979F, - 2489: 0x000097B1, - 2490: 0x000097BE, - 2491: 0x000097C0, - 2492: 0x000097D2, - 2493: 0x000097E0, - 2494: 0x0002546C, - 2495: 0x000097EE, - 2496: 0x0000741C, - 2497: 0x00029433, - 2498: 0x000097FF, - 2499: 0x000097F5, - 2500: 0x0002941D, - 2501: 0x0002797A, - 2502: 0x00004AD1, - 2503: 0x00009834, - 2504: 0x00009833, - 2505: 0x0000984B, - 2506: 0x00009866, - 2507: 0x00003B0E, - 2508: 0x00027175, - 2509: 0x00003D51, - 2510: 0x00020630, - 2511: 0x0002415C, - 2512: 0x00025706, - 2513: 0x000098CA, - 2514: 0x000098B7, - 2515: 0x000098C8, - 2516: 0x000098C7, - 2517: 0x00004AFF, - 2518: 0x00026D27, - 2519: 0x000216D3, - 2520: 0x000055B0, - 2521: 0x000098E1, - 2522: 0x000098E6, - 2523: 0x000098EC, - 2524: 0x00009378, - 2525: 0x00009939, - 2526: 0x00024A29, - 2527: 0x00004B72, - 2528: 0x00029857, - 2529: 0x00029905, - 2530: 0x000099F5, - 2531: 0x00009A0C, - 2532: 0x00009A3B, - 2533: 0x00009A10, - 2534: 0x00009A58, - 2535: 0x00025725, - 2536: 0x000036C4, - 2537: 0x000290B1, - 2538: 0x00029BD5, - 2539: 0x00009AE0, - 2540: 0x00009AE2, - 2541: 0x00029B05, - 2542: 0x00009AF4, - 2543: 0x00004C0E, - 2544: 0x00009B14, - 2545: 0x00009B2D, - 2546: 0x00028600, - 2547: 0x00005034, - 2548: 0x00009B34, - 2549: 0x000269A8, - 2550: 0x000038C3, - 2551: 0x0002307D, - 2552: 0x00009B50, - 2553: 0x00009B40, - 2554: 0x00029D3E, - 2555: 0x00005A45, - 2556: 0x00021863, - 2557: 0x00009B8E, - 2558: 0x0002424B, - 2559: 0x00009C02, - 2560: 0x00009BFF, - 2561: 0x00009C0C, - 2562: 0x00029E68, - 2563: 0x00009DD4, - 2564: 0x00029FB7, - 2565: 0x0002A192, - 2566: 0x0002A1AB, - 2567: 0x0002A0E1, - 2568: 0x0002A123, - 2569: 0x0002A1DF, - 2570: 0x00009D7E, - 2571: 0x00009D83, - 2572: 0x0002A134, - 2573: 0x00009E0E, - 2574: 0x00006888, - 2575: 0x00009DC4, - 2576: 0x0002215B, - 2577: 0x0002A193, - 2578: 0x0002A220, - 2579: 0x0002193B, - 2580: 0x0002A233, - 2581: 0x00009D39, - 2582: 0x0002A0B9, - 2583: 0x0002A2B4, - 2584: 0x00009E90, - 2585: 0x00009E95, - 2586: 0x00009E9E, - 2587: 0x00009EA2, - 2588: 0x00004D34, - 2589: 0x00009EAA, - 2590: 0x00009EAF, - 2591: 0x00024364, - 2592: 0x00009EC1, - 2593: 0x00003B60, - 2594: 0x000039E5, - 2595: 0x00003D1D, - 2596: 0x00004F32, - 2597: 0x000037BE, - 2598: 0x00028C2B, - 2599: 0x00009F02, - 2600: 0x00009F08, - 2601: 0x00004B96, - 2602: 0x00009424, - 2603: 0x00026DA2, - 2604: 0x00009F17, - 2605: 0x00009F16, - 2606: 0x00009F39, - 2607: 0x0000569F, - 2608: 0x0000568A, - 2609: 0x00009F45, - 2610: 0x000099B8, - 2611: 0x0002908B, - 2612: 0x000097F2, - 2613: 0x0000847F, - 2614: 0x00009F62, - 2615: 0x00009F69, - 2616: 0x00007ADC, - 2617: 0x00009F8E, - 2618: 0x00007216, - 2619: 0x00004BBE, - 2620: 0x00024975, - 2621: 0x000249BB, - 2622: 0x00007177, - 2623: 0x000249F8, - 2624: 0x00024348, - 2625: 0x00024A51, - 2626: 0x0000739E, - 2627: 0x00028BDA, - 2628: 0x000218FA, - 2629: 0x0000799F, - 2630: 0x0002897E, - 2631: 0x00028E36, - 2632: 0x00009369, - 2633: 0x000093F3, - 2634: 0x00028A44, - 2635: 0x000092EC, - 2636: 0x00009381, - 2637: 0x000093CB, - 2638: 0x0002896C, - 2639: 0x000244B9, - 2640: 0x00007217, - 2641: 0x00003EEB, - 2642: 0x00007772, - 2643: 0x00007A43, - 2644: 0x000070D0, - 2645: 0x00024473, - 2646: 0x000243F8, - 2647: 0x0000717E, - 2648: 0x000217EF, - 2649: 0x000070A3, - 2650: 0x000218BE, - 2651: 0x00023599, - 2652: 0x00003EC7, - 2653: 0x00021885, - 2654: 0x0002542F, - 2655: 0x000217F8, - 2656: 0x00003722, - 2657: 0x000216FB, - 2658: 0x00021839, - 2659: 0x000036E1, - 2660: 0x00021774, - 2661: 0x000218D1, - 2662: 0x00025F4B, - 2663: 0x00003723, - 2664: 0x000216C0, - 2665: 0x0000575B, - 2666: 0x00024A25, - 2667: 0x000213FE, - 2668: 0x000212A8, - 2669: 0x000213C6, - 2670: 0x000214B6, - 2671: 0x00008503, - 2672: 0x000236A6, - 2673: 0x00008503, - 2674: 0x00008455, - 2675: 0x00024994, - 2676: 0x00027165, - 2677: 0x00023E31, - 2678: 0x0002555C, - 2679: 0x00023EFB, - 2680: 0x00027052, - 2681: 0x000044F4, - 2682: 0x000236EE, - 2683: 0x0002999D, - 2684: 0x00026F26, - 2685: 0x000067F9, - 2686: 0x00003733, - 2687: 0x00003C15, - 2688: 0x00003DE7, - 2689: 0x0000586C, - 2690: 0x00021922, - 2691: 0x00006810, - 2692: 0x00004057, - 2693: 0x0002373F, - 2694: 0x000240E1, - 2695: 0x0002408B, - 2696: 0x0002410F, - 2697: 0x00026C21, - 2698: 0x000054CB, - 2699: 0x0000569E, - 2700: 0x000266B1, - 2701: 0x00005692, - 2702: 0x00020FDF, - 2703: 0x00020BA8, - 2704: 0x00020E0D, - 2705: 0x000093C6, - 2706: 0x00028B13, - 2707: 0x0000939C, - 2708: 0x00004EF8, - 2709: 0x0000512B, - 2710: 0x00003819, - 2711: 0x00024436, - 2712: 0x00004EBC, - 2713: 0x00020465, - 2714: 0x0002037F, - 2715: 0x00004F4B, - 2716: 0x00004F8A, - 2717: 0x00025651, - 2718: 0x00005A68, - 2719: 0x000201AB, - 2720: 0x000203CB, - 2721: 0x00003999, - 2722: 0x0002030A, - 2723: 0x00020414, - 2724: 0x00003435, - 2725: 0x00004F29, - 2726: 0x000202C0, - 2727: 0x00028EB3, - 2728: 0x00020275, - 2729: 0x00008ADA, - 2730: 0x0002020C, - 2731: 0x00004E98, - 2732: 0x000050CD, - 2733: 0x0000510D, - 2734: 0x00004FA2, - 2735: 0x00004F03, - 2736: 0x00024A0E, - 2737: 0x00023E8A, - 2738: 0x00004F42, - 2739: 0x0000502E, - 2740: 0x0000506C, - 2741: 0x00005081, - 2742: 0x00004FCC, - 2743: 0x00004FE5, - 2744: 0x00005058, - 2745: 0x000050FC, - 2746: 0x00005159, - 2747: 0x0000515B, - 2748: 0x0000515D, - 2749: 0x0000515E, - 2750: 0x00006E76, - 2751: 0x00023595, - 2752: 0x00023E39, - 2753: 0x00023EBF, - 2754: 0x00006D72, - 2755: 0x00021884, - 2756: 0x00023E89, - 2757: 0x000051A8, - 2758: 0x000051C3, - 2759: 0x000205E0, - 2760: 0x000044DD, - 2761: 0x000204A3, - 2762: 0x00020492, - 2763: 0x00020491, - 2764: 0x00008D7A, - 2765: 0x00028A9C, - 2766: 0x0002070E, - 2767: 0x00005259, - 2768: 0x000052A4, - 2769: 0x00020873, - 2770: 0x000052E1, - 2771: 0x0000936E, - 2772: 0x0000467A, - 2773: 0x0000718C, - 2774: 0x0002438C, - 2775: 0x00020C20, - 2776: 0x000249AC, - 2777: 0x000210E4, - 2778: 0x000069D1, - 2779: 0x00020E1D, - 2780: 0x00007479, - 2781: 0x00003EDE, - 2782: 0x00007499, - 2783: 0x00007414, - 2784: 0x00007456, - 2785: 0x00007398, - 2786: 0x00004B8E, - 2787: 0x00024ABC, - 2788: 0x0002408D, - 2789: 0x000053D0, - 2790: 0x00003584, - 2791: 0x0000720F, - 2792: 0x000240C9, - 2793: 0x000055B4, - 2794: 0x00020345, - 2795: 0x000054CD, - 2796: 0x00020BC6, - 2797: 0x0000571D, - 2798: 0x0000925D, - 2799: 0x000096F4, - 2800: 0x00009366, - 2801: 0x000057DD, - 2802: 0x0000578D, - 2803: 0x0000577F, - 2804: 0x0000363E, - 2805: 0x000058CB, - 2806: 0x00005A99, - 2807: 0x00028A46, - 2808: 0x000216FA, - 2809: 0x0002176F, - 2810: 0x00021710, - 2811: 0x00005A2C, - 2812: 0x000059B8, - 2813: 0x0000928F, - 2814: 0x00005A7E, - 2815: 0x00005ACF, - 2816: 0x00005A12, - 2817: 0x00025946, - 2818: 0x000219F3, - 2819: 0x00021861, - 2820: 0x00024295, - 2821: 0x000036F5, - 2822: 0x00006D05, - 2823: 0x00007443, - 2824: 0x00005A21, - 2825: 0x00025E83, - 2826: 0x00005A81, - 2827: 0x00028BD7, - 2828: 0x00020413, - 2829: 0x000093E0, - 2830: 0x0000748C, - 2831: 0x00021303, - 2832: 0x00007105, - 2833: 0x00004972, - 2834: 0x00009408, - 2835: 0x000289FB, - 2836: 0x000093BD, - 2837: 0x000037A0, - 2838: 0x00005C1E, - 2839: 0x00005C9E, - 2840: 0x00005E5E, - 2841: 0x00005E48, - 2842: 0x00021996, - 2843: 0x0002197C, - 2844: 0x00023AEE, - 2845: 0x00005ECD, - 2846: 0x00005B4F, - 2847: 0x00021903, - 2848: 0x00021904, - 2849: 0x00003701, - 2850: 0x000218A0, - 2851: 0x000036DD, - 2852: 0x000216FE, - 2853: 0x000036D3, - 2854: 0x0000812A, - 2855: 0x00028A47, - 2856: 0x00021DBA, - 2857: 0x00023472, - 2858: 0x000289A8, - 2859: 0x00005F0C, - 2860: 0x00005F0E, - 2861: 0x00021927, - 2862: 0x000217AB, - 2863: 0x00005A6B, - 2864: 0x0002173B, - 2865: 0x00005B44, - 2866: 0x00008614, - 2867: 0x000275FD, - 2868: 0x00008860, - 2869: 0x0000607E, - 2870: 0x00022860, - 2871: 0x0002262B, - 2872: 0x00005FDB, - 2873: 0x00003EB8, - 2874: 0x000225AF, - 2875: 0x000225BE, - 2876: 0x00029088, - 2877: 0x00026F73, - 2878: 0x000061C0, - 2879: 0x0002003E, - 2880: 0x00020046, - 2881: 0x0002261B, - 2882: 0x00006199, - 2883: 0x00006198, - 2884: 0x00006075, - 2885: 0x00022C9B, - 2886: 0x00022D07, - 2887: 0x000246D4, - 2888: 0x0002914D, - 2889: 0x00006471, - 2890: 0x00024665, - 2891: 0x00022B6A, - 2892: 0x00003A29, - 2893: 0x00022B22, - 2894: 0x00023450, - 2895: 0x000298EA, - 2896: 0x00022E78, - 2897: 0x00006337, - 2898: 0x0002A45B, - 2899: 0x000064B6, - 2900: 0x00006331, - 2901: 0x000063D1, - 2902: 0x000249E3, - 2903: 0x00022D67, - 2904: 0x000062A4, - 2905: 0x00022CA1, - 2906: 0x0000643B, - 2907: 0x0000656B, - 2908: 0x00006972, - 2909: 0x00003BF4, - 2910: 0x0002308E, - 2911: 0x000232AD, - 2912: 0x00024989, - 2913: 0x000232AB, - 2914: 0x0000550D, - 2915: 0x000232E0, - 2916: 0x000218D9, - 2917: 0x0002943F, - 2918: 0x000066CE, - 2919: 0x00023289, - 2920: 0x000231B3, - 2921: 0x00003AE0, - 2922: 0x00004190, - 2923: 0x00025584, - 2924: 0x00028B22, - 2925: 0x0002558F, - 2926: 0x000216FC, - 2927: 0x0002555B, - 2928: 0x00025425, - 2929: 0x000078EE, - 2930: 0x00023103, - 2931: 0x0002182A, - 2932: 0x00023234, - 2933: 0x00003464, - 2934: 0x0002320F, - 2935: 0x00023182, - 2936: 0x000242C9, - 2937: 0x0000668E, - 2938: 0x00026D24, - 2939: 0x0000666B, - 2940: 0x00004B93, - 2941: 0x00006630, - 2942: 0x00027870, - 2943: 0x00021DEB, - 2944: 0x00006663, - 2945: 0x000232D2, - 2946: 0x000232E1, - 2947: 0x0000661E, - 2948: 0x00025872, - 2949: 0x000038D1, - 2950: 0x0002383A, - 2951: 0x000237BC, - 2952: 0x00003B99, - 2953: 0x000237A2, - 2954: 0x000233FE, - 2955: 0x000074D0, - 2956: 0x00003B96, - 2957: 0x0000678F, - 2958: 0x0002462A, - 2959: 0x000068B6, - 2960: 0x0000681E, - 2961: 0x00003BC4, - 2962: 0x00006ABE, - 2963: 0x00003863, - 2964: 0x000237D5, - 2965: 0x00024487, - 2966: 0x00006A33, - 2967: 0x00006A52, - 2968: 0x00006AC9, - 2969: 0x00006B05, - 2970: 0x00021912, - 2971: 0x00006511, - 2972: 0x00006898, - 2973: 0x00006A4C, - 2974: 0x00003BD7, - 2975: 0x00006A7A, - 2976: 0x00006B57, - 2977: 0x00023FC0, - 2978: 0x00023C9A, - 2979: 0x000093A0, - 2980: 0x000092F2, - 2981: 0x00028BEA, - 2982: 0x00028ACB, - 2983: 0x00009289, - 2984: 0x0002801E, - 2985: 0x000289DC, - 2986: 0x00009467, - 2987: 0x00006DA5, - 2988: 0x00006F0B, - 2989: 0x000249EC, - 2990: 0x00006D67, - 2991: 0x00023F7F, - 2992: 0x00003D8F, - 2993: 0x00006E04, - 2994: 0x0002403C, - 2995: 0x00005A3D, - 2996: 0x00006E0A, - 2997: 0x00005847, - 2998: 0x00006D24, - 2999: 0x00007842, - 3000: 0x0000713B, - 3001: 0x0002431A, - 3002: 0x00024276, - 3003: 0x000070F1, - 3004: 0x00007250, - 3005: 0x00007287, - 3006: 0x00007294, - 3007: 0x0002478F, - 3008: 0x00024725, - 3009: 0x00005179, - 3010: 0x00024AA4, - 3011: 0x000205EB, - 3012: 0x0000747A, - 3013: 0x00023EF8, - 3014: 0x0002365F, - 3015: 0x00024A4A, - 3016: 0x00024917, - 3017: 0x00025FE1, - 3018: 0x00003F06, - 3019: 0x00003EB1, - 3020: 0x00024ADF, - 3021: 0x00028C23, - 3022: 0x00023F35, - 3023: 0x000060A7, - 3024: 0x00003EF3, - 3025: 0x000074CC, - 3026: 0x0000743C, - 3027: 0x00009387, - 3028: 0x00007437, - 3029: 0x0000449F, - 3030: 0x00026DEA, - 3031: 0x00004551, - 3032: 0x00007583, - 3033: 0x00003F63, - 3034: 0x00024CD9, - 3035: 0x00024D06, - 3036: 0x00003F58, - 3037: 0x00007555, - 3038: 0x00007673, - 3039: 0x0002A5C6, - 3040: 0x00003B19, - 3041: 0x00007468, - 3042: 0x00028ACC, - 3043: 0x000249AB, - 3044: 0x0002498E, - 3045: 0x00003AFB, - 3046: 0x00003DCD, - 3047: 0x00024A4E, - 3048: 0x00003EFF, - 3049: 0x000249C5, - 3050: 0x000248F3, - 3051: 0x000091FA, - 3052: 0x00005732, - 3053: 0x00009342, - 3054: 0x00028AE3, - 3055: 0x00021864, - 3056: 0x000050DF, - 3057: 0x00025221, - 3058: 0x000251E7, - 3059: 0x00007778, - 3060: 0x00023232, - 3061: 0x0000770E, - 3062: 0x0000770F, - 3063: 0x0000777B, - 3064: 0x00024697, - 3065: 0x00023781, - 3066: 0x00003A5E, - 3067: 0x000248F0, - 3068: 0x00007438, - 3069: 0x0000749B, - 3070: 0x00003EBF, - 3071: 0x00024ABA, - 3072: 0x00024AC7, - 3073: 0x000040C8, - 3074: 0x00024A96, - 3075: 0x000261AE, - 3076: 0x00009307, - 3077: 0x00025581, - 3078: 0x0000781E, - 3079: 0x0000788D, - 3080: 0x00007888, - 3081: 0x000078D2, - 3082: 0x000073D0, - 3083: 0x00007959, - 3084: 0x00027741, - 3085: 0x000256E3, - 3086: 0x0000410E, - 3087: 0x0000799B, - 3088: 0x00008496, - 3089: 0x000079A5, - 3090: 0x00006A2D, - 3091: 0x00023EFA, - 3092: 0x00007A3A, - 3093: 0x000079F4, - 3094: 0x0000416E, - 3095: 0x000216E6, - 3096: 0x00004132, - 3097: 0x00009235, - 3098: 0x000079F1, - 3099: 0x00020D4C, - 3100: 0x0002498C, - 3101: 0x00020299, - 3102: 0x00023DBA, - 3103: 0x0002176E, - 3104: 0x00003597, - 3105: 0x0000556B, - 3106: 0x00003570, - 3107: 0x000036AA, - 3108: 0x000201D4, - 3109: 0x00020C0D, - 3110: 0x00007AE2, - 3111: 0x00005A59, - 3112: 0x000226F5, - 3113: 0x00025AAF, - 3114: 0x00025A9C, - 3115: 0x00005A0D, - 3116: 0x0002025B, - 3117: 0x000078F0, - 3118: 0x00005A2A, - 3119: 0x00025BC6, - 3120: 0x00007AFE, - 3121: 0x000041F9, - 3122: 0x00007C5D, - 3123: 0x00007C6D, - 3124: 0x00004211, - 3125: 0x00025BB3, - 3126: 0x00025EBC, - 3127: 0x00025EA6, - 3128: 0x00007CCD, - 3129: 0x000249F9, - 3130: 0x000217B0, - 3131: 0x00007C8E, - 3132: 0x00007C7C, - 3133: 0x00007CAE, - 3134: 0x00006AB2, - 3135: 0x00007DDC, - 3136: 0x00007E07, - 3137: 0x00007DD3, - 3138: 0x00007F4E, - 3139: 0x00026261, - 3140: 0x0002615C, - 3141: 0x00027B48, - 3142: 0x00007D97, - 3143: 0x00025E82, - 3144: 0x0000426A, - 3145: 0x00026B75, - 3146: 0x00020916, - 3147: 0x000067D6, - 3148: 0x0002004E, - 3149: 0x000235CF, - 3150: 0x000057C4, - 3151: 0x00026412, - 3152: 0x000263F8, - 3153: 0x00024962, - 3154: 0x00007FDD, - 3155: 0x00007B27, - 3156: 0x0002082C, - 3157: 0x00025AE9, - 3158: 0x00025D43, - 3159: 0x00007B0C, - 3160: 0x00025E0E, - 3161: 0x000099E6, - 3162: 0x00008645, - 3163: 0x00009A63, - 3164: 0x00006A1C, - 3165: 0x0002343F, - 3166: 0x000039E2, - 3167: 0x000249F7, - 3168: 0x000265AD, - 3169: 0x00009A1F, - 3170: 0x000265A0, - 3171: 0x00008480, - 3172: 0x00027127, - 3173: 0x00026CD1, - 3174: 0x000044EA, - 3175: 0x00008137, - 3176: 0x00004402, - 3177: 0x000080C6, - 3178: 0x00008109, - 3179: 0x00008142, - 3180: 0x000267B4, - 3181: 0x000098C3, - 3182: 0x00026A42, - 3183: 0x00008262, - 3184: 0x00008265, - 3185: 0x00026A51, - 3186: 0x00008453, - 3187: 0x00026DA7, - 3188: 0x00008610, - 3189: 0x0002721B, - 3190: 0x00005A86, - 3191: 0x0000417F, - 3192: 0x00021840, - 3193: 0x00005B2B, - 3194: 0x000218A1, - 3195: 0x00005AE4, - 3196: 0x000218D8, - 3197: 0x000086A0, - 3198: 0x0002F9BC, - 3199: 0x00023D8F, - 3200: 0x0000882D, - 3201: 0x00027422, - 3202: 0x00005A02, - 3203: 0x0000886E, - 3204: 0x00004F45, - 3205: 0x00008887, - 3206: 0x000088BF, - 3207: 0x000088E6, - 3208: 0x00008965, - 3209: 0x0000894D, - 3210: 0x00025683, - 3211: 0x00008954, - 3212: 0x00027785, - 3213: 0x00027784, - 3214: 0x00028BF5, - 3215: 0x00028BD9, - 3216: 0x00028B9C, - 3217: 0x000289F9, - 3218: 0x00003EAD, - 3219: 0x000084A3, - 3220: 0x000046F5, - 3221: 0x000046CF, - 3222: 0x000037F2, - 3223: 0x00008A3D, - 3224: 0x00008A1C, - 3225: 0x00029448, - 3226: 0x00005F4D, - 3227: 0x0000922B, - 3228: 0x00024284, - 3229: 0x000065D4, - 3230: 0x00007129, - 3231: 0x000070C4, - 3232: 0x00021845, - 3233: 0x00009D6D, - 3234: 0x00008C9F, - 3235: 0x00008CE9, - 3236: 0x00027DDC, - 3237: 0x0000599A, - 3238: 0x000077C3, - 3239: 0x000059F0, - 3240: 0x0000436E, - 3241: 0x000036D4, - 3242: 0x00008E2A, - 3243: 0x00008EA7, - 3244: 0x00024C09, - 3245: 0x00008F30, - 3246: 0x00008F4A, - 3247: 0x000042F4, - 3248: 0x00006C58, - 3249: 0x00006FBB, - 3250: 0x00022321, - 3251: 0x0000489B, - 3252: 0x00006F79, - 3253: 0x00006E8B, - 3254: 0x000217DA, - 3255: 0x00009BE9, - 3256: 0x000036B5, - 3257: 0x0002492F, - 3258: 0x000090BB, - 3259: 0x00009097, - 3260: 0x00005571, - 3261: 0x00004906, - 3262: 0x000091BB, - 3263: 0x00009404, - 3264: 0x00028A4B, - 3265: 0x00004062, - 3266: 0x00028AFC, - 3267: 0x00009427, - 3268: 0x00028C1D, - 3269: 0x00028C3B, - 3270: 0x000084E5, - 3271: 0x00008A2B, - 3272: 0x00009599, - 3273: 0x000095A7, - 3274: 0x00009597, - 3275: 0x00009596, - 3276: 0x00028D34, - 3277: 0x00007445, - 3278: 0x00003EC2, - 3279: 0x000248FF, - 3280: 0x00024A42, - 3281: 0x000243EA, - 3282: 0x00003EE7, - 3283: 0x00023225, - 3284: 0x0000968F, - 3285: 0x00028EE7, - 3286: 0x00028E66, - 3287: 0x00028E65, - 3288: 0x00003ECC, - 3289: 0x000249ED, - 3290: 0x00024A78, - 3291: 0x00023FEE, - 3292: 0x00007412, - 3293: 0x0000746B, - 3294: 0x00003EFC, - 3295: 0x00009741, - 3296: 0x000290B0, - 3297: 0x00006847, - 3298: 0x00004A1D, - 3299: 0x00029093, - 3300: 0x000257DF, - 3301: 0x0000975D, - 3302: 0x00009368, - 3303: 0x00028989, - 3304: 0x00028C26, - 3305: 0x00028B2F, - 3306: 0x000263BE, - 3307: 0x000092BA, - 3308: 0x00005B11, - 3309: 0x00008B69, - 3310: 0x0000493C, - 3311: 0x000073F9, - 3312: 0x0002421B, - 3313: 0x0000979B, - 3314: 0x00009771, - 3315: 0x00009938, - 3316: 0x00020F26, - 3317: 0x00005DC1, - 3318: 0x00028BC5, - 3319: 0x00024AB2, - 3320: 0x0000981F, - 3321: 0x000294DA, - 3322: 0x000092F6, - 3323: 0x000295D7, - 3324: 0x000091E5, - 3325: 0x000044C0, - 3326: 0x00028B50, - 3327: 0x00024A67, - 3328: 0x00028B64, - 3329: 0x000098DC, - 3330: 0x00028A45, - 3331: 0x00003F00, - 3332: 0x0000922A, - 3333: 0x00004925, - 3334: 0x00008414, - 3335: 0x0000993B, - 3336: 0x0000994D, - 3337: 0x00027B06, - 3338: 0x00003DFD, - 3339: 0x0000999B, - 3340: 0x00004B6F, - 3341: 0x000099AA, - 3342: 0x00009A5C, - 3343: 0x00028B65, - 3344: 0x000258C8, - 3345: 0x00006A8F, - 3346: 0x00009A21, - 3347: 0x00005AFE, - 3348: 0x00009A2F, - 3349: 0x000298F1, - 3350: 0x00004B90, - 3351: 0x00029948, - 3352: 0x000099BC, - 3353: 0x00004BBD, - 3354: 0x00004B97, - 3355: 0x0000937D, - 3356: 0x00005872, - 3357: 0x00021302, - 3358: 0x00005822, - 3359: 0x000249B8, - 3360: 0x000214E8, - 3361: 0x00007844, - 3362: 0x0002271F, - 3363: 0x00023DB8, - 3364: 0x000068C5, - 3365: 0x00003D7D, - 3366: 0x00009458, - 3367: 0x00003927, - 3368: 0x00006150, - 3369: 0x00022781, - 3370: 0x0002296B, - 3371: 0x00006107, - 3372: 0x00009C4F, - 3373: 0x00009C53, - 3374: 0x00009C7B, - 3375: 0x00009C35, - 3376: 0x00009C10, - 3377: 0x00009B7F, - 3378: 0x00009BCF, - 3379: 0x00029E2D, - 3380: 0x00009B9F, - 3381: 0x0002A1F5, - 3382: 0x0002A0FE, - 3383: 0x00009D21, - 3384: 0x00004CAE, - 3385: 0x00024104, - 3386: 0x00009E18, - 3387: 0x00004CB0, - 3388: 0x00009D0C, - 3389: 0x0002A1B4, - 3390: 0x0002A0ED, - 3391: 0x0002A0F3, - 3392: 0x0002992F, - 3393: 0x00009DA5, - 3394: 0x000084BD, - 3395: 0x00026E12, - 3396: 0x00026FDF, - 3397: 0x00026B82, - 3398: 0x000085FC, - 3399: 0x00004533, - 3400: 0x00026DA4, - 3401: 0x00026E84, - 3402: 0x00026DF0, - 3403: 0x00008420, - 3404: 0x000085EE, - 3405: 0x00026E00, - 3406: 0x000237D7, - 3407: 0x00026064, - 3408: 0x000079E2, - 3409: 0x0002359C, - 3410: 0x00023640, - 3411: 0x0000492D, - 3412: 0x000249DE, - 3413: 0x00003D62, - 3414: 0x000093DB, - 3415: 0x000092BE, - 3416: 0x00009348, - 3417: 0x000202BF, - 3418: 0x000078B9, - 3419: 0x00009277, - 3420: 0x0000944D, - 3421: 0x00004FE4, - 3422: 0x00003440, - 3423: 0x00009064, - 3424: 0x0002555D, - 3425: 0x0000783D, - 3426: 0x00007854, - 3427: 0x000078B6, - 3428: 0x0000784B, - 3429: 0x00021757, - 3430: 0x000231C9, - 3431: 0x00024941, - 3432: 0x0000369A, - 3433: 0x00004F72, - 3434: 0x00006FDA, - 3435: 0x00006FD9, - 3436: 0x0000701E, - 3437: 0x0000701E, - 3438: 0x00005414, - 3439: 0x000241B5, - 3440: 0x000057BB, - 3441: 0x000058F3, - 3442: 0x0000578A, - 3443: 0x00009D16, - 3444: 0x000057D7, - 3445: 0x00007134, - 3446: 0x000034AF, - 3447: 0x000241AC, - 3448: 0x000071EB, - 3449: 0x00026C40, - 3450: 0x00024F97, - 3451: 0x00005B28, - 3452: 0x000217B5, - 3453: 0x00028A49, - 3454: 0x0000610C, - 3455: 0x00005ACE, - 3456: 0x00005A0B, - 3457: 0x000042BC, - 3458: 0x00024488, - 3459: 0x0000372C, - 3460: 0x00004B7B, - 3461: 0x000289FC, - 3462: 0x000093BB, - 3463: 0x000093B8, - 3464: 0x000218D6, - 3465: 0x00020F1D, - 3466: 0x00008472, - 3467: 0x00026CC0, - 3468: 0x00021413, - 3469: 0x000242FA, - 3470: 0x00022C26, - 3471: 0x000243C1, - 3472: 0x00005994, - 3473: 0x00023DB7, - 3474: 0x00026741, - 3475: 0x00007DA8, - 3476: 0x0002615B, - 3477: 0x000260A4, - 3478: 0x000249B9, - 3479: 0x0002498B, - 3480: 0x000289FA, - 3481: 0x000092E5, - 3482: 0x000073E2, - 3483: 0x00003EE9, - 3484: 0x000074B4, - 3485: 0x00028B63, - 3486: 0x0002189F, - 3487: 0x00003EE1, - 3488: 0x00024AB3, - 3489: 0x00006AD8, - 3490: 0x000073F3, - 3491: 0x000073FB, - 3492: 0x00003ED6, - 3493: 0x00024A3E, - 3494: 0x00024A94, - 3495: 0x000217D9, - 3496: 0x00024A66, - 3497: 0x000203A7, - 3498: 0x00021424, - 3499: 0x000249E5, - 3500: 0x00007448, - 3501: 0x00024916, - 3502: 0x000070A5, - 3503: 0x00024976, - 3504: 0x00009284, - 3505: 0x000073E6, - 3506: 0x0000935F, - 3507: 0x000204FE, - 3508: 0x00009331, - 3509: 0x00028ACE, - 3510: 0x00028A16, - 3511: 0x00009386, - 3512: 0x00028BE7, - 3513: 0x000255D5, - 3514: 0x00004935, - 3515: 0x00028A82, - 3516: 0x0000716B, - 3517: 0x00024943, - 3518: 0x00020CFF, - 3519: 0x000056A4, - 3520: 0x0002061A, - 3521: 0x00020BEB, - 3522: 0x00020CB8, - 3523: 0x00005502, - 3524: 0x000079C4, - 3525: 0x000217FA, - 3526: 0x00007DFE, - 3527: 0x000216C2, - 3528: 0x00024A50, - 3529: 0x00021852, - 3530: 0x0000452E, - 3531: 0x00009401, - 3532: 0x0000370A, - 3533: 0x00028AC0, - 3534: 0x000249AD, - 3535: 0x000059B0, - 3536: 0x000218BF, - 3537: 0x00021883, - 3538: 0x00027484, - 3539: 0x00005AA1, - 3540: 0x000036E2, - 3541: 0x00023D5B, - 3542: 0x000036B0, - 3543: 0x0000925F, - 3544: 0x00005A79, - 3545: 0x00028A81, - 3546: 0x00021862, - 3547: 0x00009374, - 3548: 0x00003CCD, - 3549: 0x00020AB4, - 3550: 0x00004A96, - 3551: 0x0000398A, - 3552: 0x000050F4, - 3553: 0x00003D69, - 3554: 0x00003D4C, - 3555: 0x0002139C, - 3556: 0x00007175, - 3557: 0x000042FB, - 3558: 0x00028218, - 3559: 0x00006E0F, - 3560: 0x000290E4, - 3561: 0x000044EB, - 3562: 0x00006D57, - 3563: 0x00027E4F, - 3564: 0x00007067, - 3565: 0x00006CAF, - 3566: 0x00003CD6, - 3567: 0x00023FED, - 3568: 0x00023E2D, - 3569: 0x00006E02, - 3570: 0x00006F0C, - 3571: 0x00003D6F, - 3572: 0x000203F5, - 3573: 0x00007551, - 3574: 0x000036BC, - 3575: 0x000034C8, - 3576: 0x00004680, - 3577: 0x00003EDA, - 3578: 0x00004871, - 3579: 0x000059C4, - 3580: 0x0000926E, - 3581: 0x0000493E, - 3582: 0x00008F41, - 3583: 0x00028C1C, - 3584: 0x00026BC0, - 3585: 0x00005812, - 3586: 0x000057C8, - 3587: 0x000036D6, - 3588: 0x00021452, - 3589: 0x000070FE, - 3590: 0x00024362, - 3591: 0x00024A71, - 3592: 0x00022FE3, - 3593: 0x000212B0, - 3594: 0x000223BD, - 3595: 0x000068B9, - 3596: 0x00006967, - 3597: 0x00021398, - 3598: 0x000234E5, - 3599: 0x00027BF4, - 3600: 0x000236DF, - 3601: 0x00028A83, - 3602: 0x000237D6, - 3603: 0x000233FA, - 3604: 0x00024C9F, - 3605: 0x00006A1A, - 3606: 0x000236AD, - 3607: 0x00026CB7, - 3608: 0x0000843E, - 3609: 0x000044DF, - 3610: 0x000044CE, - 3611: 0x00026D26, - 3612: 0x00026D51, - 3613: 0x00026C82, - 3614: 0x00026FDE, - 3615: 0x00006F17, - 3616: 0x00027109, - 3617: 0x0000833D, - 3618: 0x0002173A, - 3619: 0x000083ED, - 3620: 0x00026C80, - 3621: 0x00027053, - 3622: 0x000217DB, - 3623: 0x00005989, - 3624: 0x00005A82, - 3625: 0x000217B3, - 3626: 0x00005A61, - 3627: 0x00005A71, - 3628: 0x00021905, - 3629: 0x000241FC, - 3630: 0x0000372D, - 3631: 0x000059EF, - 3632: 0x0002173C, - 3633: 0x000036C7, - 3634: 0x0000718E, - 3635: 0x00009390, - 3636: 0x0000669A, - 3637: 0x000242A5, - 3638: 0x00005A6E, - 3639: 0x00005A2B, - 3640: 0x00024293, - 3641: 0x00006A2B, - 3642: 0x00023EF9, - 3643: 0x00027736, - 3644: 0x0002445B, - 3645: 0x000242CA, - 3646: 0x0000711D, - 3647: 0x00024259, - 3648: 0x000289E1, - 3649: 0x00004FB0, - 3650: 0x00026D28, - 3651: 0x00005CC2, - 3652: 0x000244CE, - 3653: 0x00027E4D, - 3654: 0x000243BD, - 3655: 0x00006A0C, - 3656: 0x00024256, - 3657: 0x00021304, - 3658: 0x000070A6, - 3659: 0x00007133, - 3660: 0x000243E9, - 3661: 0x00003DA5, - 3662: 0x00006CDF, - 3663: 0x0002F825, - 3664: 0x00024A4F, - 3665: 0x00007E65, - 3666: 0x000059EB, - 3667: 0x00005D2F, - 3668: 0x00003DF3, - 3669: 0x00005F5C, - 3670: 0x00024A5D, - 3671: 0x000217DF, - 3672: 0x00007DA4, - 3673: 0x00008426, - 3674: 0x00005485, - 3675: 0x00023AFA, - 3676: 0x00023300, - 3677: 0x00020214, - 3678: 0x0000577E, - 3679: 0x000208D5, - 3680: 0x00020619, - 3681: 0x00003FE5, - 3682: 0x00021F9E, - 3683: 0x0002A2B6, - 3684: 0x00007003, - 3685: 0x0002915B, - 3686: 0x00005D70, - 3687: 0x0000738F, - 3688: 0x00007CD3, - 3689: 0x00028A59, - 3690: 0x00029420, - 3691: 0x00004FC8, - 3692: 0x00007FE7, - 3693: 0x000072CD, - 3694: 0x00007310, - 3695: 0x00027AF4, - 3696: 0x00007338, - 3697: 0x00007339, - 3698: 0x000256F6, - 3699: 0x00007341, - 3700: 0x00007348, - 3701: 0x00003EA9, - 3702: 0x00027B18, - 3703: 0x0000906C, - 3704: 0x000071F5, - 3705: 0x000248F2, - 3706: 0x000073E1, - 3707: 0x000081F6, - 3708: 0x00003ECA, - 3709: 0x0000770C, - 3710: 0x00003ED1, - 3711: 0x00006CA2, - 3712: 0x000056FD, - 3713: 0x00007419, - 3714: 0x0000741E, - 3715: 0x0000741F, - 3716: 0x00003EE2, - 3717: 0x00003EF0, - 3718: 0x00003EF4, - 3719: 0x00003EFA, - 3720: 0x000074D3, - 3721: 0x00003F0E, - 3722: 0x00003F53, - 3723: 0x00007542, - 3724: 0x0000756D, - 3725: 0x00007572, - 3726: 0x0000758D, - 3727: 0x00003F7C, - 3728: 0x000075C8, - 3729: 0x000075DC, - 3730: 0x00003FC0, - 3731: 0x0000764D, - 3732: 0x00003FD7, - 3733: 0x00007674, - 3734: 0x00003FDC, - 3735: 0x0000767A, - 3736: 0x00024F5C, - 3737: 0x00007188, - 3738: 0x00005623, - 3739: 0x00008980, - 3740: 0x00005869, - 3741: 0x0000401D, - 3742: 0x00007743, - 3743: 0x00004039, - 3744: 0x00006761, - 3745: 0x00004045, - 3746: 0x000035DB, - 3747: 0x00007798, - 3748: 0x0000406A, - 3749: 0x0000406F, - 3750: 0x00005C5E, - 3751: 0x000077BE, - 3752: 0x000077CB, - 3753: 0x000058F2, - 3754: 0x00007818, - 3755: 0x000070B9, - 3756: 0x0000781C, - 3757: 0x000040A8, - 3758: 0x00007839, - 3759: 0x00007847, - 3760: 0x00007851, - 3761: 0x00007866, - 3762: 0x00008448, - 3763: 0x00025535, - 3764: 0x00007933, - 3765: 0x00006803, - 3766: 0x00007932, - 3767: 0x00004103, - 3768: 0x00004109, - 3769: 0x00007991, - 3770: 0x00007999, - 3771: 0x00008FBB, - 3772: 0x00007A06, - 3773: 0x00008FBC, - 3774: 0x00004167, - 3775: 0x00007A91, - 3776: 0x000041B2, - 3777: 0x00007ABC, - 3778: 0x00008279, - 3779: 0x000041C4, - 3780: 0x00007ACF, - 3781: 0x00007ADB, - 3782: 0x000041CF, - 3783: 0x00004E21, - 3784: 0x00007B62, - 3785: 0x00007B6C, - 3786: 0x00007B7B, - 3787: 0x00007C12, - 3788: 0x00007C1B, - 3789: 0x00004260, - 3790: 0x0000427A, - 3791: 0x00007C7B, - 3792: 0x00007C9C, - 3793: 0x0000428C, - 3794: 0x00007CB8, - 3795: 0x00004294, - 3796: 0x00007CED, - 3797: 0x00008F93, - 3798: 0x000070C0, - 3799: 0x00020CCF, - 3800: 0x00007DCF, - 3801: 0x00007DD4, - 3802: 0x00007DD0, - 3803: 0x00007DFD, - 3804: 0x00007FAE, - 3805: 0x00007FB4, - 3806: 0x0000729F, - 3807: 0x00004397, - 3808: 0x00008020, - 3809: 0x00008025, - 3810: 0x00007B39, - 3811: 0x0000802E, - 3812: 0x00008031, - 3813: 0x00008054, - 3814: 0x00003DCC, - 3815: 0x000057B4, - 3816: 0x000070A0, - 3817: 0x000080B7, - 3818: 0x000080E9, - 3819: 0x000043ED, - 3820: 0x0000810C, - 3821: 0x0000732A, - 3822: 0x0000810E, - 3823: 0x00008112, - 3824: 0x00007560, - 3825: 0x00008114, - 3826: 0x00004401, - 3827: 0x00003B39, - 3828: 0x00008156, - 3829: 0x00008159, - 3830: 0x0000815A, - 3831: 0x00004413, - 3832: 0x0000583A, - 3833: 0x0000817C, - 3834: 0x00008184, - 3835: 0x00004425, - 3836: 0x00008193, - 3837: 0x0000442D, - 3838: 0x000081A5, - 3839: 0x000057EF, - 3840: 0x000081C1, - 3841: 0x000081E4, - 3842: 0x00008254, - 3843: 0x0000448F, - 3844: 0x000082A6, - 3845: 0x00008276, - 3846: 0x000082CA, - 3847: 0x000082D8, - 3848: 0x000082FF, - 3849: 0x000044B0, - 3850: 0x00008357, - 3851: 0x00009669, - 3852: 0x0000698A, - 3853: 0x00008405, - 3854: 0x000070F5, - 3855: 0x00008464, - 3856: 0x000060E3, - 3857: 0x00008488, - 3858: 0x00004504, - 3859: 0x000084BE, - 3860: 0x000084E1, - 3861: 0x000084F8, - 3862: 0x00008510, - 3863: 0x00008538, - 3864: 0x00008552, - 3865: 0x0000453B, - 3866: 0x0000856F, - 3867: 0x00008570, - 3868: 0x000085E0, - 3869: 0x00004577, - 3870: 0x00008672, - 3871: 0x00008692, - 3872: 0x000086B2, - 3873: 0x000086EF, - 3874: 0x00009645, - 3875: 0x0000878B, - 3876: 0x00004606, - 3877: 0x00004617, - 3878: 0x000088AE, - 3879: 0x000088FF, - 3880: 0x00008924, - 3881: 0x00008947, - 3882: 0x00008991, - 3883: 0x00027967, - 3884: 0x00008A29, - 3885: 0x00008A38, - 3886: 0x00008A94, - 3887: 0x00008AB4, - 3888: 0x00008C51, - 3889: 0x00008CD4, - 3890: 0x00008CF2, - 3891: 0x00008D1C, - 3892: 0x00004798, - 3893: 0x0000585F, - 3894: 0x00008DC3, - 3895: 0x000047ED, - 3896: 0x00004EEE, - 3897: 0x00008E3A, - 3898: 0x000055D8, - 3899: 0x00005754, - 3900: 0x00008E71, - 3901: 0x000055F5, - 3902: 0x00008EB0, - 3903: 0x00004837, - 3904: 0x00008ECE, - 3905: 0x00008EE2, - 3906: 0x00008EE4, - 3907: 0x00008EED, - 3908: 0x00008EF2, - 3909: 0x00008FB7, - 3910: 0x00008FC1, - 3911: 0x00008FCA, - 3912: 0x00008FCC, - 3913: 0x00009033, - 3914: 0x000099C4, - 3915: 0x000048AD, - 3916: 0x000098E0, - 3917: 0x00009213, - 3918: 0x0000491E, - 3919: 0x00009228, - 3920: 0x00009258, - 3921: 0x0000926B, - 3922: 0x000092B1, - 3923: 0x000092AE, - 3924: 0x000092BF, - 3925: 0x000092E3, - 3926: 0x000092EB, - 3927: 0x000092F3, - 3928: 0x000092F4, - 3929: 0x000092FD, - 3930: 0x00009343, - 3931: 0x00009384, - 3932: 0x000093AD, - 3933: 0x00004945, - 3934: 0x00004951, - 3935: 0x00009EBF, - 3936: 0x00009417, - 3937: 0x00005301, - 3938: 0x0000941D, - 3939: 0x0000942D, - 3940: 0x0000943E, - 3941: 0x0000496A, - 3942: 0x00009454, - 3943: 0x00009479, - 3944: 0x0000952D, - 3945: 0x000095A2, - 3946: 0x000049A7, - 3947: 0x000095F4, - 3948: 0x00009633, - 3949: 0x000049E5, - 3950: 0x000067A0, - 3951: 0x00004A24, - 3952: 0x00009740, - 3953: 0x00004A35, - 3954: 0x000097B2, - 3955: 0x000097C2, - 3956: 0x00005654, - 3957: 0x00004AE4, - 3958: 0x000060E8, - 3959: 0x000098B9, - 3960: 0x00004B19, - 3961: 0x000098F1, - 3962: 0x00005844, - 3963: 0x0000990E, - 3964: 0x00009919, - 3965: 0x000051B4, - 3966: 0x0000991C, - 3967: 0x00009937, - 3968: 0x00009942, - 3969: 0x0000995D, - 3970: 0x00009962, - 3971: 0x00004B70, - 3972: 0x000099C5, - 3973: 0x00004B9D, - 3974: 0x00009A3C, - 3975: 0x00009B0F, - 3976: 0x00007A83, - 3977: 0x00009B69, - 3978: 0x00009B81, - 3979: 0x00009BDD, - 3980: 0x00009BF1, - 3981: 0x00009BF4, - 3982: 0x00004C6D, - 3983: 0x00009C20, - 3984: 0x0000376F, - 3985: 0x00021BC2, - 3986: 0x00009D49, - 3987: 0x00009C3A, - 3988: 0x00009EFE, - 3989: 0x00005650, - 3990: 0x00009D93, - 3991: 0x00009DBD, - 3992: 0x00009DC0, - 3993: 0x00009DFC, - 3994: 0x000094F6, - 3995: 0x00008FB6, - 3996: 0x00009E7B, - 3997: 0x00009EAC, - 3998: 0x00009EB1, - 3999: 0x00009EBD, - 4000: 0x00009EC6, - 4001: 0x000094DC, - 4002: 0x00009EE2, - 4003: 0x00009EF1, - 4004: 0x00009EF8, - 4005: 0x00007AC8, - 4006: 0x00009F44, - 4007: 0x00020094, - 4008: 0x000202B7, - 4009: 0x000203A0, - 4010: 0x0000691A, - 4011: 0x000094C3, - 4012: 0x000059AC, - 4013: 0x000204D7, - 4014: 0x00005840, - 4015: 0x000094C1, - 4016: 0x000037B9, - 4017: 0x000205D5, - 4018: 0x00020615, - 4019: 0x00020676, - 4020: 0x000216BA, - 4021: 0x00005757, - 4022: 0x00007173, - 4023: 0x00020AC2, - 4024: 0x00020ACD, - 4025: 0x00020BBF, - 4026: 0x0000546A, - 4027: 0x0002F83B, - 4028: 0x00020BCB, - 4029: 0x0000549E, - 4030: 0x00020BFB, - 4031: 0x00020C3B, - 4032: 0x00020C53, - 4033: 0x00020C65, - 4034: 0x00020C7C, - 4035: 0x000060E7, - 4036: 0x00020C8D, - 4037: 0x0000567A, - 4038: 0x00020CB5, - 4039: 0x00020CDD, - 4040: 0x00020CED, - 4041: 0x00020D6F, - 4042: 0x00020DB2, - 4043: 0x00020DC8, - 4044: 0x00006955, - 4045: 0x00009C2F, - 4046: 0x000087A5, - 4047: 0x00020E04, - 4048: 0x00020E0E, - 4049: 0x00020ED7, - 4050: 0x00020F90, - 4051: 0x00020F2D, - 4052: 0x00020E73, - 4053: 0x00005C20, - 4054: 0x00020FBC, - 4055: 0x00005E0B, - 4056: 0x0002105C, - 4057: 0x0002104F, - 4058: 0x00021076, - 4059: 0x0000671E, - 4060: 0x0002107B, - 4061: 0x00021088, - 4062: 0x00021096, - 4063: 0x00003647, - 4064: 0x000210BF, - 4065: 0x000210D3, - 4066: 0x0002112F, - 4067: 0x0002113B, - 4068: 0x00005364, - 4069: 0x000084AD, - 4070: 0x000212E3, - 4071: 0x00021375, - 4072: 0x00021336, - 4073: 0x00008B81, - 4074: 0x00021577, - 4075: 0x00021619, - 4076: 0x000217C3, - 4077: 0x000217C7, - 4078: 0x00004E78, - 4079: 0x000070BB, - 4080: 0x0002182D, - 4081: 0x0002196A, - 4082: 0x00021A2D, - 4083: 0x00021A45, - 4084: 0x00021C2A, - 4085: 0x00021C70, - 4086: 0x00021CAC, - 4087: 0x00021EC8, - 4088: 0x000062C3, - 4089: 0x00021ED5, - 4090: 0x00021F15, - 4091: 0x00007198, - 4092: 0x00006855, - 4093: 0x00022045, - 4094: 0x000069E9, - 4095: 0x000036C8, - 4096: 0x0002227C, - 4097: 0x000223D7, - 4098: 0x000223FA, - 4099: 0x0002272A, - 4100: 0x00022871, - 4101: 0x0002294F, - 4102: 0x000082FD, - 4103: 0x00022967, - 4104: 0x00022993, - 4105: 0x00022AD5, - 4106: 0x000089A5, - 4107: 0x00022AE8, - 4108: 0x00008FA0, - 4109: 0x00022B0E, - 4110: 0x000097B8, - 4111: 0x00022B3F, - 4112: 0x00009847, - 4113: 0x00009ABD, - 4114: 0x00022C4C, - 4116: 0x00022C88, - 4117: 0x00022CB7, - 4118: 0x00025BE8, - 4119: 0x00022D08, - 4120: 0x00022D12, - 4121: 0x00022DB7, - 4122: 0x00022D95, - 4123: 0x00022E42, - 4124: 0x00022F74, - 4125: 0x00022FCC, - 4126: 0x00023033, - 4127: 0x00023066, - 4128: 0x0002331F, - 4129: 0x000233DE, - 4130: 0x00005FB1, - 4131: 0x00006648, - 4132: 0x000066BF, - 4133: 0x00027A79, - 4134: 0x00023567, - 4135: 0x000235F3, - 4136: 0x00007201, - 4137: 0x000249BA, - 4138: 0x000077D7, - 4139: 0x0002361A, - 4140: 0x00023716, - 4141: 0x00007E87, - 4142: 0x00020346, - 4143: 0x000058B5, - 4144: 0x0000670E, - 4145: 0x00006918, - 4146: 0x00023AA7, - 4147: 0x00027657, - 4148: 0x00025FE2, - 4149: 0x00023E11, - 4150: 0x00023EB9, - 4151: 0x000275FE, - 4152: 0x0002209A, - 4153: 0x000048D0, - 4154: 0x00004AB8, - 4155: 0x00024119, - 4156: 0x00028A9A, - 4157: 0x000242EE, - 4158: 0x0002430D, - 4159: 0x0002403B, - 4160: 0x00024334, - 4161: 0x00024396, - 4162: 0x00024A45, - 4163: 0x000205CA, - 4164: 0x000051D2, - 4165: 0x00020611, - 4166: 0x0000599F, - 4167: 0x00021EA8, - 4168: 0x00003BBE, - 4169: 0x00023CFF, - 4170: 0x00024404, - 4171: 0x000244D6, - 4172: 0x00005788, - 4173: 0x00024674, - 4174: 0x0000399B, - 4175: 0x0002472F, - 4176: 0x000285E8, - 4177: 0x000299C9, - 4178: 0x00003762, - 4179: 0x000221C3, - 4180: 0x00008B5E, - 4181: 0x00028B4E, - 4182: 0x000099D6, - 4183: 0x00024812, - 4184: 0x000248FB, - 4185: 0x00024A15, - 4186: 0x00007209, - 4187: 0x00024AC0, - 4188: 0x00020C78, - 4189: 0x00005965, - 4190: 0x00024EA5, - 4191: 0x00024F86, - 4192: 0x00020779, - 4193: 0x00008EDA, - 4194: 0x0002502C, - 4195: 0x0000528F, - 4196: 0x0000573F, - 4197: 0x00007171, - 4198: 0x00025299, - 4199: 0x00025419, - 4200: 0x00023F4A, - 4201: 0x00024AA7, - 4202: 0x000055BC, - 4203: 0x00025446, - 4204: 0x0002546E, - 4205: 0x00026B52, - 4206: 0x000091D4, - 4207: 0x00003473, - 4208: 0x0002553F, - 4209: 0x00027632, - 4210: 0x0002555E, - 4211: 0x00004718, - 4212: 0x00025562, - 4213: 0x00025566, - 4214: 0x000257C7, - 4215: 0x0002493F, - 4216: 0x0002585D, - 4217: 0x00005066, - 4218: 0x000034FB, - 4219: 0x000233CC, - 4220: 0x000060DE, - 4221: 0x00025903, - 4222: 0x0000477C, - 4223: 0x00028948, - 4224: 0x00025AAE, - 4225: 0x00025B89, - 4226: 0x00025C06, - 4227: 0x00021D90, - 4228: 0x000057A1, - 4229: 0x00007151, - 4230: 0x00006FB6, - 4231: 0x00026102, - 4232: 0x00027C12, - 4233: 0x00009056, - 4234: 0x000261B2, - 4235: 0x00024F9A, - 4236: 0x00008B62, - 4237: 0x00026402, - 4238: 0x0002644A, - 4239: 0x00005D5B, - 4240: 0x00026BF7, - 4241: 0x00008F36, - 4242: 0x00026484, - 4243: 0x0002191C, - 4244: 0x00008AEA, - 4245: 0x000249F6, - 4246: 0x00026488, - 4247: 0x00023FEF, - 4248: 0x00026512, - 4249: 0x00004BC0, - 4250: 0x000265BF, - 4251: 0x000266B5, - 4252: 0x0002271B, - 4253: 0x00009465, - 4254: 0x000257E1, - 4255: 0x00006195, - 4256: 0x00005A27, - 4257: 0x0002F8CD, - 4258: 0x00004FBB, - 4259: 0x000056B9, - 4260: 0x00024521, - 4261: 0x000266FC, - 4262: 0x00004E6A, - 4263: 0x00024934, - 4264: 0x00009656, - 4265: 0x00006D8F, - 4266: 0x00026CBD, - 4267: 0x00003618, - 4268: 0x00008977, - 4269: 0x00026799, - 4270: 0x0002686E, - 4271: 0x00026411, - 4272: 0x0002685E, - 4273: 0x000071DF, - 4274: 0x000268C7, - 4275: 0x00007B42, - 4276: 0x000290C0, - 4277: 0x00020A11, - 4278: 0x00026926, - 4279: 0x00009104, - 4280: 0x00026939, - 4281: 0x00007A45, - 4282: 0x00009DF0, - 4283: 0x000269FA, - 4284: 0x00009A26, - 4285: 0x00026A2D, - 4286: 0x0000365F, - 4287: 0x00026469, - 4288: 0x00020021, - 4289: 0x00007983, - 4290: 0x00026A34, - 4291: 0x00026B5B, - 4292: 0x00005D2C, - 4293: 0x00023519, - 4294: 0x000083CF, - 4295: 0x00026B9D, - 4296: 0x000046D0, - 4297: 0x00026CA4, - 4298: 0x0000753B, - 4299: 0x00008865, - 4300: 0x00026DAE, - 4301: 0x000058B6, - 4302: 0x0000371C, - 4303: 0x0002258D, - 4304: 0x0002704B, - 4305: 0x000271CD, - 4306: 0x00003C54, - 4307: 0x00027280, - 4308: 0x00027285, - 4309: 0x00009281, - 4310: 0x0002217A, - 4311: 0x0002728B, - 4312: 0x00009330, - 4313: 0x000272E6, - 4314: 0x000249D0, - 4315: 0x00006C39, - 4316: 0x0000949F, - 4317: 0x00027450, - 4318: 0x00020EF8, - 4319: 0x00008827, - 4320: 0x000088F5, - 4321: 0x00022926, - 4322: 0x00028473, - 4323: 0x000217B1, - 4324: 0x00006EB8, - 4325: 0x00024A2A, - 4326: 0x00021820, - 4327: 0x000039A4, - 4328: 0x000036B9, - 4329: 0x00005C10, - 4330: 0x000079E3, - 4331: 0x0000453F, - 4332: 0x000066B6, - 4333: 0x00029CAD, - 4334: 0x000298A4, - 4335: 0x00008943, - 4336: 0x000277CC, - 4337: 0x00027858, - 4338: 0x000056D6, - 4339: 0x000040DF, - 4340: 0x0002160A, - 4341: 0x000039A1, - 4342: 0x0002372F, - 4343: 0x000280E8, - 4344: 0x000213C5, - 4345: 0x000071AD, - 4346: 0x00008366, - 4347: 0x000279DD, - 4348: 0x000291A8, - 4349: 0x00005A67, - 4350: 0x00004CB7, - 4351: 0x000270AF, - 4352: 0x000289AB, - 4353: 0x000279FD, - 4354: 0x00027A0A, - 4355: 0x00027B0B, - 4356: 0x00027D66, - 4357: 0x0002417A, - 4358: 0x00007B43, - 4359: 0x0000797E, - 4360: 0x00028009, - 4361: 0x00006FB5, - 4362: 0x0002A2DF, - 4363: 0x00006A03, - 4364: 0x00028318, - 4365: 0x000053A2, - 4366: 0x00026E07, - 4367: 0x000093BF, - 4368: 0x00006836, - 4369: 0x0000975D, - 4370: 0x0002816F, - 4371: 0x00028023, - 4372: 0x000269B5, - 4373: 0x000213ED, - 4374: 0x0002322F, - 4375: 0x00028048, - 4376: 0x00005D85, - 4377: 0x00028C30, - 4378: 0x00028083, - 4379: 0x00005715, - 4380: 0x00009823, - 4381: 0x00028949, - 4382: 0x00005DAB, - 4383: 0x00024988, - 4384: 0x000065BE, - 4385: 0x000069D5, - 4386: 0x000053D2, - 4387: 0x00024AA5, - 4388: 0x00023F81, - 4389: 0x00003C11, - 4390: 0x00006736, - 4391: 0x00028090, - 4392: 0x000280F4, - 4393: 0x0002812E, - 4394: 0x00021FA1, - 4395: 0x0002814F, - 4396: 0x00028189, - 4397: 0x000281AF, - 4398: 0x0002821A, - 4399: 0x00028306, - 4400: 0x0002832F, - 4401: 0x0002838A, - 4402: 0x000035CA, - 4403: 0x00028468, - 4404: 0x000286AA, - 4405: 0x000048FA, - 4406: 0x000063E6, - 4407: 0x00028956, - 4408: 0x00007808, - 4409: 0x00009255, - 4410: 0x000289B8, - 4411: 0x000043F2, - 4412: 0x000289E7, - 4413: 0x000043DF, - 4414: 0x000289E8, - 4415: 0x00028B46, - 4416: 0x00028BD4, - 4417: 0x000059F8, - 4418: 0x00028C09, - 4419: 0x00008F0B, - 4420: 0x00028FC5, - 4421: 0x000290EC, - 4422: 0x00007B51, - 4423: 0x00029110, - 4424: 0x0002913C, - 4425: 0x00003DF7, - 4426: 0x0002915E, - 4427: 0x00024ACA, - 4428: 0x00008FD0, - 4429: 0x0000728F, - 4430: 0x0000568B, - 4431: 0x000294E7, - 4432: 0x000295E9, - 4433: 0x000295B0, - 4434: 0x000295B8, - 4435: 0x00029732, - 4436: 0x000298D1, - 4437: 0x00029949, - 4438: 0x0002996A, - 4439: 0x000299C3, - 4440: 0x00029A28, - 4441: 0x00029B0E, - 4442: 0x00029D5A, - 4443: 0x00029D9B, - 4444: 0x00007E9F, - 4445: 0x00029EF8, - 4446: 0x00029F23, - 4447: 0x00004CA4, - 4448: 0x00009547, - 4449: 0x0002A293, - 4450: 0x000071A2, - 4451: 0x0002A2FF, - 4452: 0x00004D91, - 4453: 0x00009012, - 4454: 0x0002A5CB, - 4455: 0x00004D9C, - 4456: 0x00020C9C, - 4457: 0x00008FBE, - 4458: 0x000055C1, - 4459: 0x00008FBA, - 4460: 0x000224B0, - 4461: 0x00008FB9, - 4462: 0x00024A93, - 4463: 0x00004509, - 4464: 0x00007E7F, - 4465: 0x00006F56, - 4466: 0x00006AB1, - 4467: 0x00004EEA, - 4468: 0x000034E4, - 4469: 0x00028B2C, - 4470: 0x0002789D, - 4471: 0x0000373A, - 4472: 0x00008E80, - 4473: 0x000217F5, - 4474: 0x00028024, - 4475: 0x00028B6C, - 4476: 0x00028B99, - 4477: 0x00027A3E, - 4478: 0x000266AF, - 4479: 0x00003DEB, - 4480: 0x00027655, - 4481: 0x00023CB7, - 4482: 0x00025635, - 4483: 0x00025956, - 4484: 0x00004E9A, - 4485: 0x00025E81, - 4486: 0x00026258, - 4487: 0x000056BF, - 4488: 0x00020E6D, - 4489: 0x00008E0E, - 4490: 0x00005B6D, - 4491: 0x00023E88, - 4492: 0x00024C9E, - 4493: 0x000063DE, - 4494: 0x000062D0, - 4495: 0x000217F6, - 4496: 0x0002187B, - 4497: 0x00006530, - 4498: 0x0000562D, - 4499: 0x00025C4A, - 4500: 0x0000541A, - 4501: 0x00025311, - 4502: 0x00003DC6, - 4503: 0x00029D98, - 4504: 0x00004C7D, - 4505: 0x00005622, - 4506: 0x0000561E, - 4507: 0x00007F49, - 4508: 0x00025ED8, - 4509: 0x00005975, - 4510: 0x00023D40, - 4511: 0x00008770, - 4512: 0x00004E1C, - 4513: 0x00020FEA, - 4514: 0x00020D49, - 4515: 0x000236BA, - 4516: 0x00008117, - 4517: 0x00009D5E, - 4518: 0x00008D18, - 4519: 0x0000763B, - 4520: 0x00009C45, - 4521: 0x0000764E, - 4522: 0x000077B9, - 4523: 0x00009345, - 4524: 0x00005432, - 4525: 0x00008148, - 4526: 0x000082F7, - 4527: 0x00005625, - 4528: 0x00008132, - 4529: 0x00008418, - 4530: 0x000080BD, - 4531: 0x000055EA, - 4532: 0x00007962, - 4533: 0x00005643, - 4534: 0x00005416, - 4535: 0x00020E9D, - 4536: 0x000035CE, - 4537: 0x00005605, - 4538: 0x000055F1, - 4539: 0x000066F1, - 4540: 0x000282E2, - 4541: 0x0000362D, - 4542: 0x00007534, - 4543: 0x000055F0, - 4544: 0x000055BA, - 4545: 0x00005497, - 4546: 0x00005572, - 4547: 0x00020C41, - 4548: 0x00020C96, - 4549: 0x00005ED0, - 4550: 0x00025148, - 4551: 0x00020E76, - 4552: 0x00022C62, - 4553: 0x00020EA2, - 4554: 0x00009EAB, - 4555: 0x00007D5A, - 4556: 0x000055DE, - 4557: 0x00021075, - 4558: 0x0000629D, - 4559: 0x0000976D, - 4560: 0x00005494, - 4561: 0x00008CCD, - 4562: 0x000071F6, - 4563: 0x00009176, - 4564: 0x000063FC, - 4565: 0x000063B9, - 4566: 0x000063FE, - 4567: 0x00005569, - 4568: 0x00022B43, - 4569: 0x00009C72, - 4570: 0x00022EB3, - 4571: 0x0000519A, - 4572: 0x000034DF, - 4573: 0x00020DA7, - 4574: 0x000051A7, - 4575: 0x0000544D, - 4576: 0x0000551E, - 4577: 0x00005513, - 4578: 0x00007666, - 4579: 0x00008E2D, - 4580: 0x0002688A, - 4581: 0x000075B1, - 4582: 0x000080B6, - 4583: 0x00008804, - 4584: 0x00008786, - 4585: 0x000088C7, - 4586: 0x000081B6, - 4587: 0x0000841C, - 4588: 0x000210C1, - 4589: 0x000044EC, - 4590: 0x00007304, - 4591: 0x00024706, - 4592: 0x00005B90, - 4593: 0x0000830B, - 4594: 0x00026893, - 4595: 0x0000567B, - 4596: 0x000226F4, - 4597: 0x00027D2F, - 4598: 0x000241A3, - 4599: 0x00027D73, - 4600: 0x00026ED0, - 4601: 0x000272B6, - 4602: 0x00009170, - 4603: 0x000211D9, - 4604: 0x00009208, - 4605: 0x00023CFC, - 4606: 0x0002A6A9, - 4607: 0x00020EAC, - 4608: 0x00020EF9, - 4609: 0x00007266, - 4610: 0x00021CA2, - 4611: 0x0000474E, - 4612: 0x00024FC2, - 4613: 0x00027FF9, - 4614: 0x00020FEB, - 4615: 0x000040FA, - 4616: 0x00009C5D, - 4617: 0x0000651F, - 4618: 0x00022DA0, - 4619: 0x000048F3, - 4620: 0x000247E0, - 4621: 0x00029D7C, - 4622: 0x00020FEC, - 4623: 0x00020E0A, - 4624: 0x00006062, - 4625: 0x000275A3, - 4626: 0x00020FED, - 4628: 0x00026048, - 4629: 0x00021187, - 4630: 0x000071A3, - 4631: 0x00007E8E, - 4632: 0x00009D50, - 4633: 0x00004E1A, - 4634: 0x00004E04, - 4635: 0x00003577, - 4636: 0x00005B0D, - 4637: 0x00006CB2, - 4638: 0x00005367, - 4639: 0x000036AC, - 4640: 0x000039DC, - 4641: 0x0000537D, - 4642: 0x000036A5, - 4643: 0x00024618, - 4644: 0x0000589A, - 4645: 0x00024B6E, - 4646: 0x0000822D, - 4647: 0x0000544B, - 4648: 0x000057AA, - 4649: 0x00025A95, - 4650: 0x00020979, - 4652: 0x00003A52, - 4653: 0x00022465, - 4654: 0x00007374, - 4655: 0x00029EAC, - 4656: 0x00004D09, - 4657: 0x00009BED, - 4658: 0x00023CFE, - 4659: 0x00029F30, - 4660: 0x00004C5B, - 4661: 0x00024FA9, - 4662: 0x0002959E, - 4663: 0x00029FDE, - 4664: 0x0000845C, - 4665: 0x00023DB6, - 4666: 0x000272B2, - 4667: 0x000267B3, - 4668: 0x00023720, - 4669: 0x0000632E, - 4670: 0x00007D25, - 4671: 0x00023EF7, - 4672: 0x00023E2C, - 4673: 0x00003A2A, - 4674: 0x00009008, - 4675: 0x000052CC, - 4676: 0x00003E74, - 4677: 0x0000367A, - 4678: 0x000045E9, - 4679: 0x0002048E, - 4680: 0x00007640, - 4681: 0x00005AF0, - 4682: 0x00020EB6, - 4683: 0x0000787A, - 4684: 0x00027F2E, - 4685: 0x000058A7, - 4686: 0x000040BF, - 4687: 0x0000567C, - 4688: 0x00009B8B, - 4689: 0x00005D74, - 4690: 0x00007654, - 4691: 0x0002A434, - 4692: 0x00009E85, - 4693: 0x00004CE1, - 4694: 0x000075F9, - 4695: 0x000037FB, - 4696: 0x00006119, - 4697: 0x000230DA, - 4698: 0x000243F2, - 4700: 0x0000565D, - 4701: 0x000212A9, - 4702: 0x000057A7, - 4703: 0x00024963, - 4704: 0x00029E06, - 4705: 0x00005234, - 4706: 0x000270AE, - 4707: 0x000035AD, - 4708: 0x00006C4A, - 4709: 0x00009D7C, - 4710: 0x00007C56, - 4711: 0x00009B39, - 4712: 0x000057DE, - 4713: 0x0002176C, - 4714: 0x00005C53, - 4715: 0x000064D3, - 4716: 0x000294D0, - 4717: 0x00026335, - 4718: 0x00027164, - 4719: 0x000086AD, - 4720: 0x00020D28, - 4721: 0x00026D22, - 4722: 0x00024AE2, - 4723: 0x00020D71, - 4725: 0x000051FE, - 4726: 0x00021F0F, - 4727: 0x00005D8E, - 4728: 0x00009703, - 4729: 0x00021DD1, - 4730: 0x00009E81, - 4731: 0x0000904C, - 4732: 0x00007B1F, - 4733: 0x00009B02, - 4734: 0x00005CD1, - 4735: 0x00007BA3, - 4736: 0x00006268, - 4737: 0x00006335, - 4738: 0x00009AFF, - 4739: 0x00007BCF, - 4740: 0x00009B2A, - 4741: 0x00007C7E, - 4742: 0x00009B2E, - 4743: 0x00007C42, - 4744: 0x00007C86, - 4745: 0x00009C15, - 4746: 0x00007BFC, - 4747: 0x00009B09, - 4748: 0x00009F17, - 4749: 0x00009C1B, - 4750: 0x0002493E, - 4751: 0x00009F5A, - 4752: 0x00005573, - 4753: 0x00005BC3, - 4754: 0x00004FFD, - 4755: 0x00009E98, - 4756: 0x00004FF2, - 4757: 0x00005260, - 4758: 0x00003E06, - 4759: 0x000052D1, - 4760: 0x00005767, - 4761: 0x00005056, - 4762: 0x000059B7, - 4763: 0x00005E12, - 4764: 0x000097C8, - 4765: 0x00009DAB, - 4766: 0x00008F5C, - 4767: 0x00005469, - 4768: 0x000097B4, - 4769: 0x00009940, - 4770: 0x000097BA, - 4771: 0x0000532C, - 4772: 0x00006130, - 4773: 0x0000692C, - 4774: 0x000053DA, - 4775: 0x00009C0A, - 4776: 0x00009D02, - 4777: 0x00004C3B, - 4778: 0x00009641, - 4779: 0x00006980, - 4780: 0x000050A6, - 4781: 0x00007546, - 4782: 0x0002176D, - 4783: 0x000099DA, - 4784: 0x00005273, - 4786: 0x00009159, - 4787: 0x00009681, - 4788: 0x0000915C, - 4790: 0x00009151, - 4791: 0x00028E97, - 4792: 0x0000637F, - 4793: 0x00026D23, - 4794: 0x00006ACA, - 4795: 0x00005611, - 4796: 0x0000918E, - 4797: 0x0000757A, - 4798: 0x00006285, - 4799: 0x000203FC, - 4800: 0x0000734F, - 4801: 0x00007C70, - 4802: 0x00025C21, - 4803: 0x00023CFD, - 4805: 0x00024919, - 4806: 0x000076D6, - 4807: 0x00009B9D, - 4808: 0x00004E2A, - 4809: 0x00020CD4, - 4810: 0x000083BE, - 4811: 0x00008842, - 4813: 0x00005C4A, - 4814: 0x000069C0, - 4815: 0x000050ED, - 4816: 0x0000577A, - 4817: 0x0000521F, - 4818: 0x00005DF5, - 4819: 0x00004ECE, - 4820: 0x00006C31, - 4821: 0x000201F2, - 4822: 0x00004F39, - 4823: 0x0000549C, - 4824: 0x000054DA, - 4825: 0x0000529A, - 4826: 0x00008D82, - 4827: 0x000035FE, - 4828: 0x00005F0C, - 4829: 0x000035F3, - 4831: 0x00006B52, - 4832: 0x0000917C, - 4833: 0x00009FA5, - 4834: 0x00009B97, - 4835: 0x0000982E, - 4836: 0x000098B4, - 4837: 0x00009ABA, - 4838: 0x00009EA8, - 4839: 0x00009E84, - 4840: 0x0000717A, - 4841: 0x00007B14, - 4843: 0x00006BFA, - 4844: 0x00008818, - 4845: 0x00007F78, - 4847: 0x00005620, - 4848: 0x0002A64A, - 4849: 0x00008E77, - 4850: 0x00009F53, - 4852: 0x00008DD4, - 4853: 0x00008E4F, - 4854: 0x00009E1C, - 4855: 0x00008E01, - 4856: 0x00006282, - 4857: 0x0002837D, - 4858: 0x00008E28, - 4859: 0x00008E75, - 4860: 0x00007AD3, - 4861: 0x00024A77, - 4862: 0x00007A3E, - 4863: 0x000078D8, - 4864: 0x00006CEA, - 4865: 0x00008A67, - 4866: 0x00007607, - 4867: 0x00028A5A, - 4868: 0x00009F26, - 4869: 0x00006CCE, - 4870: 0x000087D6, - 4871: 0x000075C3, - 4872: 0x0002A2B2, - 4873: 0x00007853, - 4874: 0x0002F840, - 4875: 0x00008D0C, - 4876: 0x000072E2, - 4877: 0x00007371, - 4878: 0x00008B2D, - 4879: 0x00007302, - 4880: 0x000074F1, - 4881: 0x00008CEB, - 4882: 0x00024ABB, - 4883: 0x0000862F, - 4884: 0x00005FBA, - 4885: 0x000088A0, - 4886: 0x000044B7, - 4888: 0x0002183B, - 4889: 0x00026E05, - 4891: 0x00008A7E, - 4892: 0x0002251B, - 4894: 0x000060FD, - 4895: 0x00007667, - 4896: 0x00009AD7, - 4897: 0x00009D44, - 4898: 0x0000936E, - 4899: 0x00009B8F, - 4900: 0x000087F5, - 4902: 0x0000880F, - 4903: 0x00008CF7, - 4904: 0x0000732C, - 4905: 0x00009721, - 4906: 0x00009BB0, - 4907: 0x000035D6, - 4908: 0x000072B2, - 4909: 0x00004C07, - 4910: 0x00007C51, - 4911: 0x0000994A, - 4912: 0x00026159, - 4913: 0x00006159, - 4914: 0x00004C04, - 4915: 0x00009E96, - 4916: 0x0000617D, - 4918: 0x0000575F, - 4919: 0x0000616F, - 4920: 0x000062A6, - 4921: 0x00006239, - 4922: 0x000062CE, - 4923: 0x00003A5C, - 4924: 0x000061E2, - 4925: 0x000053AA, - 4926: 0x000233F5, - 4927: 0x00006364, - 4928: 0x00006802, - 4929: 0x000035D2, - 4930: 0x00005D57, - 4931: 0x00028BC2, - 4932: 0x00008FDA, - 4933: 0x00028E39, - 4935: 0x000050D9, - 4936: 0x00021D46, - 4937: 0x00007906, - 4938: 0x00005332, - 4939: 0x00009638, - 4940: 0x00020F3B, - 4941: 0x00004065, - 4943: 0x000077FE, - 4945: 0x00007CC2, - 4946: 0x00025F1A, - 4947: 0x00007CDA, - 4948: 0x00007A2D, - 4949: 0x00008066, - 4950: 0x00008063, - 4951: 0x00007D4D, - 4952: 0x00007505, - 4953: 0x000074F2, - 4954: 0x00008994, - 4955: 0x0000821A, - 4956: 0x0000670C, - 4957: 0x00008062, - 4958: 0x00027486, - 4959: 0x0000805B, - 4960: 0x000074F0, - 4961: 0x00008103, - 4962: 0x00007724, - 4963: 0x00008989, - 4964: 0x000267CC, - 4965: 0x00007553, - 4966: 0x00026ED1, - 4967: 0x000087A9, - 4968: 0x000087CE, - 4969: 0x000081C8, - 4970: 0x0000878C, - 4971: 0x00008A49, - 4972: 0x00008CAD, - 4973: 0x00008B43, - 4974: 0x0000772B, - 4975: 0x000074F8, - 4976: 0x000084DA, - 4977: 0x00003635, - 4978: 0x000069B2, - 4979: 0x00008DA6, - 4981: 0x000089A9, - 4982: 0x00007468, - 4983: 0x00006DB9, - 4984: 0x000087C1, - 4985: 0x00024011, - 4986: 0x000074E7, - 4987: 0x00003DDB, - 4988: 0x00007176, - 4989: 0x000060A4, - 4990: 0x0000619C, - 4991: 0x00003CD1, - 4992: 0x00007162, - 4993: 0x00006077, - 4995: 0x00007F71, - 4996: 0x00028B2D, - 4997: 0x00007250, - 4998: 0x000060E9, - 4999: 0x00004B7E, - 5000: 0x00005220, - 5001: 0x00003C18, - 5002: 0x00023CC7, - 5003: 0x00025ED7, - 5004: 0x00027656, - 5005: 0x00025531, - 5006: 0x00021944, - 5007: 0x000212FE, - 5008: 0x00029903, - 5009: 0x00026DDC, - 5010: 0x000270AD, - 5011: 0x00005CC1, - 5012: 0x000261AD, - 5013: 0x00028A0F, - 5014: 0x00023677, - 5015: 0x000200EE, - 5016: 0x00026846, - 5017: 0x00024F0E, - 5018: 0x00004562, - 5019: 0x00005B1F, - 5020: 0x0002634C, - 5021: 0x00009F50, - 5022: 0x00009EA6, - 5023: 0x0002626B, - 5024: 0x00003000, - 5025: 0x0000FF0C, - 5026: 0x00003001, - 5027: 0x00003002, - 5028: 0x0000FF0E, - 5029: 0x00002027, - 5030: 0x0000FF1B, - 5031: 0x0000FF1A, - 5032: 0x0000FF1F, - 5033: 0x0000FF01, - 5034: 0x0000FE30, - 5035: 0x00002026, - 5036: 0x00002025, - 5037: 0x0000FE50, - 5038: 0x0000FE51, - 5039: 0x0000FE52, - 5040: 0x000000B7, - 5041: 0x0000FE54, - 5042: 0x0000FE55, - 5043: 0x0000FE56, - 5044: 0x0000FE57, - 5045: 0x0000FF5C, - 5046: 0x00002013, - 5047: 0x0000FE31, - 5048: 0x00002014, - 5049: 0x0000FE33, - 5050: 0x00002574, - 5051: 0x0000FE34, - 5052: 0x0000FE4F, - 5053: 0x0000FF08, - 5054: 0x0000FF09, - 5055: 0x0000FE35, - 5056: 0x0000FE36, - 5057: 0x0000FF5B, - 5058: 0x0000FF5D, - 5059: 0x0000FE37, - 5060: 0x0000FE38, - 5061: 0x00003014, - 5062: 0x00003015, - 5063: 0x0000FE39, - 5064: 0x0000FE3A, - 5065: 0x00003010, - 5066: 0x00003011, - 5067: 0x0000FE3B, - 5068: 0x0000FE3C, - 5069: 0x0000300A, - 5070: 0x0000300B, - 5071: 0x0000FE3D, - 5072: 0x0000FE3E, - 5073: 0x00003008, - 5074: 0x00003009, - 5075: 0x0000FE3F, - 5076: 0x0000FE40, - 5077: 0x0000300C, - 5078: 0x0000300D, - 5079: 0x0000FE41, - 5080: 0x0000FE42, - 5081: 0x0000300E, - 5082: 0x0000300F, - 5083: 0x0000FE43, - 5084: 0x0000FE44, - 5085: 0x0000FE59, - 5086: 0x0000FE5A, - 5087: 0x0000FE5B, - 5088: 0x0000FE5C, - 5089: 0x0000FE5D, - 5090: 0x0000FE5E, - 5091: 0x00002018, - 5092: 0x00002019, - 5093: 0x0000201C, - 5094: 0x0000201D, - 5095: 0x0000301D, - 5096: 0x0000301E, - 5097: 0x00002035, - 5098: 0x00002032, - 5099: 0x0000FF03, - 5100: 0x0000FF06, - 5101: 0x0000FF0A, - 5102: 0x0000203B, - 5103: 0x000000A7, - 5104: 0x00003003, - 5105: 0x000025CB, - 5106: 0x000025CF, - 5107: 0x000025B3, - 5108: 0x000025B2, - 5109: 0x000025CE, - 5110: 0x00002606, - 5111: 0x00002605, - 5112: 0x000025C7, - 5113: 0x000025C6, - 5114: 0x000025A1, - 5115: 0x000025A0, - 5116: 0x000025BD, - 5117: 0x000025BC, - 5118: 0x000032A3, - 5119: 0x00002105, - 5120: 0x000000AF, - 5121: 0x0000FFE3, - 5122: 0x0000FF3F, - 5123: 0x000002CD, - 5124: 0x0000FE49, - 5125: 0x0000FE4A, - 5126: 0x0000FE4D, - 5127: 0x0000FE4E, - 5128: 0x0000FE4B, - 5129: 0x0000FE4C, - 5130: 0x0000FE5F, - 5131: 0x0000FE60, - 5132: 0x0000FE61, - 5133: 0x0000FF0B, - 5134: 0x0000FF0D, - 5135: 0x000000D7, - 5136: 0x000000F7, - 5137: 0x000000B1, - 5138: 0x0000221A, - 5139: 0x0000FF1C, - 5140: 0x0000FF1E, - 5141: 0x0000FF1D, - 5142: 0x00002266, - 5143: 0x00002267, - 5144: 0x00002260, - 5145: 0x0000221E, - 5146: 0x00002252, - 5147: 0x00002261, - 5148: 0x0000FE62, - 5149: 0x0000FE63, - 5150: 0x0000FE64, - 5151: 0x0000FE65, - 5152: 0x0000FE66, - 5153: 0x0000FF5E, - 5154: 0x00002229, - 5155: 0x0000222A, - 5156: 0x000022A5, - 5157: 0x00002220, - 5158: 0x0000221F, - 5159: 0x000022BF, - 5160: 0x000033D2, - 5161: 0x000033D1, - 5162: 0x0000222B, - 5163: 0x0000222E, - 5164: 0x00002235, - 5165: 0x00002234, - 5166: 0x00002640, - 5167: 0x00002642, - 5168: 0x00002295, - 5169: 0x00002299, - 5170: 0x00002191, - 5171: 0x00002193, - 5172: 0x00002190, - 5173: 0x00002192, - 5174: 0x00002196, - 5175: 0x00002197, - 5176: 0x00002199, - 5177: 0x00002198, - 5178: 0x00002225, - 5179: 0x00002223, - 5180: 0x0000FF0F, - 5181: 0x0000FF3C, - 5182: 0x00002215, - 5183: 0x0000FE68, - 5184: 0x0000FF04, - 5185: 0x0000FFE5, - 5186: 0x00003012, - 5187: 0x0000FFE0, - 5188: 0x0000FFE1, - 5189: 0x0000FF05, - 5190: 0x0000FF20, - 5191: 0x00002103, - 5192: 0x00002109, - 5193: 0x0000FE69, - 5194: 0x0000FE6A, - 5195: 0x0000FE6B, - 5196: 0x000033D5, - 5197: 0x0000339C, - 5198: 0x0000339D, - 5199: 0x0000339E, - 5200: 0x000033CE, - 5201: 0x000033A1, - 5202: 0x0000338E, - 5203: 0x0000338F, - 5204: 0x000033C4, - 5205: 0x000000B0, - 5206: 0x00005159, - 5207: 0x0000515B, - 5208: 0x0000515E, - 5209: 0x0000515D, - 5210: 0x00005161, - 5211: 0x00005163, - 5212: 0x000055E7, - 5213: 0x000074E9, - 5214: 0x00007CCE, - 5215: 0x00002581, - 5216: 0x00002582, - 5217: 0x00002583, - 5218: 0x00002584, - 5219: 0x00002585, - 5220: 0x00002586, - 5221: 0x00002587, - 5222: 0x00002588, - 5223: 0x0000258F, - 5224: 0x0000258E, - 5225: 0x0000258D, - 5226: 0x0000258C, - 5227: 0x0000258B, - 5228: 0x0000258A, - 5229: 0x00002589, - 5230: 0x0000253C, - 5231: 0x00002534, - 5232: 0x0000252C, - 5233: 0x00002524, - 5234: 0x0000251C, - 5235: 0x00002594, - 5236: 0x00002500, - 5237: 0x00002502, - 5238: 0x00002595, - 5239: 0x0000250C, - 5240: 0x00002510, - 5241: 0x00002514, - 5242: 0x00002518, - 5243: 0x0000256D, - 5244: 0x0000256E, - 5245: 0x00002570, - 5246: 0x0000256F, - 5247: 0x00002550, - 5248: 0x0000255E, - 5249: 0x0000256A, - 5250: 0x00002561, - 5251: 0x000025E2, - 5252: 0x000025E3, - 5253: 0x000025E5, - 5254: 0x000025E4, - 5255: 0x00002571, - 5256: 0x00002572, - 5257: 0x00002573, - 5258: 0x0000FF10, - 5259: 0x0000FF11, - 5260: 0x0000FF12, - 5261: 0x0000FF13, - 5262: 0x0000FF14, - 5263: 0x0000FF15, - 5264: 0x0000FF16, - 5265: 0x0000FF17, - 5266: 0x0000FF18, - 5267: 0x0000FF19, - 5268: 0x00002160, - 5269: 0x00002161, - 5270: 0x00002162, - 5271: 0x00002163, - 5272: 0x00002164, - 5273: 0x00002165, - 5274: 0x00002166, - 5275: 0x00002167, - 5276: 0x00002168, - 5277: 0x00002169, - 5278: 0x00003021, - 5279: 0x00003022, - 5280: 0x00003023, - 5281: 0x00003024, - 5282: 0x00003025, - 5283: 0x00003026, - 5284: 0x00003027, - 5285: 0x00003028, - 5286: 0x00003029, - 5287: 0x00005341, - 5288: 0x00005344, - 5289: 0x00005345, - 5290: 0x0000FF21, - 5291: 0x0000FF22, - 5292: 0x0000FF23, - 5293: 0x0000FF24, - 5294: 0x0000FF25, - 5295: 0x0000FF26, - 5296: 0x0000FF27, - 5297: 0x0000FF28, - 5298: 0x0000FF29, - 5299: 0x0000FF2A, - 5300: 0x0000FF2B, - 5301: 0x0000FF2C, - 5302: 0x0000FF2D, - 5303: 0x0000FF2E, - 5304: 0x0000FF2F, - 5305: 0x0000FF30, - 5306: 0x0000FF31, - 5307: 0x0000FF32, - 5308: 0x0000FF33, - 5309: 0x0000FF34, - 5310: 0x0000FF35, - 5311: 0x0000FF36, - 5312: 0x0000FF37, - 5313: 0x0000FF38, - 5314: 0x0000FF39, - 5315: 0x0000FF3A, - 5316: 0x0000FF41, - 5317: 0x0000FF42, - 5318: 0x0000FF43, - 5319: 0x0000FF44, - 5320: 0x0000FF45, - 5321: 0x0000FF46, - 5322: 0x0000FF47, - 5323: 0x0000FF48, - 5324: 0x0000FF49, - 5325: 0x0000FF4A, - 5326: 0x0000FF4B, - 5327: 0x0000FF4C, - 5328: 0x0000FF4D, - 5329: 0x0000FF4E, - 5330: 0x0000FF4F, - 5331: 0x0000FF50, - 5332: 0x0000FF51, - 5333: 0x0000FF52, - 5334: 0x0000FF53, - 5335: 0x0000FF54, - 5336: 0x0000FF55, - 5337: 0x0000FF56, - 5338: 0x0000FF57, - 5339: 0x0000FF58, - 5340: 0x0000FF59, - 5341: 0x0000FF5A, - 5342: 0x00000391, - 5343: 0x00000392, - 5344: 0x00000393, - 5345: 0x00000394, - 5346: 0x00000395, - 5347: 0x00000396, - 5348: 0x00000397, - 5349: 0x00000398, - 5350: 0x00000399, - 5351: 0x0000039A, - 5352: 0x0000039B, - 5353: 0x0000039C, - 5354: 0x0000039D, - 5355: 0x0000039E, - 5356: 0x0000039F, - 5357: 0x000003A0, - 5358: 0x000003A1, - 5359: 0x000003A3, - 5360: 0x000003A4, - 5361: 0x000003A5, - 5362: 0x000003A6, - 5363: 0x000003A7, - 5364: 0x000003A8, - 5365: 0x000003A9, - 5366: 0x000003B1, - 5367: 0x000003B2, - 5368: 0x000003B3, - 5369: 0x000003B4, - 5370: 0x000003B5, - 5371: 0x000003B6, - 5372: 0x000003B7, - 5373: 0x000003B8, - 5374: 0x000003B9, - 5375: 0x000003BA, - 5376: 0x000003BB, - 5377: 0x000003BC, - 5378: 0x000003BD, - 5379: 0x000003BE, - 5380: 0x000003BF, - 5381: 0x000003C0, - 5382: 0x000003C1, - 5383: 0x000003C3, - 5384: 0x000003C4, - 5385: 0x000003C5, - 5386: 0x000003C6, - 5387: 0x000003C7, - 5388: 0x000003C8, - 5389: 0x000003C9, - 5390: 0x00003105, - 5391: 0x00003106, - 5392: 0x00003107, - 5393: 0x00003108, - 5394: 0x00003109, - 5395: 0x0000310A, - 5396: 0x0000310B, - 5397: 0x0000310C, - 5398: 0x0000310D, - 5399: 0x0000310E, - 5400: 0x0000310F, - 5401: 0x00003110, - 5402: 0x00003111, - 5403: 0x00003112, - 5404: 0x00003113, - 5405: 0x00003114, - 5406: 0x00003115, - 5407: 0x00003116, - 5408: 0x00003117, - 5409: 0x00003118, - 5410: 0x00003119, - 5411: 0x0000311A, - 5412: 0x0000311B, - 5413: 0x0000311C, - 5414: 0x0000311D, - 5415: 0x0000311E, - 5416: 0x0000311F, - 5417: 0x00003120, - 5418: 0x00003121, - 5419: 0x00003122, - 5420: 0x00003123, - 5421: 0x00003124, - 5422: 0x00003125, - 5423: 0x00003126, - 5424: 0x00003127, - 5425: 0x00003128, - 5426: 0x00003129, - 5427: 0x000002D9, - 5428: 0x000002C9, - 5429: 0x000002CA, - 5430: 0x000002C7, - 5431: 0x000002CB, - 5432: 0x00002400, - 5433: 0x00002401, - 5434: 0x00002402, - 5435: 0x00002403, - 5436: 0x00002404, - 5437: 0x00002405, - 5438: 0x00002406, - 5439: 0x00002407, - 5440: 0x00002408, - 5441: 0x00002409, - 5442: 0x0000240A, - 5443: 0x0000240B, - 5444: 0x0000240C, - 5445: 0x0000240D, - 5446: 0x0000240E, - 5447: 0x0000240F, - 5448: 0x00002410, - 5449: 0x00002411, - 5450: 0x00002412, - 5451: 0x00002413, - 5452: 0x00002414, - 5453: 0x00002415, - 5454: 0x00002416, - 5455: 0x00002417, - 5456: 0x00002418, - 5457: 0x00002419, - 5458: 0x0000241A, - 5459: 0x0000241B, - 5460: 0x0000241C, - 5461: 0x0000241D, - 5462: 0x0000241E, - 5463: 0x0000241F, - 5464: 0x00002421, - 5465: 0x000020AC, - 5495: 0x00004E00, - 5496: 0x00004E59, - 5497: 0x00004E01, - 5498: 0x00004E03, - 5499: 0x00004E43, - 5500: 0x00004E5D, - 5501: 0x00004E86, - 5502: 0x00004E8C, - 5503: 0x00004EBA, - 5504: 0x0000513F, - 5505: 0x00005165, - 5506: 0x0000516B, - 5507: 0x000051E0, - 5508: 0x00005200, - 5509: 0x00005201, - 5510: 0x0000529B, - 5511: 0x00005315, - 5512: 0x00005341, - 5513: 0x0000535C, - 5514: 0x000053C8, - 5515: 0x00004E09, - 5516: 0x00004E0B, - 5517: 0x00004E08, - 5518: 0x00004E0A, - 5519: 0x00004E2B, - 5520: 0x00004E38, - 5521: 0x000051E1, - 5522: 0x00004E45, - 5523: 0x00004E48, - 5524: 0x00004E5F, - 5525: 0x00004E5E, - 5526: 0x00004E8E, - 5527: 0x00004EA1, - 5528: 0x00005140, - 5529: 0x00005203, - 5530: 0x000052FA, - 5531: 0x00005343, - 5532: 0x000053C9, - 5533: 0x000053E3, - 5534: 0x0000571F, - 5535: 0x000058EB, - 5536: 0x00005915, - 5537: 0x00005927, - 5538: 0x00005973, - 5539: 0x00005B50, - 5540: 0x00005B51, - 5541: 0x00005B53, - 5542: 0x00005BF8, - 5543: 0x00005C0F, - 5544: 0x00005C22, - 5545: 0x00005C38, - 5546: 0x00005C71, - 5547: 0x00005DDD, - 5548: 0x00005DE5, - 5549: 0x00005DF1, - 5550: 0x00005DF2, - 5551: 0x00005DF3, - 5552: 0x00005DFE, - 5553: 0x00005E72, - 5554: 0x00005EFE, - 5555: 0x00005F0B, - 5556: 0x00005F13, - 5557: 0x0000624D, - 5558: 0x00004E11, - 5559: 0x00004E10, - 5560: 0x00004E0D, - 5561: 0x00004E2D, - 5562: 0x00004E30, - 5563: 0x00004E39, - 5564: 0x00004E4B, - 5565: 0x00005C39, - 5566: 0x00004E88, - 5567: 0x00004E91, - 5568: 0x00004E95, - 5569: 0x00004E92, - 5570: 0x00004E94, - 5571: 0x00004EA2, - 5572: 0x00004EC1, - 5573: 0x00004EC0, - 5574: 0x00004EC3, - 5575: 0x00004EC6, - 5576: 0x00004EC7, - 5577: 0x00004ECD, - 5578: 0x00004ECA, - 5579: 0x00004ECB, - 5580: 0x00004EC4, - 5581: 0x00005143, - 5582: 0x00005141, - 5583: 0x00005167, - 5584: 0x0000516D, - 5585: 0x0000516E, - 5586: 0x0000516C, - 5587: 0x00005197, - 5588: 0x000051F6, - 5589: 0x00005206, - 5590: 0x00005207, - 5591: 0x00005208, - 5592: 0x000052FB, - 5593: 0x000052FE, - 5594: 0x000052FF, - 5595: 0x00005316, - 5596: 0x00005339, - 5597: 0x00005348, - 5598: 0x00005347, - 5599: 0x00005345, - 5600: 0x0000535E, - 5601: 0x00005384, - 5602: 0x000053CB, - 5603: 0x000053CA, - 5604: 0x000053CD, - 5605: 0x000058EC, - 5606: 0x00005929, - 5607: 0x0000592B, - 5608: 0x0000592A, - 5609: 0x0000592D, - 5610: 0x00005B54, - 5611: 0x00005C11, - 5612: 0x00005C24, - 5613: 0x00005C3A, - 5614: 0x00005C6F, - 5615: 0x00005DF4, - 5616: 0x00005E7B, - 5617: 0x00005EFF, - 5618: 0x00005F14, - 5619: 0x00005F15, - 5620: 0x00005FC3, - 5621: 0x00006208, - 5622: 0x00006236, - 5623: 0x0000624B, - 5624: 0x0000624E, - 5625: 0x0000652F, - 5626: 0x00006587, - 5627: 0x00006597, - 5628: 0x000065A4, - 5629: 0x000065B9, - 5630: 0x000065E5, - 5631: 0x000066F0, - 5632: 0x00006708, - 5633: 0x00006728, - 5634: 0x00006B20, - 5635: 0x00006B62, - 5636: 0x00006B79, - 5637: 0x00006BCB, - 5638: 0x00006BD4, - 5639: 0x00006BDB, - 5640: 0x00006C0F, - 5641: 0x00006C34, - 5642: 0x0000706B, - 5643: 0x0000722A, - 5644: 0x00007236, - 5645: 0x0000723B, - 5646: 0x00007247, - 5647: 0x00007259, - 5648: 0x0000725B, - 5649: 0x000072AC, - 5650: 0x0000738B, - 5651: 0x00004E19, - 5652: 0x00004E16, - 5653: 0x00004E15, - 5654: 0x00004E14, - 5655: 0x00004E18, - 5656: 0x00004E3B, - 5657: 0x00004E4D, - 5658: 0x00004E4F, - 5659: 0x00004E4E, - 5660: 0x00004EE5, - 5661: 0x00004ED8, - 5662: 0x00004ED4, - 5663: 0x00004ED5, - 5664: 0x00004ED6, - 5665: 0x00004ED7, - 5666: 0x00004EE3, - 5667: 0x00004EE4, - 5668: 0x00004ED9, - 5669: 0x00004EDE, - 5670: 0x00005145, - 5671: 0x00005144, - 5672: 0x00005189, - 5673: 0x0000518A, - 5674: 0x000051AC, - 5675: 0x000051F9, - 5676: 0x000051FA, - 5677: 0x000051F8, - 5678: 0x0000520A, - 5679: 0x000052A0, - 5680: 0x0000529F, - 5681: 0x00005305, - 5682: 0x00005306, - 5683: 0x00005317, - 5684: 0x0000531D, - 5685: 0x00004EDF, - 5686: 0x0000534A, - 5687: 0x00005349, - 5688: 0x00005361, - 5689: 0x00005360, - 5690: 0x0000536F, - 5691: 0x0000536E, - 5692: 0x000053BB, - 5693: 0x000053EF, - 5694: 0x000053E4, - 5695: 0x000053F3, - 5696: 0x000053EC, - 5697: 0x000053EE, - 5698: 0x000053E9, - 5699: 0x000053E8, - 5700: 0x000053FC, - 5701: 0x000053F8, - 5702: 0x000053F5, - 5703: 0x000053EB, - 5704: 0x000053E6, - 5705: 0x000053EA, - 5706: 0x000053F2, - 5707: 0x000053F1, - 5708: 0x000053F0, - 5709: 0x000053E5, - 5710: 0x000053ED, - 5711: 0x000053FB, - 5712: 0x000056DB, - 5713: 0x000056DA, - 5714: 0x00005916, - 5715: 0x0000592E, - 5716: 0x00005931, - 5717: 0x00005974, - 5718: 0x00005976, - 5719: 0x00005B55, - 5720: 0x00005B83, - 5721: 0x00005C3C, - 5722: 0x00005DE8, - 5723: 0x00005DE7, - 5724: 0x00005DE6, - 5725: 0x00005E02, - 5726: 0x00005E03, - 5727: 0x00005E73, - 5728: 0x00005E7C, - 5729: 0x00005F01, - 5730: 0x00005F18, - 5731: 0x00005F17, - 5732: 0x00005FC5, - 5733: 0x0000620A, - 5734: 0x00006253, - 5735: 0x00006254, - 5736: 0x00006252, - 5737: 0x00006251, - 5738: 0x000065A5, - 5739: 0x000065E6, - 5740: 0x0000672E, - 5741: 0x0000672C, - 5742: 0x0000672A, - 5743: 0x0000672B, - 5744: 0x0000672D, - 5745: 0x00006B63, - 5746: 0x00006BCD, - 5747: 0x00006C11, - 5748: 0x00006C10, - 5749: 0x00006C38, - 5750: 0x00006C41, - 5751: 0x00006C40, - 5752: 0x00006C3E, - 5753: 0x000072AF, - 5754: 0x00007384, - 5755: 0x00007389, - 5756: 0x000074DC, - 5757: 0x000074E6, - 5758: 0x00007518, - 5759: 0x0000751F, - 5760: 0x00007528, - 5761: 0x00007529, - 5762: 0x00007530, - 5763: 0x00007531, - 5764: 0x00007532, - 5765: 0x00007533, - 5766: 0x0000758B, - 5767: 0x0000767D, - 5768: 0x000076AE, - 5769: 0x000076BF, - 5770: 0x000076EE, - 5771: 0x000077DB, - 5772: 0x000077E2, - 5773: 0x000077F3, - 5774: 0x0000793A, - 5775: 0x000079BE, - 5776: 0x00007A74, - 5777: 0x00007ACB, - 5778: 0x00004E1E, - 5779: 0x00004E1F, - 5780: 0x00004E52, - 5781: 0x00004E53, - 5782: 0x00004E69, - 5783: 0x00004E99, - 5784: 0x00004EA4, - 5785: 0x00004EA6, - 5786: 0x00004EA5, - 5787: 0x00004EFF, - 5788: 0x00004F09, - 5789: 0x00004F19, - 5790: 0x00004F0A, - 5791: 0x00004F15, - 5792: 0x00004F0D, - 5793: 0x00004F10, - 5794: 0x00004F11, - 5795: 0x00004F0F, - 5796: 0x00004EF2, - 5797: 0x00004EF6, - 5798: 0x00004EFB, - 5799: 0x00004EF0, - 5800: 0x00004EF3, - 5801: 0x00004EFD, - 5802: 0x00004F01, - 5803: 0x00004F0B, - 5804: 0x00005149, - 5805: 0x00005147, - 5806: 0x00005146, - 5807: 0x00005148, - 5808: 0x00005168, - 5809: 0x00005171, - 5810: 0x0000518D, - 5811: 0x000051B0, - 5812: 0x00005217, - 5813: 0x00005211, - 5814: 0x00005212, - 5815: 0x0000520E, - 5816: 0x00005216, - 5817: 0x000052A3, - 5818: 0x00005308, - 5819: 0x00005321, - 5820: 0x00005320, - 5821: 0x00005370, - 5822: 0x00005371, - 5823: 0x00005409, - 5824: 0x0000540F, - 5825: 0x0000540C, - 5826: 0x0000540A, - 5827: 0x00005410, - 5828: 0x00005401, - 5829: 0x0000540B, - 5830: 0x00005404, - 5831: 0x00005411, - 5832: 0x0000540D, - 5833: 0x00005408, - 5834: 0x00005403, - 5835: 0x0000540E, - 5836: 0x00005406, - 5837: 0x00005412, - 5838: 0x000056E0, - 5839: 0x000056DE, - 5840: 0x000056DD, - 5841: 0x00005733, - 5842: 0x00005730, - 5843: 0x00005728, - 5844: 0x0000572D, - 5845: 0x0000572C, - 5846: 0x0000572F, - 5847: 0x00005729, - 5848: 0x00005919, - 5849: 0x0000591A, - 5850: 0x00005937, - 5851: 0x00005938, - 5852: 0x00005984, - 5853: 0x00005978, - 5854: 0x00005983, - 5855: 0x0000597D, - 5856: 0x00005979, - 5857: 0x00005982, - 5858: 0x00005981, - 5859: 0x00005B57, - 5860: 0x00005B58, - 5861: 0x00005B87, - 5862: 0x00005B88, - 5863: 0x00005B85, - 5864: 0x00005B89, - 5865: 0x00005BFA, - 5866: 0x00005C16, - 5867: 0x00005C79, - 5868: 0x00005DDE, - 5869: 0x00005E06, - 5870: 0x00005E76, - 5871: 0x00005E74, - 5872: 0x00005F0F, - 5873: 0x00005F1B, - 5874: 0x00005FD9, - 5875: 0x00005FD6, - 5876: 0x0000620E, - 5877: 0x0000620C, - 5878: 0x0000620D, - 5879: 0x00006210, - 5880: 0x00006263, - 5881: 0x0000625B, - 5882: 0x00006258, - 5883: 0x00006536, - 5884: 0x000065E9, - 5885: 0x000065E8, - 5886: 0x000065EC, - 5887: 0x000065ED, - 5888: 0x000066F2, - 5889: 0x000066F3, - 5890: 0x00006709, - 5891: 0x0000673D, - 5892: 0x00006734, - 5893: 0x00006731, - 5894: 0x00006735, - 5895: 0x00006B21, - 5896: 0x00006B64, - 5897: 0x00006B7B, - 5898: 0x00006C16, - 5899: 0x00006C5D, - 5900: 0x00006C57, - 5901: 0x00006C59, - 5902: 0x00006C5F, - 5903: 0x00006C60, - 5904: 0x00006C50, - 5905: 0x00006C55, - 5906: 0x00006C61, - 5907: 0x00006C5B, - 5908: 0x00006C4D, - 5909: 0x00006C4E, - 5910: 0x00007070, - 5911: 0x0000725F, - 5912: 0x0000725D, - 5913: 0x0000767E, - 5914: 0x00007AF9, - 5915: 0x00007C73, - 5916: 0x00007CF8, - 5917: 0x00007F36, - 5918: 0x00007F8A, - 5919: 0x00007FBD, - 5920: 0x00008001, - 5921: 0x00008003, - 5922: 0x0000800C, - 5923: 0x00008012, - 5924: 0x00008033, - 5925: 0x0000807F, - 5926: 0x00008089, - 5927: 0x0000808B, - 5928: 0x0000808C, - 5929: 0x000081E3, - 5930: 0x000081EA, - 5931: 0x000081F3, - 5932: 0x000081FC, - 5933: 0x0000820C, - 5934: 0x0000821B, - 5935: 0x0000821F, - 5936: 0x0000826E, - 5937: 0x00008272, - 5938: 0x0000827E, - 5939: 0x0000866B, - 5940: 0x00008840, - 5941: 0x0000884C, - 5942: 0x00008863, - 5943: 0x0000897F, - 5944: 0x00009621, - 5945: 0x00004E32, - 5946: 0x00004EA8, - 5947: 0x00004F4D, - 5948: 0x00004F4F, - 5949: 0x00004F47, - 5950: 0x00004F57, - 5951: 0x00004F5E, - 5952: 0x00004F34, - 5953: 0x00004F5B, - 5954: 0x00004F55, - 5955: 0x00004F30, - 5956: 0x00004F50, - 5957: 0x00004F51, - 5958: 0x00004F3D, - 5959: 0x00004F3A, - 5960: 0x00004F38, - 5961: 0x00004F43, - 5962: 0x00004F54, - 5963: 0x00004F3C, - 5964: 0x00004F46, - 5965: 0x00004F63, - 5966: 0x00004F5C, - 5967: 0x00004F60, - 5968: 0x00004F2F, - 5969: 0x00004F4E, - 5970: 0x00004F36, - 5971: 0x00004F59, - 5972: 0x00004F5D, - 5973: 0x00004F48, - 5974: 0x00004F5A, - 5975: 0x0000514C, - 5976: 0x0000514B, - 5977: 0x0000514D, - 5978: 0x00005175, - 5979: 0x000051B6, - 5980: 0x000051B7, - 5981: 0x00005225, - 5982: 0x00005224, - 5983: 0x00005229, - 5984: 0x0000522A, - 5985: 0x00005228, - 5986: 0x000052AB, - 5987: 0x000052A9, - 5988: 0x000052AA, - 5989: 0x000052AC, - 5990: 0x00005323, - 5991: 0x00005373, - 5992: 0x00005375, - 5993: 0x0000541D, - 5994: 0x0000542D, - 5995: 0x0000541E, - 5996: 0x0000543E, - 5997: 0x00005426, - 5998: 0x0000544E, - 5999: 0x00005427, - 6000: 0x00005446, - 6001: 0x00005443, - 6002: 0x00005433, - 6003: 0x00005448, - 6004: 0x00005442, - 6005: 0x0000541B, - 6006: 0x00005429, - 6007: 0x0000544A, - 6008: 0x00005439, - 6009: 0x0000543B, - 6010: 0x00005438, - 6011: 0x0000542E, - 6012: 0x00005435, - 6013: 0x00005436, - 6014: 0x00005420, - 6015: 0x0000543C, - 6016: 0x00005440, - 6017: 0x00005431, - 6018: 0x0000542B, - 6019: 0x0000541F, - 6020: 0x0000542C, - 6021: 0x000056EA, - 6022: 0x000056F0, - 6023: 0x000056E4, - 6024: 0x000056EB, - 6025: 0x0000574A, - 6026: 0x00005751, - 6027: 0x00005740, - 6028: 0x0000574D, - 6029: 0x00005747, - 6030: 0x0000574E, - 6031: 0x0000573E, - 6032: 0x00005750, - 6033: 0x0000574F, - 6034: 0x0000573B, - 6035: 0x000058EF, - 6036: 0x0000593E, - 6037: 0x0000599D, - 6038: 0x00005992, - 6039: 0x000059A8, - 6040: 0x0000599E, - 6041: 0x000059A3, - 6042: 0x00005999, - 6043: 0x00005996, - 6044: 0x0000598D, - 6045: 0x000059A4, - 6046: 0x00005993, - 6047: 0x0000598A, - 6048: 0x000059A5, - 6049: 0x00005B5D, - 6050: 0x00005B5C, - 6051: 0x00005B5A, - 6052: 0x00005B5B, - 6053: 0x00005B8C, - 6054: 0x00005B8B, - 6055: 0x00005B8F, - 6056: 0x00005C2C, - 6057: 0x00005C40, - 6058: 0x00005C41, - 6059: 0x00005C3F, - 6060: 0x00005C3E, - 6061: 0x00005C90, - 6062: 0x00005C91, - 6063: 0x00005C94, - 6064: 0x00005C8C, - 6065: 0x00005DEB, - 6066: 0x00005E0C, - 6067: 0x00005E8F, - 6068: 0x00005E87, - 6069: 0x00005E8A, - 6070: 0x00005EF7, - 6071: 0x00005F04, - 6072: 0x00005F1F, - 6073: 0x00005F64, - 6074: 0x00005F62, - 6075: 0x00005F77, - 6076: 0x00005F79, - 6077: 0x00005FD8, - 6078: 0x00005FCC, - 6079: 0x00005FD7, - 6080: 0x00005FCD, - 6081: 0x00005FF1, - 6082: 0x00005FEB, - 6083: 0x00005FF8, - 6084: 0x00005FEA, - 6085: 0x00006212, - 6086: 0x00006211, - 6087: 0x00006284, - 6088: 0x00006297, - 6089: 0x00006296, - 6090: 0x00006280, - 6091: 0x00006276, - 6092: 0x00006289, - 6093: 0x0000626D, - 6094: 0x0000628A, - 6095: 0x0000627C, - 6096: 0x0000627E, - 6097: 0x00006279, - 6098: 0x00006273, - 6099: 0x00006292, - 6100: 0x0000626F, - 6101: 0x00006298, - 6102: 0x0000626E, - 6103: 0x00006295, - 6104: 0x00006293, - 6105: 0x00006291, - 6106: 0x00006286, - 6107: 0x00006539, - 6108: 0x0000653B, - 6109: 0x00006538, - 6110: 0x000065F1, - 6111: 0x000066F4, - 6112: 0x0000675F, - 6113: 0x0000674E, - 6114: 0x0000674F, - 6115: 0x00006750, - 6116: 0x00006751, - 6117: 0x0000675C, - 6118: 0x00006756, - 6119: 0x0000675E, - 6120: 0x00006749, - 6121: 0x00006746, - 6122: 0x00006760, - 6123: 0x00006753, - 6124: 0x00006757, - 6125: 0x00006B65, - 6126: 0x00006BCF, - 6127: 0x00006C42, - 6128: 0x00006C5E, - 6129: 0x00006C99, - 6130: 0x00006C81, - 6131: 0x00006C88, - 6132: 0x00006C89, - 6133: 0x00006C85, - 6134: 0x00006C9B, - 6135: 0x00006C6A, - 6136: 0x00006C7A, - 6137: 0x00006C90, - 6138: 0x00006C70, - 6139: 0x00006C8C, - 6140: 0x00006C68, - 6141: 0x00006C96, - 6142: 0x00006C92, - 6143: 0x00006C7D, - 6144: 0x00006C83, - 6145: 0x00006C72, - 6146: 0x00006C7E, - 6147: 0x00006C74, - 6148: 0x00006C86, - 6149: 0x00006C76, - 6150: 0x00006C8D, - 6151: 0x00006C94, - 6152: 0x00006C98, - 6153: 0x00006C82, - 6154: 0x00007076, - 6155: 0x0000707C, - 6156: 0x0000707D, - 6157: 0x00007078, - 6158: 0x00007262, - 6159: 0x00007261, - 6160: 0x00007260, - 6161: 0x000072C4, - 6162: 0x000072C2, - 6163: 0x00007396, - 6164: 0x0000752C, - 6165: 0x0000752B, - 6166: 0x00007537, - 6167: 0x00007538, - 6168: 0x00007682, - 6169: 0x000076EF, - 6170: 0x000077E3, - 6171: 0x000079C1, - 6172: 0x000079C0, - 6173: 0x000079BF, - 6174: 0x00007A76, - 6175: 0x00007CFB, - 6176: 0x00007F55, - 6177: 0x00008096, - 6178: 0x00008093, - 6179: 0x0000809D, - 6180: 0x00008098, - 6181: 0x0000809B, - 6182: 0x0000809A, - 6183: 0x000080B2, - 6184: 0x0000826F, - 6185: 0x00008292, - 6186: 0x0000828B, - 6187: 0x0000828D, - 6188: 0x0000898B, - 6189: 0x000089D2, - 6190: 0x00008A00, - 6191: 0x00008C37, - 6192: 0x00008C46, - 6193: 0x00008C55, - 6194: 0x00008C9D, - 6195: 0x00008D64, - 6196: 0x00008D70, - 6197: 0x00008DB3, - 6198: 0x00008EAB, - 6199: 0x00008ECA, - 6200: 0x00008F9B, - 6201: 0x00008FB0, - 6202: 0x00008FC2, - 6203: 0x00008FC6, - 6204: 0x00008FC5, - 6205: 0x00008FC4, - 6206: 0x00005DE1, - 6207: 0x00009091, - 6208: 0x000090A2, - 6209: 0x000090AA, - 6210: 0x000090A6, - 6211: 0x000090A3, - 6212: 0x00009149, - 6213: 0x000091C6, - 6214: 0x000091CC, - 6215: 0x00009632, - 6216: 0x0000962E, - 6217: 0x00009631, - 6218: 0x0000962A, - 6219: 0x0000962C, - 6220: 0x00004E26, - 6221: 0x00004E56, - 6222: 0x00004E73, - 6223: 0x00004E8B, - 6224: 0x00004E9B, - 6225: 0x00004E9E, - 6226: 0x00004EAB, - 6227: 0x00004EAC, - 6228: 0x00004F6F, - 6229: 0x00004F9D, - 6230: 0x00004F8D, - 6231: 0x00004F73, - 6232: 0x00004F7F, - 6233: 0x00004F6C, - 6234: 0x00004F9B, - 6235: 0x00004F8B, - 6236: 0x00004F86, - 6237: 0x00004F83, - 6238: 0x00004F70, - 6239: 0x00004F75, - 6240: 0x00004F88, - 6241: 0x00004F69, - 6242: 0x00004F7B, - 6243: 0x00004F96, - 6244: 0x00004F7E, - 6245: 0x00004F8F, - 6246: 0x00004F91, - 6247: 0x00004F7A, - 6248: 0x00005154, - 6249: 0x00005152, - 6250: 0x00005155, - 6251: 0x00005169, - 6252: 0x00005177, - 6253: 0x00005176, - 6254: 0x00005178, - 6255: 0x000051BD, - 6256: 0x000051FD, - 6257: 0x0000523B, - 6258: 0x00005238, - 6259: 0x00005237, - 6260: 0x0000523A, - 6261: 0x00005230, - 6262: 0x0000522E, - 6263: 0x00005236, - 6264: 0x00005241, - 6265: 0x000052BE, - 6266: 0x000052BB, - 6267: 0x00005352, - 6268: 0x00005354, - 6269: 0x00005353, - 6270: 0x00005351, - 6271: 0x00005366, - 6272: 0x00005377, - 6273: 0x00005378, - 6274: 0x00005379, - 6275: 0x000053D6, - 6276: 0x000053D4, - 6277: 0x000053D7, - 6278: 0x00005473, - 6279: 0x00005475, - 6280: 0x00005496, - 6281: 0x00005478, - 6282: 0x00005495, - 6283: 0x00005480, - 6284: 0x0000547B, - 6285: 0x00005477, - 6286: 0x00005484, - 6287: 0x00005492, - 6288: 0x00005486, - 6289: 0x0000547C, - 6290: 0x00005490, - 6291: 0x00005471, - 6292: 0x00005476, - 6293: 0x0000548C, - 6294: 0x0000549A, - 6295: 0x00005462, - 6296: 0x00005468, - 6297: 0x0000548B, - 6298: 0x0000547D, - 6299: 0x0000548E, - 6300: 0x000056FA, - 6301: 0x00005783, - 6302: 0x00005777, - 6303: 0x0000576A, - 6304: 0x00005769, - 6305: 0x00005761, - 6306: 0x00005766, - 6307: 0x00005764, - 6308: 0x0000577C, - 6309: 0x0000591C, - 6310: 0x00005949, - 6311: 0x00005947, - 6312: 0x00005948, - 6313: 0x00005944, - 6314: 0x00005954, - 6315: 0x000059BE, - 6316: 0x000059BB, - 6317: 0x000059D4, - 6318: 0x000059B9, - 6319: 0x000059AE, - 6320: 0x000059D1, - 6321: 0x000059C6, - 6322: 0x000059D0, - 6323: 0x000059CD, - 6324: 0x000059CB, - 6325: 0x000059D3, - 6326: 0x000059CA, - 6327: 0x000059AF, - 6328: 0x000059B3, - 6329: 0x000059D2, - 6330: 0x000059C5, - 6331: 0x00005B5F, - 6332: 0x00005B64, - 6333: 0x00005B63, - 6334: 0x00005B97, - 6335: 0x00005B9A, - 6336: 0x00005B98, - 6337: 0x00005B9C, - 6338: 0x00005B99, - 6339: 0x00005B9B, - 6340: 0x00005C1A, - 6341: 0x00005C48, - 6342: 0x00005C45, - 6343: 0x00005C46, - 6344: 0x00005CB7, - 6345: 0x00005CA1, - 6346: 0x00005CB8, - 6347: 0x00005CA9, - 6348: 0x00005CAB, - 6349: 0x00005CB1, - 6350: 0x00005CB3, - 6351: 0x00005E18, - 6352: 0x00005E1A, - 6353: 0x00005E16, - 6354: 0x00005E15, - 6355: 0x00005E1B, - 6356: 0x00005E11, - 6357: 0x00005E78, - 6358: 0x00005E9A, - 6359: 0x00005E97, - 6360: 0x00005E9C, - 6361: 0x00005E95, - 6362: 0x00005E96, - 6363: 0x00005EF6, - 6364: 0x00005F26, - 6365: 0x00005F27, - 6366: 0x00005F29, - 6367: 0x00005F80, - 6368: 0x00005F81, - 6369: 0x00005F7F, - 6370: 0x00005F7C, - 6371: 0x00005FDD, - 6372: 0x00005FE0, - 6373: 0x00005FFD, - 6374: 0x00005FF5, - 6375: 0x00005FFF, - 6376: 0x0000600F, - 6377: 0x00006014, - 6378: 0x0000602F, - 6379: 0x00006035, - 6380: 0x00006016, - 6381: 0x0000602A, - 6382: 0x00006015, - 6383: 0x00006021, - 6384: 0x00006027, - 6385: 0x00006029, - 6386: 0x0000602B, - 6387: 0x0000601B, - 6388: 0x00006216, - 6389: 0x00006215, - 6390: 0x0000623F, - 6391: 0x0000623E, - 6392: 0x00006240, - 6393: 0x0000627F, - 6394: 0x000062C9, - 6395: 0x000062CC, - 6396: 0x000062C4, - 6397: 0x000062BF, - 6398: 0x000062C2, - 6399: 0x000062B9, - 6400: 0x000062D2, - 6401: 0x000062DB, - 6402: 0x000062AB, - 6403: 0x000062D3, - 6404: 0x000062D4, - 6405: 0x000062CB, - 6406: 0x000062C8, - 6407: 0x000062A8, - 6408: 0x000062BD, - 6409: 0x000062BC, - 6410: 0x000062D0, - 6411: 0x000062D9, - 6412: 0x000062C7, - 6413: 0x000062CD, - 6414: 0x000062B5, - 6415: 0x000062DA, - 6416: 0x000062B1, - 6417: 0x000062D8, - 6418: 0x000062D6, - 6419: 0x000062D7, - 6420: 0x000062C6, - 6421: 0x000062AC, - 6422: 0x000062CE, - 6423: 0x0000653E, - 6424: 0x000065A7, - 6425: 0x000065BC, - 6426: 0x000065FA, - 6427: 0x00006614, - 6428: 0x00006613, - 6429: 0x0000660C, - 6430: 0x00006606, - 6431: 0x00006602, - 6432: 0x0000660E, - 6433: 0x00006600, - 6434: 0x0000660F, - 6435: 0x00006615, - 6436: 0x0000660A, - 6437: 0x00006607, - 6438: 0x0000670D, - 6439: 0x0000670B, - 6440: 0x0000676D, - 6441: 0x0000678B, - 6442: 0x00006795, - 6443: 0x00006771, - 6444: 0x0000679C, - 6445: 0x00006773, - 6446: 0x00006777, - 6447: 0x00006787, - 6448: 0x0000679D, - 6449: 0x00006797, - 6450: 0x0000676F, - 6451: 0x00006770, - 6452: 0x0000677F, - 6453: 0x00006789, - 6454: 0x0000677E, - 6455: 0x00006790, - 6456: 0x00006775, - 6457: 0x0000679A, - 6458: 0x00006793, - 6459: 0x0000677C, - 6460: 0x0000676A, - 6461: 0x00006772, - 6462: 0x00006B23, - 6463: 0x00006B66, - 6464: 0x00006B67, - 6465: 0x00006B7F, - 6466: 0x00006C13, - 6467: 0x00006C1B, - 6468: 0x00006CE3, - 6469: 0x00006CE8, - 6470: 0x00006CF3, - 6471: 0x00006CB1, - 6472: 0x00006CCC, - 6473: 0x00006CE5, - 6474: 0x00006CB3, - 6475: 0x00006CBD, - 6476: 0x00006CBE, - 6477: 0x00006CBC, - 6478: 0x00006CE2, - 6479: 0x00006CAB, - 6480: 0x00006CD5, - 6481: 0x00006CD3, - 6482: 0x00006CB8, - 6483: 0x00006CC4, - 6484: 0x00006CB9, - 6485: 0x00006CC1, - 6486: 0x00006CAE, - 6487: 0x00006CD7, - 6488: 0x00006CC5, - 6489: 0x00006CF1, - 6490: 0x00006CBF, - 6491: 0x00006CBB, - 6492: 0x00006CE1, - 6493: 0x00006CDB, - 6494: 0x00006CCA, - 6495: 0x00006CAC, - 6496: 0x00006CEF, - 6497: 0x00006CDC, - 6498: 0x00006CD6, - 6499: 0x00006CE0, - 6500: 0x00007095, - 6501: 0x0000708E, - 6502: 0x00007092, - 6503: 0x0000708A, - 6504: 0x00007099, - 6505: 0x0000722C, - 6506: 0x0000722D, - 6507: 0x00007238, - 6508: 0x00007248, - 6509: 0x00007267, - 6510: 0x00007269, - 6511: 0x000072C0, - 6512: 0x000072CE, - 6513: 0x000072D9, - 6514: 0x000072D7, - 6515: 0x000072D0, - 6516: 0x000073A9, - 6517: 0x000073A8, - 6518: 0x0000739F, - 6519: 0x000073AB, - 6520: 0x000073A5, - 6521: 0x0000753D, - 6522: 0x0000759D, - 6523: 0x00007599, - 6524: 0x0000759A, - 6525: 0x00007684, - 6526: 0x000076C2, - 6527: 0x000076F2, - 6528: 0x000076F4, - 6529: 0x000077E5, - 6530: 0x000077FD, - 6531: 0x0000793E, - 6532: 0x00007940, - 6533: 0x00007941, - 6534: 0x000079C9, - 6535: 0x000079C8, - 6536: 0x00007A7A, - 6537: 0x00007A79, - 6538: 0x00007AFA, - 6539: 0x00007CFE, - 6540: 0x00007F54, - 6541: 0x00007F8C, - 6542: 0x00007F8B, - 6543: 0x00008005, - 6544: 0x000080BA, - 6545: 0x000080A5, - 6546: 0x000080A2, - 6547: 0x000080B1, - 6548: 0x000080A1, - 6549: 0x000080AB, - 6550: 0x000080A9, - 6551: 0x000080B4, - 6552: 0x000080AA, - 6553: 0x000080AF, - 6554: 0x000081E5, - 6555: 0x000081FE, - 6556: 0x0000820D, - 6557: 0x000082B3, - 6558: 0x0000829D, - 6559: 0x00008299, - 6560: 0x000082AD, - 6561: 0x000082BD, - 6562: 0x0000829F, - 6563: 0x000082B9, - 6564: 0x000082B1, - 6565: 0x000082AC, - 6566: 0x000082A5, - 6567: 0x000082AF, - 6568: 0x000082B8, - 6569: 0x000082A3, - 6570: 0x000082B0, - 6571: 0x000082BE, - 6572: 0x000082B7, - 6573: 0x0000864E, - 6574: 0x00008671, - 6575: 0x0000521D, - 6576: 0x00008868, - 6577: 0x00008ECB, - 6578: 0x00008FCE, - 6579: 0x00008FD4, - 6580: 0x00008FD1, - 6581: 0x000090B5, - 6582: 0x000090B8, - 6583: 0x000090B1, - 6584: 0x000090B6, - 6585: 0x000091C7, - 6586: 0x000091D1, - 6587: 0x00009577, - 6588: 0x00009580, - 6589: 0x0000961C, - 6590: 0x00009640, - 6591: 0x0000963F, - 6592: 0x0000963B, - 6593: 0x00009644, - 6594: 0x00009642, - 6595: 0x000096B9, - 6596: 0x000096E8, - 6597: 0x00009752, - 6598: 0x0000975E, - 6599: 0x00004E9F, - 6600: 0x00004EAD, - 6601: 0x00004EAE, - 6602: 0x00004FE1, - 6603: 0x00004FB5, - 6604: 0x00004FAF, - 6605: 0x00004FBF, - 6606: 0x00004FE0, - 6607: 0x00004FD1, - 6608: 0x00004FCF, - 6609: 0x00004FDD, - 6610: 0x00004FC3, - 6611: 0x00004FB6, - 6612: 0x00004FD8, - 6613: 0x00004FDF, - 6614: 0x00004FCA, - 6615: 0x00004FD7, - 6616: 0x00004FAE, - 6617: 0x00004FD0, - 6618: 0x00004FC4, - 6619: 0x00004FC2, - 6620: 0x00004FDA, - 6621: 0x00004FCE, - 6622: 0x00004FDE, - 6623: 0x00004FB7, - 6624: 0x00005157, - 6625: 0x00005192, - 6626: 0x00005191, - 6627: 0x000051A0, - 6628: 0x0000524E, - 6629: 0x00005243, - 6630: 0x0000524A, - 6631: 0x0000524D, - 6632: 0x0000524C, - 6633: 0x0000524B, - 6634: 0x00005247, - 6635: 0x000052C7, - 6636: 0x000052C9, - 6637: 0x000052C3, - 6638: 0x000052C1, - 6639: 0x0000530D, - 6640: 0x00005357, - 6641: 0x0000537B, - 6642: 0x0000539A, - 6643: 0x000053DB, - 6644: 0x000054AC, - 6645: 0x000054C0, - 6646: 0x000054A8, - 6647: 0x000054CE, - 6648: 0x000054C9, - 6649: 0x000054B8, - 6650: 0x000054A6, - 6651: 0x000054B3, - 6652: 0x000054C7, - 6653: 0x000054C2, - 6654: 0x000054BD, - 6655: 0x000054AA, - 6656: 0x000054C1, - 6657: 0x000054C4, - 6658: 0x000054C8, - 6659: 0x000054AF, - 6660: 0x000054AB, - 6661: 0x000054B1, - 6662: 0x000054BB, - 6663: 0x000054A9, - 6664: 0x000054A7, - 6665: 0x000054BF, - 6666: 0x000056FF, - 6667: 0x00005782, - 6668: 0x0000578B, - 6669: 0x000057A0, - 6670: 0x000057A3, - 6671: 0x000057A2, - 6672: 0x000057CE, - 6673: 0x000057AE, - 6674: 0x00005793, - 6675: 0x00005955, - 6676: 0x00005951, - 6677: 0x0000594F, - 6678: 0x0000594E, - 6679: 0x00005950, - 6680: 0x000059DC, - 6681: 0x000059D8, - 6682: 0x000059FF, - 6683: 0x000059E3, - 6684: 0x000059E8, - 6685: 0x00005A03, - 6686: 0x000059E5, - 6687: 0x000059EA, - 6688: 0x000059DA, - 6689: 0x000059E6, - 6690: 0x00005A01, - 6691: 0x000059FB, - 6692: 0x00005B69, - 6693: 0x00005BA3, - 6694: 0x00005BA6, - 6695: 0x00005BA4, - 6696: 0x00005BA2, - 6697: 0x00005BA5, - 6698: 0x00005C01, - 6699: 0x00005C4E, - 6700: 0x00005C4F, - 6701: 0x00005C4D, - 6702: 0x00005C4B, - 6703: 0x00005CD9, - 6704: 0x00005CD2, - 6705: 0x00005DF7, - 6706: 0x00005E1D, - 6707: 0x00005E25, - 6708: 0x00005E1F, - 6709: 0x00005E7D, - 6710: 0x00005EA0, - 6711: 0x00005EA6, - 6712: 0x00005EFA, - 6713: 0x00005F08, - 6714: 0x00005F2D, - 6715: 0x00005F65, - 6716: 0x00005F88, - 6717: 0x00005F85, - 6718: 0x00005F8A, - 6719: 0x00005F8B, - 6720: 0x00005F87, - 6721: 0x00005F8C, - 6722: 0x00005F89, - 6723: 0x00006012, - 6724: 0x0000601D, - 6725: 0x00006020, - 6726: 0x00006025, - 6727: 0x0000600E, - 6728: 0x00006028, - 6729: 0x0000604D, - 6730: 0x00006070, - 6731: 0x00006068, - 6732: 0x00006062, - 6733: 0x00006046, - 6734: 0x00006043, - 6735: 0x0000606C, - 6736: 0x0000606B, - 6737: 0x0000606A, - 6738: 0x00006064, - 6739: 0x00006241, - 6740: 0x000062DC, - 6741: 0x00006316, - 6742: 0x00006309, - 6743: 0x000062FC, - 6744: 0x000062ED, - 6745: 0x00006301, - 6746: 0x000062EE, - 6747: 0x000062FD, - 6748: 0x00006307, - 6749: 0x000062F1, - 6750: 0x000062F7, - 6751: 0x000062EF, - 6752: 0x000062EC, - 6753: 0x000062FE, - 6754: 0x000062F4, - 6755: 0x00006311, - 6756: 0x00006302, - 6757: 0x0000653F, - 6758: 0x00006545, - 6759: 0x000065AB, - 6760: 0x000065BD, - 6761: 0x000065E2, - 6762: 0x00006625, - 6763: 0x0000662D, - 6764: 0x00006620, - 6765: 0x00006627, - 6766: 0x0000662F, - 6767: 0x0000661F, - 6768: 0x00006628, - 6769: 0x00006631, - 6770: 0x00006624, - 6771: 0x000066F7, - 6772: 0x000067FF, - 6773: 0x000067D3, - 6774: 0x000067F1, - 6775: 0x000067D4, - 6776: 0x000067D0, - 6777: 0x000067EC, - 6778: 0x000067B6, - 6779: 0x000067AF, - 6780: 0x000067F5, - 6781: 0x000067E9, - 6782: 0x000067EF, - 6783: 0x000067C4, - 6784: 0x000067D1, - 6785: 0x000067B4, - 6786: 0x000067DA, - 6787: 0x000067E5, - 6788: 0x000067B8, - 6789: 0x000067CF, - 6790: 0x000067DE, - 6791: 0x000067F3, - 6792: 0x000067B0, - 6793: 0x000067D9, - 6794: 0x000067E2, - 6795: 0x000067DD, - 6796: 0x000067D2, - 6797: 0x00006B6A, - 6798: 0x00006B83, - 6799: 0x00006B86, - 6800: 0x00006BB5, - 6801: 0x00006BD2, - 6802: 0x00006BD7, - 6803: 0x00006C1F, - 6804: 0x00006CC9, - 6805: 0x00006D0B, - 6806: 0x00006D32, - 6807: 0x00006D2A, - 6808: 0x00006D41, - 6809: 0x00006D25, - 6810: 0x00006D0C, - 6811: 0x00006D31, - 6812: 0x00006D1E, - 6813: 0x00006D17, - 6814: 0x00006D3B, - 6815: 0x00006D3D, - 6816: 0x00006D3E, - 6817: 0x00006D36, - 6818: 0x00006D1B, - 6819: 0x00006CF5, - 6820: 0x00006D39, - 6821: 0x00006D27, - 6822: 0x00006D38, - 6823: 0x00006D29, - 6824: 0x00006D2E, - 6825: 0x00006D35, - 6826: 0x00006D0E, - 6827: 0x00006D2B, - 6828: 0x000070AB, - 6829: 0x000070BA, - 6830: 0x000070B3, - 6831: 0x000070AC, - 6832: 0x000070AF, - 6833: 0x000070AD, - 6834: 0x000070B8, - 6835: 0x000070AE, - 6836: 0x000070A4, - 6837: 0x00007230, - 6838: 0x00007272, - 6839: 0x0000726F, - 6840: 0x00007274, - 6841: 0x000072E9, - 6842: 0x000072E0, - 6843: 0x000072E1, - 6844: 0x000073B7, - 6845: 0x000073CA, - 6846: 0x000073BB, - 6847: 0x000073B2, - 6848: 0x000073CD, - 6849: 0x000073C0, - 6850: 0x000073B3, - 6851: 0x0000751A, - 6852: 0x0000752D, - 6853: 0x0000754F, - 6854: 0x0000754C, - 6855: 0x0000754E, - 6856: 0x0000754B, - 6857: 0x000075AB, - 6858: 0x000075A4, - 6859: 0x000075A5, - 6860: 0x000075A2, - 6861: 0x000075A3, - 6862: 0x00007678, - 6863: 0x00007686, - 6864: 0x00007687, - 6865: 0x00007688, - 6866: 0x000076C8, - 6867: 0x000076C6, - 6868: 0x000076C3, - 6869: 0x000076C5, - 6870: 0x00007701, - 6871: 0x000076F9, - 6872: 0x000076F8, - 6873: 0x00007709, - 6874: 0x0000770B, - 6875: 0x000076FE, - 6876: 0x000076FC, - 6877: 0x00007707, - 6878: 0x000077DC, - 6879: 0x00007802, - 6880: 0x00007814, - 6881: 0x0000780C, - 6882: 0x0000780D, - 6883: 0x00007946, - 6884: 0x00007949, - 6885: 0x00007948, - 6886: 0x00007947, - 6887: 0x000079B9, - 6888: 0x000079BA, - 6889: 0x000079D1, - 6890: 0x000079D2, - 6891: 0x000079CB, - 6892: 0x00007A7F, - 6893: 0x00007A81, - 6894: 0x00007AFF, - 6895: 0x00007AFD, - 6896: 0x00007C7D, - 6897: 0x00007D02, - 6898: 0x00007D05, - 6899: 0x00007D00, - 6900: 0x00007D09, - 6901: 0x00007D07, - 6902: 0x00007D04, - 6903: 0x00007D06, - 6904: 0x00007F38, - 6905: 0x00007F8E, - 6906: 0x00007FBF, - 6907: 0x00008004, - 6908: 0x00008010, - 6909: 0x0000800D, - 6910: 0x00008011, - 6911: 0x00008036, - 6912: 0x000080D6, - 6913: 0x000080E5, - 6914: 0x000080DA, - 6915: 0x000080C3, - 6916: 0x000080C4, - 6917: 0x000080CC, - 6918: 0x000080E1, - 6919: 0x000080DB, - 6920: 0x000080CE, - 6921: 0x000080DE, - 6922: 0x000080E4, - 6923: 0x000080DD, - 6924: 0x000081F4, - 6925: 0x00008222, - 6926: 0x000082E7, - 6927: 0x00008303, - 6928: 0x00008305, - 6929: 0x000082E3, - 6930: 0x000082DB, - 6931: 0x000082E6, - 6932: 0x00008304, - 6933: 0x000082E5, - 6934: 0x00008302, - 6935: 0x00008309, - 6936: 0x000082D2, - 6937: 0x000082D7, - 6938: 0x000082F1, - 6939: 0x00008301, - 6940: 0x000082DC, - 6941: 0x000082D4, - 6942: 0x000082D1, - 6943: 0x000082DE, - 6944: 0x000082D3, - 6945: 0x000082DF, - 6946: 0x000082EF, - 6947: 0x00008306, - 6948: 0x00008650, - 6949: 0x00008679, - 6950: 0x0000867B, - 6951: 0x0000867A, - 6952: 0x0000884D, - 6953: 0x0000886B, - 6954: 0x00008981, - 6955: 0x000089D4, - 6956: 0x00008A08, - 6957: 0x00008A02, - 6958: 0x00008A03, - 6959: 0x00008C9E, - 6960: 0x00008CA0, - 6961: 0x00008D74, - 6962: 0x00008D73, - 6963: 0x00008DB4, - 6964: 0x00008ECD, - 6965: 0x00008ECC, - 6966: 0x00008FF0, - 6967: 0x00008FE6, - 6968: 0x00008FE2, - 6969: 0x00008FEA, - 6970: 0x00008FE5, - 6971: 0x00008FED, - 6972: 0x00008FEB, - 6973: 0x00008FE4, - 6974: 0x00008FE8, - 6975: 0x000090CA, - 6976: 0x000090CE, - 6977: 0x000090C1, - 6978: 0x000090C3, - 6979: 0x0000914B, - 6980: 0x0000914A, - 6981: 0x000091CD, - 6982: 0x00009582, - 6983: 0x00009650, - 6984: 0x0000964B, - 6985: 0x0000964C, - 6986: 0x0000964D, - 6987: 0x00009762, - 6988: 0x00009769, - 6989: 0x000097CB, - 6990: 0x000097ED, - 6991: 0x000097F3, - 6992: 0x00009801, - 6993: 0x000098A8, - 6994: 0x000098DB, - 6995: 0x000098DF, - 6996: 0x00009996, - 6997: 0x00009999, - 6998: 0x00004E58, - 6999: 0x00004EB3, - 7000: 0x0000500C, - 7001: 0x0000500D, - 7002: 0x00005023, - 7003: 0x00004FEF, - 7004: 0x00005026, - 7005: 0x00005025, - 7006: 0x00004FF8, - 7007: 0x00005029, - 7008: 0x00005016, - 7009: 0x00005006, - 7010: 0x0000503C, - 7011: 0x0000501F, - 7012: 0x0000501A, - 7013: 0x00005012, - 7014: 0x00005011, - 7015: 0x00004FFA, - 7016: 0x00005000, - 7017: 0x00005014, - 7018: 0x00005028, - 7019: 0x00004FF1, - 7020: 0x00005021, - 7021: 0x0000500B, - 7022: 0x00005019, - 7023: 0x00005018, - 7024: 0x00004FF3, - 7025: 0x00004FEE, - 7026: 0x0000502D, - 7027: 0x0000502A, - 7028: 0x00004FFE, - 7029: 0x0000502B, - 7030: 0x00005009, - 7031: 0x0000517C, - 7032: 0x000051A4, - 7033: 0x000051A5, - 7034: 0x000051A2, - 7035: 0x000051CD, - 7036: 0x000051CC, - 7037: 0x000051C6, - 7038: 0x000051CB, - 7039: 0x00005256, - 7040: 0x0000525C, - 7041: 0x00005254, - 7042: 0x0000525B, - 7043: 0x0000525D, - 7044: 0x0000532A, - 7045: 0x0000537F, - 7046: 0x0000539F, - 7047: 0x0000539D, - 7048: 0x000053DF, - 7049: 0x000054E8, - 7050: 0x00005510, - 7051: 0x00005501, - 7052: 0x00005537, - 7053: 0x000054FC, - 7054: 0x000054E5, - 7055: 0x000054F2, - 7056: 0x00005506, - 7057: 0x000054FA, - 7058: 0x00005514, - 7059: 0x000054E9, - 7060: 0x000054ED, - 7061: 0x000054E1, - 7062: 0x00005509, - 7063: 0x000054EE, - 7064: 0x000054EA, - 7065: 0x000054E6, - 7066: 0x00005527, - 7067: 0x00005507, - 7068: 0x000054FD, - 7069: 0x0000550F, - 7070: 0x00005703, - 7071: 0x00005704, - 7072: 0x000057C2, - 7073: 0x000057D4, - 7074: 0x000057CB, - 7075: 0x000057C3, - 7076: 0x00005809, - 7077: 0x0000590F, - 7078: 0x00005957, - 7079: 0x00005958, - 7080: 0x0000595A, - 7081: 0x00005A11, - 7082: 0x00005A18, - 7083: 0x00005A1C, - 7084: 0x00005A1F, - 7085: 0x00005A1B, - 7086: 0x00005A13, - 7087: 0x000059EC, - 7088: 0x00005A20, - 7089: 0x00005A23, - 7090: 0x00005A29, - 7091: 0x00005A25, - 7092: 0x00005A0C, - 7093: 0x00005A09, - 7094: 0x00005B6B, - 7095: 0x00005C58, - 7096: 0x00005BB0, - 7097: 0x00005BB3, - 7098: 0x00005BB6, - 7099: 0x00005BB4, - 7100: 0x00005BAE, - 7101: 0x00005BB5, - 7102: 0x00005BB9, - 7103: 0x00005BB8, - 7104: 0x00005C04, - 7105: 0x00005C51, - 7106: 0x00005C55, - 7107: 0x00005C50, - 7108: 0x00005CED, - 7109: 0x00005CFD, - 7110: 0x00005CFB, - 7111: 0x00005CEA, - 7112: 0x00005CE8, - 7113: 0x00005CF0, - 7114: 0x00005CF6, - 7115: 0x00005D01, - 7116: 0x00005CF4, - 7117: 0x00005DEE, - 7118: 0x00005E2D, - 7119: 0x00005E2B, - 7120: 0x00005EAB, - 7121: 0x00005EAD, - 7122: 0x00005EA7, - 7123: 0x00005F31, - 7124: 0x00005F92, - 7125: 0x00005F91, - 7126: 0x00005F90, - 7127: 0x00006059, - 7128: 0x00006063, - 7129: 0x00006065, - 7130: 0x00006050, - 7131: 0x00006055, - 7132: 0x0000606D, - 7133: 0x00006069, - 7134: 0x0000606F, - 7135: 0x00006084, - 7136: 0x0000609F, - 7137: 0x0000609A, - 7138: 0x0000608D, - 7139: 0x00006094, - 7140: 0x0000608C, - 7141: 0x00006085, - 7142: 0x00006096, - 7143: 0x00006247, - 7144: 0x000062F3, - 7145: 0x00006308, - 7146: 0x000062FF, - 7147: 0x0000634E, - 7148: 0x0000633E, - 7149: 0x0000632F, - 7150: 0x00006355, - 7151: 0x00006342, - 7152: 0x00006346, - 7153: 0x0000634F, - 7154: 0x00006349, - 7155: 0x0000633A, - 7156: 0x00006350, - 7157: 0x0000633D, - 7158: 0x0000632A, - 7159: 0x0000632B, - 7160: 0x00006328, - 7161: 0x0000634D, - 7162: 0x0000634C, - 7163: 0x00006548, - 7164: 0x00006549, - 7165: 0x00006599, - 7166: 0x000065C1, - 7167: 0x000065C5, - 7168: 0x00006642, - 7169: 0x00006649, - 7170: 0x0000664F, - 7171: 0x00006643, - 7172: 0x00006652, - 7173: 0x0000664C, - 7174: 0x00006645, - 7175: 0x00006641, - 7176: 0x000066F8, - 7177: 0x00006714, - 7178: 0x00006715, - 7179: 0x00006717, - 7180: 0x00006821, - 7181: 0x00006838, - 7182: 0x00006848, - 7183: 0x00006846, - 7184: 0x00006853, - 7185: 0x00006839, - 7186: 0x00006842, - 7187: 0x00006854, - 7188: 0x00006829, - 7189: 0x000068B3, - 7190: 0x00006817, - 7191: 0x0000684C, - 7192: 0x00006851, - 7193: 0x0000683D, - 7194: 0x000067F4, - 7195: 0x00006850, - 7196: 0x00006840, - 7197: 0x0000683C, - 7198: 0x00006843, - 7199: 0x0000682A, - 7200: 0x00006845, - 7201: 0x00006813, - 7202: 0x00006818, - 7203: 0x00006841, - 7204: 0x00006B8A, - 7205: 0x00006B89, - 7206: 0x00006BB7, - 7207: 0x00006C23, - 7208: 0x00006C27, - 7209: 0x00006C28, - 7210: 0x00006C26, - 7211: 0x00006C24, - 7212: 0x00006CF0, - 7213: 0x00006D6A, - 7214: 0x00006D95, - 7215: 0x00006D88, - 7216: 0x00006D87, - 7217: 0x00006D66, - 7218: 0x00006D78, - 7219: 0x00006D77, - 7220: 0x00006D59, - 7221: 0x00006D93, - 7222: 0x00006D6C, - 7223: 0x00006D89, - 7224: 0x00006D6E, - 7225: 0x00006D5A, - 7226: 0x00006D74, - 7227: 0x00006D69, - 7228: 0x00006D8C, - 7229: 0x00006D8A, - 7230: 0x00006D79, - 7231: 0x00006D85, - 7232: 0x00006D65, - 7233: 0x00006D94, - 7234: 0x000070CA, - 7235: 0x000070D8, - 7236: 0x000070E4, - 7237: 0x000070D9, - 7238: 0x000070C8, - 7239: 0x000070CF, - 7240: 0x00007239, - 7241: 0x00007279, - 7242: 0x000072FC, - 7243: 0x000072F9, - 7244: 0x000072FD, - 7245: 0x000072F8, - 7246: 0x000072F7, - 7247: 0x00007386, - 7248: 0x000073ED, - 7249: 0x00007409, - 7250: 0x000073EE, - 7251: 0x000073E0, - 7252: 0x000073EA, - 7253: 0x000073DE, - 7254: 0x00007554, - 7255: 0x0000755D, - 7256: 0x0000755C, - 7257: 0x0000755A, - 7258: 0x00007559, - 7259: 0x000075BE, - 7260: 0x000075C5, - 7261: 0x000075C7, - 7262: 0x000075B2, - 7263: 0x000075B3, - 7264: 0x000075BD, - 7265: 0x000075BC, - 7266: 0x000075B9, - 7267: 0x000075C2, - 7268: 0x000075B8, - 7269: 0x0000768B, - 7270: 0x000076B0, - 7271: 0x000076CA, - 7272: 0x000076CD, - 7273: 0x000076CE, - 7274: 0x00007729, - 7275: 0x0000771F, - 7276: 0x00007720, - 7277: 0x00007728, - 7278: 0x000077E9, - 7279: 0x00007830, - 7280: 0x00007827, - 7281: 0x00007838, - 7282: 0x0000781D, - 7283: 0x00007834, - 7284: 0x00007837, - 7285: 0x00007825, - 7286: 0x0000782D, - 7287: 0x00007820, - 7288: 0x0000781F, - 7289: 0x00007832, - 7290: 0x00007955, - 7291: 0x00007950, - 7292: 0x00007960, - 7293: 0x0000795F, - 7294: 0x00007956, - 7295: 0x0000795E, - 7296: 0x0000795D, - 7297: 0x00007957, - 7298: 0x0000795A, - 7299: 0x000079E4, - 7300: 0x000079E3, - 7301: 0x000079E7, - 7302: 0x000079DF, - 7303: 0x000079E6, - 7304: 0x000079E9, - 7305: 0x000079D8, - 7306: 0x00007A84, - 7307: 0x00007A88, - 7308: 0x00007AD9, - 7309: 0x00007B06, - 7310: 0x00007B11, - 7311: 0x00007C89, - 7312: 0x00007D21, - 7313: 0x00007D17, - 7314: 0x00007D0B, - 7315: 0x00007D0A, - 7316: 0x00007D20, - 7317: 0x00007D22, - 7318: 0x00007D14, - 7319: 0x00007D10, - 7320: 0x00007D15, - 7321: 0x00007D1A, - 7322: 0x00007D1C, - 7323: 0x00007D0D, - 7324: 0x00007D19, - 7325: 0x00007D1B, - 7326: 0x00007F3A, - 7327: 0x00007F5F, - 7328: 0x00007F94, - 7329: 0x00007FC5, - 7330: 0x00007FC1, - 7331: 0x00008006, - 7332: 0x00008018, - 7333: 0x00008015, - 7334: 0x00008019, - 7335: 0x00008017, - 7336: 0x0000803D, - 7337: 0x0000803F, - 7338: 0x000080F1, - 7339: 0x00008102, - 7340: 0x000080F0, - 7341: 0x00008105, - 7342: 0x000080ED, - 7343: 0x000080F4, - 7344: 0x00008106, - 7345: 0x000080F8, - 7346: 0x000080F3, - 7347: 0x00008108, - 7348: 0x000080FD, - 7349: 0x0000810A, - 7350: 0x000080FC, - 7351: 0x000080EF, - 7352: 0x000081ED, - 7353: 0x000081EC, - 7354: 0x00008200, - 7355: 0x00008210, - 7356: 0x0000822A, - 7357: 0x0000822B, - 7358: 0x00008228, - 7359: 0x0000822C, - 7360: 0x000082BB, - 7361: 0x0000832B, - 7362: 0x00008352, - 7363: 0x00008354, - 7364: 0x0000834A, - 7365: 0x00008338, - 7366: 0x00008350, - 7367: 0x00008349, - 7368: 0x00008335, - 7369: 0x00008334, - 7370: 0x0000834F, - 7371: 0x00008332, - 7372: 0x00008339, - 7373: 0x00008336, - 7374: 0x00008317, - 7375: 0x00008340, - 7376: 0x00008331, - 7377: 0x00008328, - 7378: 0x00008343, - 7379: 0x00008654, - 7380: 0x0000868A, - 7381: 0x000086AA, - 7382: 0x00008693, - 7383: 0x000086A4, - 7384: 0x000086A9, - 7385: 0x0000868C, - 7386: 0x000086A3, - 7387: 0x0000869C, - 7388: 0x00008870, - 7389: 0x00008877, - 7390: 0x00008881, - 7391: 0x00008882, - 7392: 0x0000887D, - 7393: 0x00008879, - 7394: 0x00008A18, - 7395: 0x00008A10, - 7396: 0x00008A0E, - 7397: 0x00008A0C, - 7398: 0x00008A15, - 7399: 0x00008A0A, - 7400: 0x00008A17, - 7401: 0x00008A13, - 7402: 0x00008A16, - 7403: 0x00008A0F, - 7404: 0x00008A11, - 7405: 0x00008C48, - 7406: 0x00008C7A, - 7407: 0x00008C79, - 7408: 0x00008CA1, - 7409: 0x00008CA2, - 7410: 0x00008D77, - 7411: 0x00008EAC, - 7412: 0x00008ED2, - 7413: 0x00008ED4, - 7414: 0x00008ECF, - 7415: 0x00008FB1, - 7416: 0x00009001, - 7417: 0x00009006, - 7418: 0x00008FF7, - 7419: 0x00009000, - 7420: 0x00008FFA, - 7421: 0x00008FF4, - 7422: 0x00009003, - 7423: 0x00008FFD, - 7424: 0x00009005, - 7425: 0x00008FF8, - 7426: 0x00009095, - 7427: 0x000090E1, - 7428: 0x000090DD, - 7429: 0x000090E2, - 7430: 0x00009152, - 7431: 0x0000914D, - 7432: 0x0000914C, - 7433: 0x000091D8, - 7434: 0x000091DD, - 7435: 0x000091D7, - 7436: 0x000091DC, - 7437: 0x000091D9, - 7438: 0x00009583, - 7439: 0x00009662, - 7440: 0x00009663, - 7441: 0x00009661, - 7442: 0x0000965B, - 7443: 0x0000965D, - 7444: 0x00009664, - 7445: 0x00009658, - 7446: 0x0000965E, - 7447: 0x000096BB, - 7448: 0x000098E2, - 7449: 0x000099AC, - 7450: 0x00009AA8, - 7451: 0x00009AD8, - 7452: 0x00009B25, - 7453: 0x00009B32, - 7454: 0x00009B3C, - 7455: 0x00004E7E, - 7456: 0x0000507A, - 7457: 0x0000507D, - 7458: 0x0000505C, - 7459: 0x00005047, - 7460: 0x00005043, - 7461: 0x0000504C, - 7462: 0x0000505A, - 7463: 0x00005049, - 7464: 0x00005065, - 7465: 0x00005076, - 7466: 0x0000504E, - 7467: 0x00005055, - 7468: 0x00005075, - 7469: 0x00005074, - 7470: 0x00005077, - 7471: 0x0000504F, - 7472: 0x0000500F, - 7473: 0x0000506F, - 7474: 0x0000506D, - 7475: 0x0000515C, - 7476: 0x00005195, - 7477: 0x000051F0, - 7478: 0x0000526A, - 7479: 0x0000526F, - 7480: 0x000052D2, - 7481: 0x000052D9, - 7482: 0x000052D8, - 7483: 0x000052D5, - 7484: 0x00005310, - 7485: 0x0000530F, - 7486: 0x00005319, - 7487: 0x0000533F, - 7488: 0x00005340, - 7489: 0x0000533E, - 7490: 0x000053C3, - 7491: 0x000066FC, - 7492: 0x00005546, - 7493: 0x0000556A, - 7494: 0x00005566, - 7495: 0x00005544, - 7496: 0x0000555E, - 7497: 0x00005561, - 7498: 0x00005543, - 7499: 0x0000554A, - 7500: 0x00005531, - 7501: 0x00005556, - 7502: 0x0000554F, - 7503: 0x00005555, - 7504: 0x0000552F, - 7505: 0x00005564, - 7506: 0x00005538, - 7507: 0x0000552E, - 7508: 0x0000555C, - 7509: 0x0000552C, - 7510: 0x00005563, - 7511: 0x00005533, - 7512: 0x00005541, - 7513: 0x00005557, - 7514: 0x00005708, - 7515: 0x0000570B, - 7516: 0x00005709, - 7517: 0x000057DF, - 7518: 0x00005805, - 7519: 0x0000580A, - 7520: 0x00005806, - 7521: 0x000057E0, - 7522: 0x000057E4, - 7523: 0x000057FA, - 7524: 0x00005802, - 7525: 0x00005835, - 7526: 0x000057F7, - 7527: 0x000057F9, - 7528: 0x00005920, - 7529: 0x00005962, - 7530: 0x00005A36, - 7531: 0x00005A41, - 7532: 0x00005A49, - 7533: 0x00005A66, - 7534: 0x00005A6A, - 7535: 0x00005A40, - 7536: 0x00005A3C, - 7537: 0x00005A62, - 7538: 0x00005A5A, - 7539: 0x00005A46, - 7540: 0x00005A4A, - 7541: 0x00005B70, - 7542: 0x00005BC7, - 7543: 0x00005BC5, - 7544: 0x00005BC4, - 7545: 0x00005BC2, - 7546: 0x00005BBF, - 7547: 0x00005BC6, - 7548: 0x00005C09, - 7549: 0x00005C08, - 7550: 0x00005C07, - 7551: 0x00005C60, - 7552: 0x00005C5C, - 7553: 0x00005C5D, - 7554: 0x00005D07, - 7555: 0x00005D06, - 7556: 0x00005D0E, - 7557: 0x00005D1B, - 7558: 0x00005D16, - 7559: 0x00005D22, - 7560: 0x00005D11, - 7561: 0x00005D29, - 7562: 0x00005D14, - 7563: 0x00005D19, - 7564: 0x00005D24, - 7565: 0x00005D27, - 7566: 0x00005D17, - 7567: 0x00005DE2, - 7568: 0x00005E38, - 7569: 0x00005E36, - 7570: 0x00005E33, - 7571: 0x00005E37, - 7572: 0x00005EB7, - 7573: 0x00005EB8, - 7574: 0x00005EB6, - 7575: 0x00005EB5, - 7576: 0x00005EBE, - 7577: 0x00005F35, - 7578: 0x00005F37, - 7579: 0x00005F57, - 7580: 0x00005F6C, - 7581: 0x00005F69, - 7582: 0x00005F6B, - 7583: 0x00005F97, - 7584: 0x00005F99, - 7585: 0x00005F9E, - 7586: 0x00005F98, - 7587: 0x00005FA1, - 7588: 0x00005FA0, - 7589: 0x00005F9C, - 7590: 0x0000607F, - 7591: 0x000060A3, - 7592: 0x00006089, - 7593: 0x000060A0, - 7594: 0x000060A8, - 7595: 0x000060CB, - 7596: 0x000060B4, - 7597: 0x000060E6, - 7598: 0x000060BD, - 7599: 0x000060C5, - 7600: 0x000060BB, - 7601: 0x000060B5, - 7602: 0x000060DC, - 7603: 0x000060BC, - 7604: 0x000060D8, - 7605: 0x000060D5, - 7606: 0x000060C6, - 7607: 0x000060DF, - 7608: 0x000060B8, - 7609: 0x000060DA, - 7610: 0x000060C7, - 7611: 0x0000621A, - 7612: 0x0000621B, - 7613: 0x00006248, - 7614: 0x000063A0, - 7615: 0x000063A7, - 7616: 0x00006372, - 7617: 0x00006396, - 7618: 0x000063A2, - 7619: 0x000063A5, - 7620: 0x00006377, - 7621: 0x00006367, - 7622: 0x00006398, - 7623: 0x000063AA, - 7624: 0x00006371, - 7625: 0x000063A9, - 7626: 0x00006389, - 7627: 0x00006383, - 7628: 0x0000639B, - 7629: 0x0000636B, - 7630: 0x000063A8, - 7631: 0x00006384, - 7632: 0x00006388, - 7633: 0x00006399, - 7634: 0x000063A1, - 7635: 0x000063AC, - 7636: 0x00006392, - 7637: 0x0000638F, - 7638: 0x00006380, - 7639: 0x0000637B, - 7640: 0x00006369, - 7641: 0x00006368, - 7642: 0x0000637A, - 7643: 0x0000655D, - 7644: 0x00006556, - 7645: 0x00006551, - 7646: 0x00006559, - 7647: 0x00006557, - 7648: 0x0000555F, - 7649: 0x0000654F, - 7650: 0x00006558, - 7651: 0x00006555, - 7652: 0x00006554, - 7653: 0x0000659C, - 7654: 0x0000659B, - 7655: 0x000065AC, - 7656: 0x000065CF, - 7657: 0x000065CB, - 7658: 0x000065CC, - 7659: 0x000065CE, - 7660: 0x0000665D, - 7661: 0x0000665A, - 7662: 0x00006664, - 7663: 0x00006668, - 7664: 0x00006666, - 7665: 0x0000665E, - 7666: 0x000066F9, - 7667: 0x000052D7, - 7668: 0x0000671B, - 7669: 0x00006881, - 7670: 0x000068AF, - 7671: 0x000068A2, - 7672: 0x00006893, - 7673: 0x000068B5, - 7674: 0x0000687F, - 7675: 0x00006876, - 7676: 0x000068B1, - 7677: 0x000068A7, - 7678: 0x00006897, - 7679: 0x000068B0, - 7680: 0x00006883, - 7681: 0x000068C4, - 7682: 0x000068AD, - 7683: 0x00006886, - 7684: 0x00006885, - 7685: 0x00006894, - 7686: 0x0000689D, - 7687: 0x000068A8, - 7688: 0x0000689F, - 7689: 0x000068A1, - 7690: 0x00006882, - 7691: 0x00006B32, - 7692: 0x00006BBA, - 7693: 0x00006BEB, - 7694: 0x00006BEC, - 7695: 0x00006C2B, - 7696: 0x00006D8E, - 7697: 0x00006DBC, - 7698: 0x00006DF3, - 7699: 0x00006DD9, - 7700: 0x00006DB2, - 7701: 0x00006DE1, - 7702: 0x00006DCC, - 7703: 0x00006DE4, - 7704: 0x00006DFB, - 7705: 0x00006DFA, - 7706: 0x00006E05, - 7707: 0x00006DC7, - 7708: 0x00006DCB, - 7709: 0x00006DAF, - 7710: 0x00006DD1, - 7711: 0x00006DAE, - 7712: 0x00006DDE, - 7713: 0x00006DF9, - 7714: 0x00006DB8, - 7715: 0x00006DF7, - 7716: 0x00006DF5, - 7717: 0x00006DC5, - 7718: 0x00006DD2, - 7719: 0x00006E1A, - 7720: 0x00006DB5, - 7721: 0x00006DDA, - 7722: 0x00006DEB, - 7723: 0x00006DD8, - 7724: 0x00006DEA, - 7725: 0x00006DF1, - 7726: 0x00006DEE, - 7727: 0x00006DE8, - 7728: 0x00006DC6, - 7729: 0x00006DC4, - 7730: 0x00006DAA, - 7731: 0x00006DEC, - 7732: 0x00006DBF, - 7733: 0x00006DE6, - 7734: 0x000070F9, - 7735: 0x00007109, - 7736: 0x0000710A, - 7737: 0x000070FD, - 7738: 0x000070EF, - 7739: 0x0000723D, - 7740: 0x0000727D, - 7741: 0x00007281, - 7742: 0x0000731C, - 7743: 0x0000731B, - 7744: 0x00007316, - 7745: 0x00007313, - 7746: 0x00007319, - 7747: 0x00007387, - 7748: 0x00007405, - 7749: 0x0000740A, - 7750: 0x00007403, - 7751: 0x00007406, - 7752: 0x000073FE, - 7753: 0x0000740D, - 7754: 0x000074E0, - 7755: 0x000074F6, - 7756: 0x000074F7, - 7757: 0x0000751C, - 7758: 0x00007522, - 7759: 0x00007565, - 7760: 0x00007566, - 7761: 0x00007562, - 7762: 0x00007570, - 7763: 0x0000758F, - 7764: 0x000075D4, - 7765: 0x000075D5, - 7766: 0x000075B5, - 7767: 0x000075CA, - 7768: 0x000075CD, - 7769: 0x0000768E, - 7770: 0x000076D4, - 7771: 0x000076D2, - 7772: 0x000076DB, - 7773: 0x00007737, - 7774: 0x0000773E, - 7775: 0x0000773C, - 7776: 0x00007736, - 7777: 0x00007738, - 7778: 0x0000773A, - 7779: 0x0000786B, - 7780: 0x00007843, - 7781: 0x0000784E, - 7782: 0x00007965, - 7783: 0x00007968, - 7784: 0x0000796D, - 7785: 0x000079FB, - 7786: 0x00007A92, - 7787: 0x00007A95, - 7788: 0x00007B20, - 7789: 0x00007B28, - 7790: 0x00007B1B, - 7791: 0x00007B2C, - 7792: 0x00007B26, - 7793: 0x00007B19, - 7794: 0x00007B1E, - 7795: 0x00007B2E, - 7796: 0x00007C92, - 7797: 0x00007C97, - 7798: 0x00007C95, - 7799: 0x00007D46, - 7800: 0x00007D43, - 7801: 0x00007D71, - 7802: 0x00007D2E, - 7803: 0x00007D39, - 7804: 0x00007D3C, - 7805: 0x00007D40, - 7806: 0x00007D30, - 7807: 0x00007D33, - 7808: 0x00007D44, - 7809: 0x00007D2F, - 7810: 0x00007D42, - 7811: 0x00007D32, - 7812: 0x00007D31, - 7813: 0x00007F3D, - 7814: 0x00007F9E, - 7815: 0x00007F9A, - 7816: 0x00007FCC, - 7817: 0x00007FCE, - 7818: 0x00007FD2, - 7819: 0x0000801C, - 7820: 0x0000804A, - 7821: 0x00008046, - 7822: 0x0000812F, - 7823: 0x00008116, - 7824: 0x00008123, - 7825: 0x0000812B, - 7826: 0x00008129, - 7827: 0x00008130, - 7828: 0x00008124, - 7829: 0x00008202, - 7830: 0x00008235, - 7831: 0x00008237, - 7832: 0x00008236, - 7833: 0x00008239, - 7834: 0x0000838E, - 7835: 0x0000839E, - 7836: 0x00008398, - 7837: 0x00008378, - 7838: 0x000083A2, - 7839: 0x00008396, - 7840: 0x000083BD, - 7841: 0x000083AB, - 7842: 0x00008392, - 7843: 0x0000838A, - 7844: 0x00008393, - 7845: 0x00008389, - 7846: 0x000083A0, - 7847: 0x00008377, - 7848: 0x0000837B, - 7849: 0x0000837C, - 7850: 0x00008386, - 7851: 0x000083A7, - 7852: 0x00008655, - 7853: 0x00005F6A, - 7854: 0x000086C7, - 7855: 0x000086C0, - 7856: 0x000086B6, - 7857: 0x000086C4, - 7858: 0x000086B5, - 7859: 0x000086C6, - 7860: 0x000086CB, - 7861: 0x000086B1, - 7862: 0x000086AF, - 7863: 0x000086C9, - 7864: 0x00008853, - 7865: 0x0000889E, - 7866: 0x00008888, - 7867: 0x000088AB, - 7868: 0x00008892, - 7869: 0x00008896, - 7870: 0x0000888D, - 7871: 0x0000888B, - 7872: 0x00008993, - 7873: 0x0000898F, - 7874: 0x00008A2A, - 7875: 0x00008A1D, - 7876: 0x00008A23, - 7877: 0x00008A25, - 7878: 0x00008A31, - 7879: 0x00008A2D, - 7880: 0x00008A1F, - 7881: 0x00008A1B, - 7882: 0x00008A22, - 7883: 0x00008C49, - 7884: 0x00008C5A, - 7885: 0x00008CA9, - 7886: 0x00008CAC, - 7887: 0x00008CAB, - 7888: 0x00008CA8, - 7889: 0x00008CAA, - 7890: 0x00008CA7, - 7891: 0x00008D67, - 7892: 0x00008D66, - 7893: 0x00008DBE, - 7894: 0x00008DBA, - 7895: 0x00008EDB, - 7896: 0x00008EDF, - 7897: 0x00009019, - 7898: 0x0000900D, - 7899: 0x0000901A, - 7900: 0x00009017, - 7901: 0x00009023, - 7902: 0x0000901F, - 7903: 0x0000901D, - 7904: 0x00009010, - 7905: 0x00009015, - 7906: 0x0000901E, - 7907: 0x00009020, - 7908: 0x0000900F, - 7909: 0x00009022, - 7910: 0x00009016, - 7911: 0x0000901B, - 7912: 0x00009014, - 7913: 0x000090E8, - 7914: 0x000090ED, - 7915: 0x000090FD, - 7916: 0x00009157, - 7917: 0x000091CE, - 7918: 0x000091F5, - 7919: 0x000091E6, - 7920: 0x000091E3, - 7921: 0x000091E7, - 7922: 0x000091ED, - 7923: 0x000091E9, - 7924: 0x00009589, - 7925: 0x0000966A, - 7926: 0x00009675, - 7927: 0x00009673, - 7928: 0x00009678, - 7929: 0x00009670, - 7930: 0x00009674, - 7931: 0x00009676, - 7932: 0x00009677, - 7933: 0x0000966C, - 7934: 0x000096C0, - 7935: 0x000096EA, - 7936: 0x000096E9, - 7937: 0x00007AE0, - 7938: 0x00007ADF, - 7939: 0x00009802, - 7940: 0x00009803, - 7941: 0x00009B5A, - 7942: 0x00009CE5, - 7943: 0x00009E75, - 7944: 0x00009E7F, - 7945: 0x00009EA5, - 7946: 0x00009EBB, - 7947: 0x000050A2, - 7948: 0x0000508D, - 7949: 0x00005085, - 7950: 0x00005099, - 7951: 0x00005091, - 7952: 0x00005080, - 7953: 0x00005096, - 7954: 0x00005098, - 7955: 0x0000509A, - 7956: 0x00006700, - 7957: 0x000051F1, - 7958: 0x00005272, - 7959: 0x00005274, - 7960: 0x00005275, - 7961: 0x00005269, - 7962: 0x000052DE, - 7963: 0x000052DD, - 7964: 0x000052DB, - 7965: 0x0000535A, - 7966: 0x000053A5, - 7967: 0x0000557B, - 7968: 0x00005580, - 7969: 0x000055A7, - 7970: 0x0000557C, - 7971: 0x0000558A, - 7972: 0x0000559D, - 7973: 0x00005598, - 7974: 0x00005582, - 7975: 0x0000559C, - 7976: 0x000055AA, - 7977: 0x00005594, - 7978: 0x00005587, - 7979: 0x0000558B, - 7980: 0x00005583, - 7981: 0x000055B3, - 7982: 0x000055AE, - 7983: 0x0000559F, - 7984: 0x0000553E, - 7985: 0x000055B2, - 7986: 0x0000559A, - 7987: 0x000055BB, - 7988: 0x000055AC, - 7989: 0x000055B1, - 7990: 0x0000557E, - 7991: 0x00005589, - 7992: 0x000055AB, - 7993: 0x00005599, - 7994: 0x0000570D, - 7995: 0x0000582F, - 7996: 0x0000582A, - 7997: 0x00005834, - 7998: 0x00005824, - 7999: 0x00005830, - 8000: 0x00005831, - 8001: 0x00005821, - 8002: 0x0000581D, - 8003: 0x00005820, - 8004: 0x000058F9, - 8005: 0x000058FA, - 8006: 0x00005960, - 8007: 0x00005A77, - 8008: 0x00005A9A, - 8009: 0x00005A7F, - 8010: 0x00005A92, - 8011: 0x00005A9B, - 8012: 0x00005AA7, - 8013: 0x00005B73, - 8014: 0x00005B71, - 8015: 0x00005BD2, - 8016: 0x00005BCC, - 8017: 0x00005BD3, - 8018: 0x00005BD0, - 8019: 0x00005C0A, - 8020: 0x00005C0B, - 8021: 0x00005C31, - 8022: 0x00005D4C, - 8023: 0x00005D50, - 8024: 0x00005D34, - 8025: 0x00005D47, - 8026: 0x00005DFD, - 8027: 0x00005E45, - 8028: 0x00005E3D, - 8029: 0x00005E40, - 8030: 0x00005E43, - 8031: 0x00005E7E, - 8032: 0x00005ECA, - 8033: 0x00005EC1, - 8034: 0x00005EC2, - 8035: 0x00005EC4, - 8036: 0x00005F3C, - 8037: 0x00005F6D, - 8038: 0x00005FA9, - 8039: 0x00005FAA, - 8040: 0x00005FA8, - 8041: 0x000060D1, - 8042: 0x000060E1, - 8043: 0x000060B2, - 8044: 0x000060B6, - 8045: 0x000060E0, - 8046: 0x0000611C, - 8047: 0x00006123, - 8048: 0x000060FA, - 8049: 0x00006115, - 8050: 0x000060F0, - 8051: 0x000060FB, - 8052: 0x000060F4, - 8053: 0x00006168, - 8054: 0x000060F1, - 8055: 0x0000610E, - 8056: 0x000060F6, - 8057: 0x00006109, - 8058: 0x00006100, - 8059: 0x00006112, - 8060: 0x0000621F, - 8061: 0x00006249, - 8062: 0x000063A3, - 8063: 0x0000638C, - 8064: 0x000063CF, - 8065: 0x000063C0, - 8066: 0x000063E9, - 8067: 0x000063C9, - 8068: 0x000063C6, - 8069: 0x000063CD, - 8070: 0x000063D2, - 8071: 0x000063E3, - 8072: 0x000063D0, - 8073: 0x000063E1, - 8074: 0x000063D6, - 8075: 0x000063ED, - 8076: 0x000063EE, - 8077: 0x00006376, - 8078: 0x000063F4, - 8079: 0x000063EA, - 8080: 0x000063DB, - 8081: 0x00006452, - 8082: 0x000063DA, - 8083: 0x000063F9, - 8084: 0x0000655E, - 8085: 0x00006566, - 8086: 0x00006562, - 8087: 0x00006563, - 8088: 0x00006591, - 8089: 0x00006590, - 8090: 0x000065AF, - 8091: 0x0000666E, - 8092: 0x00006670, - 8093: 0x00006674, - 8094: 0x00006676, - 8095: 0x0000666F, - 8096: 0x00006691, - 8097: 0x0000667A, - 8098: 0x0000667E, - 8099: 0x00006677, - 8100: 0x000066FE, - 8101: 0x000066FF, - 8102: 0x0000671F, - 8103: 0x0000671D, - 8104: 0x000068FA, - 8105: 0x000068D5, - 8106: 0x000068E0, - 8107: 0x000068D8, - 8108: 0x000068D7, - 8109: 0x00006905, - 8110: 0x000068DF, - 8111: 0x000068F5, - 8112: 0x000068EE, - 8113: 0x000068E7, - 8114: 0x000068F9, - 8115: 0x000068D2, - 8116: 0x000068F2, - 8117: 0x000068E3, - 8118: 0x000068CB, - 8119: 0x000068CD, - 8120: 0x0000690D, - 8121: 0x00006912, - 8122: 0x0000690E, - 8123: 0x000068C9, - 8124: 0x000068DA, - 8125: 0x0000696E, - 8126: 0x000068FB, - 8127: 0x00006B3E, - 8128: 0x00006B3A, - 8129: 0x00006B3D, - 8130: 0x00006B98, - 8131: 0x00006B96, - 8132: 0x00006BBC, - 8133: 0x00006BEF, - 8134: 0x00006C2E, - 8135: 0x00006C2F, - 8136: 0x00006C2C, - 8137: 0x00006E2F, - 8138: 0x00006E38, - 8139: 0x00006E54, - 8140: 0x00006E21, - 8141: 0x00006E32, - 8142: 0x00006E67, - 8143: 0x00006E4A, - 8144: 0x00006E20, - 8145: 0x00006E25, - 8146: 0x00006E23, - 8147: 0x00006E1B, - 8148: 0x00006E5B, - 8149: 0x00006E58, - 8150: 0x00006E24, - 8151: 0x00006E56, - 8152: 0x00006E6E, - 8153: 0x00006E2D, - 8154: 0x00006E26, - 8155: 0x00006E6F, - 8156: 0x00006E34, - 8157: 0x00006E4D, - 8158: 0x00006E3A, - 8159: 0x00006E2C, - 8160: 0x00006E43, - 8161: 0x00006E1D, - 8162: 0x00006E3E, - 8163: 0x00006ECB, - 8164: 0x00006E89, - 8165: 0x00006E19, - 8166: 0x00006E4E, - 8167: 0x00006E63, - 8168: 0x00006E44, - 8169: 0x00006E72, - 8170: 0x00006E69, - 8171: 0x00006E5F, - 8172: 0x00007119, - 8173: 0x0000711A, - 8174: 0x00007126, - 8175: 0x00007130, - 8176: 0x00007121, - 8177: 0x00007136, - 8178: 0x0000716E, - 8179: 0x0000711C, - 8180: 0x0000724C, - 8181: 0x00007284, - 8182: 0x00007280, - 8183: 0x00007336, - 8184: 0x00007325, - 8185: 0x00007334, - 8186: 0x00007329, - 8187: 0x0000743A, - 8188: 0x0000742A, - 8189: 0x00007433, - 8190: 0x00007422, - 8191: 0x00007425, - 8192: 0x00007435, - 8193: 0x00007436, - 8194: 0x00007434, - 8195: 0x0000742F, - 8196: 0x0000741B, - 8197: 0x00007426, - 8198: 0x00007428, - 8199: 0x00007525, - 8200: 0x00007526, - 8201: 0x0000756B, - 8202: 0x0000756A, - 8203: 0x000075E2, - 8204: 0x000075DB, - 8205: 0x000075E3, - 8206: 0x000075D9, - 8207: 0x000075D8, - 8208: 0x000075DE, - 8209: 0x000075E0, - 8210: 0x0000767B, - 8211: 0x0000767C, - 8212: 0x00007696, - 8213: 0x00007693, - 8214: 0x000076B4, - 8215: 0x000076DC, - 8216: 0x0000774F, - 8217: 0x000077ED, - 8218: 0x0000785D, - 8219: 0x0000786C, - 8220: 0x0000786F, - 8221: 0x00007A0D, - 8222: 0x00007A08, - 8223: 0x00007A0B, - 8224: 0x00007A05, - 8225: 0x00007A00, - 8226: 0x00007A98, - 8227: 0x00007A97, - 8228: 0x00007A96, - 8229: 0x00007AE5, - 8230: 0x00007AE3, - 8231: 0x00007B49, - 8232: 0x00007B56, - 8233: 0x00007B46, - 8234: 0x00007B50, - 8235: 0x00007B52, - 8236: 0x00007B54, - 8237: 0x00007B4D, - 8238: 0x00007B4B, - 8239: 0x00007B4F, - 8240: 0x00007B51, - 8241: 0x00007C9F, - 8242: 0x00007CA5, - 8243: 0x00007D5E, - 8244: 0x00007D50, - 8245: 0x00007D68, - 8246: 0x00007D55, - 8247: 0x00007D2B, - 8248: 0x00007D6E, - 8249: 0x00007D72, - 8250: 0x00007D61, - 8251: 0x00007D66, - 8252: 0x00007D62, - 8253: 0x00007D70, - 8254: 0x00007D73, - 8255: 0x00005584, - 8256: 0x00007FD4, - 8257: 0x00007FD5, - 8258: 0x0000800B, - 8259: 0x00008052, - 8260: 0x00008085, - 8261: 0x00008155, - 8262: 0x00008154, - 8263: 0x0000814B, - 8264: 0x00008151, - 8265: 0x0000814E, - 8266: 0x00008139, - 8267: 0x00008146, - 8268: 0x0000813E, - 8269: 0x0000814C, - 8270: 0x00008153, - 8271: 0x00008174, - 8272: 0x00008212, - 8273: 0x0000821C, - 8274: 0x000083E9, - 8275: 0x00008403, - 8276: 0x000083F8, - 8277: 0x0000840D, - 8278: 0x000083E0, - 8279: 0x000083C5, - 8280: 0x0000840B, - 8281: 0x000083C1, - 8282: 0x000083EF, - 8283: 0x000083F1, - 8284: 0x000083F4, - 8285: 0x00008457, - 8286: 0x0000840A, - 8287: 0x000083F0, - 8288: 0x0000840C, - 8289: 0x000083CC, - 8290: 0x000083FD, - 8291: 0x000083F2, - 8292: 0x000083CA, - 8293: 0x00008438, - 8294: 0x0000840E, - 8295: 0x00008404, - 8296: 0x000083DC, - 8297: 0x00008407, - 8298: 0x000083D4, - 8299: 0x000083DF, - 8300: 0x0000865B, - 8301: 0x000086DF, - 8302: 0x000086D9, - 8303: 0x000086ED, - 8304: 0x000086D4, - 8305: 0x000086DB, - 8306: 0x000086E4, - 8307: 0x000086D0, - 8308: 0x000086DE, - 8309: 0x00008857, - 8310: 0x000088C1, - 8311: 0x000088C2, - 8312: 0x000088B1, - 8313: 0x00008983, - 8314: 0x00008996, - 8315: 0x00008A3B, - 8316: 0x00008A60, - 8317: 0x00008A55, - 8318: 0x00008A5E, - 8319: 0x00008A3C, - 8320: 0x00008A41, - 8321: 0x00008A54, - 8322: 0x00008A5B, - 8323: 0x00008A50, - 8324: 0x00008A46, - 8325: 0x00008A34, - 8326: 0x00008A3A, - 8327: 0x00008A36, - 8328: 0x00008A56, - 8329: 0x00008C61, - 8330: 0x00008C82, - 8331: 0x00008CAF, - 8332: 0x00008CBC, - 8333: 0x00008CB3, - 8334: 0x00008CBD, - 8335: 0x00008CC1, - 8336: 0x00008CBB, - 8337: 0x00008CC0, - 8338: 0x00008CB4, - 8339: 0x00008CB7, - 8340: 0x00008CB6, - 8341: 0x00008CBF, - 8342: 0x00008CB8, - 8343: 0x00008D8A, - 8344: 0x00008D85, - 8345: 0x00008D81, - 8346: 0x00008DCE, - 8347: 0x00008DDD, - 8348: 0x00008DCB, - 8349: 0x00008DDA, - 8350: 0x00008DD1, - 8351: 0x00008DCC, - 8352: 0x00008DDB, - 8353: 0x00008DC6, - 8354: 0x00008EFB, - 8355: 0x00008EF8, - 8356: 0x00008EFC, - 8357: 0x00008F9C, - 8358: 0x0000902E, - 8359: 0x00009035, - 8360: 0x00009031, - 8361: 0x00009038, - 8362: 0x00009032, - 8363: 0x00009036, - 8364: 0x00009102, - 8365: 0x000090F5, - 8366: 0x00009109, - 8367: 0x000090FE, - 8368: 0x00009163, - 8369: 0x00009165, - 8370: 0x000091CF, - 8371: 0x00009214, - 8372: 0x00009215, - 8373: 0x00009223, - 8374: 0x00009209, - 8375: 0x0000921E, - 8376: 0x0000920D, - 8377: 0x00009210, - 8378: 0x00009207, - 8379: 0x00009211, - 8380: 0x00009594, - 8381: 0x0000958F, - 8382: 0x0000958B, - 8383: 0x00009591, - 8384: 0x00009593, - 8385: 0x00009592, - 8386: 0x0000958E, - 8387: 0x0000968A, - 8388: 0x0000968E, - 8389: 0x0000968B, - 8390: 0x0000967D, - 8391: 0x00009685, - 8392: 0x00009686, - 8393: 0x0000968D, - 8394: 0x00009672, - 8395: 0x00009684, - 8396: 0x000096C1, - 8397: 0x000096C5, - 8398: 0x000096C4, - 8399: 0x000096C6, - 8400: 0x000096C7, - 8401: 0x000096EF, - 8402: 0x000096F2, - 8403: 0x000097CC, - 8404: 0x00009805, - 8405: 0x00009806, - 8406: 0x00009808, - 8407: 0x000098E7, - 8408: 0x000098EA, - 8409: 0x000098EF, - 8410: 0x000098E9, - 8411: 0x000098F2, - 8412: 0x000098ED, - 8413: 0x000099AE, - 8414: 0x000099AD, - 8415: 0x00009EC3, - 8416: 0x00009ECD, - 8417: 0x00009ED1, - 8418: 0x00004E82, - 8419: 0x000050AD, - 8420: 0x000050B5, - 8421: 0x000050B2, - 8422: 0x000050B3, - 8423: 0x000050C5, - 8424: 0x000050BE, - 8425: 0x000050AC, - 8426: 0x000050B7, - 8427: 0x000050BB, - 8428: 0x000050AF, - 8429: 0x000050C7, - 8430: 0x0000527F, - 8431: 0x00005277, - 8432: 0x0000527D, - 8433: 0x000052DF, - 8434: 0x000052E6, - 8435: 0x000052E4, - 8436: 0x000052E2, - 8437: 0x000052E3, - 8438: 0x0000532F, - 8439: 0x000055DF, - 8440: 0x000055E8, - 8441: 0x000055D3, - 8442: 0x000055E6, - 8443: 0x000055CE, - 8444: 0x000055DC, - 8445: 0x000055C7, - 8446: 0x000055D1, - 8447: 0x000055E3, - 8448: 0x000055E4, - 8449: 0x000055EF, - 8450: 0x000055DA, - 8451: 0x000055E1, - 8452: 0x000055C5, - 8453: 0x000055C6, - 8454: 0x000055E5, - 8455: 0x000055C9, - 8456: 0x00005712, - 8457: 0x00005713, - 8458: 0x0000585E, - 8459: 0x00005851, - 8460: 0x00005858, - 8461: 0x00005857, - 8462: 0x0000585A, - 8463: 0x00005854, - 8464: 0x0000586B, - 8465: 0x0000584C, - 8466: 0x0000586D, - 8467: 0x0000584A, - 8468: 0x00005862, - 8469: 0x00005852, - 8470: 0x0000584B, - 8471: 0x00005967, - 8472: 0x00005AC1, - 8473: 0x00005AC9, - 8474: 0x00005ACC, - 8475: 0x00005ABE, - 8476: 0x00005ABD, - 8477: 0x00005ABC, - 8478: 0x00005AB3, - 8479: 0x00005AC2, - 8480: 0x00005AB2, - 8481: 0x00005D69, - 8482: 0x00005D6F, - 8483: 0x00005E4C, - 8484: 0x00005E79, - 8485: 0x00005EC9, - 8486: 0x00005EC8, - 8487: 0x00005F12, - 8488: 0x00005F59, - 8489: 0x00005FAC, - 8490: 0x00005FAE, - 8491: 0x0000611A, - 8492: 0x0000610F, - 8493: 0x00006148, - 8494: 0x0000611F, - 8495: 0x000060F3, - 8496: 0x0000611B, - 8497: 0x000060F9, - 8498: 0x00006101, - 8499: 0x00006108, - 8500: 0x0000614E, - 8501: 0x0000614C, - 8502: 0x00006144, - 8503: 0x0000614D, - 8504: 0x0000613E, - 8505: 0x00006134, - 8506: 0x00006127, - 8507: 0x0000610D, - 8508: 0x00006106, - 8509: 0x00006137, - 8510: 0x00006221, - 8511: 0x00006222, - 8512: 0x00006413, - 8513: 0x0000643E, - 8514: 0x0000641E, - 8515: 0x0000642A, - 8516: 0x0000642D, - 8517: 0x0000643D, - 8518: 0x0000642C, - 8519: 0x0000640F, - 8520: 0x0000641C, - 8521: 0x00006414, - 8522: 0x0000640D, - 8523: 0x00006436, - 8524: 0x00006416, - 8525: 0x00006417, - 8526: 0x00006406, - 8527: 0x0000656C, - 8528: 0x0000659F, - 8529: 0x000065B0, - 8530: 0x00006697, - 8531: 0x00006689, - 8532: 0x00006687, - 8533: 0x00006688, - 8534: 0x00006696, - 8535: 0x00006684, - 8536: 0x00006698, - 8537: 0x0000668D, - 8538: 0x00006703, - 8539: 0x00006994, - 8540: 0x0000696D, - 8541: 0x0000695A, - 8542: 0x00006977, - 8543: 0x00006960, - 8544: 0x00006954, - 8545: 0x00006975, - 8546: 0x00006930, - 8547: 0x00006982, - 8548: 0x0000694A, - 8549: 0x00006968, - 8550: 0x0000696B, - 8551: 0x0000695E, - 8552: 0x00006953, - 8553: 0x00006979, - 8554: 0x00006986, - 8555: 0x0000695D, - 8556: 0x00006963, - 8557: 0x0000695B, - 8558: 0x00006B47, - 8559: 0x00006B72, - 8560: 0x00006BC0, - 8561: 0x00006BBF, - 8562: 0x00006BD3, - 8563: 0x00006BFD, - 8564: 0x00006EA2, - 8565: 0x00006EAF, - 8566: 0x00006ED3, - 8567: 0x00006EB6, - 8568: 0x00006EC2, - 8569: 0x00006E90, - 8570: 0x00006E9D, - 8571: 0x00006EC7, - 8572: 0x00006EC5, - 8573: 0x00006EA5, - 8574: 0x00006E98, - 8575: 0x00006EBC, - 8576: 0x00006EBA, - 8577: 0x00006EAB, - 8578: 0x00006ED1, - 8579: 0x00006E96, - 8580: 0x00006E9C, - 8581: 0x00006EC4, - 8582: 0x00006ED4, - 8583: 0x00006EAA, - 8584: 0x00006EA7, - 8585: 0x00006EB4, - 8586: 0x0000714E, - 8587: 0x00007159, - 8588: 0x00007169, - 8589: 0x00007164, - 8590: 0x00007149, - 8591: 0x00007167, - 8592: 0x0000715C, - 8593: 0x0000716C, - 8594: 0x00007166, - 8595: 0x0000714C, - 8596: 0x00007165, - 8597: 0x0000715E, - 8598: 0x00007146, - 8599: 0x00007168, - 8600: 0x00007156, - 8601: 0x0000723A, - 8602: 0x00007252, - 8603: 0x00007337, - 8604: 0x00007345, - 8605: 0x0000733F, - 8606: 0x0000733E, - 8607: 0x0000746F, - 8608: 0x0000745A, - 8609: 0x00007455, - 8610: 0x0000745F, - 8611: 0x0000745E, - 8612: 0x00007441, - 8613: 0x0000743F, - 8614: 0x00007459, - 8615: 0x0000745B, - 8616: 0x0000745C, - 8617: 0x00007576, - 8618: 0x00007578, - 8619: 0x00007600, - 8620: 0x000075F0, - 8621: 0x00007601, - 8622: 0x000075F2, - 8623: 0x000075F1, - 8624: 0x000075FA, - 8625: 0x000075FF, - 8626: 0x000075F4, - 8627: 0x000075F3, - 8628: 0x000076DE, - 8629: 0x000076DF, - 8630: 0x0000775B, - 8631: 0x0000776B, - 8632: 0x00007766, - 8633: 0x0000775E, - 8634: 0x00007763, - 8635: 0x00007779, - 8636: 0x0000776A, - 8637: 0x0000776C, - 8638: 0x0000775C, - 8639: 0x00007765, - 8640: 0x00007768, - 8641: 0x00007762, - 8642: 0x000077EE, - 8643: 0x0000788E, - 8644: 0x000078B0, - 8645: 0x00007897, - 8646: 0x00007898, - 8647: 0x0000788C, - 8648: 0x00007889, - 8649: 0x0000787C, - 8650: 0x00007891, - 8651: 0x00007893, - 8652: 0x0000787F, - 8653: 0x0000797A, - 8654: 0x0000797F, - 8655: 0x00007981, - 8656: 0x0000842C, - 8657: 0x000079BD, - 8658: 0x00007A1C, - 8659: 0x00007A1A, - 8660: 0x00007A20, - 8661: 0x00007A14, - 8662: 0x00007A1F, - 8663: 0x00007A1E, - 8664: 0x00007A9F, - 8665: 0x00007AA0, - 8666: 0x00007B77, - 8667: 0x00007BC0, - 8668: 0x00007B60, - 8669: 0x00007B6E, - 8670: 0x00007B67, - 8671: 0x00007CB1, - 8672: 0x00007CB3, - 8673: 0x00007CB5, - 8674: 0x00007D93, - 8675: 0x00007D79, - 8676: 0x00007D91, - 8677: 0x00007D81, - 8678: 0x00007D8F, - 8679: 0x00007D5B, - 8680: 0x00007F6E, - 8681: 0x00007F69, - 8682: 0x00007F6A, - 8683: 0x00007F72, - 8684: 0x00007FA9, - 8685: 0x00007FA8, - 8686: 0x00007FA4, - 8687: 0x00008056, - 8688: 0x00008058, - 8689: 0x00008086, - 8690: 0x00008084, - 8691: 0x00008171, - 8692: 0x00008170, - 8693: 0x00008178, - 8694: 0x00008165, - 8695: 0x0000816E, - 8696: 0x00008173, - 8697: 0x0000816B, - 8698: 0x00008179, - 8699: 0x0000817A, - 8700: 0x00008166, - 8701: 0x00008205, - 8702: 0x00008247, - 8703: 0x00008482, - 8704: 0x00008477, - 8705: 0x0000843D, - 8706: 0x00008431, - 8707: 0x00008475, - 8708: 0x00008466, - 8709: 0x0000846B, - 8710: 0x00008449, - 8711: 0x0000846C, - 8712: 0x0000845B, - 8713: 0x0000843C, - 8714: 0x00008435, - 8715: 0x00008461, - 8716: 0x00008463, - 8717: 0x00008469, - 8718: 0x0000846D, - 8719: 0x00008446, - 8720: 0x0000865E, - 8721: 0x0000865C, - 8722: 0x0000865F, - 8723: 0x000086F9, - 8724: 0x00008713, - 8725: 0x00008708, - 8726: 0x00008707, - 8727: 0x00008700, - 8728: 0x000086FE, - 8729: 0x000086FB, - 8730: 0x00008702, - 8731: 0x00008703, - 8732: 0x00008706, - 8733: 0x0000870A, - 8734: 0x00008859, - 8735: 0x000088DF, - 8736: 0x000088D4, - 8737: 0x000088D9, - 8738: 0x000088DC, - 8739: 0x000088D8, - 8740: 0x000088DD, - 8741: 0x000088E1, - 8742: 0x000088CA, - 8743: 0x000088D5, - 8744: 0x000088D2, - 8745: 0x0000899C, - 8746: 0x000089E3, - 8747: 0x00008A6B, - 8748: 0x00008A72, - 8749: 0x00008A73, - 8750: 0x00008A66, - 8751: 0x00008A69, - 8752: 0x00008A70, - 8753: 0x00008A87, - 8754: 0x00008A7C, - 8755: 0x00008A63, - 8756: 0x00008AA0, - 8757: 0x00008A71, - 8758: 0x00008A85, - 8759: 0x00008A6D, - 8760: 0x00008A62, - 8761: 0x00008A6E, - 8762: 0x00008A6C, - 8763: 0x00008A79, - 8764: 0x00008A7B, - 8765: 0x00008A3E, - 8766: 0x00008A68, - 8767: 0x00008C62, - 8768: 0x00008C8A, - 8769: 0x00008C89, - 8770: 0x00008CCA, - 8771: 0x00008CC7, - 8772: 0x00008CC8, - 8773: 0x00008CC4, - 8774: 0x00008CB2, - 8775: 0x00008CC3, - 8776: 0x00008CC2, - 8777: 0x00008CC5, - 8778: 0x00008DE1, - 8779: 0x00008DDF, - 8780: 0x00008DE8, - 8781: 0x00008DEF, - 8782: 0x00008DF3, - 8783: 0x00008DFA, - 8784: 0x00008DEA, - 8785: 0x00008DE4, - 8786: 0x00008DE6, - 8787: 0x00008EB2, - 8788: 0x00008F03, - 8789: 0x00008F09, - 8790: 0x00008EFE, - 8791: 0x00008F0A, - 8792: 0x00008F9F, - 8793: 0x00008FB2, - 8794: 0x0000904B, - 8795: 0x0000904A, - 8796: 0x00009053, - 8797: 0x00009042, - 8798: 0x00009054, - 8799: 0x0000903C, - 8800: 0x00009055, - 8801: 0x00009050, - 8802: 0x00009047, - 8803: 0x0000904F, - 8804: 0x0000904E, - 8805: 0x0000904D, - 8806: 0x00009051, - 8807: 0x0000903E, - 8808: 0x00009041, - 8809: 0x00009112, - 8810: 0x00009117, - 8811: 0x0000916C, - 8812: 0x0000916A, - 8813: 0x00009169, - 8814: 0x000091C9, - 8815: 0x00009237, - 8816: 0x00009257, - 8817: 0x00009238, - 8818: 0x0000923D, - 8819: 0x00009240, - 8820: 0x0000923E, - 8821: 0x0000925B, - 8822: 0x0000924B, - 8823: 0x00009264, - 8824: 0x00009251, - 8825: 0x00009234, - 8826: 0x00009249, - 8827: 0x0000924D, - 8828: 0x00009245, - 8829: 0x00009239, - 8830: 0x0000923F, - 8831: 0x0000925A, - 8832: 0x00009598, - 8833: 0x00009698, - 8834: 0x00009694, - 8835: 0x00009695, - 8836: 0x000096CD, - 8837: 0x000096CB, - 8838: 0x000096C9, - 8839: 0x000096CA, - 8840: 0x000096F7, - 8841: 0x000096FB, - 8842: 0x000096F9, - 8843: 0x000096F6, - 8844: 0x00009756, - 8845: 0x00009774, - 8846: 0x00009776, - 8847: 0x00009810, - 8848: 0x00009811, - 8849: 0x00009813, - 8850: 0x0000980A, - 8851: 0x00009812, - 8852: 0x0000980C, - 8853: 0x000098FC, - 8854: 0x000098F4, - 8855: 0x000098FD, - 8856: 0x000098FE, - 8857: 0x000099B3, - 8858: 0x000099B1, - 8859: 0x000099B4, - 8860: 0x00009AE1, - 8861: 0x00009CE9, - 8862: 0x00009E82, - 8863: 0x00009F0E, - 8864: 0x00009F13, - 8865: 0x00009F20, - 8866: 0x000050E7, - 8867: 0x000050EE, - 8868: 0x000050E5, - 8869: 0x000050D6, - 8870: 0x000050ED, - 8871: 0x000050DA, - 8872: 0x000050D5, - 8873: 0x000050CF, - 8874: 0x000050D1, - 8875: 0x000050F1, - 8876: 0x000050CE, - 8877: 0x000050E9, - 8878: 0x00005162, - 8879: 0x000051F3, - 8880: 0x00005283, - 8881: 0x00005282, - 8882: 0x00005331, - 8883: 0x000053AD, - 8884: 0x000055FE, - 8885: 0x00005600, - 8886: 0x0000561B, - 8887: 0x00005617, - 8888: 0x000055FD, - 8889: 0x00005614, - 8890: 0x00005606, - 8891: 0x00005609, - 8892: 0x0000560D, - 8893: 0x0000560E, - 8894: 0x000055F7, - 8895: 0x00005616, - 8896: 0x0000561F, - 8897: 0x00005608, - 8898: 0x00005610, - 8899: 0x000055F6, - 8900: 0x00005718, - 8901: 0x00005716, - 8902: 0x00005875, - 8903: 0x0000587E, - 8904: 0x00005883, - 8905: 0x00005893, - 8906: 0x0000588A, - 8907: 0x00005879, - 8908: 0x00005885, - 8909: 0x0000587D, - 8910: 0x000058FD, - 8911: 0x00005925, - 8912: 0x00005922, - 8913: 0x00005924, - 8914: 0x0000596A, - 8915: 0x00005969, - 8916: 0x00005AE1, - 8917: 0x00005AE6, - 8918: 0x00005AE9, - 8919: 0x00005AD7, - 8920: 0x00005AD6, - 8921: 0x00005AD8, - 8922: 0x00005AE3, - 8923: 0x00005B75, - 8924: 0x00005BDE, - 8925: 0x00005BE7, - 8926: 0x00005BE1, - 8927: 0x00005BE5, - 8928: 0x00005BE6, - 8929: 0x00005BE8, - 8930: 0x00005BE2, - 8931: 0x00005BE4, - 8932: 0x00005BDF, - 8933: 0x00005C0D, - 8934: 0x00005C62, - 8935: 0x00005D84, - 8936: 0x00005D87, - 8937: 0x00005E5B, - 8938: 0x00005E63, - 8939: 0x00005E55, - 8940: 0x00005E57, - 8941: 0x00005E54, - 8942: 0x00005ED3, - 8943: 0x00005ED6, - 8944: 0x00005F0A, - 8945: 0x00005F46, - 8946: 0x00005F70, - 8947: 0x00005FB9, - 8948: 0x00006147, - 8949: 0x0000613F, - 8950: 0x0000614B, - 8951: 0x00006177, - 8952: 0x00006162, - 8953: 0x00006163, - 8954: 0x0000615F, - 8955: 0x0000615A, - 8956: 0x00006158, - 8957: 0x00006175, - 8958: 0x0000622A, - 8959: 0x00006487, - 8960: 0x00006458, - 8961: 0x00006454, - 8962: 0x000064A4, - 8963: 0x00006478, - 8964: 0x0000645F, - 8965: 0x0000647A, - 8966: 0x00006451, - 8967: 0x00006467, - 8968: 0x00006434, - 8969: 0x0000646D, - 8970: 0x0000647B, - 8971: 0x00006572, - 8972: 0x000065A1, - 8973: 0x000065D7, - 8974: 0x000065D6, - 8975: 0x000066A2, - 8976: 0x000066A8, - 8977: 0x0000669D, - 8978: 0x0000699C, - 8979: 0x000069A8, - 8980: 0x00006995, - 8981: 0x000069C1, - 8982: 0x000069AE, - 8983: 0x000069D3, - 8984: 0x000069CB, - 8985: 0x0000699B, - 8986: 0x000069B7, - 8987: 0x000069BB, - 8988: 0x000069AB, - 8989: 0x000069B4, - 8990: 0x000069D0, - 8991: 0x000069CD, - 8992: 0x000069AD, - 8993: 0x000069CC, - 8994: 0x000069A6, - 8995: 0x000069C3, - 8996: 0x000069A3, - 8997: 0x00006B49, - 8998: 0x00006B4C, - 8999: 0x00006C33, - 9000: 0x00006F33, - 9001: 0x00006F14, - 9002: 0x00006EFE, - 9003: 0x00006F13, - 9004: 0x00006EF4, - 9005: 0x00006F29, - 9006: 0x00006F3E, - 9007: 0x00006F20, - 9008: 0x00006F2C, - 9009: 0x00006F0F, - 9010: 0x00006F02, - 9011: 0x00006F22, - 9012: 0x00006EFF, - 9013: 0x00006EEF, - 9014: 0x00006F06, - 9015: 0x00006F31, - 9016: 0x00006F38, - 9017: 0x00006F32, - 9018: 0x00006F23, - 9019: 0x00006F15, - 9020: 0x00006F2B, - 9021: 0x00006F2F, - 9022: 0x00006F88, - 9023: 0x00006F2A, - 9024: 0x00006EEC, - 9025: 0x00006F01, - 9026: 0x00006EF2, - 9027: 0x00006ECC, - 9028: 0x00006EF7, - 9029: 0x00007194, - 9030: 0x00007199, - 9031: 0x0000717D, - 9032: 0x0000718A, - 9033: 0x00007184, - 9034: 0x00007192, - 9035: 0x0000723E, - 9036: 0x00007292, - 9037: 0x00007296, - 9038: 0x00007344, - 9039: 0x00007350, - 9040: 0x00007464, - 9041: 0x00007463, - 9042: 0x0000746A, - 9043: 0x00007470, - 9044: 0x0000746D, - 9045: 0x00007504, - 9046: 0x00007591, - 9047: 0x00007627, - 9048: 0x0000760D, - 9049: 0x0000760B, - 9050: 0x00007609, - 9051: 0x00007613, - 9052: 0x000076E1, - 9053: 0x000076E3, - 9054: 0x00007784, - 9055: 0x0000777D, - 9056: 0x0000777F, - 9057: 0x00007761, - 9058: 0x000078C1, - 9059: 0x0000789F, - 9060: 0x000078A7, - 9061: 0x000078B3, - 9062: 0x000078A9, - 9063: 0x000078A3, - 9064: 0x0000798E, - 9065: 0x0000798F, - 9066: 0x0000798D, - 9067: 0x00007A2E, - 9068: 0x00007A31, - 9069: 0x00007AAA, - 9070: 0x00007AA9, - 9071: 0x00007AED, - 9072: 0x00007AEF, - 9073: 0x00007BA1, - 9074: 0x00007B95, - 9075: 0x00007B8B, - 9076: 0x00007B75, - 9077: 0x00007B97, - 9078: 0x00007B9D, - 9079: 0x00007B94, - 9080: 0x00007B8F, - 9081: 0x00007BB8, - 9082: 0x00007B87, - 9083: 0x00007B84, - 9084: 0x00007CB9, - 9085: 0x00007CBD, - 9086: 0x00007CBE, - 9087: 0x00007DBB, - 9088: 0x00007DB0, - 9089: 0x00007D9C, - 9090: 0x00007DBD, - 9091: 0x00007DBE, - 9092: 0x00007DA0, - 9093: 0x00007DCA, - 9094: 0x00007DB4, - 9095: 0x00007DB2, - 9096: 0x00007DB1, - 9097: 0x00007DBA, - 9098: 0x00007DA2, - 9099: 0x00007DBF, - 9100: 0x00007DB5, - 9101: 0x00007DB8, - 9102: 0x00007DAD, - 9103: 0x00007DD2, - 9104: 0x00007DC7, - 9105: 0x00007DAC, - 9106: 0x00007F70, - 9107: 0x00007FE0, - 9108: 0x00007FE1, - 9109: 0x00007FDF, - 9110: 0x0000805E, - 9111: 0x0000805A, - 9112: 0x00008087, - 9113: 0x00008150, - 9114: 0x00008180, - 9115: 0x0000818F, - 9116: 0x00008188, - 9117: 0x0000818A, - 9118: 0x0000817F, - 9119: 0x00008182, - 9120: 0x000081E7, - 9121: 0x000081FA, - 9122: 0x00008207, - 9123: 0x00008214, - 9124: 0x0000821E, - 9125: 0x0000824B, - 9126: 0x000084C9, - 9127: 0x000084BF, - 9128: 0x000084C6, - 9129: 0x000084C4, - 9130: 0x00008499, - 9131: 0x0000849E, - 9132: 0x000084B2, - 9133: 0x0000849C, - 9134: 0x000084CB, - 9135: 0x000084B8, - 9136: 0x000084C0, - 9137: 0x000084D3, - 9138: 0x00008490, - 9139: 0x000084BC, - 9140: 0x000084D1, - 9141: 0x000084CA, - 9142: 0x0000873F, - 9143: 0x0000871C, - 9144: 0x0000873B, - 9145: 0x00008722, - 9146: 0x00008725, - 9147: 0x00008734, - 9148: 0x00008718, - 9149: 0x00008755, - 9150: 0x00008737, - 9151: 0x00008729, - 9152: 0x000088F3, - 9153: 0x00008902, - 9154: 0x000088F4, - 9155: 0x000088F9, - 9156: 0x000088F8, - 9157: 0x000088FD, - 9158: 0x000088E8, - 9159: 0x0000891A, - 9160: 0x000088EF, - 9161: 0x00008AA6, - 9162: 0x00008A8C, - 9163: 0x00008A9E, - 9164: 0x00008AA3, - 9165: 0x00008A8D, - 9166: 0x00008AA1, - 9167: 0x00008A93, - 9168: 0x00008AA4, - 9169: 0x00008AAA, - 9170: 0x00008AA5, - 9171: 0x00008AA8, - 9172: 0x00008A98, - 9173: 0x00008A91, - 9174: 0x00008A9A, - 9175: 0x00008AA7, - 9176: 0x00008C6A, - 9177: 0x00008C8D, - 9178: 0x00008C8C, - 9179: 0x00008CD3, - 9180: 0x00008CD1, - 9181: 0x00008CD2, - 9182: 0x00008D6B, - 9183: 0x00008D99, - 9184: 0x00008D95, - 9185: 0x00008DFC, - 9186: 0x00008F14, - 9187: 0x00008F12, - 9188: 0x00008F15, - 9189: 0x00008F13, - 9190: 0x00008FA3, - 9191: 0x00009060, - 9192: 0x00009058, - 9193: 0x0000905C, - 9194: 0x00009063, - 9195: 0x00009059, - 9196: 0x0000905E, - 9197: 0x00009062, - 9198: 0x0000905D, - 9199: 0x0000905B, - 9200: 0x00009119, - 9201: 0x00009118, - 9202: 0x0000911E, - 9203: 0x00009175, - 9204: 0x00009178, - 9205: 0x00009177, - 9206: 0x00009174, - 9207: 0x00009278, - 9208: 0x00009280, - 9209: 0x00009285, - 9210: 0x00009298, - 9211: 0x00009296, - 9212: 0x0000927B, - 9213: 0x00009293, - 9214: 0x0000929C, - 9215: 0x000092A8, - 9216: 0x0000927C, - 9217: 0x00009291, - 9218: 0x000095A1, - 9219: 0x000095A8, - 9220: 0x000095A9, - 9221: 0x000095A3, - 9222: 0x000095A5, - 9223: 0x000095A4, - 9224: 0x00009699, - 9225: 0x0000969C, - 9226: 0x0000969B, - 9227: 0x000096CC, - 9228: 0x000096D2, - 9229: 0x00009700, - 9230: 0x0000977C, - 9231: 0x00009785, - 9232: 0x000097F6, - 9233: 0x00009817, - 9234: 0x00009818, - 9235: 0x000098AF, - 9236: 0x000098B1, - 9237: 0x00009903, - 9238: 0x00009905, - 9239: 0x0000990C, - 9240: 0x00009909, - 9241: 0x000099C1, - 9242: 0x00009AAF, - 9243: 0x00009AB0, - 9244: 0x00009AE6, - 9245: 0x00009B41, - 9246: 0x00009B42, - 9247: 0x00009CF4, - 9248: 0x00009CF6, - 9249: 0x00009CF3, - 9250: 0x00009EBC, - 9251: 0x00009F3B, - 9252: 0x00009F4A, - 9253: 0x00005104, - 9254: 0x00005100, - 9255: 0x000050FB, - 9256: 0x000050F5, - 9257: 0x000050F9, - 9258: 0x00005102, - 9259: 0x00005108, - 9260: 0x00005109, - 9261: 0x00005105, - 9262: 0x000051DC, - 9263: 0x00005287, - 9264: 0x00005288, - 9265: 0x00005289, - 9266: 0x0000528D, - 9267: 0x0000528A, - 9268: 0x000052F0, - 9269: 0x000053B2, - 9270: 0x0000562E, - 9271: 0x0000563B, - 9272: 0x00005639, - 9273: 0x00005632, - 9274: 0x0000563F, - 9275: 0x00005634, - 9276: 0x00005629, - 9277: 0x00005653, - 9278: 0x0000564E, - 9279: 0x00005657, - 9280: 0x00005674, - 9281: 0x00005636, - 9282: 0x0000562F, - 9283: 0x00005630, - 9284: 0x00005880, - 9285: 0x0000589F, - 9286: 0x0000589E, - 9287: 0x000058B3, - 9288: 0x0000589C, - 9289: 0x000058AE, - 9290: 0x000058A9, - 9291: 0x000058A6, - 9292: 0x0000596D, - 9293: 0x00005B09, - 9294: 0x00005AFB, - 9295: 0x00005B0B, - 9296: 0x00005AF5, - 9297: 0x00005B0C, - 9298: 0x00005B08, - 9299: 0x00005BEE, - 9300: 0x00005BEC, - 9301: 0x00005BE9, - 9302: 0x00005BEB, - 9303: 0x00005C64, - 9304: 0x00005C65, - 9305: 0x00005D9D, - 9306: 0x00005D94, - 9307: 0x00005E62, - 9308: 0x00005E5F, - 9309: 0x00005E61, - 9310: 0x00005EE2, - 9311: 0x00005EDA, - 9312: 0x00005EDF, - 9313: 0x00005EDD, - 9314: 0x00005EE3, - 9315: 0x00005EE0, - 9316: 0x00005F48, - 9317: 0x00005F71, - 9318: 0x00005FB7, - 9319: 0x00005FB5, - 9320: 0x00006176, - 9321: 0x00006167, - 9322: 0x0000616E, - 9323: 0x0000615D, - 9324: 0x00006155, - 9325: 0x00006182, - 9326: 0x0000617C, - 9327: 0x00006170, - 9328: 0x0000616B, - 9329: 0x0000617E, - 9330: 0x000061A7, - 9331: 0x00006190, - 9332: 0x000061AB, - 9333: 0x0000618E, - 9334: 0x000061AC, - 9335: 0x0000619A, - 9336: 0x000061A4, - 9337: 0x00006194, - 9338: 0x000061AE, - 9339: 0x0000622E, - 9340: 0x00006469, - 9341: 0x0000646F, - 9342: 0x00006479, - 9343: 0x0000649E, - 9344: 0x000064B2, - 9345: 0x00006488, - 9346: 0x00006490, - 9347: 0x000064B0, - 9348: 0x000064A5, - 9349: 0x00006493, - 9350: 0x00006495, - 9351: 0x000064A9, - 9352: 0x00006492, - 9353: 0x000064AE, - 9354: 0x000064AD, - 9355: 0x000064AB, - 9356: 0x0000649A, - 9357: 0x000064AC, - 9358: 0x00006499, - 9359: 0x000064A2, - 9360: 0x000064B3, - 9361: 0x00006575, - 9362: 0x00006577, - 9363: 0x00006578, - 9364: 0x000066AE, - 9365: 0x000066AB, - 9366: 0x000066B4, - 9367: 0x000066B1, - 9368: 0x00006A23, - 9369: 0x00006A1F, - 9370: 0x000069E8, - 9371: 0x00006A01, - 9372: 0x00006A1E, - 9373: 0x00006A19, - 9374: 0x000069FD, - 9375: 0x00006A21, - 9376: 0x00006A13, - 9377: 0x00006A0A, - 9378: 0x000069F3, - 9379: 0x00006A02, - 9380: 0x00006A05, - 9381: 0x000069ED, - 9382: 0x00006A11, - 9383: 0x00006B50, - 9384: 0x00006B4E, - 9385: 0x00006BA4, - 9386: 0x00006BC5, - 9387: 0x00006BC6, - 9388: 0x00006F3F, - 9389: 0x00006F7C, - 9390: 0x00006F84, - 9391: 0x00006F51, - 9392: 0x00006F66, - 9393: 0x00006F54, - 9394: 0x00006F86, - 9395: 0x00006F6D, - 9396: 0x00006F5B, - 9397: 0x00006F78, - 9398: 0x00006F6E, - 9399: 0x00006F8E, - 9400: 0x00006F7A, - 9401: 0x00006F70, - 9402: 0x00006F64, - 9403: 0x00006F97, - 9404: 0x00006F58, - 9405: 0x00006ED5, - 9406: 0x00006F6F, - 9407: 0x00006F60, - 9408: 0x00006F5F, - 9409: 0x0000719F, - 9410: 0x000071AC, - 9411: 0x000071B1, - 9412: 0x000071A8, - 9413: 0x00007256, - 9414: 0x0000729B, - 9415: 0x0000734E, - 9416: 0x00007357, - 9417: 0x00007469, - 9418: 0x0000748B, - 9419: 0x00007483, - 9420: 0x0000747E, - 9421: 0x00007480, - 9422: 0x0000757F, - 9423: 0x00007620, - 9424: 0x00007629, - 9425: 0x0000761F, - 9426: 0x00007624, - 9427: 0x00007626, - 9428: 0x00007621, - 9429: 0x00007622, - 9430: 0x0000769A, - 9431: 0x000076BA, - 9432: 0x000076E4, - 9433: 0x0000778E, - 9434: 0x00007787, - 9435: 0x0000778C, - 9436: 0x00007791, - 9437: 0x0000778B, - 9438: 0x000078CB, - 9439: 0x000078C5, - 9440: 0x000078BA, - 9441: 0x000078CA, - 9442: 0x000078BE, - 9443: 0x000078D5, - 9444: 0x000078BC, - 9445: 0x000078D0, - 9446: 0x00007A3F, - 9447: 0x00007A3C, - 9448: 0x00007A40, - 9449: 0x00007A3D, - 9450: 0x00007A37, - 9451: 0x00007A3B, - 9452: 0x00007AAF, - 9453: 0x00007AAE, - 9454: 0x00007BAD, - 9455: 0x00007BB1, - 9456: 0x00007BC4, - 9457: 0x00007BB4, - 9458: 0x00007BC6, - 9459: 0x00007BC7, - 9460: 0x00007BC1, - 9461: 0x00007BA0, - 9462: 0x00007BCC, - 9463: 0x00007CCA, - 9464: 0x00007DE0, - 9465: 0x00007DF4, - 9466: 0x00007DEF, - 9467: 0x00007DFB, - 9468: 0x00007DD8, - 9469: 0x00007DEC, - 9470: 0x00007DDD, - 9471: 0x00007DE8, - 9472: 0x00007DE3, - 9473: 0x00007DDA, - 9474: 0x00007DDE, - 9475: 0x00007DE9, - 9476: 0x00007D9E, - 9477: 0x00007DD9, - 9478: 0x00007DF2, - 9479: 0x00007DF9, - 9480: 0x00007F75, - 9481: 0x00007F77, - 9482: 0x00007FAF, - 9483: 0x00007FE9, - 9484: 0x00008026, - 9485: 0x0000819B, - 9486: 0x0000819C, - 9487: 0x0000819D, - 9488: 0x000081A0, - 9489: 0x0000819A, - 9490: 0x00008198, - 9491: 0x00008517, - 9492: 0x0000853D, - 9493: 0x0000851A, - 9494: 0x000084EE, - 9495: 0x0000852C, - 9496: 0x0000852D, - 9497: 0x00008513, - 9498: 0x00008511, - 9499: 0x00008523, - 9500: 0x00008521, - 9501: 0x00008514, - 9502: 0x000084EC, - 9503: 0x00008525, - 9504: 0x000084FF, - 9505: 0x00008506, - 9506: 0x00008782, - 9507: 0x00008774, - 9508: 0x00008776, - 9509: 0x00008760, - 9510: 0x00008766, - 9511: 0x00008778, - 9512: 0x00008768, - 9513: 0x00008759, - 9514: 0x00008757, - 9515: 0x0000874C, - 9516: 0x00008753, - 9517: 0x0000885B, - 9518: 0x0000885D, - 9519: 0x00008910, - 9520: 0x00008907, - 9521: 0x00008912, - 9522: 0x00008913, - 9523: 0x00008915, - 9524: 0x0000890A, - 9525: 0x00008ABC, - 9526: 0x00008AD2, - 9527: 0x00008AC7, - 9528: 0x00008AC4, - 9529: 0x00008A95, - 9530: 0x00008ACB, - 9531: 0x00008AF8, - 9532: 0x00008AB2, - 9533: 0x00008AC9, - 9534: 0x00008AC2, - 9535: 0x00008ABF, - 9536: 0x00008AB0, - 9537: 0x00008AD6, - 9538: 0x00008ACD, - 9539: 0x00008AB6, - 9540: 0x00008AB9, - 9541: 0x00008ADB, - 9542: 0x00008C4C, - 9543: 0x00008C4E, - 9544: 0x00008C6C, - 9545: 0x00008CE0, - 9546: 0x00008CDE, - 9547: 0x00008CE6, - 9548: 0x00008CE4, - 9549: 0x00008CEC, - 9550: 0x00008CED, - 9551: 0x00008CE2, - 9552: 0x00008CE3, - 9553: 0x00008CDC, - 9554: 0x00008CEA, - 9555: 0x00008CE1, - 9556: 0x00008D6D, - 9557: 0x00008D9F, - 9558: 0x00008DA3, - 9559: 0x00008E2B, - 9560: 0x00008E10, - 9561: 0x00008E1D, - 9562: 0x00008E22, - 9563: 0x00008E0F, - 9564: 0x00008E29, - 9565: 0x00008E1F, - 9566: 0x00008E21, - 9567: 0x00008E1E, - 9568: 0x00008EBA, - 9569: 0x00008F1D, - 9570: 0x00008F1B, - 9571: 0x00008F1F, - 9572: 0x00008F29, - 9573: 0x00008F26, - 9574: 0x00008F2A, - 9575: 0x00008F1C, - 9576: 0x00008F1E, - 9577: 0x00008F25, - 9578: 0x00009069, - 9579: 0x0000906E, - 9580: 0x00009068, - 9581: 0x0000906D, - 9582: 0x00009077, - 9583: 0x00009130, - 9584: 0x0000912D, - 9585: 0x00009127, - 9586: 0x00009131, - 9587: 0x00009187, - 9588: 0x00009189, - 9589: 0x0000918B, - 9590: 0x00009183, - 9591: 0x000092C5, - 9592: 0x000092BB, - 9593: 0x000092B7, - 9594: 0x000092EA, - 9595: 0x000092AC, - 9596: 0x000092E4, - 9597: 0x000092C1, - 9598: 0x000092B3, - 9599: 0x000092BC, - 9600: 0x000092D2, - 9601: 0x000092C7, - 9602: 0x000092F0, - 9603: 0x000092B2, - 9604: 0x000095AD, - 9605: 0x000095B1, - 9606: 0x00009704, - 9607: 0x00009706, - 9608: 0x00009707, - 9609: 0x00009709, - 9610: 0x00009760, - 9611: 0x0000978D, - 9612: 0x0000978B, - 9613: 0x0000978F, - 9614: 0x00009821, - 9615: 0x0000982B, - 9616: 0x0000981C, - 9617: 0x000098B3, - 9618: 0x0000990A, - 9619: 0x00009913, - 9620: 0x00009912, - 9621: 0x00009918, - 9622: 0x000099DD, - 9623: 0x000099D0, - 9624: 0x000099DF, - 9625: 0x000099DB, - 9626: 0x000099D1, - 9627: 0x000099D5, - 9628: 0x000099D2, - 9629: 0x000099D9, - 9630: 0x00009AB7, - 9631: 0x00009AEE, - 9632: 0x00009AEF, - 9633: 0x00009B27, - 9634: 0x00009B45, - 9635: 0x00009B44, - 9636: 0x00009B77, - 9637: 0x00009B6F, - 9638: 0x00009D06, - 9639: 0x00009D09, - 9640: 0x00009D03, - 9641: 0x00009EA9, - 9642: 0x00009EBE, - 9643: 0x00009ECE, - 9644: 0x000058A8, - 9645: 0x00009F52, - 9646: 0x00005112, - 9647: 0x00005118, - 9648: 0x00005114, - 9649: 0x00005110, - 9650: 0x00005115, - 9651: 0x00005180, - 9652: 0x000051AA, - 9653: 0x000051DD, - 9654: 0x00005291, - 9655: 0x00005293, - 9656: 0x000052F3, - 9657: 0x00005659, - 9658: 0x0000566B, - 9659: 0x00005679, - 9660: 0x00005669, - 9661: 0x00005664, - 9662: 0x00005678, - 9663: 0x0000566A, - 9664: 0x00005668, - 9665: 0x00005665, - 9666: 0x00005671, - 9667: 0x0000566F, - 9668: 0x0000566C, - 9669: 0x00005662, - 9670: 0x00005676, - 9671: 0x000058C1, - 9672: 0x000058BE, - 9673: 0x000058C7, - 9674: 0x000058C5, - 9675: 0x0000596E, - 9676: 0x00005B1D, - 9677: 0x00005B34, - 9678: 0x00005B78, - 9679: 0x00005BF0, - 9680: 0x00005C0E, - 9681: 0x00005F4A, - 9682: 0x000061B2, - 9683: 0x00006191, - 9684: 0x000061A9, - 9685: 0x0000618A, - 9686: 0x000061CD, - 9687: 0x000061B6, - 9688: 0x000061BE, - 9689: 0x000061CA, - 9690: 0x000061C8, - 9691: 0x00006230, - 9692: 0x000064C5, - 9693: 0x000064C1, - 9694: 0x000064CB, - 9695: 0x000064BB, - 9696: 0x000064BC, - 9697: 0x000064DA, - 9698: 0x000064C4, - 9699: 0x000064C7, - 9700: 0x000064C2, - 9701: 0x000064CD, - 9702: 0x000064BF, - 9703: 0x000064D2, - 9704: 0x000064D4, - 9705: 0x000064BE, - 9706: 0x00006574, - 9707: 0x000066C6, - 9708: 0x000066C9, - 9709: 0x000066B9, - 9710: 0x000066C4, - 9711: 0x000066C7, - 9712: 0x000066B8, - 9713: 0x00006A3D, - 9714: 0x00006A38, - 9715: 0x00006A3A, - 9716: 0x00006A59, - 9717: 0x00006A6B, - 9718: 0x00006A58, - 9719: 0x00006A39, - 9720: 0x00006A44, - 9721: 0x00006A62, - 9722: 0x00006A61, - 9723: 0x00006A4B, - 9724: 0x00006A47, - 9725: 0x00006A35, - 9726: 0x00006A5F, - 9727: 0x00006A48, - 9728: 0x00006B59, - 9729: 0x00006B77, - 9730: 0x00006C05, - 9731: 0x00006FC2, - 9732: 0x00006FB1, - 9733: 0x00006FA1, - 9734: 0x00006FC3, - 9735: 0x00006FA4, - 9736: 0x00006FC1, - 9737: 0x00006FA7, - 9738: 0x00006FB3, - 9739: 0x00006FC0, - 9740: 0x00006FB9, - 9741: 0x00006FB6, - 9742: 0x00006FA6, - 9743: 0x00006FA0, - 9744: 0x00006FB4, - 9745: 0x000071BE, - 9746: 0x000071C9, - 9747: 0x000071D0, - 9748: 0x000071D2, - 9749: 0x000071C8, - 9750: 0x000071D5, - 9751: 0x000071B9, - 9752: 0x000071CE, - 9753: 0x000071D9, - 9754: 0x000071DC, - 9755: 0x000071C3, - 9756: 0x000071C4, - 9757: 0x00007368, - 9758: 0x0000749C, - 9759: 0x000074A3, - 9760: 0x00007498, - 9761: 0x0000749F, - 9762: 0x0000749E, - 9763: 0x000074E2, - 9764: 0x0000750C, - 9765: 0x0000750D, - 9766: 0x00007634, - 9767: 0x00007638, - 9768: 0x0000763A, - 9769: 0x000076E7, - 9770: 0x000076E5, - 9771: 0x000077A0, - 9772: 0x0000779E, - 9773: 0x0000779F, - 9774: 0x000077A5, - 9775: 0x000078E8, - 9776: 0x000078DA, - 9777: 0x000078EC, - 9778: 0x000078E7, - 9779: 0x000079A6, - 9780: 0x00007A4D, - 9781: 0x00007A4E, - 9782: 0x00007A46, - 9783: 0x00007A4C, - 9784: 0x00007A4B, - 9785: 0x00007ABA, - 9786: 0x00007BD9, - 9787: 0x00007C11, - 9788: 0x00007BC9, - 9789: 0x00007BE4, - 9790: 0x00007BDB, - 9791: 0x00007BE1, - 9792: 0x00007BE9, - 9793: 0x00007BE6, - 9794: 0x00007CD5, - 9795: 0x00007CD6, - 9796: 0x00007E0A, - 9797: 0x00007E11, - 9798: 0x00007E08, - 9799: 0x00007E1B, - 9800: 0x00007E23, - 9801: 0x00007E1E, - 9802: 0x00007E1D, - 9803: 0x00007E09, - 9804: 0x00007E10, - 9805: 0x00007F79, - 9806: 0x00007FB2, - 9807: 0x00007FF0, - 9808: 0x00007FF1, - 9809: 0x00007FEE, - 9810: 0x00008028, - 9811: 0x000081B3, - 9812: 0x000081A9, - 9813: 0x000081A8, - 9814: 0x000081FB, - 9815: 0x00008208, - 9816: 0x00008258, - 9817: 0x00008259, - 9818: 0x0000854A, - 9819: 0x00008559, - 9820: 0x00008548, - 9821: 0x00008568, - 9822: 0x00008569, - 9823: 0x00008543, - 9824: 0x00008549, - 9825: 0x0000856D, - 9826: 0x0000856A, - 9827: 0x0000855E, - 9828: 0x00008783, - 9829: 0x0000879F, - 9830: 0x0000879E, - 9831: 0x000087A2, - 9832: 0x0000878D, - 9833: 0x00008861, - 9834: 0x0000892A, - 9835: 0x00008932, - 9836: 0x00008925, - 9837: 0x0000892B, - 9838: 0x00008921, - 9839: 0x000089AA, - 9840: 0x000089A6, - 9841: 0x00008AE6, - 9842: 0x00008AFA, - 9843: 0x00008AEB, - 9844: 0x00008AF1, - 9845: 0x00008B00, - 9846: 0x00008ADC, - 9847: 0x00008AE7, - 9848: 0x00008AEE, - 9849: 0x00008AFE, - 9850: 0x00008B01, - 9851: 0x00008B02, - 9852: 0x00008AF7, - 9853: 0x00008AED, - 9854: 0x00008AF3, - 9855: 0x00008AF6, - 9856: 0x00008AFC, - 9857: 0x00008C6B, - 9858: 0x00008C6D, - 9859: 0x00008C93, - 9860: 0x00008CF4, - 9861: 0x00008E44, - 9862: 0x00008E31, - 9863: 0x00008E34, - 9864: 0x00008E42, - 9865: 0x00008E39, - 9866: 0x00008E35, - 9867: 0x00008F3B, - 9868: 0x00008F2F, - 9869: 0x00008F38, - 9870: 0x00008F33, - 9871: 0x00008FA8, - 9872: 0x00008FA6, - 9873: 0x00009075, - 9874: 0x00009074, - 9875: 0x00009078, - 9876: 0x00009072, - 9877: 0x0000907C, - 9878: 0x0000907A, - 9879: 0x00009134, - 9880: 0x00009192, - 9881: 0x00009320, - 9882: 0x00009336, - 9883: 0x000092F8, - 9884: 0x00009333, - 9885: 0x0000932F, - 9886: 0x00009322, - 9887: 0x000092FC, - 9888: 0x0000932B, - 9889: 0x00009304, - 9890: 0x0000931A, - 9891: 0x00009310, - 9892: 0x00009326, - 9893: 0x00009321, - 9894: 0x00009315, - 9895: 0x0000932E, - 9896: 0x00009319, - 9897: 0x000095BB, - 9898: 0x000096A7, - 9899: 0x000096A8, - 9900: 0x000096AA, - 9901: 0x000096D5, - 9902: 0x0000970E, - 9903: 0x00009711, - 9904: 0x00009716, - 9905: 0x0000970D, - 9906: 0x00009713, - 9907: 0x0000970F, - 9908: 0x0000975B, - 9909: 0x0000975C, - 9910: 0x00009766, - 9911: 0x00009798, - 9912: 0x00009830, - 9913: 0x00009838, - 9914: 0x0000983B, - 9915: 0x00009837, - 9916: 0x0000982D, - 9917: 0x00009839, - 9918: 0x00009824, - 9919: 0x00009910, - 9920: 0x00009928, - 9921: 0x0000991E, - 9922: 0x0000991B, - 9923: 0x00009921, - 9924: 0x0000991A, - 9925: 0x000099ED, - 9926: 0x000099E2, - 9927: 0x000099F1, - 9928: 0x00009AB8, - 9929: 0x00009ABC, - 9930: 0x00009AFB, - 9931: 0x00009AED, - 9932: 0x00009B28, - 9933: 0x00009B91, - 9934: 0x00009D15, - 9935: 0x00009D23, - 9936: 0x00009D26, - 9937: 0x00009D28, - 9938: 0x00009D12, - 9939: 0x00009D1B, - 9940: 0x00009ED8, - 9941: 0x00009ED4, - 9942: 0x00009F8D, - 9943: 0x00009F9C, - 9944: 0x0000512A, - 9945: 0x0000511F, - 9946: 0x00005121, - 9947: 0x00005132, - 9948: 0x000052F5, - 9949: 0x0000568E, - 9950: 0x00005680, - 9951: 0x00005690, - 9952: 0x00005685, - 9953: 0x00005687, - 9954: 0x0000568F, - 9955: 0x000058D5, - 9956: 0x000058D3, - 9957: 0x000058D1, - 9958: 0x000058CE, - 9959: 0x00005B30, - 9960: 0x00005B2A, - 9961: 0x00005B24, - 9962: 0x00005B7A, - 9963: 0x00005C37, - 9964: 0x00005C68, - 9965: 0x00005DBC, - 9966: 0x00005DBA, - 9967: 0x00005DBD, - 9968: 0x00005DB8, - 9969: 0x00005E6B, - 9970: 0x00005F4C, - 9971: 0x00005FBD, - 9972: 0x000061C9, - 9973: 0x000061C2, - 9974: 0x000061C7, - 9975: 0x000061E6, - 9976: 0x000061CB, - 9977: 0x00006232, - 9978: 0x00006234, - 9979: 0x000064CE, - 9980: 0x000064CA, - 9981: 0x000064D8, - 9982: 0x000064E0, - 9983: 0x000064F0, - 9984: 0x000064E6, - 9985: 0x000064EC, - 9986: 0x000064F1, - 9987: 0x000064E2, - 9988: 0x000064ED, - 9989: 0x00006582, - 9990: 0x00006583, - 9991: 0x000066D9, - 9992: 0x000066D6, - 9993: 0x00006A80, - 9994: 0x00006A94, - 9995: 0x00006A84, - 9996: 0x00006AA2, - 9997: 0x00006A9C, - 9998: 0x00006ADB, - 9999: 0x00006AA3, - 10000: 0x00006A7E, - 10001: 0x00006A97, - 10002: 0x00006A90, - 10003: 0x00006AA0, - 10004: 0x00006B5C, - 10005: 0x00006BAE, - 10006: 0x00006BDA, - 10007: 0x00006C08, - 10008: 0x00006FD8, - 10009: 0x00006FF1, - 10010: 0x00006FDF, - 10011: 0x00006FE0, - 10012: 0x00006FDB, - 10013: 0x00006FE4, - 10014: 0x00006FEB, - 10015: 0x00006FEF, - 10016: 0x00006F80, - 10017: 0x00006FEC, - 10018: 0x00006FE1, - 10019: 0x00006FE9, - 10020: 0x00006FD5, - 10021: 0x00006FEE, - 10022: 0x00006FF0, - 10023: 0x000071E7, - 10024: 0x000071DF, - 10025: 0x000071EE, - 10026: 0x000071E6, - 10027: 0x000071E5, - 10028: 0x000071ED, - 10029: 0x000071EC, - 10030: 0x000071F4, - 10031: 0x000071E0, - 10032: 0x00007235, - 10033: 0x00007246, - 10034: 0x00007370, - 10035: 0x00007372, - 10036: 0x000074A9, - 10037: 0x000074B0, - 10038: 0x000074A6, - 10039: 0x000074A8, - 10040: 0x00007646, - 10041: 0x00007642, - 10042: 0x0000764C, - 10043: 0x000076EA, - 10044: 0x000077B3, - 10045: 0x000077AA, - 10046: 0x000077B0, - 10047: 0x000077AC, - 10048: 0x000077A7, - 10049: 0x000077AD, - 10050: 0x000077EF, - 10051: 0x000078F7, - 10052: 0x000078FA, - 10053: 0x000078F4, - 10054: 0x000078EF, - 10055: 0x00007901, - 10056: 0x000079A7, - 10057: 0x000079AA, - 10058: 0x00007A57, - 10059: 0x00007ABF, - 10060: 0x00007C07, - 10061: 0x00007C0D, - 10062: 0x00007BFE, - 10063: 0x00007BF7, - 10064: 0x00007C0C, - 10065: 0x00007BE0, - 10066: 0x00007CE0, - 10067: 0x00007CDC, - 10068: 0x00007CDE, - 10069: 0x00007CE2, - 10070: 0x00007CDF, - 10071: 0x00007CD9, - 10072: 0x00007CDD, - 10073: 0x00007E2E, - 10074: 0x00007E3E, - 10075: 0x00007E46, - 10076: 0x00007E37, - 10077: 0x00007E32, - 10078: 0x00007E43, - 10079: 0x00007E2B, - 10080: 0x00007E3D, - 10081: 0x00007E31, - 10082: 0x00007E45, - 10083: 0x00007E41, - 10084: 0x00007E34, - 10085: 0x00007E39, - 10086: 0x00007E48, - 10087: 0x00007E35, - 10088: 0x00007E3F, - 10089: 0x00007E2F, - 10090: 0x00007F44, - 10091: 0x00007FF3, - 10092: 0x00007FFC, - 10093: 0x00008071, - 10094: 0x00008072, - 10095: 0x00008070, - 10096: 0x0000806F, - 10097: 0x00008073, - 10098: 0x000081C6, - 10099: 0x000081C3, - 10100: 0x000081BA, - 10101: 0x000081C2, - 10102: 0x000081C0, - 10103: 0x000081BF, - 10104: 0x000081BD, - 10105: 0x000081C9, - 10106: 0x000081BE, - 10107: 0x000081E8, - 10108: 0x00008209, - 10109: 0x00008271, - 10110: 0x000085AA, - 10111: 0x00008584, - 10112: 0x0000857E, - 10113: 0x0000859C, - 10114: 0x00008591, - 10115: 0x00008594, - 10116: 0x000085AF, - 10117: 0x0000859B, - 10118: 0x00008587, - 10119: 0x000085A8, - 10120: 0x0000858A, - 10121: 0x00008667, - 10122: 0x000087C0, - 10123: 0x000087D1, - 10124: 0x000087B3, - 10125: 0x000087D2, - 10126: 0x000087C6, - 10127: 0x000087AB, - 10128: 0x000087BB, - 10129: 0x000087BA, - 10130: 0x000087C8, - 10131: 0x000087CB, - 10132: 0x0000893B, - 10133: 0x00008936, - 10134: 0x00008944, - 10135: 0x00008938, - 10136: 0x0000893D, - 10137: 0x000089AC, - 10138: 0x00008B0E, - 10139: 0x00008B17, - 10140: 0x00008B19, - 10141: 0x00008B1B, - 10142: 0x00008B0A, - 10143: 0x00008B20, - 10144: 0x00008B1D, - 10145: 0x00008B04, - 10146: 0x00008B10, - 10147: 0x00008C41, - 10148: 0x00008C3F, - 10149: 0x00008C73, - 10150: 0x00008CFA, - 10151: 0x00008CFD, - 10152: 0x00008CFC, - 10153: 0x00008CF8, - 10154: 0x00008CFB, - 10155: 0x00008DA8, - 10156: 0x00008E49, - 10157: 0x00008E4B, - 10158: 0x00008E48, - 10159: 0x00008E4A, - 10160: 0x00008F44, - 10161: 0x00008F3E, - 10162: 0x00008F42, - 10163: 0x00008F45, - 10164: 0x00008F3F, - 10165: 0x0000907F, - 10166: 0x0000907D, - 10167: 0x00009084, - 10168: 0x00009081, - 10169: 0x00009082, - 10170: 0x00009080, - 10171: 0x00009139, - 10172: 0x000091A3, - 10173: 0x0000919E, - 10174: 0x0000919C, - 10175: 0x0000934D, - 10176: 0x00009382, - 10177: 0x00009328, - 10178: 0x00009375, - 10179: 0x0000934A, - 10180: 0x00009365, - 10181: 0x0000934B, - 10182: 0x00009318, - 10183: 0x0000937E, - 10184: 0x0000936C, - 10185: 0x0000935B, - 10186: 0x00009370, - 10187: 0x0000935A, - 10188: 0x00009354, - 10189: 0x000095CA, - 10190: 0x000095CB, - 10191: 0x000095CC, - 10192: 0x000095C8, - 10193: 0x000095C6, - 10194: 0x000096B1, - 10195: 0x000096B8, - 10196: 0x000096D6, - 10197: 0x0000971C, - 10198: 0x0000971E, - 10199: 0x000097A0, - 10200: 0x000097D3, - 10201: 0x00009846, - 10202: 0x000098B6, - 10203: 0x00009935, - 10204: 0x00009A01, - 10205: 0x000099FF, - 10206: 0x00009BAE, - 10207: 0x00009BAB, - 10208: 0x00009BAA, - 10209: 0x00009BAD, - 10210: 0x00009D3B, - 10211: 0x00009D3F, - 10212: 0x00009E8B, - 10213: 0x00009ECF, - 10214: 0x00009EDE, - 10215: 0x00009EDC, - 10216: 0x00009EDD, - 10217: 0x00009EDB, - 10218: 0x00009F3E, - 10219: 0x00009F4B, - 10220: 0x000053E2, - 10221: 0x00005695, - 10222: 0x000056AE, - 10223: 0x000058D9, - 10224: 0x000058D8, - 10225: 0x00005B38, - 10226: 0x00005F5D, - 10227: 0x000061E3, - 10228: 0x00006233, - 10229: 0x000064F4, - 10230: 0x000064F2, - 10231: 0x000064FE, - 10232: 0x00006506, - 10233: 0x000064FA, - 10234: 0x000064FB, - 10235: 0x000064F7, - 10236: 0x000065B7, - 10237: 0x000066DC, - 10238: 0x00006726, - 10239: 0x00006AB3, - 10240: 0x00006AAC, - 10241: 0x00006AC3, - 10242: 0x00006ABB, - 10243: 0x00006AB8, - 10244: 0x00006AC2, - 10245: 0x00006AAE, - 10246: 0x00006AAF, - 10247: 0x00006B5F, - 10248: 0x00006B78, - 10249: 0x00006BAF, - 10250: 0x00007009, - 10251: 0x0000700B, - 10252: 0x00006FFE, - 10253: 0x00007006, - 10254: 0x00006FFA, - 10255: 0x00007011, - 10256: 0x0000700F, - 10257: 0x000071FB, - 10258: 0x000071FC, - 10259: 0x000071FE, - 10260: 0x000071F8, - 10261: 0x00007377, - 10262: 0x00007375, - 10263: 0x000074A7, - 10264: 0x000074BF, - 10265: 0x00007515, - 10266: 0x00007656, - 10267: 0x00007658, - 10268: 0x00007652, - 10269: 0x000077BD, - 10270: 0x000077BF, - 10271: 0x000077BB, - 10272: 0x000077BC, - 10273: 0x0000790E, - 10274: 0x000079AE, - 10275: 0x00007A61, - 10276: 0x00007A62, - 10277: 0x00007A60, - 10278: 0x00007AC4, - 10279: 0x00007AC5, - 10280: 0x00007C2B, - 10281: 0x00007C27, - 10282: 0x00007C2A, - 10283: 0x00007C1E, - 10284: 0x00007C23, - 10285: 0x00007C21, - 10286: 0x00007CE7, - 10287: 0x00007E54, - 10288: 0x00007E55, - 10289: 0x00007E5E, - 10290: 0x00007E5A, - 10291: 0x00007E61, - 10292: 0x00007E52, - 10293: 0x00007E59, - 10294: 0x00007F48, - 10295: 0x00007FF9, - 10296: 0x00007FFB, - 10297: 0x00008077, - 10298: 0x00008076, - 10299: 0x000081CD, - 10300: 0x000081CF, - 10301: 0x0000820A, - 10302: 0x000085CF, - 10303: 0x000085A9, - 10304: 0x000085CD, - 10305: 0x000085D0, - 10306: 0x000085C9, - 10307: 0x000085B0, - 10308: 0x000085BA, - 10309: 0x000085B9, - 10310: 0x000085A6, - 10311: 0x000087EF, - 10312: 0x000087EC, - 10313: 0x000087F2, - 10314: 0x000087E0, - 10315: 0x00008986, - 10316: 0x000089B2, - 10317: 0x000089F4, - 10318: 0x00008B28, - 10319: 0x00008B39, - 10320: 0x00008B2C, - 10321: 0x00008B2B, - 10322: 0x00008C50, - 10323: 0x00008D05, - 10324: 0x00008E59, - 10325: 0x00008E63, - 10326: 0x00008E66, - 10327: 0x00008E64, - 10328: 0x00008E5F, - 10329: 0x00008E55, - 10330: 0x00008EC0, - 10331: 0x00008F49, - 10332: 0x00008F4D, - 10333: 0x00009087, - 10334: 0x00009083, - 10335: 0x00009088, - 10336: 0x000091AB, - 10337: 0x000091AC, - 10338: 0x000091D0, - 10339: 0x00009394, - 10340: 0x0000938A, - 10341: 0x00009396, - 10342: 0x000093A2, - 10343: 0x000093B3, - 10344: 0x000093AE, - 10345: 0x000093AC, - 10346: 0x000093B0, - 10347: 0x00009398, - 10348: 0x0000939A, - 10349: 0x00009397, - 10350: 0x000095D4, - 10351: 0x000095D6, - 10352: 0x000095D0, - 10353: 0x000095D5, - 10354: 0x000096E2, - 10355: 0x000096DC, - 10356: 0x000096D9, - 10357: 0x000096DB, - 10358: 0x000096DE, - 10359: 0x00009724, - 10360: 0x000097A3, - 10361: 0x000097A6, - 10362: 0x000097AD, - 10363: 0x000097F9, - 10364: 0x0000984D, - 10365: 0x0000984F, - 10366: 0x0000984C, - 10367: 0x0000984E, - 10368: 0x00009853, - 10369: 0x000098BA, - 10370: 0x0000993E, - 10371: 0x0000993F, - 10372: 0x0000993D, - 10373: 0x0000992E, - 10374: 0x000099A5, - 10375: 0x00009A0E, - 10376: 0x00009AC1, - 10377: 0x00009B03, - 10378: 0x00009B06, - 10379: 0x00009B4F, - 10380: 0x00009B4E, - 10381: 0x00009B4D, - 10382: 0x00009BCA, - 10383: 0x00009BC9, - 10384: 0x00009BFD, - 10385: 0x00009BC8, - 10386: 0x00009BC0, - 10387: 0x00009D51, - 10388: 0x00009D5D, - 10389: 0x00009D60, - 10390: 0x00009EE0, - 10391: 0x00009F15, - 10392: 0x00009F2C, - 10393: 0x00005133, - 10394: 0x000056A5, - 10395: 0x000058DE, - 10396: 0x000058DF, - 10397: 0x000058E2, - 10398: 0x00005BF5, - 10399: 0x00009F90, - 10400: 0x00005EEC, - 10401: 0x000061F2, - 10402: 0x000061F7, - 10403: 0x000061F6, - 10404: 0x000061F5, - 10405: 0x00006500, - 10406: 0x0000650F, - 10407: 0x000066E0, - 10408: 0x000066DD, - 10409: 0x00006AE5, - 10410: 0x00006ADD, - 10411: 0x00006ADA, - 10412: 0x00006AD3, - 10413: 0x0000701B, - 10414: 0x0000701F, - 10415: 0x00007028, - 10416: 0x0000701A, - 10417: 0x0000701D, - 10418: 0x00007015, - 10419: 0x00007018, - 10420: 0x00007206, - 10421: 0x0000720D, - 10422: 0x00007258, - 10423: 0x000072A2, - 10424: 0x00007378, - 10425: 0x0000737A, - 10426: 0x000074BD, - 10427: 0x000074CA, - 10428: 0x000074E3, - 10429: 0x00007587, - 10430: 0x00007586, - 10431: 0x0000765F, - 10432: 0x00007661, - 10433: 0x000077C7, - 10434: 0x00007919, - 10435: 0x000079B1, - 10436: 0x00007A6B, - 10437: 0x00007A69, - 10438: 0x00007C3E, - 10439: 0x00007C3F, - 10440: 0x00007C38, - 10441: 0x00007C3D, - 10442: 0x00007C37, - 10443: 0x00007C40, - 10444: 0x00007E6B, - 10445: 0x00007E6D, - 10446: 0x00007E79, - 10447: 0x00007E69, - 10448: 0x00007E6A, - 10449: 0x00007F85, - 10450: 0x00007E73, - 10451: 0x00007FB6, - 10452: 0x00007FB9, - 10453: 0x00007FB8, - 10454: 0x000081D8, - 10455: 0x000085E9, - 10456: 0x000085DD, - 10457: 0x000085EA, - 10458: 0x000085D5, - 10459: 0x000085E4, - 10460: 0x000085E5, - 10461: 0x000085F7, - 10462: 0x000087FB, - 10463: 0x00008805, - 10464: 0x0000880D, - 10465: 0x000087F9, - 10466: 0x000087FE, - 10467: 0x00008960, - 10468: 0x0000895F, - 10469: 0x00008956, - 10470: 0x0000895E, - 10471: 0x00008B41, - 10472: 0x00008B5C, - 10473: 0x00008B58, - 10474: 0x00008B49, - 10475: 0x00008B5A, - 10476: 0x00008B4E, - 10477: 0x00008B4F, - 10478: 0x00008B46, - 10479: 0x00008B59, - 10480: 0x00008D08, - 10481: 0x00008D0A, - 10482: 0x00008E7C, - 10483: 0x00008E72, - 10484: 0x00008E87, - 10485: 0x00008E76, - 10486: 0x00008E6C, - 10487: 0x00008E7A, - 10488: 0x00008E74, - 10489: 0x00008F54, - 10490: 0x00008F4E, - 10491: 0x00008FAD, - 10492: 0x0000908A, - 10493: 0x0000908B, - 10494: 0x000091B1, - 10495: 0x000091AE, - 10496: 0x000093E1, - 10497: 0x000093D1, - 10498: 0x000093DF, - 10499: 0x000093C3, - 10500: 0x000093C8, - 10501: 0x000093DC, - 10502: 0x000093DD, - 10503: 0x000093D6, - 10504: 0x000093E2, - 10505: 0x000093CD, - 10506: 0x000093D8, - 10507: 0x000093E4, - 10508: 0x000093D7, - 10509: 0x000093E8, - 10510: 0x000095DC, - 10511: 0x000096B4, - 10512: 0x000096E3, - 10513: 0x0000972A, - 10514: 0x00009727, - 10515: 0x00009761, - 10516: 0x000097DC, - 10517: 0x000097FB, - 10518: 0x0000985E, - 10519: 0x00009858, - 10520: 0x0000985B, - 10521: 0x000098BC, - 10522: 0x00009945, - 10523: 0x00009949, - 10524: 0x00009A16, - 10525: 0x00009A19, - 10526: 0x00009B0D, - 10527: 0x00009BE8, - 10528: 0x00009BE7, - 10529: 0x00009BD6, - 10530: 0x00009BDB, - 10531: 0x00009D89, - 10532: 0x00009D61, - 10533: 0x00009D72, - 10534: 0x00009D6A, - 10535: 0x00009D6C, - 10536: 0x00009E92, - 10537: 0x00009E97, - 10538: 0x00009E93, - 10539: 0x00009EB4, - 10540: 0x000052F8, - 10541: 0x000056A8, - 10542: 0x000056B7, - 10543: 0x000056B6, - 10544: 0x000056B4, - 10545: 0x000056BC, - 10546: 0x000058E4, - 10547: 0x00005B40, - 10548: 0x00005B43, - 10549: 0x00005B7D, - 10550: 0x00005BF6, - 10551: 0x00005DC9, - 10552: 0x000061F8, - 10553: 0x000061FA, - 10554: 0x00006518, - 10555: 0x00006514, - 10556: 0x00006519, - 10557: 0x000066E6, - 10558: 0x00006727, - 10559: 0x00006AEC, - 10560: 0x0000703E, - 10561: 0x00007030, - 10562: 0x00007032, - 10563: 0x00007210, - 10564: 0x0000737B, - 10565: 0x000074CF, - 10566: 0x00007662, - 10567: 0x00007665, - 10568: 0x00007926, - 10569: 0x0000792A, - 10570: 0x0000792C, - 10571: 0x0000792B, - 10572: 0x00007AC7, - 10573: 0x00007AF6, - 10574: 0x00007C4C, - 10575: 0x00007C43, - 10576: 0x00007C4D, - 10577: 0x00007CEF, - 10578: 0x00007CF0, - 10579: 0x00008FAE, - 10580: 0x00007E7D, - 10581: 0x00007E7C, - 10582: 0x00007E82, - 10583: 0x00007F4C, - 10584: 0x00008000, - 10585: 0x000081DA, - 10586: 0x00008266, - 10587: 0x000085FB, - 10588: 0x000085F9, - 10589: 0x00008611, - 10590: 0x000085FA, - 10591: 0x00008606, - 10592: 0x0000860B, - 10593: 0x00008607, - 10594: 0x0000860A, - 10595: 0x00008814, - 10596: 0x00008815, - 10597: 0x00008964, - 10598: 0x000089BA, - 10599: 0x000089F8, - 10600: 0x00008B70, - 10601: 0x00008B6C, - 10602: 0x00008B66, - 10603: 0x00008B6F, - 10604: 0x00008B5F, - 10605: 0x00008B6B, - 10606: 0x00008D0F, - 10607: 0x00008D0D, - 10608: 0x00008E89, - 10609: 0x00008E81, - 10610: 0x00008E85, - 10611: 0x00008E82, - 10612: 0x000091B4, - 10613: 0x000091CB, - 10614: 0x00009418, - 10615: 0x00009403, - 10616: 0x000093FD, - 10617: 0x000095E1, - 10618: 0x00009730, - 10619: 0x000098C4, - 10620: 0x00009952, - 10621: 0x00009951, - 10622: 0x000099A8, - 10623: 0x00009A2B, - 10624: 0x00009A30, - 10625: 0x00009A37, - 10626: 0x00009A35, - 10627: 0x00009C13, - 10628: 0x00009C0D, - 10629: 0x00009E79, - 10630: 0x00009EB5, - 10631: 0x00009EE8, - 10632: 0x00009F2F, - 10633: 0x00009F5F, - 10634: 0x00009F63, - 10635: 0x00009F61, - 10636: 0x00005137, - 10637: 0x00005138, - 10638: 0x000056C1, - 10639: 0x000056C0, - 10640: 0x000056C2, - 10641: 0x00005914, - 10642: 0x00005C6C, - 10643: 0x00005DCD, - 10644: 0x000061FC, - 10645: 0x000061FE, - 10646: 0x0000651D, - 10647: 0x0000651C, - 10648: 0x00006595, - 10649: 0x000066E9, - 10650: 0x00006AFB, - 10651: 0x00006B04, - 10652: 0x00006AFA, - 10653: 0x00006BB2, - 10654: 0x0000704C, - 10655: 0x0000721B, - 10656: 0x000072A7, - 10657: 0x000074D6, - 10658: 0x000074D4, - 10659: 0x00007669, - 10660: 0x000077D3, - 10661: 0x00007C50, - 10662: 0x00007E8F, - 10663: 0x00007E8C, - 10664: 0x00007FBC, - 10665: 0x00008617, - 10666: 0x0000862D, - 10667: 0x0000861A, - 10668: 0x00008823, - 10669: 0x00008822, - 10670: 0x00008821, - 10671: 0x0000881F, - 10672: 0x0000896A, - 10673: 0x0000896C, - 10674: 0x000089BD, - 10675: 0x00008B74, - 10676: 0x00008B77, - 10677: 0x00008B7D, - 10678: 0x00008D13, - 10679: 0x00008E8A, - 10680: 0x00008E8D, - 10681: 0x00008E8B, - 10682: 0x00008F5F, - 10683: 0x00008FAF, - 10684: 0x000091BA, - 10685: 0x0000942E, - 10686: 0x00009433, - 10687: 0x00009435, - 10688: 0x0000943A, - 10689: 0x00009438, - 10690: 0x00009432, - 10691: 0x0000942B, - 10692: 0x000095E2, - 10693: 0x00009738, - 10694: 0x00009739, - 10695: 0x00009732, - 10696: 0x000097FF, - 10697: 0x00009867, - 10698: 0x00009865, - 10699: 0x00009957, - 10700: 0x00009A45, - 10701: 0x00009A43, - 10702: 0x00009A40, - 10703: 0x00009A3E, - 10704: 0x00009ACF, - 10705: 0x00009B54, - 10706: 0x00009B51, - 10707: 0x00009C2D, - 10708: 0x00009C25, - 10709: 0x00009DAF, - 10710: 0x00009DB4, - 10711: 0x00009DC2, - 10712: 0x00009DB8, - 10713: 0x00009E9D, - 10714: 0x00009EEF, - 10715: 0x00009F19, - 10716: 0x00009F5C, - 10717: 0x00009F66, - 10718: 0x00009F67, - 10719: 0x0000513C, - 10720: 0x0000513B, - 10721: 0x000056C8, - 10722: 0x000056CA, - 10723: 0x000056C9, - 10724: 0x00005B7F, - 10725: 0x00005DD4, - 10726: 0x00005DD2, - 10727: 0x00005F4E, - 10728: 0x000061FF, - 10729: 0x00006524, - 10730: 0x00006B0A, - 10731: 0x00006B61, - 10732: 0x00007051, - 10733: 0x00007058, - 10734: 0x00007380, - 10735: 0x000074E4, - 10736: 0x0000758A, - 10737: 0x0000766E, - 10738: 0x0000766C, - 10739: 0x000079B3, - 10740: 0x00007C60, - 10741: 0x00007C5F, - 10742: 0x0000807E, - 10743: 0x0000807D, - 10744: 0x000081DF, - 10745: 0x00008972, - 10746: 0x0000896F, - 10747: 0x000089FC, - 10748: 0x00008B80, - 10749: 0x00008D16, - 10750: 0x00008D17, - 10751: 0x00008E91, - 10752: 0x00008E93, - 10753: 0x00008F61, - 10754: 0x00009148, - 10755: 0x00009444, - 10756: 0x00009451, - 10757: 0x00009452, - 10758: 0x0000973D, - 10759: 0x0000973E, - 10760: 0x000097C3, - 10761: 0x000097C1, - 10762: 0x0000986B, - 10763: 0x00009955, - 10764: 0x00009A55, - 10765: 0x00009A4D, - 10766: 0x00009AD2, - 10767: 0x00009B1A, - 10768: 0x00009C49, - 10769: 0x00009C31, - 10770: 0x00009C3E, - 10771: 0x00009C3B, - 10772: 0x00009DD3, - 10773: 0x00009DD7, - 10774: 0x00009F34, - 10775: 0x00009F6C, - 10776: 0x00009F6A, - 10777: 0x00009F94, - 10778: 0x000056CC, - 10779: 0x00005DD6, - 10780: 0x00006200, - 10781: 0x00006523, - 10782: 0x0000652B, - 10783: 0x0000652A, - 10784: 0x000066EC, - 10785: 0x00006B10, - 10786: 0x000074DA, - 10787: 0x00007ACA, - 10788: 0x00007C64, - 10789: 0x00007C63, - 10790: 0x00007C65, - 10791: 0x00007E93, - 10792: 0x00007E96, - 10793: 0x00007E94, - 10794: 0x000081E2, - 10795: 0x00008638, - 10796: 0x0000863F, - 10797: 0x00008831, - 10798: 0x00008B8A, - 10799: 0x00009090, - 10800: 0x0000908F, - 10801: 0x00009463, - 10802: 0x00009460, - 10803: 0x00009464, - 10804: 0x00009768, - 10805: 0x0000986F, - 10806: 0x0000995C, - 10807: 0x00009A5A, - 10808: 0x00009A5B, - 10809: 0x00009A57, - 10810: 0x00009AD3, - 10811: 0x00009AD4, - 10812: 0x00009AD1, - 10813: 0x00009C54, - 10814: 0x00009C57, - 10815: 0x00009C56, - 10816: 0x00009DE5, - 10817: 0x00009E9F, - 10818: 0x00009EF4, - 10819: 0x000056D1, - 10820: 0x000058E9, - 10821: 0x0000652C, - 10822: 0x0000705E, - 10823: 0x00007671, - 10824: 0x00007672, - 10825: 0x000077D7, - 10826: 0x00007F50, - 10827: 0x00007F88, - 10828: 0x00008836, - 10829: 0x00008839, - 10830: 0x00008862, - 10831: 0x00008B93, - 10832: 0x00008B92, - 10833: 0x00008B96, - 10834: 0x00008277, - 10835: 0x00008D1B, - 10836: 0x000091C0, - 10837: 0x0000946A, - 10838: 0x00009742, - 10839: 0x00009748, - 10840: 0x00009744, - 10841: 0x000097C6, - 10842: 0x00009870, - 10843: 0x00009A5F, - 10844: 0x00009B22, - 10845: 0x00009B58, - 10846: 0x00009C5F, - 10847: 0x00009DF9, - 10848: 0x00009DFA, - 10849: 0x00009E7C, - 10850: 0x00009E7D, - 10851: 0x00009F07, - 10852: 0x00009F77, - 10853: 0x00009F72, - 10854: 0x00005EF3, - 10855: 0x00006B16, - 10856: 0x00007063, - 10857: 0x00007C6C, - 10858: 0x00007C6E, - 10859: 0x0000883B, - 10860: 0x000089C0, - 10861: 0x00008EA1, - 10862: 0x000091C1, - 10863: 0x00009472, - 10864: 0x00009470, - 10865: 0x00009871, - 10866: 0x0000995E, - 10867: 0x00009AD6, - 10868: 0x00009B23, - 10869: 0x00009ECC, - 10870: 0x00007064, - 10871: 0x000077DA, - 10872: 0x00008B9A, - 10873: 0x00009477, - 10874: 0x000097C9, - 10875: 0x00009A62, - 10876: 0x00009A65, - 10877: 0x00007E9C, - 10878: 0x00008B9C, - 10879: 0x00008EAA, - 10880: 0x000091C5, - 10881: 0x0000947D, - 10882: 0x0000947E, - 10883: 0x0000947C, - 10884: 0x00009C77, - 10885: 0x00009C78, - 10886: 0x00009EF7, - 10887: 0x00008C54, - 10888: 0x0000947F, - 10889: 0x00009E1A, - 10890: 0x00007228, - 10891: 0x00009A6A, - 10892: 0x00009B31, - 10893: 0x00009E1B, - 10894: 0x00009E1E, - 10895: 0x00007C72, - 10896: 0x00002460, - 10897: 0x00002461, - 10898: 0x00002462, - 10899: 0x00002463, - 10900: 0x00002464, - 10901: 0x00002465, - 10902: 0x00002466, - 10903: 0x00002467, - 10904: 0x00002468, - 10905: 0x00002469, - 10906: 0x00002474, - 10907: 0x00002475, - 10908: 0x00002476, - 10909: 0x00002477, - 10910: 0x00002478, - 10911: 0x00002479, - 10912: 0x0000247A, - 10913: 0x0000247B, - 10914: 0x0000247C, - 10915: 0x0000247D, - 10916: 0x00002170, - 10917: 0x00002171, - 10918: 0x00002172, - 10919: 0x00002173, - 10920: 0x00002174, - 10921: 0x00002175, - 10922: 0x00002176, - 10923: 0x00002177, - 10924: 0x00002178, - 10925: 0x00002179, - 10926: 0x00004E36, - 10927: 0x00004E3F, - 10928: 0x00004E85, - 10929: 0x00004EA0, - 10930: 0x00005182, - 10931: 0x00005196, - 10932: 0x000051AB, - 10933: 0x000052F9, - 10934: 0x00005338, - 10935: 0x00005369, - 10936: 0x000053B6, - 10937: 0x0000590A, - 10938: 0x00005B80, - 10939: 0x00005DDB, - 10940: 0x00002F33, - 10941: 0x00005E7F, - 10942: 0x00005EF4, - 10943: 0x00005F50, - 10944: 0x00005F61, - 10945: 0x00006534, - 10946: 0x000065E0, - 10947: 0x00007592, - 10948: 0x00007676, - 10949: 0x00008FB5, - 10950: 0x000096B6, - 10951: 0x000000A8, - 10952: 0x000002C6, - 10953: 0x000030FD, - 10954: 0x000030FE, - 10955: 0x0000309D, - 10956: 0x0000309E, - 10957: 0x00003003, - 10958: 0x00004EDD, - 10959: 0x00003005, - 10960: 0x00003006, - 10961: 0x00003007, - 10962: 0x000030FC, - 10963: 0x0000FF3B, - 10964: 0x0000FF3D, - 10965: 0x0000273D, - 10966: 0x00003041, - 10967: 0x00003042, - 10968: 0x00003043, - 10969: 0x00003044, - 10970: 0x00003045, - 10971: 0x00003046, - 10972: 0x00003047, - 10973: 0x00003048, - 10974: 0x00003049, - 10975: 0x0000304A, - 10976: 0x0000304B, - 10977: 0x0000304C, - 10978: 0x0000304D, - 10979: 0x0000304E, - 10980: 0x0000304F, - 10981: 0x00003050, - 10982: 0x00003051, - 10983: 0x00003052, - 10984: 0x00003053, - 10985: 0x00003054, - 10986: 0x00003055, - 10987: 0x00003056, - 10988: 0x00003057, - 10989: 0x00003058, - 10990: 0x00003059, - 10991: 0x0000305A, - 10992: 0x0000305B, - 10993: 0x0000305C, - 10994: 0x0000305D, - 10995: 0x0000305E, - 10996: 0x0000305F, - 10997: 0x00003060, - 10998: 0x00003061, - 10999: 0x00003062, - 11000: 0x00003063, - 11001: 0x00003064, - 11002: 0x00003065, - 11003: 0x00003066, - 11004: 0x00003067, - 11005: 0x00003068, - 11006: 0x00003069, - 11007: 0x0000306A, - 11008: 0x0000306B, - 11009: 0x0000306C, - 11010: 0x0000306D, - 11011: 0x0000306E, - 11012: 0x0000306F, - 11013: 0x00003070, - 11014: 0x00003071, - 11015: 0x00003072, - 11016: 0x00003073, - 11017: 0x00003074, - 11018: 0x00003075, - 11019: 0x00003076, - 11020: 0x00003077, - 11021: 0x00003078, - 11022: 0x00003079, - 11023: 0x0000307A, - 11024: 0x0000307B, - 11025: 0x0000307C, - 11026: 0x0000307D, - 11027: 0x0000307E, - 11028: 0x0000307F, - 11029: 0x00003080, - 11030: 0x00003081, - 11031: 0x00003082, - 11032: 0x00003083, - 11033: 0x00003084, - 11034: 0x00003085, - 11035: 0x00003086, - 11036: 0x00003087, - 11037: 0x00003088, - 11038: 0x00003089, - 11039: 0x0000308A, - 11040: 0x0000308B, - 11041: 0x0000308C, - 11042: 0x0000308D, - 11043: 0x0000308E, - 11044: 0x0000308F, - 11045: 0x00003090, - 11046: 0x00003091, - 11047: 0x00003092, - 11048: 0x00003093, - 11049: 0x000030A1, - 11050: 0x000030A2, - 11051: 0x000030A3, - 11052: 0x000030A4, - 11053: 0x000030A5, - 11054: 0x000030A6, - 11055: 0x000030A7, - 11056: 0x000030A8, - 11057: 0x000030A9, - 11058: 0x000030AA, - 11059: 0x000030AB, - 11060: 0x000030AC, - 11061: 0x000030AD, - 11062: 0x000030AE, - 11063: 0x000030AF, - 11064: 0x000030B0, - 11065: 0x000030B1, - 11066: 0x000030B2, - 11067: 0x000030B3, - 11068: 0x000030B4, - 11069: 0x000030B5, - 11070: 0x000030B6, - 11071: 0x000030B7, - 11072: 0x000030B8, - 11073: 0x000030B9, - 11074: 0x000030BA, - 11075: 0x000030BB, - 11076: 0x000030BC, - 11077: 0x000030BD, - 11078: 0x000030BE, - 11079: 0x000030BF, - 11080: 0x000030C0, - 11081: 0x000030C1, - 11082: 0x000030C2, - 11083: 0x000030C3, - 11084: 0x000030C4, - 11085: 0x000030C5, - 11086: 0x000030C6, - 11087: 0x000030C7, - 11088: 0x000030C8, - 11089: 0x000030C9, - 11090: 0x000030CA, - 11091: 0x000030CB, - 11092: 0x000030CC, - 11093: 0x000030CD, - 11094: 0x000030CE, - 11095: 0x000030CF, - 11096: 0x000030D0, - 11097: 0x000030D1, - 11098: 0x000030D2, - 11099: 0x000030D3, - 11100: 0x000030D4, - 11101: 0x000030D5, - 11102: 0x000030D6, - 11103: 0x000030D7, - 11104: 0x000030D8, - 11105: 0x000030D9, - 11106: 0x000030DA, - 11107: 0x000030DB, - 11108: 0x000030DC, - 11109: 0x000030DD, - 11110: 0x000030DE, - 11111: 0x000030DF, - 11112: 0x000030E0, - 11113: 0x000030E1, - 11114: 0x000030E2, - 11115: 0x000030E3, - 11116: 0x000030E4, - 11117: 0x000030E5, - 11118: 0x000030E6, - 11119: 0x000030E7, - 11120: 0x000030E8, - 11121: 0x000030E9, - 11122: 0x000030EA, - 11123: 0x000030EB, - 11124: 0x000030EC, - 11125: 0x000030ED, - 11126: 0x000030EE, - 11127: 0x000030EF, - 11128: 0x000030F0, - 11129: 0x000030F1, - 11130: 0x000030F2, - 11131: 0x000030F3, - 11132: 0x000030F4, - 11133: 0x000030F5, - 11134: 0x000030F6, - 11135: 0x00000410, - 11136: 0x00000411, - 11137: 0x00000412, - 11138: 0x00000413, - 11139: 0x00000414, - 11140: 0x00000415, - 11141: 0x00000401, - 11142: 0x00000416, - 11143: 0x00000417, - 11144: 0x00000418, - 11145: 0x00000419, - 11146: 0x0000041A, - 11147: 0x0000041B, - 11148: 0x0000041C, - 11149: 0x0000041D, - 11150: 0x0000041E, - 11151: 0x0000041F, - 11152: 0x00000420, - 11153: 0x00000421, - 11154: 0x00000422, - 11155: 0x00000423, - 11156: 0x00000424, - 11157: 0x00000425, - 11158: 0x00000426, - 11159: 0x00000427, - 11160: 0x00000428, - 11161: 0x00000429, - 11162: 0x0000042A, - 11163: 0x0000042B, - 11164: 0x0000042C, - 11165: 0x0000042D, - 11166: 0x0000042E, - 11167: 0x0000042F, - 11168: 0x00000430, - 11169: 0x00000431, - 11170: 0x00000432, - 11171: 0x00000433, - 11172: 0x00000434, - 11173: 0x00000435, - 11174: 0x00000451, - 11175: 0x00000436, - 11176: 0x00000437, - 11177: 0x00000438, - 11178: 0x00000439, - 11179: 0x0000043A, - 11180: 0x0000043B, - 11181: 0x0000043C, - 11182: 0x0000043D, - 11183: 0x0000043E, - 11184: 0x0000043F, - 11185: 0x00000440, - 11186: 0x00000441, - 11187: 0x00000442, - 11188: 0x00000443, - 11189: 0x00000444, - 11190: 0x00000445, - 11191: 0x00000446, - 11192: 0x00000447, - 11193: 0x00000448, - 11194: 0x00000449, - 11195: 0x0000044A, - 11196: 0x0000044B, - 11197: 0x0000044C, - 11198: 0x0000044D, - 11199: 0x0000044E, - 11200: 0x0000044F, - 11201: 0x000021E7, - 11202: 0x000021B8, - 11203: 0x000021B9, - 11204: 0x000031CF, - 11205: 0x000200CC, - 11206: 0x00004E5A, - 11207: 0x0002008A, - 11208: 0x00005202, - 11209: 0x00004491, - 11210: 0x00009FB0, - 11211: 0x00005188, - 11212: 0x00009FB1, - 11213: 0x00027607, - 11254: 0x0000FFE2, - 11255: 0x0000FFE4, - 11256: 0x0000FF07, - 11257: 0x0000FF02, - 11258: 0x00003231, - 11259: 0x00002116, - 11260: 0x00002121, - 11261: 0x0000309B, - 11262: 0x0000309C, - 11263: 0x00002E80, - 11264: 0x00002E84, - 11265: 0x00002E86, - 11266: 0x00002E87, - 11267: 0x00002E88, - 11268: 0x00002E8A, - 11269: 0x00002E8C, - 11270: 0x00002E8D, - 11271: 0x00002E95, - 11272: 0x00002E9C, - 11273: 0x00002E9D, - 11274: 0x00002EA5, - 11275: 0x00002EA7, - 11276: 0x00002EAA, - 11277: 0x00002EAC, - 11278: 0x00002EAE, - 11279: 0x00002EB6, - 11280: 0x00002EBC, - 11281: 0x00002EBE, - 11282: 0x00002EC6, - 11283: 0x00002ECA, - 11284: 0x00002ECC, - 11285: 0x00002ECD, - 11286: 0x00002ECF, - 11287: 0x00002ED6, - 11288: 0x00002ED7, - 11289: 0x00002EDE, - 11290: 0x00002EE3, - 11294: 0x00000283, - 11295: 0x00000250, - 11296: 0x0000025B, - 11297: 0x00000254, - 11298: 0x00000275, - 11299: 0x00000153, - 11300: 0x000000F8, - 11301: 0x0000014B, - 11302: 0x0000028A, - 11303: 0x0000026A, - 11304: 0x00004E42, - 11305: 0x00004E5C, - 11306: 0x000051F5, - 11307: 0x0000531A, - 11308: 0x00005382, - 11309: 0x00004E07, - 11310: 0x00004E0C, - 11311: 0x00004E47, - 11312: 0x00004E8D, - 11313: 0x000056D7, - 11314: 0x0000FA0C, - 11315: 0x00005C6E, - 11316: 0x00005F73, - 11317: 0x00004E0F, - 11318: 0x00005187, - 11319: 0x00004E0E, - 11320: 0x00004E2E, - 11321: 0x00004E93, - 11322: 0x00004EC2, - 11323: 0x00004EC9, - 11324: 0x00004EC8, - 11325: 0x00005198, - 11326: 0x000052FC, - 11327: 0x0000536C, - 11328: 0x000053B9, - 11329: 0x00005720, - 11330: 0x00005903, - 11331: 0x0000592C, - 11332: 0x00005C10, - 11333: 0x00005DFF, - 11334: 0x000065E1, - 11335: 0x00006BB3, - 11336: 0x00006BCC, - 11337: 0x00006C14, - 11338: 0x0000723F, - 11339: 0x00004E31, - 11340: 0x00004E3C, - 11341: 0x00004EE8, - 11342: 0x00004EDC, - 11343: 0x00004EE9, - 11344: 0x00004EE1, - 11345: 0x00004EDD, - 11346: 0x00004EDA, - 11347: 0x0000520C, - 11348: 0x0000531C, - 11349: 0x0000534C, - 11350: 0x00005722, - 11351: 0x00005723, - 11352: 0x00005917, - 11353: 0x0000592F, - 11354: 0x00005B81, - 11355: 0x00005B84, - 11356: 0x00005C12, - 11357: 0x00005C3B, - 11358: 0x00005C74, - 11359: 0x00005C73, - 11360: 0x00005E04, - 11361: 0x00005E80, - 11362: 0x00005E82, - 11363: 0x00005FC9, - 11364: 0x00006209, - 11365: 0x00006250, - 11366: 0x00006C15, - 11367: 0x00006C36, - 11368: 0x00006C43, - 11369: 0x00006C3F, - 11370: 0x00006C3B, - 11371: 0x000072AE, - 11372: 0x000072B0, - 11373: 0x0000738A, - 11374: 0x000079B8, - 11375: 0x0000808A, - 11376: 0x0000961E, - 11377: 0x00004F0E, - 11378: 0x00004F18, - 11379: 0x00004F2C, - 11380: 0x00004EF5, - 11381: 0x00004F14, - 11382: 0x00004EF1, - 11383: 0x00004F00, - 11384: 0x00004EF7, - 11385: 0x00004F08, - 11386: 0x00004F1D, - 11387: 0x00004F02, - 11388: 0x00004F05, - 11389: 0x00004F22, - 11390: 0x00004F13, - 11391: 0x00004F04, - 11392: 0x00004EF4, - 11393: 0x00004F12, - 11394: 0x000051B1, - 11395: 0x00005213, - 11396: 0x00005209, - 11397: 0x00005210, - 11398: 0x000052A6, - 11399: 0x00005322, - 11400: 0x0000531F, - 11401: 0x0000534D, - 11402: 0x0000538A, - 11403: 0x00005407, - 11404: 0x000056E1, - 11405: 0x000056DF, - 11406: 0x0000572E, - 11407: 0x0000572A, - 11408: 0x00005734, - 11409: 0x0000593C, - 11410: 0x00005980, - 11411: 0x0000597C, - 11412: 0x00005985, - 11413: 0x0000597B, - 11414: 0x0000597E, - 11415: 0x00005977, - 11416: 0x0000597F, - 11417: 0x00005B56, - 11418: 0x00005C15, - 11419: 0x00005C25, - 11420: 0x00005C7C, - 11421: 0x00005C7A, - 11422: 0x00005C7B, - 11423: 0x00005C7E, - 11424: 0x00005DDF, - 11425: 0x00005E75, - 11426: 0x00005E84, - 11427: 0x00005F02, - 11428: 0x00005F1A, - 11429: 0x00005F74, - 11430: 0x00005FD5, - 11431: 0x00005FD4, - 11432: 0x00005FCF, - 11433: 0x0000625C, - 11434: 0x0000625E, - 11435: 0x00006264, - 11436: 0x00006261, - 11437: 0x00006266, - 11438: 0x00006262, - 11439: 0x00006259, - 11440: 0x00006260, - 11441: 0x0000625A, - 11442: 0x00006265, - 11443: 0x000065EF, - 11444: 0x000065EE, - 11445: 0x0000673E, - 11446: 0x00006739, - 11447: 0x00006738, - 11448: 0x0000673B, - 11449: 0x0000673A, - 11450: 0x0000673F, - 11451: 0x0000673C, - 11452: 0x00006733, - 11453: 0x00006C18, - 11454: 0x00006C46, - 11455: 0x00006C52, - 11456: 0x00006C5C, - 11457: 0x00006C4F, - 11458: 0x00006C4A, - 11459: 0x00006C54, - 11460: 0x00006C4B, - 11461: 0x00006C4C, - 11462: 0x00007071, - 11463: 0x0000725E, - 11464: 0x000072B4, - 11465: 0x000072B5, - 11466: 0x0000738E, - 11467: 0x0000752A, - 11468: 0x0000767F, - 11469: 0x00007A75, - 11470: 0x00007F51, - 11471: 0x00008278, - 11472: 0x0000827C, - 11473: 0x00008280, - 11474: 0x0000827D, - 11475: 0x0000827F, - 11476: 0x0000864D, - 11477: 0x0000897E, - 11478: 0x00009099, - 11479: 0x00009097, - 11480: 0x00009098, - 11481: 0x0000909B, - 11482: 0x00009094, - 11483: 0x00009622, - 11484: 0x00009624, - 11485: 0x00009620, - 11486: 0x00009623, - 11487: 0x00004F56, - 11488: 0x00004F3B, - 11489: 0x00004F62, - 11490: 0x00004F49, - 11491: 0x00004F53, - 11492: 0x00004F64, - 11493: 0x00004F3E, - 11494: 0x00004F67, - 11495: 0x00004F52, - 11496: 0x00004F5F, - 11497: 0x00004F41, - 11498: 0x00004F58, - 11499: 0x00004F2D, - 11500: 0x00004F33, - 11501: 0x00004F3F, - 11502: 0x00004F61, - 11503: 0x0000518F, - 11504: 0x000051B9, - 11505: 0x0000521C, - 11506: 0x0000521E, - 11507: 0x00005221, - 11508: 0x000052AD, - 11509: 0x000052AE, - 11510: 0x00005309, - 11511: 0x00005363, - 11512: 0x00005372, - 11513: 0x0000538E, - 11514: 0x0000538F, - 11515: 0x00005430, - 11516: 0x00005437, - 11517: 0x0000542A, - 11518: 0x00005454, - 11519: 0x00005445, - 11520: 0x00005419, - 11521: 0x0000541C, - 11522: 0x00005425, - 11523: 0x00005418, - 11524: 0x0000543D, - 11525: 0x0000544F, - 11526: 0x00005441, - 11527: 0x00005428, - 11528: 0x00005424, - 11529: 0x00005447, - 11530: 0x000056EE, - 11531: 0x000056E7, - 11532: 0x000056E5, - 11533: 0x00005741, - 11534: 0x00005745, - 11535: 0x0000574C, - 11536: 0x00005749, - 11537: 0x0000574B, - 11538: 0x00005752, - 11539: 0x00005906, - 11540: 0x00005940, - 11541: 0x000059A6, - 11542: 0x00005998, - 11543: 0x000059A0, - 11544: 0x00005997, - 11545: 0x0000598E, - 11546: 0x000059A2, - 11547: 0x00005990, - 11548: 0x0000598F, - 11549: 0x000059A7, - 11550: 0x000059A1, - 11551: 0x00005B8E, - 11552: 0x00005B92, - 11553: 0x00005C28, - 11554: 0x00005C2A, - 11555: 0x00005C8D, - 11556: 0x00005C8F, - 11557: 0x00005C88, - 11558: 0x00005C8B, - 11559: 0x00005C89, - 11560: 0x00005C92, - 11561: 0x00005C8A, - 11562: 0x00005C86, - 11563: 0x00005C93, - 11564: 0x00005C95, - 11565: 0x00005DE0, - 11566: 0x00005E0A, - 11567: 0x00005E0E, - 11568: 0x00005E8B, - 11569: 0x00005E89, - 11570: 0x00005E8C, - 11571: 0x00005E88, - 11572: 0x00005E8D, - 11573: 0x00005F05, - 11574: 0x00005F1D, - 11575: 0x00005F78, - 11576: 0x00005F76, - 11577: 0x00005FD2, - 11578: 0x00005FD1, - 11579: 0x00005FD0, - 11580: 0x00005FED, - 11581: 0x00005FE8, - 11582: 0x00005FEE, - 11583: 0x00005FF3, - 11584: 0x00005FE1, - 11585: 0x00005FE4, - 11586: 0x00005FE3, - 11587: 0x00005FFA, - 11588: 0x00005FEF, - 11589: 0x00005FF7, - 11590: 0x00005FFB, - 11591: 0x00006000, - 11592: 0x00005FF4, - 11593: 0x0000623A, - 11594: 0x00006283, - 11595: 0x0000628C, - 11596: 0x0000628E, - 11597: 0x0000628F, - 11598: 0x00006294, - 11599: 0x00006287, - 11600: 0x00006271, - 11601: 0x0000627B, - 11602: 0x0000627A, - 11603: 0x00006270, - 11604: 0x00006281, - 11605: 0x00006288, - 11606: 0x00006277, - 11607: 0x0000627D, - 11608: 0x00006272, - 11609: 0x00006274, - 11610: 0x00006537, - 11611: 0x000065F0, - 11612: 0x000065F4, - 11613: 0x000065F3, - 11614: 0x000065F2, - 11615: 0x000065F5, - 11616: 0x00006745, - 11617: 0x00006747, - 11618: 0x00006759, - 11619: 0x00006755, - 11620: 0x0000674C, - 11621: 0x00006748, - 11622: 0x0000675D, - 11623: 0x0000674D, - 11624: 0x0000675A, - 11625: 0x0000674B, - 11626: 0x00006BD0, - 11627: 0x00006C19, - 11628: 0x00006C1A, - 11629: 0x00006C78, - 11630: 0x00006C67, - 11631: 0x00006C6B, - 11632: 0x00006C84, - 11633: 0x00006C8B, - 11634: 0x00006C8F, - 11635: 0x00006C71, - 11636: 0x00006C6F, - 11637: 0x00006C69, - 11638: 0x00006C9A, - 11639: 0x00006C6D, - 11640: 0x00006C87, - 11641: 0x00006C95, - 11642: 0x00006C9C, - 11643: 0x00006C66, - 11644: 0x00006C73, - 11645: 0x00006C65, - 11646: 0x00006C7B, - 11647: 0x00006C8E, - 11648: 0x00007074, - 11649: 0x0000707A, - 11650: 0x00007263, - 11651: 0x000072BF, - 11652: 0x000072BD, - 11653: 0x000072C3, - 11654: 0x000072C6, - 11655: 0x000072C1, - 11656: 0x000072BA, - 11657: 0x000072C5, - 11658: 0x00007395, - 11659: 0x00007397, - 11660: 0x00007393, - 11661: 0x00007394, - 11662: 0x00007392, - 11663: 0x0000753A, - 11664: 0x00007539, - 11665: 0x00007594, - 11666: 0x00007595, - 11667: 0x00007681, - 11668: 0x0000793D, - 11669: 0x00008034, - 11670: 0x00008095, - 11671: 0x00008099, - 11672: 0x00008090, - 11673: 0x00008092, - 11674: 0x0000809C, - 11675: 0x00008290, - 11676: 0x0000828F, - 11677: 0x00008285, - 11678: 0x0000828E, - 11679: 0x00008291, - 11680: 0x00008293, - 11681: 0x0000828A, - 11682: 0x00008283, - 11683: 0x00008284, - 11684: 0x00008C78, - 11685: 0x00008FC9, - 11686: 0x00008FBF, - 11687: 0x0000909F, - 11688: 0x000090A1, - 11689: 0x000090A5, - 11690: 0x0000909E, - 11691: 0x000090A7, - 11692: 0x000090A0, - 11693: 0x00009630, - 11694: 0x00009628, - 11695: 0x0000962F, - 11696: 0x0000962D, - 11697: 0x00004E33, - 11698: 0x00004F98, - 11699: 0x00004F7C, - 11700: 0x00004F85, - 11701: 0x00004F7D, - 11702: 0x00004F80, - 11703: 0x00004F87, - 11704: 0x00004F76, - 11705: 0x00004F74, - 11706: 0x00004F89, - 11707: 0x00004F84, - 11708: 0x00004F77, - 11709: 0x00004F4C, - 11710: 0x00004F97, - 11711: 0x00004F6A, - 11712: 0x00004F9A, - 11713: 0x00004F79, - 11714: 0x00004F81, - 11715: 0x00004F78, - 11716: 0x00004F90, - 11717: 0x00004F9C, - 11718: 0x00004F94, - 11719: 0x00004F9E, - 11720: 0x00004F92, - 11721: 0x00004F82, - 11722: 0x00004F95, - 11723: 0x00004F6B, - 11724: 0x00004F6E, - 11725: 0x0000519E, - 11726: 0x000051BC, - 11727: 0x000051BE, - 11728: 0x00005235, - 11729: 0x00005232, - 11730: 0x00005233, - 11731: 0x00005246, - 11732: 0x00005231, - 11733: 0x000052BC, - 11734: 0x0000530A, - 11735: 0x0000530B, - 11736: 0x0000533C, - 11737: 0x00005392, - 11738: 0x00005394, - 11739: 0x00005487, - 11740: 0x0000547F, - 11741: 0x00005481, - 11742: 0x00005491, - 11743: 0x00005482, - 11744: 0x00005488, - 11745: 0x0000546B, - 11746: 0x0000547A, - 11747: 0x0000547E, - 11748: 0x00005465, - 11749: 0x0000546C, - 11750: 0x00005474, - 11751: 0x00005466, - 11752: 0x0000548D, - 11753: 0x0000546F, - 11754: 0x00005461, - 11755: 0x00005460, - 11756: 0x00005498, - 11757: 0x00005463, - 11758: 0x00005467, - 11759: 0x00005464, - 11760: 0x000056F7, - 11761: 0x000056F9, - 11762: 0x0000576F, - 11763: 0x00005772, - 11764: 0x0000576D, - 11765: 0x0000576B, - 11766: 0x00005771, - 11767: 0x00005770, - 11768: 0x00005776, - 11769: 0x00005780, - 11770: 0x00005775, - 11771: 0x0000577B, - 11772: 0x00005773, - 11773: 0x00005774, - 11774: 0x00005762, - 11775: 0x00005768, - 11776: 0x0000577D, - 11777: 0x0000590C, - 11778: 0x00005945, - 11779: 0x000059B5, - 11780: 0x000059BA, - 11781: 0x000059CF, - 11782: 0x000059CE, - 11783: 0x000059B2, - 11784: 0x000059CC, - 11785: 0x000059C1, - 11786: 0x000059B6, - 11787: 0x000059BC, - 11788: 0x000059C3, - 11789: 0x000059D6, - 11790: 0x000059B1, - 11791: 0x000059BD, - 11792: 0x000059C0, - 11793: 0x000059C8, - 11794: 0x000059B4, - 11795: 0x000059C7, - 11796: 0x00005B62, - 11797: 0x00005B65, - 11798: 0x00005B93, - 11799: 0x00005B95, - 11800: 0x00005C44, - 11801: 0x00005C47, - 11802: 0x00005CAE, - 11803: 0x00005CA4, - 11804: 0x00005CA0, - 11805: 0x00005CB5, - 11806: 0x00005CAF, - 11807: 0x00005CA8, - 11808: 0x00005CAC, - 11809: 0x00005C9F, - 11810: 0x00005CA3, - 11811: 0x00005CAD, - 11812: 0x00005CA2, - 11813: 0x00005CAA, - 11814: 0x00005CA7, - 11815: 0x00005C9D, - 11816: 0x00005CA5, - 11817: 0x00005CB6, - 11818: 0x00005CB0, - 11819: 0x00005CA6, - 11820: 0x00005E17, - 11821: 0x00005E14, - 11822: 0x00005E19, - 11823: 0x00005F28, - 11824: 0x00005F22, - 11825: 0x00005F23, - 11826: 0x00005F24, - 11827: 0x00005F54, - 11828: 0x00005F82, - 11829: 0x00005F7E, - 11830: 0x00005F7D, - 11831: 0x00005FDE, - 11832: 0x00005FE5, - 11833: 0x0000602D, - 11834: 0x00006026, - 11835: 0x00006019, - 11836: 0x00006032, - 11837: 0x0000600B, - 11838: 0x00006034, - 11839: 0x0000600A, - 11840: 0x00006017, - 11841: 0x00006033, - 11842: 0x0000601A, - 11843: 0x0000601E, - 11844: 0x0000602C, - 11845: 0x00006022, - 11846: 0x0000600D, - 11847: 0x00006010, - 11848: 0x0000602E, - 11849: 0x00006013, - 11850: 0x00006011, - 11851: 0x0000600C, - 11852: 0x00006009, - 11853: 0x0000601C, - 11854: 0x00006214, - 11855: 0x0000623D, - 11856: 0x000062AD, - 11857: 0x000062B4, - 11858: 0x000062D1, - 11859: 0x000062BE, - 11860: 0x000062AA, - 11861: 0x000062B6, - 11862: 0x000062CA, - 11863: 0x000062AE, - 11864: 0x000062B3, - 11865: 0x000062AF, - 11866: 0x000062BB, - 11867: 0x000062A9, - 11868: 0x000062B0, - 11869: 0x000062B8, - 11870: 0x0000653D, - 11871: 0x000065A8, - 11872: 0x000065BB, - 11873: 0x00006609, - 11874: 0x000065FC, - 11875: 0x00006604, - 11876: 0x00006612, - 11877: 0x00006608, - 11878: 0x000065FB, - 11879: 0x00006603, - 11880: 0x0000660B, - 11881: 0x0000660D, - 11882: 0x00006605, - 11883: 0x000065FD, - 11884: 0x00006611, - 11885: 0x00006610, - 11886: 0x000066F6, - 11887: 0x0000670A, - 11888: 0x00006785, - 11889: 0x0000676C, - 11890: 0x0000678E, - 11891: 0x00006792, - 11892: 0x00006776, - 11893: 0x0000677B, - 11894: 0x00006798, - 11895: 0x00006786, - 11896: 0x00006784, - 11897: 0x00006774, - 11898: 0x0000678D, - 11899: 0x0000678C, - 11900: 0x0000677A, - 11901: 0x0000679F, - 11902: 0x00006791, - 11903: 0x00006799, - 11904: 0x00006783, - 11905: 0x0000677D, - 11906: 0x00006781, - 11907: 0x00006778, - 11908: 0x00006779, - 11909: 0x00006794, - 11910: 0x00006B25, - 11911: 0x00006B80, - 11912: 0x00006B7E, - 11913: 0x00006BDE, - 11914: 0x00006C1D, - 11915: 0x00006C93, - 11916: 0x00006CEC, - 11917: 0x00006CEB, - 11918: 0x00006CEE, - 11919: 0x00006CD9, - 11920: 0x00006CB6, - 11921: 0x00006CD4, - 11922: 0x00006CAD, - 11923: 0x00006CE7, - 11924: 0x00006CB7, - 11925: 0x00006CD0, - 11926: 0x00006CC2, - 11927: 0x00006CBA, - 11928: 0x00006CC3, - 11929: 0x00006CC6, - 11930: 0x00006CED, - 11931: 0x00006CF2, - 11932: 0x00006CD2, - 11933: 0x00006CDD, - 11934: 0x00006CB4, - 11935: 0x00006C8A, - 11936: 0x00006C9D, - 11937: 0x00006C80, - 11938: 0x00006CDE, - 11939: 0x00006CC0, - 11940: 0x00006D30, - 11941: 0x00006CCD, - 11942: 0x00006CC7, - 11943: 0x00006CB0, - 11944: 0x00006CF9, - 11945: 0x00006CCF, - 11946: 0x00006CE9, - 11947: 0x00006CD1, - 11948: 0x00007094, - 11949: 0x00007098, - 11950: 0x00007085, - 11951: 0x00007093, - 11952: 0x00007086, - 11953: 0x00007084, - 11954: 0x00007091, - 11955: 0x00007096, - 11956: 0x00007082, - 11957: 0x0000709A, - 11958: 0x00007083, - 11959: 0x0000726A, - 11960: 0x000072D6, - 11961: 0x000072CB, - 11962: 0x000072D8, - 11963: 0x000072C9, - 11964: 0x000072DC, - 11965: 0x000072D2, - 11966: 0x000072D4, - 11967: 0x000072DA, - 11968: 0x000072CC, - 11969: 0x000072D1, - 11970: 0x000073A4, - 11971: 0x000073A1, - 11972: 0x000073AD, - 11973: 0x000073A6, - 11974: 0x000073A2, - 11975: 0x000073A0, - 11976: 0x000073AC, - 11977: 0x0000739D, - 11978: 0x000074DD, - 11979: 0x000074E8, - 11980: 0x0000753F, - 11981: 0x00007540, - 11982: 0x0000753E, - 11983: 0x0000758C, - 11984: 0x00007598, - 11985: 0x000076AF, - 11986: 0x000076F3, - 11987: 0x000076F1, - 11988: 0x000076F0, - 11989: 0x000076F5, - 11990: 0x000077F8, - 11991: 0x000077FC, - 11992: 0x000077F9, - 11993: 0x000077FB, - 11994: 0x000077FA, - 11995: 0x000077F7, - 11996: 0x00007942, - 11997: 0x0000793F, - 11998: 0x000079C5, - 11999: 0x00007A78, - 12000: 0x00007A7B, - 12001: 0x00007AFB, - 12002: 0x00007C75, - 12003: 0x00007CFD, - 12004: 0x00008035, - 12005: 0x0000808F, - 12006: 0x000080AE, - 12007: 0x000080A3, - 12008: 0x000080B8, - 12009: 0x000080B5, - 12010: 0x000080AD, - 12011: 0x00008220, - 12012: 0x000082A0, - 12013: 0x000082C0, - 12014: 0x000082AB, - 12015: 0x0000829A, - 12016: 0x00008298, - 12017: 0x0000829B, - 12018: 0x000082B5, - 12019: 0x000082A7, - 12020: 0x000082AE, - 12021: 0x000082BC, - 12022: 0x0000829E, - 12023: 0x000082BA, - 12024: 0x000082B4, - 12025: 0x000082A8, - 12026: 0x000082A1, - 12027: 0x000082A9, - 12028: 0x000082C2, - 12029: 0x000082A4, - 12030: 0x000082C3, - 12031: 0x000082B6, - 12032: 0x000082A2, - 12033: 0x00008670, - 12034: 0x0000866F, - 12035: 0x0000866D, - 12036: 0x0000866E, - 12037: 0x00008C56, - 12038: 0x00008FD2, - 12039: 0x00008FCB, - 12040: 0x00008FD3, - 12041: 0x00008FCD, - 12042: 0x00008FD6, - 12043: 0x00008FD5, - 12044: 0x00008FD7, - 12045: 0x000090B2, - 12046: 0x000090B4, - 12047: 0x000090AF, - 12048: 0x000090B3, - 12049: 0x000090B0, - 12050: 0x00009639, - 12051: 0x0000963D, - 12052: 0x0000963C, - 12053: 0x0000963A, - 12054: 0x00009643, - 12055: 0x00004FCD, - 12056: 0x00004FC5, - 12057: 0x00004FD3, - 12058: 0x00004FB2, - 12059: 0x00004FC9, - 12060: 0x00004FCB, - 12061: 0x00004FC1, - 12062: 0x00004FD4, - 12063: 0x00004FDC, - 12064: 0x00004FD9, - 12065: 0x00004FBB, - 12066: 0x00004FB3, - 12067: 0x00004FDB, - 12068: 0x00004FC7, - 12069: 0x00004FD6, - 12070: 0x00004FBA, - 12071: 0x00004FC0, - 12072: 0x00004FB9, - 12073: 0x00004FEC, - 12074: 0x00005244, - 12075: 0x00005249, - 12076: 0x000052C0, - 12077: 0x000052C2, - 12078: 0x0000533D, - 12079: 0x0000537C, - 12080: 0x00005397, - 12081: 0x00005396, - 12082: 0x00005399, - 12083: 0x00005398, - 12084: 0x000054BA, - 12085: 0x000054A1, - 12086: 0x000054AD, - 12087: 0x000054A5, - 12088: 0x000054CF, - 12089: 0x000054C3, - 12090: 0x0000830D, - 12091: 0x000054B7, - 12092: 0x000054AE, - 12093: 0x000054D6, - 12094: 0x000054B6, - 12095: 0x000054C5, - 12096: 0x000054C6, - 12097: 0x000054A0, - 12098: 0x00005470, - 12099: 0x000054BC, - 12100: 0x000054A2, - 12101: 0x000054BE, - 12102: 0x00005472, - 12103: 0x000054DE, - 12104: 0x000054B0, - 12105: 0x000057B5, - 12106: 0x0000579E, - 12107: 0x0000579F, - 12108: 0x000057A4, - 12109: 0x0000578C, - 12110: 0x00005797, - 12111: 0x0000579D, - 12112: 0x0000579B, - 12113: 0x00005794, - 12114: 0x00005798, - 12115: 0x0000578F, - 12116: 0x00005799, - 12117: 0x000057A5, - 12118: 0x0000579A, - 12119: 0x00005795, - 12120: 0x000058F4, - 12121: 0x0000590D, - 12122: 0x00005953, - 12123: 0x000059E1, - 12124: 0x000059DE, - 12125: 0x000059EE, - 12126: 0x00005A00, - 12127: 0x000059F1, - 12128: 0x000059DD, - 12129: 0x000059FA, - 12130: 0x000059FD, - 12131: 0x000059FC, - 12132: 0x000059F6, - 12133: 0x000059E4, - 12134: 0x000059F2, - 12135: 0x000059F7, - 12136: 0x000059DB, - 12137: 0x000059E9, - 12138: 0x000059F3, - 12139: 0x000059F5, - 12140: 0x000059E0, - 12141: 0x000059FE, - 12142: 0x000059F4, - 12143: 0x000059ED, - 12144: 0x00005BA8, - 12145: 0x00005C4C, - 12146: 0x00005CD0, - 12147: 0x00005CD8, - 12148: 0x00005CCC, - 12149: 0x00005CD7, - 12150: 0x00005CCB, - 12151: 0x00005CDB, - 12152: 0x00005CDE, - 12153: 0x00005CDA, - 12154: 0x00005CC9, - 12155: 0x00005CC7, - 12156: 0x00005CCA, - 12157: 0x00005CD6, - 12158: 0x00005CD3, - 12159: 0x00005CD4, - 12160: 0x00005CCF, - 12161: 0x00005CC8, - 12162: 0x00005CC6, - 12163: 0x00005CCE, - 12164: 0x00005CDF, - 12165: 0x00005CF8, - 12166: 0x00005DF9, - 12167: 0x00005E21, - 12168: 0x00005E22, - 12169: 0x00005E23, - 12170: 0x00005E20, - 12171: 0x00005E24, - 12172: 0x00005EB0, - 12173: 0x00005EA4, - 12174: 0x00005EA2, - 12175: 0x00005E9B, - 12176: 0x00005EA3, - 12177: 0x00005EA5, - 12178: 0x00005F07, - 12179: 0x00005F2E, - 12180: 0x00005F56, - 12181: 0x00005F86, - 12182: 0x00006037, - 12183: 0x00006039, - 12184: 0x00006054, - 12185: 0x00006072, - 12186: 0x0000605E, - 12187: 0x00006045, - 12188: 0x00006053, - 12189: 0x00006047, - 12190: 0x00006049, - 12191: 0x0000605B, - 12192: 0x0000604C, - 12193: 0x00006040, - 12194: 0x00006042, - 12195: 0x0000605F, - 12196: 0x00006024, - 12197: 0x00006044, - 12198: 0x00006058, - 12199: 0x00006066, - 12200: 0x0000606E, - 12201: 0x00006242, - 12202: 0x00006243, - 12203: 0x000062CF, - 12204: 0x0000630D, - 12205: 0x0000630B, - 12206: 0x000062F5, - 12207: 0x0000630E, - 12208: 0x00006303, - 12209: 0x000062EB, - 12210: 0x000062F9, - 12211: 0x0000630F, - 12212: 0x0000630C, - 12213: 0x000062F8, - 12214: 0x000062F6, - 12215: 0x00006300, - 12216: 0x00006313, - 12217: 0x00006314, - 12218: 0x000062FA, - 12219: 0x00006315, - 12220: 0x000062FB, - 12221: 0x000062F0, - 12222: 0x00006541, - 12223: 0x00006543, - 12224: 0x000065AA, - 12225: 0x000065BF, - 12226: 0x00006636, - 12227: 0x00006621, - 12228: 0x00006632, - 12229: 0x00006635, - 12230: 0x0000661C, - 12231: 0x00006626, - 12232: 0x00006622, - 12233: 0x00006633, - 12234: 0x0000662B, - 12235: 0x0000663A, - 12236: 0x0000661D, - 12237: 0x00006634, - 12238: 0x00006639, - 12239: 0x0000662E, - 12240: 0x0000670F, - 12241: 0x00006710, - 12242: 0x000067C1, - 12243: 0x000067F2, - 12244: 0x000067C8, - 12245: 0x000067BA, - 12246: 0x000067DC, - 12247: 0x000067BB, - 12248: 0x000067F8, - 12249: 0x000067D8, - 12250: 0x000067C0, - 12251: 0x000067B7, - 12252: 0x000067C5, - 12253: 0x000067EB, - 12254: 0x000067E4, - 12255: 0x000067DF, - 12256: 0x000067B5, - 12257: 0x000067CD, - 12258: 0x000067B3, - 12259: 0x000067F7, - 12260: 0x000067F6, - 12261: 0x000067EE, - 12262: 0x000067E3, - 12263: 0x000067C2, - 12264: 0x000067B9, - 12265: 0x000067CE, - 12266: 0x000067E7, - 12267: 0x000067F0, - 12268: 0x000067B2, - 12269: 0x000067FC, - 12270: 0x000067C6, - 12271: 0x000067ED, - 12272: 0x000067CC, - 12273: 0x000067AE, - 12274: 0x000067E6, - 12275: 0x000067DB, - 12276: 0x000067FA, - 12277: 0x000067C9, - 12278: 0x000067CA, - 12279: 0x000067C3, - 12280: 0x000067EA, - 12281: 0x000067CB, - 12282: 0x00006B28, - 12283: 0x00006B82, - 12284: 0x00006B84, - 12285: 0x00006BB6, - 12286: 0x00006BD6, - 12287: 0x00006BD8, - 12288: 0x00006BE0, - 12289: 0x00006C20, - 12290: 0x00006C21, - 12291: 0x00006D28, - 12292: 0x00006D34, - 12293: 0x00006D2D, - 12294: 0x00006D1F, - 12295: 0x00006D3C, - 12296: 0x00006D3F, - 12297: 0x00006D12, - 12298: 0x00006D0A, - 12299: 0x00006CDA, - 12300: 0x00006D33, - 12301: 0x00006D04, - 12302: 0x00006D19, - 12303: 0x00006D3A, - 12304: 0x00006D1A, - 12305: 0x00006D11, - 12306: 0x00006D00, - 12307: 0x00006D1D, - 12308: 0x00006D42, - 12309: 0x00006D01, - 12310: 0x00006D18, - 12311: 0x00006D37, - 12312: 0x00006D03, - 12313: 0x00006D0F, - 12314: 0x00006D40, - 12315: 0x00006D07, - 12316: 0x00006D20, - 12317: 0x00006D2C, - 12318: 0x00006D08, - 12319: 0x00006D22, - 12320: 0x00006D09, - 12321: 0x00006D10, - 12322: 0x000070B7, - 12323: 0x0000709F, - 12324: 0x000070BE, - 12325: 0x000070B1, - 12326: 0x000070B0, - 12327: 0x000070A1, - 12328: 0x000070B4, - 12329: 0x000070B5, - 12330: 0x000070A9, - 12331: 0x00007241, - 12332: 0x00007249, - 12333: 0x0000724A, - 12334: 0x0000726C, - 12335: 0x00007270, - 12336: 0x00007273, - 12337: 0x0000726E, - 12338: 0x000072CA, - 12339: 0x000072E4, - 12340: 0x000072E8, - 12341: 0x000072EB, - 12342: 0x000072DF, - 12343: 0x000072EA, - 12344: 0x000072E6, - 12345: 0x000072E3, - 12346: 0x00007385, - 12347: 0x000073CC, - 12348: 0x000073C2, - 12349: 0x000073C8, - 12350: 0x000073C5, - 12351: 0x000073B9, - 12352: 0x000073B6, - 12353: 0x000073B5, - 12354: 0x000073B4, - 12355: 0x000073EB, - 12356: 0x000073BF, - 12357: 0x000073C7, - 12358: 0x000073BE, - 12359: 0x000073C3, - 12360: 0x000073C6, - 12361: 0x000073B8, - 12362: 0x000073CB, - 12363: 0x000074EC, - 12364: 0x000074EE, - 12365: 0x0000752E, - 12366: 0x00007547, - 12367: 0x00007548, - 12368: 0x000075A7, - 12369: 0x000075AA, - 12370: 0x00007679, - 12371: 0x000076C4, - 12372: 0x00007708, - 12373: 0x00007703, - 12374: 0x00007704, - 12375: 0x00007705, - 12376: 0x0000770A, - 12377: 0x000076F7, - 12378: 0x000076FB, - 12379: 0x000076FA, - 12380: 0x000077E7, - 12381: 0x000077E8, - 12382: 0x00007806, - 12383: 0x00007811, - 12384: 0x00007812, - 12385: 0x00007805, - 12386: 0x00007810, - 12387: 0x0000780F, - 12388: 0x0000780E, - 12389: 0x00007809, - 12390: 0x00007803, - 12391: 0x00007813, - 12392: 0x0000794A, - 12393: 0x0000794C, - 12394: 0x0000794B, - 12395: 0x00007945, - 12396: 0x00007944, - 12397: 0x000079D5, - 12398: 0x000079CD, - 12399: 0x000079CF, - 12400: 0x000079D6, - 12401: 0x000079CE, - 12402: 0x00007A80, - 12403: 0x00007A7E, - 12404: 0x00007AD1, - 12405: 0x00007B00, - 12406: 0x00007B01, - 12407: 0x00007C7A, - 12408: 0x00007C78, - 12409: 0x00007C79, - 12410: 0x00007C7F, - 12411: 0x00007C80, - 12412: 0x00007C81, - 12413: 0x00007D03, - 12414: 0x00007D08, - 12415: 0x00007D01, - 12416: 0x00007F58, - 12417: 0x00007F91, - 12418: 0x00007F8D, - 12419: 0x00007FBE, - 12420: 0x00008007, - 12421: 0x0000800E, - 12422: 0x0000800F, - 12423: 0x00008014, - 12424: 0x00008037, - 12425: 0x000080D8, - 12426: 0x000080C7, - 12427: 0x000080E0, - 12428: 0x000080D1, - 12429: 0x000080C8, - 12430: 0x000080C2, - 12431: 0x000080D0, - 12432: 0x000080C5, - 12433: 0x000080E3, - 12434: 0x000080D9, - 12435: 0x000080DC, - 12436: 0x000080CA, - 12437: 0x000080D5, - 12438: 0x000080C9, - 12439: 0x000080CF, - 12440: 0x000080D7, - 12441: 0x000080E6, - 12442: 0x000080CD, - 12443: 0x000081FF, - 12444: 0x00008221, - 12445: 0x00008294, - 12446: 0x000082D9, - 12447: 0x000082FE, - 12448: 0x000082F9, - 12449: 0x00008307, - 12450: 0x000082E8, - 12451: 0x00008300, - 12452: 0x000082D5, - 12453: 0x0000833A, - 12454: 0x000082EB, - 12455: 0x000082D6, - 12456: 0x000082F4, - 12457: 0x000082EC, - 12458: 0x000082E1, - 12459: 0x000082F2, - 12460: 0x000082F5, - 12461: 0x0000830C, - 12462: 0x000082FB, - 12463: 0x000082F6, - 12464: 0x000082F0, - 12465: 0x000082EA, - 12466: 0x000082E4, - 12467: 0x000082E0, - 12468: 0x000082FA, - 12469: 0x000082F3, - 12470: 0x000082ED, - 12471: 0x00008677, - 12472: 0x00008674, - 12473: 0x0000867C, - 12474: 0x00008673, - 12475: 0x00008841, - 12476: 0x0000884E, - 12477: 0x00008867, - 12478: 0x0000886A, - 12479: 0x00008869, - 12480: 0x000089D3, - 12481: 0x00008A04, - 12482: 0x00008A07, - 12483: 0x00008D72, - 12484: 0x00008FE3, - 12485: 0x00008FE1, - 12486: 0x00008FEE, - 12487: 0x00008FE0, - 12488: 0x000090F1, - 12489: 0x000090BD, - 12490: 0x000090BF, - 12491: 0x000090D5, - 12492: 0x000090C5, - 12493: 0x000090BE, - 12494: 0x000090C7, - 12495: 0x000090CB, - 12496: 0x000090C8, - 12497: 0x000091D4, - 12498: 0x000091D3, - 12499: 0x00009654, - 12500: 0x0000964F, - 12501: 0x00009651, - 12502: 0x00009653, - 12503: 0x0000964A, - 12504: 0x0000964E, - 12505: 0x0000501E, - 12506: 0x00005005, - 12507: 0x00005007, - 12508: 0x00005013, - 12509: 0x00005022, - 12510: 0x00005030, - 12511: 0x0000501B, - 12512: 0x00004FF5, - 12513: 0x00004FF4, - 12514: 0x00005033, - 12515: 0x00005037, - 12516: 0x0000502C, - 12517: 0x00004FF6, - 12518: 0x00004FF7, - 12519: 0x00005017, - 12520: 0x0000501C, - 12521: 0x00005020, - 12522: 0x00005027, - 12523: 0x00005035, - 12524: 0x0000502F, - 12525: 0x00005031, - 12526: 0x0000500E, - 12527: 0x0000515A, - 12528: 0x00005194, - 12529: 0x00005193, - 12530: 0x000051CA, - 12531: 0x000051C4, - 12532: 0x000051C5, - 12533: 0x000051C8, - 12534: 0x000051CE, - 12535: 0x00005261, - 12536: 0x0000525A, - 12537: 0x00005252, - 12538: 0x0000525E, - 12539: 0x0000525F, - 12540: 0x00005255, - 12541: 0x00005262, - 12542: 0x000052CD, - 12543: 0x0000530E, - 12544: 0x0000539E, - 12545: 0x00005526, - 12546: 0x000054E2, - 12547: 0x00005517, - 12548: 0x00005512, - 12549: 0x000054E7, - 12550: 0x000054F3, - 12551: 0x000054E4, - 12552: 0x0000551A, - 12553: 0x000054FF, - 12554: 0x00005504, - 12555: 0x00005508, - 12556: 0x000054EB, - 12557: 0x00005511, - 12558: 0x00005505, - 12559: 0x000054F1, - 12560: 0x0000550A, - 12561: 0x000054FB, - 12562: 0x000054F7, - 12563: 0x000054F8, - 12564: 0x000054E0, - 12565: 0x0000550E, - 12566: 0x00005503, - 12567: 0x0000550B, - 12568: 0x00005701, - 12569: 0x00005702, - 12570: 0x000057CC, - 12571: 0x00005832, - 12572: 0x000057D5, - 12573: 0x000057D2, - 12574: 0x000057BA, - 12575: 0x000057C6, - 12576: 0x000057BD, - 12577: 0x000057BC, - 12578: 0x000057B8, - 12579: 0x000057B6, - 12580: 0x000057BF, - 12581: 0x000057C7, - 12582: 0x000057D0, - 12583: 0x000057B9, - 12584: 0x000057C1, - 12585: 0x0000590E, - 12586: 0x0000594A, - 12587: 0x00005A19, - 12588: 0x00005A16, - 12589: 0x00005A2D, - 12590: 0x00005A2E, - 12591: 0x00005A15, - 12592: 0x00005A0F, - 12593: 0x00005A17, - 12594: 0x00005A0A, - 12595: 0x00005A1E, - 12596: 0x00005A33, - 12597: 0x00005B6C, - 12598: 0x00005BA7, - 12599: 0x00005BAD, - 12600: 0x00005BAC, - 12601: 0x00005C03, - 12602: 0x00005C56, - 12603: 0x00005C54, - 12604: 0x00005CEC, - 12605: 0x00005CFF, - 12606: 0x00005CEE, - 12607: 0x00005CF1, - 12608: 0x00005CF7, - 12609: 0x00005D00, - 12610: 0x00005CF9, - 12611: 0x00005E29, - 12612: 0x00005E28, - 12613: 0x00005EA8, - 12614: 0x00005EAE, - 12615: 0x00005EAA, - 12616: 0x00005EAC, - 12617: 0x00005F33, - 12618: 0x00005F30, - 12619: 0x00005F67, - 12620: 0x0000605D, - 12621: 0x0000605A, - 12622: 0x00006067, - 12623: 0x00006041, - 12624: 0x000060A2, - 12625: 0x00006088, - 12626: 0x00006080, - 12627: 0x00006092, - 12628: 0x00006081, - 12629: 0x0000609D, - 12630: 0x00006083, - 12631: 0x00006095, - 12632: 0x0000609B, - 12633: 0x00006097, - 12634: 0x00006087, - 12635: 0x0000609C, - 12636: 0x0000608E, - 12637: 0x00006219, - 12638: 0x00006246, - 12639: 0x000062F2, - 12640: 0x00006310, - 12641: 0x00006356, - 12642: 0x0000632C, - 12643: 0x00006344, - 12644: 0x00006345, - 12645: 0x00006336, - 12646: 0x00006343, - 12647: 0x000063E4, - 12648: 0x00006339, - 12649: 0x0000634B, - 12650: 0x0000634A, - 12651: 0x0000633C, - 12652: 0x00006329, - 12653: 0x00006341, - 12654: 0x00006334, - 12655: 0x00006358, - 12656: 0x00006354, - 12657: 0x00006359, - 12658: 0x0000632D, - 12659: 0x00006347, - 12660: 0x00006333, - 12661: 0x0000635A, - 12662: 0x00006351, - 12663: 0x00006338, - 12664: 0x00006357, - 12665: 0x00006340, - 12666: 0x00006348, - 12667: 0x0000654A, - 12668: 0x00006546, - 12669: 0x000065C6, - 12670: 0x000065C3, - 12671: 0x000065C4, - 12672: 0x000065C2, - 12673: 0x0000664A, - 12674: 0x0000665F, - 12675: 0x00006647, - 12676: 0x00006651, - 12677: 0x00006712, - 12678: 0x00006713, - 12679: 0x0000681F, - 12680: 0x0000681A, - 12681: 0x00006849, - 12682: 0x00006832, - 12683: 0x00006833, - 12684: 0x0000683B, - 12685: 0x0000684B, - 12686: 0x0000684F, - 12687: 0x00006816, - 12688: 0x00006831, - 12689: 0x0000681C, - 12690: 0x00006835, - 12691: 0x0000682B, - 12692: 0x0000682D, - 12693: 0x0000682F, - 12694: 0x0000684E, - 12695: 0x00006844, - 12696: 0x00006834, - 12697: 0x0000681D, - 12698: 0x00006812, - 12699: 0x00006814, - 12700: 0x00006826, - 12701: 0x00006828, - 12702: 0x0000682E, - 12703: 0x0000684D, - 12704: 0x0000683A, - 12705: 0x00006825, - 12706: 0x00006820, - 12707: 0x00006B2C, - 12708: 0x00006B2F, - 12709: 0x00006B2D, - 12710: 0x00006B31, - 12711: 0x00006B34, - 12712: 0x00006B6D, - 12713: 0x00008082, - 12714: 0x00006B88, - 12715: 0x00006BE6, - 12716: 0x00006BE4, - 12717: 0x00006BE8, - 12718: 0x00006BE3, - 12719: 0x00006BE2, - 12720: 0x00006BE7, - 12721: 0x00006C25, - 12722: 0x00006D7A, - 12723: 0x00006D63, - 12724: 0x00006D64, - 12725: 0x00006D76, - 12726: 0x00006D0D, - 12727: 0x00006D61, - 12728: 0x00006D92, - 12729: 0x00006D58, - 12730: 0x00006D62, - 12731: 0x00006D6D, - 12732: 0x00006D6F, - 12733: 0x00006D91, - 12734: 0x00006D8D, - 12735: 0x00006DEF, - 12736: 0x00006D7F, - 12737: 0x00006D86, - 12738: 0x00006D5E, - 12739: 0x00006D67, - 12740: 0x00006D60, - 12741: 0x00006D97, - 12742: 0x00006D70, - 12743: 0x00006D7C, - 12744: 0x00006D5F, - 12745: 0x00006D82, - 12746: 0x00006D98, - 12747: 0x00006D2F, - 12748: 0x00006D68, - 12749: 0x00006D8B, - 12750: 0x00006D7E, - 12751: 0x00006D80, - 12752: 0x00006D84, - 12753: 0x00006D16, - 12754: 0x00006D83, - 12755: 0x00006D7B, - 12756: 0x00006D7D, - 12757: 0x00006D75, - 12758: 0x00006D90, - 12759: 0x000070DC, - 12760: 0x000070D3, - 12761: 0x000070D1, - 12762: 0x000070DD, - 12763: 0x000070CB, - 12764: 0x00007F39, - 12765: 0x000070E2, - 12766: 0x000070D7, - 12767: 0x000070D2, - 12768: 0x000070DE, - 12769: 0x000070E0, - 12770: 0x000070D4, - 12771: 0x000070CD, - 12772: 0x000070C5, - 12773: 0x000070C6, - 12774: 0x000070C7, - 12775: 0x000070DA, - 12776: 0x000070CE, - 12777: 0x000070E1, - 12778: 0x00007242, - 12779: 0x00007278, - 12780: 0x00007277, - 12781: 0x00007276, - 12782: 0x00007300, - 12783: 0x000072FA, - 12784: 0x000072F4, - 12785: 0x000072FE, - 12786: 0x000072F6, - 12787: 0x000072F3, - 12788: 0x000072FB, - 12789: 0x00007301, - 12790: 0x000073D3, - 12791: 0x000073D9, - 12792: 0x000073E5, - 12793: 0x000073D6, - 12794: 0x000073BC, - 12795: 0x000073E7, - 12796: 0x000073E3, - 12797: 0x000073E9, - 12798: 0x000073DC, - 12799: 0x000073D2, - 12800: 0x000073DB, - 12801: 0x000073D4, - 12802: 0x000073DD, - 12803: 0x000073DA, - 12804: 0x000073D7, - 12805: 0x000073D8, - 12806: 0x000073E8, - 12807: 0x000074DE, - 12808: 0x000074DF, - 12809: 0x000074F4, - 12810: 0x000074F5, - 12811: 0x00007521, - 12812: 0x0000755B, - 12813: 0x0000755F, - 12814: 0x000075B0, - 12815: 0x000075C1, - 12816: 0x000075BB, - 12817: 0x000075C4, - 12818: 0x000075C0, - 12819: 0x000075BF, - 12820: 0x000075B6, - 12821: 0x000075BA, - 12822: 0x0000768A, - 12823: 0x000076C9, - 12824: 0x0000771D, - 12825: 0x0000771B, - 12826: 0x00007710, - 12827: 0x00007713, - 12828: 0x00007712, - 12829: 0x00007723, - 12830: 0x00007711, - 12831: 0x00007715, - 12832: 0x00007719, - 12833: 0x0000771A, - 12834: 0x00007722, - 12835: 0x00007727, - 12836: 0x00007823, - 12837: 0x0000782C, - 12838: 0x00007822, - 12839: 0x00007835, - 12840: 0x0000782F, - 12841: 0x00007828, - 12842: 0x0000782E, - 12843: 0x0000782B, - 12844: 0x00007821, - 12845: 0x00007829, - 12846: 0x00007833, - 12847: 0x0000782A, - 12848: 0x00007831, - 12849: 0x00007954, - 12850: 0x0000795B, - 12851: 0x0000794F, - 12852: 0x0000795C, - 12853: 0x00007953, - 12854: 0x00007952, - 12855: 0x00007951, - 12856: 0x000079EB, - 12857: 0x000079EC, - 12858: 0x000079E0, - 12859: 0x000079EE, - 12860: 0x000079ED, - 12861: 0x000079EA, - 12862: 0x000079DC, - 12863: 0x000079DE, - 12864: 0x000079DD, - 12865: 0x00007A86, - 12866: 0x00007A89, - 12867: 0x00007A85, - 12868: 0x00007A8B, - 12869: 0x00007A8C, - 12870: 0x00007A8A, - 12871: 0x00007A87, - 12872: 0x00007AD8, - 12873: 0x00007B10, - 12874: 0x00007B04, - 12875: 0x00007B13, - 12876: 0x00007B05, - 12877: 0x00007B0F, - 12878: 0x00007B08, - 12879: 0x00007B0A, - 12880: 0x00007B0E, - 12881: 0x00007B09, - 12882: 0x00007B12, - 12883: 0x00007C84, - 12884: 0x00007C91, - 12885: 0x00007C8A, - 12886: 0x00007C8C, - 12887: 0x00007C88, - 12888: 0x00007C8D, - 12889: 0x00007C85, - 12890: 0x00007D1E, - 12891: 0x00007D1D, - 12892: 0x00007D11, - 12893: 0x00007D0E, - 12894: 0x00007D18, - 12895: 0x00007D16, - 12896: 0x00007D13, - 12897: 0x00007D1F, - 12898: 0x00007D12, - 12899: 0x00007D0F, - 12900: 0x00007D0C, - 12901: 0x00007F5C, - 12902: 0x00007F61, - 12903: 0x00007F5E, - 12904: 0x00007F60, - 12905: 0x00007F5D, - 12906: 0x00007F5B, - 12907: 0x00007F96, - 12908: 0x00007F92, - 12909: 0x00007FC3, - 12910: 0x00007FC2, - 12911: 0x00007FC0, - 12912: 0x00008016, - 12913: 0x0000803E, - 12914: 0x00008039, - 12915: 0x000080FA, - 12916: 0x000080F2, - 12917: 0x000080F9, - 12918: 0x000080F5, - 12919: 0x00008101, - 12920: 0x000080FB, - 12921: 0x00008100, - 12922: 0x00008201, - 12923: 0x0000822F, - 12924: 0x00008225, - 12925: 0x00008333, - 12926: 0x0000832D, - 12927: 0x00008344, - 12928: 0x00008319, - 12929: 0x00008351, - 12930: 0x00008325, - 12931: 0x00008356, - 12932: 0x0000833F, - 12933: 0x00008341, - 12934: 0x00008326, - 12935: 0x0000831C, - 12936: 0x00008322, - 12937: 0x00008342, - 12938: 0x0000834E, - 12939: 0x0000831B, - 12940: 0x0000832A, - 12941: 0x00008308, - 12942: 0x0000833C, - 12943: 0x0000834D, - 12944: 0x00008316, - 12945: 0x00008324, - 12946: 0x00008320, - 12947: 0x00008337, - 12948: 0x0000832F, - 12949: 0x00008329, - 12950: 0x00008347, - 12951: 0x00008345, - 12952: 0x0000834C, - 12953: 0x00008353, - 12954: 0x0000831E, - 12955: 0x0000832C, - 12956: 0x0000834B, - 12957: 0x00008327, - 12958: 0x00008348, - 12959: 0x00008653, - 12960: 0x00008652, - 12961: 0x000086A2, - 12962: 0x000086A8, - 12963: 0x00008696, - 12964: 0x0000868D, - 12965: 0x00008691, - 12966: 0x0000869E, - 12967: 0x00008687, - 12968: 0x00008697, - 12969: 0x00008686, - 12970: 0x0000868B, - 12971: 0x0000869A, - 12972: 0x00008685, - 12973: 0x000086A5, - 12974: 0x00008699, - 12975: 0x000086A1, - 12976: 0x000086A7, - 12977: 0x00008695, - 12978: 0x00008698, - 12979: 0x0000868E, - 12980: 0x0000869D, - 12981: 0x00008690, - 12982: 0x00008694, - 12983: 0x00008843, - 12984: 0x00008844, - 12985: 0x0000886D, - 12986: 0x00008875, - 12987: 0x00008876, - 12988: 0x00008872, - 12989: 0x00008880, - 12990: 0x00008871, - 12991: 0x0000887F, - 12992: 0x0000886F, - 12993: 0x00008883, - 12994: 0x0000887E, - 12995: 0x00008874, - 12996: 0x0000887C, - 12997: 0x00008A12, - 12998: 0x00008C47, - 12999: 0x00008C57, - 13000: 0x00008C7B, - 13001: 0x00008CA4, - 13002: 0x00008CA3, - 13003: 0x00008D76, - 13004: 0x00008D78, - 13005: 0x00008DB5, - 13006: 0x00008DB7, - 13007: 0x00008DB6, - 13008: 0x00008ED1, - 13009: 0x00008ED3, - 13010: 0x00008FFE, - 13011: 0x00008FF5, - 13012: 0x00009002, - 13013: 0x00008FFF, - 13014: 0x00008FFB, - 13015: 0x00009004, - 13016: 0x00008FFC, - 13017: 0x00008FF6, - 13018: 0x000090D6, - 13019: 0x000090E0, - 13020: 0x000090D9, - 13021: 0x000090DA, - 13022: 0x000090E3, - 13023: 0x000090DF, - 13024: 0x000090E5, - 13025: 0x000090D8, - 13026: 0x000090DB, - 13027: 0x000090D7, - 13028: 0x000090DC, - 13029: 0x000090E4, - 13030: 0x00009150, - 13031: 0x0000914E, - 13032: 0x0000914F, - 13033: 0x000091D5, - 13034: 0x000091E2, - 13035: 0x000091DA, - 13036: 0x0000965C, - 13037: 0x0000965F, - 13038: 0x000096BC, - 13039: 0x000098E3, - 13040: 0x00009ADF, - 13041: 0x00009B2F, - 13042: 0x00004E7F, - 13043: 0x00005070, - 13044: 0x0000506A, - 13045: 0x00005061, - 13046: 0x0000505E, - 13047: 0x00005060, - 13048: 0x00005053, - 13049: 0x0000504B, - 13050: 0x0000505D, - 13051: 0x00005072, - 13052: 0x00005048, - 13053: 0x0000504D, - 13054: 0x00005041, - 13055: 0x0000505B, - 13056: 0x0000504A, - 13057: 0x00005062, - 13058: 0x00005015, - 13059: 0x00005045, - 13060: 0x0000505F, - 13061: 0x00005069, - 13062: 0x0000506B, - 13063: 0x00005063, - 13064: 0x00005064, - 13065: 0x00005046, - 13066: 0x00005040, - 13067: 0x0000506E, - 13068: 0x00005073, - 13069: 0x00005057, - 13070: 0x00005051, - 13071: 0x000051D0, - 13072: 0x0000526B, - 13073: 0x0000526D, - 13074: 0x0000526C, - 13075: 0x0000526E, - 13076: 0x000052D6, - 13077: 0x000052D3, - 13078: 0x0000532D, - 13079: 0x0000539C, - 13080: 0x00005575, - 13081: 0x00005576, - 13082: 0x0000553C, - 13083: 0x0000554D, - 13084: 0x00005550, - 13085: 0x00005534, - 13086: 0x0000552A, - 13087: 0x00005551, - 13088: 0x00005562, - 13089: 0x00005536, - 13090: 0x00005535, - 13091: 0x00005530, - 13092: 0x00005552, - 13093: 0x00005545, - 13094: 0x0000550C, - 13095: 0x00005532, - 13096: 0x00005565, - 13097: 0x0000554E, - 13098: 0x00005539, - 13099: 0x00005548, - 13100: 0x0000552D, - 13101: 0x0000553B, - 13102: 0x00005540, - 13103: 0x0000554B, - 13104: 0x0000570A, - 13105: 0x00005707, - 13106: 0x000057FB, - 13107: 0x00005814, - 13108: 0x000057E2, - 13109: 0x000057F6, - 13110: 0x000057DC, - 13111: 0x000057F4, - 13112: 0x00005800, - 13113: 0x000057ED, - 13114: 0x000057FD, - 13115: 0x00005808, - 13116: 0x000057F8, - 13117: 0x0000580B, - 13118: 0x000057F3, - 13119: 0x000057CF, - 13120: 0x00005807, - 13121: 0x000057EE, - 13122: 0x000057E3, - 13123: 0x000057F2, - 13124: 0x000057E5, - 13125: 0x000057EC, - 13126: 0x000057E1, - 13127: 0x0000580E, - 13128: 0x000057FC, - 13129: 0x00005810, - 13130: 0x000057E7, - 13131: 0x00005801, - 13132: 0x0000580C, - 13133: 0x000057F1, - 13134: 0x000057E9, - 13135: 0x000057F0, - 13136: 0x0000580D, - 13137: 0x00005804, - 13138: 0x0000595C, - 13139: 0x00005A60, - 13140: 0x00005A58, - 13141: 0x00005A55, - 13142: 0x00005A67, - 13143: 0x00005A5E, - 13144: 0x00005A38, - 13145: 0x00005A35, - 13146: 0x00005A6D, - 13147: 0x00005A50, - 13148: 0x00005A5F, - 13149: 0x00005A65, - 13150: 0x00005A6C, - 13151: 0x00005A53, - 13152: 0x00005A64, - 13153: 0x00005A57, - 13154: 0x00005A43, - 13155: 0x00005A5D, - 13156: 0x00005A52, - 13157: 0x00005A44, - 13158: 0x00005A5B, - 13159: 0x00005A48, - 13160: 0x00005A8E, - 13161: 0x00005A3E, - 13162: 0x00005A4D, - 13163: 0x00005A39, - 13164: 0x00005A4C, - 13165: 0x00005A70, - 13166: 0x00005A69, - 13167: 0x00005A47, - 13168: 0x00005A51, - 13169: 0x00005A56, - 13170: 0x00005A42, - 13171: 0x00005A5C, - 13172: 0x00005B72, - 13173: 0x00005B6E, - 13174: 0x00005BC1, - 13175: 0x00005BC0, - 13176: 0x00005C59, - 13177: 0x00005D1E, - 13178: 0x00005D0B, - 13179: 0x00005D1D, - 13180: 0x00005D1A, - 13181: 0x00005D20, - 13182: 0x00005D0C, - 13183: 0x00005D28, - 13184: 0x00005D0D, - 13185: 0x00005D26, - 13186: 0x00005D25, - 13187: 0x00005D0F, - 13188: 0x00005D30, - 13189: 0x00005D12, - 13190: 0x00005D23, - 13191: 0x00005D1F, - 13192: 0x00005D2E, - 13193: 0x00005E3E, - 13194: 0x00005E34, - 13195: 0x00005EB1, - 13196: 0x00005EB4, - 13197: 0x00005EB9, - 13198: 0x00005EB2, - 13199: 0x00005EB3, - 13200: 0x00005F36, - 13201: 0x00005F38, - 13202: 0x00005F9B, - 13203: 0x00005F96, - 13204: 0x00005F9F, - 13205: 0x0000608A, - 13206: 0x00006090, - 13207: 0x00006086, - 13208: 0x000060BE, - 13209: 0x000060B0, - 13210: 0x000060BA, - 13211: 0x000060D3, - 13212: 0x000060D4, - 13213: 0x000060CF, - 13214: 0x000060E4, - 13215: 0x000060D9, - 13216: 0x000060DD, - 13217: 0x000060C8, - 13218: 0x000060B1, - 13219: 0x000060DB, - 13220: 0x000060B7, - 13221: 0x000060CA, - 13222: 0x000060BF, - 13223: 0x000060C3, - 13224: 0x000060CD, - 13225: 0x000060C0, - 13226: 0x00006332, - 13227: 0x00006365, - 13228: 0x0000638A, - 13229: 0x00006382, - 13230: 0x0000637D, - 13231: 0x000063BD, - 13232: 0x0000639E, - 13233: 0x000063AD, - 13234: 0x0000639D, - 13235: 0x00006397, - 13236: 0x000063AB, - 13237: 0x0000638E, - 13238: 0x0000636F, - 13239: 0x00006387, - 13240: 0x00006390, - 13241: 0x0000636E, - 13242: 0x000063AF, - 13243: 0x00006375, - 13244: 0x0000639C, - 13245: 0x0000636D, - 13246: 0x000063AE, - 13247: 0x0000637C, - 13248: 0x000063A4, - 13249: 0x0000633B, - 13250: 0x0000639F, - 13251: 0x00006378, - 13252: 0x00006385, - 13253: 0x00006381, - 13254: 0x00006391, - 13255: 0x0000638D, - 13256: 0x00006370, - 13257: 0x00006553, - 13258: 0x000065CD, - 13259: 0x00006665, - 13260: 0x00006661, - 13261: 0x0000665B, - 13262: 0x00006659, - 13263: 0x0000665C, - 13264: 0x00006662, - 13265: 0x00006718, - 13266: 0x00006879, - 13267: 0x00006887, - 13268: 0x00006890, - 13269: 0x0000689C, - 13270: 0x0000686D, - 13271: 0x0000686E, - 13272: 0x000068AE, - 13273: 0x000068AB, - 13274: 0x00006956, - 13275: 0x0000686F, - 13276: 0x000068A3, - 13277: 0x000068AC, - 13278: 0x000068A9, - 13279: 0x00006875, - 13280: 0x00006874, - 13281: 0x000068B2, - 13282: 0x0000688F, - 13283: 0x00006877, - 13284: 0x00006892, - 13285: 0x0000687C, - 13286: 0x0000686B, - 13287: 0x00006872, - 13288: 0x000068AA, - 13289: 0x00006880, - 13290: 0x00006871, - 13291: 0x0000687E, - 13292: 0x0000689B, - 13293: 0x00006896, - 13294: 0x0000688B, - 13295: 0x000068A0, - 13296: 0x00006889, - 13297: 0x000068A4, - 13298: 0x00006878, - 13299: 0x0000687B, - 13300: 0x00006891, - 13301: 0x0000688C, - 13302: 0x0000688A, - 13303: 0x0000687D, - 13304: 0x00006B36, - 13305: 0x00006B33, - 13306: 0x00006B37, - 13307: 0x00006B38, - 13308: 0x00006B91, - 13309: 0x00006B8F, - 13310: 0x00006B8D, - 13311: 0x00006B8E, - 13312: 0x00006B8C, - 13313: 0x00006C2A, - 13314: 0x00006DC0, - 13315: 0x00006DAB, - 13316: 0x00006DB4, - 13317: 0x00006DB3, - 13318: 0x00006E74, - 13319: 0x00006DAC, - 13320: 0x00006DE9, - 13321: 0x00006DE2, - 13322: 0x00006DB7, - 13323: 0x00006DF6, - 13324: 0x00006DD4, - 13325: 0x00006E00, - 13326: 0x00006DC8, - 13327: 0x00006DE0, - 13328: 0x00006DDF, - 13329: 0x00006DD6, - 13330: 0x00006DBE, - 13331: 0x00006DE5, - 13332: 0x00006DDC, - 13333: 0x00006DDD, - 13334: 0x00006DDB, - 13335: 0x00006DF4, - 13336: 0x00006DCA, - 13337: 0x00006DBD, - 13338: 0x00006DED, - 13339: 0x00006DF0, - 13340: 0x00006DBA, - 13341: 0x00006DD5, - 13342: 0x00006DC2, - 13343: 0x00006DCF, - 13344: 0x00006DC9, - 13345: 0x00006DD0, - 13346: 0x00006DF2, - 13347: 0x00006DD3, - 13348: 0x00006DFD, - 13349: 0x00006DD7, - 13350: 0x00006DCD, - 13351: 0x00006DE3, - 13352: 0x00006DBB, - 13353: 0x000070FA, - 13354: 0x0000710D, - 13355: 0x000070F7, - 13356: 0x00007117, - 13357: 0x000070F4, - 13358: 0x0000710C, - 13359: 0x000070F0, - 13360: 0x00007104, - 13361: 0x000070F3, - 13362: 0x00007110, - 13363: 0x000070FC, - 13364: 0x000070FF, - 13365: 0x00007106, - 13366: 0x00007113, - 13367: 0x00007100, - 13368: 0x000070F8, - 13369: 0x000070F6, - 13370: 0x0000710B, - 13371: 0x00007102, - 13372: 0x0000710E, - 13373: 0x0000727E, - 13374: 0x0000727B, - 13375: 0x0000727C, - 13376: 0x0000727F, - 13377: 0x0000731D, - 13378: 0x00007317, - 13379: 0x00007307, - 13380: 0x00007311, - 13381: 0x00007318, - 13382: 0x0000730A, - 13383: 0x00007308, - 13384: 0x000072FF, - 13385: 0x0000730F, - 13386: 0x0000731E, - 13387: 0x00007388, - 13388: 0x000073F6, - 13389: 0x000073F8, - 13390: 0x000073F5, - 13391: 0x00007404, - 13392: 0x00007401, - 13393: 0x000073FD, - 13394: 0x00007407, - 13395: 0x00007400, - 13396: 0x000073FA, - 13397: 0x000073FC, - 13398: 0x000073FF, - 13399: 0x0000740C, - 13400: 0x0000740B, - 13401: 0x000073F4, - 13402: 0x00007408, - 13403: 0x00007564, - 13404: 0x00007563, - 13405: 0x000075CE, - 13406: 0x000075D2, - 13407: 0x000075CF, - 13408: 0x000075CB, - 13409: 0x000075CC, - 13410: 0x000075D1, - 13411: 0x000075D0, - 13412: 0x0000768F, - 13413: 0x00007689, - 13414: 0x000076D3, - 13415: 0x00007739, - 13416: 0x0000772F, - 13417: 0x0000772D, - 13418: 0x00007731, - 13419: 0x00007732, - 13420: 0x00007734, - 13421: 0x00007733, - 13422: 0x0000773D, - 13423: 0x00007725, - 13424: 0x0000773B, - 13425: 0x00007735, - 13426: 0x00007848, - 13427: 0x00007852, - 13428: 0x00007849, - 13429: 0x0000784D, - 13430: 0x0000784A, - 13431: 0x0000784C, - 13432: 0x00007826, - 13433: 0x00007845, - 13434: 0x00007850, - 13435: 0x00007964, - 13436: 0x00007967, - 13437: 0x00007969, - 13438: 0x0000796A, - 13439: 0x00007963, - 13440: 0x0000796B, - 13441: 0x00007961, - 13442: 0x000079BB, - 13443: 0x000079FA, - 13444: 0x000079F8, - 13445: 0x000079F6, - 13446: 0x000079F7, - 13447: 0x00007A8F, - 13448: 0x00007A94, - 13449: 0x00007A90, - 13450: 0x00007B35, - 13451: 0x00007B47, - 13452: 0x00007B34, - 13453: 0x00007B25, - 13454: 0x00007B30, - 13455: 0x00007B22, - 13456: 0x00007B24, - 13457: 0x00007B33, - 13458: 0x00007B18, - 13459: 0x00007B2A, - 13460: 0x00007B1D, - 13461: 0x00007B31, - 13462: 0x00007B2B, - 13463: 0x00007B2D, - 13464: 0x00007B2F, - 13465: 0x00007B32, - 13466: 0x00007B38, - 13467: 0x00007B1A, - 13468: 0x00007B23, - 13469: 0x00007C94, - 13470: 0x00007C98, - 13471: 0x00007C96, - 13472: 0x00007CA3, - 13473: 0x00007D35, - 13474: 0x00007D3D, - 13475: 0x00007D38, - 13476: 0x00007D36, - 13477: 0x00007D3A, - 13478: 0x00007D45, - 13479: 0x00007D2C, - 13480: 0x00007D29, - 13481: 0x00007D41, - 13482: 0x00007D47, - 13483: 0x00007D3E, - 13484: 0x00007D3F, - 13485: 0x00007D4A, - 13486: 0x00007D3B, - 13487: 0x00007D28, - 13488: 0x00007F63, - 13489: 0x00007F95, - 13490: 0x00007F9C, - 13491: 0x00007F9D, - 13492: 0x00007F9B, - 13493: 0x00007FCA, - 13494: 0x00007FCB, - 13495: 0x00007FCD, - 13496: 0x00007FD0, - 13497: 0x00007FD1, - 13498: 0x00007FC7, - 13499: 0x00007FCF, - 13500: 0x00007FC9, - 13501: 0x0000801F, - 13502: 0x0000801E, - 13503: 0x0000801B, - 13504: 0x00008047, - 13505: 0x00008043, - 13506: 0x00008048, - 13507: 0x00008118, - 13508: 0x00008125, - 13509: 0x00008119, - 13510: 0x0000811B, - 13511: 0x0000812D, - 13512: 0x0000811F, - 13513: 0x0000812C, - 13514: 0x0000811E, - 13515: 0x00008121, - 13516: 0x00008115, - 13517: 0x00008127, - 13518: 0x0000811D, - 13519: 0x00008122, - 13520: 0x00008211, - 13521: 0x00008238, - 13522: 0x00008233, - 13523: 0x0000823A, - 13524: 0x00008234, - 13525: 0x00008232, - 13526: 0x00008274, - 13527: 0x00008390, - 13528: 0x000083A3, - 13529: 0x000083A8, - 13530: 0x0000838D, - 13531: 0x0000837A, - 13532: 0x00008373, - 13533: 0x000083A4, - 13534: 0x00008374, - 13535: 0x0000838F, - 13536: 0x00008381, - 13537: 0x00008395, - 13538: 0x00008399, - 13539: 0x00008375, - 13540: 0x00008394, - 13541: 0x000083A9, - 13542: 0x0000837D, - 13543: 0x00008383, - 13544: 0x0000838C, - 13545: 0x0000839D, - 13546: 0x0000839B, - 13547: 0x000083AA, - 13548: 0x0000838B, - 13549: 0x0000837E, - 13550: 0x000083A5, - 13551: 0x000083AF, - 13552: 0x00008388, - 13553: 0x00008397, - 13554: 0x000083B0, - 13555: 0x0000837F, - 13556: 0x000083A6, - 13557: 0x00008387, - 13558: 0x000083AE, - 13559: 0x00008376, - 13560: 0x0000839A, - 13561: 0x00008659, - 13562: 0x00008656, - 13563: 0x000086BF, - 13564: 0x000086B7, - 13565: 0x000086C2, - 13566: 0x000086C1, - 13567: 0x000086C5, - 13568: 0x000086BA, - 13569: 0x000086B0, - 13570: 0x000086C8, - 13571: 0x000086B9, - 13572: 0x000086B3, - 13573: 0x000086B8, - 13574: 0x000086CC, - 13575: 0x000086B4, - 13576: 0x000086BB, - 13577: 0x000086BC, - 13578: 0x000086C3, - 13579: 0x000086BD, - 13580: 0x000086BE, - 13581: 0x00008852, - 13582: 0x00008889, - 13583: 0x00008895, - 13584: 0x000088A8, - 13585: 0x000088A2, - 13586: 0x000088AA, - 13587: 0x0000889A, - 13588: 0x00008891, - 13589: 0x000088A1, - 13590: 0x0000889F, - 13591: 0x00008898, - 13592: 0x000088A7, - 13593: 0x00008899, - 13594: 0x0000889B, - 13595: 0x00008897, - 13596: 0x000088A4, - 13597: 0x000088AC, - 13598: 0x0000888C, - 13599: 0x00008893, - 13600: 0x0000888E, - 13601: 0x00008982, - 13602: 0x000089D6, - 13603: 0x000089D9, - 13604: 0x000089D5, - 13605: 0x00008A30, - 13606: 0x00008A27, - 13607: 0x00008A2C, - 13608: 0x00008A1E, - 13609: 0x00008C39, - 13610: 0x00008C3B, - 13611: 0x00008C5C, - 13612: 0x00008C5D, - 13613: 0x00008C7D, - 13614: 0x00008CA5, - 13615: 0x00008D7D, - 13616: 0x00008D7B, - 13617: 0x00008D79, - 13618: 0x00008DBC, - 13619: 0x00008DC2, - 13620: 0x00008DB9, - 13621: 0x00008DBF, - 13622: 0x00008DC1, - 13623: 0x00008ED8, - 13624: 0x00008EDE, - 13625: 0x00008EDD, - 13626: 0x00008EDC, - 13627: 0x00008ED7, - 13628: 0x00008EE0, - 13629: 0x00008EE1, - 13630: 0x00009024, - 13631: 0x0000900B, - 13632: 0x00009011, - 13633: 0x0000901C, - 13634: 0x0000900C, - 13635: 0x00009021, - 13636: 0x000090EF, - 13637: 0x000090EA, - 13638: 0x000090F0, - 13639: 0x000090F4, - 13640: 0x000090F2, - 13641: 0x000090F3, - 13642: 0x000090D4, - 13643: 0x000090EB, - 13644: 0x000090EC, - 13645: 0x000090E9, - 13646: 0x00009156, - 13647: 0x00009158, - 13648: 0x0000915A, - 13649: 0x00009153, - 13650: 0x00009155, - 13651: 0x000091EC, - 13652: 0x000091F4, - 13653: 0x000091F1, - 13654: 0x000091F3, - 13655: 0x000091F8, - 13656: 0x000091E4, - 13657: 0x000091F9, - 13658: 0x000091EA, - 13659: 0x000091EB, - 13660: 0x000091F7, - 13661: 0x000091E8, - 13662: 0x000091EE, - 13663: 0x0000957A, - 13664: 0x00009586, - 13665: 0x00009588, - 13666: 0x0000967C, - 13667: 0x0000966D, - 13668: 0x0000966B, - 13669: 0x00009671, - 13670: 0x0000966F, - 13671: 0x000096BF, - 13672: 0x0000976A, - 13673: 0x00009804, - 13674: 0x000098E5, - 13675: 0x00009997, - 13676: 0x0000509B, - 13677: 0x00005095, - 13678: 0x00005094, - 13679: 0x0000509E, - 13680: 0x0000508B, - 13681: 0x000050A3, - 13682: 0x00005083, - 13683: 0x0000508C, - 13684: 0x0000508E, - 13685: 0x0000509D, - 13686: 0x00005068, - 13687: 0x0000509C, - 13688: 0x00005092, - 13689: 0x00005082, - 13690: 0x00005087, - 13691: 0x0000515F, - 13692: 0x000051D4, - 13693: 0x00005312, - 13694: 0x00005311, - 13695: 0x000053A4, - 13696: 0x000053A7, - 13697: 0x00005591, - 13698: 0x000055A8, - 13699: 0x000055A5, - 13700: 0x000055AD, - 13701: 0x00005577, - 13702: 0x00005645, - 13703: 0x000055A2, - 13704: 0x00005593, - 13705: 0x00005588, - 13706: 0x0000558F, - 13707: 0x000055B5, - 13708: 0x00005581, - 13709: 0x000055A3, - 13710: 0x00005592, - 13711: 0x000055A4, - 13712: 0x0000557D, - 13713: 0x0000558C, - 13714: 0x000055A6, - 13715: 0x0000557F, - 13716: 0x00005595, - 13717: 0x000055A1, - 13718: 0x0000558E, - 13719: 0x0000570C, - 13720: 0x00005829, - 13721: 0x00005837, - 13722: 0x00005819, - 13723: 0x0000581E, - 13724: 0x00005827, - 13725: 0x00005823, - 13726: 0x00005828, - 13727: 0x000057F5, - 13728: 0x00005848, - 13729: 0x00005825, - 13730: 0x0000581C, - 13731: 0x0000581B, - 13732: 0x00005833, - 13733: 0x0000583F, - 13734: 0x00005836, - 13735: 0x0000582E, - 13736: 0x00005839, - 13737: 0x00005838, - 13738: 0x0000582D, - 13739: 0x0000582C, - 13740: 0x0000583B, - 13741: 0x00005961, - 13742: 0x00005AAF, - 13743: 0x00005A94, - 13744: 0x00005A9F, - 13745: 0x00005A7A, - 13746: 0x00005AA2, - 13747: 0x00005A9E, - 13748: 0x00005A78, - 13749: 0x00005AA6, - 13750: 0x00005A7C, - 13751: 0x00005AA5, - 13752: 0x00005AAC, - 13753: 0x00005A95, - 13754: 0x00005AAE, - 13755: 0x00005A37, - 13756: 0x00005A84, - 13757: 0x00005A8A, - 13758: 0x00005A97, - 13759: 0x00005A83, - 13760: 0x00005A8B, - 13761: 0x00005AA9, - 13762: 0x00005A7B, - 13763: 0x00005A7D, - 13764: 0x00005A8C, - 13765: 0x00005A9C, - 13766: 0x00005A8F, - 13767: 0x00005A93, - 13768: 0x00005A9D, - 13769: 0x00005BEA, - 13770: 0x00005BCD, - 13771: 0x00005BCB, - 13772: 0x00005BD4, - 13773: 0x00005BD1, - 13774: 0x00005BCA, - 13775: 0x00005BCE, - 13776: 0x00005C0C, - 13777: 0x00005C30, - 13778: 0x00005D37, - 13779: 0x00005D43, - 13780: 0x00005D6B, - 13781: 0x00005D41, - 13782: 0x00005D4B, - 13783: 0x00005D3F, - 13784: 0x00005D35, - 13785: 0x00005D51, - 13786: 0x00005D4E, - 13787: 0x00005D55, - 13788: 0x00005D33, - 13789: 0x00005D3A, - 13790: 0x00005D52, - 13791: 0x00005D3D, - 13792: 0x00005D31, - 13793: 0x00005D59, - 13794: 0x00005D42, - 13795: 0x00005D39, - 13796: 0x00005D49, - 13797: 0x00005D38, - 13798: 0x00005D3C, - 13799: 0x00005D32, - 13800: 0x00005D36, - 13801: 0x00005D40, - 13802: 0x00005D45, - 13803: 0x00005E44, - 13804: 0x00005E41, - 13805: 0x00005F58, - 13806: 0x00005FA6, - 13807: 0x00005FA5, - 13808: 0x00005FAB, - 13809: 0x000060C9, - 13810: 0x000060B9, - 13811: 0x000060CC, - 13812: 0x000060E2, - 13813: 0x000060CE, - 13814: 0x000060C4, - 13815: 0x00006114, - 13816: 0x000060F2, - 13817: 0x0000610A, - 13818: 0x00006116, - 13819: 0x00006105, - 13820: 0x000060F5, - 13821: 0x00006113, - 13822: 0x000060F8, - 13823: 0x000060FC, - 13824: 0x000060FE, - 13825: 0x000060C1, - 13826: 0x00006103, - 13827: 0x00006118, - 13828: 0x0000611D, - 13829: 0x00006110, - 13830: 0x000060FF, - 13831: 0x00006104, - 13832: 0x0000610B, - 13833: 0x0000624A, - 13834: 0x00006394, - 13835: 0x000063B1, - 13836: 0x000063B0, - 13837: 0x000063CE, - 13838: 0x000063E5, - 13839: 0x000063E8, - 13840: 0x000063EF, - 13841: 0x000063C3, - 13842: 0x0000649D, - 13843: 0x000063F3, - 13844: 0x000063CA, - 13845: 0x000063E0, - 13846: 0x000063F6, - 13847: 0x000063D5, - 13848: 0x000063F2, - 13849: 0x000063F5, - 13850: 0x00006461, - 13851: 0x000063DF, - 13852: 0x000063BE, - 13853: 0x000063DD, - 13854: 0x000063DC, - 13855: 0x000063C4, - 13856: 0x000063D8, - 13857: 0x000063D3, - 13858: 0x000063C2, - 13859: 0x000063C7, - 13860: 0x000063CC, - 13861: 0x000063CB, - 13862: 0x000063C8, - 13863: 0x000063F0, - 13864: 0x000063D7, - 13865: 0x000063D9, - 13866: 0x00006532, - 13867: 0x00006567, - 13868: 0x0000656A, - 13869: 0x00006564, - 13870: 0x0000655C, - 13871: 0x00006568, - 13872: 0x00006565, - 13873: 0x0000658C, - 13874: 0x0000659D, - 13875: 0x0000659E, - 13876: 0x000065AE, - 13877: 0x000065D0, - 13878: 0x000065D2, - 13879: 0x0000667C, - 13880: 0x0000666C, - 13881: 0x0000667B, - 13882: 0x00006680, - 13883: 0x00006671, - 13884: 0x00006679, - 13885: 0x0000666A, - 13886: 0x00006672, - 13887: 0x00006701, - 13888: 0x0000690C, - 13889: 0x000068D3, - 13890: 0x00006904, - 13891: 0x000068DC, - 13892: 0x0000692A, - 13893: 0x000068EC, - 13894: 0x000068EA, - 13895: 0x000068F1, - 13896: 0x0000690F, - 13897: 0x000068D6, - 13898: 0x000068F7, - 13899: 0x000068EB, - 13900: 0x000068E4, - 13901: 0x000068F6, - 13902: 0x00006913, - 13903: 0x00006910, - 13904: 0x000068F3, - 13905: 0x000068E1, - 13906: 0x00006907, - 13907: 0x000068CC, - 13908: 0x00006908, - 13909: 0x00006970, - 13910: 0x000068B4, - 13911: 0x00006911, - 13912: 0x000068EF, - 13913: 0x000068C6, - 13914: 0x00006914, - 13915: 0x000068F8, - 13916: 0x000068D0, - 13917: 0x000068FD, - 13918: 0x000068FC, - 13919: 0x000068E8, - 13920: 0x0000690B, - 13921: 0x0000690A, - 13922: 0x00006917, - 13923: 0x000068CE, - 13924: 0x000068C8, - 13925: 0x000068DD, - 13926: 0x000068DE, - 13927: 0x000068E6, - 13928: 0x000068F4, - 13929: 0x000068D1, - 13930: 0x00006906, - 13931: 0x000068D4, - 13932: 0x000068E9, - 13933: 0x00006915, - 13934: 0x00006925, - 13935: 0x000068C7, - 13936: 0x00006B39, - 13937: 0x00006B3B, - 13938: 0x00006B3F, - 13939: 0x00006B3C, - 13940: 0x00006B94, - 13941: 0x00006B97, - 13942: 0x00006B99, - 13943: 0x00006B95, - 13944: 0x00006BBD, - 13945: 0x00006BF0, - 13946: 0x00006BF2, - 13947: 0x00006BF3, - 13948: 0x00006C30, - 13949: 0x00006DFC, - 13950: 0x00006E46, - 13951: 0x00006E47, - 13952: 0x00006E1F, - 13953: 0x00006E49, - 13954: 0x00006E88, - 13955: 0x00006E3C, - 13956: 0x00006E3D, - 13957: 0x00006E45, - 13958: 0x00006E62, - 13959: 0x00006E2B, - 13960: 0x00006E3F, - 13961: 0x00006E41, - 13962: 0x00006E5D, - 13963: 0x00006E73, - 13964: 0x00006E1C, - 13965: 0x00006E33, - 13966: 0x00006E4B, - 13967: 0x00006E40, - 13968: 0x00006E51, - 13969: 0x00006E3B, - 13970: 0x00006E03, - 13971: 0x00006E2E, - 13972: 0x00006E5E, - 13973: 0x00006E68, - 13974: 0x00006E5C, - 13975: 0x00006E61, - 13976: 0x00006E31, - 13977: 0x00006E28, - 13978: 0x00006E60, - 13979: 0x00006E71, - 13980: 0x00006E6B, - 13981: 0x00006E39, - 13982: 0x00006E22, - 13983: 0x00006E30, - 13984: 0x00006E53, - 13985: 0x00006E65, - 13986: 0x00006E27, - 13987: 0x00006E78, - 13988: 0x00006E64, - 13989: 0x00006E77, - 13990: 0x00006E55, - 13991: 0x00006E79, - 13992: 0x00006E52, - 13993: 0x00006E66, - 13994: 0x00006E35, - 13995: 0x00006E36, - 13996: 0x00006E5A, - 13997: 0x00007120, - 13998: 0x0000711E, - 13999: 0x0000712F, - 14000: 0x000070FB, - 14001: 0x0000712E, - 14002: 0x00007131, - 14003: 0x00007123, - 14004: 0x00007125, - 14005: 0x00007122, - 14006: 0x00007132, - 14007: 0x0000711F, - 14008: 0x00007128, - 14009: 0x0000713A, - 14010: 0x0000711B, - 14011: 0x0000724B, - 14012: 0x0000725A, - 14013: 0x00007288, - 14014: 0x00007289, - 14015: 0x00007286, - 14016: 0x00007285, - 14017: 0x0000728B, - 14018: 0x00007312, - 14019: 0x0000730B, - 14020: 0x00007330, - 14021: 0x00007322, - 14022: 0x00007331, - 14023: 0x00007333, - 14024: 0x00007327, - 14025: 0x00007332, - 14026: 0x0000732D, - 14027: 0x00007326, - 14028: 0x00007323, - 14029: 0x00007335, - 14030: 0x0000730C, - 14031: 0x0000742E, - 14032: 0x0000742C, - 14033: 0x00007430, - 14034: 0x0000742B, - 14035: 0x00007416, - 14036: 0x0000741A, - 14037: 0x00007421, - 14038: 0x0000742D, - 14039: 0x00007431, - 14040: 0x00007424, - 14041: 0x00007423, - 14042: 0x0000741D, - 14043: 0x00007429, - 14044: 0x00007420, - 14045: 0x00007432, - 14046: 0x000074FB, - 14047: 0x0000752F, - 14048: 0x0000756F, - 14049: 0x0000756C, - 14050: 0x000075E7, - 14051: 0x000075DA, - 14052: 0x000075E1, - 14053: 0x000075E6, - 14054: 0x000075DD, - 14055: 0x000075DF, - 14056: 0x000075E4, - 14057: 0x000075D7, - 14058: 0x00007695, - 14059: 0x00007692, - 14060: 0x000076DA, - 14061: 0x00007746, - 14062: 0x00007747, - 14063: 0x00007744, - 14064: 0x0000774D, - 14065: 0x00007745, - 14066: 0x0000774A, - 14067: 0x0000774E, - 14068: 0x0000774B, - 14069: 0x0000774C, - 14070: 0x000077DE, - 14071: 0x000077EC, - 14072: 0x00007860, - 14073: 0x00007864, - 14074: 0x00007865, - 14075: 0x0000785C, - 14076: 0x0000786D, - 14077: 0x00007871, - 14078: 0x0000786A, - 14079: 0x0000786E, - 14080: 0x00007870, - 14081: 0x00007869, - 14082: 0x00007868, - 14083: 0x0000785E, - 14084: 0x00007862, - 14085: 0x00007974, - 14086: 0x00007973, - 14087: 0x00007972, - 14088: 0x00007970, - 14089: 0x00007A02, - 14090: 0x00007A0A, - 14091: 0x00007A03, - 14092: 0x00007A0C, - 14093: 0x00007A04, - 14094: 0x00007A99, - 14095: 0x00007AE6, - 14096: 0x00007AE4, - 14097: 0x00007B4A, - 14098: 0x00007B3B, - 14099: 0x00007B44, - 14100: 0x00007B48, - 14101: 0x00007B4C, - 14102: 0x00007B4E, - 14103: 0x00007B40, - 14104: 0x00007B58, - 14105: 0x00007B45, - 14106: 0x00007CA2, - 14107: 0x00007C9E, - 14108: 0x00007CA8, - 14109: 0x00007CA1, - 14110: 0x00007D58, - 14111: 0x00007D6F, - 14112: 0x00007D63, - 14113: 0x00007D53, - 14114: 0x00007D56, - 14115: 0x00007D67, - 14116: 0x00007D6A, - 14117: 0x00007D4F, - 14118: 0x00007D6D, - 14119: 0x00007D5C, - 14120: 0x00007D6B, - 14121: 0x00007D52, - 14122: 0x00007D54, - 14123: 0x00007D69, - 14124: 0x00007D51, - 14125: 0x00007D5F, - 14126: 0x00007D4E, - 14127: 0x00007F3E, - 14128: 0x00007F3F, - 14129: 0x00007F65, - 14130: 0x00007F66, - 14131: 0x00007FA2, - 14132: 0x00007FA0, - 14133: 0x00007FA1, - 14134: 0x00007FD7, - 14135: 0x00008051, - 14136: 0x0000804F, - 14137: 0x00008050, - 14138: 0x000080FE, - 14139: 0x000080D4, - 14140: 0x00008143, - 14141: 0x0000814A, - 14142: 0x00008152, - 14143: 0x0000814F, - 14144: 0x00008147, - 14145: 0x0000813D, - 14146: 0x0000814D, - 14147: 0x0000813A, - 14148: 0x000081E6, - 14149: 0x000081EE, - 14150: 0x000081F7, - 14151: 0x000081F8, - 14152: 0x000081F9, - 14153: 0x00008204, - 14154: 0x0000823C, - 14155: 0x0000823D, - 14156: 0x0000823F, - 14157: 0x00008275, - 14158: 0x0000833B, - 14159: 0x000083CF, - 14160: 0x000083F9, - 14161: 0x00008423, - 14162: 0x000083C0, - 14163: 0x000083E8, - 14164: 0x00008412, - 14165: 0x000083E7, - 14166: 0x000083E4, - 14167: 0x000083FC, - 14168: 0x000083F6, - 14169: 0x00008410, - 14170: 0x000083C6, - 14171: 0x000083C8, - 14172: 0x000083EB, - 14173: 0x000083E3, - 14174: 0x000083BF, - 14175: 0x00008401, - 14176: 0x000083DD, - 14177: 0x000083E5, - 14178: 0x000083D8, - 14179: 0x000083FF, - 14180: 0x000083E1, - 14181: 0x000083CB, - 14182: 0x000083CE, - 14183: 0x000083D6, - 14184: 0x000083F5, - 14185: 0x000083C9, - 14186: 0x00008409, - 14187: 0x0000840F, - 14188: 0x000083DE, - 14189: 0x00008411, - 14190: 0x00008406, - 14191: 0x000083C2, - 14192: 0x000083F3, - 14193: 0x000083D5, - 14194: 0x000083FA, - 14195: 0x000083C7, - 14196: 0x000083D1, - 14197: 0x000083EA, - 14198: 0x00008413, - 14199: 0x000083C3, - 14200: 0x000083EC, - 14201: 0x000083EE, - 14202: 0x000083C4, - 14203: 0x000083FB, - 14204: 0x000083D7, - 14205: 0x000083E2, - 14206: 0x0000841B, - 14207: 0x000083DB, - 14208: 0x000083FE, - 14209: 0x000086D8, - 14210: 0x000086E2, - 14211: 0x000086E6, - 14212: 0x000086D3, - 14213: 0x000086E3, - 14214: 0x000086DA, - 14215: 0x000086EA, - 14216: 0x000086DD, - 14217: 0x000086EB, - 14218: 0x000086DC, - 14219: 0x000086EC, - 14220: 0x000086E9, - 14221: 0x000086D7, - 14222: 0x000086E8, - 14223: 0x000086D1, - 14224: 0x00008848, - 14225: 0x00008856, - 14226: 0x00008855, - 14227: 0x000088BA, - 14228: 0x000088D7, - 14229: 0x000088B9, - 14230: 0x000088B8, - 14231: 0x000088C0, - 14232: 0x000088BE, - 14233: 0x000088B6, - 14234: 0x000088BC, - 14235: 0x000088B7, - 14236: 0x000088BD, - 14237: 0x000088B2, - 14238: 0x00008901, - 14239: 0x000088C9, - 14240: 0x00008995, - 14241: 0x00008998, - 14242: 0x00008997, - 14243: 0x000089DD, - 14244: 0x000089DA, - 14245: 0x000089DB, - 14246: 0x00008A4E, - 14247: 0x00008A4D, - 14248: 0x00008A39, - 14249: 0x00008A59, - 14250: 0x00008A40, - 14251: 0x00008A57, - 14252: 0x00008A58, - 14253: 0x00008A44, - 14254: 0x00008A45, - 14255: 0x00008A52, - 14256: 0x00008A48, - 14257: 0x00008A51, - 14258: 0x00008A4A, - 14259: 0x00008A4C, - 14260: 0x00008A4F, - 14261: 0x00008C5F, - 14262: 0x00008C81, - 14263: 0x00008C80, - 14264: 0x00008CBA, - 14265: 0x00008CBE, - 14266: 0x00008CB0, - 14267: 0x00008CB9, - 14268: 0x00008CB5, - 14269: 0x00008D84, - 14270: 0x00008D80, - 14271: 0x00008D89, - 14272: 0x00008DD8, - 14273: 0x00008DD3, - 14274: 0x00008DCD, - 14275: 0x00008DC7, - 14276: 0x00008DD6, - 14277: 0x00008DDC, - 14278: 0x00008DCF, - 14279: 0x00008DD5, - 14280: 0x00008DD9, - 14281: 0x00008DC8, - 14282: 0x00008DD7, - 14283: 0x00008DC5, - 14284: 0x00008EEF, - 14285: 0x00008EF7, - 14286: 0x00008EFA, - 14287: 0x00008EF9, - 14288: 0x00008EE6, - 14289: 0x00008EEE, - 14290: 0x00008EE5, - 14291: 0x00008EF5, - 14292: 0x00008EE7, - 14293: 0x00008EE8, - 14294: 0x00008EF6, - 14295: 0x00008EEB, - 14296: 0x00008EF1, - 14297: 0x00008EEC, - 14298: 0x00008EF4, - 14299: 0x00008EE9, - 14300: 0x0000902D, - 14301: 0x00009034, - 14302: 0x0000902F, - 14303: 0x00009106, - 14304: 0x0000912C, - 14305: 0x00009104, - 14306: 0x000090FF, - 14307: 0x000090FC, - 14308: 0x00009108, - 14309: 0x000090F9, - 14310: 0x000090FB, - 14311: 0x00009101, - 14312: 0x00009100, - 14313: 0x00009107, - 14314: 0x00009105, - 14315: 0x00009103, - 14316: 0x00009161, - 14317: 0x00009164, - 14318: 0x0000915F, - 14319: 0x00009162, - 14320: 0x00009160, - 14321: 0x00009201, - 14322: 0x0000920A, - 14323: 0x00009225, - 14324: 0x00009203, - 14325: 0x0000921A, - 14326: 0x00009226, - 14327: 0x0000920F, - 14328: 0x0000920C, - 14329: 0x00009200, - 14330: 0x00009212, - 14331: 0x000091FF, - 14332: 0x000091FD, - 14333: 0x00009206, - 14334: 0x00009204, - 14335: 0x00009227, - 14336: 0x00009202, - 14337: 0x0000921C, - 14338: 0x00009224, - 14339: 0x00009219, - 14340: 0x00009217, - 14341: 0x00009205, - 14342: 0x00009216, - 14343: 0x0000957B, - 14344: 0x0000958D, - 14345: 0x0000958C, - 14346: 0x00009590, - 14347: 0x00009687, - 14348: 0x0000967E, - 14349: 0x00009688, - 14350: 0x00009689, - 14351: 0x00009683, - 14352: 0x00009680, - 14353: 0x000096C2, - 14354: 0x000096C8, - 14355: 0x000096C3, - 14356: 0x000096F1, - 14357: 0x000096F0, - 14358: 0x0000976C, - 14359: 0x00009770, - 14360: 0x0000976E, - 14361: 0x00009807, - 14362: 0x000098A9, - 14363: 0x000098EB, - 14364: 0x00009CE6, - 14365: 0x00009EF9, - 14366: 0x00004E83, - 14367: 0x00004E84, - 14368: 0x00004EB6, - 14369: 0x000050BD, - 14370: 0x000050BF, - 14371: 0x000050C6, - 14372: 0x000050AE, - 14373: 0x000050C4, - 14374: 0x000050CA, - 14375: 0x000050B4, - 14376: 0x000050C8, - 14377: 0x000050C2, - 14378: 0x000050B0, - 14379: 0x000050C1, - 14380: 0x000050BA, - 14381: 0x000050B1, - 14382: 0x000050CB, - 14383: 0x000050C9, - 14384: 0x000050B6, - 14385: 0x000050B8, - 14386: 0x000051D7, - 14387: 0x0000527A, - 14388: 0x00005278, - 14389: 0x0000527B, - 14390: 0x0000527C, - 14391: 0x000055C3, - 14392: 0x000055DB, - 14393: 0x000055CC, - 14394: 0x000055D0, - 14395: 0x000055CB, - 14396: 0x000055CA, - 14397: 0x000055DD, - 14398: 0x000055C0, - 14399: 0x000055D4, - 14400: 0x000055C4, - 14401: 0x000055E9, - 14402: 0x000055BF, - 14403: 0x000055D2, - 14404: 0x0000558D, - 14405: 0x000055CF, - 14406: 0x000055D5, - 14407: 0x000055E2, - 14408: 0x000055D6, - 14409: 0x000055C8, - 14410: 0x000055F2, - 14411: 0x000055CD, - 14412: 0x000055D9, - 14413: 0x000055C2, - 14414: 0x00005714, - 14415: 0x00005853, - 14416: 0x00005868, - 14417: 0x00005864, - 14418: 0x0000584F, - 14419: 0x0000584D, - 14420: 0x00005849, - 14421: 0x0000586F, - 14422: 0x00005855, - 14423: 0x0000584E, - 14424: 0x0000585D, - 14425: 0x00005859, - 14426: 0x00005865, - 14427: 0x0000585B, - 14428: 0x0000583D, - 14429: 0x00005863, - 14430: 0x00005871, - 14431: 0x000058FC, - 14432: 0x00005AC7, - 14433: 0x00005AC4, - 14434: 0x00005ACB, - 14435: 0x00005ABA, - 14436: 0x00005AB8, - 14437: 0x00005AB1, - 14438: 0x00005AB5, - 14439: 0x00005AB0, - 14440: 0x00005ABF, - 14441: 0x00005AC8, - 14442: 0x00005ABB, - 14443: 0x00005AC6, - 14444: 0x00005AB7, - 14445: 0x00005AC0, - 14446: 0x00005ACA, - 14447: 0x00005AB4, - 14448: 0x00005AB6, - 14449: 0x00005ACD, - 14450: 0x00005AB9, - 14451: 0x00005A90, - 14452: 0x00005BD6, - 14453: 0x00005BD8, - 14454: 0x00005BD9, - 14455: 0x00005C1F, - 14456: 0x00005C33, - 14457: 0x00005D71, - 14458: 0x00005D63, - 14459: 0x00005D4A, - 14460: 0x00005D65, - 14461: 0x00005D72, - 14462: 0x00005D6C, - 14463: 0x00005D5E, - 14464: 0x00005D68, - 14465: 0x00005D67, - 14466: 0x00005D62, - 14467: 0x00005DF0, - 14468: 0x00005E4F, - 14469: 0x00005E4E, - 14470: 0x00005E4A, - 14471: 0x00005E4D, - 14472: 0x00005E4B, - 14473: 0x00005EC5, - 14474: 0x00005ECC, - 14475: 0x00005EC6, - 14476: 0x00005ECB, - 14477: 0x00005EC7, - 14478: 0x00005F40, - 14479: 0x00005FAF, - 14480: 0x00005FAD, - 14481: 0x000060F7, - 14482: 0x00006149, - 14483: 0x0000614A, - 14484: 0x0000612B, - 14485: 0x00006145, - 14486: 0x00006136, - 14487: 0x00006132, - 14488: 0x0000612E, - 14489: 0x00006146, - 14490: 0x0000612F, - 14491: 0x0000614F, - 14492: 0x00006129, - 14493: 0x00006140, - 14494: 0x00006220, - 14495: 0x00009168, - 14496: 0x00006223, - 14497: 0x00006225, - 14498: 0x00006224, - 14499: 0x000063C5, - 14500: 0x000063F1, - 14501: 0x000063EB, - 14502: 0x00006410, - 14503: 0x00006412, - 14504: 0x00006409, - 14505: 0x00006420, - 14506: 0x00006424, - 14507: 0x00006433, - 14508: 0x00006443, - 14509: 0x0000641F, - 14510: 0x00006415, - 14511: 0x00006418, - 14512: 0x00006439, - 14513: 0x00006437, - 14514: 0x00006422, - 14515: 0x00006423, - 14516: 0x0000640C, - 14517: 0x00006426, - 14518: 0x00006430, - 14519: 0x00006428, - 14520: 0x00006441, - 14521: 0x00006435, - 14522: 0x0000642F, - 14523: 0x0000640A, - 14524: 0x0000641A, - 14525: 0x00006440, - 14526: 0x00006425, - 14527: 0x00006427, - 14528: 0x0000640B, - 14529: 0x000063E7, - 14530: 0x0000641B, - 14531: 0x0000642E, - 14532: 0x00006421, - 14533: 0x0000640E, - 14534: 0x0000656F, - 14535: 0x00006592, - 14536: 0x000065D3, - 14537: 0x00006686, - 14538: 0x0000668C, - 14539: 0x00006695, - 14540: 0x00006690, - 14541: 0x0000668B, - 14542: 0x0000668A, - 14543: 0x00006699, - 14544: 0x00006694, - 14545: 0x00006678, - 14546: 0x00006720, - 14547: 0x00006966, - 14548: 0x0000695F, - 14549: 0x00006938, - 14550: 0x0000694E, - 14551: 0x00006962, - 14552: 0x00006971, - 14553: 0x0000693F, - 14554: 0x00006945, - 14555: 0x0000696A, - 14556: 0x00006939, - 14557: 0x00006942, - 14558: 0x00006957, - 14559: 0x00006959, - 14560: 0x0000697A, - 14561: 0x00006948, - 14562: 0x00006949, - 14563: 0x00006935, - 14564: 0x0000696C, - 14565: 0x00006933, - 14566: 0x0000693D, - 14567: 0x00006965, - 14568: 0x000068F0, - 14569: 0x00006978, - 14570: 0x00006934, - 14571: 0x00006969, - 14572: 0x00006940, - 14573: 0x0000696F, - 14574: 0x00006944, - 14575: 0x00006976, - 14576: 0x00006958, - 14577: 0x00006941, - 14578: 0x00006974, - 14579: 0x0000694C, - 14580: 0x0000693B, - 14581: 0x0000694B, - 14582: 0x00006937, - 14583: 0x0000695C, - 14584: 0x0000694F, - 14585: 0x00006951, - 14586: 0x00006932, - 14587: 0x00006952, - 14588: 0x0000692F, - 14589: 0x0000697B, - 14590: 0x0000693C, - 14591: 0x00006B46, - 14592: 0x00006B45, - 14593: 0x00006B43, - 14594: 0x00006B42, - 14595: 0x00006B48, - 14596: 0x00006B41, - 14597: 0x00006B9B, - 14598: 0x0000FA0D, - 14599: 0x00006BFB, - 14600: 0x00006BFC, - 14601: 0x00006BF9, - 14602: 0x00006BF7, - 14603: 0x00006BF8, - 14604: 0x00006E9B, - 14605: 0x00006ED6, - 14606: 0x00006EC8, - 14607: 0x00006E8F, - 14608: 0x00006EC0, - 14609: 0x00006E9F, - 14610: 0x00006E93, - 14611: 0x00006E94, - 14612: 0x00006EA0, - 14613: 0x00006EB1, - 14614: 0x00006EB9, - 14615: 0x00006EC6, - 14616: 0x00006ED2, - 14617: 0x00006EBD, - 14618: 0x00006EC1, - 14619: 0x00006E9E, - 14620: 0x00006EC9, - 14621: 0x00006EB7, - 14622: 0x00006EB0, - 14623: 0x00006ECD, - 14624: 0x00006EA6, - 14625: 0x00006ECF, - 14626: 0x00006EB2, - 14627: 0x00006EBE, - 14628: 0x00006EC3, - 14629: 0x00006EDC, - 14630: 0x00006ED8, - 14631: 0x00006E99, - 14632: 0x00006E92, - 14633: 0x00006E8E, - 14634: 0x00006E8D, - 14635: 0x00006EA4, - 14636: 0x00006EA1, - 14637: 0x00006EBF, - 14638: 0x00006EB3, - 14639: 0x00006ED0, - 14640: 0x00006ECA, - 14641: 0x00006E97, - 14642: 0x00006EAE, - 14643: 0x00006EA3, - 14644: 0x00007147, - 14645: 0x00007154, - 14646: 0x00007152, - 14647: 0x00007163, - 14648: 0x00007160, - 14649: 0x00007141, - 14650: 0x0000715D, - 14651: 0x00007162, - 14652: 0x00007172, - 14653: 0x00007178, - 14654: 0x0000716A, - 14655: 0x00007161, - 14656: 0x00007142, - 14657: 0x00007158, - 14658: 0x00007143, - 14659: 0x0000714B, - 14660: 0x00007170, - 14661: 0x0000715F, - 14662: 0x00007150, - 14663: 0x00007153, - 14664: 0x00007144, - 14665: 0x0000714D, - 14666: 0x0000715A, - 14667: 0x0000724F, - 14668: 0x0000728D, - 14669: 0x0000728C, - 14670: 0x00007291, - 14671: 0x00007290, - 14672: 0x0000728E, - 14673: 0x0000733C, - 14674: 0x00007342, - 14675: 0x0000733B, - 14676: 0x0000733A, - 14677: 0x00007340, - 14678: 0x0000734A, - 14679: 0x00007349, - 14680: 0x00007444, - 14681: 0x0000744A, - 14682: 0x0000744B, - 14683: 0x00007452, - 14684: 0x00007451, - 14685: 0x00007457, - 14686: 0x00007440, - 14687: 0x0000744F, - 14688: 0x00007450, - 14689: 0x0000744E, - 14690: 0x00007442, - 14691: 0x00007446, - 14692: 0x0000744D, - 14693: 0x00007454, - 14694: 0x000074E1, - 14695: 0x000074FF, - 14696: 0x000074FE, - 14697: 0x000074FD, - 14698: 0x0000751D, - 14699: 0x00007579, - 14700: 0x00007577, - 14701: 0x00006983, - 14702: 0x000075EF, - 14703: 0x0000760F, - 14704: 0x00007603, - 14705: 0x000075F7, - 14706: 0x000075FE, - 14707: 0x000075FC, - 14708: 0x000075F9, - 14709: 0x000075F8, - 14710: 0x00007610, - 14711: 0x000075FB, - 14712: 0x000075F6, - 14713: 0x000075ED, - 14714: 0x000075F5, - 14715: 0x000075FD, - 14716: 0x00007699, - 14717: 0x000076B5, - 14718: 0x000076DD, - 14719: 0x00007755, - 14720: 0x0000775F, - 14721: 0x00007760, - 14722: 0x00007752, - 14723: 0x00007756, - 14724: 0x0000775A, - 14725: 0x00007769, - 14726: 0x00007767, - 14727: 0x00007754, - 14728: 0x00007759, - 14729: 0x0000776D, - 14730: 0x000077E0, - 14731: 0x00007887, - 14732: 0x0000789A, - 14733: 0x00007894, - 14734: 0x0000788F, - 14735: 0x00007884, - 14736: 0x00007895, - 14737: 0x00007885, - 14738: 0x00007886, - 14739: 0x000078A1, - 14740: 0x00007883, - 14741: 0x00007879, - 14742: 0x00007899, - 14743: 0x00007880, - 14744: 0x00007896, - 14745: 0x0000787B, - 14746: 0x0000797C, - 14747: 0x00007982, - 14748: 0x0000797D, - 14749: 0x00007979, - 14750: 0x00007A11, - 14751: 0x00007A18, - 14752: 0x00007A19, - 14753: 0x00007A12, - 14754: 0x00007A17, - 14755: 0x00007A15, - 14756: 0x00007A22, - 14757: 0x00007A13, - 14758: 0x00007A1B, - 14759: 0x00007A10, - 14760: 0x00007AA3, - 14761: 0x00007AA2, - 14762: 0x00007A9E, - 14763: 0x00007AEB, - 14764: 0x00007B66, - 14765: 0x00007B64, - 14766: 0x00007B6D, - 14767: 0x00007B74, - 14768: 0x00007B69, - 14769: 0x00007B72, - 14770: 0x00007B65, - 14771: 0x00007B73, - 14772: 0x00007B71, - 14773: 0x00007B70, - 14774: 0x00007B61, - 14775: 0x00007B78, - 14776: 0x00007B76, - 14777: 0x00007B63, - 14778: 0x00007CB2, - 14779: 0x00007CB4, - 14780: 0x00007CAF, - 14781: 0x00007D88, - 14782: 0x00007D86, - 14783: 0x00007D80, - 14784: 0x00007D8D, - 14785: 0x00007D7F, - 14786: 0x00007D85, - 14787: 0x00007D7A, - 14788: 0x00007D8E, - 14789: 0x00007D7B, - 14790: 0x00007D83, - 14791: 0x00007D7C, - 14792: 0x00007D8C, - 14793: 0x00007D94, - 14794: 0x00007D84, - 14795: 0x00007D7D, - 14796: 0x00007D92, - 14797: 0x00007F6D, - 14798: 0x00007F6B, - 14799: 0x00007F67, - 14800: 0x00007F68, - 14801: 0x00007F6C, - 14802: 0x00007FA6, - 14803: 0x00007FA5, - 14804: 0x00007FA7, - 14805: 0x00007FDB, - 14806: 0x00007FDC, - 14807: 0x00008021, - 14808: 0x00008164, - 14809: 0x00008160, - 14810: 0x00008177, - 14811: 0x0000815C, - 14812: 0x00008169, - 14813: 0x0000815B, - 14814: 0x00008162, - 14815: 0x00008172, - 14816: 0x00006721, - 14817: 0x0000815E, - 14818: 0x00008176, - 14819: 0x00008167, - 14820: 0x0000816F, - 14821: 0x00008144, - 14822: 0x00008161, - 14823: 0x0000821D, - 14824: 0x00008249, - 14825: 0x00008244, - 14826: 0x00008240, - 14827: 0x00008242, - 14828: 0x00008245, - 14829: 0x000084F1, - 14830: 0x0000843F, - 14831: 0x00008456, - 14832: 0x00008476, - 14833: 0x00008479, - 14834: 0x0000848F, - 14835: 0x0000848D, - 14836: 0x00008465, - 14837: 0x00008451, - 14838: 0x00008440, - 14839: 0x00008486, - 14840: 0x00008467, - 14841: 0x00008430, - 14842: 0x0000844D, - 14843: 0x0000847D, - 14844: 0x0000845A, - 14845: 0x00008459, - 14846: 0x00008474, - 14847: 0x00008473, - 14848: 0x0000845D, - 14849: 0x00008507, - 14850: 0x0000845E, - 14851: 0x00008437, - 14852: 0x0000843A, - 14853: 0x00008434, - 14854: 0x0000847A, - 14855: 0x00008443, - 14856: 0x00008478, - 14857: 0x00008432, - 14858: 0x00008445, - 14859: 0x00008429, - 14860: 0x000083D9, - 14861: 0x0000844B, - 14862: 0x0000842F, - 14863: 0x00008442, - 14864: 0x0000842D, - 14865: 0x0000845F, - 14866: 0x00008470, - 14867: 0x00008439, - 14868: 0x0000844E, - 14869: 0x0000844C, - 14870: 0x00008452, - 14871: 0x0000846F, - 14872: 0x000084C5, - 14873: 0x0000848E, - 14874: 0x0000843B, - 14875: 0x00008447, - 14876: 0x00008436, - 14877: 0x00008433, - 14878: 0x00008468, - 14879: 0x0000847E, - 14880: 0x00008444, - 14881: 0x0000842B, - 14882: 0x00008460, - 14883: 0x00008454, - 14884: 0x0000846E, - 14885: 0x00008450, - 14886: 0x0000870B, - 14887: 0x00008704, - 14888: 0x000086F7, - 14889: 0x0000870C, - 14890: 0x000086FA, - 14891: 0x000086D6, - 14892: 0x000086F5, - 14893: 0x0000874D, - 14894: 0x000086F8, - 14895: 0x0000870E, - 14896: 0x00008709, - 14897: 0x00008701, - 14898: 0x000086F6, - 14899: 0x0000870D, - 14900: 0x00008705, - 14901: 0x000088D6, - 14902: 0x000088CB, - 14903: 0x000088CD, - 14904: 0x000088CE, - 14905: 0x000088DE, - 14906: 0x000088DB, - 14907: 0x000088DA, - 14908: 0x000088CC, - 14909: 0x000088D0, - 14910: 0x00008985, - 14911: 0x0000899B, - 14912: 0x000089DF, - 14913: 0x000089E5, - 14914: 0x000089E4, - 14915: 0x000089E1, - 14916: 0x000089E0, - 14917: 0x000089E2, - 14918: 0x000089DC, - 14919: 0x000089E6, - 14920: 0x00008A76, - 14921: 0x00008A86, - 14922: 0x00008A7F, - 14923: 0x00008A61, - 14924: 0x00008A3F, - 14925: 0x00008A77, - 14926: 0x00008A82, - 14927: 0x00008A84, - 14928: 0x00008A75, - 14929: 0x00008A83, - 14930: 0x00008A81, - 14931: 0x00008A74, - 14932: 0x00008A7A, - 14933: 0x00008C3C, - 14934: 0x00008C4B, - 14935: 0x00008C4A, - 14936: 0x00008C65, - 14937: 0x00008C64, - 14938: 0x00008C66, - 14939: 0x00008C86, - 14940: 0x00008C84, - 14941: 0x00008C85, - 14942: 0x00008CCC, - 14943: 0x00008D68, - 14944: 0x00008D69, - 14945: 0x00008D91, - 14946: 0x00008D8C, - 14947: 0x00008D8E, - 14948: 0x00008D8F, - 14949: 0x00008D8D, - 14950: 0x00008D93, - 14951: 0x00008D94, - 14952: 0x00008D90, - 14953: 0x00008D92, - 14954: 0x00008DF0, - 14955: 0x00008DE0, - 14956: 0x00008DEC, - 14957: 0x00008DF1, - 14958: 0x00008DEE, - 14959: 0x00008DD0, - 14960: 0x00008DE9, - 14961: 0x00008DE3, - 14962: 0x00008DE2, - 14963: 0x00008DE7, - 14964: 0x00008DF2, - 14965: 0x00008DEB, - 14966: 0x00008DF4, - 14967: 0x00008F06, - 14968: 0x00008EFF, - 14969: 0x00008F01, - 14970: 0x00008F00, - 14971: 0x00008F05, - 14972: 0x00008F07, - 14973: 0x00008F08, - 14974: 0x00008F02, - 14975: 0x00008F0B, - 14976: 0x00009052, - 14977: 0x0000903F, - 14978: 0x00009044, - 14979: 0x00009049, - 14980: 0x0000903D, - 14981: 0x00009110, - 14982: 0x0000910D, - 14983: 0x0000910F, - 14984: 0x00009111, - 14985: 0x00009116, - 14986: 0x00009114, - 14987: 0x0000910B, - 14988: 0x0000910E, - 14989: 0x0000916E, - 14990: 0x0000916F, - 14991: 0x00009248, - 14992: 0x00009252, - 14993: 0x00009230, - 14994: 0x0000923A, - 14995: 0x00009266, - 14996: 0x00009233, - 14997: 0x00009265, - 14998: 0x0000925E, - 14999: 0x00009283, - 15000: 0x0000922E, - 15001: 0x0000924A, - 15002: 0x00009246, - 15003: 0x0000926D, - 15004: 0x0000926C, - 15005: 0x0000924F, - 15006: 0x00009260, - 15007: 0x00009267, - 15008: 0x0000926F, - 15009: 0x00009236, - 15010: 0x00009261, - 15011: 0x00009270, - 15012: 0x00009231, - 15013: 0x00009254, - 15014: 0x00009263, - 15015: 0x00009250, - 15016: 0x00009272, - 15017: 0x0000924E, - 15018: 0x00009253, - 15019: 0x0000924C, - 15020: 0x00009256, - 15021: 0x00009232, - 15022: 0x0000959F, - 15023: 0x0000959C, - 15024: 0x0000959E, - 15025: 0x0000959B, - 15026: 0x00009692, - 15027: 0x00009693, - 15028: 0x00009691, - 15029: 0x00009697, - 15030: 0x000096CE, - 15031: 0x000096FA, - 15032: 0x000096FD, - 15033: 0x000096F8, - 15034: 0x000096F5, - 15035: 0x00009773, - 15036: 0x00009777, - 15037: 0x00009778, - 15038: 0x00009772, - 15039: 0x0000980F, - 15040: 0x0000980D, - 15041: 0x0000980E, - 15042: 0x000098AC, - 15043: 0x000098F6, - 15044: 0x000098F9, - 15045: 0x000099AF, - 15046: 0x000099B2, - 15047: 0x000099B0, - 15048: 0x000099B5, - 15049: 0x00009AAD, - 15050: 0x00009AAB, - 15051: 0x00009B5B, - 15052: 0x00009CEA, - 15053: 0x00009CED, - 15054: 0x00009CE7, - 15055: 0x00009E80, - 15056: 0x00009EFD, - 15057: 0x000050E6, - 15058: 0x000050D4, - 15059: 0x000050D7, - 15060: 0x000050E8, - 15061: 0x000050F3, - 15062: 0x000050DB, - 15063: 0x000050EA, - 15064: 0x000050DD, - 15065: 0x000050E4, - 15066: 0x000050D3, - 15067: 0x000050EC, - 15068: 0x000050F0, - 15069: 0x000050EF, - 15070: 0x000050E3, - 15071: 0x000050E0, - 15072: 0x000051D8, - 15073: 0x00005280, - 15074: 0x00005281, - 15075: 0x000052E9, - 15076: 0x000052EB, - 15077: 0x00005330, - 15078: 0x000053AC, - 15079: 0x00005627, - 15080: 0x00005615, - 15081: 0x0000560C, - 15082: 0x00005612, - 15083: 0x000055FC, - 15084: 0x0000560F, - 15085: 0x0000561C, - 15086: 0x00005601, - 15087: 0x00005613, - 15088: 0x00005602, - 15089: 0x000055FA, - 15090: 0x0000561D, - 15091: 0x00005604, - 15092: 0x000055FF, - 15093: 0x000055F9, - 15094: 0x00005889, - 15095: 0x0000587C, - 15096: 0x00005890, - 15097: 0x00005898, - 15098: 0x00005886, - 15099: 0x00005881, - 15100: 0x0000587F, - 15101: 0x00005874, - 15102: 0x0000588B, - 15103: 0x0000587A, - 15104: 0x00005887, - 15105: 0x00005891, - 15106: 0x0000588E, - 15107: 0x00005876, - 15108: 0x00005882, - 15109: 0x00005888, - 15110: 0x0000587B, - 15111: 0x00005894, - 15112: 0x0000588F, - 15113: 0x000058FE, - 15114: 0x0000596B, - 15115: 0x00005ADC, - 15116: 0x00005AEE, - 15117: 0x00005AE5, - 15118: 0x00005AD5, - 15119: 0x00005AEA, - 15120: 0x00005ADA, - 15121: 0x00005AED, - 15122: 0x00005AEB, - 15123: 0x00005AF3, - 15124: 0x00005AE2, - 15125: 0x00005AE0, - 15126: 0x00005ADB, - 15127: 0x00005AEC, - 15128: 0x00005ADE, - 15129: 0x00005ADD, - 15130: 0x00005AD9, - 15131: 0x00005AE8, - 15132: 0x00005ADF, - 15133: 0x00005B77, - 15134: 0x00005BE0, - 15135: 0x00005BE3, - 15136: 0x00005C63, - 15137: 0x00005D82, - 15138: 0x00005D80, - 15139: 0x00005D7D, - 15140: 0x00005D86, - 15141: 0x00005D7A, - 15142: 0x00005D81, - 15143: 0x00005D77, - 15144: 0x00005D8A, - 15145: 0x00005D89, - 15146: 0x00005D88, - 15147: 0x00005D7E, - 15148: 0x00005D7C, - 15149: 0x00005D8D, - 15150: 0x00005D79, - 15151: 0x00005D7F, - 15152: 0x00005E58, - 15153: 0x00005E59, - 15154: 0x00005E53, - 15155: 0x00005ED8, - 15156: 0x00005ED1, - 15157: 0x00005ED7, - 15158: 0x00005ECE, - 15159: 0x00005EDC, - 15160: 0x00005ED5, - 15161: 0x00005ED9, - 15162: 0x00005ED2, - 15163: 0x00005ED4, - 15164: 0x00005F44, - 15165: 0x00005F43, - 15166: 0x00005F6F, - 15167: 0x00005FB6, - 15168: 0x0000612C, - 15169: 0x00006128, - 15170: 0x00006141, - 15171: 0x0000615E, - 15172: 0x00006171, - 15173: 0x00006173, - 15174: 0x00006152, - 15175: 0x00006153, - 15176: 0x00006172, - 15177: 0x0000616C, - 15178: 0x00006180, - 15179: 0x00006174, - 15180: 0x00006154, - 15181: 0x0000617A, - 15182: 0x0000615B, - 15183: 0x00006165, - 15184: 0x0000613B, - 15185: 0x0000616A, - 15186: 0x00006161, - 15187: 0x00006156, - 15188: 0x00006229, - 15189: 0x00006227, - 15190: 0x0000622B, - 15191: 0x0000642B, - 15192: 0x0000644D, - 15193: 0x0000645B, - 15194: 0x0000645D, - 15195: 0x00006474, - 15196: 0x00006476, - 15197: 0x00006472, - 15198: 0x00006473, - 15199: 0x0000647D, - 15200: 0x00006475, - 15201: 0x00006466, - 15202: 0x000064A6, - 15203: 0x0000644E, - 15204: 0x00006482, - 15205: 0x0000645E, - 15206: 0x0000645C, - 15207: 0x0000644B, - 15208: 0x00006453, - 15209: 0x00006460, - 15210: 0x00006450, - 15211: 0x0000647F, - 15212: 0x0000643F, - 15213: 0x0000646C, - 15214: 0x0000646B, - 15215: 0x00006459, - 15216: 0x00006465, - 15217: 0x00006477, - 15218: 0x00006573, - 15219: 0x000065A0, - 15220: 0x000066A1, - 15221: 0x000066A0, - 15222: 0x0000669F, - 15223: 0x00006705, - 15224: 0x00006704, - 15225: 0x00006722, - 15226: 0x000069B1, - 15227: 0x000069B6, - 15228: 0x000069C9, - 15229: 0x000069A0, - 15230: 0x000069CE, - 15231: 0x00006996, - 15232: 0x000069B0, - 15233: 0x000069AC, - 15234: 0x000069BC, - 15235: 0x00006991, - 15236: 0x00006999, - 15237: 0x0000698E, - 15238: 0x000069A7, - 15239: 0x0000698D, - 15240: 0x000069A9, - 15241: 0x000069BE, - 15242: 0x000069AF, - 15243: 0x000069BF, - 15244: 0x000069C4, - 15245: 0x000069BD, - 15246: 0x000069A4, - 15247: 0x000069D4, - 15248: 0x000069B9, - 15249: 0x000069CA, - 15250: 0x0000699A, - 15251: 0x000069CF, - 15252: 0x000069B3, - 15253: 0x00006993, - 15254: 0x000069AA, - 15255: 0x000069A1, - 15256: 0x0000699E, - 15257: 0x000069D9, - 15258: 0x00006997, - 15259: 0x00006990, - 15260: 0x000069C2, - 15261: 0x000069B5, - 15262: 0x000069A5, - 15263: 0x000069C6, - 15264: 0x00006B4A, - 15265: 0x00006B4D, - 15266: 0x00006B4B, - 15267: 0x00006B9E, - 15268: 0x00006B9F, - 15269: 0x00006BA0, - 15270: 0x00006BC3, - 15271: 0x00006BC4, - 15272: 0x00006BFE, - 15273: 0x00006ECE, - 15274: 0x00006EF5, - 15275: 0x00006EF1, - 15276: 0x00006F03, - 15277: 0x00006F25, - 15278: 0x00006EF8, - 15279: 0x00006F37, - 15280: 0x00006EFB, - 15281: 0x00006F2E, - 15282: 0x00006F09, - 15283: 0x00006F4E, - 15284: 0x00006F19, - 15285: 0x00006F1A, - 15286: 0x00006F27, - 15287: 0x00006F18, - 15288: 0x00006F3B, - 15289: 0x00006F12, - 15290: 0x00006EED, - 15291: 0x00006F0A, - 15292: 0x00006F36, - 15293: 0x00006F73, - 15294: 0x00006EF9, - 15295: 0x00006EEE, - 15296: 0x00006F2D, - 15297: 0x00006F40, - 15298: 0x00006F30, - 15299: 0x00006F3C, - 15300: 0x00006F35, - 15301: 0x00006EEB, - 15302: 0x00006F07, - 15303: 0x00006F0E, - 15304: 0x00006F43, - 15305: 0x00006F05, - 15306: 0x00006EFD, - 15307: 0x00006EF6, - 15308: 0x00006F39, - 15309: 0x00006F1C, - 15310: 0x00006EFC, - 15311: 0x00006F3A, - 15312: 0x00006F1F, - 15313: 0x00006F0D, - 15314: 0x00006F1E, - 15315: 0x00006F08, - 15316: 0x00006F21, - 15317: 0x00007187, - 15318: 0x00007190, - 15319: 0x00007189, - 15320: 0x00007180, - 15321: 0x00007185, - 15322: 0x00007182, - 15323: 0x0000718F, - 15324: 0x0000717B, - 15325: 0x00007186, - 15326: 0x00007181, - 15327: 0x00007197, - 15328: 0x00007244, - 15329: 0x00007253, - 15330: 0x00007297, - 15331: 0x00007295, - 15332: 0x00007293, - 15333: 0x00007343, - 15334: 0x0000734D, - 15335: 0x00007351, - 15336: 0x0000734C, - 15337: 0x00007462, - 15338: 0x00007473, - 15339: 0x00007471, - 15340: 0x00007475, - 15341: 0x00007472, - 15342: 0x00007467, - 15343: 0x0000746E, - 15344: 0x00007500, - 15345: 0x00007502, - 15346: 0x00007503, - 15347: 0x0000757D, - 15348: 0x00007590, - 15349: 0x00007616, - 15350: 0x00007608, - 15351: 0x0000760C, - 15352: 0x00007615, - 15353: 0x00007611, - 15354: 0x0000760A, - 15355: 0x00007614, - 15356: 0x000076B8, - 15357: 0x00007781, - 15358: 0x0000777C, - 15359: 0x00007785, - 15360: 0x00007782, - 15361: 0x0000776E, - 15362: 0x00007780, - 15363: 0x0000776F, - 15364: 0x0000777E, - 15365: 0x00007783, - 15366: 0x000078B2, - 15367: 0x000078AA, - 15368: 0x000078B4, - 15369: 0x000078AD, - 15370: 0x000078A8, - 15371: 0x0000787E, - 15372: 0x000078AB, - 15373: 0x0000789E, - 15374: 0x000078A5, - 15375: 0x000078A0, - 15376: 0x000078AC, - 15377: 0x000078A2, - 15378: 0x000078A4, - 15379: 0x00007998, - 15380: 0x0000798A, - 15381: 0x0000798B, - 15382: 0x00007996, - 15383: 0x00007995, - 15384: 0x00007994, - 15385: 0x00007993, - 15386: 0x00007997, - 15387: 0x00007988, - 15388: 0x00007992, - 15389: 0x00007990, - 15390: 0x00007A2B, - 15391: 0x00007A4A, - 15392: 0x00007A30, - 15393: 0x00007A2F, - 15394: 0x00007A28, - 15395: 0x00007A26, - 15396: 0x00007AA8, - 15397: 0x00007AAB, - 15398: 0x00007AAC, - 15399: 0x00007AEE, - 15400: 0x00007B88, - 15401: 0x00007B9C, - 15402: 0x00007B8A, - 15403: 0x00007B91, - 15404: 0x00007B90, - 15405: 0x00007B96, - 15406: 0x00007B8D, - 15407: 0x00007B8C, - 15408: 0x00007B9B, - 15409: 0x00007B8E, - 15410: 0x00007B85, - 15411: 0x00007B98, - 15412: 0x00005284, - 15413: 0x00007B99, - 15414: 0x00007BA4, - 15415: 0x00007B82, - 15416: 0x00007CBB, - 15417: 0x00007CBF, - 15418: 0x00007CBC, - 15419: 0x00007CBA, - 15420: 0x00007DA7, - 15421: 0x00007DB7, - 15422: 0x00007DC2, - 15423: 0x00007DA3, - 15424: 0x00007DAA, - 15425: 0x00007DC1, - 15426: 0x00007DC0, - 15427: 0x00007DC5, - 15428: 0x00007D9D, - 15429: 0x00007DCE, - 15430: 0x00007DC4, - 15431: 0x00007DC6, - 15432: 0x00007DCB, - 15433: 0x00007DCC, - 15434: 0x00007DAF, - 15435: 0x00007DB9, - 15436: 0x00007D96, - 15437: 0x00007DBC, - 15438: 0x00007D9F, - 15439: 0x00007DA6, - 15440: 0x00007DAE, - 15441: 0x00007DA9, - 15442: 0x00007DA1, - 15443: 0x00007DC9, - 15444: 0x00007F73, - 15445: 0x00007FE2, - 15446: 0x00007FE3, - 15447: 0x00007FE5, - 15448: 0x00007FDE, - 15449: 0x00008024, - 15450: 0x0000805D, - 15451: 0x0000805C, - 15452: 0x00008189, - 15453: 0x00008186, - 15454: 0x00008183, - 15455: 0x00008187, - 15456: 0x0000818D, - 15457: 0x0000818C, - 15458: 0x0000818B, - 15459: 0x00008215, - 15460: 0x00008497, - 15461: 0x000084A4, - 15462: 0x000084A1, - 15463: 0x0000849F, - 15464: 0x000084BA, - 15465: 0x000084CE, - 15466: 0x000084C2, - 15467: 0x000084AC, - 15468: 0x000084AE, - 15469: 0x000084AB, - 15470: 0x000084B9, - 15471: 0x000084B4, - 15472: 0x000084C1, - 15473: 0x000084CD, - 15474: 0x000084AA, - 15475: 0x0000849A, - 15476: 0x000084B1, - 15477: 0x000084D0, - 15478: 0x0000849D, - 15479: 0x000084A7, - 15480: 0x000084BB, - 15481: 0x000084A2, - 15482: 0x00008494, - 15483: 0x000084C7, - 15484: 0x000084CC, - 15485: 0x0000849B, - 15486: 0x000084A9, - 15487: 0x000084AF, - 15488: 0x000084A8, - 15489: 0x000084D6, - 15490: 0x00008498, - 15491: 0x000084B6, - 15492: 0x000084CF, - 15493: 0x000084A0, - 15494: 0x000084D7, - 15495: 0x000084D4, - 15496: 0x000084D2, - 15497: 0x000084DB, - 15498: 0x000084B0, - 15499: 0x00008491, - 15500: 0x00008661, - 15501: 0x00008733, - 15502: 0x00008723, - 15503: 0x00008728, - 15504: 0x0000876B, - 15505: 0x00008740, - 15506: 0x0000872E, - 15507: 0x0000871E, - 15508: 0x00008721, - 15509: 0x00008719, - 15510: 0x0000871B, - 15511: 0x00008743, - 15512: 0x0000872C, - 15513: 0x00008741, - 15514: 0x0000873E, - 15515: 0x00008746, - 15516: 0x00008720, - 15517: 0x00008732, - 15518: 0x0000872A, - 15519: 0x0000872D, - 15520: 0x0000873C, - 15521: 0x00008712, - 15522: 0x0000873A, - 15523: 0x00008731, - 15524: 0x00008735, - 15525: 0x00008742, - 15526: 0x00008726, - 15527: 0x00008727, - 15528: 0x00008738, - 15529: 0x00008724, - 15530: 0x0000871A, - 15531: 0x00008730, - 15532: 0x00008711, - 15533: 0x000088F7, - 15534: 0x000088E7, - 15535: 0x000088F1, - 15536: 0x000088F2, - 15537: 0x000088FA, - 15538: 0x000088FE, - 15539: 0x000088EE, - 15540: 0x000088FC, - 15541: 0x000088F6, - 15542: 0x000088FB, - 15543: 0x000088F0, - 15544: 0x000088EC, - 15545: 0x000088EB, - 15546: 0x0000899D, - 15547: 0x000089A1, - 15548: 0x0000899F, - 15549: 0x0000899E, - 15550: 0x000089E9, - 15551: 0x000089EB, - 15552: 0x000089E8, - 15553: 0x00008AAB, - 15554: 0x00008A99, - 15555: 0x00008A8B, - 15556: 0x00008A92, - 15557: 0x00008A8F, - 15558: 0x00008A96, - 15559: 0x00008C3D, - 15560: 0x00008C68, - 15561: 0x00008C69, - 15562: 0x00008CD5, - 15563: 0x00008CCF, - 15564: 0x00008CD7, - 15565: 0x00008D96, - 15566: 0x00008E09, - 15567: 0x00008E02, - 15568: 0x00008DFF, - 15569: 0x00008E0D, - 15570: 0x00008DFD, - 15571: 0x00008E0A, - 15572: 0x00008E03, - 15573: 0x00008E07, - 15574: 0x00008E06, - 15575: 0x00008E05, - 15576: 0x00008DFE, - 15577: 0x00008E00, - 15578: 0x00008E04, - 15579: 0x00008F10, - 15580: 0x00008F11, - 15581: 0x00008F0E, - 15582: 0x00008F0D, - 15583: 0x00009123, - 15584: 0x0000911C, - 15585: 0x00009120, - 15586: 0x00009122, - 15587: 0x0000911F, - 15588: 0x0000911D, - 15589: 0x0000911A, - 15590: 0x00009124, - 15591: 0x00009121, - 15592: 0x0000911B, - 15593: 0x0000917A, - 15594: 0x00009172, - 15595: 0x00009179, - 15596: 0x00009173, - 15597: 0x000092A5, - 15598: 0x000092A4, - 15599: 0x00009276, - 15600: 0x0000929B, - 15601: 0x0000927A, - 15602: 0x000092A0, - 15603: 0x00009294, - 15604: 0x000092AA, - 15605: 0x0000928D, - 15606: 0x000092A6, - 15607: 0x0000929A, - 15608: 0x000092AB, - 15609: 0x00009279, - 15610: 0x00009297, - 15611: 0x0000927F, - 15612: 0x000092A3, - 15613: 0x000092EE, - 15614: 0x0000928E, - 15615: 0x00009282, - 15616: 0x00009295, - 15617: 0x000092A2, - 15618: 0x0000927D, - 15619: 0x00009288, - 15620: 0x000092A1, - 15621: 0x0000928A, - 15622: 0x00009286, - 15623: 0x0000928C, - 15624: 0x00009299, - 15625: 0x000092A7, - 15626: 0x0000927E, - 15627: 0x00009287, - 15628: 0x000092A9, - 15629: 0x0000929D, - 15630: 0x0000928B, - 15631: 0x0000922D, - 15632: 0x0000969E, - 15633: 0x000096A1, - 15634: 0x000096FF, - 15635: 0x00009758, - 15636: 0x0000977D, - 15637: 0x0000977A, - 15638: 0x0000977E, - 15639: 0x00009783, - 15640: 0x00009780, - 15641: 0x00009782, - 15642: 0x0000977B, - 15643: 0x00009784, - 15644: 0x00009781, - 15645: 0x0000977F, - 15646: 0x000097CE, - 15647: 0x000097CD, - 15648: 0x00009816, - 15649: 0x000098AD, - 15650: 0x000098AE, - 15651: 0x00009902, - 15652: 0x00009900, - 15653: 0x00009907, - 15654: 0x0000999D, - 15655: 0x0000999C, - 15656: 0x000099C3, - 15657: 0x000099B9, - 15658: 0x000099BB, - 15659: 0x000099BA, - 15660: 0x000099C2, - 15661: 0x000099BD, - 15662: 0x000099C7, - 15663: 0x00009AB1, - 15664: 0x00009AE3, - 15665: 0x00009AE7, - 15666: 0x00009B3E, - 15667: 0x00009B3F, - 15668: 0x00009B60, - 15669: 0x00009B61, - 15670: 0x00009B5F, - 15671: 0x00009CF1, - 15672: 0x00009CF2, - 15673: 0x00009CF5, - 15674: 0x00009EA7, - 15675: 0x000050FF, - 15676: 0x00005103, - 15677: 0x00005130, - 15678: 0x000050F8, - 15679: 0x00005106, - 15680: 0x00005107, - 15681: 0x000050F6, - 15682: 0x000050FE, - 15683: 0x0000510B, - 15684: 0x0000510C, - 15685: 0x000050FD, - 15686: 0x0000510A, - 15687: 0x0000528B, - 15688: 0x0000528C, - 15689: 0x000052F1, - 15690: 0x000052EF, - 15691: 0x00005648, - 15692: 0x00005642, - 15693: 0x0000564C, - 15694: 0x00005635, - 15695: 0x00005641, - 15696: 0x0000564A, - 15697: 0x00005649, - 15698: 0x00005646, - 15699: 0x00005658, - 15700: 0x0000565A, - 15701: 0x00005640, - 15702: 0x00005633, - 15703: 0x0000563D, - 15704: 0x0000562C, - 15705: 0x0000563E, - 15706: 0x00005638, - 15707: 0x0000562A, - 15708: 0x0000563A, - 15709: 0x0000571A, - 15710: 0x000058AB, - 15711: 0x0000589D, - 15712: 0x000058B1, - 15713: 0x000058A0, - 15714: 0x000058A3, - 15715: 0x000058AF, - 15716: 0x000058AC, - 15717: 0x000058A5, - 15718: 0x000058A1, - 15719: 0x000058FF, - 15720: 0x00005AFF, - 15721: 0x00005AF4, - 15722: 0x00005AFD, - 15723: 0x00005AF7, - 15724: 0x00005AF6, - 15725: 0x00005B03, - 15726: 0x00005AF8, - 15727: 0x00005B02, - 15728: 0x00005AF9, - 15729: 0x00005B01, - 15730: 0x00005B07, - 15731: 0x00005B05, - 15732: 0x00005B0F, - 15733: 0x00005C67, - 15734: 0x00005D99, - 15735: 0x00005D97, - 15736: 0x00005D9F, - 15737: 0x00005D92, - 15738: 0x00005DA2, - 15739: 0x00005D93, - 15740: 0x00005D95, - 15741: 0x00005DA0, - 15742: 0x00005D9C, - 15743: 0x00005DA1, - 15744: 0x00005D9A, - 15745: 0x00005D9E, - 15746: 0x00005E69, - 15747: 0x00005E5D, - 15748: 0x00005E60, - 15749: 0x00005E5C, - 15750: 0x00007DF3, - 15751: 0x00005EDB, - 15752: 0x00005EDE, - 15753: 0x00005EE1, - 15754: 0x00005F49, - 15755: 0x00005FB2, - 15756: 0x0000618B, - 15757: 0x00006183, - 15758: 0x00006179, - 15759: 0x000061B1, - 15760: 0x000061B0, - 15761: 0x000061A2, - 15762: 0x00006189, - 15763: 0x0000619B, - 15764: 0x00006193, - 15765: 0x000061AF, - 15766: 0x000061AD, - 15767: 0x0000619F, - 15768: 0x00006192, - 15769: 0x000061AA, - 15770: 0x000061A1, - 15771: 0x0000618D, - 15772: 0x00006166, - 15773: 0x000061B3, - 15774: 0x0000622D, - 15775: 0x0000646E, - 15776: 0x00006470, - 15777: 0x00006496, - 15778: 0x000064A0, - 15779: 0x00006485, - 15780: 0x00006497, - 15781: 0x0000649C, - 15782: 0x0000648F, - 15783: 0x0000648B, - 15784: 0x0000648A, - 15785: 0x0000648C, - 15786: 0x000064A3, - 15787: 0x0000649F, - 15788: 0x00006468, - 15789: 0x000064B1, - 15790: 0x00006498, - 15791: 0x00006576, - 15792: 0x0000657A, - 15793: 0x00006579, - 15794: 0x0000657B, - 15795: 0x000065B2, - 15796: 0x000065B3, - 15797: 0x000066B5, - 15798: 0x000066B0, - 15799: 0x000066A9, - 15800: 0x000066B2, - 15801: 0x000066B7, - 15802: 0x000066AA, - 15803: 0x000066AF, - 15804: 0x00006A00, - 15805: 0x00006A06, - 15806: 0x00006A17, - 15807: 0x000069E5, - 15808: 0x000069F8, - 15809: 0x00006A15, - 15810: 0x000069F1, - 15811: 0x000069E4, - 15812: 0x00006A20, - 15813: 0x000069FF, - 15814: 0x000069EC, - 15815: 0x000069E2, - 15816: 0x00006A1B, - 15817: 0x00006A1D, - 15818: 0x000069FE, - 15819: 0x00006A27, - 15820: 0x000069F2, - 15821: 0x000069EE, - 15822: 0x00006A14, - 15823: 0x000069F7, - 15824: 0x000069E7, - 15825: 0x00006A40, - 15826: 0x00006A08, - 15827: 0x000069E6, - 15828: 0x000069FB, - 15829: 0x00006A0D, - 15830: 0x000069FC, - 15831: 0x000069EB, - 15832: 0x00006A09, - 15833: 0x00006A04, - 15834: 0x00006A18, - 15835: 0x00006A25, - 15836: 0x00006A0F, - 15837: 0x000069F6, - 15838: 0x00006A26, - 15839: 0x00006A07, - 15840: 0x000069F4, - 15841: 0x00006A16, - 15842: 0x00006B51, - 15843: 0x00006BA5, - 15844: 0x00006BA3, - 15845: 0x00006BA2, - 15846: 0x00006BA6, - 15847: 0x00006C01, - 15848: 0x00006C00, - 15849: 0x00006BFF, - 15850: 0x00006C02, - 15851: 0x00006F41, - 15852: 0x00006F26, - 15853: 0x00006F7E, - 15854: 0x00006F87, - 15855: 0x00006FC6, - 15856: 0x00006F92, - 15857: 0x00006F8D, - 15858: 0x00006F89, - 15859: 0x00006F8C, - 15860: 0x00006F62, - 15861: 0x00006F4F, - 15862: 0x00006F85, - 15863: 0x00006F5A, - 15864: 0x00006F96, - 15865: 0x00006F76, - 15866: 0x00006F6C, - 15867: 0x00006F82, - 15868: 0x00006F55, - 15869: 0x00006F72, - 15870: 0x00006F52, - 15871: 0x00006F50, - 15872: 0x00006F57, - 15873: 0x00006F94, - 15874: 0x00006F93, - 15875: 0x00006F5D, - 15876: 0x00006F00, - 15877: 0x00006F61, - 15878: 0x00006F6B, - 15879: 0x00006F7D, - 15880: 0x00006F67, - 15881: 0x00006F90, - 15882: 0x00006F53, - 15883: 0x00006F8B, - 15884: 0x00006F69, - 15885: 0x00006F7F, - 15886: 0x00006F95, - 15887: 0x00006F63, - 15888: 0x00006F77, - 15889: 0x00006F6A, - 15890: 0x00006F7B, - 15891: 0x000071B2, - 15892: 0x000071AF, - 15893: 0x0000719B, - 15894: 0x000071B0, - 15895: 0x000071A0, - 15896: 0x0000719A, - 15897: 0x000071A9, - 15898: 0x000071B5, - 15899: 0x0000719D, - 15900: 0x000071A5, - 15901: 0x0000719E, - 15902: 0x000071A4, - 15903: 0x000071A1, - 15904: 0x000071AA, - 15905: 0x0000719C, - 15906: 0x000071A7, - 15907: 0x000071B3, - 15908: 0x00007298, - 15909: 0x0000729A, - 15910: 0x00007358, - 15911: 0x00007352, - 15912: 0x0000735E, - 15913: 0x0000735F, - 15914: 0x00007360, - 15915: 0x0000735D, - 15916: 0x0000735B, - 15917: 0x00007361, - 15918: 0x0000735A, - 15919: 0x00007359, - 15920: 0x00007362, - 15921: 0x00007487, - 15922: 0x00007489, - 15923: 0x0000748A, - 15924: 0x00007486, - 15925: 0x00007481, - 15926: 0x0000747D, - 15927: 0x00007485, - 15928: 0x00007488, - 15929: 0x0000747C, - 15930: 0x00007479, - 15931: 0x00007508, - 15932: 0x00007507, - 15933: 0x0000757E, - 15934: 0x00007625, - 15935: 0x0000761E, - 15936: 0x00007619, - 15937: 0x0000761D, - 15938: 0x0000761C, - 15939: 0x00007623, - 15940: 0x0000761A, - 15941: 0x00007628, - 15942: 0x0000761B, - 15943: 0x0000769C, - 15944: 0x0000769D, - 15945: 0x0000769E, - 15946: 0x0000769B, - 15947: 0x0000778D, - 15948: 0x0000778F, - 15949: 0x00007789, - 15950: 0x00007788, - 15951: 0x000078CD, - 15952: 0x000078BB, - 15953: 0x000078CF, - 15954: 0x000078CC, - 15955: 0x000078D1, - 15956: 0x000078CE, - 15957: 0x000078D4, - 15958: 0x000078C8, - 15959: 0x000078C3, - 15960: 0x000078C4, - 15961: 0x000078C9, - 15962: 0x0000799A, - 15963: 0x000079A1, - 15964: 0x000079A0, - 15965: 0x0000799C, - 15966: 0x000079A2, - 15967: 0x0000799B, - 15968: 0x00006B76, - 15969: 0x00007A39, - 15970: 0x00007AB2, - 15971: 0x00007AB4, - 15972: 0x00007AB3, - 15973: 0x00007BB7, - 15974: 0x00007BCB, - 15975: 0x00007BBE, - 15976: 0x00007BAC, - 15977: 0x00007BCE, - 15978: 0x00007BAF, - 15979: 0x00007BB9, - 15980: 0x00007BCA, - 15981: 0x00007BB5, - 15982: 0x00007CC5, - 15983: 0x00007CC8, - 15984: 0x00007CCC, - 15985: 0x00007CCB, - 15986: 0x00007DF7, - 15987: 0x00007DDB, - 15988: 0x00007DEA, - 15989: 0x00007DE7, - 15990: 0x00007DD7, - 15991: 0x00007DE1, - 15992: 0x00007E03, - 15993: 0x00007DFA, - 15994: 0x00007DE6, - 15995: 0x00007DF6, - 15996: 0x00007DF1, - 15997: 0x00007DF0, - 15998: 0x00007DEE, - 15999: 0x00007DDF, - 16000: 0x00007F76, - 16001: 0x00007FAC, - 16002: 0x00007FB0, - 16003: 0x00007FAD, - 16004: 0x00007FED, - 16005: 0x00007FEB, - 16006: 0x00007FEA, - 16007: 0x00007FEC, - 16008: 0x00007FE6, - 16009: 0x00007FE8, - 16010: 0x00008064, - 16011: 0x00008067, - 16012: 0x000081A3, - 16013: 0x0000819F, - 16014: 0x0000819E, - 16015: 0x00008195, - 16016: 0x000081A2, - 16017: 0x00008199, - 16018: 0x00008197, - 16019: 0x00008216, - 16020: 0x0000824F, - 16021: 0x00008253, - 16022: 0x00008252, - 16023: 0x00008250, - 16024: 0x0000824E, - 16025: 0x00008251, - 16026: 0x00008524, - 16027: 0x0000853B, - 16028: 0x0000850F, - 16029: 0x00008500, - 16030: 0x00008529, - 16031: 0x0000850E, - 16032: 0x00008509, - 16033: 0x0000850D, - 16034: 0x0000851F, - 16035: 0x0000850A, - 16036: 0x00008527, - 16037: 0x0000851C, - 16038: 0x000084FB, - 16039: 0x0000852B, - 16040: 0x000084FA, - 16041: 0x00008508, - 16042: 0x0000850C, - 16043: 0x000084F4, - 16044: 0x0000852A, - 16045: 0x000084F2, - 16046: 0x00008515, - 16047: 0x000084F7, - 16048: 0x000084EB, - 16049: 0x000084F3, - 16050: 0x000084FC, - 16051: 0x00008512, - 16052: 0x000084EA, - 16053: 0x000084E9, - 16054: 0x00008516, - 16055: 0x000084FE, - 16056: 0x00008528, - 16057: 0x0000851D, - 16058: 0x0000852E, - 16059: 0x00008502, - 16060: 0x000084FD, - 16061: 0x0000851E, - 16062: 0x000084F6, - 16063: 0x00008531, - 16064: 0x00008526, - 16065: 0x000084E7, - 16066: 0x000084E8, - 16067: 0x000084F0, - 16068: 0x000084EF, - 16069: 0x000084F9, - 16070: 0x00008518, - 16071: 0x00008520, - 16072: 0x00008530, - 16073: 0x0000850B, - 16074: 0x00008519, - 16075: 0x0000852F, - 16076: 0x00008662, - 16077: 0x00008756, - 16078: 0x00008763, - 16079: 0x00008764, - 16080: 0x00008777, - 16081: 0x000087E1, - 16082: 0x00008773, - 16083: 0x00008758, - 16084: 0x00008754, - 16085: 0x0000875B, - 16086: 0x00008752, - 16087: 0x00008761, - 16088: 0x0000875A, - 16089: 0x00008751, - 16090: 0x0000875E, - 16091: 0x0000876D, - 16092: 0x0000876A, - 16093: 0x00008750, - 16094: 0x0000874E, - 16095: 0x0000875F, - 16096: 0x0000875D, - 16097: 0x0000876F, - 16098: 0x0000876C, - 16099: 0x0000877A, - 16100: 0x0000876E, - 16101: 0x0000875C, - 16102: 0x00008765, - 16103: 0x0000874F, - 16104: 0x0000877B, - 16105: 0x00008775, - 16106: 0x00008762, - 16107: 0x00008767, - 16108: 0x00008769, - 16109: 0x0000885A, - 16110: 0x00008905, - 16111: 0x0000890C, - 16112: 0x00008914, - 16113: 0x0000890B, - 16114: 0x00008917, - 16115: 0x00008918, - 16116: 0x00008919, - 16117: 0x00008906, - 16118: 0x00008916, - 16119: 0x00008911, - 16120: 0x0000890E, - 16121: 0x00008909, - 16122: 0x000089A2, - 16123: 0x000089A4, - 16124: 0x000089A3, - 16125: 0x000089ED, - 16126: 0x000089F0, - 16127: 0x000089EC, - 16128: 0x00008ACF, - 16129: 0x00008AC6, - 16130: 0x00008AB8, - 16131: 0x00008AD3, - 16132: 0x00008AD1, - 16133: 0x00008AD4, - 16134: 0x00008AD5, - 16135: 0x00008ABB, - 16136: 0x00008AD7, - 16137: 0x00008ABE, - 16138: 0x00008AC0, - 16139: 0x00008AC5, - 16140: 0x00008AD8, - 16141: 0x00008AC3, - 16142: 0x00008ABA, - 16143: 0x00008ABD, - 16144: 0x00008AD9, - 16145: 0x00008C3E, - 16146: 0x00008C4D, - 16147: 0x00008C8F, - 16148: 0x00008CE5, - 16149: 0x00008CDF, - 16150: 0x00008CD9, - 16151: 0x00008CE8, - 16152: 0x00008CDA, - 16153: 0x00008CDD, - 16154: 0x00008CE7, - 16155: 0x00008DA0, - 16156: 0x00008D9C, - 16157: 0x00008DA1, - 16158: 0x00008D9B, - 16159: 0x00008E20, - 16160: 0x00008E23, - 16161: 0x00008E25, - 16162: 0x00008E24, - 16163: 0x00008E2E, - 16164: 0x00008E15, - 16165: 0x00008E1B, - 16166: 0x00008E16, - 16167: 0x00008E11, - 16168: 0x00008E19, - 16169: 0x00008E26, - 16170: 0x00008E27, - 16171: 0x00008E14, - 16172: 0x00008E12, - 16173: 0x00008E18, - 16174: 0x00008E13, - 16175: 0x00008E1C, - 16176: 0x00008E17, - 16177: 0x00008E1A, - 16178: 0x00008F2C, - 16179: 0x00008F24, - 16180: 0x00008F18, - 16181: 0x00008F1A, - 16182: 0x00008F20, - 16183: 0x00008F23, - 16184: 0x00008F16, - 16185: 0x00008F17, - 16186: 0x00009073, - 16187: 0x00009070, - 16188: 0x0000906F, - 16189: 0x00009067, - 16190: 0x0000906B, - 16191: 0x0000912F, - 16192: 0x0000912B, - 16193: 0x00009129, - 16194: 0x0000912A, - 16195: 0x00009132, - 16196: 0x00009126, - 16197: 0x0000912E, - 16198: 0x00009185, - 16199: 0x00009186, - 16200: 0x0000918A, - 16201: 0x00009181, - 16202: 0x00009182, - 16203: 0x00009184, - 16204: 0x00009180, - 16205: 0x000092D0, - 16206: 0x000092C3, - 16207: 0x000092C4, - 16208: 0x000092C0, - 16209: 0x000092D9, - 16210: 0x000092B6, - 16211: 0x000092CF, - 16212: 0x000092F1, - 16213: 0x000092DF, - 16214: 0x000092D8, - 16215: 0x000092E9, - 16216: 0x000092D7, - 16217: 0x000092DD, - 16218: 0x000092CC, - 16219: 0x000092EF, - 16220: 0x000092C2, - 16221: 0x000092E8, - 16222: 0x000092CA, - 16223: 0x000092C8, - 16224: 0x000092CE, - 16225: 0x000092E6, - 16226: 0x000092CD, - 16227: 0x000092D5, - 16228: 0x000092C9, - 16229: 0x000092E0, - 16230: 0x000092DE, - 16231: 0x000092E7, - 16232: 0x000092D1, - 16233: 0x000092D3, - 16234: 0x000092B5, - 16235: 0x000092E1, - 16236: 0x000092C6, - 16237: 0x000092B4, - 16238: 0x0000957C, - 16239: 0x000095AC, - 16240: 0x000095AB, - 16241: 0x000095AE, - 16242: 0x000095B0, - 16243: 0x000096A4, - 16244: 0x000096A2, - 16245: 0x000096D3, - 16246: 0x00009705, - 16247: 0x00009708, - 16248: 0x00009702, - 16249: 0x0000975A, - 16250: 0x0000978A, - 16251: 0x0000978E, - 16252: 0x00009788, - 16253: 0x000097D0, - 16254: 0x000097CF, - 16255: 0x0000981E, - 16256: 0x0000981D, - 16257: 0x00009826, - 16258: 0x00009829, - 16259: 0x00009828, - 16260: 0x00009820, - 16261: 0x0000981B, - 16262: 0x00009827, - 16263: 0x000098B2, - 16264: 0x00009908, - 16265: 0x000098FA, - 16266: 0x00009911, - 16267: 0x00009914, - 16268: 0x00009916, - 16269: 0x00009917, - 16270: 0x00009915, - 16271: 0x000099DC, - 16272: 0x000099CD, - 16273: 0x000099CF, - 16274: 0x000099D3, - 16275: 0x000099D4, - 16276: 0x000099CE, - 16277: 0x000099C9, - 16278: 0x000099D6, - 16279: 0x000099D8, - 16280: 0x000099CB, - 16281: 0x000099D7, - 16282: 0x000099CC, - 16283: 0x00009AB3, - 16284: 0x00009AEC, - 16285: 0x00009AEB, - 16286: 0x00009AF3, - 16287: 0x00009AF2, - 16288: 0x00009AF1, - 16289: 0x00009B46, - 16290: 0x00009B43, - 16291: 0x00009B67, - 16292: 0x00009B74, - 16293: 0x00009B71, - 16294: 0x00009B66, - 16295: 0x00009B76, - 16296: 0x00009B75, - 16297: 0x00009B70, - 16298: 0x00009B68, - 16299: 0x00009B64, - 16300: 0x00009B6C, - 16301: 0x00009CFC, - 16302: 0x00009CFA, - 16303: 0x00009CFD, - 16304: 0x00009CFF, - 16305: 0x00009CF7, - 16306: 0x00009D07, - 16307: 0x00009D00, - 16308: 0x00009CF9, - 16309: 0x00009CFB, - 16310: 0x00009D08, - 16311: 0x00009D05, - 16312: 0x00009D04, - 16313: 0x00009E83, - 16314: 0x00009ED3, - 16315: 0x00009F0F, - 16316: 0x00009F10, - 16317: 0x0000511C, - 16318: 0x00005113, - 16319: 0x00005117, - 16320: 0x0000511A, - 16321: 0x00005111, - 16322: 0x000051DE, - 16323: 0x00005334, - 16324: 0x000053E1, - 16325: 0x00005670, - 16326: 0x00005660, - 16327: 0x0000566E, - 16328: 0x00005673, - 16329: 0x00005666, - 16330: 0x00005663, - 16331: 0x0000566D, - 16332: 0x00005672, - 16333: 0x0000565E, - 16334: 0x00005677, - 16335: 0x0000571C, - 16336: 0x0000571B, - 16337: 0x000058C8, - 16338: 0x000058BD, - 16339: 0x000058C9, - 16340: 0x000058BF, - 16341: 0x000058BA, - 16342: 0x000058C2, - 16343: 0x000058BC, - 16344: 0x000058C6, - 16345: 0x00005B17, - 16346: 0x00005B19, - 16347: 0x00005B1B, - 16348: 0x00005B21, - 16349: 0x00005B14, - 16350: 0x00005B13, - 16351: 0x00005B10, - 16352: 0x00005B16, - 16353: 0x00005B28, - 16354: 0x00005B1A, - 16355: 0x00005B20, - 16356: 0x00005B1E, - 16357: 0x00005BEF, - 16358: 0x00005DAC, - 16359: 0x00005DB1, - 16360: 0x00005DA9, - 16361: 0x00005DA7, - 16362: 0x00005DB5, - 16363: 0x00005DB0, - 16364: 0x00005DAE, - 16365: 0x00005DAA, - 16366: 0x00005DA8, - 16367: 0x00005DB2, - 16368: 0x00005DAD, - 16369: 0x00005DAF, - 16370: 0x00005DB4, - 16371: 0x00005E67, - 16372: 0x00005E68, - 16373: 0x00005E66, - 16374: 0x00005E6F, - 16375: 0x00005EE9, - 16376: 0x00005EE7, - 16377: 0x00005EE6, - 16378: 0x00005EE8, - 16379: 0x00005EE5, - 16380: 0x00005F4B, - 16381: 0x00005FBC, - 16382: 0x0000619D, - 16383: 0x000061A8, - 16384: 0x00006196, - 16385: 0x000061C5, - 16386: 0x000061B4, - 16387: 0x000061C6, - 16388: 0x000061C1, - 16389: 0x000061CC, - 16390: 0x000061BA, - 16391: 0x000061BF, - 16392: 0x000061B8, - 16393: 0x0000618C, - 16394: 0x000064D7, - 16395: 0x000064D6, - 16396: 0x000064D0, - 16397: 0x000064CF, - 16398: 0x000064C9, - 16399: 0x000064BD, - 16400: 0x00006489, - 16401: 0x000064C3, - 16402: 0x000064DB, - 16403: 0x000064F3, - 16404: 0x000064D9, - 16405: 0x00006533, - 16406: 0x0000657F, - 16407: 0x0000657C, - 16408: 0x000065A2, - 16409: 0x000066C8, - 16410: 0x000066BE, - 16411: 0x000066C0, - 16412: 0x000066CA, - 16413: 0x000066CB, - 16414: 0x000066CF, - 16415: 0x000066BD, - 16416: 0x000066BB, - 16417: 0x000066BA, - 16418: 0x000066CC, - 16419: 0x00006723, - 16420: 0x00006A34, - 16421: 0x00006A66, - 16422: 0x00006A49, - 16423: 0x00006A67, - 16424: 0x00006A32, - 16425: 0x00006A68, - 16426: 0x00006A3E, - 16427: 0x00006A5D, - 16428: 0x00006A6D, - 16429: 0x00006A76, - 16430: 0x00006A5B, - 16431: 0x00006A51, - 16432: 0x00006A28, - 16433: 0x00006A5A, - 16434: 0x00006A3B, - 16435: 0x00006A3F, - 16436: 0x00006A41, - 16437: 0x00006A6A, - 16438: 0x00006A64, - 16439: 0x00006A50, - 16440: 0x00006A4F, - 16441: 0x00006A54, - 16442: 0x00006A6F, - 16443: 0x00006A69, - 16444: 0x00006A60, - 16445: 0x00006A3C, - 16446: 0x00006A5E, - 16447: 0x00006A56, - 16448: 0x00006A55, - 16449: 0x00006A4D, - 16450: 0x00006A4E, - 16451: 0x00006A46, - 16452: 0x00006B55, - 16453: 0x00006B54, - 16454: 0x00006B56, - 16455: 0x00006BA7, - 16456: 0x00006BAA, - 16457: 0x00006BAB, - 16458: 0x00006BC8, - 16459: 0x00006BC7, - 16460: 0x00006C04, - 16461: 0x00006C03, - 16462: 0x00006C06, - 16463: 0x00006FAD, - 16464: 0x00006FCB, - 16465: 0x00006FA3, - 16466: 0x00006FC7, - 16467: 0x00006FBC, - 16468: 0x00006FCE, - 16469: 0x00006FC8, - 16470: 0x00006F5E, - 16471: 0x00006FC4, - 16472: 0x00006FBD, - 16473: 0x00006F9E, - 16474: 0x00006FCA, - 16475: 0x00006FA8, - 16476: 0x00007004, - 16477: 0x00006FA5, - 16478: 0x00006FAE, - 16479: 0x00006FBA, - 16480: 0x00006FAC, - 16481: 0x00006FAA, - 16482: 0x00006FCF, - 16483: 0x00006FBF, - 16484: 0x00006FB8, - 16485: 0x00006FA2, - 16486: 0x00006FC9, - 16487: 0x00006FAB, - 16488: 0x00006FCD, - 16489: 0x00006FAF, - 16490: 0x00006FB2, - 16491: 0x00006FB0, - 16492: 0x000071C5, - 16493: 0x000071C2, - 16494: 0x000071BF, - 16495: 0x000071B8, - 16496: 0x000071D6, - 16497: 0x000071C0, - 16498: 0x000071C1, - 16499: 0x000071CB, - 16500: 0x000071D4, - 16501: 0x000071CA, - 16502: 0x000071C7, - 16503: 0x000071CF, - 16504: 0x000071BD, - 16505: 0x000071D8, - 16506: 0x000071BC, - 16507: 0x000071C6, - 16508: 0x000071DA, - 16509: 0x000071DB, - 16510: 0x0000729D, - 16511: 0x0000729E, - 16512: 0x00007369, - 16513: 0x00007366, - 16514: 0x00007367, - 16515: 0x0000736C, - 16516: 0x00007365, - 16517: 0x0000736B, - 16518: 0x0000736A, - 16519: 0x0000747F, - 16520: 0x0000749A, - 16521: 0x000074A0, - 16522: 0x00007494, - 16523: 0x00007492, - 16524: 0x00007495, - 16525: 0x000074A1, - 16526: 0x0000750B, - 16527: 0x00007580, - 16528: 0x0000762F, - 16529: 0x0000762D, - 16530: 0x00007631, - 16531: 0x0000763D, - 16532: 0x00007633, - 16533: 0x0000763C, - 16534: 0x00007635, - 16535: 0x00007632, - 16536: 0x00007630, - 16537: 0x000076BB, - 16538: 0x000076E6, - 16539: 0x0000779A, - 16540: 0x0000779D, - 16541: 0x000077A1, - 16542: 0x0000779C, - 16543: 0x0000779B, - 16544: 0x000077A2, - 16545: 0x000077A3, - 16546: 0x00007795, - 16547: 0x00007799, - 16548: 0x00007797, - 16549: 0x000078DD, - 16550: 0x000078E9, - 16551: 0x000078E5, - 16552: 0x000078EA, - 16553: 0x000078DE, - 16554: 0x000078E3, - 16555: 0x000078DB, - 16556: 0x000078E1, - 16557: 0x000078E2, - 16558: 0x000078ED, - 16559: 0x000078DF, - 16560: 0x000078E0, - 16561: 0x000079A4, - 16562: 0x00007A44, - 16563: 0x00007A48, - 16564: 0x00007A47, - 16565: 0x00007AB6, - 16566: 0x00007AB8, - 16567: 0x00007AB5, - 16568: 0x00007AB1, - 16569: 0x00007AB7, - 16570: 0x00007BDE, - 16571: 0x00007BE3, - 16572: 0x00007BE7, - 16573: 0x00007BDD, - 16574: 0x00007BD5, - 16575: 0x00007BE5, - 16576: 0x00007BDA, - 16577: 0x00007BE8, - 16578: 0x00007BF9, - 16579: 0x00007BD4, - 16580: 0x00007BEA, - 16581: 0x00007BE2, - 16582: 0x00007BDC, - 16583: 0x00007BEB, - 16584: 0x00007BD8, - 16585: 0x00007BDF, - 16586: 0x00007CD2, - 16587: 0x00007CD4, - 16588: 0x00007CD7, - 16589: 0x00007CD0, - 16590: 0x00007CD1, - 16591: 0x00007E12, - 16592: 0x00007E21, - 16593: 0x00007E17, - 16594: 0x00007E0C, - 16595: 0x00007E1F, - 16596: 0x00007E20, - 16597: 0x00007E13, - 16598: 0x00007E0E, - 16599: 0x00007E1C, - 16600: 0x00007E15, - 16601: 0x00007E1A, - 16602: 0x00007E22, - 16603: 0x00007E0B, - 16604: 0x00007E0F, - 16605: 0x00007E16, - 16606: 0x00007E0D, - 16607: 0x00007E14, - 16608: 0x00007E25, - 16609: 0x00007E24, - 16610: 0x00007F43, - 16611: 0x00007F7B, - 16612: 0x00007F7C, - 16613: 0x00007F7A, - 16614: 0x00007FB1, - 16615: 0x00007FEF, - 16616: 0x0000802A, - 16617: 0x00008029, - 16618: 0x0000806C, - 16619: 0x000081B1, - 16620: 0x000081A6, - 16621: 0x000081AE, - 16622: 0x000081B9, - 16623: 0x000081B5, - 16624: 0x000081AB, - 16625: 0x000081B0, - 16626: 0x000081AC, - 16627: 0x000081B4, - 16628: 0x000081B2, - 16629: 0x000081B7, - 16630: 0x000081A7, - 16631: 0x000081F2, - 16632: 0x00008255, - 16633: 0x00008256, - 16634: 0x00008257, - 16635: 0x00008556, - 16636: 0x00008545, - 16637: 0x0000856B, - 16638: 0x0000854D, - 16639: 0x00008553, - 16640: 0x00008561, - 16641: 0x00008558, - 16642: 0x00008540, - 16643: 0x00008546, - 16644: 0x00008564, - 16645: 0x00008541, - 16646: 0x00008562, - 16647: 0x00008544, - 16648: 0x00008551, - 16649: 0x00008547, - 16650: 0x00008563, - 16651: 0x0000853E, - 16652: 0x0000855B, - 16653: 0x00008571, - 16654: 0x0000854E, - 16655: 0x0000856E, - 16656: 0x00008575, - 16657: 0x00008555, - 16658: 0x00008567, - 16659: 0x00008560, - 16660: 0x0000858C, - 16661: 0x00008566, - 16662: 0x0000855D, - 16663: 0x00008554, - 16664: 0x00008565, - 16665: 0x0000856C, - 16666: 0x00008663, - 16667: 0x00008665, - 16668: 0x00008664, - 16669: 0x0000879B, - 16670: 0x0000878F, - 16671: 0x00008797, - 16672: 0x00008793, - 16673: 0x00008792, - 16674: 0x00008788, - 16675: 0x00008781, - 16676: 0x00008796, - 16677: 0x00008798, - 16678: 0x00008779, - 16679: 0x00008787, - 16680: 0x000087A3, - 16681: 0x00008785, - 16682: 0x00008790, - 16683: 0x00008791, - 16684: 0x0000879D, - 16685: 0x00008784, - 16686: 0x00008794, - 16687: 0x0000879C, - 16688: 0x0000879A, - 16689: 0x00008789, - 16690: 0x0000891E, - 16691: 0x00008926, - 16692: 0x00008930, - 16693: 0x0000892D, - 16694: 0x0000892E, - 16695: 0x00008927, - 16696: 0x00008931, - 16697: 0x00008922, - 16698: 0x00008929, - 16699: 0x00008923, - 16700: 0x0000892F, - 16701: 0x0000892C, - 16702: 0x0000891F, - 16703: 0x000089F1, - 16704: 0x00008AE0, - 16705: 0x00008AE2, - 16706: 0x00008AF2, - 16707: 0x00008AF4, - 16708: 0x00008AF5, - 16709: 0x00008ADD, - 16710: 0x00008B14, - 16711: 0x00008AE4, - 16712: 0x00008ADF, - 16713: 0x00008AF0, - 16714: 0x00008AC8, - 16715: 0x00008ADE, - 16716: 0x00008AE1, - 16717: 0x00008AE8, - 16718: 0x00008AFF, - 16719: 0x00008AEF, - 16720: 0x00008AFB, - 16721: 0x00008C91, - 16722: 0x00008C92, - 16723: 0x00008C90, - 16724: 0x00008CF5, - 16725: 0x00008CEE, - 16726: 0x00008CF1, - 16727: 0x00008CF0, - 16728: 0x00008CF3, - 16729: 0x00008D6C, - 16730: 0x00008D6E, - 16731: 0x00008DA5, - 16732: 0x00008DA7, - 16733: 0x00008E33, - 16734: 0x00008E3E, - 16735: 0x00008E38, - 16736: 0x00008E40, - 16737: 0x00008E45, - 16738: 0x00008E36, - 16739: 0x00008E3C, - 16740: 0x00008E3D, - 16741: 0x00008E41, - 16742: 0x00008E30, - 16743: 0x00008E3F, - 16744: 0x00008EBD, - 16745: 0x00008F36, - 16746: 0x00008F2E, - 16747: 0x00008F35, - 16748: 0x00008F32, - 16749: 0x00008F39, - 16750: 0x00008F37, - 16751: 0x00008F34, - 16752: 0x00009076, - 16753: 0x00009079, - 16754: 0x0000907B, - 16755: 0x00009086, - 16756: 0x000090FA, - 16757: 0x00009133, - 16758: 0x00009135, - 16759: 0x00009136, - 16760: 0x00009193, - 16761: 0x00009190, - 16762: 0x00009191, - 16763: 0x0000918D, - 16764: 0x0000918F, - 16765: 0x00009327, - 16766: 0x0000931E, - 16767: 0x00009308, - 16768: 0x0000931F, - 16769: 0x00009306, - 16770: 0x0000930F, - 16771: 0x0000937A, - 16772: 0x00009338, - 16773: 0x0000933C, - 16774: 0x0000931B, - 16775: 0x00009323, - 16776: 0x00009312, - 16777: 0x00009301, - 16778: 0x00009346, - 16779: 0x0000932D, - 16780: 0x0000930E, - 16781: 0x0000930D, - 16782: 0x000092CB, - 16783: 0x0000931D, - 16784: 0x000092FA, - 16785: 0x00009325, - 16786: 0x00009313, - 16787: 0x000092F9, - 16788: 0x000092F7, - 16789: 0x00009334, - 16790: 0x00009302, - 16791: 0x00009324, - 16792: 0x000092FF, - 16793: 0x00009329, - 16794: 0x00009339, - 16795: 0x00009335, - 16796: 0x0000932A, - 16797: 0x00009314, - 16798: 0x0000930C, - 16799: 0x0000930B, - 16800: 0x000092FE, - 16801: 0x00009309, - 16802: 0x00009300, - 16803: 0x000092FB, - 16804: 0x00009316, - 16805: 0x000095BC, - 16806: 0x000095CD, - 16807: 0x000095BE, - 16808: 0x000095B9, - 16809: 0x000095BA, - 16810: 0x000095B6, - 16811: 0x000095BF, - 16812: 0x000095B5, - 16813: 0x000095BD, - 16814: 0x000096A9, - 16815: 0x000096D4, - 16816: 0x0000970B, - 16817: 0x00009712, - 16818: 0x00009710, - 16819: 0x00009799, - 16820: 0x00009797, - 16821: 0x00009794, - 16822: 0x000097F0, - 16823: 0x000097F8, - 16824: 0x00009835, - 16825: 0x0000982F, - 16826: 0x00009832, - 16827: 0x00009924, - 16828: 0x0000991F, - 16829: 0x00009927, - 16830: 0x00009929, - 16831: 0x0000999E, - 16832: 0x000099EE, - 16833: 0x000099EC, - 16834: 0x000099E5, - 16835: 0x000099E4, - 16836: 0x000099F0, - 16837: 0x000099E3, - 16838: 0x000099EA, - 16839: 0x000099E9, - 16840: 0x000099E7, - 16841: 0x00009AB9, - 16842: 0x00009ABF, - 16843: 0x00009AB4, - 16844: 0x00009ABB, - 16845: 0x00009AF6, - 16846: 0x00009AFA, - 16847: 0x00009AF9, - 16848: 0x00009AF7, - 16849: 0x00009B33, - 16850: 0x00009B80, - 16851: 0x00009B85, - 16852: 0x00009B87, - 16853: 0x00009B7C, - 16854: 0x00009B7E, - 16855: 0x00009B7B, - 16856: 0x00009B82, - 16857: 0x00009B93, - 16858: 0x00009B92, - 16859: 0x00009B90, - 16860: 0x00009B7A, - 16861: 0x00009B95, - 16862: 0x00009B7D, - 16863: 0x00009B88, - 16864: 0x00009D25, - 16865: 0x00009D17, - 16866: 0x00009D20, - 16867: 0x00009D1E, - 16868: 0x00009D14, - 16869: 0x00009D29, - 16870: 0x00009D1D, - 16871: 0x00009D18, - 16872: 0x00009D22, - 16873: 0x00009D10, - 16874: 0x00009D19, - 16875: 0x00009D1F, - 16876: 0x00009E88, - 16877: 0x00009E86, - 16878: 0x00009E87, - 16879: 0x00009EAE, - 16880: 0x00009EAD, - 16881: 0x00009ED5, - 16882: 0x00009ED6, - 16883: 0x00009EFA, - 16884: 0x00009F12, - 16885: 0x00009F3D, - 16886: 0x00005126, - 16887: 0x00005125, - 16888: 0x00005122, - 16889: 0x00005124, - 16890: 0x00005120, - 16891: 0x00005129, - 16892: 0x000052F4, - 16893: 0x00005693, - 16894: 0x0000568C, - 16895: 0x0000568D, - 16896: 0x00005686, - 16897: 0x00005684, - 16898: 0x00005683, - 16899: 0x0000567E, - 16900: 0x00005682, - 16901: 0x0000567F, - 16902: 0x00005681, - 16903: 0x000058D6, - 16904: 0x000058D4, - 16905: 0x000058CF, - 16906: 0x000058D2, - 16907: 0x00005B2D, - 16908: 0x00005B25, - 16909: 0x00005B32, - 16910: 0x00005B23, - 16911: 0x00005B2C, - 16912: 0x00005B27, - 16913: 0x00005B26, - 16914: 0x00005B2F, - 16915: 0x00005B2E, - 16916: 0x00005B7B, - 16917: 0x00005BF1, - 16918: 0x00005BF2, - 16919: 0x00005DB7, - 16920: 0x00005E6C, - 16921: 0x00005E6A, - 16922: 0x00005FBE, - 16923: 0x00005FBB, - 16924: 0x000061C3, - 16925: 0x000061B5, - 16926: 0x000061BC, - 16927: 0x000061E7, - 16928: 0x000061E0, - 16929: 0x000061E5, - 16930: 0x000061E4, - 16931: 0x000061E8, - 16932: 0x000061DE, - 16933: 0x000064EF, - 16934: 0x000064E9, - 16935: 0x000064E3, - 16936: 0x000064EB, - 16937: 0x000064E4, - 16938: 0x000064E8, - 16939: 0x00006581, - 16940: 0x00006580, - 16941: 0x000065B6, - 16942: 0x000065DA, - 16943: 0x000066D2, - 16944: 0x00006A8D, - 16945: 0x00006A96, - 16946: 0x00006A81, - 16947: 0x00006AA5, - 16948: 0x00006A89, - 16949: 0x00006A9F, - 16950: 0x00006A9B, - 16951: 0x00006AA1, - 16952: 0x00006A9E, - 16953: 0x00006A87, - 16954: 0x00006A93, - 16955: 0x00006A8E, - 16956: 0x00006A95, - 16957: 0x00006A83, - 16958: 0x00006AA8, - 16959: 0x00006AA4, - 16960: 0x00006A91, - 16961: 0x00006A7F, - 16962: 0x00006AA6, - 16963: 0x00006A9A, - 16964: 0x00006A85, - 16965: 0x00006A8C, - 16966: 0x00006A92, - 16967: 0x00006B5B, - 16968: 0x00006BAD, - 16969: 0x00006C09, - 16970: 0x00006FCC, - 16971: 0x00006FA9, - 16972: 0x00006FF4, - 16973: 0x00006FD4, - 16974: 0x00006FE3, - 16975: 0x00006FDC, - 16976: 0x00006FED, - 16977: 0x00006FE7, - 16978: 0x00006FE6, - 16979: 0x00006FDE, - 16980: 0x00006FF2, - 16981: 0x00006FDD, - 16982: 0x00006FE2, - 16983: 0x00006FE8, - 16984: 0x000071E1, - 16985: 0x000071F1, - 16986: 0x000071E8, - 16987: 0x000071F2, - 16988: 0x000071E4, - 16989: 0x000071F0, - 16990: 0x000071E2, - 16991: 0x00007373, - 16992: 0x0000736E, - 16993: 0x0000736F, - 16994: 0x00007497, - 16995: 0x000074B2, - 16996: 0x000074AB, - 16997: 0x00007490, - 16998: 0x000074AA, - 16999: 0x000074AD, - 17000: 0x000074B1, - 17001: 0x000074A5, - 17002: 0x000074AF, - 17003: 0x00007510, - 17004: 0x00007511, - 17005: 0x00007512, - 17006: 0x0000750F, - 17007: 0x00007584, - 17008: 0x00007643, - 17009: 0x00007648, - 17010: 0x00007649, - 17011: 0x00007647, - 17012: 0x000076A4, - 17013: 0x000076E9, - 17014: 0x000077B5, - 17015: 0x000077AB, - 17016: 0x000077B2, - 17017: 0x000077B7, - 17018: 0x000077B6, - 17019: 0x000077B4, - 17020: 0x000077B1, - 17021: 0x000077A8, - 17022: 0x000077F0, - 17023: 0x000078F3, - 17024: 0x000078FD, - 17025: 0x00007902, - 17026: 0x000078FB, - 17027: 0x000078FC, - 17028: 0x000078F2, - 17029: 0x00007905, - 17030: 0x000078F9, - 17031: 0x000078FE, - 17032: 0x00007904, - 17033: 0x000079AB, - 17034: 0x000079A8, - 17035: 0x00007A5C, - 17036: 0x00007A5B, - 17037: 0x00007A56, - 17038: 0x00007A58, - 17039: 0x00007A54, - 17040: 0x00007A5A, - 17041: 0x00007ABE, - 17042: 0x00007AC0, - 17043: 0x00007AC1, - 17044: 0x00007C05, - 17045: 0x00007C0F, - 17046: 0x00007BF2, - 17047: 0x00007C00, - 17048: 0x00007BFF, - 17049: 0x00007BFB, - 17050: 0x00007C0E, - 17051: 0x00007BF4, - 17052: 0x00007C0B, - 17053: 0x00007BF3, - 17054: 0x00007C02, - 17055: 0x00007C09, - 17056: 0x00007C03, - 17057: 0x00007C01, - 17058: 0x00007BF8, - 17059: 0x00007BFD, - 17060: 0x00007C06, - 17061: 0x00007BF0, - 17062: 0x00007BF1, - 17063: 0x00007C10, - 17064: 0x00007C0A, - 17065: 0x00007CE8, - 17066: 0x00007E2D, - 17067: 0x00007E3C, - 17068: 0x00007E42, - 17069: 0x00007E33, - 17070: 0x00009848, - 17071: 0x00007E38, - 17072: 0x00007E2A, - 17073: 0x00007E49, - 17074: 0x00007E40, - 17075: 0x00007E47, - 17076: 0x00007E29, - 17077: 0x00007E4C, - 17078: 0x00007E30, - 17079: 0x00007E3B, - 17080: 0x00007E36, - 17081: 0x00007E44, - 17082: 0x00007E3A, - 17083: 0x00007F45, - 17084: 0x00007F7F, - 17085: 0x00007F7E, - 17086: 0x00007F7D, - 17087: 0x00007FF4, - 17088: 0x00007FF2, - 17089: 0x0000802C, - 17090: 0x000081BB, - 17091: 0x000081C4, - 17092: 0x000081CC, - 17093: 0x000081CA, - 17094: 0x000081C5, - 17095: 0x000081C7, - 17096: 0x000081BC, - 17097: 0x000081E9, - 17098: 0x0000825B, - 17099: 0x0000825A, - 17100: 0x0000825C, - 17101: 0x00008583, - 17102: 0x00008580, - 17103: 0x0000858F, - 17104: 0x000085A7, - 17105: 0x00008595, - 17106: 0x000085A0, - 17107: 0x0000858B, - 17108: 0x000085A3, - 17109: 0x0000857B, - 17110: 0x000085A4, - 17111: 0x0000859A, - 17112: 0x0000859E, - 17113: 0x00008577, - 17114: 0x0000857C, - 17115: 0x00008589, - 17116: 0x000085A1, - 17117: 0x0000857A, - 17118: 0x00008578, - 17119: 0x00008557, - 17120: 0x0000858E, - 17121: 0x00008596, - 17122: 0x00008586, - 17123: 0x0000858D, - 17124: 0x00008599, - 17125: 0x0000859D, - 17126: 0x00008581, - 17127: 0x000085A2, - 17128: 0x00008582, - 17129: 0x00008588, - 17130: 0x00008585, - 17131: 0x00008579, - 17132: 0x00008576, - 17133: 0x00008598, - 17134: 0x00008590, - 17135: 0x0000859F, - 17136: 0x00008668, - 17137: 0x000087BE, - 17138: 0x000087AA, - 17139: 0x000087AD, - 17140: 0x000087C5, - 17141: 0x000087B0, - 17142: 0x000087AC, - 17143: 0x000087B9, - 17144: 0x000087B5, - 17145: 0x000087BC, - 17146: 0x000087AE, - 17147: 0x000087C9, - 17148: 0x000087C3, - 17149: 0x000087C2, - 17150: 0x000087CC, - 17151: 0x000087B7, - 17152: 0x000087AF, - 17153: 0x000087C4, - 17154: 0x000087CA, - 17155: 0x000087B4, - 17156: 0x000087B6, - 17157: 0x000087BF, - 17158: 0x000087B8, - 17159: 0x000087BD, - 17160: 0x000087DE, - 17161: 0x000087B2, - 17162: 0x00008935, - 17163: 0x00008933, - 17164: 0x0000893C, - 17165: 0x0000893E, - 17166: 0x00008941, - 17167: 0x00008952, - 17168: 0x00008937, - 17169: 0x00008942, - 17170: 0x000089AD, - 17171: 0x000089AF, - 17172: 0x000089AE, - 17173: 0x000089F2, - 17174: 0x000089F3, - 17175: 0x00008B1E, - 17176: 0x00008B18, - 17177: 0x00008B16, - 17178: 0x00008B11, - 17179: 0x00008B05, - 17180: 0x00008B0B, - 17181: 0x00008B22, - 17182: 0x00008B0F, - 17183: 0x00008B12, - 17184: 0x00008B15, - 17185: 0x00008B07, - 17186: 0x00008B0D, - 17187: 0x00008B08, - 17188: 0x00008B06, - 17189: 0x00008B1C, - 17190: 0x00008B13, - 17191: 0x00008B1A, - 17192: 0x00008C4F, - 17193: 0x00008C70, - 17194: 0x00008C72, - 17195: 0x00008C71, - 17196: 0x00008C6F, - 17197: 0x00008C95, - 17198: 0x00008C94, - 17199: 0x00008CF9, - 17200: 0x00008D6F, - 17201: 0x00008E4E, - 17202: 0x00008E4D, - 17203: 0x00008E53, - 17204: 0x00008E50, - 17205: 0x00008E4C, - 17206: 0x00008E47, - 17207: 0x00008F43, - 17208: 0x00008F40, - 17209: 0x00009085, - 17210: 0x0000907E, - 17211: 0x00009138, - 17212: 0x0000919A, - 17213: 0x000091A2, - 17214: 0x0000919B, - 17215: 0x00009199, - 17216: 0x0000919F, - 17217: 0x000091A1, - 17218: 0x0000919D, - 17219: 0x000091A0, - 17220: 0x000093A1, - 17221: 0x00009383, - 17222: 0x000093AF, - 17223: 0x00009364, - 17224: 0x00009356, - 17225: 0x00009347, - 17226: 0x0000937C, - 17227: 0x00009358, - 17228: 0x0000935C, - 17229: 0x00009376, - 17230: 0x00009349, - 17231: 0x00009350, - 17232: 0x00009351, - 17233: 0x00009360, - 17234: 0x0000936D, - 17235: 0x0000938F, - 17236: 0x0000934C, - 17237: 0x0000936A, - 17238: 0x00009379, - 17239: 0x00009357, - 17240: 0x00009355, - 17241: 0x00009352, - 17242: 0x0000934F, - 17243: 0x00009371, - 17244: 0x00009377, - 17245: 0x0000937B, - 17246: 0x00009361, - 17247: 0x0000935E, - 17248: 0x00009363, - 17249: 0x00009367, - 17250: 0x00009380, - 17251: 0x0000934E, - 17252: 0x00009359, - 17253: 0x000095C7, - 17254: 0x000095C0, - 17255: 0x000095C9, - 17256: 0x000095C3, - 17257: 0x000095C5, - 17258: 0x000095B7, - 17259: 0x000096AE, - 17260: 0x000096B0, - 17261: 0x000096AC, - 17262: 0x00009720, - 17263: 0x0000971F, - 17264: 0x00009718, - 17265: 0x0000971D, - 17266: 0x00009719, - 17267: 0x0000979A, - 17268: 0x000097A1, - 17269: 0x0000979C, - 17270: 0x0000979E, - 17271: 0x0000979D, - 17272: 0x000097D5, - 17273: 0x000097D4, - 17274: 0x000097F1, - 17275: 0x00009841, - 17276: 0x00009844, - 17277: 0x0000984A, - 17278: 0x00009849, - 17279: 0x00009845, - 17280: 0x00009843, - 17281: 0x00009925, - 17282: 0x0000992B, - 17283: 0x0000992C, - 17284: 0x0000992A, - 17285: 0x00009933, - 17286: 0x00009932, - 17287: 0x0000992F, - 17288: 0x0000992D, - 17289: 0x00009931, - 17290: 0x00009930, - 17291: 0x00009998, - 17292: 0x000099A3, - 17293: 0x000099A1, - 17294: 0x00009A02, - 17295: 0x000099FA, - 17296: 0x000099F4, - 17297: 0x000099F7, - 17298: 0x000099F9, - 17299: 0x000099F8, - 17300: 0x000099F6, - 17301: 0x000099FB, - 17302: 0x000099FD, - 17303: 0x000099FE, - 17304: 0x000099FC, - 17305: 0x00009A03, - 17306: 0x00009ABE, - 17307: 0x00009AFE, - 17308: 0x00009AFD, - 17309: 0x00009B01, - 17310: 0x00009AFC, - 17311: 0x00009B48, - 17312: 0x00009B9A, - 17313: 0x00009BA8, - 17314: 0x00009B9E, - 17315: 0x00009B9B, - 17316: 0x00009BA6, - 17317: 0x00009BA1, - 17318: 0x00009BA5, - 17319: 0x00009BA4, - 17320: 0x00009B86, - 17321: 0x00009BA2, - 17322: 0x00009BA0, - 17323: 0x00009BAF, - 17324: 0x00009D33, - 17325: 0x00009D41, - 17326: 0x00009D67, - 17327: 0x00009D36, - 17328: 0x00009D2E, - 17329: 0x00009D2F, - 17330: 0x00009D31, - 17331: 0x00009D38, - 17332: 0x00009D30, - 17333: 0x00009D45, - 17334: 0x00009D42, - 17335: 0x00009D43, - 17336: 0x00009D3E, - 17337: 0x00009D37, - 17338: 0x00009D40, - 17339: 0x00009D3D, - 17340: 0x00007FF5, - 17341: 0x00009D2D, - 17342: 0x00009E8A, - 17343: 0x00009E89, - 17344: 0x00009E8D, - 17345: 0x00009EB0, - 17346: 0x00009EC8, - 17347: 0x00009EDA, - 17348: 0x00009EFB, - 17349: 0x00009EFF, - 17350: 0x00009F24, - 17351: 0x00009F23, - 17352: 0x00009F22, - 17353: 0x00009F54, - 17354: 0x00009FA0, - 17355: 0x00005131, - 17356: 0x0000512D, - 17357: 0x0000512E, - 17358: 0x00005698, - 17359: 0x0000569C, - 17360: 0x00005697, - 17361: 0x0000569A, - 17362: 0x0000569D, - 17363: 0x00005699, - 17364: 0x00005970, - 17365: 0x00005B3C, - 17366: 0x00005C69, - 17367: 0x00005C6A, - 17368: 0x00005DC0, - 17369: 0x00005E6D, - 17370: 0x00005E6E, - 17371: 0x000061D8, - 17372: 0x000061DF, - 17373: 0x000061ED, - 17374: 0x000061EE, - 17375: 0x000061F1, - 17376: 0x000061EA, - 17377: 0x000061F0, - 17378: 0x000061EB, - 17379: 0x000061D6, - 17380: 0x000061E9, - 17381: 0x000064FF, - 17382: 0x00006504, - 17383: 0x000064FD, - 17384: 0x000064F8, - 17385: 0x00006501, - 17386: 0x00006503, - 17387: 0x000064FC, - 17388: 0x00006594, - 17389: 0x000065DB, - 17390: 0x000066DA, - 17391: 0x000066DB, - 17392: 0x000066D8, - 17393: 0x00006AC5, - 17394: 0x00006AB9, - 17395: 0x00006ABD, - 17396: 0x00006AE1, - 17397: 0x00006AC6, - 17398: 0x00006ABA, - 17399: 0x00006AB6, - 17400: 0x00006AB7, - 17401: 0x00006AC7, - 17402: 0x00006AB4, - 17403: 0x00006AAD, - 17404: 0x00006B5E, - 17405: 0x00006BC9, - 17406: 0x00006C0B, - 17407: 0x00007007, - 17408: 0x0000700C, - 17409: 0x0000700D, - 17410: 0x00007001, - 17411: 0x00007005, - 17412: 0x00007014, - 17413: 0x0000700E, - 17414: 0x00006FFF, - 17415: 0x00007000, - 17416: 0x00006FFB, - 17417: 0x00007026, - 17418: 0x00006FFC, - 17419: 0x00006FF7, - 17420: 0x0000700A, - 17421: 0x00007201, - 17422: 0x000071FF, - 17423: 0x000071F9, - 17424: 0x00007203, - 17425: 0x000071FD, - 17426: 0x00007376, - 17427: 0x000074B8, - 17428: 0x000074C0, - 17429: 0x000074B5, - 17430: 0x000074C1, - 17431: 0x000074BE, - 17432: 0x000074B6, - 17433: 0x000074BB, - 17434: 0x000074C2, - 17435: 0x00007514, - 17436: 0x00007513, - 17437: 0x0000765C, - 17438: 0x00007664, - 17439: 0x00007659, - 17440: 0x00007650, - 17441: 0x00007653, - 17442: 0x00007657, - 17443: 0x0000765A, - 17444: 0x000076A6, - 17445: 0x000076BD, - 17446: 0x000076EC, - 17447: 0x000077C2, - 17448: 0x000077BA, - 17449: 0x000078FF, - 17450: 0x0000790C, - 17451: 0x00007913, - 17452: 0x00007914, - 17453: 0x00007909, - 17454: 0x00007910, - 17455: 0x00007912, - 17456: 0x00007911, - 17457: 0x000079AD, - 17458: 0x000079AC, - 17459: 0x00007A5F, - 17460: 0x00007C1C, - 17461: 0x00007C29, - 17462: 0x00007C19, - 17463: 0x00007C20, - 17464: 0x00007C1F, - 17465: 0x00007C2D, - 17466: 0x00007C1D, - 17467: 0x00007C26, - 17468: 0x00007C28, - 17469: 0x00007C22, - 17470: 0x00007C25, - 17471: 0x00007C30, - 17472: 0x00007E5C, - 17473: 0x00007E50, - 17474: 0x00007E56, - 17475: 0x00007E63, - 17476: 0x00007E58, - 17477: 0x00007E62, - 17478: 0x00007E5F, - 17479: 0x00007E51, - 17480: 0x00007E60, - 17481: 0x00007E57, - 17482: 0x00007E53, - 17483: 0x00007FB5, - 17484: 0x00007FB3, - 17485: 0x00007FF7, - 17486: 0x00007FF8, - 17487: 0x00008075, - 17488: 0x000081D1, - 17489: 0x000081D2, - 17490: 0x000081D0, - 17491: 0x0000825F, - 17492: 0x0000825E, - 17493: 0x000085B4, - 17494: 0x000085C6, - 17495: 0x000085C0, - 17496: 0x000085C3, - 17497: 0x000085C2, - 17498: 0x000085B3, - 17499: 0x000085B5, - 17500: 0x000085BD, - 17501: 0x000085C7, - 17502: 0x000085C4, - 17503: 0x000085BF, - 17504: 0x000085CB, - 17505: 0x000085CE, - 17506: 0x000085C8, - 17507: 0x000085C5, - 17508: 0x000085B1, - 17509: 0x000085B6, - 17510: 0x000085D2, - 17511: 0x00008624, - 17512: 0x000085B8, - 17513: 0x000085B7, - 17514: 0x000085BE, - 17515: 0x00008669, - 17516: 0x000087E7, - 17517: 0x000087E6, - 17518: 0x000087E2, - 17519: 0x000087DB, - 17520: 0x000087EB, - 17521: 0x000087EA, - 17522: 0x000087E5, - 17523: 0x000087DF, - 17524: 0x000087F3, - 17525: 0x000087E4, - 17526: 0x000087D4, - 17527: 0x000087DC, - 17528: 0x000087D3, - 17529: 0x000087ED, - 17530: 0x000087D8, - 17531: 0x000087E3, - 17532: 0x000087A4, - 17533: 0x000087D7, - 17534: 0x000087D9, - 17535: 0x00008801, - 17536: 0x000087F4, - 17537: 0x000087E8, - 17538: 0x000087DD, - 17539: 0x00008953, - 17540: 0x0000894B, - 17541: 0x0000894F, - 17542: 0x0000894C, - 17543: 0x00008946, - 17544: 0x00008950, - 17545: 0x00008951, - 17546: 0x00008949, - 17547: 0x00008B2A, - 17548: 0x00008B27, - 17549: 0x00008B23, - 17550: 0x00008B33, - 17551: 0x00008B30, - 17552: 0x00008B35, - 17553: 0x00008B47, - 17554: 0x00008B2F, - 17555: 0x00008B3C, - 17556: 0x00008B3E, - 17557: 0x00008B31, - 17558: 0x00008B25, - 17559: 0x00008B37, - 17560: 0x00008B26, - 17561: 0x00008B36, - 17562: 0x00008B2E, - 17563: 0x00008B24, - 17564: 0x00008B3B, - 17565: 0x00008B3D, - 17566: 0x00008B3A, - 17567: 0x00008C42, - 17568: 0x00008C75, - 17569: 0x00008C99, - 17570: 0x00008C98, - 17571: 0x00008C97, - 17572: 0x00008CFE, - 17573: 0x00008D04, - 17574: 0x00008D02, - 17575: 0x00008D00, - 17576: 0x00008E5C, - 17577: 0x00008E62, - 17578: 0x00008E60, - 17579: 0x00008E57, - 17580: 0x00008E56, - 17581: 0x00008E5E, - 17582: 0x00008E65, - 17583: 0x00008E67, - 17584: 0x00008E5B, - 17585: 0x00008E5A, - 17586: 0x00008E61, - 17587: 0x00008E5D, - 17588: 0x00008E69, - 17589: 0x00008E54, - 17590: 0x00008F46, - 17591: 0x00008F47, - 17592: 0x00008F48, - 17593: 0x00008F4B, - 17594: 0x00009128, - 17595: 0x0000913A, - 17596: 0x0000913B, - 17597: 0x0000913E, - 17598: 0x000091A8, - 17599: 0x000091A5, - 17600: 0x000091A7, - 17601: 0x000091AF, - 17602: 0x000091AA, - 17603: 0x000093B5, - 17604: 0x0000938C, - 17605: 0x00009392, - 17606: 0x000093B7, - 17607: 0x0000939B, - 17608: 0x0000939D, - 17609: 0x00009389, - 17610: 0x000093A7, - 17611: 0x0000938E, - 17612: 0x000093AA, - 17613: 0x0000939E, - 17614: 0x000093A6, - 17615: 0x00009395, - 17616: 0x00009388, - 17617: 0x00009399, - 17618: 0x0000939F, - 17619: 0x0000938D, - 17620: 0x000093B1, - 17621: 0x00009391, - 17622: 0x000093B2, - 17623: 0x000093A4, - 17624: 0x000093A8, - 17625: 0x000093B4, - 17626: 0x000093A3, - 17627: 0x000093A5, - 17628: 0x000095D2, - 17629: 0x000095D3, - 17630: 0x000095D1, - 17631: 0x000096B3, - 17632: 0x000096D7, - 17633: 0x000096DA, - 17634: 0x00005DC2, - 17635: 0x000096DF, - 17636: 0x000096D8, - 17637: 0x000096DD, - 17638: 0x00009723, - 17639: 0x00009722, - 17640: 0x00009725, - 17641: 0x000097AC, - 17642: 0x000097AE, - 17643: 0x000097A8, - 17644: 0x000097AB, - 17645: 0x000097A4, - 17646: 0x000097AA, - 17647: 0x000097A2, - 17648: 0x000097A5, - 17649: 0x000097D7, - 17650: 0x000097D9, - 17651: 0x000097D6, - 17652: 0x000097D8, - 17653: 0x000097FA, - 17654: 0x00009850, - 17655: 0x00009851, - 17656: 0x00009852, - 17657: 0x000098B8, - 17658: 0x00009941, - 17659: 0x0000993C, - 17660: 0x0000993A, - 17661: 0x00009A0F, - 17662: 0x00009A0B, - 17663: 0x00009A09, - 17664: 0x00009A0D, - 17665: 0x00009A04, - 17666: 0x00009A11, - 17667: 0x00009A0A, - 17668: 0x00009A05, - 17669: 0x00009A07, - 17670: 0x00009A06, - 17671: 0x00009AC0, - 17672: 0x00009ADC, - 17673: 0x00009B08, - 17674: 0x00009B04, - 17675: 0x00009B05, - 17676: 0x00009B29, - 17677: 0x00009B35, - 17678: 0x00009B4A, - 17679: 0x00009B4C, - 17680: 0x00009B4B, - 17681: 0x00009BC7, - 17682: 0x00009BC6, - 17683: 0x00009BC3, - 17684: 0x00009BBF, - 17685: 0x00009BC1, - 17686: 0x00009BB5, - 17687: 0x00009BB8, - 17688: 0x00009BD3, - 17689: 0x00009BB6, - 17690: 0x00009BC4, - 17691: 0x00009BB9, - 17692: 0x00009BBD, - 17693: 0x00009D5C, - 17694: 0x00009D53, - 17695: 0x00009D4F, - 17696: 0x00009D4A, - 17697: 0x00009D5B, - 17698: 0x00009D4B, - 17699: 0x00009D59, - 17700: 0x00009D56, - 17701: 0x00009D4C, - 17702: 0x00009D57, - 17703: 0x00009D52, - 17704: 0x00009D54, - 17705: 0x00009D5F, - 17706: 0x00009D58, - 17707: 0x00009D5A, - 17708: 0x00009E8E, - 17709: 0x00009E8C, - 17710: 0x00009EDF, - 17711: 0x00009F01, - 17712: 0x00009F00, - 17713: 0x00009F16, - 17714: 0x00009F25, - 17715: 0x00009F2B, - 17716: 0x00009F2A, - 17717: 0x00009F29, - 17718: 0x00009F28, - 17719: 0x00009F4C, - 17720: 0x00009F55, - 17721: 0x00005134, - 17722: 0x00005135, - 17723: 0x00005296, - 17724: 0x000052F7, - 17725: 0x000053B4, - 17726: 0x000056AB, - 17727: 0x000056AD, - 17728: 0x000056A6, - 17729: 0x000056A7, - 17730: 0x000056AA, - 17731: 0x000056AC, - 17732: 0x000058DA, - 17733: 0x000058DD, - 17734: 0x000058DB, - 17735: 0x00005912, - 17736: 0x00005B3D, - 17737: 0x00005B3E, - 17738: 0x00005B3F, - 17739: 0x00005DC3, - 17740: 0x00005E70, - 17741: 0x00005FBF, - 17742: 0x000061FB, - 17743: 0x00006507, - 17744: 0x00006510, - 17745: 0x0000650D, - 17746: 0x00006509, - 17747: 0x0000650C, - 17748: 0x0000650E, - 17749: 0x00006584, - 17750: 0x000065DE, - 17751: 0x000065DD, - 17752: 0x000066DE, - 17753: 0x00006AE7, - 17754: 0x00006AE0, - 17755: 0x00006ACC, - 17756: 0x00006AD1, - 17757: 0x00006AD9, - 17758: 0x00006ACB, - 17759: 0x00006ADF, - 17760: 0x00006ADC, - 17761: 0x00006AD0, - 17762: 0x00006AEB, - 17763: 0x00006ACF, - 17764: 0x00006ACD, - 17765: 0x00006ADE, - 17766: 0x00006B60, - 17767: 0x00006BB0, - 17768: 0x00006C0C, - 17769: 0x00007019, - 17770: 0x00007027, - 17771: 0x00007020, - 17772: 0x00007016, - 17773: 0x0000702B, - 17774: 0x00007021, - 17775: 0x00007022, - 17776: 0x00007023, - 17777: 0x00007029, - 17778: 0x00007017, - 17779: 0x00007024, - 17780: 0x0000701C, - 17781: 0x0000702A, - 17782: 0x0000720C, - 17783: 0x0000720A, - 17784: 0x00007207, - 17785: 0x00007202, - 17786: 0x00007205, - 17787: 0x000072A5, - 17788: 0x000072A6, - 17789: 0x000072A4, - 17790: 0x000072A3, - 17791: 0x000072A1, - 17792: 0x000074CB, - 17793: 0x000074C5, - 17794: 0x000074B7, - 17795: 0x000074C3, - 17796: 0x00007516, - 17797: 0x00007660, - 17798: 0x000077C9, - 17799: 0x000077CA, - 17800: 0x000077C4, - 17801: 0x000077F1, - 17802: 0x0000791D, - 17803: 0x0000791B, - 17804: 0x00007921, - 17805: 0x0000791C, - 17806: 0x00007917, - 17807: 0x0000791E, - 17808: 0x000079B0, - 17809: 0x00007A67, - 17810: 0x00007A68, - 17811: 0x00007C33, - 17812: 0x00007C3C, - 17813: 0x00007C39, - 17814: 0x00007C2C, - 17815: 0x00007C3B, - 17816: 0x00007CEC, - 17817: 0x00007CEA, - 17818: 0x00007E76, - 17819: 0x00007E75, - 17820: 0x00007E78, - 17821: 0x00007E70, - 17822: 0x00007E77, - 17823: 0x00007E6F, - 17824: 0x00007E7A, - 17825: 0x00007E72, - 17826: 0x00007E74, - 17827: 0x00007E68, - 17828: 0x00007F4B, - 17829: 0x00007F4A, - 17830: 0x00007F83, - 17831: 0x00007F86, - 17832: 0x00007FB7, - 17833: 0x00007FFD, - 17834: 0x00007FFE, - 17835: 0x00008078, - 17836: 0x000081D7, - 17837: 0x000081D5, - 17838: 0x00008264, - 17839: 0x00008261, - 17840: 0x00008263, - 17841: 0x000085EB, - 17842: 0x000085F1, - 17843: 0x000085ED, - 17844: 0x000085D9, - 17845: 0x000085E1, - 17846: 0x000085E8, - 17847: 0x000085DA, - 17848: 0x000085D7, - 17849: 0x000085EC, - 17850: 0x000085F2, - 17851: 0x000085F8, - 17852: 0x000085D8, - 17853: 0x000085DF, - 17854: 0x000085E3, - 17855: 0x000085DC, - 17856: 0x000085D1, - 17857: 0x000085F0, - 17858: 0x000085E6, - 17859: 0x000085EF, - 17860: 0x000085DE, - 17861: 0x000085E2, - 17862: 0x00008800, - 17863: 0x000087FA, - 17864: 0x00008803, - 17865: 0x000087F6, - 17866: 0x000087F7, - 17867: 0x00008809, - 17868: 0x0000880C, - 17869: 0x0000880B, - 17870: 0x00008806, - 17871: 0x000087FC, - 17872: 0x00008808, - 17873: 0x000087FF, - 17874: 0x0000880A, - 17875: 0x00008802, - 17876: 0x00008962, - 17877: 0x0000895A, - 17878: 0x0000895B, - 17879: 0x00008957, - 17880: 0x00008961, - 17881: 0x0000895C, - 17882: 0x00008958, - 17883: 0x0000895D, - 17884: 0x00008959, - 17885: 0x00008988, - 17886: 0x000089B7, - 17887: 0x000089B6, - 17888: 0x000089F6, - 17889: 0x00008B50, - 17890: 0x00008B48, - 17891: 0x00008B4A, - 17892: 0x00008B40, - 17893: 0x00008B53, - 17894: 0x00008B56, - 17895: 0x00008B54, - 17896: 0x00008B4B, - 17897: 0x00008B55, - 17898: 0x00008B51, - 17899: 0x00008B42, - 17900: 0x00008B52, - 17901: 0x00008B57, - 17902: 0x00008C43, - 17903: 0x00008C77, - 17904: 0x00008C76, - 17905: 0x00008C9A, - 17906: 0x00008D06, - 17907: 0x00008D07, - 17908: 0x00008D09, - 17909: 0x00008DAC, - 17910: 0x00008DAA, - 17911: 0x00008DAD, - 17912: 0x00008DAB, - 17913: 0x00008E6D, - 17914: 0x00008E78, - 17915: 0x00008E73, - 17916: 0x00008E6A, - 17917: 0x00008E6F, - 17918: 0x00008E7B, - 17919: 0x00008EC2, - 17920: 0x00008F52, - 17921: 0x00008F51, - 17922: 0x00008F4F, - 17923: 0x00008F50, - 17924: 0x00008F53, - 17925: 0x00008FB4, - 17926: 0x00009140, - 17927: 0x0000913F, - 17928: 0x000091B0, - 17929: 0x000091AD, - 17930: 0x000093DE, - 17931: 0x000093C7, - 17932: 0x000093CF, - 17933: 0x000093C2, - 17934: 0x000093DA, - 17935: 0x000093D0, - 17936: 0x000093F9, - 17937: 0x000093EC, - 17938: 0x000093CC, - 17939: 0x000093D9, - 17940: 0x000093A9, - 17941: 0x000093E6, - 17942: 0x000093CA, - 17943: 0x000093D4, - 17944: 0x000093EE, - 17945: 0x000093E3, - 17946: 0x000093D5, - 17947: 0x000093C4, - 17948: 0x000093CE, - 17949: 0x000093C0, - 17950: 0x000093D2, - 17951: 0x000093E7, - 17952: 0x0000957D, - 17953: 0x000095DA, - 17954: 0x000095DB, - 17955: 0x000096E1, - 17956: 0x00009729, - 17957: 0x0000972B, - 17958: 0x0000972C, - 17959: 0x00009728, - 17960: 0x00009726, - 17961: 0x000097B3, - 17962: 0x000097B7, - 17963: 0x000097B6, - 17964: 0x000097DD, - 17965: 0x000097DE, - 17966: 0x000097DF, - 17967: 0x0000985C, - 17968: 0x00009859, - 17969: 0x0000985D, - 17970: 0x00009857, - 17971: 0x000098BF, - 17972: 0x000098BD, - 17973: 0x000098BB, - 17974: 0x000098BE, - 17975: 0x00009948, - 17976: 0x00009947, - 17977: 0x00009943, - 17978: 0x000099A6, - 17979: 0x000099A7, - 17980: 0x00009A1A, - 17981: 0x00009A15, - 17982: 0x00009A25, - 17983: 0x00009A1D, - 17984: 0x00009A24, - 17985: 0x00009A1B, - 17986: 0x00009A22, - 17987: 0x00009A20, - 17988: 0x00009A27, - 17989: 0x00009A23, - 17990: 0x00009A1E, - 17991: 0x00009A1C, - 17992: 0x00009A14, - 17993: 0x00009AC2, - 17994: 0x00009B0B, - 17995: 0x00009B0A, - 17996: 0x00009B0E, - 17997: 0x00009B0C, - 17998: 0x00009B37, - 17999: 0x00009BEA, - 18000: 0x00009BEB, - 18001: 0x00009BE0, - 18002: 0x00009BDE, - 18003: 0x00009BE4, - 18004: 0x00009BE6, - 18005: 0x00009BE2, - 18006: 0x00009BF0, - 18007: 0x00009BD4, - 18008: 0x00009BD7, - 18009: 0x00009BEC, - 18010: 0x00009BDC, - 18011: 0x00009BD9, - 18012: 0x00009BE5, - 18013: 0x00009BD5, - 18014: 0x00009BE1, - 18015: 0x00009BDA, - 18016: 0x00009D77, - 18017: 0x00009D81, - 18018: 0x00009D8A, - 18019: 0x00009D84, - 18020: 0x00009D88, - 18021: 0x00009D71, - 18022: 0x00009D80, - 18023: 0x00009D78, - 18024: 0x00009D86, - 18025: 0x00009D8B, - 18026: 0x00009D8C, - 18027: 0x00009D7D, - 18028: 0x00009D6B, - 18029: 0x00009D74, - 18030: 0x00009D75, - 18031: 0x00009D70, - 18032: 0x00009D69, - 18033: 0x00009D85, - 18034: 0x00009D73, - 18035: 0x00009D7B, - 18036: 0x00009D82, - 18037: 0x00009D6F, - 18038: 0x00009D79, - 18039: 0x00009D7F, - 18040: 0x00009D87, - 18041: 0x00009D68, - 18042: 0x00009E94, - 18043: 0x00009E91, - 18044: 0x00009EC0, - 18045: 0x00009EFC, - 18046: 0x00009F2D, - 18047: 0x00009F40, - 18048: 0x00009F41, - 18049: 0x00009F4D, - 18050: 0x00009F56, - 18051: 0x00009F57, - 18052: 0x00009F58, - 18053: 0x00005337, - 18054: 0x000056B2, - 18055: 0x000056B5, - 18056: 0x000056B3, - 18057: 0x000058E3, - 18058: 0x00005B45, - 18059: 0x00005DC6, - 18060: 0x00005DC7, - 18061: 0x00005EEE, - 18062: 0x00005EEF, - 18063: 0x00005FC0, - 18064: 0x00005FC1, - 18065: 0x000061F9, - 18066: 0x00006517, - 18067: 0x00006516, - 18068: 0x00006515, - 18069: 0x00006513, - 18070: 0x000065DF, - 18071: 0x000066E8, - 18072: 0x000066E3, - 18073: 0x000066E4, - 18074: 0x00006AF3, - 18075: 0x00006AF0, - 18076: 0x00006AEA, - 18077: 0x00006AE8, - 18078: 0x00006AF9, - 18079: 0x00006AF1, - 18080: 0x00006AEE, - 18081: 0x00006AEF, - 18082: 0x0000703C, - 18083: 0x00007035, - 18084: 0x0000702F, - 18085: 0x00007037, - 18086: 0x00007034, - 18087: 0x00007031, - 18088: 0x00007042, - 18089: 0x00007038, - 18090: 0x0000703F, - 18091: 0x0000703A, - 18092: 0x00007039, - 18093: 0x00007040, - 18094: 0x0000703B, - 18095: 0x00007033, - 18096: 0x00007041, - 18097: 0x00007213, - 18098: 0x00007214, - 18099: 0x000072A8, - 18100: 0x0000737D, - 18101: 0x0000737C, - 18102: 0x000074BA, - 18103: 0x000076AB, - 18104: 0x000076AA, - 18105: 0x000076BE, - 18106: 0x000076ED, - 18107: 0x000077CC, - 18108: 0x000077CE, - 18109: 0x000077CF, - 18110: 0x000077CD, - 18111: 0x000077F2, - 18112: 0x00007925, - 18113: 0x00007923, - 18114: 0x00007927, - 18115: 0x00007928, - 18116: 0x00007924, - 18117: 0x00007929, - 18118: 0x000079B2, - 18119: 0x00007A6E, - 18120: 0x00007A6C, - 18121: 0x00007A6D, - 18122: 0x00007AF7, - 18123: 0x00007C49, - 18124: 0x00007C48, - 18125: 0x00007C4A, - 18126: 0x00007C47, - 18127: 0x00007C45, - 18128: 0x00007CEE, - 18129: 0x00007E7B, - 18130: 0x00007E7E, - 18131: 0x00007E81, - 18132: 0x00007E80, - 18133: 0x00007FBA, - 18134: 0x00007FFF, - 18135: 0x00008079, - 18136: 0x000081DB, - 18137: 0x000081D9, - 18138: 0x0000820B, - 18139: 0x00008268, - 18140: 0x00008269, - 18141: 0x00008622, - 18142: 0x000085FF, - 18143: 0x00008601, - 18144: 0x000085FE, - 18145: 0x0000861B, - 18146: 0x00008600, - 18147: 0x000085F6, - 18148: 0x00008604, - 18149: 0x00008609, - 18150: 0x00008605, - 18151: 0x0000860C, - 18152: 0x000085FD, - 18153: 0x00008819, - 18154: 0x00008810, - 18155: 0x00008811, - 18156: 0x00008817, - 18157: 0x00008813, - 18158: 0x00008816, - 18159: 0x00008963, - 18160: 0x00008966, - 18161: 0x000089B9, - 18162: 0x000089F7, - 18163: 0x00008B60, - 18164: 0x00008B6A, - 18165: 0x00008B5D, - 18166: 0x00008B68, - 18167: 0x00008B63, - 18168: 0x00008B65, - 18169: 0x00008B67, - 18170: 0x00008B6D, - 18171: 0x00008DAE, - 18172: 0x00008E86, - 18173: 0x00008E88, - 18174: 0x00008E84, - 18175: 0x00008F59, - 18176: 0x00008F56, - 18177: 0x00008F57, - 18178: 0x00008F55, - 18179: 0x00008F58, - 18180: 0x00008F5A, - 18181: 0x0000908D, - 18182: 0x00009143, - 18183: 0x00009141, - 18184: 0x000091B7, - 18185: 0x000091B5, - 18186: 0x000091B2, - 18187: 0x000091B3, - 18188: 0x0000940B, - 18189: 0x00009413, - 18190: 0x000093FB, - 18191: 0x00009420, - 18192: 0x0000940F, - 18193: 0x00009414, - 18194: 0x000093FE, - 18195: 0x00009415, - 18196: 0x00009410, - 18197: 0x00009428, - 18198: 0x00009419, - 18199: 0x0000940D, - 18200: 0x000093F5, - 18201: 0x00009400, - 18202: 0x000093F7, - 18203: 0x00009407, - 18204: 0x0000940E, - 18205: 0x00009416, - 18206: 0x00009412, - 18207: 0x000093FA, - 18208: 0x00009409, - 18209: 0x000093F8, - 18210: 0x0000940A, - 18211: 0x000093FF, - 18212: 0x000093FC, - 18213: 0x0000940C, - 18214: 0x000093F6, - 18215: 0x00009411, - 18216: 0x00009406, - 18217: 0x000095DE, - 18218: 0x000095E0, - 18219: 0x000095DF, - 18220: 0x0000972E, - 18221: 0x0000972F, - 18222: 0x000097B9, - 18223: 0x000097BB, - 18224: 0x000097FD, - 18225: 0x000097FE, - 18226: 0x00009860, - 18227: 0x00009862, - 18228: 0x00009863, - 18229: 0x0000985F, - 18230: 0x000098C1, - 18231: 0x000098C2, - 18232: 0x00009950, - 18233: 0x0000994E, - 18234: 0x00009959, - 18235: 0x0000994C, - 18236: 0x0000994B, - 18237: 0x00009953, - 18238: 0x00009A32, - 18239: 0x00009A34, - 18240: 0x00009A31, - 18241: 0x00009A2C, - 18242: 0x00009A2A, - 18243: 0x00009A36, - 18244: 0x00009A29, - 18245: 0x00009A2E, - 18246: 0x00009A38, - 18247: 0x00009A2D, - 18248: 0x00009AC7, - 18249: 0x00009ACA, - 18250: 0x00009AC6, - 18251: 0x00009B10, - 18252: 0x00009B12, - 18253: 0x00009B11, - 18254: 0x00009C0B, - 18255: 0x00009C08, - 18256: 0x00009BF7, - 18257: 0x00009C05, - 18258: 0x00009C12, - 18259: 0x00009BF8, - 18260: 0x00009C40, - 18261: 0x00009C07, - 18262: 0x00009C0E, - 18263: 0x00009C06, - 18264: 0x00009C17, - 18265: 0x00009C14, - 18266: 0x00009C09, - 18267: 0x00009D9F, - 18268: 0x00009D99, - 18269: 0x00009DA4, - 18270: 0x00009D9D, - 18271: 0x00009D92, - 18272: 0x00009D98, - 18273: 0x00009D90, - 18274: 0x00009D9B, - 18275: 0x00009DA0, - 18276: 0x00009D94, - 18277: 0x00009D9C, - 18278: 0x00009DAA, - 18279: 0x00009D97, - 18280: 0x00009DA1, - 18281: 0x00009D9A, - 18282: 0x00009DA2, - 18283: 0x00009DA8, - 18284: 0x00009D9E, - 18285: 0x00009DA3, - 18286: 0x00009DBF, - 18287: 0x00009DA9, - 18288: 0x00009D96, - 18289: 0x00009DA6, - 18290: 0x00009DA7, - 18291: 0x00009E99, - 18292: 0x00009E9B, - 18293: 0x00009E9A, - 18294: 0x00009EE5, - 18295: 0x00009EE4, - 18296: 0x00009EE7, - 18297: 0x00009EE6, - 18298: 0x00009F30, - 18299: 0x00009F2E, - 18300: 0x00009F5B, - 18301: 0x00009F60, - 18302: 0x00009F5E, - 18303: 0x00009F5D, - 18304: 0x00009F59, - 18305: 0x00009F91, - 18306: 0x0000513A, - 18307: 0x00005139, - 18308: 0x00005298, - 18309: 0x00005297, - 18310: 0x000056C3, - 18311: 0x000056BD, - 18312: 0x000056BE, - 18313: 0x00005B48, - 18314: 0x00005B47, - 18315: 0x00005DCB, - 18316: 0x00005DCF, - 18317: 0x00005EF1, - 18318: 0x000061FD, - 18319: 0x0000651B, - 18320: 0x00006B02, - 18321: 0x00006AFC, - 18322: 0x00006B03, - 18323: 0x00006AF8, - 18324: 0x00006B00, - 18325: 0x00007043, - 18326: 0x00007044, - 18327: 0x0000704A, - 18328: 0x00007048, - 18329: 0x00007049, - 18330: 0x00007045, - 18331: 0x00007046, - 18332: 0x0000721D, - 18333: 0x0000721A, - 18334: 0x00007219, - 18335: 0x0000737E, - 18336: 0x00007517, - 18337: 0x0000766A, - 18338: 0x000077D0, - 18339: 0x0000792D, - 18340: 0x00007931, - 18341: 0x0000792F, - 18342: 0x00007C54, - 18343: 0x00007C53, - 18344: 0x00007CF2, - 18345: 0x00007E8A, - 18346: 0x00007E87, - 18347: 0x00007E88, - 18348: 0x00007E8B, - 18349: 0x00007E86, - 18350: 0x00007E8D, - 18351: 0x00007F4D, - 18352: 0x00007FBB, - 18353: 0x00008030, - 18354: 0x000081DD, - 18355: 0x00008618, - 18356: 0x0000862A, - 18357: 0x00008626, - 18358: 0x0000861F, - 18359: 0x00008623, - 18360: 0x0000861C, - 18361: 0x00008619, - 18362: 0x00008627, - 18363: 0x0000862E, - 18364: 0x00008621, - 18365: 0x00008620, - 18366: 0x00008629, - 18367: 0x0000861E, - 18368: 0x00008625, - 18369: 0x00008829, - 18370: 0x0000881D, - 18371: 0x0000881B, - 18372: 0x00008820, - 18373: 0x00008824, - 18374: 0x0000881C, - 18375: 0x0000882B, - 18376: 0x0000884A, - 18377: 0x0000896D, - 18378: 0x00008969, - 18379: 0x0000896E, - 18380: 0x0000896B, - 18381: 0x000089FA, - 18382: 0x00008B79, - 18383: 0x00008B78, - 18384: 0x00008B45, - 18385: 0x00008B7A, - 18386: 0x00008B7B, - 18387: 0x00008D10, - 18388: 0x00008D14, - 18389: 0x00008DAF, - 18390: 0x00008E8E, - 18391: 0x00008E8C, - 18392: 0x00008F5E, - 18393: 0x00008F5B, - 18394: 0x00008F5D, - 18395: 0x00009146, - 18396: 0x00009144, - 18397: 0x00009145, - 18398: 0x000091B9, - 18399: 0x0000943F, - 18400: 0x0000943B, - 18401: 0x00009436, - 18402: 0x00009429, - 18403: 0x0000943D, - 18404: 0x0000943C, - 18405: 0x00009430, - 18406: 0x00009439, - 18407: 0x0000942A, - 18408: 0x00009437, - 18409: 0x0000942C, - 18410: 0x00009440, - 18411: 0x00009431, - 18412: 0x000095E5, - 18413: 0x000095E4, - 18414: 0x000095E3, - 18415: 0x00009735, - 18416: 0x0000973A, - 18417: 0x000097BF, - 18418: 0x000097E1, - 18419: 0x00009864, - 18420: 0x000098C9, - 18421: 0x000098C6, - 18422: 0x000098C0, - 18423: 0x00009958, - 18424: 0x00009956, - 18425: 0x00009A39, - 18426: 0x00009A3D, - 18427: 0x00009A46, - 18428: 0x00009A44, - 18429: 0x00009A42, - 18430: 0x00009A41, - 18431: 0x00009A3A, - 18432: 0x00009A3F, - 18433: 0x00009ACD, - 18434: 0x00009B15, - 18435: 0x00009B17, - 18436: 0x00009B18, - 18437: 0x00009B16, - 18438: 0x00009B3A, - 18439: 0x00009B52, - 18440: 0x00009C2B, - 18441: 0x00009C1D, - 18442: 0x00009C1C, - 18443: 0x00009C2C, - 18444: 0x00009C23, - 18445: 0x00009C28, - 18446: 0x00009C29, - 18447: 0x00009C24, - 18448: 0x00009C21, - 18449: 0x00009DB7, - 18450: 0x00009DB6, - 18451: 0x00009DBC, - 18452: 0x00009DC1, - 18453: 0x00009DC7, - 18454: 0x00009DCA, - 18455: 0x00009DCF, - 18456: 0x00009DBE, - 18457: 0x00009DC5, - 18458: 0x00009DC3, - 18459: 0x00009DBB, - 18460: 0x00009DB5, - 18461: 0x00009DCE, - 18462: 0x00009DB9, - 18463: 0x00009DBA, - 18464: 0x00009DAC, - 18465: 0x00009DC8, - 18466: 0x00009DB1, - 18467: 0x00009DAD, - 18468: 0x00009DCC, - 18469: 0x00009DB3, - 18470: 0x00009DCD, - 18471: 0x00009DB2, - 18472: 0x00009E7A, - 18473: 0x00009E9C, - 18474: 0x00009EEB, - 18475: 0x00009EEE, - 18476: 0x00009EED, - 18477: 0x00009F1B, - 18478: 0x00009F18, - 18479: 0x00009F1A, - 18480: 0x00009F31, - 18481: 0x00009F4E, - 18482: 0x00009F65, - 18483: 0x00009F64, - 18484: 0x00009F92, - 18485: 0x00004EB9, - 18486: 0x000056C6, - 18487: 0x000056C5, - 18488: 0x000056CB, - 18489: 0x00005971, - 18490: 0x00005B4B, - 18491: 0x00005B4C, - 18492: 0x00005DD5, - 18493: 0x00005DD1, - 18494: 0x00005EF2, - 18495: 0x00006521, - 18496: 0x00006520, - 18497: 0x00006526, - 18498: 0x00006522, - 18499: 0x00006B0B, - 18500: 0x00006B08, - 18501: 0x00006B09, - 18502: 0x00006C0D, - 18503: 0x00007055, - 18504: 0x00007056, - 18505: 0x00007057, - 18506: 0x00007052, - 18507: 0x0000721E, - 18508: 0x0000721F, - 18509: 0x000072A9, - 18510: 0x0000737F, - 18511: 0x000074D8, - 18512: 0x000074D5, - 18513: 0x000074D9, - 18514: 0x000074D7, - 18515: 0x0000766D, - 18516: 0x000076AD, - 18517: 0x00007935, - 18518: 0x000079B4, - 18519: 0x00007A70, - 18520: 0x00007A71, - 18521: 0x00007C57, - 18522: 0x00007C5C, - 18523: 0x00007C59, - 18524: 0x00007C5B, - 18525: 0x00007C5A, - 18526: 0x00007CF4, - 18527: 0x00007CF1, - 18528: 0x00007E91, - 18529: 0x00007F4F, - 18530: 0x00007F87, - 18531: 0x000081DE, - 18532: 0x0000826B, - 18533: 0x00008634, - 18534: 0x00008635, - 18535: 0x00008633, - 18536: 0x0000862C, - 18537: 0x00008632, - 18538: 0x00008636, - 18539: 0x0000882C, - 18540: 0x00008828, - 18541: 0x00008826, - 18542: 0x0000882A, - 18543: 0x00008825, - 18544: 0x00008971, - 18545: 0x000089BF, - 18546: 0x000089BE, - 18547: 0x000089FB, - 18548: 0x00008B7E, - 18549: 0x00008B84, - 18550: 0x00008B82, - 18551: 0x00008B86, - 18552: 0x00008B85, - 18553: 0x00008B7F, - 18554: 0x00008D15, - 18555: 0x00008E95, - 18556: 0x00008E94, - 18557: 0x00008E9A, - 18558: 0x00008E92, - 18559: 0x00008E90, - 18560: 0x00008E96, - 18561: 0x00008E97, - 18562: 0x00008F60, - 18563: 0x00008F62, - 18564: 0x00009147, - 18565: 0x0000944C, - 18566: 0x00009450, - 18567: 0x0000944A, - 18568: 0x0000944B, - 18569: 0x0000944F, - 18570: 0x00009447, - 18571: 0x00009445, - 18572: 0x00009448, - 18573: 0x00009449, - 18574: 0x00009446, - 18575: 0x0000973F, - 18576: 0x000097E3, - 18577: 0x0000986A, - 18578: 0x00009869, - 18579: 0x000098CB, - 18580: 0x00009954, - 18581: 0x0000995B, - 18582: 0x00009A4E, - 18583: 0x00009A53, - 18584: 0x00009A54, - 18585: 0x00009A4C, - 18586: 0x00009A4F, - 18587: 0x00009A48, - 18588: 0x00009A4A, - 18589: 0x00009A49, - 18590: 0x00009A52, - 18591: 0x00009A50, - 18592: 0x00009AD0, - 18593: 0x00009B19, - 18594: 0x00009B2B, - 18595: 0x00009B3B, - 18596: 0x00009B56, - 18597: 0x00009B55, - 18598: 0x00009C46, - 18599: 0x00009C48, - 18600: 0x00009C3F, - 18601: 0x00009C44, - 18602: 0x00009C39, - 18603: 0x00009C33, - 18604: 0x00009C41, - 18605: 0x00009C3C, - 18606: 0x00009C37, - 18607: 0x00009C34, - 18608: 0x00009C32, - 18609: 0x00009C3D, - 18610: 0x00009C36, - 18611: 0x00009DDB, - 18612: 0x00009DD2, - 18613: 0x00009DDE, - 18614: 0x00009DDA, - 18615: 0x00009DCB, - 18616: 0x00009DD0, - 18617: 0x00009DDC, - 18618: 0x00009DD1, - 18619: 0x00009DDF, - 18620: 0x00009DE9, - 18621: 0x00009DD9, - 18622: 0x00009DD8, - 18623: 0x00009DD6, - 18624: 0x00009DF5, - 18625: 0x00009DD5, - 18626: 0x00009DDD, - 18627: 0x00009EB6, - 18628: 0x00009EF0, - 18629: 0x00009F35, - 18630: 0x00009F33, - 18631: 0x00009F32, - 18632: 0x00009F42, - 18633: 0x00009F6B, - 18634: 0x00009F95, - 18635: 0x00009FA2, - 18636: 0x0000513D, - 18637: 0x00005299, - 18638: 0x000058E8, - 18639: 0x000058E7, - 18640: 0x00005972, - 18641: 0x00005B4D, - 18642: 0x00005DD8, - 18643: 0x0000882F, - 18644: 0x00005F4F, - 18645: 0x00006201, - 18646: 0x00006203, - 18647: 0x00006204, - 18648: 0x00006529, - 18649: 0x00006525, - 18650: 0x00006596, - 18651: 0x000066EB, - 18652: 0x00006B11, - 18653: 0x00006B12, - 18654: 0x00006B0F, - 18655: 0x00006BCA, - 18656: 0x0000705B, - 18657: 0x0000705A, - 18658: 0x00007222, - 18659: 0x00007382, - 18660: 0x00007381, - 18661: 0x00007383, - 18662: 0x00007670, - 18663: 0x000077D4, - 18664: 0x00007C67, - 18665: 0x00007C66, - 18666: 0x00007E95, - 18667: 0x0000826C, - 18668: 0x0000863A, - 18669: 0x00008640, - 18670: 0x00008639, - 18671: 0x0000863C, - 18672: 0x00008631, - 18673: 0x0000863B, - 18674: 0x0000863E, - 18675: 0x00008830, - 18676: 0x00008832, - 18677: 0x0000882E, - 18678: 0x00008833, - 18679: 0x00008976, - 18680: 0x00008974, - 18681: 0x00008973, - 18682: 0x000089FE, - 18683: 0x00008B8C, - 18684: 0x00008B8E, - 18685: 0x00008B8B, - 18686: 0x00008B88, - 18687: 0x00008C45, - 18688: 0x00008D19, - 18689: 0x00008E98, - 18690: 0x00008F64, - 18691: 0x00008F63, - 18692: 0x000091BC, - 18693: 0x00009462, - 18694: 0x00009455, - 18695: 0x0000945D, - 18696: 0x00009457, - 18697: 0x0000945E, - 18698: 0x000097C4, - 18699: 0x000097C5, - 18700: 0x00009800, - 18701: 0x00009A56, - 18702: 0x00009A59, - 18703: 0x00009B1E, - 18704: 0x00009B1F, - 18705: 0x00009B20, - 18706: 0x00009C52, - 18707: 0x00009C58, - 18708: 0x00009C50, - 18709: 0x00009C4A, - 18710: 0x00009C4D, - 18711: 0x00009C4B, - 18712: 0x00009C55, - 18713: 0x00009C59, - 18714: 0x00009C4C, - 18715: 0x00009C4E, - 18716: 0x00009DFB, - 18717: 0x00009DF7, - 18718: 0x00009DEF, - 18719: 0x00009DE3, - 18720: 0x00009DEB, - 18721: 0x00009DF8, - 18722: 0x00009DE4, - 18723: 0x00009DF6, - 18724: 0x00009DE1, - 18725: 0x00009DEE, - 18726: 0x00009DE6, - 18727: 0x00009DF2, - 18728: 0x00009DF0, - 18729: 0x00009DE2, - 18730: 0x00009DEC, - 18731: 0x00009DF4, - 18732: 0x00009DF3, - 18733: 0x00009DE8, - 18734: 0x00009DED, - 18735: 0x00009EC2, - 18736: 0x00009ED0, - 18737: 0x00009EF2, - 18738: 0x00009EF3, - 18739: 0x00009F06, - 18740: 0x00009F1C, - 18741: 0x00009F38, - 18742: 0x00009F37, - 18743: 0x00009F36, - 18744: 0x00009F43, - 18745: 0x00009F4F, - 18746: 0x00009F71, - 18747: 0x00009F70, - 18748: 0x00009F6E, - 18749: 0x00009F6F, - 18750: 0x000056D3, - 18751: 0x000056CD, - 18752: 0x00005B4E, - 18753: 0x00005C6D, - 18754: 0x0000652D, - 18755: 0x000066ED, - 18756: 0x000066EE, - 18757: 0x00006B13, - 18758: 0x0000705F, - 18759: 0x00007061, - 18760: 0x0000705D, - 18761: 0x00007060, - 18762: 0x00007223, - 18763: 0x000074DB, - 18764: 0x000074E5, - 18765: 0x000077D5, - 18766: 0x00007938, - 18767: 0x000079B7, - 18768: 0x000079B6, - 18769: 0x00007C6A, - 18770: 0x00007E97, - 18771: 0x00007F89, - 18772: 0x0000826D, - 18773: 0x00008643, - 18774: 0x00008838, - 18775: 0x00008837, - 18776: 0x00008835, - 18777: 0x0000884B, - 18778: 0x00008B94, - 18779: 0x00008B95, - 18780: 0x00008E9E, - 18781: 0x00008E9F, - 18782: 0x00008EA0, - 18783: 0x00008E9D, - 18784: 0x000091BE, - 18785: 0x000091BD, - 18786: 0x000091C2, - 18787: 0x0000946B, - 18788: 0x00009468, - 18789: 0x00009469, - 18790: 0x000096E5, - 18791: 0x00009746, - 18792: 0x00009743, - 18793: 0x00009747, - 18794: 0x000097C7, - 18795: 0x000097E5, - 18796: 0x00009A5E, - 18797: 0x00009AD5, - 18798: 0x00009B59, - 18799: 0x00009C63, - 18800: 0x00009C67, - 18801: 0x00009C66, - 18802: 0x00009C62, - 18803: 0x00009C5E, - 18804: 0x00009C60, - 18805: 0x00009E02, - 18806: 0x00009DFE, - 18807: 0x00009E07, - 18808: 0x00009E03, - 18809: 0x00009E06, - 18810: 0x00009E05, - 18811: 0x00009E00, - 18812: 0x00009E01, - 18813: 0x00009E09, - 18814: 0x00009DFF, - 18815: 0x00009DFD, - 18816: 0x00009E04, - 18817: 0x00009EA0, - 18818: 0x00009F1E, - 18819: 0x00009F46, - 18820: 0x00009F74, - 18821: 0x00009F75, - 18822: 0x00009F76, - 18823: 0x000056D4, - 18824: 0x0000652E, - 18825: 0x000065B8, - 18826: 0x00006B18, - 18827: 0x00006B19, - 18828: 0x00006B17, - 18829: 0x00006B1A, - 18830: 0x00007062, - 18831: 0x00007226, - 18832: 0x000072AA, - 18833: 0x000077D8, - 18834: 0x000077D9, - 18835: 0x00007939, - 18836: 0x00007C69, - 18837: 0x00007C6B, - 18838: 0x00007CF6, - 18839: 0x00007E9A, - 18840: 0x00007E98, - 18841: 0x00007E9B, - 18842: 0x00007E99, - 18843: 0x000081E0, - 18844: 0x000081E1, - 18845: 0x00008646, - 18846: 0x00008647, - 18847: 0x00008648, - 18848: 0x00008979, - 18849: 0x0000897A, - 18850: 0x0000897C, - 18851: 0x0000897B, - 18852: 0x000089FF, - 18853: 0x00008B98, - 18854: 0x00008B99, - 18855: 0x00008EA5, - 18856: 0x00008EA4, - 18857: 0x00008EA3, - 18858: 0x0000946E, - 18859: 0x0000946D, - 18860: 0x0000946F, - 18861: 0x00009471, - 18862: 0x00009473, - 18863: 0x00009749, - 18864: 0x00009872, - 18865: 0x0000995F, - 18866: 0x00009C68, - 18867: 0x00009C6E, - 18868: 0x00009C6D, - 18869: 0x00009E0B, - 18870: 0x00009E0D, - 18871: 0x00009E10, - 18872: 0x00009E0F, - 18873: 0x00009E12, - 18874: 0x00009E11, - 18875: 0x00009EA1, - 18876: 0x00009EF5, - 18877: 0x00009F09, - 18878: 0x00009F47, - 18879: 0x00009F78, - 18880: 0x00009F7B, - 18881: 0x00009F7A, - 18882: 0x00009F79, - 18883: 0x0000571E, - 18884: 0x00007066, - 18885: 0x00007C6F, - 18886: 0x0000883C, - 18887: 0x00008DB2, - 18888: 0x00008EA6, - 18889: 0x000091C3, - 18890: 0x00009474, - 18891: 0x00009478, - 18892: 0x00009476, - 18893: 0x00009475, - 18894: 0x00009A60, - 18895: 0x00009C74, - 18896: 0x00009C73, - 18897: 0x00009C71, - 18898: 0x00009C75, - 18899: 0x00009E14, - 18900: 0x00009E13, - 18901: 0x00009EF6, - 18902: 0x00009F0A, - 18903: 0x00009FA4, - 18904: 0x00007068, - 18905: 0x00007065, - 18906: 0x00007CF7, - 18907: 0x0000866A, - 18908: 0x0000883E, - 18909: 0x0000883D, - 18910: 0x0000883F, - 18911: 0x00008B9E, - 18912: 0x00008C9C, - 18913: 0x00008EA9, - 18914: 0x00008EC9, - 18915: 0x0000974B, - 18916: 0x00009873, - 18917: 0x00009874, - 18918: 0x000098CC, - 18919: 0x00009961, - 18920: 0x000099AB, - 18921: 0x00009A64, - 18922: 0x00009A66, - 18923: 0x00009A67, - 18924: 0x00009B24, - 18925: 0x00009E15, - 18926: 0x00009E17, - 18927: 0x00009F48, - 18928: 0x00006207, - 18929: 0x00006B1E, - 18930: 0x00007227, - 18931: 0x0000864C, - 18932: 0x00008EA8, - 18933: 0x00009482, - 18934: 0x00009480, - 18935: 0x00009481, - 18936: 0x00009A69, - 18937: 0x00009A68, - 18938: 0x00009B2E, - 18939: 0x00009E19, - 18940: 0x00007229, - 18941: 0x0000864B, - 18942: 0x00008B9F, - 18943: 0x00009483, - 18944: 0x00009C79, - 18945: 0x00009EB7, - 18946: 0x00007675, - 18947: 0x00009A6B, - 18948: 0x00009C7A, - 18949: 0x00009E1D, - 18950: 0x00007069, - 18951: 0x0000706A, - 18952: 0x00009EA4, - 18953: 0x00009F7E, - 18954: 0x00009F49, - 18955: 0x00009F98, - 18956: 0x00007881, - 18957: 0x000092B9, - 18958: 0x000088CF, - 18959: 0x000058BB, - 18960: 0x00006052, - 18961: 0x00007CA7, - 18962: 0x00005AFA, - 18963: 0x00002554, - 18964: 0x00002566, - 18965: 0x00002557, - 18966: 0x00002560, - 18967: 0x0000256C, - 18968: 0x00002563, - 18969: 0x0000255A, - 18970: 0x00002569, - 18971: 0x0000255D, - 18972: 0x00002552, - 18973: 0x00002564, - 18974: 0x00002555, - 18975: 0x0000255E, - 18976: 0x0000256A, - 18977: 0x00002561, - 18978: 0x00002558, - 18979: 0x00002567, - 18980: 0x0000255B, - 18981: 0x00002553, - 18982: 0x00002565, - 18983: 0x00002556, - 18984: 0x0000255F, - 18985: 0x0000256B, - 18986: 0x00002562, - 18987: 0x00002559, - 18988: 0x00002568, - 18989: 0x0000255C, - 18990: 0x00002551, - 18991: 0x00002550, - 18992: 0x0000256D, - 18993: 0x0000256E, - 18994: 0x00002570, - 18995: 0x0000256F, - 18996: 0x0000FFED, - 18997: 0x00020547, - 18998: 0x000092DB, - 18999: 0x000205DF, - 19000: 0x00023FC5, - 19001: 0x0000854C, - 19002: 0x000042B5, - 19003: 0x000073EF, - 19004: 0x000051B5, - 19005: 0x00003649, - 19006: 0x00024942, - 19007: 0x000289E4, - 19008: 0x00009344, - 19009: 0x000219DB, - 19010: 0x000082EE, - 19011: 0x00023CC8, - 19012: 0x0000783C, - 19013: 0x00006744, - 19014: 0x000062DF, - 19015: 0x00024933, - 19016: 0x000289AA, - 19017: 0x000202A0, - 19018: 0x00026BB3, - 19019: 0x00021305, - 19020: 0x00004FAB, - 19021: 0x000224ED, - 19022: 0x00005008, - 19023: 0x00026D29, - 19024: 0x00027A84, - 19025: 0x00023600, - 19026: 0x00024AB1, - 19027: 0x00022513, - 19028: 0x00005029, - 19029: 0x0002037E, - 19030: 0x00005FA4, - 19031: 0x00020380, - 19032: 0x00020347, - 19033: 0x00006EDB, - 19034: 0x0002041F, - 19035: 0x0000507D, - 19036: 0x00005101, - 19037: 0x0000347A, - 19038: 0x0000510E, - 19039: 0x0000986C, - 19040: 0x00003743, - 19041: 0x00008416, - 19042: 0x000249A4, - 19043: 0x00020487, - 19044: 0x00005160, - 19045: 0x000233B4, - 19046: 0x0000516A, - 19047: 0x00020BFF, - 19048: 0x000220FC, - 19049: 0x000202E5, - 19050: 0x00022530, - 19051: 0x0002058E, - 19052: 0x00023233, - 19053: 0x00021983, - 19054: 0x00005B82, - 19055: 0x0000877D, - 19056: 0x000205B3, - 19057: 0x00023C99, - 19058: 0x000051B2, - 19059: 0x000051B8, - 19060: 0x00009D34, - 19061: 0x000051C9, - 19062: 0x000051CF, - 19063: 0x000051D1, - 19064: 0x00003CDC, - 19065: 0x000051D3, - 19066: 0x00024AA6, - 19067: 0x000051B3, - 19068: 0x000051E2, - 19069: 0x00005342, - 19070: 0x000051ED, - 19071: 0x000083CD, - 19072: 0x0000693E, - 19073: 0x0002372D, - 19074: 0x00005F7B, - 19075: 0x0000520B, - 19076: 0x00005226, - 19077: 0x0000523C, - 19078: 0x000052B5, - 19079: 0x00005257, - 19080: 0x00005294, - 19081: 0x000052B9, - 19082: 0x000052C5, - 19083: 0x00007C15, - 19084: 0x00008542, - 19085: 0x000052E0, - 19086: 0x0000860D, - 19087: 0x00026B13, - 19088: 0x00005305, - 19089: 0x00028ADE, - 19090: 0x00005549, - 19091: 0x00006ED9, - 19092: 0x00023F80, - 19093: 0x00020954, - 19094: 0x00023FEC, - 19095: 0x00005333, - 19096: 0x00005344, - 19097: 0x00020BE2, - 19098: 0x00006CCB, - 19099: 0x00021726, - 19100: 0x0000681B, - 19101: 0x000073D5, - 19102: 0x0000604A, - 19103: 0x00003EAA, - 19104: 0x000038CC, - 19105: 0x000216E8, - 19106: 0x000071DD, - 19107: 0x000044A2, - 19108: 0x0000536D, - 19109: 0x00005374, - 19110: 0x000286AB, - 19111: 0x0000537E, - 19112: 0x0000537F, - 19113: 0x00021596, - 19114: 0x00021613, - 19115: 0x000077E6, - 19116: 0x00005393, - 19117: 0x00028A9B, - 19118: 0x000053A0, - 19119: 0x000053AB, - 19120: 0x000053AE, - 19121: 0x000073A7, - 19122: 0x00025772, - 19123: 0x00003F59, - 19124: 0x0000739C, - 19125: 0x000053C1, - 19126: 0x000053C5, - 19127: 0x00006C49, - 19128: 0x00004E49, - 19129: 0x000057FE, - 19130: 0x000053D9, - 19131: 0x00003AAB, - 19132: 0x00020B8F, - 19133: 0x000053E0, - 19134: 0x00023FEB, - 19135: 0x00022DA3, - 19136: 0x000053F6, - 19137: 0x00020C77, - 19138: 0x00005413, - 19139: 0x00007079, - 19140: 0x0000552B, - 19141: 0x00006657, - 19142: 0x00006D5B, - 19143: 0x0000546D, - 19144: 0x00026B53, - 19145: 0x00020D74, - 19146: 0x0000555D, - 19147: 0x0000548F, - 19148: 0x000054A4, - 19149: 0x000047A6, - 19150: 0x0002170D, - 19151: 0x00020EDD, - 19152: 0x00003DB4, - 19153: 0x00020D4D, - 19154: 0x000289BC, - 19155: 0x00022698, - 19156: 0x00005547, - 19157: 0x00004CED, - 19158: 0x0000542F, - 19159: 0x00007417, - 19160: 0x00005586, - 19161: 0x000055A9, - 19162: 0x00005605, - 19163: 0x000218D7, - 19164: 0x0002403A, - 19165: 0x00004552, - 19166: 0x00024435, - 19167: 0x000066B3, - 19168: 0x000210B4, - 19169: 0x00005637, - 19170: 0x000066CD, - 19171: 0x0002328A, - 19172: 0x000066A4, - 19173: 0x000066AD, - 19174: 0x0000564D, - 19175: 0x0000564F, - 19176: 0x000078F1, - 19177: 0x000056F1, - 19178: 0x00009787, - 19179: 0x000053FE, - 19180: 0x00005700, - 19181: 0x000056EF, - 19182: 0x000056ED, - 19183: 0x00028B66, - 19184: 0x00003623, - 19185: 0x0002124F, - 19186: 0x00005746, - 19187: 0x000241A5, - 19188: 0x00006C6E, - 19189: 0x0000708B, - 19190: 0x00005742, - 19191: 0x000036B1, - 19192: 0x00026C7E, - 19193: 0x000057E6, - 19194: 0x00021416, - 19195: 0x00005803, - 19196: 0x00021454, - 19197: 0x00024363, - 19198: 0x00005826, - 19199: 0x00024BF5, - 19200: 0x0000585C, - 19201: 0x000058AA, - 19202: 0x00003561, - 19203: 0x000058E0, - 19204: 0x000058DC, - 19205: 0x0002123C, - 19206: 0x000058FB, - 19207: 0x00005BFF, - 19208: 0x00005743, - 19209: 0x0002A150, - 19210: 0x00024278, - 19211: 0x000093D3, - 19212: 0x000035A1, - 19213: 0x0000591F, - 19214: 0x000068A6, - 19215: 0x000036C3, - 19216: 0x00006E59, - 19217: 0x0002163E, - 19218: 0x00005A24, - 19219: 0x00005553, - 19220: 0x00021692, - 19221: 0x00008505, - 19222: 0x000059C9, - 19223: 0x00020D4E, - 19224: 0x00026C81, - 19225: 0x00026D2A, - 19226: 0x000217DC, - 19227: 0x000059D9, - 19228: 0x000217FB, - 19229: 0x000217B2, - 19230: 0x00026DA6, - 19231: 0x00006D71, - 19232: 0x00021828, - 19233: 0x000216D5, - 19234: 0x000059F9, - 19235: 0x00026E45, - 19236: 0x00005AAB, - 19237: 0x00005A63, - 19238: 0x000036E6, - 19239: 0x000249A9, - 19240: 0x00005A77, - 19241: 0x00003708, - 19242: 0x00005A96, - 19243: 0x00007465, - 19244: 0x00005AD3, - 19245: 0x00026FA1, - 19246: 0x00022554, - 19247: 0x00003D85, - 19248: 0x00021911, - 19249: 0x00003732, - 19250: 0x000216B8, - 19251: 0x00005E83, - 19252: 0x000052D0, - 19253: 0x00005B76, - 19254: 0x00006588, - 19255: 0x00005B7C, - 19256: 0x00027A0E, - 19257: 0x00004004, - 19258: 0x0000485D, - 19259: 0x00020204, - 19260: 0x00005BD5, - 19261: 0x00006160, - 19262: 0x00021A34, - 19263: 0x000259CC, - 19264: 0x000205A5, - 19265: 0x00005BF3, - 19266: 0x00005B9D, - 19267: 0x00004D10, - 19268: 0x00005C05, - 19269: 0x00021B44, - 19270: 0x00005C13, - 19271: 0x000073CE, - 19272: 0x00005C14, - 19273: 0x00021CA5, - 19274: 0x00026B28, - 19275: 0x00005C49, - 19276: 0x000048DD, - 19277: 0x00005C85, - 19278: 0x00005CE9, - 19279: 0x00005CEF, - 19280: 0x00005D8B, - 19281: 0x00021DF9, - 19282: 0x00021E37, - 19283: 0x00005D10, - 19284: 0x00005D18, - 19285: 0x00005D46, - 19286: 0x00021EA4, - 19287: 0x00005CBA, - 19288: 0x00005DD7, - 19289: 0x000082FC, - 19290: 0x0000382D, - 19291: 0x00024901, - 19292: 0x00022049, - 19293: 0x00022173, - 19294: 0x00008287, - 19295: 0x00003836, - 19296: 0x00003BC2, - 19297: 0x00005E2E, - 19298: 0x00006A8A, - 19299: 0x00005E75, - 19300: 0x00005E7A, - 19301: 0x000244BC, - 19302: 0x00020CD3, - 19303: 0x000053A6, - 19304: 0x00004EB7, - 19305: 0x00005ED0, - 19306: 0x000053A8, - 19307: 0x00021771, - 19308: 0x00005E09, - 19309: 0x00005EF4, - 19310: 0x00028482, - 19311: 0x00005EF9, - 19312: 0x00005EFB, - 19313: 0x000038A0, - 19314: 0x00005EFC, - 19315: 0x0000683E, - 19316: 0x0000941B, - 19317: 0x00005F0D, - 19318: 0x000201C1, - 19319: 0x0002F894, - 19320: 0x00003ADE, - 19321: 0x000048AE, - 19322: 0x0002133A, - 19323: 0x00005F3A, - 19324: 0x00026888, - 19325: 0x000223D0, - 19326: 0x00005F58, - 19327: 0x00022471, - 19328: 0x00005F63, - 19329: 0x000097BD, - 19330: 0x00026E6E, - 19331: 0x00005F72, - 19332: 0x00009340, - 19333: 0x00028A36, - 19334: 0x00005FA7, - 19335: 0x00005DB6, - 19336: 0x00003D5F, - 19337: 0x00025250, - 19338: 0x00021F6A, - 19339: 0x000270F8, - 19340: 0x00022668, - 19341: 0x000091D6, - 19342: 0x0002029E, - 19343: 0x00028A29, - 19344: 0x00006031, - 19345: 0x00006685, - 19346: 0x00021877, - 19347: 0x00003963, - 19348: 0x00003DC7, - 19349: 0x00003639, - 19350: 0x00005790, - 19351: 0x000227B4, - 19352: 0x00007971, - 19353: 0x00003E40, - 19354: 0x0000609E, - 19355: 0x000060A4, - 19356: 0x000060B3, - 19357: 0x00024982, - 19358: 0x0002498F, - 19359: 0x00027A53, - 19360: 0x000074A4, - 19361: 0x000050E1, - 19362: 0x00005AA0, - 19363: 0x00006164, - 19364: 0x00008424, - 19365: 0x00006142, - 19366: 0x0002F8A6, - 19367: 0x00026ED2, - 19368: 0x00006181, - 19369: 0x000051F4, - 19370: 0x00020656, - 19371: 0x00006187, - 19372: 0x00005BAA, - 19373: 0x00023FB7, - 19374: 0x0002285F, - 19375: 0x000061D3, - 19376: 0x00028B9D, - 19377: 0x0002995D, - 19378: 0x000061D0, - 19379: 0x00003932, - 19380: 0x00022980, - 19381: 0x000228C1, - 19382: 0x00006023, - 19383: 0x0000615C, - 19384: 0x0000651E, - 19385: 0x0000638B, - 19386: 0x00020118, - 19387: 0x000062C5, - 19388: 0x00021770, - 19389: 0x000062D5, - 19390: 0x00022E0D, - 19391: 0x0000636C, - 19392: 0x000249DF, - 19393: 0x00003A17, - 19394: 0x00006438, - 19395: 0x000063F8, - 19396: 0x0002138E, - 19397: 0x000217FC, - 19398: 0x00006490, - 19399: 0x00006F8A, - 19400: 0x00022E36, - 19401: 0x00009814, - 19402: 0x0002408C, - 19403: 0x0002571D, - 19404: 0x000064E1, - 19405: 0x000064E5, - 19406: 0x0000947B, - 19407: 0x00003A66, - 19408: 0x0000643A, - 19409: 0x00003A57, - 19410: 0x0000654D, - 19411: 0x00006F16, - 19412: 0x00024A28, - 19413: 0x00024A23, - 19414: 0x00006585, - 19415: 0x0000656D, - 19416: 0x0000655F, - 19417: 0x0002307E, - 19418: 0x000065B5, - 19419: 0x00024940, - 19420: 0x00004B37, - 19421: 0x000065D1, - 19422: 0x000040D8, - 19423: 0x00021829, - 19424: 0x000065E0, - 19425: 0x000065E3, - 19426: 0x00005FDF, - 19427: 0x00023400, - 19428: 0x00006618, - 19429: 0x000231F7, - 19430: 0x000231F8, - 19431: 0x00006644, - 19432: 0x000231A4, - 19433: 0x000231A5, - 19434: 0x0000664B, - 19435: 0x00020E75, - 19436: 0x00006667, - 19437: 0x000251E6, - 19438: 0x00006673, - 19439: 0x00006674, - 19440: 0x00021E3D, - 19441: 0x00023231, - 19442: 0x000285F4, - 19443: 0x000231C8, - 19444: 0x00025313, - 19445: 0x000077C5, - 19446: 0x000228F7, - 19447: 0x000099A4, - 19448: 0x00006702, - 19449: 0x0002439C, - 19450: 0x00024A21, - 19451: 0x00003B2B, - 19452: 0x000069FA, - 19453: 0x000237C2, - 19454: 0x0000675E, - 19455: 0x00006767, - 19456: 0x00006762, - 19457: 0x000241CD, - 19458: 0x000290ED, - 19459: 0x000067D7, - 19460: 0x000044E9, - 19461: 0x00006822, - 19462: 0x00006E50, - 19463: 0x0000923C, - 19464: 0x00006801, - 19465: 0x000233E6, - 19466: 0x00026DA0, - 19467: 0x0000685D, - 19468: 0x0002346F, - 19469: 0x000069E1, - 19470: 0x00006A0B, - 19471: 0x00028ADF, - 19472: 0x00006973, - 19473: 0x000068C3, - 19474: 0x000235CD, - 19475: 0x00006901, - 19476: 0x00006900, - 19477: 0x00003D32, - 19478: 0x00003A01, - 19479: 0x0002363C, - 19480: 0x00003B80, - 19481: 0x000067AC, - 19482: 0x00006961, - 19483: 0x00028A4A, - 19484: 0x000042FC, - 19485: 0x00006936, - 19486: 0x00006998, - 19487: 0x00003BA1, - 19488: 0x000203C9, - 19489: 0x00008363, - 19490: 0x00005090, - 19491: 0x000069F9, - 19492: 0x00023659, - 19493: 0x0002212A, - 19494: 0x00006A45, - 19495: 0x00023703, - 19496: 0x00006A9D, - 19497: 0x00003BF3, - 19498: 0x000067B1, - 19499: 0x00006AC8, - 19500: 0x0002919C, - 19501: 0x00003C0D, - 19502: 0x00006B1D, - 19503: 0x00020923, - 19504: 0x000060DE, - 19505: 0x00006B35, - 19506: 0x00006B74, - 19507: 0x000227CD, - 19508: 0x00006EB5, - 19509: 0x00023ADB, - 19510: 0x000203B5, - 19511: 0x00021958, - 19512: 0x00003740, - 19513: 0x00005421, - 19514: 0x00023B5A, - 19515: 0x00006BE1, - 19516: 0x00023EFC, - 19517: 0x00006BDC, - 19518: 0x00006C37, - 19519: 0x0002248B, - 19520: 0x000248F1, - 19521: 0x00026B51, - 19522: 0x00006C5A, - 19523: 0x00008226, - 19524: 0x00006C79, - 19525: 0x00023DBC, - 19526: 0x000044C5, - 19527: 0x00023DBD, - 19528: 0x000241A4, - 19529: 0x0002490C, - 19530: 0x00024900, - 19531: 0x00023CC9, - 19532: 0x000036E5, - 19533: 0x00003CEB, - 19534: 0x00020D32, - 19535: 0x00009B83, - 19536: 0x000231F9, - 19537: 0x00022491, - 19538: 0x00007F8F, - 19539: 0x00006837, - 19540: 0x00026D25, - 19541: 0x00026DA1, - 19542: 0x00026DEB, - 19543: 0x00006D96, - 19544: 0x00006D5C, - 19545: 0x00006E7C, - 19546: 0x00006F04, - 19547: 0x0002497F, - 19548: 0x00024085, - 19549: 0x00026E72, - 19550: 0x00008533, - 19551: 0x00026F74, - 19552: 0x000051C7, - 19553: 0x00006C9C, - 19554: 0x00006E1D, - 19555: 0x0000842E, - 19556: 0x00028B21, - 19557: 0x00006E2F, - 19558: 0x00023E2F, - 19559: 0x00007453, - 19560: 0x00023F82, - 19561: 0x000079CC, - 19562: 0x00006E4F, - 19563: 0x00005A91, - 19564: 0x0002304B, - 19565: 0x00006FF8, - 19566: 0x0000370D, - 19567: 0x00006F9D, - 19568: 0x00023E30, - 19569: 0x00006EFA, - 19570: 0x00021497, - 19571: 0x0002403D, - 19572: 0x00004555, - 19573: 0x000093F0, - 19574: 0x00006F44, - 19575: 0x00006F5C, - 19576: 0x00003D4E, - 19577: 0x00006F74, - 19578: 0x00029170, - 19579: 0x00003D3B, - 19580: 0x00006F9F, - 19581: 0x00024144, - 19582: 0x00006FD3, - 19583: 0x00024091, - 19584: 0x00024155, - 19585: 0x00024039, - 19586: 0x00023FF0, - 19587: 0x00023FB4, - 19588: 0x0002413F, - 19589: 0x000051DF, - 19590: 0x00024156, - 19591: 0x00024157, - 19592: 0x00024140, - 19593: 0x000261DD, - 19594: 0x0000704B, - 19595: 0x0000707E, - 19596: 0x000070A7, - 19597: 0x00007081, - 19598: 0x000070CC, - 19599: 0x000070D5, - 19600: 0x000070D6, - 19601: 0x000070DF, - 19602: 0x00004104, - 19603: 0x00003DE8, - 19604: 0x000071B4, - 19605: 0x00007196, - 19606: 0x00024277, - 19607: 0x0000712B, - 19608: 0x00007145, - 19609: 0x00005A88, - 19610: 0x0000714A, - 19611: 0x0000716E, - 19612: 0x00005C9C, - 19613: 0x00024365, - 19614: 0x0000714F, - 19615: 0x00009362, - 19616: 0x000242C1, - 19617: 0x0000712C, - 19618: 0x0002445A, - 19619: 0x00024A27, - 19620: 0x00024A22, - 19621: 0x000071BA, - 19622: 0x00028BE8, - 19623: 0x000070BD, - 19624: 0x0000720E, - 19625: 0x00009442, - 19626: 0x00007215, - 19627: 0x00005911, - 19628: 0x00009443, - 19629: 0x00007224, - 19630: 0x00009341, - 19631: 0x00025605, - 19632: 0x0000722E, - 19633: 0x00007240, - 19634: 0x00024974, - 19635: 0x000068BD, - 19636: 0x00007255, - 19637: 0x00007257, - 19638: 0x00003E55, - 19639: 0x00023044, - 19640: 0x0000680D, - 19641: 0x00006F3D, - 19642: 0x00007282, - 19643: 0x0000732A, - 19644: 0x0000732B, - 19645: 0x00024823, - 19646: 0x0002882B, - 19647: 0x000048ED, - 19648: 0x00028804, - 19649: 0x00007328, - 19650: 0x0000732E, - 19651: 0x000073CF, - 19652: 0x000073AA, - 19653: 0x00020C3A, - 19654: 0x00026A2E, - 19655: 0x000073C9, - 19656: 0x00007449, - 19657: 0x000241E2, - 19658: 0x000216E7, - 19659: 0x00024A24, - 19660: 0x00006623, - 19661: 0x000036C5, - 19662: 0x000249B7, - 19663: 0x0002498D, - 19664: 0x000249FB, - 19665: 0x000073F7, - 19666: 0x00007415, - 19667: 0x00006903, - 19668: 0x00024A26, - 19669: 0x00007439, - 19670: 0x000205C3, - 19671: 0x00003ED7, - 19672: 0x0000745C, - 19673: 0x000228AD, - 19674: 0x00007460, - 19675: 0x00028EB2, - 19676: 0x00007447, - 19677: 0x000073E4, - 19678: 0x00007476, - 19679: 0x000083B9, - 19680: 0x0000746C, - 19681: 0x00003730, - 19682: 0x00007474, - 19683: 0x000093F1, - 19684: 0x00006A2C, - 19685: 0x00007482, - 19686: 0x00004953, - 19687: 0x00024A8C, - 19688: 0x0002415F, - 19689: 0x00024A79, - 19690: 0x00028B8F, - 19691: 0x00005B46, - 19692: 0x00028C03, - 19693: 0x0002189E, - 19694: 0x000074C8, - 19695: 0x00021988, - 19696: 0x0000750E, - 19697: 0x000074E9, - 19698: 0x0000751E, - 19699: 0x00028ED9, - 19700: 0x00021A4B, - 19701: 0x00005BD7, - 19702: 0x00028EAC, - 19703: 0x00009385, - 19704: 0x0000754D, - 19705: 0x0000754A, - 19706: 0x00007567, - 19707: 0x0000756E, - 19708: 0x00024F82, - 19709: 0x00003F04, - 19710: 0x00024D13, - 19711: 0x0000758E, - 19712: 0x0000745D, - 19713: 0x0000759E, - 19714: 0x000075B4, - 19715: 0x00007602, - 19716: 0x0000762C, - 19717: 0x00007651, - 19718: 0x0000764F, - 19719: 0x0000766F, - 19720: 0x00007676, - 19721: 0x000263F5, - 19722: 0x00007690, - 19723: 0x000081EF, - 19724: 0x000037F8, - 19725: 0x00026911, - 19726: 0x0002690E, - 19727: 0x000076A1, - 19728: 0x000076A5, - 19729: 0x000076B7, - 19730: 0x000076CC, - 19731: 0x00026F9F, - 19732: 0x00008462, - 19733: 0x0002509D, - 19734: 0x0002517D, - 19735: 0x00021E1C, - 19736: 0x0000771E, - 19737: 0x00007726, - 19738: 0x00007740, - 19739: 0x000064AF, - 19740: 0x00025220, - 19741: 0x00007758, - 19742: 0x000232AC, - 19743: 0x000077AF, - 19744: 0x00028964, - 19745: 0x00028968, - 19746: 0x000216C1, - 19747: 0x000077F4, - 19748: 0x00007809, - 19749: 0x00021376, - 19750: 0x00024A12, - 19751: 0x000068CA, - 19752: 0x000078AF, - 19753: 0x000078C7, - 19754: 0x000078D3, - 19755: 0x000096A5, - 19756: 0x0000792E, - 19757: 0x000255E0, - 19758: 0x000078D7, - 19759: 0x00007934, - 19760: 0x000078B1, - 19761: 0x0002760C, - 19762: 0x00008FB8, - 19763: 0x00008884, - 19764: 0x00028B2B, - 19765: 0x00026083, - 19766: 0x0002261C, - 19767: 0x00007986, - 19768: 0x00008900, - 19769: 0x00006902, - 19770: 0x00007980, - 19771: 0x00025857, - 19772: 0x0000799D, - 19773: 0x00027B39, - 19774: 0x0000793C, - 19775: 0x000079A9, - 19776: 0x00006E2A, - 19777: 0x00027126, - 19778: 0x00003EA8, - 19779: 0x000079C6, - 19780: 0x0002910D, - 19781: 0x000079D4, -} - -const numEncodeTables = 8 - -// encodeX are the encoding tables from Unicode to Big5 code, -// sorted by decreasing length. -// encode0: 42633 entries for runes in [131105, 173738). -// encode1: 29004 entries for runes in [ 11904, 40908). -// encode2: 2176 entries for runes in [ 7870, 10046). -// encode3: 939 entries for runes in [ 167, 1106). -// encode4: 446 entries for runes in [ 65072, 65518). -// encode5: 432 entries for runes in [194597, 195029). -// encode6: 263 entries for runes in [ 63751, 64014). -// encode7: 1 entries for runes in [175615, 175616). - -const encode0Low, encode0High = 131105, 173738 - -var encode0 = [...]uint16{ - 131105 - 131105: 0x9C71, - 131134 - 131105: 0x9375, - 131142 - 131105: 0x9376, - 131150 - 131105: 0x9548, - 131176 - 131105: 0x8EC6, - 131206 - 131105: 0x8BC5, - 131207 - 131105: 0x8BFA, - 131210 - 131105: 0xC87C, - 131220 - 131105: 0x9AB4, - 131274 - 131105: 0x884E, - 131275 - 131105: 0x884B, - 131276 - 131105: 0xC87A, - 131277 - 131105: 0x8848, - 131281 - 131105: 0x8847, - 131310 - 131105: 0xA0F6, - 131340 - 131105: 0x8845, - 131342 - 131105: 0x8853, - 131352 - 131105: 0xFCAD, - 131492 - 131105: 0x8CF5, - 131497 - 131105: 0x8AAD, - 131499 - 131105: 0x9272, - 131521 - 131105: 0xFC47, - 131540 - 131105: 0x94DF, - 131570 - 131105: 0x9FD1, - 131588 - 131105: 0xFBCB, - 131596 - 131105: 0x927D, - 131604 - 131105: 0x98A4, - 131641 - 131105: 0x8CF9, - 131675 - 131105: 0x94E7, - 131700 - 131105: 0x90CB, - 131701 - 131105: 0x927B, - 131737 - 131105: 0x94D8, - 131742 - 131105: 0xFC5F, - 131744 - 131105: 0xFA54, - 131767 - 131105: 0x9AB5, - 131775 - 131105: 0x96DA, - 131776 - 131105: 0x9279, - 131813 - 131105: 0xFA74, - 131850 - 131105: 0x9275, - 131877 - 131105: 0x8DFB, - 131905 - 131105: 0x8A49, - 131909 - 131105: 0x92DF, - 131910 - 131105: 0x9B7C, - 131911 - 131105: 0xFA63, - 131966 - 131105: 0xFA60, - 131967 - 131105: 0x926D, - 131968 - 131105: 0xFA62, - 132000 - 131105: 0x9AB6, - 132007 - 131105: 0x976B, - 132021 - 131105: 0xFD6A, - 132041 - 131105: 0xFD54, - 132043 - 131105: 0x9273, - 132085 - 131105: 0x97D8, - 132092 - 131105: 0x9FBB, - 132115 - 131105: 0x9342, - 132116 - 131105: 0x9276, - 132127 - 131105: 0xFA65, - 132197 - 131105: 0x926C, - 132231 - 131105: 0xFA6E, - 132238 - 131105: 0x9EE0, - 132241 - 131105: 0x92C0, - 132242 - 131105: 0x92BF, - 132259 - 131105: 0x92BE, - 132311 - 131105: 0x9ABA, - 132348 - 131105: 0x8AB3, - 132350 - 131105: 0x9775, - 132423 - 131105: 0xFA40, - 132494 - 131105: 0xFA76, - 132517 - 131105: 0xFBD0, - 132531 - 131105: 0xFA7B, - 132547 - 131105: 0xFE6D, - 132554 - 131105: 0x9BB3, - 132560 - 131105: 0x89CC, - 132565 - 131105: 0x9ABE, - 132575 - 131105: 0xFA42, - 132576 - 131105: 0x92BC, - 132587 - 131105: 0x945C, - 132625 - 131105: 0x9BB5, - 132629 - 131105: 0x9ABF, - 132633 - 131105: 0x98A7, - 132634 - 131105: 0x97A4, - 132656 - 131105: 0x90FD, - 132694 - 131105: 0xFC7B, - 132726 - 131105: 0x9AC0, - 132878 - 131105: 0x92C3, - 132913 - 131105: 0x8AAA, - 132985 - 131105: 0x9BD0, - 133164 - 131105: 0x9550, - 133235 - 131105: 0x92C6, - 133333 - 131105: 0x98A6, - 133398 - 131105: 0x9546, - 133411 - 131105: 0xFD63, - 133460 - 131105: 0xFAC2, - 133497 - 131105: 0x9EC3, - 133607 - 131105: 0x89B2, - 133649 - 131105: 0x9C66, - 133712 - 131105: 0x9053, - 133743 - 131105: 0x8C62, - 133770 - 131105: 0x87A8, - 133812 - 131105: 0x97C1, - 133826 - 131105: 0x9AC4, - 133837 - 131105: 0x9AC5, - 133901 - 131105: 0x8EEF, - 134031 - 131105: 0xFAE9, - 134047 - 131105: 0x8D40, - 134056 - 131105: 0x9262, - 134057 - 131105: 0x8AF7, - 134079 - 131105: 0x9AC6, - 134086 - 131105: 0x92E1, - 134091 - 131105: 0x9AC9, - 134114 - 131105: 0xFAC6, - 134123 - 131105: 0x97A5, - 134139 - 131105: 0x9ACB, - 134143 - 131105: 0xFA72, - 134155 - 131105: 0x8A5E, - 134157 - 131105: 0x94E0, - 134176 - 131105: 0x92CC, - 134196 - 131105: 0x8AE5, - 134202 - 131105: 0xFE5C, - 134203 - 131105: 0x9ACC, - 134209 - 131105: 0x9DF9, - 134210 - 131105: 0x8A43, - 134211 - 131105: 0x8AA6, - 134227 - 131105: 0x9ACD, - 134245 - 131105: 0x9ACE, - 134263 - 131105: 0xFAEE, - 134264 - 131105: 0x9BCC, - 134268 - 131105: 0x9ACF, - 134285 - 131105: 0x9AD1, - 134294 - 131105: 0x9DFA, - 134300 - 131105: 0x9D7C, - 134325 - 131105: 0x9AD3, - 134328 - 131105: 0x97A6, - 134351 - 131105: 0x995F, - 134355 - 131105: 0xFBF6, - 134356 - 131105: 0x9FC5, - 134357 - 131105: 0x8A59, - 134358 - 131105: 0x8B6B, - 134365 - 131105: 0x9AD4, - 134381 - 131105: 0x9AD5, - 134399 - 131105: 0x97A2, - 134421 - 131105: 0x8A44, - 134440 - 131105: 0x9F4A, - 134449 - 131105: 0x90A1, - 134450 - 131105: 0xFDA4, - 134470 - 131105: 0x8A64, - 134471 - 131105: 0x8AF2, - 134472 - 131105: 0x8AF8, - 134473 - 131105: 0x9DD8, - 134476 - 131105: 0x94D6, - 134477 - 131105: 0xFAFE, - 134478 - 131105: 0xFBA7, - 134511 - 131105: 0x9AD6, - 134513 - 131105: 0x9F4D, - 134516 - 131105: 0xFAF6, - 134524 - 131105: 0x8A57, - 134526 - 131105: 0x8B43, - 134527 - 131105: 0x8B44, - 134550 - 131105: 0x8AB6, - 134556 - 131105: 0x8AC0, - 134567 - 131105: 0x9E54, - 134578 - 131105: 0x9AD7, - 134600 - 131105: 0x9AD8, - 134660 - 131105: 0x9ADC, - 134665 - 131105: 0x8ACA, - 134666 - 131105: 0x9EA8, - 134669 - 131105: 0x9263, - 134670 - 131105: 0x9ADD, - 134671 - 131105: 0x8B65, - 134672 - 131105: 0x8B6F, - 134673 - 131105: 0x8B7E, - 134678 - 131105: 0x8F43, - 134685 - 131105: 0x92D0, - 134732 - 131105: 0x8AF4, - 134765 - 131105: 0x9DBE, - 134771 - 131105: 0x9AE1, - 134773 - 131105: 0xFCDE, - 134774 - 131105: 0x9DFD, - 134775 - 131105: 0x8B66, - 134776 - 131105: 0x8B70, - 134777 - 131105: 0x8B75, - 134778 - 131105: 0x8AE4, - 134779 - 131105: 0x8BA4, - 134796 - 131105: 0x8AED, - 134806 - 131105: 0x8A5D, - 134808 - 131105: 0x8B48, - 134813 - 131105: 0x9DED, - 134818 - 131105: 0x9E40, - 134826 - 131105: 0x8AEF, - 134827 - 131105: 0x8AF6, - 134828 - 131105: 0x9E76, - 134838 - 131105: 0x9EE3, - 134871 - 131105: 0x9ADE, - 134872 - 131105: 0x8DFE, - 134877 - 131105: 0xFAFC, - 134904 - 131105: 0x9CB1, - 134905 - 131105: 0x9E77, - 134906 - 131105: 0x8B64, - 134907 - 131105: 0x8B67, - 134941 - 131105: 0x974B, - 134950 - 131105: 0x9653, - 134957 - 131105: 0x9AE0, - 134958 - 131105: 0x8B4A, - 134960 - 131105: 0x8AF1, - 134961 - 131105: 0x8AD7, - 134971 - 131105: 0xA0AB, - 134988 - 131105: 0x8AB5, - 135012 - 131105: 0x8A5F, - 135053 - 131105: 0x8AEE, - 135056 - 131105: 0x9ADF, - 135085 - 131105: 0x8AFE, - 135092 - 131105: 0x8A58, - 135093 - 131105: 0x8BA3, - 135094 - 131105: 0x8BA7, - 135100 - 131105: 0x9AE3, - 135135 - 131105: 0x9261, - 135146 - 131105: 0x9DD7, - 135147 - 131105: 0x9E7D, - 135148 - 131105: 0x9EA7, - 135149 - 131105: 0x9EAB, - 135188 - 131105: 0x9042, - 135197 - 131105: 0x8B79, - 135198 - 131105: 0x8B7A, - 135247 - 131105: 0x9AE6, - 135260 - 131105: 0x9AE5, - 135279 - 131105: 0x8A7E, - 135285 - 131105: 0x9E44, - 135286 - 131105: 0x9AE7, - 135287 - 131105: 0x8A7C, - 135288 - 131105: 0x8B71, - 135291 - 131105: 0x9AE9, - 135304 - 131105: 0x9AEA, - 135318 - 131105: 0x9AEB, - 135325 - 131105: 0x8ABD, - 135348 - 131105: 0xFB4E, - 135359 - 131105: 0x9AED, - 135360 - 131105: 0x8AF9, - 135361 - 131105: 0x9E63, - 135367 - 131105: 0x8B49, - 135368 - 131105: 0x8ACE, - 135369 - 131105: 0x8B6E, - 135375 - 131105: 0x8AE8, - 135379 - 131105: 0x9AEE, - 135396 - 131105: 0x92CE, - 135412 - 131105: 0x8A5A, - 135413 - 131105: 0x8B7B, - 135414 - 131105: 0x8B7C, - 135471 - 131105: 0x9AEF, - 135483 - 131105: 0x9AF0, - 135485 - 131105: 0x8AFA, - 135493 - 131105: 0x8941, - 135496 - 131105: 0x8B72, - 135503 - 131105: 0x8AF3, - 135552 - 131105: 0x8BA8, - 135559 - 131105: 0x9EAE, - 135641 - 131105: 0x9E72, - 135740 - 131105: 0xFB73, - 135759 - 131105: 0xFB5F, - 135804 - 131105: 0x90BA, - 135848 - 131105: 0x91FE, - 135849 - 131105: 0x9EF6, - 135856 - 131105: 0x97ED, - 135907 - 131105: 0x9AF3, - 135934 - 131105: 0xA0EE, - 135938 - 131105: 0x967C, - 135939 - 131105: 0x9345, - 135940 - 131105: 0x986E, - 135941 - 131105: 0xFA56, - 135990 - 131105: 0x9AF5, - 135994 - 131105: 0xFC4B, - 136053 - 131105: 0x9AF4, - 136054 - 131105: 0xFEDE, - 136078 - 131105: 0xFCB7, - 136088 - 131105: 0x97F1, - 136092 - 131105: 0x97C7, - 136133 - 131105: 0x9CCB, - 136134 - 131105: 0x9240, - 136173 - 131105: 0x9CE8, - 136190 - 131105: 0x91FD, - 136211 - 131105: 0x974E, - 136214 - 131105: 0xFB68, - 136228 - 131105: 0x976C, - 136255 - 131105: 0x8CC2, - 136274 - 131105: 0x97E8, - 136276 - 131105: 0xFB6A, - 136277 - 131105: 0x8B74, - 136330 - 131105: 0x8EE7, - 136343 - 131105: 0xFDC8, - 136374 - 131105: 0x9241, - 136424 - 131105: 0x96A1, - 136445 - 131105: 0x8EF3, - 136567 - 131105: 0x9AF7, - 136578 - 131105: 0x8FA6, - 136598 - 131105: 0xFAD6, - 136714 - 131105: 0x9CC7, - 136723 - 131105: 0xFAD7, - 136729 - 131105: 0x9AF8, - 136766 - 131105: 0xFBA1, - 136801 - 131105: 0x8EC5, - 136850 - 131105: 0xFBA4, - 136888 - 131105: 0xFBC2, - 136890 - 131105: 0x9AC1, - 136896 - 131105: 0x91FA, - 136897 - 131105: 0xFEDB, - 136898 - 131105: 0x97AB, - 136915 - 131105: 0x9147, - 136917 - 131105: 0xFBB1, - 136927 - 131105: 0x8FEA, - 136934 - 131105: 0x94D2, - 136935 - 131105: 0xFE61, - 136936 - 131105: 0xFACE, - 136954 - 131105: 0x92ED, - 136955 - 131105: 0x91F3, - 136956 - 131105: 0x93C6, - 136958 - 131105: 0x935A, - 136973 - 131105: 0xFAFB, - 136976 - 131105: 0x92EF, - 136998 - 131105: 0xFAC8, - 137018 - 131105: 0x9847, - 137019 - 131105: 0x9366, - 137020 - 131105: 0x9855, - 137047 - 131105: 0x96E6, - 137068 - 131105: 0x9F43, - 137069 - 131105: 0x9FAA, - 137070 - 131105: 0x94DA, - 137071 - 131105: 0x92EE, - 137072 - 131105: 0xFCAF, - 137073 - 131105: 0xFBFB, - 137075 - 131105: 0x8EF9, - 137076 - 131105: 0x91F6, - 137131 - 131105: 0x9364, - 137136 - 131105: 0x94F5, - 137137 - 131105: 0x9CB6, - 137138 - 131105: 0xFBAD, - 137139 - 131105: 0x984E, - 137140 - 131105: 0x8F44, - 137141 - 131105: 0x96FD, - 137155 - 131105: 0x9AF9, - 137159 - 131105: 0x9AFA, - 137177 - 131105: 0x9769, - 137178 - 131105: 0x95D4, - 137179 - 131105: 0x984B, - 137180 - 131105: 0xFBAA, - 137183 - 131105: 0x987C, - 137199 - 131105: 0x91EA, - 137205 - 131105: 0x9DAF, - 137206 - 131105: 0x9DC5, - 137208 - 131105: 0x91F1, - 137209 - 131105: 0x8EB1, - 137210 - 131105: 0x97A9, - 137211 - 131105: 0xFBAC, - 137212 - 131105: 0xFCB8, - 137248 - 131105: 0x9CB9, - 137256 - 131105: 0xFBB0, - 137257 - 131105: 0xFCD2, - 137258 - 131105: 0x93CB, - 137261 - 131105: 0x9AFD, - 137273 - 131105: 0x91F4, - 137274 - 131105: 0x8BAC, - 137275 - 131105: 0xA055, - 137280 - 131105: 0x9574, - 137285 - 131105: 0x95BE, - 137298 - 131105: 0x97AD, - 137310 - 131105: 0x8EE9, - 137313 - 131105: 0x92F8, - 137314 - 131105: 0x97BE, - 137315 - 131105: 0x916C, - 137316 - 131105: 0x94AA, - 137335 - 131105: 0xFC63, - 137339 - 131105: 0x9DC6, - 137347 - 131105: 0x97B5, - 137348 - 131105: 0x92B8, - 137349 - 131105: 0x91EF, - 137374 - 131105: 0xFEA6, - 137375 - 131105: 0x9760, - 137376 - 131105: 0x9358, - 137377 - 131105: 0x9576, - 137378 - 131105: 0x8FAC, - 137406 - 131105: 0x91EC, - 137407 - 131105: 0x97B4, - 137425 - 131105: 0x91F7, - 137430 - 131105: 0x974A, - 137431 - 131105: 0xFB49, - 137432 - 131105: 0x9578, - 137433 - 131105: 0x93BC, - 137466 - 131105: 0x91D6, - 137475 - 131105: 0x9355, - 137476 - 131105: 0x9356, - 137477 - 131105: 0x9851, - 137488 - 131105: 0x8FF8, - 137489 - 131105: 0xFBC0, - 137490 - 131105: 0x93F2, - 137493 - 131105: 0x90D0, - 137500 - 131105: 0x9C44, - 137506 - 131105: 0x9255, - 137511 - 131105: 0x9363, - 137531 - 131105: 0x91A5, - 137540 - 131105: 0xA0ED, - 137560 - 131105: 0xFD6B, - 137578 - 131105: 0x9AFE, - 137596 - 131105: 0x9351, - 137600 - 131105: 0x8C57, - 137603 - 131105: 0xFA78, - 137608 - 131105: 0xFEA8, - 137622 - 131105: 0x9350, - 137691 - 131105: 0xFA4C, - 137715 - 131105: 0x92F7, - 137773 - 131105: 0x9B40, - 137780 - 131105: 0xFBCE, - 137797 - 131105: 0x9B41, - 137803 - 131105: 0xFEAD, - 137827 - 131105: 0x8761, - 138052 - 131105: 0xFBD5, - 138177 - 131105: 0x8BC2, - 138178 - 131105: 0x9A7C, - 138282 - 131105: 0x9B42, - 138352 - 131105: 0x9B43, - 138402 - 131105: 0x9E79, - 138405 - 131105: 0xFBD9, - 138412 - 131105: 0x9B44, - 138566 - 131105: 0xA0A7, - 138579 - 131105: 0x877B, - 138590 - 131105: 0x876E, - 138640 - 131105: 0x9BF3, - 138678 - 131105: 0x8C79, - 138682 - 131105: 0x935E, - 138698 - 131105: 0x89CB, - 138705 - 131105: 0x9F53, - 138731 - 131105: 0x93D7, - 138745 - 131105: 0xFBE1, - 138780 - 131105: 0xFED0, - 138787 - 131105: 0x8CF1, - 138807 - 131105: 0xFBE2, - 138813 - 131105: 0xFCE3, - 138889 - 131105: 0x9074, - 138916 - 131105: 0xFBE6, - 138920 - 131105: 0x9BB7, - 138952 - 131105: 0x9B45, - 138965 - 131105: 0x9B47, - 139023 - 131105: 0x9F50, - 139029 - 131105: 0x9B48, - 139114 - 131105: 0xFC5B, - 139166 - 131105: 0x98A9, - 139169 - 131105: 0x9CFD, - 139240 - 131105: 0x884C, - 139333 - 131105: 0x9B4B, - 139337 - 131105: 0xFBEC, - 139390 - 131105: 0x8C69, - 139418 - 131105: 0x9BA8, - 139463 - 131105: 0x8AD5, - 139516 - 131105: 0xFA73, - 139562 - 131105: 0xFD59, - 139611 - 131105: 0x91A2, - 139635 - 131105: 0xFBED, - 139642 - 131105: 0x9CA9, - 139681 - 131105: 0x8AA8, - 139713 - 131105: 0x8D42, - 139715 - 131105: 0x9BC3, - 139784 - 131105: 0x8AE1, - 139900 - 131105: 0x9B4E, - 140065 - 131105: 0x95D0, - 140069 - 131105: 0x905F, - 140221 - 131105: 0x97EE, - 140240 - 131105: 0xFC4E, - 140247 - 131105: 0x9B4F, - 140282 - 131105: 0x9B50, - 140389 - 131105: 0x9EC6, - 140401 - 131105: 0xFC50, - 140427 - 131105: 0xFD73, - 140433 - 131105: 0xFDA7, - 140464 - 131105: 0x9DA2, - 140476 - 131105: 0x87D1, - 140481 - 131105: 0x87D3, - 140489 - 131105: 0x87D4, - 140492 - 131105: 0x87D5, - 140525 - 131105: 0xFA58, - 140563 - 131105: 0xFA5E, - 140571 - 131105: 0xA059, - 140592 - 131105: 0xFA75, - 140628 - 131105: 0xFBBE, - 140685 - 131105: 0x9CA2, - 140719 - 131105: 0x9370, - 140734 - 131105: 0x9371, - 140827 - 131105: 0x9377, - 140828 - 131105: 0xFEEF, - 140843 - 131105: 0x936D, - 140904 - 131105: 0xFC5D, - 140922 - 131105: 0x90B8, - 140950 - 131105: 0x8AFC, - 140952 - 131105: 0xFB41, - 141044 - 131105: 0x9E6B, - 141045 - 131105: 0x94E3, - 141046 - 131105: 0x8EE2, - 141074 - 131105: 0x8C7D, - 141076 - 131105: 0x8ED7, - 141083 - 131105: 0x9C4D, - 141087 - 131105: 0x96A3, - 141098 - 131105: 0x9B51, - 141173 - 131105: 0x8AC3, - 141185 - 131105: 0x96AA, - 141206 - 131105: 0x8CE2, - 141236 - 131105: 0xFC68, - 141237 - 131105: 0x8B6D, - 141261 - 131105: 0xFD67, - 141315 - 131105: 0x8AE9, - 141407 - 131105: 0xFCA1, - 141408 - 131105: 0x936C, - 141425 - 131105: 0x9B52, - 141485 - 131105: 0xFE70, - 141505 - 131105: 0xFCA8, - 141559 - 131105: 0xFCE9, - 141606 - 131105: 0x9CB4, - 141625 - 131105: 0x8AEA, - 141647 - 131105: 0x9B53, - 141671 - 131105: 0x9B55, - 141675 - 131105: 0x96AB, - 141696 - 131105: 0xFCA7, - 141715 - 131105: 0x9B56, - 141926 - 131105: 0x8ABC, - 142031 - 131105: 0x8ACB, - 142037 - 131105: 0x9B57, - 142054 - 131105: 0x89CD, - 142056 - 131105: 0x9B59, - 142094 - 131105: 0x9B5B, - 142114 - 131105: 0x93A5, - 142143 - 131105: 0x9B5D, - 142147 - 131105: 0x9E4F, - 142186 - 131105: 0x93A3, - 142282 - 131105: 0x8A7B, - 142286 - 131105: 0x8B42, - 142374 - 131105: 0x9750, - 142375 - 131105: 0x8FB3, - 142392 - 131105: 0x8A50, - 142412 - 131105: 0x9B60, - 142417 - 131105: 0x8B45, - 142421 - 131105: 0x8B46, - 142434 - 131105: 0x9DFE, - 142472 - 131105: 0x9B62, - 142491 - 131105: 0x937B, - 142497 - 131105: 0x93B1, - 142505 - 131105: 0x8A60, - 142514 - 131105: 0x8AD8, - 142519 - 131105: 0x9B63, - 142530 - 131105: 0x8A69, - 142534 - 131105: 0x8A47, - 142537 - 131105: 0x8ACC, - 142599 - 131105: 0x937C, - 142600 - 131105: 0x9B65, - 142610 - 131105: 0x9B66, - 142660 - 131105: 0x8A72, - 142668 - 131105: 0x8A7A, - 142695 - 131105: 0x93AF, - 142733 - 131105: 0x8AB0, - 142741 - 131105: 0x9B68, - 142752 - 131105: 0x9EA3, - 142755 - 131105: 0xFAEC, - 142756 - 131105: 0x8B77, - 142775 - 131105: 0x9B67, - 142830 - 131105: 0x8B59, - 142861 - 131105: 0xFCB1, - 142902 - 131105: 0xFCBB, - 142914 - 131105: 0x9B69, - 142968 - 131105: 0x93A8, - 142987 - 131105: 0x8AE0, - 143027 - 131105: 0x9E51, - 143087 - 131105: 0x8F5F, - 143220 - 131105: 0x9B6A, - 143308 - 131105: 0x9B6B, - 143331 - 131105: 0x97EC, - 143411 - 131105: 0x9B6C, - 143428 - 131105: 0xFE4E, - 143435 - 131105: 0xFDC2, - 143462 - 131105: 0x9B6D, - 143485 - 131105: 0x9167, - 143486 - 131105: 0xFCCC, - 143502 - 131105: 0x93B6, - 143543 - 131105: 0x90E4, - 143548 - 131105: 0x90E5, - 143578 - 131105: 0x9EF2, - 143619 - 131105: 0x93CA, - 143677 - 131105: 0x8BBC, - 143741 - 131105: 0x8F46, - 143746 - 131105: 0x93CF, - 143780 - 131105: 0xFCDB, - 143781 - 131105: 0xFCDC, - 143795 - 131105: 0x93C0, - 143816 - 131105: 0xFCE6, - 143817 - 131105: 0x96E7, - 143850 - 131105: 0x87A7, - 143863 - 131105: 0xFCD8, - 143864 - 131105: 0xFCD9, - 143865 - 131105: 0xFDA6, - 143887 - 131105: 0x93CE, - 143909 - 131105: 0x95F1, - 143919 - 131105: 0x9CE9, - 143921 - 131105: 0xFCE4, - 143922 - 131105: 0x94AF, - 143923 - 131105: 0xFA77, - 143924 - 131105: 0x93CC, - 143958 - 131105: 0x8CE1, - 143966 - 131105: 0x87A9, - 143970 - 131105: 0x905A, - 144001 - 131105: 0x8C54, - 144009 - 131105: 0x93BF, - 144010 - 131105: 0xFB51, - 144043 - 131105: 0x93B9, - 144044 - 131105: 0xFED7, - 144045 - 131105: 0x93B7, - 144082 - 131105: 0x93D9, - 144096 - 131105: 0x93BB, - 144097 - 131105: 0x93DA, - 144128 - 131105: 0x98A3, - 144138 - 131105: 0x90D1, - 144159 - 131105: 0x9B6E, - 144308 - 131105: 0xFA70, - 144332 - 131105: 0x9BEB, - 144350 - 131105: 0x9B6F, - 144358 - 131105: 0xFCFC, - 144372 - 131105: 0x8B40, - 144373 - 131105: 0xA07B, - 144377 - 131105: 0x8CA1, - 144378 - 131105: 0x97F7, - 144382 - 131105: 0x93E2, - 144384 - 131105: 0xFCD6, - 144447 - 131105: 0x9559, - 144464 - 131105: 0x93A6, - 144495 - 131105: 0xFD40, - 144498 - 131105: 0x935F, - 144613 - 131105: 0x97F2, - 144665 - 131105: 0x9C76, - 144688 - 131105: 0x8EF8, - 144721 - 131105: 0x8CEB, - 144730 - 131105: 0x8F47, - 144743 - 131105: 0x9B74, - 144789 - 131105: 0x92B4, - 144793 - 131105: 0x91ED, - 144796 - 131105: 0x96D2, - 144827 - 131105: 0x87D8, - 144845 - 131105: 0xFD46, - 144846 - 131105: 0x8F4F, - 144847 - 131105: 0x9549, - 144883 - 131105: 0x9B75, - 144896 - 131105: 0xFA5C, - 144919 - 131105: 0x8751, - 144922 - 131105: 0x9B79, - 144956 - 131105: 0xFD4B, - 144960 - 131105: 0x96D3, - 144985 - 131105: 0xFD58, - 144991 - 131105: 0x945F, - 145015 - 131105: 0xA0F5, - 145038 - 131105: 0x87C7, - 145054 - 131105: 0x877C, - 145062 - 131105: 0x9243, - 145069 - 131105: 0x97FA, - 145082 - 131105: 0x9DD9, - 145119 - 131105: 0x97F4, - 145134 - 131105: 0x924D, - 145155 - 131105: 0xFD5B, - 145174 - 131105: 0x9B7A, - 145184 - 131105: 0x9ED5, - 145197 - 131105: 0xFAAE, - 145199 - 131105: 0x9CC9, - 145215 - 131105: 0x9258, - 145254 - 131105: 0x8EC8, - 145281 - 131105: 0x94B4, - 145314 - 131105: 0x93E1, - 145340 - 131105: 0x93DF, - 145346 - 131105: 0xFCF0, - 145365 - 131105: 0x93EC, - 145366 - 131105: 0x97F6, - 145367 - 131105: 0x96CF, - 145466 - 131105: 0x93DE, - 145858 - 131105: 0x8ACF, - 146087 - 131105: 0x9BA2, - 146139 - 131105: 0xFD69, - 146158 - 131105: 0x9352, - 146170 - 131105: 0x98A2, - 146202 - 131105: 0x8CE7, - 146266 - 131105: 0xFD6E, - 146531 - 131105: 0x8CA4, - 146585 - 131105: 0xFA7C, - 146586 - 131105: 0x93FA, - 146587 - 131105: 0x907C, - 146613 - 131105: 0x8F67, - 146615 - 131105: 0x9DB7, - 146631 - 131105: 0xA0E9, - 146632 - 131105: 0xFA4E, - 146633 - 131105: 0xFDA1, - 146684 - 131105: 0x9E74, - 146685 - 131105: 0x9FBF, - 146686 - 131105: 0x9ECB, - 146687 - 131105: 0x9BB9, - 146752 - 131105: 0x9DD4, - 146779 - 131105: 0x97B9, - 146814 - 131105: 0x8EF1, - 146831 - 131105: 0x957B, - 146870 - 131105: 0x9ED2, - 146871 - 131105: 0x9753, - 146872 - 131105: 0x96A4, - 146873 - 131105: 0x8FBE, - 146874 - 131105: 0x94D9, - 146875 - 131105: 0x9058, - 146876 - 131105: 0xFD79, - 146877 - 131105: 0xFD7B, - 146915 - 131105: 0x8EDA, - 146936 - 131105: 0x8EFA, - 146950 - 131105: 0x8762, - 146961 - 131105: 0x9BA5, - 146988 - 131105: 0x9ED9, - 146989 - 131105: 0x97D4, - 146990 - 131105: 0x90BB, - 146991 - 131105: 0xFDBC, - 146992 - 131105: 0xFDC6, - 146993 - 131105: 0x9248, - 147001 - 131105: 0x92B5, - 147080 - 131105: 0x9DC1, - 147081 - 131105: 0x92B9, - 147082 - 131105: 0x92A6, - 147083 - 131105: 0x8F4B, - 147129 - 131105: 0x9BA6, - 147135 - 131105: 0x92B6, - 147159 - 131105: 0x8E40, - 147191 - 131105: 0x9ED8, - 147192 - 131105: 0x945E, - 147193 - 131105: 0x985F, - 147194 - 131105: 0x94CE, - 147195 - 131105: 0x924A, - 147196 - 131105: 0xFD70, - 147253 - 131105: 0x9467, - 147265 - 131105: 0x8DEC, - 147274 - 131105: 0x9BD8, - 147297 - 131105: 0x8763, - 147327 - 131105: 0x9448, - 147328 - 131105: 0xFAC1, - 147329 - 131105: 0x9CF7, - 147330 - 131105: 0xFDBE, - 147343 - 131105: 0x8FDA, - 147380 - 131105: 0xFDD9, - 147383 - 131105: 0xFC7E, - 147392 - 131105: 0x93F9, - 147397 - 131105: 0xFA43, - 147435 - 131105: 0xFAEB, - 147436 - 131105: 0xFAC3, - 147437 - 131105: 0x97D3, - 147438 - 131105: 0x95F9, - 147439 - 131105: 0x9C48, - 147440 - 131105: 0xFDD8, - 147473 - 131105: 0xA0D8, - 147513 - 131105: 0xFDD7, - 147514 - 131105: 0xFB4A, - 147515 - 131105: 0x9BAF, - 147516 - 131105: 0x944B, - 147517 - 131105: 0xFDC9, - 147543 - 131105: 0x8EAC, - 147589 - 131105: 0xFDB2, - 147595 - 131105: 0x925A, - 147596 - 131105: 0xFCBD, - 147597 - 131105: 0x92D9, - 147601 - 131105: 0xFDD5, - 147657 - 131105: 0x92DD, - 147681 - 131105: 0x9259, - 147692 - 131105: 0x8CF0, - 147716 - 131105: 0x96BA, - 147727 - 131105: 0x925B, - 147737 - 131105: 0x9BAB, - 147775 - 131105: 0xFDDA, - 147776 - 131105: 0xFDDE, - 147780 - 131105: 0xFDD3, - 147790 - 131105: 0x8C46, - 147797 - 131105: 0xFDD6, - 147798 - 131105: 0xFDDC, - 147799 - 131105: 0xFDDD, - 147804 - 131105: 0x90FE, - 147807 - 131105: 0xFEA1, - 147809 - 131105: 0x87A5, - 147831 - 131105: 0x8BAD, - 147834 - 131105: 0x9CD8, - 147875 - 131105: 0x9E6D, - 147876 - 131105: 0xFD7C, - 147877 - 131105: 0xFB61, - 147884 - 131105: 0x96F8, - 147893 - 131105: 0x96F0, - 147917 - 131105: 0xFCF4, - 147938 - 131105: 0xFE60, - 147964 - 131105: 0x9852, - 147995 - 131105: 0x964F, - 148043 - 131105: 0x916E, - 148054 - 131105: 0x986D, - 148057 - 131105: 0x9864, - 148086 - 131105: 0x9453, - 148087 - 131105: 0xFDEC, - 148088 - 131105: 0xFB78, - 148100 - 131105: 0x95BA, - 148115 - 131105: 0x985D, - 148117 - 131105: 0x92F9, - 148133 - 131105: 0x985A, - 148159 - 131105: 0x8750, - 148161 - 131105: 0xFDF6, - 148169 - 131105: 0x93D0, - 148170 - 131105: 0x9862, - 148206 - 131105: 0x9BAD, - 148218 - 131105: 0x974F, - 148237 - 131105: 0x9BAE, - 148250 - 131105: 0x9452, - 148276 - 131105: 0x9BB0, - 148296 - 131105: 0x91D2, - 148322 - 131105: 0x97EA, - 148323 - 131105: 0xFB6B, - 148324 - 131105: 0x91B1, - 148325 - 131105: 0xFDF3, - 148364 - 131105: 0x92CB, - 148374 - 131105: 0x9BB1, - 148380 - 131105: 0xFCEC, - 148413 - 131105: 0x986B, - 148417 - 131105: 0x9751, - 148457 - 131105: 0x9871, - 148458 - 131105: 0x95EF, - 148466 - 131105: 0x9EF3, - 148472 - 131105: 0x91E8, - 148484 - 131105: 0x9BBA, - 148533 - 131105: 0xFB4C, - 148534 - 131105: 0x926A, - 148570 - 131105: 0xFDF8, - 148571 - 131105: 0x9861, - 148595 - 131105: 0x91E7, - 148615 - 131105: 0x93ED, - 148616 - 131105: 0x9744, - 148665 - 131105: 0x91E1, - 148668 - 131105: 0xFBF5, - 148686 - 131105: 0x9869, - 148691 - 131105: 0x8A62, - 148694 - 131105: 0x9BBB, - 148741 - 131105: 0x8CA8, - 148769 - 131105: 0x9C55, - 148856 - 131105: 0x8E77, - 148936 - 131105: 0x8AB2, - 149016 - 131105: 0x9EBC, - 149034 - 131105: 0x93E6, - 149093 - 131105: 0x93A2, - 149108 - 131105: 0x9BBD, - 149143 - 131105: 0x94B3, - 149204 - 131105: 0x937D, - 149254 - 131105: 0x9E66, - 149285 - 131105: 0x9459, - 149295 - 131105: 0x9BBF, - 149391 - 131105: 0x9458, - 149472 - 131105: 0x9EA5, - 149522 - 131105: 0x9BC7, - 149539 - 131105: 0xFE54, - 149634 - 131105: 0x8E74, - 149737 - 131105: 0x8BD6, - 149744 - 131105: 0x94B6, - 149745 - 131105: 0xFD74, - 149746 - 131105: 0x98C0, - 149747 - 131105: 0x94A5, - 149755 - 131105: 0x9BC8, - 149759 - 131105: 0x95ED, - 149760 - 131105: 0xFD7E, - 149761 - 131105: 0xFBEB, - 149772 - 131105: 0xFD7D, - 149782 - 131105: 0x976F, - 149783 - 131105: 0x9461, - 149785 - 131105: 0x9FC1, - 149807 - 131105: 0x95D7, - 149811 - 131105: 0xFA52, - 149812 - 131105: 0x9C58, - 149822 - 131105: 0x9F68, - 149823 - 131105: 0x9BE7, - 149824 - 131105: 0xFCCE, - 149825 - 131105: 0x96E8, - 149826 - 131105: 0xFA49, - 149827 - 131105: 0x97A1, - 149858 - 131105: 0x954D, - 149859 - 131105: 0x9EF8, - 149876 - 131105: 0xFE49, - 149877 - 131105: 0x91CE, - 149878 - 131105: 0x9771, - 149883 - 131105: 0x8CCF, - 149887 - 131105: 0xFDB1, - 149890 - 131105: 0xFC6E, - 149896 - 131105: 0x9CF2, - 149897 - 131105: 0x93B8, - 149898 - 131105: 0x9043, - 149899 - 131105: 0x9759, - 149900 - 131105: 0x94D7, - 149901 - 131105: 0xFE66, - 149902 - 131105: 0x947D, - 149903 - 131105: 0xFC6F, - 149908 - 131105: 0x9246, - 149924 - 131105: 0xFA6D, - 149927 - 131105: 0x8EF7, - 149929 - 131105: 0xFBB7, - 149931 - 131105: 0x947C, - 149932 - 131105: 0x92CD, - 149933 - 131105: 0x97B2, - 149943 - 131105: 0xFE65, - 149944 - 131105: 0x967E, - 149945 - 131105: 0x9758, - 149946 - 131105: 0x9B77, - 149947 - 131105: 0x91CF, - 149957 - 131105: 0x94A4, - 149968 - 131105: 0x9CAD, - 149978 - 131105: 0x8BAB, - 149982 - 131105: 0x96D5, - 149983 - 131105: 0xFCB3, - 149987 - 131105: 0x93AE, - 149989 - 131105: 0x976D, - 149996 - 131105: 0x9446, - 149997 - 131105: 0x95F7, - 150006 - 131105: 0x9C46, - 150007 - 131105: 0x955B, - 150008 - 131105: 0x91D1, - 150009 - 131105: 0x94F4, - 150011 - 131105: 0xFE67, - 150030 - 131105: 0x92A5, - 150034 - 131105: 0xFEDF, - 150035 - 131105: 0x8CAB, - 150037 - 131105: 0x9BC9, - 150049 - 131105: 0xFCED, - 150050 - 131105: 0xFDFA, - 150051 - 131105: 0xFCC8, - 150052 - 131105: 0xFE62, - 150053 - 131105: 0x91FC, - 150054 - 131105: 0xFE6B, - 150055 - 131105: 0xFDF9, - 150056 - 131105: 0xFCC7, - 150057 - 131105: 0x914E, - 150058 - 131105: 0x9CB8, - 150078 - 131105: 0x9767, - 150082 - 131105: 0x95EE, - 150085 - 131105: 0x9BB2, - 150090 - 131105: 0x9460, - 150094 - 131105: 0x94A2, - 150095 - 131105: 0x9875, - 150096 - 131105: 0x97AC, - 150097 - 131105: 0x91D3, - 150109 - 131105: 0x987B, - 150117 - 131105: 0x8EEB, - 150118 - 131105: 0x976A, - 150119 - 131105: 0x965E, - 150129 - 131105: 0x97EB, - 150135 - 131105: 0x9FF9, - 150136 - 131105: 0x95F8, - 150137 - 131105: 0xFEA2, - 150138 - 131105: 0x8FE6, - 150156 - 131105: 0xFE7E, - 150163 - 131105: 0x9DA4, - 150164 - 131105: 0x9768, - 150165 - 131105: 0x8EEC, - 150166 - 131105: 0x94BD, - 150180 - 131105: 0x945B, - 150181 - 131105: 0x9CF6, - 150182 - 131105: 0xFAA7, - 150183 - 131105: 0x9BD9, - 150193 - 131105: 0xFA5D, - 150194 - 131105: 0x9656, - 150195 - 131105: 0x9762, - 150202 - 131105: 0x94BA, - 150203 - 131105: 0xA04F, - 150204 - 131105: 0x92D8, - 150208 - 131105: 0x9BCB, - 150215 - 131105: 0x94BB, - 150218 - 131105: 0x9D5F, - 150225 - 131105: 0x90CF, - 150239 - 131105: 0x9465, - 150242 - 131105: 0x9F4C, - 150249 - 131105: 0x90D8, - 150287 - 131105: 0x8D5B, - 150382 - 131105: 0x9EBE, - 150517 - 131105: 0xFB6D, - 150537 - 131105: 0x95CA, - 150686 - 131105: 0x9DC2, - 150687 - 131105: 0x97F8, - 150729 - 131105: 0x8FFC, - 150745 - 131105: 0x9473, - 150790 - 131105: 0x9474, - 150803 - 131105: 0xFEB7, - 150968 - 131105: 0x8A4B, - 151018 - 131105: 0x8A55, - 151019 - 131105: 0x8B69, - 151099 - 131105: 0x8ADC, - 151120 - 131105: 0x8B76, - 151205 - 131105: 0x9BCE, - 151207 - 131105: 0x8A68, - 151310 - 131105: 0xA0F8, - 151388 - 131105: 0x98DF, - 151426 - 131105: 0xFEB5, - 151430 - 131105: 0x9BCF, - 151447 - 131105: 0x96FB, - 151450 - 131105: 0x9BFB, - 151465 - 131105: 0x9ECE, - 151480 - 131105: 0x8EE5, - 151490 - 131105: 0x9E7B, - 151596 - 131105: 0x9BD2, - 151634 - 131105: 0x8AA5, - 151709 - 131105: 0xFECE, - 151851 - 131105: 0x8A45, - 151880 - 131105: 0x9DFC, - 151933 - 131105: 0xFECF, - 151934 - 131105: 0x8BA5, - 152013 - 131105: 0x8C4A, - 152035 - 131105: 0x8AEC, - 152038 - 131105: 0xFCE0, - 152039 - 131105: 0x94AD, - 152096 - 131105: 0xFED5, - 152097 - 131105: 0x94AC, - 152144 - 131105: 0xFC5A, - 152217 - 131105: 0x9BD6, - 152263 - 131105: 0x8A6F, - 152280 - 131105: 0x8BA9, - 152334 - 131105: 0x8E5F, - 152337 - 131105: 0x9DCB, - 152339 - 131105: 0xFCE7, - 152601 - 131105: 0x9BD7, - 152613 - 131105: 0x93C8, - 152623 - 131105: 0x91F0, - 152624 - 131105: 0x8FE0, - 152646 - 131105: 0x9BDB, - 152684 - 131105: 0x90ED, - 152686 - 131105: 0x9BDC, - 152730 - 131105: 0x8D53, - 152881 - 131105: 0xA0EC, - 152885 - 131105: 0x98FA, - 152895 - 131105: 0x9BE0, - 152923 - 131105: 0x93C7, - 152924 - 131105: 0x9249, - 152925 - 131105: 0x96E1, - 152926 - 131105: 0x9BE2, - 152930 - 131105: 0x9BE4, - 152933 - 131105: 0x8FE1, - 152934 - 131105: 0x9BE5, - 152961 - 131105: 0x94C0, - 152964 - 131105: 0x93C3, - 152975 - 131105: 0x93C5, - 153017 - 131105: 0x9079, - 153045 - 131105: 0x977B, - 153051 - 131105: 0x907E, - 153056 - 131105: 0xFEE6, - 153093 - 131105: 0xFE46, - 153141 - 131105: 0x9DB8, - 153169 - 131105: 0x9270, - 153219 - 131105: 0x95A8, - 153237 - 131105: 0x8CB0, - 153315 - 131105: 0x94C8, - 153334 - 131105: 0x98B9, - 153350 - 131105: 0x9140, - 153373 - 131105: 0xFCBE, - 153381 - 131105: 0x9157, - 153405 - 131105: 0x8BB2, - 153458 - 131105: 0xFADF, - 153543 - 131105: 0x9BE6, - 153567 - 131105: 0x9643, - 153568 - 131105: 0x8E44, - 153569 - 131105: 0x9C4F, - 153687 - 131105: 0xFEF4, - 153693 - 131105: 0x9BE8, - 153714 - 131105: 0x93DC, - 153800 - 131105: 0x966F, - 153822 - 131105: 0x87A1, - 153825 - 131105: 0x8E4A, - 153859 - 131105: 0x9BED, - 153926 - 131105: 0x92F6, - 153942 - 131105: 0x9DB9, - 154028 - 131105: 0x8E4E, - 154060 - 131105: 0xFBCF, - 154196 - 131105: 0x8760, - 154261 - 131105: 0x9EC2, - 154268 - 131105: 0x94E5, - 154286 - 131105: 0x9BF0, - 154287 - 131105: 0x94E4, - 154345 - 131105: 0x9551, - 154484 - 131105: 0x8BBB, - 154505 - 131105: 0x9BF1, - 154547 - 131105: 0x94F0, - 154548 - 131105: 0x8E64, - 154566 - 131105: 0x94EA, - 154596 - 131105: 0x8F61, - 154600 - 131105: 0x9B64, - 154625 - 131105: 0x8E5B, - 154630 - 131105: 0x9BF2, - 154657 - 131105: 0x9FBE, - 154698 - 131105: 0x9DC9, - 154725 - 131105: 0x8E6C, - 154769 - 131105: 0x8F73, - 154788 - 131105: 0x8CAF, - 154816 - 131105: 0x8F75, - 154817 - 131105: 0x8E71, - 154878 - 131105: 0x8E60, - 154912 - 131105: 0x8E6A, - 154928 - 131105: 0x8C4C, - 154947 - 131105: 0x9552, - 155033 - 131105: 0x87CF, - 155065 - 131105: 0x87C0, - 155150 - 131105: 0x9554, - 155209 - 131105: 0x8AD4, - 155265 - 131105: 0x9DBB, - 155266 - 131105: 0x9543, - 155267 - 131105: 0x92FE, - 155302 - 131105: 0x94F2, - 155324 - 131105: 0x94F1, - 155351 - 131105: 0xA0EA, - 155352 - 131105: 0x9DD2, - 155418 - 131105: 0xA0B1, - 155467 - 131105: 0x91F8, - 155617 - 131105: 0x9462, - 155618 - 131105: 0x9BA4, - 155681 - 131105: 0x877D, - 155689 - 131105: 0x8EAD, - 155720 - 131105: 0x9EAD, - 155748 - 131105: 0x96D0, - 155779 - 131105: 0xFEEE, - 155799 - 131105: 0x8AB4, - 155812 - 131105: 0x9757, - 155813 - 131105: 0x8A77, - 155906 - 131105: 0x9BF7, - 155937 - 131105: 0x8EB5, - 155993 - 131105: 0xA06D, - 155994 - 131105: 0x8EB6, - 155995 - 131105: 0x9756, - 155996 - 131105: 0x9540, - 156077 - 131105: 0xA0F3, - 156078 - 131105: 0x94BE, - 156082 - 131105: 0x9BFA, - 156125 - 131105: 0xFDDF, - 156248 - 131105: 0x9DBC, - 156257 - 131105: 0x94FE, - 156266 - 131105: 0x8BDB, - 156267 - 131105: 0xA0FE, - 156368 - 131105: 0x8EC0, - 156469 - 131105: 0x9F47, - 156491 - 131105: 0x8BDE, - 156492 - 131105: 0xA0FB, - 156497 - 131105: 0x8EC3, - 156606 - 131105: 0x9649, - 156661 - 131105: 0xFEC2, - 156664 - 131105: 0x954C, - 156674 - 131105: 0x9BFD, - 156688 - 131105: 0x90CC, - 156689 - 131105: 0x9C60, - 156690 - 131105: 0x954B, - 156746 - 131105: 0x9BFE, - 156777 - 131105: 0x9C70, - 156804 - 131105: 0x9C43, - 156808 - 131105: 0x9C47, - 156809 - 131105: 0x8ECC, - 156813 - 131105: 0x8E54, - 156824 - 131105: 0x8EE4, - 156946 - 131105: 0x9C49, - 157042 - 131105: 0x8B5E, - 157088 - 131105: 0x955E, - 157101 - 131105: 0x955C, - 157119 - 131105: 0x9C4B, - 157202 - 131105: 0x8BE1, - 157222 - 131105: 0x8ED9, - 157359 - 131105: 0x9DB4, - 157361 - 131105: 0x925F, - 157365 - 131105: 0x9C4C, - 157402 - 131105: 0x8AA1, - 157416 - 131105: 0x8EDB, - 157436 - 131105: 0x9C56, - 157462 - 131105: 0x8AA2, - 157505 - 131105: 0x9754, - 157593 - 131105: 0x9C5E, - 157619 - 131105: 0x9ED4, - 157620 - 131105: 0x9568, - 157644 - 131105: 0xA0C3, - 157724 - 131105: 0x8AE6, - 157766 - 131105: 0xA0F7, - 157790 - 131105: 0x9C61, - 157806 - 131105: 0x9C5F, - 157832 - 131105: 0xFC4D, - 157834 - 131105: 0x9E5B, - 157843 - 131105: 0x9E69, - 157895 - 131105: 0x9C63, - 157966 - 131105: 0xFEC7, - 157969 - 131105: 0xFEC6, - 157990 - 131105: 0x9C67, - 158009 - 131105: 0x9C69, - 158033 - 131105: 0x8BE2, - 158120 - 131105: 0x9165, - 158133 - 131105: 0x9CE7, - 158194 - 131105: 0x8A54, - 158202 - 131105: 0x9C6C, - 158253 - 131105: 0x9C6E, - 158254 - 131105: 0xFE5D, - 158260 - 131105: 0x9C73, - 158274 - 131105: 0x956A, - 158289 - 131105: 0x956D, - 158290 - 131105: 0x8EF0, - 158469 - 131105: 0x8F4D, - 158474 - 131105: 0x8EF6, - 158483 - 131105: 0xFABC, - 158485 - 131105: 0x8CD5, - 158499 - 131105: 0x875E, - 158504 - 131105: 0xFBDA, - 158544 - 131105: 0x8B4C, - 158545 - 131105: 0xFD75, - 158546 - 131105: 0x9BDD, - 158547 - 131105: 0xFAF5, - 158555 - 131105: 0x9C74, - 158581 - 131105: 0x9545, - 158594 - 131105: 0x96C6, - 158614 - 131105: 0x8F6A, - 158615 - 131105: 0x8F4E, - 158621 - 131105: 0x9C78, - 158643 - 131105: 0xFA55, - 158656 - 131105: 0x97E4, - 158711 - 131105: 0x9C41, - 158753 - 131105: 0x925C, - 158784 - 131105: 0x96FA, - 158785 - 131105: 0x8CF6, - 158790 - 131105: 0x8D4D, - 158846 - 131105: 0xFB66, - 158847 - 131105: 0x8E65, - 158848 - 131105: 0x9849, - 158849 - 131105: 0xFBA8, - 158850 - 131105: 0x9842, - 158884 - 131105: 0x9C7A, - 158903 - 131105: 0x97FB, - 158904 - 131105: 0x90CA, - 158909 - 131105: 0x9C5B, - 158912 - 131105: 0x974D, - 158915 - 131105: 0x8ED3, - 158929 - 131105: 0x9561, - 159010 - 131105: 0x9F4B, - 159011 - 131105: 0x9FB5, - 159012 - 131105: 0x93D2, - 159013 - 131105: 0xFDAA, - 159014 - 131105: 0x9840, - 159015 - 131105: 0x9146, - 159016 - 131105: 0x9867, - 159017 - 131105: 0xFA5A, - 159018 - 131105: 0xFBA9, - 159057 - 131105: 0x9841, - 159092 - 131105: 0x8CD3, - 159136 - 131105: 0xFCFD, - 159137 - 131105: 0xFDAB, - 159138 - 131105: 0x91BD, - 159139 - 131105: 0x8F4C, - 159140 - 131105: 0x96C9, - 159141 - 131105: 0x8F55, - 159142 - 131105: 0xFBAE, - 159143 - 131105: 0x956F, - 159150 - 131105: 0x9C7D, - 159196 - 131105: 0xA0F0, - 159210 - 131105: 0x946F, - 159211 - 131105: 0xFDAC, - 159216 - 131105: 0x96CB, - 159232 - 131105: 0x96CE, - 159237 - 131105: 0xA056, - 159239 - 131105: 0x9CE1, - 159250 - 131105: 0x96C4, - 159298 - 131105: 0x8F5E, - 159299 - 131105: 0x8F6C, - 159300 - 131105: 0x8EA3, - 159301 - 131105: 0xFBB3, - 159342 - 131105: 0xFC53, - 159346 - 131105: 0xFDB3, - 159351 - 131105: 0x8F6B, - 159364 - 131105: 0x96CA, - 159368 - 131105: 0x87CD, - 159371 - 131105: 0x8753, - 159385 - 131105: 0x8F79, - 159440 - 131105: 0x9E6F, - 159441 - 131105: 0xA0C5, - 159442 - 131105: 0xFC78, - 159443 - 131105: 0x8E42, - 159444 - 131105: 0x8F5A, - 159445 - 131105: 0x90C2, - 159446 - 131105: 0x8EA5, - 159447 - 131105: 0x9061, - 159526 - 131105: 0x924F, - 159603 - 131105: 0x9373, - 159604 - 131105: 0xFDB5, - 159647 - 131105: 0xFECC, - 159649 - 131105: 0xFBBD, - 159678 - 131105: 0x8CD6, - 159710 - 131105: 0x9843, - 159711 - 131105: 0x96C5, - 159758 - 131105: 0x89BC, - 159819 - 131105: 0x9CA3, - 159826 - 131105: 0x924B, - 159827 - 131105: 0x984A, - 159880 - 131105: 0x8FA4, - 159917 - 131105: 0xA0F1, - 159918 - 131105: 0x9EFB, - 159919 - 131105: 0x9CD2, - 159949 - 131105: 0x8FA7, - 159954 - 131105: 0x8754, - 159992 - 131105: 0xFC5C, - 160009 - 131105: 0x9845, - 160012 - 131105: 0x9046, - 160013 - 131105: 0x8CD1, - 160038 - 131105: 0xFEFA, - 160039 - 131105: 0x9560, - 160100 - 131105: 0x9F48, - 160101 - 131105: 0x9247, - 160117 - 131105: 0x90FB, - 160205 - 131105: 0x9CA4, - 160283 - 131105: 0x9571, - 160359 - 131105: 0x8745, - 160384 - 131105: 0x9CA6, - 160389 - 131105: 0x9CA7, - 160395 - 131105: 0x9CAA, - 160434 - 131105: 0x9ED3, - 160438 - 131105: 0x9E70, - 160486 - 131105: 0x9CAC, - 160594 - 131105: 0x8752, - 160666 - 131105: 0x8FAE, - 160767 - 131105: 0x8D50, - 160802 - 131105: 0x957D, - 160848 - 131105: 0x9CB0, - 160900 - 131105: 0x97B6, - 160902 - 131105: 0xA0BD, - 161140 - 131105: 0x8ADF, - 161187 - 131105: 0x9EAA, - 161248 - 131105: 0x8FBD, - 161252 - 131105: 0x8FBF, - 161277 - 131105: 0x9369, - 161278 - 131105: 0x9BA7, - 161287 - 131105: 0xC8A4, - 161292 - 131105: 0xFEEA, - 161330 - 131105: 0x9BE1, - 161337 - 131105: 0x8B41, - 161365 - 131105: 0x9DB6, - 161366 - 131105: 0xA0EB, - 161367 - 131105: 0x9BA3, - 161428 - 131105: 0x8BA1, - 161551 - 131105: 0x8FC8, - 161589 - 131105: 0x894C, - 161590 - 131105: 0x9860, - 161601 - 131105: 0x94C7, - 161630 - 131105: 0x8B58, - 161668 - 131105: 0x95AB, - 161669 - 131105: 0x95AA, - 161740 - 131105: 0x9CC3, - 161880 - 131105: 0x9CC4, - 161904 - 131105: 0x93D6, - 161949 - 131105: 0x9DAC, - 161970 - 131105: 0x8BE6, - 161992 - 131105: 0x8A71, - 162084 - 131105: 0x8FD1, - 162151 - 131105: 0x99D5, - 162170 - 131105: 0x90F4, - 162208 - 131105: 0x8AA3, - 162269 - 131105: 0x9CCE, - 162301 - 131105: 0x9CD4, - 162314 - 131105: 0x9CD5, - 162318 - 131105: 0xFBC8, - 162366 - 131105: 0x9DB3, - 162387 - 131105: 0xFC70, - 162393 - 131105: 0x8FD7, - 162425 - 131105: 0x9B73, - 162436 - 131105: 0xFA5B, - 162493 - 131105: 0x8FD2, - 162494 - 131105: 0x9064, - 162548 - 131105: 0x98B6, - 162566 - 131105: 0x9668, - 162571 - 131105: 0x9CD6, - 162584 - 131105: 0x98BD, - 162616 - 131105: 0x8FDC, - 162617 - 131105: 0xFEF6, - 162618 - 131105: 0x8FD9, - 162632 - 131105: 0x9541, - 162661 - 131105: 0x87CA, - 162799 - 131105: 0x876C, - 162804 - 131105: 0x97F3, - 162834 - 131105: 0x9BF8, - 162924 - 131105: 0x875A, - 162993 - 131105: 0x8748, - 163013 - 131105: 0x874A, - 163119 - 131105: 0x9E6C, - 163155 - 131105: 0x8FF2, - 163156 - 131105: 0x8FEE, - 163174 - 131105: 0x9CD7, - 163187 - 131105: 0x9E6E, - 163204 - 131105: 0x8A40, - 163215 - 131105: 0x8FEF, - 163224 - 131105: 0x8FF4, - 163261 - 131105: 0x8FF5, - 163292 - 131105: 0x95C2, - 163405 - 131105: 0x986A, - 163407 - 131105: 0x97CF, - 163630 - 131105: 0x9EE5, - 163833 - 131105: 0x9E7C, - 163842 - 131105: 0x9041, - 163849 - 131105: 0x9CDB, - 163870 - 131105: 0x9441, - 163875 - 131105: 0x9CE6, - 163876 - 131105: 0x9DB0, - 163912 - 131105: 0x9CEA, - 163971 - 131105: 0x9CED, - 163984 - 131105: 0x9CFA, - 164029 - 131105: 0x8B62, - 164030 - 131105: 0x8A4E, - 164072 - 131105: 0x9CCA, - 164073 - 131105: 0x8A66, - 164084 - 131105: 0x9CFB, - 164142 - 131105: 0x9CFC, - 164175 - 131105: 0x9CFE, - 164189 - 131105: 0x8A53, - 164207 - 131105: 0x9CE5, - 164233 - 131105: 0x9D40, - 164271 - 131105: 0x9D41, - 164284 - 131105: 0x9045, - 164359 - 131105: 0x8B73, - 164376 - 131105: 0x97CA, - 164378 - 131105: 0x9D42, - 164438 - 131105: 0x8A61, - 164476 - 131105: 0x8BAE, - 164507 - 131105: 0x8AD2, - 164557 - 131105: 0x8BA2, - 164578 - 131105: 0x9DF2, - 164614 - 131105: 0x9D43, - 164632 - 131105: 0x9CDF, - 164655 - 131105: 0x9D44, - 164666 - 131105: 0x8ECA, - 164709 - 131105: 0x904E, - 164717 - 131105: 0x8EB3, - 164733 - 131105: 0x9FF5, - 164746 - 131105: 0x9D45, - 164882 - 131105: 0x904F, - 164968 - 131105: 0x9D47, - 164972 - 131105: 0x89CA, - 164979 - 131105: 0x9CB5, - 164994 - 131105: 0xFBFE, - 165121 - 131105: 0x905E, - 165180 - 131105: 0x9063, - 165181 - 131105: 0x9057, - 165228 - 131105: 0x9066, - 165352 - 131105: 0x9BC0, - 165364 - 131105: 0xFCE5, - 165376 - 131105: 0x9162, - 165387 - 131105: 0x9067, - 165413 - 131105: 0x8FA1, - 165435 - 131105: 0x8FA2, - 165546 - 131105: 0x9D48, - 165547 - 131105: 0xFAD3, - 165554 - 131105: 0x8D4F, - 165564 - 131105: 0x905D, - 165592 - 131105: 0x90B9, - 165606 - 131105: 0x906B, - 165647 - 131105: 0x8C5C, - 165651 - 131105: 0x9069, - 165892 - 131105: 0xFE57, - 165931 - 131105: 0xFE55, - 166157 - 131105: 0x87A6, - 166195 - 131105: 0x9073, - 166216 - 131105: 0x9BEF, - 166217 - 131105: 0x9CF0, - 166230 - 131105: 0x9D4B, - 166244 - 131105: 0xFED9, - 166248 - 131105: 0xFEDA, - 166252 - 131105: 0x91E0, - 166253 - 131105: 0x8D43, - 166270 - 131105: 0x91D8, - 166281 - 131105: 0x9646, - 166312 - 131105: 0x9360, - 166314 - 131105: 0xFA53, - 166315 - 131105: 0x9CD3, - 166328 - 131105: 0x9D4E, - 166332 - 131105: 0xFB40, - 166336 - 131105: 0x8DE2, - 166364 - 131105: 0x9442, - 166366 - 131105: 0x9056, - 166369 - 131105: 0x9865, - 166371 - 131105: 0x8C6C, - 166372 - 131105: 0xFA4A, - 166375 - 131105: 0x9D50, - 166376 - 131105: 0x9D52, - 166393 - 131105: 0x95AF, - 166394 - 131105: 0x975A, - 166395 - 131105: 0x9349, - 166396 - 131105: 0x9747, - 166415 - 131105: 0xA0F4, - 166422 - 131105: 0x9778, - 166437 - 131105: 0x8FCF, - 166441 - 131105: 0xFC60, - 166450 - 131105: 0x8C4E, - 166454 - 131105: 0xFC56, - 166468 - 131105: 0x91DC, - 166469 - 131105: 0x9661, - 166470 - 131105: 0x92EC, - 166471 - 131105: 0x935D, - 166472 - 131105: 0x8EDE, - 166473 - 131105: 0x96FE, - 166474 - 131105: 0xFD4F, - 166475 - 131105: 0x95DE, - 166489 - 131105: 0x98B0, - 166490 - 131105: 0xA040, - 166529 - 131105: 0x97BD, - 166530 - 131105: 0x977D, - 166531 - 131105: 0x97F5, - 166554 - 131105: 0x9BAC, - 166555 - 131105: 0xFADA, - 166556 - 131105: 0x92C2, - 166592 - 131105: 0x97B1, - 166598 - 131105: 0x907B, - 166603 - 131105: 0x93FE, - 166604 - 131105: 0x947B, - 166606 - 131105: 0x9777, - 166622 - 131105: 0xFABE, - 166623 - 131105: 0xFD43, - 166624 - 131105: 0x90C6, - 166625 - 131105: 0x90A4, - 166626 - 131105: 0x90A8, - 166627 - 131105: 0x94A9, - 166629 - 131105: 0x90A9, - 166634 - 131105: 0x8C65, - 166652 - 131105: 0x95E0, - 166668 - 131105: 0x907D, - 166675 - 131105: 0x9265, - 166689 - 131105: 0xFDBA, - 166690 - 131105: 0x93C4, - 166699 - 131105: 0xFEED, - 166700 - 131105: 0x9DAB, - 166701 - 131105: 0xA0E3, - 166703 - 131105: 0x9648, - 166726 - 131105: 0x9D53, - 166732 - 131105: 0x8AA9, - 166734 - 131105: 0x9BC5, - 166736 - 131105: 0x965D, - 166755 - 131105: 0x975F, - 166756 - 131105: 0x965F, - 166757 - 131105: 0x966E, - 166758 - 131105: 0xFB5D, - 166764 - 131105: 0x9DB1, - 166799 - 131105: 0xFEA3, - 166809 - 131105: 0x9DB2, - 166812 - 131105: 0x95AE, - 166813 - 131105: 0xFCA3, - 166841 - 131105: 0x8769, - 166850 - 131105: 0xA0A2, - 166853 - 131105: 0x9655, - 166868 - 131105: 0x9D54, - 166871 - 131105: 0x9341, - 166873 - 131105: 0x95AD, - 166874 - 131105: 0x91D5, - 166887 - 131105: 0x977A, - 166888 - 131105: 0xFDFC, - 166889 - 131105: 0x8E47, - 166890 - 131105: 0x93FD, - 166891 - 131105: 0x90A5, - 166892 - 131105: 0x90AC, - 166901 - 131105: 0x95AC, - 166911 - 131105: 0x90AE, - 166915 - 131105: 0xFEA5, - 166921 - 131105: 0x9D56, - 166940 - 131105: 0x97E3, - 166941 - 131105: 0x95E2, - 166947 - 131105: 0x9466, - 166950 - 131105: 0x9647, - 166955 - 131105: 0x91B8, - 166960 - 131105: 0x9CEC, - 166969 - 131105: 0x90AD, - 166971 - 131105: 0x95E3, - 167114 - 131105: 0x8B4F, - 167117 - 131105: 0x8AE3, - 167122 - 131105: 0x8B4D, - 167220 - 131105: 0x95EA, - 167321 - 131105: 0x8B4E, - 167353 - 131105: 0x8CC1, - 167439 - 131105: 0x8BED, - 167478 - 131105: 0x91D9, - 167481 - 131105: 0xA0A4, - 167525 - 131105: 0x95F5, - 167526 - 131105: 0x95F4, - 167575 - 131105: 0x9FB3, - 167596 - 131105: 0xFEAF, - 167602 - 131105: 0xFE72, - 167603 - 131105: 0x927A, - 167641 - 131105: 0xFEAC, - 167655 - 131105: 0x95F3, - 167877 - 131105: 0x9D58, - 168057 - 131105: 0x8D46, - 168072 - 131105: 0x9372, - 168075 - 131105: 0x91C5, - 168083 - 131105: 0x9642, - 168111 - 131105: 0x90CD, - 168112 - 131105: 0x95FE, - 168113 - 131105: 0x9159, - 168128 - 131105: 0x9C65, - 168164 - 131105: 0x97CC, - 168165 - 131105: 0x90CE, - 168172 - 131105: 0x9D59, - 168173 - 131105: 0xFCF5, - 168205 - 131105: 0xFEFD, - 168208 - 131105: 0x9D5B, - 168252 - 131105: 0x9D5C, - 168269 - 131105: 0x937E, - 168283 - 131105: 0x98AC, - 168286 - 131105: 0x9D5E, - 168304 - 131105: 0xFDD0, - 168348 - 131105: 0xFD60, - 168360 - 131105: 0x9CCF, - 168405 - 131105: 0x90DD, - 168427 - 131105: 0x90E0, - 168989 - 131105: 0x90F3, - 168992 - 131105: 0x98B1, - 169011 - 131105: 0x90F0, - 169023 - 131105: 0x93BD, - 169032 - 131105: 0x95B7, - 169168 - 131105: 0x9F46, - 169177 - 131105: 0x8E4B, - 169178 - 131105: 0x9658, - 169189 - 131105: 0x8A4C, - 169191 - 131105: 0x9D63, - 169374 - 131105: 0x9ECF, - 169392 - 131105: 0x9D65, - 169400 - 131105: 0x9D66, - 169431 - 131105: 0x965A, - 169449 - 131105: 0x9D64, - 169460 - 131105: 0x8A6C, - 169760 - 131105: 0x8AD9, - 169778 - 131105: 0x9D67, - 169940 - 131105: 0x8A70, - 170000 - 131105: 0x8BF3, - 170071 - 131105: 0x9150, - 170148 - 131105: 0x9CC1, - 170193 - 131105: 0x9D68, - 170218 - 131105: 0x93A7, - 170225 - 131105: 0x9674, - 170234 - 131105: 0x8CFD, - 170243 - 131105: 0xA0EF, - 170245 - 131105: 0x9151, - 170287 - 131105: 0x96C1, - 170309 - 131105: 0x8777, - 170311 - 131105: 0x8C64, - 170312 - 131105: 0x9676, - 170313 - 131105: 0x9D69, - 170333 - 131105: 0xFCA4, - 170346 - 131105: 0x9D6A, - 170397 - 131105: 0x924E, - 170435 - 131105: 0x9D6B, - 170441 - 131105: 0x9BC1, - 170536 - 131105: 0x9D6C, - 170573 - 131105: 0x8A65, - 170757 - 131105: 0x915D, - 170766 - 131105: 0x9D6D, - 170965 - 131105: 0x915A, - 171123 - 131105: 0x8C42, - 171181 - 131105: 0x9CC0, - 171326 - 131105: 0x916A, - 171354 - 131105: 0x9D6E, - 171388 - 131105: 0x9EA6, - 171416 - 131105: 0x9DCD, - 171419 - 131105: 0x9D6F, - 171510 - 131105: 0x89BB, - 171526 - 131105: 0x9EF9, - 171565 - 131105: 0x96B4, - 171624 - 131105: 0x9172, - 171692 - 131105: 0x9EC8, - 171696 - 131105: 0x8771, - 171715 - 131105: 0x8B55, - 171768 - 131105: 0x9D71, - 171811 - 131105: 0x9D72, - 171824 - 131105: 0x9ECC, - 171959 - 131105: 0x9174, - 171998 - 131105: 0x9ED0, - 172052 - 131105: 0x905C, - 172167 - 131105: 0x8ED2, - 172217 - 131105: 0x91A8, - 172257 - 131105: 0x9177, - 172269 - 131105: 0x96BF, - 172275 - 131105: 0x96C0, - 172280 - 131105: 0x8FB1, - 172286 - 131105: 0x96B7, - 172295 - 131105: 0x8C55, - 172323 - 131105: 0x9178, - 172339 - 131105: 0x89BE, - 172340 - 131105: 0x917C, - 172368 - 131105: 0xFB77, - 172434 - 131105: 0x9175, - 172435 - 131105: 0x91A3, - 172459 - 131105: 0x9176, - 172468 - 131105: 0x96BE, - 172469 - 131105: 0x8D49, - 172511 - 131105: 0x9179, - 172533 - 131105: 0x96B6, - 172576 - 131105: 0x91A4, - 172595 - 131105: 0x91A6, - 172691 - 131105: 0x9D75, - 172703 - 131105: 0x9052, - 172722 - 131105: 0xA045, - 172724 - 131105: 0x91A9, - 172726 - 131105: 0x98AA, - 172730 - 131105: 0x8C5F, - 172733 - 131105: 0x8BAA, - 172767 - 131105: 0x9CDD, - 172799 - 131105: 0x9D77, - 172881 - 131105: 0x8756, - 172969 - 131105: 0x8940, - 173108 - 131105: 0x9EEC, - 173147 - 131105: 0x93AA, - 173510 - 131105: 0x9478, - 173515 - 131105: 0x9D7A, - 173569 - 131105: 0x8AC9, - 173618 - 131105: 0x8B4B, - 173642 - 131105: 0x9FEC, - 173659 - 131105: 0x8AE2, - 173737 - 131105: 0x9E75, -} - -const encode1Low, encode1High = 11904, 40908 - -var encode1 = [...]uint16{ - 11904 - 11904: 0xC8D6, - 11908 - 11904: 0xC8D7, - 11910 - 11904: 0xC8D8, - 11911 - 11904: 0xC8D9, - 11912 - 11904: 0xC8DA, - 11914 - 11904: 0xC8DB, - 11916 - 11904: 0xC8DC, - 11917 - 11904: 0xC8DD, - 11925 - 11904: 0xC8DE, - 11932 - 11904: 0xC8DF, - 11933 - 11904: 0xC8E0, - 11941 - 11904: 0xC8E1, - 11943 - 11904: 0xC8E2, - 11946 - 11904: 0xC8E3, - 11948 - 11904: 0xC8E4, - 11950 - 11904: 0xC8E5, - 11958 - 11904: 0xC8E6, - 11964 - 11904: 0xC8E7, - 11966 - 11904: 0xC8E8, - 11974 - 11904: 0xC8E9, - 11978 - 11904: 0xC8EA, - 11980 - 11904: 0xC8EB, - 11981 - 11904: 0xC8EC, - 11983 - 11904: 0xC8ED, - 11990 - 11904: 0xC8EE, - 11991 - 11904: 0xC8EF, - 11998 - 11904: 0xC8F0, - 12003 - 11904: 0xC8F1, - 12083 - 11904: 0xC6CD, - 12288 - 11904: 0xA140, - 12289 - 11904: 0xA142, - 12290 - 11904: 0xA143, - 12291 - 11904: 0xC6DE, - 12293 - 11904: 0xC6E0, - 12294 - 11904: 0xC6E1, - 12295 - 11904: 0xC6E2, - 12296 - 11904: 0xA171, - 12297 - 11904: 0xA172, - 12298 - 11904: 0xA16D, - 12299 - 11904: 0xA16E, - 12300 - 11904: 0xA175, - 12301 - 11904: 0xA176, - 12302 - 11904: 0xA179, - 12303 - 11904: 0xA17A, - 12304 - 11904: 0xA169, - 12305 - 11904: 0xA16A, - 12306 - 11904: 0xA245, - 12308 - 11904: 0xA165, - 12309 - 11904: 0xA166, - 12317 - 11904: 0xA1A9, - 12318 - 11904: 0xA1AA, - 12321 - 11904: 0xA2C3, - 12322 - 11904: 0xA2C4, - 12323 - 11904: 0xA2C5, - 12324 - 11904: 0xA2C6, - 12325 - 11904: 0xA2C7, - 12326 - 11904: 0xA2C8, - 12327 - 11904: 0xA2C9, - 12328 - 11904: 0xA2CA, - 12329 - 11904: 0xA2CB, - 12353 - 11904: 0xC6E7, - 12354 - 11904: 0xC6E8, - 12355 - 11904: 0xC6E9, - 12356 - 11904: 0xC6EA, - 12357 - 11904: 0xC6EB, - 12358 - 11904: 0xC6EC, - 12359 - 11904: 0xC6ED, - 12360 - 11904: 0xC6EE, - 12361 - 11904: 0xC6EF, - 12362 - 11904: 0xC6F0, - 12363 - 11904: 0xC6F1, - 12364 - 11904: 0xC6F2, - 12365 - 11904: 0xC6F3, - 12366 - 11904: 0xC6F4, - 12367 - 11904: 0xC6F5, - 12368 - 11904: 0xC6F6, - 12369 - 11904: 0xC6F7, - 12370 - 11904: 0xC6F8, - 12371 - 11904: 0xC6F9, - 12372 - 11904: 0xC6FA, - 12373 - 11904: 0xC6FB, - 12374 - 11904: 0xC6FC, - 12375 - 11904: 0xC6FD, - 12376 - 11904: 0xC6FE, - 12377 - 11904: 0xC740, - 12378 - 11904: 0xC741, - 12379 - 11904: 0xC742, - 12380 - 11904: 0xC743, - 12381 - 11904: 0xC744, - 12382 - 11904: 0xC745, - 12383 - 11904: 0xC746, - 12384 - 11904: 0xC747, - 12385 - 11904: 0xC748, - 12386 - 11904: 0xC749, - 12387 - 11904: 0xC74A, - 12388 - 11904: 0xC74B, - 12389 - 11904: 0xC74C, - 12390 - 11904: 0xC74D, - 12391 - 11904: 0xC74E, - 12392 - 11904: 0xC74F, - 12393 - 11904: 0xC750, - 12394 - 11904: 0xC751, - 12395 - 11904: 0xC752, - 12396 - 11904: 0xC753, - 12397 - 11904: 0xC754, - 12398 - 11904: 0xC755, - 12399 - 11904: 0xC756, - 12400 - 11904: 0xC757, - 12401 - 11904: 0xC758, - 12402 - 11904: 0xC759, - 12403 - 11904: 0xC75A, - 12404 - 11904: 0xC75B, - 12405 - 11904: 0xC75C, - 12406 - 11904: 0xC75D, - 12407 - 11904: 0xC75E, - 12408 - 11904: 0xC75F, - 12409 - 11904: 0xC760, - 12410 - 11904: 0xC761, - 12411 - 11904: 0xC762, - 12412 - 11904: 0xC763, - 12413 - 11904: 0xC764, - 12414 - 11904: 0xC765, - 12415 - 11904: 0xC766, - 12416 - 11904: 0xC767, - 12417 - 11904: 0xC768, - 12418 - 11904: 0xC769, - 12419 - 11904: 0xC76A, - 12420 - 11904: 0xC76B, - 12421 - 11904: 0xC76C, - 12422 - 11904: 0xC76D, - 12423 - 11904: 0xC76E, - 12424 - 11904: 0xC76F, - 12425 - 11904: 0xC770, - 12426 - 11904: 0xC771, - 12427 - 11904: 0xC772, - 12428 - 11904: 0xC773, - 12429 - 11904: 0xC774, - 12430 - 11904: 0xC775, - 12431 - 11904: 0xC776, - 12432 - 11904: 0xC777, - 12433 - 11904: 0xC778, - 12434 - 11904: 0xC779, - 12435 - 11904: 0xC77A, - 12443 - 11904: 0xC8D4, - 12444 - 11904: 0xC8D5, - 12445 - 11904: 0xC6DC, - 12446 - 11904: 0xC6DD, - 12449 - 11904: 0xC77B, - 12450 - 11904: 0xC77C, - 12451 - 11904: 0xC77D, - 12452 - 11904: 0xC77E, - 12453 - 11904: 0xC7A1, - 12454 - 11904: 0xC7A2, - 12455 - 11904: 0xC7A3, - 12456 - 11904: 0xC7A4, - 12457 - 11904: 0xC7A5, - 12458 - 11904: 0xC7A6, - 12459 - 11904: 0xC7A7, - 12460 - 11904: 0xC7A8, - 12461 - 11904: 0xC7A9, - 12462 - 11904: 0xC7AA, - 12463 - 11904: 0xC7AB, - 12464 - 11904: 0xC7AC, - 12465 - 11904: 0xC7AD, - 12466 - 11904: 0xC7AE, - 12467 - 11904: 0xC7AF, - 12468 - 11904: 0xC7B0, - 12469 - 11904: 0xC7B1, - 12470 - 11904: 0xC7B2, - 12471 - 11904: 0xC7B3, - 12472 - 11904: 0xC7B4, - 12473 - 11904: 0xC7B5, - 12474 - 11904: 0xC7B6, - 12475 - 11904: 0xC7B7, - 12476 - 11904: 0xC7B8, - 12477 - 11904: 0xC7B9, - 12478 - 11904: 0xC7BA, - 12479 - 11904: 0xC7BB, - 12480 - 11904: 0xC7BC, - 12481 - 11904: 0xC7BD, - 12482 - 11904: 0xC7BE, - 12483 - 11904: 0xC7BF, - 12484 - 11904: 0xC7C0, - 12485 - 11904: 0xC7C1, - 12486 - 11904: 0xC7C2, - 12487 - 11904: 0xC7C3, - 12488 - 11904: 0xC7C4, - 12489 - 11904: 0xC7C5, - 12490 - 11904: 0xC7C6, - 12491 - 11904: 0xC7C7, - 12492 - 11904: 0xC7C8, - 12493 - 11904: 0xC7C9, - 12494 - 11904: 0xC7CA, - 12495 - 11904: 0xC7CB, - 12496 - 11904: 0xC7CC, - 12497 - 11904: 0xC7CD, - 12498 - 11904: 0xC7CE, - 12499 - 11904: 0xC7CF, - 12500 - 11904: 0xC7D0, - 12501 - 11904: 0xC7D1, - 12502 - 11904: 0xC7D2, - 12503 - 11904: 0xC7D3, - 12504 - 11904: 0xC7D4, - 12505 - 11904: 0xC7D5, - 12506 - 11904: 0xC7D6, - 12507 - 11904: 0xC7D7, - 12508 - 11904: 0xC7D8, - 12509 - 11904: 0xC7D9, - 12510 - 11904: 0xC7DA, - 12511 - 11904: 0xC7DB, - 12512 - 11904: 0xC7DC, - 12513 - 11904: 0xC7DD, - 12514 - 11904: 0xC7DE, - 12515 - 11904: 0xC7DF, - 12516 - 11904: 0xC7E0, - 12517 - 11904: 0xC7E1, - 12518 - 11904: 0xC7E2, - 12519 - 11904: 0xC7E3, - 12520 - 11904: 0xC7E4, - 12521 - 11904: 0xC7E5, - 12522 - 11904: 0xC7E6, - 12523 - 11904: 0xC7E7, - 12524 - 11904: 0xC7E8, - 12525 - 11904: 0xC7E9, - 12526 - 11904: 0xC7EA, - 12527 - 11904: 0xC7EB, - 12528 - 11904: 0xC7EC, - 12529 - 11904: 0xC7ED, - 12530 - 11904: 0xC7EE, - 12531 - 11904: 0xC7EF, - 12532 - 11904: 0xC7F0, - 12533 - 11904: 0xC7F1, - 12534 - 11904: 0xC7F2, - 12540 - 11904: 0xC6E3, - 12541 - 11904: 0xC6DA, - 12542 - 11904: 0xC6DB, - 12549 - 11904: 0xA374, - 12550 - 11904: 0xA375, - 12551 - 11904: 0xA376, - 12552 - 11904: 0xA377, - 12553 - 11904: 0xA378, - 12554 - 11904: 0xA379, - 12555 - 11904: 0xA37A, - 12556 - 11904: 0xA37B, - 12557 - 11904: 0xA37C, - 12558 - 11904: 0xA37D, - 12559 - 11904: 0xA37E, - 12560 - 11904: 0xA3A1, - 12561 - 11904: 0xA3A2, - 12562 - 11904: 0xA3A3, - 12563 - 11904: 0xA3A4, - 12564 - 11904: 0xA3A5, - 12565 - 11904: 0xA3A6, - 12566 - 11904: 0xA3A7, - 12567 - 11904: 0xA3A8, - 12568 - 11904: 0xA3A9, - 12569 - 11904: 0xA3AA, - 12570 - 11904: 0xA3AB, - 12571 - 11904: 0xA3AC, - 12572 - 11904: 0xA3AD, - 12573 - 11904: 0xA3AE, - 12574 - 11904: 0xA3AF, - 12575 - 11904: 0xA3B0, - 12576 - 11904: 0xA3B1, - 12577 - 11904: 0xA3B2, - 12578 - 11904: 0xA3B3, - 12579 - 11904: 0xA3B4, - 12580 - 11904: 0xA3B5, - 12581 - 11904: 0xA3B6, - 12582 - 11904: 0xA3B7, - 12583 - 11904: 0xA3B8, - 12584 - 11904: 0xA3B9, - 12585 - 11904: 0xA3BA, - 12736 - 11904: 0x8840, - 12737 - 11904: 0x8841, - 12738 - 11904: 0x8842, - 12739 - 11904: 0x8843, - 12740 - 11904: 0x8844, - 12741 - 11904: 0x8846, - 12742 - 11904: 0x8849, - 12743 - 11904: 0x884A, - 12744 - 11904: 0x884D, - 12745 - 11904: 0x884F, - 12746 - 11904: 0x8850, - 12747 - 11904: 0x8851, - 12748 - 11904: 0x8852, - 12749 - 11904: 0x8854, - 12750 - 11904: 0x8855, - 12751 - 11904: 0xC879, - 12849 - 11904: 0xC8D1, - 12963 - 11904: 0xA1C0, - 13198 - 11904: 0xA255, - 13199 - 11904: 0xA256, - 13212 - 11904: 0xA250, - 13213 - 11904: 0xA251, - 13214 - 11904: 0xA252, - 13217 - 11904: 0xA254, - 13252 - 11904: 0xA257, - 13262 - 11904: 0xA253, - 13265 - 11904: 0xA1EB, - 13266 - 11904: 0xA1EA, - 13269 - 11904: 0xA24F, - 13365 - 11904: 0x9277, - 13376 - 11904: 0x96DF, - 13386 - 11904: 0x8CF4, - 13388 - 11904: 0x89D5, - 13412 - 11904: 0x93CD, - 13427 - 11904: 0x9BDF, - 13434 - 11904: 0xFA68, - 13437 - 11904: 0x89DA, - 13438 - 11904: 0x8F59, - 13459 - 11904: 0x89DB, - 13462 - 11904: 0x8F5D, - 13477 - 11904: 0x89DC, - 13487 - 11904: 0x96F7, - 13500 - 11904: 0x8ADA, - 13505 - 11904: 0x8BDC, - 13512 - 11904: 0x97DB, - 13535 - 11904: 0x9E53, - 13540 - 11904: 0x9DAA, - 13542 - 11904: 0x87BE, - 13563 - 11904: 0x9BEA, - 13574 - 11904: 0x8A6E, - 13630 - 11904: 0x8BC8, - 13649 - 11904: 0x89E8, - 13651 - 11904: 0x89EA, - 13657 - 11904: 0x8C4B, - 13665 - 11904: 0xFB70, - 13677 - 11904: 0x89ED, - 13680 - 11904: 0x94DD, - 13682 - 11904: 0x89EE, - 13687 - 11904: 0x9EB4, - 13688 - 11904: 0x8AD3, - 13700 - 11904: 0x92DB, - 13719 - 11904: 0x94DB, - 13720 - 11904: 0x89F9, - 13729 - 11904: 0xFB7A, - 13733 - 11904: 0x89FB, - 13741 - 11904: 0x9EFC, - 13759 - 11904: 0x89FC, - 13761 - 11904: 0x89BF, - 13765 - 11904: 0x89FE, - 13767 - 11904: 0x89E6, - 13770 - 11904: 0x9D46, - 13774 - 11904: 0x9DEE, - 13778 - 11904: 0xA07E, - 13782 - 11904: 0xA068, - 13787 - 11904: 0x98E9, - 13789 - 11904: 0x8B68, - 13809 - 11904: 0x8DFD, - 13810 - 11904: 0x8BBE, - 13811 - 11904: 0x9FD9, - 13819 - 11904: 0x8AEB, - 13822 - 11904: 0x9FD7, - 13833 - 11904: 0x8B6A, - 13848 - 11904: 0x9C5C, - 13850 - 11904: 0x8BB1, - 13859 - 11904: 0xFB5E, - 13861 - 11904: 0x8770, - 13869 - 11904: 0x9DF3, - 13877 - 11904: 0xA0D0, - 13881 - 11904: 0xFC66, - 13886 - 11904: 0x92E9, - 13895 - 11904: 0x9AEC, - 13896 - 11904: 0x8FAB, - 13897 - 11904: 0xFA48, - 13902 - 11904: 0x8E45, - 13919 - 11904: 0x9C6F, - 13921 - 11904: 0x8D5C, - 13946 - 11904: 0x9EDE, - 13953 - 11904: 0x89EF, - 13978 - 11904: 0x96E9, - 13989 - 11904: 0x9EBB, - 13994 - 11904: 0x94DE, - 13996 - 11904: 0x9EB8, - 14000 - 11904: 0x97BA, - 14001 - 11904: 0xFB65, - 14005 - 11904: 0x95D6, - 14009 - 11904: 0x9CBB, - 14012 - 11904: 0x97DA, - 14017 - 11904: 0x8F45, - 14019 - 11904: 0xFB7D, - 14020 - 11904: 0x9158, - 14021 - 11904: 0xFE64, - 14023 - 11904: 0x9856, - 14024 - 11904: 0x9B4D, - 14035 - 11904: 0x935B, - 14036 - 11904: 0x95C7, - 14038 - 11904: 0x97E7, - 14045 - 11904: 0x9359, - 14049 - 11904: 0x91F5, - 14050 - 11904: 0x97B8, - 14053 - 11904: 0xFDA2, - 14054 - 11904: 0xFBB6, - 14069 - 11904: 0x92FA, - 14081 - 11904: 0x9357, - 14083 - 11904: 0x8BA6, - 14088 - 11904: 0xFBB9, - 14090 - 11904: 0x97B0, - 14093 - 11904: 0xFDC4, - 14108 - 11904: 0x9CA1, - 14114 - 11904: 0x91F2, - 14115 - 11904: 0x91F9, - 14117 - 11904: 0x8FF1, - 14124 - 11904: 0x9745, - 14125 - 11904: 0x9853, - 14128 - 11904: 0xFE78, - 14130 - 11904: 0xFBC1, - 14131 - 11904: 0x9251, - 14138 - 11904: 0x9DAD, - 14144 - 11904: 0xFD6C, - 14147 - 11904: 0xFA6B, - 14178 - 11904: 0x9BC2, - 14191 - 11904: 0x9A7B, - 14231 - 11904: 0x8B60, - 14240 - 11904: 0x934B, - 14265 - 11904: 0x9ABD, - 14270 - 11904: 0x91B7, - 14294 - 11904: 0x8D4B, - 14322 - 11904: 0x95B4, - 14328 - 11904: 0xFEC5, - 14331 - 11904: 0x9EF0, - 14351 - 11904: 0x8D64, - 14361 - 11904: 0x9269, - 14368 - 11904: 0x8D67, - 14381 - 11904: 0xFBEA, - 14390 - 11904: 0xFBEF, - 14392 - 11904: 0x8D68, - 14435 - 11904: 0x93EB, - 14453 - 11904: 0x877A, - 14496 - 11904: 0xFC42, - 14531 - 11904: 0x9166, - 14540 - 11904: 0xFACD, - 14545 - 11904: 0x93DD, - 14548 - 11904: 0x8D52, - 14586 - 11904: 0x8BCC, - 14600 - 11904: 0x8D6D, - 14612 - 11904: 0x8D6E, - 14631 - 11904: 0x96A8, - 14642 - 11904: 0xFCA6, - 14655 - 11904: 0x8D6F, - 14669 - 11904: 0x8D70, - 14691 - 11904: 0xFC64, - 14712 - 11904: 0x8CF3, - 14720 - 11904: 0x9060, - 14729 - 11904: 0x8D74, - 14730 - 11904: 0x97C3, - 14738 - 11904: 0x8AD0, - 14745 - 11904: 0x9274, - 14747 - 11904: 0x9BBE, - 14753 - 11904: 0x9CC8, - 14756 - 11904: 0x9CBA, - 14776 - 11904: 0x8D78, - 14812 - 11904: 0x9EB9, - 14818 - 11904: 0x955A, - 14821 - 11904: 0x91B4, - 14828 - 11904: 0x8A48, - 14840 - 11904: 0x8D7D, - 14843 - 11904: 0x8A7D, - 14846 - 11904: 0x8AC2, - 14849 - 11904: 0xFD4A, - 14851 - 11904: 0x8DA1, - 14854 - 11904: 0x8AD1, - 14871 - 11904: 0xFCB4, - 14872 - 11904: 0x8B47, - 14889 - 11904: 0x93A4, - 14890 - 11904: 0x9EDA, - 14900 - 11904: 0x8A51, - 14923 - 11904: 0x8DA6, - 14930 - 11904: 0x9EC5, - 14935 - 11904: 0xFCC4, - 14940 - 11904: 0xA078, - 14942 - 11904: 0x94B5, - 14950 - 11904: 0xFCC2, - 14951 - 11904: 0x8A6B, - 14999 - 11904: 0x8DAB, - 15019 - 11904: 0xFAE8, - 15037 - 11904: 0x8DAD, - 15070 - 11904: 0xFC49, - 15072 - 11904: 0x93C1, - 15088 - 11904: 0x906F, - 15090 - 11904: 0x8DB0, - 15093 - 11904: 0x87A2, - 15099 - 11904: 0x947E, - 15118 - 11904: 0x90FA, - 15129 - 11904: 0x9479, - 15138 - 11904: 0x8DB2, - 15147 - 11904: 0xFCEE, - 15161 - 11904: 0x997B, - 15170 - 11904: 0x8DB4, - 15192 - 11904: 0x8DB7, - 15200 - 11904: 0x91B3, - 15217 - 11904: 0x8DBB, - 15218 - 11904: 0x8DBA, - 15227 - 11904: 0x8DBC, - 15228 - 11904: 0x9044, - 15232 - 11904: 0xFD4C, - 15253 - 11904: 0x874B, - 15254 - 11904: 0x93E4, - 15257 - 11904: 0x93E0, - 15265 - 11904: 0xFD53, - 15292 - 11904: 0x8DC3, - 15294 - 11904: 0x9BB8, - 15298 - 11904: 0xFBF0, - 15300 - 11904: 0x93E9, - 15319 - 11904: 0x93F6, - 15325 - 11904: 0x8DC5, - 15340 - 11904: 0x8DCA, - 15346 - 11904: 0x8DCC, - 15347 - 11904: 0xFD5D, - 15348 - 11904: 0x93B5, - 15373 - 11904: 0xFD61, - 15377 - 11904: 0x9CF8, - 15381 - 11904: 0x9252, - 15384 - 11904: 0xA0E8, - 15444 - 11904: 0x9CA5, - 15499 - 11904: 0x8C56, - 15563 - 11904: 0x8DD6, - 15565 - 11904: 0x97C0, - 15569 - 11904: 0xA0DE, - 15574 - 11904: 0x97D2, - 15580 - 11904: 0xFAA5, - 15595 - 11904: 0xFDA3, - 15599 - 11904: 0x8DDB, - 15634 - 11904: 0x8CEA, - 15635 - 11904: 0x8EAF, - 15645 - 11904: 0x91B5, - 15666 - 11904: 0xFD49, - 15675 - 11904: 0xFDD1, - 15686 - 11904: 0x8DEB, - 15692 - 11904: 0x97C6, - 15694 - 11904: 0xFDCE, - 15697 - 11904: 0x90FC, - 15711 - 11904: 0xFC59, - 15714 - 11904: 0x96D6, - 15721 - 11904: 0x97C5, - 15722 - 11904: 0x8DEF, - 15727 - 11904: 0x97D7, - 15733 - 11904: 0x8DF0, - 15741 - 11904: 0x96A6, - 15749 - 11904: 0xFBBF, - 15752 - 11904: 0x8CDF, - 15754 - 11904: 0x8DF3, - 15759 - 11904: 0x9449, - 15761 - 11904: 0x8DF5, - 15781 - 11904: 0x9872, - 15789 - 11904: 0x8E6B, - 15796 - 11904: 0xFAFD, - 15807 - 11904: 0x8F50, - 15814 - 11904: 0x9DCC, - 15815 - 11904: 0xFC65, - 15817 - 11904: 0x8C44, - 15820 - 11904: 0x996E, - 15821 - 11904: 0x94A1, - 15827 - 11904: 0x8F63, - 15835 - 11904: 0xA0DA, - 15847 - 11904: 0x9253, - 15848 - 11904: 0xFDE9, - 15851 - 11904: 0x9DB5, - 15859 - 11904: 0x9879, - 15860 - 11904: 0x876A, - 15863 - 11904: 0x9D5D, - 15868 - 11904: 0x8D63, - 15869 - 11904: 0x9669, - 15878 - 11904: 0x9F70, - 15936 - 11904: 0xFC6A, - 15939 - 11904: 0x8AC7, - 15944 - 11904: 0x89D7, - 15957 - 11904: 0xFE4D, - 15988 - 11904: 0x9EDD, - 16040 - 11904: 0xFEFB, - 16041 - 11904: 0x98BC, - 16042 - 11904: 0xFACC, - 16045 - 11904: 0x95B0, - 16049 - 11904: 0x9464, - 16056 - 11904: 0x936F, - 16063 - 11904: 0x94B9, - 16066 - 11904: 0x95EC, - 16071 - 11904: 0x91EE, - 16074 - 11904: 0x98C3, - 16076 - 11904: 0x95F6, - 16080 - 11904: 0x8FFD, - 16081 - 11904: 0x98C5, - 16086 - 11904: 0x9766, - 16087 - 11904: 0xFE6E, - 16090 - 11904: 0x97DD, - 16091 - 11904: 0x8CAA, - 16094 - 11904: 0x92D2, - 16097 - 11904: 0x9761, - 16098 - 11904: 0x98CB, - 16103 - 11904: 0x95F0, - 16105 - 11904: 0x975D, - 16107 - 11904: 0x91E3, - 16108 - 11904: 0x877E, - 16112 - 11904: 0x98CC, - 16115 - 11904: 0x9469, - 16116 - 11904: 0x98CD, - 16122 - 11904: 0x98CE, - 16124 - 11904: 0x95FC, - 16127 - 11904: 0x94A3, - 16128 - 11904: 0x9662, - 16132 - 11904: 0xFEB6, - 16134 - 11904: 0x9463, - 16135 - 11904: 0x8D47, - 16142 - 11904: 0x98D0, - 16211 - 11904: 0x98D1, - 16216 - 11904: 0x9475, - 16217 - 11904: 0xFAE0, - 16227 - 11904: 0x9472, - 16252 - 11904: 0x98D6, - 16275 - 11904: 0x8AF0, - 16320 - 11904: 0x98D9, - 16328 - 11904: 0x8D5A, - 16343 - 11904: 0x98DB, - 16348 - 11904: 0x98DD, - 16357 - 11904: 0x98A8, - 16365 - 11904: 0x8A6D, - 16377 - 11904: 0x8AFB, - 16378 - 11904: 0x8AAE, - 16388 - 11904: 0xFBC9, - 16393 - 11904: 0x8C5D, - 16413 - 11904: 0x98E4, - 16441 - 11904: 0x98E6, - 16453 - 11904: 0x98E8, - 16467 - 11904: 0x8A4D, - 16471 - 11904: 0x9257, - 16482 - 11904: 0x95DF, - 16485 - 11904: 0xA0AC, - 16490 - 11904: 0x98EB, - 16495 - 11904: 0x98EC, - 16497 - 11904: 0x8CC3, - 16552 - 11904: 0x98F4, - 16564 - 11904: 0x87D9, - 16571 - 11904: 0x8AB8, - 16575 - 11904: 0x9EE7, - 16584 - 11904: 0x94BC, - 16600 - 11904: 0xFCD1, - 16607 - 11904: 0x9CC6, - 16632 - 11904: 0x8D4A, - 16634 - 11904: 0x9E7E, - 16642 - 11904: 0x8D44, - 16643 - 11904: 0x98FE, - 16644 - 11904: 0xFDE8, - 16649 - 11904: 0x9940, - 16654 - 11904: 0x94C9, - 16689 - 11904: 0x87C6, - 16690 - 11904: 0x94D3, - 16743 - 11904: 0x9946, - 16748 - 11904: 0x90C0, - 16750 - 11904: 0x94D1, - 16764 - 11904: 0x8D4E, - 16767 - 11904: 0x9573, - 16769 - 11904: 0x87CE, - 16784 - 11904: 0x93C2, - 16818 - 11904: 0x9948, - 16836 - 11904: 0x994B, - 16842 - 11904: 0x8E55, - 16847 - 11904: 0x994E, - 16859 - 11904: 0x8EFE, - 16877 - 11904: 0x8D5F, - 16879 - 11904: 0x8E59, - 16889 - 11904: 0x94EC, - 16913 - 11904: 0x94EF, - 16931 - 11904: 0x8C60, - 16960 - 11904: 0x8F74, - 16992 - 11904: 0x9955, - 17002 - 11904: 0x9544, - 17014 - 11904: 0x8CCB, - 17018 - 11904: 0x9956, - 17036 - 11904: 0x9959, - 17044 - 11904: 0x995B, - 17058 - 11904: 0x8CC4, - 17077 - 11904: 0xFA45, - 17081 - 11904: 0x90B7, - 17084 - 11904: 0x9743, - 17140 - 11904: 0x95CD, - 17147 - 11904: 0x97C9, - 17148 - 11904: 0xFD50, - 17162 - 11904: 0x87AA, - 17195 - 11904: 0x8EB9, - 17262 - 11904: 0x95C6, - 17303 - 11904: 0x9967, - 17306 - 11904: 0x8CE3, - 17338 - 11904: 0x8AB9, - 17345 - 11904: 0x8DFC, - 17369 - 11904: 0x8A76, - 17375 - 11904: 0x9D51, - 17389 - 11904: 0x9973, - 17392 - 11904: 0x8740, - 17394 - 11904: 0x9D4F, - 17409 - 11904: 0x997A, - 17410 - 11904: 0x9564, - 17427 - 11904: 0x99A1, - 17445 - 11904: 0x99A5, - 17453 - 11904: 0x99A7, - 17530 - 11904: 0x8EED, - 17551 - 11904: 0x99AD, - 17553 - 11904: 0xC87E, - 17567 - 11904: 0x946E, - 17568 - 11904: 0x8F70, - 17570 - 11904: 0xFAD0, - 17584 - 11904: 0x99B3, - 17591 - 11904: 0xA053, - 17597 - 11904: 0x8D5E, - 17600 - 11904: 0x965C, - 17603 - 11904: 0x8CE0, - 17605 - 11904: 0xFD7A, - 17614 - 11904: 0x97FE, - 17629 - 11904: 0x92BD, - 17630 - 11904: 0x8D5D, - 17631 - 11904: 0x97FD, - 17633 - 11904: 0x87DB, - 17636 - 11904: 0x8F64, - 17641 - 11904: 0xFCF7, - 17642 - 11904: 0x9562, - 17643 - 11904: 0x97CD, - 17644 - 11904: 0x9E64, - 17652 - 11904: 0x924C, - 17667 - 11904: 0x8EC9, - 17668 - 11904: 0x99BC, - 17673 - 11904: 0x9DA5, - 17675 - 11904: 0x8F54, - 17686 - 11904: 0x8F7C, - 17691 - 11904: 0x8D55, - 17693 - 11904: 0x8EA2, - 17703 - 11904: 0x8F7A, - 17710 - 11904: 0x97AE, - 17715 - 11904: 0x96C8, - 17718 - 11904: 0x8CE4, - 17723 - 11904: 0x99C3, - 17725 - 11904: 0x90D6, - 17727 - 11904: 0x9CBE, - 17731 - 11904: 0x8F76, - 17745 - 11904: 0x9470, - 17746 - 11904: 0xFB4B, - 17749 - 11904: 0xFDCA, - 17752 - 11904: 0x8CEF, - 17756 - 11904: 0x8EC7, - 17761 - 11904: 0x8D54, - 17762 - 11904: 0xA0F9, - 17770 - 11904: 0x8FA9, - 17773 - 11904: 0x8D51, - 17783 - 11904: 0x99C7, - 17784 - 11904: 0x8744, - 17797 - 11904: 0x90D7, - 17830 - 11904: 0x8743, - 17843 - 11904: 0x8747, - 17882 - 11904: 0x8758, - 17897 - 11904: 0x9EDF, - 17898 - 11904: 0x8D59, - 17923 - 11904: 0x8742, - 17926 - 11904: 0x99CE, - 17935 - 11904: 0x8FBA, - 17941 - 11904: 0x8FEB, - 17943 - 11904: 0x99CF, - 18011 - 11904: 0x8FC2, - 18042 - 11904: 0x92C9, - 18048 - 11904: 0x97DC, - 18081 - 11904: 0x875D, - 18094 - 11904: 0x87CC, - 18107 - 11904: 0x8D45, - 18127 - 11904: 0x95B3, - 18128 - 11904: 0x9C79, - 18165 - 11904: 0x95B2, - 18167 - 11904: 0x8D4C, - 18195 - 11904: 0x8FDB, - 18200 - 11904: 0x9BE3, - 18230 - 11904: 0x874C, - 18244 - 11904: 0x874D, - 18254 - 11904: 0x9E7A, - 18255 - 11904: 0x8757, - 18300 - 11904: 0x9BEE, - 18328 - 11904: 0x99DE, - 18342 - 11904: 0xFAFA, - 18389 - 11904: 0x8A52, - 18413 - 11904: 0x99E1, - 18420 - 11904: 0x8A67, - 18432 - 11904: 0x8BB5, - 18443 - 11904: 0x8AAC, - 18487 - 11904: 0x99E9, - 18525 - 11904: 0xFBCA, - 18545 - 11904: 0x97DE, - 18587 - 11904: 0x95D1, - 18605 - 11904: 0x99F5, - 18606 - 11904: 0xFC4A, - 18640 - 11904: 0x9BA9, - 18653 - 11904: 0xFBDC, - 18669 - 11904: 0xFE56, - 18675 - 11904: 0x9EA4, - 18682 - 11904: 0x9D49, - 18694 - 11904: 0x95DB, - 18705 - 11904: 0x89C5, - 18718 - 11904: 0x99F8, - 18725 - 11904: 0x9664, - 18730 - 11904: 0x9055, - 18733 - 11904: 0x96D4, - 18735 - 11904: 0x87C4, - 18736 - 11904: 0x87AE, - 18741 - 11904: 0x977C, - 18748 - 11904: 0x964D, - 18750 - 11904: 0x97E1, - 18757 - 11904: 0x9A48, - 18769 - 11904: 0x9A49, - 18771 - 11904: 0xFE7D, - 18789 - 11904: 0x90AA, - 18794 - 11904: 0x9A50, - 18802 - 11904: 0x9347, - 18825 - 11904: 0x8ED8, - 18849 - 11904: 0x90C9, - 18855 - 11904: 0x9A55, - 18911 - 11904: 0x90BC, - 18917 - 11904: 0x9A58, - 18919 - 11904: 0x8BB8, - 18959 - 11904: 0x90D5, - 18973 - 11904: 0x9641, - 18980 - 11904: 0x9A5A, - 18997 - 11904: 0x9A5C, - 19094 - 11904: 0x97C2, - 19108 - 11904: 0x875C, - 19124 - 11904: 0x8ABB, - 19128 - 11904: 0x9BAA, - 19153 - 11904: 0x90F5, - 19172 - 11904: 0x9A60, - 19199 - 11904: 0x9145, - 19216 - 11904: 0x8C58, - 19225 - 11904: 0x9A63, - 19232 - 11904: 0x8C49, - 19244 - 11904: 0x8BB6, - 19255 - 11904: 0xFCCF, - 19311 - 11904: 0x966B, - 19312 - 11904: 0x9A6E, - 19314 - 11904: 0x914F, - 19323 - 11904: 0x9746, - 19326 - 11904: 0xA0E6, - 19342 - 11904: 0x92D7, - 19344 - 11904: 0x9675, - 19347 - 11904: 0x93D4, - 19350 - 11904: 0x91BB, - 19351 - 11904: 0x9679, - 19357 - 11904: 0x9A70, - 19389 - 11904: 0x9678, - 19390 - 11904: 0x91CD, - 19392 - 11904: 0x9C4A, - 19460 - 11904: 0xA06F, - 19463 - 11904: 0xA06A, - 19470 - 11904: 0x915F, - 19506 - 11904: 0x8741, - 19515 - 11904: 0x9FA5, - 19518 - 11904: 0x89BA, - 19520 - 11904: 0x874F, - 19527 - 11904: 0x874E, - 19543 - 11904: 0x8755, - 19547 - 11904: 0x9ECD, - 19565 - 11904: 0x9A79, - 19575 - 11904: 0x8CF2, - 19579 - 11904: 0x8D57, - 19581 - 11904: 0x9DCE, - 19585 - 11904: 0x8CD2, - 19589 - 11904: 0x8759, - 19620 - 11904: 0x9D73, - 19630 - 11904: 0x96B9, - 19632 - 11904: 0x96BC, - 19639 - 11904: 0x9CD1, - 19661 - 11904: 0x89B7, - 19681 - 11904: 0x9EEE, - 19682 - 11904: 0x8749, - 19693 - 11904: 0xFB43, - 19719 - 11904: 0x875B, - 19721 - 11904: 0x9EC9, - 19728 - 11904: 0xFBD3, - 19764 - 11904: 0x91AE, - 19830 - 11904: 0x8D58, - 19831 - 11904: 0x8746, - 19849 - 11904: 0x8D56, - 19857 - 11904: 0x9D78, - 19868 - 11904: 0x9D7B, - 19968 - 11904: 0xA440, - 19969 - 11904: 0xA442, - 19971 - 11904: 0xA443, - 19972 - 11904: 0x9EB3, - 19975 - 11904: 0xC945, - 19976 - 11904: 0xA456, - 19977 - 11904: 0xA454, - 19978 - 11904: 0xA457, - 19979 - 11904: 0xA455, - 19980 - 11904: 0xC946, - 19981 - 11904: 0xA4A3, - 19982 - 11904: 0xC94F, - 19983 - 11904: 0xC94D, - 19984 - 11904: 0xA4A2, - 19985 - 11904: 0xA4A1, - 19988 - 11904: 0xA542, - 19989 - 11904: 0xA541, - 19990 - 11904: 0xA540, - 19992 - 11904: 0xA543, - 19993 - 11904: 0xA4FE, - 19994 - 11904: 0x9EB2, - 19996 - 11904: 0x9DD6, - 19998 - 11904: 0xA5E0, - 19999 - 11904: 0xA5E1, - 20001 - 11904: 0x994F, - 20004 - 11904: 0x89CE, - 20006 - 11904: 0xA8C3, - 20008 - 11904: 0x8BC0, - 20010 - 11904: 0x9FC4, - 20011 - 11904: 0xA458, - 20012 - 11904: 0x8BD4, - 20013 - 11904: 0xA4A4, - 20014 - 11904: 0xC950, - 20015 - 11904: 0x8C72, - 20016 - 11904: 0xA4A5, - 20017 - 11904: 0xC963, - 20018 - 11904: 0xA6EA, - 20019 - 11904: 0xCBB1, - 20022 - 11904: 0xC6BF, - 20023 - 11904: 0x8BF9, - 20024 - 11904: 0xA459, - 20025 - 11904: 0xA4A6, - 20027 - 11904: 0xA544, - 20028 - 11904: 0xC964, - 20029 - 11904: 0x8946, - 20031 - 11904: 0xC6C0, - 20034 - 11904: 0xC940, - 20035 - 11904: 0xA444, - 20037 - 11904: 0xA45B, - 20039 - 11904: 0xC947, - 20040 - 11904: 0xA45C, - 20041 - 11904: 0xFAE5, - 20043 - 11904: 0xA4A7, - 20045 - 11904: 0xA545, - 20046 - 11904: 0xA547, - 20047 - 11904: 0xA546, - 20050 - 11904: 0xA5E2, - 20051 - 11904: 0xA5E3, - 20054 - 11904: 0xA8C4, - 20056 - 11904: 0xADBC, - 20057 - 11904: 0xA441, - 20058 - 11904: 0xC87B, - 20059 - 11904: 0x8BC6, - 20060 - 11904: 0xC941, - 20061 - 11904: 0xA445, - 20062 - 11904: 0xA45E, - 20063 - 11904: 0xA45D, - 20073 - 11904: 0xA5E4, - 20074 - 11904: 0x9C57, - 20083 - 11904: 0xA8C5, - 20088 - 11904: 0x9AFB, - 20094 - 11904: 0xB0AE, - 20095 - 11904: 0xD44B, - 20096 - 11904: 0x89D0, - 20097 - 11904: 0x89CF, - 20098 - 11904: 0xB6C3, - 20099 - 11904: 0xDCB1, - 20100 - 11904: 0xDCB2, - 20101 - 11904: 0xC6C1, - 20102 - 11904: 0xA446, - 20103 - 11904: 0x89D1, - 20104 - 11904: 0xA4A9, - 20105 - 11904: 0x89E2, - 20107 - 11904: 0xA8C6, - 20108 - 11904: 0xA447, - 20109 - 11904: 0xC948, - 20110 - 11904: 0xA45F, - 20113 - 11904: 0xA4AA, - 20114 - 11904: 0xA4AC, - 20115 - 11904: 0xC951, - 20116 - 11904: 0xA4AD, - 20117 - 11904: 0xA4AB, - 20120 - 11904: 0x927E, - 20121 - 11904: 0xA5E5, - 20122 - 11904: 0x9DBA, - 20123 - 11904: 0xA8C7, - 20126 - 11904: 0xA8C8, - 20127 - 11904: 0xAB45, - 20128 - 11904: 0xC6C2, - 20129 - 11904: 0xA460, - 20130 - 11904: 0xA4AE, - 20131 - 11904: 0x8C6F, - 20132 - 11904: 0xA5E6, - 20133 - 11904: 0xA5E8, - 20134 - 11904: 0xA5E7, - 20136 - 11904: 0xA6EB, - 20139 - 11904: 0xA8C9, - 20140 - 11904: 0xA8CA, - 20141 - 11904: 0xAB46, - 20142 - 11904: 0xAB47, - 20147 - 11904: 0xADBD, - 20150 - 11904: 0xDCB3, - 20151 - 11904: 0xFBF8, - 20153 - 11904: 0xF6D6, - 20154 - 11904: 0xA448, - 20155 - 11904: 0x8BC7, - 20156 - 11904: 0x926B, - 20159 - 11904: 0x89D2, - 20160 - 11904: 0xA4B0, - 20161 - 11904: 0xA4AF, - 20162 - 11904: 0xC952, - 20163 - 11904: 0xA4B1, - 20164 - 11904: 0xA4B7, - 20166 - 11904: 0xA4B2, - 20167 - 11904: 0xA4B3, - 20168 - 11904: 0xC954, - 20169 - 11904: 0xC953, - 20170 - 11904: 0xA4B5, - 20171 - 11904: 0xA4B6, - 20173 - 11904: 0xA4B4, - 20174 - 11904: 0x9FCF, - 20180 - 11904: 0xA54A, - 20181 - 11904: 0xA54B, - 20182 - 11904: 0xA54C, - 20183 - 11904: 0xA54D, - 20184 - 11904: 0xA549, - 20185 - 11904: 0xA550, - 20186 - 11904: 0xC96A, - 20188 - 11904: 0xC966, - 20189 - 11904: 0xC969, - 20190 - 11904: 0xA551, - 20191 - 11904: 0xA561, - 20193 - 11904: 0xC968, - 20195 - 11904: 0xA54E, - 20196 - 11904: 0xA54F, - 20197 - 11904: 0xA548, - 20200 - 11904: 0xC965, - 20201 - 11904: 0xC967, - 20202 - 11904: 0x9DA9, - 20203 - 11904: 0x89D3, - 20206 - 11904: 0x99E2, - 20208 - 11904: 0xA5F5, - 20209 - 11904: 0xC9B0, - 20210 - 11904: 0xA5F2, - 20211 - 11904: 0xA5F6, - 20212 - 11904: 0xC9BA, - 20213 - 11904: 0xC9AE, - 20214 - 11904: 0xA5F3, - 20215 - 11904: 0xC9B2, - 20216 - 11904: 0x9267, - 20219 - 11904: 0xA5F4, - 20221 - 11904: 0xA5F7, - 20223 - 11904: 0xA5E9, - 20224 - 11904: 0xC9B1, - 20225 - 11904: 0xA5F8, - 20226 - 11904: 0xC9B5, - 20227 - 11904: 0x92A4, - 20228 - 11904: 0xC9B9, - 20229 - 11904: 0xC9B6, - 20232 - 11904: 0xC9B3, - 20233 - 11904: 0xA5EA, - 20234 - 11904: 0xA5EC, - 20235 - 11904: 0xA5F9, - 20237 - 11904: 0xA5EE, - 20238 - 11904: 0xC9AB, - 20239 - 11904: 0xA5F1, - 20240 - 11904: 0xA5EF, - 20241 - 11904: 0xA5F0, - 20242 - 11904: 0xC9BB, - 20243 - 11904: 0xC9B8, - 20244 - 11904: 0xC9AF, - 20245 - 11904: 0xA5ED, - 20247 - 11904: 0x8C73, - 20248 - 11904: 0xC9AC, - 20249 - 11904: 0xA5EB, - 20250 - 11904: 0x894E, - 20253 - 11904: 0xC9B4, - 20258 - 11904: 0xC9B7, - 20264 - 11904: 0x894F, - 20265 - 11904: 0x9278, - 20268 - 11904: 0xC9AD, - 20269 - 11904: 0xCA66, - 20271 - 11904: 0xA742, - 20272 - 11904: 0xA6F4, - 20274 - 11904: 0x91B6, - 20275 - 11904: 0xCA67, - 20276 - 11904: 0xA6F1, - 20278 - 11904: 0xA744, - 20279 - 11904: 0x89D4, - 20280 - 11904: 0xA6F9, - 20281 - 11904: 0x9FD2, - 20282 - 11904: 0xA6F8, - 20283 - 11904: 0xCA5B, - 20284 - 11904: 0xA6FC, - 20285 - 11904: 0xA6F7, - 20286 - 11904: 0xCA60, - 20287 - 11904: 0xCA68, - 20289 - 11904: 0xCA64, - 20290 - 11904: 0x92A7, - 20291 - 11904: 0xA6FA, - 20293 - 11904: 0x95A2, - 20294 - 11904: 0xA6FD, - 20295 - 11904: 0xA6EE, - 20296 - 11904: 0xA747, - 20297 - 11904: 0xCA5D, - 20299 - 11904: 0x926E, - 20300 - 11904: 0xCBBD, - 20301 - 11904: 0xA6EC, - 20302 - 11904: 0xA743, - 20303 - 11904: 0xA6ED, - 20304 - 11904: 0xA6F5, - 20305 - 11904: 0xA6F6, - 20306 - 11904: 0xCA62, - 20307 - 11904: 0xCA5E, - 20308 - 11904: 0xA6FB, - 20309 - 11904: 0xA6F3, - 20310 - 11904: 0xCA5A, - 20311 - 11904: 0xA6EF, - 20312 - 11904: 0xCA65, - 20313 - 11904: 0xA745, - 20314 - 11904: 0xA748, - 20315 - 11904: 0xA6F2, - 20316 - 11904: 0xA740, - 20317 - 11904: 0xA746, - 20318 - 11904: 0xA6F0, - 20319 - 11904: 0xCA63, - 20320 - 11904: 0xA741, - 20321 - 11904: 0xCA69, - 20322 - 11904: 0xCA5C, - 20323 - 11904: 0xA6FE, - 20324 - 11904: 0xCA5F, - 20327 - 11904: 0xCA61, - 20329 - 11904: 0xA8D8, - 20330 - 11904: 0xCBBF, - 20331 - 11904: 0xCBCB, - 20332 - 11904: 0xA8D0, - 20334 - 11904: 0xCBCC, - 20335 - 11904: 0xA8CB, - 20336 - 11904: 0xA8D5, - 20338 - 11904: 0x96EA, - 20339 - 11904: 0xA8CE, - 20340 - 11904: 0xCBB9, - 20341 - 11904: 0xA8D6, - 20342 - 11904: 0xCBB8, - 20343 - 11904: 0xCBBC, - 20344 - 11904: 0xCBC3, - 20345 - 11904: 0xCBC1, - 20346 - 11904: 0xA8DE, - 20347 - 11904: 0xA8D9, - 20348 - 11904: 0xCBB3, - 20349 - 11904: 0xCBB5, - 20350 - 11904: 0xA8DB, - 20351 - 11904: 0xA8CF, - 20352 - 11904: 0xCBB6, - 20353 - 11904: 0xCBC2, - 20354 - 11904: 0xCBC9, - 20355 - 11904: 0xA8D4, - 20356 - 11904: 0xCBBB, - 20357 - 11904: 0xCBB4, - 20358 - 11904: 0xA8D3, - 20359 - 11904: 0xCBB7, - 20360 - 11904: 0xA8D7, - 20361 - 11904: 0xCBBA, - 20362 - 11904: 0x926F, - 20363 - 11904: 0xA8D2, - 20365 - 11904: 0xA8CD, - 20367 - 11904: 0xA8DC, - 20368 - 11904: 0xCBC4, - 20369 - 11904: 0xA8DD, - 20370 - 11904: 0xCBC8, - 20372 - 11904: 0xCBC6, - 20373 - 11904: 0xCBCA, - 20374 - 11904: 0xA8DA, - 20375 - 11904: 0xCBBE, - 20376 - 11904: 0xCBB2, - 20378 - 11904: 0xCBC0, - 20379 - 11904: 0xA8D1, - 20380 - 11904: 0xCBC5, - 20381 - 11904: 0xA8CC, - 20382 - 11904: 0xCBC7, - 20386 - 11904: 0x92A3, - 20392 - 11904: 0x8950, - 20395 - 11904: 0xFA57, - 20398 - 11904: 0xAB56, - 20399 - 11904: 0xAB4A, - 20400 - 11904: 0x9866, - 20402 - 11904: 0xCDE0, - 20403 - 11904: 0xCDE8, - 20404 - 11904: 0x8CF8, - 20405 - 11904: 0xAB49, - 20406 - 11904: 0xAB51, - 20407 - 11904: 0xAB5D, - 20409 - 11904: 0xCDEE, - 20410 - 11904: 0xCDEC, - 20411 - 11904: 0xCDE7, - 20413 - 11904: 0x89D6, - 20415 - 11904: 0xAB4B, - 20416 - 11904: 0xCDED, - 20417 - 11904: 0xCDE3, - 20418 - 11904: 0xAB59, - 20419 - 11904: 0xAB50, - 20420 - 11904: 0xAB58, - 20421 - 11904: 0xCDDE, - 20423 - 11904: 0xCDEA, - 20424 - 11904: 0x98B2, - 20425 - 11904: 0xCDE1, - 20426 - 11904: 0xAB54, - 20427 - 11904: 0xCDE2, - 20428 - 11904: 0x92AB, - 20429 - 11904: 0xCDDD, - 20430 - 11904: 0xAB5B, - 20431 - 11904: 0xAB4E, - 20432 - 11904: 0xAB57, - 20433 - 11904: 0xAB4D, - 20435 - 11904: 0xCDDF, - 20436 - 11904: 0xCDE4, - 20438 - 11904: 0xCDEB, - 20439 - 11904: 0xAB55, - 20440 - 11904: 0xAB52, - 20441 - 11904: 0xCDE6, - 20442 - 11904: 0xAB5A, - 20443 - 11904: 0xCDE9, - 20444 - 11904: 0xCDE5, - 20445 - 11904: 0xAB4F, - 20446 - 11904: 0xAB5C, - 20447 - 11904: 0xAB53, - 20448 - 11904: 0xAB4C, - 20449 - 11904: 0xAB48, - 20452 - 11904: 0x96DE, - 20453 - 11904: 0x92AC, - 20460 - 11904: 0xCDEF, - 20462 - 11904: 0xADD7, - 20463 - 11904: 0xADC1, - 20464 - 11904: 0x8C70, - 20465 - 11904: 0xADD1, - 20466 - 11904: 0x9F6E, - 20467 - 11904: 0xADD6, - 20468 - 11904: 0xD0D0, - 20469 - 11904: 0xD0CF, - 20470 - 11904: 0xD0D4, - 20471 - 11904: 0xD0D5, - 20472 - 11904: 0xADC4, - 20473 - 11904: 0x8EF2, - 20474 - 11904: 0xADCD, - 20477 - 11904: 0x9F6C, - 20478 - 11904: 0xADDA, - 20480 - 11904: 0xADCE, - 20483 - 11904: 0x89D8, - 20485 - 11904: 0xD0C9, - 20486 - 11904: 0xADC7, - 20487 - 11904: 0xD0CA, - 20488 - 11904: 0xFA59, - 20489 - 11904: 0xADDC, - 20491 - 11904: 0xADD3, - 20492 - 11904: 0xADBE, - 20493 - 11904: 0xADBF, - 20494 - 11904: 0xD0DD, - 20495 - 11904: 0xB0BF, - 20497 - 11904: 0xADCC, - 20498 - 11904: 0xADCB, - 20499 - 11904: 0xD0CB, - 20500 - 11904: 0xADCF, - 20501 - 11904: 0xD45B, - 20502 - 11904: 0xADC6, - 20503 - 11904: 0xD0D6, - 20504 - 11904: 0xADD5, - 20505 - 11904: 0xADD4, - 20506 - 11904: 0xADCA, - 20507 - 11904: 0xD0CE, - 20508 - 11904: 0xD0D7, - 20510 - 11904: 0xD0C8, - 20511 - 11904: 0xADC9, - 20512 - 11904: 0xD0D8, - 20513 - 11904: 0xADD2, - 20514 - 11904: 0xD0CC, - 20515 - 11904: 0xADC0, - 20517 - 11904: 0xADC3, - 20518 - 11904: 0xADC2, - 20519 - 11904: 0xD0D9, - 20520 - 11904: 0xADD0, - 20521 - 11904: 0xFA5F, - 20522 - 11904: 0xADD9, - 20523 - 11904: 0xADDB, - 20524 - 11904: 0xD0D3, - 20525 - 11904: 0xADD8, - 20526 - 11904: 0x92A8, - 20527 - 11904: 0xD0DB, - 20528 - 11904: 0xD0CD, - 20529 - 11904: 0xD0DC, - 20531 - 11904: 0xD0D1, - 20532 - 11904: 0x9163, - 20533 - 11904: 0xD0DA, - 20535 - 11904: 0xD0D2, - 20539 - 11904: 0x8C40, - 20540 - 11904: 0xADC8, - 20544 - 11904: 0xD463, - 20545 - 11904: 0xD457, - 20547 - 11904: 0xB0B3, - 20549 - 11904: 0xD45C, - 20550 - 11904: 0xD462, - 20551 - 11904: 0xB0B2, - 20552 - 11904: 0xD455, - 20553 - 11904: 0xB0B6, - 20554 - 11904: 0xD459, - 20555 - 11904: 0xD452, - 20556 - 11904: 0xB0B4, - 20557 - 11904: 0xD456, - 20558 - 11904: 0xB0B9, - 20559 - 11904: 0xB0BE, - 20561 - 11904: 0xD467, - 20563 - 11904: 0xD451, - 20565 - 11904: 0xB0BA, - 20566 - 11904: 0x9F73, - 20567 - 11904: 0xD466, - 20568 - 11904: 0x92AD, - 20570 - 11904: 0xB0B5, - 20571 - 11904: 0xD458, - 20572 - 11904: 0xB0B1, - 20573 - 11904: 0xD453, - 20574 - 11904: 0xD44F, - 20575 - 11904: 0xD45D, - 20576 - 11904: 0xD450, - 20577 - 11904: 0xD44E, - 20578 - 11904: 0xD45A, - 20579 - 11904: 0xD460, - 20580 - 11904: 0xD461, - 20581 - 11904: 0xB0B7, - 20582 - 11904: 0x9BE9, - 20584 - 11904: 0xD85B, - 20585 - 11904: 0xD45E, - 20586 - 11904: 0xD44D, - 20587 - 11904: 0xD45F, - 20588 - 11904: 0x92A9, - 20589 - 11904: 0xB0C1, - 20590 - 11904: 0xD464, - 20591 - 11904: 0xB0C0, - 20592 - 11904: 0xD44C, - 20594 - 11904: 0xD454, - 20595 - 11904: 0xD465, - 20596 - 11904: 0xB0BC, - 20597 - 11904: 0xB0BB, - 20598 - 11904: 0xB0B8, - 20599 - 11904: 0xB0BD, - 20602 - 11904: 0xB0AF, - 20605 - 11904: 0xFA66, - 20608 - 11904: 0xB3C8, - 20609 - 11904: 0x92AA, - 20610 - 11904: 0xD85E, - 20611 - 11904: 0xD857, - 20613 - 11904: 0xB3C5, - 20615 - 11904: 0xD85F, - 20616 - 11904: 0x89D9, - 20619 - 11904: 0xD855, - 20620 - 11904: 0xD858, - 20621 - 11904: 0xB3C4, - 20622 - 11904: 0xD859, - 20624 - 11904: 0xFD56, - 20625 - 11904: 0xB3C7, - 20626 - 11904: 0xD85D, - 20628 - 11904: 0xD853, - 20629 - 11904: 0xD852, - 20630 - 11904: 0xB3C9, - 20632 - 11904: 0xB3CA, - 20633 - 11904: 0xB3C6, - 20634 - 11904: 0xB3CB, - 20635 - 11904: 0xD851, - 20636 - 11904: 0xD85C, - 20637 - 11904: 0xD85A, - 20638 - 11904: 0xD854, - 20642 - 11904: 0xB3C3, - 20643 - 11904: 0xD856, - 20646 - 11904: 0x9FA8, - 20652 - 11904: 0xB6CA, - 20653 - 11904: 0xB6C4, - 20654 - 11904: 0xDCB7, - 20655 - 11904: 0xB6CD, - 20656 - 11904: 0xDCBD, - 20657 - 11904: 0xDCC0, - 20658 - 11904: 0xB6C6, - 20659 - 11904: 0xB6C7, - 20660 - 11904: 0xDCBA, - 20661 - 11904: 0xB6C5, - 20662 - 11904: 0xDCC3, - 20663 - 11904: 0xB6CB, - 20664 - 11904: 0xDCC4, - 20666 - 11904: 0xDCBF, - 20667 - 11904: 0xB6CC, - 20668 - 11904: 0x8C71, - 20669 - 11904: 0xDCB4, - 20670 - 11904: 0xB6C9, - 20671 - 11904: 0xDCB5, - 20673 - 11904: 0xDCBE, - 20674 - 11904: 0xDCBC, - 20676 - 11904: 0xDCB8, - 20677 - 11904: 0xB6C8, - 20678 - 11904: 0xDCB6, - 20679 - 11904: 0xB6CE, - 20680 - 11904: 0xDCBB, - 20681 - 11904: 0xDCC2, - 20682 - 11904: 0xDCB9, - 20683 - 11904: 0xDCC1, - 20685 - 11904: 0x92A1, - 20686 - 11904: 0xB9B6, - 20687 - 11904: 0xB9B3, - 20688 - 11904: 0x90E3, - 20689 - 11904: 0xB9B4, - 20691 - 11904: 0xE0F9, - 20692 - 11904: 0xE0F1, - 20693 - 11904: 0xB9B2, - 20694 - 11904: 0xB9AF, - 20695 - 11904: 0xE0F2, - 20697 - 11904: 0xA0A6, - 20698 - 11904: 0xB9B1, - 20699 - 11904: 0xE0F5, - 20701 - 11904: 0xE0F7, - 20703 - 11904: 0x94AB, - 20704 - 11904: 0xE0FE, - 20705 - 11904: 0xFC72, - 20707 - 11904: 0xE0FD, - 20708 - 11904: 0xE0F8, - 20709 - 11904: 0xB9AE, - 20710 - 11904: 0xE0F0, - 20711 - 11904: 0xB9AC, - 20712 - 11904: 0xE0F3, - 20713 - 11904: 0xB9B7, - 20714 - 11904: 0xE0F6, - 20716 - 11904: 0xE0FA, - 20717 - 11904: 0xB9B0, - 20718 - 11904: 0xB9AD, - 20719 - 11904: 0xE0FC, - 20720 - 11904: 0xE0FB, - 20721 - 11904: 0xB9B5, - 20723 - 11904: 0xE0F4, - 20724 - 11904: 0x97C4, - 20725 - 11904: 0xBBF8, - 20726 - 11904: 0xE4EC, - 20728 - 11904: 0xE4E9, - 20729 - 11904: 0xBBF9, - 20731 - 11904: 0xBBF7, - 20732 - 11904: 0x92AE, - 20733 - 11904: 0xE4F0, - 20734 - 11904: 0xE4ED, - 20735 - 11904: 0xE4E6, - 20736 - 11904: 0xBBF6, - 20737 - 11904: 0xFA67, - 20738 - 11904: 0xBBFA, - 20739 - 11904: 0xE4E7, - 20740 - 11904: 0xBBF5, - 20741 - 11904: 0xBBFD, - 20742 - 11904: 0xE4EA, - 20743 - 11904: 0xE4EB, - 20744 - 11904: 0xBBFB, - 20745 - 11904: 0xBBFC, - 20746 - 11904: 0xE4F1, - 20747 - 11904: 0xE4EE, - 20748 - 11904: 0xE4EF, - 20749 - 11904: 0x92A2, - 20750 - 11904: 0xFA69, - 20752 - 11904: 0xBEAA, - 20753 - 11904: 0xE8F8, - 20754 - 11904: 0xBEA7, - 20755 - 11904: 0xE8F5, - 20756 - 11904: 0xBEA9, - 20757 - 11904: 0xBEAB, - 20759 - 11904: 0xE8F6, - 20760 - 11904: 0xBEA8, - 20762 - 11904: 0xE8F7, - 20764 - 11904: 0xE8F4, - 20767 - 11904: 0xC076, - 20768 - 11904: 0xECBD, - 20769 - 11904: 0xC077, - 20770 - 11904: 0xECBB, - 20772 - 11904: 0xECBC, - 20773 - 11904: 0xECBA, - 20774 - 11904: 0xECB9, - 20777 - 11904: 0xECBE, - 20778 - 11904: 0xC075, - 20779 - 11904: 0x9268, - 20781 - 11904: 0xEFB8, - 20782 - 11904: 0xEFB9, - 20784 - 11904: 0xE4E8, - 20785 - 11904: 0xEFB7, - 20786 - 11904: 0xC078, - 20787 - 11904: 0xC35F, - 20788 - 11904: 0xF1EB, - 20789 - 11904: 0xF1EC, - 20791 - 11904: 0xC4D7, - 20792 - 11904: 0xC4D8, - 20793 - 11904: 0xF5C1, - 20794 - 11904: 0xF5C0, - 20795 - 11904: 0xC56C, - 20796 - 11904: 0xC56B, - 20797 - 11904: 0xF7D0, - 20799 - 11904: 0xA449, - 20800 - 11904: 0xA461, - 20801 - 11904: 0xA4B9, - 20803 - 11904: 0xA4B8, - 20804 - 11904: 0xA553, - 20805 - 11904: 0xA552, - 20806 - 11904: 0xA5FC, - 20807 - 11904: 0xA5FB, - 20808 - 11904: 0xA5FD, - 20809 - 11904: 0xA5FA, - 20811 - 11904: 0xA74A, - 20812 - 11904: 0xA749, - 20813 - 11904: 0xA74B, - 20818 - 11904: 0xA8E0, - 20820 - 11904: 0xA8DF, - 20821 - 11904: 0xA8E1, - 20822 - 11904: 0x8951, - 20823 - 11904: 0xAB5E, - 20825 - 11904: 0xA259, - 20826 - 11904: 0xD0DE, - 20827 - 11904: 0xA25A, - 20828 - 11904: 0xB0C2, - 20829 - 11904: 0xA25C, - 20830 - 11904: 0xA25B, - 20831 - 11904: 0xD860, - 20832 - 11904: 0xFA6F, - 20833 - 11904: 0xA25D, - 20834 - 11904: 0xB9B8, - 20835 - 11904: 0xA25E, - 20837 - 11904: 0xA44A, - 20839 - 11904: 0xA4BA, - 20840 - 11904: 0xA5FE, - 20841 - 11904: 0xA8E2, - 20842 - 11904: 0xFA71, - 20843 - 11904: 0xA44B, - 20844 - 11904: 0xA4BD, - 20845 - 11904: 0xA4BB, - 20846 - 11904: 0xA4BC, - 20849 - 11904: 0xA640, - 20852 - 11904: 0x8952, - 20853 - 11904: 0xA74C, - 20854 - 11904: 0xA8E4, - 20855 - 11904: 0xA8E3, - 20856 - 11904: 0xA8E5, - 20857 - 11904: 0x945A, - 20860 - 11904: 0xADDD, - 20864 - 11904: 0xBEAC, - 20866 - 11904: 0xC6C3, - 20870 - 11904: 0x89DD, - 20871 - 11904: 0xC94E, - 20872 - 11904: 0xC8A2, - 20873 - 11904: 0xA554, - 20874 - 11904: 0xA555, - 20877 - 11904: 0xA641, - 20879 - 11904: 0xCA6A, - 20881 - 11904: 0xAB60, - 20882 - 11904: 0xAB5F, - 20883 - 11904: 0xD0E0, - 20884 - 11904: 0xD0DF, - 20885 - 11904: 0xB0C3, - 20886 - 11904: 0xC6C4, - 20887 - 11904: 0xA4BE, - 20888 - 11904: 0xC955, - 20890 - 11904: 0x9E52, - 20892 - 11904: 0x8953, - 20894 - 11904: 0xCBCD, - 20896 - 11904: 0xAB61, - 20898 - 11904: 0xADE0, - 20900 - 11904: 0xADDE, - 20901 - 11904: 0xADDF, - 20903 - 11904: 0x9E55, - 20904 - 11904: 0x92BA, - 20906 - 11904: 0xBEAD, - 20907 - 11904: 0xC6C5, - 20908 - 11904: 0xA556, - 20910 - 11904: 0x8C5B, - 20912 - 11904: 0xA642, - 20913 - 11904: 0xC9BC, - 20914 - 11904: 0xFA7D, - 20915 - 11904: 0xFAA8, - 20916 - 11904: 0x9A68, - 20917 - 11904: 0xFA47, - 20918 - 11904: 0xA74D, - 20919 - 11904: 0xA74E, - 20920 - 11904: 0xFA7E, - 20921 - 11904: 0xCA6B, - 20924 - 11904: 0xCBCE, - 20925 - 11904: 0xA8E6, - 20926 - 11904: 0xCBCF, - 20931 - 11904: 0x92BB, - 20932 - 11904: 0xD0E2, - 20933 - 11904: 0xD0E3, - 20934 - 11904: 0xADE3, - 20935 - 11904: 0xFDB6, - 20936 - 11904: 0xD0E4, - 20937 - 11904: 0xFAA2, - 20938 - 11904: 0xD0E1, - 20939 - 11904: 0xADE4, - 20940 - 11904: 0xADE2, - 20941 - 11904: 0xADE1, - 20942 - 11904: 0xD0E5, - 20943 - 11904: 0xFAA3, - 20944 - 11904: 0xD468, - 20945 - 11904: 0xFAA4, - 20946 - 11904: 0x9BB4, - 20947 - 11904: 0xFAA6, - 20948 - 11904: 0xD861, - 20951 - 11904: 0xDCC5, - 20952 - 11904: 0xE140, - 20955 - 11904: 0x89DF, - 20956 - 11904: 0xBBFE, - 20957 - 11904: 0xBEAE, - 20958 - 11904: 0xE8F9, - 20959 - 11904: 0xFDDB, - 20960 - 11904: 0xA44C, - 20961 - 11904: 0xA45A, - 20962 - 11904: 0xFAA9, - 20964 - 11904: 0x8954, - 20973 - 11904: 0xFAAB, - 20976 - 11904: 0xB0C4, - 20977 - 11904: 0xB3CD, - 20979 - 11904: 0xB9B9, - 20980 - 11904: 0xFC7A, - 20981 - 11904: 0xC942, - 20982 - 11904: 0xA4BF, - 20984 - 11904: 0xA559, - 20985 - 11904: 0xA557, - 20986 - 11904: 0xA558, - 20988 - 11904: 0x89E0, - 20989 - 11904: 0xA8E7, - 20990 - 11904: 0x9F4F, - 20992 - 11904: 0xA44D, - 20993 - 11904: 0xA44E, - 20994 - 11904: 0xC87D, - 20995 - 11904: 0xA462, - 20997 - 11904: 0x89E1, - 20998 - 11904: 0xA4C0, - 20999 - 11904: 0xA4C1, - 21000 - 11904: 0xA4C2, - 21001 - 11904: 0xC9BE, - 21002 - 11904: 0xA55A, - 21003 - 11904: 0xFAB0, - 21004 - 11904: 0xC96B, - 21006 - 11904: 0xA646, - 21008 - 11904: 0xC9BF, - 21009 - 11904: 0xA644, - 21010 - 11904: 0xA645, - 21011 - 11904: 0xC9BD, - 21014 - 11904: 0xA647, - 21015 - 11904: 0xA643, - 21020 - 11904: 0xCA6C, - 21021 - 11904: 0xAAEC, - 21022 - 11904: 0xCA6D, - 21023 - 11904: 0x9FCD, - 21024 - 11904: 0xA0E7, - 21025 - 11904: 0xCA6E, - 21028 - 11904: 0xA750, - 21029 - 11904: 0xA74F, - 21030 - 11904: 0xFAB1, - 21031 - 11904: 0x89A6, - 21032 - 11904: 0xA753, - 21033 - 11904: 0xA751, - 21034 - 11904: 0xA752, - 21038 - 11904: 0xA8ED, - 21040 - 11904: 0xA8EC, - 21041 - 11904: 0xCBD4, - 21042 - 11904: 0xCBD1, - 21043 - 11904: 0xCBD2, - 21044 - 11904: 0x9EFA, - 21045 - 11904: 0xCBD0, - 21046 - 11904: 0xA8EE, - 21047 - 11904: 0xA8EA, - 21048 - 11904: 0xA8E9, - 21050 - 11904: 0xA8EB, - 21051 - 11904: 0xA8E8, - 21052 - 11904: 0xFAB2, - 21057 - 11904: 0xA8EF, - 21059 - 11904: 0xAB63, - 21060 - 11904: 0xCDF0, - 21062 - 11904: 0xCBD3, - 21063 - 11904: 0xAB68, - 21065 - 11904: 0xCDF1, - 21066 - 11904: 0xAB64, - 21067 - 11904: 0xAB67, - 21068 - 11904: 0xAB66, - 21069 - 11904: 0xAB65, - 21070 - 11904: 0xAB62, - 21071 - 11904: 0x87BC, - 21074 - 11904: 0xD0E8, - 21076 - 11904: 0xADE7, - 21077 - 11904: 0xD0EB, - 21078 - 11904: 0xADE5, - 21079 - 11904: 0xFAB4, - 21081 - 11904: 0x92C4, - 21082 - 11904: 0xD0E7, - 21083 - 11904: 0xADE8, - 21084 - 11904: 0xADE6, - 21085 - 11904: 0xADE9, - 21086 - 11904: 0xD0E9, - 21087 - 11904: 0xD0EA, - 21088 - 11904: 0x9F6F, - 21089 - 11904: 0xD0E6, - 21090 - 11904: 0xD0EC, - 21096 - 11904: 0x8BB0, - 21097 - 11904: 0xB3D1, - 21098 - 11904: 0xB0C5, - 21099 - 11904: 0xD469, - 21100 - 11904: 0xD46B, - 21101 - 11904: 0xD46A, - 21102 - 11904: 0xD46C, - 21103 - 11904: 0xB0C6, - 21106 - 11904: 0xB3CE, - 21107 - 11904: 0x9FAC, - 21108 - 11904: 0xB3CF, - 21109 - 11904: 0xB3D0, - 21111 - 11904: 0xB6D0, - 21112 - 11904: 0xDCC7, - 21113 - 11904: 0x89E3, - 21114 - 11904: 0xDCC6, - 21115 - 11904: 0xDCC8, - 21116 - 11904: 0xDCC9, - 21117 - 11904: 0xB6D1, - 21119 - 11904: 0xB6CF, - 21120 - 11904: 0xE141, - 21121 - 11904: 0xE142, - 21122 - 11904: 0xB9BB, - 21123 - 11904: 0xB9BA, - 21124 - 11904: 0xE35A, - 21127 - 11904: 0xBC40, - 21128 - 11904: 0xBC41, - 21129 - 11904: 0xBC42, - 21130 - 11904: 0xBC44, - 21131 - 11904: 0xE4F2, - 21132 - 11904: 0xE4F3, - 21133 - 11904: 0xBC43, - 21135 - 11904: 0x9BD3, - 21136 - 11904: 0x89E4, - 21137 - 11904: 0xBEAF, - 21139 - 11904: 0xBEB0, - 21140 - 11904: 0xFAB5, - 21142 - 11904: 0xF1ED, - 21143 - 11904: 0xF5C3, - 21144 - 11904: 0xF5C2, - 21145 - 11904: 0xF7D1, - 21146 - 11904: 0x9FD5, - 21147 - 11904: 0xA44F, - 21151 - 11904: 0xA55C, - 21152 - 11904: 0xA55B, - 21153 - 11904: 0x8955, - 21155 - 11904: 0xA648, - 21156 - 11904: 0x92C5, - 21158 - 11904: 0xC9C0, - 21160 - 11904: 0x8956, - 21161 - 11904: 0xA755, - 21162 - 11904: 0xA756, - 21163 - 11904: 0xA754, - 21164 - 11904: 0xA757, - 21165 - 11904: 0xCA6F, - 21166 - 11904: 0xCA70, - 21173 - 11904: 0xFAB3, - 21177 - 11904: 0xFAB6, - 21179 - 11904: 0xA8F1, - 21180 - 11904: 0xCBD5, - 21182 - 11904: 0xA8F0, - 21184 - 11904: 0xCDF2, - 21185 - 11904: 0xAB6C, - 21186 - 11904: 0xCDF3, - 21187 - 11904: 0xAB6B, - 21189 - 11904: 0xFAB7, - 21191 - 11904: 0xAB69, - 21193 - 11904: 0xAB6A, - 21196 - 11904: 0x9EDC, - 21197 - 11904: 0xD0ED, - 21200 - 11904: 0xFBC4, - 21201 - 11904: 0x9F71, - 21202 - 11904: 0xB0C7, - 21203 - 11904: 0xD46E, - 21205 - 11904: 0xB0CA, - 21206 - 11904: 0xD46D, - 21207 - 11904: 0xB1E5, - 21208 - 11904: 0xB0C9, - 21209 - 11904: 0xB0C8, - 21211 - 11904: 0xB3D4, - 21213 - 11904: 0xB3D3, - 21214 - 11904: 0xB3D2, - 21215 - 11904: 0xB6D2, - 21216 - 11904: 0xFABA, - 21217 - 11904: 0x92C7, - 21218 - 11904: 0xB6D5, - 21219 - 11904: 0xB6D6, - 21220 - 11904: 0xB6D4, - 21222 - 11904: 0xB6D3, - 21225 - 11904: 0xE143, - 21227 - 11904: 0xE144, - 21231 - 11904: 0xE4F5, - 21232 - 11904: 0xBC45, - 21233 - 11904: 0xE4F4, - 21235 - 11904: 0xBEB1, - 21236 - 11904: 0xECBF, - 21237 - 11904: 0xC079, - 21239 - 11904: 0xF1EE, - 21240 - 11904: 0xC455, - 21241 - 11904: 0xC6C6, - 21242 - 11904: 0xA463, - 21243 - 11904: 0xA4C3, - 21244 - 11904: 0xC956, - 21246 - 11904: 0xA4C4, - 21247 - 11904: 0xA4C5, - 21249 - 11904: 0x9A4C, - 21253 - 11904: 0xFABD, - 21254 - 11904: 0xA55E, - 21256 - 11904: 0xA649, - 21257 - 11904: 0xCA71, - 21258 - 11904: 0xCBD6, - 21259 - 11904: 0xCBD7, - 21261 - 11904: 0xAB6D, - 21262 - 11904: 0xD0EE, - 21263 - 11904: 0xB0CC, - 21264 - 11904: 0xB0CB, - 21265 - 11904: 0xD863, - 21266 - 11904: 0xD862, - 21269 - 11904: 0xA450, - 21270 - 11904: 0xA4C6, - 21271 - 11904: 0xA55F, - 21273 - 11904: 0xB0CD, - 21274 - 11904: 0xC943, - 21276 - 11904: 0xC96C, - 21277 - 11904: 0xA560, - 21279 - 11904: 0xC9C2, - 21280 - 11904: 0xA64B, - 21281 - 11904: 0xA64A, - 21282 - 11904: 0xC9C1, - 21283 - 11904: 0xA758, - 21284 - 11904: 0x8C68, - 21287 - 11904: 0x89E5, - 21290 - 11904: 0xADEA, - 21292 - 11904: 0x9F7D, - 21293 - 11904: 0xD46F, - 21295 - 11904: 0xB6D7, - 21296 - 11904: 0xE145, - 21297 - 11904: 0xB9BC, - 21298 - 11904: 0xA0A9, - 21299 - 11904: 0xFAC4, - 21300 - 11904: 0xE8FA, - 21303 - 11904: 0xF3FD, - 21304 - 11904: 0xC6C7, - 21305 - 11904: 0xA4C7, - 21307 - 11904: 0x8957, - 21308 - 11904: 0xCBD8, - 21309 - 11904: 0xCDF4, - 21310 - 11904: 0xB0D0, - 21311 - 11904: 0xB0CE, - 21312 - 11904: 0xB0CF, - 21313 - 11904: 0xA451, - 21314 - 11904: 0xFAAA, - 21315 - 11904: 0xA464, - 21316 - 11904: 0xFAC5, - 21317 - 11904: 0xA4CA, - 21319 - 11904: 0xA4C9, - 21320 - 11904: 0xA4C8, - 21321 - 11904: 0xA563, - 21322 - 11904: 0xA562, - 21324 - 11904: 0xC96D, - 21325 - 11904: 0xC9C3, - 21326 - 11904: 0x8958, - 21329 - 11904: 0xA8F5, - 21330 - 11904: 0xA8F2, - 21331 - 11904: 0xA8F4, - 21332 - 11904: 0xA8F3, - 21335 - 11904: 0xAB6E, - 21338 - 11904: 0xB3D5, - 21340 - 11904: 0xA452, - 21341 - 11904: 0x8BE3, - 21342 - 11904: 0xA4CB, - 21343 - 11904: 0x8B61, - 21344 - 11904: 0xA565, - 21345 - 11904: 0xA564, - 21347 - 11904: 0xCA72, - 21348 - 11904: 0x9AF1, - 21350 - 11904: 0xA8F6, - 21351 - 11904: 0x9EB7, - 21353 - 11904: 0xC6C8, - 21356 - 11904: 0xC957, - 21357 - 11904: 0xFAD1, - 21358 - 11904: 0xA567, - 21359 - 11904: 0xA566, - 21360 - 11904: 0xA64C, - 21361 - 11904: 0xA64D, - 21362 - 11904: 0xCA73, - 21363 - 11904: 0xA759, - 21364 - 11904: 0xFAD2, - 21365 - 11904: 0xA75A, - 21367 - 11904: 0xA8F7, - 21368 - 11904: 0xA8F8, - 21369 - 11904: 0xA8F9, - 21371 - 11904: 0xAB6F, - 21372 - 11904: 0xCDF5, - 21373 - 11904: 0x9EBA, - 21374 - 11904: 0xFAD4, - 21375 - 11904: 0xFAD5, - 21378 - 11904: 0xC944, - 21380 - 11904: 0xA4CC, - 21386 - 11904: 0xC9C4, - 21390 - 11904: 0xCA74, - 21391 - 11904: 0xCA75, - 21394 - 11904: 0xCBD9, - 21395 - 11904: 0xFAD9, - 21396 - 11904: 0xCBDA, - 21398 - 11904: 0xCDF7, - 21399 - 11904: 0xCDF6, - 21400 - 11904: 0xCDF9, - 21401 - 11904: 0xCDF8, - 21402 - 11904: 0xAB70, - 21404 - 11904: 0xD470, - 21405 - 11904: 0xADED, - 21406 - 11904: 0xD0EF, - 21407 - 11904: 0xADEC, - 21408 - 11904: 0xFADB, - 21410 - 11904: 0x9CE0, - 21412 - 11904: 0xD864, - 21413 - 11904: 0xB3D6, - 21414 - 11904: 0xFBF7, - 21415 - 11904: 0xD865, - 21416 - 11904: 0xFBFA, - 21417 - 11904: 0x89E7, - 21418 - 11904: 0xA07A, - 21419 - 11904: 0xFADC, - 21420 - 11904: 0xE146, - 21421 - 11904: 0xB9BD, - 21422 - 11904: 0xFADD, - 21424 - 11904: 0x89E9, - 21426 - 11904: 0xBC46, - 21428 - 11904: 0xF1EF, - 21430 - 11904: 0xC6C9, - 21433 - 11904: 0xC958, - 21435 - 11904: 0xA568, - 21441 - 11904: 0xFAE2, - 21442 - 11904: 0x89EB, - 21443 - 11904: 0xB0D1, - 21445 - 11904: 0xFAE3, - 21448 - 11904: 0xA453, - 21449 - 11904: 0xA465, - 21450 - 11904: 0xA4CE, - 21451 - 11904: 0xA4CD, - 21452 - 11904: 0x90C8, - 21453 - 11904: 0xA4CF, - 21456 - 11904: 0x92DA, - 21457 - 11904: 0x8959, - 21458 - 11904: 0x9CF5, - 21460 - 11904: 0xA8FB, - 21462 - 11904: 0xA8FA, - 21463 - 11904: 0xA8FC, - 21464 - 11904: 0x895A, - 21465 - 11904: 0xFAE7, - 21466 - 11904: 0x9FA2, - 21467 - 11904: 0xAB71, - 21471 - 11904: 0xADEE, - 21472 - 11904: 0xFAEA, - 21473 - 11904: 0xE8FB, - 21474 - 11904: 0xC24F, - 21475 - 11904: 0xA466, - 21476 - 11904: 0xA56A, - 21477 - 11904: 0xA579, - 21478 - 11904: 0xA574, - 21480 - 11904: 0xA56F, - 21481 - 11904: 0xA56E, - 21482 - 11904: 0xA575, - 21483 - 11904: 0xA573, - 21484 - 11904: 0xA56C, - 21485 - 11904: 0xA57A, - 21486 - 11904: 0xA56D, - 21487 - 11904: 0xA569, - 21488 - 11904: 0xA578, - 21489 - 11904: 0xA577, - 21490 - 11904: 0xA576, - 21491 - 11904: 0xA56B, - 21493 - 11904: 0xA572, - 21494 - 11904: 0xFAED, - 21495 - 11904: 0x8FAD, - 21496 - 11904: 0xA571, - 21499 - 11904: 0xA57B, - 21500 - 11904: 0xA570, - 21502 - 11904: 0xFB59, - 21505 - 11904: 0xA653, - 21507 - 11904: 0xA659, - 21508 - 11904: 0xA655, - 21510 - 11904: 0xA65B, - 21511 - 11904: 0xC9C5, - 21512 - 11904: 0xA658, - 21513 - 11904: 0xA64E, - 21514 - 11904: 0xA651, - 21515 - 11904: 0xA654, - 21516 - 11904: 0xA650, - 21517 - 11904: 0xA657, - 21518 - 11904: 0xA65A, - 21519 - 11904: 0xA64F, - 21520 - 11904: 0xA652, - 21521 - 11904: 0xA656, - 21522 - 11904: 0xA65C, - 21523 - 11904: 0xFAEF, - 21524 - 11904: 0x96EF, - 21526 - 11904: 0x9DEC, - 21528 - 11904: 0xCA7E, - 21529 - 11904: 0xCA7B, - 21530 - 11904: 0x9DCA, - 21531 - 11904: 0xA767, - 21532 - 11904: 0xCA7C, - 21533 - 11904: 0xA75B, - 21534 - 11904: 0xA75D, - 21535 - 11904: 0xA775, - 21536 - 11904: 0xA770, - 21537 - 11904: 0xFD6D, - 21539 - 11904: 0x89EC, - 21540 - 11904: 0xCAA5, - 21541 - 11904: 0xCA7D, - 21542 - 11904: 0xA75F, - 21543 - 11904: 0xA761, - 21544 - 11904: 0xCAA4, - 21545 - 11904: 0xA768, - 21546 - 11904: 0xCA78, - 21547 - 11904: 0xA774, - 21548 - 11904: 0xA776, - 21549 - 11904: 0xA75C, - 21550 - 11904: 0xA76D, - 21551 - 11904: 0xFB44, - 21552 - 11904: 0xCA76, - 21553 - 11904: 0xA773, - 21554 - 11904: 0x9DE2, - 21555 - 11904: 0xA764, - 21556 - 11904: 0x8C75, - 21557 - 11904: 0xA76E, - 21558 - 11904: 0xA76F, - 21559 - 11904: 0xCA77, - 21560 - 11904: 0xA76C, - 21561 - 11904: 0xA76A, - 21563 - 11904: 0xA76B, - 21564 - 11904: 0xA771, - 21565 - 11904: 0xCAA1, - 21566 - 11904: 0xA75E, - 21568 - 11904: 0xA772, - 21569 - 11904: 0xCAA3, - 21570 - 11904: 0xA766, - 21571 - 11904: 0xA763, - 21573 - 11904: 0xCA7A, - 21574 - 11904: 0xA762, - 21575 - 11904: 0xCAA6, - 21576 - 11904: 0xA765, - 21578 - 11904: 0xA769, - 21579 - 11904: 0x9EC0, - 21580 - 11904: 0x87C5, - 21581 - 11904: 0x9E56, - 21582 - 11904: 0xA760, - 21583 - 11904: 0xCAA2, - 21588 - 11904: 0xCA79, - 21600 - 11904: 0xCBEB, - 21601 - 11904: 0xCBEA, - 21602 - 11904: 0xA94F, - 21603 - 11904: 0xCBED, - 21604 - 11904: 0xCBEF, - 21605 - 11904: 0xCBE4, - 21606 - 11904: 0xCBE7, - 21607 - 11904: 0xCBEE, - 21608 - 11904: 0xA950, - 21609 - 11904: 0x9F79, - 21610 - 11904: 0x9AC7, - 21611 - 11904: 0xCBE1, - 21612 - 11904: 0xCBE5, - 21613 - 11904: 0xFAF4, - 21615 - 11904: 0xCBE9, - 21616 - 11904: 0xCE49, - 21617 - 11904: 0xA94B, - 21618 - 11904: 0xCE4D, - 21619 - 11904: 0xA8FD, - 21620 - 11904: 0xCBE6, - 21621 - 11904: 0xA8FE, - 21622 - 11904: 0xA94C, - 21623 - 11904: 0xA945, - 21624 - 11904: 0xA941, - 21626 - 11904: 0xCBE2, - 21627 - 11904: 0xA944, - 21628 - 11904: 0xA949, - 21629 - 11904: 0xA952, - 21630 - 11904: 0xCBE3, - 21631 - 11904: 0xCBDC, - 21632 - 11904: 0xA943, - 21633 - 11904: 0xCBDD, - 21634 - 11904: 0xCBDF, - 21636 - 11904: 0xA946, - 21637 - 11904: 0x98A1, - 21638 - 11904: 0xA948, - 21639 - 11904: 0xCBDB, - 21640 - 11904: 0xCBE0, - 21643 - 11904: 0xA951, - 21644 - 11904: 0xA94D, - 21645 - 11904: 0xCBE8, - 21646 - 11904: 0xA953, - 21647 - 11904: 0xFAF8, - 21648 - 11904: 0xA94A, - 21649 - 11904: 0xCBDE, - 21650 - 11904: 0xA947, - 21651 - 11904: 0x89F0, - 21652 - 11904: 0x9E47, - 21653 - 11904: 0xA942, - 21654 - 11904: 0xA940, - 21655 - 11904: 0x9DF7, - 21656 - 11904: 0xCBEC, - 21658 - 11904: 0xA94E, - 21660 - 11904: 0x9FD3, - 21662 - 11904: 0x9ACA, - 21664 - 11904: 0xCE48, - 21665 - 11904: 0xCDFB, - 21666 - 11904: 0xCE4B, - 21667 - 11904: 0x89F1, - 21668 - 11904: 0xFAF9, - 21669 - 11904: 0xCDFD, - 21670 - 11904: 0xAB78, - 21671 - 11904: 0xABA8, - 21672 - 11904: 0xAB74, - 21673 - 11904: 0xABA7, - 21674 - 11904: 0xAB7D, - 21675 - 11904: 0xABA4, - 21676 - 11904: 0xAB72, - 21677 - 11904: 0xCDFC, - 21678 - 11904: 0xCE43, - 21679 - 11904: 0xABA3, - 21680 - 11904: 0xCE4F, - 21681 - 11904: 0xABA5, - 21682 - 11904: 0x8E5A, - 21683 - 11904: 0xAB79, - 21684 - 11904: 0x89F2, - 21686 - 11904: 0xCE45, - 21687 - 11904: 0xCE42, - 21688 - 11904: 0xAB77, - 21689 - 11904: 0x89F3, - 21690 - 11904: 0xCDFA, - 21691 - 11904: 0xABA6, - 21692 - 11904: 0xCE4A, - 21693 - 11904: 0xAB7C, - 21694 - 11904: 0xCE4C, - 21695 - 11904: 0xABA9, - 21696 - 11904: 0xAB73, - 21697 - 11904: 0xAB7E, - 21698 - 11904: 0xAB7B, - 21699 - 11904: 0xCE40, - 21700 - 11904: 0xABA1, - 21701 - 11904: 0xCE46, - 21702 - 11904: 0xCE47, - 21703 - 11904: 0xAB7A, - 21704 - 11904: 0xABA2, - 21705 - 11904: 0xAB76, - 21707 - 11904: 0x925D, - 21708 - 11904: 0x8B51, - 21709 - 11904: 0x92E0, - 21710 - 11904: 0xAB75, - 21711 - 11904: 0xCDFE, - 21712 - 11904: 0x89F4, - 21718 - 11904: 0xCE44, - 21722 - 11904: 0x9FD4, - 21726 - 11904: 0xCE4E, - 21728 - 11904: 0xD144, - 21729 - 11904: 0xADFB, - 21730 - 11904: 0xD0F1, - 21731 - 11904: 0x8A79, - 21732 - 11904: 0xD0F6, - 21733 - 11904: 0xADF4, - 21734 - 11904: 0xAE40, - 21735 - 11904: 0xD0F4, - 21736 - 11904: 0xADEF, - 21737 - 11904: 0xADF9, - 21738 - 11904: 0xADFE, - 21739 - 11904: 0xD0FB, - 21741 - 11904: 0xADFA, - 21742 - 11904: 0xADFD, - 21743 - 11904: 0x89F5, - 21745 - 11904: 0xD0FE, - 21746 - 11904: 0xADF5, - 21747 - 11904: 0xD0F5, - 21751 - 11904: 0xD142, - 21752 - 11904: 0xD143, - 21754 - 11904: 0xADF7, - 21755 - 11904: 0xD141, - 21756 - 11904: 0xADF3, - 21757 - 11904: 0xAE43, - 21759 - 11904: 0xD0F8, - 21761 - 11904: 0xADF1, - 21762 - 11904: 0x97A7, - 21763 - 11904: 0xD146, - 21764 - 11904: 0xD0F9, - 21765 - 11904: 0xD0FD, - 21766 - 11904: 0xADF6, - 21767 - 11904: 0xAE42, - 21768 - 11904: 0xD0FA, - 21769 - 11904: 0xADFC, - 21770 - 11904: 0xD140, - 21771 - 11904: 0xD147, - 21772 - 11904: 0xD4A1, - 21773 - 11904: 0x93BA, - 21774 - 11904: 0xD145, - 21775 - 11904: 0xAE44, - 21776 - 11904: 0xADF0, - 21777 - 11904: 0xD0FC, - 21778 - 11904: 0xD0F3, - 21779 - 11904: 0x9E58, - 21780 - 11904: 0xADF8, - 21783 - 11904: 0xD0F2, - 21784 - 11904: 0x89F6, - 21786 - 11904: 0xD0F7, - 21790 - 11904: 0x9E57, - 21795 - 11904: 0x89F7, - 21797 - 11904: 0x8A41, - 21798 - 11904: 0xD0F0, - 21799 - 11904: 0xAE41, - 21800 - 11904: 0x89F8, - 21802 - 11904: 0xD477, - 21803 - 11904: 0xFAF1, - 21804 - 11904: 0xB0E4, - 21805 - 11904: 0xD4A7, - 21806 - 11904: 0xB0E2, - 21807 - 11904: 0xB0DF, - 21808 - 11904: 0xD47C, - 21809 - 11904: 0xB0DB, - 21810 - 11904: 0xD4A2, - 21811 - 11904: 0xB0E6, - 21812 - 11904: 0xD476, - 21813 - 11904: 0xD47B, - 21814 - 11904: 0xD47A, - 21815 - 11904: 0xADF2, - 21816 - 11904: 0xB0E1, - 21817 - 11904: 0xD4A5, - 21819 - 11904: 0xD4A8, - 21820 - 11904: 0xD473, - 21822 - 11904: 0xB3E8, - 21823 - 11904: 0x89FA, - 21824 - 11904: 0xD4A9, - 21825 - 11904: 0xB0E7, - 21827 - 11904: 0xB0D9, - 21828 - 11904: 0xB0D6, - 21829 - 11904: 0xD47E, - 21830 - 11904: 0xB0D3, - 21831 - 11904: 0xFB42, - 21832 - 11904: 0xD4A6, - 21833 - 11904: 0xFABF, - 21834 - 11904: 0xB0DA, - 21835 - 11904: 0xD4AA, - 21837 - 11904: 0xD474, - 21838 - 11904: 0xD4A4, - 21839 - 11904: 0xB0DD, - 21840 - 11904: 0xD475, - 21841 - 11904: 0xD478, - 21842 - 11904: 0xD47D, - 21843 - 11904: 0xFBA3, - 21845 - 11904: 0xB0DE, - 21846 - 11904: 0xB0DC, - 21847 - 11904: 0xB0E8, - 21852 - 11904: 0xB0E3, - 21853 - 11904: 0xFAF7, - 21854 - 11904: 0xB0D7, - 21855 - 11904: 0xB1D2, - 21857 - 11904: 0xB0D8, - 21858 - 11904: 0xD479, - 21859 - 11904: 0xB0E5, - 21860 - 11904: 0xB0E0, - 21861 - 11904: 0xD4A3, - 21862 - 11904: 0xB0D5, - 21865 - 11904: 0x9E4E, - 21866 - 11904: 0xB0D4, - 21867 - 11904: 0x94DC, - 21873 - 11904: 0x95DA, - 21874 - 11904: 0x9DF8, - 21875 - 11904: 0x9F6A, - 21877 - 11904: 0xD471, - 21878 - 11904: 0xD472, - 21879 - 11904: 0xD86A, - 21881 - 11904: 0x8AB7, - 21883 - 11904: 0xB3D7, - 21884 - 11904: 0xB3DA, - 21885 - 11904: 0xD875, - 21886 - 11904: 0xB3EE, - 21887 - 11904: 0xD878, - 21888 - 11904: 0xB3D8, - 21889 - 11904: 0xD871, - 21890 - 11904: 0xB3DE, - 21891 - 11904: 0xB3E4, - 21892 - 11904: 0xB5BD, - 21894 - 11904: 0xFB46, - 21895 - 11904: 0xB3E2, - 21896 - 11904: 0xD86E, - 21897 - 11904: 0xB3EF, - 21898 - 11904: 0xB3DB, - 21899 - 11904: 0xB3E3, - 21900 - 11904: 0xD876, - 21901 - 11904: 0xDCD7, - 21902 - 11904: 0xD87B, - 21903 - 11904: 0xD86F, - 21904 - 11904: 0x8A46, - 21905 - 11904: 0xD866, - 21906 - 11904: 0xD873, - 21907 - 11904: 0xD86D, - 21908 - 11904: 0xB3E1, - 21909 - 11904: 0xD879, - 21912 - 11904: 0xB3DD, - 21913 - 11904: 0xB3F1, - 21914 - 11904: 0xB3EA, - 21916 - 11904: 0xB3DF, - 21917 - 11904: 0xB3DC, - 21919 - 11904: 0xB3E7, - 21921 - 11904: 0xD87A, - 21922 - 11904: 0xD86C, - 21923 - 11904: 0xD872, - 21924 - 11904: 0xD874, - 21925 - 11904: 0xD868, - 21926 - 11904: 0xD877, - 21927 - 11904: 0xB3D9, - 21928 - 11904: 0xD867, - 21929 - 11904: 0xFB47, - 21930 - 11904: 0xB3E0, - 21931 - 11904: 0xB3F0, - 21932 - 11904: 0xB3EC, - 21933 - 11904: 0xD869, - 21934 - 11904: 0xB3E6, - 21936 - 11904: 0x9148, - 21937 - 11904: 0xB3ED, - 21938 - 11904: 0xB3E9, - 21939 - 11904: 0xB3E5, - 21940 - 11904: 0x92DE, - 21941 - 11904: 0xD870, - 21945 - 11904: 0x8B53, - 21946 - 11904: 0x9DF6, - 21947 - 11904: 0xB3EB, - 21948 - 11904: 0x9BDA, - 21951 - 11904: 0xDCD5, - 21952 - 11904: 0xDCD1, - 21953 - 11904: 0x9D7E, - 21954 - 11904: 0xDCE0, - 21955 - 11904: 0xDCCA, - 21956 - 11904: 0xDCD3, - 21957 - 11904: 0xB6E5, - 21958 - 11904: 0xB6E6, - 21959 - 11904: 0xB6DE, - 21960 - 11904: 0xDCDC, - 21961 - 11904: 0xB6E8, - 21962 - 11904: 0xDCCF, - 21963 - 11904: 0xDCCE, - 21964 - 11904: 0xDCCC, - 21965 - 11904: 0xDCDE, - 21966 - 11904: 0xB6DC, - 21967 - 11904: 0xDCD8, - 21968 - 11904: 0xDCCD, - 21969 - 11904: 0xB6DF, - 21970 - 11904: 0xDCD6, - 21971 - 11904: 0xB6DA, - 21972 - 11904: 0xDCD2, - 21973 - 11904: 0xDCD9, - 21974 - 11904: 0xDCDB, - 21975 - 11904: 0x89FD, - 21976 - 11904: 0x99E4, - 21977 - 11904: 0xDCDF, - 21978 - 11904: 0xB6E3, - 21979 - 11904: 0xDCCB, - 21980 - 11904: 0xB6DD, - 21981 - 11904: 0xDCD0, - 21982 - 11904: 0x9E43, - 21983 - 11904: 0xB6D8, - 21985 - 11904: 0xB6E4, - 21986 - 11904: 0xDCDA, - 21987 - 11904: 0xB6E0, - 21988 - 11904: 0xB6E1, - 21989 - 11904: 0xB6E7, - 21990 - 11904: 0xB6DB, - 21991 - 11904: 0xA25F, - 21992 - 11904: 0xB6D9, - 21993 - 11904: 0xDCD4, - 21994 - 11904: 0x9DE9, - 21996 - 11904: 0x8F52, - 21999 - 11904: 0xB6E2, - 22000 - 11904: 0x9DF5, - 22001 - 11904: 0x9DF0, - 22002 - 11904: 0xDCDD, - 22005 - 11904: 0x99E7, - 22006 - 11904: 0xB9CD, - 22007 - 11904: 0xB9C8, - 22009 - 11904: 0xE155, - 22010 - 11904: 0xE151, - 22011 - 11904: 0x8BBD, - 22012 - 11904: 0xE14B, - 22013 - 11904: 0xB9C2, - 22014 - 11904: 0xB9BE, - 22015 - 11904: 0xE154, - 22016 - 11904: 0xB9BF, - 22017 - 11904: 0xE14E, - 22018 - 11904: 0xE150, - 22020 - 11904: 0xE153, - 22021 - 11904: 0xFB48, - 22022 - 11904: 0xB9C4, - 22024 - 11904: 0xB9CB, - 22025 - 11904: 0xB9C5, - 22028 - 11904: 0xE149, - 22029 - 11904: 0xB9C6, - 22030 - 11904: 0xB9C7, - 22031 - 11904: 0xE14C, - 22032 - 11904: 0xB9CC, - 22033 - 11904: 0x9FB7, - 22034 - 11904: 0xE14A, - 22035 - 11904: 0xE14F, - 22036 - 11904: 0xB9C3, - 22037 - 11904: 0xE148, - 22038 - 11904: 0xB9C9, - 22039 - 11904: 0xB9C1, - 22043 - 11904: 0xB9C0, - 22044 - 11904: 0xE14D, - 22045 - 11904: 0xE152, - 22046 - 11904: 0x9DD0, - 22047 - 11904: 0xB9CA, - 22048 - 11904: 0x9FEB, - 22049 - 11904: 0x8DA9, - 22050 - 11904: 0x9DCF, - 22051 - 11904: 0x98E1, - 22053 - 11904: 0x9DE5, - 22055 - 11904: 0xE147, - 22057 - 11904: 0xBC4D, - 22058 - 11904: 0xE547, - 22060 - 11904: 0xE544, - 22061 - 11904: 0x9DC8, - 22062 - 11904: 0xBC47, - 22063 - 11904: 0xBC53, - 22064 - 11904: 0xBC54, - 22066 - 11904: 0xBC4A, - 22067 - 11904: 0xE542, - 22068 - 11904: 0xBC4C, - 22069 - 11904: 0xE4F9, - 22070 - 11904: 0xBC52, - 22071 - 11904: 0xFB4F, - 22072 - 11904: 0xE546, - 22073 - 11904: 0xBC49, - 22074 - 11904: 0xE548, - 22075 - 11904: 0xBC48, - 22077 - 11904: 0xE543, - 22078 - 11904: 0xE545, - 22079 - 11904: 0xBC4B, - 22080 - 11904: 0xE541, - 22081 - 11904: 0xE4FA, - 22082 - 11904: 0xE4F7, - 22083 - 11904: 0x9DEB, - 22085 - 11904: 0xD86B, - 22086 - 11904: 0xE4FD, - 22088 - 11904: 0xE4F6, - 22089 - 11904: 0xE4FC, - 22090 - 11904: 0xE4FB, - 22092 - 11904: 0xE4F8, - 22093 - 11904: 0xFB54, - 22094 - 11904: 0xBC4F, - 22095 - 11904: 0xFB55, - 22096 - 11904: 0x9AA2, - 22098 - 11904: 0x8AD6, - 22099 - 11904: 0xBC4E, - 22100 - 11904: 0x9A5F, - 22103 - 11904: 0xBC50, - 22104 - 11904: 0xE4FE, - 22105 - 11904: 0xBEB2, - 22106 - 11904: 0xE540, - 22109 - 11904: 0x9EF5, - 22110 - 11904: 0xE945, - 22112 - 11904: 0xE8FD, - 22113 - 11904: 0x8FB7, - 22114 - 11904: 0xBEBE, - 22115 - 11904: 0xE942, - 22116 - 11904: 0xBEB6, - 22117 - 11904: 0xBEBA, - 22118 - 11904: 0xE941, - 22120 - 11904: 0xBEB9, - 22121 - 11904: 0xBEB5, - 22122 - 11904: 0xBEB8, - 22123 - 11904: 0xBEB3, - 22124 - 11904: 0xBEBD, - 22125 - 11904: 0xE943, - 22126 - 11904: 0xE8FE, - 22127 - 11904: 0xBEBC, - 22128 - 11904: 0xE8FC, - 22129 - 11904: 0xBEBB, - 22130 - 11904: 0xE944, - 22131 - 11904: 0xE940, - 22132 - 11904: 0xBC51, - 22134 - 11904: 0xBEBF, - 22135 - 11904: 0xE946, - 22136 - 11904: 0xBEB7, - 22137 - 11904: 0xBEB4, - 22138 - 11904: 0x9AD2, - 22139 - 11904: 0x9E6A, - 22140 - 11904: 0x9EE8, - 22142 - 11904: 0xECC6, - 22143 - 11904: 0xECC8, - 22144 - 11904: 0xC07B, - 22145 - 11904: 0xECC9, - 22146 - 11904: 0xECC7, - 22147 - 11904: 0xECC5, - 22148 - 11904: 0xECC4, - 22149 - 11904: 0xC07D, - 22150 - 11904: 0xECC3, - 22151 - 11904: 0xC07E, - 22153 - 11904: 0x8BBF, - 22154 - 11904: 0x91C2, - 22155 - 11904: 0x9D62, - 22156 - 11904: 0xECC1, - 22157 - 11904: 0xECC2, - 22158 - 11904: 0xC07A, - 22159 - 11904: 0xC0A1, - 22160 - 11904: 0xC07C, - 22162 - 11904: 0x9260, - 22163 - 11904: 0xECC0, - 22165 - 11904: 0xC250, - 22167 - 11904: 0xEFBC, - 22168 - 11904: 0xEFBA, - 22169 - 11904: 0xEFBF, - 22170 - 11904: 0xEFBD, - 22172 - 11904: 0xEFBB, - 22173 - 11904: 0xEFBE, - 22174 - 11904: 0x925E, - 22175 - 11904: 0x91C1, - 22177 - 11904: 0x8AC5, - 22180 - 11904: 0x97A3, - 22181 - 11904: 0xC360, - 22182 - 11904: 0xF1F2, - 22183 - 11904: 0xF1F3, - 22184 - 11904: 0xC456, - 22186 - 11904: 0xF1F4, - 22187 - 11904: 0xF1F0, - 22188 - 11904: 0xF1F5, - 22189 - 11904: 0xF1F1, - 22190 - 11904: 0xC251, - 22191 - 11904: 0x8B6C, - 22193 - 11904: 0x8D7E, - 22194 - 11904: 0xF3FE, - 22195 - 11904: 0xF441, - 22196 - 11904: 0xC459, - 22197 - 11904: 0xF440, - 22198 - 11904: 0xC458, - 22199 - 11904: 0xC457, - 22201 - 11904: 0x9C54, - 22204 - 11904: 0xC45A, - 22205 - 11904: 0xF5C5, - 22206 - 11904: 0xF5C6, - 22207 - 11904: 0x9DBD, - 22208 - 11904: 0xC4DA, - 22209 - 11904: 0xC4D9, - 22210 - 11904: 0xC4DB, - 22211 - 11904: 0xF5C4, - 22213 - 11904: 0xF6D8, - 22214 - 11904: 0xF6D7, - 22216 - 11904: 0xC56D, - 22217 - 11904: 0xC56F, - 22218 - 11904: 0xC56E, - 22219 - 11904: 0xF6D9, - 22220 - 11904: 0xC5C8, - 22221 - 11904: 0xF8A6, - 22225 - 11904: 0xC5F1, - 22227 - 11904: 0xF8A5, - 22228 - 11904: 0xF8EE, - 22230 - 11904: 0x9CC5, - 22231 - 11904: 0xC949, - 22234 - 11904: 0xA57D, - 22235 - 11904: 0xA57C, - 22237 - 11904: 0xA65F, - 22238 - 11904: 0xA65E, - 22239 - 11904: 0xC9C7, - 22240 - 11904: 0xA65D, - 22241 - 11904: 0xC9C6, - 22242 - 11904: 0x895B, - 22244 - 11904: 0xA779, - 22245 - 11904: 0xCAA9, - 22247 - 11904: 0xCAA8, - 22250 - 11904: 0xA777, - 22251 - 11904: 0xA77A, - 22253 - 11904: 0xFB5C, - 22254 - 11904: 0xCAA7, - 22255 - 11904: 0xFB5B, - 22256 - 11904: 0xA778, - 22257 - 11904: 0xFB57, - 22263 - 11904: 0xCBF0, - 22265 - 11904: 0xCBF1, - 22266 - 11904: 0xA954, - 22267 - 11904: 0x8765, - 22269 - 11904: 0x98C7, - 22271 - 11904: 0xABAA, - 22272 - 11904: 0xFB5A, - 22273 - 11904: 0xD148, - 22274 - 11904: 0xD149, - 22275 - 11904: 0xAE45, - 22276 - 11904: 0xAE46, - 22279 - 11904: 0xD4AC, - 22280 - 11904: 0xB0E9, - 22281 - 11904: 0xB0EB, - 22282 - 11904: 0xD4AB, - 22283 - 11904: 0xB0EA, - 22284 - 11904: 0xD87C, - 22285 - 11904: 0xB3F2, - 22290 - 11904: 0xB6E9, - 22291 - 11904: 0xB6EA, - 22292 - 11904: 0xDCE1, - 22293 - 11904: 0x9CEE, - 22294 - 11904: 0xB9CF, - 22296 - 11904: 0xB9CE, - 22298 - 11904: 0xE549, - 22299 - 11904: 0xE948, - 22300 - 11904: 0xE947, - 22301 - 11904: 0x92E2, - 22302 - 11904: 0xF96B, - 22303 - 11904: 0xA467, - 22304 - 11904: 0xC959, - 22306 - 11904: 0xC96E, - 22307 - 11904: 0xC96F, - 22312 - 11904: 0xA662, - 22313 - 11904: 0xA666, - 22314 - 11904: 0xC9C9, - 22316 - 11904: 0xA664, - 22317 - 11904: 0xA663, - 22318 - 11904: 0xC9C8, - 22319 - 11904: 0xA665, - 22320 - 11904: 0xA661, - 22322 - 11904: 0x94A7, - 22323 - 11904: 0xA660, - 22324 - 11904: 0xC9CA, - 22331 - 11904: 0xA7A6, - 22333 - 11904: 0x8CCC, - 22334 - 11904: 0xA7A3, - 22335 - 11904: 0x9BD4, - 22336 - 11904: 0xA77D, - 22337 - 11904: 0xCAAA, - 22338 - 11904: 0xFB64, - 22339 - 11904: 0xFB76, - 22341 - 11904: 0xCAAB, - 22342 - 11904: 0xFB60, - 22343 - 11904: 0xA7A1, - 22345 - 11904: 0xCAAD, - 22346 - 11904: 0xA77B, - 22347 - 11904: 0xCAAE, - 22348 - 11904: 0xCAAC, - 22349 - 11904: 0xA77E, - 22350 - 11904: 0xA7A2, - 22351 - 11904: 0xA7A5, - 22352 - 11904: 0xA7A4, - 22353 - 11904: 0xA77C, - 22354 - 11904: 0xCAAF, - 22356 - 11904: 0x99E5, - 22359 - 11904: 0x9AC2, - 22363 - 11904: 0x91FB, - 22367 - 11904: 0xA073, - 22369 - 11904: 0xA959, - 22370 - 11904: 0xCBFE, - 22372 - 11904: 0xA95B, - 22374 - 11904: 0xA95A, - 22375 - 11904: 0x9F72, - 22376 - 11904: 0xCC40, - 22377 - 11904: 0xA958, - 22378 - 11904: 0xA957, - 22379 - 11904: 0xCBF5, - 22381 - 11904: 0xCBF4, - 22383 - 11904: 0xCBF2, - 22384 - 11904: 0xCBF7, - 22385 - 11904: 0xCBF6, - 22386 - 11904: 0xCBF3, - 22387 - 11904: 0xCBFC, - 22388 - 11904: 0xCBFD, - 22389 - 11904: 0xCBFA, - 22390 - 11904: 0xCBF8, - 22391 - 11904: 0xA956, - 22394 - 11904: 0x9FCC, - 22395 - 11904: 0xCBFB, - 22396 - 11904: 0xA95C, - 22397 - 11904: 0xCC41, - 22398 - 11904: 0x98A5, - 22399 - 11904: 0x92E8, - 22400 - 11904: 0xCBF9, - 22402 - 11904: 0xABAB, - 22403 - 11904: 0xA955, - 22408 - 11904: 0x9BBC, - 22410 - 11904: 0x96F3, - 22411 - 11904: 0xABAC, - 22412 - 11904: 0xCE54, - 22413 - 11904: 0x92E7, - 22415 - 11904: 0xCE5A, - 22416 - 11904: 0xFC67, - 22419 - 11904: 0xABB2, - 22420 - 11904: 0xCE58, - 22421 - 11904: 0xCE5E, - 22423 - 11904: 0xCE55, - 22424 - 11904: 0xCE59, - 22425 - 11904: 0xCE5B, - 22426 - 11904: 0xCE5D, - 22427 - 11904: 0xCE57, - 22428 - 11904: 0x8B7D, - 22429 - 11904: 0xCE56, - 22430 - 11904: 0xCE51, - 22431 - 11904: 0xCE52, - 22432 - 11904: 0xABAD, - 22433 - 11904: 0x9BF4, - 22434 - 11904: 0xABAF, - 22435 - 11904: 0xABAE, - 22436 - 11904: 0xCE53, - 22437 - 11904: 0xCE5C, - 22439 - 11904: 0x9EF7, - 22442 - 11904: 0x9EC1, - 22446 - 11904: 0xABB1, - 22451 - 11904: 0x87C3, - 22452 - 11904: 0x996F, - 22453 - 11904: 0xCE50, - 22454 - 11904: 0xD153, - 22456 - 11904: 0xD152, - 22457 - 11904: 0xD157, - 22458 - 11904: 0xD14E, - 22459 - 11904: 0x96F1, - 22460 - 11904: 0xD151, - 22461 - 11904: 0xD150, - 22462 - 11904: 0x8E41, - 22463 - 11904: 0xD154, - 22465 - 11904: 0xD158, - 22466 - 11904: 0xAE47, - 22467 - 11904: 0xAE4A, - 22468 - 11904: 0x954A, - 22470 - 11904: 0xD14F, - 22471 - 11904: 0xD155, - 22472 - 11904: 0x97E6, - 22475 - 11904: 0xAE49, - 22476 - 11904: 0xD14A, - 22478 - 11904: 0xABB0, - 22479 - 11904: 0xD4BA, - 22480 - 11904: 0xD156, - 22482 - 11904: 0xD14D, - 22484 - 11904: 0xAE48, - 22485 - 11904: 0xD14C, - 22487 - 11904: 0x96F5, - 22492 - 11904: 0xD4B1, - 22493 - 11904: 0x92E6, - 22494 - 11904: 0x9F42, - 22495 - 11904: 0xB0EC, - 22496 - 11904: 0xB0F0, - 22497 - 11904: 0xD4C1, - 22498 - 11904: 0xD4AF, - 22499 - 11904: 0xD4BD, - 22500 - 11904: 0xB0F1, - 22501 - 11904: 0xD4BF, - 22502 - 11904: 0xFB67, - 22503 - 11904: 0xD4C5, - 22505 - 11904: 0xD4C9, - 22508 - 11904: 0xD4C0, - 22509 - 11904: 0xD4B4, - 22510 - 11904: 0xD4BC, - 22511 - 11904: 0x99A9, - 22512 - 11904: 0xD4CA, - 22513 - 11904: 0xD4C8, - 22514 - 11904: 0xD4BE, - 22515 - 11904: 0xD4B9, - 22516 - 11904: 0xD4B2, - 22517 - 11904: 0xD8A6, - 22518 - 11904: 0xD4B0, - 22519 - 11904: 0xB0F5, - 22520 - 11904: 0xD4B7, - 22521 - 11904: 0xB0F6, - 22522 - 11904: 0xB0F2, - 22523 - 11904: 0xD4AD, - 22524 - 11904: 0xD4C3, - 22525 - 11904: 0xD4B5, - 22526 - 11904: 0xFAE6, - 22528 - 11904: 0xD4B3, - 22529 - 11904: 0xD4C6, - 22530 - 11904: 0xB0F3, - 22531 - 11904: 0xFB69, - 22532 - 11904: 0xD4CC, - 22533 - 11904: 0xB0ED, - 22534 - 11904: 0xB0EF, - 22535 - 11904: 0xD4BB, - 22536 - 11904: 0xD4B6, - 22537 - 11904: 0xAE4B, - 22538 - 11904: 0xB0EE, - 22539 - 11904: 0xD4B8, - 22540 - 11904: 0xD4C7, - 22541 - 11904: 0xD4CB, - 22542 - 11904: 0xD4C2, - 22544 - 11904: 0xD4C4, - 22546 - 11904: 0x97E5, - 22548 - 11904: 0xD4AE, - 22552 - 11904: 0x87C8, - 22553 - 11904: 0xD8A1, - 22555 - 11904: 0xD8AA, - 22556 - 11904: 0xD8A9, - 22557 - 11904: 0xB3FA, - 22558 - 11904: 0xD8A2, - 22560 - 11904: 0xB3FB, - 22561 - 11904: 0xB3F9, - 22562 - 11904: 0x967D, - 22563 - 11904: 0xD8A4, - 22564 - 11904: 0xB3F6, - 22565 - 11904: 0xD8A8, - 22566 - 11904: 0xFB6C, - 22567 - 11904: 0xD8A3, - 22568 - 11904: 0xD8A5, - 22569 - 11904: 0xD87D, - 22570 - 11904: 0xB3F4, - 22572 - 11904: 0xD8B2, - 22573 - 11904: 0xD8B1, - 22574 - 11904: 0xD8AE, - 22575 - 11904: 0xB3F3, - 22576 - 11904: 0xB3F7, - 22577 - 11904: 0xB3F8, - 22578 - 11904: 0xD14B, - 22579 - 11904: 0xD8AB, - 22580 - 11904: 0xB3F5, - 22581 - 11904: 0xB0F4, - 22582 - 11904: 0xD8AD, - 22583 - 11904: 0xD87E, - 22584 - 11904: 0xD8B0, - 22585 - 11904: 0xD8AF, - 22586 - 11904: 0x99A2, - 22587 - 11904: 0xD8B3, - 22589 - 11904: 0xDCEF, - 22591 - 11904: 0xD8AC, - 22592 - 11904: 0x9ABB, - 22596 - 11904: 0x9A65, - 22599 - 11904: 0x944E, - 22600 - 11904: 0xD8A7, - 22601 - 11904: 0xDCE7, - 22602 - 11904: 0xB6F4, - 22603 - 11904: 0xB6F7, - 22604 - 11904: 0xB6F2, - 22605 - 11904: 0xDCE6, - 22606 - 11904: 0xDCEA, - 22607 - 11904: 0xDCE5, - 22609 - 11904: 0xB6EC, - 22610 - 11904: 0xB6F6, - 22611 - 11904: 0xDCE2, - 22612 - 11904: 0xB6F0, - 22613 - 11904: 0xDCE9, - 22615 - 11904: 0xB6EE, - 22616 - 11904: 0xB6ED, - 22617 - 11904: 0xDCEC, - 22618 - 11904: 0xB6EF, - 22619 - 11904: 0xDCEE, - 22620 - 11904: 0xFB6E, - 22621 - 11904: 0xDCEB, - 22622 - 11904: 0xB6EB, - 22623 - 11904: 0x99DF, - 22626 - 11904: 0xB6F5, - 22627 - 11904: 0xDCF0, - 22628 - 11904: 0xDCE4, - 22629 - 11904: 0xDCED, - 22632 - 11904: 0xDCE3, - 22633 - 11904: 0x98E3, - 22635 - 11904: 0xB6F1, - 22636 - 11904: 0x9254, - 22637 - 11904: 0xB6F3, - 22639 - 11904: 0xDCE8, - 22641 - 11904: 0xDCF1, - 22642 - 11904: 0x967B, - 22643 - 11904: 0x8AAF, - 22644 - 11904: 0xE15D, - 22645 - 11904: 0xB9D0, - 22646 - 11904: 0xE163, - 22649 - 11904: 0xB9D5, - 22650 - 11904: 0xE15F, - 22651 - 11904: 0xE166, - 22652 - 11904: 0xE157, - 22653 - 11904: 0xB9D7, - 22654 - 11904: 0xB9D1, - 22655 - 11904: 0xE15C, - 22656 - 11904: 0xBC55, - 22657 - 11904: 0xE15B, - 22658 - 11904: 0xE164, - 22659 - 11904: 0xB9D2, - 22661 - 11904: 0xB9D6, - 22662 - 11904: 0xE15A, - 22663 - 11904: 0xE160, - 22664 - 11904: 0xE165, - 22665 - 11904: 0xE156, - 22666 - 11904: 0xB9D4, - 22667 - 11904: 0xE15E, - 22670 - 11904: 0xE162, - 22671 - 11904: 0xE168, - 22672 - 11904: 0xE158, - 22673 - 11904: 0xE161, - 22674 - 11904: 0x8C77, - 22675 - 11904: 0xB9D3, - 22676 - 11904: 0xE167, - 22678 - 11904: 0x87B0, - 22680 - 11904: 0xE159, - 22681 - 11904: 0x8BAF, - 22682 - 11904: 0x9EBD, - 22684 - 11904: 0xBC59, - 22685 - 11904: 0xE54B, - 22686 - 11904: 0xBC57, - 22687 - 11904: 0xBC56, - 22688 - 11904: 0xE54D, - 22689 - 11904: 0xE552, - 22691 - 11904: 0xE54E, - 22693 - 11904: 0xE551, - 22694 - 11904: 0xBC5C, - 22695 - 11904: 0x9EE6, - 22696 - 11904: 0xBEA5, - 22697 - 11904: 0xBC5B, - 22698 - 11904: 0xFB6F, - 22699 - 11904: 0xE54A, - 22700 - 11904: 0xE550, - 22702 - 11904: 0xBC5A, - 22703 - 11904: 0xE54F, - 22704 - 11904: 0x8EE1, - 22705 - 11904: 0xE54C, - 22707 - 11904: 0xBC58, - 22709 - 11904: 0x9B7D, - 22710 - 11904: 0x9C7E, - 22714 - 11904: 0xE94D, - 22715 - 11904: 0xF9D9, - 22716 - 11904: 0xE94F, - 22717 - 11904: 0xE94A, - 22718 - 11904: 0xBEC1, - 22719 - 11904: 0xE94C, - 22721 - 11904: 0xBEC0, - 22722 - 11904: 0xE94E, - 22725 - 11904: 0xBEC3, - 22726 - 11904: 0xE950, - 22727 - 11904: 0xBEC2, - 22728 - 11904: 0xE949, - 22729 - 11904: 0xE94B, - 22731 - 11904: 0x92EA, - 22734 - 11904: 0xC0A5, - 22735 - 11904: 0xECCC, - 22736 - 11904: 0x8C78, - 22737 - 11904: 0xC0A4, - 22738 - 11904: 0xECCD, - 22739 - 11904: 0xC0A3, - 22740 - 11904: 0xECCB, - 22741 - 11904: 0xC0A2, - 22742 - 11904: 0xECCA, - 22744 - 11904: 0xC253, - 22745 - 11904: 0xC252, - 22746 - 11904: 0xF1F6, - 22747 - 11904: 0xF1F8, - 22748 - 11904: 0xFB72, - 22749 - 11904: 0xF1F7, - 22750 - 11904: 0xC361, - 22751 - 11904: 0xC362, - 22752 - 11904: 0xFB71, - 22754 - 11904: 0xC363, - 22755 - 11904: 0xF442, - 22756 - 11904: 0xC45B, - 22759 - 11904: 0xF7D3, - 22760 - 11904: 0xF7D2, - 22761 - 11904: 0xC5F2, - 22763 - 11904: 0xA468, - 22764 - 11904: 0xA4D0, - 22767 - 11904: 0xA7A7, - 22768 - 11904: 0x895C, - 22770 - 11904: 0x98F0, - 22771 - 11904: 0x96F2, - 22772 - 11904: 0xCE5F, - 22777 - 11904: 0xB3FC, - 22778 - 11904: 0xB3FD, - 22779 - 11904: 0xFB74, - 22780 - 11904: 0xDCF2, - 22781 - 11904: 0xB9D8, - 22782 - 11904: 0xE169, - 22783 - 11904: 0xE553, - 22786 - 11904: 0x8BC1, - 22787 - 11904: 0xC95A, - 22788 - 11904: 0x895D, - 22789 - 11904: 0x89DE, - 22790 - 11904: 0xCAB0, - 22791 - 11904: 0x895E, - 22794 - 11904: 0xC6CA, - 22796 - 11904: 0xCC42, - 22797 - 11904: 0xCE60, - 22798 - 11904: 0xD159, - 22799 - 11904: 0xAE4C, - 22801 - 11904: 0xFE42, - 22802 - 11904: 0xF1F9, - 22804 - 11904: 0xC4DC, - 22805 - 11904: 0xA469, - 22806 - 11904: 0xA57E, - 22807 - 11904: 0xC970, - 22809 - 11904: 0xA667, - 22810 - 11904: 0xA668, - 22812 - 11904: 0xA95D, - 22813 - 11904: 0x8768, - 22815 - 11904: 0xFB7B, - 22816 - 11904: 0xB0F7, - 22818 - 11904: 0xB9DA, - 22820 - 11904: 0xB9DB, - 22821 - 11904: 0xB9D9, - 22823 - 11904: 0xA46A, - 22825 - 11904: 0xA4D1, - 22826 - 11904: 0xA4D3, - 22827 - 11904: 0xA4D2, - 22828 - 11904: 0xC95B, - 22829 - 11904: 0xA4D4, - 22830 - 11904: 0xA5A1, - 22831 - 11904: 0xC971, - 22833 - 11904: 0xA5A2, - 22834 - 11904: 0x895F, - 22836 - 11904: 0x8960, - 22839 - 11904: 0xA669, - 22840 - 11904: 0xA66A, - 22844 - 11904: 0xC9CB, - 22846 - 11904: 0xA7A8, - 22848 - 11904: 0xCAB1, - 22852 - 11904: 0xA961, - 22853 - 11904: 0xCC43, - 22855 - 11904: 0xA95F, - 22856 - 11904: 0xA960, - 22857 - 11904: 0xA95E, - 22858 - 11904: 0xD15A, - 22862 - 11904: 0xABB6, - 22863 - 11904: 0xABB5, - 22864 - 11904: 0xABB7, - 22865 - 11904: 0xABB4, - 22867 - 11904: 0xCE61, - 22868 - 11904: 0xA962, - 22869 - 11904: 0xABB3, - 22871 - 11904: 0xAE4D, - 22872 - 11904: 0xAE4E, - 22874 - 11904: 0xAE4F, - 22876 - 11904: 0xD4CD, - 22880 - 11904: 0xB3FE, - 22881 - 11904: 0xD8B4, - 22882 - 11904: 0xB0F8, - 22885 - 11904: 0x9BCD, - 22887 - 11904: 0xB6F8, - 22889 - 11904: 0xB9DD, - 22890 - 11904: 0xB9DC, - 22891 - 11904: 0xE16A, - 22893 - 11904: 0xBC5D, - 22894 - 11904: 0xBEC4, - 22896 - 11904: 0xEFC0, - 22897 - 11904: 0xF6DA, - 22898 - 11904: 0xF7D4, - 22899 - 11904: 0xA46B, - 22900 - 11904: 0xA5A3, - 22901 - 11904: 0x9DD3, - 22902 - 11904: 0xA5A4, - 22903 - 11904: 0xC9D1, - 22904 - 11904: 0xA66C, - 22905 - 11904: 0xA66F, - 22907 - 11904: 0xC9CF, - 22908 - 11904: 0xC9CD, - 22909 - 11904: 0xA66E, - 22910 - 11904: 0xC9D0, - 22911 - 11904: 0xC9D2, - 22912 - 11904: 0xC9CC, - 22913 - 11904: 0xA671, - 22914 - 11904: 0xA670, - 22915 - 11904: 0xA66D, - 22916 - 11904: 0xA66B, - 22917 - 11904: 0xC9CE, - 22921 - 11904: 0x984C, - 22922 - 11904: 0xA7B3, - 22925 - 11904: 0xA7B0, - 22926 - 11904: 0xCAB6, - 22927 - 11904: 0xCAB9, - 22928 - 11904: 0xCAB8, - 22930 - 11904: 0xA7AA, - 22931 - 11904: 0xA7B2, - 22932 - 11904: 0x9752, - 22934 - 11904: 0xA7AF, - 22935 - 11904: 0xCAB5, - 22936 - 11904: 0xCAB3, - 22937 - 11904: 0xA7AE, - 22938 - 11904: 0x95C3, - 22941 - 11904: 0xA7A9, - 22942 - 11904: 0xA7AC, - 22943 - 11904: 0x9BB6, - 22944 - 11904: 0xCAB4, - 22945 - 11904: 0xCABB, - 22946 - 11904: 0xCAB7, - 22947 - 11904: 0xA7AD, - 22948 - 11904: 0xA7B1, - 22949 - 11904: 0xA7B4, - 22950 - 11904: 0xCAB2, - 22951 - 11904: 0xCABA, - 22952 - 11904: 0xA7AB, - 22956 - 11904: 0x9AB9, - 22958 - 11904: 0xA967, - 22959 - 11904: 0xA96F, - 22960 - 11904: 0x97B3, - 22961 - 11904: 0xCC4F, - 22962 - 11904: 0xCC48, - 22963 - 11904: 0xA970, - 22964 - 11904: 0xCC53, - 22965 - 11904: 0xCC44, - 22966 - 11904: 0xCC4B, - 22967 - 11904: 0x9F74, - 22968 - 11904: 0x92F1, - 22969 - 11904: 0xA966, - 22970 - 11904: 0xCC45, - 22971 - 11904: 0xA964, - 22972 - 11904: 0xCC4C, - 22973 - 11904: 0xCC50, - 22974 - 11904: 0xA963, - 22975 - 11904: 0x8CFA, - 22976 - 11904: 0xCC51, - 22977 - 11904: 0xCC4A, - 22979 - 11904: 0xCC4D, - 22980 - 11904: 0x97DF, - 22981 - 11904: 0xA972, - 22982 - 11904: 0xA969, - 22983 - 11904: 0xCC54, - 22984 - 11904: 0xCC52, - 22985 - 11904: 0xFBA6, - 22986 - 11904: 0xA96E, - 22987 - 11904: 0xA96C, - 22988 - 11904: 0xCC49, - 22989 - 11904: 0xA96B, - 22990 - 11904: 0xCC47, - 22991 - 11904: 0xCC46, - 22992 - 11904: 0xA96A, - 22993 - 11904: 0xA968, - 22994 - 11904: 0xA971, - 22995 - 11904: 0xA96D, - 22996 - 11904: 0xA965, - 22998 - 11904: 0xCC4E, - 23000 - 11904: 0xABB9, - 23001 - 11904: 0xFBAB, - 23002 - 11904: 0xABC0, - 23003 - 11904: 0xCE6F, - 23004 - 11904: 0xABB8, - 23005 - 11904: 0xCE67, - 23006 - 11904: 0xCE63, - 23008 - 11904: 0xCE73, - 23009 - 11904: 0xCE62, - 23011 - 11904: 0xABBB, - 23012 - 11904: 0xCE6C, - 23013 - 11904: 0xABBE, - 23014 - 11904: 0xABC1, - 23016 - 11904: 0xABBC, - 23017 - 11904: 0xCE70, - 23018 - 11904: 0xABBF, - 23019 - 11904: 0x9877, - 23020 - 11904: 0xAE56, - 23021 - 11904: 0xCE76, - 23022 - 11904: 0xCE64, - 23023 - 11904: 0x9854, - 23024 - 11904: 0x95C5, - 23025 - 11904: 0xCE66, - 23026 - 11904: 0xCE6D, - 23027 - 11904: 0xCE71, - 23028 - 11904: 0xCE75, - 23029 - 11904: 0xCE72, - 23030 - 11904: 0xCE6B, - 23031 - 11904: 0xCE6E, - 23032 - 11904: 0x9D55, - 23033 - 11904: 0xFBB2, - 23034 - 11904: 0xCE68, - 23035 - 11904: 0xABC3, - 23036 - 11904: 0xCE6A, - 23037 - 11904: 0xCE69, - 23038 - 11904: 0xCE74, - 23039 - 11904: 0xABBA, - 23040 - 11904: 0xCE65, - 23041 - 11904: 0xABC2, - 23042 - 11904: 0x957E, - 23043 - 11904: 0xABBD, - 23049 - 11904: 0xAE5C, - 23050 - 11904: 0xD162, - 23051 - 11904: 0x9742, - 23052 - 11904: 0xAE5B, - 23053 - 11904: 0x94E6, - 23055 - 11904: 0xD160, - 23057 - 11904: 0xAE50, - 23058 - 11904: 0x92F5, - 23059 - 11904: 0xAE55, - 23061 - 11904: 0xD15F, - 23062 - 11904: 0xD15C, - 23063 - 11904: 0xD161, - 23064 - 11904: 0xAE51, - 23065 - 11904: 0xD15B, - 23066 - 11904: 0x8CC5, - 23067 - 11904: 0xAE54, - 23068 - 11904: 0xAE52, - 23070 - 11904: 0xD163, - 23071 - 11904: 0xAE53, - 23072 - 11904: 0xAE57, - 23073 - 11904: 0x92FD, - 23075 - 11904: 0xAE58, - 23076 - 11904: 0xFBA2, - 23077 - 11904: 0xAE5A, - 23079 - 11904: 0x9C51, - 23081 - 11904: 0xAE59, - 23082 - 11904: 0x94E9, - 23083 - 11904: 0x985C, - 23084 - 11904: 0x92F0, - 23085 - 11904: 0xD15D, - 23086 - 11904: 0xD15E, - 23091 - 11904: 0xD164, - 23093 - 11904: 0xD4D4, - 23094 - 11904: 0xB0F9, - 23095 - 11904: 0xD8C2, - 23096 - 11904: 0xD4D3, - 23097 - 11904: 0xD4E6, - 23100 - 11904: 0xB140, - 23101 - 11904: 0x944C, - 23102 - 11904: 0xD4E4, - 23104 - 11904: 0xB0FE, - 23105 - 11904: 0xB0FA, - 23106 - 11904: 0xD4ED, - 23107 - 11904: 0xD4DD, - 23108 - 11904: 0xD4E0, - 23109 - 11904: 0x916B, - 23110 - 11904: 0xB143, - 23111 - 11904: 0xD4EA, - 23112 - 11904: 0xD4E2, - 23113 - 11904: 0xB0FB, - 23114 - 11904: 0xB144, - 23116 - 11904: 0xD4E7, - 23117 - 11904: 0xD4E5, - 23120 - 11904: 0xD4D6, - 23121 - 11904: 0xD4EB, - 23122 - 11904: 0xD4DF, - 23123 - 11904: 0xD4DA, - 23124 - 11904: 0x8B78, - 23125 - 11904: 0xD4D0, - 23126 - 11904: 0xD4EC, - 23127 - 11904: 0xD4DC, - 23128 - 11904: 0xD4CF, - 23129 - 11904: 0x94E2, - 23130 - 11904: 0xB142, - 23131 - 11904: 0xD4E1, - 23132 - 11904: 0xD4EE, - 23133 - 11904: 0xD4DE, - 23134 - 11904: 0xD4D2, - 23135 - 11904: 0xD4D7, - 23136 - 11904: 0xD4CE, - 23137 - 11904: 0x984F, - 23138 - 11904: 0xB141, - 23139 - 11904: 0xFBB5, - 23140 - 11904: 0xD4DB, - 23141 - 11904: 0xD4D8, - 23142 - 11904: 0xB0FC, - 23143 - 11904: 0xD4D1, - 23144 - 11904: 0x9271, - 23145 - 11904: 0xD4E9, - 23146 - 11904: 0xB0FD, - 23147 - 11904: 0x9365, - 23148 - 11904: 0xD4D9, - 23149 - 11904: 0xD4D5, - 23150 - 11904: 0x985B, - 23152 - 11904: 0xD4E8, - 23153 - 11904: 0x9850, - 23159 - 11904: 0xFBB8, - 23160 - 11904: 0xD8BB, - 23161 - 11904: 0x97BC, - 23162 - 11904: 0xD8B8, - 23163 - 11904: 0xD8C9, - 23164 - 11904: 0xD8BD, - 23165 - 11904: 0xD8CA, - 23166 - 11904: 0x92F3, - 23167 - 11904: 0xB442, - 23169 - 11904: 0x9340, - 23170 - 11904: 0x984D, - 23171 - 11904: 0xD8C6, - 23172 - 11904: 0xD8C3, - 23174 - 11904: 0x9572, - 23176 - 11904: 0xFDEF, - 23178 - 11904: 0xD8C4, - 23179 - 11904: 0xD8C7, - 23180 - 11904: 0xD8CB, - 23182 - 11904: 0xD4E3, - 23183 - 11904: 0xD8CD, - 23184 - 11904: 0xDD47, - 23185 - 11904: 0xFDC1, - 23186 - 11904: 0xB443, - 23187 - 11904: 0xD8CE, - 23188 - 11904: 0xD8B6, - 23189 - 11904: 0xD8C0, - 23190 - 11904: 0xFBBA, - 23191 - 11904: 0xD8C5, - 23193 - 11904: 0x92EB, - 23194 - 11904: 0xB441, - 23195 - 11904: 0xB444, - 23196 - 11904: 0xD8CC, - 23197 - 11904: 0xD8CF, - 23198 - 11904: 0xD8BA, - 23199 - 11904: 0xD8B7, - 23200 - 11904: 0xFC73, - 23201 - 11904: 0x97B7, - 23202 - 11904: 0xD8B9, - 23204 - 11904: 0x876F, - 23205 - 11904: 0xD8BE, - 23206 - 11904: 0xD8BC, - 23207 - 11904: 0xB445, - 23209 - 11904: 0xD8C8, - 23211 - 11904: 0xFBB4, - 23212 - 11904: 0xD8BF, - 23214 - 11904: 0xD8C1, - 23215 - 11904: 0xD8B5, - 23216 - 11904: 0xDCFA, - 23217 - 11904: 0xDCF8, - 23218 - 11904: 0xB742, - 23219 - 11904: 0xB740, - 23220 - 11904: 0xDD43, - 23221 - 11904: 0xDCF9, - 23222 - 11904: 0xDD44, - 23223 - 11904: 0xDD40, - 23224 - 11904: 0xDCF7, - 23225 - 11904: 0xDD46, - 23226 - 11904: 0xDCF6, - 23227 - 11904: 0xDCFD, - 23228 - 11904: 0xB6FE, - 23229 - 11904: 0xB6FD, - 23230 - 11904: 0xB6FC, - 23231 - 11904: 0xDCFB, - 23232 - 11904: 0xDD41, - 23233 - 11904: 0xB6F9, - 23234 - 11904: 0xB741, - 23235 - 11904: 0x90A7, - 23236 - 11904: 0xDCF4, - 23238 - 11904: 0xDCFE, - 23239 - 11904: 0xDCF3, - 23240 - 11904: 0xDCFC, - 23241 - 11904: 0xB6FA, - 23242 - 11904: 0xDD42, - 23243 - 11904: 0xDCF5, - 23244 - 11904: 0xB6FB, - 23245 - 11904: 0xDD45, - 23246 - 11904: 0x9741, - 23247 - 11904: 0x92F4, - 23249 - 11904: 0x8772, - 23251 - 11904: 0xFBBC, - 23253 - 11904: 0xE16E, - 23254 - 11904: 0xB9E2, - 23255 - 11904: 0xB9E1, - 23256 - 11904: 0xB9E3, - 23257 - 11904: 0xE17A, - 23258 - 11904: 0xE170, - 23259 - 11904: 0xE176, - 23260 - 11904: 0xE16B, - 23261 - 11904: 0xE179, - 23262 - 11904: 0xE178, - 23263 - 11904: 0xE17C, - 23264 - 11904: 0xE175, - 23265 - 11904: 0xB9DE, - 23266 - 11904: 0xE174, - 23267 - 11904: 0xB9E4, - 23268 - 11904: 0x9577, - 23269 - 11904: 0xE16D, - 23270 - 11904: 0xB9DF, - 23272 - 11904: 0xE17B, - 23273 - 11904: 0xB9E0, - 23274 - 11904: 0xE16F, - 23275 - 11904: 0xE172, - 23276 - 11904: 0xE177, - 23277 - 11904: 0xE171, - 23278 - 11904: 0xE16C, - 23280 - 11904: 0x9EE2, - 23282 - 11904: 0x8F78, - 23283 - 11904: 0xE173, - 23284 - 11904: 0xE555, - 23285 - 11904: 0xBC61, - 23286 - 11904: 0xE558, - 23287 - 11904: 0xE557, - 23288 - 11904: 0xE55A, - 23289 - 11904: 0xE55C, - 23290 - 11904: 0xF9DC, - 23291 - 11904: 0xBC5F, - 23293 - 11904: 0xE556, - 23294 - 11904: 0x9672, - 23295 - 11904: 0xE554, - 23297 - 11904: 0xE55D, - 23298 - 11904: 0xE55B, - 23299 - 11904: 0xE559, - 23301 - 11904: 0xE55F, - 23303 - 11904: 0xE55E, - 23304 - 11904: 0xBC63, - 23305 - 11904: 0xBC5E, - 23307 - 11904: 0xBC60, - 23308 - 11904: 0xBC62, - 23309 - 11904: 0x9EB5, - 23311 - 11904: 0xE560, - 23312 - 11904: 0xE957, - 23313 - 11904: 0x964B, - 23315 - 11904: 0xE956, - 23316 - 11904: 0xE955, - 23317 - 11904: 0x8CAC, - 23318 - 11904: 0xE958, - 23319 - 11904: 0xE951, - 23321 - 11904: 0xE952, - 23322 - 11904: 0xE95A, - 23323 - 11904: 0xE953, - 23325 - 11904: 0xBEC5, - 23326 - 11904: 0xE95C, - 23327 - 11904: 0xA0FA, - 23328 - 11904: 0xE95B, - 23329 - 11904: 0xE954, - 23331 - 11904: 0xECD1, - 23332 - 11904: 0xC0A8, - 23333 - 11904: 0xECCF, - 23334 - 11904: 0xECD4, - 23335 - 11904: 0xECD3, - 23336 - 11904: 0xE959, - 23338 - 11904: 0xC0A7, - 23339 - 11904: 0x9575, - 23340 - 11904: 0xECD2, - 23341 - 11904: 0xECCE, - 23342 - 11904: 0xECD6, - 23343 - 11904: 0xECD5, - 23344 - 11904: 0xC0A6, - 23346 - 11904: 0xECD0, - 23348 - 11904: 0xBEC6, - 23352 - 11904: 0xC254, - 23356 - 11904: 0xEFC1, - 23357 - 11904: 0xF1FA, - 23358 - 11904: 0xF1FB, - 23359 - 11904: 0xF1FC, - 23360 - 11904: 0xC45C, - 23361 - 11904: 0x90DA, - 23363 - 11904: 0xC45D, - 23364 - 11904: 0x9367, - 23365 - 11904: 0xF443, - 23366 - 11904: 0xFEA4, - 23367 - 11904: 0xF5C8, - 23368 - 11904: 0xF5C7, - 23370 - 11904: 0x90DF, - 23371 - 11904: 0xF6DB, - 23372 - 11904: 0xF6DC, - 23373 - 11904: 0xF7D5, - 23374 - 11904: 0xF8A7, - 23375 - 11904: 0x9354, - 23376 - 11904: 0xA46C, - 23377 - 11904: 0xA46D, - 23379 - 11904: 0xA46E, - 23380 - 11904: 0xA4D5, - 23381 - 11904: 0xA5A5, - 23382 - 11904: 0xC9D3, - 23383 - 11904: 0xA672, - 23384 - 11904: 0xA673, - 23386 - 11904: 0xA7B7, - 23387 - 11904: 0xA7B8, - 23388 - 11904: 0xA7B6, - 23389 - 11904: 0xA7B5, - 23391 - 11904: 0xA973, - 23394 - 11904: 0xCC55, - 23395 - 11904: 0xA975, - 23396 - 11904: 0xA974, - 23397 - 11904: 0xCC56, - 23398 - 11904: 0x8961, - 23400 - 11904: 0x8BB4, - 23401 - 11904: 0xABC4, - 23403 - 11904: 0xAE5D, - 23404 - 11904: 0xD165, - 23405 - 11904: 0x9DC0, - 23406 - 11904: 0xD4F0, - 23408 - 11904: 0xB145, - 23409 - 11904: 0xB447, - 23410 - 11904: 0xD4EF, - 23411 - 11904: 0xB446, - 23412 - 11904: 0x8E48, - 23413 - 11904: 0xB9E5, - 23414 - 11904: 0xFBC5, - 23415 - 11904: 0xE17D, - 23416 - 11904: 0xBEC7, - 23418 - 11904: 0xC0A9, - 23419 - 11904: 0xECD7, - 23420 - 11904: 0xFBC7, - 23421 - 11904: 0xC45E, - 23423 - 11904: 0xC570, - 23424 - 11904: 0xC6CB, - 23425 - 11904: 0xC972, - 23426 - 11904: 0xFA79, - 23427 - 11904: 0xA5A6, - 23428 - 11904: 0xC973, - 23429 - 11904: 0xA676, - 23431 - 11904: 0xA674, - 23432 - 11904: 0xA675, - 23433 - 11904: 0xA677, - 23435 - 11904: 0xA7BA, - 23436 - 11904: 0xA7B9, - 23438 - 11904: 0xCABC, - 23439 - 11904: 0xA7BB, - 23440 - 11904: 0x9E67, - 23442 - 11904: 0xCABD, - 23443 - 11904: 0xCC57, - 23445 - 11904: 0xCC58, - 23446 - 11904: 0x8CD9, - 23447 - 11904: 0xA976, - 23448 - 11904: 0xA978, - 23449 - 11904: 0xA97A, - 23450 - 11904: 0xA977, - 23451 - 11904: 0xA97B, - 23452 - 11904: 0xA979, - 23453 - 11904: 0xFBD2, - 23454 - 11904: 0x8962, - 23455 - 11904: 0x8963, - 23458 - 11904: 0xABC8, - 23459 - 11904: 0xABC5, - 23460 - 11904: 0xABC7, - 23461 - 11904: 0xABC9, - 23462 - 11904: 0xABC6, - 23463 - 11904: 0xD166, - 23464 - 11904: 0xCE77, - 23466 - 11904: 0xFC7D, - 23468 - 11904: 0xD168, - 23469 - 11904: 0xD167, - 23470 - 11904: 0xAE63, - 23472 - 11904: 0xAE5F, - 23475 - 11904: 0xAE60, - 23476 - 11904: 0xAE62, - 23477 - 11904: 0xAE64, - 23478 - 11904: 0xAE61, - 23479 - 11904: 0x8773, - 23480 - 11904: 0xAE66, - 23481 - 11904: 0xAE65, - 23487 - 11904: 0xB14A, - 23488 - 11904: 0xD4F2, - 23489 - 11904: 0xD4F1, - 23490 - 11904: 0xB149, - 23491 - 11904: 0x9F6B, - 23492 - 11904: 0xB148, - 23493 - 11904: 0xB147, - 23494 - 11904: 0xB14B, - 23495 - 11904: 0xB146, - 23498 - 11904: 0xD8D5, - 23499 - 11904: 0xD8D2, - 23500 - 11904: 0xB449, - 23501 - 11904: 0xD8D1, - 23502 - 11904: 0xD8D6, - 23504 - 11904: 0xB44B, - 23505 - 11904: 0xD8D4, - 23506 - 11904: 0xB448, - 23507 - 11904: 0xB44A, - 23508 - 11904: 0xD8D3, - 23509 - 11904: 0xFBCC, - 23510 - 11904: 0xDD48, - 23511 - 11904: 0xFEAE, - 23512 - 11904: 0xDD49, - 23513 - 11904: 0xDD4A, - 23515 - 11904: 0x876D, - 23518 - 11904: 0xB9E6, - 23519 - 11904: 0xB9EE, - 23520 - 11904: 0xE17E, - 23521 - 11904: 0xB9E8, - 23522 - 11904: 0xB9EC, - 23523 - 11904: 0xE1A1, - 23524 - 11904: 0xB9ED, - 23525 - 11904: 0xB9E9, - 23526 - 11904: 0xB9EA, - 23527 - 11904: 0xB9E7, - 23528 - 11904: 0xB9EB, - 23529 - 11904: 0xBC66, - 23530 - 11904: 0xD8D0, - 23531 - 11904: 0xBC67, - 23532 - 11904: 0xBC65, - 23534 - 11904: 0xBC64, - 23535 - 11904: 0xE95D, - 23536 - 11904: 0xBEC8, - 23537 - 11904: 0xECD8, - 23538 - 11904: 0xECD9, - 23539 - 11904: 0xFBD1, - 23541 - 11904: 0xC364, - 23542 - 11904: 0xC45F, - 23544 - 11904: 0xA46F, - 23546 - 11904: 0xA678, - 23551 - 11904: 0xFB75, - 23553 - 11904: 0xABCA, - 23555 - 11904: 0xD169, - 23556 - 11904: 0xAE67, - 23557 - 11904: 0xFBD4, - 23559 - 11904: 0xB14E, - 23560 - 11904: 0xB14D, - 23561 - 11904: 0xB14C, - 23562 - 11904: 0xB44C, - 23563 - 11904: 0xB44D, - 23564 - 11904: 0xD8D7, - 23565 - 11904: 0xB9EF, - 23566 - 11904: 0xBEC9, - 23567 - 11904: 0xA470, - 23568 - 11904: 0xC95C, - 23569 - 11904: 0xA4D6, - 23570 - 11904: 0xC974, - 23571 - 11904: 0xFBD6, - 23572 - 11904: 0xFBD8, - 23573 - 11904: 0xC9D4, - 23574 - 11904: 0xA679, - 23578 - 11904: 0xA97C, - 23580 - 11904: 0x8B5D, - 23582 - 11904: 0x934C, - 23583 - 11904: 0xDD4B, - 23584 - 11904: 0x9AE2, - 23586 - 11904: 0xA471, - 23587 - 11904: 0x8BC9, - 23588 - 11904: 0xA4D7, - 23589 - 11904: 0xC9D5, - 23592 - 11904: 0xCABE, - 23594 - 11904: 0xCABF, - 23596 - 11904: 0xA7BC, - 23600 - 11904: 0xD8D8, - 23601 - 11904: 0xB44E, - 23603 - 11904: 0xDD4C, - 23607 - 11904: 0xC0AA, - 23608 - 11904: 0xA472, - 23609 - 11904: 0xA4A8, - 23610 - 11904: 0xA4D8, - 23611 - 11904: 0xC975, - 23612 - 11904: 0xA5A7, - 23614 - 11904: 0xA7C0, - 23615 - 11904: 0xA7BF, - 23616 - 11904: 0xA7BD, - 23617 - 11904: 0xA7BE, - 23620 - 11904: 0xCC59, - 23621 - 11904: 0xA97E, - 23622 - 11904: 0xA9A1, - 23623 - 11904: 0xCC5A, - 23624 - 11904: 0xA97D, - 23625 - 11904: 0xFBDB, - 23626 - 11904: 0x9FC9, - 23627 - 11904: 0xABCE, - 23628 - 11904: 0xCE78, - 23629 - 11904: 0xABCD, - 23630 - 11904: 0xABCB, - 23631 - 11904: 0xABCC, - 23632 - 11904: 0xAE6A, - 23633 - 11904: 0xAE68, - 23635 - 11904: 0x9F44, - 23636 - 11904: 0xD16B, - 23637 - 11904: 0xAE69, - 23638 - 11904: 0xD16A, - 23640 - 11904: 0xAE5E, - 23641 - 11904: 0xD4F3, - 23644 - 11904: 0xB150, - 23645 - 11904: 0xB151, - 23646 - 11904: 0x98ED, - 23648 - 11904: 0xB14F, - 23650 - 11904: 0xB9F0, - 23651 - 11904: 0xE1A2, - 23652 - 11904: 0xBC68, - 23653 - 11904: 0xBC69, - 23655 - 11904: 0xE561, - 23656 - 11904: 0xC0AB, - 23657 - 11904: 0xEFC2, - 23658 - 11904: 0xEFC3, - 23660 - 11904: 0xC4DD, - 23661 - 11904: 0xF8A8, - 23662 - 11904: 0xC94B, - 23663 - 11904: 0xA4D9, - 23665 - 11904: 0xA473, - 23667 - 11904: 0xC977, - 23668 - 11904: 0xC976, - 23672 - 11904: 0x8CE9, - 23673 - 11904: 0xA67A, - 23674 - 11904: 0xC9D7, - 23675 - 11904: 0xC9D8, - 23676 - 11904: 0xC9D6, - 23678 - 11904: 0xC9D9, - 23685 - 11904: 0xFBDD, - 23686 - 11904: 0xCAC7, - 23688 - 11904: 0xCAC2, - 23689 - 11904: 0xCAC4, - 23690 - 11904: 0xCAC6, - 23691 - 11904: 0xCAC3, - 23692 - 11904: 0xA7C4, - 23693 - 11904: 0xCAC0, - 23695 - 11904: 0xCAC1, - 23696 - 11904: 0xA7C1, - 23697 - 11904: 0xA7C2, - 23698 - 11904: 0xCAC5, - 23699 - 11904: 0xCAC8, - 23700 - 11904: 0xA7C3, - 23701 - 11904: 0xCAC9, - 23705 - 11904: 0x8DF2, - 23706 - 11904: 0x8964, - 23708 - 11904: 0xFDF2, - 23709 - 11904: 0xCC68, - 23710 - 11904: 0x934D, - 23711 - 11904: 0xCC62, - 23712 - 11904: 0xCC5D, - 23713 - 11904: 0xA9A3, - 23714 - 11904: 0xCC65, - 23715 - 11904: 0xCC63, - 23716 - 11904: 0xCC5C, - 23717 - 11904: 0xCC69, - 23718 - 11904: 0xCC6C, - 23719 - 11904: 0xCC67, - 23720 - 11904: 0xCC60, - 23721 - 11904: 0xA9A5, - 23722 - 11904: 0xCC66, - 23723 - 11904: 0xA9A6, - 23724 - 11904: 0xCC61, - 23725 - 11904: 0xCC64, - 23726 - 11904: 0xCC5B, - 23727 - 11904: 0xCC5F, - 23728 - 11904: 0xCC6B, - 23729 - 11904: 0xA9A7, - 23731 - 11904: 0xA9A8, - 23733 - 11904: 0xCC5E, - 23734 - 11904: 0xCC6A, - 23735 - 11904: 0xA9A2, - 23736 - 11904: 0xA9A4, - 23738 - 11904: 0xFBE7, - 23745 - 11904: 0xA0F2, - 23746 - 11904: 0x9868, - 23750 - 11904: 0xCEAB, - 23751 - 11904: 0xCEA4, - 23752 - 11904: 0xCEAA, - 23753 - 11904: 0xCEA3, - 23754 - 11904: 0xCEA5, - 23755 - 11904: 0xCE7D, - 23756 - 11904: 0xCE7B, - 23758 - 11904: 0xCEAC, - 23759 - 11904: 0xCEA9, - 23760 - 11904: 0xCE79, - 23761 - 11904: 0x9F58, - 23762 - 11904: 0xABD0, - 23763 - 11904: 0xCEA7, - 23764 - 11904: 0xCEA8, - 23765 - 11904: 0x8CE6, - 23766 - 11904: 0xCEA6, - 23767 - 11904: 0xCE7C, - 23768 - 11904: 0xCE7A, - 23769 - 11904: 0xABCF, - 23770 - 11904: 0xCEA2, - 23771 - 11904: 0xCE7E, - 23774 - 11904: 0xCEA1, - 23775 - 11904: 0xCEAD, - 23781 - 11904: 0x8D73, - 23784 - 11904: 0xAE6F, - 23785 - 11904: 0xFBDE, - 23786 - 11904: 0xAE6E, - 23788 - 11904: 0xD16C, - 23789 - 11904: 0xAE6B, - 23790 - 11904: 0xD16E, - 23791 - 11904: 0xFBDF, - 23792 - 11904: 0xAE70, - 23793 - 11904: 0xD16F, - 23796 - 11904: 0xAE73, - 23797 - 11904: 0x8C48, - 23798 - 11904: 0xAE71, - 23799 - 11904: 0xD170, - 23800 - 11904: 0xCEAE, - 23801 - 11904: 0xD172, - 23803 - 11904: 0xAE6D, - 23804 - 11904: 0x8774, - 23805 - 11904: 0xAE6C, - 23807 - 11904: 0xD16D, - 23808 - 11904: 0xD171, - 23809 - 11904: 0xAE72, - 23814 - 11904: 0xB153, - 23815 - 11904: 0xB152, - 23819 - 11904: 0xD4F5, - 23820 - 11904: 0xD4F9, - 23821 - 11904: 0xD4FB, - 23822 - 11904: 0xB154, - 23823 - 11904: 0xD4FE, - 23824 - 11904: 0xFBE3, - 23825 - 11904: 0xB158, - 23826 - 11904: 0xD541, - 23828 - 11904: 0xB15A, - 23829 - 11904: 0x8DA8, - 23830 - 11904: 0xB156, - 23831 - 11904: 0xB15E, - 23832 - 11904: 0xFBE4, - 23833 - 11904: 0xB15B, - 23834 - 11904: 0xD4F7, - 23835 - 11904: 0xB155, - 23837 - 11904: 0xD4F6, - 23838 - 11904: 0xD4F4, - 23839 - 11904: 0xD543, - 23840 - 11904: 0xD4F8, - 23842 - 11904: 0xB157, - 23843 - 11904: 0xD542, - 23844 - 11904: 0xB15C, - 23845 - 11904: 0xD4FD, - 23846 - 11904: 0xD4FC, - 23847 - 11904: 0xB15D, - 23848 - 11904: 0xD4FA, - 23849 - 11904: 0xB159, - 23852 - 11904: 0x9C75, - 23854 - 11904: 0xD544, - 23855 - 11904: 0x9878, - 23856 - 11904: 0xD540, - 23857 - 11904: 0xD8E7, - 23858 - 11904: 0xD8EE, - 23859 - 11904: 0xD8E3, - 23860 - 11904: 0xB451, - 23861 - 11904: 0xD8DF, - 23862 - 11904: 0xD8EF, - 23863 - 11904: 0xD8D9, - 23864 - 11904: 0xD8EC, - 23865 - 11904: 0xD8EA, - 23866 - 11904: 0xD8E4, - 23868 - 11904: 0xD8ED, - 23869 - 11904: 0xD8E6, - 23870 - 11904: 0x8D60, - 23871 - 11904: 0xD8DE, - 23872 - 11904: 0xD8F0, - 23873 - 11904: 0xD8DC, - 23874 - 11904: 0xD8E9, - 23875 - 11904: 0xD8DA, - 23877 - 11904: 0xD8F1, - 23878 - 11904: 0xFBE5, - 23879 - 11904: 0xB452, - 23880 - 11904: 0x8D61, - 23881 - 11904: 0xD8EB, - 23882 - 11904: 0xDD4F, - 23883 - 11904: 0xD8DD, - 23884 - 11904: 0xB44F, - 23886 - 11904: 0xD8E1, - 23888 - 11904: 0xB450, - 23889 - 11904: 0xD8E0, - 23890 - 11904: 0xD8E5, - 23893 - 11904: 0xD8E2, - 23894 - 11904: 0x8D62, - 23895 - 11904: 0xA0A1, - 23897 - 11904: 0xD8E8, - 23899 - 11904: 0x9C40, - 23902 - 11904: 0xDD53, - 23906 - 11904: 0xDD56, - 23907 - 11904: 0xDD4E, - 23909 - 11904: 0xDD50, - 23911 - 11904: 0xDD55, - 23912 - 11904: 0xDD54, - 23913 - 11904: 0xB743, - 23915 - 11904: 0xD8DB, - 23916 - 11904: 0xDD52, - 23919 - 11904: 0xB744, - 23920 - 11904: 0x98AD, - 23921 - 11904: 0xDD4D, - 23922 - 11904: 0xDD51, - 23924 - 11904: 0x9EEA, - 23927 - 11904: 0xE1A9, - 23928 - 11904: 0x8CEC, - 23929 - 11904: 0xE1B0, - 23930 - 11904: 0xE1A7, - 23931 - 11904: 0x8CD4, - 23932 - 11904: 0xE1AE, - 23933 - 11904: 0xE1A5, - 23934 - 11904: 0xE1AD, - 23935 - 11904: 0xE1B1, - 23936 - 11904: 0xE1A4, - 23937 - 11904: 0xE1A8, - 23938 - 11904: 0xE1A3, - 23940 - 11904: 0xB9F1, - 23941 - 11904: 0x9CEB, - 23942 - 11904: 0xE1A6, - 23943 - 11904: 0xB9F2, - 23944 - 11904: 0xE1AC, - 23945 - 11904: 0xE1AB, - 23946 - 11904: 0xE1AA, - 23947 - 11904: 0xFBE0, - 23949 - 11904: 0xE1AF, - 23950 - 11904: 0x9F51, - 23954 - 11904: 0xE565, - 23955 - 11904: 0xE567, - 23956 - 11904: 0xBC6B, - 23957 - 11904: 0xE568, - 23959 - 11904: 0xE563, - 23961 - 11904: 0xE562, - 23962 - 11904: 0xE56C, - 23964 - 11904: 0xE56A, - 23965 - 11904: 0xBC6A, - 23966 - 11904: 0xE56D, - 23967 - 11904: 0xE564, - 23968 - 11904: 0xE569, - 23969 - 11904: 0xE56B, - 23970 - 11904: 0xE566, - 23972 - 11904: 0x8D65, - 23975 - 11904: 0xE961, - 23976 - 11904: 0xE966, - 23977 - 11904: 0xE960, - 23978 - 11904: 0xE965, - 23979 - 11904: 0x9CF1, - 23980 - 11904: 0xE95E, - 23981 - 11904: 0xE968, - 23982 - 11904: 0xE964, - 23983 - 11904: 0xE969, - 23984 - 11904: 0xE963, - 23985 - 11904: 0xE95F, - 23986 - 11904: 0xE967, - 23988 - 11904: 0xE96A, - 23989 - 11904: 0xE962, - 23990 - 11904: 0xFC58, - 23991 - 11904: 0xECDA, - 23992 - 11904: 0xC0AF, - 23993 - 11904: 0x8D66, - 23994 - 11904: 0xC0AD, - 23996 - 11904: 0xC0AC, - 23997 - 11904: 0xC0AE, - 24000 - 11904: 0xEFC4, - 24001 - 11904: 0x9654, - 24002 - 11904: 0xF172, - 24003 - 11904: 0xF1FD, - 24006 - 11904: 0xF444, - 24007 - 11904: 0xF445, - 24009 - 11904: 0xC460, - 24011 - 11904: 0xF5C9, - 24013 - 11904: 0xC4DE, - 24015 - 11904: 0xF5CA, - 24017 - 11904: 0xF6DE, - 24018 - 11904: 0xC572, - 24020 - 11904: 0xC571, - 24021 - 11904: 0xF6DD, - 24022 - 11904: 0xC5C9, - 24023 - 11904: 0xFBE8, - 24024 - 11904: 0xF7D6, - 24027 - 11904: 0xC6CC, - 24029 - 11904: 0xA474, - 24030 - 11904: 0xA67B, - 24031 - 11904: 0xC9DA, - 24032 - 11904: 0xCACA, - 24033 - 11904: 0xA8B5, - 24034 - 11904: 0xB15F, - 24037 - 11904: 0xA475, - 24038 - 11904: 0xA5AA, - 24039 - 11904: 0xA5A9, - 24040 - 11904: 0xA5A8, - 24043 - 11904: 0xA7C5, - 24046 - 11904: 0xAE74, - 24048 - 11904: 0xDD57, - 24049 - 11904: 0xA476, - 24050 - 11904: 0xA477, - 24051 - 11904: 0xA478, - 24052 - 11904: 0xA4DA, - 24053 - 11904: 0x9FCE, - 24055 - 11904: 0xABD1, - 24057 - 11904: 0xCEAF, - 24061 - 11904: 0xB453, - 24062 - 11904: 0xA479, - 24063 - 11904: 0xC95D, - 24066 - 11904: 0xA5AB, - 24067 - 11904: 0xA5AC, - 24068 - 11904: 0xC978, - 24070 - 11904: 0xA67C, - 24073 - 11904: 0xFBFC, - 24074 - 11904: 0xCACB, - 24075 - 11904: 0x9AE4, - 24076 - 11904: 0xA7C6, - 24078 - 11904: 0xCACC, - 24081 - 11904: 0xA9AE, - 24082 - 11904: 0x9F75, - 24084 - 11904: 0xCC6E, - 24085 - 11904: 0xA9AC, - 24086 - 11904: 0xA9AB, - 24087 - 11904: 0xCC6D, - 24088 - 11904: 0xA9A9, - 24089 - 11904: 0xCC6F, - 24090 - 11904: 0xA9AA, - 24091 - 11904: 0xA9AD, - 24093 - 11904: 0xABD2, - 24095 - 11904: 0xABD4, - 24096 - 11904: 0xCEB3, - 24097 - 11904: 0xCEB0, - 24098 - 11904: 0xCEB1, - 24099 - 11904: 0xCEB2, - 24100 - 11904: 0xCEB4, - 24101 - 11904: 0xABD3, - 24104 - 11904: 0xD174, - 24105 - 11904: 0xD173, - 24107 - 11904: 0xAE76, - 24109 - 11904: 0xAE75, - 24110 - 11904: 0xFBF1, - 24115 - 11904: 0xB162, - 24116 - 11904: 0xD546, - 24118 - 11904: 0xB161, - 24119 - 11904: 0xB163, - 24120 - 11904: 0xB160, - 24125 - 11904: 0xB455, - 24126 - 11904: 0xD545, - 24128 - 11904: 0xB456, - 24129 - 11904: 0xD8F3, - 24130 - 11904: 0x8D69, - 24131 - 11904: 0xB457, - 24132 - 11904: 0xD8F2, - 24133 - 11904: 0xB454, - 24136 - 11904: 0x934F, - 24138 - 11904: 0xDD5A, - 24139 - 11904: 0xDD5C, - 24140 - 11904: 0xB745, - 24141 - 11904: 0xDD5B, - 24142 - 11904: 0xDD59, - 24143 - 11904: 0xDD58, - 24147 - 11904: 0xE1B4, - 24148 - 11904: 0xB9F7, - 24149 - 11904: 0xB9F5, - 24151 - 11904: 0xB9F6, - 24152 - 11904: 0xE1B2, - 24153 - 11904: 0xE1B3, - 24155 - 11904: 0xB9F3, - 24156 - 11904: 0xE571, - 24157 - 11904: 0xE56F, - 24158 - 11904: 0x934E, - 24159 - 11904: 0xBC6D, - 24160 - 11904: 0xE570, - 24161 - 11904: 0xBC6E, - 24162 - 11904: 0xBC6C, - 24163 - 11904: 0xB9F4, - 24166 - 11904: 0xE96D, - 24167 - 11904: 0xE96B, - 24168 - 11904: 0xE96C, - 24169 - 11904: 0xE56E, - 24170 - 11904: 0xECDC, - 24171 - 11904: 0xC0B0, - 24172 - 11904: 0xECDB, - 24173 - 11904: 0xEFC5, - 24174 - 11904: 0xEFC6, - 24175 - 11904: 0xE96E, - 24176 - 11904: 0xF1FE, - 24178 - 11904: 0xA47A, - 24179 - 11904: 0xA5AD, - 24180 - 11904: 0xA67E, - 24181 - 11904: 0xFBF3, - 24182 - 11904: 0xA67D, - 24184 - 11904: 0xA9AF, - 24185 - 11904: 0xB746, - 24186 - 11904: 0xFBF4, - 24187 - 11904: 0xA4DB, - 24188 - 11904: 0xA5AE, - 24189 - 11904: 0xABD5, - 24190 - 11904: 0xB458, - 24191 - 11904: 0xC6CE, - 24192 - 11904: 0xC979, - 24194 - 11904: 0xC97A, - 24195 - 11904: 0xFBC3, - 24196 - 11904: 0xC9DC, - 24198 - 11904: 0x8965, - 24199 - 11904: 0xA7C8, - 24200 - 11904: 0xCAD0, - 24201 - 11904: 0xCACE, - 24202 - 11904: 0xA7C9, - 24203 - 11904: 0xCACD, - 24204 - 11904: 0xCACF, - 24205 - 11904: 0xCAD1, - 24207 - 11904: 0xA7C7, - 24210 - 11904: 0x8C7A, - 24213 - 11904: 0xA9B3, - 24214 - 11904: 0xA9B4, - 24215 - 11904: 0xA9B1, - 24217 - 11904: 0x8C7B, - 24218 - 11904: 0xA9B0, - 24219 - 11904: 0xCEB8, - 24220 - 11904: 0xA9B2, - 24224 - 11904: 0xABD6, - 24226 - 11904: 0xCEB7, - 24227 - 11904: 0xCEB9, - 24228 - 11904: 0xCEB6, - 24229 - 11904: 0xCEBA, - 24230 - 11904: 0xABD7, - 24231 - 11904: 0xAE79, - 24232 - 11904: 0xD175, - 24234 - 11904: 0xD177, - 24235 - 11904: 0xAE77, - 24236 - 11904: 0xD178, - 24237 - 11904: 0xAE78, - 24238 - 11904: 0xD176, - 24240 - 11904: 0xCEB5, - 24241 - 11904: 0xD547, - 24242 - 11904: 0xD54A, - 24243 - 11904: 0xD54B, - 24244 - 11904: 0xD548, - 24245 - 11904: 0xB167, - 24246 - 11904: 0xB166, - 24247 - 11904: 0xB164, - 24248 - 11904: 0xB165, - 24249 - 11904: 0xD549, - 24253 - 11904: 0x8D6A, - 24254 - 11904: 0xB168, - 24257 - 11904: 0xB45A, - 24258 - 11904: 0xB45B, - 24260 - 11904: 0xB45C, - 24261 - 11904: 0xDD5D, - 24262 - 11904: 0xDD5F, - 24263 - 11904: 0xDD61, - 24264 - 11904: 0xB748, - 24265 - 11904: 0xB747, - 24266 - 11904: 0xB459, - 24267 - 11904: 0xDD60, - 24268 - 11904: 0xDD5E, - 24269 - 11904: 0x9353, - 24270 - 11904: 0xE1B8, - 24272 - 11904: 0xFBF9, - 24273 - 11904: 0xE1B6, - 24274 - 11904: 0xE1BC, - 24275 - 11904: 0xB9F8, - 24276 - 11904: 0xE1BD, - 24277 - 11904: 0xE1BA, - 24278 - 11904: 0xB9F9, - 24279 - 11904: 0xE1B7, - 24280 - 11904: 0xE1B5, - 24281 - 11904: 0xE1BB, - 24282 - 11904: 0xBC70, - 24283 - 11904: 0xE573, - 24284 - 11904: 0xE1B9, - 24285 - 11904: 0xBC72, - 24286 - 11904: 0xE574, - 24287 - 11904: 0xBC71, - 24288 - 11904: 0xBC74, - 24289 - 11904: 0xE575, - 24290 - 11904: 0xBC6F, - 24291 - 11904: 0xBC73, - 24293 - 11904: 0xE973, - 24294 - 11904: 0xE971, - 24295 - 11904: 0xE970, - 24296 - 11904: 0xE972, - 24297 - 11904: 0xE96F, - 24300 - 11904: 0xC366, - 24302 - 11904: 0xF446, - 24303 - 11904: 0xF447, - 24305 - 11904: 0xF5CB, - 24306 - 11904: 0xF6DF, - 24307 - 11904: 0xC655, - 24308 - 11904: 0xFBFD, - 24310 - 11904: 0xA9B5, - 24311 - 11904: 0xA7CA, - 24312 - 11904: 0x9059, - 24313 - 11904: 0xFC40, - 24314 - 11904: 0xABD8, - 24315 - 11904: 0xFC41, - 24316 - 11904: 0xFC43, - 24318 - 11904: 0xA47B, - 24319 - 11904: 0xA4DC, - 24321 - 11904: 0xA5AF, - 24322 - 11904: 0xC9DD, - 24324 - 11904: 0xA7CB, - 24325 - 11904: 0xCAD2, - 24327 - 11904: 0xCEBB, - 24328 - 11904: 0xABD9, - 24330 - 11904: 0xB9FA, - 24331 - 11904: 0xA47C, - 24332 - 11904: 0x9FD8, - 24333 - 11904: 0xFC46, - 24334 - 11904: 0x9362, - 24335 - 11904: 0xA6A1, - 24338 - 11904: 0xB749, - 24339 - 11904: 0xA47D, - 24340 - 11904: 0xA4DD, - 24341 - 11904: 0xA4DE, - 24343 - 11904: 0xA5B1, - 24344 - 11904: 0xA5B0, - 24346 - 11904: 0xC9DE, - 24347 - 11904: 0xA6A2, - 24349 - 11904: 0xCAD3, - 24351 - 11904: 0xA7CC, - 24354 - 11904: 0xCC71, - 24355 - 11904: 0xCC72, - 24356 - 11904: 0xCC73, - 24357 - 11904: 0x8D6B, - 24358 - 11904: 0xA9B6, - 24359 - 11904: 0xA9B7, - 24360 - 11904: 0xCC70, - 24361 - 11904: 0xA9B8, - 24365 - 11904: 0xABDA, - 24366 - 11904: 0xCEBC, - 24368 - 11904: 0xD17A, - 24369 - 11904: 0xAE7A, - 24371 - 11904: 0xD179, - 24373 - 11904: 0xB169, - 24374 - 11904: 0xD54C, - 24375 - 11904: 0xB16A, - 24376 - 11904: 0xD54D, - 24378 - 11904: 0xFC4C, - 24379 - 11904: 0x8CFE, - 24380 - 11904: 0xB45D, - 24384 - 11904: 0xDD62, - 24387 - 11904: 0xE1BF, - 24388 - 11904: 0xE1BE, - 24390 - 11904: 0xB9FB, - 24392 - 11904: 0xBC75, - 24393 - 11904: 0xE576, - 24394 - 11904: 0xBECA, - 24395 - 11904: 0xE974, - 24396 - 11904: 0xC0B1, - 24397 - 11904: 0x95B8, - 24398 - 11904: 0xC573, - 24399 - 11904: 0xF7D8, - 24400 - 11904: 0xC6D0, - 24401 - 11904: 0x8BCA, - 24404 - 11904: 0xCC74, - 24406 - 11904: 0xCEBD, - 24407 - 11904: 0xB16B, - 24408 - 11904: 0xFC4F, - 24409 - 11904: 0xB74A, - 24412 - 11904: 0x987A, - 24413 - 11904: 0xC255, - 24417 - 11904: 0xC6D1, - 24418 - 11904: 0xA7CE, - 24419 - 11904: 0xFC51, - 24420 - 11904: 0xA7CD, - 24421 - 11904: 0xABDB, - 24423 - 11904: 0xD17B, - 24425 - 11904: 0xB16D, - 24426 - 11904: 0xB343, - 24427 - 11904: 0xB16E, - 24428 - 11904: 0xB16C, - 24429 - 11904: 0xB45E, - 24431 - 11904: 0xE1C0, - 24432 - 11904: 0xB9FC, - 24433 - 11904: 0xBC76, - 24434 - 11904: 0xFC54, - 24435 - 11904: 0xC94C, - 24436 - 11904: 0xC9DF, - 24438 - 11904: 0xCAD5, - 24439 - 11904: 0xA7CF, - 24440 - 11904: 0xCAD4, - 24441 - 11904: 0xA7D0, - 24443 - 11904: 0xFAAF, - 24444 - 11904: 0xA9BC, - 24445 - 11904: 0xCC77, - 24446 - 11904: 0xCC76, - 24447 - 11904: 0xA9BB, - 24448 - 11904: 0xA9B9, - 24449 - 11904: 0xA9BA, - 24450 - 11904: 0xCC75, - 24451 - 11904: 0x8D6C, - 24453 - 11904: 0xABDD, - 24454 - 11904: 0xCEBE, - 24455 - 11904: 0xABE0, - 24456 - 11904: 0xABDC, - 24457 - 11904: 0xABE2, - 24458 - 11904: 0xABDE, - 24459 - 11904: 0xABDF, - 24460 - 11904: 0xABE1, - 24464 - 11904: 0xAE7D, - 24465 - 11904: 0xAE7C, - 24466 - 11904: 0xAE7B, - 24470 - 11904: 0xD54F, - 24471 - 11904: 0xB16F, - 24472 - 11904: 0xB172, - 24473 - 11904: 0xB170, - 24475 - 11904: 0xD54E, - 24476 - 11904: 0xB175, - 24478 - 11904: 0xB171, - 24479 - 11904: 0xD550, - 24480 - 11904: 0xB174, - 24481 - 11904: 0xB173, - 24484 - 11904: 0xFA61, - 24485 - 11904: 0xD8F6, - 24486 - 11904: 0xD8F5, - 24487 - 11904: 0xFC57, - 24488 - 11904: 0xB461, - 24489 - 11904: 0xB45F, - 24490 - 11904: 0xB460, - 24491 - 11904: 0xD8F7, - 24492 - 11904: 0xB74B, - 24493 - 11904: 0xDD64, - 24494 - 11904: 0xB74C, - 24495 - 11904: 0xDD63, - 24497 - 11904: 0x9B70, - 24498 - 11904: 0xE577, - 24501 - 11904: 0xBC78, - 24502 - 11904: 0xE1C1, - 24503 - 11904: 0xBC77, - 24505 - 11904: 0xB9FD, - 24506 - 11904: 0xA051, - 24507 - 11904: 0xECDE, - 24508 - 11904: 0xE975, - 24509 - 11904: 0xC0B2, - 24510 - 11904: 0xECDD, - 24511 - 11904: 0xF240, - 24512 - 11904: 0xF448, - 24513 - 11904: 0xF449, - 24514 - 11904: 0x8C7C, - 24515 - 11904: 0xA4DF, - 24516 - 11904: 0x8BCB, - 24517 - 11904: 0xA5B2, - 24521 - 11904: 0xC97B, - 24524 - 11904: 0xA7D2, - 24525 - 11904: 0xA7D4, - 24527 - 11904: 0xC9E2, - 24528 - 11904: 0xCAD8, - 24529 - 11904: 0xCAD7, - 24530 - 11904: 0xCAD6, - 24532 - 11904: 0xC9E1, - 24533 - 11904: 0xC9E0, - 24534 - 11904: 0xA6A4, - 24535 - 11904: 0xA7D3, - 24536 - 11904: 0xA7D1, - 24537 - 11904: 0xA6A3, - 24539 - 11904: 0x936E, - 24541 - 11904: 0xA9BD, - 24542 - 11904: 0xCC78, - 24543 - 11904: 0xFCD5, - 24544 - 11904: 0xA9BE, - 24545 - 11904: 0xCADD, - 24547 - 11904: 0xCADF, - 24548 - 11904: 0xCADE, - 24549 - 11904: 0xCC79, - 24552 - 11904: 0xCADA, - 24554 - 11904: 0xA7D8, - 24555 - 11904: 0xA7D6, - 24557 - 11904: 0xCAD9, - 24558 - 11904: 0xCADB, - 24559 - 11904: 0xCAE1, - 24561 - 11904: 0xA7D5, - 24563 - 11904: 0xCADC, - 24564 - 11904: 0xCAE5, - 24565 - 11904: 0xA9C0, - 24567 - 11904: 0xCAE2, - 24568 - 11904: 0xA7D7, - 24570 - 11904: 0xCAE0, - 24571 - 11904: 0xCAE3, - 24573 - 11904: 0xA9BF, - 24575 - 11904: 0xA9C1, - 24576 - 11904: 0xCAE4, - 24585 - 11904: 0xCCAF, - 24586 - 11904: 0xCCA2, - 24587 - 11904: 0xCC7E, - 24588 - 11904: 0xCCAE, - 24589 - 11904: 0xCCA9, - 24590 - 11904: 0xABE7, - 24591 - 11904: 0xA9C2, - 24592 - 11904: 0xCCAA, - 24593 - 11904: 0xCCAD, - 24594 - 11904: 0xABE3, - 24595 - 11904: 0xCCAC, - 24596 - 11904: 0xA9C3, - 24597 - 11904: 0xA9C8, - 24598 - 11904: 0xA9C6, - 24599 - 11904: 0xCCA3, - 24601 - 11904: 0xCC7C, - 24602 - 11904: 0xCCA5, - 24603 - 11904: 0xA9CD, - 24604 - 11904: 0xCCB0, - 24605 - 11904: 0xABE4, - 24606 - 11904: 0xCCA6, - 24608 - 11904: 0xABE5, - 24609 - 11904: 0xA9C9, - 24610 - 11904: 0xCCA8, - 24611 - 11904: 0xFCA9, - 24612 - 11904: 0xCECD, - 24613 - 11904: 0xABE6, - 24614 - 11904: 0xCC7B, - 24615 - 11904: 0xA9CA, - 24616 - 11904: 0xABE8, - 24617 - 11904: 0xA9CB, - 24618 - 11904: 0xA9C7, - 24619 - 11904: 0xA9CC, - 24620 - 11904: 0xCCA7, - 24621 - 11904: 0xCC7A, - 24622 - 11904: 0xCCAB, - 24623 - 11904: 0xA9C4, - 24625 - 11904: 0xFC61, - 24626 - 11904: 0xCC7D, - 24627 - 11904: 0xCCA4, - 24628 - 11904: 0xCCA1, - 24629 - 11904: 0xA9C5, - 24631 - 11904: 0xCEBF, - 24633 - 11904: 0xCEC0, - 24635 - 11904: 0x8966, - 24640 - 11904: 0xCECA, - 24641 - 11904: 0xD1A1, - 24642 - 11904: 0xCECB, - 24643 - 11904: 0xABEE, - 24644 - 11904: 0xCECE, - 24645 - 11904: 0xCEC4, - 24646 - 11904: 0xABED, - 24647 - 11904: 0xCEC6, - 24649 - 11904: 0xCEC7, - 24650 - 11904: 0xFACB, - 24652 - 11904: 0xCEC9, - 24653 - 11904: 0xABE9, - 24656 - 11904: 0xAEA3, - 24658 - 11904: 0xF9DA, - 24659 - 11904: 0xCEC5, - 24660 - 11904: 0xCEC1, - 24661 - 11904: 0xAEA4, - 24664 - 11904: 0xCECF, - 24665 - 11904: 0xAE7E, - 24666 - 11904: 0xD17D, - 24667 - 11904: 0xCEC8, - 24669 - 11904: 0xD17C, - 24670 - 11904: 0xCEC3, - 24671 - 11904: 0xCECC, - 24674 - 11904: 0xABEC, - 24675 - 11904: 0xAEA1, - 24676 - 11904: 0xABF2, - 24677 - 11904: 0xAEA2, - 24678 - 11904: 0xCED0, - 24679 - 11904: 0xD17E, - 24680 - 11904: 0xABEB, - 24681 - 11904: 0xAEA6, - 24682 - 11904: 0xABF1, - 24683 - 11904: 0xABF0, - 24684 - 11904: 0xABEF, - 24685 - 11904: 0xAEA5, - 24686 - 11904: 0xCED1, - 24687 - 11904: 0xAEA7, - 24688 - 11904: 0xABEA, - 24690 - 11904: 0xCEC2, - 24693 - 11904: 0x937A, - 24695 - 11904: 0xA0E0, - 24702 - 11904: 0x936B, - 24703 - 11904: 0xB176, - 24704 - 11904: 0xD1A4, - 24705 - 11904: 0xD1A6, - 24707 - 11904: 0xD1A8, - 24708 - 11904: 0xAEA8, - 24709 - 11904: 0xAEAE, - 24710 - 11904: 0xD553, - 24711 - 11904: 0xD1AC, - 24712 - 11904: 0xD1A3, - 24713 - 11904: 0xB178, - 24714 - 11904: 0xD551, - 24716 - 11904: 0xAEAD, - 24717 - 11904: 0xAEAB, - 24718 - 11904: 0xD1AE, - 24720 - 11904: 0xD552, - 24722 - 11904: 0xD1A5, - 24724 - 11904: 0xAEAC, - 24725 - 11904: 0xD1A9, - 24726 - 11904: 0xAEAF, - 24727 - 11904: 0xD1AB, - 24730 - 11904: 0xAEAA, - 24731 - 11904: 0xD1AA, - 24732 - 11904: 0xD1AD, - 24733 - 11904: 0xD1A7, - 24734 - 11904: 0xFC6B, - 24735 - 11904: 0xAEA9, - 24736 - 11904: 0xB179, - 24738 - 11904: 0xD1A2, - 24739 - 11904: 0xB177, - 24740 - 11904: 0xFC6C, - 24743 - 11904: 0x9468, - 24744 - 11904: 0xB17A, - 24752 - 11904: 0xD555, - 24753 - 11904: 0xD55E, - 24754 - 11904: 0xB464, - 24755 - 11904: 0xFC6D, - 24756 - 11904: 0xB17C, - 24757 - 11904: 0xB1A3, - 24758 - 11904: 0xB465, - 24759 - 11904: 0xD560, - 24760 - 11904: 0xB1AA, - 24761 - 11904: 0xD8F9, - 24762 - 11904: 0xD556, - 24763 - 11904: 0xB1A2, - 24764 - 11904: 0xB1A5, - 24765 - 11904: 0xB17E, - 24766 - 11904: 0xD554, - 24767 - 11904: 0xD562, - 24768 - 11904: 0xD565, - 24769 - 11904: 0xD949, - 24771 - 11904: 0xD563, - 24772 - 11904: 0xD8FD, - 24773 - 11904: 0xB1A1, - 24774 - 11904: 0xB1A8, - 24775 - 11904: 0xB1AC, - 24776 - 11904: 0xD55D, - 24777 - 11904: 0xD8F8, - 24778 - 11904: 0xD561, - 24779 - 11904: 0xB17B, - 24780 - 11904: 0xD8FA, - 24781 - 11904: 0xD564, - 24782 - 11904: 0xD8FC, - 24783 - 11904: 0xD559, - 24785 - 11904: 0xB462, - 24787 - 11904: 0xD557, - 24788 - 11904: 0xD558, - 24789 - 11904: 0xB1A7, - 24791 - 11904: 0x8D71, - 24792 - 11904: 0xB1A6, - 24793 - 11904: 0xD55B, - 24794 - 11904: 0xB1AB, - 24795 - 11904: 0xD55F, - 24796 - 11904: 0xB1A4, - 24797 - 11904: 0xD55C, - 24798 - 11904: 0xFD64, - 24799 - 11904: 0xB1A9, - 24800 - 11904: 0xB466, - 24801 - 11904: 0xB463, - 24802 - 11904: 0xD8FB, - 24803 - 11904: 0x99BA, - 24804 - 11904: 0xD55A, - 24806 - 11904: 0xB17D, - 24807 - 11904: 0x9AD0, - 24808 - 11904: 0x9A61, - 24809 - 11904: 0xA0E5, - 24816 - 11904: 0xB46B, - 24817 - 11904: 0xB46F, - 24818 - 11904: 0xD940, - 24819 - 11904: 0xB751, - 24820 - 11904: 0xB46D, - 24821 - 11904: 0xD944, - 24822 - 11904: 0xB471, - 24823 - 11904: 0xDD65, - 24824 - 11904: 0xD946, - 24825 - 11904: 0xB753, - 24826 - 11904: 0xB469, - 24827 - 11904: 0xB46C, - 24828 - 11904: 0xD947, - 24829 - 11904: 0xA05B, - 24830 - 11904: 0xD948, - 24831 - 11904: 0xD94E, - 24832 - 11904: 0xB473, - 24833 - 11904: 0xB754, - 24835 - 11904: 0xD94A, - 24836 - 11904: 0xD94F, - 24837 - 11904: 0xD943, - 24838 - 11904: 0xB75E, - 24839 - 11904: 0x96AC, - 24840 - 11904: 0xB755, - 24841 - 11904: 0xB472, - 24842 - 11904: 0xD941, - 24843 - 11904: 0xD950, - 24844 - 11904: 0x9740, - 24845 - 11904: 0xB75D, - 24846 - 11904: 0xB470, - 24847 - 11904: 0xB74E, - 24848 - 11904: 0xD94D, - 24850 - 11904: 0xB474, - 24851 - 11904: 0xD945, - 24852 - 11904: 0xD8FE, - 24853 - 11904: 0xB46A, - 24854 - 11904: 0xD942, - 24856 - 11904: 0xD94B, - 24857 - 11904: 0x9EF1, - 24858 - 11904: 0xB74D, - 24859 - 11904: 0xB752, - 24860 - 11904: 0xB467, - 24861 - 11904: 0xD94C, - 24863 - 11904: 0xB750, - 24866 - 11904: 0x8C4D, - 24867 - 11904: 0xB468, - 24871 - 11904: 0xB75C, - 24872 - 11904: 0xE1C3, - 24873 - 11904: 0xDD70, - 24875 - 11904: 0xDD68, - 24876 - 11904: 0xE1C2, - 24878 - 11904: 0xDD6C, - 24879 - 11904: 0xDD6E, - 24880 - 11904: 0x9F7E, - 24882 - 11904: 0xDD6B, - 24884 - 11904: 0xB75B, - 24886 - 11904: 0xDD6A, - 24887 - 11904: 0xB75F, - 24891 - 11904: 0xE1D2, - 24893 - 11904: 0x8D72, - 24894 - 11904: 0xB75A, - 24895 - 11904: 0xBA40, - 24896 - 11904: 0xDD71, - 24897 - 11904: 0xE1C4, - 24898 - 11904: 0xFC76, - 24900 - 11904: 0xB758, - 24901 - 11904: 0xDD69, - 24902 - 11904: 0xDD6D, - 24903 - 11904: 0xB9FE, - 24904 - 11904: 0xB74F, - 24905 - 11904: 0xDD66, - 24906 - 11904: 0xDD67, - 24907 - 11904: 0xBA41, - 24908 - 11904: 0xB757, - 24909 - 11904: 0xB759, - 24910 - 11904: 0xB756, - 24911 - 11904: 0xDD6F, - 24912 - 11904: 0x96A9, - 24914 - 11904: 0xE1C8, - 24915 - 11904: 0xE1C9, - 24916 - 11904: 0xE1CE, - 24917 - 11904: 0xBC7D, - 24918 - 11904: 0xE1D5, - 24920 - 11904: 0xBA47, - 24921 - 11904: 0xA06E, - 24922 - 11904: 0xBA46, - 24923 - 11904: 0xE1D0, - 24924 - 11904: 0xFCAA, - 24925 - 11904: 0xBC7C, - 24926 - 11904: 0xE1C5, - 24927 - 11904: 0xBA45, - 24928 - 11904: 0xFBCD, - 24929 - 11904: 0xE1D4, - 24930 - 11904: 0xBA43, - 24931 - 11904: 0xBA44, - 24932 - 11904: 0xFC74, - 24933 - 11904: 0xE1D1, - 24934 - 11904: 0xE5AA, - 24935 - 11904: 0xBC7A, - 24936 - 11904: 0xB46E, - 24938 - 11904: 0xE1D3, - 24939 - 11904: 0xBCA3, - 24940 - 11904: 0xE1CB, - 24942 - 11904: 0xBC7B, - 24943 - 11904: 0xA074, - 24944 - 11904: 0xBCA2, - 24945 - 11904: 0xE1C6, - 24946 - 11904: 0xE1CA, - 24947 - 11904: 0xE1C7, - 24948 - 11904: 0xE1CD, - 24949 - 11904: 0xBA48, - 24950 - 11904: 0xBC79, - 24951 - 11904: 0xBA42, - 24953 - 11904: 0xE57A, - 24954 - 11904: 0xE1CF, - 24956 - 11904: 0xBCA1, - 24957 - 11904: 0xA071, - 24958 - 11904: 0xBCA4, - 24960 - 11904: 0xE1CC, - 24961 - 11904: 0xFC79, - 24962 - 11904: 0xBC7E, - 24963 - 11904: 0xE579, - 24967 - 11904: 0xFC7C, - 24969 - 11904: 0xE57E, - 24970 - 11904: 0xBECE, - 24971 - 11904: 0xE578, - 24972 - 11904: 0xE9A3, - 24973 - 11904: 0xE5A9, - 24974 - 11904: 0xBCA8, - 24976 - 11904: 0xBCA6, - 24977 - 11904: 0xBECC, - 24978 - 11904: 0xE5A6, - 24979 - 11904: 0xE5A2, - 24980 - 11904: 0xBCAC, - 24981 - 11904: 0x9C50, - 24982 - 11904: 0xE978, - 24984 - 11904: 0x9379, - 24985 - 11904: 0x9378, - 24986 - 11904: 0xBCAA, - 24987 - 11904: 0xE5A1, - 24988 - 11904: 0xA0DD, - 24989 - 11904: 0xE976, - 24991 - 11904: 0xE5A5, - 24993 - 11904: 0xE5A8, - 24994 - 11904: 0xE57D, - 24996 - 11904: 0xBCAB, - 24999 - 11904: 0xBCA5, - 25000 - 11904: 0xE977, - 25001 - 11904: 0xBECD, - 25002 - 11904: 0xE5A7, - 25003 - 11904: 0xBCA7, - 25004 - 11904: 0xBCA9, - 25005 - 11904: 0xE5A4, - 25006 - 11904: 0xBCAD, - 25007 - 11904: 0xE5A3, - 25008 - 11904: 0xE57C, - 25009 - 11904: 0xE57B, - 25010 - 11904: 0xBECB, - 25011 - 11904: 0xE5AB, - 25012 - 11904: 0xE97A, - 25013 - 11904: 0xECE0, - 25014 - 11904: 0xBED0, - 25015 - 11904: 0x8D75, - 25016 - 11904: 0xE9A2, - 25017 - 11904: 0x8D76, - 25018 - 11904: 0xE97E, - 25020 - 11904: 0xECE1, - 25022 - 11904: 0xBED1, - 25023 - 11904: 0xE9A1, - 25024 - 11904: 0x9374, - 25025 - 11904: 0xE97C, - 25026 - 11904: 0xC0B4, - 25027 - 11904: 0xECDF, - 25029 - 11904: 0xE979, - 25030 - 11904: 0xE97B, - 25031 - 11904: 0xC0B5, - 25032 - 11904: 0xBED3, - 25033 - 11904: 0xC0B3, - 25034 - 11904: 0xBED2, - 25035 - 11904: 0xC0B7, - 25036 - 11904: 0xE97D, - 25037 - 11904: 0xBECF, - 25039 - 11904: 0x8D77, - 25040 - 11904: 0xFCA5, - 25043 - 11904: 0xFCA2, - 25046 - 11904: 0xEFCF, - 25048 - 11904: 0xEFC7, - 25050 - 11904: 0x90C3, - 25054 - 11904: 0xECE7, - 25055 - 11904: 0xEFC8, - 25056 - 11904: 0xECE3, - 25058 - 11904: 0xA079, - 25059 - 11904: 0xC256, - 25060 - 11904: 0xECE5, - 25061 - 11904: 0xECE4, - 25062 - 11904: 0xC0B6, - 25063 - 11904: 0xECE2, - 25064 - 11904: 0xECE6, - 25065 - 11904: 0xEFD0, - 25066 - 11904: 0xEFCC, - 25067 - 11904: 0xEFCE, - 25069 - 11904: 0xEFC9, - 25070 - 11904: 0xEFCA, - 25072 - 11904: 0xEFCD, - 25073 - 11904: 0xEFCB, - 25074 - 11904: 0xC367, - 25077 - 11904: 0xC36A, - 25078 - 11904: 0xC369, - 25079 - 11904: 0xC368, - 25080 - 11904: 0xC461, - 25081 - 11904: 0xF44A, - 25082 - 11904: 0xC462, - 25083 - 11904: 0xF241, - 25084 - 11904: 0xC4DF, - 25085 - 11904: 0xF5CC, - 25086 - 11904: 0xC4E0, - 25087 - 11904: 0xC574, - 25088 - 11904: 0xC5CA, - 25089 - 11904: 0xF7D9, - 25091 - 11904: 0xF7DA, - 25092 - 11904: 0xF7DB, - 25095 - 11904: 0xF9BA, - 25096 - 11904: 0xA4E0, - 25097 - 11904: 0xC97C, - 25098 - 11904: 0xA5B3, - 25100 - 11904: 0xA6A6, - 25101 - 11904: 0xA6A7, - 25102 - 11904: 0xA6A5, - 25104 - 11904: 0xA6A8, - 25105 - 11904: 0xA7DA, - 25106 - 11904: 0xA7D9, - 25108 - 11904: 0xCCB1, - 25109 - 11904: 0xA9CF, - 25110 - 11904: 0xA9CE, - 25113 - 11904: 0xD1AF, - 25114 - 11904: 0xB1AD, - 25115 - 11904: 0xB1AE, - 25119 - 11904: 0xB475, - 25120 - 11904: 0xDD72, - 25121 - 11904: 0xB760, - 25122 - 11904: 0xB761, - 25123 - 11904: 0xDD74, - 25124 - 11904: 0xDD76, - 25125 - 11904: 0xDD75, - 25127 - 11904: 0xE1D7, - 25129 - 11904: 0xE1D6, - 25130 - 11904: 0xBA49, - 25131 - 11904: 0xE1D8, - 25132 - 11904: 0x8D79, - 25133 - 11904: 0xE5AC, - 25134 - 11904: 0xBCAE, - 25136 - 11904: 0xBED4, - 25138 - 11904: 0xC0B8, - 25139 - 11904: 0xC257, - 25140 - 11904: 0xC0B9, - 25142 - 11904: 0xA4E1, - 25143 - 11904: 0x8BFC, - 25145 - 11904: 0xA076, - 25146 - 11904: 0xCAE6, - 25149 - 11904: 0xCCB2, - 25150 - 11904: 0xA9D1, - 25151 - 11904: 0xA9D0, - 25152 - 11904: 0xA9D2, - 25153 - 11904: 0xABF3, - 25154 - 11904: 0xCED2, - 25155 - 11904: 0xCED3, - 25158 - 11904: 0xD1B0, - 25159 - 11904: 0xAEB0, - 25160 - 11904: 0xB1AF, - 25161 - 11904: 0xB476, - 25162 - 11904: 0xD951, - 25163 - 11904: 0xA4E2, - 25164 - 11904: 0x8BCD, - 25165 - 11904: 0xA47E, - 25166 - 11904: 0xA4E3, - 25168 - 11904: 0xC97D, - 25169 - 11904: 0xA5B7, - 25170 - 11904: 0xA5B6, - 25171 - 11904: 0xA5B4, - 25172 - 11904: 0xA5B5, - 25176 - 11904: 0xA6AB, - 25177 - 11904: 0xC9E9, - 25178 - 11904: 0xC9EB, - 25179 - 11904: 0xA6AA, - 25180 - 11904: 0xC9E3, - 25182 - 11904: 0xC9E4, - 25184 - 11904: 0xC9EA, - 25185 - 11904: 0xC9E6, - 25186 - 11904: 0xC9E8, - 25187 - 11904: 0xA6A9, - 25188 - 11904: 0xC9E5, - 25189 - 11904: 0xC9EC, - 25190 - 11904: 0xC9E7, - 25192 - 11904: 0x9F5A, - 25197 - 11904: 0xA7E1, - 25198 - 11904: 0xA7EA, - 25199 - 11904: 0xA7E8, - 25200 - 11904: 0xCAF0, - 25201 - 11904: 0xCAED, - 25202 - 11904: 0xCAF5, - 25203 - 11904: 0xA7E6, - 25204 - 11904: 0xCAF6, - 25206 - 11904: 0xA7DF, - 25207 - 11904: 0xCAF3, - 25209 - 11904: 0xA7E5, - 25210 - 11904: 0xCAEF, - 25211 - 11904: 0xCAEE, - 25212 - 11904: 0xA7E3, - 25213 - 11904: 0xCAF4, - 25214 - 11904: 0xA7E4, - 25215 - 11904: 0xA9D3, - 25216 - 11904: 0xA7DE, - 25217 - 11904: 0xCAF1, - 25218 - 11904: 0x9FF4, - 25219 - 11904: 0xCAE7, - 25220 - 11904: 0xA7DB, - 25221 - 11904: 0x9FBA, - 25222 - 11904: 0xA7EE, - 25223 - 11904: 0xCAEC, - 25224 - 11904: 0xCAF2, - 25225 - 11904: 0xA7E0, - 25226 - 11904: 0xA7E2, - 25228 - 11904: 0xCAE8, - 25230 - 11904: 0xCAE9, - 25231 - 11904: 0xCAEA, - 25232 - 11904: 0x8D7A, - 25233 - 11904: 0xA7ED, - 25234 - 11904: 0xA7E7, - 25235 - 11904: 0xA7EC, - 25236 - 11904: 0xCAEB, - 25237 - 11904: 0xA7EB, - 25238 - 11904: 0xA7DD, - 25239 - 11904: 0xA7DC, - 25240 - 11904: 0xA7E9, - 25245 - 11904: 0x9E45, - 25252 - 11904: 0x93B0, - 25254 - 11904: 0xA075, - 25256 - 11904: 0xA9E1, - 25257 - 11904: 0xCCBE, - 25258 - 11904: 0xCCB7, - 25259 - 11904: 0xA9DC, - 25260 - 11904: 0xA9EF, - 25261 - 11904: 0xCCB3, - 25262 - 11904: 0xCCBA, - 25263 - 11904: 0xCCBC, - 25264 - 11904: 0xCCBF, - 25265 - 11904: 0xA9EA, - 25267 - 11904: 0xCCBB, - 25268 - 11904: 0xCCB4, - 25269 - 11904: 0xA9E8, - 25270 - 11904: 0xCCB8, - 25272 - 11904: 0xCCC0, - 25273 - 11904: 0xA9D9, - 25275 - 11904: 0xCCBD, - 25276 - 11904: 0xA9E3, - 25277 - 11904: 0xA9E2, - 25278 - 11904: 0xCCB6, - 25279 - 11904: 0xA9D7, - 25281 - 11904: 0x87DD, - 25282 - 11904: 0xA9D8, - 25283 - 11904: 0x9B46, - 25284 - 11904: 0xA9D6, - 25285 - 11904: 0xFCAE, - 25286 - 11904: 0xA9EE, - 25287 - 11904: 0xA9E6, - 25288 - 11904: 0xA9E0, - 25289 - 11904: 0xA9D4, - 25290 - 11904: 0xCCB9, - 25291 - 11904: 0xA9DF, - 25292 - 11904: 0xA9D5, - 25293 - 11904: 0xA9E7, - 25294 - 11904: 0xA9F0, - 25295 - 11904: 0xCED4, - 25296 - 11904: 0xA9E4, - 25297 - 11904: 0xCCB5, - 25298 - 11904: 0xA9DA, - 25299 - 11904: 0xA9DD, - 25300 - 11904: 0xA9DE, - 25301 - 11904: 0xFCB0, - 25302 - 11904: 0xA9EC, - 25303 - 11904: 0xA9ED, - 25304 - 11904: 0xA9EB, - 25305 - 11904: 0xA9E5, - 25306 - 11904: 0xA9E9, - 25307 - 11904: 0xA9DB, - 25308 - 11904: 0xABF4, - 25311 - 11904: 0xFA51, - 25317 - 11904: 0x8D7B, - 25323 - 11904: 0xCEDA, - 25324 - 11904: 0xAC41, - 25325 - 11904: 0xABF8, - 25326 - 11904: 0xABFA, - 25327 - 11904: 0xAC40, - 25328 - 11904: 0xCEE6, - 25329 - 11904: 0xABFD, - 25330 - 11904: 0xD1B1, - 25331 - 11904: 0xAEB1, - 25332 - 11904: 0xAC43, - 25333 - 11904: 0xCED7, - 25334 - 11904: 0xCEDF, - 25335 - 11904: 0xABFE, - 25336 - 11904: 0xCEDE, - 25337 - 11904: 0xCEDB, - 25338 - 11904: 0xCEE3, - 25339 - 11904: 0xCEE5, - 25340 - 11904: 0xABF7, - 25341 - 11904: 0xABFB, - 25342 - 11904: 0xAC42, - 25343 - 11904: 0xAEB3, - 25344 - 11904: 0xCEE0, - 25345 - 11904: 0xABF9, - 25346 - 11904: 0xAC45, - 25347 - 11904: 0xCED9, - 25351 - 11904: 0xABFC, - 25352 - 11904: 0xAEB2, - 25353 - 11904: 0xABF6, - 25355 - 11904: 0xCED6, - 25356 - 11904: 0xCEDD, - 25357 - 11904: 0xCED5, - 25358 - 11904: 0xCED8, - 25359 - 11904: 0xCEDC, - 25360 - 11904: 0xD1B2, - 25361 - 11904: 0xAC44, - 25363 - 11904: 0xCEE1, - 25364 - 11904: 0xCEE2, - 25365 - 11904: 0xCEE4, - 25366 - 11904: 0xABF5, - 25368 - 11904: 0x8D7C, - 25384 - 11904: 0xAEC1, - 25385 - 11904: 0xD1BE, - 25386 - 11904: 0xAEBF, - 25387 - 11904: 0xAEC0, - 25388 - 11904: 0xD1B4, - 25389 - 11904: 0xD1C4, - 25390 - 11904: 0x9ED6, - 25391 - 11904: 0xAEB6, - 25393 - 11904: 0x93AC, - 25394 - 11904: 0xD566, - 25395 - 11904: 0xD1C6, - 25396 - 11904: 0xD1C0, - 25397 - 11904: 0x9F5B, - 25398 - 11904: 0xD1B7, - 25399 - 11904: 0x93A9, - 25400 - 11904: 0xD1C9, - 25401 - 11904: 0xD1BA, - 25402 - 11904: 0xAEBC, - 25403 - 11904: 0xD57D, - 25404 - 11904: 0xD1BD, - 25405 - 11904: 0xAEBE, - 25406 - 11904: 0xAEB5, - 25408 - 11904: 0xD1CB, - 25409 - 11904: 0xD1BF, - 25410 - 11904: 0xAEB8, - 25411 - 11904: 0xD1B8, - 25412 - 11904: 0xD1B5, - 25413 - 11904: 0xD1B6, - 25414 - 11904: 0xAEB9, - 25415 - 11904: 0xD1C5, - 25416 - 11904: 0xD1CC, - 25417 - 11904: 0xAEBB, - 25418 - 11904: 0xD1BC, - 25419 - 11904: 0xD1BB, - 25420 - 11904: 0xAEC3, - 25421 - 11904: 0xAEC2, - 25422 - 11904: 0xAEB4, - 25423 - 11904: 0xAEBA, - 25424 - 11904: 0xAEBD, - 25425 - 11904: 0xD1C8, - 25428 - 11904: 0xD1C2, - 25429 - 11904: 0xAEB7, - 25430 - 11904: 0xD1B3, - 25431 - 11904: 0xD1CA, - 25432 - 11904: 0xD1C1, - 25433 - 11904: 0xD1C3, - 25434 - 11904: 0xD1C7, - 25444 - 11904: 0xA07C, - 25445 - 11904: 0xD567, - 25447 - 11904: 0xB1B7, - 25448 - 11904: 0xB1CB, - 25449 - 11904: 0xB1CA, - 25451 - 11904: 0xB1BF, - 25452 - 11904: 0xFCB2, - 25453 - 11904: 0xD579, - 25454 - 11904: 0xD575, - 25455 - 11904: 0xD572, - 25456 - 11904: 0xD5A6, - 25457 - 11904: 0xB1BA, - 25458 - 11904: 0xB1B2, - 25461 - 11904: 0xD577, - 25462 - 11904: 0xB4A8, - 25463 - 11904: 0xB1B6, - 25464 - 11904: 0xD5A1, - 25465 - 11904: 0x8AC1, - 25466 - 11904: 0xB1CC, - 25467 - 11904: 0xB1C9, - 25468 - 11904: 0xD57B, - 25469 - 11904: 0xD56A, - 25471 - 11904: 0x9FB4, - 25472 - 11904: 0xB1C8, - 25473 - 11904: 0xD5A3, - 25474 - 11904: 0xD569, - 25475 - 11904: 0xB1BD, - 25476 - 11904: 0xB1C1, - 25477 - 11904: 0xD5A2, - 25479 - 11904: 0xD573, - 25480 - 11904: 0xB1C2, - 25481 - 11904: 0xB1BC, - 25482 - 11904: 0xD568, - 25483 - 11904: 0xFCAC, - 25484 - 11904: 0xB478, - 25485 - 11904: 0xD5A5, - 25486 - 11904: 0xD571, - 25487 - 11904: 0xB1C7, - 25488 - 11904: 0xD574, - 25489 - 11904: 0xD5A4, - 25490 - 11904: 0xB1C6, - 25492 - 11904: 0xD952, - 25494 - 11904: 0xB1B3, - 25495 - 11904: 0xD56F, - 25496 - 11904: 0xB1B8, - 25497 - 11904: 0xB1C3, - 25499 - 11904: 0xB1BE, - 25500 - 11904: 0xD578, - 25501 - 11904: 0xD56E, - 25502 - 11904: 0xD56C, - 25503 - 11904: 0xD57E, - 25504 - 11904: 0xB1B0, - 25505 - 11904: 0xB1C4, - 25506 - 11904: 0xB1B4, - 25507 - 11904: 0xB477, - 25508 - 11904: 0xD57C, - 25509 - 11904: 0xB1B5, - 25511 - 11904: 0xB1B1, - 25512 - 11904: 0xB1C0, - 25513 - 11904: 0xB1BB, - 25514 - 11904: 0xB1B9, - 25515 - 11904: 0xD570, - 25516 - 11904: 0xB1C5, - 25517 - 11904: 0xD56D, - 25518 - 11904: 0xD57A, - 25519 - 11904: 0xD576, - 25520 - 11904: 0xD954, - 25521 - 11904: 0xD953, - 25529 - 11904: 0x9E4C, - 25533 - 11904: 0xD56B, - 25534 - 11904: 0xD964, - 25536 - 11904: 0xB47A, - 25537 - 11904: 0x8FC5, - 25538 - 11904: 0xD96A, - 25539 - 11904: 0xD959, - 25540 - 11904: 0xD967, - 25541 - 11904: 0xDD77, - 25542 - 11904: 0xB47D, - 25543 - 11904: 0xD96B, - 25544 - 11904: 0xD96E, - 25545 - 11904: 0xB47C, - 25546 - 11904: 0xD95C, - 25547 - 11904: 0xD96D, - 25548 - 11904: 0xD96C, - 25549 - 11904: 0xB47E, - 25550 - 11904: 0xD955, - 25551 - 11904: 0xB479, - 25552 - 11904: 0xB4A3, - 25553 - 11904: 0x93AD, - 25554 - 11904: 0xB4A1, - 25555 - 11904: 0xD969, - 25557 - 11904: 0xD95F, - 25558 - 11904: 0xB4A5, - 25559 - 11904: 0xD970, - 25560 - 11904: 0xD968, - 25561 - 11904: 0xD971, - 25562 - 11904: 0xB4AD, - 25563 - 11904: 0xB4AB, - 25564 - 11904: 0xD966, - 25565 - 11904: 0xD965, - 25566 - 11904: 0x9DC3, - 25567 - 11904: 0xD963, - 25568 - 11904: 0xD95D, - 25569 - 11904: 0xB4A4, - 25570 - 11904: 0x8DA2, - 25571 - 11904: 0xB4A2, - 25572 - 11904: 0xD1B9, - 25573 - 11904: 0xD956, - 25574 - 11904: 0x9D4A, - 25575 - 11904: 0xDDB7, - 25576 - 11904: 0xD957, - 25577 - 11904: 0xB47B, - 25578 - 11904: 0xB4AA, - 25579 - 11904: 0xDD79, - 25581 - 11904: 0xB4A6, - 25582 - 11904: 0xB4A7, - 25583 - 11904: 0xD958, - 25584 - 11904: 0xD96F, - 25585 - 11904: 0xDD78, - 25586 - 11904: 0xD960, - 25587 - 11904: 0xD95B, - 25588 - 11904: 0xB4A9, - 25589 - 11904: 0xD961, - 25590 - 11904: 0xD95E, - 25592 - 11904: 0xFCB6, - 25593 - 11904: 0xB4AE, - 25595 - 11904: 0x8DA3, - 25596 - 11904: 0x9E4B, - 25598 - 11904: 0x9E4D, - 25606 - 11904: 0xB770, - 25607 - 11904: 0x8DA4, - 25609 - 11904: 0xDD7C, - 25610 - 11904: 0xDDB1, - 25611 - 11904: 0xDDB6, - 25612 - 11904: 0xDDAA, - 25613 - 11904: 0xB76C, - 25614 - 11904: 0xDDBB, - 25615 - 11904: 0xB769, - 25616 - 11904: 0xDD7A, - 25618 - 11904: 0xDD7B, - 25619 - 11904: 0xB762, - 25620 - 11904: 0xB76B, - 25621 - 11904: 0xDDA4, - 25622 - 11904: 0xB76E, - 25623 - 11904: 0xB76F, - 25624 - 11904: 0xDDA5, - 25626 - 11904: 0xDDB2, - 25627 - 11904: 0xDDB8, - 25628 - 11904: 0xB76A, - 25630 - 11904: 0xB764, - 25631 - 11904: 0xDDA3, - 25632 - 11904: 0xDD7D, - 25633 - 11904: 0xDDBA, - 25634 - 11904: 0xDDA8, - 25635 - 11904: 0xDDA9, - 25636 - 11904: 0xDD7E, - 25637 - 11904: 0xDDB4, - 25638 - 11904: 0xDDAB, - 25639 - 11904: 0xDDB5, - 25640 - 11904: 0xDDAD, - 25642 - 11904: 0xB765, - 25643 - 11904: 0xE1D9, - 25644 - 11904: 0xB768, - 25645 - 11904: 0xB766, - 25646 - 11904: 0xDDB9, - 25647 - 11904: 0xDDB0, - 25648 - 11904: 0xDDAC, - 25650 - 11904: 0x8AFD, - 25651 - 11904: 0xDDA1, - 25652 - 11904: 0xBA53, - 25653 - 11904: 0xDDAF, - 25654 - 11904: 0xB76D, - 25655 - 11904: 0xDDA7, - 25656 - 11904: 0xFCB5, - 25657 - 11904: 0xDDA6, - 25658 - 11904: 0xFCC3, - 25659 - 11904: 0x93B2, - 25661 - 11904: 0xB767, - 25662 - 11904: 0xB763, - 25663 - 11904: 0xE1EE, - 25664 - 11904: 0xDDB3, - 25665 - 11904: 0xDDAE, - 25667 - 11904: 0xDDA2, - 25675 - 11904: 0xE1E9, - 25677 - 11904: 0xE1DA, - 25678 - 11904: 0xE1E5, - 25680 - 11904: 0xE1EC, - 25681 - 11904: 0xBA51, - 25682 - 11904: 0xB4AC, - 25683 - 11904: 0xE1EA, - 25684 - 11904: 0xBA4C, - 25688 - 11904: 0xBA4B, - 25689 - 11904: 0xE1F1, - 25690 - 11904: 0x8DA5, - 25691 - 11904: 0xE1DB, - 25692 - 11904: 0xE1E8, - 25693 - 11904: 0xE1DC, - 25694 - 11904: 0xE1E7, - 25695 - 11904: 0xBA4F, - 25696 - 11904: 0xE1EB, - 25697 - 11904: 0xD962, - 25701 - 11904: 0xE1F2, - 25702 - 11904: 0xE1E3, - 25703 - 11904: 0xBA52, - 25704 - 11904: 0xE5BA, - 25705 - 11904: 0xBCAF, - 25707 - 11904: 0xE1F0, - 25708 - 11904: 0xE1EF, - 25709 - 11904: 0xBA54, - 25710 - 11904: 0xE5AD, - 25711 - 11904: 0xBCB0, - 25712 - 11904: 0xE5AE, - 25713 - 11904: 0x93A1, - 25714 - 11904: 0xE1DF, - 25715 - 11904: 0xE1E0, - 25716 - 11904: 0xE1DD, - 25717 - 11904: 0xE1E2, - 25718 - 11904: 0xE1DE, - 25719 - 11904: 0xE1F3, - 25720 - 11904: 0xBA4E, - 25721 - 11904: 0xBCB1, - 25722 - 11904: 0xBA50, - 25723 - 11904: 0xBA55, - 25724 - 11904: 0x8AC6, - 25725 - 11904: 0xE1E1, - 25727 - 11904: 0xE1ED, - 25730 - 11904: 0xE1E6, - 25733 - 11904: 0xE5B1, - 25735 - 11904: 0xBA4A, - 25736 - 11904: 0xBCB4, - 25737 - 11904: 0xE9AA, - 25738 - 11904: 0xE5B6, - 25739 - 11904: 0xE5B5, - 25740 - 11904: 0xE5B7, - 25741 - 11904: 0x8A5B, - 25743 - 11904: 0xE5B4, - 25744 - 11904: 0xFCB9, - 25745 - 11904: 0x894D, - 25746 - 11904: 0xBCBB, - 25747 - 11904: 0xBCB8, - 25749 - 11904: 0xBCB9, - 25750 - 11904: 0xE5AF, - 25751 - 11904: 0xE5B2, - 25752 - 11904: 0xE5BC, - 25753 - 11904: 0xBCC1, - 25754 - 11904: 0xBCBF, - 25756 - 11904: 0xE5B3, - 25757 - 11904: 0xD95A, - 25758 - 11904: 0xBCB2, - 25759 - 11904: 0xE5B9, - 25760 - 11904: 0xE5B0, - 25762 - 11904: 0xBCC2, - 25763 - 11904: 0xE5B8, - 25764 - 11904: 0xBA4D, - 25765 - 11904: 0xBCB7, - 25766 - 11904: 0xE1E4, - 25769 - 11904: 0xBCBA, - 25771 - 11904: 0xBCBE, - 25772 - 11904: 0xBCC0, - 25773 - 11904: 0xBCBD, - 25774 - 11904: 0xBCBC, - 25775 - 11904: 0xFED4, - 25776 - 11904: 0xBCB6, - 25777 - 11904: 0xE5BB, - 25778 - 11904: 0xBCB3, - 25779 - 11904: 0xBCC3, - 25780 - 11904: 0x8A78, - 25782 - 11904: 0x93AB, - 25787 - 11904: 0xBED8, - 25788 - 11904: 0xBED9, - 25789 - 11904: 0xE9A9, - 25790 - 11904: 0xBEE2, - 25791 - 11904: 0xBEDF, - 25792 - 11904: 0x8DA7, - 25793 - 11904: 0xBED6, - 25794 - 11904: 0xBEDD, - 25795 - 11904: 0xE9AB, - 25796 - 11904: 0xBEDB, - 25797 - 11904: 0xBED5, - 25799 - 11904: 0xBEDC, - 25801 - 11904: 0xE9A8, - 25802 - 11904: 0xC0BB, - 25803 - 11904: 0xBED7, - 25805 - 11904: 0xBEDE, - 25806 - 11904: 0xC0BA, - 25807 - 11904: 0xE9A7, - 25808 - 11904: 0xE9A6, - 25810 - 11904: 0xBEE0, - 25811 - 11904: 0x9F45, - 25812 - 11904: 0xBEE1, - 25814 - 11904: 0xE9A5, - 25815 - 11904: 0xE9A4, - 25816 - 11904: 0xC0BC, - 25817 - 11904: 0xE9AE, - 25818 - 11904: 0xBEDA, - 25819 - 11904: 0xE9AC, - 25821 - 11904: 0x8A56, - 25824 - 11904: 0xC0BD, - 25825 - 11904: 0xFCBF, - 25826 - 11904: 0xC0C2, - 25827 - 11904: 0xECEA, - 25828 - 11904: 0xECEC, - 25829 - 11904: 0xFCC0, - 25830 - 11904: 0xC0BF, - 25831 - 11904: 0x8EE6, - 25832 - 11904: 0xECED, - 25833 - 11904: 0xECE9, - 25834 - 11904: 0x8AA4, - 25835 - 11904: 0xECEB, - 25836 - 11904: 0xC0C0, - 25837 - 11904: 0xC0C3, - 25839 - 11904: 0xECE8, - 25840 - 11904: 0xC0BE, - 25841 - 11904: 0xC0C1, - 25842 - 11904: 0xC259, - 25843 - 11904: 0xE9AD, - 25844 - 11904: 0xC258, - 25847 - 11904: 0xC25E, - 25848 - 11904: 0xEFD4, - 25850 - 11904: 0xC25C, - 25851 - 11904: 0xC25D, - 25852 - 11904: 0xEFD7, - 25853 - 11904: 0xEFD3, - 25854 - 11904: 0xC25A, - 25855 - 11904: 0xEFD1, - 25856 - 11904: 0xC36B, - 25857 - 11904: 0xEFD5, - 25859 - 11904: 0xEFD6, - 25860 - 11904: 0xEFD2, - 25862 - 11904: 0xC25B, - 25863 - 11904: 0xF242, - 25865 - 11904: 0xF245, - 25866 - 11904: 0x8943, - 25868 - 11904: 0xF246, - 25869 - 11904: 0xF244, - 25870 - 11904: 0xF247, - 25871 - 11904: 0xC36C, - 25872 - 11904: 0xF243, - 25873 - 11904: 0x93F3, - 25875 - 11904: 0xF44E, - 25876 - 11904: 0xC464, - 25877 - 11904: 0xF44D, - 25878 - 11904: 0xF44C, - 25879 - 11904: 0xF44B, - 25880 - 11904: 0xC463, - 25881 - 11904: 0xC465, - 25883 - 11904: 0xF5CD, - 25884 - 11904: 0xC4E2, - 25885 - 11904: 0xC4E1, - 25886 - 11904: 0xFCAB, - 25887 - 11904: 0x9EA2, - 25888 - 11904: 0xF6E1, - 25889 - 11904: 0xF6E0, - 25890 - 11904: 0xF6E3, - 25891 - 11904: 0xC5CB, - 25892 - 11904: 0xC575, - 25893 - 11904: 0xF7DD, - 25894 - 11904: 0xF6E2, - 25897 - 11904: 0xF7DC, - 25898 - 11904: 0xC5CD, - 25899 - 11904: 0xC5CC, - 25900 - 11904: 0xC5F3, - 25901 - 11904: 0xF8A9, - 25902 - 11904: 0xF8EF, - 25903 - 11904: 0xA4E4, - 25904 - 11904: 0x9DC7, - 25906 - 11904: 0xD972, - 25907 - 11904: 0xE9AF, - 25908 - 11904: 0xC6D2, - 25909 - 11904: 0x8BCE, - 25910 - 11904: 0xA6AC, - 25911 - 11904: 0xCAF7, - 25912 - 11904: 0xA7F1, - 25913 - 11904: 0xA7EF, - 25915 - 11904: 0xA7F0, - 25917 - 11904: 0xCCC1, - 25918 - 11904: 0xA9F1, - 25919 - 11904: 0xAC46, - 25921 - 11904: 0xCEE7, - 25923 - 11904: 0xCEE8, - 25925 - 11904: 0xAC47, - 25926 - 11904: 0xD1CE, - 25928 - 11904: 0xAEC4, - 25929 - 11904: 0xAEC5, - 25930 - 11904: 0xD1CD, - 25933 - 11904: 0xFCC5, - 25935 - 11904: 0xB1D3, - 25937 - 11904: 0xB1CF, - 25939 - 11904: 0xD5A7, - 25940 - 11904: 0xB1D6, - 25941 - 11904: 0xB1D5, - 25942 - 11904: 0xB1CE, - 25943 - 11904: 0xB1D1, - 25944 - 11904: 0xB1D4, - 25945 - 11904: 0xB1D0, - 25948 - 11904: 0xD976, - 25949 - 11904: 0xB1CD, - 25950 - 11904: 0xB4AF, - 25951 - 11904: 0xFCCB, - 25954 - 11904: 0xB4B1, - 25955 - 11904: 0xB4B2, - 25956 - 11904: 0xD975, - 25957 - 11904: 0xD978, - 25958 - 11904: 0xB4B0, - 25959 - 11904: 0xD973, - 25960 - 11904: 0xD977, - 25962 - 11904: 0xD974, - 25963 - 11904: 0x93B3, - 25964 - 11904: 0xB771, - 25965 - 11904: 0xFCCA, - 25967 - 11904: 0xDDBC, - 25970 - 11904: 0xBA56, - 25971 - 11904: 0xE1F4, - 25972 - 11904: 0xBEE3, - 25973 - 11904: 0xBCC4, - 25974 - 11904: 0xE5BD, - 25975 - 11904: 0xBCC5, - 25976 - 11904: 0xBCC6, - 25977 - 11904: 0xE5BF, - 25978 - 11904: 0xE5BE, - 25979 - 11904: 0xE5C0, - 25980 - 11904: 0xE9B1, - 25983 - 11904: 0xE9B0, - 25984 - 11904: 0xECEF, - 25985 - 11904: 0xECEE, - 25986 - 11904: 0xC0C4, - 25987 - 11904: 0xC0C5, - 25988 - 11904: 0xF248, - 25989 - 11904: 0xFCC9, - 25990 - 11904: 0x8DAC, - 25991 - 11904: 0xA4E5, - 25992 - 11904: 0xFBC6, - 25993 - 11904: 0x8967, - 25995 - 11904: 0x8C7E, - 25996 - 11904: 0xD979, - 26000 - 11904: 0xB4B4, - 26001 - 11904: 0xB4B3, - 26002 - 11904: 0xDDBD, - 26004 - 11904: 0xEFD8, - 26005 - 11904: 0xC4E3, - 26006 - 11904: 0xF7DE, - 26007 - 11904: 0xA4E6, - 26009 - 11904: 0xAEC6, - 26011 - 11904: 0xB1D8, - 26012 - 11904: 0xB1D7, - 26013 - 11904: 0xD97A, - 26014 - 11904: 0xD97B, - 26015 - 11904: 0xB772, - 26016 - 11904: 0xE1F5, - 26017 - 11904: 0xBA57, - 26018 - 11904: 0xE9B2, - 26020 - 11904: 0xA4E7, - 26021 - 11904: 0xA5B8, - 26023 - 11904: 0xA9F2, - 26024 - 11904: 0xCCC2, - 26026 - 11904: 0xCEE9, - 26027 - 11904: 0xAC48, - 26028 - 11904: 0xB1D9, - 26030 - 11904: 0xD97C, - 26031 - 11904: 0xB4B5, - 26032 - 11904: 0xB773, - 26034 - 11904: 0xE5C1, - 26035 - 11904: 0xE5C2, - 26037 - 11904: 0xFCCD, - 26038 - 11904: 0xECF0, - 26039 - 11904: 0xC25F, - 26040 - 11904: 0xF8F0, - 26041 - 11904: 0xA4E8, - 26043 - 11904: 0xCCC3, - 26044 - 11904: 0xA9F3, - 26045 - 11904: 0xAC49, - 26046 - 11904: 0x9CF3, - 26047 - 11904: 0xCEEA, - 26049 - 11904: 0xAEC7, - 26050 - 11904: 0xD1D2, - 26051 - 11904: 0xD1D0, - 26052 - 11904: 0xD1D1, - 26053 - 11904: 0xAEC8, - 26054 - 11904: 0xD1CF, - 26059 - 11904: 0xB1DB, - 26060 - 11904: 0xB1DC, - 26061 - 11904: 0xD5A8, - 26062 - 11904: 0xB1DD, - 26063 - 11904: 0xB1DA, - 26064 - 11904: 0xD97D, - 26065 - 11904: 0xFCD0, - 26066 - 11904: 0xD97E, - 26067 - 11904: 0xDDBE, - 26068 - 11904: 0x95BB, - 26070 - 11904: 0xBA59, - 26071 - 11904: 0xBA58, - 26074 - 11904: 0xECF1, - 26075 - 11904: 0xEFD9, - 26077 - 11904: 0xF24A, - 26078 - 11904: 0xF249, - 26079 - 11904: 0xF44F, - 26080 - 11904: 0xFCD3, - 26081 - 11904: 0xC95E, - 26082 - 11904: 0xAC4A, - 26083 - 11904: 0xFCD4, - 26085 - 11904: 0xA4E9, - 26086 - 11904: 0xA5B9, - 26088 - 11904: 0xA6AE, - 26089 - 11904: 0xA6AD, - 26092 - 11904: 0xA6AF, - 26093 - 11904: 0xA6B0, - 26094 - 11904: 0xC9EE, - 26095 - 11904: 0xC9ED, - 26096 - 11904: 0xCAF8, - 26097 - 11904: 0xA7F2, - 26098 - 11904: 0xCAFB, - 26099 - 11904: 0xCAFA, - 26100 - 11904: 0xCAF9, - 26101 - 11904: 0xCAFC, - 26106 - 11904: 0xA9F4, - 26107 - 11904: 0xCCC9, - 26108 - 11904: 0xCCC5, - 26109 - 11904: 0xCCCE, - 26111 - 11904: 0x8DAE, - 26112 - 11904: 0xA9FB, - 26114 - 11904: 0xA9F9, - 26115 - 11904: 0xCCCA, - 26116 - 11904: 0xCCC6, - 26117 - 11904: 0xCCCD, - 26118 - 11904: 0xA9F8, - 26119 - 11904: 0xAA40, - 26120 - 11904: 0xCCC8, - 26121 - 11904: 0xCCC4, - 26122 - 11904: 0xA9FE, - 26123 - 11904: 0xCCCB, - 26124 - 11904: 0xA9F7, - 26125 - 11904: 0xCCCC, - 26126 - 11904: 0xA9FA, - 26127 - 11904: 0xA9FC, - 26128 - 11904: 0xCCD0, - 26129 - 11904: 0xCCCF, - 26130 - 11904: 0xCCC7, - 26131 - 11904: 0xA9F6, - 26132 - 11904: 0xA9F5, - 26133 - 11904: 0xA9FD, - 26136 - 11904: 0xFCD7, - 26140 - 11904: 0xCEEF, - 26141 - 11904: 0xCEF5, - 26142 - 11904: 0x93DB, - 26143 - 11904: 0xAC50, - 26144 - 11904: 0xAC4D, - 26145 - 11904: 0xCEEC, - 26146 - 11904: 0xCEF1, - 26147 - 11904: 0xFE63, - 26148 - 11904: 0xAC53, - 26149 - 11904: 0xAC4B, - 26150 - 11904: 0xCEF0, - 26151 - 11904: 0xAC4E, - 26152 - 11904: 0xAC51, - 26155 - 11904: 0xCEF3, - 26157 - 11904: 0xAC4C, - 26158 - 11904: 0xCEF8, - 26159 - 11904: 0xAC4F, - 26160 - 11904: 0x93D5, - 26161 - 11904: 0xAC52, - 26162 - 11904: 0xCEED, - 26163 - 11904: 0xCEF2, - 26164 - 11904: 0xCEF6, - 26165 - 11904: 0xCEEE, - 26166 - 11904: 0xCEEB, - 26169 - 11904: 0xCEF7, - 26170 - 11904: 0xCEF4, - 26177 - 11904: 0xAED0, - 26178 - 11904: 0xAEC9, - 26179 - 11904: 0xAECC, - 26180 - 11904: 0xFCDA, - 26181 - 11904: 0xAECF, - 26183 - 11904: 0xD1D5, - 26184 - 11904: 0x9B71, - 26185 - 11904: 0xAECA, - 26186 - 11904: 0xD1D3, - 26187 - 11904: 0xFCDD, - 26188 - 11904: 0xAECE, - 26189 - 11904: 0x8764, - 26191 - 11904: 0xAECB, - 26193 - 11904: 0xD1D6, - 26194 - 11904: 0xAECD, - 26195 - 11904: 0x8DAF, - 26199 - 11904: 0xFAF2, - 26201 - 11904: 0xD5AC, - 26202 - 11904: 0xB1DF, - 26203 - 11904: 0xD5AB, - 26204 - 11904: 0xD5AD, - 26205 - 11904: 0xB1DE, - 26206 - 11904: 0xB1E3, - 26207 - 11904: 0xD1D4, - 26208 - 11904: 0x87B5, - 26209 - 11904: 0xD5AA, - 26210 - 11904: 0xD5AE, - 26211 - 11904: 0x93D8, - 26212 - 11904: 0xB1E0, - 26213 - 11904: 0xD5A9, - 26214 - 11904: 0xB1E2, - 26215 - 11904: 0xFCDF, - 26216 - 11904: 0xB1E1, - 26218 - 11904: 0xD9A7, - 26219 - 11904: 0x93D3, - 26220 - 11904: 0xD9A2, - 26222 - 11904: 0xB4B6, - 26223 - 11904: 0xB4BA, - 26224 - 11904: 0xB4B7, - 26225 - 11904: 0xD9A5, - 26226 - 11904: 0xD9A8, - 26227 - 11904: 0xFCE1, - 26228 - 11904: 0xFCE2, - 26230 - 11904: 0xB4B9, - 26231 - 11904: 0xB4BE, - 26232 - 11904: 0xDDC7, - 26233 - 11904: 0xD9A6, - 26234 - 11904: 0xB4BC, - 26235 - 11904: 0xD9A3, - 26236 - 11904: 0xD9A1, - 26237 - 11904: 0x8E76, - 26238 - 11904: 0xB4BD, - 26240 - 11904: 0xD9A4, - 26244 - 11904: 0xB779, - 26245 - 11904: 0xFC62, - 26246 - 11904: 0xDDBF, - 26247 - 11904: 0xB776, - 26248 - 11904: 0xB777, - 26249 - 11904: 0xB775, - 26250 - 11904: 0xDDC4, - 26251 - 11904: 0xDDC3, - 26252 - 11904: 0xDDC0, - 26253 - 11904: 0xB77B, - 26254 - 11904: 0x93D1, - 26256 - 11904: 0xDDC2, - 26257 - 11904: 0xB4BB, - 26258 - 11904: 0x8DB1, - 26260 - 11904: 0xDDC6, - 26261 - 11904: 0xDDC1, - 26262 - 11904: 0xB778, - 26263 - 11904: 0xB774, - 26264 - 11904: 0xB77A, - 26265 - 11904: 0xDDC5, - 26266 - 11904: 0x9859, - 26269 - 11904: 0xBA5C, - 26271 - 11904: 0xE1F8, - 26272 - 11904: 0xE1F7, - 26273 - 11904: 0xE1F6, - 26274 - 11904: 0xBA5A, - 26276 - 11904: 0xFB52, - 26280 - 11904: 0xBA5B, - 26281 - 11904: 0xE5C5, - 26282 - 11904: 0xE5C8, - 26283 - 11904: 0xBCC8, - 26285 - 11904: 0xFB53, - 26286 - 11904: 0xBCC7, - 26287 - 11904: 0xE5C9, - 26288 - 11904: 0xE5C4, - 26289 - 11904: 0xBCCA, - 26290 - 11904: 0xE5C6, - 26291 - 11904: 0xFB4D, - 26292 - 11904: 0xBCC9, - 26293 - 11904: 0xE5C3, - 26294 - 11904: 0x9CBF, - 26295 - 11904: 0xE5C7, - 26296 - 11904: 0xBEE9, - 26297 - 11904: 0xBEE6, - 26298 - 11904: 0xE9BB, - 26299 - 11904: 0xE9BA, - 26301 - 11904: 0xE9B9, - 26302 - 11904: 0xE9B4, - 26303 - 11904: 0x9B72, - 26304 - 11904: 0xE9B5, - 26308 - 11904: 0xBEE7, - 26310 - 11904: 0xBEE4, - 26311 - 11904: 0xBEE8, - 26312 - 11904: 0xE9B3, - 26313 - 11904: 0xBEE5, - 26314 - 11904: 0xE9B6, - 26315 - 11904: 0xE9B7, - 26316 - 11904: 0xE9BC, - 26317 - 11904: 0xFB50, - 26318 - 11904: 0x93BE, - 26319 - 11904: 0xE9B8, - 26322 - 11904: 0xECF2, - 26326 - 11904: 0xC0C7, - 26328 - 11904: 0xEFDC, - 26329 - 11904: 0xC0C6, - 26330 - 11904: 0xEFDA, - 26331 - 11904: 0xEFDB, - 26332 - 11904: 0xC260, - 26333 - 11904: 0xC36E, - 26334 - 11904: 0xF24B, - 26336 - 11904: 0xC36D, - 26339 - 11904: 0xF451, - 26340 - 11904: 0xF452, - 26342 - 11904: 0xC466, - 26343 - 11904: 0x8CDB, - 26344 - 11904: 0xF450, - 26345 - 11904: 0xC4E4, - 26347 - 11904: 0xF7DF, - 26348 - 11904: 0xC5CE, - 26349 - 11904: 0xF8AA, - 26350 - 11904: 0xF8AB, - 26352 - 11904: 0xA4EA, - 26353 - 11904: 0x9DF1, - 26354 - 11904: 0xA6B1, - 26355 - 11904: 0xA6B2, - 26356 - 11904: 0xA7F3, - 26358 - 11904: 0xCCD1, - 26359 - 11904: 0xAC54, - 26360 - 11904: 0xAED1, - 26361 - 11904: 0xB1E4, - 26364 - 11904: 0xB0D2, - 26366 - 11904: 0xB4BF, - 26367 - 11904: 0xB4C0, - 26368 - 11904: 0xB3CC, - 26369 - 11904: 0xD9A9, - 26370 - 11904: 0xFCEB, - 26371 - 11904: 0xB77C, - 26372 - 11904: 0xE1FA, - 26373 - 11904: 0xE1F9, - 26376 - 11904: 0xA4EB, - 26377 - 11904: 0xA6B3, - 26378 - 11904: 0xCCD2, - 26379 - 11904: 0xAA42, - 26380 - 11904: 0xA0BB, - 26381 - 11904: 0xAA41, - 26382 - 11904: 0x9B7E, - 26383 - 11904: 0xCEF9, - 26384 - 11904: 0xCEFA, - 26386 - 11904: 0xD1D7, - 26387 - 11904: 0xD1D8, - 26388 - 11904: 0xAED2, - 26389 - 11904: 0xAED3, - 26390 - 11904: 0x8DB3, - 26391 - 11904: 0xAED4, - 26392 - 11904: 0xD5AF, - 26393 - 11904: 0x8C52, - 26395 - 11904: 0xB1E6, - 26397 - 11904: 0xB4C2, - 26398 - 11904: 0x9AE8, - 26399 - 11904: 0xB4C1, - 26400 - 11904: 0xDDC8, - 26401 - 11904: 0xDF7A, - 26402 - 11904: 0xE1FB, - 26403 - 11904: 0xE9BD, - 26405 - 11904: 0x8EDC, - 26406 - 11904: 0xC261, - 26407 - 11904: 0xC467, - 26408 - 11904: 0xA4EC, - 26410 - 11904: 0xA5BC, - 26411 - 11904: 0xA5BD, - 26412 - 11904: 0xA5BB, - 26413 - 11904: 0xA5BE, - 26414 - 11904: 0xA5BA, - 26417 - 11904: 0xA6B6, - 26419 - 11904: 0xC9F6, - 26420 - 11904: 0xA6B5, - 26421 - 11904: 0xA6B7, - 26422 - 11904: 0x9CF9, - 26424 - 11904: 0xC9F1, - 26425 - 11904: 0xC9F0, - 26426 - 11904: 0xC9F3, - 26427 - 11904: 0xC9F2, - 26428 - 11904: 0xC9F5, - 26429 - 11904: 0xA6B4, - 26430 - 11904: 0xC9EF, - 26431 - 11904: 0xC9F4, - 26436 - 11904: 0xFA50, - 26437 - 11904: 0xCAFD, - 26438 - 11904: 0xA7FD, - 26439 - 11904: 0xCAFE, - 26440 - 11904: 0xCB43, - 26441 - 11904: 0xA7FC, - 26443 - 11904: 0xCB47, - 26444 - 11904: 0xCB42, - 26445 - 11904: 0xCB45, - 26446 - 11904: 0xA7F5, - 26447 - 11904: 0xA7F6, - 26448 - 11904: 0xA7F7, - 26449 - 11904: 0xA7F8, - 26451 - 11904: 0xA840, - 26453 - 11904: 0xCB41, - 26454 - 11904: 0xA7FA, - 26455 - 11904: 0xA841, - 26457 - 11904: 0xCB40, - 26458 - 11904: 0xCB46, - 26460 - 11904: 0xA7F9, - 26461 - 11904: 0xCB44, - 26462 - 11904: 0xFCF1, - 26463 - 11904: 0xA7F4, - 26464 - 11904: 0xA7FE, - 26465 - 11904: 0x98E7, - 26466 - 11904: 0xFCF3, - 26471 - 11904: 0xFCF2, - 26474 - 11904: 0xAA57, - 26475 - 11904: 0x8CCA, - 26476 - 11904: 0xCCD4, - 26477 - 11904: 0xAA43, - 26478 - 11904: 0x8775, - 26479 - 11904: 0xAA4D, - 26480 - 11904: 0xAA4E, - 26481 - 11904: 0xAA46, - 26482 - 11904: 0xAA58, - 26483 - 11904: 0xAA48, - 26484 - 11904: 0xCCDC, - 26485 - 11904: 0xAA53, - 26486 - 11904: 0xCCD7, - 26487 - 11904: 0xAA49, - 26488 - 11904: 0xCCE6, - 26489 - 11904: 0xCCE7, - 26490 - 11904: 0xCCDF, - 26491 - 11904: 0xCCD8, - 26492 - 11904: 0xAA56, - 26493 - 11904: 0xCCE4, - 26494 - 11904: 0xAA51, - 26495 - 11904: 0xAA4F, - 26497 - 11904: 0xCCE5, - 26498 - 11904: 0x87BA, - 26499 - 11904: 0xCCE3, - 26500 - 11904: 0xCCDB, - 26501 - 11904: 0xCCD3, - 26502 - 11904: 0xCCDA, - 26503 - 11904: 0xAA4A, - 26505 - 11904: 0xAA50, - 26507 - 11904: 0xAA44, - 26508 - 11904: 0xCCDE, - 26509 - 11904: 0xCCDD, - 26510 - 11904: 0xCCD5, - 26511 - 11904: 0x93E5, - 26512 - 11904: 0xAA52, - 26513 - 11904: 0xCCE1, - 26514 - 11904: 0xCCD6, - 26515 - 11904: 0xAA55, - 26516 - 11904: 0xCCE8, - 26517 - 11904: 0xAA45, - 26519 - 11904: 0xAA4C, - 26520 - 11904: 0xCCD9, - 26521 - 11904: 0xCCE2, - 26522 - 11904: 0xAA54, - 26524 - 11904: 0xAA47, - 26525 - 11904: 0xAA4B, - 26527 - 11904: 0xCCE0, - 26528 - 11904: 0x9A59, - 26532 - 11904: 0x8DB5, - 26540 - 11904: 0xFD4D, - 26542 - 11904: 0xCF5B, - 26543 - 11904: 0xAC5C, - 26544 - 11904: 0xAC69, - 26545 - 11904: 0xFD5E, - 26546 - 11904: 0xCF56, - 26547 - 11904: 0xCF4C, - 26548 - 11904: 0xAC62, - 26549 - 11904: 0xCF4A, - 26550 - 11904: 0xAC5B, - 26551 - 11904: 0xCF45, - 26552 - 11904: 0xAC65, - 26553 - 11904: 0xCF52, - 26554 - 11904: 0xCEFE, - 26555 - 11904: 0xCF41, - 26559 - 11904: 0x8F7D, - 26560 - 11904: 0xCF44, - 26561 - 11904: 0xCEFB, - 26562 - 11904: 0xCF51, - 26563 - 11904: 0xCF61, - 26564 - 11904: 0xAC60, - 26565 - 11904: 0xCF46, - 26566 - 11904: 0xCF58, - 26568 - 11904: 0xCEFD, - 26569 - 11904: 0xCF5F, - 26570 - 11904: 0xCF60, - 26571 - 11904: 0xCF63, - 26572 - 11904: 0xCF5A, - 26573 - 11904: 0xCF4B, - 26574 - 11904: 0xCF53, - 26575 - 11904: 0xAC66, - 26576 - 11904: 0xAC59, - 26577 - 11904: 0xAC61, - 26578 - 11904: 0xAC6D, - 26579 - 11904: 0xAC56, - 26580 - 11904: 0xAC58, - 26582 - 11904: 0x9547, - 26583 - 11904: 0xFCF6, - 26584 - 11904: 0xCF43, - 26585 - 11904: 0xAC6A, - 26586 - 11904: 0xAC63, - 26587 - 11904: 0xCF5D, - 26588 - 11904: 0xCF40, - 26589 - 11904: 0xAC6C, - 26590 - 11904: 0xAC67, - 26591 - 11904: 0xCF49, - 26594 - 11904: 0xAC6B, - 26595 - 11904: 0xCF50, - 26596 - 11904: 0xCF48, - 26597 - 11904: 0xAC64, - 26598 - 11904: 0xCF5C, - 26599 - 11904: 0xCF54, - 26601 - 11904: 0xAC5E, - 26602 - 11904: 0xCF62, - 26603 - 11904: 0xCF47, - 26604 - 11904: 0xAC5A, - 26605 - 11904: 0xCF59, - 26606 - 11904: 0xCF4F, - 26607 - 11904: 0xAC5F, - 26608 - 11904: 0xCF55, - 26609 - 11904: 0xAC57, - 26610 - 11904: 0xCEFC, - 26611 - 11904: 0xAC68, - 26612 - 11904: 0xAEE3, - 26613 - 11904: 0xAC5D, - 26614 - 11904: 0xCF4E, - 26615 - 11904: 0xCF4D, - 26616 - 11904: 0xCF42, - 26617 - 11904: 0x9250, - 26618 - 11904: 0xCF5E, - 26620 - 11904: 0xCF57, - 26622 - 11904: 0x8968, - 26623 - 11904: 0xAC55, - 26624 - 11904: 0x8DB6, - 26625 - 11904: 0xFCFB, - 26626 - 11904: 0xA07D, - 26627 - 11904: 0x98FC, - 26628 - 11904: 0x8969, - 26637 - 11904: 0xFE4F, - 26640 - 11904: 0x9256, - 26642 - 11904: 0xD1EC, - 26643 - 11904: 0xAEEA, - 26644 - 11904: 0xD1ED, - 26646 - 11904: 0xD1E1, - 26647 - 11904: 0xAEDF, - 26648 - 11904: 0xAEEB, - 26650 - 11904: 0xD1DA, - 26651 - 11904: 0xFAC9, - 26652 - 11904: 0xD1E3, - 26653 - 11904: 0xD1EB, - 26654 - 11904: 0x93E8, - 26655 - 11904: 0xD1D9, - 26656 - 11904: 0xD1F4, - 26657 - 11904: 0xAED5, - 26658 - 11904: 0xFCF8, - 26661 - 11904: 0xD1F3, - 26662 - 11904: 0xD1EE, - 26664 - 11904: 0xD1EF, - 26665 - 11904: 0xAEDD, - 26666 - 11904: 0xAEE8, - 26667 - 11904: 0xD1E5, - 26669 - 11904: 0xD1E6, - 26670 - 11904: 0xD1F0, - 26671 - 11904: 0xD1E7, - 26673 - 11904: 0xD1E2, - 26674 - 11904: 0xD1DC, - 26675 - 11904: 0xD1DD, - 26676 - 11904: 0xD1EA, - 26677 - 11904: 0xD1E4, - 26678 - 11904: 0x9CE3, - 26679 - 11904: 0xFDA9, - 26680 - 11904: 0xAED6, - 26681 - 11904: 0xAEDA, - 26682 - 11904: 0xD1F2, - 26683 - 11904: 0xD1DE, - 26684 - 11904: 0xAEE6, - 26685 - 11904: 0xAEE2, - 26686 - 11904: 0xFC44, - 26688 - 11904: 0xAEE5, - 26689 - 11904: 0xAEEC, - 26690 - 11904: 0xAEDB, - 26691 - 11904: 0xAEE7, - 26692 - 11904: 0xD1E9, - 26693 - 11904: 0xAEE9, - 26694 - 11904: 0xAED8, - 26695 - 11904: 0x9640, - 26696 - 11904: 0xAED7, - 26697 - 11904: 0xD1DB, - 26698 - 11904: 0x8DB8, - 26699 - 11904: 0xD1DF, - 26700 - 11904: 0xAEE0, - 26701 - 11904: 0xD1F1, - 26702 - 11904: 0xD1E8, - 26703 - 11904: 0xD1E0, - 26704 - 11904: 0xAEE4, - 26705 - 11904: 0xAEE1, - 26707 - 11904: 0xAED9, - 26708 - 11904: 0xAEDC, - 26709 - 11904: 0x9B4A, - 26710 - 11904: 0x8FB9, - 26717 - 11904: 0xFCFE, - 26725 - 11904: 0x896A, - 26731 - 11904: 0xD5C4, - 26733 - 11904: 0xD5B4, - 26734 - 11904: 0xD5B5, - 26735 - 11904: 0xD5B9, - 26737 - 11904: 0xD5C8, - 26738 - 11904: 0xD5C5, - 26740 - 11904: 0xD5BE, - 26741 - 11904: 0xD5BD, - 26742 - 11904: 0xB1ED, - 26743 - 11904: 0xD5C1, - 26744 - 11904: 0xD5D0, - 26745 - 11904: 0xD5B0, - 26747 - 11904: 0xD5D1, - 26748 - 11904: 0xD5C3, - 26749 - 11904: 0xD5D5, - 26750 - 11904: 0xD5C9, - 26751 - 11904: 0xB1EC, - 26752 - 11904: 0xD5C7, - 26753 - 11904: 0xB1E7, - 26754 - 11904: 0xB1FC, - 26755 - 11904: 0xB1F2, - 26756 - 11904: 0x8DB9, - 26757 - 11904: 0xB1F6, - 26758 - 11904: 0xB1F5, - 26759 - 11904: 0xD5B1, - 26760 - 11904: 0x917E, - 26761 - 11904: 0xD5CE, - 26762 - 11904: 0xD5D4, - 26763 - 11904: 0xD5CC, - 26764 - 11904: 0xD5D3, - 26767 - 11904: 0xD5C0, - 26768 - 11904: 0xD5B2, - 26769 - 11904: 0xD5D2, - 26770 - 11904: 0xD5C2, - 26771 - 11904: 0xB1EA, - 26772 - 11904: 0xB1F7, - 26774 - 11904: 0xD5CB, - 26775 - 11904: 0xB1F0, - 26776 - 11904: 0x93F4, - 26779 - 11904: 0xD5CA, - 26780 - 11904: 0xD5B3, - 26781 - 11904: 0xB1F8, - 26783 - 11904: 0xB1FA, - 26784 - 11904: 0xD5CD, - 26785 - 11904: 0xB1FB, - 26786 - 11904: 0xB1E9, - 26787 - 11904: 0xD5BA, - 26788 - 11904: 0xD5CF, - 26790 - 11904: 0xFB7C, - 26791 - 11904: 0xB1EF, - 26792 - 11904: 0xB1F9, - 26793 - 11904: 0xD5BC, - 26794 - 11904: 0xD5C6, - 26795 - 11904: 0xD5B7, - 26796 - 11904: 0xD5BB, - 26797 - 11904: 0xB1F4, - 26798 - 11904: 0xD5B6, - 26799 - 11904: 0xB1E8, - 26800 - 11904: 0xB1F1, - 26801 - 11904: 0xB1EE, - 26802 - 11904: 0xD5BF, - 26803 - 11904: 0xAEDE, - 26804 - 11904: 0xD9C0, - 26805 - 11904: 0xB1EB, - 26806 - 11904: 0x93E7, - 26809 - 11904: 0x97EF, - 26813 - 11904: 0xFE4A, - 26819 - 11904: 0xFD45, - 26820 - 11904: 0xB1F3, - 26821 - 11904: 0x96A5, - 26822 - 11904: 0xD9C3, - 26823 - 11904: 0xD9D9, - 26824 - 11904: 0xD9CE, - 26825 - 11904: 0xB4D6, - 26826 - 11904: 0xFEE0, - 26827 - 11904: 0xB4D1, - 26828 - 11904: 0xD9BD, - 26829 - 11904: 0xB4D2, - 26830 - 11904: 0xD9CD, - 26832 - 11904: 0xD9C6, - 26833 - 11904: 0xD9D3, - 26834 - 11904: 0xB4CE, - 26835 - 11904: 0xD9AB, - 26836 - 11904: 0xD9D5, - 26837 - 11904: 0xB4C4, - 26838 - 11904: 0xD9B3, - 26839 - 11904: 0xB4C7, - 26840 - 11904: 0xB4C6, - 26842 - 11904: 0xB4D7, - 26844 - 11904: 0xD9AD, - 26845 - 11904: 0xD9CF, - 26846 - 11904: 0xD9D0, - 26847 - 11904: 0xB4C9, - 26848 - 11904: 0xB4C5, - 26849 - 11904: 0xD9BB, - 26851 - 11904: 0xB4D0, - 26852 - 11904: 0xD9B6, - 26854 - 11904: 0xD9D1, - 26855 - 11904: 0xB4CC, - 26856 - 11904: 0xD9C9, - 26857 - 11904: 0xD9D6, - 26858 - 11904: 0xD9B0, - 26859 - 11904: 0xD9B5, - 26860 - 11904: 0xD9AF, - 26862 - 11904: 0xB4CB, - 26863 - 11904: 0xD9C2, - 26864 - 11904: 0xDDDE, - 26865 - 11904: 0xD9B1, - 26866 - 11904: 0xB4CF, - 26867 - 11904: 0xD9BA, - 26868 - 11904: 0xD9D2, - 26869 - 11904: 0xB4CA, - 26870 - 11904: 0xD9B7, - 26871 - 11904: 0xD9B4, - 26872 - 11904: 0xD9C5, - 26873 - 11904: 0xB4CD, - 26874 - 11904: 0xB4C3, - 26875 - 11904: 0xB4D9, - 26876 - 11904: 0xD9C8, - 26877 - 11904: 0xD9C7, - 26880 - 11904: 0xFD48, - 26881 - 11904: 0xFD47, - 26882 - 11904: 0xFEF2, - 26883 - 11904: 0xFE6A, - 26884 - 11904: 0xD9AC, - 26885 - 11904: 0xB4C8, - 26886 - 11904: 0xD9D4, - 26887 - 11904: 0xD9BC, - 26888 - 11904: 0xD9BE, - 26889 - 11904: 0x8DBD, - 26890 - 11904: 0xD9CB, - 26891 - 11904: 0xD9CA, - 26892 - 11904: 0xD9AA, - 26893 - 11904: 0xB4D3, - 26894 - 11904: 0xB4D5, - 26895 - 11904: 0xD9B2, - 26896 - 11904: 0xD9B9, - 26897 - 11904: 0xD9C1, - 26898 - 11904: 0xB4D4, - 26899 - 11904: 0xD9B8, - 26900 - 11904: 0xD9C4, - 26901 - 11904: 0xD9D7, - 26903 - 11904: 0xD9CC, - 26904 - 11904: 0x9BA1, - 26905 - 11904: 0x8CA2, - 26906 - 11904: 0x9AB7, - 26907 - 11904: 0x8EFC, - 26917 - 11904: 0xD9D8, - 26922 - 11904: 0xD9AE, - 26924 - 11904: 0x9FA1, - 26927 - 11904: 0xDDF2, - 26928 - 11904: 0xB7A6, - 26930 - 11904: 0xDDF0, - 26931 - 11904: 0xDDDB, - 26932 - 11904: 0xDDE0, - 26933 - 11904: 0xDDD9, - 26934 - 11904: 0xFD51, - 26935 - 11904: 0xDDEC, - 26936 - 11904: 0xDDCB, - 26937 - 11904: 0xDDD2, - 26939 - 11904: 0xDDEA, - 26940 - 11904: 0xDDF4, - 26941 - 11904: 0xDDDC, - 26942 - 11904: 0xFAAD, - 26943 - 11904: 0xDDCF, - 26944 - 11904: 0xDDE2, - 26945 - 11904: 0xDDE7, - 26946 - 11904: 0xDDD3, - 26947 - 11904: 0x8DBE, - 26948 - 11904: 0xDDE4, - 26949 - 11904: 0xDDD0, - 26950 - 11904: 0x89A4, - 26952 - 11904: 0xDDD7, - 26953 - 11904: 0xDDD8, - 26954 - 11904: 0xB7A8, - 26955 - 11904: 0xDDEB, - 26956 - 11904: 0xDDE9, - 26958 - 11904: 0xDDCC, - 26959 - 11904: 0xDDEE, - 26961 - 11904: 0xDDEF, - 26962 - 11904: 0xDDF1, - 26963 - 11904: 0xB7AC, - 26964 - 11904: 0xB7A4, - 26965 - 11904: 0x9AD9, - 26966 - 11904: 0xD5B8, - 26967 - 11904: 0xDDD4, - 26968 - 11904: 0xDDE6, - 26969 - 11904: 0xDDD5, - 26970 - 11904: 0xB7A1, - 26971 - 11904: 0xB7B1, - 26972 - 11904: 0xDDED, - 26973 - 11904: 0xB7AF, - 26974 - 11904: 0xB7AB, - 26975 - 11904: 0xDDCA, - 26976 - 11904: 0xB7A3, - 26977 - 11904: 0xFD4E, - 26978 - 11904: 0xDDCD, - 26979 - 11904: 0xB7B0, - 26980 - 11904: 0x8DC0, - 26981 - 11904: 0xDDDD, - 26982 - 11904: 0xDDC9, - 26983 - 11904: 0x97F0, - 26984 - 11904: 0xB7A9, - 26985 - 11904: 0xDDE1, - 26986 - 11904: 0xDDD1, - 26987 - 11904: 0xB7AA, - 26988 - 11904: 0xDDDA, - 26989 - 11904: 0xB77E, - 26990 - 11904: 0xB4D8, - 26991 - 11904: 0xDDE3, - 26992 - 11904: 0xD9BF, - 26993 - 11904: 0xDDCE, - 26994 - 11904: 0x93B4, - 26995 - 11904: 0xFD44, - 26996 - 11904: 0xDDE8, - 26997 - 11904: 0xB7A5, - 26998 - 11904: 0xDDE5, - 26999 - 11904: 0xB7A2, - 27000 - 11904: 0xDDDF, - 27001 - 11904: 0xB7AD, - 27002 - 11904: 0xDDD6, - 27003 - 11904: 0xDDF3, - 27008 - 11904: 0x9FA7, - 27010 - 11904: 0xB7A7, - 27011 - 11904: 0xDEC6, - 27013 - 11904: 0x8DC2, - 27014 - 11904: 0xB7AE, - 27018 - 11904: 0x99B6, - 27021 - 11904: 0xE24A, - 27022 - 11904: 0xE248, - 27024 - 11904: 0xE25E, - 27025 - 11904: 0xE246, - 27027 - 11904: 0xE258, - 27028 - 11904: 0xB77D, - 27029 - 11904: 0xBA5F, - 27030 - 11904: 0xE242, - 27031 - 11904: 0xE25D, - 27032 - 11904: 0xFD52, - 27033 - 11904: 0xE247, - 27034 - 11904: 0xE255, - 27035 - 11904: 0xBA64, - 27036 - 11904: 0xBA5D, - 27038 - 11904: 0xE25B, - 27039 - 11904: 0x8DC1, - 27040 - 11904: 0xE240, - 27041 - 11904: 0xE25A, - 27042 - 11904: 0x8E46, - 27043 - 11904: 0xBA6F, - 27044 - 11904: 0xE251, - 27045 - 11904: 0xE261, - 27046 - 11904: 0xBA6D, - 27047 - 11904: 0xE249, - 27048 - 11904: 0xBA5E, - 27049 - 11904: 0xE24B, - 27050 - 11904: 0xE259, - 27051 - 11904: 0xBA67, - 27052 - 11904: 0xE244, - 27053 - 11904: 0xBA6B, - 27054 - 11904: 0xBA61, - 27055 - 11904: 0xE24D, - 27056 - 11904: 0xE243, - 27057 - 11904: 0xE1FC, - 27058 - 11904: 0xA0D1, - 27059 - 11904: 0xE257, - 27060 - 11904: 0xBA68, - 27061 - 11904: 0xE260, - 27062 - 11904: 0xE1FD, - 27063 - 11904: 0xBA65, - 27065 - 11904: 0xE253, - 27067 - 11904: 0xBA66, - 27068 - 11904: 0xE245, - 27069 - 11904: 0xE250, - 27070 - 11904: 0xE24C, - 27071 - 11904: 0xE24E, - 27072 - 11904: 0x9FCA, - 27073 - 11904: 0xBA60, - 27074 - 11904: 0xE25F, - 27075 - 11904: 0xBA6E, - 27076 - 11904: 0xE24F, - 27078 - 11904: 0xE262, - 27081 - 11904: 0xE1FE, - 27082 - 11904: 0xE254, - 27083 - 11904: 0xBA63, - 27084 - 11904: 0xBA6C, - 27085 - 11904: 0xBA6A, - 27086 - 11904: 0xE241, - 27087 - 11904: 0xE256, - 27088 - 11904: 0xBA69, - 27089 - 11904: 0x92CF, - 27091 - 11904: 0xBA62, - 27092 - 11904: 0xE252, - 27093 - 11904: 0x9CF4, - 27094 - 11904: 0x8DC4, - 27097 - 11904: 0xE25C, - 27105 - 11904: 0xFD41, - 27106 - 11904: 0xE5D5, - 27108 - 11904: 0xE5D1, - 27109 - 11904: 0xE5CD, - 27110 - 11904: 0xE5E1, - 27111 - 11904: 0xE5DE, - 27112 - 11904: 0xBCCD, - 27113 - 11904: 0x9B4C, - 27115 - 11904: 0xE5E5, - 27116 - 11904: 0xE5D4, - 27117 - 11904: 0xBCD8, - 27118 - 11904: 0xE5DB, - 27121 - 11904: 0xE5D0, - 27122 - 11904: 0xE5DA, - 27123 - 11904: 0xBCD5, - 27124 - 11904: 0xE5EE, - 27126 - 11904: 0xE5EB, - 27127 - 11904: 0xE5DD, - 27128 - 11904: 0xE5CE, - 27129 - 11904: 0xFD57, - 27130 - 11904: 0xFCEF, - 27131 - 11904: 0xE5E2, - 27132 - 11904: 0xE5E4, - 27133 - 11904: 0xBCD1, - 27134 - 11904: 0xE5D8, - 27135 - 11904: 0xE5D3, - 27136 - 11904: 0xE5CA, - 27137 - 11904: 0xBCCE, - 27138 - 11904: 0xBCD6, - 27139 - 11904: 0x9CDE, - 27140 - 11904: 0xE5E7, - 27141 - 11904: 0xBCD7, - 27142 - 11904: 0xE5CB, - 27143 - 11904: 0xE5ED, - 27144 - 11904: 0xE5E0, - 27145 - 11904: 0xE5E6, - 27146 - 11904: 0xBCD4, - 27147 - 11904: 0xFD42, - 27148 - 11904: 0x986C, - 27149 - 11904: 0xE5E3, - 27151 - 11904: 0xE5EA, - 27153 - 11904: 0xBCD9, - 27155 - 11904: 0xBCD3, - 27156 - 11904: 0xE5DC, - 27157 - 11904: 0xE5CF, - 27158 - 11904: 0xE5EF, - 27159 - 11904: 0xE5CC, - 27160 - 11904: 0xE5E8, - 27161 - 11904: 0xBCD0, - 27162 - 11904: 0x97F9, - 27163 - 11904: 0xE5D6, - 27164 - 11904: 0x9558, - 27165 - 11904: 0xE5D7, - 27166 - 11904: 0xBCCF, - 27167 - 11904: 0xBCCC, - 27168 - 11904: 0xE5D2, - 27169 - 11904: 0xBCD2, - 27171 - 11904: 0xBCCB, - 27173 - 11904: 0xE5E9, - 27174 - 11904: 0xE5EC, - 27175 - 11904: 0xE5D9, - 27176 - 11904: 0xE9CA, - 27177 - 11904: 0x87B6, - 27179 - 11904: 0x985E, - 27180 - 11904: 0xFE7B, - 27181 - 11904: 0x94CD, - 27186 - 11904: 0xE9C2, - 27187 - 11904: 0x93EE, - 27188 - 11904: 0xE9BE, - 27189 - 11904: 0xBEF6, - 27192 - 11904: 0xBEEB, - 27193 - 11904: 0xBEF0, - 27194 - 11904: 0xBEEC, - 27195 - 11904: 0xE9CC, - 27196 - 11904: 0xE9D7, - 27197 - 11904: 0xBEEA, - 27198 - 11904: 0xE9C4, - 27199 - 11904: 0xE9CD, - 27200 - 11904: 0xE5DF, - 27201 - 11904: 0xE9CE, - 27203 - 11904: 0x8CA3, - 27204 - 11904: 0xBEF1, - 27205 - 11904: 0xFD5A, - 27206 - 11904: 0xE9DD, - 27207 - 11904: 0xBEF5, - 27208 - 11904: 0xBEF8, - 27209 - 11904: 0xE9C0, - 27211 - 11904: 0xBEF4, - 27212 - 11904: 0x93F5, - 27213 - 11904: 0xE9DB, - 27214 - 11904: 0xE9DC, - 27215 - 11904: 0xE9D2, - 27216 - 11904: 0xE9D1, - 27217 - 11904: 0xE9C9, - 27218 - 11904: 0x93EF, - 27219 - 11904: 0x8EEA, - 27220 - 11904: 0xE9D3, - 27221 - 11904: 0xE9DA, - 27222 - 11904: 0xE9D9, - 27223 - 11904: 0x8F5B, - 27224 - 11904: 0xBEEF, - 27225 - 11904: 0xBEED, - 27226 - 11904: 0xE9CB, - 27227 - 11904: 0xE9C8, - 27229 - 11904: 0xE9C5, - 27230 - 11904: 0xE9D8, - 27231 - 11904: 0xBEF7, - 27232 - 11904: 0xE9D6, - 27233 - 11904: 0xBEF3, - 27234 - 11904: 0xBEF2, - 27235 - 11904: 0x8C5E, - 27236 - 11904: 0xE9D0, - 27237 - 11904: 0x8DC6, - 27238 - 11904: 0xE9BF, - 27239 - 11904: 0xE9C1, - 27240 - 11904: 0xE9C3, - 27241 - 11904: 0xE9D5, - 27242 - 11904: 0xE9CF, - 27243 - 11904: 0xBEEE, - 27245 - 11904: 0xE9C6, - 27247 - 11904: 0xE9D4, - 27249 - 11904: 0x8DC8, - 27252 - 11904: 0x8DC7, - 27254 - 11904: 0xE9C7, - 27258 - 11904: 0x93F7, - 27262 - 11904: 0xC0CF, - 27263 - 11904: 0xED45, - 27264 - 11904: 0xC0C8, - 27265 - 11904: 0xECF5, - 27266 - 11904: 0x8DC9, - 27267 - 11904: 0xED41, - 27268 - 11904: 0xC0CA, - 27269 - 11904: 0xED48, - 27271 - 11904: 0xECFC, - 27273 - 11904: 0xECF7, - 27274 - 11904: 0xFBF2, - 27276 - 11904: 0xED49, - 27277 - 11904: 0xECF3, - 27278 - 11904: 0xECFE, - 27279 - 11904: 0x9670, - 27280 - 11904: 0xC0D1, - 27281 - 11904: 0xED44, - 27282 - 11904: 0xED4A, - 27283 - 11904: 0xECFD, - 27284 - 11904: 0xC0C9, - 27285 - 11904: 0xED40, - 27286 - 11904: 0xECF4, - 27287 - 11904: 0xC0D0, - 27289 - 11904: 0x8DCB, - 27290 - 11904: 0xED47, - 27291 - 11904: 0xECF9, - 27292 - 11904: 0xC0CC, - 27293 - 11904: 0xFD5C, - 27294 - 11904: 0xECFB, - 27295 - 11904: 0xECF8, - 27296 - 11904: 0xC0D2, - 27297 - 11904: 0xECFA, - 27298 - 11904: 0xC0CB, - 27299 - 11904: 0xC0CE, - 27300 - 11904: 0xED43, - 27301 - 11904: 0xECF6, - 27302 - 11904: 0xED46, - 27303 - 11904: 0x8F65, - 27304 - 11904: 0xED42, - 27307 - 11904: 0x8DCD, - 27308 - 11904: 0xC263, - 27309 - 11904: 0xEFE7, - 27310 - 11904: 0xC268, - 27311 - 11904: 0xC269, - 27313 - 11904: 0x9DA8, - 27314 - 11904: 0x94F9, - 27315 - 11904: 0xC262, - 27316 - 11904: 0xEFE6, - 27317 - 11904: 0x8DCE, - 27318 - 11904: 0xEFE3, - 27319 - 11904: 0xEFE4, - 27320 - 11904: 0xC266, - 27321 - 11904: 0xEFDE, - 27322 - 11904: 0xEFE2, - 27323 - 11904: 0xC265, - 27325 - 11904: 0xEFDF, - 27326 - 11904: 0x93EA, - 27330 - 11904: 0xC267, - 27331 - 11904: 0xC264, - 27333 - 11904: 0xEFDD, - 27334 - 11904: 0xEFE1, - 27335 - 11904: 0xEFE5, - 27336 - 11904: 0xFD5F, - 27337 - 11904: 0x93F0, - 27338 - 11904: 0x9FB6, - 27339 - 11904: 0xF251, - 27340 - 11904: 0xF24E, - 27341 - 11904: 0xF257, - 27343 - 11904: 0xF256, - 27344 - 11904: 0xF254, - 27345 - 11904: 0xF24F, - 27347 - 11904: 0xC372, - 27348 - 11904: 0x8DCF, - 27352 - 11904: 0x9763, - 27353 - 11904: 0xF250, - 27354 - 11904: 0xC371, - 27355 - 11904: 0xC0CD, - 27356 - 11904: 0xF253, - 27357 - 11904: 0xC370, - 27358 - 11904: 0xF258, - 27359 - 11904: 0xF252, - 27360 - 11904: 0xF24D, - 27361 - 11904: 0xEFE0, - 27365 - 11904: 0xC36F, - 27367 - 11904: 0xF24C, - 27368 - 11904: 0xF456, - 27370 - 11904: 0xF455, - 27371 - 11904: 0xF255, - 27372 - 11904: 0xC468, - 27374 - 11904: 0xF459, - 27375 - 11904: 0xF45A, - 27376 - 11904: 0xF454, - 27377 - 11904: 0xF458, - 27379 - 11904: 0xF453, - 27382 - 11904: 0x8DD0, - 27384 - 11904: 0xF5D1, - 27385 - 11904: 0xF457, - 27386 - 11904: 0xC4E7, - 27387 - 11904: 0xC4E5, - 27388 - 11904: 0xF5CF, - 27392 - 11904: 0xF5D2, - 27394 - 11904: 0xF5CE, - 27395 - 11904: 0xF5D0, - 27396 - 11904: 0xC4E6, - 27397 - 11904: 0x93F1, - 27400 - 11904: 0xF6E5, - 27401 - 11904: 0xF6E6, - 27402 - 11904: 0xC576, - 27403 - 11904: 0xF6E4, - 27407 - 11904: 0xF7E2, - 27408 - 11904: 0xC5CF, - 27409 - 11904: 0xF7E0, - 27410 - 11904: 0xF7E1, - 27411 - 11904: 0xF8AC, - 27414 - 11904: 0xC656, - 27415 - 11904: 0xF8F3, - 27416 - 11904: 0xF8F1, - 27417 - 11904: 0xF8F2, - 27418 - 11904: 0xF8F4, - 27421 - 11904: 0xFD62, - 27422 - 11904: 0xF9BB, - 27424 - 11904: 0xA4ED, - 27425 - 11904: 0xA6B8, - 27427 - 11904: 0xAA59, - 27429 - 11904: 0xCCE9, - 27432 - 11904: 0xCF64, - 27436 - 11904: 0xD1F5, - 27437 - 11904: 0xD1F7, - 27439 - 11904: 0xD1F6, - 27441 - 11904: 0xD1F8, - 27442 - 11904: 0xB1FD, - 27443 - 11904: 0xD5D7, - 27444 - 11904: 0xD1F9, - 27445 - 11904: 0xFD65, - 27446 - 11904: 0xD5D6, - 27447 - 11904: 0xD5D8, - 27448 - 11904: 0xD5D9, - 27449 - 11904: 0xD9DA, - 27450 - 11904: 0xB4DB, - 27451 - 11904: 0xD9DB, - 27452 - 11904: 0xD9DD, - 27453 - 11904: 0xB4DC, - 27454 - 11904: 0xB4DA, - 27455 - 11904: 0xD9DC, - 27457 - 11904: 0xDDFA, - 27458 - 11904: 0xDDF8, - 27459 - 11904: 0xDDF7, - 27461 - 11904: 0xDDF6, - 27462 - 11904: 0xDDF5, - 27463 - 11904: 0xB7B2, - 27464 - 11904: 0xDDF9, - 27465 - 11904: 0xBA70, - 27466 - 11904: 0xE263, - 27467 - 11904: 0xE265, - 27468 - 11904: 0xBA71, - 27469 - 11904: 0xE264, - 27470 - 11904: 0xBCDB, - 27472 - 11904: 0xBCDA, - 27473 - 11904: 0xE5F0, - 27474 - 11904: 0x9FDB, - 27476 - 11904: 0xE9DF, - 27477 - 11904: 0xE9DE, - 27478 - 11904: 0xE9E0, - 27479 - 11904: 0x93F8, - 27481 - 11904: 0xBEF9, - 27483 - 11904: 0xED4B, - 27484 - 11904: 0xC0D3, - 27486 - 11904: 0xEFE8, - 27487 - 11904: 0xC26A, - 27488 - 11904: 0xF259, - 27489 - 11904: 0xC577, - 27490 - 11904: 0xA4EE, - 27491 - 11904: 0xA5BF, - 27492 - 11904: 0xA6B9, - 27493 - 11904: 0xA842, - 27494 - 11904: 0xAA5A, - 27495 - 11904: 0xAA5B, - 27498 - 11904: 0xAC6E, - 27501 - 11904: 0xD1FA, - 27503 - 11904: 0x8BF7, - 27506 - 11904: 0xB7B3, - 27508 - 11904: 0xFD66, - 27510 - 11904: 0xE6D1, - 27511 - 11904: 0xBEFA, - 27512 - 11904: 0xC26B, - 27513 - 11904: 0xA4EF, - 27514 - 11904: 0x8BCF, - 27515 - 11904: 0xA6BA, - 27518 - 11904: 0xCCEB, - 27519 - 11904: 0xAA5C, - 27520 - 11904: 0xCCEA, - 27521 - 11904: 0x8DD1, - 27522 - 11904: 0xCF65, - 27523 - 11904: 0xAC6F, - 27524 - 11904: 0xCF66, - 27526 - 11904: 0xAC70, - 27528 - 11904: 0xD1FC, - 27529 - 11904: 0xAEEE, - 27530 - 11904: 0xAEED, - 27532 - 11904: 0xD5DE, - 27533 - 11904: 0xD5DC, - 27534 - 11904: 0xD5DD, - 27535 - 11904: 0xD5DB, - 27537 - 11904: 0xD5DA, - 27540 - 11904: 0xD9DE, - 27541 - 11904: 0xD9E1, - 27542 - 11904: 0xB4DE, - 27543 - 11904: 0xD9DF, - 27544 - 11904: 0xB4DD, - 27545 - 11904: 0xD9E0, - 27547 - 11904: 0xDDFB, - 27550 - 11904: 0xE266, - 27551 - 11904: 0xE267, - 27552 - 11904: 0xE268, - 27554 - 11904: 0xE5F3, - 27555 - 11904: 0xE5F2, - 27556 - 11904: 0xBCDC, - 27557 - 11904: 0xE5F1, - 27558 - 11904: 0xE5F4, - 27559 - 11904: 0xE9E1, - 27562 - 11904: 0xE9E2, - 27563 - 11904: 0xE9E3, - 27565 - 11904: 0xED4C, - 27566 - 11904: 0xC0D4, - 27567 - 11904: 0xC26C, - 27568 - 11904: 0xF25A, - 27570 - 11904: 0xC4E8, - 27571 - 11904: 0xC95F, - 27573 - 11904: 0xAC71, - 27574 - 11904: 0xCF67, - 27575 - 11904: 0xAEEF, - 27578 - 11904: 0xB1FE, - 27580 - 11904: 0xB4DF, - 27581 - 11904: 0xD9E2, - 27583 - 11904: 0xB7B5, - 27584 - 11904: 0xB7B4, - 27585 - 11904: 0x8DD2, - 27587 - 11904: 0xE269, - 27588 - 11904: 0xE26A, - 27589 - 11904: 0xBCDD, - 27590 - 11904: 0xBCDE, - 27591 - 11904: 0xE9E5, - 27592 - 11904: 0xE9E4, - 27593 - 11904: 0xEFE9, - 27594 - 11904: 0xF7E3, - 27595 - 11904: 0xA4F0, - 27596 - 11904: 0xC960, - 27597 - 11904: 0xA5C0, - 27599 - 11904: 0xA843, - 27600 - 11904: 0xCB48, - 27602 - 11904: 0xAC72, - 27603 - 11904: 0xB7B6, - 27604 - 11904: 0xA4F1, - 27606 - 11904: 0xCF68, - 27607 - 11904: 0xAC73, - 27608 - 11904: 0xCF69, - 27610 - 11904: 0xC0D5, - 27611 - 11904: 0xA4F2, - 27612 - 11904: 0xFD71, - 27614 - 11904: 0xCCEC, - 27616 - 11904: 0xCF6A, - 27617 - 11904: 0xFD6F, - 27618 - 11904: 0xD242, - 27619 - 11904: 0xD241, - 27620 - 11904: 0xD1FE, - 27622 - 11904: 0xD1FD, - 27623 - 11904: 0xD243, - 27624 - 11904: 0xD240, - 27626 - 11904: 0x8DD3, - 27627 - 11904: 0xB240, - 27628 - 11904: 0xB241, - 27631 - 11904: 0xB4E0, - 27632 - 11904: 0xD9E3, - 27634 - 11904: 0xD9E4, - 27635 - 11904: 0xD9E5, - 27639 - 11904: 0xDE41, - 27640 - 11904: 0xDE42, - 27641 - 11904: 0xDE40, - 27642 - 11904: 0x9FE7, - 27643 - 11904: 0xDDFD, - 27644 - 11904: 0xDDFE, - 27645 - 11904: 0xB7B7, - 27646 - 11904: 0xE26B, - 27647 - 11904: 0xE5F7, - 27648 - 11904: 0xE5F6, - 27649 - 11904: 0xE5F5, - 27650 - 11904: 0xE5F8, - 27651 - 11904: 0xE9E7, - 27652 - 11904: 0xE9E6, - 27653 - 11904: 0xBEFB, - 27654 - 11904: 0xE9E8, - 27656 - 11904: 0xC0D6, - 27657 - 11904: 0xED4D, - 27659 - 11904: 0xEFEA, - 27660 - 11904: 0xF25B, - 27661 - 11904: 0xF6E7, - 27663 - 11904: 0xA4F3, - 27664 - 11904: 0xA5C2, - 27665 - 11904: 0xA5C1, - 27667 - 11904: 0xAA5D, - 27668 - 11904: 0xC961, - 27669 - 11904: 0xC97E, - 27670 - 11904: 0xA6BB, - 27672 - 11904: 0xC9F7, - 27673 - 11904: 0xCB49, - 27674 - 11904: 0xCB4A, - 27675 - 11904: 0xAA5E, - 27676 - 11904: 0x90BD, - 27677 - 11904: 0xCCED, - 27679 - 11904: 0xAC74, - 27680 - 11904: 0xCF6B, - 27681 - 11904: 0xCF6C, - 27683 - 11904: 0xAEF0, - 27684 - 11904: 0xAEF4, - 27685 - 11904: 0xD244, - 27686 - 11904: 0xAEF3, - 27687 - 11904: 0xAEF1, - 27688 - 11904: 0xAEF2, - 27690 - 11904: 0xD5DF, - 27691 - 11904: 0xB242, - 27692 - 11904: 0xB4E3, - 27694 - 11904: 0xB4E1, - 27695 - 11904: 0xB4E2, - 27696 - 11904: 0xD9E6, - 27697 - 11904: 0x9FD0, - 27699 - 11904: 0xBA72, - 27700 - 11904: 0xA4F4, - 27701 - 11904: 0x8BD0, - 27702 - 11904: 0xC9A1, - 27703 - 11904: 0xFD72, - 27704 - 11904: 0xA5C3, - 27705 - 11904: 0x9CAE, - 27706 - 11904: 0x8BD1, - 27707 - 11904: 0xC9A4, - 27709 - 11904: 0x8ADB, - 27710 - 11904: 0xA5C6, - 27711 - 11904: 0xC9A3, - 27712 - 11904: 0xA5C5, - 27713 - 11904: 0xA5C4, - 27714 - 11904: 0xA844, - 27715 - 11904: 0xC9A2, - 27718 - 11904: 0xC9F8, - 27721 - 11904: 0xFAE4, - 27722 - 11904: 0xC9FC, - 27723 - 11904: 0xC9FE, - 27724 - 11904: 0xCA40, - 27725 - 11904: 0xA6C5, - 27726 - 11904: 0xA6C6, - 27727 - 11904: 0xC9FB, - 27728 - 11904: 0xA6C1, - 27730 - 11904: 0xC9F9, - 27732 - 11904: 0xC9FD, - 27733 - 11904: 0xA6C2, - 27735 - 11904: 0xA6BD, - 27736 - 11904: 0x95CE, - 27737 - 11904: 0xA6BE, - 27738 - 11904: 0xFD76, - 27739 - 11904: 0xA6C4, - 27740 - 11904: 0xC9FA, - 27741 - 11904: 0xA6BC, - 27742 - 11904: 0xA845, - 27743 - 11904: 0xA6BF, - 27744 - 11904: 0xA6C0, - 27745 - 11904: 0xA6C3, - 27749 - 11904: 0xCB5B, - 27750 - 11904: 0xCB59, - 27751 - 11904: 0xCB4C, - 27752 - 11904: 0xA851, - 27753 - 11904: 0xCB53, - 27754 - 11904: 0xA84C, - 27755 - 11904: 0xCB4D, - 27757 - 11904: 0xCB55, - 27758 - 11904: 0xFB62, - 27759 - 11904: 0xCB52, - 27760 - 11904: 0xA84F, - 27761 - 11904: 0xCB51, - 27762 - 11904: 0xA856, - 27763 - 11904: 0xCB5A, - 27764 - 11904: 0xA858, - 27765 - 11904: 0x8DD4, - 27766 - 11904: 0xA85A, - 27768 - 11904: 0xCB4B, - 27769 - 11904: 0xFD78, - 27770 - 11904: 0xA84D, - 27771 - 11904: 0xCB5C, - 27773 - 11904: 0xA854, - 27774 - 11904: 0xA857, - 27775 - 11904: 0x8EE3, - 27776 - 11904: 0xCD45, - 27777 - 11904: 0xA847, - 27778 - 11904: 0xA85E, - 27779 - 11904: 0xA855, - 27780 - 11904: 0xCB4E, - 27781 - 11904: 0xA84A, - 27782 - 11904: 0xA859, - 27783 - 11904: 0xCB56, - 27784 - 11904: 0xA848, - 27785 - 11904: 0xA849, - 27786 - 11904: 0xCD43, - 27787 - 11904: 0xCB4F, - 27788 - 11904: 0xA850, - 27789 - 11904: 0xA85B, - 27790 - 11904: 0xCB5D, - 27791 - 11904: 0xCB50, - 27792 - 11904: 0xA84E, - 27794 - 11904: 0xA853, - 27795 - 11904: 0xCCEE, - 27796 - 11904: 0xA85C, - 27797 - 11904: 0xCB57, - 27798 - 11904: 0xA852, - 27800 - 11904: 0xA85D, - 27801 - 11904: 0xA846, - 27802 - 11904: 0xCB54, - 27803 - 11904: 0xA84B, - 27804 - 11904: 0xFDB7, - 27805 - 11904: 0xCD44, - 27807 - 11904: 0x9076, - 27810 - 11904: 0x98C6, - 27818 - 11904: 0x8DD5, - 27819 - 11904: 0xAA6A, - 27820 - 11904: 0xAA7A, - 27821 - 11904: 0xCCF5, - 27822 - 11904: 0xAA71, - 27823 - 11904: 0x97D1, - 27824 - 11904: 0xCD4B, - 27825 - 11904: 0xAA62, - 27826 - 11904: 0x9EB6, - 27827 - 11904: 0xAA65, - 27828 - 11904: 0xCD42, - 27830 - 11904: 0xCCF3, - 27831 - 11904: 0xCCF7, - 27832 - 11904: 0xAA6D, - 27833 - 11904: 0xAA6F, - 27834 - 11904: 0xCCFA, - 27835 - 11904: 0xAA76, - 27836 - 11904: 0xAA68, - 27837 - 11904: 0xAA66, - 27838 - 11904: 0xAA67, - 27839 - 11904: 0xAA75, - 27840 - 11904: 0xCD47, - 27841 - 11904: 0xAA70, - 27842 - 11904: 0xCCF9, - 27843 - 11904: 0xCCFB, - 27844 - 11904: 0xAA6E, - 27845 - 11904: 0xAA73, - 27846 - 11904: 0xCCFC, - 27847 - 11904: 0xCD4A, - 27849 - 11904: 0xAC75, - 27850 - 11904: 0xAA79, - 27851 - 11904: 0xFAC7, - 27852 - 11904: 0xAA63, - 27853 - 11904: 0xCD49, - 27854 - 11904: 0xA042, - 27855 - 11904: 0xCD4D, - 27856 - 11904: 0xCCF8, - 27857 - 11904: 0xCD4F, - 27858 - 11904: 0xCD40, - 27859 - 11904: 0xAA6C, - 27860 - 11904: 0xCCF4, - 27861 - 11904: 0xAA6B, - 27862 - 11904: 0xAA7D, - 27863 - 11904: 0xAA72, - 27865 - 11904: 0xCCF2, - 27866 - 11904: 0xCF75, - 27867 - 11904: 0xAA78, - 27868 - 11904: 0xAA7C, - 27869 - 11904: 0xCD41, - 27870 - 11904: 0xCD46, - 27871 - 11904: 0x9873, - 27872 - 11904: 0xAA7E, - 27873 - 11904: 0xAA77, - 27874 - 11904: 0xAA69, - 27875 - 11904: 0xAA5F, - 27877 - 11904: 0xAA64, - 27879 - 11904: 0xCCF6, - 27880 - 11904: 0xAA60, - 27881 - 11904: 0xCD4E, - 27882 - 11904: 0x9FFC, - 27883 - 11904: 0xCCF0, - 27884 - 11904: 0xCCEF, - 27885 - 11904: 0xCCFD, - 27886 - 11904: 0xCCF1, - 27887 - 11904: 0xAA7B, - 27888 - 11904: 0xAEF5, - 27889 - 11904: 0xAA74, - 27890 - 11904: 0xCCFE, - 27891 - 11904: 0xAA61, - 27893 - 11904: 0xACA6, - 27897 - 11904: 0xCD4C, - 27903 - 11904: 0x8CA5, - 27904 - 11904: 0xCF7C, - 27905 - 11904: 0xCFA1, - 27906 - 11904: 0x8DD7, - 27907 - 11904: 0xCFA4, - 27908 - 11904: 0xCF77, - 27909 - 11904: 0x92FB, - 27910 - 11904: 0x8DD8, - 27911 - 11904: 0xCFA7, - 27912 - 11904: 0xCFAA, - 27913 - 11904: 0xCFAC, - 27914 - 11904: 0xCF74, - 27915 - 11904: 0xAC76, - 27916 - 11904: 0xAC7B, - 27917 - 11904: 0xD249, - 27918 - 11904: 0xACAD, - 27919 - 11904: 0xCFA5, - 27920 - 11904: 0xCFAD, - 27921 - 11904: 0xCF7B, - 27922 - 11904: 0xCF73, - 27926 - 11904: 0xD264, - 27927 - 11904: 0xAC7E, - 27928 - 11904: 0xCFA2, - 27929 - 11904: 0xCF78, - 27930 - 11904: 0xCF7A, - 27931 - 11904: 0xACA5, - 27933 - 11904: 0xCF7D, - 27934 - 11904: 0xAC7D, - 27935 - 11904: 0xCF70, - 27936 - 11904: 0xCFA8, - 27938 - 11904: 0xCFAB, - 27940 - 11904: 0x944F, - 27941 - 11904: 0xAC7A, - 27942 - 11904: 0x8DD9, - 27943 - 11904: 0xACA8, - 27944 - 11904: 0xCF6D, - 27945 - 11904: 0xACAA, - 27946 - 11904: 0xAC78, - 27947 - 11904: 0xACAE, - 27948 - 11904: 0xCFA9, - 27949 - 11904: 0xCF6F, - 27950 - 11904: 0xACAB, - 27951 - 11904: 0xD25E, - 27952 - 11904: 0xCD48, - 27953 - 11904: 0xAC7C, - 27954 - 11904: 0xAC77, - 27955 - 11904: 0xCF76, - 27956 - 11904: 0xCF6E, - 27957 - 11904: 0xACAC, - 27958 - 11904: 0xACA4, - 27959 - 11904: 0xCFA3, - 27960 - 11904: 0xACA9, - 27961 - 11904: 0xACA7, - 27962 - 11904: 0xCF79, - 27963 - 11904: 0xACA1, - 27964 - 11904: 0xCF71, - 27965 - 11904: 0xACA2, - 27966 - 11904: 0xACA3, - 27967 - 11904: 0xCF72, - 27968 - 11904: 0xCFA6, - 27969 - 11904: 0xAC79, - 27970 - 11904: 0xCF7E, - 27982 - 11904: 0x896B, - 27991 - 11904: 0x97CE, - 27992 - 11904: 0xD24C, - 27993 - 11904: 0xAEFD, - 27994 - 11904: 0xAF43, - 27995 - 11904: 0xFAF3, - 27996 - 11904: 0xFDAE, - 27998 - 11904: 0xD255, - 27999 - 11904: 0xD25B, - 28000 - 11904: 0xD257, - 28001 - 11904: 0xD24A, - 28002 - 11904: 0xD24D, - 28003 - 11904: 0xD246, - 28004 - 11904: 0xD247, - 28005 - 11904: 0xAF4A, - 28006 - 11904: 0xAEFA, - 28007 - 11904: 0xD256, - 28008 - 11904: 0xD25F, - 28009 - 11904: 0xAF45, - 28010 - 11904: 0xAEF6, - 28012 - 11904: 0xAF40, - 28013 - 11904: 0xD24E, - 28014 - 11904: 0xAF42, - 28015 - 11904: 0xD24F, - 28016 - 11904: 0xD259, - 28017 - 11904: 0xFBAF, - 28018 - 11904: 0x92B7, - 28020 - 11904: 0xAF44, - 28021 - 11904: 0xD268, - 28022 - 11904: 0xD248, - 28023 - 11904: 0xAEFC, - 28024 - 11904: 0xAEFB, - 28025 - 11904: 0xAF48, - 28026 - 11904: 0xD245, - 28027 - 11904: 0xD266, - 28028 - 11904: 0xD25A, - 28029 - 11904: 0xD267, - 28030 - 11904: 0xD261, - 28031 - 11904: 0xD253, - 28032 - 11904: 0xD262, - 28033 - 11904: 0x8DDA, - 28034 - 11904: 0xD25C, - 28035 - 11904: 0xD265, - 28036 - 11904: 0xD263, - 28037 - 11904: 0xAF49, - 28038 - 11904: 0xD254, - 28039 - 11904: 0xAEF9, - 28040 - 11904: 0xAEF8, - 28041 - 11904: 0xAF41, - 28042 - 11904: 0xAF47, - 28043 - 11904: 0xD260, - 28044 - 11904: 0xAF46, - 28045 - 11904: 0xD251, - 28046 - 11904: 0xB243, - 28047 - 11904: 0x9C5A, - 28048 - 11904: 0xD269, - 28049 - 11904: 0xD250, - 28050 - 11904: 0xD24B, - 28051 - 11904: 0xAEFE, - 28052 - 11904: 0xAF4B, - 28053 - 11904: 0xAEF7, - 28054 - 11904: 0xFDAD, - 28055 - 11904: 0xD258, - 28056 - 11904: 0xD25D, - 28068 - 11904: 0x8DDC, - 28069 - 11904: 0x9444, - 28074 - 11904: 0xB265, - 28075 - 11904: 0xD5E1, - 28076 - 11904: 0xD5E5, - 28078 - 11904: 0xB252, - 28079 - 11904: 0xB250, - 28081 - 11904: 0x8DDD, - 28082 - 11904: 0xB247, - 28083 - 11904: 0xD5E3, - 28084 - 11904: 0xD5E2, - 28085 - 11904: 0xB25B, - 28087 - 11904: 0xD5E8, - 28088 - 11904: 0xB255, - 28089 - 11904: 0xA0D6, - 28090 - 11904: 0xD5FA, - 28091 - 11904: 0xD647, - 28092 - 11904: 0xB244, - 28093 - 11904: 0xD5F7, - 28094 - 11904: 0xD5F0, - 28095 - 11904: 0xB267, - 28096 - 11904: 0xD5E0, - 28098 - 11904: 0xD5FC, - 28100 - 11904: 0xB264, - 28101 - 11904: 0xB258, - 28102 - 11904: 0xB263, - 28103 - 11904: 0xB24E, - 28104 - 11904: 0xD5EC, - 28105 - 11904: 0xD5FE, - 28106 - 11904: 0xD5F6, - 28107 - 11904: 0xB24F, - 28108 - 11904: 0xB249, - 28109 - 11904: 0xD645, - 28111 - 11904: 0xD5FD, - 28112 - 11904: 0xD640, - 28113 - 11904: 0xB251, - 28114 - 11904: 0xB259, - 28115 - 11904: 0xD642, - 28116 - 11904: 0xD5EA, - 28117 - 11904: 0xD5FB, - 28118 - 11904: 0xD5EF, - 28119 - 11904: 0xD644, - 28120 - 11904: 0xB25E, - 28121 - 11904: 0xB246, - 28122 - 11904: 0xB25C, - 28123 - 11904: 0xD5F4, - 28124 - 11904: 0xD5F2, - 28125 - 11904: 0xD5F3, - 28126 - 11904: 0xB253, - 28127 - 11904: 0xD5EE, - 28128 - 11904: 0xD5ED, - 28129 - 11904: 0xB248, - 28130 - 11904: 0xD5E7, - 28131 - 11904: 0xD646, - 28132 - 11904: 0xB24A, - 28133 - 11904: 0xD5F1, - 28134 - 11904: 0xB268, - 28136 - 11904: 0xB262, - 28137 - 11904: 0xD5E6, - 28138 - 11904: 0xB25F, - 28139 - 11904: 0xB25D, - 28140 - 11904: 0xB266, - 28141 - 11904: 0xD5F8, - 28142 - 11904: 0xB261, - 28143 - 11904: 0xD252, - 28144 - 11904: 0xD5F9, - 28145 - 11904: 0xB260, - 28146 - 11904: 0xD641, - 28147 - 11904: 0xB245, - 28148 - 11904: 0xD5F5, - 28149 - 11904: 0xB257, - 28150 - 11904: 0xD5E9, - 28151 - 11904: 0xB256, - 28153 - 11904: 0xB254, - 28154 - 11904: 0xB24C, - 28155 - 11904: 0xB24B, - 28156 - 11904: 0xD9E7, - 28157 - 11904: 0xD643, - 28158 - 11904: 0x8C41, - 28160 - 11904: 0xD5EB, - 28162 - 11904: 0x97D5, - 28163 - 11904: 0xD9FC, - 28164 - 11904: 0x944A, - 28165 - 11904: 0xB24D, - 28170 - 11904: 0x944D, - 28175 - 11904: 0x97CB, - 28181 - 11904: 0x8DDE, - 28184 - 11904: 0x8DDF, - 28185 - 11904: 0xB541, - 28186 - 11904: 0xB25A, - 28187 - 11904: 0xB4EE, - 28188 - 11904: 0xD9F6, - 28189 - 11904: 0xFDB8, - 28191 - 11904: 0xD9EA, - 28192 - 11904: 0xB4EB, - 28193 - 11904: 0xB4E7, - 28194 - 11904: 0xDA49, - 28195 - 11904: 0xB4ED, - 28196 - 11904: 0xB4F1, - 28197 - 11904: 0xB4EC, - 28198 - 11904: 0xB4F5, - 28199 - 11904: 0xDA4D, - 28200 - 11904: 0xDA44, - 28201 - 11904: 0x8DE0, - 28202 - 11904: 0xFEF9, - 28203 - 11904: 0xD9F1, - 28204 - 11904: 0xB4FA, - 28205 - 11904: 0xB4F4, - 28206 - 11904: 0xD9FD, - 28207 - 11904: 0xFDBB, - 28208 - 11904: 0xDA4A, - 28209 - 11904: 0xDA43, - 28210 - 11904: 0xB4E8, - 28211 - 11904: 0xD9F7, - 28212 - 11904: 0xB4F7, - 28213 - 11904: 0xDA55, - 28214 - 11904: 0xDA56, - 28216 - 11904: 0xB4E5, - 28217 - 11904: 0xDA48, - 28218 - 11904: 0xB4F9, - 28219 - 11904: 0xD9FB, - 28220 - 11904: 0xD9ED, - 28221 - 11904: 0xD9EE, - 28222 - 11904: 0xB4FD, - 28223 - 11904: 0xD9F2, - 28224 - 11904: 0xD9F9, - 28225 - 11904: 0xD9F3, - 28227 - 11904: 0xB4FB, - 28228 - 11904: 0xB544, - 28229 - 11904: 0xD9EF, - 28230 - 11904: 0xD9E8, - 28231 - 11904: 0xD9E9, - 28233 - 11904: 0xD9EB, - 28234 - 11904: 0xB4EA, - 28235 - 11904: 0xD9F8, - 28237 - 11904: 0xB4F8, - 28238 - 11904: 0xB542, - 28239 - 11904: 0xFDC0, - 28240 - 11904: 0xFCF9, - 28241 - 11904: 0xD9FA, - 28242 - 11904: 0xDA53, - 28243 - 11904: 0xDA4B, - 28244 - 11904: 0xB4E6, - 28245 - 11904: 0xDA51, - 28246 - 11904: 0xB4F2, - 28247 - 11904: 0x8CDD, - 28248 - 11904: 0xB4F0, - 28249 - 11904: 0xFB7E, - 28250 - 11904: 0xDA57, - 28251 - 11904: 0xB4EF, - 28252 - 11904: 0xDA41, - 28253 - 11904: 0xD9F4, - 28254 - 11904: 0xD9FE, - 28255 - 11904: 0xB547, - 28256 - 11904: 0xDA45, - 28257 - 11904: 0xDA42, - 28258 - 11904: 0xD9F0, - 28259 - 11904: 0xB543, - 28260 - 11904: 0xDA4F, - 28261 - 11904: 0xDA4C, - 28262 - 11904: 0xDA54, - 28263 - 11904: 0xB4E9, - 28264 - 11904: 0xDA40, - 28265 - 11904: 0xB546, - 28267 - 11904: 0xDA47, - 28270 - 11904: 0xB4F3, - 28271 - 11904: 0xB4F6, - 28273 - 11904: 0xDA46, - 28274 - 11904: 0xB545, - 28275 - 11904: 0xD9F5, - 28276 - 11904: 0xD5E4, - 28278 - 11904: 0x92B3, - 28279 - 11904: 0xDA50, - 28280 - 11904: 0xDA4E, - 28281 - 11904: 0xDA52, - 28284 - 11904: 0xFDAF, - 28294 - 11904: 0x8DE1, - 28296 - 11904: 0xD9EC, - 28297 - 11904: 0xB540, - 28299 - 11904: 0x95D3, - 28301 - 11904: 0xDE61, - 28302 - 11904: 0xDE60, - 28303 - 11904: 0xDE46, - 28304 - 11904: 0xB7BD, - 28306 - 11904: 0xDE5F, - 28307 - 11904: 0xDE49, - 28308 - 11904: 0xDE4A, - 28310 - 11904: 0xB7C7, - 28311 - 11904: 0xDE68, - 28312 - 11904: 0xB7C2, - 28313 - 11904: 0xDE5E, - 28314 - 11904: 0x89C1, - 28315 - 11904: 0xDE43, - 28316 - 11904: 0xB7C8, - 28317 - 11904: 0xB7BE, - 28318 - 11904: 0xDE52, - 28319 - 11904: 0xDE48, - 28320 - 11904: 0xDE4B, - 28321 - 11904: 0xDE63, - 28322 - 11904: 0xB7B8, - 28323 - 11904: 0xDE6A, - 28324 - 11904: 0xDE62, - 28325 - 11904: 0xB7C1, - 28326 - 11904: 0xDE57, - 28327 - 11904: 0xB7CC, - 28330 - 11904: 0xB7CB, - 28331 - 11904: 0xB7C5, - 28334 - 11904: 0xDE69, - 28335 - 11904: 0xB7B9, - 28336 - 11904: 0xDE55, - 28337 - 11904: 0xDE4C, - 28338 - 11904: 0xDE59, - 28339 - 11904: 0xDE65, - 28340 - 11904: 0xB7CD, - 28341 - 11904: 0xFD68, - 28342 - 11904: 0xB7BB, - 28343 - 11904: 0xDE54, - 28344 - 11904: 0x9CB7, - 28345 - 11904: 0xDE4D, - 28346 - 11904: 0xB7C4, - 28347 - 11904: 0x8DE3, - 28348 - 11904: 0xB7C3, - 28349 - 11904: 0xDE50, - 28350 - 11904: 0xDE5A, - 28351 - 11904: 0xDE64, - 28352 - 11904: 0xDE47, - 28353 - 11904: 0xDE51, - 28354 - 11904: 0xB7BC, - 28355 - 11904: 0xDE5B, - 28356 - 11904: 0xB7C9, - 28357 - 11904: 0xB7C0, - 28358 - 11904: 0xDE4E, - 28359 - 11904: 0xB7BF, - 28360 - 11904: 0xDE45, - 28361 - 11904: 0xDE53, - 28362 - 11904: 0xDE67, - 28363 - 11904: 0xB4FE, - 28364 - 11904: 0xBAB0, - 28365 - 11904: 0xDE56, - 28366 - 11904: 0xE26C, - 28367 - 11904: 0xDE58, - 28368 - 11904: 0xDE66, - 28369 - 11904: 0xB7C6, - 28370 - 11904: 0xDE4F, - 28371 - 11904: 0xB7BA, - 28372 - 11904: 0xB7CA, - 28373 - 11904: 0xBCF0, - 28374 - 11904: 0xDE44, - 28376 - 11904: 0xDE5D, - 28377 - 11904: 0xFAC0, - 28378 - 11904: 0x8DE5, - 28379 - 11904: 0xFA64, - 28380 - 11904: 0xDE5C, - 28381 - 11904: 0x8947, - 28386 - 11904: 0x8DE4, - 28392 - 11904: 0x8DE7, - 28393 - 11904: 0x8DE8, - 28395 - 11904: 0xE2AA, - 28396 - 11904: 0xBAAD, - 28397 - 11904: 0xE27D, - 28398 - 11904: 0xE2A4, - 28399 - 11904: 0xBAA2, - 28401 - 11904: 0xE26E, - 28402 - 11904: 0xBAAF, - 28404 - 11904: 0xBA77, - 28405 - 11904: 0xE26D, - 28406 - 11904: 0xE2B0, - 28407 - 11904: 0xBAB1, - 28408 - 11904: 0xE271, - 28409 - 11904: 0xE2A3, - 28410 - 11904: 0xFDC7, - 28411 - 11904: 0xE273, - 28412 - 11904: 0xE2B3, - 28413 - 11904: 0xE2AF, - 28414 - 11904: 0xBA75, - 28415 - 11904: 0xBAA1, - 28416 - 11904: 0xE653, - 28417 - 11904: 0xBAAE, - 28418 - 11904: 0xBA7D, - 28419 - 11904: 0xE26F, - 28420 - 11904: 0xFDB0, - 28421 - 11904: 0xE2AE, - 28422 - 11904: 0xBAA3, - 28423 - 11904: 0xE2AB, - 28424 - 11904: 0xE2B8, - 28425 - 11904: 0xE275, - 28426 - 11904: 0xE27E, - 28427 - 11904: 0x9445, - 28428 - 11904: 0x97D6, - 28429 - 11904: 0xE2B6, - 28430 - 11904: 0xE2AC, - 28431 - 11904: 0xBA7C, - 28434 - 11904: 0xE27C, - 28435 - 11904: 0xBA76, - 28436 - 11904: 0xBA74, - 28437 - 11904: 0xBAA8, - 28438 - 11904: 0xFCC6, - 28439 - 11904: 0x9844, - 28440 - 11904: 0xE27A, - 28441 - 11904: 0xE277, - 28442 - 11904: 0xE278, - 28444 - 11904: 0xE2B2, - 28446 - 11904: 0xE2B7, - 28447 - 11904: 0xE2B5, - 28448 - 11904: 0xBA7A, - 28449 - 11904: 0xE2B9, - 28450 - 11904: 0xBA7E, - 28451 - 11904: 0xBAA7, - 28452 - 11904: 0x8DE9, - 28453 - 11904: 0xE270, - 28454 - 11904: 0xE5FA, - 28455 - 11904: 0xE279, - 28457 - 11904: 0xBA78, - 28458 - 11904: 0xBAAC, - 28459 - 11904: 0xBAA9, - 28460 - 11904: 0xBA7B, - 28461 - 11904: 0xE2A5, - 28462 - 11904: 0xE274, - 28463 - 11904: 0xBAAA, - 28464 - 11904: 0xE2A7, - 28465 - 11904: 0xBAA4, - 28466 - 11904: 0xBAA6, - 28467 - 11904: 0xBA73, - 28468 - 11904: 0x8DEA, - 28469 - 11904: 0xE2A9, - 28470 - 11904: 0xE2A1, - 28471 - 11904: 0xE272, - 28472 - 11904: 0xBAA5, - 28473 - 11904: 0xE2B1, - 28474 - 11904: 0xE2B4, - 28475 - 11904: 0xE27B, - 28476 - 11904: 0xE2A8, - 28477 - 11904: 0xFE50, - 28478 - 11904: 0xBA79, - 28479 - 11904: 0xBCDF, - 28480 - 11904: 0xE2A6, - 28481 - 11904: 0xE5F9, - 28483 - 11904: 0xE2AD, - 28484 - 11904: 0xFDCC, - 28494 - 11904: 0xE276, - 28495 - 11904: 0xE644, - 28496 - 11904: 0xE64E, - 28497 - 11904: 0xBCE2, - 28498 - 11904: 0xE64D, - 28499 - 11904: 0xE659, - 28500 - 11904: 0xBCE4, - 28501 - 11904: 0xE64B, - 28502 - 11904: 0x9DA7, - 28503 - 11904: 0xE64F, - 28504 - 11904: 0xBCEF, - 28506 - 11904: 0xE646, - 28507 - 11904: 0xBCE7, - 28508 - 11904: 0xFDCD, - 28509 - 11904: 0xE652, - 28510 - 11904: 0xE9F0, - 28511 - 11904: 0xBCF3, - 28512 - 11904: 0xBCF2, - 28513 - 11904: 0xE654, - 28514 - 11904: 0xE643, - 28515 - 11904: 0xE65E, - 28516 - 11904: 0xBCED, - 28518 - 11904: 0xBCE3, - 28519 - 11904: 0xE657, - 28521 - 11904: 0xE65B, - 28522 - 11904: 0xE660, - 28523 - 11904: 0xE655, - 28524 - 11904: 0xE649, - 28525 - 11904: 0xBCE6, - 28526 - 11904: 0xBCE9, - 28527 - 11904: 0xBCF1, - 28528 - 11904: 0xBCEC, - 28530 - 11904: 0xE64C, - 28531 - 11904: 0xE2A2, - 28532 - 11904: 0xFDCF, - 28534 - 11904: 0xE648, - 28535 - 11904: 0xE65F, - 28536 - 11904: 0xBCE8, - 28537 - 11904: 0x95D2, - 28538 - 11904: 0xBCEB, - 28539 - 11904: 0xE661, - 28540 - 11904: 0xBCE0, - 28541 - 11904: 0xE656, - 28542 - 11904: 0xE5FB, - 28543 - 11904: 0xE65C, - 28544 - 11904: 0xC0DF, - 28545 - 11904: 0x8DED, - 28546 - 11904: 0xE64A, - 28548 - 11904: 0xBCE1, - 28549 - 11904: 0xE645, - 28550 - 11904: 0xBCE5, - 28551 - 11904: 0xE5FC, - 28552 - 11904: 0xBAAB, - 28553 - 11904: 0xE641, - 28554 - 11904: 0xFCBA, - 28555 - 11904: 0xE65A, - 28556 - 11904: 0xE642, - 28557 - 11904: 0xE640, - 28558 - 11904: 0xBCEA, - 28560 - 11904: 0xE658, - 28562 - 11904: 0xE5FE, - 28563 - 11904: 0xE651, - 28564 - 11904: 0xE650, - 28565 - 11904: 0xE65D, - 28566 - 11904: 0xE647, - 28567 - 11904: 0xBCEE, - 28573 - 11904: 0xFDC5, - 28574 - 11904: 0xE9F3, - 28575 - 11904: 0xFDD2, - 28576 - 11904: 0xBF49, - 28577 - 11904: 0xBEFE, - 28578 - 11904: 0xEA40, - 28579 - 11904: 0xE9EB, - 28580 - 11904: 0xBF41, - 28581 - 11904: 0xE9F7, - 28582 - 11904: 0xBF48, - 28583 - 11904: 0xBF43, - 28584 - 11904: 0xE9F5, - 28585 - 11904: 0xED4F, - 28586 - 11904: 0xE9FB, - 28587 - 11904: 0xEA42, - 28588 - 11904: 0xE9FA, - 28589 - 11904: 0xE9E9, - 28590 - 11904: 0xE9F8, - 28591 - 11904: 0xEA44, - 28592 - 11904: 0xEA46, - 28593 - 11904: 0xBEFD, - 28594 - 11904: 0xEA45, - 28595 - 11904: 0xBF44, - 28596 - 11904: 0xBF4A, - 28597 - 11904: 0x9CDC, - 28598 - 11904: 0xBF47, - 28600 - 11904: 0xE9FE, - 28601 - 11904: 0xBF46, - 28602 - 11904: 0xE9F9, - 28603 - 11904: 0x95CF, - 28604 - 11904: 0xE9ED, - 28605 - 11904: 0xE9F2, - 28606 - 11904: 0x8DEE, - 28607 - 11904: 0xE9FD, - 28608 - 11904: 0xBF45, - 28609 - 11904: 0xBF42, - 28610 - 11904: 0xBEFC, - 28611 - 11904: 0xBF40, - 28612 - 11904: 0xE9F1, - 28614 - 11904: 0xE5FD, - 28615 - 11904: 0xE9EC, - 28616 - 11904: 0xE9EF, - 28617 - 11904: 0xEA41, - 28618 - 11904: 0xE9F4, - 28619 - 11904: 0xE9EA, - 28620 - 11904: 0xED4E, - 28621 - 11904: 0xEA43, - 28622 - 11904: 0xE9EE, - 28623 - 11904: 0xE9FC, - 28627 - 11904: 0xFDD4, - 28628 - 11904: 0xED51, - 28629 - 11904: 0xC0E3, - 28632 - 11904: 0xC0D7, - 28633 - 11904: 0x96EC, - 28634 - 11904: 0x96EB, - 28635 - 11904: 0xC0DB, - 28636 - 11904: 0xED53, - 28637 - 11904: 0xED59, - 28638 - 11904: 0xED57, - 28639 - 11904: 0xC0D9, - 28640 - 11904: 0xC0DA, - 28641 - 11904: 0xC0E1, - 28642 - 11904: 0xED5A, - 28643 - 11904: 0xED52, - 28644 - 11904: 0xC0DC, - 28646 - 11904: 0xED56, - 28647 - 11904: 0xED55, - 28648 - 11904: 0xED5B, - 28649 - 11904: 0xC0E2, - 28651 - 11904: 0xC0DD, - 28652 - 11904: 0xC0E0, - 28653 - 11904: 0xED54, - 28654 - 11904: 0xC0E4, - 28655 - 11904: 0xC0DE, - 28656 - 11904: 0xC0E5, - 28657 - 11904: 0xC0D8, - 28658 - 11904: 0xED58, - 28660 - 11904: 0xED50, - 28662 - 11904: 0x90B6, - 28663 - 11904: 0xEFF7, - 28664 - 11904: 0xFDC3, - 28666 - 11904: 0xC271, - 28667 - 11904: 0xEFF4, - 28668 - 11904: 0xEFF6, - 28670 - 11904: 0xC26F, - 28671 - 11904: 0xEFF2, - 28672 - 11904: 0xEFF3, - 28673 - 11904: 0xEFEE, - 28675 - 11904: 0x98AB, - 28676 - 11904: 0xE9F6, - 28677 - 11904: 0xEFEF, - 28678 - 11904: 0xC270, - 28679 - 11904: 0xEFEB, - 28681 - 11904: 0xC26D, - 28682 - 11904: 0xEFF8, - 28683 - 11904: 0xC26E, - 28684 - 11904: 0xEFEC, - 28685 - 11904: 0xEFED, - 28686 - 11904: 0xEFF1, - 28687 - 11904: 0xC273, - 28689 - 11904: 0xC272, - 28692 - 11904: 0xEFF0, - 28693 - 11904: 0xC378, - 28694 - 11904: 0xF25F, - 28695 - 11904: 0xF265, - 28696 - 11904: 0xC379, - 28697 - 11904: 0xF25C, - 28698 - 11904: 0xC376, - 28699 - 11904: 0xC373, - 28700 - 11904: 0xF267, - 28701 - 11904: 0xC377, - 28702 - 11904: 0x96EE, - 28703 - 11904: 0xC374, - 28704 - 11904: 0xF25E, - 28705 - 11904: 0xF261, - 28706 - 11904: 0xF262, - 28707 - 11904: 0xF263, - 28708 - 11904: 0xF266, - 28710 - 11904: 0xEFF5, - 28711 - 11904: 0xF25D, - 28712 - 11904: 0xC375, - 28713 - 11904: 0xF264, - 28714 - 11904: 0xF268, - 28715 - 11904: 0xF260, - 28716 - 11904: 0x8DF4, - 28719 - 11904: 0xF45D, - 28720 - 11904: 0xC46A, - 28721 - 11904: 0xF460, - 28722 - 11904: 0xC46B, - 28723 - 11904: 0xF468, - 28724 - 11904: 0xF45F, - 28725 - 11904: 0xF45C, - 28727 - 11904: 0xF45E, - 28728 - 11904: 0xF462, - 28729 - 11904: 0xF465, - 28730 - 11904: 0xF464, - 28731 - 11904: 0xF467, - 28732 - 11904: 0xF45B, - 28734 - 11904: 0xC469, - 28735 - 11904: 0xF463, - 28736 - 11904: 0xF466, - 28737 - 11904: 0xF469, - 28738 - 11904: 0xF461, - 28739 - 11904: 0xF5D3, - 28740 - 11904: 0xF5D4, - 28741 - 11904: 0xF5D8, - 28742 - 11904: 0xF5D9, - 28744 - 11904: 0xF5D6, - 28745 - 11904: 0xF5D7, - 28746 - 11904: 0xF5D5, - 28747 - 11904: 0xFDE0, - 28748 - 11904: 0xC4E9, - 28749 - 11904: 0x8C67, - 28752 - 11904: 0x8DF6, - 28753 - 11904: 0xC578, - 28754 - 11904: 0xF6EB, - 28756 - 11904: 0x8DF7, - 28757 - 11904: 0xF6E8, - 28758 - 11904: 0xF6E9, - 28759 - 11904: 0xF6EA, - 28760 - 11904: 0xC579, - 28762 - 11904: 0xF7E5, - 28763 - 11904: 0xF7E4, - 28764 - 11904: 0x8FFA, - 28765 - 11904: 0xF8AF, - 28766 - 11904: 0xC5F4, - 28767 - 11904: 0xF8AD, - 28768 - 11904: 0xF8B0, - 28769 - 11904: 0xF8AE, - 28770 - 11904: 0xF8F5, - 28771 - 11904: 0xC657, - 28772 - 11904: 0xC665, - 28773 - 11904: 0xF9A3, - 28774 - 11904: 0xF96C, - 28775 - 11904: 0x97D0, - 28776 - 11904: 0xF9A2, - 28777 - 11904: 0xF9D0, - 28778 - 11904: 0xF9D1, - 28779 - 11904: 0xA4F5, - 28780 - 11904: 0x8BD2, - 28782 - 11904: 0x87DE, - 28783 - 11904: 0x8DF8, - 28784 - 11904: 0xA6C7, - 28785 - 11904: 0xCA41, - 28788 - 11904: 0xCB5E, - 28789 - 11904: 0x90D9, - 28790 - 11904: 0xA85F, - 28791 - 11904: 0x8C47, - 28792 - 11904: 0xA862, - 28793 - 11904: 0xFAF0, - 28794 - 11904: 0xCB5F, - 28796 - 11904: 0xA860, - 28797 - 11904: 0xA861, - 28798 - 11904: 0xFDE1, - 28799 - 11904: 0x8DF9, - 28801 - 11904: 0xFDE3, - 28802 - 11904: 0xCD58, - 28803 - 11904: 0xCD5A, - 28804 - 11904: 0xCD55, - 28805 - 11904: 0xCD52, - 28806 - 11904: 0xCD54, - 28809 - 11904: 0x8DFA, - 28810 - 11904: 0xAAA4, - 28811 - 11904: 0xFB63, - 28814 - 11904: 0xAAA2, - 28815 - 11904: 0x90A6, - 28817 - 11904: 0xCD56, - 28818 - 11904: 0xAAA3, - 28819 - 11904: 0xCD53, - 28820 - 11904: 0xCD50, - 28821 - 11904: 0xAAA1, - 28822 - 11904: 0xCD57, - 28824 - 11904: 0xCD51, - 28825 - 11904: 0xAAA5, - 28826 - 11904: 0xCD59, - 28831 - 11904: 0xCFAF, - 28832 - 11904: 0x9970, - 28833 - 11904: 0xCFB3, - 28835 - 11904: 0x91EB, - 28836 - 11904: 0xACB7, - 28837 - 11904: 0x9770, - 28838 - 11904: 0x986F, - 28839 - 11904: 0xFDE2, - 28841 - 11904: 0xCFB6, - 28843 - 11904: 0xACAF, - 28844 - 11904: 0xACB2, - 28845 - 11904: 0xACB4, - 28846 - 11904: 0xACB6, - 28847 - 11904: 0xACB3, - 28848 - 11904: 0xCFB2, - 28849 - 11904: 0xCFB1, - 28851 - 11904: 0xACB1, - 28852 - 11904: 0xCFB4, - 28853 - 11904: 0xCFB5, - 28855 - 11904: 0xCFAE, - 28856 - 11904: 0xACB5, - 28857 - 11904: 0x98F2, - 28858 - 11904: 0xACB0, - 28859 - 11904: 0x9AFC, - 28860 - 11904: 0x896C, - 28861 - 11904: 0xFDFD, - 28862 - 11904: 0xCFB0, - 28864 - 11904: 0x995E, - 28868 - 11904: 0x95BD, - 28869 - 11904: 0xD277, - 28870 - 11904: 0xD278, - 28871 - 11904: 0xD279, - 28872 - 11904: 0xAF50, - 28874 - 11904: 0xAF4C, - 28875 - 11904: 0xD26E, - 28876 - 11904: 0xFDE4, - 28877 - 11904: 0xD276, - 28878 - 11904: 0xD27B, - 28879 - 11904: 0xAF51, - 28880 - 11904: 0x91E6, - 28881 - 11904: 0xD26C, - 28882 - 11904: 0xD272, - 28883 - 11904: 0xD26B, - 28884 - 11904: 0xD275, - 28885 - 11904: 0xFDE5, - 28886 - 11904: 0xFDE6, - 28887 - 11904: 0xD271, - 28888 - 11904: 0xAF4D, - 28889 - 11904: 0xAF4F, - 28890 - 11904: 0xD27A, - 28892 - 11904: 0xD26A, - 28893 - 11904: 0xD26D, - 28894 - 11904: 0xD273, - 28895 - 11904: 0xFDE7, - 28896 - 11904: 0xD274, - 28897 - 11904: 0xD27C, - 28898 - 11904: 0xD270, - 28900 - 11904: 0xAF4E, - 28911 - 11904: 0xB26D, - 28912 - 11904: 0xD64E, - 28913 - 11904: 0x9454, - 28915 - 11904: 0xD650, - 28916 - 11904: 0xD64C, - 28917 - 11904: 0x99B8, - 28918 - 11904: 0xD658, - 28919 - 11904: 0xD64A, - 28920 - 11904: 0xD657, - 28921 - 11904: 0xB269, - 28922 - 11904: 0xD648, - 28923 - 11904: 0xDA5B, - 28924 - 11904: 0xD652, - 28925 - 11904: 0xB26C, - 28926 - 11904: 0x97E9, - 28927 - 11904: 0xD653, - 28928 - 11904: 0xD656, - 28930 - 11904: 0xD65A, - 28932 - 11904: 0xD64F, - 28933 - 11904: 0x9346, - 28934 - 11904: 0xD654, - 28937 - 11904: 0xB26A, - 28938 - 11904: 0xB26B, - 28939 - 11904: 0xD659, - 28940 - 11904: 0xD64D, - 28941 - 11904: 0xD649, - 28942 - 11904: 0xD65B, - 28944 - 11904: 0xD651, - 28947 - 11904: 0xD655, - 28951 - 11904: 0xD64B, - 28953 - 11904: 0xB548, - 28954 - 11904: 0xB549, - 28955 - 11904: 0xDA65, - 28956 - 11904: 0xB54F, - 28957 - 11904: 0x9863, - 28958 - 11904: 0xDA59, - 28959 - 11904: 0xDA62, - 28960 - 11904: 0xDA58, - 28961 - 11904: 0xB54C, - 28962 - 11904: 0xDA60, - 28963 - 11904: 0xDA5E, - 28965 - 11904: 0xDA5F, - 28966 - 11904: 0xB54A, - 28968 - 11904: 0xDA63, - 28969 - 11904: 0x95BC, - 28971 - 11904: 0xFDED, - 28972 - 11904: 0xFDF7, - 28974 - 11904: 0xDA5C, - 28975 - 11904: 0xDA5A, - 28976 - 11904: 0xB54B, - 28977 - 11904: 0xDA5D, - 28978 - 11904: 0xDA61, - 28979 - 11904: 0x9870, - 28980 - 11904: 0x96F6, - 28981 - 11904: 0x8EA9, - 28982 - 11904: 0xB54D, - 28986 - 11904: 0xDA64, - 28987 - 11904: 0x9451, - 28990 - 11904: 0x8E43, - 28992 - 11904: 0x8B5A, - 28993 - 11904: 0xDE70, - 28994 - 11904: 0xDE77, - 28995 - 11904: 0xDE79, - 28996 - 11904: 0xDEA1, - 28997 - 11904: 0xFDEE, - 28998 - 11904: 0xB7DA, - 28999 - 11904: 0xDE6B, - 29001 - 11904: 0xB7D2, - 29002 - 11904: 0xFDF0, - 29003 - 11904: 0xDE7A, - 29004 - 11904: 0xB7D7, - 29005 - 11904: 0xDEA2, - 29006 - 11904: 0xB7CE, - 29007 - 11904: 0xFDF4, - 29008 - 11904: 0xDE7D, - 29009 - 11904: 0x9BF5, - 29010 - 11904: 0xDE6D, - 29011 - 11904: 0xDE7E, - 29012 - 11904: 0xDE6C, - 29014 - 11904: 0xB7DC, - 29015 - 11904: 0x8CEE, - 29016 - 11904: 0xDE78, - 29017 - 11904: 0xB7CF, - 29018 - 11904: 0xDEA3, - 29020 - 11904: 0xB7D4, - 29021 - 11904: 0xDE71, - 29022 - 11904: 0xB7D9, - 29023 - 11904: 0xDE7C, - 29024 - 11904: 0xDE6F, - 29025 - 11904: 0xDE76, - 29026 - 11904: 0xDE72, - 29027 - 11904: 0xDE6E, - 29028 - 11904: 0xB7D1, - 29029 - 11904: 0xB7D8, - 29030 - 11904: 0xB7D6, - 29031 - 11904: 0xB7D3, - 29032 - 11904: 0xB7DB, - 29033 - 11904: 0xB7D0, - 29034 - 11904: 0xDE75, - 29035 - 11904: 0x977E, - 29036 - 11904: 0xB7D5, - 29038 - 11904: 0xFDF1, - 29040 - 11904: 0xDE7B, - 29041 - 11904: 0x9BD5, - 29042 - 11904: 0xDE73, - 29043 - 11904: 0x9AC3, - 29045 - 11904: 0x97C8, - 29046 - 11904: 0xA0DB, - 29047 - 11904: 0x91D0, - 29048 - 11904: 0xDE74, - 29050 - 11904: 0x9FE4, - 29051 - 11904: 0xE2C1, - 29052 - 11904: 0x8FDD, - 29053 - 11904: 0xBAB4, - 29054 - 11904: 0x91E9, - 29056 - 11904: 0xE2BD, - 29057 - 11904: 0xE2C3, - 29058 - 11904: 0xE2BF, - 29060 - 11904: 0xBAB6, - 29061 - 11904: 0xE2BE, - 29062 - 11904: 0xE2C2, - 29063 - 11904: 0xE2BA, - 29064 - 11904: 0x98E0, - 29065 - 11904: 0xE2BC, - 29066 - 11904: 0xBAB5, - 29068 - 11904: 0x92CA, - 29070 - 11904: 0x9857, - 29071 - 11904: 0xE2C0, - 29072 - 11904: 0xE2BB, - 29073 - 11904: 0x8C51, - 29074 - 11904: 0xBAB7, - 29076 - 11904: 0xBAB2, - 29078 - 11904: 0xFDEB, - 29079 - 11904: 0xE2C4, - 29080 - 11904: 0x9B49, - 29081 - 11904: 0xBAB3, - 29082 - 11904: 0xE667, - 29083 - 11904: 0xE664, - 29084 - 11904: 0xE670, - 29085 - 11904: 0xE66A, - 29086 - 11904: 0xE66C, - 29087 - 11904: 0xBCF4, - 29088 - 11904: 0xE666, - 29089 - 11904: 0xE66E, - 29090 - 11904: 0x9D76, - 29091 - 11904: 0x9EAF, - 29092 - 11904: 0xE66D, - 29093 - 11904: 0xE66B, - 29095 - 11904: 0xE671, - 29096 - 11904: 0xBCF7, - 29097 - 11904: 0xE668, - 29098 - 11904: 0xE66F, - 29100 - 11904: 0xBCF5, - 29101 - 11904: 0x9CCC, - 29103 - 11904: 0xE663, - 29104 - 11904: 0xE665, - 29105 - 11904: 0xBCF6, - 29106 - 11904: 0xE662, - 29107 - 11904: 0xE672, - 29108 - 11904: 0xFDEA, - 29109 - 11904: 0xE669, - 29111 - 11904: 0x8DF1, - 29112 - 11904: 0xEA4A, - 29113 - 11904: 0xBF51, - 29114 - 11904: 0xFDFB, - 29116 - 11904: 0xEA55, - 29117 - 11904: 0xEA53, - 29118 - 11904: 0xBF4B, - 29119 - 11904: 0xEA49, - 29120 - 11904: 0xEA4C, - 29121 - 11904: 0xEA4D, - 29122 - 11904: 0xEA48, - 29123 - 11904: 0xBF55, - 29124 - 11904: 0xBF56, - 29125 - 11904: 0xEA47, - 29126 - 11904: 0xEA56, - 29127 - 11904: 0xEA51, - 29128 - 11904: 0xBF4F, - 29129 - 11904: 0xBF4C, - 29130 - 11904: 0xEA50, - 29131 - 11904: 0xEA4E, - 29134 - 11904: 0xBF52, - 29135 - 11904: 0xEA52, - 29136 - 11904: 0xBF4D, - 29137 - 11904: 0x8E53, - 29138 - 11904: 0xBF4E, - 29140 - 11904: 0xEA4F, - 29141 - 11904: 0xBF50, - 29142 - 11904: 0xEA4B, - 29144 - 11904: 0xEA54, - 29145 - 11904: 0xBF53, - 29146 - 11904: 0xEA57, - 29147 - 11904: 0xEA58, - 29148 - 11904: 0xBF54, - 29149 - 11904: 0xFACF, - 29151 - 11904: 0xC0E7, - 29152 - 11904: 0xC0EE, - 29153 - 11904: 0xED5C, - 29154 - 11904: 0xED62, - 29156 - 11904: 0xED60, - 29157 - 11904: 0xC0EA, - 29158 - 11904: 0xC0E9, - 29159 - 11904: 0xC0E6, - 29160 - 11904: 0xED5E, - 29163 - 11904: 0x96F9, - 29164 - 11904: 0xC0EC, - 29165 - 11904: 0xC0EB, - 29166 - 11904: 0xC0E8, - 29168 - 11904: 0xED61, - 29169 - 11904: 0xED5D, - 29170 - 11904: 0xED5F, - 29172 - 11904: 0xC0ED, - 29173 - 11904: 0x98BF, - 29174 - 11904: 0x9E49, - 29176 - 11904: 0xC277, - 29177 - 11904: 0xEFFB, - 29179 - 11904: 0xC274, - 29180 - 11904: 0xC275, - 29181 - 11904: 0xEFFD, - 29182 - 11904: 0xC276, - 29183 - 11904: 0xEFFA, - 29184 - 11904: 0x8CA7, - 29185 - 11904: 0xEFF9, - 29186 - 11904: 0xF26C, - 29187 - 11904: 0xEFFC, - 29189 - 11904: 0xF26D, - 29190 - 11904: 0xC37A, - 29191 - 11904: 0xF26B, - 29193 - 11904: 0x9BCA, - 29194 - 11904: 0xF26A, - 29196 - 11904: 0xF269, - 29197 - 11904: 0xC37B, - 29198 - 11904: 0xFDFE, - 29199 - 11904: 0x92DC, - 29200 - 11904: 0xC46C, - 29203 - 11904: 0xF46A, - 29204 - 11904: 0xF46B, - 29205 - 11904: 0xFE41, - 29206 - 11904: 0x91CC, - 29207 - 11904: 0x91E2, - 29209 - 11904: 0xF5DC, - 29210 - 11904: 0xF5DB, - 29211 - 11904: 0xC4EA, - 29213 - 11904: 0xF5DA, - 29214 - 11904: 0xF6EC, - 29215 - 11904: 0xF6ED, - 29218 - 11904: 0xF7E6, - 29219 - 11904: 0xF8B1, - 29220 - 11904: 0xFE44, - 29221 - 11904: 0x875F, - 29222 - 11904: 0xF8F6, - 29223 - 11904: 0xF9BC, - 29224 - 11904: 0xC679, - 29225 - 11904: 0xF9C6, - 29226 - 11904: 0xA4F6, - 29227 - 11904: 0x8BD3, - 29228 - 11904: 0xAAA6, - 29229 - 11904: 0xAAA7, - 29230 - 11904: 0xFE47, - 29232 - 11904: 0xACB8, - 29237 - 11904: 0xC0EF, - 29238 - 11904: 0xA4F7, - 29240 - 11904: 0xAAA8, - 29241 - 11904: 0xAF52, - 29242 - 11904: 0xB7DD, - 29243 - 11904: 0xA4F8, - 29245 - 11904: 0xB26E, - 29246 - 11904: 0xBAB8, - 29247 - 11904: 0xC962, - 29248 - 11904: 0xFE48, - 29249 - 11904: 0xCFB7, - 29250 - 11904: 0xD27D, - 29252 - 11904: 0xE2C5, - 29254 - 11904: 0xC0F0, - 29255 - 11904: 0xA4F9, - 29256 - 11904: 0xAAA9, - 29257 - 11904: 0xCFB8, - 29258 - 11904: 0xCFB9, - 29259 - 11904: 0xDA66, - 29260 - 11904: 0xB550, - 29263 - 11904: 0xDEA4, - 29264 - 11904: 0xA0E4, - 29266 - 11904: 0xB7DE, - 29267 - 11904: 0xE2C6, - 29269 - 11904: 0xFE4B, - 29270 - 11904: 0xBCF8, - 29271 - 11904: 0xFE4C, - 29272 - 11904: 0xC37C, - 29273 - 11904: 0xA4FA, - 29274 - 11904: 0xDA67, - 29275 - 11904: 0xA4FB, - 29276 - 11904: 0x8DBF, - 29277 - 11904: 0xA6C9, - 29278 - 11904: 0xCA42, - 29279 - 11904: 0xA6C8, - 29280 - 11904: 0xA865, - 29281 - 11904: 0xA864, - 29282 - 11904: 0xA863, - 29283 - 11904: 0xCB60, - 29286 - 11904: 0x9E78, - 29287 - 11904: 0xAAAA, - 29289 - 11904: 0xAAAB, - 29290 - 11904: 0xCD5B, - 29292 - 11904: 0xCFBA, - 29294 - 11904: 0xCFBD, - 29295 - 11904: 0xACBA, - 29296 - 11904: 0xCFBB, - 29298 - 11904: 0xACB9, - 29299 - 11904: 0xCFBC, - 29300 - 11904: 0xACBB, - 29302 - 11904: 0xD2A2, - 29303 - 11904: 0xD2A1, - 29304 - 11904: 0xD27E, - 29305 - 11904: 0xAF53, - 29307 - 11904: 0xD65D, - 29308 - 11904: 0xD65E, - 29309 - 11904: 0xB26F, - 29310 - 11904: 0xD65C, - 29311 - 11904: 0xD65F, - 29312 - 11904: 0xB552, - 29313 - 11904: 0xB270, - 29314 - 11904: 0xFE51, - 29316 - 11904: 0xB551, - 29317 - 11904: 0xDA6B, - 29318 - 11904: 0xDA6A, - 29319 - 11904: 0x9456, - 29320 - 11904: 0xDA68, - 29321 - 11904: 0xDA69, - 29323 - 11904: 0xDA6C, - 29324 - 11904: 0xDEA6, - 29325 - 11904: 0xDEA5, - 29326 - 11904: 0xDEA9, - 29327 - 11904: 0x9D61, - 29328 - 11904: 0xDEA8, - 29329 - 11904: 0xDEA7, - 29330 - 11904: 0xBAB9, - 29331 - 11904: 0xE2C9, - 29332 - 11904: 0x9457, - 29333 - 11904: 0xE2C8, - 29334 - 11904: 0xBABA, - 29335 - 11904: 0xE2C7, - 29336 - 11904: 0xE673, - 29338 - 11904: 0xE674, - 29339 - 11904: 0xBCF9, - 29341 - 11904: 0xEA59, - 29342 - 11904: 0xEA5A, - 29343 - 11904: 0x9966, - 29345 - 11904: 0xF272, - 29346 - 11904: 0xC37D, - 29347 - 11904: 0xF271, - 29348 - 11904: 0xF270, - 29349 - 11904: 0xF26E, - 29350 - 11904: 0xF26F, - 29351 - 11904: 0xC4EB, - 29352 - 11904: 0xF46C, - 29353 - 11904: 0xF6EE, - 29354 - 11904: 0xF8F7, - 29356 - 11904: 0xA4FC, - 29357 - 11904: 0x8BD5, - 29358 - 11904: 0xC9A5, - 29359 - 11904: 0xA5C7, - 29360 - 11904: 0xC9A6, - 29362 - 11904: 0xA069, - 29364 - 11904: 0xCA43, - 29365 - 11904: 0xCA44, - 29370 - 11904: 0xCB66, - 29373 - 11904: 0xCB62, - 29375 - 11904: 0xCB61, - 29376 - 11904: 0xAAAC, - 29377 - 11904: 0xCB65, - 29378 - 11904: 0xA867, - 29379 - 11904: 0xCB63, - 29380 - 11904: 0xA866, - 29381 - 11904: 0xCB67, - 29382 - 11904: 0xCB64, - 29385 - 11904: 0xCD5F, - 29386 - 11904: 0xCFBE, - 29387 - 11904: 0xCD5D, - 29388 - 11904: 0xCD64, - 29389 - 11904: 0x98B4, - 29390 - 11904: 0xAAAD, - 29392 - 11904: 0xAAB0, - 29393 - 11904: 0xCD65, - 29394 - 11904: 0xCD61, - 29396 - 11904: 0xCD62, - 29398 - 11904: 0xCD5C, - 29399 - 11904: 0xAAAF, - 29400 - 11904: 0xCD5E, - 29401 - 11904: 0xAAAE, - 29402 - 11904: 0xCD63, - 29404 - 11904: 0xCD60, - 29407 - 11904: 0xCFC2, - 29408 - 11904: 0xACBD, - 29409 - 11904: 0xACBE, - 29410 - 11904: 0xA049, - 29411 - 11904: 0xCFC5, - 29412 - 11904: 0xCFBF, - 29414 - 11904: 0xCFC4, - 29416 - 11904: 0xCFC0, - 29417 - 11904: 0xACBC, - 29418 - 11904: 0xCFC3, - 29419 - 11904: 0xCFC1, - 29427 - 11904: 0xD2A8, - 29428 - 11904: 0xD2A5, - 29430 - 11904: 0xD2A7, - 29431 - 11904: 0xAF58, - 29432 - 11904: 0xAF57, - 29433 - 11904: 0xAF55, - 29434 - 11904: 0xD2A4, - 29435 - 11904: 0xD2A9, - 29436 - 11904: 0xAF54, - 29437 - 11904: 0xAF56, - 29438 - 11904: 0xD2A6, - 29439 - 11904: 0xD667, - 29440 - 11904: 0xD2A3, - 29441 - 11904: 0xD2AA, - 29442 - 11904: 0xA04C, - 29444 - 11904: 0x9E65, - 29447 - 11904: 0xD662, - 29448 - 11904: 0xD666, - 29450 - 11904: 0xD665, - 29451 - 11904: 0xDA6E, - 29452 - 11904: 0xDA79, - 29455 - 11904: 0xD668, - 29456 - 11904: 0x98B5, - 29457 - 11904: 0xD663, - 29458 - 11904: 0xDA6D, - 29459 - 11904: 0xB274, - 29462 - 11904: 0xB273, - 29463 - 11904: 0xD661, - 29464 - 11904: 0xD664, - 29465 - 11904: 0xB275, - 29467 - 11904: 0xB272, - 29468 - 11904: 0xB271, - 29469 - 11904: 0xD660, - 29470 - 11904: 0xD669, - 29474 - 11904: 0xDA70, - 29475 - 11904: 0xDA77, - 29477 - 11904: 0xB554, - 29478 - 11904: 0xDA76, - 29479 - 11904: 0xDA73, - 29480 - 11904: 0xFE58, - 29481 - 11904: 0xB556, - 29482 - 11904: 0xFE52, - 29483 - 11904: 0xFE53, - 29484 - 11904: 0xA065, - 29485 - 11904: 0xDA75, - 29486 - 11904: 0xFE59, - 29488 - 11904: 0xDA6F, - 29489 - 11904: 0xDA71, - 29490 - 11904: 0xDA74, - 29491 - 11904: 0xDA72, - 29492 - 11904: 0xB555, - 29493 - 11904: 0xDA78, - 29494 - 11904: 0xB553, - 29495 - 11904: 0xB7DF, - 29496 - 11904: 0x98B7, - 29497 - 11904: 0x98B8, - 29498 - 11904: 0xDEAD, - 29499 - 11904: 0xDEAC, - 29500 - 11904: 0xDEAA, - 29502 - 11904: 0xB7E2, - 29503 - 11904: 0xB7E1, - 29504 - 11904: 0xDEAE, - 29505 - 11904: 0x98BA, - 29506 - 11904: 0xDEAB, - 29507 - 11904: 0xE2CA, - 29508 - 11904: 0xBABB, - 29509 - 11904: 0xB7E0, - 29512 - 11904: 0x98BB, - 29513 - 11904: 0xDEB0, - 29514 - 11904: 0xDEAF, - 29516 - 11904: 0xE2CD, - 29517 - 11904: 0xE2CB, - 29518 - 11904: 0xBCFA, - 29519 - 11904: 0x9FBC, - 29520 - 11904: 0xBABC, - 29521 - 11904: 0xE2CC, - 29522 - 11904: 0xE676, - 29527 - 11904: 0xBCFB, - 29528 - 11904: 0xE675, - 29529 - 11904: 0xE67E, - 29530 - 11904: 0xE67D, - 29531 - 11904: 0xE67B, - 29533 - 11904: 0xE67A, - 29534 - 11904: 0xE677, - 29535 - 11904: 0xE678, - 29536 - 11904: 0xE679, - 29537 - 11904: 0xE67C, - 29538 - 11904: 0xE6A1, - 29541 - 11904: 0xEA5F, - 29542 - 11904: 0xEA5C, - 29543 - 11904: 0xEA5D, - 29544 - 11904: 0xBF57, - 29545 - 11904: 0xEA5B, - 29546 - 11904: 0xEA61, - 29547 - 11904: 0xEA60, - 29548 - 11904: 0xEA5E, - 29550 - 11904: 0xED64, - 29551 - 11904: 0xED65, - 29552 - 11904: 0xC0F1, - 29553 - 11904: 0xA04A, - 29554 - 11904: 0xC0F2, - 29555 - 11904: 0xED63, - 29556 - 11904: 0x9EC7, - 29557 - 11904: 0xC279, - 29558 - 11904: 0xEFFE, - 29559 - 11904: 0xC278, - 29560 - 11904: 0xC37E, - 29562 - 11904: 0xC3A1, - 29563 - 11904: 0xC46D, - 29564 - 11904: 0xF46E, - 29565 - 11904: 0xF46D, - 29566 - 11904: 0xF5DD, - 29567 - 11904: 0xF6EF, - 29568 - 11904: 0xC57A, - 29569 - 11904: 0xF7E8, - 29570 - 11904: 0xF7E7, - 29571 - 11904: 0xF7E9, - 29572 - 11904: 0xA5C8, - 29573 - 11904: 0xCFC6, - 29574 - 11904: 0xAF59, - 29575 - 11904: 0xB276, - 29576 - 11904: 0xD66A, - 29577 - 11904: 0xA5C9, - 29578 - 11904: 0xC9A7, - 29579 - 11904: 0xA4FD, - 29580 - 11904: 0x8CA9, - 29582 - 11904: 0xCA45, - 29583 - 11904: 0x98AE, - 29586 - 11904: 0xCB6C, - 29587 - 11904: 0xCB6A, - 29588 - 11904: 0xCB6B, - 29589 - 11904: 0xCB68, - 29590 - 11904: 0xA868, - 29591 - 11904: 0xCB69, - 29592 - 11904: 0x92D6, - 29596 - 11904: 0xFAE1, - 29597 - 11904: 0xCD6D, - 29598 - 11904: 0x91D4, - 29599 - 11904: 0xAAB3, - 29600 - 11904: 0xCD6B, - 29601 - 11904: 0xCD67, - 29602 - 11904: 0xCD6A, - 29604 - 11904: 0xCD66, - 29605 - 11904: 0xAAB5, - 29606 - 11904: 0xCD69, - 29607 - 11904: 0xFADE, - 29608 - 11904: 0xAAB2, - 29609 - 11904: 0xAAB1, - 29610 - 11904: 0xFE5B, - 29611 - 11904: 0xAAB4, - 29612 - 11904: 0xCD6C, - 29613 - 11904: 0xCD68, - 29618 - 11904: 0xACC2, - 29619 - 11904: 0xACC5, - 29620 - 11904: 0xCFCE, - 29621 - 11904: 0xCFCD, - 29622 - 11904: 0xCFCC, - 29623 - 11904: 0xACBF, - 29624 - 11904: 0xCFD5, - 29625 - 11904: 0xCFCB, - 29626 - 11904: 0x8C53, - 29627 - 11904: 0xACC1, - 29628 - 11904: 0xD2AF, - 29630 - 11904: 0xCFD2, - 29631 - 11904: 0xCFD0, - 29632 - 11904: 0xACC4, - 29634 - 11904: 0xCFC8, - 29635 - 11904: 0xCFD3, - 29636 - 11904: 0x87BF, - 29637 - 11904: 0xCFCA, - 29638 - 11904: 0xCFD4, - 29639 - 11904: 0xCFD1, - 29640 - 11904: 0xCFC9, - 29641 - 11904: 0xFE5E, - 29642 - 11904: 0xACC0, - 29643 - 11904: 0xCFD6, - 29644 - 11904: 0xCFC7, - 29645 - 11904: 0xACC3, - 29646 - 11904: 0xFBD7, - 29647 - 11904: 0xFE5A, - 29648 - 11904: 0x94C5, - 29650 - 11904: 0xD2B4, - 29651 - 11904: 0xD2AB, - 29652 - 11904: 0xD2B6, - 29653 - 11904: 0xFACA, - 29654 - 11904: 0xD2AE, - 29655 - 11904: 0xD2B9, - 29656 - 11904: 0xD2BA, - 29657 - 11904: 0xD2AC, - 29658 - 11904: 0xD2B8, - 29659 - 11904: 0xD2B5, - 29660 - 11904: 0xD2B3, - 29661 - 11904: 0xD2B7, - 29662 - 11904: 0xAF5F, - 29664 - 11904: 0xAF5D, - 29665 - 11904: 0x98C1, - 29666 - 11904: 0x975C, - 29667 - 11904: 0xD2B1, - 29668 - 11904: 0xFE74, - 29669 - 11904: 0xD2AD, - 29670 - 11904: 0x9773, - 29671 - 11904: 0xD2B0, - 29672 - 11904: 0xD2BB, - 29673 - 11904: 0xD2B2, - 29674 - 11904: 0xAF5E, - 29675 - 11904: 0xCFCF, - 29677 - 11904: 0xAF5A, - 29678 - 11904: 0xAF5C, - 29679 - 11904: 0xFA46, - 29683 - 11904: 0x9764, - 29684 - 11904: 0xD678, - 29685 - 11904: 0xD66D, - 29686 - 11904: 0xD66B, - 29687 - 11904: 0xFE68, - 29688 - 11904: 0xD66C, - 29689 - 11904: 0x964E, - 29690 - 11904: 0xD673, - 29691 - 11904: 0x9765, - 29692 - 11904: 0xD674, - 29693 - 11904: 0xD670, - 29694 - 11904: 0xB27B, - 29695 - 11904: 0xD675, - 29696 - 11904: 0xD672, - 29697 - 11904: 0xD66F, - 29698 - 11904: 0x8C5A, - 29699 - 11904: 0xB279, - 29700 - 11904: 0xD66E, - 29701 - 11904: 0xB277, - 29702 - 11904: 0xB27A, - 29703 - 11904: 0xD671, - 29704 - 11904: 0xD679, - 29705 - 11904: 0xAF5B, - 29706 - 11904: 0xB278, - 29707 - 11904: 0xD677, - 29708 - 11904: 0xD676, - 29709 - 11904: 0xB27C, - 29713 - 11904: 0x89A1, - 29714 - 11904: 0x95FA, - 29716 - 11904: 0x92D4, - 29717 - 11904: 0xFE69, - 29718 - 11904: 0xDA7E, - 29719 - 11904: 0xFB45, - 29721 - 11904: 0x98C8, - 29722 - 11904: 0xDAA1, - 29723 - 11904: 0xB560, - 29724 - 11904: 0x90EF, - 29725 - 11904: 0xDAA7, - 29726 - 11904: 0x98C9, - 29727 - 11904: 0x98CA, - 29728 - 11904: 0xDAA9, - 29729 - 11904: 0xDAA2, - 29730 - 11904: 0xB55A, - 29731 - 11904: 0xDAA6, - 29732 - 11904: 0xDAA5, - 29733 - 11904: 0xB55B, - 29734 - 11904: 0xB561, - 29736 - 11904: 0xB562, - 29737 - 11904: 0xDAA8, - 29738 - 11904: 0xB558, - 29739 - 11904: 0xDA7D, - 29740 - 11904: 0xDA7B, - 29741 - 11904: 0xDAA3, - 29742 - 11904: 0xDA7A, - 29743 - 11904: 0xB55F, - 29744 - 11904: 0xDA7C, - 29745 - 11904: 0xDAA4, - 29746 - 11904: 0xDAAA, - 29747 - 11904: 0xB559, - 29748 - 11904: 0xB55E, - 29749 - 11904: 0xB55C, - 29750 - 11904: 0xB55D, - 29751 - 11904: 0x946D, - 29752 - 11904: 0x94B7, - 29753 - 11904: 0xFE6C, - 29754 - 11904: 0xB557, - 29756 - 11904: 0x946B, - 29759 - 11904: 0xB7E9, - 29760 - 11904: 0xDEB7, - 29761 - 11904: 0xB7E8, - 29762 - 11904: 0xDEBB, - 29763 - 11904: 0x92FC, - 29764 - 11904: 0xDEB1, - 29765 - 11904: 0x95EB, - 29766 - 11904: 0xDEBC, - 29767 - 11904: 0xFE73, - 29768 - 11904: 0x976E, - 29769 - 11904: 0xFE5F, - 29770 - 11904: 0xDEB2, - 29771 - 11904: 0xDEB3, - 29772 - 11904: 0x87B8, - 29773 - 11904: 0xDEBD, - 29774 - 11904: 0xDEBA, - 29775 - 11904: 0xDEB8, - 29776 - 11904: 0xDEB9, - 29777 - 11904: 0xDEB5, - 29778 - 11904: 0xDEB4, - 29779 - 11904: 0xFDBD, - 29780 - 11904: 0xDEBE, - 29781 - 11904: 0xB7E5, - 29782 - 11904: 0x92D5, - 29783 - 11904: 0xDEB6, - 29785 - 11904: 0xB7EA, - 29786 - 11904: 0xB7E4, - 29787 - 11904: 0xB7EB, - 29788 - 11904: 0xFE6F, - 29789 - 11904: 0xFEB9, - 29790 - 11904: 0xB7E7, - 29791 - 11904: 0xB7E6, - 29792 - 11904: 0xFE71, - 29793 - 11904: 0x8778, - 29794 - 11904: 0xE2CE, - 29795 - 11904: 0xBABE, - 29796 - 11904: 0xBABD, - 29797 - 11904: 0xFBBB, - 29799 - 11904: 0xE2D3, - 29800 - 11904: 0xA0D5, - 29801 - 11904: 0xBCFC, - 29802 - 11904: 0xBABF, - 29803 - 11904: 0x95FB, - 29804 - 11904: 0xFE77, - 29805 - 11904: 0xBAC1, - 29806 - 11904: 0xE2D4, - 29807 - 11904: 0xB7E3, - 29808 - 11904: 0xBAC0, - 29809 - 11904: 0xE2D0, - 29810 - 11904: 0xE2D2, - 29811 - 11904: 0xE2CF, - 29812 - 11904: 0xFE79, - 29813 - 11904: 0xE2D1, - 29814 - 11904: 0xFE75, - 29817 - 11904: 0xE6AB, - 29818 - 11904: 0x945D, - 29820 - 11904: 0xE6AA, - 29821 - 11904: 0xE6A7, - 29822 - 11904: 0xBD40, - 29823 - 11904: 0xEA62, - 29824 - 11904: 0xBD41, - 29825 - 11904: 0xE6A6, - 29826 - 11904: 0xFE7C, - 29827 - 11904: 0xBCFE, - 29829 - 11904: 0xE6A8, - 29830 - 11904: 0xE6A5, - 29831 - 11904: 0xE6A2, - 29832 - 11904: 0xE6A9, - 29833 - 11904: 0xE6A3, - 29834 - 11904: 0xE6A4, - 29835 - 11904: 0xBCFD, - 29836 - 11904: 0x9344, - 29837 - 11904: 0x8EA6, - 29840 - 11904: 0xED69, - 29842 - 11904: 0xEA66, - 29844 - 11904: 0xEA65, - 29845 - 11904: 0xEA67, - 29847 - 11904: 0xED66, - 29848 - 11904: 0xBF5A, - 29849 - 11904: 0x92D3, - 29850 - 11904: 0xEA63, - 29851 - 11904: 0x94B8, - 29852 - 11904: 0xBF58, - 29853 - 11904: 0x8779, - 29854 - 11904: 0xBF5C, - 29855 - 11904: 0xBF5B, - 29856 - 11904: 0xEA64, - 29857 - 11904: 0xEA68, - 29859 - 11904: 0xBF59, - 29860 - 11904: 0xFC71, - 29861 - 11904: 0xED6D, - 29862 - 11904: 0xC0F5, - 29863 - 11904: 0xC27A, - 29864 - 11904: 0xC0F6, - 29865 - 11904: 0xC0F3, - 29866 - 11904: 0xED6A, - 29867 - 11904: 0xED68, - 29869 - 11904: 0xED6B, - 29871 - 11904: 0xED6E, - 29872 - 11904: 0xC0F4, - 29873 - 11904: 0xED6C, - 29874 - 11904: 0xED67, - 29876 - 11904: 0x975E, - 29877 - 11904: 0xF042, - 29878 - 11904: 0xF045, - 29879 - 11904: 0xF275, - 29880 - 11904: 0xF040, - 29881 - 11904: 0x8CAD, - 29882 - 11904: 0xF46F, - 29883 - 11904: 0xF046, - 29885 - 11904: 0xC3A2, - 29886 - 11904: 0xF044, - 29887 - 11904: 0xC27B, - 29888 - 11904: 0xF041, - 29889 - 11904: 0xF043, - 29890 - 11904: 0xF047, - 29891 - 11904: 0xF276, - 29893 - 11904: 0xF274, - 29894 - 11904: 0x87C1, - 29896 - 11904: 0xFEA7, - 29898 - 11904: 0xC3A3, - 29899 - 11904: 0xF273, - 29900 - 11904: 0x946A, - 29903 - 11904: 0xC46E, - 29904 - 11904: 0x93E3, - 29907 - 11904: 0x98CF, - 29908 - 11904: 0xC4ED, - 29909 - 11904: 0xF6F1, - 29910 - 11904: 0xC4EC, - 29911 - 11904: 0xF6F3, - 29912 - 11904: 0xF6F0, - 29913 - 11904: 0xF6F2, - 29914 - 11904: 0xC5D0, - 29915 - 11904: 0xF8B2, - 29916 - 11904: 0xA5CA, - 29917 - 11904: 0xCD6E, - 29918 - 11904: 0xD2BC, - 29919 - 11904: 0xD2BD, - 29920 - 11904: 0xB27D, - 29921 - 11904: 0xDEBF, - 29922 - 11904: 0xBF5D, - 29923 - 11904: 0xC3A4, - 29924 - 11904: 0xC57B, - 29925 - 11904: 0xF8B3, - 29926 - 11904: 0xA5CB, - 29927 - 11904: 0xA0D9, - 29928 - 11904: 0xCD6F, - 29929 - 11904: 0xFEAA, - 29932 - 11904: 0xCFD7, - 29934 - 11904: 0xCFD8, - 29936 - 11904: 0xA0BF, - 29937 - 11904: 0xA04D, - 29938 - 11904: 0xA0B8, - 29940 - 11904: 0xD2BE, - 29941 - 11904: 0xD2BF, - 29942 - 11904: 0xB27E, - 29943 - 11904: 0xB2A1, - 29944 - 11904: 0xA0CE, - 29947 - 11904: 0xDAAB, - 29949 - 11904: 0xDEC2, - 29950 - 11904: 0xDEC1, - 29951 - 11904: 0xDEC0, - 29952 - 11904: 0xE2D5, - 29954 - 11904: 0xE2D6, - 29955 - 11904: 0xE2D7, - 29956 - 11904: 0xBAC2, - 29957 - 11904: 0xA0B7, - 29959 - 11904: 0xE6AD, - 29960 - 11904: 0xE6AC, - 29963 - 11904: 0xEA69, - 29964 - 11904: 0xBF5E, - 29965 - 11904: 0xBF5F, - 29966 - 11904: 0xFEA9, - 29967 - 11904: 0xED72, - 29968 - 11904: 0xED6F, - 29969 - 11904: 0xED70, - 29970 - 11904: 0xED71, - 29971 - 11904: 0xF049, - 29972 - 11904: 0xF048, - 29973 - 11904: 0xC27C, - 29974 - 11904: 0xF277, - 29975 - 11904: 0xF5DE, - 29976 - 11904: 0xA5CC, - 29977 - 11904: 0x89C3, - 29978 - 11904: 0xACC6, - 29980 - 11904: 0xB2A2, - 29981 - 11904: 0xDEC3, - 29982 - 11904: 0xFEAB, - 29983 - 11904: 0xA5CD, - 29985 - 11904: 0xD2C0, - 29986 - 11904: 0xB2A3, - 29989 - 11904: 0xB563, - 29990 - 11904: 0xB564, - 29992 - 11904: 0xA5CE, - 29993 - 11904: 0xA5CF, - 29994 - 11904: 0xCA46, - 29995 - 11904: 0xA86A, - 29996 - 11904: 0xA869, - 29997 - 11904: 0xACC7, - 29998 - 11904: 0xCFD9, - 29999 - 11904: 0xDAAC, - 30000 - 11904: 0xA5D0, - 30001 - 11904: 0xA5D1, - 30002 - 11904: 0xA5D2, - 30003 - 11904: 0xA5D3, - 30004 - 11904: 0x9DF4, - 30005 - 11904: 0x896D, - 30007 - 11904: 0xA86B, - 30008 - 11904: 0xA86C, - 30009 - 11904: 0xCB6E, - 30010 - 11904: 0xCB6D, - 30011 - 11904: 0x9C7B, - 30013 - 11904: 0xAAB6, - 30014 - 11904: 0xCD72, - 30015 - 11904: 0xCD70, - 30016 - 11904: 0xCD71, - 30018 - 11904: 0x98D2, - 30022 - 11904: 0x9FA9, - 30023 - 11904: 0xCFDA, - 30024 - 11904: 0xCFDB, - 30026 - 11904: 0xFEB2, - 30027 - 11904: 0xACCB, - 30028 - 11904: 0xACC9, - 30029 - 11904: 0xFEB1, - 30030 - 11904: 0xACCA, - 30031 - 11904: 0xACC8, - 30033 - 11904: 0x97D9, - 30035 - 11904: 0xA0C4, - 30036 - 11904: 0xAF60, - 30037 - 11904: 0x9476, - 30041 - 11904: 0xAF64, - 30042 - 11904: 0xAF63, - 30043 - 11904: 0xD2C1, - 30044 - 11904: 0xAF62, - 30045 - 11904: 0xAF61, - 30047 - 11904: 0xD2C2, - 30048 - 11904: 0x9978, - 30050 - 11904: 0xB2A6, - 30051 - 11904: 0xD67B, - 30052 - 11904: 0xD67A, - 30053 - 11904: 0xB2A4, - 30054 - 11904: 0xB2A5, - 30055 - 11904: 0xFEB3, - 30058 - 11904: 0xB566, - 30059 - 11904: 0xB565, - 30060 - 11904: 0xDAAE, - 30061 - 11904: 0x98D3, - 30062 - 11904: 0xFEB4, - 30063 - 11904: 0xDAAD, - 30064 - 11904: 0xB2A7, - 30066 - 11904: 0x98D4, - 30070 - 11904: 0xB7ED, - 30071 - 11904: 0xDEC5, - 30072 - 11904: 0xB7EE, - 30073 - 11904: 0xDEC4, - 30074 - 11904: 0x9FB9, - 30077 - 11904: 0xE2D8, - 30078 - 11904: 0xE6AE, - 30079 - 11904: 0xBD42, - 30080 - 11904: 0xEA6A, - 30083 - 11904: 0x9471, - 30084 - 11904: 0xED73, - 30086 - 11904: 0xC3A6, - 30087 - 11904: 0xC3A5, - 30090 - 11904: 0xC57C, - 30091 - 11904: 0xA5D4, - 30092 - 11904: 0xCD73, - 30093 - 11904: 0x98D5, - 30094 - 11904: 0xFEB8, - 30095 - 11904: 0xB2A8, - 30096 - 11904: 0xE2D9, - 30097 - 11904: 0xBAC3, - 30098 - 11904: 0xC6D4, - 30100 - 11904: 0xCB6F, - 30101 - 11904: 0xCB70, - 30104 - 11904: 0xCD74, - 30105 - 11904: 0xAAB8, - 30106 - 11904: 0xAAB9, - 30109 - 11904: 0xAAB7, - 30110 - 11904: 0xFEBA, - 30114 - 11904: 0xACCF, - 30115 - 11904: 0xACD0, - 30116 - 11904: 0xACCD, - 30117 - 11904: 0xACCE, - 30119 - 11904: 0xCFDC, - 30122 - 11904: 0xCFDD, - 30123 - 11904: 0xACCC, - 30128 - 11904: 0xD2C3, - 30129 - 11904: 0x9E5C, - 30130 - 11904: 0xAF68, - 30131 - 11904: 0xAF69, - 30132 - 11904: 0xFEBB, - 30133 - 11904: 0xB2AB, - 30134 - 11904: 0xD2C9, - 30136 - 11904: 0xAF6E, - 30137 - 11904: 0xAF6C, - 30138 - 11904: 0xD2CA, - 30139 - 11904: 0xD2C5, - 30140 - 11904: 0xAF6B, - 30141 - 11904: 0xAF6A, - 30142 - 11904: 0xAF65, - 30143 - 11904: 0xD2C8, - 30144 - 11904: 0xD2C7, - 30145 - 11904: 0xD2C4, - 30146 - 11904: 0xAF6D, - 30147 - 11904: 0xA044, - 30148 - 11904: 0xD2C6, - 30149 - 11904: 0xAF66, - 30151 - 11904: 0xAF67, - 30152 - 11904: 0x98D7, - 30154 - 11904: 0xB2AC, - 30155 - 11904: 0xD6A1, - 30156 - 11904: 0xD6A2, - 30157 - 11904: 0xB2AD, - 30158 - 11904: 0xD67C, - 30159 - 11904: 0xD67E, - 30160 - 11904: 0xD6A4, - 30161 - 11904: 0xD6A3, - 30162 - 11904: 0xD67D, - 30164 - 11904: 0xB2A9, - 30165 - 11904: 0xB2AA, - 30167 - 11904: 0xDAB6, - 30168 - 11904: 0xB56B, - 30169 - 11904: 0xB56A, - 30170 - 11904: 0xDAB0, - 30171 - 11904: 0xB568, - 30172 - 11904: 0x98D8, - 30173 - 11904: 0xDAB3, - 30174 - 11904: 0xB56C, - 30175 - 11904: 0xDAB4, - 30176 - 11904: 0xB56D, - 30177 - 11904: 0xDAB1, - 30178 - 11904: 0xB567, - 30179 - 11904: 0xB569, - 30180 - 11904: 0xDAB5, - 30182 - 11904: 0xDAB2, - 30183 - 11904: 0xDAAF, - 30189 - 11904: 0xDED2, - 30191 - 11904: 0xDEC7, - 30192 - 11904: 0xB7F0, - 30193 - 11904: 0xB7F3, - 30194 - 11904: 0xB7F2, - 30195 - 11904: 0xB7F7, - 30196 - 11904: 0xB7F6, - 30197 - 11904: 0xDED3, - 30198 - 11904: 0xDED1, - 30199 - 11904: 0xDECA, - 30200 - 11904: 0xDECE, - 30201 - 11904: 0xDECD, - 30202 - 11904: 0xB7F4, - 30203 - 11904: 0xDED0, - 30204 - 11904: 0xDECC, - 30205 - 11904: 0xDED4, - 30206 - 11904: 0xDECB, - 30207 - 11904: 0xB7F5, - 30208 - 11904: 0xB7EF, - 30209 - 11904: 0xB7F1, - 30210 - 11904: 0xFEBC, - 30211 - 11904: 0xDEC9, - 30215 - 11904: 0x9FFE, - 30216 - 11904: 0xE2DB, - 30217 - 11904: 0xBAC7, - 30218 - 11904: 0xE2DF, - 30219 - 11904: 0xBAC6, - 30220 - 11904: 0xE2DC, - 30221 - 11904: 0xBAC5, - 30223 - 11904: 0xDEC8, - 30224 - 11904: 0xDECF, - 30225 - 11904: 0xE2DE, - 30227 - 11904: 0xBAC8, - 30228 - 11904: 0xE2E0, - 30229 - 11904: 0xE2DD, - 30230 - 11904: 0xE2DA, - 30233 - 11904: 0xE6B1, - 30234 - 11904: 0xE6B5, - 30235 - 11904: 0xE6B7, - 30236 - 11904: 0xE6B3, - 30237 - 11904: 0xE6B2, - 30238 - 11904: 0xE6B0, - 30239 - 11904: 0xBD45, - 30240 - 11904: 0xBD43, - 30241 - 11904: 0xBD48, - 30242 - 11904: 0xBD49, - 30243 - 11904: 0xE6B4, - 30244 - 11904: 0xBD46, - 30245 - 11904: 0xE6AF, - 30246 - 11904: 0xBD47, - 30247 - 11904: 0xBAC4, - 30248 - 11904: 0xE6B6, - 30249 - 11904: 0xBD44, - 30252 - 11904: 0xFEBD, - 30253 - 11904: 0xEA6C, - 30255 - 11904: 0xEA6B, - 30256 - 11904: 0xEA73, - 30257 - 11904: 0xEA6D, - 30258 - 11904: 0xEA72, - 30259 - 11904: 0xEA6F, - 30260 - 11904: 0xBF60, - 30261 - 11904: 0xEA71, - 30264 - 11904: 0xBF61, - 30266 - 11904: 0xBF62, - 30267 - 11904: 0x9DDD, - 30268 - 11904: 0xEA70, - 30269 - 11904: 0xEA6E, - 30272 - 11904: 0x9EE1, - 30274 - 11904: 0xC0F8, - 30275 - 11904: 0xED74, - 30278 - 11904: 0xC0F7, - 30279 - 11904: 0xED77, - 30280 - 11904: 0xED75, - 30281 - 11904: 0xED76, - 30284 - 11904: 0xC0F9, - 30285 - 11904: 0x98DA, - 30286 - 11904: 0x9DDF, - 30287 - 11904: 0xFEBF, - 30288 - 11904: 0xF04D, - 30289 - 11904: 0xFEBE, - 30290 - 11904: 0xC2A1, - 30291 - 11904: 0xF04E, - 30292 - 11904: 0x9EEB, - 30294 - 11904: 0xC27D, - 30295 - 11904: 0xF04F, - 30296 - 11904: 0xC27E, - 30297 - 11904: 0xF04C, - 30298 - 11904: 0xF050, - 30300 - 11904: 0xF04A, - 30303 - 11904: 0xC3A7, - 30304 - 11904: 0xF278, - 30305 - 11904: 0xC3A8, - 30306 - 11904: 0xC46F, - 30308 - 11904: 0xF04B, - 30309 - 11904: 0xC470, - 30310 - 11904: 0x9E59, - 30311 - 11904: 0xA05C, - 30313 - 11904: 0xC4EE, - 30314 - 11904: 0xF5DF, - 30316 - 11904: 0xC57E, - 30317 - 11904: 0xF6F4, - 30318 - 11904: 0xC57D, - 30319 - 11904: 0xFEC0, - 30320 - 11904: 0xF7EA, - 30321 - 11904: 0xC5F5, - 30322 - 11904: 0xC5F6, - 30323 - 11904: 0x9477, - 30324 - 11904: 0x98DC, - 30325 - 11904: 0xF9CC, - 30326 - 11904: 0xFEC1, - 30328 - 11904: 0xACD1, - 30329 - 11904: 0xCFDE, - 30330 - 11904: 0x98DE, - 30331 - 11904: 0xB56E, - 30332 - 11904: 0xB56F, - 30333 - 11904: 0xA5D5, - 30334 - 11904: 0xA6CA, - 30335 - 11904: 0xCA47, - 30337 - 11904: 0xCB71, - 30338 - 11904: 0xA86D, - 30340 - 11904: 0xAABA, - 30342 - 11904: 0xACD2, - 30343 - 11904: 0xACD3, - 30344 - 11904: 0xACD4, - 30345 - 11904: 0xD6A6, - 30346 - 11904: 0xD2CB, - 30347 - 11904: 0xAF6F, - 30350 - 11904: 0xB2AE, - 30351 - 11904: 0xD6A5, - 30352 - 11904: 0xFEC3, - 30354 - 11904: 0xDAB8, - 30355 - 11904: 0xB571, - 30357 - 11904: 0xDAB7, - 30358 - 11904: 0xB570, - 30361 - 11904: 0xDED5, - 30362 - 11904: 0xBD4A, - 30363 - 11904: 0xE6BB, - 30364 - 11904: 0xE6B8, - 30365 - 11904: 0xE6B9, - 30366 - 11904: 0xE6BA, - 30369 - 11904: 0xFEC8, - 30372 - 11904: 0xED78, - 30373 - 11904: 0xFEC9, - 30374 - 11904: 0xF051, - 30378 - 11904: 0xF471, - 30379 - 11904: 0xF470, - 30381 - 11904: 0xF6F5, - 30382 - 11904: 0xA5D6, - 30383 - 11904: 0xCD75, - 30384 - 11904: 0xAF70, - 30388 - 11904: 0xB572, - 30389 - 11904: 0xDED6, - 30391 - 11904: 0xFECA, - 30392 - 11904: 0xE2E1, - 30394 - 11904: 0xBD4B, - 30395 - 11904: 0xEA74, - 30397 - 11904: 0xF052, - 30398 - 11904: 0xF472, - 30399 - 11904: 0xA5D7, - 30402 - 11904: 0xAABB, - 30403 - 11904: 0xACD7, - 30404 - 11904: 0xCFDF, - 30405 - 11904: 0xACD8, - 30406 - 11904: 0xACD6, - 30408 - 11904: 0xACD5, - 30409 - 11904: 0xD2CC, - 30410 - 11904: 0xAF71, - 30412 - 11904: 0xFECB, - 30413 - 11904: 0xAF72, - 30414 - 11904: 0xAF73, - 30418 - 11904: 0xB2B0, - 30419 - 11904: 0xD6A7, - 30420 - 11904: 0xB2AF, - 30422 - 11904: 0x9FC2, - 30425 - 11904: 0x8C6B, - 30426 - 11904: 0xDAB9, - 30427 - 11904: 0xB2B1, - 30428 - 11904: 0xB573, - 30429 - 11904: 0xDED7, - 30430 - 11904: 0xB7F8, - 30431 - 11904: 0xB7F9, - 30433 - 11904: 0xBAC9, - 30435 - 11904: 0xBACA, - 30436 - 11904: 0xBD4C, - 30437 - 11904: 0xBF64, - 30438 - 11904: 0xEA75, - 30439 - 11904: 0xBF63, - 30441 - 11904: 0xED79, - 30442 - 11904: 0xC0FA, - 30444 - 11904: 0xF053, - 30445 - 11904: 0xF473, - 30446 - 11904: 0xA5D8, - 30447 - 11904: 0xA86E, - 30448 - 11904: 0xCD78, - 30449 - 11904: 0xCD77, - 30450 - 11904: 0xAABC, - 30451 - 11904: 0xCD76, - 30452 - 11904: 0xAABD, - 30453 - 11904: 0xCD79, - 30455 - 11904: 0xCFE5, - 30456 - 11904: 0xACDB, - 30457 - 11904: 0xACDA, - 30458 - 11904: 0xCFE7, - 30459 - 11904: 0xCFE6, - 30460 - 11904: 0xACDF, - 30462 - 11904: 0xACDE, - 30465 - 11904: 0xACD9, - 30467 - 11904: 0xCFE1, - 30468 - 11904: 0xCFE2, - 30469 - 11904: 0xCFE3, - 30471 - 11904: 0xACE0, - 30472 - 11904: 0xCFE0, - 30473 - 11904: 0xACDC, - 30474 - 11904: 0xCFE4, - 30475 - 11904: 0xACDD, - 30476 - 11904: 0x98C4, - 30478 - 11904: 0x94B0, - 30479 - 11904: 0x94B1, - 30480 - 11904: 0xD2CF, - 30481 - 11904: 0xD2D3, - 30482 - 11904: 0xD2D1, - 30483 - 11904: 0xD2D0, - 30485 - 11904: 0xD2D4, - 30489 - 11904: 0xD2D5, - 30490 - 11904: 0xD2D6, - 30491 - 11904: 0xD2CE, - 30493 - 11904: 0xD2CD, - 30494 - 11904: 0xFED1, - 30495 - 11904: 0xAF75, - 30496 - 11904: 0xAF76, - 30498 - 11904: 0xD2D7, - 30499 - 11904: 0xD2D2, - 30500 - 11904: 0xA0C1, - 30501 - 11904: 0xD6B0, - 30502 - 11904: 0xFED2, - 30503 - 11904: 0xD2D8, - 30504 - 11904: 0xAF77, - 30505 - 11904: 0xAF74, - 30507 - 11904: 0xA0CD, - 30509 - 11904: 0xD6AA, - 30511 - 11904: 0xD6A9, - 30513 - 11904: 0xD6AB, - 30514 - 11904: 0xD6AC, - 30515 - 11904: 0xD6AE, - 30516 - 11904: 0xD6AD, - 30517 - 11904: 0xD6B2, - 30518 - 11904: 0xB2B5, - 30519 - 11904: 0xB2B2, - 30520 - 11904: 0xB2B6, - 30521 - 11904: 0xD6A8, - 30522 - 11904: 0xB2B7, - 30523 - 11904: 0xD6B1, - 30524 - 11904: 0xB2B4, - 30525 - 11904: 0xD6AF, - 30526 - 11904: 0xB2B3, - 30528 - 11904: 0xFED3, - 30531 - 11904: 0x98E5, - 30532 - 11904: 0xDABC, - 30533 - 11904: 0xDABE, - 30534 - 11904: 0xDABA, - 30535 - 11904: 0xDABB, - 30538 - 11904: 0xDABF, - 30539 - 11904: 0xDAC1, - 30540 - 11904: 0xDAC2, - 30541 - 11904: 0xDABD, - 30542 - 11904: 0xDAC0, - 30543 - 11904: 0xB574, - 30546 - 11904: 0xDEDB, - 30548 - 11904: 0xDEE0, - 30549 - 11904: 0xDED8, - 30550 - 11904: 0xDEDC, - 30552 - 11904: 0xFED6, - 30553 - 11904: 0xDEE1, - 30554 - 11904: 0xDEDD, - 30555 - 11904: 0xB7FA, - 30556 - 11904: 0xB843, - 30558 - 11904: 0xB7FD, - 30559 - 11904: 0xDED9, - 30560 - 11904: 0xDEDA, - 30561 - 11904: 0xBACE, - 30562 - 11904: 0xB846, - 30563 - 11904: 0xB7FE, - 30565 - 11904: 0xB844, - 30566 - 11904: 0xB7FC, - 30567 - 11904: 0xDEDF, - 30568 - 11904: 0xB845, - 30569 - 11904: 0xDEDE, - 30570 - 11904: 0xB841, - 30571 - 11904: 0xB7FB, - 30572 - 11904: 0xB842, - 30573 - 11904: 0xDEE2, - 30574 - 11904: 0xE2E6, - 30575 - 11904: 0xE2E8, - 30578 - 11904: 0x91E4, - 30583 - 11904: 0x8FC7, - 30584 - 11904: 0x94AE, - 30585 - 11904: 0xB840, - 30586 - 11904: 0x8A4F, - 30587 - 11904: 0x94B2, - 30588 - 11904: 0xE2E3, - 30589 - 11904: 0xBACC, - 30590 - 11904: 0xE2E9, - 30591 - 11904: 0xBACD, - 30592 - 11904: 0xE2E7, - 30593 - 11904: 0xE2E2, - 30594 - 11904: 0xE2E5, - 30595 - 11904: 0xE2EA, - 30596 - 11904: 0xBACB, - 30597 - 11904: 0xE2E4, - 30599 - 11904: 0xBD4E, - 30600 - 11904: 0xE6BF, - 30601 - 11904: 0xE6BE, - 30603 - 11904: 0xBD51, - 30604 - 11904: 0xBD4F, - 30605 - 11904: 0xE6BC, - 30606 - 11904: 0xBD4D, - 30607 - 11904: 0xE6BD, - 30609 - 11904: 0xBD50, - 30611 - 11904: 0x8FD4, - 30613 - 11904: 0xEA7D, - 30615 - 11904: 0xEAA1, - 30616 - 11904: 0x98EA, - 30617 - 11904: 0xEA7E, - 30618 - 11904: 0xEA76, - 30619 - 11904: 0xEA7A, - 30620 - 11904: 0xEA79, - 30621 - 11904: 0xEA77, - 30622 - 11904: 0xBF66, - 30623 - 11904: 0xBF67, - 30624 - 11904: 0xBF65, - 30625 - 11904: 0xEA78, - 30626 - 11904: 0xEA7B, - 30627 - 11904: 0xEA7C, - 30629 - 11904: 0xBF68, - 30631 - 11904: 0xC140, - 30632 - 11904: 0xEDA3, - 30634 - 11904: 0xC0FC, - 30635 - 11904: 0xED7B, - 30636 - 11904: 0xC0FE, - 30637 - 11904: 0xC141, - 30639 - 11904: 0xFED8, - 30640 - 11904: 0xC0FD, - 30641 - 11904: 0xEDA2, - 30642 - 11904: 0xED7C, - 30643 - 11904: 0xC0FB, - 30644 - 11904: 0xEDA1, - 30645 - 11904: 0xED7A, - 30646 - 11904: 0xED7E, - 30647 - 11904: 0xED7D, - 30649 - 11904: 0x9DE0, - 30650 - 11904: 0xF055, - 30651 - 11904: 0xC2A4, - 30652 - 11904: 0xC2A5, - 30653 - 11904: 0xC2A2, - 30654 - 11904: 0x98EE, - 30655 - 11904: 0xC2A3, - 30658 - 11904: 0xF054, - 30659 - 11904: 0x95C4, - 30660 - 11904: 0xF27B, - 30661 - 11904: 0xFCE8, - 30663 - 11904: 0xC3A9, - 30665 - 11904: 0xF279, - 30666 - 11904: 0xF27A, - 30667 - 11904: 0x98EF, - 30668 - 11904: 0xF474, - 30669 - 11904: 0xF477, - 30670 - 11904: 0xF475, - 30671 - 11904: 0xF476, - 30672 - 11904: 0xF5E0, - 30675 - 11904: 0xC4EF, - 30676 - 11904: 0xF7EB, - 30677 - 11904: 0xF8B4, - 30679 - 11904: 0xC5F7, - 30680 - 11904: 0xF8F8, - 30681 - 11904: 0xF8F9, - 30682 - 11904: 0xC666, - 30683 - 11904: 0xA5D9, - 30684 - 11904: 0xACE1, - 30685 - 11904: 0x8C6E, - 30686 - 11904: 0xDAC3, - 30688 - 11904: 0xDEE3, - 30690 - 11904: 0xA5DA, - 30691 - 11904: 0xA86F, - 30693 - 11904: 0xAABE, - 30694 - 11904: 0xFAD8, - 30695 - 11904: 0xCFE8, - 30696 - 11904: 0xCFE9, - 30697 - 11904: 0xAF78, - 30700 - 11904: 0xDAC4, - 30701 - 11904: 0xB575, - 30702 - 11904: 0xB847, - 30703 - 11904: 0xC142, - 30704 - 11904: 0xEDA4, - 30705 - 11904: 0xF27C, - 30706 - 11904: 0xF478, - 30707 - 11904: 0xA5DB, - 30708 - 11904: 0xFEDC, - 30711 - 11904: 0xCDA1, - 30712 - 11904: 0xCD7A, - 30713 - 11904: 0xCD7C, - 30714 - 11904: 0xCD7E, - 30715 - 11904: 0xCD7D, - 30716 - 11904: 0xCD7B, - 30717 - 11904: 0xAABF, - 30718 - 11904: 0xA0AE, - 30722 - 11904: 0xACE2, - 30723 - 11904: 0xCFF2, - 30725 - 11904: 0xCFED, - 30726 - 11904: 0xCFEA, - 30728 - 11904: 0x9D4C, - 30729 - 11904: 0xFEDD, - 30732 - 11904: 0xACE4, - 30733 - 11904: 0xACE5, - 30734 - 11904: 0xCFF0, - 30735 - 11904: 0xCFEF, - 30736 - 11904: 0xCFEE, - 30737 - 11904: 0xCFEB, - 30738 - 11904: 0xCFEC, - 30739 - 11904: 0xCFF3, - 30740 - 11904: 0xACE3, - 30744 - 11904: 0x98F1, - 30748 - 11904: 0x98F3, - 30749 - 11904: 0xAF7C, - 30750 - 11904: 0x94C1, - 30751 - 11904: 0xAFA4, - 30752 - 11904: 0xAFA3, - 30753 - 11904: 0xD2E1, - 30754 - 11904: 0xD2DB, - 30755 - 11904: 0xD2D9, - 30757 - 11904: 0xAFA1, - 30758 - 11904: 0xD6B9, - 30759 - 11904: 0xAF7A, - 30760 - 11904: 0xD2DE, - 30761 - 11904: 0xD2E2, - 30762 - 11904: 0xD2E4, - 30763 - 11904: 0xD2E0, - 30764 - 11904: 0xD2DA, - 30765 - 11904: 0xAFA2, - 30766 - 11904: 0xD2DF, - 30767 - 11904: 0xD2DD, - 30768 - 11904: 0xAF79, - 30769 - 11904: 0xD2E5, - 30770 - 11904: 0xAFA5, - 30771 - 11904: 0xD2E3, - 30772 - 11904: 0xAF7D, - 30773 - 11904: 0xD2DC, - 30775 - 11904: 0xAF7E, - 30776 - 11904: 0xAF7B, - 30777 - 11904: 0x98F5, - 30780 - 11904: 0xFA4F, - 30781 - 11904: 0x96E2, - 30786 - 11904: 0x9450, - 30787 - 11904: 0xB2B9, - 30788 - 11904: 0x96A2, - 30789 - 11904: 0xD6BA, - 30791 - 11904: 0x98F6, - 30792 - 11904: 0xD6B3, - 30793 - 11904: 0xD6B5, - 30794 - 11904: 0xD6B7, - 30795 - 11904: 0x96E5, - 30796 - 11904: 0xD6B8, - 30797 - 11904: 0xD6B6, - 30798 - 11904: 0xB2BA, - 30800 - 11904: 0xD6BB, - 30801 - 11904: 0x98F7, - 30802 - 11904: 0xD6B4, - 30803 - 11904: 0xA046, - 30804 - 11904: 0x96E3, - 30812 - 11904: 0xDAC8, - 30813 - 11904: 0xB576, - 30814 - 11904: 0xDAD0, - 30816 - 11904: 0xDAC5, - 30818 - 11904: 0xDAD1, - 30820 - 11904: 0xDAC6, - 30821 - 11904: 0xDAC7, - 30822 - 11904: 0x98F8, - 30824 - 11904: 0xDACF, - 30825 - 11904: 0xDACE, - 30826 - 11904: 0xDACB, - 30827 - 11904: 0xB2B8, - 30828 - 11904: 0xB577, - 30829 - 11904: 0xDAC9, - 30830 - 11904: 0xDACC, - 30831 - 11904: 0xB578, - 30832 - 11904: 0xDACD, - 30833 - 11904: 0xDACA, - 30841 - 11904: 0xDEEE, - 30842 - 11904: 0x9EE4, - 30843 - 11904: 0xDEF2, - 30844 - 11904: 0xB84E, - 30846 - 11904: 0xE2F0, - 30847 - 11904: 0xB851, - 30848 - 11904: 0xDEF0, - 30849 - 11904: 0xF9D6, - 30851 - 11904: 0xDEED, - 30852 - 11904: 0xDEE8, - 30853 - 11904: 0xDEEA, - 30854 - 11904: 0xDEEB, - 30855 - 11904: 0xDEE4, - 30856 - 11904: 0x94C3, - 30857 - 11904: 0xB84D, - 30860 - 11904: 0xB84C, - 30861 - 11904: 0x94C2, - 30862 - 11904: 0xB848, - 30863 - 11904: 0xDEE7, - 30865 - 11904: 0xB84F, - 30867 - 11904: 0xB850, - 30868 - 11904: 0xDEE6, - 30869 - 11904: 0xDEE9, - 30870 - 11904: 0xDEF1, - 30871 - 11904: 0xB84A, - 30872 - 11904: 0xB84B, - 30873 - 11904: 0xDEEF, - 30874 - 11904: 0xDEE5, - 30878 - 11904: 0xE2F2, - 30879 - 11904: 0xBAD0, - 30880 - 11904: 0xE2F4, - 30881 - 11904: 0xDEEC, - 30882 - 11904: 0xE2F6, - 30883 - 11904: 0xBAD4, - 30884 - 11904: 0xE2F7, - 30885 - 11904: 0xE2F3, - 30887 - 11904: 0xBAD1, - 30888 - 11904: 0xE2EF, - 30889 - 11904: 0xBAD3, - 30890 - 11904: 0xE2EC, - 30891 - 11904: 0xE2F1, - 30892 - 11904: 0xE2F5, - 30893 - 11904: 0xE2EE, - 30895 - 11904: 0xFEE1, - 30896 - 11904: 0xB849, - 30897 - 11904: 0xFEE9, - 30898 - 11904: 0xE2EB, - 30899 - 11904: 0xBAD2, - 30900 - 11904: 0xE2ED, - 30902 - 11904: 0x96E4, - 30904 - 11904: 0x89AC, - 30905 - 11904: 0x96DB, - 30906 - 11904: 0xBD54, - 30907 - 11904: 0xE6C1, - 30908 - 11904: 0xBD58, - 30910 - 11904: 0xBD56, - 30913 - 11904: 0xBACF, - 30915 - 11904: 0xE6C8, - 30916 - 11904: 0xE6C9, - 30917 - 11904: 0xBD53, - 30919 - 11904: 0xFEE2, - 30920 - 11904: 0xE6C7, - 30921 - 11904: 0xE6CA, - 30922 - 11904: 0xBD55, - 30923 - 11904: 0xBD52, - 30924 - 11904: 0xE6C3, - 30925 - 11904: 0xE6C0, - 30926 - 11904: 0xE6C5, - 30927 - 11904: 0xE6C2, - 30928 - 11904: 0xBD59, - 30929 - 11904: 0xE6C4, - 30930 - 11904: 0x94C4, - 30931 - 11904: 0xFEE3, - 30932 - 11904: 0xE6C6, - 30933 - 11904: 0xBD57, - 30935 - 11904: 0xFEE7, - 30936 - 11904: 0x9FFB, - 30938 - 11904: 0xBF6A, - 30939 - 11904: 0xEAA8, - 30941 - 11904: 0xEAA2, - 30942 - 11904: 0xEAA6, - 30943 - 11904: 0xEAAC, - 30944 - 11904: 0xEAAD, - 30945 - 11904: 0xEAA9, - 30946 - 11904: 0xEAAA, - 30947 - 11904: 0xEAA7, - 30948 - 11904: 0x8C59, - 30949 - 11904: 0xEAA4, - 30951 - 11904: 0xBF6C, - 30952 - 11904: 0xBF69, - 30953 - 11904: 0xEAA3, - 30954 - 11904: 0xEAA5, - 30956 - 11904: 0xBF6B, - 30957 - 11904: 0xEAAB, - 30958 - 11904: 0x93C9, - 30959 - 11904: 0xC146, - 30960 - 11904: 0x94E8, - 30961 - 11904: 0xFB56, - 30962 - 11904: 0xEDAA, - 30963 - 11904: 0xEDA5, - 30964 - 11904: 0xC145, - 30965 - 11904: 0x90C5, - 30967 - 11904: 0xC143, - 30969 - 11904: 0xEDAC, - 30970 - 11904: 0xC144, - 30971 - 11904: 0xEDA8, - 30972 - 11904: 0xEDA9, - 30973 - 11904: 0xEDA6, - 30974 - 11904: 0xEDAD, - 30975 - 11904: 0xF056, - 30977 - 11904: 0xC147, - 30978 - 11904: 0xEDA7, - 30980 - 11904: 0xEDAE, - 30981 - 11904: 0xEDAB, - 30982 - 11904: 0xA0A8, - 30985 - 11904: 0xF05A, - 30988 - 11904: 0xF057, - 30990 - 11904: 0xC2A6, - 30992 - 11904: 0xF05B, - 30993 - 11904: 0xF05D, - 30994 - 11904: 0xF05C, - 30995 - 11904: 0xF058, - 30996 - 11904: 0xF059, - 30999 - 11904: 0xF2A3, - 31001 - 11904: 0xC3AA, - 31003 - 11904: 0xF27E, - 31004 - 11904: 0xF2A2, - 31005 - 11904: 0xF27D, - 31006 - 11904: 0xF2A4, - 31009 - 11904: 0xF2A1, - 31011 - 11904: 0xF47A, - 31012 - 11904: 0xF47D, - 31013 - 11904: 0xF479, - 31014 - 11904: 0xC471, - 31015 - 11904: 0xF47B, - 31016 - 11904: 0xF47C, - 31017 - 11904: 0xF47E, - 31018 - 11904: 0xC472, - 31019 - 11904: 0xC474, - 31020 - 11904: 0xC473, - 31021 - 11904: 0xF5E1, - 31022 - 11904: 0xFEE5, - 31023 - 11904: 0xF5E3, - 31025 - 11904: 0xF5E2, - 31026 - 11904: 0x98FD, - 31027 - 11904: 0x98FB, - 31028 - 11904: 0xFEE8, - 31029 - 11904: 0xF6F6, - 31030 - 11904: 0x8EBF, - 31032 - 11904: 0xF8B5, - 31033 - 11904: 0xF8FA, - 31034 - 11904: 0xA5DC, - 31035 - 11904: 0x8BD8, - 31036 - 11904: 0xFEF7, - 31037 - 11904: 0xCB72, - 31038 - 11904: 0xAAC0, - 31039 - 11904: 0xCDA3, - 31040 - 11904: 0xAAC1, - 31041 - 11904: 0xAAC2, - 31042 - 11904: 0xCDA2, - 31044 - 11904: 0xCFF8, - 31045 - 11904: 0xCFF7, - 31046 - 11904: 0xACE6, - 31047 - 11904: 0xACE9, - 31048 - 11904: 0xACE8, - 31049 - 11904: 0xACE7, - 31050 - 11904: 0xCFF4, - 31051 - 11904: 0xCFF6, - 31052 - 11904: 0xCFF5, - 31055 - 11904: 0xD2E8, - 31056 - 11904: 0xAFA7, - 31057 - 11904: 0xD2EC, - 31058 - 11904: 0xD2EB, - 31059 - 11904: 0xD2EA, - 31060 - 11904: 0xD2E6, - 31061 - 11904: 0xAFA6, - 31062 - 11904: 0xAFAA, - 31063 - 11904: 0xAFAD, - 31064 - 11904: 0x8F68, - 31065 - 11904: 0x94C6, - 31066 - 11904: 0xAFAE, - 31067 - 11904: 0xD2E7, - 31068 - 11904: 0xD2E9, - 31069 - 11904: 0xAFAC, - 31070 - 11904: 0xAFAB, - 31071 - 11904: 0xAFA9, - 31072 - 11904: 0xAFA8, - 31073 - 11904: 0xD6C2, - 31074 - 11904: 0x9DEA, - 31075 - 11904: 0xD6C0, - 31076 - 11904: 0xD6BC, - 31077 - 11904: 0xB2BB, - 31079 - 11904: 0xD6BD, - 31080 - 11904: 0xB2BC, - 31081 - 11904: 0xD6BE, - 31082 - 11904: 0xD6BF, - 31083 - 11904: 0xD6C1, - 31085 - 11904: 0xB2BD, - 31088 - 11904: 0xDAD5, - 31089 - 11904: 0xFC69, - 31090 - 11904: 0xDAD4, - 31091 - 11904: 0xDAD3, - 31092 - 11904: 0xDAD2, - 31097 - 11904: 0xDEF6, - 31098 - 11904: 0xB852, - 31100 - 11904: 0xDEF3, - 31101 - 11904: 0xDEF5, - 31102 - 11904: 0x9CDA, - 31103 - 11904: 0xB853, - 31104 - 11904: 0xFEF3, - 31105 - 11904: 0xB854, - 31106 - 11904: 0xDEF4, - 31107 - 11904: 0x9C72, - 31110 - 11904: 0xFEF0, - 31111 - 11904: 0x89C9, - 31112 - 11904: 0xE341, - 31114 - 11904: 0xE2F9, - 31115 - 11904: 0xE2FA, - 31117 - 11904: 0xBAD7, - 31118 - 11904: 0xBAD5, - 31119 - 11904: 0xBAD6, - 31120 - 11904: 0xE343, - 31121 - 11904: 0x9941, - 31122 - 11904: 0xE342, - 31123 - 11904: 0xE2FE, - 31124 - 11904: 0xE2FD, - 31125 - 11904: 0xE2FC, - 31126 - 11904: 0xE2FB, - 31127 - 11904: 0xE340, - 31128 - 11904: 0xE2F8, - 31129 - 11904: 0x9942, - 31130 - 11904: 0xE6CB, - 31131 - 11904: 0xE6D0, - 31132 - 11904: 0xE6CE, - 31133 - 11904: 0xFEF5, - 31135 - 11904: 0x91D7, - 31136 - 11904: 0xE6CD, - 31137 - 11904: 0xE6CC, - 31138 - 11904: 0xE6CF, - 31140 - 11904: 0xEAAE, - 31141 - 11904: 0x94CC, - 31142 - 11904: 0xBF6D, - 31143 - 11904: 0xC148, - 31144 - 11904: 0xEDB0, - 31145 - 11904: 0xFEF8, - 31146 - 11904: 0xC149, - 31147 - 11904: 0xEDAF, - 31148 - 11904: 0xF05F, - 31149 - 11904: 0xF05E, - 31150 - 11904: 0xC2A7, - 31152 - 11904: 0xF2A5, - 31153 - 11904: 0xC3AB, - 31154 - 11904: 0xF4A1, - 31155 - 11904: 0xC5A1, - 31156 - 11904: 0xF6F7, - 31158 - 11904: 0xF8B7, - 31159 - 11904: 0xF8B6, - 31160 - 11904: 0xC9A8, - 31161 - 11904: 0xACEA, - 31162 - 11904: 0xACEB, - 31163 - 11904: 0xD6C3, - 31165 - 11904: 0xB856, - 31166 - 11904: 0xA5DD, - 31167 - 11904: 0xA872, - 31168 - 11904: 0xA871, - 31169 - 11904: 0xA870, - 31172 - 11904: 0x97A8, - 31173 - 11904: 0xCDA4, - 31174 - 11904: 0xFEFC, - 31176 - 11904: 0xAAC4, - 31177 - 11904: 0xAAC3, - 31178 - 11904: 0x8CDE, - 31179 - 11904: 0xACEE, - 31180 - 11904: 0xFDBF, - 31181 - 11904: 0xCFFA, - 31182 - 11904: 0xCFFD, - 31183 - 11904: 0xCFFB, - 31184 - 11904: 0x87B3, - 31185 - 11904: 0xACEC, - 31186 - 11904: 0xACED, - 31188 - 11904: 0xFEFE, - 31189 - 11904: 0xCFF9, - 31190 - 11904: 0xCFFC, - 31192 - 11904: 0xAFB5, - 31196 - 11904: 0xD2F3, - 31197 - 11904: 0xD2F5, - 31198 - 11904: 0xD2F4, - 31199 - 11904: 0xAFB2, - 31200 - 11904: 0xD2EF, - 31202 - 11904: 0x96D1, - 31203 - 11904: 0xAFB0, - 31204 - 11904: 0xAFAF, - 31206 - 11904: 0xAFB3, - 31207 - 11904: 0xAFB1, - 31209 - 11904: 0xAFB4, - 31210 - 11904: 0xD2F2, - 31211 - 11904: 0xD2ED, - 31212 - 11904: 0xD2EE, - 31213 - 11904: 0xD2F1, - 31214 - 11904: 0xD2F0, - 31217 - 11904: 0x94D5, - 31220 - 11904: 0x94D0, - 31222 - 11904: 0xD6C6, - 31223 - 11904: 0xD6C7, - 31224 - 11904: 0xD6C5, - 31226 - 11904: 0xD6C4, - 31227 - 11904: 0xB2BE, - 31232 - 11904: 0xB57D, - 31234 - 11904: 0xDAD6, - 31235 - 11904: 0xDAD8, - 31236 - 11904: 0xDADA, - 31237 - 11904: 0xB57C, - 31238 - 11904: 0x9944, - 31240 - 11904: 0xB57A, - 31242 - 11904: 0xDAD7, - 31243 - 11904: 0xB57B, - 31244 - 11904: 0xDAD9, - 31245 - 11904: 0xB579, - 31248 - 11904: 0xDF41, - 31249 - 11904: 0xDEF7, - 31250 - 11904: 0xDEFA, - 31251 - 11904: 0xDEFE, - 31252 - 11904: 0xB85A, - 31253 - 11904: 0xDEFC, - 31255 - 11904: 0xDEFB, - 31256 - 11904: 0xDEF8, - 31257 - 11904: 0xDEF9, - 31258 - 11904: 0xB858, - 31259 - 11904: 0xDF40, - 31260 - 11904: 0xB857, - 31262 - 11904: 0xB85C, - 31263 - 11904: 0xB85B, - 31264 - 11904: 0xB859, - 31266 - 11904: 0xDEFD, - 31270 - 11904: 0xE349, - 31272 - 11904: 0xE348, - 31274 - 11904: 0x8C63, - 31275 - 11904: 0xE344, - 31276 - 11904: 0x87BB, - 31277 - 11904: 0xA0B3, - 31278 - 11904: 0xBAD8, - 31279 - 11904: 0xE347, - 31280 - 11904: 0xE346, - 31281 - 11904: 0xBAD9, - 31282 - 11904: 0x87B4, - 31287 - 11904: 0xBD5E, - 31289 - 11904: 0xE6D2, - 31290 - 11904: 0x94CF, - 31291 - 11904: 0xBD5F, - 31292 - 11904: 0xBD5B, - 31293 - 11904: 0xBD5D, - 31294 - 11904: 0x9FFA, - 31295 - 11904: 0xBD5A, - 31296 - 11904: 0xBD5C, - 31299 - 11904: 0x91E5, - 31300 - 11904: 0xEAAF, - 31301 - 11904: 0x9C6A, - 31302 - 11904: 0xBF70, - 31303 - 11904: 0xEAB1, - 31304 - 11904: 0xEAB0, - 31305 - 11904: 0x8E49, - 31306 - 11904: 0xE345, - 31307 - 11904: 0xBF72, - 31308 - 11904: 0xBF71, - 31309 - 11904: 0xBF6E, - 31310 - 11904: 0xBF6F, - 31316 - 11904: 0xEDB5, - 31318 - 11904: 0xEDB3, - 31319 - 11904: 0xC14A, - 31320 - 11904: 0xEDB4, - 31322 - 11904: 0xEDB6, - 31323 - 11904: 0xEDB2, - 31324 - 11904: 0xEDB1, - 31327 - 11904: 0xF060, - 31328 - 11904: 0xC2AA, - 31329 - 11904: 0xC2A8, - 31330 - 11904: 0xC2A9, - 31333 - 11904: 0x8E4C, - 31335 - 11904: 0xF2A6, - 31336 - 11904: 0xF2A7, - 31337 - 11904: 0xC3AD, - 31339 - 11904: 0xC3AC, - 31340 - 11904: 0xF4A3, - 31341 - 11904: 0xF4A4, - 31342 - 11904: 0xF4A2, - 31344 - 11904: 0xF6F8, - 31345 - 11904: 0xF6F9, - 31346 - 11904: 0x87C9, - 31348 - 11904: 0xA5DE, - 31349 - 11904: 0xCA48, - 31350 - 11904: 0xA873, - 31352 - 11904: 0xCDA5, - 31353 - 11904: 0xAAC6, - 31354 - 11904: 0xAAC5, - 31355 - 11904: 0xCDA6, - 31357 - 11904: 0x8E4D, - 31358 - 11904: 0xD040, - 31359 - 11904: 0xACEF, - 31360 - 11904: 0xCFFE, - 31361 - 11904: 0xACF0, - 31363 - 11904: 0x9A73, - 31364 - 11904: 0xAFB6, - 31365 - 11904: 0xD2F8, - 31366 - 11904: 0xD2F6, - 31367 - 11904: 0xD2FC, - 31368 - 11904: 0xAFB7, - 31369 - 11904: 0xD2F7, - 31370 - 11904: 0xD2FB, - 31371 - 11904: 0xD2F9, - 31372 - 11904: 0xD2FA, - 31375 - 11904: 0xD6C8, - 31376 - 11904: 0xD6CA, - 31377 - 11904: 0x9947, - 31378 - 11904: 0xB2BF, - 31379 - 11904: 0x8CB1, - 31380 - 11904: 0xD6C9, - 31381 - 11904: 0xB2C0, - 31382 - 11904: 0xB5A2, - 31383 - 11904: 0xB5A1, - 31384 - 11904: 0xB57E, - 31385 - 11904: 0xDADB, - 31390 - 11904: 0xDF44, - 31391 - 11904: 0xB85D, - 31392 - 11904: 0xB85E, - 31394 - 11904: 0xDF43, - 31395 - 11904: 0xDF42, - 31400 - 11904: 0xE34A, - 31401 - 11904: 0xBADB, - 31402 - 11904: 0xBADA, - 31403 - 11904: 0xE34B, - 31404 - 11904: 0xE34C, - 31406 - 11904: 0xBD61, - 31407 - 11904: 0xBD60, - 31408 - 11904: 0x8E50, - 31409 - 11904: 0xEAB5, - 31410 - 11904: 0xE6D3, - 31411 - 11904: 0xE6D5, - 31412 - 11904: 0xE6D4, - 31413 - 11904: 0xEAB4, - 31414 - 11904: 0xEAB2, - 31415 - 11904: 0xEAB6, - 31416 - 11904: 0xEAB3, - 31418 - 11904: 0xBF73, - 31419 - 11904: 0x8E4F, - 31420 - 11904: 0x9949, - 31422 - 11904: 0xEDB7, - 31423 - 11904: 0xC14B, - 31424 - 11904: 0xEDB8, - 31425 - 11904: 0xEDB9, - 31426 - 11904: 0x8E51, - 31427 - 11904: 0x8E52, - 31428 - 11904: 0xC2AB, - 31429 - 11904: 0xC2AC, - 31431 - 11904: 0xC475, - 31432 - 11904: 0x9AB2, - 31433 - 11904: 0x89A5, - 31434 - 11904: 0xC5D1, - 31435 - 11904: 0xA5DF, - 31439 - 11904: 0x994C, - 31441 - 11904: 0xD041, - 31443 - 11904: 0x9FF8, - 31448 - 11904: 0xD2FD, - 31449 - 11904: 0xAFB8, - 31450 - 11904: 0x8E56, - 31451 - 11904: 0x994D, - 31452 - 11904: 0x91CA, - 31453 - 11904: 0x8E57, - 31455 - 11904: 0xB3BA, - 31456 - 11904: 0xB3B9, - 31458 - 11904: 0x94E1, - 31459 - 11904: 0xB5A4, - 31460 - 11904: 0xDADD, - 31461 - 11904: 0xB5A3, - 31462 - 11904: 0xDADC, - 31463 - 11904: 0x9047, - 31465 - 11904: 0x8FD8, - 31466 - 11904: 0x8E58, - 31467 - 11904: 0xDF45, - 31469 - 11904: 0xBADC, - 31470 - 11904: 0xE34D, - 31471 - 11904: 0xBADD, - 31478 - 11904: 0xC476, - 31479 - 11904: 0xF4A5, - 31481 - 11904: 0xA6CB, - 31482 - 11904: 0xAAC7, - 31483 - 11904: 0xCDA7, - 31484 - 11904: 0x87A3, - 31485 - 11904: 0xACF2, - 31486 - 11904: 0x94EB, - 31487 - 11904: 0xACF1, - 31488 - 11904: 0xD042, - 31489 - 11904: 0xD043, - 31492 - 11904: 0xD340, - 31493 - 11904: 0xD342, - 31494 - 11904: 0xAFB9, - 31496 - 11904: 0xD344, - 31497 - 11904: 0xD347, - 31498 - 11904: 0xD345, - 31499 - 11904: 0x8E5C, - 31500 - 11904: 0x9553, - 31502 - 11904: 0xD346, - 31503 - 11904: 0xD343, - 31504 - 11904: 0xD2FE, - 31505 - 11904: 0xAFBA, - 31506 - 11904: 0xD348, - 31507 - 11904: 0xD341, - 31508 - 11904: 0x9FE5, - 31512 - 11904: 0xD6D3, - 31513 - 11904: 0xB2C6, - 31514 - 11904: 0xD6DC, - 31515 - 11904: 0xB2C3, - 31517 - 11904: 0xD6D5, - 31518 - 11904: 0xB2C7, - 31519 - 11904: 0x9F56, - 31520 - 11904: 0xB2C1, - 31522 - 11904: 0xD6D0, - 31523 - 11904: 0xD6DD, - 31524 - 11904: 0xD6D1, - 31525 - 11904: 0xD6CE, - 31526 - 11904: 0xB2C5, - 31527 - 11904: 0x954F, - 31528 - 11904: 0xB2C2, - 31529 - 11904: 0x8E5E, - 31530 - 11904: 0xD6D4, - 31531 - 11904: 0xD6D7, - 31532 - 11904: 0xB2C4, - 31533 - 11904: 0xD6D8, - 31534 - 11904: 0xB2C8, - 31535 - 11904: 0xD6D9, - 31536 - 11904: 0xD6CF, - 31537 - 11904: 0xD6D6, - 31538 - 11904: 0xD6DA, - 31539 - 11904: 0xD6D2, - 31540 - 11904: 0xD6CD, - 31541 - 11904: 0xD6CB, - 31544 - 11904: 0xD6DB, - 31545 - 11904: 0x996A, - 31547 - 11904: 0xDADF, - 31552 - 11904: 0xDAE4, - 31554 - 11904: 0x9C64, - 31555 - 11904: 0x9CD9, - 31556 - 11904: 0xDAE0, - 31557 - 11904: 0xDAE6, - 31558 - 11904: 0xB5A7, - 31559 - 11904: 0xD6CC, - 31560 - 11904: 0xDAE1, - 31561 - 11904: 0xB5A5, - 31562 - 11904: 0xDADE, - 31563 - 11904: 0xB5AC, - 31564 - 11904: 0xDAE2, - 31565 - 11904: 0xB5AB, - 31566 - 11904: 0xDAE3, - 31567 - 11904: 0xB5AD, - 31568 - 11904: 0xB5A8, - 31569 - 11904: 0xB5AE, - 31570 - 11904: 0xB5A9, - 31572 - 11904: 0xB5AA, - 31573 - 11904: 0x8E5D, - 31574 - 11904: 0xB5A6, - 31576 - 11904: 0xDAE5, - 31584 - 11904: 0xB861, - 31585 - 11904: 0xDF50, - 31586 - 11904: 0x9950, - 31587 - 11904: 0xDF53, - 31588 - 11904: 0xDF47, - 31589 - 11904: 0xDF4C, - 31590 - 11904: 0xDF46, - 31591 - 11904: 0xB863, - 31593 - 11904: 0xDF4A, - 31596 - 11904: 0x9951, - 31597 - 11904: 0xDF48, - 31598 - 11904: 0xB862, - 31599 - 11904: 0x8E62, - 31600 - 11904: 0xDF4F, - 31601 - 11904: 0xDF4E, - 31602 - 11904: 0xDF4B, - 31603 - 11904: 0xDF4D, - 31604 - 11904: 0xDF49, - 31605 - 11904: 0xBAE1, - 31606 - 11904: 0xDF52, - 31607 - 11904: 0xB85F, - 31608 - 11904: 0xDF51, - 31611 - 11904: 0x9952, - 31618 - 11904: 0xE35D, - 31620 - 11904: 0xBAE8, - 31621 - 11904: 0xE358, - 31623 - 11904: 0xBAE7, - 31624 - 11904: 0xE34E, - 31626 - 11904: 0xE350, - 31627 - 11904: 0xBAE0, - 31628 - 11904: 0xE355, - 31629 - 11904: 0xE354, - 31630 - 11904: 0xE357, - 31631 - 11904: 0xBAE5, - 31632 - 11904: 0xE352, - 31633 - 11904: 0xE351, - 31634 - 11904: 0x8E68, - 31636 - 11904: 0xBAE4, - 31637 - 11904: 0xBADF, - 31638 - 11904: 0xE353, - 31639 - 11904: 0xBAE2, - 31640 - 11904: 0xE359, - 31641 - 11904: 0xE35B, - 31643 - 11904: 0xE356, - 31644 - 11904: 0xE34F, - 31645 - 11904: 0xBAE3, - 31648 - 11904: 0xBD69, - 31649 - 11904: 0xBADE, - 31650 - 11904: 0x8E61, - 31651 - 11904: 0x9F59, - 31652 - 11904: 0xE35C, - 31660 - 11904: 0xE6D9, - 31661 - 11904: 0xBD62, - 31662 - 11904: 0x87D0, - 31663 - 11904: 0xE6DB, - 31665 - 11904: 0xBD63, - 31666 - 11904: 0x8BB3, - 31668 - 11904: 0xBD65, - 31669 - 11904: 0xE6DE, - 31671 - 11904: 0xE6D6, - 31672 - 11904: 0xBAE6, - 31673 - 11904: 0xE6DC, - 31678 - 11904: 0xE6D8, - 31680 - 11904: 0xB860, - 31681 - 11904: 0xBD68, - 31684 - 11904: 0xBD64, - 31685 - 11904: 0x87B9, - 31686 - 11904: 0xBD66, - 31687 - 11904: 0xBD67, - 31689 - 11904: 0xBF76, - 31690 - 11904: 0xE6DD, - 31691 - 11904: 0xE6D7, - 31692 - 11904: 0xBD6A, - 31694 - 11904: 0xE6DA, - 31695 - 11904: 0x9F5D, - 31696 - 11904: 0x8E66, - 31700 - 11904: 0xEAC0, - 31701 - 11904: 0xEABB, - 31704 - 11904: 0xEAC5, - 31705 - 11904: 0xBF74, - 31706 - 11904: 0xEABD, - 31707 - 11904: 0xBF78, - 31708 - 11904: 0xEAC3, - 31709 - 11904: 0xEABA, - 31710 - 11904: 0xEAB7, - 31711 - 11904: 0xEAC6, - 31712 - 11904: 0xC151, - 31713 - 11904: 0xBF79, - 31714 - 11904: 0xEAC2, - 31715 - 11904: 0xEAB8, - 31716 - 11904: 0xBF77, - 31717 - 11904: 0xEABC, - 31718 - 11904: 0xBF7B, - 31719 - 11904: 0xEAB9, - 31720 - 11904: 0xEABE, - 31721 - 11904: 0xBF7A, - 31722 - 11904: 0xEAC1, - 31723 - 11904: 0xEAC4, - 31724 - 11904: 0x8CB2, - 31728 - 11904: 0xEDCB, - 31729 - 11904: 0xEDCC, - 31730 - 11904: 0xEDBC, - 31731 - 11904: 0xEDC3, - 31732 - 11904: 0xEDC1, - 31735 - 11904: 0xC14F, - 31736 - 11904: 0xEDC8, - 31737 - 11904: 0xEABF, - 31738 - 11904: 0x8E6E, - 31739 - 11904: 0xEDBF, - 31740 - 11904: 0x9F64, - 31741 - 11904: 0xEDC9, - 31742 - 11904: 0xC14E, - 31743 - 11904: 0xEDBE, - 31744 - 11904: 0xEDBD, - 31745 - 11904: 0xEDC7, - 31746 - 11904: 0xEDC4, - 31747 - 11904: 0xEDC6, - 31749 - 11904: 0xEDBA, - 31750 - 11904: 0xEDCA, - 31751 - 11904: 0xC14C, - 31753 - 11904: 0xEDC5, - 31754 - 11904: 0xEDCE, - 31755 - 11904: 0xEDC2, - 31756 - 11904: 0xC150, - 31757 - 11904: 0xC14D, - 31758 - 11904: 0xEDC0, - 31759 - 11904: 0xEDBB, - 31760 - 11904: 0xEDCD, - 31761 - 11904: 0xBF75, - 31762 - 11904: 0x9953, - 31765 - 11904: 0xFAB8, - 31769 - 11904: 0xF063, - 31771 - 11904: 0x9954, - 31772 - 11904: 0xF061, - 31773 - 11904: 0xF067, - 31774 - 11904: 0xC2B0, - 31775 - 11904: 0xF065, - 31776 - 11904: 0xF064, - 31777 - 11904: 0xC2B2, - 31778 - 11904: 0xF06A, - 31779 - 11904: 0xC2B1, - 31781 - 11904: 0xF06B, - 31782 - 11904: 0xF068, - 31783 - 11904: 0xC2AE, - 31784 - 11904: 0xF069, - 31785 - 11904: 0xF062, - 31786 - 11904: 0xC2AF, - 31787 - 11904: 0xC2AD, - 31788 - 11904: 0xF2AB, - 31789 - 11904: 0xF066, - 31792 - 11904: 0xF06C, - 31795 - 11904: 0xF2A8, - 31797 - 11904: 0x8E70, - 31799 - 11904: 0xC3B2, - 31800 - 11904: 0xC3B0, - 31801 - 11904: 0xF2AA, - 31803 - 11904: 0xF2AC, - 31804 - 11904: 0xF2A9, - 31805 - 11904: 0xC3B1, - 31806 - 11904: 0xC3AE, - 31807 - 11904: 0xC3AF, - 31808 - 11904: 0xC3B3, - 31810 - 11904: 0x9F61, - 31811 - 11904: 0xC478, - 31812 - 11904: 0x8E72, - 31813 - 11904: 0xF4AA, - 31815 - 11904: 0xF4A9, - 31816 - 11904: 0xF4A7, - 31817 - 11904: 0xF4A6, - 31818 - 11904: 0xF4A8, - 31820 - 11904: 0xC477, - 31821 - 11904: 0xC479, - 31824 - 11904: 0xC4F0, - 31825 - 11904: 0xA06B, - 31827 - 11904: 0xF5E5, - 31828 - 11904: 0xF5E4, - 31830 - 11904: 0x9F40, - 31831 - 11904: 0xF6FA, - 31833 - 11904: 0xF6FC, - 31834 - 11904: 0xF6FE, - 31835 - 11904: 0xF6FD, - 31836 - 11904: 0xF6FB, - 31837 - 11904: 0x94ED, - 31839 - 11904: 0xC5A3, - 31840 - 11904: 0xC5A2, - 31843 - 11904: 0xC5D3, - 31844 - 11904: 0xC5D2, - 31845 - 11904: 0xC5D4, - 31846 - 11904: 0xF7ED, - 31847 - 11904: 0xF7EC, - 31849 - 11904: 0xF8FB, - 31850 - 11904: 0xF8B8, - 31851 - 11904: 0xF8FC, - 31852 - 11904: 0xC658, - 31853 - 11904: 0x94EE, - 31854 - 11904: 0xC659, - 31855 - 11904: 0xF96D, - 31856 - 11904: 0x9FBD, - 31858 - 11904: 0xC67E, - 31859 - 11904: 0xA6CC, - 31860 - 11904: 0x8E7B, - 31861 - 11904: 0xCDA8, - 31864 - 11904: 0xD045, - 31865 - 11904: 0xD046, - 31866 - 11904: 0xD044, - 31867 - 11904: 0x9957, - 31868 - 11904: 0x94F7, - 31869 - 11904: 0xACF3, - 31870 - 11904: 0x9F5F, - 31871 - 11904: 0xD047, - 31872 - 11904: 0xD048, - 31873 - 11904: 0xD049, - 31875 - 11904: 0x8E73, - 31876 - 11904: 0xD349, - 31877 - 11904: 0xD34F, - 31878 - 11904: 0x9F62, - 31880 - 11904: 0xD34D, - 31881 - 11904: 0xAFBB, - 31882 - 11904: 0xD34B, - 31884 - 11904: 0xD34C, - 31885 - 11904: 0xD34E, - 31886 - 11904: 0x94F6, - 31889 - 11904: 0xD34A, - 31890 - 11904: 0xB2C9, - 31892 - 11904: 0xD6DE, - 31893 - 11904: 0xB2CB, - 31894 - 11904: 0xD6E0, - 31895 - 11904: 0xB2CA, - 31896 - 11904: 0xD6DF, - 31900 - 11904: 0x9958, - 31902 - 11904: 0xDAE8, - 31903 - 11904: 0xB5AF, - 31905 - 11904: 0xDAEA, - 31906 - 11904: 0xDAE7, - 31907 - 11904: 0xD6E1, - 31909 - 11904: 0xB5B0, - 31910 - 11904: 0x8E75, - 31911 - 11904: 0xF9DB, - 31912 - 11904: 0xDAE9, - 31916 - 11904: 0x9072, - 31918 - 11904: 0x94F8, - 31919 - 11904: 0xDF56, - 31921 - 11904: 0xB864, - 31922 - 11904: 0xDF54, - 31923 - 11904: 0xB865, - 31924 - 11904: 0xDF55, - 31925 - 11904: 0xB866, - 31928 - 11904: 0x995A, - 31929 - 11904: 0xBAE9, - 31930 - 11904: 0xE361, - 31931 - 11904: 0xE35E, - 31932 - 11904: 0xE360, - 31933 - 11904: 0xBAEA, - 31934 - 11904: 0xBAEB, - 31935 - 11904: 0xE35F, - 31938 - 11904: 0xA0B0, - 31939 - 11904: 0x8CB3, - 31941 - 11904: 0xE6DF, - 31943 - 11904: 0x8E79, - 31944 - 11904: 0xE6E0, - 31945 - 11904: 0x8E78, - 31946 - 11904: 0xBD6B, - 31947 - 11904: 0xE6E2, - 31948 - 11904: 0xE6E1, - 31949 - 11904: 0x94F3, - 31950 - 11904: 0xA261, - 31952 - 11904: 0xEACA, - 31953 - 11904: 0xEACB, - 31954 - 11904: 0xEAC7, - 31955 - 11904: 0x98AF, - 31956 - 11904: 0xEAC8, - 31957 - 11904: 0xBF7C, - 31958 - 11904: 0xBF7D, - 31959 - 11904: 0xEAC9, - 31961 - 11904: 0xC157, - 31962 - 11904: 0xA0B2, - 31964 - 11904: 0xC153, - 31965 - 11904: 0xC158, - 31966 - 11904: 0xC154, - 31967 - 11904: 0xC156, - 31968 - 11904: 0xC152, - 31970 - 11904: 0xC155, - 31974 - 11904: 0x8E7A, - 31975 - 11904: 0xC2B3, - 31976 - 11904: 0xEDCF, - 31978 - 11904: 0xF2AE, - 31980 - 11904: 0xF2AD, - 31981 - 11904: 0x995C, - 31982 - 11904: 0xF4AB, - 31983 - 11904: 0xC47A, - 31984 - 11904: 0xC47B, - 31985 - 11904: 0xF741, - 31986 - 11904: 0xF5E6, - 31987 - 11904: 0x8E7C, - 31988 - 11904: 0xF740, - 31989 - 11904: 0x8E7D, - 31990 - 11904: 0xF8FD, - 31991 - 11904: 0xF9A4, - 31992 - 11904: 0xA6CD, - 31993 - 11904: 0x8BD9, - 31995 - 11904: 0xA874, - 31996 - 11904: 0x89A2, - 31997 - 11904: 0xCDA9, - 31998 - 11904: 0xAAC8, - 32000 - 11904: 0xACF6, - 32001 - 11904: 0xD04C, - 32002 - 11904: 0xACF4, - 32003 - 11904: 0xD04A, - 32004 - 11904: 0xACF9, - 32005 - 11904: 0xACF5, - 32006 - 11904: 0xACFA, - 32007 - 11904: 0xACF8, - 32008 - 11904: 0xD04B, - 32009 - 11904: 0xACF7, - 32010 - 11904: 0xAFBF, - 32011 - 11904: 0xAFBE, - 32012 - 11904: 0xD35A, - 32013 - 11904: 0xAFC7, - 32014 - 11904: 0xD353, - 32015 - 11904: 0xD359, - 32016 - 11904: 0xAFC3, - 32017 - 11904: 0xD352, - 32018 - 11904: 0xD358, - 32019 - 11904: 0xD356, - 32020 - 11904: 0xAFC2, - 32021 - 11904: 0xAFC4, - 32022 - 11904: 0xD355, - 32023 - 11904: 0xAFBD, - 32024 - 11904: 0xD354, - 32025 - 11904: 0xAFC8, - 32026 - 11904: 0xAFC5, - 32027 - 11904: 0xAFC9, - 32028 - 11904: 0xAFC6, - 32029 - 11904: 0xD351, - 32030 - 11904: 0xD350, - 32031 - 11904: 0xD357, - 32032 - 11904: 0xAFC0, - 32033 - 11904: 0xAFBC, - 32034 - 11904: 0xAFC1, - 32037 - 11904: 0x9ED7, - 32040 - 11904: 0xD6F0, - 32041 - 11904: 0xD6E9, - 32043 - 11904: 0xB5B5, - 32044 - 11904: 0xD6E8, - 32046 - 11904: 0xB2CF, - 32047 - 11904: 0xB2D6, - 32048 - 11904: 0xB2D3, - 32049 - 11904: 0xB2D9, - 32050 - 11904: 0xB2D8, - 32051 - 11904: 0xB2D4, - 32053 - 11904: 0xD6E2, - 32054 - 11904: 0xD6E5, - 32056 - 11904: 0xD6E4, - 32057 - 11904: 0xB2D0, - 32058 - 11904: 0xD6E6, - 32059 - 11904: 0xD6EF, - 32060 - 11904: 0xB2D1, - 32061 - 11904: 0xD6E3, - 32062 - 11904: 0xD6EC, - 32063 - 11904: 0xD6ED, - 32064 - 11904: 0xB2D2, - 32065 - 11904: 0xD6EA, - 32066 - 11904: 0xB2D7, - 32067 - 11904: 0xB2CD, - 32068 - 11904: 0xB2D5, - 32069 - 11904: 0xD6E7, - 32070 - 11904: 0xB2CC, - 32071 - 11904: 0xD6EB, - 32074 - 11904: 0xD6EE, - 32077 - 11904: 0xA0B6, - 32078 - 11904: 0xDAFB, - 32079 - 11904: 0xDAF2, - 32080 - 11904: 0xB5B2, - 32081 - 11904: 0xDAF9, - 32082 - 11904: 0xDAF6, - 32083 - 11904: 0xDAEE, - 32084 - 11904: 0xDAF7, - 32085 - 11904: 0xB5B4, - 32086 - 11904: 0xDAEF, - 32088 - 11904: 0xDAEB, - 32090 - 11904: 0x9E42, - 32091 - 11904: 0xB86C, - 32092 - 11904: 0xDAF4, - 32093 - 11904: 0x8EA4, - 32094 - 11904: 0xB5B1, - 32095 - 11904: 0xDAFA, - 32097 - 11904: 0xB5B8, - 32098 - 11904: 0xB5BA, - 32099 - 11904: 0xDAED, - 32102 - 11904: 0xB5B9, - 32103 - 11904: 0xDAF0, - 32104 - 11904: 0xB5B3, - 32105 - 11904: 0xDAF8, - 32106 - 11904: 0xDAF1, - 32107 - 11904: 0xDAF5, - 32109 - 11904: 0xDAF3, - 32110 - 11904: 0xB5B6, - 32111 - 11904: 0xDAEC, - 32112 - 11904: 0xB5BB, - 32113 - 11904: 0xB2CE, - 32114 - 11904: 0xB5B7, - 32115 - 11904: 0xB5BC, - 32121 - 11904: 0xB868, - 32122 - 11904: 0xDF5D, - 32123 - 11904: 0xDF5F, - 32124 - 11904: 0xDF61, - 32125 - 11904: 0xDF65, - 32127 - 11904: 0xDF5B, - 32128 - 11904: 0xDF59, - 32129 - 11904: 0xB86A, - 32131 - 11904: 0xDF60, - 32132 - 11904: 0xDF64, - 32133 - 11904: 0xDF5C, - 32134 - 11904: 0xDF58, - 32136 - 11904: 0xDF57, - 32137 - 11904: 0x8EA7, - 32139 - 11904: 0x8C76, - 32140 - 11904: 0xDF62, - 32141 - 11904: 0xDF5A, - 32142 - 11904: 0xDF5E, - 32143 - 11904: 0xB86B, - 32145 - 11904: 0xB869, - 32146 - 11904: 0xDF66, - 32147 - 11904: 0xB867, - 32148 - 11904: 0xDF63, - 32149 - 11904: 0x8767, - 32150 - 11904: 0xE372, - 32151 - 11904: 0x9542, - 32156 - 11904: 0xBAEE, - 32157 - 11904: 0xE36A, - 32158 - 11904: 0xBD78, - 32159 - 11904: 0xE374, - 32160 - 11904: 0xBAF1, - 32161 - 11904: 0xE378, - 32162 - 11904: 0xBAF7, - 32163 - 11904: 0xE365, - 32164 - 11904: 0x987D, - 32166 - 11904: 0xE375, - 32167 - 11904: 0xE362, - 32168 - 11904: 0x9755, - 32169 - 11904: 0xE377, - 32170 - 11904: 0xE366, - 32171 - 11904: 0x8EA8, - 32172 - 11904: 0xBAFE, - 32173 - 11904: 0xBAFB, - 32174 - 11904: 0xE376, - 32175 - 11904: 0xE370, - 32176 - 11904: 0xBAED, - 32177 - 11904: 0xBAF5, - 32178 - 11904: 0xBAF4, - 32179 - 11904: 0x8EAA, - 32180 - 11904: 0xBAF3, - 32181 - 11904: 0xBAF9, - 32183 - 11904: 0xE363, - 32184 - 11904: 0xBAFA, - 32185 - 11904: 0xE371, - 32186 - 11904: 0xBAF6, - 32187 - 11904: 0xBAEC, - 32188 - 11904: 0xE373, - 32189 - 11904: 0xBAEF, - 32190 - 11904: 0xBAF0, - 32191 - 11904: 0xBAF8, - 32192 - 11904: 0xE368, - 32193 - 11904: 0xE367, - 32194 - 11904: 0xE364, - 32196 - 11904: 0xE36C, - 32197 - 11904: 0xE369, - 32198 - 11904: 0xE36D, - 32199 - 11904: 0xBAFD, - 32201 - 11904: 0xE379, - 32202 - 11904: 0xBAF2, - 32203 - 11904: 0xE36E, - 32204 - 11904: 0xE36F, - 32205 - 11904: 0x89A3, - 32206 - 11904: 0xE36B, - 32207 - 11904: 0x9960, - 32208 - 11904: 0x9962, - 32210 - 11904: 0xBAFC, - 32211 - 11904: 0x94FC, - 32212 - 11904: 0x9961, - 32215 - 11904: 0xE6E7, - 32216 - 11904: 0xBD70, - 32217 - 11904: 0xBD79, - 32218 - 11904: 0xBD75, - 32219 - 11904: 0xE6E4, - 32220 - 11904: 0x94FA, - 32221 - 11904: 0xBD72, - 32222 - 11904: 0xBD76, - 32223 - 11904: 0xE6F0, - 32224 - 11904: 0xBD6C, - 32225 - 11904: 0xE6E8, - 32227 - 11904: 0xBD74, - 32228 - 11904: 0x8EAE, - 32229 - 11904: 0x8EB2, - 32230 - 11904: 0xE6EB, - 32231 - 11904: 0xE6E6, - 32232 - 11904: 0xBD73, - 32233 - 11904: 0xBD77, - 32234 - 11904: 0xE6E5, - 32236 - 11904: 0xBD71, - 32238 - 11904: 0xE6EF, - 32239 - 11904: 0xBD6E, - 32240 - 11904: 0xE6EE, - 32241 - 11904: 0xE6ED, - 32242 - 11904: 0xBD7A, - 32243 - 11904: 0xE572, - 32244 - 11904: 0xBD6D, - 32245 - 11904: 0x8EB0, - 32246 - 11904: 0xE6EC, - 32247 - 11904: 0xE6E3, - 32249 - 11904: 0xBD7B, - 32250 - 11904: 0xE6EA, - 32251 - 11904: 0xBD6F, - 32253 - 11904: 0x9963, - 32254 - 11904: 0x97AA, - 32259 - 11904: 0xE6E9, - 32263 - 11904: 0x94FB, - 32264 - 11904: 0xBFA2, - 32265 - 11904: 0xBFA7, - 32266 - 11904: 0xBF7E, - 32267 - 11904: 0xEAD8, - 32268 - 11904: 0xEACF, - 32269 - 11904: 0xEADB, - 32270 - 11904: 0xEAD3, - 32271 - 11904: 0xEAD9, - 32272 - 11904: 0xBFA8, - 32273 - 11904: 0xBFA1, - 32274 - 11904: 0xEACC, - 32275 - 11904: 0xEAD2, - 32276 - 11904: 0xEADC, - 32277 - 11904: 0xEAD5, - 32278 - 11904: 0xEADA, - 32279 - 11904: 0xEACE, - 32282 - 11904: 0xEAD6, - 32283 - 11904: 0xBFA3, - 32284 - 11904: 0xEAD4, - 32285 - 11904: 0xBFA6, - 32286 - 11904: 0xBFA5, - 32287 - 11904: 0xEAD0, - 32288 - 11904: 0xEAD1, - 32289 - 11904: 0xEACD, - 32290 - 11904: 0xEAD7, - 32291 - 11904: 0xBFA4, - 32292 - 11904: 0xEADE, - 32293 - 11904: 0xEADD, - 32295 - 11904: 0x8EBB, - 32297 - 11904: 0xEDDA, - 32298 - 11904: 0xEDD6, - 32299 - 11904: 0xC15F, - 32301 - 11904: 0xEDD0, - 32302 - 11904: 0xC159, - 32303 - 11904: 0xC169, - 32304 - 11904: 0xEDDC, - 32305 - 11904: 0xC161, - 32306 - 11904: 0xC15D, - 32307 - 11904: 0xEDD3, - 32308 - 11904: 0xC164, - 32309 - 11904: 0xC167, - 32310 - 11904: 0xEDDE, - 32311 - 11904: 0xC15C, - 32312 - 11904: 0xEDD5, - 32313 - 11904: 0xC165, - 32314 - 11904: 0xEDE0, - 32315 - 11904: 0xEDDD, - 32316 - 11904: 0xEDD1, - 32317 - 11904: 0xC160, - 32318 - 11904: 0xC15A, - 32319 - 11904: 0xC168, - 32320 - 11904: 0xEDD8, - 32321 - 11904: 0xC163, - 32322 - 11904: 0xEDD2, - 32323 - 11904: 0xC15E, - 32324 - 11904: 0xEDDF, - 32325 - 11904: 0xC162, - 32326 - 11904: 0xC15B, - 32327 - 11904: 0xEDD9, - 32328 - 11904: 0xC166, - 32329 - 11904: 0xEDD7, - 32332 - 11904: 0xEDDB, - 32336 - 11904: 0xF06E, - 32337 - 11904: 0xF074, - 32338 - 11904: 0xC2B9, - 32339 - 11904: 0xF077, - 32340 - 11904: 0xC2B4, - 32341 - 11904: 0xC2B5, - 32342 - 11904: 0xF06F, - 32343 - 11904: 0xF076, - 32344 - 11904: 0xF071, - 32345 - 11904: 0xC2BA, - 32346 - 11904: 0xC2B7, - 32347 - 11904: 0x8CDC, - 32348 - 11904: 0xF06D, - 32350 - 11904: 0xC2B6, - 32351 - 11904: 0xF073, - 32352 - 11904: 0xF075, - 32353 - 11904: 0xC2B8, - 32354 - 11904: 0xF072, - 32355 - 11904: 0xF070, - 32357 - 11904: 0x9876, - 32359 - 11904: 0x8EA1, - 32360 - 11904: 0xF2B8, - 32361 - 11904: 0xC3B7, - 32362 - 11904: 0xC3B8, - 32363 - 11904: 0xC3B4, - 32364 - 11904: 0x8CB4, - 32365 - 11904: 0xC3B5, - 32366 - 11904: 0x8EB7, - 32367 - 11904: 0xF2B4, - 32368 - 11904: 0xF2B2, - 32370 - 11904: 0xF2B6, - 32371 - 11904: 0xC3BA, - 32372 - 11904: 0xF2B7, - 32373 - 11904: 0xF2B0, - 32374 - 11904: 0xF2AF, - 32375 - 11904: 0xF2B3, - 32376 - 11904: 0xF2B1, - 32377 - 11904: 0xC3B6, - 32378 - 11904: 0xF2B5, - 32379 - 11904: 0xF4AC, - 32380 - 11904: 0xC47E, - 32381 - 11904: 0xC47D, - 32382 - 11904: 0xF4AD, - 32383 - 11904: 0x9DA6, - 32384 - 11904: 0xF4AF, - 32385 - 11904: 0xF4AE, - 32386 - 11904: 0xC4A1, - 32390 - 11904: 0xF5EB, - 32391 - 11904: 0xF5E8, - 32392 - 11904: 0xF5E9, - 32394 - 11904: 0xF5E7, - 32395 - 11904: 0xF5EA, - 32396 - 11904: 0xC4F2, - 32397 - 11904: 0xF5EC, - 32398 - 11904: 0x9EB0, - 32399 - 11904: 0xC4F1, - 32401 - 11904: 0xF742, - 32402 - 11904: 0x8EB8, - 32403 - 11904: 0xC5D5, - 32404 - 11904: 0xC5D7, - 32405 - 11904: 0xF7EE, - 32406 - 11904: 0xC5D6, - 32407 - 11904: 0xF8B9, - 32408 - 11904: 0xF940, - 32409 - 11904: 0xF942, - 32410 - 11904: 0xF8FE, - 32411 - 11904: 0xF941, - 32412 - 11904: 0xC66C, - 32415 - 11904: 0x9D70, - 32420 - 11904: 0x896E, - 32428 - 11904: 0x896F, - 32442 - 11904: 0x8970, - 32455 - 11904: 0x8971, - 32463 - 11904: 0x8972, - 32479 - 11904: 0x8973, - 32518 - 11904: 0x8974, - 32566 - 11904: 0xA6CE, - 32567 - 11904: 0x8975, - 32568 - 11904: 0xACFB, - 32569 - 11904: 0xD26F, - 32570 - 11904: 0xAFCA, - 32573 - 11904: 0xB2DA, - 32574 - 11904: 0xDAFC, - 32575 - 11904: 0xDAFD, - 32576 - 11904: 0x8EBC, - 32577 - 11904: 0x8EBD, - 32579 - 11904: 0xEADF, - 32580 - 11904: 0xC16A, - 32581 - 11904: 0xEDE1, - 32583 - 11904: 0x8EBE, - 32584 - 11904: 0xC2BB, - 32585 - 11904: 0x9DD1, - 32586 - 11904: 0xF2BA, - 32587 - 11904: 0xF2B9, - 32588 - 11904: 0xC4A2, - 32589 - 11904: 0xF5ED, - 32590 - 11904: 0x94FD, - 32591 - 11904: 0xF743, - 32592 - 11904: 0xC5F8, - 32593 - 11904: 0xCA49, - 32594 - 11904: 0x8BD7, - 32595 - 11904: 0x8BDA, - 32596 - 11904: 0xAAC9, - 32597 - 11904: 0xA875, - 32600 - 11904: 0xD04D, - 32603 - 11904: 0xD360, - 32604 - 11904: 0xD35B, - 32605 - 11904: 0xD35F, - 32606 - 11904: 0xD35D, - 32607 - 11904: 0xAFCB, - 32608 - 11904: 0xD35E, - 32609 - 11904: 0xD35C, - 32611 - 11904: 0xD6F1, - 32613 - 11904: 0xDAFE, - 32614 - 11904: 0xDB40, - 32615 - 11904: 0xDF69, - 32616 - 11904: 0xDF6A, - 32617 - 11904: 0xB86E, - 32618 - 11904: 0xB86F, - 32619 - 11904: 0xDF68, - 32620 - 11904: 0xDF6B, - 32621 - 11904: 0xDF67, - 32622 - 11904: 0xB86D, - 32624 - 11904: 0xBB40, - 32625 - 11904: 0xA0E2, - 32626 - 11904: 0xB870, - 32627 - 11904: 0xE37A, - 32629 - 11904: 0xBD7C, - 32630 - 11904: 0xE6F1, - 32631 - 11904: 0xBD7D, - 32632 - 11904: 0x9FE9, - 32633 - 11904: 0xBFA9, - 32634 - 11904: 0xEAE2, - 32635 - 11904: 0xEAE0, - 32636 - 11904: 0xEAE1, - 32637 - 11904: 0xEDE4, - 32638 - 11904: 0xEDE3, - 32639 - 11904: 0xEDE2, - 32643 - 11904: 0xF2BB, - 32645 - 11904: 0xC3B9, - 32646 - 11904: 0xF2BC, - 32647 - 11904: 0xF744, - 32648 - 11904: 0xC5F9, - 32649 - 11904: 0xF8BA, - 32650 - 11904: 0xA6CF, - 32651 - 11904: 0xAACB, - 32652 - 11904: 0xAACA, - 32653 - 11904: 0xD04F, - 32654 - 11904: 0xACFC, - 32655 - 11904: 0xFDA8, - 32657 - 11904: 0xD04E, - 32658 - 11904: 0xD362, - 32659 - 11904: 0x8AE7, - 32660 - 11904: 0xAFCC, - 32661 - 11904: 0xD6F2, - 32662 - 11904: 0xD361, - 32663 - 11904: 0x8EC2, - 32666 - 11904: 0xB2DC, - 32667 - 11904: 0xD6F5, - 32668 - 11904: 0xD6F3, - 32669 - 11904: 0xD6F4, - 32670 - 11904: 0xB2DB, - 32672 - 11904: 0xDB42, - 32673 - 11904: 0xDB43, - 32674 - 11904: 0xDB41, - 32675 - 11904: 0x8EC4, - 32676 - 11904: 0xB873, - 32677 - 11904: 0xDF6D, - 32678 - 11904: 0xDF6C, - 32679 - 11904: 0xDF6E, - 32680 - 11904: 0xB872, - 32681 - 11904: 0xB871, - 32684 - 11904: 0xE6F2, - 32685 - 11904: 0xE6F4, - 32686 - 11904: 0x9964, - 32687 - 11904: 0xBD7E, - 32688 - 11904: 0xE6F3, - 32689 - 11904: 0xEAE3, - 32690 - 11904: 0xBFAA, - 32691 - 11904: 0xF079, - 32692 - 11904: 0x9965, - 32693 - 11904: 0xF078, - 32694 - 11904: 0xC3BB, - 32695 - 11904: 0xF2BD, - 32696 - 11904: 0xC3BD, - 32697 - 11904: 0xC3BC, - 32698 - 11904: 0xF4B0, - 32699 - 11904: 0xF5EE, - 32700 - 11904: 0xC4F3, - 32701 - 11904: 0xA6D0, - 32702 - 11904: 0xD050, - 32703 - 11904: 0xACFD, - 32704 - 11904: 0xD365, - 32705 - 11904: 0xAFCE, - 32706 - 11904: 0xD364, - 32707 - 11904: 0xD363, - 32709 - 11904: 0xAFCD, - 32711 - 11904: 0xD6FB, - 32713 - 11904: 0xD6FD, - 32714 - 11904: 0xD6F6, - 32715 - 11904: 0xD6F7, - 32716 - 11904: 0xB2DD, - 32717 - 11904: 0xD6F8, - 32718 - 11904: 0xB2DE, - 32719 - 11904: 0xD6FC, - 32720 - 11904: 0xD6F9, - 32721 - 11904: 0xD6FA, - 32722 - 11904: 0xB2DF, - 32724 - 11904: 0xB5BE, - 32725 - 11904: 0xB5BF, - 32727 - 11904: 0xDB44, - 32731 - 11904: 0xDF6F, - 32732 - 11904: 0xDF70, - 32733 - 11904: 0x954E, - 32734 - 11904: 0xE37E, - 32735 - 11904: 0xBB43, - 32736 - 11904: 0xBB41, - 32737 - 11904: 0xBB42, - 32738 - 11904: 0xE37B, - 32739 - 11904: 0xE37C, - 32741 - 11904: 0xE37D, - 32742 - 11904: 0xE6F9, - 32743 - 11904: 0x98B3, - 32744 - 11904: 0xE6FA, - 32745 - 11904: 0xBDA1, - 32746 - 11904: 0xE6F7, - 32747 - 11904: 0xE6F6, - 32748 - 11904: 0xE6F8, - 32749 - 11904: 0xE6F5, - 32750 - 11904: 0xBFAD, - 32751 - 11904: 0xEAE4, - 32752 - 11904: 0xBFAB, - 32753 - 11904: 0xBFAC, - 32754 - 11904: 0xEDE6, - 32755 - 11904: 0xC16B, - 32756 - 11904: 0xEDE5, - 32757 - 11904: 0xEFA8, - 32759 - 11904: 0xF07A, - 32760 - 11904: 0xF07B, - 32761 - 11904: 0xC2BC, - 32762 - 11904: 0x8ECB, - 32763 - 11904: 0xC2BD, - 32764 - 11904: 0xC16C, - 32765 - 11904: 0xF2BE, - 32766 - 11904: 0xF2BF, - 32767 - 11904: 0xF4B1, - 32768 - 11904: 0xC4A3, - 32769 - 11904: 0xA6D1, - 32770 - 11904: 0x8BDF, - 32771 - 11904: 0xA6D2, - 32772 - 11904: 0xACFE, - 32773 - 11904: 0xAACC, - 32774 - 11904: 0xAFCF, - 32775 - 11904: 0xD051, - 32776 - 11904: 0x8ECE, - 32779 - 11904: 0xB5C0, - 32780 - 11904: 0xA6D3, - 32781 - 11904: 0xAD41, - 32782 - 11904: 0xD052, - 32783 - 11904: 0xD053, - 32784 - 11904: 0xAD40, - 32785 - 11904: 0xAD42, - 32786 - 11904: 0xA6D4, - 32788 - 11904: 0xD054, - 32789 - 11904: 0xAFD1, - 32790 - 11904: 0xD366, - 32791 - 11904: 0xAFD3, - 32792 - 11904: 0xAFD0, - 32793 - 11904: 0xAFD2, - 32795 - 11904: 0xD741, - 32796 - 11904: 0xB2E0, - 32797 - 11904: 0x8ECF, - 32798 - 11904: 0xD740, - 32799 - 11904: 0xD6FE, - 32800 - 11904: 0x9968, - 32801 - 11904: 0xDF71, - 32804 - 11904: 0xE3A1, - 32805 - 11904: 0x9969, - 32806 - 11904: 0xBDA2, - 32808 - 11904: 0xBFAE, - 32809 - 11904: 0xEAE6, - 32810 - 11904: 0xEAE5, - 32812 - 11904: 0xEDE7, - 32814 - 11904: 0x996B, - 32815 - 11904: 0x8ED1, - 32816 - 11904: 0xF5EF, - 32817 - 11904: 0x996C, - 32819 - 11904: 0xA6D5, - 32820 - 11904: 0xCB73, - 32821 - 11904: 0xCDAA, - 32822 - 11904: 0xAD43, - 32823 - 11904: 0xD055, - 32825 - 11904: 0xD368, - 32827 - 11904: 0x8ED4, - 32828 - 11904: 0x8ED5, - 32829 - 11904: 0xAFD4, - 32830 - 11904: 0xD367, - 32831 - 11904: 0xAFD5, - 32835 - 11904: 0xD743, - 32838 - 11904: 0xB2E2, - 32839 - 11904: 0xD742, - 32840 - 11904: 0xD744, - 32842 - 11904: 0xB2E1, - 32847 - 11904: 0xDB46, - 32848 - 11904: 0xDB47, - 32849 - 11904: 0xDB45, - 32850 - 11904: 0xB5C1, - 32852 - 11904: 0x996D, - 32854 - 11904: 0xB874, - 32856 - 11904: 0xB875, - 32858 - 11904: 0xBB45, - 32859 - 11904: 0xA0BE, - 32860 - 11904: 0xE3A3, - 32861 - 11904: 0xE3A2, - 32862 - 11904: 0xBB44, - 32865 - 11904: 0x8ED6, - 32866 - 11904: 0xA0BC, - 32867 - 11904: 0xA0B5, - 32868 - 11904: 0xE6FB, - 32870 - 11904: 0xA0B4, - 32871 - 11904: 0xE6FC, - 32876 - 11904: 0xEAE7, - 32879 - 11904: 0xC170, - 32880 - 11904: 0xC16F, - 32881 - 11904: 0xC16D, - 32882 - 11904: 0xC16E, - 32883 - 11904: 0xC171, - 32885 - 11904: 0xF07C, - 32886 - 11904: 0xC2BF, - 32887 - 11904: 0xC2BE, - 32888 - 11904: 0xF2C0, - 32889 - 11904: 0xF4B2, - 32893 - 11904: 0xC5A5, - 32894 - 11904: 0xC5A4, - 32895 - 11904: 0xA6D6, - 32896 - 11904: 0x8BE0, - 32898 - 11904: 0xD1FB, - 32900 - 11904: 0xB877, - 32901 - 11904: 0xB5C2, - 32902 - 11904: 0xB876, - 32903 - 11904: 0xBB46, - 32905 - 11904: 0xA6D7, - 32906 - 11904: 0xC9A9, - 32907 - 11904: 0xA6D8, - 32908 - 11904: 0xA6D9, - 32911 - 11904: 0xCDAB, - 32912 - 11904: 0xCB76, - 32914 - 11904: 0xCB77, - 32915 - 11904: 0xA877, - 32917 - 11904: 0xCB74, - 32918 - 11904: 0xA876, - 32920 - 11904: 0xA879, - 32921 - 11904: 0xCB75, - 32922 - 11904: 0xA87B, - 32923 - 11904: 0xA87A, - 32924 - 11904: 0xCB78, - 32925 - 11904: 0xA878, - 32927 - 11904: 0x89B5, - 32929 - 11904: 0xAAD1, - 32930 - 11904: 0xAACF, - 32931 - 11904: 0xCDAD, - 32933 - 11904: 0xAACE, - 32935 - 11904: 0x8EDD, - 32937 - 11904: 0xAAD3, - 32938 - 11904: 0xAAD5, - 32939 - 11904: 0xAAD2, - 32941 - 11904: 0xCDB0, - 32942 - 11904: 0xCDAC, - 32943 - 11904: 0xAAD6, - 32945 - 11904: 0xAAD0, - 32946 - 11904: 0xA87C, - 32948 - 11904: 0xAAD4, - 32949 - 11904: 0xCDAF, - 32950 - 11904: 0x9E5D, - 32951 - 11904: 0x9971, - 32952 - 11904: 0xCDAE, - 32954 - 11904: 0xAACD, - 32956 - 11904: 0x89AE, - 32957 - 11904: 0x9DE8, - 32962 - 11904: 0xD05B, - 32963 - 11904: 0xAD47, - 32964 - 11904: 0xAD48, - 32965 - 11904: 0xD05D, - 32966 - 11904: 0x9565, - 32967 - 11904: 0xD057, - 32968 - 11904: 0xD05A, - 32969 - 11904: 0xD063, - 32970 - 11904: 0xD061, - 32972 - 11904: 0xAD49, - 32973 - 11904: 0xD067, - 32974 - 11904: 0xAD4C, - 32975 - 11904: 0xD064, - 32976 - 11904: 0xD05C, - 32977 - 11904: 0xD059, - 32980 - 11904: 0xDB49, - 32981 - 11904: 0xD062, - 32982 - 11904: 0xAD44, - 32983 - 11904: 0xD065, - 32984 - 11904: 0xD056, - 32985 - 11904: 0xD05F, - 32986 - 11904: 0xAD46, - 32987 - 11904: 0xAD4B, - 32988 - 11904: 0xD060, - 32989 - 11904: 0xAD4F, - 32990 - 11904: 0xAD4D, - 32992 - 11904: 0xD058, - 32993 - 11904: 0xAD4A, - 32995 - 11904: 0xD05E, - 32996 - 11904: 0xAD4E, - 32997 - 11904: 0xAD45, - 32998 - 11904: 0xD066, - 33001 - 11904: 0x9972, - 33004 - 11904: 0x8B5C, - 33005 - 11904: 0xAFDA, - 33007 - 11904: 0xAFE3, - 33008 - 11904: 0xAFD8, - 33009 - 11904: 0xAFD6, - 33010 - 11904: 0xD36A, - 33011 - 11904: 0xAFDE, - 33012 - 11904: 0xAFDB, - 33013 - 11904: 0xD36C, - 33014 - 11904: 0x89B1, - 33016 - 11904: 0xAFDD, - 33017 - 11904: 0xD36B, - 33018 - 11904: 0xD369, - 33019 - 11904: 0xD36E, - 33020 - 11904: 0xAFE2, - 33021 - 11904: 0xAFE0, - 33022 - 11904: 0xDB48, - 33024 - 11904: 0xD36F, - 33025 - 11904: 0xD36D, - 33026 - 11904: 0xAFD7, - 33027 - 11904: 0xA0C0, - 33029 - 11904: 0xAFD9, - 33030 - 11904: 0xAFDC, - 33031 - 11904: 0x8EDF, - 33032 - 11904: 0xAFDF, - 33033 - 11904: 0x9566, - 33034 - 11904: 0xAFE1, - 33036 - 11904: 0x9974, - 33038 - 11904: 0x9976, - 33042 - 11904: 0x9977, - 33044 - 11904: 0x9979, - 33045 - 11904: 0xD74E, - 33046 - 11904: 0xB2E4, - 33047 - 11904: 0x9DDA, - 33048 - 11904: 0xD745, - 33049 - 11904: 0xD747, - 33050 - 11904: 0x8EE0, - 33051 - 11904: 0xD748, - 33053 - 11904: 0xD750, - 33054 - 11904: 0xD74C, - 33055 - 11904: 0xD74A, - 33057 - 11904: 0xD74D, - 33058 - 11904: 0xD751, - 33059 - 11904: 0xB2E5, - 33060 - 11904: 0xB2E9, - 33061 - 11904: 0xD746, - 33063 - 11904: 0xD74F, - 33065 - 11904: 0xB2E7, - 33066 - 11904: 0x935C, - 33067 - 11904: 0xB2E6, - 33068 - 11904: 0xD74B, - 33069 - 11904: 0xD749, - 33071 - 11904: 0xB2E3, - 33072 - 11904: 0xB2E8, - 33074 - 11904: 0x9DE6, - 33076 - 11904: 0x8B5F, - 33079 - 11904: 0x9563, - 33081 - 11904: 0xB5C8, - 33082 - 11904: 0xDB51, - 33085 - 11904: 0xDB4F, - 33086 - 11904: 0xB5CA, - 33090 - 11904: 0x9567, - 33091 - 11904: 0xDB4A, - 33092 - 11904: 0xDFA1, - 33094 - 11904: 0xB5C9, - 33095 - 11904: 0xDB4E, - 33096 - 11904: 0x9DE3, - 33098 - 11904: 0xDB4B, - 33099 - 11904: 0xB5C5, - 33100 - 11904: 0xB5CB, - 33101 - 11904: 0xDB50, - 33102 - 11904: 0xB5C7, - 33103 - 11904: 0xDB4D, - 33104 - 11904: 0xBB47, - 33105 - 11904: 0xB5C6, - 33106 - 11904: 0xDB4C, - 33107 - 11904: 0xB5CC, - 33108 - 11904: 0xB5C4, - 33109 - 11904: 0xB5C3, - 33110 - 11904: 0x997C, - 33113 - 11904: 0x997D, - 33114 - 11904: 0x997E, - 33115 - 11904: 0xDF77, - 33116 - 11904: 0xDF75, - 33118 - 11904: 0xDF7B, - 33120 - 11904: 0xDF73, - 33121 - 11904: 0xDFA2, - 33122 - 11904: 0xDF78, - 33124 - 11904: 0xDF72, - 33125 - 11904: 0xB87B, - 33126 - 11904: 0xB8A3, - 33127 - 11904: 0xDF7D, - 33129 - 11904: 0xDF76, - 33131 - 11904: 0xB87E, - 33132 - 11904: 0x8CFB, - 33133 - 11904: 0x8B5B, - 33134 - 11904: 0xB87C, - 33135 - 11904: 0xDF7E, - 33136 - 11904: 0xB879, - 33137 - 11904: 0xB878, - 33138 - 11904: 0xDF79, - 33139 - 11904: 0xB87D, - 33140 - 11904: 0xB5CD, - 33142 - 11904: 0xDF7C, - 33143 - 11904: 0xDF74, - 33144 - 11904: 0xB87A, - 33145 - 11904: 0xB8A1, - 33146 - 11904: 0xB8A2, - 33148 - 11904: 0x99A3, - 33151 - 11904: 0xBB4C, - 33152 - 11904: 0xBB48, - 33154 - 11904: 0xBB4D, - 33155 - 11904: 0xE3A6, - 33156 - 11904: 0x99A4, - 33158 - 11904: 0xE3A5, - 33159 - 11904: 0xE3A7, - 33160 - 11904: 0xBB4A, - 33161 - 11904: 0xE3A4, - 33162 - 11904: 0xBB4B, - 33163 - 11904: 0xE3AA, - 33164 - 11904: 0xE3A9, - 33165 - 11904: 0xE3A8, - 33167 - 11904: 0xBB49, - 33171 - 11904: 0x99A6, - 33173 - 11904: 0xE741, - 33175 - 11904: 0xE744, - 33176 - 11904: 0xBDA8, - 33177 - 11904: 0xE743, - 33178 - 11904: 0xBDA7, - 33179 - 11904: 0xBDA3, - 33180 - 11904: 0xBDA4, - 33181 - 11904: 0xBDA5, - 33182 - 11904: 0xE740, - 33183 - 11904: 0xE6FE, - 33184 - 11904: 0xBDA6, - 33186 - 11904: 0xE742, - 33187 - 11904: 0xE6FD, - 33189 - 11904: 0x99A8, - 33190 - 11904: 0xEAE9, - 33191 - 11904: 0xEAF3, - 33192 - 11904: 0xBFB1, - 33193 - 11904: 0xBFB0, - 33194 - 11904: 0x8ABE, - 33195 - 11904: 0xEAED, - 33196 - 11904: 0xEAEF, - 33198 - 11904: 0xEAEA, - 33200 - 11904: 0xEAEE, - 33201 - 11904: 0xEAE8, - 33202 - 11904: 0xEAF1, - 33203 - 11904: 0xBFAF, - 33204 - 11904: 0xEAF0, - 33205 - 11904: 0xEAEC, - 33206 - 11904: 0x9E61, - 33207 - 11904: 0xEAF2, - 33209 - 11904: 0xEAEB, - 33210 - 11904: 0xC174, - 33211 - 11904: 0xEDE8, - 33212 - 11904: 0xEDEE, - 33213 - 11904: 0xC178, - 33214 - 11904: 0xC17A, - 33215 - 11904: 0xC177, - 33216 - 11904: 0xC176, - 33217 - 11904: 0x99AA, - 33218 - 11904: 0xC175, - 33219 - 11904: 0xC173, - 33220 - 11904: 0xEDE9, - 33221 - 11904: 0xEDEC, - 33222 - 11904: 0xC172, - 33223 - 11904: 0xEDED, - 33224 - 11904: 0xA0C8, - 33225 - 11904: 0xC179, - 33226 - 11904: 0xEDEB, - 33228 - 11904: 0xEDEA, - 33229 - 11904: 0xC2C0, - 33231 - 11904: 0xC2C1, - 33232 - 11904: 0xF0A1, - 33233 - 11904: 0xF07D, - 33234 - 11904: 0xF07E, - 33237 - 11904: 0xF2C2, - 33239 - 11904: 0xF2C1, - 33240 - 11904: 0xC3BE, - 33241 - 11904: 0xF4B4, - 33242 - 11904: 0xC4A4, - 33243 - 11904: 0xF4B3, - 33245 - 11904: 0xF5F0, - 33246 - 11904: 0xF745, - 33247 - 11904: 0xC5A6, - 33248 - 11904: 0xF943, - 33249 - 11904: 0xF944, - 33250 - 11904: 0xC5D8, - 33251 - 11904: 0xA6DA, - 33252 - 11904: 0x99AB, - 33253 - 11904: 0xAAD7, - 33254 - 11904: 0xDB52, - 33255 - 11904: 0xBB4E, - 33256 - 11904: 0xC17B, - 33257 - 11904: 0xEDEF, - 33258 - 11904: 0xA6DB, - 33260 - 11904: 0xAFE5, - 33261 - 11904: 0xAFE4, - 33262 - 11904: 0xDB53, - 33263 - 11904: 0xFEC4, - 33266 - 11904: 0xEAF4, - 33267 - 11904: 0xA6DC, - 33268 - 11904: 0xAD50, - 33270 - 11904: 0x98C2, - 33271 - 11904: 0xDB54, - 33272 - 11904: 0xDB55, - 33273 - 11904: 0xDB56, - 33274 - 11904: 0xBB4F, - 33275 - 11904: 0xBFB2, - 33276 - 11904: 0xA6DD, - 33278 - 11904: 0xAAD8, - 33279 - 11904: 0xD068, - 33280 - 11904: 0xAFE6, - 33281 - 11904: 0xD370, - 33282 - 11904: 0xB2EA, - 33284 - 11904: 0xDB57, - 33285 - 11904: 0xB8A4, - 33287 - 11904: 0xBB50, - 33288 - 11904: 0xBFB3, - 33289 - 11904: 0xC17C, - 33290 - 11904: 0xC2C2, - 33291 - 11904: 0xF4B5, - 33292 - 11904: 0xA6DE, - 33293 - 11904: 0xAAD9, - 33296 - 11904: 0xAFE7, - 33297 - 11904: 0xD752, - 33298 - 11904: 0xB5CE, - 33300 - 11904: 0xBB51, - 33301 - 11904: 0xE3AB, - 33302 - 11904: 0xE745, - 33304 - 11904: 0x8EE8, - 33306 - 11904: 0xA0BA, - 33307 - 11904: 0xA6DF, - 33308 - 11904: 0xB5CF, - 33309 - 11904: 0xDFA3, - 33310 - 11904: 0xBB52, - 33311 - 11904: 0xA6E0, - 33312 - 11904: 0xCDB1, - 33313 - 11904: 0xD069, - 33314 - 11904: 0xAD51, - 33317 - 11904: 0xD372, - 33318 - 11904: 0xFD77, - 33320 - 11904: 0xAFEA, - 33321 - 11904: 0x8EEE, - 33322 - 11904: 0xAFE8, - 33323 - 11904: 0xAFE9, - 33324 - 11904: 0xAFEB, - 33325 - 11904: 0x9EBF, - 33327 - 11904: 0xD371, - 33330 - 11904: 0xD757, - 33331 - 11904: 0xD754, - 33332 - 11904: 0xD756, - 33333 - 11904: 0xB2EB, - 33334 - 11904: 0xB2ED, - 33335 - 11904: 0xB2EC, - 33336 - 11904: 0xD753, - 33337 - 11904: 0xB2EE, - 33338 - 11904: 0xD755, - 33340 - 11904: 0xDB58, - 33341 - 11904: 0xDB59, - 33342 - 11904: 0x89C2, - 33343 - 11904: 0xDB5A, - 33344 - 11904: 0xDFA6, - 33346 - 11904: 0xDFA7, - 33348 - 11904: 0xDFA5, - 33349 - 11904: 0xDFA8, - 33351 - 11904: 0xB8A5, - 33353 - 11904: 0xDFA4, - 33355 - 11904: 0xBB53, - 33358 - 11904: 0xE74A, - 33359 - 11904: 0xE746, - 33360 - 11904: 0xE749, - 33361 - 11904: 0xE74B, - 33362 - 11904: 0xE748, - 33363 - 11904: 0xE747, - 33364 - 11904: 0x99AC, - 33365 - 11904: 0xEAF5, - 33366 - 11904: 0xEAF6, - 33367 - 11904: 0xEAF7, - 33368 - 11904: 0xBFB4, - 33369 - 11904: 0xBFB5, - 33370 - 11904: 0xEDF1, - 33371 - 11904: 0xEDF0, - 33372 - 11904: 0xEDF2, - 33374 - 11904: 0xF0A3, - 33375 - 11904: 0xF0A2, - 33377 - 11904: 0xF2C4, - 33378 - 11904: 0x956B, - 33379 - 11904: 0xF2C5, - 33380 - 11904: 0xF2C3, - 33381 - 11904: 0x956C, - 33382 - 11904: 0xC4A5, - 33384 - 11904: 0xF4B6, - 33385 - 11904: 0xF4B7, - 33387 - 11904: 0xF746, - 33388 - 11904: 0xF7EF, - 33389 - 11904: 0xF8BB, - 33390 - 11904: 0xA6E1, - 33391 - 11904: 0xA87D, - 33393 - 11904: 0xC17D, - 33394 - 11904: 0xA6E2, - 33396 - 11904: 0xD758, - 33397 - 11904: 0xDB5B, - 33398 - 11904: 0x99AF, - 33399 - 11904: 0xC641, - 33400 - 11904: 0xCA4A, - 33401 - 11904: 0x994A, - 33402 - 11904: 0x8976, - 33403 - 11904: 0x8F48, - 33404 - 11904: 0xCA4B, - 33405 - 11904: 0xCA4D, - 33406 - 11904: 0xA6E3, - 33407 - 11904: 0xCA4E, - 33408 - 11904: 0xCA4C, - 33411 - 11904: 0xCBA2, - 33412 - 11904: 0xCBA3, - 33413 - 11904: 0xCB7B, - 33415 - 11904: 0xFBEE, - 33418 - 11904: 0xCBA1, - 33419 - 11904: 0xA8A1, - 33421 - 11904: 0xA8A2, - 33422 - 11904: 0xCB7C, - 33423 - 11904: 0xCB7A, - 33424 - 11904: 0xCB79, - 33425 - 11904: 0xCB7D, - 33426 - 11904: 0xA87E, - 33427 - 11904: 0xCB7E, - 33428 - 11904: 0xD06A, - 33432 - 11904: 0xCDB6, - 33433 - 11904: 0xAADC, - 33434 - 11904: 0xCDB5, - 33435 - 11904: 0xCDB7, - 33437 - 11904: 0xAADB, - 33438 - 11904: 0xCDBC, - 33439 - 11904: 0xAADF, - 33440 - 11904: 0xCDB2, - 33441 - 11904: 0xCDC0, - 33442 - 11904: 0xCDC6, - 33443 - 11904: 0xAAE6, - 33444 - 11904: 0xCDC3, - 33445 - 11904: 0xAAE3, - 33446 - 11904: 0x99AE, - 33447 - 11904: 0xCDB9, - 33448 - 11904: 0xCDBF, - 33449 - 11904: 0xCDC1, - 33450 - 11904: 0x8EFB, - 33451 - 11904: 0xCDB4, - 33452 - 11904: 0xAAE2, - 33453 - 11904: 0xAADD, - 33454 - 11904: 0xCDBA, - 33455 - 11904: 0xAAE4, - 33456 - 11904: 0xAAE7, - 33457 - 11904: 0xAAE1, - 33459 - 11904: 0xAADA, - 33460 - 11904: 0xCDBE, - 33461 - 11904: 0xCDB8, - 33462 - 11904: 0xCDC5, - 33463 - 11904: 0xAAE9, - 33464 - 11904: 0xAAE5, - 33465 - 11904: 0xAAE0, - 33466 - 11904: 0xCDBD, - 33467 - 11904: 0xAFEC, - 33468 - 11904: 0xCDBB, - 33469 - 11904: 0xAADE, - 33470 - 11904: 0xAAE8, - 33471 - 11904: 0x8CD0, - 33472 - 11904: 0xCDB3, - 33474 - 11904: 0xCDC2, - 33475 - 11904: 0xCDC4, - 33476 - 11904: 0x8B52, - 33482 - 11904: 0x99B0, - 33487 - 11904: 0x8977, - 33488 - 11904: 0x8F41, - 33489 - 11904: 0xAD62, - 33490 - 11904: 0xAD5C, - 33491 - 11904: 0xAD64, - 33492 - 11904: 0xAD61, - 33493 - 11904: 0xD071, - 33494 - 11904: 0xD074, - 33495 - 11904: 0xAD5D, - 33496 - 11904: 0x99B1, - 33497 - 11904: 0xD06B, - 33499 - 11904: 0xAD56, - 33500 - 11904: 0xAD60, - 33502 - 11904: 0xAD63, - 33503 - 11904: 0xAD65, - 33504 - 11904: 0xD0A2, - 33505 - 11904: 0xD077, - 33506 - 11904: 0x8F49, - 33507 - 11904: 0xAD55, - 33508 - 11904: 0xD0A1, - 33509 - 11904: 0xAD59, - 33510 - 11904: 0xAD57, - 33511 - 11904: 0xAD52, - 33512 - 11904: 0xD06F, - 33514 - 11904: 0xD07E, - 33515 - 11904: 0xD073, - 33516 - 11904: 0xD076, - 33517 - 11904: 0xD0A5, - 33518 - 11904: 0xFA4D, - 33519 - 11904: 0xAD66, - 33520 - 11904: 0xD07D, - 33521 - 11904: 0xAD5E, - 33522 - 11904: 0xD078, - 33523 - 11904: 0xD0A4, - 33524 - 11904: 0xD075, - 33525 - 11904: 0xD079, - 33526 - 11904: 0xD07C, - 33527 - 11904: 0x9DE4, - 33528 - 11904: 0x8CB5, - 33529 - 11904: 0xD06D, - 33530 - 11904: 0xD0A3, - 33531 - 11904: 0xD07B, - 33532 - 11904: 0xFBE9, - 33533 - 11904: 0x9B54, - 33534 - 11904: 0xD06C, - 33535 - 11904: 0x99B2, - 33536 - 11904: 0xD070, - 33537 - 11904: 0xAD5F, - 33538 - 11904: 0xAD5A, - 33539 - 11904: 0xAD53, - 33540 - 11904: 0xAD58, - 33541 - 11904: 0xAD54, - 33542 - 11904: 0xAD67, - 33543 - 11904: 0xD06E, - 33544 - 11904: 0xD3A5, - 33545 - 11904: 0xAD5B, - 33547 - 11904: 0x9E68, - 33548 - 11904: 0xD07A, - 33549 - 11904: 0xCE41, - 33558 - 11904: 0xD3A8, - 33559 - 11904: 0xAFFA, - 33560 - 11904: 0x8F4A, - 33561 - 11904: 0xD376, - 33562 - 11904: 0x8F42, - 33563 - 11904: 0xD3A3, - 33564 - 11904: 0xD37D, - 33565 - 11904: 0x8F51, - 33566 - 11904: 0xD3B2, - 33568 - 11904: 0xD3AA, - 33570 - 11904: 0xD37E, - 33572 - 11904: 0xD3A9, - 33573 - 11904: 0xD378, - 33574 - 11904: 0xD37C, - 33575 - 11904: 0xD3B5, - 33576 - 11904: 0xAFFD, - 33577 - 11904: 0xD3AD, - 33578 - 11904: 0xD3A4, - 33579 - 11904: 0xAFED, - 33580 - 11904: 0xD3B3, - 33581 - 11904: 0xD374, - 33583 - 11904: 0xD3AC, - 33585 - 11904: 0xAFFC, - 33586 - 11904: 0xAFF7, - 33587 - 11904: 0xD373, - 33588 - 11904: 0xAFF5, - 33589 - 11904: 0xAFF4, - 33590 - 11904: 0xAFF9, - 33591 - 11904: 0xD3AB, - 33592 - 11904: 0xAFF1, - 33593 - 11904: 0xAFF8, - 33594 - 11904: 0xD072, - 33595 - 11904: 0xDB5C, - 33596 - 11904: 0xD3A6, - 33597 - 11904: 0x9846, - 33599 - 11904: 0xD37A, - 33600 - 11904: 0xAFFB, - 33601 - 11904: 0xD37B, - 33602 - 11904: 0xD3A1, - 33603 - 11904: 0xAFFE, - 33604 - 11904: 0xD375, - 33605 - 11904: 0xD3AF, - 33607 - 11904: 0xD3AE, - 33608 - 11904: 0xD3B6, - 33609 - 11904: 0xAFF3, - 33610 - 11904: 0xAFF0, - 33611 - 11904: 0xD3B4, - 33612 - 11904: 0xD3B0, - 33613 - 11904: 0xD3A7, - 33614 - 11904: 0xD3A2, - 33615 - 11904: 0xAFF6, - 33616 - 11904: 0xAFF2, - 33617 - 11904: 0xD377, - 33618 - 11904: 0xAFEE, - 33619 - 11904: 0xD3B1, - 33620 - 11904: 0xAFEF, - 33622 - 11904: 0xD379, - 33623 - 11904: 0x99B4, - 33634 - 11904: 0x8EF5, - 33635 - 11904: 0xFD55, - 33638 - 11904: 0x9CCD, - 33647 - 11904: 0x8978, - 33651 - 11904: 0xD75E, - 33652 - 11904: 0xD760, - 33653 - 11904: 0xD765, - 33654 - 11904: 0xD779, - 33655 - 11904: 0xB2FC, - 33656 - 11904: 0xB2F2, - 33658 - 11904: 0xD75D, - 33659 - 11904: 0xB2FD, - 33660 - 11904: 0xB2FE, - 33661 - 11904: 0xD768, - 33662 - 11904: 0xD76F, - 33663 - 11904: 0xD775, - 33665 - 11904: 0xD762, - 33667 - 11904: 0xD769, - 33669 - 11904: 0x8F53, - 33670 - 11904: 0xB340, - 33671 - 11904: 0xD777, - 33672 - 11904: 0xD772, - 33673 - 11904: 0xB2FA, - 33674 - 11904: 0xB2F8, - 33675 - 11904: 0xD76E, - 33676 - 11904: 0xD76A, - 33677 - 11904: 0xD75C, - 33678 - 11904: 0xB2EF, - 33679 - 11904: 0xD761, - 33680 - 11904: 0xD759, - 33681 - 11904: 0x8F6F, - 33682 - 11904: 0xB2F7, - 33683 - 11904: 0xB2F9, - 33684 - 11904: 0xD766, - 33685 - 11904: 0xD763, - 33686 - 11904: 0xB2F4, - 33687 - 11904: 0xD773, - 33688 - 11904: 0xB2F1, - 33689 - 11904: 0xD764, - 33690 - 11904: 0xD77A, - 33691 - 11904: 0xD76C, - 33692 - 11904: 0x8E63, - 33693 - 11904: 0xD76B, - 33694 - 11904: 0xB2F0, - 33696 - 11904: 0xB2FB, - 33698 - 11904: 0xB2F3, - 33699 - 11904: 0xD75A, - 33700 - 11904: 0xD75F, - 33701 - 11904: 0xD770, - 33702 - 11904: 0xD776, - 33703 - 11904: 0xB341, - 33704 - 11904: 0xD75B, - 33705 - 11904: 0xD767, - 33706 - 11904: 0xD76D, - 33707 - 11904: 0xB2F6, - 33708 - 11904: 0x8F56, - 33710 - 11904: 0xD778, - 33711 - 11904: 0xD771, - 33712 - 11904: 0xD774, - 33721 - 11904: 0xFE76, - 33725 - 11904: 0xB2F5, - 33726 - 11904: 0x9FC6, - 33727 - 11904: 0xDB6C, - 33728 - 11904: 0xDB60, - 33729 - 11904: 0xB5D7, - 33730 - 11904: 0xDB7D, - 33731 - 11904: 0xDBA7, - 33732 - 11904: 0xDBAA, - 33733 - 11904: 0xB5D5, - 33734 - 11904: 0xDB68, - 33735 - 11904: 0xDBA3, - 33736 - 11904: 0xDB69, - 33737 - 11904: 0xDB77, - 33738 - 11904: 0xB5E2, - 33739 - 11904: 0xDB73, - 33740 - 11904: 0xB5DF, - 33741 - 11904: 0xFAAC, - 33742 - 11904: 0xDB74, - 33743 - 11904: 0xDB5D, - 33745 - 11904: 0xDBA4, - 33747 - 11904: 0x8F58, - 33748 - 11904: 0xB5E8, - 33749 - 11904: 0xDBA1, - 33750 - 11904: 0xDB75, - 33751 - 11904: 0xDBAC, - 33752 - 11904: 0xDB70, - 33753 - 11904: 0xDFC8, - 33755 - 11904: 0xDBAF, - 33756 - 11904: 0xB5E6, - 33757 - 11904: 0xDB6E, - 33758 - 11904: 0xDB7A, - 33759 - 11904: 0xB5E9, - 33760 - 11904: 0xB5D4, - 33761 - 11904: 0xDB72, - 33762 - 11904: 0xDBAD, - 33763 - 11904: 0xDB6B, - 33764 - 11904: 0xDB64, - 33765 - 11904: 0xDB6F, - 33767 - 11904: 0xDB63, - 33768 - 11904: 0xDB61, - 33769 - 11904: 0xB5D0, - 33770 - 11904: 0xDBA5, - 33771 - 11904: 0xDB6A, - 33772 - 11904: 0xDBA8, - 33773 - 11904: 0x9848, - 33774 - 11904: 0xDBA9, - 33775 - 11904: 0xB5D8, - 33776 - 11904: 0xB5DD, - 33777 - 11904: 0xB5D9, - 33778 - 11904: 0xB5E1, - 33779 - 11904: 0xDB7E, - 33780 - 11904: 0xB5DA, - 33781 - 11904: 0xDB76, - 33782 - 11904: 0xDB66, - 33784 - 11904: 0xB5D2, - 33785 - 11904: 0xDB5E, - 33786 - 11904: 0xDBA2, - 33787 - 11904: 0xDBAB, - 33788 - 11904: 0xDB65, - 33789 - 11904: 0xB5E0, - 33790 - 11904: 0xDBB0, - 33791 - 11904: 0xDB71, - 33793 - 11904: 0xDB6D, - 33795 - 11904: 0xB5D1, - 33796 - 11904: 0xB5E5, - 33797 - 11904: 0x99B7, - 33798 - 11904: 0xDB7C, - 33799 - 11904: 0xB5E7, - 33801 - 11904: 0xDB78, - 33802 - 11904: 0xB5DC, - 33803 - 11904: 0xB5D6, - 33804 - 11904: 0xB5DE, - 33805 - 11904: 0xB5D3, - 33806 - 11904: 0xB5E4, - 33807 - 11904: 0xDB79, - 33808 - 11904: 0xDB67, - 33809 - 11904: 0xDB7B, - 33810 - 11904: 0xDB62, - 33811 - 11904: 0xDBA6, - 33812 - 11904: 0x9665, - 33814 - 11904: 0xFA6C, - 33816 - 11904: 0x9DE7, - 33819 - 11904: 0xDBAE, - 33820 - 11904: 0x9E62, - 33824 - 11904: 0x96CC, - 33825 - 11904: 0x8E67, - 33827 - 11904: 0xDB5F, - 33828 - 11904: 0xFC75, - 33830 - 11904: 0x987E, - 33833 - 11904: 0xDFC7, - 33835 - 11904: 0xDFDD, - 33836 - 11904: 0xB855, - 33837 - 11904: 0xDFCC, - 33838 - 11904: 0xFDB9, - 33839 - 11904: 0xDFCA, - 33840 - 11904: 0xDFB5, - 33841 - 11904: 0xB8A9, - 33842 - 11904: 0xDFC5, - 33843 - 11904: 0xDFD9, - 33844 - 11904: 0xDFC1, - 33845 - 11904: 0xB8B1, - 33846 - 11904: 0xDFD8, - 33847 - 11904: 0xDFBF, - 33848 - 11904: 0xB5E3, - 33849 - 11904: 0xDFCF, - 33850 - 11904: 0xDFC0, - 33851 - 11904: 0xDFD6, - 33852 - 11904: 0xB8B0, - 33853 - 11904: 0xB8A8, - 33854 - 11904: 0x97FC, - 33855 - 11904: 0xDFAA, - 33856 - 11904: 0xDFB2, - 33858 - 11904: 0xDFCB, - 33859 - 11904: 0xDFC3, - 33860 - 11904: 0xDFDC, - 33861 - 11904: 0xDFC6, - 33862 - 11904: 0xB8B6, - 33863 - 11904: 0xDFD7, - 33864 - 11904: 0x98F9, - 33865 - 11904: 0xB8AD, - 33866 - 11904: 0x8F66, - 33867 - 11904: 0xDFC9, - 33868 - 11904: 0xDFD1, - 33869 - 11904: 0xDFB6, - 33870 - 11904: 0xDFD0, - 33872 - 11904: 0xDFE1, - 33873 - 11904: 0xDFB1, - 33874 - 11904: 0xDFD2, - 33875 - 11904: 0x956E, - 33876 - 11904: 0xDFDF, - 33877 - 11904: 0x9245, - 33878 - 11904: 0xDFAB, - 33879 - 11904: 0xB5DB, - 33880 - 11904: 0x8F60, - 33881 - 11904: 0xDFB9, - 33882 - 11904: 0xDFB8, - 33883 - 11904: 0xB8AF, - 33884 - 11904: 0x9ED1, - 33885 - 11904: 0xDFBC, - 33886 - 11904: 0xDFBE, - 33887 - 11904: 0xDFCD, - 33888 - 11904: 0xDFDE, - 33889 - 11904: 0xB8B2, - 33890 - 11904: 0xFECD, - 33891 - 11904: 0xB8B3, - 33892 - 11904: 0x99B9, - 33893 - 11904: 0xDFB0, - 33894 - 11904: 0xB8AB, - 33895 - 11904: 0xDFB4, - 33896 - 11904: 0xDFDA, - 33897 - 11904: 0xB8B4, - 33899 - 11904: 0xB8AC, - 33900 - 11904: 0xB8AE, - 33901 - 11904: 0xB8B5, - 33902 - 11904: 0xDFE0, - 33903 - 11904: 0xDFD3, - 33904 - 11904: 0xDFCE, - 33905 - 11904: 0x8F62, - 33906 - 11904: 0x974C, - 33907 - 11904: 0xDFBB, - 33908 - 11904: 0xDFBA, - 33909 - 11904: 0xB8AA, - 33910 - 11904: 0xDFAC, - 33911 - 11904: 0xB8A7, - 33912 - 11904: 0xDFC4, - 33913 - 11904: 0xDFAD, - 33914 - 11904: 0xDFC2, - 33917 - 11904: 0xDFB7, - 33918 - 11904: 0xDFDB, - 33919 - 11904: 0x91C7, - 33920 - 11904: 0x955F, - 33922 - 11904: 0xB8A6, - 33924 - 11904: 0x87AB, - 33926 - 11904: 0xDFB3, - 33928 - 11904: 0x99BB, - 33933 - 11904: 0xDFAF, - 33934 - 11904: 0xDFD5, - 33935 - 11904: 0xDFAE, - 33936 - 11904: 0xBB60, - 33937 - 11904: 0xE3D3, - 33938 - 11904: 0x8E6D, - 33939 - 11904: 0x8F71, - 33940 - 11904: 0xE3C2, - 33942 - 11904: 0x94CB, - 33943 - 11904: 0xE3AC, - 33944 - 11904: 0xE3CA, - 33945 - 11904: 0xBB58, - 33946 - 11904: 0xE3BB, - 33947 - 11904: 0xE3C5, - 33948 - 11904: 0xBB5B, - 33949 - 11904: 0xE3BE, - 33950 - 11904: 0xBB59, - 33951 - 11904: 0xE3AF, - 33952 - 11904: 0xE3CD, - 33953 - 11904: 0xE3AE, - 33954 - 11904: 0xE3C1, - 33955 - 11904: 0x95B1, - 33956 - 11904: 0xE3AD, - 33959 - 11904: 0xE3BF, - 33960 - 11904: 0xE3C8, - 33961 - 11904: 0xE3C6, - 33962 - 11904: 0xE3BA, - 33963 - 11904: 0xE3B5, - 33964 - 11904: 0xE3B3, - 33965 - 11904: 0x9AF2, - 33966 - 11904: 0xE3B4, - 33967 - 11904: 0xE3C7, - 33968 - 11904: 0xE3D2, - 33969 - 11904: 0xE3BC, - 33970 - 11904: 0xBB5A, - 33972 - 11904: 0xE3B7, - 33974 - 11904: 0xE3CB, - 33976 - 11904: 0xBB5D, - 33977 - 11904: 0xE3B6, - 33978 - 11904: 0xE3B0, - 33979 - 11904: 0xE3C0, - 33980 - 11904: 0xBB61, - 33981 - 11904: 0x96C3, - 33982 - 11904: 0x99BD, - 33983 - 11904: 0xBB55, - 33984 - 11904: 0xBB5E, - 33985 - 11904: 0xE3B8, - 33986 - 11904: 0xE3B2, - 33988 - 11904: 0xBB57, - 33989 - 11904: 0xDFD4, - 33990 - 11904: 0xBB56, - 33991 - 11904: 0xE3C3, - 33993 - 11904: 0xBB54, - 33994 - 11904: 0xBB63, - 33995 - 11904: 0xBB5C, - 33996 - 11904: 0xE3C4, - 33997 - 11904: 0xE3B9, - 33998 - 11904: 0xE3B1, - 33999 - 11904: 0xE3CC, - 34000 - 11904: 0xE3BD, - 34001 - 11904: 0xBB62, - 34002 - 11904: 0xE3D0, - 34003 - 11904: 0xBB5F, - 34004 - 11904: 0xE3CF, - 34006 - 11904: 0xE3C9, - 34007 - 11904: 0xE3CE, - 34010 - 11904: 0xA0CF, - 34011 - 11904: 0xE3D1, - 34014 - 11904: 0x8F6D, - 34017 - 11904: 0x99BE, - 34018 - 11904: 0x8EF4, - 34020 - 11904: 0x8F72, - 34021 - 11904: 0x95E4, - 34023 - 11904: 0xE773, - 34024 - 11904: 0xE774, - 34025 - 11904: 0xE767, - 34026 - 11904: 0xE766, - 34027 - 11904: 0xE762, - 34028 - 11904: 0xBDB4, - 34030 - 11904: 0xBDAC, - 34031 - 11904: 0xE776, - 34032 - 11904: 0xE775, - 34033 - 11904: 0xDFA9, - 34034 - 11904: 0xE75F, - 34035 - 11904: 0xE763, - 34036 - 11904: 0xE75D, - 34038 - 11904: 0xE770, - 34039 - 11904: 0xE761, - 34040 - 11904: 0x99BF, - 34041 - 11904: 0xE777, - 34042 - 11904: 0xE75A, - 34043 - 11904: 0xE758, - 34044 - 11904: 0xE764, - 34045 - 11904: 0xE76E, - 34046 - 11904: 0xE769, - 34047 - 11904: 0xBDB6, - 34048 - 11904: 0xE74F, - 34050 - 11904: 0xE76D, - 34051 - 11904: 0x9244, - 34052 - 11904: 0x87D7, - 34053 - 11904: 0xFBA5, - 34054 - 11904: 0xBDB7, - 34055 - 11904: 0xDFBD, - 34056 - 11904: 0xE75B, - 34057 - 11904: 0xE752, - 34058 - 11904: 0xE755, - 34059 - 11904: 0xE77B, - 34060 - 11904: 0xE75C, - 34061 - 11904: 0xE753, - 34062 - 11904: 0xE751, - 34063 - 11904: 0xE74E, - 34064 - 11904: 0x99C0, - 34065 - 11904: 0xBDB0, - 34066 - 11904: 0xE765, - 34067 - 11904: 0xBDAF, - 34068 - 11904: 0xBDB3, - 34069 - 11904: 0xE760, - 34070 - 11904: 0xE768, - 34071 - 11904: 0xBDA9, - 34072 - 11904: 0xE778, - 34073 - 11904: 0xE77C, - 34074 - 11904: 0xBDAB, - 34076 - 11904: 0xE757, - 34077 - 11904: 0xE76B, - 34078 - 11904: 0xE76F, - 34079 - 11904: 0xE754, - 34080 - 11904: 0xE779, - 34081 - 11904: 0xBDB2, - 34083 - 11904: 0xBDB1, - 34084 - 11904: 0xE74C, - 34085 - 11904: 0xBDB5, - 34086 - 11904: 0xE772, - 34087 - 11904: 0xE756, - 34088 - 11904: 0xE76A, - 34089 - 11904: 0xE750, - 34090 - 11904: 0xE75E, - 34091 - 11904: 0xE759, - 34092 - 11904: 0xBDAD, - 34093 - 11904: 0xBDAE, - 34094 - 11904: 0xE76C, - 34095 - 11904: 0xE77D, - 34096 - 11904: 0xE77A, - 34097 - 11904: 0xE771, - 34099 - 11904: 0xFDB4, - 34100 - 11904: 0x8F77, - 34104 - 11904: 0x99C1, - 34107 - 11904: 0xE74D, - 34109 - 11904: 0xBDAA, - 34110 - 11904: 0xEB49, - 34112 - 11904: 0xEB40, - 34113 - 11904: 0xEB43, - 34114 - 11904: 0xFAB9, - 34115 - 11904: 0xBFBB, - 34116 - 11904: 0xEB45, - 34117 - 11904: 0xEAF9, - 34118 - 11904: 0xEB41, - 34119 - 11904: 0xEB47, - 34120 - 11904: 0xBFB8, - 34121 - 11904: 0xBFBC, - 34122 - 11904: 0xBFB6, - 34123 - 11904: 0x8F40, - 34124 - 11904: 0xFA44, - 34125 - 11904: 0xEAFB, - 34126 - 11904: 0xEB4C, - 34129 - 11904: 0xEB46, - 34130 - 11904: 0x99C2, - 34131 - 11904: 0xEAFC, - 34132 - 11904: 0xEB55, - 34133 - 11904: 0xEB4F, - 34134 - 11904: 0xEAF8, - 34135 - 11904: 0xEE46, - 34136 - 11904: 0xEAFE, - 34137 - 11904: 0xBFB7, - 34138 - 11904: 0x8F5C, - 34139 - 11904: 0xEB4A, - 34141 - 11904: 0xEB54, - 34142 - 11904: 0xBFBF, - 34143 - 11904: 0x8CBD, - 34144 - 11904: 0xEB51, - 34145 - 11904: 0xEAFD, - 34146 - 11904: 0xEB44, - 34147 - 11904: 0xEB48, - 34148 - 11904: 0xEB42, - 34149 - 11904: 0xEB56, - 34150 - 11904: 0xEB53, - 34151 - 11904: 0xEB50, - 34152 - 11904: 0xBFB9, - 34153 - 11904: 0xBFBA, - 34154 - 11904: 0xBFBE, - 34155 - 11904: 0xEAFA, - 34156 - 11904: 0xEB57, - 34157 - 11904: 0xBFBD, - 34158 - 11904: 0xEB4D, - 34159 - 11904: 0x99C4, - 34160 - 11904: 0x99C5, - 34161 - 11904: 0xEB4B, - 34163 - 11904: 0x8F7B, - 34165 - 11904: 0xEB4E, - 34166 - 11904: 0xEE53, - 34167 - 11904: 0xEE40, - 34168 - 11904: 0xEE45, - 34169 - 11904: 0xEE52, - 34170 - 11904: 0xEE44, - 34171 - 11904: 0xEDFB, - 34172 - 11904: 0xEE41, - 34174 - 11904: 0xC1A2, - 34176 - 11904: 0xEDF4, - 34177 - 11904: 0xEE4D, - 34178 - 11904: 0xEE4F, - 34179 - 11904: 0xEDF3, - 34180 - 11904: 0xC1A1, - 34181 - 11904: 0xEE51, - 34182 - 11904: 0xEE49, - 34183 - 11904: 0xC1A8, - 34184 - 11904: 0xEE50, - 34185 - 11904: 0xEE42, - 34186 - 11904: 0xC1AA, - 34187 - 11904: 0xEDF9, - 34188 - 11904: 0xEB52, - 34189 - 11904: 0xEE4A, - 34190 - 11904: 0xEE47, - 34191 - 11904: 0xEDF5, - 34192 - 11904: 0xEE55, - 34193 - 11904: 0xC1A4, - 34195 - 11904: 0x8776, - 34196 - 11904: 0xC1A5, - 34197 - 11904: 0xEDF7, - 34198 - 11904: 0xEE48, - 34199 - 11904: 0x8CB6, - 34200 - 11904: 0xEE54, - 34201 - 11904: 0xEE4B, - 34202 - 11904: 0xEDFD, - 34203 - 11904: 0xC1A7, - 34204 - 11904: 0xC1A3, - 34205 - 11904: 0xEE4C, - 34206 - 11904: 0xEDFE, - 34207 - 11904: 0xEE56, - 34208 - 11904: 0xEDF8, - 34209 - 11904: 0xEE43, - 34210 - 11904: 0xEE4E, - 34211 - 11904: 0xEDFA, - 34212 - 11904: 0xEDFC, - 34214 - 11904: 0xC2CB, - 34215 - 11904: 0xEDF6, - 34216 - 11904: 0xC1A9, - 34217 - 11904: 0xC2C4, - 34218 - 11904: 0xC17E, - 34223 - 11904: 0xC1A6, - 34224 - 11904: 0xC2C8, - 34225 - 11904: 0xF0B3, - 34227 - 11904: 0xF0A9, - 34228 - 11904: 0xF0A4, - 34229 - 11904: 0xF0AA, - 34230 - 11904: 0xF0B4, - 34231 - 11904: 0xF0B8, - 34232 - 11904: 0xF0B7, - 34233 - 11904: 0xC2CA, - 34234 - 11904: 0xC2C9, - 34237 - 11904: 0xF0AB, - 34238 - 11904: 0xF0B9, - 34239 - 11904: 0xF0AE, - 34240 - 11904: 0xF0A6, - 34241 - 11904: 0x8FA3, - 34242 - 11904: 0xF0A8, - 34243 - 11904: 0xF0A7, - 34244 - 11904: 0xF0AD, - 34245 - 11904: 0xF0B2, - 34246 - 11904: 0xF0A5, - 34247 - 11904: 0xF0AC, - 34248 - 11904: 0xF0B1, - 34249 - 11904: 0xC2C7, - 34251 - 11904: 0xF0AF, - 34253 - 11904: 0xC2C5, - 34254 - 11904: 0xF0B0, - 34255 - 11904: 0xC2C3, - 34256 - 11904: 0xC2C6, - 34257 - 11904: 0xF2D5, - 34258 - 11904: 0xF0B5, - 34261 - 11904: 0xC3C2, - 34262 - 11904: 0x8CCE, - 34263 - 11904: 0xF2CD, - 34264 - 11904: 0xF2D1, - 34265 - 11904: 0xF2C9, - 34266 - 11904: 0xF2CC, - 34268 - 11904: 0xF2D4, - 34269 - 11904: 0xC3C0, - 34270 - 11904: 0xF2D9, - 34271 - 11904: 0xF2D2, - 34272 - 11904: 0x99C6, - 34273 - 11904: 0xF2CA, - 34274 - 11904: 0xF2DA, - 34275 - 11904: 0xF2D3, - 34276 - 11904: 0xC3C3, - 34277 - 11904: 0xC3C4, - 34278 - 11904: 0xF2D7, - 34280 - 11904: 0xF2CB, - 34281 - 11904: 0xC3BF, - 34282 - 11904: 0xC3C1, - 34283 - 11904: 0xF2C6, - 34284 - 11904: 0xF2CE, - 34285 - 11904: 0xF2C8, - 34286 - 11904: 0x96CD, - 34287 - 11904: 0xF2D8, - 34288 - 11904: 0xF2D6, - 34289 - 11904: 0xF2C7, - 34290 - 11904: 0xF2CF, - 34294 - 11904: 0xF4BE, - 34295 - 11904: 0xC3C5, - 34296 - 11904: 0xF2D0, - 34297 - 11904: 0xC4A7, - 34298 - 11904: 0xC4A9, - 34299 - 11904: 0xC4A6, - 34300 - 11904: 0x96C7, - 34301 - 11904: 0xF4C3, - 34302 - 11904: 0xF4BB, - 34303 - 11904: 0xF4B9, - 34304 - 11904: 0xF4BD, - 34305 - 11904: 0xF4BA, - 34306 - 11904: 0x8FA5, - 34308 - 11904: 0xF4BF, - 34309 - 11904: 0xF4C1, - 34310 - 11904: 0xC4AA, - 34311 - 11904: 0xC4AC, - 34313 - 11904: 0xF4C0, - 34314 - 11904: 0xC4AD, - 34315 - 11904: 0xC4AB, - 34316 - 11904: 0xF4C2, - 34317 - 11904: 0xFABB, - 34319 - 11904: 0x8C61, - 34320 - 11904: 0x9570, - 34321 - 11904: 0xC4A8, - 34323 - 11904: 0x87AF, - 34324 - 11904: 0x9368, - 34326 - 11904: 0x8F7E, - 34327 - 11904: 0xC4F4, - 34328 - 11904: 0xF5F1, - 34329 - 11904: 0xF5F7, - 34330 - 11904: 0xC4F6, - 34331 - 11904: 0xF4BC, - 34332 - 11904: 0xF5F6, - 34334 - 11904: 0xF5FD, - 34335 - 11904: 0xF5F4, - 34336 - 11904: 0xF5FB, - 34337 - 11904: 0xF5FA, - 34338 - 11904: 0xF4B8, - 34339 - 11904: 0xF5F5, - 34340 - 11904: 0xF0B6, - 34341 - 11904: 0xF5FE, - 34342 - 11904: 0xF5F3, - 34343 - 11904: 0xF5F8, - 34344 - 11904: 0x8FAA, - 34345 - 11904: 0xF5FC, - 34346 - 11904: 0xF5F2, - 34348 - 11904: 0xF74A, - 34349 - 11904: 0xC4F5, - 34350 - 11904: 0xF5F9, - 34351 - 11904: 0xA050, - 34353 - 11904: 0xF7F4, - 34354 - 11904: 0xF74B, - 34355 - 11904: 0xF749, - 34356 - 11904: 0xF747, - 34357 - 11904: 0xF748, - 34358 - 11904: 0xF74C, - 34360 - 11904: 0xC5D9, - 34361 - 11904: 0xF7F2, - 34362 - 11904: 0xF7F0, - 34363 - 11904: 0xF7F5, - 34364 - 11904: 0xF7F3, - 34366 - 11904: 0xF7F6, - 34367 - 11904: 0xC5DA, - 34368 - 11904: 0xF7F1, - 34370 - 11904: 0x90D3, - 34371 - 11904: 0xF8BC, - 34373 - 11904: 0x9556, - 34374 - 11904: 0xF945, - 34375 - 11904: 0xF946, - 34376 - 11904: 0xF947, - 34379 - 11904: 0xF9C7, - 34380 - 11904: 0xF9BD, - 34381 - 11904: 0xCA4F, - 34382 - 11904: 0xAAEA, - 34384 - 11904: 0xAD68, - 34386 - 11904: 0xD3B8, - 34387 - 11904: 0xD3B7, - 34388 - 11904: 0xB040, - 34389 - 11904: 0xB342, - 34390 - 11904: 0xD77C, - 34393 - 11904: 0xD77B, - 34395 - 11904: 0xB5EA, - 34396 - 11904: 0xB8B8, - 34398 - 11904: 0xB8B7, - 34399 - 11904: 0xB8B9, - 34401 - 11904: 0xE3D4, - 34402 - 11904: 0xE77E, - 34403 - 11904: 0xEB58, - 34404 - 11904: 0xEB5A, - 34405 - 11904: 0xEB59, - 34407 - 11904: 0xC1AB, - 34408 - 11904: 0xEE57, - 34409 - 11904: 0xF0BA, - 34410 - 11904: 0xF9A5, - 34411 - 11904: 0xA6E4, - 34412 - 11904: 0x8FB8, - 34413 - 11904: 0xCDC9, - 34414 - 11904: 0xCDCA, - 34415 - 11904: 0xCDC8, - 34416 - 11904: 0xCDC7, - 34417 - 11904: 0xAAEB, - 34418 - 11904: 0x99C8, - 34419 - 11904: 0xD0A9, - 34420 - 11904: 0xD0A7, - 34423 - 11904: 0xD0A6, - 34425 - 11904: 0xAD69, - 34426 - 11904: 0xAD6B, - 34427 - 11904: 0xAD6A, - 34428 - 11904: 0xD0A8, - 34430 - 11904: 0x8FAF, - 34437 - 11904: 0xD3C4, - 34438 - 11904: 0xD3C1, - 34439 - 11904: 0xD3BF, - 34442 - 11904: 0xB041, - 34443 - 11904: 0xD3C2, - 34444 - 11904: 0xB046, - 34445 - 11904: 0xD3BC, - 34446 - 11904: 0xD3CB, - 34448 - 11904: 0xD3CD, - 34449 - 11904: 0xD3BD, - 34450 - 11904: 0x99C9, - 34451 - 11904: 0xB043, - 34452 - 11904: 0xD3CE, - 34453 - 11904: 0xD3C9, - 34454 - 11904: 0xD3BB, - 34455 - 11904: 0xD3C0, - 34456 - 11904: 0xD3CA, - 34457 - 11904: 0xD3C6, - 34458 - 11904: 0xD3C3, - 34460 - 11904: 0xB048, - 34461 - 11904: 0xD3CC, - 34462 - 11904: 0xD3BE, - 34464 - 11904: 0x9579, - 34465 - 11904: 0xD3C7, - 34466 - 11904: 0xD3B9, - 34467 - 11904: 0xB047, - 34468 - 11904: 0xB044, - 34469 - 11904: 0xD3C5, - 34471 - 11904: 0xD3C8, - 34472 - 11904: 0xD3BA, - 34473 - 11904: 0xB045, - 34474 - 11904: 0xB042, - 34477 - 11904: 0x9F49, - 34479 - 11904: 0xB34C, - 34480 - 11904: 0xD7A5, - 34481 - 11904: 0xB34B, - 34482 - 11904: 0x99CA, - 34483 - 11904: 0xD7A8, - 34484 - 11904: 0xD7AB, - 34485 - 11904: 0xB348, - 34486 - 11904: 0xB346, - 34487 - 11904: 0xD77E, - 34488 - 11904: 0xD7A9, - 34489 - 11904: 0xD7A7, - 34490 - 11904: 0xD7A4, - 34491 - 11904: 0xD7AC, - 34492 - 11904: 0xD7AD, - 34493 - 11904: 0xD7AF, - 34494 - 11904: 0xD7B0, - 34495 - 11904: 0xD77D, - 34496 - 11904: 0xB345, - 34497 - 11904: 0xD7A2, - 34498 - 11904: 0xD7A1, - 34499 - 11904: 0xD7AE, - 34500 - 11904: 0xB347, - 34501 - 11904: 0xD7A3, - 34502 - 11904: 0xB349, - 34503 - 11904: 0xB344, - 34504 - 11904: 0xD7A6, - 34505 - 11904: 0xB34D, - 34507 - 11904: 0xB34A, - 34508 - 11904: 0xD7AA, - 34512 - 11904: 0xB5F1, - 34513 - 11904: 0xDBBF, - 34515 - 11904: 0xDBB4, - 34516 - 11904: 0xB5EE, - 34518 - 11904: 0xDFE7, - 34519 - 11904: 0xDBBD, - 34520 - 11904: 0xDBB1, - 34521 - 11904: 0xB5EC, - 34522 - 11904: 0xDBB6, - 34523 - 11904: 0xB5EF, - 34524 - 11904: 0xDBBA, - 34525 - 11904: 0xDBB8, - 34526 - 11904: 0xB5F2, - 34527 - 11904: 0xB5EB, - 34530 - 11904: 0xDBB2, - 34531 - 11904: 0xDBB5, - 34532 - 11904: 0xB5F0, - 34534 - 11904: 0xDBB3, - 34536 - 11904: 0xDBBE, - 34537 - 11904: 0xDBBC, - 34538 - 11904: 0xDBB7, - 34539 - 11904: 0xDBB9, - 34540 - 11904: 0xDBBB, - 34541 - 11904: 0xB5ED, - 34543 - 11904: 0x99CB, - 34549 - 11904: 0xDFE8, - 34550 - 11904: 0xDFEE, - 34551 - 11904: 0xDFE4, - 34552 - 11904: 0xDFEA, - 34553 - 11904: 0xB8BA, - 34554 - 11904: 0xDFE6, - 34555 - 11904: 0xB8C0, - 34558 - 11904: 0xB8BF, - 34560 - 11904: 0xB8BE, - 34561 - 11904: 0xDFED, - 34562 - 11904: 0xB8C1, - 34563 - 11904: 0xB8C2, - 34564 - 11904: 0xDFE3, - 34565 - 11904: 0xDFF0, - 34566 - 11904: 0xB8C3, - 34567 - 11904: 0xB8BD, - 34568 - 11904: 0xB8BC, - 34569 - 11904: 0xDFEC, - 34570 - 11904: 0xB8C4, - 34571 - 11904: 0xDFE2, - 34572 - 11904: 0xDFE5, - 34573 - 11904: 0xDFEF, - 34574 - 11904: 0xDFEB, - 34577 - 11904: 0xE3F4, - 34578 - 11904: 0xE3E9, - 34579 - 11904: 0xB8BB, - 34584 - 11904: 0xBB6A, - 34585 - 11904: 0xE3DD, - 34586 - 11904: 0xE3F2, - 34587 - 11904: 0xE3DE, - 34588 - 11904: 0xBB65, - 34590 - 11904: 0xE3DB, - 34592 - 11904: 0xE3E4, - 34593 - 11904: 0xE3DC, - 34594 - 11904: 0xBB67, - 34595 - 11904: 0xE3D6, - 34596 - 11904: 0xE3F1, - 34597 - 11904: 0xBB68, - 34598 - 11904: 0xE3EE, - 34599 - 11904: 0xE3EF, - 34600 - 11904: 0xE3D7, - 34601 - 11904: 0xBB6D, - 34602 - 11904: 0xE3E6, - 34604 - 11904: 0xE3E0, - 34605 - 11904: 0xE3E7, - 34606 - 11904: 0xE3DA, - 34608 - 11904: 0xE3F3, - 34609 - 11904: 0xE3EB, - 34610 - 11904: 0xE3E5, - 34611 - 11904: 0xE3D5, - 34612 - 11904: 0xBB69, - 34613 - 11904: 0xE3EC, - 34615 - 11904: 0xBB6C, - 34616 - 11904: 0xE3F0, - 34618 - 11904: 0xE3EA, - 34619 - 11904: 0xBB66, - 34620 - 11904: 0xE3E8, - 34622 - 11904: 0xE3E2, - 34623 - 11904: 0xBB64, - 34624 - 11904: 0xE3D9, - 34625 - 11904: 0xE3E1, - 34626 - 11904: 0xE3ED, - 34627 - 11904: 0xE3DF, - 34630 - 11904: 0xE3E3, - 34636 - 11904: 0xBDC1, - 34637 - 11904: 0xDFE9, - 34638 - 11904: 0xE7B2, - 34639 - 11904: 0xE7BB, - 34640 - 11904: 0xE7B1, - 34641 - 11904: 0xE7AD, - 34642 - 11904: 0xE7AA, - 34643 - 11904: 0xBDC2, - 34644 - 11904: 0xE7A8, - 34645 - 11904: 0xBB6B, - 34646 - 11904: 0xE7A1, - 34647 - 11904: 0xBDC0, - 34648 - 11904: 0xE7A7, - 34649 - 11904: 0xBDBF, - 34650 - 11904: 0xE7AC, - 34651 - 11904: 0xE7A9, - 34652 - 11904: 0xE7B9, - 34653 - 11904: 0xE7B4, - 34654 - 11904: 0xE7AE, - 34655 - 11904: 0xE7B3, - 34656 - 11904: 0xBDBB, - 34657 - 11904: 0xE7AB, - 34658 - 11904: 0xE7BE, - 34659 - 11904: 0xE7A2, - 34660 - 11904: 0xE7A3, - 34661 - 11904: 0xE7BA, - 34662 - 11904: 0xBDBC, - 34663 - 11904: 0xE7BF, - 34664 - 11904: 0xBDBE, - 34665 - 11904: 0xE7C0, - 34666 - 11904: 0xE7B0, - 34667 - 11904: 0xE3D8, - 34668 - 11904: 0xE7B6, - 34669 - 11904: 0xE7AF, - 34670 - 11904: 0xE7B8, - 34671 - 11904: 0xE7B5, - 34672 - 11904: 0x9DD5, - 34673 - 11904: 0x8FB0, - 34675 - 11904: 0xE7A6, - 34676 - 11904: 0xBDB9, - 34677 - 11904: 0xE7BD, - 34678 - 11904: 0xBDBA, - 34679 - 11904: 0xE7A4, - 34680 - 11904: 0xBDBD, - 34681 - 11904: 0xEB64, - 34682 - 11904: 0xE7B7, - 34683 - 11904: 0xE7BC, - 34685 - 11904: 0xFA7A, - 34689 - 11904: 0xEB61, - 34690 - 11904: 0xBDB8, - 34691 - 11904: 0xBFC0, - 34692 - 11904: 0xEB6B, - 34693 - 11904: 0xEB67, - 34694 - 11904: 0x9E5F, - 34695 - 11904: 0xEB65, - 34696 - 11904: 0xEB60, - 34697 - 11904: 0xEB6F, - 34699 - 11904: 0x99CD, - 34700 - 11904: 0xA0C9, - 34701 - 11904: 0xBFC4, - 34703 - 11904: 0xEB5C, - 34704 - 11904: 0xEB68, - 34705 - 11904: 0xEB69, - 34706 - 11904: 0xEB5F, - 34707 - 11904: 0xEB5E, - 34708 - 11904: 0xEB6C, - 34710 - 11904: 0xEB62, - 34711 - 11904: 0xEB5D, - 34712 - 11904: 0xEB63, - 34714 - 11904: 0xEB6E, - 34715 - 11904: 0xEB5B, - 34716 - 11904: 0xEB6D, - 34717 - 11904: 0xEB6A, - 34718 - 11904: 0xBFC2, - 34719 - 11904: 0xBFC1, - 34722 - 11904: 0xBFC3, - 34723 - 11904: 0xEB66, - 34724 - 11904: 0xF0CB, - 34725 - 11904: 0x9ADB, - 34729 - 11904: 0xA0C6, - 34730 - 11904: 0xEE59, - 34731 - 11904: 0xC1B1, - 34732 - 11904: 0xEE5D, - 34733 - 11904: 0xEE5A, - 34734 - 11904: 0xEE61, - 34735 - 11904: 0xEE67, - 34736 - 11904: 0xEE5C, - 34737 - 11904: 0x8FB4, - 34738 - 11904: 0xEE70, - 34739 - 11904: 0xC1AE, - 34740 - 11904: 0xEE6A, - 34741 - 11904: 0xEE5F, - 34742 - 11904: 0xEE6B, - 34743 - 11904: 0xEE66, - 34744 - 11904: 0xEE6D, - 34745 - 11904: 0xEE5E, - 34746 - 11904: 0xC1B3, - 34747 - 11904: 0xC1B2, - 34748 - 11904: 0xEE60, - 34749 - 11904: 0xEE6E, - 34750 - 11904: 0xEE58, - 34751 - 11904: 0xEE6C, - 34752 - 11904: 0xC1AC, - 34753 - 11904: 0xA0D7, - 34754 - 11904: 0xEE64, - 34755 - 11904: 0xEE63, - 34756 - 11904: 0xEE68, - 34757 - 11904: 0xEE5B, - 34758 - 11904: 0xC1B0, - 34760 - 11904: 0xC1B4, - 34761 - 11904: 0xEE62, - 34762 - 11904: 0xEE69, - 34763 - 11904: 0xC1B5, - 34764 - 11904: 0xEE65, - 34766 - 11904: 0xA0C7, - 34769 - 11904: 0xC1AD, - 34770 - 11904: 0xC1AF, - 34771 - 11904: 0xF0C7, - 34772 - 11904: 0xF0C5, - 34774 - 11904: 0xA043, - 34775 - 11904: 0xF0CC, - 34776 - 11904: 0xF0C9, - 34777 - 11904: 0xF0CD, - 34778 - 11904: 0x8FB5, - 34779 - 11904: 0xF0BE, - 34780 - 11904: 0xF0C6, - 34781 - 11904: 0xF0D1, - 34782 - 11904: 0xEE6F, - 34783 - 11904: 0xF0C2, - 34784 - 11904: 0xC2CF, - 34785 - 11904: 0xE7A5, - 34786 - 11904: 0xF0BD, - 34787 - 11904: 0xF0CA, - 34788 - 11904: 0xF0C4, - 34789 - 11904: 0xF0C1, - 34790 - 11904: 0xF0BC, - 34791 - 11904: 0xF0BB, - 34792 - 11904: 0xF0D0, - 34794 - 11904: 0xF0C0, - 34795 - 11904: 0xF0BF, - 34796 - 11904: 0xC2CD, - 34797 - 11904: 0xF0C8, - 34798 - 11904: 0x8FB2, - 34799 - 11904: 0xC2CC, - 34802 - 11904: 0xC2CE, - 34803 - 11904: 0xF0C3, - 34804 - 11904: 0xF0CF, - 34805 - 11904: 0xA061, - 34806 - 11904: 0xF2DE, - 34807 - 11904: 0xF2DF, - 34809 - 11904: 0xC3C9, - 34810 - 11904: 0xF2DC, - 34811 - 11904: 0xC3C6, - 34812 - 11904: 0xF2E4, - 34814 - 11904: 0xC3CA, - 34815 - 11904: 0xF2E6, - 34816 - 11904: 0xF2DB, - 34817 - 11904: 0xF0CE, - 34818 - 11904: 0xF2E8, - 34819 - 11904: 0xF2DD, - 34820 - 11904: 0x9E5E, - 34821 - 11904: 0xC3C7, - 34822 - 11904: 0xF2E3, - 34824 - 11904: 0xF2E5, - 34825 - 11904: 0xF2E0, - 34826 - 11904: 0xF2E7, - 34827 - 11904: 0xF2E2, - 34828 - 11904: 0xF2E1, - 34829 - 11904: 0xC3C8, - 34831 - 11904: 0xA063, - 34832 - 11904: 0xF4C5, - 34833 - 11904: 0xF4C6, - 34835 - 11904: 0xF4C8, - 34836 - 11904: 0xC4AE, - 34837 - 11904: 0xC4AF, - 34838 - 11904: 0xF4C9, - 34839 - 11904: 0xF4C7, - 34840 - 11904: 0x9FE8, - 34841 - 11904: 0xF4C4, - 34843 - 11904: 0xF642, - 34844 - 11904: 0xF645, - 34845 - 11904: 0xF641, - 34847 - 11904: 0xC4FA, - 34848 - 11904: 0xF643, - 34849 - 11904: 0xC4F9, - 34850 - 11904: 0xC4F8, - 34851 - 11904: 0xC4F7, - 34852 - 11904: 0xF644, - 34853 - 11904: 0xF751, - 34854 - 11904: 0xF74F, - 34855 - 11904: 0x9CB2, - 34856 - 11904: 0xF74E, - 34857 - 11904: 0xF640, - 34858 - 11904: 0xF750, - 34859 - 11904: 0xF646, - 34860 - 11904: 0xF74D, - 34861 - 11904: 0x957C, - 34862 - 11904: 0xF7F9, - 34863 - 11904: 0xF7D7, - 34864 - 11904: 0xF7F7, - 34865 - 11904: 0xC5DB, - 34866 - 11904: 0xF7F8, - 34867 - 11904: 0xF7FA, - 34869 - 11904: 0xF8BF, - 34870 - 11904: 0xC5FA, - 34871 - 11904: 0xF8BE, - 34872 - 11904: 0xF8BD, - 34873 - 11904: 0xC5FB, - 34875 - 11904: 0xC65A, - 34876 - 11904: 0xF96E, - 34877 - 11904: 0xF9A7, - 34878 - 11904: 0xF9A6, - 34879 - 11904: 0xF9A8, - 34880 - 11904: 0xA6E5, - 34881 - 11904: 0xD0AA, - 34882 - 11904: 0x9FC7, - 34883 - 11904: 0xD3CF, - 34884 - 11904: 0xD3D0, - 34885 - 11904: 0x8FBB, - 34886 - 11904: 0x8FBC, - 34888 - 11904: 0xDBC0, - 34890 - 11904: 0xF647, - 34891 - 11904: 0xF8C0, - 34892 - 11904: 0xA6E6, - 34893 - 11904: 0xAD6C, - 34894 - 11904: 0xD0AB, - 34895 - 11904: 0x8FEC, - 34898 - 11904: 0xD7B1, - 34899 - 11904: 0xB34E, - 34901 - 11904: 0xDBC2, - 34902 - 11904: 0xDBC1, - 34903 - 11904: 0xB5F3, - 34905 - 11904: 0xB8C5, - 34906 - 11904: 0xE7C1, - 34907 - 11904: 0xBDC3, - 34909 - 11904: 0xBDC4, - 34910 - 11904: 0x8FC0, - 34912 - 11904: 0x936A, - 34913 - 11904: 0xBFC5, - 34914 - 11904: 0xC5FC, - 34915 - 11904: 0xA6E7, - 34916 - 11904: 0x8BE4, - 34917 - 11904: 0x9C7C, - 34919 - 11904: 0xD0AC, - 34920 - 11904: 0xAAED, - 34921 - 11904: 0xD0AE, - 34922 - 11904: 0xD0AD, - 34923 - 11904: 0xAD6D, - 34925 - 11904: 0xD3D1, - 34926 - 11904: 0x95A1, - 34927 - 11904: 0xD3D8, - 34928 - 11904: 0xB049, - 34929 - 11904: 0xD3D6, - 34930 - 11904: 0xD3D4, - 34932 - 11904: 0xD3DB, - 34933 - 11904: 0xD3D2, - 34934 - 11904: 0xD3D3, - 34935 - 11904: 0xB04A, - 34937 - 11904: 0xB04E, - 34940 - 11904: 0xD3DC, - 34941 - 11904: 0xB04D, - 34942 - 11904: 0xD3DA, - 34943 - 11904: 0xD3D7, - 34944 - 11904: 0xD3D5, - 34945 - 11904: 0xB04B, - 34946 - 11904: 0xB04C, - 34947 - 11904: 0xD3D9, - 34948 - 11904: 0xFEEC, - 34951 - 11904: 0x95A3, - 34952 - 11904: 0xB350, - 34953 - 11904: 0xD7B2, - 34955 - 11904: 0xB355, - 34956 - 11904: 0xD7C2, - 34957 - 11904: 0xB354, - 34958 - 11904: 0xD7C4, - 34959 - 11904: 0x8C45, - 34960 - 11904: 0x8CB8, - 34961 - 11904: 0xD7B8, - 34962 - 11904: 0xB352, - 34963 - 11904: 0xD7C3, - 34965 - 11904: 0xD7B3, - 34966 - 11904: 0xB353, - 34967 - 11904: 0xD7BF, - 34968 - 11904: 0xD7BB, - 34969 - 11904: 0xD7BD, - 34970 - 11904: 0xD7B7, - 34971 - 11904: 0xD7BE, - 34972 - 11904: 0x8FC1, - 34973 - 11904: 0x87B7, - 34974 - 11904: 0xB34F, - 34975 - 11904: 0xD7BA, - 34976 - 11904: 0xA052, - 34977 - 11904: 0xD7B9, - 34978 - 11904: 0xD7B5, - 34980 - 11904: 0xD7C0, - 34983 - 11904: 0xD7BC, - 34984 - 11904: 0xD7B4, - 34986 - 11904: 0xD7B6, - 34987 - 11904: 0xB351, - 34988 - 11904: 0xD7C1, - 34990 - 11904: 0x99D0, - 34993 - 11904: 0xB5F6, - 34994 - 11904: 0xDBCD, - 34996 - 11904: 0x8FC3, - 34997 - 11904: 0x8FC4, - 34998 - 11904: 0xDBC9, - 34999 - 11904: 0xDBCB, - 35000 - 11904: 0xDBC6, - 35001 - 11904: 0xDBC5, - 35002 - 11904: 0xDBC3, - 35004 - 11904: 0xDBCA, - 35005 - 11904: 0xDBCC, - 35006 - 11904: 0xDBC8, - 35007 - 11904: 0x95A4, - 35008 - 11904: 0xDBC7, - 35009 - 11904: 0xB5F4, - 35010 - 11904: 0xB5F5, - 35013 - 11904: 0x8FC6, - 35015 - 11904: 0x9E60, - 35017 - 11904: 0xDBCF, - 35018 - 11904: 0xB8CD, - 35019 - 11904: 0xDFF2, - 35020 - 11904: 0xDFF8, - 35021 - 11904: 0xDFF3, - 35022 - 11904: 0xDFF4, - 35023 - 11904: 0xF9D8, - 35024 - 11904: 0xDFF9, - 35026 - 11904: 0xB8CF, - 35028 - 11904: 0xB8C7, - 35029 - 11904: 0xB8CE, - 35030 - 11904: 0xDFF1, - 35031 - 11904: 0xDBC4, - 35032 - 11904: 0xB8CA, - 35033 - 11904: 0xB8C8, - 35034 - 11904: 0xDFF7, - 35035 - 11904: 0xDFF6, - 35036 - 11904: 0xB8C9, - 35037 - 11904: 0xB8CB, - 35038 - 11904: 0xDFF5, - 35039 - 11904: 0xB8C6, - 35041 - 11904: 0xB8CC, - 35046 - 11904: 0x95A5, - 35047 - 11904: 0xE3F6, - 35048 - 11904: 0xBB74, - 35051 - 11904: 0xE442, - 35052 - 11904: 0xE441, - 35054 - 11904: 0xE3FB, - 35055 - 11904: 0xBB76, - 35056 - 11904: 0xE440, - 35057 - 11904: 0xE3F7, - 35058 - 11904: 0xE3F8, - 35059 - 11904: 0xBB6E, - 35060 - 11904: 0xBB70, - 35061 - 11904: 0x9CB3, - 35062 - 11904: 0xE3FD, - 35063 - 11904: 0xE3F5, - 35064 - 11904: 0xBB72, - 35065 - 11904: 0xBB71, - 35066 - 11904: 0xE3F9, - 35067 - 11904: 0xE3FE, - 35068 - 11904: 0xE3FC, - 35069 - 11904: 0xBB73, - 35070 - 11904: 0xE3FA, - 35071 - 11904: 0x99D1, - 35072 - 11904: 0xFEF1, - 35073 - 11904: 0xDBCE, - 35074 - 11904: 0xBB6F, - 35077 - 11904: 0xE7C2, - 35078 - 11904: 0xE7C9, - 35079 - 11904: 0xBDC6, - 35081 - 11904: 0xE7CD, - 35082 - 11904: 0xBDCA, - 35083 - 11904: 0xE7C5, - 35084 - 11904: 0xE7C3, - 35086 - 11904: 0xE7CC, - 35088 - 11904: 0xBDC5, - 35089 - 11904: 0xE7CB, - 35090 - 11904: 0xBDC7, - 35091 - 11904: 0xBDC8, - 35092 - 11904: 0xE7C4, - 35093 - 11904: 0xBDC9, - 35094 - 11904: 0xE7CA, - 35095 - 11904: 0xE7C6, - 35096 - 11904: 0xE7C7, - 35097 - 11904: 0xE7C8, - 35098 - 11904: 0xBB75, - 35102 - 11904: 0xEB70, - 35103 - 11904: 0xEB7C, - 35105 - 11904: 0xBFCA, - 35106 - 11904: 0xEB77, - 35107 - 11904: 0xEB79, - 35108 - 11904: 0x99D2, - 35109 - 11904: 0xBFC8, - 35110 - 11904: 0xEB71, - 35111 - 11904: 0xEB75, - 35113 - 11904: 0xEB78, - 35114 - 11904: 0xBFC6, - 35115 - 11904: 0xBFC9, - 35116 - 11904: 0xEB7B, - 35117 - 11904: 0xEB73, - 35118 - 11904: 0xEB74, - 35119 - 11904: 0xEB7A, - 35120 - 11904: 0xEB72, - 35121 - 11904: 0xEB76, - 35122 - 11904: 0xBFC7, - 35123 - 11904: 0xEE72, - 35125 - 11904: 0xEE71, - 35126 - 11904: 0xC1B7, - 35127 - 11904: 0xEE77, - 35128 - 11904: 0xC1B9, - 35131 - 11904: 0xC1B6, - 35132 - 11904: 0xEE73, - 35133 - 11904: 0xC1BA, - 35134 - 11904: 0xEE74, - 35137 - 11904: 0xEE75, - 35138 - 11904: 0xEE78, - 35139 - 11904: 0x9CC2, - 35140 - 11904: 0xC1B8, - 35142 - 11904: 0xF0D6, - 35143 - 11904: 0x99D3, - 35145 - 11904: 0xF0D9, - 35147 - 11904: 0xF0D3, - 35148 - 11904: 0xF0D5, - 35149 - 11904: 0x95A7, - 35151 - 11904: 0xF0D4, - 35152 - 11904: 0xF0D7, - 35153 - 11904: 0xF0D8, - 35154 - 11904: 0xEE76, - 35155 - 11904: 0xF0D2, - 35156 - 11904: 0x95A9, - 35158 - 11904: 0xC3CD, - 35159 - 11904: 0xF2EC, - 35160 - 11904: 0xF2EF, - 35161 - 11904: 0xF2F1, - 35162 - 11904: 0xF2EA, - 35163 - 11904: 0xF2EB, - 35164 - 11904: 0xF2EE, - 35165 - 11904: 0xF2F0, - 35166 - 11904: 0xC3CE, - 35167 - 11904: 0xC3CC, - 35168 - 11904: 0xC3CB, - 35169 - 11904: 0xF2ED, - 35170 - 11904: 0xF2E9, - 35171 - 11904: 0xF4CA, - 35172 - 11904: 0xC4B0, - 35173 - 11904: 0x95A6, - 35174 - 11904: 0xF4CB, - 35177 - 11904: 0xF649, - 35178 - 11904: 0xC4FB, - 35179 - 11904: 0xF64B, - 35180 - 11904: 0xC4FC, - 35181 - 11904: 0xF648, - 35182 - 11904: 0xF64A, - 35183 - 11904: 0xC5A8, - 35185 - 11904: 0xF752, - 35186 - 11904: 0xC5A7, - 35187 - 11904: 0xF7FD, - 35188 - 11904: 0xF7FC, - 35190 - 11904: 0xF7FB, - 35191 - 11904: 0x9C5D, - 35193 - 11904: 0xF948, - 35194 - 11904: 0xF949, - 35195 - 11904: 0xF94B, - 35196 - 11904: 0xF94A, - 35198 - 11904: 0xCA50, - 35199 - 11904: 0xA6E8, - 35200 - 11904: 0x98E2, - 35201 - 11904: 0xAD6E, - 35202 - 11904: 0xD7C5, - 35203 - 11904: 0xB5F7, - 35205 - 11904: 0xDFFA, - 35206 - 11904: 0xC2D0, - 35207 - 11904: 0x8FC9, - 35208 - 11904: 0xF2F2, - 35209 - 11904: 0xA0C2, - 35210 - 11904: 0x8FCA, - 35211 - 11904: 0xA8A3, - 35215 - 11904: 0xB357, - 35217 - 11904: 0x99D4, - 35219 - 11904: 0xB356, - 35220 - 11904: 0xA0B9, - 35221 - 11904: 0xDBD0, - 35222 - 11904: 0xB5F8, - 35223 - 11904: 0xDBD2, - 35224 - 11904: 0xDBD1, - 35227 - 11904: 0xDFFB, - 35228 - 11904: 0xB8D0, - 35229 - 11904: 0xE443, - 35230 - 11904: 0xE446, - 35231 - 11904: 0xE445, - 35233 - 11904: 0xE444, - 35234 - 11904: 0xE7CE, - 35235 - 11904: 0xE7D0, - 35236 - 11904: 0xE7CF, - 35237 - 11904: 0x9B58, - 35238 - 11904: 0xBFCC, - 35239 - 11904: 0x8FCD, - 35241 - 11904: 0xA0D4, - 35242 - 11904: 0xBFCB, - 35244 - 11904: 0xC1BB, - 35245 - 11904: 0xEE79, - 35246 - 11904: 0xEE7B, - 35247 - 11904: 0xEE7A, - 35250 - 11904: 0xC2D1, - 35254 - 11904: 0xF2F4, - 35255 - 11904: 0xF2F3, - 35257 - 11904: 0xF4CC, - 35258 - 11904: 0xC4B1, - 35260 - 11904: 0x8FCE, - 35261 - 11904: 0xC4FD, - 35262 - 11904: 0xF754, - 35263 - 11904: 0xF753, - 35264 - 11904: 0xC65B, - 35265 - 11904: 0x8BE5, - 35270 - 11904: 0x8979, - 35282 - 11904: 0xA8A4, - 35283 - 11904: 0xD0AF, - 35284 - 11904: 0xAD6F, - 35285 - 11904: 0xD7C8, - 35286 - 11904: 0xD7C6, - 35289 - 11904: 0xD7C7, - 35290 - 11904: 0xDBD4, - 35291 - 11904: 0xDBD5, - 35292 - 11904: 0xE043, - 35293 - 11904: 0xDBD3, - 35295 - 11904: 0xDFFC, - 35296 - 11904: 0xE041, - 35297 - 11904: 0xE040, - 35298 - 11904: 0xE042, - 35299 - 11904: 0xB8D1, - 35300 - 11904: 0xDFFE, - 35301 - 11904: 0xDFFD, - 35302 - 11904: 0xE044, - 35303 - 11904: 0x8FD0, - 35304 - 11904: 0xE449, - 35305 - 11904: 0xE447, - 35307 - 11904: 0xE448, - 35308 - 11904: 0xE7D3, - 35309 - 11904: 0xE7D1, - 35312 - 11904: 0xE7D2, - 35313 - 11904: 0xEB7D, - 35314 - 11904: 0xEE7C, - 35315 - 11904: 0xEE7D, - 35316 - 11904: 0xC2D2, - 35318 - 11904: 0xF2F5, - 35319 - 11904: 0xF4CD, - 35320 - 11904: 0xC4B2, - 35322 - 11904: 0xF64C, - 35323 - 11904: 0xF755, - 35324 - 11904: 0xC5A9, - 35326 - 11904: 0xF7FE, - 35327 - 11904: 0xF94C, - 35328 - 11904: 0xA8A5, - 35330 - 11904: 0xAD71, - 35331 - 11904: 0xAD72, - 35332 - 11904: 0xD0B0, - 35335 - 11904: 0xD0B1, - 35336 - 11904: 0xAD70, - 35338 - 11904: 0xB054, - 35340 - 11904: 0xB052, - 35342 - 11904: 0xB051, - 35343 - 11904: 0xB058, - 35344 - 11904: 0xB050, - 35345 - 11904: 0xB059, - 35346 - 11904: 0xD3DD, - 35347 - 11904: 0xB056, - 35349 - 11904: 0xB053, - 35350 - 11904: 0xB057, - 35351 - 11904: 0xB055, - 35352 - 11904: 0xB04F, - 35355 - 11904: 0xB35F, - 35356 - 11904: 0x95B6, - 35357 - 11904: 0xB359, - 35358 - 11904: 0xD7CC, - 35359 - 11904: 0xB35E, - 35362 - 11904: 0xB360, - 35363 - 11904: 0xB35A, - 35365 - 11904: 0xB35B, - 35367 - 11904: 0xD7CA, - 35369 - 11904: 0x99D6, - 35370 - 11904: 0xB358, - 35371 - 11904: 0x95E5, - 35372 - 11904: 0xD7CB, - 35373 - 11904: 0xB35D, - 35376 - 11904: 0xD7C9, - 35377 - 11904: 0xB35C, - 35380 - 11904: 0xB644, - 35382 - 11904: 0xB646, - 35384 - 11904: 0x99D7, - 35385 - 11904: 0xDBD8, - 35386 - 11904: 0xB645, - 35387 - 11904: 0xB5F9, - 35388 - 11904: 0xB5FD, - 35389 - 11904: 0x95B5, - 35390 - 11904: 0xB8E4, - 35391 - 11904: 0xE049, - 35392 - 11904: 0xDBDA, - 35393 - 11904: 0xB5FE, - 35396 - 11904: 0xDBDD, - 35397 - 11904: 0xDBDE, - 35398 - 11904: 0xB643, - 35400 - 11904: 0xDBE0, - 35401 - 11904: 0xA0CA, - 35402 - 11904: 0xDBE2, - 35404 - 11904: 0xDBE3, - 35405 - 11904: 0xDBD7, - 35406 - 11904: 0xDBD6, - 35407 - 11904: 0xDBE4, - 35408 - 11904: 0xB642, - 35409 - 11904: 0xDBE1, - 35410 - 11904: 0xDBDF, - 35412 - 11904: 0xB640, - 35413 - 11904: 0xB5FB, - 35414 - 11904: 0xB647, - 35415 - 11904: 0xDBDB, - 35416 - 11904: 0xDBDC, - 35417 - 11904: 0xDBD9, - 35419 - 11904: 0xB641, - 35422 - 11904: 0xB5FC, - 35424 - 11904: 0xB5FA, - 35425 - 11904: 0xE048, - 35426 - 11904: 0xB8DF, - 35427 - 11904: 0xB8DA, - 35430 - 11904: 0xB8D5, - 35431 - 11904: 0x9FFD, - 35432 - 11904: 0xB8E5, - 35433 - 11904: 0xB8D6, - 35435 - 11904: 0xB8D2, - 35436 - 11904: 0xB8E1, - 35437 - 11904: 0xB8DE, - 35438 - 11904: 0xB8E0, - 35440 - 11904: 0xB8D7, - 35441 - 11904: 0xB8DC, - 35442 - 11904: 0xB8D3, - 35443 - 11904: 0xB8D4, - 35444 - 11904: 0xE050, - 35445 - 11904: 0xE04D, - 35446 - 11904: 0xE045, - 35447 - 11904: 0xE04A, - 35449 - 11904: 0xB8E2, - 35450 - 11904: 0xE051, - 35451 - 11904: 0xB8E3, - 35452 - 11904: 0xB8D9, - 35454 - 11904: 0xA058, - 35455 - 11904: 0xE047, - 35457 - 11904: 0xE04F, - 35458 - 11904: 0xE04B, - 35459 - 11904: 0xE04E, - 35460 - 11904: 0xE04C, - 35461 - 11904: 0xB8DD, - 35462 - 11904: 0xE046, - 35463 - 11904: 0xB8D8, - 35467 - 11904: 0xE44C, - 35468 - 11904: 0xBB78, - 35469 - 11904: 0xBB7B, - 35471 - 11904: 0xE44E, - 35472 - 11904: 0x8FD6, - 35473 - 11904: 0xBBA5, - 35474 - 11904: 0xE44D, - 35475 - 11904: 0xBB7D, - 35476 - 11904: 0x99D8, - 35477 - 11904: 0xBDCF, - 35478 - 11904: 0xE44F, - 35480 - 11904: 0xBBA4, - 35481 - 11904: 0xE44B, - 35482 - 11904: 0xBBA6, - 35484 - 11904: 0x8FD3, - 35486 - 11904: 0xBB79, - 35488 - 11904: 0xB8DB, - 35489 - 11904: 0xBB7C, - 35491 - 11904: 0xBB7A, - 35492 - 11904: 0xBB7E, - 35493 - 11904: 0xBBA2, - 35494 - 11904: 0xBB77, - 35495 - 11904: 0xBBA7, - 35496 - 11904: 0xBBA3, - 35497 - 11904: 0x8FE5, - 35498 - 11904: 0xBBA1, - 35499 - 11904: 0xE44A, - 35503 - 11904: 0x8FE9, - 35504 - 11904: 0xBDD6, - 35506 - 11904: 0xBDD2, - 35508 - 11904: 0x99D9, - 35510 - 11904: 0xBDD9, - 35512 - 11904: 0xE7D6, - 35513 - 11904: 0xBDDA, - 35514 - 11904: 0xE7E2, - 35515 - 11904: 0xE7DB, - 35516 - 11904: 0xBDCB, - 35517 - 11904: 0xE7E3, - 35518 - 11904: 0xE7DD, - 35519 - 11904: 0xBDD5, - 35520 - 11904: 0xE7DE, - 35522 - 11904: 0xBDD4, - 35523 - 11904: 0xE7E1, - 35524 - 11904: 0xBDCE, - 35525 - 11904: 0xE7DF, - 35526 - 11904: 0xE7D5, - 35527 - 11904: 0xBDCD, - 35528 - 11904: 0xEBAA, - 35529 - 11904: 0xBDD3, - 35531 - 11904: 0xBDD0, - 35532 - 11904: 0x8CF7, - 35533 - 11904: 0xBDD8, - 35535 - 11904: 0xE7D4, - 35537 - 11904: 0xE7D8, - 35538 - 11904: 0xBDCC, - 35539 - 11904: 0xE7D7, - 35540 - 11904: 0xE7D9, - 35541 - 11904: 0xE7DA, - 35542 - 11904: 0xBDD7, - 35543 - 11904: 0xE7DC, - 35544 - 11904: 0xE7E0, - 35545 - 11904: 0xE7E4, - 35546 - 11904: 0x927C, - 35547 - 11904: 0xBDDB, - 35548 - 11904: 0xBFD2, - 35549 - 11904: 0xEBA5, - 35550 - 11904: 0xEBAB, - 35551 - 11904: 0xEBA8, - 35552 - 11904: 0xEB7E, - 35553 - 11904: 0xEBAC, - 35554 - 11904: 0xEBA1, - 35556 - 11904: 0xEBA7, - 35558 - 11904: 0xBFCD, - 35559 - 11904: 0xBFD3, - 35560 - 11904: 0xEBAD, - 35562 - 11904: 0x9C45, - 35563 - 11904: 0xBFCF, - 35565 - 11904: 0xBFD9, - 35566 - 11904: 0xBFD4, - 35567 - 11904: 0xEBAF, - 35568 - 11904: 0xEBA9, - 35569 - 11904: 0xBFD0, - 35570 - 11904: 0xEBA2, - 35571 - 11904: 0xBFDA, - 35572 - 11904: 0xEBA3, - 35573 - 11904: 0xEBA4, - 35574 - 11904: 0xBFDB, - 35575 - 11904: 0xBFD8, - 35576 - 11904: 0xBDD1, - 35577 - 11904: 0x8CE8, - 35578 - 11904: 0xBFCE, - 35579 - 11904: 0xEBB0, - 35580 - 11904: 0xBFDC, - 35582 - 11904: 0xBFD5, - 35583 - 11904: 0xEBAE, - 35584 - 11904: 0xBFD1, - 35585 - 11904: 0xBFD6, - 35586 - 11904: 0xBFD7, - 35588 - 11904: 0xC1C3, - 35589 - 11904: 0xEEA4, - 35590 - 11904: 0xEEAD, - 35591 - 11904: 0xEEAA, - 35592 - 11904: 0xEEAC, - 35594 - 11904: 0xC1C0, - 35595 - 11904: 0xEEA5, - 35596 - 11904: 0x8FDE, - 35597 - 11904: 0xEEAB, - 35598 - 11904: 0xC1BC, - 35599 - 11904: 0xEEA7, - 35600 - 11904: 0xC1C4, - 35601 - 11904: 0xEEA3, - 35602 - 11904: 0xEEA8, - 35603 - 11904: 0xEEAF, - 35604 - 11904: 0xEBA6, - 35605 - 11904: 0xEEA9, - 35606 - 11904: 0xEEA2, - 35607 - 11904: 0xC1BD, - 35608 - 11904: 0xEEA1, - 35609 - 11904: 0xC1BE, - 35610 - 11904: 0xEEB0, - 35611 - 11904: 0xC1BF, - 35612 - 11904: 0xEEAE, - 35613 - 11904: 0xC1C2, - 35614 - 11904: 0xEE7E, - 35615 - 11904: 0x8FDF, - 35616 - 11904: 0xC1C1, - 35618 - 11904: 0xEEA6, - 35619 - 11904: 0xF0DC, - 35620 - 11904: 0xF0EA, - 35621 - 11904: 0xF0E5, - 35622 - 11904: 0xF0E7, - 35623 - 11904: 0xF0DB, - 35624 - 11904: 0xC2D3, - 35626 - 11904: 0xF0DA, - 35627 - 11904: 0xC2D6, - 35628 - 11904: 0xC2D5, - 35629 - 11904: 0xA04B, - 35630 - 11904: 0xF0E9, - 35631 - 11904: 0xF0E1, - 35632 - 11904: 0xF0DE, - 35633 - 11904: 0xF0E4, - 35635 - 11904: 0xF0DD, - 35637 - 11904: 0xF0DF, - 35638 - 11904: 0xF0E8, - 35639 - 11904: 0xF0E6, - 35641 - 11904: 0xC2D4, - 35642 - 11904: 0xF0ED, - 35643 - 11904: 0xF0EB, - 35644 - 11904: 0xF0E2, - 35645 - 11904: 0xF0EC, - 35646 - 11904: 0xF0E3, - 35647 - 11904: 0x8FE2, - 35648 - 11904: 0xF2F9, - 35649 - 11904: 0xC3CF, - 35650 - 11904: 0xF341, - 35651 - 11904: 0xA0CC, - 35653 - 11904: 0xF64F, - 35654 - 11904: 0xC3D6, - 35655 - 11904: 0xF0E0, - 35656 - 11904: 0xF2F7, - 35657 - 11904: 0xC3D2, - 35658 - 11904: 0xF2F8, - 35659 - 11904: 0xF2FD, - 35660 - 11904: 0x8FE3, - 35661 - 11904: 0x8FE4, - 35662 - 11904: 0xC3D4, - 35663 - 11904: 0xC3D5, - 35664 - 11904: 0xF2F6, - 35665 - 11904: 0xF340, - 35666 - 11904: 0xF342, - 35667 - 11904: 0xF2FA, - 35668 - 11904: 0xF2FC, - 35669 - 11904: 0xF2FE, - 35670 - 11904: 0xF2FB, - 35671 - 11904: 0xF343, - 35672 - 11904: 0xC3D1, - 35673 - 11904: 0xC3D7, - 35674 - 11904: 0xC3D3, - 35676 - 11904: 0xC3D0, - 35677 - 11904: 0xF4D0, - 35678 - 11904: 0x9BC4, - 35679 - 11904: 0xC4B7, - 35680 - 11904: 0xF4CE, - 35682 - 11904: 0x9BFC, - 35683 - 11904: 0xF4D2, - 35685 - 11904: 0xF4D3, - 35686 - 11904: 0xC4B5, - 35687 - 11904: 0xF4D4, - 35688 - 11904: 0xF4D1, - 35689 - 11904: 0x964C, - 35690 - 11904: 0xF4CF, - 35691 - 11904: 0xC4B8, - 35692 - 11904: 0xC4B4, - 35693 - 11904: 0xF4D5, - 35695 - 11904: 0xC4B6, - 35696 - 11904: 0xC4B3, - 35700 - 11904: 0xC4FE, - 35703 - 11904: 0xC540, - 35704 - 11904: 0xF64E, - 35705 - 11904: 0xF64D, - 35706 - 11904: 0xF650, - 35707 - 11904: 0xF651, - 35709 - 11904: 0xC541, - 35710 - 11904: 0xF756, - 35711 - 11904: 0xF75B, - 35712 - 11904: 0xC5AA, - 35713 - 11904: 0x9AF6, - 35714 - 11904: 0xF758, - 35715 - 11904: 0x8CAE, - 35716 - 11904: 0xF757, - 35717 - 11904: 0xF75A, - 35718 - 11904: 0xF759, - 35720 - 11904: 0xF843, - 35722 - 11904: 0xC5DC, - 35723 - 11904: 0xF842, - 35724 - 11904: 0xF840, - 35726 - 11904: 0xF841, - 35727 - 11904: 0x87CB, - 35728 - 11904: 0x8FE7, - 35730 - 11904: 0xC5FE, - 35731 - 11904: 0xC5FD, - 35732 - 11904: 0xF8C1, - 35733 - 11904: 0xF8C2, - 35734 - 11904: 0xC640, - 35736 - 11904: 0xF94D, - 35737 - 11904: 0xF94E, - 35738 - 11904: 0xC667, - 35739 - 11904: 0x8FE8, - 35740 - 11904: 0xC66D, - 35742 - 11904: 0xF9A9, - 35743 - 11904: 0xF9C8, - 35744 - 11904: 0x8BE7, - 35774 - 11904: 0x897A, - 35810 - 11904: 0x897B, - 35895 - 11904: 0xA8A6, - 35897 - 11904: 0xD7CD, - 35899 - 11904: 0xD7CE, - 35900 - 11904: 0xE052, - 35901 - 11904: 0xE450, - 35902 - 11904: 0xE7E5, - 35903 - 11904: 0xC1C6, - 35905 - 11904: 0xC1C5, - 35906 - 11904: 0xF0EE, - 35907 - 11904: 0xF344, - 35909 - 11904: 0xF844, - 35910 - 11904: 0xA8A7, - 35911 - 11904: 0xD3DE, - 35912 - 11904: 0xB05A, - 35913 - 11904: 0xB361, - 35914 - 11904: 0xE054, - 35915 - 11904: 0xE053, - 35916 - 11904: 0xBDDC, - 35917 - 11904: 0xE7E6, - 35918 - 11904: 0xBDDD, - 35919 - 11904: 0xEEB1, - 35920 - 11904: 0xC2D7, - 35921 - 11904: 0x99DA, - 35924 - 11904: 0xC676, - 35925 - 11904: 0xA8A8, - 35926 - 11904: 0xCDCB, - 35927 - 11904: 0xD3DF, - 35930 - 11904: 0xB362, - 35932 - 11904: 0xD7CF, - 35933 - 11904: 0xD7D0, - 35935 - 11904: 0xDBE5, - 35937 - 11904: 0xB648, - 35938 - 11904: 0xB8E6, - 35940 - 11904: 0xE056, - 35941 - 11904: 0xE055, - 35942 - 11904: 0xE057, - 35944 - 11904: 0xE451, - 35945 - 11904: 0xE452, - 35946 - 11904: 0xBBA8, - 35947 - 11904: 0xBFDD, - 35948 - 11904: 0xBDDE, - 35949 - 11904: 0xBFDE, - 35951 - 11904: 0xEEB5, - 35952 - 11904: 0xEEB2, - 35953 - 11904: 0xEEB4, - 35954 - 11904: 0xEEB3, - 35955 - 11904: 0xC1C7, - 35957 - 11904: 0xF0EF, - 35958 - 11904: 0xF346, - 35959 - 11904: 0xF345, - 35960 - 11904: 0xCBA4, - 35961 - 11904: 0xB05C, - 35962 - 11904: 0xB05B, - 35963 - 11904: 0xD3E0, - 35965 - 11904: 0xD7D1, - 35968 - 11904: 0xDBE7, - 35969 - 11904: 0xDBE6, - 35970 - 11904: 0xB649, - 35972 - 11904: 0xE059, - 35973 - 11904: 0xE05A, - 35974 - 11904: 0xE058, - 35977 - 11904: 0xB8E8, - 35978 - 11904: 0xB8E7, - 35980 - 11904: 0xBBAA, - 35981 - 11904: 0xBBA9, - 35983 - 11904: 0xE7E7, - 35984 - 11904: 0xEBB3, - 35985 - 11904: 0xEBB1, - 35986 - 11904: 0xEBB2, - 35987 - 11904: 0xBFDF, - 35988 - 11904: 0xEEB7, - 35989 - 11904: 0xEEB6, - 35991 - 11904: 0xF0F2, - 35992 - 11904: 0xF0F1, - 35993 - 11904: 0xF0F0, - 35994 - 11904: 0xF347, - 35995 - 11904: 0x8FED, - 35996 - 11904: 0xF9AA, - 35997 - 11904: 0xA8A9, - 35998 - 11904: 0xAD73, - 35999 - 11904: 0x95C0, - 36000 - 11904: 0xAD74, - 36001 - 11904: 0xB05D, - 36002 - 11904: 0xB05E, - 36003 - 11904: 0xD3E2, - 36004 - 11904: 0xD3E1, - 36005 - 11904: 0xD7D2, - 36007 - 11904: 0xB368, - 36008 - 11904: 0xB366, - 36009 - 11904: 0xB363, - 36010 - 11904: 0xB367, - 36011 - 11904: 0xB365, - 36012 - 11904: 0xB364, - 36013 - 11904: 0xA0CB, - 36015 - 11904: 0xB64A, - 36016 - 11904: 0xDBEA, - 36018 - 11904: 0xB8ED, - 36019 - 11904: 0xB64C, - 36020 - 11904: 0xB651, - 36021 - 11904: 0xDBEC, - 36022 - 11904: 0xB653, - 36023 - 11904: 0xB652, - 36024 - 11904: 0xB655, - 36025 - 11904: 0xDBEB, - 36026 - 11904: 0xDBE8, - 36027 - 11904: 0xB64F, - 36028 - 11904: 0xB64B, - 36029 - 11904: 0xB64D, - 36030 - 11904: 0xDBE9, - 36031 - 11904: 0xB654, - 36032 - 11904: 0xB650, - 36033 - 11904: 0xB64E, - 36034 - 11904: 0xB8EF, - 36035 - 11904: 0xB8EE, - 36036 - 11904: 0xB8EC, - 36037 - 11904: 0xB8F0, - 36039 - 11904: 0xB8EA, - 36040 - 11904: 0xB8EB, - 36042 - 11904: 0xB8E9, - 36044 - 11904: 0xE05B, - 36045 - 11904: 0x9E48, - 36047 - 11904: 0xE454, - 36049 - 11904: 0xBBAC, - 36050 - 11904: 0xBBAD, - 36051 - 11904: 0xBBAB, - 36052 - 11904: 0x99DB, - 36053 - 11904: 0xE453, - 36054 - 11904: 0x8FF3, - 36055 - 11904: 0xE455, - 36057 - 11904: 0xE7EA, - 36058 - 11904: 0xE7EC, - 36059 - 11904: 0x8FF9, - 36060 - 11904: 0xBDE7, - 36061 - 11904: 0xE7ED, - 36062 - 11904: 0xBDE0, - 36063 - 11904: 0xE7E9, - 36064 - 11904: 0xBDDF, - 36065 - 11904: 0xBDE9, - 36066 - 11904: 0xBDE5, - 36067 - 11904: 0xBDE6, - 36068 - 11904: 0xBDE2, - 36069 - 11904: 0xE7E8, - 36070 - 11904: 0xBDE1, - 36071 - 11904: 0xE7EE, - 36072 - 11904: 0xE7EB, - 36073 - 11904: 0x95C1, - 36074 - 11904: 0xBDE8, - 36075 - 11904: 0xA04E, - 36076 - 11904: 0xBDE3, - 36077 - 11904: 0xBDE4, - 36078 - 11904: 0xEBB5, - 36080 - 11904: 0xEBB7, - 36081 - 11904: 0xEBB6, - 36082 - 11904: 0x99DC, - 36083 - 11904: 0xEBB8, - 36084 - 11904: 0xBFE0, - 36085 - 11904: 0xEBB4, - 36087 - 11904: 0xA064, - 36088 - 11904: 0xC1CB, - 36089 - 11904: 0xEEB8, - 36090 - 11904: 0xC1C8, - 36091 - 11904: 0xC1CC, - 36092 - 11904: 0xC1CA, - 36093 - 11904: 0xC1C9, - 36094 - 11904: 0xF0F3, - 36096 - 11904: 0xF0F6, - 36098 - 11904: 0xF0F5, - 36099 - 11904: 0x8FF7, - 36100 - 11904: 0xF0F4, - 36101 - 11904: 0xC2D8, - 36102 - 11904: 0xF348, - 36103 - 11904: 0xF349, - 36104 - 11904: 0xC3D8, - 36105 - 11904: 0xF34A, - 36106 - 11904: 0xC3D9, - 36107 - 11904: 0x89B0, - 36108 - 11904: 0xA048, - 36109 - 11904: 0xC4BA, - 36111 - 11904: 0xC4B9, - 36112 - 11904: 0xF652, - 36113 - 11904: 0x8FFB, - 36114 - 11904: 0x8FF6, - 36115 - 11904: 0xC542, - 36116 - 11904: 0xF653, - 36117 - 11904: 0xF75C, - 36118 - 11904: 0xC5AB, - 36119 - 11904: 0xC5AC, - 36120 - 11904: 0x9DDC, - 36121 - 11904: 0xF845, - 36123 - 11904: 0xC642, - 36124 - 11904: 0x99DD, - 36125 - 11904: 0x8BE8, - 36196 - 11904: 0xA8AA, - 36198 - 11904: 0xB36A, - 36199 - 11904: 0xB369, - 36200 - 11904: 0xE05C, - 36201 - 11904: 0xE05D, - 36203 - 11904: 0xBBAE, - 36204 - 11904: 0xEBB9, - 36205 - 11904: 0xBDEA, - 36206 - 11904: 0xEBBA, - 36207 - 11904: 0xEEB9, - 36208 - 11904: 0xA8AB, - 36210 - 11904: 0xD0B2, - 36211 - 11904: 0xAD76, - 36212 - 11904: 0xAD75, - 36214 - 11904: 0xD3E3, - 36215 - 11904: 0xB05F, - 36216 - 11904: 0xD3E4, - 36217 - 11904: 0xD7D5, - 36218 - 11904: 0x92C1, - 36219 - 11904: 0xD7D4, - 36221 - 11904: 0xD7D3, - 36224 - 11904: 0xDBEE, - 36225 - 11904: 0xB658, - 36226 - 11904: 0x9FD6, - 36228 - 11904: 0xDBED, - 36229 - 11904: 0xB657, - 36233 - 11904: 0xDBEF, - 36234 - 11904: 0xB656, - 36236 - 11904: 0xE05F, - 36237 - 11904: 0xE062, - 36238 - 11904: 0xE060, - 36239 - 11904: 0xE061, - 36240 - 11904: 0xE065, - 36241 - 11904: 0xE05E, - 36242 - 11904: 0xE066, - 36243 - 11904: 0xE063, - 36244 - 11904: 0xE064, - 36245 - 11904: 0xBBB0, - 36246 - 11904: 0xE456, - 36249 - 11904: 0xBBAF, - 36251 - 11904: 0xE7F2, - 36252 - 11904: 0xE7F0, - 36255 - 11904: 0xBDEB, - 36256 - 11904: 0xE7EF, - 36257 - 11904: 0xE7F1, - 36259 - 11904: 0xBDEC, - 36261 - 11904: 0xEBBB, - 36262 - 11904: 0xA0D2, - 36263 - 11904: 0xEBBC, - 36264 - 11904: 0xC1CD, - 36265 - 11904: 0x9040, - 36266 - 11904: 0xF34C, - 36267 - 11904: 0xF34E, - 36268 - 11904: 0xF34B, - 36269 - 11904: 0xF34D, - 36270 - 11904: 0xF4D6, - 36271 - 11904: 0xF654, - 36274 - 11904: 0xF96F, - 36275 - 11904: 0xA8AC, - 36276 - 11904: 0xAD77, - 36277 - 11904: 0xD3E5, - 36278 - 11904: 0xD3E7, - 36279 - 11904: 0xD3E6, - 36281 - 11904: 0xD7D8, - 36282 - 11904: 0xB36C, - 36284 - 11904: 0xD7D6, - 36286 - 11904: 0xB36B, - 36287 - 11904: 0xD7D9, - 36288 - 11904: 0x8AC4, - 36289 - 11904: 0xD7DA, - 36290 - 11904: 0xD7D7, - 36291 - 11904: 0x99E0, - 36293 - 11904: 0xDBFB, - 36294 - 11904: 0xB660, - 36295 - 11904: 0xDBF3, - 36296 - 11904: 0xDBF9, - 36299 - 11904: 0xB65B, - 36300 - 11904: 0xB65E, - 36301 - 11904: 0xDBF2, - 36302 - 11904: 0xB659, - 36303 - 11904: 0xDBF6, - 36304 - 11904: 0xE06C, - 36305 - 11904: 0xB65D, - 36307 - 11904: 0xDBF1, - 36308 - 11904: 0x9FF0, - 36309 - 11904: 0xDBF7, - 36310 - 11904: 0xDBF4, - 36311 - 11904: 0xDBFA, - 36312 - 11904: 0xDBF0, - 36313 - 11904: 0xDBF8, - 36314 - 11904: 0xB65C, - 36315 - 11904: 0xB65F, - 36316 - 11904: 0xDBF5, - 36317 - 11904: 0xB65A, - 36319 - 11904: 0xB8F2, - 36320 - 11904: 0xE068, - 36321 - 11904: 0xB8F1, - 36322 - 11904: 0xE06F, - 36323 - 11904: 0xE06E, - 36324 - 11904: 0xB8F8, - 36326 - 11904: 0xB8F9, - 36327 - 11904: 0xE070, - 36328 - 11904: 0xB8F3, - 36329 - 11904: 0xE06D, - 36330 - 11904: 0xB8F7, - 36331 - 11904: 0xE072, - 36332 - 11904: 0xE069, - 36334 - 11904: 0xE06B, - 36335 - 11904: 0xB8F4, - 36336 - 11904: 0xE067, - 36337 - 11904: 0xE06A, - 36338 - 11904: 0xE071, - 36339 - 11904: 0xB8F5, - 36340 - 11904: 0xE073, - 36346 - 11904: 0xB8F6, - 36348 - 11904: 0xBBB1, - 36349 - 11904: 0xE45B, - 36350 - 11904: 0xE461, - 36351 - 11904: 0xE459, - 36352 - 11904: 0xE462, - 36353 - 11904: 0x9FF3, - 36354 - 11904: 0xE458, - 36355 - 11904: 0xE45D, - 36356 - 11904: 0xE463, - 36357 - 11904: 0xE460, - 36358 - 11904: 0xE45F, - 36359 - 11904: 0xE45E, - 36361 - 11904: 0xE457, - 36362 - 11904: 0xE45C, - 36365 - 11904: 0xE45A, - 36366 - 11904: 0x9DBF, - 36367 - 11904: 0xBDF1, - 36368 - 11904: 0xBDEE, - 36369 - 11904: 0xE7FB, - 36370 - 11904: 0xE841, - 36371 - 11904: 0xE843, - 36372 - 11904: 0xE840, - 36373 - 11904: 0xE7F8, - 36374 - 11904: 0xE7FA, - 36375 - 11904: 0xE845, - 36376 - 11904: 0xE842, - 36377 - 11904: 0xE7FC, - 36378 - 11904: 0xE846, - 36379 - 11904: 0xE7F9, - 36380 - 11904: 0xE844, - 36381 - 11904: 0xBDEF, - 36382 - 11904: 0xBDF5, - 36383 - 11904: 0xBDF3, - 36384 - 11904: 0xE7F3, - 36385 - 11904: 0xBDF4, - 36386 - 11904: 0xBDF0, - 36387 - 11904: 0xE7F4, - 36388 - 11904: 0xE7F6, - 36389 - 11904: 0xE7F5, - 36390 - 11904: 0xE7FD, - 36391 - 11904: 0xE7FE, - 36392 - 11904: 0x9FF6, - 36393 - 11904: 0xBDF2, - 36394 - 11904: 0x95C8, - 36395 - 11904: 0xBDED, - 36397 - 11904: 0x9E5A, - 36398 - 11904: 0xE7F7, - 36400 - 11904: 0xEBC6, - 36401 - 11904: 0xBFE2, - 36403 - 11904: 0xEBBD, - 36404 - 11904: 0xBFE3, - 36405 - 11904: 0xBFE6, - 36406 - 11904: 0xEBC2, - 36408 - 11904: 0xEBBF, - 36409 - 11904: 0xBFE5, - 36410 - 11904: 0x99E3, - 36412 - 11904: 0xEBC3, - 36413 - 11904: 0xEBC4, - 36414 - 11904: 0xEBBE, - 36415 - 11904: 0xEBC7, - 36416 - 11904: 0xEBC0, - 36417 - 11904: 0xEBC5, - 36418 - 11904: 0xBFE4, - 36420 - 11904: 0xBFE1, - 36421 - 11904: 0xEBC1, - 36422 - 11904: 0x8A4A, - 36423 - 11904: 0xEEBF, - 36424 - 11904: 0xC1D0, - 36425 - 11904: 0xC1CE, - 36426 - 11904: 0xC1D1, - 36427 - 11904: 0xC1CF, - 36428 - 11904: 0xEEBE, - 36429 - 11904: 0xEEBB, - 36430 - 11904: 0xEEBA, - 36431 - 11904: 0x9FF1, - 36432 - 11904: 0xEEBD, - 36435 - 11904: 0xEEBC, - 36436 - 11904: 0xF145, - 36437 - 11904: 0xC2DE, - 36438 - 11904: 0xF0FB, - 36439 - 11904: 0xF0FA, - 36441 - 11904: 0xC2D9, - 36442 - 11904: 0xF141, - 36443 - 11904: 0xF140, - 36444 - 11904: 0xF0F7, - 36445 - 11904: 0xF143, - 36446 - 11904: 0xF0FC, - 36447 - 11904: 0xC2DD, - 36448 - 11904: 0xF0F9, - 36449 - 11904: 0xF142, - 36450 - 11904: 0xF0F8, - 36451 - 11904: 0xC2DA, - 36452 - 11904: 0xC2DC, - 36453 - 11904: 0xF0FD, - 36454 - 11904: 0xC2DB, - 36455 - 11904: 0xF0FE, - 36456 - 11904: 0x8AA7, - 36457 - 11904: 0xF144, - 36458 - 11904: 0xF352, - 36460 - 11904: 0xC3DE, - 36461 - 11904: 0xF34F, - 36463 - 11904: 0xF353, - 36465 - 11904: 0x99E6, - 36466 - 11904: 0xC3DB, - 36467 - 11904: 0xF351, - 36468 - 11904: 0xC3E0, - 36469 - 11904: 0x9FF7, - 36470 - 11904: 0xC3DD, - 36471 - 11904: 0x9FED, - 36472 - 11904: 0xF350, - 36474 - 11904: 0xC3DF, - 36475 - 11904: 0xF354, - 36476 - 11904: 0xC3DA, - 36478 - 11904: 0x8A5C, - 36480 - 11904: 0x9DAE, - 36481 - 11904: 0xC4BC, - 36482 - 11904: 0xC4BE, - 36484 - 11904: 0xF4D9, - 36485 - 11904: 0xC4BD, - 36486 - 11904: 0xF4D7, - 36487 - 11904: 0xC3DC, - 36488 - 11904: 0xF4D8, - 36489 - 11904: 0xC4BB, - 36490 - 11904: 0xC543, - 36491 - 11904: 0xC545, - 36492 - 11904: 0xF656, - 36493 - 11904: 0xC544, - 36494 - 11904: 0xF655, - 36496 - 11904: 0xF761, - 36497 - 11904: 0xC5AD, - 36498 - 11904: 0xF760, - 36499 - 11904: 0xC5AE, - 36500 - 11904: 0xF75E, - 36501 - 11904: 0xF75D, - 36502 - 11904: 0xF762, - 36503 - 11904: 0xF763, - 36504 - 11904: 0xF846, - 36506 - 11904: 0xF75F, - 36509 - 11904: 0xF8C6, - 36510 - 11904: 0xF8C3, - 36511 - 11904: 0xF8C4, - 36512 - 11904: 0xF8C5, - 36513 - 11904: 0xC65C, - 36515 - 11904: 0xF951, - 36516 - 11904: 0xF950, - 36517 - 11904: 0xF94F, - 36518 - 11904: 0xF970, - 36519 - 11904: 0x95C9, - 36520 - 11904: 0xF9BE, - 36521 - 11904: 0xF9AB, - 36522 - 11904: 0xC66E, - 36523 - 11904: 0xA8AD, - 36524 - 11904: 0xB060, - 36525 - 11904: 0x9048, - 36528 - 11904: 0x99E8, - 36530 - 11904: 0xB8FA, - 36534 - 11904: 0x9049, - 36537 - 11904: 0x8CBA, - 36538 - 11904: 0xBDF6, - 36540 - 11904: 0x90B1, - 36541 - 11904: 0xEBC8, - 36544 - 11904: 0xC2DF, - 36546 - 11904: 0xF355, - 36547 - 11904: 0x904A, - 36553 - 11904: 0xF9AC, - 36554 - 11904: 0xA8AE, - 36555 - 11904: 0xAAEE, - 36556 - 11904: 0xAD79, - 36557 - 11904: 0xAD78, - 36558 - 11904: 0x99EA, - 36559 - 11904: 0xB063, - 36561 - 11904: 0xD3E8, - 36562 - 11904: 0xB061, - 36563 - 11904: 0xD3E9, - 36564 - 11904: 0xB062, - 36567 - 11904: 0xD7DF, - 36568 - 11904: 0xD7DB, - 36570 - 11904: 0x9BD1, - 36571 - 11904: 0xB36D, - 36572 - 11904: 0xD7DE, - 36573 - 11904: 0xD7DD, - 36574 - 11904: 0xD7DC, - 36575 - 11904: 0xB36E, - 36576 - 11904: 0xD7E0, - 36577 - 11904: 0xD7E1, - 36578 - 11904: 0x99EB, - 36580 - 11904: 0x99EC, - 36581 - 11904: 0xDC43, - 36582 - 11904: 0xDC41, - 36583 - 11904: 0xDC45, - 36584 - 11904: 0xDC46, - 36585 - 11904: 0xDC4C, - 36587 - 11904: 0xDC48, - 36588 - 11904: 0xDC4A, - 36589 - 11904: 0x99ED, - 36590 - 11904: 0xDC42, - 36591 - 11904: 0xDBFC, - 36593 - 11904: 0xDC49, - 36594 - 11904: 0x99EE, - 36596 - 11904: 0xDC4B, - 36597 - 11904: 0xDC44, - 36598 - 11904: 0xDC47, - 36599 - 11904: 0xDBFD, - 36600 - 11904: 0xB662, - 36601 - 11904: 0xDC40, - 36602 - 11904: 0xDBFE, - 36603 - 11904: 0xB661, - 36604 - 11904: 0xB663, - 36606 - 11904: 0xB8FD, - 36607 - 11904: 0xE075, - 36608 - 11904: 0xE077, - 36609 - 11904: 0xE076, - 36610 - 11904: 0xE07B, - 36611 - 11904: 0xB8FB, - 36613 - 11904: 0xE078, - 36614 - 11904: 0xE074, - 36615 - 11904: 0xE079, - 36616 - 11904: 0xE07A, - 36617 - 11904: 0xB8FC, - 36618 - 11904: 0xB8FE, - 36619 - 11904: 0xE07C, - 36621 - 11904: 0xE467, - 36622 - 11904: 0xE466, - 36624 - 11904: 0xE464, - 36625 - 11904: 0xE465, - 36626 - 11904: 0xBBB3, - 36627 - 11904: 0xBBB5, - 36628 - 11904: 0xBBB2, - 36629 - 11904: 0xBBB4, - 36630 - 11904: 0xE84D, - 36631 - 11904: 0xE84E, - 36632 - 11904: 0xE849, - 36633 - 11904: 0x904C, - 36634 - 11904: 0xE84A, - 36635 - 11904: 0xBDF8, - 36636 - 11904: 0xBDFD, - 36637 - 11904: 0xBDF7, - 36638 - 11904: 0xBDFE, - 36639 - 11904: 0xBDF9, - 36640 - 11904: 0xE84B, - 36643 - 11904: 0xE84C, - 36644 - 11904: 0xE848, - 36645 - 11904: 0xBE40, - 36646 - 11904: 0xBDFB, - 36649 - 11904: 0xBDFA, - 36650 - 11904: 0xBDFC, - 36652 - 11904: 0xE847, - 36653 - 11904: 0x904D, - 36654 - 11904: 0xEBCA, - 36655 - 11904: 0xBFE8, - 36656 - 11904: 0x95CB, - 36658 - 11904: 0xEBCC, - 36659 - 11904: 0xBFEA, - 36660 - 11904: 0xEBCF, - 36661 - 11904: 0xEBCB, - 36662 - 11904: 0xEBC9, - 36663 - 11904: 0xEBCE, - 36664 - 11904: 0xBFE9, - 36665 - 11904: 0xEBCD, - 36667 - 11904: 0xBFE7, - 36670 - 11904: 0xC1D3, - 36671 - 11904: 0xC1D6, - 36672 - 11904: 0xEEC1, - 36673 - 11904: 0x97E2, - 36674 - 11904: 0xC1D4, - 36675 - 11904: 0xEEC0, - 36676 - 11904: 0xC1D2, - 36677 - 11904: 0xC1D5, - 36678 - 11904: 0xF146, - 36679 - 11904: 0xF147, - 36680 - 11904: 0xF148, - 36681 - 11904: 0xC2E0, - 36682 - 11904: 0x95CC, - 36683 - 11904: 0xF149, - 36685 - 11904: 0xC2E1, - 36686 - 11904: 0xC3E2, - 36687 - 11904: 0xF358, - 36688 - 11904: 0xF359, - 36689 - 11904: 0xF357, - 36690 - 11904: 0xF356, - 36691 - 11904: 0xF35A, - 36692 - 11904: 0xC3E1, - 36693 - 11904: 0xF4DD, - 36694 - 11904: 0xF4DB, - 36695 - 11904: 0xF4DC, - 36696 - 11904: 0xF4DE, - 36697 - 11904: 0xF4DA, - 36698 - 11904: 0xF4DF, - 36699 - 11904: 0xF658, - 36700 - 11904: 0x9F78, - 36701 - 11904: 0xF659, - 36702 - 11904: 0xF657, - 36703 - 11904: 0xC546, - 36704 - 11904: 0xF764, - 36705 - 11904: 0xC5AF, - 36706 - 11904: 0xF765, - 36707 - 11904: 0xF848, - 36708 - 11904: 0xF847, - 36710 - 11904: 0x897C, - 36711 - 11904: 0x897D, - 36718 - 11904: 0x897E, - 36755 - 11904: 0x995D, - 36763 - 11904: 0xA8AF, - 36764 - 11904: 0xB664, - 36767 - 11904: 0xB940, - 36768 - 11904: 0x9B5A, - 36771 - 11904: 0xBBB6, - 36773 - 11904: 0x9050, - 36774 - 11904: 0xBFEC, - 36775 - 11904: 0x8C4F, - 36776 - 11904: 0xBFEB, - 36781 - 11904: 0xC3E3, - 36782 - 11904: 0xC47C, - 36783 - 11904: 0xC547, - 36784 - 11904: 0xA8B0, - 36785 - 11904: 0xB064, - 36786 - 11904: 0xB941, - 36787 - 11904: 0x9054, - 36788 - 11904: 0xF35B, - 36789 - 11904: 0xC6D6, - 36790 - 11904: 0x9AA8, - 36791 - 11904: 0x99EF, - 36792 - 11904: 0xFEEB, - 36793 - 11904: 0x9DA3, - 36794 - 11904: 0x9DA1, - 36795 - 11904: 0x9943, - 36796 - 11904: 0x9945, - 36798 - 11904: 0x9D7D, - 36799 - 11904: 0xCBA6, - 36801 - 11904: 0x99F0, - 36802 - 11904: 0xA8B1, - 36804 - 11904: 0xA8B4, - 36805 - 11904: 0xA8B3, - 36806 - 11904: 0xA8B2, - 36809 - 11904: 0xCBA5, - 36810 - 11904: 0x99F1, - 36811 - 11904: 0xCDCD, - 36812 - 11904: 0x99F2, - 36813 - 11904: 0xCDCF, - 36814 - 11904: 0xAAEF, - 36815 - 11904: 0x8CBC, - 36816 - 11904: 0x9D60, - 36817 - 11904: 0xAAF1, - 36818 - 11904: 0xCDCC, - 36819 - 11904: 0xCDCE, - 36820 - 11904: 0xAAF0, - 36821 - 11904: 0xCDD1, - 36822 - 11904: 0xCDD0, - 36823 - 11904: 0xCDD2, - 36826 - 11904: 0xA0A3, - 36832 - 11904: 0xD0B6, - 36833 - 11904: 0xD0B4, - 36834 - 11904: 0xAD7C, - 36835 - 11904: 0xD0B3, - 36836 - 11904: 0xADA3, - 36837 - 11904: 0xAD7E, - 36838 - 11904: 0xAD7B, - 36840 - 11904: 0xADA4, - 36842 - 11904: 0xAD7D, - 36843 - 11904: 0xADA2, - 36845 - 11904: 0xADA1, - 36846 - 11904: 0xD0B5, - 36848 - 11904: 0xAD7A, - 36852 - 11904: 0xB06A, - 36853 - 11904: 0xD3EB, - 36854 - 11904: 0xD3F1, - 36855 - 11904: 0xB067, - 36856 - 11904: 0xB06E, - 36857 - 11904: 0x905B, - 36858 - 11904: 0xB069, - 36859 - 11904: 0xD3EE, - 36860 - 11904: 0xD3F0, - 36861 - 11904: 0xB06C, - 36862 - 11904: 0xD3EA, - 36863 - 11904: 0xD3ED, - 36864 - 11904: 0xB068, - 36865 - 11904: 0xB065, - 36866 - 11904: 0xD3EC, - 36867 - 11904: 0xB06B, - 36868 - 11904: 0xD3EF, - 36869 - 11904: 0xB06D, - 36870 - 11904: 0xB066, - 36872 - 11904: 0x9EDB, - 36875 - 11904: 0xD7E3, - 36876 - 11904: 0xD7E6, - 36877 - 11904: 0xB370, - 36879 - 11904: 0xB37A, - 36880 - 11904: 0xB376, - 36881 - 11904: 0xD7E4, - 36882 - 11904: 0x9D79, - 36884 - 11904: 0xB37E, - 36885 - 11904: 0xB377, - 36886 - 11904: 0xB37C, - 36887 - 11904: 0xB372, - 36889 - 11904: 0xB36F, - 36890 - 11904: 0xB371, - 36891 - 11904: 0xB37D, - 36892 - 11904: 0xD7E5, - 36893 - 11904: 0xB375, - 36894 - 11904: 0xB378, - 36895 - 11904: 0xB374, - 36896 - 11904: 0xB379, - 36897 - 11904: 0xD7E7, - 36898 - 11904: 0xB37B, - 36899 - 11904: 0xB373, - 36900 - 11904: 0xD7E2, - 36909 - 11904: 0xDC4D, - 36910 - 11904: 0xB665, - 36911 - 11904: 0xDC4F, - 36913 - 11904: 0xB667, - 36914 - 11904: 0xB669, - 36915 - 11904: 0x99F3, - 36916 - 11904: 0xDC4E, - 36917 - 11904: 0xB666, - 36918 - 11904: 0xB66A, - 36919 - 11904: 0x9062, - 36920 - 11904: 0xB668, - 36924 - 11904: 0xB947, - 36925 - 11904: 0xE0A3, - 36926 - 11904: 0xB94F, - 36927 - 11904: 0xE07E, - 36929 - 11904: 0xB950, - 36930 - 11904: 0xB945, - 36932 - 11904: 0xE0A1, - 36934 - 11904: 0x87BD, - 36935 - 11904: 0xB94A, - 36937 - 11904: 0xE0A2, - 36938 - 11904: 0xB943, - 36939 - 11904: 0xB942, - 36940 - 11904: 0x9F55, - 36941 - 11904: 0xB94D, - 36942 - 11904: 0xB94C, - 36943 - 11904: 0xB94B, - 36944 - 11904: 0xB949, - 36945 - 11904: 0xB94E, - 36946 - 11904: 0xE07D, - 36947 - 11904: 0xB944, - 36948 - 11904: 0xB946, - 36949 - 11904: 0xB948, - 36950 - 11904: 0x9BF9, - 36952 - 11904: 0xBBB8, - 36953 - 11904: 0xBBBB, - 36955 - 11904: 0xBBBF, - 36956 - 11904: 0xBBB9, - 36957 - 11904: 0xBBBE, - 36958 - 11904: 0xBBBC, - 36960 - 11904: 0xBBB7, - 36961 - 11904: 0x9065, - 36962 - 11904: 0xBBBD, - 36963 - 11904: 0xBBBA, - 36964 - 11904: 0x96E0, - 36967 - 11904: 0xE852, - 36968 - 11904: 0xBE43, - 36969 - 11904: 0xBE41, - 36971 - 11904: 0xE853, - 36972 - 11904: 0x98BE, - 36973 - 11904: 0xBE44, - 36974 - 11904: 0xBE42, - 36975 - 11904: 0xE851, - 36976 - 11904: 0xE850, - 36978 - 11904: 0xBFF0, - 36979 - 11904: 0xE84F, - 36980 - 11904: 0xBFEE, - 36981 - 11904: 0xBFED, - 36982 - 11904: 0xEBD0, - 36983 - 11904: 0xBE45, - 36984 - 11904: 0xBFEF, - 36985 - 11904: 0xEBD1, - 36986 - 11904: 0xBFF2, - 36987 - 11904: 0xEBD2, - 36988 - 11904: 0xBFF1, - 36989 - 11904: 0xC1D8, - 36990 - 11904: 0xEEC3, - 36991 - 11904: 0xC1D7, - 36992 - 11904: 0xC1DC, - 36993 - 11904: 0xC1DA, - 36994 - 11904: 0xC1DB, - 36995 - 11904: 0xC2E3, - 36996 - 11904: 0xC1D9, - 36997 - 11904: 0xEEC2, - 36998 - 11904: 0xEBD3, - 36999 - 11904: 0xC2E2, - 37000 - 11904: 0xC2E4, - 37002 - 11904: 0xC3E4, - 37003 - 11904: 0xC3E5, - 37005 - 11904: 0xF4E0, - 37007 - 11904: 0xC5DE, - 37008 - 11904: 0xC5DD, - 37009 - 11904: 0xA8B6, - 37012 - 11904: 0xCA55, - 37013 - 11904: 0xB06F, - 37015 - 11904: 0xCA52, - 37016 - 11904: 0xCA53, - 37017 - 11904: 0xCA51, - 37019 - 11904: 0xCA54, - 37022 - 11904: 0xCBAA, - 37023 - 11904: 0xCBA7, - 37024 - 11904: 0xCBAC, - 37025 - 11904: 0xCBA8, - 37026 - 11904: 0xA8B7, - 37027 - 11904: 0xA8BA, - 37029 - 11904: 0xCBA9, - 37030 - 11904: 0xA8B9, - 37031 - 11904: 0xCBAB, - 37032 - 11904: 0x9068, - 37034 - 11904: 0xA8B8, - 37038 - 11904: 0x906C, - 37039 - 11904: 0xCDD5, - 37040 - 11904: 0xCDD7, - 37041 - 11904: 0xAAF4, - 37042 - 11904: 0xCDD3, - 37043 - 11904: 0xCDD6, - 37044 - 11904: 0xCDD4, - 37045 - 11904: 0xAAF2, - 37046 - 11904: 0xAAF5, - 37048 - 11904: 0xAAF3, - 37051 - 11904: 0x95D8, - 37053 - 11904: 0xD0B8, - 37054 - 11904: 0xD0BC, - 37055 - 11904: 0xD0B9, - 37057 - 11904: 0xADA7, - 37059 - 11904: 0xADA8, - 37060 - 11904: 0x906A, - 37061 - 11904: 0xD0BB, - 37063 - 11904: 0xD0BD, - 37064 - 11904: 0xD0BF, - 37066 - 11904: 0xADA5, - 37067 - 11904: 0xD0BE, - 37070 - 11904: 0xADA6, - 37076 - 11904: 0xD7EE, - 37077 - 11904: 0xD0BA, - 37078 - 11904: 0xD3F2, - 37079 - 11904: 0xD3FB, - 37080 - 11904: 0xD3F9, - 37081 - 11904: 0xD3F4, - 37082 - 11904: 0xD3F5, - 37083 - 11904: 0xD3FA, - 37084 - 11904: 0xD3FC, - 37085 - 11904: 0xB071, - 37087 - 11904: 0xD3F7, - 37088 - 11904: 0xD3F3, - 37089 - 11904: 0xB070, - 37090 - 11904: 0xB072, - 37091 - 11904: 0xD3F6, - 37092 - 11904: 0xD3FD, - 37093 - 11904: 0xD3F8, - 37096 - 11904: 0xB3A1, - 37097 - 11904: 0xD7F1, - 37098 - 11904: 0xD7E9, - 37099 - 11904: 0xD7EF, - 37100 - 11904: 0xD7F0, - 37101 - 11904: 0xB3A2, - 37103 - 11904: 0xD7E8, - 37104 - 11904: 0xD7EA, - 37105 - 11904: 0xD0B7, - 37106 - 11904: 0xD7EC, - 37107 - 11904: 0xD7ED, - 37108 - 11904: 0xD7EB, - 37109 - 11904: 0xB66C, - 37113 - 11904: 0xDC56, - 37114 - 11904: 0xEBD4, - 37115 - 11904: 0xDC57, - 37116 - 11904: 0xDC54, - 37117 - 11904: 0xB3A3, - 37118 - 11904: 0xB66E, - 37119 - 11904: 0xDC53, - 37120 - 11904: 0xDC59, - 37121 - 11904: 0xDC58, - 37122 - 11904: 0xB66B, - 37123 - 11904: 0xDC5C, - 37124 - 11904: 0xDC52, - 37125 - 11904: 0xDC5B, - 37126 - 11904: 0xDC50, - 37127 - 11904: 0xDC5A, - 37128 - 11904: 0xDC55, - 37129 - 11904: 0xB66D, - 37131 - 11904: 0xE0AA, - 37133 - 11904: 0xE0A5, - 37134 - 11904: 0xE0AB, - 37135 - 11904: 0xE0A6, - 37136 - 11904: 0xE0A4, - 37137 - 11904: 0xE0A7, - 37138 - 11904: 0xB951, - 37140 - 11904: 0xE0A9, - 37142 - 11904: 0xE0A8, - 37143 - 11904: 0xB952, - 37144 - 11904: 0xBBC1, - 37145 - 11904: 0xBBC0, - 37146 - 11904: 0xE46E, - 37147 - 11904: 0xE471, - 37148 - 11904: 0xE469, - 37149 - 11904: 0xE46D, - 37150 - 11904: 0xBBC2, - 37151 - 11904: 0xE46C, - 37152 - 11904: 0xE46A, - 37153 - 11904: 0xE470, - 37154 - 11904: 0xE46B, - 37155 - 11904: 0xE468, - 37156 - 11904: 0xE46F, - 37158 - 11904: 0xE859, - 37159 - 11904: 0xBE48, - 37160 - 11904: 0xF14A, - 37161 - 11904: 0xE856, - 37162 - 11904: 0xE857, - 37163 - 11904: 0xE855, - 37164 - 11904: 0xDC51, - 37165 - 11904: 0xBE47, - 37166 - 11904: 0xE85A, - 37167 - 11904: 0xE854, - 37168 - 11904: 0xBE46, - 37169 - 11904: 0xBE49, - 37170 - 11904: 0xE858, - 37171 - 11904: 0xEBD5, - 37172 - 11904: 0xBFF3, - 37173 - 11904: 0xEBD6, - 37174 - 11904: 0xEBD7, - 37176 - 11904: 0xEEC4, - 37177 - 11904: 0xC1DD, - 37178 - 11904: 0xF14B, - 37179 - 11904: 0xF14C, - 37182 - 11904: 0xF14D, - 37183 - 11904: 0xF35D, - 37184 - 11904: 0xF35C, - 37185 - 11904: 0xF4E2, - 37187 - 11904: 0xF4E1, - 37188 - 11904: 0xF65B, - 37189 - 11904: 0xF65C, - 37190 - 11904: 0xF65A, - 37191 - 11904: 0xF766, - 37192 - 11904: 0xC5B0, - 37193 - 11904: 0xA8BB, - 37194 - 11904: 0xADAA, - 37195 - 11904: 0xADA9, - 37196 - 11904: 0xB075, - 37197 - 11904: 0xB074, - 37198 - 11904: 0xD440, - 37199 - 11904: 0xD441, - 37200 - 11904: 0xD3FE, - 37201 - 11904: 0x9FB2, - 37202 - 11904: 0xB073, - 37203 - 11904: 0xD7F5, - 37205 - 11904: 0xD7F6, - 37206 - 11904: 0xD7F2, - 37207 - 11904: 0xB3A4, - 37208 - 11904: 0xD7F3, - 37209 - 11904: 0x9FAE, - 37210 - 11904: 0xD7F4, - 37212 - 11904: 0x9FB0, - 37214 - 11904: 0x89AD, - 37215 - 11904: 0xDC5F, - 37216 - 11904: 0xDC61, - 37217 - 11904: 0xDC5D, - 37218 - 11904: 0xDC60, - 37219 - 11904: 0xB66F, - 37220 - 11904: 0xDC5E, - 37221 - 11904: 0xB670, - 37223 - 11904: 0x906E, - 37224 - 11904: 0xDD73, - 37225 - 11904: 0xB955, - 37226 - 11904: 0xB954, - 37228 - 11904: 0xB953, - 37230 - 11904: 0xE0AC, - 37231 - 11904: 0xE0AD, - 37232 - 11904: 0x9E71, - 37234 - 11904: 0xE473, - 37235 - 11904: 0xE475, - 37236 - 11904: 0xBBC6, - 37237 - 11904: 0xBBC3, - 37238 - 11904: 0x9E4A, - 37239 - 11904: 0xBBC5, - 37240 - 11904: 0xBBC4, - 37241 - 11904: 0xE474, - 37242 - 11904: 0xE472, - 37244 - 11904: 0x9FDC, - 37248 - 11904: 0xE861, - 37249 - 11904: 0xE85E, - 37250 - 11904: 0xE85F, - 37251 - 11904: 0xBE4D, - 37252 - 11904: 0xE860, - 37253 - 11904: 0xE85B, - 37254 - 11904: 0xE85C, - 37255 - 11904: 0xBE4A, - 37257 - 11904: 0xBE4B, - 37258 - 11904: 0xE85D, - 37259 - 11904: 0xBE4C, - 37260 - 11904: 0x89AB, - 37261 - 11904: 0xEBDB, - 37262 - 11904: 0x9FB8, - 37263 - 11904: 0xEBDC, - 37264 - 11904: 0xEBD9, - 37265 - 11904: 0xEBDA, - 37266 - 11904: 0xBFF4, - 37267 - 11904: 0xEBD8, - 37273 - 11904: 0xEEC8, - 37274 - 11904: 0xEEC5, - 37275 - 11904: 0xEEC7, - 37276 - 11904: 0xC1E0, - 37277 - 11904: 0xEECB, - 37278 - 11904: 0xC1DF, - 37279 - 11904: 0xEEC9, - 37280 - 11904: 0xEECC, - 37281 - 11904: 0xEECA, - 37282 - 11904: 0xEEC6, - 37283 - 11904: 0xC1DE, - 37285 - 11904: 0xF14F, - 37287 - 11904: 0xF150, - 37288 - 11904: 0xF14E, - 37289 - 11904: 0x9070, - 37290 - 11904: 0xF152, - 37291 - 11904: 0xC2E5, - 37292 - 11904: 0xC2E6, - 37293 - 11904: 0xF35F, - 37294 - 11904: 0xC3E7, - 37295 - 11904: 0xF151, - 37296 - 11904: 0xF35E, - 37297 - 11904: 0xC3E6, - 37298 - 11904: 0xF4E5, - 37299 - 11904: 0xF4E6, - 37300 - 11904: 0xC4BF, - 37301 - 11904: 0xF4E4, - 37302 - 11904: 0x8B63, - 37303 - 11904: 0xF4E3, - 37305 - 11904: 0xF65D, - 37306 - 11904: 0xC548, - 37307 - 11904: 0x95DC, - 37308 - 11904: 0xF849, - 37309 - 11904: 0xF8C8, - 37310 - 11904: 0xF8C7, - 37312 - 11904: 0xC643, - 37313 - 11904: 0xC65D, - 37314 - 11904: 0xF8C9, - 37315 - 11904: 0xF971, - 37316 - 11904: 0x9071, - 37317 - 11904: 0xC66F, - 37318 - 11904: 0xA8BC, - 37319 - 11904: 0xAAF6, - 37321 - 11904: 0xB956, - 37323 - 11904: 0xC4C0, - 37324 - 11904: 0xA8BD, - 37325 - 11904: 0xADAB, - 37326 - 11904: 0xB3A5, - 37327 - 11904: 0xB671, - 37328 - 11904: 0xC2E7, - 37329 - 11904: 0xAAF7, - 37331 - 11904: 0xD0C1, - 37332 - 11904: 0xD0C0, - 37333 - 11904: 0xD442, - 37334 - 11904: 0xFC5E, - 37335 - 11904: 0xB078, - 37336 - 11904: 0xB076, - 37337 - 11904: 0xB07A, - 37338 - 11904: 0xD444, - 37340 - 11904: 0xB079, - 37341 - 11904: 0xB077, - 37343 - 11904: 0x8949, - 37346 - 11904: 0xD443, - 37347 - 11904: 0xB3A8, - 37348 - 11904: 0xD7FC, - 37349 - 11904: 0x965B, - 37350 - 11904: 0xB3A7, - 37351 - 11904: 0xB3A9, - 37352 - 11904: 0xD842, - 37353 - 11904: 0xB3AB, - 37354 - 11904: 0xD7FE, - 37355 - 11904: 0xD840, - 37356 - 11904: 0xD7F7, - 37357 - 11904: 0xB3AA, - 37358 - 11904: 0xD843, - 37361 - 11904: 0xD7F9, - 37363 - 11904: 0xD7FA, - 37364 - 11904: 0xD7F8, - 37365 - 11904: 0xB3A6, - 37366 - 11904: 0x8C50, - 37367 - 11904: 0xD841, - 37368 - 11904: 0xD7FB, - 37369 - 11904: 0xD7FD, - 37370 - 11904: 0x94A6, - 37373 - 11904: 0xDC6D, - 37374 - 11904: 0x8FD5, - 37375 - 11904: 0xDC6C, - 37376 - 11904: 0xDC6A, - 37377 - 11904: 0xDC62, - 37378 - 11904: 0xDC71, - 37379 - 11904: 0xDC65, - 37380 - 11904: 0xDC6F, - 37381 - 11904: 0xDC76, - 37382 - 11904: 0xDC6E, - 37383 - 11904: 0xB679, - 37384 - 11904: 0x9E73, - 37385 - 11904: 0xB675, - 37386 - 11904: 0xDC63, - 37388 - 11904: 0xDC69, - 37389 - 11904: 0xB677, - 37390 - 11904: 0x9075, - 37391 - 11904: 0xDC68, - 37392 - 11904: 0xB678, - 37393 - 11904: 0xB67A, - 37394 - 11904: 0xDC6B, - 37395 - 11904: 0x99F7, - 37396 - 11904: 0xB672, - 37397 - 11904: 0xB673, - 37398 - 11904: 0xDC77, - 37399 - 11904: 0xDC75, - 37400 - 11904: 0x87B2, - 37401 - 11904: 0xDC74, - 37402 - 11904: 0xDC66, - 37404 - 11904: 0xDC72, - 37406 - 11904: 0xB676, - 37409 - 11904: 0x8CBF, - 37411 - 11904: 0xB674, - 37412 - 11904: 0xDC73, - 37413 - 11904: 0xDC64, - 37414 - 11904: 0xDC67, - 37415 - 11904: 0xDC70, - 37416 - 11904: 0x99F9, - 37418 - 11904: 0x9663, - 37419 - 11904: 0x95B9, - 37421 - 11904: 0xE4BA, - 37422 - 11904: 0xE0B7, - 37424 - 11904: 0xE0B0, - 37425 - 11904: 0xE0C3, - 37426 - 11904: 0xE0CC, - 37427 - 11904: 0xE0B3, - 37428 - 11904: 0xB961, - 37429 - 11904: 0x94D4, - 37430 - 11904: 0xE0C0, - 37431 - 11904: 0xB957, - 37432 - 11904: 0xB959, - 37433 - 11904: 0xB965, - 37434 - 11904: 0xE0B1, - 37436 - 11904: 0xFCFA, - 37437 - 11904: 0xB95A, - 37438 - 11904: 0xB95C, - 37439 - 11904: 0xB966, - 37440 - 11904: 0xB95B, - 37441 - 11904: 0x9077, - 37444 - 11904: 0x90AB, - 37445 - 11904: 0xB964, - 37446 - 11904: 0xE0B9, - 37448 - 11904: 0xE0AE, - 37449 - 11904: 0xB962, - 37450 - 11904: 0xE0B8, - 37451 - 11904: 0xB95E, - 37452 - 11904: 0xE0CA, - 37453 - 11904: 0xB963, - 37454 - 11904: 0xE0C8, - 37455 - 11904: 0xE0BC, - 37456 - 11904: 0xE0C6, - 37457 - 11904: 0xB960, - 37458 - 11904: 0xE0AF, - 37459 - 11904: 0xE0C9, - 37460 - 11904: 0xE0C4, - 37461 - 11904: 0x9D4D, - 37462 - 11904: 0xE0CB, - 37463 - 11904: 0xB958, - 37464 - 11904: 0x99FA, - 37466 - 11904: 0xB967, - 37467 - 11904: 0xB95D, - 37469 - 11904: 0x92E3, - 37470 - 11904: 0xE0B5, - 37471 - 11904: 0x97BB, - 37472 - 11904: 0xE0BD, - 37473 - 11904: 0xE0C1, - 37474 - 11904: 0x9078, - 37475 - 11904: 0xE0C5, - 37476 - 11904: 0xB95F, - 37477 - 11904: 0xE0B4, - 37478 - 11904: 0xE0B2, - 37479 - 11904: 0xE0BE, - 37483 - 11904: 0x99FB, - 37484 - 11904: 0xE0BB, - 37485 - 11904: 0xE0BA, - 37486 - 11904: 0x97E0, - 37487 - 11904: 0xE0BF, - 37488 - 11904: 0xE0C2, - 37490 - 11904: 0xE0C7, - 37494 - 11904: 0xE478, - 37495 - 11904: 0x96DC, - 37496 - 11904: 0xBBC7, - 37497 - 11904: 0xE4A4, - 37498 - 11904: 0xE47A, - 37499 - 11904: 0xBBCC, - 37500 - 11904: 0xBBD0, - 37501 - 11904: 0xE4AD, - 37502 - 11904: 0xE4B5, - 37503 - 11904: 0xE4A6, - 37504 - 11904: 0xBBC8, - 37505 - 11904: 0x9CA8, - 37506 - 11904: 0xE4AA, - 37507 - 11904: 0xE0B6, - 37508 - 11904: 0x9772, - 37509 - 11904: 0xBBC9, - 37510 - 11904: 0xE4B1, - 37511 - 11904: 0xE4B6, - 37512 - 11904: 0xE4AE, - 37513 - 11904: 0x9440, - 37514 - 11904: 0xE4B0, - 37515 - 11904: 0xE4B9, - 37516 - 11904: 0xE4B2, - 37517 - 11904: 0xE47E, - 37518 - 11904: 0xE4A9, - 37519 - 11904: 0x92F2, - 37521 - 11904: 0xBBD1, - 37523 - 11904: 0xBBCD, - 37524 - 11904: 0xE47C, - 37525 - 11904: 0xE4AB, - 37526 - 11904: 0xBBCB, - 37527 - 11904: 0xE4A5, - 37528 - 11904: 0xBBCA, - 37529 - 11904: 0xE4B3, - 37530 - 11904: 0xE4A2, - 37531 - 11904: 0xE479, - 37532 - 11904: 0xBBCE, - 37533 - 11904: 0xE4B8, - 37536 - 11904: 0xE47B, - 37537 - 11904: 0xE4AF, - 37538 - 11904: 0xE4AC, - 37539 - 11904: 0xE4A7, - 37540 - 11904: 0xE477, - 37541 - 11904: 0xE476, - 37542 - 11904: 0xE4A1, - 37543 - 11904: 0xE4B4, - 37544 - 11904: 0xBBCF, - 37545 - 11904: 0xE4B7, - 37546 - 11904: 0xE47D, - 37547 - 11904: 0xE4A3, - 37548 - 11904: 0xBE52, - 37550 - 11904: 0x99FD, - 37553 - 11904: 0x99FC, - 37554 - 11904: 0xBE5A, - 37555 - 11904: 0xBE55, - 37556 - 11904: 0xE8A4, - 37557 - 11904: 0xE8A1, - 37558 - 11904: 0xE867, - 37559 - 11904: 0xBE50, - 37561 - 11904: 0xF9D7, - 37562 - 11904: 0x964A, - 37563 - 11904: 0xBE4F, - 37564 - 11904: 0xBE56, - 37566 - 11904: 0x96D8, - 37567 - 11904: 0x99FE, - 37568 - 11904: 0xE865, - 37569 - 11904: 0xBE54, - 37570 - 11904: 0xE871, - 37571 - 11904: 0xE863, - 37572 - 11904: 0xE864, - 37573 - 11904: 0xBE4E, - 37574 - 11904: 0xE8A3, - 37575 - 11904: 0xBE58, - 37576 - 11904: 0xE874, - 37577 - 11904: 0xE879, - 37578 - 11904: 0xE873, - 37579 - 11904: 0xEBEE, - 37580 - 11904: 0xE86F, - 37581 - 11904: 0xE877, - 37582 - 11904: 0xE875, - 37583 - 11904: 0xE868, - 37584 - 11904: 0xE862, - 37585 - 11904: 0xE87D, - 37586 - 11904: 0xBE57, - 37587 - 11904: 0xE87E, - 37588 - 11904: 0x904B, - 37589 - 11904: 0xE878, - 37591 - 11904: 0xE86D, - 37592 - 11904: 0xE86B, - 37593 - 11904: 0xE866, - 37595 - 11904: 0xFA41, - 37597 - 11904: 0xE86E, - 37598 - 11904: 0xE87B, - 37599 - 11904: 0xE86A, - 37600 - 11904: 0xE87A, - 37601 - 11904: 0xE8A2, - 37603 - 11904: 0x9A40, - 37604 - 11904: 0xBE53, - 37605 - 11904: 0x975B, - 37606 - 11904: 0xE876, - 37607 - 11904: 0xE87C, - 37608 - 11904: 0xE872, - 37609 - 11904: 0xE86C, - 37610 - 11904: 0xBE51, - 37611 - 11904: 0x9A41, - 37612 - 11904: 0x91DD, - 37614 - 11904: 0xE4A8, - 37615 - 11904: 0xE870, - 37616 - 11904: 0xBE59, - 37617 - 11904: 0xE869, - 37618 - 11904: 0x93FC, - 37619 - 11904: 0x9A42, - 37620 - 11904: 0x9A43, - 37622 - 11904: 0x9659, - 37623 - 11904: 0xEBF4, - 37624 - 11904: 0xBFF7, - 37625 - 11904: 0xEBF3, - 37626 - 11904: 0xEBF0, - 37627 - 11904: 0xEC44, - 37628 - 11904: 0xBFFB, - 37629 - 11904: 0x9A44, - 37630 - 11904: 0xEC41, - 37631 - 11904: 0xEBF8, - 37632 - 11904: 0xEC43, - 37633 - 11904: 0xEBE9, - 37634 - 11904: 0xEBF6, - 37635 - 11904: 0x9051, - 37636 - 11904: 0xBFFD, - 37638 - 11904: 0xEBE1, - 37639 - 11904: 0x94BF, - 37640 - 11904: 0xEBDF, - 37641 - 11904: 0xEC42, - 37643 - 11904: 0xEC40, - 37644 - 11904: 0xEBFE, - 37645 - 11904: 0xEBED, - 37646 - 11904: 0xEBEC, - 37647 - 11904: 0xEBE2, - 37648 - 11904: 0xC040, - 37650 - 11904: 0xEBE8, - 37651 - 11904: 0xEBF2, - 37652 - 11904: 0xEBFD, - 37653 - 11904: 0xC043, - 37654 - 11904: 0xEC45, - 37656 - 11904: 0xC1E8, - 37657 - 11904: 0xC045, - 37658 - 11904: 0xBFFE, - 37659 - 11904: 0xEBE6, - 37661 - 11904: 0xEBEF, - 37662 - 11904: 0xEBDE, - 37663 - 11904: 0xEBE0, - 37664 - 11904: 0xBFF5, - 37665 - 11904: 0xC042, - 37666 - 11904: 0xBFFA, - 37667 - 11904: 0xEBE7, - 37668 - 11904: 0xEBF7, - 37669 - 11904: 0xEBF1, - 37670 - 11904: 0xC041, - 37671 - 11904: 0xEBDD, - 37672 - 11904: 0xC1E3, - 37673 - 11904: 0xEBF9, - 37674 - 11904: 0xEBFC, - 37675 - 11904: 0xBFFC, - 37676 - 11904: 0x90A2, - 37677 - 11904: 0xEBEB, - 37678 - 11904: 0xC044, - 37679 - 11904: 0xBFF9, - 37680 - 11904: 0x9CAB, - 37681 - 11904: 0x9776, - 37683 - 11904: 0xBFF8, - 37684 - 11904: 0xEBF5, - 37685 - 11904: 0xEBFB, - 37686 - 11904: 0xBFF6, - 37688 - 11904: 0xEBE4, - 37689 - 11904: 0xEBFA, - 37692 - 11904: 0xEBE5, - 37696 - 11904: 0xFC55, - 37697 - 11904: 0xFE45, - 37698 - 11904: 0x94A8, - 37699 - 11904: 0x9A45, - 37700 - 11904: 0xFA4B, - 37701 - 11904: 0x9DE1, - 37702 - 11904: 0xEBEA, - 37703 - 11904: 0xEED2, - 37704 - 11904: 0x96D9, - 37705 - 11904: 0xEED7, - 37706 - 11904: 0xC1E5, - 37707 - 11904: 0xC1E7, - 37708 - 11904: 0xEEDD, - 37709 - 11904: 0xC1E1, - 37710 - 11904: 0xEEEC, - 37711 - 11904: 0xEEE3, - 37712 - 11904: 0xEED8, - 37713 - 11904: 0xEED9, - 37714 - 11904: 0xEEE2, - 37716 - 11904: 0xC1EE, - 37717 - 11904: 0xEEE1, - 37718 - 11904: 0xEED1, - 37719 - 11904: 0xEEE0, - 37720 - 11904: 0xEED4, - 37721 - 11904: 0xEEED, - 37722 - 11904: 0xC1ED, - 37723 - 11904: 0xC1EB, - 37724 - 11904: 0xEED5, - 37726 - 11904: 0xEEE8, - 37727 - 11904: 0x9774, - 37728 - 11904: 0xEEDA, - 37729 - 11904: 0xEEE7, - 37730 - 11904: 0xFDF5, - 37731 - 11904: 0xEEE9, - 37732 - 11904: 0xEED0, - 37733 - 11904: 0xC1E6, - 37734 - 11904: 0x92E5, - 37735 - 11904: 0xEEEA, - 37736 - 11904: 0x9645, - 37737 - 11904: 0x91DA, - 37738 - 11904: 0xEEDE, - 37739 - 11904: 0x90A3, - 37740 - 11904: 0xC1EA, - 37741 - 11904: 0xEEDB, - 37742 - 11904: 0xA05F, - 37744 - 11904: 0xC1EC, - 37745 - 11904: 0xEEE4, - 37747 - 11904: 0x90AF, - 37748 - 11904: 0x97BF, - 37749 - 11904: 0xC1E4, - 37750 - 11904: 0xEED6, - 37751 - 11904: 0xEEE5, - 37752 - 11904: 0x914C, - 37753 - 11904: 0xEEDF, - 37754 - 11904: 0xEBE3, - 37755 - 11904: 0xEEE6, - 37756 - 11904: 0xEED3, - 37757 - 11904: 0x967A, - 37758 - 11904: 0xC1E9, - 37760 - 11904: 0xEEEB, - 37761 - 11904: 0x91DE, - 37762 - 11904: 0xC1E2, - 37763 - 11904: 0xEECE, - 37764 - 11904: 0x9A46, - 37765 - 11904: 0xFEB0, - 37766 - 11904: 0x9779, - 37767 - 11904: 0x946C, - 37768 - 11904: 0xF160, - 37769 - 11904: 0xF159, - 37770 - 11904: 0xC2E9, - 37772 - 11904: 0xF154, - 37773 - 11904: 0xF163, - 37774 - 11904: 0xF15B, - 37775 - 11904: 0xEEDC, - 37776 - 11904: 0x9858, - 37777 - 11904: 0xF165, - 37778 - 11904: 0xF155, - 37780 - 11904: 0xC2E8, - 37781 - 11904: 0xF15F, - 37782 - 11904: 0xC2EA, - 37783 - 11904: 0xC2F2, - 37784 - 11904: 0xC2F0, - 37785 - 11904: 0xF161, - 37786 - 11904: 0xC2F1, - 37787 - 11904: 0xF157, - 37788 - 11904: 0x9266, - 37789 - 11904: 0xF158, - 37790 - 11904: 0xF15D, - 37791 - 11904: 0xF162, - 37792 - 11904: 0x93FB, - 37793 - 11904: 0xEECD, - 37794 - 11904: 0xC2EB, - 37795 - 11904: 0xF16A, - 37796 - 11904: 0xF167, - 37797 - 11904: 0xF16B, - 37798 - 11904: 0xF15E, - 37799 - 11904: 0xF15A, - 37800 - 11904: 0xF168, - 37801 - 11904: 0xF36A, - 37802 - 11904: 0xF15C, - 37804 - 11904: 0xC2EE, - 37805 - 11904: 0x9A47, - 37806 - 11904: 0xC2ED, - 37807 - 11904: 0xEECF, - 37808 - 11904: 0xC2EF, - 37809 - 11904: 0xF164, - 37810 - 11904: 0xF166, - 37811 - 11904: 0xC2EC, - 37812 - 11904: 0xF169, - 37813 - 11904: 0xF153, - 37815 - 11904: 0xF156, - 37816 - 11904: 0x9749, - 37819 - 11904: 0x9748, - 37821 - 11904: 0x934A, - 37823 - 11904: 0x9CE2, - 37824 - 11904: 0xF373, - 37826 - 11904: 0xF363, - 37827 - 11904: 0xC3EB, - 37828 - 11904: 0xF371, - 37830 - 11904: 0x9264, - 37831 - 11904: 0xF361, - 37832 - 11904: 0xC3EC, - 37834 - 11904: 0xF36C, - 37835 - 11904: 0x91DF, - 37836 - 11904: 0xF368, - 37837 - 11904: 0xC3F1, - 37838 - 11904: 0xF372, - 37839 - 11904: 0xF362, - 37840 - 11904: 0xF365, - 37841 - 11904: 0xC3E9, - 37842 - 11904: 0xF374, - 37843 - 11904: 0xFB79, - 37844 - 11904: 0xF36D, - 37845 - 11904: 0xF370, - 37846 - 11904: 0xC3EF, - 37847 - 11904: 0xC3F4, - 37848 - 11904: 0xC3F2, - 37849 - 11904: 0xF369, - 37850 - 11904: 0xF364, - 37851 - 11904: 0x96D7, - 37852 - 11904: 0xC3ED, - 37853 - 11904: 0xC3EE, - 37854 - 11904: 0xF360, - 37855 - 11904: 0xC3EA, - 37856 - 11904: 0x9343, - 37857 - 11904: 0xC3E8, - 37858 - 11904: 0xC3F0, - 37859 - 11904: 0xF36F, - 37860 - 11904: 0xC3F3, - 37862 - 11904: 0xF36B, - 37863 - 11904: 0xF375, - 37864 - 11904: 0xC3F5, - 37868 - 11904: 0xF367, - 37870 - 11904: 0xF36E, - 37872 - 11904: 0xFDCB, - 37873 - 11904: 0xFE7A, - 37875 - 11904: 0x91DB, - 37876 - 11904: 0x8C6A, - 37877 - 11904: 0xF4F3, - 37878 - 11904: 0xF542, - 37879 - 11904: 0xF4F5, - 37880 - 11904: 0xF4FC, - 37881 - 11904: 0xF366, - 37882 - 11904: 0xF4FA, - 37883 - 11904: 0xF4E9, - 37884 - 11904: 0xF540, - 37885 - 11904: 0xC4C3, - 37886 - 11904: 0xF4ED, - 37887 - 11904: 0xF4FE, - 37888 - 11904: 0xF4F4, - 37889 - 11904: 0x97AF, - 37891 - 11904: 0xC4C2, - 37892 - 11904: 0x95DD, - 37894 - 11904: 0xF544, - 37895 - 11904: 0xF4F6, - 37896 - 11904: 0x9348, - 37897 - 11904: 0xF4FB, - 37898 - 11904: 0xF4FD, - 37899 - 11904: 0xF4E7, - 37900 - 11904: 0xF541, - 37901 - 11904: 0xF4F2, - 37902 - 11904: 0xF4F7, - 37903 - 11904: 0xF4EB, - 37904 - 11904: 0xF4EF, - 37905 - 11904: 0xF543, - 37906 - 11904: 0xF4F9, - 37907 - 11904: 0xF4E8, - 37908 - 11904: 0xF4EC, - 37909 - 11904: 0xF4EE, - 37910 - 11904: 0xF4F8, - 37911 - 11904: 0x9A4B, - 37912 - 11904: 0xC4C1, - 37913 - 11904: 0xF4F1, - 37915 - 11904: 0xFC45, - 37917 - 11904: 0x9A4D, - 37920 - 11904: 0xF4EA, - 37924 - 11904: 0x91BC, - 37925 - 11904: 0x90E2, - 37926 - 11904: 0x90B4, - 37927 - 11904: 0x95E1, - 37928 - 11904: 0xF4F0, - 37929 - 11904: 0xF661, - 37930 - 11904: 0xF666, - 37931 - 11904: 0xC54F, - 37932 - 11904: 0xF668, - 37933 - 11904: 0x9A4E, - 37934 - 11904: 0xC549, - 37935 - 11904: 0x87AD, - 37936 - 11904: 0xF664, - 37937 - 11904: 0xF66A, - 37938 - 11904: 0xC54E, - 37939 - 11904: 0xC54A, - 37941 - 11904: 0xC54B, - 37942 - 11904: 0xF660, - 37943 - 11904: 0xF667, - 37944 - 11904: 0xC54D, - 37945 - 11904: 0xF665, - 37946 - 11904: 0xC54C, - 37947 - 11904: 0xF65F, - 37948 - 11904: 0xF663, - 37949 - 11904: 0xF662, - 37950 - 11904: 0x9A4F, - 37951 - 11904: 0xF65E, - 37952 - 11904: 0xF669, - 37954 - 11904: 0xFE40, - 37955 - 11904: 0xFE43, - 37956 - 11904: 0xC5B1, - 37957 - 11904: 0xF76D, - 37958 - 11904: 0xF770, - 37959 - 11904: 0xF76C, - 37960 - 11904: 0xF76E, - 37961 - 11904: 0xF76F, - 37962 - 11904: 0xF769, - 37963 - 11904: 0xF76A, - 37964 - 11904: 0xF767, - 37965 - 11904: 0x96DD, - 37967 - 11904: 0xF76B, - 37968 - 11904: 0xF768, - 37969 - 11904: 0xC5B2, - 37970 - 11904: 0xC5B3, - 37972 - 11904: 0x9A51, - 37973 - 11904: 0xF84B, - 37975 - 11904: 0xF84D, - 37976 - 11904: 0x96A7, - 37979 - 11904: 0x90B0, - 37981 - 11904: 0xF84C, - 37982 - 11904: 0xF84E, - 37984 - 11904: 0xC5E0, - 37986 - 11904: 0xF84A, - 37987 - 11904: 0xC5DF, - 37988 - 11904: 0xC5E1, - 37989 - 11904: 0x9C4E, - 37991 - 11904: 0x9443, - 37992 - 11904: 0xF8CB, - 37993 - 11904: 0xF8CC, - 37994 - 11904: 0xC644, - 37995 - 11904: 0xF8CA, - 37996 - 11904: 0x8EBA, - 37997 - 11904: 0xF953, - 37998 - 11904: 0xF952, - 37999 - 11904: 0xF954, - 38000 - 11904: 0xC65F, - 38001 - 11904: 0xF955, - 38002 - 11904: 0xC65E, - 38003 - 11904: 0xF956, - 38004 - 11904: 0xF972, - 38005 - 11904: 0xF975, - 38006 - 11904: 0xF974, - 38007 - 11904: 0xC668, - 38008 - 11904: 0xF973, - 38009 - 11904: 0x9A52, - 38011 - 11904: 0xFCC1, - 38012 - 11904: 0xC672, - 38013 - 11904: 0xC670, - 38014 - 11904: 0xC671, - 38015 - 11904: 0xC677, - 38016 - 11904: 0xF9C0, - 38017 - 11904: 0xF9C1, - 38018 - 11904: 0xF9BF, - 38019 - 11904: 0xF9C9, - 38021 - 11904: 0x8BE9, - 38047 - 11904: 0x9CAF, - 38050 - 11904: 0x8BFD, - 38081 - 11904: 0x9ABC, - 38083 - 11904: 0x9AB8, - 38108 - 11904: 0x9AAE, - 38134 - 11904: 0x9AA7, - 38189 - 11904: 0x9A53, - 38215 - 11904: 0x9D74, - 38263 - 11904: 0xAAF8, - 38264 - 11904: 0x8BEA, - 38266 - 11904: 0xD844, - 38267 - 11904: 0xDC78, - 38268 - 11904: 0xE8A5, - 38269 - 11904: 0xF376, - 38271 - 11904: 0x8BEB, - 38272 - 11904: 0xAAF9, - 38274 - 11904: 0xADAC, - 38275 - 11904: 0xB07B, - 38277 - 11904: 0x90B2, - 38278 - 11904: 0xD845, - 38280 - 11904: 0xD846, - 38281 - 11904: 0xB3AC, - 38283 - 11904: 0xB67D, - 38284 - 11904: 0xDC7A, - 38285 - 11904: 0xDC79, - 38286 - 11904: 0xB6A3, - 38287 - 11904: 0xB67C, - 38288 - 11904: 0xDC7B, - 38289 - 11904: 0xB67E, - 38290 - 11904: 0xB6A2, - 38291 - 11904: 0xB6A1, - 38292 - 11904: 0xB67B, - 38294 - 11904: 0x95E9, - 38295 - 11904: 0x95E8, - 38296 - 11904: 0xB968, - 38297 - 11904: 0x95E6, - 38299 - 11904: 0xE0D0, - 38300 - 11904: 0xE0CE, - 38302 - 11904: 0xE0CF, - 38303 - 11904: 0xE0CD, - 38304 - 11904: 0x90B5, - 38305 - 11904: 0xBBD2, - 38306 - 11904: 0x9A54, - 38307 - 11904: 0xBBD5, - 38308 - 11904: 0xBBD7, - 38309 - 11904: 0xBBD6, - 38310 - 11904: 0x90B3, - 38311 - 11904: 0x95E7, - 38312 - 11904: 0xBBD3, - 38313 - 11904: 0xBBD4, - 38314 - 11904: 0x8B50, - 38315 - 11904: 0xE8A7, - 38316 - 11904: 0xE8A6, - 38317 - 11904: 0xBE5B, - 38318 - 11904: 0xE8A8, - 38320 - 11904: 0xE8A9, - 38321 - 11904: 0xBE5C, - 38325 - 11904: 0xEC4D, - 38326 - 11904: 0xEC4B, - 38327 - 11904: 0xEEF3, - 38329 - 11904: 0xEC49, - 38330 - 11904: 0xEC4A, - 38331 - 11904: 0xC046, - 38332 - 11904: 0xEC46, - 38333 - 11904: 0xEC4E, - 38334 - 11904: 0xEC48, - 38335 - 11904: 0xEC4C, - 38336 - 11904: 0xEEEF, - 38339 - 11904: 0xEEF1, - 38341 - 11904: 0xEEF2, - 38342 - 11904: 0xC1F3, - 38343 - 11904: 0xEEEE, - 38344 - 11904: 0xC1F2, - 38345 - 11904: 0xEEF0, - 38346 - 11904: 0xC1EF, - 38347 - 11904: 0xC1F0, - 38348 - 11904: 0xC1F1, - 38349 - 11904: 0xEC47, - 38352 - 11904: 0xC2F5, - 38353 - 11904: 0xF16E, - 38354 - 11904: 0xF16C, - 38355 - 11904: 0xF16D, - 38356 - 11904: 0xC2F3, - 38357 - 11904: 0xC2F6, - 38358 - 11904: 0xC2F4, - 38362 - 11904: 0xF377, - 38363 - 11904: 0xF378, - 38364 - 11904: 0xC3F6, - 38366 - 11904: 0xF545, - 38367 - 11904: 0xF547, - 38368 - 11904: 0xF546, - 38369 - 11904: 0xC4C4, - 38370 - 11904: 0xC550, - 38371 - 11904: 0xF66D, - 38372 - 11904: 0xF66C, - 38373 - 11904: 0xF66B, - 38376 - 11904: 0x8BEC, - 38388 - 11904: 0x9A56, - 38428 - 11904: 0xAAFA, - 38429 - 11904: 0x8BFB, - 38430 - 11904: 0xC9AA, - 38432 - 11904: 0xCA58, - 38433 - 11904: 0xA6E9, - 38434 - 11904: 0xCA56, - 38435 - 11904: 0xCA59, - 38436 - 11904: 0xCA57, - 38440 - 11904: 0xCBAE, - 38442 - 11904: 0xA8C1, - 38444 - 11904: 0xA8C2, - 38445 - 11904: 0xCBB0, - 38446 - 11904: 0xA8BF, - 38447 - 11904: 0xCBAF, - 38448 - 11904: 0xCBAD, - 38449 - 11904: 0xA8C0, - 38450 - 11904: 0xA8BE, - 38451 - 11904: 0x9A57, - 38456 - 11904: 0xA0AA, - 38457 - 11904: 0xCDD8, - 38458 - 11904: 0xCDDB, - 38459 - 11904: 0xAAFD, - 38460 - 11904: 0xCDDA, - 38461 - 11904: 0xCDD9, - 38463 - 11904: 0xAAFC, - 38464 - 11904: 0xAAFB, - 38465 - 11904: 0x9FA6, - 38466 - 11904: 0xAB40, - 38467 - 11904: 0xCDDC, - 38468 - 11904: 0xAAFE, - 38469 - 11904: 0x99CC, - 38474 - 11904: 0xD0C6, - 38475 - 11904: 0xADAE, - 38476 - 11904: 0xADAF, - 38477 - 11904: 0xADB0, - 38478 - 11904: 0xD0C7, - 38479 - 11904: 0xD0C3, - 38480 - 11904: 0xADAD, - 38481 - 11904: 0xD0C4, - 38483 - 11904: 0xD0C5, - 38484 - 11904: 0xD0C2, - 38486 - 11904: 0x9C59, - 38488 - 11904: 0xB0A4, - 38491 - 11904: 0xB0A1, - 38492 - 11904: 0xD445, - 38493 - 11904: 0xB0A2, - 38494 - 11904: 0xB0A5, - 38495 - 11904: 0xD446, - 38497 - 11904: 0xB07E, - 38498 - 11904: 0xB07C, - 38499 - 11904: 0xB07D, - 38500 - 11904: 0xB0A3, - 38505 - 11904: 0x99B5, - 38506 - 11904: 0xB3AD, - 38507 - 11904: 0xD849, - 38508 - 11904: 0xB3B5, - 38509 - 11904: 0xD848, - 38511 - 11904: 0xD84B, - 38512 - 11904: 0xB3B1, - 38513 - 11904: 0xD84A, - 38514 - 11904: 0xB6AB, - 38515 - 11904: 0xB3AF, - 38516 - 11904: 0xB3B2, - 38517 - 11904: 0xB3AE, - 38518 - 11904: 0xB3B3, - 38519 - 11904: 0xB3B4, - 38520 - 11904: 0xB3B0, - 38523 - 11904: 0x90BE, - 38524 - 11904: 0xD847, - 38525 - 11904: 0xB6A7, - 38526 - 11904: 0xDC7D, - 38528 - 11904: 0xDCA3, - 38529 - 11904: 0x9FAF, - 38531 - 11904: 0xDCA2, - 38532 - 11904: 0xB6AC, - 38533 - 11904: 0xB6A8, - 38534 - 11904: 0xB6A9, - 38535 - 11904: 0xDC7C, - 38536 - 11904: 0xDC7E, - 38537 - 11904: 0xDCA1, - 38538 - 11904: 0xB6A4, - 38539 - 11904: 0xB6A6, - 38541 - 11904: 0xB6AA, - 38542 - 11904: 0xB6A5, - 38543 - 11904: 0x95F2, - 38545 - 11904: 0xE0D3, - 38546 - 11904: 0xE0D1, - 38547 - 11904: 0xE0D2, - 38548 - 11904: 0xB96A, - 38549 - 11904: 0xB96B, - 38550 - 11904: 0x90BF, - 38551 - 11904: 0xE0D4, - 38552 - 11904: 0xB969, - 38553 - 11904: 0xBBD8, - 38555 - 11904: 0xBBDA, - 38556 - 11904: 0xBBD9, - 38558 - 11904: 0xE4BB, - 38561 - 11904: 0xE4BC, - 38562 - 11904: 0xE8AB, - 38563 - 11904: 0x90C1, - 38564 - 11904: 0xE8AA, - 38565 - 11904: 0xFEE4, - 38567 - 11904: 0xC047, - 38568 - 11904: 0xC048, - 38569 - 11904: 0xEC4F, - 38570 - 11904: 0xC049, - 38572 - 11904: 0xEEF6, - 38574 - 11904: 0xEEF4, - 38576 - 11904: 0xEEF5, - 38577 - 11904: 0xC1F4, - 38579 - 11904: 0xF16F, - 38580 - 11904: 0xC3F7, - 38582 - 11904: 0xC6D7, - 38584 - 11904: 0xC1F5, - 38585 - 11904: 0xAB41, - 38587 - 11904: 0xB0A6, - 38588 - 11904: 0xD447, - 38589 - 11904: 0x90C7, - 38591 - 11904: 0xD84C, - 38592 - 11904: 0xB3B6, - 38593 - 11904: 0xB6AD, - 38594 - 11904: 0xDCA4, - 38595 - 11904: 0xDCA6, - 38596 - 11904: 0xB6AF, - 38597 - 11904: 0xB6AE, - 38598 - 11904: 0xB6B0, - 38599 - 11904: 0xB6B1, - 38600 - 11904: 0xDCA5, - 38601 - 11904: 0xB96E, - 38602 - 11904: 0xB96F, - 38603 - 11904: 0xB96D, - 38604 - 11904: 0xBBDB, - 38605 - 11904: 0xB96C, - 38606 - 11904: 0xE0D5, - 38610 - 11904: 0xBBDC, - 38611 - 11904: 0xE8AC, - 38612 - 11904: 0xEC50, - 38613 - 11904: 0xC04A, - 38614 - 11904: 0xC1F6, - 38615 - 11904: 0xF170, - 38616 - 11904: 0xF174, - 38617 - 11904: 0xC2F9, - 38618 - 11904: 0xF171, - 38619 - 11904: 0xC2FA, - 38620 - 11904: 0xC2F8, - 38621 - 11904: 0xF175, - 38622 - 11904: 0xC2FB, - 38623 - 11904: 0xF173, - 38625 - 11904: 0xF379, - 38626 - 11904: 0xC2F7, - 38627 - 11904: 0xC3F8, - 38629 - 11904: 0xF8CD, - 38632 - 11904: 0xAB42, - 38633 - 11904: 0xB3B8, - 38634 - 11904: 0xB3B7, - 38639 - 11904: 0xB6B2, - 38640 - 11904: 0xDCA8, - 38641 - 11904: 0xDCA7, - 38642 - 11904: 0xB6B3, - 38644 - 11904: 0x92E4, - 38645 - 11904: 0xE0D9, - 38646 - 11904: 0xB973, - 38647 - 11904: 0xB970, - 38648 - 11904: 0xE0D8, - 38649 - 11904: 0xB972, - 38650 - 11904: 0xE0D6, - 38651 - 11904: 0xB971, - 38653 - 11904: 0xE0D7, - 38655 - 11904: 0xE4BD, - 38656 - 11904: 0xBBDD, - 38658 - 11904: 0xE8AF, - 38659 - 11904: 0x9F52, - 38660 - 11904: 0xBE5D, - 38661 - 11904: 0xE8AD, - 38662 - 11904: 0xBE5E, - 38663 - 11904: 0xBE5F, - 38664 - 11904: 0xE8AE, - 38665 - 11904: 0xBE60, - 38667 - 11904: 0xEC51, - 38669 - 11904: 0xC04E, - 38670 - 11904: 0xC04B, - 38671 - 11904: 0xC050, - 38672 - 11904: 0xEC53, - 38673 - 11904: 0xC04C, - 38674 - 11904: 0xEC52, - 38675 - 11904: 0xC04F, - 38678 - 11904: 0xC04D, - 38680 - 11904: 0xEEF9, - 38681 - 11904: 0xEEFB, - 38683 - 11904: 0x90DB, - 38684 - 11904: 0xC1F7, - 38685 - 11904: 0xEEFA, - 38686 - 11904: 0xC1F8, - 38687 - 11904: 0xEEF8, - 38688 - 11904: 0xEEF7, - 38689 - 11904: 0xA066, - 38690 - 11904: 0xF177, - 38691 - 11904: 0xF176, - 38692 - 11904: 0xC2FC, - 38693 - 11904: 0xF178, - 38694 - 11904: 0xF37E, - 38695 - 11904: 0xC3FA, - 38696 - 11904: 0xF37D, - 38697 - 11904: 0xF37A, - 38698 - 11904: 0xC3F9, - 38699 - 11904: 0xF37B, - 38700 - 11904: 0xF37C, - 38702 - 11904: 0xF548, - 38703 - 11904: 0xF549, - 38704 - 11904: 0xC4C5, - 38705 - 11904: 0x90D2, - 38706 - 11904: 0xC553, - 38708 - 11904: 0x876B, - 38709 - 11904: 0xF66E, - 38710 - 11904: 0x90D4, - 38712 - 11904: 0xC551, - 38713 - 11904: 0xC552, - 38714 - 11904: 0xF66F, - 38717 - 11904: 0xC5B4, - 38718 - 11904: 0xC5B5, - 38719 - 11904: 0xF771, - 38720 - 11904: 0x9A5B, - 38721 - 11904: 0x95FD, - 38722 - 11904: 0xC645, - 38723 - 11904: 0xF8CF, - 38724 - 11904: 0xC647, - 38726 - 11904: 0xF8CE, - 38727 - 11904: 0xF8D0, - 38728 - 11904: 0xC646, - 38729 - 11904: 0xF957, - 38730 - 11904: 0x87B1, - 38731 - 11904: 0xF9AD, - 38737 - 11904: 0x8BC4, - 38738 - 11904: 0xAB43, - 38741 - 11904: 0x8C66, - 38742 - 11904: 0xB974, - 38743 - 11904: 0x90DE, - 38744 - 11904: 0xE4BE, - 38746 - 11904: 0xE8B0, - 38747 - 11904: 0xC051, - 38748 - 11904: 0xC052, - 38749 - 11904: 0x9CE4, - 38750 - 11904: 0xAB44, - 38751 - 11904: 0x90E1, - 38752 - 11904: 0xBE61, - 38753 - 11904: 0xC3FB, - 38754 - 11904: 0xADB1, - 38758 - 11904: 0xC053, - 38760 - 11904: 0xC5E2, - 38761 - 11904: 0xADB2, - 38762 - 11904: 0xD84D, - 38764 - 11904: 0xDCA9, - 38765 - 11904: 0x9E46, - 38766 - 11904: 0xDCAB, - 38768 - 11904: 0xDCAA, - 38769 - 11904: 0x9651, - 38770 - 11904: 0xE0DD, - 38771 - 11904: 0xE0DA, - 38772 - 11904: 0xB975, - 38774 - 11904: 0xB976, - 38775 - 11904: 0xE0DB, - 38776 - 11904: 0xE0DC, - 38778 - 11904: 0xE4C0, - 38779 - 11904: 0xE4C5, - 38780 - 11904: 0xBBDE, - 38781 - 11904: 0xE4BF, - 38782 - 11904: 0xE4C1, - 38783 - 11904: 0xE4C8, - 38784 - 11904: 0xE4C3, - 38785 - 11904: 0xE4C7, - 38786 - 11904: 0xE4C4, - 38787 - 11904: 0xE4C2, - 38788 - 11904: 0xE4C6, - 38789 - 11904: 0xBBDF, - 38791 - 11904: 0xFB58, - 38792 - 11904: 0xE8B3, - 38793 - 11904: 0x90E6, - 38794 - 11904: 0xE8B1, - 38795 - 11904: 0xBE63, - 38797 - 11904: 0xBE62, - 38798 - 11904: 0xE8B2, - 38799 - 11904: 0xBE64, - 38804 - 11904: 0xEC56, - 38807 - 11904: 0xEC55, - 38808 - 11904: 0xC054, - 38809 - 11904: 0xEC54, - 38810 - 11904: 0xEEFC, - 38811 - 11904: 0x9650, - 38812 - 11904: 0xEEFE, - 38813 - 11904: 0xEF41, - 38814 - 11904: 0xEF40, - 38815 - 11904: 0x90E7, - 38816 - 11904: 0xC1F9, - 38817 - 11904: 0xEEFD, - 38818 - 11904: 0xF1A1, - 38819 - 11904: 0xC2FD, - 38820 - 11904: 0xF17D, - 38821 - 11904: 0xF1A2, - 38822 - 11904: 0xC2FE, - 38824 - 11904: 0xF17B, - 38826 - 11904: 0xF17E, - 38827 - 11904: 0xF17C, - 38828 - 11904: 0xF179, - 38829 - 11904: 0xC340, - 38830 - 11904: 0xF17A, - 38833 - 11904: 0x90E8, - 38834 - 11904: 0x9A5D, - 38835 - 11904: 0xF3A1, - 38836 - 11904: 0x9F7A, - 38838 - 11904: 0xF3A3, - 38839 - 11904: 0xF3A2, - 38840 - 11904: 0x9B5C, - 38841 - 11904: 0xF54A, - 38842 - 11904: 0x9F7C, - 38843 - 11904: 0xF54B, - 38845 - 11904: 0xFC52, - 38846 - 11904: 0x90E9, - 38847 - 11904: 0xF670, - 38848 - 11904: 0x90EA, - 38849 - 11904: 0xC5B7, - 38850 - 11904: 0x9A5E, - 38851 - 11904: 0xC5B6, - 38852 - 11904: 0xF84F, - 38853 - 11904: 0xF850, - 38854 - 11904: 0xC648, - 38855 - 11904: 0xF8D1, - 38856 - 11904: 0x9F76, - 38857 - 11904: 0xC669, - 38859 - 11904: 0xADB3, - 38860 - 11904: 0xB6B4, - 38861 - 11904: 0xE4CA, - 38862 - 11904: 0xE4C9, - 38863 - 11904: 0xE8B5, - 38864 - 11904: 0xE8B4, - 38866 - 11904: 0x90EB, - 38867 - 11904: 0xC1FA, - 38868 - 11904: 0xEF43, - 38869 - 11904: 0xEF42, - 38870 - 11904: 0xF1A5, - 38871 - 11904: 0xF1A3, - 38872 - 11904: 0xF1A6, - 38873 - 11904: 0xF1A4, - 38876 - 11904: 0xC3FC, - 38877 - 11904: 0xF3A4, - 38878 - 11904: 0xF3A5, - 38879 - 11904: 0xF3A6, - 38880 - 11904: 0x90EC, - 38881 - 11904: 0xF671, - 38883 - 11904: 0xF772, - 38885 - 11904: 0xF8D2, - 38886 - 11904: 0x8BEE, - 38893 - 11904: 0xADB4, - 38894 - 11904: 0x90EE, - 38896 - 11904: 0xEC57, - 38897 - 11904: 0xEF44, - 38898 - 11904: 0x91C6, - 38899 - 11904: 0xADB5, - 38901 - 11904: 0x90F2, - 38902 - 11904: 0xBBE0, - 38904 - 11904: 0xEC58, - 38905 - 11904: 0xC341, - 38906 - 11904: 0xF1A7, - 38907 - 11904: 0xC3FD, - 38909 - 11904: 0xF54C, - 38910 - 11904: 0xF54D, - 38911 - 11904: 0xC554, - 38912 - 11904: 0xF851, - 38913 - 11904: 0xADB6, - 38914 - 11904: 0xB3BB, - 38915 - 11904: 0xB3BC, - 38916 - 11904: 0xD84E, - 38917 - 11904: 0xB6B5, - 38918 - 11904: 0xB6B6, - 38919 - 11904: 0xDCAC, - 38920 - 11904: 0xB6B7, - 38922 - 11904: 0xB97A, - 38924 - 11904: 0xB97C, - 38925 - 11904: 0xE0DF, - 38926 - 11904: 0xE0E0, - 38927 - 11904: 0xE0DE, - 38928 - 11904: 0xB977, - 38929 - 11904: 0xB978, - 38930 - 11904: 0xB97B, - 38931 - 11904: 0xB979, - 38932 - 11904: 0xFCBC, - 38933 - 11904: 0x8A74, - 38934 - 11904: 0xE4CB, - 38935 - 11904: 0xBBE1, - 38936 - 11904: 0xBBE2, - 38939 - 11904: 0xE8BC, - 38940 - 11904: 0xBE67, - 38941 - 11904: 0xE8B7, - 38942 - 11904: 0xE8B6, - 38943 - 11904: 0x9657, - 38944 - 11904: 0xE8BB, - 38945 - 11904: 0xBE65, - 38947 - 11904: 0x9CEF, - 38948 - 11904: 0xC05B, - 38950 - 11904: 0xE8B8, - 38951 - 11904: 0xE8BD, - 38952 - 11904: 0xE8BA, - 38953 - 11904: 0xE8B9, - 38955 - 11904: 0xBE66, - 38957 - 11904: 0xC059, - 38958 - 11904: 0x9FDF, - 38959 - 11904: 0xEC5A, - 38960 - 11904: 0xC055, - 38962 - 11904: 0xEC5B, - 38963 - 11904: 0x90F7, - 38964 - 11904: 0x90F6, - 38965 - 11904: 0xEC59, - 38967 - 11904: 0xC058, - 38968 - 11904: 0xC056, - 38969 - 11904: 0xC05A, - 38971 - 11904: 0xC057, - 38977 - 11904: 0xEF45, - 38979 - 11904: 0xEF4A, - 38980 - 11904: 0xEF46, - 38981 - 11904: 0xEF49, - 38982 - 11904: 0xC1FB, - 38983 - 11904: 0x9B5E, - 38984 - 11904: 0xEDD4, - 38985 - 11904: 0xEF48, - 38986 - 11904: 0xEF47, - 38987 - 11904: 0x90F8, - 38988 - 11904: 0xC344, - 38989 - 11904: 0xC342, - 38990 - 11904: 0xC345, - 38991 - 11904: 0xC343, - 38992 - 11904: 0xF1A8, - 38993 - 11904: 0xF1A9, - 38994 - 11904: 0xF1AA, - 38995 - 11904: 0xC346, - 38998 - 11904: 0x8CFC, - 38999 - 11904: 0xF3AA, - 39000 - 11904: 0xC440, - 39001 - 11904: 0xF3A8, - 39003 - 11904: 0xC441, - 39004 - 11904: 0xF3A7, - 39005 - 11904: 0xF3A9, - 39006 - 11904: 0xC3FE, - 39007 - 11904: 0xF551, - 39008 - 11904: 0xF54E, - 39010 - 11904: 0xF54F, - 39011 - 11904: 0xF550, - 39012 - 11904: 0xF672, - 39013 - 11904: 0xC556, - 39014 - 11904: 0x90F9, - 39015 - 11904: 0xC555, - 39016 - 11904: 0x8CC9, - 39017 - 11904: 0xF774, - 39018 - 11904: 0xF773, - 39019 - 11904: 0xC5B8, - 39020 - 11904: 0xFA6A, - 39023 - 11904: 0xC5E3, - 39024 - 11904: 0xC649, - 39025 - 11904: 0xC660, - 39026 - 11904: 0xF958, - 39027 - 11904: 0xF9AE, - 39028 - 11904: 0xF9AF, - 39029 - 11904: 0x8BEF, - 39080 - 11904: 0xADB7, - 39081 - 11904: 0xDCAD, - 39084 - 11904: 0xE0E1, - 39085 - 11904: 0xE4CC, - 39086 - 11904: 0xE4CD, - 39087 - 11904: 0xBBE3, - 39089 - 11904: 0xBBE4, - 39090 - 11904: 0xE8BE, - 39091 - 11904: 0xBE68, - 39092 - 11904: 0x9FE0, - 39094 - 11904: 0xC1FC, - 39095 - 11904: 0x9142, - 39096 - 11904: 0xF1AB, - 39097 - 11904: 0x9A62, - 39098 - 11904: 0xC347, - 39099 - 11904: 0xF3AD, - 39100 - 11904: 0xC442, - 39101 - 11904: 0xF3AC, - 39102 - 11904: 0xF3AE, - 39103 - 11904: 0xF3AB, - 39104 - 11904: 0xF675, - 39105 - 11904: 0xF552, - 39106 - 11904: 0xF553, - 39107 - 11904: 0x9569, - 39108 - 11904: 0xC4C6, - 39110 - 11904: 0xF674, - 39111 - 11904: 0x9144, - 39112 - 11904: 0x9143, - 39113 - 11904: 0xF673, - 39114 - 11904: 0x9141, - 39115 - 11904: 0xF775, - 39116 - 11904: 0xF9B0, - 39118 - 11904: 0x8BF0, - 39131 - 11904: 0xADB8, - 39132 - 11904: 0x9660, - 39134 - 11904: 0x8BF1, - 39135 - 11904: 0xADB9, - 39136 - 11904: 0x99F6, - 39137 - 11904: 0x9149, - 39138 - 11904: 0xB0A7, - 39139 - 11904: 0xD448, - 39141 - 11904: 0xD84F, - 39142 - 11904: 0x914A, - 39143 - 11904: 0xB6B8, - 39145 - 11904: 0xB6BB, - 39146 - 11904: 0xB6B9, - 39147 - 11904: 0xDCAE, - 39148 - 11904: 0x914B, - 39149 - 11904: 0xB6BD, - 39151 - 11904: 0xB6BA, - 39153 - 11904: 0x9A64, - 39154 - 11904: 0xB6BC, - 39156 - 11904: 0xB97E, - 39157 - 11904: 0x8ABF, - 39158 - 11904: 0xE0E2, - 39161 - 11904: 0xE0E3, - 39162 - 11904: 0xE8C0, - 39164 - 11904: 0xB97D, - 39165 - 11904: 0xB9A1, - 39166 - 11904: 0xB9A2, - 39168 - 11904: 0xE4CF, - 39170 - 11904: 0xE4CE, - 39171 - 11904: 0xBBE5, - 39173 - 11904: 0xBBE6, - 39175 - 11904: 0xE4D0, - 39176 - 11904: 0xE8BF, - 39177 - 11904: 0xBBE8, - 39178 - 11904: 0xBE69, - 39180 - 11904: 0xBBE7, - 39182 - 11904: 0x9A66, - 39184 - 11904: 0xC05C, - 39185 - 11904: 0xE8C1, - 39186 - 11904: 0xBE6B, - 39187 - 11904: 0xBE6A, - 39188 - 11904: 0xE8C2, - 39189 - 11904: 0xE8C5, - 39190 - 11904: 0xE8C3, - 39191 - 11904: 0xE8C4, - 39192 - 11904: 0xBE6C, - 39193 - 11904: 0x9A67, - 39194 - 11904: 0xC061, - 39195 - 11904: 0xC05F, - 39196 - 11904: 0x9A69, - 39198 - 11904: 0xC05E, - 39199 - 11904: 0xEC5D, - 39201 - 11904: 0xC060, - 39204 - 11904: 0xEC5C, - 39205 - 11904: 0xEF4B, - 39207 - 11904: 0xEC5E, - 39208 - 11904: 0xC05D, - 39209 - 11904: 0xEC5F, - 39210 - 11904: 0xEF4E, - 39211 - 11904: 0xEF4C, - 39212 - 11904: 0xEF4D, - 39213 - 11904: 0xEF52, - 39214 - 11904: 0xC34B, - 39215 - 11904: 0xEF51, - 39216 - 11904: 0xEF54, - 39217 - 11904: 0xEF53, - 39218 - 11904: 0xEF50, - 39219 - 11904: 0xEF4F, - 39221 - 11904: 0xC1FD, - 39223 - 11904: 0x9A6A, - 39224 - 11904: 0x9652, - 39225 - 11904: 0x914D, - 39226 - 11904: 0xF1AE, - 39227 - 11904: 0x9666, - 39228 - 11904: 0xF1AD, - 39229 - 11904: 0xC34A, - 39230 - 11904: 0xC348, - 39231 - 11904: 0xC349, - 39232 - 11904: 0x9F7B, - 39233 - 11904: 0xF1AC, - 39234 - 11904: 0x9A6B, - 39235 - 11904: 0xF3B1, - 39237 - 11904: 0xC443, - 39239 - 11904: 0xF3B0, - 39240 - 11904: 0xF3AF, - 39241 - 11904: 0xC444, - 39242 - 11904: 0xA06C, - 39243 - 11904: 0xF558, - 39244 - 11904: 0xF557, - 39245 - 11904: 0x9667, - 39246 - 11904: 0xF555, - 39248 - 11904: 0xF554, - 39249 - 11904: 0xC4C8, - 39250 - 11904: 0xC4C7, - 39251 - 11904: 0xF559, - 39252 - 11904: 0xF776, - 39253 - 11904: 0xC5B9, - 39254 - 11904: 0xF677, - 39255 - 11904: 0xC557, - 39256 - 11904: 0xF676, - 39257 - 11904: 0xF556, - 39259 - 11904: 0xF777, - 39260 - 11904: 0xC5E4, - 39261 - 11904: 0x9A6C, - 39262 - 11904: 0xC661, - 39263 - 11904: 0xF959, - 39265 - 11904: 0xF9B1, - 39266 - 11904: 0x9A6D, - 39267 - 11904: 0x8BF2, - 39318 - 11904: 0xADBA, - 39319 - 11904: 0xD850, - 39320 - 11904: 0xEF55, - 39321 - 11904: 0xADBB, - 39323 - 11904: 0x966A, - 39324 - 11904: 0xE4D2, - 39325 - 11904: 0xE4D1, - 39326 - 11904: 0xEC60, - 39329 - 11904: 0xEF57, - 39331 - 11904: 0xEF56, - 39332 - 11904: 0xFCEA, - 39333 - 11904: 0xC34C, - 39334 - 11904: 0xF3B2, - 39335 - 11904: 0xF3B3, - 39336 - 11904: 0xC4C9, - 39338 - 11904: 0x966C, - 39339 - 11904: 0xF9B2, - 39340 - 11904: 0xB0A8, - 39341 - 11904: 0xB6BF, - 39342 - 11904: 0xB6BE, - 39343 - 11904: 0xE0E4, - 39344 - 11904: 0xE0E6, - 39345 - 11904: 0xB9A4, - 39346 - 11904: 0xE0E5, - 39347 - 11904: 0xB9A3, - 39348 - 11904: 0xB9A5, - 39349 - 11904: 0xE0E7, - 39352 - 11904: 0x91C4, - 39353 - 11904: 0xE4D4, - 39354 - 11904: 0xE4D6, - 39355 - 11904: 0xE4D5, - 39356 - 11904: 0x9677, - 39357 - 11904: 0xE4D8, - 39361 - 11904: 0xBBE9, - 39362 - 11904: 0xE4D7, - 39363 - 11904: 0xE4D3, - 39364 - 11904: 0x99F4, - 39365 - 11904: 0x9A6F, - 39367 - 11904: 0xE4D9, - 39369 - 11904: 0xE8CC, - 39371 - 11904: 0xE8CF, - 39372 - 11904: 0xE8D1, - 39373 - 11904: 0xE8C7, - 39374 - 11904: 0xE8CB, - 39375 - 11904: 0xE8C8, - 39376 - 11904: 0xBE6E, - 39377 - 11904: 0xBE71, - 39378 - 11904: 0xBE73, - 39379 - 11904: 0xE8C9, - 39380 - 11904: 0xE8CA, - 39381 - 11904: 0xBE72, - 39382 - 11904: 0xE8CD, - 39383 - 11904: 0xE8D0, - 39384 - 11904: 0xE8CE, - 39385 - 11904: 0xBE74, - 39386 - 11904: 0x9FAB, - 39387 - 11904: 0xBE70, - 39388 - 11904: 0xE8C6, - 39389 - 11904: 0xBE6D, - 39391 - 11904: 0xBE6F, - 39392 - 11904: 0x8CBE, - 39393 - 11904: 0x8EC1, - 39394 - 11904: 0xC063, - 39395 - 11904: 0xEC66, - 39396 - 11904: 0xEC64, - 39397 - 11904: 0xEC63, - 39398 - 11904: 0x9555, - 39399 - 11904: 0xEC69, - 39401 - 11904: 0xEC68, - 39402 - 11904: 0xEC67, - 39404 - 11904: 0xEC62, - 39405 - 11904: 0xC062, - 39406 - 11904: 0xEC61, - 39408 - 11904: 0xEC65, - 39409 - 11904: 0xC064, - 39412 - 11904: 0xEF5A, - 39413 - 11904: 0x9152, - 39414 - 11904: 0xEF5E, - 39415 - 11904: 0xEF5B, - 39416 - 11904: 0xEF5D, - 39417 - 11904: 0xEF5C, - 39418 - 11904: 0xEF59, - 39419 - 11904: 0xEF5F, - 39420 - 11904: 0xEF62, - 39421 - 11904: 0xEF60, - 39422 - 11904: 0xEF61, - 39423 - 11904: 0xC240, - 39425 - 11904: 0xC1FE, - 39426 - 11904: 0xEF58, - 39427 - 11904: 0xEF63, - 39428 - 11904: 0xF1B3, - 39429 - 11904: 0xF1B6, - 39430 - 11904: 0xF1B8, - 39431 - 11904: 0xF1B7, - 39433 - 11904: 0xF1B1, - 39434 - 11904: 0xF1B5, - 39435 - 11904: 0xF1B0, - 39436 - 11904: 0x9153, - 39437 - 11904: 0xF1B2, - 39438 - 11904: 0xC34D, - 39439 - 11904: 0xF1AF, - 39440 - 11904: 0x9155, - 39441 - 11904: 0xF1B4, - 39444 - 11904: 0xF3C0, - 39445 - 11904: 0xF3B5, - 39446 - 11904: 0xC445, - 39449 - 11904: 0xC446, - 39450 - 11904: 0xF3B4, - 39451 - 11904: 0xF3B9, - 39452 - 11904: 0xF3BF, - 39453 - 11904: 0xF3B7, - 39454 - 11904: 0xF3BE, - 39455 - 11904: 0x955D, - 39456 - 11904: 0xF3BB, - 39457 - 11904: 0x9671, - 39458 - 11904: 0xF3BA, - 39459 - 11904: 0xF3BD, - 39460 - 11904: 0xF3B8, - 39461 - 11904: 0xF3B6, - 39462 - 11904: 0x9C6D, - 39463 - 11904: 0xF3BC, - 39465 - 11904: 0xF560, - 39466 - 11904: 0xF55E, - 39467 - 11904: 0xC4CA, - 39468 - 11904: 0xF55D, - 39469 - 11904: 0xF563, - 39470 - 11904: 0xF561, - 39471 - 11904: 0x9673, - 39472 - 11904: 0xC4CB, - 39473 - 11904: 0xF55C, - 39474 - 11904: 0xF55A, - 39476 - 11904: 0xF55B, - 39477 - 11904: 0xC4CD, - 39478 - 11904: 0xF55F, - 39479 - 11904: 0xC4CC, - 39480 - 11904: 0xF562, - 39481 - 11904: 0xF678, - 39482 - 11904: 0xF67E, - 39483 - 11904: 0x9154, - 39484 - 11904: 0x9A71, - 39485 - 11904: 0xF679, - 39486 - 11904: 0xC55B, - 39487 - 11904: 0xF6A1, - 39488 - 11904: 0xC55A, - 39489 - 11904: 0xF67D, - 39490 - 11904: 0xF67C, - 39491 - 11904: 0xC559, - 39492 - 11904: 0xF67B, - 39493 - 11904: 0xC558, - 39494 - 11904: 0xF67A, - 39496 - 11904: 0xF77D, - 39497 - 11904: 0xF7A1, - 39498 - 11904: 0xF77E, - 39500 - 11904: 0xF77B, - 39501 - 11904: 0xC5BB, - 39502 - 11904: 0xF778, - 39503 - 11904: 0xF77C, - 39504 - 11904: 0xF7A3, - 39506 - 11904: 0xF7A2, - 39507 - 11904: 0xF779, - 39508 - 11904: 0xF77A, - 39509 - 11904: 0xC5BA, - 39510 - 11904: 0xF852, - 39511 - 11904: 0xC5E7, - 39512 - 11904: 0x9156, - 39513 - 11904: 0xF853, - 39514 - 11904: 0xC5E5, - 39515 - 11904: 0xC5E6, - 39516 - 11904: 0x966D, - 39518 - 11904: 0xF8D3, - 39519 - 11904: 0xC64A, - 39520 - 11904: 0xF976, - 39522 - 11904: 0xC66A, - 39523 - 11904: 0x9557, - 39524 - 11904: 0xF9B3, - 39525 - 11904: 0xC66B, - 39526 - 11904: 0xF9B4, - 39527 - 11904: 0xF9B5, - 39528 - 11904: 0xF9C3, - 39529 - 11904: 0xF9C2, - 39530 - 11904: 0xC67A, - 39531 - 11904: 0xF9CD, - 39532 - 11904: 0x89C6, - 39567 - 11904: 0x89C7, - 39592 - 11904: 0xB0A9, - 39595 - 11904: 0xE0E9, - 39597 - 11904: 0xE0E8, - 39599 - 11904: 0xBBEA, - 39600 - 11904: 0xBBEB, - 39601 - 11904: 0xE4DA, - 39602 - 11904: 0x8A6A, - 39603 - 11904: 0xE8D2, - 39604 - 11904: 0xEC6C, - 39606 - 11904: 0x8B57, - 39607 - 11904: 0xBE75, - 39608 - 11904: 0xC065, - 39609 - 11904: 0xEC6A, - 39610 - 11904: 0x9FE1, - 39611 - 11904: 0xEC6D, - 39612 - 11904: 0xC066, - 39613 - 11904: 0x9B5F, - 39614 - 11904: 0xEF64, - 39615 - 11904: 0xEC6B, - 39616 - 11904: 0xF1B9, - 39617 - 11904: 0xC34E, - 39618 - 11904: 0xF3C1, - 39622 - 11904: 0xF566, - 39623 - 11904: 0xF564, - 39626 - 11904: 0xF565, - 39629 - 11904: 0xF6A2, - 39631 - 11904: 0xC55C, - 39632 - 11904: 0xF7A4, - 39633 - 11904: 0xC5EA, - 39634 - 11904: 0xC5BC, - 39635 - 11904: 0xC5E8, - 39636 - 11904: 0xC5E9, - 39637 - 11904: 0xF8D4, - 39638 - 11904: 0xC662, - 39639 - 11904: 0xA05D, - 39640 - 11904: 0xB0AA, - 39644 - 11904: 0xF1BA, - 39647 - 11904: 0xD449, - 39648 - 11904: 0x915B, - 39649 - 11904: 0xB9A6, - 39650 - 11904: 0x915C, - 39651 - 11904: 0xE4DB, - 39654 - 11904: 0xBBEC, - 39655 - 11904: 0xE4DC, - 39659 - 11904: 0xE8D4, - 39660 - 11904: 0xE8D3, - 39661 - 11904: 0xC068, - 39662 - 11904: 0xBE76, - 39663 - 11904: 0xBE77, - 39665 - 11904: 0xE8D7, - 39666 - 11904: 0xE8D6, - 39667 - 11904: 0xE8D5, - 39668 - 11904: 0x915E, - 39670 - 11904: 0xEC6E, - 39671 - 11904: 0xEC71, - 39673 - 11904: 0xEC70, - 39674 - 11904: 0xEC6F, - 39675 - 11904: 0xC067, - 39676 - 11904: 0xEF68, - 39677 - 11904: 0xEF66, - 39678 - 11904: 0xEF65, - 39679 - 11904: 0x9F5C, - 39681 - 11904: 0xEF67, - 39682 - 11904: 0x9F57, - 39683 - 11904: 0xC34F, - 39684 - 11904: 0xF1BC, - 39685 - 11904: 0xF1BD, - 39686 - 11904: 0xC350, - 39688 - 11904: 0xF1BB, - 39689 - 11904: 0x9F65, - 39690 - 11904: 0xF3C3, - 39691 - 11904: 0xF3C2, - 39692 - 11904: 0xF3C5, - 39693 - 11904: 0xC447, - 39694 - 11904: 0xF3C4, - 39695 - 11904: 0x9A72, - 39696 - 11904: 0xF567, - 39697 - 11904: 0xF569, - 39698 - 11904: 0xF568, - 39700 - 11904: 0x9160, - 39701 - 11904: 0xF6A3, - 39702 - 11904: 0xF6A6, - 39703 - 11904: 0xF6A4, - 39704 - 11904: 0xF6A5, - 39705 - 11904: 0xF7A5, - 39706 - 11904: 0xC5BD, - 39710 - 11904: 0xF854, - 39711 - 11904: 0xF855, - 39712 - 11904: 0xF856, - 39714 - 11904: 0xC64B, - 39715 - 11904: 0xC663, - 39716 - 11904: 0xF9B6, - 39717 - 11904: 0xB0AB, - 39719 - 11904: 0xBE78, - 39720 - 11904: 0xC069, - 39721 - 11904: 0xF1BE, - 39722 - 11904: 0x9F5E, - 39723 - 11904: 0xF7A6, - 39725 - 11904: 0x9161, - 39726 - 11904: 0xF9C4, - 39727 - 11904: 0xD44A, - 39729 - 11904: 0xC67B, - 39730 - 11904: 0xB0AC, - 39731 - 11904: 0xEC72, - 39732 - 11904: 0x9164, - 39733 - 11904: 0xF1BF, - 39735 - 11904: 0xF3C6, - 39737 - 11904: 0x9F41, - 39738 - 11904: 0xF6A7, - 39739 - 11904: 0xF7A7, - 39740 - 11904: 0xB0AD, - 39742 - 11904: 0xE4DD, - 39743 - 11904: 0xE4DE, - 39744 - 11904: 0x9169, - 39745 - 11904: 0xBBED, - 39746 - 11904: 0xBBEE, - 39747 - 11904: 0xE8D9, - 39748 - 11904: 0xBE7A, - 39749 - 11904: 0xBE79, - 39750 - 11904: 0xE8D8, - 39752 - 11904: 0xEF69, - 39754 - 11904: 0xF1C0, - 39755 - 11904: 0xF1C2, - 39756 - 11904: 0xF1C1, - 39757 - 11904: 0xC353, - 39758 - 11904: 0xC352, - 39759 - 11904: 0xC351, - 39760 - 11904: 0x9168, - 39761 - 11904: 0xC55E, - 39762 - 11904: 0xF6A8, - 39764 - 11904: 0xC55D, - 39765 - 11904: 0xF7A9, - 39766 - 11904: 0xF7A8, - 39768 - 11904: 0xC64C, - 39769 - 11904: 0xF8D5, - 39770 - 11904: 0xB3BD, - 39771 - 11904: 0xE0EA, - 39775 - 11904: 0xE4E1, - 39776 - 11904: 0xE4DF, - 39777 - 11904: 0xE4E0, - 39780 - 11904: 0xE8E2, - 39782 - 11904: 0xE8DD, - 39783 - 11904: 0xE8DA, - 39784 - 11904: 0xE8E1, - 39785 - 11904: 0x9A74, - 39788 - 11904: 0xE8E3, - 39791 - 11904: 0xBE7C, - 39792 - 11904: 0xE8E0, - 39793 - 11904: 0xE8DC, - 39796 - 11904: 0xE8DB, - 39797 - 11904: 0xE8DF, - 39798 - 11904: 0xE8DE, - 39799 - 11904: 0xBE7B, - 39802 - 11904: 0xEC7D, - 39803 - 11904: 0xEC78, - 39804 - 11904: 0xEC76, - 39805 - 11904: 0xECA1, - 39806 - 11904: 0xEC77, - 39807 - 11904: 0x96B2, - 39808 - 11904: 0xEC73, - 39809 - 11904: 0x9A75, - 39810 - 11904: 0xEC79, - 39811 - 11904: 0xFDA5, - 39813 - 11904: 0xEC74, - 39814 - 11904: 0xEF72, - 39815 - 11904: 0xEC75, - 39816 - 11904: 0xECA2, - 39819 - 11904: 0x9EE9, - 39821 - 11904: 0x8BBA, - 39822 - 11904: 0x916D, - 39823 - 11904: 0xA060, - 39824 - 11904: 0xEC7C, - 39825 - 11904: 0xC06A, - 39826 - 11904: 0xEC7B, - 39827 - 11904: 0xEC7A, - 39829 - 11904: 0xEC7E, - 39831 - 11904: 0x9FDE, - 39834 - 11904: 0xEF6A, - 39835 - 11904: 0xEF6D, - 39837 - 11904: 0x9FC3, - 39838 - 11904: 0xEF6C, - 39839 - 11904: 0x96B5, - 39840 - 11904: 0xEF74, - 39841 - 11904: 0xEF6F, - 39842 - 11904: 0xEF73, - 39844 - 11904: 0xEF71, - 39845 - 11904: 0xEF70, - 39846 - 11904: 0xEF6E, - 39848 - 11904: 0xEF6B, - 39850 - 11904: 0xC243, - 39851 - 11904: 0xC242, - 39853 - 11904: 0xC244, - 39854 - 11904: 0xC241, - 39855 - 11904: 0xEF75, - 39856 - 11904: 0xA067, - 39861 - 11904: 0xF1C8, - 39862 - 11904: 0xF1CB, - 39864 - 11904: 0xF1C9, - 39865 - 11904: 0xF1CD, - 39869 - 11904: 0xF1CE, - 39871 - 11904: 0xF1C6, - 39872 - 11904: 0xC358, - 39873 - 11904: 0xF1C7, - 39875 - 11904: 0xF1C5, - 39876 - 11904: 0xF1CC, - 39878 - 11904: 0xF1C4, - 39879 - 11904: 0xF1C3, - 39880 - 11904: 0xC357, - 39881 - 11904: 0xC355, - 39882 - 11904: 0xC354, - 39887 - 11904: 0x96B3, - 39891 - 11904: 0xF1CA, - 39892 - 11904: 0xF3CF, - 39893 - 11904: 0xF3D5, - 39894 - 11904: 0xC44A, - 39895 - 11904: 0xF3D0, - 39897 - 11904: 0xF3D3, - 39898 - 11904: 0xF3D7, - 39899 - 11904: 0xC44B, - 39900 - 11904: 0xF3D2, - 39901 - 11904: 0x9A76, - 39902 - 11904: 0xF3CA, - 39904 - 11904: 0xF3C9, - 39905 - 11904: 0xF3D6, - 39906 - 11904: 0xF3CD, - 39908 - 11904: 0xF3CB, - 39909 - 11904: 0xF3D4, - 39910 - 11904: 0xF3CC, - 39911 - 11904: 0xC449, - 39912 - 11904: 0xC448, - 39913 - 11904: 0x95D5, - 39914 - 11904: 0xF3C7, - 39915 - 11904: 0xF3C8, - 39916 - 11904: 0xF3D1, - 39917 - 11904: 0x9ECA, - 39920 - 11904: 0xF3CE, - 39921 - 11904: 0x9A77, - 39924 - 11904: 0x9A78, - 39927 - 11904: 0xF56C, - 39928 - 11904: 0xF56F, - 39933 - 11904: 0xC356, - 39935 - 11904: 0x9170, - 39938 - 11904: 0x916F, - 39941 - 11904: 0xF56D, - 39942 - 11904: 0xF573, - 39943 - 11904: 0xF571, - 39944 - 11904: 0xF56B, - 39945 - 11904: 0xF576, - 39946 - 11904: 0x9FA3, - 39947 - 11904: 0xF56A, - 39948 - 11904: 0x9171, - 39949 - 11904: 0xC4CF, - 39950 - 11904: 0xF572, - 39952 - 11904: 0x96B1, - 39954 - 11904: 0xF56E, - 39955 - 11904: 0xC4CE, - 39956 - 11904: 0xF575, - 39957 - 11904: 0x9F63, - 39959 - 11904: 0xF574, - 39963 - 11904: 0x9F67, - 39964 - 11904: 0xF6AB, - 39965 - 11904: 0xF6AA, - 39967 - 11904: 0x8BB9, - 39968 - 11904: 0x9A7A, - 39969 - 11904: 0xF6B1, - 39971 - 11904: 0xF6AD, - 39972 - 11904: 0xF6B0, - 39973 - 11904: 0xC560, - 39974 - 11904: 0x8B56, - 39976 - 11904: 0xF6AE, - 39977 - 11904: 0xF6AF, - 39979 - 11904: 0xF6A9, - 39980 - 11904: 0xF6AC, - 39981 - 11904: 0xC55F, - 39983 - 11904: 0x9ADA, - 39985 - 11904: 0xC5BF, - 39986 - 11904: 0xF7B4, - 39987 - 11904: 0xF7AF, - 39988 - 11904: 0xF7B3, - 39989 - 11904: 0x96B0, - 39990 - 11904: 0xF7B6, - 39991 - 11904: 0xF7B2, - 39993 - 11904: 0xF7AE, - 39994 - 11904: 0x9A7E, - 39995 - 11904: 0xC5C1, - 39996 - 11904: 0xF7B1, - 39997 - 11904: 0xF7B5, - 39998 - 11904: 0xC5C0, - 39999 - 11904: 0xF7AC, - 40000 - 11904: 0xF570, - 40001 - 11904: 0xF7B0, - 40004 - 11904: 0xF7AD, - 40005 - 11904: 0x9DDE, - 40006 - 11904: 0xF7AA, - 40008 - 11904: 0xF7AB, - 40009 - 11904: 0xC5BE, - 40010 - 11904: 0xF85A, - 40011 - 11904: 0xF85C, - 40012 - 11904: 0xF85F, - 40013 - 11904: 0xF85B, - 40014 - 11904: 0xF860, - 40015 - 11904: 0x96AD, - 40016 - 11904: 0xF859, - 40018 - 11904: 0xF857, - 40019 - 11904: 0x96AE, - 40020 - 11904: 0xC5EB, - 40021 - 11904: 0xF85D, - 40022 - 11904: 0xC5ED, - 40023 - 11904: 0xC5EC, - 40024 - 11904: 0xF858, - 40025 - 11904: 0xF85E, - 40029 - 11904: 0x9EA1, - 40030 - 11904: 0xF8DA, - 40031 - 11904: 0xC64D, - 40032 - 11904: 0xF8DB, - 40034 - 11904: 0xF8D9, - 40035 - 11904: 0xF8D6, - 40038 - 11904: 0xF8D8, - 40039 - 11904: 0xF8D7, - 40040 - 11904: 0xF95A, - 40045 - 11904: 0xF95C, - 40046 - 11904: 0xF95B, - 40049 - 11904: 0xF979, - 40050 - 11904: 0x9E50, - 40051 - 11904: 0xF978, - 40052 - 11904: 0xF977, - 40053 - 11904: 0xF97A, - 40055 - 11904: 0xC673, - 40056 - 11904: 0xC674, - 40057 - 11904: 0xF9CA, - 40058 - 11904: 0xF9CE, - 40059 - 11904: 0x96AF, - 40060 - 11904: 0x8BF4, - 40165 - 11904: 0xB3BE, - 40166 - 11904: 0xDCAF, - 40167 - 11904: 0xE0ED, - 40169 - 11904: 0xB9A7, - 40170 - 11904: 0xE0EB, - 40173 - 11904: 0xE0EC, - 40177 - 11904: 0xE4E2, - 40178 - 11904: 0xE4E3, - 40179 - 11904: 0xBBF1, - 40180 - 11904: 0xBBEF, - 40181 - 11904: 0xE4E4, - 40182 - 11904: 0xBBF0, - 40183 - 11904: 0xE8E8, - 40185 - 11904: 0xE8EB, - 40186 - 11904: 0xE8E5, - 40187 - 11904: 0xE8EC, - 40188 - 11904: 0xE8E4, - 40189 - 11904: 0xE8E6, - 40191 - 11904: 0xE8E7, - 40192 - 11904: 0xE8EA, - 40194 - 11904: 0x9FA4, - 40195 - 11904: 0xBEA1, - 40196 - 11904: 0xE8EF, - 40197 - 11904: 0xE8EE, - 40198 - 11904: 0xBE7D, - 40199 - 11904: 0xE8E9, - 40200 - 11904: 0xE8ED, - 40201 - 11904: 0xBE7E, - 40204 - 11904: 0x96BD, - 40208 - 11904: 0xECAC, - 40210 - 11904: 0xC06F, - 40212 - 11904: 0xECA7, - 40213 - 11904: 0xC06B, - 40214 - 11904: 0x96F4, - 40215 - 11904: 0xECA4, - 40216 - 11904: 0xECAA, - 40217 - 11904: 0xECAD, - 40219 - 11904: 0xC070, - 40221 - 11904: 0xECA9, - 40222 - 11904: 0xECA6, - 40223 - 11904: 0xECAE, - 40224 - 11904: 0xECA5, - 40225 - 11904: 0x96B8, - 40226 - 11904: 0xECAB, - 40227 - 11904: 0xC06C, - 40229 - 11904: 0xECA3, - 40230 - 11904: 0xC06D, - 40232 - 11904: 0xC06E, - 40233 - 11904: 0xECA8, - 40237 - 11904: 0xEFA9, - 40238 - 11904: 0xEF7A, - 40239 - 11904: 0xEF7B, - 40240 - 11904: 0xEF7E, - 40241 - 11904: 0xEF7C, - 40243 - 11904: 0xEF76, - 40244 - 11904: 0xFAA1, - 40246 - 11904: 0xEF79, - 40247 - 11904: 0xEFA5, - 40248 - 11904: 0xEF7D, - 40249 - 11904: 0x91A7, - 40251 - 11904: 0xC245, - 40253 - 11904: 0xEFA7, - 40254 - 11904: 0xEFA4, - 40255 - 11904: 0xC246, - 40256 - 11904: 0xEFA6, - 40257 - 11904: 0xEF77, - 40258 - 11904: 0xEFA2, - 40259 - 11904: 0xEFA3, - 40260 - 11904: 0xA05E, - 40261 - 11904: 0xEFA1, - 40265 - 11904: 0x9A7D, - 40266 - 11904: 0xF1D2, - 40267 - 11904: 0xF1D4, - 40268 - 11904: 0xF1D7, - 40270 - 11904: 0x8948, - 40271 - 11904: 0xF1D1, - 40272 - 11904: 0x9EB1, - 40273 - 11904: 0xC359, - 40274 - 11904: 0xF1D9, - 40275 - 11904: 0xF1D0, - 40276 - 11904: 0xF1DA, - 40278 - 11904: 0xF1D6, - 40279 - 11904: 0xF1D8, - 40280 - 11904: 0xF1DC, - 40281 - 11904: 0xF1D5, - 40282 - 11904: 0xF1DD, - 40283 - 11904: 0xF1D3, - 40284 - 11904: 0xF1CF, - 40285 - 11904: 0xC35A, - 40286 - 11904: 0x9DDB, - 40287 - 11904: 0xF1DB, - 40288 - 11904: 0xC35B, - 40289 - 11904: 0xC44D, - 40295 - 11904: 0xEF78, - 40296 - 11904: 0xF3F1, - 40297 - 11904: 0xF3E8, - 40298 - 11904: 0xC44F, - 40299 - 11904: 0xF3E4, - 40300 - 11904: 0xC450, - 40301 - 11904: 0x95BF, - 40302 - 11904: 0x8A73, - 40303 - 11904: 0xF3ED, - 40304 - 11904: 0xF3E7, - 40305 - 11904: 0xF3DD, - 40306 - 11904: 0xC44E, - 40307 - 11904: 0xF3EA, - 40308 - 11904: 0xF3E5, - 40309 - 11904: 0xF3E6, - 40311 - 11904: 0xF3D8, - 40312 - 11904: 0xF3DF, - 40313 - 11904: 0xF3EE, - 40315 - 11904: 0xF3EB, - 40316 - 11904: 0x9EFE, - 40317 - 11904: 0xF3E3, - 40318 - 11904: 0x917A, - 40319 - 11904: 0xF3EF, - 40320 - 11904: 0xF3DE, - 40321 - 11904: 0xF3D9, - 40322 - 11904: 0xF3EC, - 40323 - 11904: 0x917B, - 40324 - 11904: 0xF3DB, - 40325 - 11904: 0xF3E9, - 40326 - 11904: 0xF3E0, - 40327 - 11904: 0xF3F0, - 40328 - 11904: 0xF3DC, - 40329 - 11904: 0xC44C, - 40330 - 11904: 0xF3DA, - 40331 - 11904: 0xF3E1, - 40332 - 11904: 0xF3E2, - 40336 - 11904: 0xF57D, - 40338 - 11904: 0xF57B, - 40339 - 11904: 0x9AA3, - 40340 - 11904: 0xF5A2, - 40342 - 11904: 0xF5AE, - 40343 - 11904: 0xF5A5, - 40344 - 11904: 0xF57C, - 40345 - 11904: 0xF578, - 40346 - 11904: 0xF5A7, - 40347 - 11904: 0xF57E, - 40348 - 11904: 0xF5A3, - 40349 - 11904: 0xF57A, - 40350 - 11904: 0xF5AA, - 40351 - 11904: 0xF577, - 40352 - 11904: 0xF5A1, - 40353 - 11904: 0xF5A6, - 40354 - 11904: 0xF5A8, - 40355 - 11904: 0xF5AB, - 40356 - 11904: 0xF579, - 40357 - 11904: 0x96C2, - 40358 - 11904: 0xF5AF, - 40359 - 11904: 0xF5B0, - 40360 - 11904: 0xF5A9, - 40361 - 11904: 0xF5AD, - 40362 - 11904: 0xF5A4, - 40363 - 11904: 0x9F77, - 40364 - 11904: 0xF6C1, - 40365 - 11904: 0xF6C4, - 40367 - 11904: 0xC561, - 40369 - 11904: 0xF6C3, - 40370 - 11904: 0xF6C8, - 40371 - 11904: 0xF6C6, - 40372 - 11904: 0xC562, - 40373 - 11904: 0xF6BD, - 40374 - 11904: 0xF6B3, - 40375 - 11904: 0xF6B2, - 40376 - 11904: 0xC564, - 40377 - 11904: 0xF6BF, - 40378 - 11904: 0xF6C0, - 40379 - 11904: 0xF6BC, - 40380 - 11904: 0xF6B4, - 40381 - 11904: 0x9AA4, - 40382 - 11904: 0xF6B9, - 40383 - 11904: 0xF5AC, - 40384 - 11904: 0x9AA5, - 40385 - 11904: 0xF6B5, - 40386 - 11904: 0xC563, - 40387 - 11904: 0xF6BB, - 40388 - 11904: 0x91A1, - 40389 - 11904: 0xF6BA, - 40391 - 11904: 0xF6B6, - 40392 - 11904: 0xF6C2, - 40393 - 11904: 0x89B8, - 40394 - 11904: 0xF6B7, - 40395 - 11904: 0xF7BB, - 40396 - 11904: 0xF6C5, - 40397 - 11904: 0xF6C7, - 40398 - 11904: 0xF6BE, - 40399 - 11904: 0xF6B8, - 40400 - 11904: 0xF7BC, - 40401 - 11904: 0xF7BE, - 40402 - 11904: 0xF7B8, - 40403 - 11904: 0xC5C2, - 40404 - 11904: 0x9173, - 40405 - 11904: 0xF7C5, - 40406 - 11904: 0xF7C3, - 40407 - 11904: 0xC5C3, - 40408 - 11904: 0xF7C2, - 40409 - 11904: 0xF7C1, - 40410 - 11904: 0xF7BA, - 40411 - 11904: 0xF7B7, - 40412 - 11904: 0xF7BD, - 40413 - 11904: 0xF7C6, - 40414 - 11904: 0xF7B9, - 40415 - 11904: 0xF7BF, - 40417 - 11904: 0xF869, - 40418 - 11904: 0xF86E, - 40419 - 11904: 0xF864, - 40420 - 11904: 0xF867, - 40421 - 11904: 0xC5EE, - 40422 - 11904: 0xF86B, - 40424 - 11904: 0xF872, - 40425 - 11904: 0xF7C0, - 40427 - 11904: 0xF865, - 40428 - 11904: 0xF86F, - 40429 - 11904: 0xF873, - 40430 - 11904: 0xF86A, - 40431 - 11904: 0xF863, - 40432 - 11904: 0xF86D, - 40434 - 11904: 0xF86C, - 40435 - 11904: 0xF871, - 40436 - 11904: 0xF870, - 40437 - 11904: 0xF7C4, - 40438 - 11904: 0xF868, - 40439 - 11904: 0xF862, - 40440 - 11904: 0xF866, - 40441 - 11904: 0xC64E, - 40442 - 11904: 0xC64F, - 40443 - 11904: 0xF861, - 40444 - 11904: 0x9AA6, - 40445 - 11904: 0xF8E6, - 40446 - 11904: 0xF8DD, - 40447 - 11904: 0xF8E5, - 40448 - 11904: 0xF8E2, - 40449 - 11904: 0xF8E3, - 40450 - 11904: 0xF8DC, - 40451 - 11904: 0xF8DF, - 40452 - 11904: 0xF8E7, - 40453 - 11904: 0xF8E1, - 40454 - 11904: 0xF8E0, - 40455 - 11904: 0xF8DE, - 40457 - 11904: 0xF8E4, - 40458 - 11904: 0x89BD, - 40459 - 11904: 0xF95D, - 40460 - 11904: 0x89B9, - 40461 - 11904: 0xF95E, - 40462 - 11904: 0x917D, - 40463 - 11904: 0xF960, - 40464 - 11904: 0xF95F, - 40465 - 11904: 0xF962, - 40466 - 11904: 0xF961, - 40467 - 11904: 0xF97C, - 40468 - 11904: 0xF97B, - 40469 - 11904: 0xF9B7, - 40471 - 11904: 0xF9B8, - 40472 - 11904: 0x96BB, - 40473 - 11904: 0xF9C5, - 40474 - 11904: 0xC678, - 40475 - 11904: 0xC67C, - 40476 - 11904: 0x9FF2, - 40477 - 11904: 0xF9CF, - 40478 - 11904: 0xC67D, - 40479 - 11904: 0x8BF5, - 40565 - 11904: 0xB3BF, - 40569 - 11904: 0xC4D0, - 40570 - 11904: 0xF6C9, - 40571 - 11904: 0x9AA9, - 40572 - 11904: 0xC650, - 40573 - 11904: 0xC651, - 40575 - 11904: 0xB3C0, - 40576 - 11904: 0xE0EE, - 40577 - 11904: 0x9F54, - 40578 - 11904: 0xB9A8, - 40579 - 11904: 0xE8F0, - 40580 - 11904: 0x9FE3, - 40581 - 11904: 0x9EED, - 40582 - 11904: 0xECB0, - 40583 - 11904: 0xECB1, - 40584 - 11904: 0xECAF, - 40585 - 11904: 0xEFAB, - 40586 - 11904: 0xEFAA, - 40587 - 11904: 0xC247, - 40588 - 11904: 0xF1DF, - 40589 - 11904: 0xEFAC, - 40590 - 11904: 0xF1DE, - 40592 - 11904: 0x91AA, - 40593 - 11904: 0xF3F3, - 40594 - 11904: 0xC451, - 40595 - 11904: 0xC453, - 40596 - 11904: 0xF3F2, - 40597 - 11904: 0x91AB, - 40598 - 11904: 0xA070, - 40599 - 11904: 0xC452, - 40600 - 11904: 0x9F6D, - 40601 - 11904: 0xF5B1, - 40602 - 11904: 0xF5B3, - 40603 - 11904: 0xF5B2, - 40604 - 11904: 0xF6CA, - 40605 - 11904: 0xC565, - 40606 - 11904: 0x91AC, - 40607 - 11904: 0xC5EF, - 40608 - 11904: 0xF8E8, - 40609 - 11904: 0xF963, - 40610 - 11904: 0x91AD, - 40612 - 11904: 0xF9D2, - 40613 - 11904: 0xB3C1, - 40614 - 11904: 0xA0FD, - 40615 - 11904: 0xE4E5, - 40616 - 11904: 0x9FE2, - 40617 - 11904: 0xBEA2, - 40618 - 11904: 0x91AF, - 40619 - 11904: 0x9E41, - 40620 - 11904: 0x9AAA, - 40621 - 11904: 0xECB3, - 40622 - 11904: 0xECB2, - 40623 - 11904: 0x91B0, - 40624 - 11904: 0xEFAD, - 40625 - 11904: 0x9AAB, - 40628 - 11904: 0xC454, - 40629 - 11904: 0xC4D1, - 40630 - 11904: 0xF7C7, - 40631 - 11904: 0xF9CB, - 40635 - 11904: 0xB3C2, - 40636 - 11904: 0xBBF2, - 40637 - 11904: 0x9AAC, - 40638 - 11904: 0xBEA3, - 40639 - 11904: 0x9A4A, - 40640 - 11904: 0xF3F4, - 40641 - 11904: 0x91B2, - 40642 - 11904: 0xF874, - 40643 - 11904: 0xB6C0, - 40644 - 11904: 0x8BF6, - 40646 - 11904: 0x9AAD, - 40647 - 11904: 0x89B6, - 40648 - 11904: 0xEFAE, - 40652 - 11904: 0xC664, - 40653 - 11904: 0xB6C1, - 40654 - 11904: 0xBEA4, - 40655 - 11904: 0xC248, - 40656 - 11904: 0xF875, - 40657 - 11904: 0xB6C2, - 40659 - 11904: 0xE8F1, - 40660 - 11904: 0xC072, - 40661 - 11904: 0xECB4, - 40662 - 11904: 0xECB5, - 40664 - 11904: 0xC071, - 40666 - 11904: 0xEFAF, - 40667 - 11904: 0xC24C, - 40668 - 11904: 0xC24A, - 40669 - 11904: 0xC24B, - 40670 - 11904: 0xC249, - 40671 - 11904: 0xF1E0, - 40672 - 11904: 0xC35C, - 40674 - 11904: 0x9AAF, - 40676 - 11904: 0xF5B5, - 40677 - 11904: 0xF5B4, - 40678 - 11904: 0xF5B7, - 40679 - 11904: 0xF5B6, - 40680 - 11904: 0xC4D2, - 40683 - 11904: 0xF6CB, - 40685 - 11904: 0xF6CD, - 40686 - 11904: 0xF6CC, - 40687 - 11904: 0xC566, - 40688 - 11904: 0xF7C8, - 40689 - 11904: 0x9AB0, - 40690 - 11904: 0xF876, - 40691 - 11904: 0xF877, - 40692 - 11904: 0xC5F0, - 40693 - 11904: 0xF964, - 40694 - 11904: 0xF97D, - 40695 - 11904: 0xC675, - 40696 - 11904: 0x9AB1, - 40697 - 11904: 0xDCB0, - 40698 - 11904: 0xECB6, - 40699 - 11904: 0xEFB0, - 40700 - 11904: 0xF3F5, - 40701 - 11904: 0xE0EF, - 40702 - 11904: 0x9AA1, - 40703 - 11904: 0xEFB1, - 40704 - 11904: 0xF1E2, - 40705 - 11904: 0xF1E1, - 40706 - 11904: 0x91B9, - 40710 - 11904: 0xF878, - 40711 - 11904: 0xC652, - 40712 - 11904: 0x91BA, - 40713 - 11904: 0xF965, - 40714 - 11904: 0xF97E, - 40718 - 11904: 0xB9A9, - 40719 - 11904: 0xE8F2, - 40720 - 11904: 0xE8F3, - 40722 - 11904: 0xECB7, - 40723 - 11904: 0xB9AA, - 40725 - 11904: 0xC35D, - 40726 - 11904: 0xF1E3, - 40727 - 11904: 0x9F66, - 40728 - 11904: 0xF6CF, - 40729 - 11904: 0xC567, - 40730 - 11904: 0xF6D0, - 40731 - 11904: 0xF6CE, - 40732 - 11904: 0xF879, - 40734 - 11904: 0xF8E9, - 40736 - 11904: 0xB9AB, - 40738 - 11904: 0xEFB4, - 40739 - 11904: 0xEFB3, - 40740 - 11904: 0xEFB2, - 40741 - 11904: 0xF1E4, - 40742 - 11904: 0xA041, - 40743 - 11904: 0x8BB7, - 40744 - 11904: 0xF1E8, - 40745 - 11904: 0xF1E7, - 40746 - 11904: 0xF1E6, - 40747 - 11904: 0xF1E5, - 40748 - 11904: 0xC35E, - 40749 - 11904: 0xF3F6, - 40750 - 11904: 0xF5B9, - 40751 - 11904: 0xC4D3, - 40752 - 11904: 0xF5B8, - 40753 - 11904: 0xF6D1, - 40754 - 11904: 0xF7CB, - 40755 - 11904: 0xF7CA, - 40756 - 11904: 0xC5C4, - 40757 - 11904: 0xF7C9, - 40758 - 11904: 0xF87C, - 40759 - 11904: 0xF87B, - 40760 - 11904: 0xF87A, - 40761 - 11904: 0x91C0, - 40763 - 11904: 0xBBF3, - 40765 - 11904: 0xECB8, - 40766 - 11904: 0xC24D, - 40768 - 11904: 0xF3F7, - 40769 - 11904: 0xF3F8, - 40770 - 11904: 0xF7CC, - 40771 - 11904: 0xF87D, - 40772 - 11904: 0x9AB3, - 40773 - 11904: 0x91C3, - 40774 - 11904: 0xF8EA, - 40775 - 11904: 0xF966, - 40776 - 11904: 0xF9B9, - 40777 - 11904: 0xF9D4, - 40778 - 11904: 0xBBF4, - 40779 - 11904: 0xC24E, - 40780 - 11904: 0xF1E9, - 40781 - 11904: 0xF3F9, - 40782 - 11904: 0xF6D2, - 40783 - 11904: 0xF87E, - 40784 - 11904: 0xA0FC, - 40786 - 11904: 0xBEA6, - 40787 - 11904: 0x9FEE, - 40788 - 11904: 0xEFB5, - 40789 - 11904: 0xF1EA, - 40790 - 11904: 0xF3FA, - 40791 - 11904: 0xF3FB, - 40792 - 11904: 0xF3FC, - 40793 - 11904: 0xF5BE, - 40794 - 11904: 0x9F69, - 40795 - 11904: 0xF5BA, - 40796 - 11904: 0xC568, - 40797 - 11904: 0xF5BD, - 40798 - 11904: 0xF5BC, - 40799 - 11904: 0xC4D4, - 40800 - 11904: 0xF5BB, - 40801 - 11904: 0xC4D6, - 40802 - 11904: 0x91C8, - 40803 - 11904: 0xC4D5, - 40804 - 11904: 0xF6D4, - 40805 - 11904: 0xF6D3, - 40806 - 11904: 0xC569, - 40807 - 11904: 0xC56A, - 40809 - 11904: 0x91C9, - 40810 - 11904: 0xC5C6, - 40811 - 11904: 0xF7CD, - 40812 - 11904: 0xC5C5, - 40814 - 11904: 0xF8A3, - 40815 - 11904: 0xF8A4, - 40816 - 11904: 0xF8A2, - 40817 - 11904: 0xF8A1, - 40818 - 11904: 0xC654, - 40820 - 11904: 0xF8EB, - 40821 - 11904: 0xF8EC, - 40822 - 11904: 0xF8ED, - 40823 - 11904: 0xC653, - 40824 - 11904: 0xF967, - 40825 - 11904: 0xF96A, - 40826 - 11904: 0xF969, - 40827 - 11904: 0xF968, - 40830 - 11904: 0xF9D3, - 40831 - 11904: 0x8DE6, - 40845 - 11904: 0xC073, - 40846 - 11904: 0x91CB, - 40848 - 11904: 0xC365, - 40849 - 11904: 0xF5BF, - 40850 - 11904: 0xF6D5, - 40852 - 11904: 0xC5C7, - 40853 - 11904: 0xF7CE, - 40854 - 11904: 0x87AC, - 40855 - 11904: 0x87A4, - 40856 - 11904: 0xF9D5, - 40857 - 11904: 0x89C8, - 40860 - 11904: 0xC074, - 40863 - 11904: 0x8DAA, - 40864 - 11904: 0xEFB6, - 40866 - 11904: 0xF7CF, - 40868 - 11904: 0xF9A1, - 40869 - 11904: 0x9FDD, - 40870 - 11904: 0x8C43, - 40871 - 11904: 0x8C6D, - 40872 - 11904: 0x8C74, - 40873 - 11904: 0x8CB7, - 40874 - 11904: 0x8CB9, - 40875 - 11904: 0x8CBB, - 40876 - 11904: 0x8CC0, - 40877 - 11904: 0x8CD7, - 40878 - 11904: 0x8CD8, - 40879 - 11904: 0x8CDA, - 40880 - 11904: 0xC8A1, - 40881 - 11904: 0xC8A3, - 40882 - 11904: 0x8CED, - 40883 - 11904: 0x8D48, - 40903 - 11904: 0x87C2, - 40904 - 11904: 0x87D2, - 40905 - 11904: 0x87D6, - 40906 - 11904: 0x87DA, - 40907 - 11904: 0x87DF, -} - -const encode2Low, encode2High = 7870, 10046 - -var encode2 = [...]uint16{ - 7870 - 7870: 0x8863, - 7871 - 7870: 0x88A4, - 7872 - 7870: 0x8865, - 7873 - 7870: 0x88A6, - 8211 - 7870: 0xA156, - 8212 - 7870: 0xA158, - 8216 - 7870: 0xA1A5, - 8217 - 7870: 0xA1A6, - 8220 - 7870: 0xA1A7, - 8221 - 7870: 0xA1A8, - 8229 - 7870: 0xA14C, - 8230 - 7870: 0xA14B, - 8231 - 7870: 0xA145, - 8242 - 7870: 0xA1AC, - 8245 - 7870: 0xA1AB, - 8251 - 7870: 0xA1B0, - 8364 - 7870: 0xA3E1, - 8451 - 7870: 0xA24A, - 8453 - 7870: 0xA1C1, - 8457 - 7870: 0xA24B, - 8470 - 7870: 0xC8D2, - 8481 - 7870: 0xC8D3, - 8544 - 7870: 0xA2B9, - 8545 - 7870: 0xA2BA, - 8546 - 7870: 0xA2BB, - 8547 - 7870: 0xA2BC, - 8548 - 7870: 0xA2BD, - 8549 - 7870: 0xA2BE, - 8550 - 7870: 0xA2BF, - 8551 - 7870: 0xA2C0, - 8552 - 7870: 0xA2C1, - 8553 - 7870: 0xA2C2, - 8560 - 7870: 0xC6B5, - 8561 - 7870: 0xC6B6, - 8562 - 7870: 0xC6B7, - 8563 - 7870: 0xC6B8, - 8564 - 7870: 0xC6B9, - 8565 - 7870: 0xC6BA, - 8566 - 7870: 0xC6BB, - 8567 - 7870: 0xC6BC, - 8568 - 7870: 0xC6BD, - 8569 - 7870: 0xC6BE, - 8592 - 7870: 0xA1F6, - 8593 - 7870: 0xA1F4, - 8594 - 7870: 0xA1F7, - 8595 - 7870: 0xA1F5, - 8598 - 7870: 0xA1F8, - 8599 - 7870: 0xA1F9, - 8600 - 7870: 0xA1FB, - 8601 - 7870: 0xA1FA, - 8632 - 7870: 0xC877, - 8633 - 7870: 0xC878, - 8679 - 7870: 0xC876, - 8725 - 7870: 0xA241, - 8730 - 7870: 0xA1D4, - 8734 - 7870: 0xA1DB, - 8735 - 7870: 0xA1E8, - 8736 - 7870: 0xA1E7, - 8739 - 7870: 0xA1FD, - 8741 - 7870: 0xA1FC, - 8745 - 7870: 0xA1E4, - 8746 - 7870: 0xA1E5, - 8747 - 7870: 0xA1EC, - 8750 - 7870: 0xA1ED, - 8756 - 7870: 0xA1EF, - 8757 - 7870: 0xA1EE, - 8786 - 7870: 0xA1DC, - 8800 - 7870: 0xA1DA, - 8801 - 7870: 0xA1DD, - 8806 - 7870: 0xA1D8, - 8807 - 7870: 0xA1D9, - 8853 - 7870: 0xA1F2, - 8857 - 7870: 0xA1F3, - 8869 - 7870: 0xA1E6, - 8895 - 7870: 0xA1E9, - 9178 - 7870: 0x88A9, - 9179 - 7870: 0x88AA, - 9216 - 7870: 0xA3C0, - 9217 - 7870: 0xA3C1, - 9218 - 7870: 0xA3C2, - 9219 - 7870: 0xA3C3, - 9220 - 7870: 0xA3C4, - 9221 - 7870: 0xA3C5, - 9222 - 7870: 0xA3C6, - 9223 - 7870: 0xA3C7, - 9224 - 7870: 0xA3C8, - 9225 - 7870: 0xA3C9, - 9226 - 7870: 0xA3CA, - 9227 - 7870: 0xA3CB, - 9228 - 7870: 0xA3CC, - 9229 - 7870: 0xA3CD, - 9230 - 7870: 0xA3CE, - 9231 - 7870: 0xA3CF, - 9232 - 7870: 0xA3D0, - 9233 - 7870: 0xA3D1, - 9234 - 7870: 0xA3D2, - 9235 - 7870: 0xA3D3, - 9236 - 7870: 0xA3D4, - 9237 - 7870: 0xA3D5, - 9238 - 7870: 0xA3D6, - 9239 - 7870: 0xA3D7, - 9240 - 7870: 0xA3D8, - 9241 - 7870: 0xA3D9, - 9242 - 7870: 0xA3DA, - 9243 - 7870: 0xA3DB, - 9244 - 7870: 0xA3DC, - 9245 - 7870: 0xA3DD, - 9246 - 7870: 0xA3DE, - 9247 - 7870: 0xA3DF, - 9249 - 7870: 0xA3E0, - 9312 - 7870: 0xC6A1, - 9313 - 7870: 0xC6A2, - 9314 - 7870: 0xC6A3, - 9315 - 7870: 0xC6A4, - 9316 - 7870: 0xC6A5, - 9317 - 7870: 0xC6A6, - 9318 - 7870: 0xC6A7, - 9319 - 7870: 0xC6A8, - 9320 - 7870: 0xC6A9, - 9321 - 7870: 0xC6AA, - 9332 - 7870: 0xC6AB, - 9333 - 7870: 0xC6AC, - 9334 - 7870: 0xC6AD, - 9335 - 7870: 0xC6AE, - 9336 - 7870: 0xC6AF, - 9337 - 7870: 0xC6B0, - 9338 - 7870: 0xC6B1, - 9339 - 7870: 0xC6B2, - 9340 - 7870: 0xC6B3, - 9341 - 7870: 0xC6B4, - 9472 - 7870: 0xA277, - 9474 - 7870: 0xA278, - 9484 - 7870: 0xA27A, - 9488 - 7870: 0xA27B, - 9492 - 7870: 0xA27C, - 9496 - 7870: 0xA27D, - 9500 - 7870: 0xA275, - 9508 - 7870: 0xA274, - 9516 - 7870: 0xA273, - 9524 - 7870: 0xA272, - 9532 - 7870: 0xA271, - 9552 - 7870: 0xF9F9, - 9553 - 7870: 0xF9F8, - 9554 - 7870: 0xF9E6, - 9555 - 7870: 0xF9EF, - 9556 - 7870: 0xF9DD, - 9557 - 7870: 0xF9E8, - 9558 - 7870: 0xF9F1, - 9559 - 7870: 0xF9DF, - 9560 - 7870: 0xF9EC, - 9561 - 7870: 0xF9F5, - 9562 - 7870: 0xF9E3, - 9563 - 7870: 0xF9EE, - 9564 - 7870: 0xF9F7, - 9565 - 7870: 0xF9E5, - 9566 - 7870: 0xF9E9, - 9567 - 7870: 0xF9F2, - 9568 - 7870: 0xF9E0, - 9569 - 7870: 0xF9EB, - 9570 - 7870: 0xF9F4, - 9571 - 7870: 0xF9E2, - 9572 - 7870: 0xF9E7, - 9573 - 7870: 0xF9F0, - 9574 - 7870: 0xF9DE, - 9575 - 7870: 0xF9ED, - 9576 - 7870: 0xF9F6, - 9577 - 7870: 0xF9E4, - 9578 - 7870: 0xF9EA, - 9579 - 7870: 0xF9F3, - 9580 - 7870: 0xF9E1, - 9581 - 7870: 0xF9FA, - 9582 - 7870: 0xF9FB, - 9583 - 7870: 0xF9FD, - 9584 - 7870: 0xF9FC, - 9585 - 7870: 0xA2AC, - 9586 - 7870: 0xA2AD, - 9587 - 7870: 0xA2AE, - 9588 - 7870: 0xA15A, - 9601 - 7870: 0xA262, - 9602 - 7870: 0xA263, - 9603 - 7870: 0xA264, - 9604 - 7870: 0xA265, - 9605 - 7870: 0xA266, - 9606 - 7870: 0xA267, - 9607 - 7870: 0xA268, - 9608 - 7870: 0xA269, - 9609 - 7870: 0xA270, - 9610 - 7870: 0xA26F, - 9611 - 7870: 0xA26E, - 9612 - 7870: 0xA26D, - 9613 - 7870: 0xA26C, - 9614 - 7870: 0xA26B, - 9615 - 7870: 0xA26A, - 9620 - 7870: 0xA276, - 9621 - 7870: 0xA279, - 9632 - 7870: 0xA1BD, - 9633 - 7870: 0xA1BC, - 9650 - 7870: 0xA1B6, - 9651 - 7870: 0xA1B5, - 9660 - 7870: 0xA1BF, - 9661 - 7870: 0xA1BE, - 9670 - 7870: 0xA1BB, - 9671 - 7870: 0xA1BA, - 9675 - 7870: 0xA1B3, - 9678 - 7870: 0xA1B7, - 9679 - 7870: 0xA1B4, - 9698 - 7870: 0xA2A8, - 9699 - 7870: 0xA2A9, - 9700 - 7870: 0xA2AB, - 9701 - 7870: 0xA2AA, - 9733 - 7870: 0xA1B9, - 9734 - 7870: 0xA1B8, - 9792 - 7870: 0xA1F0, - 9794 - 7870: 0xA1F1, - 10045 - 7870: 0xC6E6, -} - -const encode3Low, encode3High = 167, 1106 - -var encode3 = [...]uint16{ - 167 - 167: 0xA1B1, - 168 - 167: 0xC6D8, - 175 - 167: 0xA1C2, - 176 - 167: 0xA258, - 177 - 167: 0xA1D3, - 183 - 167: 0xA150, - 192 - 167: 0x8859, - 193 - 167: 0x8857, - 200 - 167: 0x885D, - 201 - 167: 0x885B, - 202 - 167: 0x8866, - 210 - 167: 0x8861, - 211 - 167: 0x885F, - 215 - 167: 0xA1D1, - 224 - 167: 0x886A, - 225 - 167: 0x8868, - 232 - 167: 0x886F, - 233 - 167: 0x886D, - 234 - 167: 0x88A7, - 236 - 167: 0x8873, - 237 - 167: 0x8871, - 242 - 167: 0x8877, - 243 - 167: 0x8875, - 247 - 167: 0xA1D2, - 248 - 167: 0xC8FB, - 249 - 167: 0x887B, - 250 - 167: 0x8879, - 252 - 167: 0x88A2, - 256 - 167: 0x8856, - 257 - 167: 0x8867, - 274 - 167: 0x885A, - 275 - 167: 0x886C, - 282 - 167: 0x885C, - 283 - 167: 0x886E, - 299 - 167: 0x8870, - 331 - 167: 0xC8FC, - 332 - 167: 0x885E, - 333 - 167: 0x8874, - 339 - 167: 0xC8FA, - 363 - 167: 0x8878, - 461 - 167: 0x8858, - 462 - 167: 0x8869, - 464 - 167: 0x8872, - 465 - 167: 0x8860, - 466 - 167: 0x8876, - 468 - 167: 0x887A, - 470 - 167: 0x887C, - 472 - 167: 0x887D, - 474 - 167: 0x887E, - 476 - 167: 0x88A1, - 592 - 167: 0xC8F6, - 593 - 167: 0x886B, - 596 - 167: 0xC8F8, - 603 - 167: 0xC8F7, - 609 - 167: 0x88A8, - 618 - 167: 0xC8FE, - 629 - 167: 0xC8F9, - 643 - 167: 0xC8F5, - 650 - 167: 0xC8FD, - 710 - 167: 0xC6D9, - 711 - 167: 0xA3BE, - 713 - 167: 0xA3BC, - 714 - 167: 0xA3BD, - 715 - 167: 0xA3BF, - 717 - 167: 0xA1C5, - 729 - 167: 0xA3BB, - 913 - 167: 0xA344, - 914 - 167: 0xA345, - 915 - 167: 0xA346, - 916 - 167: 0xA347, - 917 - 167: 0xA348, - 918 - 167: 0xA349, - 919 - 167: 0xA34A, - 920 - 167: 0xA34B, - 921 - 167: 0xA34C, - 922 - 167: 0xA34D, - 923 - 167: 0xA34E, - 924 - 167: 0xA34F, - 925 - 167: 0xA350, - 926 - 167: 0xA351, - 927 - 167: 0xA352, - 928 - 167: 0xA353, - 929 - 167: 0xA354, - 931 - 167: 0xA355, - 932 - 167: 0xA356, - 933 - 167: 0xA357, - 934 - 167: 0xA358, - 935 - 167: 0xA359, - 936 - 167: 0xA35A, - 937 - 167: 0xA35B, - 945 - 167: 0xA35C, - 946 - 167: 0xA35D, - 947 - 167: 0xA35E, - 948 - 167: 0xA35F, - 949 - 167: 0xA360, - 950 - 167: 0xA361, - 951 - 167: 0xA362, - 952 - 167: 0xA363, - 953 - 167: 0xA364, - 954 - 167: 0xA365, - 955 - 167: 0xA366, - 956 - 167: 0xA367, - 957 - 167: 0xA368, - 958 - 167: 0xA369, - 959 - 167: 0xA36A, - 960 - 167: 0xA36B, - 961 - 167: 0xA36C, - 963 - 167: 0xA36D, - 964 - 167: 0xA36E, - 965 - 167: 0xA36F, - 966 - 167: 0xA370, - 967 - 167: 0xA371, - 968 - 167: 0xA372, - 969 - 167: 0xA373, - 1025 - 167: 0xC7F9, - 1040 - 167: 0xC7F3, - 1041 - 167: 0xC7F4, - 1042 - 167: 0xC7F5, - 1043 - 167: 0xC7F6, - 1044 - 167: 0xC7F7, - 1045 - 167: 0xC7F8, - 1046 - 167: 0xC7FA, - 1047 - 167: 0xC7FB, - 1048 - 167: 0xC7FC, - 1049 - 167: 0xC7FD, - 1050 - 167: 0xC7FE, - 1051 - 167: 0xC840, - 1052 - 167: 0xC841, - 1053 - 167: 0xC842, - 1054 - 167: 0xC843, - 1055 - 167: 0xC844, - 1056 - 167: 0xC845, - 1057 - 167: 0xC846, - 1058 - 167: 0xC847, - 1059 - 167: 0xC848, - 1060 - 167: 0xC849, - 1061 - 167: 0xC84A, - 1062 - 167: 0xC84B, - 1063 - 167: 0xC84C, - 1064 - 167: 0xC84D, - 1065 - 167: 0xC84E, - 1066 - 167: 0xC84F, - 1067 - 167: 0xC850, - 1068 - 167: 0xC851, - 1069 - 167: 0xC852, - 1070 - 167: 0xC853, - 1071 - 167: 0xC854, - 1072 - 167: 0xC855, - 1073 - 167: 0xC856, - 1074 - 167: 0xC857, - 1075 - 167: 0xC858, - 1076 - 167: 0xC859, - 1077 - 167: 0xC85A, - 1078 - 167: 0xC85C, - 1079 - 167: 0xC85D, - 1080 - 167: 0xC85E, - 1081 - 167: 0xC85F, - 1082 - 167: 0xC860, - 1083 - 167: 0xC861, - 1084 - 167: 0xC862, - 1085 - 167: 0xC863, - 1086 - 167: 0xC864, - 1087 - 167: 0xC865, - 1088 - 167: 0xC866, - 1089 - 167: 0xC867, - 1090 - 167: 0xC868, - 1091 - 167: 0xC869, - 1092 - 167: 0xC86A, - 1093 - 167: 0xC86B, - 1094 - 167: 0xC86C, - 1095 - 167: 0xC86D, - 1096 - 167: 0xC86E, - 1097 - 167: 0xC86F, - 1098 - 167: 0xC870, - 1099 - 167: 0xC871, - 1100 - 167: 0xC872, - 1101 - 167: 0xC873, - 1102 - 167: 0xC874, - 1103 - 167: 0xC875, - 1105 - 167: 0xC85B, -} - -const encode4Low, encode4High = 65072, 65518 - -var encode4 = [...]uint16{ - 65072 - 65072: 0xA14A, - 65073 - 65072: 0xA157, - 65075 - 65072: 0xA159, - 65076 - 65072: 0xA15B, - 65077 - 65072: 0xA15F, - 65078 - 65072: 0xA160, - 65079 - 65072: 0xA163, - 65080 - 65072: 0xA164, - 65081 - 65072: 0xA167, - 65082 - 65072: 0xA168, - 65083 - 65072: 0xA16B, - 65084 - 65072: 0xA16C, - 65085 - 65072: 0xA16F, - 65086 - 65072: 0xA170, - 65087 - 65072: 0xA173, - 65088 - 65072: 0xA174, - 65089 - 65072: 0xA177, - 65090 - 65072: 0xA178, - 65091 - 65072: 0xA17B, - 65092 - 65072: 0xA17C, - 65097 - 65072: 0xA1C6, - 65098 - 65072: 0xA1C7, - 65099 - 65072: 0xA1CA, - 65100 - 65072: 0xA1CB, - 65101 - 65072: 0xA1C8, - 65102 - 65072: 0xA1C9, - 65103 - 65072: 0xA15C, - 65104 - 65072: 0xA14D, - 65105 - 65072: 0xA14E, - 65106 - 65072: 0xA14F, - 65108 - 65072: 0xA151, - 65109 - 65072: 0xA152, - 65110 - 65072: 0xA153, - 65111 - 65072: 0xA154, - 65113 - 65072: 0xA17D, - 65114 - 65072: 0xA17E, - 65115 - 65072: 0xA1A1, - 65116 - 65072: 0xA1A2, - 65117 - 65072: 0xA1A3, - 65118 - 65072: 0xA1A4, - 65119 - 65072: 0xA1CC, - 65120 - 65072: 0xA1CD, - 65121 - 65072: 0xA1CE, - 65122 - 65072: 0xA1DE, - 65123 - 65072: 0xA1DF, - 65124 - 65072: 0xA1E0, - 65125 - 65072: 0xA1E1, - 65126 - 65072: 0xA1E2, - 65128 - 65072: 0xA242, - 65129 - 65072: 0xA24C, - 65130 - 65072: 0xA24D, - 65131 - 65072: 0xA24E, - 65281 - 65072: 0xA149, - 65282 - 65072: 0xC8D0, - 65283 - 65072: 0xA1AD, - 65284 - 65072: 0xA243, - 65285 - 65072: 0xA248, - 65286 - 65072: 0xA1AE, - 65287 - 65072: 0xC8CF, - 65288 - 65072: 0xA15D, - 65289 - 65072: 0xA15E, - 65290 - 65072: 0xA1AF, - 65291 - 65072: 0xA1CF, - 65292 - 65072: 0xA141, - 65293 - 65072: 0xA1D0, - 65294 - 65072: 0xA144, - 65295 - 65072: 0xA1FE, - 65296 - 65072: 0xA2AF, - 65297 - 65072: 0xA2B0, - 65298 - 65072: 0xA2B1, - 65299 - 65072: 0xA2B2, - 65300 - 65072: 0xA2B3, - 65301 - 65072: 0xA2B4, - 65302 - 65072: 0xA2B5, - 65303 - 65072: 0xA2B6, - 65304 - 65072: 0xA2B7, - 65305 - 65072: 0xA2B8, - 65306 - 65072: 0xA147, - 65307 - 65072: 0xA146, - 65308 - 65072: 0xA1D5, - 65309 - 65072: 0xA1D7, - 65310 - 65072: 0xA1D6, - 65311 - 65072: 0xA148, - 65312 - 65072: 0xA249, - 65313 - 65072: 0xA2CF, - 65314 - 65072: 0xA2D0, - 65315 - 65072: 0xA2D1, - 65316 - 65072: 0xA2D2, - 65317 - 65072: 0xA2D3, - 65318 - 65072: 0xA2D4, - 65319 - 65072: 0xA2D5, - 65320 - 65072: 0xA2D6, - 65321 - 65072: 0xA2D7, - 65322 - 65072: 0xA2D8, - 65323 - 65072: 0xA2D9, - 65324 - 65072: 0xA2DA, - 65325 - 65072: 0xA2DB, - 65326 - 65072: 0xA2DC, - 65327 - 65072: 0xA2DD, - 65328 - 65072: 0xA2DE, - 65329 - 65072: 0xA2DF, - 65330 - 65072: 0xA2E0, - 65331 - 65072: 0xA2E1, - 65332 - 65072: 0xA2E2, - 65333 - 65072: 0xA2E3, - 65334 - 65072: 0xA2E4, - 65335 - 65072: 0xA2E5, - 65336 - 65072: 0xA2E6, - 65337 - 65072: 0xA2E7, - 65338 - 65072: 0xA2E8, - 65339 - 65072: 0xC6E4, - 65340 - 65072: 0xA240, - 65341 - 65072: 0xC6E5, - 65343 - 65072: 0xA1C4, - 65345 - 65072: 0xA2E9, - 65346 - 65072: 0xA2EA, - 65347 - 65072: 0xA2EB, - 65348 - 65072: 0xA2EC, - 65349 - 65072: 0xA2ED, - 65350 - 65072: 0xA2EE, - 65351 - 65072: 0xA2EF, - 65352 - 65072: 0xA2F0, - 65353 - 65072: 0xA2F1, - 65354 - 65072: 0xA2F2, - 65355 - 65072: 0xA2F3, - 65356 - 65072: 0xA2F4, - 65357 - 65072: 0xA2F5, - 65358 - 65072: 0xA2F6, - 65359 - 65072: 0xA2F7, - 65360 - 65072: 0xA2F8, - 65361 - 65072: 0xA2F9, - 65362 - 65072: 0xA2FA, - 65363 - 65072: 0xA2FB, - 65364 - 65072: 0xA2FC, - 65365 - 65072: 0xA2FD, - 65366 - 65072: 0xA2FE, - 65367 - 65072: 0xA340, - 65368 - 65072: 0xA341, - 65369 - 65072: 0xA342, - 65370 - 65072: 0xA343, - 65371 - 65072: 0xA161, - 65372 - 65072: 0xA155, - 65373 - 65072: 0xA162, - 65374 - 65072: 0xA1E3, - 65504 - 65072: 0xA246, - 65505 - 65072: 0xA247, - 65506 - 65072: 0xC8CD, - 65507 - 65072: 0xA1C3, - 65508 - 65072: 0xC8CE, - 65509 - 65072: 0xA244, - 65517 - 65072: 0xF9FE, -} - -const encode5Low, encode5High = 194597, 195029 - -var encode5 = [...]uint16{ - 194597 - 194597: 0x9874, - 194619 - 194597: 0x9AC8, - 194624 - 194597: 0xA047, - 194680 - 194597: 0x8BC3, - 194708 - 194597: 0xFC48, - 194726 - 194597: 0xFC77, - 194765 - 194597: 0x9C52, - 194964 - 194597: 0x8EFD, - 194994 - 194597: 0x8FA8, - 195004 - 194597: 0x957A, - 195028 - 194597: 0x8FF0, -} - -const encode6Low, encode6High = 63751, 64014 - -var encode6 = [...]uint16{ - 63751 - 63751: 0x8BF8, - 64012 - 63751: 0xC94A, - 64013 - 63751: 0xDDFC, -} - -const encode7Low, encode7High = 175615, 175616 - -var encode7 = [...]uint16{ - 175615 - 175615: 0x87DC, -} diff --git a/vendor/golang.org/x/text/encoding/unicode/override.go b/vendor/golang.org/x/text/encoding/unicode/override.go deleted file mode 100644 index 35d62fc..0000000 --- a/vendor/golang.org/x/text/encoding/unicode/override.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unicode - -import ( - "golang.org/x/text/transform" -) - -// BOMOverride returns a new decoder transformer that is identical to fallback, -// except that the presence of a Byte Order Mark at the start of the input -// causes it to switch to the corresponding Unicode decoding. It will only -// consider BOMs for UTF-8, UTF-16BE, and UTF-16LE. -// -// This differs from using ExpectBOM by allowing a BOM to switch to UTF-8, not -// just UTF-16 variants, and allowing falling back to any encoding scheme. -// -// This technique is recommended by the W3C for use in HTML 5: "For -// compatibility with deployed content, the byte order mark (also known as BOM) -// is considered more authoritative than anything else." -// http://www.w3.org/TR/encoding/#specification-hooks -// -// Using BOMOverride is mostly intended for use cases where the first characters -// of a fallback encoding are known to not be a BOM, for example, for valid HTML -// and most encodings. -func BOMOverride(fallback transform.Transformer) transform.Transformer { - // TODO: possibly allow a variadic argument of unicode encodings to allow - // specifying details of which fallbacks are supported as well as - // specifying the details of the implementations. This would also allow for - // support for UTF-32, which should not be supported by default. - return &bomOverride{fallback: fallback} -} - -type bomOverride struct { - fallback transform.Transformer - current transform.Transformer -} - -func (d *bomOverride) Reset() { - d.current = nil - d.fallback.Reset() -} - -var ( - // TODO: we could use decode functions here, instead of allocating a new - // decoder on every NewDecoder as IgnoreBOM decoders can be stateless. - utf16le = UTF16(LittleEndian, IgnoreBOM) - utf16be = UTF16(BigEndian, IgnoreBOM) -) - -const utf8BOM = "\ufeff" - -func (d *bomOverride) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if d.current != nil { - return d.current.Transform(dst, src, atEOF) - } - if len(src) < 3 && !atEOF { - return 0, 0, transform.ErrShortSrc - } - d.current = d.fallback - bomSize := 0 - if len(src) >= 2 { - if src[0] == 0xFF && src[1] == 0xFE { - d.current = utf16le.NewDecoder() - bomSize = 2 - } else if src[0] == 0xFE && src[1] == 0xFF { - d.current = utf16be.NewDecoder() - bomSize = 2 - } else if len(src) >= 3 && - src[0] == utf8BOM[0] && - src[1] == utf8BOM[1] && - src[2] == utf8BOM[2] { - d.current = transform.Nop - bomSize = 3 - } - } - if bomSize < len(src) { - nDst, nSrc, err = d.current.Transform(dst, src[bomSize:], atEOF) - } - return nDst, nSrc + bomSize, err -} diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode.go b/vendor/golang.org/x/text/encoding/unicode/unicode.go deleted file mode 100644 index 579cadf..0000000 --- a/vendor/golang.org/x/text/encoding/unicode/unicode.go +++ /dev/null @@ -1,434 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package unicode provides Unicode encodings such as UTF-16. -package unicode // import "golang.org/x/text/encoding/unicode" - -import ( - "errors" - "unicode/utf16" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/internal/utf8internal" - "golang.org/x/text/runes" - "golang.org/x/text/transform" -) - -// TODO: I think the Transformers really should return errors on unmatched -// surrogate pairs and odd numbers of bytes. This is not required by RFC 2781, -// which leaves it open, but is suggested by WhatWG. It will allow for all error -// modes as defined by WhatWG: fatal, HTML and Replacement. This would require -// the introduction of some kind of error type for conveying the erroneous code -// point. - -// UTF8 is the UTF-8 encoding. -var UTF8 encoding.Encoding = utf8enc - -var utf8enc = &internal.Encoding{ - &internal.SimpleEncoding{utf8Decoder{}, runes.ReplaceIllFormed()}, - "UTF-8", - identifier.UTF8, -} - -type utf8Decoder struct{ transform.NopResetter } - -func (utf8Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - var pSrc int // point from which to start copy in src - var accept utf8internal.AcceptRange - - // The decoder can only make the input larger, not smaller. - n := len(src) - if len(dst) < n { - err = transform.ErrShortDst - n = len(dst) - atEOF = false - } - for nSrc < n { - c := src[nSrc] - if c < utf8.RuneSelf { - nSrc++ - continue - } - first := utf8internal.First[c] - size := int(first & utf8internal.SizeMask) - if first == utf8internal.FirstInvalid { - goto handleInvalid // invalid starter byte - } - accept = utf8internal.AcceptRanges[first>>utf8internal.AcceptShift] - if nSrc+size > n { - if !atEOF { - // We may stop earlier than necessary here if the short sequence - // has invalid bytes. Not checking for this simplifies the code - // and may avoid duplicate computations in certain conditions. - if err == nil { - err = transform.ErrShortSrc - } - break - } - // Determine the maximal subpart of an ill-formed subsequence. - switch { - case nSrc+1 >= n || src[nSrc+1] < accept.Lo || accept.Hi < src[nSrc+1]: - size = 1 - case nSrc+2 >= n || src[nSrc+2] < utf8internal.LoCB || utf8internal.HiCB < src[nSrc+2]: - size = 2 - default: - size = 3 // As we are short, the maximum is 3. - } - goto handleInvalid - } - if c = src[nSrc+1]; c < accept.Lo || accept.Hi < c { - size = 1 - goto handleInvalid // invalid continuation byte - } else if size == 2 { - } else if c = src[nSrc+2]; c < utf8internal.LoCB || utf8internal.HiCB < c { - size = 2 - goto handleInvalid // invalid continuation byte - } else if size == 3 { - } else if c = src[nSrc+3]; c < utf8internal.LoCB || utf8internal.HiCB < c { - size = 3 - goto handleInvalid // invalid continuation byte - } - nSrc += size - continue - - handleInvalid: - // Copy the scanned input so far. - nDst += copy(dst[nDst:], src[pSrc:nSrc]) - - // Append RuneError to the destination. - const runeError = "\ufffd" - if nDst+len(runeError) > len(dst) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += copy(dst[nDst:], runeError) - - // Skip the maximal subpart of an ill-formed subsequence according to - // the W3C standard way instead of the Go way. This Transform is - // probably the only place in the text repo where it is warranted. - nSrc += size - pSrc = nSrc - - // Recompute the maximum source length. - if sz := len(dst) - nDst; sz < len(src)-nSrc { - err = transform.ErrShortDst - n = nSrc + sz - atEOF = false - } - } - return nDst + copy(dst[nDst:], src[pSrc:nSrc]), nSrc, err -} - -// UTF16 returns a UTF-16 Encoding for the given default endianness and byte -// order mark (BOM) policy. -// -// When decoding from UTF-16 to UTF-8, if the BOMPolicy is IgnoreBOM then -// neither BOMs U+FEFF nor noncharacters U+FFFE in the input stream will affect -// the endianness used for decoding, and will instead be output as their -// standard UTF-8 encodings: "\xef\xbb\xbf" and "\xef\xbf\xbe". If the BOMPolicy -// is UseBOM or ExpectBOM a staring BOM is not written to the UTF-8 output. -// Instead, it overrides the default endianness e for the remainder of the -// transformation. Any subsequent BOMs U+FEFF or noncharacters U+FFFE will not -// affect the endianness used, and will instead be output as their standard -// UTF-8 encodings. For UseBOM, if there is no starting BOM, it will proceed -// with the default Endianness. For ExpectBOM, in that case, the transformation -// will return early with an ErrMissingBOM error. -// -// When encoding from UTF-8 to UTF-16, a BOM will be inserted at the start of -// the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM will not -// be inserted. The UTF-8 input does not need to contain a BOM. -// -// There is no concept of a 'native' endianness. If the UTF-16 data is produced -// and consumed in a greater context that implies a certain endianness, use -// IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM. -// -// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM -// corresponds to "Where the precise type of the data stream is known... the -// BOM should not be used" and ExpectBOM corresponds to "A particular -// protocol... may require use of the BOM". -func UTF16(e Endianness, b BOMPolicy) encoding.Encoding { - return utf16Encoding{config{e, b}, mibValue[e][b&bomMask]} -} - -// mibValue maps Endianness and BOMPolicy settings to MIB constants. Note that -// some configurations map to the same MIB identifier. RFC 2781 has requirements -// and recommendations. Some of the "configurations" are merely recommendations, -// so multiple configurations could match. -var mibValue = map[Endianness][numBOMValues]identifier.MIB{ - BigEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16BE, - UseBOM: identifier.UTF16, // BigEnding default is preferred by RFC 2781. - // TODO: acceptBOM | strictBOM would map to UTF16BE as well. - }, - LittleEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16LE, - UseBOM: identifier.UTF16, // LittleEndian default is allowed and preferred on Windows. - // TODO: acceptBOM | strictBOM would map to UTF16LE as well. - }, - // ExpectBOM is not widely used and has no valid MIB identifier. -} - -// All lists a configuration for each IANA-defined UTF-16 variant. -var All = []encoding.Encoding{ - UTF8, - UTF16(BigEndian, UseBOM), - UTF16(BigEndian, IgnoreBOM), - UTF16(LittleEndian, IgnoreBOM), -} - -// BOMPolicy is a UTF-16 encoding's byte order mark policy. -type BOMPolicy uint8 - -const ( - writeBOM BOMPolicy = 0x01 - acceptBOM BOMPolicy = 0x02 - requireBOM BOMPolicy = 0x04 - bomMask BOMPolicy = 0x07 - - // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a - // map of an array of length 8 of a type that is also used as a key or value - // in another map). See golang.org/issue/11354. - // TODO: consider changing this value back to 8 if the use of 1.4.* has - // been minimized. - numBOMValues = 8 + 1 - - // IgnoreBOM means to ignore any byte order marks. - IgnoreBOM BOMPolicy = 0 - // Common and RFC 2781-compliant interpretation for UTF-16BE/LE. - - // UseBOM means that the UTF-16 form may start with a byte order mark, which - // will be used to override the default encoding. - UseBOM BOMPolicy = writeBOM | acceptBOM - // Common and RFC 2781-compliant interpretation for UTF-16. - - // ExpectBOM means that the UTF-16 form must start with a byte order mark, - // which will be used to override the default encoding. - ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM - // Used in Java as Unicode (not to be confused with Java's UTF-16) and - // ICU's UTF-16,version=1. Not compliant with RFC 2781. - - // TODO (maybe): strictBOM: BOM must match Endianness. This would allow: - // - UTF-16(B|L)E,version=1: writeBOM | acceptBOM | requireBOM | strictBOM - // (UnicodeBig and UnicodeLittle in Java) - // - RFC 2781-compliant, but less common interpretation for UTF-16(B|L)E: - // acceptBOM | strictBOM (e.g. assigned to CheckBOM). - // This addition would be consistent with supporting ExpectBOM. -) - -// Endianness is a UTF-16 encoding's default endianness. -type Endianness bool - -const ( - // BigEndian is UTF-16BE. - BigEndian Endianness = false - // LittleEndian is UTF-16LE. - LittleEndian Endianness = true -) - -// ErrMissingBOM means that decoding UTF-16 input with ExpectBOM did not find a -// starting byte order mark. -var ErrMissingBOM = errors.New("encoding: missing byte order mark") - -type utf16Encoding struct { - config - mib identifier.MIB -} - -type config struct { - endianness Endianness - bomPolicy BOMPolicy -} - -func (u utf16Encoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: &utf16Decoder{ - initial: u.config, - current: u.config, - }} -} - -func (u utf16Encoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: &utf16Encoder{ - endianness: u.endianness, - initialBOMPolicy: u.bomPolicy, - currentBOMPolicy: u.bomPolicy, - }} -} - -func (u utf16Encoding) ID() (mib identifier.MIB, other string) { - return u.mib, "" -} - -func (u utf16Encoding) String() string { - e, b := "B", "" - if u.endianness == LittleEndian { - e = "L" - } - switch u.bomPolicy { - case ExpectBOM: - b = "Expect" - case UseBOM: - b = "Use" - case IgnoreBOM: - b = "Ignore" - } - return "UTF-16" + e + "E (" + b + " BOM)" -} - -type utf16Decoder struct { - initial config - current config -} - -func (u *utf16Decoder) Reset() { - u.current = u.initial -} - -func (u *utf16Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(src) == 0 { - if atEOF && u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - return 0, 0, nil - } - if u.current.bomPolicy&acceptBOM != 0 { - if len(src) < 2 { - return 0, 0, transform.ErrShortSrc - } - switch { - case src[0] == 0xfe && src[1] == 0xff: - u.current.endianness = BigEndian - nSrc = 2 - case src[0] == 0xff && src[1] == 0xfe: - u.current.endianness = LittleEndian - nSrc = 2 - default: - if u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - } - u.current.bomPolicy = IgnoreBOM - } - - var r rune - var dSize, sSize int - for nSrc < len(src) { - if nSrc+1 < len(src) { - x := uint16(src[nSrc+0])<<8 | uint16(src[nSrc+1]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - r, sSize = rune(x), 2 - if utf16.IsSurrogate(r) { - if nSrc+3 < len(src) { - x = uint16(src[nSrc+2])<<8 | uint16(src[nSrc+3]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - // Save for next iteration if it is not a high surrogate. - if isHighSurrogate(rune(x)) { - r, sSize = utf16.DecodeRune(r, rune(x)), 4 - } - } else if !atEOF { - err = transform.ErrShortSrc - break - } - } - if dSize = utf8.RuneLen(r); dSize < 0 { - r, dSize = utf8.RuneError, 3 - } - } else if atEOF { - // Single trailing byte. - r, dSize, sSize = utf8.RuneError, 3, 1 - } else { - err = transform.ErrShortSrc - break - } - if nDst+dSize > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - nSrc += sSize - } - return nDst, nSrc, err -} - -func isHighSurrogate(r rune) bool { - return 0xDC00 <= r && r <= 0xDFFF -} - -type utf16Encoder struct { - endianness Endianness - initialBOMPolicy BOMPolicy - currentBOMPolicy BOMPolicy -} - -func (u *utf16Encoder) Reset() { - u.currentBOMPolicy = u.initialBOMPolicy -} - -func (u *utf16Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if u.currentBOMPolicy&writeBOM != 0 { - if len(dst) < 2 { - return 0, 0, transform.ErrShortDst - } - dst[0], dst[1] = 0xfe, 0xff - u.currentBOMPolicy = IgnoreBOM - nDst = 2 - } - - r, size := rune(0), 0 - for nSrc < len(src) { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r <= 0xffff { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - } else { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - r1, r2 := utf16.EncodeRune(r) - dst[nDst+0] = uint8(r1 >> 8) - dst[nDst+1] = uint8(r1) - dst[nDst+2] = uint8(r2 >> 8) - dst[nDst+3] = uint8(r2) - nDst += 4 - } - nSrc += size - } - - if u.endianness == LittleEndian { - for i := 0; i < nDst; i += 2 { - dst[i], dst[i+1] = dst[i+1], dst[i] - } - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode_test.go b/vendor/golang.org/x/text/encoding/unicode/unicode_test.go deleted file mode 100644 index 2bc9615..0000000 --- a/vendor/golang.org/x/text/encoding/unicode/unicode_test.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unicode - -import ( - "testing" - - "golang.org/x/text/transform" -) - -func TestUTF8Decoder(t *testing.T) { - testCases := []struct { - desc string - src string - notEOF bool // the inverse of atEOF - sizeDst int - want string - nSrc int - err error - }{{ - desc: "empty string, empty dest buffer", - }, { - desc: "empty string", - sizeDst: 8, - }, { - desc: "empty string, streaming", - notEOF: true, - sizeDst: 8, - }, { - desc: "ascii", - src: "abcde", - sizeDst: 8, - want: "abcde", - nSrc: 5, - }, { - desc: "ascii and error", - src: "ab\x80de", - sizeDst: 7, - want: "ab\ufffdde", - nSrc: 5, - }, { - desc: "valid two-byte sequence", - src: "a\u0300bc", - sizeDst: 7, - want: "a\u0300bc", - nSrc: 5, - }, { - desc: "valid three-byte sequence", - src: "a\u0300中", - sizeDst: 7, - want: "a\u0300中", - nSrc: 6, - }, { - desc: "valid four-byte sequence", - src: "a中\U00016F50", - sizeDst: 8, - want: "a中\U00016F50", - nSrc: 8, - }, { - desc: "short source buffer", - src: "abc\xf0\x90", - notEOF: true, - sizeDst: 10, - want: "abc", - nSrc: 3, - err: transform.ErrShortSrc, - }, { - // We don't check for the maximal subpart of an ill-formed subsequence - // at the end of an open segment. - desc: "complete invalid that looks like short at end", - src: "abc\xf0\x80", - notEOF: true, - sizeDst: 10, - want: "abc", // instead of "abc\ufffd\ufffd", - nSrc: 3, - err: transform.ErrShortSrc, - }, { - desc: "incomplete sequence at end", - src: "a\x80bc\xf0\x90", - sizeDst: 9, - want: "a\ufffdbc\ufffd", - nSrc: 6, - }, { - desc: "invalid second byte", - src: "abc\xf0dddd", - sizeDst: 10, - want: "abc\ufffddddd", - nSrc: 8, - }, { - desc: "invalid second byte at end", - src: "abc\xf0d", - sizeDst: 10, - want: "abc\ufffdd", - nSrc: 5, - }, { - desc: "invalid third byte", - src: "a\u0300bc\xf0\x90dddd", - sizeDst: 12, - want: "a\u0300bc\ufffddddd", - nSrc: 11, - }, { - desc: "invalid third byte at end", - src: "a\u0300bc\xf0\x90d", - sizeDst: 12, - want: "a\u0300bc\ufffdd", - nSrc: 8, - }, { - desc: "invalid fourth byte, tight buffer", - src: "a\u0300bc\xf0\x90\x80d", - sizeDst: 9, - want: "a\u0300bc\ufffdd", - nSrc: 9, - }, { - desc: "invalid fourth byte at end", - src: "a\u0300bc\xf0\x90\x80", - sizeDst: 8, - want: "a\u0300bc\ufffd", - nSrc: 8, - }, { - desc: "invalid fourth byte and short four byte sequence", - src: "a\u0300bc\xf0\x90\x80\xf0\x90\x80", - notEOF: true, - sizeDst: 20, - want: "a\u0300bc\ufffd", - nSrc: 8, - err: transform.ErrShortSrc, - }, { - desc: "valid four-byte sequence overflowing short buffer", - src: "a\u0300bc\xf0\x90\x80\x80", - notEOF: true, - sizeDst: 8, - want: "a\u0300bc", - nSrc: 5, - err: transform.ErrShortDst, - }, { - desc: "invalid fourth byte at end short, but short dst", - src: "a\u0300bc\xf0\x90\x80\xf0\x90\x80", - notEOF: true, - sizeDst: 8, - // More bytes would fit in the buffer, but this seems to require a more - // complicated and slower algorithm. - want: "a\u0300bc", // instead of "a\u0300bc" - nSrc: 5, - err: transform.ErrShortDst, - }, { - desc: "short dst for error", - src: "abc\x80", - notEOF: true, - sizeDst: 5, - want: "abc", - nSrc: 3, - err: transform.ErrShortDst, - }, { - desc: "adjusting short dst buffer", - src: "abc\x80ef", - notEOF: true, - sizeDst: 6, - want: "abc\ufffd", - nSrc: 4, - err: transform.ErrShortDst, - }} - tr := UTF8.NewDecoder() - for i, tc := range testCases { - b := make([]byte, tc.sizeDst) - nDst, nSrc, err := tr.Transform(b, []byte(tc.src), !tc.notEOF) - if err != tc.err { - t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) - } - if got := string(b[:nDst]); got != tc.want { - t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) - } - if nSrc != tc.nSrc { - t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) - } - } -} diff --git a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go deleted file mode 100644 index 48b2152..0000000 --- a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package utf32 provides the UTF-32 Unicode encoding. -// -// Please note that support for UTF-32 is discouraged as it is a rare and -// inefficient encoding, unfit for use as an interchange format. For use -// on the web, the W3C strongly discourages its use -// (https://www.w3.org/TR/html5/document-metadata.html#charset) -// while WHATWG directly prohibits supporting it -// (https://html.spec.whatwg.org/multipage/syntax.html#character-encodings). -package utf32 // import "golang.org/x/text/encoding/unicode/utf32" - -import ( - "errors" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All lists a configuration for each IANA-defined UTF-32 variant. -var All = []encoding.Encoding{ - UTF32(BigEndian, UseBOM), - UTF32(BigEndian, IgnoreBOM), - UTF32(LittleEndian, IgnoreBOM), -} - -// ErrMissingBOM means that decoding UTF-32 input with ExpectBOM did not -// find a starting byte order mark. -var ErrMissingBOM = errors.New("encoding: missing byte order mark") - -// UTF32 returns a UTF-32 Encoding for the given default endianness and -// byte order mark (BOM) policy. -// -// When decoding from UTF-32 to UTF-8, if the BOMPolicy is IgnoreBOM then -// neither BOMs U+FEFF nor ill-formed code units 0xFFFE0000 in the input -// stream will affect the endianness used for decoding. Instead BOMs will -// be output as their standard UTF-8 encoding "\xef\xbb\xbf" while -// 0xFFFE0000 code units will be output as "\xef\xbf\xbd", the standard -// UTF-8 encoding for the Unicode replacement character. If the BOMPolicy -// is UseBOM or ExpectBOM a starting BOM is not written to the UTF-8 -// output. Instead, it overrides the default endianness e for the remainder -// of the transformation. Any subsequent BOMs U+FEFF or ill-formed code -// units 0xFFFE0000 will not affect the endianness used, and will instead -// be output as their standard UTF-8 (replacement) encodings. For UseBOM, -// if there is no starting BOM, it will proceed with the default -// Endianness. For ExpectBOM, in that case, the transformation will return -// early with an ErrMissingBOM error. -// -// When encoding from UTF-8 to UTF-32, a BOM will be inserted at the start -// of the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM -// will not be inserted. The UTF-8 input does not need to contain a BOM. -// -// There is no concept of a 'native' endianness. If the UTF-32 data is -// produced and consumed in a greater context that implies a certain -// endianness, use IgnoreBOM. Otherwise, use ExpectBOM and always produce -// and consume a BOM. -// -// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, -// IgnoreBOM corresponds to "Where the precise type of the data stream is -// known... the BOM should not be used" and ExpectBOM corresponds to "A -// particular protocol... may require use of the BOM". -func UTF32(e Endianness, b BOMPolicy) encoding.Encoding { - return utf32Encoding{config{e, b}, mibValue[e][b&bomMask]} -} - -// mibValue maps Endianness and BOMPolicy settings to MIB constants for UTF-32. -// Note that some configurations map to the same MIB identifier. -var mibValue = map[Endianness][numBOMValues]identifier.MIB{ - BigEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF32BE, - UseBOM: identifier.UTF32, - }, - LittleEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF32LE, - UseBOM: identifier.UTF32, - }, - // ExpectBOM is not widely used and has no valid MIB identifier. -} - -// BOMPolicy is a UTF-32 encodings's byte order mark policy. -type BOMPolicy uint8 - -const ( - writeBOM BOMPolicy = 0x01 - acceptBOM BOMPolicy = 0x02 - requireBOM BOMPolicy = 0x04 - bomMask BOMPolicy = 0x07 - - // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a - // map of an array of length 8 of a type that is also used as a key or value - // in another map). See golang.org/issue/11354. - // TODO: consider changing this value back to 8 if the use of 1.4.* has - // been minimized. - numBOMValues = 8 + 1 - - // IgnoreBOM means to ignore any byte order marks. - IgnoreBOM BOMPolicy = 0 - // Unicode-compliant interpretation for UTF-32BE/LE. - - // UseBOM means that the UTF-32 form may start with a byte order mark, - // which will be used to override the default encoding. - UseBOM BOMPolicy = writeBOM | acceptBOM - // Unicode-compliant interpretation for UTF-32. - - // ExpectBOM means that the UTF-32 form must start with a byte order mark, - // which will be used to override the default encoding. - ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM - // Consistent with BOMPolicy definition in golang.org/x/text/encoding/unicode -) - -// Endianness is a UTF-32 encoding's default endianness. -type Endianness bool - -const ( - // BigEndian is UTF-32BE. - BigEndian Endianness = false - // LittleEndian is UTF-32LE. - LittleEndian Endianness = true -) - -type config struct { - endianness Endianness - bomPolicy BOMPolicy -} - -type utf32Encoding struct { - config - mib identifier.MIB -} - -func (u utf32Encoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: &utf32Decoder{ - initial: u.config, - current: u.config, - }} -} - -func (u utf32Encoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: &utf32Encoder{ - endianness: u.endianness, - initialBOMPolicy: u.bomPolicy, - currentBOMPolicy: u.bomPolicy, - }} -} - -func (u utf32Encoding) ID() (mib identifier.MIB, other string) { - return u.mib, "" -} - -func (u utf32Encoding) String() string { - e, b := "B", "" - if u.endianness == LittleEndian { - e = "L" - } - switch u.bomPolicy { - case ExpectBOM: - b = "Expect" - case UseBOM: - b = "Use" - case IgnoreBOM: - b = "Ignore" - } - return "UTF-32" + e + "E (" + b + " BOM)" -} - -type utf32Decoder struct { - initial config - current config -} - -func (u *utf32Decoder) Reset() { - u.current = u.initial -} - -func (u *utf32Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(src) == 0 { - if atEOF && u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - return 0, 0, nil - } - if u.current.bomPolicy&acceptBOM != 0 { - if len(src) < 4 { - return 0, 0, transform.ErrShortSrc - } - switch { - case src[0] == 0x00 && src[1] == 0x00 && src[2] == 0xfe && src[3] == 0xff: - u.current.endianness = BigEndian - nSrc = 4 - case src[0] == 0xff && src[1] == 0xfe && src[2] == 0x00 && src[3] == 0x00: - u.current.endianness = LittleEndian - nSrc = 4 - default: - if u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - } - u.current.bomPolicy = IgnoreBOM - } - - var r rune - var dSize, sSize int - for nSrc < len(src) { - if nSrc+3 < len(src) { - x := uint32(src[nSrc+0])<<24 | uint32(src[nSrc+1])<<16 | - uint32(src[nSrc+2])<<8 | uint32(src[nSrc+3]) - if u.current.endianness == LittleEndian { - x = x>>24 | (x >> 8 & 0x0000FF00) | (x << 8 & 0x00FF0000) | x<<24 - } - r, sSize = rune(x), 4 - if dSize = utf8.RuneLen(r); dSize < 0 { - r, dSize = utf8.RuneError, 3 - } - } else if atEOF { - // 1..3 trailing bytes. - r, dSize, sSize = utf8.RuneError, 3, len(src)-nSrc - } else { - err = transform.ErrShortSrc - break - } - if nDst+dSize > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - nSrc += sSize - } - return nDst, nSrc, err -} - -type utf32Encoder struct { - endianness Endianness - initialBOMPolicy BOMPolicy - currentBOMPolicy BOMPolicy -} - -func (u *utf32Encoder) Reset() { - u.currentBOMPolicy = u.initialBOMPolicy -} - -func (u *utf32Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if u.currentBOMPolicy&writeBOM != 0 { - if len(dst) < 4 { - return 0, 0, transform.ErrShortDst - } - dst[0], dst[1], dst[2], dst[3] = 0x00, 0x00, 0xfe, 0xff - u.currentBOMPolicy = IgnoreBOM - nDst = 4 - } - - r, size := rune(0), 0 - for nSrc < len(src) { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - - dst[nDst+0] = uint8(r >> 24) - dst[nDst+1] = uint8(r >> 16) - dst[nDst+2] = uint8(r >> 8) - dst[nDst+3] = uint8(r) - nDst += 4 - nSrc += size - } - - if u.endianness == LittleEndian { - for i := 0; i < nDst; i += 4 { - dst[i], dst[i+1], dst[i+2], dst[i+3] = dst[i+3], dst[i+2], dst[i+1], dst[i] - } - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go deleted file mode 100644 index 6de88cb..0000000 --- a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package utf32 - -import ( - "testing" - - "golang.org/x/text/transform" -) - -var ( - utf32LEIB = UTF32(LittleEndian, IgnoreBOM) // UTF-32LE (atypical interpretation) - utf32LEUB = UTF32(LittleEndian, UseBOM) // UTF-32, LE - // utf32LEEB = UTF32(LittleEndian, ExpectBOM) // UTF-32, LE, Expect - covered in encoding_test.go - utf32BEIB = UTF32(BigEndian, IgnoreBOM) // UTF-32BE (atypical interpretation) - utf32BEUB = UTF32(BigEndian, UseBOM) // UTF-32 default - utf32BEEB = UTF32(BigEndian, ExpectBOM) // UTF-32 Expect -) - -func TestUTF32(t *testing.T) { - testCases := []struct { - desc string - src string - notEOF bool // the inverse of atEOF - sizeDst int - want string - nSrc int - err error - t transform.Transformer - }{{ - desc: "utf-32 IgnoreBOM dec: empty string", - t: utf32BEIB.NewDecoder(), - }, { - desc: "utf-32 UseBOM dec: empty string", - t: utf32BEUB.NewDecoder(), - }, { - desc: "utf-32 ExpectBOM dec: empty string", - err: ErrMissingBOM, - t: utf32BEEB.NewDecoder(), - }, { - desc: "utf-32be dec: Doesn't interpret U+FEFF as BOM", - src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "\uFEFF\U00012345=Ra", - nSrc: 20, - t: utf32BEIB.NewDecoder(), - }, { - desc: "utf-32be dec: Interprets little endian U+FEFF as invalid", - src: "\xFF\xFE\x00\x00\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "\uFFFD\U00012345=Ra", - nSrc: 20, - t: utf32BEIB.NewDecoder(), - }, { - desc: "utf-32le dec: Doesn't interpret U+FEFF as BOM", - src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - sizeDst: 100, - want: "\uFEFF\U00012345=Ra", - nSrc: 20, - t: utf32LEIB.NewDecoder(), - }, { - desc: "utf-32le dec: Interprets big endian U+FEFF as invalid", - src: "\x00\x00\xFE\xFF\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - sizeDst: 100, - want: "\uFFFD\U00012345=Ra", - nSrc: 20, - t: utf32LEIB.NewDecoder(), - }, { - desc: "utf-32 enc: Writes big-endian BOM", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - nSrc: 7, - t: utf32BEUB.NewEncoder(), - }, { - desc: "utf-32 enc: Writes little-endian BOM", - src: "\U00012345=Ra", - sizeDst: 100, - want: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - nSrc: 7, - t: utf32LEUB.NewEncoder(), - }, { - desc: "utf-32 dec: Interprets text using big-endian default when BOM not present", - src: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 16, - t: utf32BEUB.NewDecoder(), - }, { - desc: "utf-32 dec: Interprets text using little-endian default when BOM not present", - src: "\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 16, - t: utf32LEUB.NewDecoder(), - }, { - desc: "utf-32 dec: BOM determines encoding BE", - src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 20, - t: utf32BEUB.NewDecoder(), - }, { - desc: "utf-32 dec: BOM determines encoding LE", - src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 20, - t: utf32LEUB.NewDecoder(), - }, { - desc: "utf-32 dec: BOM determines encoding LE, change default", - src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 20, - t: utf32BEUB.NewDecoder(), - }, { - desc: "utf-32 dec: BOM determines encoding BE, change default", - src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "\U00012345=Ra", - nSrc: 20, - t: utf32LEUB.NewDecoder(), - }, { - desc: "utf-32 dec: Don't change big-endian byte order mid-stream", - src: "\x00\x01\x23\x45\x00\x00\x00\x3D\xFF\xFE\x00\x00\x00\x00\xFE\xFF\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "\U00012345=\uFFFD\uFEFFRa", - nSrc: 24, - t: utf32BEUB.NewDecoder(), - }, { - desc: "utf-32 dec: Don't change little-endian byte order mid-stream", - src: "\x45\x23\x01\x00\x3D\x00\x00\x00\x00\x00\xFE\xFF\xFF\xFE\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", - sizeDst: 100, - want: "\U00012345=\uFFFD\uFEFFRa", - nSrc: 24, - t: utf32LEUB.NewDecoder(), - }, { - desc: "utf-32 dec: Fail on missing BOM when required", - src: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - sizeDst: 100, - want: "", - nSrc: 0, - err: ErrMissingBOM, - t: utf32BEEB.NewDecoder(), - }, { - desc: "utf-32 enc: Short dst", - src: "\U00012345=Ra", - sizeDst: 15, - want: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52", - nSrc: 6, - err: transform.ErrShortDst, - t: utf32BEIB.NewEncoder(), - }, { - desc: "utf-32 enc: Short src", - src: "\U00012345=Ra\xC2", - notEOF: true, - sizeDst: 100, - want: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", - nSrc: 7, - err: transform.ErrShortSrc, - t: utf32BEIB.NewEncoder(), - }, { - desc: "utf-32 enc: Invalid input", - src: "\x80\xC1\xC2\x7F\xC2", - sizeDst: 100, - want: "\x00\x00\xFF\xFD\x00\x00\xFF\xFD\x00\x00\xFF\xFD\x00\x00\x00\x7F\x00\x00\xFF\xFD", - nSrc: 5, - t: utf32BEIB.NewEncoder(), - }, { - desc: "utf-32 dec: Short dst", - src: "\x00\x00\x00\x41", - sizeDst: 0, - want: "", - nSrc: 0, - err: transform.ErrShortDst, - t: utf32BEIB.NewDecoder(), - }, { - desc: "utf-32 dec: Short src", - src: "\x00\x00\x00", - notEOF: true, - sizeDst: 4, - want: "", - nSrc: 0, - err: transform.ErrShortSrc, - t: utf32BEIB.NewDecoder(), - }, { - desc: "utf-32 dec: Invalid input", - src: "\x00\x00\xD8\x00\x00\x00\xDF\xFF\x00\x11\x00\x00\x00\x00\x00", - sizeDst: 100, - want: "\uFFFD\uFFFD\uFFFD\uFFFD", - nSrc: 15, - t: utf32BEIB.NewDecoder(), - }} - for i, tc := range testCases { - b := make([]byte, tc.sizeDst) - nDst, nSrc, err := tc.t.Transform(b, []byte(tc.src), !tc.notEOF) - if err != tc.err { - t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) - } - if got := string(b[:nDst]); got != tc.want { - t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) - } - if nSrc != tc.nSrc { - t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) - } - } -} diff --git a/vendor/golang.org/x/text/transform/examples_test.go b/vendor/golang.org/x/text/transform/examples_test.go deleted file mode 100644 index f2e284d..0000000 --- a/vendor/golang.org/x/text/transform/examples_test.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package transform_test - -import ( - "fmt" - "unicode" - - "golang.org/x/text/transform" - "golang.org/x/text/unicode/norm" -) - -func ExampleRemoveFunc() { - input := []byte(`tschüß; до свидания`) - - b := make([]byte, len(input)) - - t := transform.RemoveFunc(unicode.IsSpace) - n, _, _ := t.Transform(b, input, true) - fmt.Println(string(b[:n])) - - t = transform.RemoveFunc(func(r rune) bool { - return !unicode.Is(unicode.Latin, r) - }) - n, _, _ = t.Transform(b, input, true) - fmt.Println(string(b[:n])) - - n, _, _ = t.Transform(b, norm.NFD.Bytes(input), true) - fmt.Println(string(b[:n])) - - // Output: - // tschüß;досвидания - // tschüß - // tschuß -} diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go deleted file mode 100644 index 0c2f730..0000000 --- a/vendor/golang.org/x/text/transform/transform.go +++ /dev/null @@ -1,661 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package transform provides reader and writer wrappers that transform the -// bytes passing through as well as various transformations. Example -// transformations provided by other packages include normalization and -// conversion between character sets. -package transform // import "golang.org/x/text/transform" - -import ( - "bytes" - "errors" - "io" - "unicode/utf8" -) - -var ( - // ErrShortDst means that the destination buffer was too short to - // receive all of the transformed bytes. - ErrShortDst = errors.New("transform: short destination buffer") - - // ErrShortSrc means that the source buffer has insufficient data to - // complete the transformation. - ErrShortSrc = errors.New("transform: short source buffer") - - // errInconsistentByteCount means that Transform returned success (nil - // error) but also returned nSrc inconsistent with the src argument. - errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") - - // errShortInternal means that an internal buffer is not large enough - // to make progress and the Transform operation must be aborted. - errShortInternal = errors.New("transform: short internal buffer") -) - -// Transformer transforms bytes. -type Transformer interface { - // Transform writes to dst the transformed bytes read from src, and - // returns the number of dst bytes written and src bytes read. The - // atEOF argument tells whether src represents the last bytes of the - // input. - // - // Callers should always process the nDst bytes produced and account - // for the nSrc bytes consumed before considering the error err. - // - // A nil error means that all of the transformed bytes (whether freshly - // transformed from src or left over from previous Transform calls) - // were written to dst. A nil error can be returned regardless of - // whether atEOF is true. If err is nil then nSrc must equal len(src); - // the converse is not necessarily true. - // - // ErrShortDst means that dst was too short to receive all of the - // transformed bytes. ErrShortSrc means that src had insufficient data - // to complete the transformation. If both conditions apply, then - // either error may be returned. Other than the error conditions listed - // here, implementations are free to report other errors that arise. - Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) - - // Reset resets the state and allows a Transformer to be reused. - Reset() -} - -// NopResetter can be embedded by implementations of Transformer to add a nop -// Reset method. -type NopResetter struct{} - -// Reset implements the Reset method of the Transformer interface. -func (NopResetter) Reset() {} - -// Reader wraps another io.Reader by transforming the bytes read. -type Reader struct { - r io.Reader - t Transformer - err error - - // dst[dst0:dst1] contains bytes that have been transformed by t but - // not yet copied out via Read. - dst []byte - dst0, dst1 int - - // src[src0:src1] contains bytes that have been read from r but not - // yet transformed through t. - src []byte - src0, src1 int - - // transformComplete is whether the transformation is complete, - // regardless of whether or not it was successful. - transformComplete bool -} - -const defaultBufSize = 4096 - -// NewReader returns a new Reader that wraps r by transforming the bytes read -// via t. It calls Reset on t. -func NewReader(r io.Reader, t Transformer) *Reader { - t.Reset() - return &Reader{ - r: r, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Read implements the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - n, err := 0, error(nil) - for { - // Copy out any transformed bytes and return the final error if we are done. - if r.dst0 != r.dst1 { - n = copy(p, r.dst[r.dst0:r.dst1]) - r.dst0 += n - if r.dst0 == r.dst1 && r.transformComplete { - return n, r.err - } - return n, nil - } else if r.transformComplete { - return 0, r.err - } - - // Try to transform some source bytes, or to flush the transformer if we - // are out of source bytes. We do this even if r.r.Read returned an error. - // As the io.Reader documentation says, "process the n > 0 bytes returned - // before considering the error". - if r.src0 != r.src1 || r.err != nil { - r.dst0 = 0 - r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) - r.src0 += n - - switch { - case err == nil: - if r.src0 != r.src1 { - r.err = errInconsistentByteCount - } - // The Transform call was successful; we are complete if we - // cannot read more bytes into src. - r.transformComplete = r.err != nil - continue - case err == ErrShortDst && (r.dst1 != 0 || n != 0): - // Make room in dst by copying out, and try again. - continue - case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: - // Read more bytes into src via the code below, and try again. - default: - r.transformComplete = true - // The reader error (r.err) takes precedence over the - // transformer error (err) unless r.err is nil or io.EOF. - if r.err == nil || r.err == io.EOF { - r.err = err - } - continue - } - } - - // Move any untransformed source bytes to the start of the buffer - // and read more bytes. - if r.src0 != 0 { - r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) - } - n, r.err = r.r.Read(r.src[r.src1:]) - r.src1 += n - } -} - -// TODO: implement ReadByte (and ReadRune??). - -// Writer wraps another io.Writer by transforming the bytes read. -// The user needs to call Close to flush unwritten bytes that may -// be buffered. -type Writer struct { - w io.Writer - t Transformer - dst []byte - - // src[:n] contains bytes that have not yet passed through t. - src []byte - n int -} - -// NewWriter returns a new Writer that wraps w by transforming the bytes written -// via t. It calls Reset on t. -func NewWriter(w io.Writer, t Transformer) *Writer { - t.Reset() - return &Writer{ - w: w, - t: t, - dst: make([]byte, defaultBufSize), - src: make([]byte, defaultBufSize), - } -} - -// Write implements the io.Writer interface. If there are not enough -// bytes available to complete a Transform, the bytes will be buffered -// for the next write. Call Close to convert the remaining bytes. -func (w *Writer) Write(data []byte) (n int, err error) { - src := data - if w.n > 0 { - // Append bytes from data to the last remainder. - // TODO: limit the amount copied on first try. - n = copy(w.src[w.n:], data) - w.n += n - src = w.src[:w.n] - } - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, false) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return n, werr - } - src = src[nSrc:] - if w.n == 0 { - n += nSrc - } else if len(src) <= n { - // Enough bytes from w.src have been consumed. We make src point - // to data instead to reduce the copying. - w.n = 0 - n -= len(src) - src = data[n:] - if n < len(data) && (err == nil || err == ErrShortSrc) { - continue - } - } - switch err { - case ErrShortDst: - // This error is okay as long as we are making progress. - if nDst > 0 || nSrc > 0 { - continue - } - case ErrShortSrc: - if len(src) < len(w.src) { - m := copy(w.src, src) - // If w.n > 0, bytes from data were already copied to w.src and n - // was already set to the number of bytes consumed. - if w.n == 0 { - n += m - } - w.n = m - err = nil - } else if nDst > 0 || nSrc > 0 { - // Not enough buffer to store the remainder. Keep processing as - // long as there is progress. Without this case, transforms that - // require a lookahead larger than the buffer may result in an - // error. This is not something one may expect to be common in - // practice, but it may occur when buffers are set to small - // sizes during testing. - continue - } - case nil: - if w.n > 0 { - err = errInconsistentByteCount - } - } - return n, err - } -} - -// Close implements the io.Closer interface. -func (w *Writer) Close() error { - src := w.src[:w.n] - for { - nDst, nSrc, err := w.t.Transform(w.dst, src, true) - if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { - return werr - } - if err != ErrShortDst { - return err - } - src = src[nSrc:] - } -} - -type nop struct{ NopResetter } - -func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := copy(dst, src) - if n < len(src) { - err = ErrShortDst - } - return n, n, err -} - -type discard struct{ NopResetter } - -func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - return 0, len(src), nil -} - -var ( - // Discard is a Transformer for which all Transform calls succeed - // by consuming all bytes and writing nothing. - Discard Transformer = discard{} - - // Nop is a Transformer that copies src to dst. - Nop Transformer = nop{} -) - -// chain is a sequence of links. A chain with N Transformers has N+1 links and -// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst -// buffers given to chain.Transform and the middle N-1 buffers are intermediate -// buffers owned by the chain. The i'th link transforms bytes from the i'th -// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer -// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). -type chain struct { - link []link - err error - // errStart is the index at which the error occurred plus 1. Processing - // errStart at this level at the next call to Transform. As long as - // errStart > 0, chain will not consume any more source bytes. - errStart int -} - -func (c *chain) fatalError(errIndex int, err error) { - if i := errIndex + 1; i > c.errStart { - c.errStart = i - c.err = err - } -} - -type link struct { - t Transformer - // b[p:n] holds the bytes to be transformed by t. - b []byte - p int - n int -} - -func (l *link) src() []byte { - return l.b[l.p:l.n] -} - -func (l *link) dst() []byte { - return l.b[l.n:] -} - -// Chain returns a Transformer that applies t in sequence. -func Chain(t ...Transformer) Transformer { - if len(t) == 0 { - return nop{} - } - c := &chain{link: make([]link, len(t)+1)} - for i, tt := range t { - c.link[i].t = tt - } - // Allocate intermediate buffers. - b := make([][defaultBufSize]byte, len(t)-1) - for i := range b { - c.link[i+1].b = b[i][:] - } - return c -} - -// Reset resets the state of Chain. It calls Reset on all the Transformers. -func (c *chain) Reset() { - for i, l := range c.link { - if l.t != nil { - l.t.Reset() - } - c.link[i].p, c.link[i].n = 0, 0 - } -} - -// Transform applies the transformers of c in sequence. -func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - // Set up src and dst in the chain. - srcL := &c.link[0] - dstL := &c.link[len(c.link)-1] - srcL.b, srcL.p, srcL.n = src, 0, len(src) - dstL.b, dstL.n = dst, 0 - var lastFull, needProgress bool // for detecting progress - - // i is the index of the next Transformer to apply, for i in [low, high]. - // low is the lowest index for which c.link[low] may still produce bytes. - // high is the highest index for which c.link[high] has a Transformer. - // The error returned by Transform determines whether to increase or - // decrease i. We try to completely fill a buffer before converting it. - for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { - in, out := &c.link[i], &c.link[i+1] - nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) - out.n += nDst - in.p += nSrc - if i > 0 && in.p == in.n { - in.p, in.n = 0, 0 - } - needProgress, lastFull = lastFull, false - switch err0 { - case ErrShortDst: - // Process the destination buffer next. Return if we are already - // at the high index. - if i == high { - return dstL.n, srcL.p, ErrShortDst - } - if out.n != 0 { - i++ - // If the Transformer at the next index is not able to process any - // source bytes there is nothing that can be done to make progress - // and the bytes will remain unprocessed. lastFull is used to - // detect this and break out of the loop with a fatal error. - lastFull = true - continue - } - // The destination buffer was too small, but is completely empty. - // Return a fatal error as this transformation can never complete. - c.fatalError(i, errShortInternal) - case ErrShortSrc: - if i == 0 { - // Save ErrShortSrc in err. All other errors take precedence. - err = ErrShortSrc - break - } - // Source bytes were depleted before filling up the destination buffer. - // Verify we made some progress, move the remaining bytes to the errStart - // and try to get more source bytes. - if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { - // There were not enough source bytes to proceed while the source - // buffer cannot hold any more bytes. Return a fatal error as this - // transformation can never complete. - c.fatalError(i, errShortInternal) - break - } - // in.b is an internal buffer and we can make progress. - in.p, in.n = 0, copy(in.b, in.src()) - fallthrough - case nil: - // if i == low, we have depleted the bytes at index i or any lower levels. - // In that case we increase low and i. In all other cases we decrease i to - // fetch more bytes before proceeding to the next index. - if i > low { - i-- - continue - } - default: - c.fatalError(i, err0) - } - // Exhausted level low or fatal error: increase low and continue - // to process the bytes accepted so far. - i++ - low = i - } - - // If c.errStart > 0, this means we found a fatal error. We will clear - // all upstream buffers. At this point, no more progress can be made - // downstream, as Transform would have bailed while handling ErrShortDst. - if c.errStart > 0 { - for i := 1; i < c.errStart; i++ { - c.link[i].p, c.link[i].n = 0, 0 - } - err, c.errStart, c.err = c.err, 0, nil - } - return dstL.n, srcL.p, err -} - -// RemoveFunc returns a Transformer that removes from the input all runes r for -// which f(r) is true. Illegal bytes in the input are replaced by RuneError. -func RemoveFunc(f func(r rune) bool) Transformer { - return removeF(f) -} - -type removeF func(r rune) bool - -func (removeF) Reset() {} - -// Transform implements the Transformer interface. -func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { - - if r = rune(src[0]); r < utf8.RuneSelf { - sz = 1 - } else { - r, sz = utf8.DecodeRune(src) - - if sz == 1 { - // Invalid rune. - if !atEOF && !utf8.FullRune(src) { - err = ErrShortSrc - break - } - // We replace illegal bytes with RuneError. Not doing so might - // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. - // The resulting byte sequence may subsequently contain runes - // for which t(r) is true that were passed unnoticed. - if !t(r) { - if nDst+3 > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], "\uFFFD") - } - nSrc++ - continue - } - } - - if !t(r) { - if nDst+sz > len(dst) { - err = ErrShortDst - break - } - nDst += copy(dst[nDst:], src[:sz]) - } - nSrc += sz - } - return -} - -// grow returns a new []byte that is longer than b, and copies the first n bytes -// of b to the start of the new slice. -func grow(b []byte, n int) []byte { - m := len(b) - if m <= 32 { - m = 64 - } else if m <= 256 { - m *= 2 - } else { - m += m >> 1 - } - buf := make([]byte, m) - copy(buf, b[:n]) - return buf -} - -const initialBufSize = 128 - -// String returns a string with the result of converting s[:n] using t, where -// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. -func String(t Transformer, s string) (result string, n int, err error) { - t.Reset() - if s == "" { - // Fast path for the common case for empty input. Results in about a - // 86% reduction of running time for BenchmarkStringLowerEmpty. - if _, _, err := t.Transform(nil, nil, true); err == nil { - return "", 0, nil - } - } - - // Allocate only once. Note that both dst and src escape when passed to - // Transform. - buf := [2 * initialBufSize]byte{} - dst := buf[:initialBufSize:initialBufSize] - src := buf[initialBufSize : 2*initialBufSize] - - // The input string s is transformed in multiple chunks (starting with a - // chunk size of initialBufSize). nDst and nSrc are per-chunk (or - // per-Transform-call) indexes, pDst and pSrc are overall indexes. - nDst, nSrc := 0, 0 - pDst, pSrc := 0, 0 - - // pPrefix is the length of a common prefix: the first pPrefix bytes of the - // result will equal the first pPrefix bytes of s. It is not guaranteed to - // be the largest such value, but if pPrefix, len(result) and len(s) are - // all equal after the final transform (i.e. calling Transform with atEOF - // being true returned nil error) then we don't need to allocate a new - // result string. - pPrefix := 0 - for { - // Invariant: pDst == pPrefix && pSrc == pPrefix. - - n := copy(src, s[pSrc:]) - nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - // TODO: let transformers implement an optional Spanner interface, akin - // to norm's QuickSpan. This would even allow us to avoid any allocation. - if !bytes.Equal(dst[:nDst], src[:nSrc]) { - break - } - pPrefix = pSrc - if err == ErrShortDst { - // A buffer can only be short if a transformer modifies its input. - break - } else if err == ErrShortSrc { - if nSrc == 0 { - // No progress was made. - break - } - // Equal so far and !atEOF, so continue checking. - } else if err != nil || pPrefix == len(s) { - return string(s[:pPrefix]), pPrefix, err - } - } - // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. - - // We have transformed the first pSrc bytes of the input s to become pDst - // transformed bytes. Those transformed bytes are discontiguous: the first - // pPrefix of them equal s[:pPrefix] and the last nDst of them equal - // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so - // that they become one contiguous slice: dst[:pDst]. - if pPrefix != 0 { - newDst := dst - if pDst > len(newDst) { - newDst = make([]byte, len(s)+nDst-nSrc) - } - copy(newDst[pPrefix:pDst], dst[:nDst]) - copy(newDst[:pPrefix], s[:pPrefix]) - dst = newDst - } - - // Prevent duplicate Transform calls with atEOF being true at the end of - // the input. Also return if we have an unrecoverable error. - if (err == nil && pSrc == len(s)) || - (err != nil && err != ErrShortDst && err != ErrShortSrc) { - return string(dst[:pDst]), pSrc, err - } - - // Transform the remaining input, growing dst and src buffers as necessary. - for { - n := copy(src, s[pSrc:]) - nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s)) - pDst += nDst - pSrc += nSrc - - // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can - // make progress. This may avoid excessive allocations. - if err == ErrShortDst { - if nDst == 0 { - dst = grow(dst, pDst) - } - } else if err == ErrShortSrc { - if nSrc == 0 { - src = grow(src, 0) - } - } else if err != nil || pSrc == len(s) { - return string(dst[:pDst]), pSrc, err - } - } -} - -// Bytes returns a new byte slice with the result of converting b[:n] using t, -// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. -func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { - return doAppend(t, 0, make([]byte, len(b)), b) -} - -// Append appends the result of converting src[:n] using t to dst, where -// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. -func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { - if len(dst) == cap(dst) { - n := len(src) + len(dst) // It is okay for this to be 0. - b := make([]byte, n) - dst = b[:copy(b, dst)] - } - return doAppend(t, len(dst), dst[:cap(dst)], src) -} - -func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { - t.Reset() - pSrc := 0 - for { - nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) - pDst += nDst - pSrc += nSrc - if err != ErrShortDst { - return dst[:pDst], pSrc, err - } - - // Grow the destination buffer, but do not grow as long as we can make - // progress. This may avoid excessive allocations. - if nDst == 0 { - dst = grow(dst, pDst) - } - } -} diff --git a/vendor/golang.org/x/text/transform/transform_test.go b/vendor/golang.org/x/text/transform/transform_test.go deleted file mode 100644 index 771633d..0000000 --- a/vendor/golang.org/x/text/transform/transform_test.go +++ /dev/null @@ -1,1317 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package transform - -import ( - "bytes" - "errors" - "fmt" - "io/ioutil" - "strconv" - "strings" - "testing" - "time" - "unicode/utf8" - - "golang.org/x/text/internal/testtext" -) - -type lowerCaseASCII struct{ NopResetter } - -func (lowerCaseASCII) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n, err = len(dst), ErrShortDst - } - for i, c := range src[:n] { - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - dst[i] = c - } - return n, n, err -} - -// lowerCaseASCIILookahead lowercases the string and reports ErrShortSrc as long -// as the input is not atEOF. -type lowerCaseASCIILookahead struct{ NopResetter } - -func (lowerCaseASCIILookahead) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n, err = len(dst), ErrShortDst - } - for i, c := range src[:n] { - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - dst[i] = c - } - if !atEOF { - err = ErrShortSrc - } - return n, n, err -} - -var errYouMentionedX = errors.New("you mentioned X") - -type dontMentionX struct{ NopResetter } - -func (dontMentionX) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n, err = len(dst), ErrShortDst - } - for i, c := range src[:n] { - if c == 'X' { - return i, i, errYouMentionedX - } - dst[i] = c - } - return n, n, err -} - -var errAtEnd = errors.New("error after all text") - -type errorAtEnd struct{ NopResetter } - -func (errorAtEnd) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := copy(dst, src) - if n < len(src) { - return n, n, ErrShortDst - } - if atEOF { - return n, n, errAtEnd - } - return n, n, nil -} - -type replaceWithConstant struct { - replacement string - written int -} - -func (t *replaceWithConstant) Reset() { - t.written = 0 -} - -func (t *replaceWithConstant) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if atEOF { - nDst = copy(dst, t.replacement[t.written:]) - t.written += nDst - if t.written < len(t.replacement) { - err = ErrShortDst - } - } - return nDst, len(src), err -} - -type addAnXAtTheEnd struct{ NopResetter } - -func (addAnXAtTheEnd) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := copy(dst, src) - if n < len(src) { - return n, n, ErrShortDst - } - if !atEOF { - return n, n, nil - } - if len(dst) == n { - return n, n, ErrShortDst - } - dst[n] = 'X' - return n + 1, n, nil -} - -// doublerAtEOF is a strange Transformer that transforms "this" to "tthhiiss", -// but only if atEOF is true. -type doublerAtEOF struct{ NopResetter } - -func (doublerAtEOF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if !atEOF { - return 0, 0, ErrShortSrc - } - for i, c := range src { - if 2*i+2 >= len(dst) { - return 2 * i, i, ErrShortDst - } - dst[2*i+0] = c - dst[2*i+1] = c - } - return 2 * len(src), len(src), nil -} - -// rleDecode and rleEncode implement a toy run-length encoding: "aabbbbbbbbbb" -// is encoded as "2a10b". The decoding is assumed to not contain any numbers. - -type rleDecode struct{ NopResetter } - -func (rleDecode) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { -loop: - for len(src) > 0 { - n := 0 - for i, c := range src { - if '0' <= c && c <= '9' { - n = 10*n + int(c-'0') - continue - } - if i == 0 { - return nDst, nSrc, errors.New("rleDecode: bad input") - } - if n > len(dst) { - return nDst, nSrc, ErrShortDst - } - for j := 0; j < n; j++ { - dst[j] = c - } - dst, src = dst[n:], src[i+1:] - nDst, nSrc = nDst+n, nSrc+i+1 - continue loop - } - if atEOF { - return nDst, nSrc, errors.New("rleDecode: bad input") - } - return nDst, nSrc, ErrShortSrc - } - return nDst, nSrc, nil -} - -type rleEncode struct { - NopResetter - - // allowStutter means that "xxxxxxxx" can be encoded as "5x3x" - // instead of always as "8x". - allowStutter bool -} - -func (e rleEncode) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for len(src) > 0 { - n, c0 := len(src), src[0] - for i, c := range src[1:] { - if c != c0 { - n = i + 1 - break - } - } - if n == len(src) && !atEOF && !e.allowStutter { - return nDst, nSrc, ErrShortSrc - } - s := strconv.Itoa(n) - if len(s) >= len(dst) { - return nDst, nSrc, ErrShortDst - } - copy(dst, s) - dst[len(s)] = c0 - dst, src = dst[len(s)+1:], src[n:] - nDst, nSrc = nDst+len(s)+1, nSrc+n - } - return nDst, nSrc, nil -} - -// trickler consumes all input bytes, but writes a single byte at a time to dst. -type trickler []byte - -func (t *trickler) Reset() { - *t = nil -} - -func (t *trickler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - *t = append(*t, src...) - if len(*t) == 0 { - return 0, 0, nil - } - if len(dst) == 0 { - return 0, len(src), ErrShortDst - } - dst[0] = (*t)[0] - *t = (*t)[1:] - if len(*t) > 0 { - err = ErrShortDst - } - return 1, len(src), err -} - -// delayedTrickler is like trickler, but delays writing output to dst. This is -// highly unlikely to be relevant in practice, but it seems like a good idea -// to have some tolerance as long as progress can be detected. -type delayedTrickler []byte - -func (t *delayedTrickler) Reset() { - *t = nil -} - -func (t *delayedTrickler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(*t) > 0 && len(dst) > 0 { - dst[0] = (*t)[0] - *t = (*t)[1:] - nDst = 1 - } - *t = append(*t, src...) - if len(*t) > 0 { - err = ErrShortDst - } - return nDst, len(src), err -} - -type testCase struct { - desc string - t Transformer - src string - dstSize int - srcSize int - ioSize int - wantStr string - wantErr error - wantIter int // number of iterations taken; 0 means we don't care. -} - -func (t testCase) String() string { - return tstr(t.t) + "; " + t.desc -} - -func tstr(t Transformer) string { - if stringer, ok := t.(fmt.Stringer); ok { - return stringer.String() - } - s := fmt.Sprintf("%T", t) - return s[1+strings.Index(s, "."):] -} - -func (c chain) String() string { - buf := &bytes.Buffer{} - buf.WriteString("Chain(") - for i, l := range c.link[:len(c.link)-1] { - if i != 0 { - fmt.Fprint(buf, ", ") - } - buf.WriteString(tstr(l.t)) - } - buf.WriteString(")") - return buf.String() -} - -var testCases = []testCase{ - { - desc: "empty", - t: lowerCaseASCII{}, - src: "", - dstSize: 100, - srcSize: 100, - wantStr: "", - }, - - { - desc: "basic", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 100, - srcSize: 100, - wantStr: "hello world.", - }, - - { - desc: "small dst", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 3, - srcSize: 100, - wantStr: "hello world.", - }, - - { - desc: "small src", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 100, - srcSize: 4, - wantStr: "hello world.", - }, - - { - desc: "small buffers", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 3, - srcSize: 4, - wantStr: "hello world.", - }, - - { - desc: "very small buffers", - t: lowerCaseASCII{}, - src: "Hello WORLD.", - dstSize: 1, - srcSize: 1, - wantStr: "hello world.", - }, - - { - desc: "small dst with lookahead", - t: lowerCaseASCIILookahead{}, - src: "Hello WORLD.", - dstSize: 3, - srcSize: 100, - wantStr: "hello world.", - }, - - { - desc: "small src with lookahead", - t: lowerCaseASCIILookahead{}, - src: "Hello WORLD.", - dstSize: 100, - srcSize: 4, - wantStr: "hello world.", - }, - - { - desc: "small buffers with lookahead", - t: lowerCaseASCIILookahead{}, - src: "Hello WORLD.", - dstSize: 3, - srcSize: 4, - wantStr: "hello world.", - }, - - { - desc: "very small buffers with lookahead", - t: lowerCaseASCIILookahead{}, - src: "Hello WORLD.", - dstSize: 1, - srcSize: 2, - wantStr: "hello world.", - }, - - { - desc: "user error", - t: dontMentionX{}, - src: "The First Rule of Transform Club: don't mention Mister X, ever.", - dstSize: 100, - srcSize: 100, - wantStr: "The First Rule of Transform Club: don't mention Mister ", - wantErr: errYouMentionedX, - }, - - { - desc: "user error at end", - t: errorAtEnd{}, - src: "All goes well until it doesn't.", - dstSize: 100, - srcSize: 100, - wantStr: "All goes well until it doesn't.", - wantErr: errAtEnd, - }, - - { - desc: "user error at end, incremental", - t: errorAtEnd{}, - src: "All goes well until it doesn't.", - dstSize: 10, - srcSize: 10, - wantStr: "All goes well until it doesn't.", - wantErr: errAtEnd, - }, - - { - desc: "replace entire non-empty string with one byte", - t: &replaceWithConstant{replacement: "X"}, - src: "none of this will be copied", - dstSize: 1, - srcSize: 10, - wantStr: "X", - }, - - { - desc: "replace entire empty string with one byte", - t: &replaceWithConstant{replacement: "X"}, - src: "", - dstSize: 1, - srcSize: 10, - wantStr: "X", - }, - - { - desc: "replace entire empty string with seven bytes", - t: &replaceWithConstant{replacement: "ABCDEFG"}, - src: "", - dstSize: 3, - srcSize: 10, - wantStr: "ABCDEFG", - }, - - { - desc: "add an X (initialBufSize-1)", - t: addAnXAtTheEnd{}, - src: aaa[:initialBufSize-1], - dstSize: 10, - srcSize: 10, - wantStr: aaa[:initialBufSize-1] + "X", - }, - - { - desc: "add an X (initialBufSize+0)", - t: addAnXAtTheEnd{}, - src: aaa[:initialBufSize+0], - dstSize: 10, - srcSize: 10, - wantStr: aaa[:initialBufSize+0] + "X", - }, - - { - desc: "add an X (initialBufSize+1)", - t: addAnXAtTheEnd{}, - src: aaa[:initialBufSize+1], - dstSize: 10, - srcSize: 10, - wantStr: aaa[:initialBufSize+1] + "X", - }, - - { - desc: "small buffers", - t: dontMentionX{}, - src: "The First Rule of Transform Club: don't mention Mister X, ever.", - dstSize: 10, - srcSize: 10, - wantStr: "The First Rule of Transform Club: don't mention Mister ", - wantErr: errYouMentionedX, - }, - - { - desc: "very small buffers", - t: dontMentionX{}, - src: "The First Rule of Transform Club: don't mention Mister X, ever.", - dstSize: 1, - srcSize: 1, - wantStr: "The First Rule of Transform Club: don't mention Mister ", - wantErr: errYouMentionedX, - }, - - { - desc: "only transform at EOF", - t: doublerAtEOF{}, - src: "this", - dstSize: 100, - srcSize: 100, - wantStr: "tthhiiss", - }, - - { - desc: "basic", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 100, - srcSize: 100, - wantStr: "abbcccddddddddddeeeeeeeeeeeg", - }, - - { - desc: "long", - t: rleDecode{}, - src: "12a23b34c45d56e99z", - dstSize: 100, - srcSize: 100, - wantStr: strings.Repeat("a", 12) + - strings.Repeat("b", 23) + - strings.Repeat("c", 34) + - strings.Repeat("d", 45) + - strings.Repeat("e", 56) + - strings.Repeat("z", 99), - }, - - { - desc: "tight buffers", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 11, - srcSize: 3, - wantStr: "abbcccddddddddddeeeeeeeeeeeg", - }, - - { - desc: "short dst", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 10, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: ErrShortDst, - }, - - { - desc: "short src", - t: rleDecode{}, - src: "1a2b3c10d11e0f1g", - dstSize: 11, - srcSize: 2, - ioSize: 2, - wantStr: "abbccc", - wantErr: ErrShortSrc, - }, - - { - desc: "basic", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 100, - srcSize: 100, - wantStr: "1a2b3c10d11e1g", - }, - - { - desc: "long", - t: rleEncode{}, - src: strings.Repeat("a", 12) + - strings.Repeat("b", 23) + - strings.Repeat("c", 34) + - strings.Repeat("d", 45) + - strings.Repeat("e", 56) + - strings.Repeat("z", 99), - dstSize: 100, - srcSize: 100, - wantStr: "12a23b34c45d56e99z", - }, - - { - desc: "tight buffers", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 3, - srcSize: 12, - wantStr: "1a2b3c10d11e1g", - }, - - { - desc: "short dst", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 2, - srcSize: 12, - wantStr: "1a2b3c", - wantErr: ErrShortDst, - }, - - { - desc: "short src", - t: rleEncode{}, - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 3, - srcSize: 11, - ioSize: 11, - wantStr: "1a2b3c10d", - wantErr: ErrShortSrc, - }, - - { - desc: "allowStutter = false", - t: rleEncode{allowStutter: false}, - src: "aaaabbbbbbbbccccddddd", - dstSize: 10, - srcSize: 10, - wantStr: "4a8b4c5d", - }, - - { - desc: "allowStutter = true", - t: rleEncode{allowStutter: true}, - src: "aaaabbbbbbbbccccddddd", - dstSize: 10, - srcSize: 10, - ioSize: 10, - wantStr: "4a6b2b4c4d1d", - }, - - { - desc: "trickler", - t: &trickler{}, - src: "abcdefghijklm", - dstSize: 3, - srcSize: 15, - wantStr: "abcdefghijklm", - }, - - { - desc: "delayedTrickler", - t: &delayedTrickler{}, - src: "abcdefghijklm", - dstSize: 3, - srcSize: 15, - wantStr: "abcdefghijklm", - }, -} - -func TestReader(t *testing.T) { - for _, tc := range testCases { - testtext.Run(t, tc.desc, func(t *testing.T) { - r := NewReader(strings.NewReader(tc.src), tc.t) - // Differently sized dst and src buffers are not part of the - // exported API. We override them manually. - r.dst = make([]byte, tc.dstSize) - r.src = make([]byte, tc.srcSize) - got, err := ioutil.ReadAll(r) - str := string(got) - if str != tc.wantStr || err != tc.wantErr { - t.Errorf("\ngot %q, %v\nwant %q, %v", str, err, tc.wantStr, tc.wantErr) - } - }) - } -} - -func TestWriter(t *testing.T) { - tests := append(testCases, chainTests()...) - for _, tc := range tests { - sizes := []int{1, 2, 3, 4, 5, 10, 100, 1000} - if tc.ioSize > 0 { - sizes = []int{tc.ioSize} - } - for _, sz := range sizes { - testtext.Run(t, fmt.Sprintf("%s/%d", tc.desc, sz), func(t *testing.T) { - bb := &bytes.Buffer{} - w := NewWriter(bb, tc.t) - // Differently sized dst and src buffers are not part of the - // exported API. We override them manually. - w.dst = make([]byte, tc.dstSize) - w.src = make([]byte, tc.srcSize) - src := make([]byte, sz) - var err error - for b := tc.src; len(b) > 0 && err == nil; { - n := copy(src, b) - b = b[n:] - m := 0 - m, err = w.Write(src[:n]) - if m != n && err == nil { - t.Errorf("did not consume all bytes %d < %d", m, n) - } - } - if err == nil { - err = w.Close() - } - str := bb.String() - if str != tc.wantStr || err != tc.wantErr { - t.Errorf("\ngot %q, %v\nwant %q, %v", str, err, tc.wantStr, tc.wantErr) - } - }) - } - } -} - -func TestNop(t *testing.T) { - testCases := []struct { - str string - dstSize int - err error - }{ - {"", 0, nil}, - {"", 10, nil}, - {"a", 0, ErrShortDst}, - {"a", 1, nil}, - {"a", 10, nil}, - } - for i, tc := range testCases { - dst := make([]byte, tc.dstSize) - nDst, nSrc, err := Nop.Transform(dst, []byte(tc.str), true) - want := tc.str - if tc.dstSize < len(want) { - want = want[:tc.dstSize] - } - if got := string(dst[:nDst]); got != want || err != tc.err || nSrc != nDst { - t.Errorf("%d:\ngot %q, %d, %v\nwant %q, %d, %v", i, got, nSrc, err, want, nDst, tc.err) - } - } -} - -func TestDiscard(t *testing.T) { - testCases := []struct { - str string - dstSize int - }{ - {"", 0}, - {"", 10}, - {"a", 0}, - {"ab", 10}, - } - for i, tc := range testCases { - nDst, nSrc, err := Discard.Transform(make([]byte, tc.dstSize), []byte(tc.str), true) - if nDst != 0 || nSrc != len(tc.str) || err != nil { - t.Errorf("%d:\ngot %q, %d, %v\nwant 0, %d, nil", i, nDst, nSrc, err, len(tc.str)) - } - } -} - -// mkChain creates a Chain transformer. x must be alternating between transformer -// and bufSize, like T, (sz, T)* -func mkChain(x ...interface{}) *chain { - t := []Transformer{} - for i := 0; i < len(x); i += 2 { - t = append(t, x[i].(Transformer)) - } - c := Chain(t...).(*chain) - for i, j := 1, 1; i < len(x); i, j = i+2, j+1 { - c.link[j].b = make([]byte, x[i].(int)) - } - return c -} - -func chainTests() []testCase { - return []testCase{ - { - desc: "nil error", - t: mkChain(rleEncode{}, 100, lowerCaseASCII{}), - src: "ABB", - dstSize: 100, - srcSize: 100, - wantStr: "1a2b", - wantErr: nil, - wantIter: 1, - }, - - { - desc: "short dst buffer", - t: mkChain(lowerCaseASCII{}, 3, rleDecode{}), - src: "1a2b3c10d11e0f1g", - dstSize: 10, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: ErrShortDst, - }, - - { - desc: "short internal dst buffer", - t: mkChain(lowerCaseASCII{}, 3, rleDecode{}, 10, Nop), - src: "1a2b3c10d11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: errShortInternal, - }, - - { - desc: "short internal dst buffer from input", - t: mkChain(rleDecode{}, 10, Nop), - src: "1a2b3c10d11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "abbcccdddddddddd", - wantErr: errShortInternal, - }, - - { - desc: "empty short internal dst buffer", - t: mkChain(lowerCaseASCII{}, 3, rleDecode{}, 10, Nop), - src: "4a7b11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "aaaabbbbbbb", - wantErr: errShortInternal, - }, - - { - desc: "empty short internal dst buffer from input", - t: mkChain(rleDecode{}, 10, Nop), - src: "4a7b11e0f1g", - dstSize: 100, - srcSize: 3, - wantStr: "aaaabbbbbbb", - wantErr: errShortInternal, - }, - - { - desc: "short internal src buffer after full dst buffer", - t: mkChain(Nop, 5, rleEncode{}, 10, Nop), - src: "cccccddddd", - dstSize: 100, - srcSize: 100, - wantStr: "", - wantErr: errShortInternal, - wantIter: 1, - }, - - { - desc: "short internal src buffer after short dst buffer; test lastFull", - t: mkChain(rleDecode{}, 5, rleEncode{}, 4, Nop), - src: "2a1b4c6d", - dstSize: 100, - srcSize: 100, - wantStr: "2a1b", - wantErr: errShortInternal, - }, - - { - desc: "short internal src buffer after successful complete fill", - t: mkChain(Nop, 3, rleDecode{}), - src: "123a4b", - dstSize: 4, - srcSize: 3, - wantStr: "", - wantErr: errShortInternal, - wantIter: 1, - }, - - { - desc: "short internal src buffer after short dst buffer; test lastFull", - t: mkChain(rleDecode{}, 5, rleEncode{}), - src: "2a1b4c6d", - dstSize: 4, - srcSize: 100, - wantStr: "2a1b", - wantErr: errShortInternal, - }, - - { - desc: "short src buffer", - t: mkChain(rleEncode{}, 5, Nop), - src: "abbcccddddeeeee", - dstSize: 4, - srcSize: 4, - ioSize: 4, - wantStr: "1a2b3c", - wantErr: ErrShortSrc, - }, - - { - desc: "process all in one go", - t: mkChain(rleEncode{}, 5, Nop), - src: "abbcccddddeeeeeffffff", - dstSize: 100, - srcSize: 100, - wantStr: "1a2b3c4d5e6f", - wantErr: nil, - wantIter: 1, - }, - - { - desc: "complete processing downstream after error", - t: mkChain(dontMentionX{}, 2, rleDecode{}, 5, Nop), - src: "3a4b5eX", - dstSize: 100, - srcSize: 100, - ioSize: 100, - wantStr: "aaabbbbeeeee", - wantErr: errYouMentionedX, - }, - - { - desc: "return downstream fatal errors first (followed by short dst)", - t: mkChain(dontMentionX{}, 8, rleDecode{}, 4, Nop), - src: "3a4b5eX", - dstSize: 100, - srcSize: 100, - ioSize: 100, - wantStr: "aaabbbb", - wantErr: errShortInternal, - }, - - { - desc: "return downstream fatal errors first (followed by short src)", - t: mkChain(dontMentionX{}, 5, Nop, 1, rleDecode{}), - src: "1a5bX", - dstSize: 100, - srcSize: 100, - ioSize: 100, - wantStr: "", - wantErr: errShortInternal, - }, - - { - desc: "short internal", - t: mkChain(Nop, 11, rleEncode{}, 3, Nop), - src: "abbcccddddddddddeeeeeeeeeeeg", - dstSize: 3, - srcSize: 100, - wantStr: "1a2b3c10d", - wantErr: errShortInternal, - }, - } -} - -func doTransform(tc testCase) (res string, iter int, err error) { - tc.t.Reset() - dst := make([]byte, tc.dstSize) - out, in := make([]byte, 0, 2*len(tc.src)), []byte(tc.src) - for { - iter++ - src, atEOF := in, true - if len(src) > tc.srcSize { - src, atEOF = src[:tc.srcSize], false - } - nDst, nSrc, err := tc.t.Transform(dst, src, atEOF) - out = append(out, dst[:nDst]...) - in = in[nSrc:] - switch { - case err == nil && len(in) != 0: - case err == ErrShortSrc && nSrc > 0: - case err == ErrShortDst && (nDst > 0 || nSrc > 0): - default: - return string(out), iter, err - } - } -} - -func TestChain(t *testing.T) { - if c, ok := Chain().(nop); !ok { - t.Errorf("empty chain: %v; want Nop", c) - } - - // Test Chain for a single Transformer. - for _, tc := range testCases { - tc.t = Chain(tc.t) - str, _, err := doTransform(tc) - if str != tc.wantStr || err != tc.wantErr { - t.Errorf("%s:\ngot %q, %v\nwant %q, %v", tc, str, err, tc.wantStr, tc.wantErr) - } - } - - tests := chainTests() - sizes := []int{1, 2, 3, 4, 5, 7, 10, 100, 1000} - addTest := func(tc testCase, t *chain) { - if t.link[0].t != tc.t && tc.wantErr == ErrShortSrc { - tc.wantErr = errShortInternal - } - if t.link[len(t.link)-2].t != tc.t && tc.wantErr == ErrShortDst { - tc.wantErr = errShortInternal - } - tc.t = t - tests = append(tests, tc) - } - for _, tc := range testCases { - for _, sz := range sizes { - tt := tc - tt.dstSize = sz - addTest(tt, mkChain(tc.t, tc.dstSize, Nop)) - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 2, Nop)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop)) - if sz >= tc.dstSize && (tc.wantErr != ErrShortDst || sz == tc.dstSize) { - addTest(tt, mkChain(Nop, tc.srcSize, tc.t)) - addTest(tt, mkChain(Nop, 100, Nop, tc.srcSize, tc.t)) - } - } - } - for _, tc := range testCases { - tt := tc - tt.dstSize = 1 - tt.wantStr = "" - addTest(tt, mkChain(tc.t, tc.dstSize, Discard)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Discard)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, tc.dstSize, Discard)) - } - for _, tc := range testCases { - tt := tc - tt.dstSize = 100 - tt.wantStr = strings.Replace(tc.src, "0f", "", -1) - // Chain encoders and decoders. - if _, ok := tc.t.(rleEncode); ok && tc.wantErr == nil { - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 1000, rleDecode{})) - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, tc.dstSize, rleDecode{})) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleDecode{})) - // decoding needs larger destinations - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, rleDecode{}, 100, Nop)) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleDecode{}, 100, Nop)) - } else if _, ok := tc.t.(rleDecode); ok && tc.wantErr == nil { - // The internal buffer size may need to be the sum of the maximum segment - // size of the two encoders! - addTest(tt, mkChain(tc.t, 2*tc.dstSize, rleEncode{})) - addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 101, rleEncode{})) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleEncode{})) - addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 200, rleEncode{}, 100, Nop)) - } - } - for _, tc := range tests { - str, iter, err := doTransform(tc) - mi := tc.wantIter != 0 && tc.wantIter != iter - if str != tc.wantStr || err != tc.wantErr || mi { - t.Errorf("%s:\ngot iter:%d, %q, %v\nwant iter:%d, %q, %v", tc, iter, str, err, tc.wantIter, tc.wantStr, tc.wantErr) - } - break - } -} - -func TestRemoveFunc(t *testing.T) { - filter := RemoveFunc(func(r rune) bool { - return strings.IndexRune("ab\u0300\u1234,", r) != -1 - }) - tests := []testCase{ - { - src: ",", - wantStr: "", - }, - - { - src: "c", - wantStr: "c", - }, - - { - src: "\u2345", - wantStr: "\u2345", - }, - - { - src: "tschüß", - wantStr: "tschüß", - }, - - { - src: ",до,свидания,", - wantStr: "досвидания", - }, - - { - src: "a\xbd\xb2=\xbc ⌘", - wantStr: "\uFFFD\uFFFD=\uFFFD ⌘", - }, - - { - // If we didn't replace illegal bytes with RuneError, the result - // would be \u0300 or the code would need to be more complex. - src: "\xcc\u0300\x80", - wantStr: "\uFFFD\uFFFD", - }, - - { - src: "\xcc\u0300\x80", - dstSize: 3, - wantStr: "\uFFFD\uFFFD", - wantIter: 2, - }, - - { - // Test a long buffer greater than the internal buffer size - src: "hello\xcc\xcc\xccworld", - srcSize: 13, - wantStr: "hello\uFFFD\uFFFD\uFFFDworld", - wantIter: 1, - }, - - { - src: "\u2345", - dstSize: 2, - wantStr: "", - wantErr: ErrShortDst, - }, - - { - src: "\xcc", - dstSize: 2, - wantStr: "", - wantErr: ErrShortDst, - }, - - { - src: "\u0300", - dstSize: 2, - srcSize: 1, - wantStr: "", - wantErr: ErrShortSrc, - }, - - { - t: RemoveFunc(func(r rune) bool { - return r == utf8.RuneError - }), - src: "\xcc\u0300\x80", - wantStr: "\u0300", - }, - } - - for _, tc := range tests { - tc.desc = tc.src - if tc.t == nil { - tc.t = filter - } - if tc.dstSize == 0 { - tc.dstSize = 100 - } - if tc.srcSize == 0 { - tc.srcSize = 100 - } - str, iter, err := doTransform(tc) - mi := tc.wantIter != 0 && tc.wantIter != iter - if str != tc.wantStr || err != tc.wantErr || mi { - t.Errorf("%+q:\ngot iter:%d, %+q, %v\nwant iter:%d, %+q, %v", tc.src, iter, str, err, tc.wantIter, tc.wantStr, tc.wantErr) - } - - tc.src = str - idem, _, _ := doTransform(tc) - if str != idem { - t.Errorf("%+q: found %+q; want %+q", tc.src, idem, str) - } - } -} - -func testString(t *testing.T, f func(Transformer, string) (string, int, error)) { - for _, tt := range append(testCases, chainTests()...) { - if tt.desc == "allowStutter = true" { - // We don't have control over the buffer size, so we eliminate tests - // that depend on a specific buffer size being set. - continue - } - if tt.wantErr == ErrShortDst || tt.wantErr == ErrShortSrc { - // The result string will be different. - continue - } - testtext.Run(t, tt.desc, func(t *testing.T) { - got, n, err := f(tt.t, tt.src) - if tt.wantErr != err { - t.Errorf("error: got %v; want %v", err, tt.wantErr) - } - // Check that err == nil implies that n == len(tt.src). Note that vice - // versa isn't necessarily true. - if err == nil && n != len(tt.src) { - t.Errorf("err == nil: got %d bytes, want %d", n, err) - } - if got != tt.wantStr { - t.Errorf("string: got %q; want %q", got, tt.wantStr) - } - }) - } -} - -func TestBytes(t *testing.T) { - testString(t, func(z Transformer, s string) (string, int, error) { - b, n, err := Bytes(z, []byte(s)) - return string(b), n, err - }) -} - -func TestAppend(t *testing.T) { - // Create a bunch of subtests for different buffer sizes. - testCases := [][]byte{ - nil, - make([]byte, 0, 0), - make([]byte, 0, 1), - make([]byte, 1, 1), - make([]byte, 1, 5), - make([]byte, 100, 100), - make([]byte, 100, 200), - } - for _, tc := range testCases { - testString(t, func(z Transformer, s string) (string, int, error) { - b, n, err := Append(z, tc, []byte(s)) - return string(b[len(tc):]), n, err - }) - } -} - -func TestString(t *testing.T) { - testtext.Run(t, "transform", func(t *testing.T) { testString(t, String) }) - - // Overrun the internal destination buffer. - for i, s := range []string{ - aaa[:1*initialBufSize-1], - aaa[:1*initialBufSize+0], - aaa[:1*initialBufSize+1], - AAA[:1*initialBufSize-1], - AAA[:1*initialBufSize+0], - AAA[:1*initialBufSize+1], - AAA[:2*initialBufSize-1], - AAA[:2*initialBufSize+0], - AAA[:2*initialBufSize+1], - aaa[:1*initialBufSize-2] + "A", - aaa[:1*initialBufSize-1] + "A", - aaa[:1*initialBufSize+0] + "A", - aaa[:1*initialBufSize+1] + "A", - } { - testtext.Run(t, fmt.Sprint("dst buffer test using lower/", i), func(t *testing.T) { - got, _, _ := String(lowerCaseASCII{}, s) - if want := strings.ToLower(s); got != want { - t.Errorf("got %s (%d); want %s (%d)", got, len(got), want, len(want)) - } - }) - } - - // Overrun the internal source buffer. - for i, s := range []string{ - aaa[:1*initialBufSize-1], - aaa[:1*initialBufSize+0], - aaa[:1*initialBufSize+1], - aaa[:2*initialBufSize+1], - aaa[:2*initialBufSize+0], - aaa[:2*initialBufSize+1], - } { - testtext.Run(t, fmt.Sprint("src buffer test using rleEncode/", i), func(t *testing.T) { - got, _, _ := String(rleEncode{}, s) - if want := fmt.Sprintf("%da", len(s)); got != want { - t.Errorf("got %s (%d); want %s (%d)", got, len(got), want, len(want)) - } - }) - } - - // Test allocations for non-changing strings. - // Note we still need to allocate a single buffer. - for i, s := range []string{ - "", - "123456789", - aaa[:initialBufSize-1], - aaa[:initialBufSize+0], - aaa[:initialBufSize+1], - aaa[:10*initialBufSize], - } { - testtext.Run(t, fmt.Sprint("alloc/", i), func(t *testing.T) { - if n := testtext.AllocsPerRun(5, func() { String(&lowerCaseASCIILookahead{}, s) }); n > 1 { - t.Errorf("#allocs was %f; want 1", n) - } - }) - } -} - -// TestBytesAllocation tests that buffer growth stays limited with the trickler -// transformer, which behaves oddly but within spec. In case buffer growth is -// not correctly handled, the test will either panic with a failed allocation or -// thrash. To ensure the tests terminate under the last condition, we time out -// after some sufficiently long period of time. -func TestBytesAllocation(t *testing.T) { - done := make(chan bool) - go func() { - in := bytes.Repeat([]byte{'a'}, 1000) - tr := trickler(make([]byte, 1)) - Bytes(&tr, in) - done <- true - }() - select { - case <-done: - case <-time.After(3 * time.Second): - t.Error("time out, likely due to excessive allocation") - } -} - -// TestStringAllocation tests that buffer growth stays limited with the trickler -// transformer, which behaves oddly but within spec. In case buffer growth is -// not correctly handled, the test will either panic with a failed allocation or -// thrash. To ensure the tests terminate under the last condition, we time out -// after some sufficiently long period of time. -func TestStringAllocation(t *testing.T) { - done := make(chan bool) - go func() { - tr := trickler(make([]byte, 1)) - String(&tr, aaa[:1000]) - done <- true - }() - select { - case <-done: - case <-time.After(3 * time.Second): - t.Error("time out, likely due to excessive allocation") - } -} - -func BenchmarkStringLowerEmpty(b *testing.B) { - for i := 0; i < b.N; i++ { - String(&lowerCaseASCIILookahead{}, "") - } -} - -func BenchmarkStringLowerIdentical(b *testing.B) { - for i := 0; i < b.N; i++ { - String(&lowerCaseASCIILookahead{}, aaa[:4096]) - } -} - -func BenchmarkStringLowerChanged(b *testing.B) { - for i := 0; i < b.N; i++ { - String(&lowerCaseASCIILookahead{}, AAA[:4096]) - } -} - -var ( - aaa = strings.Repeat("a", 4096) - AAA = strings.Repeat("A", 4096) -) diff --git a/vendor/gopkg.in/gcfg.v1/LICENSE b/vendor/gopkg.in/gcfg.v1/LICENSE deleted file mode 100644 index 87a5ced..0000000 --- a/vendor/gopkg.in/gcfg.v1/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 Péter Surányi. Portions Copyright (c) 2009 The Go -Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/gopkg.in/gcfg.v1/README b/vendor/gopkg.in/gcfg.v1/README deleted file mode 100644 index 1ff233a..0000000 --- a/vendor/gopkg.in/gcfg.v1/README +++ /dev/null @@ -1,4 +0,0 @@ -Gcfg reads INI-style configuration files into Go structs; -supports user-defined types and subsections. - -Package docs: https://godoc.org/gopkg.in/gcfg.v1 diff --git a/vendor/gopkg.in/gcfg.v1/doc.go b/vendor/gopkg.in/gcfg.v1/doc.go deleted file mode 100644 index 0e198e3..0000000 --- a/vendor/gopkg.in/gcfg.v1/doc.go +++ /dev/null @@ -1,118 +0,0 @@ -// Package gcfg reads "INI-style" text-based configuration files with -// "name=value" pairs grouped into sections (gcfg files). -// -// This package is still a work in progress; see the sections below for planned -// changes. -// -// Syntax -// -// The syntax is based on that used by git config: -// http://git-scm.com/docs/git-config#_syntax . -// There are some (planned) differences compared to the git config format: -// - improve data portability: -// - must be encoded in UTF-8 (for now) and must not contain the 0 byte -// - include and "path" type is not supported -// (path type may be implementable as a user-defined type) -// - internationalization -// - section and variable names can contain unicode letters, unicode digits -// (as defined in http://golang.org/ref/spec#Characters ) and hyphens -// (U+002D), starting with a unicode letter -// - disallow potentially ambiguous or misleading definitions: -// - `[sec.sub]` format is not allowed (deprecated in gitconfig) -// - `[sec ""]` is not allowed -// - use `[sec]` for section name "sec" and empty subsection name -// - (planned) within a single file, definitions must be contiguous for each: -// - section: '[secA]' -> '[secB]' -> '[secA]' is an error -// - subsection: '[sec "A"]' -> '[sec "B"]' -> '[sec "A"]' is an error -// - multivalued variable: 'multi=a' -> 'other=x' -> 'multi=b' is an error -// -// Data structure -// -// The functions in this package read values into a user-defined struct. -// Each section corresponds to a struct field in the config struct, and each -// variable in a section corresponds to a data field in the section struct. -// The mapping of each section or variable name to fields is done either based -// on the "gcfg" struct tag or by matching the name of the section or variable, -// ignoring case. In the latter case, hyphens '-' in section and variable names -// correspond to underscores '_' in field names. -// Fields must be exported; to use a section or variable name starting with a -// letter that is neither upper- or lower-case, prefix the field name with 'X'. -// (See https://code.google.com/p/go/issues/detail?id=5763#c4 .) -// -// For sections with subsections, the corresponding field in config must be a -// map, rather than a struct, with string keys and pointer-to-struct values. -// Values for subsection variables are stored in the map with the subsection -// name used as the map key. -// (Note that unlike section and variable names, subsection names are case -// sensitive.) -// When using a map, and there is a section with the same section name but -// without a subsection name, its values are stored with the empty string used -// as the key. -// -// The functions in this package panic if config is not a pointer to a struct, -// or when a field is not of a suitable type (either a struct or a map with -// string keys and pointer-to-struct values). -// -// Parsing of values -// -// The section structs in the config struct may contain single-valued or -// multi-valued variables. Variables of unnamed slice type (that is, a type -// starting with `[]`) are treated as multi-value; all others (including named -// slice types) are treated as single-valued variables. -// -// Single-valued variables are handled based on the type as follows. -// Unnamed pointer types (that is, types starting with `*`) are dereferenced, -// and if necessary, a new instance is allocated. -// -// For types implementing the encoding.TextUnmarshaler interface, the -// UnmarshalText method is used to set the value. Implementing this method is -// the recommended way for parsing user-defined types. -// -// For fields of string kind, the value string is assigned to the field, after -// unquoting and unescaping as needed. -// For fields of bool kind, the field is set to true if the value is "true", -// "yes", "on" or "1", and set to false if the value is "false", "no", "off" or -// "0", ignoring case. In addition, single-valued bool fields can be specified -// with a "blank" value (variable name without equals sign and value); in such -// case the value is set to true. -// -// Predefined integer types [u]int(|8|16|32|64) and big.Int are parsed as -// decimal or hexadecimal (if having '0x' prefix). (This is to prevent -// unintuitively handling zero-padded numbers as octal.) Other types having -// [u]int* as the underlying type, such as os.FileMode and uintptr allow -// decimal, hexadecimal, or octal values. -// Parsing mode for integer types can be overridden using the struct tag option -// ",int=mode" where mode is a combination of the 'd', 'h', and 'o' characters -// (each standing for decimal, hexadecimal, and octal, respectively.) -// -// All other types are parsed using fmt.Sscanf with the "%v" verb. -// -// For multi-valued variables, each individual value is parsed as above and -// appended to the slice. If the first value is specified as a "blank" value -// (variable name without equals sign and value), a new slice is allocated; -// that is any values previously set in the slice will be ignored. -// -// The types subpackage for provides helpers for parsing "enum-like" and integer -// types. -// -// TODO -// -// The following is a list of changes under consideration: -// - documentation -// - self-contained syntax documentation -// - more practical examples -// - move TODOs to issue tracker (eventually) -// - syntax -// - reconsider valid escape sequences -// (gitconfig doesn't support \r in value, \t in subsection name, etc.) -// - reading / parsing gcfg files -// - define internal representation structure -// - support multiple inputs (readers, strings, files) -// - support declaring encoding (?) -// - support varying fields sets for subsections (?) -// - writing gcfg files -// - error handling -// - make error context accessible programmatically? -// - limit input size? -// -package gcfg // import "gopkg.in/gcfg.v1" diff --git a/vendor/gopkg.in/gcfg.v1/example_test.go b/vendor/gopkg.in/gcfg.v1/example_test.go deleted file mode 100644 index 6fda72a..0000000 --- a/vendor/gopkg.in/gcfg.v1/example_test.go +++ /dev/null @@ -1,132 +0,0 @@ -package gcfg_test - -import ( - "fmt" - "log" -) - -import "gopkg.in/gcfg.v1" - -func ExampleReadStringInto() { - cfgStr := `; Comment line -[section] -name=value # comment` - cfg := struct { - Section struct { - Name string - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Println(cfg.Section.Name) - // Output: value -} - -func ExampleReadStringInto_bool() { - cfgStr := `; Comment line -[section] -switch=on` - cfg := struct { - Section struct { - Switch bool - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Println(cfg.Section.Switch) - // Output: true -} - -func ExampleReadStringInto_hyphens() { - cfgStr := `; Comment line -[section-name] -variable-name=value # comment` - cfg := struct { - Section_Name struct { - Variable_Name string - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Println(cfg.Section_Name.Variable_Name) - // Output: value -} - -func ExampleReadStringInto_tags() { - cfgStr := `; Comment line -[section] -var-name=value # comment` - cfg := struct { - Section struct { - FieldName string `gcfg:"var-name"` - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Println(cfg.Section.FieldName) - // Output: value -} - -func ExampleReadStringInto_subsections() { - cfgStr := `; Comment line -[profile "A"] -color = white - -[profile "B"] -color = black -` - cfg := struct { - Profile map[string]*struct { - Color string - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Printf("%s %s\n", cfg.Profile["A"].Color, cfg.Profile["B"].Color) - // Output: white black -} - -func ExampleReadStringInto_multivalue() { - cfgStr := `; Comment line -[section] -multi=value1 -multi=value2` - cfg := struct { - Section struct { - Multi []string - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Println(cfg.Section.Multi) - // Output: [value1 value2] -} - -func ExampleReadStringInto_unicode() { - cfgStr := `; Comment line -[甲] -乙=丙 # comment` - cfg := struct { - X甲 struct { - X乙 string - } - }{} - err := gcfg.ReadStringInto(&cfg, cfgStr) - if err != nil { - log.Fatalf("Failed to parse gcfg data: %s", err) - } - fmt.Println(cfg.X甲.X乙) - // Output: 丙 -} diff --git a/vendor/gopkg.in/gcfg.v1/go1_0.go b/vendor/gopkg.in/gcfg.v1/go1_0.go deleted file mode 100644 index 6670210..0000000 --- a/vendor/gopkg.in/gcfg.v1/go1_0.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build !go1.2 - -package gcfg - -type textUnmarshaler interface { - UnmarshalText(text []byte) error -} diff --git a/vendor/gopkg.in/gcfg.v1/go1_2.go b/vendor/gopkg.in/gcfg.v1/go1_2.go deleted file mode 100644 index 6f5843b..0000000 --- a/vendor/gopkg.in/gcfg.v1/go1_2.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build go1.2 - -package gcfg - -import ( - "encoding" -) - -type textUnmarshaler encoding.TextUnmarshaler diff --git a/vendor/gopkg.in/gcfg.v1/issues_test.go b/vendor/gopkg.in/gcfg.v1/issues_test.go deleted file mode 100644 index 796dd10..0000000 --- a/vendor/gopkg.in/gcfg.v1/issues_test.go +++ /dev/null @@ -1,63 +0,0 @@ -package gcfg - -import ( - "fmt" - "math/big" - "strings" - "testing" -) - -type Config1 struct { - Section struct { - Int int - BigInt big.Int - } -} - -var testsIssue1 = []struct { - cfg string - typename string -}{ - {"[section]\nint=X", "int"}, - {"[section]\nint=", "int"}, - {"[section]\nint=1A", "int"}, - {"[section]\nbigint=X", "big.Int"}, - {"[section]\nbigint=", "big.Int"}, - {"[section]\nbigint=1A", "big.Int"}, -} - -// Value parse error should: -// - include plain type name -// - not include reflect internals -func TestIssue1(t *testing.T) { - for i, tt := range testsIssue1 { - var c Config1 - err := ReadStringInto(&c, tt.cfg) - switch { - case err == nil: - t.Errorf("%d fail: got ok; wanted error", i) - case !strings.Contains(err.Error(), tt.typename): - t.Errorf("%d fail: error message doesn't contain type name %q: %v", - i, tt.typename, err) - case strings.Contains(err.Error(), "reflect"): - t.Errorf("%d fail: error message includes reflect internals: %v", - i, err) - default: - t.Logf("%d pass: %v", i, err) - } - } -} - -type confIssue2 struct{ Main struct{ Foo string } } - -var testsIssue2 = []readtest{ - {"[main]\n;\nfoo = bar\n", &confIssue2{struct{ Foo string }{"bar"}}, true}, - {"[main]\r\n;\r\nfoo = bar\r\n", &confIssue2{struct{ Foo string }{"bar"}}, true}, -} - -func TestIssue2(t *testing.T) { - for i, tt := range testsIssue2 { - id := fmt.Sprintf("issue2:%d", i) - testRead(t, id, tt) - } -} diff --git a/vendor/gopkg.in/gcfg.v1/read.go b/vendor/gopkg.in/gcfg.v1/read.go deleted file mode 100644 index fdfb5f3..0000000 --- a/vendor/gopkg.in/gcfg.v1/read.go +++ /dev/null @@ -1,188 +0,0 @@ -package gcfg - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "strings" -) - -import ( - "gopkg.in/gcfg.v1/scanner" - "gopkg.in/gcfg.v1/token" -) - -var unescape = map[rune]rune{'\\': '\\', '"': '"', 'n': '\n', 't': '\t'} - -// no error: invalid literals should be caught by scanner -func unquote(s string) string { - u, q, esc := make([]rune, 0, len(s)), false, false - for _, c := range s { - if esc { - uc, ok := unescape[c] - switch { - case ok: - u = append(u, uc) - fallthrough - case !q && c == '\n': - esc = false - continue - } - panic("invalid escape sequence") - } - switch c { - case '"': - q = !q - case '\\': - esc = true - default: - u = append(u, c) - } - } - if q { - panic("missing end quote") - } - if esc { - panic("invalid escape sequence") - } - return string(u) -} - -func readInto(config interface{}, fset *token.FileSet, file *token.File, src []byte) error { - var s scanner.Scanner - var errs scanner.ErrorList - s.Init(file, src, func(p token.Position, m string) { errs.Add(p, m) }, 0) - sect, sectsub := "", "" - pos, tok, lit := s.Scan() - errfn := func(msg string) error { - return fmt.Errorf("%s: %s", fset.Position(pos), msg) - } - for { - if errs.Len() > 0 { - return errs.Err() - } - switch tok { - case token.EOF: - return nil - case token.EOL, token.COMMENT: - pos, tok, lit = s.Scan() - case token.LBRACK: - pos, tok, lit = s.Scan() - if errs.Len() > 0 { - return errs.Err() - } - if tok != token.IDENT { - return errfn("expected section name") - } - sect, sectsub = lit, "" - pos, tok, lit = s.Scan() - if errs.Len() > 0 { - return errs.Err() - } - if tok == token.STRING { - sectsub = unquote(lit) - if sectsub == "" { - return errfn("empty subsection name") - } - pos, tok, lit = s.Scan() - if errs.Len() > 0 { - return errs.Err() - } - } - if tok != token.RBRACK { - if sectsub == "" { - return errfn("expected subsection name or right bracket") - } - return errfn("expected right bracket") - } - pos, tok, lit = s.Scan() - if tok != token.EOL && tok != token.EOF && tok != token.COMMENT { - return errfn("expected EOL, EOF, or comment") - } - // If a section/subsection header was found, ensure a - // container object is created, even if there are no - // variables further down. - err := set(config, sect, sectsub, "", true, "") - if err != nil { - return err - } - case token.IDENT: - if sect == "" { - return errfn("expected section header") - } - n := lit - pos, tok, lit = s.Scan() - if errs.Len() > 0 { - return errs.Err() - } - blank, v := tok == token.EOF || tok == token.EOL || tok == token.COMMENT, "" - if !blank { - if tok != token.ASSIGN { - return errfn("expected '='") - } - pos, tok, lit = s.Scan() - if errs.Len() > 0 { - return errs.Err() - } - if tok != token.STRING { - return errfn("expected value") - } - v = unquote(lit) - pos, tok, lit = s.Scan() - if errs.Len() > 0 { - return errs.Err() - } - if tok != token.EOL && tok != token.EOF && tok != token.COMMENT { - return errfn("expected EOL, EOF, or comment") - } - } - err := set(config, sect, sectsub, n, blank, v) - if err != nil { - return err - } - default: - if sect == "" { - return errfn("expected section header") - } - return errfn("expected section header or variable declaration") - } - } - panic("never reached") -} - -// ReadInto reads gcfg formatted data from reader and sets the values into the -// corresponding fields in config. -func ReadInto(config interface{}, reader io.Reader) error { - src, err := ioutil.ReadAll(reader) - if err != nil { - return err - } - fset := token.NewFileSet() - file := fset.AddFile("", fset.Base(), len(src)) - return readInto(config, fset, file, src) -} - -// ReadStringInto reads gcfg formatted data from str and sets the values into -// the corresponding fields in config. -func ReadStringInto(config interface{}, str string) error { - r := strings.NewReader(str) - return ReadInto(config, r) -} - -// ReadFileInto reads gcfg formatted data from the file filename and sets the -// values into the corresponding fields in config. -func ReadFileInto(config interface{}, filename string) error { - f, err := os.Open(filename) - if err != nil { - return err - } - defer f.Close() - src, err := ioutil.ReadAll(f) - if err != nil { - return err - } - fset := token.NewFileSet() - file := fset.AddFile(filename, fset.Base(), len(src)) - return readInto(config, fset, file, src) -} diff --git a/vendor/gopkg.in/gcfg.v1/read_test.go b/vendor/gopkg.in/gcfg.v1/read_test.go deleted file mode 100644 index 404d04d..0000000 --- a/vendor/gopkg.in/gcfg.v1/read_test.go +++ /dev/null @@ -1,338 +0,0 @@ -package gcfg - -import ( - "fmt" - "math/big" - "os" - "reflect" - "testing" -) - -const ( - // 64 spaces - sp64 = " " - // 512 spaces - sp512 = sp64 + sp64 + sp64 + sp64 + sp64 + sp64 + sp64 + sp64 - // 4096 spaces - sp4096 = sp512 + sp512 + sp512 + sp512 + sp512 + sp512 + sp512 + sp512 -) - -type cBasic struct { - Section cBasicS1 - Hyphen_In_Section cBasicS2 - unexported cBasicS1 - Exported cBasicS3 - TagName cBasicS1 `gcfg:"tag-name"` -} -type cBasicS1 struct { - Name string - Int int - PName *string -} -type cBasicS2 struct { - Hyphen_In_Name string -} -type cBasicS3 struct { - unexported string -} - -type nonMulti []string - -type unmarshalable string - -func (u *unmarshalable) UnmarshalText(text []byte) error { - s := string(text) - if s == "error" { - return fmt.Errorf("%s", s) - } - *u = unmarshalable(s) - return nil -} - -var _ textUnmarshaler = new(unmarshalable) - -type cUni struct { - X甲 cUniS1 - XSection cUniS2 -} -type cUniS1 struct { - X乙 string -} -type cUniS2 struct { - XName string -} - -type cMulti struct { - M1 cMultiS1 - M2 cMultiS2 - M3 cMultiS3 -} -type cMultiS1 struct{ Multi []string } -type cMultiS2 struct{ NonMulti nonMulti } -type cMultiS3 struct{ PMulti *[]string } - -type cSubs struct{ Sub map[string]*cSubsS1 } -type cSubsS1 struct{ Name string } - -type cBool struct{ Section cBoolS1 } -type cBoolS1 struct{ Bool bool } - -type cTxUnm struct{ Section cTxUnmS1 } -type cTxUnmS1 struct{ Name unmarshalable } - -type cNum struct { - N1 cNumS1 - N2 cNumS2 - N3 cNumS3 -} -type cNumS1 struct { - Int int - IntDHO int `gcfg:",int=dho"` - Big *big.Int -} -type cNumS2 struct { - MultiInt []int - MultiBig []*big.Int -} -type cNumS3 struct{ FileMode os.FileMode } -type readtest struct { - gcfg string - exp interface{} - ok bool -} - -func newString(s string) *string { return &s } -func newStringSlice(s ...string) *[]string { return &s } - -var readtests = []struct { - group string - tests []readtest -}{{"scanning", []readtest{ - {"[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - // hyphen in name - {"[hyphen-in-section]\nhyphen-in-name=value", &cBasic{Hyphen_In_Section: cBasicS2{Hyphen_In_Name: "value"}}, true}, - // quoted string value - {"[section]\nname=\"\"", &cBasic{Section: cBasicS1{Name: ""}}, true}, - {"[section]\nname=\" \"", &cBasic{Section: cBasicS1{Name: " "}}, true}, - {"[section]\nname=\"value\"", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname=\" value \"", &cBasic{Section: cBasicS1{Name: " value "}}, true}, - {"\n[section]\nname=\"va ; lue\"", &cBasic{Section: cBasicS1{Name: "va ; lue"}}, true}, - {"[section]\nname=\"val\" \"ue\"", &cBasic{Section: cBasicS1{Name: "val ue"}}, true}, - {"[section]\nname=\"value", &cBasic{}, false}, - // escape sequences - {"[section]\nname=\"va\\\\lue\"", &cBasic{Section: cBasicS1{Name: "va\\lue"}}, true}, - {"[section]\nname=\"va\\\"lue\"", &cBasic{Section: cBasicS1{Name: "va\"lue"}}, true}, - {"[section]\nname=\"va\\nlue\"", &cBasic{Section: cBasicS1{Name: "va\nlue"}}, true}, - {"[section]\nname=\"va\\tlue\"", &cBasic{Section: cBasicS1{Name: "va\tlue"}}, true}, - {"\n[section]\nname=\\", &cBasic{}, false}, - {"\n[section]\nname=\\a", &cBasic{}, false}, - {"\n[section]\nname=\"val\\a\"", &cBasic{}, false}, - {"\n[section]\nname=val\\", &cBasic{}, false}, - {"\n[sub \"A\\\n\"]\nname=value", &cSubs{}, false}, - {"\n[sub \"A\\\t\"]\nname=value", &cSubs{}, false}, - // broken line - {"[section]\nname=value \\\n value", &cBasic{Section: cBasicS1{Name: "value value"}}, true}, - {"[section]\nname=\"value \\\n value\"", &cBasic{}, false}, -}}, {"scanning:whitespace", []readtest{ - {" \n[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {" [section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\t[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[ section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section ]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\n name=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname =value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname= value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname=value ", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\r\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\r\nname=value\r\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {";cmnt\r\n[section]\r\nname=value\r\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - // long lines - {sp4096 + "[section]\nname=value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[" + sp4096 + "section]\nname=value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section" + sp4096 + "]\nname=value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]" + sp4096 + "\nname=value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\n" + sp4096 + "name=value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname" + sp4096 + "=value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname=" + sp4096 + "value\n", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname=value\n" + sp4096, &cBasic{Section: cBasicS1{Name: "value"}}, true}, -}}, {"scanning:comments", []readtest{ - {"; cmnt\n[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"# cmnt\n[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {" ; cmnt\n[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\t; cmnt\n[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section]; cmnt\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section] ; cmnt\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section]\nname=value; cmnt", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section]\nname=value ; cmnt", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section]\nname=\"value\" ; cmnt", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section]\nname=value ; \"cmnt", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"\n[section]\nname=\"va ; lue\" ; cmnt", &cBasic{Section: cBasicS1{Name: "va ; lue"}}, true}, - {"\n[section]\nname=; cmnt", &cBasic{Section: cBasicS1{Name: ""}}, true}, -}}, {"scanning:subsections", []readtest{ - {"\n[sub \"A\"]\nname=value", &cSubs{map[string]*cSubsS1{"A": &cSubsS1{"value"}}}, true}, - {"\n[sub \"b\"]\nname=value", &cSubs{map[string]*cSubsS1{"b": &cSubsS1{"value"}}}, true}, - {"\n[sub \"A\\\\\"]\nname=value", &cSubs{map[string]*cSubsS1{"A\\": &cSubsS1{"value"}}}, true}, - {"\n[sub \"A\\\"\"]\nname=value", &cSubs{map[string]*cSubsS1{"A\"": &cSubsS1{"value"}}}, true}, -}}, {"syntax", []readtest{ - // invalid line - {"\n[section]\n=", &cBasic{}, false}, - // no section - {"name=value", &cBasic{}, false}, - // empty section - {"\n[]\nname=value", &cBasic{}, false}, - // empty subsection - {"\n[sub \"\"]\nname=value", &cSubs{}, false}, -}}, {"setting", []readtest{ - {"[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - // pointer - {"[section]", &cBasic{Section: cBasicS1{PName: nil}}, true}, - {"[section]\npname=value", &cBasic{Section: cBasicS1{PName: newString("value")}}, true}, - {"[m3]", &cMulti{M3: cMultiS3{PMulti: nil}}, true}, - {"[m3]\npmulti", &cMulti{M3: cMultiS3{PMulti: newStringSlice()}}, true}, - {"[m3]\npmulti=value", &cMulti{M3: cMultiS3{PMulti: newStringSlice("value")}}, true}, - {"[m3]\npmulti=value1\npmulti=value2", &cMulti{M3: cMultiS3{PMulti: newStringSlice("value1", "value2")}}, true}, - // section name not matched - {"\n[nonexistent]\nname=value", &cBasic{}, false}, - // subsection name not matched - {"\n[section \"nonexistent\"]\nname=value", &cBasic{}, false}, - // variable name not matched - {"\n[section]\nnonexistent=value", &cBasic{}, false}, - // hyphen in name - {"[hyphen-in-section]\nhyphen-in-name=value", &cBasic{Hyphen_In_Section: cBasicS2{Hyphen_In_Name: "value"}}, true}, - // ignore unexported fields - {"[unexported]\nname=value", &cBasic{}, false}, - {"[exported]\nunexported=value", &cBasic{}, false}, - // 'X' prefix for non-upper/lower-case letters - {"[甲]\n乙=丙", &cUni{X甲: cUniS1{X乙: "丙"}}, true}, - //{"[section]\nxname=value", &cBasic{XSection: cBasicS4{XName: "value"}}, false}, - //{"[xsection]\nname=value", &cBasic{XSection: cBasicS4{XName: "value"}}, false}, - // name specified as struct tag - {"[tag-name]\nname=value", &cBasic{TagName: cBasicS1{Name: "value"}}, true}, - // empty subsections - {"\n[sub \"A\"]\n[sub \"B\"]", &cSubs{map[string]*cSubsS1{"A": &cSubsS1{}, "B": &cSubsS1{}}}, true}, -}}, {"multivalue", []readtest{ - // unnamed slice type: treat as multi-value - {"\n[m1]", &cMulti{M1: cMultiS1{}}, true}, - {"\n[m1]\nmulti=value", &cMulti{M1: cMultiS1{[]string{"value"}}}, true}, - {"\n[m1]\nmulti=value1\nmulti=value2", &cMulti{M1: cMultiS1{[]string{"value1", "value2"}}}, true}, - // "blank" empties multi-valued slice -- here same result as above - {"\n[m1]\nmulti\nmulti=value1\nmulti=value2", &cMulti{M1: cMultiS1{[]string{"value1", "value2"}}}, true}, - // named slice type: do not treat as multi-value - {"\n[m2]", &cMulti{}, true}, - {"\n[m2]\nmulti=value", &cMulti{}, false}, - {"\n[m2]\nmulti=value1\nmulti=value2", &cMulti{}, false}, -}}, {"type:string", []readtest{ - {"[section]\nname=value", &cBasic{Section: cBasicS1{Name: "value"}}, true}, - {"[section]\nname=", &cBasic{Section: cBasicS1{Name: ""}}, true}, -}}, {"type:bool", []readtest{ - // explicit values - {"[section]\nbool=true", &cBool{cBoolS1{true}}, true}, - {"[section]\nbool=yes", &cBool{cBoolS1{true}}, true}, - {"[section]\nbool=on", &cBool{cBoolS1{true}}, true}, - {"[section]\nbool=1", &cBool{cBoolS1{true}}, true}, - {"[section]\nbool=tRuE", &cBool{cBoolS1{true}}, true}, - {"[section]\nbool=false", &cBool{cBoolS1{false}}, true}, - {"[section]\nbool=no", &cBool{cBoolS1{false}}, true}, - {"[section]\nbool=off", &cBool{cBoolS1{false}}, true}, - {"[section]\nbool=0", &cBool{cBoolS1{false}}, true}, - {"[section]\nbool=NO", &cBool{cBoolS1{false}}, true}, - // "blank" value handled as true - {"[section]\nbool", &cBool{cBoolS1{true}}, true}, - // bool parse errors - {"[section]\nbool=maybe", &cBool{}, false}, - {"[section]\nbool=t", &cBool{}, false}, - {"[section]\nbool=truer", &cBool{}, false}, - {"[section]\nbool=2", &cBool{}, false}, - {"[section]\nbool=-1", &cBool{}, false}, -}}, {"type:numeric", []readtest{ - {"[section]\nint=0", &cBasic{Section: cBasicS1{Int: 0}}, true}, - {"[section]\nint=1", &cBasic{Section: cBasicS1{Int: 1}}, true}, - {"[section]\nint=-1", &cBasic{Section: cBasicS1{Int: -1}}, true}, - {"[section]\nint=0.2", &cBasic{}, false}, - {"[section]\nint=1e3", &cBasic{}, false}, - // primitive [u]int(|8|16|32|64) and big.Int is parsed as dec or hex (not octal) - {"[n1]\nint=010", &cNum{N1: cNumS1{Int: 10}}, true}, - {"[n1]\nint=0x10", &cNum{N1: cNumS1{Int: 0x10}}, true}, - {"[n1]\nbig=1", &cNum{N1: cNumS1{Big: big.NewInt(1)}}, true}, - {"[n1]\nbig=0x10", &cNum{N1: cNumS1{Big: big.NewInt(0x10)}}, true}, - {"[n1]\nbig=010", &cNum{N1: cNumS1{Big: big.NewInt(10)}}, true}, - {"[n2]\nmultiint=010", &cNum{N2: cNumS2{MultiInt: []int{10}}}, true}, - {"[n2]\nmultibig=010", &cNum{N2: cNumS2{MultiBig: []*big.Int{big.NewInt(10)}}}, true}, - // set parse mode for int types via struct tag - {"[n1]\nintdho=010", &cNum{N1: cNumS1{IntDHO: 010}}, true}, - // octal allowed for named type - {"[n3]\nfilemode=0777", &cNum{N3: cNumS3{FileMode: 0777}}, true}, -}}, {"type:textUnmarshaler", []readtest{ - {"[section]\nname=value", &cTxUnm{Section: cTxUnmS1{Name: "value"}}, true}, - {"[section]\nname=error", &cTxUnm{}, false}, -}}, -} - -func TestReadStringInto(t *testing.T) { - for _, tg := range readtests { - for i, tt := range tg.tests { - id := fmt.Sprintf("%s:%d", tg.group, i) - testRead(t, id, tt) - } - } -} - -func TestReadStringIntoMultiBlankPreset(t *testing.T) { - tt := readtest{"\n[m1]\nmulti\nmulti=value1\nmulti=value2", &cMulti{M1: cMultiS1{[]string{"value1", "value2"}}}, true} - cfg := &cMulti{M1: cMultiS1{[]string{"preset1", "preset2"}}} - testReadInto(t, "multi:blank", tt, cfg) -} - -func testRead(t *testing.T, id string, tt readtest) { - // get the type of the expected result - restyp := reflect.TypeOf(tt.exp).Elem() - // create a new instance to hold the actual result - res := reflect.New(restyp).Interface() - testReadInto(t, id, tt, res) -} - -func testReadInto(t *testing.T, id string, tt readtest, res interface{}) { - err := ReadStringInto(res, tt.gcfg) - if tt.ok { - if err != nil { - t.Errorf("%s fail: got error %v, wanted ok", id, err) - return - } else if !reflect.DeepEqual(res, tt.exp) { - t.Errorf("%s fail: got value %#v, wanted value %#v", id, res, tt.exp) - return - } - if !testing.Short() { - t.Logf("%s pass: got value %#v", id, res) - } - } else { // !tt.ok - if err == nil { - t.Errorf("%s fail: got value %#v, wanted error", id, res) - return - } - if !testing.Short() { - t.Logf("%s pass: got error %v", id, err) - } - } -} - -func TestReadFileInto(t *testing.T) { - res := &struct{ Section struct{ Name string } }{} - err := ReadFileInto(res, "testdata/gcfg_test.gcfg") - if err != nil { - t.Errorf(err.Error()) - } - if "value" != res.Section.Name { - t.Errorf("got %q, wanted %q", res.Section.Name, "value") - } -} - -func TestReadFileIntoUnicode(t *testing.T) { - res := &struct{ X甲 struct{ X乙 string } }{} - err := ReadFileInto(res, "testdata/gcfg_unicode_test.gcfg") - if err != nil { - t.Errorf(err.Error()) - } - if "丙" != res.X甲.X乙 { - t.Errorf("got %q, wanted %q", res.X甲.X乙, "丙") - } -} diff --git a/vendor/gopkg.in/gcfg.v1/scanner/errors.go b/vendor/gopkg.in/gcfg.v1/scanner/errors.go deleted file mode 100644 index 1a3c0f6..0000000 --- a/vendor/gopkg.in/gcfg.v1/scanner/errors.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package scanner - -import ( - "fmt" - "io" - "sort" -) - -import ( - "gopkg.in/gcfg.v1/token" -) - -// In an ErrorList, an error is represented by an *Error. -// The position Pos, if valid, points to the beginning of -// the offending token, and the error condition is described -// by Msg. -// -type Error struct { - Pos token.Position - Msg string -} - -// Error implements the error interface. -func (e Error) Error() string { - if e.Pos.Filename != "" || e.Pos.IsValid() { - // don't print "" - // TODO(gri) reconsider the semantics of Position.IsValid - return e.Pos.String() + ": " + e.Msg - } - return e.Msg -} - -// ErrorList is a list of *Errors. -// The zero value for an ErrorList is an empty ErrorList ready to use. -// -type ErrorList []*Error - -// Add adds an Error with given position and error message to an ErrorList. -func (p *ErrorList) Add(pos token.Position, msg string) { - *p = append(*p, &Error{pos, msg}) -} - -// Reset resets an ErrorList to no errors. -func (p *ErrorList) Reset() { *p = (*p)[0:0] } - -// ErrorList implements the sort Interface. -func (p ErrorList) Len() int { return len(p) } -func (p ErrorList) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -func (p ErrorList) Less(i, j int) bool { - e := &p[i].Pos - f := &p[j].Pos - if e.Filename < f.Filename { - return true - } - if e.Filename == f.Filename { - return e.Offset < f.Offset - } - return false -} - -// Sort sorts an ErrorList. *Error entries are sorted by position, -// other errors are sorted by error message, and before any *Error -// entry. -// -func (p ErrorList) Sort() { - sort.Sort(p) -} - -// RemoveMultiples sorts an ErrorList and removes all but the first error per line. -func (p *ErrorList) RemoveMultiples() { - sort.Sort(p) - var last token.Position // initial last.Line is != any legal error line - i := 0 - for _, e := range *p { - if e.Pos.Filename != last.Filename || e.Pos.Line != last.Line { - last = e.Pos - (*p)[i] = e - i++ - } - } - (*p) = (*p)[0:i] -} - -// An ErrorList implements the error interface. -func (p ErrorList) Error() string { - switch len(p) { - case 0: - return "no errors" - case 1: - return p[0].Error() - } - return fmt.Sprintf("%s (and %d more errors)", p[0], len(p)-1) -} - -// Err returns an error equivalent to this error list. -// If the list is empty, Err returns nil. -func (p ErrorList) Err() error { - if len(p) == 0 { - return nil - } - return p -} - -// PrintError is a utility function that prints a list of errors to w, -// one error per line, if the err parameter is an ErrorList. Otherwise -// it prints the err string. -// -func PrintError(w io.Writer, err error) { - if list, ok := err.(ErrorList); ok { - for _, e := range list { - fmt.Fprintf(w, "%s\n", e) - } - } else if err != nil { - fmt.Fprintf(w, "%s\n", err) - } -} diff --git a/vendor/gopkg.in/gcfg.v1/scanner/example_test.go b/vendor/gopkg.in/gcfg.v1/scanner/example_test.go deleted file mode 100644 index ce08e9c..0000000 --- a/vendor/gopkg.in/gcfg.v1/scanner/example_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package scanner_test - -import ( - "fmt" -) - -import ( - "gopkg.in/gcfg.v1/scanner" - "gopkg.in/gcfg.v1/token" -) - -func ExampleScanner_Scan() { - // src is the input that we want to tokenize. - src := []byte(`[profile "A"] -color = blue ; Comment`) - - // Initialize the scanner. - var s scanner.Scanner - fset := token.NewFileSet() // positions are relative to fset - file := fset.AddFile("", fset.Base(), len(src)) // register input "file" - s.Init(file, src, nil /* no error handler */, scanner.ScanComments) - - // Repeated calls to Scan yield the token sequence found in the input. - for { - pos, tok, lit := s.Scan() - if tok == token.EOF { - break - } - fmt.Printf("%s\t%q\t%q\n", fset.Position(pos), tok, lit) - } - - // output: - // 1:1 "[" "" - // 1:2 "IDENT" "profile" - // 1:10 "STRING" "\"A\"" - // 1:13 "]" "" - // 1:14 "\n" "" - // 2:1 "IDENT" "color" - // 2:7 "=" "" - // 2:9 "STRING" "blue" - // 2:14 "COMMENT" "; Comment" -} diff --git a/vendor/gopkg.in/gcfg.v1/scanner/scanner.go b/vendor/gopkg.in/gcfg.v1/scanner/scanner.go deleted file mode 100644 index 1ec8e89..0000000 --- a/vendor/gopkg.in/gcfg.v1/scanner/scanner.go +++ /dev/null @@ -1,342 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package scanner implements a scanner for gcfg configuration text. -// It takes a []byte as source which can then be tokenized -// through repeated calls to the Scan method. -// -// Note that the API for the scanner package may change to accommodate new -// features or implementation changes in gcfg. -// -package scanner - -import ( - "fmt" - "path/filepath" - "unicode" - "unicode/utf8" - - "gopkg.in/gcfg.v1/token" -) - -var RelaxedScannerMode = false - -// An ErrorHandler may be provided to Scanner.Init. If a syntax error is -// encountered and a handler was installed, the handler is called with a -// position and an error message. The position points to the beginning of -// the offending token. -// -type ErrorHandler func(pos token.Position, msg string) - -// A Scanner holds the scanner's internal state while processing -// a given text. It can be allocated as part of another data -// structure but must be initialized via Init before use. -// -type Scanner struct { - // immutable state - file *token.File // source file handle - dir string // directory portion of file.Name() - src []byte // source - err ErrorHandler // error reporting; or nil - mode Mode // scanning mode - - // scanning state - ch rune // current character - offset int // character offset - rdOffset int // reading offset (position after current character) - lineOffset int // current line offset - nextVal bool // next token is expected to be a value - - // public state - ok to modify - ErrorCount int // number of errors encountered -} - -// Read the next Unicode char into s.ch. -// s.ch < 0 means end-of-file. -// -func (s *Scanner) next() { - if s.rdOffset < len(s.src) { - s.offset = s.rdOffset - if s.ch == '\n' { - s.lineOffset = s.offset - s.file.AddLine(s.offset) - } - r, w := rune(s.src[s.rdOffset]), 1 - switch { - case r == 0: - s.error(s.offset, "illegal character NUL") - case r >= 0x80: - // not ASCII - r, w = utf8.DecodeRune(s.src[s.rdOffset:]) - if r == utf8.RuneError && w == 1 { - s.error(s.offset, "illegal UTF-8 encoding") - } - } - s.rdOffset += w - s.ch = r - } else { - s.offset = len(s.src) - if s.ch == '\n' { - s.lineOffset = s.offset - s.file.AddLine(s.offset) - } - s.ch = -1 // eof - } -} - -// A mode value is a set of flags (or 0). -// They control scanner behavior. -// -type Mode uint - -const ( - ScanComments Mode = 1 << iota // return comments as COMMENT tokens -) - -// Init prepares the scanner s to tokenize the text src by setting the -// scanner at the beginning of src. The scanner uses the file set file -// for position information and it adds line information for each line. -// It is ok to re-use the same file when re-scanning the same file as -// line information which is already present is ignored. Init causes a -// panic if the file size does not match the src size. -// -// Calls to Scan will invoke the error handler err if they encounter a -// syntax error and err is not nil. Also, for each error encountered, -// the Scanner field ErrorCount is incremented by one. The mode parameter -// determines how comments are handled. -// -// Note that Init may call err if there is an error in the first character -// of the file. -// -func (s *Scanner) Init(file *token.File, src []byte, err ErrorHandler, mode Mode) { - // Explicitly initialize all fields since a scanner may be reused. - if file.Size() != len(src) { - panic(fmt.Sprintf("file size (%d) does not match src len (%d)", file.Size(), len(src))) - } - s.file = file - s.dir, _ = filepath.Split(file.Name()) - s.src = src - s.err = err - s.mode = mode - - s.ch = ' ' - s.offset = 0 - s.rdOffset = 0 - s.lineOffset = 0 - s.ErrorCount = 0 - s.nextVal = false - - s.next() -} - -func (s *Scanner) error(offs int, msg string) { - if s.err != nil { - s.err(s.file.Position(s.file.Pos(offs)), msg) - } - s.ErrorCount++ -} - -func (s *Scanner) scanComment() string { - // initial [;#] already consumed - offs := s.offset - 1 // position of initial [;#] - - for s.ch != '\n' && s.ch >= 0 { - s.next() - } - return string(s.src[offs:s.offset]) -} - -func isLetter(ch rune) bool { - return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch) -} - -func isDigit(ch rune) bool { - return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch) -} - -func (s *Scanner) scanIdentifier() string { - offs := s.offset - for isLetter(s.ch) || isDigit(s.ch) || s.ch == '-' { - s.next() - } - return string(s.src[offs:s.offset]) -} - -func (s *Scanner) scanEscape(val bool) { - offs := s.offset - ch := s.ch - s.next() // always make progress - switch ch { - case '\\', '"': - // ok - case 'n', 't': - if val { - break // ok - } - fallthrough - default: - s.error(offs, "unknown escape sequence") - } -} - -func (s *Scanner) scanString() string { - // '"' opening already consumed - offs := s.offset - 1 - - for s.ch != '"' { - ch := s.ch - s.next() - if ch == '\n' || ch < 0 { - s.error(offs, "string not terminated") - break - } - if ch == '\\' { - s.scanEscape(false) - } - } - - s.next() - - return string(s.src[offs:s.offset]) -} - -func stripCR(b []byte) []byte { - c := make([]byte, len(b)) - i := 0 - for _, ch := range b { - if ch != '\r' { - c[i] = ch - i++ - } - } - return c[:i] -} - -func (s *Scanner) scanValString() string { - offs := s.offset - - hasCR := false - end := offs - inQuote := false -loop: - for inQuote || s.ch >= 0 && s.ch != '\n' && s.ch != ';' && s.ch != '#' { - ch := s.ch - s.next() - switch { - case inQuote && ch == '\\': - s.scanEscape(true) - case !inQuote && ch == '\\': - if s.ch == '\r' { - hasCR = true - s.next() - } - if s.ch != '\n' && !RelaxedScannerMode { - s.error(offs, "unquoted '\\' must be followed by new line") - break loop - } - s.next() - case ch == '"': - inQuote = !inQuote - case ch == '\r': - hasCR = true - case ch < 0 || inQuote && ch == '\n': - s.error(offs, "string not terminated") - break loop - } - if inQuote || !isWhiteSpace(ch) { - end = s.offset - } - } - - lit := s.src[offs:end] - if hasCR { - lit = stripCR(lit) - } - - return string(lit) -} - -func isWhiteSpace(ch rune) bool { - return ch == ' ' || ch == '\t' || ch == '\r' -} - -func (s *Scanner) skipWhitespace() { - for isWhiteSpace(s.ch) { - s.next() - } -} - -// Scan scans the next token and returns the token position, the token, -// and its literal string if applicable. The source end is indicated by -// token.EOF. -// -// If the returned token is a literal (token.IDENT, token.STRING) or -// token.COMMENT, the literal string has the corresponding value. -// -// If the returned token is token.ILLEGAL, the literal string is the -// offending character. -// -// In all other cases, Scan returns an empty literal string. -// -// For more tolerant parsing, Scan will return a valid token if -// possible even if a syntax error was encountered. Thus, even -// if the resulting token sequence contains no illegal tokens, -// a client may not assume that no error occurred. Instead it -// must check the scanner's ErrorCount or the number of calls -// of the error handler, if there was one installed. -// -// Scan adds line information to the file added to the file -// set with Init. Token positions are relative to that file -// and thus relative to the file set. -// -func (s *Scanner) Scan() (pos token.Pos, tok token.Token, lit string) { -scanAgain: - s.skipWhitespace() - - // current token start - pos = s.file.Pos(s.offset) - - // determine token value - switch ch := s.ch; { - case s.nextVal: - lit = s.scanValString() - tok = token.STRING - s.nextVal = false - case isLetter(ch): - lit = s.scanIdentifier() - tok = token.IDENT - default: - s.next() // always make progress - switch ch { - case -1: - tok = token.EOF - case '\n': - tok = token.EOL - case '"': - tok = token.STRING - lit = s.scanString() - case '[': - tok = token.LBRACK - case ']': - tok = token.RBRACK - case ';', '#': - // comment - lit = s.scanComment() - if s.mode&ScanComments == 0 { - // skip comment - goto scanAgain - } - tok = token.COMMENT - case '=': - tok = token.ASSIGN - s.nextVal = true - default: - s.error(s.file.Offset(pos), fmt.Sprintf("illegal character %#U", ch)) - tok = token.ILLEGAL - lit = string(ch) - } - } - - return -} diff --git a/vendor/gopkg.in/gcfg.v1/scanner/scanner_test.go b/vendor/gopkg.in/gcfg.v1/scanner/scanner_test.go deleted file mode 100644 index bef219d..0000000 --- a/vendor/gopkg.in/gcfg.v1/scanner/scanner_test.go +++ /dev/null @@ -1,417 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package scanner - -import ( - "os" - "strings" - "testing" -) - -import ( - "gopkg.in/gcfg.v1/token" -) - -var fset = token.NewFileSet() - -const /* class */ ( - special = iota - literal - operator -) - -func tokenclass(tok token.Token) int { - switch { - case tok.IsLiteral(): - return literal - case tok.IsOperator(): - return operator - } - return special -} - -type elt struct { - tok token.Token - lit string - class int - pre string - suf string -} - -var tokens = [...]elt{ - // Special tokens - {token.COMMENT, "; a comment", special, "", "\n"}, - {token.COMMENT, "# a comment", special, "", "\n"}, - - // Operators and delimiters - {token.ASSIGN, "=", operator, "", "value"}, - {token.LBRACK, "[", operator, "", ""}, - {token.RBRACK, "]", operator, "", ""}, - {token.EOL, "\n", operator, "", ""}, - - // Identifiers - {token.IDENT, "foobar", literal, "", ""}, - {token.IDENT, "a۰۱۸", literal, "", ""}, - {token.IDENT, "foo६४", literal, "", ""}, - {token.IDENT, "bar9876", literal, "", ""}, - {token.IDENT, "foo-bar", literal, "", ""}, - {token.IDENT, "foo", literal, ";\n", ""}, - // String literals (subsection names) - {token.STRING, `"foobar"`, literal, "", ""}, - {token.STRING, `"\""`, literal, "", ""}, - // String literals (values) - {token.STRING, `"\n"`, literal, "=", ""}, - {token.STRING, `"foobar"`, literal, "=", ""}, - {token.STRING, `"foo\nbar"`, literal, "=", ""}, - {token.STRING, `"foo\"bar"`, literal, "=", ""}, - {token.STRING, `"foo\\bar"`, literal, "=", ""}, - {token.STRING, `"foobar"`, literal, "=", ""}, - {token.STRING, `"foobar"`, literal, "= ", ""}, - {token.STRING, `"foobar"`, literal, "=", "\n"}, - {token.STRING, `"foobar"`, literal, "=", ";"}, - {token.STRING, `"foobar"`, literal, "=", " ;"}, - {token.STRING, `"foobar"`, literal, "=", "#"}, - {token.STRING, `"foobar"`, literal, "=", " #"}, - {token.STRING, "foobar", literal, "=", ""}, - {token.STRING, "foobar", literal, "= ", ""}, - {token.STRING, "foobar", literal, "=", " "}, - {token.STRING, `"foo" "bar"`, literal, "=", " "}, - {token.STRING, "foo\\\nbar", literal, "=", ""}, - {token.STRING, "foo\\\r\nbar", literal, "=", ""}, -} - -const whitespace = " \t \n\n\n" // to separate tokens - -var source = func() []byte { - var src []byte - for _, t := range tokens { - src = append(src, t.pre...) - src = append(src, t.lit...) - src = append(src, t.suf...) - src = append(src, whitespace...) - } - return src -}() - -func newlineCount(s string) int { - n := 0 - for i := 0; i < len(s); i++ { - if s[i] == '\n' { - n++ - } - } - return n -} - -func checkPos(t *testing.T, lit string, p token.Pos, expected token.Position) { - pos := fset.Position(p) - if pos.Filename != expected.Filename { - t.Errorf("bad filename for %q: got %s, expected %s", lit, pos.Filename, expected.Filename) - } - if pos.Offset != expected.Offset { - t.Errorf("bad position for %q: got %d, expected %d", lit, pos.Offset, expected.Offset) - } - if pos.Line != expected.Line { - t.Errorf("bad line for %q: got %d, expected %d", lit, pos.Line, expected.Line) - } - if pos.Column != expected.Column { - t.Errorf("bad column for %q: got %d, expected %d", lit, pos.Column, expected.Column) - } -} - -// Verify that calling Scan() provides the correct results. -func TestScan(t *testing.T) { - // make source - src_linecount := newlineCount(string(source)) - whitespace_linecount := newlineCount(whitespace) - - index := 0 - - // error handler - eh := func(_ token.Position, msg string) { - t.Errorf("%d: error handler called (msg = %s)", index, msg) - } - - // verify scan - var s Scanner - s.Init(fset.AddFile("", fset.Base(), len(source)), source, eh, ScanComments) - // epos is the expected position - epos := token.Position{ - Filename: "", - Offset: 0, - Line: 1, - Column: 1, - } - for { - pos, tok, lit := s.Scan() - if lit == "" { - // no literal value for non-literal tokens - lit = tok.String() - } - e := elt{token.EOF, "", special, "", ""} - if index < len(tokens) { - e = tokens[index] - } - if tok == token.EOF { - lit = "" - epos.Line = src_linecount - epos.Column = 2 - } - if e.pre != "" && strings.ContainsRune("=;#", rune(e.pre[0])) { - epos.Column = 1 - checkPos(t, lit, pos, epos) - var etok token.Token - if e.pre[0] == '=' { - etok = token.ASSIGN - } else { - etok = token.COMMENT - } - if tok != etok { - t.Errorf("bad token for %q: got %q, expected %q", lit, tok, etok) - } - pos, tok, lit = s.Scan() - } - epos.Offset += len(e.pre) - if tok != token.EOF { - epos.Column = 1 + len(e.pre) - } - if e.pre != "" && e.pre[len(e.pre)-1] == '\n' { - epos.Offset-- - epos.Column-- - checkPos(t, lit, pos, epos) - if tok != token.EOL { - t.Errorf("bad token for %q: got %q, expected %q", lit, tok, token.EOL) - } - epos.Line++ - epos.Offset++ - epos.Column = 1 - pos, tok, lit = s.Scan() - } - checkPos(t, lit, pos, epos) - if tok != e.tok { - t.Errorf("bad token for %q: got %q, expected %q", lit, tok, e.tok) - } - if e.tok.IsLiteral() { - // no CRs in value string literals - elit := e.lit - if strings.ContainsRune(e.pre, '=') { - elit = string(stripCR([]byte(elit))) - epos.Offset += len(e.lit) - len(lit) // correct position - } - if lit != elit { - t.Errorf("bad literal for %q: got %q, expected %q", lit, lit, elit) - } - } - if tokenclass(tok) != e.class { - t.Errorf("bad class for %q: got %d, expected %d", lit, tokenclass(tok), e.class) - } - epos.Offset += len(lit) + len(e.suf) + len(whitespace) - epos.Line += newlineCount(lit) + newlineCount(e.suf) + whitespace_linecount - index++ - if tok == token.EOF { - break - } - if e.suf == "value" { - pos, tok, lit = s.Scan() - if tok != token.STRING { - t.Errorf("bad token for %q: got %q, expected %q", lit, tok, token.STRING) - } - } else if strings.ContainsRune(e.suf, ';') || strings.ContainsRune(e.suf, '#') { - pos, tok, lit = s.Scan() - if tok != token.COMMENT { - t.Errorf("bad token for %q: got %q, expected %q", lit, tok, token.COMMENT) - } - } - // skip EOLs - for i := 0; i < whitespace_linecount+newlineCount(e.suf); i++ { - pos, tok, lit = s.Scan() - if tok != token.EOL { - t.Errorf("bad token for %q: got %q, expected %q", lit, tok, token.EOL) - } - } - } - if s.ErrorCount != 0 { - t.Errorf("found %d errors", s.ErrorCount) - } -} - -func TestScanValStringEOF(t *testing.T) { - var s Scanner - src := "= value" - f := fset.AddFile("src", fset.Base(), len(src)) - s.Init(f, []byte(src), nil, 0) - s.Scan() // = - s.Scan() // value - _, tok, _ := s.Scan() // EOF - if tok != token.EOF { - t.Errorf("bad token: got %s, expected %s", tok, token.EOF) - } - if s.ErrorCount > 0 { - t.Error("scanning error") - } -} - -// Verify that initializing the same scanner more then once works correctly. -func TestInit(t *testing.T) { - var s Scanner - - // 1st init - src1 := "\nname = value" - f1 := fset.AddFile("src1", fset.Base(), len(src1)) - s.Init(f1, []byte(src1), nil, 0) - if f1.Size() != len(src1) { - t.Errorf("bad file size: got %d, expected %d", f1.Size(), len(src1)) - } - s.Scan() // \n - s.Scan() // name - _, tok, _ := s.Scan() // = - if tok != token.ASSIGN { - t.Errorf("bad token: got %s, expected %s", tok, token.ASSIGN) - } - - // 2nd init - src2 := "[section]" - f2 := fset.AddFile("src2", fset.Base(), len(src2)) - s.Init(f2, []byte(src2), nil, 0) - if f2.Size() != len(src2) { - t.Errorf("bad file size: got %d, expected %d", f2.Size(), len(src2)) - } - _, tok, _ = s.Scan() // [ - if tok != token.LBRACK { - t.Errorf("bad token: got %s, expected %s", tok, token.LBRACK) - } - - if s.ErrorCount != 0 { - t.Errorf("found %d errors", s.ErrorCount) - } -} - -func TestStdErrorHandler(t *testing.T) { - const src = "@\n" + // illegal character, cause an error - "@ @\n" // two errors on the same line - - var list ErrorList - eh := func(pos token.Position, msg string) { list.Add(pos, msg) } - - var s Scanner - s.Init(fset.AddFile("File1", fset.Base(), len(src)), []byte(src), eh, 0) - for { - if _, tok, _ := s.Scan(); tok == token.EOF { - break - } - } - - if len(list) != s.ErrorCount { - t.Errorf("found %d errors, expected %d", len(list), s.ErrorCount) - } - - if len(list) != 3 { - t.Errorf("found %d raw errors, expected 3", len(list)) - PrintError(os.Stderr, list) - } - - list.Sort() - if len(list) != 3 { - t.Errorf("found %d sorted errors, expected 3", len(list)) - PrintError(os.Stderr, list) - } - - list.RemoveMultiples() - if len(list) != 2 { - t.Errorf("found %d one-per-line errors, expected 2", len(list)) - PrintError(os.Stderr, list) - } -} - -type errorCollector struct { - cnt int // number of errors encountered - msg string // last error message encountered - pos token.Position // last error position encountered -} - -func checkError(t *testing.T, src string, tok token.Token, pos int, err string) { - var s Scanner - var h errorCollector - eh := func(pos token.Position, msg string) { - h.cnt++ - h.msg = msg - h.pos = pos - } - s.Init(fset.AddFile("", fset.Base(), len(src)), []byte(src), eh, ScanComments) - if src[0] == '=' { - _, _, _ = s.Scan() - } - _, tok0, _ := s.Scan() - _, tok1, _ := s.Scan() - if tok0 != tok { - t.Errorf("%q: got %s, expected %s", src, tok0, tok) - } - if tok1 != token.EOF { - t.Errorf("%q: got %s, expected EOF", src, tok1) - } - cnt := 0 - if err != "" { - cnt = 1 - } - if h.cnt != cnt { - t.Errorf("%q: got cnt %d, expected %d", src, h.cnt, cnt) - } - if h.msg != err { - t.Errorf("%q: got msg %q, expected %q", src, h.msg, err) - } - if h.pos.Offset != pos { - t.Errorf("%q: got offset %d, expected %d", src, h.pos.Offset, pos) - } -} - -var errors = []struct { - src string - tok token.Token - pos int - err string -}{ - {"\a", token.ILLEGAL, 0, "illegal character U+0007"}, - {"/", token.ILLEGAL, 0, "illegal character U+002F '/'"}, - {"_", token.ILLEGAL, 0, "illegal character U+005F '_'"}, - {`…`, token.ILLEGAL, 0, "illegal character U+2026 '…'"}, - {`""`, token.STRING, 0, ""}, - {`"`, token.STRING, 0, "string not terminated"}, - {"\"\n", token.STRING, 0, "string not terminated"}, - {`="`, token.STRING, 1, "string not terminated"}, - {"=\"\n", token.STRING, 1, "string not terminated"}, - {"=\\", token.STRING, 1, "unquoted '\\' must be followed by new line"}, - {"=\\\r", token.STRING, 1, "unquoted '\\' must be followed by new line"}, - {`"\z"`, token.STRING, 2, "unknown escape sequence"}, - {`"\a"`, token.STRING, 2, "unknown escape sequence"}, - {`"\b"`, token.STRING, 2, "unknown escape sequence"}, - {`"\f"`, token.STRING, 2, "unknown escape sequence"}, - {`"\r"`, token.STRING, 2, "unknown escape sequence"}, - {`"\t"`, token.STRING, 2, "unknown escape sequence"}, - {`"\v"`, token.STRING, 2, "unknown escape sequence"}, - {`"\0"`, token.STRING, 2, "unknown escape sequence"}, -} - -func TestScanErrors(t *testing.T) { - for _, e := range errors { - checkError(t, e.src, e.tok, e.pos, e.err) - } -} - -func BenchmarkScan(b *testing.B) { - b.StopTimer() - fset := token.NewFileSet() - file := fset.AddFile("", fset.Base(), len(source)) - var s Scanner - b.StartTimer() - for i := b.N - 1; i >= 0; i-- { - s.Init(file, source, nil, ScanComments) - for { - _, tok, _ := s.Scan() - if tok == token.EOF { - break - } - } - } -} diff --git a/vendor/gopkg.in/gcfg.v1/set.go b/vendor/gopkg.in/gcfg.v1/set.go deleted file mode 100644 index e1b9904..0000000 --- a/vendor/gopkg.in/gcfg.v1/set.go +++ /dev/null @@ -1,301 +0,0 @@ -package gcfg - -import ( - "fmt" - "math/big" - "reflect" - "strings" - "unicode" - "unicode/utf8" - - "gopkg.in/gcfg.v1/types" -) - -type tag struct { - ident string - intMode string -} - -var RelaxedParserMode = false - -func newTag(ts string) tag { - t := tag{} - s := strings.Split(ts, ",") - t.ident = s[0] - for _, tse := range s[1:] { - if strings.HasPrefix(tse, "int=") { - t.intMode = tse[len("int="):] - } - } - return t -} - -func fieldFold(v reflect.Value, name string) (reflect.Value, tag) { - var n string - r0, _ := utf8.DecodeRuneInString(name) - if unicode.IsLetter(r0) && !unicode.IsLower(r0) && !unicode.IsUpper(r0) { - n = "X" - } - n += strings.Replace(name, "-", "_", -1) - f, ok := v.Type().FieldByNameFunc(func(fieldName string) bool { - if !v.FieldByName(fieldName).CanSet() { - return false - } - f, _ := v.Type().FieldByName(fieldName) - t := newTag(f.Tag.Get("gcfg")) - if t.ident != "" { - return strings.EqualFold(t.ident, name) - } - return strings.EqualFold(n, fieldName) - }) - if !ok { - return reflect.Value{}, tag{} - } - return v.FieldByName(f.Name), newTag(f.Tag.Get("gcfg")) -} - -type setter func(destp interface{}, blank bool, val string, t tag) error - -var errUnsupportedType = fmt.Errorf("unsupported type") -var errBlankUnsupported = fmt.Errorf("blank value not supported for type") - -var setters = []setter{ - typeSetter, textUnmarshalerSetter, kindSetter, scanSetter, -} - -func textUnmarshalerSetter(d interface{}, blank bool, val string, t tag) error { - dtu, ok := d.(textUnmarshaler) - if !ok { - return errUnsupportedType - } - if blank { - return errBlankUnsupported - } - return dtu.UnmarshalText([]byte(val)) -} - -func boolSetter(d interface{}, blank bool, val string, t tag) error { - if blank { - reflect.ValueOf(d).Elem().Set(reflect.ValueOf(true)) - return nil - } - b, err := types.ParseBool(val) - if err == nil { - reflect.ValueOf(d).Elem().Set(reflect.ValueOf(b)) - } - return err -} - -func intMode(mode string) types.IntMode { - var m types.IntMode - if strings.ContainsAny(mode, "dD") { - m |= types.Dec - } - if strings.ContainsAny(mode, "hH") { - m |= types.Hex - } - if strings.ContainsAny(mode, "oO") { - m |= types.Oct - } - return m -} - -var typeModes = map[reflect.Type]types.IntMode{ - reflect.TypeOf(int(0)): types.Dec | types.Hex, - reflect.TypeOf(int8(0)): types.Dec | types.Hex, - reflect.TypeOf(int16(0)): types.Dec | types.Hex, - reflect.TypeOf(int32(0)): types.Dec | types.Hex, - reflect.TypeOf(int64(0)): types.Dec | types.Hex, - reflect.TypeOf(uint(0)): types.Dec | types.Hex, - reflect.TypeOf(uint8(0)): types.Dec | types.Hex, - reflect.TypeOf(uint16(0)): types.Dec | types.Hex, - reflect.TypeOf(uint32(0)): types.Dec | types.Hex, - reflect.TypeOf(uint64(0)): types.Dec | types.Hex, - // use default mode (allow dec/hex/oct) for uintptr type - reflect.TypeOf(big.Int{}): types.Dec | types.Hex, -} - -func intModeDefault(t reflect.Type) types.IntMode { - m, ok := typeModes[t] - if !ok { - m = types.Dec | types.Hex | types.Oct - } - return m -} - -func intSetter(d interface{}, blank bool, val string, t tag) error { - if blank { - return errBlankUnsupported - } - mode := intMode(t.intMode) - if mode == 0 { - mode = intModeDefault(reflect.TypeOf(d).Elem()) - } - return types.ParseInt(d, val, mode) -} - -func stringSetter(d interface{}, blank bool, val string, t tag) error { - if blank { - return errBlankUnsupported - } - dsp, ok := d.(*string) - if !ok { - return errUnsupportedType - } - *dsp = val - return nil -} - -var kindSetters = map[reflect.Kind]setter{ - reflect.String: stringSetter, - reflect.Bool: boolSetter, - reflect.Int: intSetter, - reflect.Int8: intSetter, - reflect.Int16: intSetter, - reflect.Int32: intSetter, - reflect.Int64: intSetter, - reflect.Uint: intSetter, - reflect.Uint8: intSetter, - reflect.Uint16: intSetter, - reflect.Uint32: intSetter, - reflect.Uint64: intSetter, - reflect.Uintptr: intSetter, -} - -var typeSetters = map[reflect.Type]setter{ - reflect.TypeOf(big.Int{}): intSetter, -} - -func typeSetter(d interface{}, blank bool, val string, tt tag) error { - t := reflect.ValueOf(d).Type().Elem() - setter, ok := typeSetters[t] - if !ok { - return errUnsupportedType - } - return setter(d, blank, val, tt) -} - -func kindSetter(d interface{}, blank bool, val string, tt tag) error { - k := reflect.ValueOf(d).Type().Elem().Kind() - setter, ok := kindSetters[k] - if !ok { - return errUnsupportedType - } - return setter(d, blank, val, tt) -} - -func scanSetter(d interface{}, blank bool, val string, tt tag) error { - if blank { - return errBlankUnsupported - } - return types.ScanFully(d, val, 'v') -} - -func set(cfg interface{}, sect, sub, name string, blank bool, value string) error { - vPCfg := reflect.ValueOf(cfg) - if vPCfg.Kind() != reflect.Ptr || vPCfg.Elem().Kind() != reflect.Struct { - panic(fmt.Errorf("config must be a pointer to a struct")) - } - vCfg := vPCfg.Elem() - vSect, _ := fieldFold(vCfg, sect) - if !vSect.IsValid() { - if RelaxedParserMode { - return nil - } - return fmt.Errorf("invalid section: section %q", sect) - } - if vSect.Kind() == reflect.Map { - vst := vSect.Type() - if vst.Key().Kind() != reflect.String || - vst.Elem().Kind() != reflect.Ptr || - vst.Elem().Elem().Kind() != reflect.Struct { - panic(fmt.Errorf("map field for section must have string keys and "+ - " pointer-to-struct values: section %q", sect)) - } - if vSect.IsNil() { - vSect.Set(reflect.MakeMap(vst)) - } - k := reflect.ValueOf(sub) - pv := vSect.MapIndex(k) - if !pv.IsValid() { - vType := vSect.Type().Elem().Elem() - pv = reflect.New(vType) - vSect.SetMapIndex(k, pv) - } - vSect = pv.Elem() - } else if vSect.Kind() != reflect.Struct { - panic(fmt.Errorf("field for section must be a map or a struct: "+ - "section %q", sect)) - } else if sub != "" { - return fmt.Errorf("invalid subsection: "+ - "section %q subsection %q", sect, sub) - } - // Empty name is a special value, meaning that only the - // section/subsection object is to be created, with no values set. - if name == "" { - return nil - } - vVar, t := fieldFold(vSect, name) - if !vVar.IsValid() { - if RelaxedParserMode { - return nil - } - return fmt.Errorf("invalid variable: "+ - "section %q subsection %q variable %q", sect, sub, name) - } - // vVal is either single-valued var, or newly allocated value within multi-valued var - var vVal reflect.Value - // multi-value if unnamed slice type - isMulti := vVar.Type().Name() == "" && vVar.Kind() == reflect.Slice || - vVar.Type().Name() == "" && vVar.Kind() == reflect.Ptr && vVar.Type().Elem().Name() == "" && vVar.Type().Elem().Kind() == reflect.Slice - if isMulti && vVar.Kind() == reflect.Ptr { - if vVar.IsNil() { - vVar.Set(reflect.New(vVar.Type().Elem())) - } - vVar = vVar.Elem() - } - if isMulti && blank { - vVar.Set(reflect.Zero(vVar.Type())) - return nil - } - if isMulti { - vVal = reflect.New(vVar.Type().Elem()).Elem() - } else { - vVal = vVar - } - isDeref := vVal.Type().Name() == "" && vVal.Type().Kind() == reflect.Ptr - isNew := isDeref && vVal.IsNil() - // vAddr is address of value to set (dereferenced & allocated as needed) - var vAddr reflect.Value - switch { - case isNew: - vAddr = reflect.New(vVal.Type().Elem()) - case isDeref && !isNew: - vAddr = vVal - default: - vAddr = vVal.Addr() - } - vAddrI := vAddr.Interface() - err, ok := error(nil), false - for _, s := range setters { - err = s(vAddrI, blank, value, t) - if err == nil { - ok = true - break - } - if err != errUnsupportedType { - return err - } - } - if !ok { - // in case all setters returned errUnsupportedType - return err - } - if isNew { // set reference if it was dereferenced and newly allocated - vVal.Set(vAddr) - } - if isMulti { // append if multi-valued - vVar.Set(reflect.Append(vVar, vVal)) - } - return nil -} diff --git a/vendor/gopkg.in/gcfg.v1/testdata/gcfg_test.gcfg b/vendor/gopkg.in/gcfg.v1/testdata/gcfg_test.gcfg deleted file mode 100644 index cddff29..0000000 --- a/vendor/gopkg.in/gcfg.v1/testdata/gcfg_test.gcfg +++ /dev/null @@ -1,3 +0,0 @@ -; Comment line -[section] -name=value # comment diff --git a/vendor/gopkg.in/gcfg.v1/testdata/gcfg_unicode_test.gcfg b/vendor/gopkg.in/gcfg.v1/testdata/gcfg_unicode_test.gcfg deleted file mode 100644 index 3762a20..0000000 --- a/vendor/gopkg.in/gcfg.v1/testdata/gcfg_unicode_test.gcfg +++ /dev/null @@ -1,3 +0,0 @@ -; Comment line -[甲] -乙=丙 # comment diff --git a/vendor/gopkg.in/gcfg.v1/token/position.go b/vendor/gopkg.in/gcfg.v1/token/position.go deleted file mode 100644 index fc45c1e..0000000 --- a/vendor/gopkg.in/gcfg.v1/token/position.go +++ /dev/null @@ -1,435 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// TODO(gri) consider making this a separate package outside the go directory. - -package token - -import ( - "fmt" - "sort" - "sync" -) - -// ----------------------------------------------------------------------------- -// Positions - -// Position describes an arbitrary source position -// including the file, line, and column location. -// A Position is valid if the line number is > 0. -// -type Position struct { - Filename string // filename, if any - Offset int // offset, starting at 0 - Line int // line number, starting at 1 - Column int // column number, starting at 1 (character count) -} - -// IsValid returns true if the position is valid. -func (pos *Position) IsValid() bool { return pos.Line > 0 } - -// String returns a string in one of several forms: -// -// file:line:column valid position with file name -// line:column valid position without file name -// file invalid position with file name -// - invalid position without file name -// -func (pos Position) String() string { - s := pos.Filename - if pos.IsValid() { - if s != "" { - s += ":" - } - s += fmt.Sprintf("%d:%d", pos.Line, pos.Column) - } - if s == "" { - s = "-" - } - return s -} - -// Pos is a compact encoding of a source position within a file set. -// It can be converted into a Position for a more convenient, but much -// larger, representation. -// -// The Pos value for a given file is a number in the range [base, base+size], -// where base and size are specified when adding the file to the file set via -// AddFile. -// -// To create the Pos value for a specific source offset, first add -// the respective file to the current file set (via FileSet.AddFile) -// and then call File.Pos(offset) for that file. Given a Pos value p -// for a specific file set fset, the corresponding Position value is -// obtained by calling fset.Position(p). -// -// Pos values can be compared directly with the usual comparison operators: -// If two Pos values p and q are in the same file, comparing p and q is -// equivalent to comparing the respective source file offsets. If p and q -// are in different files, p < q is true if the file implied by p was added -// to the respective file set before the file implied by q. -// -type Pos int - -// The zero value for Pos is NoPos; there is no file and line information -// associated with it, and NoPos().IsValid() is false. NoPos is always -// smaller than any other Pos value. The corresponding Position value -// for NoPos is the zero value for Position. -// -const NoPos Pos = 0 - -// IsValid returns true if the position is valid. -func (p Pos) IsValid() bool { - return p != NoPos -} - -// ----------------------------------------------------------------------------- -// File - -// A File is a handle for a file belonging to a FileSet. -// A File has a name, size, and line offset table. -// -type File struct { - set *FileSet - name string // file name as provided to AddFile - base int // Pos value range for this file is [base...base+size] - size int // file size as provided to AddFile - - // lines and infos are protected by set.mutex - lines []int - infos []lineInfo -} - -// Name returns the file name of file f as registered with AddFile. -func (f *File) Name() string { - return f.name -} - -// Base returns the base offset of file f as registered with AddFile. -func (f *File) Base() int { - return f.base -} - -// Size returns the size of file f as registered with AddFile. -func (f *File) Size() int { - return f.size -} - -// LineCount returns the number of lines in file f. -func (f *File) LineCount() int { - f.set.mutex.RLock() - n := len(f.lines) - f.set.mutex.RUnlock() - return n -} - -// AddLine adds the line offset for a new line. -// The line offset must be larger than the offset for the previous line -// and smaller than the file size; otherwise the line offset is ignored. -// -func (f *File) AddLine(offset int) { - f.set.mutex.Lock() - if i := len(f.lines); (i == 0 || f.lines[i-1] < offset) && offset < f.size { - f.lines = append(f.lines, offset) - } - f.set.mutex.Unlock() -} - -// SetLines sets the line offsets for a file and returns true if successful. -// The line offsets are the offsets of the first character of each line; -// for instance for the content "ab\nc\n" the line offsets are {0, 3}. -// An empty file has an empty line offset table. -// Each line offset must be larger than the offset for the previous line -// and smaller than the file size; otherwise SetLines fails and returns -// false. -// -func (f *File) SetLines(lines []int) bool { - // verify validity of lines table - size := f.size - for i, offset := range lines { - if i > 0 && offset <= lines[i-1] || size <= offset { - return false - } - } - - // set lines table - f.set.mutex.Lock() - f.lines = lines - f.set.mutex.Unlock() - return true -} - -// SetLinesForContent sets the line offsets for the given file content. -func (f *File) SetLinesForContent(content []byte) { - var lines []int - line := 0 - for offset, b := range content { - if line >= 0 { - lines = append(lines, line) - } - line = -1 - if b == '\n' { - line = offset + 1 - } - } - - // set lines table - f.set.mutex.Lock() - f.lines = lines - f.set.mutex.Unlock() -} - -// A lineInfo object describes alternative file and line number -// information (such as provided via a //line comment in a .go -// file) for a given file offset. -type lineInfo struct { - // fields are exported to make them accessible to gob - Offset int - Filename string - Line int -} - -// AddLineInfo adds alternative file and line number information for -// a given file offset. The offset must be larger than the offset for -// the previously added alternative line info and smaller than the -// file size; otherwise the information is ignored. -// -// AddLineInfo is typically used to register alternative position -// information for //line filename:line comments in source files. -// -func (f *File) AddLineInfo(offset int, filename string, line int) { - f.set.mutex.Lock() - if i := len(f.infos); i == 0 || f.infos[i-1].Offset < offset && offset < f.size { - f.infos = append(f.infos, lineInfo{offset, filename, line}) - } - f.set.mutex.Unlock() -} - -// Pos returns the Pos value for the given file offset; -// the offset must be <= f.Size(). -// f.Pos(f.Offset(p)) == p. -// -func (f *File) Pos(offset int) Pos { - if offset > f.size { - panic("illegal file offset") - } - return Pos(f.base + offset) -} - -// Offset returns the offset for the given file position p; -// p must be a valid Pos value in that file. -// f.Offset(f.Pos(offset)) == offset. -// -func (f *File) Offset(p Pos) int { - if int(p) < f.base || int(p) > f.base+f.size { - panic("illegal Pos value") - } - return int(p) - f.base -} - -// Line returns the line number for the given file position p; -// p must be a Pos value in that file or NoPos. -// -func (f *File) Line(p Pos) int { - // TODO(gri) this can be implemented much more efficiently - return f.Position(p).Line -} - -func searchLineInfos(a []lineInfo, x int) int { - return sort.Search(len(a), func(i int) bool { return a[i].Offset > x }) - 1 -} - -// info returns the file name, line, and column number for a file offset. -func (f *File) info(offset int) (filename string, line, column int) { - filename = f.name - if i := searchInts(f.lines, offset); i >= 0 { - line, column = i+1, offset-f.lines[i]+1 - } - if len(f.infos) > 0 { - // almost no files have extra line infos - if i := searchLineInfos(f.infos, offset); i >= 0 { - alt := &f.infos[i] - filename = alt.Filename - if i := searchInts(f.lines, alt.Offset); i >= 0 { - line += alt.Line - i - 1 - } - } - } - return -} - -func (f *File) position(p Pos) (pos Position) { - offset := int(p) - f.base - pos.Offset = offset - pos.Filename, pos.Line, pos.Column = f.info(offset) - return -} - -// Position returns the Position value for the given file position p; -// p must be a Pos value in that file or NoPos. -// -func (f *File) Position(p Pos) (pos Position) { - if p != NoPos { - if int(p) < f.base || int(p) > f.base+f.size { - panic("illegal Pos value") - } - pos = f.position(p) - } - return -} - -// ----------------------------------------------------------------------------- -// FileSet - -// A FileSet represents a set of source files. -// Methods of file sets are synchronized; multiple goroutines -// may invoke them concurrently. -// -type FileSet struct { - mutex sync.RWMutex // protects the file set - base int // base offset for the next file - files []*File // list of files in the order added to the set - last *File // cache of last file looked up -} - -// NewFileSet creates a new file set. -func NewFileSet() *FileSet { - s := new(FileSet) - s.base = 1 // 0 == NoPos - return s -} - -// Base returns the minimum base offset that must be provided to -// AddFile when adding the next file. -// -func (s *FileSet) Base() int { - s.mutex.RLock() - b := s.base - s.mutex.RUnlock() - return b - -} - -// AddFile adds a new file with a given filename, base offset, and file size -// to the file set s and returns the file. Multiple files may have the same -// name. The base offset must not be smaller than the FileSet's Base(), and -// size must not be negative. -// -// Adding the file will set the file set's Base() value to base + size + 1 -// as the minimum base value for the next file. The following relationship -// exists between a Pos value p for a given file offset offs: -// -// int(p) = base + offs -// -// with offs in the range [0, size] and thus p in the range [base, base+size]. -// For convenience, File.Pos may be used to create file-specific position -// values from a file offset. -// -func (s *FileSet) AddFile(filename string, base, size int) *File { - s.mutex.Lock() - defer s.mutex.Unlock() - if base < s.base || size < 0 { - panic("illegal base or size") - } - // base >= s.base && size >= 0 - f := &File{s, filename, base, size, []int{0}, nil} - base += size + 1 // +1 because EOF also has a position - if base < 0 { - panic("token.Pos offset overflow (> 2G of source code in file set)") - } - // add the file to the file set - s.base = base - s.files = append(s.files, f) - s.last = f - return f -} - -// Iterate calls f for the files in the file set in the order they were added -// until f returns false. -// -func (s *FileSet) Iterate(f func(*File) bool) { - for i := 0; ; i++ { - var file *File - s.mutex.RLock() - if i < len(s.files) { - file = s.files[i] - } - s.mutex.RUnlock() - if file == nil || !f(file) { - break - } - } -} - -func searchFiles(a []*File, x int) int { - return sort.Search(len(a), func(i int) bool { return a[i].base > x }) - 1 -} - -func (s *FileSet) file(p Pos) *File { - // common case: p is in last file - if f := s.last; f != nil && f.base <= int(p) && int(p) <= f.base+f.size { - return f - } - // p is not in last file - search all files - if i := searchFiles(s.files, int(p)); i >= 0 { - f := s.files[i] - // f.base <= int(p) by definition of searchFiles - if int(p) <= f.base+f.size { - s.last = f - return f - } - } - return nil -} - -// File returns the file that contains the position p. -// If no such file is found (for instance for p == NoPos), -// the result is nil. -// -func (s *FileSet) File(p Pos) (f *File) { - if p != NoPos { - s.mutex.RLock() - f = s.file(p) - s.mutex.RUnlock() - } - return -} - -// Position converts a Pos in the fileset into a general Position. -func (s *FileSet) Position(p Pos) (pos Position) { - if p != NoPos { - s.mutex.RLock() - if f := s.file(p); f != nil { - pos = f.position(p) - } - s.mutex.RUnlock() - } - return -} - -// ----------------------------------------------------------------------------- -// Helper functions - -func searchInts(a []int, x int) int { - // This function body is a manually inlined version of: - // - // return sort.Search(len(a), func(i int) bool { return a[i] > x }) - 1 - // - // With better compiler optimizations, this may not be needed in the - // future, but at the moment this change improves the go/printer - // benchmark performance by ~30%. This has a direct impact on the - // speed of gofmt and thus seems worthwhile (2011-04-29). - // TODO(gri): Remove this when compilers have caught up. - i, j := 0, len(a) - for i < j { - h := i + (j-i)/2 // avoid overflow when computing h - // i ≤ h < j - if a[h] <= x { - i = h + 1 - } else { - j = h - } - } - return i - 1 -} diff --git a/vendor/gopkg.in/gcfg.v1/token/position_test.go b/vendor/gopkg.in/gcfg.v1/token/position_test.go deleted file mode 100644 index 160107d..0000000 --- a/vendor/gopkg.in/gcfg.v1/token/position_test.go +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package token - -import ( - "fmt" - "testing" -) - -func checkPos(t *testing.T, msg string, p, q Position) { - if p.Filename != q.Filename { - t.Errorf("%s: expected filename = %q; got %q", msg, q.Filename, p.Filename) - } - if p.Offset != q.Offset { - t.Errorf("%s: expected offset = %d; got %d", msg, q.Offset, p.Offset) - } - if p.Line != q.Line { - t.Errorf("%s: expected line = %d; got %d", msg, q.Line, p.Line) - } - if p.Column != q.Column { - t.Errorf("%s: expected column = %d; got %d", msg, q.Column, p.Column) - } -} - -func TestNoPos(t *testing.T) { - if NoPos.IsValid() { - t.Errorf("NoPos should not be valid") - } - var fset *FileSet - checkPos(t, "nil NoPos", fset.Position(NoPos), Position{}) - fset = NewFileSet() - checkPos(t, "fset NoPos", fset.Position(NoPos), Position{}) -} - -var tests = []struct { - filename string - source []byte // may be nil - size int - lines []int -}{ - {"a", []byte{}, 0, []int{}}, - {"b", []byte("01234"), 5, []int{0}}, - {"c", []byte("\n\n\n\n\n\n\n\n\n"), 9, []int{0, 1, 2, 3, 4, 5, 6, 7, 8}}, - {"d", nil, 100, []int{0, 5, 10, 20, 30, 70, 71, 72, 80, 85, 90, 99}}, - {"e", nil, 777, []int{0, 80, 100, 120, 130, 180, 267, 455, 500, 567, 620}}, - {"f", []byte("package p\n\nimport \"fmt\""), 23, []int{0, 10, 11}}, - {"g", []byte("package p\n\nimport \"fmt\"\n"), 24, []int{0, 10, 11}}, - {"h", []byte("package p\n\nimport \"fmt\"\n "), 25, []int{0, 10, 11, 24}}, -} - -func linecol(lines []int, offs int) (int, int) { - prevLineOffs := 0 - for line, lineOffs := range lines { - if offs < lineOffs { - return line, offs - prevLineOffs + 1 - } - prevLineOffs = lineOffs - } - return len(lines), offs - prevLineOffs + 1 -} - -func verifyPositions(t *testing.T, fset *FileSet, f *File, lines []int) { - for offs := 0; offs < f.Size(); offs++ { - p := f.Pos(offs) - offs2 := f.Offset(p) - if offs2 != offs { - t.Errorf("%s, Offset: expected offset %d; got %d", f.Name(), offs, offs2) - } - line, col := linecol(lines, offs) - msg := fmt.Sprintf("%s (offs = %d, p = %d)", f.Name(), offs, p) - checkPos(t, msg, f.Position(f.Pos(offs)), Position{f.Name(), offs, line, col}) - checkPos(t, msg, fset.Position(p), Position{f.Name(), offs, line, col}) - } -} - -func makeTestSource(size int, lines []int) []byte { - src := make([]byte, size) - for _, offs := range lines { - if offs > 0 { - src[offs-1] = '\n' - } - } - return src -} - -func TestPositions(t *testing.T) { - const delta = 7 // a non-zero base offset increment - fset := NewFileSet() - for _, test := range tests { - // verify consistency of test case - if test.source != nil && len(test.source) != test.size { - t.Errorf("%s: inconsistent test case: expected file size %d; got %d", test.filename, test.size, len(test.source)) - } - - // add file and verify name and size - f := fset.AddFile(test.filename, fset.Base()+delta, test.size) - if f.Name() != test.filename { - t.Errorf("expected filename %q; got %q", test.filename, f.Name()) - } - if f.Size() != test.size { - t.Errorf("%s: expected file size %d; got %d", f.Name(), test.size, f.Size()) - } - if fset.File(f.Pos(0)) != f { - t.Errorf("%s: f.Pos(0) was not found in f", f.Name()) - } - - // add lines individually and verify all positions - for i, offset := range test.lines { - f.AddLine(offset) - if f.LineCount() != i+1 { - t.Errorf("%s, AddLine: expected line count %d; got %d", f.Name(), i+1, f.LineCount()) - } - // adding the same offset again should be ignored - f.AddLine(offset) - if f.LineCount() != i+1 { - t.Errorf("%s, AddLine: expected unchanged line count %d; got %d", f.Name(), i+1, f.LineCount()) - } - verifyPositions(t, fset, f, test.lines[0:i+1]) - } - - // add lines with SetLines and verify all positions - if ok := f.SetLines(test.lines); !ok { - t.Errorf("%s: SetLines failed", f.Name()) - } - if f.LineCount() != len(test.lines) { - t.Errorf("%s, SetLines: expected line count %d; got %d", f.Name(), len(test.lines), f.LineCount()) - } - verifyPositions(t, fset, f, test.lines) - - // add lines with SetLinesForContent and verify all positions - src := test.source - if src == nil { - // no test source available - create one from scratch - src = makeTestSource(test.size, test.lines) - } - f.SetLinesForContent(src) - if f.LineCount() != len(test.lines) { - t.Errorf("%s, SetLinesForContent: expected line count %d; got %d", f.Name(), len(test.lines), f.LineCount()) - } - verifyPositions(t, fset, f, test.lines) - } -} - -func TestLineInfo(t *testing.T) { - fset := NewFileSet() - f := fset.AddFile("foo", fset.Base(), 500) - lines := []int{0, 42, 77, 100, 210, 220, 277, 300, 333, 401} - // add lines individually and provide alternative line information - for _, offs := range lines { - f.AddLine(offs) - f.AddLineInfo(offs, "bar", 42) - } - // verify positions for all offsets - for offs := 0; offs <= f.Size(); offs++ { - p := f.Pos(offs) - _, col := linecol(lines, offs) - msg := fmt.Sprintf("%s (offs = %d, p = %d)", f.Name(), offs, p) - checkPos(t, msg, f.Position(f.Pos(offs)), Position{"bar", offs, 42, col}) - checkPos(t, msg, fset.Position(p), Position{"bar", offs, 42, col}) - } -} - -func TestFiles(t *testing.T) { - fset := NewFileSet() - for i, test := range tests { - fset.AddFile(test.filename, fset.Base(), test.size) - j := 0 - fset.Iterate(func(f *File) bool { - if f.Name() != tests[j].filename { - t.Errorf("expected filename = %s; got %s", tests[j].filename, f.Name()) - } - j++ - return true - }) - if j != i+1 { - t.Errorf("expected %d files; got %d", i+1, j) - } - } -} diff --git a/vendor/gopkg.in/gcfg.v1/token/serialize.go b/vendor/gopkg.in/gcfg.v1/token/serialize.go deleted file mode 100644 index 4adc8f9..0000000 --- a/vendor/gopkg.in/gcfg.v1/token/serialize.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package token - -type serializedFile struct { - // fields correspond 1:1 to fields with same (lower-case) name in File - Name string - Base int - Size int - Lines []int - Infos []lineInfo -} - -type serializedFileSet struct { - Base int - Files []serializedFile -} - -// Read calls decode to deserialize a file set into s; s must not be nil. -func (s *FileSet) Read(decode func(interface{}) error) error { - var ss serializedFileSet - if err := decode(&ss); err != nil { - return err - } - - s.mutex.Lock() - s.base = ss.Base - files := make([]*File, len(ss.Files)) - for i := 0; i < len(ss.Files); i++ { - f := &ss.Files[i] - files[i] = &File{s, f.Name, f.Base, f.Size, f.Lines, f.Infos} - } - s.files = files - s.last = nil - s.mutex.Unlock() - - return nil -} - -// Write calls encode to serialize the file set s. -func (s *FileSet) Write(encode func(interface{}) error) error { - var ss serializedFileSet - - s.mutex.Lock() - ss.Base = s.base - files := make([]serializedFile, len(s.files)) - for i, f := range s.files { - files[i] = serializedFile{f.name, f.base, f.size, f.lines, f.infos} - } - ss.Files = files - s.mutex.Unlock() - - return encode(ss) -} diff --git a/vendor/gopkg.in/gcfg.v1/token/serialize_test.go b/vendor/gopkg.in/gcfg.v1/token/serialize_test.go deleted file mode 100644 index 4e925ad..0000000 --- a/vendor/gopkg.in/gcfg.v1/token/serialize_test.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package token - -import ( - "bytes" - "encoding/gob" - "fmt" - "testing" -) - -// equal returns nil if p and q describe the same file set; -// otherwise it returns an error describing the discrepancy. -func equal(p, q *FileSet) error { - if p == q { - // avoid deadlock if p == q - return nil - } - - // not strictly needed for the test - p.mutex.Lock() - q.mutex.Lock() - defer q.mutex.Unlock() - defer p.mutex.Unlock() - - if p.base != q.base { - return fmt.Errorf("different bases: %d != %d", p.base, q.base) - } - - if len(p.files) != len(q.files) { - return fmt.Errorf("different number of files: %d != %d", len(p.files), len(q.files)) - } - - for i, f := range p.files { - g := q.files[i] - if f.set != p { - return fmt.Errorf("wrong fileset for %q", f.name) - } - if g.set != q { - return fmt.Errorf("wrong fileset for %q", g.name) - } - if f.name != g.name { - return fmt.Errorf("different filenames: %q != %q", f.name, g.name) - } - if f.base != g.base { - return fmt.Errorf("different base for %q: %d != %d", f.name, f.base, g.base) - } - if f.size != g.size { - return fmt.Errorf("different size for %q: %d != %d", f.name, f.size, g.size) - } - for j, l := range f.lines { - m := g.lines[j] - if l != m { - return fmt.Errorf("different offsets for %q", f.name) - } - } - for j, l := range f.infos { - m := g.infos[j] - if l.Offset != m.Offset || l.Filename != m.Filename || l.Line != m.Line { - return fmt.Errorf("different infos for %q", f.name) - } - } - } - - // we don't care about .last - it's just a cache - return nil -} - -func checkSerialize(t *testing.T, p *FileSet) { - var buf bytes.Buffer - encode := func(x interface{}) error { - return gob.NewEncoder(&buf).Encode(x) - } - if err := p.Write(encode); err != nil { - t.Errorf("writing fileset failed: %s", err) - return - } - q := NewFileSet() - decode := func(x interface{}) error { - return gob.NewDecoder(&buf).Decode(x) - } - if err := q.Read(decode); err != nil { - t.Errorf("reading fileset failed: %s", err) - return - } - if err := equal(p, q); err != nil { - t.Errorf("filesets not identical: %s", err) - } -} - -func TestSerialization(t *testing.T) { - p := NewFileSet() - checkSerialize(t, p) - // add some files - for i := 0; i < 10; i++ { - f := p.AddFile(fmt.Sprintf("file%d", i), p.Base()+i, i*100) - checkSerialize(t, p) - // add some lines and alternative file infos - line := 1000 - for offs := 0; offs < f.Size(); offs += 40 + i { - f.AddLine(offs) - if offs%7 == 0 { - f.AddLineInfo(offs, fmt.Sprintf("file%d", offs), line) - line += 33 - } - } - checkSerialize(t, p) - } -} diff --git a/vendor/gopkg.in/gcfg.v1/token/token.go b/vendor/gopkg.in/gcfg.v1/token/token.go deleted file mode 100644 index b3c7c83..0000000 --- a/vendor/gopkg.in/gcfg.v1/token/token.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package token defines constants representing the lexical tokens of the gcfg -// configuration syntax and basic operations on tokens (printing, predicates). -// -// Note that the API for the token package may change to accommodate new -// features or implementation changes in gcfg. -// -package token - -import "strconv" - -// Token is the set of lexical tokens of the gcfg configuration syntax. -type Token int - -// The list of tokens. -const ( - // Special tokens - ILLEGAL Token = iota - EOF - COMMENT - - literal_beg - // Identifiers and basic type literals - // (these tokens stand for classes of literals) - IDENT // section-name, variable-name - STRING // "subsection-name", variable value - literal_end - - operator_beg - // Operators and delimiters - ASSIGN // = - LBRACK // [ - RBRACK // ] - EOL // \n - operator_end -) - -var tokens = [...]string{ - ILLEGAL: "ILLEGAL", - - EOF: "EOF", - COMMENT: "COMMENT", - - IDENT: "IDENT", - STRING: "STRING", - - ASSIGN: "=", - LBRACK: "[", - RBRACK: "]", - EOL: "\n", -} - -// String returns the string corresponding to the token tok. -// For operators and delimiters, the string is the actual token character -// sequence (e.g., for the token ASSIGN, the string is "="). For all other -// tokens the string corresponds to the token constant name (e.g. for the -// token IDENT, the string is "IDENT"). -// -func (tok Token) String() string { - s := "" - if 0 <= tok && tok < Token(len(tokens)) { - s = tokens[tok] - } - if s == "" { - s = "token(" + strconv.Itoa(int(tok)) + ")" - } - return s -} - -// Predicates - -// IsLiteral returns true for tokens corresponding to identifiers -// and basic type literals; it returns false otherwise. -// -func (tok Token) IsLiteral() bool { return literal_beg < tok && tok < literal_end } - -// IsOperator returns true for tokens corresponding to operators and -// delimiters; it returns false otherwise. -// -func (tok Token) IsOperator() bool { return operator_beg < tok && tok < operator_end } diff --git a/vendor/gopkg.in/gcfg.v1/types/bool.go b/vendor/gopkg.in/gcfg.v1/types/bool.go deleted file mode 100644 index 8dcae0d..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/bool.go +++ /dev/null @@ -1,23 +0,0 @@ -package types - -// BoolValues defines the name and value mappings for ParseBool. -var BoolValues = map[string]interface{}{ - "true": true, "yes": true, "on": true, "1": true, - "false": false, "no": false, "off": false, "0": false, -} - -var boolParser = func() *EnumParser { - ep := &EnumParser{} - ep.AddVals(BoolValues) - return ep -}() - -// ParseBool parses bool values according to the definitions in BoolValues. -// Parsing is case-insensitive. -func ParseBool(s string) (bool, error) { - v, err := boolParser.Parse(s) - if err != nil { - return false, err - } - return v.(bool), nil -} diff --git a/vendor/gopkg.in/gcfg.v1/types/doc.go b/vendor/gopkg.in/gcfg.v1/types/doc.go deleted file mode 100644 index 9f9c345..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Package types defines helpers for type conversions. -// -// The API for this package is not finalized yet. -package types diff --git a/vendor/gopkg.in/gcfg.v1/types/enum.go b/vendor/gopkg.in/gcfg.v1/types/enum.go deleted file mode 100644 index 1a0c7ef..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/enum.go +++ /dev/null @@ -1,44 +0,0 @@ -package types - -import ( - "fmt" - "reflect" - "strings" -) - -// EnumParser parses "enum" values; i.e. a predefined set of strings to -// predefined values. -type EnumParser struct { - Type string // type name; if not set, use type of first value added - CaseMatch bool // if true, matching of strings is case-sensitive - // PrefixMatch bool - vals map[string]interface{} -} - -// AddVals adds strings and values to an EnumParser. -func (ep *EnumParser) AddVals(vals map[string]interface{}) { - if ep.vals == nil { - ep.vals = make(map[string]interface{}) - } - for k, v := range vals { - if ep.Type == "" { - ep.Type = reflect.TypeOf(v).Name() - } - if !ep.CaseMatch { - k = strings.ToLower(k) - } - ep.vals[k] = v - } -} - -// Parse parses the string and returns the value or an error. -func (ep EnumParser) Parse(s string) (interface{}, error) { - if !ep.CaseMatch { - s = strings.ToLower(s) - } - v, ok := ep.vals[s] - if !ok { - return false, fmt.Errorf("failed to parse %s %#q", ep.Type, s) - } - return v, nil -} diff --git a/vendor/gopkg.in/gcfg.v1/types/enum_test.go b/vendor/gopkg.in/gcfg.v1/types/enum_test.go deleted file mode 100644 index 4bf135e..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/enum_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package types - -import ( - "testing" -) - -func TestEnumParserBool(t *testing.T) { - for _, tt := range []struct { - val string - res bool - ok bool - }{ - {val: "tRuE", res: true, ok: true}, - {val: "False", res: false, ok: true}, - {val: "t", ok: false}, - } { - b, err := ParseBool(tt.val) - switch { - case tt.ok && err != nil: - t.Errorf("%q: got error %v, want %v", tt.val, err, tt.res) - case !tt.ok && err == nil: - t.Errorf("%q: got %v, want error", tt.val, b) - case tt.ok && b != tt.res: - t.Errorf("%q: got %v, want %v", tt.val, b, tt.res) - default: - t.Logf("%q: got %v, %v", tt.val, b, err) - } - } -} diff --git a/vendor/gopkg.in/gcfg.v1/types/int.go b/vendor/gopkg.in/gcfg.v1/types/int.go deleted file mode 100644 index af7e75c..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/int.go +++ /dev/null @@ -1,86 +0,0 @@ -package types - -import ( - "fmt" - "strings" -) - -// An IntMode is a mode for parsing integer values, representing a set of -// accepted bases. -type IntMode uint8 - -// IntMode values for ParseInt; can be combined using binary or. -const ( - Dec IntMode = 1 << iota - Hex - Oct -) - -// String returns a string representation of IntMode; e.g. `IntMode(Dec|Hex)`. -func (m IntMode) String() string { - var modes []string - if m&Dec != 0 { - modes = append(modes, "Dec") - } - if m&Hex != 0 { - modes = append(modes, "Hex") - } - if m&Oct != 0 { - modes = append(modes, "Oct") - } - return "IntMode(" + strings.Join(modes, "|") + ")" -} - -var errIntAmbig = fmt.Errorf("ambiguous integer value; must include '0' prefix") - -func prefix0(val string) bool { - return strings.HasPrefix(val, "0") || strings.HasPrefix(val, "-0") -} - -func prefix0x(val string) bool { - return strings.HasPrefix(val, "0x") || strings.HasPrefix(val, "-0x") -} - -// ParseInt parses val using mode into intptr, which must be a pointer to an -// integer kind type. Non-decimal value require prefix `0` or `0x` in the cases -// when mode permits ambiguity of base; otherwise the prefix can be omitted. -func ParseInt(intptr interface{}, val string, mode IntMode) error { - val = strings.TrimSpace(val) - verb := byte(0) - switch mode { - case Dec: - verb = 'd' - case Dec + Hex: - if prefix0x(val) { - verb = 'v' - } else { - verb = 'd' - } - case Dec + Oct: - if prefix0(val) && !prefix0x(val) { - verb = 'v' - } else { - verb = 'd' - } - case Dec + Hex + Oct: - verb = 'v' - case Hex: - if prefix0x(val) { - verb = 'v' - } else { - verb = 'x' - } - case Oct: - verb = 'o' - case Hex + Oct: - if prefix0(val) { - verb = 'v' - } else { - return errIntAmbig - } - } - if verb == 0 { - panic("unsupported mode") - } - return ScanFully(intptr, val, verb) -} diff --git a/vendor/gopkg.in/gcfg.v1/types/int_test.go b/vendor/gopkg.in/gcfg.v1/types/int_test.go deleted file mode 100644 index b63dbcb..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/int_test.go +++ /dev/null @@ -1,67 +0,0 @@ -package types - -import ( - "reflect" - "testing" -) - -func elem(p interface{}) interface{} { - return reflect.ValueOf(p).Elem().Interface() -} - -func TestParseInt(t *testing.T) { - for _, tt := range []struct { - val string - mode IntMode - exp interface{} - ok bool - }{ - {"0", Dec, int(0), true}, - {"10", Dec, int(10), true}, - {"-10", Dec, int(-10), true}, - {"x", Dec, int(0), false}, - {"0xa", Hex, int(0xa), true}, - {"a", Hex, int(0xa), true}, - {"10", Hex, int(0x10), true}, - {"-0xa", Hex, int(-0xa), true}, - {"0x", Hex, int(0x0), true}, // Scanf doesn't require digit behind 0x - {"-0x", Hex, int(0x0), true}, // Scanf doesn't require digit behind 0x - {"-a", Hex, int(-0xa), true}, - {"-10", Hex, int(-0x10), true}, - {"x", Hex, int(0), false}, - {"10", Oct, int(010), true}, - {"010", Oct, int(010), true}, - {"-10", Oct, int(-010), true}, - {"-010", Oct, int(-010), true}, - {"10", Dec | Hex, int(10), true}, - {"010", Dec | Hex, int(10), true}, - {"0x10", Dec | Hex, int(0x10), true}, - {"10", Dec | Oct, int(10), true}, - {"010", Dec | Oct, int(010), true}, - {"0x10", Dec | Oct, int(0), false}, - {"10", Hex | Oct, int(0), false}, // need prefix to distinguish Hex/Oct - {"010", Hex | Oct, int(010), true}, - {"0x10", Hex | Oct, int(0x10), true}, - {"10", Dec | Hex | Oct, int(10), true}, - {"010", Dec | Hex | Oct, int(010), true}, - {"0x10", Dec | Hex | Oct, int(0x10), true}, - } { - typ := reflect.TypeOf(tt.exp) - res := reflect.New(typ).Interface() - err := ParseInt(res, tt.val, tt.mode) - switch { - case tt.ok && err != nil: - t.Errorf("ParseInt(%v, %#v, %v): fail; got error %v, want ok", - typ, tt.val, tt.mode, err) - case !tt.ok && err == nil: - t.Errorf("ParseInt(%v, %#v, %v): fail; got %v, want error", - typ, tt.val, tt.mode, elem(res)) - case tt.ok && !reflect.DeepEqual(elem(res), tt.exp): - t.Errorf("ParseInt(%v, %#v, %v): fail; got %v, want %v", - typ, tt.val, tt.mode, elem(res), tt.exp) - default: - t.Logf("ParseInt(%v, %#v, %s): pass; got %v, error %v", - typ, tt.val, tt.mode, elem(res), err) - } - } -} diff --git a/vendor/gopkg.in/gcfg.v1/types/scan.go b/vendor/gopkg.in/gcfg.v1/types/scan.go deleted file mode 100644 index db2f6ed..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/scan.go +++ /dev/null @@ -1,23 +0,0 @@ -package types - -import ( - "fmt" - "io" - "reflect" -) - -// ScanFully uses fmt.Sscanf with verb to fully scan val into ptr. -func ScanFully(ptr interface{}, val string, verb byte) error { - t := reflect.ValueOf(ptr).Elem().Type() - // attempt to read extra bytes to make sure the value is consumed - var b []byte - n, err := fmt.Sscanf(val, "%"+string(verb)+"%s", ptr, &b) - switch { - case n < 1 || n == 1 && err != io.EOF: - return fmt.Errorf("failed to parse %q as %v: %v", val, t, err) - case n > 1: - return fmt.Errorf("failed to parse %q as %v: extra characters %q", val, t, string(b)) - } - // n == 1 && err == io.EOF - return nil -} diff --git a/vendor/gopkg.in/gcfg.v1/types/scan_test.go b/vendor/gopkg.in/gcfg.v1/types/scan_test.go deleted file mode 100644 index a8083e0..0000000 --- a/vendor/gopkg.in/gcfg.v1/types/scan_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package types - -import ( - "reflect" - "testing" -) - -func TestScanFully(t *testing.T) { - for _, tt := range []struct { - val string - verb byte - res interface{} - ok bool - }{ - {"a", 'v', int(0), false}, - {"0x", 'v', int(0), true}, - {"0x", 'd', int(0), false}, - } { - d := reflect.New(reflect.TypeOf(tt.res)).Interface() - err := ScanFully(d, tt.val, tt.verb) - switch { - case tt.ok && err != nil: - t.Errorf("ScanFully(%T, %q, '%c'): want ok, got error %v", - d, tt.val, tt.verb, err) - case !tt.ok && err == nil: - t.Errorf("ScanFully(%T, %q, '%c'): want error, got %v", - d, tt.val, tt.verb, elem(d)) - case tt.ok && err == nil && !reflect.DeepEqual(tt.res, elem(d)): - t.Errorf("ScanFully(%T, %q, '%c'): want %v, got %v", - d, tt.val, tt.verb, tt.res, elem(d)) - default: - t.Logf("ScanFully(%T, %q, '%c') = %v; *ptr==%v", - d, tt.val, tt.verb, err, elem(d)) - } - } -}