OSDN Git Service

updated igit.exe (fixes for dir status etc)
[tortoisegit/TortoiseGitJp.git] / ext / hunspell / csutil.cxx
1 #include "license.hunspell"\r
2 #include "license.myspell"\r
3 \r
4 #ifndef MOZILLA_CLIENT\r
5 #include <cstdlib>\r
6 #include <cstring>\r
7 #include <cstdio>\r
8 #else\r
9 #include <stdlib.h> \r
10 #include <string.h>\r
11 #include <stdio.h> \r
12 #endif\r
13 \r
14 #include "csutil.hxx"\r
15 #include "atypes.hxx"\r
16 #include "langnum.hxx"\r
17 \r
18 #ifdef OPENOFFICEORG\r
19 #  include <unicode/uchar.h>\r
20 #else\r
21 #  ifndef MOZILLA_CLIENT\r
22 #    include "utf_info.cxx"\r
23 #    define UTF_LST_LEN (sizeof(utf_lst) / (sizeof(unicode_info)))\r
24 #  endif\r
25 #endif\r
26 \r
27 #ifdef MOZILLA_CLIENT\r
28 #include "nsCOMPtr.h"\r
29 #include "nsServiceManagerUtils.h"\r
30 #include "nsIUnicodeEncoder.h"\r
31 #include "nsIUnicodeDecoder.h"\r
32 #include "nsICaseConversion.h"\r
33 #include "nsICharsetConverterManager.h"\r
34 #include "nsUnicharUtilCIID.h"\r
35 #include "nsUnicharUtils.h"\r
36 \r
37 static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID);\r
38 static NS_DEFINE_CID(kUnicharUtilCID, NS_UNICHARUTIL_CID);\r
39 #endif\r
40 \r
41 #ifdef MOZILLA_CLIENT\r
42 #ifdef __SUNPRO_CC // for SunONE Studio compiler\r
43 using namespace std;\r
44 #endif\r
45 #else\r
46 #ifndef W32\r
47 using namespace std;\r
48 #endif\r
49 #endif\r
50 \r
51 struct unicode_info2 * utf_tbl = NULL;\r
52 \r
53 /* only UTF-16 (BMP) implementation */\r
54 char * u16_u8(char * dest, int size, const w_char * src, int srclen) {\r
55     char * u8 = dest;\r
56     char * u8_max = u8 + size;\r
57     const w_char * u2 = src;\r
58     const w_char * u2_max = src + srclen;\r
59     while ((u2 < u2_max) && (u8 < u8_max)) {\r
60         if (u2->h) { // > 0xFF\r
61             // XXX 4-byte haven't implemented yet.\r
62             if (u2->h >= 0x08) {   // >= 0x800 (3-byte UTF-8 character)\r
63                 *u8 = 0xe0 + (u2->h >> 4);\r
64                 u8++;\r
65                 if (u8 < u8_max) {\r
66                     *u8 = 0x80 + ((u2->h & 0xf) << 2) + (u2->l >> 6);\r
67                     u8++;\r
68                     if (u8 < u8_max) {\r
69                         *u8 = 0x80 + (u2->l & 0x3f);\r
70                         u8++;\r
71                     }\r
72                 }\r
73             } else { // < 0x800 (2-byte UTF-8 character)\r
74                 *u8 = 0xc0 + (u2->h << 2) + (u2->l >> 6);\r
75                 u8++;\r
76                 if (u8 < u8_max) {\r
77                     *u8 = 0x80 + (u2->l & 0x3f);\r
78                     u8++;\r
79                 }\r
80             }\r
81         } else { // <= 0xFF\r
82             if (u2->l & 0x80) { // >0x80 (2-byte UTF-8 character)\r
83                 *u8 = 0xc0 + (u2->l >> 6);\r
84                 u8++;\r
85                 if (u8 < u8_max) {\r
86                     *u8 = 0x80 + (u2->l & 0x3f);\r
87                     u8++;\r
88                 }\r
89             } else { // < 0x80 (1-byte UTF-8 character)\r
90                 *u8 = u2->l;\r
91                 u8++;\r
92             }\r
93         }\r
94         u2++;\r
95     }\r
96     *u8 = '\0';\r
97     return dest;\r
98 }\r
99 \r
100 \r
101 /* only UTF-16 (BMP) implementation */\r
102 int u8_u16(w_char * dest, int size, const char * src) {\r
103     const char * u8 = src;\r
104     w_char * u2 = dest;\r
105     w_char * u2_max = u2 + size;\r
106     \r
107     while (*u8 && (u2 < u2_max)) {\r
108     switch ((*u8) & 0xf0) {\r
109         case 0x00:\r
110         case 0x10:\r
111         case 0x20:\r
112         case 0x30:\r
113         case 0x40:\r
114         case 0x50:\r
115         case 0x60:\r
116         case 0x70: {\r
117             u2->h = 0;\r
118             u2->l = *u8;\r
119             break;\r
120         }\r
121         case 0x80:\r
122         case 0x90:\r
123         case 0xa0:\r
124         case 0xb0: {\r
125             HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Unexpected continuation bytes in %d. character position\n%s\n", u8 - src, src);    \r
126             u2->h = 0xff;\r
127             u2->l = 0xfd;\r
128             break;\r
129         }\r
130         case 0xc0:\r
131         case 0xd0: {    // 2-byte UTF-8 codes\r
132             if ((*(u8+1) & 0xc0) == 0x80) {\r
133                 u2->h = (*u8 & 0x1f) >> 2;\r
134                 u2->l = (*u8 << 6) + (*(u8+1) & 0x3f);\r
135                 u8++;\r
136             } else {\r
137                 HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %d. character position:\n%s\n", u8 - src, src);\r
138                 u2->h = 0xff;\r
139                 u2->l = 0xfd;\r
140             }\r
141             break;\r
142         }\r
143         case 0xe0: {    // 3-byte UTF-8 codes\r
144             if ((*(u8+1) & 0xc0) == 0x80) {\r
145                 u2->h = ((*u8 & 0x0f) << 4) + ((*(u8+1) & 0x3f) >> 2);\r
146                 u8++;\r
147                 if ((*(u8+1) & 0xc0) == 0x80) {\r
148                     u2->l = (*u8 << 6) + (*(u8+1) & 0x3f);\r
149                     u8++;\r
150                 } else {\r
151                     HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %d. character position:\n%s\n", u8 - src, src);\r
152                     u2->h = 0xff;\r
153                     u2->l = 0xfd;\r
154                 }\r
155             } else {\r
156                 HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %d. character position:\n%s\n", u8 - src, src);\r
157                 u2->h = 0xff;\r
158                 u2->l = 0xfd;\r
159             }\r
160             break;\r
161         }\r
162         case 0xf0: {    // 4 or more byte UTF-8 codes\r
163             HUNSPELL_WARNING(stderr, "This UTF-8 encoding can't convert to UTF-16:\n%s\n", src);\r
164             u2->h = 0xff;\r
165             u2->l = 0xfd;\r
166             return -1;\r
167         }\r
168     }\r
169     u8++;\r
170     u2++;\r
171     }\r
172     return u2 - dest;\r
173 }\r
174 \r
175 void flag_qsort(unsigned short flags[], int begin, int end) {\r
176     unsigned short reg;\r
177     if (end > begin) {\r
178         unsigned short pivot = flags[begin];\r
179         int l = begin + 1;\r
180         int r = end;\r
181         while(l < r) {\r
182             if (flags[l] <= pivot) {\r
183                 l++;\r
184             } else {\r
185              r--;\r
186              reg = flags[l];\r
187              flags[l] = flags[r];\r
188              flags[r] = reg;\r
189           }\r
190        }\r
191        l--;\r
192        reg = flags[begin];\r
193        flags[begin] = flags[l];\r
194        flags[l] = reg;\r
195 \r
196        flag_qsort(flags, begin, l);\r
197        flag_qsort(flags, r, end);\r
198     }\r
199  }\r
200 \r
201 int flag_bsearch(unsigned short flags[], unsigned short flag, int length) {\r
202    int mid;\r
203    int left = 0;\r
204    int right = length - 1;\r
205    while (left <= right) {\r
206       mid = (left + right) / 2;\r
207       if (flags[mid] == flag) return 1;\r
208       if (flag < flags[mid]) right = mid - 1;\r
209       else left = mid + 1;\r
210    }\r
211    return 0;\r
212 }\r
213 \r
214  // strip strings into token based on single char delimiter\r
215  // acts like strsep() but only uses a delim char and not\r
216  // a delim string\r
217  // default delimiter: white space characters\r
218  \r
219  char * mystrsep(char ** stringp, const char delim)\r
220  {\r
221    char * rv = NULL;\r
222    char * mp = *stringp;\r
223    int n = strlen(mp);\r
224    if (n > 0) {\r
225       char * dp;\r
226       if (delim) {\r
227         dp = (char *)memchr(mp,(int)((unsigned char)delim),n);\r
228       } else {\r
229         // don't use isspace() here, the string can be in some random charset\r
230         // that's way different than the locale's\r
231         for (dp = mp; (*dp && *dp != ' ' && *dp != '\t'); dp++);\r
232         if (!*dp) dp = NULL;\r
233       }\r
234       if (dp) {\r
235          *stringp = dp+1;\r
236          int nc = (int)((unsigned long)dp - (unsigned long)mp);\r
237          rv = (char *) malloc(nc+1);\r
238          memcpy(rv,mp,nc);\r
239          *(rv+nc) = '\0';\r
240          return rv;\r
241       } else {\r
242         rv = (char *) malloc(n+1);\r
243         memcpy(rv, mp, n);\r
244         *(rv+n) = '\0';\r
245         *stringp = mp + n;\r
246         return rv;\r
247       }\r
248    }\r
249    return NULL;\r
250  }\r
251 \r
252  \r
253  // replaces strdup with ansi version\r
254  char * mystrdup(const char * s)\r
255  {\r
256    char * d = NULL;\r
257    if (s) {\r
258       int sl = strlen(s);\r
259       d = (char *) malloc(((sl+1) * sizeof(char)));\r
260       if (d) memcpy(d,s,((sl+1)*sizeof(char)));\r
261    }\r
262    return d;\r
263  }\r
264  \r
265  \r
266  // remove cross-platform text line end characters\r
267  void mychomp(char * s)\r
268  {\r
269    int k = strlen(s);\r
270    if ((k > 0) && ((*(s+k-1)=='\r') || (*(s+k-1)=='\n'))) *(s+k-1) = '\0';\r
271    if ((k > 1) && (*(s+k-2) == '\r')) *(s+k-2) = '\0';\r
272  }\r
273  \r
274  \r
275  //  does an ansi strdup of the reverse of a string\r
276  char * myrevstrdup(const char * s)\r
277  {\r
278      char * d = NULL;\r
279      if (s) {\r
280         int sl = strlen(s);\r
281         d = (char *) malloc((sl+1) * sizeof(char));\r
282         if (d) {\r
283           const char * p = s + sl - 1;\r
284           char * q = d;\r
285           while (p >= s) *q++ = *p--;\r
286           *q = '\0';\r
287         }\r
288      }\r
289      return d;\r
290  }\r
291 \r
292 #ifdef HUNSPELL_EXPERIMENTAL\r
293  // append s to ends of every lines in text\r
294  void strlinecat(char * dest, const char * s)\r
295  {\r
296     char * dup = mystrdup(dest);\r
297     char * source = dup;\r
298     int len = strlen(s);\r
299     while (*source) {\r
300         if (*source == '\n') {\r
301             strncpy(dest, s, len);\r
302             dest += len;\r
303         }\r
304         *dest = *source;\r
305         source++; dest++;\r
306     }\r
307     strcpy(dest, s);\r
308     free(dup);\r
309  }\r
310 \r
311 // break text to lines\r
312 // return number of lines\r
313 int line_tok(const char * text, char *** lines) {\r
314     int linenum = 0;\r
315     char * dup = mystrdup(text);\r
316     char * p = strchr(dup, '\n');\r
317     while (p) {\r
318         linenum++;\r
319         *p = '\0';\r
320         p++;\r
321         p = strchr(p, '\n');\r
322     }\r
323     *lines = (char **) calloc(linenum + 1, sizeof(char *));\r
324     if (!(*lines)) return -1;\r
325 \r
326     p = dup; \r
327     for (int i = 0; i < linenum + 1; i++) {\r
328         (*lines)[i] = mystrdup(p);\r
329         p += strlen(p) + 1;\r
330     }\r
331     free(dup);\r
332     return linenum;\r
333 }\r
334 \r
335 // uniq line in place\r
336 char * line_uniq(char * text) {\r
337     char ** lines;\r
338     int linenum = line_tok(text, &lines);\r
339     int i;\r
340     strcpy(text, lines[0]);\r
341     for ( i = 1; i<=linenum; i++ ) {\r
342         int dup = 0;\r
343         for (int j = 0; j < i; j++) {\r
344             if (strcmp(lines[i], lines[j]) == 0) dup = 1;\r
345         }\r
346         if (!dup) {\r
347             if ((i > 1) || (*(lines[0]) != '\0')) strcat(text, "\n");\r
348             strcat(text, lines[i]);\r
349         }\r
350     }\r
351     for ( i = 0; i<=linenum; i++ ) {\r
352         if (lines[i]) free(lines[i]);\r
353     }\r
354     if (lines) free(lines);\r
355     return text;\r
356 }\r
357 \r
358 // change \n to char c\r
359 char * line_join(char * text, char c) {\r
360     char * p;\r
361     for (p = text; *p; p++) if (*p == '\n') *p = c;\r
362     return text;\r
363 }\r
364 \r
365 // leave only last {[^}]*} substring for handling zero morphemes\r
366 char * delete_zeros(char * morphout) {\r
367     char * p = morphout;\r
368     char * q = p;\r
369     char * q2 = NULL;\r
370     int suffix = 0;\r
371     \r
372     for (;*p && *(p+1);) {\r
373         switch (*p) {\r
374             case '{': \r
375                 q2 = q;\r
376                 q--;\r
377                 break;\r
378             case '}':\r
379                 if (q2) {\r
380                     suffix = 1;\r
381                     q--;\r
382                 }\r
383                 break; \r
384             default:\r
385                 if (suffix) {\r
386                     q = q2;\r
387                 }\r
388                 suffix = 0;\r
389                 *q = *p;\r
390         }\r
391         p++;\r
392         q++;\r
393     }\r
394     *q = '\0';\r
395     return morphout;\r
396 }\r
397 #endif // END OF HUNSPELL_EXPERIMENTAL CODE\r
398 \r
399 char * mystrrep(char * word, const char * pat, const char * rep) {\r
400     char * pos = strstr(word, pat);\r
401     if (pos) {\r
402         int replen = strlen(rep);\r
403         int patlen = strlen(pat);\r
404         if (replen < patlen) {\r
405             char * end = word + strlen(word);\r
406             char * next = pos + replen;\r
407             char * prev = pos + strlen(pat);\r
408             for (; prev < end; *next = *prev, prev++, next++);\r
409             *next = '\0';\r
410         } else if (replen > patlen) {\r
411             char * end = pos + patlen;\r
412             char * next = word + strlen(word) + replen - patlen;\r
413             char * prev = next - replen + patlen;\r
414             for (; prev >= end; *next = *prev, prev--, next--);\r
415         }\r
416         strncpy(pos, rep, replen);\r
417     }\r
418     return word;\r
419 }\r
420 \r
421  // reverse word \r
422  int reverseword(char * word) {\r
423    char r;\r
424    for (char * dest = word + strlen(word) - 1; word < dest; word++, dest--) {\r
425      r=*word;\r
426      *word = *dest;\r
427      *dest = r;\r
428    }\r
429    return 0;\r
430  }\r
431 \r
432  // reverse word (error: 1)\r
433  int reverseword_utf(char * word) {\r
434    w_char w[MAXWORDLEN];\r
435    w_char * p;\r
436    w_char r;\r
437    int l = u8_u16(w, MAXWORDLEN, word);\r
438    if (l == -1) return 1;\r
439    p = w;\r
440    for (w_char * dest = w + l - 1; p < dest; p++, dest--) {\r
441      r=*p;\r
442      *p = *dest;\r
443      *dest = r;\r
444    }\r
445    u16_u8(word, MAXWORDUTF8LEN, w, l);\r
446    return 0;\r
447  }\r
448  \r
449  // convert null terminated string to all caps\r
450  void mkallcap(char * p, const struct cs_info * csconv)\r
451  {\r
452    while (*p != '\0') {\r
453      *p = csconv[((unsigned char) *p)].cupper;\r
454      p++;\r
455    }\r
456  }\r
457   \r
458  // convert null terminated string to all little\r
459  void mkallsmall(char * p, const struct cs_info * csconv)\r
460  {\r
461    while (*p != '\0') {\r
462      *p = csconv[((unsigned char) *p)].clower;\r
463      p++;\r
464    }\r
465  }\r
466 \r
467 void mkallsmall_utf(w_char * u, int nc, int langnum) {\r
468     for (int i = 0; i < nc; i++) {\r
469         unsigned short idx = (u[i].h << 8) + u[i].l;\r
470         if (idx != unicodetolower(idx, langnum)) {\r
471             u[i].h = (unsigned char) (unicodetolower(idx, langnum) >> 8);\r
472             u[i].l = (unsigned char) (unicodetolower(idx, langnum) & 0x00FF);\r
473         }\r
474     }\r
475 }\r
476 \r
477 void mkallcap_utf(w_char * u, int nc, int langnum) {\r
478     for (int i = 0; i < nc; i++) {\r
479         unsigned short idx = (u[i].h << 8) + u[i].l;\r
480         if (idx != unicodetoupper(idx, langnum)) {\r
481             u[i].h = (unsigned char) (unicodetolower(idx, langnum) >> 8);\r
482             u[i].l = (unsigned char) (unicodetolower(idx, langnum) & 0x00FF);\r
483         }\r
484     }\r
485 }\r
486  \r
487  // convert null terminated string to have intial capital\r
488  void mkinitcap(char * p, const struct cs_info * csconv)\r
489  {\r
490    if (*p != '\0') *p = csconv[((unsigned char)*p)].cupper;\r
491  }\r
492 \r
493 #ifndef MOZILLA_CLIENT\r
494  // convert null terminated string to all caps using encoding\r
495  void enmkallcap(char * d, const char * p, const char * encoding)\r
496  \r
497  {\r
498    struct cs_info * csconv = get_current_cs(encoding);\r
499    while (*p != '\0') {\r
500      *d++ = csconv[((unsigned char) *p)].cupper;\r
501      p++;\r
502    }\r
503    *d = '\0';\r
504  }\r
505 \r
506  // convert null terminated string to all little using encoding\r
507  void enmkallsmall(char * d, const char * p, const char * encoding)\r
508  {\r
509    struct cs_info * csconv = get_current_cs(encoding);\r
510    while (*p != '\0') {\r
511      *d++ = csconv[((unsigned char) *p)].clower;\r
512      p++;\r
513    }\r
514    *d = '\0';\r
515  }\r
516 \r
517  // convert null terminated string to have intial capital using encoding\r
518  void enmkinitcap(char * d, const char * p, const char * encoding)\r
519  {\r
520    struct cs_info * csconv = get_current_cs(encoding);\r
521    memcpy(d,p,(strlen(p)+1));\r
522    if (*p != '\0') *d= csconv[((unsigned char)*p)].cupper;\r
523  }\r
524 \r
525 // these are simple character mappings for the \r
526 // encodings supported\r
527 // supplying isupper, tolower, and toupper\r
528 \r
529 struct cs_info iso1_tbl[] = {\r
530 { 0x00, 0x00, 0x00 },\r
531 { 0x00, 0x01, 0x01 },\r
532 { 0x00, 0x02, 0x02 },\r
533 { 0x00, 0x03, 0x03 },\r
534 { 0x00, 0x04, 0x04 },\r
535 { 0x00, 0x05, 0x05 },\r
536 { 0x00, 0x06, 0x06 },\r
537 { 0x00, 0x07, 0x07 },\r
538 { 0x00, 0x08, 0x08 },\r
539 { 0x00, 0x09, 0x09 },\r
540 { 0x00, 0x0a, 0x0a },\r
541 { 0x00, 0x0b, 0x0b },\r
542 { 0x00, 0x0c, 0x0c },\r
543 { 0x00, 0x0d, 0x0d },\r
544 { 0x00, 0x0e, 0x0e },\r
545 { 0x00, 0x0f, 0x0f },\r
546 { 0x00, 0x10, 0x10 },\r
547 { 0x00, 0x11, 0x11 },\r
548 { 0x00, 0x12, 0x12 },\r
549 { 0x00, 0x13, 0x13 },\r
550 { 0x00, 0x14, 0x14 },\r
551 { 0x00, 0x15, 0x15 },\r
552 { 0x00, 0x16, 0x16 },\r
553 { 0x00, 0x17, 0x17 },\r
554 { 0x00, 0x18, 0x18 },\r
555 { 0x00, 0x19, 0x19 },\r
556 { 0x00, 0x1a, 0x1a },\r
557 { 0x00, 0x1b, 0x1b },\r
558 { 0x00, 0x1c, 0x1c },\r
559 { 0x00, 0x1d, 0x1d },\r
560 { 0x00, 0x1e, 0x1e },\r
561 { 0x00, 0x1f, 0x1f },\r
562 { 0x00, 0x20, 0x20 },\r
563 { 0x00, 0x21, 0x21 },\r
564 { 0x00, 0x22, 0x22 },\r
565 { 0x00, 0x23, 0x23 },\r
566 { 0x00, 0x24, 0x24 },\r
567 { 0x00, 0x25, 0x25 },\r
568 { 0x00, 0x26, 0x26 },\r
569 { 0x00, 0x27, 0x27 },\r
570 { 0x00, 0x28, 0x28 },\r
571 { 0x00, 0x29, 0x29 },\r
572 { 0x00, 0x2a, 0x2a },\r
573 { 0x00, 0x2b, 0x2b },\r
574 { 0x00, 0x2c, 0x2c },\r
575 { 0x00, 0x2d, 0x2d },\r
576 { 0x00, 0x2e, 0x2e },\r
577 { 0x00, 0x2f, 0x2f },\r
578 { 0x00, 0x30, 0x30 },\r
579 { 0x00, 0x31, 0x31 },\r
580 { 0x00, 0x32, 0x32 },\r
581 { 0x00, 0x33, 0x33 },\r
582 { 0x00, 0x34, 0x34 },\r
583 { 0x00, 0x35, 0x35 },\r
584 { 0x00, 0x36, 0x36 },\r
585 { 0x00, 0x37, 0x37 },\r
586 { 0x00, 0x38, 0x38 },\r
587 { 0x00, 0x39, 0x39 },\r
588 { 0x00, 0x3a, 0x3a },\r
589 { 0x00, 0x3b, 0x3b },\r
590 { 0x00, 0x3c, 0x3c },\r
591 { 0x00, 0x3d, 0x3d },\r
592 { 0x00, 0x3e, 0x3e },\r
593 { 0x00, 0x3f, 0x3f },\r
594 { 0x00, 0x40, 0x40 },\r
595 { 0x01, 0x61, 0x41 },\r
596 { 0x01, 0x62, 0x42 },\r
597 { 0x01, 0x63, 0x43 },\r
598 { 0x01, 0x64, 0x44 },\r
599 { 0x01, 0x65, 0x45 },\r
600 { 0x01, 0x66, 0x46 },\r
601 { 0x01, 0x67, 0x47 },\r
602 { 0x01, 0x68, 0x48 },\r
603 { 0x01, 0x69, 0x49 },\r
604 { 0x01, 0x6a, 0x4a },\r
605 { 0x01, 0x6b, 0x4b },\r
606 { 0x01, 0x6c, 0x4c },\r
607 { 0x01, 0x6d, 0x4d },\r
608 { 0x01, 0x6e, 0x4e },\r
609 { 0x01, 0x6f, 0x4f },\r
610 { 0x01, 0x70, 0x50 },\r
611 { 0x01, 0x71, 0x51 },\r
612 { 0x01, 0x72, 0x52 },\r
613 { 0x01, 0x73, 0x53 },\r
614 { 0x01, 0x74, 0x54 },\r
615 { 0x01, 0x75, 0x55 },\r
616 { 0x01, 0x76, 0x56 },\r
617 { 0x01, 0x77, 0x57 },\r
618 { 0x01, 0x78, 0x58 },\r
619 { 0x01, 0x79, 0x59 },\r
620 { 0x01, 0x7a, 0x5a },\r
621 { 0x00, 0x5b, 0x5b },\r
622 { 0x00, 0x5c, 0x5c },\r
623 { 0x00, 0x5d, 0x5d },\r
624 { 0x00, 0x5e, 0x5e },\r
625 { 0x00, 0x5f, 0x5f },\r
626 { 0x00, 0x60, 0x60 },\r
627 { 0x00, 0x61, 0x41 },\r
628 { 0x00, 0x62, 0x42 },\r
629 { 0x00, 0x63, 0x43 },\r
630 { 0x00, 0x64, 0x44 },\r
631 { 0x00, 0x65, 0x45 },\r
632 { 0x00, 0x66, 0x46 },\r
633 { 0x00, 0x67, 0x47 },\r
634 { 0x00, 0x68, 0x48 },\r
635 { 0x00, 0x69, 0x49 },\r
636 { 0x00, 0x6a, 0x4a },\r
637 { 0x00, 0x6b, 0x4b },\r
638 { 0x00, 0x6c, 0x4c },\r
639 { 0x00, 0x6d, 0x4d },\r
640 { 0x00, 0x6e, 0x4e },\r
641 { 0x00, 0x6f, 0x4f },\r
642 { 0x00, 0x70, 0x50 },\r
643 { 0x00, 0x71, 0x51 },\r
644 { 0x00, 0x72, 0x52 },\r
645 { 0x00, 0x73, 0x53 },\r
646 { 0x00, 0x74, 0x54 },\r
647 { 0x00, 0x75, 0x55 },\r
648 { 0x00, 0x76, 0x56 },\r
649 { 0x00, 0x77, 0x57 },\r
650 { 0x00, 0x78, 0x58 },\r
651 { 0x00, 0x79, 0x59 },\r
652 { 0x00, 0x7a, 0x5a },\r
653 { 0x00, 0x7b, 0x7b },\r
654 { 0x00, 0x7c, 0x7c },\r
655 { 0x00, 0x7d, 0x7d },\r
656 { 0x00, 0x7e, 0x7e },\r
657 { 0x00, 0x7f, 0x7f },\r
658 { 0x00, 0x80, 0x80 },\r
659 { 0x00, 0x81, 0x81 },\r
660 { 0x00, 0x82, 0x82 },\r
661 { 0x00, 0x83, 0x83 },\r
662 { 0x00, 0x84, 0x84 },\r
663 { 0x00, 0x85, 0x85 },\r
664 { 0x00, 0x86, 0x86 },\r
665 { 0x00, 0x87, 0x87 },\r
666 { 0x00, 0x88, 0x88 },\r
667 { 0x00, 0x89, 0x89 },\r
668 { 0x00, 0x8a, 0x8a },\r
669 { 0x00, 0x8b, 0x8b },\r
670 { 0x00, 0x8c, 0x8c },\r
671 { 0x00, 0x8d, 0x8d },\r
672 { 0x00, 0x8e, 0x8e },\r
673 { 0x00, 0x8f, 0x8f },\r
674 { 0x00, 0x90, 0x90 },\r
675 { 0x00, 0x91, 0x91 },\r
676 { 0x00, 0x92, 0x92 },\r
677 { 0x00, 0x93, 0x93 },\r
678 { 0x00, 0x94, 0x94 },\r
679 { 0x00, 0x95, 0x95 },\r
680 { 0x00, 0x96, 0x96 },\r
681 { 0x00, 0x97, 0x97 },\r
682 { 0x00, 0x98, 0x98 },\r
683 { 0x00, 0x99, 0x99 },\r
684 { 0x00, 0x9a, 0x9a },\r
685 { 0x00, 0x9b, 0x9b },\r
686 { 0x00, 0x9c, 0x9c },\r
687 { 0x00, 0x9d, 0x9d },\r
688 { 0x00, 0x9e, 0x9e },\r
689 { 0x00, 0x9f, 0x9f },\r
690 { 0x00, 0xa0, 0xa0 },\r
691 { 0x00, 0xa1, 0xa1 },\r
692 { 0x00, 0xa2, 0xa2 },\r
693 { 0x00, 0xa3, 0xa3 },\r
694 { 0x00, 0xa4, 0xa4 },\r
695 { 0x00, 0xa5, 0xa5 },\r
696 { 0x00, 0xa6, 0xa6 },\r
697 { 0x00, 0xa7, 0xa7 },\r
698 { 0x00, 0xa8, 0xa8 },\r
699 { 0x00, 0xa9, 0xa9 },\r
700 { 0x00, 0xaa, 0xaa },\r
701 { 0x00, 0xab, 0xab },\r
702 { 0x00, 0xac, 0xac },\r
703 { 0x00, 0xad, 0xad },\r
704 { 0x00, 0xae, 0xae },\r
705 { 0x00, 0xaf, 0xaf },\r
706 { 0x00, 0xb0, 0xb0 },\r
707 { 0x00, 0xb1, 0xb1 },\r
708 { 0x00, 0xb2, 0xb2 },\r
709 { 0x00, 0xb3, 0xb3 },\r
710 { 0x00, 0xb4, 0xb4 },\r
711 { 0x00, 0xb5, 0xb5 },\r
712 { 0x00, 0xb6, 0xb6 },\r
713 { 0x00, 0xb7, 0xb7 },\r
714 { 0x00, 0xb8, 0xb8 },\r
715 { 0x00, 0xb9, 0xb9 },\r
716 { 0x00, 0xba, 0xba },\r
717 { 0x00, 0xbb, 0xbb },\r
718 { 0x00, 0xbc, 0xbc },\r
719 { 0x00, 0xbd, 0xbd },\r
720 { 0x00, 0xbe, 0xbe },\r
721 { 0x00, 0xbf, 0xbf },\r
722 { 0x01, 0xe0, 0xc0 },\r
723 { 0x01, 0xe1, 0xc1 },\r
724 { 0x01, 0xe2, 0xc2 },\r
725 { 0x01, 0xe3, 0xc3 },\r
726 { 0x01, 0xe4, 0xc4 },\r
727 { 0x01, 0xe5, 0xc5 },\r
728 { 0x01, 0xe6, 0xc6 },\r
729 { 0x01, 0xe7, 0xc7 },\r
730 { 0x01, 0xe8, 0xc8 },\r
731 { 0x01, 0xe9, 0xc9 },\r
732 { 0x01, 0xea, 0xca },\r
733 { 0x01, 0xeb, 0xcb },\r
734 { 0x01, 0xec, 0xcc },\r
735 { 0x01, 0xed, 0xcd },\r
736 { 0x01, 0xee, 0xce },\r
737 { 0x01, 0xef, 0xcf },\r
738 { 0x01, 0xf0, 0xd0 },\r
739 { 0x01, 0xf1, 0xd1 },\r
740 { 0x01, 0xf2, 0xd2 },\r
741 { 0x01, 0xf3, 0xd3 },\r
742 { 0x01, 0xf4, 0xd4 },\r
743 { 0x01, 0xf5, 0xd5 },\r
744 { 0x01, 0xf6, 0xd6 },\r
745 { 0x00, 0xd7, 0xd7 },\r
746 { 0x01, 0xf8, 0xd8 },\r
747 { 0x01, 0xf9, 0xd9 },\r
748 { 0x01, 0xfa, 0xda },\r
749 { 0x01, 0xfb, 0xdb },\r
750 { 0x01, 0xfc, 0xdc },\r
751 { 0x01, 0xfd, 0xdd },\r
752 { 0x01, 0xfe, 0xde },\r
753 { 0x00, 0xdf, 0xdf },\r
754 { 0x00, 0xe0, 0xc0 },\r
755 { 0x00, 0xe1, 0xc1 },\r
756 { 0x00, 0xe2, 0xc2 },\r
757 { 0x00, 0xe3, 0xc3 },\r
758 { 0x00, 0xe4, 0xc4 },\r
759 { 0x00, 0xe5, 0xc5 },\r
760 { 0x00, 0xe6, 0xc6 },\r
761 { 0x00, 0xe7, 0xc7 },\r
762 { 0x00, 0xe8, 0xc8 },\r
763 { 0x00, 0xe9, 0xc9 },\r
764 { 0x00, 0xea, 0xca },\r
765 { 0x00, 0xeb, 0xcb },\r
766 { 0x00, 0xec, 0xcc },\r
767 { 0x00, 0xed, 0xcd },\r
768 { 0x00, 0xee, 0xce },\r
769 { 0x00, 0xef, 0xcf },\r
770 { 0x00, 0xf0, 0xd0 },\r
771 { 0x00, 0xf1, 0xd1 },\r
772 { 0x00, 0xf2, 0xd2 },\r
773 { 0x00, 0xf3, 0xd3 },\r
774 { 0x00, 0xf4, 0xd4 },\r
775 { 0x00, 0xf5, 0xd5 },\r
776 { 0x00, 0xf6, 0xd6 },\r
777 { 0x00, 0xf7, 0xf7 },\r
778 { 0x00, 0xf8, 0xd8 },\r
779 { 0x00, 0xf9, 0xd9 },\r
780 { 0x00, 0xfa, 0xda },\r
781 { 0x00, 0xfb, 0xdb },\r
782 { 0x00, 0xfc, 0xdc },\r
783 { 0x00, 0xfd, 0xdd },\r
784 { 0x00, 0xfe, 0xde },\r
785 { 0x00, 0xff, 0xff },\r
786 };\r
787 \r
788 \r
789 struct cs_info iso2_tbl[] = {\r
790 { 0x00, 0x00, 0x00 },\r
791 { 0x00, 0x01, 0x01 },\r
792 { 0x00, 0x02, 0x02 },\r
793 { 0x00, 0x03, 0x03 },\r
794 { 0x00, 0x04, 0x04 },\r
795 { 0x00, 0x05, 0x05 },\r
796 { 0x00, 0x06, 0x06 },\r
797 { 0x00, 0x07, 0x07 },\r
798 { 0x00, 0x08, 0x08 },\r
799 { 0x00, 0x09, 0x09 },\r
800 { 0x00, 0x0a, 0x0a },\r
801 { 0x00, 0x0b, 0x0b },\r
802 { 0x00, 0x0c, 0x0c },\r
803 { 0x00, 0x0d, 0x0d },\r
804 { 0x00, 0x0e, 0x0e },\r
805 { 0x00, 0x0f, 0x0f },\r
806 { 0x00, 0x10, 0x10 },\r
807 { 0x00, 0x11, 0x11 },\r
808 { 0x00, 0x12, 0x12 },\r
809 { 0x00, 0x13, 0x13 },\r
810 { 0x00, 0x14, 0x14 },\r
811 { 0x00, 0x15, 0x15 },\r
812 { 0x00, 0x16, 0x16 },\r
813 { 0x00, 0x17, 0x17 },\r
814 { 0x00, 0x18, 0x18 },\r
815 { 0x00, 0x19, 0x19 },\r
816 { 0x00, 0x1a, 0x1a },\r
817 { 0x00, 0x1b, 0x1b },\r
818 { 0x00, 0x1c, 0x1c },\r
819 { 0x00, 0x1d, 0x1d },\r
820 { 0x00, 0x1e, 0x1e },\r
821 { 0x00, 0x1f, 0x1f },\r
822 { 0x00, 0x20, 0x20 },\r
823 { 0x00, 0x21, 0x21 },\r
824 { 0x00, 0x22, 0x22 },\r
825 { 0x00, 0x23, 0x23 },\r
826 { 0x00, 0x24, 0x24 },\r
827 { 0x00, 0x25, 0x25 },\r
828 { 0x00, 0x26, 0x26 },\r
829 { 0x00, 0x27, 0x27 },\r
830 { 0x00, 0x28, 0x28 },\r
831 { 0x00, 0x29, 0x29 },\r
832 { 0x00, 0x2a, 0x2a },\r
833 { 0x00, 0x2b, 0x2b },\r
834 { 0x00, 0x2c, 0x2c },\r
835 { 0x00, 0x2d, 0x2d },\r
836 { 0x00, 0x2e, 0x2e },\r
837 { 0x00, 0x2f, 0x2f },\r
838 { 0x00, 0x30, 0x30 },\r
839 { 0x00, 0x31, 0x31 },\r
840 { 0x00, 0x32, 0x32 },\r
841 { 0x00, 0x33, 0x33 },\r
842 { 0x00, 0x34, 0x34 },\r
843 { 0x00, 0x35, 0x35 },\r
844 { 0x00, 0x36, 0x36 },\r
845 { 0x00, 0x37, 0x37 },\r
846 { 0x00, 0x38, 0x38 },\r
847 { 0x00, 0x39, 0x39 },\r
848 { 0x00, 0x3a, 0x3a },\r
849 { 0x00, 0x3b, 0x3b },\r
850 { 0x00, 0x3c, 0x3c },\r
851 { 0x00, 0x3d, 0x3d },\r
852 { 0x00, 0x3e, 0x3e },\r
853 { 0x00, 0x3f, 0x3f },\r
854 { 0x00, 0x40, 0x40 },\r
855 { 0x01, 0x61, 0x41 },\r
856 { 0x01, 0x62, 0x42 },\r
857 { 0x01, 0x63, 0x43 },\r
858 { 0x01, 0x64, 0x44 },\r
859 { 0x01, 0x65, 0x45 },\r
860 { 0x01, 0x66, 0x46 },\r
861 { 0x01, 0x67, 0x47 },\r
862 { 0x01, 0x68, 0x48 },\r
863 { 0x01, 0x69, 0x49 },\r
864 { 0x01, 0x6a, 0x4a },\r
865 { 0x01, 0x6b, 0x4b },\r
866 { 0x01, 0x6c, 0x4c },\r
867 { 0x01, 0x6d, 0x4d },\r
868 { 0x01, 0x6e, 0x4e },\r
869 { 0x01, 0x6f, 0x4f },\r
870 { 0x01, 0x70, 0x50 },\r
871 { 0x01, 0x71, 0x51 },\r
872 { 0x01, 0x72, 0x52 },\r
873 { 0x01, 0x73, 0x53 },\r
874 { 0x01, 0x74, 0x54 },\r
875 { 0x01, 0x75, 0x55 },\r
876 { 0x01, 0x76, 0x56 },\r
877 { 0x01, 0x77, 0x57 },\r
878 { 0x01, 0x78, 0x58 },\r
879 { 0x01, 0x79, 0x59 },\r
880 { 0x01, 0x7a, 0x5a },\r
881 { 0x00, 0x5b, 0x5b },\r
882 { 0x00, 0x5c, 0x5c },\r
883 { 0x00, 0x5d, 0x5d },\r
884 { 0x00, 0x5e, 0x5e },\r
885 { 0x00, 0x5f, 0x5f },\r
886 { 0x00, 0x60, 0x60 },\r
887 { 0x00, 0x61, 0x41 },\r
888 { 0x00, 0x62, 0x42 },\r
889 { 0x00, 0x63, 0x43 },\r
890 { 0x00, 0x64, 0x44 },\r
891 { 0x00, 0x65, 0x45 },\r
892 { 0x00, 0x66, 0x46 },\r
893 { 0x00, 0x67, 0x47 },\r
894 { 0x00, 0x68, 0x48 },\r
895 { 0x00, 0x69, 0x49 },\r
896 { 0x00, 0x6a, 0x4a },\r
897 { 0x00, 0x6b, 0x4b },\r
898 { 0x00, 0x6c, 0x4c },\r
899 { 0x00, 0x6d, 0x4d },\r
900 { 0x00, 0x6e, 0x4e },\r
901 { 0x00, 0x6f, 0x4f },\r
902 { 0x00, 0x70, 0x50 },\r
903 { 0x00, 0x71, 0x51 },\r
904 { 0x00, 0x72, 0x52 },\r
905 { 0x00, 0x73, 0x53 },\r
906 { 0x00, 0x74, 0x54 },\r
907 { 0x00, 0x75, 0x55 },\r
908 { 0x00, 0x76, 0x56 },\r
909 { 0x00, 0x77, 0x57 },\r
910 { 0x00, 0x78, 0x58 },\r
911 { 0x00, 0x79, 0x59 },\r
912 { 0x00, 0x7a, 0x5a },\r
913 { 0x00, 0x7b, 0x7b },\r
914 { 0x00, 0x7c, 0x7c },\r
915 { 0x00, 0x7d, 0x7d },\r
916 { 0x00, 0x7e, 0x7e },\r
917 { 0x00, 0x7f, 0x7f },\r
918 { 0x00, 0x80, 0x80 },\r
919 { 0x00, 0x81, 0x81 },\r
920 { 0x00, 0x82, 0x82 },\r
921 { 0x00, 0x83, 0x83 },\r
922 { 0x00, 0x84, 0x84 },\r
923 { 0x00, 0x85, 0x85 },\r
924 { 0x00, 0x86, 0x86 },\r
925 { 0x00, 0x87, 0x87 },\r
926 { 0x00, 0x88, 0x88 },\r
927 { 0x00, 0x89, 0x89 },\r
928 { 0x00, 0x8a, 0x8a },\r
929 { 0x00, 0x8b, 0x8b },\r
930 { 0x00, 0x8c, 0x8c },\r
931 { 0x00, 0x8d, 0x8d },\r
932 { 0x00, 0x8e, 0x8e },\r
933 { 0x00, 0x8f, 0x8f },\r
934 { 0x00, 0x90, 0x90 },\r
935 { 0x00, 0x91, 0x91 },\r
936 { 0x00, 0x92, 0x92 },\r
937 { 0x00, 0x93, 0x93 },\r
938 { 0x00, 0x94, 0x94 },\r
939 { 0x00, 0x95, 0x95 },\r
940 { 0x00, 0x96, 0x96 },\r
941 { 0x00, 0x97, 0x97 },\r
942 { 0x00, 0x98, 0x98 },\r
943 { 0x00, 0x99, 0x99 },\r
944 { 0x00, 0x9a, 0x9a },\r
945 { 0x00, 0x9b, 0x9b },\r
946 { 0x00, 0x9c, 0x9c },\r
947 { 0x00, 0x9d, 0x9d },\r
948 { 0x00, 0x9e, 0x9e },\r
949 { 0x00, 0x9f, 0x9f },\r
950 { 0x00, 0xa0, 0xa0 },\r
951 { 0x01, 0xb1, 0xa1 },\r
952 { 0x00, 0xa2, 0xa2 },\r
953 { 0x01, 0xb3, 0xa3 },\r
954 { 0x00, 0xa4, 0xa4 },\r
955 { 0x01, 0xb5, 0xa5 },\r
956 { 0x01, 0xb6, 0xa6 },\r
957 { 0x00, 0xa7, 0xa7 },\r
958 { 0x00, 0xa8, 0xa8 },\r
959 { 0x01, 0xb9, 0xa9 },\r
960 { 0x01, 0xba, 0xaa },\r
961 { 0x01, 0xbb, 0xab },\r
962 { 0x01, 0xbc, 0xac },\r
963 { 0x00, 0xad, 0xad },\r
964 { 0x01, 0xbe, 0xae },\r
965 { 0x01, 0xbf, 0xaf },\r
966 { 0x00, 0xb0, 0xb0 },\r
967 { 0x00, 0xb1, 0xa1 },\r
968 { 0x00, 0xb2, 0xb2 },\r
969 { 0x00, 0xb3, 0xa3 },\r
970 { 0x00, 0xb4, 0xb4 },\r
971 { 0x00, 0xb5, 0xa5 },\r
972 { 0x00, 0xb6, 0xa6 },\r
973 { 0x00, 0xb7, 0xb7 },\r
974 { 0x00, 0xb8, 0xb8 },\r
975 { 0x00, 0xb9, 0xa9 },\r
976 { 0x00, 0xba, 0xaa },\r
977 { 0x00, 0xbb, 0xab },\r
978 { 0x00, 0xbc, 0xac },\r
979 { 0x00, 0xbd, 0xbd },\r
980 { 0x00, 0xbe, 0xae },\r
981 { 0x00, 0xbf, 0xaf },\r
982 { 0x01, 0xe0, 0xc0 },\r
983 { 0x01, 0xe1, 0xc1 },\r
984 { 0x01, 0xe2, 0xc2 },\r
985 { 0x01, 0xe3, 0xc3 },\r
986 { 0x01, 0xe4, 0xc4 },\r
987 { 0x01, 0xe5, 0xc5 },\r
988 { 0x01, 0xe6, 0xc6 },\r
989 { 0x01, 0xe7, 0xc7 },\r
990 { 0x01, 0xe8, 0xc8 },\r
991 { 0x01, 0xe9, 0xc9 },\r
992 { 0x01, 0xea, 0xca },\r
993 { 0x01, 0xeb, 0xcb },\r
994 { 0x01, 0xec, 0xcc },\r
995 { 0x01, 0xed, 0xcd },\r
996 { 0x01, 0xee, 0xce },\r
997 { 0x01, 0xef, 0xcf },\r
998 { 0x01, 0xf0, 0xd0 },\r
999 { 0x01, 0xf1, 0xd1 },\r
1000 { 0x01, 0xf2, 0xd2 },\r
1001 { 0x01, 0xf3, 0xd3 },\r
1002 { 0x01, 0xf4, 0xd4 },\r
1003 { 0x01, 0xf5, 0xd5 },\r
1004 { 0x01, 0xf6, 0xd6 },\r
1005 { 0x00, 0xd7, 0xd7 },\r
1006 { 0x01, 0xf8, 0xd8 },\r
1007 { 0x01, 0xf9, 0xd9 },\r
1008 { 0x01, 0xfa, 0xda },\r
1009 { 0x01, 0xfb, 0xdb },\r
1010 { 0x01, 0xfc, 0xdc },\r
1011 { 0x01, 0xfd, 0xdd },\r
1012 { 0x01, 0xfe, 0xde },\r
1013 { 0x00, 0xdf, 0xdf },\r
1014 { 0x00, 0xe0, 0xc0 },\r
1015 { 0x00, 0xe1, 0xc1 },\r
1016 { 0x00, 0xe2, 0xc2 },\r
1017 { 0x00, 0xe3, 0xc3 },\r
1018 { 0x00, 0xe4, 0xc4 },\r
1019 { 0x00, 0xe5, 0xc5 },\r
1020 { 0x00, 0xe6, 0xc6 },\r
1021 { 0x00, 0xe7, 0xc7 },\r
1022 { 0x00, 0xe8, 0xc8 },\r
1023 { 0x00, 0xe9, 0xc9 },\r
1024 { 0x00, 0xea, 0xca },\r
1025 { 0x00, 0xeb, 0xcb },\r
1026 { 0x00, 0xec, 0xcc },\r
1027 { 0x00, 0xed, 0xcd },\r
1028 { 0x00, 0xee, 0xce },\r
1029 { 0x00, 0xef, 0xcf },\r
1030 { 0x00, 0xf0, 0xd0 },\r
1031 { 0x00, 0xf1, 0xd1 },\r
1032 { 0x00, 0xf2, 0xd2 },\r
1033 { 0x00, 0xf3, 0xd3 },\r
1034 { 0x00, 0xf4, 0xd4 },\r
1035 { 0x00, 0xf5, 0xd5 },\r
1036 { 0x00, 0xf6, 0xd6 },\r
1037 { 0x00, 0xf7, 0xf7 },\r
1038 { 0x00, 0xf8, 0xd8 },\r
1039 { 0x00, 0xf9, 0xd9 },\r
1040 { 0x00, 0xfa, 0xda },\r
1041 { 0x00, 0xfb, 0xdb },\r
1042 { 0x00, 0xfc, 0xdc },\r
1043 { 0x00, 0xfd, 0xdd },\r
1044 { 0x00, 0xfe, 0xde },\r
1045 { 0x00, 0xff, 0xff },\r
1046 };\r
1047 \r
1048 \r
1049 struct cs_info iso3_tbl[] = {\r
1050 { 0x00, 0x00, 0x00 },\r
1051 { 0x00, 0x01, 0x01 },\r
1052 { 0x00, 0x02, 0x02 },\r
1053 { 0x00, 0x03, 0x03 },\r
1054 { 0x00, 0x04, 0x04 },\r
1055 { 0x00, 0x05, 0x05 },\r
1056 { 0x00, 0x06, 0x06 },\r
1057 { 0x00, 0x07, 0x07 },\r
1058 { 0x00, 0x08, 0x08 },\r
1059 { 0x00, 0x09, 0x09 },\r
1060 { 0x00, 0x0a, 0x0a },\r
1061 { 0x00, 0x0b, 0x0b },\r
1062 { 0x00, 0x0c, 0x0c },\r
1063 { 0x00, 0x0d, 0x0d },\r
1064 { 0x00, 0x0e, 0x0e },\r
1065 { 0x00, 0x0f, 0x0f },\r
1066 { 0x00, 0x10, 0x10 },\r
1067 { 0x00, 0x11, 0x11 },\r
1068 { 0x00, 0x12, 0x12 },\r
1069 { 0x00, 0x13, 0x13 },\r
1070 { 0x00, 0x14, 0x14 },\r
1071 { 0x00, 0x15, 0x15 },\r
1072 { 0x00, 0x16, 0x16 },\r
1073 { 0x00, 0x17, 0x17 },\r
1074 { 0x00, 0x18, 0x18 },\r
1075 { 0x00, 0x19, 0x19 },\r
1076 { 0x00, 0x1a, 0x1a },\r
1077 { 0x00, 0x1b, 0x1b },\r
1078 { 0x00, 0x1c, 0x1c },\r
1079 { 0x00, 0x1d, 0x1d },\r
1080 { 0x00, 0x1e, 0x1e },\r
1081 { 0x00, 0x1f, 0x1f },\r
1082 { 0x00, 0x20, 0x20 },\r
1083 { 0x00, 0x21, 0x21 },\r
1084 { 0x00, 0x22, 0x22 },\r
1085 { 0x00, 0x23, 0x23 },\r
1086 { 0x00, 0x24, 0x24 },\r
1087 { 0x00, 0x25, 0x25 },\r
1088 { 0x00, 0x26, 0x26 },\r
1089 { 0x00, 0x27, 0x27 },\r
1090 { 0x00, 0x28, 0x28 },\r
1091 { 0x00, 0x29, 0x29 },\r
1092 { 0x00, 0x2a, 0x2a },\r
1093 { 0x00, 0x2b, 0x2b },\r
1094 { 0x00, 0x2c, 0x2c },\r
1095 { 0x00, 0x2d, 0x2d },\r
1096 { 0x00, 0x2e, 0x2e },\r
1097 { 0x00, 0x2f, 0x2f },\r
1098 { 0x00, 0x30, 0x30 },\r
1099 { 0x00, 0x31, 0x31 },\r
1100 { 0x00, 0x32, 0x32 },\r
1101 { 0x00, 0x33, 0x33 },\r
1102 { 0x00, 0x34, 0x34 },\r
1103 { 0x00, 0x35, 0x35 },\r
1104 { 0x00, 0x36, 0x36 },\r
1105 { 0x00, 0x37, 0x37 },\r
1106 { 0x00, 0x38, 0x38 },\r
1107 { 0x00, 0x39, 0x39 },\r
1108 { 0x00, 0x3a, 0x3a },\r
1109 { 0x00, 0x3b, 0x3b },\r
1110 { 0x00, 0x3c, 0x3c },\r
1111 { 0x00, 0x3d, 0x3d },\r
1112 { 0x00, 0x3e, 0x3e },\r
1113 { 0x00, 0x3f, 0x3f },\r
1114 { 0x00, 0x40, 0x40 },\r
1115 { 0x01, 0x61, 0x41 },\r
1116 { 0x01, 0x62, 0x42 },\r
1117 { 0x01, 0x63, 0x43 },\r
1118 { 0x01, 0x64, 0x44 },\r
1119 { 0x01, 0x65, 0x45 },\r
1120 { 0x01, 0x66, 0x46 },\r
1121 { 0x01, 0x67, 0x47 },\r
1122 { 0x01, 0x68, 0x48 },\r
1123 { 0x01, 0x69, 0x49 },\r
1124 { 0x01, 0x6a, 0x4a },\r
1125 { 0x01, 0x6b, 0x4b },\r
1126 { 0x01, 0x6c, 0x4c },\r
1127 { 0x01, 0x6d, 0x4d },\r
1128 { 0x01, 0x6e, 0x4e },\r
1129 { 0x01, 0x6f, 0x4f },\r
1130 { 0x01, 0x70, 0x50 },\r
1131 { 0x01, 0x71, 0x51 },\r
1132 { 0x01, 0x72, 0x52 },\r
1133 { 0x01, 0x73, 0x53 },\r
1134 { 0x01, 0x74, 0x54 },\r
1135 { 0x01, 0x75, 0x55 },\r
1136 { 0x01, 0x76, 0x56 },\r
1137 { 0x01, 0x77, 0x57 },\r
1138 { 0x01, 0x78, 0x58 },\r
1139 { 0x01, 0x79, 0x59 },\r
1140 { 0x01, 0x7a, 0x5a },\r
1141 { 0x00, 0x5b, 0x5b },\r
1142 { 0x00, 0x5c, 0x5c },\r
1143 { 0x00, 0x5d, 0x5d },\r
1144 { 0x00, 0x5e, 0x5e },\r
1145 { 0x00, 0x5f, 0x5f },\r
1146 { 0x00, 0x60, 0x60 },\r
1147 { 0x00, 0x61, 0x41 },\r
1148 { 0x00, 0x62, 0x42 },\r
1149 { 0x00, 0x63, 0x43 },\r
1150 { 0x00, 0x64, 0x44 },\r
1151 { 0x00, 0x65, 0x45 },\r
1152 { 0x00, 0x66, 0x46 },\r
1153 { 0x00, 0x67, 0x47 },\r
1154 { 0x00, 0x68, 0x48 },\r
1155 { 0x00, 0x69, 0x49 },\r
1156 { 0x00, 0x6a, 0x4a },\r
1157 { 0x00, 0x6b, 0x4b },\r
1158 { 0x00, 0x6c, 0x4c },\r
1159 { 0x00, 0x6d, 0x4d },\r
1160 { 0x00, 0x6e, 0x4e },\r
1161 { 0x00, 0x6f, 0x4f },\r
1162 { 0x00, 0x70, 0x50 },\r
1163 { 0x00, 0x71, 0x51 },\r
1164 { 0x00, 0x72, 0x52 },\r
1165 { 0x00, 0x73, 0x53 },\r
1166 { 0x00, 0x74, 0x54 },\r
1167 { 0x00, 0x75, 0x55 },\r
1168 { 0x00, 0x76, 0x56 },\r
1169 { 0x00, 0x77, 0x57 },\r
1170 { 0x00, 0x78, 0x58 },\r
1171 { 0x00, 0x79, 0x59 },\r
1172 { 0x00, 0x7a, 0x5a },\r
1173 { 0x00, 0x7b, 0x7b },\r
1174 { 0x00, 0x7c, 0x7c },\r
1175 { 0x00, 0x7d, 0x7d },\r
1176 { 0x00, 0x7e, 0x7e },\r
1177 { 0x00, 0x7f, 0x7f },\r
1178 { 0x00, 0x80, 0x80 },\r
1179 { 0x00, 0x81, 0x81 },\r
1180 { 0x00, 0x82, 0x82 },\r
1181 { 0x00, 0x83, 0x83 },\r
1182 { 0x00, 0x84, 0x84 },\r
1183 { 0x00, 0x85, 0x85 },\r
1184 { 0x00, 0x86, 0x86 },\r
1185 { 0x00, 0x87, 0x87 },\r
1186 { 0x00, 0x88, 0x88 },\r
1187 { 0x00, 0x89, 0x89 },\r
1188 { 0x00, 0x8a, 0x8a },\r
1189 { 0x00, 0x8b, 0x8b },\r
1190 { 0x00, 0x8c, 0x8c },\r
1191 { 0x00, 0x8d, 0x8d },\r
1192 { 0x00, 0x8e, 0x8e },\r
1193 { 0x00, 0x8f, 0x8f },\r
1194 { 0x00, 0x90, 0x90 },\r
1195 { 0x00, 0x91, 0x91 },\r
1196 { 0x00, 0x92, 0x92 },\r
1197 { 0x00, 0x93, 0x93 },\r
1198 { 0x00, 0x94, 0x94 },\r
1199 { 0x00, 0x95, 0x95 },\r
1200 { 0x00, 0x96, 0x96 },\r
1201 { 0x00, 0x97, 0x97 },\r
1202 { 0x00, 0x98, 0x98 },\r
1203 { 0x00, 0x99, 0x99 },\r
1204 { 0x00, 0x9a, 0x9a },\r
1205 { 0x00, 0x9b, 0x9b },\r
1206 { 0x00, 0x9c, 0x9c },\r
1207 { 0x00, 0x9d, 0x9d },\r
1208 { 0x00, 0x9e, 0x9e },\r
1209 { 0x00, 0x9f, 0x9f },\r
1210 { 0x00, 0xa0, 0xa0 },\r
1211 { 0x01, 0xb1, 0xa1 },\r
1212 { 0x00, 0xa2, 0xa2 },\r
1213 { 0x00, 0xa3, 0xa3 },\r
1214 { 0x00, 0xa4, 0xa4 },\r
1215 { 0x00, 0xa5, 0xa5 },\r
1216 { 0x01, 0xb6, 0xa6 },\r
1217 { 0x00, 0xa7, 0xa7 },\r
1218 { 0x00, 0xa8, 0xa8 },\r
1219 { 0x01, 0x69, 0xa9 },\r
1220 { 0x01, 0xba, 0xaa },\r
1221 { 0x01, 0xbb, 0xab },\r
1222 { 0x01, 0xbc, 0xac },\r
1223 { 0x00, 0xad, 0xad },\r
1224 { 0x00, 0xae, 0xae },\r
1225 { 0x01, 0xbf, 0xaf },\r
1226 { 0x00, 0xb0, 0xb0 },\r
1227 { 0x00, 0xb1, 0xa1 },\r
1228 { 0x00, 0xb2, 0xb2 },\r
1229 { 0x00, 0xb3, 0xb3 },\r
1230 { 0x00, 0xb4, 0xb4 },\r
1231 { 0x00, 0xb5, 0xb5 },\r
1232 { 0x00, 0xb6, 0xa6 },\r
1233 { 0x00, 0xb7, 0xb7 },\r
1234 { 0x00, 0xb8, 0xb8 },\r
1235 { 0x00, 0xb9, 0x49 },\r
1236 { 0x00, 0xba, 0xaa },\r
1237 { 0x00, 0xbb, 0xab },\r
1238 { 0x00, 0xbc, 0xac },\r
1239 { 0x00, 0xbd, 0xbd },\r
1240 { 0x00, 0xbe, 0xbe },\r
1241 { 0x00, 0xbf, 0xaf },\r
1242 { 0x01, 0xe0, 0xc0 },\r
1243 { 0x01, 0xe1, 0xc1 },\r
1244 { 0x01, 0xe2, 0xc2 },\r
1245 { 0x00, 0xc3, 0xc3 },\r
1246 { 0x01, 0xe4, 0xc4 },\r
1247 { 0x01, 0xe5, 0xc5 },\r
1248 { 0x01, 0xe6, 0xc6 },\r
1249 { 0x01, 0xe7, 0xc7 },\r
1250 { 0x01, 0xe8, 0xc8 },\r
1251 { 0x01, 0xe9, 0xc9 },\r
1252 { 0x01, 0xea, 0xca },\r
1253 { 0x01, 0xeb, 0xcb },\r
1254 { 0x01, 0xec, 0xcc },\r
1255 { 0x01, 0xed, 0xcd },\r
1256 { 0x01, 0xee, 0xce },\r
1257 { 0x01, 0xef, 0xcf },\r
1258 { 0x00, 0xd0, 0xd0 },\r
1259 { 0x01, 0xf1, 0xd1 },\r
1260 { 0x01, 0xf2, 0xd2 },\r
1261 { 0x01, 0xf3, 0xd3 },\r
1262 { 0x01, 0xf4, 0xd4 },\r
1263 { 0x01, 0xf5, 0xd5 },\r
1264 { 0x01, 0xf6, 0xd6 },\r
1265 { 0x00, 0xd7, 0xd7 },\r
1266 { 0x01, 0xf8, 0xd8 },\r
1267 { 0x01, 0xf9, 0xd9 },\r
1268 { 0x01, 0xfa, 0xda },\r
1269 { 0x01, 0xfb, 0xdb },\r
1270 { 0x01, 0xfc, 0xdc },\r
1271 { 0x01, 0xfd, 0xdd },\r
1272 { 0x01, 0xfe, 0xde },\r
1273 { 0x00, 0xdf, 0xdf },\r
1274 { 0x00, 0xe0, 0xc0 },\r
1275 { 0x00, 0xe1, 0xc1 },\r
1276 { 0x00, 0xe2, 0xc2 },\r
1277 { 0x00, 0xe3, 0xe3 },\r
1278 { 0x00, 0xe4, 0xc4 },\r
1279 { 0x00, 0xe5, 0xc5 },\r
1280 { 0x00, 0xe6, 0xc6 },\r
1281 { 0x00, 0xe7, 0xc7 },\r
1282 { 0x00, 0xe8, 0xc8 },\r
1283 { 0x00, 0xe9, 0xc9 },\r
1284 { 0x00, 0xea, 0xca },\r
1285 { 0x00, 0xeb, 0xcb },\r
1286 { 0x00, 0xec, 0xcc },\r
1287 { 0x00, 0xed, 0xcd },\r
1288 { 0x00, 0xee, 0xce },\r
1289 { 0x00, 0xef, 0xcf },\r
1290 { 0x00, 0xf0, 0xf0 },\r
1291 { 0x00, 0xf1, 0xd1 },\r
1292 { 0x00, 0xf2, 0xd2 },\r
1293 { 0x00, 0xf3, 0xd3 },\r
1294 { 0x00, 0xf4, 0xd4 },\r
1295 { 0x00, 0xf5, 0xd5 },\r
1296 { 0x00, 0xf6, 0xd6 },\r
1297 { 0x00, 0xf7, 0xf7 },\r
1298 { 0x00, 0xf8, 0xd8 },\r
1299 { 0x00, 0xf9, 0xd9 },\r
1300 { 0x00, 0xfa, 0xda },\r
1301 { 0x00, 0xfb, 0xdb },\r
1302 { 0x00, 0xfc, 0xdc },\r
1303 { 0x00, 0xfd, 0xdd },\r
1304 { 0x00, 0xfe, 0xde },\r
1305 { 0x00, 0xff, 0xff },\r
1306 };\r
1307 \r
1308 struct cs_info iso4_tbl[] = {\r
1309 { 0x00, 0x00, 0x00 },\r
1310 { 0x00, 0x01, 0x01 },\r
1311 { 0x00, 0x02, 0x02 },\r
1312 { 0x00, 0x03, 0x03 },\r
1313 { 0x00, 0x04, 0x04 },\r
1314 { 0x00, 0x05, 0x05 },\r
1315 { 0x00, 0x06, 0x06 },\r
1316 { 0x00, 0x07, 0x07 },\r
1317 { 0x00, 0x08, 0x08 },\r
1318 { 0x00, 0x09, 0x09 },\r
1319 { 0x00, 0x0a, 0x0a },\r
1320 { 0x00, 0x0b, 0x0b },\r
1321 { 0x00, 0x0c, 0x0c },\r
1322 { 0x00, 0x0d, 0x0d },\r
1323 { 0x00, 0x0e, 0x0e },\r
1324 { 0x00, 0x0f, 0x0f },\r
1325 { 0x00, 0x10, 0x10 },\r
1326 { 0x00, 0x11, 0x11 },\r
1327 { 0x00, 0x12, 0x12 },\r
1328 { 0x00, 0x13, 0x13 },\r
1329 { 0x00, 0x14, 0x14 },\r
1330 { 0x00, 0x15, 0x15 },\r
1331 { 0x00, 0x16, 0x16 },\r
1332 { 0x00, 0x17, 0x17 },\r
1333 { 0x00, 0x18, 0x18 },\r
1334 { 0x00, 0x19, 0x19 },\r
1335 { 0x00, 0x1a, 0x1a },\r
1336 { 0x00, 0x1b, 0x1b },\r
1337 { 0x00, 0x1c, 0x1c },\r
1338 { 0x00, 0x1d, 0x1d },\r
1339 { 0x00, 0x1e, 0x1e },\r
1340 { 0x00, 0x1f, 0x1f },\r
1341 { 0x00, 0x20, 0x20 },\r
1342 { 0x00, 0x21, 0x21 },\r
1343 { 0x00, 0x22, 0x22 },\r
1344 { 0x00, 0x23, 0x23 },\r
1345 { 0x00, 0x24, 0x24 },\r
1346 { 0x00, 0x25, 0x25 },\r
1347 { 0x00, 0x26, 0x26 },\r
1348 { 0x00, 0x27, 0x27 },\r
1349 { 0x00, 0x28, 0x28 },\r
1350 { 0x00, 0x29, 0x29 },\r
1351 { 0x00, 0x2a, 0x2a },\r
1352 { 0x00, 0x2b, 0x2b },\r
1353 { 0x00, 0x2c, 0x2c },\r
1354 { 0x00, 0x2d, 0x2d },\r
1355 { 0x00, 0x2e, 0x2e },\r
1356 { 0x00, 0x2f, 0x2f },\r
1357 { 0x00, 0x30, 0x30 },\r
1358 { 0x00, 0x31, 0x31 },\r
1359 { 0x00, 0x32, 0x32 },\r
1360 { 0x00, 0x33, 0x33 },\r
1361 { 0x00, 0x34, 0x34 },\r
1362 { 0x00, 0x35, 0x35 },\r
1363 { 0x00, 0x36, 0x36 },\r
1364 { 0x00, 0x37, 0x37 },\r
1365 { 0x00, 0x38, 0x38 },\r
1366 { 0x00, 0x39, 0x39 },\r
1367 { 0x00, 0x3a, 0x3a },\r
1368 { 0x00, 0x3b, 0x3b },\r
1369 { 0x00, 0x3c, 0x3c },\r
1370 { 0x00, 0x3d, 0x3d },\r
1371 { 0x00, 0x3e, 0x3e },\r
1372 { 0x00, 0x3f, 0x3f },\r
1373 { 0x00, 0x40, 0x40 },\r
1374 { 0x01, 0x61, 0x41 },\r
1375 { 0x01, 0x62, 0x42 },\r
1376 { 0x01, 0x63, 0x43 },\r
1377 { 0x01, 0x64, 0x44 },\r
1378 { 0x01, 0x65, 0x45 },\r
1379 { 0x01, 0x66, 0x46 },\r
1380 { 0x01, 0x67, 0x47 },\r
1381 { 0x01, 0x68, 0x48 },\r
1382 { 0x01, 0x69, 0x49 },\r
1383 { 0x01, 0x6a, 0x4a },\r
1384 { 0x01, 0x6b, 0x4b },\r
1385 { 0x01, 0x6c, 0x4c },\r
1386 { 0x01, 0x6d, 0x4d },\r
1387 { 0x01, 0x6e, 0x4e },\r
1388 { 0x01, 0x6f, 0x4f },\r
1389 { 0x01, 0x70, 0x50 },\r
1390 { 0x01, 0x71, 0x51 },\r
1391 { 0x01, 0x72, 0x52 },\r
1392 { 0x01, 0x73, 0x53 },\r
1393 { 0x01, 0x74, 0x54 },\r
1394 { 0x01, 0x75, 0x55 },\r
1395 { 0x01, 0x76, 0x56 },\r
1396 { 0x01, 0x77, 0x57 },\r
1397 { 0x01, 0x78, 0x58 },\r
1398 { 0x01, 0x79, 0x59 },\r
1399 { 0x01, 0x7a, 0x5a },\r
1400 { 0x00, 0x5b, 0x5b },\r
1401 { 0x00, 0x5c, 0x5c },\r
1402 { 0x00, 0x5d, 0x5d },\r
1403 { 0x00, 0x5e, 0x5e },\r
1404 { 0x00, 0x5f, 0x5f },\r
1405 { 0x00, 0x60, 0x60 },\r
1406 { 0x00, 0x61, 0x41 },\r
1407 { 0x00, 0x62, 0x42 },\r
1408 { 0x00, 0x63, 0x43 },\r
1409 { 0x00, 0x64, 0x44 },\r
1410 { 0x00, 0x65, 0x45 },\r
1411 { 0x00, 0x66, 0x46 },\r
1412 { 0x00, 0x67, 0x47 },\r
1413 { 0x00, 0x68, 0x48 },\r
1414 { 0x00, 0x69, 0x49 },\r
1415 { 0x00, 0x6a, 0x4a },\r
1416 { 0x00, 0x6b, 0x4b },\r
1417 { 0x00, 0x6c, 0x4c },\r
1418 { 0x00, 0x6d, 0x4d },\r
1419 { 0x00, 0x6e, 0x4e },\r
1420 { 0x00, 0x6f, 0x4f },\r
1421 { 0x00, 0x70, 0x50 },\r
1422 { 0x00, 0x71, 0x51 },\r
1423 { 0x00, 0x72, 0x52 },\r
1424 { 0x00, 0x73, 0x53 },\r
1425 { 0x00, 0x74, 0x54 },\r
1426 { 0x00, 0x75, 0x55 },\r
1427 { 0x00, 0x76, 0x56 },\r
1428 { 0x00, 0x77, 0x57 },\r
1429 { 0x00, 0x78, 0x58 },\r
1430 { 0x00, 0x79, 0x59 },\r
1431 { 0x00, 0x7a, 0x5a },\r
1432 { 0x00, 0x7b, 0x7b },\r
1433 { 0x00, 0x7c, 0x7c },\r
1434 { 0x00, 0x7d, 0x7d },\r
1435 { 0x00, 0x7e, 0x7e },\r
1436 { 0x00, 0x7f, 0x7f },\r
1437 { 0x00, 0x80, 0x80 },\r
1438 { 0x00, 0x81, 0x81 },\r
1439 { 0x00, 0x82, 0x82 },\r
1440 { 0x00, 0x83, 0x83 },\r
1441 { 0x00, 0x84, 0x84 },\r
1442 { 0x00, 0x85, 0x85 },\r
1443 { 0x00, 0x86, 0x86 },\r
1444 { 0x00, 0x87, 0x87 },\r
1445 { 0x00, 0x88, 0x88 },\r
1446 { 0x00, 0x89, 0x89 },\r
1447 { 0x00, 0x8a, 0x8a },\r
1448 { 0x00, 0x8b, 0x8b },\r
1449 { 0x00, 0x8c, 0x8c },\r
1450 { 0x00, 0x8d, 0x8d },\r
1451 { 0x00, 0x8e, 0x8e },\r
1452 { 0x00, 0x8f, 0x8f },\r
1453 { 0x00, 0x90, 0x90 },\r
1454 { 0x00, 0x91, 0x91 },\r
1455 { 0x00, 0x92, 0x92 },\r
1456 { 0x00, 0x93, 0x93 },\r
1457 { 0x00, 0x94, 0x94 },\r
1458 { 0x00, 0x95, 0x95 },\r
1459 { 0x00, 0x96, 0x96 },\r
1460 { 0x00, 0x97, 0x97 },\r
1461 { 0x00, 0x98, 0x98 },\r
1462 { 0x00, 0x99, 0x99 },\r
1463 { 0x00, 0x9a, 0x9a },\r
1464 { 0x00, 0x9b, 0x9b },\r
1465 { 0x00, 0x9c, 0x9c },\r
1466 { 0x00, 0x9d, 0x9d },\r
1467 { 0x00, 0x9e, 0x9e },\r
1468 { 0x00, 0x9f, 0x9f },\r
1469 { 0x00, 0xa0, 0xa0 },\r
1470 { 0x01, 0xb1, 0xa1 },\r
1471 { 0x00, 0xa2, 0xa2 },\r
1472 { 0x01, 0xb3, 0xa3 },\r
1473 { 0x00, 0xa4, 0xa4 },\r
1474 { 0x01, 0xb5, 0xa5 },\r
1475 { 0x01, 0xb6, 0xa6 },\r
1476 { 0x00, 0xa7, 0xa7 },\r
1477 { 0x00, 0xa8, 0xa8 },\r
1478 { 0x01, 0xb9, 0xa9 },\r
1479 { 0x01, 0xba, 0xaa },\r
1480 { 0x01, 0xbb, 0xab },\r
1481 { 0x01, 0xbc, 0xac },\r
1482 { 0x00, 0xad, 0xad },\r
1483 { 0x01, 0xbe, 0xae },\r
1484 { 0x00, 0xaf, 0xaf },\r
1485 { 0x00, 0xb0, 0xb0 },\r
1486 { 0x00, 0xb1, 0xa1 },\r
1487 { 0x00, 0xb2, 0xb2 },\r
1488 { 0x00, 0xb3, 0xa3 },\r
1489 { 0x00, 0xb4, 0xb4 },\r
1490 { 0x00, 0xb5, 0xa5 },\r
1491 { 0x00, 0xb6, 0xa6 },\r
1492 { 0x00, 0xb7, 0xb7 },\r
1493 { 0x00, 0xb8, 0xb8 },\r
1494 { 0x00, 0xb9, 0xa9 },\r
1495 { 0x00, 0xba, 0xaa },\r
1496 { 0x00, 0xbb, 0xab },\r
1497 { 0x00, 0xbc, 0xac },\r
1498 { 0x00, 0xbd, 0xbd },\r
1499 { 0x00, 0xbe, 0xae },\r
1500 { 0x00, 0xbf, 0xbf },\r
1501 { 0x01, 0xe0, 0xc0 },\r
1502 { 0x01, 0xe1, 0xc1 },\r
1503 { 0x01, 0xe2, 0xc2 },\r
1504 { 0x01, 0xe3, 0xc3 },\r
1505 { 0x01, 0xe4, 0xc4 },\r
1506 { 0x01, 0xe5, 0xc5 },\r
1507 { 0x01, 0xe6, 0xc6 },\r
1508 { 0x01, 0xe7, 0xc7 },\r
1509 { 0x01, 0xe8, 0xc8 },\r
1510 { 0x01, 0xe9, 0xc9 },\r
1511 { 0x01, 0xea, 0xca },\r
1512 { 0x01, 0xeb, 0xcb },\r
1513 { 0x01, 0xec, 0xcc },\r
1514 { 0x01, 0xed, 0xcd },\r
1515 { 0x01, 0xee, 0xce },\r
1516 { 0x01, 0xef, 0xcf },\r
1517 { 0x01, 0xf0, 0xd0 },\r
1518 { 0x01, 0xf1, 0xd1 },\r
1519 { 0x01, 0xf2, 0xd2 },\r
1520 { 0x01, 0xf3, 0xd3 },\r
1521 { 0x01, 0xf4, 0xd4 },\r
1522 { 0x01, 0xf5, 0xd5 },\r
1523 { 0x01, 0xf6, 0xd6 },\r
1524 { 0x00, 0xd7, 0xd7 },\r
1525 { 0x01, 0xf8, 0xd8 },\r
1526 { 0x01, 0xf9, 0xd9 },\r
1527 { 0x01, 0xfa, 0xda },\r
1528 { 0x01, 0xfb, 0xdb },\r
1529 { 0x01, 0xfc, 0xdc },\r
1530 { 0x01, 0xfd, 0xdd },\r
1531 { 0x01, 0xfe, 0xde },\r
1532 { 0x00, 0xdf, 0xdf },\r
1533 { 0x00, 0xe0, 0xc0 },\r
1534 { 0x00, 0xe1, 0xc1 },\r
1535 { 0x00, 0xe2, 0xc2 },\r
1536 { 0x00, 0xe3, 0xc3 },\r
1537 { 0x00, 0xe4, 0xc4 },\r
1538 { 0x00, 0xe5, 0xc5 },\r
1539 { 0x00, 0xe6, 0xc6 },\r
1540 { 0x00, 0xe7, 0xc7 },\r
1541 { 0x00, 0xe8, 0xc8 },\r
1542 { 0x00, 0xe9, 0xc9 },\r
1543 { 0x00, 0xea, 0xca },\r
1544 { 0x00, 0xeb, 0xcb },\r
1545 { 0x00, 0xec, 0xcc },\r
1546 { 0x00, 0xed, 0xcd },\r
1547 { 0x00, 0xee, 0xce },\r
1548 { 0x00, 0xef, 0xcf },\r
1549 { 0x00, 0xf0, 0xd0 },\r
1550 { 0x00, 0xf1, 0xd1 },\r
1551 { 0x00, 0xf2, 0xd2 },\r
1552 { 0x00, 0xf3, 0xd3 },\r
1553 { 0x00, 0xf4, 0xd4 },\r
1554 { 0x00, 0xf5, 0xd5 },\r
1555 { 0x00, 0xf6, 0xd6 },\r
1556 { 0x00, 0xf7, 0xf7 },\r
1557 { 0x00, 0xf8, 0xd8 },\r
1558 { 0x00, 0xf9, 0xd9 },\r
1559 { 0x00, 0xfa, 0xda },\r
1560 { 0x00, 0xfb, 0xdb },\r
1561 { 0x00, 0xfc, 0xdc },\r
1562 { 0x00, 0xfd, 0xdd },\r
1563 { 0x00, 0xfe, 0xde },\r
1564 { 0x00, 0xff, 0xff },\r
1565 };\r
1566 \r
1567 struct cs_info iso5_tbl[] = {\r
1568 { 0x00, 0x00, 0x00 },\r
1569 { 0x00, 0x01, 0x01 },\r
1570 { 0x00, 0x02, 0x02 },\r
1571 { 0x00, 0x03, 0x03 },\r
1572 { 0x00, 0x04, 0x04 },\r
1573 { 0x00, 0x05, 0x05 },\r
1574 { 0x00, 0x06, 0x06 },\r
1575 { 0x00, 0x07, 0x07 },\r
1576 { 0x00, 0x08, 0x08 },\r
1577 { 0x00, 0x09, 0x09 },\r
1578 { 0x00, 0x0a, 0x0a },\r
1579 { 0x00, 0x0b, 0x0b },\r
1580 { 0x00, 0x0c, 0x0c },\r
1581 { 0x00, 0x0d, 0x0d },\r
1582 { 0x00, 0x0e, 0x0e },\r
1583 { 0x00, 0x0f, 0x0f },\r
1584 { 0x00, 0x10, 0x10 },\r
1585 { 0x00, 0x11, 0x11 },\r
1586 { 0x00, 0x12, 0x12 },\r
1587 { 0x00, 0x13, 0x13 },\r
1588 { 0x00, 0x14, 0x14 },\r
1589 { 0x00, 0x15, 0x15 },\r
1590 { 0x00, 0x16, 0x16 },\r
1591 { 0x00, 0x17, 0x17 },\r
1592 { 0x00, 0x18, 0x18 },\r
1593 { 0x00, 0x19, 0x19 },\r
1594 { 0x00, 0x1a, 0x1a },\r
1595 { 0x00, 0x1b, 0x1b },\r
1596 { 0x00, 0x1c, 0x1c },\r
1597 { 0x00, 0x1d, 0x1d },\r
1598 { 0x00, 0x1e, 0x1e },\r
1599 { 0x00, 0x1f, 0x1f },\r
1600 { 0x00, 0x20, 0x20 },\r
1601 { 0x00, 0x21, 0x21 },\r
1602 { 0x00, 0x22, 0x22 },\r
1603 { 0x00, 0x23, 0x23 },\r
1604 { 0x00, 0x24, 0x24 },\r
1605 { 0x00, 0x25, 0x25 },\r
1606 { 0x00, 0x26, 0x26 },\r
1607 { 0x00, 0x27, 0x27 },\r
1608 { 0x00, 0x28, 0x28 },\r
1609 { 0x00, 0x29, 0x29 },\r
1610 { 0x00, 0x2a, 0x2a },\r
1611 { 0x00, 0x2b, 0x2b },\r
1612 { 0x00, 0x2c, 0x2c },\r
1613 { 0x00, 0x2d, 0x2d },\r
1614 { 0x00, 0x2e, 0x2e },\r
1615 { 0x00, 0x2f, 0x2f },\r
1616 { 0x00, 0x30, 0x30 },\r
1617 { 0x00, 0x31, 0x31 },\r
1618 { 0x00, 0x32, 0x32 },\r
1619 { 0x00, 0x33, 0x33 },\r
1620 { 0x00, 0x34, 0x34 },\r
1621 { 0x00, 0x35, 0x35 },\r
1622 { 0x00, 0x36, 0x36 },\r
1623 { 0x00, 0x37, 0x37 },\r
1624 { 0x00, 0x38, 0x38 },\r
1625 { 0x00, 0x39, 0x39 },\r
1626 { 0x00, 0x3a, 0x3a },\r
1627 { 0x00, 0x3b, 0x3b },\r
1628 { 0x00, 0x3c, 0x3c },\r
1629 { 0x00, 0x3d, 0x3d },\r
1630 { 0x00, 0x3e, 0x3e },\r
1631 { 0x00, 0x3f, 0x3f },\r
1632 { 0x00, 0x40, 0x40 },\r
1633 { 0x01, 0x61, 0x41 },\r
1634 { 0x01, 0x62, 0x42 },\r
1635 { 0x01, 0x63, 0x43 },\r
1636 { 0x01, 0x64, 0x44 },\r
1637 { 0x01, 0x65, 0x45 },\r
1638 { 0x01, 0x66, 0x46 },\r
1639 { 0x01, 0x67, 0x47 },\r
1640 { 0x01, 0x68, 0x48 },\r
1641 { 0x01, 0x69, 0x49 },\r
1642 { 0x01, 0x6a, 0x4a },\r
1643 { 0x01, 0x6b, 0x4b },\r
1644 { 0x01, 0x6c, 0x4c },\r
1645 { 0x01, 0x6d, 0x4d },\r
1646 { 0x01, 0x6e, 0x4e },\r
1647 { 0x01, 0x6f, 0x4f },\r
1648 { 0x01, 0x70, 0x50 },\r
1649 { 0x01, 0x71, 0x51 },\r
1650 { 0x01, 0x72, 0x52 },\r
1651 { 0x01, 0x73, 0x53 },\r
1652 { 0x01, 0x74, 0x54 },\r
1653 { 0x01, 0x75, 0x55 },\r
1654 { 0x01, 0x76, 0x56 },\r
1655 { 0x01, 0x77, 0x57 },\r
1656 { 0x01, 0x78, 0x58 },\r
1657 { 0x01, 0x79, 0x59 },\r
1658 { 0x01, 0x7a, 0x5a },\r
1659 { 0x00, 0x5b, 0x5b },\r
1660 { 0x00, 0x5c, 0x5c },\r
1661 { 0x00, 0x5d, 0x5d },\r
1662 { 0x00, 0x5e, 0x5e },\r
1663 { 0x00, 0x5f, 0x5f },\r
1664 { 0x00, 0x60, 0x60 },\r
1665 { 0x00, 0x61, 0x41 },\r
1666 { 0x00, 0x62, 0x42 },\r
1667 { 0x00, 0x63, 0x43 },\r
1668 { 0x00, 0x64, 0x44 },\r
1669 { 0x00, 0x65, 0x45 },\r
1670 { 0x00, 0x66, 0x46 },\r
1671 { 0x00, 0x67, 0x47 },\r
1672 { 0x00, 0x68, 0x48 },\r
1673 { 0x00, 0x69, 0x49 },\r
1674 { 0x00, 0x6a, 0x4a },\r
1675 { 0x00, 0x6b, 0x4b },\r
1676 { 0x00, 0x6c, 0x4c },\r
1677 { 0x00, 0x6d, 0x4d },\r
1678 { 0x00, 0x6e, 0x4e },\r
1679 { 0x00, 0x6f, 0x4f },\r
1680 { 0x00, 0x70, 0x50 },\r
1681 { 0x00, 0x71, 0x51 },\r
1682 { 0x00, 0x72, 0x52 },\r
1683 { 0x00, 0x73, 0x53 },\r
1684 { 0x00, 0x74, 0x54 },\r
1685 { 0x00, 0x75, 0x55 },\r
1686 { 0x00, 0x76, 0x56 },\r
1687 { 0x00, 0x77, 0x57 },\r
1688 { 0x00, 0x78, 0x58 },\r
1689 { 0x00, 0x79, 0x59 },\r
1690 { 0x00, 0x7a, 0x5a },\r
1691 { 0x00, 0x7b, 0x7b },\r
1692 { 0x00, 0x7c, 0x7c },\r
1693 { 0x00, 0x7d, 0x7d },\r
1694 { 0x00, 0x7e, 0x7e },\r
1695 { 0x00, 0x7f, 0x7f },\r
1696 { 0x00, 0x80, 0x80 },\r
1697 { 0x00, 0x81, 0x81 },\r
1698 { 0x00, 0x82, 0x82 },\r
1699 { 0x00, 0x83, 0x83 },\r
1700 { 0x00, 0x84, 0x84 },\r
1701 { 0x00, 0x85, 0x85 },\r
1702 { 0x00, 0x86, 0x86 },\r
1703 { 0x00, 0x87, 0x87 },\r
1704 { 0x00, 0x88, 0x88 },\r
1705 { 0x00, 0x89, 0x89 },\r
1706 { 0x00, 0x8a, 0x8a },\r
1707 { 0x00, 0x8b, 0x8b },\r
1708 { 0x00, 0x8c, 0x8c },\r
1709 { 0x00, 0x8d, 0x8d },\r
1710 { 0x00, 0x8e, 0x8e },\r
1711 { 0x00, 0x8f, 0x8f },\r
1712 { 0x00, 0x90, 0x90 },\r
1713 { 0x00, 0x91, 0x91 },\r
1714 { 0x00, 0x92, 0x92 },\r
1715 { 0x00, 0x93, 0x93 },\r
1716 { 0x00, 0x94, 0x94 },\r
1717 { 0x00, 0x95, 0x95 },\r
1718 { 0x00, 0x96, 0x96 },\r
1719 { 0x00, 0x97, 0x97 },\r
1720 { 0x00, 0x98, 0x98 },\r
1721 { 0x00, 0x99, 0x99 },\r
1722 { 0x00, 0x9a, 0x9a },\r
1723 { 0x00, 0x9b, 0x9b },\r
1724 { 0x00, 0x9c, 0x9c },\r
1725 { 0x00, 0x9d, 0x9d },\r
1726 { 0x00, 0x9e, 0x9e },\r
1727 { 0x00, 0x9f, 0x9f },\r
1728 { 0x00, 0xa0, 0xa0 },\r
1729 { 0x01, 0xf1, 0xa1 },\r
1730 { 0x01, 0xf2, 0xa2 },\r
1731 { 0x01, 0xf3, 0xa3 },\r
1732 { 0x01, 0xf4, 0xa4 },\r
1733 { 0x01, 0xf5, 0xa5 },\r
1734 { 0x01, 0xf6, 0xa6 },\r
1735 { 0x01, 0xf7, 0xa7 },\r
1736 { 0x01, 0xf8, 0xa8 },\r
1737 { 0x01, 0xf9, 0xa9 },\r
1738 { 0x01, 0xfa, 0xaa },\r
1739 { 0x01, 0xfb, 0xab },\r
1740 { 0x01, 0xfc, 0xac },\r
1741 { 0x00, 0xad, 0xad },\r
1742 { 0x01, 0xfe, 0xae },\r
1743 { 0x01, 0xff, 0xaf },\r
1744 { 0x01, 0xd0, 0xb0 },\r
1745 { 0x01, 0xd1, 0xb1 },\r
1746 { 0x01, 0xd2, 0xb2 },\r
1747 { 0x01, 0xd3, 0xb3 },\r
1748 { 0x01, 0xd4, 0xb4 },\r
1749 { 0x01, 0xd5, 0xb5 },\r
1750 { 0x01, 0xd6, 0xb6 },\r
1751 { 0x01, 0xd7, 0xb7 },\r
1752 { 0x01, 0xd8, 0xb8 },\r
1753 { 0x01, 0xd9, 0xb9 },\r
1754 { 0x01, 0xda, 0xba },\r
1755 { 0x01, 0xdb, 0xbb },\r
1756 { 0x01, 0xdc, 0xbc },\r
1757 { 0x01, 0xdd, 0xbd },\r
1758 { 0x01, 0xde, 0xbe },\r
1759 { 0x01, 0xdf, 0xbf },\r
1760 { 0x01, 0xe0, 0xc0 },\r
1761 { 0x01, 0xe1, 0xc1 },\r
1762 { 0x01, 0xe2, 0xc2 },\r
1763 { 0x01, 0xe3, 0xc3 },\r
1764 { 0x01, 0xe4, 0xc4 },\r
1765 { 0x01, 0xe5, 0xc5 },\r
1766 { 0x01, 0xe6, 0xc6 },\r
1767 { 0x01, 0xe7, 0xc7 },\r
1768 { 0x01, 0xe8, 0xc8 },\r
1769 { 0x01, 0xe9, 0xc9 },\r
1770 { 0x01, 0xea, 0xca },\r
1771 { 0x01, 0xeb, 0xcb },\r
1772 { 0x01, 0xec, 0xcc },\r
1773 { 0x01, 0xed, 0xcd },\r
1774 { 0x01, 0xee, 0xce },\r
1775 { 0x01, 0xef, 0xcf },\r
1776 { 0x00, 0xd0, 0xb0 },\r
1777 { 0x00, 0xd1, 0xb1 },\r
1778 { 0x00, 0xd2, 0xb2 },\r
1779 { 0x00, 0xd3, 0xb3 },\r
1780 { 0x00, 0xd4, 0xb4 },\r
1781 { 0x00, 0xd5, 0xb5 },\r
1782 { 0x00, 0xd6, 0xb6 },\r
1783 { 0x00, 0xd7, 0xb7 },\r
1784 { 0x00, 0xd8, 0xb8 },\r
1785 { 0x00, 0xd9, 0xb9 },\r
1786 { 0x00, 0xda, 0xba },\r
1787 { 0x00, 0xdb, 0xbb },\r
1788 { 0x00, 0xdc, 0xbc },\r
1789 { 0x00, 0xdd, 0xbd },\r
1790 { 0x00, 0xde, 0xbe },\r
1791 { 0x00, 0xdf, 0xbf },\r
1792 { 0x00, 0xe0, 0xc0 },\r
1793 { 0x00, 0xe1, 0xc1 },\r
1794 { 0x00, 0xe2, 0xc2 },\r
1795 { 0x00, 0xe3, 0xc3 },\r
1796 { 0x00, 0xe4, 0xc4 },\r
1797 { 0x00, 0xe5, 0xc5 },\r
1798 { 0x00, 0xe6, 0xc6 },\r
1799 { 0x00, 0xe7, 0xc7 },\r
1800 { 0x00, 0xe8, 0xc8 },\r
1801 { 0x00, 0xe9, 0xc9 },\r
1802 { 0x00, 0xea, 0xca },\r
1803 { 0x00, 0xeb, 0xcb },\r
1804 { 0x00, 0xec, 0xcc },\r
1805 { 0x00, 0xed, 0xcd },\r
1806 { 0x00, 0xee, 0xce },\r
1807 { 0x00, 0xef, 0xcf },\r
1808 { 0x00, 0xf0, 0xf0 },\r
1809 { 0x00, 0xf1, 0xa1 },\r
1810 { 0x00, 0xf2, 0xa2 },\r
1811 { 0x00, 0xf3, 0xa3 },\r
1812 { 0x00, 0xf4, 0xa4 },\r
1813 { 0x00, 0xf5, 0xa5 },\r
1814 { 0x00, 0xf6, 0xa6 },\r
1815 { 0x00, 0xf7, 0xa7 },\r
1816 { 0x00, 0xf8, 0xa8 },\r
1817 { 0x00, 0xf9, 0xa9 },\r
1818 { 0x00, 0xfa, 0xaa },\r
1819 { 0x00, 0xfb, 0xab },\r
1820 { 0x00, 0xfc, 0xac },\r
1821 { 0x00, 0xfd, 0xfd },\r
1822 { 0x00, 0xfe, 0xae },\r
1823 { 0x00, 0xff, 0xaf },\r
1824 };\r
1825 \r
1826 struct cs_info iso6_tbl[] = {\r
1827 { 0x00, 0x00, 0x00 },\r
1828 { 0x00, 0x01, 0x01 },\r
1829 { 0x00, 0x02, 0x02 },\r
1830 { 0x00, 0x03, 0x03 },\r
1831 { 0x00, 0x04, 0x04 },\r
1832 { 0x00, 0x05, 0x05 },\r
1833 { 0x00, 0x06, 0x06 },\r
1834 { 0x00, 0x07, 0x07 },\r
1835 { 0x00, 0x08, 0x08 },\r
1836 { 0x00, 0x09, 0x09 },\r
1837 { 0x00, 0x0a, 0x0a },\r
1838 { 0x00, 0x0b, 0x0b },\r
1839 { 0x00, 0x0c, 0x0c },\r
1840 { 0x00, 0x0d, 0x0d },\r
1841 { 0x00, 0x0e, 0x0e },\r
1842 { 0x00, 0x0f, 0x0f },\r
1843 { 0x00, 0x10, 0x10 },\r
1844 { 0x00, 0x11, 0x11 },\r
1845 { 0x00, 0x12, 0x12 },\r
1846 { 0x00, 0x13, 0x13 },\r
1847 { 0x00, 0x14, 0x14 },\r
1848 { 0x00, 0x15, 0x15 },\r
1849 { 0x00, 0x16, 0x16 },\r
1850 { 0x00, 0x17, 0x17 },\r
1851 { 0x00, 0x18, 0x18 },\r
1852 { 0x00, 0x19, 0x19 },\r
1853 { 0x00, 0x1a, 0x1a },\r
1854 { 0x00, 0x1b, 0x1b },\r
1855 { 0x00, 0x1c, 0x1c },\r
1856 { 0x00, 0x1d, 0x1d },\r
1857 { 0x00, 0x1e, 0x1e },\r
1858 { 0x00, 0x1f, 0x1f },\r
1859 { 0x00, 0x20, 0x20 },\r
1860 { 0x00, 0x21, 0x21 },\r
1861 { 0x00, 0x22, 0x22 },\r
1862 { 0x00, 0x23, 0x23 },\r
1863 { 0x00, 0x24, 0x24 },\r
1864 { 0x00, 0x25, 0x25 },\r
1865 { 0x00, 0x26, 0x26 },\r
1866 { 0x00, 0x27, 0x27 },\r
1867 { 0x00, 0x28, 0x28 },\r
1868 { 0x00, 0x29, 0x29 },\r
1869 { 0x00, 0x2a, 0x2a },\r
1870 { 0x00, 0x2b, 0x2b },\r
1871 { 0x00, 0x2c, 0x2c },\r
1872 { 0x00, 0x2d, 0x2d },\r
1873 { 0x00, 0x2e, 0x2e },\r
1874 { 0x00, 0x2f, 0x2f },\r
1875 { 0x00, 0x30, 0x30 },\r
1876 { 0x00, 0x31, 0x31 },\r
1877 { 0x00, 0x32, 0x32 },\r
1878 { 0x00, 0x33, 0x33 },\r
1879 { 0x00, 0x34, 0x34 },\r
1880 { 0x00, 0x35, 0x35 },\r
1881 { 0x00, 0x36, 0x36 },\r
1882 { 0x00, 0x37, 0x37 },\r
1883 { 0x00, 0x38, 0x38 },\r
1884 { 0x00, 0x39, 0x39 },\r
1885 { 0x00, 0x3a, 0x3a },\r
1886 { 0x00, 0x3b, 0x3b },\r
1887 { 0x00, 0x3c, 0x3c },\r
1888 { 0x00, 0x3d, 0x3d },\r
1889 { 0x00, 0x3e, 0x3e },\r
1890 { 0x00, 0x3f, 0x3f },\r
1891 { 0x00, 0x40, 0x40 },\r
1892 { 0x01, 0x61, 0x41 },\r
1893 { 0x01, 0x62, 0x42 },\r
1894 { 0x01, 0x63, 0x43 },\r
1895 { 0x01, 0x64, 0x44 },\r
1896 { 0x01, 0x65, 0x45 },\r
1897 { 0x01, 0x66, 0x46 },\r
1898 { 0x01, 0x67, 0x47 },\r
1899 { 0x01, 0x68, 0x48 },\r
1900 { 0x01, 0x69, 0x49 },\r
1901 { 0x01, 0x6a, 0x4a },\r
1902 { 0x01, 0x6b, 0x4b },\r
1903 { 0x01, 0x6c, 0x4c },\r
1904 { 0x01, 0x6d, 0x4d },\r
1905 { 0x01, 0x6e, 0x4e },\r
1906 { 0x01, 0x6f, 0x4f },\r
1907 { 0x01, 0x70, 0x50 },\r
1908 { 0x01, 0x71, 0x51 },\r
1909 { 0x01, 0x72, 0x52 },\r
1910 { 0x01, 0x73, 0x53 },\r
1911 { 0x01, 0x74, 0x54 },\r
1912 { 0x01, 0x75, 0x55 },\r
1913 { 0x01, 0x76, 0x56 },\r
1914 { 0x01, 0x77, 0x57 },\r
1915 { 0x01, 0x78, 0x58 },\r
1916 { 0x01, 0x79, 0x59 },\r
1917 { 0x01, 0x7a, 0x5a },\r
1918 { 0x00, 0x5b, 0x5b },\r
1919 { 0x00, 0x5c, 0x5c },\r
1920 { 0x00, 0x5d, 0x5d },\r
1921 { 0x00, 0x5e, 0x5e },\r
1922 { 0x00, 0x5f, 0x5f },\r
1923 { 0x00, 0x60, 0x60 },\r
1924 { 0x00, 0x61, 0x41 },\r
1925 { 0x00, 0x62, 0x42 },\r
1926 { 0x00, 0x63, 0x43 },\r
1927 { 0x00, 0x64, 0x44 },\r
1928 { 0x00, 0x65, 0x45 },\r
1929 { 0x00, 0x66, 0x46 },\r
1930 { 0x00, 0x67, 0x47 },\r
1931 { 0x00, 0x68, 0x48 },\r
1932 { 0x00, 0x69, 0x49 },\r
1933 { 0x00, 0x6a, 0x4a },\r
1934 { 0x00, 0x6b, 0x4b },\r
1935 { 0x00, 0x6c, 0x4c },\r
1936 { 0x00, 0x6d, 0x4d },\r
1937 { 0x00, 0x6e, 0x4e },\r
1938 { 0x00, 0x6f, 0x4f },\r
1939 { 0x00, 0x70, 0x50 },\r
1940 { 0x00, 0x71, 0x51 },\r
1941 { 0x00, 0x72, 0x52 },\r
1942 { 0x00, 0x73, 0x53 },\r
1943 { 0x00, 0x74, 0x54 },\r
1944 { 0x00, 0x75, 0x55 },\r
1945 { 0x00, 0x76, 0x56 },\r
1946 { 0x00, 0x77, 0x57 },\r
1947 { 0x00, 0x78, 0x58 },\r
1948 { 0x00, 0x79, 0x59 },\r
1949 { 0x00, 0x7a, 0x5a },\r
1950 { 0x00, 0x7b, 0x7b },\r
1951 { 0x00, 0x7c, 0x7c },\r
1952 { 0x00, 0x7d, 0x7d },\r
1953 { 0x00, 0x7e, 0x7e },\r
1954 { 0x00, 0x7f, 0x7f },\r
1955 { 0x00, 0x80, 0x80 },\r
1956 { 0x00, 0x81, 0x81 },\r
1957 { 0x00, 0x82, 0x82 },\r
1958 { 0x00, 0x83, 0x83 },\r
1959 { 0x00, 0x84, 0x84 },\r
1960 { 0x00, 0x85, 0x85 },\r
1961 { 0x00, 0x86, 0x86 },\r
1962 { 0x00, 0x87, 0x87 },\r
1963 { 0x00, 0x88, 0x88 },\r
1964 { 0x00, 0x89, 0x89 },\r
1965 { 0x00, 0x8a, 0x8a },\r
1966 { 0x00, 0x8b, 0x8b },\r
1967 { 0x00, 0x8c, 0x8c },\r
1968 { 0x00, 0x8d, 0x8d },\r
1969 { 0x00, 0x8e, 0x8e },\r
1970 { 0x00, 0x8f, 0x8f },\r
1971 { 0x00, 0x90, 0x90 },\r
1972 { 0x00, 0x91, 0x91 },\r
1973 { 0x00, 0x92, 0x92 },\r
1974 { 0x00, 0x93, 0x93 },\r
1975 { 0x00, 0x94, 0x94 },\r
1976 { 0x00, 0x95, 0x95 },\r
1977 { 0x00, 0x96, 0x96 },\r
1978 { 0x00, 0x97, 0x97 },\r
1979 { 0x00, 0x98, 0x98 },\r
1980 { 0x00, 0x99, 0x99 },\r
1981 { 0x00, 0x9a, 0x9a },\r
1982 { 0x00, 0x9b, 0x9b },\r
1983 { 0x00, 0x9c, 0x9c },\r
1984 { 0x00, 0x9d, 0x9d },\r
1985 { 0x00, 0x9e, 0x9e },\r
1986 { 0x00, 0x9f, 0x9f },\r
1987 { 0x00, 0xa0, 0xa0 },\r
1988 { 0x00, 0xa1, 0xa1 },\r
1989 { 0x00, 0xa2, 0xa2 },\r
1990 { 0x00, 0xa3, 0xa3 },\r
1991 { 0x00, 0xa4, 0xa4 },\r
1992 { 0x00, 0xa5, 0xa5 },\r
1993 { 0x00, 0xa6, 0xa6 },\r
1994 { 0x00, 0xa7, 0xa7 },\r
1995 { 0x00, 0xa8, 0xa8 },\r
1996 { 0x00, 0xa9, 0xa9 },\r
1997 { 0x00, 0xaa, 0xaa },\r
1998 { 0x00, 0xab, 0xab },\r
1999 { 0x00, 0xac, 0xac },\r
2000 { 0x00, 0xad, 0xad },\r
2001 { 0x00, 0xae, 0xae },\r
2002 { 0x00, 0xaf, 0xaf },\r
2003 { 0x00, 0xb0, 0xb0 },\r
2004 { 0x00, 0xb1, 0xb1 },\r
2005 { 0x00, 0xb2, 0xb2 },\r
2006 { 0x00, 0xb3, 0xb3 },\r
2007 { 0x00, 0xb4, 0xb4 },\r
2008 { 0x00, 0xb5, 0xb5 },\r
2009 { 0x00, 0xb6, 0xb6 },\r
2010 { 0x00, 0xb7, 0xb7 },\r
2011 { 0x00, 0xb8, 0xb8 },\r
2012 { 0x00, 0xb9, 0xb9 },\r
2013 { 0x00, 0xba, 0xba },\r
2014 { 0x00, 0xbb, 0xbb },\r
2015 { 0x00, 0xbc, 0xbc },\r
2016 { 0x00, 0xbd, 0xbd },\r
2017 { 0x00, 0xbe, 0xbe },\r
2018 { 0x00, 0xbf, 0xbf },\r
2019 { 0x00, 0xc0, 0xc0 },\r
2020 { 0x00, 0xc1, 0xc1 },\r
2021 { 0x00, 0xc2, 0xc2 },\r
2022 { 0x00, 0xc3, 0xc3 },\r
2023 { 0x00, 0xc4, 0xc4 },\r
2024 { 0x00, 0xc5, 0xc5 },\r
2025 { 0x00, 0xc6, 0xc6 },\r
2026 { 0x00, 0xc7, 0xc7 },\r
2027 { 0x00, 0xc8, 0xc8 },\r
2028 { 0x00, 0xc9, 0xc9 },\r
2029 { 0x00, 0xca, 0xca },\r
2030 { 0x00, 0xcb, 0xcb },\r
2031 { 0x00, 0xcc, 0xcc },\r
2032 { 0x00, 0xcd, 0xcd },\r
2033 { 0x00, 0xce, 0xce },\r
2034 { 0x00, 0xcf, 0xcf },\r
2035 { 0x00, 0xd0, 0xd0 },\r
2036 { 0x00, 0xd1, 0xd1 },\r
2037 { 0x00, 0xd2, 0xd2 },\r
2038 { 0x00, 0xd3, 0xd3 },\r
2039 { 0x00, 0xd4, 0xd4 },\r
2040 { 0x00, 0xd5, 0xd5 },\r
2041 { 0x00, 0xd6, 0xd6 },\r
2042 { 0x00, 0xd7, 0xd7 },\r
2043 { 0x00, 0xd8, 0xd8 },\r
2044 { 0x00, 0xd9, 0xd9 },\r
2045 { 0x00, 0xda, 0xda },\r
2046 { 0x00, 0xdb, 0xdb },\r
2047 { 0x00, 0xdc, 0xdc },\r
2048 { 0x00, 0xdd, 0xdd },\r
2049 { 0x00, 0xde, 0xde },\r
2050 { 0x00, 0xdf, 0xdf },\r
2051 { 0x00, 0xe0, 0xe0 },\r
2052 { 0x00, 0xe1, 0xe1 },\r
2053 { 0x00, 0xe2, 0xe2 },\r
2054 { 0x00, 0xe3, 0xe3 },\r
2055 { 0x00, 0xe4, 0xe4 },\r
2056 { 0x00, 0xe5, 0xe5 },\r
2057 { 0x00, 0xe6, 0xe6 },\r
2058 { 0x00, 0xe7, 0xe7 },\r
2059 { 0x00, 0xe8, 0xe8 },\r
2060 { 0x00, 0xe9, 0xe9 },\r
2061 { 0x00, 0xea, 0xea },\r
2062 { 0x00, 0xeb, 0xeb },\r
2063 { 0x00, 0xec, 0xec },\r
2064 { 0x00, 0xed, 0xed },\r
2065 { 0x00, 0xee, 0xee },\r
2066 { 0x00, 0xef, 0xef },\r
2067 { 0x00, 0xf0, 0xf0 },\r
2068 { 0x00, 0xf1, 0xf1 },\r
2069 { 0x00, 0xf2, 0xf2 },\r
2070 { 0x00, 0xf3, 0xf3 },\r
2071 { 0x00, 0xf4, 0xf4 },\r
2072 { 0x00, 0xf5, 0xf5 },\r
2073 { 0x00, 0xf6, 0xf6 },\r
2074 { 0x00, 0xf7, 0xf7 },\r
2075 { 0x00, 0xf8, 0xf8 },\r
2076 { 0x00, 0xf9, 0xf9 },\r
2077 { 0x00, 0xfa, 0xfa },\r
2078 { 0x00, 0xfb, 0xfb },\r
2079 { 0x00, 0xfc, 0xfc },\r
2080 { 0x00, 0xfd, 0xfd },\r
2081 { 0x00, 0xfe, 0xfe },\r
2082 { 0x00, 0xff, 0xff },\r
2083 };\r
2084 \r
2085 struct cs_info iso7_tbl[] = {\r
2086 { 0x00, 0x00, 0x00 },\r
2087 { 0x00, 0x01, 0x01 },\r
2088 { 0x00, 0x02, 0x02 },\r
2089 { 0x00, 0x03, 0x03 },\r
2090 { 0x00, 0x04, 0x04 },\r
2091 { 0x00, 0x05, 0x05 },\r
2092 { 0x00, 0x06, 0x06 },\r
2093 { 0x00, 0x07, 0x07 },\r
2094 { 0x00, 0x08, 0x08 },\r
2095 { 0x00, 0x09, 0x09 },\r
2096 { 0x00, 0x0a, 0x0a },\r
2097 { 0x00, 0x0b, 0x0b },\r
2098 { 0x00, 0x0c, 0x0c },\r
2099 { 0x00, 0x0d, 0x0d },\r
2100 { 0x00, 0x0e, 0x0e },\r
2101 { 0x00, 0x0f, 0x0f },\r
2102 { 0x00, 0x10, 0x10 },\r
2103 { 0x00, 0x11, 0x11 },\r
2104 { 0x00, 0x12, 0x12 },\r
2105 { 0x00, 0x13, 0x13 },\r
2106 { 0x00, 0x14, 0x14 },\r
2107 { 0x00, 0x15, 0x15 },\r
2108 { 0x00, 0x16, 0x16 },\r
2109 { 0x00, 0x17, 0x17 },\r
2110 { 0x00, 0x18, 0x18 },\r
2111 { 0x00, 0x19, 0x19 },\r
2112 { 0x00, 0x1a, 0x1a },\r
2113 { 0x00, 0x1b, 0x1b },\r
2114 { 0x00, 0x1c, 0x1c },\r
2115 { 0x00, 0x1d, 0x1d },\r
2116 { 0x00, 0x1e, 0x1e },\r
2117 { 0x00, 0x1f, 0x1f },\r
2118 { 0x00, 0x20, 0x20 },\r
2119 { 0x00, 0x21, 0x21 },\r
2120 { 0x00, 0x22, 0x22 },\r
2121 { 0x00, 0x23, 0x23 },\r
2122 { 0x00, 0x24, 0x24 },\r
2123 { 0x00, 0x25, 0x25 },\r
2124 { 0x00, 0x26, 0x26 },\r
2125 { 0x00, 0x27, 0x27 },\r
2126 { 0x00, 0x28, 0x28 },\r
2127 { 0x00, 0x29, 0x29 },\r
2128 { 0x00, 0x2a, 0x2a },\r
2129 { 0x00, 0x2b, 0x2b },\r
2130 { 0x00, 0x2c, 0x2c },\r
2131 { 0x00, 0x2d, 0x2d },\r
2132 { 0x00, 0x2e, 0x2e },\r
2133 { 0x00, 0x2f, 0x2f },\r
2134 { 0x00, 0x30, 0x30 },\r
2135 { 0x00, 0x31, 0x31 },\r
2136 { 0x00, 0x32, 0x32 },\r
2137 { 0x00, 0x33, 0x33 },\r
2138 { 0x00, 0x34, 0x34 },\r
2139 { 0x00, 0x35, 0x35 },\r
2140 { 0x00, 0x36, 0x36 },\r
2141 { 0x00, 0x37, 0x37 },\r
2142 { 0x00, 0x38, 0x38 },\r
2143 { 0x00, 0x39, 0x39 },\r
2144 { 0x00, 0x3a, 0x3a },\r
2145 { 0x00, 0x3b, 0x3b },\r
2146 { 0x00, 0x3c, 0x3c },\r
2147 { 0x00, 0x3d, 0x3d },\r
2148 { 0x00, 0x3e, 0x3e },\r
2149 { 0x00, 0x3f, 0x3f },\r
2150 { 0x00, 0x40, 0x40 },\r
2151 { 0x01, 0x61, 0x41 },\r
2152 { 0x01, 0x62, 0x42 },\r
2153 { 0x01, 0x63, 0x43 },\r
2154 { 0x01, 0x64, 0x44 },\r
2155 { 0x01, 0x65, 0x45 },\r
2156 { 0x01, 0x66, 0x46 },\r
2157 { 0x01, 0x67, 0x47 },\r
2158 { 0x01, 0x68, 0x48 },\r
2159 { 0x01, 0x69, 0x49 },\r
2160 { 0x01, 0x6a, 0x4a },\r
2161 { 0x01, 0x6b, 0x4b },\r
2162 { 0x01, 0x6c, 0x4c },\r
2163 { 0x01, 0x6d, 0x4d },\r
2164 { 0x01, 0x6e, 0x4e },\r
2165 { 0x01, 0x6f, 0x4f },\r
2166 { 0x01, 0x70, 0x50 },\r
2167 { 0x01, 0x71, 0x51 },\r
2168 { 0x01, 0x72, 0x52 },\r
2169 { 0x01, 0x73, 0x53 },\r
2170 { 0x01, 0x74, 0x54 },\r
2171 { 0x01, 0x75, 0x55 },\r
2172 { 0x01, 0x76, 0x56 },\r
2173 { 0x01, 0x77, 0x57 },\r
2174 { 0x01, 0x78, 0x58 },\r
2175 { 0x01, 0x79, 0x59 },\r
2176 { 0x01, 0x7a, 0x5a },\r
2177 { 0x00, 0x5b, 0x5b },\r
2178 { 0x00, 0x5c, 0x5c },\r
2179 { 0x00, 0x5d, 0x5d },\r
2180 { 0x00, 0x5e, 0x5e },\r
2181 { 0x00, 0x5f, 0x5f },\r
2182 { 0x00, 0x60, 0x60 },\r
2183 { 0x00, 0x61, 0x41 },\r
2184 { 0x00, 0x62, 0x42 },\r
2185 { 0x00, 0x63, 0x43 },\r
2186 { 0x00, 0x64, 0x44 },\r
2187 { 0x00, 0x65, 0x45 },\r
2188 { 0x00, 0x66, 0x46 },\r
2189 { 0x00, 0x67, 0x47 },\r
2190 { 0x00, 0x68, 0x48 },\r
2191 { 0x00, 0x69, 0x49 },\r
2192 { 0x00, 0x6a, 0x4a },\r
2193 { 0x00, 0x6b, 0x4b },\r
2194 { 0x00, 0x6c, 0x4c },\r
2195 { 0x00, 0x6d, 0x4d },\r
2196 { 0x00, 0x6e, 0x4e },\r
2197 { 0x00, 0x6f, 0x4f },\r
2198 { 0x00, 0x70, 0x50 },\r
2199 { 0x00, 0x71, 0x51 },\r
2200 { 0x00, 0x72, 0x52 },\r
2201 { 0x00, 0x73, 0x53 },\r
2202 { 0x00, 0x74, 0x54 },\r
2203 { 0x00, 0x75, 0x55 },\r
2204 { 0x00, 0x76, 0x56 },\r
2205 { 0x00, 0x77, 0x57 },\r
2206 { 0x00, 0x78, 0x58 },\r
2207 { 0x00, 0x79, 0x59 },\r
2208 { 0x00, 0x7a, 0x5a },\r
2209 { 0x00, 0x7b, 0x7b },\r
2210 { 0x00, 0x7c, 0x7c },\r
2211 { 0x00, 0x7d, 0x7d },\r
2212 { 0x00, 0x7e, 0x7e },\r
2213 { 0x00, 0x7f, 0x7f },\r
2214 { 0x00, 0x80, 0x80 },\r
2215 { 0x00, 0x81, 0x81 },\r
2216 { 0x00, 0x82, 0x82 },\r
2217 { 0x00, 0x83, 0x83 },\r
2218 { 0x00, 0x84, 0x84 },\r
2219 { 0x00, 0x85, 0x85 },\r
2220 { 0x00, 0x86, 0x86 },\r
2221 { 0x00, 0x87, 0x87 },\r
2222 { 0x00, 0x88, 0x88 },\r
2223 { 0x00, 0x89, 0x89 },\r
2224 { 0x00, 0x8a, 0x8a },\r
2225 { 0x00, 0x8b, 0x8b },\r
2226 { 0x00, 0x8c, 0x8c },\r
2227 { 0x00, 0x8d, 0x8d },\r
2228 { 0x00, 0x8e, 0x8e },\r
2229 { 0x00, 0x8f, 0x8f },\r
2230 { 0x00, 0x90, 0x90 },\r
2231 { 0x00, 0x91, 0x91 },\r
2232 { 0x00, 0x92, 0x92 },\r
2233 { 0x00, 0x93, 0x93 },\r
2234 { 0x00, 0x94, 0x94 },\r
2235 { 0x00, 0x95, 0x95 },\r
2236 { 0x00, 0x96, 0x96 },\r
2237 { 0x00, 0x97, 0x97 },\r
2238 { 0x00, 0x98, 0x98 },\r
2239 { 0x00, 0x99, 0x99 },\r
2240 { 0x00, 0x9a, 0x9a },\r
2241 { 0x00, 0x9b, 0x9b },\r
2242 { 0x00, 0x9c, 0x9c },\r
2243 { 0x00, 0x9d, 0x9d },\r
2244 { 0x00, 0x9e, 0x9e },\r
2245 { 0x00, 0x9f, 0x9f },\r
2246 { 0x00, 0xa0, 0xa0 },\r
2247 { 0x00, 0xa1, 0xa1 },\r
2248 { 0x00, 0xa2, 0xa2 },\r
2249 { 0x00, 0xa3, 0xa3 },\r
2250 { 0x00, 0xa4, 0xa4 },\r
2251 { 0x00, 0xa5, 0xa5 },\r
2252 { 0x00, 0xa6, 0xa6 },\r
2253 { 0x00, 0xa7, 0xa7 },\r
2254 { 0x00, 0xa8, 0xa8 },\r
2255 { 0x00, 0xa9, 0xa9 },\r
2256 { 0x00, 0xaa, 0xaa },\r
2257 { 0x00, 0xab, 0xab },\r
2258 { 0x00, 0xac, 0xac },\r
2259 { 0x00, 0xad, 0xad },\r
2260 { 0x00, 0xae, 0xae },\r
2261 { 0x00, 0xaf, 0xaf },\r
2262 { 0x00, 0xb0, 0xb0 },\r
2263 { 0x00, 0xb1, 0xb1 },\r
2264 { 0x00, 0xb2, 0xb2 },\r
2265 { 0x00, 0xb3, 0xb3 },\r
2266 { 0x00, 0xb4, 0xb4 },\r
2267 { 0x00, 0xb5, 0xb5 },\r
2268 { 0x01, 0xdc, 0xb6 },\r
2269 { 0x00, 0xb7, 0xb7 },\r
2270 { 0x01, 0xdd, 0xb8 },\r
2271 { 0x01, 0xde, 0xb9 },\r
2272 { 0x01, 0xdf, 0xba },\r
2273 { 0x00, 0xbb, 0xbb },\r
2274 { 0x01, 0xfc, 0xbc },\r
2275 { 0x00, 0xbd, 0xbd },\r
2276 { 0x01, 0xfd, 0xbe },\r
2277 { 0x01, 0xfe, 0xbf },\r
2278 { 0x00, 0xc0, 0xc0 },\r
2279 { 0x01, 0xe1, 0xc1 },\r
2280 { 0x01, 0xe2, 0xc2 },\r
2281 { 0x01, 0xe3, 0xc3 },\r
2282 { 0x01, 0xe4, 0xc4 },\r
2283 { 0x01, 0xe5, 0xc5 },\r
2284 { 0x01, 0xe6, 0xc6 },\r
2285 { 0x01, 0xe7, 0xc7 },\r
2286 { 0x01, 0xe8, 0xc8 },\r
2287 { 0x01, 0xe9, 0xc9 },\r
2288 { 0x01, 0xea, 0xca },\r
2289 { 0x01, 0xeb, 0xcb },\r
2290 { 0x01, 0xec, 0xcc },\r
2291 { 0x01, 0xed, 0xcd },\r
2292 { 0x01, 0xee, 0xce },\r
2293 { 0x01, 0xef, 0xcf },\r
2294 { 0x01, 0xf0, 0xd0 },\r
2295 { 0x01, 0xf1, 0xd1 },\r
2296 { 0x00, 0xd2, 0xd2 },\r
2297 { 0x01, 0xf3, 0xd3 },\r
2298 { 0x01, 0xf4, 0xd4 },\r
2299 { 0x01, 0xf5, 0xd5 },\r
2300 { 0x01, 0xf6, 0xd6 },\r
2301 { 0x01, 0xf7, 0xd7 },\r
2302 { 0x01, 0xf8, 0xd8 },\r
2303 { 0x01, 0xf9, 0xd9 },\r
2304 { 0x01, 0xfa, 0xda },\r
2305 { 0x01, 0xfb, 0xdb },\r
2306 { 0x00, 0xdc, 0xb6 },\r
2307 { 0x00, 0xdd, 0xb8 },\r
2308 { 0x00, 0xde, 0xb9 },\r
2309 { 0x00, 0xdf, 0xba },\r
2310 { 0x00, 0xe0, 0xe0 },\r
2311 { 0x00, 0xe1, 0xc1 },\r
2312 { 0x00, 0xe2, 0xc2 },\r
2313 { 0x00, 0xe3, 0xc3 },\r
2314 { 0x00, 0xe4, 0xc4 },\r
2315 { 0x00, 0xe5, 0xc5 },\r
2316 { 0x00, 0xe6, 0xc6 },\r
2317 { 0x00, 0xe7, 0xc7 },\r
2318 { 0x00, 0xe8, 0xc8 },\r
2319 { 0x00, 0xe9, 0xc9 },\r
2320 { 0x00, 0xea, 0xca },\r
2321 { 0x00, 0xeb, 0xcb },\r
2322 { 0x00, 0xec, 0xcc },\r
2323 { 0x00, 0xed, 0xcd },\r
2324 { 0x00, 0xee, 0xce },\r
2325 { 0x00, 0xef, 0xcf },\r
2326 { 0x00, 0xf0, 0xd0 },\r
2327 { 0x00, 0xf1, 0xd1 },\r
2328 { 0x00, 0xf2, 0xd3 },\r
2329 { 0x00, 0xf3, 0xd3 },\r
2330 { 0x00, 0xf4, 0xd4 },\r
2331 { 0x00, 0xf5, 0xd5 },\r
2332 { 0x00, 0xf6, 0xd6 },\r
2333 { 0x00, 0xf7, 0xd7 },\r
2334 { 0x00, 0xf8, 0xd8 },\r
2335 { 0x00, 0xf9, 0xd9 },\r
2336 { 0x00, 0xfa, 0xda },\r
2337 { 0x00, 0xfb, 0xdb },\r
2338 { 0x00, 0xfc, 0xbc },\r
2339 { 0x00, 0xfd, 0xbe },\r
2340 { 0x00, 0xfe, 0xbf },\r
2341 { 0x00, 0xff, 0xff },\r
2342 };\r
2343 \r
2344 struct cs_info iso8_tbl[] = {\r
2345 { 0x00, 0x00, 0x00 },\r
2346 { 0x00, 0x01, 0x01 },\r
2347 { 0x00, 0x02, 0x02 },\r
2348 { 0x00, 0x03, 0x03 },\r
2349 { 0x00, 0x04, 0x04 },\r
2350 { 0x00, 0x05, 0x05 },\r
2351 { 0x00, 0x06, 0x06 },\r
2352 { 0x00, 0x07, 0x07 },\r
2353 { 0x00, 0x08, 0x08 },\r
2354 { 0x00, 0x09, 0x09 },\r
2355 { 0x00, 0x0a, 0x0a },\r
2356 { 0x00, 0x0b, 0x0b },\r
2357 { 0x00, 0x0c, 0x0c },\r
2358 { 0x00, 0x0d, 0x0d },\r
2359 { 0x00, 0x0e, 0x0e },\r
2360 { 0x00, 0x0f, 0x0f },\r
2361 { 0x00, 0x10, 0x10 },\r
2362 { 0x00, 0x11, 0x11 },\r
2363 { 0x00, 0x12, 0x12 },\r
2364 { 0x00, 0x13, 0x13 },\r
2365 { 0x00, 0x14, 0x14 },\r
2366 { 0x00, 0x15, 0x15 },\r
2367 { 0x00, 0x16, 0x16 },\r
2368 { 0x00, 0x17, 0x17 },\r
2369 { 0x00, 0x18, 0x18 },\r
2370 { 0x00, 0x19, 0x19 },\r
2371 { 0x00, 0x1a, 0x1a },\r
2372 { 0x00, 0x1b, 0x1b },\r
2373 { 0x00, 0x1c, 0x1c },\r
2374 { 0x00, 0x1d, 0x1d },\r
2375 { 0x00, 0x1e, 0x1e },\r
2376 { 0x00, 0x1f, 0x1f },\r
2377 { 0x00, 0x20, 0x20 },\r
2378 { 0x00, 0x21, 0x21 },\r
2379 { 0x00, 0x22, 0x22 },\r
2380 { 0x00, 0x23, 0x23 },\r
2381 { 0x00, 0x24, 0x24 },\r
2382 { 0x00, 0x25, 0x25 },\r
2383 { 0x00, 0x26, 0x26 },\r
2384 { 0x00, 0x27, 0x27 },\r
2385 { 0x00, 0x28, 0x28 },\r
2386 { 0x00, 0x29, 0x29 },\r
2387 { 0x00, 0x2a, 0x2a },\r
2388 { 0x00, 0x2b, 0x2b },\r
2389 { 0x00, 0x2c, 0x2c },\r
2390 { 0x00, 0x2d, 0x2d },\r
2391 { 0x00, 0x2e, 0x2e },\r
2392 { 0x00, 0x2f, 0x2f },\r
2393 { 0x00, 0x30, 0x30 },\r
2394 { 0x00, 0x31, 0x31 },\r
2395 { 0x00, 0x32, 0x32 },\r
2396 { 0x00, 0x33, 0x33 },\r
2397 { 0x00, 0x34, 0x34 },\r
2398 { 0x00, 0x35, 0x35 },\r
2399 { 0x00, 0x36, 0x36 },\r
2400 { 0x00, 0x37, 0x37 },\r
2401 { 0x00, 0x38, 0x38 },\r
2402 { 0x00, 0x39, 0x39 },\r
2403 { 0x00, 0x3a, 0x3a },\r
2404 { 0x00, 0x3b, 0x3b },\r
2405 { 0x00, 0x3c, 0x3c },\r
2406 { 0x00, 0x3d, 0x3d },\r
2407 { 0x00, 0x3e, 0x3e },\r
2408 { 0x00, 0x3f, 0x3f },\r
2409 { 0x00, 0x40, 0x40 },\r
2410 { 0x01, 0x61, 0x41 },\r
2411 { 0x01, 0x62, 0x42 },\r
2412 { 0x01, 0x63, 0x43 },\r
2413 { 0x01, 0x64, 0x44 },\r
2414 { 0x01, 0x65, 0x45 },\r
2415 { 0x01, 0x66, 0x46 },\r
2416 { 0x01, 0x67, 0x47 },\r
2417 { 0x01, 0x68, 0x48 },\r
2418 { 0x01, 0x69, 0x49 },\r
2419 { 0x01, 0x6a, 0x4a },\r
2420 { 0x01, 0x6b, 0x4b },\r
2421 { 0x01, 0x6c, 0x4c },\r
2422 { 0x01, 0x6d, 0x4d },\r
2423 { 0x01, 0x6e, 0x4e },\r
2424 { 0x01, 0x6f, 0x4f },\r
2425 { 0x01, 0x70, 0x50 },\r
2426 { 0x01, 0x71, 0x51 },\r
2427 { 0x01, 0x72, 0x52 },\r
2428 { 0x01, 0x73, 0x53 },\r
2429 { 0x01, 0x74, 0x54 },\r
2430 { 0x01, 0x75, 0x55 },\r
2431 { 0x01, 0x76, 0x56 },\r
2432 { 0x01, 0x77, 0x57 },\r
2433 { 0x01, 0x78, 0x58 },\r
2434 { 0x01, 0x79, 0x59 },\r
2435 { 0x01, 0x7a, 0x5a },\r
2436 { 0x00, 0x5b, 0x5b },\r
2437 { 0x00, 0x5c, 0x5c },\r
2438 { 0x00, 0x5d, 0x5d },\r
2439 { 0x00, 0x5e, 0x5e },\r
2440 { 0x00, 0x5f, 0x5f },\r
2441 { 0x00, 0x60, 0x60 },\r
2442 { 0x00, 0x61, 0x41 },\r
2443 { 0x00, 0x62, 0x42 },\r
2444 { 0x00, 0x63, 0x43 },\r
2445 { 0x00, 0x64, 0x44 },\r
2446 { 0x00, 0x65, 0x45 },\r
2447 { 0x00, 0x66, 0x46 },\r
2448 { 0x00, 0x67, 0x47 },\r
2449 { 0x00, 0x68, 0x48 },\r
2450 { 0x00, 0x69, 0x49 },\r
2451 { 0x00, 0x6a, 0x4a },\r
2452 { 0x00, 0x6b, 0x4b },\r
2453 { 0x00, 0x6c, 0x4c },\r
2454 { 0x00, 0x6d, 0x4d },\r
2455 { 0x00, 0x6e, 0x4e },\r
2456 { 0x00, 0x6f, 0x4f },\r
2457 { 0x00, 0x70, 0x50 },\r
2458 { 0x00, 0x71, 0x51 },\r
2459 { 0x00, 0x72, 0x52 },\r
2460 { 0x00, 0x73, 0x53 },\r
2461 { 0x00, 0x74, 0x54 },\r
2462 { 0x00, 0x75, 0x55 },\r
2463 { 0x00, 0x76, 0x56 },\r
2464 { 0x00, 0x77, 0x57 },\r
2465 { 0x00, 0x78, 0x58 },\r
2466 { 0x00, 0x79, 0x59 },\r
2467 { 0x00, 0x7a, 0x5a },\r
2468 { 0x00, 0x7b, 0x7b },\r
2469 { 0x00, 0x7c, 0x7c },\r
2470 { 0x00, 0x7d, 0x7d },\r
2471 { 0x00, 0x7e, 0x7e },\r
2472 { 0x00, 0x7f, 0x7f },\r
2473 { 0x00, 0x80, 0x80 },\r
2474 { 0x00, 0x81, 0x81 },\r
2475 { 0x00, 0x82, 0x82 },\r
2476 { 0x00, 0x83, 0x83 },\r
2477 { 0x00, 0x84, 0x84 },\r
2478 { 0x00, 0x85, 0x85 },\r
2479 { 0x00, 0x86, 0x86 },\r
2480 { 0x00, 0x87, 0x87 },\r
2481 { 0x00, 0x88, 0x88 },\r
2482 { 0x00, 0x89, 0x89 },\r
2483 { 0x00, 0x8a, 0x8a },\r
2484 { 0x00, 0x8b, 0x8b },\r
2485 { 0x00, 0x8c, 0x8c },\r
2486 { 0x00, 0x8d, 0x8d },\r
2487 { 0x00, 0x8e, 0x8e },\r
2488 { 0x00, 0x8f, 0x8f },\r
2489 { 0x00, 0x90, 0x90 },\r
2490 { 0x00, 0x91, 0x91 },\r
2491 { 0x00, 0x92, 0x92 },\r
2492 { 0x00, 0x93, 0x93 },\r
2493 { 0x00, 0x94, 0x94 },\r
2494 { 0x00, 0x95, 0x95 },\r
2495 { 0x00, 0x96, 0x96 },\r
2496 { 0x00, 0x97, 0x97 },\r
2497 { 0x00, 0x98, 0x98 },\r
2498 { 0x00, 0x99, 0x99 },\r
2499 { 0x00, 0x9a, 0x9a },\r
2500 { 0x00, 0x9b, 0x9b },\r
2501 { 0x00, 0x9c, 0x9c },\r
2502 { 0x00, 0x9d, 0x9d },\r
2503 { 0x00, 0x9e, 0x9e },\r
2504 { 0x00, 0x9f, 0x9f },\r
2505 { 0x00, 0xa0, 0xa0 },\r
2506 { 0x00, 0xa1, 0xa1 },\r
2507 { 0x00, 0xa2, 0xa2 },\r
2508 { 0x00, 0xa3, 0xa3 },\r
2509 { 0x00, 0xa4, 0xa4 },\r
2510 { 0x00, 0xa5, 0xa5 },\r
2511 { 0x00, 0xa6, 0xa6 },\r
2512 { 0x00, 0xa7, 0xa7 },\r
2513 { 0x00, 0xa8, 0xa8 },\r
2514 { 0x00, 0xa9, 0xa9 },\r
2515 { 0x00, 0xaa, 0xaa },\r
2516 { 0x00, 0xab, 0xab },\r
2517 { 0x00, 0xac, 0xac },\r
2518 { 0x00, 0xad, 0xad },\r
2519 { 0x00, 0xae, 0xae },\r
2520 { 0x00, 0xaf, 0xaf },\r
2521 { 0x00, 0xb0, 0xb0 },\r
2522 { 0x00, 0xb1, 0xb1 },\r
2523 { 0x00, 0xb2, 0xb2 },\r
2524 { 0x00, 0xb3, 0xb3 },\r
2525 { 0x00, 0xb4, 0xb4 },\r
2526 { 0x00, 0xb5, 0xb5 },\r
2527 { 0x00, 0xb6, 0xb6 },\r
2528 { 0x00, 0xb7, 0xb7 },\r
2529 { 0x00, 0xb8, 0xb8 },\r
2530 { 0x00, 0xb9, 0xb9 },\r
2531 { 0x00, 0xba, 0xba },\r
2532 { 0x00, 0xbb, 0xbb },\r
2533 { 0x00, 0xbc, 0xbc },\r
2534 { 0x00, 0xbd, 0xbd },\r
2535 { 0x00, 0xbe, 0xbe },\r
2536 { 0x00, 0xbf, 0xbf },\r
2537 { 0x00, 0xc0, 0xc0 },\r
2538 { 0x00, 0xc1, 0xc1 },\r
2539 { 0x00, 0xc2, 0xc2 },\r
2540 { 0x00, 0xc3, 0xc3 },\r
2541 { 0x00, 0xc4, 0xc4 },\r
2542 { 0x00, 0xc5, 0xc5 },\r
2543 { 0x00, 0xc6, 0xc6 },\r
2544 { 0x00, 0xc7, 0xc7 },\r
2545 { 0x00, 0xc8, 0xc8 },\r
2546 { 0x00, 0xc9, 0xc9 },\r
2547 { 0x00, 0xca, 0xca },\r
2548 { 0x00, 0xcb, 0xcb },\r
2549 { 0x00, 0xcc, 0xcc },\r
2550 { 0x00, 0xcd, 0xcd },\r
2551 { 0x00, 0xce, 0xce },\r
2552 { 0x00, 0xcf, 0xcf },\r
2553 { 0x00, 0xd0, 0xd0 },\r
2554 { 0x00, 0xd1, 0xd1 },\r
2555 { 0x00, 0xd2, 0xd2 },\r
2556 { 0x00, 0xd3, 0xd3 },\r
2557 { 0x00, 0xd4, 0xd4 },\r
2558 { 0x00, 0xd5, 0xd5 },\r
2559 { 0x00, 0xd6, 0xd6 },\r
2560 { 0x00, 0xd7, 0xd7 },\r
2561 { 0x00, 0xd8, 0xd8 },\r
2562 { 0x00, 0xd9, 0xd9 },\r
2563 { 0x00, 0xda, 0xda },\r
2564 { 0x00, 0xdb, 0xdb },\r
2565 { 0x00, 0xdc, 0xdc },\r
2566 { 0x00, 0xdd, 0xdd },\r
2567 { 0x00, 0xde, 0xde },\r
2568 { 0x00, 0xdf, 0xdf },\r
2569 { 0x00, 0xe0, 0xe0 },\r
2570 { 0x00, 0xe1, 0xe1 },\r
2571 { 0x00, 0xe2, 0xe2 },\r
2572 { 0x00, 0xe3, 0xe3 },\r
2573 { 0x00, 0xe4, 0xe4 },\r
2574 { 0x00, 0xe5, 0xe5 },\r
2575 { 0x00, 0xe6, 0xe6 },\r
2576 { 0x00, 0xe7, 0xe7 },\r
2577 { 0x00, 0xe8, 0xe8 },\r
2578 { 0x00, 0xe9, 0xe9 },\r
2579 { 0x00, 0xea, 0xea },\r
2580 { 0x00, 0xeb, 0xeb },\r
2581 { 0x00, 0xec, 0xec },\r
2582 { 0x00, 0xed, 0xed },\r
2583 { 0x00, 0xee, 0xee },\r
2584 { 0x00, 0xef, 0xef },\r
2585 { 0x00, 0xf0, 0xf0 },\r
2586 { 0x00, 0xf1, 0xf1 },\r
2587 { 0x00, 0xf2, 0xf2 },\r
2588 { 0x00, 0xf3, 0xf3 },\r
2589 { 0x00, 0xf4, 0xf4 },\r
2590 { 0x00, 0xf5, 0xf5 },\r
2591 { 0x00, 0xf6, 0xf6 },\r
2592 { 0x00, 0xf7, 0xf7 },\r
2593 { 0x00, 0xf8, 0xf8 },\r
2594 { 0x00, 0xf9, 0xf9 },\r
2595 { 0x00, 0xfa, 0xfa },\r
2596 { 0x00, 0xfb, 0xfb },\r
2597 { 0x00, 0xfc, 0xfc },\r
2598 { 0x00, 0xfd, 0xfd },\r
2599 { 0x00, 0xfe, 0xfe },\r
2600 { 0x00, 0xff, 0xff },\r
2601 };\r
2602 \r
2603 struct cs_info iso9_tbl[] = {\r
2604 { 0x00, 0x00, 0x00 },\r
2605 { 0x00, 0x01, 0x01 },\r
2606 { 0x00, 0x02, 0x02 },\r
2607 { 0x00, 0x03, 0x03 },\r
2608 { 0x00, 0x04, 0x04 },\r
2609 { 0x00, 0x05, 0x05 },\r
2610 { 0x00, 0x06, 0x06 },\r
2611 { 0x00, 0x07, 0x07 },\r
2612 { 0x00, 0x08, 0x08 },\r
2613 { 0x00, 0x09, 0x09 },\r
2614 { 0x00, 0x0a, 0x0a },\r
2615 { 0x00, 0x0b, 0x0b },\r
2616 { 0x00, 0x0c, 0x0c },\r
2617 { 0x00, 0x0d, 0x0d },\r
2618 { 0x00, 0x0e, 0x0e },\r
2619 { 0x00, 0x0f, 0x0f },\r
2620 { 0x00, 0x10, 0x10 },\r
2621 { 0x00, 0x11, 0x11 },\r
2622 { 0x00, 0x12, 0x12 },\r
2623 { 0x00, 0x13, 0x13 },\r
2624 { 0x00, 0x14, 0x14 },\r
2625 { 0x00, 0x15, 0x15 },\r
2626 { 0x00, 0x16, 0x16 },\r
2627 { 0x00, 0x17, 0x17 },\r
2628 { 0x00, 0x18, 0x18 },\r
2629 { 0x00, 0x19, 0x19 },\r
2630 { 0x00, 0x1a, 0x1a },\r
2631 { 0x00, 0x1b, 0x1b },\r
2632 { 0x00, 0x1c, 0x1c },\r
2633 { 0x00, 0x1d, 0x1d },\r
2634 { 0x00, 0x1e, 0x1e },\r
2635 { 0x00, 0x1f, 0x1f },\r
2636 { 0x00, 0x20, 0x20 },\r
2637 { 0x00, 0x21, 0x21 },\r
2638 { 0x00, 0x22, 0x22 },\r
2639 { 0x00, 0x23, 0x23 },\r
2640 { 0x00, 0x24, 0x24 },\r
2641 { 0x00, 0x25, 0x25 },\r
2642 { 0x00, 0x26, 0x26 },\r
2643 { 0x00, 0x27, 0x27 },\r
2644 { 0x00, 0x28, 0x28 },\r
2645 { 0x00, 0x29, 0x29 },\r
2646 { 0x00, 0x2a, 0x2a },\r
2647 { 0x00, 0x2b, 0x2b },\r
2648 { 0x00, 0x2c, 0x2c },\r
2649 { 0x00, 0x2d, 0x2d },\r
2650 { 0x00, 0x2e, 0x2e },\r
2651 { 0x00, 0x2f, 0x2f },\r
2652 { 0x00, 0x30, 0x30 },\r
2653 { 0x00, 0x31, 0x31 },\r
2654 { 0x00, 0x32, 0x32 },\r
2655 { 0x00, 0x33, 0x33 },\r
2656 { 0x00, 0x34, 0x34 },\r
2657 { 0x00, 0x35, 0x35 },\r
2658 { 0x00, 0x36, 0x36 },\r
2659 { 0x00, 0x37, 0x37 },\r
2660 { 0x00, 0x38, 0x38 },\r
2661 { 0x00, 0x39, 0x39 },\r
2662 { 0x00, 0x3a, 0x3a },\r
2663 { 0x00, 0x3b, 0x3b },\r
2664 { 0x00, 0x3c, 0x3c },\r
2665 { 0x00, 0x3d, 0x3d },\r
2666 { 0x00, 0x3e, 0x3e },\r
2667 { 0x00, 0x3f, 0x3f },\r
2668 { 0x00, 0x40, 0x40 },\r
2669 { 0x01, 0x61, 0x41 },\r
2670 { 0x01, 0x62, 0x42 },\r
2671 { 0x01, 0x63, 0x43 },\r
2672 { 0x01, 0x64, 0x44 },\r
2673 { 0x01, 0x65, 0x45 },\r
2674 { 0x01, 0x66, 0x46 },\r
2675 { 0x01, 0x67, 0x47 },\r
2676 { 0x01, 0x68, 0x48 },\r
2677 { 0x01, 0xfd, 0x49 },\r
2678 { 0x01, 0x6a, 0x4a },\r
2679 { 0x01, 0x6b, 0x4b },\r
2680 { 0x01, 0x6c, 0x4c },\r
2681 { 0x01, 0x6d, 0x4d },\r
2682 { 0x01, 0x6e, 0x4e },\r
2683 { 0x01, 0x6f, 0x4f },\r
2684 { 0x01, 0x70, 0x50 },\r
2685 { 0x01, 0x71, 0x51 },\r
2686 { 0x01, 0x72, 0x52 },\r
2687 { 0x01, 0x73, 0x53 },\r
2688 { 0x01, 0x74, 0x54 },\r
2689 { 0x01, 0x75, 0x55 },\r
2690 { 0x01, 0x76, 0x56 },\r
2691 { 0x01, 0x77, 0x57 },\r
2692 { 0x01, 0x78, 0x58 },\r
2693 { 0x01, 0x79, 0x59 },\r
2694 { 0x01, 0x7a, 0x5a },\r
2695 { 0x00, 0x5b, 0x5b },\r
2696 { 0x00, 0x5c, 0x5c },\r
2697 { 0x00, 0x5d, 0x5d },\r
2698 { 0x00, 0x5e, 0x5e },\r
2699 { 0x00, 0x5f, 0x5f },\r
2700 { 0x00, 0x60, 0x60 },\r
2701 { 0x00, 0x61, 0x41 },\r
2702 { 0x00, 0x62, 0x42 },\r
2703 { 0x00, 0x63, 0x43 },\r
2704 { 0x00, 0x64, 0x44 },\r
2705 { 0x00, 0x65, 0x45 },\r
2706 { 0x00, 0x66, 0x46 },\r
2707 { 0x00, 0x67, 0x47 },\r
2708 { 0x00, 0x68, 0x48 },\r
2709 { 0x00, 0x69, 0xdd },\r
2710 { 0x00, 0x6a, 0x4a },\r
2711 { 0x00, 0x6b, 0x4b },\r
2712 { 0x00, 0x6c, 0x4c },\r
2713 { 0x00, 0x6d, 0x4d },\r
2714 { 0x00, 0x6e, 0x4e },\r
2715 { 0x00, 0x6f, 0x4f },\r
2716 { 0x00, 0x70, 0x50 },\r
2717 { 0x00, 0x71, 0x51 },\r
2718 { 0x00, 0x72, 0x52 },\r
2719 { 0x00, 0x73, 0x53 },\r
2720 { 0x00, 0x74, 0x54 },\r
2721 { 0x00, 0x75, 0x55 },\r
2722 { 0x00, 0x76, 0x56 },\r
2723 { 0x00, 0x77, 0x57 },\r
2724 { 0x00, 0x78, 0x58 },\r
2725 { 0x00, 0x79, 0x59 },\r
2726 { 0x00, 0x7a, 0x5a },\r
2727 { 0x00, 0x7b, 0x7b },\r
2728 { 0x00, 0x7c, 0x7c },\r
2729 { 0x00, 0x7d, 0x7d },\r
2730 { 0x00, 0x7e, 0x7e },\r
2731 { 0x00, 0x7f, 0x7f },\r
2732 { 0x00, 0x80, 0x80 },\r
2733 { 0x00, 0x81, 0x81 },\r
2734 { 0x00, 0x82, 0x82 },\r
2735 { 0x00, 0x83, 0x83 },\r
2736 { 0x00, 0x84, 0x84 },\r
2737 { 0x00, 0x85, 0x85 },\r
2738 { 0x00, 0x86, 0x86 },\r
2739 { 0x00, 0x87, 0x87 },\r
2740 { 0x00, 0x88, 0x88 },\r
2741 { 0x00, 0x89, 0x89 },\r
2742 { 0x00, 0x8a, 0x8a },\r
2743 { 0x00, 0x8b, 0x8b },\r
2744 { 0x00, 0x8c, 0x8c },\r
2745 { 0x00, 0x8d, 0x8d },\r
2746 { 0x00, 0x8e, 0x8e },\r
2747 { 0x00, 0x8f, 0x8f },\r
2748 { 0x00, 0x90, 0x90 },\r
2749 { 0x00, 0x91, 0x91 },\r
2750 { 0x00, 0x92, 0x92 },\r
2751 { 0x00, 0x93, 0x93 },\r
2752 { 0x00, 0x94, 0x94 },\r
2753 { 0x00, 0x95, 0x95 },\r
2754 { 0x00, 0x96, 0x96 },\r
2755 { 0x00, 0x97, 0x97 },\r
2756 { 0x00, 0x98, 0x98 },\r
2757 { 0x00, 0x99, 0x99 },\r
2758 { 0x00, 0x9a, 0x9a },\r
2759 { 0x00, 0x9b, 0x9b },\r
2760 { 0x00, 0x9c, 0x9c },\r
2761 { 0x00, 0x9d, 0x9d },\r
2762 { 0x00, 0x9e, 0x9e },\r
2763 { 0x00, 0x9f, 0x9f },\r
2764 { 0x00, 0xa0, 0xa0 },\r
2765 { 0x00, 0xa1, 0xa1 },\r
2766 { 0x00, 0xa2, 0xa2 },\r
2767 { 0x00, 0xa3, 0xa3 },\r
2768 { 0x00, 0xa4, 0xa4 },\r
2769 { 0x00, 0xa5, 0xa5 },\r
2770 { 0x00, 0xa6, 0xa6 },\r
2771 { 0x00, 0xa7, 0xa7 },\r
2772 { 0x00, 0xa8, 0xa8 },\r
2773 { 0x00, 0xa9, 0xa9 },\r
2774 { 0x00, 0xaa, 0xaa },\r
2775 { 0x00, 0xab, 0xab },\r
2776 { 0x00, 0xac, 0xac },\r
2777 { 0x00, 0xad, 0xad },\r
2778 { 0x00, 0xae, 0xae },\r
2779 { 0x00, 0xaf, 0xaf },\r
2780 { 0x00, 0xb0, 0xb0 },\r
2781 { 0x00, 0xb1, 0xb1 },\r
2782 { 0x00, 0xb2, 0xb2 },\r
2783 { 0x00, 0xb3, 0xb3 },\r
2784 { 0x00, 0xb4, 0xb4 },\r
2785 { 0x00, 0xb5, 0xb5 },\r
2786 { 0x00, 0xb6, 0xb6 },\r
2787 { 0x00, 0xb7, 0xb7 },\r
2788 { 0x00, 0xb8, 0xb8 },\r
2789 { 0x00, 0xb9, 0xb9 },\r
2790 { 0x00, 0xba, 0xba },\r
2791 { 0x00, 0xbb, 0xbb },\r
2792 { 0x00, 0xbc, 0xbc },\r
2793 { 0x00, 0xbd, 0xbd },\r
2794 { 0x00, 0xbe, 0xbe },\r
2795 { 0x00, 0xbf, 0xbf },\r
2796 { 0x01, 0xe0, 0xc0 },\r
2797 { 0x01, 0xe1, 0xc1 },\r
2798 { 0x01, 0xe2, 0xc2 },\r
2799 { 0x01, 0xe3, 0xc3 },\r
2800 { 0x01, 0xe4, 0xc4 },\r
2801 { 0x01, 0xe5, 0xc5 },\r
2802 { 0x01, 0xe6, 0xc6 },\r
2803 { 0x01, 0xe7, 0xc7 },\r
2804 { 0x01, 0xe8, 0xc8 },\r
2805 { 0x01, 0xe9, 0xc9 },\r
2806 { 0x01, 0xea, 0xca },\r
2807 { 0x01, 0xeb, 0xcb },\r
2808 { 0x01, 0xec, 0xcc },\r
2809 { 0x01, 0xed, 0xcd },\r
2810 { 0x01, 0xee, 0xce },\r
2811 { 0x01, 0xef, 0xcf },\r
2812 { 0x01, 0xf0, 0xd0 },\r
2813 { 0x01, 0xf1, 0xd1 },\r
2814 { 0x01, 0xf2, 0xd2 },\r
2815 { 0x01, 0xf3, 0xd3 },\r
2816 { 0x01, 0xf4, 0xd4 },\r
2817 { 0x01, 0xf5, 0xd5 },\r
2818 { 0x01, 0xf6, 0xd6 },\r
2819 { 0x00, 0xd7, 0xd7 },\r
2820 { 0x01, 0xf8, 0xd8 },\r
2821 { 0x01, 0xf9, 0xd9 },\r
2822 { 0x01, 0xfa, 0xda },\r
2823 { 0x01, 0xfb, 0xdb },\r
2824 { 0x01, 0xfc, 0xdc },\r
2825 { 0x01, 0x69, 0xdd },\r
2826 { 0x01, 0xfe, 0xde },\r
2827 { 0x00, 0xdf, 0xdf },\r
2828 { 0x00, 0xe0, 0xc0 },\r
2829 { 0x00, 0xe1, 0xc1 },\r
2830 { 0x00, 0xe2, 0xc2 },\r
2831 { 0x00, 0xe3, 0xc3 },\r
2832 { 0x00, 0xe4, 0xc4 },\r
2833 { 0x00, 0xe5, 0xc5 },\r
2834 { 0x00, 0xe6, 0xc6 },\r
2835 { 0x00, 0xe7, 0xc7 },\r
2836 { 0x00, 0xe8, 0xc8 },\r
2837 { 0x00, 0xe9, 0xc9 },\r
2838 { 0x00, 0xea, 0xca },\r
2839 { 0x00, 0xeb, 0xcb },\r
2840 { 0x00, 0xec, 0xcc },\r
2841 { 0x00, 0xed, 0xcd },\r
2842 { 0x00, 0xee, 0xce },\r
2843 { 0x00, 0xef, 0xcf },\r
2844 { 0x00, 0xf0, 0xd0 },\r
2845 { 0x00, 0xf1, 0xd1 },\r
2846 { 0x00, 0xf2, 0xd2 },\r
2847 { 0x00, 0xf3, 0xd3 },\r
2848 { 0x00, 0xf4, 0xd4 },\r
2849 { 0x00, 0xf5, 0xd5 },\r
2850 { 0x00, 0xf6, 0xd6 },\r
2851 { 0x00, 0xf7, 0xf7 },\r
2852 { 0x00, 0xf8, 0xd8 },\r
2853 { 0x00, 0xf9, 0xd9 },\r
2854 { 0x00, 0xfa, 0xda },\r
2855 { 0x00, 0xfb, 0xdb },\r
2856 { 0x00, 0xfc, 0xdc },\r
2857 { 0x00, 0xfd, 0x49 },\r
2858 { 0x00, 0xfe, 0xde },\r
2859 { 0x00, 0xff, 0xff },\r
2860 };\r
2861 \r
2862 struct cs_info iso10_tbl[] = {\r
2863 { 0x00, 0x00, 0x00 },\r
2864 { 0x00, 0x01, 0x01 },\r
2865 { 0x00, 0x02, 0x02 },\r
2866 { 0x00, 0x03, 0x03 },\r
2867 { 0x00, 0x04, 0x04 },\r
2868 { 0x00, 0x05, 0x05 },\r
2869 { 0x00, 0x06, 0x06 },\r
2870 { 0x00, 0x07, 0x07 },\r
2871 { 0x00, 0x08, 0x08 },\r
2872 { 0x00, 0x09, 0x09 },\r
2873 { 0x00, 0x0a, 0x0a },\r
2874 { 0x00, 0x0b, 0x0b },\r
2875 { 0x00, 0x0c, 0x0c },\r
2876 { 0x00, 0x0d, 0x0d },\r
2877 { 0x00, 0x0e, 0x0e },\r
2878 { 0x00, 0x0f, 0x0f },\r
2879 { 0x00, 0x10, 0x10 },\r
2880 { 0x00, 0x11, 0x11 },\r
2881 { 0x00, 0x12, 0x12 },\r
2882 { 0x00, 0x13, 0x13 },\r
2883 { 0x00, 0x14, 0x14 },\r
2884 { 0x00, 0x15, 0x15 },\r
2885 { 0x00, 0x16, 0x16 },\r
2886 { 0x00, 0x17, 0x17 },\r
2887 { 0x00, 0x18, 0x18 },\r
2888 { 0x00, 0x19, 0x19 },\r
2889 { 0x00, 0x1a, 0x1a },\r
2890 { 0x00, 0x1b, 0x1b },\r
2891 { 0x00, 0x1c, 0x1c },\r
2892 { 0x00, 0x1d, 0x1d },\r
2893 { 0x00, 0x1e, 0x1e },\r
2894 { 0x00, 0x1f, 0x1f },\r
2895 { 0x00, 0x20, 0x20 },\r
2896 { 0x00, 0x21, 0x21 },\r
2897 { 0x00, 0x22, 0x22 },\r
2898 { 0x00, 0x23, 0x23 },\r
2899 { 0x00, 0x24, 0x24 },\r
2900 { 0x00, 0x25, 0x25 },\r
2901 { 0x00, 0x26, 0x26 },\r
2902 { 0x00, 0x27, 0x27 },\r
2903 { 0x00, 0x28, 0x28 },\r
2904 { 0x00, 0x29, 0x29 },\r
2905 { 0x00, 0x2a, 0x2a },\r
2906 { 0x00, 0x2b, 0x2b },\r
2907 { 0x00, 0x2c, 0x2c },\r
2908 { 0x00, 0x2d, 0x2d },\r
2909 { 0x00, 0x2e, 0x2e },\r
2910 { 0x00, 0x2f, 0x2f },\r
2911 { 0x00, 0x30, 0x30 },\r
2912 { 0x00, 0x31, 0x31 },\r
2913 { 0x00, 0x32, 0x32 },\r
2914 { 0x00, 0x33, 0x33 },\r
2915 { 0x00, 0x34, 0x34 },\r
2916 { 0x00, 0x35, 0x35 },\r
2917 { 0x00, 0x36, 0x36 },\r
2918 { 0x00, 0x37, 0x37 },\r
2919 { 0x00, 0x38, 0x38 },\r
2920 { 0x00, 0x39, 0x39 },\r
2921 { 0x00, 0x3a, 0x3a },\r
2922 { 0x00, 0x3b, 0x3b },\r
2923 { 0x00, 0x3c, 0x3c },\r
2924 { 0x00, 0x3d, 0x3d },\r
2925 { 0x00, 0x3e, 0x3e },\r
2926 { 0x00, 0x3f, 0x3f },\r
2927 { 0x00, 0x40, 0x40 },\r
2928 { 0x01, 0x61, 0x41 },\r
2929 { 0x01, 0x62, 0x42 },\r
2930 { 0x01, 0x63, 0x43 },\r
2931 { 0x01, 0x64, 0x44 },\r
2932 { 0x01, 0x65, 0x45 },\r
2933 { 0x01, 0x66, 0x46 },\r
2934 { 0x01, 0x67, 0x47 },\r
2935 { 0x01, 0x68, 0x48 },\r
2936 { 0x01, 0x69, 0x49 },\r
2937 { 0x01, 0x6a, 0x4a },\r
2938 { 0x01, 0x6b, 0x4b },\r
2939 { 0x01, 0x6c, 0x4c },\r
2940 { 0x01, 0x6d, 0x4d },\r
2941 { 0x01, 0x6e, 0x4e },\r
2942 { 0x01, 0x6f, 0x4f },\r
2943 { 0x01, 0x70, 0x50 },\r
2944 { 0x01, 0x71, 0x51 },\r
2945 { 0x01, 0x72, 0x52 },\r
2946 { 0x01, 0x73, 0x53 },\r
2947 { 0x01, 0x74, 0x54 },\r
2948 { 0x01, 0x75, 0x55 },\r
2949 { 0x01, 0x76, 0x56 },\r
2950 { 0x01, 0x77, 0x57 },\r
2951 { 0x01, 0x78, 0x58 },\r
2952 { 0x01, 0x79, 0x59 },\r
2953 { 0x01, 0x7a, 0x5a },\r
2954 { 0x00, 0x5b, 0x5b },\r
2955 { 0x00, 0x5c, 0x5c },\r
2956 { 0x00, 0x5d, 0x5d },\r
2957 { 0x00, 0x5e, 0x5e },\r
2958 { 0x00, 0x5f, 0x5f },\r
2959 { 0x00, 0x60, 0x60 },\r
2960 { 0x00, 0x61, 0x41 },\r
2961 { 0x00, 0x62, 0x42 },\r
2962 { 0x00, 0x63, 0x43 },\r
2963 { 0x00, 0x64, 0x44 },\r
2964 { 0x00, 0x65, 0x45 },\r
2965 { 0x00, 0x66, 0x46 },\r
2966 { 0x00, 0x67, 0x47 },\r
2967 { 0x00, 0x68, 0x48 },\r
2968 { 0x00, 0x69, 0x49 },\r
2969 { 0x00, 0x6a, 0x4a },\r
2970 { 0x00, 0x6b, 0x4b },\r
2971 { 0x00, 0x6c, 0x4c },\r
2972 { 0x00, 0x6d, 0x4d },\r
2973 { 0x00, 0x6e, 0x4e },\r
2974 { 0x00, 0x6f, 0x4f },\r
2975 { 0x00, 0x70, 0x50 },\r
2976 { 0x00, 0x71, 0x51 },\r
2977 { 0x00, 0x72, 0x52 },\r
2978 { 0x00, 0x73, 0x53 },\r
2979 { 0x00, 0x74, 0x54 },\r
2980 { 0x00, 0x75, 0x55 },\r
2981 { 0x00, 0x76, 0x56 },\r
2982 { 0x00, 0x77, 0x57 },\r
2983 { 0x00, 0x78, 0x58 },\r
2984 { 0x00, 0x79, 0x59 },\r
2985 { 0x00, 0x7a, 0x5a },\r
2986 { 0x00, 0x7b, 0x7b },\r
2987 { 0x00, 0x7c, 0x7c },\r
2988 { 0x00, 0x7d, 0x7d },\r
2989 { 0x00, 0x7e, 0x7e },\r
2990 { 0x00, 0x7f, 0x7f },\r
2991 { 0x00, 0x80, 0x80 },\r
2992 { 0x00, 0x81, 0x81 },\r
2993 { 0x00, 0x82, 0x82 },\r
2994 { 0x00, 0x83, 0x83 },\r
2995 { 0x00, 0x84, 0x84 },\r
2996 { 0x00, 0x85, 0x85 },\r
2997 { 0x00, 0x86, 0x86 },\r
2998 { 0x00, 0x87, 0x87 },\r
2999 { 0x00, 0x88, 0x88 },\r
3000 { 0x00, 0x89, 0x89 },\r
3001 { 0x00, 0x8a, 0x8a },\r
3002 { 0x00, 0x8b, 0x8b },\r
3003 { 0x00, 0x8c, 0x8c },\r
3004 { 0x00, 0x8d, 0x8d },\r
3005 { 0x00, 0x8e, 0x8e },\r
3006 { 0x00, 0x8f, 0x8f },\r
3007 { 0x00, 0x90, 0x90 },\r
3008 { 0x00, 0x91, 0x91 },\r
3009 { 0x00, 0x92, 0x92 },\r
3010 { 0x00, 0x93, 0x93 },\r
3011 { 0x00, 0x94, 0x94 },\r
3012 { 0x00, 0x95, 0x95 },\r
3013 { 0x00, 0x96, 0x96 },\r
3014 { 0x00, 0x97, 0x97 },\r
3015 { 0x00, 0x98, 0x98 },\r
3016 { 0x00, 0x99, 0x99 },\r
3017 { 0x00, 0x9a, 0x9a },\r
3018 { 0x00, 0x9b, 0x9b },\r
3019 { 0x00, 0x9c, 0x9c },\r
3020 { 0x00, 0x9d, 0x9d },\r
3021 { 0x00, 0x9e, 0x9e },\r
3022 { 0x00, 0x9f, 0x9f },\r
3023 { 0x00, 0xa0, 0xa0 },\r
3024 { 0x00, 0xa1, 0xa1 },\r
3025 { 0x00, 0xa2, 0xa2 },\r
3026 { 0x00, 0xa3, 0xa3 },\r
3027 { 0x00, 0xa4, 0xa4 },\r
3028 { 0x00, 0xa5, 0xa5 },\r
3029 { 0x00, 0xa6, 0xa6 },\r
3030 { 0x00, 0xa7, 0xa7 },\r
3031 { 0x00, 0xa8, 0xa8 },\r
3032 { 0x00, 0xa9, 0xa9 },\r
3033 { 0x00, 0xaa, 0xaa },\r
3034 { 0x00, 0xab, 0xab },\r
3035 { 0x00, 0xac, 0xac },\r
3036 { 0x00, 0xad, 0xad },\r
3037 { 0x00, 0xae, 0xae },\r
3038 { 0x00, 0xaf, 0xaf },\r
3039 { 0x00, 0xb0, 0xb0 },\r
3040 { 0x00, 0xb1, 0xb1 },\r
3041 { 0x00, 0xb2, 0xb2 },\r
3042 { 0x00, 0xb3, 0xb3 },\r
3043 { 0x00, 0xb4, 0xb4 },\r
3044 { 0x00, 0xb5, 0xb5 },\r
3045 { 0x00, 0xb6, 0xb6 },\r
3046 { 0x00, 0xb7, 0xb7 },\r
3047 { 0x00, 0xb8, 0xb8 },\r
3048 { 0x00, 0xb9, 0xb9 },\r
3049 { 0x00, 0xba, 0xba },\r
3050 { 0x00, 0xbb, 0xbb },\r
3051 { 0x00, 0xbc, 0xbc },\r
3052 { 0x00, 0xbd, 0xbd },\r
3053 { 0x00, 0xbe, 0xbe },\r
3054 { 0x00, 0xbf, 0xbf },\r
3055 { 0x00, 0xc0, 0xc0 },\r
3056 { 0x00, 0xc1, 0xc1 },\r
3057 { 0x00, 0xc2, 0xc2 },\r
3058 { 0x00, 0xc3, 0xc3 },\r
3059 { 0x00, 0xc4, 0xc4 },\r
3060 { 0x00, 0xc5, 0xc5 },\r
3061 { 0x00, 0xc6, 0xc6 },\r
3062 { 0x00, 0xc7, 0xc7 },\r
3063 { 0x00, 0xc8, 0xc8 },\r
3064 { 0x00, 0xc9, 0xc9 },\r
3065 { 0x00, 0xca, 0xca },\r
3066 { 0x00, 0xcb, 0xcb },\r
3067 { 0x00, 0xcc, 0xcc },\r
3068 { 0x00, 0xcd, 0xcd },\r
3069 { 0x00, 0xce, 0xce },\r
3070 { 0x00, 0xcf, 0xcf },\r
3071 { 0x00, 0xd0, 0xd0 },\r
3072 { 0x00, 0xd1, 0xd1 },\r
3073 { 0x00, 0xd2, 0xd2 },\r
3074 { 0x00, 0xd3, 0xd3 },\r
3075 { 0x00, 0xd4, 0xd4 },\r
3076 { 0x00, 0xd5, 0xd5 },\r
3077 { 0x00, 0xd6, 0xd6 },\r
3078 { 0x00, 0xd7, 0xd7 },\r
3079 { 0x00, 0xd8, 0xd8 },\r
3080 { 0x00, 0xd9, 0xd9 },\r
3081 { 0x00, 0xda, 0xda },\r
3082 { 0x00, 0xdb, 0xdb },\r
3083 { 0x00, 0xdc, 0xdc },\r
3084 { 0x00, 0xdd, 0xdd },\r
3085 { 0x00, 0xde, 0xde },\r
3086 { 0x00, 0xdf, 0xdf },\r
3087 { 0x00, 0xe0, 0xe0 },\r
3088 { 0x00, 0xe1, 0xe1 },\r
3089 { 0x00, 0xe2, 0xe2 },\r
3090 { 0x00, 0xe3, 0xe3 },\r
3091 { 0x00, 0xe4, 0xe4 },\r
3092 { 0x00, 0xe5, 0xe5 },\r
3093 { 0x00, 0xe6, 0xe6 },\r
3094 { 0x00, 0xe7, 0xe7 },\r
3095 { 0x00, 0xe8, 0xe8 },\r
3096 { 0x00, 0xe9, 0xe9 },\r
3097 { 0x00, 0xea, 0xea },\r
3098 { 0x00, 0xeb, 0xeb },\r
3099 { 0x00, 0xec, 0xec },\r
3100 { 0x00, 0xed, 0xed },\r
3101 { 0x00, 0xee, 0xee },\r
3102 { 0x00, 0xef, 0xef },\r
3103 { 0x00, 0xf0, 0xf0 },\r
3104 { 0x00, 0xf1, 0xf1 },\r
3105 { 0x00, 0xf2, 0xf2 },\r
3106 { 0x00, 0xf3, 0xf3 },\r
3107 { 0x00, 0xf4, 0xf4 },\r
3108 { 0x00, 0xf5, 0xf5 },\r
3109 { 0x00, 0xf6, 0xf6 },\r
3110 { 0x00, 0xf7, 0xf7 },\r
3111 { 0x00, 0xf8, 0xf8 },\r
3112 { 0x00, 0xf9, 0xf9 },\r
3113 { 0x00, 0xfa, 0xfa },\r
3114 { 0x00, 0xfb, 0xfb },\r
3115 { 0x00, 0xfc, 0xfc },\r
3116 { 0x00, 0xfd, 0xfd },\r
3117 { 0x00, 0xfe, 0xfe },\r
3118 { 0x00, 0xff, 0xff },\r
3119 };\r
3120 \r
3121 struct cs_info koi8r_tbl[] = {\r
3122 { 0x00, 0x00, 0x00 },\r
3123 { 0x00, 0x01, 0x01 },\r
3124 { 0x00, 0x02, 0x02 },\r
3125 { 0x00, 0x03, 0x03 },\r
3126 { 0x00, 0x04, 0x04 },\r
3127 { 0x00, 0x05, 0x05 },\r
3128 { 0x00, 0x06, 0x06 },\r
3129 { 0x00, 0x07, 0x07 },\r
3130 { 0x00, 0x08, 0x08 },\r
3131 { 0x00, 0x09, 0x09 },\r
3132 { 0x00, 0x0a, 0x0a },\r
3133 { 0x00, 0x0b, 0x0b },\r
3134 { 0x00, 0x0c, 0x0c },\r
3135 { 0x00, 0x0d, 0x0d },\r
3136 { 0x00, 0x0e, 0x0e },\r
3137 { 0x00, 0x0f, 0x0f },\r
3138 { 0x00, 0x10, 0x10 },\r
3139 { 0x00, 0x11, 0x11 },\r
3140 { 0x00, 0x12, 0x12 },\r
3141 { 0x00, 0x13, 0x13 },\r
3142 { 0x00, 0x14, 0x14 },\r
3143 { 0x00, 0x15, 0x15 },\r
3144 { 0x00, 0x16, 0x16 },\r
3145 { 0x00, 0x17, 0x17 },\r
3146 { 0x00, 0x18, 0x18 },\r
3147 { 0x00, 0x19, 0x19 },\r
3148 { 0x00, 0x1a, 0x1a },\r
3149 { 0x00, 0x1b, 0x1b },\r
3150 { 0x00, 0x1c, 0x1c },\r
3151 { 0x00, 0x1d, 0x1d },\r
3152 { 0x00, 0x1e, 0x1e },\r
3153 { 0x00, 0x1f, 0x1f },\r
3154 { 0x00, 0x20, 0x20 },\r
3155 { 0x00, 0x21, 0x21 },\r
3156 { 0x00, 0x22, 0x22 },\r
3157 { 0x00, 0x23, 0x23 },\r
3158 { 0x00, 0x24, 0x24 },\r
3159 { 0x00, 0x25, 0x25 },\r
3160 { 0x00, 0x26, 0x26 },\r
3161 { 0x00, 0x27, 0x27 },\r
3162 { 0x00, 0x28, 0x28 },\r
3163 { 0x00, 0x29, 0x29 },\r
3164 { 0x00, 0x2a, 0x2a },\r
3165 { 0x00, 0x2b, 0x2b },\r
3166 { 0x00, 0x2c, 0x2c },\r
3167 { 0x00, 0x2d, 0x2d },\r
3168 { 0x00, 0x2e, 0x2e },\r
3169 { 0x00, 0x2f, 0x2f },\r
3170 { 0x00, 0x30, 0x30 },\r
3171 { 0x00, 0x31, 0x31 },\r
3172 { 0x00, 0x32, 0x32 },\r
3173 { 0x00, 0x33, 0x33 },\r
3174 { 0x00, 0x34, 0x34 },\r
3175 { 0x00, 0x35, 0x35 },\r
3176 { 0x00, 0x36, 0x36 },\r
3177 { 0x00, 0x37, 0x37 },\r
3178 { 0x00, 0x38, 0x38 },\r
3179 { 0x00, 0x39, 0x39 },\r
3180 { 0x00, 0x3a, 0x3a },\r
3181 { 0x00, 0x3b, 0x3b },\r
3182 { 0x00, 0x3c, 0x3c },\r
3183 { 0x00, 0x3d, 0x3d },\r
3184 { 0x00, 0x3e, 0x3e },\r
3185 { 0x00, 0x3f, 0x3f },\r
3186 { 0x00, 0x40, 0x40 },\r
3187 { 0x01, 0x61, 0x41 },\r
3188 { 0x01, 0x62, 0x42 },\r
3189 { 0x01, 0x63, 0x43 },\r
3190 { 0x01, 0x64, 0x44 },\r
3191 { 0x01, 0x65, 0x45 },\r
3192 { 0x01, 0x66, 0x46 },\r
3193 { 0x01, 0x67, 0x47 },\r
3194 { 0x01, 0x68, 0x48 },\r
3195 { 0x01, 0x69, 0x49 },\r
3196 { 0x01, 0x6a, 0x4a },\r
3197 { 0x01, 0x6b, 0x4b },\r
3198 { 0x01, 0x6c, 0x4c },\r
3199 { 0x01, 0x6d, 0x4d },\r
3200 { 0x01, 0x6e, 0x4e },\r
3201 { 0x01, 0x6f, 0x4f },\r
3202 { 0x01, 0x70, 0x50 },\r
3203 { 0x01, 0x71, 0x51 },\r
3204 { 0x01, 0x72, 0x52 },\r
3205 { 0x01, 0x73, 0x53 },\r
3206 { 0x01, 0x74, 0x54 },\r
3207 { 0x01, 0x75, 0x55 },\r
3208 { 0x01, 0x76, 0x56 },\r
3209 { 0x01, 0x77, 0x57 },\r
3210 { 0x01, 0x78, 0x58 },\r
3211 { 0x01, 0x79, 0x59 },\r
3212 { 0x01, 0x7a, 0x5a },\r
3213 { 0x00, 0x5b, 0x5b },\r
3214 { 0x00, 0x5c, 0x5c },\r
3215 { 0x00, 0x5d, 0x5d },\r
3216 { 0x00, 0x5e, 0x5e },\r
3217 { 0x00, 0x5f, 0x5f },\r
3218 { 0x00, 0x60, 0x60 },\r
3219 { 0x00, 0x61, 0x41 },\r
3220 { 0x00, 0x62, 0x42 },\r
3221 { 0x00, 0x63, 0x43 },\r
3222 { 0x00, 0x64, 0x44 },\r
3223 { 0x00, 0x65, 0x45 },\r
3224 { 0x00, 0x66, 0x46 },\r
3225 { 0x00, 0x67, 0x47 },\r
3226 { 0x00, 0x68, 0x48 },\r
3227 { 0x00, 0x69, 0x49 },\r
3228 { 0x00, 0x6a, 0x4a },\r
3229 { 0x00, 0x6b, 0x4b },\r
3230 { 0x00, 0x6c, 0x4c },\r
3231 { 0x00, 0x6d, 0x4d },\r
3232 { 0x00, 0x6e, 0x4e },\r
3233 { 0x00, 0x6f, 0x4f },\r
3234 { 0x00, 0x70, 0x50 },\r
3235 { 0x00, 0x71, 0x51 },\r
3236 { 0x00, 0x72, 0x52 },\r
3237 { 0x00, 0x73, 0x53 },\r
3238 { 0x00, 0x74, 0x54 },\r
3239 { 0x00, 0x75, 0x55 },\r
3240 { 0x00, 0x76, 0x56 },\r
3241 { 0x00, 0x77, 0x57 },\r
3242 { 0x00, 0x78, 0x58 },\r
3243 { 0x00, 0x79, 0x59 },\r
3244 { 0x00, 0x7a, 0x5a },\r
3245 { 0x00, 0x7b, 0x7b },\r
3246 { 0x00, 0x7c, 0x7c },\r
3247 { 0x00, 0x7d, 0x7d },\r
3248 { 0x00, 0x7e, 0x7e },\r
3249 { 0x00, 0x7f, 0x7f },\r
3250 { 0x00, 0x80, 0x80 },\r
3251 { 0x00, 0x81, 0x81 },\r
3252 { 0x00, 0x82, 0x82 },\r
3253 { 0x00, 0x83, 0x83 },\r
3254 { 0x00, 0x84, 0x84 },\r
3255 { 0x00, 0x85, 0x85 },\r
3256 { 0x00, 0x86, 0x86 },\r
3257 { 0x00, 0x87, 0x87 },\r
3258 { 0x00, 0x88, 0x88 },\r
3259 { 0x00, 0x89, 0x89 },\r
3260 { 0x00, 0x8a, 0x8a },\r
3261 { 0x00, 0x8b, 0x8b },\r
3262 { 0x00, 0x8c, 0x8c },\r
3263 { 0x00, 0x8d, 0x8d },\r
3264 { 0x00, 0x8e, 0x8e },\r
3265 { 0x00, 0x8f, 0x8f },\r
3266 { 0x00, 0x90, 0x90 },\r
3267 { 0x00, 0x91, 0x91 },\r
3268 { 0x00, 0x92, 0x92 },\r
3269 { 0x00, 0x93, 0x93 },\r
3270 { 0x00, 0x94, 0x94 },\r
3271 { 0x00, 0x95, 0x95 },\r
3272 { 0x00, 0x96, 0x96 },\r
3273 { 0x00, 0x97, 0x97 },\r
3274 { 0x00, 0x98, 0x98 },\r
3275 { 0x00, 0x99, 0x99 },\r
3276 { 0x00, 0x9a, 0x9a },\r
3277 { 0x00, 0x9b, 0x9b },\r
3278 { 0x00, 0x9c, 0x9c },\r
3279 { 0x00, 0x9d, 0x9d },\r
3280 { 0x00, 0x9e, 0x9e },\r
3281 { 0x00, 0x9f, 0x9f },\r
3282 { 0x00, 0xa0, 0xa0 },\r
3283 { 0x00, 0xa1, 0xa1 },\r
3284 { 0x00, 0xa2, 0xa2 },\r
3285 { 0x00, 0xa3, 0xb3 },\r
3286 { 0x00, 0xa4, 0xa4 },\r
3287 { 0x00, 0xa5, 0xa5 },\r
3288 { 0x00, 0xa6, 0xa6 },\r
3289 { 0x00, 0xa7, 0xa7 },\r
3290 { 0x00, 0xa8, 0xa8 },\r
3291 { 0x00, 0xa9, 0xa9 },\r
3292 { 0x00, 0xaa, 0xaa },\r
3293 { 0x00, 0xab, 0xab },\r
3294 { 0x00, 0xac, 0xac },\r
3295 { 0x00, 0xad, 0xad },\r
3296 { 0x00, 0xae, 0xae },\r
3297 { 0x00, 0xaf, 0xaf },\r
3298 { 0x00, 0xb0, 0xb0 },\r
3299 { 0x00, 0xb1, 0xb1 },\r
3300 { 0x00, 0xb2, 0xb2 },\r
3301 { 0x01, 0xa3, 0xb3 },\r
3302 { 0x00, 0xb4, 0xb4 },\r
3303 { 0x00, 0xb5, 0xb5 },\r
3304 { 0x00, 0xb6, 0xb6 },\r
3305 { 0x00, 0xb7, 0xb7 },\r
3306 { 0x00, 0xb8, 0xb8 },\r
3307 { 0x00, 0xb9, 0xb9 },\r
3308 { 0x00, 0xba, 0xba },\r
3309 { 0x00, 0xbb, 0xbb },\r
3310 { 0x00, 0xbc, 0xbc },\r
3311 { 0x00, 0xbd, 0xbd },\r
3312 { 0x00, 0xbe, 0xbe },\r
3313 { 0x00, 0xbf, 0xbf },\r
3314 { 0x00, 0xc0, 0xe0 },\r
3315 { 0x00, 0xc1, 0xe1 },\r
3316 { 0x00, 0xc2, 0xe2 },\r
3317 { 0x00, 0xc3, 0xe3 },\r
3318 { 0x00, 0xc4, 0xe4 },\r
3319 { 0x00, 0xc5, 0xe5 },\r
3320 { 0x00, 0xc6, 0xe6 },\r
3321 { 0x00, 0xc7, 0xe7 },\r
3322 { 0x00, 0xc8, 0xe8 },\r
3323 { 0x00, 0xc9, 0xe9 },\r
3324 { 0x00, 0xca, 0xea },\r
3325 { 0x00, 0xcb, 0xeb },\r
3326 { 0x00, 0xcc, 0xec },\r
3327 { 0x00, 0xcd, 0xed },\r
3328 { 0x00, 0xce, 0xee },\r
3329 { 0x00, 0xcf, 0xef },\r
3330 { 0x00, 0xd0, 0xf0 },\r
3331 { 0x00, 0xd1, 0xf1 },\r
3332 { 0x00, 0xd2, 0xf2 },\r
3333 { 0x00, 0xd3, 0xf3 },\r
3334 { 0x00, 0xd4, 0xf4 },\r
3335 { 0x00, 0xd5, 0xf5 },\r
3336 { 0x00, 0xd6, 0xf6 },\r
3337 { 0x00, 0xd7, 0xf7 },\r
3338 { 0x00, 0xd8, 0xf8 },\r
3339 { 0x00, 0xd9, 0xf9 },\r
3340 { 0x00, 0xda, 0xfa },\r
3341 { 0x00, 0xdb, 0xfb },\r
3342 { 0x00, 0xdc, 0xfc },\r
3343 { 0x00, 0xdd, 0xfd },\r
3344 { 0x00, 0xde, 0xfe },\r
3345 { 0x00, 0xdf, 0xff },\r
3346 { 0x01, 0xc0, 0xe0 },\r
3347 { 0x01, 0xc1, 0xe1 },\r
3348 { 0x01, 0xc2, 0xe2 },\r
3349 { 0x01, 0xc3, 0xe3 },\r
3350 { 0x01, 0xc4, 0xe4 },\r
3351 { 0x01, 0xc5, 0xe5 },\r
3352 { 0x01, 0xc6, 0xe6 },\r
3353 { 0x01, 0xc7, 0xe7 },\r
3354 { 0x01, 0xc8, 0xe8 },\r
3355 { 0x01, 0xc9, 0xe9 },\r
3356 { 0x01, 0xca, 0xea },\r
3357 { 0x01, 0xcb, 0xeb },\r
3358 { 0x01, 0xcc, 0xec },\r
3359 { 0x01, 0xcd, 0xed },\r
3360 { 0x01, 0xce, 0xee },\r
3361 { 0x01, 0xcf, 0xef },\r
3362 { 0x01, 0xd0, 0xf0 },\r
3363 { 0x01, 0xd1, 0xf1 },\r
3364 { 0x01, 0xd2, 0xf2 },\r
3365 { 0x01, 0xd3, 0xf3 },\r
3366 { 0x01, 0xd4, 0xf4 },\r
3367 { 0x01, 0xd5, 0xf5 },\r
3368 { 0x01, 0xd6, 0xf6 },\r
3369 { 0x01, 0xd7, 0xf7 },\r
3370 { 0x01, 0xd8, 0xf8 },\r
3371 { 0x01, 0xd9, 0xf9 },\r
3372 { 0x01, 0xda, 0xfa },\r
3373 { 0x01, 0xdb, 0xfb },\r
3374 { 0x01, 0xdc, 0xfc },\r
3375 { 0x01, 0xdd, 0xfd },\r
3376 { 0x01, 0xde, 0xfe },\r
3377 { 0x01, 0xdf, 0xff },\r
3378 };\r
3379 \r
3380 struct cs_info koi8u_tbl[] = {\r
3381 { 0x00, 0x00, 0x00 },\r
3382 { 0x00, 0x01, 0x01 },\r
3383 { 0x00, 0x02, 0x02 },\r
3384 { 0x00, 0x03, 0x03 },\r
3385 { 0x00, 0x04, 0x04 },\r
3386 { 0x00, 0x05, 0x05 },\r
3387 { 0x00, 0x06, 0x06 },\r
3388 { 0x00, 0x07, 0x07 },\r
3389 { 0x00, 0x08, 0x08 },\r
3390 { 0x00, 0x09, 0x09 },\r
3391 { 0x00, 0x0a, 0x0a },\r
3392 { 0x00, 0x0b, 0x0b },\r
3393 { 0x00, 0x0c, 0x0c },\r
3394 { 0x00, 0x0d, 0x0d },\r
3395 { 0x00, 0x0e, 0x0e },\r
3396 { 0x00, 0x0f, 0x0f },\r
3397 { 0x00, 0x10, 0x10 },\r
3398 { 0x00, 0x11, 0x11 },\r
3399 { 0x00, 0x12, 0x12 },\r
3400 { 0x00, 0x13, 0x13 },\r
3401 { 0x00, 0x14, 0x14 },\r
3402 { 0x00, 0x15, 0x15 },\r
3403 { 0x00, 0x16, 0x16 },\r
3404 { 0x00, 0x17, 0x17 },\r
3405 { 0x00, 0x18, 0x18 },\r
3406 { 0x00, 0x19, 0x19 },\r
3407 { 0x00, 0x1a, 0x1a },\r
3408 { 0x00, 0x1b, 0x1b },\r
3409 { 0x00, 0x1c, 0x1c },\r
3410 { 0x00, 0x1d, 0x1d },\r
3411 { 0x00, 0x1e, 0x1e },\r
3412 { 0x00, 0x1f, 0x1f },\r
3413 { 0x00, 0x20, 0x20 },\r
3414 { 0x00, 0x21, 0x21 },\r
3415 { 0x00, 0x22, 0x22 },\r
3416 { 0x00, 0x23, 0x23 },\r
3417 { 0x00, 0x24, 0x24 },\r
3418 { 0x00, 0x25, 0x25 },\r
3419 { 0x00, 0x26, 0x26 },\r
3420 { 0x00, 0x27, 0x27 },\r
3421 { 0x00, 0x28, 0x28 },\r
3422 { 0x00, 0x29, 0x29 },\r
3423 { 0x00, 0x2a, 0x2a },\r
3424 { 0x00, 0x2b, 0x2b },\r
3425 { 0x00, 0x2c, 0x2c },\r
3426 { 0x00, 0x2d, 0x2d },\r
3427 { 0x00, 0x2e, 0x2e },\r
3428 { 0x00, 0x2f, 0x2f },\r
3429 { 0x00, 0x30, 0x30 },\r
3430 { 0x00, 0x31, 0x31 },\r
3431 { 0x00, 0x32, 0x32 },\r
3432 { 0x00, 0x33, 0x33 },\r
3433 { 0x00, 0x34, 0x34 },\r
3434 { 0x00, 0x35, 0x35 },\r
3435 { 0x00, 0x36, 0x36 },\r
3436 { 0x00, 0x37, 0x37 },\r
3437 { 0x00, 0x38, 0x38 },\r
3438 { 0x00, 0x39, 0x39 },\r
3439 { 0x00, 0x3a, 0x3a },\r
3440 { 0x00, 0x3b, 0x3b },\r
3441 { 0x00, 0x3c, 0x3c },\r
3442 { 0x00, 0x3d, 0x3d },\r
3443 { 0x00, 0x3e, 0x3e },\r
3444 { 0x00, 0x3f, 0x3f },\r
3445 { 0x00, 0x40, 0x40 },\r
3446 { 0x01, 0x61, 0x41 },\r
3447 { 0x01, 0x62, 0x42 },\r
3448 { 0x01, 0x63, 0x43 },\r
3449 { 0x01, 0x64, 0x44 },\r
3450 { 0x01, 0x65, 0x45 },\r
3451 { 0x01, 0x66, 0x46 },\r
3452 { 0x01, 0x67, 0x47 },\r
3453 { 0x01, 0x68, 0x48 },\r
3454 { 0x01, 0x69, 0x49 },\r
3455 { 0x01, 0x6a, 0x4a },\r
3456 { 0x01, 0x6b, 0x4b },\r
3457 { 0x01, 0x6c, 0x4c },\r
3458 { 0x01, 0x6d, 0x4d },\r
3459 { 0x01, 0x6e, 0x4e },\r
3460 { 0x01, 0x6f, 0x4f },\r
3461 { 0x01, 0x70, 0x50 },\r
3462 { 0x01, 0x71, 0x51 },\r
3463 { 0x01, 0x72, 0x52 },\r
3464 { 0x01, 0x73, 0x53 },\r
3465 { 0x01, 0x74, 0x54 },\r
3466 { 0x01, 0x75, 0x55 },\r
3467 { 0x01, 0x76, 0x56 },\r
3468 { 0x01, 0x77, 0x57 },\r
3469 { 0x01, 0x78, 0x58 },\r
3470 { 0x01, 0x79, 0x59 },\r
3471 { 0x01, 0x7a, 0x5a },\r
3472 { 0x00, 0x5b, 0x5b },\r
3473 { 0x00, 0x5c, 0x5c },\r
3474 { 0x00, 0x5d, 0x5d },\r
3475 { 0x00, 0x5e, 0x5e },\r
3476 { 0x00, 0x5f, 0x5f },\r
3477 { 0x00, 0x60, 0x60 },\r
3478 { 0x00, 0x61, 0x41 },\r
3479 { 0x00, 0x62, 0x42 },\r
3480 { 0x00, 0x63, 0x43 },\r
3481 { 0x00, 0x64, 0x44 },\r
3482 { 0x00, 0x65, 0x45 },\r
3483 { 0x00, 0x66, 0x46 },\r
3484 { 0x00, 0x67, 0x47 },\r
3485 { 0x00, 0x68, 0x48 },\r
3486 { 0x00, 0x69, 0x49 },\r
3487 { 0x00, 0x6a, 0x4a },\r
3488 { 0x00, 0x6b, 0x4b },\r
3489 { 0x00, 0x6c, 0x4c },\r
3490 { 0x00, 0x6d, 0x4d },\r
3491 { 0x00, 0x6e, 0x4e },\r
3492 { 0x00, 0x6f, 0x4f },\r
3493 { 0x00, 0x70, 0x50 },\r
3494 { 0x00, 0x71, 0x51 },\r
3495 { 0x00, 0x72, 0x52 },\r
3496 { 0x00, 0x73, 0x53 },\r
3497 { 0x00, 0x74, 0x54 },\r
3498 { 0x00, 0x75, 0x55 },\r
3499 { 0x00, 0x76, 0x56 },\r
3500 { 0x00, 0x77, 0x57 },\r
3501 { 0x00, 0x78, 0x58 },\r
3502 { 0x00, 0x79, 0x59 },\r
3503 { 0x00, 0x7a, 0x5a },\r
3504 { 0x00, 0x7b, 0x7b },\r
3505 { 0x00, 0x7c, 0x7c },\r
3506 { 0x00, 0x7d, 0x7d },\r
3507 { 0x00, 0x7e, 0x7e },\r
3508 { 0x00, 0x7f, 0x7f },\r
3509 { 0x00, 0x80, 0x80 },\r
3510 { 0x00, 0x81, 0x81 },\r
3511 { 0x00, 0x82, 0x82 },\r
3512 { 0x00, 0x83, 0x83 },\r
3513 { 0x00, 0x84, 0x84 },\r
3514 { 0x00, 0x85, 0x85 },\r
3515 { 0x00, 0x86, 0x86 },\r
3516 { 0x00, 0x87, 0x87 },\r
3517 { 0x00, 0x88, 0x88 },\r
3518 { 0x00, 0x89, 0x89 },\r
3519 { 0x00, 0x8a, 0x8a },\r
3520 { 0x00, 0x8b, 0x8b },\r
3521 { 0x00, 0x8c, 0x8c },\r
3522 { 0x00, 0x8d, 0x8d },\r
3523 { 0x00, 0x8e, 0x8e },\r
3524 { 0x00, 0x8f, 0x8f },\r
3525 { 0x00, 0x90, 0x90 },\r
3526 { 0x00, 0x91, 0x91 },\r
3527 { 0x00, 0x92, 0x92 },\r
3528 { 0x00, 0x93, 0x93 },\r
3529 { 0x00, 0x94, 0x94 },\r
3530 { 0x00, 0x95, 0x95 },\r
3531 { 0x00, 0x96, 0x96 },\r
3532 { 0x00, 0x97, 0x97 },\r
3533 { 0x00, 0x98, 0x98 },\r
3534 { 0x00, 0x99, 0x99 },\r
3535 { 0x00, 0x9a, 0x9a },\r
3536 { 0x00, 0x9b, 0x9b },\r
3537 { 0x00, 0x9c, 0x9c },\r
3538 { 0x00, 0x9d, 0x9d },\r
3539 { 0x00, 0x9e, 0x9e },\r
3540 { 0x00, 0x9f, 0x9f },\r
3541 { 0x00, 0xa0, 0xa0 },\r
3542 { 0x00, 0xa1, 0xa1 },\r
3543 { 0x00, 0xa2, 0xa2 },\r
3544 { 0x00, 0xa3, 0xb3 },\r
3545 { 0x00, 0xa4, 0xb4 }, /* ie */\r
3546 { 0x00, 0xa5, 0xa5 },\r
3547 { 0x00, 0xa6, 0xb6 }, /* i */\r
3548 { 0x00, 0xa7, 0xb7 }, /* ii */\r
3549 { 0x00, 0xa8, 0xa8 },\r
3550 { 0x00, 0xa9, 0xa9 },\r
3551 { 0x00, 0xaa, 0xaa },\r
3552 { 0x00, 0xab, 0xab },\r
3553 { 0x00, 0xac, 0xac },\r
3554 { 0x00, 0xad, 0xbd }, /* g'' */\r
3555 { 0x00, 0xae, 0xae },\r
3556 { 0x00, 0xaf, 0xaf },\r
3557 { 0x00, 0xb0, 0xb0 },\r
3558 { 0x00, 0xb1, 0xb1 },\r
3559 { 0x00, 0xb2, 0xb2 },\r
3560 { 0x01, 0xa3, 0xb3 },\r
3561 { 0x00, 0xb4, 0xb4 }, /* IE */\r
3562 { 0x00, 0xb5, 0xb5 },\r
3563 { 0x00, 0xb6, 0xb6 }, /* I */\r
3564 { 0x00, 0xb7, 0xb7 }, /* II */\r
3565 { 0x00, 0xb8, 0xb8 },\r
3566 { 0x00, 0xb9, 0xb9 },\r
3567 { 0x00, 0xba, 0xba },\r
3568 { 0x00, 0xbb, 0xbb },\r
3569 { 0x00, 0xbc, 0xbc },\r
3570 { 0x00, 0xbd, 0xbd },\r
3571 { 0x00, 0xbe, 0xbe },\r
3572 { 0x00, 0xbf, 0xbf },\r
3573 { 0x00, 0xc0, 0xe0 },\r
3574 { 0x00, 0xc1, 0xe1 },\r
3575 { 0x00, 0xc2, 0xe2 },\r
3576 { 0x00, 0xc3, 0xe3 },\r
3577 { 0x00, 0xc4, 0xe4 },\r
3578 { 0x00, 0xc5, 0xe5 },\r
3579 { 0x00, 0xc6, 0xe6 },\r
3580 { 0x00, 0xc7, 0xe7 },\r
3581 { 0x00, 0xc8, 0xe8 },\r
3582 { 0x00, 0xc9, 0xe9 },\r
3583 { 0x00, 0xca, 0xea },\r
3584 { 0x00, 0xcb, 0xeb },\r
3585 { 0x00, 0xcc, 0xec },\r
3586 { 0x00, 0xcd, 0xed },\r
3587 { 0x00, 0xce, 0xee },\r
3588 { 0x00, 0xcf, 0xef },\r
3589 { 0x00, 0xd0, 0xf0 },\r
3590 { 0x00, 0xd1, 0xf1 },\r
3591 { 0x00, 0xd2, 0xf2 },\r
3592 { 0x00, 0xd3, 0xf3 },\r
3593 { 0x00, 0xd4, 0xf4 },\r
3594 { 0x00, 0xd5, 0xf5 },\r
3595 { 0x00, 0xd6, 0xf6 },\r
3596 { 0x00, 0xd7, 0xf7 },\r
3597 { 0x00, 0xd8, 0xf8 },\r
3598 { 0x00, 0xd9, 0xf9 },\r
3599 { 0x00, 0xda, 0xfa },\r
3600 { 0x00, 0xdb, 0xfb },\r
3601 { 0x00, 0xdc, 0xfc },\r
3602 { 0x00, 0xdd, 0xfd },\r
3603 { 0x00, 0xde, 0xfe },\r
3604 { 0x00, 0xdf, 0xff },\r
3605 { 0x01, 0xc0, 0xe0 },\r
3606 { 0x01, 0xc1, 0xe1 },\r
3607 { 0x01, 0xc2, 0xe2 },\r
3608 { 0x01, 0xc3, 0xe3 },\r
3609 { 0x01, 0xc4, 0xe4 },\r
3610 { 0x01, 0xc5, 0xe5 },\r
3611 { 0x01, 0xc6, 0xe6 },\r
3612 { 0x01, 0xc7, 0xe7 },\r
3613 { 0x01, 0xc8, 0xe8 },\r
3614 { 0x01, 0xc9, 0xe9 },\r
3615 { 0x01, 0xca, 0xea },\r
3616 { 0x01, 0xcb, 0xeb },\r
3617 { 0x01, 0xcc, 0xec },\r
3618 { 0x01, 0xcd, 0xed },\r
3619 { 0x01, 0xce, 0xee },\r
3620 { 0x01, 0xcf, 0xef },\r
3621 { 0x01, 0xd0, 0xf0 },\r
3622 { 0x01, 0xd1, 0xf1 },\r
3623 { 0x01, 0xd2, 0xf2 },\r
3624 { 0x01, 0xd3, 0xf3 },\r
3625 { 0x01, 0xd4, 0xf4 },\r
3626 { 0x01, 0xd5, 0xf5 },\r
3627 { 0x01, 0xd6, 0xf6 },\r
3628 { 0x01, 0xd7, 0xf7 },\r
3629 { 0x01, 0xd8, 0xf8 },\r
3630 { 0x01, 0xd9, 0xf9 },\r
3631 { 0x01, 0xda, 0xfa },\r
3632 { 0x01, 0xdb, 0xfb },\r
3633 { 0x01, 0xdc, 0xfc },\r
3634 { 0x01, 0xdd, 0xfd },\r
3635 { 0x01, 0xde, 0xfe },\r
3636 { 0x01, 0xdf, 0xff },\r
3637 };\r
3638 \r
3639 struct cs_info cp1251_tbl[] = {\r
3640 { 0x00, 0x00, 0x00 },\r
3641 { 0x00, 0x01, 0x01 },\r
3642 { 0x00, 0x02, 0x02 },\r
3643 { 0x00, 0x03, 0x03 },\r
3644 { 0x00, 0x04, 0x04 },\r
3645 { 0x00, 0x05, 0x05 },\r
3646 { 0x00, 0x06, 0x06 },\r
3647 { 0x00, 0x07, 0x07 },\r
3648 { 0x00, 0x08, 0x08 },\r
3649 { 0x00, 0x09, 0x09 },\r
3650 { 0x00, 0x0a, 0x0a },\r
3651 { 0x00, 0x0b, 0x0b },\r
3652 { 0x00, 0x0c, 0x0c },\r
3653 { 0x00, 0x0d, 0x0d },\r
3654 { 0x00, 0x0e, 0x0e },\r
3655 { 0x00, 0x0f, 0x0f },\r
3656 { 0x00, 0x10, 0x10 },\r
3657 { 0x00, 0x11, 0x11 },\r
3658 { 0x00, 0x12, 0x12 },\r
3659 { 0x00, 0x13, 0x13 },\r
3660 { 0x00, 0x14, 0x14 },\r
3661 { 0x00, 0x15, 0x15 },\r
3662 { 0x00, 0x16, 0x16 },\r
3663 { 0x00, 0x17, 0x17 },\r
3664 { 0x00, 0x18, 0x18 },\r
3665 { 0x00, 0x19, 0x19 },\r
3666 { 0x00, 0x1a, 0x1a },\r
3667 { 0x00, 0x1b, 0x1b },\r
3668 { 0x00, 0x1c, 0x1c },\r
3669 { 0x00, 0x1d, 0x1d },\r
3670 { 0x00, 0x1e, 0x1e },\r
3671 { 0x00, 0x1f, 0x1f },\r
3672 { 0x00, 0x20, 0x20 },\r
3673 { 0x00, 0x21, 0x21 },\r
3674 { 0x00, 0x22, 0x22 },\r
3675 { 0x00, 0x23, 0x23 },\r
3676 { 0x00, 0x24, 0x24 },\r
3677 { 0x00, 0x25, 0x25 },\r
3678 { 0x00, 0x26, 0x26 },\r
3679 { 0x00, 0x27, 0x27 },\r
3680 { 0x00, 0x28, 0x28 },\r
3681 { 0x00, 0x29, 0x29 },\r
3682 { 0x00, 0x2a, 0x2a },\r
3683 { 0x00, 0x2b, 0x2b },\r
3684 { 0x00, 0x2c, 0x2c },\r
3685 { 0x00, 0x2d, 0x2d },\r
3686 { 0x00, 0x2e, 0x2e },\r
3687 { 0x00, 0x2f, 0x2f },\r
3688 { 0x00, 0x30, 0x30 },\r
3689 { 0x00, 0x31, 0x31 },\r
3690 { 0x00, 0x32, 0x32 },\r
3691 { 0x00, 0x33, 0x33 },\r
3692 { 0x00, 0x34, 0x34 },\r
3693 { 0x00, 0x35, 0x35 },\r
3694 { 0x00, 0x36, 0x36 },\r
3695 { 0x00, 0x37, 0x37 },\r
3696 { 0x00, 0x38, 0x38 },\r
3697 { 0x00, 0x39, 0x39 },\r
3698 { 0x00, 0x3a, 0x3a },\r
3699 { 0x00, 0x3b, 0x3b },\r
3700 { 0x00, 0x3c, 0x3c },\r
3701 { 0x00, 0x3d, 0x3d },\r
3702 { 0x00, 0x3e, 0x3e },\r
3703 { 0x00, 0x3f, 0x3f },\r
3704 { 0x00, 0x40, 0x40 },\r
3705 { 0x01, 0x61, 0x41 },\r
3706 { 0x01, 0x62, 0x42 },\r
3707 { 0x01, 0x63, 0x43 },\r
3708 { 0x01, 0x64, 0x44 },\r
3709 { 0x01, 0x65, 0x45 },\r
3710 { 0x01, 0x66, 0x46 },\r
3711 { 0x01, 0x67, 0x47 },\r
3712 { 0x01, 0x68, 0x48 },\r
3713 { 0x01, 0x69, 0x49 },\r
3714 { 0x01, 0x6a, 0x4a },\r
3715 { 0x01, 0x6b, 0x4b },\r
3716 { 0x01, 0x6c, 0x4c },\r
3717 { 0x01, 0x6d, 0x4d },\r
3718 { 0x01, 0x6e, 0x4e },\r
3719 { 0x01, 0x6f, 0x4f },\r
3720 { 0x01, 0x70, 0x50 },\r
3721 { 0x01, 0x71, 0x51 },\r
3722 { 0x01, 0x72, 0x52 },\r
3723 { 0x01, 0x73, 0x53 },\r
3724 { 0x01, 0x74, 0x54 },\r
3725 { 0x01, 0x75, 0x55 },\r
3726 { 0x01, 0x76, 0x56 },\r
3727 { 0x01, 0x77, 0x57 },\r
3728 { 0x01, 0x78, 0x58 },\r
3729 { 0x01, 0x79, 0x59 },\r
3730 { 0x01, 0x7a, 0x5a },\r
3731 { 0x00, 0x5b, 0x5b },\r
3732 { 0x00, 0x5c, 0x5c },\r
3733 { 0x00, 0x5d, 0x5d },\r
3734 { 0x00, 0x5e, 0x5e },\r
3735 { 0x00, 0x5f, 0x5f },\r
3736 { 0x00, 0x60, 0x60 },\r
3737 { 0x00, 0x61, 0x41 },\r
3738 { 0x00, 0x62, 0x42 },\r
3739 { 0x00, 0x63, 0x43 },\r
3740 { 0x00, 0x64, 0x44 },\r
3741 { 0x00, 0x65, 0x45 },\r
3742 { 0x00, 0x66, 0x46 },\r
3743 { 0x00, 0x67, 0x47 },\r
3744 { 0x00, 0x68, 0x48 },\r
3745 { 0x00, 0x69, 0x49 },\r
3746 { 0x00, 0x6a, 0x4a },\r
3747 { 0x00, 0x6b, 0x4b },\r
3748 { 0x00, 0x6c, 0x4c },\r
3749 { 0x00, 0x6d, 0x4d },\r
3750 { 0x00, 0x6e, 0x4e },\r
3751 { 0x00, 0x6f, 0x4f },\r
3752 { 0x00, 0x70, 0x50 },\r
3753 { 0x00, 0x71, 0x51 },\r
3754 { 0x00, 0x72, 0x52 },\r
3755 { 0x00, 0x73, 0x53 },\r
3756 { 0x00, 0x74, 0x54 },\r
3757 { 0x00, 0x75, 0x55 },\r
3758 { 0x00, 0x76, 0x56 },\r
3759 { 0x00, 0x77, 0x57 },\r
3760 { 0x00, 0x78, 0x58 },\r
3761 { 0x00, 0x79, 0x59 },\r
3762 { 0x00, 0x7a, 0x5a },\r
3763 { 0x00, 0x7b, 0x7b },\r
3764 { 0x00, 0x7c, 0x7c },\r
3765 { 0x00, 0x7d, 0x7d },\r
3766 { 0x00, 0x7e, 0x7e },\r
3767 { 0x00, 0x7f, 0x7f },\r
3768 { 0x01, 0x90, 0x80 },\r
3769 { 0x01, 0x83, 0x81 },\r
3770 { 0x00, 0x82, 0x82 },\r
3771 { 0x00, 0x83, 0x81 },\r
3772 { 0x00, 0x84, 0x84 },\r
3773 { 0x00, 0x85, 0x85 },\r
3774 { 0x00, 0x86, 0x86 },\r
3775 { 0x00, 0x87, 0x87 },\r
3776 { 0x00, 0x88, 0x88 },\r
3777 { 0x00, 0x89, 0x89 },\r
3778 { 0x01, 0x9a, 0x8a },\r
3779 { 0x00, 0x8b, 0x8b },\r
3780 { 0x01, 0x9c, 0x8c },\r
3781 { 0x01, 0x9d, 0x8d },\r
3782 { 0x01, 0x9e, 0x8e },\r
3783 { 0x01, 0x9f, 0x8f },\r
3784 { 0x00, 0x90, 0x80 },\r
3785 { 0x00, 0x91, 0x91 },\r
3786 { 0x00, 0x92, 0x92 },\r
3787 { 0x00, 0x93, 0x93 },\r
3788 { 0x00, 0x94, 0x94 },\r
3789 { 0x00, 0x95, 0x95 },\r
3790 { 0x00, 0x96, 0x96 },\r
3791 { 0x00, 0x97, 0x97 },\r
3792 { 0x00, 0x98, 0x98 },\r
3793 { 0x00, 0x99, 0x99 },\r
3794 { 0x00, 0x9a, 0x8a },\r
3795 { 0x00, 0x9b, 0x9b },\r
3796 { 0x00, 0x9c, 0x8c },\r
3797 { 0x00, 0x9d, 0x8d },\r
3798 { 0x00, 0x9e, 0x8e },\r
3799 { 0x00, 0x9f, 0x8f },\r
3800 { 0x00, 0xa0, 0xa0 },\r
3801 { 0x01, 0xa2, 0xa1 },\r
3802 { 0x00, 0xa2, 0xa1 },\r
3803 { 0x01, 0xbc, 0xa3 },\r
3804 { 0x00, 0xa4, 0xa4 },\r
3805 { 0x01, 0xb4, 0xa5 },\r
3806 { 0x00, 0xa6, 0xa6 },\r
3807 { 0x00, 0xa7, 0xa7 },\r
3808 { 0x01, 0xb8, 0xa8 },\r
3809 { 0x00, 0xa9, 0xa9 },\r
3810 { 0x01, 0xba, 0xaa },\r
3811 { 0x00, 0xab, 0xab },\r
3812 { 0x00, 0xac, 0xac },\r
3813 { 0x00, 0xad, 0xad },\r
3814 { 0x00, 0xae, 0xae },\r
3815 { 0x01, 0xbf, 0xaf },\r
3816 { 0x00, 0xb0, 0xb0 },\r
3817 { 0x00, 0xb1, 0xb1 },\r
3818 { 0x01, 0xb3, 0xb2 },\r
3819 { 0x00, 0xb3, 0xb2 },\r
3820 { 0x00, 0xb4, 0xa5 },\r
3821 { 0x00, 0xb5, 0xb5 },\r
3822 { 0x00, 0xb6, 0xb6 },\r
3823 { 0x00, 0xb7, 0xb7 },\r
3824 { 0x00, 0xb8, 0xa8 },\r
3825 { 0x00, 0xb9, 0xb9 },\r
3826 { 0x00, 0xba, 0xaa },\r
3827 { 0x00, 0xbb, 0xbb },\r
3828 { 0x00, 0xbc, 0xa3 },\r
3829 { 0x01, 0xbe, 0xbd },\r
3830 { 0x00, 0xbe, 0xbd },\r
3831 { 0x00, 0xbf, 0xaf },\r
3832 { 0x01, 0xe0, 0xc0 },\r
3833 { 0x01, 0xe1, 0xc1 },\r
3834 { 0x01, 0xe2, 0xc2 },\r
3835 { 0x01, 0xe3, 0xc3 },\r
3836 { 0x01, 0xe4, 0xc4 },\r
3837 { 0x01, 0xe5, 0xc5 },\r
3838 { 0x01, 0xe6, 0xc6 },\r
3839 { 0x01, 0xe7, 0xc7 },\r
3840 { 0x01, 0xe8, 0xc8 },\r
3841 { 0x01, 0xe9, 0xc9 },\r
3842 { 0x01, 0xea, 0xca },\r
3843 { 0x01, 0xeb, 0xcb },\r
3844 { 0x01, 0xec, 0xcc },\r
3845 { 0x01, 0xed, 0xcd },\r
3846 { 0x01, 0xee, 0xce },\r
3847 { 0x01, 0xef, 0xcf },\r
3848 { 0x01, 0xf0, 0xd0 },\r
3849 { 0x01, 0xf1, 0xd1 },\r
3850 { 0x01, 0xf2, 0xd2 },\r
3851 { 0x01, 0xf3, 0xd3 },\r
3852 { 0x01, 0xf4, 0xd4 },\r
3853 { 0x01, 0xf5, 0xd5 },\r
3854 { 0x01, 0xf6, 0xd6 },\r
3855 { 0x01, 0xf7, 0xd7 },\r
3856 { 0x01, 0xf8, 0xd8 },\r
3857 { 0x01, 0xf9, 0xd9 },\r
3858 { 0x01, 0xfa, 0xda },\r
3859 { 0x01, 0xfb, 0xdb },\r
3860 { 0x01, 0xfc, 0xdc },\r
3861 { 0x01, 0xfd, 0xdd },\r
3862 { 0x01, 0xfe, 0xde },\r
3863 { 0x01, 0xff, 0xdf },\r
3864 { 0x00, 0xe0, 0xc0 },\r
3865 { 0x00, 0xe1, 0xc1 },\r
3866 { 0x00, 0xe2, 0xc2 },\r
3867 { 0x00, 0xe3, 0xc3 },\r
3868 { 0x00, 0xe4, 0xc4 },\r
3869 { 0x00, 0xe5, 0xc5 },\r
3870 { 0x00, 0xe6, 0xc6 },\r
3871 { 0x00, 0xe7, 0xc7 },\r
3872 { 0x00, 0xe8, 0xc8 },\r
3873 { 0x00, 0xe9, 0xc9 },\r
3874 { 0x00, 0xea, 0xca },\r
3875 { 0x00, 0xeb, 0xcb },\r
3876 { 0x00, 0xec, 0xcc },\r
3877 { 0x00, 0xed, 0xcd },\r
3878 { 0x00, 0xee, 0xce },\r
3879 { 0x00, 0xef, 0xcf },\r
3880 { 0x00, 0xf0, 0xd0 },\r
3881 { 0x00, 0xf1, 0xd1 },\r
3882 { 0x00, 0xf2, 0xd2 },\r
3883 { 0x00, 0xf3, 0xd3 },\r
3884 { 0x00, 0xf4, 0xd4 },\r
3885 { 0x00, 0xf5, 0xd5 },\r
3886 { 0x00, 0xf6, 0xd6 },\r
3887 { 0x00, 0xf7, 0xd7 },\r
3888 { 0x00, 0xf8, 0xd8 },\r
3889 { 0x00, 0xf9, 0xd9 },\r
3890 { 0x00, 0xfa, 0xda },\r
3891 { 0x00, 0xfb, 0xdb },\r
3892 { 0x00, 0xfc, 0xdc },\r
3893 { 0x00, 0xfd, 0xdd },\r
3894 { 0x00, 0xfe, 0xde },\r
3895 { 0x00, 0xff, 0xdf },\r
3896 };\r
3897 \r
3898 struct cs_info iso13_tbl[] = {\r
3899 { 0x00, 0x00, 0x00 },\r
3900 { 0x00, 0x01, 0x01 },\r
3901 { 0x00, 0x02, 0x02 },\r
3902 { 0x00, 0x03, 0x03 },\r
3903 { 0x00, 0x04, 0x04 },\r
3904 { 0x00, 0x05, 0x05 },\r
3905 { 0x00, 0x06, 0x06 },\r
3906 { 0x00, 0x07, 0x07 },\r
3907 { 0x00, 0x08, 0x08 },\r
3908 { 0x00, 0x09, 0x09 },\r
3909 { 0x00, 0x0A, 0x0A },\r
3910 { 0x00, 0x0B, 0x0B },\r
3911 { 0x00, 0x0C, 0x0C },\r
3912 { 0x00, 0x0D, 0x0D },\r
3913 { 0x00, 0x0E, 0x0E },\r
3914 { 0x00, 0x0F, 0x0F },\r
3915 { 0x00, 0x10, 0x10 },\r
3916 { 0x00, 0x11, 0x11 },\r
3917 { 0x00, 0x12, 0x12 },\r
3918 { 0x00, 0x13, 0x13 },\r
3919 { 0x00, 0x14, 0x14 },\r
3920 { 0x00, 0x15, 0x15 },\r
3921 { 0x00, 0x16, 0x16 },\r
3922 { 0x00, 0x17, 0x17 },\r
3923 { 0x00, 0x18, 0x18 },\r
3924 { 0x00, 0x19, 0x19 },\r
3925 { 0x00, 0x1A, 0x1A },\r
3926 { 0x00, 0x1B, 0x1B },\r
3927 { 0x00, 0x1C, 0x1C },\r
3928 { 0x00, 0x1D, 0x1D },\r
3929 { 0x00, 0x1E, 0x1E },\r
3930 { 0x00, 0x1F, 0x1F },\r
3931 { 0x00, 0x20, 0x20 },\r
3932 { 0x00, 0x21, 0x21 },\r
3933 { 0x00, 0x22, 0x22 },\r
3934 { 0x00, 0x23, 0x23 },\r
3935 { 0x00, 0x24, 0x24 },\r
3936 { 0x00, 0x25, 0x25 },\r
3937 { 0x00, 0x26, 0x26 },\r
3938 { 0x00, 0x27, 0x27 },\r
3939 { 0x00, 0x28, 0x28 },\r
3940 { 0x00, 0x29, 0x29 },\r
3941 { 0x00, 0x2A, 0x2A },\r
3942 { 0x00, 0x2B, 0x2B },\r
3943 { 0x00, 0x2C, 0x2C },\r
3944 { 0x00, 0x2D, 0x2D },\r
3945 { 0x00, 0x2E, 0x2E },\r
3946 { 0x00, 0x2F, 0x2F },\r
3947 { 0x00, 0x30, 0x30 },\r
3948 { 0x00, 0x31, 0x31 },\r
3949 { 0x00, 0x32, 0x32 },\r
3950 { 0x00, 0x33, 0x33 },\r
3951 { 0x00, 0x34, 0x34 },\r
3952 { 0x00, 0x35, 0x35 },\r
3953 { 0x00, 0x36, 0x36 },\r
3954 { 0x00, 0x37, 0x37 },\r
3955 { 0x00, 0x38, 0x38 },\r
3956 { 0x00, 0x39, 0x39 },\r
3957 { 0x00, 0x3A, 0x3A },\r
3958 { 0x00, 0x3B, 0x3B },\r
3959 { 0x00, 0x3C, 0x3C },\r
3960 { 0x00, 0x3D, 0x3D },\r
3961 { 0x00, 0x3E, 0x3E },\r
3962 { 0x00, 0x3F, 0x3F },\r
3963 { 0x00, 0x40, 0x40 },\r
3964 { 0x01, 0x61, 0x41 },\r
3965 { 0x01, 0x62, 0x42 },\r
3966 { 0x01, 0x63, 0x43 },\r
3967 { 0x01, 0x64, 0x44 },\r
3968 { 0x01, 0x65, 0x45 },\r
3969 { 0x01, 0x66, 0x46 },\r
3970 { 0x01, 0x67, 0x47 },\r
3971 { 0x01, 0x68, 0x48 },\r
3972 { 0x01, 0x69, 0x49 },\r
3973 { 0x01, 0x6A, 0x4A },\r
3974 { 0x01, 0x6B, 0x4B },\r
3975 { 0x01, 0x6C, 0x4C },\r
3976 { 0x01, 0x6D, 0x4D },\r
3977 { 0x01, 0x6E, 0x4E },\r
3978 { 0x01, 0x6F, 0x4F },\r
3979 { 0x01, 0x70, 0x50 },\r
3980 { 0x01, 0x71, 0x51 },\r
3981 { 0x01, 0x72, 0x52 },\r
3982 { 0x01, 0x73, 0x53 },\r
3983 { 0x01, 0x74, 0x54 },\r
3984 { 0x01, 0x75, 0x55 },\r
3985 { 0x01, 0x76, 0x56 },\r
3986 { 0x01, 0x77, 0x57 },\r
3987 { 0x01, 0x78, 0x58 },\r
3988 { 0x01, 0x79, 0x59 },\r
3989 { 0x01, 0x7A, 0x5A },\r
3990 { 0x00, 0x5B, 0x5B },\r
3991 { 0x00, 0x5C, 0x5C },\r
3992 { 0x00, 0x5D, 0x5D },\r
3993 { 0x00, 0x5E, 0x5E },\r
3994 { 0x00, 0x5F, 0x5F },\r
3995 { 0x00, 0x60, 0x60 },\r
3996 { 0x00, 0x61, 0x41 },\r
3997 { 0x00, 0x62, 0x42 },\r
3998 { 0x00, 0x63, 0x43 },\r
3999 { 0x00, 0x64, 0x44 },\r
4000 { 0x00, 0x65, 0x45 },\r
4001 { 0x00, 0x66, 0x46 },\r
4002 { 0x00, 0x67, 0x47 },\r
4003 { 0x00, 0x68, 0x48 },\r
4004 { 0x00, 0x69, 0x49 },\r
4005 { 0x00, 0x6A, 0x4A },\r
4006 { 0x00, 0x6B, 0x4B },\r
4007 { 0x00, 0x6C, 0x4C },\r
4008 { 0x00, 0x6D, 0x4D },\r
4009 { 0x00, 0x6E, 0x4E },\r
4010 { 0x00, 0x6F, 0x4F },\r
4011 { 0x00, 0x70, 0x50 },\r
4012 { 0x00, 0x71, 0x51 },\r
4013 { 0x00, 0x72, 0x52 },\r
4014 { 0x00, 0x73, 0x53 },\r
4015 { 0x00, 0x74, 0x54 },\r
4016 { 0x00, 0x75, 0x55 },\r
4017 { 0x00, 0x76, 0x56 },\r
4018 { 0x00, 0x77, 0x57 },\r
4019 { 0x00, 0x78, 0x58 },\r
4020 { 0x00, 0x79, 0x59 },\r
4021 { 0x00, 0x7A, 0x5A },\r
4022 { 0x00, 0x7B, 0x7B },\r
4023 { 0x00, 0x7C, 0x7C },\r
4024 { 0x00, 0x7D, 0x7D },\r
4025 { 0x00, 0x7E, 0x7E },\r
4026 { 0x00, 0x7F, 0x7F },\r
4027 { 0x00, 0x80, 0x80 },\r
4028 { 0x00, 0x81, 0x81 },\r
4029 { 0x00, 0x82, 0x82 },\r
4030 { 0x00, 0x83, 0x83 },\r
4031 { 0x00, 0x84, 0x84 },\r
4032 { 0x00, 0x85, 0x85 },\r
4033 { 0x00, 0x86, 0x86 },\r
4034 { 0x00, 0x87, 0x87 },\r
4035 { 0x00, 0x88, 0x88 },\r
4036 { 0x00, 0x89, 0x89 },\r
4037 { 0x00, 0x8A, 0x8A },\r
4038 { 0x00, 0x8B, 0x8B },\r
4039 { 0x00, 0x8C, 0x8C },\r
4040 { 0x00, 0x8D, 0x8D },\r
4041 { 0x00, 0x8E, 0x8E },\r
4042 { 0x00, 0x8F, 0x8F },\r
4043 { 0x00, 0x90, 0x90 },\r
4044 { 0x00, 0x91, 0x91 },\r
4045 { 0x00, 0x92, 0x92 },\r
4046 { 0x00, 0x93, 0x93 },\r
4047 { 0x00, 0x94, 0x94 },\r
4048 { 0x00, 0x95, 0x95 },\r
4049 { 0x00, 0x96, 0x96 },\r
4050 { 0x00, 0x97, 0x97 },\r
4051 { 0x00, 0x98, 0x98 },\r
4052 { 0x00, 0x99, 0x99 },\r
4053 { 0x00, 0x9A, 0x9A },\r
4054 { 0x00, 0x9B, 0x9B },\r
4055 { 0x00, 0x9C, 0x9C },\r
4056 { 0x00, 0x9D, 0x9D },\r
4057 { 0x00, 0x9E, 0x9E },\r
4058 { 0x00, 0x9F, 0x9F },\r
4059 { 0x00, 0xA0, 0xA0 },\r
4060 { 0x00, 0xA1, 0xA1 },\r
4061 { 0x00, 0xA2, 0xA2 },\r
4062 { 0x00, 0xA3, 0xA3 },\r
4063 { 0x00, 0xA4, 0xA4 },\r
4064 { 0x00, 0xA5, 0xA5 },\r
4065 { 0x00, 0xA6, 0xA6 },\r
4066 { 0x00, 0xA7, 0xA7 },\r
4067 { 0x01, 0xB8, 0xA8 },\r
4068 { 0x00, 0xA9, 0xA9 },\r
4069 { 0x01, 0xBA, 0xAA },\r
4070 { 0x00, 0xAB, 0xAB },\r
4071 { 0x00, 0xAC, 0xAC },\r
4072 { 0x00, 0xAD, 0xAD },\r
4073 { 0x00, 0xAE, 0xAE },\r
4074 { 0x01, 0xBF, 0xAF },\r
4075 { 0x00, 0xB0, 0xB0 },\r
4076 { 0x00, 0xB1, 0xB1 },\r
4077 { 0x00, 0xB2, 0xB2 },\r
4078 { 0x00, 0xB3, 0xB3 },\r
4079 { 0x00, 0xB4, 0xB4 },\r
4080 { 0x00, 0xB5, 0xB5 },\r
4081 { 0x00, 0xB6, 0xB6 },\r
4082 { 0x00, 0xB7, 0xB7 },\r
4083 { 0x00, 0xB8, 0xA8 },\r
4084 { 0x00, 0xB9, 0xB9 },\r
4085 { 0x00, 0xBA, 0xAA },\r
4086 { 0x00, 0xBB, 0xBB },\r
4087 { 0x00, 0xBC, 0xBC },\r
4088 { 0x00, 0xBD, 0xBD },\r
4089 { 0x00, 0xBE, 0xBE },\r
4090 { 0x00, 0xBF, 0xAF },\r
4091 { 0x01, 0xE0, 0xC0 },\r
4092 { 0x01, 0xE1, 0xC1 },\r
4093 { 0x01, 0xE2, 0xC2 },\r
4094 { 0x01, 0xE3, 0xC3 },\r
4095 { 0x01, 0xE4, 0xC4 },\r
4096 { 0x01, 0xE5, 0xC5 },\r
4097 { 0x01, 0xE6, 0xC6 },\r
4098 { 0x01, 0xE7, 0xC7 },\r
4099 { 0x01, 0xE8, 0xC8 },\r
4100 { 0x01, 0xE9, 0xC9 },\r
4101 { 0x01, 0xEA, 0xCA },\r
4102 { 0x01, 0xEB, 0xCB },\r
4103 { 0x01, 0xEC, 0xCC },\r
4104 { 0x01, 0xED, 0xCD },\r
4105 { 0x01, 0xEE, 0xCE },\r
4106 { 0x01, 0xEF, 0xCF },\r
4107 { 0x01, 0xF0, 0xD0 },\r
4108 { 0x01, 0xF1, 0xD1 },\r
4109 { 0x01, 0xF2, 0xD2 },\r
4110 { 0x01, 0xF3, 0xD3 },\r
4111 { 0x01, 0xF4, 0xD4 },\r
4112 { 0x01, 0xF5, 0xD5 },\r
4113 { 0x01, 0xF6, 0xD6 },\r
4114 { 0x00, 0xD7, 0xD7 },\r
4115 { 0x01, 0xF8, 0xD8 },\r
4116 { 0x01, 0xF9, 0xD9 },\r
4117 { 0x01, 0xFA, 0xDA },\r
4118 { 0x01, 0xFB, 0xDB },\r
4119 { 0x01, 0xFC, 0xDC },\r
4120 { 0x01, 0xFD, 0xDD },\r
4121 { 0x01, 0xFE, 0xDE },\r
4122 { 0x00, 0xDF, 0xDF },\r
4123 { 0x00, 0xE0, 0xC0 },\r
4124 { 0x00, 0xE1, 0xC1 },\r
4125 { 0x00, 0xE2, 0xC2 },\r
4126 { 0x00, 0xE3, 0xC3 },\r
4127 { 0x00, 0xE4, 0xC4 },\r
4128 { 0x00, 0xE5, 0xC5 },\r
4129 { 0x00, 0xE6, 0xC6 },\r
4130 { 0x00, 0xE7, 0xC7 },\r
4131 { 0x00, 0xE8, 0xC8 },\r
4132 { 0x00, 0xE9, 0xC9 },\r
4133 { 0x00, 0xEA, 0xCA },\r
4134 { 0x00, 0xEB, 0xCB },\r
4135 { 0x00, 0xEC, 0xCC },\r
4136 { 0x00, 0xED, 0xCD },\r
4137 { 0x00, 0xEE, 0xCE },\r
4138 { 0x00, 0xEF, 0xCF },\r
4139 { 0x00, 0xF0, 0xD0 },\r
4140 { 0x00, 0xF1, 0xD1 },\r
4141 { 0x00, 0xF2, 0xD2 },\r
4142 { 0x00, 0xF3, 0xD3 },\r
4143 { 0x00, 0xF4, 0xD4 },\r
4144 { 0x00, 0xF5, 0xD5 },\r
4145 { 0x00, 0xF6, 0xD6 },\r
4146 { 0x00, 0xF7, 0xF7 },\r
4147 { 0x00, 0xF8, 0xD8 },\r
4148 { 0x00, 0xF9, 0xD9 },\r
4149 { 0x00, 0xFA, 0xDA },\r
4150 { 0x00, 0xFB, 0xDB },\r
4151 { 0x00, 0xFC, 0xDC },\r
4152 { 0x00, 0xFD, 0xDD },\r
4153 { 0x00, 0xFE, 0xDE },\r
4154 { 0x00, 0xFF, 0xFF },\r
4155 };\r
4156 \r
4157 \r
4158 struct cs_info iso14_tbl[] = {\r
4159 { 0x00, 0x00, 0x00 },\r
4160 { 0x00, 0x01, 0x01 },\r
4161 { 0x00, 0x02, 0x02 },\r
4162 { 0x00, 0x03, 0x03 },\r
4163 { 0x00, 0x04, 0x04 },\r
4164 { 0x00, 0x05, 0x05 },\r
4165 { 0x00, 0x06, 0x06 },\r
4166 { 0x00, 0x07, 0x07 },\r
4167 { 0x00, 0x08, 0x08 },\r
4168 { 0x00, 0x09, 0x09 },\r
4169 { 0x00, 0x0a, 0x0a },\r
4170 { 0x00, 0x0b, 0x0b },\r
4171 { 0x00, 0x0c, 0x0c },\r
4172 { 0x00, 0x0d, 0x0d },\r
4173 { 0x00, 0x0e, 0x0e },\r
4174 { 0x00, 0x0f, 0x0f },\r
4175 { 0x00, 0x10, 0x10 },\r
4176 { 0x00, 0x11, 0x11 },\r
4177 { 0x00, 0x12, 0x12 },\r
4178 { 0x00, 0x13, 0x13 },\r
4179 { 0x00, 0x14, 0x14 },\r
4180 { 0x00, 0x15, 0x15 },\r
4181 { 0x00, 0x16, 0x16 },\r
4182 { 0x00, 0x17, 0x17 },\r
4183 { 0x00, 0x18, 0x18 },\r
4184 { 0x00, 0x19, 0x19 },\r
4185 { 0x00, 0x1a, 0x1a },\r
4186 { 0x00, 0x1b, 0x1b },\r
4187 { 0x00, 0x1c, 0x1c },\r
4188 { 0x00, 0x1d, 0x1d },\r
4189 { 0x00, 0x1e, 0x1e },\r
4190 { 0x00, 0x1f, 0x1f },\r
4191 { 0x00, 0x20, 0x20 },\r
4192 { 0x00, 0x21, 0x21 },\r
4193 { 0x00, 0x22, 0x22 },\r
4194 { 0x00, 0x23, 0x23 },\r
4195 { 0x00, 0x24, 0x24 },\r
4196 { 0x00, 0x25, 0x25 },\r
4197 { 0x00, 0x26, 0x26 },\r
4198 { 0x00, 0x27, 0x27 },\r
4199 { 0x00, 0x28, 0x28 },\r
4200 { 0x00, 0x29, 0x29 },\r
4201 { 0x00, 0x2a, 0x2a },\r
4202 { 0x00, 0x2b, 0x2b },\r
4203 { 0x00, 0x2c, 0x2c },\r
4204 { 0x00, 0x2d, 0x2d },\r
4205 { 0x00, 0x2e, 0x2e },\r
4206 { 0x00, 0x2f, 0x2f },\r
4207 { 0x00, 0x30, 0x30 },\r
4208 { 0x00, 0x31, 0x31 },\r
4209 { 0x00, 0x32, 0x32 },\r
4210 { 0x00, 0x33, 0x33 },\r
4211 { 0x00, 0x34, 0x34 },\r
4212 { 0x00, 0x35, 0x35 },\r
4213 { 0x00, 0x36, 0x36 },\r
4214 { 0x00, 0x37, 0x37 },\r
4215 { 0x00, 0x38, 0x38 },\r
4216 { 0x00, 0x39, 0x39 },\r
4217 { 0x00, 0x3a, 0x3a },\r
4218 { 0x00, 0x3b, 0x3b },\r
4219 { 0x00, 0x3c, 0x3c },\r
4220 { 0x00, 0x3d, 0x3d },\r
4221 { 0x00, 0x3e, 0x3e },\r
4222 { 0x00, 0x3f, 0x3f },\r
4223 { 0x00, 0x40, 0x40 },\r
4224 { 0x01, 0x61, 0x41 },\r
4225 { 0x01, 0x62, 0x42 },\r
4226 { 0x01, 0x63, 0x43 },\r
4227 { 0x01, 0x64, 0x44 },\r
4228 { 0x01, 0x65, 0x45 },\r
4229 { 0x01, 0x66, 0x46 },\r
4230 { 0x01, 0x67, 0x47 },\r
4231 { 0x01, 0x68, 0x48 },\r
4232 { 0x01, 0x69, 0x49 },\r
4233 { 0x01, 0x6a, 0x4a },\r
4234 { 0x01, 0x6b, 0x4b },\r
4235 { 0x01, 0x6c, 0x4c },\r
4236 { 0x01, 0x6d, 0x4d },\r
4237 { 0x01, 0x6e, 0x4e },\r
4238 { 0x01, 0x6f, 0x4f },\r
4239 { 0x01, 0x70, 0x50 },\r
4240 { 0x01, 0x71, 0x51 },\r
4241 { 0x01, 0x72, 0x52 },\r
4242 { 0x01, 0x73, 0x53 },\r
4243 { 0x01, 0x74, 0x54 },\r
4244 { 0x01, 0x75, 0x55 },\r
4245 { 0x01, 0x76, 0x56 },\r
4246 { 0x01, 0x77, 0x57 },\r
4247 { 0x01, 0x78, 0x58 },\r
4248 { 0x01, 0x79, 0x59 },\r
4249 { 0x01, 0x7a, 0x5a },\r
4250 { 0x00, 0x5b, 0x5b },\r
4251 { 0x00, 0x5c, 0x5c },\r
4252 { 0x00, 0x5d, 0x5d },\r
4253 { 0x00, 0x5e, 0x5e },\r
4254 { 0x00, 0x5f, 0x5f },\r
4255 { 0x00, 0x60, 0x60 },\r
4256 { 0x00, 0x61, 0x41 },\r
4257 { 0x00, 0x62, 0x42 },\r
4258 { 0x00, 0x63, 0x43 },\r
4259 { 0x00, 0x64, 0x44 },\r
4260 { 0x00, 0x65, 0x45 },\r
4261 { 0x00, 0x66, 0x46 },\r
4262 { 0x00, 0x67, 0x47 },\r
4263 { 0x00, 0x68, 0x48 },\r
4264 { 0x00, 0x69, 0x49 },\r
4265 { 0x00, 0x6a, 0x4a },\r
4266 { 0x00, 0x6b, 0x4b },\r
4267 { 0x00, 0x6c, 0x4c },\r
4268 { 0x00, 0x6d, 0x4d },\r
4269 { 0x00, 0x6e, 0x4e },\r
4270 { 0x00, 0x6f, 0x4f },\r
4271 { 0x00, 0x70, 0x50 },\r
4272 { 0x00, 0x71, 0x51 },\r
4273 { 0x00, 0x72, 0x52 },\r
4274 { 0x00, 0x73, 0x53 },\r
4275 { 0x00, 0x74, 0x54 },\r
4276 { 0x00, 0x75, 0x55 },\r
4277 { 0x00, 0x76, 0x56 },\r
4278 { 0x00, 0x77, 0x57 },\r
4279 { 0x00, 0x78, 0x58 },\r
4280 { 0x00, 0x79, 0x59 },\r
4281 { 0x00, 0x7a, 0x5a },\r
4282 { 0x00, 0x7b, 0x7b },\r
4283 { 0x00, 0x7c, 0x7c },\r
4284 { 0x00, 0x7d, 0x7d },\r
4285 { 0x00, 0x7e, 0x7e },\r
4286 { 0x00, 0x7f, 0x7f },\r
4287 { 0x00, 0x80, 0x80 },\r
4288 { 0x00, 0x81, 0x81 },\r
4289 { 0x00, 0x82, 0x82 },\r
4290 { 0x00, 0x83, 0x83 },\r
4291 { 0x00, 0x84, 0x84 },\r
4292 { 0x00, 0x85, 0x85 },\r
4293 { 0x00, 0x86, 0x86 },\r
4294 { 0x00, 0x87, 0x87 },\r
4295 { 0x00, 0x88, 0x88 },\r
4296 { 0x00, 0x89, 0x89 },\r
4297 { 0x00, 0x8a, 0x8a },\r
4298 { 0x00, 0x8b, 0x8b },\r
4299 { 0x00, 0x8c, 0x8c },\r
4300 { 0x00, 0x8d, 0x8d },\r
4301 { 0x00, 0x8e, 0x8e },\r
4302 { 0x00, 0x8f, 0x8f },\r
4303 { 0x00, 0x90, 0x90 },\r
4304 { 0x00, 0x91, 0x91 },\r
4305 { 0x00, 0x92, 0x92 },\r
4306 { 0x00, 0x93, 0x93 },\r
4307 { 0x00, 0x94, 0x94 },\r
4308 { 0x00, 0x95, 0x95 },\r
4309 { 0x00, 0x96, 0x96 },\r
4310 { 0x00, 0x97, 0x97 },\r
4311 { 0x00, 0x98, 0x98 },\r
4312 { 0x00, 0x99, 0x99 },\r
4313 { 0x00, 0x9a, 0x9a },\r
4314 { 0x00, 0x9b, 0x9b },\r
4315 { 0x00, 0x9c, 0x9c },\r
4316 { 0x00, 0x9d, 0x9d },\r
4317 { 0x00, 0x9e, 0x9e },\r
4318 { 0x00, 0x9f, 0x9f },\r
4319 { 0x00, 0xa0, 0xa0 },\r
4320 { 0x01, 0xa2, 0xa1 },\r
4321 { 0x00, 0xa2, 0xa1 },\r
4322 { 0x00, 0xa3, 0xa3 },\r
4323 { 0x01, 0xa5, 0xa4 },\r
4324 { 0x00, 0xa5, 0xa4 },\r
4325 { 0x01, 0xa6, 0xab },\r
4326 { 0x00, 0xa7, 0xa7 },\r
4327 { 0x01, 0xb8, 0xa8 },\r
4328 { 0x00, 0xa9, 0xa9 },\r
4329 { 0x01, 0xba, 0xaa },\r
4330 { 0x00, 0xab, 0xa6 },\r
4331 { 0x01, 0xbc, 0xac },\r
4332 { 0x00, 0xad, 0xad },\r
4333 { 0x00, 0xae, 0xae },\r
4334 { 0x01, 0xff, 0xaf },\r
4335 { 0x01, 0xb1, 0xb0 },\r
4336 { 0x00, 0xb1, 0xb0 },\r
4337 { 0x01, 0xb3, 0xb2 },\r
4338 { 0x00, 0xb3, 0xb2 },\r
4339 { 0x01, 0xb5, 0xb4 },\r
4340 { 0x00, 0xb5, 0xb4 },\r
4341 { 0x00, 0xb6, 0xb6 },\r
4342 { 0x01, 0xb9, 0xb7 },\r
4343 { 0x00, 0xb8, 0xa8 },\r
4344 { 0x00, 0xb9, 0xb6 },\r
4345 { 0x00, 0xba, 0xaa },\r
4346 { 0x01, 0xbf, 0xbb },\r
4347 { 0x00, 0xbc, 0xac },\r
4348 { 0x01, 0xbe, 0xbd },\r
4349 { 0x00, 0xbe, 0xbd },\r
4350 { 0x00, 0xbf, 0xbb },\r
4351 { 0x01, 0xe0, 0xc0 },\r
4352 { 0x01, 0xe1, 0xc1 },\r
4353 { 0x01, 0xe2, 0xc2 },\r
4354 { 0x01, 0xe3, 0xc3 },\r
4355 { 0x01, 0xe4, 0xc4 },\r
4356 { 0x01, 0xe5, 0xc5 },\r
4357 { 0x01, 0xe6, 0xc6 },\r
4358 { 0x01, 0xe7, 0xc7 },\r
4359 { 0x01, 0xe8, 0xc8 },\r
4360 { 0x01, 0xe9, 0xc9 },\r
4361 { 0x01, 0xea, 0xca },\r
4362 { 0x01, 0xeb, 0xcb },\r
4363 { 0x01, 0xec, 0xcc },\r
4364 { 0x01, 0xed, 0xcd },\r
4365 { 0x01, 0xee, 0xce },\r
4366 { 0x01, 0xef, 0xcf },\r
4367 { 0x01, 0xf0, 0xd0 },\r
4368 { 0x01, 0xf1, 0xd1 },\r
4369 { 0x01, 0xf2, 0xd2 },\r
4370 { 0x01, 0xf3, 0xd3 },\r
4371 { 0x01, 0xf4, 0xd4 },\r
4372 { 0x01, 0xf5, 0xd5 },\r
4373 { 0x01, 0xf6, 0xd6 },\r
4374 { 0x01, 0xf7, 0xd7 },\r
4375 { 0x01, 0xf8, 0xd8 },\r
4376 { 0x01, 0xf9, 0xd9 },\r
4377 { 0x01, 0xfa, 0xda },\r
4378 { 0x01, 0xfb, 0xdb },\r
4379 { 0x01, 0xfc, 0xdc },\r
4380 { 0x01, 0xfd, 0xdd },\r
4381 { 0x01, 0xfe, 0xde },\r
4382 { 0x00, 0xdf, 0xdf },\r
4383 { 0x00, 0xe0, 0xc0 },\r
4384 { 0x00, 0xe1, 0xc1 },\r
4385 { 0x00, 0xe2, 0xc2 },\r
4386 { 0x00, 0xe3, 0xc3 },\r
4387 { 0x00, 0xe4, 0xc4 },\r
4388 { 0x00, 0xe5, 0xc5 },\r
4389 { 0x00, 0xe6, 0xc6 },\r
4390 { 0x00, 0xe7, 0xc7 },\r
4391 { 0x00, 0xe8, 0xc8 },\r
4392 { 0x00, 0xe9, 0xc9 },\r
4393 { 0x00, 0xea, 0xca },\r
4394 { 0x00, 0xeb, 0xcb },\r
4395 { 0x00, 0xec, 0xcc },\r
4396 { 0x00, 0xed, 0xcd },\r
4397 { 0x00, 0xee, 0xce },\r
4398 { 0x00, 0xef, 0xcf },\r
4399 { 0x00, 0xf0, 0xd0 },\r
4400 { 0x00, 0xf1, 0xd1 },\r
4401 { 0x00, 0xf2, 0xd2 },\r
4402 { 0x00, 0xf3, 0xd3 },\r
4403 { 0x00, 0xf4, 0xd4 },\r
4404 { 0x00, 0xf5, 0xd5 },\r
4405 { 0x00, 0xf6, 0xd6 },\r
4406 { 0x00, 0xf7, 0xd7 },\r
4407 { 0x00, 0xf8, 0xd8 },\r
4408 { 0x00, 0xf9, 0xd9 },\r
4409 { 0x00, 0xfa, 0xda },\r
4410 { 0x00, 0xfb, 0xdb },\r
4411 { 0x00, 0xfc, 0xdc },\r
4412 { 0x00, 0xfd, 0xdd },\r
4413 { 0x00, 0xfe, 0xde },\r
4414 { 0x00, 0xff, 0xff },\r
4415 };\r
4416 \r
4417 struct cs_info iso15_tbl[] = {\r
4418 { 0x00, 0x00, 0x00 },\r
4419 { 0x00, 0x01, 0x01 },\r
4420 { 0x00, 0x02, 0x02 },\r
4421 { 0x00, 0x03, 0x03 },\r
4422 { 0x00, 0x04, 0x04 },\r
4423 { 0x00, 0x05, 0x05 },\r
4424 { 0x00, 0x06, 0x06 },\r
4425 { 0x00, 0x07, 0x07 },\r
4426 { 0x00, 0x08, 0x08 },\r
4427 { 0x00, 0x09, 0x09 },\r
4428 { 0x00, 0x0a, 0x0a },\r
4429 { 0x00, 0x0b, 0x0b },\r
4430 { 0x00, 0x0c, 0x0c },\r
4431 { 0x00, 0x0d, 0x0d },\r
4432 { 0x00, 0x0e, 0x0e },\r
4433 { 0x00, 0x0f, 0x0f },\r
4434 { 0x00, 0x10, 0x10 },\r
4435 { 0x00, 0x11, 0x11 },\r
4436 { 0x00, 0x12, 0x12 },\r
4437 { 0x00, 0x13, 0x13 },\r
4438 { 0x00, 0x14, 0x14 },\r
4439 { 0x00, 0x15, 0x15 },\r
4440 { 0x00, 0x16, 0x16 },\r
4441 { 0x00, 0x17, 0x17 },\r
4442 { 0x00, 0x18, 0x18 },\r
4443 { 0x00, 0x19, 0x19 },\r
4444 { 0x00, 0x1a, 0x1a },\r
4445 { 0x00, 0x1b, 0x1b },\r
4446 { 0x00, 0x1c, 0x1c },\r
4447 { 0x00, 0x1d, 0x1d },\r
4448 { 0x00, 0x1e, 0x1e },\r
4449 { 0x00, 0x1f, 0x1f },\r
4450 { 0x00, 0x20, 0x20 },\r
4451 { 0x00, 0x21, 0x21 },\r
4452 { 0x00, 0x22, 0x22 },\r
4453 { 0x00, 0x23, 0x23 },\r
4454 { 0x00, 0x24, 0x24 },\r
4455 { 0x00, 0x25, 0x25 },\r
4456 { 0x00, 0x26, 0x26 },\r
4457 { 0x00, 0x27, 0x27 },\r
4458 { 0x00, 0x28, 0x28 },\r
4459 { 0x00, 0x29, 0x29 },\r
4460 { 0x00, 0x2a, 0x2a },\r
4461 { 0x00, 0x2b, 0x2b },\r
4462 { 0x00, 0x2c, 0x2c },\r
4463 { 0x00, 0x2d, 0x2d },\r
4464 { 0x00, 0x2e, 0x2e },\r
4465 { 0x00, 0x2f, 0x2f },\r
4466 { 0x00, 0x30, 0x30 },\r
4467 { 0x00, 0x31, 0x31 },\r
4468 { 0x00, 0x32, 0x32 },\r
4469 { 0x00, 0x33, 0x33 },\r
4470 { 0x00, 0x34, 0x34 },\r
4471 { 0x00, 0x35, 0x35 },\r
4472 { 0x00, 0x36, 0x36 },\r
4473 { 0x00, 0x37, 0x37 },\r
4474 { 0x00, 0x38, 0x38 },\r
4475 { 0x00, 0x39, 0x39 },\r
4476 { 0x00, 0x3a, 0x3a },\r
4477 { 0x00, 0x3b, 0x3b },\r
4478 { 0x00, 0x3c, 0x3c },\r
4479 { 0x00, 0x3d, 0x3d },\r
4480 { 0x00, 0x3e, 0x3e },\r
4481 { 0x00, 0x3f, 0x3f },\r
4482 { 0x00, 0x40, 0x40 },\r
4483 { 0x01, 0x61, 0x41 },\r
4484 { 0x01, 0x62, 0x42 },\r
4485 { 0x01, 0x63, 0x43 },\r
4486 { 0x01, 0x64, 0x44 },\r
4487 { 0x01, 0x65, 0x45 },\r
4488 { 0x01, 0x66, 0x46 },\r
4489 { 0x01, 0x67, 0x47 },\r
4490 { 0x01, 0x68, 0x48 },\r
4491 { 0x01, 0x69, 0x49 },\r
4492 { 0x01, 0x6a, 0x4a },\r
4493 { 0x01, 0x6b, 0x4b },\r
4494 { 0x01, 0x6c, 0x4c },\r
4495 { 0x01, 0x6d, 0x4d },\r
4496 { 0x01, 0x6e, 0x4e },\r
4497 { 0x01, 0x6f, 0x4f },\r
4498 { 0x01, 0x70, 0x50 },\r
4499 { 0x01, 0x71, 0x51 },\r
4500 { 0x01, 0x72, 0x52 },\r
4501 { 0x01, 0x73, 0x53 },\r
4502 { 0x01, 0x74, 0x54 },\r
4503 { 0x01, 0x75, 0x55 },\r
4504 { 0x01, 0x76, 0x56 },\r
4505 { 0x01, 0x77, 0x57 },\r
4506 { 0x01, 0x78, 0x58 },\r
4507 { 0x01, 0x79, 0x59 },\r
4508 { 0x01, 0x7a, 0x5a },\r
4509 { 0x00, 0x5b, 0x5b },\r
4510 { 0x00, 0x5c, 0x5c },\r
4511 { 0x00, 0x5d, 0x5d },\r
4512 { 0x00, 0x5e, 0x5e },\r
4513 { 0x00, 0x5f, 0x5f },\r
4514 { 0x00, 0x60, 0x60 },\r
4515 { 0x00, 0x61, 0x41 },\r
4516 { 0x00, 0x62, 0x42 },\r
4517 { 0x00, 0x63, 0x43 },\r
4518 { 0x00, 0x64, 0x44 },\r
4519 { 0x00, 0x65, 0x45 },\r
4520 { 0x00, 0x66, 0x46 },\r
4521 { 0x00, 0x67, 0x47 },\r
4522 { 0x00, 0x68, 0x48 },\r
4523 { 0x00, 0x69, 0x49 },\r
4524 { 0x00, 0x6a, 0x4a },\r
4525 { 0x00, 0x6b, 0x4b },\r
4526 { 0x00, 0x6c, 0x4c },\r
4527 { 0x00, 0x6d, 0x4d },\r
4528 { 0x00, 0x6e, 0x4e },\r
4529 { 0x00, 0x6f, 0x4f },\r
4530 { 0x00, 0x70, 0x50 },\r
4531 { 0x00, 0x71, 0x51 },\r
4532 { 0x00, 0x72, 0x52 },\r
4533 { 0x00, 0x73, 0x53 },\r
4534 { 0x00, 0x74, 0x54 },\r
4535 { 0x00, 0x75, 0x55 },\r
4536 { 0x00, 0x76, 0x56 },\r
4537 { 0x00, 0x77, 0x57 },\r
4538 { 0x00, 0x78, 0x58 },\r
4539 { 0x00, 0x79, 0x59 },\r
4540 { 0x00, 0x7a, 0x5a },\r
4541 { 0x00, 0x7b, 0x7b },\r
4542 { 0x00, 0x7c, 0x7c },\r
4543 { 0x00, 0x7d, 0x7d },\r
4544 { 0x00, 0x7e, 0x7e },\r
4545 { 0x00, 0x7f, 0x7f },\r
4546 { 0x00, 0x80, 0x80 },\r
4547 { 0x00, 0x81, 0x81 },\r
4548 { 0x00, 0x82, 0x82 },\r
4549 { 0x00, 0x83, 0x83 },\r
4550 { 0x00, 0x84, 0x84 },\r
4551 { 0x00, 0x85, 0x85 },\r
4552 { 0x00, 0x86, 0x86 },\r
4553 { 0x00, 0x87, 0x87 },\r
4554 { 0x00, 0x88, 0x88 },\r
4555 { 0x00, 0x89, 0x89 },\r
4556 { 0x00, 0x8a, 0x8a },\r
4557 { 0x00, 0x8b, 0x8b },\r
4558 { 0x00, 0x8c, 0x8c },\r
4559 { 0x00, 0x8d, 0x8d },\r
4560 { 0x00, 0x8e, 0x8e },\r
4561 { 0x00, 0x8f, 0x8f },\r
4562 { 0x00, 0x90, 0x90 },\r
4563 { 0x00, 0x91, 0x91 },\r
4564 { 0x00, 0x92, 0x92 },\r
4565 { 0x00, 0x93, 0x93 },\r
4566 { 0x00, 0x94, 0x94 },\r
4567 { 0x00, 0x95, 0x95 },\r
4568 { 0x00, 0x96, 0x96 },\r
4569 { 0x00, 0x97, 0x97 },\r
4570 { 0x00, 0x98, 0x98 },\r
4571 { 0x00, 0x99, 0x99 },\r
4572 { 0x00, 0x9a, 0x9a },\r
4573 { 0x00, 0x9b, 0x9b },\r
4574 { 0x00, 0x9c, 0x9c },\r
4575 { 0x00, 0x9d, 0x9d },\r
4576 { 0x00, 0x9e, 0x9e },\r
4577 { 0x00, 0x9f, 0x9f },\r
4578 { 0x00, 0xa0, 0xa0 },\r
4579 { 0x00, 0xa1, 0xa1 },\r
4580 { 0x00, 0xa2, 0xa2 },\r
4581 { 0x00, 0xa3, 0xa3 },\r
4582 { 0x00, 0xa4, 0xa4 },\r
4583 { 0x00, 0xa5, 0xa5 },\r
4584 { 0x01, 0xa8, 0xa6 },\r
4585 { 0x00, 0xa7, 0xa7 },\r
4586 { 0x00, 0xa8, 0xa6 },\r
4587 { 0x00, 0xa9, 0xa9 },\r
4588 { 0x00, 0xaa, 0xaa },\r
4589 { 0x00, 0xab, 0xab },\r
4590 { 0x00, 0xac, 0xac },\r
4591 { 0x00, 0xad, 0xad },\r
4592 { 0x00, 0xae, 0xae },\r
4593 { 0x00, 0xaf, 0xaf },\r
4594 { 0x00, 0xb0, 0xb0 },\r
4595 { 0x00, 0xb1, 0xb1 },\r
4596 { 0x00, 0xb2, 0xb2 },\r
4597 { 0x00, 0xb3, 0xb3 },\r
4598 { 0x01, 0xb8, 0xb4 },\r
4599 { 0x00, 0xb5, 0xb5 },\r
4600 { 0x00, 0xb6, 0xb6 },\r
4601 { 0x00, 0xb7, 0xb7 },\r
4602 { 0x00, 0xb8, 0xb4 },\r
4603 { 0x00, 0xb9, 0xb9 },\r
4604 { 0x00, 0xba, 0xba },\r
4605 { 0x00, 0xbb, 0xbb },\r
4606 { 0x01, 0xbd, 0xbc },\r
4607 { 0x00, 0xbd, 0xbc },\r
4608 { 0x01, 0xff, 0xbe },\r
4609 { 0x00, 0xbf, 0xbf },\r
4610 { 0x01, 0xe0, 0xc0 },\r
4611 { 0x01, 0xe1, 0xc1 },\r
4612 { 0x01, 0xe2, 0xc2 },\r
4613 { 0x01, 0xe3, 0xc3 },\r
4614 { 0x01, 0xe4, 0xc4 },\r
4615 { 0x01, 0xe5, 0xc5 },\r
4616 { 0x01, 0xe6, 0xc6 },\r
4617 { 0x01, 0xe7, 0xc7 },\r
4618 { 0x01, 0xe8, 0xc8 },\r
4619 { 0x01, 0xe9, 0xc9 },\r
4620 { 0x01, 0xea, 0xca },\r
4621 { 0x01, 0xeb, 0xcb },\r
4622 { 0x01, 0xec, 0xcc },\r
4623 { 0x01, 0xed, 0xcd },\r
4624 { 0x01, 0xee, 0xce },\r
4625 { 0x01, 0xef, 0xcf },\r
4626 { 0x01, 0xf0, 0xd0 },\r
4627 { 0x01, 0xf1, 0xd1 },\r
4628 { 0x01, 0xf2, 0xd2 },\r
4629 { 0x01, 0xf3, 0xd3 },\r
4630 { 0x01, 0xf4, 0xd4 },\r
4631 { 0x01, 0xf5, 0xd5 },\r
4632 { 0x01, 0xf6, 0xd6 },\r
4633 { 0x00, 0xd7, 0xd7 },\r
4634 { 0x01, 0xf8, 0xd8 },\r
4635 { 0x01, 0xf9, 0xd9 },\r
4636 { 0x01, 0xfa, 0xda },\r
4637 { 0x01, 0xfb, 0xdb },\r
4638 { 0x01, 0xfc, 0xdc },\r
4639 { 0x01, 0xfd, 0xdd },\r
4640 { 0x01, 0xfe, 0xde },\r
4641 { 0x00, 0xdf, 0xdf },\r
4642 { 0x00, 0xe0, 0xc0 },\r
4643 { 0x00, 0xe1, 0xc1 },\r
4644 { 0x00, 0xe2, 0xc2 },\r
4645 { 0x00, 0xe3, 0xc3 },\r
4646 { 0x00, 0xe4, 0xc4 },\r
4647 { 0x00, 0xe5, 0xc5 },\r
4648 { 0x00, 0xe6, 0xc6 },\r
4649 { 0x00, 0xe7, 0xc7 },\r
4650 { 0x00, 0xe8, 0xc8 },\r
4651 { 0x00, 0xe9, 0xc9 },\r
4652 { 0x00, 0xea, 0xca },\r
4653 { 0x00, 0xeb, 0xcb },\r
4654 { 0x00, 0xec, 0xcc },\r
4655 { 0x00, 0xed, 0xcd },\r
4656 { 0x00, 0xee, 0xce },\r
4657 { 0x00, 0xef, 0xcf },\r
4658 { 0x00, 0xf0, 0xd0 },\r
4659 { 0x00, 0xf1, 0xd1 },\r
4660 { 0x00, 0xf2, 0xd2 },\r
4661 { 0x00, 0xf3, 0xd3 },\r
4662 { 0x00, 0xf4, 0xd4 },\r
4663 { 0x00, 0xf5, 0xd5 },\r
4664 { 0x00, 0xf6, 0xd6 },\r
4665 { 0x00, 0xf7, 0xf7 },\r
4666 { 0x00, 0xf8, 0xd8 },\r
4667 { 0x00, 0xf9, 0xd9 },\r
4668 { 0x00, 0xfa, 0xda },\r
4669 { 0x00, 0xfb, 0xdb },\r
4670 { 0x00, 0xfc, 0xdc },\r
4671 { 0x00, 0xfd, 0xdd },\r
4672 { 0x00, 0xfe, 0xde },\r
4673 { 0x00, 0xff, 0xbe },\r
4674 };\r
4675 \r
4676 struct cs_info iscii_devanagari_tbl[] = {\r
4677 { 0x00, 0x00, 0x00 },\r
4678 { 0x00, 0x01, 0x01 },\r
4679 { 0x00, 0x02, 0x02 },\r
4680 { 0x00, 0x03, 0x03 },\r
4681 { 0x00, 0x04, 0x04 },\r
4682 { 0x00, 0x05, 0x05 },\r
4683 { 0x00, 0x06, 0x06 },\r
4684 { 0x00, 0x07, 0x07 },\r
4685 { 0x00, 0x08, 0x08 },\r
4686 { 0x00, 0x09, 0x09 },\r
4687 { 0x00, 0x0a, 0x0a },\r
4688 { 0x00, 0x0b, 0x0b },\r
4689 { 0x00, 0x0c, 0x0c },\r
4690 { 0x00, 0x0d, 0x0d },\r
4691 { 0x00, 0x0e, 0x0e },\r
4692 { 0x00, 0x0f, 0x0f },\r
4693 { 0x00, 0x10, 0x10 },\r
4694 { 0x00, 0x11, 0x11 },\r
4695 { 0x00, 0x12, 0x12 },\r
4696 { 0x00, 0x13, 0x13 },\r
4697 { 0x00, 0x14, 0x14 },\r
4698 { 0x00, 0x15, 0x15 },\r
4699 { 0x00, 0x16, 0x16 },\r
4700 { 0x00, 0x17, 0x17 },\r
4701 { 0x00, 0x18, 0x18 },\r
4702 { 0x00, 0x19, 0x19 },\r
4703 { 0x00, 0x1a, 0x1a },\r
4704 { 0x00, 0x1b, 0x1b },\r
4705 { 0x00, 0x1c, 0x1c },\r
4706 { 0x00, 0x1d, 0x1d },\r
4707 { 0x00, 0x1e, 0x1e },\r
4708 { 0x00, 0x1f, 0x1f },\r
4709 { 0x00, 0x20, 0x20 },\r
4710 { 0x00, 0x21, 0x21 },\r
4711 { 0x00, 0x22, 0x22 },\r
4712 { 0x00, 0x23, 0x23 },\r
4713 { 0x00, 0x24, 0x24 },\r
4714 { 0x00, 0x25, 0x25 },\r
4715 { 0x00, 0x26, 0x26 },\r
4716 { 0x00, 0x27, 0x27 },\r
4717 { 0x00, 0x28, 0x28 },\r
4718 { 0x00, 0x29, 0x29 },\r
4719 { 0x00, 0x2a, 0x2a },\r
4720 { 0x00, 0x2b, 0x2b },\r
4721 { 0x00, 0x2c, 0x2c },\r
4722 { 0x00, 0x2d, 0x2d },\r
4723 { 0x00, 0x2e, 0x2e },\r
4724 { 0x00, 0x2f, 0x2f },\r
4725 { 0x00, 0x30, 0x30 },\r
4726 { 0x00, 0x31, 0x31 },\r
4727 { 0x00, 0x32, 0x32 },\r
4728 { 0x00, 0x33, 0x33 },\r
4729 { 0x00, 0x34, 0x34 },\r
4730 { 0x00, 0x35, 0x35 },\r
4731 { 0x00, 0x36, 0x36 },\r
4732 { 0x00, 0x37, 0x37 },\r
4733 { 0x00, 0x38, 0x38 },\r
4734 { 0x00, 0x39, 0x39 },\r
4735 { 0x00, 0x3a, 0x3a },\r
4736 { 0x00, 0x3b, 0x3b },\r
4737 { 0x00, 0x3c, 0x3c },\r
4738 { 0x00, 0x3d, 0x3d },\r
4739 { 0x00, 0x3e, 0x3e },\r
4740 { 0x00, 0x3f, 0x3f },\r
4741 { 0x00, 0x40, 0x40 },\r
4742 { 0x01, 0x61, 0x41 },\r
4743 { 0x01, 0x62, 0x42 },\r
4744 { 0x01, 0x63, 0x43 },\r
4745 { 0x01, 0x64, 0x44 },\r
4746 { 0x01, 0x65, 0x45 },\r
4747 { 0x01, 0x66, 0x46 },\r
4748 { 0x01, 0x67, 0x47 },\r
4749 { 0x01, 0x68, 0x48 },\r
4750 { 0x01, 0x69, 0x49 },\r
4751 { 0x01, 0x6a, 0x4a },\r
4752 { 0x01, 0x6b, 0x4b },\r
4753 { 0x01, 0x6c, 0x4c },\r
4754 { 0x01, 0x6d, 0x4d },\r
4755 { 0x01, 0x6e, 0x4e },\r
4756 { 0x01, 0x6f, 0x4f },\r
4757 { 0x01, 0x70, 0x50 },\r
4758 { 0x01, 0x71, 0x51 },\r
4759 { 0x01, 0x72, 0x52 },\r
4760 { 0x01, 0x73, 0x53 },\r
4761 { 0x01, 0x74, 0x54 },\r
4762 { 0x01, 0x75, 0x55 },\r
4763 { 0x01, 0x76, 0x56 },\r
4764 { 0x01, 0x77, 0x57 },\r
4765 { 0x01, 0x78, 0x58 },\r
4766 { 0x01, 0x79, 0x59 },\r
4767 { 0x01, 0x7a, 0x5a },\r
4768 { 0x00, 0x5b, 0x5b },\r
4769 { 0x00, 0x5c, 0x5c },\r
4770 { 0x00, 0x5d, 0x5d },\r
4771 { 0x00, 0x5e, 0x5e },\r
4772 { 0x00, 0x5f, 0x5f },\r
4773 { 0x00, 0x60, 0x60 },\r
4774 { 0x00, 0x61, 0x41 },\r
4775 { 0x00, 0x62, 0x42 },\r
4776 { 0x00, 0x63, 0x43 },\r
4777 { 0x00, 0x64, 0x44 },\r
4778 { 0x00, 0x65, 0x45 },\r
4779 { 0x00, 0x66, 0x46 },\r
4780 { 0x00, 0x67, 0x47 },\r
4781 { 0x00, 0x68, 0x48 },\r
4782 { 0x00, 0x69, 0x49 },\r
4783 { 0x00, 0x6a, 0x4a },\r
4784 { 0x00, 0x6b, 0x4b },\r
4785 { 0x00, 0x6c, 0x4c },\r
4786 { 0x00, 0x6d, 0x4d },\r
4787 { 0x00, 0x6e, 0x4e },\r
4788 { 0x00, 0x6f, 0x4f },\r
4789 { 0x00, 0x70, 0x50 },\r
4790 { 0x00, 0x71, 0x51 },\r
4791 { 0x00, 0x72, 0x52 },\r
4792 { 0x00, 0x73, 0x53 },\r
4793 { 0x00, 0x74, 0x54 },\r
4794 { 0x00, 0x75, 0x55 },\r
4795 { 0x00, 0x76, 0x56 },\r
4796 { 0x00, 0x77, 0x57 },\r
4797 { 0x00, 0x78, 0x58 },\r
4798 { 0x00, 0x79, 0x59 },\r
4799 { 0x00, 0x7a, 0x5a },\r
4800 { 0x00, 0x7b, 0x7b },\r
4801 { 0x00, 0x7c, 0x7c },\r
4802 { 0x00, 0x7d, 0x7d },\r
4803 { 0x00, 0x7e, 0x7e },\r
4804 { 0x00, 0x7f, 0x7f },\r
4805 { 0x00, 0x80, 0x80 },\r
4806 { 0x00, 0x81, 0x81 },\r
4807 { 0x00, 0x82, 0x82 },\r
4808 { 0x00, 0x83, 0x83 },\r
4809 { 0x00, 0x84, 0x84 },\r
4810 { 0x00, 0x85, 0x85 },\r
4811 { 0x00, 0x86, 0x86 },\r
4812 { 0x00, 0x87, 0x87 },\r
4813 { 0x00, 0x88, 0x88 },\r
4814 { 0x00, 0x89, 0x89 },\r
4815 { 0x00, 0x8a, 0x8a },\r
4816 { 0x00, 0x8b, 0x8b },\r
4817 { 0x00, 0x8c, 0x8c },\r
4818 { 0x00, 0x8d, 0x8d },\r
4819 { 0x00, 0x8e, 0x8e },\r
4820 { 0x00, 0x8f, 0x8f },\r
4821 { 0x00, 0x90, 0x90 },\r
4822 { 0x00, 0x91, 0x91 },\r
4823 { 0x00, 0x92, 0x92 },\r
4824 { 0x00, 0x93, 0x93 },\r
4825 { 0x00, 0x94, 0x94 },\r
4826 { 0x00, 0x95, 0x95 },\r
4827 { 0x00, 0x96, 0x96 },\r
4828 { 0x00, 0x97, 0x97 },\r
4829 { 0x00, 0x98, 0x98 },\r
4830 { 0x00, 0x99, 0x99 },\r
4831 { 0x00, 0x9a, 0x9a },\r
4832 { 0x00, 0x9b, 0x9b },\r
4833 { 0x00, 0x9c, 0x9c },\r
4834 { 0x00, 0x9d, 0x9d },\r
4835 { 0x00, 0x9e, 0x9e },\r
4836 { 0x00, 0x9f, 0x9f },\r
4837 { 0x00, 0xa0, 0xa0 },\r
4838 { 0x00, 0xa1, 0xa1 },\r
4839 { 0x00, 0xa2, 0xa2 },\r
4840 { 0x00, 0xa3, 0xa3 },\r
4841 { 0x00, 0xa4, 0xa4 },\r
4842 { 0x00, 0xa5, 0xa5 },\r
4843 { 0x00, 0xa6, 0xa6 },\r
4844 { 0x00, 0xa7, 0xa7 },\r
4845 { 0x00, 0xa8, 0xa8 },\r
4846 { 0x00, 0xa9, 0xa9 },\r
4847 { 0x00, 0xaa, 0xaa },\r
4848 { 0x00, 0xab, 0xab },\r
4849 { 0x00, 0xac, 0xac },\r
4850 { 0x00, 0xad, 0xad },\r
4851 { 0x00, 0xae, 0xae },\r
4852 { 0x00, 0xaf, 0xaf },\r
4853 { 0x00, 0xb0, 0xb0 },\r
4854 { 0x00, 0xb1, 0xb1 },\r
4855 { 0x00, 0xb2, 0xb2 },\r
4856 { 0x00, 0xb3, 0xb3 },\r
4857 { 0x00, 0xb4, 0xb4 },\r
4858 { 0x00, 0xb5, 0xb5 },\r
4859 { 0x00, 0xb6, 0xb6 },\r
4860 { 0x00, 0xb7, 0xb7 },\r
4861 { 0x00, 0xb8, 0xb8 },\r
4862 { 0x00, 0xb9, 0xb9 },\r
4863 { 0x00, 0xba, 0xba },\r
4864 { 0x00, 0xbb, 0xbb },\r
4865 { 0x00, 0xbc, 0xbc },\r
4866 { 0x00, 0xbd, 0xbd },\r
4867 { 0x00, 0xbe, 0xbe },\r
4868 { 0x00, 0xbf, 0xbf },\r
4869 { 0x00, 0xc0, 0xc0 },\r
4870 { 0x00, 0xc1, 0xc1 },\r
4871 { 0x00, 0xc2, 0xc2 },\r
4872 { 0x00, 0xc3, 0xc3 },\r
4873 { 0x00, 0xc4, 0xc4 },\r
4874 { 0x00, 0xc5, 0xc5 },\r
4875 { 0x00, 0xc6, 0xc6 },\r
4876 { 0x00, 0xc7, 0xc7 },\r
4877 { 0x00, 0xc8, 0xc8 },\r
4878 { 0x00, 0xc9, 0xc9 },\r
4879 { 0x00, 0xca, 0xca },\r
4880 { 0x00, 0xcb, 0xcb },\r
4881 { 0x00, 0xcc, 0xcc },\r
4882 { 0x00, 0xcd, 0xcd },\r
4883 { 0x00, 0xce, 0xce },\r
4884 { 0x00, 0xcf, 0xcf },\r
4885 { 0x00, 0xd0, 0xd0 },\r
4886 { 0x00, 0xd1, 0xd1 },\r
4887 { 0x00, 0xd2, 0xd2 },\r
4888 { 0x00, 0xd3, 0xd3 },\r
4889 { 0x00, 0xd4, 0xd4 },\r
4890 { 0x00, 0xd5, 0xd5 },\r
4891 { 0x00, 0xd6, 0xd6 },\r
4892 { 0x00, 0xd7, 0xd7 },\r
4893 { 0x00, 0xd8, 0xd8 },\r
4894 { 0x00, 0xd9, 0xd9 },\r
4895 { 0x00, 0xda, 0xda },\r
4896 { 0x00, 0xdb, 0xdb },\r
4897 { 0x00, 0xdc, 0xdc },\r
4898 { 0x00, 0xdd, 0xdd },\r
4899 { 0x00, 0xde, 0xde },\r
4900 { 0x00, 0xdf, 0xdf },\r
4901 { 0x00, 0xe0, 0xe0 },\r
4902 { 0x00, 0xe1, 0xe1 },\r
4903 { 0x00, 0xe2, 0xe2 },\r
4904 { 0x00, 0xe3, 0xe3 },\r
4905 { 0x00, 0xe4, 0xe4 },\r
4906 { 0x00, 0xe5, 0xe5 },\r
4907 { 0x00, 0xe6, 0xe6 },\r
4908 { 0x00, 0xe7, 0xe7 },\r
4909 { 0x00, 0xe8, 0xe8 },\r
4910 { 0x00, 0xe9, 0xe9 },\r
4911 { 0x00, 0xea, 0xea },\r
4912 { 0x00, 0xeb, 0xeb },\r
4913 { 0x00, 0xec, 0xec },\r
4914 { 0x00, 0xed, 0xed },\r
4915 { 0x00, 0xee, 0xee },\r
4916 { 0x00, 0xef, 0xef },\r
4917 { 0x00, 0xf0, 0xf0 },\r
4918 { 0x00, 0xf1, 0xf1 },\r
4919 { 0x00, 0xf2, 0xf2 },\r
4920 { 0x00, 0xf3, 0xf3 },\r
4921 { 0x00, 0xf4, 0xf4 },\r
4922 { 0x00, 0xf5, 0xf5 },\r
4923 { 0x00, 0xf6, 0xf6 },\r
4924 { 0x00, 0xf7, 0xf7 },\r
4925 { 0x00, 0xf8, 0xf8 },\r
4926 { 0x00, 0xf9, 0xf9 },\r
4927 { 0x00, 0xfa, 0xfa },\r
4928 { 0x00, 0xfb, 0xfb },\r
4929 { 0x00, 0xfc, 0xfc },\r
4930 { 0x00, 0xfd, 0xfd },\r
4931 { 0x00, 0xfe, 0xfe },\r
4932 { 0x00, 0xff, 0xff },\r
4933 };\r
4934 \r
4935 struct enc_entry encds[] = {\r
4936 {"ISO8859-1",iso1_tbl},\r
4937 {"ISO8859-2",iso2_tbl},\r
4938 {"ISO8859-3",iso3_tbl},\r
4939 {"ISO8859-4",iso4_tbl},\r
4940 {"ISO8859-5",iso5_tbl},\r
4941 {"ISO8859-6",iso6_tbl},\r
4942 {"ISO8859-7",iso7_tbl},\r
4943 {"ISO8859-8",iso8_tbl},\r
4944 {"ISO8859-9",iso9_tbl},\r
4945 {"ISO8859-10",iso10_tbl},\r
4946 {"KOI8-R",koi8r_tbl},\r
4947 {"KOI8-U",koi8u_tbl},\r
4948 {"microsoft-cp1251",cp1251_tbl},\r
4949 {"ISO8859-13", iso13_tbl},\r
4950 {"ISO8859-14", iso14_tbl},\r
4951 {"ISO8859-15", iso15_tbl},\r
4952 {"ISCII-DEVANAGARI", iscii_devanagari_tbl},\r
4953 };\r
4954 \r
4955 struct cs_info * get_current_cs(const char * es) {\r
4956   struct cs_info * ccs = encds[0].cs_table;\r
4957   int n = sizeof(encds) / sizeof(encds[0]);\r
4958   for (int i = 0; i < n; i++) {\r
4959     if (strcmp(es,encds[i].enc_name) == 0) {\r
4960       ccs = encds[i].cs_table;\r
4961     }\r
4962   }\r
4963   return ccs;\r
4964 }\r
4965 #else\r
4966 // XXX This function was rewritten for mozilla. Instead of storing the\r
4967 // conversion tables static in this file, create them when needed\r
4968 // with help the mozilla backend.\r
4969 struct cs_info * get_current_cs(const char * es) {\r
4970   struct cs_info *ccs;\r
4971 \r
4972   nsCOMPtr<nsIUnicodeEncoder> encoder; \r
4973   nsCOMPtr<nsIUnicodeDecoder> decoder; \r
4974   nsCOMPtr<nsICaseConversion> caseConv;\r
4975 \r
4976   nsresult rv;\r
4977   nsCOMPtr<nsICharsetConverterManager> ccm = do_GetService(kCharsetConverterManagerCID, &rv);\r
4978   if (NS_FAILED(rv))\r
4979     return nsnull;\r
4980 \r
4981   rv = ccm->GetUnicodeEncoder(es, getter_AddRefs(encoder));\r
4982   if (encoder && NS_SUCCEEDED(rv))\r
4983     encoder->SetOutputErrorBehavior(encoder->kOnError_Replace, nsnull, '?');\r
4984   if (NS_FAILED(rv))\r
4985     return nsnull;\r
4986   rv = ccm->GetUnicodeDecoder(es, getter_AddRefs(decoder));\r
4987 \r
4988   caseConv = do_GetService(kUnicharUtilCID, &rv);\r
4989   if (NS_FAILED(rv))\r
4990     return nsnull;\r
4991 \r
4992   ccs = (struct cs_info *) malloc(256 * sizeof(cs_info));\r
4993 \r
4994   PRInt32 charLength = 256;\r
4995   PRInt32 uniLength = 512;\r
4996   char *source = (char *)malloc(charLength * sizeof(char));\r
4997   PRUnichar *uni = (PRUnichar *)malloc(uniLength * sizeof(PRUnichar));\r
4998   char *lower = (char *)malloc(charLength * sizeof(char));\r
4999   char *upper = (char *)malloc(charLength * sizeof(char));\r
5000 \r
5001   // Create a long string of all chars.\r
5002   unsigned int i;\r
5003   for (i = 0x00; i <= 0xff ; ++i) {\r
5004     source[i] = i;\r
5005   }\r
5006 \r
5007   // Convert this long string to unicode\r
5008   rv = decoder->Convert(source, &charLength, uni, &uniLength);\r
5009 \r
5010   // Do case conversion stuff, and convert back.\r
5011   caseConv->ToUpper(uni, uni, uniLength);\r
5012   encoder->Convert(uni, &uniLength, upper, &charLength);\r
5013 \r
5014   uniLength = 512;\r
5015   charLength = 256;\r
5016   rv = decoder->Convert(source, &charLength, uni, &uniLength);\r
5017   caseConv->ToLower(uni, uni, uniLength);\r
5018   encoder->Convert(uni, &uniLength, lower, &charLength);\r
5019 \r
5020   // Store\r
5021   for (i = 0x00; i <= 0xff ; ++i) {\r
5022     ccs[i].cupper = upper[i];\r
5023     ccs[i].clower = lower[i];\r
5024     \r
5025     if (ccs[i].clower != (unsigned char)i)\r
5026       ccs[i].ccase = true;\r
5027     else\r
5028       ccs[i].ccase = false;\r
5029       \r
5030   }\r
5031 \r
5032   free(source);\r
5033   free(uni);\r
5034   free(lower);\r
5035   free(upper);\r
5036 \r
5037   return ccs;\r
5038 }\r
5039 #endif\r
5040 \r
5041 struct lang_map lang2enc[] = {\r
5042 {"ar", "UTF-8", LANG_ar},\r
5043 {"az", "UTF-8", LANG_az},\r
5044 {"bg", "microsoft-cp1251", LANG_bg},\r
5045 {"ca", "ISO8859-1", LANG_ca},\r
5046 {"cs", "ISO8859-2", LANG_cs},\r
5047 {"da", "ISO8859-1", LANG_da},\r
5048 {"de", "ISO8859-1", LANG_de},\r
5049 {"el", "ISO8859-7", LANG_el},\r
5050 {"en", "ISO8859-1", LANG_en},\r
5051 {"es", "ISO8859-1", LANG_es},\r
5052 {"eu", "ISO8859-1", LANG_eu},\r
5053 {"gl", "ISO8859-1", LANG_gl},\r
5054 {"fr", "ISO8859-15", LANG_fr},\r
5055 {"hr", "ISO8859-2", LANG_hr},\r
5056 {"hu", "ISO8859-2", LANG_hu},\r
5057 {"it", "ISO8859-1", LANG_it},\r
5058 {"la", "ISO8859-1", LANG_la},\r
5059 {"lv", "ISO8859-13", LANG_lv},\r
5060 {"nl", "ISO8859-1", LANG_nl},\r
5061 {"pl", "ISO8859-2", LANG_pl},\r
5062 {"pt", "ISO8859-1", LANG_pt},\r
5063 {"sv", "ISO8859-1", LANG_sv},\r
5064 {"tr", "UTF-8", LANG_tr},\r
5065 {"ru", "KOI8-R", LANG_ru},\r
5066 {"uk", "KOI8-U", LANG_uk}\r
5067 };\r
5068 \r
5069 \r
5070 const char * get_default_enc(const char * lang) {\r
5071   int n = sizeof(lang2enc) / sizeof(lang2enc[0]);\r
5072   for (int i = 0; i < n; i++) {\r
5073     if (strcmp(lang,lang2enc[i].lang) == 0) {\r
5074       return lang2enc[i].def_enc;\r
5075     }\r
5076   }\r
5077   return NULL;\r
5078 }\r
5079 \r
5080 int get_lang_num(const char * lang) {\r
5081   int n = sizeof(lang2enc) / sizeof(lang2enc[0]);\r
5082   for (int i = 0; i < n; i++) {\r
5083     if (strncmp(lang,lang2enc[i].lang,2) == 0) {\r
5084       return lang2enc[i].num;\r
5085     }\r
5086   }\r
5087   return LANG_xx;\r
5088 }\r
5089 \r
5090 #ifndef OPENOFFICEORG\r
5091 #ifndef MOZILLA_CLIENT\r
5092 int initialize_utf_tbl() {\r
5093   utf_tbl = (unicode_info2 *) malloc(CONTSIZE * sizeof(unicode_info2));\r
5094   if (utf_tbl) {\r
5095     int j;\r
5096     for (j = 0; j < CONTSIZE; j++) {\r
5097       utf_tbl[j].cletter = 0;\r
5098       utf_tbl[j].clower = (unsigned short) j;\r
5099       utf_tbl[j].cupper = (unsigned short) j;\r
5100     }\r
5101     for (j = 0; j < UTF_LST_LEN; j++) {\r
5102       utf_tbl[utf_lst[j].c].cletter = 1;\r
5103       utf_tbl[utf_lst[j].c].clower = utf_lst[j].clower;\r
5104       utf_tbl[utf_lst[j].c].cupper = utf_lst[j].cupper;\r
5105     }\r
5106   } else return 1;\r
5107   return 0;\r
5108 }\r
5109 #endif\r
5110 #endif\r
5111 \r
5112 void free_utf_tbl() {\r
5113   if (utf_tbl) free(utf_tbl);\r
5114 }\r
5115 \r
5116 #ifdef MOZILLA_CLIENT\r
5117 static nsCOMPtr<nsICaseConversion>& getcaseConv()\r
5118 {\r
5119   nsresult rv;\r
5120   static nsCOMPtr<nsICaseConversion> caseConv = do_GetService(kUnicharUtilCID, &rv);\r
5121   return caseConv;\r
5122 }\r
5123 #endif\r
5124 \r
5125 unsigned short unicodetoupper(unsigned short c, int langnum)\r
5126 {\r
5127   // In Azeri and Turkish, I and i dictinct letters:\r
5128   // There are a dotless lower case i pair of upper `I',\r
5129   // and an upper I with dot pair of lower `i'. \r
5130   if (c == 0x0069 && ((langnum == LANG_az) || (langnum == LANG_tr)))\r
5131     return 0x0130;\r
5132 #ifdef OPENOFFICEORG\r
5133   return u_toupper(c);\r
5134 #else\r
5135 #ifdef MOZILLA_CLIENT\r
5136   unsigned short ret(c);\r
5137   getcaseConv()->ToUpper(c, &ret);\r
5138   return ret;\r
5139 #else\r
5140   return utf_tbl[c].cupper;\r
5141 #endif\r
5142 #endif\r
5143 }\r
5144 \r
5145 unsigned short unicodetolower(unsigned short c, int langnum)\r
5146 {\r
5147   // In Azeri and Turkish, I and i dictinct letters:\r
5148   // There are a dotless lower case i pair of upper `I',\r
5149   // and an upper I with dot pair of lower `i'. \r
5150   if (c == 0x0049 && ((langnum == LANG_az) || (langnum == LANG_tr)))\r
5151     return 0x0131;\r
5152 #ifdef OPENOFFICEORG\r
5153   return u_tolower(c);\r
5154 #else\r
5155 #ifdef MOZILLA_CLIENT\r
5156   unsigned short ret(c);\r
5157   getcaseConv()->ToLower(c, &ret);\r
5158   return ret;\r
5159 #else\r
5160   return utf_tbl[c].clower;\r
5161 #endif\r
5162 #endif\r
5163 }\r
5164 \r
5165 int unicodeisalpha(unsigned short c)\r
5166 {\r
5167 #ifdef OPENOFFICEORG\r
5168   return u_isalpha(c);\r
5169 #else\r
5170   return utf_tbl[c].cletter;\r
5171 #endif\r
5172 }\r
5173 \r
5174 // strip all ignored characters in the string\r
5175 void remove_ignored_chars_utf(char * word, unsigned short ignored_chars[], int ignored_len)\r
5176 {\r
5177    w_char w[MAXWORDLEN];\r
5178    w_char w2[MAXWORDLEN];\r
5179    int i;\r
5180    int j;\r
5181    int len = u8_u16(w, MAXWORDLEN, word);\r
5182    for (i = 0, j = 0; i < len; i++) {\r
5183       if (!flag_bsearch(ignored_chars, ((unsigned short *) w)[i], ignored_len)) {\r
5184          w2[j] = w[i];\r
5185          j++;\r
5186       }\r
5187    }\r
5188    if (j < i) u16_u8(word, MAXWORDUTF8LEN, w2, j);\r
5189 }\r
5190 \r
5191 // strip all ignored characters in the string\r
5192 void remove_ignored_chars(char * word, char * ignored_chars)\r
5193 {\r
5194    for (char * p = word; *p != '\0'; p++) {\r
5195       if (!strchr(ignored_chars, *p)) {\r
5196         *word = *p;\r
5197         word++;\r
5198       }\r
5199    }\r
5200    *word = '\0';\r
5201 }\r
5202 \r
5203 int parse_string(char * line, char ** out, const char * name)\r
5204 {\r
5205    char * tp = line;\r
5206    char * piece;\r
5207    int i = 0;\r
5208    int np = 0;\r
5209    if (*out) {\r
5210       HUNSPELL_WARNING(stderr, "error: duplicate %s line\n", name);\r
5211       return 1;\r
5212    }\r
5213    piece = mystrsep(&tp, 0);\r
5214    while (piece) {\r
5215       if (*piece != '\0') {\r
5216           switch(i) {\r
5217               case 0: { np++; break; }\r
5218               case 1: { \r
5219                 *out = mystrdup(piece);\r
5220                 np++;\r
5221                 break;\r
5222               }\r
5223               default: break;\r
5224           }\r
5225           i++;\r
5226       }\r
5227       free(piece);\r
5228       piece = mystrsep(&tp, 0);\r
5229    }\r
5230    if (np != 2) {\r
5231       HUNSPELL_WARNING(stderr, "error: missing %s information\n", name);\r
5232       return 1;\r
5233    } \r
5234    return 0;\r
5235 }\r
5236 \r
5237 int parse_array(char * line, char ** out,\r
5238         unsigned short ** out_utf16, int * out_utf16_len, const char * name, int utf8) {\r
5239    if (parse_string(line, out, name)) return 1;\r
5240    if (utf8) {\r
5241         w_char w[MAXWORDLEN];\r
5242         int n = u8_u16(w, MAXWORDLEN, *out);\r
5243         if (n > 0) {\r
5244             flag_qsort((unsigned short *) w, 0, n);\r
5245             *out_utf16 = (unsigned short *) malloc(n * sizeof(unsigned short));\r
5246             if (!*out_utf16) return 1;\r
5247             memcpy(*out_utf16, w, n * sizeof(unsigned short));\r
5248         }\r
5249         *out_utf16_len = n;\r
5250    }\r
5251    return 0;\r
5252 }\r