aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/tcs
diff options
context:
space:
mode:
authorwkj <devnull@localhost>2004-04-21 01:15:41 +0000
committerwkj <devnull@localhost>2004-04-21 01:15:41 +0000
commita31db67d14c0e50353eac3db342f3c969cabdf76 (patch)
tree0cebd9a65bab940355f5be0751f53238366555d7 /src/cmd/tcs
parentba03b8910dd07511378e6f1007faf0539ed25598 (diff)
downloadplan9port-a31db67d14c0e50353eac3db342f3c969cabdf76.tar.gz
plan9port-a31db67d14c0e50353eac3db342f3c969cabdf76.tar.bz2
plan9port-a31db67d14c0e50353eac3db342f3c969cabdf76.zip
Add tcs; it compiles in my world, but I haven't tried it in Russ's yet.
Diffstat (limited to 'src/cmd/tcs')
-rw-r--r--src/cmd/tcs/big5.c1751
-rw-r--r--src/cmd/tcs/big5.h4
-rw-r--r--src/cmd/tcs/conv.h18
-rw-r--r--src/cmd/tcs/conv_big5.c165
-rw-r--r--src/cmd/tcs/conv_gb.c134
-rw-r--r--src/cmd/tcs/conv_jis.c535
-rw-r--r--src/cmd/tcs/conv_ksc.c160
-rw-r--r--src/cmd/tcs/cyrillic.h162
-rw-r--r--src/cmd/tcs/desc.latin488
-rw-r--r--src/cmd/tcs/ex2.utf192
-rw-r--r--src/cmd/tcs/ex3.utf15
-rw-r--r--src/cmd/tcs/ex4.utf109
-rw-r--r--src/cmd/tcs/ex5.utf50
-rw-r--r--src/cmd/tcs/ex6.utf145
-rw-r--r--src/cmd/tcs/font/bbits.c89
-rw-r--r--src/cmd/tcs/font/bmap.c34
-rw-r--r--src/cmd/tcs/font/font.c34
-rw-r--r--src/cmd/tcs/font/gbits.c137
-rw-r--r--src/cmd/tcs/font/gmap.c34
-rw-r--r--src/cmd/tcs/font/hdr.h11
-rw-r--r--src/cmd/tcs/font/kbits.c93
-rw-r--r--src/cmd/tcs/font/kmap.c34
-rw-r--r--src/cmd/tcs/font/main.c87
-rw-r--r--src/cmd/tcs/font/merge.c127
-rw-r--r--src/cmd/tcs/font/mkfile103
-rw-r--r--src/cmd/tcs/font/qbits.c93
-rw-r--r--src/cmd/tcs/gb.c1104
-rw-r--r--src/cmd/tcs/gb.h7
-rw-r--r--src/cmd/tcs/hdr.h46
-rw-r--r--src/cmd/tcs/jis.h107
-rw-r--r--src/cmd/tcs/ksc.c988
-rw-r--r--src/cmd/tcs/ksc.h2
-rw-r--r--src/cmd/tcs/kuten208.c1055
-rw-r--r--src/cmd/tcs/kuten208.h3
-rw-r--r--src/cmd/tcs/kuten212.c975
-rw-r--r--src/cmd/tcs/kuten212.h3
-rw-r--r--src/cmd/tcs/mkfile33
-rw-r--r--src/cmd/tcs/plan9.h23
-rw-r--r--src/cmd/tcs/tcs.c1053
-rw-r--r--src/cmd/tcs/utf.c581
40 files changed, 10784 insertions, 0 deletions
diff --git a/src/cmd/tcs/big5.c b/src/cmd/tcs/big5.c
new file mode 100644
index 00000000..dda738fa
--- /dev/null
+++ b/src/cmd/tcs/big5.c
@@ -0,0 +1,1751 @@
+#include "big5.h"
+
+long tabbig5[BIG5MAX] = {
+0x3000,0xff0c,0x3001,0x3002,0xff0e,0x30fb,0xff1b,0xff1a,
+0xff1f,0xff01,0xfe30,0x2026,0x2025,0xfe50,0xfe51,0xfe52,
+0x00b7,0xfe54,0xfe55,0xfe56,0xfe57,0xfe32,0x2013,0xfe31,
+0x2014,0xfe33, -1,0xfe34,0xfe4f,0xff08,0xff09,0xfe35,
+0xfe36,0xff5b,0xff5d,0xfe37,0xfe38,0x3014,0x3015,0xfe39,
+0xfe3a,0x3010,0x3011,0xfe3b,0xfe3c,0x300a,0x300b,0xfe3d,
+0xfe3e,0x3008,0x3009,0xfe3f,0xfe40,0x300c,0x300d,0xfe41,
+0xfe42,0x300e,0x300f,0xfe43,0xfe44,0xfe59,0xfe5a,0xfe5b,
+0xfe5c,0xfe5d,0xfe5e,0x2018,0x2019,0x201c,0x201d,0x301d,
+0x301e,0x2035,0x2032,0xff03,0xff06,0xff0a,0x203b,0x00a7,
+0x3003,0x25cb,0x25cf,0x25b3,0x25b2,0x25ce,0x2606,0x2605,
+0x25c7,0x25c6,0x25a1,0x25a0,0x25bd,0x25bc,0x32a3,0x2105,
+0x203e, -1,0xff3f, -1,0xfe49,0xfe4a,0xfe4d,0xfe4e,
+0xfe4b,0xfe4c,0x0023,0x0026,0x002a,0xff0b,0xff0d,0x00d7,
+0x00f7,0x00b1,0x221a,0xff1c,0xff1e,0xff1d,0x2264,0x2265,
+0x2260,0x221e,0x2252,0x2261,0xfe62,0xfe63,0xfe64,0xfe65,
+0xfe66,0x223c,0x2229,0x222a,0x22a5,0x2220,0x221f,0x22bf,
+0x33d2,0x33d1,0x222b,0x222e,0x2235,0x2234,0x2640,0x2642,
+0x2641,0x2609,0x2191,0x2193,0x2190,0x2192,0x2196,0x2197,
+0x2199,0x2198,0x2225,0x2223, -1, -1,0xff0f,0xff3c,
+0xff04,0x00a5,0x3012,0x00a2,0x00a3,0xff05,0xff20,0x2103,
+0x2109,0x0024,0x0025,0x0040,0x33d5,0x339c,0x339d,0x339e,
+0x33ce,0x33a1,0x338e,0x338f,0x33c4,0x00b0,0x5159,0x515b,
+0x515e,0x515d,0x5161,0x5163,0x55e7,0x74e9,0x7cce,0x2581,
+0x2582,0x2583,0x2584,0x2585,0x2586,0x2587,0x2588,0x258f,
+0x258e,0x258d,0x258c,0x258b,0x258a,0x2589,0x253c,0x2534,
+0x252c,0x2524,0x251c,0x2594,0x2500,0x2502,0x2595,0x250c,
+0x2510,0x2514,0x2518,0x256d,0x256e,0x2570,0x256f,0x2550,
+0x255e,0x256a,0x2561,0x25e2,0x25e3,0x25e5,0x25e4,0x2571,
+0x2572,0x2573,0xff10,0xff11,0xff12,0xff13,0xff14,0xff15,
+0xff16,0xff17,0xff18,0xff19,0x2160,0x2161,0x2162,0x2163,
+0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x3021,0x3022,
+0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,0x3029, -1,
+0x5344, -1,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26,
+0xff27,0xff28,0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e,
+0xff2f,0xff30,0xff31,0xff32,0xff33,0xff34,0xff35,0xff36,
+0xff37,0xff38,0xff39,0xff3a,0xff41,0xff42,0xff43,0xff44,
+0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,0xff4c,
+0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,0xff54,
+0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0x0391,0x0392,
+0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039a,
+0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,0x03a1,0x03a3,
+0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,0x03b1,0x03b2,
+0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba,
+0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3,
+0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x03c9,0x3105,0x3106,
+0x3107,0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e,
+0x310f,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,
+0x3117,0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e,
+0x311f,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,
+0x3127,0x3128,0x3129,0x02d9,0x02c9,0x02ca,0x02c7,0x02cb,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1,0x4e00,
+0x4e59,0x4e01,0x4e03,0x4e43,0x4e5d,0x4e86,0x4e8c,0x4eba,
+0x513f,0x5165,0x516b,0x51e0,0x5200,0x5201,0x529b,0x5315,
+0x5341,0x535c,0x53c8,0x4e09,0x4e0b,0x4e08,0x4e0a,0x4e2b,
+0x4e38,0x51e1,0x4e45,0x4e48,0x4e5f,0x4e5e,0x4e8e,0x4ea1,
+0x5140,0x5203,0x52fa,0x5343,0x53c9,0x53e3,0x571f,0x58eb,
+0x5915,0x5927,0x5973,0x5b50,0x5b51,0x5b53,0x5bf8,0x5c0f,
+0x5c22,0x5c38,0x5c71,0x5ddd,0x5de5,0x5df1,0x5df2,0x5df3,
+0x5dfe,0x5e72,0x5efe,0x5f0b,0x5f13,0x624d,0x4e11,0x4e10,
+0x4e0d,0x4e2d,0x4e30,0x4e39,0x4e4b,0x5c39,0x4e88,0x4e91,
+0x4e95,0x4e92,0x4e94,0x4ea2,0x4ec1,0x4ec0,0x4ec3,0x4ec6,
+0x4ec7,0x4ecd,0x4eca,0x4ecb,0x4ec4,0x5143,0x5141,0x5167,
+0x516d,0x516e,0x516c,0x5197,0x51f6,0x5206,0x5207,0x5208,
+0x52fb,0x52fe,0x52ff,0x5316,0x5339,0x5348,0x5347,0x5345,
+0x535e,0x5384,0x53cb,0x53ca,0x53cd,0x58ec,0x5929,0x592b,
+0x592a,0x592d,0x5b54,0x5c11,0x5c24,0x5c3a,0x5c6f,0x5df4,
+0x5e7b,0x5eff,0x5f14,0x5f15,0x5fc3,0x6208,0x6236,0x624b,
+0x624e,0x652f,0x6587,0x6597,0x65a4,0x65b9,0x65e5,0x66f0,
+0x6708,0x6728,0x6b20,0x6b62,0x6b79,0x6bcb,0x6bd4,0x6bdb,
+0x6c0f,0x6c34,0x706b,0x722a,0x7236,0x723b,0x7247,0x7259,
+0x725b,0x72ac,0x738b,0x4e19,0x4e16,0x4e15,0x4e14,0x4e18,
+0x4e3b,0x4e4d,0x4e4f,0x4e4e,0x4ee5,0x4ed8,0x4ed4,0x4ed5,
+0x4ed6,0x4ed7,0x4ee3,0x4ee4,0x4ed9,0x4ede,0x5145,0x5144,
+0x5189,0x518a,0x51ac,0x51f9,0x51fa,0x51f8,0x520a,0x52a0,
+0x529f,0x5305,0x5306,0x5317,0x531d,0x4edf,0x534a,0x5349,
+0x5361,0x5360,0x536f,0x536e,0x53bb,0x53ef,0x53e4,0x53f3,
+0x53ec,0x53ee,0x53e9,0x53e8,0x53fc,0x53f8,0x53f5,0x53eb,
+0x53e6,0x53ea,0x53f2,0x53f1,0x53f0,0x53e5,0x53ed,0x53fb,
+0x56db,0x56da,0x5916,0x592e,0x5931,0x5974,0x5976,0x5b55,
+0x5b83,0x5c3c,0x5de8,0x5de7,0x5de6,0x5e02,0x5e03,0x5e73,
+0x5e7c,0x5f01,0x5f18,0x5f17,0x5fc5,0x620a,0x6253,0x6254,
+0x6252,0x6251,0x65a5,0x65e6,0x672e,0x672c,0x672a,0x672b,
+0x672d,0x6b63,0x6bcd,0x6c11,0x6c10,0x6c38,0x6c41,0x6c40,
+0x6c3e,0x72af,0x7384,0x7389,0x74dc,0x74e6,0x7518,0x751f,
+0x7528,0x7529,0x7530,0x7531,0x7532,0x7533,0x758b,0x767d,
+0x76ae,0x76bf,0x76ee,0x77db,0x77e2,0x77f3,0x793a,0x79be,
+0x7a74,0x7acb,0x4e1e,0x4e1f,0x4e52,0x4e53,0x4e69,0x4e99,
+0x4ea4,0x4ea6,0x4ea5,0x4eff,0x4f09,0x4f19,0x4f0a,0x4f15,
+0x4f0d,0x4f10,0x4f11,0x4f0f,0x4ef2,0x4ef6,0x4efb,0x4ef0,
+0x4ef3,0x4efd,0x4f01,0x4f0b,0x5149,0x5147,0x5146,0x5148,
+0x5168,0x5171,0x518d,0x51b0,0x5217,0x5211,0x5212,0x520e,
+0x5216,0x52a3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,
+0x540f,0x540c,0x540a,0x5410,0x5401,0x540b,0x5404,0x5411,
+0x540d,0x5408,0x5403,0x540e,0x5406,0x5412,0x56e0,0x56de,
+0x56dd,0x5733,0x5730,0x5728,0x572d,0x572c,0x572f,0x5729,
+0x5919,0x591a,0x5937,0x5938,0x5984,0x5978,0x5983,0x597d,
+0x5979,0x5982,0x5981,0x5b57,0x5b58,0x5b87,0x5b88,0x5b85,
+0x5b89,0x5bfa,0x5c16,0x5c79,0x5dde,0x5e06,0x5e76,0x5e74,
+0x5f0f,0x5f1b,0x5fd9,0x5fd6,0x620e,0x620c,0x620d,0x6210,
+0x6263,0x625b,0x6258,0x6536,0x65e9,0x65e8,0x65ec,0x65ed,
+0x66f2,0x66f3,0x6709,0x673d,0x6734,0x6731,0x6735,0x6b21,
+0x6b64,0x6b7b,0x6c16,0x6c5d,0x6c57,0x6c59,0x6c5f,0x6c60,
+0x6c50,0x6c55,0x6c61,0x6c5b,0x6c4d,0x6c4e,0x7070,0x725f,
+0x725d,0x767e,0x7af9,0x7c73,0x7cf8,0x7f36,0x7f8a,0x7fbd,
+0x8001,0x8003,0x800c,0x8012,0x8033,0x807f,0x8089,0x808b,
+0x808c,0x81e3,0x81ea,0x81f3,0x81fc,0x820c,0x821b,0x821f,
+0x826e,0x8272,0x827e,0x866b,0x8840,0x884c,0x8863,0x897f,
+0x9621,0x4e32,0x4ea8,0x4f4d,0x4f4f,0x4f47,0x4f57,0x4f5e,
+0x4f34,0x4f5b,0x4f55,0x4f30,0x4f50,0x4f51,0x4f3d,0x4f3a,
+0x4f38,0x4f43,0x4f54,0x4f3c,0x4f46,0x4f63,0x4f5c,0x4f60,
+0x4f2f,0x4f4e,0x4f36,0x4f59,0x4f5d,0x4f48,0x4f5a,0x514c,
+0x514b,0x514d,0x5175,0x51b6,0x51b7,0x5225,0x5224,0x5229,
+0x522a,0x5228,0x52ab,0x52a9,0x52aa,0x52ac,0x5323,0x5373,
+0x5375,0x541d,0x542d,0x541e,0x543e,0x5426,0x544e,0x5427,
+0x5446,0x5443,0x5433,0x5448,0x5442,0x541b,0x5429,0x544a,
+0x5439,0x543b,0x5438,0x542e,0x5435,0x5436,0x5420,0x543c,
+0x5440,0x5431,0x542b,0x541f,0x542c,0x56ea,0x56f0,0x56e4,
+0x56eb,0x574a,0x5751,0x5740,0x574d,0x5747,0x574e,0x573e,
+0x5750,0x574f,0x573b,0x58ef,0x593e,0x599d,0x5992,0x59a8,
+0x599e,0x59a3,0x5999,0x5996,0x598d,0x59a4,0x5993,0x598a,
+0x59a5,0x5b5d,0x5b5c,0x5b5a,0x5b5b,0x5b8c,0x5b8b,0x5b8f,
+0x5c2c,0x5c40,0x5c41,0x5c3f,0x5c3e,0x5c90,0x5c91,0x5c94,
+0x5c8c,0x5deb,0x5e0c,0x5e8f,0x5e87,0x5e8a,0x5ef7,0x5f04,
+0x5f1f,0x5f64,0x5f62,0x5f77,0x5f79,0x5fd8,0x5fcc,0x5fd7,
+0x5fcd,0x5ff1,0x5feb,0x5ff8,0x5fea,0x6212,0x6211,0x6284,
+0x6297,0x6296,0x6280,0x6276,0x6289,0x626d,0x628a,0x627c,
+0x627e,0x6279,0x6273,0x6292,0x626f,0x6298,0x626e,0x6295,
+0x6293,0x6291,0x6286,0x6539,0x653b,0x6538,0x65f1,0x66f4,
+0x675f,0x674e,0x674f,0x6750,0x6751,0x675c,0x6756,0x675e,
+0x6749,0x6746,0x6760,0x6753,0x6757,0x6b65,0x6bcf,0x6c42,
+0x6c5e,0x6c99,0x6c81,0x6c88,0x6c89,0x6c85,0x6c9b,0x6c6a,
+0x6c7a,0x6c90,0x6c70,0x6c8c,0x6c68,0x6c96,0x6c92,0x6c7d,
+0x6c83,0x6c72,0x6c7e,0x6c74,0x6c86,0x6c76,0x6c8d,0x6c94,
+0x6c98,0x6c82,0x7076,0x707c,0x707d,0x7078,0x7262,0x7261,
+0x7260,0x72c4,0x72c2,0x7396,0x752c,0x752b,0x7537,0x7538,
+0x7682,0x76ef,0x77e3,0x79c1,0x79c0,0x79bf,0x7a76,0x7cfb,
+0x7f55,0x8096,0x8093,0x809d,0x8098,0x809b,0x809a,0x80b2,
+0x826f,0x8292,0x828b,0x828d,0x898b,0x89d2,0x8a00,0x8c37,
+0x8c46,0x8c55,0x8c9d,0x8d64,0x8d70,0x8db3,0x8eab,0x8eca,
+0x8f9b,0x8fb0,0x8fc2,0x8fc6,0x8fc5,0x8fc4,0x5de1,0x9091,
+0x90a2,0x90aa,0x90a6,0x90a3,0x9149,0x91c6,0x91cc,0x9632,
+0x962e,0x9631,0x962a,0x962c,0x4e26,0x4e56,0x4e73,0x4e8b,
+0x4e9b,0x4e9e,0x4eab,0x4eac,0x4f6f,0x4f9d,0x4f8d,0x4f73,
+0x4f7f,0x4f6c,0x4f9b,0x4f8b,0x4f86,0x4f83,0x4f70,0x4f75,
+0x4f88,0x4f69,0x4f7b,0x4f96,0x4f7e,0x4f8f,0x4f91,0x4f7a,
+0x5154,0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51bd,
+0x51fd,0x523b,0x5238,0x5237,0x523a,0x5230,0x522e,0x5236,
+0x5241,0x52be,0x52bb,0x5352,0x5354,0x5353,0x5351,0x5366,
+0x5377,0x5378,0x5379,0x53d6,0x53d4,0x53d7,0x5473,0x5475,
+0x5496,0x5478,0x5495,0x5480,0x547b,0x5477,0x5484,0x5492,
+0x5486,0x547c,0x5490,0x5471,0x5476,0x548c,0x549a,0x5462,
+0x5468,0x548b,0x547d,0x548e,0x56fa,0x5783,0x5777,0x576a,
+0x5769,0x5761,0x5766,0x5764,0x577c,0x591c,0x5949,0x5947,
+0x5948,0x5944,0x5954,0x59be,0x59bb,0x59d4,0x59b9,0x59ae,
+0x59d1,0x59c6,0x59d0,0x59cd,0x59cb,0x59d3,0x59ca,0x59af,
+0x59b3,0x59d2,0x59c5,0x5b5f,0x5b64,0x5b63,0x5b97,0x5b9a,
+0x5b98,0x5b9c,0x5b99,0x5b9b,0x5c1a,0x5c48,0x5c45,0x5c46,
+0x5cb7,0x5ca1,0x5cb8,0x5ca9,0x5cab,0x5cb1,0x5cb3,0x5e18,
+0x5e1a,0x5e16,0x5e15,0x5e1b,0x5e11,0x5e78,0x5e9a,0x5e97,
+0x5e9c,0x5e95,0x5e96,0x5ef6,0x5f26,0x5f27,0x5f29,0x5f80,
+0x5f81,0x5f7f,0x5f7c,0x5fdd,0x5fe0,0x5ffd,0x5ff5,0x5fff,
+0x600f,0x6014,0x602f,0x6035,0x6016,0x602a,0x6015,0x6021,
+0x6027,0x6029,0x602b,0x601b,0x6216,0x6215,0x623f,0x623e,
+0x6240,0x627f,0x62c9,0x62cc,0x62c4,0x62bf,0x62c2,0x62b9,
+0x62d2,0x62db,0x62ab,0x62d3,0x62d4,0x62cb,0x62c8,0x62a8,
+0x62bd,0x62bc,0x62d0,0x62d9,0x62c7,0x62cd,0x62b5,0x62da,
+0x62b1,0x62d8,0x62d6,0x62d7,0x62c6,0x62ac,0x62ce,0x653e,
+0x65a7,0x65bc,0x65fa,0x6614,0x6613,0x660c,0x6606,0x6602,
+0x660e,0x6600,0x660f,0x6615,0x660a,0x6607,0x670d,0x670b,
+0x676d,0x678b,0x6795,0x6771,0x679c,0x6773,0x6777,0x6787,
+0x679d,0x6797,0x676f,0x6770,0x677f,0x6789,0x677e,0x6790,
+0x6775,0x679a,0x6793,0x677c,0x676a,0x6772,0x6b23,0x6b66,
+0x6b67,0x6b7f,0x6c13,0x6c1b,0x6ce3,0x6ce8,0x6cf3,0x6cb1,
+0x6ccc,0x6ce5,0x6cb3,0x6cbd,0x6cbe,0x6cbc,0x6ce2,0x6cab,
+0x6cd5,0x6cd3,0x6cb8,0x6cc4,0x6cb9,0x6cc1,0x6cae,0x6cd7,
+0x6cc5,0x6cf1,0x6cbf,0x6cbb,0x6ce1,0x6cdb,0x6cca,0x6cac,
+0x6cef,0x6cdc,0x6cd6,0x6ce0,0x7095,0x708e,0x7092,0x708a,
+0x7099,0x722c,0x722d,0x7238,0x7248,0x7267,0x7269,0x72c0,
+0x72ce,0x72d9,0x72d7,0x72d0,0x73a9,0x73a8,0x739f,0x73ab,
+0x73a5,0x753d,0x759d,0x7599,0x759a,0x7684,0x76c2,0x76f2,
+0x76f4,0x77e5,0x77fd,0x793e,0x7940,0x7941,0x79c9,0x79c8,
+0x7a7a,0x7a79,0x7afa,0x7cfe,0x7f54,0x7f8c,0x7f8b,0x8005,
+0x80ba,0x80a5,0x80a2,0x80b1,0x80a1,0x80ab,0x80a9,0x80b4,
+0x80aa,0x80af,0x81e5,0x81fe,0x820d,0x82b3,0x829d,0x8299,
+0x82ad,0x82bd,0x829f,0x82b9,0x82b1,0x82ac,0x82a5,0x82af,
+0x82b8,0x82a3,0x82b0,0x82be,0x82b7,0x864e,0x8671,0x521d,
+0x8868,0x8ecb,0x8fce,0x8fd4,0x8fd1,0x90b5,0x90b8,0x90b1,
+0x90b6,0x91c7,0x91d1,0x9577,0x9580,0x961c,0x9640,0x963f,
+0x963b,0x9644,0x9642,0x96b9,0x96e8,0x9752,0x975e,0x4e9f,
+0x4ead,0x4eae,0x4fe1,0x4fb5,0x4faf,0x4fbf,0x4fe0,0x4fd1,
+0x4fcf,0x4fdd,0x4fc3,0x4fb6,0x4fd8,0x4fdf,0x4fca,0x4fd7,
+0x4fae,0x4fd0,0x4fc4,0x4fc2,0x4fda,0x4fce,0x4fde,0x4fb7,
+0x5157,0x5192,0x5191,0x51a0,0x524e,0x5243,0x524a,0x524d,
+0x524c,0x524b,0x5247,0x52c7,0x52c9,0x52c3,0x52c1,0x530d,
+0x5357,0x537b,0x539a,0x53db,0x54ac,0x54c0,0x54a8,0x54ce,
+0x54c9,0x54b8,0x54a6,0x54b3,0x54c7,0x54c2,0x54bd,0x54aa,
+0x54c1,0x54c4,0x54c8,0x54af,0x54ab,0x54b1,0x54bb,0x54a9,
+0x54a7,0x54bf,0x56ff,0x5782,0x578b,0x57a0,0x57a3,0x57a2,
+0x57ce,0x57ae,0x5793,0x5955,0x5951,0x594f,0x594e,0x5950,
+0x59dc,0x59d8,0x59ff,0x59e3,0x59e8,0x5a03,0x59e5,0x59ea,
+0x59da,0x59e6,0x5a01,0x59fb,0x5b69,0x5ba3,0x5ba6,0x5ba4,
+0x5ba2,0x5ba5,0x5c01,0x5c4e,0x5c4f,0x5c4d,0x5c4b,0x5cd9,
+0x5cd2,0x5df7,0x5e1d,0x5e25,0x5e1f,0x5e7d,0x5ea0,0x5ea6,
+0x5efa,0x5f08,0x5f2d,0x5f65,0x5f88,0x5f85,0x5f8a,0x5f8b,
+0x5f87,0x5f8c,0x5f89,0x6012,0x601d,0x6020,0x6025,0x600e,
+0x6028,0x604d,0x6070,0x6068,0x6062,0x6046,0x6043,0x606c,
+0x606b,0x606a,0x6064,0x6241,0x62dc,0x6316,0x6309,0x62fc,
+0x62ed,0x6301,0x62ee,0x62fd,0x6307,0x62f1,0x62f7,0x62ef,
+0x62ec,0x62fe,0x62f4,0x6311,0x6302,0x653f,0x6545,0x65ab,
+0x65bd,0x65e2,0x6625,0x662d,0x6620,0x6627,0x662f,0x661f,
+0x6628,0x6631,0x6624,0x66f7,0x67ff,0x67d3,0x67f1,0x67d4,
+0x67d0,0x67ec,0x67b6,0x67af,0x67f5,0x67e9,0x67ef,0x67c4,
+0x67d1,0x67b4,0x67da,0x67e5,0x67b8,0x67cf,0x67de,0x67f3,
+0x67b0,0x67d9,0x67e2,0x67dd,0x67d2,0x6b6a,0x6b83,0x6b86,
+0x6bb5,0x6bd2,0x6bd7,0x6c1f,0x6cc9,0x6d0b,0x6d32,0x6d2a,
+0x6d41,0x6d25,0x6d0c,0x6d31,0x6d1e,0x6d17,0x6d3b,0x6d3d,
+0x6d3e,0x6d36,0x6d1b,0x6cf5,0x6d39,0x6d27,0x6d38,0x6d29,
+0x6d2e,0x6d35,0x6d0e,0x6d2b,0x70ab,0x70ba,0x70b3,0x70ac,
+0x70af,0x70ad,0x70b8,0x70ae,0x70a4,0x7230,0x7272,0x726f,
+0x7274,0x72e9,0x72e0,0x72e1,0x73b7,0x73ca,0x73bb,0x73b2,
+0x73cd,0x73c0,0x73b3,0x751a,0x752d,0x754f,0x754c,0x754e,
+0x754b,0x75ab,0x75a4,0x75a5,0x75a2,0x75a3,0x7678,0x7686,
+0x7687,0x7688,0x76c8,0x76c6,0x76c3,0x76c5,0x7701,0x76f9,
+0x76f8,0x7709,0x770b,0x76fe,0x76fc,0x7707,0x77dc,0x7802,
+0x7814,0x780c,0x780d,0x7946,0x7949,0x7948,0x7947,0x79b9,
+0x79ba,0x79d1,0x79d2,0x79cb,0x7a7f,0x7a81,0x7aff,0x7afd,
+0x7c7d,0x7d02,0x7d05,0x7d00,0x7d09,0x7d07,0x7d04,0x7d06,
+0x7f38,0x7f8e,0x7fbf,0x8004,0x8010,0x800d,0x8011,0x8036,
+0x80d6,0x80e5,0x80da,0x80c3,0x80c4,0x80cc,0x80e1,0x80db,
+0x80ce,0x80de,0x80e4,0x80dd,0x81f4,0x8222,0x82e7,0x8303,
+0x8305,0x82e3,0x82db,0x82e6,0x8304,0x82e5,0x8302,0x8309,
+0x82d2,0x82d7,0x82f1,0x8301,0x82dc,0x82d4,0x82d1,0x82de,
+0x82d3,0x82df,0x82ef,0x8306,0x8650,0x8679,0x867b,0x867a,
+0x884d,0x886b,0x8981,0x89d4,0x8a08,0x8a02,0x8a03,0x8c9e,
+0x8ca0,0x8d74,0x8d73,0x8db4,0x8ecd,0x8ecc,0x8ff0,0x8fe6,
+0x8fe2,0x8fea,0x8fe5,0x8fed,0x8feb,0x8fe4,0x8fe8,0x90ca,
+0x90ce,0x90c1,0x90c3,0x914b,0x914a,0x91cd,0x9582,0x9650,
+0x964b,0x964c,0x964d,0x9762,0x9769,0x97cb,0x97ed,0x97f3,
+0x9801,0x98a8,0x98db,0x98df,0x9996,0x9999,0x4e58,0x4eb3,
+0x500c,0x500d,0x5023,0x4fef,0x5026,0x5025,0x4ff8,0x5029,
+0x5016,0x5006,0x503c,0x501f,0x501a,0x5012,0x5011,0x4ffa,
+0x5000,0x5014,0x5028,0x4ff1,0x5021,0x500b,0x5019,0x5018,
+0x4ff3,0x4fee,0x502d,0x502a,0x4ffe,0x502b,0x5009,0x517c,
+0x51a4,0x51a5,0x51a2,0x51cd,0x51cc,0x51c6,0x51cb,0x5256,
+0x525c,0x5254,0x525b,0x525d,0x532a,0x537f,0x539f,0x539d,
+0x53df,0x54e8,0x5510,0x5501,0x5537,0x54fc,0x54e5,0x54f2,
+0x5506,0x54fa,0x5514,0x54e9,0x54ed,0x54e1,0x5509,0x54ee,
+0x54ea,0x54e6,0x5527,0x5507,0x54fd,0x550f,0x5703,0x5704,
+0x57c2,0x57d4,0x57cb,0x57c3,0x5809,0x590f,0x5957,0x5958,
+0x595a,0x5a11,0x5a18,0x5a1c,0x5a1f,0x5a1b,0x5a13,0x59ec,
+0x5a20,0x5a23,0x5a29,0x5a25,0x5a0c,0x5a09,0x5b6b,0x5c58,
+0x5bb0,0x5bb3,0x5bb6,0x5bb4,0x5bae,0x5bb5,0x5bb9,0x5bb8,
+0x5c04,0x5c51,0x5c55,0x5c50,0x5ced,0x5cfd,0x5cfb,0x5cea,
+0x5ce8,0x5cf0,0x5cf6,0x5d01,0x5cf4,0x5dee,0x5e2d,0x5e2b,
+0x5eab,0x5ead,0x5ea7,0x5f31,0x5f92,0x5f91,0x5f90,0x6059,
+0x6063,0x6065,0x6050,0x6055,0x606d,0x6069,0x606f,0x6084,
+0x609f,0x609a,0x608d,0x6094,0x608c,0x6085,0x6096,0x6247,
+0x62f3,0x6308,0x62ff,0x634e,0x633e,0x632f,0x6355,0x6342,
+0x6346,0x634f,0x6349,0x633a,0x6350,0x633d,0x632a,0x632b,
+0x6328,0x634d,0x634c,0x6548,0x6549,0x6599,0x65c1,0x65c5,
+0x6642,0x6649,0x664f,0x6643,0x6652,0x664c,0x6645,0x6641,
+0x66f8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848,0x6846,
+0x6853,0x6839,0x6842,0x6854,0x6829,0x68b3,0x6817,0x684c,
+0x6851,0x683d,0x67f4,0x6850,0x6840,0x683c,0x6843,0x682a,
+0x6845,0x6813,0x6818,0x6841,0x6b8a,0x6b89,0x6bb7,0x6c23,
+0x6c27,0x6c28,0x6c26,0x6c24,0x6cf0,0x6d6a,0x6d95,0x6d88,
+0x6d87,0x6d66,0x6d78,0x6d77,0x6d59,0x6d93,0x6d6c,0x6d89,
+0x6d6e,0x6d5a,0x6d74,0x6d69,0x6d8c,0x6d8a,0x6d79,0x6d85,
+0x6d65,0x6d94,0x70ca,0x70d8,0x70e4,0x70d9,0x70c8,0x70cf,
+0x7239,0x7279,0x72fc,0x72f9,0x72fd,0x72f8,0x72f7,0x7386,
+0x73ed,0x7409,0x73ee,0x73e0,0x73ea,0x73de,0x7554,0x755d,
+0x755c,0x755a,0x7559,0x75be,0x75c5,0x75c7,0x75b2,0x75b3,
+0x75bd,0x75bc,0x75b9,0x75c2,0x75b8,0x768b,0x76b0,0x76ca,
+0x76cd,0x76ce,0x7729,0x771f,0x7720,0x7728,0x77e9,0x7830,
+0x7827,0x7838,0x781d,0x7834,0x7837,0x7825,0x782d,0x7820,
+0x781f,0x7832,0x7955,0x7950,0x7960,0x795f,0x7956,0x795e,
+0x795d,0x7957,0x795a,0x79e4,0x79e3,0x79e7,0x79df,0x79e6,
+0x79e9,0x79d8,0x7a84,0x7a88,0x7ad9,0x7b06,0x7b11,0x7c89,
+0x7d21,0x7d17,0x7d0b,0x7d0a,0x7d20,0x7d22,0x7d14,0x7d10,
+0x7d15,0x7d1a,0x7d1c,0x7d0d,0x7d19,0x7d1b,0x7f3a,0x7f5f,
+0x7f94,0x7fc5,0x7fc1,0x8006,0x8018,0x8015,0x8019,0x8017,
+0x803d,0x803f,0x80f1,0x8102,0x80f0,0x8105,0x80ed,0x80f4,
+0x8106,0x80f8,0x80f3,0x8108,0x80fd,0x810a,0x80fc,0x80ef,
+0x81ed,0x81ec,0x8200,0x8210,0x822a,0x822b,0x8228,0x822c,
+0x82bb,0x832b,0x8352,0x8354,0x834a,0x8338,0x8350,0x8349,
+0x8335,0x8334,0x834f,0x8332,0x8339,0x8336,0x8317,0x8340,
+0x8331,0x8328,0x8343,0x8654,0x868a,0x86aa,0x8693,0x86a4,
+0x86a9,0x868c,0x86a3,0x869c,0x8870,0x8877,0x8881,0x8882,
+0x887d,0x8879,0x8a18,0x8a10,0x8a0e,0x8a0c,0x8a15,0x8a0a,
+0x8a17,0x8a13,0x8a16,0x8a0f,0x8a11,0x8c48,0x8c7a,0x8c79,
+0x8ca1,0x8ca2,0x8d77,0x8eac,0x8ed2,0x8ed4,0x8ecf,0x8fb1,
+0x9001,0x9006,0x8ff7,0x9000,0x8ffa,0x8ff4,0x9003,0x8ffd,
+0x9005,0x8ff8,0x9095,0x90e1,0x90dd,0x90e2,0x9152,0x914d,
+0x914c,0x91d8,0x91dd,0x91d7,0x91dc,0x91d9,0x9583,0x9662,
+0x9663,0x9661,0x965b,0x965d,0x9664,0x9658,0x965e,0x96bb,
+0x98e2,0x99ac,0x9aa8,0x9ad8,0x9b25,0x9b32,0x9b3c,0x4e7e,
+0x507a,0x507d,0x505c,0x5047,0x5043,0x504c,0x505a,0x5049,
+0x5065,0x5076,0x504e,0x5055,0x5075,0x5074,0x5077,0x504f,
+0x500f,0x506f,0x506d,0x515c,0x5195,0x51f0,0x526a,0x526f,
+0x52d2,0x52d9,0x52d8,0x52d5,0x5310,0x530f,0x5319,0x533f,
+0x5340,0x533e,0x53c3,0x66fc,0x5546,0x556a,0x5566,0x5544,
+0x555e,0x5561,0x5543,0x554a,0x5531,0x5556,0x554f,0x5555,
+0x552f,0x5564,0x5538,0x552e,0x555c,0x552c,0x5563,0x5533,
+0x5541,0x5557,0x5708,0x570b,0x5709,0x57df,0x5805,0x580a,
+0x5806,0x57e0,0x57e4,0x57fa,0x5802,0x5835,0x57f7,0x57f9,
+0x5920,0x5962,0x5a36,0x5a41,0x5a49,0x5a66,0x5a6a,0x5a40,
+0x5a3c,0x5a62,0x5a5a,0x5a46,0x5a4a,0x5b70,0x5bc7,0x5bc5,
+0x5bc4,0x5bc2,0x5bbf,0x5bc6,0x5c09,0x5c08,0x5c07,0x5c60,
+0x5c5c,0x5c5d,0x5d07,0x5d06,0x5d0e,0x5d1b,0x5d16,0x5d22,
+0x5d11,0x5d29,0x5d14,0x5d19,0x5d24,0x5d27,0x5d17,0x5de2,
+0x5e38,0x5e36,0x5e33,0x5e37,0x5eb7,0x5eb8,0x5eb6,0x5eb5,
+0x5ebe,0x5f35,0x5f37,0x5f57,0x5f6c,0x5f69,0x5f6b,0x5f97,
+0x5f99,0x5f9e,0x5f98,0x5fa1,0x5fa0,0x5f9c,0x607f,0x60a3,
+0x6089,0x60a0,0x60a8,0x60cb,0x60b4,0x60e6,0x60bd,0x60c5,
+0x60bb,0x60b5,0x60dc,0x60bc,0x60d8,0x60d5,0x60c6,0x60df,
+0x60b8,0x60da,0x60c7,0x621a,0x621b,0x6248,0x63a0,0x63a7,
+0x6372,0x6396,0x63a2,0x63a5,0x6377,0x6367,0x6398,0x63aa,
+0x6371,0x63a9,0x6389,0x6383,0x639b,0x636b,0x63a8,0x6384,
+0x6388,0x6399,0x63a1,0x63ac,0x6392,0x638f,0x6380,0x637b,
+0x6369,0x6368,0x637a,0x655d,0x6556,0x6551,0x6559,0x6557,
+0x555f,0x654f,0x6558,0x6555,0x6554,0x659c,0x659b,0x65ac,
+0x65cf,0x65cb,0x65cc,0x65ce,0x665d,0x665a,0x6664,0x6668,
+0x6666,0x665e,0x66f9,0x52d7,0x671b,0x6881,0x68af,0x68a2,
+0x6893,0x68b5,0x687f,0x6876,0x68b1,0x68a7,0x6897,0x68b0,
+0x6883,0x68c4,0x68ad,0x6886,0x6885,0x6894,0x689d,0x68a8,
+0x689f,0x68a1,0x6882,0x6b32,0x6bba,0x6beb,0x6bec,0x6c2b,
+0x6d8e,0x6dbc,0x6df3,0x6dd9,0x6db2,0x6de1,0x6dcc,0x6de4,
+0x6dfb,0x6dfa,0x6e05,0x6dc7,0x6dcb,0x6daf,0x6dd1,0x6dae,
+0x6dde,0x6df9,0x6db8,0x6df7,0x6df5,0x6dc5,0x6dd2,0x6e1a,
+0x6db5,0x6dda,0x6deb,0x6dd8,0x6dea,0x6df1,0x6dee,0x6de8,
+0x6dc6,0x6dc4,0x6daa,0x6dec,0x6dbf,0x6de6,0x70f9,0x7109,
+0x710a,0x70fd,0x70ef,0x723d,0x727d,0x7281,0x731c,0x731b,
+0x7316,0x7313,0x7319,0x7387,0x7405,0x740a,0x7403,0x7406,
+0x73fe,0x740d,0x74e0,0x74f6,0x74f7,0x751c,0x7522,0x7565,
+0x7566,0x7562,0x7570,0x758f,0x75d4,0x75d5,0x75b5,0x75ca,
+0x75cd,0x768e,0x76d4,0x76d2,0x76db,0x7737,0x773e,0x773c,
+0x7736,0x7738,0x773a,0x786b,0x7843,0x784e,0x7965,0x7968,
+0x796d,0x79fb,0x7a92,0x7a95,0x7b20,0x7b28,0x7b1b,0x7b2c,
+0x7b26,0x7b19,0x7b1e,0x7b2e,0x7c92,0x7c97,0x7c95,0x7d46,
+0x7d43,0x7d71,0x7d2e,0x7d39,0x7d3c,0x7d40,0x7d30,0x7d33,
+0x7d44,0x7d2f,0x7d42,0x7d32,0x7d31,0x7f3d,0x7f9e,0x7f9a,
+0x7fcc,0x7fce,0x7fd2,0x801c,0x804a,0x8046,0x812f,0x8116,
+0x8123,0x812b,0x8129,0x8130,0x8124,0x8202,0x8235,0x8237,
+0x8236,0x8239,0x838e,0x839e,0x8398,0x8378,0x83a2,0x8396,
+0x83bd,0x83ab,0x8392,0x838a,0x8393,0x8389,0x83a0,0x8377,
+0x837b,0x837c,0x8386,0x83a7,0x8655,0x5f6a,0x86c7,0x86c0,
+0x86b6,0x86c4,0x86b5,0x86c6,0x86cb,0x86b1,0x86af,0x86c9,
+0x8853,0x889e,0x8888,0x88ab,0x8892,0x8896,0x888d,0x888b,
+0x8993,0x898f,0x8a2a,0x8a1d,0x8a23,0x8a25,0x8a31,0x8a2d,
+0x8a1f,0x8a1b,0x8a22,0x8c49,0x8c5a,0x8ca9,0x8cac,0x8cab,
+0x8ca8,0x8caa,0x8ca7,0x8d67,0x8d66,0x8dbe,0x8dba,0x8edb,
+0x8edf,0x9019,0x900d,0x901a,0x9017,0x9023,0x901f,0x901d,
+0x9010,0x9015,0x901e,0x9020,0x900f,0x9022,0x9016,0x901b,
+0x9014,0x90e8,0x90ed,0x90fd,0x9157,0x91ce,0x91f5,0x91e6,
+0x91e3,0x91e7,0x91ed,0x91e9,0x9589,0x966a,0x9675,0x9673,
+0x9678,0x9670,0x9674,0x9676,0x9677,0x966c,0x96c0,0x96ea,
+0x96e9,0x7ae0,0x7adf,0x9802,0x9803,0x9b5a,0x9ce5,0x9e75,
+0x9e7f,0x9ea5,0x9ebb,0x50a2,0x508d,0x5085,0x5099,0x5091,
+0x5080,0x5096,0x5098,0x509a,0x6700,0x51f1,0x5272,0x5274,
+0x5275,0x5269,0x52de,0x52dd,0x52db,0x535a,0x53a5,0x557b,
+0x5580,0x55a7,0x557c,0x558a,0x559d,0x5598,0x5582,0x559c,
+0x55aa,0x5594,0x5587,0x558b,0x5583,0x55b3,0x55ae,0x559f,
+0x553e,0x55b2,0x559a,0x55bb,0x55ac,0x55b1,0x557e,0x5589,
+0x55ab,0x5599,0x570d,0x582f,0x582a,0x5834,0x5824,0x5830,
+0x5831,0x5821,0x581d,0x5820,0x58f9,0x58fa,0x5960,0x5a77,
+0x5a9a,0x5a7f,0x5a92,0x5a9b,0x5aa7,0x5b73,0x5b71,0x5bd2,
+0x5bcc,0x5bd3,0x5bd0,0x5c0a,0x5c0b,0x5c31,0x5d4c,0x5d50,
+0x5d34,0x5d47,0x5dfd,0x5e45,0x5e3d,0x5e40,0x5e43,0x5e7e,
+0x5eca,0x5ec1,0x5ec2,0x5ec4,0x5f3c,0x5f6d,0x5fa9,0x5faa,
+0x5fa8,0x60d1,0x60e1,0x60b2,0x60b6,0x60e0,0x611c,0x6123,
+0x60fa,0x6115,0x60f0,0x60fb,0x60f4,0x6168,0x60f1,0x610e,
+0x60f6,0x6109,0x6100,0x6112,0x621f,0x6249,0x63a3,0x638c,
+0x63cf,0x63c0,0x63e9,0x63c9,0x63c6,0x63cd,0x63d2,0x63e3,
+0x63d0,0x63e1,0x63d6,0x63ed,0x63ee,0x6376,0x63f4,0x63ea,
+0x63db,0x6452,0x63da,0x63f9,0x655e,0x6566,0x6562,0x6563,
+0x6591,0x6590,0x65af,0x666e,0x6670,0x6674,0x6676,0x666f,
+0x6691,0x667a,0x667e,0x6677,0x66fe,0x66ff,0x671f,0x671d,
+0x68fa,0x68d5,0x68e0,0x68d8,0x68d7,0x6905,0x68df,0x68f5,
+0x68ee,0x68e7,0x68f9,0x68d2,0x68f2,0x68e3,0x68cb,0x68cd,
+0x690d,0x6912,0x690e,0x68c9,0x68da,0x696e,0x68fb,0x6b3e,
+0x6b3a,0x6b3d,0x6b98,0x6b96,0x6bbc,0x6bef,0x6c2e,0x6c2f,
+0x6c2c,0x6e2f,0x6e38,0x6e54,0x6e21,0x6e32,0x6e67,0x6e4a,
+0x6e20,0x6e25,0x6e23,0x6e1b,0x6e5b,0x6e58,0x6e24,0x6e56,
+0x6e6e,0x6e2d,0x6e26,0x6e6f,0x6e34,0x6e4d,0x6e3a,0x6e2c,
+0x6e43,0x6e1d,0x6e3e,0x6ecb,0x6e89,0x6e19,0x6e4e,0x6e63,
+0x6e44,0x6e72,0x6e69,0x6e5f,0x7119,0x711a,0x7126,0x7130,
+0x7121,0x7136,0x716e,0x711c,0x724c,0x7284,0x7280,0x7336,
+0x7325,0x7334,0x7329,0x743a,0x742a,0x7433,0x7422,0x7425,
+0x7435,0x7436,0x7434,0x742f,0x741b,0x7426,0x7428,0x7525,
+0x7526,0x756b,0x756a,0x75e2,0x75db,0x75e3,0x75d9,0x75d8,
+0x75de,0x75e0,0x767b,0x767c,0x7696,0x7693,0x76b4,0x76dc,
+0x774f,0x77ed,0x785d,0x786c,0x786f,0x7a0d,0x7a08,0x7a0b,
+0x7a05,0x7a00,0x7a98,0x7a97,0x7a96,0x7ae5,0x7ae3,0x7b49,
+0x7b56,0x7b46,0x7b50,0x7b52,0x7b54,0x7b4d,0x7b4b,0x7b4f,
+0x7b51,0x7c9f,0x7ca5,0x7d5e,0x7d50,0x7d68,0x7d55,0x7d2b,
+0x7d6e,0x7d72,0x7d61,0x7d66,0x7d62,0x7d70,0x7d73,0x5584,
+0x7fd4,0x7fd5,0x800b,0x8052,0x8085,0x8155,0x8154,0x814b,
+0x8151,0x814e,0x8139,0x8146,0x813e,0x814c,0x8153,0x8174,
+0x8212,0x821c,0x83e9,0x8403,0x83f8,0x840d,0x83e0,0x83c5,
+0x840b,0x83c1,0x83ef,0x83f1,0x83f4,0x8457,0x840a,0x83f0,
+0x840c,0x83cc,0x83fd,0x83f2,0x83ca,0x8438,0x840e,0x8404,
+0x83dc,0x8407,0x83d4,0x83df,0x865b,0x86df,0x86d9,0x86ed,
+0x86d4,0x86db,0x86e4,0x86d0,0x86de,0x8857,0x88c1,0x88c2,
+0x88b1,0x8983,0x8996,0x8a3b,0x8a60,0x8a55,0x8a5e,0x8a3c,
+0x8a41,0x8a54,0x8a5b,0x8a50,0x8a46,0x8a34,0x8a3a,0x8a36,
+0x8a56,0x8c61,0x8c82,0x8caf,0x8cbc,0x8cb3,0x8cbd,0x8cc1,
+0x8cbb,0x8cc0,0x8cb4,0x8cb7,0x8cb6,0x8cbf,0x8cb8,0x8d8a,
+0x8d85,0x8d81,0x8dce,0x8ddd,0x8dcb,0x8dda,0x8dd1,0x8dcc,
+0x8ddb,0x8dc6,0x8efb,0x8ef8,0x8efc,0x8f9c,0x902e,0x9035,
+0x9031,0x9038,0x9032,0x9036,0x9102,0x90f5,0x9109,0x90fe,
+0x9163,0x9165,0x91cf,0x9214,0x9215,0x9223,0x9209,0x921e,
+0x920d,0x9210,0x9207,0x9211,0x9594,0x958f,0x958b,0x9591,
+0x9593,0x9592,0x958e,0x968a,0x968e,0x968b,0x967d,0x9685,
+0x9686,0x968d,0x9672,0x9684,0x96c1,0x96c5,0x96c4,0x96c6,
+0x96c7,0x96ef,0x96f2,0x97cc,0x9805,0x9806,0x9808,0x98e7,
+0x98ea,0x98ef,0x98e9,0x98f2,0x98ed,0x99ae,0x99ad,0x9ec3,
+0x9ecd,0x9ed1,0x4e82,0x50ad,0x50b5,0x50b2,0x50b3,0x50c5,
+0x50be,0x50ac,0x50b7,0x50bb,0x50af,0x50c7,0x527f,0x5277,
+0x527d,0x52df,0x52e6,0x52e4,0x52e2,0x52e3,0x532f,0x55df,
+0x55e8,0x55d3,0x55e6,0x55ce,0x55dc,0x55c7,0x55d1,0x55e3,
+0x55e4,0x55ef,0x55da,0x55e1,0x55c5,0x55c6,0x55e5,0x55c9,
+0x5712,0x5713,0x585e,0x5851,0x5858,0x5857,0x585a,0x5854,
+0x586b,0x584c,0x586d,0x584a,0x5862,0x5852,0x584b,0x5967,
+0x5ac1,0x5ac9,0x5acc,0x5abe,0x5abd,0x5abc,0x5ab3,0x5ac2,
+0x5ab2,0x5d69,0x5d6f,0x5e4c,0x5e79,0x5ec9,0x5ec8,0x5f12,
+0x5f59,0x5fac,0x5fae,0x611a,0x610f,0x6148,0x611f,0x60f3,
+0x611b,0x60f9,0x6101,0x6108,0x614e,0x614c,0x6144,0x614d,
+0x613e,0x6134,0x6127,0x610d,0x6106,0x6137,0x6221,0x6222,
+0x6413,0x643e,0x641e,0x642a,0x642d,0x643d,0x642c,0x640f,
+0x641c,0x6414,0x640d,0x6436,0x6416,0x6417,0x6406,0x656c,
+0x659f,0x65b0,0x6697,0x6689,0x6687,0x6688,0x6696,0x6684,
+0x6698,0x668d,0x6703,0x6994,0x696d,0x695a,0x6977,0x6960,
+0x6954,0x6975,0x6930,0x6982,0x694a,0x6968,0x696b,0x695e,
+0x6953,0x6979,0x6986,0x695d,0x6963,0x695b,0x6b47,0x6b72,
+0x6bc0,0x6bbf,0x6bd3,0x6bfd,0x6ea2,0x6eaf,0x6ed3,0x6eb6,
+0x6ec2,0x6e90,0x6e9d,0x6ec7,0x6ec5,0x6ea5,0x6e98,0x6ebc,
+0x6eba,0x6eab,0x6ed1,0x6e96,0x6e9c,0x6ec4,0x6ed4,0x6eaa,
+0x6ea7,0x6eb4,0x714e,0x7159,0x7169,0x7164,0x7149,0x7167,
+0x715c,0x716c,0x7166,0x714c,0x7165,0x715e,0x7146,0x7168,
+0x7156,0x723a,0x7252,0x7337,0x7345,0x733f,0x733e,0x746f,
+0x745a,0x7455,0x745f,0x745e,0x7441,0x743f,0x7459,0x745b,
+0x745c,0x7576,0x7578,0x7600,0x75f0,0x7601,0x75f2,0x75f1,
+0x75fa,0x75ff,0x75f4,0x75f3,0x76de,0x76df,0x775b,0x776b,
+0x7766,0x775e,0x7763,0x7779,0x776a,0x776c,0x775c,0x7765,
+0x7768,0x7762,0x77ee,0x788e,0x78b0,0x7897,0x7898,0x788c,
+0x7889,0x787c,0x7891,0x7893,0x787f,0x797a,0x797f,0x7981,
+0x842c,0x79bd,0x7a1c,0x7a1a,0x7a20,0x7a14,0x7a1f,0x7a1e,
+0x7a9f,0x7aa0,0x7b77,0x7bc0,0x7b60,0x7b6e,0x7b67,0x7cb1,
+0x7cb3,0x7cb5,0x7d93,0x7d79,0x7d91,0x7d81,0x7d8f,0x7d5b,
+0x7f6e,0x7f69,0x7f6a,0x7f72,0x7fa9,0x7fa8,0x7fa4,0x8056,
+0x8058,0x8086,0x8084,0x8171,0x8170,0x8178,0x8165,0x816e,
+0x8173,0x816b,0x8179,0x817a,0x8166,0x8205,0x8247,0x8482,
+0x8477,0x843d,0x8431,0x8475,0x8466,0x846b,0x8449,0x846c,
+0x845b,0x843c,0x8435,0x8461,0x8463,0x8469,0x846d,0x8446,
+0x865e,0x865c,0x865f,0x86f9,0x8713,0x8708,0x8707,0x8700,
+0x86fe,0x86fb,0x8702,0x8703,0x8706,0x870a,0x8859,0x88df,
+0x88d4,0x88d9,0x88dc,0x88d8,0x88dd,0x88e1,0x88ca,0x88d5,
+0x88d2,0x899c,0x89e3,0x8a6b,0x8a72,0x8a73,0x8a66,0x8a69,
+0x8a70,0x8a87,0x8a7c,0x8a63,0x8aa0,0x8a71,0x8a85,0x8a6d,
+0x8a62,0x8a6e,0x8a6c,0x8a79,0x8a7b,0x8a3e,0x8a68,0x8c62,
+0x8c8a,0x8c89,0x8cca,0x8cc7,0x8cc8,0x8cc4,0x8cb2,0x8cc3,
+0x8cc2,0x8cc5,0x8de1,0x8ddf,0x8de8,0x8def,0x8df3,0x8dfa,
+0x8dea,0x8de4,0x8de6,0x8eb2,0x8f03,0x8f09,0x8efe,0x8f0a,
+0x8f9f,0x8fb2,0x904b,0x904a,0x9053,0x9042,0x9054,0x903c,
+0x9055,0x9050,0x9047,0x904f,0x904e,0x904d,0x9051,0x903e,
+0x9041,0x9112,0x9117,0x916c,0x916a,0x9169,0x91c9,0x9237,
+0x9257,0x9238,0x923d,0x9240,0x923e,0x925b,0x924b,0x9264,
+0x9251,0x9234,0x9249,0x924d,0x9245,0x9239,0x923f,0x925a,
+0x9598,0x9698,0x9694,0x9695,0x96cd,0x96cb,0x96c9,0x96ca,
+0x96f7,0x96fb,0x96f9,0x96f6,0x9756,0x9774,0x9776,0x9810,
+0x9811,0x9813,0x980a,0x9812,0x980c,0x98fc,0x98f4,0x98fd,
+0x98fe,0x99b3,0x99b1,0x99b4,0x9ae1,0x9ce9,0x9e82,0x9f0e,
+0x9f13,0x9f20,0x50e7,0x50ee,0x50e5,0x50d6,0x50ed,0x50da,
+0x50d5,0x50cf,0x50d1,0x50f1,0x50ce,0x50e9,0x5162,0x51f3,
+0x5283,0x5282,0x5331,0x53ad,0x55fe,0x5600,0x561b,0x5617,
+0x55fd,0x5614,0x5606,0x5609,0x560d,0x560e,0x55f7,0x5616,
+0x561f,0x5608,0x5610,0x55f6,0x5718,0x5716,0x5875,0x587e,
+0x5883,0x5893,0x588a,0x5879,0x5885,0x587d,0x58fd,0x5925,
+0x5922,0x5924,0x596a,0x5969,0x5ae1,0x5ae6,0x5ae9,0x5ad7,
+0x5ad6,0x5ad8,0x5ae3,0x5b75,0x5bde,0x5be7,0x5be1,0x5be5,
+0x5be6,0x5be8,0x5be2,0x5be4,0x5bdf,0x5c0d,0x5c62,0x5d84,
+0x5d87,0x5e5b,0x5e63,0x5e55,0x5e57,0x5e54,0x5ed3,0x5ed6,
+0x5f0a,0x5f46,0x5f70,0x5fb9,0x6147,0x613f,0x614b,0x6177,
+0x6162,0x6163,0x615f,0x615a,0x6158,0x6175,0x622a,0x6487,
+0x6458,0x6454,0x64a4,0x6478,0x645f,0x647a,0x6451,0x6467,
+0x6434,0x646d,0x647b,0x6572,0x65a1,0x65d7,0x65d6,0x66a2,
+0x66a8,0x669d,0x699c,0x69a8,0x6995,0x69c1,0x69ae,0x69d3,
+0x69cb,0x699b,0x69b7,0x69bb,0x69ab,0x69b4,0x69d0,0x69cd,
+0x69ad,0x69cc,0x69a6,0x69c3,0x69a3,0x6b49,0x6b4c,0x6c33,
+0x6f33,0x6f14,0x6efe,0x6f13,0x6ef4,0x6f29,0x6f3e,0x6f20,
+0x6f2c,0x6f0f,0x6f02,0x6f22,0x6eff,0x6eef,0x6f06,0x6f31,
+0x6f38,0x6f32,0x6f23,0x6f15,0x6f2b,0x6f2f,0x6f88,0x6f2a,
+0x6eec,0x6f01,0x6ef2,0x6ecc,0x6ef7,0x7194,0x7199,0x717d,
+0x718a,0x7184,0x7192,0x723e,0x7292,0x7296,0x7344,0x7350,
+0x7464,0x7463,0x746a,0x7470,0x746d,0x7504,0x7591,0x7627,
+0x760d,0x760b,0x7609,0x7613,0x76e1,0x76e3,0x7784,0x777d,
+0x777f,0x7761,0x78c1,0x789f,0x78a7,0x78b3,0x78a9,0x78a3,
+0x798e,0x798f,0x798d,0x7a2e,0x7a31,0x7aaa,0x7aa9,0x7aed,
+0x7aef,0x7ba1,0x7b95,0x7b8b,0x7b75,0x7b97,0x7b9d,0x7b94,
+0x7b8f,0x7bb8,0x7b87,0x7b84,0x7cb9,0x7cbd,0x7cbe,0x7dbb,
+0x7db0,0x7d9c,0x7dbd,0x7dbe,0x7da0,0x7dca,0x7db4,0x7db2,
+0x7db1,0x7dba,0x7da2,0x7dbf,0x7db5,0x7db8,0x7dad,0x7dd2,
+0x7dc7,0x7dac,0x7f70,0x7fe0,0x7fe1,0x7fdf,0x805e,0x805a,
+0x8087,0x8150,0x8180,0x818f,0x8188,0x818a,0x817f,0x8182,
+0x81e7,0x81fa,0x8207,0x8214,0x821e,0x824b,0x84c9,0x84bf,
+0x84c6,0x84c4,0x8499,0x849e,0x84b2,0x849c,0x84cb,0x84b8,
+0x84c0,0x84d3,0x8490,0x84bc,0x84d1,0x84ca,0x873f,0x871c,
+0x873b,0x8722,0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,
+0x88f3,0x8902,0x88f4,0x88f9,0x88f8,0x88fd,0x88e8,0x891a,
+0x88ef,0x8aa6,0x8a8c,0x8a9e,0x8aa3,0x8a8d,0x8aa1,0x8a93,
+0x8aa4,0x8aaa,0x8aa5,0x8aa8,0x8a98,0x8a91,0x8a9a,0x8aa7,
+0x8c6a,0x8c8d,0x8c8c,0x8cd3,0x8cd1,0x8cd2,0x8d6b,0x8d99,
+0x8d95,0x8dfc,0x8f14,0x8f12,0x8f15,0x8f13,0x8fa3,0x9060,
+0x9058,0x905c,0x9063,0x9059,0x905e,0x9062,0x905d,0x905b,
+0x9119,0x9118,0x911e,0x9175,0x9178,0x9177,0x9174,0x9278,
+0x9280,0x9285,0x9298,0x9296,0x927b,0x9293,0x929c,0x92a8,
+0x927c,0x9291,0x95a1,0x95a8,0x95a9,0x95a3,0x95a5,0x95a4,
+0x9699,0x969c,0x969b,0x96cc,0x96d2,0x9700,0x977c,0x9785,
+0x97f6,0x9817,0x9818,0x98af,0x98b1,0x9903,0x9905,0x990c,
+0x9909,0x99c1,0x9aaf,0x9ab0,0x9ae6,0x9b41,0x9b42,0x9cf4,
+0x9cf6,0x9cf3,0x9ebc,0x9f3b,0x9f4a,0x5104,0x5100,0x50fb,
+0x50f5,0x50f9,0x5102,0x5108,0x5109,0x5105,0x51dc,0x5287,
+0x5288,0x5289,0x528d,0x528a,0x52f0,0x53b2,0x562e,0x563b,
+0x5639,0x5632,0x563f,0x5634,0x5629,0x5653,0x564e,0x5657,
+0x5674,0x5636,0x562f,0x5630,0x5880,0x589f,0x589e,0x58b3,
+0x589c,0x58ae,0x58a9,0x58a6,0x596d,0x5b09,0x5afb,0x5b0b,
+0x5af5,0x5b0c,0x5b08,0x5bee,0x5bec,0x5be9,0x5beb,0x5c64,
+0x5c65,0x5d9d,0x5d94,0x5e62,0x5e5f,0x5e61,0x5ee2,0x5eda,
+0x5edf,0x5edd,0x5ee3,0x5ee0,0x5f48,0x5f71,0x5fb7,0x5fb5,
+0x6176,0x6167,0x616e,0x615d,0x6155,0x6182,0x617c,0x6170,
+0x616b,0x617e,0x61a7,0x6190,0x61ab,0x618e,0x61ac,0x619a,
+0x61a4,0x6194,0x61ae,0x622e,0x6469,0x646f,0x6479,0x649e,
+0x64b2,0x6488,0x6490,0x64b0,0x64a5,0x6493,0x6495,0x64a9,
+0x6492,0x64ae,0x64ad,0x64ab,0x649a,0x64ac,0x6499,0x64a2,
+0x64b3,0x6575,0x6577,0x6578,0x66ae,0x66ab,0x66b4,0x66b1,
+0x6a23,0x6a1f,0x69e8,0x6a01,0x6a1e,0x6a19,0x69fd,0x6a21,
+0x6a13,0x6a0a,0x69f3,0x6a02,0x6a05,0x69ed,0x6a11,0x6b50,
+0x6b4e,0x6ba4,0x6bc5,0x6bc6,0x6f3f,0x6f7c,0x6f84,0x6f51,
+0x6f66,0x6f54,0x6f86,0x6f6d,0x6f5b,0x6f78,0x6f6e,0x6f8e,
+0x6f7a,0x6f70,0x6f64,0x6f97,0x6f58,0x6ed5,0x6f6f,0x6f60,
+0x6f5f,0x719f,0x71ac,0x71b1,0x71a8,0x7256,0x729b,0x734e,
+0x7357,0x7469,0x748b,0x7483,0x747e,0x7480,0x757f,0x7620,
+0x7629,0x761f,0x7624,0x7626,0x7621,0x7622,0x769a,0x76ba,
+0x76e4,0x778e,0x7787,0x778c,0x7791,0x778b,0x78cb,0x78c5,
+0x78ba,0x78ca,0x78be,0x78d5,0x78bc,0x78d0,0x7a3f,0x7a3c,
+0x7a40,0x7a3d,0x7a37,0x7a3b,0x7aaf,0x7aae,0x7bad,0x7bb1,
+0x7bc4,0x7bb4,0x7bc6,0x7bc7,0x7bc1,0x7ba0,0x7bcc,0x7cca,
+0x7de0,0x7df4,0x7def,0x7dfb,0x7dd8,0x7dec,0x7ddd,0x7de8,
+0x7de3,0x7dda,0x7dde,0x7de9,0x7d9e,0x7dd9,0x7df2,0x7df9,
+0x7f75,0x7f77,0x7faf,0x7fe9,0x8026,0x819b,0x819c,0x819d,
+0x81a0,0x819a,0x8198,0x8517,0x853d,0x851a,0x84ee,0x852c,
+0x852d,0x8513,0x8511,0x8523,0x8521,0x8514,0x84ec,0x8525,
+0x84ff,0x8506,0x8782,0x8774,0x8776,0x8760,0x8766,0x8778,
+0x8768,0x8759,0x8757,0x874c,0x8753,0x885b,0x885d,0x8910,
+0x8907,0x8912,0x8913,0x8915,0x890a,0x8abc,0x8ad2,0x8ac7,
+0x8ac4,0x8a95,0x8acb,0x8af8,0x8ab2,0x8ac9,0x8ac2,0x8abf,
+0x8ab0,0x8ad6,0x8acd,0x8ab6,0x8ab9,0x8adb,0x8c4c,0x8c4e,
+0x8c6c,0x8ce0,0x8cde,0x8ce6,0x8ce4,0x8cec,0x8ced,0x8ce2,
+0x8ce3,0x8cdc,0x8cea,0x8ce1,0x8d6d,0x8d9f,0x8da3,0x8e2b,
+0x8e10,0x8e1d,0x8e22,0x8e0f,0x8e29,0x8e1f,0x8e21,0x8e1e,
+0x8eba,0x8f1d,0x8f1b,0x8f1f,0x8f29,0x8f26,0x8f2a,0x8f1c,
+0x8f1e,0x8f25,0x9069,0x906e,0x9068,0x906d,0x9077,0x9130,
+0x912d,0x9127,0x9131,0x9187,0x9189,0x918b,0x9183,0x92c5,
+0x92bb,0x92b7,0x92ea,0x92ac,0x92e4,0x92c1,0x92b3,0x92bc,
+0x92d2,0x92c7,0x92f0,0x92b2,0x95ad,0x95b1,0x9704,0x9706,
+0x9707,0x9709,0x9760,0x978d,0x978b,0x978f,0x9821,0x982b,
+0x981c,0x98b3,0x990a,0x9913,0x9912,0x9918,0x99dd,0x99d0,
+0x99df,0x99db,0x99d1,0x99d5,0x99d2,0x99d9,0x9ab7,0x9aee,
+0x9aef,0x9b27,0x9b45,0x9b44,0x9b77,0x9b6f,0x9d06,0x9d09,
+0x9d03,0x9ea9,0x9ebe,0x9ece,0x58a8,0x9f52,0x5112,0x5118,
+0x5114,0x5110,0x5115,0x5180,0x51aa,0x51dd,0x5291,0x5293,
+0x52f3,0x5659,0x566b,0x5679,0x5669,0x5664,0x5678,0x566a,
+0x5668,0x5665,0x5671,0x566f,0x566c,0x5662,0x5676,0x58c1,
+0x58be,0x58c7,0x58c5,0x596e,0x5b1d,0x5b34,0x5b78,0x5bf0,
+0x5c0e,0x5f4a,0x61b2,0x6191,0x61a9,0x618a,0x61cd,0x61b6,
+0x61be,0x61ca,0x61c8,0x6230,0x64c5,0x64c1,0x64cb,0x64bb,
+0x64bc,0x64da,0x64c4,0x64c7,0x64c2,0x64cd,0x64bf,0x64d2,
+0x64d4,0x64be,0x6574,0x66c6,0x66c9,0x66b9,0x66c4,0x66c7,
+0x66b8,0x6a3d,0x6a38,0x6a3a,0x6a59,0x6a6b,0x6a58,0x6a39,
+0x6a44,0x6a62,0x6a61,0x6a4b,0x6a47,0x6a35,0x6a5f,0x6a48,
+0x6b59,0x6b77,0x6c05,0x6fc2,0x6fb1,0x6fa1,0x6fc3,0x6fa4,
+0x6fc1,0x6fa7,0x6fb3,0x6fc0,0x6fb9,0x6fb6,0x6fa6,0x6fa0,
+0x6fb4,0x71be,0x71c9,0x71d0,0x71d2,0x71c8,0x71d5,0x71b9,
+0x71ce,0x71d9,0x71dc,0x71c3,0x71c4,0x7368,0x749c,0x74a3,
+0x7498,0x749f,0x749e,0x74e2,0x750c,0x750d,0x7634,0x7638,
+0x763a,0x76e7,0x76e5,0x77a0,0x779e,0x779f,0x77a5,0x78e8,
+0x78da,0x78ec,0x78e7,0x79a6,0x7a4d,0x7a4e,0x7a46,0x7a4c,
+0x7a4b,0x7aba,0x7bd9,0x7c11,0x7bc9,0x7be4,0x7bdb,0x7be1,
+0x7be9,0x7be6,0x7cd5,0x7cd6,0x7e0a,0x7e11,0x7e08,0x7e1b,
+0x7e23,0x7e1e,0x7e1d,0x7e09,0x7e10,0x7f79,0x7fb2,0x7ff0,
+0x7ff1,0x7fee,0x8028,0x81b3,0x81a9,0x81a8,0x81fb,0x8208,
+0x8258,0x8259,0x854a,0x8559,0x8548,0x8568,0x8569,0x8543,
+0x8549,0x856d,0x856a,0x855e,0x8783,0x879f,0x879e,0x87a2,
+0x878d,0x8861,0x892a,0x8932,0x8925,0x892b,0x8921,0x89aa,
+0x89a6,0x8ae6,0x8afa,0x8aeb,0x8af1,0x8b00,0x8adc,0x8ae7,
+0x8aee,0x8afe,0x8b01,0x8b02,0x8af7,0x8aed,0x8af3,0x8af6,
+0x8afc,0x8c6b,0x8c6d,0x8c93,0x8cf4,0x8e44,0x8e31,0x8e34,
+0x8e42,0x8e39,0x8e35,0x8f3b,0x8f2f,0x8f38,0x8f33,0x8fa8,
+0x8fa6,0x9075,0x9074,0x9078,0x9072,0x907c,0x907a,0x9134,
+0x9192,0x9320,0x9336,0x92f8,0x9333,0x932f,0x9322,0x92fc,
+0x932b,0x9304,0x931a,0x9310,0x9326,0x9321,0x9315,0x932e,
+0x9319,0x95bb,0x96a7,0x96a8,0x96aa,0x96d5,0x970e,0x9711,
+0x9716,0x970d,0x9713,0x970f,0x975b,0x975c,0x9766,0x9798,
+0x9830,0x9838,0x983b,0x9837,0x982d,0x9839,0x9824,0x9910,
+0x9928,0x991e,0x991b,0x9921,0x991a,0x99ed,0x99e2,0x99f1,
+0x9ab8,0x9abc,0x9afb,0x9aed,0x9b28,0x9b91,0x9d15,0x9d23,
+0x9d26,0x9d28,0x9d12,0x9d1b,0x9ed8,0x9ed4,0x9f8d,0x9f9c,
+0x512a,0x511f,0x5121,0x5132,0x52f5,0x568e,0x5680,0x5690,
+0x5685,0x5687,0x568f,0x58d5,0x58d3,0x58d1,0x58ce,0x5b30,
+0x5b2a,0x5b24,0x5b7a,0x5c37,0x5c68,0x5dbc,0x5dba,0x5dbd,
+0x5db8,0x5e6b,0x5f4c,0x5fbd,0x61c9,0x61c2,0x61c7,0x61e6,
+0x61cb,0x6232,0x6234,0x64ce,0x64ca,0x64d8,0x64e0,0x64f0,
+0x64e6,0x64ec,0x64f1,0x64e2,0x64ed,0x6582,0x6583,0x66d9,
+0x66d6,0x6a80,0x6a94,0x6a84,0x6aa2,0x6a9c,0x6adb,0x6aa3,
+0x6a7e,0x6a97,0x6a90,0x6aa0,0x6b5c,0x6bae,0x6bda,0x6c08,
+0x6fd8,0x6ff1,0x6fdf,0x6fe0,0x6fdb,0x6fe4,0x6feb,0x6fef,
+0x6f80,0x6fec,0x6fe1,0x6fe9,0x6fd5,0x6fee,0x6ff0,0x71e7,
+0x71df,0x71ee,0x71e6,0x71e5,0x71ed,0x71ec,0x71f4,0x71e0,
+0x7235,0x7246,0x7370,0x7372,0x74a9,0x74b0,0x74a6,0x74a8,
+0x7646,0x7642,0x764c,0x76ea,0x77b3,0x77aa,0x77b0,0x77ac,
+0x77a7,0x77ad,0x77ef,0x78f7,0x78fa,0x78f4,0x78ef,0x7901,
+0x79a7,0x79aa,0x7a57,0x7abf,0x7c07,0x7c0d,0x7bfe,0x7bf7,
+0x7c0c,0x7be0,0x7ce0,0x7cdc,0x7cde,0x7ce2,0x7cdf,0x7cd9,
+0x7cdd,0x7e2e,0x7e3e,0x7e46,0x7e37,0x7e32,0x7e43,0x7e2b,
+0x7e3d,0x7e31,0x7e45,0x7e41,0x7e34,0x7e39,0x7e48,0x7e35,
+0x7e3f,0x7e2f,0x7f44,0x7ff3,0x7ffc,0x8071,0x8072,0x8070,
+0x806f,0x8073,0x81c6,0x81c3,0x81ba,0x81c2,0x81c0,0x81bf,
+0x81bd,0x81c9,0x81be,0x81e8,0x8209,0x8271,0x85aa,0x8584,
+0x857e,0x859c,0x8591,0x8594,0x85af,0x859b,0x8587,0x85a8,
+0x858a,0x8667,0x87c0,0x87d1,0x87b3,0x87d2,0x87c6,0x87ab,
+0x87bb,0x87ba,0x87c8,0x87cb,0x893b,0x8936,0x8944,0x8938,
+0x893d,0x89ac,0x8b0e,0x8b17,0x8b19,0x8b1b,0x8b0a,0x8b20,
+0x8b1d,0x8b04,0x8b10,0x8c41,0x8c3f,0x8c73,0x8cfa,0x8cfd,
+0x8cfc,0x8cf8,0x8cfb,0x8da8,0x8e49,0x8e4b,0x8e48,0x8e4a,
+0x8f44,0x8f3e,0x8f42,0x8f45,0x8f3f,0x907f,0x907d,0x9084,
+0x9081,0x9082,0x9080,0x9139,0x91a3,0x919e,0x919c,0x934d,
+0x9382,0x9328,0x9375,0x934a,0x9365,0x934b,0x9318,0x937e,
+0x936c,0x935b,0x9370,0x935a,0x9354,0x95ca,0x95cb,0x95cc,
+0x95c8,0x95c6,0x96b1,0x96b8,0x96d6,0x971c,0x971e,0x97a0,
+0x97d3,0x9846,0x98b6,0x9935,0x9a01,0x99ff,0x9bae,0x9bab,
+0x9baa,0x9bad,0x9d3b,0x9d3f,0x9e8b,0x9ecf,0x9ede,0x9edc,
+0x9edd,0x9edb,0x9f3e,0x9f4b,0x53e2,0x5695,0x56ae,0x58d9,
+0x58d8,0x5b38,0x5f5d,0x61e3,0x6233,0x64f4,0x64f2,0x64fe,
+0x6506,0x64fa,0x64fb,0x64f7,0x65b7,0x66dc,0x6726,0x6ab3,
+0x6aac,0x6ac3,0x6abb,0x6ab8,0x6ac2,0x6aae,0x6aaf,0x6b5f,
+0x6b78,0x6baf,0x7009,0x700b,0x6ffe,0x7006,0x6ffa,0x7011,
+0x700f,0x71fb,0x71fc,0x71fe,0x71f8,0x7377,0x7375,0x74a7,
+0x74bf,0x7515,0x7656,0x7658,0x7652,0x77bd,0x77bf,0x77bb,
+0x77bc,0x790e,0x79ae,0x7a61,0x7a62,0x7a60,0x7ac4,0x7ac5,
+0x7c2b,0x7c27,0x7c2a,0x7c1e,0x7c23,0x7c21,0x7ce7,0x7e54,
+0x7e55,0x7e5e,0x7e5a,0x7e61,0x7e52,0x7e59,0x7f48,0x7ff9,
+0x7ffb,0x8077,0x8076,0x81cd,0x81cf,0x820a,0x85cf,0x85a9,
+0x85cd,0x85d0,0x85c9,0x85b0,0x85ba,0x85b9,0x85a6,0x87ef,
+0x87ec,0x87f2,0x87e0,0x8986,0x89b2,0x89f4,0x8b28,0x8b39,
+0x8b2c,0x8b2b,0x8c50,0x8d05,0x8e59,0x8e63,0x8e66,0x8e64,
+0x8e5f,0x8e55,0x8ec0,0x8f49,0x8f4d,0x9087,0x9083,0x9088,
+0x91ab,0x91ac,0x91d0,0x9394,0x938a,0x9396,0x93a2,0x93b3,
+0x93ae,0x93ac,0x93b0,0x9398,0x939a,0x9397,0x95d4,0x95d6,
+0x95d0,0x95d5,0x96e2,0x96dc,0x96d9,0x96db,0x96de,0x9724,
+0x97a3,0x97a6,0x97ad,0x97f9,0x984d,0x984f,0x984c,0x984e,
+0x9853,0x98ba,0x993e,0x993f,0x993d,0x992e,0x99a5,0x9a0e,
+0x9ac1,0x9b03,0x9b06,0x9b4f,0x9b4e,0x9b4d,0x9bca,0x9bc9,
+0x9bfd,0x9bc8,0x9bc0,0x9d51,0x9d5d,0x9d60,0x9ee0,0x9f15,
+0x9f2c,0x5133,0x56a5,0x58de,0x58df,0x58e2,0x5bf5,0x9f90,
+0x5eec,0x61f2,0x61f7,0x61f6,0x61f5,0x6500,0x650f,0x66e0,
+0x66dd,0x6ae5,0x6add,0x6ada,0x6ad3,0x701b,0x701f,0x7028,
+0x701a,0x701d,0x7015,0x7018,0x7206,0x720d,0x7258,0x72a2,
+0x7378,0x737a,0x74bd,0x74ca,0x74e3,0x7587,0x7586,0x765f,
+0x7661,0x77c7,0x7919,0x79b1,0x7a6b,0x7a69,0x7c3e,0x7c3f,
+0x7c38,0x7c3d,0x7c37,0x7c40,0x7e6b,0x7e6d,0x7e79,0x7e69,
+0x7e6a,0x7f85,0x7e73,0x7fb6,0x7fb9,0x7fb8,0x81d8,0x85e9,
+0x85dd,0x85ea,0x85d5,0x85e4,0x85e5,0x85f7,0x87fb,0x8805,
+0x880d,0x87f9,0x87fe,0x8960,0x895f,0x8956,0x895e,0x8b41,
+0x8b5c,0x8b58,0x8b49,0x8b5a,0x8b4e,0x8b4f,0x8b46,0x8b59,
+0x8d08,0x8d0a,0x8e7c,0x8e72,0x8e87,0x8e76,0x8e6c,0x8e7a,
+0x8e74,0x8f54,0x8f4e,0x8fad,0x908a,0x908b,0x91b1,0x91ae,
+0x93e1,0x93d1,0x93df,0x93c3,0x93c8,0x93dc,0x93dd,0x93d6,
+0x93e2,0x93cd,0x93d8,0x93e4,0x93d7,0x93e8,0x95dc,0x96b4,
+0x96e3,0x972a,0x9727,0x9761,0x97dc,0x97fb,0x985e,0x9858,
+0x985b,0x98bc,0x9945,0x9949,0x9a16,0x9a19,0x9b0d,0x9be8,
+0x9be7,0x9bd6,0x9bdb,0x9d89,0x9d61,0x9d72,0x9d6a,0x9d6c,
+0x9e92,0x9e97,0x9e93,0x9eb4,0x52f8,0x56a8,0x56b7,0x56b6,
+0x56b4,0x56bc,0x58e4,0x5b40,0x5b43,0x5b7d,0x5bf6,0x5dc9,
+0x61f8,0x61fa,0x6518,0x6514,0x6519,0x66e6,0x6727,0x6aec,
+0x703e,0x7030,0x7032,0x7210,0x737b,0x74cf,0x7662,0x7665,
+0x7926,0x792a,0x792c,0x792b,0x7ac7,0x7af6,0x7c4c,0x7c43,
+0x7c4d,0x7cef,0x7cf0,0x8fae,0x7e7d,0x7e7c,0x7e82,0x7f4c,
+0x8000,0x81da,0x8266,0x85fb,0x85f9,0x8611,0x85fa,0x8606,
+0x860b,0x8607,0x860a,0x8814,0x8815,0x8964,0x89ba,0x89f8,
+0x8b70,0x8b6c,0x8b66,0x8b6f,0x8b5f,0x8b6b,0x8d0f,0x8d0d,
+0x8e89,0x8e81,0x8e85,0x8e82,0x91b4,0x91cb,0x9418,0x9403,
+0x93fd,0x95e1,0x9730,0x98c4,0x9952,0x9951,0x99a8,0x9a2b,
+0x9a30,0x9a37,0x9a35,0x9c13,0x9c0d,0x9e79,0x9eb5,0x9ee8,
+0x9f2f,0x9f5f,0x9f63,0x9f61,0x5137,0x5138,0x56c1,0x56c0,
+0x56c2,0x5914,0x5c6c,0x5dcd,0x61fc,0x61fe,0x651d,0x651c,
+0x6595,0x66e9,0x6afb,0x6b04,0x6afa,0x6bb2,0x704c,0x721b,
+0x72a7,0x74d6,0x74d4,0x7669,0x77d3,0x7c50,0x7e8f,0x7e8c,
+0x7fbc,0x8617,0x862d,0x861a,0x8823,0x8822,0x8821,0x881f,
+0x896a,0x896c,0x89bd,0x8b74,0x8b77,0x8b7d,0x8d13,0x8e8a,
+0x8e8d,0x8e8b,0x8f5f,0x8faf,0x91ba,0x942e,0x9433,0x9435,
+0x943a,0x9438,0x9432,0x942b,0x95e2,0x9738,0x9739,0x9732,
+0x97ff,0x9867,0x9865,0x9957,0x9a45,0x9a43,0x9a40,0x9a3e,
+0x9acf,0x9b54,0x9b51,0x9c2d,0x9c25,0x9daf,0x9db4,0x9dc2,
+0x9db8,0x9e9d,0x9eef,0x9f19,0x9f5c,0x9f66,0x9f67,0x513c,
+0x513b,0x56c8,0x56ca,0x56c9,0x5b7f,0x5dd4,0x5dd2,0x5f4e,
+0x61ff,0x6524,0x6b0a,0x6b61,0x7051,0x7058,0x7380,0x74e4,
+0x758a,0x766e,0x766c,0x79b3,0x7c60,0x7c5f,0x807e,0x807d,
+0x81df,0x8972,0x896f,0x89fc,0x8b80,0x8d16,0x8d17,0x8e91,
+0x8e93,0x8f61,0x9148,0x9444,0x9451,0x9452,0x973d,0x973e,
+0x97c3,0x97c1,0x986b,0x9955,0x9a55,0x9a4d,0x9ad2,0x9b1a,
+0x9c49,0x9c31,0x9c3e,0x9c3b,0x9dd3,0x9dd7,0x9f34,0x9f6c,
+0x9f6a,0x9f94,0x56cc,0x5dd6,0x6200,0x6523,0x652b,0x652a,
+0x66ec,0x6b10,0x74da,0x7aca,0x7c64,0x7c63,0x7c65,0x7e93,
+0x7e96,0x7e94,0x81e2,0x8638,0x863f,0x8831,0x8b8a,0x9090,
+0x908f,0x9463,0x9460,0x9464,0x9768,0x986f,0x995c,0x9a5a,
+0x9a5b,0x9a57,0x9ad3,0x9ad4,0x9ad1,0x9c54,0x9c57,0x9c56,
+0x9de5,0x9e9f,0x9ef4,0x56d1,0x58e9,0x652c,0x705e,0x7671,
+0x7672,0x77d7,0x7f50,0x7f88,0x8836,0x8839,0x8862,0x8b93,
+0x8b92,0x8b96,0x8277,0x8d1b,0x91c0,0x946a,0x9742,0x9748,
+0x9744,0x97c6,0x9870,0x9a5f,0x9b22,0x9b58,0x9c5f,0x9df9,
+0x9dfa,0x9e7c,0x9e7d,0x9f07,0x9f77,0x9f72,0x5ef3,0x6b16,
+0x7063,0x7c6c,0x7c6e,0x883b,0x89c0,0x8ea1,0x91c1,0x9472,
+0x9470,0x9871,0x995e,0x9ad6,0x9b23,0x9ecc,0x7064,0x77da,
+0x8b9a,0x9477,0x97c9,0x9a62,0x9a65,0x7e9c,0x8b9c,0x8eaa,
+0x91c5,0x947d,0x947e,0x947c,0x9c77,0x9c78,0x9ef7,0x8c54,
+0x947f,0x9e1a,0x7228,0x9a6a,0x9b31,0x9e1b,0x9e1e,0x7c72,
+0x30fe,0x309d,0x309e,0x3005,0x3041,0x3042,0x3043,0x3044,
+0x3045,0x3046,0x3047,0x3048,0x3049,0x304a,0x304b,0x304c,
+0x304d,0x304e,0x304f,0x3050,0x3051,0x3052,0x3053,0x3054,
+0x3055,0x3056,0x3057,0x3058,0x3059,0x305a,0x305b,0x305c,
+0x305d,0x305e,0x305f,0x3060,0x3061,0x3062,0x3063,0x3064,
+0x3065,0x3066,0x3067,0x3068,0x3069,0x306a,0x306b,0x306c,
+0x306d,0x306e,0x306f,0x3070,0x3071,0x3072,0x3073,0x3074,
+0x3075,0x3076,0x3077,0x3078,0x3079,0x307a,0x307b,0x307c,
+0x307d,0x307e,0x307f,0x3080,0x3081,0x3082,0x3083,0x3084,
+0x3085,0x3086,0x3087,0x3088,0x3089,0x308a,0x308b,0x308c,
+0x308d,0x308e,0x308f,0x3090,0x3091,0x3092,0x3093,0x30a1,
+0x30a2,0x30a3,0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,
+0x30aa,0x30ab,0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,
+0x30b2,0x30b3,0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,
+0x30ba,0x30bb,0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,
+0x30c2,0x30c3,0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,
+0x30ca,0x30cb,0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,
+0x30d2,0x30d3,0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,
+0x30da,0x30db,0x30dc,0x30dd,0x30de,0x30df,0x30e0,0x30e1,
+0x30e2,0x30e3,0x30e4,0x30e5,0x30e6,0x30e7,0x30e8,0x30e9,
+0x30ea,0x30eb,0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,0x30f1,
+0x30f2,0x30f3,0x30f4,0x30f5,0x30f6,0x0414,0x0415,0x0401,
+0x0416,0x0417,0x0418,0x0419,0x041a,0x041b,0x041c,0x0423,
+0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042a,0x042b,
+0x042c,0x042d,0x042e,0x042f,0x0430,0x0431,0x0432,0x0433,
+0x0434,0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,0x043a,
+0x043b,0x043c,0x043d,0x043e,0x043f,0x0440,0x0441,0x0442,
+0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044a,
+0x044b,0x044c,0x044d,0x044e,0x044f,0x2460,0x2461,0x2462,
+0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x2474,
+0x2475,0x2476,0x2477,0x2478,0x2479,0x247a,0x247b,0x247c,
+0x247d, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x4e42,0x4e5c,0x51f5,0x531a,0x5382,0x4e07,0x4e0c,0x4e47,
+0x4e8d,0x56d7,0xfa0c,0x5c6e,0x5f73,0x4e0f,0x5187,0x4e0e,
+0x4e2e,0x4e93,0x4ec2,0x4ec9,0x4ec8,0x5198,0x52fc,0x536c,
+0x53b9,0x5720,0x5903,0x592c,0x5c10,0x5dff,0x65e1,0x6bb3,
+0x6bcc,0x6c14,0x723f,0x4e31,0x4e3c,0x4ee8,0x4edc,0x4ee9,
+0x4ee1,0x4edd,0x4eda,0x520c,0x531c,0x534c,0x5722,0x5723,
+0x5917,0x592f,0x5b81,0x5b84,0x5c12,0x5c3b,0x5c74,0x5c73,
+0x5e04,0x5e80,0x5e82,0x5fc9,0x6209,0x6250,0x6c15,0x6c36,
+0x6c43,0x6c3f,0x6c3b,0x72ae,0x72b0,0x738a,0x79b8,0x808a,
+0x961e,0x4f0e,0x4f18,0x4f2c,0x4ef5,0x4f14,0x4ef1,0x4f00,
+0x4ef7,0x4f08,0x4f1d,0x4f02,0x4f05,0x4f22,0x4f13,0x4f04,
+0x4ef4,0x4f12,0x51b1,0x5213,0x5209,0x5210,0x52a6,0x5322,
+0x531f,0x534d,0x538a,0x5407,0x56e1,0x56df,0x572e,0x572a,
+0x5734,0x593c,0x5980,0x597c,0x5985,0x597b,0x597e,0x5977,
+0x597f,0x5b56,0x5c15,0x5c25,0x5c7c,0x5c7a,0x5c7b,0x5c7e,
+0x5ddf,0x5e75,0x5e84,0x5f02,0x5f1a,0x5f74,0x5fd5,0x5fd4,
+0x5fcf,0x625c,0x625e,0x6264,0x6261,0x6266,0x6262,0x6259,
+0x6260,0x625a,0x6265,0x65ef,0x65ee,0x673e,0x6739,0x6738,
+0x673b,0x673a,0x673f,0x673c,0x6733,0x6c18,0x6c46,0x6c52,
+0x6c5c,0x6c4f,0x6c4a,0x6c54,0x6c4b,0x6c4c,0x7071,0x725e,
+0x72b4,0x72b5,0x738e,0x752a,0x767f,0x7a75,0x7f51,0x8278,
+0x827c,0x8280,0x827d,0x827f,0x864d,0x897e,0x9099,0x9097,
+0x9098,0x909b,0x9094,0x9622,0x9624,0x9620,0x9623,0x4f56,
+0x4f3b,0x4f62,0x4f49,0x4f53,0x4f64,0x4f3e,0x4f67,0x4f52,
+0x4f5f,0x4f41,0x4f58,0x4f2d,0x4f33,0x4f3f,0x4f61,0x518f,
+0x51b9,0x521c,0x521e,0x5221,0x52ad,0x52ae,0x5309,0x5363,
+0x5372,0x538e,0x538f,0x5430,0x5437,0x542a,0x5454,0x5445,
+0x5419,0x541c,0x5425,0x5418,0x543d,0x544f,0x5441,0x5428,
+0x5424,0x5447,0x56ee,0x56e7,0x56e5,0x5741,0x5745,0x574c,
+0x5749,0x574b,0x5752,0x5906,0x5940,0x59a6,0x5998,0x59a0,
+0x5997,0x598e,0x59a2,0x5990,0x598f,0x59a7,0x59a1,0x5b8e,
+0x5b92,0x5c28,0x5c2a,0x5c8d,0x5c8f,0x5c88,0x5c8b,0x5c89,
+0x5c92,0x5c8a,0x5c86,0x5c93,0x5c95,0x5de0,0x5e0a,0x5e0e,
+0x5e8b,0x5e89,0x5e8c,0x5e88,0x5e8d,0x5f05,0x5f1d,0x5f78,
+0x5f76,0x5fd2,0x5fd1,0x5fd0,0x5fed,0x5fe8,0x5fee,0x5ff3,
+0x5fe1,0x5fe4,0x5fe3,0x5ffa,0x5fef,0x5ff7,0x5ffb,0x6000,
+0x5ff4,0x623a,0x6283,0x628c,0x628e,0x628f,0x6294,0x6287,
+0x6271,0x627b,0x627a,0x6270,0x6281,0x6288,0x6277,0x627d,
+0x6272,0x6274,0x6537,0x65f0,0x65f4,0x65f3,0x65f2,0x65f5,
+0x6745,0x6747,0x6759,0x6755,0x674c,0x6748,0x675d,0x674d,
+0x675a,0x674b,0x6bd0,0x6c19,0x6c1a,0x6c78,0x6c67,0x6c6b,
+0x6c84,0x6c8b,0x6c8f,0x6c71,0x6c6f,0x6c69,0x6c9a,0x6c6d,
+0x6c87,0x6c95,0x6c9c,0x6c66,0x6c73,0x6c65,0x6c7b,0x6c8e,
+0x7074,0x707a,0x7263,0x72bf,0x72bd,0x72c3,0x72c6,0x72c1,
+0x72ba,0x72c5,0x7395,0x7397,0x7393,0x7394,0x7392,0x753a,
+0x7539,0x7594,0x7595,0x7681,0x793d,0x8034,0x8095,0x8099,
+0x8090,0x8092,0x809c,0x8290,0x828f,0x8285,0x828e,0x8291,
+0x8293,0x828a,0x8283,0x8284,0x8c78,0x8fc9,0x8fbf,0x909f,
+0x90a1,0x90a5,0x909e,0x90a7,0x90a0,0x9630,0x9628,0x962f,
+0x962d,0x4e33,0x4f98,0x4f7c,0x4f85,0x4f7d,0x4f80,0x4f87,
+0x4f76,0x4f74,0x4f89,0x4f84,0x4f77,0x4f4c,0x4f97,0x4f6a,
+0x4f9a,0x4f79,0x4f81,0x4f78,0x4f90,0x4f9c,0x4f94,0x4f9e,
+0x4f92,0x4f82,0x4f95,0x4f6b,0x4f6e,0x519e,0x51bc,0x51be,
+0x5235,0x5232,0x5233,0x5246,0x5231,0x52bc,0x530a,0x530b,
+0x533c,0x5392,0x5394,0x5487,0x547f,0x5481,0x5491,0x5482,
+0x5488,0x546b,0x547a,0x547e,0x5465,0x546c,0x5474,0x5466,
+0x548d,0x546f,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464,
+0x56f7,0x56f9,0x576f,0x5772,0x576d,0x576b,0x5771,0x5770,
+0x5776,0x5780,0x5775,0x577b,0x5773,0x5774,0x5762,0x5768,
+0x577d,0x590c,0x5945,0x59b5,0x59ba,0x59cf,0x59ce,0x59b2,
+0x59cc,0x59c1,0x59b6,0x59bc,0x59c3,0x59d6,0x59b1,0x59bd,
+0x59c0,0x59c8,0x59b4,0x59c7,0x5b62,0x5b65,0x5b93,0x5b95,
+0x5c44,0x5c47,0x5cae,0x5ca4,0x5ca0,0x5cb5,0x5caf,0x5ca8,
+0x5cac,0x5c9f,0x5ca3,0x5cad,0x5ca2,0x5caa,0x5ca7,0x5c9d,
+0x5ca5,0x5cb6,0x5cb0,0x5ca6,0x5e17,0x5e14,0x5e19,0x5f28,
+0x5f22,0x5f23,0x5f24,0x5f54,0x5f82,0x5f7e,0x5f7d,0x5fde,
+0x5fe5,0x602d,0x6026,0x6019,0x6032,0x600b,0x6034,0x600a,
+0x6017,0x6033,0x601a,0x601e,0x602c,0x6022,0x600d,0x6010,
+0x602e,0x6013,0x6011,0x600c,0x6009,0x601c,0x6214,0x623d,
+0x62ad,0x62b4,0x62d1,0x62be,0x62aa,0x62b6,0x62ca,0x62ae,
+0x62b3,0x62af,0x62bb,0x62a9,0x62b0,0x62b8,0x653d,0x65a8,
+0x65bb,0x6609,0x65fc,0x6604,0x6612,0x6608,0x65fb,0x6603,
+0x660b,0x660d,0x6605,0x65fd,0x6611,0x6610,0x66f6,0x670a,
+0x6785,0x676c,0x678e,0x6792,0x6776,0x677b,0x6798,0x6786,
+0x6784,0x6774,0x678d,0x678c,0x677a,0x679f,0x6791,0x6799,
+0x6783,0x677d,0x6781,0x6778,0x6779,0x6794,0x6b25,0x6b80,
+0x6b7e,0x6bde,0x6c1d,0x6c93,0x6cec,0x6ceb,0x6cee,0x6cd9,
+0x6cb6,0x6cd4,0x6cad,0x6ce7,0x6cb7,0x6cd0,0x6cc2,0x6cba,
+0x6cc3,0x6cc6,0x6ced,0x6cf2,0x6cd2,0x6cdd,0x6cb4,0x6c8a,
+0x6c9d,0x6c80,0x6cde,0x6cc0,0x6d30,0x6ccd,0x6cc7,0x6cb0,
+0x6cf9,0x6ccf,0x6ce9,0x6cd1,0x7094,0x7098,0x7085,0x7093,
+0x7086,0x7084,0x7091,0x7096,0x7082,0x709a,0x7083,0x726a,
+0x72d6,0x72cb,0x72d8,0x72c9,0x72dc,0x72d2,0x72d4,0x72da,
+0x72cc,0x72d1,0x73a4,0x73a1,0x73ad,0x73a6,0x73a2,0x73a0,
+0x73ac,0x739d,0x74dd,0x74e8,0x753f,0x7540,0x753e,0x758c,
+0x7598,0x76af,0x76f3,0x76f1,0x76f0,0x76f5,0x77f8,0x77fc,
+0x77f9,0x77fb,0x77fa,0x77f7,0x7942,0x793f,0x79c5,0x7a78,
+0x7a7b,0x7afb,0x7c75,0x7cfd,0x8035,0x808f,0x80ae,0x80a3,
+0x80b8,0x80b5,0x80ad,0x8220,0x82a0,0x82c0,0x82ab,0x829a,
+0x8298,0x829b,0x82b5,0x82a7,0x82ae,0x82bc,0x829e,0x82ba,
+0x82b4,0x82a8,0x82a1,0x82a9,0x82c2,0x82a4,0x82c3,0x82b6,
+0x82a2,0x8670,0x866f,0x866d,0x866e,0x8c56,0x8fd2,0x8fcb,
+0x8fd3,0x8fcd,0x8fd6,0x8fd5,0x8fd7,0x90b2,0x90b4,0x90af,
+0x90b3,0x90b0,0x9639,0x963d,0x963c,0x963a,0x9643,0x4fcd,
+0x4fc5,0x4fd3,0x4fb2,0x4fc9,0x4fcb,0x4fc1,0x4fd4,0x4fdc,
+0x4fd9,0x4fbb,0x4fb3,0x4fdb,0x4fc7,0x4fd6,0x4fba,0x4fc0,
+0x4fb9,0x4fec,0x5244,0x5249,0x52c0,0x52c2,0x533d,0x537c,
+0x5397,0x5396,0x5399,0x5398,0x54ba,0x54a1,0x54ad,0x54a5,
+0x54cf,0x54c3,0x830d,0x54b7,0x54ae,0x54d6,0x54b6,0x54c5,
+0x54c6,0x54a0,0x5470,0x54bc,0x54a2,0x54be,0x5472,0x54de,
+0x54b0,0x57b5,0x579e,0x579f,0x57a4,0x578c,0x5797,0x579d,
+0x579b,0x5794,0x5798,0x578f,0x5799,0x57a5,0x579a,0x5795,
+0x58f4,0x590d,0x5953,0x59e1,0x59de,0x59ee,0x5a00,0x59f1,
+0x59dd,0x59fa,0x59fd,0x59fc,0x59f6,0x59e4,0x59f2,0x59f7,
+0x59db,0x59e9,0x59f3,0x59f5,0x59e0,0x59fe,0x59f4,0x59ed,
+0x5ba8,0x5c4c,0x5cd0,0x5cd8,0x5ccc,0x5cd7,0x5ccb,0x5cdb,
+0x5cde,0x5cda,0x5cc9,0x5cc7,0x5cca,0x5cd6,0x5cd3,0x5cd4,
+0x5ccf,0x5cc8,0x5cc6,0x5cce,0x5cdf,0x5cf8,0x5df9,0x5e21,
+0x5e22,0x5e23,0x5e20,0x5e24,0x5eb0,0x5ea4,0x5ea2,0x5e9b,
+0x5ea3,0x5ea5,0x5f07,0x5f2e,0x5f56,0x5f86,0x6037,0x6039,
+0x6054,0x6072,0x605e,0x6045,0x6053,0x6047,0x6049,0x605b,
+0x604c,0x6040,0x6042,0x605f,0x6024,0x6044,0x6058,0x6066,
+0x606e,0x6242,0x6243,0x62cf,0x630d,0x630b,0x62f5,0x630e,
+0x6303,0x62eb,0x62f9,0x630f,0x630c,0x62f8,0x62f6,0x6300,
+0x6313,0x6314,0x62fa,0x6315,0x62fb,0x62f0,0x6541,0x6543,
+0x65aa,0x65bf,0x6636,0x6621,0x6632,0x6635,0x661c,0x6626,
+0x6622,0x6633,0x662b,0x663a,0x661d,0x6634,0x6639,0x662e,
+0x670f,0x6710,0x67c1,0x67f2,0x67c8,0x67ba,0x67dc,0x67bb,
+0x67f8,0x67d8,0x67c0,0x67b7,0x67c5,0x67eb,0x67e4,0x67df,
+0x67b5,0x67cd,0x67b3,0x67f7,0x67f6,0x67ee,0x67e3,0x67c2,
+0x67b9,0x67ce,0x67e7,0x67f0,0x67b2,0x67fc,0x67c6,0x67ed,
+0x67cc,0x67ae,0x67e6,0x67db,0x67fa,0x67c9,0x67ca,0x67c3,
+0x67ea,0x67cb,0x6b28,0x6b82,0x6b84,0x6bb6,0x6bd6,0x6bd8,
+0x6be0,0x6c20,0x6c21,0x6d28,0x6d34,0x6d2d,0x6d1f,0x6d3c,
+0x6d3f,0x6d12,0x6d0a,0x6cda,0x6d33,0x6d04,0x6d19,0x6d3a,
+0x6d1a,0x6d11,0x6d00,0x6d1d,0x6d42,0x6d01,0x6d18,0x6d37,
+0x6d03,0x6d0f,0x6d40,0x6d07,0x6d20,0x6d2c,0x6d08,0x6d22,
+0x6d09,0x6d10,0x70b7,0x709f,0x70be,0x70b1,0x70b0,0x70a1,
+0x70b4,0x70b5,0x70a9,0x7241,0x7249,0x724a,0x726c,0x7270,
+0x7273,0x726e,0x72ca,0x72e4,0x72e8,0x72eb,0x72df,0x72ea,
+0x72e6,0x72e3,0x7385,0x73cc,0x73c2,0x73c8,0x73c5,0x73b9,
+0x73b6,0x73b5,0x73b4,0x73eb,0x73bf,0x73c7,0x73be,0x73c3,
+0x73c6,0x73b8,0x73cb,0x74ec,0x74ee,0x752e,0x7547,0x7548,
+0x75a7,0x75aa,0x7679,0x76c4,0x7708,0x7703,0x7704,0x7705,
+0x770a,0x76f7,0x76fb,0x76fa,0x77e7,0x77e8,0x7806,0x7811,
+0x7812,0x7805,0x7810,0x780f,0x780e,0x7809,0x7803,0x7813,
+0x794a,0x794c,0x794b,0x7945,0x7944,0x79d5,0x79cd,0x79cf,
+0x79d6,0x79ce,0x7a80,0x7a7e,0x7ad1,0x7b00,0x7b01,0x7c7a,
+0x7c78,0x7c79,0x7c7f,0x7c80,0x7c81,0x7d03,0x7d08,0x7d01,
+0x7f58,0x7f91,0x7f8d,0x7fbe,0x8007,0x800e,0x800f,0x8014,
+0x8037,0x80d8,0x80c7,0x80e0,0x80d1,0x80c8,0x80c2,0x80d0,
+0x80c5,0x80e3,0x80d9,0x80dc,0x80ca,0x80d5,0x80c9,0x80cf,
+0x80d7,0x80e6,0x80cd,0x81ff,0x8221,0x8294,0x82d9,0x82fe,
+0x82f9,0x8307,0x82e8,0x8300,0x82d5,0x833a,0x82eb,0x82d6,
+0x82f4,0x82ec,0x82e1,0x82f2,0x82f5,0x830c,0x82fb,0x82f6,
+0x82f0,0x82ea,0x82e4,0x82e0,0x82fa,0x82f3,0x82ed,0x8677,
+0x8674,0x867c,0x8673,0x8841,0x884e,0x8867,0x886a,0x8869,
+0x89d3,0x8a04,0x8a07,0x8d72,0x8fe3,0x8fe1,0x8fee,0x8fe0,
+0x90f1,0x90bd,0x90bf,0x90d5,0x90c5,0x90be,0x90c7,0x90cb,
+0x90c8,0x91d4,0x91d3,0x9654,0x964f,0x9651,0x9653,0x964a,
+0x964e,0x501e,0x5005,0x5007,0x5013,0x5022,0x5030,0x501b,
+0x4ff5,0x4ff4,0x5033,0x5037,0x502c,0x4ff6,0x4ff7,0x5017,
+0x501c,0x5020,0x5027,0x5035,0x502f,0x5031,0x500e,0x515a,
+0x5194,0x5193,0x51ca,0x51c4,0x51c5,0x51c8,0x51ce,0x5261,
+0x525a,0x5252,0x525e,0x525f,0x5255,0x5262,0x52cd,0x530e,
+0x539e,0x5526,0x54e2,0x5517,0x5512,0x54e7,0x54f3,0x54e4,
+0x551a,0x54ff,0x5504,0x5508,0x54eb,0x5511,0x5505,0x54f1,
+0x550a,0x54fb,0x54f7,0x54f8,0x54e0,0x550e,0x5503,0x550b,
+0x5701,0x5702,0x57cc,0x5832,0x57d5,0x57d2,0x57ba,0x57c6,
+0x57bd,0x57bc,0x57b8,0x57b6,0x57bf,0x57c7,0x57d0,0x57b9,
+0x57c1,0x590e,0x594a,0x5a19,0x5a16,0x5a2d,0x5a2e,0x5a15,
+0x5a0f,0x5a17,0x5a0a,0x5a1e,0x5a33,0x5b6c,0x5ba7,0x5bad,
+0x5bac,0x5c03,0x5c56,0x5c54,0x5cec,0x5cff,0x5cee,0x5cf1,
+0x5cf7,0x5d00,0x5cf9,0x5e29,0x5e28,0x5ea8,0x5eae,0x5eaa,
+0x5eac,0x5f33,0x5f30,0x5f67,0x605d,0x605a,0x6067,0x6041,
+0x60a2,0x6088,0x6080,0x6092,0x6081,0x609d,0x6083,0x6095,
+0x609b,0x6097,0x6087,0x609c,0x608e,0x6219,0x6246,0x62f2,
+0x6310,0x6356,0x632c,0x6344,0x6345,0x6336,0x6343,0x63e4,
+0x6339,0x634b,0x634a,0x633c,0x6329,0x6341,0x6334,0x6358,
+0x6354,0x6359,0x632d,0x6347,0x6333,0x635a,0x6351,0x6338,
+0x6357,0x6340,0x6348,0x654a,0x6546,0x65c6,0x65c3,0x65c4,
+0x65c2,0x664a,0x665f,0x6647,0x6651,0x6712,0x6713,0x681f,
+0x681a,0x6849,0x6832,0x6833,0x683b,0x684b,0x684f,0x6816,
+0x6831,0x681c,0x6835,0x682b,0x682d,0x682f,0x684e,0x6844,
+0x6834,0x681d,0x6812,0x6814,0x6826,0x6828,0x682e,0x684d,
+0x683a,0x6825,0x6820,0x6b2c,0x6b2f,0x6b2d,0x6b31,0x6b34,
+0x6b6d,0x8082,0x6b88,0x6be6,0x6be4,0x6be8,0x6be3,0x6be2,
+0x6be7,0x6c25,0x6d7a,0x6d63,0x6d64,0x6d76,0x6d0d,0x6d61,
+0x6d92,0x6d58,0x6d62,0x6d6d,0x6d6f,0x6d91,0x6d8d,0x6def,
+0x6d7f,0x6d86,0x6d5e,0x6d67,0x6d60,0x6d97,0x6d70,0x6d7c,
+0x6d5f,0x6d82,0x6d98,0x6d2f,0x6d68,0x6d8b,0x6d7e,0x6d80,
+0x6d84,0x6d16,0x6d83,0x6d7b,0x6d7d,0x6d75,0x6d90,0x70dc,
+0x70d3,0x70d1,0x70dd,0x70cb,0x7f39,0x70e2,0x70d7,0x70d2,
+0x70de,0x70e0,0x70d4,0x70cd,0x70c5,0x70c6,0x70c7,0x70da,
+0x70ce,0x70e1,0x7242,0x7278,0x7277,0x7276,0x7300,0x72fa,
+0x72f4,0x72fe,0x72f6,0x72f3,0x72fb,0x7301,0x73d3,0x73d9,
+0x73e5,0x73d6,0x73bc,0x73e7,0x73e3,0x73e9,0x73dc,0x73d2,
+0x73db,0x73d4,0x73dd,0x73da,0x73d7,0x73d8,0x73e8,0x74de,
+0x74df,0x74f4,0x74f5,0x7521,0x755b,0x755f,0x75b0,0x75c1,
+0x75bb,0x75c4,0x75c0,0x75bf,0x75b6,0x75ba,0x768a,0x76c9,
+0x771d,0x771b,0x7710,0x7713,0x7712,0x7723,0x7711,0x7715,
+0x7719,0x771a,0x7722,0x7727,0x7823,0x782c,0x7822,0x7835,
+0x782f,0x7828,0x782e,0x782b,0x7821,0x7829,0x7833,0x782a,
+0x7831,0x7954,0x795b,0x794f,0x795c,0x7953,0x7952,0x7951,
+0x79eb,0x79ec,0x79e0,0x79ee,0x79ed,0x79ea,0x79dc,0x79de,
+0x79dd,0x7a86,0x7a89,0x7a85,0x7a8b,0x7a8c,0x7a8a,0x7a87,
+0x7ad8,0x7b10,0x7b04,0x7b13,0x7b05,0x7b0f,0x7b08,0x7b0a,
+0x7b0e,0x7b09,0x7b12,0x7c84,0x7c91,0x7c8a,0x7c8c,0x7c88,
+0x7c8d,0x7c85,0x7d1e,0x7d1d,0x7d11,0x7d0e,0x7d18,0x7d16,
+0x7d13,0x7d1f,0x7d12,0x7d0f,0x7d0c,0x7f5c,0x7f61,0x7f5e,
+0x7f60,0x7f5d,0x7f5b,0x7f96,0x7f92,0x7fc3,0x7fc2,0x7fc0,
+0x8016,0x803e,0x8039,0x80fa,0x80f2,0x80f9,0x80f5,0x8101,
+0x80fb,0x8100,0x8201,0x822f,0x8225,0x8333,0x832d,0x8344,
+0x8319,0x8351,0x8325,0x8356,0x833f,0x8341,0x8326,0x831c,
+0x8322,0x8342,0x834e,0x831b,0x832a,0x8308,0x833c,0x834d,
+0x8316,0x8324,0x8320,0x8337,0x832f,0x8329,0x8347,0x8345,
+0x834c,0x8353,0x831e,0x832c,0x834b,0x8327,0x8348,0x8653,
+0x8652,0x86a2,0x86a8,0x8696,0x868d,0x8691,0x869e,0x8687,
+0x8697,0x8686,0x868b,0x869a,0x8685,0x86a5,0x8699,0x86a1,
+0x86a7,0x8695,0x8698,0x868e,0x869d,0x8690,0x8694,0x8843,
+0x8844,0x886d,0x8875,0x8876,0x8872,0x8880,0x8871,0x887f,
+0x886f,0x8883,0x887e,0x8874,0x887c,0x8a12,0x8c47,0x8c57,
+0x8c7b,0x8ca4,0x8ca3,0x8d76,0x8d78,0x8db5,0x8db7,0x8db6,
+0x8ed1,0x8ed3,0x8ffe,0x8ff5,0x9002,0x8fff,0x8ffb,0x9004,
+0x8ffc,0x8ff6,0x90d6,0x90e0,0x90d9,0x90da,0x90e3,0x90df,
+0x90e5,0x90d8,0x90db,0x90d7,0x90dc,0x90e4,0x9150,0x914e,
+0x914f,0x91d5,0x91e2,0x91da,0x965c,0x965f,0x96bc,0x98e3,
+0x9adf,0x9b2f,0x4e7f,0x5070,0x506a,0x5061,0x505e,0x5060,
+0x5053,0x504b,0x505d,0x5072,0x5048,0x504d,0x5041,0x505b,
+0x504a,0x5062,0x5015,0x5045,0x505f,0x5069,0x506b,0x5063,
+0x5064,0x5046,0x5040,0x506e,0x5073,0x5057,0x5051,0x51d0,
+0x526b,0x526d,0x526c,0x526e,0x52d6,0x52d3,0x532d,0x539c,
+0x5575,0x5576,0x553c,0x554d,0x5550,0x5534,0x552a,0x5551,
+0x5562,0x5536,0x5535,0x5530,0x5552,0x5545,0x550c,0x5532,
+0x5565,0x554e,0x5539,0x5548,0x552d,0x553b,0x5540,0x554b,
+0x570a,0x5707,0x57fb,0x5814,0x57e2,0x57f6,0x57dc,0x57f4,
+0x5800,0x57ed,0x57fd,0x5808,0x57f8,0x580b,0x57f3,0x57cf,
+0x5807,0x57ee,0x57e3,0x57f2,0x57e5,0x57ec,0x57e1,0x580e,
+0x57fc,0x5810,0x57e7,0x5801,0x580c,0x57f1,0x57e9,0x57f0,
+0x580d,0x5804,0x595c,0x5a60,0x5a58,0x5a55,0x5a67,0x5a5e,
+0x5a38,0x5a35,0x5a6d,0x5a50,0x5a5f,0x5a65,0x5a6c,0x5a53,
+0x5a64,0x5a57,0x5a43,0x5a5d,0x5a52,0x5a44,0x5a5b,0x5a48,
+0x5a8e,0x5a3e,0x5a4d,0x5a39,0x5a4c,0x5a70,0x5a69,0x5a47,
+0x5a51,0x5a56,0x5a42,0x5a5c,0x5b72,0x5b6e,0x5bc1,0x5bc0,
+0x5c59,0x5d1e,0x5d0b,0x5d1d,0x5d1a,0x5d20,0x5d0c,0x5d28,
+0x5d0d,0x5d26,0x5d25,0x5d0f,0x5d30,0x5d12,0x5d23,0x5d1f,
+0x5d2e,0x5e3e,0x5e34,0x5eb1,0x5eb4,0x5eb9,0x5eb2,0x5eb3,
+0x5f36,0x5f38,0x5f9b,0x5f96,0x5f9f,0x608a,0x6090,0x6086,
+0x60be,0x60b0,0x60ba,0x60d3,0x60d4,0x60cf,0x60e4,0x60d9,
+0x60dd,0x60c8,0x60b1,0x60db,0x60b7,0x60ca,0x60bf,0x60c3,
+0x60cd,0x60c0,0x6332,0x6365,0x638a,0x6382,0x637d,0x63bd,
+0x639e,0x63ad,0x639d,0x6397,0x63ab,0x638e,0x636f,0x6387,
+0x6390,0x636e,0x63af,0x6375,0x639c,0x636d,0x63ae,0x637c,
+0x63a4,0x633b,0x639f,0x6378,0x6385,0x6381,0x6391,0x638d,
+0x6370,0x6553,0x65cd,0x6665,0x6661,0x665b,0x6659,0x665c,
+0x6662,0x6718,0x6879,0x6887,0x6890,0x689c,0x686d,0x686e,
+0x68ae,0x68ab,0x6956,0x686f,0x68a3,0x68ac,0x68a9,0x6875,
+0x6874,0x68b2,0x688f,0x6877,0x6892,0x687c,0x686b,0x6872,
+0x68aa,0x6880,0x6871,0x687e,0x689b,0x6896,0x688b,0x68a0,
+0x6889,0x68a4,0x6878,0x687b,0x6891,0x688c,0x688a,0x687d,
+0x6b36,0x6b33,0x6b37,0x6b38,0x6b91,0x6b8f,0x6b8d,0x6b8e,
+0x6b8c,0x6c2a,0x6dc0,0x6dab,0x6db4,0x6db3,0x6e74,0x6dac,
+0x6de9,0x6de2,0x6db7,0x6df6,0x6dd4,0x6e00,0x6dc8,0x6de0,
+0x6ddf,0x6dd6,0x6dbe,0x6de5,0x6ddc,0x6ddd,0x6ddb,0x6df4,
+0x6dca,0x6dbd,0x6ded,0x6df0,0x6dba,0x6dd5,0x6dc2,0x6dcf,
+0x6dc9,0x6dd0,0x6df2,0x6dd3,0x6dfd,0x6dd7,0x6dcd,0x6de3,
+0x6dbb,0x70fa,0x710d,0x70f7,0x7117,0x70f4,0x710c,0x70f0,
+0x7104,0x70f3,0x7110,0x70fc,0x70ff,0x7106,0x7113,0x7100,
+0x70f8,0x70f6,0x710b,0x7102,0x710e,0x727e,0x727b,0x727c,
+0x727f,0x731d,0x7317,0x7307,0x7311,0x7318,0x730a,0x7308,
+0x72ff,0x730f,0x731e,0x7388,0x73f6,0x73f8,0x73f5,0x7404,
+0x7401,0x73fd,0x7407,0x7400,0x73fa,0x73fc,0x73ff,0x740c,
+0x740b,0x73f4,0x7408,0x7564,0x7563,0x75ce,0x75d2,0x75cf,
+0x75cb,0x75cc,0x75d1,0x75d0,0x768f,0x7689,0x76d3,0x7739,
+0x772f,0x772d,0x7731,0x7732,0x7734,0x7733,0x773d,0x7725,
+0x773b,0x7735,0x7848,0x7852,0x7849,0x784d,0x784a,0x784c,
+0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796a,0x7963,
+0x796b,0x7961,0x79bb,0x79fa,0x79f8,0x79f6,0x79f7,0x7a8f,
+0x7a94,0x7a90,0x7b35,0x7b47,0x7b34,0x7b25,0x7b30,0x7b22,
+0x7b24,0x7b33,0x7b18,0x7b2a,0x7b1d,0x7b31,0x7b2b,0x7b2d,
+0x7b2f,0x7b32,0x7b38,0x7b1a,0x7b23,0x7c94,0x7c98,0x7c96,
+0x7ca3,0x7d35,0x7d3d,0x7d38,0x7d36,0x7d3a,0x7d45,0x7d2c,
+0x7d29,0x7d41,0x7d47,0x7d3e,0x7d3f,0x7d4a,0x7d3b,0x7d28,
+0x7f63,0x7f95,0x7f9c,0x7f9d,0x7f9b,0x7fca,0x7fcb,0x7fcd,
+0x7fd0,0x7fd1,0x7fc7,0x7fcf,0x7fc9,0x801f,0x801e,0x801b,
+0x8047,0x8043,0x8048,0x8118,0x8125,0x8119,0x811b,0x812d,
+0x811f,0x812c,0x811e,0x8121,0x8115,0x8127,0x811d,0x8122,
+0x8211,0x8238,0x8233,0x823a,0x8234,0x8232,0x8274,0x8390,
+0x83a3,0x83a8,0x838d,0x837a,0x8373,0x83a4,0x8374,0x838f,
+0x8381,0x8395,0x8399,0x8375,0x8394,0x83a9,0x837d,0x8383,
+0x838c,0x839d,0x839b,0x83aa,0x838b,0x837e,0x83a5,0x83af,
+0x8388,0x8397,0x83b0,0x837f,0x83a6,0x8387,0x83ae,0x8376,
+0x839a,0x8659,0x8656,0x86bf,0x86b7,0x86c2,0x86c1,0x86c5,
+0x86ba,0x86b0,0x86c8,0x86b9,0x86b3,0x86b8,0x86cc,0x86b4,
+0x86bb,0x86bc,0x86c3,0x86bd,0x86be,0x8852,0x8889,0x8895,
+0x88a8,0x88a2,0x88aa,0x889a,0x8891,0x88a1,0x889f,0x8898,
+0x88a7,0x8899,0x889b,0x8897,0x88a4,0x88ac,0x888c,0x8893,
+0x888e,0x8982,0x89d6,0x89d9,0x89d5,0x8a30,0x8a27,0x8a2c,
+0x8a1e,0x8c39,0x8c3b,0x8c5c,0x8c5d,0x8c7d,0x8ca5,0x8d7d,
+0x8d7b,0x8d79,0x8dbc,0x8dc2,0x8db9,0x8dbf,0x8dc1,0x8ed8,
+0x8ede,0x8edd,0x8edc,0x8ed7,0x8ee0,0x8ee1,0x9024,0x900b,
+0x9011,0x901c,0x900c,0x9021,0x90ef,0x90ea,0x90f0,0x90f4,
+0x90f2,0x90f3,0x90d4,0x90eb,0x90ec,0x90e9,0x9156,0x9158,
+0x915a,0x9153,0x9155,0x91ec,0x91f4,0x91f1,0x91f3,0x91f8,
+0x91e4,0x91f9,0x91ea,0x91eb,0x91f7,0x91e8,0x91ee,0x957a,
+0x9586,0x9588,0x967c,0x966d,0x966b,0x9671,0x966f,0x96bf,
+0x976a,0x9804,0x98e5,0x9997,0x509b,0x5095,0x5094,0x509e,
+0x508b,0x50a3,0x5083,0x508c,0x508e,0x509d,0x5068,0x509c,
+0x5092,0x5082,0x5087,0x515f,0x51d4,0x5312,0x5311,0x53a4,
+0x53a7,0x5591,0x55a8,0x55a5,0x55ad,0x5577,0x5645,0x55a2,
+0x5593,0x5588,0x558f,0x55b5,0x5581,0x55a3,0x5592,0x55a4,
+0x557d,0x558c,0x55a6,0x557f,0x5595,0x55a1,0x558e,0x570c,
+0x5829,0x5837,0x5819,0x581e,0x5827,0x5823,0x5828,0x57f5,
+0x5848,0x5825,0x581c,0x581b,0x5833,0x583f,0x5836,0x582e,
+0x5839,0x5838,0x582d,0x582c,0x583b,0x5961,0x5aaf,0x5a94,
+0x5a9f,0x5a7a,0x5aa2,0x5a9e,0x5a78,0x5aa6,0x5a7c,0x5aa5,
+0x5aac,0x5a95,0x5aae,0x5a37,0x5a84,0x5a8a,0x5a97,0x5a83,
+0x5a8b,0x5aa9,0x5a7b,0x5a7d,0x5a8c,0x5a9c,0x5a8f,0x5a93,
+0x5a9d,0x5bea,0x5bcd,0x5bcb,0x5bd4,0x5bd1,0x5bca,0x5bce,
+0x5c0c,0x5c30,0x5d37,0x5d43,0x5d6b,0x5d41,0x5d4b,0x5d3f,
+0x5d35,0x5d51,0x5d4e,0x5d55,0x5d33,0x5d3a,0x5d52,0x5d3d,
+0x5d31,0x5d59,0x5d42,0x5d39,0x5d49,0x5d38,0x5d3c,0x5d32,
+0x5d36,0x5d40,0x5d45,0x5e44,0x5e41,0x5f58,0x5fa6,0x5fa5,
+0x5fab,0x60c9,0x60b9,0x60cc,0x60e2,0x60ce,0x60c4,0x6114,
+0x60f2,0x610a,0x6116,0x6105,0x60f5,0x6113,0x60f8,0x60fc,
+0x60fe,0x60c1,0x6103,0x6118,0x611d,0x6110,0x60ff,0x6104,
+0x610b,0x624a,0x6394,0x63b1,0x63b0,0x63ce,0x63e5,0x63e8,
+0x63ef,0x63c3,0x649d,0x63f3,0x63ca,0x63e0,0x63f6,0x63d5,
+0x63f2,0x63f5,0x6461,0x63df,0x63be,0x63dd,0x63dc,0x63c4,
+0x63d8,0x63d3,0x63c2,0x63c7,0x63cc,0x63cb,0x63c8,0x63f0,
+0x63d7,0x63d9,0x6532,0x6567,0x656a,0x6564,0x655c,0x6568,
+0x6565,0x658c,0x659d,0x659e,0x65ae,0x65d0,0x65d2,0x667c,
+0x666c,0x667b,0x6680,0x6671,0x6679,0x666a,0x6672,0x6701,
+0x690c,0x68d3,0x6904,0x68dc,0x692a,0x68ec,0x68ea,0x68f1,
+0x690f,0x68d6,0x68f7,0x68eb,0x68e4,0x68f6,0x6913,0x6910,
+0x68f3,0x68e1,0x6907,0x68cc,0x6908,0x6970,0x68b4,0x6911,
+0x68ef,0x68c6,0x6914,0x68f8,0x68d0,0x68fd,0x68fc,0x68e8,
+0x690b,0x690a,0x6917,0x68ce,0x68c8,0x68dd,0x68de,0x68e6,
+0x68f4,0x68d1,0x6906,0x68d4,0x68e9,0x6915,0x6925,0x68c7,
+0x6b39,0x6b3b,0x6b3f,0x6b3c,0x6b94,0x6b97,0x6b99,0x6b95,
+0x6bbd,0x6bf0,0x6bf2,0x6bf3,0x6c30,0x6dfc,0x6e46,0x6e47,
+0x6e1f,0x6e49,0x6e88,0x6e3c,0x6e3d,0x6e45,0x6e62,0x6e2b,
+0x6e3f,0x6e41,0x6e5d,0x6e73,0x6e1c,0x6e33,0x6e4b,0x6e40,
+0x6e51,0x6e3b,0x6e03,0x6e2e,0x6e5e,0x6e68,0x6e5c,0x6e61,
+0x6e31,0x6e28,0x6e60,0x6e71,0x6e6b,0x6e39,0x6e22,0x6e30,
+0x6e53,0x6e65,0x6e27,0x6e78,0x6e64,0x6e77,0x6e55,0x6e79,
+0x6e52,0x6e66,0x6e35,0x6e36,0x6e5a,0x7120,0x711e,0x712f,
+0x70fb,0x712e,0x7131,0x7123,0x7125,0x7122,0x7132,0x711f,
+0x7128,0x713a,0x711b,0x724b,0x725a,0x7288,0x7289,0x7286,
+0x7285,0x728b,0x7312,0x730b,0x7330,0x7322,0x7331,0x7333,
+0x7327,0x7332,0x732d,0x7326,0x7323,0x7335,0x730c,0x742e,
+0x742c,0x7430,0x742b,0x7416,0x741a,0x7421,0x742d,0x7431,
+0x7424,0x7423,0x741d,0x7429,0x7420,0x7432,0x74fb,0x752f,
+0x756f,0x756c,0x75e7,0x75da,0x75e1,0x75e6,0x75dd,0x75df,
+0x75e4,0x75d7,0x7695,0x7692,0x76da,0x7746,0x7747,0x7744,
+0x774d,0x7745,0x774a,0x774e,0x774b,0x774c,0x77de,0x77ec,
+0x7860,0x7864,0x7865,0x785c,0x786d,0x7871,0x786a,0x786e,
+0x7870,0x7869,0x7868,0x785e,0x7862,0x7974,0x7973,0x7972,
+0x7970,0x7a02,0x7a0a,0x7a03,0x7a0c,0x7a04,0x7a99,0x7ae6,
+0x7ae4,0x7b4a,0x7b3b,0x7b44,0x7b48,0x7b4c,0x7b4e,0x7b40,
+0x7b58,0x7b45,0x7ca2,0x7c9e,0x7ca8,0x7ca1,0x7d58,0x7d6f,
+0x7d63,0x7d53,0x7d56,0x7d67,0x7d6a,0x7d4f,0x7d6d,0x7d5c,
+0x7d6b,0x7d52,0x7d54,0x7d69,0x7d51,0x7d5f,0x7d4e,0x7f3e,
+0x7f3f,0x7f65,0x7f66,0x7fa2,0x7fa0,0x7fa1,0x7fd7,0x8051,
+0x804f,0x8050,0x80fe,0x80d4,0x8143,0x814a,0x8152,0x814f,
+0x8147,0x813d,0x814d,0x813a,0x81e6,0x81ee,0x81f7,0x81f8,
+0x81f9,0x8204,0x823c,0x823d,0x823f,0x8275,0x833b,0x83cf,
+0x83f9,0x8423,0x83c0,0x83e8,0x8412,0x83e7,0x83e4,0x83fc,
+0x83f6,0x8410,0x83c6,0x83c8,0x83eb,0x83e3,0x83bf,0x8401,
+0x83dd,0x83e5,0x83d8,0x83ff,0x83e1,0x83cb,0x83ce,0x83d6,
+0x83f5,0x83c9,0x8409,0x840f,0x83de,0x8411,0x8406,0x83c2,
+0x83f3,0x83d5,0x83fa,0x83c7,0x83d1,0x83ea,0x8413,0x83c3,
+0x83ec,0x83ee,0x83c4,0x83fb,0x83d7,0x83e2,0x841b,0x83db,
+0x83fe,0x86d8,0x86e2,0x86e6,0x86d3,0x86e3,0x86da,0x86ea,
+0x86dd,0x86eb,0x86dc,0x86ec,0x86e9,0x86d7,0x86e8,0x86d1,
+0x8848,0x8856,0x8855,0x88ba,0x88d7,0x88b9,0x88b8,0x88c0,
+0x88be,0x88b6,0x88bc,0x88b7,0x88bd,0x88b2,0x8901,0x88c9,
+0x8995,0x8998,0x8997,0x89dd,0x89da,0x89db,0x8a4e,0x8a4d,
+0x8a39,0x8a59,0x8a40,0x8a57,0x8a58,0x8a44,0x8a45,0x8a52,
+0x8a48,0x8a51,0x8a4a,0x8a4c,0x8a4f,0x8c5f,0x8c81,0x8c80,
+0x8cba,0x8cbe,0x8cb0,0x8cb9,0x8cb5,0x8d84,0x8d80,0x8d89,
+0x8dd8,0x8dd3,0x8dcd,0x8dc7,0x8dd6,0x8ddc,0x8dcf,0x8dd5,
+0x8dd9,0x8dc8,0x8dd7,0x8dc5,0x8eef,0x8ef7,0x8efa,0x8ef9,
+0x8ee6,0x8eee,0x8ee5,0x8ef5,0x8ee7,0x8ee8,0x8ef6,0x8eeb,
+0x8ef1,0x8eec,0x8ef4,0x8ee9,0x902d,0x9034,0x902f,0x9106,
+0x912c,0x9104,0x90ff,0x90fc,0x9108,0x90f9,0x90fb,0x9101,
+0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915f,0x9162,
+0x9160,0x9201,0x920a,0x9225,0x9203,0x921a,0x9226,0x920f,
+0x920c,0x9200,0x9212,0x91ff,0x91fd,0x9206,0x9204,0x9227,
+0x9202,0x921c,0x9224,0x9219,0x9217,0x9205,0x9216,0x957b,
+0x958d,0x958c,0x9590,0x9687,0x967e,0x9688,0x9689,0x9683,
+0x9680,0x96c2,0x96c8,0x96c3,0x96f1,0x96f0,0x976c,0x9770,
+0x976e,0x9807,0x98a9,0x98eb,0x9ce6,0x9ef9,0x4e83,0x4e84,
+0x4eb6,0x50bd,0x50bf,0x50c6,0x50ae,0x50c4,0x50ca,0x50b4,
+0x50c8,0x50c2,0x50b0,0x50c1,0x50ba,0x50b1,0x50cb,0x50c9,
+0x50b6,0x50b8,0x51d7,0x527a,0x5278,0x527b,0x527c,0x55c3,
+0x55db,0x55cc,0x55d0,0x55cb,0x55ca,0x55dd,0x55c0,0x55d4,
+0x55c4,0x55e9,0x55bf,0x55d2,0x558d,0x55cf,0x55d5,0x55e2,
+0x55d6,0x55c8,0x55f2,0x55cd,0x55d9,0x55c2,0x5714,0x5853,
+0x5868,0x5864,0x584f,0x584d,0x5849,0x586f,0x5855,0x584e,
+0x585d,0x5859,0x5865,0x585b,0x583d,0x5863,0x5871,0x58fc,
+0x5ac7,0x5ac4,0x5acb,0x5aba,0x5ab8,0x5ab1,0x5ab5,0x5ab0,
+0x5abf,0x5ac8,0x5abb,0x5ac6,0x5ab7,0x5ac0,0x5aca,0x5ab4,
+0x5ab6,0x5acd,0x5ab9,0x5a90,0x5bd6,0x5bd8,0x5bd9,0x5c1f,
+0x5c33,0x5d71,0x5d63,0x5d4a,0x5d65,0x5d72,0x5d6c,0x5d5e,
+0x5d68,0x5d67,0x5d62,0x5df0,0x5e4f,0x5e4e,0x5e4a,0x5e4d,
+0x5e4b,0x5ec5,0x5ecc,0x5ec6,0x5ecb,0x5ec7,0x5f40,0x5faf,
+0x5fad,0x60f7,0x6149,0x614a,0x612b,0x6145,0x6136,0x6132,
+0x612e,0x6146,0x612f,0x614f,0x6129,0x6140,0x6220,0x9168,
+0x6223,0x6225,0x6224,0x63c5,0x63f1,0x63eb,0x6410,0x6412,
+0x6409,0x6420,0x6424,0x6433,0x6443,0x641f,0x6415,0x6418,
+0x6439,0x6437,0x6422,0x6423,0x640c,0x6426,0x6430,0x6428,
+0x6441,0x6435,0x642f,0x640a,0x641a,0x6440,0x6425,0x6427,
+0x640b,0x63e7,0x641b,0x642e,0x6421,0x640e,0x656f,0x6592,
+0x65d3,0x6686,0x668c,0x6695,0x6690,0x668b,0x668a,0x6699,
+0x6694,0x6678,0x6720,0x6966,0x695f,0x6938,0x694e,0x6962,
+0x6971,0x693f,0x6945,0x696a,0x6939,0x6942,0x6957,0x6959,
+0x697a,0x6948,0x6949,0x6935,0x696c,0x6933,0x693d,0x6965,
+0x68f0,0x6978,0x6934,0x6969,0x6940,0x696f,0x6944,0x6976,
+0x6958,0x6941,0x6974,0x694c,0x693b,0x694b,0x6937,0x695c,
+0x694f,0x6951,0x6932,0x6952,0x692f,0x697b,0x693c,0x6b46,
+0x6b45,0x6b43,0x6b42,0x6b48,0x6b41,0x6b9b,0xfa0d,0x6bfb,
+0x6bfc,0x6bf9,0x6bf7,0x6bf8,0x6e9b,0x6ed6,0x6ec8,0x6e8f,
+0x6ec0,0x6e9f,0x6e93,0x6e94,0x6ea0,0x6eb1,0x6eb9,0x6ec6,
+0x6ed2,0x6ebd,0x6ec1,0x6e9e,0x6ec9,0x6eb7,0x6eb0,0x6ecd,
+0x6ea6,0x6ecf,0x6eb2,0x6ebe,0x6ec3,0x6edc,0x6ed8,0x6e99,
+0x6e92,0x6e8e,0x6e8d,0x6ea4,0x6ea1,0x6ebf,0x6eb3,0x6ed0,
+0x6eca,0x6e97,0x6eae,0x6ea3,0x7147,0x7154,0x7152,0x7163,
+0x7160,0x7141,0x715d,0x7162,0x7172,0x7178,0x716a,0x7161,
+0x7142,0x7158,0x7143,0x714b,0x7170,0x715f,0x7150,0x7153,
+0x7144,0x714d,0x715a,0x724f,0x728d,0x728c,0x7291,0x7290,
+0x728e,0x733c,0x7342,0x733b,0x733a,0x7340,0x734a,0x7349,
+0x7444,0x744a,0x744b,0x7452,0x7451,0x7457,0x7440,0x744f,
+0x7450,0x744e,0x7442,0x7446,0x744d,0x7454,0x74e1,0x74ff,
+0x74fe,0x74fd,0x751d,0x7579,0x7577,0x6983,0x75ef,0x760f,
+0x7603,0x75f7,0x75fe,0x75fc,0x75f9,0x75f8,0x7610,0x75fb,
+0x75f6,0x75ed,0x75f5,0x75fd,0x7699,0x76b5,0x76dd,0x7755,
+0x775f,0x7760,0x7752,0x7756,0x775a,0x7769,0x7767,0x7754,
+0x7759,0x776d,0x77e0,0x7887,0x789a,0x7894,0x788f,0x7884,
+0x7895,0x7885,0x7886,0x78a1,0x7883,0x7879,0x7899,0x7880,
+0x7896,0x787b,0x797c,0x7982,0x797d,0x7979,0x7a11,0x7a18,
+0x7a19,0x7a12,0x7a17,0x7a15,0x7a22,0x7a13,0x7a1b,0x7a10,
+0x7aa3,0x7aa2,0x7a9e,0x7aeb,0x7b66,0x7b64,0x7b6d,0x7b74,
+0x7b69,0x7b72,0x7b65,0x7b73,0x7b71,0x7b70,0x7b61,0x7b78,
+0x7b76,0x7b63,0x7cb2,0x7cb4,0x7caf,0x7d88,0x7d86,0x7d80,
+0x7d8d,0x7d7f,0x7d85,0x7d7a,0x7d8e,0x7d7b,0x7d83,0x7d7c,
+0x7d8c,0x7d94,0x7d84,0x7d7d,0x7d92,0x7f6d,0x7f6b,0x7f67,
+0x7f68,0x7f6c,0x7fa6,0x7fa5,0x7fa7,0x7fdb,0x7fdc,0x8021,
+0x8164,0x8160,0x8177,0x815c,0x8169,0x815b,0x8162,0x8172,
+0x6721,0x815e,0x8176,0x8167,0x816f,0x8144,0x8161,0x821d,
+0x8249,0x8244,0x8240,0x8242,0x8245,0x84f1,0x843f,0x8456,
+0x8476,0x8479,0x848f,0x848d,0x8465,0x8451,0x8440,0x8486,
+0x8467,0x8430,0x844d,0x847d,0x845a,0x8459,0x8474,0x8473,
+0x845d,0x8507,0x845e,0x8437,0x843a,0x8434,0x847a,0x8443,
+0x8478,0x8432,0x8445,0x8429,0x83d9,0x844b,0x842f,0x8442,
+0x842d,0x845f,0x8470,0x8439,0x844e,0x844c,0x8452,0x846f,
+0x84c5,0x848e,0x843b,0x8447,0x8436,0x8433,0x8468,0x847e,
+0x8444,0x842b,0x8460,0x8454,0x846e,0x8450,0x870b,0x8704,
+0x86f7,0x870c,0x86fa,0x86d6,0x86f5,0x874d,0x86f8,0x870e,
+0x8709,0x8701,0x86f6,0x870d,0x8705,0x88d6,0x88cb,0x88cd,
+0x88ce,0x88de,0x88db,0x88da,0x88cc,0x88d0,0x8985,0x899b,
+0x89df,0x89e5,0x89e4,0x89e1,0x89e0,0x89e2,0x89dc,0x89e6,
+0x8a76,0x8a86,0x8a7f,0x8a61,0x8a3f,0x8a77,0x8a82,0x8a84,
+0x8a75,0x8a83,0x8a81,0x8a74,0x8a7a,0x8c3c,0x8c4b,0x8c4a,
+0x8c65,0x8c64,0x8c66,0x8c86,0x8c84,0x8c85,0x8ccc,0x8d68,
+0x8d69,0x8d91,0x8d8c,0x8d8e,0x8d8f,0x8d8d,0x8d93,0x8d94,
+0x8d90,0x8d92,0x8df0,0x8de0,0x8dec,0x8df1,0x8dee,0x8dd0,
+0x8de9,0x8de3,0x8de2,0x8de7,0x8df2,0x8deb,0x8df4,0x8f06,
+0x8eff,0x8f01,0x8f00,0x8f05,0x8f07,0x8f08,0x8f02,0x8f0b,
+0x9052,0x903f,0x9044,0x9049,0x903d,0x9110,0x910d,0x910f,
+0x9111,0x9116,0x9114,0x910b,0x910e,0x916e,0x916f,0x9248,
+0x9252,0x9230,0x923a,0x9266,0x9233,0x9265,0x925e,0x9283,
+0x922e,0x924a,0x9246,0x926d,0x926c,0x924f,0x9260,0x9267,
+0x926f,0x9236,0x9261,0x9270,0x9231,0x9254,0x9263,0x9250,
+0x9272,0x924e,0x9253,0x924c,0x9256,0x9232,0x959f,0x959c,
+0x959e,0x959b,0x9692,0x9693,0x9691,0x9697,0x96ce,0x96fa,
+0x96fd,0x96f8,0x96f5,0x9773,0x9777,0x9778,0x9772,0x980f,
+0x980d,0x980e,0x98ac,0x98f6,0x98f9,0x99af,0x99b2,0x99b0,
+0x99b5,0x9aad,0x9aab,0x9b5b,0x9cea,0x9ced,0x9ce7,0x9e80,
+0x9efd,0x50e6,0x50d4,0x50d7,0x50e8,0x50f3,0x50db,0x50ea,
+0x50dd,0x50e4,0x50d3,0x50ec,0x50f0,0x50ef,0x50e3,0x50e0,
+0x51d8,0x5280,0x5281,0x52e9,0x52eb,0x5330,0x53ac,0x5627,
+0x5615,0x560c,0x5612,0x55fc,0x560f,0x561c,0x5601,0x5613,
+0x5602,0x55fa,0x561d,0x5604,0x55ff,0x55f9,0x5889,0x587c,
+0x5890,0x5898,0x5886,0x5881,0x587f,0x5874,0x588b,0x587a,
+0x5887,0x5891,0x588e,0x5876,0x5882,0x5888,0x587b,0x5894,
+0x588f,0x58fe,0x596b,0x5adc,0x5aee,0x5ae5,0x5ad5,0x5aea,
+0x5ada,0x5aed,0x5aeb,0x5af3,0x5ae2,0x5ae0,0x5adb,0x5aec,
+0x5ade,0x5add,0x5ad9,0x5ae8,0x5adf,0x5b77,0x5be0,0x5be3,
+0x5c63,0x5d82,0x5d80,0x5d7d,0x5d86,0x5d7a,0x5d81,0x5d77,
+0x5d8a,0x5d89,0x5d88,0x5d7e,0x5d7c,0x5d8d,0x5d79,0x5d7f,
+0x5e58,0x5e59,0x5e53,0x5ed8,0x5ed1,0x5ed7,0x5ece,0x5edc,
+0x5ed5,0x5ed9,0x5ed2,0x5ed4,0x5f44,0x5f43,0x5f6f,0x5fb6,
+0x612c,0x6128,0x6141,0x615e,0x6171,0x6173,0x6152,0x6153,
+0x6172,0x616c,0x6180,0x6174,0x6154,0x617a,0x615b,0x6165,
+0x613b,0x616a,0x6161,0x6156,0x6229,0x6227,0x622b,0x642b,
+0x644d,0x645b,0x645d,0x6474,0x6476,0x6472,0x6473,0x647d,
+0x6475,0x6466,0x64a6,0x644e,0x6482,0x645e,0x645c,0x644b,
+0x6453,0x6460,0x6450,0x647f,0x643f,0x646c,0x646b,0x6459,
+0x6465,0x6477,0x6573,0x65a0,0x66a1,0x66a0,0x669f,0x6705,
+0x6704,0x6722,0x69b1,0x69b6,0x69c9,0x69a0,0x69ce,0x6996,
+0x69b0,0x69ac,0x69bc,0x6991,0x6999,0x698e,0x69a7,0x698d,
+0x69a9,0x69be,0x69af,0x69bf,0x69c4,0x69bd,0x69a4,0x69d4,
+0x69b9,0x69ca,0x699a,0x69cf,0x69b3,0x6993,0x69aa,0x69a1,
+0x699e,0x69d9,0x6997,0x6990,0x69c2,0x69b5,0x69a5,0x69c6,
+0x6b4a,0x6b4d,0x6b4b,0x6b9e,0x6b9f,0x6ba0,0x6bc3,0x6bc4,
+0x6bfe,0x6ece,0x6ef5,0x6ef1,0x6f03,0x6f25,0x6ef8,0x6f37,
+0x6efb,0x6f2e,0x6f09,0x6f4e,0x6f19,0x6f1a,0x6f27,0x6f18,
+0x6f3b,0x6f12,0x6eed,0x6f0a,0x6f36,0x6f73,0x6ef9,0x6eee,
+0x6f2d,0x6f40,0x6f30,0x6f3c,0x6f35,0x6eeb,0x6f07,0x6f0e,
+0x6f43,0x6f05,0x6efd,0x6ef6,0x6f39,0x6f1c,0x6efc,0x6f3a,
+0x6f1f,0x6f0d,0x6f1e,0x6f08,0x6f21,0x7187,0x7190,0x7189,
+0x7180,0x7185,0x7182,0x718f,0x717b,0x7186,0x7181,0x7197,
+0x7244,0x7253,0x7297,0x7295,0x7293,0x7343,0x734d,0x7351,
+0x734c,0x7462,0x7473,0x7471,0x7475,0x7472,0x7467,0x746e,
+0x7500,0x7502,0x7503,0x757d,0x7590,0x7616,0x7608,0x760c,
+0x7615,0x7611,0x760a,0x7614,0x76b8,0x7781,0x777c,0x7785,
+0x7782,0x776e,0x7780,0x776f,0x777e,0x7783,0x78b2,0x78aa,
+0x78b4,0x78ad,0x78a8,0x787e,0x78ab,0x789e,0x78a5,0x78a0,
+0x78ac,0x78a2,0x78a4,0x7998,0x798a,0x798b,0x7996,0x7995,
+0x7994,0x7993,0x7997,0x7988,0x7992,0x7990,0x7a2b,0x7a4a,
+0x7a30,0x7a2f,0x7a28,0x7a26,0x7aa8,0x7aab,0x7aac,0x7aee,
+0x7b88,0x7b9c,0x7b8a,0x7b91,0x7b90,0x7b96,0x7b8d,0x7b8c,
+0x7b9b,0x7b8e,0x7b85,0x7b98,0x5284,0x7b99,0x7ba4,0x7b82,
+0x7cbb,0x7cbf,0x7cbc,0x7cba,0x7da7,0x7db7,0x7dc2,0x7da3,
+0x7daa,0x7dc1,0x7dc0,0x7dc5,0x7d9d,0x7dce,0x7dc4,0x7dc6,
+0x7dcb,0x7dcc,0x7daf,0x7db9,0x7d96,0x7dbc,0x7d9f,0x7da6,
+0x7dae,0x7da9,0x7da1,0x7dc9,0x7f73,0x7fe2,0x7fe3,0x7fe5,
+0x7fde,0x8024,0x805d,0x805c,0x8189,0x8186,0x8183,0x8187,
+0x818d,0x818c,0x818b,0x8215,0x8497,0x84a4,0x84a1,0x849f,
+0x84ba,0x84ce,0x84c2,0x84ac,0x84ae,0x84ab,0x84b9,0x84b4,
+0x84c1,0x84cd,0x84aa,0x849a,0x84b1,0x84d0,0x849d,0x84a7,
+0x84bb,0x84a2,0x8494,0x84c7,0x84cc,0x849b,0x84a9,0x84af,
+0x84a8,0x84d6,0x8498,0x84b6,0x84cf,0x84a0,0x84d7,0x84d4,
+0x84d2,0x84db,0x84b0,0x8491,0x8661,0x8733,0x8723,0x8728,
+0x876b,0x8740,0x872e,0x871e,0x8721,0x8719,0x871b,0x8743,
+0x872c,0x8741,0x873e,0x8746,0x8720,0x8732,0x872a,0x872d,
+0x873c,0x8712,0x873a,0x8731,0x8735,0x8742,0x8726,0x8727,
+0x8738,0x8724,0x871a,0x8730,0x8711,0x88f7,0x88e7,0x88f1,
+0x88f2,0x88fa,0x88fe,0x88ee,0x88fc,0x88f6,0x88fb,0x88f0,
+0x88ec,0x88eb,0x899d,0x89a1,0x899f,0x899e,0x89e9,0x89eb,
+0x89e8,0x8aab,0x8a99,0x8a8b,0x8a92,0x8a8f,0x8a96,0x8c3d,
+0x8c68,0x8c69,0x8cd5,0x8ccf,0x8cd7,0x8d96,0x8e09,0x8e02,
+0x8dff,0x8e0d,0x8dfd,0x8e0a,0x8e03,0x8e07,0x8e06,0x8e05,
+0x8dfe,0x8e00,0x8e04,0x8f10,0x8f11,0x8f0e,0x8f0d,0x9123,
+0x911c,0x9120,0x9122,0x911f,0x911d,0x911a,0x9124,0x9121,
+0x911b,0x917a,0x9172,0x9179,0x9173,0x92a5,0x92a4,0x9276,
+0x929b,0x927a,0x92a0,0x9294,0x92aa,0x928d,0x92a6,0x929a,
+0x92ab,0x9279,0x9297,0x927f,0x92a3,0x92ee,0x928e,0x9282,
+0x9295,0x92a2,0x927d,0x9288,0x92a1,0x928a,0x9286,0x928c,
+0x9299,0x92a7,0x927e,0x9287,0x92a9,0x929d,0x928b,0x922d,
+0x969e,0x96a1,0x96ff,0x9758,0x977d,0x977a,0x977e,0x9783,
+0x9780,0x9782,0x977b,0x9784,0x9781,0x977f,0x97ce,0x97cd,
+0x9816,0x98ad,0x98ae,0x9902,0x9900,0x9907,0x999d,0x999c,
+0x99c3,0x99b9,0x99bb,0x99ba,0x99c2,0x99bd,0x99c7,0x9ab1,
+0x9ae3,0x9ae7,0x9b3e,0x9b3f,0x9b60,0x9b61,0x9b5f,0x9cf1,
+0x9cf2,0x9cf5,0x9ea7,0x50ff,0x5103,0x5130,0x50f8,0x5106,
+0x5107,0x50f6,0x50fe,0x510b,0x510c,0x50fd,0x510a,0x528b,
+0x528c,0x52f1,0x52ef,0x5648,0x5642,0x564c,0x5635,0x5641,
+0x564a,0x5649,0x5646,0x5658,0x565a,0x5640,0x5633,0x563d,
+0x562c,0x563e,0x5638,0x562a,0x563a,0x571a,0x58ab,0x589d,
+0x58b1,0x58a0,0x58a3,0x58af,0x58ac,0x58a5,0x58a1,0x58ff,
+0x5aff,0x5af4,0x5afd,0x5af7,0x5af6,0x5b03,0x5af8,0x5b02,
+0x5af9,0x5b01,0x5b07,0x5b05,0x5b0f,0x5c67,0x5d99,0x5d97,
+0x5d9f,0x5d92,0x5da2,0x5d93,0x5d95,0x5da0,0x5d9c,0x5da1,
+0x5d9a,0x5d9e,0x5e69,0x5e5d,0x5e60,0x5e5c,0x7df3,0x5edb,
+0x5ede,0x5ee1,0x5f49,0x5fb2,0x618b,0x6183,0x6179,0x61b1,
+0x61b0,0x61a2,0x6189,0x619b,0x6193,0x61af,0x61ad,0x619f,
+0x6192,0x61aa,0x61a1,0x618d,0x6166,0x61b3,0x622d,0x646e,
+0x6470,0x6496,0x64a0,0x6485,0x6497,0x649c,0x648f,0x648b,
+0x648a,0x648c,0x64a3,0x649f,0x6468,0x64b1,0x6498,0x6576,
+0x657a,0x6579,0x657b,0x65b2,0x65b3,0x66b5,0x66b0,0x66a9,
+0x66b2,0x66b7,0x66aa,0x66af,0x6a00,0x6a06,0x6a17,0x69e5,
+0x69f8,0x6a15,0x69f1,0x69e4,0x6a20,0x69ff,0x69ec,0x69e2,
+0x6a1b,0x6a1d,0x69fe,0x6a27,0x69f2,0x69ee,0x6a14,0x69f7,
+0x69e7,0x6a40,0x6a08,0x69e6,0x69fb,0x6a0d,0x69fc,0x69eb,
+0x6a09,0x6a04,0x6a18,0x6a25,0x6a0f,0x69f6,0x6a26,0x6a07,
+0x69f4,0x6a16,0x6b51,0x6ba5,0x6ba3,0x6ba2,0x6ba6,0x6c01,
+0x6c00,0x6bff,0x6c02,0x6f41,0x6f26,0x6f7e,0x6f87,0x6fc6,
+0x6f92,0x6f8d,0x6f89,0x6f8c,0x6f62,0x6f4f,0x6f85,0x6f5a,
+0x6f96,0x6f76,0x6f6c,0x6f82,0x6f55,0x6f72,0x6f52,0x6f50,
+0x6f57,0x6f94,0x6f93,0x6f5d,0x6f00,0x6f61,0x6f6b,0x6f7d,
+0x6f67,0x6f90,0x6f53,0x6f8b,0x6f69,0x6f7f,0x6f95,0x6f63,
+0x6f77,0x6f6a,0x6f7b,0x71b2,0x71af,0x719b,0x71b0,0x71a0,
+0x719a,0x71a9,0x71b5,0x719d,0x71a5,0x719e,0x71a4,0x71a1,
+0x71aa,0x719c,0x71a7,0x71b3,0x7298,0x729a,0x7358,0x7352,
+0x735e,0x735f,0x7360,0x735d,0x735b,0x7361,0x735a,0x7359,
+0x7362,0x7487,0x7489,0x748a,0x7486,0x7481,0x747d,0x7485,
+0x7488,0x747c,0x7479,0x7508,0x7507,0x757e,0x7625,0x761e,
+0x7619,0x761d,0x761c,0x7623,0x761a,0x7628,0x761b,0x769c,
+0x769d,0x769e,0x769b,0x778d,0x778f,0x7789,0x7788,0x78cd,
+0x78bb,0x78cf,0x78cc,0x78d1,0x78ce,0x78d4,0x78c8,0x78c3,
+0x78c4,0x78c9,0x799a,0x79a1,0x79a0,0x799c,0x79a2,0x799b,
+0x6b76,0x7a39,0x7ab2,0x7ab4,0x7ab3,0x7bb7,0x7bcb,0x7bbe,
+0x7bac,0x7bce,0x7baf,0x7bb9,0x7bca,0x7bb5,0x7cc5,0x7cc8,
+0x7ccc,0x7ccb,0x7df7,0x7ddb,0x7dea,0x7de7,0x7dd7,0x7de1,
+0x7e03,0x7dfa,0x7de6,0x7df6,0x7df1,0x7df0,0x7dee,0x7ddf,
+0x7f76,0x7fac,0x7fb0,0x7fad,0x7fed,0x7feb,0x7fea,0x7fec,
+0x7fe6,0x7fe8,0x8064,0x8067,0x81a3,0x819f,0x819e,0x8195,
+0x81a2,0x8199,0x8197,0x8216,0x824f,0x8253,0x8252,0x8250,
+0x824e,0x8251,0x8524,0x853b,0x850f,0x8500,0x8529,0x850e,
+0x8509,0x850d,0x851f,0x850a,0x8527,0x851c,0x84fb,0x852b,
+0x84fa,0x8508,0x850c,0x84f4,0x852a,0x84f2,0x8515,0x84f7,
+0x84eb,0x84f3,0x84fc,0x8512,0x84ea,0x84e9,0x8516,0x84fe,
+0x8528,0x851d,0x852e,0x8502,0x84fd,0x851e,0x84f6,0x8531,
+0x8526,0x84e7,0x84e8,0x84f0,0x84ef,0x84f9,0x8518,0x8520,
+0x8530,0x850b,0x8519,0x852f,0x8662,0x8756,0x8763,0x8764,
+0x8777,0x87e1,0x8773,0x8758,0x8754,0x875b,0x8752,0x8761,
+0x875a,0x8751,0x875e,0x876d,0x876a,0x8750,0x874e,0x875f,
+0x875d,0x876f,0x876c,0x877a,0x876e,0x875c,0x8765,0x874f,
+0x877b,0x8775,0x8762,0x8767,0x8769,0x885a,0x8905,0x890c,
+0x8914,0x890b,0x8917,0x8918,0x8919,0x8906,0x8916,0x8911,
+0x890e,0x8909,0x89a2,0x89a4,0x89a3,0x89ed,0x89f0,0x89ec,
+0x8acf,0x8ac6,0x8ab8,0x8ad3,0x8ad1,0x8ad4,0x8ad5,0x8abb,
+0x8ad7,0x8abe,0x8ac0,0x8ac5,0x8ad8,0x8ac3,0x8aba,0x8abd,
+0x8ad9,0x8c3e,0x8c4d,0x8c8f,0x8ce5,0x8cdf,0x8cd9,0x8ce8,
+0x8cda,0x8cdd,0x8ce7,0x8da0,0x8d9c,0x8da1,0x8d9b,0x8e20,
+0x8e23,0x8e25,0x8e24,0x8e2e,0x8e15,0x8e1b,0x8e16,0x8e11,
+0x8e19,0x8e26,0x8e27,0x8e14,0x8e12,0x8e18,0x8e13,0x8e1c,
+0x8e17,0x8e1a,0x8f2c,0x8f24,0x8f18,0x8f1a,0x8f20,0x8f23,
+0x8f16,0x8f17,0x9073,0x9070,0x906f,0x9067,0x906b,0x912f,
+0x912b,0x9129,0x912a,0x9132,0x9126,0x912e,0x9185,0x9186,
+0x918a,0x9181,0x9182,0x9184,0x9180,0x92d0,0x92c3,0x92c4,
+0x92c0,0x92d9,0x92b6,0x92cf,0x92f1,0x92df,0x92d8,0x92e9,
+0x92d7,0x92dd,0x92cc,0x92ef,0x92c2,0x92e8,0x92ca,0x92c8,
+0x92ce,0x92e6,0x92cd,0x92d5,0x92c9,0x92e0,0x92de,0x92e7,
+0x92d1,0x92d3,0x92b5,0x92e1,0x92c6,0x92b4,0x957c,0x95ac,
+0x95ab,0x95ae,0x95b0,0x96a4,0x96a2,0x96d3,0x9705,0x9708,
+0x9702,0x975a,0x978a,0x978e,0x9788,0x97d0,0x97cf,0x981e,
+0x981d,0x9826,0x9829,0x9828,0x9820,0x981b,0x9827,0x98b2,
+0x9908,0x98fa,0x9911,0x9914,0x9916,0x9917,0x9915,0x99dc,
+0x99cd,0x99cf,0x99d3,0x99d4,0x99ce,0x99c9,0x99d6,0x99d8,
+0x99cb,0x99d7,0x99cc,0x9ab3,0x9aec,0x9aeb,0x9af3,0x9af2,
+0x9af1,0x9b46,0x9b43,0x9b67,0x9b74,0x9b71,0x9b66,0x9b76,
+0x9b75,0x9b70,0x9b68,0x9b64,0x9b6c,0x9cfc,0x9cfa,0x9cfd,
+0x9cff,0x9cf7,0x9d07,0x9d00,0x9cf9,0x9cfb,0x9d08,0x9d05,
+0x9d04,0x9e83,0x9ed3,0x9f0f,0x9f10,0x511c,0x5113,0x5117,
+0x511a,0x5111,0x51de,0x5334,0x53e1,0x5670,0x5660,0x566e,
+0x5673,0x5666,0x5663,0x566d,0x5672,0x565e,0x5677,0x571c,
+0x571b,0x58c8,0x58bd,0x58c9,0x58bf,0x58ba,0x58c2,0x58bc,
+0x58c6,0x5b17,0x5b19,0x5b1b,0x5b21,0x5b14,0x5b13,0x5b10,
+0x5b16,0x5b28,0x5b1a,0x5b20,0x5b1e,0x5bef,0x5dac,0x5db1,
+0x5da9,0x5da7,0x5db5,0x5db0,0x5dae,0x5daa,0x5da8,0x5db2,
+0x5dad,0x5daf,0x5db4,0x5e67,0x5e68,0x5e66,0x5e6f,0x5ee9,
+0x5ee7,0x5ee6,0x5ee8,0x5ee5,0x5f4b,0x5fbc,0x619d,0x61a8,
+0x6196,0x61c5,0x61b4,0x61c6,0x61c1,0x61cc,0x61ba,0x61bf,
+0x61b8,0x618c,0x64d7,0x64d6,0x64d0,0x64cf,0x64c9,0x64bd,
+0x6489,0x64c3,0x64db,0x64f3,0x64d9,0x6533,0x657f,0x657c,
+0x65a2,0x66c8,0x66be,0x66c0,0x66ca,0x66cb,0x66cf,0x66bd,
+0x66bb,0x66ba,0x66cc,0x6723,0x6a34,0x6a66,0x6a49,0x6a67,
+0x6a32,0x6a68,0x6a3e,0x6a5d,0x6a6d,0x6a76,0x6a5b,0x6a51,
+0x6a28,0x6a5a,0x6a3b,0x6a3f,0x6a41,0x6a6a,0x6a64,0x6a50,
+0x6a4f,0x6a54,0x6a6f,0x6a69,0x6a60,0x6a3c,0x6a5e,0x6a56,
+0x6a55,0x6a4d,0x6a4e,0x6a46,0x6b55,0x6b54,0x6b56,0x6ba7,
+0x6baa,0x6bab,0x6bc8,0x6bc7,0x6c04,0x6c03,0x6c06,0x6fad,
+0x6fcb,0x6fa3,0x6fc7,0x6fbc,0x6fce,0x6fc8,0x6f5e,0x6fc4,
+0x6fbd,0x6f9e,0x6fca,0x6fa8,0x7004,0x6fa5,0x6fae,0x6fba,
+0x6fac,0x6faa,0x6fcf,0x6fbf,0x6fb8,0x6fa2,0x6fc9,0x6fab,
+0x6fcd,0x6faf,0x6fb2,0x6fb0,0x71c5,0x71c2,0x71bf,0x71b8,
+0x71d6,0x71c0,0x71c1,0x71cb,0x71d4,0x71ca,0x71c7,0x71cf,
+0x71bd,0x71d8,0x71bc,0x71c6,0x71da,0x71db,0x729d,0x729e,
+0x7369,0x7366,0x7367,0x736c,0x7365,0x736b,0x736a,0x747f,
+0x749a,0x74a0,0x7494,0x7492,0x7495,0x74a1,0x750b,0x7580,
+0x762f,0x762d,0x7631,0x763d,0x7633,0x763c,0x7635,0x7632,
+0x7630,0x76bb,0x76e6,0x779a,0x779d,0x77a1,0x779c,0x779b,
+0x77a2,0x77a3,0x7795,0x7799,0x7797,0x78dd,0x78e9,0x78e5,
+0x78ea,0x78de,0x78e3,0x78db,0x78e1,0x78e2,0x78ed,0x78df,
+0x78e0,0x79a4,0x7a44,0x7a48,0x7a47,0x7ab6,0x7ab8,0x7ab5,
+0x7ab1,0x7ab7,0x7bde,0x7be3,0x7be7,0x7bdd,0x7bd5,0x7be5,
+0x7bda,0x7be8,0x7bf9,0x7bd4,0x7bea,0x7be2,0x7bdc,0x7beb,
+0x7bd8,0x7bdf,0x7cd2,0x7cd4,0x7cd7,0x7cd0,0x7cd1,0x7e12,
+0x7e21,0x7e17,0x7e0c,0x7e1f,0x7e20,0x7e13,0x7e0e,0x7e1c,
+0x7e15,0x7e1a,0x7e22,0x7e0b,0x7e0f,0x7e16,0x7e0d,0x7e14,
+0x7e25,0x7e24,0x7f43,0x7f7b,0x7f7c,0x7f7a,0x7fb1,0x7fef,
+0x802a,0x8029,0x806c,0x81b1,0x81a6,0x81ae,0x81b9,0x81b5,
+0x81ab,0x81b0,0x81ac,0x81b4,0x81b2,0x81b7,0x81a7,0x81f2,
+0x8255,0x8256,0x8257,0x8556,0x8545,0x856b,0x854d,0x8553,
+0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562,0x8544,
+0x8551,0x8547,0x8563,0x853e,0x855b,0x8571,0x854e,0x856e,
+0x8575,0x8555,0x8567,0x8560,0x858c,0x8566,0x855d,0x8554,
+0x8565,0x856c,0x8663,0x8665,0x8664,0x879b,0x878f,0x8797,
+0x8793,0x8792,0x8788,0x8781,0x8796,0x8798,0x8779,0x8787,
+0x87a3,0x8785,0x8790,0x8791,0x879d,0x8784,0x8794,0x879c,
+0x879a,0x8789,0x891e,0x8926,0x8930,0x892d,0x892e,0x8927,
+0x8931,0x8922,0x8929,0x8923,0x892f,0x892c,0x891f,0x89f1,
+0x8ae0,0x8ae2,0x8af2,0x8af4,0x8af5,0x8add,0x8b14,0x8ae4,
+0x8adf,0x8af0,0x8ac8,0x8ade,0x8ae1,0x8ae8,0x8aff,0x8aef,
+0x8afb,0x8c91,0x8c92,0x8c90,0x8cf5,0x8cee,0x8cf1,0x8cf0,
+0x8cf3,0x8d6c,0x8d6e,0x8da5,0x8da7,0x8e33,0x8e3e,0x8e38,
+0x8e40,0x8e45,0x8e36,0x8e3c,0x8e3d,0x8e41,0x8e30,0x8e3f,
+0x8ebd,0x8f36,0x8f2e,0x8f35,0x8f32,0x8f39,0x8f37,0x8f34,
+0x9076,0x9079,0x907b,0x9086,0x90fa,0x9133,0x9135,0x9136,
+0x9193,0x9190,0x9191,0x918d,0x918f,0x9327,0x931e,0x9308,
+0x931f,0x9306,0x930f,0x937a,0x9338,0x933c,0x931b,0x9323,
+0x9312,0x9301,0x9346,0x932d,0x930e,0x930d,0x92cb,0x931d,
+0x92fa,0x9325,0x9313,0x92f9,0x92f7,0x9334,0x9302,0x9324,
+0x92ff,0x9329,0x9339,0x9335,0x932a,0x9314,0x930c,0x930b,
+0x92fe,0x9309,0x9300,0x92fb,0x9316,0x95bc,0x95cd,0x95be,
+0x95b9,0x95ba,0x95b6,0x95bf,0x95b5,0x95bd,0x96a9,0x96d4,
+0x970b,0x9712,0x9710,0x9799,0x9797,0x9794,0x97f0,0x97f8,
+0x9835,0x982f,0x9832,0x9924,0x991f,0x9927,0x9929,0x999e,
+0x99ee,0x99ec,0x99e5,0x99e4,0x99f0,0x99e3,0x99ea,0x99e9,
+0x99e7,0x9ab9,0x9abf,0x9ab4,0x9abb,0x9af6,0x9afa,0x9af9,
+0x9af7,0x9b33,0x9b80,0x9b85,0x9b87,0x9b7c,0x9b7e,0x9b7b,
+0x9b82,0x9b93,0x9b92,0x9b90,0x9b7a,0x9b95,0x9b7d,0x9b88,
+0x9d25,0x9d17,0x9d20,0x9d1e,0x9d14,0x9d29,0x9d1d,0x9d18,
+0x9d22,0x9d10,0x9d19,0x9d1f,0x9e88,0x9e86,0x9e87,0x9eae,
+0x9ead,0x9ed5,0x9ed6,0x9efa,0x9f12,0x9f3d,0x5126,0x5125,
+0x5122,0x5124,0x5120,0x5129,0x52f4,0x5693,0x568c,0x568d,
+0x5686,0x5684,0x5683,0x567e,0x5682,0x567f,0x5681,0x58d6,
+0x58d4,0x58cf,0x58d2,0x5b2d,0x5b25,0x5b32,0x5b23,0x5b2c,
+0x5b27,0x5b26,0x5b2f,0x5b2e,0x5b7b,0x5bf1,0x5bf2,0x5db7,
+0x5e6c,0x5e6a,0x5fbe,0x5fbb,0x61c3,0x61b5,0x61bc,0x61e7,
+0x61e0,0x61e5,0x61e4,0x61e8,0x61de,0x64ef,0x64e9,0x64e3,
+0x64eb,0x64e4,0x64e8,0x6581,0x6580,0x65b6,0x65da,0x66d2,
+0x6a8d,0x6a96,0x6a81,0x6aa5,0x6a89,0x6a9f,0x6a9b,0x6aa1,
+0x6a9e,0x6a87,0x6a93,0x6a8e,0x6a95,0x6a83,0x6aa8,0x6aa4,
+0x6a91,0x6a7f,0x6aa6,0x6a9a,0x6a85,0x6a8c,0x6a92,0x6b5b,
+0x6bad,0x6c09,0x6fcc,0x6fa9,0x6ff4,0x6fd4,0x6fe3,0x6fdc,
+0x6fed,0x6fe7,0x6fe6,0x6fde,0x6ff2,0x6fdd,0x6fe2,0x6fe8,
+0x71e1,0x71f1,0x71e8,0x71f2,0x71e4,0x71f0,0x71e2,0x7373,
+0x736e,0x736f,0x7497,0x74b2,0x74ab,0x7490,0x74aa,0x74ad,
+0x74b1,0x74a5,0x74af,0x7510,0x7511,0x7512,0x750f,0x7584,
+0x7643,0x7648,0x7649,0x7647,0x76a4,0x76e9,0x77b5,0x77ab,
+0x77b2,0x77b7,0x77b6,0x77b4,0x77b1,0x77a8,0x77f0,0x78f3,
+0x78fd,0x7902,0x78fb,0x78fc,0x78f2,0x7905,0x78f9,0x78fe,
+0x7904,0x79ab,0x79a8,0x7a5c,0x7a5b,0x7a56,0x7a58,0x7a54,
+0x7a5a,0x7abe,0x7ac0,0x7ac1,0x7c05,0x7c0f,0x7bf2,0x7c00,
+0x7bff,0x7bfb,0x7c0e,0x7bf4,0x7c0b,0x7bf3,0x7c02,0x7c09,
+0x7c03,0x7c01,0x7bf8,0x7bfd,0x7c06,0x7bf0,0x7bf1,0x7c10,
+0x7c0a,0x7ce8,0x7e2d,0x7e3c,0x7e42,0x7e33,0x9848,0x7e38,
+0x7e2a,0x7e49,0x7e40,0x7e47,0x7e29,0x7e4c,0x7e30,0x7e3b,
+0x7e36,0x7e44,0x7e3a,0x7f45,0x7f7f,0x7f7e,0x7f7d,0x7ff4,
+0x7ff2,0x802c,0x81bb,0x81c4,0x81cc,0x81ca,0x81c5,0x81c7,
+0x81bc,0x81e9,0x825b,0x825a,0x825c,0x8583,0x8580,0x858f,
+0x85a7,0x8595,0x85a0,0x858b,0x85a3,0x857b,0x85a4,0x859a,
+0x859e,0x8577,0x857c,0x8589,0x85a1,0x857a,0x8578,0x8557,
+0x858e,0x8596,0x8586,0x858d,0x8599,0x859d,0x8581,0x85a2,
+0x8582,0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859f,
+0x8668,0x87be,0x87aa,0x87ad,0x87c5,0x87b0,0x87ac,0x87b9,
+0x87b5,0x87bc,0x87ae,0x87c9,0x87c3,0x87c2,0x87cc,0x87b7,
+0x87af,0x87c4,0x87ca,0x87b4,0x87b6,0x87bf,0x87b8,0x87bd,
+0x87de,0x87b2,0x8935,0x8933,0x893c,0x893e,0x8941,0x8952,
+0x8937,0x8942,0x89ad,0x89af,0x89ae,0x89f2,0x89f3,0x8b1e,
+0x8b18,0x8b16,0x8b11,0x8b05,0x8b0b,0x8b22,0x8b0f,0x8b12,
+0x8b15,0x8b07,0x8b0d,0x8b08,0x8b06,0x8b1c,0x8b13,0x8b1a,
+0x8c4f,0x8c70,0x8c72,0x8c71,0x8c6f,0x8c95,0x8c94,0x8cf9,
+0x8d6f,0x8e4e,0x8e4d,0x8e53,0x8e50,0x8e4c,0x8e47,0x8f43,
+0x8f40,0x9085,0x907e,0x9138,0x919a,0x91a2,0x919b,0x9199,
+0x919f,0x91a1,0x919d,0x91a0,0x93a1,0x9383,0x93af,0x9364,
+0x9356,0x9347,0x937c,0x9358,0x935c,0x9376,0x9349,0x9350,
+0x9351,0x9360,0x936d,0x938f,0x934c,0x936a,0x9379,0x9357,
+0x9355,0x9352,0x934f,0x9371,0x9377,0x937b,0x9361,0x935e,
+0x9363,0x9367,0x9380,0x934e,0x9359,0x95c7,0x95c0,0x95c9,
+0x95c3,0x95c5,0x95b7,0x96ae,0x96b0,0x96ac,0x9720,0x971f,
+0x9718,0x971d,0x9719,0x979a,0x97a1,0x979c,0x979e,0x979d,
+0x97d5,0x97d4,0x97f1,0x9841,0x9844,0x984a,0x9849,0x9845,
+0x9843,0x9925,0x992b,0x992c,0x992a,0x9933,0x9932,0x992f,
+0x992d,0x9931,0x9930,0x9998,0x99a3,0x99a1,0x9a02,0x99fa,
+0x99f4,0x99f7,0x99f9,0x99f8,0x99f6,0x99fb,0x99fd,0x99fe,
+0x99fc,0x9a03,0x9abe,0x9afe,0x9afd,0x9b01,0x9afc,0x9b48,
+0x9b9a,0x9ba8,0x9b9e,0x9b9b,0x9ba6,0x9ba1,0x9ba5,0x9ba4,
+0x9b86,0x9ba2,0x9ba0,0x9baf,0x9d33,0x9d41,0x9d67,0x9d36,
+0x9d2e,0x9d2f,0x9d31,0x9d38,0x9d30,0x9d45,0x9d42,0x9d43,
+0x9d3e,0x9d37,0x9d40,0x9d3d,0x7ff5,0x9d2d,0x9e8a,0x9e89,
+0x9e8d,0x9eb0,0x9ec8,0x9eda,0x9efb,0x9eff,0x9f24,0x9f23,
+0x9f22,0x9f54,0x9fa0,0x5131,0x512d,0x512e,0x5698,0x569c,
+0x5697,0x569a,0x569d,0x5699,0x5970,0x5b3c,0x5c69,0x5c6a,
+0x5dc0,0x5e6d,0x5e6e,0x61d8,0x61df,0x61ed,0x61ee,0x61f1,
+0x61ea,0x61f0,0x61eb,0x61d6,0x61e9,0x64ff,0x6504,0x64fd,
+0x64f8,0x6501,0x6503,0x64fc,0x6594,0x65db,0x66da,0x66db,
+0x66d8,0x6ac5,0x6ab9,0x6abd,0x6ae1,0x6ac6,0x6aba,0x6ab6,
+0x6ab7,0x6ac7,0x6ab4,0x6aad,0x6b5e,0x6bc9,0x6c0b,0x7007,
+0x700c,0x700d,0x7001,0x7005,0x7014,0x700e,0x6fff,0x7000,
+0x6ffb,0x7026,0x6ffc,0x6ff7,0x700a,0x7201,0x71ff,0x71f9,
+0x7203,0x71fd,0x7376,0x74b8,0x74c0,0x74b5,0x74c1,0x74be,
+0x74b6,0x74bb,0x74c2,0x7514,0x7513,0x765c,0x7664,0x7659,
+0x7650,0x7653,0x7657,0x765a,0x76a6,0x76bd,0x76ec,0x77c2,
+0x77ba,0x78ff,0x790c,0x7913,0x7914,0x7909,0x7910,0x7912,
+0x7911,0x79ad,0x79ac,0x7a5f,0x7c1c,0x7c29,0x7c19,0x7c20,
+0x7c1f,0x7c2d,0x7c1d,0x7c26,0x7c28,0x7c22,0x7c25,0x7c30,
+0x7e5c,0x7e50,0x7e56,0x7e63,0x7e58,0x7e62,0x7e5f,0x7e51,
+0x7e60,0x7e57,0x7e53,0x7fb5,0x7fb3,0x7ff7,0x7ff8,0x8075,
+0x81d1,0x81d2,0x81d0,0x825f,0x825e,0x85b4,0x85c6,0x85c0,
+0x85c3,0x85c2,0x85b3,0x85b5,0x85bd,0x85c7,0x85c4,0x85bf,
+0x85cb,0x85ce,0x85c8,0x85c5,0x85b1,0x85b6,0x85d2,0x8624,
+0x85b8,0x85b7,0x85be,0x8669,0x87e7,0x87e6,0x87e2,0x87db,
+0x87eb,0x87ea,0x87e5,0x87df,0x87f3,0x87e4,0x87d4,0x87dc,
+0x87d3,0x87ed,0x87d8,0x87e3,0x87a4,0x87d7,0x87d9,0x8801,
+0x87f4,0x87e8,0x87dd,0x8953,0x894b,0x894f,0x894c,0x8946,
+0x8950,0x8951,0x8949,0x8b2a,0x8b27,0x8b23,0x8b33,0x8b30,
+0x8b35,0x8b47,0x8b2f,0x8b3c,0x8b3e,0x8b31,0x8b25,0x8b37,
+0x8b26,0x8b36,0x8b2e,0x8b24,0x8b3b,0x8b3d,0x8b3a,0x8c42,
+0x8c75,0x8c99,0x8c98,0x8c97,0x8cfe,0x8d04,0x8d02,0x8d00,
+0x8e5c,0x8e62,0x8e60,0x8e57,0x8e56,0x8e5e,0x8e65,0x8e67,
+0x8e5b,0x8e5a,0x8e61,0x8e5d,0x8e69,0x8e54,0x8f46,0x8f47,
+0x8f48,0x8f4b,0x9128,0x913a,0x913b,0x913e,0x91a8,0x91a5,
+0x91a7,0x91af,0x91aa,0x93b5,0x938c,0x9392,0x93b7,0x939b,
+0x939d,0x9389,0x93a7,0x938e,0x93aa,0x939e,0x93a6,0x9395,
+0x9388,0x9399,0x939f,0x938d,0x93b1,0x9391,0x93b2,0x93a4,
+0x93a8,0x93b4,0x93a3,0x93a5,0x95d2,0x95d3,0x95d1,0x96b3,
+0x96d7,0x96da,0x5dc2,0x96df,0x96d8,0x96dd,0x9723,0x9722,
+0x9725,0x97ac,0x97ae,0x97a8,0x97ab,0x97a4,0x97aa,0x97a2,
+0x97a5,0x97d7,0x97d9,0x97d6,0x97d8,0x97fa,0x9850,0x9851,
+0x9852,0x98b8,0x9941,0x993c,0x993a,0x9a0f,0x9a0b,0x9a09,
+0x9a0d,0x9a04,0x9a11,0x9a0a,0x9a05,0x9a07,0x9a06,0x9ac0,
+0x9adc,0x9b08,0x9b04,0x9b05,0x9b29,0x9b35,0x9b4a,0x9b4c,
+0x9b4b,0x9bc7,0x9bc6,0x9bc3,0x9bbf,0x9bc1,0x9bb5,0x9bb8,
+0x9bd3,0x9bb6,0x9bc4,0x9bb9,0x9bbd,0x9d5c,0x9d53,0x9d4f,
+0x9d4a,0x9d5b,0x9d4b,0x9d59,0x9d56,0x9d4c,0x9d57,0x9d52,
+0x9d54,0x9d5f,0x9d58,0x9d5a,0x9e8e,0x9e8c,0x9edf,0x9f01,
+0x9f00,0x9f16,0x9f25,0x9f2b,0x9f2a,0x9f29,0x9f28,0x9f4c,
+0x9f55,0x5134,0x5135,0x5296,0x52f7,0x53b4,0x56ab,0x56ad,
+0x56a6,0x56a7,0x56aa,0x56ac,0x58da,0x58dd,0x58db,0x5912,
+0x5b3d,0x5b3e,0x5b3f,0x5dc3,0x5e70,0x5fbf,0x61fb,0x6507,
+0x6510,0x650d,0x6509,0x650c,0x650e,0x6584,0x65de,0x65dd,
+0x66de,0x6ae7,0x6ae0,0x6acc,0x6ad1,0x6ad9,0x6acb,0x6adf,
+0x6adc,0x6ad0,0x6aeb,0x6acf,0x6acd,0x6ade,0x6b60,0x6bb0,
+0x6c0c,0x7019,0x7027,0x7020,0x7016,0x702b,0x7021,0x7022,
+0x7023,0x7029,0x7017,0x7024,0x701c,0x702a,0x720c,0x720a,
+0x7207,0x7202,0x7205,0x72a5,0x72a6,0x72a4,0x72a3,0x72a1,
+0x74cb,0x74c5,0x74b7,0x74c3,0x7516,0x7660,0x77c9,0x77ca,
+0x77c4,0x77f1,0x791d,0x791b,0x7921,0x791c,0x7917,0x791e,
+0x79b0,0x7a67,0x7a68,0x7c33,0x7c3c,0x7c39,0x7c2c,0x7c3b,
+0x7cec,0x7cea,0x7e76,0x7e75,0x7e78,0x7e70,0x7e77,0x7e6f,
+0x7e7a,0x7e72,0x7e74,0x7e68,0x7f4b,0x7f4a,0x7f83,0x7f86,
+0x7fb7,0x7ffd,0x7ffe,0x8078,0x81d7,0x81d5,0x8264,0x8261,
+0x8263,0x85eb,0x85f1,0x85ed,0x85d9,0x85e1,0x85e8,0x85da,
+0x85d7,0x85ec,0x85f2,0x85f8,0x85d8,0x85df,0x85e3,0x85dc,
+0x85d1,0x85f0,0x85e6,0x85ef,0x85de,0x85e2,0x8800,0x87fa,
+0x8803,0x87f6,0x87f7,0x8809,0x880c,0x880b,0x8806,0x87fc,
+0x8808,0x87ff,0x880a,0x8802,0x8962,0x895a,0x895b,0x8957,
+0x8961,0x895c,0x8958,0x895d,0x8959,0x8988,0x89b7,0x89b6,
+0x89f6,0x8b50,0x8b48,0x8b4a,0x8b40,0x8b53,0x8b56,0x8b54,
+0x8b4b,0x8b55,0x8b51,0x8b42,0x8b52,0x8b57,0x8c43,0x8c77,
+0x8c76,0x8c9a,0x8d06,0x8d07,0x8d09,0x8dac,0x8daa,0x8dad,
+0x8dab,0x8e6d,0x8e78,0x8e73,0x8e6a,0x8e6f,0x8e7b,0x8ec2,
+0x8f52,0x8f51,0x8f4f,0x8f50,0x8f53,0x8fb4,0x9140,0x913f,
+0x91b0,0x91ad,0x93de,0x93c7,0x93cf,0x93c2,0x93da,0x93d0,
+0x93f9,0x93ec,0x93cc,0x93d9,0x93a9,0x93e6,0x93ca,0x93d4,
+0x93ee,0x93e3,0x93d5,0x93c4,0x93ce,0x93c0,0x93d2,0x93e7,
+0x957d,0x95da,0x95db,0x96e1,0x9729,0x972b,0x972c,0x9728,
+0x9726,0x97b3,0x97b7,0x97b6,0x97dd,0x97de,0x97df,0x985c,
+0x9859,0x985d,0x9857,0x98bf,0x98bd,0x98bb,0x98be,0x9948,
+0x9947,0x9943,0x99a6,0x99a7,0x9a1a,0x9a15,0x9a25,0x9a1d,
+0x9a24,0x9a1b,0x9a22,0x9a20,0x9a27,0x9a23,0x9a1e,0x9a1c,
+0x9a14,0x9ac2,0x9b0b,0x9b0a,0x9b0e,0x9b0c,0x9b37,0x9bea,
+0x9beb,0x9be0,0x9bde,0x9be4,0x9be6,0x9be2,0x9bf0,0x9bd4,
+0x9bd7,0x9bec,0x9bdc,0x9bd9,0x9be5,0x9bd5,0x9be1,0x9bda,
+0x9d77,0x9d81,0x9d8a,0x9d84,0x9d88,0x9d71,0x9d80,0x9d78,
+0x9d86,0x9d8b,0x9d8c,0x9d7d,0x9d6b,0x9d74,0x9d75,0x9d70,
+0x9d69,0x9d85,0x9d73,0x9d7b,0x9d82,0x9d6f,0x9d79,0x9d7f,
+0x9d87,0x9d68,0x9e94,0x9e91,0x9ec0,0x9efc,0x9f2d,0x9f40,
+0x9f41,0x9f4d,0x9f56,0x9f57,0x9f58,0x5337,0x56b2,0x56b5,
+0x56b3,0x58e3,0x5b45,0x5dc6,0x5dc7,0x5eee,0x5eef,0x5fc0,
+0x5fc1,0x61f9,0x6517,0x6516,0x6515,0x6513,0x65df,0x66e8,
+0x66e3,0x66e4,0x6af3,0x6af0,0x6aea,0x6ae8,0x6af9,0x6af1,
+0x6aee,0x6aef,0x703c,0x7035,0x702f,0x7037,0x7034,0x7031,
+0x7042,0x7038,0x703f,0x703a,0x7039,0x7040,0x703b,0x7033,
+0x7041,0x7213,0x7214,0x72a8,0x737d,0x737c,0x74ba,0x76ab,
+0x76aa,0x76be,0x76ed,0x77cc,0x77ce,0x77cf,0x77cd,0x77f2,
+0x7925,0x7923,0x7927,0x7928,0x7924,0x7929,0x79b2,0x7a6e,
+0x7a6c,0x7a6d,0x7af7,0x7c49,0x7c48,0x7c4a,0x7c47,0x7c45,
+0x7cee,0x7e7b,0x7e7e,0x7e81,0x7e80,0x7fba,0x7fff,0x8079,
+0x81db,0x81d9,0x820b,0x8268,0x8269,0x8622,0x85ff,0x8601,
+0x85fe,0x861b,0x8600,0x85f6,0x8604,0x8609,0x8605,0x860c,
+0x85fd,0x8819,0x8810,0x8811,0x8817,0x8813,0x8816,0x8963,
+0x8966,0x89b9,0x89f7,0x8b60,0x8b6a,0x8b5d,0x8b68,0x8b63,
+0x8b65,0x8b67,0x8b6d,0x8dae,0x8e86,0x8e88,0x8e84,0x8f59,
+0x8f56,0x8f57,0x8f55,0x8f58,0x8f5a,0x908d,0x9143,0x9141,
+0x91b7,0x91b5,0x91b2,0x91b3,0x940b,0x9413,0x93fb,0x9420,
+0x940f,0x9414,0x93fe,0x9415,0x9410,0x9428,0x9419,0x940d,
+0x93f5,0x9400,0x93f7,0x9407,0x940e,0x9416,0x9412,0x93fa,
+0x9409,0x93f8,0x940a,0x93ff,0x93fc,0x940c,0x93f6,0x9411,
+0x9406,0x95de,0x95e0,0x95df,0x972e,0x972f,0x97b9,0x97bb,
+0x97fd,0x97fe,0x9860,0x9862,0x9863,0x985f,0x98c1,0x98c2,
+0x9950,0x994e,0x9959,0x994c,0x994b,0x9953,0x9a32,0x9a34,
+0x9a31,0x9a2c,0x9a2a,0x9a36,0x9a29,0x9a2e,0x9a38,0x9a2d,
+0x9ac7,0x9aca,0x9ac6,0x9b10,0x9b12,0x9b11,0x9c0b,0x9c08,
+0x9bf7,0x9c05,0x9c12,0x9bf8,0x9c40,0x9c07,0x9c0e,0x9c06,
+0x9c17,0x9c14,0x9c09,0x9d9f,0x9d99,0x9da4,0x9d9d,0x9d92,
+0x9d98,0x9d90,0x9d9b,0x9da0,0x9d94,0x9d9c,0x9daa,0x9d97,
+0x9da1,0x9d9a,0x9da2,0x9da8,0x9d9e,0x9da3,0x9dbf,0x9da9,
+0x9d96,0x9da6,0x9da7,0x9e99,0x9e9b,0x9e9a,0x9ee5,0x9ee4,
+0x9ee7,0x9ee6,0x9f30,0x9f2e,0x9f5b,0x9f60,0x9f5e,0x9f5d,
+0x9f59,0x9f91,0x513a,0x5139,0x5298,0x5297,0x56c3,0x56bd,
+0x56be,0x5b48,0x5b47,0x5dcb,0x5dcf,0x5ef1,0x61fd,0x651b,
+0x6b02,0x6afc,0x6b03,0x6af8,0x6b00,0x7043,0x7044,0x704a,
+0x7048,0x7049,0x7045,0x7046,0x721d,0x721a,0x7219,0x737e,
+0x7517,0x766a,0x77d0,0x792d,0x7931,0x792f,0x7c54,0x7c53,
+0x7cf2,0x7e8a,0x7e87,0x7e88,0x7e8b,0x7e86,0x7e8d,0x7f4d,
+0x7fbb,0x8030,0x81dd,0x8618,0x862a,0x8626,0x861f,0x8623,
+0x861c,0x8619,0x8627,0x862e,0x8621,0x8620,0x8629,0x861e,
+0x8625,0x8829,0x881d,0x881b,0x8820,0x8824,0x881c,0x882b,
+0x884a,0x896d,0x8969,0x896e,0x896b,0x89fa,0x8b79,0x8b78,
+0x8b45,0x8b7a,0x8b7b,0x8d10,0x8d14,0x8daf,0x8e8e,0x8e8c,
+0x8f5e,0x8f5b,0x8f5d,0x9146,0x9144,0x9145,0x91b9,0x943f,
+0x943b,0x9436,0x9429,0x943d,0x943c,0x9430,0x9439,0x942a,
+0x9437,0x942c,0x9440,0x9431,0x95e5,0x95e4,0x95e3,0x9735,
+0x973a,0x97bf,0x97e1,0x9864,0x98c9,0x98c6,0x98c0,0x9958,
+0x9956,0x9a39,0x9a3d,0x9a46,0x9a44,0x9a42,0x9a41,0x9a3a,
+0x9a3f,0x9acd,0x9b15,0x9b17,0x9b18,0x9b16,0x9b3a,0x9b52,
+0x9c2b,0x9c1d,0x9c1c,0x9c2c,0x9c23,0x9c28,0x9c29,0x9c24,
+0x9c21,0x9db7,0x9db6,0x9dbc,0x9dc1,0x9dc7,0x9dca,0x9dcf,
+0x9dbe,0x9dc5,0x9dc3,0x9dbb,0x9db5,0x9dce,0x9db9,0x9dba,
+0x9dac,0x9dc8,0x9db1,0x9dad,0x9dcc,0x9db3,0x9dcd,0x9db2,
+0x9e7a,0x9e9c,0x9eeb,0x9eee,0x9eed,0x9f1b,0x9f18,0x9f1a,
+0x9f31,0x9f4e,0x9f65,0x9f64,0x9f92,0x4eb9,0x56c6,0x56c5,
+0x56cb,0x5971,0x5b4b,0x5b4c,0x5dd5,0x5dd1,0x5ef2,0x6521,
+0x6520,0x6526,0x6522,0x6b0b,0x6b08,0x6b09,0x6c0d,0x7055,
+0x7056,0x7057,0x7052,0x721e,0x721f,0x72a9,0x737f,0x74d8,
+0x74d5,0x74d9,0x74d7,0x766d,0x76ad,0x7935,0x79b4,0x7a70,
+0x7a71,0x7c57,0x7c5c,0x7c59,0x7c5b,0x7c5a,0x7cf4,0x7cf1,
+0x7e91,0x7f4f,0x7f87,0x81de,0x826b,0x8634,0x8635,0x8633,
+0x862c,0x8632,0x8636,0x882c,0x8828,0x8826,0x882a,0x8825,
+0x8971,0x89bf,0x89be,0x89fb,0x8b7e,0x8b84,0x8b82,0x8b86,
+0x8b85,0x8b7f,0x8d15,0x8e95,0x8e94,0x8e9a,0x8e92,0x8e90,
+0x8e96,0x8e97,0x8f60,0x8f62,0x9147,0x944c,0x9450,0x944a,
+0x944b,0x944f,0x9447,0x9445,0x9448,0x9449,0x9446,0x973f,
+0x97e3,0x986a,0x9869,0x98cb,0x9954,0x995b,0x9a4e,0x9a53,
+0x9a54,0x9a4c,0x9a4f,0x9a48,0x9a4a,0x9a49,0x9a52,0x9a50,
+0x9ad0,0x9b19,0x9b2b,0x9b3b,0x9b56,0x9b55,0x9c46,0x9c48,
+0x9c3f,0x9c44,0x9c39,0x9c33,0x9c41,0x9c3c,0x9c37,0x9c34,
+0x9c32,0x9c3d,0x9c36,0x9ddb,0x9dd2,0x9dde,0x9dda,0x9dcb,
+0x9dd0,0x9ddc,0x9dd1,0x9ddf,0x9de9,0x9dd9,0x9dd8,0x9dd6,
+0x9df5,0x9dd5,0x9ddd,0x9eb6,0x9ef0,0x9f35,0x9f33,0x9f32,
+0x9f42,0x9f6b,0x9f95,0x9fa2,0x513d,0x5299,0x58e8,0x58e7,
+0x5972,0x5b4d,0x5dd8,0x882f,0x5f4f,0x6201,0x6203,0x6204,
+0x6529,0x6525,0x6596,0x66eb,0x6b11,0x6b12,0x6b0f,0x6bca,
+0x705b,0x705a,0x7222,0x7382,0x7381,0x7383,0x7670,0x77d4,
+0x7c67,0x7c66,0x7e95,0x826c,0x863a,0x8640,0x8639,0x863c,
+0x8631,0x863b,0x863e,0x8830,0x8832,0x882e,0x8833,0x8976,
+0x8974,0x8973,0x89fe,0x8b8c,0x8b8e,0x8b8b,0x8b88,0x8c45,
+0x8d19,0x8e98,0x8f64,0x8f63,0x91bc,0x9462,0x9455,0x945d,
+0x9457,0x945e,0x97c4,0x97c5,0x9800,0x9a56,0x9a59,0x9b1e,
+0x9b1f,0x9b20,0x9c52,0x9c58,0x9c50,0x9c4a,0x9c4d,0x9c4b,
+0x9c55,0x9c59,0x9c4c,0x9c4e,0x9dfb,0x9df7,0x9def,0x9de3,
+0x9deb,0x9df8,0x9de4,0x9df6,0x9de1,0x9dee,0x9de6,0x9df2,
+0x9df0,0x9de2,0x9dec,0x9df4,0x9df3,0x9de8,0x9ded,0x9ec2,
+0x9ed0,0x9ef2,0x9ef3,0x9f06,0x9f1c,0x9f38,0x9f37,0x9f36,
+0x9f43,0x9f4f,0x9f71,0x9f70,0x9f6e,0x9f6f,0x56d3,0x56cd,
+0x5b4e,0x5c6d,0x652d,0x66ed,0x66ee,0x6b13,0x705f,0x7061,
+0x705d,0x7060,0x7223,0x74db,0x74e5,0x77d5,0x7938,0x79b7,
+0x79b6,0x7c6a,0x7e97,0x7f89,0x826d,0x8643,0x8838,0x8837,
+0x8835,0x884b,0x8b94,0x8b95,0x8e9e,0x8e9f,0x8ea0,0x8e9d,
+0x91be,0x91bd,0x91c2,0x946b,0x9468,0x9469,0x96e5,0x9746,
+0x9743,0x9747,0x97c7,0x97e5,0x9a5e,0x9ad5,0x9b59,0x9c63,
+0x9c67,0x9c66,0x9c62,0x9c5e,0x9c60,0x9e02,0x9dfe,0x9e07,
+0x9e03,0x9e06,0x9e05,0x9e00,0x9e01,0x9e09,0x9dff,0x9dfd,
+0x9e04,0x9ea0,0x9f1e,0x9f46,0x9f74,0x9f75,0x9f76,0x56d4,
+0x652e,0x65b8,0x6b18,0x6b19,0x6b17,0x6b1a,0x7062,0x7226,
+0x72aa,0x77d8,0x77d9,0x7939,0x7c69,0x7c6b,0x7cf6,0x7e9a,
+0x7e98,0x7e9b,0x7e99,0x81e0,0x81e1,0x8646,0x8647,0x8648,
+0x8979,0x897a,0x897c,0x897b,0x89ff,0x8b98,0x8b99,0x8ea5,
+0x8ea4,0x8ea3,0x946e,0x946d,0x946f,0x9471,0x9473,0x9749,
+0x9872,0x995f,0x9c68,0x9c6e,0x9c6d,0x9e0b,0x9e0d,0x9e10,
+0x9e0f,0x9e12,0x9e11,0x9ea1,0x9ef5,0x9f09,0x9f47,0x9f78,
+0x9f7b,0x9f7a,0x9f79,0x571e,0x7066,0x7c6f,0x883c,0x8db2,
+0x8ea6,0x91c3,0x9474,0x9478,0x9476,0x9475,0x9a60,0x9c74,
+0x9c73,0x9c71,0x9c75,0x9e14,0x9e13,0x9ef6,0x9f0a,0x9fa4,
+0x7068,0x7065,0x7cf7,0x866a,0x883e,0x883d,0x883f,0x8b9e,
+0x8c9c,0x8ea9,0x8ec9,0x974b,0x9873,0x9874,0x98cc,0x9961,
+0x99ab,0x9a64,0x9a66,0x9a67,0x9b24,0x9e15,0x9e17,0x9f48,
+0x6207,0x6b1e,0x7227,0x864c,0x8ea8,0x9482,0x9480,0x9481,
+0x9a69,0x9a68,0x9b2e,0x9e19,0x7229,0x864b,0x8b9f,0x9483,
+0x9c79,0x9eb7,0x7675,0x9a6b,0x9c7a,0x9e1d,0x7069,0x706a,
+0x9ea4,0x9f7e,0x9f49,0x9f98, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,
+};
diff --git a/src/cmd/tcs/big5.h b/src/cmd/tcs/big5.h
new file mode 100644
index 00000000..ec90ada1
--- /dev/null
+++ b/src/cmd/tcs/big5.h
@@ -0,0 +1,4 @@
+#define BIG5MAX 13973
+#define BIG5FONT 157
+
+extern long tabbig5[BIG5MAX]; /* runes indexed by big5 ordinal */
diff --git a/src/cmd/tcs/conv.h b/src/cmd/tcs/conv.h
new file mode 100644
index 00000000..b8b75439
--- /dev/null
+++ b/src/cmd/tcs/conv.h
@@ -0,0 +1,18 @@
+void jis_in(int fd, long *notused, struct convert *out);
+void jisjis_in(int fd, long *notused, struct convert *out);
+void msjis_in(int fd, long *notused, struct convert *out);
+void ujis_in(int fd, long *notused, struct convert *out);
+void jisjis_out(Rune *base, int n, long *notused);
+void ujis_out(Rune *base, int n, long *notused);
+void msjis_out(Rune *base, int n, long *notused);
+void big5_in(int fd, long *notused, struct convert *out);
+void big5_out(Rune *base, int n, long *notused);
+void gb_in(int fd, long *notused, struct convert *out);
+void gb_out(Rune *base, int n, long *notused);
+void uksc_in(int fd, long *notused, struct convert *out);
+void uksc_out(Rune *base, int n, long *notused);
+
+#define emit(x) *(*r)++ = (x)
+#define NRUNE 65536
+
+extern long tab[]; /* common table indexed by Runes for reverse mappings */
diff --git a/src/cmd/tcs/conv_big5.c b/src/cmd/tcs/conv_big5.c
new file mode 100644
index 00000000..d81c8717
--- /dev/null
+++ b/src/cmd/tcs/conv_big5.c
@@ -0,0 +1,165 @@
+#ifdef PLAN9
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#else
+#include <stdio.h>
+#include <unistd.h>
+#include "plan9.h"
+#endif
+#include "hdr.h"
+#include "conv.h"
+#include "big5.h"
+
+/*
+ a state machine for interpreting big5 (hk format).
+*/
+void
+big5proc(int c, Rune **r, long input_loc)
+{
+ static enum { state0, state1 } state = state0;
+ static int lastc;
+ long n, ch, f, cold = c;
+
+ switch(state)
+ {
+ case state0: /* idle state */
+ if(c < 0)
+ return;
+ if(c >= 0xA1){
+ lastc = c;
+ state = state1;
+ return;
+ }
+ if(c == 26)
+ c = '\n';
+ emit(c);
+ return;
+
+ case state1: /* seen a font spec */
+ if(c >= 64 && c <= 126)
+ c -= 64;
+ else if(c >= 161 && c <= 254)
+ c = c-161 + 63;
+ else {
+ nerrors++;
+ if(squawk)
+ EPR "%s: bad big5 glyph (from 0x%x,0x%lx) near byte %ld in %s\n",
+ argv0, lastc, cold, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ state = state0;
+ return;
+ }
+ if(lastc >= 161 && lastc <= 254)
+ f = lastc - 161;
+ else {
+ nerrors++;
+ if(squawk)
+ EPR "%s: bad big5 font %d (from 0x%x,0x%lx) near byte %ld in %s\n",
+ argv0, lastc-161, lastc, cold, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ state = state0;
+ return;
+ }
+ n = f*BIG5FONT + c;
+ if(n < BIG5MAX)
+ ch = tabbig5[n];
+ else
+ ch = -1;
+ if(ch < 0){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown big5 %ld (from 0x%x,0x%lx) near byte %ld in %s\n",
+ argv0, n, lastc, cold, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else
+ emit(ch);
+ state = state0;
+ }
+}
+
+void
+big5_in(int fd, long *notused, struct convert *out)
+{
+ Rune ob[N];
+ Rune *r, *re;
+ uchar ibuf[N];
+ int n, i;
+ long nin;
+
+ USED(notused);
+ r = ob;
+ re = ob+N-3;
+ nin = 0;
+ while((n = read(fd, ibuf, sizeof ibuf)) > 0){
+ for(i = 0; i < n; i++){
+ big5proc(ibuf[i], &r, nin++);
+ if(r >= re){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ if(r > ob){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ big5proc(-1, &r, nin);
+ if(r > ob)
+ OUT(out, ob, r-ob);
+}
+
+void
+big5_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ int i;
+ Rune r;
+ static int first = 1;
+
+ USED(notused);
+ if(first){
+ first = 0;
+ for(i = 0; i < NRUNE; i++)
+ tab[i] = -1;
+ for(i = 0; i < BIG5MAX; i++)
+ if(tabbig5[i] != -1)
+ tab[tabbig5[i]] = i;
+ }
+ nrunes += n;
+ p = obuf;
+ for(i = 0; i < n; i++){
+ r = base[i];
+ if(r < 128)
+ *p++ = r;
+ else {
+ if(tab[r] != -1){
+ r = tab[r];
+ if(r >= BIG5MAX){
+ *p++ = 0xA1;
+ *p++ = r-BIG5MAX;
+ continue;
+ } else {
+ *p++ = 0xA1 + (r/BIG5FONT);
+ r = r%BIG5FONT;
+ if(r <= 62) r += 64;
+ else r += 0xA1-63;
+ *p++ = r;
+ continue;
+ }
+ }
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, r);
+ nerrors++;
+ if(clean)
+ continue;
+ *p++ = BYTEBADMAP;
+ }
+ }
+ noutput += p-obuf;
+ if(p > obuf)
+ write(1, obuf, p-obuf);
+}
diff --git a/src/cmd/tcs/conv_gb.c b/src/cmd/tcs/conv_gb.c
new file mode 100644
index 00000000..70835257
--- /dev/null
+++ b/src/cmd/tcs/conv_gb.c
@@ -0,0 +1,134 @@
+#ifdef PLAN9
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#else
+#include <stdio.h>
+#include <unistd.h>
+#include "plan9.h"
+#endif
+#include "hdr.h"
+#include "conv.h"
+#include "gb.h"
+
+/*
+ a state machine for interpreting gb.
+*/
+void
+gbproc(int c, Rune **r, long input_loc)
+{
+ static enum { state0, state1 } state = state0;
+ static int lastc;
+ long n, ch, cold = c;
+
+ switch(state)
+ {
+ case state0: /* idle state */
+ if(c < 0)
+ return;
+ if(c >= 0xA1){
+ lastc = c;
+ state = state1;
+ return;
+ }
+ emit(c);
+ return;
+
+ case state1: /* seen a font spec */
+ if(c >= 0xA1)
+ n = (lastc-0xA0)*100 + (c-0xA0);
+ else {
+ nerrors++;
+ if(squawk)
+ EPR "%s: bad gb glyph %d (from 0x%x,0x%lx) near byte %ld in %s\n", argv0, c-0xA0, lastc, cold, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ state = state0;
+ return;
+ }
+ ch = tabgb[n];
+ if(ch < 0){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown gb %ld (from 0x%x,0x%lx) near byte %ld in %s\n", argv0, n, lastc, cold, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else
+ emit(ch);
+ state = state0;
+ }
+}
+
+void
+gb_in(int fd, long *notused, struct convert *out)
+{
+ Rune ob[N];
+ Rune *r, *re;
+ uchar ibuf[N];
+ int n, i;
+ long nin;
+
+ USED(notused);
+ r = ob;
+ re = ob+N-3;
+ nin = 0;
+ while((n = read(fd, ibuf, sizeof ibuf)) > 0){
+ for(i = 0; i < n; i++){
+ gbproc(ibuf[i], &r, nin++);
+ if(r >= re){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ if(r > ob){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ gbproc(-1, &r, nin);
+ if(r > ob)
+ OUT(out, ob, r-ob);
+}
+
+void
+gb_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ int i;
+ Rune r;
+ static int first = 1;
+
+ USED(notused);
+ if(first){
+ first = 0;
+ for(i = 0; i < NRUNE; i++)
+ tab[i] = -1;
+ for(i = 0; i < GBMAX; i++)
+ if(tabgb[i] != -1)
+ tab[tabgb[i]] = i;
+ }
+ nrunes += n;
+ p = obuf;
+ for(i = 0; i < n; i++){
+ r = base[i];
+ if(r < 128)
+ *p++ = r;
+ else {
+ if(tab[r] != -1){
+ r = tab[r];
+ *p++ = 0xA0 + (r/100);
+ *p++ = 0xA0 + (r%100);
+ continue;
+ }
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, r);
+ nerrors++;
+ if(clean)
+ continue;
+ *p++ = BYTEBADMAP;
+ }
+ }
+ noutput += p-obuf;
+ if(p > obuf)
+ write(1, obuf, p-obuf);
+}
diff --git a/src/cmd/tcs/conv_jis.c b/src/cmd/tcs/conv_jis.c
new file mode 100644
index 00000000..18579d70
--- /dev/null
+++ b/src/cmd/tcs/conv_jis.c
@@ -0,0 +1,535 @@
+#ifdef PLAN9
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#else
+#include <stdio.h>
+#include <unistd.h>
+#include "plan9.h"
+#endif
+#include "hdr.h"
+#include "conv.h"
+#include "kuten208.h"
+#include "jis.h"
+
+/*
+ a state machine for interpreting all sorts of encodings
+*/
+static void
+alljis(int c, Rune **r, long input_loc)
+{
+ static enum { state0, state1, state2, state3, state4 } state = state0;
+ static int set8 = 0;
+ static int japan646 = 0;
+ static int lastc;
+ int n;
+ long l;
+
+again:
+ switch(state)
+ {
+ case state0: /* idle state */
+ if(c == ESC){ state = state1; return; }
+ if(c < 0) return;
+ if(!set8 && (c < 128)){
+ if(japan646){
+ switch(c)
+ {
+ case '\\': emit(0xA5); return; /* yen */
+ case '~': emit(0xAF); return; /* spacing macron */
+ default: emit(c); return;
+ }
+ } else {
+ emit(c);
+ return;
+ }
+ }
+ if(c < 0x21){ /* guard against bogus characters in JIS mode */
+ if(squawk)
+ EPR "%s: non-JIS character %02x in %s near byte %ld\n", argv0, c, file, input_loc);
+ emit(c);
+ return;
+ }
+ lastc = c; state = state4; return;
+
+ case state1: /* seen an escape */
+ if(c == '$'){ state = state2; return; }
+ if(c == '('){ state = state3; return; }
+ emit(ESC); state = state0; goto again;
+
+ case state2: /* may be shifting into JIS */
+ if((c == '@') || (c == 'B')){
+ set8 = 1; state = state0; return;
+ }
+ emit(ESC); emit('$'); state = state0; goto again;
+
+ case state3: /* may be shifting out of JIS */
+ if((c == 'J') || (c == 'H') || (c == 'B')){
+ japan646 = (c == 'J');
+ set8 = 0; state = state0; return;
+ }
+ emit(ESC); emit('('); state = state0; goto again;
+
+ case state4: /* two part char */
+ if(c < 0){
+ if(squawk)
+ EPR "%s: unexpected EOF in %s\n", argv0, file);
+ c = 0x21 | (lastc&0x80);
+ }
+ if(CANS2J(lastc, c)){ /* ms dos sjis */
+ int hi = lastc, lo = c;
+ S2J(hi, lo); /* convert to 208 */
+ n = hi*100 + lo - 3232; /* convert to kuten208 */
+ } else
+ n = (lastc&0x7F)*100 + (c&0x7f) - 3232; /* kuten208 */
+ if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else {
+ if(l < 0){
+ l = -l;
+ if(squawk)
+ EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file);
+ }
+ emit(l);
+ }
+ state = state0;
+ }
+}
+
+/*
+ a state machine for interpreting ms-kanji == shift-jis.
+*/
+static void
+ms(int c, Rune **r, long input_loc)
+{
+ static enum { state0, state1, state2, state3, state4 } state = state0;
+ static int set8 = 0;
+ static int japan646 = 0;
+ static int lastc;
+ int n;
+ long l;
+
+again:
+ switch(state)
+ {
+ case state0: /* idle state */
+ if(c == ESC){ state = state1; return; }
+ if(c < 0) return;
+ if(!set8 && (c < 128)){
+ if(japan646){
+ switch(c)
+ {
+ case '\\': emit(0xA5); return; /* yen */
+ case '~': emit(0xAF); return; /* spacing macron */
+ default: emit(c); return;
+ }
+ } else {
+ emit(c);
+ return;
+ }
+ }
+ lastc = c; state = state4; return;
+
+ case state1: /* seen an escape */
+ if(c == '$'){ state = state2; return; }
+ if(c == '('){ state = state3; return; }
+ emit(ESC); state = state0; goto again;
+
+ case state2: /* may be shifting into JIS */
+ if((c == '@') || (c == 'B')){
+ set8 = 1; state = state0; return;
+ }
+ emit(ESC); emit('$'); state = state0; goto again;
+
+ case state3: /* may be shifting out of JIS */
+ if((c == 'J') || (c == 'H') || (c == 'B')){
+ japan646 = (c == 'J');
+ set8 = 0; state = state0; return;
+ }
+ emit(ESC); emit('('); state = state0; goto again;
+
+ case state4: /* two part char */
+ if(c < 0){
+ if(squawk)
+ EPR "%s: unexpected EOF in %s\n", argv0, file);
+ c = 0x21 | (lastc&0x80);
+ }
+ if(CANS2J(lastc, c)){ /* ms dos sjis */
+ int hi = lastc, lo = c;
+ S2J(hi, lo); /* convert to 208 */
+ n = hi*100 + lo - 3232; /* convert to kuten208 */
+ } else {
+ nerrors++;
+ if(squawk)
+ EPR "%s: illegal byte pair (0x%x,0x%x) near byte %ld in %s\n", argv0, lastc, c, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ state = state0;
+ goto again;
+ }
+ if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else {
+ if(l < 0){
+ l = -l;
+ if(squawk)
+ EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file);
+ }
+ emit(l);
+ }
+ state = state0;
+ }
+}
+
+/*
+ a state machine for interpreting ujis == EUC
+*/
+static void
+ujis(int c, Rune **r, long input_loc)
+{
+ static enum { state0, state1 } state = state0;
+ static int lastc;
+ int n;
+ long l;
+
+ switch(state)
+ {
+ case state0: /* idle state */
+ if(c < 0) return;
+ if(c < 128){
+ emit(c);
+ return;
+ }
+ if(c == 0x8e){ /* codeset 2 */
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown codeset 2 near byte %ld in %s\n", argv0, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ return;
+ }
+ if(c == 0x8f){ /* codeset 3 */
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown codeset 3 near byte %ld in %s\n", argv0, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ return;
+ }
+ lastc = c;
+ state = state1;
+ return;
+
+ case state1: /* two part char */
+ if(c < 0){
+ if(squawk)
+ EPR "%s: unexpected EOF in %s\n", argv0, file);
+ c = 0xA1;
+ }
+ n = (lastc&0x7F)*100 + (c&0x7F) - 3232; /* kuten208 */
+ if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else {
+ if(l < 0){
+ l = -l;
+ if(squawk)
+ EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file);
+ }
+ emit(l);
+ }
+ state = state0;
+ }
+}
+
+/*
+ a state machine for interpreting jis-kanji == 2022-JP
+*/
+static void
+jis(int c, Rune **r, long input_loc)
+{
+ static enum { state0, state1, state2, state3, state4 } state = state0;
+ static int set8 = 0;
+ static int japan646 = 0;
+ static int lastc;
+ int n;
+ long l;
+
+again:
+ switch(state)
+ {
+ case state0: /* idle state */
+ if(c == ESC){ state = state1; return; }
+ if(c < 0) return;
+ if(!set8 && (c < 128)){
+ if(japan646){
+ switch(c)
+ {
+ case '\\': emit(0xA5); return; /* yen */
+ case '~': emit(0xAF); return; /* spacing macron */
+ default: emit(c); return;
+ }
+ } else {
+ emit(c);
+ return;
+ }
+ }
+ lastc = c; state = state4; return;
+
+ case state1: /* seen an escape */
+ if(c == '$'){ state = state2; return; }
+ if(c == '('){ state = state3; return; }
+ emit(ESC); state = state0; goto again;
+
+ case state2: /* may be shifting into JIS */
+ if((c == '@') || (c == 'B')){
+ set8 = 1; state = state0; return;
+ }
+ emit(ESC); emit('$'); state = state0; goto again;
+
+ case state3: /* may be shifting out of JIS */
+ if((c == 'J') || (c == 'H') || (c == 'B')){
+ japan646 = (c == 'J');
+ set8 = 0; state = state0; return;
+ }
+ emit(ESC); emit('('); state = state0; goto again;
+
+ case state4: /* two part char */
+ if(c < 0){
+ if(squawk)
+ EPR "%s: unexpected EOF in %s\n", argv0, file);
+ c = 0x21 | (lastc&0x80);
+ }
+ if((lastc&0x80) != (c&0x80)){ /* guard against latin1 in jis */
+ emit(lastc);
+ state = state0;
+ goto again;
+ }
+ n = (lastc&0x7F)*100 + (c&0x7f) - 3232; /* kuten208 */
+ if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else {
+ if(l < 0){
+ l = -l;
+ if(squawk)
+ EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file);
+ }
+ emit(l);
+ }
+ state = state0;
+ }
+}
+
+static void
+do_in(int fd, void (*procfn)(int, Rune **, long), struct convert *out)
+{
+ Rune ob[N];
+ Rune *r, *re;
+ uchar ibuf[N];
+ int n, i;
+ long nin;
+
+ r = ob;
+ re = ob+N-3;
+ nin = 0;
+ while((n = read(fd, ibuf, sizeof ibuf)) > 0){
+ for(i = 0; i < n; i++){
+ (*procfn)(ibuf[i], &r, nin++);
+ if(r >= re){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ if(r > ob){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ (*procfn)(-1, &r, nin);
+ if(r > ob)
+ OUT(out, ob, r-ob);
+}
+
+void
+jis_in(int fd, long *notused, struct convert *out)
+{
+ USED(notused);
+ do_in(fd, alljis, out);
+}
+
+void
+ujis_in(int fd, long *notused, struct convert *out)
+{
+ USED(notused);
+ do_in(fd, ujis, out);
+}
+
+void
+msjis_in(int fd, long *notused, struct convert *out)
+{
+ USED(notused);
+ do_in(fd, ms, out);
+}
+
+void
+jisjis_in(int fd, long *notused, struct convert *out)
+{
+ USED(notused);
+ do_in(fd, jis, out);
+}
+
+static int first = 1;
+
+static void
+tab_init(void)
+{
+ int i;
+ long l;
+
+ first = 0;
+ for(i = 0; i < NRUNE; i++)
+ tab[i] = -1;
+ for(i = 0; i < KUTEN208MAX; i++)
+ if((l = tabkuten208[i]) != -1){
+ if(l < 0)
+ tab[-l] = i;
+ else
+ tab[l] = i;
+ }
+}
+
+
+/* jis-kanji, or ISO 2022-JP */
+void
+jisjis_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ int i;
+ Rune r;
+ static enum { ascii, japan646, jp2022 } state = ascii;
+
+ USED(notused);
+ if(first)
+ tab_init();
+ nrunes += n;
+ p = obuf;
+ for(i = 0; i < n; i++){
+ r = base[i];
+ if(r < 128){
+ if(state == jp2022){
+ *p++ = ESC; *p++ = '('; *p++ = 'B';
+ state = ascii;
+ }
+ *p++ = r;
+ } else {
+ if(tab[r] != -1){
+ if(state != jp2022){
+ *p++ = ESC; *p++ = '$'; *p++ = 'B';
+ state = jp2022;
+ }
+ *p++ = tab[r]/100 + ' ';
+ *p++ = tab[r]%100 + ' ';
+ continue;
+ }
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, r);
+ nerrors++;
+ if(clean)
+ continue;
+ *p++ = BYTEBADMAP;
+ }
+ }
+ noutput += p-obuf;
+ if(p > obuf)
+ write(1, obuf, p-obuf);
+}
+
+/* ms-kanji, or Shift-JIS */
+void
+msjis_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ int i, hi, lo;
+ Rune r;
+
+ USED(notused);
+ if(first)
+ tab_init();
+ nrunes += n;
+ p = obuf;
+ for(i = 0; i < n; i++){
+ r = base[i];
+ if(r < 128)
+ *p++ = r;
+ else {
+ if(tab[r] != -1){
+ hi = tab[r]/100 + ' ';
+ lo = tab[r]%100 + ' ';
+ J2S(hi, lo);
+ *p++ = hi;
+ *p++ = lo;
+ continue;
+ }
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, r);
+ nerrors++;
+ if(clean)
+ continue;
+ *p++ = BYTEBADMAP;
+ }
+ }
+ noutput += p-obuf;
+ if(p > obuf)
+ write(1, obuf, p-obuf);
+}
+
+/* ujis, or EUC */
+void
+ujis_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ int i;
+ Rune r;
+
+ USED(notused);
+ if(first)
+ tab_init();
+ nrunes += n;
+ p = obuf;
+ for(i = 0; i < n; i++){
+ r = base[i];
+ if(r < 128)
+ *p++ = r;
+ else {
+ if(tab[r] != -1){
+ *p++ = 0x80 | (tab[r]/100 + ' ');
+ *p++ = 0x80 | (tab[r]%100 + ' ');
+ continue;
+ }
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, r);
+ nerrors++;
+ if(clean)
+ continue;
+ *p++ = BYTEBADMAP;
+ }
+ }
+ noutput += p-obuf;
+ if(p > obuf)
+ write(1, obuf, p-obuf);
+}
diff --git a/src/cmd/tcs/conv_ksc.c b/src/cmd/tcs/conv_ksc.c
new file mode 100644
index 00000000..cbc17f5b
--- /dev/null
+++ b/src/cmd/tcs/conv_ksc.c
@@ -0,0 +1,160 @@
+#ifdef PLAN9
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#else
+#include <stdio.h>
+#include <unistd.h>
+#include "plan9.h"
+#endif
+#include "hdr.h"
+#include "conv.h"
+#include "ksc.h"
+
+/*
+ contributed by kuro@vodka.Eng.Sun.COM (Teruhiko Kurosaka)
+*/
+
+/*
+ a state machine for interpreting shift-ksc.
+*/
+
+#define SS2 0x8e
+#define SS3 0x8f
+/*
+ * Convert EUC in Koran locale to Unicode.
+ * Only codeset 0 and 1 are used.
+ */
+void
+ukscproc(int c, Rune **r, long input_loc)
+{
+ static enum { init, cs1last /*, cs2, cs3first, cs3last*/} state = init;
+ static int korean646 = 1; /* fixed to 1 for now. */
+ static int lastc;
+ int n;
+ long l;
+
+ switch(state)
+ {
+ case init:
+ if (c < 0){
+ return;
+ }else if (c < 128){
+ if(korean646 && (c=='\\')){
+ emit(0x20A9);
+ } else {
+ emit(c);
+ }
+/* }else if (c==SS2){
+ state = cs2;
+ }else if (c==SS3){
+ state = cs3first;
+ */ }else{
+ lastc = c;
+ state = cs1last;
+ }
+ return;
+
+ case cs1last: /* 2nd byte of codeset 1 (KSC 5601) */
+ if(c < 0){
+ if(squawk)
+ EPR "%s: unexpected EOF in %s\n", argv0, file);
+ c = 0x21 | (lastc&0x80);
+ }
+ n = ((lastc&0x7f)-33)*94 + (c&0x7f)-33;
+ if((n >= ksc5601max) || ((l = tabksc5601[n]) < 0)){
+ nerrors++;
+ if(squawk)
+ EPR "%s: unknown ksc5601 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file);
+ if(!clean)
+ emit(BADMAP);
+ } else {
+ emit(l);
+ }
+ state = init;
+ return;
+ default:
+ if(squawk)
+ EPR "%s: ukscproc: unknown state %d\n",
+ argv0, init);
+ }
+}
+
+void
+uksc_in(int fd, long *notused, struct convert *out)
+{
+ Rune ob[N];
+ Rune *r, *re;
+ uchar ibuf[N];
+ int n, i;
+ long nin;
+
+ USED(notused);
+ r = ob;
+ re = ob+N-3;
+ nin = 0;
+ while((n = read(fd, ibuf, sizeof ibuf)) > 0){
+ for(i = 0; i < n; i++){
+ ukscproc(ibuf[i], &r, nin++);
+ if(r >= re){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ if(r > ob){
+ OUT(out, ob, r-ob);
+ r = ob;
+ }
+ }
+ ukscproc(-1, &r, nin);
+ if(r > ob)
+ OUT(out, ob, r-ob);
+}
+
+void
+uksc_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ int i;
+ Rune r;
+ long l;
+ static int first = 1;
+
+ USED(notused);
+ if(first){
+ first = 0;
+ for(i = 0; i < NRUNE; i++)
+ tab[i] = -1;
+ for(i = 0; i < ksc5601max; i++)
+ if((l = tabksc5601[i]) != -1){
+ if(l < 0)
+ tab[-l] = i;
+ else
+ tab[l] = i;
+ }
+ }
+ nrunes += n;
+ p = obuf;
+ for(i = 0; i < n; i++){
+ r = base[i];
+ if(r < 128)
+ *p++ = r;
+ else {
+ if(tab[r] != -1){
+ *p++ = 0x80 | (tab[r]/94 + 0x21);
+ *p++ = 0x80 | (tab[r]%94 + 0x21);
+ continue;
+ }
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, r);
+ nerrors++;
+ if(clean)
+ continue;
+ *p++ = BYTEBADMAP;
+ }
+ }
+ noutput += p-obuf;
+ if(p > obuf)
+ write(1, obuf, p-obuf);
+}
+
diff --git a/src/cmd/tcs/cyrillic.h b/src/cmd/tcs/cyrillic.h
new file mode 100644
index 00000000..ad8f4574
--- /dev/null
+++ b/src/cmd/tcs/cyrillic.h
@@ -0,0 +1,162 @@
+long tabucode[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x00a0, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
+0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
+0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
+0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+};
+long tabkoi8[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x044e,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
+0x0445,0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,
+0x043f,0x044f,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
+0x044c,0x044b,0x0437,0x0448,0x044d,0x0449,0x0447,0x044a,
+0x042e,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
+0x0425,0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,
+0x041f,0x042f,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
+0x042c,0x042b,0x0417,0x0428,0x042d,0x0429,0x0427,0x042a,
+};
+long tab866[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
+0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
+0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
+0x0401,0x0451, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+};
+long tabav[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
+0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
+0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
+0x0401,0x0451,0x0301,0x0300,0x0301,0x0300,0x2192,0x2190,
+0x2193,0x2191,0x00f7,0x00b1,0x2116,0x00a4, -1, -1,
+};
+long tabcp1251[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x0402,0x0403,0x201a,0x0453,0x201e,0x2026,0x2020,0x2021,
+ -1,0x2030,0x0409,0x2039,0x040a,0x040c,0x040b,0x040f,
+0x0452,0x2018,0x2019,0x201c,0x201d,0x2022,0x2013,0x2014,
+ -1,0x2122,0x0459,0x203a,0x045a,0x045c,0x045b,0x045f,
+0x00a0,0x040e,0x045e,0x0408,0x00a4,0x0490,0x00a6,0x00a7,
+0x0401,0x00a9,0x0404,0x00ab,0x00ac,0x00ad,0x00ae,0x0407,
+0x00b0,0x00b1,0x0406,0x0456,0x0491,0x00b5,0x00b6,0x00b7,
+0x0451,0x2116,0x0454,0x00bb,0x0458,0x0405,0x0455,0x0457,
+0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
+0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
+0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
+0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
+};
+long tabov[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
+0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
+0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
+0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
+0x0401,0x0451,0x0301,0x0300,0x0301,0x0300,0x2192,0x2190,
+0x2193,0x2191,0x00f7,0x00b1,0x2116,0x00a4, -1, -1,
+};
diff --git a/src/cmd/tcs/desc.latin b/src/cmd/tcs/desc.latin
new file mode 100644
index 00000000..1ea885fe
--- /dev/null
+++ b/src/cmd/tcs/desc.latin
@@ -0,0 +1,488 @@
+From Eng.Sun.COM!Bill.Tuthill Sat Jan 25 13:46:31 PST 1992
+Received: by pyxis; Sat Jan 25 21:57 EST 1992
+Received: by inet.att.com; Sat Jan 25 21:57 EST 1992
+Received: from Eng.Sun.COM (zigzag-bb.Corp.Sun.COM) by Sun.COM (4.1/SMI-4.1)
+ id AA00310; Sat, 25 Jan 92 18:57:42 PST
+Received: from cairo.Eng.Sun.COM by Eng.Sun.COM (4.1/SMI-4.1)
+ id AA24397; Sat, 25 Jan 92 13:44:29 PST
+Received: by cairo.Eng.Sun.COM (4.1/SMI-4.1)
+ id AA16411; Sat, 25 Jan 92 13:46:31 PST
+Date: Sat, 25 Jan 92 13:46:31 PST
+From: Bill.Tuthill@Eng.Sun.COM (Bill "Bill" Tuthill)
+Message-Id: <9201252146.AA16411@cairo.Eng.Sun.COM>
+To: andrew@research.att.com
+Subject: Unicode => 8859
+
+6.1a ISO Mapping Tables
+
+This section includes the following mapping tables:
+* Unicode value to ISO 8859, which contains several 8-bit character sets
+covering the Latin, Greek, Cyrillic, Hebrew and Arabic scripts.
+
+ Unicode Encoding to ISO 8859 Mappings
+
+ (For Unicode U+0000 to U+007F all mappings are identities.)
+
+UNIC 2 3 4 5 6 7 8 9 Unicode character name
+00A0 A0 A0 A0 A0 A0 A0 A0 A0 NON-BREAKING SPACE
+00A1 A1 INVERTED EXCLAMATION MARK
+00A2 A2 A2 CENT SIGN
+00A3 A3 A3 A3 A3 POUND SIGN
+00A4 A4 A4 A4 A4 A4 A4 CURRENCY SIGN
+00A5 A5 A5 YEN SIGN
+00A6 A6 A6 A6 BROKEN VERTICAL BAR
+00A7 A7 A7 A7 FD A7 A7 A7 SECTION SIGN
+00A8 A8 A8 A8 A8 A8 A8 SPACING DIAERESIS
+00A9 A9 A9 A9 COPYRIGHT SIGN
+00AA AA FEMININE ORDINAL INDICATOR
+00AB AB AB AB LEFT POINTING GUILLEMET
+00AC AC AC AC NOT SIGN
+00AD AD AD AD AD AD AD AD AD SOFT HYPHEN
+00AE AE AE REGISTERED TRADE MARK SIGN
+00AF AF AF SPACING MACRON
+00B0 B0 B0 B0 B0 B0 B0 DEGREE SIGN
+00B1 B1 B1 B1 PLUS-OR-MINUS SIGN
+00B2 B2 B2 B2 B2 SUPERSCRIPT DIGIT TWO
+00B3 B3 B3 B3 B3 SUPERSCRIPT DIGIT THREE
+00B4 B4 B4 B4 B4 B4 SPACING ACUTE
+00B5 B5 B5 B5 MICRO SIGN
+00B6 B6 B6 PARAGRAPH SIGN
+00B7 B7 B7 B7 B7 MIDDLE DOT
+00B8 B8 B8 B8 B8 B8 SPACING CEDILLA
+00B9 B9 B9 SUPERSCRIPT DIGIT ONE
+00BA BA MASCULINE ORDINAL INDICATOR
+00BB BB BB BB RIGHT POINTING GUILLEMET
+00BC BC BC FRACTION ONE QUARTER
+00BD BD BD BD BD FRACTION ONE HALF
+00BE BE BE FRACTION THREE QUARTERS
+00BF BF INVERTED QUESTION MARK
+00C0 C0 C0 LATIN CAPITAL LETTER A GRAVE
+00C1 C1 C1 C1 C1 LATIN CAPITAL LETTER A ACUTE
+00C2 C2 C2 C2 C2 LATIN CAPITAL LETTER A CIRCUMFLEX
+00C3 C3 C3 LATIN CAPITAL LETTER A TILDE
+00C4 C4 C4 C4 C4 LATIN CAPITAL LETTER A DIAERESIS
+00C5 C5 C5 LATIN CAPITAL LETTER A RING
+00C6 C6 C6 LATIN CAPITAL LETTER A E
+00C7 C7 C7 C7 LATIN CAPITAL LETTER C CEDILLA
+00C8 C8 C8 LATIN CAPITAL LETTER E GRAVE
+00C9 C9 C9 C9 C9 LATIN CAPITAL LETTER E ACUTE
+00CA CA CA LATIN CAPITAL LETTER E CIRCUMFLEX
+00CB CB CB CB CB LATIN CAPITAL LETTER E DIAERESIS
+00CC CC CC LATIN CAPITAL LETTER I GRAVE
+00CD CD CD CD CD LATIN CAPITAL LETTER I ACUTE
+00CE CE CE CE CE LATIN CAPITAL LETTER I CIRCUMFLEX
+00CF CF CF LATIN CAPITAL LETTER I DIAERESIS
+00D1 D1 D1 LATIN CAPITAL LETTER N TILDE
+00D2 D2 D2 LATIN CAPITAL LETTER O GRAVE
+00D3 D3 D3 D3 LATIN CAPITAL LETTER O ACUTE
+00D4 D4 D4 D4 D4 LATIN CAPITAL LETTER O CIRCUMFLEX
+00D5 D5 D5 LATIN CAPITAL LETTER O TILDE
+00D6 D6 D6 D6 D6 LATIN CAPITAL LETTER O DIAERESIS
+00D7 D7 D7 D7 AA D7 MULTIPLICATION SIGN
+00D8 D8 D8 LATIN CAPITAL LETTER O SLASH
+00D9 D9 D9 LATIN CAPITAL LETTER U GRAVE
+00DA DA DA DA DA LATIN CAPITAL LETTER U ACUTE
+00DB DB DB DB LATIN CAPITAL LETTER U CIRCUMFLEX
+00DC DC DC DC DC LATIN CAPITAL LETTER U DIAERESIS
+00DD DD LATIN CAPITAL LETTER Y ACUTE
+00DF DF DF DF DF LATIN SMALL LETTER SHARP S
+00E0 E0 E0 LATIN SMALL LETTER A GRAVE
+00E1 E1 E1 E1 E1 LATIN SMALL LETTER A ACUTE
+00E2 E2 E2 E2 E2 LATIN SMALL LETTER A CIRCUMFLEX
+00E3 E3 E3 LATIN SMALL LETTER A TILDE
+00E4 E4 E4 E4 E4 LATIN SMALL LETTER A DIAERESIS
+00E5 E5 E5 LATIN SMALL LETTER A RING
+00E6 E6 E6 LATIN SMALL LETTER A E
+00E7 E7 E7 E7 LATIN SMALL LETTER C CEDILLA
+00E8 E8 E8 LATIN SMALL LETTER E GRAVE
+00E9 E9 E9 E9 E9 LATIN SMALL LETTER E ACUTE
+00EA EA EA LATIN SMALL LETTER E CIRCUMFLEX
+00EB EB EB EB EB LATIN SMALL LETTER E DIAERESIS
+00EC EC EC LATIN SMALL LETTER I GRAVE
+00ED ED ED ED ED LATIN SMALL LETTER I ACUTE
+00EE EE EE EE EE LATIN SMALL LETTER I CIRCUMFLEX
+00EF EF EF LATIN SMALL LETTER I DIAERESIS
+00F1 F1 F1 LATIN SMALL LETTER N TILDE
+00F2 F2 F2 LATIN SMALL LETTER O GRAVE
+00F3 F3 F3 F3 LATIN SMALL LETTER O ACUTE
+00F4 F4 F4 F4 F4 LATIN SMALL LETTER O CIRCUMFLEX
+00F5 F5 F5 LATIN SMALL LETTER O TILDE
+00F6 F6 F6 F6 F6 LATIN SMALL LETTER O DIAERESIS
+00F7 F7 F7 F7 BA F7 DIVISION SIGN
+00F8 F8 F8 LATIN SMALL LETTER O SLASH
+00F9 F9 F9 LATIN SMALL LETTER U GRAVE
+00FA FA FA FA FA LATIN SMALL LETTER U ACUTE
+00FB FB FB FB LATIN SMALL LETTER U CIRCUMFLEX
+00FC FC FC FC FC LATIN SMALL LETTER U DIAERESIS
+00FD FD LATIN SMALL LETTER Y ACUTE
+00FF FF LATIN SMALL LETTER Y DIAERESIS
+0100 C0 LATIN CAPITAL LETTER A MACRON
+0101 E0 LATIN SMALL LETTER A MACRON
+0102 C3 LATIN CAPITAL LETTER A BREVE
+0103 E3 LATIN SMALL LETTER A BREVE
+0104 A1 A1 LATIN CAPITAL LETTER A OGONEK
+0105 B1 B1 LATIN SMALL LETTER A OGONEK
+0106 C6 LATIN CAPITAL LETTER C ACUTE
+0107 E6 LATIN SMALL LETTER C ACUTE
+0108 C6 LATIN CAPITAL LETTER C CIRCUMFLEX
+0109 E6 LATIN SMALL LETTER C CIRCUMFLEX
+010A C5 LATIN CAPITAL LETTER C DOT
+010B E5 LATIN SMALL LETTER C DOT
+010C C8 C8 LATIN CAPITAL LETTER C HACEK
+010D E8 E8 LATIN SMALL LETTER C HACEK
+010E CF LATIN CAPITAL LETTER D HACEK
+010F EF LATIN SMALL LETTER D HACEK
+0110 D0 D0 LATIN CAPITAL LETTER D BAR
+0111 F0 F0 LATIN SMALL LETTER D BAR
+0112 AA LATIN CAPITAL LETTER E MACRON
+0113 BA LATIN SMALL LETTER E MACRON
+0116 CC LATIN CAPITAL LETTER E DOT
+0117 EC LATIN SMALL LETTER E DOT
+0118 CA CA LATIN CAPITAL LETTER E OGONEK
+0119 EA EA LATIN SMALL LETTER E OGONEK
+011A CC LATIN CAPITAL LETTER E HACEK
+011B EC LATIN SMALL LETTER E HACEK
+011C D8 LATIN CAPITAL LETTER G CIRCUMFLEX
+011D F8 LATIN SMALL LETTER G CIRCUMFLEX
+011E AB D0 LATIN CAPITAL LETTER G BREVE
+011F BB F0 LATIN SMALL LETTER G BREVE
+0120 D5 LATIN CAPITAL LETTER G DOT
+0121 F5 LATIN SMALL LETTER G DOT
+0122 AB LATIN CAPITAL LETTER G CEDILLA
+0123 BB LATIN SMALL LETTER G CEDILLA
+0124 A6 LATIN CAPITAL LETTER H CIRCUMFLEX
+0125 B6 LATIN SMALL LETTER H CIRCUMFLEX
+0126 A1 LATIN CAPITAL LETTER H BAR
+0127 B1 LATIN SMALL LETTER H BAR
+0128 A5 LATIN CAPITAL LETTER I TILDE
+0129 B5 LATIN SMALL LETTER I TILDE
+012A CF LATIN CAPITAL LETTER I MACRON
+012B EF LATIN SMALL LETTER I MACRON
+012E C7 LATIN CAPITAL LETTER I OGONEK
+012F E7 LATIN SMALL LETTER I OGONEK
+0130 A9 DD LATIN CAPITAL LETTER I DOT
+0131 B9 FD LATIN SMALL LETTER DOTLESS I
+0134 AC LATIN CAPITAL LETTER J CIRCUMFLEX
+0135 BC LATIN SMALL LETTER J CIRCUMFLEX
+0136 D3 LATIN CAPITAL LETTER K CEDILLA
+0137 F3 LATIN SMALL LETTER K CEDILLA
+0138 A2 LATIN SMALL LETTER KRA
+0139 C5 LATIN CAPITAL LETTER L ACUTE
+013A E5 LATIN SMALL LETTER L ACUTE
+013B A6 LATIN CAPITAL LETTER L CEDILLA
+013C B6 LATIN SMALL LETTER L CEDILLA
+013D A5 LATIN CAPITAL LETTER L HACEK
+013E B5 LATIN SMALL LETTER L HACEK
+0141 A3 LATIN CAPITAL LETTER L SLASH
+0142 B3 LATIN SMALL LETTER L SLASH
+0143 D1 LATIN CAPITAL LETTER N ACUTE
+0144 F1 LATIN SMALL LETTER N ACUTE
+0145 D1 LATIN CAPITAL LETTER N CEDILLA
+0146 F1 LATIN SMALL LETTER N CEDILLA
+0147 D2 LATIN CAPITAL LETTER N HACEK
+0148 F2 LATIN SMALL LETTER N HACEK
+014A BD LATIN CAPITAL LETTER ENG
+014B BF LATIN SMALL LETTER ENG
+014C D2 LATIN CAPITAL LETTER O MACRON
+014D F2 LATIN SMALL LETTER O MACRON
+0150 D5 LATIN CAPITAL LETTER O DOUBLE ACUTE
+0151 F5 LATIN SMALL LETTER O DOUBLE ACUTE
+0154 C0 LATIN CAPITAL LETTER R ACUTE
+0155 E0 LATIN SMALL LETTER R ACUTE
+0156 A3 LATIN CAPITAL LETTER R CEDILLA
+0157 B3 LATIN SMALL LETTER R CEDILLA
+0158 D8 LATIN CAPITAL LETTER R HACEK
+0159 F8 LATIN SMALL LETTER R HACEK
+015A A6 LATIN CAPITAL LETTER S ACUTE
+015B B6 LATIN SMALL LETTER S ACUTE
+015C DE LATIN CAPITAL LETTER S CIRCUMFLEX
+015D FE LATIN SMALL LETTER S CIRCUMFLEX
+015E AA AA DE LATIN CAPITAL LETTER S CEDILLA
+015F BA BA FE LATIN SMALL LETTER S CEDILLA
+0160 A9 A9 LATIN CAPITAL LETTER S HACEK
+0161 B9 B9 LATIN SMALL LETTER S HACEK
+0162 DE LATIN CAPITAL LETTER T CEDILLA
+0163 FE LATIN SMALL LETTER T CEDILLA
+0164 AB LATIN CAPITAL LETTER T HACEK
+0165 BB LATIN SMALL LETTER T HACEK
+0166 AC LATIN CAPITAL LETTER T BAR
+0167 BC LATIN SMALL LETTER T BAR
+0168 DD LATIN CAPITAL LETTER U TILDE
+0169 FD LATIN SMALL LETTER U TILDE
+016A DE LATIN CAPITAL LETTER U MACRON
+016B FE LATIN SMALL LETTER U MACRON
+016C DD LATIN CAPITAL LETTER U BREVE
+016D FD LATIN SMALL LETTER U BREVE
+016E D9 LATIN CAPITAL LETTER U RING
+016F F9 LATIN SMALL LETTER U RING
+0170 DB LATIN CAPITAL LETTER U DOUBLE ACUTE
+0171 FB LATIN SMALL LETTER U DOUBLE ACUTE
+0172 D9 LATIN CAPITAL LETTER U OGONEK
+0173 F9 LATIN SMALL LETTER U OGONEK
+0179 AC LATIN CAPITAL LETTER Z ACUTE
+017A BC LATIN SMALL LETTER Z ACUTE
+017B AF AF LATIN CAPITAL LETTER Z DOT
+017C BF BF LATIN SMALL LETTER Z DOT
+017D AE AE LATIN CAPITAL LETTER Z HACEK
+017E BE BE LATIN SMALL LETTER Z HACEK
+02C7 B7 B7 MODIFIER LETTER HACEK
+02D8 A2 A2 SPACING BREVE
+02D9 FF FF FF SPACING DOT ABOVE
+02DB B2 B2 SPACING OGONEK
+02DD BD SPACING DOUBLE ACUTE
+0371 A1 GREEK NON-SPACING DASIA PNEUMATA
+0372 A2 GREEK NON-SPACING PSILI PNEUMATA
+0386 B6 GREEK CAPITAL LETTER ALPHA TONOS
+0388 B8 GREEK CAPITAL LETTER EPSILON TONOS
+0389 B9 GREEK CAPITAL LETTER ETA TONOS
+038A BA GREEK CAPITAL LETTER IOTA TONOS
+038C BC GREEK CAPITAL LETTER OMICRON TONOS
+038E BE GREEK CAPITAL LETTER UPSILON TONOS
+038F BF GREEK CAPITAL LETTER OMEGA TONOS
+0390 C0 GREEK SMALL LETTER IOTA DIAERESIS TONOS
+0391 C1 GREEK CAPITAL LETTER ALPHA
+0392 C2 GREEK CAPITAL LETTER BETA
+0393 C3 GREEK CAPITAL LETTER GAMMA
+0394 C4 GREEK CAPITAL LETTER DELTA
+0395 C5 GREEK CAPITAL LETTER EPSILON
+0396 C6 GREEK CAPITAL LETTER ZETA
+0397 C7 GREEK CAPITAL LETTER ETA
+0398 C8 GREEK CAPITAL LETTER THETA
+0399 C9 GREEK CAPITAL LETTER IOTA
+039A CA GREEK CAPITAL LETTER KAPPA
+039B CB GREEK CAPITAL LETTER LAMBDA
+039C CC GREEK CAPITAL LETTER MU
+039D CD GREEK CAPITAL LETTER NU
+039E CE GREEK CAPITAL LETTER XI
+039F CF GREEK CAPITAL LETTER OMICRON
+03A0 D0 GREEK CAPITAL LETTER PI
+03A1 D1 GREEK CAPITAL LETTER RHO
+03A3 D3 GREEK CAPITAL LETTER SIGMA
+03A4 D4 GREEK CAPITAL LETTER TAU
+03A5 D5 GREEK CAPITAL LETTER UPSILON
+03A6 D6 GREEK CAPITAL LETTER PHI
+03A7 D7 GREEK CAPITAL LETTER CHI
+03A8 D8 GREEK CAPITAL LETTER PSI
+03A9 D9 GREEK CAPITAL LETTER OMEGA
+03AA DA GREEK CAPITAL LETTER IOTA DIAERESIS
+03AB DB GREEK CAPITAL LETTER UPSILON DIAERESIS
+03AC DC GREEK SMALL LETTER ALPHA TONOS
+03AD DD GREEK SMALL LETTER EPSILON TONOS
+03AE DE GREEK SMALL LETTER ETA TONOS
+03AF DF GREEK SMALL LETTER IOTA TONOS
+03B0 E0 GREEK SMALL LETTER UPSILON DIAERESIS TONOS
+03B1 E1 GREEK SMALL LETTER ALPHA
+03B2 E2 GREEK SMALL LETTER BETA
+03B3 E3 GREEK SMALL LETTER GAMMA
+03B4 E4 GREEK SMALL LETTER DELTA
+03B5 E5 GREEK SMALL LETTER EPSILON
+03B6 E6 GREEK SMALL LETTER ZETA
+03B7 E7 GREEK SMALL LETTER ETA
+03B8 E8 GREEK SMALL LETTER THETA
+03B9 E9 GREEK SMALL LETTER IOTA
+03BA EA GREEK SMALL LETTER KAPPA
+03BB EB GREEK SMALL LETTER LAMBDA
+03BC EC GREEK SMALL LETTER MU
+03BD ED GREEK SMALL LETTER NU
+03BE EE GREEK SMALL LETTER XI
+03BF EF GREEK SMALL LETTER OMICRON
+03C0 F0 GREEK SMALL LETTER PI
+03C1 F1 GREEK SMALL LETTER RHO
+03C2 F2 GREEK SMALL LETTER FINAL SIGMA
+03C3 F3 GREEK SMALL LETTER SIGMA
+03C4 F4 GREEK SMALL LETTER TAU
+03C5 F5 GREEK SMALL LETTER UPSILON
+03C6 F6 GREEK SMALL LETTER PHI
+03C7 F7 GREEK SMALL LETTER CHI
+03C8 F8 GREEK SMALL LETTER PSI
+03C9 F9 GREEK SMALL LETTER OMEGA
+03CA FA GREEK SMALL LETTER IOTA DIAERESIS
+03CB FB GREEK SMALL LETTER UPSILON DIAERESIS
+03CC FC GREEK SMALL LETTER OMICRON TONOS
+03CD FD GREEK SMALL LETTER UPSILON TONOS
+03CE FE GREEK SMALL LETTER OMEGA TONOS
+03F3 B4 GREEK SPACING TONOS
+03F4 B5 GREEK SPACING DIAERESIS TONOS
+0401 A1 CYRILLIC CAPITAL LETTER IO
+0402 A2 CYRILLIC CAPITAL LETTER DJE
+0403 A3 CYRILLIC CAPITAL LETTER GJE
+0404 A4 CYRILLIC CAPITAL LETTER E
+0405 A5 CYRILLIC CAPITAL LETTER DZE
+0406 A6 CYRILLIC CAPITAL LETTER I
+0407 A7 CYRILLIC CAPITAL LETTER YI
+0408 A8 CYRILLIC CAPITAL LETTER JE
+0409 A9 CYRILLIC CAPITAL LETTER LJE
+040A AA CYRILLIC CAPITAL LETTER NJE
+040B AB CYRILLIC CAPITAL LETTER TSHE
+040C AC CYRILLIC CAPITAL LETTER KJE
+040E AE CYRILLIC CAPITAL LETTER SHORT U
+040F AF CYRILLIC CAPITAL LETTER DZHE
+0410 B0 CYRILLIC CAPITAL LETTER A
+0411 B1 CYRILLIC CAPITAL LETTER BE
+0412 B2 CYRILLIC CAPITAL LETTER VE
+0413 B3 CYRILLIC CAPITAL LETTER GE
+0414 B4 CYRILLIC CAPITAL LETTER DE
+0415 B5 CYRILLIC CAPITAL LETTER IE
+0416 B6 CYRILLIC CAPITAL LETTER ZHE
+0417 B7 CYRILLIC CAPITAL LETTER ZE
+0418 B8 CYRILLIC CAPITAL LETTER II
+0419 B9 CYRILLIC CAPITAL LETTER SHORT II
+041A BA CYRILLIC CAPITAL LETTER KA
+041B BB CYRILLIC CAPITAL LETTER EL
+041C BC CYRILLIC CAPITAL LETTER EM
+041D BD CYRILLIC CAPITAL LETTER EN
+041E BE CYRILLIC CAPITAL LETTER O
+041F BF CYRILLIC CAPITAL LETTER PE
+0420 C0 CYRILLIC CAPITAL LETTER ER
+0421 C1 CYRILLIC CAPITAL LETTER ES
+0422 C2 CYRILLIC CAPITAL LETTER TE
+0423 C3 CYRILLIC CAPITAL LETTER U
+0424 C4 CYRILLIC CAPITAL LETTER EF
+0425 C5 CYRILLIC CAPITAL LETTER KHA
+0426 C6 CYRILLIC CAPITAL LETTER TSE
+0427 C7 CYRILLIC CAPITAL LETTER CHE
+0428 C8 CYRILLIC CAPITAL LETTER SHA
+0429 C9 CYRILLIC CAPITAL LETTER SHCHA
+042A CA CYRILLIC CAPITAL LETTER HARD SIGN
+042B CB CYRILLIC CAPITAL LETTER YERI
+042C CC CYRILLIC CAPITAL LETTER SOFT SIGN
+042D CD CYRILLIC CAPITAL LETTER REVERSED E
+042E CE CYRILLIC CAPITAL LETTER IU
+042F CF CYRILLIC CAPITAL LETTER IA
+0430 D0 CYRILLIC SMALL LETTER A
+0431 D1 CYRILLIC SMALL LETTER BE
+0432 D2 CYRILLIC SMALL LETTER VE
+0433 D3 CYRILLIC SMALL LETTER GE
+0434 D4 CYRILLIC SMALL LETTER DE
+0435 D5 CYRILLIC SMALL LETTER IE
+0436 D6 CYRILLIC SMALL LETTER ZHE
+0437 D7 CYRILLIC SMALL LETTER ZE
+0438 D8 CYRILLIC SMALL LETTER II
+0439 D9 CYRILLIC SMALL LETTER SHORT II
+043A DA CYRILLIC SMALL LETTER KA
+043B DB CYRILLIC SMALL LETTER EL
+043C DC CYRILLIC SMALL LETTER EM
+043D DD CYRILLIC SMALL LETTER EN
+043E DE CYRILLIC SMALL LETTER O
+043F DF CYRILLIC SMALL LETTER PE
+0440 E0 CYRILLIC SMALL LETTER ER
+0441 E1 CYRILLIC SMALL LETTER ES
+0442 E2 CYRILLIC SMALL LETTER TE
+0443 E3 CYRILLIC SMALL LETTER U
+0444 E4 CYRILLIC SMALL LETTER EF
+0445 E5 CYRILLIC SMALL LETTER KHA
+0446 E6 CYRILLIC SMALL LETTER TSE
+0447 E7 CYRILLIC SMALL LETTER CHE
+0448 E8 CYRILLIC SMALL LETTER SHA
+0449 E9 CYRILLIC SMALL LETTER SHCHA
+044A EA CYRILLIC SMALL LETTER HARD SIGN
+044B EB CYRILLIC SMALL LETTER YERI
+044C EC CYRILLIC SMALL LETTER SOFT SIGN
+044D ED CYRILLIC SMALL LETTER REVERSED E
+044E EE CYRILLIC SMALL LETTER IU
+044F EF CYRILLIC SMALL LETTER IA
+0451 F1 CYRILLIC SMALL LETTER IO
+0452 F2 CYRILLIC SMALL LETTER DJE
+0453 F3 CYRILLIC SMALL LETTER GJE
+0454 F4 CYRILLIC SMALL LETTER E
+0455 F5 CYRILLIC SMALL LETTER DZE
+0456 F6 CYRILLIC SMALL LETTER I
+0457 F7 CYRILLIC SMALL LETTER YI
+0458 F8 CYRILLIC SMALL LETTER JE
+0459 F9 CYRILLIC SMALL LETTER LJE
+045A FA CYRILLIC SMALL LETTER NJE
+045B FB CYRILLIC SMALL LETTER TSHE
+045C FC CYRILLIC SMALL LETTER KJE
+045E FE CYRILLIC SMALL LETTER SHORT U
+045F FF CYRILLIC SMALL LETTER DZHE
+05D0 E0 HEBREW LETTER ALEF
+05D1 E1 HEBREW LETTER BET
+05D2 E2 HEBREW LETTER GIMEL
+05D3 E3 HEBREW LETTER DALET
+05D4 E4 HEBREW LETTER HE
+05D5 E5 HEBREW LETTER VAV
+05D6 E6 HEBREW LETTER ZAYIN
+05D7 E7 HEBREW LETTER HET
+05D8 E8 HEBREW LETTER TET
+05D9 E9 HEBREW LETTER YOD
+05DA EA HEBREW LETTER FINAL KAF
+05DB EB HEBREW LETTER KAF
+05DC EC HEBREW LETTER LAMED
+05DD ED HEBREW LETTER FINAL MEM
+05DE EE HEBREW LETTER MEM
+05DF EF HEBREW LETTER FINAL NUN
+05E0 F0 HEBREW LETTER NUN
+05E1 F1 HEBREW LETTER SAMEKH
+05E2 F2 HEBREW LETTER AYIN
+05E3 F3 HEBREW LETTER FINAL PE
+05E4 F4 HEBREW LETTER PE
+05E5 F5 HEBREW LETTER FINAL TSADI
+05E6 F6 HEBREW LETTER TSADI
+05E7 F7 HEBREW LETTER QOF
+05E8 F8 HEBREW LETTER RESH
+05E9 F9 HEBREW LETTER SHIN
+05EA FA HEBREW LETTER TAV
+060C AC ARABIC COMMA
+061B BB ARABIC SEMICOLON
+061F BF ARABIC QUESTION MARK
+0621 C1 ARABIC LETTER HAMZAH
+0622 C2 ARABIC LETTER MADDAH ON ALEF
+0623 C3 ARABIC LETTER HAMZAH ON ALEF
+0624 C4 ARABIC LETTER HAMZAH ON WAW
+0625 C5 ARABIC LETTER HAMZAH UNDER ALEF
+0626 C6 ARABIC LETTER HAMZAH ON YA
+0627 C7 ARABIC LETTER ALEF
+0628 C8 ARABIC LETTER BAA
+0629 C9 ARABIC LETTER TAA MARBUTAH
+062A CA ARABIC LETTER TAA
+062B CB ARABIC LETTER THAA
+062C CC ARABIC LETTER JEEM
+062D CD ARABIC LETTER HAA
+062E CE ARABIC LETTER KHAA
+062F CF ARABIC LETTER DAL
+0630 D0 ARABIC LETTER THAL
+0631 D1 ARABIC LETTER RA
+0632 D2 ARABIC LETTER ZAIN
+0633 D3 ARABIC LETTER SEEN
+0634 D4 ARABIC LETTER SHEEN
+0635 D5 ARABIC LETTER SAD
+0636 D6 ARABIC LETTER DAD
+0637 D7 ARABIC LETTER TAH
+0638 D8 ARABIC LETTER DHAH
+0639 D9 ARABIC LETTER AIN
+063A DA ARABIC LETTER GHAIN
+0640 E0 ARABIC TATWEEL
+0641 E1 ARABIC LETTER FA
+0642 E2 ARABIC LETTER QAF
+0643 E3 ARABIC LETTER CAF
+0644 E4 ARABIC LETTER LAM
+0645 E5 ARABIC LETTER MEEM
+0646 E6 ARABIC LETTER NOON
+0647 E7 ARABIC LETTER HA
+0648 E8 ARABIC LETTER WAW
+0649 E9 ARABIC LETTER ALEF MAQSURAH
+064A EA ARABIC LETTER YA
+064B EB ARABIC FATHATAN
+064C EC ARABIC DAMMATAN
+064D ED ARABIC KASRATAN
+064E EE ARABIC FATHAH
+064F EF ARABIC DAMMAH
+0650 F0 ARABIC KASRAH
+0651 F1 ARABIC SHADDAH
+0652 F2 ARABIC SUKUN
+0660 30 ARABIC-INDIC DIGIT ZERO
+0661 31 ARABIC-INDIC DIGIT ONE
+0662 32 ARABIC-INDIC DIGIT TWO
+0663 33 ARABIC-INDIC DIGIT THREE
+0664 34 ARABIC-INDIC DIGIT FOUR
+0665 35 ARABIC-INDIC DIGIT FIVE
+0666 36 ARABIC-INDIC DIGIT SIX
+0667 37 ARABIC-INDIC DIGIT SEVEN
+0668 38 ARABIC-INDIC DIGIT EIGHT
+0669 39 ARABIC-INDIC DIGIT NINE
+2015 AF QUOTATION DASH
+2017 DF SPACING DOUBLE UNDERSCORE
+203E AF SPACING OVERSCORE
+2116 F0 NUMERO
+
+
diff --git a/src/cmd/tcs/ex2.utf b/src/cmd/tcs/ex2.utf
new file mode 100644
index 00000000..99d3e89c
--- /dev/null
+++ b/src/cmd/tcs/ex2.utf
@@ -0,0 +1,192 @@
+From dmr Thu Jan 30 17:00:03 EST 1992
+誠に申し訳ありませんが、MH front end はあと1週間だけ待って下さい。
+新しい xterm のために vtwin の変更が必要となって、それにちょっと
+手間取ってしまいました。まだもう1つ直したい bug があるのですが
+もう今日は時間がありません。
+拝啓 新緑の候、ますますご清祥のこととお喜び申し上げます。
+さて、斎藤信男先生は4月1日をもちまして、慶応義塾大学理工学部教
+授に御昇任なられました。そこで、日頃斎藤先生にお世話になっている
+私達が斎藤先生に お祝いを申し上げるためのささやかな 祝宴を企画致
+しました。当日は 斎藤研究室 OB/OG の方々、斎藤研究室現役の学生、
+また、斎藤先生ゆかりの方々が集まり、斎藤先生を囲んで楽しいひとと
+きを過ごしたいと考えております。ご家族、御友人おさそいあわせのう
+え御列席下さるようお願い申し上げます。
+おそれいりますが、ご出席の確認を下記連絡先に電話または電子メール
+にてご連絡下さるようお願い申し上げます。
+ 敬具
+ 「斎藤信男教授を囲む会」
+日時: 昭和62年4月24日(金) 18:00 より
+場所: 新橋第一ホテル「レストランクラレット」
+ 電話;  03-501-4411
+会費: 1万5千円 (当日記念品代1口5千円を別に御用意下さい。)
+ ただし、学生料金は別途設定してありますので御安心!
+連絡先:中村 修 osamu@keio.junet
+ 電話 044-63-9137 (斎藤研究室直通)
+ 電話 03-704-4715 (中村自宅)
+ 幹事代表 村井 純、 中村 修
+拝啓 新緑の候、ますますご清祥のこととお喜び申し上げます。
+さて、斎藤信男先生は4月1日をもちまして、慶応義塾大学理工学部教
+授に御昇任なられました。そこで、日頃斎藤先生にお世話になっている
+私達が斎藤先生に お祝いを申し上げるためのささやかな 祝宴を企画致
+しました。当日は 斎藤研究室 OB/OG の方々、斎藤研究室現役の学生、
+また、斎藤先生ゆかりの方々が集まり、斎藤先生を囲んで楽しいひとと
+きを過ごしたいと考えております。ご家族、御友人おさそいあわせのう
+え御列席下さるようお願い申し上げます。
+おそれいりますが、ご出席の確認を下記連絡先に電話または電子メール
+にてご連絡下さるようお願い申し上げます。
+ 敬具
+ 「斎藤信男教授を囲む会」
+日時: 昭和62年4月24日(金) 18:00 より
+場所: 新橋第一ホテル「レストランクラレット」
+ 電話;  03-501-4411
+会費: 1万5千円 (当日記念品代1口5千円を別に御用意下さい。)
+ ただし、学生料金は別途設定してありますので御安心!
+連絡先:中村 修 osamu@keio.junet
+ 電話 044-63-9137 (斎藤研究室直通)
+ 電話 03-704-4715 (中村自宅)
+ 幹事代表 村井 純、 中村 修
+JUS幹事の皆様:
+4月10日の幹事会でお話した、次のような講演についての件ですが、
+ 発内容:Macintosh IIへのUNIXの移植
+ 発 者:米国UniSoftのエンジニア
+ 発時間:1時間(幹事会において決まった時間です)
+ 発当人からABSTRACTが届きました。このような内容での話でよけれ
+ば、来日するがどうだろう?との問い合わせがあったのですが、皆様いかがでしょうか?
+皆様の御意見を伺ったうえで、本当に来てもらうかどうか当人に連絡したいと思います。
+(交通費、宿泊費などはJUSから出す必要はありません)
+御返答、よろしくお願いいたします。
+ DCL 坂本 文
+JUS幹事の皆様:
+4月10日の幹事会でお話した、次のような講演についての件ですが、
+ 発内容:Macintosh IIへのUNIXの移植
+ 発 者:米国UniSoftのエンジニア
+ 発時間:1時間(幹事会において決まった時間です)
+ 発当人からABSTRACTが届きました。このような内容での話でよけれ
+ば、来日するがどうだろう?との問い合わせがあったのですが、皆様いかがでしょうか?
+皆様の御意見を伺ったうえで、本当に来てもらうかどうか当人に連絡したいと思います。
+(交通費、宿泊費などはJUSから出す必要はありません)
+御返答、よろしくお願いいたします。
+ DCL 坂本 文
+ 次回のjus幹事会は下記の場所で行います。
+日時 5/8(金)午後6時
+場所 (株)アスキ―、FFFビル、7F役員会議室
+地図
+ 至赤坂
+国道246号(青山通り)
+ | |*(地下鉄表参道B3出口)
+ | | (ラ―メン屋)
+紀ノ国屋| |出光GS 天下一
+ | | 住 大 F*
+ | | 友 仁 F
+ | | 南 堂 F
+ 至渋谷 青 ビ ビ
+ 山 ル ル
+ ビ
+ ル
+(1)地下鉄表参道駅下車、B3の出口を出る。
+(2)青山通りを渋谷方面へ歩く
+(3)初めての信号(角が出光GS)を右へ曲る
+(4)約500M歩き(信号4つ目)、T字路の交差点の右側
+(5)FFFビルの7F
+PS.当日14:40着の便で成田に帰って来ますので、少し遅れるかもしれません
+ が先に始めて下さい。
+ この間の集りでマーク・シートの読み取りのsoftの話題があったと思うので
+すが,「インタフェース5月号」の新製品紹介の欄で,ANK character の読み取りの
+softの紹介があったように思います。
+ ただ,その雑誌がいま,手元にないので詳しくはわかりませんが,調べてみ
+ます。
+一部の人は知っていると思いますが,現在 rmap のPD化を進めています.
+余分な機能をそぎ落し,一通り動くようになりました.あと,2,3
+新たな機能を追加する予定ですが,問題はその前提となる rwhod にあります.
+御存知のように rwhod はつながるマシンの数が増えると,急激に network 及び
+CPU を食いはじめます.また,routing の機能がないため複数のネットワークが
+接続されているような環境ではやはり問題です.東工大ではいままで,gateway
+となるマシンの rwhod に手をいれて routing をするようにしていましたが,
+その場しのぎのいい加減なやり方だったので,4月にネットワークの接続形態が
+変って以来,2重に packet を流していたことが判明しました.昨日急いで
+直しましたが,それまでネットワークは collision の嵐だった訳です.
+たかだか30台のネットワークでこの有様ですから,何百,何千という
+本格的ネットワークを考えると単純に routing を行う今の方法は非現実的です.
+そこで,いくつかのアイディアを加藤君と考えました.
+1. broadcast packet は止めて,NFSを利用し /usr/spool/rwho をできる限り
+ 共有する.どうしても必要なところは point-to-point で routing を行う.
+2. routing する場合に独自のプロトコルにより複数のホストの情報を
+ 1 packet で送る.
+3. on demand で必要な時だけ他のマシンに対し情報を要求する.
+ トリガーは,例えば誰かが rmap でそのマシンを含むページを表示しようと
+ した時とする.
+4. どうせ,そういう情報が必要なのは phone をかけたい時ぐらいだから,
+ むしろ,phone を改造して phoned が broadcasting や routing をしながら,
+ 特定のユーザがどこにいるか探し回るようにする.
+さて,そこで皆さんの意見を聞きたいと思います.どうするのが一番良いでしょうか.
+今考えているのは,1, 2 の機能を持った public domain rwhod を作るといった
+ところですが,果してそんなことをするのは意味があるのか.4を実現すれば事実上
+rmap はいらなくなるんじゃないのか.有益な議論をお待ちしています.
+私は前の mail で次ぎのようなことを書きました.
+> 御存知のように rwhod はつながるマシンの数が増えると,急激に network 及び
+> CPU を食いはじめます.また,routing の機能がないため複数のネットワークが
+> 接続されているような環境ではやはり問題です.東工大ではいままで,gateway
+> となるマシンの rwhod に手をいれて routing をするようにしていましたが,
+> ....,何百,何千という
+> 本格的ネットワークを考えると単純に routing を行う今の方法は非現実的です.
+> そこで,いくつかのアイディアを加藤君と考えました.
+> 1. broadcast packet は止めて,NFSを利用し /usr/spool/rwho をできる限り
+>  共有する.どうしても必要なところは point-to-point で routing を行う.
+> 2. routing する場合に独自のプロトコルにより複数のホストの情報を
+> 1 packet で送る.
+> 今考えているのは,1, 2 の機能を持った public domain rwhod を作るといった
+> ところですが,果してそんなことをするのは意味があるのか....
+今考えていることを,もう少し具体的に説明すると,
+既存の rwhod は自分のマシンの network configuration を見て
+自分の属するサブネットワークにはすべて broadcasting で,
+point-to-point のリンクにはその相手先に対し,自分のマシンの情報のみを
+流しまています.
+私が手を入れた rwhod はそれらに加えて,他のマシンから来た
+情報を自分の spool に書き込むと同時に,リストとして貯め込んでおき,
+自分の情報を流す時に同時に,個々のマシンの属するネットワーク以外の
+すべてのリンクにその情報をリレーするというものです.
+しかし,この方法だといくら broadcast packet を使ったところで,
+論理的にはネットワーク全体が完全グラフをなすように packet を
+流すことになりますし,しかも普段はそういう情報を必要としない
+場合が多い訳ですから,明らかに供給過剰です.で,これを少しでも
+軽減することができれば,と考えている訳です.
+新しい rwhod は,様々なネットワーク上の制約を盛り込めるように,
+例えば /etc/rwhod.rc のようなファイルからリレーのための configuration
+を読み込むようにするといいでしょう.そのファイルの中に書かれるべき
+項目としては,次ぎのようなものが考えられます.
+1. 自分のマシンの情報をどのマシン,またはどのネットワークに対して
+  送信するか.また,それをローカルファイルに格納するか否か.
+2. 他のマシンの情報をどのマシン,またはどのネットワークに対して
+  リレーするか.それは packet として受信されるべきものなのか,
+  NFSによってそのマシンの rwhod が書き込んだファイルを
+  読みにいくのか.前者の場合には,さらにその情報をローカル
+  ファイルに格納するか否か.
+3. 1, 2 は何秒間隔で行うのか.
+これらに加え,さらに通常は packet を流さずに必要な時だけ,
+rwhod が他のマシンに対し情報を要求するという機能を付け加えるのも
+いいかもしれません.このためには,/etc/rwhod.rc の中に
+4. あるマシンの情報に対する要求があった時にどのマシンに
+  対して問い合わせを行うか.
+という項目を付け加えるべきでしょう.1,2,4 は実際には統一した
+フォーマットで記述するのがいいかもしれません.
+もし,こういう on demand 型のサービスを取り入れると当然 rwho, ruptime, rmap
+といった client 側にも変更が必要になります.恐らくあるマシンの情報を得るには,
+といったようなライブラリ関数を用意することになるでしょう.
+この関数は自分のマシンの rwhod に対してそういう request を
+行い response を受け取るという単純なものにするのがいいと
+思います.一方その request を受け取った rwhod はスプールを
+見てそれが充分新しいものであれば,そこから読み取り,そうでなければ
+rwhod.rc に書かれたマシンに対し問い合わせることになるでしょう.
+いや,もうそこまでするのだったら,いっそスプールは全廃して
+rwhod が on core で情報を管理した方がいいかもしれません.
+というようなところが今まで考えたところですが,そこでこの前にも書いた
+疑問に戻ります.果してこんなことをする意味があるのだろうか?
+phone を hack すれば,それで問題は解決するのではないか?
+何か意見を言ってください.お願いします.
+私はこれを今度の meeting で議論してもらいたいとは思っていません.
+あくまで mail で意見を聞かせて下さい.そうすることで,
+議論がたまたま meeting に出席した人の中だけでの閉じたもので
+終るということがなくなると思いますから.
+ところでこの mailing list はいつまで東工大で管理されているのですか.
+u-tokyo に移した方がいいのではないのですか?
+
diff --git a/src/cmd/tcs/ex3.utf b/src/cmd/tcs/ex3.utf
new file mode 100644
index 00000000..75881753
--- /dev/null
+++ b/src/cmd/tcs/ex3.utf
@@ -0,0 +1,15 @@
+Привет.
+
+Так лучше? :-) Что касается Rob Pike, я просто не хочу его
+беспокоить, но он может быть уверен, что еще услышит от меня
+ругательства на Plan 9 - когда я прочту статьи :-) :-) :-)
+
+Кстати, я мог бы прислать русскую версию nroff (руки не дошли
+сделать troff с кириллицей). Что касается awk, то для меня до сих
+пор остается загадкой почему никто не сделал нормальную трассировку
+(tracing) в awk - это сделало бы отладку (debugging) в сто раз
+проще.
+
+Ну ладно, всем привет.
+
+Вадим
diff --git a/src/cmd/tcs/ex4.utf b/src/cmd/tcs/ex4.utf
new file mode 100644
index 00000000..ac57f033
--- /dev/null
+++ b/src/cmd/tcs/ex4.utf
@@ -0,0 +1,109 @@
+
+2-ая КОНФЕРЕНЦИЯ SUUG
+
+ С 23 по 28 сентября 1991 года в городе Владимире Совет-
+ская ассоциация пользователей операционной системы UNIX
+(SUUG) проводит 2-ую ежегодную конференцию. На конференции
+предполагается рассмотреть текущее состояние ОС UNIX и перспективные
+направления ее развития как в СССР, так и за рубежом, воп-
+росы разработки прикладного программного обеспечения в среде
+UNIX. На конференцию приглашены ряд ведущих специалистов из
+Европейской ассоциации пользователей UNIX (EurOpen) и ассоци-
+ации usenix (США).
+ В рамках конференции будет проведено общее собрание
+Советской ассоциации пользователей UNIX.
+
+УЧАСТИЕ В КОНФЕРЕНЦИИ
+
+ Участие в конференции возможно в качестве докладчиков и
+слушателей. Кроме того, в ходе конференции будут проведены
+панельные дискуссии по наиболее интересным темам. Предус-
+мотрены условия для продуктивного общения специалистов.
+Тезисы всех принятых на конференцию докладов к ее началу
+будут опубликованы.
+ Участники конференции могут провести демонстрацию на
+ЭВМ своих разработок, приниматся заявки на рекламу.
+ Конференция будет проводиться в гостинице "Клязьма" г.
+Владимира. Предполагаемое количество участников 120 чело-
+век. Регистрационный взнос - 400 руб., для членов SUUG -
+350 руб. с человека. В регистрационный взнос входят все
+орграсходы, плата за проживание в гостинице и трехразовое
+питание в ресторане при гостинице.
+ Для участия в конференции необходимо до 15 мая 1991 г.
+выслать по адресу организационного комитета заявку по прила-
+гаемому образцу, для докладчиков - тезисы докладов объемом
+до 2 страниц в виде, пригодном для копирования. Программный
+комитет предполагает наиболее интересные доклады опублико-
+вать целиком. Заявки и тезисы докладов можно также присылать
+электронной почтой.
+ В случае нескольких авторов доклада, приглашен может
+быть, как правило, только один. Подтверждение Вашего учас-
+тия будет выслано до 1 сентября 1991 г.
+
+ОРГАНИЗАЦИОННЫЙ КОМИТЕТ
+
+ Г.П.Остапенко
+ Э.Мухутдинова
+ ИНЭУМ, Москва, ГСП-1, Вавилова, 24,
+ Советская ассоциация пользователей ОС UNIX (SUUG)
+ тел: (095) 939-00-14, 939-00-49
+
+ПРОГРАММНЫЙ КОМИТЕТ
+
+ П.Л.Брусиловский
+ МЦНТИ, 125252 Москва ул.Куусинена 21б.
+ тел: (095) 198-70-55
+ e-mail: <plb@plb.icsti.su>
+
+ А.Л.Фридман
+ ИПИАН, 177900 Москва ул. Вавилова 30/6.
+ тел: (095) 930-05-16
+ e-mail: <af@alf.public.su>
+
+
+ Дальнейшие мероприятия SUUG: семинар по прикладным сис-
+темам в среде UNIX (декабрь, Москва, МЦНТИ); UNIX-шоу - выс-
+тавка аппаратуры и программных средств, представления фирм
+(октябрь-ноябрь, Москва). Дополнительная информация будет
+выслана в ближайшее время.
+
+
+
+
+ З А Я В К А
+ на участие во 2-ой конференции
+
+ Я хотел бы принять участие во 2-ой ежегодной конферен-
+ции SUUG в качестве: докладчика / слушателя / участника дис-
+скусии.
+Фамилия, имя, отчество, ученое звание:
+..........................................................
+..........................................................
+Место работы:
+..........................................................
+..........................................................
+Должность:
+..........................................................
+Название доклада:
+..........................................................
+..........................................................
+Тема дискуссии:
+..........................................................
+..........................................................
+Почтовый адрес:
+..........................................................
+Телефон:...................E-mail..........................
+Членство в SUUG: организация-член SUUG
+ индивидуальный член
+ прошу выслать материалы о вступлении
+ нет
+Основная сфера деятельности моей организации:
+..........................................................
+Мои основные интересы лежат в области:
+..........................................................
+
+Хотите ли Вы продемонстрировать свои разработки? да/нет
+Необходимая техника.......................................
+..........................................................
+
+
diff --git a/src/cmd/tcs/ex5.utf b/src/cmd/tcs/ex5.utf
new file mode 100644
index 00000000..b4baca0b
--- /dev/null
+++ b/src/cmd/tcs/ex5.utf
@@ -0,0 +1,50 @@
+.tr -\(hy
+.TL
+Hello World
+.br
+or
+.br
+Καλημέρα κόσμε
+.br
+or
+.br
+こんにちは 世界
+.AU
+Rob Pike
+Ken Thompson
+.AI
+.MH
+.AB
+Plan 9 from Bell Labs has recently been converted from ASCII
+to an ASCII-compatible variant of Unicode, a 16-bit character set.
+In this paper we explain the reasons for the change,
+describe the character set and representation we chose,
+and present the programming models and software changes
+that support the new text format.
+Although we stopped short of full internationalization\(emfor
+example, system error messages are in Unixese, not Japanese\(emwe
+believe Plan 9 is the first system to treat the representation
+of all major languages on a uniform, equal footing throughout all its
+software.
+.AE
+.SH
+Introduction
+.PP
+The world is multilingual but most computer systems
+are based on English and ASCII or worse.
+The pending release of Plan 9 [Pike90], a new distributed operating
+system from Bell Laboratories, seemed a good occasion
+to correct this chauvinism.
+It is easier to make such deep changes when building new systems than
+by retrofitting old ones.
+.PP
+The ANSI C standard [ANSIC] contains some guidance on the matter of
+`wide' and `multi-byte' characters but falls far short of
+solving the myriad associated problems.
+We could find no literature on how to convert a
+.I system
+to larger character sets, although some individual
+.I programs
+have been converted.
+This paper reports what we discovered as we
+explored the problem of representing multilingual
diff --git a/src/cmd/tcs/ex6.utf b/src/cmd/tcs/ex6.utf
new file mode 100644
index 00000000..ab4a98f8
--- /dev/null
+++ b/src/cmd/tcs/ex6.utf
@@ -0,0 +1,145 @@
+簫肓ο汗板正ω
+﹁﹁牴喃亭樅苔待于廷把閏 ☐淚誓毗
+
+ 半搽碌士外征w莽尹夔花,╔簫肓╝巨城Γㄤ外Εο閏籀征絆祖傳沼.Ρ�
+拖子稀征ㄓ世ΞΡ芋˙ㄓ丙閏,科志戊闕算褕蜥Ε希夔缺征腎坏ㄒ斐,先散咒工
+猜碌Γw紫╔久迴證決Ε切新掖闕欣征冶肓╝.半Ε希叱副ˎ搽諭ˎ舨窪汗菅Υ
+油刨戊水件亭揭Υ征醜夔,ㄒ縫郭堝Ε希夔缺征喃巳決唉才腎彪,脈戊丕w斥淑
+孓Υ╔球擱╝ㄖ販凹 .
+
+ 先齊釗ㄓ舨缶菅征Εν�命,Ε希夔缺科志征嘰保ㄤ芋閏籀征籀鮭,叼社弟
+呶邃謙; 硿苔楮ˎ扒錘荐Η亭宗汗; 楹橘五決盔汎仙�吏槳丫製咄決于廷揖,產
+ㄈ都Υ籀希�揩,先半╔簫肓╝征ο河都Σ,刨戊共丫水件惕缺.
+
+ z芋ΕοΡ斥閏籀β保半牽皇荐槳Σ子稀.佐鬆征亭迆ㄆ共莊夷ㄈ專間禪取
+╔惋半丙舨亭宗簫肓ˎ搽諭簫肓ˎ念閏簫肓╝,亮╔城臣舨亭宗搽諭決念閏簫肓
+征痣w伯簫肓惱虹申衝神╝,枝巨Γㄆ共莊夷征乃鮭.
+
+ 半搽諭亭揭ㄓ,ㄣ尋季及ΘΘ外Σ刃外嘰肓征宗您賬腰亭揭,尺征保莊夷ㄓ
+例滿╔城Γ唔砠河訪外搽諭碌儀橢宵Σ志征ㄒ簫肓包挫╝.申亭宗偎侵�炳,砠
+Γ都丫ㄒ苟淚戊Ε丕漳球缺腕決弋皇茫門征亭宗Θ戾才,濟都丫絲弟窮決鴛含新
+掖,唔砠慘參,偯交詖亭揖,牽皇半˙ㄓ丙閏花ㄈˊ刖征冶肓,誹唔郁莊睥保ㄓ
+世甲認抓尺河凶炳嚀舨窪寺詫決舨ㄩ佗炬寺雜征闕濮借扯,仆絲烏叩由瓜皂人妨
+丫寺詫.
+
+ 旦才,城匠牽斥閏籀╔丫腕ρ╝,半閏籀子稀色士外切睬麥窗惱缺簣凹睬缺
+歪伶子稀Εο躬牠嶇芣閏籀征既頹窄祉砠丫Εο,人�色鋒石抓製莽做圾褒友征
+敖諂瓷瓷昆澹取訛滌丫亭更,產保╔Σ祠祁╝,繭夷Εο刁拗決亭更牠缸ㄒ邕惕
+缺.w冬陰坏征牴喃亭更牠缸迪弋切,工桌刷芾惱坏杉抓洎抆,斕尋牽序產保呸
+郝協簫肓征ο科沼.
+
+
+
+闕濮濟歪待ㄓ世算褕蜥
+
+ 牽壽祖臥歪伶簫肓征拗惋,ㄒ終保˙弋花亭競郾郾婪蒞征滄區偎侵.先牴喃
+ο褒庇咸怒吱ㄓ�怒吱缸盔�磴漬城,ㄓ世亭競戊胸鮭,岔枋工包˙弋,申士外
+咄際粱夔裯麴何ο.几阿丫,ㄓ世都丫╔簫肓縛畋w�╝保半士外ΞΔ�咄際粱
+夔ㄖ窪,例人牽唧�算褕蜥甲認念閏乃敬半ㄓ舨征惱虹胸鮭.盔�磴滿: ╔几疫
+戊腆冬漬城,念閏乃敬半咄際丐參Γ,惋半工戊窮ㄓ舨.╝申惋借舨紙砝征搽諭
+怒吱含敖沼w涪迴槳ㄓ舨歪惱虹珞志,仆絲歪戊昆麥征亭宗念閏簫肓醒詫.
+
+ 盔�磴漬城佐鬆征ㄆ共莊夷保貊夕越洮βㄒ汎唳芣痣,扼灌拗惋半搽諭�炳
+,枝保城伶簫肓ο汗申鏃姘戟麥吊島.盔�磴滿: ╔牽保w父板只ˎ越洮征莊夷
+,仙借�俑Γ算褕蜥賂石ㄇ征簫肓決叱丙刨戊去ο杳�.╝
+
+ 半牽壽河都Σ,ㄓ舨算褕蜥半亭宗Υ岔刨戊水件鈕征興夔偎侵,工保季及久
+迴詖亭ˎ專砠慘參決鴛織新掖揖由�姍,豳人洮臾證半Ε切�尺ㄓ征祁杳.例人
+,˙ㄓ丙閏都丫Γ歪久迴證新鴛織,訶瓷歪常Η荐蜥,久迴姍抆摺證ㄩ嘟媼; 申
+亭迆莊夷β迴槳久迴詖亭,專砠慘參,外拖ㄈ稀甸ˊ刖w含丘削樺涿永ο修,睫
+祖w蜥征戊紜鯛睥瓷昆淑炬謙,人�杭唉弈凰昌修科弈昆瘩交亭氫�揖,產半Ε
+ο閏籀子稀河漳球Γ鴨菅.
+
+ 牽序偎侵產ㄒ保鈕瞭希帖.士外z�迅亭宗汗β猜碌Γ歪秘╔z氏希╝,先
+巨俸叼件力Ε檮嘔; 例人借希湃樅缸鞋ρ窈枝滿: ╔ㄓ世戊序希保ㄒ貴秘征,叼
+切乃ˎ劻競; 戊征保貴秘申秘ㄒ抓征,迤亞枝階城戊洎,絆去保槳賬wΣ忠覲�
+ρ征嚇昌.╝亮賂Υ津亭宗偎侵桌囝簫肓Ε�,几漬城共及戊洎.
+
+ 盔�磴漬城,ㄓ世半ㄒ陰劻競Σ,β貴ㄒ丫ㄟ緊鈕�姍,牽序偎侵賂煤冶亭
+宗寺汗岔ㄒ妞茲,先╔戊餡�刨戊叩╝.几滿: ╔Ξ外佗炬ㄓ,ㄓ舨世悵證征絆
+ο歙漢,保巨Γw皇ㄒ炬沖征證,w皇位歷征證.╝例人牽序初訛ㄓ世簑址腎敖
+征偎侵昆熒志滿濟保戊及征.
+
+ ㄒ碌,把伊樅怫漬城,Υ津偎侵甸斜工保熔各共及,桌囝簫肓亭競征闕濮濟
+半協搽諭,工歪搽諭叩,戟麥ㄩ念閏枝ㄒ閏丫惋ㄟ緊胸鮭.保人佐鬆征亭迆ㄆ共
+莊夷ㄓβ滿: ╔亭宗簫肓決念閏簫肓保河都,搽諭簫肓保荐薯,翳俾抓迅,仆絲
+粥ㄓ寨Μ色舨切搽諭辜Υ士.╝申˙ㄓ丙閏征ˊ刖,β迴槳╔色舨切搽諭辜Υ士
+,臣疫術桌心協ㄒ參ㄖ仟.╝
+
+
+
+亭宗偎侵俸及戊洎
+
+ 牽斥Εο閏籀ㄣ尋迴槳宗您賬腰亭揭.例擋宗您賬腰,保眨賂碌儀搽諭痣交
+征嶇頭決槳賬散鉍偎侵.也隹停抆念閏餡端伶ˎ茫門嶇征杳猴ˎ縛頭w栘久ㄆㄆ
+閑決閨草瓢例,色鈕蓄瑙昌決友悵Μ槳劻戟晉瓷昂決專您ˊ尢揖揖.牽紫亭揭半
+ΘΘ外胎�于蕨委閏籀ㄓ函呢(樅怫擋滲斯筆半照斥閏籀ㄓ淑話競),眨賂滲斯筆
+逞亭麥窗征久聿稀劻亭揭褕星搽諭碌儀,杳猴ο蓄,帖綵銅髡ˎ鄉檄ˎ蕭都ㄖ炤
+弋珞申段肓示ㄤ.
+
+ 佐鬆亭迆ㄆ共莊夷決殆牠乃水硿苔楮征搽諭莊夷,產迴槳璨尋宗您賬腰戊w
+肓巨俸,先念閏端伶ㄣ尋檻ο,悵閑散鉍槳賬德遊,搽諭俸島負揖胸鮭ㄣ兮煤冶
+,亮宗您賬腰ㄣ城尺Σ例端.先仙借,天協井莽屑爽決石士外Β�人志ㄆ閑友悵
+╔傲沆╝,猖鏘˙皇�列蓄昆宦示氟蓄昆,亮塘汗�Π冶肓劻嚕瘓俾,蓄久杳猴.
+
+ 賂Υ津征搽諭亭揭,盔�磴漬城餡征�冬保賂征,�找保縛頭猜椅�炳筵巨
+么,帖綵簫肓Σ志,狐井ㄓ列布Η怫友哄睫城簫肓.睪伺�炳,搽諭亭揭ㄓ牯歪
+ㄖ紙Α惱虹睪閑,都祖睪紜悵泠征布檄綵決簫肓睪閑友悵瑙倖征綵剜決忘興,牽
+產彷睪切友哄睫城簫肓.
+
+ 旦才,半宗您賬腰碌揩ㄓ崗別楊花征痠鍚爻閑(士外畋痊ΓΡ瓜愈苔),友悵
+ο洪淑洽拎匆睪伺,盔�磴漬城璨尋閏戊Εㄒ飽,先睪伺夕人來杉牽檻ο征友悵
+Μ,璨尋ㄒ閏╔惱睢╝,先戊荐六板稱,篌ㄒ朮; 亮砠枋戊石尋吧苜,囝沼念閏
+ㄒ閏戊ο缺錢,申寨戍怫拎匆睪閑友悵俸恿β閏都祖.
+
+ ㄒ碌,賂痠鍚爻閑ο皓畋痊球巨征念閏俸咒,員閏褒砝搽諭含紜擦赳瘦順控
+枝ㄒ叼旦閥騾,几漬城色丐閑ο洪滌抓睪伺,保色念閏仗輝睪伺�,申ΒΞ外刁
+衹丫惋術閑祖計麥,睪伺絀Μ難難婪缺,彼咳ㄣ保餌比征胸鮭.
+
+ 示協劻嚕杳猴,樅怫血湃宦去.盔�磴枝漬城,牽保歪伶戟麥ㄩ征亭宗簫肓
+,ㄋ肄Γ昆麥征搽諭惱虹亭揭,包城蓄久猴啼力ㄒ掬出唔焜散鉍,興照杉抓崗別
+征痠鍚爻閑枸巡喘翌,友悵駐縛征淬泠,ㄒ鋒尊各搽諭俸島都祖,β尊各槳賬悵
+閑散競,何洮歪征,保閏球巨猜椅丕臥丫惋.
+
+ 希資Υ,ㄆ閑傲沆決井莽屑爽岔枋包嶇頭亭揭申褕星 (ΘΒ外淬啼�搽諭碌
+儀征ΘΘ外濟歪蓄久瓜�ㄖΞz),申保唧�悵泠散鉍摺唔焜散鉍ㄒ掬,先ㄆ共莊
+夷ㄓ油兮戊都丫佗晾散鉍征扼灌偎侵,保宗鉼ㄒ宗六征秘姍.佐鬆半Ρ�父舨紙
+砝丙灌閏籀Υㄈ都丫半Υ刃外征戟麥窗仆絲艮醜列蓄昆征汗炳,牽斕尋保歪╔叩
+叩棡棡╝征亭宗甲認包挫芒去.
+
+
+
+搽諭亭揭夕彆門戟麥簫肓
+
+ 牽壽亭宗裯麴搽諭惱虹征陛妳筵力Ε賦誤,鞋ρ窈枝漬城,色搽諭亭揭亭宗
+�保去外志兮戊煤冶征胸鮭.賂搽諭亭揭征ㄒ仙賁圾,ㄒ桌及切乃決恢褒征冶揭
+碌揩煤冶,申保ㄛ彥到巡,宦示及Γ半亭宗Υ仍畋賂�征秘姍,球巨碌士訪外溧
+搽諭亭揭��蹈蹈,去斥歙丐址輝.
+
+ 几漬城,偯缺佗炬決嫡您搽諭絲ㄛ彥眩出,先碌邦ㄒ仙痺彈征Εㄛ彥唔朕賂
+�征寨Μ,抓Γㄤ�,璨尋興照保都丫佗炬征借枇,先ㄈ刨戊Ε儀�痣交佗炬,
+樂泣璣樂枝半亭宗Υ戊胸鮭.例人,歪佗夔牽皇陛妳,濟保歪亭宗灌抆Υ佗炬.
+
+ 旦才,鞋ρ窈璨尋β蹙仙瓷父搽諭亭揭,先油檮嘔Ε切賂╔碌訪外嶇�ρ╝
+戊件�興.几漬城租叼亭迆征祁杳祖,Ε切夕做杉w珞納嶇學軒,先塘Ε切簽邕
+牽皇岔ㄒ保城几疫憾墅吊征亭迆借,枝ㄒ做杉碌嶇�ρΓ. 几漬城尺河ㄓ舨征
+搽諭虎虎絆端歪w皇戊祁杳征亭競,先惋帕油虎虎彥�,牽保殉轅ㄖ氫.租某半
+Θ弋ˎΘㄜ外痣交嶇頭,Ε切枝夕人做杉.ㄒ碌,盔�磴油漬城,半尺河吏橘豌
+征陛妳Σ,ㄒ鞭偕β邕偕,包城ㄓ舨惱虹�五決搽諭奢氏列,ㄒ桌窮界歷�輓駢
+鈴.
+
+ 餡隹申坏,鞋ρ窈漬城半ΔˎΡ外窗歪彆門搽諭Υ征拗炳簫肓ㄒ雜,搽諭Υ
+�夔缺決列蓄昆保絆╔簫破╝征秘姍,Ε切β夕人做杉.几漬城牽賂佐鬆亭競征
+桌Μ申坏β保璀塘征,汎唳半戊敔駐Σ辜丫友輝.先几油阿丫,ㄓ舨亭競綁wˎ
+把外枝閏逼娑神岱w惠,例人,樂β雜倖抓ㄓ世Π閏囝╔丕w斥石婀╝.
+
+ 申盔�磴沼任殆尺河征槳賬亭揭閏彆門弋ˎㄜ外,先麥窗閏戊�蹈,忌叼半
+塘外鄉檄駁犀邕征耗泠彷及沌麥碌花,唔焜Μ閏丕丫惋,杳猴衹閏半Σ刃外丕斥
+布頭.几甸斜漬城仆絲歪戊w皇簫肓汗炳,ㄏ夕色搽諭寺雜遊遊唔煤.搽諭醒詫
+簫肓,Ε切枝夕人做杉.几β彥杳半碌w叛借窗花,塘亭宗ˎ念閏決搽諭睫城簫
+肓借,亭宗Υ衹閏劻嚕,�姍保決郝河w銖,王半Εο閏籀劻蜜坏樅.丁待取外
+征Εο閏籀戊囝佗痣地!
+
+
+
+
diff --git a/src/cmd/tcs/font/bbits.c b/src/cmd/tcs/font/bbits.c
new file mode 100644
index 00000000..71c9b004
--- /dev/null
+++ b/src/cmd/tcs/font/bbits.c
@@ -0,0 +1,89 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+#include "hdr.h"
+
+enum {
+ Charsperfont = 157,
+ Void1b = (0xC6-0xA2)*Charsperfont+0x3f,
+ Void1e = (0xC9-0xA2)*Charsperfont - 1 ,
+};
+
+Bitmap *
+breadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr)
+{
+ Bitmap *bm;
+ Biobuf *bf;
+ int i, j, byt;
+ int nch;
+ long c;
+ uchar *b, *nbits;
+ int *done;
+ static uchar missing[32] = {0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+ uchar buf[32];
+
+ bf = Bopen(file, OREAD);
+ if(bf == 0){
+ fprint(2, "%s: %s: %r\n", argv0, file);
+ exits("bitfile open error");
+ }
+ done = (int *)malloc(n*sizeof(done[0]));
+ if(done == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, n);
+ exits("malloc error");
+ }
+ *doneptr = done;
+ byt = size/8;
+ nch = 0;
+ for(i = 0; i < n; i++){
+ done[i] = 1;
+ nch++;
+ c = chars[i];
+ if((c >= Void1b) && (c <= Void1e)){
+ done[i] = 0;
+ nch--;
+ continue;
+ }
+ /* magic via presotto for calculating the seek */
+ j = c;
+ if(c >= 2*Charsperfont)
+ j += 294; /* baffling hole between A3 and A4 */
+ if(c > Void1e)
+ j -= 3*Charsperfont - 0x3F;
+ j *= byt*size; /* bytes per char */
+ j += 256; /* 256 front matter */
+ Bseek(bf, j, 0);
+ Bread(bf, buf, sizeof(missing));
+ if(memcmp(buf, missing, sizeof(missing)) == 0){
+ done[i] = 0;
+ nch--;
+ continue;
+ }
+ Bseek(bf, j, 0);
+ b = bits + i*byt;
+ for(j = 0; j < size; j++){ /* rows */
+ Bread(bf, b, byt);
+ b += n*byt;
+ }
+ }
+ nbits = (uchar *)malloc(nch*byt*size);
+ if(nbits == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt);
+ exits("malloc error");
+ }
+ c = 0;
+ for(i = 0; i < n; i++)
+ if(done[i]){
+ for(j = 0; j < size; j++)
+ memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt);
+ c++;
+ }
+ bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0);
+ if(bm == 0){
+ fprint(2, "%s: balloc failure\n", argv0);
+ exits("balloc failure");
+ }
+ wrbitmap(bm, 0, size, nbits);
+ return(bm);
+}
diff --git a/src/cmd/tcs/font/bmap.c b/src/cmd/tcs/font/bmap.c
new file mode 100644
index 00000000..7861d658
--- /dev/null
+++ b/src/cmd/tcs/font/bmap.c
@@ -0,0 +1,34 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <libg.h>
+#include "hdr.h"
+#include "../big5.h"
+
+/*
+ map: put big5 for runes from..to into chars
+*/
+
+void
+bmap(int from, int to, long *chars)
+{
+ long *l, *ll;
+ int k, k1, n;
+
+ for(n = from; n <= to; n++)
+ chars[n-from] = 0;
+ for(l = tabbig5, ll = tabbig5+BIG5MAX; l < ll; l++)
+ if((*l >= from) && (*l <= to))
+ chars[*l-from] = l-tabbig5;
+ k = 0;
+ k1 = 0; /* not necessary; just shuts ken up */
+ for(n = from; n <= to; n++)
+ if(chars[n-from] == 0){
+ k++;
+ k1 = n;
+ }
+ if(k){
+ fprint(2, "%s: %d/%d chars found (missing include 0x%x=%d)\n", argv0, (to-from+1-k), to-from+1, k1, k1);
+ /*exits("map problem");/**/
+ }
+}
diff --git a/src/cmd/tcs/font/font.c b/src/cmd/tcs/font/font.c
new file mode 100644
index 00000000..75e25128
--- /dev/null
+++ b/src/cmd/tcs/font/font.c
@@ -0,0 +1,34 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+#include "hdr.h"
+
+Subfont *
+bf(int n, int size, Bitmap *b, int *done)
+{
+ Fontchar *fc;
+ int i, j;
+ Subfont *f;
+
+ fc = (Fontchar *)malloc(sizeof(Fontchar)*(n+1));
+ if(fc == 0){
+ fprint(2, "%s: fontchar malloc(%d) failure\n", argv0, sizeof(Fontchar)*(n+1));
+ exits("fontchar malloc failure");
+ }
+ j = 0;
+ for(i = 0; i <= n; i++){
+ fc[i] = (Fontchar){j, 0, size, 0, size};
+ if(done[i])
+ j += size;
+ else
+ fc[i].width = 0;
+ }
+ fc[n] = (Fontchar){j, 0, size, 0, size};
+ f = subfalloc(n, size, size*7/8, fc, b, ~0, ~0);
+ if(f == 0){
+ fprint(2, "%s: falloc failure\n", argv0);
+ exits("falloc failure");
+ }
+ return(f);
+}
diff --git a/src/cmd/tcs/font/gbits.c b/src/cmd/tcs/font/gbits.c
new file mode 100644
index 00000000..6173907d
--- /dev/null
+++ b/src/cmd/tcs/font/gbits.c
@@ -0,0 +1,137 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+#include "hdr.h"
+
+/*
+ this file reads bdf fonts. it is mapping dependent in that the ENCODING
+ field is font dependent.
+*/
+
+static char *field(Biobuf *, char *);
+
+Bitmap *
+greadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr)
+{
+ Bitmap *bm;
+ Biobuf *bf;
+ char *p, *s;
+ long kmin, kmax;
+ int i, j, byt;
+ int nch;
+ long c;
+ uchar *b;
+ int *done;
+ uchar *nbits;
+ char buf[1024]; /* big enough for one char! */
+ static int dig[256] = {
+ ['0'] 0, ['1'] 1, ['2'] 2, ['3'] 3, ['4'] 4, ['5'] 5, ['6'] 6, ['7'] 7,
+ ['8'] 8, ['9'] 9, ['a'] 10, ['b'] 11, ['c'] 12, ['d'] 13, ['e'] 14, ['f'] 15,
+ };
+
+ bf = Bopen(file, OREAD);
+ if(bf == 0){
+ fprint(2, "%s: %s: %r\n", argv0, file);
+ exits("bitfile open error");
+ }
+ done = (int *)malloc(n*sizeof(done[0]));
+ if(done == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, n);
+ exits("malloc error");
+ }
+ *doneptr = done;
+ memset(done, 0, n*sizeof(done[0]));
+ kmin = 65536;
+ kmax = 0;
+ for(i = 0; i < n; i++){
+ c = chars[i];
+ if(kmin > c)
+ kmin = c;
+ if(kmax < c)
+ kmax = c;
+ }
+ nch = 0;
+ byt = size/8;
+ for(;;){
+ while(s = Brdline(bf, '\n')){
+ if(strncmp(s, "STARTCHAR", 9) == 0)
+ break;
+ }
+ if(s == 0)
+ break;
+ s = field(bf, "ENCODING");
+ c = strtol(s, (char **)0, 10);
+ c = (c/256 - 0xA0)*100 + (c%256 - 0xA0);
+ field(bf, "BITMAP");
+ p = buf;
+ for(i = 0; i < size; i++){ /* rows */
+ if((s = Brdline(bf, '\n')) == 0){
+ exits("bad bdf");
+ }
+ memcpy(p, s, 2*byt);
+ p += 2*byt;
+ }
+ field(bf, "ENDCHAR");
+ if((c < kmin) || (c > kmax))
+ continue;
+ for(i = 0; i < n; i++)
+ if(c == chars[i]){
+ nch++;
+ done[i] = 1;
+ p = buf;
+ b = bits + i*byt;
+ for(i = 0; i < size; i++){ /* rows */
+ for(j = 0; j < byt; j++){
+ *b++ = (dig[*p]<<4) | dig[p[1]];
+ p += 2;
+ }
+ b += (n-1)*byt;
+ }
+ break;
+ }
+ }
+ nbits = (uchar *)malloc(nch*byt*size);
+ if(nbits == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt);
+ exits("malloc error");
+ }
+ c = 0;
+ for(i = 0; i < n; i++)
+ if(done[i]){
+ for(j = 0; j < size; j++)
+ memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt);
+ c++;
+ }
+ bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0);
+ if(bm == 0){
+ fprint(2, "%s: balloc failure\n", argv0);
+ exits("balloc failure");
+ }
+ wrbitmap(bm, 0, size, nbits);
+ for(i = 0; i < n; i++)
+ if(done[i] == 0){
+ /*fprint(2, "char 0x%x (%d) not found\n", chars[i], chars[i]);/**/
+ }
+ return(bm);
+}
+
+static char *
+field(Biobuf *bf, char *name)
+{
+ char *s;
+ int n;
+
+ n = strlen(name);
+ while(s = Brdline(bf, '\n')){
+ if(strncmp(s, name, n) == 0)
+ return(s+n);
+ if(strncmp(s, "ENDCHAR", 7) == 0){
+ fprint(2, "%s: char missing %s field\n", argv0, name);
+ exits("bad bdf");
+ }
+ }
+ fprint(2, "%s: char missing %s field; unexpected EOF\n", argv0, name);
+ exits("bad bdf");
+ return(0);
+}
diff --git a/src/cmd/tcs/font/gmap.c b/src/cmd/tcs/font/gmap.c
new file mode 100644
index 00000000..50f4e5c1
--- /dev/null
+++ b/src/cmd/tcs/font/gmap.c
@@ -0,0 +1,34 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <libg.h>
+#include "hdr.h"
+#include "../gb.h"
+
+/*
+ map: put gb for runes from..to into chars
+*/
+
+void
+gmap(int from, int to, long *chars)
+{
+ long *l, *ll;
+ int k, k1, n;
+
+ for(n = from; n <= to; n++)
+ chars[n-from] = 0;
+ for(l = tabgb, ll = tabgb+GBMAX; l < ll; l++)
+ if((*l >= from) && (*l <= to))
+ chars[*l-from] = l-tabgb;
+ k = 0;
+ k1 = 0; /* not necessary; just shuts ken up */
+ for(n = from; n <= to; n++)
+ if(chars[n-from] == 0){
+ k++;
+ k1 = n;
+ }
+ if(k){
+ fprint(2, "%s: %d/%d chars found (missing include 0x%x=%d)\n", argv0, (to-from+1-k), to-from+1, k1, k1);
+ /*exits("map problem");/**/
+ }
+}
diff --git a/src/cmd/tcs/font/hdr.h b/src/cmd/tcs/font/hdr.h
new file mode 100644
index 00000000..e401dc0b
--- /dev/null
+++ b/src/cmd/tcs/font/hdr.h
@@ -0,0 +1,11 @@
+typedef Bitmap *readbitsfn(char *, int, long *, int, uchar *, int **);
+typedef void mapfn(int, int, long *);
+
+extern Bitmap *kreadbits(char *file, int nc, long *chars, int size, uchar *bits, int **);
+extern void kmap(int from, int to, long *chars);
+extern Bitmap *breadbits(char *file, int nc, long *chars, int size, uchar *bits, int **);
+extern void bmap(int from, int to, long *chars);
+extern Bitmap *greadbits(char *file, int nc, long *chars, int size, uchar *bits, int **);
+extern void gmap(int from, int to, long *chars);
+extern Bitmap *qreadbits(char *file, int nc, long *chars, int size, uchar *bits, int **);
+extern Subfont *bf(int n, int size, Bitmap *b, int *);
diff --git a/src/cmd/tcs/font/kbits.c b/src/cmd/tcs/font/kbits.c
new file mode 100644
index 00000000..325edc33
--- /dev/null
+++ b/src/cmd/tcs/font/kbits.c
@@ -0,0 +1,93 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+#include "hdr.h"
+
+Bitmap *
+kreadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr)
+{
+ Bitmap *bm;
+ Biobuf *bf;
+ char *p;
+ long kmin, kmax;
+ int i, j, byt;
+ int nch;
+ long c;
+ uchar *b;
+ int *done;
+ uchar *nbits;
+ static int dig[256] = {
+ ['0'] 0, ['1'] 1, ['2'] 2, ['3'] 3, ['4'] 4, ['5'] 5, ['6'] 6, ['7'] 7,
+ ['8'] 8, ['9'] 9, ['a'] 10, ['b'] 11, ['c'] 12, ['d'] 13, ['e'] 14, ['f'] 15,
+ };
+
+ bf = Bopen(file, OREAD);
+ if(bf == 0){
+ fprint(2, "%s: %s: %r\n", argv0, file);
+ exits("bitfile open error");
+ }
+ done = (int *)malloc(n*sizeof(done[0]));
+ if(done == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, n);
+ exits("malloc error");
+ }
+ *doneptr = done;
+ memset(done, 0, n*sizeof(done[0]));
+ kmin = 65536;
+ kmax = 0;
+ for(i = 0; i < n; i++){
+ c = chars[i];
+ if(kmin > c)
+ kmin = c;
+ if(kmax < c)
+ kmax = c;
+ }
+ nch = 0;
+ byt = size/8;
+ Brdline(bf, '\n'); /* header line 1 */
+ Brdline(bf, '\n'); /* header line 2 */
+ while(p = (char *)Brdline(bf, '\n')){
+ c = strtol(p+17, (char **)0, 10);
+ if((c < kmin) || (c > kmax))
+ continue;
+ for(i = 0; i < n; i++)
+ if(c == chars[i]){
+ nch++;
+ done[i] = 1;
+ p += 25;
+ b = bits + i*byt;
+ for(i = 0; i < size; i++){ /* rows */
+ for(j = 0; j < byt; j++){
+ *b++ = (dig[*p]<<4) | dig[p[1]];
+ p += 2;
+ }
+ b += (n-1)*byt;
+ }
+ break;
+ }
+ }
+ nbits = (uchar *)malloc(nch*byt*size);
+ if(nbits == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt);
+ exits("malloc error");
+ }
+ c = 0;
+ for(i = 0; i < n; i++)
+ if(done[i]){
+ for(j = 0; j < size; j++)
+ memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt);
+ c++;
+ }
+ bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0);
+ if(bm == 0){
+ fprint(2, "%s: balloc failure\n", argv0);
+ exits("balloc failure");
+ }
+ wrbitmap(bm, 0, size, nbits);
+ for(i = 0; i < n; i++)
+ if(done[i] == 0){
+ /*fprint(2, "char 0x%x (%d) not found\n", chars[i], chars[i]);/**/
+ }
+ return(bm);
+}
diff --git a/src/cmd/tcs/font/kmap.c b/src/cmd/tcs/font/kmap.c
new file mode 100644
index 00000000..3266ed41
--- /dev/null
+++ b/src/cmd/tcs/font/kmap.c
@@ -0,0 +1,34 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <libg.h>
+#include "hdr.h"
+#include "../kuten208.h"
+
+/*
+ map: put kuten for runes from..to into chars
+*/
+
+void
+kmap(int from, int to, long *chars)
+{
+ long *l, *ll;
+ int k, k1, n;
+
+ for(n = from; n <= to; n++)
+ chars[n-from] = 0;
+ for(l = tabkuten208, ll = tabkuten208+KUTEN208MAX; l < ll; l++)
+ if((*l >= from) && (*l <= to))
+ chars[*l-from] = l-tabkuten208;
+ k = 0;
+ k1 = 0; /* not necessary; just shuts ken up */
+ for(n = from; n <= to; n++)
+ if(chars[n-from] == 0){
+ k++;
+ k1 = n;
+ }
+ if(k){
+ fprint(2, "%s: %d/%d chars found (missing include 0x%x=%d)\n", argv0, (to-from+1-k), to-from+1, k1, k1);
+ /*exits("map problem");/**/
+ }
+}
diff --git a/src/cmd/tcs/font/main.c b/src/cmd/tcs/font/main.c
new file mode 100644
index 00000000..acc3ea3f
--- /dev/null
+++ b/src/cmd/tcs/font/main.c
@@ -0,0 +1,87 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+#include "hdr.h"
+
+/*
+ produces the bitmap for the designated han characters
+*/
+
+static void usage(void);
+enum { Jis = 0, Big5, Gb_bdf, Gb_qw };
+enum { Size24 = 0, Size16 };
+struct {
+ char *names[2];
+ mapfn *mfn;
+ readbitsfn *bfn;
+} source[] = {
+ [Jis] { "../han/jis.bits", "../han/jis16.bits", kmap, kreadbits },
+ [Big5] { "no 24 bit file", "../han/big5.16.bits", bmap, breadbits },
+ [Gb_bdf] { "no 24 bit file", "../han/cclib16fs.bdf", gmap, greadbits },
+ [Gb_qw] { "no 24 bit file", "no 16bit file", gmap, qreadbits },
+};
+
+void
+main(int argc, char **argv)
+{
+ int from, to;
+ int size = 24;
+ int src = Jis;
+ char *file = 0;
+ long nc, nb;
+ int x;
+ uchar *bits;
+ long *chars;
+ int raw = 0;
+ Bitmap *b, *b1;
+ Subfont *f;
+ int *found;
+
+ ARGBEGIN{
+ case 'f': file = ARGF(); break;
+ case 'r': raw = 1; break;
+ case '5': src = Big5; break;
+ case 's': size = 16; break;
+ case 'g': src = Gb_bdf; break;
+ case 'q': src = Gb_qw; break;
+ default: usage();
+ }ARGEND
+ if(file == 0)
+ file = source[src].names[(size==24)? Size24:Size16];
+ if(argc != 2)
+ usage();
+ from = strtol(argv[0], (char **)0, 0);
+ to = strtol(argv[1], (char **)0, 0);
+ binit(0, 0, "fontgen");
+ nc = to-from+1;
+ nb = size*size/8; /* bytes per char */
+ nb *= nc;
+ bits = (uchar *)malloc(nb);
+ chars = (long *)malloc(sizeof(long)*nc);
+ found = (int *)malloc(sizeof(found[0])*nc);
+ if(bits == 0 || chars == 0){
+ fprint(2, "%s: couldn't malloc %d bytes for %d chars\n", argv0, nb, nc);
+ exits("out of memory");
+ }
+ if(raw){
+ for(x = from; x <= to; x++)
+ chars[x-from] = x;
+ } else
+ source[src].mfn(from, to, chars);
+ memset(bits, 0, nb);
+ b = source[src].bfn(file, nc, chars, size, bits, &found);
+ b1 = balloc(b->r, b->ldepth);
+ bitblt(b1, b1->r.min, b, b->r, S);
+ f = bf(nc, size, b1, found);
+ wrbitmapfile(1, b);
+ wrsubfontfile(1, f);/**/
+ exits(0);
+}
+
+static void
+usage(void)
+{
+ fprint(2, "Usage: %s [-s] from to\n", argv0);
+ exits("usage");
+}
diff --git a/src/cmd/tcs/font/merge.c b/src/cmd/tcs/font/merge.c
new file mode 100644
index 00000000..35a5db39
--- /dev/null
+++ b/src/cmd/tcs/font/merge.c
@@ -0,0 +1,127 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+
+static void usage(void);
+static void snarf(char *, int);
+static void choose(Fontchar *, Bitmap *, int, int, int);
+struct {
+ char *name;
+ Bitmap *bm;
+ Subfont *sf;
+} ft[1024];
+int nf;
+
+void
+main(int argc, char **argv)
+{
+ int i, errs;
+ Fontchar *fc;
+ Bitmap *b;
+ int nc, ht, as;
+ Subfont *f;
+
+ binit(0, 0, "font merge");
+ if(argc < 1)
+ usage();
+ nf = argc-1;
+ for(i = 0; i < nf; i++)
+ snarf(argv[i+1], i);
+ nc = ft[0].sf->n;
+ ht = ft[0].sf->height;
+ as = ft[0].sf->ascent;
+ errs = 0;
+ for(i = 0; i < nf; i++){
+ if(nc < ft[i].sf->n) nc = ft[i].sf->n;
+ if(ht != ft[1].sf->height){
+ fprint(2, "%s: %s.height=%d (!= %s.height=%d)\n", argv[0],
+ ft[i].name, ft[i].sf->height, ft[0].name, ht);
+ errs = 1;
+ }
+ if(as != ft[1].sf->ascent){
+ fprint(2, "%s: %s.ascent=%d (!= %s.ascent=%d)\n", argv[0],
+ ft[i].name, ft[i].sf->ascent, ft[0].name, ht);
+ errs = 1;
+ }
+ }
+ if(errs)
+ exits("param mismatch");
+ fc = (Fontchar *)malloc(nc*sizeof(Fontchar));
+ b = balloc(Rect(0, 0, nc*64, ht), ft[0].bm->ldepth);
+ if(b == 0 || fc == 0){
+ fprint(2, "%s: couldn't malloc %d chars\n", argv0, nc);
+ exits("out of memory");
+ }
+ bitblt(b, b->r.min, b, b->r, Zero);
+ choose(fc, b, nc, ht, as);
+ wrbitmapfile(1, b);
+bitblt(&screen, screen.r.min, b, b->r, S); bflush();sleep(5000);
+ f = subfalloc(nc, ht, as, fc, b, ~0, ~0);
+ wrsubfontfile(1, f);
+ exits(0);
+}
+
+static void
+usage(void)
+{
+ fprint(2, "Usage: %s file ...\n", argv0);
+ exits("usage");
+}
+
+static void
+snarf(char *name, int i)
+{
+ int fd;
+ Bitmap *b;
+
+ ft[i].name = name;
+ if((fd = open(name, OREAD)) < 0){
+ perror(name);
+ exits("font read");
+ }
+ if((b = rdbitmapfile(fd)) == 0){
+ fprint(2, "rdbitmapfile failed\n");
+ exits("font read");
+ }
+ if((ft[i].bm = balloc(b->r, b->ldepth)) == 0){
+ fprint(2, "ballocsnarf failed\n");
+ exits("font read");
+ }
+ bitblt(ft[i].bm, b->r.min, b, b->r, S);
+ if((ft[i].sf = rdsubfontfile(fd, b)) == 0){
+ fprint(2, "rdsubfontfile failed\n");
+ exits("font read");
+ }
+ close(fd);
+}
+
+static void
+choose(Fontchar *f, Bitmap *b, int nc, int ht, int as)
+{
+ int j;
+ Fontchar *info;
+ int lastx = 0;
+ int w, n;
+
+ for(n = 0; n < nc; n++, f++){
+ f->x = lastx;
+ for(j = 0; j < nf; j++){
+ if(n >= ft[j].sf->n)
+ continue;
+ info = ft[j].sf->info;
+ if(info[n+1].x != info[n].x)
+ goto found;
+ }
+ continue;
+ found:
+ f->left = info[n].left;
+ f->top = info[n].top;
+ f->bottom = info[n].bottom;
+ f->width = info[n].width;
+ w = info[n+1].x - info[n].x;
+ bitblt(b, Pt(0, lastx), ft[j].bm, Rect(0, info[n].x, ht, info[n+1].x), S);
+ lastx += w;
+ }
+ f->x = lastx;
+}
diff --git a/src/cmd/tcs/font/mkfile b/src/cmd/tcs/font/mkfile
new file mode 100644
index 00000000..0184be9b
--- /dev/null
+++ b/src/cmd/tcs/font/mkfile
@@ -0,0 +1,103 @@
+<$PLAN9/src/mkhdr
+NPROC=3
+
+OBJ=main.$O font.$O \
+ kmap.$O kbits.$O kuten208.$O \
+ bmap.$O bbits.$O big5.$O \
+ gmap.$O gbits.$O qbits.$O gb.$O
+
+$O.out: $OBJ
+ $LD $prereq -lbio -lg
+
+%.$O: %.c
+ $CC -w $stem.c
+
+$O: hdr.h
+
+kuten208.$O: ../kuten208.c
+ $CC -I.. -w ../kuten208.c
+big5.$O: ../big5.c
+ $CC -I.. -w ../big5.c
+gb.$O: ../gb.c
+ $CC -I.. -w ../gb.c
+
+kuten208.$O kmap.$O: ../kuten208.h
+big5.$O bmap.$O: ../big5.h
+gb.$O gmap.$O: ../gb.h
+
+clean:V:
+ rm -f [$OS].out *.[$OS] y.tab.? rc.*
+
+poot:V: merge
+ merge /lib/font/bit/gb/*.7000.24 > /dev/null
+
+merge: merge.c
+ $CC -w merge.c && vl -o merge merge.$O && rm merge.$O
+
+fonts:V: v.out rc.jis rc.big5
+ jis.rc
+ big5.rc
+
+rc.jis:VQD:
+ awk 'BEGIN {
+ fontsize = 512 # set this to chars/subfont
+ dest = "/lib/font/bit/jis"
+ print "#!/bin/rc"
+ printf "v.out -s 0x3000 0x303f > %s/jis3000.16\n", dest
+ printf "v.out -s 0x30a1 0x30fe > %s/katakana.16\n", dest
+ printf "v.out -s 0x3041 0x309e > %s/hiragana.16\n", dest
+ printf "v.out 0x3000 0x303f > %s/jis3000.24\n", dest
+ printf "v.out 0x30a1 0x30fe > %s/katakana.24\n", dest
+ printf "v.out 0x3041 0x309e > %s/hiragana.24\n", dest
+ for(i = 19968; i < 40865; i += fontsize)
+ printf "v.out -s 0x%x 0x%x > %s/jis%x.16\n", i, i+fontsize-1, dest, i
+ for(i = 19968; i < 40865; i += fontsize)
+ printf "v.out 0x%x 0x%x > %s/jis%x.24\n", i, i+fontsize-1, dest, i
+ exit
+ }' > $target
+ chmod 775 $target
+
+rc.big5:VQD:
+ awk 'BEGIN {
+ fontsize = 512 # set this to chars/subfont
+ dest = "/lib/font/bit/big5"
+ print "#!/bin/rc"
+ for(i = 19968; i < 40869; i += fontsize)
+ printf "v.out -5 -s 0x%x 0x%x > %s/%x.16\n", i, i+fontsize-1, dest, i
+ exit
+ }' > $target
+ chmod 775 $target
+
+rc.gb:VQD:
+ fn g{
+ x=$1
+ y=$2
+ z=$3
+ awk 'BEGIN {
+ fontsize = 512 # set this to chars/subfont
+ dest = "/lib/font/bit/gb/'$"x'."
+ opt = "'$"y'"
+ sz = "'$"z'"
+ print "#!/bin/rc"
+ printf "v.out %s 0x3000 0x303f > %s3000.%s\n", opt, dest, sz
+ printf "v.out %s 0x30a1 0x30fe > %skatakana.%s\n", opt, dest, sz
+ printf "v.out %s 0x3041 0x309e > %shiragana.%s\n", opt, dest, sz
+ printf "v.out %s 0x3100 0x312f > %sbopomofo.%s\n", opt, dest, sz
+ printf "v.out %s 0x3200 0x32ff > %s3200.%s\n", opt, dest, sz
+ for(i = 19968; i < 40869; i += fontsize)
+ printf "v.out %s 0x%x 0x%x > %s%x.%s\n", opt, i, i+fontsize-1, dest, i, sz
+ exit
+ }'
+ }
+ {
+ g TradSong '-q -f ../han/cfan24.ccf' 24
+ g FangSong '-q -f ../han/cfang24.ccf' 24
+ g Hei '-q -f ../han/chei24.ccf' 24
+ g Kai '-q -f ../han/ckai24.ccf' 24
+ g Song '-q -f ../han/csong24.ccf' 24
+ g Song '-g -s -f ../han/cclib16st.bdf' 16
+ g FangSong '-g -s -f ../han/cclib16fs.bdf' 16
+ } > $target
+ chmod 775 $target
+
+<$PLAN9/src/mkmany
diff --git a/src/cmd/tcs/font/qbits.c b/src/cmd/tcs/font/qbits.c
new file mode 100644
index 00000000..58cbd925
--- /dev/null
+++ b/src/cmd/tcs/font/qbits.c
@@ -0,0 +1,93 @@
+#include <u.h>
+#include <libc.h>
+#include <libg.h>
+#include <bio.h>
+#include "hdr.h"
+
+/* quwei encoding for gb */
+
+Bitmap *
+qreadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr)
+{
+ Bitmap *bm;
+ Biobuf *bf;
+ char *p;
+ long kmin, kmax;
+ int i, j, byt;
+ int nch;
+ long c;
+ uchar *b;
+ int *done;
+ uchar *nbits;
+ static int dig[256] = {
+ ['0'] 0, ['1'] 1, ['2'] 2, ['3'] 3, ['4'] 4, ['5'] 5, ['6'] 6, ['7'] 7,
+ ['8'] 8, ['9'] 9, ['a'] 10, ['b'] 11, ['c'] 12, ['d'] 13, ['e'] 14, ['f'] 15,
+ };
+
+ bf = Bopen(file, OREAD);
+ if(bf == 0){
+ fprint(2, "%s: %s: %r\n", argv0, file);
+ exits("bitfile open error");
+ }
+ done = (int *)malloc(n*sizeof(done[0]));
+ if(done == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, n);
+ exits("malloc error");
+ }
+ *doneptr = done;
+ memset(done, 0, n*sizeof(done[0]));
+ kmin = 65536;
+ kmax = 0;
+ for(i = 0; i < n; i++){
+ c = chars[i];
+ if(kmin > c)
+ kmin = c;
+ if(kmax < c)
+ kmax = c;
+ }
+ nch = 0;
+ byt = size/8;
+ while(p = (char *)Brdline(bf, '\n')){
+ c = (p[0]-'0')*1000 + (p[1]-'0')*100 + (p[2]-'0')*10 + (p[3]-'0');
+ if((c < kmin) || (c > kmax))
+ continue;
+ for(i = 0; i < n; i++)
+ if(c == chars[i]){
+ nch++;
+ done[i] = 1;
+ p += 5;
+ b = bits + i*byt;
+ for(i = 0; i < size; i++){ /* rows */
+ for(j = 0; j < byt; j++){
+ *b++ = (dig[*p]<<4) | dig[p[1]];
+ p += 2;
+ }
+ b += (n-1)*byt;
+ }
+ break;
+ }
+ }
+ nbits = (uchar *)malloc(nch*byt*size);
+ if(nbits == 0){
+ fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt);
+ exits("malloc error");
+ }
+ c = 0;
+ for(i = 0; i < n; i++)
+ if(done[i]){
+ for(j = 0; j < size; j++)
+ memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt);
+ c++;
+ }
+ bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0);
+ if(bm == 0){
+ fprint(2, "%s: balloc failure\n", argv0);
+ exits("balloc failure");
+ }
+ wrbitmap(bm, 0, size, nbits);
+ for(i = 0; i < n; i++)
+ if(done[i] == 0){
+ /*fprint(2, "char 0x%x (%d) not found\n", chars[i], chars[i]);/**/
+ }
+ return(bm);
+}
diff --git a/src/cmd/tcs/gb.c b/src/cmd/tcs/gb.c
new file mode 100644
index 00000000..b149b8fc
--- /dev/null
+++ b/src/cmd/tcs/gb.c
@@ -0,0 +1,1104 @@
+#include "gb.h"
+
+long tabgb[GBMAX] = {
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x3000,0x3001,0x3002,
+0x30fb,0x02c9,0x02c7,0x00a8,0x3003,0x3005,0x2015,0x301c,
+0x2225,0x2026,0x2018,0x2019,0x201c,0x201d,0x3014,0x3015,
+0x3008,0x3009,0x300a,0x300b,0x300c,0x300d,0x300e,0x300f,
+0x3016,0x3017,0x3010,0x3011,0x00b1,0x00d7,0x00f7,0x2236,
+0x2227,0x2228,0x2211,0x220f,0x222a,0x2229,0x2208,0x2237,
+0x221a,0x22a5,0x2225,0x2220,0x2312,0x2299,0x222b,0x222e,
+0x2261,0x224c,0x2248,0x223d,0x221d,0x2260,0x226e,0x226f,
+0x2264,0x2265,0x221e,0x2235,0x2234,0x2642,0x2640,0x00b0,
+0x2032,0x2033,0x2103,0xff04,0x00a4,0xffe0,0xffe1,0x2030,
+0x00a7,0x2116,0x2606,0x2605,0x25cb,0x25cf,0x25ce,0x25c7,
+0x25c6,0x25a1,0x25a0,0x25b3,0x25b2,0x203b,0x2192,0x2190,
+0x2191,0x2193,0x3013, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x2488,0x2489,0x248a,0x248b,0x248c,0x248d,0x248e,
+0x248f,0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496,
+0x2497,0x2498,0x2499,0x249a,0x249b,0x2474,0x2475,0x2476,
+0x2477,0x2478,0x2479,0x247a,0x247b,0x247c,0x247d,0x247e,
+0x247f,0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486,
+0x2487,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,
+0x2467,0x2468,0x2469, -1, -1,0x3220,0x3221,0x3222,
+0x3223,0x3224,0x3225,0x3226,0x3227,0x3228,0x3229, -1,
+ -1,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
+0x2167,0x2168,0x2169,0x216a,0x216b, -1, -1, -1,
+ -1, -1, -1, -1, -1,0xff01,0xff02,0xff03,
+0xffe5,0xff05,0xff06,0xff07,0xff08,0xff09,0xff0a,0xff0b,
+0xff0c,0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13,
+0xff14,0xff15,0xff16,0xff17,0xff18,0xff19,0xff1a,0xff1b,
+0xff1c,0xff1d,0xff1e,0xff1f,0xff20,0xff21,0xff22,0xff23,
+0xff24,0xff25,0xff26,0xff27,0xff28,0xff29,0xff2a,0xff2b,
+0xff2c,0xff2d,0xff2e,0xff2f,0xff30,0xff31,0xff32,0xff33,
+0xff34,0xff35,0xff36,0xff37,0xff38,0xff39,0xff3a,0xff3b,
+0xff3c,0xff3d,0xff3e,0xff3f,0xff40,0xff41,0xff42,0xff43,
+0xff44,0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,
+0xff4c,0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,
+0xff54,0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0xff5b,
+0xff5c,0xff5d,0xffe3, -1, -1, -1, -1, -1,
+ -1,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,
+0x3048,0x3049,0x304a,0x304b,0x304c,0x304d,0x304e,0x304f,
+0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,
+0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,0x305f,
+0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,
+0x3068,0x3069,0x306a,0x306b,0x306c,0x306d,0x306e,0x306f,
+0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,
+0x3078,0x3079,0x307a,0x307b,0x307c,0x307d,0x307e,0x307f,
+0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,
+0x3088,0x3089,0x308a,0x308b,0x308c,0x308d,0x308e,0x308f,
+0x3090,0x3091,0x3092,0x3093, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x30a1,0x30a2,0x30a3,
+0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,0x30ab,
+0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3,
+0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,
+0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c3,
+0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30ca,0x30cb,
+0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,0x30d3,
+0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db,
+0x30dc,0x30dd,0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3,
+0x30e4,0x30e5,0x30e6,0x30e7,0x30e8,0x30e9,0x30ea,0x30eb,
+0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,0x30f1,0x30f2,0x30f3,
+0x30f4,0x30f5,0x30f6, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
+0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,
+0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,
+0x03a9, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,
+0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,
+0x03c0,0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,
+0x03c9, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x0410,0x0411,0x0412,
+0x0413,0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419,
+0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,0x0420,0x0421,
+0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,
+0x042a,0x042b,0x042c,0x042d,0x042e,0x042f, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x0430,0x0431,0x0432,
+0x0433,0x0434,0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,
+0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,0x0440,0x0441,
+0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,
+0x044a,0x044b,0x044c,0x044d,0x044e,0x044f, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x0101,0x00e1,0x01ce,0x00e0,0x0113,0x00e9,0x011b,
+0x00e8,0x012b,0x00ed,0x01d0,0x00ec,0x014d,0x00f3,0x01d2,
+0x00f2,0x016b,0x00fa,0x01d4,0x00f9,0x01d6,0x01d8,0x01da,
+0x01dc,0x00fc,0x00ea, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x3105,0x3106,0x3107,
+0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e,0x310f,
+0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117,
+0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e,0x311f,
+0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127,
+0x3128,0x3129, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x2500,0x2501,0x2502,0x2503,0x2504,0x2505,0x2506,0x2507,
+0x2508,0x2509,0x250a,0x250b,0x250c,0x250d,0x250e,0x250f,
+0x2510,0x2511,0x2512,0x2513,0x2514,0x2515,0x2516,0x2517,
+0x2518,0x2519,0x251a,0x251b,0x251c,0x251d,0x251e,0x251f,
+0x2520,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527,
+0x2528,0x2529,0x252a,0x252b,0x252c,0x252d,0x252e,0x252f,
+0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537,
+0x2538,0x2539,0x253a,0x253b,0x253c,0x253d,0x253e,0x253f,
+0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547,
+0x2548,0x2549,0x254a,0x254b, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x554a,0x963f,0x57c3,0x6328,0x54ce,0x5509,0x54c0,
+0x7691,0x764c,0x853c,0x77ee,0x827e,0x788d,0x7231,0x9698,
+0x978d,0x6c28,0x5b89,0x4ffa,0x6309,0x6697,0x5cb8,0x80fa,
+0x6848,0x80ae,0x6602,0x76ce,0x51f9,0x6556,0x71ac,0x7ff1,
+0x8884,0x50b2,0x5965,0x61ca,0x6fb3,0x82ad,0x634c,0x6252,
+0x53ed,0x5427,0x7b06,0x516b,0x75a4,0x5df4,0x62d4,0x8dcb,
+0x9776,0x628a,0x8019,0x575d,0x9738,0x7f62,0x7238,0x767d,
+0x67cf,0x767e,0x6446,0x4f70,0x8d25,0x62dc,0x7a17,0x6591,
+0x73ed,0x642c,0x6273,0x822c,0x9881,0x677f,0x7248,0x626e,
+0x62cc,0x4f34,0x74e3,0x534a,0x529e,0x7eca,0x90a6,0x5e2e,
+0x6886,0x699c,0x8180,0x7ed1,0x68d2,0x78c5,0x868c,0x9551,
+0x508d,0x8c24,0x82de,0x80de,0x5305,0x8912,0x5265, -1,
+ -1, -1, -1, -1, -1,0x8584,0x96f9,0x4fdd,
+0x5821,0x9971,0x5b9d,0x62b1,0x62a5,0x66b4,0x8c79,0x9c8d,
+0x7206,0x676f,0x7891,0x60b2,0x5351,0x5317,0x8f88,0x80cc,
+0x8d1d,0x94a1,0x500d,0x72c8,0x5907,0x60eb,0x7119,0x88ab,
+0x5954,0x82ef,0x672c,0x7b28,0x5d29,0x7ef7,0x752d,0x6cf5,
+0x8e66,0x8ff8,0x903c,0x9f3b,0x6bd4,0x9119,0x7b14,0x5f7c,
+0x78a7,0x84d6,0x853d,0x6bd5,0x6bd9,0x6bd6,0x5e01,0x5e87,
+0x75f9,0x95ed,0x655d,0x5f0a,0x5fc5,0x8f9f,0x58c1,0x81c2,
+0x907f,0x965b,0x97ad,0x8fb9,0x7f16,0x8d2c,0x6241,0x4fbf,
+0x53d8,0x535e,0x8fa8,0x8fa9,0x8fab,0x904d,0x6807,0x5f6a,
+0x8198,0x8868,0x9cd6,0x618b,0x522b,0x762a,0x5f6c,0x658c,
+0x6fd2,0x6ee8,0x5bbe,0x6448,0x5175,0x51b0,0x67c4,0x4e19,
+0x79c9,0x997c,0x70b3, -1, -1, -1, -1, -1,
+ -1,0x75c5,0x5e76,0x73bb,0x83e0,0x64ad,0x62e8,0x94b5,
+0x6ce2,0x535a,0x52c3,0x640f,0x94c2,0x7b94,0x4f2f,0x5e1b,
+0x8236,0x8116,0x818a,0x6e24,0x6cca,0x9a73,0x6355,0x535c,
+0x54fa,0x8865,0x57e0,0x4e0d,0x5e03,0x6b65,0x7c3f,0x90e8,
+0x6016,0x64e6,0x731c,0x88c1,0x6750,0x624d,0x8d22,0x776c,
+0x8e29,0x91c7,0x5f69,0x83dc,0x8521,0x9910,0x53c2,0x8695,
+0x6b8b,0x60ed,0x60e8,0x707f,0x82cd,0x8231,0x4ed3,0x6ca7,
+0x85cf,0x64cd,0x7cd9,0x69fd,0x66f9,0x8349,0x5395,0x7b56,
+0x4fa7,0x518c,0x6d4b,0x5c42,0x8e6d,0x63d2,0x53c9,0x832c,
+0x8336,0x67e5,0x78b4,0x643d,0x5bdf,0x5c94,0x5dee,0x8be7,
+0x62c6,0x67f4,0x8c7a,0x6400,0x63ba,0x8749,0x998b,0x8c17,
+0x7f20,0x94f2,0x4ea7,0x9610,0x98a4,0x660c,0x7316, -1,
+ -1, -1, -1, -1, -1,0x573a,0x5c1d,0x5e38,
+0x957f,0x507f,0x80a0,0x5382,0x655e,0x7545,0x5531,0x5021,
+0x8d85,0x6284,0x949e,0x671d,0x5632,0x6f6e,0x5de2,0x5435,
+0x7092,0x8f66,0x626f,0x64a4,0x63a3,0x5f7b,0x6f88,0x90f4,
+0x81e3,0x8fb0,0x5c18,0x6668,0x5ff1,0x6c89,0x9648,0x8d81,
+0x886c,0x6491,0x79f0,0x57ce,0x6a59,0x6210,0x5448,0x4e58,
+0x7a0b,0x60e9,0x6f84,0x8bda,0x627f,0x901e,0x9a8b,0x79e4,
+0x5403,0x75f4,0x6301,0x5319,0x6c60,0x8fdf,0x5f1b,0x9a70,
+0x803b,0x9f7f,0x4f88,0x5c3a,0x8d64,0x7fc5,0x65a5,0x70bd,
+0x5145,0x51b2,0x866b,0x5d07,0x5ba0,0x62bd,0x916c,0x7574,
+0x8e0c,0x7a20,0x6101,0x7b79,0x4ec7,0x7ef8,0x7785,0x4e11,
+0x81ed,0x521d,0x51fa,0x6a71,0x53a8,0x8e87,0x9504,0x96cf,
+0x6ec1,0x9664,0x695a, -1, -1, -1, -1, -1,
+ -1,0x7840,0x50a8,0x77d7,0x6410,0x89e6,0x5904,0x63e3,
+0x5ddd,0x7a7f,0x693d,0x4f20,0x8239,0x5598,0x4e32,0x75ae,
+0x7a97,0x5e62,0x5e8a,0x95ef,0x521b,0x5439,0x708a,0x6376,
+0x9524,0x5782,0x6625,0x693f,0x9187,0x5507,0x6df3,0x7eaf,
+0x8822,0x6233,0x7ef0,0x75b5,0x8328,0x78c1,0x96cc,0x8f9e,
+0x6148,0x74f7,0x8bcd,0x6b64,0x523a,0x8d50,0x6b21,0x806a,
+0x8471,0x56f1,0x5306,0x4ece,0x4e1b,0x51d1,0x7c97,0x918b,
+0x7c07,0x4fc3,0x8e7f,0x7be1,0x7a9c,0x6467,0x5d14,0x50ac,
+0x8106,0x7601,0x7cb9,0x6dec,0x7fe0,0x6751,0x5b58,0x5bf8,
+0x78cb,0x64ae,0x6413,0x63aa,0x632b,0x9519,0x642d,0x8fbe,
+0x7b54,0x7629,0x6253,0x5927,0x5446,0x6b79,0x50a3,0x6234,
+0x5e26,0x6b86,0x4ee3,0x8d37,0x888b,0x5f85,0x902e, -1,
+ -1, -1, -1, -1, -1,0x6020,0x803d,0x62c5,
+0x4e39,0x5355,0x90f8,0x63b8,0x80c6,0x65e6,0x6c2e,0x4f46,
+0x60ee,0x6de1,0x8bde,0x5f39,0x86cb,0x5f53,0x6321,0x515a,
+0x8361,0x6863,0x5200,0x6363,0x8e48,0x5012,0x5c9b,0x7977,
+0x5bfc,0x5230,0x7a3b,0x60bc,0x9053,0x76d7,0x5fb7,0x5f97,
+0x7684,0x8e6c,0x706f,0x767b,0x7b49,0x77aa,0x51f3,0x9093,
+0x5824,0x4f4e,0x6ef4,0x8fea,0x654c,0x7b1b,0x72c4,0x6da4,
+0x7fdf,0x5ae1,0x62b5,0x5e95,0x5730,0x8482,0x7b2c,0x5e1d,
+0x5f1f,0x9012,0x7f14,0x98a0,0x6382,0x6ec7,0x7898,0x70b9,
+0x5178,0x975b,0x57ab,0x7535,0x4f43,0x7538,0x5e97,0x60e6,
+0x5960,0x6dc0,0x6bbf,0x7889,0x53fc,0x96d5,0x51cb,0x5201,
+0x6389,0x540a,0x9493,0x8c03,0x8dcc,0x7239,0x789f,0x8776,
+0x8fed,0x8c0d,0x53e0, -1, -1, -1, -1, -1,
+ -1,0x4e01,0x76ef,0x53ee,0x9489,0x9876,0x9f0e,0x952d,
+0x5b9a,0x8ba2,0x4e22,0x4e1c,0x51ac,0x8463,0x61c2,0x52a8,
+0x680b,0x4f97,0x606b,0x51bb,0x6d1e,0x515c,0x6296,0x6597,
+0x9661,0x8c46,0x9017,0x75d8,0x90fd,0x7763,0x6bd2,0x728a,
+0x72ec,0x8bfb,0x5835,0x7779,0x8d4c,0x675c,0x9540,0x809a,
+0x5ea6,0x6e21,0x5992,0x7aef,0x77ed,0x953b,0x6bb5,0x65ad,
+0x7f0e,0x5806,0x5151,0x961f,0x5bf9,0x58a9,0x5428,0x8e72,
+0x6566,0x987f,0x56e4,0x949d,0x76fe,0x9041,0x6387,0x54c6,
+0x591a,0x593a,0x579b,0x8eb2,0x6735,0x8dfa,0x8235,0x5241,
+0x60f0,0x5815,0x86fe,0x5ce8,0x9e45,0x4fc4,0x989d,0x8bb9,
+0x5a25,0x6076,0x5384,0x627c,0x904f,0x9102,0x997f,0x6069,
+0x800c,0x513f,0x8033,0x5c14,0x9975,0x6d31,0x4e8c, -1,
+ -1, -1, -1, -1, -1,0x8d30,0x53d1,0x7f5a,
+0x7b4f,0x4f10,0x4e4f,0x9600,0x6cd5,0x73d0,0x85e9,0x5e06,
+0x756a,0x7ffb,0x6a0a,0x77fe,0x9492,0x7e41,0x51e1,0x70e6,
+0x53cd,0x8fd4,0x8303,0x8d29,0x72af,0x996d,0x6cdb,0x574a,
+0x82b3,0x65b9,0x80aa,0x623f,0x9632,0x59a8,0x4eff,0x8bbf,
+0x7eba,0x653e,0x83f2,0x975e,0x5561,0x98de,0x80a5,0x532a,
+0x8bfd,0x5420,0x80ba,0x5e9f,0x6cb8,0x8d39,0x82ac,0x915a,
+0x5429,0x6c1b,0x5206,0x7eb7,0x575f,0x711a,0x6c7e,0x7c89,
+0x594b,0x4efd,0x5fff,0x6124,0x7caa,0x4e30,0x5c01,0x67ab,
+0x8702,0x5cf0,0x950b,0x98ce,0x75af,0x70fd,0x9022,0x51af,
+0x7f1d,0x8bbd,0x5949,0x51e4,0x4f5b,0x5426,0x592b,0x6577,
+0x80a4,0x5b75,0x6276,0x62c2,0x8f90,0x5e45,0x6c1f,0x7b26,
+0x4f0f,0x4fd8,0x670d, -1, -1, -1, -1, -1,
+ -1,0x6d6e,0x6daa,0x798f,0x88b1,0x5f17,0x752b,0x629a,
+0x8f85,0x4fef,0x91dc,0x65a7,0x812f,0x8151,0x5e9c,0x8150,
+0x8d74,0x526f,0x8986,0x8d4b,0x590d,0x5085,0x4ed8,0x961c,
+0x7236,0x8179,0x8d1f,0x5bcc,0x8ba3,0x9644,0x5987,0x7f1a,
+0x5490,0x5676,0x560e,0x8be5,0x6539,0x6982,0x9499,0x76d6,
+0x6e89,0x5e72,0x7518,0x6746,0x67d1,0x7aff,0x809d,0x8d76,
+0x611f,0x79c6,0x6562,0x8d63,0x5188,0x521a,0x94a2,0x7f38,
+0x809b,0x7eb2,0x5c97,0x6e2f,0x6760,0x7bd9,0x768b,0x9ad8,
+0x818f,0x7f94,0x7cd5,0x641e,0x9550,0x7a3f,0x544a,0x54e5,
+0x6b4c,0x6401,0x6208,0x9e3d,0x80f3,0x7599,0x5272,0x9769,
+0x845b,0x683c,0x86e4,0x9601,0x9694,0x94ec,0x4e2a,0x5404,
+0x7ed9,0x6839,0x8ddf,0x8015,0x66f4,0x5e9a,0x7fb9, -1,
+ -1, -1, -1, -1, -1,0x57c2,0x803f,0x6897,
+0x5de5,0x653b,0x529f,0x606d,0x9f9a,0x4f9b,0x8eac,0x516c,
+0x5bab,0x5f13,0x5de9,0x6c5e,0x62f1,0x8d21,0x5171,0x94a9,
+0x52fe,0x6c9f,0x82df,0x72d7,0x57a2,0x6784,0x8d2d,0x591f,
+0x8f9c,0x83c7,0x5495,0x7b8d,0x4f30,0x6cbd,0x5b64,0x59d1,
+0x9f13,0x53e4,0x86ca,0x9aa8,0x8c37,0x80a1,0x6545,0x987e,
+0x56fa,0x96c7,0x522e,0x74dc,0x5250,0x5be1,0x6302,0x8902,
+0x4e56,0x62d0,0x602a,0x68fa,0x5173,0x5b98,0x51a0,0x89c2,
+0x7ba1,0x9986,0x7f50,0x60ef,0x704c,0x8d2f,0x5149,0x5e7f,
+0x901b,0x7470,0x89c4,0x572d,0x7845,0x5f52,0x9f9f,0x95fa,
+0x8f68,0x9b3c,0x8be1,0x7678,0x6842,0x67dc,0x8dea,0x8d35,
+0x523d,0x8f8a,0x6eda,0x68cd,0x9505,0x90ed,0x56fd,0x679c,
+0x88f9,0x8fc7,0x54c8, -1, -1, -1, -1, -1,
+ -1,0x9ab8,0x5b69,0x6d77,0x6c26,0x4ea5,0x5bb3,0x9a87,
+0x9163,0x61a8,0x90af,0x97e9,0x542b,0x6db5,0x5bd2,0x51fd,
+0x558a,0x7f55,0x7ff0,0x64bc,0x634d,0x65f1,0x61be,0x608d,
+0x710a,0x6c57,0x6c49,0x592f,0x676d,0x822a,0x58d5,0x568e,
+0x8c6a,0x6beb,0x90dd,0x597d,0x8017,0x53f7,0x6d69,0x5475,
+0x559d,0x8377,0x83cf,0x6838,0x79be,0x548c,0x4f55,0x5408,
+0x76d2,0x8c89,0x9602,0x6cb3,0x6db8,0x8d6b,0x8910,0x9e64,
+0x8d3a,0x563f,0x9ed1,0x75d5,0x5f88,0x72e0,0x6068,0x54fc,
+0x4ea8,0x6a2a,0x8861,0x6052,0x8f70,0x54c4,0x70d8,0x8679,
+0x9e3f,0x6d2a,0x5b8f,0x5f18,0x7ea2,0x5589,0x4faf,0x7334,
+0x543c,0x539a,0x5019,0x540e,0x547c,0x4e4e,0x5ffd,0x745a,
+0x58f6,0x846b,0x80e1,0x8774,0x72d0,0x7cca,0x6e56, -1,
+ -1, -1, -1, -1, -1,0x5f27,0x864e,0x552c,
+0x62a4,0x4e92,0x6caa,0x6237,0x82b1,0x54d7,0x534e,0x733e,
+0x6ed1,0x753b,0x5212,0x5316,0x8bdd,0x69d0,0x5f8a,0x6000,
+0x6dee,0x574f,0x6b22,0x73af,0x6853,0x8fd8,0x7f13,0x6362,
+0x60a3,0x5524,0x75ea,0x8c62,0x7115,0x6da3,0x5ba6,0x5e7b,
+0x8352,0x614c,0x9ec4,0x78fa,0x8757,0x7c27,0x7687,0x51f0,
+0x60f6,0x714c,0x6643,0x5e4c,0x604d,0x8c0e,0x7070,0x6325,
+0x8f89,0x5fbd,0x6062,0x86d4,0x56de,0x6bc1,0x6094,0x6167,
+0x5349,0x60e0,0x6666,0x8d3f,0x79fd,0x4f1a,0x70e9,0x6c47,
+0x8bb3,0x8bf2,0x7ed8,0x8364,0x660f,0x5a5a,0x9b42,0x6d51,
+0x6df7,0x8c41,0x6d3b,0x4f19,0x706b,0x83b7,0x6216,0x60d1,
+0x970d,0x8d27,0x7978,0x51fb,0x573e,0x57fa,0x673a,0x7578,
+0x7a3d,0x79ef,0x7b95, -1, -1, -1, -1, -1,
+ -1,0x808c,0x9965,0x8ff9,0x6fc0,0x8ba5,0x9e21,0x59ec,
+0x7ee9,0x7f09,0x5409,0x6781,0x68d8,0x8f91,0x7c4d,0x96c6,
+0x53ca,0x6025,0x75be,0x6c72,0x5373,0x5ac9,0x7ea7,0x6324,
+0x51e0,0x810a,0x5df1,0x84df,0x6280,0x5180,0x5b63,0x4f0e,
+0x796d,0x5242,0x60b8,0x6d4e,0x5bc4,0x5bc2,0x8ba1,0x8bb0,
+0x65e2,0x5fcc,0x9645,0x5993,0x7ee7,0x7eaa,0x5609,0x67b7,
+0x5939,0x4f73,0x5bb6,0x52a0,0x835a,0x988a,0x8d3e,0x7532,
+0x94be,0x5047,0x7a3c,0x4ef7,0x67b6,0x9a7e,0x5ac1,0x6b7c,
+0x76d1,0x575a,0x5c16,0x7b3a,0x95f4,0x714e,0x517c,0x80a9,
+0x8270,0x5978,0x7f04,0x8327,0x68c0,0x67ec,0x78b1,0x7877,
+0x62e3,0x6361,0x7b80,0x4fed,0x526a,0x51cf,0x8350,0x69db,
+0x9274,0x8df5,0x8d31,0x89c1,0x952e,0x7bad,0x4ef6, -1,
+ -1, -1, -1, -1, -1,0x5065,0x8230,0x5251,
+0x996f,0x6e10,0x6e85,0x6da7,0x5efa,0x50f5,0x59dc,0x5c06,
+0x6d46,0x6c5f,0x7586,0x848b,0x6868,0x5956,0x8bb2,0x5320,
+0x9171,0x964d,0x8549,0x6912,0x7901,0x7126,0x80f6,0x4ea4,
+0x90ca,0x6d47,0x9a84,0x5a07,0x56bc,0x6405,0x94f0,0x77eb,
+0x4fa5,0x811a,0x72e1,0x89d2,0x997a,0x7f34,0x7ede,0x527f,
+0x6559,0x9175,0x8f7f,0x8f83,0x53eb,0x7a96,0x63ed,0x63a5,
+0x7686,0x79f8,0x8857,0x9636,0x622a,0x52ab,0x8282,0x6854,
+0x6770,0x6377,0x776b,0x7aed,0x6d01,0x7ed3,0x89e3,0x59d0,
+0x6212,0x85c9,0x82a5,0x754c,0x501f,0x4ecb,0x75a5,0x8beb,
+0x5c4a,0x5dfe,0x7b4b,0x65a4,0x91d1,0x4eca,0x6d25,0x895f,
+0x7d27,0x9526,0x4ec5,0x8c28,0x8fdb,0x9773,0x664b,0x7981,
+0x8fd1,0x70ec,0x6d78, -1, -1, -1, -1, -1,
+ -1,0x5c3d,0x52b2,0x8346,0x5162,0x830e,0x775b,0x6676,
+0x9cb8,0x4eac,0x60ca,0x7cbe,0x7cb3,0x7ecf,0x4e95,0x8b66,
+0x666f,0x9888,0x9759,0x5883,0x656c,0x955c,0x5f84,0x75c9,
+0x9756,0x7adf,0x7ade,0x51c0,0x70af,0x7a98,0x63ea,0x7a76,
+0x7ea0,0x7396,0x97ed,0x4e45,0x7078,0x4e5d,0x9152,0x53a9,
+0x6551,0x65e7,0x81fc,0x8205,0x548e,0x5c31,0x759a,0x97a0,
+0x62d8,0x72d9,0x75bd,0x5c45,0x9a79,0x83ca,0x5c40,0x5480,
+0x77e9,0x4e3e,0x6cae,0x805a,0x62d2,0x636e,0x5de8,0x5177,
+0x8ddd,0x8e1e,0x952f,0x4ff1,0x53e5,0x60e7,0x70ac,0x5267,
+0x6350,0x9e43,0x5a1f,0x5026,0x7737,0x5377,0x7ee2,0x6485,
+0x652b,0x6289,0x6398,0x5014,0x7235,0x89c9,0x51b3,0x8bc0,
+0x7edd,0x5747,0x83cc,0x94a7,0x519b,0x541b,0x5cfb, -1,
+ -1, -1, -1, -1, -1,0x4fca,0x7ae3,0x6d5a,
+0x90e1,0x9a8f,0x5580,0x5496,0x5361,0x54af,0x5f00,0x63e9,
+0x6977,0x51ef,0x6168,0x520a,0x582a,0x52d8,0x574e,0x780d,
+0x770b,0x5eb7,0x6177,0x7ce0,0x625b,0x6297,0x4ea2,0x7095,
+0x8003,0x62f7,0x70e4,0x9760,0x5777,0x82db,0x67ef,0x68f5,
+0x78d5,0x9897,0x79d1,0x58f3,0x54b3,0x53ef,0x6e34,0x514b,
+0x523b,0x5ba2,0x8bfe,0x80af,0x5543,0x57a6,0x6073,0x5751,
+0x542d,0x7a7a,0x6050,0x5b54,0x63a7,0x62a0,0x53e3,0x6263,
+0x5bc7,0x67af,0x54ed,0x7a9f,0x82e6,0x9177,0x5e93,0x88e4,
+0x5938,0x57ae,0x630e,0x8de8,0x80ef,0x5757,0x7b77,0x4fa9,
+0x5feb,0x5bbd,0x6b3e,0x5321,0x7b50,0x72c2,0x6846,0x77ff,
+0x7736,0x65f7,0x51b5,0x4e8f,0x76d4,0x5cbf,0x7aa5,0x8475,
+0x594e,0x9b41,0x5080, -1, -1, -1, -1, -1,
+ -1,0x9988,0x6127,0x6e83,0x5764,0x6606,0x6346,0x56f0,
+0x62ec,0x6269,0x5ed3,0x9614,0x5783,0x62c9,0x5587,0x8721,
+0x814a,0x8fa3,0x5566,0x83b1,0x6765,0x8d56,0x84dd,0x5a6a,
+0x680f,0x62e6,0x7bee,0x9611,0x5170,0x6f9c,0x8c30,0x63fd,
+0x89c8,0x61d2,0x7f06,0x70c2,0x6ee5,0x7405,0x6994,0x72fc,
+0x5eca,0x90ce,0x6717,0x6d6a,0x635e,0x52b3,0x7262,0x8001,
+0x4f6c,0x59e5,0x916a,0x70d9,0x6d9d,0x52d2,0x4e50,0x96f7,
+0x956d,0x857e,0x78ca,0x7d2f,0x5121,0x5792,0x64c2,0x808b,
+0x7c7b,0x6cea,0x68f1,0x695e,0x51b7,0x5398,0x68a8,0x7281,
+0x9ece,0x7bf1,0x72f8,0x79bb,0x6f13,0x7406,0x674e,0x91cc,
+0x9ca4,0x793c,0x8389,0x8354,0x540f,0x6817,0x4e3d,0x5389,
+0x52b1,0x783e,0x5386,0x5229,0x5088,0x4f8b,0x4fd0, -1,
+ -1, -1, -1, -1, -1,0x75e2,0x7acb,0x7c92,
+0x6ca5,0x96b6,0x529b,0x7483,0x54e9,0x4fe9,0x8054,0x83b2,
+0x8fde,0x9570,0x5ec9,0x601c,0x6d9f,0x5e18,0x655b,0x8138,
+0x94fe,0x604b,0x70bc,0x7ec3,0x7cae,0x51c9,0x6881,0x7cb1,
+0x826f,0x4e24,0x8f86,0x91cf,0x667e,0x4eae,0x8c05,0x64a9,
+0x804a,0x50da,0x7597,0x71ce,0x5be5,0x8fbd,0x6f66,0x4e86,
+0x6482,0x9563,0x5ed6,0x6599,0x5217,0x88c2,0x70c8,0x52a3,
+0x730e,0x7433,0x6797,0x78f7,0x9716,0x4e34,0x90bb,0x9cde,
+0x6dcb,0x51db,0x8d41,0x541d,0x62ce,0x73b2,0x83f1,0x96f6,
+0x9f84,0x94c3,0x4f36,0x7f9a,0x51cc,0x7075,0x9675,0x5cad,
+0x9886,0x53e6,0x4ee4,0x6e9c,0x7409,0x69b4,0x786b,0x998f,
+0x7559,0x5218,0x7624,0x6d41,0x67f3,0x516d,0x9f99,0x804b,
+0x5499,0x7b3c,0x7abf, -1, -1, -1, -1, -1,
+ -1,0x9686,0x5784,0x62e2,0x9647,0x697c,0x5a04,0x6402,
+0x7bd3,0x6f0f,0x964b,0x82a6,0x5362,0x9885,0x5e90,0x7089,
+0x63b3,0x5364,0x864f,0x9c81,0x9e93,0x788c,0x9732,0x8def,
+0x8d42,0x9e7f,0x6f5e,0x7984,0x5f55,0x9646,0x622e,0x9a74,
+0x5415,0x94dd,0x4fa3,0x65c5,0x5c65,0x5c61,0x7f15,0x8651,
+0x6c2f,0x5f8b,0x7387,0x6ee4,0x7eff,0x5ce6,0x631b,0x5b6a,
+0x6ee6,0x5375,0x4e71,0x63a0,0x7565,0x62a1,0x8f6e,0x4f26,
+0x4ed1,0x6ca6,0x7eb6,0x8bba,0x841d,0x87ba,0x7f57,0x903b,
+0x9523,0x7ba9,0x9aa1,0x88f8,0x843d,0x6d1b,0x9a86,0x7edc,
+0x5988,0x9ebb,0x739b,0x7801,0x8682,0x9a6c,0x9a82,0x561b,
+0x5417,0x57cb,0x4e70,0x9ea6,0x5356,0x8fc8,0x8109,0x7792,
+0x9992,0x86ee,0x6ee1,0x8513,0x66fc,0x6162,0x6f2b, -1,
+ -1, -1, -1, -1, -1,0x8c29,0x8292,0x832b,
+0x76f2,0x6c13,0x5fd9,0x83bd,0x732b,0x8305,0x951a,0x6bdb,
+0x77db,0x94c6,0x536f,0x8302,0x5192,0x5e3d,0x8c8c,0x8d38,
+0x4e48,0x73ab,0x679a,0x6885,0x9176,0x9709,0x7164,0x6ca1,
+0x7709,0x5a92,0x9541,0x6bcf,0x7f8e,0x6627,0x5bd0,0x59b9,
+0x5a9a,0x95e8,0x95f7,0x4eec,0x840c,0x8499,0x6aac,0x76df,
+0x9530,0x731b,0x68a6,0x5b5f,0x772f,0x919a,0x9761,0x7cdc,
+0x8ff7,0x8c1c,0x5f25,0x7c73,0x79d8,0x89c5,0x6ccc,0x871c,
+0x5bc6,0x5e42,0x68c9,0x7720,0x7ef5,0x5195,0x514d,0x52c9,
+0x5a29,0x7f05,0x9762,0x82d7,0x63cf,0x7784,0x85d0,0x79d2,
+0x6e3a,0x5e99,0x5999,0x8511,0x706d,0x6c11,0x62bf,0x76bf,
+0x654f,0x60af,0x95fd,0x660e,0x879f,0x9e23,0x94ed,0x540d,
+0x547d,0x8c2c,0x6478, -1, -1, -1, -1, -1,
+ -1,0x6479,0x8611,0x6a21,0x819c,0x78e8,0x6469,0x9b54,
+0x62b9,0x672b,0x83ab,0x58a8,0x9ed8,0x6cab,0x6f20,0x5bde,
+0x964c,0x8c0b,0x725f,0x67d0,0x62c7,0x7261,0x4ea9,0x59c6,
+0x6bcd,0x5893,0x66ae,0x5e55,0x52df,0x6155,0x6728,0x76ee,
+0x7766,0x7267,0x7a46,0x62ff,0x54ea,0x5450,0x94a0,0x90a3,
+0x5a1c,0x7eb3,0x6c16,0x4e43,0x5976,0x8010,0x5948,0x5357,
+0x7537,0x96be,0x56ca,0x6320,0x8111,0x607c,0x95f9,0x6dd6,
+0x5462,0x9981,0x5185,0x5ae9,0x80fd,0x59ae,0x9713,0x502a,
+0x6ce5,0x5c3c,0x62df,0x4f60,0x533f,0x817b,0x9006,0x6eba,
+0x852b,0x62c8,0x5e74,0x78be,0x64b5,0x637b,0x5ff5,0x5a18,
+0x917f,0x9e1f,0x5c3f,0x634f,0x8042,0x5b7d,0x556e,0x954a,
+0x954d,0x6d85,0x60a8,0x67e0,0x72de,0x51dd,0x5b81, -1,
+ -1, -1, -1, -1, -1,0x62e7,0x6cde,0x725b,
+0x626d,0x94ae,0x7ebd,0x8113,0x6d53,0x519c,0x5f04,0x5974,
+0x52aa,0x6012,0x5973,0x6696,0x8650,0x759f,0x632a,0x61e6,
+0x7cef,0x8bfa,0x54e6,0x6b27,0x9e25,0x6bb4,0x85d5,0x5455,
+0x5076,0x6ca4,0x556a,0x8db4,0x722c,0x5e15,0x6015,0x7436,
+0x62cd,0x6392,0x724c,0x5f98,0x6e43,0x6d3e,0x6500,0x6f58,
+0x76d8,0x78d0,0x76fc,0x7554,0x5224,0x53db,0x4e53,0x5e9e,
+0x65c1,0x802a,0x80d6,0x629b,0x5486,0x5228,0x70ae,0x888d,
+0x8dd1,0x6ce1,0x5478,0x80da,0x57f9,0x88f4,0x8d54,0x966a,
+0x914d,0x4f69,0x6c9b,0x55b7,0x76c6,0x7830,0x62a8,0x70f9,
+0x6f8e,0x5f6d,0x84ec,0x68da,0x787c,0x7bf7,0x81a8,0x670b,
+0x9e4f,0x6367,0x78b0,0x576f,0x7812,0x9739,0x6279,0x62ab,
+0x5288,0x7435,0x6bd7, -1, -1, -1, -1, -1,
+ -1,0x5564,0x813e,0x75b2,0x76ae,0x5339,0x75de,0x50fb,
+0x5c41,0x8b6c,0x7bc7,0x504f,0x7247,0x9a97,0x98d8,0x6f02,
+0x74e2,0x7968,0x6487,0x77a5,0x62fc,0x9891,0x8d2b,0x54c1,
+0x8058,0x4e52,0x576a,0x82f9,0x840d,0x5e73,0x51ed,0x74f6,
+0x8bc4,0x5c4f,0x5761,0x6cfc,0x9887,0x5a46,0x7834,0x9b44,
+0x8feb,0x7c95,0x5256,0x6251,0x94fa,0x4ec6,0x8386,0x8461,
+0x83e9,0x84b2,0x57d4,0x6734,0x5703,0x666e,0x6d66,0x8c31,
+0x66dd,0x7011,0x671f,0x6b3a,0x6816,0x621a,0x59bb,0x4e03,
+0x51c4,0x6f06,0x67d2,0x6c8f,0x5176,0x68cb,0x5947,0x6b67,
+0x7566,0x5d0e,0x8110,0x9f50,0x65d7,0x7948,0x7941,0x9a91,
+0x8d77,0x5c82,0x4e5e,0x4f01,0x542f,0x5951,0x780c,0x5668,
+0x6c14,0x8fc4,0x5f03,0x6c7d,0x6ce3,0x8bab,0x6390, -1,
+ -1, -1, -1, -1, -1,0x6070,0x6d3d,0x7275,
+0x6266,0x948e,0x94c5,0x5343,0x8fc1,0x7b7e,0x4edf,0x8c26,
+0x4e7e,0x9ed4,0x94b1,0x94b3,0x524d,0x6f5c,0x9063,0x6d45,
+0x8c34,0x5811,0x5d4c,0x6b20,0x6b49,0x67aa,0x545b,0x8154,
+0x7f8c,0x5899,0x8537,0x5f3a,0x62a2,0x6a47,0x9539,0x6572,
+0x6084,0x6865,0x77a7,0x4e54,0x4fa8,0x5de7,0x9798,0x64ac,
+0x7fd8,0x5ced,0x4fcf,0x7a8d,0x5207,0x8304,0x4e14,0x602f,
+0x7a83,0x94a6,0x4fb5,0x4eb2,0x79e6,0x7434,0x52e4,0x82b9,
+0x64d2,0x79bd,0x5bdd,0x6c81,0x9752,0x8f7b,0x6c22,0x503e,
+0x537f,0x6e05,0x64ce,0x6674,0x6c30,0x60c5,0x9877,0x8bf7,
+0x5e86,0x743c,0x7a77,0x79cb,0x4e18,0x90b1,0x7403,0x6c42,
+0x56da,0x914b,0x6cc5,0x8d8b,0x533a,0x86c6,0x66f2,0x8eaf,
+0x5c48,0x9a71,0x6e20, -1, -1, -1, -1, -1,
+ -1,0x53d6,0x5a36,0x9f8b,0x8da3,0x53bb,0x5708,0x98a7,
+0x6743,0x919b,0x6cc9,0x5168,0x75ca,0x62f3,0x72ac,0x5238,
+0x529d,0x7f3a,0x7094,0x7638,0x5374,0x9e4a,0x69b7,0x786e,
+0x96c0,0x88d9,0x7fa4,0x7136,0x71c3,0x5189,0x67d3,0x74e4,
+0x58e4,0x6518,0x56b7,0x8ba9,0x9976,0x6270,0x7ed5,0x60f9,
+0x70ed,0x58ec,0x4ec1,0x4eba,0x5fcd,0x97e7,0x4efb,0x8ba4,
+0x5203,0x598a,0x7eab,0x6254,0x4ecd,0x65e5,0x620e,0x8338,
+0x84c9,0x8363,0x878d,0x7194,0x6eb6,0x5bb9,0x7ed2,0x5197,
+0x63c9,0x67d4,0x8089,0x8339,0x8815,0x5112,0x5b7a,0x5982,
+0x8fb1,0x4e73,0x6c5d,0x5165,0x8925,0x8f6f,0x962e,0x854a,
+0x745e,0x9510,0x95f0,0x6da6,0x82e5,0x5f31,0x6492,0x6d12,
+0x8428,0x816e,0x9cc3,0x585e,0x8d5b,0x4e09,0x53c1, -1,
+ -1, -1, -1, -1, -1,0x4f1e,0x6563,0x6851,
+0x55d3,0x4e27,0x6414,0x9a9a,0x626b,0x5ac2,0x745f,0x8272,
+0x6da9,0x68ee,0x50e7,0x838e,0x7802,0x6740,0x5239,0x6c99,
+0x7eb1,0x50bb,0x5565,0x715e,0x7b5b,0x6652,0x73ca,0x82eb,
+0x6749,0x5c71,0x5220,0x717d,0x886b,0x95ea,0x9655,0x64c5,
+0x8d61,0x81b3,0x5584,0x6c55,0x6247,0x7f2e,0x5892,0x4f24,
+0x5546,0x8d4f,0x664c,0x4e0a,0x5c1a,0x88f3,0x68a2,0x634e,
+0x7a0d,0x70e7,0x828d,0x52fa,0x97f6,0x5c11,0x54e8,0x90b5,
+0x7ecd,0x5962,0x8d4a,0x86c7,0x820c,0x820d,0x8d66,0x6444,
+0x5c04,0x6151,0x6d89,0x793e,0x8bbe,0x7837,0x7533,0x547b,
+0x4f38,0x8eab,0x6df1,0x5a20,0x7ec5,0x795e,0x6c88,0x5ba1,
+0x5a76,0x751a,0x80be,0x614e,0x6e17,0x58f0,0x751f,0x7525,
+0x7272,0x5347,0x7ef3, -1, -1, -1, -1, -1,
+ -1,0x7701,0x76db,0x5269,0x80dc,0x5723,0x5e08,0x5931,
+0x72ee,0x65bd,0x6e7f,0x8bd7,0x5c38,0x8671,0x5341,0x77f3,
+0x62fe,0x65f6,0x4ec0,0x98df,0x8680,0x5b9e,0x8bc6,0x53f2,
+0x77e2,0x4f7f,0x5c4e,0x9a76,0x59cb,0x5f0f,0x793a,0x58eb,
+0x4e16,0x67ff,0x4e8b,0x62ed,0x8a93,0x901d,0x52bf,0x662f,
+0x55dc,0x566c,0x9002,0x4ed5,0x4f8d,0x91ca,0x9970,0x6c0f,
+0x5e02,0x6043,0x5ba4,0x89c6,0x8bd5,0x6536,0x624b,0x9996,
+0x5b88,0x5bff,0x6388,0x552e,0x53d7,0x7626,0x517d,0x852c,
+0x67a2,0x68b3,0x6b8a,0x6292,0x8f93,0x53d4,0x8212,0x6dd1,
+0x758f,0x4e66,0x8d4e,0x5b70,0x719f,0x85af,0x6691,0x66d9,
+0x7f72,0x8700,0x9ecd,0x9f20,0x5c5e,0x672f,0x8ff0,0x6811,
+0x675f,0x620d,0x7ad6,0x5885,0x5eb6,0x6570,0x6f31, -1,
+ -1, -1, -1, -1, -1,0x6055,0x5237,0x800d,
+0x6454,0x8870,0x7529,0x5e05,0x6813,0x62f4,0x971c,0x53cc,
+0x723d,0x8c01,0x6c34,0x7761,0x7a0e,0x542e,0x77ac,0x987a,
+0x821c,0x8bf4,0x7855,0x6714,0x70c1,0x65af,0x6495,0x5636,
+0x601d,0x79c1,0x53f8,0x4e1d,0x6b7b,0x8086,0x5bfa,0x55e3,
+0x56db,0x4f3a,0x4f3c,0x9972,0x5df3,0x677e,0x8038,0x6002,
+0x9882,0x9001,0x5b8b,0x8bbc,0x8bf5,0x641c,0x8258,0x64de,
+0x55fd,0x82cf,0x9165,0x4fd7,0x7d20,0x901f,0x7c9f,0x50f3,
+0x5851,0x6eaf,0x5bbf,0x8bc9,0x8083,0x9178,0x849c,0x7b97,
+0x867d,0x968b,0x968f,0x7ee5,0x9ad3,0x788e,0x5c81,0x7a57,
+0x9042,0x96a7,0x795f,0x5b59,0x635f,0x7b0b,0x84d1,0x68ad,
+0x5506,0x7f29,0x7410,0x7d22,0x9501,0x6240,0x584c,0x4ed6,
+0x5b83,0x5979,0x5854, -1, -1, -1, -1, -1,
+ -1,0x736d,0x631e,0x8e4b,0x8e0f,0x80ce,0x82d4,0x62ac,
+0x53f0,0x6cf0,0x915e,0x592a,0x6001,0x6c70,0x574d,0x644a,
+0x8d2a,0x762b,0x6ee9,0x575b,0x6a80,0x75f0,0x6f6d,0x8c2d,
+0x8c08,0x5766,0x6bef,0x8892,0x78b3,0x63a2,0x53f9,0x70ad,
+0x6c64,0x5858,0x642a,0x5802,0x68e0,0x819b,0x5510,0x7cd6,
+0x5018,0x8eba,0x6dcc,0x8d9f,0x70eb,0x638f,0x6d9b,0x6ed4,
+0x7ee6,0x8404,0x6843,0x9003,0x6dd8,0x9676,0x8ba8,0x5957,
+0x7279,0x85e4,0x817e,0x75bc,0x8a8a,0x68af,0x5254,0x8e22,
+0x9511,0x63d0,0x9898,0x8e44,0x557c,0x4f53,0x66ff,0x568f,
+0x60d5,0x6d95,0x5243,0x5c49,0x5929,0x6dfb,0x586b,0x7530,
+0x751c,0x606c,0x8214,0x8146,0x6311,0x6761,0x8fe2,0x773a,
+0x8df3,0x8d34,0x94c1,0x5e16,0x5385,0x542c,0x70c3, -1,
+ -1, -1, -1, -1, -1,0x6c40,0x5ef7,0x505c,
+0x4ead,0x5ead,0x633a,0x8247,0x901a,0x6850,0x916e,0x77b3,
+0x540c,0x94dc,0x5f64,0x7ae5,0x6876,0x6345,0x7b52,0x7edf,
+0x75db,0x5077,0x6295,0x5934,0x900f,0x51f8,0x79c3,0x7a81,
+0x56fe,0x5f92,0x9014,0x6d82,0x5c60,0x571f,0x5410,0x5154,
+0x6e4d,0x56e2,0x63a8,0x9893,0x817f,0x8715,0x892a,0x9000,
+0x541e,0x5c6f,0x81c0,0x62d6,0x6258,0x8131,0x9e35,0x9640,
+0x9a6e,0x9a7c,0x692d,0x59a5,0x62d3,0x553e,0x6316,0x54c7,
+0x86d9,0x6d3c,0x5a03,0x74e6,0x889c,0x6b6a,0x5916,0x8c4c,
+0x5f2f,0x6e7e,0x73a9,0x987d,0x4e38,0x70f7,0x5b8c,0x7897,
+0x633d,0x665a,0x7696,0x60cb,0x5b9b,0x5a49,0x4e07,0x8155,
+0x6c6a,0x738b,0x4ea1,0x6789,0x7f51,0x5f80,0x65fa,0x671b,
+0x5fd8,0x5984,0x5a01, -1, -1, -1, -1, -1,
+ -1,0x5dcd,0x5fae,0x5371,0x97e6,0x8fdd,0x6845,0x56f4,
+0x552f,0x60df,0x4e3a,0x6f4d,0x7ef4,0x82c7,0x840e,0x59d4,
+0x4f1f,0x4f2a,0x5c3e,0x7eac,0x672a,0x851a,0x5473,0x754f,
+0x80c3,0x5582,0x9b4f,0x4f4d,0x6e2d,0x8c13,0x5c09,0x6170,
+0x536b,0x761f,0x6e29,0x868a,0x6587,0x95fb,0x7eb9,0x543b,
+0x7a33,0x7d0a,0x95ee,0x55e1,0x7fc1,0x74ee,0x631d,0x8717,
+0x6da1,0x7a9d,0x6211,0x65a1,0x5367,0x63e1,0x6c83,0x5deb,
+0x545c,0x94a8,0x4e4c,0x6c61,0x8bec,0x5c4b,0x65e0,0x829c,
+0x68a7,0x543e,0x5434,0x6bcb,0x6b66,0x4e94,0x6342,0x5348,
+0x821e,0x4f0d,0x4fae,0x575e,0x620a,0x96fe,0x6664,0x7269,
+0x52ff,0x52a1,0x609f,0x8bef,0x6614,0x7199,0x6790,0x897f,
+0x7852,0x77fd,0x6670,0x563b,0x5438,0x9521,0x727a, -1,
+ -1, -1, -1, -1, -1,0x7a00,0x606f,0x5e0c,
+0x6089,0x819d,0x5915,0x60dc,0x7184,0x70ef,0x6eaa,0x6c50,
+0x7280,0x6a84,0x88ad,0x5e2d,0x4e60,0x5ab3,0x559c,0x94e3,
+0x6d17,0x7cfb,0x9699,0x620f,0x7ec6,0x778e,0x867e,0x5323,
+0x971e,0x8f96,0x6687,0x5ce1,0x4fa0,0x72ed,0x4e0b,0x53a6,
+0x590f,0x5413,0x6380,0x9528,0x5148,0x4ed9,0x9c9c,0x7ea4,
+0x54b8,0x8d24,0x8854,0x8237,0x95f2,0x6d8e,0x5f26,0x5acc,
+0x663e,0x9669,0x73b0,0x732e,0x53bf,0x817a,0x9985,0x7fa1,
+0x5baa,0x9677,0x9650,0x7ebf,0x76f8,0x53a2,0x9576,0x9999,
+0x7bb1,0x8944,0x6e58,0x4e61,0x7fd4,0x7965,0x8be6,0x60f3,
+0x54cd,0x4eab,0x9879,0x5df7,0x6a61,0x50cf,0x5411,0x8c61,
+0x8427,0x785d,0x9704,0x524a,0x54ee,0x56a3,0x9500,0x6d88,
+0x5bb5,0x6dc6,0x6653, -1, -1, -1, -1, -1,
+ -1,0x5c0f,0x5b5d,0x6821,0x8096,0x5578,0x7b11,0x6548,
+0x6954,0x4e9b,0x6b47,0x874e,0x978b,0x534f,0x631f,0x643a,
+0x90aa,0x659c,0x80c1,0x8c10,0x5199,0x68b0,0x5378,0x87f9,
+0x61c8,0x6cc4,0x6cfb,0x8c22,0x5c51,0x85aa,0x82af,0x950c,
+0x6b23,0x8f9b,0x65b0,0x5ffb,0x5fc3,0x4fe1,0x8845,0x661f,
+0x8165,0x7329,0x60fa,0x5174,0x5211,0x578b,0x5f62,0x90a2,
+0x884c,0x9192,0x5e78,0x674f,0x6027,0x59d3,0x5144,0x51f6,
+0x80f8,0x5308,0x6c79,0x96c4,0x718a,0x4f11,0x4fee,0x7f9e,
+0x673d,0x55c5,0x9508,0x79c0,0x8896,0x7ee3,0x589f,0x620c,
+0x9700,0x865a,0x5618,0x987b,0x5f90,0x8bb8,0x84c4,0x9157,
+0x53d9,0x65ed,0x5e8f,0x755c,0x6064,0x7d6e,0x5a7f,0x7eea,
+0x7eed,0x8f69,0x55a7,0x5ba3,0x60ac,0x65cb,0x7384, -1,
+ -1, -1, -1, -1, -1,0x9009,0x7663,0x7729,
+0x7eda,0x9774,0x859b,0x5b66,0x7a74,0x96ea,0x8840,0x52cb,
+0x718f,0x5faa,0x65ec,0x8be2,0x5bfb,0x9a6f,0x5de1,0x6b89,
+0x6c5b,0x8bad,0x8baf,0x900a,0x8fc5,0x538b,0x62bc,0x9e26,
+0x9e2d,0x5440,0x4e2b,0x82bd,0x7259,0x869c,0x5d16,0x8859,
+0x6daf,0x96c5,0x54d1,0x4e9a,0x8bb6,0x7109,0x54bd,0x9609,
+0x70df,0x6df9,0x76d0,0x4e25,0x7814,0x8712,0x5ca9,0x5ef6,
+0x8a00,0x989c,0x960e,0x708e,0x6cbf,0x5944,0x63a9,0x773c,
+0x884d,0x6f14,0x8273,0x5830,0x71d5,0x538c,0x781a,0x96c1,
+0x5501,0x5f66,0x7130,0x5bb4,0x8c1a,0x9a8c,0x6b83,0x592e,
+0x9e2f,0x79e7,0x6768,0x626c,0x4f6f,0x75a1,0x7f8a,0x6d0b,
+0x9633,0x6c27,0x4ef0,0x75d2,0x517b,0x6837,0x6f3e,0x9080,
+0x8170,0x5996,0x7476, -1, -1, -1, -1, -1,
+ -1,0x6447,0x5c27,0x9065,0x7a91,0x8c23,0x59da,0x54ac,
+0x8200,0x836f,0x8981,0x8000,0x6930,0x564e,0x8036,0x7237,
+0x91ce,0x51b6,0x4e5f,0x9875,0x6396,0x4e1a,0x53f6,0x66f3,
+0x814b,0x591c,0x6db2,0x4e00,0x58f9,0x533b,0x63d6,0x94f1,
+0x4f9d,0x4f0a,0x8863,0x9890,0x5937,0x9057,0x79fb,0x4eea,
+0x80f0,0x7591,0x6c82,0x5b9c,0x59e8,0x5f5d,0x6905,0x8681,
+0x501a,0x5df2,0x4e59,0x77e3,0x4ee5,0x827a,0x6291,0x6613,
+0x9091,0x5c79,0x4ebf,0x5f79,0x81c6,0x9038,0x8084,0x75ab,
+0x4ea6,0x88d4,0x610f,0x6bc5,0x5fc6,0x4e49,0x76ca,0x6ea2,
+0x8be3,0x8bae,0x8c0a,0x8bd1,0x5f02,0x7ffc,0x7fcc,0x7ece,
+0x8335,0x836b,0x56e0,0x6bb7,0x97f3,0x9634,0x59fb,0x541f,
+0x94f6,0x6deb,0x5bc5,0x996e,0x5c39,0x5f15,0x9690, -1,
+ -1, -1, -1, -1, -1,0x5370,0x82f1,0x6a31,
+0x5a74,0x9e70,0x5e94,0x7f28,0x83b9,0x8424,0x8425,0x8367,
+0x8747,0x8fce,0x8d62,0x76c8,0x5f71,0x9896,0x786c,0x6620,
+0x54df,0x62e5,0x4f63,0x81c3,0x75c8,0x5eb8,0x96cd,0x8e0a,
+0x86f9,0x548f,0x6cf3,0x6d8c,0x6c38,0x607f,0x52c7,0x7528,
+0x5e7d,0x4f18,0x60a0,0x5fe7,0x5c24,0x7531,0x90ae,0x94c0,
+0x72b9,0x6cb9,0x6e38,0x9149,0x6709,0x53cb,0x53f3,0x4f51,
+0x91c9,0x8bf1,0x53c8,0x5e7c,0x8fc2,0x6de4,0x4e8e,0x76c2,
+0x6986,0x865e,0x611a,0x8206,0x4f59,0x4fde,0x903e,0x9c7c,
+0x6109,0x6e1d,0x6e14,0x9685,0x4e88,0x5a31,0x96e8,0x4e0e,
+0x5c7f,0x79b9,0x5b87,0x8bed,0x7fbd,0x7389,0x57df,0x828b,
+0x90c1,0x5401,0x9047,0x55bb,0x5cea,0x5fa1,0x6108,0x6b32,
+0x72f1,0x80b2,0x8a89, -1, -1, -1, -1, -1,
+ -1,0x6d74,0x5bd3,0x88d5,0x9884,0x8c6b,0x9a6d,0x9e33,
+0x6e0a,0x51a4,0x5143,0x57a3,0x8881,0x539f,0x63f4,0x8f95,
+0x56ed,0x5458,0x5706,0x733f,0x6e90,0x7f18,0x8fdc,0x82d1,
+0x613f,0x6028,0x9662,0x66f0,0x7ea6,0x8d8a,0x8dc3,0x94a5,
+0x5cb3,0x7ca4,0x6708,0x60a6,0x9605,0x8018,0x4e91,0x90e7,
+0x5300,0x9668,0x5141,0x8fd0,0x8574,0x915d,0x6655,0x97f5,
+0x5b55,0x531d,0x7838,0x6742,0x683d,0x54c9,0x707e,0x5bb0,
+0x8f7d,0x518d,0x5728,0x54b1,0x6512,0x6682,0x8d5e,0x8d43,
+0x810f,0x846c,0x906d,0x7cdf,0x51ff,0x85fb,0x67a3,0x65e9,
+0x6fa1,0x86a4,0x8e81,0x566a,0x9020,0x7682,0x7076,0x71e5,
+0x8d23,0x62e9,0x5219,0x6cfd,0x8d3c,0x600e,0x589e,0x618e,
+0x66fe,0x8d60,0x624e,0x55b3,0x6e23,0x672d,0x8f67, -1,
+ -1, -1, -1, -1, -1,0x94e1,0x95f8,0x7728,
+0x6805,0x69a8,0x548b,0x4e4d,0x70b8,0x8bc8,0x6458,0x658b,
+0x5b85,0x7a84,0x503a,0x5be8,0x77bb,0x6be1,0x8a79,0x7c98,
+0x6cbe,0x76cf,0x65a9,0x8f97,0x5d2d,0x5c55,0x8638,0x6808,
+0x5360,0x6218,0x7ad9,0x6e5b,0x7efd,0x6a1f,0x7ae0,0x5f70,
+0x6f33,0x5f20,0x638c,0x6da8,0x6756,0x4e08,0x5e10,0x8d26,
+0x4ed7,0x80c0,0x7634,0x969c,0x62db,0x662d,0x627e,0x6cbc,
+0x8d75,0x7167,0x7f69,0x5146,0x8087,0x53ec,0x906e,0x6298,
+0x54f2,0x86f0,0x8f99,0x8005,0x9517,0x8517,0x8fd9,0x6d59,
+0x73cd,0x659f,0x771f,0x7504,0x7827,0x81fb,0x8d1e,0x9488,
+0x4fa6,0x6795,0x75b9,0x8bca,0x9707,0x632f,0x9547,0x9635,
+0x84b8,0x6323,0x7741,0x5f81,0x72f0,0x4e89,0x6014,0x6574,
+0x62ef,0x6b63,0x653f, -1, -1, -1, -1, -1,
+ -1,0x5e27,0x75c7,0x90d1,0x8bc1,0x829d,0x679d,0x652f,
+0x5431,0x8718,0x77e5,0x80a2,0x8102,0x6c41,0x4e4b,0x7ec7,
+0x804c,0x76f4,0x690d,0x6b96,0x6267,0x503c,0x4f84,0x5740,
+0x6307,0x6b62,0x8dbe,0x53ea,0x65e8,0x7eb8,0x5fd7,0x631a,
+0x63b7,0x81f3,0x81f4,0x7f6e,0x5e1c,0x5cd9,0x5236,0x667a,
+0x79e9,0x7a1a,0x8d28,0x7099,0x75d4,0x6ede,0x6cbb,0x7a92,
+0x4e2d,0x76c5,0x5fe0,0x949f,0x8877,0x7ec8,0x79cd,0x80bf,
+0x91cd,0x4ef2,0x4f17,0x821f,0x5468,0x5dde,0x6d32,0x8bcc,
+0x7ca5,0x8f74,0x8098,0x5e1a,0x5492,0x76b1,0x5b99,0x663c,
+0x9aa4,0x73e0,0x682a,0x86db,0x6731,0x732a,0x8bf8,0x8bdb,
+0x9010,0x7af9,0x70db,0x716e,0x62c4,0x77a9,0x5631,0x4e3b,
+0x8457,0x67f1,0x52a9,0x86c0,0x8d2e,0x94f8,0x7b51, -1,
+ -1, -1, -1, -1, -1,0x4f4f,0x6ce8,0x795d,
+0x9a7b,0x6293,0x722a,0x62fd,0x4e13,0x7816,0x8f6c,0x64b0,
+0x8d5a,0x7bc6,0x6869,0x5e84,0x88c5,0x5986,0x649e,0x58ee,
+0x72b6,0x690e,0x9525,0x8ffd,0x8d58,0x5760,0x7f00,0x8c06,
+0x51c6,0x6349,0x62d9,0x5353,0x684c,0x7422,0x8301,0x914c,
+0x5544,0x7740,0x707c,0x6d4a,0x5179,0x54a8,0x8d44,0x59ff,
+0x6ecb,0x6dc4,0x5b5c,0x7d2b,0x4ed4,0x7c7d,0x6ed3,0x5b50,
+0x81ea,0x6e0d,0x5b57,0x9b03,0x68d5,0x8e2a,0x5b97,0x7efc,
+0x603b,0x7eb5,0x90b9,0x8d70,0x594f,0x63cd,0x79df,0x8db3,
+0x5352,0x65cf,0x7956,0x8bc5,0x963b,0x7ec4,0x94bb,0x7e82,
+0x5634,0x9189,0x6700,0x7f6a,0x5c0a,0x9075,0x6628,0x5de6,
+0x4f50,0x67de,0x505a,0x4f5c,0x5750,0x5ea7, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x4e8d,0x4e0c,0x5140,0x4e10,0x5eff,0x5345,0x4e15,
+0x4e98,0x4e1e,0x9b32,0x5b6c,0x5669,0x4e28,0x79ba,0x4e3f,
+0x5315,0x4e47,0x592d,0x723b,0x536e,0x6c10,0x56df,0x80e4,
+0x9997,0x6bd3,0x777e,0x9f17,0x4e36,0x4e9f,0x9f10,0x4e5c,
+0x4e69,0x4e93,0x8288,0x5b5b,0x556c,0x560f,0x4ec4,0x538d,
+0x539d,0x53a3,0x53a5,0x53ae,0x9765,0x8d5d,0x531a,0x53f5,
+0x5326,0x532e,0x533e,0x8d5c,0x5366,0x5363,0x5202,0x5208,
+0x520e,0x522d,0x5233,0x523f,0x5240,0x524c,0x525e,0x5261,
+0x525c,0x84af,0x527d,0x5282,0x5281,0x5290,0x5293,0x5182,
+0x7f54,0x4ebb,0x4ec3,0x4ec9,0x4ec2,0x4ee8,0x4ee1,0x4eeb,
+0x4ede,0x4f1b,0x4ef3,0x4f22,0x4f64,0x4ef5,0x4f25,0x4f27,
+0x4f09,0x4f2b,0x4f5e,0x4f67,0x6538,0x4f5a,0x4f5d, -1,
+ -1, -1, -1, -1, -1,0x4f5f,0x4f57,0x4f32,
+0x4f3d,0x4f76,0x4f74,0x4f91,0x4f89,0x4f83,0x4f8f,0x4f7e,
+0x4f7b,0x4faa,0x4f7c,0x4fac,0x4f94,0x4fe6,0x4fe8,0x4fea,
+0x4fc5,0x4fda,0x4fe3,0x4fdc,0x4fd1,0x4fdf,0x4ff8,0x5029,
+0x504c,0x4ff3,0x502c,0x500f,0x502e,0x502d,0x4ffe,0x501c,
+0x500c,0x5025,0x5028,0x507e,0x5043,0x5055,0x5048,0x504e,
+0x506c,0x507b,0x50a5,0x50a7,0x50a9,0x50ba,0x50d6,0x5106,
+0x50ed,0x50ec,0x50e6,0x50ee,0x5107,0x510b,0x4edd,0x6c3d,
+0x4f58,0x4f65,0x4fce,0x9fa0,0x6c46,0x7c74,0x516e,0x5dfd,
+0x9ec9,0x9998,0x5181,0x5914,0x52f9,0x530d,0x8a07,0x5310,
+0x51eb,0x5919,0x5155,0x4ea0,0x5156,0x4eb3,0x886e,0x88a4,
+0x4eb5,0x8114,0x88d2,0x7980,0x5b34,0x8803,0x7fb8,0x51ab,
+0x51b1,0x51bd,0x51bc, -1, -1, -1, -1, -1,
+ -1,0x51c7,0x5196,0x51a2,0x51a5,0x8ba0,0x8ba6,0x8ba7,
+0x8baa,0x8bb4,0x8bb5,0x8bb7,0x8bc2,0x8bc3,0x8bcb,0x8bcf,
+0x8bce,0x8bd2,0x8bd3,0x8bd4,0x8bd6,0x8bd8,0x8bd9,0x8bdc,
+0x8bdf,0x8be0,0x8be4,0x8be8,0x8be9,0x8bee,0x8bf0,0x8bf3,
+0x8bf6,0x8bf9,0x8bfc,0x8bff,0x8c00,0x8c02,0x8c04,0x8c07,
+0x8c0c,0x8c0f,0x8c11,0x8c12,0x8c14,0x8c15,0x8c16,0x8c19,
+0x8c1b,0x8c18,0x8c1d,0x8c1f,0x8c20,0x8c21,0x8c25,0x8c27,
+0x8c2a,0x8c2b,0x8c2e,0x8c2f,0x8c32,0x8c33,0x8c35,0x8c36,
+0x5369,0x537a,0x961d,0x9622,0x9621,0x9631,0x962a,0x963d,
+0x963c,0x9642,0x9649,0x9654,0x965f,0x9667,0x966c,0x9672,
+0x9674,0x9688,0x968d,0x9697,0x96b0,0x9097,0x909b,0x909d,
+0x9099,0x90ac,0x90a1,0x90b4,0x90b3,0x90b6,0x90ba, -1,
+ -1, -1, -1, -1, -1,0x90b8,0x90b0,0x90cf,
+0x90c5,0x90be,0x90d0,0x90c4,0x90c7,0x90d3,0x90e6,0x90e2,
+0x90dc,0x90d7,0x90db,0x90eb,0x90ef,0x90fe,0x9104,0x9122,
+0x911e,0x9123,0x9131,0x912f,0x9139,0x9143,0x9146,0x520d,
+0x5942,0x52a2,0x52ac,0x52ad,0x52be,0x54ff,0x52d0,0x52d6,
+0x52f0,0x53df,0x71ee,0x77cd,0x5ef4,0x51f5,0x51fc,0x9b2f,
+0x53b6,0x5f01,0x755a,0x5def,0x574c,0x57a9,0x57a1,0x587e,
+0x58bc,0x58c5,0x58d1,0x5729,0x572c,0x572a,0x5733,0x5739,
+0x572e,0x572f,0x575c,0x573b,0x5742,0x5769,0x5785,0x576b,
+0x5786,0x577c,0x577b,0x5768,0x576d,0x5776,0x5773,0x57ad,
+0x57a4,0x578c,0x57b2,0x57cf,0x57a7,0x57b4,0x5793,0x57a0,
+0x57d5,0x57d8,0x57da,0x57d9,0x57d2,0x57b8,0x57f4,0x57ef,
+0x57f8,0x57e4,0x57dd, -1, -1, -1, -1, -1,
+ -1,0x580b,0x580d,0x57fd,0x57ed,0x5800,0x581e,0x5819,
+0x5844,0x5820,0x5865,0x586c,0x5881,0x5889,0x589a,0x5880,
+0x99a8,0x9f19,0x61ff,0x8279,0x827d,0x827f,0x828f,0x828a,
+0x82a8,0x8284,0x828e,0x8291,0x8297,0x8299,0x82ab,0x82b8,
+0x82be,0x82b0,0x82c8,0x82ca,0x82e3,0x8298,0x82b7,0x82ae,
+0x82cb,0x82cc,0x82c1,0x82a9,0x82b4,0x82a1,0x82aa,0x829f,
+0x82c4,0x82ce,0x82a4,0x82e1,0x8309,0x82f7,0x82e4,0x830f,
+0x8307,0x82dc,0x82f4,0x82d2,0x82d8,0x830c,0x82fb,0x82d3,
+0x8311,0x831a,0x8306,0x8314,0x8315,0x82e0,0x82d5,0x831c,
+0x8351,0x835b,0x835c,0x8308,0x8392,0x833c,0x8334,0x8331,
+0x839b,0x835e,0x832f,0x834f,0x8347,0x8343,0x835f,0x8340,
+0x8317,0x8360,0x832d,0x833a,0x8333,0x8366,0x8365, -1,
+ -1, -1, -1, -1, -1,0x8368,0x831b,0x8369,
+0x836c,0x836a,0x836d,0x836e,0x83b0,0x8378,0x83b3,0x83b4,
+0x83a0,0x83aa,0x8393,0x839c,0x8385,0x837c,0x83b6,0x83a9,
+0x837d,0x83b8,0x837b,0x8398,0x839e,0x83a8,0x83ba,0x83bc,
+0x83c1,0x8401,0x83e5,0x83d8,0x5807,0x8418,0x840b,0x83dd,
+0x83fd,0x83d6,0x841c,0x8438,0x8411,0x8406,0x83d4,0x83df,
+0x840f,0x8403,0x83f8,0x83f9,0x83ea,0x83c5,0x83c0,0x8426,
+0x83f0,0x83e1,0x845c,0x8451,0x845a,0x8459,0x8473,0x8487,
+0x8488,0x847a,0x8489,0x8478,0x843c,0x8446,0x8469,0x8476,
+0x848c,0x848e,0x8431,0x846d,0x84c1,0x84cd,0x84d0,0x84e6,
+0x84bd,0x84d3,0x84ca,0x84bf,0x84ba,0x84e0,0x84a1,0x84b9,
+0x84b4,0x8497,0x84e5,0x84e3,0x850c,0x750d,0x8538,0x84f0,
+0x8539,0x851f,0x853a, -1, -1, -1, -1, -1,
+ -1,0x8556,0x853b,0x84ff,0x84fc,0x8559,0x8548,0x8568,
+0x8564,0x855e,0x857a,0x77a2,0x8543,0x8572,0x857b,0x85a4,
+0x85a8,0x8587,0x858f,0x8579,0x85ae,0x859c,0x8585,0x85b9,
+0x85b7,0x85b0,0x85d3,0x85c1,0x85dc,0x85ff,0x8627,0x8605,
+0x8629,0x8616,0x863c,0x5efe,0x5f08,0x593c,0x5941,0x8037,
+0x5955,0x595a,0x5958,0x530f,0x5c22,0x5c25,0x5c2c,0x5c34,
+0x624c,0x626a,0x629f,0x62bb,0x62ca,0x62da,0x62d7,0x62ee,
+0x6322,0x62f6,0x6339,0x634b,0x6343,0x63ad,0x63f6,0x6371,
+0x637a,0x638e,0x63b4,0x636d,0x63ac,0x638a,0x6369,0x63ae,
+0x63bc,0x63f2,0x63f8,0x63e0,0x63ff,0x63c4,0x63de,0x63ce,
+0x6452,0x63c6,0x63be,0x6445,0x6441,0x640b,0x641b,0x6420,
+0x640c,0x6426,0x6421,0x645e,0x6484,0x646d,0x6496, -1,
+ -1, -1, -1, -1, -1,0x647a,0x64b7,0x64b8,
+0x6499,0x64ba,0x64c0,0x64d0,0x64d7,0x64e4,0x64e2,0x6509,
+0x6525,0x652e,0x5f0b,0x5fd2,0x7519,0x5f11,0x535f,0x53f1,
+0x53fd,0x53e9,0x53e8,0x53fb,0x5412,0x5416,0x5406,0x544b,
+0x5452,0x5453,0x5454,0x5456,0x5443,0x5421,0x5457,0x5459,
+0x5423,0x5432,0x5482,0x5494,0x5477,0x5471,0x5464,0x549a,
+0x549b,0x5484,0x5476,0x5466,0x549d,0x54d0,0x54ad,0x54c2,
+0x54b4,0x54d2,0x54a7,0x54a6,0x54d3,0x54d4,0x5472,0x54a3,
+0x54d5,0x54bb,0x54bf,0x54cc,0x54d9,0x54da,0x54dc,0x54a9,
+0x54aa,0x54a4,0x54dd,0x54cf,0x54de,0x551b,0x54e7,0x5520,
+0x54fd,0x5514,0x54f3,0x5522,0x5523,0x550f,0x5511,0x5527,
+0x552a,0x5567,0x558f,0x55b5,0x5549,0x556d,0x5541,0x5555,
+0x553f,0x5550,0x553c, -1, -1, -1, -1, -1,
+ -1,0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530,
+0x555c,0x558b,0x55d2,0x5583,0x55b1,0x55b9,0x5588,0x5581,
+0x559f,0x557e,0x55d6,0x5591,0x557b,0x55df,0x55bd,0x55be,
+0x5594,0x5599,0x55ea,0x55f7,0x55c9,0x561f,0x55d1,0x55eb,
+0x55ec,0x55d4,0x55e6,0x55dd,0x55c4,0x55ef,0x55e5,0x55f2,
+0x55f3,0x55cc,0x55cd,0x55e8,0x55f5,0x55e4,0x8f94,0x561e,
+0x5608,0x560c,0x5601,0x5624,0x5623,0x55fe,0x5600,0x5627,
+0x562d,0x5658,0x5639,0x5657,0x562c,0x564d,0x5662,0x5659,
+0x565c,0x564c,0x5654,0x5686,0x5664,0x5671,0x566b,0x567b,
+0x567c,0x5685,0x5693,0x56af,0x56d4,0x56d7,0x56dd,0x56e1,
+0x56f5,0x56eb,0x56f9,0x56ff,0x5704,0x570a,0x5709,0x571c,
+0x5e0f,0x5e19,0x5e14,0x5e11,0x5e31,0x5e3b,0x5e3c, -1,
+ -1, -1, -1, -1, -1,0x5e37,0x5e44,0x5e54,
+0x5e5b,0x5e5e,0x5e61,0x5c8c,0x5c7a,0x5c8d,0x5c90,0x5c96,
+0x5c88,0x5c98,0x5c99,0x5c91,0x5c9a,0x5c9c,0x5cb5,0x5ca2,
+0x5cbd,0x5cac,0x5cab,0x5cb1,0x5ca3,0x5cc1,0x5cb7,0x5cc4,
+0x5cd2,0x5ce4,0x5ccb,0x5ce5,0x5d02,0x5d03,0x5d27,0x5d26,
+0x5d2e,0x5d24,0x5d1e,0x5d06,0x5d1b,0x5d58,0x5d3e,0x5d34,
+0x5d3d,0x5d6c,0x5d5b,0x5d6f,0x5d5d,0x5d6b,0x5d4b,0x5d4a,
+0x5d69,0x5d74,0x5d82,0x5d99,0x5d9d,0x8c73,0x5db7,0x5dc5,
+0x5f73,0x5f77,0x5f82,0x5f87,0x5f89,0x5f8c,0x5f95,0x5f99,
+0x5f9c,0x5fa8,0x5fad,0x5fb5,0x5fbc,0x8862,0x5f61,0x72ad,
+0x72b0,0x72b4,0x72b7,0x72b8,0x72c3,0x72c1,0x72ce,0x72cd,
+0x72d2,0x72e8,0x72ef,0x72e9,0x72f2,0x72f4,0x72f7,0x7301,
+0x72f3,0x7303,0x72fa, -1, -1, -1, -1, -1,
+ -1,0x72fb,0x7317,0x7313,0x7321,0x730a,0x731e,0x731d,
+0x7315,0x7322,0x7339,0x7325,0x732c,0x7338,0x7331,0x7350,
+0x734d,0x7357,0x7360,0x736c,0x736f,0x737e,0x821b,0x5925,
+0x98e7,0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996a,
+0x996b,0x996c,0x9974,0x9977,0x997d,0x9980,0x9984,0x9987,
+0x998a,0x998d,0x9990,0x9991,0x9993,0x9994,0x9995,0x5e80,
+0x5e91,0x5e8b,0x5e96,0x5ea5,0x5ea0,0x5eb9,0x5eb5,0x5ebe,
+0x5eb3,0x8d53,0x5ed2,0x5ed1,0x5edb,0x5ee8,0x5eea,0x81ba,
+0x5fc4,0x5fc9,0x5fd6,0x5fcf,0x6003,0x5fee,0x6004,0x5fe1,
+0x5fe4,0x5ffe,0x6005,0x6006,0x5fea,0x5fed,0x5ff8,0x6019,
+0x6035,0x6026,0x601b,0x600f,0x600d,0x6029,0x602b,0x600a,
+0x603f,0x6021,0x6078,0x6079,0x607b,0x607a,0x6042, -1,
+ -1, -1, -1, -1, -1,0x606a,0x607d,0x6096,
+0x609a,0x60ad,0x609d,0x6083,0x6092,0x608c,0x609b,0x60ec,
+0x60bb,0x60b1,0x60dd,0x60d8,0x60c6,0x60da,0x60b4,0x6120,
+0x6126,0x6115,0x6123,0x60f4,0x6100,0x610e,0x612b,0x614a,
+0x6175,0x61ac,0x6194,0x61a7,0x61b7,0x61d4,0x61f5,0x5fdd,
+0x96b3,0x95e9,0x95eb,0x95f1,0x95f3,0x95f5,0x95f6,0x95fc,
+0x95fe,0x9603,0x9604,0x9606,0x9608,0x960a,0x960b,0x960c,
+0x960d,0x960f,0x9612,0x9615,0x9616,0x9617,0x9619,0x961a,
+0x4e2c,0x723f,0x6215,0x6c35,0x6c54,0x6c5c,0x6c4a,0x6ca3,
+0x6c85,0x6c90,0x6c94,0x6c8c,0x6c68,0x6c69,0x6c74,0x6c76,
+0x6c86,0x6ca9,0x6cd0,0x6cd4,0x6cad,0x6cf7,0x6cf8,0x6cf1,
+0x6cd7,0x6cb2,0x6ce0,0x6cd6,0x6cfa,0x6ceb,0x6cee,0x6cb1,
+0x6cd3,0x6cef,0x6cfe, -1, -1, -1, -1, -1,
+ -1,0x6d39,0x6d27,0x6d0c,0x6d43,0x6d48,0x6d07,0x6d04,
+0x6d19,0x6d0e,0x6d2b,0x6d4d,0x6d2e,0x6d35,0x6d1a,0x6d4f,
+0x6d52,0x6d54,0x6d33,0x6d91,0x6d6f,0x6d9e,0x6da0,0x6d5e,
+0x6d93,0x6d94,0x6d5c,0x6d60,0x6d7c,0x6d63,0x6e1a,0x6dc7,
+0x6dc5,0x6dde,0x6e0e,0x6dbf,0x6de0,0x6e11,0x6de6,0x6ddd,
+0x6dd9,0x6e16,0x6dab,0x6e0c,0x6dae,0x6e2b,0x6e6e,0x6e4e,
+0x6e6b,0x6eb2,0x6e5f,0x6e86,0x6e53,0x6e54,0x6e32,0x6e25,
+0x6e44,0x6edf,0x6eb1,0x6e98,0x6ee0,0x6f2d,0x6ee2,0x6ea5,
+0x6ea7,0x6ebd,0x6ebb,0x6eb7,0x6ed7,0x6eb4,0x6ecf,0x6e8f,
+0x6ec2,0x6e9f,0x6f62,0x6f46,0x6f47,0x6f24,0x6f15,0x6ef9,
+0x6f2f,0x6f36,0x6f4b,0x6f74,0x6f2a,0x6f09,0x6f29,0x6f89,
+0x6f8d,0x6f8c,0x6f78,0x6f72,0x6f7c,0x6f7a,0x6fd1, -1,
+ -1, -1, -1, -1, -1,0x6fc9,0x6fa7,0x6fb9,
+0x6fb6,0x6fc2,0x6fe1,0x6fee,0x6fde,0x6fe0,0x6fef,0x701a,
+0x7023,0x701b,0x7039,0x7035,0x704f,0x705e,0x5b80,0x5b84,
+0x5b95,0x5b93,0x5ba5,0x5bb8,0x752f,0x9a9e,0x6434,0x5be4,
+0x5bee,0x8930,0x5bf0,0x8e47,0x8b07,0x8fb6,0x8fd3,0x8fd5,
+0x8fe5,0x8fee,0x8fe4,0x8fe9,0x8fe6,0x8ff3,0x8fe8,0x9005,
+0x9004,0x900b,0x9026,0x9011,0x900d,0x9016,0x9021,0x9035,
+0x9036,0x902d,0x902f,0x9044,0x9051,0x9052,0x9050,0x9068,
+0x9058,0x9062,0x905b,0x66b9,0x9074,0x907d,0x9082,0x9088,
+0x9083,0x908b,0x5f50,0x5f57,0x5f56,0x5f58,0x5c3b,0x54ab,
+0x5c50,0x5c59,0x5b71,0x5c63,0x5c66,0x7fbc,0x5f2a,0x5f29,
+0x5f2d,0x8274,0x5f3c,0x9b3b,0x5c6e,0x5981,0x5983,0x598d,
+0x59a9,0x59aa,0x59a3, -1, -1, -1, -1, -1,
+ -1,0x5997,0x59ca,0x59ab,0x599e,0x59a4,0x59d2,0x59b2,
+0x59af,0x59d7,0x59be,0x5a05,0x5a06,0x59dd,0x5a08,0x59e3,
+0x59d8,0x59f9,0x5a0c,0x5a09,0x5a32,0x5a34,0x5a11,0x5a23,
+0x5a13,0x5a40,0x5a67,0x5a4a,0x5a55,0x5a3c,0x5a62,0x5a75,
+0x80ec,0x5aaa,0x5a9b,0x5a77,0x5a7a,0x5abe,0x5aeb,0x5ab2,
+0x5ad2,0x5ad4,0x5ab8,0x5ae0,0x5ae3,0x5af1,0x5ad6,0x5ae6,
+0x5ad8,0x5adc,0x5b09,0x5b17,0x5b16,0x5b32,0x5b37,0x5b40,
+0x5c15,0x5c1c,0x5b5a,0x5b65,0x5b73,0x5b51,0x5b53,0x5b62,
+0x9a75,0x9a77,0x9a78,0x9a7a,0x9a7f,0x9a7d,0x9a80,0x9a81,
+0x9a85,0x9a88,0x9a8a,0x9a90,0x9a92,0x9a93,0x9a96,0x9a98,
+0x9a9b,0x9a9c,0x9a9d,0x9a9f,0x9aa0,0x9aa2,0x9aa3,0x9aa5,
+0x9aa7,0x7e9f,0x7ea1,0x7ea3,0x7ea5,0x7ea8,0x7ea9, -1,
+ -1, -1, -1, -1, -1,0x7ead,0x7eb0,0x7ebe,
+0x7ec0,0x7ec1,0x7ec2,0x7ec9,0x7ecb,0x7ecc,0x7ed0,0x7ed4,
+0x7ed7,0x7edb,0x7ee0,0x7ee1,0x7ee8,0x7eeb,0x7eee,0x7eef,
+0x7ef1,0x7ef2,0x7f0d,0x7ef6,0x7efa,0x7efb,0x7efe,0x7f01,
+0x7f02,0x7f03,0x7f07,0x7f08,0x7f0b,0x7f0c,0x7f0f,0x7f11,
+0x7f12,0x7f17,0x7f19,0x7f1c,0x7f1b,0x7f1f,0x7f21,0x7f22,
+0x7f23,0x7f24,0x7f25,0x7f26,0x7f27,0x7f2a,0x7f2b,0x7f2c,
+0x7f2d,0x7f2f,0x7f30,0x7f31,0x7f32,0x7f33,0x7f35,0x5e7a,
+0x757f,0x5ddb,0x753e,0x9095,0x738e,0x7391,0x73ae,0x73a2,
+0x739f,0x73cf,0x73c2,0x73d1,0x73b7,0x73b3,0x73c0,0x73c9,
+0x73c8,0x73e5,0x73d9,0x987c,0x740a,0x73e9,0x73e7,0x73de,
+0x73ba,0x73f2,0x740f,0x742a,0x745b,0x7426,0x7425,0x7428,
+0x7430,0x742e,0x742c, -1, -1, -1, -1, -1,
+ -1,0x741b,0x741a,0x7441,0x745c,0x7457,0x7455,0x7459,
+0x7477,0x746d,0x747e,0x749c,0x748e,0x7480,0x7481,0x7487,
+0x748b,0x749e,0x74a8,0x74a9,0x7490,0x74a7,0x74d2,0x74ba,
+0x97ea,0x97eb,0x97ec,0x674c,0x6753,0x675e,0x6748,0x6769,
+0x67a5,0x6787,0x676a,0x6773,0x6798,0x67a7,0x6775,0x67a8,
+0x679e,0x67ad,0x678b,0x6777,0x677c,0x67f0,0x6809,0x67d8,
+0x680a,0x67e9,0x67b0,0x680c,0x67d9,0x67b5,0x67da,0x67b3,
+0x67dd,0x6800,0x67c3,0x67b8,0x67e2,0x680e,0x67c1,0x67fd,
+0x6832,0x6833,0x6860,0x6861,0x684e,0x6862,0x6844,0x6864,
+0x6883,0x681d,0x6855,0x6866,0x6841,0x6867,0x6840,0x683e,
+0x684a,0x6849,0x6829,0x68b5,0x688f,0x6874,0x6877,0x6893,
+0x686b,0x68c2,0x696e,0x68fc,0x691f,0x6920,0x68f9, -1,
+ -1, -1, -1, -1, -1,0x6924,0x68f0,0x690b,
+0x6901,0x6957,0x68e3,0x6910,0x6971,0x6939,0x6960,0x6942,
+0x695d,0x6984,0x696b,0x6980,0x6998,0x6978,0x6934,0x69cc,
+0x6987,0x6988,0x69ce,0x6989,0x6966,0x6963,0x6979,0x699b,
+0x69a7,0x69bb,0x69ab,0x69ad,0x69d4,0x69b1,0x69c1,0x69ca,
+0x69df,0x6995,0x69e0,0x698d,0x69ff,0x6a2f,0x69ed,0x6a17,
+0x6a18,0x6a65,0x69f2,0x6a44,0x6a3e,0x6aa0,0x6a50,0x6a5b,
+0x6a35,0x6a8e,0x6a79,0x6a3d,0x6a28,0x6a58,0x6a7c,0x6a91,
+0x6a90,0x6aa9,0x6a97,0x6aab,0x7337,0x7352,0x6b81,0x6b82,
+0x6b87,0x6b84,0x6b92,0x6b93,0x6b8d,0x6b9a,0x6b9b,0x6ba1,
+0x6baa,0x8f6b,0x8f6d,0x8f71,0x8f72,0x8f73,0x8f75,0x8f76,
+0x8f78,0x8f77,0x8f79,0x8f7a,0x8f7c,0x8f7e,0x8f81,0x8f82,
+0x8f84,0x8f87,0x8f8b, -1, -1, -1, -1, -1,
+ -1,0x8f8d,0x8f8e,0x8f8f,0x8f98,0x8f9a,0x8ece,0x620b,
+0x6217,0x621b,0x621f,0x6222,0x6221,0x6225,0x6224,0x622c,
+0x81e7,0x74ef,0x74f4,0x74ff,0x750f,0x7511,0x7513,0x6534,
+0x65ee,0x65ef,0x65f0,0x660a,0x6619,0x6772,0x6603,0x6615,
+0x6600,0x7085,0x66f7,0x661d,0x6634,0x6631,0x6636,0x6635,
+0x8006,0x665f,0x6654,0x6641,0x664f,0x6656,0x6661,0x6657,
+0x6677,0x6684,0x668c,0x66a7,0x669d,0x66be,0x66db,0x66dc,
+0x66e6,0x66e9,0x8d32,0x8d33,0x8d36,0x8d3b,0x8d3d,0x8d40,
+0x8d45,0x8d46,0x8d48,0x8d49,0x8d47,0x8d4d,0x8d55,0x8d59,
+0x89c7,0x89ca,0x89cb,0x89cc,0x89ce,0x89cf,0x89d0,0x89d1,
+0x726e,0x729f,0x725d,0x7266,0x726f,0x727e,0x727f,0x7284,
+0x728b,0x728d,0x728f,0x7292,0x6308,0x6332,0x63b0, -1,
+ -1, -1, -1, -1, -1,0x643f,0x64d8,0x8004,
+0x6bea,0x6bf3,0x6bfd,0x6bf5,0x6bf9,0x6c05,0x6c07,0x6c06,
+0x6c0d,0x6c15,0x6c18,0x6c19,0x6c1a,0x6c21,0x6c29,0x6c24,
+0x6c2a,0x6c32,0x6535,0x6555,0x656b,0x724d,0x7252,0x7256,
+0x7230,0x8662,0x5216,0x809f,0x809c,0x8093,0x80bc,0x670a,
+0x80bd,0x80b1,0x80ab,0x80ad,0x80b4,0x80b7,0x80e7,0x80e8,
+0x80e9,0x80ea,0x80db,0x80c2,0x80c4,0x80d9,0x80cd,0x80d7,
+0x6710,0x80dd,0x80eb,0x80f1,0x80f4,0x80ed,0x810d,0x810e,
+0x80f2,0x80fc,0x6715,0x8112,0x8c5a,0x8136,0x811e,0x812c,
+0x8118,0x8132,0x8148,0x814c,0x8153,0x8174,0x8159,0x815a,
+0x8171,0x8160,0x8169,0x817c,0x817d,0x816d,0x8167,0x584d,
+0x5ab5,0x8188,0x8182,0x8191,0x6ed5,0x81a3,0x81aa,0x81cc,
+0x6726,0x81ca,0x81bb, -1, -1, -1, -1, -1,
+ -1,0x81c1,0x81a6,0x6b24,0x6b37,0x6b39,0x6b43,0x6b46,
+0x6b59,0x98d1,0x98d2,0x98d3,0x98d5,0x98d9,0x98da,0x6bb3,
+0x5f40,0x6bc2,0x89f3,0x6590,0x9f51,0x6593,0x65bc,0x65c6,
+0x65c4,0x65c3,0x65cc,0x65ce,0x65d2,0x65d6,0x7080,0x709c,
+0x7096,0x709d,0x70bb,0x70c0,0x70b7,0x70ab,0x70b1,0x70e8,
+0x70ca,0x7110,0x7113,0x7116,0x712f,0x7131,0x7173,0x715c,
+0x7168,0x7145,0x7172,0x714a,0x7178,0x717a,0x7198,0x71b3,
+0x71b5,0x71a8,0x71a0,0x71e0,0x71d4,0x71e7,0x71f9,0x721d,
+0x7228,0x706c,0x7118,0x7166,0x71b9,0x623e,0x623d,0x6243,
+0x6248,0x6249,0x793b,0x7940,0x7946,0x7949,0x795b,0x795c,
+0x7953,0x795a,0x7962,0x7957,0x7960,0x796f,0x7967,0x797a,
+0x7985,0x798a,0x799a,0x79a7,0x79b3,0x5fd1,0x5fd0, -1,
+ -1, -1, -1, -1, -1,0x603c,0x605d,0x605a,
+0x6067,0x6041,0x6059,0x6063,0x60ab,0x6106,0x610d,0x615d,
+0x61a9,0x619d,0x61cb,0x61d1,0x6206,0x8080,0x807f,0x6c93,
+0x6cf6,0x6dfc,0x77f6,0x77f8,0x7800,0x7809,0x7817,0x7818,
+0x7811,0x65ab,0x782d,0x781c,0x781d,0x7839,0x783a,0x783b,
+0x781f,0x783c,0x7825,0x782c,0x7823,0x7829,0x784e,0x786d,
+0x7856,0x7857,0x7826,0x7850,0x7847,0x784c,0x786a,0x789b,
+0x7893,0x789a,0x7887,0x789c,0x78a1,0x78a3,0x78b2,0x78b9,
+0x78a5,0x78d4,0x78d9,0x78c9,0x78ec,0x78f2,0x7905,0x78f4,
+0x7913,0x7924,0x791e,0x7934,0x9f9b,0x9ef9,0x9efb,0x9efc,
+0x76f1,0x7704,0x770d,0x76f9,0x7707,0x7708,0x771a,0x7722,
+0x7719,0x772d,0x7726,0x7735,0x7738,0x7750,0x7751,0x7747,
+0x7743,0x775a,0x7768, -1, -1, -1, -1, -1,
+ -1,0x7762,0x7765,0x777f,0x778d,0x777d,0x7780,0x778c,
+0x7791,0x779f,0x77a0,0x77b0,0x77b5,0x77bd,0x753a,0x7540,
+0x754e,0x754b,0x7548,0x755b,0x7572,0x7579,0x7583,0x7f58,
+0x7f61,0x7f5f,0x8a48,0x7f68,0x7f74,0x7f71,0x7f79,0x7f81,
+0x7f7e,0x76cd,0x76e5,0x8832,0x9485,0x9486,0x9487,0x948b,
+0x948a,0x948c,0x948d,0x948f,0x9490,0x9494,0x9497,0x9495,
+0x949a,0x949b,0x949c,0x94a3,0x94a4,0x94ab,0x94aa,0x94ad,
+0x94ac,0x94af,0x94b0,0x94b2,0x94b4,0x94b6,0x94b7,0x94b8,
+0x94b9,0x94ba,0x94bc,0x94bd,0x94bf,0x94c4,0x94c8,0x94c9,
+0x94ca,0x94cb,0x94cc,0x94cd,0x94ce,0x94d0,0x94d1,0x94d2,
+0x94d5,0x94d6,0x94d7,0x94d9,0x94d8,0x94db,0x94de,0x94df,
+0x94e0,0x94e2,0x94e4,0x94e5,0x94e7,0x94e8,0x94ea, -1,
+ -1, -1, -1, -1, -1,0x94e9,0x94eb,0x94ee,
+0x94ef,0x94f3,0x94f4,0x94f5,0x94f7,0x94f9,0x94fc,0x94fd,
+0x94ff,0x9503,0x9502,0x9506,0x9507,0x9509,0x950a,0x950d,
+0x950e,0x950f,0x9512,0x9513,0x9514,0x9515,0x9516,0x9518,
+0x951b,0x951d,0x951e,0x951f,0x9522,0x952a,0x952b,0x9529,
+0x952c,0x9531,0x9532,0x9534,0x9536,0x9537,0x9538,0x953c,
+0x953e,0x953f,0x9542,0x9535,0x9544,0x9545,0x9546,0x9549,
+0x954c,0x954e,0x954f,0x9552,0x9553,0x9554,0x9556,0x9557,
+0x9558,0x9559,0x955b,0x955e,0x955f,0x955d,0x9561,0x9562,
+0x9564,0x9565,0x9566,0x9567,0x9568,0x9569,0x956a,0x956b,
+0x956c,0x956f,0x9571,0x9572,0x9573,0x953a,0x77e7,0x77ec,
+0x96c9,0x79d5,0x79ed,0x79e3,0x79eb,0x7a06,0x5d47,0x7a03,
+0x7a02,0x7a1e,0x7a14, -1, -1, -1, -1, -1,
+ -1,0x7a39,0x7a37,0x7a51,0x9ecf,0x99a5,0x7a70,0x7688,
+0x768e,0x7693,0x7699,0x76a4,0x74de,0x74e0,0x752c,0x9e20,
+0x9e22,0x9e28,0x9e29,0x9e2a,0x9e2b,0x9e2c,0x9e32,0x9e31,
+0x9e36,0x9e38,0x9e37,0x9e39,0x9e3a,0x9e3e,0x9e41,0x9e42,
+0x9e44,0x9e46,0x9e47,0x9e48,0x9e49,0x9e4b,0x9e4c,0x9e4e,
+0x9e51,0x9e55,0x9e57,0x9e5a,0x9e5b,0x9e5c,0x9e5e,0x9e63,
+0x9e66,0x9e67,0x9e68,0x9e69,0x9e6a,0x9e6b,0x9e6c,0x9e71,
+0x9e6d,0x9e73,0x7592,0x7594,0x7596,0x75a0,0x759d,0x75ac,
+0x75a3,0x75b3,0x75b4,0x75b8,0x75c4,0x75b1,0x75b0,0x75c3,
+0x75c2,0x75d6,0x75cd,0x75e3,0x75e8,0x75e6,0x75e4,0x75eb,
+0x75e7,0x7603,0x75f1,0x75fc,0x75ff,0x7610,0x7600,0x7605,
+0x760c,0x7617,0x760a,0x7625,0x7618,0x7615,0x7619, -1,
+ -1, -1, -1, -1, -1,0x761b,0x763c,0x7622,
+0x7620,0x7640,0x762d,0x7630,0x763f,0x7635,0x7643,0x763e,
+0x7633,0x764d,0x765e,0x7654,0x765c,0x7656,0x766b,0x766f,
+0x7fca,0x7ae6,0x7a78,0x7a79,0x7a80,0x7a86,0x7a88,0x7a95,
+0x7aa6,0x7aa0,0x7aac,0x7aa8,0x7aad,0x7ab3,0x8864,0x8869,
+0x8872,0x887d,0x887f,0x8882,0x88a2,0x88c6,0x88b7,0x88bc,
+0x88c9,0x88e2,0x88ce,0x88e3,0x88e5,0x88f1,0x891a,0x88fc,
+0x88e8,0x88fe,0x88f0,0x8921,0x8919,0x8913,0x891b,0x890a,
+0x8934,0x892b,0x8936,0x8941,0x8966,0x897b,0x758b,0x80e5,
+0x76b2,0x76b4,0x77dc,0x8012,0x8014,0x8016,0x801c,0x8020,
+0x8022,0x8025,0x8026,0x8027,0x8029,0x8028,0x8031,0x800b,
+0x8035,0x8043,0x8046,0x804d,0x8052,0x8069,0x8071,0x8983,
+0x9878,0x9880,0x9883, -1, -1, -1, -1, -1,
+ -1,0x9889,0x988c,0x988d,0x988f,0x9894,0x989a,0x989b,
+0x989e,0x989f,0x98a1,0x98a2,0x98a5,0x98a6,0x864d,0x8654,
+0x866c,0x866e,0x867f,0x867a,0x867c,0x867b,0x86a8,0x868d,
+0x868b,0x86ac,0x869d,0x86a7,0x86a3,0x86aa,0x8693,0x86a9,
+0x86b6,0x86c4,0x86b5,0x86ce,0x86b0,0x86ba,0x86b1,0x86af,
+0x86c9,0x86cf,0x86b4,0x86e9,0x86f1,0x86f2,0x86ed,0x86f3,
+0x86d0,0x8713,0x86de,0x86f4,0x86df,0x86d8,0x86d1,0x8703,
+0x8707,0x86f8,0x8708,0x870a,0x870d,0x8709,0x8723,0x873b,
+0x871e,0x8725,0x872e,0x871a,0x873e,0x8748,0x8734,0x8731,
+0x8729,0x8737,0x873f,0x8782,0x8722,0x877d,0x877e,0x877b,
+0x8760,0x8770,0x874c,0x876e,0x878b,0x8753,0x8763,0x877c,
+0x8764,0x8759,0x8765,0x8793,0x87af,0x87a8,0x87d2, -1,
+ -1, -1, -1, -1, -1,0x87c6,0x8788,0x8785,
+0x87ad,0x8797,0x8783,0x87ab,0x87e5,0x87ac,0x87b5,0x87b3,
+0x87cb,0x87d3,0x87bd,0x87d1,0x87c0,0x87ca,0x87db,0x87ea,
+0x87e0,0x87ee,0x8816,0x8813,0x87fe,0x880a,0x881b,0x8821,
+0x8839,0x883c,0x7f36,0x7f42,0x7f44,0x7f45,0x8210,0x7afa,
+0x7afd,0x7b08,0x7b03,0x7b04,0x7b15,0x7b0a,0x7b2b,0x7b0f,
+0x7b47,0x7b38,0x7b2a,0x7b19,0x7b2e,0x7b31,0x7b20,0x7b25,
+0x7b24,0x7b33,0x7b3e,0x7b1e,0x7b58,0x7b5a,0x7b45,0x7b75,
+0x7b4c,0x7b5d,0x7b60,0x7b6e,0x7b7b,0x7b62,0x7b72,0x7b71,
+0x7b90,0x7ba6,0x7ba7,0x7bb8,0x7bac,0x7b9d,0x7ba8,0x7b85,
+0x7baa,0x7b9c,0x7ba2,0x7bab,0x7bb4,0x7bd1,0x7bc1,0x7bcc,
+0x7bdd,0x7bda,0x7be5,0x7be6,0x7bea,0x7c0c,0x7bfe,0x7bfc,
+0x7c0f,0x7c16,0x7c0b, -1, -1, -1, -1, -1,
+ -1,0x7c1f,0x7c2a,0x7c26,0x7c38,0x7c41,0x7c40,0x81fe,
+0x8201,0x8202,0x8204,0x81ec,0x8844,0x8221,0x8222,0x8223,
+0x822d,0x822f,0x8228,0x822b,0x8238,0x823b,0x8233,0x8234,
+0x823e,0x8244,0x8249,0x824b,0x824f,0x825a,0x825f,0x8268,
+0x887e,0x8885,0x8888,0x88d8,0x88df,0x895e,0x7f9d,0x7f9f,
+0x7fa7,0x7faf,0x7fb0,0x7fb2,0x7c7c,0x6549,0x7c91,0x7c9d,
+0x7c9c,0x7c9e,0x7ca2,0x7cb2,0x7cbc,0x7cbd,0x7cc1,0x7cc7,
+0x7ccc,0x7ccd,0x7cc8,0x7cc5,0x7cd7,0x7ce8,0x826e,0x66a8,
+0x7fbf,0x7fce,0x7fd5,0x7fe5,0x7fe1,0x7fe6,0x7fe9,0x7fee,
+0x7ff3,0x7cf8,0x7d77,0x7da6,0x7dae,0x7e47,0x7e9b,0x9eb8,
+0x9eb4,0x8d73,0x8d84,0x8d94,0x8d91,0x8db1,0x8d67,0x8d6d,
+0x8c47,0x8c49,0x914a,0x9150,0x914e,0x914f,0x9164, -1,
+ -1, -1, -1, -1, -1,0x9162,0x9161,0x9170,
+0x9169,0x916f,0x917d,0x917e,0x9172,0x9174,0x9179,0x918c,
+0x9185,0x9190,0x918d,0x9191,0x91a2,0x91a3,0x91aa,0x91ad,
+0x91ae,0x91af,0x91b5,0x91b4,0x91ba,0x8c55,0x9e7e,0x8db8,
+0x8deb,0x8e05,0x8e59,0x8e69,0x8db5,0x8dbf,0x8dbc,0x8dba,
+0x8dc4,0x8dd6,0x8dd7,0x8dda,0x8dde,0x8dce,0x8dcf,0x8ddb,
+0x8dc6,0x8dec,0x8df7,0x8df8,0x8de3,0x8df9,0x8dfb,0x8de4,
+0x8e09,0x8dfd,0x8e14,0x8e1d,0x8e1f,0x8e2c,0x8e2e,0x8e23,
+0x8e2f,0x8e3a,0x8e40,0x8e39,0x8e35,0x8e3d,0x8e31,0x8e49,
+0x8e41,0x8e42,0x8e51,0x8e52,0x8e4a,0x8e70,0x8e76,0x8e7c,
+0x8e6f,0x8e74,0x8e85,0x8e8f,0x8e94,0x8e90,0x8e9c,0x8e9e,
+0x8c78,0x8c82,0x8c8a,0x8c85,0x8c98,0x8c94,0x659b,0x89d6,
+0x89de,0x89da,0x89dc, -1, -1, -1, -1, -1,
+ -1,0x89e5,0x89eb,0x89ef,0x8a3e,0x8b26,0x9753,0x96e9,
+0x96f3,0x96ef,0x9706,0x9701,0x9708,0x970f,0x970e,0x972a,
+0x972d,0x9730,0x973e,0x9f80,0x9f83,0x9f85,0x9f86,0x9f87,
+0x9f88,0x9f89,0x9f8a,0x9f8c,0x9efe,0x9f0b,0x9f0d,0x96b9,
+0x96bc,0x96bd,0x96ce,0x96d2,0x77bf,0x96e0,0x928e,0x92ae,
+0x92c8,0x933e,0x936a,0x93ca,0x938f,0x943e,0x946b,0x9c7f,
+0x9c82,0x9c85,0x9c86,0x9c87,0x9c88,0x7a23,0x9c8b,0x9c8e,
+0x9c90,0x9c91,0x9c92,0x9c94,0x9c95,0x9c9a,0x9c9b,0x9c9e,
+0x9c9f,0x9ca0,0x9ca1,0x9ca2,0x9ca3,0x9ca5,0x9ca6,0x9ca7,
+0x9ca8,0x9ca9,0x9cab,0x9cad,0x9cae,0x9cb0,0x9cb1,0x9cb2,
+0x9cb3,0x9cb4,0x9cb5,0x9cb6,0x9cb7,0x9cba,0x9cbb,0x9cbc,
+0x9cbd,0x9cc4,0x9cc5,0x9cc6,0x9cc7,0x9cca,0x9ccb, -1,
+ -1, -1, -1, -1, -1,0x9ccc,0x9ccd,0x9cce,
+0x9ccf,0x9cd0,0x9cd3,0x9cd4,0x9cd5,0x9cd7,0x9cd8,0x9cd9,
+0x9cdc,0x9cdd,0x9cdf,0x9ce2,0x977c,0x9785,0x9791,0x9792,
+0x9794,0x97af,0x97ab,0x97a3,0x97b2,0x97b4,0x9ab1,0x9ab0,
+0x9ab7,0x9e58,0x9ab6,0x9aba,0x9abc,0x9ac1,0x9ac0,0x9ac5,
+0x9ac2,0x9acb,0x9acc,0x9ad1,0x9b45,0x9b43,0x9b47,0x9b49,
+0x9b48,0x9b4d,0x9b51,0x98e8,0x990d,0x992e,0x9955,0x9954,
+0x9adf,0x9ae1,0x9ae6,0x9aef,0x9aeb,0x9afb,0x9aed,0x9af9,
+0x9b08,0x9b0f,0x9b13,0x9b1f,0x9b23,0x9ebd,0x9ebe,0x7e3b,
+0x9e82,0x9e87,0x9e88,0x9e8b,0x9e92,0x93d6,0x9e9d,0x9e9f,
+0x9edb,0x9edc,0x9edd,0x9ee0,0x9edf,0x9ee2,0x9ee9,0x9ee7,
+0x9ee5,0x9eea,0x9eef,0x9f22,0x9f2c,0x9f2f,0x9f39,0x9f37,
+0x9f3d,0x9f3e,0x9f44,
+};
diff --git a/src/cmd/tcs/gb.h b/src/cmd/tcs/gb.h
new file mode 100644
index 00000000..3a82df32
--- /dev/null
+++ b/src/cmd/tcs/gb.h
@@ -0,0 +1,7 @@
+/*
+ gb ranges from a1a1 to f7fe inclusive
+ we use a kuten-like mapping the above range to 101-8794
+*/
+#define GBMAX 8795
+
+extern long tabgb[GBMAX]; /* runes indexed by gb ordinal */
diff --git a/src/cmd/tcs/hdr.h b/src/cmd/tcs/hdr.h
new file mode 100644
index 00000000..b065f2a3
--- /dev/null
+++ b/src/cmd/tcs/hdr.h
@@ -0,0 +1,46 @@
+extern int squawk;
+extern int clean;
+extern char *file;
+extern int verbose;
+extern long ninput, noutput, nrunes, nerrors;
+
+enum { From = 1, Table = 2, Func = 4 };
+
+typedef void (*Fnptr)(void);
+struct convert{
+ char *name;
+ char *chatter;
+ int flags;
+ void *data;
+ Fnptr fn;
+};
+extern struct convert convert[];
+struct convert *conv(char *, int);
+typedef void (*Infn)(int, long *, struct convert *);
+typedef void (*Outfn)(Rune *, int, long *);
+void outtable(Rune *, int, long *);
+
+void utf_in(int, long *, struct convert *);
+void utf_out(Rune *, int, long *);
+void isoutf_in(int, long *, struct convert *);
+void isoutf_out(Rune *, int, long *);
+
+#define N 10000 /* just blocking */
+#define OUT(out, r, n) if(out->flags&Table) outtable(r, n, (long *)out->data);\
+ else ((Outfn)(out->fn))(r, n, (long *)0)
+
+extern Rune runes[N];
+extern char obuf[UTFmax*N]; /* maximum bloat from N runes */
+
+#define BADMAP (0xFFFD)
+#define BYTEBADMAP ('?') /* badmap but has to fit in a byte */
+#define ESC 033
+
+#ifdef PLAN9
+#define EPR fprint(2,
+#define EXIT(n,s) exits(s)
+#else
+#define EPR fprintf(stderr,
+#define USED(x) /* in plan 9, USED(x) tells the compiler to treat x as used */
+#define EXIT(n,s) exit(n)
+#endif
diff --git a/src/cmd/tcs/jis.h b/src/cmd/tcs/jis.h
new file mode 100644
index 00000000..9b6d1dcc
--- /dev/null
+++ b/src/cmd/tcs/jis.h
@@ -0,0 +1,107 @@
+/*
+ following astonishing goo courtesy of kogure.
+*/
+/*
+ * MicroSoft Kanji Encoding (SJIS) Transformation
+ */
+
+/*
+ * void
+ * J2S(unsigned char *_h, unsigned char *_l)
+ * JIS X 208 to MS kanji transformation.
+ *
+ * Calling/Exit State:
+ * _h and _l should be in their valid range.
+ * No return value.
+ */
+#define J2S(_h, _l) { \
+ /* lower: 21-7e >> 40-9d,9e-fb >> 40-7e,(skip 7f),80-fc */ \
+ if (((_l) += (((_h)-- % 2) ? 0x1f : 0x7d)) > 0x7e) (_l)++; \
+ /* upper: 21-7e >> 81-af >> 81-9f,(skip a0-df),e0-ef */ \
+ if (((_h) = ((_h) / 2 + 0x71)) > 0x9f) (_h) += 0x40; \
+}
+
+/*
+ * void
+ * S2J(unsigned char *_h, unsigned char *_l)
+ * MS kanji to JIS X 208 transformation.
+ *
+ * Calling/Exit State:
+ * _h and _l should be in valid range.
+ * No return value.
+ */
+#define S2J(_h, _l) { \
+ /* lower: 40-7e,80-fc >> 21-5f,61-dd >> 21-7e,7f-dc */ \
+ if (((_l) -= 0x1f) > 0x60) (_l)--; \
+ /* upper: 81-9f,e0-ef >> 00-1e,5f-6e >> 00-2e >> 21-7d */ \
+ if (((_h) -= 0x81) > 0x5e) (_h) -= 0x40; (_h) *= 2, (_h) += 0x21; \
+ /* upper: ,21-7d >> ,22-7e ; lower: ,7f-dc >> ,21-7e */ \
+ if ((_l) > 0x7e) (_h)++, (_l) -= 0x5e; \
+}
+
+/*
+ * int
+ * ISJKANA(const unsigned char *_b)
+ * Tests given byte is in the range of JIS X 0201 katakana.
+ *
+ * Calling/Exit State:
+ * Returns 1 if it is, or 0 otherwise.
+ */
+#define ISJKANA(_b) (0xa0 <= (_b) && (_b) < 0xe0)
+
+/*
+ * int
+ * CANS2JH(const unsigned char *_h)
+ * Tests given byte is in the range of valid first byte of MS
+ * kanji code; either acts as a subroutine of CANS2J() macro
+ * or can be used to parse MS kanji encoded strings.
+ *
+ * Calling/Exit State:
+ * Returns 1 if it is, or 0 otherwise.
+ */
+#define CANS2JH(_h) ((0x81 <= (_h) && (_h) < 0xf0) && !ISJKANA(_h))
+
+/*
+ * int
+ * CANS2JL(const unsigned char *_l)
+ * Tests given byte is in the range of valid second byte of MS
+ * kanji code; acts as a subroutine of CANS2J() macro.
+ *
+ * Calling/Exit State:
+ * Returns 1 if it is, or 0 otherwise.
+ */
+#define CANS2JL(_l) (0x40 <= (_l) && (_l) < 0xfd && (_l) != 0x7f)
+
+/*
+ * int
+ * CANS2J(const unsigned char *_h, const unsinged char *_l)
+ * Tests given bytes form a MS kanji code point which can be
+ * transformed to a valid JIS X 208 code point.
+ *
+ * Calling/Exit State:
+ * Returns 1 if they are, or 0 otherwise.
+ */
+#define CANS2J(_h, _l) (CANS2JH(_h) && CANS2JL(_l))
+
+/*
+ * int
+ * CANJ2SB(const unsigned char *_b)
+ * Tests given bytes is in the range of valid 94 graphic
+ * character set; acts as a subroutine of CANJ2S() macro.
+ *
+ * Calling/Exit State:
+ * Returns 1 if it is, or 0 otherwise.
+ */
+#define CANJ2SB(_b) (0x21 <= (_b) && (_b) < 0x7f)
+
+/*
+ * int
+ * CANJ2S(const unsigned char *_h, const unsigned char *_l)
+ * Tests given bytes form valid JIS X 208 code points
+ * (which can be transformed to MS kanji).
+ *
+ * Calling/Exit State:
+ * Returns 1 if they are, or 0 otherwise.
+ */
+#define CANJ2S(_h, _l) (CANJ2SB(_h) && CANJ2SB(_l))
+
diff --git a/src/cmd/tcs/ksc.c b/src/cmd/tcs/ksc.c
new file mode 100644
index 00000000..90d6793b
--- /dev/null
+++ b/src/cmd/tcs/ksc.c
@@ -0,0 +1,988 @@
+#include "ksc.h"
+
+/* KSC5601 -> Unicode mapping table, compressed for the 94*94 codeset. */
+/*
+ * Unlike kuten-table, needed offset is 33 (0x21) instead of
+ * 32 for 7-bit portion of each byte. i.e., a Unicode
+ * codepoint for KSC's codepoint (n, m) would be found at
+ * index (n-33)*94+m-33.
+ */
+long tabksc5601[] = {
+/* KSC 5601 -> Unicode mapping table; max codepoint = 0x7d7e */
+ 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, 0x00ad,
+ 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014,
+ 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f,
+ 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e,
+ 0x2234, 0x00b0, 0x2032, 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5,
+ 0x2642, 0x2640, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252,
+ 0x00a7, 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6,
+ 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191,
+ 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235,
+ 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a,
+ 0x2229, 0x2227, 0x2228, 0xffe2, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4,
+ 0xff5e, 0x02c7, 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1,
+ 0x00bf, 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1,
+ 0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663,
+ 0x25c9, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, 0x25a8,
+ 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, 0x261e, 0x00b6,
+ 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, 0x2198, 0x266d, 0x2669,
+ 0x266a, 0x266c, 0x327f, 0x321c, 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8,
+ 0x2121, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 0xff01,
+ 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 0xff0a,
+ 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff12, 0xff13,
+ 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c,
+ 0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25,
+ 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e,
+ 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
+ 0xff38, 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40,
+ 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49,
+ 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52,
+ 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b,
+ 0xff5c, 0xff5d, 0xffe3, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136,
+ 0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f,
+ 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148,
+ 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151,
+ 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a,
+ 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163,
+ 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c,
+ 0x316d, 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175,
+ 0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e,
+ 0x317f, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187,
+ 0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x2170, 0x2171,
+ 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, -1,
+ -1, -1, -1, -1, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164,
+ 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, -1, -1, -1, -1,
+ -1, -1, -1, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396,
+ 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
+ 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9,
+ -1, -1, -1, -1, -1, -1, -1, -1, 0x03b1,
+ 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba,
+ 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4,
+ 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, -1, -1, -1, -1,
+ -1, -1, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c,
+ 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b,
+ 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528,
+ 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x2512, 0x2511,
+ 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, 0x251e, 0x251f, 0x2521,
+ 0x2522, 0x2526, 0x2527, 0x2529, 0x252a, 0x252d, 0x252e, 0x2531, 0x2532,
+ 0x2535, 0x2536, 0x2539, 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543,
+ 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 0x3395, 0x3396, 0x3397,
+ 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a,
+ 0x339b, 0x339c, 0x339d, 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca,
+ 0x338d, 0x338e, 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8,
+ 0x33b0, 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8,
+ 0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc,
+ 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, 0x2126,
+ 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, 0x33ad, 0x33ae,
+ 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, 0x33dd, 0x33d0, 0x33d3,
+ 0x33c3, 0x33c9, 0x33dc, 0x33c6, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 0x00c6, 0x00d0, 0x00aa, 0x0126, -1, 0x0132, -1, 0x013f,
+ 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, -1, 0x3260,
+ 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269,
+ 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272,
+ 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b,
+ 0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8,
+ 0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1,
+ 0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460,
+ 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469,
+ 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, 0x00bc,
+ 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x00e6, 0x0111, 0x00f0, 0x0127,
+ 0x0131, 0x0133, 0x0138, 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe,
+ 0x0167, 0x014b, 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205,
+ 0x3206, 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e,
+ 0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217,
+ 0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0,
+ 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, 0x24a8, 0x24a9,
+ 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, 0x24b0, 0x24b1, 0x24b2,
+ 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479,
+ 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482,
+ 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084,
+ 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049,
+ 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052,
+ 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b,
+ 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064,
+ 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d,
+ 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076,
+ 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f,
+ 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
+ 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091,
+ 0x3092, 0x3093, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5,
+ 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae,
+ 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7,
+ 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0,
+ 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9,
+ 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2,
+ 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db,
+ 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4,
+ 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed,
+ 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6,
+ -1, -1, -1, -1, -1, -1, -1, -1, 0x0410,
+ 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418,
+ 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421,
+ 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
+ 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451,
+ 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+ 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+ 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 0x3400, 0x3401, 0x3402,
+ 0x3403, 0x3404, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, 0x340a, 0x340b,
+ 0x340c, 0x340d, 0x340e, 0x340f, 0x3410, 0x3411, 0x3412, 0x3413, 0x3414,
+ 0x3415, 0x3416, 0x3417, 0x3418, 0x3419, 0x341a, 0x341b, 0x341c, 0x341d,
+ 0x341e, 0x341f, 0x3420, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426,
+ 0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e, 0x342f,
+ 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3437, 0x3438,
+ 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e, 0x343f, 0x3440, 0x3441,
+ 0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 0x344a,
+ 0x344b, 0x344c, 0x344d, 0x344e, 0x344f, 0x3450, 0x3451, 0x3452, 0x3453,
+ 0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c,
+ 0x345d, 0x345e, 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465,
+ 0x3466, 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e,
+ 0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477,
+ 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e, 0x347f, 0x3480,
+ 0x3481, 0x3482, 0x3483, 0x3484, 0x3485, 0x3486, 0x3487, 0x3488, 0x3489,
+ 0x348a, 0x348b, 0x348c, 0x348d, 0x348e, 0x348f, 0x3490, 0x3491, 0x3492,
+ 0x3493, 0x3494, 0x3495, 0x3496, 0x3497, 0x3498, 0x3499, 0x349a, 0x349b,
+ 0x349c, 0x349d, 0x349e, 0x349f, 0x34a0, 0x34a1, 0x34a2, 0x34a3, 0x34a4,
+ 0x34a5, 0x34a6, 0x34a7, 0x34a8, 0x34a9, 0x34aa, 0x34ab, 0x34ac, 0x34ad,
+ 0x34ae, 0x34af, 0x34b0, 0x34b1, 0x34b2, 0x34b3, 0x34b4, 0x34b5, 0x34b6,
+ 0x34b7, 0x34b8, 0x34b9, 0x34ba, 0x34bb, 0x34bc, 0x34bd, 0x34be, 0x34bf,
+ 0x34c0, 0x34c1, 0x34c2, 0x34c3, 0x34c4, 0x34c5, 0x34c6, 0x34c7, 0x34c8,
+ 0x34c9, 0x34ca, 0x34cb, 0x34cc, 0x34cd, 0x34ce, 0x34cf, 0x34d0, 0x34d1,
+ 0x34d2, 0x34d3, 0x34d4, 0x34d5, 0x34d6, 0x34d7, 0x34d8, 0x34d9, 0x34da,
+ 0x34db, 0x34dc, 0x34dd, 0x34de, 0x34df, 0x34e0, 0x34e1, 0x34e2, 0x34e3,
+ 0x34e4, 0x34e5, 0x34e6, 0x34e7, 0x34e8, 0x34e9, 0x34ea, 0x34eb, 0x34ec,
+ 0x34ed, 0x34ee, 0x34ef, 0x34f0, 0x34f1, 0x34f2, 0x34f3, 0x34f4, 0x34f5,
+ 0x34f6, 0x34f7, 0x34f8, 0x34f9, 0x34fa, 0x34fb, 0x34fc, 0x34fd, 0x34fe,
+ 0x34ff, 0x3500, 0x3501, 0x3502, 0x3503, 0x3504, 0x3505, 0x3506, 0x3507,
+ 0x3508, 0x3509, 0x350a, 0x350b, 0x350c, 0x350d, 0x350e, 0x350f, 0x3510,
+ 0x3511, 0x3512, 0x3513, 0x3514, 0x3515, 0x3516, 0x3517, 0x3518, 0x3519,
+ 0x351a, 0x351b, 0x351c, 0x351d, 0x351e, 0x351f, 0x3520, 0x3521, 0x3522,
+ 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, 0x352a, 0x352b,
+ 0x352c, 0x352d, 0x352e, 0x352f, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534,
+ 0x3535, 0x3536, 0x3537, 0x3538, 0x3539, 0x353a, 0x353b, 0x353c, 0x353d,
+ 0x353e, 0x353f, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546,
+ 0x3547, 0x3548, 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f,
+ 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558,
+ 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560, 0x3561,
+ 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, 0x356a,
+ 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, 0x3572, 0x3573,
+ 0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, 0x357a, 0x357b, 0x357c,
+ 0x357d, 0x357e, 0x357f, 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585,
+ 0x3586, 0x3587, 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e,
+ 0x358f, 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597,
+ 0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, 0x35a0,
+ 0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, 0x35a8, 0x35a9,
+ 0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x35af, 0x35b0, 0x35b1, 0x35b2,
+ 0x35b3, 0x35b4, 0x35b5, 0x35b6, 0x35b7, 0x35b8, 0x35b9, 0x35ba, 0x35bb,
+ 0x35bc, 0x35bd, 0x35be, 0x35bf, 0x35c0, 0x35c1, 0x35c2, 0x35c3, 0x35c4,
+ 0x35c5, 0x35c6, 0x35c7, 0x35c8, 0x35c9, 0x35ca, 0x35cb, 0x35cc, 0x35cd,
+ 0x35ce, 0x35cf, 0x35d0, 0x35d1, 0x35d2, 0x35d3, 0x35d4, 0x35d5, 0x35d6,
+ 0x35d7, 0x35d8, 0x35d9, 0x35da, 0x35db, 0x35dc, 0x35dd, 0x35de, 0x35df,
+ 0x35e0, 0x35e1, 0x35e2, 0x35e3, 0x35e4, 0x35e5, 0x35e6, 0x35e7, 0x35e8,
+ 0x35e9, 0x35ea, 0x35eb, 0x35ec, 0x35ed, 0x35ee, 0x35ef, 0x35f0, 0x35f1,
+ 0x35f2, 0x35f3, 0x35f4, 0x35f5, 0x35f6, 0x35f7, 0x35f8, 0x35f9, 0x35fa,
+ 0x35fb, 0x35fc, 0x35fd, 0x35fe, 0x35ff, 0x3600, 0x3601, 0x3602, 0x3603,
+ 0x3604, 0x3605, 0x3606, 0x3607, 0x3608, 0x3609, 0x360a, 0x360b, 0x360c,
+ 0x360d, 0x360e, 0x360f, 0x3610, 0x3611, 0x3612, 0x3613, 0x3614, 0x3615,
+ 0x3616, 0x3617, 0x3618, 0x3619, 0x361a, 0x361b, 0x361c, 0x361d, 0x361e,
+ 0x361f, 0x3620, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627,
+ 0x3628, 0x3629, 0x362a, 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630,
+ 0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639,
+ 0x363a, 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642,
+ 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a, 0x364b,
+ 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652, 0x3653, 0x3654,
+ 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a, 0x365b, 0x365c, 0x365d,
+ 0x365e, 0x365f, 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666,
+ 0x3667, 0x3668, 0x3669, 0x366a, 0x366b, 0x366c, 0x366d, 0x366e, 0x366f,
+ 0x3670, 0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678,
+ 0x3679, 0x367a, 0x367b, 0x367c, 0x367d, 0x367e, 0x367f, 0x3680, 0x3681,
+ 0x3682, 0x3683, 0x3684, 0x3685, 0x3686, 0x3687, 0x3688, 0x3689, 0x368a,
+ 0x368b, 0x368c, 0x368d, 0x368e, 0x368f, 0x3690, 0x3691, 0x3692, 0x3693,
+ 0x3694, 0x3695, 0x3696, 0x3697, 0x3698, 0x3699, 0x369a, 0x369b, 0x369c,
+ 0x369d, 0x369e, 0x369f, 0x36a0, 0x36a1, 0x36a2, 0x36a3, 0x36a4, 0x36a5,
+ 0x36a6, 0x36a7, 0x36a8, 0x36a9, 0x36aa, 0x36ab, 0x36ac, 0x36ad, 0x36ae,
+ 0x36af, 0x36b0, 0x36b1, 0x36b2, 0x36b3, 0x36b4, 0x36b5, 0x36b6, 0x36b7,
+ 0x36b8, 0x36b9, 0x36ba, 0x36bb, 0x36bc, 0x36bd, 0x36be, 0x36bf, 0x36c0,
+ 0x36c1, 0x36c2, 0x36c3, 0x36c4, 0x36c5, 0x36c6, 0x36c7, 0x36c8, 0x36c9,
+ 0x36ca, 0x36cb, 0x36cc, 0x36cd, 0x36ce, 0x36cf, 0x36d0, 0x36d1, 0x36d2,
+ 0x36d3, 0x36d4, 0x36d5, 0x36d6, 0x36d7, 0x36d8, 0x36d9, 0x36da, 0x36db,
+ 0x36dc, 0x36dd, 0x36de, 0x36df, 0x36e0, 0x36e1, 0x36e2, 0x36e3, 0x36e4,
+ 0x36e5, 0x36e6, 0x36e7, 0x36e8, 0x36e9, 0x36ea, 0x36eb, 0x36ec, 0x36ed,
+ 0x36ee, 0x36ef, 0x36f0, 0x36f1, 0x36f2, 0x36f3, 0x36f4, 0x36f5, 0x36f6,
+ 0x36f7, 0x36f8, 0x36f9, 0x36fa, 0x36fb, 0x36fc, 0x36fd, 0x36fe, 0x36ff,
+ 0x3700, 0x3701, 0x3702, 0x3703, 0x3704, 0x3705, 0x3706, 0x3707, 0x3708,
+ 0x3709, 0x370a, 0x370b, 0x370c, 0x370d, 0x370e, 0x370f, 0x3710, 0x3711,
+ 0x3712, 0x3713, 0x3714, 0x3715, 0x3716, 0x3717, 0x3718, 0x3719, 0x371a,
+ 0x371b, 0x371c, 0x371d, 0x371e, 0x371f, 0x3720, 0x3721, 0x3722, 0x3723,
+ 0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c,
+ 0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735,
+ 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, 0x373d, 0x373e,
+ 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747,
+ 0x3748, 0x3749, 0x374a, 0x374b, 0x374c, 0x374d, 0x374e, 0x374f, 0x3750,
+ 0x3751, 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759,
+ 0x375a, 0x375b, 0x375c, 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, 0x3762,
+ 0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b,
+ 0x376c, 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774,
+ 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c, 0x377d,
+ 0x377e, 0x377f, 0x3780, 0x3781, 0x3782, 0x3783, 0x3784, 0x3785, 0x3786,
+ 0x3787, 0x3788, 0x3789, 0x378a, 0x378b, 0x378c, 0x378d, 0x378e, 0x378f,
+ 0x3790, 0x3791, 0x3792, 0x3793, 0x3794, 0x3795, 0x3796, 0x3797, 0x3798,
+ 0x3799, 0x379a, 0x379b, 0x379c, 0x379d, 0x379e, 0x379f, 0x37a0, 0x37a1,
+ 0x37a2, 0x37a3, 0x37a4, 0x37a5, 0x37a6, 0x37a7, 0x37a8, 0x37a9, 0x37aa,
+ 0x37ab, 0x37ac, 0x37ad, 0x37ae, 0x37af, 0x37b0, 0x37b1, 0x37b2, 0x37b3,
+ 0x37b4, 0x37b5, 0x37b6, 0x37b7, 0x37b8, 0x37b9, 0x37ba, 0x37bb, 0x37bc,
+ 0x37bd, 0x37be, 0x37bf, 0x37c0, 0x37c1, 0x37c2, 0x37c3, 0x37c4, 0x37c5,
+ 0x37c6, 0x37c7, 0x37c8, 0x37c9, 0x37ca, 0x37cb, 0x37cc, 0x37cd, 0x37ce,
+ 0x37cf, 0x37d0, 0x37d1, 0x37d2, 0x37d3, 0x37d4, 0x37d5, 0x37d6, 0x37d7,
+ 0x37d8, 0x37d9, 0x37da, 0x37db, 0x37dc, 0x37dd, 0x37de, 0x37df, 0x37e0,
+ 0x37e1, 0x37e2, 0x37e3, 0x37e4, 0x37e5, 0x37e6, 0x37e7, 0x37e8, 0x37e9,
+ 0x37ea, 0x37eb, 0x37ec, 0x37ed, 0x37ee, 0x37ef, 0x37f0, 0x37f1, 0x37f2,
+ 0x37f3, 0x37f4, 0x37f5, 0x37f6, 0x37f7, 0x37f8, 0x37f9, 0x37fa, 0x37fb,
+ 0x37fc, 0x37fd, 0x37fe, 0x37ff, 0x3800, 0x3801, 0x3802, 0x3803, 0x3804,
+ 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 0x380a, 0x380b, 0x380c, 0x380d,
+ 0x380e, 0x380f, 0x3810, 0x3811, 0x3812, 0x3813, 0x3814, 0x3815, 0x3816,
+ 0x3817, 0x3818, 0x3819, 0x381a, 0x381b, 0x381c, 0x381d, 0x381e, 0x381f,
+ 0x3820, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, 0x3828,
+ 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e, 0x382f, 0x3830, 0x3831,
+ 0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383a,
+ 0x383b, 0x383c, 0x383d, 0x383e, 0x383f, 0x3840, 0x3841, 0x3842, 0x3843,
+ 0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c,
+ 0x384d, 0x384e, 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, 0x3854, 0x3855,
+ 0x3856, 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e,
+ 0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866, 0x3867,
+ 0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f, 0x3870,
+ 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879,
+ 0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x387f, 0x3880, 0x3881, 0x3882,
+ 0x3883, 0x3884, 0x3885, 0x3886, 0x3887, 0x3888, 0x3889, 0x388a, 0x388b,
+ 0x388c, 0x388d, 0x388e, 0x388f, 0x3890, 0x3891, 0x3892, 0x3893, 0x3894,
+ 0x3895, 0x3896, 0x3897, 0x3898, 0x3899, 0x389a, 0x389b, 0x389c, 0x389d,
+ 0x389e, 0x389f, 0x38a0, 0x38a1, 0x38a2, 0x38a3, 0x38a4, 0x38a5, 0x38a6,
+ 0x38a7, 0x38a8, 0x38a9, 0x38aa, 0x38ab, 0x38ac, 0x38ad, 0x38ae, 0x38af,
+ 0x38b0, 0x38b1, 0x38b2, 0x38b3, 0x38b4, 0x38b5, 0x38b6, 0x38b7, 0x38b8,
+ 0x38b9, 0x38ba, 0x38bb, 0x38bc, 0x38bd, 0x38be, 0x38bf, 0x38c0, 0x38c1,
+ 0x38c2, 0x38c3, 0x38c4, 0x38c5, 0x38c6, 0x38c7, 0x38c8, 0x38c9, 0x38ca,
+ 0x38cb, 0x38cc, 0x38cd, 0x38ce, 0x38cf, 0x38d0, 0x38d1, 0x38d2, 0x38d3,
+ 0x38d4, 0x38d5, 0x38d6, 0x38d7, 0x38d8, 0x38d9, 0x38da, 0x38db, 0x38dc,
+ 0x38dd, 0x38de, 0x38df, 0x38e0, 0x38e1, 0x38e2, 0x38e3, 0x38e4, 0x38e5,
+ 0x38e6, 0x38e7, 0x38e8, 0x38e9, 0x38ea, 0x38eb, 0x38ec, 0x38ed, 0x38ee,
+ 0x38ef, 0x38f0, 0x38f1, 0x38f2, 0x38f3, 0x38f4, 0x38f5, 0x38f6, 0x38f7,
+ 0x38f8, 0x38f9, 0x38fa, 0x38fb, 0x38fc, 0x38fd, 0x38fe, 0x38ff, 0x3900,
+ 0x3901, 0x3902, 0x3903, 0x3904, 0x3905, 0x3906, 0x3907, 0x3908, 0x3909,
+ 0x390a, 0x390b, 0x390c, 0x390d, 0x390e, 0x390f, 0x3910, 0x3911, 0x3912,
+ 0x3913, 0x3914, 0x3915, 0x3916, 0x3917, 0x3918, 0x3919, 0x391a, 0x391b,
+ 0x391c, 0x391d, 0x391e, 0x391f, 0x3920, 0x3921, 0x3922, 0x3923, 0x3924,
+ 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, 0x392b, 0x392c, 0x392d,
+ 0x392e, 0x392f, 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936,
+ 0x3937, 0x3938, 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f,
+ 0x3940, 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948,
+ 0x3949, 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951,
+ 0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, 0x395a,
+ 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, 0x3963,
+ 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, 0x396b, 0x396c,
+ 0x396d, 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, 0x3973, 0x3974, 0x3975,
+ 0x3976, 0x3977, 0x3978, 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, 0x397e,
+ 0x397f, 0x3980, 0x3981, 0x3982, 0x3983, 0x3984, 0x3985, 0x3986, 0x3987,
+ 0x3988, 0x3989, 0x398a, 0x398b, 0x398c, 0x398d, 0x398e, 0x398f, 0x3990,
+ 0x3991, 0x3992, 0x3993, 0x3994, 0x3995, 0x3996, 0x3997, 0x3998, 0x3999,
+ 0x399a, 0x399b, 0x399c, 0x399d, 0x399e, 0x399f, 0x39a0, 0x39a1, 0x39a2,
+ 0x39a3, 0x39a4, 0x39a5, 0x39a6, 0x39a7, 0x39a8, 0x39a9, 0x39aa, 0x39ab,
+ 0x39ac, 0x39ad, 0x39ae, 0x39af, 0x39b0, 0x39b1, 0x39b2, 0x39b3, 0x39b4,
+ 0x39b5, 0x39b6, 0x39b7, 0x39b8, 0x39b9, 0x39ba, 0x39bb, 0x39bc, 0x39bd,
+ 0x39be, 0x39bf, 0x39c0, 0x39c1, 0x39c2, 0x39c3, 0x39c4, 0x39c5, 0x39c6,
+ 0x39c7, 0x39c8, 0x39c9, 0x39ca, 0x39cb, 0x39cc, 0x39cd, 0x39ce, 0x39cf,
+ 0x39d0, 0x39d1, 0x39d2, 0x39d3, 0x39d4, 0x39d5, 0x39d6, 0x39d7, 0x39d8,
+ 0x39d9, 0x39da, 0x39db, 0x39dc, 0x39dd, 0x39de, 0x39df, 0x39e0, 0x39e1,
+ 0x39e2, 0x39e3, 0x39e4, 0x39e5, 0x39e6, 0x39e7, 0x39e8, 0x39e9, 0x39ea,
+ 0x39eb, 0x39ec, 0x39ed, 0x39ee, 0x39ef, 0x39f0, 0x39f1, 0x39f2, 0x39f3,
+ 0x39f4, 0x39f5, 0x39f6, 0x39f7, 0x39f8, 0x39f9, 0x39fa, 0x39fb, 0x39fc,
+ 0x39fd, 0x39fe, 0x39ff, 0x3a00, 0x3a01, 0x3a02, 0x3a03, 0x3a04, 0x3a05,
+ 0x3a06, 0x3a07, 0x3a08, 0x3a09, 0x3a0a, 0x3a0b, 0x3a0c, 0x3a0d, 0x3a0e,
+ 0x3a0f, 0x3a10, 0x3a11, 0x3a12, 0x3a13, 0x3a14, 0x3a15, 0x3a16, 0x3a17,
+ 0x3a18, 0x3a19, 0x3a1a, 0x3a1b, 0x3a1c, 0x3a1d, 0x3a1e, 0x3a1f, 0x3a20,
+ 0x3a21, 0x3a22, 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29,
+ 0x3a2a, 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a32,
+ 0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a39, 0x3a3a, 0x3a3b,
+ 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44,
+ 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, 0x3a4d,
+ 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, 0x3a55, 0x3a56,
+ 0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f,
+ 0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68,
+ 0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71,
+ 0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a,
+ 0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3a7f, 0x3a80, 0x3a81, 0x3a82, 0x3a83,
+ 0x3a84, 0x3a85, 0x3a86, 0x3a87, 0x3a88, 0x3a89, 0x3a8a, 0x3a8b, 0x3a8c,
+ 0x3a8d, 0x3a8e, 0x3a8f, 0x3a90, 0x3a91, 0x3a92, 0x3a93, 0x3a94, 0x3a95,
+ 0x3a96, 0x3a97, 0x3a98, 0x3a99, 0x3a9a, 0x3a9b, 0x3a9c, 0x3a9d, 0x3a9e,
+ 0x3a9f, 0x3aa0, 0x3aa1, 0x3aa2, 0x3aa3, 0x3aa4, 0x3aa5, 0x3aa6, 0x3aa7,
+ 0x3aa8, 0x3aa9, 0x3aaa, 0x3aab, 0x3aac, 0x3aad, 0x3aae, 0x3aaf, 0x3ab0,
+ 0x3ab1, 0x3ab2, 0x3ab3, 0x3ab4, 0x3ab5, 0x3ab6, 0x3ab7, 0x3ab8, 0x3ab9,
+ 0x3aba, 0x3abb, 0x3abc, 0x3abd, 0x3abe, 0x3abf, 0x3ac0, 0x3ac1, 0x3ac2,
+ 0x3ac3, 0x3ac4, 0x3ac5, 0x3ac6, 0x3ac7, 0x3ac8, 0x3ac9, 0x3aca, 0x3acb,
+ 0x3acc, 0x3acd, 0x3ace, 0x3acf, 0x3ad0, 0x3ad1, 0x3ad2, 0x3ad3, 0x3ad4,
+ 0x3ad5, 0x3ad6, 0x3ad7, 0x3ad8, 0x3ad9, 0x3ada, 0x3adb, 0x3adc, 0x3add,
+ 0x3ade, 0x3adf, 0x3ae0, 0x3ae1, 0x3ae2, 0x3ae3, 0x3ae4, 0x3ae5, 0x3ae6,
+ 0x3ae7, 0x3ae8, 0x3ae9, 0x3aea, 0x3aeb, 0x3aec, 0x3aed, 0x3aee, 0x3aef,
+ 0x3af0, 0x3af1, 0x3af2, 0x3af3, 0x3af4, 0x3af5, 0x3af6, 0x3af7, 0x3af8,
+ 0x3af9, 0x3afa, 0x3afb, 0x3afc, 0x3afd, 0x3afe, 0x3aff, 0x3b00, 0x3b01,
+ 0x3b02, 0x3b03, 0x3b04, 0x3b05, 0x3b06, 0x3b07, 0x3b08, 0x3b09, 0x3b0a,
+ 0x3b0b, 0x3b0c, 0x3b0d, 0x3b0e, 0x3b0f, 0x3b10, 0x3b11, 0x3b12, 0x3b13,
+ 0x3b14, 0x3b15, 0x3b16, 0x3b17, 0x3b18, 0x3b19, 0x3b1a, 0x3b1b, 0x3b1c,
+ 0x3b1d, 0x3b1e, 0x3b1f, 0x3b20, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25,
+ 0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e,
+ 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, 0x3b37,
+ 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3c, 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40,
+ 0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49,
+ 0x3b4a, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52,
+ 0x3b53, 0x3b54, 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b,
+ 0x3b5c, 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64,
+ 0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d,
+ 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x3b73, 0x3b74, 0x3b75, 0x3b76,
+ 0x3b77, 0x3b78, 0x3b79, 0x3b7a, 0x3b7b, 0x3b7c, 0x3b7d, 0x3b7e, 0x3b7f,
+ 0x3b80, 0x3b81, 0x3b82, 0x3b83, 0x3b84, 0x3b85, 0x3b86, 0x3b87, 0x3b88,
+ 0x3b89, 0x3b8a, 0x3b8b, 0x3b8c, 0x3b8d, 0x3b8e, 0x3b8f, 0x3b90, 0x3b91,
+ 0x3b92, 0x3b93, 0x3b94, 0x3b95, 0x3b96, 0x3b97, 0x3b98, 0x3b99, 0x3b9a,
+ 0x3b9b, 0x3b9c, 0x3b9d, 0x3b9e, 0x3b9f, 0x3ba0, 0x3ba1, 0x3ba2, 0x3ba3,
+ 0x3ba4, 0x3ba5, 0x3ba6, 0x3ba7, 0x3ba8, 0x3ba9, 0x3baa, 0x3bab, 0x3bac,
+ 0x3bad, 0x3bae, 0x3baf, 0x3bb0, 0x3bb1, 0x3bb2, 0x3bb3, 0x3bb4, 0x3bb5,
+ 0x3bb6, 0x3bb7, 0x3bb8, 0x3bb9, 0x3bba, 0x3bbb, 0x3bbc, 0x3bbd, 0x3bbe,
+ 0x3bbf, 0x3bc0, 0x3bc1, 0x3bc2, 0x3bc3, 0x3bc4, 0x3bc5, 0x3bc6, 0x3bc7,
+ 0x3bc8, 0x3bc9, 0x3bca, 0x3bcb, 0x3bcc, 0x3bcd, 0x3bce, 0x3bcf, 0x3bd0,
+ 0x3bd1, 0x3bd2, 0x3bd3, 0x3bd4, 0x3bd5, 0x3bd6, 0x3bd7, 0x3bd8, 0x3bd9,
+ 0x3bda, 0x3bdb, 0x3bdc, 0x3bdd, 0x3bde, 0x3bdf, 0x3be0, 0x3be1, 0x3be2,
+ 0x3be3, 0x3be4, 0x3be5, 0x3be6, 0x3be7, 0x3be8, 0x3be9, 0x3bea, 0x3beb,
+ 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0, 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4,
+ 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8, 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd,
+ 0x3bfe, 0x3bff, 0x3c00, 0x3c01, 0x3c02, 0x3c03, 0x3c04, 0x3c05, 0x3c06,
+ 0x3c07, 0x3c08, 0x3c09, 0x3c0a, 0x3c0b, 0x3c0c, 0x3c0d, 0x3c0e, 0x3c0f,
+ 0x3c10, 0x3c11, 0x3c12, 0x3c13, 0x3c14, 0x3c15, 0x3c16, 0x3c17, 0x3c18,
+ 0x3c19, 0x3c1a, 0x3c1b, 0x3c1c, 0x3c1d, 0x3c1e, 0x3c1f, 0x3c20, 0x3c21,
+ 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26, 0x3c27, 0x3c28, 0x3c29, 0x3c2a,
+ 0x3c2b, 0x3c2c, 0x3c2d, 0x3c2e, 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33,
+ 0x3c34, 0x3c35, 0x3c36, 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c,
+ 0x3c3d, 0x3c3e, 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45,
+ 0x3c46, 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e,
+ 0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, 0x3c54, 0x3c55, 0x3c56, 0x3c57,
+ 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, 0x3c60,
+ 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69,
+ 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c72,
+ 0x3c73, 0x3c74, 0x3c75, 0x3c76, 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b,
+ 0x3c7c, 0x3c7d, 0x3c7e, 0x3c7f, 0x3c80, 0x3c81, 0x3c82, 0x3c83, 0x3c84,
+ 0x3c85, 0x3c86, 0x3c87, 0x3c88, 0x3c89, 0x3c8a, 0x3c8b, 0x3c8c, 0x3c8d,
+ 0x3c8e, 0x3c8f, 0x3c90, 0x3c91, 0x3c92, 0x3c93, 0x3c94, 0x3c95, 0x3c96,
+ 0x3c97, 0x3c98, 0x3c99, 0x3c9a, 0x3c9b, 0x3c9c, 0x3c9d, 0x3c9e, 0x3c9f,
+ 0x3ca0, 0x3ca1, 0x3ca2, 0x3ca3, 0x3ca4, 0x3ca5, 0x3ca6, 0x3ca7, 0x3ca8,
+ 0x3ca9, 0x3caa, 0x3cab, 0x3cac, 0x3cad, 0x3cae, 0x3caf, 0x3cb0, 0x3cb1,
+ 0x3cb2, 0x3cb3, 0x3cb4, 0x3cb5, 0x3cb6, 0x3cb7, 0x3cb8, 0x3cb9, 0x3cba,
+ 0x3cbb, 0x3cbc, 0x3cbd, 0x3cbe, 0x3cbf, 0x3cc0, 0x3cc1, 0x3cc2, 0x3cc3,
+ 0x3cc4, 0x3cc5, 0x3cc6, 0x3cc7, 0x3cc8, 0x3cc9, 0x3cca, 0x3ccb, 0x3ccc,
+ 0x3ccd, 0x3cce, 0x3ccf, 0x3cd0, 0x3cd1, 0x3cd2, 0x3cd3, 0x3cd4, 0x3cd5,
+ 0x3cd6, 0x3cd7, 0x3cd8, 0x3cd9, 0x3cda, 0x3cdb, 0x3cdc, 0x3cdd, 0x3cde,
+ 0x3cdf, 0x3ce0, 0x3ce1, 0x3ce2, 0x3ce3, 0x3ce4, 0x3ce5, 0x3ce6, 0x3ce7,
+ 0x3ce8, 0x3ce9, 0x3cea, 0x3ceb, 0x3cec, 0x3ced, 0x3cee, 0x3cef, 0x3cf0,
+ 0x3cf1, 0x3cf2, 0x3cf3, 0x3cf4, 0x3cf5, 0x3cf6, 0x3cf7, 0x3cf8, 0x3cf9,
+ 0x3cfa, 0x3cfb, 0x3cfc, 0x3cfd, 0x3cfe, 0x3cff, 0x3d00, 0x3d01, 0x3d02,
+ 0x3d03, 0x3d04, 0x3d05, 0x3d06, 0x3d07, 0x3d08, 0x3d09, 0x3d0a, 0x3d0b,
+ 0x3d0c, 0x3d0d, 0x3d0e, 0x3d0f, 0x3d10, 0x3d11, 0x3d12, 0x3d13, 0x3d14,
+ 0x3d15, 0x3d16, 0x3d17, 0x3d18, 0x3d19, 0x3d1a, 0x3d1b, 0x3d1c, 0x3d1d,
+ 0x3d1e, 0x3d1f, 0x3d20, 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26,
+ 0x3d27, 0x3d28, 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475,
+ 0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c,
+ 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, 0x8cc8,
+ 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, 0x606a, 0x6164,
+ 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, 0x4f83, 0x520a, 0x58be,
+ 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f,
+ 0x6f97, 0x764e, 0x770b, 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e,
+ 0x8271, 0x8aeb, 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed,
+ 0x845b, 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f,
+ 0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3,
+ 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, 0x5323, 0x5cac, 0x7532,
+ 0x80db, 0x9240, 0x9598, 0x525b, 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7,
+ 0x5f3a, 0x5f4a, 0x6177, 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1,
+ 0x7f8c, 0x8154, 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47,
+ 0x4ecb, 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539,
+ 0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900,
+ 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, 0x91b5,
+ 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, 0x64e7, 0x6e20,
+ 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, 0x9245, 0x92f8, 0x4e7e,
+ 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47,
+ 0x9375, 0x9a2b, 0x4e5e, 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292,
+ 0x6aa2, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9,
+ 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, 0x5805,
+ 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, 0x8b74, 0x9063,
+ 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, 0x8a23, 0x517c, 0x614a,
+ 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106,
+ 0x52c1, 0x52cd, 0x537f, 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac,
+ 0x64ce, 0x656c, 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1,
+ 0x749f, 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45,
+ 0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1,
+ 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, 0x5b63,
+ 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, 0x68e8, 0x6eaa, 0x754c, 0x7678,
+ 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e,
+ 0x9dc4, 0x53e4, 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b,
+ 0x5eab, 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd,
+ 0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6,
+ 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, 0x932e,
+ 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, 0x688f, 0x7a40,
+ 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, 0x68b1, 0x68cd, 0x6efe,
+ 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171,
+ 0x529f, 0x5b54, 0x5de5, 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9,
+ 0x7a7a, 0x86a3, 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc,
+ 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, 0x5ed3,
+ 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, 0x6163, 0x68fa,
+ 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, 0x83c5, 0x89c0, 0x8cab,
+ 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321,
+ 0x58d9, 0x5ee3, 0x66e0, 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1,
+ 0x945b, 0x5366, 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a,
+ 0x6127, 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4,
+ 0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821,
+ 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, 0x86df,
+ 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, 0x4e45, 0x4e5d,
+ 0x4ec7, 0x4ff1, 0x5177, 0x52fe, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614,
+ 0x5775, 0x57a2, 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8,
+ 0x67e9, 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7,
+ 0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205,
+ 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, 0x9264,
+ 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, 0x5c40, 0x83ca,
+ 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, 0x88d9, 0x8ecd, 0x90e1,
+ 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e,
+ 0x8eac, 0x5026, 0x5238, 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a,
+ 0x6dc3, 0x7737, 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3,
+ 0x6f70, 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x9b3c,
+ 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, 0x7845, 0x7aba,
+ 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, 0x95a8, 0x52fb, 0x5747,
+ 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287,
+ 0x621f, 0x68d8, 0x6975, 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4,
+ 0x6839, 0x69ff, 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1,
+ 0x9949, 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981,
+ 0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca,
+ 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, 0x80af,
+ 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, 0x57fa, 0x57fc,
+ 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc,
+ 0x6280, 0x65d7, 0x65e3, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f,
+ 0x6b3a, 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482,
+ 0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a,
+ 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, 0x8b4f,
+ 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, 0x9a0f, 0x9a65,
+ 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, 0x91d1, 0x55ab, 0x513a,
+ 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f,
+ 0xf910, 0xf911, 0xf912, 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917,
+ 0xf918, 0x8afe, 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156,
+ 0xf91e, 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f,
+ 0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x7d0d, 0xf926,
+ 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, 0xf92a, 0xf92b, 0xf92c,
+ 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74,
+ 0x649a, 0x79ca, 0x5ff5, 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa,
+ 0xf92f, 0x5974, 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933,
+ 0xf934, 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b,
+ 0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3,
+ 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, 0xf948,
+ 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950,
+ 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, 0xf953, 0xf954, 0xf955,
+ 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba,
+ 0x591a, 0x8336, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56,
+ 0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde,
+ 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, 0x9054,
+ 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, 0x6f6d, 0x6fb9,
+ 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, 0x8b5a, 0x931f, 0x6c93,
+ 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207,
+ 0x649e, 0x68e0, 0x7576, 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e,
+ 0x5927, 0x5c0d, 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa,
+ 0x888b, 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200,
+ 0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6,
+ 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x68f9, 0x6ac2, 0x6dd8,
+ 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404,
+ 0x89a9, 0x8ced, 0x8df3, 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d,
+ 0x9676, 0x97dc, 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf,
+ 0x7be4, 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c,
+ 0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd,
+ 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, 0x75bc,
+ 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, 0x675c, 0x6793,
+ 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, 0x982d, 0x5c6f, 0x81c0,
+ 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b,
+ 0x7b49, 0x85e4, 0x8b04, 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669,
+ 0x7f85, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de,
+ 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, 0x6b04,
+ 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, 0x5d50, 0x64e5,
+ 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, 0x8964, 0x89bd, 0x62c9,
+ 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782,
+ 0x90de, 0x4f86, 0x5d0d, 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae,
+ 0x5006, 0x5169, 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f,
+ 0x8ad2, 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e,
+ 0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62,
+ 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, 0x8f62,
+ 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x7149, 0x7489, 0x7df4, 0x806f,
+ 0x84ee, 0x8f26, 0x9023, 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8,
+ 0x88c2, 0x5ec9, 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36,
+ 0x56f9, 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce,
+ 0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7,
+ 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, 0x6f5e,
+ 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, 0x8f05, 0x9732,
+ 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, 0x83c9, 0x9304, 0x9e7f,
+ 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e,
+ 0x5121, 0x7028, 0x7262, 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86,
+ 0x50da, 0x5bee, 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc,
+ 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, 0x6f0f,
+ 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, 0x5289, 0x65d2,
+ 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, 0x7460, 0x7559, 0x7624,
+ 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19,
+ 0x6dea, 0x7db8, 0x8f2a, 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2,
+ 0x808b, 0x51dc, 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda,
+ 0x5229, 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c,
+ 0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8,
+ 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, 0x6f7e,
+ 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, 0x6797, 0x6dcb,
+ 0x7433, 0x81e8, 0x9716, 0x782c, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a,
+ 0x75f2, 0x78bc, 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20,
+ 0x819c, 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162,
+ 0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513,
+ 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, 0x8309,
+ 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, 0x7db2, 0x7f54,
+ 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, 0x59b9, 0x5a92, 0x5bd0,
+ 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081,
+ 0x9b45, 0x8108, 0x8c8a, 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b,
+ 0x76f2, 0x76df, 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9,
+ 0x6c94, 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, 0x8511,
+ 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, 0x76bf, 0x7791,
+ 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, 0x8882, 0x4fae, 0x5192,
+ 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21,
+ 0x6bcd, 0x6bdb, 0x725f, 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc,
+ 0x8305, 0x8b00, 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766,
+ 0x7a46, 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893,
+ 0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7,
+ 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, 0x65e0,
+ 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, 0x821e, 0x8302,
+ 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, 0x9ed8, 0x5011, 0x520e,
+ 0x543b, 0x554f, 0x6587, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580,
+ 0x96ef, 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c,
+ 0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e,
+ 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, 0x61ab,
+ 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, 0x7de1, 0x9594,
+ 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, 0x640f, 0x64b2, 0x6734,
+ 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236,
+ 0x8584, 0x8feb, 0x96f9, 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc,
+ 0x642c, 0x6500, 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622,
+ 0x76e4, 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4,
+ 0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, 0x767c, 0x8dcb,
+ 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, 0x574a, 0x59a8, 0x5c28,
+ 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c,
+ 0x6ec2, 0x78c5, 0x7d21, 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c,
+ 0x8a2a, 0x8b17, 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9,
+ 0x5f98, 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da,
+ 0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70,
+ 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, 0x7169,
+ 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, 0x4f10, 0x7b4f,
+ 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, 0x6c4e, 0x6cdb, 0x72af,
+ 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97,
+ 0x74a7, 0x7656, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01,
+ 0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19,
+ 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, 0x70b3,
+ 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, 0x4fdd, 0x5821,
+ 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, 0x6f7d, 0x73e4, 0x752b,
+ 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c,
+ 0x5b93, 0x5fa9, 0x670d, 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986,
+ 0x8f39, 0x8f3b, 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01,
+ 0x5cef, 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec,
+ 0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256,
+ 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, 0x5b5a, 0x5b75, 0x5bcc,
+ 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26,
+ 0x7c3f, 0x7f36, 0x8150, 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03,
+ 0x8ca0, 0x8ce6, 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644,
+ 0x99d9, 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e,
+ 0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde,
+ 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, 0x62c2,
+ 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, 0x5099, 0x5315,
+ 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, 0x618a, 0x6249, 0x6279,
+ 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968,
+ 0x7435, 0x75fa, 0x7812, 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1,
+ 0x80a5, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb,
+ 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, 0x6ab3,
+ 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, 0x8cd3, 0x983b,
+ 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a,
+ 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db,
+ 0x58eb, 0x5962, 0x5a11, 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99,
+ 0x601d, 0x6368, 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99,
+ 0x6cd7, 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1,
+ 0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df,
+ 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, 0x99df,
+ 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, 0x5098, 0x522a, 0x5c71, 0x6563,
+ 0x6c55, 0x73ca, 0x7523, 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77,
+ 0x6492, 0x6bba, 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17,
+ 0x829f, 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7,
+ 0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38,
+ 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, 0x7240,
+ 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, 0x8a73, 0x8c61,
+ 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, 0xf96c, 0x7a61, 0x7d22,
+ 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc,
+ 0x5e8f, 0x5eb6, 0x5f90, 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9,
+ 0x66f8, 0x6816, 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72,
+ 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, 0x9f20,
+ 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, 0x6c50, 0x6dc5,
+ 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, 0x4ed9, 0x50ca, 0x5148,
+ 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401,
+ 0x7444, 0x7487, 0x74bf, 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a,
+ 0x81b3, 0x8239, 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425,
+ 0x994d, 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c,
+ 0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2,
+ 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, 0xf96e,
+ 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, 0x665f, 0x7329,
+ 0x73f9, 0x76db, 0x7701, 0x7b6c, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192,
+ 0x4e16, 0x52e2, 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0,
+ 0x53ec, 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383,
+ 0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2,
+ 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, 0x7d39,
+ 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, 0x92b7, 0x97f6,
+ 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, 0x7e8c, 0x8b16, 0x8d16,
+ 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b,
+ 0x609a, 0x677e, 0x6dde, 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970,
+ 0x7051, 0x788e, 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da,
+ 0x5782, 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x620d,
+ 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, 0x6c34, 0x6d19,
+ 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, 0x7626, 0x7761, 0x79c0,
+ 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331,
+ 0x8490, 0x84da, 0x85ea, 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083,
+ 0x916c, 0x9296, 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808,
+ 0x9996, 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1,
+ 0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa,
+ 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, 0x73e3,
+ 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, 0x84f4, 0x8563,
+ 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, 0x620c, 0x8853, 0x8ff0,
+ 0x9265, 0x5d07, 0x5d27, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe,
+ 0x7fd2, 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f,
+ 0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4,
+ 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, 0x6642,
+ 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, 0x84cd, 0x8996,
+ 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, 0x5bd4, 0x5f0f, 0x606f,
+ 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe,
+ 0x98df, 0x98fe, 0x4f38, 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c,
+ 0x65b0, 0x6668, 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398,
+ 0x85aa, 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931,
+ 0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0xf972, 0x6df1,
+ 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, 0xf973, 0x96d9, 0x6c0f,
+ 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd,
+ 0x83aa, 0x86fe, 0x8859, 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d,
+ 0x580a, 0x5cb3, 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25,
+ 0x9102, 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f,
+ 0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb,
+ 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, 0x95c7,
+ 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, 0x663b, 0x6b83,
+ 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, 0x611b, 0x66d6, 0x6daf,
+ 0x788d, 0x827e, 0x9698, 0x9744, 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a,
+ 0x814b, 0x984d, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6,
+ 0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31,
+ 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, 0xf977,
+ 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, 0x6518, 0x656d,
+ 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, 0x716c, 0x75d2, 0x760d,
+ 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0,
+ 0x967d, 0xf97e, 0x990a, 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6,
+ 0x8a9e, 0x99ad, 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6,
+ 0x5043, 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa,
+ 0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88,
+ 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0xf983, 0x6b5f, 0x6c5d,
+ 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d,
+ 0xf986, 0x9918, 0xf987, 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79,
+ 0x6613, 0xf98b, 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b,
+ 0x56a5, 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990,
+ 0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5,
+ 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, 0xf994,
+ 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, 0xf997, 0x884d,
+ 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, 0x9cf6, 0xf99c, 0xf99d,
+ 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad,
+ 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276,
+ 0x82d2, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449,
+ 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, 0x6620,
+ 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, 0x6fda, 0x701b,
+ 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, 0xf9ae, 0x74d4, 0x76c8,
+ 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348,
+ 0xf9b2, 0x9719, 0xf9b3, 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1,
+ 0x66f3, 0x6c6d, 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602,
+ 0xf9b6, 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713,
+ 0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da,
+ 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, 0x6556,
+ 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x70cf, 0x71ac, 0x7352, 0x7b7d,
+ 0x8708, 0x8aa4, 0x9c32, 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a,
+ 0x6eab, 0x7465, 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1,
+ 0x74ee, 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6,
+ 0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b,
+ 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, 0x7feb,
+ 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, 0x5f80, 0x65fa,
+ 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, 0x77ee, 0x5916, 0x5d6c,
+ 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d,
+ 0x5996, 0x59da, 0x5be5, 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493,
+ 0x64fe, 0xf9be, 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1,
+ 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, 0x8981,
+ 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, 0x6d74, 0x7e1f,
+ 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, 0x57c7, 0x5889, 0x5bb9,
+ 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528,
+ 0x752c, 0x8073, 0x8338, 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e,
+ 0x4f51, 0x5076, 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24,
+ 0x611a, 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991,
+ 0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5,
+ 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, 0x682f,
+ 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, 0x6b9e, 0x6f90,
+ 0x7189, 0x8018, 0x82b8, 0x8553, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a,
+ 0x9b31, 0x4e90, 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712,
+ 0x57a3, 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39,
+ 0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060,
+ 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, 0x5049,
+ 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, 0x6690, 0x6e2d,
+ 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, 0x853f, 0x875f, 0x885b,
+ 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a,
+ 0xf9c7, 0x552f, 0x55a9, 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0,
+ 0x60df, 0x6108, 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da,
+ 0xf9c9, 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, 0x6fe1,
+ 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, 0xf9ce, 0xf9cf,
+ 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, 0x8aed, 0x8e30, 0x8e42,
+ 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809,
+ 0xf9d2, 0x6bd3, 0x8089, 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39,
+ 0xf9d5, 0xf9d6, 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f,
+ 0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d,
+ 0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59,
+ 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, 0x9091,
+ 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, 0x5b9c, 0x610f,
+ 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, 0x7fa9, 0x8264, 0x858f,
+ 0x87fb, 0x8863, 0x8abc, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd,
+ 0xf9de, 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0,
+ 0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5,
+ 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, 0xf9e8,
+ 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, 0xf9eb, 0xf9ec,
+ 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, 0x4eba, 0x4ec1, 0x5203,
+ 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e,
+ 0xf9ee, 0xf9ef, 0x7d6a, 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d,
+ 0x9777, 0xf9f2, 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2,
+ 0x9038, 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4,
+ 0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, 0xf9f7, 0xf9f8,
+ 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, 0x523a, 0x54a8, 0x59c9,
+ 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e,
+ 0x7386, 0x74f7, 0x75b5, 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517,
+ 0x85c9, 0x8aee, 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628,
+ 0x707c, 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71,
+ 0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a,
+ 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, 0x596c,
+ 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, 0x6a1f, 0x6aa3,
+ 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, 0x7ae0, 0x7ca7, 0x8178,
+ 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13,
+ 0x91ac, 0x9577, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750,
+ 0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09,
+ 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, 0x5132,
+ 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, 0x6cae, 0x6e1a,
+ 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, 0x83f9, 0x8457, 0x85f7,
+ 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a,
+ 0x5ae1, 0x5bc2, 0x6458, 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d,
+ 0x7b1b, 0x7c4d, 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1,
+ 0x8e5f, 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168,
+ 0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb,
+ 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, 0x714e, 0x7420, 0x7530,
+ 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e,
+ 0x8f3e, 0x8f49, 0x923f, 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b,
+ 0x991e, 0x5207, 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76,
+ 0x5360, 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede,
+ 0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448,
+ 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, 0x653f,
+ 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, 0x6b63, 0x6c40,
+ 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, 0x738e, 0x73fd, 0x753a,
+ 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02,
+ 0x8aea, 0x8c9e, 0x912d, 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706,
+ 0x9756, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d,
+ 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, 0x85ba,
+ 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, 0x984c, 0x9f4a,
+ 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, 0x5f6b, 0x63aa, 0x64cd,
+ 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15,
+ 0x6f6e, 0x7167, 0x71e5, 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df,
+ 0x7a20, 0x7a95, 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4,
+ 0x8a54, 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5,
+ 0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9,
+ 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, 0x742e,
+ 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, 0x8e2a, 0x8e35, 0x937e, 0x9418,
+ 0x4f50, 0x5750, 0x5de6, 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f,
+ 0x505a, 0x59dd, 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde,
+ 0x5eda, 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d,
+ 0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db,
+ 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, 0x9444,
+ 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, 0x5bef, 0x5cfb,
+ 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, 0x756f, 0x7ae3, 0x8822,
+ 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd,
+ 0x537d, 0x6adb, 0x696b, 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef,
+ 0x70dd, 0x7511, 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea,
+ 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, 0x65e8,
+ 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, 0x77e5, 0x7825,
+ 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, 0x829d, 0x82b7, 0x8718,
+ 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54,
+ 0x8077, 0x5507, 0x55d4, 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d,
+ 0x699b, 0x6b84, 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9,
+ 0x76e1, 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897,
+ 0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707,
+ 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, 0x79e9,
+ 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, 0x6715, 0xf9fd,
+ 0x57f7, 0x6f57, 0x7ddd, 0x8f2f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84,
+ 0x4e14, 0x4f98, 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64,
+ 0x78cb, 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740,
+ 0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da,
+ 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, 0x9910,
+ 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, 0x53c3, 0x5879,
+ 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, 0x8b96, 0x5009, 0x5021,
+ 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636,
+ 0x66a2, 0x69cd, 0x6ec4, 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259,
+ 0x83d6, 0x84bc, 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826,
+ 0x7db5, 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x8cac,
+ 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, 0x5c3a, 0x617d,
+ 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, 0x810a, 0x8e60, 0x965f,
+ 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa,
+ 0x7394, 0x7a7f, 0x821b, 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1,
+ 0x9621, 0x97c6, 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4,
+ 0x8f1f, 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb,
+ 0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252,
+ 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, 0x807d,
+ 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, 0x6d95, 0x6eef,
+ 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, 0x527f, 0x54e8, 0x6194,
+ 0x6284, 0x62db, 0x68a2, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d,
+ 0x7901, 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549,
+ 0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7,
+ 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, 0x5bf5,
+ 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, 0x64ae, 0x50ac,
+ 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, 0x6978, 0x6a1e, 0x6e6b,
+ 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b,
+ 0x919c, 0x9310, 0x9318, 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c,
+ 0x795d, 0x7afa, 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8,
+ 0x9010, 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0,
+ 0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x8d05, 0x53d6,
+ 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, 0x805a, 0x8106, 0x81ed,
+ 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c,
+ 0x5c64, 0x4f88, 0x5024, 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb,
+ 0x6dc4, 0x71be, 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb,
+ 0x7f6e, 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5,
+ 0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88,
+ 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, 0x5feb,
+ 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, 0x62d6, 0x6736,
+ 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, 0x5353, 0x5544, 0x577c,
+ 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422,
+ 0x7438, 0x8a17, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e,
+ 0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d,
+ 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, 0x8569,
+ 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, 0x6cf0, 0x7b1e,
+ 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, 0x64c7, 0x6fa4, 0x6491,
+ 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db,
+ 0x7b52, 0x7d71, 0x901a, 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839,
+ 0x5078, 0x5957, 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6,
+ 0x5761, 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e,
+ 0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742,
+ 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x962a, 0x516b, 0x53ed,
+ 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd,
+ 0x7a17, 0x8987, 0x8c9d, 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf,
+ 0x504f, 0x6241, 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19,
+ 0x8cb6, 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63,
+ 0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305,
+ 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, 0x62b1,
+ 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, 0x812f, 0x82de,
+ 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, 0x98fd, 0x9b91, 0x5e45,
+ 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153,
+ 0x6753, 0x6a19, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4,
+ 0x9a43, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c,
+ 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, 0x5fc5,
+ 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, 0x4e4f, 0x903c,
+ 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, 0x6cb3, 0x7455, 0x8377,
+ 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14,
+ 0x9db4, 0x5bd2, 0x6068, 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a,
+ 0x7f55, 0x7ff0, 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd,
+ 0x542b, 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c,
+ 0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c,
+ 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, 0x6841,
+ 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0xfa08, 0xfa09, 0x9805, 0x4ea5,
+ 0x5055, 0x54b3, 0x5793, 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77,
+ 0x7023, 0x87f9, 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be,
+ 0x6838, 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae,
+ 0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b,
+ 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, 0x5955,
+ 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, 0x665b, 0x6ceb,
+ 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, 0x7d43, 0x7d62, 0x7e23,
+ 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840,
+ 0x9801, 0x5acc, 0x4fe0, 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9,
+ 0x8105, 0x8107, 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b,
+ 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, 0x7469,
+ 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, 0x516e, 0x5f57,
+ 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, 0x978b, 0x4e4e, 0x4e92,
+ 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a,
+ 0x6667, 0x6beb, 0x6d69, 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9,
+ 0x705d, 0x72d0, 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e,
+ 0x80e1, 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a,
+ 0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7,
+ 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, 0x6c5e,
+ 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, 0x5316, 0x548c,
+ 0x5b05, 0x6a3a, 0x706b, 0x7575, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71,
+ 0x8b41, 0x8ca8, 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b,
+ 0x4e38, 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665,
+ 0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b,
+ 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, 0x60f6,
+ 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, 0x6ec9, 0x6f62,
+ 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, 0x8757, 0x9051, 0x968d,
+ 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666,
+ 0x6703, 0x6a9c, 0x6dee, 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334,
+ 0x86d4, 0x8aa8, 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee,
+ 0x5686, 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, 0x723b,
+ 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, 0x543c, 0x5589,
+ 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, 0x9005, 0x52db, 0x52f3,
+ 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8,
+ 0x55a7, 0x6684, 0x714a, 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd,
+ 0x63ee, 0x6689, 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb,
+ 0x7566, 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36,
+ 0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07,
+ 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, 0x8208,
+ 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, 0x5e0c, 0x6199,
+ 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, 0x71ba, 0x72a7, 0x79a7,
+ 0x7a00, 0x7fb2, 0x8a70,
+ 0/* End of table; # of entries=8741(0x2225)+1 */
+
+};
+int ksc5601max=sizeof(tabksc5601)/sizeof(tabksc5601[0])-1;
+ /* # of entries in the table. */
diff --git a/src/cmd/tcs/ksc.h b/src/cmd/tcs/ksc.h
new file mode 100644
index 00000000..cf8cf66f
--- /dev/null
+++ b/src/cmd/tcs/ksc.h
@@ -0,0 +1,2 @@
+extern long tabksc5601[]; /* runes indexed by kuten */
+extern int ksc5601max; /* # of entries in the table. */
diff --git a/src/cmd/tcs/kuten208.c b/src/cmd/tcs/kuten208.c
new file mode 100644
index 00000000..4f551526
--- /dev/null
+++ b/src/cmd/tcs/kuten208.c
@@ -0,0 +1,1055 @@
+#include "kuten208.h"
+
+long tabkuten208[KUTEN208MAX] = {
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x3000,0x3001,0x3002,
+0xff0c,0xff0e,0x30fb,0xff1a,0xff1b,0xff1f,0xff01,0x309b,
+0x309c,0x00b4,0xff40,0x00a8,0xff3e,0xffe3,0xff3f,0x30fd,
+0x30fe,0x309d,0x309e,0x3003,0x4edd,0x3005,0x3006,0x3007,
+0x30fc,0x2015,0x2010,0xff0f,0xff3c,0x301c,0x2225,0xff5c,
+0x2026,0x2025,0x2018,0x2019,0x201c,0x201d,0xff08,0xff09,
+0x3014,0x3015,0xff3b,0xff3d,0xff5b,0xff5d,0x3008,0x3009,
+0x300a,0x300b,0x300c,0x300d,0x300e,0x300f,0x3010,0x3011,
+0xff0b,0xff0d,0x00b1,0x00d7,0x00f7,0xff1d,0x2260,0xff1c,
+0xff1e,0x2266,0x2267,0x221e,0x2234,0x2642,0x2640,0x00b0,
+0x2032,0x2033,0x2103,0xffe5,0xff04,0xffe0,0xffe1,0xff05,
+0xff03,0xff06,0xff0a,0xff20,0x00a7,0x2606,0x2605,0x25cb,
+0x25cf,0x25ce,0x25c7, -1, -1, -1, -1, -1,
+ -1,0x25c6,0x25a1,0x25a0,0x25b3,0x25b2,0x25bd,0x25bc,
+0x203b,0x3012,0x2192,0x2190,0x2191,0x2193,0x3013, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1,0x2208,0x220b,0x2286,0x2287,0x2282,0x2283,
+0x222a,0x2229, -1, -1, -1, -1, -1, -1,
+ -1, -1,0x2227,0x2228,0xffe2,0x21d2,0x21d4,0x2200,
+0x2203, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1,0x2220,0x22a5,0x2312,0x2202,
+0x2207,0x2261,0x2252,0x226a,0x226b,0x221a,0x223d,0x221d,
+0x2235,0x222b,0x222c, -1, -1, -1, -1, -1,
+ -1, -1,0x212b,0x2030,0x266f,0x266d,0x266a,0x2020,
+0x2021,0x00b6, -1, -1, -1, -1,0x25ef, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1,0xff10,0xff11,0xff12,0xff13,
+0xff14,0xff15,0xff16,0xff17,0xff18,0xff19, -1, -1,
+ -1, -1, -1, -1, -1,0xff21,0xff22,0xff23,
+0xff24,0xff25,0xff26,0xff27,0xff28,0xff29,0xff2a,0xff2b,
+0xff2c,0xff2d,0xff2e,0xff2f,0xff30,0xff31,0xff32,0xff33,
+0xff34,0xff35,0xff36,0xff37,0xff38,0xff39,0xff3a, -1,
+ -1, -1, -1, -1, -1,0xff41,0xff42,0xff43,
+0xff44,0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,
+0xff4c,0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,
+0xff54,0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,
+0x3048,0x3049,0x304a,0x304b,0x304c,0x304d,0x304e,0x304f,
+0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,
+0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,0x305f,
+0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,
+0x3068,0x3069,0x306a,0x306b,0x306c,0x306d,0x306e,0x306f,
+0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,
+0x3078,0x3079,0x307a,0x307b,0x307c,0x307d,0x307e,0x307f,
+0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,
+0x3088,0x3089,0x308a,0x308b,0x308c,0x308d,0x308e,0x308f,
+0x3090,0x3091,0x3092,0x3093, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x30a1,0x30a2,0x30a3,
+0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,0x30ab,
+0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3,
+0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,
+0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c3,
+0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30ca,0x30cb,
+0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,0x30d3,
+0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db,
+0x30dc,0x30dd,0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3,
+0x30e4,0x30e5,0x30e6,0x30e7,0x30e8,0x30e9,0x30ea,0x30eb,
+0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,0x30f1,0x30f2,0x30f3,
+0x30f4,0x30f5,0x30f6, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
+0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,
+0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,
+0x03a9, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,
+0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,
+0x03c0,0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,
+0x03c9, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x0410,0x0411,0x0412,
+0x0413,0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419,
+0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,0x0420,0x0421,
+0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,
+0x042a,0x042b,0x042c,0x042d,0x042e,0x042f, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x0430,0x0431,0x0432,
+0x0433,0x0434,0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,
+0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,0x0440,0x0441,
+0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,
+0x044a,0x044b,0x044c,0x044d,0x044e,0x044f, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x2500,0x2502,0x250c,0x2510,0x2518,0x2514,0x251c,
+0x252c,0x2524,0x2534,0x253c,0x2501,0x2503,0x250f,0x2513,
+0x251b,0x2517,0x2523,0x2533,0x252b,0x253b,0x254b,0x2520,
+0x252f,0x2528,0x2537,0x253f,0x251d,0x2530,0x2525,0x2538,
+0x2542, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x4e9c,0x5516,0x5a03,0x963f,0x54c0,0x611b,0x6328,
+0x59f6,0x9022,0x8475,0x831c,0x7a50,0x60aa,0x63e1,0x6e25,
+0x65ed,0x8466,0x82a6,0x9bf5,0x6893,0x5727,0x65a1,0x6271,
+0x5b9b,0x59d0,0x867b,0x98f4,0x7d62,0x7dbe,0x9b8e,0x6216,
+0x7c9f,0x88b7,0x5b89,0x5eb5,0x6309,0x6697,0x6848,0x95c7,
+0x978d,0x674f,0x4ee5,0x4f0a,0x4f4d,0x4f9d,0x5049,0x56f2,
+0x5937,0x59d4,0x5a01,0x5c09,0x60df,0x610f,0x6170,0x6613,
+0x6905,0x70ba,0x754f,0x7570,0x79fb,0x7dad,0x7def,0x80c3,
+0x840e,0x8863,0x8b02,0x9055,0x907a,0x533b,0x4e95,0x4ea5,
+0x57df,0x80b2,0x90c1,0x78ef,0x4e00,0x58f1,0x6ea2,0x9038,
+0x7a32,0x8328,0x828b,0x9c2f,0x5141,0x5370,0x54bd,0x54e1,
+0x56e0,0x59fb,0x5f15,0x98f2,0x6deb,0x80e4,0x852d, -1,
+ -1, -1, -1, -1, -1,0x9662,0x9670,0x96a0,
+0x97fb,0x540b,0x53f3,0x5b87,0x70cf,0x7fbd,0x8fc2,0x96e8,
+0x536f,0x9d5c,0x7aba,0x4e11,0x7893,0x81fc,0x6e26,0x5618,
+0x5504,0x6b1d,0x851a,0x9c3b,0x59e5,0x53a9,0x6d66,0x74dc,
+0x958f,0x5642,0x4e91,0x904b,0x96f2,0x834f,0x990c,0x53e1,
+0x55b6,0x5b30,0x5f71,0x6620,0x66f3,0x6804,0x6c38,0x6cf3,
+0x6d29,0x745b,0x76c8,0x7a4e,0x9834,0x82f1,0x885b,0x8a60,
+0x92ed,0x6db2,0x75ab,0x76ca,0x99c5,0x60a6,0x8b01,0x8d8a,
+0x95b2,0x698e,0x53ad,0x5186,0x5712,0x5830,0x5944,0x5bb4,
+0x5ef6,0x6028,0x63a9,0x63f4,0x6cbf,0x6f14,0x708e,0x7114,
+0x7159,0x71d5,0x733f,0x7e01,0x8276,0x82d1,0x8597,0x9060,
+0x925b,0x9d1b,0x5869,0x65bc,0x6c5a,0x7525,0x51f9,0x592e,
+0x5965,0x5f80,0x5fdc, -1, -1, -1, -1, -1,
+ -1,0x62bc,0x65fa,0x6a2a,0x6b27,0x6bb4,0x738b,0x7fc1,
+0x8956,0x9d2c,0x9d0e,0x9ec4,0x5ca1,0x6c96,0x837b,0x5104,
+0x5c4b,0x61b6,0x81c6,0x6876,0x7261,0x4e59,0x4ffa,0x5378,
+0x6069,0x6e29,0x7a4f,0x97f3,0x4e0b,0x5316,0x4eee,0x4f55,
+0x4f3d,0x4fa1,0x4f73,0x52a0,0x53ef,0x5609,0x590f,0x5ac1,
+0x5bb6,0x5be1,0x79d1,0x6687,0x679c,0x67b6,0x6b4c,0x6cb3,
+0x706b,0x73c2,0x798d,0x79be,0x7a3c,0x7b87,0x82b1,0x82db,
+0x8304,0x8377,0x83ef,0x83d3,0x8766,0x8ab2,0x5629,0x8ca8,
+0x8fe6,0x904e,0x971e,0x868a,0x4fc4,0x5ce8,0x6211,0x7259,
+0x753b,0x81e5,0x82bd,0x86fe,0x8cc0,0x96c5,0x9913,0x99d5,
+0x4ecb,0x4f1a,0x89e3,0x56de,0x584a,0x58ca,0x5efb,0x5feb,
+0x602a,0x6094,0x6062,0x61d0,0x6212,0x62d0,0x6539, -1,
+ -1, -1, -1, -1, -1,0x9b41,0x6666,0x68b0,
+0x6d77,0x7070,0x754c,0x7686,0x7d75,0x82a5,0x87f9,0x958b,
+0x968e,0x8c9d,0x51f1,0x52be,0x5916,0x54b3,0x5bb3,0x5d16,
+0x6168,0x6982,0x6daf,0x788d,0x84cb,0x8857,0x8a72,0x93a7,
+0x9ab8,0x6d6c,0x99a8,0x86d9,0x57a3,0x67ff,0x86ce,0x920e,
+0x5283,0x5687,0x5404,0x5ed3,0x62e1,0x64b9,0x683c,0x6838,
+0x6bbb,0x7372,0x78ba,0x7a6b,0x899a,0x89d2,0x8d6b,0x8f03,
+0x90ed,0x95a3,0x9694,0x9769,0x5b66,0x5cb3,0x697d,0x984d,
+0x984e,0x639b,0x7b20,0x6a2b,0x6a7f,0x68b6,0x9c0d,0x6f5f,
+0x5272,0x559d,0x6070,0x62ec,0x6d3b,0x6e07,0x6ed1,0x845b,
+0x8910,0x8f44,0x4e14,0x9c39,0x53f6,0x691b,0x6a3a,0x9784,
+0x682a,0x515c,0x7ac3,0x84b2,0x91dc,0x938c,0x565b,0x9d28,
+0x6822,0x8305,0x8431, -1, -1, -1, -1, -1,
+ -1,0x7ca5,0x5208,0x82c5,0x74e6,0x4e7e,0x4f83,0x51a0,
+0x5bd2,0x520a,0x52d8,0x52e7,0x5dfb,0x559a,0x582a,0x59e6,
+0x5b8c,0x5b98,0x5bdb,0x5e72,0x5e79,0x60a3,0x611f,0x6163,
+0x61be,0x63db,0x6562,0x67d1,0x6853,0x68fa,0x6b3e,0x6b53,
+0x6c57,0x6f22,0x6f97,0x6f45,0x74b0,0x7518,0x76e3,0x770b,
+0x7aff,0x7ba1,0x7c21,0x7de9,0x7f36,0x7ff0,0x809d,0x8266,
+0x839e,0x89b3,0x8acc,0x8cab,0x9084,0x9451,0x9593,0x9591,
+0x95a2,0x9665,0x97d3,0x9928,0x8218,0x4e38,0x542b,0x5cb8,
+0x5dcc,0x73a9,0x764c,0x773c,0x5ca9,0x7feb,0x8d0b,0x96c1,
+0x9811,0x9854,0x9858,0x4f01,0x4f0e,0x5371,0x559c,0x5668,
+0x57fa,0x5947,0x5b09,0x5bc4,0x5c90,0x5e0c,0x5e7e,0x5fcc,
+0x63ee,0x673a,0x65d7,0x65e2,0x671f,0x68cb,0x68c4, -1,
+ -1, -1, -1, -1, -1,0x6a5f,0x5e30,0x6bc5,
+0x6c17,0x6c7d,0x757f,0x7948,0x5b63,0x7a00,0x7d00,0x5fbd,
+0x898f,0x8a18,0x8cb4,0x8d77,0x8ecc,0x8f1d,0x98e2,0x9a0e,
+0x9b3c,0x4e80,0x507d,0x5100,0x5993,0x5b9c,0x622f,0x6280,
+0x64ec,0x6b3a,0x72a0,0x7591,0x7947,0x7fa9,0x87fb,0x8abc,
+0x8b70,0x63ac,0x83ca,0x97a0,0x5409,0x5403,0x55ab,0x6854,
+0x6a58,0x8a70,0x7827,0x6775,0x9ecd,0x5374,0x5ba2,0x811a,
+0x8650,0x9006,0x4e18,0x4e45,0x4ec7,0x4f11,0x53ca,0x5438,
+0x5bae,0x5f13,0x6025,0x6551,0x673d,0x6c42,0x6c72,0x6ce3,
+0x7078,0x7403,0x7a76,0x7aae,0x7b08,0x7d1a,0x7cfe,0x7d66,
+0x65e7,0x725b,0x53bb,0x5c45,0x5de8,0x62d2,0x62e0,0x6319,
+0x6e20,0x865a,0x8a31,0x8ddd,0x92f8,0x6f01,0x79a6,0x9b5a,
+0x4ea8,0x4eab,0x4eac, -1, -1, -1, -1, -1,
+ -1,0x4f9b,0x4fa0,0x50d1,0x5147,0x7af6,0x5171,0x51f6,
+0x5354,0x5321,0x537f,0x53eb,0x55ac,0x5883,0x5ce1,0x5f37,
+0x5f4a,0x602f,0x6050,0x606d,0x631f,0x6559,0x6a4b,0x6cc1,
+0x72c2,0x72ed,0x77ef,0x80f8,0x8105,0x8208,0x854e,0x90f7,
+0x93e1,0x97ff,0x9957,0x9a5a,0x4ef0,0x51dd,0x5c2d,0x6681,
+0x696d,0x5c40,0x66f2,0x6975,0x7389,0x6850,0x7c81,0x50c5,
+0x52e4,0x5747,0x5dfe,0x9326,0x65a4,0x6b23,0x6b3d,0x7434,
+0x7981,0x79bd,0x7b4b,0x7dca,0x82b9,0x83cc,0x887f,0x895f,
+0x8b39,0x8fd1,0x91d1,0x541f,0x9280,0x4e5d,0x5036,0x53e5,
+0x533a,0x72d7,0x7396,0x77e9,0x82e6,0x8eaf,0x99c6,0x99c8,
+0x99d2,0x5177,0x611a,0x865e,0x55b0,0x7a7a,0x5076,0x5bd3,
+0x9047,0x9685,0x4e32,0x6adb,0x91e7,0x5c51,0x5c48, -1,
+ -1, -1, -1, -1, -1,0x6398,0x7a9f,0x6c93,
+0x9774,0x8f61,0x7aaa,0x718a,0x9688,0x7c82,0x6817,0x7e70,
+0x6851,0x936c,0x52f2,0x541b,0x85ab,0x8a13,0x7fa4,0x8ecd,
+0x90e1,0x5366,0x8888,0x7941,0x4fc2,0x50be,0x5211,0x5144,
+0x5553,0x572d,0x73ea,0x578b,0x5951,0x5f62,0x5f84,0x6075,
+0x6176,0x6167,0x61a9,0x63b2,0x643a,0x656c,0x666f,0x6842,
+0x6e13,0x7566,0x7a3d,0x7cfb,0x7d4c,0x7d99,0x7e4b,0x7f6b,
+0x830e,0x834a,0x86cd,0x8a08,0x8a63,0x8b66,0x8efd,0x981a,
+0x9d8f,0x82b8,0x8fce,0x9be8,0x5287,0x621f,0x6483,0x6fc0,
+0x9699,0x6841,0x5091,0x6b20,0x6c7a,0x6f54,0x7a74,0x7d50,
+0x8840,0x8a23,0x6708,0x4ef6,0x5039,0x5026,0x5065,0x517c,
+0x5238,0x5263,0x55a7,0x570f,0x5805,0x5acc,0x5efa,0x61b2,
+0x61f8,0x62f3,0x6372, -1, -1, -1, -1, -1,
+ -1,0x691c,0x6a29,0x727d,0x72ac,0x732e,0x7814,0x786f,
+0x7d79,0x770c,0x80a9,0x898b,0x8b19,0x8ce2,0x8ed2,0x9063,
+0x9375,0x967a,0x9855,0x9a13,0x9e78,0x5143,0x539f,0x53b3,
+0x5e7b,0x5f26,0x6e1b,0x6e90,0x7384,0x73fe,0x7d43,0x8237,
+0x8a00,0x8afa,0x9650,0x4e4e,0x500b,0x53e4,0x547c,0x56fa,
+0x59d1,0x5b64,0x5df1,0x5eab,0x5f27,0x6238,0x6545,0x67af,
+0x6e56,0x72d0,0x7cca,0x88b4,0x80a1,0x80e1,0x83f0,0x864e,
+0x8a87,0x8de8,0x9237,0x96c7,0x9867,0x9f13,0x4e94,0x4e92,
+0x4f0d,0x5348,0x5449,0x543e,0x5a2f,0x5f8c,0x5fa1,0x609f,
+0x68a7,0x6a8e,0x745a,0x7881,0x8a9e,0x8aa4,0x8b77,0x9190,
+0x4e5e,0x9bc9,0x4ea4,0x4f7c,0x4faf,0x5019,0x5016,0x5149,
+0x516c,0x529f,0x52b9,0x52fe,0x539a,0x53e3,0x5411, -1,
+ -1, -1, -1, -1, -1,0x540e,0x5589,0x5751,
+0x57a2,0x597d,0x5b54,0x5b5d,0x5b8f,0x5de5,0x5de7,0x5df7,
+0x5e78,0x5e83,0x5e9a,0x5eb7,0x5f18,0x6052,0x614c,0x6297,
+0x62d8,0x63a7,0x653b,0x6602,0x6643,0x66f4,0x676d,0x6821,
+0x6897,0x69cb,0x6c5f,0x6d2a,0x6d69,0x6e2f,0x6e9d,0x7532,
+0x7687,0x786c,0x7a3f,0x7ce0,0x7d05,0x7d18,0x7d5e,0x7db1,
+0x8015,0x8003,0x80af,0x80b1,0x8154,0x818f,0x822a,0x8352,
+0x884c,0x8861,0x8b1b,0x8ca2,0x8cfc,0x90ca,0x9175,0x9271,
+0x783f,0x92fc,0x95a4,0x964d,0x9805,0x9999,0x9ad8,0x9d3b,
+0x525b,0x52ab,0x53f7,0x5408,0x58d5,0x62f7,0x6fe0,0x8c6a,
+0x8f5f,0x9eb9,0x514b,0x523b,0x544a,0x56fd,0x7a40,0x9177,
+0x9d60,0x9ed2,0x7344,0x6f09,0x8170,0x7511,0x5ffd,0x60da,
+0x9aa8,0x72db,0x8fbc, -1, -1, -1, -1, -1,
+ -1,0x6b64,0x9803,0x4eca,0x56f0,0x5764,0x58be,0x5a5a,
+0x6068,0x61c7,0x660f,0x6606,0x6839,0x68b1,0x6df7,0x75d5,
+0x7d3a,0x826e,0x9b42,0x4e9b,0x4f50,0x53c9,0x5506,0x5d6f,
+0x5de6,0x5dee,0x67fb,0x6c99,0x7473,0x7802,0x8a50,0x9396,
+0x88df,0x5750,0x5ea7,0x632b,0x50b5,0x50ac,0x518d,0x6700,
+0x54c9,0x585e,0x59bb,0x5bb0,0x5f69,0x624d,0x63a1,0x683d,
+0x6b73,0x6e08,0x707d,0x91c7,0x7280,0x7815,0x7826,0x796d,
+0x658e,0x7d30,0x83dc,0x88c1,0x8f09,0x969b,0x5264,0x5728,
+0x6750,0x7f6a,0x8ca1,0x51b4,0x5742,0x962a,0x583a,0x698a,
+0x80b4,0x54b2,0x5d0e,0x57fc,0x7895,0x9dfa,0x4f5c,0x524a,
+0x548b,0x643e,0x6628,0x6714,0x67f5,0x7a84,0x7b56,0x7d22,
+0x932f,0x685c,0x9bad,0x7b39,0x5319,0x518a,0x5237, -1,
+ -1, -1, -1, -1, -1,0x5bdf,0x62f6,0x64ae,
+0x64e6,0x672d,0x6bba,0x85a9,0x96d1,0x7690,0x9bd6,0x634c,
+0x9306,0x9bab,0x76bf,0x6652,0x4e09,0x5098,0x53c2,0x5c71,
+0x60e8,0x6492,0x6563,0x685f,0x71e6,0x73ca,0x7523,0x7b97,
+0x7e82,0x8695,0x8b83,0x8cdb,0x9178,0x9910,0x65ac,0x66ab,
+0x6b8b,0x4ed5,0x4ed4,0x4f3a,0x4f7f,0x523a,0x53f8,0x53f2,
+0x55e3,0x56db,0x58eb,0x59cb,0x59c9,0x59ff,0x5b50,0x5c4d,
+0x5e02,0x5e2b,0x5fd7,0x601d,0x6307,0x652f,0x5b5c,0x65af,
+0x65bd,0x65e8,0x679d,0x6b62,0x6b7b,0x6c0f,0x7345,0x7949,
+0x79c1,0x7cf8,0x7d19,0x7d2b,0x80a2,0x8102,0x81f3,0x8996,
+0x8a5e,0x8a69,0x8a66,0x8a8c,0x8aee,0x8cc7,0x8cdc,0x96cc,
+0x98fc,0x6b6f,0x4e8b,0x4f3c,0x4f8d,0x5150,0x5b57,0x5bfa,
+0x6148,0x6301,0x6642, -1, -1, -1, -1, -1,
+ -1,0x6b21,0x6ecb,0x6cbb,0x723e,0x74bd,0x75d4,0x78c1,
+0x793a,0x800c,0x8033,0x81ea,0x8494,0x8f9e,0x6c50,0x9e7f,
+0x5f0f,0x8b58,0x9d2b,0x7afa,0x8ef8,0x5b8d,0x96eb,0x4e03,
+0x53f1,0x57f7,0x5931,0x5ac9,0x5ba4,0x6089,0x6e7f,0x6f06,
+0x75be,0x8cea,0x5b9f,0x8500,0x7be0,0x5072,0x67f4,0x829d,
+0x5c61,0x854a,0x7e1e,0x820e,0x5199,0x5c04,0x6368,0x8d66,
+0x659c,0x716e,0x793e,0x7d17,0x8005,0x8b1d,0x8eca,0x906e,
+0x86c7,0x90aa,0x501f,0x52fa,0x5c3a,0x6753,0x707c,0x7235,
+0x914c,0x91c8,0x932b,0x82e5,0x5bc2,0x5f31,0x60f9,0x4e3b,
+0x53d6,0x5b88,0x624b,0x6731,0x6b8a,0x72e9,0x73e0,0x7a2e,
+0x816b,0x8da3,0x9152,0x9996,0x5112,0x53d7,0x546a,0x5bff,
+0x6388,0x6a39,0x7dac,0x9700,0x56da,0x53ce,0x5468, -1,
+ -1, -1, -1, -1, -1,0x5b97,0x5c31,0x5dde,
+0x4fee,0x6101,0x62fe,0x6d32,0x79c0,0x79cb,0x7d42,0x7e4d,
+0x7fd2,0x81ed,0x821f,0x8490,0x8846,0x8972,0x8b90,0x8e74,
+0x8f2f,0x9031,0x914b,0x916c,0x96c6,0x919c,0x4ec0,0x4f4f,
+0x5145,0x5341,0x5f93,0x620e,0x67d4,0x6c41,0x6e0b,0x7363,
+0x7e26,0x91cd,0x9283,0x53d4,0x5919,0x5bbf,0x6dd1,0x795d,
+0x7e2e,0x7c9b,0x587e,0x719f,0x51fa,0x8853,0x8ff0,0x4fca,
+0x5cfb,0x6625,0x77ac,0x7ae3,0x821c,0x99ff,0x51c6,0x5faa,
+0x65ec,0x696f,0x6b89,0x6df3,0x6e96,0x6f64,0x76fe,0x7d14,
+0x5de1,0x9075,0x9187,0x9806,0x51e6,0x521d,0x6240,0x6691,
+0x66d9,0x6e1a,0x5eb6,0x7dd2,0x7f72,0x66f8,0x85af,0x85f7,
+0x8af8,0x52a9,0x53d9,0x5973,0x5e8f,0x5f90,0x6055,0x92e4,
+0x9664,0x50b7,0x511f, -1, -1, -1, -1, -1,
+ -1,0x52dd,0x5320,0x5347,0x53ec,0x54e8,0x5546,0x5531,
+0x5617,0x5968,0x59be,0x5a3c,0x5bb5,0x5c06,0x5c0f,0x5c11,
+0x5c1a,0x5e84,0x5e8a,0x5ee0,0x5f70,0x627f,0x6284,0x62db,
+0x638c,0x6377,0x6607,0x660c,0x662d,0x6676,0x677e,0x68a2,
+0x6a1f,0x6a35,0x6cbc,0x6d88,0x6e09,0x6e58,0x713c,0x7126,
+0x7167,0x75c7,0x7701,0x785d,0x7901,0x7965,0x79f0,0x7ae0,
+0x7b11,0x7ca7,0x7d39,0x8096,0x83d6,0x848b,0x8549,0x885d,
+0x88f3,0x8a1f,0x8a3c,0x8a54,0x8a73,0x8c61,0x8cde,0x91a4,
+0x9266,0x937e,0x9418,0x969c,0x9798,0x4e0a,0x4e08,0x4e1e,
+0x4e57,0x5197,0x5270,0x57ce,0x5834,0x58cc,0x5b22,0x5e38,
+0x60c5,0x64fe,0x6761,0x6756,0x6d44,0x72b6,0x7573,0x7a63,
+0x84b8,0x8b72,0x91b8,0x9320,0x5631,0x57f4,0x98fe, -1,
+ -1, -1, -1, -1, -1,0x62ed,0x690d,0x6b96,
+0x71ed,0x7e54,0x8077,0x8272,0x89e6,0x98df,0x8755,0x8fb1,
+0x5c3b,0x4f38,0x4fe1,0x4fb5,0x5507,0x5a20,0x5bdd,0x5be9,
+0x5fc3,0x614e,0x632f,0x65b0,0x664b,0x68ee,0x699b,0x6d78,
+0x6df1,0x7533,0x75b9,0x771f,0x795e,0x79e6,0x7d33,0x81e3,
+0x82af,0x85aa,0x89aa,0x8a3a,0x8eab,0x8f9b,0x9032,0x91dd,
+0x9707,0x4eba,0x4ec1,0x5203,0x5875,0x58ec,0x5c0b,0x751a,
+0x5c3d,0x814e,0x8a0a,0x8fc5,0x9663,0x976d,0x7b25,0x8acf,
+0x9808,0x9162,0x56f3,0x53a8,0x9017,0x5439,0x5782,0x5e25,
+0x63a8,0x6c34,0x708a,0x7761,0x7c8b,0x7fe0,0x8870,0x9042,
+0x9154,0x9310,0x9318,0x968f,0x745e,0x9ac4,0x5d07,0x5d69,
+0x6570,0x67a2,0x8da8,0x96db,0x636e,0x6749,0x6919,0x83c5,
+0x9817,0x96c0,0x88fe, -1, -1, -1, -1, -1,
+ -1,0x6f84,0x647a,0x5bf8,0x4e16,0x702c,0x755d,0x662f,
+0x51c4,0x5236,0x52e2,0x59d3,0x5f81,0x6027,0x6210,0x653f,
+0x6574,0x661f,0x6674,0x68f2,0x6816,0x6b63,0x6e05,0x7272,
+0x751f,0x76db,0x7cbe,0x8056,0x58f0,0x88fd,0x897f,0x8aa0,
+0x8a93,0x8acb,0x901d,0x9192,0x9752,0x9759,0x6589,0x7a0e,
+0x8106,0x96bb,0x5e2d,0x60dc,0x621a,0x65a5,0x6614,0x6790,
+0x77f3,0x7a4d,0x7c4d,0x7e3e,0x810a,0x8cac,0x8d64,0x8de1,
+0x8e5f,0x78a9,0x5207,0x62d9,0x63a5,0x6442,0x6298,0x8a2d,
+0x7a83,0x7bc0,0x8aac,0x96ea,0x7d76,0x820c,0x8749,0x4ed9,
+0x5148,0x5343,0x5360,0x5ba3,0x5c02,0x5c16,0x5ddd,0x6226,
+0x6247,0x64b0,0x6813,0x6834,0x6cc9,0x6d45,0x6d17,0x67d3,
+0x6f5c,0x714e,0x717d,0x65cb,0x7a7f,0x7bad,0x7dda, -1,
+ -1, -1, -1, -1, -1,0x7e4a,0x7fa8,0x817a,
+0x821b,0x8239,0x85a6,0x8a6e,0x8cce,0x8df5,0x9078,0x9077,
+0x92ad,0x9291,0x9583,0x9bae,0x524d,0x5584,0x6f38,0x7136,
+0x5168,0x7985,0x7e55,0x81b3,0x7cce,0x564c,0x5851,0x5ca8,
+0x63aa,0x66fe,0x66fd,0x695a,0x72d9,0x758f,0x758e,0x790e,
+0x7956,0x79df,0x7c97,0x7d20,0x7d44,0x8607,0x8a34,0x963b,
+0x9061,0x9f20,0x50e7,0x5275,0x53cc,0x53e2,0x5009,0x55aa,
+0x58ee,0x594f,0x723d,0x5b8b,0x5c64,0x531d,0x60e3,0x60f3,
+0x635c,0x6383,0x633f,0x63bb,0x64cd,0x65e9,0x66f9,0x5de3,
+0x69cd,0x69fd,0x6f15,0x71e5,0x4e89,0x75e9,0x76f8,0x7a93,
+0x7cdf,0x7dcf,0x7d9c,0x8061,0x8349,0x8358,0x846c,0x84bc,
+0x85fb,0x88c5,0x8d70,0x9001,0x906d,0x9397,0x971c,0x9a12,
+0x50cf,0x5897,0x618e, -1, -1, -1, -1, -1,
+ -1,0x81d3,0x8535,0x8d08,0x9020,0x4fc3,0x5074,0x5247,
+0x5373,0x606f,0x6349,0x675f,0x6e2c,0x8db3,0x901f,0x4fd7,
+0x5c5e,0x8cca,0x65cf,0x7d9a,0x5352,0x8896,0x5176,0x63c3,
+0x5b58,0x5b6b,0x5c0a,0x640d,0x6751,0x905c,0x4ed6,0x591a,
+0x592a,0x6c70,0x8a51,0x553e,0x5815,0x59a5,0x60f0,0x6253,
+0x67c1,0x8235,0x6955,0x9640,0x99c4,0x9a28,0x4f53,0x5806,
+0x5bfe,0x8010,0x5cb1,0x5e2f,0x5f85,0x6020,0x614b,0x6234,
+0x66ff,0x6cf0,0x6ede,0x80ce,0x817f,0x82d4,0x888b,0x8cb8,
+0x9000,0x902e,0x968a,0x9edb,0x9bdb,0x4ee3,0x53f0,0x5927,
+0x7b2c,0x918d,0x984c,0x9df9,0x6edd,0x7027,0x5353,0x5544,
+0x5b85,0x6258,0x629e,0x62d3,0x6ca2,0x6fef,0x7422,0x8a17,
+0x9438,0x6fc1,0x8afe,0x8338,0x51e7,0x86f8,0x53ea, -1,
+ -1, -1, -1, -1, -1,0x53e9,0x4f46,0x9054,
+0x8fb0,0x596a,0x8131,0x5dfd,0x7aea,0x8fbf,0x68da,0x8c37,
+0x72f8,0x9c48,0x6a3d,0x8ab0,0x4e39,0x5358,0x5606,0x5766,
+0x62c5,0x63a2,0x65e6,0x6b4e,0x6de1,0x6e5b,0x70ad,0x77ed,
+0x7aef,0x7baa,0x7dbb,0x803d,0x80c6,0x86cb,0x8a95,0x935b,
+0x56e3,0x58c7,0x5f3e,0x65ad,0x6696,0x6a80,0x6bb5,0x7537,
+0x8ac7,0x5024,0x77e5,0x5730,0x5f1b,0x6065,0x667a,0x6c60,
+0x75f4,0x7a1a,0x7f6e,0x81f4,0x8718,0x9045,0x99b3,0x7bc9,
+0x755c,0x7af9,0x7b51,0x84c4,0x9010,0x79e9,0x7a92,0x8336,
+0x5ae1,0x7740,0x4e2d,0x4ef2,0x5b99,0x5fe0,0x62bd,0x663c,
+0x67f1,0x6ce8,0x866b,0x8877,0x8a3b,0x914e,0x92f3,0x99d0,
+0x6a17,0x7026,0x732a,0x82e7,0x8457,0x8caf,0x4e01,0x5146,
+0x51cb,0x558b,0x5bf5, -1, -1, -1, -1, -1,
+ -1,0x5e16,0x5e33,0x5e81,0x5f14,0x5f35,0x5f6b,0x5fb4,
+0x61f2,0x6311,0x66a2,0x671d,0x6f6e,0x7252,0x753a,0x773a,
+0x8074,0x8139,0x8178,0x8776,0x8abf,0x8adc,0x8d85,0x8df3,
+0x929a,0x9577,0x9802,0x9ce5,0x52c5,0x6357,0x76f4,0x6715,
+0x6c88,0x73cd,0x8cc3,0x93ae,0x9673,0x6d25,0x589c,0x690e,
+0x69cc,0x8ffd,0x939a,0x75db,0x901a,0x585a,0x6802,0x63b4,
+0x69fb,0x4f43,0x6f2c,0x67d8,0x8fbb,0x8526,0x7db4,0x9354,
+0x693f,0x6f70,0x576a,0x58f7,0x5b2c,0x7d2c,0x722a,0x540a,
+0x91e3,0x9db4,0x4ead,0x4f4e,0x505c,0x5075,0x5243,0x8c9e,
+0x5448,0x5824,0x5b9a,0x5e1d,0x5e95,0x5ead,0x5ef7,0x5f1f,
+0x608c,0x62b5,0x633a,0x63d0,0x68af,0x6c40,0x7887,0x798e,
+0x7a0b,0x7de0,0x8247,0x8a02,0x8ae6,0x8e44,0x9013, -1,
+ -1, -1, -1, -1, -1,0x90b8,0x912d,0x91d8,
+0x9f0e,0x6ce5,0x6458,0x64e2,0x6575,0x6ef4,0x7684,0x7b1b,
+0x9069,0x93d1,0x6eba,0x54f2,0x5fb9,0x64a4,0x8f4d,0x8fed,
+0x9244,0x5178,0x586b,0x5929,0x5c55,0x5e97,0x6dfb,0x7e8f,
+0x751c,0x8cbc,0x8ee2,0x985b,0x70b9,0x4f1d,0x6bbf,0x6fb1,
+0x7530,0x96fb,0x514e,0x5410,0x5835,0x5857,0x59ac,0x5c60,
+0x5f92,0x6597,0x675c,0x6e21,0x767b,0x83df,0x8ced,0x9014,
+0x90fd,0x934d,0x7825,0x783a,0x52aa,0x5ea6,0x571f,0x5974,
+0x6012,0x5012,0x515a,0x51ac,0x51cd,0x5200,0x5510,0x5854,
+0x5858,0x5957,0x5b95,0x5cf6,0x5d8b,0x60bc,0x6295,0x642d,
+0x6771,0x6843,0x68bc,0x68df,0x76d7,0x6dd8,0x6e6f,0x6d9b,
+0x706f,0x71c8,0x5f53,0x75d8,0x7977,0x7b49,0x7b54,0x7b52,
+0x7cd6,0x7d71,0x5230, -1, -1, -1, -1, -1,
+ -1,0x8463,0x8569,0x85e4,0x8a0e,0x8b04,0x8c46,0x8e0f,
+0x9003,0x900f,0x9419,0x9676,0x982d,0x9a30,0x95d8,0x50cd,
+0x52d5,0x540c,0x5802,0x5c0e,0x61a7,0x649e,0x6d1e,0x77b3,
+0x7ae5,0x80f4,0x8404,0x9053,0x9285,0x5ce0,0x9d07,0x533f,
+0x5f97,0x5fb3,0x6d9c,0x7279,0x7763,0x79bf,0x7be4,0x6bd2,
+0x72ec,0x8aad,0x6803,0x6a61,0x51f8,0x7a81,0x6934,0x5c4a,
+0x9cf6,0x82eb,0x5bc5,0x9149,0x701e,0x5678,0x5c6f,0x60c7,
+0x6566,0x6c8c,0x8c5a,0x9041,0x9813,0x5451,0x66c7,0x920d,
+0x5948,0x90a3,0x5185,0x4e4d,0x51ea,0x8599,0x8b0e,0x7058,
+0x637a,0x934b,0x6962,0x99b4,0x7e04,0x7577,0x5357,0x6960,
+0x8edf,0x96e3,0x6c5d,0x4e8c,0x5c3c,0x5f10,0x8fe9,0x5302,
+0x8cd1,0x8089,0x8679,0x5eff,0x65e5,0x4e73,0x5165, -1,
+ -1, -1, -1, -1, -1,0x5982,0x5c3f,0x97ee,
+0x4efb,0x598a,0x5fcd,0x8a8d,0x6fe1,0x79b0,0x7962,0x5be7,
+0x8471,0x732b,0x71b1,0x5e74,0x5ff5,0x637b,0x649a,0x71c3,
+0x7c98,0x4e43,0x5efc,0x4e4b,0x57dc,0x56a2,0x60a9,0x6fc3,
+0x7d0d,0x80fd,0x8133,0x81bf,0x8fb2,0x8997,0x86a4,0x5df4,
+0x628a,0x64ad,0x8987,0x6777,0x6ce2,0x6d3e,0x7436,0x7834,
+0x5a46,0x7f75,0x82ad,0x99ac,0x4ff3,0x5ec3,0x62dd,0x6392,
+0x6557,0x676f,0x76c3,0x724c,0x80cc,0x80ba,0x8f29,0x914d,
+0x500d,0x57f9,0x5a92,0x6885,0x6973,0x7164,0x72fd,0x8cb7,
+0x58f2,0x8ce0,0x966a,0x9019,0x877f,0x79e4,0x77e7,0x8429,
+0x4f2f,0x5265,0x535a,0x62cd,0x67cf,0x6cca,0x767d,0x7b94,
+0x7c95,0x8236,0x8584,0x8feb,0x66dd,0x6f20,0x7206,0x7e1b,
+0x83ab,0x99c1,0x9ea6, -1, -1, -1, -1, -1,
+ -1,0x51fd,0x7bb1,0x7872,0x7bb8,0x8087,0x7b48,0x6ae8,
+0x5e61,0x808c,0x7551,0x7560,0x516b,0x9262,0x6e8c,0x767a,
+0x9197,0x9aea,0x4f10,0x7f70,0x629c,0x7b4f,0x95a5,0x9ce9,
+0x567a,0x5859,0x86e4,0x96bc,0x4f34,0x5224,0x534a,0x53cd,
+0x53db,0x5e06,0x642c,0x6591,0x677f,0x6c3e,0x6c4e,0x7248,
+0x72af,0x73ed,0x7554,0x7e41,0x822c,0x85e9,0x8ca9,0x7bc4,
+0x91c6,0x7169,0x9812,0x98ef,0x633d,0x6669,0x756a,0x76e4,
+0x78d0,0x8543,0x86ee,0x532a,0x5351,0x5426,0x5983,0x5e87,
+0x5f7c,0x60b2,0x6249,0x6279,0x62ab,0x6590,0x6bd4,0x6ccc,
+0x75b2,0x76ae,0x7891,0x79d8,0x7dcb,0x7f77,0x80a5,0x88ab,
+0x8ab9,0x8cbb,0x907f,0x975e,0x98db,0x6a0b,0x7c38,0x5099,
+0x5c3e,0x5fae,0x6787,0x6bd8,0x7435,0x7709,0x7f8e, -1,
+ -1, -1, -1, -1, -1,0x9f3b,0x67ca,0x7a17,
+0x5339,0x758b,0x9aed,0x5f66,0x819d,0x83f1,0x8098,0x5f3c,
+0x5fc5,0x7562,0x7b46,0x903c,0x6867,0x59eb,0x5a9b,0x7d10,
+0x767e,0x8b2c,0x4ff5,0x5f6a,0x6a19,0x6c37,0x6f02,0x74e2,
+0x7968,0x8868,0x8a55,0x8c79,0x5edf,0x63cf,0x75c5,0x79d2,
+0x82d7,0x9328,0x92f2,0x849c,0x86ed,0x9c2d,0x54c1,0x5f6c,
+0x658c,0x6d5c,0x7015,0x8ca7,0x8cd3,0x983b,0x654f,0x74f6,
+0x4e0d,0x4ed8,0x57e0,0x592b,0x5a66,0x5bcc,0x51a8,0x5e03,
+0x5e9c,0x6016,0x6276,0x6577,0x65a7,0x666e,0x6d6e,0x7236,
+0x7b26,0x8150,0x819a,0x8299,0x8b5c,0x8ca0,0x8ce6,0x8d74,
+0x961c,0x9644,0x4fae,0x64ab,0x6b66,0x821e,0x8461,0x856a,
+0x90e8,0x5c01,0x6953,0x98a8,0x847a,0x8557,0x4f0f,0x526f,
+0x5fa9,0x5e45,0x670d, -1, -1, -1, -1, -1,
+ -1,0x798f,0x8179,0x8907,0x8986,0x6df5,0x5f17,0x6255,
+0x6cb8,0x4ecf,0x7269,0x9b92,0x5206,0x543b,0x5674,0x58b3,
+0x61a4,0x626e,0x711a,0x596e,0x7c89,0x7cde,0x7d1b,0x96f0,
+0x6587,0x805e,0x4e19,0x4f75,0x5175,0x5840,0x5e63,0x5e73,
+0x5f0a,0x67c4,0x4e26,0x853d,0x9589,0x965b,0x7c73,0x9801,
+0x50fb,0x58c1,0x7656,0x78a7,0x5225,0x77a5,0x8511,0x7b86,
+0x504f,0x5909,0x7247,0x7bc7,0x7de8,0x8fba,0x8fd4,0x904d,
+0x4fbf,0x52c9,0x5a29,0x5f01,0x97ad,0x4fdd,0x8217,0x92ea,
+0x5703,0x6355,0x6b69,0x752b,0x88dc,0x8f14,0x7a42,0x52df,
+0x5893,0x6155,0x620a,0x66ae,0x6bcd,0x7c3f,0x83e9,0x5023,
+0x4ff8,0x5305,0x5446,0x5831,0x5949,0x5b9d,0x5cf0,0x5cef,
+0x5d29,0x5e96,0x62b1,0x6367,0x653e,0x65b9,0x670b, -1,
+ -1, -1, -1, -1, -1,0x6cd5,0x6ce1,0x70f9,
+0x7832,0x7e2b,0x80de,0x82b3,0x840c,0x84ec,0x8702,0x8912,
+0x8a2a,0x8c4a,0x90a6,0x92d2,0x98fd,0x9cf3,0x9d6c,0x4e4f,
+0x4ea1,0x508d,0x5256,0x574a,0x59a8,0x5e3d,0x5fd8,0x5fd9,
+0x623f,0x66b4,0x671b,0x67d0,0x68d2,0x5192,0x7d21,0x80aa,
+0x81a8,0x8b00,0x8c8c,0x8cbf,0x927e,0x9632,0x5420,0x982c,
+0x5317,0x50d5,0x535c,0x58a8,0x64b2,0x6734,0x7267,0x7766,
+0x7a46,0x91e6,0x52c3,0x6ca1,0x6b86,0x5800,0x5e4c,0x5954,
+0x672c,0x7ffb,0x51e1,0x76c6,0x6469,0x78e8,0x9b54,0x9ebb,
+0x57cb,0x59b9,0x6627,0x679a,0x6bce,0x54e9,0x69d9,0x5e55,
+0x819c,0x6795,0x9baa,0x67fe,0x9c52,0x685d,0x4ea6,0x4fe3,
+0x53c8,0x62b9,0x672b,0x6cab,0x8fc4,0x4fad,0x7e6d,0x9ebf,
+0x4e07,0x6162,0x6e80, -1, -1, -1, -1, -1,
+ -1,0x6f2b,0x8513,0x5473,0x672a,0x9b45,0x5df3,0x7b95,
+0x5cac,0x5bc6,0x871c,0x6e4a,0x84d1,0x7a14,0x8108,0x5999,
+0x7c8d,0x6c11,0x7720,0x52d9,0x5922,0x7121,0x725f,0x77db,
+0x9727,0x9d61,0x690b,0x5a7f,0x5a18,0x51a5,0x540d,0x547d,
+0x660e,0x76df,0x8ff7,0x9298,0x9cf4,0x59ea,0x725d,0x6ec5,
+0x514d,0x68c9,0x7dbf,0x7dec,0x9762,0x9eba,0x6478,0x6a21,
+0x8302,0x5984,0x5b5f,0x6bdb,0x731b,0x76f2,0x7db2,0x8017,
+0x8499,0x5132,0x6728,0x9ed9,0x76ee,0x6762,0x52ff,0x9905,
+0x5c24,0x623b,0x7c7e,0x8cb0,0x554f,0x60b6,0x7d0b,0x9580,
+0x5301,0x4e5f,0x51b6,0x591c,0x723a,0x8036,0x91ce,0x5f25,
+0x77e2,0x5384,0x5f79,0x7d04,0x85ac,0x8a33,0x8e8d,0x9756,
+0x67f3,0x85ae,0x9453,0x6109,0x6108,0x6cb9,0x7652, -1,
+ -1, -1, -1, -1, -1,0x8aed,0x8f38,0x552f,
+0x4f51,0x512a,0x52c7,0x53cb,0x5ba5,0x5e7d,0x60a0,0x6182,
+0x63d6,0x6709,0x67da,0x6e67,0x6d8c,0x7336,0x7337,0x7531,
+0x7950,0x88d5,0x8a98,0x904a,0x9091,0x90f5,0x96c4,0x878d,
+0x5915,0x4e88,0x4f59,0x4e0e,0x8a89,0x8f3f,0x9810,0x50ad,
+0x5e7c,0x5996,0x5bb9,0x5eb8,0x63da,0x63fa,0x64c1,0x66dc,
+0x694a,0x69d8,0x6d0b,0x6eb6,0x7194,0x7528,0x7aaf,0x7f8a,
+0x8000,0x8449,0x84c9,0x8981,0x8b21,0x8e0a,0x9065,0x967d,
+0x990a,0x617e,0x6291,0x6b32,0x6c83,0x6d74,0x7fcc,0x7ffc,
+0x6dc0,0x7f85,0x87ba,0x88f8,0x6765,0x83b1,0x983c,0x96f7,
+0x6d1b,0x7d61,0x843d,0x916a,0x4e71,0x5375,0x5d50,0x6b04,
+0x6feb,0x85cd,0x862d,0x89a7,0x5229,0x540f,0x5c65,0x674e,
+0x68a8,0x7406,0x7483, -1, -1, -1, -1, -1,
+ -1,0x75e2,0x88cf,0x88e1,0x91cc,0x96e2,0x9678,0x5f8b,
+0x7387,0x7acb,0x844e,0x63a0,0x7565,0x5289,0x6d41,0x6e9c,
+0x7409,0x7559,0x786b,0x7c92,0x9686,0x7adc,0x9f8d,0x4fb6,
+0x616e,0x65c5,0x865c,0x4e86,0x4eae,0x50da,0x4e21,0x51cc,
+0x5bee,0x6599,0x6881,0x6dbc,0x731f,0x7642,0x77ad,0x7a1c,
+0x7ce7,0x826f,0x8ad2,0x907c,0x91cf,0x9675,0x9818,0x529b,
+0x7dd1,0x502b,0x5398,0x6797,0x6dcb,0x71d0,0x7433,0x81e8,
+0x8f2a,0x96a3,0x9c57,0x9e9f,0x7460,0x5841,0x6d99,0x7d2f,
+0x985e,0x4ee4,0x4f36,0x4f8b,0x51b7,0x52b1,0x5dba,0x601c,
+0x73b2,0x793c,0x82d3,0x9234,0x96b7,0x96f6,0x970a,0x9e97,
+0x9f62,0x66a6,0x6b74,0x5217,0x52a3,0x70c8,0x88c2,0x5ec9,
+0x604b,0x6190,0x6f23,0x7149,0x7c3e,0x7df4,0x806f, -1,
+ -1, -1, -1, -1, -1,0x84ee,0x9023,0x932c,
+0x5442,0x9b6f,0x6ad3,0x7089,0x8cc2,0x8def,0x9732,0x52b4,
+0x5a41,0x5eca,0x5f04,0x6717,0x697c,0x6994,0x6d6a,0x6f0f,
+0x7262,0x72fc,0x7bed,0x8001,0x807e,0x874b,0x90ce,0x516d,
+0x9e93,0x7984,0x808b,0x9332,0x8ad6,0x502d,0x548c,0x8a71,
+0x6b6a,0x8cc4,0x8107,0x60d1,0x67a0,0x9df2,0x4e99,0x4e98,
+0x9c10,0x8a6b,0x85c1,0x8568,0x6900,0x6e7e,0x7897,0x8155,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x5f0c,0x4e10,0x4e15,0x4e2a,0x4e31,0x4e36,0x4e3c,
+0x4e3f,0x4e42,0x4e56,0x4e58,0x4e82,0x4e85,0x8c6b,0x4e8a,
+0x8212,0x5f0d,0x4e8e,0x4e9e,0x4e9f,0x4ea0,0x4ea2,0x4eb0,
+0x4eb3,0x4eb6,0x4ece,0x4ecd,0x4ec4,0x4ec6,0x4ec2,0x4ed7,
+0x4ede,0x4eed,0x4edf,0x4ef7,0x4f09,0x4f5a,0x4f30,0x4f5b,
+0x4f5d,0x4f57,0x4f47,0x4f76,0x4f88,0x4f8f,0x4f98,0x4f7b,
+0x4f69,0x4f70,0x4f91,0x4f6f,0x4f86,0x4f96,0x5118,0x4fd4,
+0x4fdf,0x4fce,0x4fd8,0x4fdb,0x4fd1,0x4fda,0x4fd0,0x4fe4,
+0x4fe5,0x501a,0x5028,0x5014,0x502a,0x5025,0x5005,0x4f1c,
+0x4ff6,0x5021,0x5029,0x502c,0x4ffe,0x4fef,0x5011,0x5006,
+0x5043,0x5047,0x6703,0x5055,0x5050,0x5048,0x505a,0x5056,
+0x506c,0x5078,0x5080,0x509a,0x5085,0x50b4,0x50b2, -1,
+ -1, -1, -1, -1, -1,0x50c9,0x50ca,0x50b3,
+0x50c2,0x50d6,0x50de,0x50e5,0x50ed,0x50e3,0x50ee,0x50f9,
+0x50f5,0x5109,0x5101,0x5102,0x5116,0x5115,0x5114,0x511a,
+0x5121,0x513a,0x5137,0x513c,0x513b,0x513f,0x5140,0x5152,
+0x514c,0x5154,0x5162,0x7af8,0x5169,0x516a,0x516e,0x5180,
+0x5182,0x56d8,0x518c,0x5189,0x518f,0x5191,0x5193,0x5195,
+0x5196,0x51a4,0x51a6,0x51a2,0x51a9,0x51aa,0x51ab,0x51b3,
+0x51b1,0x51b2,0x51b0,0x51b5,0x51bd,0x51c5,0x51c9,0x51db,
+0x51e0,0x8655,0x51e9,0x51ed,0x51f0,0x51f5,0x51fe,0x5204,
+0x520b,0x5214,0x520e,0x5227,0x522a,0x522e,0x5233,0x5239,
+0x524f,0x5244,0x524b,0x524c,0x525e,0x5254,0x526a,0x5274,
+0x5269,0x5273,0x527f,0x527d,0x528d,0x5294,0x5292,0x5271,
+0x5288,0x5291,0x8fa8, -1, -1, -1, -1, -1,
+ -1,0x8fa7,0x52ac,0x52ad,0x52bc,0x52b5,0x52c1,0x52cd,
+0x52d7,0x52de,0x52e3,0x52e6,0x98ed,0x52e0,0x52f3,0x52f5,
+0x52f8,0x52f9,0x5306,0x5308,0x7538,0x530d,0x5310,0x530f,
+0x5315,0x531a,0x5323,0x532f,0x5331,0x5333,0x5338,0x5340,
+0x5346,0x5345,0x4e17,0x5349,0x534d,0x51d6,0x535e,0x5369,
+0x536e,0x5918,0x537b,0x5377,0x5382,0x5396,0x53a0,0x53a6,
+0x53a5,0x53ae,0x53b0,0x53b6,0x53c3,0x7c12,0x96d9,0x53df,
+0x66fc,0x71ee,0x53ee,0x53e8,0x53ed,0x53fa,0x5401,0x543d,
+0x5440,0x542c,0x542d,0x543c,0x542e,0x5436,0x5429,0x541d,
+0x544e,0x548f,0x5475,0x548e,0x545f,0x5471,0x5477,0x5470,
+0x5492,0x547b,0x5480,0x5476,0x5484,0x5490,0x5486,0x54c7,
+0x54a2,0x54b8,0x54a5,0x54ac,0x54c4,0x54c8,0x54a8, -1,
+ -1, -1, -1, -1, -1,0x54ab,0x54c2,0x54a4,
+0x54be,0x54bc,0x54d8,0x54e5,0x54e6,0x550f,0x5514,0x54fd,
+0x54ee,0x54ed,0x54fa,0x54e2,0x5539,0x5540,0x5563,0x554c,
+0x552e,0x555c,0x5545,0x5556,0x5557,0x5538,0x5533,0x555d,
+0x5599,0x5580,0x54af,0x558a,0x559f,0x557b,0x557e,0x5598,
+0x559e,0x55ae,0x557c,0x5583,0x55a9,0x5587,0x55a8,0x55da,
+0x55c5,0x55df,0x55c4,0x55dc,0x55e4,0x55d4,0x5614,0x55f7,
+0x5616,0x55fe,0x55fd,0x561b,0x55f9,0x564e,0x5650,0x71df,
+0x5634,0x5636,0x5632,0x5638,0x566b,0x5664,0x562f,0x566c,
+0x566a,0x5686,0x5680,0x568a,0x56a0,0x5694,0x568f,0x56a5,
+0x56ae,0x56b6,0x56b4,0x56c2,0x56bc,0x56c1,0x56c3,0x56c0,
+0x56c8,0x56ce,0x56d1,0x56d3,0x56d7,0x56ee,0x56f9,0x5700,
+0x56ff,0x5704,0x5709, -1, -1, -1, -1, -1,
+ -1,0x5708,0x570b,0x570d,0x5713,0x5718,0x5716,0x55c7,
+0x571c,0x5726,0x5737,0x5738,0x574e,0x573b,0x5740,0x574f,
+0x5769,0x57c0,0x5788,0x5761,0x577f,0x5789,0x5793,0x57a0,
+0x57b3,0x57a4,0x57aa,0x57b0,0x57c3,0x57c6,0x57d4,0x57d2,
+0x57d3,0x580a,0x57d6,0x57e3,0x580b,0x5819,0x581d,0x5872,
+0x5821,0x5862,0x584b,0x5870,0x6bc0,0x5852,0x583d,0x5879,
+0x5885,0x58b9,0x589f,0x58ab,0x58ba,0x58de,0x58bb,0x58b8,
+0x58ae,0x58c5,0x58d3,0x58d1,0x58d7,0x58d9,0x58d8,0x58e5,
+0x58dc,0x58e4,0x58df,0x58ef,0x58fa,0x58f9,0x58fb,0x58fc,
+0x58fd,0x5902,0x590a,0x5910,0x591b,0x68a6,0x5925,0x592c,
+0x592d,0x5932,0x5938,0x593e,0x7ad2,0x5955,0x5950,0x594e,
+0x595a,0x5958,0x5962,0x5960,0x5967,0x596c,0x5969, -1,
+ -1, -1, -1, -1, -1,0x5978,0x5981,0x599d,
+0x4f5e,0x4fab,0x59a3,0x59b2,0x59c6,0x59e8,0x59dc,0x598d,
+0x59d9,0x59da,0x5a25,0x5a1f,0x5a11,0x5a1c,0x5a09,0x5a1a,
+0x5a40,0x5a6c,0x5a49,0x5a35,0x5a36,0x5a62,0x5a6a,0x5a9a,
+0x5abc,0x5abe,0x5acb,0x5ac2,0x5abd,0x5ae3,0x5ad7,0x5ae6,
+0x5ae9,0x5ad6,0x5afa,0x5afb,0x5b0c,0x5b0b,0x5b16,0x5b32,
+0x5ad0,0x5b2a,0x5b36,0x5b3e,0x5b43,0x5b45,0x5b40,0x5b51,
+0x5b55,0x5b5a,0x5b5b,0x5b65,0x5b69,0x5b70,0x5b73,0x5b75,
+0x5b78,0x6588,0x5b7a,0x5b80,0x5b83,0x5ba6,0x5bb8,0x5bc3,
+0x5bc7,0x5bc9,0x5bd4,0x5bd0,0x5be4,0x5be6,0x5be2,0x5bde,
+0x5be5,0x5beb,0x5bf0,0x5bf6,0x5bf3,0x5c05,0x5c07,0x5c08,
+0x5c0d,0x5c13,0x5c20,0x5c22,0x5c28,0x5c38,0x5c39,0x5c41,
+0x5c46,0x5c4e,0x5c53, -1, -1, -1, -1, -1,
+ -1,0x5c50,0x5c4f,0x5b71,0x5c6c,0x5c6e,0x4e62,0x5c76,
+0x5c79,0x5c8c,0x5c91,0x5c94,0x599b,0x5cab,0x5cbb,0x5cb6,
+0x5cbc,0x5cb7,0x5cc5,0x5cbe,0x5cc7,0x5cd9,0x5ce9,0x5cfd,
+0x5cfa,0x5ced,0x5d8c,0x5cea,0x5d0b,0x5d15,0x5d17,0x5d5c,
+0x5d1f,0x5d1b,0x5d11,0x5d14,0x5d22,0x5d1a,0x5d19,0x5d18,
+0x5d4c,0x5d52,0x5d4e,0x5d4b,0x5d6c,0x5d73,0x5d76,0x5d87,
+0x5d84,0x5d82,0x5da2,0x5d9d,0x5dac,0x5dae,0x5dbd,0x5d90,
+0x5db7,0x5dbc,0x5dc9,0x5dcd,0x5dd3,0x5dd2,0x5dd6,0x5ddb,
+0x5deb,0x5df2,0x5df5,0x5e0b,0x5e1a,0x5e19,0x5e11,0x5e1b,
+0x5e36,0x5e37,0x5e44,0x5e43,0x5e40,0x5e4e,0x5e57,0x5e54,
+0x5e5f,0x5e62,0x5e64,0x5e47,0x5e75,0x5e76,0x5e7a,0x9ebc,
+0x5e7f,0x5ea0,0x5ec1,0x5ec2,0x5ec8,0x5ed0,0x5ecf, -1,
+ -1, -1, -1, -1, -1,0x5ed6,0x5ee3,0x5edd,
+0x5eda,0x5edb,0x5ee2,0x5ee1,0x5ee8,0x5ee9,0x5eec,0x5ef1,
+0x5ef3,0x5ef0,0x5ef4,0x5ef8,0x5efe,0x5f03,0x5f09,0x5f5d,
+0x5f5c,0x5f0b,0x5f11,0x5f16,0x5f29,0x5f2d,0x5f38,0x5f41,
+0x5f48,0x5f4c,0x5f4e,0x5f2f,0x5f51,0x5f56,0x5f57,0x5f59,
+0x5f61,0x5f6d,0x5f73,0x5f77,0x5f83,0x5f82,0x5f7f,0x5f8a,
+0x5f88,0x5f91,0x5f87,0x5f9e,0x5f99,0x5f98,0x5fa0,0x5fa8,
+0x5fad,0x5fbc,0x5fd6,0x5ffb,0x5fe4,0x5ff8,0x5ff1,0x5fdd,
+0x60b3,0x5fff,0x6021,0x6060,0x6019,0x6010,0x6029,0x600e,
+0x6031,0x601b,0x6015,0x602b,0x6026,0x600f,0x603a,0x605a,
+0x6041,0x606a,0x6077,0x605f,0x604a,0x6046,0x604d,0x6063,
+0x6043,0x6064,0x6042,0x606c,0x606b,0x6059,0x6081,0x608d,
+0x60e7,0x6083,0x609a, -1, -1, -1, -1, -1,
+ -1,0x6084,0x609b,0x6096,0x6097,0x6092,0x60a7,0x608b,
+0x60e1,0x60b8,0x60e0,0x60d3,0x60b4,0x5ff0,0x60bd,0x60c6,
+0x60b5,0x60d8,0x614d,0x6115,0x6106,0x60f6,0x60f7,0x6100,
+0x60f4,0x60fa,0x6103,0x6121,0x60fb,0x60f1,0x610d,0x610e,
+0x6147,0x613e,0x6128,0x6127,0x614a,0x613f,0x613c,0x612c,
+0x6134,0x613d,0x6142,0x6144,0x6173,0x6177,0x6158,0x6159,
+0x615a,0x616b,0x6174,0x616f,0x6165,0x6171,0x615f,0x615d,
+0x6153,0x6175,0x6199,0x6196,0x6187,0x61ac,0x6194,0x619a,
+0x618a,0x6191,0x61ab,0x61ae,0x61cc,0x61ca,0x61c9,0x61f7,
+0x61c8,0x61c3,0x61c6,0x61ba,0x61cb,0x7f79,0x61cd,0x61e6,
+0x61e3,0x61f6,0x61fa,0x61f4,0x61ff,0x61fd,0x61fc,0x61fe,
+0x6200,0x6208,0x6209,0x620d,0x620c,0x6214,0x621b, -1,
+ -1, -1, -1, -1, -1,0x621e,0x6221,0x622a,
+0x622e,0x6230,0x6232,0x6233,0x6241,0x624e,0x625e,0x6263,
+0x625b,0x6260,0x6268,0x627c,0x6282,0x6289,0x627e,0x6292,
+0x6293,0x6296,0x62d4,0x6283,0x6294,0x62d7,0x62d1,0x62bb,
+0x62cf,0x62ff,0x62c6,0x64d4,0x62c8,0x62dc,0x62cc,0x62ca,
+0x62c2,0x62c7,0x629b,0x62c9,0x630c,0x62ee,0x62f1,0x6327,
+0x6302,0x6308,0x62ef,0x62f5,0x6350,0x633e,0x634d,0x641c,
+0x634f,0x6396,0x638e,0x6380,0x63ab,0x6376,0x63a3,0x638f,
+0x6389,0x639f,0x63b5,0x636b,0x6369,0x63be,0x63e9,0x63c0,
+0x63c6,0x63e3,0x63c9,0x63d2,0x63f6,0x63c4,0x6416,0x6434,
+0x6406,0x6413,0x6426,0x6436,0x651d,0x6417,0x6428,0x640f,
+0x6467,0x646f,0x6476,0x644e,0x652a,0x6495,0x6493,0x64a5,
+0x64a9,0x6488,0x64bc, -1, -1, -1, -1, -1,
+ -1,0x64da,0x64d2,0x64c5,0x64c7,0x64bb,0x64d8,0x64c2,
+0x64f1,0x64e7,0x8209,0x64e0,0x64e1,0x62ac,0x64e3,0x64ef,
+0x652c,0x64f6,0x64f4,0x64f2,0x64fa,0x6500,0x64fd,0x6518,
+0x651c,0x6505,0x6524,0x6523,0x652b,0x6534,0x6535,0x6537,
+0x6536,0x6538,0x754b,0x6548,0x6556,0x6555,0x654d,0x6558,
+0x655e,0x655d,0x6572,0x6578,0x6582,0x6583,0x8b8a,0x659b,
+0x659f,0x65ab,0x65b7,0x65c3,0x65c6,0x65c1,0x65c4,0x65cc,
+0x65d2,0x65db,0x65d9,0x65e0,0x65e1,0x65f1,0x6772,0x660a,
+0x6603,0x65fb,0x6773,0x6635,0x6636,0x6634,0x661c,0x664f,
+0x6644,0x6649,0x6641,0x665e,0x665d,0x6664,0x6667,0x6668,
+0x665f,0x6662,0x6670,0x6683,0x6688,0x668e,0x6689,0x6684,
+0x6698,0x669d,0x66c1,0x66b9,0x66c9,0x66be,0x66bc, -1,
+ -1, -1, -1, -1, -1,0x66c4,0x66b8,0x66d6,
+0x66da,0x66e0,0x663f,0x66e6,0x66e9,0x66f0,0x66f5,0x66f7,
+0x670f,0x6716,0x671e,0x6726,0x6727,0x9738,0x672e,0x673f,
+0x6736,0x6741,0x6738,0x6737,0x6746,0x675e,0x6760,0x6759,
+0x6763,0x6764,0x6789,0x6770,0x67a9,0x677c,0x676a,0x678c,
+0x678b,0x67a6,0x67a1,0x6785,0x67b7,0x67ef,0x67b4,0x67ec,
+0x67b3,0x67e9,0x67b8,0x67e4,0x67de,0x67dd,0x67e2,0x67ee,
+0x67b9,0x67ce,0x67c6,0x67e7,0x6a9c,0x681e,0x6846,0x6829,
+0x6840,0x684d,0x6832,0x684e,0x68b3,0x682b,0x6859,0x6863,
+0x6877,0x687f,0x689f,0x688f,0x68ad,0x6894,0x689d,0x689b,
+0x6883,0x6aae,0x68b9,0x6874,0x68b5,0x68a0,0x68ba,0x690f,
+0x688d,0x687e,0x6901,0x68ca,0x6908,0x68d8,0x6922,0x6926,
+0x68e1,0x690c,0x68cd, -1, -1, -1, -1, -1,
+ -1,0x68d4,0x68e7,0x68d5,0x6936,0x6912,0x6904,0x68d7,
+0x68e3,0x6925,0x68f9,0x68e0,0x68ef,0x6928,0x692a,0x691a,
+0x6923,0x6921,0x68c6,0x6979,0x6977,0x695c,0x6978,0x696b,
+0x6954,0x697e,0x696e,0x6939,0x6974,0x693d,0x6959,0x6930,
+0x6961,0x695e,0x695d,0x6981,0x696a,0x69b2,0x69ae,0x69d0,
+0x69bf,0x69c1,0x69d3,0x69be,0x69ce,0x5be8,0x69ca,0x69dd,
+0x69bb,0x69c3,0x69a7,0x6a2e,0x6991,0x69a0,0x699c,0x6995,
+0x69b4,0x69de,0x69e8,0x6a02,0x6a1b,0x69ff,0x6b0a,0x69f9,
+0x69f2,0x69e7,0x6a05,0x69b1,0x6a1e,0x69ed,0x6a14,0x69eb,
+0x6a0a,0x6a12,0x6ac1,0x6a23,0x6a13,0x6a44,0x6a0c,0x6a72,
+0x6a36,0x6a78,0x6a47,0x6a62,0x6a59,0x6a66,0x6a48,0x6a38,
+0x6a22,0x6a90,0x6a8d,0x6aa0,0x6a84,0x6aa2,0x6aa3, -1,
+ -1, -1, -1, -1, -1,0x6a97,0x8617,0x6abb,
+0x6ac3,0x6ac2,0x6ab8,0x6ab3,0x6aac,0x6ade,0x6ad1,0x6adf,
+0x6aaa,0x6ada,0x6aea,0x6afb,0x6b05,0x8616,0x6afa,0x6b12,
+0x6b16,0x9b31,0x6b1f,0x6b38,0x6b37,0x76dc,0x6b39,0x98ee,
+0x6b47,0x6b43,0x6b49,0x6b50,0x6b59,0x6b54,0x6b5b,0x6b5f,
+0x6b61,0x6b78,0x6b79,0x6b7f,0x6b80,0x6b84,0x6b83,0x6b8d,
+0x6b98,0x6b95,0x6b9e,0x6ba4,0x6baa,0x6bab,0x6baf,0x6bb2,
+0x6bb1,0x6bb3,0x6bb7,0x6bbc,0x6bc6,0x6bcb,0x6bd3,0x6bdf,
+0x6bec,0x6beb,0x6bf3,0x6bef,0x9ebe,0x6c08,0x6c13,0x6c14,
+0x6c1b,0x6c24,0x6c23,0x6c5e,0x6c55,0x6c62,0x6c6a,0x6c82,
+0x6c8d,0x6c9a,0x6c81,0x6c9b,0x6c7e,0x6c68,0x6c73,0x6c92,
+0x6c90,0x6cc4,0x6cf1,0x6cd3,0x6cbd,0x6cd7,0x6cc5,0x6cdd,
+0x6cae,0x6cb1,0x6cbe, -1, -1, -1, -1, -1,
+ -1,0x6cba,0x6cdb,0x6cef,0x6cd9,0x6cea,0x6d1f,0x884d,
+0x6d36,0x6d2b,0x6d3d,0x6d38,0x6d19,0x6d35,0x6d33,0x6d12,
+0x6d0c,0x6d63,0x6d93,0x6d64,0x6d5a,0x6d79,0x6d59,0x6d8e,
+0x6d95,0x6fe4,0x6d85,0x6df9,0x6e15,0x6e0a,0x6db5,0x6dc7,
+0x6de6,0x6db8,0x6dc6,0x6dec,0x6dde,0x6dcc,0x6de8,0x6dd2,
+0x6dc5,0x6dfa,0x6dd9,0x6de4,0x6dd5,0x6dea,0x6dee,0x6e2d,
+0x6e6e,0x6e2e,0x6e19,0x6e72,0x6e5f,0x6e3e,0x6e23,0x6e6b,
+0x6e2b,0x6e76,0x6e4d,0x6e1f,0x6e43,0x6e3a,0x6e4e,0x6e24,
+0x6eff,0x6e1d,0x6e38,0x6e82,0x6eaa,0x6e98,0x6ec9,0x6eb7,
+0x6ed3,0x6ebd,0x6eaf,0x6ec4,0x6eb2,0x6ed4,0x6ed5,0x6e8f,
+0x6ea5,0x6ec2,0x6e9f,0x6f41,0x6f11,0x704c,0x6eec,0x6ef8,
+0x6efe,0x6f3f,0x6ef2,0x6f31,0x6eef,0x6f32,0x6ecc, -1,
+ -1, -1, -1, -1, -1,0x6f3e,0x6f13,0x6ef7,
+0x6f86,0x6f7a,0x6f78,0x6f81,0x6f80,0x6f6f,0x6f5b,0x6ff3,
+0x6f6d,0x6f82,0x6f7c,0x6f58,0x6f8e,0x6f91,0x6fc2,0x6f66,
+0x6fb3,0x6fa3,0x6fa1,0x6fa4,0x6fb9,0x6fc6,0x6faa,0x6fdf,
+0x6fd5,0x6fec,0x6fd4,0x6fd8,0x6ff1,0x6fee,0x6fdb,0x7009,
+0x700b,0x6ffa,0x7011,0x7001,0x700f,0x6ffe,0x701b,0x701a,
+0x6f74,0x701d,0x7018,0x701f,0x7030,0x703e,0x7032,0x7051,
+0x7063,0x7099,0x7092,0x70af,0x70f1,0x70ac,0x70b8,0x70b3,
+0x70ae,0x70df,0x70cb,0x70dd,0x70d9,0x7109,0x70fd,0x711c,
+0x7119,0x7165,0x7155,0x7188,0x7166,0x7162,0x714c,0x7156,
+0x716c,0x718f,0x71fb,0x7184,0x7195,0x71a8,0x71ac,0x71d7,
+0x71b9,0x71be,0x71d2,0x71c9,0x71d4,0x71ce,0x71e0,0x71ec,
+0x71e7,0x71f5,0x71fc, -1, -1, -1, -1, -1,
+ -1,0x71f9,0x71ff,0x720d,0x7210,0x721b,0x7228,0x722d,
+0x722c,0x7230,0x7232,0x723b,0x723c,0x723f,0x7240,0x7246,
+0x724b,0x7258,0x7274,0x727e,0x7282,0x7281,0x7287,0x7292,
+0x7296,0x72a2,0x72a7,0x72b9,0x72b2,0x72c3,0x72c6,0x72c4,
+0x72ce,0x72d2,0x72e2,0x72e0,0x72e1,0x72f9,0x72f7,0x500f,
+0x7317,0x730a,0x731c,0x7316,0x731d,0x7334,0x732f,0x7329,
+0x7325,0x733e,0x734e,0x734f,0x9ed8,0x7357,0x736a,0x7368,
+0x7370,0x7378,0x7375,0x737b,0x737a,0x73c8,0x73b3,0x73ce,
+0x73bb,0x73c0,0x73e5,0x73ee,0x73de,0x74a2,0x7405,0x746f,
+0x7425,0x73f8,0x7432,0x743a,0x7455,0x743f,0x745f,0x7459,
+0x7441,0x745c,0x7469,0x7470,0x7463,0x746a,0x7476,0x747e,
+0x748b,0x749e,0x74a7,0x74ca,0x74cf,0x74d4,0x73f1, -1,
+ -1, -1, -1, -1, -1,0x74e0,0x74e3,0x74e7,
+0x74e9,0x74ee,0x74f2,0x74f0,0x74f1,0x74f8,0x74f7,0x7504,
+0x7503,0x7505,0x750c,0x750e,0x750d,0x7515,0x7513,0x751e,
+0x7526,0x752c,0x753c,0x7544,0x754d,0x754a,0x7549,0x755b,
+0x7546,0x755a,0x7569,0x7564,0x7567,0x756b,0x756d,0x7578,
+0x7576,0x7586,0x7587,0x7574,0x758a,0x7589,0x7582,0x7594,
+0x759a,0x759d,0x75a5,0x75a3,0x75c2,0x75b3,0x75c3,0x75b5,
+0x75bd,0x75b8,0x75bc,0x75b1,0x75cd,0x75ca,0x75d2,0x75d9,
+0x75e3,0x75de,0x75fe,0x75ff,0x75fc,0x7601,0x75f0,0x75fa,
+0x75f2,0x75f3,0x760b,0x760d,0x7609,0x761f,0x7627,0x7620,
+0x7621,0x7622,0x7624,0x7634,0x7630,0x763b,0x7647,0x7648,
+0x7646,0x765c,0x7658,0x7661,0x7662,0x7668,0x7669,0x766a,
+0x7667,0x766c,0x7670, -1, -1, -1, -1, -1,
+ -1,0x7672,0x7676,0x7678,0x767c,0x7680,0x7683,0x7688,
+0x768b,0x768e,0x7696,0x7693,0x7699,0x769a,0x76b0,0x76b4,
+0x76b8,0x76b9,0x76ba,0x76c2,0x76cd,0x76d6,0x76d2,0x76de,
+0x76e1,0x76e5,0x76e7,0x76ea,0x862f,0x76fb,0x7708,0x7707,
+0x7704,0x7729,0x7724,0x771e,0x7725,0x7726,0x771b,0x7737,
+0x7738,0x7747,0x775a,0x7768,0x776b,0x775b,0x7765,0x777f,
+0x777e,0x7779,0x778e,0x778b,0x7791,0x77a0,0x779e,0x77b0,
+0x77b6,0x77b9,0x77bf,0x77bc,0x77bd,0x77bb,0x77c7,0x77cd,
+0x77d7,0x77da,0x77dc,0x77e3,0x77ee,0x77fc,0x780c,0x7812,
+0x7926,0x7820,0x792a,0x7845,0x788e,0x7874,0x7886,0x787c,
+0x789a,0x788c,0x78a3,0x78b5,0x78aa,0x78af,0x78d1,0x78c6,
+0x78cb,0x78d4,0x78be,0x78bc,0x78c5,0x78ca,0x78ec, -1,
+ -1, -1, -1, -1, -1,0x78e7,0x78da,0x78fd,
+0x78f4,0x7907,0x7912,0x7911,0x7919,0x792c,0x792b,0x7940,
+0x7960,0x7957,0x795f,0x795a,0x7955,0x7953,0x797a,0x797f,
+0x798a,0x799d,0x79a7,0x9f4b,0x79aa,0x79ae,0x79b3,0x79b9,
+0x79ba,0x79c9,0x79d5,0x79e7,0x79ec,0x79e1,0x79e3,0x7a08,
+0x7a0d,0x7a18,0x7a19,0x7a20,0x7a1f,0x7980,0x7a31,0x7a3b,
+0x7a3e,0x7a37,0x7a43,0x7a57,0x7a49,0x7a61,0x7a62,0x7a69,
+0x9f9d,0x7a70,0x7a79,0x7a7d,0x7a88,0x7a97,0x7a95,0x7a98,
+0x7a96,0x7aa9,0x7ac8,0x7ab0,0x7ab6,0x7ac5,0x7ac4,0x7abf,
+0x9083,0x7ac7,0x7aca,0x7acd,0x7acf,0x7ad5,0x7ad3,0x7ad9,
+0x7ada,0x7add,0x7ae1,0x7ae2,0x7ae6,0x7aed,0x7af0,0x7b02,
+0x7b0f,0x7b0a,0x7b06,0x7b33,0x7b18,0x7b19,0x7b1e,0x7b35,
+0x7b28,0x7b36,0x7b50, -1, -1, -1, -1, -1,
+ -1,0x7b7a,0x7b04,0x7b4d,0x7b0b,0x7b4c,0x7b45,0x7b75,
+0x7b65,0x7b74,0x7b67,0x7b70,0x7b71,0x7b6c,0x7b6e,0x7b9d,
+0x7b98,0x7b9f,0x7b8d,0x7b9c,0x7b9a,0x7b8b,0x7b92,0x7b8f,
+0x7b5d,0x7b99,0x7bcb,0x7bc1,0x7bcc,0x7bcf,0x7bb4,0x7bc6,
+0x7bdd,0x7be9,0x7c11,0x7c14,0x7be6,0x7be5,0x7c60,0x7c00,
+0x7c07,0x7c13,0x7bf3,0x7bf7,0x7c17,0x7c0d,0x7bf6,0x7c23,
+0x7c27,0x7c2a,0x7c1f,0x7c37,0x7c2b,0x7c3d,0x7c4c,0x7c43,
+0x7c54,0x7c4f,0x7c40,0x7c50,0x7c58,0x7c5f,0x7c64,0x7c56,
+0x7c65,0x7c6c,0x7c75,0x7c83,0x7c90,0x7ca4,0x7cad,0x7ca2,
+0x7cab,0x7ca1,0x7ca8,0x7cb3,0x7cb2,0x7cb1,0x7cae,0x7cb9,
+0x7cbd,0x7cc0,0x7cc5,0x7cc2,0x7cd8,0x7cd2,0x7cdc,0x7ce2,
+0x9b3b,0x7cef,0x7cf2,0x7cf4,0x7cf6,0x7cfa,0x7d06, -1,
+ -1, -1, -1, -1, -1,0x7d02,0x7d1c,0x7d15,
+0x7d0a,0x7d45,0x7d4b,0x7d2e,0x7d32,0x7d3f,0x7d35,0x7d46,
+0x7d73,0x7d56,0x7d4e,0x7d72,0x7d68,0x7d6e,0x7d4f,0x7d63,
+0x7d93,0x7d89,0x7d5b,0x7d8f,0x7d7d,0x7d9b,0x7dba,0x7dae,
+0x7da3,0x7db5,0x7dc7,0x7dbd,0x7dab,0x7e3d,0x7da2,0x7daf,
+0x7ddc,0x7db8,0x7d9f,0x7db0,0x7dd8,0x7ddd,0x7de4,0x7dde,
+0x7dfb,0x7df2,0x7de1,0x7e05,0x7e0a,0x7e23,0x7e21,0x7e12,
+0x7e31,0x7e1f,0x7e09,0x7e0b,0x7e22,0x7e46,0x7e66,0x7e3b,
+0x7e35,0x7e39,0x7e43,0x7e37,0x7e32,0x7e3a,0x7e67,0x7e5d,
+0x7e56,0x7e5e,0x7e59,0x7e5a,0x7e79,0x7e6a,0x7e69,0x7e7c,
+0x7e7b,0x7e83,0x7dd5,0x7e7d,0x8fae,0x7e7f,0x7e88,0x7e89,
+0x7e8c,0x7e92,0x7e90,0x7e93,0x7e94,0x7e96,0x7e8e,0x7e9b,
+0x7e9c,0x7f38,0x7f3a, -1, -1, -1, -1, -1,
+ -1,0x7f45,0x7f4c,0x7f4d,0x7f4e,0x7f50,0x7f51,0x7f55,
+0x7f54,0x7f58,0x7f5f,0x7f60,0x7f68,0x7f69,0x7f67,0x7f78,
+0x7f82,0x7f86,0x7f83,0x7f88,0x7f87,0x7f8c,0x7f94,0x7f9e,
+0x7f9d,0x7f9a,0x7fa3,0x7faf,0x7fb2,0x7fb9,0x7fae,0x7fb6,
+0x7fb8,0x8b71,0x7fc5,0x7fc6,0x7fca,0x7fd5,0x7fd4,0x7fe1,
+0x7fe6,0x7fe9,0x7ff3,0x7ff9,0x98dc,0x8006,0x8004,0x800b,
+0x8012,0x8018,0x8019,0x801c,0x8021,0x8028,0x803f,0x803b,
+0x804a,0x8046,0x8052,0x8058,0x805a,0x805f,0x8062,0x8068,
+0x8073,0x8072,0x8070,0x8076,0x8079,0x807d,0x807f,0x8084,
+0x8086,0x8085,0x809b,0x8093,0x809a,0x80ad,0x5190,0x80ac,
+0x80db,0x80e5,0x80d9,0x80dd,0x80c4,0x80da,0x80d6,0x8109,
+0x80ef,0x80f1,0x811b,0x8129,0x8123,0x812f,0x814b, -1,
+ -1, -1, -1, -1, -1,0x968b,0x8146,0x813e,
+0x8153,0x8151,0x80fc,0x8171,0x816e,0x8165,0x8166,0x8174,
+0x8183,0x8188,0x818a,0x8180,0x8182,0x81a0,0x8195,0x81a4,
+0x81a3,0x815f,0x8193,0x81a9,0x81b0,0x81b5,0x81be,0x81b8,
+0x81bd,0x81c0,0x81c2,0x81ba,0x81c9,0x81cd,0x81d1,0x81d9,
+0x81d8,0x81c8,0x81da,0x81df,0x81e0,0x81e7,0x81fa,0x81fb,
+0x81fe,0x8201,0x8202,0x8205,0x8207,0x820a,0x820d,0x8210,
+0x8216,0x8229,0x822b,0x8238,0x8233,0x8240,0x8259,0x8258,
+0x825d,0x825a,0x825f,0x8264,0x8262,0x8268,0x826a,0x826b,
+0x822e,0x8271,0x8277,0x8278,0x827e,0x828d,0x8292,0x82ab,
+0x829f,0x82bb,0x82ac,0x82e1,0x82e3,0x82df,0x82d2,0x82f4,
+0x82f3,0x82fa,0x8393,0x8303,0x82fb,0x82f9,0x82de,0x8306,
+0x82dc,0x8309,0x82d9, -1, -1, -1, -1, -1,
+ -1,0x8335,0x8334,0x8316,0x8332,0x8331,0x8340,0x8339,
+0x8350,0x8345,0x832f,0x832b,0x8317,0x8318,0x8385,0x839a,
+0x83aa,0x839f,0x83a2,0x8396,0x8323,0x838e,0x8387,0x838a,
+0x837c,0x83b5,0x8373,0x8375,0x83a0,0x8389,0x83a8,0x83f4,
+0x8413,0x83eb,0x83ce,0x83fd,0x8403,0x83d8,0x840b,0x83c1,
+0x83f7,0x8407,0x83e0,0x83f2,0x840d,0x8422,0x8420,0x83bd,
+0x8438,0x8506,0x83fb,0x846d,0x842a,0x843c,0x855a,0x8484,
+0x8477,0x846b,0x84ad,0x846e,0x8482,0x8469,0x8446,0x842c,
+0x846f,0x8479,0x8435,0x84ca,0x8462,0x84b9,0x84bf,0x849f,
+0x84d9,0x84cd,0x84bb,0x84da,0x84d0,0x84c1,0x84c6,0x84d6,
+0x84a1,0x8521,0x84ff,0x84f4,0x8517,0x8518,0x852c,0x851f,
+0x8515,0x8514,0x84fc,0x8540,0x8563,0x8558,0x8548, -1,
+ -1, -1, -1, -1, -1,0x8541,0x8602,0x854b,
+0x8555,0x8580,0x85a4,0x8588,0x8591,0x858a,0x85a8,0x856d,
+0x8594,0x859b,0x85ea,0x8587,0x859c,0x8577,0x857e,0x8590,
+0x85c9,0x85ba,0x85cf,0x85b9,0x85d0,0x85d5,0x85dd,0x85e5,
+0x85dc,0x85f9,0x860a,0x8613,0x860b,0x85fe,0x85fa,0x8606,
+0x8622,0x861a,0x8630,0x863f,0x864d,0x4e55,0x8654,0x865f,
+0x8667,0x8671,0x8693,0x86a3,0x86a9,0x86aa,0x868b,0x868c,
+0x86b6,0x86af,0x86c4,0x86c6,0x86b0,0x86c9,0x8823,0x86ab,
+0x86d4,0x86de,0x86e9,0x86ec,0x86df,0x86db,0x86ef,0x8712,
+0x8706,0x8708,0x8700,0x8703,0x86fb,0x8711,0x8709,0x870d,
+0x86f9,0x870a,0x8734,0x873f,0x8737,0x873b,0x8725,0x8729,
+0x871a,0x8760,0x875f,0x8778,0x874c,0x874e,0x8774,0x8757,
+0x8768,0x876e,0x8759, -1, -1, -1, -1, -1,
+ -1,0x8753,0x8763,0x876a,0x8805,0x87a2,0x879f,0x8782,
+0x87af,0x87cb,0x87bd,0x87c0,0x87d0,0x96d6,0x87ab,0x87c4,
+0x87b3,0x87c7,0x87c6,0x87bb,0x87ef,0x87f2,0x87e0,0x880f,
+0x880d,0x87fe,0x87f6,0x87f7,0x880e,0x87d2,0x8811,0x8816,
+0x8815,0x8822,0x8821,0x8831,0x8836,0x8839,0x8827,0x883b,
+0x8844,0x8842,0x8852,0x8859,0x885e,0x8862,0x886b,0x8881,
+0x887e,0x889e,0x8875,0x887d,0x88b5,0x8872,0x8882,0x8897,
+0x8892,0x88ae,0x8899,0x88a2,0x888d,0x88a4,0x88b0,0x88bf,
+0x88b1,0x88c3,0x88c4,0x88d4,0x88d8,0x88d9,0x88dd,0x88f9,
+0x8902,0x88fc,0x88f4,0x88e8,0x88f2,0x8904,0x890c,0x890a,
+0x8913,0x8943,0x891e,0x8925,0x892a,0x892b,0x8941,0x8944,
+0x893b,0x8936,0x8938,0x894c,0x891d,0x8960,0x895e, -1,
+ -1, -1, -1, -1, -1,0x8966,0x8964,0x896d,
+0x896a,0x896f,0x8974,0x8977,0x897e,0x8983,0x8988,0x898a,
+0x8993,0x8998,0x89a1,0x89a9,0x89a6,0x89ac,0x89af,0x89b2,
+0x89ba,0x89bd,0x89bf,0x89c0,0x89da,0x89dc,0x89dd,0x89e7,
+0x89f4,0x89f8,0x8a03,0x8a16,0x8a10,0x8a0c,0x8a1b,0x8a1d,
+0x8a25,0x8a36,0x8a41,0x8a5b,0x8a52,0x8a46,0x8a48,0x8a7c,
+0x8a6d,0x8a6c,0x8a62,0x8a85,0x8a82,0x8a84,0x8aa8,0x8aa1,
+0x8a91,0x8aa5,0x8aa6,0x8a9a,0x8aa3,0x8ac4,0x8acd,0x8ac2,
+0x8ada,0x8aeb,0x8af3,0x8ae7,0x8ae4,0x8af1,0x8b14,0x8ae0,
+0x8ae2,0x8af7,0x8ade,0x8adb,0x8b0c,0x8b07,0x8b1a,0x8ae1,
+0x8b16,0x8b10,0x8b17,0x8b20,0x8b33,0x97ab,0x8b26,0x8b2b,
+0x8b3e,0x8b28,0x8b41,0x8b4c,0x8b4f,0x8b4e,0x8b49,0x8b56,
+0x8b5b,0x8b5a,0x8b6b, -1, -1, -1, -1, -1,
+ -1,0x8b5f,0x8b6c,0x8b6f,0x8b74,0x8b7d,0x8b80,0x8b8c,
+0x8b8e,0x8b92,0x8b93,0x8b96,0x8b99,0x8b9a,0x8c3a,0x8c41,
+0x8c3f,0x8c48,0x8c4c,0x8c4e,0x8c50,0x8c55,0x8c62,0x8c6c,
+0x8c78,0x8c7a,0x8c82,0x8c89,0x8c85,0x8c8a,0x8c8d,0x8c8e,
+0x8c94,0x8c7c,0x8c98,0x621d,0x8cad,0x8caa,0x8cbd,0x8cb2,
+0x8cb3,0x8cae,0x8cb6,0x8cc8,0x8cc1,0x8ce4,0x8ce3,0x8cda,
+0x8cfd,0x8cfa,0x8cfb,0x8d04,0x8d05,0x8d0a,0x8d07,0x8d0f,
+0x8d0d,0x8d10,0x9f4e,0x8d13,0x8ccd,0x8d14,0x8d16,0x8d67,
+0x8d6d,0x8d71,0x8d73,0x8d81,0x8d99,0x8dc2,0x8dbe,0x8dba,
+0x8dcf,0x8dda,0x8dd6,0x8dcc,0x8ddb,0x8dcb,0x8dea,0x8deb,
+0x8ddf,0x8de3,0x8dfc,0x8e08,0x8e09,0x8dff,0x8e1d,0x8e1e,
+0x8e10,0x8e1f,0x8e42,0x8e35,0x8e30,0x8e34,0x8e4a, -1,
+ -1, -1, -1, -1, -1,0x8e47,0x8e49,0x8e4c,
+0x8e50,0x8e48,0x8e59,0x8e64,0x8e60,0x8e2a,0x8e63,0x8e55,
+0x8e76,0x8e72,0x8e7c,0x8e81,0x8e87,0x8e85,0x8e84,0x8e8b,
+0x8e8a,0x8e93,0x8e91,0x8e94,0x8e99,0x8eaa,0x8ea1,0x8eac,
+0x8eb0,0x8ec6,0x8eb1,0x8ebe,0x8ec5,0x8ec8,0x8ecb,0x8edb,
+0x8ee3,0x8efc,0x8efb,0x8eeb,0x8efe,0x8f0a,0x8f05,0x8f15,
+0x8f12,0x8f19,0x8f13,0x8f1c,0x8f1f,0x8f1b,0x8f0c,0x8f26,
+0x8f33,0x8f3b,0x8f39,0x8f45,0x8f42,0x8f3e,0x8f4c,0x8f49,
+0x8f46,0x8f4e,0x8f57,0x8f5c,0x8f62,0x8f63,0x8f64,0x8f9c,
+0x8f9f,0x8fa3,0x8fad,0x8faf,0x8fb7,0x8fda,0x8fe5,0x8fe2,
+0x8fea,0x8fef,0x9087,0x8ff4,0x9005,0x8ff9,0x8ffa,0x9011,
+0x9015,0x9021,0x900d,0x901e,0x9016,0x900b,0x9027,0x9036,
+0x9035,0x9039,0x8ff8, -1, -1, -1, -1, -1,
+ -1,0x904f,0x9050,0x9051,0x9052,0x900e,0x9049,0x903e,
+0x9056,0x9058,0x905e,0x9068,0x906f,0x9076,0x96a8,0x9072,
+0x9082,0x907d,0x9081,0x9080,0x908a,0x9089,0x908f,0x90a8,
+0x90af,0x90b1,0x90b5,0x90e2,0x90e4,0x6248,0x90db,0x9102,
+0x9112,0x9119,0x9132,0x9130,0x914a,0x9156,0x9158,0x9163,
+0x9165,0x9169,0x9173,0x9172,0x918b,0x9189,0x9182,0x91a2,
+0x91ab,0x91af,0x91aa,0x91b5,0x91b4,0x91ba,0x91c0,0x91c1,
+0x91c9,0x91cb,0x91d0,0x91d6,0x91df,0x91e1,0x91db,0x91fc,
+0x91f5,0x91f6,0x921e,0x91ff,0x9214,0x922c,0x9215,0x9211,
+0x925e,0x9257,0x9245,0x9249,0x9264,0x9248,0x9295,0x923f,
+0x924b,0x9250,0x929c,0x9296,0x9293,0x929b,0x925a,0x92cf,
+0x92b9,0x92b7,0x92e9,0x930f,0x92fa,0x9344,0x932e, -1,
+ -1, -1, -1, -1, -1,0x9319,0x9322,0x931a,
+0x9323,0x933a,0x9335,0x933b,0x935c,0x9360,0x937c,0x936e,
+0x9356,0x93b0,0x93ac,0x93ad,0x9394,0x93b9,0x93d6,0x93d7,
+0x93e8,0x93e5,0x93d8,0x93c3,0x93dd,0x93d0,0x93c8,0x93e4,
+0x941a,0x9414,0x9413,0x9403,0x9407,0x9410,0x9436,0x942b,
+0x9435,0x9421,0x943a,0x9441,0x9452,0x9444,0x945b,0x9460,
+0x9462,0x945e,0x946a,0x9229,0x9470,0x9475,0x9477,0x947d,
+0x945a,0x947c,0x947e,0x9481,0x947f,0x9582,0x9587,0x958a,
+0x9594,0x9596,0x9598,0x9599,0x95a0,0x95a8,0x95a7,0x95ad,
+0x95bc,0x95bb,0x95b9,0x95be,0x95ca,0x6ff6,0x95c3,0x95cd,
+0x95cc,0x95d5,0x95d4,0x95d6,0x95dc,0x95e1,0x95e5,0x95e2,
+0x9621,0x9628,0x962e,0x962f,0x9642,0x964c,0x964f,0x964b,
+0x9677,0x965c,0x965e, -1, -1, -1, -1, -1,
+ -1,0x965d,0x965f,0x9666,0x9672,0x966c,0x968d,0x9698,
+0x9695,0x9697,0x96aa,0x96a7,0x96b1,0x96b2,0x96b0,0x96b4,
+0x96b6,0x96b8,0x96b9,0x96ce,0x96cb,0x96c9,0x96cd,0x894d,
+0x96dc,0x970d,0x96d5,0x96f9,0x9704,0x9706,0x9708,0x9713,
+0x970e,0x9711,0x970f,0x9716,0x9719,0x9724,0x972a,0x9730,
+0x9739,0x973d,0x973e,0x9744,0x9746,0x9748,0x9742,0x9749,
+0x975c,0x9760,0x9764,0x9766,0x9768,0x52d2,0x976b,0x9771,
+0x9779,0x9785,0x977c,0x9781,0x977a,0x9786,0x978b,0x978f,
+0x9790,0x979c,0x97a8,0x97a6,0x97a3,0x97b3,0x97b4,0x97c3,
+0x97c6,0x97c8,0x97cb,0x97dc,0x97ed,0x9f4f,0x97f2,0x7adf,
+0x97f6,0x97f5,0x980f,0x980c,0x9838,0x9824,0x9821,0x9837,
+0x983d,0x9846,0x984f,0x984b,0x986b,0x986f,0x9870, -1,
+ -1, -1, -1, -1, -1,0x9871,0x9874,0x9873,
+0x98aa,0x98af,0x98b1,0x98b6,0x98c4,0x98c3,0x98c6,0x98e9,
+0x98eb,0x9903,0x9909,0x9912,0x9914,0x9918,0x9921,0x991d,
+0x991e,0x9924,0x9920,0x992c,0x992e,0x993d,0x993e,0x9942,
+0x9949,0x9945,0x9950,0x994b,0x9951,0x9952,0x994c,0x9955,
+0x9997,0x9998,0x99a5,0x99ad,0x99ae,0x99bc,0x99df,0x99db,
+0x99dd,0x99d8,0x99d1,0x99ed,0x99ee,0x99f1,0x99f2,0x99fb,
+0x99f8,0x9a01,0x9a0f,0x9a05,0x99e2,0x9a19,0x9a2b,0x9a37,
+0x9a45,0x9a42,0x9a40,0x9a43,0x9a3e,0x9a55,0x9a4d,0x9a5b,
+0x9a57,0x9a5f,0x9a62,0x9a65,0x9a64,0x9a69,0x9a6b,0x9a6a,
+0x9aad,0x9ab0,0x9abc,0x9ac0,0x9acf,0x9ad1,0x9ad3,0x9ad4,
+0x9ade,0x9adf,0x9ae2,0x9ae3,0x9ae6,0x9aef,0x9aeb,0x9aee,
+0x9af4,0x9af1,0x9af7, -1, -1, -1, -1, -1,
+ -1,0x9afb,0x9b06,0x9b18,0x9b1a,0x9b1f,0x9b22,0x9b23,
+0x9b25,0x9b27,0x9b28,0x9b29,0x9b2a,0x9b2e,0x9b2f,0x9b32,
+0x9b44,0x9b43,0x9b4f,0x9b4d,0x9b4e,0x9b51,0x9b58,0x9b74,
+0x9b93,0x9b83,0x9b91,0x9b96,0x9b97,0x9b9f,0x9ba0,0x9ba8,
+0x9bb4,0x9bc0,0x9bca,0x9bb9,0x9bc6,0x9bcf,0x9bd1,0x9bd2,
+0x9be3,0x9be2,0x9be4,0x9bd4,0x9be1,0x9c3a,0x9bf2,0x9bf1,
+0x9bf0,0x9c15,0x9c14,0x9c09,0x9c13,0x9c0c,0x9c06,0x9c08,
+0x9c12,0x9c0a,0x9c04,0x9c2e,0x9c1b,0x9c25,0x9c24,0x9c21,
+0x9c30,0x9c47,0x9c32,0x9c46,0x9c3e,0x9c5a,0x9c60,0x9c67,
+0x9c76,0x9c78,0x9ce7,0x9cec,0x9cf0,0x9d09,0x9d08,0x9ceb,
+0x9d03,0x9d06,0x9d2a,0x9d26,0x9daf,0x9d23,0x9d1f,0x9d44,
+0x9d15,0x9d12,0x9d41,0x9d3f,0x9d3e,0x9d46,0x9d48, -1,
+ -1, -1, -1, -1, -1,0x9d5d,0x9d5e,0x9d64,
+0x9d51,0x9d50,0x9d59,0x9d72,0x9d89,0x9d87,0x9dab,0x9d6f,
+0x9d7a,0x9d9a,0x9da4,0x9da9,0x9db2,0x9dc4,0x9dc1,0x9dbb,
+0x9db8,0x9dba,0x9dc6,0x9dcf,0x9dc2,0x9dd9,0x9dd3,0x9df8,
+0x9de6,0x9ded,0x9def,0x9dfd,0x9e1a,0x9e1b,0x9e1e,0x9e75,
+0x9e79,0x9e7d,0x9e81,0x9e88,0x9e8b,0x9e8c,0x9e92,0x9e95,
+0x9e91,0x9e9d,0x9ea5,0x9ea9,0x9eb8,0x9eaa,0x9ead,0x9761,
+0x9ecc,0x9ece,0x9ecf,0x9ed0,0x9ed4,0x9edc,0x9ede,0x9edd,
+0x9ee0,0x9ee5,0x9ee8,0x9eef,0x9ef4,0x9ef6,0x9ef7,0x9ef9,
+0x9efb,0x9efc,0x9efd,0x9f07,0x9f08,0x76b7,0x9f15,0x9f21,
+0x9f2c,0x9f3e,0x9f4a,0x9f52,0x9f54,0x9f63,0x9f5f,0x9f60,
+0x9f61,0x9f66,0x9f67,0x9f6c,0x9f6a,0x9f77,0x9f72,0x9f76,
+0x9f95,0x9f9c,0x9fa0, -1, -1, -1, -1, -1,
+ -1,0x582f,0x69c7,0x9059,0x7464,0x51dc,0x7199,
+};
diff --git a/src/cmd/tcs/kuten208.h b/src/cmd/tcs/kuten208.h
new file mode 100644
index 00000000..3886d9d9
--- /dev/null
+++ b/src/cmd/tcs/kuten208.h
@@ -0,0 +1,3 @@
+#define KUTEN208MAX 8407
+
+extern long tabkuten208[KUTEN208MAX]; /* runes indexed by kuten */
diff --git a/src/cmd/tcs/kuten212.c b/src/cmd/tcs/kuten212.c
new file mode 100644
index 00000000..c1ad93b2
--- /dev/null
+++ b/src/cmd/tcs/kuten212.c
@@ -0,0 +1,975 @@
+#include "kuten212.h"
+
+long tabkuten212[KUTEN212MAX] = {
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1,0x02d8,
+0x02c7,0x00b8,0x02d9,0x02dd,0x00af,0x02db,0x02da,0x007e,
+0x0384,0x0385, -1, -1, -1, -1, -1, -1,
+ -1, -1,0x00a1,0x00a6,0x00bf, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1,0x00ba,0x00aa,0x00a9,0x00ae,0x2122,
+0x00a4,0x2116, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x0386,0x0388,0x0389,0x038a,0x03aa, -1,0x038c,
+ -1,0x038e,0x03ab, -1,0x038f, -1, -1, -1,
+ -1,0x03ac,0x03ad,0x03ae,0x03af,0x03ca,0x0390,0x03cc,
+0x03c2,0x03cd,0x03cb,0x03b0,0x03ce, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1,0x0402,0x0403,
+0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040a,0x040b,
+0x040c,0x040e,0x040f, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1,0x0452,0x0453,
+0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045a,0x045b,
+0x045c,0x045e,0x045f, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x00c6,0x0110, -1,
+0x0126, -1,0x0132, -1,0x0141,0x013f, -1,0x014a,
+0x00d8,0x0152, -1,0x0166,0x00de, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x00e6,0x0111,0x00f0,
+0x0127,0x0131,0x0133,0x0138,0x0142,0x0140,0x0149,0x014b,
+0x00f8,0x0153,0x00df,0x0167,0x00fe, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x00c1,0x00c0,0x00c4,0x00c2,0x0102,0x01cd,0x0100,
+0x0104,0x00c5,0x00c3,0x0106,0x0108,0x010c,0x00c7,0x010a,
+0x010e,0x00c9,0x00c8,0x00cb,0x00ca,0x011a,0x0116,0x0112,
+0x0118, -1,0x011c,0x011e,0x0122,0x0120,0x0124,0x00cd,
+0x00cc,0x00cf,0x00ce,0x01cf,0x0130,0x012a,0x012e,0x0128,
+0x0134,0x0136,0x0139,0x013d,0x013b,0x0143,0x0147,0x0145,
+0x00d1,0x00d3,0x00d2,0x00d6,0x00d4,0x01d1,0x0150,0x014c,
+0x00d5,0x0154,0x0158,0x0156,0x015a,0x015c,0x0160,0x015e,
+0x0164,0x0162,0x00da,0x00d9,0x00dc,0x00db,0x016c,0x01d3,
+0x0170,0x016a,0x0172,0x016e,0x0168,0x01d7,0x01db,0x01d9,
+0x01d5,0x0174,0x00dd,0x0178,0x0176,0x0179,0x017d,0x017b,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,0x00e1,0x00e0,0x00e4,
+0x00e2,0x0103,0x01ce,0x0101,0x0105,0x00e5,0x00e3,0x0107,
+0x0109,0x010d,0x00e7,0x010b,0x010f,0x00e9,0x00e8,0x00eb,
+0x00ea,0x011b,0x0117,0x0113,0x0119,0x01f5,0x011d,0x011f,
+ -1,0x0121,0x0125,0x00ed,0x00ec,0x00ef,0x00ee,0x01d0,
+ -1,0x012b,0x012f,0x0129,0x0135,0x0137,0x013a,0x013e,
+0x013c,0x0144,0x0148,0x0146,0x00f1,0x00f3,0x00f2,0x00f6,
+0x00f4,0x01d2,0x0151,0x014d,0x00f5,0x0155,0x0159,0x0157,
+0x015b,0x015d,0x0161,0x015f,0x0165,0x0163,0x00fa,0x00f9,
+0x00fc,0x00fb,0x016d,0x01d4,0x0171,0x016b,0x0173,0x016f,
+0x0169,0x01d8,0x01dc,0x01da,0x01d6,0x0175,0x00fd,0x00ff,
+0x0177,0x017a,0x017e,0x017c, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1,0x4e02,0x4e04,0x4e05,0x4e0c,0x4e12,0x4e1f,0x4e23,
+0x4e24,0x4e28,0x4e2b,0x4e2e,0x4e2f,0x4e30,0x4e35,0x4e40,
+0x4e41,0x4e44,0x4e47,0x4e51,0x4e5a,0x4e5c,0x4e63,0x4e68,
+0x4e69,0x4e74,0x4e75,0x4e79,0x4e7f,0x4e8d,0x4e96,0x4e97,
+0x4e9d,0x4eaf,0x4eb9,0x4ec3,0x4ed0,0x4eda,0x4edb,0x4ee0,
+0x4ee1,0x4ee2,0x4ee8,0x4eef,0x4ef1,0x4ef3,0x4ef5,0x4efd,
+0x4efe,0x4eff,0x4f00,0x4f02,0x4f03,0x4f08,0x4f0b,0x4f0c,
+0x4f12,0x4f15,0x4f16,0x4f17,0x4f19,0x4f2e,0x4f31,0x4f60,
+0x4f33,0x4f35,0x4f37,0x4f39,0x4f3b,0x4f3e,0x4f40,0x4f42,
+0x4f48,0x4f49,0x4f4b,0x4f4c,0x4f52,0x4f54,0x4f56,0x4f58,
+0x4f5f,0x4f63,0x4f6a,0x4f6c,0x4f6e,0x4f71,0x4f77,0x4f78,
+0x4f79,0x4f7a,0x4f7d,0x4f7e,0x4f81,0x4f82,0x4f84, -1,
+ -1, -1, -1, -1, -1,0x4f85,0x4f89,0x4f8a,
+0x4f8c,0x4f8e,0x4f90,0x4f92,0x4f93,0x4f94,0x4f97,0x4f99,
+0x4f9a,0x4f9e,0x4f9f,0x4fb2,0x4fb7,0x4fb9,0x4fbb,0x4fbc,
+0x4fbd,0x4fbe,0x4fc0,0x4fc1,0x4fc5,0x4fc6,0x4fc8,0x4fc9,
+0x4fcb,0x4fcc,0x4fcd,0x4fcf,0x4fd2,0x4fdc,0x4fe0,0x4fe2,
+0x4ff0,0x4ff2,0x4ffc,0x4ffd,0x4fff,0x5000,0x5001,0x5004,
+0x5007,0x500a,0x500c,0x500e,0x5010,0x5013,0x5017,0x5018,
+0x501b,0x501c,0x501d,0x501e,0x5022,0x5027,0x502e,0x5030,
+0x5032,0x5033,0x5035,0x5040,0x5041,0x5042,0x5045,0x5046,
+0x504a,0x504c,0x504e,0x5051,0x5052,0x5053,0x5057,0x5059,
+0x505f,0x5060,0x5062,0x5063,0x5066,0x5067,0x506a,0x506d,
+0x5070,0x5071,0x503b,0x5081,0x5083,0x5084,0x5086,0x508a,
+0x508e,0x508f,0x5090, -1, -1, -1, -1, -1,
+ -1,0x5092,0x5093,0x5094,0x5096,0x509b,0x509c,0x509e,
+0x509f,0x50a0,0x50a1,0x50a2,0x50aa,0x50af,0x50b0,0x50b9,
+0x50ba,0x50bd,0x50c0,0x50c3,0x50c4,0x50c7,0x50cc,0x50ce,
+0x50d0,0x50d3,0x50d4,0x50d8,0x50dc,0x50dd,0x50df,0x50e2,
+0x50e4,0x50e6,0x50e8,0x50e9,0x50ef,0x50f1,0x50f6,0x50fa,
+0x50fe,0x5103,0x5106,0x5107,0x5108,0x510b,0x510c,0x510d,
+0x510e,0x50f2,0x5110,0x5117,0x5119,0x511b,0x511c,0x511d,
+0x511e,0x5123,0x5127,0x5128,0x512c,0x512d,0x512f,0x5131,
+0x5133,0x5134,0x5135,0x5138,0x5139,0x5142,0x514a,0x514f,
+0x5153,0x5155,0x5157,0x5158,0x515f,0x5164,0x5166,0x517e,
+0x5183,0x5184,0x518b,0x518e,0x5198,0x519d,0x51a1,0x51a3,
+0x51ad,0x51b8,0x51ba,0x51bc,0x51be,0x51bf,0x51c2, -1,
+ -1, -1, -1, -1, -1,0x51c8,0x51cf,0x51d1,
+0x51d2,0x51d3,0x51d5,0x51d8,0x51de,0x51e2,0x51e5,0x51ee,
+0x51f2,0x51f3,0x51f4,0x51f7,0x5201,0x5202,0x5205,0x5212,
+0x5213,0x5215,0x5216,0x5218,0x5222,0x5228,0x5231,0x5232,
+0x5235,0x523c,0x5245,0x5249,0x5255,0x5257,0x5258,0x525a,
+0x525c,0x525f,0x5260,0x5261,0x5266,0x526e,0x5277,0x5278,
+0x5279,0x5280,0x5282,0x5285,0x528a,0x528c,0x5293,0x5295,
+0x5296,0x5297,0x5298,0x529a,0x529c,0x52a4,0x52a5,0x52a6,
+0x52a7,0x52af,0x52b0,0x52b6,0x52b7,0x52b8,0x52ba,0x52bb,
+0x52bd,0x52c0,0x52c4,0x52c6,0x52c8,0x52cc,0x52cf,0x52d1,
+0x52d4,0x52d6,0x52db,0x52dc,0x52e1,0x52e5,0x52e8,0x52e9,
+0x52ea,0x52ec,0x52f0,0x52f1,0x52f4,0x52f6,0x52f7,0x5300,
+0x5303,0x530a,0x530b, -1, -1, -1, -1, -1,
+ -1,0x530c,0x5311,0x5313,0x5318,0x531b,0x531c,0x531e,
+0x531f,0x5325,0x5327,0x5328,0x5329,0x532b,0x532c,0x532d,
+0x5330,0x5332,0x5335,0x533c,0x533d,0x533e,0x5342,0x534c,
+0x534b,0x5359,0x535b,0x5361,0x5363,0x5365,0x536c,0x536d,
+0x5372,0x5379,0x537e,0x5383,0x5387,0x5388,0x538e,0x5393,
+0x5394,0x5399,0x539d,0x53a1,0x53a4,0x53aa,0x53ab,0x53af,
+0x53b2,0x53b4,0x53b5,0x53b7,0x53b8,0x53ba,0x53bd,0x53c0,
+0x53c5,0x53cf,0x53d2,0x53d3,0x53d5,0x53da,0x53dd,0x53de,
+0x53e0,0x53e6,0x53e7,0x53f5,0x5402,0x5413,0x541a,0x5421,
+0x5427,0x5428,0x542a,0x542f,0x5431,0x5434,0x5435,0x5443,
+0x5444,0x5447,0x544d,0x544f,0x545e,0x5462,0x5464,0x5466,
+0x5467,0x5469,0x546b,0x546d,0x546e,0x5474,0x547f, -1,
+ -1, -1, -1, -1, -1,0x5481,0x5483,0x5485,
+0x5488,0x5489,0x548d,0x5491,0x5495,0x5496,0x549c,0x549f,
+0x54a1,0x54a6,0x54a7,0x54a9,0x54aa,0x54ad,0x54ae,0x54b1,
+0x54b7,0x54b9,0x54ba,0x54bb,0x54bf,0x54c6,0x54ca,0x54cd,
+0x54ce,0x54e0,0x54ea,0x54ec,0x54ef,0x54f6,0x54fc,0x54fe,
+0x54ff,0x5500,0x5501,0x5505,0x5508,0x5509,0x550c,0x550d,
+0x550e,0x5515,0x552a,0x552b,0x5532,0x5535,0x5536,0x553b,
+0x553c,0x553d,0x5541,0x5547,0x5549,0x554a,0x554d,0x5550,
+0x5551,0x5558,0x555a,0x555b,0x555e,0x5560,0x5561,0x5564,
+0x5566,0x557f,0x5581,0x5582,0x5586,0x5588,0x558e,0x558f,
+0x5591,0x5592,0x5593,0x5594,0x5597,0x55a3,0x55a4,0x55ad,
+0x55b2,0x55bf,0x55c1,0x55c3,0x55c6,0x55c9,0x55cb,0x55cc,
+0x55ce,0x55d1,0x55d2, -1, -1, -1, -1, -1,
+ -1,0x55d3,0x55d7,0x55d8,0x55db,0x55de,0x55e2,0x55e9,
+0x55f6,0x55ff,0x5605,0x5608,0x560a,0x560d,0x560e,0x560f,
+0x5610,0x5611,0x5612,0x5619,0x562c,0x5630,0x5633,0x5635,
+0x5637,0x5639,0x563b,0x563c,0x563d,0x563f,0x5640,0x5641,
+0x5643,0x5644,0x5646,0x5649,0x564b,0x564d,0x564f,0x5654,
+0x565e,0x5660,0x5661,0x5662,0x5663,0x5666,0x5669,0x566d,
+0x566f,0x5671,0x5672,0x5675,0x5684,0x5685,0x5688,0x568b,
+0x568c,0x5695,0x5699,0x569a,0x569d,0x569e,0x569f,0x56a6,
+0x56a7,0x56a8,0x56a9,0x56ab,0x56ac,0x56ad,0x56b1,0x56b3,
+0x56b7,0x56be,0x56c5,0x56c9,0x56ca,0x56cb,0x56cf,0x56d0,
+0x56cc,0x56cd,0x56d9,0x56dc,0x56dd,0x56df,0x56e1,0x56e4,
+0x56e5,0x56e6,0x56e7,0x56e8,0x56f1,0x56eb,0x56ed, -1,
+ -1, -1, -1, -1, -1,0x56f6,0x56f7,0x5701,
+0x5702,0x5707,0x570a,0x570c,0x5711,0x5715,0x571a,0x571b,
+0x571d,0x5720,0x5722,0x5723,0x5724,0x5725,0x5729,0x572a,
+0x572c,0x572e,0x572f,0x5733,0x5734,0x573d,0x573e,0x573f,
+0x5745,0x5746,0x574c,0x574d,0x5752,0x5762,0x5765,0x5767,
+0x5768,0x576b,0x576d,0x576e,0x576f,0x5770,0x5771,0x5773,
+0x5774,0x5775,0x5777,0x5779,0x577a,0x577b,0x577c,0x577e,
+0x5781,0x5783,0x578c,0x5794,0x5797,0x5799,0x579a,0x579c,
+0x579d,0x579e,0x579f,0x57a1,0x5795,0x57a7,0x57a8,0x57a9,
+0x57ac,0x57b8,0x57bd,0x57c7,0x57c8,0x57cc,0x57cf,0x57d5,
+0x57dd,0x57de,0x57e4,0x57e6,0x57e7,0x57e9,0x57ed,0x57f0,
+0x57f5,0x57f6,0x57f8,0x57fd,0x57fe,0x57ff,0x5803,0x5804,
+0x5808,0x5809,0x57e1, -1, -1, -1, -1, -1,
+ -1,0x580c,0x580d,0x581b,0x581e,0x581f,0x5820,0x5826,
+0x5827,0x582d,0x5832,0x5839,0x583f,0x5849,0x584c,0x584d,
+0x584f,0x5850,0x5855,0x585f,0x5861,0x5864,0x5867,0x5868,
+0x5878,0x587c,0x587f,0x5880,0x5881,0x5887,0x5888,0x5889,
+0x588a,0x588c,0x588d,0x588f,0x5890,0x5894,0x5896,0x589d,
+0x58a0,0x58a1,0x58a2,0x58a6,0x58a9,0x58b1,0x58b2,0x58c4,
+0x58bc,0x58c2,0x58c8,0x58cd,0x58ce,0x58d0,0x58d2,0x58d4,
+0x58d6,0x58da,0x58dd,0x58e1,0x58e2,0x58e9,0x58f3,0x5905,
+0x5906,0x590b,0x590c,0x5912,0x5913,0x5914,0x8641,0x591d,
+0x5921,0x5923,0x5924,0x5928,0x592f,0x5930,0x5933,0x5935,
+0x5936,0x593f,0x5943,0x5946,0x5952,0x5953,0x5959,0x595b,
+0x595d,0x595e,0x595f,0x5961,0x5963,0x596b,0x596d, -1,
+ -1, -1, -1, -1, -1,0x596f,0x5972,0x5975,
+0x5976,0x5979,0x597b,0x597c,0x598b,0x598c,0x598e,0x5992,
+0x5995,0x5997,0x599f,0x59a4,0x59a7,0x59ad,0x59ae,0x59af,
+0x59b0,0x59b3,0x59b7,0x59ba,0x59bc,0x59c1,0x59c3,0x59c4,
+0x59c8,0x59ca,0x59cd,0x59d2,0x59dd,0x59de,0x59df,0x59e3,
+0x59e4,0x59e7,0x59ee,0x59ef,0x59f1,0x59f2,0x59f4,0x59f7,
+0x5a00,0x5a04,0x5a0c,0x5a0d,0x5a0e,0x5a12,0x5a13,0x5a1e,
+0x5a23,0x5a24,0x5a27,0x5a28,0x5a2a,0x5a2d,0x5a30,0x5a44,
+0x5a45,0x5a47,0x5a48,0x5a4c,0x5a50,0x5a55,0x5a5e,0x5a63,
+0x5a65,0x5a67,0x5a6d,0x5a77,0x5a7a,0x5a7b,0x5a7e,0x5a8b,
+0x5a90,0x5a93,0x5a96,0x5a99,0x5a9c,0x5a9e,0x5a9f,0x5aa0,
+0x5aa2,0x5aa7,0x5aac,0x5ab1,0x5ab2,0x5ab3,0x5ab5,0x5ab8,
+0x5aba,0x5abb,0x5abf, -1, -1, -1, -1, -1,
+ -1,0x5ac4,0x5ac6,0x5ac8,0x5acf,0x5ada,0x5adc,0x5ae0,
+0x5ae5,0x5aea,0x5aee,0x5af5,0x5af6,0x5afd,0x5b00,0x5b01,
+0x5b08,0x5b17,0x5b34,0x5b19,0x5b1b,0x5b1d,0x5b21,0x5b25,
+0x5b2d,0x5b38,0x5b41,0x5b4b,0x5b4c,0x5b52,0x5b56,0x5b5e,
+0x5b68,0x5b6e,0x5b6f,0x5b7c,0x5b7d,0x5b7e,0x5b7f,0x5b81,
+0x5b84,0x5b86,0x5b8a,0x5b8e,0x5b90,0x5b91,0x5b93,0x5b94,
+0x5b96,0x5ba8,0x5ba9,0x5bac,0x5bad,0x5baf,0x5bb1,0x5bb2,
+0x5bb7,0x5bba,0x5bbc,0x5bc0,0x5bc1,0x5bcd,0x5bcf,0x5bd6,
+0x5bd7,0x5bd8,0x5bd9,0x5bda,0x5be0,0x5bef,0x5bf1,0x5bf4,
+0x5bfd,0x5c0c,0x5c17,0x5c1e,0x5c1f,0x5c23,0x5c26,0x5c29,
+0x5c2b,0x5c2c,0x5c2e,0x5c30,0x5c32,0x5c35,0x5c36,0x5c59,
+0x5c5a,0x5c5c,0x5c62,0x5c63,0x5c67,0x5c68,0x5c69, -1,
+ -1, -1, -1, -1, -1,0x5c6d,0x5c70,0x5c74,
+0x5c75,0x5c7a,0x5c7b,0x5c7c,0x5c7d,0x5c87,0x5c88,0x5c8a,
+0x5c8f,0x5c92,0x5c9d,0x5c9f,0x5ca0,0x5ca2,0x5ca3,0x5ca6,
+0x5caa,0x5cb2,0x5cb4,0x5cb5,0x5cba,0x5cc9,0x5ccb,0x5cd2,
+0x5cdd,0x5cd7,0x5cee,0x5cf1,0x5cf2,0x5cf4,0x5d01,0x5d06,
+0x5d0d,0x5d12,0x5d2b,0x5d23,0x5d24,0x5d26,0x5d27,0x5d31,
+0x5d34,0x5d39,0x5d3d,0x5d3f,0x5d42,0x5d43,0x5d46,0x5d48,
+0x5d55,0x5d51,0x5d59,0x5d4a,0x5d5f,0x5d60,0x5d61,0x5d62,
+0x5d64,0x5d6a,0x5d6d,0x5d70,0x5d79,0x5d7a,0x5d7e,0x5d7f,
+0x5d81,0x5d83,0x5d88,0x5d8a,0x5d92,0x5d93,0x5d94,0x5d95,
+0x5d99,0x5d9b,0x5d9f,0x5da0,0x5da7,0x5dab,0x5db0,0x5db4,
+0x5db8,0x5db9,0x5dc3,0x5dc7,0x5dcb,0x5dd0,0x5dce,0x5dd8,
+0x5dd9,0x5de0,0x5de4, -1, -1, -1, -1, -1,
+ -1,0x5de9,0x5df8,0x5df9,0x5e00,0x5e07,0x5e0d,0x5e12,
+0x5e14,0x5e15,0x5e18,0x5e1f,0x5e20,0x5e2e,0x5e28,0x5e32,
+0x5e35,0x5e3e,0x5e4b,0x5e50,0x5e49,0x5e51,0x5e56,0x5e58,
+0x5e5b,0x5e5c,0x5e5e,0x5e68,0x5e6a,0x5e6b,0x5e6c,0x5e6d,
+0x5e6e,0x5e70,0x5e80,0x5e8b,0x5e8e,0x5ea2,0x5ea4,0x5ea5,
+0x5ea8,0x5eaa,0x5eac,0x5eb1,0x5eb3,0x5ebd,0x5ebe,0x5ebf,
+0x5ec6,0x5ecc,0x5ecb,0x5ece,0x5ed1,0x5ed2,0x5ed4,0x5ed5,
+0x5edc,0x5ede,0x5ee5,0x5eeb,0x5f02,0x5f06,0x5f07,0x5f08,
+0x5f0e,0x5f19,0x5f1c,0x5f1d,0x5f21,0x5f22,0x5f23,0x5f24,
+0x5f28,0x5f2b,0x5f2c,0x5f2e,0x5f30,0x5f34,0x5f36,0x5f3b,
+0x5f3d,0x5f3f,0x5f40,0x5f44,0x5f45,0x5f47,0x5f4d,0x5f50,
+0x5f54,0x5f58,0x5f5b,0x5f60,0x5f63,0x5f64,0x5f67, -1,
+ -1, -1, -1, -1, -1,0x5f6f,0x5f72,0x5f74,
+0x5f75,0x5f78,0x5f7a,0x5f7d,0x5f7e,0x5f89,0x5f8d,0x5f8f,
+0x5f96,0x5f9c,0x5f9d,0x5fa2,0x5fa7,0x5fab,0x5fa4,0x5fac,
+0x5faf,0x5fb0,0x5fb1,0x5fb8,0x5fc4,0x5fc7,0x5fc8,0x5fc9,
+0x5fcb,0x5fd0,0x5fd1,0x5fd2,0x5fd3,0x5fd4,0x5fde,0x5fe1,
+0x5fe2,0x5fe8,0x5fe9,0x5fea,0x5fec,0x5fed,0x5fee,0x5fef,
+0x5ff2,0x5ff3,0x5ff6,0x5ffa,0x5ffc,0x6007,0x600a,0x600d,
+0x6013,0x6014,0x6017,0x6018,0x601a,0x601f,0x6024,0x602d,
+0x6033,0x6035,0x6040,0x6047,0x6048,0x6049,0x604c,0x6051,
+0x6054,0x6056,0x6057,0x605d,0x6061,0x6067,0x6071,0x607e,
+0x607f,0x6082,0x6086,0x6088,0x608a,0x608e,0x6091,0x6093,
+0x6095,0x6098,0x609d,0x609e,0x60a2,0x60a4,0x60a5,0x60a8,
+0x60b0,0x60b1,0x60b7, -1, -1, -1, -1, -1,
+ -1,0x60bb,0x60be,0x60c2,0x60c4,0x60c8,0x60c9,0x60ca,
+0x60cb,0x60ce,0x60cf,0x60d4,0x60d5,0x60d9,0x60db,0x60dd,
+0x60de,0x60e2,0x60e5,0x60f2,0x60f5,0x60f8,0x60fc,0x60fd,
+0x6102,0x6107,0x610a,0x610c,0x6110,0x6111,0x6112,0x6113,
+0x6114,0x6116,0x6117,0x6119,0x611c,0x611e,0x6122,0x612a,
+0x612b,0x6130,0x6131,0x6135,0x6136,0x6137,0x6139,0x6141,
+0x6145,0x6146,0x6149,0x615e,0x6160,0x616c,0x6172,0x6178,
+0x617b,0x617c,0x617f,0x6180,0x6181,0x6183,0x6184,0x618b,
+0x618d,0x6192,0x6193,0x6197,0x6198,0x619c,0x619d,0x619f,
+0x61a0,0x61a5,0x61a8,0x61aa,0x61ad,0x61b8,0x61b9,0x61bc,
+0x61c0,0x61c1,0x61c2,0x61ce,0x61cf,0x61d5,0x61dc,0x61dd,
+0x61de,0x61df,0x61e1,0x61e2,0x61e7,0x61e9,0x61e5, -1,
+ -1, -1, -1, -1, -1,0x61ec,0x61ed,0x61ef,
+0x6201,0x6203,0x6204,0x6207,0x6213,0x6215,0x621c,0x6220,
+0x6222,0x6223,0x6227,0x6229,0x622b,0x6239,0x623d,0x6242,
+0x6243,0x6244,0x6246,0x624c,0x6250,0x6251,0x6252,0x6254,
+0x6256,0x625a,0x625c,0x6264,0x626d,0x626f,0x6273,0x627a,
+0x627d,0x628d,0x628e,0x628f,0x6290,0x62a6,0x62a8,0x62b3,
+0x62b6,0x62b7,0x62ba,0x62be,0x62bf,0x62c4,0x62ce,0x62d5,
+0x62d6,0x62da,0x62ea,0x62f2,0x62f4,0x62fc,0x62fd,0x6303,
+0x6304,0x630a,0x630b,0x630d,0x6310,0x6313,0x6316,0x6318,
+0x6329,0x632a,0x632d,0x6335,0x6336,0x6339,0x633c,0x6341,
+0x6342,0x6343,0x6344,0x6346,0x634a,0x634b,0x634e,0x6352,
+0x6353,0x6354,0x6358,0x635b,0x6365,0x6366,0x636c,0x636d,
+0x6371,0x6374,0x6375, -1, -1, -1, -1, -1,
+ -1,0x6378,0x637c,0x637d,0x637f,0x6382,0x6384,0x6387,
+0x638a,0x6390,0x6394,0x6395,0x6399,0x639a,0x639e,0x63a4,
+0x63a6,0x63ad,0x63ae,0x63af,0x63bd,0x63c1,0x63c5,0x63c8,
+0x63ce,0x63d1,0x63d3,0x63d4,0x63d5,0x63dc,0x63e0,0x63e5,
+0x63ea,0x63ec,0x63f2,0x63f3,0x63f5,0x63f8,0x63f9,0x6409,
+0x640a,0x6410,0x6412,0x6414,0x6418,0x641e,0x6420,0x6422,
+0x6424,0x6425,0x6429,0x642a,0x642f,0x6430,0x6435,0x643d,
+0x643f,0x644b,0x644f,0x6451,0x6452,0x6453,0x6454,0x645a,
+0x645b,0x645c,0x645d,0x645f,0x6460,0x6461,0x6463,0x646d,
+0x6473,0x6474,0x647b,0x647d,0x6485,0x6487,0x648f,0x6490,
+0x6491,0x6498,0x6499,0x649b,0x649d,0x649f,0x64a1,0x64a3,
+0x64a6,0x64a8,0x64ac,0x64b3,0x64bd,0x64be,0x64bf, -1,
+ -1, -1, -1, -1, -1,0x64c4,0x64c9,0x64ca,
+0x64cb,0x64cc,0x64ce,0x64d0,0x64d1,0x64d5,0x64d7,0x64e4,
+0x64e5,0x64e9,0x64ea,0x64ed,0x64f0,0x64f5,0x64f7,0x64fb,
+0x64ff,0x6501,0x6504,0x6508,0x6509,0x650a,0x650f,0x6513,
+0x6514,0x6516,0x6519,0x651b,0x651e,0x651f,0x6522,0x6526,
+0x6529,0x652e,0x6531,0x653a,0x653c,0x653d,0x6543,0x6547,
+0x6549,0x6550,0x6552,0x6554,0x655f,0x6560,0x6567,0x656b,
+0x657a,0x657d,0x6581,0x6585,0x658a,0x6592,0x6595,0x6598,
+0x659d,0x65a0,0x65a3,0x65a6,0x65ae,0x65b2,0x65b3,0x65b4,
+0x65bf,0x65c2,0x65c8,0x65c9,0x65ce,0x65d0,0x65d4,0x65d6,
+0x65d8,0x65df,0x65f0,0x65f2,0x65f4,0x65f5,0x65f9,0x65fe,
+0x65ff,0x6600,0x6604,0x6608,0x6609,0x660d,0x6611,0x6612,
+0x6615,0x6616,0x661d, -1, -1, -1, -1, -1,
+ -1,0x661e,0x6621,0x6622,0x6623,0x6624,0x6626,0x6629,
+0x662a,0x662b,0x662c,0x662e,0x6630,0x6631,0x6633,0x6639,
+0x6637,0x6640,0x6645,0x6646,0x664a,0x664c,0x6651,0x664e,
+0x6657,0x6658,0x6659,0x665b,0x665c,0x6660,0x6661,0x66fb,
+0x666a,0x666b,0x666c,0x667e,0x6673,0x6675,0x667f,0x6677,
+0x6678,0x6679,0x667b,0x6680,0x667c,0x668b,0x668c,0x668d,
+0x6690,0x6692,0x6699,0x669a,0x669b,0x669c,0x669f,0x66a0,
+0x66a4,0x66ad,0x66b1,0x66b2,0x66b5,0x66bb,0x66bf,0x66c0,
+0x66c2,0x66c3,0x66c8,0x66cc,0x66ce,0x66cf,0x66d4,0x66db,
+0x66df,0x66e8,0x66eb,0x66ec,0x66ee,0x66fa,0x6705,0x6707,
+0x670e,0x6713,0x6719,0x671c,0x6720,0x6722,0x6733,0x673e,
+0x6745,0x6747,0x6748,0x674c,0x6754,0x6755,0x675d, -1,
+ -1, -1, -1, -1, -1,0x6766,0x676c,0x676e,
+0x6774,0x6776,0x677b,0x6781,0x6784,0x678e,0x678f,0x6791,
+0x6793,0x6796,0x6798,0x6799,0x679b,0x67b0,0x67b1,0x67b2,
+0x67b5,0x67bb,0x67bc,0x67bd,0x67f9,0x67c0,0x67c2,0x67c3,
+0x67c5,0x67c8,0x67c9,0x67d2,0x67d7,0x67d9,0x67dc,0x67e1,
+0x67e6,0x67f0,0x67f2,0x67f6,0x67f7,0x6852,0x6814,0x6819,
+0x681d,0x681f,0x6828,0x6827,0x682c,0x682d,0x682f,0x6830,
+0x6831,0x6833,0x683b,0x683f,0x6844,0x6845,0x684a,0x684c,
+0x6855,0x6857,0x6858,0x685b,0x686b,0x686e,0x686f,0x6870,
+0x6871,0x6872,0x6875,0x6879,0x687a,0x687b,0x687c,0x6882,
+0x6884,0x6886,0x6888,0x6896,0x6898,0x689a,0x689c,0x68a1,
+0x68a3,0x68a5,0x68a9,0x68aa,0x68ae,0x68b2,0x68bb,0x68c5,
+0x68c8,0x68cc,0x68cf, -1, -1, -1, -1, -1,
+ -1,0x68d0,0x68d1,0x68d3,0x68d6,0x68d9,0x68dc,0x68dd,
+0x68e5,0x68e8,0x68ea,0x68eb,0x68ec,0x68ed,0x68f0,0x68f1,
+0x68f5,0x68f6,0x68fb,0x68fc,0x68fd,0x6906,0x6909,0x690a,
+0x6910,0x6911,0x6913,0x6916,0x6917,0x6931,0x6933,0x6935,
+0x6938,0x693b,0x6942,0x6945,0x6949,0x694e,0x6957,0x695b,
+0x6963,0x6964,0x6965,0x6966,0x6968,0x6969,0x696c,0x6970,
+0x6971,0x6972,0x697a,0x697b,0x697f,0x6980,0x698d,0x6992,
+0x6996,0x6998,0x69a1,0x69a5,0x69a6,0x69a8,0x69ab,0x69ad,
+0x69af,0x69b7,0x69b8,0x69ba,0x69bc,0x69c5,0x69c8,0x69d1,
+0x69d6,0x69d7,0x69e2,0x69e5,0x69ee,0x69ef,0x69f1,0x69f3,
+0x69f5,0x69fe,0x6a00,0x6a01,0x6a03,0x6a0f,0x6a11,0x6a15,
+0x6a1a,0x6a1d,0x6a20,0x6a24,0x6a28,0x6a30,0x6a32, -1,
+ -1, -1, -1, -1, -1,0x6a34,0x6a37,0x6a3b,
+0x6a3e,0x6a3f,0x6a45,0x6a46,0x6a49,0x6a4a,0x6a4e,0x6a50,
+0x6a51,0x6a52,0x6a55,0x6a56,0x6a5b,0x6a64,0x6a67,0x6a6a,
+0x6a71,0x6a73,0x6a7e,0x6a81,0x6a83,0x6a86,0x6a87,0x6a89,
+0x6a8b,0x6a91,0x6a9b,0x6a9d,0x6a9e,0x6a9f,0x6aa5,0x6aab,
+0x6aaf,0x6ab0,0x6ab1,0x6ab4,0x6abd,0x6abe,0x6abf,0x6ac6,
+0x6ac9,0x6ac8,0x6acc,0x6ad0,0x6ad4,0x6ad5,0x6ad6,0x6adc,
+0x6add,0x6ae4,0x6ae7,0x6aec,0x6af0,0x6af1,0x6af2,0x6afc,
+0x6afd,0x6b02,0x6b03,0x6b06,0x6b07,0x6b09,0x6b0f,0x6b10,
+0x6b11,0x6b17,0x6b1b,0x6b1e,0x6b24,0x6b28,0x6b2b,0x6b2c,
+0x6b2f,0x6b35,0x6b36,0x6b3b,0x6b3f,0x6b46,0x6b4a,0x6b4d,
+0x6b52,0x6b56,0x6b58,0x6b5d,0x6b60,0x6b67,0x6b6b,0x6b6e,
+0x6b70,0x6b75,0x6b7d, -1, -1, -1, -1, -1,
+ -1,0x6b7e,0x6b82,0x6b85,0x6b97,0x6b9b,0x6b9f,0x6ba0,
+0x6ba2,0x6ba3,0x6ba8,0x6ba9,0x6bac,0x6bad,0x6bae,0x6bb0,
+0x6bb8,0x6bb9,0x6bbd,0x6bbe,0x6bc3,0x6bc4,0x6bc9,0x6bcc,
+0x6bd6,0x6bda,0x6be1,0x6be3,0x6be6,0x6be7,0x6bee,0x6bf1,
+0x6bf7,0x6bf9,0x6bff,0x6c02,0x6c04,0x6c05,0x6c09,0x6c0d,
+0x6c0e,0x6c10,0x6c12,0x6c19,0x6c1f,0x6c26,0x6c27,0x6c28,
+0x6c2c,0x6c2e,0x6c33,0x6c35,0x6c36,0x6c3a,0x6c3b,0x6c3f,
+0x6c4a,0x6c4b,0x6c4d,0x6c4f,0x6c52,0x6c54,0x6c59,0x6c5b,
+0x6c5c,0x6c6b,0x6c6d,0x6c6f,0x6c74,0x6c76,0x6c78,0x6c79,
+0x6c7b,0x6c85,0x6c86,0x6c87,0x6c89,0x6c94,0x6c95,0x6c97,
+0x6c98,0x6c9c,0x6c9f,0x6cb0,0x6cb2,0x6cb4,0x6cc2,0x6cc6,
+0x6ccd,0x6ccf,0x6cd0,0x6cd1,0x6cd2,0x6cd4,0x6cd6, -1,
+ -1, -1, -1, -1, -1,0x6cda,0x6cdc,0x6ce0,
+0x6ce7,0x6ce9,0x6ceb,0x6cec,0x6cee,0x6cf2,0x6cf4,0x6d04,
+0x6d07,0x6d0a,0x6d0e,0x6d0f,0x6d11,0x6d13,0x6d1a,0x6d26,
+0x6d27,0x6d28,0x6c67,0x6d2e,0x6d2f,0x6d31,0x6d39,0x6d3c,
+0x6d3f,0x6d57,0x6d5e,0x6d5f,0x6d61,0x6d65,0x6d67,0x6d6f,
+0x6d70,0x6d7c,0x6d82,0x6d87,0x6d91,0x6d92,0x6d94,0x6d96,
+0x6d97,0x6d98,0x6daa,0x6dac,0x6db4,0x6db7,0x6db9,0x6dbd,
+0x6dbf,0x6dc4,0x6dc8,0x6dca,0x6dce,0x6dcf,0x6dd6,0x6ddb,
+0x6ddd,0x6ddf,0x6de0,0x6de2,0x6de5,0x6de9,0x6def,0x6df0,
+0x6df4,0x6df6,0x6dfc,0x6e00,0x6e04,0x6e1e,0x6e22,0x6e27,
+0x6e32,0x6e36,0x6e39,0x6e3b,0x6e3c,0x6e44,0x6e45,0x6e48,
+0x6e49,0x6e4b,0x6e4f,0x6e51,0x6e52,0x6e53,0x6e54,0x6e57,
+0x6e5c,0x6e5d,0x6e5e, -1, -1, -1, -1, -1,
+ -1,0x6e62,0x6e63,0x6e68,0x6e73,0x6e7b,0x6e7d,0x6e8d,
+0x6e93,0x6e99,0x6ea0,0x6ea7,0x6ead,0x6eae,0x6eb1,0x6eb3,
+0x6ebb,0x6ebf,0x6ec0,0x6ec1,0x6ec3,0x6ec7,0x6ec8,0x6eca,
+0x6ecd,0x6ece,0x6ecf,0x6eeb,0x6eed,0x6eee,0x6ef9,0x6efb,
+0x6efd,0x6f04,0x6f08,0x6f0a,0x6f0c,0x6f0d,0x6f16,0x6f18,
+0x6f1a,0x6f1b,0x6f26,0x6f29,0x6f2a,0x6f2f,0x6f30,0x6f33,
+0x6f36,0x6f3b,0x6f3c,0x6f2d,0x6f4f,0x6f51,0x6f52,0x6f53,
+0x6f57,0x6f59,0x6f5a,0x6f5d,0x6f5e,0x6f61,0x6f62,0x6f68,
+0x6f6c,0x6f7d,0x6f7e,0x6f83,0x6f87,0x6f88,0x6f8b,0x6f8c,
+0x6f8d,0x6f90,0x6f92,0x6f93,0x6f94,0x6f96,0x6f9a,0x6f9f,
+0x6fa0,0x6fa5,0x6fa6,0x6fa7,0x6fa8,0x6fae,0x6faf,0x6fb0,
+0x6fb5,0x6fb6,0x6fbc,0x6fc5,0x6fc7,0x6fc8,0x6fca, -1,
+ -1, -1, -1, -1, -1,0x6fda,0x6fde,0x6fe8,
+0x6fe9,0x6ff0,0x6ff5,0x6ff9,0x6ffc,0x6ffd,0x7000,0x7005,
+0x7006,0x7007,0x700d,0x7017,0x7020,0x7023,0x702f,0x7034,
+0x7037,0x7039,0x703c,0x7043,0x7044,0x7048,0x7049,0x704a,
+0x704b,0x7054,0x7055,0x705d,0x705e,0x704e,0x7064,0x7065,
+0x706c,0x706e,0x7075,0x7076,0x707e,0x7081,0x7085,0x7086,
+0x7094,0x7095,0x7096,0x7097,0x7098,0x709b,0x70a4,0x70ab,
+0x70b0,0x70b1,0x70b4,0x70b7,0x70ca,0x70d1,0x70d3,0x70d4,
+0x70d5,0x70d6,0x70d8,0x70dc,0x70e4,0x70fa,0x7103,0x7104,
+0x7105,0x7106,0x7107,0x710b,0x710c,0x710f,0x711e,0x7120,
+0x712b,0x712d,0x712f,0x7130,0x7131,0x7138,0x7141,0x7145,
+0x7146,0x7147,0x714a,0x714b,0x7150,0x7152,0x7157,0x715a,
+0x715c,0x715e,0x7160, -1, -1, -1, -1, -1,
+ -1,0x7168,0x7179,0x7180,0x7185,0x7187,0x718c,0x7192,
+0x719a,0x719b,0x71a0,0x71a2,0x71af,0x71b0,0x71b2,0x71b3,
+0x71ba,0x71bf,0x71c0,0x71c1,0x71c4,0x71cb,0x71cc,0x71d3,
+0x71d6,0x71d9,0x71da,0x71dc,0x71f8,0x71fe,0x7200,0x7207,
+0x7208,0x7209,0x7213,0x7217,0x721a,0x721d,0x721f,0x7224,
+0x722b,0x722f,0x7234,0x7238,0x7239,0x7241,0x7242,0x7243,
+0x7245,0x724e,0x724f,0x7250,0x7253,0x7255,0x7256,0x725a,
+0x725c,0x725e,0x7260,0x7263,0x7268,0x726b,0x726e,0x726f,
+0x7271,0x7277,0x7278,0x727b,0x727c,0x727f,0x7284,0x7289,
+0x728d,0x728e,0x7293,0x729b,0x72a8,0x72ad,0x72ae,0x72b1,
+0x72b4,0x72be,0x72c1,0x72c7,0x72c9,0x72cc,0x72d5,0x72d6,
+0x72d8,0x72df,0x72e5,0x72f3,0x72f4,0x72fa,0x72fb, -1,
+ -1, -1, -1, -1, -1,0x72fe,0x7302,0x7304,
+0x7305,0x7307,0x730b,0x730d,0x7312,0x7313,0x7318,0x7319,
+0x731e,0x7322,0x7324,0x7327,0x7328,0x732c,0x7331,0x7332,
+0x7335,0x733a,0x733b,0x733d,0x7343,0x734d,0x7350,0x7352,
+0x7356,0x7358,0x735d,0x735e,0x735f,0x7360,0x7366,0x7367,
+0x7369,0x736b,0x736c,0x736e,0x736f,0x7371,0x7377,0x7379,
+0x737c,0x7380,0x7381,0x7383,0x7385,0x7386,0x738e,0x7390,
+0x7393,0x7395,0x7397,0x7398,0x739c,0x739e,0x739f,0x73a0,
+0x73a2,0x73a5,0x73a6,0x73aa,0x73ab,0x73ad,0x73b5,0x73b7,
+0x73b9,0x73bc,0x73bd,0x73bf,0x73c5,0x73c6,0x73c9,0x73cb,
+0x73cc,0x73cf,0x73d2,0x73d3,0x73d6,0x73d9,0x73dd,0x73e1,
+0x73e3,0x73e6,0x73e7,0x73e9,0x73f4,0x73f5,0x73f7,0x73f9,
+0x73fa,0x73fb,0x73fd, -1, -1, -1, -1, -1,
+ -1,0x73ff,0x7400,0x7401,0x7404,0x7407,0x740a,0x7411,
+0x741a,0x741b,0x7424,0x7426,0x7428,0x7429,0x742a,0x742b,
+0x742c,0x742d,0x742e,0x742f,0x7430,0x7431,0x7439,0x7440,
+0x7443,0x7444,0x7446,0x7447,0x744b,0x744d,0x7451,0x7452,
+0x7457,0x745d,0x7462,0x7466,0x7467,0x7468,0x746b,0x746d,
+0x746e,0x7471,0x7472,0x7480,0x7481,0x7485,0x7486,0x7487,
+0x7489,0x748f,0x7490,0x7491,0x7492,0x7498,0x7499,0x749a,
+0x749c,0x749f,0x74a0,0x74a1,0x74a3,0x74a6,0x74a8,0x74a9,
+0x74aa,0x74ab,0x74ae,0x74af,0x74b1,0x74b2,0x74b5,0x74b9,
+0x74bb,0x74bf,0x74c8,0x74c9,0x74cc,0x74d0,0x74d3,0x74d8,
+0x74da,0x74db,0x74de,0x74df,0x74e4,0x74e8,0x74ea,0x74eb,
+0x74ef,0x74f4,0x74fa,0x74fb,0x74fc,0x74ff,0x7506, -1,
+ -1, -1, -1, -1, -1,0x7512,0x7516,0x7517,
+0x7520,0x7521,0x7524,0x7527,0x7529,0x752a,0x752f,0x7536,
+0x7539,0x753d,0x753e,0x753f,0x7540,0x7543,0x7547,0x7548,
+0x754e,0x7550,0x7552,0x7557,0x755e,0x755f,0x7561,0x756f,
+0x7571,0x7579,0x757a,0x757b,0x757c,0x757d,0x757e,0x7581,
+0x7585,0x7590,0x7592,0x7593,0x7595,0x7599,0x759c,0x75a2,
+0x75a4,0x75b4,0x75ba,0x75bf,0x75c0,0x75c1,0x75c4,0x75c6,
+0x75cc,0x75ce,0x75cf,0x75d7,0x75dc,0x75df,0x75e0,0x75e1,
+0x75e4,0x75e7,0x75ec,0x75ee,0x75ef,0x75f1,0x75f9,0x7600,
+0x7602,0x7603,0x7604,0x7607,0x7608,0x760a,0x760c,0x760f,
+0x7612,0x7613,0x7615,0x7616,0x7619,0x761b,0x761c,0x761d,
+0x761e,0x7623,0x7625,0x7626,0x7629,0x762d,0x7632,0x7633,
+0x7635,0x7638,0x7639, -1, -1, -1, -1, -1,
+ -1,0x763a,0x763c,0x764a,0x7640,0x7641,0x7643,0x7644,
+0x7645,0x7649,0x764b,0x7655,0x7659,0x765f,0x7664,0x7665,
+0x766d,0x766e,0x766f,0x7671,0x7674,0x7681,0x7685,0x768c,
+0x768d,0x7695,0x769b,0x769c,0x769d,0x769f,0x76a0,0x76a2,
+0x76a3,0x76a4,0x76a5,0x76a6,0x76a7,0x76a8,0x76aa,0x76ad,
+0x76bd,0x76c1,0x76c5,0x76c9,0x76cb,0x76cc,0x76ce,0x76d4,
+0x76d9,0x76e0,0x76e6,0x76e8,0x76ec,0x76f0,0x76f1,0x76f6,
+0x76f9,0x76fc,0x7700,0x7706,0x770a,0x770e,0x7712,0x7714,
+0x7715,0x7717,0x7719,0x771a,0x771c,0x7722,0x7728,0x772d,
+0x772e,0x772f,0x7734,0x7735,0x7736,0x7739,0x773d,0x773e,
+0x7742,0x7745,0x7746,0x774a,0x774d,0x774e,0x774f,0x7752,
+0x7756,0x7757,0x775c,0x775e,0x775f,0x7760,0x7762, -1,
+ -1, -1, -1, -1, -1,0x7764,0x7767,0x776a,
+0x776c,0x7770,0x7772,0x7773,0x7774,0x777a,0x777d,0x7780,
+0x7784,0x778c,0x778d,0x7794,0x7795,0x7796,0x779a,0x779f,
+0x77a2,0x77a7,0x77aa,0x77ae,0x77af,0x77b1,0x77b5,0x77be,
+0x77c3,0x77c9,0x77d1,0x77d2,0x77d5,0x77d9,0x77de,0x77df,
+0x77e0,0x77e4,0x77e6,0x77ea,0x77ec,0x77f0,0x77f1,0x77f4,
+0x77f8,0x77fb,0x7805,0x7806,0x7809,0x780d,0x780e,0x7811,
+0x781d,0x7821,0x7822,0x7823,0x782d,0x782e,0x7830,0x7835,
+0x7837,0x7843,0x7844,0x7847,0x7848,0x784c,0x784e,0x7852,
+0x785c,0x785e,0x7860,0x7861,0x7863,0x7864,0x7868,0x786a,
+0x786e,0x787a,0x787e,0x788a,0x788f,0x7894,0x7898,0x78a1,
+0x789d,0x789e,0x789f,0x78a4,0x78a8,0x78ac,0x78ad,0x78b0,
+0x78b1,0x78b2,0x78b3, -1, -1, -1, -1, -1,
+ -1,0x78bb,0x78bd,0x78bf,0x78c7,0x78c8,0x78c9,0x78cc,
+0x78ce,0x78d2,0x78d3,0x78d5,0x78d6,0x78e4,0x78db,0x78df,
+0x78e0,0x78e1,0x78e6,0x78ea,0x78f2,0x78f3,0x7900,0x78f6,
+0x78f7,0x78fa,0x78fb,0x78ff,0x7906,0x790c,0x7910,0x791a,
+0x791c,0x791e,0x791f,0x7920,0x7925,0x7927,0x7929,0x792d,
+0x7931,0x7934,0x7935,0x793b,0x793d,0x793f,0x7944,0x7945,
+0x7946,0x794a,0x794b,0x794f,0x7951,0x7954,0x7958,0x795b,
+0x795c,0x7967,0x7969,0x796b,0x7972,0x7979,0x797b,0x797c,
+0x797e,0x798b,0x798c,0x7991,0x7993,0x7994,0x7995,0x7996,
+0x7998,0x799b,0x799c,0x79a1,0x79a8,0x79a9,0x79ab,0x79af,
+0x79b1,0x79b4,0x79b8,0x79bb,0x79c2,0x79c4,0x79c7,0x79c8,
+0x79ca,0x79cf,0x79d4,0x79d6,0x79da,0x79dd,0x79de, -1,
+ -1, -1, -1, -1, -1,0x79e0,0x79e2,0x79e5,
+0x79ea,0x79eb,0x79ed,0x79f1,0x79f8,0x79fc,0x7a02,0x7a03,
+0x7a07,0x7a09,0x7a0a,0x7a0c,0x7a11,0x7a15,0x7a1b,0x7a1e,
+0x7a21,0x7a27,0x7a2b,0x7a2d,0x7a2f,0x7a30,0x7a34,0x7a35,
+0x7a38,0x7a39,0x7a3a,0x7a44,0x7a45,0x7a47,0x7a48,0x7a4c,
+0x7a55,0x7a56,0x7a59,0x7a5c,0x7a5d,0x7a5f,0x7a60,0x7a65,
+0x7a67,0x7a6a,0x7a6d,0x7a75,0x7a78,0x7a7e,0x7a80,0x7a82,
+0x7a85,0x7a86,0x7a8a,0x7a8b,0x7a90,0x7a91,0x7a94,0x7a9e,
+0x7aa0,0x7aa3,0x7aac,0x7ab3,0x7ab5,0x7ab9,0x7abb,0x7abc,
+0x7ac6,0x7ac9,0x7acc,0x7ace,0x7ad1,0x7adb,0x7ae8,0x7ae9,
+0x7aeb,0x7aec,0x7af1,0x7af4,0x7afb,0x7afd,0x7afe,0x7b07,
+0x7b14,0x7b1f,0x7b23,0x7b27,0x7b29,0x7b2a,0x7b2b,0x7b2d,
+0x7b2e,0x7b2f,0x7b30, -1, -1, -1, -1, -1,
+ -1,0x7b31,0x7b34,0x7b3d,0x7b3f,0x7b40,0x7b41,0x7b47,
+0x7b4e,0x7b55,0x7b60,0x7b64,0x7b66,0x7b69,0x7b6a,0x7b6d,
+0x7b6f,0x7b72,0x7b73,0x7b77,0x7b84,0x7b89,0x7b8e,0x7b90,
+0x7b91,0x7b96,0x7b9b,0x7b9e,0x7ba0,0x7ba5,0x7bac,0x7baf,
+0x7bb0,0x7bb2,0x7bb5,0x7bb6,0x7bba,0x7bbb,0x7bbc,0x7bbd,
+0x7bc2,0x7bc5,0x7bc8,0x7bca,0x7bd4,0x7bd6,0x7bd7,0x7bd9,
+0x7bda,0x7bdb,0x7be8,0x7bea,0x7bf2,0x7bf4,0x7bf5,0x7bf8,
+0x7bf9,0x7bfa,0x7bfc,0x7bfe,0x7c01,0x7c02,0x7c03,0x7c04,
+0x7c06,0x7c09,0x7c0b,0x7c0c,0x7c0e,0x7c0f,0x7c19,0x7c1b,
+0x7c20,0x7c25,0x7c26,0x7c28,0x7c2c,0x7c31,0x7c33,0x7c34,
+0x7c36,0x7c39,0x7c3a,0x7c46,0x7c4a,0x7c55,0x7c51,0x7c52,
+0x7c53,0x7c59,0x7c5a,0x7c5b,0x7c5c,0x7c5d,0x7c5e, -1,
+ -1, -1, -1, -1, -1,0x7c61,0x7c63,0x7c67,
+0x7c69,0x7c6d,0x7c6e,0x7c70,0x7c72,0x7c79,0x7c7c,0x7c7d,
+0x7c86,0x7c87,0x7c8f,0x7c94,0x7c9e,0x7ca0,0x7ca6,0x7cb0,
+0x7cb6,0x7cb7,0x7cba,0x7cbb,0x7cbc,0x7cbf,0x7cc4,0x7cc7,
+0x7cc8,0x7cc9,0x7ccd,0x7ccf,0x7cd3,0x7cd4,0x7cd5,0x7cd7,
+0x7cd9,0x7cda,0x7cdd,0x7ce6,0x7ce9,0x7ceb,0x7cf5,0x7d03,
+0x7d07,0x7d08,0x7d09,0x7d0f,0x7d11,0x7d12,0x7d13,0x7d16,
+0x7d1d,0x7d1e,0x7d23,0x7d26,0x7d2a,0x7d2d,0x7d31,0x7d3c,
+0x7d3d,0x7d3e,0x7d40,0x7d41,0x7d47,0x7d48,0x7d4d,0x7d51,
+0x7d53,0x7d57,0x7d59,0x7d5a,0x7d5c,0x7d5d,0x7d65,0x7d67,
+0x7d6a,0x7d70,0x7d78,0x7d7a,0x7d7b,0x7d7f,0x7d81,0x7d82,
+0x7d83,0x7d85,0x7d86,0x7d88,0x7d8b,0x7d8c,0x7d8d,0x7d91,
+0x7d96,0x7d97,0x7d9d, -1, -1, -1, -1, -1,
+ -1,0x7d9e,0x7da6,0x7da7,0x7daa,0x7db3,0x7db6,0x7db7,
+0x7db9,0x7dc2,0x7dc3,0x7dc4,0x7dc5,0x7dc6,0x7dcc,0x7dcd,
+0x7dce,0x7dd7,0x7dd9,0x7e00,0x7de2,0x7de5,0x7de6,0x7dea,
+0x7deb,0x7ded,0x7df1,0x7df5,0x7df6,0x7df9,0x7dfa,0x7e08,
+0x7e10,0x7e11,0x7e15,0x7e17,0x7e1c,0x7e1d,0x7e20,0x7e27,
+0x7e28,0x7e2c,0x7e2d,0x7e2f,0x7e33,0x7e36,0x7e3f,0x7e44,
+0x7e45,0x7e47,0x7e4e,0x7e50,0x7e52,0x7e58,0x7e5f,0x7e61,
+0x7e62,0x7e65,0x7e6b,0x7e6e,0x7e6f,0x7e73,0x7e78,0x7e7e,
+0x7e81,0x7e86,0x7e87,0x7e8a,0x7e8d,0x7e91,0x7e95,0x7e98,
+0x7e9a,0x7e9d,0x7e9e,0x7f3c,0x7f3b,0x7f3d,0x7f3e,0x7f3f,
+0x7f43,0x7f44,0x7f47,0x7f4f,0x7f52,0x7f53,0x7f5b,0x7f5c,
+0x7f5d,0x7f61,0x7f63,0x7f64,0x7f65,0x7f66,0x7f6d, -1,
+ -1, -1, -1, -1, -1,0x7f71,0x7f7d,0x7f7e,
+0x7f7f,0x7f80,0x7f8b,0x7f8d,0x7f8f,0x7f90,0x7f91,0x7f96,
+0x7f97,0x7f9c,0x7fa1,0x7fa2,0x7fa6,0x7faa,0x7fad,0x7fb4,
+0x7fbc,0x7fbf,0x7fc0,0x7fc3,0x7fc8,0x7fce,0x7fcf,0x7fdb,
+0x7fdf,0x7fe3,0x7fe5,0x7fe8,0x7fec,0x7fee,0x7fef,0x7ff2,
+0x7ffa,0x7ffd,0x7ffe,0x7fff,0x8007,0x8008,0x800a,0x800d,
+0x800e,0x800f,0x8011,0x8013,0x8014,0x8016,0x801d,0x801e,
+0x801f,0x8020,0x8024,0x8026,0x802c,0x802e,0x8030,0x8034,
+0x8035,0x8037,0x8039,0x803a,0x803c,0x803e,0x8040,0x8044,
+0x8060,0x8064,0x8066,0x806d,0x8071,0x8075,0x8081,0x8088,
+0x808e,0x809c,0x809e,0x80a6,0x80a7,0x80ab,0x80b8,0x80b9,
+0x80c8,0x80cd,0x80cf,0x80d2,0x80d4,0x80d5,0x80d7,0x80d8,
+0x80e0,0x80ed,0x80ee, -1, -1, -1, -1, -1,
+ -1,0x80f0,0x80f2,0x80f3,0x80f6,0x80f9,0x80fa,0x80fe,
+0x8103,0x810b,0x8116,0x8117,0x8118,0x811c,0x811e,0x8120,
+0x8124,0x8127,0x812c,0x8130,0x8135,0x813a,0x813c,0x8145,
+0x8147,0x814a,0x814c,0x8152,0x8157,0x8160,0x8161,0x8167,
+0x8168,0x8169,0x816d,0x816f,0x8177,0x8181,0x8190,0x8184,
+0x8185,0x8186,0x818b,0x818e,0x8196,0x8198,0x819b,0x819e,
+0x81a2,0x81ae,0x81b2,0x81b4,0x81bb,0x81cb,0x81c3,0x81c5,
+0x81ca,0x81ce,0x81cf,0x81d5,0x81d7,0x81db,0x81dd,0x81de,
+0x81e1,0x81e4,0x81eb,0x81ec,0x81f0,0x81f1,0x81f2,0x81f5,
+0x81f6,0x81f8,0x81f9,0x81fd,0x81ff,0x8200,0x8203,0x820f,
+0x8213,0x8214,0x8219,0x821a,0x821d,0x8221,0x8222,0x8228,
+0x8232,0x8234,0x823a,0x8243,0x8244,0x8245,0x8246, -1,
+ -1, -1, -1, -1, -1,0x824b,0x824e,0x824f,
+0x8251,0x8256,0x825c,0x8260,0x8263,0x8267,0x826d,0x8274,
+0x827b,0x827d,0x827f,0x8280,0x8281,0x8283,0x8284,0x8287,
+0x8289,0x828a,0x828e,0x8291,0x8294,0x8296,0x8298,0x829a,
+0x829b,0x82a0,0x82a1,0x82a3,0x82a4,0x82a7,0x82a8,0x82a9,
+0x82aa,0x82ae,0x82b0,0x82b2,0x82b4,0x82b7,0x82ba,0x82bc,
+0x82be,0x82bf,0x82c6,0x82d0,0x82d5,0x82da,0x82e0,0x82e2,
+0x82e4,0x82e8,0x82ea,0x82ed,0x82ef,0x82f6,0x82f7,0x82fd,
+0x82fe,0x8300,0x8301,0x8307,0x8308,0x830a,0x830b,0x8354,
+0x831b,0x831d,0x831e,0x831f,0x8321,0x8322,0x832c,0x832d,
+0x832e,0x8330,0x8333,0x8337,0x833a,0x833c,0x833d,0x8342,
+0x8343,0x8344,0x8347,0x834d,0x834e,0x8351,0x8355,0x8356,
+0x8357,0x8370,0x8378, -1, -1, -1, -1, -1,
+ -1,0x837d,0x837f,0x8380,0x8382,0x8384,0x8386,0x838d,
+0x8392,0x8394,0x8395,0x8398,0x8399,0x839b,0x839c,0x839d,
+0x83a6,0x83a7,0x83a9,0x83ac,0x83be,0x83bf,0x83c0,0x83c7,
+0x83c9,0x83cf,0x83d0,0x83d1,0x83d4,0x83dd,0x8353,0x83e8,
+0x83ea,0x83f6,0x83f8,0x83f9,0x83fc,0x8401,0x8406,0x840a,
+0x840f,0x8411,0x8415,0x8419,0x83ad,0x842f,0x8439,0x8445,
+0x8447,0x8448,0x844a,0x844d,0x844f,0x8451,0x8452,0x8456,
+0x8458,0x8459,0x845a,0x845c,0x8460,0x8464,0x8465,0x8467,
+0x846a,0x8470,0x8473,0x8474,0x8476,0x8478,0x847c,0x847d,
+0x8481,0x8485,0x8492,0x8493,0x8495,0x849e,0x84a6,0x84a8,
+0x84a9,0x84aa,0x84af,0x84b1,0x84b4,0x84ba,0x84bd,0x84be,
+0x84c0,0x84c2,0x84c7,0x84c8,0x84cc,0x84cf,0x84d3, -1,
+ -1, -1, -1, -1, -1,0x84dc,0x84e7,0x84ea,
+0x84ef,0x84f0,0x84f1,0x84f2,0x84f7,0x8532,0x84fa,0x84fb,
+0x84fd,0x8502,0x8503,0x8507,0x850c,0x850e,0x8510,0x851c,
+0x851e,0x8522,0x8523,0x8524,0x8525,0x8527,0x852a,0x852b,
+0x852f,0x8533,0x8534,0x8536,0x853f,0x8546,0x854f,0x8550,
+0x8551,0x8552,0x8553,0x8556,0x8559,0x855c,0x855d,0x855e,
+0x855f,0x8560,0x8561,0x8562,0x8564,0x856b,0x856f,0x8579,
+0x857a,0x857b,0x857d,0x857f,0x8581,0x8585,0x8586,0x8589,
+0x858b,0x858c,0x858f,0x8593,0x8598,0x859d,0x859f,0x85a0,
+0x85a2,0x85a5,0x85a7,0x85b4,0x85b6,0x85b7,0x85b8,0x85bc,
+0x85bd,0x85be,0x85bf,0x85c2,0x85c7,0x85ca,0x85cb,0x85ce,
+0x85ad,0x85d8,0x85da,0x85df,0x85e0,0x85e6,0x85e8,0x85ed,
+0x85f3,0x85f6,0x85fc, -1, -1, -1, -1, -1,
+ -1,0x85ff,0x8600,0x8604,0x8605,0x860d,0x860e,0x8610,
+0x8611,0x8612,0x8618,0x8619,0x861b,0x861e,0x8621,0x8627,
+0x8629,0x8636,0x8638,0x863a,0x863c,0x863d,0x8640,0x8642,
+0x8646,0x8652,0x8653,0x8656,0x8657,0x8658,0x8659,0x865d,
+0x8660,0x8661,0x8662,0x8663,0x8664,0x8669,0x866c,0x866f,
+0x8675,0x8676,0x8677,0x867a,0x868d,0x8691,0x8696,0x8698,
+0x869a,0x869c,0x86a1,0x86a6,0x86a7,0x86a8,0x86ad,0x86b1,
+0x86b3,0x86b4,0x86b5,0x86b7,0x86b8,0x86b9,0x86bf,0x86c0,
+0x86c1,0x86c3,0x86c5,0x86d1,0x86d2,0x86d5,0x86d7,0x86da,
+0x86dc,0x86e0,0x86e3,0x86e5,0x86e7,0x8688,0x86fa,0x86fc,
+0x86fd,0x8704,0x8705,0x8707,0x870b,0x870e,0x870f,0x8710,
+0x8713,0x8714,0x8719,0x871e,0x871f,0x8721,0x8723, -1,
+ -1, -1, -1, -1, -1,0x8728,0x872e,0x872f,
+0x8731,0x8732,0x8739,0x873a,0x873c,0x873d,0x873e,0x8740,
+0x8743,0x8745,0x874d,0x8758,0x875d,0x8761,0x8764,0x8765,
+0x876f,0x8771,0x8772,0x877b,0x8783,0x8784,0x8785,0x8786,
+0x8787,0x8788,0x8789,0x878b,0x878c,0x8790,0x8793,0x8795,
+0x8797,0x8798,0x8799,0x879e,0x87a0,0x87a3,0x87a7,0x87ac,
+0x87ad,0x87ae,0x87b1,0x87b5,0x87be,0x87bf,0x87c1,0x87c8,
+0x87c9,0x87ca,0x87ce,0x87d5,0x87d6,0x87d9,0x87da,0x87dc,
+0x87df,0x87e2,0x87e3,0x87e4,0x87ea,0x87eb,0x87ed,0x87f1,
+0x87f3,0x87f8,0x87fa,0x87ff,0x8801,0x8803,0x8806,0x8809,
+0x880a,0x880b,0x8810,0x8819,0x8812,0x8813,0x8814,0x8818,
+0x881a,0x881b,0x881c,0x881e,0x881f,0x8828,0x882d,0x882e,
+0x8830,0x8832,0x8835, -1, -1, -1, -1, -1,
+ -1,0x883a,0x883c,0x8841,0x8843,0x8845,0x8848,0x8849,
+0x884a,0x884b,0x884e,0x8851,0x8855,0x8856,0x8858,0x885a,
+0x885c,0x885f,0x8860,0x8864,0x8869,0x8871,0x8879,0x887b,
+0x8880,0x8898,0x889a,0x889b,0x889c,0x889f,0x88a0,0x88a8,
+0x88aa,0x88ba,0x88bd,0x88be,0x88c0,0x88ca,0x88cb,0x88cc,
+0x88cd,0x88ce,0x88d1,0x88d2,0x88d3,0x88db,0x88de,0x88e7,
+0x88ef,0x88f0,0x88f1,0x88f5,0x88f7,0x8901,0x8906,0x890d,
+0x890e,0x890f,0x8915,0x8916,0x8918,0x8919,0x891a,0x891c,
+0x8920,0x8926,0x8927,0x8928,0x8930,0x8931,0x8932,0x8935,
+0x8939,0x893a,0x893e,0x8940,0x8942,0x8945,0x8946,0x8949,
+0x894f,0x8952,0x8957,0x895a,0x895b,0x895c,0x8961,0x8962,
+0x8963,0x896b,0x896e,0x8970,0x8973,0x8975,0x897a, -1,
+ -1, -1, -1, -1, -1,0x897b,0x897c,0x897d,
+0x8989,0x898d,0x8990,0x8994,0x8995,0x899b,0x899c,0x899f,
+0x89a0,0x89a5,0x89b0,0x89b4,0x89b5,0x89b6,0x89b7,0x89bc,
+0x89d4,0x89d5,0x89d6,0x89d7,0x89d8,0x89e5,0x89e9,0x89eb,
+0x89ed,0x89f1,0x89f3,0x89f6,0x89f9,0x89fd,0x89ff,0x8a04,
+0x8a05,0x8a07,0x8a0f,0x8a11,0x8a12,0x8a14,0x8a15,0x8a1e,
+0x8a20,0x8a22,0x8a24,0x8a26,0x8a2b,0x8a2c,0x8a2f,0x8a35,
+0x8a37,0x8a3d,0x8a3e,0x8a40,0x8a43,0x8a45,0x8a47,0x8a49,
+0x8a4d,0x8a4e,0x8a53,0x8a56,0x8a57,0x8a58,0x8a5c,0x8a5d,
+0x8a61,0x8a65,0x8a67,0x8a75,0x8a76,0x8a77,0x8a79,0x8a7a,
+0x8a7b,0x8a7e,0x8a7f,0x8a80,0x8a83,0x8a86,0x8a8b,0x8a8f,
+0x8a90,0x8a92,0x8a96,0x8a97,0x8a99,0x8a9f,0x8aa7,0x8aa9,
+0x8aae,0x8aaf,0x8ab3, -1, -1, -1, -1, -1,
+ -1,0x8ab6,0x8ab7,0x8abb,0x8abe,0x8ac3,0x8ac6,0x8ac8,
+0x8ac9,0x8aca,0x8ad1,0x8ad3,0x8ad4,0x8ad5,0x8ad7,0x8add,
+0x8adf,0x8aec,0x8af0,0x8af4,0x8af5,0x8af6,0x8afc,0x8aff,
+0x8b05,0x8b06,0x8b0b,0x8b11,0x8b1c,0x8b1e,0x8b1f,0x8b0a,
+0x8b2d,0x8b30,0x8b37,0x8b3c,0x8b42,0x8b43,0x8b44,0x8b45,
+0x8b46,0x8b48,0x8b52,0x8b53,0x8b54,0x8b59,0x8b4d,0x8b5e,
+0x8b63,0x8b6d,0x8b76,0x8b78,0x8b79,0x8b7c,0x8b7e,0x8b81,
+0x8b84,0x8b85,0x8b8b,0x8b8d,0x8b8f,0x8b94,0x8b95,0x8b9c,
+0x8b9e,0x8b9f,0x8c38,0x8c39,0x8c3d,0x8c3e,0x8c45,0x8c47,
+0x8c49,0x8c4b,0x8c4f,0x8c51,0x8c53,0x8c54,0x8c57,0x8c58,
+0x8c5b,0x8c5d,0x8c59,0x8c63,0x8c64,0x8c66,0x8c68,0x8c69,
+0x8c6d,0x8c73,0x8c75,0x8c76,0x8c7b,0x8c7e,0x8c86, -1,
+ -1, -1, -1, -1, -1,0x8c87,0x8c8b,0x8c90,
+0x8c92,0x8c93,0x8c99,0x8c9b,0x8c9c,0x8ca4,0x8cb9,0x8cba,
+0x8cc5,0x8cc6,0x8cc9,0x8ccb,0x8ccf,0x8cd6,0x8cd5,0x8cd9,
+0x8cdd,0x8ce1,0x8ce8,0x8cec,0x8cef,0x8cf0,0x8cf2,0x8cf5,
+0x8cf7,0x8cf8,0x8cfe,0x8cff,0x8d01,0x8d03,0x8d09,0x8d12,
+0x8d17,0x8d1b,0x8d65,0x8d69,0x8d6c,0x8d6e,0x8d7f,0x8d82,
+0x8d84,0x8d88,0x8d8d,0x8d90,0x8d91,0x8d95,0x8d9e,0x8d9f,
+0x8da0,0x8da6,0x8dab,0x8dac,0x8daf,0x8db2,0x8db5,0x8db7,
+0x8db9,0x8dbb,0x8dc0,0x8dc5,0x8dc6,0x8dc7,0x8dc8,0x8dca,
+0x8dce,0x8dd1,0x8dd4,0x8dd5,0x8dd7,0x8dd9,0x8de4,0x8de5,
+0x8de7,0x8dec,0x8df0,0x8dbc,0x8df1,0x8df2,0x8df4,0x8dfd,
+0x8e01,0x8e04,0x8e05,0x8e06,0x8e0b,0x8e11,0x8e14,0x8e16,
+0x8e20,0x8e21,0x8e22, -1, -1, -1, -1, -1,
+ -1,0x8e23,0x8e26,0x8e27,0x8e31,0x8e33,0x8e36,0x8e37,
+0x8e38,0x8e39,0x8e3d,0x8e40,0x8e41,0x8e4b,0x8e4d,0x8e4e,
+0x8e4f,0x8e54,0x8e5b,0x8e5c,0x8e5d,0x8e5e,0x8e61,0x8e62,
+0x8e69,0x8e6c,0x8e6d,0x8e6f,0x8e70,0x8e71,0x8e79,0x8e7a,
+0x8e7b,0x8e82,0x8e83,0x8e89,0x8e90,0x8e92,0x8e95,0x8e9a,
+0x8e9b,0x8e9d,0x8e9e,0x8ea2,0x8ea7,0x8ea9,0x8ead,0x8eae,
+0x8eb3,0x8eb5,0x8eba,0x8ebb,0x8ec0,0x8ec1,0x8ec3,0x8ec4,
+0x8ec7,0x8ecf,0x8ed1,0x8ed4,0x8edc,0x8ee8,0x8eee,0x8ef0,
+0x8ef1,0x8ef7,0x8ef9,0x8efa,0x8eed,0x8f00,0x8f02,0x8f07,
+0x8f08,0x8f0f,0x8f10,0x8f16,0x8f17,0x8f18,0x8f1e,0x8f20,
+0x8f21,0x8f23,0x8f25,0x8f27,0x8f28,0x8f2c,0x8f2d,0x8f2e,
+0x8f34,0x8f35,0x8f36,0x8f37,0x8f3a,0x8f40,0x8f41, -1,
+ -1, -1, -1, -1, -1,0x8f43,0x8f47,0x8f4f,
+0x8f51,0x8f52,0x8f53,0x8f54,0x8f55,0x8f58,0x8f5d,0x8f5e,
+0x8f65,0x8f9d,0x8fa0,0x8fa1,0x8fa4,0x8fa5,0x8fa6,0x8fb5,
+0x8fb6,0x8fb8,0x8fbe,0x8fc0,0x8fc1,0x8fc6,0x8fca,0x8fcb,
+0x8fcd,0x8fd0,0x8fd2,0x8fd3,0x8fd5,0x8fe0,0x8fe3,0x8fe4,
+0x8fe8,0x8fee,0x8ff1,0x8ff5,0x8ff6,0x8ffb,0x8ffe,0x9002,
+0x9004,0x9008,0x900c,0x9018,0x901b,0x9028,0x9029,0x902f,
+0x902a,0x902c,0x902d,0x9033,0x9034,0x9037,0x903f,0x9043,
+0x9044,0x904c,0x905b,0x905d,0x9062,0x9066,0x9067,0x906c,
+0x9070,0x9074,0x9079,0x9085,0x9088,0x908b,0x908c,0x908e,
+0x9090,0x9095,0x9097,0x9098,0x9099,0x909b,0x90a0,0x90a1,
+0x90a2,0x90a5,0x90b0,0x90b2,0x90b3,0x90b4,0x90b6,0x90bd,
+0x90cc,0x90be,0x90c3, -1, -1, -1, -1, -1,
+ -1,0x90c4,0x90c5,0x90c7,0x90c8,0x90d5,0x90d7,0x90d8,
+0x90d9,0x90dc,0x90dd,0x90df,0x90e5,0x90d2,0x90f6,0x90eb,
+0x90ef,0x90f0,0x90f4,0x90fe,0x90ff,0x9100,0x9104,0x9105,
+0x9106,0x9108,0x910d,0x9110,0x9114,0x9116,0x9117,0x9118,
+0x911a,0x911c,0x911e,0x9120,0x9125,0x9122,0x9123,0x9127,
+0x9129,0x912e,0x912f,0x9131,0x9134,0x9136,0x9137,0x9139,
+0x913a,0x913c,0x913d,0x9143,0x9147,0x9148,0x914f,0x9153,
+0x9157,0x9159,0x915a,0x915b,0x9161,0x9164,0x9167,0x916d,
+0x9174,0x9179,0x917a,0x917b,0x9181,0x9183,0x9185,0x9186,
+0x918a,0x918e,0x9191,0x9193,0x9194,0x9195,0x9198,0x919e,
+0x91a1,0x91a6,0x91a8,0x91ac,0x91ad,0x91ae,0x91b0,0x91b1,
+0x91b2,0x91b3,0x91b6,0x91bb,0x91bc,0x91bd,0x91bf, -1,
+ -1, -1, -1, -1, -1,0x91c2,0x91c3,0x91c5,
+0x91d3,0x91d4,0x91d7,0x91d9,0x91da,0x91de,0x91e4,0x91e5,
+0x91e9,0x91ea,0x91ec,0x91ed,0x91ee,0x91ef,0x91f0,0x91f1,
+0x91f7,0x91f9,0x91fb,0x91fd,0x9200,0x9201,0x9204,0x9205,
+0x9206,0x9207,0x9209,0x920a,0x920c,0x9210,0x9212,0x9213,
+0x9216,0x9218,0x921c,0x921d,0x9223,0x9224,0x9225,0x9226,
+0x9228,0x922e,0x922f,0x9230,0x9233,0x9235,0x9236,0x9238,
+0x9239,0x923a,0x923c,0x923e,0x9240,0x9242,0x9243,0x9246,
+0x9247,0x924a,0x924d,0x924e,0x924f,0x9251,0x9258,0x9259,
+0x925c,0x925d,0x9260,0x9261,0x9265,0x9267,0x9268,0x9269,
+0x926e,0x926f,0x9270,0x9275,0x9276,0x9277,0x9278,0x9279,
+0x927b,0x927c,0x927d,0x927f,0x9288,0x9289,0x928a,0x928d,
+0x928e,0x9292,0x9297, -1, -1, -1, -1, -1,
+ -1,0x9299,0x929f,0x92a0,0x92a4,0x92a5,0x92a7,0x92a8,
+0x92ab,0x92af,0x92b2,0x92b6,0x92b8,0x92ba,0x92bb,0x92bc,
+0x92bd,0x92bf,0x92c0,0x92c1,0x92c2,0x92c3,0x92c5,0x92c6,
+0x92c7,0x92c8,0x92cb,0x92cc,0x92cd,0x92ce,0x92d0,0x92d3,
+0x92d5,0x92d7,0x92d8,0x92d9,0x92dc,0x92dd,0x92df,0x92e0,
+0x92e1,0x92e3,0x92e5,0x92e7,0x92e8,0x92ec,0x92ee,0x92f0,
+0x92f9,0x92fb,0x92ff,0x9300,0x9302,0x9308,0x930d,0x9311,
+0x9314,0x9315,0x931c,0x931d,0x931e,0x931f,0x9321,0x9324,
+0x9325,0x9327,0x9329,0x932a,0x9333,0x9334,0x9336,0x9337,
+0x9347,0x9348,0x9349,0x9350,0x9351,0x9352,0x9355,0x9357,
+0x9358,0x935a,0x935e,0x9364,0x9365,0x9367,0x9369,0x936a,
+0x936d,0x936f,0x9370,0x9371,0x9373,0x9374,0x9376, -1,
+ -1, -1, -1, -1, -1,0x937a,0x937d,0x937f,
+0x9380,0x9381,0x9382,0x9388,0x938a,0x938b,0x938d,0x938f,
+0x9392,0x9395,0x9398,0x939b,0x939e,0x93a1,0x93a3,0x93a4,
+0x93a6,0x93a8,0x93ab,0x93b4,0x93b5,0x93b6,0x93ba,0x93a9,
+0x93c1,0x93c4,0x93c5,0x93c6,0x93c7,0x93c9,0x93ca,0x93cb,
+0x93cc,0x93cd,0x93d3,0x93d9,0x93dc,0x93de,0x93df,0x93e2,
+0x93e6,0x93e7,0x93f9,0x93f7,0x93f8,0x93fa,0x93fb,0x93fd,
+0x9401,0x9402,0x9404,0x9408,0x9409,0x940d,0x940e,0x940f,
+0x9415,0x9416,0x9417,0x941f,0x942e,0x942f,0x9431,0x9432,
+0x9433,0x9434,0x943b,0x943f,0x943d,0x9443,0x9445,0x9448,
+0x944a,0x944c,0x9455,0x9459,0x945c,0x945f,0x9461,0x9463,
+0x9468,0x946b,0x946d,0x946e,0x946f,0x9471,0x9472,0x9484,
+0x9483,0x9578,0x9579, -1, -1, -1, -1, -1,
+ -1,0x957e,0x9584,0x9588,0x958c,0x958d,0x958e,0x959d,
+0x959e,0x959f,0x95a1,0x95a6,0x95a9,0x95ab,0x95ac,0x95b4,
+0x95b6,0x95ba,0x95bd,0x95bf,0x95c6,0x95c8,0x95c9,0x95cb,
+0x95d0,0x95d1,0x95d2,0x95d3,0x95d9,0x95da,0x95dd,0x95de,
+0x95df,0x95e0,0x95e4,0x95e6,0x961d,0x961e,0x9622,0x9624,
+0x9625,0x9626,0x962c,0x9631,0x9633,0x9637,0x9638,0x9639,
+0x963a,0x963c,0x963d,0x9641,0x9652,0x9654,0x9656,0x9657,
+0x9658,0x9661,0x966e,0x9674,0x967b,0x967c,0x967e,0x967f,
+0x9681,0x9682,0x9683,0x9684,0x9689,0x9691,0x9696,0x969a,
+0x969d,0x969f,0x96a4,0x96a5,0x96a6,0x96a9,0x96ae,0x96af,
+0x96b3,0x96ba,0x96ca,0x96d2,0x5db2,0x96d8,0x96da,0x96dd,
+0x96de,0x96df,0x96e9,0x96ef,0x96f1,0x96fa,0x9702, -1,
+ -1, -1, -1, -1, -1,0x9703,0x9705,0x9709,
+0x971a,0x971b,0x971d,0x9721,0x9722,0x9723,0x9728,0x9731,
+0x9733,0x9741,0x9743,0x974a,0x974e,0x974f,0x9755,0x9757,
+0x9758,0x975a,0x975b,0x9763,0x9767,0x976a,0x976e,0x9773,
+0x9776,0x9777,0x9778,0x977b,0x977d,0x977f,0x9780,0x9789,
+0x9795,0x9796,0x9797,0x9799,0x979a,0x979e,0x979f,0x97a2,
+0x97ac,0x97ae,0x97b1,0x97b2,0x97b5,0x97b6,0x97b8,0x97b9,
+0x97ba,0x97bc,0x97be,0x97bf,0x97c1,0x97c4,0x97c5,0x97c7,
+0x97c9,0x97ca,0x97cc,0x97cd,0x97ce,0x97d0,0x97d1,0x97d4,
+0x97d7,0x97d8,0x97d9,0x97dd,0x97de,0x97e0,0x97db,0x97e1,
+0x97e4,0x97ef,0x97f1,0x97f4,0x97f7,0x97f8,0x97fa,0x9807,
+0x980a,0x9819,0x980d,0x980e,0x9814,0x9816,0x981c,0x981e,
+0x9820,0x9823,0x9826, -1, -1, -1, -1, -1,
+ -1,0x982b,0x982e,0x982f,0x9830,0x9832,0x9833,0x9835,
+0x9825,0x983e,0x9844,0x9847,0x984a,0x9851,0x9852,0x9853,
+0x9856,0x9857,0x9859,0x985a,0x9862,0x9863,0x9865,0x9866,
+0x986a,0x986c,0x98ab,0x98ad,0x98ae,0x98b0,0x98b4,0x98b7,
+0x98b8,0x98ba,0x98bb,0x98bf,0x98c2,0x98c5,0x98c8,0x98cc,
+0x98e1,0x98e3,0x98e5,0x98e6,0x98e7,0x98ea,0x98f3,0x98f6,
+0x9902,0x9907,0x9908,0x9911,0x9915,0x9916,0x9917,0x991a,
+0x991b,0x991c,0x991f,0x9922,0x9926,0x9927,0x992b,0x9931,
+0x9932,0x9933,0x9934,0x9935,0x9939,0x993a,0x993b,0x993c,
+0x9940,0x9941,0x9946,0x9947,0x9948,0x994d,0x994e,0x9954,
+0x9958,0x9959,0x995b,0x995c,0x995e,0x995f,0x9960,0x999b,
+0x999d,0x999f,0x99a6,0x99b0,0x99b1,0x99b2,0x99b5, -1,
+ -1, -1, -1, -1, -1,0x99b9,0x99ba,0x99bd,
+0x99bf,0x99c3,0x99c9,0x99d3,0x99d4,0x99d9,0x99da,0x99dc,
+0x99de,0x99e7,0x99ea,0x99eb,0x99ec,0x99f0,0x99f4,0x99f5,
+0x99f9,0x99fd,0x99fe,0x9a02,0x9a03,0x9a04,0x9a0b,0x9a0c,
+0x9a10,0x9a11,0x9a16,0x9a1e,0x9a20,0x9a22,0x9a23,0x9a24,
+0x9a27,0x9a2d,0x9a2e,0x9a33,0x9a35,0x9a36,0x9a38,0x9a47,
+0x9a41,0x9a44,0x9a4a,0x9a4b,0x9a4c,0x9a4e,0x9a51,0x9a54,
+0x9a56,0x9a5d,0x9aaa,0x9aac,0x9aae,0x9aaf,0x9ab2,0x9ab4,
+0x9ab5,0x9ab6,0x9ab9,0x9abb,0x9abe,0x9abf,0x9ac1,0x9ac3,
+0x9ac6,0x9ac8,0x9ace,0x9ad0,0x9ad2,0x9ad5,0x9ad6,0x9ad7,
+0x9adb,0x9adc,0x9ae0,0x9ae4,0x9ae5,0x9ae7,0x9ae9,0x9aec,
+0x9af2,0x9af3,0x9af5,0x9af9,0x9afa,0x9afd,0x9aff,0x9b00,
+0x9b01,0x9b02,0x9b03, -1, -1, -1, -1, -1,
+ -1,0x9b04,0x9b05,0x9b08,0x9b09,0x9b0b,0x9b0c,0x9b0d,
+0x9b0e,0x9b10,0x9b12,0x9b16,0x9b19,0x9b1b,0x9b1c,0x9b20,
+0x9b26,0x9b2b,0x9b2d,0x9b33,0x9b34,0x9b35,0x9b37,0x9b39,
+0x9b3a,0x9b3d,0x9b48,0x9b4b,0x9b4c,0x9b55,0x9b56,0x9b57,
+0x9b5b,0x9b5e,0x9b61,0x9b63,0x9b65,0x9b66,0x9b68,0x9b6a,
+0x9b6b,0x9b6c,0x9b6d,0x9b6e,0x9b73,0x9b75,0x9b77,0x9b78,
+0x9b79,0x9b7f,0x9b80,0x9b84,0x9b85,0x9b86,0x9b87,0x9b89,
+0x9b8a,0x9b8b,0x9b8d,0x9b8f,0x9b90,0x9b94,0x9b9a,0x9b9d,
+0x9b9e,0x9ba6,0x9ba7,0x9ba9,0x9bac,0x9bb0,0x9bb1,0x9bb2,
+0x9bb7,0x9bb8,0x9bbb,0x9bbc,0x9bbe,0x9bbf,0x9bc1,0x9bc7,
+0x9bc8,0x9bce,0x9bd0,0x9bd7,0x9bd8,0x9bdd,0x9bdf,0x9be5,
+0x9be7,0x9bea,0x9beb,0x9bef,0x9bf3,0x9bf7,0x9bf8, -1,
+ -1, -1, -1, -1, -1,0x9bf9,0x9bfa,0x9bfd,
+0x9bff,0x9c00,0x9c02,0x9c0b,0x9c0f,0x9c11,0x9c16,0x9c18,
+0x9c19,0x9c1a,0x9c1c,0x9c1e,0x9c22,0x9c23,0x9c26,0x9c27,
+0x9c28,0x9c29,0x9c2a,0x9c31,0x9c35,0x9c36,0x9c37,0x9c3d,
+0x9c41,0x9c43,0x9c44,0x9c45,0x9c49,0x9c4a,0x9c4e,0x9c4f,
+0x9c50,0x9c53,0x9c54,0x9c56,0x9c58,0x9c5b,0x9c5d,0x9c5e,
+0x9c5f,0x9c63,0x9c69,0x9c6a,0x9c5c,0x9c6b,0x9c68,0x9c6e,
+0x9c70,0x9c72,0x9c75,0x9c77,0x9c7b,0x9ce6,0x9cf2,0x9cf7,
+0x9cf9,0x9d0b,0x9d02,0x9d11,0x9d17,0x9d18,0x9d1c,0x9d1d,
+0x9d1e,0x9d2f,0x9d30,0x9d32,0x9d33,0x9d34,0x9d3a,0x9d3c,
+0x9d45,0x9d3d,0x9d42,0x9d43,0x9d47,0x9d4a,0x9d53,0x9d54,
+0x9d5f,0x9d63,0x9d62,0x9d65,0x9d69,0x9d6a,0x9d6b,0x9d70,
+0x9d76,0x9d77,0x9d7b, -1, -1, -1, -1, -1,
+ -1,0x9d7c,0x9d7e,0x9d83,0x9d84,0x9d86,0x9d8a,0x9d8d,
+0x9d8e,0x9d92,0x9d93,0x9d95,0x9d96,0x9d97,0x9d98,0x9da1,
+0x9daa,0x9dac,0x9dae,0x9db1,0x9db5,0x9db9,0x9dbc,0x9dbf,
+0x9dc3,0x9dc7,0x9dc9,0x9dca,0x9dd4,0x9dd5,0x9dd6,0x9dd7,
+0x9dda,0x9dde,0x9ddf,0x9de0,0x9de5,0x9de7,0x9de9,0x9deb,
+0x9dee,0x9df0,0x9df3,0x9df4,0x9dfe,0x9e0a,0x9e02,0x9e07,
+0x9e0e,0x9e10,0x9e11,0x9e12,0x9e15,0x9e16,0x9e19,0x9e1c,
+0x9e1d,0x9e7a,0x9e7b,0x9e7c,0x9e80,0x9e82,0x9e83,0x9e84,
+0x9e85,0x9e87,0x9e8e,0x9e8f,0x9e96,0x9e98,0x9e9b,0x9e9e,
+0x9ea4,0x9ea8,0x9eac,0x9eae,0x9eaf,0x9eb0,0x9eb3,0x9eb4,
+0x9eb5,0x9ec6,0x9ec8,0x9ecb,0x9ed5,0x9edf,0x9ee4,0x9ee7,
+0x9eec,0x9eed,0x9eee,0x9ef0,0x9ef1,0x9ef2,0x9ef5, -1,
+ -1, -1, -1, -1, -1,0x9ef8,0x9eff,0x9f02,
+0x9f03,0x9f09,0x9f0f,0x9f10,0x9f11,0x9f12,0x9f14,0x9f16,
+0x9f17,0x9f19,0x9f1a,0x9f1b,0x9f1f,0x9f22,0x9f26,0x9f2a,
+0x9f2b,0x9f2f,0x9f31,0x9f32,0x9f34,0x9f37,0x9f39,0x9f3a,
+0x9f3c,0x9f3d,0x9f3f,0x9f41,0x9f43,0x9f44,0x9f45,0x9f46,
+0x9f47,0x9f53,0x9f55,0x9f56,0x9f57,0x9f58,0x9f5a,0x9f5d,
+0x9f5e,0x9f68,0x9f69,0x9f6d,0x9f6e,0x9f6f,0x9f70,0x9f71,
+0x9f73,0x9f75,0x9f7a,0x9f7d,0x9f8f,0x9f90,0x9f91,0x9f92,
+0x9f94,0x9f96,0x9f97,0x9f9e,0x9fa1,0x9fa2,0x9fa3,0x9fa5,
+};
diff --git a/src/cmd/tcs/kuten212.h b/src/cmd/tcs/kuten212.h
new file mode 100644
index 00000000..05e830e2
--- /dev/null
+++ b/src/cmd/tcs/kuten212.h
@@ -0,0 +1,3 @@
+#define KUTEN212MAX 7768
+
+extern long tabkuten212[KUTEN212MAX]; /* runes indexed by kuten */
diff --git a/src/cmd/tcs/mkfile b/src/cmd/tcs/mkfile
new file mode 100644
index 00000000..c410a0c0
--- /dev/null
+++ b/src/cmd/tcs/mkfile
@@ -0,0 +1,33 @@
+<$PLAN9/src/mkhdr
+
+TARG=tcs
+OFILES=tcs.$O\
+ conv_jis.$O\
+ conv_big5.$O\
+ conv_gb.$O\
+ conv_ksc.$O\
+ utf.$O\
+ kuten208.$O\
+ gb.$O\
+ ksc.$O\
+ big5.$O
+
+SHORTLIB=bio 9
+<$PLAN9/src/mkone
+CFLAGS= -DPLAN9 $CFLAGS
+
+tcs.$O utf.$O: hdr.h
+tcs.$O: jis.h
+tcs.$O kuten208.$O: kuten208.h
+tcs.$O big5.$O: big5.h
+tcs.$O gb.$O: gb.h
+tcs.$O: cyrillic.h
+tcs.$O: conv.h
+conv%.$O: conv.h
+conv_ksc.$O: ksc.h
+
+clean:V:
+ rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG
+
+nuke:V:
+ rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG
diff --git a/src/cmd/tcs/plan9.h b/src/cmd/tcs/plan9.h
new file mode 100644
index 00000000..4d002cb0
--- /dev/null
+++ b/src/cmd/tcs/plan9.h
@@ -0,0 +1,23 @@
+typedef unsigned short Rune; /* 16 bits */
+typedef unsigned char uchar;
+#define Runeerror 0x80 /* decoding error in UTF */
+#define Runeself 0x80 /* rune and UTF sequences are the same (<) */
+#define UTFmax 6 /* maximum bytes per rune */
+
+/*
+ plan 9 argument parsing
+*/
+#define ARGBEGIN for((argv0? 0: (argv0= *argv)),argv++,argc--;\
+ argv[0] && argv[0][0]=='-' && argv[0][1];\
+ argc--, argv++) {\
+ char *_args, *_argt, _argc;\
+ _args = &argv[0][1];\
+ if(_args[0]=='-' && _args[1]==0){\
+ argc--; argv++; break;\
+ }\
+ _argc=0;while(*_args) switch(_argc= *_args++)
+#define ARGEND }
+#define ARGF() (_argt=_args, _args="",\
+ (*_argt? _argt: argv[1]? (argc--, *++argv): 0))
+#define ARGC() _argc
+extern char *argv0;
diff --git a/src/cmd/tcs/tcs.c b/src/cmd/tcs/tcs.c
new file mode 100644
index 00000000..14403064
--- /dev/null
+++ b/src/cmd/tcs/tcs.c
@@ -0,0 +1,1053 @@
+#ifndef PLAN9
+#include <sys/types.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <string.h>
+#include <errno.h>
+#include "plan9.h"
+#else /* PLAN9 */
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#endif /* PLAN9 */
+#include "cyrillic.h"
+#include "big5.h"
+#include "gb.h"
+#include "hdr.h"
+#include "conv.h"
+
+void usage(void);
+void list(void);
+int squawk = 1;
+int clean = 0;
+int verbose = 0;
+long ninput, noutput, nrunes, nerrors;
+char *file = "stdin";
+char *argv0;
+Rune runes[N];
+char obuf[UTFmax*N]; /* maximum bloat from N runes */
+long tab[NRUNE];
+#ifndef PLAN9
+extern char version[];
+#endif
+
+void intable(int, long *, struct convert *);
+void unicode_in(int, long *, struct convert *);
+void unicode_out(Rune *, int, long *);
+
+int
+main(int argc, char **argv)
+{
+ char *from = "utf";
+ char *to = "utf";
+ int fd;
+ int listem = 0;
+ struct convert *t, *f;
+
+ ARGBEGIN {
+ case 'c':
+ clean = 1;
+ break;
+ case 'f':
+ from = ARGF();
+ break;
+ case 'l':
+ listem = 1;
+ break;
+ case 's':
+ squawk = 0;
+ break;
+ case 't':
+ to = ARGF();
+ break;
+ case 'v':
+ verbose = 1;
+ break;
+ default:
+ usage();
+ break;
+ } ARGEND
+
+ USED(argc);
+ if(verbose)
+ squawk = 1;
+ if(listem){
+ list();
+ EXIT(0, 0);
+ }
+ if(!from || !to)
+ usage();
+ f = conv(from, 1);
+ t = conv(to, 0);
+#define PROC {if(f->flags&Table)\
+ intable(fd, (long *)f->data, t);\
+ else\
+ ((Infn)(f->fn))(fd, (long *)0, t);}
+ if(*argv){
+ while(*argv){
+ file = *argv;
+#ifndef PLAN9
+ if((fd = open(*argv, 0)) < 0){
+ EPR "%s: %s: %s\n", argv0, *argv, strerror(errno));
+#else /* PLAN9 */
+ if((fd = open(*argv, OREAD)) < 0){
+ EPR "%s: %s: %r\n", argv0, *argv);
+#endif /* PLAN9 */
+ EXIT(1, "open failure");
+ }
+ PROC
+ close(fd);
+ argv++;
+ }
+ } else {
+ fd = 0;
+ PROC
+ }
+ if(verbose)
+ EPR "%s: %ld input bytes, %ld runes, %ld output bytes (%ld errors)\n", argv0,
+ ninput, nrunes, noutput, nerrors);
+ EXIT(((nerrors && squawk)? 1:0), ((nerrors && squawk)? "conversion error":0));
+ return(0); /* shut up compiler */
+}
+
+void
+usage(void)
+{
+ EPR "Usage: %s [-slv] [-f cs] [-t cs] [file ...]\n", argv0);
+ list();
+ EXIT(1, "usage");
+}
+
+void
+list(void)
+{
+ struct convert *c;
+ char ch = verbose?'\t':' ';
+
+#ifndef PLAN9
+ EPR "%s version = '%s'\n", argv0, version);
+#endif
+ if(verbose)
+ EPR "character sets:\n");
+ else
+ EPR "cs:");
+ for(c = convert; c->name; c++){
+ if((c->flags&From) && c[1].name && (strcmp(c[1].name, c->name) == 0)){
+ EPR "%c%s", ch, c->name);
+ c++;
+ } else if(c->flags&Table)
+ EPR "%c%s", ch, c->name);
+ else if(c->flags&From)
+ EPR "%c%s(from)", ch, c->name);
+ else
+ EPR "%c%s(to)", ch, c->name);
+ if(verbose)
+ EPR "\t%s\n", c->chatter);
+ }
+ if(!verbose)
+ EPR "\n");
+}
+
+struct convert *
+conv(char *name, int from)
+{
+ struct convert *c;
+
+ for(c = convert; c->name; c++){
+ if(strcmp(c->name, name) != 0)
+ continue;
+ if(c->flags&Table)
+ return(c);
+ if(((c->flags&From) == 0) == (from == 0))
+ return(c);
+ }
+ EPR "%s: charset `%s' unknown\n", argv0, name);
+ EXIT(1, "unknown character set");
+ return(0); /* just shut the compiler up */
+}
+
+void
+swab2(char *b, int n)
+{
+ char *e, p;
+
+ for(e = b+n; b < e; b++){
+ p = *b;
+ *b = b[1];
+ *++b = p;
+ }
+}
+
+void
+unicode_in(int fd, long *notused, struct convert *out)
+{
+ Rune buf[N];
+ int n;
+ int swabme;
+
+ USED(notused);
+ if(read(fd, (char *)buf, 2) != 2)
+ return;
+ ninput += 2;
+ switch(buf[0])
+ {
+ default:
+ OUT(out, buf, 1);
+ case 0xFEFF:
+ swabme = 0;
+ break;
+ case 0xFFFE:
+ swabme = 1;
+ break;
+ }
+ while((n = read(fd, (char *)buf, 2*N)) > 0){
+ ninput += n;
+ if(n&1){
+ if(squawk)
+ EPR "%s: odd byte count in %s\n", argv0, file);
+ nerrors++;
+ if(clean)
+ n--;
+ else {
+ n++;
+ buf[n/2] = Runeerror;
+ if(swabme) /* swab so later swab undoes it */
+ swab2((char *)&buf[n/2], 2);
+ }
+ }
+ if(swabme)
+ swab2((char *)buf, n);
+ OUT(out, buf, n/2);
+ }
+}
+
+void
+unicode_out(Rune *base, int n, long *notused)
+{
+ static int first = 1;
+
+ USED(notused);
+ nrunes += n;
+ if(first){
+ unsigned short x = 0xFEFF;
+ noutput += 2;
+ write(1, (char *)&x, 2);
+ first = 0;
+ }
+ noutput += 2*n;
+ write(1, (char *)base, 2*n);
+}
+
+void
+intable(int fd, long *table, struct convert *out)
+{
+ uchar buf[N];
+ uchar *p, *e;
+ Rune *r;
+ int n;
+ long c;
+
+ while((n = read(fd, (char *)buf, N)) > 0){
+ ninput += n;
+ r = runes;
+ for(p = buf, e = buf+n; p < e; p++){
+ c = table[*p];
+ if(c < 0){
+ if(squawk)
+ EPR "%s: bad char 0x%x near byte %ld in %s\n", argv0, *p, ninput+(p-e), file);
+ nerrors++;
+ if(clean)
+ continue;
+ c = BADMAP;
+ }
+ *r++ = c;
+ }
+ OUT(out, runes, r-runes);
+ }
+ if(n < 0){
+#ifdef PLAN9
+ EPR "%s: input read: %r\n", argv0);
+#else
+ EPR "%s: input read: %s\n", argv0, strerror(errno));
+#endif
+ EXIT(1, "input read error");
+ }
+}
+
+void
+outtable(Rune *base, int n, long *map)
+{
+ long c;
+ char *p;
+ int i;
+
+ nrunes += n;
+ for(i = 0; i < NRUNE; i++)
+ tab[i] = -1;
+ for(i = 0; i < 256; i++)
+ if(map[i] >= 0)
+ tab[map[i]] = i;
+ for(i = 0, p = obuf; i < n; i++){
+ c = tab[base[i]];
+ if(c < 0){
+ if(squawk)
+ EPR "%s: rune 0x%x not in output cs\n", argv0, base[i]);
+ nerrors++;
+ if(clean)
+ continue;
+ c = BADMAP;
+ }
+ *p++ = c;
+ }
+ noutput += p-obuf;
+ write(1, obuf, p-obuf);
+}
+
+long tabascii[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+};
+
+long tab8859_1[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
+0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
+0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
+0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
+0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
+0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
+};
+
+long tab8859_2[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x0104,0x02d8,0x0141,0x00a4,0x013d,0x015a,0x00a7,
+0x00a8,0x0160,0x015e,0x0164,0x0179,0x00ad,0x017d,0x017b,
+0x00b0,0x0105,0x02db,0x0142,0x00b4,0x013e,0x015b,0x02c7,
+0x00b8,0x0161,0x015f,0x0165,0x017a,0x02dd,0x017e,0x017c,
+0x0154,0x00c1,0x00c2,0x0102,0x00c4,0x0139,0x0106,0x00c7,
+0x010c,0x00c9,0x0118,0x00cb,0x011a,0x00cd,0x00ce,0x010e,
+0x0110,0x0143,0x0147,0x00d3,0x00d4,0x0150,0x00d6,0x00d7,
+0x0158,0x016e,0x00da,0x0170,0x00dc,0x00dd,0x0162,0x00df,
+0x0155,0x00e1,0x00e2,0x0103,0x00e4,0x013a,0x0107,0x00e7,
+0x010d,0x00e9,0x0119,0x00eb,0x011b,0x00ed,0x00ee,0x010f,
+0x0111,0x0144,0x0148,0x00f3,0x00f4,0x0151,0x00f6,0x00f7,
+0x0159,0x016f,0x00fa,0x0171,0x00fc,0x00fd,0x0163,0x02d9,
+};
+
+long tab8859_3[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x0126,0x02d8,0x00a3,0x00a4, -1,0x0124,0x00a7,
+0x00a8,0x0130,0x015e,0x011e,0x0134,0x00ad, -1,0x017b,
+0x00b0,0x0127,0x00b2,0x00b3,0x00b4,0x00b5,0x0125,0x00b7,
+0x00b8,0x0131,0x015f,0x011f,0x0135,0x00bd, -1,0x017c,
+0x00c0,0x00c1,0x00c2, -1,0x00c4,0x010a,0x0108,0x00c7,
+0x00c8,0x00c9,0x00ca,0x00cb,0x00cc,0x00cd,0x00ce,0x00cf,
+ -1,0x00d1,0x00d2,0x00d3,0x00d4,0x0120,0x00d6,0x00d7,
+0x011c,0x00d9,0x00da,0x00db,0x00dc,0x016c,0x015c,0x00df,
+0x00e0,0x00e1,0x00e2, -1,0x00e4,0x010b,0x0109,0x00e7,
+0x00e8,0x00e9,0x00ea,0x00eb,0x00ec,0x00ed,0x00ee,0x00ef,
+ -1,0x00f1,0x00f2,0x00f3,0x00f4,0x0121,0x00f6,0x00f7,
+0x011d,0x00f9,0x00fa,0x00fb,0x00fc,0x016d,0x015d,0x02d9,
+};
+
+long tab8859_4[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x0104,0x0138,0x0156,0x00a4,0x0128,0x013b,0x00a7,
+0x00a8,0x0160,0x0112,0x0122,0x0166,0x00ad,0x017d,0x00af,
+0x00b0,0x0105,0x02db,0x0157,0x00b4,0x0129,0x013c,0x02c7,
+0x00b8,0x0161,0x0113,0x0123,0x0167,0x014a,0x017e,0x014b,
+0x0100,0x00c1,0x00c2,0x00c3,0x00c4,0x00c5,0x00c6,0x012e,
+0x010c,0x00c9,0x0118,0x00cb,0x0116,0x00cd,0x00ce,0x012a,
+0x0110,0x0145,0x014c,0x0136,0x00d4,0x00d5,0x00d6,0x00d7,
+0x00d8,0x0172,0x00da,0x00db,0x00dc,0x0168,0x016a,0x00df,
+0x0101,0x00e1,0x00e2,0x00e3,0x00e4,0x00e5,0x00e6,0x012f,
+0x010d,0x00e9,0x0119,0x00eb,0x0117,0x00ed,0x00ee,0x012b,
+0x0111,0x0146,0x014d,0x0137,0x00f4,0x00f5,0x00f6,0x00f7,
+0x00f8,0x0173,0x00fa,0x00fb,0x00fc,0x0169,0x016b,0x02d9,
+};
+
+long tab8859_5[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,
+0x0408,0x0409,0x040a,0x040b,0x040c,0x00ad,0x040e,0x040f,
+0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
+0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,
+0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
+0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,
+0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
+0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,
+0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
+0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,
+0x2116,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,
+0x0458,0x0459,0x045a,0x045b,0x045c,0x00a7,0x045e,0x045f,
+};
+
+long tab8859_6[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0, -1, -1, -1,0x00a4, -1, -1, -1,
+ -1, -1, -1, -1,0x060c,0x00ad, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1,0x061b, -1, -1, -1,0x061f,
+ -1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
+0x0628,0x0629,0x062a,0x062b,0x062c,0x062d,0x062e,0x062f,
+0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637,
+0x0638,0x0639,0x063a, -1, -1, -1, -1, -1,
+0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647,
+0x0648,0x0649,0x064a,0x064b,0x064c,0x064d,0x064e,0x064f,
+0x0650,0x0651,0x0652, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+};
+
+long tab8859_7[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x2018,0x2019,0x00a3, -1, -1,0x00a6,0x00a7,
+0x00a8,0x00a9, -1,0x00ab,0x00ac,0x00ad, -1,0x2015,
+0x00b0,0x00b1,0x00b2,0x00b3,0x0384,0x0385,0x0386,0x00b7,
+0x0388,0x0389,0x038a,0x00bb,0x038c,0x00bd,0x038e,0x038f,
+0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
+0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,
+0x03a0,0x03a1, -1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,
+0x03a8,0x03a9,0x03aa,0x03ab,0x03ac,0x03ad,0x03ae,0x03af,
+0x03b0,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,
+0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,
+0x03c0,0x03c1,0x03c2,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,
+0x03c8,0x03c9,0x03ca,0x03cb,0x03cc,0x03cd,0x03ce, -1,
+};
+
+long tab8859_8[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0, -1,0x00a2,0x00a3,0x00a4,0x00a5,0x00a6,0x00a7,
+0x00a8,0x00a9,0x00d7,0x00ab,0x00ac,0x00ad,0x00ae,0x203e,
+0x00b0,0x00b1,0x00b2,0x00b3,0x00b4,0x00b5,0x00b6,0x00b7,
+0x00b8,0x00b9,0x00f7,0x00bb,0x00bc,0x00bd,0x00be, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1,0x2017,
+0x05d0,0x05d1,0x05d2,0x05d3,0x05d4,0x05d5,0x05d6,0x05d7,
+0x05d8,0x05d9,0x05da,0x05db,0x05dc,0x05dd,0x05de,0x05df,
+0x05e0,0x05e1,0x05e2,0x05e3,0x05e4,0x05e5,0x05e6,0x05e7,
+0x05e8,0x05e9,0x05ea, -1, -1, -1, -1, -1,
+};
+
+long tab8859_9[256] =
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x00a1,0x00a2,0x00a3,0x00a4,0x00a5,0x00a6,0x00a7,
+0x00a8,0x00a9,0x00aa,0x00ab,0x00ac,0x00ad,0x00ae,0x00af,
+0x00b0,0x00b1,0x00b2,0x00b3,0x00b4,0x00b5,0x00b6,0x00b7,
+0x00b8,0x00b9,0x00ba,0x00bb,0x00bc,0x00bd,0x00be,0x00bf,
+0x00c0,0x00c1,0x00c2,0x00c3,0x00c4,0x00c5,0x00c6,0x00c7,
+0x00c8,0x00c9,0x00ca,0x00cb,0x00cc,0x00cd,0x00ce,0x00cf,
+0x011e,0x00d1,0x00d2,0x00d3,0x00d4,0x00d5,0x00d6,0x00d7,
+0x00d8,0x00d9,0x00da,0x00db,0x00dc,0x0130,0x015e,0x00df,
+0x00e0,0x00e1,0x00e2,0x00e3,0x00e4,0x00e5,0x00e6,0x00e7,
+0x00e8,0x00e9,0x00ea,0x00eb,0x00ec,0x00ed,0x00ee,0x00ef,
+0x011f,0x00f1,0x00f2,0x00f3,0x00f4,0x00f5,0x00f6,0x00f7,
+0x00f8,0x00f9,0x00fa,0x00fb,0x00fc,0x0131,0x015f,0x00ff,
+};
+long microsoft[256] = /* from seanq */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
+0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
+0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
+0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2022,
+0x2022, 0x2022, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
+0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x2022, 0x2022, 0x2022,
+0x2022, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x2022, 0x2022, 0x0178,
+0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
+0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
+0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
+0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
+0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
+0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
+0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
+0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
+0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
+0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
+0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff,
+};
+long tabsf2[256] = /* from wirzeniu@cc.helsinki.fi (Lars Wirzenius) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xc4,0xd6,0xc5,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xe4,0xf6,0xe5,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+};
+long tabtis620[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
+0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
+0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
+0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
+0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
+0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
+0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
+0x0e38, 0x0e39, 0x0e3a, -1, -1, -1, -1, 0x0e3f,
+0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
+0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,
+0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
+0x0e58, 0x0e59, 0x0e5a, 0x0e5b, -1, -1, -1, -1,
+};
+long tabatari[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* accented latin */
+0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
+0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
+0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x00df, 0x0192,
+0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
+0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
+0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3,
+0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122,
+0x0133, 0x0132,
+ 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, /* hebrew */
+0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0,
+0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea,
+0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5,
+ 0x00a7, 0x2038, 0x221e, /* math */
+0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */
+0x03a6, 0x03b8, 0x2126, 0x03b4,
+ 0x222e, 0x03c6, 0x2208, 0x220f, /* math */
+0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
+0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af,
+};
+long tabebcdic[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */
+{
+0x00, 0x01, 0x02, 0x03, -1, 0x09, -1, 0x7f,
+-1, -1, -1, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+0x10, 0x11, 0x12, 0x13, -1, -1, 0x08, -1,
+0x18, 0x09, -1, -1, 0x1c, 0x1d, 0x1e, 0x1f,
+-1, -1, -1, -1, -1, 0x0a, 0x17, 0x1b,
+-1, -1, -1, -1, -1, 0x05, 0x06, 0x07,
+-1, -1, 0x16, -1, -1, -1, -1, 0x04,
+-1, -1, -1, -1, 0x14, 0x15, -1, 0x1a,
+0x20, -1, -1, -1, -1, -1, -1, -1,
+-1, -1, 0x5b, 0x2e, 0x3c, 0x28, 0x2b, 0x21,
+0x26, -1, -1, -1, -1, -1, -1, -1,
+-1, -1, 0x5d, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* not-sign 0xac -> circumflex 0x5e */
+0x2d, 0x2f, -1, -1, -1, -1, -1, -1,
+-1, -1, 0x7c, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
+-1, -1, -1, -1, -1, -1, -1, -1,
+-1, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
+-1, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+0x68, 0x69, -1, -1, -1, -1, -1, -1,
+-1, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
+0x71, 0x72, -1, -1, -1, -1, -1, -1,
+-1, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* non-spacing macron 0xaf -> tilde 0x7e */
+0x79, 0x7a, -1, -1, -1, -1, -1, -1,
+-1, -1, -1, -1, -1, -1, -1, -1,
+-1, -1, -1, -1, -1, -1, -1, -1,
+0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+0x48, 0x49, -1, -1, -1, -1, -1, -1,
+0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
+0x51, 0x52, -1, -1, -1, -1, -1, -1,
+0x5c, -1, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
+0x59, 0x5a, -1, -1, -1, -1, -1, -1,
+0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+0x38, 0x39, -1, -1, -1, -1, -1, -1,
+};
+long tabmsdos[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* latin */
+0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
+0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
+0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,
+0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
+0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
+0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* forms */
+0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
+0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
+0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
+0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
+0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
+0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */
+0x03a6, 0x0398, 0x2126, 0x03b4, 0x221e, 0x2205, 0x2208, 0x2229,
+0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* math */
+0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x220e, 0x00a0,
+};
+long tabmsdos2[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */
+{
+0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022,
+0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c,
+0x25b6, 0x25c0, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x2043, 0x21a8,
+0x2191, 0x2193, 0x2192, 0x2190, 0x2319, 0x2194, 0x25b2, 0x25bc,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* latin */
+0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
+0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
+0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,
+0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
+0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
+0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* forms */
+0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
+0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
+0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
+0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
+0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
+0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */
+0x03a6, 0x0398, 0x2126, 0x03b4, 0x221e, 0x2205, 0x2208, 0x2229,
+0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* math */
+0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x220e, 0x00a0,
+};
+long tabps2[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* latin-1 repertoire with forms */
+0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
+0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
+0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
+0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
+0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
+0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
+0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
+0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
+0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
+0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
+0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
+0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
+0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
+0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
+0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x220e, 0x00a0,
+};
+long tabsf1[256] = /* From Kari.Hurtta@Helsinki.FI (Kari E. Hurtta) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0xc9,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xc4,0xd6,0xc5,0xdc,0x5f,
+0xe9,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xe4,0xf6,0xe5,0xfc,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+};
+long tabviet1[256] = /* From jdo@sjc.mentorg.com (James Do) */
+{
+ -1, 0xda, 0x1ee4, -1, 0x1eea, 0x1eec, 0x1eee, 0x7,
+ -1, -1, 0xa, -1, -1, 0xc, -1, -1,
+ -1, 0x1ee8, 0x1ef0, 0x1ef2, 0x1ef6, 0x1ef8, 0xdd, 0x1ef4,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ 0xc0, 0x1ea2, 0xc3, 0xc1, 0x1ea0, 0x1eb6, 0x1eac, 0xc8,
+0x1eba, 0x1ebc, 0xc9, 0x1eb8, 0x1ec6, 0xcc, 0x1ec8, 0x0128,
+ 0xcd, 0x1eca, 0xd2, 0x1ece, 0xd5, 0xd3, 0x1ecc, 0x1ed8,
+0x1edc, 0x1ede, 0x1ee0, 0x1eda, 0x1ee2, 0xd9, 0x1ee6, 0x0168,
+ 0xa0, 0x0102, 0xc2, 0xca, 0xd4, 0x01a0, 0x01af, 0x0110,
+0x0103, 0xe2, 0xea, 0xf4, 0x01a1, 0x01b0, 0x0111, 0x1eb0,
+0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0xe0, 0x1ea3, 0xe3,
+ 0xe1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4,
+0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7,
+0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0xe8, 0x1ec2, 0x1ebb, 0x1ebd,
+ 0xe9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0xec,
+0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0xed, 0x1ecb, 0xf2,
+0x1ed4, 0x1ecf, 0xf5, 0xf3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7,
+0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0xf9,
+0x1ed6, 0x1ee7, 0x0169, 0xfa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef,
+0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0xfd, 0x1ef5, 0x1ed0
+};
+long tabviet2[256] = /* From jdo@sjc.mentorg.com (James Do) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 0xa0, 0x0102, 0xc2, 0xca, 0xd4, 0x01a0, 0x01af, 0x0110,
+0x0103, 0xe2, 0xea, 0xf4, 0x01a1, 0x01b0, 0x0111, 0x1eb0,
+0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0xe0, 0x1ea3, 0xe3,
+ 0xe1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4,
+0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7,
+0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0xe8, 0x1ec2, 0x1ebb, 0x1ebd,
+ 0xe9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0xec,
+0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0xed, 0x1ecb, 0xf2,
+0x1ed4, 0x1ecf, 0xf5, 0xf3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7,
+0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0xf9,
+0x1ed6, 0x1ee7, 0x0169, 0xfa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef,
+0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0xfd, 0x1ef5, 0x1ed0
+};
+long tabviscii[256] = /* From cuong@haydn.Stanford.EDU (Cuong T. Nguyen) */
+{
+0x0000, 0x0001, 0x1EB2, 0x0003, 0x0004, 0x1EB4, 0x1EAA, 0x0007,
+0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
+0x0010, 0x0011, 0x0012, 0x0013, 0x1EF6, 0x0015, 0x0016, 0x0017,
+0x0018, 0x1EF8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1EF4, 0x001f,
+0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
+0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
+0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
+0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
+0x1EA0, 0x1EAE, 0x1EB0, 0x1EB6, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAC,
+0x1EBC, 0x1EB8, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1ED0,
+0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EE2, 0x1EDA, 0x1EDC, 0x1EDE,
+0x1ECA, 0x1ECE, 0x1ECC, 0x1EC8, 0x1EE6, 0x0168, 0x1EE4, 0x1EF2,
+0x00D5, 0x1EAF, 0x1EB1, 0x1EB7, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAD,
+0x1EBD, 0x1EB9, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1ED1,
+0x1ED3, 0x1ED5, 0x1ED7, 0x1EE0, 0x01A0, 0x1ED9, 0x1EDD, 0x1EDF,
+0x1ECB, 0x1EF0, 0x1EE8, 0x1EEA, 0x1EEC, 0x01A1, 0x1EDB, 0x01AF,
+0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x1EA2, 0x0102, 0x1EB3, 0x1EB5,
+0x00C8, 0x00C9, 0x00CA, 0x1EBA, 0x00CC, 0x00CD, 0x0128, 0x1EF3,
+0x0110, 0x1EE9, 0x00D2, 0x00D3, 0x00D4, 0x1EA1, 0x1EF7, 0x1EEB,
+0x1EED, 0x00D9, 0x00DA, 0x1EF9, 0x1EF5, 0x00DD, 0x1EE1, 0x01B0,
+0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x1EA3, 0x0103, 0x1EEF, 0x1EAB,
+0x00E8, 0x00E9, 0x00EA, 0x1EBB, 0x00EC, 0x00ED, 0x0129, 0x1EC9,
+0x0111, 0x1EF1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x1ECF, 0x1ECD,
+0x1EE5, 0x00F9, 0x00FA, 0x0169, 0x1EE7, 0x00FD, 0x1EE3, 0x1EEE
+};
+long tab8859_10[256] = /* from dkuug.dk:i18n/charmaps/ISO_8859-10:1993 */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0x00a0,0x0104,0x0112,0x0122,0x012a,0x0128,0x0136,0x00a7,
+0x013b,0x0110,0x0160,0x0166,0x017d,0x00ad,0x016a,0x014a,
+0x00b0,0x0105,0x0113,0x0123,0x012b,0x0129,0x0137,0x00b7,
+0x013c,0x0110,0x0161,0x0167,0x017e,0x2014,0x016b,0x014b,
+0x0100,0x00c1,0x00c2,0x00c3,0x00c4,0x00c5,0x00c6,0x012e,
+0x010c,0x00c9,0x0118,0x00cb,0x0116,0x00cd,0x00ce,0x00cf,
+0x00d0,0x0145,0x014c,0x00d3,0x00d4,0x00d5,0x00d6,0x0168,
+0x00d8,0x0172,0x00da,0x00db,0x00dc,0x00dd,0x00de,0x00df,
+0x0101,0x00e1,0x00e2,0x00e3,0x00e4,0x00e5,0x00e6,0x012f,
+0x010d,0x00e9,0x0119,0x00eb,0x0117,0x00ed,0x00ee,0x00ef,
+0x00f0,0x0146,0x014d,0x00f3,0x00f4,0x00f5,0x00f6,0x0169,
+0x00f8,0x0173,0x00fa,0x00fb,0x00fc,0x00fd,0x00fe,0x0138,
+};
+long tabMacRoman[256] = /* (modified via world.std.com!choupt) from mduerst@ifi.unizh.ch (Martin J. Du"rst) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x00c4,0x00c5,0x00c7,0x00c9,0x00d1,0x00d6,0x00dc,0x00e1,
+0x00e0,0x00e2,0x00e4,0x00e3,0x00e5,0x00e7,0x00e9,0x00e8,
+0x00ea,0x00eb,0x00ed,0x00ec,0x00ee,0x00ef,0x00f1,0x00f3,
+0x00f2,0x00f4,0x00f6,0x00f5,0x00fa,0x00f9,0x00fb,0x00fc,
+0x2020,0x00b0,0x00a2,0x00a3,0x00a7,0x2022,0x00b6,0x00df,
+0x00ae,0x00a9,0x2122,0x00b4,0x00a8,0x2260,0x00c6,0x00d8,
+0x221e,0x00b1,0x2264,0x2265,0x00a5,0x00b5,0x2202,0x2211,
+0x220f,0x03c0,0x222b,0x00aa,0x00ba,0x2126,0x00e6,0x00f8,
+0x00bf,0x00a1,0x00ac,0x221a,0x0192,0x2248,0x2206,0x00ab,
+0x00bb,0x2026,0x00a0,0x00c0,0x00c3,0x00d5,0x0152,0x0153,
+0x2013,0x2014,0x2012,0x201d,0x2018,0x2019,0x00f7,0x25ca, /*2013 en dash suggested by Glenn A. Adams*/
+0x00ff,0x0178,0x2044,0x00a4,0x2039,0x203a,0xfb01,0xfb02,
+0x2021,0x00b7,0x201a,0x201e,0x2030,0x00c2,0x00ca,0x00c1,
+0x00cb,0x00c8,0x00cd,0x00ce,0x00cf,0x00cc,0x00d3,0x00d4,
+0xf7ff,0x00d2,0x00da,0x00db,0x00d9,0x0131,0x02c6,0x02dc,
+0x00af,0x02d8,0x02d9,0x02da,0x00b8,0x02dd,0x02db,0x02c7,
+};
+
+long tabnextstep[256] = /* From mduerst@ifi.unizh.ch (Martin J. Du"rst) */
+/* From NEXTSTEP Encoding Vector / Character Code Palette */
+/* quote (0027) and quoteright (2019) should be exchanged */
+/* if visual form is considered exactly; left as is */
+/* for compatibility with other low-end systems */
+{
+0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+0x2007, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C7,
+0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
+0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D9,
+0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00B5, 0x00D7, 0x00F7,
+0x00A9, 0x00A1, 0x00A2, 0x00A3, 0x2044, 0x00A5, 0x0192, 0x00A7,
+0x00A4, 0x2019, 0x201C, 0x00AB, 0x2039, 0x2040, 0xFB01, 0xFB02,
+0x00AE, 0x2013, 0x2020, 0x2021, 0x00B7, 0x254E, 0x00B6, 0x2022,
+0x201A, 0x201E, 0x201D, 0x00BB, 0x2026, 0x2030, 0x00AC, 0x00BF,
+0x00B9, 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0306, 0x0307,
+0x0308, 0x00B2, 0x030A, 0x0327, 0x00B3, 0x030B, 0x0328, 0x030C,
+0x2014, 0x00B1, 0x00BC, 0x00BD, 0x00BE, 0x00E0, 0x00E1, 0x00E2,
+0x00E3, 0x00E4, 0x00E5, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB,
+0x00EC, 0x00C6, 0x00ED, 0x00AA, 0x00EE, 0x00EF, 0x00F0, 0x00F1,
+0x0141, 0x00D8, 0x0152, 0x00BA, 0x00F2, 0x00F3, 0x00F4, 0x00F5,
+0x00F6, 0x00E6, 0x00F9, 0x00FA, 0x00FB, 0x0131, 0x00FC, 0x00FD,
+0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x00FF, 0xFFFF, 0xFFFF
+};
+
+long tab8859_15[256] = /* from anyrhine@cs.helsinki.fi (Aki Nyrhinen) */
+{
+0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+0xa0,0xa1,0xa2,0xa3,0x20a0,0xa5,0x0160,0xa7,0x0161,0xa9,0xaa,0xab,0xac,0xad,
+0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0x017d,0xb5,0xb6,0xb7,0x017e,0xb9,0xba,0xbb,
+0x0152,0x0153,0x0178,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,
+0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,
+0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
+0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,
+0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
+};
+
+struct convert convert[] =
+{ /* if two entries have the same name, put the from one first */
+ { "utf", "FSS-UTF a.k.a. UTF-8", From|Func, 0, (Fnptr)utf_in },
+ { "utf", "FSS-UTF a.k.a. UTF-8", Func, 0, (Fnptr)utf_out },
+ { "utf1", "UTF-1 (ISO 10646 Annex A)", From|Func, 0, (Fnptr)isoutf_in },
+ { "utf1", "UTF-1 (ISO 10646 Annex A)", Func, 0, (Fnptr)isoutf_out },
+ { "microsoft", "microsoft", Table, (void *)microsoft },
+ { "ascii", "7-bit ASCII", Table, (void *)tabascii },
+ { "8859-1", "Latin-1 (Western and Northern Europe including Italian)", Table, (void *)tab8859_1 },
+ { "latin1", "ISO 8859-1", Table, (void *)tab8859_1 },
+ { "8859-2", "Latin-2 (Eastern Europe except Turkey and the Baltic countries)", Table, (void *)tab8859_2 },
+ { "8859-3", "Latin-3 (Mediterranean, South Africa, Esperanto)", Table, (void *)tab8859_3 },
+ { "8859-4", "Latin-4 (Scandinavia and the Baltic countries; obsolete)", Table, (void *)tab8859_4 },
+ { "8859-5", "Part 5 (Cyrillic)", Table, (void *)tab8859_5 },
+ { "8859-6", "Part 6 (Arabic)", Table, (void *)tab8859_6 },
+ { "8859-7", "Part 7 (Greek)", Table, (void *)tab8859_7 },
+ { "8859-8", "Part 8 (Hebrew)", Table, (void *)tab8859_8 },
+ { "8859-9", "Latin-5 (Turkey, Western Europe except Icelandic and Faroese)", Table, (void *)tab8859_9 },
+ { "8859-10", "Latin-6 (Northern Europe)", Table, (void *)tab8859_10 },
+ { "8859-15", "Latin-9 (Western Europe)", Table, (void *)tab8859_15 },
+ { "koi8", "KOI-8 (GOST 19769-74)", Table, (void *)tabkoi8 },
+ { "ucode", "Russian U-code", Table, (void *)tabucode },
+ { "cp866", "Russian MS-DOS encoding (CP 866)", Table, (void *)tab866 },
+ { "av", "Alternativnyj Variant", Table, (void *)tabav },
+ { "cp1251", "Russian MS-DOS encoding (CP 1251)", Table, (void *)tabcp1251 },
+ { "ov", "Osnovnoj Variant", Table, (void *)tabov },
+ { "sf1", "ISO-646: Finnish/Swedish SF-1 variant", Table, (void *)tabsf1 },
+ { "sf2", "ISO-646: Finnish/Swedish SF-2 variant (recommended)", Table, (void *)tabsf2 },
+ { "jis", "guesses at the JIS encoding", From|Func, 0, (Fnptr)jis_in },
+ { "jis-kanji", "ISO 2022-JP", From|Func, 0, (Fnptr)jisjis_in },
+ { "jis-kanji", "ISO 2022-JP", Func, 0, (Fnptr)jisjis_out },
+ { "ujis", "EUC-JX: JIS 0208", From|Func, 0, (Fnptr)ujis_in },
+ { "ujis", "EUC-JX: JIS 0208", Func, 0, (Fnptr)ujis_out },
+ { "ms-kanji", "Microsoft, or Shift-JIS", From|Func, 0, (Fnptr)msjis_in },
+ { "ms-kanji", "Microsoft, or Shift-JIS", Func, 0, (Fnptr)msjis_out },
+ { "big5", "Big 5 (HKU)", From|Func, 0, (Fnptr)big5_in },
+ { "big5", "Big 5 (HKU)", Func, 0, (Fnptr)big5_out },
+ { "gb", "GB2312-80", From|Func, 0, (Fnptr)gb_in },
+ { "gb", "GB2312-80", Func, 0, (Fnptr)gb_out },
+ { "euc-k", "Korean EUC: ASCII+KS C 5601 1987", From|Func, 0, (Fnptr)uksc_in },
+ { "euc-k", "Korean EUC: ASCII+KS C 5601 1987", Func, 0, (Fnptr)uksc_out },
+ { "tis", "Thai+ASCII (TIS 620-1986)", Table, (void *)tabtis620 },
+ { "viet1", "Vietnamese VSCII-1 (1993)", Table, (void *)tabviet1 },
+ { "viet2", "Vietnamese VSCII-2 (1993)", Table, (void *)tabviet2 },
+ { "viscii", "Vietnamese VISCII 1.1 (1992)", Table, (void *)tabviscii },
+ { "msdos", "IBM PC: CP 437", Table, (void *)tabmsdos },
+ { "msdos2", "IBM PC: CP 437 with graphics in C0", Table, (void *)tabmsdos2 },
+ { "ps2", "IBM PS/2: CP 850 (Multilingual)", Table, (void *)tabps2 },
+ { "macrom", "Macintosh Standard Roman character set", Table, (void *)tabMacRoman },
+ { "next", "NEXTSTEP character set", Table, (void *)tabnextstep },
+ { "atari", "ATARI-ST character set", Table, (void *)tabatari },
+ { "unicode", "Unicode 1.1", From|Func, 0, (Fnptr)unicode_in },
+ { "unicode", "Unicode 1.1", Func, 0, (Fnptr)unicode_out },
+ { "ebcdic", "EBCDIC", Table, (void *)tabebcdic }, /* 6f is recommended bad map */
+ { "utf-l2", "from", From|Func, 0, (Fnptr)utf_in },
+ { "utf-l2", "to", Func, 0, (Fnptr)utf_out },
+ { 0 },
+};
diff --git a/src/cmd/tcs/utf.c b/src/cmd/tcs/utf.c
new file mode 100644
index 00000000..418c9e1c
--- /dev/null
+++ b/src/cmd/tcs/utf.c
@@ -0,0 +1,581 @@
+#ifdef PLAN9
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#else
+#include <sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include "plan9.h"
+#endif
+#include "hdr.h"
+
+/*
+ the our_* routines are implementations for the corresponding library
+ routines. for a while, i tried to actually name them wctomb etc
+ but stopped that after i found a system which made wchar_t an
+ unsigned char.
+*/
+
+#ifdef PLAN9
+long getrune(Biobuf *);
+long getisorune(Biobuf *);
+#else
+long getrune(FILE *);
+long getisorune(FILE *);
+#endif
+int our_wctomb(char *s, unsigned long wc);
+int our_mbtowc(unsigned long *p, char *s, unsigned n);
+int runetoisoutf(char *str, Rune *rune);
+int fullisorune(char *str, int n);
+int isochartorune(Rune *rune, char *str);
+
+void
+utf_in(int fd, long *notused, struct convert *out)
+{
+#ifndef PLAN9
+ FILE *fp;
+#else /* PLAN9 */
+ Biobuf b;
+#endif /* PLAN9 */
+ Rune *r;
+ long l;
+
+ USED(notused);
+#ifndef PLAN9
+ if((fp = fdopen(fd, "r")) == NULL){
+ EPR "%s: input setup error: %s\n", argv0, strerror(errno));
+#else /* PLAN9 */
+ if(Binit(&b, fd, OREAD) < 0){
+ EPR "%s: input setup error: %r\n", argv0);
+#endif /* PLAN9 */
+ EXIT(1, "input error");
+ }
+ r = runes;
+ for(;;)
+#ifndef PLAN9
+ switch(l = getrune(fp))
+#else /* PLAN9 */
+ switch(l = getrune(&b))
+#endif /* PLAN9 */
+ {
+ case -1:
+ goto done;
+ case -2:
+ if(squawk)
+ EPR "%s: bad UTF sequence near byte %ld in input\n", argv0, ninput);
+ if(clean)
+ continue;
+ nerrors++;
+ l = Runeerror;
+ default:
+ *r++ = l;
+ if(r >= &runes[N]){
+ OUT(out, runes, r-runes);
+ r = runes;
+ }
+ }
+done:
+ if(r > runes)
+ OUT(out, runes, r-runes);
+}
+
+void
+utf_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ Rune *r;
+
+ USED(notused);
+ nrunes += n;
+ for(r = base, p = obuf; n-- > 0; r++){
+ p += our_wctomb(p, *r);
+ }
+ noutput += p-obuf;
+ write(1, obuf, p-obuf);
+}
+
+void
+isoutf_in(int fd, long *notused, struct convert *out)
+{
+#ifndef PLAN9
+ FILE *fp;
+#else /* PLAN9 */
+ Biobuf b;
+#endif /* PLAN9 */
+ Rune *r;
+ long l;
+
+ USED(notused);
+#ifndef PLAN9
+ if((fp = fdopen(fd, "r")) == 0){
+ EPR "%s: input setup error: %s\n", argv0, strerror(errno));
+#else /* PLAN9 */
+ if(Binit(&b, fd, OREAD) < 0){
+ EPR "%s: input setup error: %r\n", argv0);
+#endif /* PLAN9 */
+ EXIT(1, "input error");
+ }
+ r = runes;
+ for(;;)
+#ifndef PLAN9
+ switch(l = getisorune(fp))
+#else /* PLAN9 */
+ switch(l = getisorune(&b))
+#endif /* PLAN9 */
+ {
+ case -1:
+ goto done;
+ case -2:
+ if(squawk)
+ EPR "%s: bad UTF sequence near byte %ld in input\n", argv0, ninput);
+ if(clean)
+ continue;
+ nerrors++;
+ l = Runeerror;
+ default:
+ *r++ = l;
+ if(r >= &runes[N]){
+ OUT(out, runes, r-runes);
+ r = runes;
+ }
+ }
+done:
+ if(r > runes)
+ OUT(out, runes, r-runes);
+}
+
+void
+isoutf_out(Rune *base, int n, long *notused)
+{
+ char *p;
+ Rune *r;
+
+ USED(notused);
+ nrunes += n;
+ for(r = base, p = obuf; n-- > 0; r++)
+ p += runetoisoutf(p, r);
+ noutput += p-obuf;
+ write(1, obuf, p-obuf);
+}
+
+long
+#ifndef PLAN9
+getrune(FILE *fp)
+#else /* PLAN9 */
+getrune(Biobuf *bp)
+#endif /* PLAN9 */
+{
+ int c, i;
+ char str[UTFmax]; /* MB_LEN_MAX really */
+ unsigned long l;
+ int n;
+
+ for(i = 0;;){
+#ifndef PLAN9
+ c = getc(fp);
+#else /* PLAN9 */
+ c = Bgetc(bp);
+#endif /* PLAN9 */
+ if(c < 0)
+ return(c);
+ ninput++;
+ str[i++] = c;
+ n = our_mbtowc(&l, str, i);
+ if(n == -1)
+ return(-2);
+ if(n > 0)
+ return(l);
+ }
+}
+
+long
+#ifndef PLAN9
+getisorune(FILE *fp)
+#else /* PLAN9 */
+getisorune(Biobuf *bp)
+#endif /* PLAN9 */
+{
+ int c, i;
+ Rune rune;
+ char str[UTFmax]; /* MB_LEN_MAX really */
+
+ for(i = 0;;){
+#ifndef PLAN9
+ c = getc(fp);
+#else /* PLAN9 */
+ c = Bgetc(bp);
+#endif /* PLAN9 */
+ if(c < 0)
+ return(c);
+ ninput++;
+ str[i++] = c;
+ if(fullisorune(str, i))
+ break;
+ }
+ isochartorune(&rune, str);
+ if(rune == Runeerror)
+ return -2;
+ return(rune);
+}
+
+enum
+{
+ Char1 = Runeself, Rune1 = Runeself,
+ Char21 = 0xA1, Rune21 = 0x0100,
+ Char22 = 0xF6, Rune22 = 0x4016,
+ Char3 = 0xFC, Rune3 = 0x10000, /* really 0x38E2E */
+ Esc = 0xBE, Bad = Runeerror
+};
+
+static uchar U[256];
+static uchar T[256];
+
+static
+void
+mktable(void)
+{
+ int i, u;
+
+ for(i=0; i<256; i++) {
+ u = i + (0x5E - 0xA0);
+ if(i < 0xA0)
+ u = i + (0xDF - 0x7F);
+ if(i < 0x7F)
+ u = i + (0x00 - 0x21);
+ if(i < 0x21)
+ u = i + (0xBE - 0x00);
+ U[i] = u;
+ T[u] = i;
+ }
+}
+
+int
+isochartorune(Rune *rune, char *str)
+{
+ int c, c1, c2;
+ long l;
+
+ if(U[0] == 0)
+ mktable();
+
+ /*
+ * one character sequence
+ * 00000-0009F => 00-9F
+ */
+ c = *(uchar*)str;
+ if(c < Char1) {
+ *rune = c;
+ return 1;
+ }
+
+ /*
+ * two character sequence
+ * 000A0-000FF => A0; A0-FF
+ */
+ c1 = *(uchar*)(str+1);
+ if(c < Char21) {
+ if(c1 >= Rune1 && c1 < Rune21) {
+ *rune = c1;
+ return 2;
+ }
+ goto bad;
+ }
+
+ /*
+ * two character sequence
+ * 00100-04015 => A1-F5; 21-7E/A0-FF
+ */
+ c1 = U[c1];
+ if(c1 >= Esc)
+ goto bad;
+ if(c < Char22) {
+ *rune = (c-Char21)*Esc + c1 + Rune21;
+ return 2;
+ }
+
+ /*
+ * three character sequence
+ * 04016-38E2D => A6-FB; 21-7E/A0-FF
+ */
+ c2 = U[*(uchar*)(str+2)];
+ if(c2 >= Esc)
+ goto bad;
+ if(c < Char3) {
+ l = (c-Char22)*Esc*Esc + c1*Esc + c2 + Rune22;
+ if(l >= Rune3)
+ goto bad;
+ *rune = l;
+ return 3;
+ }
+
+ /*
+ * bad decoding
+ */
+bad:
+ *rune = Bad;
+ return 1;
+}
+
+int
+runetoisoutf(char *str, Rune *rune)
+{
+ long c;
+
+ if(T[0] == 0)
+ mktable();
+
+ /*
+ * one character sequence
+ * 00000-0009F => 00-9F
+ */
+ c = *rune;
+ if(c < Rune1) {
+ str[0] = c;
+ return 1;
+ }
+
+ /*
+ * two character sequence
+ * 000A0-000FF => A0; A0-FF
+ */
+ if(c < Rune21) {
+ str[0] = (uchar)Char1;
+ str[1] = c;
+ return 2;
+ }
+
+ /*
+ * two character sequence
+ * 00100-04015 => A1-F5; 21-7E/A0-FF
+ */
+ if(c < Rune22) {
+ c -= Rune21;
+ str[0] = c/Esc + Char21;
+ str[1] = T[c%Esc];
+ return 2;
+ }
+
+ /*
+ * three character sequence
+ * 04016-38E2D => A6-FB; 21-7E/A0-FF
+ */
+ c -= Rune22;
+ str[0] = c/(Esc*Esc) + Char22;
+ str[1] = T[c/Esc%Esc];
+ str[2] = T[c%Esc];
+ return 3;
+}
+
+int
+fullisorune(char *str, int n)
+{
+ int c;
+
+ if(n > 0) {
+ c = *(uchar*)str;
+ if(c < Char1)
+ return 1;
+ if(n > 1)
+ if(c < Char22 || n > 2)
+ return 1;
+ }
+ return 0;
+}
+
+#ifdef PLAN9
+int errno;
+#endif
+
+enum
+{
+ T1 = 0x00,
+ Tx = 0x80,
+ T2 = 0xC0,
+ T3 = 0xE0,
+ T4 = 0xF0,
+ T5 = 0xF8,
+ T6 = 0xFC,
+
+ Bit1 = 7,
+ Bitx = 6,
+ Bit2 = 5,
+ Bit3 = 4,
+ Bit4 = 3,
+ Bit5 = 2,
+ Bit6 = 2,
+
+ Mask1 = (1<<Bit1)-1,
+ Maskx = (1<<Bitx)-1,
+ Mask2 = (1<<Bit2)-1,
+ Mask3 = (1<<Bit3)-1,
+ Mask4 = (1<<Bit4)-1,
+ Mask5 = (1<<Bit5)-1,
+ Mask6 = (1<<Bit6)-1,
+
+ Wchar1 = (1UL<<Bit1)-1,
+ Wchar2 = (1UL<<(Bit2+Bitx))-1,
+ Wchar3 = (1UL<<(Bit3+2*Bitx))-1,
+ Wchar4 = (1UL<<(Bit4+3*Bitx))-1,
+ Wchar5 = (1UL<<(Bit5+4*Bitx))-1
+
+#ifndef EILSEQ
+ , /* we hate ansi c's comma rules */
+ EILSEQ = 123
+#endif /* PLAN9 */
+};
+
+int
+our_wctomb(char *s, unsigned long wc)
+{
+ if(s == 0)
+ return 0; /* no shift states */
+ if(wc & ~Wchar2) {
+ if(wc & ~Wchar4) {
+ if(wc & ~Wchar5) {
+ /* 6 bytes */
+ s[0] = T6 | ((wc >> 5*Bitx) & Mask6);
+ s[1] = Tx | ((wc >> 4*Bitx) & Maskx);
+ s[2] = Tx | ((wc >> 3*Bitx) & Maskx);
+ s[3] = Tx | ((wc >> 2*Bitx) & Maskx);
+ s[4] = Tx | ((wc >> 1*Bitx) & Maskx);
+ s[5] = Tx | (wc & Maskx);
+ return 6;
+ }
+ /* 5 bytes */
+ s[0] = T5 | (wc >> 4*Bitx);
+ s[1] = Tx | ((wc >> 3*Bitx) & Maskx);
+ s[2] = Tx | ((wc >> 2*Bitx) & Maskx);
+ s[3] = Tx | ((wc >> 1*Bitx) & Maskx);
+ s[4] = Tx | (wc & Maskx);
+ return 5;
+ }
+ if(wc & ~Wchar3) {
+ /* 4 bytes */
+ s[0] = T4 | (wc >> 3*Bitx);
+ s[1] = Tx | ((wc >> 2*Bitx) & Maskx);
+ s[2] = Tx | ((wc >> 1*Bitx) & Maskx);
+ s[3] = Tx | (wc & Maskx);
+ return 4;
+ }
+ /* 3 bytes */
+ s[0] = T3 | (wc >> 2*Bitx);
+ s[1] = Tx | ((wc >> 1*Bitx) & Maskx);
+ s[2] = Tx | (wc & Maskx);
+ return 3;
+ }
+ if(wc & ~Wchar1) {
+ /* 2 bytes */
+ s[0] = T2 | (wc >> 1*Bitx);
+ s[1] = Tx | (wc & Maskx);
+ return 2;
+ }
+ /* 1 byte */
+ s[0] = T1 | wc;
+ return 1;
+}
+
+int
+our_mbtowc(unsigned long *p, char *s, unsigned n)
+{
+ uchar *us;
+ int c0, c1, c2, c3, c4, c5;
+ unsigned long wc;
+
+ if(s == 0)
+ return 0; /* no shift states */
+
+ if(n < 1)
+ goto badlen;
+ us = (uchar*)s;
+ c0 = us[0];
+ if(c0 >= T3) {
+ if(n < 3)
+ goto badlen;
+ c1 = us[1] ^ Tx;
+ c2 = us[2] ^ Tx;
+ if((c1|c2) & T2)
+ goto bad;
+ if(c0 >= T5) {
+ if(n < 5)
+ goto badlen;
+ c3 = us[3] ^ Tx;
+ c4 = us[4] ^ Tx;
+ if((c3|c4) & T2)
+ goto bad;
+ if(c0 >= T6) {
+ /* 6 bytes */
+ if(n < 6)
+ goto badlen;
+ c5 = us[5] ^ Tx;
+ if(c5 & T2)
+ goto bad;
+ wc = ((((((((((c0 & Mask6) << Bitx) |
+ c1) << Bitx) | c2) << Bitx) |
+ c3) << Bitx) | c4) << Bitx) | c5;
+ if(wc <= Wchar5)
+ goto bad;
+ *p = wc;
+ return 6;
+ }
+ /* 5 bytes */
+ wc = ((((((((c0 & Mask5) << Bitx) |
+ c1) << Bitx) | c2) << Bitx) |
+ c3) << Bitx) | c4;
+ if(wc <= Wchar4)
+ goto bad;
+ *p = wc;
+ return 5;
+ }
+ if(c0 >= T4) {
+ /* 4 bytes */
+ if(n < 4)
+ goto badlen;
+ c3 = us[3] ^ Tx;
+ if(c3 & T2)
+ goto bad;
+ wc = ((((((c0 & Mask4) << Bitx) |
+ c1) << Bitx) | c2) << Bitx) |
+ c3;
+ if(wc <= Wchar3)
+ goto bad;
+ *p = wc;
+ return 4;
+ }
+ /* 3 bytes */
+ wc = ((((c0 & Mask3) << Bitx) |
+ c1) << Bitx) | c2;
+ if(wc <= Wchar2)
+ goto bad;
+ *p = wc;
+ return 3;
+ }
+ if(c0 >= T2) {
+ /* 2 bytes */
+ if(n < 2)
+ goto badlen;
+ c1 = us[1] ^ Tx;
+ if(c1 & T2)
+ goto bad;
+ wc = ((c0 & Mask2) << Bitx) |
+ c1;
+ if(wc <= Wchar1)
+ goto bad;
+ *p = wc;
+ return 2;
+ }
+ /* 1 byte */
+ if(c0 >= Tx)
+ goto bad;
+ *p = c0;
+ return 1;
+
+bad:
+ errno = EILSEQ;
+ return -1;
+badlen:
+ return -2;
+}