ultimatepp/uppsrc/Core/CharSet.cpp
cxl f2ccaa99ba Core: Added multiple 8-bit encoding by Mindtraveller (thanks!)
git-svn-id: svn://ultimatepp.org/upp/trunk@1574 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2009-09-17 17:29:13 +00:00

2969 lines
149 KiB
C++

#include <Core/Core.h>
NAMESPACE_UPP
#define LLOG(x) // LOG(x)
#define CUNDEF DEFAULTCHAR
word CHRTAB_ISO8859_1[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
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,
};
word CHRTAB_ISO8859_2[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7,
0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B,
0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7,
0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C,
0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9,
};
word CHRTAB_ISO8859_3[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, CUNDEF, 0x0124, 0x00A7,
0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, CUNDEF, 0x017B,
0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7,
0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, CUNDEF, 0x017C,
0x00C0, 0x00C1, 0x00C2, CUNDEF, 0x00C4, 0x010A, 0x0108, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
CUNDEF, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7,
0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF,
0x00E0, 0x00E1, 0x00E2, CUNDEF, 0x00E4, 0x010B, 0x0109, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
CUNDEF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9,
};
word CHRTAB_ISO8859_4[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0104, 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,
};
word CHRTAB_ISO8859_5[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 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,
};
word CHRTAB_ISO8859_6[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, CUNDEF, CUNDEF, CUNDEF, 0x00A4, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x060C, 0x00AD, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, 0x061B, CUNDEF, CUNDEF, CUNDEF, 0x061F,
CUNDEF, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F,
0x0650, 0x0651, 0x0652, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_ISO8859_7[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x2018, 0x2019, 0x00A3, CUNDEF, CUNDEF, 0x00A6, 0x00A7,
0x00A8, 0x00A9, CUNDEF, 0x00AB, 0x00AC, 0x00AD, CUNDEF, 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, CUNDEF, 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, CUNDEF,
};
word CHRTAB_ISO8859_8[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, CUNDEF, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 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, CUNDEF, CUNDEF, 0x200E, 0x200F, CUNDEF,
};
word CHRTAB_ISO8859_9[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF,
};
word CHRTAB_ISO8859_10[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7,
0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A,
0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7,
0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 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,
};
word CHRTAB_ISO8859_13[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7,
0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7,
0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019,
};
word CHRTAB_ISO8859_14[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7,
0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178,
0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56,
0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61,
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF,
};
word CHRTAB_ISO8859_15[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7,
0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7,
0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 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,
};
word CHRTAB_ISO8859_16[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0104, 0x0105, 0x0141, 0x20AC, 0x201E, 0x0160, 0x00A7,
0x0161, 0x00A9, 0x0218, 0x00AB, 0x0179, 0x00AD, 0x017A, 0x017B,
0x00B0, 0x00B1, 0x010C, 0x0142, 0x017D, 0x201D, 0x00B6, 0x00B7,
0x017E, 0x010D, 0x0219, 0x00BB, 0x0152, 0x0153, 0x0178, 0x017C,
0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0106, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
0x0110, 0x0143, 0x00D2, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x015A,
0x0170, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0118, 0x021A, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
0x0111, 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B,
0x0171, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF,
};
word CHRTAB_WIN1250[128] = {
0x20AC, CUNDEF, 0x201A, CUNDEF, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9,
};
word CHRTAB_WIN1251[128] = {
0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 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,
};
word CHRTAB_WIN1252[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, CUNDEF, 0x017D, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, CUNDEF, 0x017E, 0x0178,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF,
};
word CHRTAB_WIN1253[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, CUNDEF, 0x2039, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, CUNDEF, 0x203A, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, CUNDEF, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 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, CUNDEF, 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, CUNDEF,
};
word CHRTAB_WIN1254[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, CUNDEF, CUNDEF, 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,
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,
};
word CHRTAB_WIN1255[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, CUNDEF, 0x2039, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, CUNDEF, 0x203A, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
0x05B8, 0x05B9, CUNDEF, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3,
0x05F4, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
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, CUNDEF, CUNDEF, 0x200E, 0x200F, CUNDEF,
};
word CHRTAB_WIN1256[128] = {
0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,
0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,
0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643,
0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,
0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,
0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2,
};
word CHRTAB_WIN1257[128] = {
0x20AC, CUNDEF, 0x201A, CUNDEF, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, CUNDEF, 0x2039, CUNDEF, 0x00A8, 0x02C7, 0x00B8,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, CUNDEF, 0x203A, CUNDEF, 0x00AF, 0x02DB, CUNDEF,
0x00A0, CUNDEF, 0x00A2, 0x00A3, 0x00A4, CUNDEF, 0x00A6, 0x00A7,
0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9,
};
word CHRTAB_WIN1258[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, CUNDEF, 0x2039, 0x0152, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, CUNDEF, 0x203A, 0x0153, CUNDEF, CUNDEF, 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, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF,
};
word CHRTAB_KOI8_R[128] = {
0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
0x2264, 0x2265, CUNDEF, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E,
0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
};
word CHRTAB_CP850[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE,
0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0
};
word CHRTAB_CP852[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7,
0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106,
0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A,
0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E,
0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A,
0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE,
0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580,
0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,
0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4,
0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8,
0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0,
};
word CHRTAB_MJK[128] = {
0x010c, 0x00fc, 0x00e9, 0x010f, 0x00e4, 0x010e, 0x0164, 0x010d,
0x011b, 0x011a, 0x0139, 0x00cd, 0x013e, 0x013a, 0x00c4, 0x00c1,
0x00c9, 0x017e, 0x017d, 0x00f4, 0x00f6, 0x00d3, 0x016f, 0x00da,
0x00fd, 0x00d6, 0x00dc, 0x0160, 0x013d, 0x00dd, 0x0158, 0x0165,
0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0148, 0x0147, 0x016e, 0x00d4,
0x0161, 0x0159, 0x0155, 0x0154, 0x00ac, 0x00a7, 0x00bb, 0x00ab,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_ARMSCII_8[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, CUNDEF, 0x0587, 0x0589, 0x0029, 0x0028, 0x00BB, 0x00AB,
0x2014, 0x002E, 0x055D, 0x002C, 0x002D, 0x058A, 0x2026, 0x055C,
0x055B, 0x055E, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
0x0538, 0x0568, 0x0539, 0x0569, 0x053A, 0x056A, 0x053B, 0x056B,
0x053C, 0x056C, 0x053D, 0x056D, 0x053E, 0x056E, 0x053F, 0x056F,
0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
0x0548, 0x0578, 0x0549, 0x0579, 0x054A, 0x057A, 0x054B, 0x057B,
0x054C, 0x057C, 0x054D, 0x057D, 0x054E, 0x057E, 0x054F, 0x057F,
0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055A, CUNDEF,
};
word CHRTAB_CP1046[128] = {
0xFE88, 0x00D7, 0x00F7, 0xF8F6, 0xF8F5, 0xF8F4, 0xF8F7, 0xFE71,
0x0088, 0x25A0, 0x2502, 0x2500, 0x2510, 0x250C, 0x2514, 0x2518,
0xFE79, 0xFE7B, 0xFE7D, 0xFE7F, 0xFE77, 0xFE8A, 0xFEF0, 0xFEF3,
0xFEF2, 0xFECE, 0xFECF, 0xFED0, 0xFEF6, 0xFEF8, 0xFEFA, 0xFEFC,
0x00A0, 0xF8FA, 0xF8F9, 0xF8F8, 0x00A4, 0xF8FB, 0xFE8B, 0xFE91,
0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0x060C, 0x00AD, 0xFEA7, 0xFEB3,
0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
0x0668, 0x0669, 0xFEB7, 0x061B, 0xFEBB, 0xFEBF, 0xFECA, 0x061F,
0xFECB, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
0xFEC7, 0x0639, 0x063A, 0xFECC, 0xFE82, 0xFE84, 0xFE8E, 0xFED3,
0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F,
0x0650, 0x0651, 0x0652, 0xFED7, 0xFEDB, 0xFEDF, 0xF8FC, 0xFEF5,
0xFEF7, 0xFEF9, 0xFEFB, 0xFEE3, 0xFEE7, 0xFEEC, 0xFEE9, CUNDEF,
};
word CHRTAB_CP1124[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0401, 0x0402, 0x0490, 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, 0x0491, 0x0454, 0x0455, 0x0456, 0x0457,
0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F,
};
word CHRTAB_CP1125[128] = {
0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
0x0401, 0x0451, 0x0490, 0x0491, 0x0404, 0x0454, 0x0406, 0x0456,
0x0407, 0x0457, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0,
};
word CHRTAB_CP1129[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x0153, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0178, 0x00B5, 0x00B6, 0x00B7,
0x0152, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF,
};
word CHRTAB_CP1133[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0E81, 0x0E82, 0x0E84, 0x0E87, 0x0E88, 0x0EAA, 0x0E8A,
0x0E8D, 0x0E94, 0x0E95, 0x0E96, 0x0E97, 0x0E99, 0x0E9A, 0x0E9B,
0x0E9C, 0x0E9D, 0x0E9E, 0x0E9F, 0x0EA1, 0x0EA2, 0x0EA3, 0x0EA5,
0x0EA7, 0x0EAB, 0x0EAD, 0x0EAE, CUNDEF, CUNDEF, CUNDEF, 0x0EAF,
0x0EB0, 0x0EB2, 0x0EB3, 0x0EB4, 0x0EB5, 0x0EB6, 0x0EB7, 0x0EB8,
0x0EB9, 0x0EBC, 0x0EB1, 0x0EBB, 0x0EBD, CUNDEF, CUNDEF, CUNDEF,
0x0EC0, 0x0EC1, 0x0EC2, 0x0EC3, 0x0EC4, 0x0EC8, 0x0EC9, 0x0ECA,
0x0ECB, 0x0ECC, 0x0ECD, 0x0EC6, CUNDEF, 0x0EDC, 0x0EDD, 0x20AD,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x0ED0, 0x0ED1, 0x0ED2, 0x0ED3, 0x0ED4, 0x0ED5, 0x0ED6, 0x0ED7,
0x0ED8, 0x0ED9, CUNDEF, CUNDEF, 0x00A2, 0x00AC, 0x00A6, CUNDEF,
};
word CHRTAB_CP1161[128] = {
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x0E48, 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, 0x0E49, 0x0E4A, 0x0E4B, 0x20AC, 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, 0x00A2, 0x00AC, 0x00A6, 0x00A0,
};
word CHRTAB_CP1162[128] = {
0x20AC, 0x0081, 0x0082, 0x0083, 0x0084, 0x2026, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_CP1163[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x00A6, 0x00A7,
0x0153, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0178, 0x00B5, 0x00B6, 0x00B7,
0x0152, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF,
};
word CHRTAB_CP1250[128] = {
0x20AC, CUNDEF, 0x201A, CUNDEF, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9,
};
word CHRTAB_CP1251[128] = {
0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 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,
};
word CHRTAB_CP1252[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, CUNDEF, 0x017D, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, CUNDEF, 0x017E, 0x0178,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF,
};
word CHRTAB_CP1253[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, CUNDEF, 0x2039, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, CUNDEF, 0x203A, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, CUNDEF, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 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, CUNDEF, 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, CUNDEF,
};
word CHRTAB_CP1254[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, CUNDEF, CUNDEF, 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,
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,
};
word CHRTAB_CP1255[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, CUNDEF, 0x2039, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, CUNDEF, 0x203A, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
0x05B8, 0x05B9, CUNDEF, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3,
0x05F4, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
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, CUNDEF, CUNDEF, 0x200E, 0x200F, CUNDEF,
};
word CHRTAB_CP1256[128] = {
0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,
0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,
0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643,
0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,
0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,
0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2,
};
word CHRTAB_CP1257[128] = {
0x20AC, CUNDEF, 0x201A, CUNDEF, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, CUNDEF, 0x2039, CUNDEF, 0x00A8, 0x02C7, 0x00B8,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, CUNDEF, 0x203A, CUNDEF, 0x00AF, 0x02DB, CUNDEF,
0x00A0, CUNDEF, 0x00A2, 0x00A3, 0x00A4, CUNDEF, 0x00A6, 0x00A7,
0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9,
};
word CHRTAB_CP1258[128] = {
0x20AC, CUNDEF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, CUNDEF, 0x2039, 0x0152, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, CUNDEF, 0x203A, 0x0153, CUNDEF, CUNDEF, 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, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF,
};
word CHRTAB_CP437[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
0x00FF, 0x00D6, 0x00DC, 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,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP737[128] = {
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, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD,
0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E,
0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP775[128] = {
0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107,
0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A,
0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4,
0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6,
0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118,
0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D,
0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B,
0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144,
0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019,
0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E,
0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP853[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x0109, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x0108,
0x00C9, 0x010B, 0x010A, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
0x0130, 0x00D6, 0x00DC, 0x011D, 0x00A3, 0x011C, 0x00D7, 0x0135,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F,
0x0124, 0x0125, CUNDEF, 0x00BD, 0x0134, 0x015F, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x015C, 0x015D,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
CUNDEF, CUNDEF, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE,
0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, CUNDEF, 0x00CC, 0x2580,
0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x0120, 0x0121, 0x00B5, 0x0126,
0x0127, 0x00DA, 0x00DB, 0x00D9, 0x016C, 0x016D, CUNDEF, 0x00B4,
0x00AD, CUNDEF, 0x2113, 0x0149, 0x02D8, 0x00A7, 0x00F7, 0x00B8,
0x00B0, 0x00A8, 0x02D9, CUNDEF, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP855[128] = {
0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,
0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,
0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C,
0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A,
0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,
0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,
0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E,
0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580,
0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,
0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116,
0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D,
0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0,
};
word CHRTAB_CP856[128] = {
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, CUNDEF, 0x00A3, CUNDEF, 0x00D7, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, CUNDEF, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, CUNDEF, CUNDEF, CUNDEF,
0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, CUNDEF, CUNDEF,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, CUNDEF, 0x2580,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x00B5, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x00AF, 0x00B4,
0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP857[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F,
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,
0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, CUNDEF, 0x00CD, 0x00CE,
0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, CUNDEF,
0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4,
0x00AD, 0x00B1, CUNDEF, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP858[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x20AC, 0x00CD, 0x00CE,
0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP860[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7,
0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2,
0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9,
0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP861[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD,
0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA,
0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP862[128] = {
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, 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,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP863[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x2017, 0x00C0, 0x00A7,
0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9,
0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192,
0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF,
0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP864[128] = {
0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C,
0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518,
0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB,
0x00BB, 0xFEF7, 0xFEF8, CUNDEF, CUNDEF, 0xFEFB, 0xFEFC, CUNDEF,
0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, CUNDEF, CUNDEF,
0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5,
0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F,
0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D,
0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9,
0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1,
0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9,
0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB,
0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1,
0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0,
0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, CUNDEF,
};
word CHRTAB_CP865[128] = {
0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192,
0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
};
word CHRTAB_CP866[128] = {
0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E,
0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0,
};
word CHRTAB_CP869[128] = {
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x0386, CUNDEF,
0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389,
0x038A, 0x03AA, 0x038C, CUNDEF, CUNDEF, 0x038E, 0x03AB, 0x00A9,
0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF,
0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394,
0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB,
0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C,
0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510,
0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1,
0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3,
0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2,
0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580,
0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD,
0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384,
0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385,
0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0,
};
word CHRTAB_CP874[128] = {
0x20AC, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x2026, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x00A0, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_CP922[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E,
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,
0x0160, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x017D, 0x00DF,
0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
0x0161, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x017E, 0x00FF,
};
word CHRTAB_GEORGIAN_ACADEMY[128] = {
0x0080, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008D, 0x008E, 0x008F,
0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x009D, 0x009E, 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,
0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10D7,
0x10D8, 0x10D9, 0x10DA, 0x10DB, 0x10DC, 0x10DD, 0x10DE, 0x10DF,
0x10E0, 0x10E1, 0x10E2, 0x10E3, 0x10E4, 0x10E5, 0x10E6, 0x10E7,
0x10E8, 0x10E9, 0x10EA, 0x10EB, 0x10EC, 0x10ED, 0x10EE, 0x10EF,
0x10F0, 0x10F1, 0x10F2, 0x10F3, 0x10F4, 0x10F5, 0x10F6, 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,
};
word CHRTAB_GEORGIAN_PS[128] = {
0x0080, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008D, 0x008E, 0x008F,
0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x009D, 0x009E, 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,
0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10F1,
0x10D7, 0x10D8, 0x10D9, 0x10DA, 0x10DB, 0x10DC, 0x10F2, 0x10DD,
0x10DE, 0x10DF, 0x10E0, 0x10E1, 0x10E2, 0x10F3, 0x10E3, 0x10E4,
0x10E5, 0x10E6, 0x10E7, 0x10E8, 0x10E9, 0x10EA, 0x10EB, 0x10EC,
0x10ED, 0x10EE, 0x10F4, 0x10EF, 0x10F0, 0x10F5, 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,
};
word CHRTAB_HP_ROMAN8[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x00C0, 0x00C2, 0x00C8, 0x00CA, 0x00CB, 0x00CE, 0x00CF,
0x00B4, 0x02CB, 0x02C6, 0x00A8, 0x02DC, 0x00D9, 0x00DB, 0x20A4,
0x00AF, 0x00DD, 0x00FD, 0x00B0, 0x00C7, 0x00E7, 0x00D1, 0x00F1,
0x00A1, 0x00BF, 0x00A4, 0x00A3, 0x00A5, 0x00A7, 0x0192, 0x00A2,
0x00E2, 0x00EA, 0x00F4, 0x00FB, 0x00E1, 0x00E9, 0x00F3, 0x00FA,
0x00E0, 0x00E8, 0x00F2, 0x00F9, 0x00E4, 0x00EB, 0x00F6, 0x00FC,
0x00C5, 0x00EE, 0x00D8, 0x00C6, 0x00E5, 0x00ED, 0x00F8, 0x00E6,
0x00C4, 0x00EC, 0x00D6, 0x00DC, 0x00C9, 0x00EF, 0x00DF, 0x00D4,
0x00C1, 0x00C3, 0x00E3, 0x00D0, 0x00F0, 0x00CD, 0x00CC, 0x00D3,
0x00D2, 0x00D5, 0x00F5, 0x0160, 0x0161, 0x00DA, 0x0178, 0x00FF,
0x00DE, 0x00FE, 0x00B7, 0x00B5, 0x00B6, 0x00BE, 0x2014, 0x00BC,
0x00BD, 0x00AA, 0x00BA, 0x00AB, 0x25A0, 0x00BB, 0x00B1, CUNDEF,
};
word CHRTAB_JIS_X0201[128] = {
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67,
0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F,
0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77,
0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F,
0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85, 0xFF86, 0xFF87,
0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F,
0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 0xFF97,
0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_KOI8_RU[128] = {
0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x045E, 0x255E,
0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x040E, 0x00A9,
0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
};
word CHRTAB_KOI8_T[128] = {
0x049B, 0x0493, 0x201A, 0x0492, 0x201E, 0x2026, 0x2020, 0x2021,
CUNDEF, 0x2030, 0x04B3, 0x2039, 0x04B2, 0x04B7, 0x04B6, CUNDEF,
0x049A, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
CUNDEF, 0x2122, CUNDEF, 0x203A, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x04EF, 0x04EE, 0x0451, 0x00A4, 0x04E3, 0x00A6, 0x00A7,
CUNDEF, CUNDEF, CUNDEF, 0x00AB, 0x00AC, 0x00AD, 0x00AE, CUNDEF,
0x00B0, 0x00B1, 0x00B2, 0x0401, CUNDEF, 0x04E2, 0x00B6, 0x00B7,
CUNDEF, 0x2116, CUNDEF, 0x00BB, CUNDEF, CUNDEF, CUNDEF, 0x00A9,
0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
};
word CHRTAB_KOI8_U[128] = {
0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E,
0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9,
0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
};
word CHRTAB_MACARABIC[128] = {
0x00C4, 0x00A0, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
0x00E0, 0x00E2, 0x00E4, 0x06BA, 0x00AB, 0x00E7, 0x00E9, 0x00E8,
0x00EA, 0x00EB, 0x00ED, 0x2026, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
0x00BB, 0x00F4, 0x00F6, 0x00F7, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x066A, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x060C, CUNDEF, CUNDEF, CUNDEF,
0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
0x0668, 0x0669, CUNDEF, 0x061B, CUNDEF, CUNDEF, CUNDEF, 0x061F,
0x066D, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F,
0x0650, 0x0651, 0x0652, 0x067E, 0x0679, 0x0686, 0x06D5, 0x06A4,
0x06AF, 0x0688, 0x0691, CUNDEF, CUNDEF, CUNDEF, 0x0698, 0x06D2,
};
word CHRTAB_MACCENTRALEUROPE[128] = {
0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1,
0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179,
0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3,
0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC,
0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E,
0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211,
0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145,
0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB,
0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C,
0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156,
0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1,
0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4,
0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173,
0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7,
};
word CHRTAB_MACCROATIAN[128] = {
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, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8,
0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211,
0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x2126, 0x017E, 0x00F8,
0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB,
0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
CUNDEF, 0x00A9, 0x2044, 0x00A4, 0x2039, 0x203A, 0x00C6, 0x00BB,
0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1,
0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7,
};
word CHRTAB_MACCYRILLIC[128] = {
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,
0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406,
0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453,
0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x2202, 0x0408,
0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A,
0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455,
0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E,
0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F,
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, 0x00A4,
};
word CHRTAB_MACGREEK[128] = {
0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385,
0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8,
0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD,
0x2030, 0x00F4, 0x00F6, 0x00A6, 0x00AD, 0x00F9, 0x00FB, 0x00FC,
0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF,
0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x0387,
0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396,
0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9,
0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB,
0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153,
0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389,
0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F,
0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3,
0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF,
0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2,
0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, CUNDEF,
};
word CHRTAB_MACHEBREW[128] = {
0x00C4, 0xFB1F, 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,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x20AA, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 0x201E, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x05BC, 0xFB4B,
0xFB35, 0x2026, 0x00A0, 0x05B8, 0x05B7, 0x05B5, 0x05B6, 0x05B4,
0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0xFB2A, 0xFB2B,
0x05BF, 0x05B0, 0x05B2, 0x05B1, 0x05BB, 0x05B9, CUNDEF, 0x05B3,
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, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_MACICELAND[128] = {
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,
0x00DD, 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, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
0x00FF, 0x0178, 0x2044, 0x00A4, 0x00D0, 0x00F0, 0x00DE, 0x00FE,
0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
CUNDEF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
};
word CHRTAB_MACROMAN[128] = {
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, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02,
0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
CUNDEF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
};
word CHRTAB_MACROMANIA[128] = {
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, 0x0102, 0x015E,
0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x2126, 0x0103, 0x015F,
0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0x0162, 0x0163,
0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
CUNDEF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
};
word CHRTAB_MACTHAI[128] = {
0x00AB, 0x00BB, 0x2026, 0xF88C, 0xF88F, 0xF892, 0xF895, 0xF898,
0xF88B, 0xF88E, 0xF891, 0xF894, 0xF897, 0x201C, 0x201D, 0xF899,
CUNDEF, 0x2022, 0xF884, 0xF889, 0xF885, 0xF886, 0xF887, 0xF888,
0xF88A, 0xF88D, 0xF890, 0xF893, 0xF896, 0x2018, 0x2019, CUNDEF,
0x00A0, 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, 0xFEFF, 0x200B, 0x2013, 0x2014, 0x0E3F,
0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47,
0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x2122, 0x0E4F,
0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57,
0x0E58, 0x0E59, 0x00AE, 0x00A9, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_MACTURKISH[128] = {
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, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F,
0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
CUNDEF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, CUNDEF, 0x02C6, 0x02DC,
0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
};
word CHRTAB_MACUKRAINE[128] = {
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,
0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406,
0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453,
0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408,
0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A,
0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455,
0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E,
0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F,
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, 0x00A4,
};
word CHRTAB_MULELAO_1[128] = {
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
0x00A0, 0x0E81, 0x0E82, CUNDEF, 0x0E84, CUNDEF, CUNDEF, 0x0E87,
0x0E88, CUNDEF, 0x0E8A, CUNDEF, CUNDEF, 0x0E8D, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, 0x0E94, 0x0E95, 0x0E96, 0x0E97,
CUNDEF, 0x0E99, 0x0E9A, 0x0E9B, 0x0E9C, 0x0E9D, 0x0E9E, 0x0E9F,
CUNDEF, 0x0EA1, 0x0EA2, 0x0EA3, CUNDEF, 0x0EA5, CUNDEF, 0x0EA7,
CUNDEF, CUNDEF, 0x0EAA, 0x0EAB, CUNDEF, 0x0EAD, 0x0EAE, 0x0EAF,
0x0EB0, 0x0EB1, 0x0EB2, 0x0EB3, 0x0EB4, 0x0EB5, 0x0EB6, 0x0EB7,
0x0EB8, 0x0EB9, CUNDEF, 0x0EBB, 0x0EBC, 0x0EBD, CUNDEF, CUNDEF,
0x0EC0, 0x0EC1, 0x0EC2, 0x0EC3, 0x0EC4, CUNDEF, 0x0EC6, CUNDEF,
0x0EC8, 0x0EC9, 0x0ECA, 0x0ECB, 0x0ECC, 0x0ECD, CUNDEF, CUNDEF,
0x0ED0, 0x0ED1, 0x0ED2, 0x0ED3, 0x0ED4, 0x0ED5, 0x0ED6, 0x0ED7,
0x0ED8, 0x0ED9, CUNDEF, CUNDEF, 0x0EDC, 0x0EDD, CUNDEF, CUNDEF,
};
word CHRTAB_NEXTSTEP[128] = {
0x00A0, 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, 0x203A, 0xFB01, 0xFB02,
0x00AE, 0x2013, 0x2020, 0x2021, 0x00B7, 0x00A6, 0x00B6, 0x2022,
0x201A, 0x201E, 0x201D, 0x00BB, 0x2026, 0x2030, 0x00AC, 0x00BF,
0x00B9, 0x02CB, 0x00B4, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9,
0x00A8, 0x00B2, 0x02DA, 0x00B8, 0x00B3, 0x02DD, 0x02DB, 0x02C7,
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, CUNDEF, CUNDEF,
};
word CHRTAB_RISCOS_LATIN1[128] = {
0x221A, 0x0174, 0x0175, 0x0083, 0x2573, 0x0176, 0x0177, 0x0087,
0x21E6, 0x21E8, 0x21E9, 0x21E7, 0x2026, 0x2122, 0x2030, 0x2022,
0x2018, 0x2019, 0x2039, 0x203A, 0x201C, 0x201D, 0x201E, 0x2013,
0x2014, 0x2212, 0x0152, 0x0153, 0x2020, 0x2021, 0xFB01, 0xFB02,
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,
};
word CHRTAB_TCVN[128] = {
0x00C0, 0x1EA2, 0x00C3, 0x00C1, 0x1EA0, 0x1EB6, 0x1EAC, 0x00C8,
0x1EBA, 0x1EBC, 0x00C9, 0x1EB8, 0x1EC6, 0x00CC, 0x1EC8, 0x0128,
0x00CD, 0x1ECA, 0x00D2, 0x1ECE, 0x00D5, 0x00D3, 0x1ECC, 0x1ED8,
0x1EDC, 0x1EDE, 0x1EE0, 0x1EDA, 0x1EE2, 0x00D9, 0x1EE6, 0x0168,
0x00A0, 0x0102, 0x00C2, 0x00CA, 0x00D4, 0x01A0, 0x01AF, 0x0110,
0x0103, 0x00E2, 0x00EA, 0x00F4, 0x01A1, 0x01B0, 0x0111, 0x1EB0,
0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0x00E0, 0x1EA3, 0x00E3,
0x00E1, 0x1EA1, 0x1EB2, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EAF, 0x1EB4,
0x1EAE, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EA4, 0x1EC0, 0x1EB7, 0x1EA7,
0x1EA9, 0x1EAB, 0x1EA5, 0x1EAD, 0x00E8, 0x1EC2, 0x1EBB, 0x1EBD,
0x00E9, 0x1EB9, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EBF, 0x1EC7, 0x00EC,
0x1EC9, 0x1EC4, 0x1EBE, 0x1ED2, 0x0129, 0x00ED, 0x1ECB, 0x00F2,
0x1ED4, 0x1ECF, 0x00F5, 0x00F3, 0x1ECD, 0x1ED3, 0x1ED5, 0x1ED7,
0x1ED1, 0x1ED9, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EDB, 0x1EE3, 0x00F9,
0x1ED6, 0x1EE7, 0x0169, 0x00FA, 0x1EE5, 0x1EEB, 0x1EED, 0x1EEF,
0x1EE9, 0x1EF1, 0x1EF3, 0x1EF7, 0x1EF9, 0x00FD, 0x1EF5, 0x1ED0,
};
word CHRTAB_TIS_620[128] = {
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF, 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, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
word CHRTAB_VISCII[128] = {
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,
};
dword uni__info[2048] = {
0x00000000,0x00400801,0x00801002,0x00c01803,0x01002004,0x01402805,0x01803006,0x01c03807,
0x02004008,0x02404809,0x0280500a,0x02c0580b,0x0300600c,0x0340680d,0x0380700e,0x03c0780f,
0x04008010,0x04408811,0x04809012,0x04c09813,0x0500a014,0x0540a815,0x0580b016,0x05c0b817,
0x0600c018,0x0640c819,0x0680d01a,0x06c0d81b,0x0700e01c,0x0740e81d,0x0780f01e,0x07c0f81f,
0x08010020,0x08410821,0x08811022,0x08c11823,0x09012024,0x09412825,0x09813026,0x09c13827,
0x0a014028,0x0a414829,0x0a81502a,0x0ac1582b,0x0b01602c,0x0b41682d,0x0b81702e,0x0bc1782f,
0x0c018030,0x0c418831,0x0c819032,0x0cc19833,0x0d01a034,0x0d41a835,0x0d81b036,0x0dc1b837,
0x0e01c038,0x0e41c839,0x0e81d03a,0x0ec1d83b,0x0f01e03c,0x0f41e83d,0x0f81f03e,0x0fc1f83f,
0x10020040,0x50420861,0x50821062,0x50c21863,0x51022064,0x51422865,0x51823066,0x51c23867,
0x52024068,0x52424869,0x5282506a,0x52c2586b,0x5302606c,0x5342686d,0x5382706e,0x53c2786f,
0x54028070,0x54428871,0x54829072,0x54c29873,0x5502a074,0x5542a875,0x5582b076,0x55c2b877,
0x5602c078,0x5642c879,0x5682d07a,0x16c2d85b,0x1702e05c,0x1742e85d,0x1782f05e,0x17c2f85f,
0x18030060,0x98420861,0x98821062,0x98c21863,0x99022064,0x99422865,0x99823066,0x99c23867,
0x9a024068,0x9a424869,0x9a82506a,0x9ac2586b,0x9b02606c,0x9b42686d,0x9b82706e,0x9bc2786f,
0x9c028070,0x9c428871,0x9c829072,0x9cc29873,0x9d02a074,0x9d42a875,0x9d82b076,0x9dc2b877,
0x9e02c078,0x9e42c879,0x9e82d07a,0x1ec3d87b,0x1f03e07c,0x1f43e87d,0x1f83f07e,0x1fc3f87f,
0x00040080,0x00040881,0x00041082,0x00041883,0x00042084,0x00042885,0x00043086,0x00043887,
0x00044088,0x00044889,0x0004508a,0x0004588b,0x0004608c,0x0004688d,0x0004708e,0x0004788f,
0x00048090,0x00048891,0x00049092,0x00049893,0x0004a094,0x0004a895,0x0004b096,0x0004b897,
0x0004c098,0x0004c899,0x0004d09a,0x0004d89b,0x0004e09c,0x0004e89d,0x0004f09e,0x0004f89f,
0x000500a0,0x000508a1,0x000510a2,0x000518a3,0x000520a4,0x000528a5,0x000530a6,0x000538a7,
0x000540a8,0x000548a9,0x800550aa,0x000558ab,0x000560ac,0x000568ad,0x000570ae,0x000578af,
0x000580b0,0x000588b1,0x000590b2,0x000598b3,0x0005a0b4,0x801ce0b5,0x0005b0b6,0x0005b8b7,
0x0005c0b8,0x0005c8b9,0x8005d0ba,0x0005d8bb,0x0005e0bc,0x0005e8bd,0x0005f0be,0x0005f8bf,
0x504600e0,0x504608e1,0x504610e2,0x504618e3,0x504620e4,0x504628e5,0x504630e6,0x50c638e7,
0x514640e8,0x514648e9,0x514650ea,0x514658eb,0x524660ec,0x524668ed,0x524670ee,0x524678ef,
0x514680f0,0x538688f1,0x53c690f2,0x53c698f3,0x53c6a0f4,0x53c6a8f5,0x53c6b0f6,0x0006b8d7,
0x53c6c0f8,0x5546c8f9,0x5546d0fa,0x5546d8fb,0x5546e0fc,0x5646e8fd,0x5506f0fe,0x9cc6f8df,
0x984600e0,0x984608e1,0x984610e2,0x984618e3,0x984620e4,0x984628e5,0x984630e6,0x98c638e7,
0x994640e8,0x994648e9,0x994650ea,0x994658eb,0x9a4660ec,0x9a4668ed,0x9a4670ee,0x9a4678ef,
0x994680f0,0x9b8688f1,0x9bc690f2,0x9bc698f3,0x9bc6a0f4,0x9bc6a8f5,0x9bc6b0f6,0x0007b8f7,
0x9bc6c0f8,0x9d46c8f9,0x9d46d0fa,0x9d46d8fb,0x9d46e0fc,0x9e46e8fd,0x9d06f0fe,0x9e4bc0ff,
0x50480101,0x98480101,0x50481103,0x98481103,0x50482105,0x98482105,0x50c83107,0x98c83107,
0x50c84109,0x98c84109,0x50c8510b,0x98c8510b,0x50c8610d,0x98c8610d,0x5108710f,0x9908710f,
0x51088111,0x99088111,0x51489113,0x99489113,0x5148a115,0x9948a115,0x5148b117,0x9948b117,
0x5148c119,0x9948c119,0x5148d11b,0x9948d11b,0x51c8e11d,0x99c8e11d,0x51c8f11f,0x99c8f11f,
0x51c90121,0x99c90121,0x51c91123,0x99c91123,0x52092125,0x9a092125,0x52093127,0x9a093127,
0x52494129,0x9a494129,0x5249512b,0x9a49512b,0x5249612d,0x9a49612d,0x5249712f,0x9a49712f,
0x52498069,0x99024931,0x40099133,0x80099133,0x5289a135,0x9a89a135,0x52c9b137,0x9ac9b137,
0x9ac9c138,0x5309c93a,0x9b09c93a,0x5309d93c,0x9b09d93c,0x5309e93e,0x9b09e93e,0x5309f940,
0x9b09f940,0x530a0942,0x9b0a0942,0x538a1944,0x9b8a1944,0x538a2946,0x9b8a2946,0x538a3948,
0x9b8a3948,0x9b8a4949,0x514a514b,0x994a514b,0x53ca614d,0x9bca614d,0x53ca714f,0x9bca714f,
0x53ca8151,0x9bca8151,0x400a9153,0x800a9153,0x548aa155,0x9c8aa155,0x548ab157,0x9c8ab157,
0x548ac159,0x9c8ac159,0x54cad15b,0x9ccad15b,0x54cae15d,0x9ccae15d,0x54caf15f,0x9ccaf15f,
0x54cb0161,0x9ccb0161,0x550b1163,0x9d0b1163,0x550b2165,0x9d0b2165,0x550b3167,0x9d0b3167,
0x554b4169,0x9d4b4169,0x554b516b,0x9d4b516b,0x554b616d,0x9d4b616d,0x554b716f,0x9d4b716f,
0x554b8171,0x9d4b8171,0x554b9173,0x9d4b9173,0x55cba175,0x9dcba175,0x564bb177,0x9e4bb177,
0x564bc0ff,0x568bc97a,0x9e8bc97a,0x568bd97c,0x9e8bd97c,0x568be97e,0x9e8be97e,0x9b02997f,
0x988c0180,0x508c0a53,0x508c1183,0x988c1183,0x550c2185,0x9d0c2185,0x53cc3254,0x50cc3988,
0x98cc3988,0x504c4a56,0x510c5257,0x510c598c,0x990c598c,0x9d0c698d,0x548c71dd,0x54cc7a59,
0x53cc825b,0x518c8992,0x998c8992,0x51cc9a60,0x51cca263,0x9a0fb195,0x524cb269,0x524cba68,
0x52ccc199,0x9accc199,0x9b0cd19a,0x9b0cd99b,0x550ce26f,0x538cea72,0x9b91019e,0x53ccfa75,
0x53cd01a1,0x9bcd01a1,0x53cd11a3,0x9bcd11a3,0x540d21a5,0x9c0d21a5,0x400d3280,0x550d39a8,
0x9d0d39a8,0x514d4a83,0x800d51aa,0x9d0d59ab,0x550d61ad,0x9d0d61ad,0x550d7288,0x554d79b0,
0x9d4d79b0,0x554d8a8a,0x558d928b,0x564d99b4,0x9e4d99b4,0x568da9b6,0x9e8da9b6,0x514dba92,
0x514dc1b9,0x994dc1b9,0x994dd1ba,0x000dd9bb,0x550de1bd,0x9d0de1bd,0x800df1be,0x800fb9bf,
0x000e01c0,0x000e09c1,0x000e11c2,0x000e19c3,0x510e21c6,0x110e29c5,0x990e21c6,0x530e39c9,
0x130e41c8,0x9b0e39c9,0x538e51cc,0x138e59cb,0x9b8e51cc,0x504e69ce,0x984e69ce,0x524e79d0,
0x9a4e79d0,0x53ce89d2,0x9bce89d2,0x554e99d4,0x9d4e99d4,0x554ea9d6,0x9d4ea9d6,0x554eb9d8,
0x9d4eb9d8,0x554ec9da,0x9d4ec9da,0x554ed9dc,0x9d4ed9dc,0x9d0c71dd,0x504ef1df,0x984ef1df,
0x504f01e1,0x984f01e1,0x504f11e3,0x984f11e3,0x51cf21e5,0x99cf21e5,0x51cf31e7,0x99cf31e7,
0x52cf41e9,0x9acf41e9,0x53cf51eb,0x9bcf51eb,0x53cf61ed,0x9bcf61ed,0x514f71ef,0x994f71ef,
0x9a8f81f0,0x510f89f3,0x110f91f2,0x990f89f3,0x51cfa1f5,0x99cfa1f5,0x520fb195,0x55cfb9bf,
0x538fc1f9,0x9b8fc1f9,0x504fd1fb,0x984fd1fb,0x504fe1fd,0x984fe1fd,0x53cff1ff,0x9bcff1ff,
0x50500201,0x98500201,0x50501203,0x98501203,0x51502205,0x99502205,0x51503207,0x99503207,
0x52504209,0x9a504209,0x5250520b,0x9a50520b,0x53d0620d,0x9bd0620d,0x53d0720f,0x9bd0720f,
0x54908211,0x9c908211,0x54909213,0x9c909213,0x5550a215,0x9d50a215,0x5550b217,0x9d50b217,
0x54d0c219,0x9cd0c219,0x5510d21b,0x9d10d21b,0x5650e21d,0x9e50e21d,0x5210f21f,0x9a10f21f,
0x5391019e,0x00110a21,0x53d11223,0x9bd11223,0x56912225,0x9e912225,0x50513227,0x98513227,
0x51514229,0x99514229,0x53d1522b,0x9bd1522b,0x53d1622d,0x9bd1622d,0x53d1722f,0x9bd1722f,
0x53d18231,0x9bd18231,0x56519233,0x9e519233,0x0011a234,0x0011aa35,0x0011b236,0x0011ba37,
0x0011c238,0x0011ca39,0x0011d23a,0x0011da3b,0x0011e23c,0x0011ea3d,0x0011f23e,0x0011fa3f,
0x00120240,0x00120a41,0x00121242,0x00121a43,0x00122244,0x00122a45,0x00123246,0x00123a47,
0x00124248,0x00124a49,0x0012524a,0x00125a4b,0x0012624c,0x00126a4d,0x0012724e,0x00127a4f,
0x9d128250,0x98528a51,0x9d129252,0x988c0a53,0x9bcc3254,0x98d2aa55,0x990c4a56,0x990c5257,
0x9c92c258,0x9ccc7a59,0x9cd2d25a,0x9bcc825b,0x9c92e25c,0x9c92ea5d,0x98d2f25e,0x9912fa5f,
0x99cc9a60,0x9cd30a61,0x80131262,0x99cca263,0x9c932264,0x9d132a65,0x9a133266,0x9a133a67,
0x9a4cba68,0x9a4cb269,0x8013526a,0x9b135a6b,0x9b13626c,0x9b136a6d,0x9b13726e,0x9d0ce26f,
0x9d138270,0x9b538a71,0x9b8cea72,0x9b939a73,0x8013a274,0x988cfa75,0x8013b276,0x98d3ba77,
0x9c13c278,0x9d13ca79,0x9d13d27a,0x9d13da7b,0x9c93e27c,0x9c93ea7d,0x9c93f27e,0x9c93fa7f,
0x800d3280,0x80140a81,0x9cd41282,0x994d4a83,0x99142284,0x9cd42a85,0x99543286,0x9d143a87,
0x9d0d7288,0x9d544a89,0x9d4d8a8a,0x9d8d928b,0x9d14628c,0x9d146a8d,0x9d14728e,0x80147a8f,
0x9e948290,0x9e948a91,0x994dba92,0x99549a93,0x8014a294,0x8014aa95,0x8014b296,0x8014ba97,
0x8014c298,0x8014ca99,0x98d4d29a,0x8014da9b,0x8014e29c,0x9a94ea9d,0x9d14f29e,0x8014fa9f,
0x9c5502a0,0x80150aa1,0x801512a2,0x99151aa3,0x991522a4,0x99152aa5,0x9d1532a6,0x9d153aa7,
0x9d1542a8,0x99954aa9,0x9b1552aa,0x9b155aab,0x801562ac,0x80156aad,0x001572ae,0x00157aaf,
0x001582b0,0x00158ab1,0x001592b2,0x00159ab3,0x0015a2b4,0x0015aab5,0x0015b2b6,0x0015bab7,
0x0015c2b8,0x0015cab9,0x0015d2ba,0x0015dabb,0x0015e2bc,0x0015eabd,0x0015f2be,0x0015fabf,
0x001602c0,0x00160ac1,0x001612c2,0x00161ac3,0x001622c4,0x00162ac5,0x001632c6,0x00163ac7,
0x001642c8,0x00164ac9,0x001652ca,0x00165acb,0x001662cc,0x00166acd,0x001672ce,0x00167acf,
0x001682d0,0x00168ad1,0x001692d2,0x00169ad3,0x0016a2d4,0x0016aad5,0x0016b2d6,0x0016bad7,
0x0016c2d8,0x0016cad9,0x0016d2da,0x0016dadb,0x0016e2dc,0x0016eadd,0x0016f2de,0x0016fadf,
0x001702e0,0x00170ae1,0x001712e2,0x00171ae3,0x001722e4,0x00172ae5,0x001732e6,0x00173ae7,
0x001742e8,0x00174ae9,0x001752ea,0x00175aeb,0x001762ec,0x00176aed,0x001772ee,0x00177aef,
0x001782f0,0x00178af1,0x001792f2,0x00179af3,0x0017a2f4,0x0017aaf5,0x0017b2f6,0x0017baf7,
0x0017c2f8,0x0017caf9,0x0017d2fa,0x0017dafb,0x0017e2fc,0x0017eafd,0x0017f2fe,0x0017faff,
0x00180300,0x00180b01,0x00181302,0x00181b03,0x00182304,0x00182b05,0x00183306,0x00183b07,
0x00184308,0x00184b09,0x0018530a,0x00185b0b,0x0018630c,0x00186b0d,0x0018730e,0x00187b0f,
0x00188310,0x00188b11,0x00189312,0x00189b13,0x0018a314,0x0018ab15,0x0018b316,0x0018bb17,
0x0018c318,0x0018cb19,0x0018d31a,0x0018db1b,0x0018e31c,0x0018eb1d,0x0018f31e,0x0018fb1f,
0x00190320,0x00190b21,0x00191322,0x00191b23,0x00192324,0x00192b25,0x00193326,0x00193b27,
0x00194328,0x00194b29,0x0019532a,0x00195b2b,0x0019632c,0x00196b2d,0x0019732e,0x00197b2f,
0x00198330,0x00198b31,0x00199332,0x00199b33,0x0019a334,0x0019ab35,0x0019b336,0x0019bb37,
0x0019c338,0x0019cb39,0x0019d33a,0x0019db3b,0x0019e33c,0x0019eb3d,0x0019f33e,0x0019fb3f,
0x001a0340,0x001a0b41,0x001a1342,0x001a1b43,0x001a2344,0x001a2b45,0x001a3346,0x001a3b47,
0x001a4348,0x001a4b49,0x001a534a,0x001a5b4b,0x001a634c,0x001a6b4d,0x001a734e,0x001a7b4f,
0x001a8350,0x001a8b51,0x001a9352,0x001a9b53,0x001aa354,0x001aab55,0x001ab356,0x001abb57,
0x001ac358,0x001acb59,0x001ad35a,0x001adb5b,0x001ae35c,0x001aeb5d,0x001af35e,0x001afb5f,
0x001b0360,0x001b0b61,0x001b1362,0x001b1b63,0x001b2364,0x001b2b65,0x001b3366,0x001b3b67,
0x001b4368,0x001b4b69,0x001b536a,0x001b5b6b,0x001b636c,0x001b6b6d,0x001b736e,0x001b7b6f,
0x001b8370,0x001b8b71,0x001b9372,0x001b9b73,0x001ba374,0x001bab75,0x001bb376,0x001bbb77,
0x001bc378,0x001bcb79,0x001bd37a,0x001bdb7b,0x001be37c,0x001beb7d,0x001bf37e,0x001bfb7f,
0x001c0380,0x001c0b81,0x001c1382,0x001c1b83,0x001c2384,0x001c2b85,0x401c33ac,0x001c3b87,
0x401c43ad,0x401c4bae,0x401c53af,0x001c5b8b,0x401c63cc,0x001c6b8d,0x401c73cd,0x401c7bce,
0x801c8390,0x401c8bb1,0x401c93b2,0x401c9bb3,0x401ca3b4,0x401cabb5,0x401cb3b6,0x401cbbb7,
0x401cc3b8,0x401ccbb9,0x401cd3ba,0x401cdbbb,0x401ce3bc,0x401cebbd,0x401cf3be,0x401cfbbf,
0x401d03c0,0x401d0bc1,0x001d13a2,0x401d1bc3,0x401d23c4,0x401d2bc5,0x401d33c6,0x401d3bc7,
0x401d43c8,0x401d4bc9,0x401d53ca,0x401d5bcb,0x801c33ac,0x801c43ad,0x801c4bae,0x801c53af,
0x801d83b0,0x801c8bb1,0x801c93b2,0x801c9bb3,0x801ca3b4,0x801cabb5,0x801cb3b6,0x801cbbb7,
0x801cc3b8,0x801ccbb9,0x801cd3ba,0x801cdbbb,0x801ce3bc,0x801cebbd,0x801cf3be,0x801cfbbf,
0x801d03c0,0x801d0bc1,0x801d1bc2,0x801d1bc3,0x801d23c4,0x801d2bc5,0x801d33c6,0x801d3bc7,
0x801d43c8,0x801d4bc9,0x801d53ca,0x801d5bcb,0x801c63cc,0x801c73cd,0x801c7bce,0x001e7bcf,
0x801c93d0,0x801cc3d1,0x401e93d2,0x401e9bd3,0x401ea3d4,0x801d33d5,0x801d03d6,0x801ebbd7,
0x401ec3d9,0x801ec3d9,0x401ed3db,0x801ed3db,0x401ee3dd,0x801ee3dd,0x401ef3df,0x801ef3df,
0x401f03e1,0x801f03e1,0x401f13e3,0x801f13e3,0x401f23e5,0x801f23e5,0x401f33e7,0x801f33e7,
0x401f43e9,0x801f43e9,0x401f53eb,0x801f53eb,0x401f63ed,0x801f63ed,0x401f73ef,0x801f73ef,
0x801cd3f0,0x801d0bf1,0x801d1bf2,0x801f9bf3,0x401fa3b8,0x801cabf5,0x001fb3f6,0x001fbbf7,
0x001fc3f8,0x001fcbf9,0x001fd3fa,0x001fdbfb,0x001fe3fc,0x001febfd,0x001ff3fe,0x001ffbff,
0x40200450,0x40200c51,0x40201452,0x40201c53,0x40202454,0x40202c55,0x40203456,0x40203c57,
0x40204458,0x40204c59,0x4020545a,0x40205c5b,0x4020645c,0x40206c5d,0x4020745e,0x40207c5f,
0x40208430,0x40208c31,0x40209432,0x40209c33,0x4020a434,0x4020ac35,0x4020b436,0x4020bc37,
0x4020c438,0x4020cc39,0x4020d43a,0x4020dc3b,0x4020e43c,0x4020ec3d,0x4020f43e,0x4020fc3f,
0x40210440,0x40210c41,0x40211442,0x40211c43,0x40212444,0x40212c45,0x40213446,0x40213c47,
0x40214448,0x40214c49,0x4021544a,0x40215c4b,0x4021644c,0x40216c4d,0x4021744e,0x40217c4f,
0x80208430,0x80208c31,0x80209432,0x80209c33,0x8020a434,0x8020ac35,0x8020b436,0x8020bc37,
0x8020c438,0x8020cc39,0x8020d43a,0x8020dc3b,0x8020e43c,0x8020ec3d,0x8020f43e,0x8020fc3f,
0x80210440,0x80210c41,0x80211442,0x80211c43,0x80212444,0x80212c45,0x80213446,0x80213c47,
0x80214448,0x80214c49,0x8021544a,0x80215c4b,0x8021644c,0x80216c4d,0x8021744e,0x80217c4f,
0x80200450,0x80200c51,0x80201452,0x80201c53,0x80202454,0x80202c55,0x80203456,0x80203c57,
0x80204458,0x80204c59,0x8020545a,0x80205c5b,0x8020645c,0x80206c5d,0x8020745e,0x80207c5f,
0x40230461,0x80230461,0x40231463,0x80231463,0x40232465,0x80232465,0x40233467,0x80233467,
0x40234469,0x80234469,0x4023546b,0x8023546b,0x4023646d,0x8023646d,0x4023746f,0x8023746f,
0x40238471,0x80238471,0x40239473,0x80239473,0x4023a475,0x8023a475,0x4023b477,0x8023b477,
0x4023c479,0x8023c479,0x4023d47b,0x8023d47b,0x4023e47d,0x8023e47d,0x4023f47f,0x8023f47f,
0x40240481,0x80240481,0x00241482,0x00241c83,0x00242484,0x00242c85,0x00243486,0x00243c87,
0x00244488,0x00244c89,0x4024548b,0x8024548b,0x4024648d,0x8024648d,0x4024748f,0x8024748f,
0x40248491,0x80248491,0x40249493,0x80249493,0x4024a495,0x8024a495,0x4024b497,0x8024b497,
0x4024c499,0x8024c499,0x4024d49b,0x8024d49b,0x4024e49d,0x8024e49d,0x4024f49f,0x8024f49f,
0x402504a1,0x802504a1,0x402514a3,0x802514a3,0x402524a5,0x802524a5,0x402534a7,0x802534a7,
0x402544a9,0x802544a9,0x402554ab,0x802554ab,0x402564ad,0x802564ad,0x402574af,0x802574af,
0x402584b1,0x802584b1,0x402594b3,0x802594b3,0x4025a4b5,0x8025a4b5,0x4025b4b7,0x8025b4b7,
0x4025c4b9,0x8025c4b9,0x4025d4bb,0x8025d4bb,0x4025e4bd,0x8025e4bd,0x4025f4bf,0x8025f4bf,
0x402604c0,0x40260cc2,0x80260cc2,0x40261cc4,0x80261cc4,0x40262cc6,0x80262cc6,0x40263cc8,
0x80263cc8,0x40264cca,0x80264cca,0x40265ccc,0x80265ccc,0x40266cce,0x80266cce,0x00267ccf,
0x402684d1,0x802684d1,0x402694d3,0x802694d3,0x4026a4d5,0x8026a4d5,0x4026b4d7,0x8026b4d7,
0x4026c4d9,0x8026c4d9,0x4026d4db,0x8026d4db,0x4026e4dd,0x8026e4dd,0x4026f4df,0x8026f4df,
0x402704e1,0x802704e1,0x402714e3,0x802714e3,0x402724e5,0x802724e5,0x402734e7,0x802734e7,
0x402744e9,0x802744e9,0x402754eb,0x802754eb,0x402764ed,0x802764ed,0x402774ef,0x802774ef,
0x402784f1,0x802784f1,0x402794f3,0x802794f3,0x4027a4f5,0x8027a4f5,0x0027b4f6,0x0027bcf7,
0x4027c4f9,0x8027c4f9,0x0027d4fa,0x0027dcfb,0x0027e4fc,0x0027ecfd,0x0027f4fe,0x0027fcff,
0x40280501,0x80280501,0x40281503,0x80281503,0x40282505,0x80282505,0x40283507,0x80283507,
0x40284509,0x80284509,0x4028550b,0x8028550b,0x4028650d,0x8028650d,0x4028750f,0x8028750f,
0x00288510,0x00288d11,0x00289512,0x00289d13,0x0028a514,0x0028ad15,0x0028b516,0x0028bd17,
0x0028c518,0x0028cd19,0x0028d51a,0x0028dd1b,0x0028e51c,0x0028ed1d,0x0028f51e,0x0028fd1f,
0x00290520,0x00290d21,0x00291522,0x00291d23,0x00292524,0x00292d25,0x00293526,0x00293d27,
0x00294528,0x00294d29,0x0029552a,0x00295d2b,0x0029652c,0x00296d2d,0x0029752e,0x00297d2f,
0x00298530,0x40298d61,0x40299562,0x40299d63,0x4029a564,0x4029ad65,0x4029b566,0x4029bd67,
0x4029c568,0x4029cd69,0x4029d56a,0x4029dd6b,0x4029e56c,0x4029ed6d,0x4029f56e,0x4029fd6f,
0x402a0570,0x402a0d71,0x402a1572,0x402a1d73,0x402a2574,0x402a2d75,0x402a3576,0x402a3d77,
0x402a4578,0x402a4d79,0x402a557a,0x402a5d7b,0x402a657c,0x402a6d7d,0x402a757e,0x402a7d7f,
0x402a8580,0x402a8d81,0x402a9582,0x402a9d83,0x402aa584,0x402aad85,0x402ab586,0x002abd57,
0x002ac558,0x002acd59,0x002ad55a,0x002add5b,0x002ae55c,0x002aed5d,0x002af55e,0x002afd5f,
0x002b0560,0x80298d61,0x80299562,0x80299d63,0x8029a564,0x8029ad65,0x8029b566,0x8029bd67,
0x8029c568,0x8029cd69,0x8029d56a,0x8029dd6b,0x8029e56c,0x8029ed6d,0x8029f56e,0x8029fd6f,
0x802a0570,0x802a0d71,0x802a1572,0x802a1d73,0x802a2574,0x802a2d75,0x802a3576,0x802a3d77,
0x802a4578,0x802a4d79,0x802a557a,0x802a5d7b,0x802a657c,0x802a6d7d,0x802a757e,0x802a7d7f,
0x802a8580,0x802a8d81,0x802a9582,0x802a9d83,0x802aa584,0x802aad85,0x802ab586,0x802c3d87,
0x002c4588,0x002c4d89,0x002c558a,0x002c5d8b,0x002c658c,0x002c6d8d,0x002c758e,0x002c7d8f,
0x002c8590,0x002c8d91,0x002c9592,0x002c9d93,0x002ca594,0x002cad95,0x002cb596,0x002cbd97,
0x002cc598,0x002ccd99,0x002cd59a,0x002cdd9b,0x002ce59c,0x002ced9d,0x002cf59e,0x002cfd9f,
0x002d05a0,0x002d0da1,0x002d15a2,0x002d1da3,0x002d25a4,0x002d2da5,0x002d35a6,0x002d3da7,
0x002d45a8,0x002d4da9,0x002d55aa,0x002d5dab,0x002d65ac,0x002d6dad,0x002d75ae,0x002d7daf,
0x002d85b0,0x002d8db1,0x002d95b2,0x002d9db3,0x002da5b4,0x002dadb5,0x002db5b6,0x002dbdb7,
0x002dc5b8,0x002dcdb9,0x002dd5ba,0x002dddbb,0x002de5bc,0x002dedbd,0x002df5be,0x002dfdbf,
0x002e05c0,0x002e0dc1,0x002e15c2,0x002e1dc3,0x002e25c4,0x002e2dc5,0x002e35c6,0x002e3dc7,
0x002e45c8,0x002e4dc9,0x002e55ca,0x002e5dcb,0x002e65cc,0x002e6dcd,0x002e75ce,0x002e7dcf,
0x002e85d0,0x002e8dd1,0x002e95d2,0x002e9dd3,0x002ea5d4,0x002eadd5,0x002eb5d6,0x002ebdd7,
0x002ec5d8,0x002ecdd9,0x002ed5da,0x002edddb,0x002ee5dc,0x002eeddd,0x002ef5de,0x002efddf,
0x002f05e0,0x002f0de1,0x002f15e2,0x002f1de3,0x002f25e4,0x002f2de5,0x002f35e6,0x002f3de7,
0x002f45e8,0x002f4de9,0x002f55ea,0x002f5deb,0x002f65ec,0x002f6ded,0x002f75ee,0x002f7def,
0x002f85f0,0x002f8df1,0x002f95f2,0x002f9df3,0x002fa5f4,0x002fadf5,0x002fb5f6,0x002fbdf7,
0x002fc5f8,0x002fcdf9,0x002fd5fa,0x002fddfb,0x002fe5fc,0x002fedfd,0x002ff5fe,0x002ffdff,
0x00300600,0x00300e01,0x00301602,0x00301e03,0x00302604,0x00302e05,0x00303606,0x00303e07,
0x00304608,0x00304e09,0x0030560a,0x00305e0b,0x0030660c,0x00306e0d,0x0030760e,0x00307e0f,
0x00308610,0x00308e11,0x00309612,0x00309e13,0x0030a614,0x0030ae15,0x0030b616,0x0030be17,
0x0030c618,0x0030ce19,0x0030d61a,0x0030de1b,0x0030e61c,0x0030ee1d,0x0030f61e,0x0030fe1f,
0x00310620,0x00310e21,0x00311622,0x00311e23,0x00312624,0x00312e25,0x00313626,0x00313e27,
0x00314628,0x00314e29,0x0031562a,0x00315e2b,0x0031662c,0x00316e2d,0x0031762e,0x00317e2f,
0x00318630,0x00318e31,0x00319632,0x00319e33,0x0031a634,0x0031ae35,0x0031b636,0x0031be37,
0x0031c638,0x0031ce39,0x0031d63a,0x0031de3b,0x0031e63c,0x0031ee3d,0x0031f63e,0x0031fe3f,
0x00320640,0x00320e41,0x00321642,0x00321e43,0x00322644,0x00322e45,0x00323646,0x00323e47,
0x00324648,0x00324e49,0x0032564a,0x00325e4b,0x0032664c,0x00326e4d,0x0032764e,0x00327e4f,
0x00328650,0x00328e51,0x00329652,0x00329e53,0x0032a654,0x0032ae55,0x0032b656,0x0032be57,
0x0032c658,0x0032ce59,0x0032d65a,0x0032de5b,0x0032e65c,0x0032ee5d,0x0032f65e,0x0032fe5f,
0x00330660,0x00330e61,0x00331662,0x00331e63,0x00332664,0x00332e65,0x00333666,0x00333e67,
0x00334668,0x00334e69,0x0033566a,0x00335e6b,0x0033666c,0x00336e6d,0x0033766e,0x00337e6f,
0x00338670,0x00338e71,0x00339672,0x00339e73,0x0033a674,0x0033ae75,0x0033b676,0x0033be77,
0x0033c678,0x0033ce79,0x0033d67a,0x0033de7b,0x0033e67c,0x0033ee7d,0x0033f67e,0x0033fe7f,
0x00340680,0x00340e81,0x00341682,0x00341e83,0x00342684,0x00342e85,0x00343686,0x00343e87,
0x00344688,0x00344e89,0x0034568a,0x00345e8b,0x0034668c,0x00346e8d,0x0034768e,0x00347e8f,
0x00348690,0x00348e91,0x00349692,0x00349e93,0x0034a694,0x0034ae95,0x0034b696,0x0034be97,
0x0034c698,0x0034ce99,0x0034d69a,0x0034de9b,0x0034e69c,0x0034ee9d,0x0034f69e,0x0034fe9f,
0x003506a0,0x00350ea1,0x003516a2,0x00351ea3,0x003526a4,0x00352ea5,0x003536a6,0x00353ea7,
0x003546a8,0x00354ea9,0x003556aa,0x00355eab,0x003566ac,0x00356ead,0x003576ae,0x00357eaf,
0x003586b0,0x00358eb1,0x003596b2,0x00359eb3,0x0035a6b4,0x0035aeb5,0x0035b6b6,0x0035beb7,
0x0035c6b8,0x0035ceb9,0x0035d6ba,0x0035debb,0x0035e6bc,0x0035eebd,0x0035f6be,0x0035febf,
0x003606c0,0x00360ec1,0x003616c2,0x00361ec3,0x003626c4,0x00362ec5,0x003636c6,0x00363ec7,
0x003646c8,0x00364ec9,0x003656ca,0x00365ecb,0x003666cc,0x00366ecd,0x003676ce,0x00367ecf,
0x003686d0,0x00368ed1,0x003696d2,0x00369ed3,0x0036a6d4,0x0036aed5,0x0036b6d6,0x0036bed7,
0x0036c6d8,0x0036ced9,0x0036d6da,0x0036dedb,0x0036e6dc,0x0036eedd,0x0036f6de,0x0036fedf,
0x003706e0,0x00370ee1,0x003716e2,0x00371ee3,0x003726e4,0x00372ee5,0x003736e6,0x00373ee7,
0x003746e8,0x00374ee9,0x003756ea,0x00375eeb,0x003766ec,0x00376eed,0x003776ee,0x00377eef,
0x003786f0,0x00378ef1,0x003796f2,0x00379ef3,0x0037a6f4,0x0037aef5,0x0037b6f6,0x0037bef7,
0x0037c6f8,0x0037cef9,0x0037d6fa,0x0037defb,0x0037e6fc,0x0037eefd,0x0037f6fe,0x0037feff,
0x00380700,0x00380f01,0x00381702,0x00381f03,0x00382704,0x00382f05,0x00383706,0x00383f07,
0x00384708,0x00384f09,0x0038570a,0x00385f0b,0x0038670c,0x00386f0d,0x0038770e,0x00387f0f,
0x00388710,0x00388f11,0x00389712,0x00389f13,0x0038a714,0x0038af15,0x0038b716,0x0038bf17,
0x0038c718,0x0038cf19,0x0038d71a,0x0038df1b,0x0038e71c,0x0038ef1d,0x0038f71e,0x0038ff1f,
0x00390720,0x00390f21,0x00391722,0x00391f23,0x00392724,0x00392f25,0x00393726,0x00393f27,
0x00394728,0x00394f29,0x0039572a,0x00395f2b,0x0039672c,0x00396f2d,0x0039772e,0x00397f2f,
0x00398730,0x00398f31,0x00399732,0x00399f33,0x0039a734,0x0039af35,0x0039b736,0x0039bf37,
0x0039c738,0x0039cf39,0x0039d73a,0x0039df3b,0x0039e73c,0x0039ef3d,0x0039f73e,0x0039ff3f,
0x003a0740,0x003a0f41,0x003a1742,0x003a1f43,0x003a2744,0x003a2f45,0x003a3746,0x003a3f47,
0x003a4748,0x003a4f49,0x003a574a,0x003a5f4b,0x003a674c,0x003a6f4d,0x003a774e,0x003a7f4f,
0x003a8750,0x003a8f51,0x003a9752,0x003a9f53,0x003aa754,0x003aaf55,0x003ab756,0x003abf57,
0x003ac758,0x003acf59,0x003ad75a,0x003adf5b,0x003ae75c,0x003aef5d,0x003af75e,0x003aff5f,
0x003b0760,0x003b0f61,0x003b1762,0x003b1f63,0x003b2764,0x003b2f65,0x003b3766,0x003b3f67,
0x003b4768,0x003b4f69,0x003b576a,0x003b5f6b,0x003b676c,0x003b6f6d,0x003b776e,0x003b7f6f,
0x003b8770,0x003b8f71,0x003b9772,0x003b9f73,0x003ba774,0x003baf75,0x003bb776,0x003bbf77,
0x003bc778,0x003bcf79,0x003bd77a,0x003bdf7b,0x003be77c,0x003bef7d,0x003bf77e,0x003bff7f,
0x003c0780,0x003c0f81,0x003c1782,0x003c1f83,0x003c2784,0x003c2f85,0x003c3786,0x003c3f87,
0x003c4788,0x003c4f89,0x003c578a,0x003c5f8b,0x003c678c,0x003c6f8d,0x003c778e,0x003c7f8f,
0x003c8790,0x003c8f91,0x003c9792,0x003c9f93,0x003ca794,0x003caf95,0x003cb796,0x003cbf97,
0x003cc798,0x003ccf99,0x003cd79a,0x003cdf9b,0x003ce79c,0x003cef9d,0x003cf79e,0x003cff9f,
0x003d07a0,0x003d0fa1,0x003d17a2,0x003d1fa3,0x003d27a4,0x003d2fa5,0x003d37a6,0x003d3fa7,
0x003d47a8,0x003d4fa9,0x003d57aa,0x003d5fab,0x003d67ac,0x003d6fad,0x003d77ae,0x003d7faf,
0x003d87b0,0x003d8fb1,0x003d97b2,0x003d9fb3,0x003da7b4,0x003dafb5,0x003db7b6,0x003dbfb7,
0x003dc7b8,0x003dcfb9,0x003dd7ba,0x003ddfbb,0x003de7bc,0x003defbd,0x003df7be,0x003dffbf,
0x003e07c0,0x003e0fc1,0x003e17c2,0x003e1fc3,0x003e27c4,0x003e2fc5,0x003e37c6,0x003e3fc7,
0x003e47c8,0x003e4fc9,0x003e57ca,0x003e5fcb,0x003e67cc,0x003e6fcd,0x003e77ce,0x003e7fcf,
0x003e87d0,0x003e8fd1,0x003e97d2,0x003e9fd3,0x003ea7d4,0x003eafd5,0x003eb7d6,0x003ebfd7,
0x003ec7d8,0x003ecfd9,0x003ed7da,0x003edfdb,0x003ee7dc,0x003eefdd,0x003ef7de,0x003effdf,
0x003f07e0,0x003f0fe1,0x003f17e2,0x003f1fe3,0x003f27e4,0x003f2fe5,0x003f37e6,0x003f3fe7,
0x003f47e8,0x003f4fe9,0x003f57ea,0x003f5feb,0x003f67ec,0x003f6fed,0x003f77ee,0x003f7fef,
0x003f87f0,0x003f8ff1,0x003f97f2,0x003f9ff3,0x003fa7f4,0x003faff5,0x003fb7f6,0x003fbff7,
0x003fc7f8,0x003fcff9,0x003fd7fa,0x003fdffb,0x003fe7fc,0x003feffd,0x003ff7fe,0x003fffff,
};
byte DefaultCharset = 255;
void SetDefaultCharset(byte charset)
{
DefaultCharset = charset;
}
byte GetDefaultCharset()
{
return DefaultCharset;
}
struct CharSetData {
const word *table;
static byte undef[128];
byte *line[16];
VectorMap<int, byte> map;
byte system;
void Gen();
int ToUnicode(int chr) { return (byte)chr < 128 ? (byte)chr : table[(byte)chr - 128]; }
int FromUnicode(int chr, int def = DEFAULTCHAR);
void FromUnicode(char *t, const wchar *s, const wchar *end, int def = DEFAULTCHAR);
CharSetData();
~CharSetData();
};
byte CharSetData::undef[] = {
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF, CUNDEF,
};
void CharSetData::Gen()
{
int c;
line[0] = new byte[128];
for(c = 0; c < 128; c++)
line[0][c] = c;
for(c = 0; c < 128; c++) {
int q = table[c];
if(q < 16 * 128) {
int i = q >> 7;
if(!line[i]) {
line[i] = new byte[128];
memset(line[i], CUNDEF, 128);
}
line[i][q & 0x7f] = c + 128;
}
else
if((q & 0xFF00) != 0xEE00)
map.Add(q, c + 128);
}
for(c = 0; c < 16; c++)
if(!line[c])
line[c] = undef;
}
inline int CharSetData::FromUnicode(int chr, int def)
{
if(!line[0]) Gen();
int c = chr < 16 * 128 ? line[chr >> 7][chr & 0x7f]
: (chr & 0xFF00) == 0xEE00 ? (chr & 255)
: map.Get(chr, CUNDEF);
return c == DEFAULTCHAR ? def : c;
}
inline void CharSetData::FromUnicode(char *t, const wchar *s, const wchar *end, int def)
{
if(!line[0]) Gen();
if(def == DEFAULTCHAR)
while(s < end) {
int chr = *s++;
*t++ = chr < 16 * 128 ? line[chr >> 7][chr & 0x7f]
: (chr & 0xFF00) == 0xEE00 ? (chr & 255)
: map.Get(chr, CUNDEF);
}
else
while(s < end) {
int chr = *s++;
int c = chr < 16 * 128 ? line[chr >> 7][chr & 0x7f]
: (chr & 0xFF00) == 0xEE00 ? (chr & 255)
: map.Get(chr, CUNDEF);
*t++ = c == DEFAULTCHAR ? def : c;
}
}
CharSetData::CharSetData()
{
for(int i = 0; i < 16; i++)
line[i] = 0;
}
CharSetData::~CharSetData()
{
for(int i = 0; i < 16; i++)
if(line[i] && line[i] != undef)
delete[] line[i];
}
static void sInit()
{
#ifdef PLATFORM_WIN32
AddCharSetE("NONE" , CHRTAB_ISO8859_1, CHARSET_WIN1252);
AddCharSetE("iso8859-1", CHRTAB_ISO8859_1, CHARSET_WIN1252);
AddCharSetE("iso8859-2", CHRTAB_ISO8859_2, CHARSET_WIN1250); //??
AddCharSetE("iso8859-3", CHRTAB_ISO8859_3, CHARSET_WIN1254); //??
AddCharSetE("iso8859-4", CHRTAB_ISO8859_4, CHARSET_WIN1257); //??
AddCharSetE("iso8859-5", CHRTAB_ISO8859_5, CHARSET_WIN1251);
AddCharSetE("iso8859-6", CHRTAB_ISO8859_6, CHARSET_WIN1256);
AddCharSetE("iso8859-7", CHRTAB_ISO8859_7, CHARSET_WIN1253);
AddCharSetE("iso8859-8", CHRTAB_ISO8859_8, CHARSET_WIN1255); //??
AddCharSetE("iso8859-9", CHRTAB_ISO8859_9, CHARSET_WIN1254);
AddCharSetE("iso8859-10", CHRTAB_ISO8859_10, CHARSET_WIN1257); //??
AddCharSetE("iso8859-13", CHRTAB_ISO8859_13, CHARSET_WIN1257);
AddCharSetE("iso8859-14", CHRTAB_ISO8859_14, CHARSET_WIN1252); //??
AddCharSetE("iso8859-15", CHRTAB_ISO8859_15, CHARSET_WIN1252); //??
AddCharSetE("iso8859-16", CHRTAB_ISO8859_16, CHARSET_WIN1250); //??
AddCharSetE("windows-1250",CHRTAB_WIN1250, CHARSET_WIN1250);
AddCharSetE("windows-1251",CHRTAB_WIN1251, CHARSET_WIN1251);
AddCharSetE("windows-1252",CHRTAB_WIN1252, CHARSET_WIN1252);
AddCharSetE("windows-1253",CHRTAB_WIN1253, CHARSET_WIN1253);
AddCharSetE("windows-1254",CHRTAB_WIN1254, CHARSET_WIN1254);
AddCharSetE("windows-1255",CHRTAB_WIN1255, CHARSET_WIN1255);
AddCharSetE("windows-1256",CHRTAB_WIN1256, CHARSET_WIN1256);
AddCharSetE("windows-1257",CHRTAB_WIN1257, CHARSET_WIN1257);
AddCharSetE("windows-1258",CHRTAB_WIN1258, CHARSET_WIN1258);
AddCharSetE("koi8-r", CHRTAB_KOI8_R, CHARSET_WIN1251);
AddCharSetE("cp852", CHRTAB_CP852, CHARSET_WIN1250);
AddCharSetE("mjk", CHRTAB_MJK, CHARSET_WIN1250);
AddCharSetE("cp850", CHRTAB_CP850, CHARSET_WIN1252);
#else
AddCharSetE("NONE" , CHRTAB_ISO8859_1, CHARSET_ISO8859_1);
AddCharSetE("iso8859-1", CHRTAB_ISO8859_1, CHARSET_ISO8859_1);
AddCharSetE("iso8859-2", CHRTAB_ISO8859_2, CHARSET_ISO8859_2);
AddCharSetE("iso8859-3", CHRTAB_ISO8859_3, CHARSET_ISO8859_3);
AddCharSetE("iso8859-4", CHRTAB_ISO8859_4, CHARSET_ISO8859_4);
AddCharSetE("iso8859-5", CHRTAB_ISO8859_5, CHARSET_ISO8859_5);
AddCharSetE("iso8859-6", CHRTAB_ISO8859_6, CHARSET_ISO8859_6);
AddCharSetE("iso8859-7", CHRTAB_ISO8859_7, CHARSET_ISO8859_7);
AddCharSetE("iso8859-8", CHRTAB_ISO8859_8, CHARSET_ISO8859_8);
AddCharSetE("iso8859-9", CHRTAB_ISO8859_9, CHARSET_ISO8859_9);
AddCharSetE("iso8859-10", CHRTAB_ISO8859_10, CHARSET_ISO8859_10);
AddCharSetE("iso8859-13", CHRTAB_ISO8859_13, CHARSET_ISO8859_13);
AddCharSetE("iso8859-14", CHRTAB_ISO8859_14, CHARSET_ISO8859_14);
AddCharSetE("iso8859-15", CHRTAB_ISO8859_15, CHARSET_ISO8859_15);
AddCharSetE("iso8859-16", CHRTAB_ISO8859_16, CHARSET_ISO8859_16);
AddCharSetE("windows-1250",CHRTAB_WIN1250, CHARSET_ISO8859_2);
AddCharSetE("windows-1251",CHRTAB_WIN1251, CHARSET_ISO8859_5);
AddCharSetE("windows-1252",CHRTAB_WIN1252, CHARSET_ISO8859_1);
AddCharSetE("windows-1253",CHRTAB_WIN1253, CHARSET_ISO8859_7);
AddCharSetE("windows-1254",CHRTAB_WIN1254, CHARSET_ISO8859_9);
AddCharSetE("windows-1255",CHRTAB_WIN1255, CHARSET_ISO8859_8);
AddCharSetE("windows-1256",CHRTAB_WIN1256, CHARSET_ISO8859_6);
AddCharSetE("windows-1257",CHRTAB_WIN1257, CHARSET_ISO8859_13);
AddCharSetE("windows-1258",CHRTAB_WIN1258, CHARSET_ISO8859_9);
AddCharSetE("koi8-r", CHRTAB_KOI8_R, CHARSET_ISO8859_5);
AddCharSetE("cp852", CHRTAB_CP852, CHARSET_ISO8859_2);
AddCharSetE("mjk", CHRTAB_MJK, CHARSET_ISO8859_2);
AddCharSetE("cp850", CHRTAB_CP850, CHARSET_ISO8859_1);
#endif
AddCharSetE("ARMSCII-8", CHRTAB_ARMSCII_8 ,CHARSET_ARMSCII_8 );
AddCharSetE("CP1046", CHRTAB_CP1046 ,CHARSET_CP1046 );
AddCharSetE("CP1124", CHRTAB_CP1124 ,CHARSET_CP1124 );
AddCharSetE("CP1125", CHRTAB_CP1125 ,CHARSET_CP1125 );
AddCharSetE("CP1129", CHRTAB_CP1129 ,CHARSET_CP1129 );
AddCharSetE("CP1133", CHRTAB_CP1133 ,CHARSET_CP1133 );
AddCharSetE("CP1161", CHRTAB_CP1161 ,CHARSET_CP1161 );
AddCharSetE("CP1162", CHRTAB_CP1162 ,CHARSET_CP1162 );
AddCharSetE("CP1163", CHRTAB_CP1163 ,CHARSET_CP1163 );
AddCharSetE("CP1250", CHRTAB_CP1250 ,CHARSET_CP1250 );
AddCharSetE("CP1251", CHRTAB_CP1251 ,CHARSET_CP1251 );
AddCharSetE("CP1252", CHRTAB_CP1252 ,CHARSET_CP1252 );
AddCharSetE("CP1253", CHRTAB_CP1253 ,CHARSET_CP1253 );
AddCharSetE("CP1254", CHRTAB_CP1254 ,CHARSET_CP1254 );
AddCharSetE("CP1255", CHRTAB_CP1255 ,CHARSET_CP1255 );
AddCharSetE("CP1256", CHRTAB_CP1256 ,CHARSET_CP1256 );
AddCharSetE("CP1257", CHRTAB_CP1257 ,CHARSET_CP1257 );
AddCharSetE("CP1258", CHRTAB_CP1258 ,CHARSET_CP1258 );
AddCharSetE("CP437", CHRTAB_CP437 ,CHARSET_CP437 );
AddCharSetE("CP737", CHRTAB_CP737 ,CHARSET_CP737 );
AddCharSetE("CP775", CHRTAB_CP775 ,CHARSET_CP775 );
AddCharSetE("CP853", CHRTAB_CP853 ,CHARSET_CP853 );
AddCharSetE("CP855", CHRTAB_CP855 ,CHARSET_CP855 );
AddCharSetE("CP856", CHRTAB_CP856 ,CHARSET_CP856 );
AddCharSetE("CP857", CHRTAB_CP857 ,CHARSET_CP857 );
AddCharSetE("CP858", CHRTAB_CP858 ,CHARSET_CP858 );
AddCharSetE("CP860", CHRTAB_CP860 ,CHARSET_CP860 );
AddCharSetE("CP861", CHRTAB_CP861 ,CHARSET_CP861 );
AddCharSetE("CP862", CHRTAB_CP862 ,CHARSET_CP862 );
AddCharSetE("CP863", CHRTAB_CP863 ,CHARSET_CP863 );
AddCharSetE("CP864", CHRTAB_CP864 ,CHARSET_CP864 );
AddCharSetE("CP865", CHRTAB_CP865 ,CHARSET_CP865 );
AddCharSetE("CP866", CHRTAB_CP866 ,CHARSET_CP866 );
AddCharSetE("CP869", CHRTAB_CP869 ,CHARSET_CP869 );
AddCharSetE("CP874", CHRTAB_CP874 ,CHARSET_CP874 );
AddCharSetE("CP922", CHRTAB_CP922 ,CHARSET_CP922 );
AddCharSetE("Georgian-Academy", CHRTAB_GEORGIAN_ACADEMY ,CHARSET_GEORGIAN_ACADEMY );
AddCharSetE("Georgian-PS", CHRTAB_GEORGIAN_PS ,CHARSET_GEORGIAN_PS );
AddCharSetE("HP-ROMAN8", CHRTAB_HP_ROMAN8 ,CHARSET_HP_ROMAN8 );
AddCharSetE("KOI8-RU", CHRTAB_KOI8_RU ,CHARSET_KOI8_RU );
AddCharSetE("KOI8-T", CHRTAB_KOI8_T ,CHARSET_KOI8_T );
AddCharSetE("KOI8-U", CHRTAB_KOI8_U ,CHARSET_KOI8_U );
AddCharSetE("MacArabic", CHRTAB_MACARABIC ,CHARSET_MACARABIC );
AddCharSetE("MacCentralEurope", CHRTAB_MACCENTRALEUROPE ,CHARSET_MACCENTRALEUROPE );
AddCharSetE("MacCroatian", CHRTAB_MACCROATIAN ,CHARSET_MACCROATIAN );
AddCharSetE("MacCyrillic", CHRTAB_MACCYRILLIC ,CHARSET_MACCYRILLIC );
AddCharSetE("MacGreek", CHRTAB_MACGREEK ,CHARSET_MACGREEK );
AddCharSetE("MacHebrew", CHRTAB_MACHEBREW ,CHARSET_MACHEBREW );
AddCharSetE("MacIceland", CHRTAB_MACICELAND ,CHARSET_MACICELAND );
AddCharSetE("MacRoman", CHRTAB_MACROMAN ,CHARSET_MACROMAN );
AddCharSetE("MacRomania", CHRTAB_MACROMANIA ,CHARSET_MACROMANIA );
AddCharSetE("MacThai", CHRTAB_MACTHAI ,CHARSET_MACTHAI );
AddCharSetE("MacTurkish", CHRTAB_MACTURKISH ,CHARSET_MACTURKISH );
AddCharSetE("MacUkraine", CHRTAB_MACUKRAINE ,CHARSET_MACUKRAINE );
AddCharSetE("MuleLao-1", CHRTAB_MULELAO_1 ,CHARSET_MULELAO_1 );
AddCharSetE("NEXTSTEP", CHRTAB_NEXTSTEP ,CHARSET_NEXTSTEP );
AddCharSetE("RISCOS-LATIN1", CHRTAB_RISCOS_LATIN1 ,CHARSET_RISCOS_LATIN1 );
AddCharSetE("TCVN", CHRTAB_TCVN ,CHARSET_TCVN );
AddCharSetE("TIS-620", CHRTAB_TIS_620 ,CHARSET_TIS_620 );
AddCharSetE("VISCII", CHRTAB_VISCII ,CHARSET_VISCII );
}
static ArrayMap<String, CharSetData>& s_map()
{
static bool init;
if(!init)
ONCELOCK {
init = true;
sInit();
}
return Single< ArrayMap<String, CharSetData> >();
}
byte AddCharSet(const char *name, const word *table, byte systemcharset)
{
#ifdef _DEBUG
Index<int> chk;
for(int i = 0; i < 128; i++) {
ASSERT(table[i] >= 128);
ASSERT(chk.Find(table[i]) < 0);
chk.Add(table[i]);
}
#endif
LLOG("Adding " << name << " charset");
int q = s_map().GetCount();
CharSetData& m = s_map().Add(name);
m.table = table;
m.system = systemcharset;
return q;
}
byte AddCharSetE(const char *name, word *table, byte systemcharset)
{
for(int i = 0; i < 128; i++)
if(table[i] == CUNDEF)
table[i] = i + 0xEE80;
return AddCharSet(name, table, systemcharset);
}
const char *CharsetName(byte charset)
{
if(charset == CHARSET_DEFAULT)
charset = GetDefaultCharset();
if(charset == CHARSET_UTF8)
return "UTF-8";
if(charset >= CharsetCount())
return "";
return s_map().GetKey(charset);
}
int CharsetCount()
{
return s_map().GetCount();
}
int cs_filter(int c)
{
return IsDigit(c) ? c : IsAlpha(c) ? ToLower(c) : 0;
}
int CharsetByName(const char *name)
{
String nm = Filter(name, cs_filter);
if(nm == "utf8" || nm == "utf-8")
return CHARSET_UTF8;
for(int i = 1; i < CharsetCount(); i++)
if(nm == Filter(CharsetName(i), cs_filter))
return i;
return 0;
}
byte ResolveCharset(byte charset)
{
return charset ? charset : DefaultCharset;
}
inline
static CharSetData& s_cset(byte charset)
{
return s_map()[ResolveCharset(charset)];
}
byte SystemCharset(byte charset)
{
return s_cset(charset).system;
}
int ToUnicode(int chr, byte charset)
{
return s_cset(charset).ToUnicode(chr);
}
int FromUnicode(wchar wchr, byte charset, int def)
{
return s_cset(charset).FromUnicode(wchr, def);
}
void ToUnicode(wchar *ws, const char *s, int n, byte charset)
{
CharSetData& cs = s_cset(charset);
const char *lim = s + n;
while(s < lim)
*ws++ = cs.ToUnicode(*s++);
}
void FromUnicode(char *s, const wchar *ws, int n, byte charset, int def)
{
s_cset(charset).FromUnicode(s, ws, ws + n, def);
}
void ConvertCharset(char *t, byte tcharset, const char *s, byte scharset, int n)
{
CharSetData& cs = s_cset(scharset);
const char *lim = s + n;
if(tcharset == CHARSET_TOASCII)
while(s < lim)
*t++ = ToAscii(cs.ToUnicode(*s++));
else {
CharSetData& ct = s_cset(tcharset);
while(s < lim)
*t++ = ct.FromUnicode(cs.ToUnicode(*s++));
}
}
bool utf8check(const char *_s, int len)
{
const byte *s = (const byte *)_s;
const byte *lim = s + len;
int codePoint = 0;
while(s < lim) {
word code = (byte)*s++;
if(code >= 0x80) {
if(code < 0xC2)
return false;
else
if(code < 0xE0) {
if(s >= lim || *s < 0x80 || *s >= 0xc0)
return false;
codePoint = ((code - 0xC0) << 6) + *s - 0x80;
if(codePoint < 0x80 || codePoint > 0x07FF)
return false;
s++;
}
else
if(code < 0xF0) {
if(s + 1 >= lim ||
s[0] < 0x80 || s[0] >= 0xc0 ||
s[1] < 0x80 || s[1] >= 0xc0)
return false;
codePoint = ((code - 0xE0) << 12) + ((s[0] - 0x80) << 6) + s[1] - 0x80;
if(codePoint < 0x0800 || codePoint > 0xFFFF)
return false;
s += 2;
}
else
if(code < 0xF5) {
if(s + 2 >= lim ||
s[0] < 0x80 || s[0] >= 0xc0 ||
s[1] < 0x80 || s[1] >= 0xc0 ||
s[2] < 0x80 || s[2] >= 0xc0)
return false;
codePoint = ((code - 0xf0) << 18) + ((s[0] - 0x80) << 12) +
((s[1] - 0x80) << 6) + s[2] - 0x80;
if(codePoint < 0x010000 || codePoint > 0x10FFFF)
return false;
s += 3;
}
else
return false;
}
}
return true;
}
int utf8len(const char *_s, int _len)
{
const byte *s = (const byte *)_s;
const byte *lim = s + _len;
int len = 0;
if(_len > 4)
while(s < lim - 4) {
word code = (byte)*s++;
if(code < 0x80)
len++;
else
if(code < 0xC2)
len++;
else
if(code < 0xE0) {
word c = ((code - 0xC0) << 6) + s[0] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && c >= 0x80 && c < 0x800)
len++;
else
len += 2;
s += 1;
}
else
if(code < 0xF0) {
word c = ((code - 0xE0) << 12) + ((s[0] - 0x80) << 6) + s[1] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && s[1] >= 0x80 && s[1] < 0xc0 && c >= 0x800
&& !(c >= 0xEE00 && c <= 0xEEFF))
len++;
else
len += 3;
s += 2;
}
else
len++;
}
while(s < lim) {
word code = (byte)*s++;
if(code < 0x80)
len++;
else
if(code < 0xC2)
len++;
else
if(code < 0xE0) {
if(s > lim - 1) {
len++;
break;
}
word c = ((code - 0xC0) << 6) + s[0] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && c >= 0x80 && c < 0x800)
len++;
else
len += 2;
s += 1;
}
else
if(code < 0xF0) {
if(s > lim - 2) {
len += 1 + (int)(lim - s);
break;
}
word c = ((code - 0xE0) << 12) + ((s[0] - 0x80) << 6) + s[1] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && s[1] >= 0x80 && s[1] < 0xc0 && c >= 0x800
&& !(c >= 0xEE00 && c <= 0xEEFF))
len++;
else
len += 3;
s += 2;
}
else
len++;
}
return len;
}
WString FromUtf8(const char *_s, int len)
{
const byte *s = (const byte *)_s;
const byte *lim = s + len;
int tlen = utf8len(_s, len);
WStringBuffer result(tlen);
wchar *t = result;
if(len > 4)
while(s < lim - 4) {
word code = (byte)*s++;
if(code < 0x80)
*t++ = code;
else
if(code < 0xC2)
*t++ = 0xEE00 + code;
else
if(code < 0xE0) {
word c = ((code - 0xC0) << 6) + s[0] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && c >= 0x80 && c < 0x800)
*t++ = c;
else {
*t++ = 0xEE00 + code;
*t++ = 0xEE00 + s[0];
}
s += 1;
}
else
if(code < 0xF0) {
word c = ((code - 0xE0) << 12) + ((s[0] - 0x80) << 6) + s[1] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && s[1] >= 0x80 && s[1] < 0xc0 && c >= 0x800
&& !(c >= 0xEE00 && c <= 0xEEFF))
*t++ = c;
else {
*t++ = 0xEE00 + code;
*t++ = 0xEE00 + s[0];
*t++ = 0xEE00 + s[1];
}
s += 2;
}
else
*t++ = 0xEE00 + code;
}
while(s < lim) {
word code = (byte)*s++;
if(code < 0x80)
*t++ = code;
else
if(code < 0xC0)
*t++ = 0xEE00 + code;
else
if(code < 0xE0) {
if(s > lim - 1) {
*t++ = 0xEE00 + code;
break;
}
word c = ((code - 0xC0) << 6) + s[0] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && c >= 0x80 && c < 0x800)
*t++ = c;
else {
*t++ = 0xEE00 + code;
*t++ = 0xEE00 + s[0];
}
s += 1;
}
else
if(code < 0xF0) {
if(s > lim - 2) {
*t++ = 0xEE00 + code;
while(s < lim)
*t++ = 0xEE00 + *s++;
break;
}
word c = ((code - 0xE0) << 12) + ((s[0] - 0x80) << 6) + s[1] - 0x80;
if(s[0] >= 0x80 && s[0] < 0xc0 && s[1] >= 0x80 && s[1] < 0xc0 && c >= 0x800
&& !(c >= 0xEE00 && c <= 0xEEFF))
*t++ = c;
else {
*t++ = 0xEE00 + code;
*t++ = 0xEE00 + s[0];
*t++ = 0xEE00 + s[1];
}
s += 2;
}
else
*t++ = 0xEE00 + code;
}
ASSERT(t - ~result == tlen);
return result;
}
int lenAsUtf8(const wchar *s, int len)
{
const wchar *lim = s + len;
len = 0;
while(s < lim) {
word code = *s++;
if(code < 0x80)
len++;
else
if(code < 0x800)
len += 2;
else
if((code & 0xFF00) == 0xEE00)
len++;
else
len += 3;
}
return len;
}
String ToUtf8(const wchar *s, int len)
{
const wchar *lim = s + len;
int tlen = lenAsUtf8(s, len);
StringBuffer result(tlen);
char *t = result;
while(s < lim) {
word code = *s++;
if(code < 0x80)
*t++ = (char)code;
else
if(code < 0x800) {
*t++ = 0xc0 | (code >> 6);
*t++ = 0x80 | (code & 0x3f);
}
else
if((code & 0xFF00) == 0xEE00)
*t++ = (char) code;
else {
*t++ = 0xe0 | (code >> 12);
*t++ = 0x80 | ((code >> 6) & 0x3f);
*t++ = 0x80 | (code & 0x3f);
}
}
ASSERT(t - ~result == tlen);
return result;
}
int utf8len(const char *s)
{
return utf8len(s, (int)strlen(s));
}
int lenAsUtf8(const wchar *s)
{
return lenAsUtf8(s, wstrlen(s));
}
String ToUtf8(wchar code)
{
return ToUtf8(&code, 1);
}
String ToUtf8(const WString& w)
{
return ToUtf8(w, w.GetLength());
}
String ToUtf8(const wchar *s)
{
return ToUtf8(s, wstrlen(s));
}
bool CheckUtf8(const String& src)
{
return utf8check(~src, src.GetLength());
}
WString FromUtf8(const char *s)
{
return FromUtf8(s, (int)strlen(s));
}
WString FromUtf8(const String& s)
{
return FromUtf8(s, s.GetLength());
}
#ifdef flagSO
bool IsLetter(int c) { return (dword)c < 2048 ? uni__info[c] & 0xc0000000 : 0; }
bool IsUpper(int c) { return (dword)c < 2048 ? uni__info[c] & 0x40000000 : 0; }
bool IsLower(int c) { return (dword)c < 2048 ? uni__info[c] & 0x80000000 : 0; }
int ToUpper(int c) { return (dword)c < 2048 ? (uni__info[c] >> 11) & 2047 : c; }
int ToLower(int c) { return (dword)c < 2048 ? uni__info[c] & 2047 : c; }
int ToAscii(int c) { return (dword)c < 2048 ? (uni__info[c] >> 22) & 0x7f : 0; }
#endif
void ToUpper(wchar *t, const wchar *s, int len)
{
const wchar *lim = s + len;
while(s < lim)
*t++ = ToUpper(*s++);
}
void ToLower(wchar *t, const wchar *s, int len)
{
const wchar *lim = s + len;
while(s < lim)
*t++ = ToLower(*s++);
}
void ToAscii(wchar *t, const wchar *s, int len)
{
const wchar *lim = s + len;
while(s < lim)
*t++ = ToAscii(*s++);
}
void ToUpper(wchar *s, int len) { ToUpper(s, s, len); }
void ToLower(wchar *s, int len) { ToLower(s, s, len); }
void ToAscii(wchar *s, int len) { ToAscii(s, s, len); }
bool IsLetter(int c, byte charset)
{
if((charset ? charset : DefaultCharset) == CHARSET_UTF8)
return IsLetter(c);
CharSetData& cs = s_cset(charset);
return IsLetter(cs.ToUnicode(c));
}
bool IsUpper(int c, byte charset)
{
if((charset ? charset : DefaultCharset) == CHARSET_UTF8)
return IsUpper(c);
CharSetData& cs = s_cset(charset);
return IsUpper(cs.ToUnicode(c));
}
bool IsLower(int c, byte charset)
{
if((charset ? charset : DefaultCharset) == CHARSET_UTF8)
return IsLower(c);
CharSetData& cs = s_cset(charset);
return IsLower(cs.ToUnicode(c));
}
int ToUpper(int c, byte charset)
{
if((charset ? charset : DefaultCharset) == CHARSET_UTF8)
return ToUpper(c);
CharSetData& cs = s_cset(charset);
return cs.FromUnicode(ToUpper(cs.ToUnicode(c)));
}
int ToLower(int c, byte charset)
{
if((charset ? charset : DefaultCharset) == CHARSET_UTF8)
return ToLower(c);
CharSetData& cs = s_cset(charset);
return cs.FromUnicode(ToLower(cs.ToUnicode(c)));
}
int ToAscii(int c, byte charset)
{
if((charset ? charset : DefaultCharset) == CHARSET_UTF8)
return ToAscii(c);
CharSetData& cs = s_cset(charset);
return cs.FromUnicode(ToAscii(cs.ToUnicode(c)));
}
static word sComb(const word *s, word chr)
{
while(*s) {
if(*s == chr)
return s[1];
s += 2;
}
return 0;
}
word UnicodeCombine(word chr, word combine)
{
static word comb300[] = { 0x41, 0xC0, 0x45, 0xC8, 0x49, 0xCC, 0x4F, 0xD2, 0x55, 0xD9, 0x61, 0xE0, 0x65, 0xE8, 0x69, 0xEC, 0x6F, 0xF2, 0x75, 0xF9, 0xDC, 0x1DB, 0xFC, 0x1DC, 0x4E, 0x1F8, 0x6E, 0x1F9, 0x415, 0x400, 0x418, 0x40D, 0x435, 0x450, 0x438, 0x45D, 0 };
static word comb301[] = { 0x41, 0xC1, 0x45, 0xC9, 0x49, 0xCD, 0x4F, 0xD3, 0x55, 0xDA, 0x59, 0xDD, 0x61, 0xE1, 0x65, 0xE9, 0x69, 0xED, 0x6F, 0xF3, 0x75, 0xFA, 0x79, 0xFD, 0x43, 0x106, 0x63, 0x107, 0x4C, 0x139, 0x6C, 0x13A, 0x4E, 0x143, 0x6E, 0x144, 0x52, 0x154, 0x72, 0x155, 0x53, 0x15A, 0x73, 0x15B, 0x5A, 0x179, 0x7A, 0x17A, 0xDC, 0x1D7, 0xFC, 0x1D8, 0x47, 0x1F4, 0x67, 0x1F5, 0xC5, 0x1FA, 0xE5, 0x1FB, 0xC6, 0x1FC, 0xE6, 0x1FD, 0xD8, 0x1FE, 0xF8, 0x1FF, 0x308, 0x344, 0xA8, 0x385, 0x391, 0x386, 0x395, 0x388, 0x397, 0x389, 0x399, 0x38A, 0x39F, 0x38C, 0x3A5, 0x38E, 0x3A9, 0x38F, 0x3CA, 0x390, 0x3B1, 0x3AC, 0x3B5, 0x3AD, 0x3B7, 0x3AE, 0x3B9, 0x3AF, 0x3CB, 0x3B0, 0x3BF, 0x3CC, 0x3C5, 0x3CD, 0x3C9, 0x3CE, 0x3D2, 0x3D3, 0x413, 0x403, 0x41A, 0x40C, 0x433, 0x453, 0x43A, 0x45C, 0 };
static word comb302[] = { 0x41, 0xC2, 0x45, 0xCA, 0x49, 0xCE, 0x4F, 0xD4, 0x55, 0xDB, 0x61, 0xE2, 0x65, 0xEA, 0x69, 0xEE, 0x6F, 0xF4, 0x75, 0xFB, 0x43, 0x108, 0x63, 0x109, 0x47, 0x11C, 0x67, 0x11D, 0x48, 0x124, 0x68, 0x125, 0x4A, 0x134, 0x6A, 0x135, 0x53, 0x15C, 0x73, 0x15D, 0x57, 0x174, 0x77, 0x175, 0x59, 0x176, 0x79, 0x177, 0 };
static word comb303[] = { 0x41, 0xC3, 0x4E, 0xD1, 0x4F, 0xD5, 0x61, 0xE3, 0x6E, 0xF1, 0x6F, 0xF5, 0x49, 0x128, 0x69, 0x129, 0x55, 0x168, 0x75, 0x169, 0 };
static word comb304[] = { 0x41, 0x100, 0x61, 0x101, 0x45, 0x112, 0x65, 0x113, 0x49, 0x12A, 0x69, 0x12B, 0x4F, 0x14C, 0x6F, 0x14D, 0x55, 0x16A, 0x75, 0x16B, 0xDC, 0x1D5, 0xFC, 0x1D6, 0xC4, 0x1DE, 0xE4, 0x1DF, 0x226, 0x1E0, 0x227, 0x1E1, 0xC6, 0x1E2, 0xE6, 0x1E3, 0x1EA, 0x1EC, 0x1EB, 0x1ED, 0xD6, 0x22A, 0xF6, 0x22B, 0xD5, 0x22C, 0xF5, 0x22D, 0x22E, 0x230, 0x22F, 0x231, 0x59, 0x232, 0x79, 0x233, 0x418, 0x4E2, 0x438, 0x4E3, 0x423, 0x4EE, 0x443, 0x4EF, 0 };
static word comb305[] = { 0 };
static word comb306[] = { 0x41, 0x102, 0x61, 0x103, 0x45, 0x114, 0x65, 0x115, 0x47, 0x11E, 0x67, 0x11F, 0x49, 0x12C, 0x69, 0x12D, 0x4F, 0x14E, 0x6F, 0x14F, 0x55, 0x16C, 0x75, 0x16D, 0x423, 0x40E, 0x418, 0x419, 0x438, 0x439, 0x443, 0x45E, 0x416, 0x4C1, 0x436, 0x4C2, 0x410, 0x4D0, 0x430, 0x4D1, 0x415, 0x4D6, 0x435, 0x4D7, 0 };
static word comb307[] = { 0x43, 0x10A, 0x63, 0x10B, 0x45, 0x116, 0x65, 0x117, 0x47, 0x120, 0x67, 0x121, 0x49, 0x130, 0x5A, 0x17B, 0x7A, 0x17C, 0x41, 0x226, 0x61, 0x227, 0x4F, 0x22E, 0x6F, 0x22F, 0 };
static word comb308[] = { 0x41, 0xC4, 0x45, 0xCB, 0x49, 0xCF, 0x4F, 0xD6, 0x55, 0xDC, 0x61, 0xE4, 0x65, 0xEB, 0x69, 0xEF, 0x6F, 0xF6, 0x75, 0xFC, 0x79, 0xFF, 0x59, 0x178, 0x399, 0x3AA, 0x3A5, 0x3AB, 0x3B9, 0x3CA, 0x3C5, 0x3CB, 0x3D2, 0x3D4, 0x415, 0x401, 0x406, 0x407, 0x435, 0x451, 0x456, 0x457, 0x410, 0x4D2, 0x430, 0x4D3, 0x4D8, 0x4DA, 0x4D9, 0x4DB, 0x416, 0x4DC, 0x436, 0x4DD, 0x417, 0x4DE, 0x437, 0x4DF, 0x418, 0x4E4, 0x438, 0x4E5, 0x41E, 0x4E6, 0x43E, 0x4E7, 0x4E8, 0x4EA, 0x4E9, 0x4EB, 0x42D, 0x4EC, 0x44D, 0x4ED, 0x423, 0x4F0, 0x443, 0x4F1, 0x427, 0x4F4, 0x447, 0x4F5, 0x42B, 0x4F8, 0x44B, 0x4F9, 0 };
static word comb309[] = { 0 };
static word comb30A[] = { 0x41, 0xC5, 0x61, 0xE5, 0x55, 0x16E, 0x75, 0x16F, 0 };
static word comb30B[] = { 0x4F, 0x150, 0x6F, 0x151, 0x55, 0x170, 0x75, 0x171, 0x423, 0x4F2, 0x443, 0x4F3, 0 };
static word comb30C[] = { 0x43, 0x10C, 0x63, 0x10D, 0x44, 0x10E, 0x64, 0x10F, 0x45, 0x11A, 0x65, 0x11B, 0x4C, 0x13D, 0x6C, 0x13E, 0x4E, 0x147, 0x6E, 0x148, 0x52, 0x158, 0x72, 0x159, 0x53, 0x160, 0x73, 0x161, 0x54, 0x164, 0x74, 0x165, 0x5A, 0x17D, 0x7A, 0x17E, 0x41, 0x1CD, 0x61, 0x1CE, 0x49, 0x1CF, 0x69, 0x1D0, 0x4F, 0x1D1, 0x6F, 0x1D2, 0x55, 0x1D3, 0x75, 0x1D4, 0xDC, 0x1D9, 0xFC, 0x1DA, 0x47, 0x1E6, 0x67, 0x1E7, 0x4B, 0x1E8, 0x6B, 0x1E9, 0x1B7, 0x1EE, 0x292, 0x1EF, 0x6A, 0x1F0, 0x48, 0x21E, 0x68, 0x21F, 0 };
static word comb30D[] = { 0 };
static word comb30E[] = { 0 };
static word comb30F[] = { 0x41, 0x200, 0x61, 0x201, 0x45, 0x204, 0x65, 0x205, 0x49, 0x208, 0x69, 0x209, 0x4F, 0x20C, 0x6F, 0x20D, 0x52, 0x210, 0x72, 0x211, 0x55, 0x214, 0x75, 0x215, 0x474, 0x476, 0x475, 0x477, 0 };
static const word *comb[] = {
comb300, comb301, comb302, comb303, comb304, comb305, comb306, comb307,
comb308, comb309, comb30A, comb30B, comb30C, comb30D, comb30E, comb30F,
};
if(combine >= 0x300 && combine <= 0x30F)
return sComb(comb[combine - 0x300], chr);
static word comb311[] = { 0x41, 0x202, 0x61, 0x203, 0x45, 0x206, 0x65, 0x207, 0x49, 0x20A, 0x69, 0x20B, 0x4F, 0x20E, 0x6F, 0x20F, 0x52, 0x212, 0x72, 0x213, 0x55, 0x216, 0x75, 0x217, 0 };
static word comb31B[] = { 0x4F, 0x1A0, 0x6F, 0x1A1, 0x55, 0x1AF, 0x75, 0x1B0, 0 };
static word comb326[] = { 0x53, 0x218, 0x73, 0x219, 0x54, 0x21A, 0x74, 0x21B, 0 };
static word comb327[] = { 0x43, 0xC7, 0x63, 0xE7, 0x47, 0x122, 0x67, 0x123, 0x4B, 0x136, 0x6B, 0x137, 0x4C, 0x13B, 0x6C, 0x13C, 0x4E, 0x145, 0x6E, 0x146, 0x52, 0x156, 0x72, 0x157, 0x53, 0x15E, 0x73, 0x15F, 0x54, 0x162, 0x74, 0x163, 0x45, 0x228, 0x65, 0x229, 0 };
static word comb328[] = { 0x41, 0x104, 0x61, 0x105, 0x45, 0x118, 0x65, 0x119, 0x49, 0x12E, 0x69, 0x12F, 0x55, 0x172, 0x75, 0x173, 0x4F, 0x1EA, 0x6F, 0x1EB, 0 };
static word comb653[] = { 0x627, 0x622, 0 };
static word comb654[] = { 0x627, 0x623, 0x648, 0x624, 0x64A, 0x626, 0x6D5, 0x6C0, 0x6C1, 0x6C2, 0x6D2, 0x6D3, 0 };
static word comb655[] = { 0x627, 0x625, 0 };
switch(combine) {
case 0x311: return sComb(comb311, chr);
case 0x31B: return sComb(comb31B, chr);
case 0x326: return sComb(comb326, chr);
case 0x327: return sComb(comb327, chr);
case 0x328: return sComb(comb328, chr);
case 0x653: return sComb(comb653, chr);
case 0x654: return sComb(comb654, chr);
case 0x655: return sComb(comb655, chr);
}
return 0;
}
void ToUpper(char *t, const char *s, int len, byte charset)
{
charset = ResolveCharset(charset);
CharSetData& cs = s_cset(charset);
const char *lim = s + len;
while(s < lim)
*t++ = cs.FromUnicode(UPP::ToUpper(cs.ToUnicode(*s++)));
}
void ToLower(char *t, const char *s, int len, byte charset)
{
charset = ResolveCharset(charset);
CharSetData& cs = s_cset(charset);
const char *lim = s + len;
while(s < lim)
*t++ = cs.FromUnicode(UPP::ToLower(cs.ToUnicode(*s++)));
}
void ToAscii(char *t, const char *s, int len, byte charset)
{
charset = ResolveCharset(charset);
CharSetData& cs = s_cset(charset);
const char *lim = s + len;
while(s < lim)
*t++ = cs.FromUnicode(UPP::ToAscii(cs.ToUnicode(*s++)));
}
void ToUpper(char *s, int len, byte charset)
{
ToUpper(s, s, len, charset);
}
void ToLower(char *s, int len, byte charset)
{
ToLower(s, s, len, charset);
}
void ToAscii(char *s, int len, byte charset)
{
ToAscii(s, s, len, charset);
}
WString ToUnicode(const char *src, int l, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return FromUtf8(src, l);
WStringBuffer result(l);
ToUnicode(result, src, l, charset);
return result;
}
WString ToUnicode(const String& src, byte charset)
{
return ToUnicode(src, src.GetLength(), charset);
}
String FromUnicode(const WString& src, byte charset, int def)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(src);
int l = src.GetLength();
StringBuffer result(l);
FromUnicode(result, src, l, charset, def);
return result;
}
String ToCharset(byte charset, const String& src, byte scharset, int def)
{
charset = ResolveCharset(charset);
scharset = ResolveCharset(scharset);
if(charset == scharset)
return src;
int slen = src.GetLength();
if(scharset == CHARSET_UTF8)
return FromUnicode(FromUtf8(src, slen), charset, def);
if(charset == CHARSET_UTF8)
return ToUtf8(ToUnicode(src, scharset));
StringBuffer result(slen);
ConvertCharset(result, charset, src, scharset, slen);
return result;
}
WString InitCaps(const wchar *s)
{
WString r;
bool spc = true;
while(*s) {
if(spc)
r.Cat(ToUpper(*s));
else
r.Cat(ToLower(*s));
spc = IsSpace(*s);
s++;
}
return r;
}
WString InitCaps(const WString& s)
{
WStringBuffer r;
r.SetCount(s.GetCount());
bool spc = true;
for(int i = 0; i < s.GetCount(); i++) {
int c = s[i];
if(spc)
r[i] = ToUpper(c);
else
r[i] = ToLower(c);
spc = IsSpace(c);
}
return r;
}
WString ToUpper(const WString& w)
{
int l = w.GetLength();
WStringBuffer r(l);
ToUpper(r, w, l);
return r;
}
WString ToLower(const WString& w)
{
int l = w.GetLength();
WStringBuffer r(l);
ToLower(r, w, l);
return r;
}
WString ToAscii(const WString& w)
{
int l = w.GetLength();
WStringBuffer r(l);
ToAscii(r, w, l);
return r;
}
String InitCaps(const char *s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(InitCaps(FromUtf8(s)));
StringBuffer r;
bool spc = true;
while(*s) {
if(spc)
r.Cat(ToUpper(*s, charset));
else
r.Cat(ToLower(*s, charset));
spc = IsSpace(*s);
s++;
}
return r;
}
String ToUpper(const char *s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(ToUpper(FromUtf8(s)));
int l = (int)strlen(s);
StringBuffer r(l);
ToUpper(r, s, l, charset);
return r;
}
String ToLower(const char *s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(ToLower(FromUtf8(s)));
int l = (int)strlen(s);
StringBuffer r(l);
ToLower(r, s, l, charset);
return r;
}
String ToAscii(const char *s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(ToAscii(FromUtf8(s)));
int l = (int)strlen(s);
StringBuffer r(l);
ToAscii(r, s, l, charset);
return r;
}
String ToUpper(const String& s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(ToUpper(FromUtf8(s)));
int l = s.GetLength();
StringBuffer r(l);
ToUpper(r, s, l, charset);
return r;
}
String ToLower(const String& s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(ToLower(FromUtf8(s)));
int l = s.GetLength();
StringBuffer r(l);
ToLower(r, s, l, charset);
return r;
}
String ToAscii(const String& s, byte charset)
{
charset = ResolveCharset(charset);
if(charset == CHARSET_UTF8)
return ToUtf8(ToAscii(FromUtf8(s)));
int l = s.GetLength();
StringBuffer r(l);
ToAscii(r, s, l, charset);
return r;
}
END_UPP_NAMESPACE