23 #include <drizzled/internal/m_string.h>
24 #include <drizzled/charset.h>
34 #define MY_UTF8MB3_GENERAL_CI MY_UTF8MB3 "_general_ci"
35 #define MY_UTF8MB3_BIN MY_UTF8MB3 "_bin"
36 #define MY_UTF8MB4_GENERAL_CI MY_UTF8MB4 "_general_ci"
37 #define MY_UTF8MB4_BIN MY_UTF8MB4 "_bin"
45 void my_hash_sort_utf8mb4(
const charset_info_st* cs,
46 const unsigned char *s,
size_t slen,
47 uint32_t *n1, uint32_t *n2);
49 static MY_UNICASE_INFO plane00[]={
50 {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
51 {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
52 {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
53 {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
54 {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
55 {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
56 {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
57 {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
58 {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
59 {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
60 {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
61 {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
62 {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
63 {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
64 {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
65 {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
66 {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
67 {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
68 {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
69 {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
70 {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
71 {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
72 {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
73 {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
74 {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
75 {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
76 {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
77 {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
78 {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
79 {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
80 {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
81 {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
82 {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
83 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
84 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
85 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
86 {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
87 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
88 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
89 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
90 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
91 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
92 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
93 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
94 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
95 {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
96 {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
97 {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
98 {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
99 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
100 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
101 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
102 {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
103 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
104 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
105 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
106 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
107 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
108 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
109 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
110 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
111 {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
112 {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
113 {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
114 {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
115 {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
116 {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
117 {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
118 {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
119 {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
120 {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
121 {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
122 {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
123 {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
124 {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
125 {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
126 {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
127 {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
128 {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
129 {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
130 {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
131 {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
132 {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
133 {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
134 {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
135 {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
136 {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
137 {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
138 {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
139 {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
140 {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
141 {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
142 {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
143 {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
144 {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
145 {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
146 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
147 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
148 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
149 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
150 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
151 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
152 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
153 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
154 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
155 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
156 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
157 {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
158 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
159 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
160 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
161 {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053},
162 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
163 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
164 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
165 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
166 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
167 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
168 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
169 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
170 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
171 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
172 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
173 {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
174 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
175 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
176 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
177 {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
182 static MY_UNICASE_INFO plane01[]={
183 {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041},
184 {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041},
185 {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041},
186 {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043},
187 {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043},
188 {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043},
189 {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043},
190 {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044},
191 {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110},
192 {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045},
193 {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045},
194 {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045},
195 {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045},
196 {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045},
197 {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047},
198 {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047},
199 {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047},
200 {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047},
201 {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048},
202 {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126},
203 {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049},
204 {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049},
205 {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049},
206 {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049},
207 {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049},
208 {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132},
209 {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A},
210 {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B},
211 {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C},
212 {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C},
213 {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C},
214 {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F},
215 {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141},
216 {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E},
217 {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E},
218 {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E},
219 {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149},
220 {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A},
221 {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F},
222 {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F},
223 {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F},
224 {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152},
225 {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052},
226 {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052},
227 {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052},
228 {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053},
229 {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053},
230 {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053},
231 {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053},
232 {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054},
233 {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054},
234 {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166},
235 {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055},
236 {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055},
237 {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055},
238 {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055},
239 {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055},
240 {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055},
241 {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057},
242 {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059},
243 {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A},
244 {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A},
245 {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A},
246 {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053},
247 {0x0180,0x0180,0x0180}, {0x0181,0x0253,0x0181},
248 {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182},
249 {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184},
250 {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187},
251 {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189},
252 {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B},
253 {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D},
254 {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F},
255 {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191},
256 {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193},
257 {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6},
258 {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197},
259 {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198},
260 {0x019A,0x019A,0x019A}, {0x019B,0x019B,0x019B},
261 {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D},
262 {0x019E,0x019E,0x019E}, {0x019F,0x0275,0x019F},
263 {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F},
264 {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2},
265 {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4},
266 {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7},
267 {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9},
268 {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB},
269 {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC},
270 {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055},
271 {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1},
272 {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3},
273 {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5},
274 {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7},
275 {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8},
276 {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB},
277 {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC},
278 {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7},
279 {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1},
280 {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3},
281 {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4},
282 {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7},
283 {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7},
284 {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA},
285 {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041},
286 {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049},
287 {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F},
288 {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055},
289 {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055},
290 {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055},
291 {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055},
292 {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055},
293 {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E},
294 {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041},
295 {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041},
296 {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6},
297 {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4},
298 {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047},
299 {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B},
300 {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F},
301 {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F},
302 {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7},
303 {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1},
304 {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1},
305 {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047},
306 {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7},
307 {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E},
308 {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041},
309 {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6},
310 {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8}
313 static MY_UNICASE_INFO plane02[]={
314 {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041},
315 {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041},
316 {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045},
317 {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045},
318 {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049},
319 {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049},
320 {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F},
321 {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F},
322 {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052},
323 {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052},
324 {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055},
325 {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055},
326 {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053},
327 {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054},
328 {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C},
329 {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048},
330 {0x0220,0x0220,0x0220}, {0x0221,0x0221,0x0221},
331 {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222},
332 {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224},
333 {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041},
334 {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045},
335 {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F},
336 {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F},
337 {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F},
338 {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F},
339 {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059},
340 {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235},
341 {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237},
342 {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239},
343 {0x023A,0x023A,0x023A}, {0x023B,0x023B,0x023B},
344 {0x023C,0x023C,0x023C}, {0x023D,0x023D,0x023D},
345 {0x023E,0x023E,0x023E}, {0x023F,0x023F,0x023F},
346 {0x0240,0x0240,0x0240}, {0x0241,0x0241,0x0241},
347 {0x0242,0x0242,0x0242}, {0x0243,0x0243,0x0243},
348 {0x0244,0x0244,0x0244}, {0x0245,0x0245,0x0245},
349 {0x0246,0x0246,0x0246}, {0x0247,0x0247,0x0247},
350 {0x0248,0x0248,0x0248}, {0x0249,0x0249,0x0249},
351 {0x024A,0x024A,0x024A}, {0x024B,0x024B,0x024B},
352 {0x024C,0x024C,0x024C}, {0x024D,0x024D,0x024D},
353 {0x024E,0x024E,0x024E}, {0x024F,0x024F,0x024F},
354 {0x0250,0x0250,0x0250}, {0x0251,0x0251,0x0251},
355 {0x0252,0x0252,0x0252}, {0x0181,0x0253,0x0181},
356 {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255},
357 {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A},
358 {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F},
359 {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190},
360 {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D},
361 {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F},
362 {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261},
363 {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194},
364 {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265},
365 {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267},
366 {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196},
367 {0x026A,0x026A,0x026A}, {0x026B,0x026B,0x026B},
368 {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D},
369 {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C},
370 {0x0270,0x0270,0x0270}, {0x0271,0x0271,0x0271},
371 {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273},
372 {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F},
373 {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277},
374 {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279},
375 {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B},
376 {0x027C,0x027C,0x027C}, {0x027D,0x027D,0x027D},
377 {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F},
378 {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281},
379 {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9},
380 {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285},
381 {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287},
382 {0x01AE,0x0288,0x01AE}, {0x0289,0x0289,0x0289},
383 {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2},
384 {0x028C,0x028C,0x028C}, {0x028D,0x028D,0x028D},
385 {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F},
386 {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291},
387 {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293},
388 {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295},
389 {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297},
390 {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299},
391 {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B},
392 {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D},
393 {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F},
394 {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1},
395 {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3},
396 {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5},
397 {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7},
398 {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9},
399 {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB},
400 {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD},
401 {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF},
402 {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1},
403 {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3},
404 {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5},
405 {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7},
406 {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9},
407 {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB},
408 {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD},
409 {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF},
410 {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1},
411 {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3},
412 {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5},
413 {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7},
414 {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9},
415 {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB},
416 {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD},
417 {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF},
418 {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1},
419 {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3},
420 {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5},
421 {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7},
422 {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9},
423 {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB},
424 {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD},
425 {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF},
426 {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1},
427 {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3},
428 {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5},
429 {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7},
430 {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9},
431 {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB},
432 {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED},
433 {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF},
434 {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1},
435 {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3},
436 {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5},
437 {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7},
438 {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9},
439 {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB},
440 {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD},
441 {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF}
444 static MY_UNICASE_INFO plane03[]={
445 {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301},
446 {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303},
447 {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305},
448 {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307},
449 {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309},
450 {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B},
451 {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D},
452 {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F},
453 {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311},
454 {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313},
455 {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315},
456 {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317},
457 {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319},
458 {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B},
459 {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D},
460 {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F},
461 {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321},
462 {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323},
463 {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325},
464 {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327},
465 {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329},
466 {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B},
467 {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D},
468 {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F},
469 {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331},
470 {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333},
471 {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335},
472 {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337},
473 {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339},
474 {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B},
475 {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D},
476 {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F},
477 {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341},
478 {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343},
479 {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399},
480 {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347},
481 {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349},
482 {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B},
483 {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D},
484 {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F},
485 {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351},
486 {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353},
487 {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355},
488 {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357},
489 {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359},
490 {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B},
491 {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D},
492 {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F},
493 {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361},
494 {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363},
495 {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365},
496 {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367},
497 {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369},
498 {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B},
499 {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D},
500 {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F},
501 {0x0370,0x0370,0x0370}, {0x0371,0x0371,0x0371},
502 {0x0372,0x0372,0x0372}, {0x0373,0x0373,0x0373},
503 {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375},
504 {0x0376,0x0376,0x0376}, {0x0377,0x0377,0x0377},
505 {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379},
506 {0x037A,0x037A,0x037A}, {0x037B,0x037B,0x037B},
507 {0x037C,0x037C,0x037C}, {0x037D,0x037D,0x037D},
508 {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F},
509 {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381},
510 {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383},
511 {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385},
512 {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387},
513 {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397},
514 {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B},
515 {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D},
516 {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9},
517 {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391},
518 {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
519 {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
520 {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
521 {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
522 {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
523 {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
524 {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
525 {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
526 {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3},
527 {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
528 {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
529 {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
530 {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
531 {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395},
532 {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399},
533 {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391},
534 {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
535 {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
536 {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
537 {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
538 {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
539 {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
540 {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
541 {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
542 {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3},
543 {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
544 {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
545 {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
546 {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
547 {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5},
548 {0x038F,0x03CE,0x03A9}, {0x03CF,0x03CF,0x03CF},
549 {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398},
550 {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2},
551 {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6},
552 {0x03A0,0x03D6,0x03A0}, {0x03D7,0x03D7,0x03D7},
553 {0x03D8,0x03D8,0x03D8}, {0x03D9,0x03D9,0x03D9},
554 {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA},
555 {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC},
556 {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE},
557 {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0},
558 {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2},
559 {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4},
560 {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6},
561 {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8},
562 {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA},
563 {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC},
564 {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE},
565 {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1},
566 {0x03A3,0x03F2,0x03A3}, {0x03F3,0x03F3,0x03F3},
567 {0x03F4,0x03F4,0x03F4}, {0x03F5,0x03F5,0x03F5},
568 {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F7,0x03F7},
569 {0x03F8,0x03F8,0x03F8}, {0x03F9,0x03F9,0x03F9},
570 {0x03FA,0x03FA,0x03FA}, {0x03FB,0x03FB,0x03FB},
571 {0x03FC,0x03FC,0x03FC}, {0x03FD,0x03FD,0x03FD},
572 {0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF}
575 static MY_UNICASE_INFO plane04[]={
576 {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
577 {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
578 {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
579 {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
580 {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
581 {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
582 {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
583 {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
584 {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
585 {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
586 {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
587 {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
588 {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
589 {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
590 {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
591 {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
592 {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
593 {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
594 {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
595 {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
596 {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
597 {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
598 {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
599 {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
600 {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
601 {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
602 {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
603 {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
604 {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
605 {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
606 {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
607 {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
608 {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
609 {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
610 {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
611 {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
612 {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
613 {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
614 {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
615 {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
616 {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
617 {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
618 {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
619 {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
620 {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
621 {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
622 {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
623 {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
624 {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460},
625 {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462},
626 {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464},
627 {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466},
628 {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468},
629 {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A},
630 {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C},
631 {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E},
632 {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470},
633 {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472},
634 {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474},
635 {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474},
636 {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478},
637 {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A},
638 {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C},
639 {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E},
640 {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480},
641 {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483},
642 {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485},
643 {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487},
644 {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489},
645 {0x048A,0x048A,0x048A}, {0x048B,0x048B,0x048B},
646 {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C},
647 {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E},
648 {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490},
649 {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492},
650 {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494},
651 {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496},
652 {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498},
653 {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A},
654 {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C},
655 {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E},
656 {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0},
657 {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2},
658 {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4},
659 {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6},
660 {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8},
661 {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA},
662 {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC},
663 {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE},
664 {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0},
665 {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2},
666 {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4},
667 {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6},
668 {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8},
669 {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA},
670 {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC},
671 {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE},
672 {0x04C0,0x04C0,0x04C0}, {0x04C1,0x04C2,0x0416},
673 {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3},
674 {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C5,0x04C5},
675 {0x04C6,0x04C6,0x04C6}, {0x04C7,0x04C8,0x04C7},
676 {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04C9,0x04C9},
677 {0x04CA,0x04CA,0x04CA}, {0x04CB,0x04CC,0x04CB},
678 {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CD,0x04CD},
679 {0x04CE,0x04CE,0x04CE}, {0x04CF,0x04CF,0x04CF},
680 {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410},
681 {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410},
682 {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4},
683 {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415},
684 {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8},
685 {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8},
686 {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416},
687 {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417},
688 {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0},
689 {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418},
690 {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418},
691 {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E},
692 {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8},
693 {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8},
694 {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D},
695 {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423},
696 {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423},
697 {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423},
698 {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427},
699 {0x04F6,0x04F6,0x04F6}, {0x04F7,0x04F7,0x04F7},
700 {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B},
701 {0x04FA,0x04FA,0x04FA}, {0x04FB,0x04FB,0x04FB},
702 {0x04FC,0x04FC,0x04FC}, {0x04FD,0x04FD,0x04FD},
703 {0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF}
706 static MY_UNICASE_INFO plane05[]={
707 {0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501},
708 {0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503},
709 {0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505},
710 {0x0506,0x0506,0x0506}, {0x0507,0x0507,0x0507},
711 {0x0508,0x0508,0x0508}, {0x0509,0x0509,0x0509},
712 {0x050A,0x050A,0x050A}, {0x050B,0x050B,0x050B},
713 {0x050C,0x050C,0x050C}, {0x050D,0x050D,0x050D},
714 {0x050E,0x050E,0x050E}, {0x050F,0x050F,0x050F},
715 {0x0510,0x0510,0x0510}, {0x0511,0x0511,0x0511},
716 {0x0512,0x0512,0x0512}, {0x0513,0x0513,0x0513},
717 {0x0514,0x0514,0x0514}, {0x0515,0x0515,0x0515},
718 {0x0516,0x0516,0x0516}, {0x0517,0x0517,0x0517},
719 {0x0518,0x0518,0x0518}, {0x0519,0x0519,0x0519},
720 {0x051A,0x051A,0x051A}, {0x051B,0x051B,0x051B},
721 {0x051C,0x051C,0x051C}, {0x051D,0x051D,0x051D},
722 {0x051E,0x051E,0x051E}, {0x051F,0x051F,0x051F},
723 {0x0520,0x0520,0x0520}, {0x0521,0x0521,0x0521},
724 {0x0522,0x0522,0x0522}, {0x0523,0x0523,0x0523},
725 {0x0524,0x0524,0x0524}, {0x0525,0x0525,0x0525},
726 {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527},
727 {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529},
728 {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B},
729 {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D},
730 {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F},
731 {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531},
732 {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
733 {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
734 {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
735 {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
736 {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
737 {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
738 {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
739 {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
740 {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
741 {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
742 {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
743 {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
744 {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
745 {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
746 {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
747 {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
748 {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
749 {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
750 {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557},
751 {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559},
752 {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B},
753 {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D},
754 {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F},
755 {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531},
756 {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
757 {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
758 {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
759 {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
760 {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
761 {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
762 {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
763 {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
764 {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
765 {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
766 {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
767 {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
768 {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
769 {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
770 {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
771 {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
772 {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
773 {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
774 {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587},
775 {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589},
776 {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B},
777 {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D},
778 {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F},
779 {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591},
780 {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593},
781 {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595},
782 {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597},
783 {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599},
784 {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B},
785 {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D},
786 {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F},
787 {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1},
788 {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3},
789 {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5},
790 {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7},
791 {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9},
792 {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB},
793 {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD},
794 {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF},
795 {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1},
796 {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3},
797 {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5},
798 {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7},
799 {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9},
800 {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB},
801 {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD},
802 {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF},
803 {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1},
804 {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3},
805 {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5},
806 {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7},
807 {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9},
808 {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB},
809 {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD},
810 {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF},
811 {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1},
812 {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3},
813 {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5},
814 {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7},
815 {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9},
816 {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB},
817 {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD},
818 {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF},
819 {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1},
820 {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3},
821 {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5},
822 {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7},
823 {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9},
824 {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB},
825 {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED},
826 {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF},
827 {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1},
828 {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3},
829 {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5},
830 {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7},
831 {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9},
832 {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB},
833 {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD},
834 {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF}
837 static MY_UNICASE_INFO plane1E[]={
838 {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041},
839 {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042},
840 {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042},
841 {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042},
842 {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043},
843 {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044},
844 {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044},
845 {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044},
846 {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044},
847 {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044},
848 {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045},
849 {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045},
850 {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045},
851 {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045},
852 {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045},
853 {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046},
854 {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047},
855 {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048},
856 {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048},
857 {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048},
858 {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048},
859 {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048},
860 {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049},
861 {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049},
862 {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B},
863 {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B},
864 {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B},
865 {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C},
866 {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C},
867 {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C},
868 {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C},
869 {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D},
870 {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D},
871 {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D},
872 {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E},
873 {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E},
874 {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E},
875 {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E},
876 {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F},
877 {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F},
878 {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F},
879 {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F},
880 {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050},
881 {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050},
882 {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052},
883 {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052},
884 {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052},
885 {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052},
886 {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053},
887 {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053},
888 {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053},
889 {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053},
890 {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053},
891 {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054},
892 {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054},
893 {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054},
894 {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054},
895 {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055},
896 {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055},
897 {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055},
898 {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055},
899 {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055},
900 {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056},
901 {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056},
902 {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057},
903 {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057},
904 {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057},
905 {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057},
906 {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057},
907 {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058},
908 {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058},
909 {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059},
910 {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A},
911 {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A},
912 {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A},
913 {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054},
914 {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059},
915 {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053},
916 {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D},
917 {0x1E9E,0x1E9E,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F},
918 {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041},
919 {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041},
920 {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041},
921 {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041},
922 {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041},
923 {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041},
924 {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041},
925 {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041},
926 {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041},
927 {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041},
928 {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041},
929 {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041},
930 {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045},
931 {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045},
932 {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045},
933 {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045},
934 {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045},
935 {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045},
936 {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045},
937 {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045},
938 {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049},
939 {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049},
940 {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F},
941 {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F},
942 {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F},
943 {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F},
944 {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F},
945 {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F},
946 {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F},
947 {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F},
948 {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F},
949 {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F},
950 {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F},
951 {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F},
952 {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055},
953 {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055},
954 {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055},
955 {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055},
956 {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055},
957 {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055},
958 {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055},
959 {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059},
960 {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059},
961 {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059},
962 {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059},
963 {0x1EFA,0x1EFA,0x1EFA}, {0x1EFB,0x1EFB,0x1EFB},
964 {0x1EFC,0x1EFC,0x1EFC}, {0x1EFD,0x1EFD,0x1EFD},
965 {0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF}
968 static MY_UNICASE_INFO plane1F[]={
969 {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
970 {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
971 {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
972 {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
973 {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
974 {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
975 {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
976 {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
977 {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
978 {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
979 {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
980 {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17},
981 {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
982 {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
983 {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
984 {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F},
985 {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
986 {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
987 {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
988 {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
989 {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
990 {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
991 {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
992 {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
993 {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
994 {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
995 {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
996 {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
997 {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
998 {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
999 {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
1000 {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
1001 {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
1002 {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
1003 {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
1004 {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47},
1005 {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
1006 {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
1007 {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
1008 {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F},
1009 {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5},
1010 {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5},
1011 {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5},
1012 {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5},
1013 {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5},
1014 {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5},
1015 {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5},
1016 {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5},
1017 {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
1018 {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
1019 {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
1020 {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
1021 {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
1022 {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
1023 {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
1024 {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
1025 {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
1026 {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
1027 {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
1028 {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
1029 {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
1030 {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
1031 {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
1032 {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F},
1033 {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
1034 {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
1035 {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
1036 {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
1037 {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
1038 {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
1039 {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
1040 {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
1041 {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
1042 {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
1043 {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
1044 {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
1045 {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
1046 {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
1047 {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
1048 {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
1049 {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
1050 {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
1051 {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
1052 {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
1053 {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
1054 {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
1055 {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
1056 {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
1057 {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
1058 {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391},
1059 {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5},
1060 {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391},
1061 {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
1062 {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
1063 {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD},
1064 {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF},
1065 {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1},
1066 {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397},
1067 {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5},
1068 {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397},
1069 {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
1070 {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
1071 {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD},
1072 {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF},
1073 {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
1074 {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3},
1075 {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5},
1076 {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399},
1077 {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
1078 {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
1079 {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD},
1080 {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF},
1081 {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
1082 {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3},
1083 {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1},
1084 {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5},
1085 {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
1086 {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
1087 {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED},
1088 {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF},
1089 {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1},
1090 {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9},
1091 {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5},
1092 {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9},
1093 {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
1094 {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
1095 {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD},
1096 {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF}
1099 static MY_UNICASE_INFO plane21[]={
1100 {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101},
1101 {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103},
1102 {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105},
1103 {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107},
1104 {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109},
1105 {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B},
1106 {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D},
1107 {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F},
1108 {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111},
1109 {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113},
1110 {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115},
1111 {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117},
1112 {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119},
1113 {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B},
1114 {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D},
1115 {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F},
1116 {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121},
1117 {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123},
1118 {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125},
1119 {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127},
1120 {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129},
1121 {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B},
1122 {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D},
1123 {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F},
1124 {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131},
1125 {0x2132,0x2132,0x2132}, {0x2133,0x2133,0x2133},
1126 {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135},
1127 {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137},
1128 {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139},
1129 {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B},
1130 {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D},
1131 {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F},
1132 {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141},
1133 {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143},
1134 {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145},
1135 {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147},
1136 {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149},
1137 {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B},
1138 {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D},
1139 {0x214E,0x214E,0x214E}, {0x214F,0x214F,0x214F},
1140 {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151},
1141 {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153},
1142 {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155},
1143 {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157},
1144 {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159},
1145 {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B},
1146 {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D},
1147 {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F},
1148 {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
1149 {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
1150 {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
1151 {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
1152 {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
1153 {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
1154 {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
1155 {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
1156 {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
1157 {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
1158 {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
1159 {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
1160 {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
1161 {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
1162 {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
1163 {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
1164 {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181},
1165 {0x2182,0x2182,0x2182}, {0x2183,0x2183,0x2183},
1166 {0x2184,0x2184,0x2184}, {0x2185,0x2185,0x2185},
1167 {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187},
1168 {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189},
1169 {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B},
1170 {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D},
1171 {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F},
1172 {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191},
1173 {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193},
1174 {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195},
1175 {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197},
1176 {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199},
1177 {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B},
1178 {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D},
1179 {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F},
1180 {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1},
1181 {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3},
1182 {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5},
1183 {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7},
1184 {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9},
1185 {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB},
1186 {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD},
1187 {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF},
1188 {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1},
1189 {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3},
1190 {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5},
1191 {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7},
1192 {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9},
1193 {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB},
1194 {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD},
1195 {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF},
1196 {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1},
1197 {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3},
1198 {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5},
1199 {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7},
1200 {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9},
1201 {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB},
1202 {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD},
1203 {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF},
1204 {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1},
1205 {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3},
1206 {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5},
1207 {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7},
1208 {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9},
1209 {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB},
1210 {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD},
1211 {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF},
1212 {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1},
1213 {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3},
1214 {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5},
1215 {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7},
1216 {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9},
1217 {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB},
1218 {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED},
1219 {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF},
1220 {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1},
1221 {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3},
1222 {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5},
1223 {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7},
1224 {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9},
1225 {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB},
1226 {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD},
1227 {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF}
1230 static MY_UNICASE_INFO plane24[]={
1231 {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401},
1232 {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403},
1233 {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405},
1234 {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407},
1235 {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409},
1236 {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B},
1237 {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D},
1238 {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F},
1239 {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411},
1240 {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413},
1241 {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415},
1242 {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417},
1243 {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419},
1244 {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B},
1245 {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D},
1246 {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F},
1247 {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421},
1248 {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423},
1249 {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425},
1250 {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427},
1251 {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429},
1252 {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B},
1253 {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D},
1254 {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F},
1255 {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431},
1256 {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433},
1257 {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435},
1258 {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437},
1259 {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439},
1260 {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B},
1261 {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D},
1262 {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F},
1263 {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441},
1264 {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443},
1265 {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445},
1266 {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447},
1267 {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449},
1268 {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B},
1269 {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D},
1270 {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F},
1271 {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451},
1272 {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453},
1273 {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455},
1274 {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457},
1275 {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459},
1276 {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B},
1277 {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D},
1278 {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F},
1279 {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461},
1280 {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463},
1281 {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465},
1282 {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467},
1283 {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469},
1284 {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B},
1285 {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D},
1286 {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F},
1287 {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471},
1288 {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473},
1289 {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475},
1290 {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477},
1291 {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479},
1292 {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B},
1293 {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D},
1294 {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F},
1295 {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481},
1296 {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483},
1297 {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485},
1298 {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487},
1299 {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489},
1300 {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B},
1301 {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D},
1302 {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F},
1303 {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491},
1304 {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493},
1305 {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495},
1306 {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497},
1307 {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499},
1308 {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B},
1309 {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D},
1310 {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F},
1311 {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1},
1312 {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3},
1313 {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5},
1314 {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7},
1315 {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9},
1316 {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB},
1317 {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD},
1318 {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF},
1319 {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1},
1320 {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3},
1321 {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5},
1322 {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
1323 {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
1324 {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
1325 {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
1326 {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
1327 {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
1328 {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
1329 {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
1330 {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
1331 {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
1332 {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
1333 {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
1334 {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
1335 {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
1336 {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
1337 {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
1338 {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
1339 {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
1340 {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
1341 {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
1342 {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
1343 {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
1344 {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
1345 {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
1346 {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
1347 {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
1348 {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB},
1349 {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED},
1350 {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF},
1351 {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1},
1352 {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3},
1353 {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5},
1354 {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7},
1355 {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9},
1356 {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB},
1357 {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD},
1358 {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF}
1361 static MY_UNICASE_INFO planeFF[]={
1362 {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01},
1363 {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03},
1364 {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05},
1365 {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07},
1366 {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09},
1367 {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B},
1368 {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D},
1369 {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F},
1370 {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11},
1371 {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13},
1372 {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15},
1373 {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17},
1374 {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19},
1375 {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B},
1376 {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D},
1377 {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F},
1378 {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21},
1379 {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
1380 {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
1381 {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
1382 {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
1383 {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
1384 {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
1385 {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
1386 {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
1387 {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
1388 {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
1389 {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
1390 {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
1391 {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B},
1392 {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D},
1393 {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F},
1394 {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21},
1395 {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
1396 {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
1397 {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
1398 {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
1399 {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
1400 {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
1401 {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
1402 {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
1403 {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
1404 {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
1405 {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
1406 {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
1407 {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B},
1408 {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D},
1409 {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F},
1410 {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61},
1411 {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63},
1412 {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65},
1413 {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67},
1414 {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69},
1415 {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B},
1416 {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D},
1417 {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F},
1418 {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71},
1419 {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73},
1420 {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75},
1421 {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77},
1422 {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79},
1423 {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B},
1424 {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D},
1425 {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F},
1426 {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81},
1427 {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83},
1428 {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85},
1429 {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87},
1430 {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89},
1431 {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B},
1432 {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D},
1433 {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F},
1434 {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91},
1435 {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93},
1436 {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95},
1437 {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97},
1438 {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99},
1439 {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B},
1440 {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D},
1441 {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F},
1442 {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1},
1443 {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3},
1444 {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5},
1445 {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7},
1446 {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9},
1447 {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB},
1448 {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD},
1449 {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF},
1450 {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1},
1451 {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3},
1452 {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5},
1453 {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7},
1454 {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9},
1455 {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB},
1456 {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD},
1457 {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF},
1458 {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1},
1459 {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3},
1460 {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5},
1461 {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7},
1462 {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9},
1463 {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB},
1464 {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD},
1465 {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF},
1466 {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1},
1467 {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3},
1468 {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5},
1469 {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7},
1470 {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9},
1471 {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB},
1472 {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD},
1473 {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF},
1474 {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1},
1475 {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3},
1476 {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5},
1477 {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7},
1478 {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9},
1479 {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB},
1480 {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED},
1481 {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF},
1482 {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1},
1483 {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3},
1484 {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5},
1485 {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7},
1486 {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9},
1487 {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB},
1488 {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD},
1489 {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF}
1492 MY_UNICASE_INFO *my_unicase_default[256]={
1493 plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1494 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1495 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1496 NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1497 NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1498 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1499 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1500 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1501 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1502 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1503 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1504 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1505 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1506 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1507 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1508 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1509 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1510 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1511 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1512 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1513 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1514 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1515 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1516 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1517 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1518 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1519 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1520 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1521 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1522 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1523 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1524 NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1537 static MY_UNICASE_INFO turk00[]=
1539 {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
1540 {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
1541 {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
1542 {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
1543 {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
1544 {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
1545 {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
1546 {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
1547 {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
1548 {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
1549 {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
1550 {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
1551 {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
1552 {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
1553 {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
1554 {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
1555 {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
1556 {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
1557 {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
1558 {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
1559 {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
1560 {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
1561 {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
1562 {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
1563 {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
1564 {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
1565 {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
1566 {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
1567 {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
1568 {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
1569 {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
1570 {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
1571 {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
1572 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
1573 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
1574 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
1575 {0x0048,0x0068,0x0048}, {0x0049,0x0131,0x0049},
1576 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
1577 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
1578 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
1579 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
1580 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
1581 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
1582 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
1583 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
1584 {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
1585 {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
1586 {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
1587 {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
1588 {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
1589 {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
1590 {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
1591 {0x0048,0x0068,0x0048}, {0x0130,0x0069,0x0049},
1592 {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
1593 {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
1594 {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
1595 {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
1596 {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
1597 {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
1598 {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
1599 {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
1600 {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
1601 {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
1602 {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
1603 {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
1604 {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
1605 {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
1606 {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
1607 {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
1608 {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
1609 {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
1610 {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
1611 {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
1612 {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
1613 {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
1614 {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
1615 {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
1616 {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
1617 {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
1618 {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
1619 {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
1620 {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
1621 {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
1622 {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
1623 {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
1624 {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
1625 {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
1626 {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
1627 {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
1628 {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
1629 {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
1630 {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
1631 {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
1632 {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
1633 {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
1634 {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
1635 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
1636 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
1637 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
1638 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
1639 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
1640 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
1641 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
1642 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
1643 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
1644 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
1645 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
1646 {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
1647 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
1648 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
1649 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
1650 {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF},
1651 {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
1652 {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
1653 {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
1654 {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
1655 {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
1656 {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
1657 {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
1658 {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
1659 {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
1660 {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
1661 {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
1662 {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
1663 {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
1664 {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
1665 {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
1666 {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
1671 MY_UNICASE_INFO *my_unicase_turkish[256]=
1673 turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
1674 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1675 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1676 NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
1677 NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
1678 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1679 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1680 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1681 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1682 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1683 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1684 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1685 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1686 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1687 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1688 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1689 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1690 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1691 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1692 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1693 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1694 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1695 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1696 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1697 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1698 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1699 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1700 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1701 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1702 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1703 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
1704 NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
1729 const char *str,
const char *str_end,
1730 const char *wildstr,
const char *wildend,
1731 int escape,
int w_one,
int w_many,
1735 my_wc_t s_wc=0, w_wc=0;
1737 my_charset_conv_mb_wc mb_wc;
1738 mb_wc= cs->cset->mb_wc;
1740 while (wildstr != wildend)
1745 if ((scan= mb_wc(cs, &w_wc, (
const unsigned char*)wildstr,
1746 (
const unsigned char*)wildend)) <= 0)
1749 if (w_wc == (my_wc_t)w_many)
1756 if (w_wc == (my_wc_t)escape && wildstr < wildend)
1758 if ((scan= mb_wc(cs, &w_wc, (
const unsigned char*)wildstr,
1759 (
const unsigned char*)wildend)) <= 0)
1765 if ((scan= mb_wc(cs, &s_wc, (
const unsigned char*)str,
1766 (
const unsigned char*)str_end)) <= 0)
1770 if (!escaped && w_wc == (my_wc_t)w_one)
1780 plane=(s_wc>>8) & 0xFF;
1781 s_wc = weights[plane] ? weights[plane][s_wc & 0xFF].sort : s_wc;
1785 plane=(w_wc>>8) & 0xFF;
1786 w_wc = weights[plane] ? weights[plane][w_wc & 0xFF].sort : w_wc;
1792 if (wildstr == wildend)
1793 return (str != str_end);
1797 if (w_wc == (my_wc_t)w_many)
1801 for (; wildstr != wildend ;)
1803 if ((scan= mb_wc(cs, &w_wc, (
const unsigned char*)wildstr,
1804 (
const unsigned char*)wildend)) <= 0)
1807 if (w_wc == (my_wc_t)w_many)
1813 if (w_wc == (my_wc_t)w_one)
1816 if ((scan= mb_wc(cs, &s_wc, (
const unsigned char*)str,
1817 (
const unsigned char*)str_end)) <=0)
1825 if (wildstr == wildend)
1831 if ((scan= mb_wc(cs, &w_wc, (
const unsigned char*)wildstr,
1832 (
const unsigned char*)wildend)) <=0)
1836 if (w_wc == (my_wc_t)escape)
1838 if (wildstr < wildend)
1840 if ((scan= mb_wc(cs, &w_wc, (
const unsigned char*)wildstr,
1841 (
const unsigned char*)wildend)) <=0)
1850 while (str != str_end)
1852 if ((scan= mb_wc(cs, &s_wc, (
const unsigned char*)str,
1853 (
const unsigned char*)str_end)) <=0)
1857 plane=(s_wc>>8) & 0xFF;
1858 s_wc = weights[plane] ? weights[plane][s_wc & 0xFF].sort : s_wc;
1859 plane=(w_wc>>8) & 0xFF;
1860 w_wc = weights[plane] ? weights[plane][w_wc & 0xFF].sort : w_wc;
1871 result=
my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, escape, w_one, w_many, weights);
1877 return str != str_end;
1881 int make_escape_code(
const charset_info_st* cs,
const char *escape)
1883 my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
1885 int rc= mb_wc(cs, &escape_wc, (
const unsigned char*) escape, (
const unsigned char*) escape + strlen(escape));
1886 return rc > 0 ? escape_wc :
'\\';
1895 static unsigned char ctype_utf8mb4[]=
1898 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
1899 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1900 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1901 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
1902 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
1904 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1905 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
1906 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1907 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1908 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1909 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1910 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1911 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1912 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1913 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
1917 static unsigned char to_lower_utf8mb4[]=
1919 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1920 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1921 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1922 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1923 64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
1924 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
1925 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
1926 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
1927 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
1928 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
1929 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
1930 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
1931 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
1932 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
1933 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
1934 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
1938 static unsigned char to_upper_utf8mb4[]=
1940 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1941 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1942 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1943 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1944 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1945 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1946 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1947 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
1948 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
1949 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
1950 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
1951 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
1952 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
1953 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
1954 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
1955 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
1960 bincmp_utf8mb4(
const unsigned char *s,
const unsigned char *se,
1961 const unsigned char *t,
const unsigned char *te)
1963 int slen= (int) (se - s), tlen= (int) (te - t);
1964 int len= min(slen, tlen);
1965 int cmp= memcmp(s, t, len);
1966 return cmp ? cmp : slen - tlen;
1970 static int my_mb_wc_utf8mb4(
const charset_info_st*, my_wc_t * pwc,
const unsigned char *s,
const unsigned char *e)
1973 return MY_CS_TOOSMALL;
1975 unsigned char c= s[0];
1986 return MY_CS_TOOSMALL2;
1988 if (!((s[1] ^ 0x80) < 0x40))
1991 *pwc= ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
1997 return MY_CS_TOOSMALL3;
1999 if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 &&
2000 (c >= 0xe1 || s[1] >= 0xa0)))
2003 *pwc= ((my_wc_t) (c & 0x0f) << 12) |
2004 ((my_wc_t) (s[1] ^ 0x80) << 6) |
2005 (my_wc_t) (s[2] ^ 0x80);
2011 return MY_CS_TOOSMALL4;
2013 if (!((s[1] ^ 0x80) < 0x40 &&
2014 (s[2] ^ 0x80) < 0x40 &&
2015 (s[3] ^ 0x80) < 0x40 &&
2016 (c >= 0xf1 || s[1] >= 0x90)))
2018 *pwc = ((my_wc_t) (c & 0x07) << 18) |
2019 ((my_wc_t) (s[1] ^ 0x80) << 12) |
2020 ((my_wc_t) (s[2] ^ 0x80) << 6) |
2021 (my_wc_t) (s[3] ^ 0x80);
2033 my_mb_wc_utf8mb4_no_range(
const charset_info_st*,
2034 my_wc_t *pwc,
const unsigned char *s)
2050 if (!((s[1] ^ 0x80) < 0x40))
2053 *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
2059 if (!((s[1] ^ 0x80) < 0x40 &&
2060 (s[2] ^ 0x80) < 0x40 &&
2061 (c >= 0xe1 || s[1] >= 0xa0)))
2063 *pwc= ((my_wc_t) (c & 0x0f) << 12) |
2064 ((my_wc_t) (s[1] ^ 0x80) << 6) |
2065 (my_wc_t) (s[2] ^ 0x80);
2071 if (!((s[1] ^ 0x80) < 0x40 &&
2072 (s[2] ^ 0x80) < 0x40 &&
2073 (s[3] ^ 0x80) < 0x40 &&
2074 (c >= 0xf1 || s[1] >= 0x90)))
2076 *pwc = ((my_wc_t) (c & 0x07) << 18) |
2077 ((my_wc_t) (s[1] ^ 0x80) << 12) |
2078 ((my_wc_t) (s[2] ^ 0x80) << 6) |
2079 (my_wc_t) (s[3] ^ 0x80);
2086 static int my_wc_mb_utf8mb4(
const charset_info_st*, my_wc_t wc,
unsigned char *r,
unsigned char *e)
2091 return MY_CS_TOOSMALL;
2095 else if (wc < 0x800)
2097 else if (wc < 0x10000)
2099 else if (wc < 0x200000)
2101 else return MY_CS_ILUNI;
2104 return -100 - count;
2109 case 4: r[3] = (
unsigned char) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
2110 case 3: r[2] = (
unsigned char) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
2111 case 2: r[1] = (
unsigned char) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
2112 case 1: r[0] = (
unsigned char) wc;
2122 my_wc_mb_utf8mb4_no_range(
const charset_info_st*,
2123 my_wc_t wc,
unsigned char *r)
2129 else if (wc < 0x800)
2131 else if (wc < 0x10000)
2133 else if (wc < 0x200000)
2141 case 4: r[3]= (
unsigned char) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x10000;
2142 case 3: r[2]= (
unsigned char) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800;
2143 case 2: r[1]= (
unsigned char) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0;
2144 case 1: r[0]= (
unsigned char) wc;
2150 #define REPLACEMENT_CHAR 0xFFFD;
2154 my_tolower_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
2157 if (page < 256 && uni_plane[page])
2158 *wc= uni_plane[page][*wc & 0xFF].tolower;
2163 my_toupper_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
2166 if (page < 256 && uni_plane[page])
2167 *wc= uni_plane[page][*wc & 0xFF].toupper;
2172 my_tosort_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
2177 if (uni_plane[page])
2178 *wc= uni_plane[page][*wc & 0xFF].sort;
2182 *wc= REPLACEMENT_CHAR;
2187 static size_t my_caseup_utf8mb4(
const charset_info_st* cs,
char *src,
size_t srclen,
char *dst,
size_t dstlen)
2191 char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
2192 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2193 assert(src != dst || cs->caseup_multiply == 1);
2195 while ((src < srcend) &&
2196 (srcres= my_mb_wc_utf8mb4(cs, &wc,
2197 (
unsigned char *) src, (
unsigned char*) srcend)) > 0)
2199 my_toupper_utf8mb4(uni_plane, &wc);
2200 if ((dstres= my_wc_mb_utf8mb4(cs, wc, (
unsigned char*) dst, (
unsigned char*) dstend)) <= 0)
2205 return (
size_t) (dst - dst0);
2210 my_hash_add(uint32_t *n1, uint32_t *n2, uint32_t ch)
2212 n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8);
2217 void my_hash_sort_utf8mb4(
const charset_info_st* cs,
2218 const unsigned char *s,
size_t slen,
2219 uint32_t *n1, uint32_t *n2)
2223 const unsigned char *e= s + slen;
2224 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2230 while (e > s && e[-1] ==
' ')
2233 while ((res= my_mb_wc_utf8mb4(cs, &wc, (
const unsigned char*) s, (
const unsigned char*) e)) > 0)
2235 my_tosort_utf8mb4(uni_plane, &wc);
2236 my_hash_add(n1, n2, (uint32_t) (wc & 0xFF));
2237 my_hash_add(n1, n2, (uint32_t) (wc >> 8) & 0xFF);
2247 my_hash_add(n1, n2, (uint32_t) (wc >> 16) & 0xFF);
2254 static size_t my_caseup_str_utf8mb4(
const charset_info_st* cs,
char *src)
2258 char *dst= src, *dst0= src;
2259 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2260 assert(cs->caseup_multiply == 1);
2263 (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (
unsigned char *) src)) > 0)
2265 my_toupper_utf8mb4(uni_plane, &wc);
2266 if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (
unsigned char*) dst)) <= 0)
2272 return (
size_t) (dst - dst0);
2276 static size_t my_casedn_utf8mb4(
const charset_info_st* cs,
char *src,
size_t srclen,
char *dst,
size_t dstlen)
2280 char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
2281 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2282 assert(src != dst || cs->casedn_multiply == 1);
2284 while ((src < srcend) &&
2285 (srcres= my_mb_wc_utf8mb4(cs, &wc,
2286 (
unsigned char*) src, (
unsigned char*) srcend)) > 0)
2288 my_tolower_utf8mb4(uni_plane, &wc);
2289 if ((dstres= my_wc_mb_utf8mb4(cs, wc, (
unsigned char*) dst, (
unsigned char*) dstend)) <= 0)
2294 return (
size_t) (dst - dst0);
2298 static size_t my_casedn_str_utf8mb4(
const charset_info_st* cs,
char *src)
2302 char *dst= src, *dst0= src;
2303 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2304 assert(cs->casedn_multiply == 1);
2307 (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (
unsigned char *) src)) > 0)
2309 my_tolower_utf8mb4(uni_plane, &wc);
2310 if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (
unsigned char*) dst)) <= 0)
2332 return (
size_t) (dst - dst0);
2336 static int my_strnncoll_utf8mb4(
const charset_info_st* cs,
2337 const unsigned char *s,
size_t slen,
2338 const unsigned char *t,
size_t tlen,
2343 const unsigned char *se= s + slen;
2344 const unsigned char *te= t + tlen;
2345 MY_UNICASE_INFO **uni_plane= cs->caseinfo;
2347 while ( s < se && t < te )
2349 int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
2350 int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
2352 if ( s_res <= 0 || t_res <= 0 )
2355 return bincmp_utf8mb4(s, se, t, te);
2358 my_tosort_utf8mb4(uni_plane, &s_wc);
2359 my_tosort_utf8mb4(uni_plane, &t_wc);
2363 return s_wc > t_wc ? 1 : -1;
2369 return (
int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
2401 const unsigned char *s,
size_t slen,
2402 const unsigned char *t,
size_t tlen,
2403 bool diff_if_only_endspace_difference)
2408 const unsigned char *se= s + slen, *te= t + tlen;
2411 #ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
2412 diff_if_only_endspace_difference=
false;
2415 while ( s < se && t < te )
2417 int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
2418 int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
2420 if ( s_res <= 0 || t_res <= 0 )
2423 return bincmp_utf8mb4(s, se, t, te);
2426 my_tosort_utf8mb4(uni_plane, &s_wc);
2427 my_tosort_utf8mb4(uni_plane, &t_wc);
2431 return s_wc > t_wc ? 1 : -1;
2438 slen= (size_t) (se-s);
2439 tlen= (size_t) (te-t);
2445 if (diff_if_only_endspace_difference)
2465 for ( ; s < se; s++)
2468 return (*s <
' ') ? -swap : swap;
2491 while (s[0] && t[0])
2495 if ((
unsigned char) s[0] < 128)
2502 s_wc= plane00[(
unsigned char) s[0]].tolower;
2507 int res= my_mb_wc_utf8mb4_no_range(cs, &s_wc, (
const unsigned char*) s);
2514 return strcmp(s, t);
2517 my_tolower_utf8mb4(uni_plane, &s_wc);
2523 if ((
unsigned char) t[0] < 128)
2526 t_wc= plane00[(
unsigned char) t[0]].tolower;
2531 int res= my_mb_wc_utf8mb4_no_range(cs, &t_wc, (
const unsigned char*) t);
2533 return strcmp(s, t);
2536 my_tolower_utf8mb4(uni_plane, &t_wc);
2541 return ((
int) s_wc) - ((int) t_wc);
2543 return ((
int) (
unsigned char) s[0]) - ((int) (
unsigned char) t[0]);
2547 static int my_wildcmp_utf8mb4(
const charset_info_st* cs,
2548 const char *str,
const char *strend,
2549 const char *wildstr,
const char *wildend,
2550 int escape,
int w_one,
int w_many)
2552 return my_wildcmp_unicode(cs, str, strend, wildstr, wildend, escape, w_one, w_many, cs->caseinfo);
2556 static size_t my_strnxfrmlen_utf8mb4(
const charset_info_st*,
size_t len)
2559 return (len * 2 + 2) / 4;
2563 static size_t my_strnxfrm_utf8mb4(
const charset_info_st* cs,
2564 unsigned char *dst,
size_t dstlen, uint32_t nweights,
2565 const unsigned char *src,
size_t srclen, uint32_t flags)
2569 unsigned char *dst0= dst;
2570 unsigned char *de= dst + dstlen;
2571 unsigned char *de_beg= de - 1;
2572 const unsigned char *se = src + srclen;
2573 MY_UNICASE_INFO **uni_plane= (cs->state & MY_CS_BINSORT) ?
2574 NULL : cs->caseinfo;
2576 for (; dst < de_beg && nweights; nweights--)
2578 if ((res= my_mb_wc_utf8mb4(cs,&wc, src, se)) <= 0)
2583 my_tosort_utf8mb4(uni_plane, &wc);
2585 *dst++= (
unsigned char)(wc >> 8);
2586 *dst++= (
unsigned char)(wc & 0xFF);
2590 if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE))
2593 for (; dst < de_beg && nweights; nweights--)
2602 my_strxfrm_desc_and_reverse(dst0, dst, flags, 0);
2607 static unsigned int my_ismbchar_utf8mb4(
const charset_info_st* cs,
const char *b,
const char *e)
2610 int res= my_mb_wc_utf8mb4(cs,&wc, (
const unsigned char*)b, (
const unsigned char*)e);
2611 return (res > 1) ? res : 0;
2615 static unsigned int my_mbcharlen_utf8mb4(
const charset_info_st*, uint32_t c)
2631 static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler=
2634 my_strnncoll_utf8mb4,
2636 my_strnxfrm_utf8mb4,
2637 my_strnxfrmlen_utf8mb4,
2642 my_hash_sort_utf8mb4,
2643 my_propagate_complex
2647 static MY_COLLATION_HANDLER my_collation_utf8mb4_bin_handler =
2650 my_strnncoll_mb_bin,
2651 my_strnncollsp_mb_bin,
2652 my_strnxfrm_utf8mb4,
2653 my_strnxfrmlen_utf8mb4,
2656 my_strcasecmp_mb_bin,
2658 my_hash_sort_mb_bin,
2663 MY_CHARSET_HANDLER my_charset_utf8mb4_handler=
2665 my_ismbchar_utf8mb4,
2666 my_mbcharlen_utf8mb4,
2669 my_well_formed_len_mb,
2675 my_caseup_str_utf8mb4,
2676 my_casedn_str_utf8mb4,
2680 my_long10_to_str_8bit,
2681 my_int64_t10_to_str_8bit,
2689 my_strntoull10rnd_8bit,
2695 DRIZZLED_API charset_info_st my_charset_utf8mb4_general_ci=
2698 MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE,
2700 MY_UTF8MB4_GENERAL_CI,
2724 &my_charset_utf8mb4_handler,
2725 &my_collation_utf8mb4_general_ci_handler
2732 MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE,
2758 &my_charset_utf8mb4_handler,
2759 &my_collation_utf8mb4_bin_handler
2764 static inline int bincmp(
const unsigned char *s,
const unsigned char *se,
2765 const unsigned char *t,
const unsigned char *te)
2767 int slen= (int) (se-s), tlen= (int) (te-t);
2768 int len= min(slen,tlen);
2769 int cmp= memcmp(s,t,len);
2770 return cmp ? cmp : slen-tlen;
2802 static void test_mb(charset_info_st *cs,
unsigned char *s)
2806 if (my_ismbhead_utf8(cs,*s))
2808 uint32_t len=my_mbcharlen_utf8(cs,*s);
2826 char str[1024]=
" utf8 test проба ПЕРА по-РУССКИ";
2827 charset_info_st *cs;
2829 test_mb(cs,(
unsigned char*)str);
2831 printf(
"orig :'%s'\n",str);
2833 my_caseup_utf8(cs,str,15);
2834 printf(
"caseup :'%s'\n",str);
2836 my_caseup_str_utf8(cs,str);
2837 printf(
"caseup_str:'%s'\n",str);
2839 my_casedn_utf8(cs,str,15);
2840 printf(
"casedn :'%s'\n",str);
2842 my_casedn_str_utf8(cs,str);
2843 printf(
"casedn_str:'%s'\n",str);
int my_wildcmp_unicode(const charset_info_st *, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many, MY_UNICASE_INFO **weights)
TODO: Rename this file - func.h is stupid.
static int my_strnncollsp_utf8mb4(const charset_info_st *cs, const unsigned char *s, size_t slen, const unsigned char *t, size_t tlen, bool diff_if_only_endspace_difference)
static int my_strcasecmp_utf8mb4(const charset_info_st *cs, const char *s, const char *t)