Kouhei Sutou
null+****@clear*****
Sun Feb 10 21:55:26 JST 2013
Kouhei Sutou 2013-02-10 21:55:26 +0900 (Sun, 10 Feb 2013) New Revision: e38ab1c63abd79c6afba88fcaa3705671a7f5b47 https://github.com/groonga/groonga-normalizer-mysql/commit/e38ab1c63abd79c6afba88fcaa3705671a7f5b47 Log: Use generated general_ci_table Added files: normalizers/mysql_general_ci_table.h Modified files: normalizers/mysql.c Modified: normalizers/mysql.c (+3 -1506) =================================================================== --- normalizers/mysql.c 2013-02-10 21:55:01 +0900 (ad4e2f7) +++ normalizers/mysql.c 2013-02-10 21:55:26 +0900 (39eabfc) @@ -16,36 +16,12 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - - This file uses normalization table defined in - MySQL-5.5.29/strings/ctype-utf8.c. The following is the header of - the file: - - Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; version 2 - of the License. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - MA 02110-1301, USA - - UTF8 according RFC 2279 - Written by Alexander Barkov <bar �� udm.net> */ #include <groonga/normalizer.h> #include <groonga/nfkc.h> -#include <stdint.h> +#include "mysql_general_ci_table.h" #ifdef __GNUC__ # define GNUC_UNUSED __attribute__((__unused__)) @@ -53,1484 +29,6 @@ # define GNUC_UNUSED #endif -/* based on mysql-5.5.29/strings/ctype-utf8.c: start */ -static uint32_t plane00[] = { - 0x0000, 0x0001, - 0x0002, 0x0003, - 0x0004, 0x0005, - 0x0006, 0x0007, - 0x0008, 0x0009, - 0x000A, 0x000B, - 0x000C, 0x000D, - 0x000E, 0x000F, - 0x0010, 0x0011, - 0x0012, 0x0013, - 0x0014, 0x0015, - 0x0016, 0x0017, - 0x0018, 0x0019, - 0x001A, 0x001B, - 0x001C, 0x001D, - 0x001E, 0x001F, - 0x0020, 0x0021, - 0x0022, 0x0023, - 0x0024, 0x0025, - 0x0026, 0x0027, - 0x0028, 0x0029, - 0x002A, 0x002B, - 0x002C, 0x002D, - 0x002E, 0x002F, - 0x0030, 0x0031, - 0x0032, 0x0033, - 0x0034, 0x0035, - 0x0036, 0x0037, - 0x0038, 0x0039, - 0x003A, 0x003B, - 0x003C, 0x003D, - 0x003E, 0x003F, - 0x0040, 0x0041, - 0x0042, 0x0043, - 0x0044, 0x0045, - 0x0046, 0x0047, - 0x0048, 0x0049, - 0x004A, 0x004B, - 0x004C, 0x004D, - 0x004E, 0x004F, - 0x0050, 0x0051, - 0x0052, 0x0053, - 0x0054, 0x0055, - 0x0056, 0x0057, - 0x0058, 0x0059, - 0x005A, 0x005B, - 0x005C, 0x005D, - 0x005E, 0x005F, - 0x0060, 0x0041, - 0x0042, 0x0043, - 0x0044, 0x0045, - 0x0046, 0x0047, - 0x0048, 0x0049, - 0x004A, 0x004B, - 0x004C, 0x004D, - 0x004E, 0x004F, - 0x0050, 0x0051, - 0x0052, 0x0053, - 0x0054, 0x0055, - 0x0056, 0x0057, - 0x0058, 0x0059, - 0x005A, 0x007B, - 0x007C, 0x007D, - 0x007E, 0x007F, - 0x0080, 0x0081, - 0x0082, 0x0083, - 0x0084, 0x0085, - 0x0086, 0x0087, - 0x0088, 0x0089, - 0x008A, 0x008B, - 0x008C, 0x008D, - 0x008E, 0x008F, - 0x0090, 0x0091, - 0x0092, 0x0093, - 0x0094, 0x0095, - 0x0096, 0x0097, - 0x0098, 0x0099, - 0x009A, 0x009B, - 0x009C, 0x009D, - 0x009E, 0x009F, - 0x00A0, 0x00A1, - 0x00A2, 0x00A3, - 0x00A4, 0x00A5, - 0x00A6, 0x00A7, - 0x00A8, 0x00A9, - 0x00AA, 0x00AB, - 0x00AC, 0x00AD, - 0x00AE, 0x00AF, - 0x00B0, 0x00B1, - 0x00B2, 0x00B3, - 0x00B4, 0x039C, - 0x00B6, 0x00B7, - 0x00B8, 0x00B9, - 0x00BA, 0x00BB, - 0x00BC, 0x00BD, - 0x00BE, 0x00BF, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x00C6, 0x0043, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x00D0, 0x004E, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x00D7, - 0x00D8, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0059, - 0x00DE, 0x0053, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x00C6, 0x0043, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x00D0, 0x004E, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x00F7, - 0x00D8, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0059, - 0x00DE, 0x0059 -}; - -static uint32_t plane01[] = { - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0043, 0x0043, - 0x0043, 0x0043, - 0x0043, 0x0043, - 0x0043, 0x0043, - 0x0044, 0x0044, - 0x0110, 0x0110, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0047, 0x0047, - 0x0047, 0x0047, - 0x0047, 0x0047, - 0x0047, 0x0047, - 0x0048, 0x0048, - 0x0126, 0x0126, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x0132, 0x0132, - 0x004A, 0x004A, - 0x004B, 0x004B, - 0x0138, 0x004C, - 0x004C, 0x004C, - 0x004C, 0x004C, - 0x004C, 0x013F, - 0x013F, 0x0141, - 0x0141, 0x004E, - 0x004E, 0x004E, - 0x004E, 0x004E, - 0x004E, 0x0149, - 0x014A, 0x014A, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x0152, 0x0152, - 0x0052, 0x0052, - 0x0052, 0x0052, - 0x0052, 0x0052, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0054, 0x0054, - 0x0054, 0x0054, - 0x0166, 0x0166, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0057, 0x0057, - 0x0059, 0x0059, - 0x0059, 0x005A, - 0x005A, 0x005A, - 0x005A, 0x005A, - 0x005A, 0x0053, - 0x0180, 0x0181, - 0x0182, 0x0182, - 0x0184, 0x0184, - 0x0186, 0x0187, - 0x0187, 0x0189, - 0x018A, 0x018B, - 0x018B, 0x018D, - 0x018E, 0x018F, - 0x0190, 0x0191, - 0x0191, 0x0193, - 0x0194, 0x01F6, - 0x0196, 0x0197, - 0x0198, 0x0198, - 0x019A, 0x019B, - 0x019C, 0x019D, - 0x019E, 0x019F, - 0x004F, 0x004F, - 0x01A2, 0x01A2, - 0x01A4, 0x01A4, - 0x01A6, 0x01A7, - 0x01A7, 0x01A9, - 0x01AA, 0x01AB, - 0x01AC, 0x01AC, - 0x01AE, 0x0055, - 0x0055, 0x01B1, - 0x01B2, 0x01B3, - 0x01B3, 0x01B5, - 0x01B5, 0x01B7, - 0x01B8, 0x01B8, - 0x01BA, 0x01BB, - 0x01BC, 0x01BC, - 0x01BE, 0x01F7, - 0x01C0, 0x01C1, - 0x01C2, 0x01C3, - 0x01C4, 0x01C4, - 0x01C4, 0x01C7, - 0x01C7, 0x01C7, - 0x01CA, 0x01CA, - 0x01CA, 0x0041, - 0x0041, 0x0049, - 0x0049, 0x004F, - 0x004F, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x018E, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x00C6, 0x00C6, - 0x01E4, 0x01E4, - 0x0047, 0x0047, - 0x004B, 0x004B, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x01B7, 0x01B7, - 0x004A, 0x01F1, - 0x01F1, 0x01F1, - 0x0047, 0x0047, - 0x01F6, 0x01F7, - 0x004E, 0x004E, - 0x0041, 0x0041, - 0x00C6, 0x00C6, - 0x00D8, 0x00D8 -}; - -static uint32_t plane02[] = { - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x0052, 0x0052, - 0x0052, 0x0052, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0053, 0x0053, - 0x0054, 0x0054, - 0x021C, 0x021C, - 0x0048, 0x0048, - 0x0220, 0x0221, - 0x0222, 0x0222, - 0x0224, 0x0224, - 0x0041, 0x0041, - 0x0045, 0x0045, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x0059, 0x0059, - 0x0234, 0x0235, - 0x0236, 0x0237, - 0x0238, 0x0239, - 0x023A, 0x023B, - 0x023C, 0x023D, - 0x023E, 0x023F, - 0x0240, 0x0241, - 0x0242, 0x0243, - 0x0244, 0x0245, - 0x0246, 0x0247, - 0x0248, 0x0249, - 0x024A, 0x024B, - 0x024C, 0x024D, - 0x024E, 0x024F, - 0x0250, 0x0251, - 0x0252, 0x0181, - 0x0186, 0x0255, - 0x0189, 0x018A, - 0x0258, 0x018F, - 0x025A, 0x0190, - 0x025C, 0x025D, - 0x025E, 0x025F, - 0x0193, 0x0261, - 0x0262, 0x0194, - 0x0264, 0x0265, - 0x0266, 0x0267, - 0x0197, 0x0196, - 0x026A, 0x026B, - 0x026C, 0x026D, - 0x026E, 0x019C, - 0x0270, 0x0271, - 0x019D, 0x0273, - 0x0274, 0x019F, - 0x0276, 0x0277, - 0x0278, 0x0279, - 0x027A, 0x027B, - 0x027C, 0x027D, - 0x027E, 0x027F, - 0x01A6, 0x0281, - 0x0282, 0x01A9, - 0x0284, 0x0285, - 0x0286, 0x0287, - 0x01AE, 0x0289, - 0x01B1, 0x01B2, - 0x028C, 0x028D, - 0x028E, 0x028F, - 0x0290, 0x0291, - 0x01B7, 0x0293, - 0x0294, 0x0295, - 0x0296, 0x0297, - 0x0298, 0x0299, - 0x029A, 0x029B, - 0x029C, 0x029D, - 0x029E, 0x029F, - 0x02A0, 0x02A1, - 0x02A2, 0x02A3, - 0x02A4, 0x02A5, - 0x02A6, 0x02A7, - 0x02A8, 0x02A9, - 0x02AA, 0x02AB, - 0x02AC, 0x02AD, - 0x02AE, 0x02AF, - 0x02B0, 0x02B1, - 0x02B2, 0x02B3, - 0x02B4, 0x02B5, - 0x02B6, 0x02B7, - 0x02B8, 0x02B9, - 0x02BA, 0x02BB, - 0x02BC, 0x02BD, - 0x02BE, 0x02BF, - 0x02C0, 0x02C1, - 0x02C2, 0x02C3, - 0x02C4, 0x02C5, - 0x02C6, 0x02C7, - 0x02C8, 0x02C9, - 0x02CA, 0x02CB, - 0x02CC, 0x02CD, - 0x02CE, 0x02CF, - 0x02D0, 0x02D1, - 0x02D2, 0x02D3, - 0x02D4, 0x02D5, - 0x02D6, 0x02D7, - 0x02D8, 0x02D9, - 0x02DA, 0x02DB, - 0x02DC, 0x02DD, - 0x02DE, 0x02DF, - 0x02E0, 0x02E1, - 0x02E2, 0x02E3, - 0x02E4, 0x02E5, - 0x02E6, 0x02E7, - 0x02E8, 0x02E9, - 0x02EA, 0x02EB, - 0x02EC, 0x02ED, - 0x02EE, 0x02EF, - 0x02F0, 0x02F1, - 0x02F2, 0x02F3, - 0x02F4, 0x02F5, - 0x02F6, 0x02F7, - 0x02F8, 0x02F9, - 0x02FA, 0x02FB, - 0x02FC, 0x02FD, - 0x02FE, 0x02FF -}; - -static uint32_t plane03[] = { - 0x0300, 0x0301, - 0x0302, 0x0303, - 0x0304, 0x0305, - 0x0306, 0x0307, - 0x0308, 0x0309, - 0x030A, 0x030B, - 0x030C, 0x030D, - 0x030E, 0x030F, - 0x0310, 0x0311, - 0x0312, 0x0313, - 0x0314, 0x0315, - 0x0316, 0x0317, - 0x0318, 0x0319, - 0x031A, 0x031B, - 0x031C, 0x031D, - 0x031E, 0x031F, - 0x0320, 0x0321, - 0x0322, 0x0323, - 0x0324, 0x0325, - 0x0326, 0x0327, - 0x0328, 0x0329, - 0x032A, 0x032B, - 0x032C, 0x032D, - 0x032E, 0x032F, - 0x0330, 0x0331, - 0x0332, 0x0333, - 0x0334, 0x0335, - 0x0336, 0x0337, - 0x0338, 0x0339, - 0x033A, 0x033B, - 0x033C, 0x033D, - 0x033E, 0x033F, - 0x0340, 0x0341, - 0x0342, 0x0343, - 0x0344, 0x0399, - 0x0346, 0x0347, - 0x0348, 0x0349, - 0x034A, 0x034B, - 0x034C, 0x034D, - 0x034E, 0x034F, - 0x0350, 0x0351, - 0x0352, 0x0353, - 0x0354, 0x0355, - 0x0356, 0x0357, - 0x0358, 0x0359, - 0x035A, 0x035B, - 0x035C, 0x035D, - 0x035E, 0x035F, - 0x0360, 0x0361, - 0x0362, 0x0363, - 0x0364, 0x0365, - 0x0366, 0x0367, - 0x0368, 0x0369, - 0x036A, 0x036B, - 0x036C, 0x036D, - 0x036E, 0x036F, - 0x0370, 0x0371, - 0x0372, 0x0373, - 0x0374, 0x0375, - 0x0376, 0x0377, - 0x0378, 0x0379, - 0x037A, 0x037B, - 0x037C, 0x037D, - 0x037E, 0x037F, - 0x0380, 0x0381, - 0x0382, 0x0383, - 0x0384, 0x0385, - 0x0391, 0x0387, - 0x0395, 0x0397, - 0x0399, 0x038B, - 0x039F, 0x038D, - 0x03A5, 0x03A9, - 0x0399, 0x0391, - 0x0392, 0x0393, - 0x0394, 0x0395, - 0x0396, 0x0397, - 0x0398, 0x0399, - 0x039A, 0x039B, - 0x039C, 0x039D, - 0x039E, 0x039F, - 0x03A0, 0x03A1, - 0x03A2, 0x03A3, - 0x03A4, 0x03A5, - 0x03A6, 0x03A7, - 0x03A8, 0x03A9, - 0x0399, 0x03A5, - 0x0391, 0x0395, - 0x0397, 0x0399, - 0x03A5, 0x0391, - 0x0392, 0x0393, - 0x0394, 0x0395, - 0x0396, 0x0397, - 0x0398, 0x0399, - 0x039A, 0x039B, - 0x039C, 0x039D, - 0x039E, 0x039F, - 0x03A0, 0x03A1, - 0x03A3, 0x03A3, - 0x03A4, 0x03A5, - 0x03A6, 0x03A7, - 0x03A8, 0x03A9, - 0x0399, 0x03A5, - 0x039F, 0x03A5, - 0x03A9, 0x03CF, - 0x0392, 0x0398, - 0x03D2, 0x03D2, - 0x03D2, 0x03A6, - 0x03A0, 0x03D7, - 0x03D8, 0x03D9, - 0x03DA, 0x03DA, - 0x03DC, 0x03DC, - 0x03DE, 0x03DE, - 0x03E0, 0x03E0, - 0x03E2, 0x03E2, - 0x03E4, 0x03E4, - 0x03E6, 0x03E6, - 0x03E8, 0x03E8, - 0x03EA, 0x03EA, - 0x03EC, 0x03EC, - 0x03EE, 0x03EE, - 0x039A, 0x03A1, - 0x03A3, 0x03F3, - 0x03F4, 0x03F5, - 0x03F6, 0x03F7, - 0x03F8, 0x03F9, - 0x03FA, 0x03FB, - 0x03FC, 0x03FD, - 0x03FE, 0x03FF -}; - -static uint32_t plane04[] = { - 0x0415, 0x0415, - 0x0402, 0x0413, - 0x0404, 0x0405, - 0x0406, 0x0406, - 0x0408, 0x0409, - 0x040A, 0x040B, - 0x041A, 0x0418, - 0x0423, 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, - 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, - 0x0415, 0x0415, - 0x0402, 0x0413, - 0x0404, 0x0405, - 0x0406, 0x0406, - 0x0408, 0x0409, - 0x040A, 0x040B, - 0x041A, 0x0418, - 0x0423, 0x040F, - 0x0460, 0x0460, - 0x0462, 0x0462, - 0x0464, 0x0464, - 0x0466, 0x0466, - 0x0468, 0x0468, - 0x046A, 0x046A, - 0x046C, 0x046C, - 0x046E, 0x046E, - 0x0470, 0x0470, - 0x0472, 0x0472, - 0x0474, 0x0474, - 0x0474, 0x0474, - 0x0478, 0x0478, - 0x047A, 0x047A, - 0x047C, 0x047C, - 0x047E, 0x047E, - 0x0480, 0x0480, - 0x0482, 0x0483, - 0x0484, 0x0485, - 0x0486, 0x0487, - 0x0488, 0x0489, - 0x048A, 0x048B, - 0x048C, 0x048C, - 0x048E, 0x048E, - 0x0490, 0x0490, - 0x0492, 0x0492, - 0x0494, 0x0494, - 0x0496, 0x0496, - 0x0498, 0x0498, - 0x049A, 0x049A, - 0x049C, 0x049C, - 0x049E, 0x049E, - 0x04A0, 0x04A0, - 0x04A2, 0x04A2, - 0x04A4, 0x04A4, - 0x04A6, 0x04A6, - 0x04A8, 0x04A8, - 0x04AA, 0x04AA, - 0x04AC, 0x04AC, - 0x04AE, 0x04AE, - 0x04B0, 0x04B0, - 0x04B2, 0x04B2, - 0x04B4, 0x04B4, - 0x04B6, 0x04B6, - 0x04B8, 0x04B8, - 0x04BA, 0x04BA, - 0x04BC, 0x04BC, - 0x04BE, 0x04BE, - 0x04C0, 0x0416, - 0x0416, 0x04C3, - 0x04C3, 0x04C5, - 0x04C6, 0x04C7, - 0x04C7, 0x04C9, - 0x04CA, 0x04CB, - 0x04CB, 0x04CD, - 0x04CE, 0x04CF, - 0x0410, 0x0410, - 0x0410, 0x0410, - 0x04D4, 0x04D4, - 0x0415, 0x0415, - 0x04D8, 0x04D8, - 0x04D8, 0x04D8, - 0x0416, 0x0416, - 0x0417, 0x0417, - 0x04E0, 0x04E0, - 0x0418, 0x0418, - 0x0418, 0x0418, - 0x041E, 0x041E, - 0x04E8, 0x04E8, - 0x04E8, 0x04E8, - 0x042D, 0x042D, - 0x0423, 0x0423, - 0x0423, 0x0423, - 0x0423, 0x0423, - 0x0427, 0x0427, - 0x04F6, 0x04F7, - 0x042B, 0x042B, - 0x04FA, 0x04FB, - 0x04FC, 0x04FD, - 0x04FE, 0x04FF -}; - -static uint32_t plane05[] = { - 0x0500, 0x0501, - 0x0502, 0x0503, - 0x0504, 0x0505, - 0x0506, 0x0507, - 0x0508, 0x0509, - 0x050A, 0x050B, - 0x050C, 0x050D, - 0x050E, 0x050F, - 0x0510, 0x0511, - 0x0512, 0x0513, - 0x0514, 0x0515, - 0x0516, 0x0517, - 0x0518, 0x0519, - 0x051A, 0x051B, - 0x051C, 0x051D, - 0x051E, 0x051F, - 0x0520, 0x0521, - 0x0522, 0x0523, - 0x0524, 0x0525, - 0x0526, 0x0527, - 0x0528, 0x0529, - 0x052A, 0x052B, - 0x052C, 0x052D, - 0x052E, 0x052F, - 0x0530, 0x0531, - 0x0532, 0x0533, - 0x0534, 0x0535, - 0x0536, 0x0537, - 0x0538, 0x0539, - 0x053A, 0x053B, - 0x053C, 0x053D, - 0x053E, 0x053F, - 0x0540, 0x0541, - 0x0542, 0x0543, - 0x0544, 0x0545, - 0x0546, 0x0547, - 0x0548, 0x0549, - 0x054A, 0x054B, - 0x054C, 0x054D, - 0x054E, 0x054F, - 0x0550, 0x0551, - 0x0552, 0x0553, - 0x0554, 0x0555, - 0x0556, 0x0557, - 0x0558, 0x0559, - 0x055A, 0x055B, - 0x055C, 0x055D, - 0x055E, 0x055F, - 0x0560, 0x0531, - 0x0532, 0x0533, - 0x0534, 0x0535, - 0x0536, 0x0537, - 0x0538, 0x0539, - 0x053A, 0x053B, - 0x053C, 0x053D, - 0x053E, 0x053F, - 0x0540, 0x0541, - 0x0542, 0x0543, - 0x0544, 0x0545, - 0x0546, 0x0547, - 0x0548, 0x0549, - 0x054A, 0x054B, - 0x054C, 0x054D, - 0x054E, 0x054F, - 0x0550, 0x0551, - 0x0552, 0x0553, - 0x0554, 0x0555, - 0x0556, 0x0587, - 0x0588, 0x0589, - 0x058A, 0x058B, - 0x058C, 0x058D, - 0x058E, 0x058F, - 0x0590, 0x0591, - 0x0592, 0x0593, - 0x0594, 0x0595, - 0x0596, 0x0597, - 0x0598, 0x0599, - 0x059A, 0x059B, - 0x059C, 0x059D, - 0x059E, 0x059F, - 0x05A0, 0x05A1, - 0x05A2, 0x05A3, - 0x05A4, 0x05A5, - 0x05A6, 0x05A7, - 0x05A8, 0x05A9, - 0x05AA, 0x05AB, - 0x05AC, 0x05AD, - 0x05AE, 0x05AF, - 0x05B0, 0x05B1, - 0x05B2, 0x05B3, - 0x05B4, 0x05B5, - 0x05B6, 0x05B7, - 0x05B8, 0x05B9, - 0x05BA, 0x05BB, - 0x05BC, 0x05BD, - 0x05BE, 0x05BF, - 0x05C0, 0x05C1, - 0x05C2, 0x05C3, - 0x05C4, 0x05C5, - 0x05C6, 0x05C7, - 0x05C8, 0x05C9, - 0x05CA, 0x05CB, - 0x05CC, 0x05CD, - 0x05CE, 0x05CF, - 0x05D0, 0x05D1, - 0x05D2, 0x05D3, - 0x05D4, 0x05D5, - 0x05D6, 0x05D7, - 0x05D8, 0x05D9, - 0x05DA, 0x05DB, - 0x05DC, 0x05DD, - 0x05DE, 0x05DF, - 0x05E0, 0x05E1, - 0x05E2, 0x05E3, - 0x05E4, 0x05E5, - 0x05E6, 0x05E7, - 0x05E8, 0x05E9, - 0x05EA, 0x05EB, - 0x05EC, 0x05ED, - 0x05EE, 0x05EF, - 0x05F0, 0x05F1, - 0x05F2, 0x05F3, - 0x05F4, 0x05F5, - 0x05F6, 0x05F7, - 0x05F8, 0x05F9, - 0x05FA, 0x05FB, - 0x05FC, 0x05FD, - 0x05FE, 0x05FF -}; - -static uint32_t plane1E[] = { - 0x0041, 0x0041, - 0x0042, 0x0042, - 0x0042, 0x0042, - 0x0042, 0x0042, - 0x0043, 0x0043, - 0x0044, 0x0044, - 0x0044, 0x0044, - 0x0044, 0x0044, - 0x0044, 0x0044, - 0x0044, 0x0044, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0046, 0x0046, - 0x0047, 0x0047, - 0x0048, 0x0048, - 0x0048, 0x0048, - 0x0048, 0x0048, - 0x0048, 0x0048, - 0x0048, 0x0048, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x004B, 0x004B, - 0x004B, 0x004B, - 0x004B, 0x004B, - 0x004C, 0x004C, - 0x004C, 0x004C, - 0x004C, 0x004C, - 0x004C, 0x004C, - 0x004D, 0x004D, - 0x004D, 0x004D, - 0x004D, 0x004D, - 0x004E, 0x004E, - 0x004E, 0x004E, - 0x004E, 0x004E, - 0x004E, 0x004E, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x0050, 0x0050, - 0x0050, 0x0050, - 0x0052, 0x0052, - 0x0052, 0x0052, - 0x0052, 0x0052, - 0x0052, 0x0052, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0053, 0x0053, - 0x0054, 0x0054, - 0x0054, 0x0054, - 0x0054, 0x0054, - 0x0054, 0x0054, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0056, 0x0056, - 0x0056, 0x0056, - 0x0057, 0x0057, - 0x0057, 0x0057, - 0x0057, 0x0057, - 0x0057, 0x0057, - 0x0057, 0x0057, - 0x0058, 0x0058, - 0x0058, 0x0058, - 0x0059, 0x0059, - 0x005A, 0x005A, - 0x005A, 0x005A, - 0x005A, 0x005A, - 0x0048, 0x0054, - 0x0057, 0x0059, - 0x1E9A, 0x0053, - 0x1E9C, 0x1E9D, - 0x1E9E, 0x1E9F, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0041, 0x0041, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0045, 0x0045, - 0x0049, 0x0049, - 0x0049, 0x0049, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x004F, 0x004F, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0055, 0x0055, - 0x0059, 0x0059, - 0x0059, 0x0059, - 0x0059, 0x0059, - 0x0059, 0x0059, - 0x1EFA, 0x1EFB, - 0x1EFC, 0x1EFD, - 0x1EFE, 0x1EFF -}; - -static uint32_t plane1F[] = { - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0395, 0x0395, - 0x0395, 0x0395, - 0x0395, 0x0395, - 0x1F16, 0x1F17, - 0x0395, 0x0395, - 0x0395, 0x0395, - 0x0395, 0x0395, - 0x1F1E, 0x1F1F, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x039F, 0x039F, - 0x039F, 0x039F, - 0x039F, 0x039F, - 0x1F46, 0x1F47, - 0x039F, 0x039F, - 0x039F, 0x039F, - 0x039F, 0x039F, - 0x1F4E, 0x1F4F, - 0x03A5, 0x03A5, - 0x03A5, 0x03A5, - 0x03A5, 0x03A5, - 0x03A5, 0x03A5, - 0x1F58, 0x03A5, - 0x1F5A, 0x03A5, - 0x1F5C, 0x03A5, - 0x1F5E, 0x03A5, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x0391, 0x1FBB, - 0x0395, 0x1FC9, - 0x0397, 0x1FCB, - 0x0399, 0x1FDB, - 0x039F, 0x1FF9, - 0x03A5, 0x1FEB, - 0x03A9, 0x1FFB, - 0x1F7E, 0x1F7F, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x0397, 0x0397, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x03A9, 0x03A9, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x1FB5, - 0x0391, 0x0391, - 0x0391, 0x0391, - 0x0391, 0x1FBB, - 0x0391, 0x1FBD, - 0x0399, 0x1FBF, - 0x1FC0, 0x1FC1, - 0x0397, 0x0397, - 0x0397, 0x1FC5, - 0x0397, 0x0397, - 0x0395, 0x1FC9, - 0x0397, 0x1FCB, - 0x0397, 0x1FCD, - 0x1FCE, 0x1FCF, - 0x0399, 0x0399, - 0x0399, 0x1FD3, - 0x1FD4, 0x1FD5, - 0x0399, 0x0399, - 0x0399, 0x0399, - 0x0399, 0x1FDB, - 0x1FDC, 0x1FDD, - 0x1FDE, 0x1FDF, - 0x03A5, 0x03A5, - 0x03A5, 0x1FE3, - 0x03A1, 0x03A1, - 0x03A5, 0x03A5, - 0x03A5, 0x03A5, - 0x03A5, 0x1FEB, - 0x03A1, 0x1FED, - 0x1FEE, 0x1FEF, - 0x1FF0, 0x1FF1, - 0x03A9, 0x03A9, - 0x03A9, 0x1FF5, - 0x03A9, 0x03A9, - 0x039F, 0x1FF9, - 0x03A9, 0x1FFB, - 0x03A9, 0x1FFD, - 0x1FFE, 0x1FFF -}; - -static uint32_t plane21[] = { - 0x2100, 0x2101, - 0x2102, 0x2103, - 0x2104, 0x2105, - 0x2106, 0x2107, - 0x2108, 0x2109, - 0x210A, 0x210B, - 0x210C, 0x210D, - 0x210E, 0x210F, - 0x2110, 0x2111, - 0x2112, 0x2113, - 0x2114, 0x2115, - 0x2116, 0x2117, - 0x2118, 0x2119, - 0x211A, 0x211B, - 0x211C, 0x211D, - 0x211E, 0x211F, - 0x2120, 0x2121, - 0x2122, 0x2123, - 0x2124, 0x2125, - 0x2126, 0x2127, - 0x2128, 0x2129, - 0x212A, 0x212B, - 0x212C, 0x212D, - 0x212E, 0x212F, - 0x2130, 0x2131, - 0x2132, 0x2133, - 0x2134, 0x2135, - 0x2136, 0x2137, - 0x2138, 0x2139, - 0x213A, 0x213B, - 0x213C, 0x213D, - 0x213E, 0x213F, - 0x2140, 0x2141, - 0x2142, 0x2143, - 0x2144, 0x2145, - 0x2146, 0x2147, - 0x2148, 0x2149, - 0x214A, 0x214B, - 0x214C, 0x214D, - 0x214E, 0x214F, - 0x2150, 0x2151, - 0x2152, 0x2153, - 0x2154, 0x2155, - 0x2156, 0x2157, - 0x2158, 0x2159, - 0x215A, 0x215B, - 0x215C, 0x215D, - 0x215E, 0x215F, - 0x2160, 0x2161, - 0x2162, 0x2163, - 0x2164, 0x2165, - 0x2166, 0x2167, - 0x2168, 0x2169, - 0x216A, 0x216B, - 0x216C, 0x216D, - 0x216E, 0x216F, - 0x2160, 0x2161, - 0x2162, 0x2163, - 0x2164, 0x2165, - 0x2166, 0x2167, - 0x2168, 0x2169, - 0x216A, 0x216B, - 0x216C, 0x216D, - 0x216E, 0x216F, - 0x2180, 0x2181, - 0x2182, 0x2183, - 0x2184, 0x2185, - 0x2186, 0x2187, - 0x2188, 0x2189, - 0x218A, 0x218B, - 0x218C, 0x218D, - 0x218E, 0x218F, - 0x2190, 0x2191, - 0x2192, 0x2193, - 0x2194, 0x2195, - 0x2196, 0x2197, - 0x2198, 0x2199, - 0x219A, 0x219B, - 0x219C, 0x219D, - 0x219E, 0x219F, - 0x21A0, 0x21A1, - 0x21A2, 0x21A3, - 0x21A4, 0x21A5, - 0x21A6, 0x21A7, - 0x21A8, 0x21A9, - 0x21AA, 0x21AB, - 0x21AC, 0x21AD, - 0x21AE, 0x21AF, - 0x21B0, 0x21B1, - 0x21B2, 0x21B3, - 0x21B4, 0x21B5, - 0x21B6, 0x21B7, - 0x21B8, 0x21B9, - 0x21BA, 0x21BB, - 0x21BC, 0x21BD, - 0x21BE, 0x21BF, - 0x21C0, 0x21C1, - 0x21C2, 0x21C3, - 0x21C4, 0x21C5, - 0x21C6, 0x21C7, - 0x21C8, 0x21C9, - 0x21CA, 0x21CB, - 0x21CC, 0x21CD, - 0x21CE, 0x21CF, - 0x21D0, 0x21D1, - 0x21D2, 0x21D3, - 0x21D4, 0x21D5, - 0x21D6, 0x21D7, - 0x21D8, 0x21D9, - 0x21DA, 0x21DB, - 0x21DC, 0x21DD, - 0x21DE, 0x21DF, - 0x21E0, 0x21E1, - 0x21E2, 0x21E3, - 0x21E4, 0x21E5, - 0x21E6, 0x21E7, - 0x21E8, 0x21E9, - 0x21EA, 0x21EB, - 0x21EC, 0x21ED, - 0x21EE, 0x21EF, - 0x21F0, 0x21F1, - 0x21F2, 0x21F3, - 0x21F4, 0x21F5, - 0x21F6, 0x21F7, - 0x21F8, 0x21F9, - 0x21FA, 0x21FB, - 0x21FC, 0x21FD, - 0x21FE, 0x21FF -}; - -static uint32_t plane24[] = { - 0x2400, 0x2401, - 0x2402, 0x2403, - 0x2404, 0x2405, - 0x2406, 0x2407, - 0x2408, 0x2409, - 0x240A, 0x240B, - 0x240C, 0x240D, - 0x240E, 0x240F, - 0x2410, 0x2411, - 0x2412, 0x2413, - 0x2414, 0x2415, - 0x2416, 0x2417, - 0x2418, 0x2419, - 0x241A, 0x241B, - 0x241C, 0x241D, - 0x241E, 0x241F, - 0x2420, 0x2421, - 0x2422, 0x2423, - 0x2424, 0x2425, - 0x2426, 0x2427, - 0x2428, 0x2429, - 0x242A, 0x242B, - 0x242C, 0x242D, - 0x242E, 0x242F, - 0x2430, 0x2431, - 0x2432, 0x2433, - 0x2434, 0x2435, - 0x2436, 0x2437, - 0x2438, 0x2439, - 0x243A, 0x243B, - 0x243C, 0x243D, - 0x243E, 0x243F, - 0x2440, 0x2441, - 0x2442, 0x2443, - 0x2444, 0x2445, - 0x2446, 0x2447, - 0x2448, 0x2449, - 0x244A, 0x244B, - 0x244C, 0x244D, - 0x244E, 0x244F, - 0x2450, 0x2451, - 0x2452, 0x2453, - 0x2454, 0x2455, - 0x2456, 0x2457, - 0x2458, 0x2459, - 0x245A, 0x245B, - 0x245C, 0x245D, - 0x245E, 0x245F, - 0x2460, 0x2461, - 0x2462, 0x2463, - 0x2464, 0x2465, - 0x2466, 0x2467, - 0x2468, 0x2469, - 0x246A, 0x246B, - 0x246C, 0x246D, - 0x246E, 0x246F, - 0x2470, 0x2471, - 0x2472, 0x2473, - 0x2474, 0x2475, - 0x2476, 0x2477, - 0x2478, 0x2479, - 0x247A, 0x247B, - 0x247C, 0x247D, - 0x247E, 0x247F, - 0x2480, 0x2481, - 0x2482, 0x2483, - 0x2484, 0x2485, - 0x2486, 0x2487, - 0x2488, 0x2489, - 0x248A, 0x248B, - 0x248C, 0x248D, - 0x248E, 0x248F, - 0x2490, 0x2491, - 0x2492, 0x2493, - 0x2494, 0x2495, - 0x2496, 0x2497, - 0x2498, 0x2499, - 0x249A, 0x249B, - 0x249C, 0x249D, - 0x249E, 0x249F, - 0x24A0, 0x24A1, - 0x24A2, 0x24A3, - 0x24A4, 0x24A5, - 0x24A6, 0x24A7, - 0x24A8, 0x24A9, - 0x24AA, 0x24AB, - 0x24AC, 0x24AD, - 0x24AE, 0x24AF, - 0x24B0, 0x24B1, - 0x24B2, 0x24B3, - 0x24B4, 0x24B5, - 0x24B6, 0x24B7, - 0x24B8, 0x24B9, - 0x24BA, 0x24BB, - 0x24BC, 0x24BD, - 0x24BE, 0x24BF, - 0x24C0, 0x24C1, - 0x24C2, 0x24C3, - 0x24C4, 0x24C5, - 0x24C6, 0x24C7, - 0x24C8, 0x24C9, - 0x24CA, 0x24CB, - 0x24CC, 0x24CD, - 0x24CE, 0x24CF, - 0x24B6, 0x24B7, - 0x24B8, 0x24B9, - 0x24BA, 0x24BB, - 0x24BC, 0x24BD, - 0x24BE, 0x24BF, - 0x24C0, 0x24C1, - 0x24C2, 0x24C3, - 0x24C4, 0x24C5, - 0x24C6, 0x24C7, - 0x24C8, 0x24C9, - 0x24CA, 0x24CB, - 0x24CC, 0x24CD, - 0x24CE, 0x24CF, - 0x24EA, 0x24EB, - 0x24EC, 0x24ED, - 0x24EE, 0x24EF, - 0x24F0, 0x24F1, - 0x24F2, 0x24F3, - 0x24F4, 0x24F5, - 0x24F6, 0x24F7, - 0x24F8, 0x24F9, - 0x24FA, 0x24FB, - 0x24FC, 0x24FD, - 0x24FE, 0x24FF -}; - -static uint32_t planeFF[] = { - 0xFF00, 0xFF01, - 0xFF02, 0xFF03, - 0xFF04, 0xFF05, - 0xFF06, 0xFF07, - 0xFF08, 0xFF09, - 0xFF0A, 0xFF0B, - 0xFF0C, 0xFF0D, - 0xFF0E, 0xFF0F, - 0xFF10, 0xFF11, - 0xFF12, 0xFF13, - 0xFF14, 0xFF15, - 0xFF16, 0xFF17, - 0xFF18, 0xFF19, - 0xFF1A, 0xFF1B, - 0xFF1C, 0xFF1D, - 0xFF1E, 0xFF1F, - 0xFF20, 0xFF21, - 0xFF22, 0xFF23, - 0xFF24, 0xFF25, - 0xFF26, 0xFF27, - 0xFF28, 0xFF29, - 0xFF2A, 0xFF2B, - 0xFF2C, 0xFF2D, - 0xFF2E, 0xFF2F, - 0xFF30, 0xFF31, - 0xFF32, 0xFF33, - 0xFF34, 0xFF35, - 0xFF36, 0xFF37, - 0xFF38, 0xFF39, - 0xFF3A, 0xFF3B, - 0xFF3C, 0xFF3D, - 0xFF3E, 0xFF3F, - 0xFF40, 0xFF21, - 0xFF22, 0xFF23, - 0xFF24, 0xFF25, - 0xFF26, 0xFF27, - 0xFF28, 0xFF29, - 0xFF2A, 0xFF2B, - 0xFF2C, 0xFF2D, - 0xFF2E, 0xFF2F, - 0xFF30, 0xFF31, - 0xFF32, 0xFF33, - 0xFF34, 0xFF35, - 0xFF36, 0xFF37, - 0xFF38, 0xFF39, - 0xFF3A, 0xFF5B, - 0xFF5C, 0xFF5D, - 0xFF5E, 0xFF5F, - 0xFF60, 0xFF61, - 0xFF62, 0xFF63, - 0xFF64, 0xFF65, - 0xFF66, 0xFF67, - 0xFF68, 0xFF69, - 0xFF6A, 0xFF6B, - 0xFF6C, 0xFF6D, - 0xFF6E, 0xFF6F, - 0xFF70, 0xFF71, - 0xFF72, 0xFF73, - 0xFF74, 0xFF75, - 0xFF76, 0xFF77, - 0xFF78, 0xFF79, - 0xFF7A, 0xFF7B, - 0xFF7C, 0xFF7D, - 0xFF7E, 0xFF7F, - 0xFF80, 0xFF81, - 0xFF82, 0xFF83, - 0xFF84, 0xFF85, - 0xFF86, 0xFF87, - 0xFF88, 0xFF89, - 0xFF8A, 0xFF8B, - 0xFF8C, 0xFF8D, - 0xFF8E, 0xFF8F, - 0xFF90, 0xFF91, - 0xFF92, 0xFF93, - 0xFF94, 0xFF95, - 0xFF96, 0xFF97, - 0xFF98, 0xFF99, - 0xFF9A, 0xFF9B, - 0xFF9C, 0xFF9D, - 0xFF9E, 0xFF9F, - 0xFFA0, 0xFFA1, - 0xFFA2, 0xFFA3, - 0xFFA4, 0xFFA5, - 0xFFA6, 0xFFA7, - 0xFFA8, 0xFFA9, - 0xFFAA, 0xFFAB, - 0xFFAC, 0xFFAD, - 0xFFAE, 0xFFAF, - 0xFFB0, 0xFFB1, - 0xFFB2, 0xFFB3, - 0xFFB4, 0xFFB5, - 0xFFB6, 0xFFB7, - 0xFFB8, 0xFFB9, - 0xFFBA, 0xFFBB, - 0xFFBC, 0xFFBD, - 0xFFBE, 0xFFBF, - 0xFFC0, 0xFFC1, - 0xFFC2, 0xFFC3, - 0xFFC4, 0xFFC5, - 0xFFC6, 0xFFC7, - 0xFFC8, 0xFFC9, - 0xFFCA, 0xFFCB, - 0xFFCC, 0xFFCD, - 0xFFCE, 0xFFCF, - 0xFFD0, 0xFFD1, - 0xFFD2, 0xFFD3, - 0xFFD4, 0xFFD5, - 0xFFD6, 0xFFD7, - 0xFFD8, 0xFFD9, - 0xFFDA, 0xFFDB, - 0xFFDC, 0xFFDD, - 0xFFDE, 0xFFDF, - 0xFFE0, 0xFFE1, - 0xFFE2, 0xFFE3, - 0xFFE4, 0xFFE5, - 0xFFE6, 0xFFE7, - 0xFFE8, 0xFFE9, - 0xFFEA, 0xFFEB, - 0xFFEC, 0xFFED, - 0xFFEE, 0xFFEF, - 0xFFF0, 0xFFF1, - 0xFFF2, 0xFFF3, - 0xFFF4, 0xFFF5, - 0xFFF6, 0xFFF7, - 0xFFF8, 0xFFF9, - 0xFFFA, 0xFFFB, - 0xFFFC, 0xFFFD, - 0xFFFE, 0xFFFF -}; - -static uint32_t *mysql_unicode_normalize_table[256] = { - plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, - NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF -}; -/* based on mysql-5.5.29/strings/ctype-utf8.c: end */ - static inline unsigned int unichar_to_utf8(uint32_t unichar, char *output) { @@ -1651,11 +149,10 @@ normalize(grn_ctx *ctx, grn_obj *string) current_type[-1] |= GRN_CHAR_BLANK; } } else { - if ((0x00 <= plane && plane <= 0xff) && - mysql_unicode_normalize_table[plane]) { + if ((0x00 <= plane && plane <= 0xff) && general_ci_table[plane]) { uint32_t normalized_code; unsigned int n_bytes; - normalized_code = mysql_unicode_normalize_table[plane][low_code]; + normalized_code = general_ci_table[plane][low_code]; n_bytes = unichar_to_utf8(normalized_code, normalized + normalized_length_in_bytes); normalized_length_in_bytes += n_bytes; Added: normalizers/mysql_general_ci_table.h (+565 -0) 100644 =================================================================== --- /dev/null +++ normalizers/mysql_general_ci_table.h 2013-02-10 21:55:26 +0900 (e1e0c50) @@ -0,0 +1,565 @@ +/* + Copyright(C) 2013 Kouhei Sutou <kou �� clear-code.com> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; version 2 + of the License. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA + + This file uses normalization table defined in + mysql-5.5.29/strings/ctype-utf8.c. + The following is the header of the file: + + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; version 2 + of the License. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA + + UTF8 according RFC 2279 + Written by Alexander Barkov <bar �� udm.net> +*/ + +#ifndef MYSQL_UTF8_H +#define MYSQL_UTF8_H + +#include <stdint.h> + +static uint32_t general_ci_plane_00[] = { + 0x00000, 0x00001, 0x00002, 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, + 0x00008, 0x00009, 0x0000a, 0x0000b, 0x0000c, 0x0000d, 0x0000e, 0x0000f, + 0x00010, 0x00011, 0x00012, 0x00013, 0x00014, 0x00015, 0x00016, 0x00017, + 0x00018, 0x00019, 0x0001a, 0x0001b, 0x0001c, 0x0001d, 0x0001e, 0x0001f, + 0x00020, 0x00021, 0x00022, 0x00023, 0x00024, 0x00025, 0x00026, 0x00027, + 0x00028, 0x00029, 0x0002a, 0x0002b, 0x0002c, 0x0002d, 0x0002e, 0x0002f, + 0x00030, 0x00031, 0x00032, 0x00033, 0x00034, 0x00035, 0x00036, 0x00037, + 0x00038, 0x00039, 0x0003a, 0x0003b, 0x0003c, 0x0003d, 0x0003e, 0x0003f, + 0x00040, 0x00041, 0x00042, 0x00043, 0x00044, 0x00045, 0x00046, 0x00047, + 0x00048, 0x00049, 0x0004a, 0x0004b, 0x0004c, 0x0004d, 0x0004e, 0x0004f, + 0x00050, 0x00051, 0x00052, 0x00053, 0x00054, 0x00055, 0x00056, 0x00057, + 0x00058, 0x00059, 0x0005a, 0x0005b, 0x0005c, 0x0005d, 0x0005e, 0x0005f, + 0x00060, 0x00041, 0x00042, 0x00043, 0x00044, 0x00045, 0x00046, 0x00047, + 0x00048, 0x00049, 0x0004a, 0x0004b, 0x0004c, 0x0004d, 0x0004e, 0x0004f, + 0x00050, 0x00051, 0x00052, 0x00053, 0x00054, 0x00055, 0x00056, 0x00057, + 0x00058, 0x00059, 0x0005a, 0x0007b, 0x0007c, 0x0007d, 0x0007e, 0x0007f, + 0x00080, 0x00081, 0x00082, 0x00083, 0x00084, 0x00085, 0x00086, 0x00087, + 0x00088, 0x00089, 0x0008a, 0x0008b, 0x0008c, 0x0008d, 0x0008e, 0x0008f, + 0x00090, 0x00091, 0x00092, 0x00093, 0x00094, 0x00095, 0x00096, 0x00097, + 0x00098, 0x00099, 0x0009a, 0x0009b, 0x0009c, 0x0009d, 0x0009e, 0x0009f, + 0x000a0, 0x000a1, 0x000a2, 0x000a3, 0x000a4, 0x000a5, 0x000a6, 0x000a7, + 0x000a8, 0x000a9, 0x000aa, 0x000ab, 0x000ac, 0x000ad, 0x000ae, 0x000af, + 0x000b0, 0x000b1, 0x000b2, 0x000b3, 0x000b4, 0x0039c, 0x000b6, 0x000b7, + 0x000b8, 0x000b9, 0x000ba, 0x000bb, 0x000bc, 0x000bd, 0x000be, 0x000bf, + 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x000c6, 0x00043, + 0x00045, 0x00045, 0x00045, 0x00045, 0x00049, 0x00049, 0x00049, 0x00049, + 0x000d0, 0x0004e, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x000d7, + 0x000d8, 0x00055, 0x00055, 0x00055, 0x00055, 0x00059, 0x000de, 0x00053, + 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x000c6, 0x00043, + 0x00045, 0x00045, 0x00045, 0x00045, 0x00049, 0x00049, 0x00049, 0x00049, + 0x000d0, 0x0004e, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x000f7, + 0x000d8, 0x00055, 0x00055, 0x00055, 0x00055, 0x00059, 0x000de, 0x00059 +}; + +static uint32_t general_ci_plane_01[] = { + 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00043, 0x00043, + 0x00043, 0x00043, 0x00043, 0x00043, 0x00043, 0x00043, 0x00044, 0x00044, + 0x00110, 0x00110, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, + 0x00045, 0x00045, 0x00045, 0x00045, 0x00047, 0x00047, 0x00047, 0x00047, + 0x00047, 0x00047, 0x00047, 0x00047, 0x00048, 0x00048, 0x00126, 0x00126, + 0x00049, 0x00049, 0x00049, 0x00049, 0x00049, 0x00049, 0x00049, 0x00049, + 0x00049, 0x00049, 0x00132, 0x00132, 0x0004a, 0x0004a, 0x0004b, 0x0004b, + 0x00138, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0013f, + 0x0013f, 0x00141, 0x00141, 0x0004e, 0x0004e, 0x0004e, 0x0004e, 0x0004e, + 0x0004e, 0x00149, 0x0014a, 0x0014a, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x0004f, 0x0004f, 0x00152, 0x00152, 0x00052, 0x00052, 0x00052, 0x00052, + 0x00052, 0x00052, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, + 0x00053, 0x00053, 0x00054, 0x00054, 0x00054, 0x00054, 0x00166, 0x00166, + 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, + 0x00055, 0x00055, 0x00055, 0x00055, 0x00057, 0x00057, 0x00059, 0x00059, + 0x00059, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x00053, + 0x00180, 0x00181, 0x00182, 0x00182, 0x00184, 0x00184, 0x00186, 0x00187, + 0x00187, 0x00189, 0x0018a, 0x0018b, 0x0018b, 0x0018d, 0x0018e, 0x0018f, + 0x00190, 0x00191, 0x00191, 0x00193, 0x00194, 0x001f6, 0x00196, 0x00197, + 0x00198, 0x00198, 0x0019a, 0x0019b, 0x0019c, 0x0019d, 0x0019e, 0x0019f, + 0x0004f, 0x0004f, 0x001a2, 0x001a2, 0x001a4, 0x001a4, 0x001a6, 0x001a7, + 0x001a7, 0x001a9, 0x001aa, 0x001ab, 0x001ac, 0x001ac, 0x001ae, 0x00055, + 0x00055, 0x001b1, 0x001b2, 0x001b3, 0x001b3, 0x001b5, 0x001b5, 0x001b7, + 0x001b8, 0x001b8, 0x001ba, 0x001bb, 0x001bc, 0x001bc, 0x001be, 0x001f7, + 0x001c0, 0x001c1, 0x001c2, 0x001c3, 0x001c4, 0x001c4, 0x001c4, 0x001c7, + 0x001c7, 0x001c7, 0x001ca, 0x001ca, 0x001ca, 0x00041, 0x00041, 0x00049, + 0x00049, 0x0004f, 0x0004f, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, + 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x0018e, 0x00041, 0x00041, + 0x00041, 0x00041, 0x000c6, 0x000c6, 0x001e4, 0x001e4, 0x00047, 0x00047, + 0x0004b, 0x0004b, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x001b7, 0x001b7, + 0x0004a, 0x001f1, 0x001f1, 0x001f1, 0x00047, 0x00047, 0x001f6, 0x001f7, + 0x0004e, 0x0004e, 0x00041, 0x00041, 0x000c6, 0x000c6, 0x000d8, 0x000d8 +}; + +static uint32_t general_ci_plane_02[] = { + 0x00041, 0x00041, 0x00041, 0x00041, 0x00045, 0x00045, 0x00045, 0x00045, + 0x00049, 0x00049, 0x00049, 0x00049, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x00052, 0x00052, 0x00052, 0x00052, 0x00055, 0x00055, 0x00055, 0x00055, + 0x00053, 0x00053, 0x00054, 0x00054, 0x0021c, 0x0021c, 0x00048, 0x00048, + 0x00220, 0x00221, 0x00222, 0x00222, 0x00224, 0x00224, 0x00041, 0x00041, + 0x00045, 0x00045, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x0004f, 0x0004f, 0x00059, 0x00059, 0x00234, 0x00235, 0x00236, 0x00237, + 0x00238, 0x00239, 0x0023a, 0x0023b, 0x0023c, 0x0023d, 0x0023e, 0x0023f, + 0x00240, 0x00241, 0x00242, 0x00243, 0x00244, 0x00245, 0x00246, 0x00247, + 0x00248, 0x00249, 0x0024a, 0x0024b, 0x0024c, 0x0024d, 0x0024e, 0x0024f, + 0x00250, 0x00251, 0x00252, 0x00181, 0x00186, 0x00255, 0x00189, 0x0018a, + 0x00258, 0x0018f, 0x0025a, 0x00190, 0x0025c, 0x0025d, 0x0025e, 0x0025f, + 0x00193, 0x00261, 0x00262, 0x00194, 0x00264, 0x00265, 0x00266, 0x00267, + 0x00197, 0x00196, 0x0026a, 0x0026b, 0x0026c, 0x0026d, 0x0026e, 0x0019c, + 0x00270, 0x00271, 0x0019d, 0x00273, 0x00274, 0x0019f, 0x00276, 0x00277, + 0x00278, 0x00279, 0x0027a, 0x0027b, 0x0027c, 0x0027d, 0x0027e, 0x0027f, + 0x001a6, 0x00281, 0x00282, 0x001a9, 0x00284, 0x00285, 0x00286, 0x00287, + 0x001ae, 0x00289, 0x001b1, 0x001b2, 0x0028c, 0x0028d, 0x0028e, 0x0028f, + 0x00290, 0x00291, 0x001b7, 0x00293, 0x00294, 0x00295, 0x00296, 0x00297, + 0x00298, 0x00299, 0x0029a, 0x0029b, 0x0029c, 0x0029d, 0x0029e, 0x0029f, + 0x002a0, 0x002a1, 0x002a2, 0x002a3, 0x002a4, 0x002a5, 0x002a6, 0x002a7, + 0x002a8, 0x002a9, 0x002aa, 0x002ab, 0x002ac, 0x002ad, 0x002ae, 0x002af, + 0x002b0, 0x002b1, 0x002b2, 0x002b3, 0x002b4, 0x002b5, 0x002b6, 0x002b7, + 0x002b8, 0x002b9, 0x002ba, 0x002bb, 0x002bc, 0x002bd, 0x002be, 0x002bf, + 0x002c0, 0x002c1, 0x002c2, 0x002c3, 0x002c4, 0x002c5, 0x002c6, 0x002c7, + 0x002c8, 0x002c9, 0x002ca, 0x002cb, 0x002cc, 0x002cd, 0x002ce, 0x002cf, + 0x002d0, 0x002d1, 0x002d2, 0x002d3, 0x002d4, 0x002d5, 0x002d6, 0x002d7, + 0x002d8, 0x002d9, 0x002da, 0x002db, 0x002dc, 0x002dd, 0x002de, 0x002df, + 0x002e0, 0x002e1, 0x002e2, 0x002e3, 0x002e4, 0x002e5, 0x002e6, 0x002e7, + 0x002e8, 0x002e9, 0x002ea, 0x002eb, 0x002ec, 0x002ed, 0x002ee, 0x002ef, + 0x002f0, 0x002f1, 0x002f2, 0x002f3, 0x002f4, 0x002f5, 0x002f6, 0x002f7, + 0x002f8, 0x002f9, 0x002fa, 0x002fb, 0x002fc, 0x002fd, 0x002fe, 0x002ff +}; + +static uint32_t general_ci_plane_03[] = { + 0x00300, 0x00301, 0x00302, 0x00303, 0x00304, 0x00305, 0x00306, 0x00307, + 0x00308, 0x00309, 0x0030a, 0x0030b, 0x0030c, 0x0030d, 0x0030e, 0x0030f, + 0x00310, 0x00311, 0x00312, 0x00313, 0x00314, 0x00315, 0x00316, 0x00317, + 0x00318, 0x00319, 0x0031a, 0x0031b, 0x0031c, 0x0031d, 0x0031e, 0x0031f, + 0x00320, 0x00321, 0x00322, 0x00323, 0x00324, 0x00325, 0x00326, 0x00327, + 0x00328, 0x00329, 0x0032a, 0x0032b, 0x0032c, 0x0032d, 0x0032e, 0x0032f, + 0x00330, 0x00331, 0x00332, 0x00333, 0x00334, 0x00335, 0x00336, 0x00337, + 0x00338, 0x00339, 0x0033a, 0x0033b, 0x0033c, 0x0033d, 0x0033e, 0x0033f, + 0x00340, 0x00341, 0x00342, 0x00343, 0x00344, 0x00399, 0x00346, 0x00347, + 0x00348, 0x00349, 0x0034a, 0x0034b, 0x0034c, 0x0034d, 0x0034e, 0x0034f, + 0x00350, 0x00351, 0x00352, 0x00353, 0x00354, 0x00355, 0x00356, 0x00357, + 0x00358, 0x00359, 0x0035a, 0x0035b, 0x0035c, 0x0035d, 0x0035e, 0x0035f, + 0x00360, 0x00361, 0x00362, 0x00363, 0x00364, 0x00365, 0x00366, 0x00367, + 0x00368, 0x00369, 0x0036a, 0x0036b, 0x0036c, 0x0036d, 0x0036e, 0x0036f, + 0x00370, 0x00371, 0x00372, 0x00373, 0x00374, 0x00375, 0x00376, 0x00377, + 0x00378, 0x00379, 0x0037a, 0x0037b, 0x0037c, 0x0037d, 0x0037e, 0x0037f, + 0x00380, 0x00381, 0x00382, 0x00383, 0x00384, 0x00385, 0x00391, 0x00387, + 0x00395, 0x00397, 0x00399, 0x0038b, 0x0039f, 0x0038d, 0x003a5, 0x003a9, + 0x00399, 0x00391, 0x00392, 0x00393, 0x00394, 0x00395, 0x00396, 0x00397, + 0x00398, 0x00399, 0x0039a, 0x0039b, 0x0039c, 0x0039d, 0x0039e, 0x0039f, + 0x003a0, 0x003a1, 0x003a2, 0x003a3, 0x003a4, 0x003a5, 0x003a6, 0x003a7, + 0x003a8, 0x003a9, 0x00399, 0x003a5, 0x00391, 0x00395, 0x00397, 0x00399, + 0x003a5, 0x00391, 0x00392, 0x00393, 0x00394, 0x00395, 0x00396, 0x00397, + 0x00398, 0x00399, 0x0039a, 0x0039b, 0x0039c, 0x0039d, 0x0039e, 0x0039f, + 0x003a0, 0x003a1, 0x003a3, 0x003a3, 0x003a4, 0x003a5, 0x003a6, 0x003a7, + 0x003a8, 0x003a9, 0x00399, 0x003a5, 0x0039f, 0x003a5, 0x003a9, 0x003cf, + 0x00392, 0x00398, 0x003d2, 0x003d2, 0x003d2, 0x003a6, 0x003a0, 0x003d7, + 0x003d8, 0x003d9, 0x003da, 0x003da, 0x003dc, 0x003dc, 0x003de, 0x003de, + 0x003e0, 0x003e0, 0x003e2, 0x003e2, 0x003e4, 0x003e4, 0x003e6, 0x003e6, + 0x003e8, 0x003e8, 0x003ea, 0x003ea, 0x003ec, 0x003ec, 0x003ee, 0x003ee, + 0x0039a, 0x003a1, 0x003a3, 0x003f3, 0x003f4, 0x003f5, 0x003f6, 0x003f7, + 0x003f8, 0x003f9, 0x003fa, 0x003fb, 0x003fc, 0x003fd, 0x003fe, 0x003ff +}; + +static uint32_t general_ci_plane_04[] = { + 0x00415, 0x00415, 0x00402, 0x00413, 0x00404, 0x00405, 0x00406, 0x00406, + 0x00408, 0x00409, 0x0040a, 0x0040b, 0x0041a, 0x00418, 0x00423, 0x0040f, + 0x00410, 0x00411, 0x00412, 0x00413, 0x00414, 0x00415, 0x00416, 0x00417, + 0x00418, 0x00419, 0x0041a, 0x0041b, 0x0041c, 0x0041d, 0x0041e, 0x0041f, + 0x00420, 0x00421, 0x00422, 0x00423, 0x00424, 0x00425, 0x00426, 0x00427, + 0x00428, 0x00429, 0x0042a, 0x0042b, 0x0042c, 0x0042d, 0x0042e, 0x0042f, + 0x00410, 0x00411, 0x00412, 0x00413, 0x00414, 0x00415, 0x00416, 0x00417, + 0x00418, 0x00419, 0x0041a, 0x0041b, 0x0041c, 0x0041d, 0x0041e, 0x0041f, + 0x00420, 0x00421, 0x00422, 0x00423, 0x00424, 0x00425, 0x00426, 0x00427, + 0x00428, 0x00429, 0x0042a, 0x0042b, 0x0042c, 0x0042d, 0x0042e, 0x0042f, + 0x00415, 0x00415, 0x00402, 0x00413, 0x00404, 0x00405, 0x00406, 0x00406, + 0x00408, 0x00409, 0x0040a, 0x0040b, 0x0041a, 0x00418, 0x00423, 0x0040f, + 0x00460, 0x00460, 0x00462, 0x00462, 0x00464, 0x00464, 0x00466, 0x00466, + 0x00468, 0x00468, 0x0046a, 0x0046a, 0x0046c, 0x0046c, 0x0046e, 0x0046e, + 0x00470, 0x00470, 0x00472, 0x00472, 0x00474, 0x00474, 0x00474, 0x00474, + 0x00478, 0x00478, 0x0047a, 0x0047a, 0x0047c, 0x0047c, 0x0047e, 0x0047e, + 0x00480, 0x00480, 0x00482, 0x00483, 0x00484, 0x00485, 0x00486, 0x00487, + 0x00488, 0x00489, 0x0048a, 0x0048b, 0x0048c, 0x0048c, 0x0048e, 0x0048e, + 0x00490, 0x00490, 0x00492, 0x00492, 0x00494, 0x00494, 0x00496, 0x00496, + 0x00498, 0x00498, 0x0049a, 0x0049a, 0x0049c, 0x0049c, 0x0049e, 0x0049e, + 0x004a0, 0x004a0, 0x004a2, 0x004a2, 0x004a4, 0x004a4, 0x004a6, 0x004a6, + 0x004a8, 0x004a8, 0x004aa, 0x004aa, 0x004ac, 0x004ac, 0x004ae, 0x004ae, + 0x004b0, 0x004b0, 0x004b2, 0x004b2, 0x004b4, 0x004b4, 0x004b6, 0x004b6, + 0x004b8, 0x004b8, 0x004ba, 0x004ba, 0x004bc, 0x004bc, 0x004be, 0x004be, + 0x004c0, 0x00416, 0x00416, 0x004c3, 0x004c3, 0x004c5, 0x004c6, 0x004c7, + 0x004c7, 0x004c9, 0x004ca, 0x004cb, 0x004cb, 0x004cd, 0x004ce, 0x004cf, + 0x00410, 0x00410, 0x00410, 0x00410, 0x004d4, 0x004d4, 0x00415, 0x00415, + 0x004d8, 0x004d8, 0x004d8, 0x004d8, 0x00416, 0x00416, 0x00417, 0x00417, + 0x004e0, 0x004e0, 0x00418, 0x00418, 0x00418, 0x00418, 0x0041e, 0x0041e, + 0x004e8, 0x004e8, 0x004e8, 0x004e8, 0x0042d, 0x0042d, 0x00423, 0x00423, + 0x00423, 0x00423, 0x00423, 0x00423, 0x00427, 0x00427, 0x004f6, 0x004f7, + 0x0042b, 0x0042b, 0x004fa, 0x004fb, 0x004fc, 0x004fd, 0x004fe, 0x004ff +}; + +static uint32_t general_ci_plane_05[] = { + 0x00500, 0x00501, 0x00502, 0x00503, 0x00504, 0x00505, 0x00506, 0x00507, + 0x00508, 0x00509, 0x0050a, 0x0050b, 0x0050c, 0x0050d, 0x0050e, 0x0050f, + 0x00510, 0x00511, 0x00512, 0x00513, 0x00514, 0x00515, 0x00516, 0x00517, + 0x00518, 0x00519, 0x0051a, 0x0051b, 0x0051c, 0x0051d, 0x0051e, 0x0051f, + 0x00520, 0x00521, 0x00522, 0x00523, 0x00524, 0x00525, 0x00526, 0x00527, + 0x00528, 0x00529, 0x0052a, 0x0052b, 0x0052c, 0x0052d, 0x0052e, 0x0052f, + 0x00530, 0x00531, 0x00532, 0x00533, 0x00534, 0x00535, 0x00536, 0x00537, + 0x00538, 0x00539, 0x0053a, 0x0053b, 0x0053c, 0x0053d, 0x0053e, 0x0053f, + 0x00540, 0x00541, 0x00542, 0x00543, 0x00544, 0x00545, 0x00546, 0x00547, + 0x00548, 0x00549, 0x0054a, 0x0054b, 0x0054c, 0x0054d, 0x0054e, 0x0054f, + 0x00550, 0x00551, 0x00552, 0x00553, 0x00554, 0x00555, 0x00556, 0x00557, + 0x00558, 0x00559, 0x0055a, 0x0055b, 0x0055c, 0x0055d, 0x0055e, 0x0055f, + 0x00560, 0x00531, 0x00532, 0x00533, 0x00534, 0x00535, 0x00536, 0x00537, + 0x00538, 0x00539, 0x0053a, 0x0053b, 0x0053c, 0x0053d, 0x0053e, 0x0053f, + 0x00540, 0x00541, 0x00542, 0x00543, 0x00544, 0x00545, 0x00546, 0x00547, + 0x00548, 0x00549, 0x0054a, 0x0054b, 0x0054c, 0x0054d, 0x0054e, 0x0054f, + 0x00550, 0x00551, 0x00552, 0x00553, 0x00554, 0x00555, 0x00556, 0x00587, + 0x00588, 0x00589, 0x0058a, 0x0058b, 0x0058c, 0x0058d, 0x0058e, 0x0058f, + 0x00590, 0x00591, 0x00592, 0x00593, 0x00594, 0x00595, 0x00596, 0x00597, + 0x00598, 0x00599, 0x0059a, 0x0059b, 0x0059c, 0x0059d, 0x0059e, 0x0059f, + 0x005a0, 0x005a1, 0x005a2, 0x005a3, 0x005a4, 0x005a5, 0x005a6, 0x005a7, + 0x005a8, 0x005a9, 0x005aa, 0x005ab, 0x005ac, 0x005ad, 0x005ae, 0x005af, + 0x005b0, 0x005b1, 0x005b2, 0x005b3, 0x005b4, 0x005b5, 0x005b6, 0x005b7, + 0x005b8, 0x005b9, 0x005ba, 0x005bb, 0x005bc, 0x005bd, 0x005be, 0x005bf, + 0x005c0, 0x005c1, 0x005c2, 0x005c3, 0x005c4, 0x005c5, 0x005c6, 0x005c7, + 0x005c8, 0x005c9, 0x005ca, 0x005cb, 0x005cc, 0x005cd, 0x005ce, 0x005cf, + 0x005d0, 0x005d1, 0x005d2, 0x005d3, 0x005d4, 0x005d5, 0x005d6, 0x005d7, + 0x005d8, 0x005d9, 0x005da, 0x005db, 0x005dc, 0x005dd, 0x005de, 0x005df, + 0x005e0, 0x005e1, 0x005e2, 0x005e3, 0x005e4, 0x005e5, 0x005e6, 0x005e7, + 0x005e8, 0x005e9, 0x005ea, 0x005eb, 0x005ec, 0x005ed, 0x005ee, 0x005ef, + 0x005f0, 0x005f1, 0x005f2, 0x005f3, 0x005f4, 0x005f5, 0x005f6, 0x005f7, + 0x005f8, 0x005f9, 0x005fa, 0x005fb, 0x005fc, 0x005fd, 0x005fe, 0x005ff +}; + +static uint32_t general_ci_plane_1e[] = { + 0x00041, 0x00041, 0x00042, 0x00042, 0x00042, 0x00042, 0x00042, 0x00042, + 0x00043, 0x00043, 0x00044, 0x00044, 0x00044, 0x00044, 0x00044, 0x00044, + 0x00044, 0x00044, 0x00044, 0x00044, 0x00045, 0x00045, 0x00045, 0x00045, + 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00046, 0x00046, + 0x00047, 0x00047, 0x00048, 0x00048, 0x00048, 0x00048, 0x00048, 0x00048, + 0x00048, 0x00048, 0x00048, 0x00048, 0x00049, 0x00049, 0x00049, 0x00049, + 0x0004b, 0x0004b, 0x0004b, 0x0004b, 0x0004b, 0x0004b, 0x0004c, 0x0004c, + 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004c, 0x0004d, 0x0004d, + 0x0004d, 0x0004d, 0x0004d, 0x0004d, 0x0004e, 0x0004e, 0x0004e, 0x0004e, + 0x0004e, 0x0004e, 0x0004e, 0x0004e, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x00050, 0x00050, 0x00050, 0x00050, + 0x00052, 0x00052, 0x00052, 0x00052, 0x00052, 0x00052, 0x00052, 0x00052, + 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, 0x00053, + 0x00053, 0x00053, 0x00054, 0x00054, 0x00054, 0x00054, 0x00054, 0x00054, + 0x00054, 0x00054, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, + 0x00055, 0x00055, 0x00055, 0x00055, 0x00056, 0x00056, 0x00056, 0x00056, + 0x00057, 0x00057, 0x00057, 0x00057, 0x00057, 0x00057, 0x00057, 0x00057, + 0x00057, 0x00057, 0x00058, 0x00058, 0x00058, 0x00058, 0x00059, 0x00059, + 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x0005a, 0x00048, 0x00054, + 0x00057, 0x00059, 0x01e9a, 0x00053, 0x01e9c, 0x01e9d, 0x01e9e, 0x01e9f, + 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, + 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, + 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, 0x00041, + 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, + 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, 0x00045, + 0x00049, 0x00049, 0x00049, 0x00049, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x0004f, + 0x0004f, 0x0004f, 0x0004f, 0x0004f, 0x00055, 0x00055, 0x00055, 0x00055, + 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, 0x00055, + 0x00055, 0x00055, 0x00059, 0x00059, 0x00059, 0x00059, 0x00059, 0x00059, + 0x00059, 0x00059, 0x01efa, 0x01efb, 0x01efc, 0x01efd, 0x01efe, 0x01eff +}; + +static uint32_t general_ci_plane_1f[] = { + 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, + 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, + 0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x01f16, 0x01f17, + 0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x00395, 0x01f1e, 0x01f1f, + 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, + 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, + 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, + 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, 0x00399, + 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x01f46, 0x01f47, + 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x0039f, 0x01f4e, 0x01f4f, + 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, 0x003a5, + 0x01f58, 0x003a5, 0x01f5a, 0x003a5, 0x01f5c, 0x003a5, 0x01f5e, 0x003a5, + 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, + 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, + 0x00391, 0x01fbb, 0x00395, 0x01fc9, 0x00397, 0x01fcb, 0x00399, 0x01fdb, + 0x0039f, 0x01ff9, 0x003a5, 0x01feb, 0x003a9, 0x01ffb, 0x01f7e, 0x01f7f, + 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, + 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, + 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, + 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, 0x00397, + 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, + 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, 0x003a9, + 0x00391, 0x00391, 0x00391, 0x00391, 0x00391, 0x01fb5, 0x00391, 0x00391, + 0x00391, 0x00391, 0x00391, 0x01fbb, 0x00391, 0x01fbd, 0x00399, 0x01fbf, + 0x01fc0, 0x01fc1, 0x00397, 0x00397, 0x00397, 0x01fc5, 0x00397, 0x00397, + 0x00395, 0x01fc9, 0x00397, 0x01fcb, 0x00397, 0x01fcd, 0x01fce, 0x01fcf, + 0x00399, 0x00399, 0x00399, 0x01fd3, 0x01fd4, 0x01fd5, 0x00399, 0x00399, + 0x00399, 0x00399, 0x00399, 0x01fdb, 0x01fdc, 0x01fdd, 0x01fde, 0x01fdf, + 0x003a5, 0x003a5, 0x003a5, 0x01fe3, 0x003a1, 0x003a1, 0x003a5, 0x003a5, + 0x003a5, 0x003a5, 0x003a5, 0x01feb, 0x003a1, 0x01fed, 0x01fee, 0x01fef, + 0x01ff0, 0x01ff1, 0x003a9, 0x003a9, 0x003a9, 0x01ff5, 0x003a9, 0x003a9, + 0x0039f, 0x01ff9, 0x003a9, 0x01ffb, 0x003a9, 0x01ffd, 0x01ffe, 0x01fff +}; + +static uint32_t general_ci_plane_21[] = { + 0x02100, 0x02101, 0x02102, 0x02103, 0x02104, 0x02105, 0x02106, 0x02107, + 0x02108, 0x02109, 0x0210a, 0x0210b, 0x0210c, 0x0210d, 0x0210e, 0x0210f, + 0x02110, 0x02111, 0x02112, 0x02113, 0x02114, 0x02115, 0x02116, 0x02117, + 0x02118, 0x02119, 0x0211a, 0x0211b, 0x0211c, 0x0211d, 0x0211e, 0x0211f, + 0x02120, 0x02121, 0x02122, 0x02123, 0x02124, 0x02125, 0x02126, 0x02127, + 0x02128, 0x02129, 0x0212a, 0x0212b, 0x0212c, 0x0212d, 0x0212e, 0x0212f, + 0x02130, 0x02131, 0x02132, 0x02133, 0x02134, 0x02135, 0x02136, 0x02137, + 0x02138, 0x02139, 0x0213a, 0x0213b, 0x0213c, 0x0213d, 0x0213e, 0x0213f, + 0x02140, 0x02141, 0x02142, 0x02143, 0x02144, 0x02145, 0x02146, 0x02147, + 0x02148, 0x02149, 0x0214a, 0x0214b, 0x0214c, 0x0214d, 0x0214e, 0x0214f, + 0x02150, 0x02151, 0x02152, 0x02153, 0x02154, 0x02155, 0x02156, 0x02157, + 0x02158, 0x02159, 0x0215a, 0x0215b, 0x0215c, 0x0215d, 0x0215e, 0x0215f, + 0x02160, 0x02161, 0x02162, 0x02163, 0x02164, 0x02165, 0x02166, 0x02167, + 0x02168, 0x02169, 0x0216a, 0x0216b, 0x0216c, 0x0216d, 0x0216e, 0x0216f, + 0x02160, 0x02161, 0x02162, 0x02163, 0x02164, 0x02165, 0x02166, 0x02167, + 0x02168, 0x02169, 0x0216a, 0x0216b, 0x0216c, 0x0216d, 0x0216e, 0x0216f, + 0x02180, 0x02181, 0x02182, 0x02183, 0x02184, 0x02185, 0x02186, 0x02187, + 0x02188, 0x02189, 0x0218a, 0x0218b, 0x0218c, 0x0218d, 0x0218e, 0x0218f, + 0x02190, 0x02191, 0x02192, 0x02193, 0x02194, 0x02195, 0x02196, 0x02197, + 0x02198, 0x02199, 0x0219a, 0x0219b, 0x0219c, 0x0219d, 0x0219e, 0x0219f, + 0x021a0, 0x021a1, 0x021a2, 0x021a3, 0x021a4, 0x021a5, 0x021a6, 0x021a7, + 0x021a8, 0x021a9, 0x021aa, 0x021ab, 0x021ac, 0x021ad, 0x021ae, 0x021af, + 0x021b0, 0x021b1, 0x021b2, 0x021b3, 0x021b4, 0x021b5, 0x021b6, 0x021b7, + 0x021b8, 0x021b9, 0x021ba, 0x021bb, 0x021bc, 0x021bd, 0x021be, 0x021bf, + 0x021c0, 0x021c1, 0x021c2, 0x021c3, 0x021c4, 0x021c5, 0x021c6, 0x021c7, + 0x021c8, 0x021c9, 0x021ca, 0x021cb, 0x021cc, 0x021cd, 0x021ce, 0x021cf, + 0x021d0, 0x021d1, 0x021d2, 0x021d3, 0x021d4, 0x021d5, 0x021d6, 0x021d7, + 0x021d8, 0x021d9, 0x021da, 0x021db, 0x021dc, 0x021dd, 0x021de, 0x021df, + 0x021e0, 0x021e1, 0x021e2, 0x021e3, 0x021e4, 0x021e5, 0x021e6, 0x021e7, + 0x021e8, 0x021e9, 0x021ea, 0x021eb, 0x021ec, 0x021ed, 0x021ee, 0x021ef, + 0x021f0, 0x021f1, 0x021f2, 0x021f3, 0x021f4, 0x021f5, 0x021f6, 0x021f7, + 0x021f8, 0x021f9, 0x021fa, 0x021fb, 0x021fc, 0x021fd, 0x021fe, 0x021ff +}; + +static uint32_t general_ci_plane_24[] = { + 0x02400, 0x02401, 0x02402, 0x02403, 0x02404, 0x02405, 0x02406, 0x02407, + 0x02408, 0x02409, 0x0240a, 0x0240b, 0x0240c, 0x0240d, 0x0240e, 0x0240f, + 0x02410, 0x02411, 0x02412, 0x02413, 0x02414, 0x02415, 0x02416, 0x02417, + 0x02418, 0x02419, 0x0241a, 0x0241b, 0x0241c, 0x0241d, 0x0241e, 0x0241f, + 0x02420, 0x02421, 0x02422, 0x02423, 0x02424, 0x02425, 0x02426, 0x02427, + 0x02428, 0x02429, 0x0242a, 0x0242b, 0x0242c, 0x0242d, 0x0242e, 0x0242f, + 0x02430, 0x02431, 0x02432, 0x02433, 0x02434, 0x02435, 0x02436, 0x02437, + 0x02438, 0x02439, 0x0243a, 0x0243b, 0x0243c, 0x0243d, 0x0243e, 0x0243f, + 0x02440, 0x02441, 0x02442, 0x02443, 0x02444, 0x02445, 0x02446, 0x02447, + 0x02448, 0x02449, 0x0244a, 0x0244b, 0x0244c, 0x0244d, 0x0244e, 0x0244f, + 0x02450, 0x02451, 0x02452, 0x02453, 0x02454, 0x02455, 0x02456, 0x02457, + 0x02458, 0x02459, 0x0245a, 0x0245b, 0x0245c, 0x0245d, 0x0245e, 0x0245f, + 0x02460, 0x02461, 0x02462, 0x02463, 0x02464, 0x02465, 0x02466, 0x02467, + 0x02468, 0x02469, 0x0246a, 0x0246b, 0x0246c, 0x0246d, 0x0246e, 0x0246f, + 0x02470, 0x02471, 0x02472, 0x02473, 0x02474, 0x02475, 0x02476, 0x02477, + 0x02478, 0x02479, 0x0247a, 0x0247b, 0x0247c, 0x0247d, 0x0247e, 0x0247f, + 0x02480, 0x02481, 0x02482, 0x02483, 0x02484, 0x02485, 0x02486, 0x02487, + 0x02488, 0x02489, 0x0248a, 0x0248b, 0x0248c, 0x0248d, 0x0248e, 0x0248f, + 0x02490, 0x02491, 0x02492, 0x02493, 0x02494, 0x02495, 0x02496, 0x02497, + 0x02498, 0x02499, 0x0249a, 0x0249b, 0x0249c, 0x0249d, 0x0249e, 0x0249f, + 0x024a0, 0x024a1, 0x024a2, 0x024a3, 0x024a4, 0x024a5, 0x024a6, 0x024a7, + 0x024a8, 0x024a9, 0x024aa, 0x024ab, 0x024ac, 0x024ad, 0x024ae, 0x024af, + 0x024b0, 0x024b1, 0x024b2, 0x024b3, 0x024b4, 0x024b5, 0x024b6, 0x024b7, + 0x024b8, 0x024b9, 0x024ba, 0x024bb, 0x024bc, 0x024bd, 0x024be, 0x024bf, + 0x024c0, 0x024c1, 0x024c2, 0x024c3, 0x024c4, 0x024c5, 0x024c6, 0x024c7, + 0x024c8, 0x024c9, 0x024ca, 0x024cb, 0x024cc, 0x024cd, 0x024ce, 0x024cf, + 0x024b6, 0x024b7, 0x024b8, 0x024b9, 0x024ba, 0x024bb, 0x024bc, 0x024bd, + 0x024be, 0x024bf, 0x024c0, 0x024c1, 0x024c2, 0x024c3, 0x024c4, 0x024c5, + 0x024c6, 0x024c7, 0x024c8, 0x024c9, 0x024ca, 0x024cb, 0x024cc, 0x024cd, + 0x024ce, 0x024cf, 0x024ea, 0x024eb, 0x024ec, 0x024ed, 0x024ee, 0x024ef, + 0x024f0, 0x024f1, 0x024f2, 0x024f3, 0x024f4, 0x024f5, 0x024f6, 0x024f7, + 0x024f8, 0x024f9, 0x024fa, 0x024fb, 0x024fc, 0x024fd, 0x024fe, 0x024ff +}; + +static uint32_t general_ci_plane_ff[] = { + 0x0ff00, 0x0ff01, 0x0ff02, 0x0ff03, 0x0ff04, 0x0ff05, 0x0ff06, 0x0ff07, + 0x0ff08, 0x0ff09, 0x0ff0a, 0x0ff0b, 0x0ff0c, 0x0ff0d, 0x0ff0e, 0x0ff0f, + 0x0ff10, 0x0ff11, 0x0ff12, 0x0ff13, 0x0ff14, 0x0ff15, 0x0ff16, 0x0ff17, + 0x0ff18, 0x0ff19, 0x0ff1a, 0x0ff1b, 0x0ff1c, 0x0ff1d, 0x0ff1e, 0x0ff1f, + 0x0ff20, 0x0ff21, 0x0ff22, 0x0ff23, 0x0ff24, 0x0ff25, 0x0ff26, 0x0ff27, + 0x0ff28, 0x0ff29, 0x0ff2a, 0x0ff2b, 0x0ff2c, 0x0ff2d, 0x0ff2e, 0x0ff2f, + 0x0ff30, 0x0ff31, 0x0ff32, 0x0ff33, 0x0ff34, 0x0ff35, 0x0ff36, 0x0ff37, + 0x0ff38, 0x0ff39, 0x0ff3a, 0x0ff3b, 0x0ff3c, 0x0ff3d, 0x0ff3e, 0x0ff3f, + 0x0ff40, 0x0ff21, 0x0ff22, 0x0ff23, 0x0ff24, 0x0ff25, 0x0ff26, 0x0ff27, + 0x0ff28, 0x0ff29, 0x0ff2a, 0x0ff2b, 0x0ff2c, 0x0ff2d, 0x0ff2e, 0x0ff2f, + 0x0ff30, 0x0ff31, 0x0ff32, 0x0ff33, 0x0ff34, 0x0ff35, 0x0ff36, 0x0ff37, + 0x0ff38, 0x0ff39, 0x0ff3a, 0x0ff5b, 0x0ff5c, 0x0ff5d, 0x0ff5e, 0x0ff5f, + 0x0ff60, 0x0ff61, 0x0ff62, 0x0ff63, 0x0ff64, 0x0ff65, 0x0ff66, 0x0ff67, + 0x0ff68, 0x0ff69, 0x0ff6a, 0x0ff6b, 0x0ff6c, 0x0ff6d, 0x0ff6e, 0x0ff6f, + 0x0ff70, 0x0ff71, 0x0ff72, 0x0ff73, 0x0ff74, 0x0ff75, 0x0ff76, 0x0ff77, + 0x0ff78, 0x0ff79, 0x0ff7a, 0x0ff7b, 0x0ff7c, 0x0ff7d, 0x0ff7e, 0x0ff7f, + 0x0ff80, 0x0ff81, 0x0ff82, 0x0ff83, 0x0ff84, 0x0ff85, 0x0ff86, 0x0ff87, + 0x0ff88, 0x0ff89, 0x0ff8a, 0x0ff8b, 0x0ff8c, 0x0ff8d, 0x0ff8e, 0x0ff8f, + 0x0ff90, 0x0ff91, 0x0ff92, 0x0ff93, 0x0ff94, 0x0ff95, 0x0ff96, 0x0ff97, + 0x0ff98, 0x0ff99, 0x0ff9a, 0x0ff9b, 0x0ff9c, 0x0ff9d, 0x0ff9e, 0x0ff9f, + 0x0ffa0, 0x0ffa1, 0x0ffa2, 0x0ffa3, 0x0ffa4, 0x0ffa5, 0x0ffa6, 0x0ffa7, + 0x0ffa8, 0x0ffa9, 0x0ffaa, 0x0ffab, 0x0ffac, 0x0ffad, 0x0ffae, 0x0ffaf, + 0x0ffb0, 0x0ffb1, 0x0ffb2, 0x0ffb3, 0x0ffb4, 0x0ffb5, 0x0ffb6, 0x0ffb7, + 0x0ffb8, 0x0ffb9, 0x0ffba, 0x0ffbb, 0x0ffbc, 0x0ffbd, 0x0ffbe, 0x0ffbf, + 0x0ffc0, 0x0ffc1, 0x0ffc2, 0x0ffc3, 0x0ffc4, 0x0ffc5, 0x0ffc6, 0x0ffc7, + 0x0ffc8, 0x0ffc9, 0x0ffca, 0x0ffcb, 0x0ffcc, 0x0ffcd, 0x0ffce, 0x0ffcf, + 0x0ffd0, 0x0ffd1, 0x0ffd2, 0x0ffd3, 0x0ffd4, 0x0ffd5, 0x0ffd6, 0x0ffd7, + 0x0ffd8, 0x0ffd9, 0x0ffda, 0x0ffdb, 0x0ffdc, 0x0ffdd, 0x0ffde, 0x0ffdf, + 0x0ffe0, 0x0ffe1, 0x0ffe2, 0x0ffe3, 0x0ffe4, 0x0ffe5, 0x0ffe6, 0x0ffe7, + 0x0ffe8, 0x0ffe9, 0x0ffea, 0x0ffeb, 0x0ffec, 0x0ffed, 0x0ffee, 0x0ffef, + 0x0fff0, 0x0fff1, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff5, 0x0fff6, 0x0fff7, + 0x0fff8, 0x0fff9, 0x0fffa, 0x0fffb, 0x0fffc, 0x0fffd, 0x0fffe, 0x0ffff +}; + +static uint32_t *general_ci_table[256] = { + general_ci_plane_00, general_ci_plane_01, + general_ci_plane_02, general_ci_plane_03, + general_ci_plane_04, general_ci_plane_05, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + general_ci_plane_1e, general_ci_plane_1f, + NULL, general_ci_plane_21, + NULL, NULL, + general_ci_plane_24, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, NULL, + NULL, general_ci_plane_ff +}; + +#endif