ucaps.h
1 #ifndef UCAPS_H
2 #define UCAPS_H
3 
4 //satan invented unicode?
5 #define CAPS_LEN 666
6 
7 static const int caps_table[CAPS_LEN][2]={
8 {0x0061,0x0041},
9 {0x0062,0x0042},
10 {0x0063,0x0043},
11 {0x0064,0x0044},
12 {0x0065,0x0045},
13 {0x0066,0x0046},
14 {0x0067,0x0047},
15 {0x0068,0x0048},
16 {0x0069,0x0049},
17 {0x006A,0x004A},
18 {0x006B,0x004B},
19 {0x006C,0x004C},
20 {0x006D,0x004D},
21 {0x006E,0x004E},
22 {0x006F,0x004F},
23 {0x0070,0x0050},
24 {0x0071,0x0051},
25 {0x0072,0x0052},
26 {0x0073,0x0053},
27 {0x0074,0x0054},
28 {0x0075,0x0055},
29 {0x0076,0x0056},
30 {0x0077,0x0057},
31 {0x0078,0x0058},
32 {0x0079,0x0059},
33 {0x007A,0x005A},
34 {0x00E0,0x00C0},
35 {0x00E1,0x00C1},
36 {0x00E2,0x00C2},
37 {0x00E3,0x00C3},
38 {0x00E4,0x00C4},
39 {0x00E5,0x00C5},
40 {0x00E6,0x00C6},
41 {0x00E7,0x00C7},
42 {0x00E8,0x00C8},
43 {0x00E9,0x00C9},
44 {0x00EA,0x00CA},
45 {0x00EB,0x00CB},
46 {0x00EC,0x00CC},
47 {0x00ED,0x00CD},
48 {0x00EE,0x00CE},
49 {0x00EF,0x00CF},
50 {0x00F0,0x00D0},
51 {0x00F1,0x00D1},
52 {0x00F2,0x00D2},
53 {0x00F3,0x00D3},
54 {0x00F4,0x00D4},
55 {0x00F5,0x00D5},
56 {0x00F6,0x00D6},
57 {0x00F8,0x00D8},
58 {0x00F9,0x00D9},
59 {0x00FA,0x00DA},
60 {0x00FB,0x00DB},
61 {0x00FC,0x00DC},
62 {0x00FD,0x00DD},
63 {0x00FE,0x00DE},
64 {0x00FF,0x0178},
65 {0x0101,0x0100},
66 {0x0103,0x0102},
67 {0x0105,0x0104},
68 {0x0107,0x0106},
69 {0x0109,0x0108},
70 {0x010B,0x010A},
71 {0x010D,0x010C},
72 {0x010F,0x010E},
73 {0x0111,0x0110},
74 {0x0113,0x0112},
75 {0x0115,0x0114},
76 {0x0117,0x0116},
77 {0x0119,0x0118},
78 {0x011B,0x011A},
79 {0x011D,0x011C},
80 {0x011F,0x011E},
81 {0x0121,0x0120},
82 {0x0123,0x0122},
83 {0x0125,0x0124},
84 {0x0127,0x0126},
85 {0x0129,0x0128},
86 {0x012B,0x012A},
87 {0x012D,0x012C},
88 {0x012F,0x012E},
89 {0x0131,0x0049},
90 {0x0133,0x0132},
91 {0x0135,0x0134},
92 {0x0137,0x0136},
93 {0x013A,0x0139},
94 {0x013C,0x013B},
95 {0x013E,0x013D},
96 {0x0140,0x013F},
97 {0x0142,0x0141},
98 {0x0144,0x0143},
99 {0x0146,0x0145},
100 {0x0148,0x0147},
101 {0x014B,0x014A},
102 {0x014D,0x014C},
103 {0x014F,0x014E},
104 {0x0151,0x0150},
105 {0x0153,0x0152},
106 {0x0155,0x0154},
107 {0x0157,0x0156},
108 {0x0159,0x0158},
109 {0x015B,0x015A},
110 {0x015D,0x015C},
111 {0x015F,0x015E},
112 {0x0161,0x0160},
113 {0x0163,0x0162},
114 {0x0165,0x0164},
115 {0x0167,0x0166},
116 {0x0169,0x0168},
117 {0x016B,0x016A},
118 {0x016D,0x016C},
119 {0x016F,0x016E},
120 {0x0171,0x0170},
121 {0x0173,0x0172},
122 {0x0175,0x0174},
123 {0x0177,0x0176},
124 {0x017A,0x0179},
125 {0x017C,0x017B},
126 {0x017E,0x017D},
127 {0x0183,0x0182},
128 {0x0185,0x0184},
129 {0x0188,0x0187},
130 {0x018C,0x018B},
131 {0x0192,0x0191},
132 {0x0199,0x0198},
133 {0x01A1,0x01A0},
134 {0x01A3,0x01A2},
135 {0x01A5,0x01A4},
136 {0x01A8,0x01A7},
137 {0x01AD,0x01AC},
138 {0x01B0,0x01AF},
139 {0x01B4,0x01B3},
140 {0x01B6,0x01B5},
141 {0x01B9,0x01B8},
142 {0x01BD,0x01BC},
143 {0x01C6,0x01C4},
144 {0x01C9,0x01C7},
145 {0x01CC,0x01CA},
146 {0x01CE,0x01CD},
147 {0x01D0,0x01CF},
148 {0x01D2,0x01D1},
149 {0x01D4,0x01D3},
150 {0x01D6,0x01D5},
151 {0x01D8,0x01D7},
152 {0x01DA,0x01D9},
153 {0x01DC,0x01DB},
154 {0x01DF,0x01DE},
155 {0x01E1,0x01E0},
156 {0x01E3,0x01E2},
157 {0x01E5,0x01E4},
158 {0x01E7,0x01E6},
159 {0x01E9,0x01E8},
160 {0x01EB,0x01EA},
161 {0x01ED,0x01EC},
162 {0x01EF,0x01EE},
163 {0x01F3,0x01F1},
164 {0x01F5,0x01F4},
165 {0x01FB,0x01FA},
166 {0x01FD,0x01FC},
167 {0x01FF,0x01FE},
168 {0x0201,0x0200},
169 {0x0203,0x0202},
170 {0x0205,0x0204},
171 {0x0207,0x0206},
172 {0x0209,0x0208},
173 {0x020B,0x020A},
174 {0x020D,0x020C},
175 {0x020F,0x020E},
176 {0x0211,0x0210},
177 {0x0213,0x0212},
178 {0x0215,0x0214},
179 {0x0217,0x0216},
180 {0x0253,0x0181},
181 {0x0254,0x0186},
182 {0x0257,0x018A},
183 {0x0258,0x018E},
184 {0x0259,0x018F},
185 {0x025B,0x0190},
186 {0x0260,0x0193},
187 {0x0263,0x0194},
188 {0x0268,0x0197},
189 {0x0269,0x0196},
190 {0x026F,0x019C},
191 {0x0272,0x019D},
192 {0x0275,0x019F},
193 {0x0283,0x01A9},
194 {0x0288,0x01AE},
195 {0x028A,0x01B1},
196 {0x028B,0x01B2},
197 {0x0292,0x01B7},
198 {0x03AC,0x0386},
199 {0x03AD,0x0388},
200 {0x03AE,0x0389},
201 {0x03AF,0x038A},
202 {0x03B1,0x0391},
203 {0x03B2,0x0392},
204 {0x03B3,0x0393},
205 {0x03B4,0x0394},
206 {0x03B5,0x0395},
207 {0x03B6,0x0396},
208 {0x03B7,0x0397},
209 {0x03B8,0x0398},
210 {0x03B9,0x0399},
211 {0x03BA,0x039A},
212 {0x03BB,0x039B},
213 {0x03BC,0x039C},
214 {0x03BD,0x039D},
215 {0x03BE,0x039E},
216 {0x03BF,0x039F},
217 {0x03C0,0x03A0},
218 {0x03C1,0x03A1},
219 {0x03C3,0x03A3},
220 {0x03C4,0x03A4},
221 {0x03C5,0x03A5},
222 {0x03C6,0x03A6},
223 {0x03C7,0x03A7},
224 {0x03C8,0x03A8},
225 {0x03C9,0x03A9},
226 {0x03CA,0x03AA},
227 {0x03CB,0x03AB},
228 {0x03CC,0x038C},
229 {0x03CD,0x038E},
230 {0x03CE,0x038F},
231 {0x03E3,0x03E2},
232 {0x03E5,0x03E4},
233 {0x03E7,0x03E6},
234 {0x03E9,0x03E8},
235 {0x03EB,0x03EA},
236 {0x03ED,0x03EC},
237 {0x03EF,0x03EE},
238 {0x0430,0x0410},
239 {0x0431,0x0411},
240 {0x0432,0x0412},
241 {0x0433,0x0413},
242 {0x0434,0x0414},
243 {0x0435,0x0415},
244 {0x0436,0x0416},
245 {0x0437,0x0417},
246 {0x0438,0x0418},
247 {0x0439,0x0419},
248 {0x043A,0x041A},
249 {0x043B,0x041B},
250 {0x043C,0x041C},
251 {0x043D,0x041D},
252 {0x043E,0x041E},
253 {0x043F,0x041F},
254 {0x0440,0x0420},
255 {0x0441,0x0421},
256 {0x0442,0x0422},
257 {0x0443,0x0423},
258 {0x0444,0x0424},
259 {0x0445,0x0425},
260 {0x0446,0x0426},
261 {0x0447,0x0427},
262 {0x0448,0x0428},
263 {0x0449,0x0429},
264 {0x044A,0x042A},
265 {0x044B,0x042B},
266 {0x044C,0x042C},
267 {0x044D,0x042D},
268 {0x044E,0x042E},
269 {0x044F,0x042F},
270 {0x0451,0x0401},
271 {0x0452,0x0402},
272 {0x0453,0x0403},
273 {0x0454,0x0404},
274 {0x0455,0x0405},
275 {0x0456,0x0406},
276 {0x0457,0x0407},
277 {0x0458,0x0408},
278 {0x0459,0x0409},
279 {0x045A,0x040A},
280 {0x045B,0x040B},
281 {0x045C,0x040C},
282 {0x045E,0x040E},
283 {0x045F,0x040F},
284 {0x0461,0x0460},
285 {0x0463,0x0462},
286 {0x0465,0x0464},
287 {0x0467,0x0466},
288 {0x0469,0x0468},
289 {0x046B,0x046A},
290 {0x046D,0x046C},
291 {0x046F,0x046E},
292 {0x0471,0x0470},
293 {0x0473,0x0472},
294 {0x0475,0x0474},
295 {0x0477,0x0476},
296 {0x0479,0x0478},
297 {0x047B,0x047A},
298 {0x047D,0x047C},
299 {0x047F,0x047E},
300 {0x0481,0x0480},
301 {0x0491,0x0490},
302 {0x0493,0x0492},
303 {0x0495,0x0494},
304 {0x0497,0x0496},
305 {0x0499,0x0498},
306 {0x049B,0x049A},
307 {0x049D,0x049C},
308 {0x049F,0x049E},
309 {0x04A1,0x04A0},
310 {0x04A3,0x04A2},
311 {0x04A5,0x04A4},
312 {0x04A7,0x04A6},
313 {0x04A9,0x04A8},
314 {0x04AB,0x04AA},
315 {0x04AD,0x04AC},
316 {0x04AF,0x04AE},
317 {0x04B1,0x04B0},
318 {0x04B3,0x04B2},
319 {0x04B5,0x04B4},
320 {0x04B7,0x04B6},
321 {0x04B9,0x04B8},
322 {0x04BB,0x04BA},
323 {0x04BD,0x04BC},
324 {0x04BF,0x04BE},
325 {0x04C2,0x04C1},
326 {0x04C4,0x04C3},
327 {0x04C8,0x04C7},
328 {0x04CC,0x04CB},
329 {0x04D1,0x04D0},
330 {0x04D3,0x04D2},
331 {0x04D5,0x04D4},
332 {0x04D7,0x04D6},
333 {0x04D9,0x04D8},
334 {0x04DB,0x04DA},
335 {0x04DD,0x04DC},
336 {0x04DF,0x04DE},
337 {0x04E1,0x04E0},
338 {0x04E3,0x04E2},
339 {0x04E5,0x04E4},
340 {0x04E7,0x04E6},
341 {0x04E9,0x04E8},
342 {0x04EB,0x04EA},
343 {0x04EF,0x04EE},
344 {0x04F1,0x04F0},
345 {0x04F3,0x04F2},
346 {0x04F5,0x04F4},
347 {0x04F9,0x04F8},
348 {0x0561,0x0531},
349 {0x0562,0x0532},
350 {0x0563,0x0533},
351 {0x0564,0x0534},
352 {0x0565,0x0535},
353 {0x0566,0x0536},
354 {0x0567,0x0537},
355 {0x0568,0x0538},
356 {0x0569,0x0539},
357 {0x056A,0x053A},
358 {0x056B,0x053B},
359 {0x056C,0x053C},
360 {0x056D,0x053D},
361 {0x056E,0x053E},
362 {0x056F,0x053F},
363 {0x0570,0x0540},
364 {0x0571,0x0541},
365 {0x0572,0x0542},
366 {0x0573,0x0543},
367 {0x0574,0x0544},
368 {0x0575,0x0545},
369 {0x0576,0x0546},
370 {0x0577,0x0547},
371 {0x0578,0x0548},
372 {0x0579,0x0549},
373 {0x057A,0x054A},
374 {0x057B,0x054B},
375 {0x057C,0x054C},
376 {0x057D,0x054D},
377 {0x057E,0x054E},
378 {0x057F,0x054F},
379 {0x0580,0x0550},
380 {0x0581,0x0551},
381 {0x0582,0x0552},
382 {0x0583,0x0553},
383 {0x0584,0x0554},
384 {0x0585,0x0555},
385 {0x0586,0x0556},
386 {0x10D0,0x10A0},
387 {0x10D1,0x10A1},
388 {0x10D2,0x10A2},
389 {0x10D3,0x10A3},
390 {0x10D4,0x10A4},
391 {0x10D5,0x10A5},
392 {0x10D6,0x10A6},
393 {0x10D7,0x10A7},
394 {0x10D8,0x10A8},
395 {0x10D9,0x10A9},
396 {0x10DA,0x10AA},
397 {0x10DB,0x10AB},
398 {0x10DC,0x10AC},
399 {0x10DD,0x10AD},
400 {0x10DE,0x10AE},
401 {0x10DF,0x10AF},
402 {0x10E0,0x10B0},
403 {0x10E1,0x10B1},
404 {0x10E2,0x10B2},
405 {0x10E3,0x10B3},
406 {0x10E4,0x10B4},
407 {0x10E5,0x10B5},
408 {0x10E6,0x10B6},
409 {0x10E7,0x10B7},
410 {0x10E8,0x10B8},
411 {0x10E9,0x10B9},
412 {0x10EA,0x10BA},
413 {0x10EB,0x10BB},
414 {0x10EC,0x10BC},
415 {0x10ED,0x10BD},
416 {0x10EE,0x10BE},
417 {0x10EF,0x10BF},
418 {0x10F0,0x10C0},
419 {0x10F1,0x10C1},
420 {0x10F2,0x10C2},
421 {0x10F3,0x10C3},
422 {0x10F4,0x10C4},
423 {0x10F5,0x10C5},
424 {0x1E01,0x1E00},
425 {0x1E03,0x1E02},
426 {0x1E05,0x1E04},
427 {0x1E07,0x1E06},
428 {0x1E09,0x1E08},
429 {0x1E0B,0x1E0A},
430 {0x1E0D,0x1E0C},
431 {0x1E0F,0x1E0E},
432 {0x1E11,0x1E10},
433 {0x1E13,0x1E12},
434 {0x1E15,0x1E14},
435 {0x1E17,0x1E16},
436 {0x1E19,0x1E18},
437 {0x1E1B,0x1E1A},
438 {0x1E1D,0x1E1C},
439 {0x1E1F,0x1E1E},
440 {0x1E21,0x1E20},
441 {0x1E23,0x1E22},
442 {0x1E25,0x1E24},
443 {0x1E27,0x1E26},
444 {0x1E29,0x1E28},
445 {0x1E2B,0x1E2A},
446 {0x1E2D,0x1E2C},
447 {0x1E2F,0x1E2E},
448 {0x1E31,0x1E30},
449 {0x1E33,0x1E32},
450 {0x1E35,0x1E34},
451 {0x1E37,0x1E36},
452 {0x1E39,0x1E38},
453 {0x1E3B,0x1E3A},
454 {0x1E3D,0x1E3C},
455 {0x1E3F,0x1E3E},
456 {0x1E41,0x1E40},
457 {0x1E43,0x1E42},
458 {0x1E45,0x1E44},
459 {0x1E47,0x1E46},
460 {0x1E49,0x1E48},
461 {0x1E4B,0x1E4A},
462 {0x1E4D,0x1E4C},
463 {0x1E4F,0x1E4E},
464 {0x1E51,0x1E50},
465 {0x1E53,0x1E52},
466 {0x1E55,0x1E54},
467 {0x1E57,0x1E56},
468 {0x1E59,0x1E58},
469 {0x1E5B,0x1E5A},
470 {0x1E5D,0x1E5C},
471 {0x1E5F,0x1E5E},
472 {0x1E61,0x1E60},
473 {0x1E63,0x1E62},
474 {0x1E65,0x1E64},
475 {0x1E67,0x1E66},
476 {0x1E69,0x1E68},
477 {0x1E6B,0x1E6A},
478 {0x1E6D,0x1E6C},
479 {0x1E6F,0x1E6E},
480 {0x1E71,0x1E70},
481 {0x1E73,0x1E72},
482 {0x1E75,0x1E74},
483 {0x1E77,0x1E76},
484 {0x1E79,0x1E78},
485 {0x1E7B,0x1E7A},
486 {0x1E7D,0x1E7C},
487 {0x1E7F,0x1E7E},
488 {0x1E81,0x1E80},
489 {0x1E83,0x1E82},
490 {0x1E85,0x1E84},
491 {0x1E87,0x1E86},
492 {0x1E89,0x1E88},
493 {0x1E8B,0x1E8A},
494 {0x1E8D,0x1E8C},
495 {0x1E8F,0x1E8E},
496 {0x1E91,0x1E90},
497 {0x1E93,0x1E92},
498 {0x1E95,0x1E94},
499 {0x1EA1,0x1EA0},
500 {0x1EA3,0x1EA2},
501 {0x1EA5,0x1EA4},
502 {0x1EA7,0x1EA6},
503 {0x1EA9,0x1EA8},
504 {0x1EAB,0x1EAA},
505 {0x1EAD,0x1EAC},
506 {0x1EAF,0x1EAE},
507 {0x1EB1,0x1EB0},
508 {0x1EB3,0x1EB2},
509 {0x1EB5,0x1EB4},
510 {0x1EB7,0x1EB6},
511 {0x1EB9,0x1EB8},
512 {0x1EBB,0x1EBA},
513 {0x1EBD,0x1EBC},
514 {0x1EBF,0x1EBE},
515 {0x1EC1,0x1EC0},
516 {0x1EC3,0x1EC2},
517 {0x1EC5,0x1EC4},
518 {0x1EC7,0x1EC6},
519 {0x1EC9,0x1EC8},
520 {0x1ECB,0x1ECA},
521 {0x1ECD,0x1ECC},
522 {0x1ECF,0x1ECE},
523 {0x1ED1,0x1ED0},
524 {0x1ED3,0x1ED2},
525 {0x1ED5,0x1ED4},
526 {0x1ED7,0x1ED6},
527 {0x1ED9,0x1ED8},
528 {0x1EDB,0x1EDA},
529 {0x1EDD,0x1EDC},
530 {0x1EDF,0x1EDE},
531 {0x1EE1,0x1EE0},
532 {0x1EE3,0x1EE2},
533 {0x1EE5,0x1EE4},
534 {0x1EE7,0x1EE6},
535 {0x1EE9,0x1EE8},
536 {0x1EEB,0x1EEA},
537 {0x1EED,0x1EEC},
538 {0x1EEF,0x1EEE},
539 {0x1EF1,0x1EF0},
540 {0x1EF3,0x1EF2},
541 {0x1EF5,0x1EF4},
542 {0x1EF7,0x1EF6},
543 {0x1EF9,0x1EF8},
544 {0x1F00,0x1F08},
545 {0x1F01,0x1F09},
546 {0x1F02,0x1F0A},
547 {0x1F03,0x1F0B},
548 {0x1F04,0x1F0C},
549 {0x1F05,0x1F0D},
550 {0x1F06,0x1F0E},
551 {0x1F07,0x1F0F},
552 {0x1F10,0x1F18},
553 {0x1F11,0x1F19},
554 {0x1F12,0x1F1A},
555 {0x1F13,0x1F1B},
556 {0x1F14,0x1F1C},
557 {0x1F15,0x1F1D},
558 {0x1F20,0x1F28},
559 {0x1F21,0x1F29},
560 {0x1F22,0x1F2A},
561 {0x1F23,0x1F2B},
562 {0x1F24,0x1F2C},
563 {0x1F25,0x1F2D},
564 {0x1F26,0x1F2E},
565 {0x1F27,0x1F2F},
566 {0x1F30,0x1F38},
567 {0x1F31,0x1F39},
568 {0x1F32,0x1F3A},
569 {0x1F33,0x1F3B},
570 {0x1F34,0x1F3C},
571 {0x1F35,0x1F3D},
572 {0x1F36,0x1F3E},
573 {0x1F37,0x1F3F},
574 {0x1F40,0x1F48},
575 {0x1F41,0x1F49},
576 {0x1F42,0x1F4A},
577 {0x1F43,0x1F4B},
578 {0x1F44,0x1F4C},
579 {0x1F45,0x1F4D},
580 {0x1F51,0x1F59},
581 {0x1F53,0x1F5B},
582 {0x1F55,0x1F5D},
583 {0x1F57,0x1F5F},
584 {0x1F60,0x1F68},
585 {0x1F61,0x1F69},
586 {0x1F62,0x1F6A},
587 {0x1F63,0x1F6B},
588 {0x1F64,0x1F6C},
589 {0x1F65,0x1F6D},
590 {0x1F66,0x1F6E},
591 {0x1F67,0x1F6F},
592 {0x1F80,0x1F88},
593 {0x1F81,0x1F89},
594 {0x1F82,0x1F8A},
595 {0x1F83,0x1F8B},
596 {0x1F84,0x1F8C},
597 {0x1F85,0x1F8D},
598 {0x1F86,0x1F8E},
599 {0x1F87,0x1F8F},
600 {0x1F90,0x1F98},
601 {0x1F91,0x1F99},
602 {0x1F92,0x1F9A},
603 {0x1F93,0x1F9B},
604 {0x1F94,0x1F9C},
605 {0x1F95,0x1F9D},
606 {0x1F96,0x1F9E},
607 {0x1F97,0x1F9F},
608 {0x1FA0,0x1FA8},
609 {0x1FA1,0x1FA9},
610 {0x1FA2,0x1FAA},
611 {0x1FA3,0x1FAB},
612 {0x1FA4,0x1FAC},
613 {0x1FA5,0x1FAD},
614 {0x1FA6,0x1FAE},
615 {0x1FA7,0x1FAF},
616 {0x1FB0,0x1FB8},
617 {0x1FB1,0x1FB9},
618 {0x1FD0,0x1FD8},
619 {0x1FD1,0x1FD9},
620 {0x1FE0,0x1FE8},
621 {0x1FE1,0x1FE9},
622 {0x24D0,0x24B6},
623 {0x24D1,0x24B7},
624 {0x24D2,0x24B8},
625 {0x24D3,0x24B9},
626 {0x24D4,0x24BA},
627 {0x24D5,0x24BB},
628 {0x24D6,0x24BC},
629 {0x24D7,0x24BD},
630 {0x24D8,0x24BE},
631 {0x24D9,0x24BF},
632 {0x24DA,0x24C0},
633 {0x24DB,0x24C1},
634 {0x24DC,0x24C2},
635 {0x24DD,0x24C3},
636 {0x24DE,0x24C4},
637 {0x24DF,0x24C5},
638 {0x24E0,0x24C6},
639 {0x24E1,0x24C7},
640 {0x24E2,0x24C8},
641 {0x24E3,0x24C9},
642 {0x24E4,0x24CA},
643 {0x24E5,0x24CB},
644 {0x24E6,0x24CC},
645 {0x24E7,0x24CD},
646 {0x24E8,0x24CE},
647 {0x24E9,0x24CF},
648 {0xFF41,0xFF21},
649 {0xFF42,0xFF22},
650 {0xFF43,0xFF23},
651 {0xFF44,0xFF24},
652 {0xFF45,0xFF25},
653 {0xFF46,0xFF26},
654 {0xFF47,0xFF27},
655 {0xFF48,0xFF28},
656 {0xFF49,0xFF29},
657 {0xFF4A,0xFF2A},
658 {0xFF4B,0xFF2B},
659 {0xFF4C,0xFF2C},
660 {0xFF4D,0xFF2D},
661 {0xFF4E,0xFF2E},
662 {0xFF4F,0xFF2F},
663 {0xFF50,0xFF30},
664 {0xFF51,0xFF31},
665 {0xFF52,0xFF32},
666 {0xFF53,0xFF33},
667 {0xFF54,0xFF34},
668 {0xFF55,0xFF35},
669 {0xFF56,0xFF36},
670 {0xFF57,0xFF37},
671 {0xFF58,0xFF38},
672 {0xFF59,0xFF39},
673 {0xFF5A,0xFF3A},
674 };
675 
676 static const int reverse_caps_table[CAPS_LEN-1][2]={
677 {0x41,0x61},
678 {0x42,0x62},
679 {0x43,0x63},
680 {0x44,0x64},
681 {0x45,0x65},
682 {0x46,0x66},
683 {0x47,0x67},
684 {0x48,0x68},
685 {0x49,0x69},
686 {0x4a,0x6a},
687 {0x4b,0x6b},
688 {0x4c,0x6c},
689 {0x4d,0x6d},
690 {0x4e,0x6e},
691 {0x4f,0x6f},
692 {0x50,0x70},
693 {0x51,0x71},
694 {0x52,0x72},
695 {0x53,0x73},
696 {0x54,0x74},
697 {0x55,0x75},
698 {0x56,0x76},
699 {0x57,0x77},
700 {0x58,0x78},
701 {0x59,0x79},
702 {0x5a,0x7a},
703 {0xc0,0xe0},
704 {0xc1,0xe1},
705 {0xc2,0xe2},
706 {0xc3,0xe3},
707 {0xc4,0xe4},
708 {0xc5,0xe5},
709 {0xc6,0xe6},
710 {0xc7,0xe7},
711 {0xc8,0xe8},
712 {0xc9,0xe9},
713 {0xca,0xea},
714 {0xcb,0xeb},
715 {0xcc,0xec},
716 {0xcd,0xed},
717 {0xce,0xee},
718 {0xcf,0xef},
719 {0xd0,0xf0},
720 {0xd1,0xf1},
721 {0xd2,0xf2},
722 {0xd3,0xf3},
723 {0xd4,0xf4},
724 {0xd5,0xf5},
725 {0xd6,0xf6},
726 {0xd8,0xf8},
727 {0xd9,0xf9},
728 {0xda,0xfa},
729 {0xdb,0xfb},
730 {0xdc,0xfc},
731 {0xdd,0xfd},
732 {0xde,0xfe},
733 {0x178,0xff},
734 {0x100,0x101},
735 {0x102,0x103},
736 {0x104,0x105},
737 {0x106,0x107},
738 {0x108,0x109},
739 {0x10a,0x10b},
740 {0x10c,0x10d},
741 {0x10e,0x10f},
742 {0x110,0x111},
743 {0x112,0x113},
744 {0x114,0x115},
745 {0x116,0x117},
746 {0x118,0x119},
747 {0x11a,0x11b},
748 {0x11c,0x11d},
749 {0x11e,0x11f},
750 {0x120,0x121},
751 {0x122,0x123},
752 {0x124,0x125},
753 {0x126,0x127},
754 {0x128,0x129},
755 {0x12a,0x12b},
756 {0x12c,0x12d},
757 {0x12e,0x12f},
758 //{0x49,0x131},
759 {0x132,0x133},
760 {0x134,0x135},
761 {0x136,0x137},
762 {0x139,0x13a},
763 {0x13b,0x13c},
764 {0x13d,0x13e},
765 {0x13f,0x140},
766 {0x141,0x142},
767 {0x143,0x144},
768 {0x145,0x146},
769 {0x147,0x148},
770 {0x14a,0x14b},
771 {0x14c,0x14d},
772 {0x14e,0x14f},
773 {0x150,0x151},
774 {0x152,0x153},
775 {0x154,0x155},
776 {0x156,0x157},
777 {0x158,0x159},
778 {0x15a,0x15b},
779 {0x15c,0x15d},
780 {0x15e,0x15f},
781 {0x160,0x161},
782 {0x162,0x163},
783 {0x164,0x165},
784 {0x166,0x167},
785 {0x168,0x169},
786 {0x16a,0x16b},
787 {0x16c,0x16d},
788 {0x16e,0x16f},
789 {0x170,0x171},
790 {0x172,0x173},
791 {0x174,0x175},
792 {0x176,0x177},
793 {0x179,0x17a},
794 {0x17b,0x17c},
795 {0x17d,0x17e},
796 {0x182,0x183},
797 {0x184,0x185},
798 {0x187,0x188},
799 {0x18b,0x18c},
800 {0x191,0x192},
801 {0x198,0x199},
802 {0x1a0,0x1a1},
803 {0x1a2,0x1a3},
804 {0x1a4,0x1a5},
805 {0x1a7,0x1a8},
806 {0x1ac,0x1ad},
807 {0x1af,0x1b0},
808 {0x1b3,0x1b4},
809 {0x1b5,0x1b6},
810 {0x1b8,0x1b9},
811 {0x1bc,0x1bd},
812 {0x1c4,0x1c6},
813 {0x1c7,0x1c9},
814 {0x1ca,0x1cc},
815 {0x1cd,0x1ce},
816 {0x1cf,0x1d0},
817 {0x1d1,0x1d2},
818 {0x1d3,0x1d4},
819 {0x1d5,0x1d6},
820 {0x1d7,0x1d8},
821 {0x1d9,0x1da},
822 {0x1db,0x1dc},
823 {0x1de,0x1df},
824 {0x1e0,0x1e1},
825 {0x1e2,0x1e3},
826 {0x1e4,0x1e5},
827 {0x1e6,0x1e7},
828 {0x1e8,0x1e9},
829 {0x1ea,0x1eb},
830 {0x1ec,0x1ed},
831 {0x1ee,0x1ef},
832 {0x1f1,0x1f3},
833 {0x1f4,0x1f5},
834 {0x1fa,0x1fb},
835 {0x1fc,0x1fd},
836 {0x1fe,0x1ff},
837 {0x200,0x201},
838 {0x202,0x203},
839 {0x204,0x205},
840 {0x206,0x207},
841 {0x208,0x209},
842 {0x20a,0x20b},
843 {0x20c,0x20d},
844 {0x20e,0x20f},
845 {0x210,0x211},
846 {0x212,0x213},
847 {0x214,0x215},
848 {0x216,0x217},
849 {0x181,0x253},
850 {0x186,0x254},
851 {0x18a,0x257},
852 {0x18e,0x258},
853 {0x18f,0x259},
854 {0x190,0x25b},
855 {0x193,0x260},
856 {0x194,0x263},
857 {0x197,0x268},
858 {0x196,0x269},
859 {0x19c,0x26f},
860 {0x19d,0x272},
861 {0x19f,0x275},
862 {0x1a9,0x283},
863 {0x1ae,0x288},
864 {0x1b1,0x28a},
865 {0x1b2,0x28b},
866 {0x1b7,0x292},
867 {0x386,0x3ac},
868 {0x388,0x3ad},
869 {0x389,0x3ae},
870 {0x38a,0x3af},
871 {0x391,0x3b1},
872 {0x392,0x3b2},
873 {0x393,0x3b3},
874 {0x394,0x3b4},
875 {0x395,0x3b5},
876 {0x396,0x3b6},
877 {0x397,0x3b7},
878 {0x398,0x3b8},
879 {0x399,0x3b9},
880 {0x39a,0x3ba},
881 {0x39b,0x3bb},
882 {0x39c,0x3bc},
883 {0x39d,0x3bd},
884 {0x39e,0x3be},
885 {0x39f,0x3bf},
886 {0x3a0,0x3c0},
887 {0x3a1,0x3c1},
888 {0x3a3,0x3c3},
889 {0x3a4,0x3c4},
890 {0x3a5,0x3c5},
891 {0x3a6,0x3c6},
892 {0x3a7,0x3c7},
893 {0x3a8,0x3c8},
894 {0x3a9,0x3c9},
895 {0x3aa,0x3ca},
896 {0x3ab,0x3cb},
897 {0x38c,0x3cc},
898 {0x38e,0x3cd},
899 {0x38f,0x3ce},
900 {0x3e2,0x3e3},
901 {0x3e4,0x3e5},
902 {0x3e6,0x3e7},
903 {0x3e8,0x3e9},
904 {0x3ea,0x3eb},
905 {0x3ec,0x3ed},
906 {0x3ee,0x3ef},
907 {0x410,0x430},
908 {0x411,0x431},
909 {0x412,0x432},
910 {0x413,0x433},
911 {0x414,0x434},
912 {0x415,0x435},
913 {0x416,0x436},
914 {0x417,0x437},
915 {0x418,0x438},
916 {0x419,0x439},
917 {0x41a,0x43a},
918 {0x41b,0x43b},
919 {0x41c,0x43c},
920 {0x41d,0x43d},
921 {0x41e,0x43e},
922 {0x41f,0x43f},
923 {0x420,0x440},
924 {0x421,0x441},
925 {0x422,0x442},
926 {0x423,0x443},
927 {0x424,0x444},
928 {0x425,0x445},
929 {0x426,0x446},
930 {0x427,0x447},
931 {0x428,0x448},
932 {0x429,0x449},
933 {0x42a,0x44a},
934 {0x42b,0x44b},
935 {0x42c,0x44c},
936 {0x42d,0x44d},
937 {0x42e,0x44e},
938 {0x42f,0x44f},
939 {0x401,0x451},
940 {0x402,0x452},
941 {0x403,0x453},
942 {0x404,0x454},
943 {0x405,0x455},
944 {0x406,0x456},
945 {0x407,0x457},
946 {0x408,0x458},
947 {0x409,0x459},
948 {0x40a,0x45a},
949 {0x40b,0x45b},
950 {0x40c,0x45c},
951 {0x40e,0x45e},
952 {0x40f,0x45f},
953 {0x460,0x461},
954 {0x462,0x463},
955 {0x464,0x465},
956 {0x466,0x467},
957 {0x468,0x469},
958 {0x46a,0x46b},
959 {0x46c,0x46d},
960 {0x46e,0x46f},
961 {0x470,0x471},
962 {0x472,0x473},
963 {0x474,0x475},
964 {0x476,0x477},
965 {0x478,0x479},
966 {0x47a,0x47b},
967 {0x47c,0x47d},
968 {0x47e,0x47f},
969 {0x480,0x481},
970 {0x490,0x491},
971 {0x492,0x493},
972 {0x494,0x495},
973 {0x496,0x497},
974 {0x498,0x499},
975 {0x49a,0x49b},
976 {0x49c,0x49d},
977 {0x49e,0x49f},
978 {0x4a0,0x4a1},
979 {0x4a2,0x4a3},
980 {0x4a4,0x4a5},
981 {0x4a6,0x4a7},
982 {0x4a8,0x4a9},
983 {0x4aa,0x4ab},
984 {0x4ac,0x4ad},
985 {0x4ae,0x4af},
986 {0x4b0,0x4b1},
987 {0x4b2,0x4b3},
988 {0x4b4,0x4b5},
989 {0x4b6,0x4b7},
990 {0x4b8,0x4b9},
991 {0x4ba,0x4bb},
992 {0x4bc,0x4bd},
993 {0x4be,0x4bf},
994 {0x4c1,0x4c2},
995 {0x4c3,0x4c4},
996 {0x4c7,0x4c8},
997 {0x4cb,0x4cc},
998 {0x4d0,0x4d1},
999 {0x4d2,0x4d3},
1000 {0x4d4,0x4d5},
1001 {0x4d6,0x4d7},
1002 {0x4d8,0x4d9},
1003 {0x4da,0x4db},
1004 {0x4dc,0x4dd},
1005 {0x4de,0x4df},
1006 {0x4e0,0x4e1},
1007 {0x4e2,0x4e3},
1008 {0x4e4,0x4e5},
1009 {0x4e6,0x4e7},
1010 {0x4e8,0x4e9},
1011 {0x4ea,0x4eb},
1012 {0x4ee,0x4ef},
1013 {0x4f0,0x4f1},
1014 {0x4f2,0x4f3},
1015 {0x4f4,0x4f5},
1016 {0x4f8,0x4f9},
1017 {0x531,0x561},
1018 {0x532,0x562},
1019 {0x533,0x563},
1020 {0x534,0x564},
1021 {0x535,0x565},
1022 {0x536,0x566},
1023 {0x537,0x567},
1024 {0x538,0x568},
1025 {0x539,0x569},
1026 {0x53a,0x56a},
1027 {0x53b,0x56b},
1028 {0x53c,0x56c},
1029 {0x53d,0x56d},
1030 {0x53e,0x56e},
1031 {0x53f,0x56f},
1032 {0x540,0x570},
1033 {0x541,0x571},
1034 {0x542,0x572},
1035 {0x543,0x573},
1036 {0x544,0x574},
1037 {0x545,0x575},
1038 {0x546,0x576},
1039 {0x547,0x577},
1040 {0x548,0x578},
1041 {0x549,0x579},
1042 {0x54a,0x57a},
1043 {0x54b,0x57b},
1044 {0x54c,0x57c},
1045 {0x54d,0x57d},
1046 {0x54e,0x57e},
1047 {0x54f,0x57f},
1048 {0x550,0x580},
1049 {0x551,0x581},
1050 {0x552,0x582},
1051 {0x553,0x583},
1052 {0x554,0x584},
1053 {0x555,0x585},
1054 {0x556,0x586},
1055 {0x10a0,0x10d0},
1056 {0x10a1,0x10d1},
1057 {0x10a2,0x10d2},
1058 {0x10a3,0x10d3},
1059 {0x10a4,0x10d4},
1060 {0x10a5,0x10d5},
1061 {0x10a6,0x10d6},
1062 {0x10a7,0x10d7},
1063 {0x10a8,0x10d8},
1064 {0x10a9,0x10d9},
1065 {0x10aa,0x10da},
1066 {0x10ab,0x10db},
1067 {0x10ac,0x10dc},
1068 {0x10ad,0x10dd},
1069 {0x10ae,0x10de},
1070 {0x10af,0x10df},
1071 {0x10b0,0x10e0},
1072 {0x10b1,0x10e1},
1073 {0x10b2,0x10e2},
1074 {0x10b3,0x10e3},
1075 {0x10b4,0x10e4},
1076 {0x10b5,0x10e5},
1077 {0x10b6,0x10e6},
1078 {0x10b7,0x10e7},
1079 {0x10b8,0x10e8},
1080 {0x10b9,0x10e9},
1081 {0x10ba,0x10ea},
1082 {0x10bb,0x10eb},
1083 {0x10bc,0x10ec},
1084 {0x10bd,0x10ed},
1085 {0x10be,0x10ee},
1086 {0x10bf,0x10ef},
1087 {0x10c0,0x10f0},
1088 {0x10c1,0x10f1},
1089 {0x10c2,0x10f2},
1090 {0x10c3,0x10f3},
1091 {0x10c4,0x10f4},
1092 {0x10c5,0x10f5},
1093 {0x1e00,0x1e01},
1094 {0x1e02,0x1e03},
1095 {0x1e04,0x1e05},
1096 {0x1e06,0x1e07},
1097 {0x1e08,0x1e09},
1098 {0x1e0a,0x1e0b},
1099 {0x1e0c,0x1e0d},
1100 {0x1e0e,0x1e0f},
1101 {0x1e10,0x1e11},
1102 {0x1e12,0x1e13},
1103 {0x1e14,0x1e15},
1104 {0x1e16,0x1e17},
1105 {0x1e18,0x1e19},
1106 {0x1e1a,0x1e1b},
1107 {0x1e1c,0x1e1d},
1108 {0x1e1e,0x1e1f},
1109 {0x1e20,0x1e21},
1110 {0x1e22,0x1e23},
1111 {0x1e24,0x1e25},
1112 {0x1e26,0x1e27},
1113 {0x1e28,0x1e29},
1114 {0x1e2a,0x1e2b},
1115 {0x1e2c,0x1e2d},
1116 {0x1e2e,0x1e2f},
1117 {0x1e30,0x1e31},
1118 {0x1e32,0x1e33},
1119 {0x1e34,0x1e35},
1120 {0x1e36,0x1e37},
1121 {0x1e38,0x1e39},
1122 {0x1e3a,0x1e3b},
1123 {0x1e3c,0x1e3d},
1124 {0x1e3e,0x1e3f},
1125 {0x1e40,0x1e41},
1126 {0x1e42,0x1e43},
1127 {0x1e44,0x1e45},
1128 {0x1e46,0x1e47},
1129 {0x1e48,0x1e49},
1130 {0x1e4a,0x1e4b},
1131 {0x1e4c,0x1e4d},
1132 {0x1e4e,0x1e4f},
1133 {0x1e50,0x1e51},
1134 {0x1e52,0x1e53},
1135 {0x1e54,0x1e55},
1136 {0x1e56,0x1e57},
1137 {0x1e58,0x1e59},
1138 {0x1e5a,0x1e5b},
1139 {0x1e5c,0x1e5d},
1140 {0x1e5e,0x1e5f},
1141 {0x1e60,0x1e61},
1142 {0x1e62,0x1e63},
1143 {0x1e64,0x1e65},
1144 {0x1e66,0x1e67},
1145 {0x1e68,0x1e69},
1146 {0x1e6a,0x1e6b},
1147 {0x1e6c,0x1e6d},
1148 {0x1e6e,0x1e6f},
1149 {0x1e70,0x1e71},
1150 {0x1e72,0x1e73},
1151 {0x1e74,0x1e75},
1152 {0x1e76,0x1e77},
1153 {0x1e78,0x1e79},
1154 {0x1e7a,0x1e7b},
1155 {0x1e7c,0x1e7d},
1156 {0x1e7e,0x1e7f},
1157 {0x1e80,0x1e81},
1158 {0x1e82,0x1e83},
1159 {0x1e84,0x1e85},
1160 {0x1e86,0x1e87},
1161 {0x1e88,0x1e89},
1162 {0x1e8a,0x1e8b},
1163 {0x1e8c,0x1e8d},
1164 {0x1e8e,0x1e8f},
1165 {0x1e90,0x1e91},
1166 {0x1e92,0x1e93},
1167 {0x1e94,0x1e95},
1168 {0x1ea0,0x1ea1},
1169 {0x1ea2,0x1ea3},
1170 {0x1ea4,0x1ea5},
1171 {0x1ea6,0x1ea7},
1172 {0x1ea8,0x1ea9},
1173 {0x1eaa,0x1eab},
1174 {0x1eac,0x1ead},
1175 {0x1eae,0x1eaf},
1176 {0x1eb0,0x1eb1},
1177 {0x1eb2,0x1eb3},
1178 {0x1eb4,0x1eb5},
1179 {0x1eb6,0x1eb7},
1180 {0x1eb8,0x1eb9},
1181 {0x1eba,0x1ebb},
1182 {0x1ebc,0x1ebd},
1183 {0x1ebe,0x1ebf},
1184 {0x1ec0,0x1ec1},
1185 {0x1ec2,0x1ec3},
1186 {0x1ec4,0x1ec5},
1187 {0x1ec6,0x1ec7},
1188 {0x1ec8,0x1ec9},
1189 {0x1eca,0x1ecb},
1190 {0x1ecc,0x1ecd},
1191 {0x1ece,0x1ecf},
1192 {0x1ed0,0x1ed1},
1193 {0x1ed2,0x1ed3},
1194 {0x1ed4,0x1ed5},
1195 {0x1ed6,0x1ed7},
1196 {0x1ed8,0x1ed9},
1197 {0x1eda,0x1edb},
1198 {0x1edc,0x1edd},
1199 {0x1ede,0x1edf},
1200 {0x1ee0,0x1ee1},
1201 {0x1ee2,0x1ee3},
1202 {0x1ee4,0x1ee5},
1203 {0x1ee6,0x1ee7},
1204 {0x1ee8,0x1ee9},
1205 {0x1eea,0x1eeb},
1206 {0x1eec,0x1eed},
1207 {0x1eee,0x1eef},
1208 {0x1ef0,0x1ef1},
1209 {0x1ef2,0x1ef3},
1210 {0x1ef4,0x1ef5},
1211 {0x1ef6,0x1ef7},
1212 {0x1ef8,0x1ef9},
1213 {0x1f08,0x1f00},
1214 {0x1f09,0x1f01},
1215 {0x1f0a,0x1f02},
1216 {0x1f0b,0x1f03},
1217 {0x1f0c,0x1f04},
1218 {0x1f0d,0x1f05},
1219 {0x1f0e,0x1f06},
1220 {0x1f0f,0x1f07},
1221 {0x1f18,0x1f10},
1222 {0x1f19,0x1f11},
1223 {0x1f1a,0x1f12},
1224 {0x1f1b,0x1f13},
1225 {0x1f1c,0x1f14},
1226 {0x1f1d,0x1f15},
1227 {0x1f28,0x1f20},
1228 {0x1f29,0x1f21},
1229 {0x1f2a,0x1f22},
1230 {0x1f2b,0x1f23},
1231 {0x1f2c,0x1f24},
1232 {0x1f2d,0x1f25},
1233 {0x1f2e,0x1f26},
1234 {0x1f2f,0x1f27},
1235 {0x1f38,0x1f30},
1236 {0x1f39,0x1f31},
1237 {0x1f3a,0x1f32},
1238 {0x1f3b,0x1f33},
1239 {0x1f3c,0x1f34},
1240 {0x1f3d,0x1f35},
1241 {0x1f3e,0x1f36},
1242 {0x1f3f,0x1f37},
1243 {0x1f48,0x1f40},
1244 {0x1f49,0x1f41},
1245 {0x1f4a,0x1f42},
1246 {0x1f4b,0x1f43},
1247 {0x1f4c,0x1f44},
1248 {0x1f4d,0x1f45},
1249 {0x1f59,0x1f51},
1250 {0x1f5b,0x1f53},
1251 {0x1f5d,0x1f55},
1252 {0x1f5f,0x1f57},
1253 {0x1f68,0x1f60},
1254 {0x1f69,0x1f61},
1255 {0x1f6a,0x1f62},
1256 {0x1f6b,0x1f63},
1257 {0x1f6c,0x1f64},
1258 {0x1f6d,0x1f65},
1259 {0x1f6e,0x1f66},
1260 {0x1f6f,0x1f67},
1261 {0x1f88,0x1f80},
1262 {0x1f89,0x1f81},
1263 {0x1f8a,0x1f82},
1264 {0x1f8b,0x1f83},
1265 {0x1f8c,0x1f84},
1266 {0x1f8d,0x1f85},
1267 {0x1f8e,0x1f86},
1268 {0x1f8f,0x1f87},
1269 {0x1f98,0x1f90},
1270 {0x1f99,0x1f91},
1271 {0x1f9a,0x1f92},
1272 {0x1f9b,0x1f93},
1273 {0x1f9c,0x1f94},
1274 {0x1f9d,0x1f95},
1275 {0x1f9e,0x1f96},
1276 {0x1f9f,0x1f97},
1277 {0x1fa8,0x1fa0},
1278 {0x1fa9,0x1fa1},
1279 {0x1faa,0x1fa2},
1280 {0x1fab,0x1fa3},
1281 {0x1fac,0x1fa4},
1282 {0x1fad,0x1fa5},
1283 {0x1fae,0x1fa6},
1284 {0x1faf,0x1fa7},
1285 {0x1fb8,0x1fb0},
1286 {0x1fb9,0x1fb1},
1287 {0x1fd8,0x1fd0},
1288 {0x1fd9,0x1fd1},
1289 {0x1fe8,0x1fe0},
1290 {0x1fe9,0x1fe1},
1291 {0x24b6,0x24d0},
1292 {0x24b7,0x24d1},
1293 {0x24b8,0x24d2},
1294 {0x24b9,0x24d3},
1295 {0x24ba,0x24d4},
1296 {0x24bb,0x24d5},
1297 {0x24bc,0x24d6},
1298 {0x24bd,0x24d7},
1299 {0x24be,0x24d8},
1300 {0x24bf,0x24d9},
1301 {0x24c0,0x24da},
1302 {0x24c1,0x24db},
1303 {0x24c2,0x24dc},
1304 {0x24c3,0x24dd},
1305 {0x24c4,0x24de},
1306 {0x24c5,0x24df},
1307 {0x24c6,0x24e0},
1308 {0x24c7,0x24e1},
1309 {0x24c8,0x24e2},
1310 {0x24c9,0x24e3},
1311 {0x24ca,0x24e4},
1312 {0x24cb,0x24e5},
1313 {0x24cc,0x24e6},
1314 {0x24cd,0x24e7},
1315 {0x24ce,0x24e8},
1316 {0x24cf,0x24e9},
1317 {0xff21,0xff41},
1318 {0xff22,0xff42},
1319 {0xff23,0xff43},
1320 {0xff24,0xff44},
1321 {0xff25,0xff45},
1322 {0xff26,0xff46},
1323 {0xff27,0xff47},
1324 {0xff28,0xff48},
1325 {0xff29,0xff49},
1326 {0xff2a,0xff4a},
1327 {0xff2b,0xff4b},
1328 {0xff2c,0xff4c},
1329 {0xff2d,0xff4d},
1330 {0xff2e,0xff4e},
1331 {0xff2f,0xff4f},
1332 {0xff30,0xff50},
1333 {0xff31,0xff51},
1334 {0xff32,0xff52},
1335 {0xff33,0xff53},
1336 {0xff34,0xff54},
1337 {0xff35,0xff55},
1338 {0xff36,0xff56},
1339 {0xff37,0xff57},
1340 {0xff38,0xff58},
1341 {0xff39,0xff59},
1342 {0xff3a,0xff5a}
1343 };
1344 
1345 static int _find_upper(int ch) {
1346 
1347 
1348  int low = 0;
1349  int high = CAPS_LEN -1;
1350  int middle;
1351 
1352  while( low <= high )
1353  {
1354  middle = ( low + high ) / 2;
1355 
1356  if( ch < caps_table[ middle][0] ) {
1357  high = middle - 1; //search low end of array
1358  } else if ( caps_table[middle][0] < ch) {
1359  low = middle + 1; //search high end of array
1360  } else {
1361  return caps_table[middle][1];
1362  }
1363  }
1364 
1365  return ch;
1366 }
1367 
1368 
1369 static int _find_lower(int ch) {
1370 
1371 
1372  int low = 0;
1373  int high = CAPS_LEN -2;
1374  int middle;
1375 
1376  while( low <= high )
1377  {
1378  middle = ( low + high ) / 2;
1379 
1380  if( ch < reverse_caps_table[ middle][0] ) {
1381  high = middle - 1; //search low end of array
1382  } else if ( reverse_caps_table[middle][0] < ch) {
1383  low = middle + 1; //search high end of array
1384  } else {
1385  return reverse_caps_table[middle][1];
1386  }
1387  }
1388 
1389  return ch;
1390 }
1391 #endif