JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / com / stevesoft / pat / CaseMgr.java
1 //
2 // This software is now distributed according to
3 // the Lesser Gnu Public License.  Please see
4 // http://www.gnu.org/copyleft/lesser.txt for
5 // the details.
6 //    -- Happy Computing!
7 //
8 package com.stevesoft.pat;
9
10 /**
11  * Encapsulates the Unicode definitions of Upper, Lower, and Title case as
12  * defined by <a href="http://www.unicode.org"> unicode.org</a>.
13  * <p>
14  * The performance of the methods found in String and Character is better, but
15  * these methods work both in java 1.0 and 1.1. If it is desirable, either to
16  * gain a slight performance increase or to accomodate application specific
17  * modifications to the definitions of upper, lower, and title case then it
18  * should be a straightforward task to substitute your own methods for these.
19  */
20 final public class CaseMgr
21 {
22   final static boolean java_1_0 = false;
23
24   /** Convert a character to upper case . */
25   public static char toUpperCaseC(char c)
26   {
27 //    if (java_1_0)
28 //    {
29 //      int ret = (int) c;
30 //      switch (c)
31 //      {
32 //      case 97:
33 //        ret = 65;
34 //        break;
35 //      case 98:
36 //        ret = 66;
37 //        break;
38 //      case 99:
39 //        ret = 67;
40 //        break;
41 //      case 100:
42 //        ret = 68;
43 //        break;
44 //      case 101:
45 //        ret = 69;
46 //        break;
47 //      case 102:
48 //        ret = 70;
49 //        break;
50 //      case 103:
51 //        ret = 71;
52 //        break;
53 //      case 104:
54 //        ret = 72;
55 //        break;
56 //      case 105:
57 //        ret = 73;
58 //        break;
59 //      case 106:
60 //        ret = 74;
61 //        break;
62 //      case 107:
63 //        ret = 75;
64 //        break;
65 //      case 108:
66 //        ret = 76;
67 //        break;
68 //      case 109:
69 //        ret = 77;
70 //        break;
71 //      case 110:
72 //        ret = 78;
73 //        break;
74 //      case 111:
75 //        ret = 79;
76 //        break;
77 //      case 112:
78 //        ret = 80;
79 //        break;
80 //      case 113:
81 //        ret = 81;
82 //        break;
83 //      case 114:
84 //        ret = 82;
85 //        break;
86 //      case 115:
87 //        ret = 83;
88 //        break;
89 //      case 116:
90 //        ret = 84;
91 //        break;
92 //      case 117:
93 //        ret = 85;
94 //        break;
95 //      case 118:
96 //        ret = 86;
97 //        break;
98 //      case 119:
99 //        ret = 87;
100 //        break;
101 //      case 120:
102 //        ret = 88;
103 //        break;
104 //      case 121:
105 //        ret = 89;
106 //        break;
107 //      case 122:
108 //        ret = 90;
109 //        break;
110 //      case 224:
111 //        ret = 192;
112 //        break;
113 //      case 225:
114 //        ret = 193;
115 //        break;
116 //      case 226:
117 //        ret = 194;
118 //        break;
119 //      case 227:
120 //        ret = 195;
121 //        break;
122 //      case 228:
123 //        ret = 196;
124 //        break;
125 //      case 229:
126 //        ret = 197;
127 //        break;
128 //      case 230:
129 //        ret = 198;
130 //        break;
131 //      case 231:
132 //        ret = 199;
133 //        break;
134 //      case 232:
135 //        ret = 200;
136 //        break;
137 //      case 233:
138 //        ret = 201;
139 //        break;
140 //      case 234:
141 //        ret = 202;
142 //        break;
143 //      case 235:
144 //        ret = 203;
145 //        break;
146 //      case 236:
147 //        ret = 204;
148 //        break;
149 //      case 237:
150 //        ret = 205;
151 //        break;
152 //      case 238:
153 //        ret = 206;
154 //        break;
155 //      case 239:
156 //        ret = 207;
157 //        break;
158 //      case 240:
159 //        ret = 208;
160 //        break;
161 //      case 241:
162 //        ret = 209;
163 //        break;
164 //      case 242:
165 //        ret = 210;
166 //        break;
167 //      case 243:
168 //        ret = 211;
169 //        break;
170 //      case 244:
171 //        ret = 212;
172 //        break;
173 //      case 245:
174 //        ret = 213;
175 //        break;
176 //      case 246:
177 //        ret = 214;
178 //        break;
179 //      case 248:
180 //        ret = 216;
181 //        break;
182 //      case 249:
183 //        ret = 217;
184 //        break;
185 //      case 250:
186 //        ret = 218;
187 //        break;
188 //      case 251:
189 //        ret = 219;
190 //        break;
191 //      case 252:
192 //        ret = 220;
193 //        break;
194 //      case 253:
195 //        ret = 221;
196 //        break;
197 //      case 254:
198 //        ret = 222;
199 //        break;
200 //      case 255:
201 //        ret = 376;
202 //        break;
203 //      case 257:
204 //        ret = 256;
205 //        break;
206 //      case 259:
207 //        ret = 258;
208 //        break;
209 //      case 261:
210 //        ret = 260;
211 //        break;
212 //      case 263:
213 //        ret = 262;
214 //        break;
215 //      case 265:
216 //        ret = 264;
217 //        break;
218 //      case 267:
219 //        ret = 266;
220 //        break;
221 //      case 269:
222 //        ret = 268;
223 //        break;
224 //      case 271:
225 //        ret = 270;
226 //        break;
227 //      case 273:
228 //        ret = 272;
229 //        break;
230 //      case 275:
231 //        ret = 274;
232 //        break;
233 //      case 277:
234 //        ret = 276;
235 //        break;
236 //      case 279:
237 //        ret = 278;
238 //        break;
239 //      case 281:
240 //        ret = 280;
241 //        break;
242 //      case 283:
243 //        ret = 282;
244 //        break;
245 //      case 285:
246 //        ret = 284;
247 //        break;
248 //      case 287:
249 //        ret = 286;
250 //        break;
251 //      case 289:
252 //        ret = 288;
253 //        break;
254 //      case 291:
255 //        ret = 290;
256 //        break;
257 //      case 293:
258 //        ret = 292;
259 //        break;
260 //      case 295:
261 //        ret = 294;
262 //        break;
263 //      case 297:
264 //        ret = 296;
265 //        break;
266 //      case 299:
267 //        ret = 298;
268 //        break;
269 //      case 301:
270 //        ret = 300;
271 //        break;
272 //      case 303:
273 //        ret = 302;
274 //        break;
275 //      case 305:
276 //        ret = 73;
277 //        break;
278 //      case 307:
279 //        ret = 306;
280 //        break;
281 //      case 309:
282 //        ret = 308;
283 //        break;
284 //      case 311:
285 //        ret = 310;
286 //        break;
287 //      case 314:
288 //        ret = 313;
289 //        break;
290 //      case 316:
291 //        ret = 315;
292 //        break;
293 //      case 318:
294 //        ret = 317;
295 //        break;
296 //      case 320:
297 //        ret = 319;
298 //        break;
299 //      case 322:
300 //        ret = 321;
301 //        break;
302 //      case 324:
303 //        ret = 323;
304 //        break;
305 //      case 326:
306 //        ret = 325;
307 //        break;
308 //      case 328:
309 //        ret = 327;
310 //        break;
311 //      case 331:
312 //        ret = 330;
313 //        break;
314 //      case 333:
315 //        ret = 332;
316 //        break;
317 //      case 335:
318 //        ret = 334;
319 //        break;
320 //      case 337:
321 //        ret = 336;
322 //        break;
323 //      case 339:
324 //        ret = 338;
325 //        break;
326 //      case 341:
327 //        ret = 340;
328 //        break;
329 //      case 343:
330 //        ret = 342;
331 //        break;
332 //      case 345:
333 //        ret = 344;
334 //        break;
335 //      case 347:
336 //        ret = 346;
337 //        break;
338 //      case 349:
339 //        ret = 348;
340 //        break;
341 //      case 351:
342 //        ret = 350;
343 //        break;
344 //      case 353:
345 //        ret = 352;
346 //        break;
347 //      case 355:
348 //        ret = 354;
349 //        break;
350 //      case 357:
351 //        ret = 356;
352 //        break;
353 //      case 359:
354 //        ret = 358;
355 //        break;
356 //      case 361:
357 //        ret = 360;
358 //        break;
359 //      case 363:
360 //        ret = 362;
361 //        break;
362 //      case 365:
363 //        ret = 364;
364 //        break;
365 //      case 367:
366 //        ret = 366;
367 //        break;
368 //      case 369:
369 //        ret = 368;
370 //        break;
371 //      case 371:
372 //        ret = 370;
373 //        break;
374 //      case 373:
375 //        ret = 372;
376 //        break;
377 //      case 375:
378 //        ret = 374;
379 //        break;
380 //      case 378:
381 //        ret = 377;
382 //        break;
383 //      case 380:
384 //        ret = 379;
385 //        break;
386 //      case 382:
387 //        ret = 381;
388 //        break;
389 //      case 383:
390 //        ret = 83;
391 //        break;
392 //      case 387:
393 //        ret = 386;
394 //        break;
395 //      case 389:
396 //        ret = 388;
397 //        break;
398 //      case 392:
399 //        ret = 391;
400 //        break;
401 //      case 396:
402 //        ret = 395;
403 //        break;
404 //      case 402:
405 //        ret = 401;
406 //        break;
407 //      case 409:
408 //        ret = 408;
409 //        break;
410 //      case 417:
411 //        ret = 416;
412 //        break;
413 //      case 419:
414 //        ret = 418;
415 //        break;
416 //      case 421:
417 //        ret = 420;
418 //        break;
419 //      case 424:
420 //        ret = 423;
421 //        break;
422 //      case 429:
423 //        ret = 428;
424 //        break;
425 //      case 432:
426 //        ret = 431;
427 //        break;
428 //      case 436:
429 //        ret = 435;
430 //        break;
431 //      case 438:
432 //        ret = 437;
433 //        break;
434 //      case 441:
435 //        ret = 440;
436 //        break;
437 //      case 445:
438 //        ret = 444;
439 //        break;
440 //      case 453:
441 //        ret = 452;
442 //        break;
443 //      case 454:
444 //        ret = 452;
445 //        break;
446 //      case 456:
447 //        ret = 455;
448 //        break;
449 //      case 457:
450 //        ret = 455;
451 //        break;
452 //      case 459:
453 //        ret = 458;
454 //        break;
455 //      case 460:
456 //        ret = 458;
457 //        break;
458 //      case 462:
459 //        ret = 461;
460 //        break;
461 //      case 464:
462 //        ret = 463;
463 //        break;
464 //      case 466:
465 //        ret = 465;
466 //        break;
467 //      case 468:
468 //        ret = 467;
469 //        break;
470 //      case 470:
471 //        ret = 469;
472 //        break;
473 //      case 472:
474 //        ret = 471;
475 //        break;
476 //      case 474:
477 //        ret = 473;
478 //        break;
479 //      case 476:
480 //        ret = 475;
481 //        break;
482 //      case 479:
483 //        ret = 478;
484 //        break;
485 //      case 481:
486 //        ret = 480;
487 //        break;
488 //      case 483:
489 //        ret = 482;
490 //        break;
491 //      case 485:
492 //        ret = 484;
493 //        break;
494 //      case 487:
495 //        ret = 486;
496 //        break;
497 //      case 489:
498 //        ret = 488;
499 //        break;
500 //      case 491:
501 //        ret = 490;
502 //        break;
503 //      case 493:
504 //        ret = 492;
505 //        break;
506 //      case 495:
507 //        ret = 494;
508 //        break;
509 //      case 498:
510 //        ret = 497;
511 //        break;
512 //      case 499:
513 //        ret = 497;
514 //        break;
515 //      case 501:
516 //        ret = 500;
517 //        break;
518 //      case 507:
519 //        ret = 506;
520 //        break;
521 //      case 509:
522 //        ret = 508;
523 //        break;
524 //      case 511:
525 //        ret = 510;
526 //        break;
527 //      case 513:
528 //        ret = 512;
529 //        break;
530 //      case 515:
531 //        ret = 514;
532 //        break;
533 //      case 517:
534 //        ret = 516;
535 //        break;
536 //      case 519:
537 //        ret = 518;
538 //        break;
539 //      case 521:
540 //        ret = 520;
541 //        break;
542 //      case 523:
543 //        ret = 522;
544 //        break;
545 //      case 525:
546 //        ret = 524;
547 //        break;
548 //      case 527:
549 //        ret = 526;
550 //        break;
551 //      case 529:
552 //        ret = 528;
553 //        break;
554 //      case 531:
555 //        ret = 530;
556 //        break;
557 //      case 533:
558 //        ret = 532;
559 //        break;
560 //      case 535:
561 //        ret = 534;
562 //        break;
563 //      case 595:
564 //        ret = 385;
565 //        break;
566 //      case 596:
567 //        ret = 390;
568 //        break;
569 //      case 598:
570 //        ret = 393;
571 //        break;
572 //      case 599:
573 //        ret = 394;
574 //        break;
575 //      case 600:
576 //        ret = 398;
577 //        break;
578 //      case 601:
579 //        ret = 399;
580 //        break;
581 //      case 603:
582 //        ret = 400;
583 //        break;
584 //      case 608:
585 //        ret = 403;
586 //        break;
587 //      case 611:
588 //        ret = 404;
589 //        break;
590 //      case 616:
591 //        ret = 407;
592 //        break;
593 //      case 617:
594 //        ret = 406;
595 //        break;
596 //      case 623:
597 //        ret = 412;
598 //        break;
599 //      case 626:
600 //        ret = 413;
601 //        break;
602 //      case 643:
603 //        ret = 425;
604 //        break;
605 //      case 648:
606 //        ret = 430;
607 //        break;
608 //      case 650:
609 //        ret = 433;
610 //        break;
611 //      case 651:
612 //        ret = 434;
613 //        break;
614 //      case 658:
615 //        ret = 439;
616 //        break;
617 //      case 940:
618 //        ret = 902;
619 //        break;
620 //      case 941:
621 //        ret = 904;
622 //        break;
623 //      case 942:
624 //        ret = 905;
625 //        break;
626 //      case 943:
627 //        ret = 906;
628 //        break;
629 //      case 945:
630 //        ret = 913;
631 //        break;
632 //      case 946:
633 //        ret = 914;
634 //        break;
635 //      case 947:
636 //        ret = 915;
637 //        break;
638 //      case 948:
639 //        ret = 916;
640 //        break;
641 //      case 949:
642 //        ret = 917;
643 //        break;
644 //      case 950:
645 //        ret = 918;
646 //        break;
647 //      case 951:
648 //        ret = 919;
649 //        break;
650 //      case 952:
651 //        ret = 920;
652 //        break;
653 //      case 953:
654 //        ret = 921;
655 //        break;
656 //      case 954:
657 //        ret = 922;
658 //        break;
659 //      case 955:
660 //        ret = 923;
661 //        break;
662 //      case 956:
663 //        ret = 924;
664 //        break;
665 //      case 957:
666 //        ret = 925;
667 //        break;
668 //      case 958:
669 //        ret = 926;
670 //        break;
671 //      case 959:
672 //        ret = 927;
673 //        break;
674 //      case 960:
675 //        ret = 928;
676 //        break;
677 //      case 961:
678 //        ret = 929;
679 //        break;
680 //      case 963:
681 //        ret = 931;
682 //        break;
683 //      case 964:
684 //        ret = 932;
685 //        break;
686 //      case 965:
687 //        ret = 933;
688 //        break;
689 //      case 966:
690 //        ret = 934;
691 //        break;
692 //      case 967:
693 //        ret = 935;
694 //        break;
695 //      case 968:
696 //        ret = 936;
697 //        break;
698 //      case 969:
699 //        ret = 937;
700 //        break;
701 //      case 970:
702 //        ret = 938;
703 //        break;
704 //      case 971:
705 //        ret = 939;
706 //        break;
707 //      case 972:
708 //        ret = 908;
709 //        break;
710 //      case 973:
711 //        ret = 910;
712 //        break;
713 //      case 974:
714 //        ret = 911;
715 //        break;
716 //      case 976:
717 //        ret = 914;
718 //        break;
719 //      case 977:
720 //        ret = 920;
721 //        break;
722 //      case 981:
723 //        ret = 934;
724 //        break;
725 //      case 982:
726 //        ret = 928;
727 //        break;
728 //      case 995:
729 //        ret = 994;
730 //        break;
731 //      case 997:
732 //        ret = 996;
733 //        break;
734 //      case 999:
735 //        ret = 998;
736 //        break;
737 //      case 1001:
738 //        ret = 1000;
739 //        break;
740 //      case 1003:
741 //        ret = 1002;
742 //        break;
743 //      case 1005:
744 //        ret = 1004;
745 //        break;
746 //      case 1007:
747 //        ret = 1006;
748 //        break;
749 //      case 1008:
750 //        ret = 922;
751 //        break;
752 //      case 1009:
753 //        ret = 929;
754 //        break;
755 //      case 1072:
756 //        ret = 1040;
757 //        break;
758 //      case 1073:
759 //        ret = 1041;
760 //        break;
761 //      case 1074:
762 //        ret = 1042;
763 //        break;
764 //      case 1075:
765 //        ret = 1043;
766 //        break;
767 //      case 1076:
768 //        ret = 1044;
769 //        break;
770 //      case 1077:
771 //        ret = 1045;
772 //        break;
773 //      case 1078:
774 //        ret = 1046;
775 //        break;
776 //      case 1079:
777 //        ret = 1047;
778 //        break;
779 //      case 1080:
780 //        ret = 1048;
781 //        break;
782 //      case 1081:
783 //        ret = 1049;
784 //        break;
785 //      case 1082:
786 //        ret = 1050;
787 //        break;
788 //      case 1083:
789 //        ret = 1051;
790 //        break;
791 //      case 1084:
792 //        ret = 1052;
793 //        break;
794 //      case 1085:
795 //        ret = 1053;
796 //        break;
797 //      case 1086:
798 //        ret = 1054;
799 //        break;
800 //      case 1087:
801 //        ret = 1055;
802 //        break;
803 //      case 1088:
804 //        ret = 1056;
805 //        break;
806 //      case 1089:
807 //        ret = 1057;
808 //        break;
809 //      case 1090:
810 //        ret = 1058;
811 //        break;
812 //      case 1091:
813 //        ret = 1059;
814 //        break;
815 //      case 1092:
816 //        ret = 1060;
817 //        break;
818 //      case 1093:
819 //        ret = 1061;
820 //        break;
821 //      case 1094:
822 //        ret = 1062;
823 //        break;
824 //      case 1095:
825 //        ret = 1063;
826 //        break;
827 //      case 1096:
828 //        ret = 1064;
829 //        break;
830 //      case 1097:
831 //        ret = 1065;
832 //        break;
833 //      case 1098:
834 //        ret = 1066;
835 //        break;
836 //      case 1099:
837 //        ret = 1067;
838 //        break;
839 //      case 1100:
840 //        ret = 1068;
841 //        break;
842 //      case 1101:
843 //        ret = 1069;
844 //        break;
845 //      case 1102:
846 //        ret = 1070;
847 //        break;
848 //      case 1103:
849 //        ret = 1071;
850 //        break;
851 //      case 1105:
852 //        ret = 1025;
853 //        break;
854 //      case 1106:
855 //        ret = 1026;
856 //        break;
857 //      case 1107:
858 //        ret = 1027;
859 //        break;
860 //      case 1108:
861 //        ret = 1028;
862 //        break;
863 //      case 1109:
864 //        ret = 1029;
865 //        break;
866 //      case 1110:
867 //        ret = 1030;
868 //        break;
869 //      case 1111:
870 //        ret = 1031;
871 //        break;
872 //      case 1112:
873 //        ret = 1032;
874 //        break;
875 //      case 1113:
876 //        ret = 1033;
877 //        break;
878 //      case 1114:
879 //        ret = 1034;
880 //        break;
881 //      case 1115:
882 //        ret = 1035;
883 //        break;
884 //      case 1116:
885 //        ret = 1036;
886 //        break;
887 //      case 1118:
888 //        ret = 1038;
889 //        break;
890 //      case 1119:
891 //        ret = 1039;
892 //        break;
893 //      case 1121:
894 //        ret = 1120;
895 //        break;
896 //      case 1123:
897 //        ret = 1122;
898 //        break;
899 //      case 1125:
900 //        ret = 1124;
901 //        break;
902 //      case 1127:
903 //        ret = 1126;
904 //        break;
905 //      case 1129:
906 //        ret = 1128;
907 //        break;
908 //      case 1131:
909 //        ret = 1130;
910 //        break;
911 //      case 1133:
912 //        ret = 1132;
913 //        break;
914 //      case 1135:
915 //        ret = 1134;
916 //        break;
917 //      case 1137:
918 //        ret = 1136;
919 //        break;
920 //      case 1139:
921 //        ret = 1138;
922 //        break;
923 //      case 1141:
924 //        ret = 1140;
925 //        break;
926 //      case 1143:
927 //        ret = 1142;
928 //        break;
929 //      case 1145:
930 //        ret = 1144;
931 //        break;
932 //      case 1147:
933 //        ret = 1146;
934 //        break;
935 //      case 1149:
936 //        ret = 1148;
937 //        break;
938 //      case 1151:
939 //        ret = 1150;
940 //        break;
941 //      case 1153:
942 //        ret = 1152;
943 //        break;
944 //      case 1169:
945 //        ret = 1168;
946 //        break;
947 //      case 1171:
948 //        ret = 1170;
949 //        break;
950 //      case 1173:
951 //        ret = 1172;
952 //        break;
953 //      case 1175:
954 //        ret = 1174;
955 //        break;
956 //      case 1177:
957 //        ret = 1176;
958 //        break;
959 //      case 1179:
960 //        ret = 1178;
961 //        break;
962 //      case 1181:
963 //        ret = 1180;
964 //        break;
965 //      case 1183:
966 //        ret = 1182;
967 //        break;
968 //      case 1185:
969 //        ret = 1184;
970 //        break;
971 //      case 1187:
972 //        ret = 1186;
973 //        break;
974 //      case 1189:
975 //        ret = 1188;
976 //        break;
977 //      case 1191:
978 //        ret = 1190;
979 //        break;
980 //      case 1193:
981 //        ret = 1192;
982 //        break;
983 //      case 1195:
984 //        ret = 1194;
985 //        break;
986 //      case 1197:
987 //        ret = 1196;
988 //        break;
989 //      case 1199:
990 //        ret = 1198;
991 //        break;
992 //      case 1201:
993 //        ret = 1200;
994 //        break;
995 //      case 1203:
996 //        ret = 1202;
997 //        break;
998 //      case 1205:
999 //        ret = 1204;
1000 //        break;
1001 //      case 1207:
1002 //        ret = 1206;
1003 //        break;
1004 //      case 1209:
1005 //        ret = 1208;
1006 //        break;
1007 //      case 1211:
1008 //        ret = 1210;
1009 //        break;
1010 //      case 1213:
1011 //        ret = 1212;
1012 //        break;
1013 //      case 1215:
1014 //        ret = 1214;
1015 //        break;
1016 //      case 1218:
1017 //        ret = 1217;
1018 //        break;
1019 //      case 1220:
1020 //        ret = 1219;
1021 //        break;
1022 //      case 1224:
1023 //        ret = 1223;
1024 //        break;
1025 //      case 1228:
1026 //        ret = 1227;
1027 //        break;
1028 //      case 1233:
1029 //        ret = 1232;
1030 //        break;
1031 //      case 1235:
1032 //        ret = 1234;
1033 //        break;
1034 //      case 1237:
1035 //        ret = 1236;
1036 //        break;
1037 //      case 1239:
1038 //        ret = 1238;
1039 //        break;
1040 //      case 1241:
1041 //        ret = 1240;
1042 //        break;
1043 //      case 1243:
1044 //        ret = 1242;
1045 //        break;
1046 //      case 1245:
1047 //        ret = 1244;
1048 //        break;
1049 //      case 1247:
1050 //        ret = 1246;
1051 //        break;
1052 //      case 1249:
1053 //        ret = 1248;
1054 //        break;
1055 //      case 1251:
1056 //        ret = 1250;
1057 //        break;
1058 //      case 1253:
1059 //        ret = 1252;
1060 //        break;
1061 //      case 1255:
1062 //        ret = 1254;
1063 //        break;
1064 //      case 1257:
1065 //        ret = 1256;
1066 //        break;
1067 //      case 1259:
1068 //        ret = 1258;
1069 //        break;
1070 //      case 1263:
1071 //        ret = 1262;
1072 //        break;
1073 //      case 1265:
1074 //        ret = 1264;
1075 //        break;
1076 //      case 1267:
1077 //        ret = 1266;
1078 //        break;
1079 //      case 1269:
1080 //        ret = 1268;
1081 //        break;
1082 //      case 1273:
1083 //        ret = 1272;
1084 //        break;
1085 //      case 1377:
1086 //        ret = 1329;
1087 //        break;
1088 //      case 1378:
1089 //        ret = 1330;
1090 //        break;
1091 //      case 1379:
1092 //        ret = 1331;
1093 //        break;
1094 //      case 1380:
1095 //        ret = 1332;
1096 //        break;
1097 //      case 1381:
1098 //        ret = 1333;
1099 //        break;
1100 //      case 1382:
1101 //        ret = 1334;
1102 //        break;
1103 //      case 1383:
1104 //        ret = 1335;
1105 //        break;
1106 //      case 1384:
1107 //        ret = 1336;
1108 //        break;
1109 //      case 1385:
1110 //        ret = 1337;
1111 //        break;
1112 //      case 1386:
1113 //        ret = 1338;
1114 //        break;
1115 //      case 1387:
1116 //        ret = 1339;
1117 //        break;
1118 //      case 1388:
1119 //        ret = 1340;
1120 //        break;
1121 //      case 1389:
1122 //        ret = 1341;
1123 //        break;
1124 //      case 1390:
1125 //        ret = 1342;
1126 //        break;
1127 //      case 1391:
1128 //        ret = 1343;
1129 //        break;
1130 //      case 1392:
1131 //        ret = 1344;
1132 //        break;
1133 //      case 1393:
1134 //        ret = 1345;
1135 //        break;
1136 //      case 1394:
1137 //        ret = 1346;
1138 //        break;
1139 //      case 1395:
1140 //        ret = 1347;
1141 //        break;
1142 //      case 1396:
1143 //        ret = 1348;
1144 //        break;
1145 //      case 1397:
1146 //        ret = 1349;
1147 //        break;
1148 //      case 1398:
1149 //        ret = 1350;
1150 //        break;
1151 //      case 1399:
1152 //        ret = 1351;
1153 //        break;
1154 //      case 1400:
1155 //        ret = 1352;
1156 //        break;
1157 //      case 1401:
1158 //        ret = 1353;
1159 //        break;
1160 //      case 1402:
1161 //        ret = 1354;
1162 //        break;
1163 //      case 1403:
1164 //        ret = 1355;
1165 //        break;
1166 //      case 1404:
1167 //        ret = 1356;
1168 //        break;
1169 //      case 1405:
1170 //        ret = 1357;
1171 //        break;
1172 //      case 1406:
1173 //        ret = 1358;
1174 //        break;
1175 //      case 1407:
1176 //        ret = 1359;
1177 //        break;
1178 //      case 1408:
1179 //        ret = 1360;
1180 //        break;
1181 //      case 1409:
1182 //        ret = 1361;
1183 //        break;
1184 //      case 1410:
1185 //        ret = 1362;
1186 //        break;
1187 //      case 1411:
1188 //        ret = 1363;
1189 //        break;
1190 //      case 1412:
1191 //        ret = 1364;
1192 //        break;
1193 //      case 1413:
1194 //        ret = 1365;
1195 //        break;
1196 //      case 1414:
1197 //        ret = 1366;
1198 //        break;
1199 //      case 7681:
1200 //        ret = 7680;
1201 //        break;
1202 //      case 7683:
1203 //        ret = 7682;
1204 //        break;
1205 //      case 7685:
1206 //        ret = 7684;
1207 //        break;
1208 //      case 7687:
1209 //        ret = 7686;
1210 //        break;
1211 //      case 7689:
1212 //        ret = 7688;
1213 //        break;
1214 //      case 7691:
1215 //        ret = 7690;
1216 //        break;
1217 //      case 7693:
1218 //        ret = 7692;
1219 //        break;
1220 //      case 7695:
1221 //        ret = 7694;
1222 //        break;
1223 //      case 7697:
1224 //        ret = 7696;
1225 //        break;
1226 //      case 7699:
1227 //        ret = 7698;
1228 //        break;
1229 //      case 7701:
1230 //        ret = 7700;
1231 //        break;
1232 //      case 7703:
1233 //        ret = 7702;
1234 //        break;
1235 //      case 7705:
1236 //        ret = 7704;
1237 //        break;
1238 //      case 7707:
1239 //        ret = 7706;
1240 //        break;
1241 //      case 7709:
1242 //        ret = 7708;
1243 //        break;
1244 //      case 7711:
1245 //        ret = 7710;
1246 //        break;
1247 //      case 7713:
1248 //        ret = 7712;
1249 //        break;
1250 //      case 7715:
1251 //        ret = 7714;
1252 //        break;
1253 //      case 7717:
1254 //        ret = 7716;
1255 //        break;
1256 //      case 7719:
1257 //        ret = 7718;
1258 //        break;
1259 //      case 7721:
1260 //        ret = 7720;
1261 //        break;
1262 //      case 7723:
1263 //        ret = 7722;
1264 //        break;
1265 //      case 7725:
1266 //        ret = 7724;
1267 //        break;
1268 //      case 7727:
1269 //        ret = 7726;
1270 //        break;
1271 //      case 7729:
1272 //        ret = 7728;
1273 //        break;
1274 //      case 7731:
1275 //        ret = 7730;
1276 //        break;
1277 //      case 7733:
1278 //        ret = 7732;
1279 //        break;
1280 //      case 7735:
1281 //        ret = 7734;
1282 //        break;
1283 //      case 7737:
1284 //        ret = 7736;
1285 //        break;
1286 //      case 7739:
1287 //        ret = 7738;
1288 //        break;
1289 //      case 7741:
1290 //        ret = 7740;
1291 //        break;
1292 //      case 7743:
1293 //        ret = 7742;
1294 //        break;
1295 //      case 7745:
1296 //        ret = 7744;
1297 //        break;
1298 //      case 7747:
1299 //        ret = 7746;
1300 //        break;
1301 //      case 7749:
1302 //        ret = 7748;
1303 //        break;
1304 //      case 7751:
1305 //        ret = 7750;
1306 //        break;
1307 //      case 7753:
1308 //        ret = 7752;
1309 //        break;
1310 //      case 7755:
1311 //        ret = 7754;
1312 //        break;
1313 //      case 7757:
1314 //        ret = 7756;
1315 //        break;
1316 //      case 7759:
1317 //        ret = 7758;
1318 //        break;
1319 //      case 7761:
1320 //        ret = 7760;
1321 //        break;
1322 //      case 7763:
1323 //        ret = 7762;
1324 //        break;
1325 //      case 7765:
1326 //        ret = 7764;
1327 //        break;
1328 //      case 7767:
1329 //        ret = 7766;
1330 //        break;
1331 //      case 7769:
1332 //        ret = 7768;
1333 //        break;
1334 //      case 7771:
1335 //        ret = 7770;
1336 //        break;
1337 //      case 7773:
1338 //        ret = 7772;
1339 //        break;
1340 //      case 7775:
1341 //        ret = 7774;
1342 //        break;
1343 //      case 7777:
1344 //        ret = 7776;
1345 //        break;
1346 //      case 7779:
1347 //        ret = 7778;
1348 //        break;
1349 //      case 7781:
1350 //        ret = 7780;
1351 //        break;
1352 //      case 7783:
1353 //        ret = 7782;
1354 //        break;
1355 //      case 7785:
1356 //        ret = 7784;
1357 //        break;
1358 //      case 7787:
1359 //        ret = 7786;
1360 //        break;
1361 //      case 7789:
1362 //        ret = 7788;
1363 //        break;
1364 //      case 7791:
1365 //        ret = 7790;
1366 //        break;
1367 //      case 7793:
1368 //        ret = 7792;
1369 //        break;
1370 //      case 7795:
1371 //        ret = 7794;
1372 //        break;
1373 //      case 7797:
1374 //        ret = 7796;
1375 //        break;
1376 //      case 7799:
1377 //        ret = 7798;
1378 //        break;
1379 //      case 7801:
1380 //        ret = 7800;
1381 //        break;
1382 //      case 7803:
1383 //        ret = 7802;
1384 //        break;
1385 //      case 7805:
1386 //        ret = 7804;
1387 //        break;
1388 //      case 7807:
1389 //        ret = 7806;
1390 //        break;
1391 //      case 7809:
1392 //        ret = 7808;
1393 //        break;
1394 //      case 7811:
1395 //        ret = 7810;
1396 //        break;
1397 //      case 7813:
1398 //        ret = 7812;
1399 //        break;
1400 //      case 7815:
1401 //        ret = 7814;
1402 //        break;
1403 //      case 7817:
1404 //        ret = 7816;
1405 //        break;
1406 //      case 7819:
1407 //        ret = 7818;
1408 //        break;
1409 //      case 7821:
1410 //        ret = 7820;
1411 //        break;
1412 //      case 7823:
1413 //        ret = 7822;
1414 //        break;
1415 //      case 7825:
1416 //        ret = 7824;
1417 //        break;
1418 //      case 7827:
1419 //        ret = 7826;
1420 //        break;
1421 //      case 7829:
1422 //        ret = 7828;
1423 //        break;
1424 //      case 7841:
1425 //        ret = 7840;
1426 //        break;
1427 //      case 7843:
1428 //        ret = 7842;
1429 //        break;
1430 //      case 7845:
1431 //        ret = 7844;
1432 //        break;
1433 //      case 7847:
1434 //        ret = 7846;
1435 //        break;
1436 //      case 7849:
1437 //        ret = 7848;
1438 //        break;
1439 //      case 7851:
1440 //        ret = 7850;
1441 //        break;
1442 //      case 7853:
1443 //        ret = 7852;
1444 //        break;
1445 //      case 7855:
1446 //        ret = 7854;
1447 //        break;
1448 //      case 7857:
1449 //        ret = 7856;
1450 //        break;
1451 //      case 7859:
1452 //        ret = 7858;
1453 //        break;
1454 //      case 7861:
1455 //        ret = 7860;
1456 //        break;
1457 //      case 7863:
1458 //        ret = 7862;
1459 //        break;
1460 //      case 7865:
1461 //        ret = 7864;
1462 //        break;
1463 //      case 7867:
1464 //        ret = 7866;
1465 //        break;
1466 //      case 7869:
1467 //        ret = 7868;
1468 //        break;
1469 //      case 7871:
1470 //        ret = 7870;
1471 //        break;
1472 //      case 7873:
1473 //        ret = 7872;
1474 //        break;
1475 //      case 7875:
1476 //        ret = 7874;
1477 //        break;
1478 //      case 7877:
1479 //        ret = 7876;
1480 //        break;
1481 //      case 7879:
1482 //        ret = 7878;
1483 //        break;
1484 //      case 7881:
1485 //        ret = 7880;
1486 //        break;
1487 //      case 7883:
1488 //        ret = 7882;
1489 //        break;
1490 //      case 7885:
1491 //        ret = 7884;
1492 //        break;
1493 //      case 7887:
1494 //        ret = 7886;
1495 //        break;
1496 //      case 7889:
1497 //        ret = 7888;
1498 //        break;
1499 //      case 7891:
1500 //        ret = 7890;
1501 //        break;
1502 //      case 7893:
1503 //        ret = 7892;
1504 //        break;
1505 //      case 7895:
1506 //        ret = 7894;
1507 //        break;
1508 //      case 7897:
1509 //        ret = 7896;
1510 //        break;
1511 //      case 7899:
1512 //        ret = 7898;
1513 //        break;
1514 //      case 7901:
1515 //        ret = 7900;
1516 //        break;
1517 //      case 7903:
1518 //        ret = 7902;
1519 //        break;
1520 //      case 7905:
1521 //        ret = 7904;
1522 //        break;
1523 //      case 7907:
1524 //        ret = 7906;
1525 //        break;
1526 //      case 7909:
1527 //        ret = 7908;
1528 //        break;
1529 //      case 7911:
1530 //        ret = 7910;
1531 //        break;
1532 //      case 7913:
1533 //        ret = 7912;
1534 //        break;
1535 //      case 7915:
1536 //        ret = 7914;
1537 //        break;
1538 //      case 7917:
1539 //        ret = 7916;
1540 //        break;
1541 //      case 7919:
1542 //        ret = 7918;
1543 //        break;
1544 //      case 7921:
1545 //        ret = 7920;
1546 //        break;
1547 //      case 7923:
1548 //        ret = 7922;
1549 //        break;
1550 //      case 7925:
1551 //        ret = 7924;
1552 //        break;
1553 //      case 7927:
1554 //        ret = 7926;
1555 //        break;
1556 //      case 7929:
1557 //        ret = 7928;
1558 //        break;
1559 //      case 7936:
1560 //        ret = 7944;
1561 //        break;
1562 //      case 7937:
1563 //        ret = 7945;
1564 //        break;
1565 //      case 7938:
1566 //        ret = 7946;
1567 //        break;
1568 //      case 7939:
1569 //        ret = 7947;
1570 //        break;
1571 //      case 7940:
1572 //        ret = 7948;
1573 //        break;
1574 //      case 7941:
1575 //        ret = 7949;
1576 //        break;
1577 //      case 7942:
1578 //        ret = 7950;
1579 //        break;
1580 //      case 7943:
1581 //        ret = 7951;
1582 //        break;
1583 //      case 7952:
1584 //        ret = 7960;
1585 //        break;
1586 //      case 7953:
1587 //        ret = 7961;
1588 //        break;
1589 //      case 7954:
1590 //        ret = 7962;
1591 //        break;
1592 //      case 7955:
1593 //        ret = 7963;
1594 //        break;
1595 //      case 7956:
1596 //        ret = 7964;
1597 //        break;
1598 //      case 7957:
1599 //        ret = 7965;
1600 //        break;
1601 //      case 7968:
1602 //        ret = 7976;
1603 //        break;
1604 //      case 7969:
1605 //        ret = 7977;
1606 //        break;
1607 //      case 7970:
1608 //        ret = 7978;
1609 //        break;
1610 //      case 7971:
1611 //        ret = 7979;
1612 //        break;
1613 //      case 7972:
1614 //        ret = 7980;
1615 //        break;
1616 //      case 7973:
1617 //        ret = 7981;
1618 //        break;
1619 //      case 7974:
1620 //        ret = 7982;
1621 //        break;
1622 //      case 7975:
1623 //        ret = 7983;
1624 //        break;
1625 //      case 7984:
1626 //        ret = 7992;
1627 //        break;
1628 //      case 7985:
1629 //        ret = 7993;
1630 //        break;
1631 //      case 7986:
1632 //        ret = 7994;
1633 //        break;
1634 //      case 7987:
1635 //        ret = 7995;
1636 //        break;
1637 //      case 7988:
1638 //        ret = 7996;
1639 //        break;
1640 //      case 7989:
1641 //        ret = 7997;
1642 //        break;
1643 //      case 7990:
1644 //        ret = 7998;
1645 //        break;
1646 //      case 7991:
1647 //        ret = 7999;
1648 //        break;
1649 //      case 8000:
1650 //        ret = 8008;
1651 //        break;
1652 //      case 8001:
1653 //        ret = 8009;
1654 //        break;
1655 //      case 8002:
1656 //        ret = 8010;
1657 //        break;
1658 //      case 8003:
1659 //        ret = 8011;
1660 //        break;
1661 //      case 8004:
1662 //        ret = 8012;
1663 //        break;
1664 //      case 8005:
1665 //        ret = 8013;
1666 //        break;
1667 //      case 8017:
1668 //        ret = 8025;
1669 //        break;
1670 //      case 8019:
1671 //        ret = 8027;
1672 //        break;
1673 //      case 8021:
1674 //        ret = 8029;
1675 //        break;
1676 //      case 8023:
1677 //        ret = 8031;
1678 //        break;
1679 //      case 8032:
1680 //        ret = 8040;
1681 //        break;
1682 //      case 8033:
1683 //        ret = 8041;
1684 //        break;
1685 //      case 8034:
1686 //        ret = 8042;
1687 //        break;
1688 //      case 8035:
1689 //        ret = 8043;
1690 //        break;
1691 //      case 8036:
1692 //        ret = 8044;
1693 //        break;
1694 //      case 8037:
1695 //        ret = 8045;
1696 //        break;
1697 //      case 8038:
1698 //        ret = 8046;
1699 //        break;
1700 //      case 8039:
1701 //        ret = 8047;
1702 //        break;
1703 //      case 8048:
1704 //        ret = 8122;
1705 //        break;
1706 //      case 8049:
1707 //        ret = 8123;
1708 //        break;
1709 //      case 8050:
1710 //        ret = 8136;
1711 //        break;
1712 //      case 8051:
1713 //        ret = 8137;
1714 //        break;
1715 //      case 8052:
1716 //        ret = 8138;
1717 //        break;
1718 //      case 8053:
1719 //        ret = 8139;
1720 //        break;
1721 //      case 8054:
1722 //        ret = 8154;
1723 //        break;
1724 //      case 8055:
1725 //        ret = 8155;
1726 //        break;
1727 //      case 8056:
1728 //        ret = 8184;
1729 //        break;
1730 //      case 8057:
1731 //        ret = 8185;
1732 //        break;
1733 //      case 8058:
1734 //        ret = 8170;
1735 //        break;
1736 //      case 8059:
1737 //        ret = 8171;
1738 //        break;
1739 //      case 8060:
1740 //        ret = 8186;
1741 //        break;
1742 //      case 8061:
1743 //        ret = 8187;
1744 //        break;
1745 //      case 8064:
1746 //        ret = 8072;
1747 //        break;
1748 //      case 8065:
1749 //        ret = 8073;
1750 //        break;
1751 //      case 8066:
1752 //        ret = 8074;
1753 //        break;
1754 //      case 8067:
1755 //        ret = 8075;
1756 //        break;
1757 //      case 8068:
1758 //        ret = 8076;
1759 //        break;
1760 //      case 8069:
1761 //        ret = 8077;
1762 //        break;
1763 //      case 8070:
1764 //        ret = 8078;
1765 //        break;
1766 //      case 8071:
1767 //        ret = 8079;
1768 //        break;
1769 //      case 8080:
1770 //        ret = 8088;
1771 //        break;
1772 //      case 8081:
1773 //        ret = 8089;
1774 //        break;
1775 //      case 8082:
1776 //        ret = 8090;
1777 //        break;
1778 //      case 8083:
1779 //        ret = 8091;
1780 //        break;
1781 //      case 8084:
1782 //        ret = 8092;
1783 //        break;
1784 //      case 8085:
1785 //        ret = 8093;
1786 //        break;
1787 //      case 8086:
1788 //        ret = 8094;
1789 //        break;
1790 //      case 8087:
1791 //        ret = 8095;
1792 //        break;
1793 //      case 8096:
1794 //        ret = 8104;
1795 //        break;
1796 //      case 8097:
1797 //        ret = 8105;
1798 //        break;
1799 //      case 8098:
1800 //        ret = 8106;
1801 //        break;
1802 //      case 8099:
1803 //        ret = 8107;
1804 //        break;
1805 //      case 8100:
1806 //        ret = 8108;
1807 //        break;
1808 //      case 8101:
1809 //        ret = 8109;
1810 //        break;
1811 //      case 8102:
1812 //        ret = 8110;
1813 //        break;
1814 //      case 8103:
1815 //        ret = 8111;
1816 //        break;
1817 //      case 8112:
1818 //        ret = 8120;
1819 //        break;
1820 //      case 8113:
1821 //        ret = 8121;
1822 //        break;
1823 //      case 8115:
1824 //        ret = 8124;
1825 //        break;
1826 //      case 8131:
1827 //        ret = 8140;
1828 //        break;
1829 //      case 8144:
1830 //        ret = 8152;
1831 //        break;
1832 //      case 8145:
1833 //        ret = 8153;
1834 //        break;
1835 //      case 8160:
1836 //        ret = 8168;
1837 //        break;
1838 //      case 8161:
1839 //        ret = 8169;
1840 //        break;
1841 //      case 8165:
1842 //        ret = 8172;
1843 //        break;
1844 //      case 8179:
1845 //        ret = 8188;
1846 //        break;
1847 //      case 8560:
1848 //        ret = 8544;
1849 //        break;
1850 //      case 8561:
1851 //        ret = 8545;
1852 //        break;
1853 //      case 8562:
1854 //        ret = 8546;
1855 //        break;
1856 //      case 8563:
1857 //        ret = 8547;
1858 //        break;
1859 //      case 8564:
1860 //        ret = 8548;
1861 //        break;
1862 //      case 8565:
1863 //        ret = 8549;
1864 //        break;
1865 //      case 8566:
1866 //        ret = 8550;
1867 //        break;
1868 //      case 8567:
1869 //        ret = 8551;
1870 //        break;
1871 //      case 8568:
1872 //        ret = 8552;
1873 //        break;
1874 //      case 8569:
1875 //        ret = 8553;
1876 //        break;
1877 //      case 8570:
1878 //        ret = 8554;
1879 //        break;
1880 //      case 8571:
1881 //        ret = 8555;
1882 //        break;
1883 //      case 8572:
1884 //        ret = 8556;
1885 //        break;
1886 //      case 8573:
1887 //        ret = 8557;
1888 //        break;
1889 //      case 8574:
1890 //        ret = 8558;
1891 //        break;
1892 //      case 8575:
1893 //        ret = 8559;
1894 //        break;
1895 //      case 9424:
1896 //        ret = 9398;
1897 //        break;
1898 //      case 9425:
1899 //        ret = 9399;
1900 //        break;
1901 //      case 9426:
1902 //        ret = 9400;
1903 //        break;
1904 //      case 9427:
1905 //        ret = 9401;
1906 //        break;
1907 //      case 9428:
1908 //        ret = 9402;
1909 //        break;
1910 //      case 9429:
1911 //        ret = 9403;
1912 //        break;
1913 //      case 9430:
1914 //        ret = 9404;
1915 //        break;
1916 //      case 9431:
1917 //        ret = 9405;
1918 //        break;
1919 //      case 9432:
1920 //        ret = 9406;
1921 //        break;
1922 //      case 9433:
1923 //        ret = 9407;
1924 //        break;
1925 //      case 9434:
1926 //        ret = 9408;
1927 //        break;
1928 //      case 9435:
1929 //        ret = 9409;
1930 //        break;
1931 //      case 9436:
1932 //        ret = 9410;
1933 //        break;
1934 //      case 9437:
1935 //        ret = 9411;
1936 //        break;
1937 //      case 9438:
1938 //        ret = 9412;
1939 //        break;
1940 //      case 9439:
1941 //        ret = 9413;
1942 //        break;
1943 //      case 9440:
1944 //        ret = 9414;
1945 //        break;
1946 //      case 9441:
1947 //        ret = 9415;
1948 //        break;
1949 //      case 9442:
1950 //        ret = 9416;
1951 //        break;
1952 //      case 9443:
1953 //        ret = 9417;
1954 //        break;
1955 //      case 9444:
1956 //        ret = 9418;
1957 //        break;
1958 //      case 9445:
1959 //        ret = 9419;
1960 //        break;
1961 //      case 9446:
1962 //        ret = 9420;
1963 //        break;
1964 //      case 9447:
1965 //        ret = 9421;
1966 //        break;
1967 //      case 9448:
1968 //        ret = 9422;
1969 //        break;
1970 //      case 9449:
1971 //        ret = 9423;
1972 //        break;
1973 //      case 65345:
1974 //        ret = 65313;
1975 //        break;
1976 //      case 65346:
1977 //        ret = 65314;
1978 //        break;
1979 //      case 65347:
1980 //        ret = 65315;
1981 //        break;
1982 //      case 65348:
1983 //        ret = 65316;
1984 //        break;
1985 //      case 65349:
1986 //        ret = 65317;
1987 //        break;
1988 //      case 65350:
1989 //        ret = 65318;
1990 //        break;
1991 //      case 65351:
1992 //        ret = 65319;
1993 //        break;
1994 //      case 65352:
1995 //        ret = 65320;
1996 //        break;
1997 //      case 65353:
1998 //        ret = 65321;
1999 //        break;
2000 //      case 65354:
2001 //        ret = 65322;
2002 //        break;
2003 //      case 65355:
2004 //        ret = 65323;
2005 //        break;
2006 //      case 65356:
2007 //        ret = 65324;
2008 //        break;
2009 //      case 65357:
2010 //        ret = 65325;
2011 //        break;
2012 //      case 65358:
2013 //        ret = 65326;
2014 //        break;
2015 //      case 65359:
2016 //        ret = 65327;
2017 //        break;
2018 //      case 65360:
2019 //        ret = 65328;
2020 //        break;
2021 //      case 65361:
2022 //        ret = 65329;
2023 //        break;
2024 //      case 65362:
2025 //        ret = 65330;
2026 //        break;
2027 //      case 65363:
2028 //        ret = 65331;
2029 //        break;
2030 //      case 65364:
2031 //        ret = 65332;
2032 //        break;
2033 //      case 65365:
2034 //        ret = 65333;
2035 //        break;
2036 //      case 65366:
2037 //        ret = 65334;
2038 //        break;
2039 //      case 65367:
2040 //        ret = 65335;
2041 //        break;
2042 //      case 65368:
2043 //        ret = 65336;
2044 //        break;
2045 //      case 65369:
2046 //        ret = 65337;
2047 //        break;
2048 //      case 65370:
2049 //        ret = 65338;
2050 //        break;
2051 //      }
2052 //      return (char) ret;
2053 //    }
2054     return Character.toUpperCase(c);
2055   }
2056
2057   /** Convert a character to lower case. */
2058   public static char toLowerCaseC(char c)
2059   {
2060 //    if (java_1_0)
2061 //    {
2062 //      int ret = (int) c;
2063 //      switch (c)
2064 //      {
2065 //      case 65:
2066 //        ret = 97;
2067 //        break;
2068 //      case 66:
2069 //        ret = 98;
2070 //        break;
2071 //      case 67:
2072 //        ret = 99;
2073 //        break;
2074 //      case 68:
2075 //        ret = 100;
2076 //        break;
2077 //      case 69:
2078 //        ret = 101;
2079 //        break;
2080 //      case 70:
2081 //        ret = 102;
2082 //        break;
2083 //      case 71:
2084 //        ret = 103;
2085 //        break;
2086 //      case 72:
2087 //        ret = 104;
2088 //        break;
2089 //      case 73:
2090 //        ret = 105;
2091 //        break;
2092 //      case 74:
2093 //        ret = 106;
2094 //        break;
2095 //      case 75:
2096 //        ret = 107;
2097 //        break;
2098 //      case 76:
2099 //        ret = 108;
2100 //        break;
2101 //      case 77:
2102 //        ret = 109;
2103 //        break;
2104 //      case 78:
2105 //        ret = 110;
2106 //        break;
2107 //      case 79:
2108 //        ret = 111;
2109 //        break;
2110 //      case 80:
2111 //        ret = 112;
2112 //        break;
2113 //      case 81:
2114 //        ret = 113;
2115 //        break;
2116 //      case 82:
2117 //        ret = 114;
2118 //        break;
2119 //      case 83:
2120 //        ret = 115;
2121 //        break;
2122 //      case 84:
2123 //        ret = 116;
2124 //        break;
2125 //      case 85:
2126 //        ret = 117;
2127 //        break;
2128 //      case 86:
2129 //        ret = 118;
2130 //        break;
2131 //      case 87:
2132 //        ret = 119;
2133 //        break;
2134 //      case 88:
2135 //        ret = 120;
2136 //        break;
2137 //      case 89:
2138 //        ret = 121;
2139 //        break;
2140 //      case 90:
2141 //        ret = 122;
2142 //        break;
2143 //      case 192:
2144 //        ret = 224;
2145 //        break;
2146 //      case 193:
2147 //        ret = 225;
2148 //        break;
2149 //      case 194:
2150 //        ret = 226;
2151 //        break;
2152 //      case 195:
2153 //        ret = 227;
2154 //        break;
2155 //      case 196:
2156 //        ret = 228;
2157 //        break;
2158 //      case 197:
2159 //        ret = 229;
2160 //        break;
2161 //      case 198:
2162 //        ret = 230;
2163 //        break;
2164 //      case 199:
2165 //        ret = 231;
2166 //        break;
2167 //      case 200:
2168 //        ret = 232;
2169 //        break;
2170 //      case 201:
2171 //        ret = 233;
2172 //        break;
2173 //      case 202:
2174 //        ret = 234;
2175 //        break;
2176 //      case 203:
2177 //        ret = 235;
2178 //        break;
2179 //      case 204:
2180 //        ret = 236;
2181 //        break;
2182 //      case 205:
2183 //        ret = 237;
2184 //        break;
2185 //      case 206:
2186 //        ret = 238;
2187 //        break;
2188 //      case 207:
2189 //        ret = 239;
2190 //        break;
2191 //      case 208:
2192 //        ret = 240;
2193 //        break;
2194 //      case 209:
2195 //        ret = 241;
2196 //        break;
2197 //      case 210:
2198 //        ret = 242;
2199 //        break;
2200 //      case 211:
2201 //        ret = 243;
2202 //        break;
2203 //      case 212:
2204 //        ret = 244;
2205 //        break;
2206 //      case 213:
2207 //        ret = 245;
2208 //        break;
2209 //      case 214:
2210 //        ret = 246;
2211 //        break;
2212 //      case 216:
2213 //        ret = 248;
2214 //        break;
2215 //      case 217:
2216 //        ret = 249;
2217 //        break;
2218 //      case 218:
2219 //        ret = 250;
2220 //        break;
2221 //      case 219:
2222 //        ret = 251;
2223 //        break;
2224 //      case 220:
2225 //        ret = 252;
2226 //        break;
2227 //      case 221:
2228 //        ret = 253;
2229 //        break;
2230 //      case 222:
2231 //        ret = 254;
2232 //        break;
2233 //      case 256:
2234 //        ret = 257;
2235 //        break;
2236 //      case 258:
2237 //        ret = 259;
2238 //        break;
2239 //      case 260:
2240 //        ret = 261;
2241 //        break;
2242 //      case 262:
2243 //        ret = 263;
2244 //        break;
2245 //      case 264:
2246 //        ret = 265;
2247 //        break;
2248 //      case 266:
2249 //        ret = 267;
2250 //        break;
2251 //      case 268:
2252 //        ret = 269;
2253 //        break;
2254 //      case 270:
2255 //        ret = 271;
2256 //        break;
2257 //      case 272:
2258 //        ret = 273;
2259 //        break;
2260 //      case 274:
2261 //        ret = 275;
2262 //        break;
2263 //      case 276:
2264 //        ret = 277;
2265 //        break;
2266 //      case 278:
2267 //        ret = 279;
2268 //        break;
2269 //      case 280:
2270 //        ret = 281;
2271 //        break;
2272 //      case 282:
2273 //        ret = 283;
2274 //        break;
2275 //      case 284:
2276 //        ret = 285;
2277 //        break;
2278 //      case 286:
2279 //        ret = 287;
2280 //        break;
2281 //      case 288:
2282 //        ret = 289;
2283 //        break;
2284 //      case 290:
2285 //        ret = 291;
2286 //        break;
2287 //      case 292:
2288 //        ret = 293;
2289 //        break;
2290 //      case 294:
2291 //        ret = 295;
2292 //        break;
2293 //      case 296:
2294 //        ret = 297;
2295 //        break;
2296 //      case 298:
2297 //        ret = 299;
2298 //        break;
2299 //      case 300:
2300 //        ret = 301;
2301 //        break;
2302 //      case 302:
2303 //        ret = 303;
2304 //        break;
2305 //      case 304:
2306 //        ret = 105;
2307 //        break;
2308 //      case 306:
2309 //        ret = 307;
2310 //        break;
2311 //      case 308:
2312 //        ret = 309;
2313 //        break;
2314 //      case 310:
2315 //        ret = 311;
2316 //        break;
2317 //      case 313:
2318 //        ret = 314;
2319 //        break;
2320 //      case 315:
2321 //        ret = 316;
2322 //        break;
2323 //      case 317:
2324 //        ret = 318;
2325 //        break;
2326 //      case 319:
2327 //        ret = 320;
2328 //        break;
2329 //      case 321:
2330 //        ret = 322;
2331 //        break;
2332 //      case 323:
2333 //        ret = 324;
2334 //        break;
2335 //      case 325:
2336 //        ret = 326;
2337 //        break;
2338 //      case 327:
2339 //        ret = 328;
2340 //        break;
2341 //      case 330:
2342 //        ret = 331;
2343 //        break;
2344 //      case 332:
2345 //        ret = 333;
2346 //        break;
2347 //      case 334:
2348 //        ret = 335;
2349 //        break;
2350 //      case 336:
2351 //        ret = 337;
2352 //        break;
2353 //      case 338:
2354 //        ret = 339;
2355 //        break;
2356 //      case 340:
2357 //        ret = 341;
2358 //        break;
2359 //      case 342:
2360 //        ret = 343;
2361 //        break;
2362 //      case 344:
2363 //        ret = 345;
2364 //        break;
2365 //      case 346:
2366 //        ret = 347;
2367 //        break;
2368 //      case 348:
2369 //        ret = 349;
2370 //        break;
2371 //      case 350:
2372 //        ret = 351;
2373 //        break;
2374 //      case 352:
2375 //        ret = 353;
2376 //        break;
2377 //      case 354:
2378 //        ret = 355;
2379 //        break;
2380 //      case 356:
2381 //        ret = 357;
2382 //        break;
2383 //      case 358:
2384 //        ret = 359;
2385 //        break;
2386 //      case 360:
2387 //        ret = 361;
2388 //        break;
2389 //      case 362:
2390 //        ret = 363;
2391 //        break;
2392 //      case 364:
2393 //        ret = 365;
2394 //        break;
2395 //      case 366:
2396 //        ret = 367;
2397 //        break;
2398 //      case 368:
2399 //        ret = 369;
2400 //        break;
2401 //      case 370:
2402 //        ret = 371;
2403 //        break;
2404 //      case 372:
2405 //        ret = 373;
2406 //        break;
2407 //      case 374:
2408 //        ret = 375;
2409 //        break;
2410 //      case 376:
2411 //        ret = 255;
2412 //        break;
2413 //      case 377:
2414 //        ret = 378;
2415 //        break;
2416 //      case 379:
2417 //        ret = 380;
2418 //        break;
2419 //      case 381:
2420 //        ret = 382;
2421 //        break;
2422 //      case 385:
2423 //        ret = 595;
2424 //        break;
2425 //      case 386:
2426 //        ret = 387;
2427 //        break;
2428 //      case 388:
2429 //        ret = 389;
2430 //        break;
2431 //      case 390:
2432 //        ret = 596;
2433 //        break;
2434 //      case 391:
2435 //        ret = 392;
2436 //        break;
2437 //      case 393:
2438 //        ret = 598;
2439 //        break;
2440 //      case 394:
2441 //        ret = 599;
2442 //        break;
2443 //      case 395:
2444 //        ret = 396;
2445 //        break;
2446 //      case 398:
2447 //        ret = 600;
2448 //        break;
2449 //      case 399:
2450 //        ret = 601;
2451 //        break;
2452 //      case 400:
2453 //        ret = 603;
2454 //        break;
2455 //      case 401:
2456 //        ret = 402;
2457 //        break;
2458 //      case 403:
2459 //        ret = 608;
2460 //        break;
2461 //      case 404:
2462 //        ret = 611;
2463 //        break;
2464 //      case 406:
2465 //        ret = 617;
2466 //        break;
2467 //      case 407:
2468 //        ret = 616;
2469 //        break;
2470 //      case 408:
2471 //        ret = 409;
2472 //        break;
2473 //      case 412:
2474 //        ret = 623;
2475 //        break;
2476 //      case 413:
2477 //        ret = 626;
2478 //        break;
2479 //      case 416:
2480 //        ret = 417;
2481 //        break;
2482 //      case 418:
2483 //        ret = 419;
2484 //        break;
2485 //      case 420:
2486 //        ret = 421;
2487 //        break;
2488 //      case 423:
2489 //        ret = 424;
2490 //        break;
2491 //      case 425:
2492 //        ret = 643;
2493 //        break;
2494 //      case 428:
2495 //        ret = 429;
2496 //        break;
2497 //      case 430:
2498 //        ret = 648;
2499 //        break;
2500 //      case 431:
2501 //        ret = 432;
2502 //        break;
2503 //      case 433:
2504 //        ret = 650;
2505 //        break;
2506 //      case 434:
2507 //        ret = 651;
2508 //        break;
2509 //      case 435:
2510 //        ret = 436;
2511 //        break;
2512 //      case 437:
2513 //        ret = 438;
2514 //        break;
2515 //      case 439:
2516 //        ret = 658;
2517 //        break;
2518 //      case 440:
2519 //        ret = 441;
2520 //        break;
2521 //      case 444:
2522 //        ret = 445;
2523 //        break;
2524 //      case 452:
2525 //        ret = 454;
2526 //        break;
2527 //      case 453:
2528 //        ret = 454;
2529 //        break;
2530 //      case 455:
2531 //        ret = 457;
2532 //        break;
2533 //      case 456:
2534 //        ret = 457;
2535 //        break;
2536 //      case 458:
2537 //        ret = 460;
2538 //        break;
2539 //      case 459:
2540 //        ret = 460;
2541 //        break;
2542 //      case 461:
2543 //        ret = 462;
2544 //        break;
2545 //      case 463:
2546 //        ret = 464;
2547 //        break;
2548 //      case 465:
2549 //        ret = 466;
2550 //        break;
2551 //      case 467:
2552 //        ret = 468;
2553 //        break;
2554 //      case 469:
2555 //        ret = 470;
2556 //        break;
2557 //      case 471:
2558 //        ret = 472;
2559 //        break;
2560 //      case 473:
2561 //        ret = 474;
2562 //        break;
2563 //      case 475:
2564 //        ret = 476;
2565 //        break;
2566 //      case 478:
2567 //        ret = 479;
2568 //        break;
2569 //      case 480:
2570 //        ret = 481;
2571 //        break;
2572 //      case 482:
2573 //        ret = 483;
2574 //        break;
2575 //      case 484:
2576 //        ret = 485;
2577 //        break;
2578 //      case 486:
2579 //        ret = 487;
2580 //        break;
2581 //      case 488:
2582 //        ret = 489;
2583 //        break;
2584 //      case 490:
2585 //        ret = 491;
2586 //        break;
2587 //      case 492:
2588 //        ret = 493;
2589 //        break;
2590 //      case 494:
2591 //        ret = 495;
2592 //        break;
2593 //      case 497:
2594 //        ret = 499;
2595 //        break;
2596 //      case 498:
2597 //        ret = 499;
2598 //        break;
2599 //      case 500:
2600 //        ret = 501;
2601 //        break;
2602 //      case 506:
2603 //        ret = 507;
2604 //        break;
2605 //      case 508:
2606 //        ret = 509;
2607 //        break;
2608 //      case 510:
2609 //        ret = 511;
2610 //        break;
2611 //      case 512:
2612 //        ret = 513;
2613 //        break;
2614 //      case 514:
2615 //        ret = 515;
2616 //        break;
2617 //      case 516:
2618 //        ret = 517;
2619 //        break;
2620 //      case 518:
2621 //        ret = 519;
2622 //        break;
2623 //      case 520:
2624 //        ret = 521;
2625 //        break;
2626 //      case 522:
2627 //        ret = 523;
2628 //        break;
2629 //      case 524:
2630 //        ret = 525;
2631 //        break;
2632 //      case 526:
2633 //        ret = 527;
2634 //        break;
2635 //      case 528:
2636 //        ret = 529;
2637 //        break;
2638 //      case 530:
2639 //        ret = 531;
2640 //        break;
2641 //      case 532:
2642 //        ret = 533;
2643 //        break;
2644 //      case 534:
2645 //        ret = 535;
2646 //        break;
2647 //      case 902:
2648 //        ret = 940;
2649 //        break;
2650 //      case 904:
2651 //        ret = 941;
2652 //        break;
2653 //      case 905:
2654 //        ret = 942;
2655 //        break;
2656 //      case 906:
2657 //        ret = 943;
2658 //        break;
2659 //      case 908:
2660 //        ret = 972;
2661 //        break;
2662 //      case 910:
2663 //        ret = 973;
2664 //        break;
2665 //      case 911:
2666 //        ret = 974;
2667 //        break;
2668 //      case 913:
2669 //        ret = 945;
2670 //        break;
2671 //      case 914:
2672 //        ret = 946;
2673 //        break;
2674 //      case 915:
2675 //        ret = 947;
2676 //        break;
2677 //      case 916:
2678 //        ret = 948;
2679 //        break;
2680 //      case 917:
2681 //        ret = 949;
2682 //        break;
2683 //      case 918:
2684 //        ret = 950;
2685 //        break;
2686 //      case 919:
2687 //        ret = 951;
2688 //        break;
2689 //      case 920:
2690 //        ret = 952;
2691 //        break;
2692 //      case 921:
2693 //        ret = 953;
2694 //        break;
2695 //      case 922:
2696 //        ret = 954;
2697 //        break;
2698 //      case 923:
2699 //        ret = 955;
2700 //        break;
2701 //      case 924:
2702 //        ret = 956;
2703 //        break;
2704 //      case 925:
2705 //        ret = 957;
2706 //        break;
2707 //      case 926:
2708 //        ret = 958;
2709 //        break;
2710 //      case 927:
2711 //        ret = 959;
2712 //        break;
2713 //      case 928:
2714 //        ret = 960;
2715 //        break;
2716 //      case 929:
2717 //        ret = 961;
2718 //        break;
2719 //      case 931:
2720 //        ret = 963;
2721 //        break;
2722 //      case 932:
2723 //        ret = 964;
2724 //        break;
2725 //      case 933:
2726 //        ret = 965;
2727 //        break;
2728 //      case 934:
2729 //        ret = 966;
2730 //        break;
2731 //      case 935:
2732 //        ret = 967;
2733 //        break;
2734 //      case 936:
2735 //        ret = 968;
2736 //        break;
2737 //      case 937:
2738 //        ret = 969;
2739 //        break;
2740 //      case 938:
2741 //        ret = 970;
2742 //        break;
2743 //      case 939:
2744 //        ret = 971;
2745 //        break;
2746 //      case 994:
2747 //        ret = 995;
2748 //        break;
2749 //      case 996:
2750 //        ret = 997;
2751 //        break;
2752 //      case 998:
2753 //        ret = 999;
2754 //        break;
2755 //      case 1000:
2756 //        ret = 1001;
2757 //        break;
2758 //      case 1002:
2759 //        ret = 1003;
2760 //        break;
2761 //      case 1004:
2762 //        ret = 1005;
2763 //        break;
2764 //      case 1006:
2765 //        ret = 1007;
2766 //        break;
2767 //      case 1025:
2768 //        ret = 1105;
2769 //        break;
2770 //      case 1026:
2771 //        ret = 1106;
2772 //        break;
2773 //      case 1027:
2774 //        ret = 1107;
2775 //        break;
2776 //      case 1028:
2777 //        ret = 1108;
2778 //        break;
2779 //      case 1029:
2780 //        ret = 1109;
2781 //        break;
2782 //      case 1030:
2783 //        ret = 1110;
2784 //        break;
2785 //      case 1031:
2786 //        ret = 1111;
2787 //        break;
2788 //      case 1032:
2789 //        ret = 1112;
2790 //        break;
2791 //      case 1033:
2792 //        ret = 1113;
2793 //        break;
2794 //      case 1034:
2795 //        ret = 1114;
2796 //        break;
2797 //      case 1035:
2798 //        ret = 1115;
2799 //        break;
2800 //      case 1036:
2801 //        ret = 1116;
2802 //        break;
2803 //      case 1038:
2804 //        ret = 1118;
2805 //        break;
2806 //      case 1039:
2807 //        ret = 1119;
2808 //        break;
2809 //      case 1040:
2810 //        ret = 1072;
2811 //        break;
2812 //      case 1041:
2813 //        ret = 1073;
2814 //        break;
2815 //      case 1042:
2816 //        ret = 1074;
2817 //        break;
2818 //      case 1043:
2819 //        ret = 1075;
2820 //        break;
2821 //      case 1044:
2822 //        ret = 1076;
2823 //        break;
2824 //      case 1045:
2825 //        ret = 1077;
2826 //        break;
2827 //      case 1046:
2828 //        ret = 1078;
2829 //        break;
2830 //      case 1047:
2831 //        ret = 1079;
2832 //        break;
2833 //      case 1048:
2834 //        ret = 1080;
2835 //        break;
2836 //      case 1049:
2837 //        ret = 1081;
2838 //        break;
2839 //      case 1050:
2840 //        ret = 1082;
2841 //        break;
2842 //      case 1051:
2843 //        ret = 1083;
2844 //        break;
2845 //      case 1052:
2846 //        ret = 1084;
2847 //        break;
2848 //      case 1053:
2849 //        ret = 1085;
2850 //        break;
2851 //      case 1054:
2852 //        ret = 1086;
2853 //        break;
2854 //      case 1055:
2855 //        ret = 1087;
2856 //        break;
2857 //      case 1056:
2858 //        ret = 1088;
2859 //        break;
2860 //      case 1057:
2861 //        ret = 1089;
2862 //        break;
2863 //      case 1058:
2864 //        ret = 1090;
2865 //        break;
2866 //      case 1059:
2867 //        ret = 1091;
2868 //        break;
2869 //      case 1060:
2870 //        ret = 1092;
2871 //        break;
2872 //      case 1061:
2873 //        ret = 1093;
2874 //        break;
2875 //      case 1062:
2876 //        ret = 1094;
2877 //        break;
2878 //      case 1063:
2879 //        ret = 1095;
2880 //        break;
2881 //      case 1064:
2882 //        ret = 1096;
2883 //        break;
2884 //      case 1065:
2885 //        ret = 1097;
2886 //        break;
2887 //      case 1066:
2888 //        ret = 1098;
2889 //        break;
2890 //      case 1067:
2891 //        ret = 1099;
2892 //        break;
2893 //      case 1068:
2894 //        ret = 1100;
2895 //        break;
2896 //      case 1069:
2897 //        ret = 1101;
2898 //        break;
2899 //      case 1070:
2900 //        ret = 1102;
2901 //        break;
2902 //      case 1071:
2903 //        ret = 1103;
2904 //        break;
2905 //      case 1120:
2906 //        ret = 1121;
2907 //        break;
2908 //      case 1122:
2909 //        ret = 1123;
2910 //        break;
2911 //      case 1124:
2912 //        ret = 1125;
2913 //        break;
2914 //      case 1126:
2915 //        ret = 1127;
2916 //        break;
2917 //      case 1128:
2918 //        ret = 1129;
2919 //        break;
2920 //      case 1130:
2921 //        ret = 1131;
2922 //        break;
2923 //      case 1132:
2924 //        ret = 1133;
2925 //        break;
2926 //      case 1134:
2927 //        ret = 1135;
2928 //        break;
2929 //      case 1136:
2930 //        ret = 1137;
2931 //        break;
2932 //      case 1138:
2933 //        ret = 1139;
2934 //        break;
2935 //      case 1140:
2936 //        ret = 1141;
2937 //        break;
2938 //      case 1142:
2939 //        ret = 1143;
2940 //        break;
2941 //      case 1144:
2942 //        ret = 1145;
2943 //        break;
2944 //      case 1146:
2945 //        ret = 1147;
2946 //        break;
2947 //      case 1148:
2948 //        ret = 1149;
2949 //        break;
2950 //      case 1150:
2951 //        ret = 1151;
2952 //        break;
2953 //      case 1152:
2954 //        ret = 1153;
2955 //        break;
2956 //      case 1168:
2957 //        ret = 1169;
2958 //        break;
2959 //      case 1170:
2960 //        ret = 1171;
2961 //        break;
2962 //      case 1172:
2963 //        ret = 1173;
2964 //        break;
2965 //      case 1174:
2966 //        ret = 1175;
2967 //        break;
2968 //      case 1176:
2969 //        ret = 1177;
2970 //        break;
2971 //      case 1178:
2972 //        ret = 1179;
2973 //        break;
2974 //      case 1180:
2975 //        ret = 1181;
2976 //        break;
2977 //      case 1182:
2978 //        ret = 1183;
2979 //        break;
2980 //      case 1184:
2981 //        ret = 1185;
2982 //        break;
2983 //      case 1186:
2984 //        ret = 1187;
2985 //        break;
2986 //      case 1188:
2987 //        ret = 1189;
2988 //        break;
2989 //      case 1190:
2990 //        ret = 1191;
2991 //        break;
2992 //      case 1192:
2993 //        ret = 1193;
2994 //        break;
2995 //      case 1194:
2996 //        ret = 1195;
2997 //        break;
2998 //      case 1196:
2999 //        ret = 1197;
3000 //        break;
3001 //      case 1198:
3002 //        ret = 1199;
3003 //        break;
3004 //      case 1200:
3005 //        ret = 1201;
3006 //        break;
3007 //      case 1202:
3008 //        ret = 1203;
3009 //        break;
3010 //      case 1204:
3011 //        ret = 1205;
3012 //        break;
3013 //      case 1206:
3014 //        ret = 1207;
3015 //        break;
3016 //      case 1208:
3017 //        ret = 1209;
3018 //        break;
3019 //      case 1210:
3020 //        ret = 1211;
3021 //        break;
3022 //      case 1212:
3023 //        ret = 1213;
3024 //        break;
3025 //      case 1214:
3026 //        ret = 1215;
3027 //        break;
3028 //      case 1217:
3029 //        ret = 1218;
3030 //        break;
3031 //      case 1219:
3032 //        ret = 1220;
3033 //        break;
3034 //      case 1223:
3035 //        ret = 1224;
3036 //        break;
3037 //      case 1227:
3038 //        ret = 1228;
3039 //        break;
3040 //      case 1232:
3041 //        ret = 1233;
3042 //        break;
3043 //      case 1234:
3044 //        ret = 1235;
3045 //        break;
3046 //      case 1236:
3047 //        ret = 1237;
3048 //        break;
3049 //      case 1238:
3050 //        ret = 1239;
3051 //        break;
3052 //      case 1240:
3053 //        ret = 1241;
3054 //        break;
3055 //      case 1242:
3056 //        ret = 1243;
3057 //        break;
3058 //      case 1244:
3059 //        ret = 1245;
3060 //        break;
3061 //      case 1246:
3062 //        ret = 1247;
3063 //        break;
3064 //      case 1248:
3065 //        ret = 1249;
3066 //        break;
3067 //      case 1250:
3068 //        ret = 1251;
3069 //        break;
3070 //      case 1252:
3071 //        ret = 1253;
3072 //        break;
3073 //      case 1254:
3074 //        ret = 1255;
3075 //        break;
3076 //      case 1256:
3077 //        ret = 1257;
3078 //        break;
3079 //      case 1258:
3080 //        ret = 1259;
3081 //        break;
3082 //      case 1262:
3083 //        ret = 1263;
3084 //        break;
3085 //      case 1264:
3086 //        ret = 1265;
3087 //        break;
3088 //      case 1266:
3089 //        ret = 1267;
3090 //        break;
3091 //      case 1268:
3092 //        ret = 1269;
3093 //        break;
3094 //      case 1272:
3095 //        ret = 1273;
3096 //        break;
3097 //      case 1329:
3098 //        ret = 1377;
3099 //        break;
3100 //      case 1330:
3101 //        ret = 1378;
3102 //        break;
3103 //      case 1331:
3104 //        ret = 1379;
3105 //        break;
3106 //      case 1332:
3107 //        ret = 1380;
3108 //        break;
3109 //      case 1333:
3110 //        ret = 1381;
3111 //        break;
3112 //      case 1334:
3113 //        ret = 1382;
3114 //        break;
3115 //      case 1335:
3116 //        ret = 1383;
3117 //        break;
3118 //      case 1336:
3119 //        ret = 1384;
3120 //        break;
3121 //      case 1337:
3122 //        ret = 1385;
3123 //        break;
3124 //      case 1338:
3125 //        ret = 1386;
3126 //        break;
3127 //      case 1339:
3128 //        ret = 1387;
3129 //        break;
3130 //      case 1340:
3131 //        ret = 1388;
3132 //        break;
3133 //      case 1341:
3134 //        ret = 1389;
3135 //        break;
3136 //      case 1342:
3137 //        ret = 1390;
3138 //        break;
3139 //      case 1343:
3140 //        ret = 1391;
3141 //        break;
3142 //      case 1344:
3143 //        ret = 1392;
3144 //        break;
3145 //      case 1345:
3146 //        ret = 1393;
3147 //        break;
3148 //      case 1346:
3149 //        ret = 1394;
3150 //        break;
3151 //      case 1347:
3152 //        ret = 1395;
3153 //        break;
3154 //      case 1348:
3155 //        ret = 1396;
3156 //        break;
3157 //      case 1349:
3158 //        ret = 1397;
3159 //        break;
3160 //      case 1350:
3161 //        ret = 1398;
3162 //        break;
3163 //      case 1351:
3164 //        ret = 1399;
3165 //        break;
3166 //      case 1352:
3167 //        ret = 1400;
3168 //        break;
3169 //      case 1353:
3170 //        ret = 1401;
3171 //        break;
3172 //      case 1354:
3173 //        ret = 1402;
3174 //        break;
3175 //      case 1355:
3176 //        ret = 1403;
3177 //        break;
3178 //      case 1356:
3179 //        ret = 1404;
3180 //        break;
3181 //      case 1357:
3182 //        ret = 1405;
3183 //        break;
3184 //      case 1358:
3185 //        ret = 1406;
3186 //        break;
3187 //      case 1359:
3188 //        ret = 1407;
3189 //        break;
3190 //      case 1360:
3191 //        ret = 1408;
3192 //        break;
3193 //      case 1361:
3194 //        ret = 1409;
3195 //        break;
3196 //      case 1362:
3197 //        ret = 1410;
3198 //        break;
3199 //      case 1363:
3200 //        ret = 1411;
3201 //        break;
3202 //      case 1364:
3203 //        ret = 1412;
3204 //        break;
3205 //      case 1365:
3206 //        ret = 1413;
3207 //        break;
3208 //      case 1366:
3209 //        ret = 1414;
3210 //        break;
3211 //      case 4256:
3212 //        ret = 4304;
3213 //        break;
3214 //      case 4257:
3215 //        ret = 4305;
3216 //        break;
3217 //      case 4258:
3218 //        ret = 4306;
3219 //        break;
3220 //      case 4259:
3221 //        ret = 4307;
3222 //        break;
3223 //      case 4260:
3224 //        ret = 4308;
3225 //        break;
3226 //      case 4261:
3227 //        ret = 4309;
3228 //        break;
3229 //      case 4262:
3230 //        ret = 4310;
3231 //        break;
3232 //      case 4263:
3233 //        ret = 4311;
3234 //        break;
3235 //      case 4264:
3236 //        ret = 4312;
3237 //        break;
3238 //      case 4265:
3239 //        ret = 4313;
3240 //        break;
3241 //      case 4266:
3242 //        ret = 4314;
3243 //        break;
3244 //      case 4267:
3245 //        ret = 4315;
3246 //        break;
3247 //      case 4268:
3248 //        ret = 4316;
3249 //        break;
3250 //      case 4269:
3251 //        ret = 4317;
3252 //        break;
3253 //      case 4270:
3254 //        ret = 4318;
3255 //        break;
3256 //      case 4271:
3257 //        ret = 4319;
3258 //        break;
3259 //      case 4272:
3260 //        ret = 4320;
3261 //        break;
3262 //      case 4273:
3263 //        ret = 4321;
3264 //        break;
3265 //      case 4274:
3266 //        ret = 4322;
3267 //        break;
3268 //      case 4275:
3269 //        ret = 4323;
3270 //        break;
3271 //      case 4276:
3272 //        ret = 4324;
3273 //        break;
3274 //      case 4277:
3275 //        ret = 4325;
3276 //        break;
3277 //      case 4278:
3278 //        ret = 4326;
3279 //        break;
3280 //      case 4279:
3281 //        ret = 4327;
3282 //        break;
3283 //      case 4280:
3284 //        ret = 4328;
3285 //        break;
3286 //      case 4281:
3287 //        ret = 4329;
3288 //        break;
3289 //      case 4282:
3290 //        ret = 4330;
3291 //        break;
3292 //      case 4283:
3293 //        ret = 4331;
3294 //        break;
3295 //      case 4284:
3296 //        ret = 4332;
3297 //        break;
3298 //      case 4285:
3299 //        ret = 4333;
3300 //        break;
3301 //      case 4286:
3302 //        ret = 4334;
3303 //        break;
3304 //      case 4287:
3305 //        ret = 4335;
3306 //        break;
3307 //      case 4288:
3308 //        ret = 4336;
3309 //        break;
3310 //      case 4289:
3311 //        ret = 4337;
3312 //        break;
3313 //      case 4290:
3314 //        ret = 4338;
3315 //        break;
3316 //      case 4291:
3317 //        ret = 4339;
3318 //        break;
3319 //      case 4292:
3320 //        ret = 4340;
3321 //        break;
3322 //      case 4293:
3323 //        ret = 4341;
3324 //        break;
3325 //      case 7680:
3326 //        ret = 7681;
3327 //        break;
3328 //      case 7682:
3329 //        ret = 7683;
3330 //        break;
3331 //      case 7684:
3332 //        ret = 7685;
3333 //        break;
3334 //      case 7686:
3335 //        ret = 7687;
3336 //        break;
3337 //      case 7688:
3338 //        ret = 7689;
3339 //        break;
3340 //      case 7690:
3341 //        ret = 7691;
3342 //        break;
3343 //      case 7692:
3344 //        ret = 7693;
3345 //        break;
3346 //      case 7694:
3347 //        ret = 7695;
3348 //        break;
3349 //      case 7696:
3350 //        ret = 7697;
3351 //        break;
3352 //      case 7698:
3353 //        ret = 7699;
3354 //        break;
3355 //      case 7700:
3356 //        ret = 7701;
3357 //        break;
3358 //      case 7702:
3359 //        ret = 7703;
3360 //        break;
3361 //      case 7704:
3362 //        ret = 7705;
3363 //        break;
3364 //      case 7706:
3365 //        ret = 7707;
3366 //        break;
3367 //      case 7708:
3368 //        ret = 7709;
3369 //        break;
3370 //      case 7710:
3371 //        ret = 7711;
3372 //        break;
3373 //      case 7712:
3374 //        ret = 7713;
3375 //        break;
3376 //      case 7714:
3377 //        ret = 7715;
3378 //        break;
3379 //      case 7716:
3380 //        ret = 7717;
3381 //        break;
3382 //      case 7718:
3383 //        ret = 7719;
3384 //        break;
3385 //      case 7720:
3386 //        ret = 7721;
3387 //        break;
3388 //      case 7722:
3389 //        ret = 7723;
3390 //        break;
3391 //      case 7724:
3392 //        ret = 7725;
3393 //        break;
3394 //      case 7726:
3395 //        ret = 7727;
3396 //        break;
3397 //      case 7728:
3398 //        ret = 7729;
3399 //        break;
3400 //      case 7730:
3401 //        ret = 7731;
3402 //        break;
3403 //      case 7732:
3404 //        ret = 7733;
3405 //        break;
3406 //      case 7734:
3407 //        ret = 7735;
3408 //        break;
3409 //      case 7736:
3410 //        ret = 7737;
3411 //        break;
3412 //      case 7738:
3413 //        ret = 7739;
3414 //        break;
3415 //      case 7740:
3416 //        ret = 7741;
3417 //        break;
3418 //      case 7742:
3419 //        ret = 7743;
3420 //        break;
3421 //      case 7744:
3422 //        ret = 7745;
3423 //        break;
3424 //      case 7746:
3425 //        ret = 7747;
3426 //        break;
3427 //      case 7748:
3428 //        ret = 7749;
3429 //        break;
3430 //      case 7750:
3431 //        ret = 7751;
3432 //        break;
3433 //      case 7752:
3434 //        ret = 7753;
3435 //        break;
3436 //      case 7754:
3437 //        ret = 7755;
3438 //        break;
3439 //      case 7756:
3440 //        ret = 7757;
3441 //        break;
3442 //      case 7758:
3443 //        ret = 7759;
3444 //        break;
3445 //      case 7760:
3446 //        ret = 7761;
3447 //        break;
3448 //      case 7762:
3449 //        ret = 7763;
3450 //        break;
3451 //      case 7764:
3452 //        ret = 7765;
3453 //        break;
3454 //      case 7766:
3455 //        ret = 7767;
3456 //        break;
3457 //      case 7768:
3458 //        ret = 7769;
3459 //        break;
3460 //      case 7770:
3461 //        ret = 7771;
3462 //        break;
3463 //      case 7772:
3464 //        ret = 7773;
3465 //        break;
3466 //      case 7774:
3467 //        ret = 7775;
3468 //        break;
3469 //      case 7776:
3470 //        ret = 7777;
3471 //        break;
3472 //      case 7778:
3473 //        ret = 7779;
3474 //        break;
3475 //      case 7780:
3476 //        ret = 7781;
3477 //        break;
3478 //      case 7782:
3479 //        ret = 7783;
3480 //        break;
3481 //      case 7784:
3482 //        ret = 7785;
3483 //        break;
3484 //      case 7786:
3485 //        ret = 7787;
3486 //        break;
3487 //      case 7788:
3488 //        ret = 7789;
3489 //        break;
3490 //      case 7790:
3491 //        ret = 7791;
3492 //        break;
3493 //      case 7792:
3494 //        ret = 7793;
3495 //        break;
3496 //      case 7794:
3497 //        ret = 7795;
3498 //        break;
3499 //      case 7796:
3500 //        ret = 7797;
3501 //        break;
3502 //      case 7798:
3503 //        ret = 7799;
3504 //        break;
3505 //      case 7800:
3506 //        ret = 7801;
3507 //        break;
3508 //      case 7802:
3509 //        ret = 7803;
3510 //        break;
3511 //      case 7804:
3512 //        ret = 7805;
3513 //        break;
3514 //      case 7806:
3515 //        ret = 7807;
3516 //        break;
3517 //      case 7808:
3518 //        ret = 7809;
3519 //        break;
3520 //      case 7810:
3521 //        ret = 7811;
3522 //        break;
3523 //      case 7812:
3524 //        ret = 7813;
3525 //        break;
3526 //      case 7814:
3527 //        ret = 7815;
3528 //        break;
3529 //      case 7816:
3530 //        ret = 7817;
3531 //        break;
3532 //      case 7818:
3533 //        ret = 7819;
3534 //        break;
3535 //      case 7820:
3536 //        ret = 7821;
3537 //        break;
3538 //      case 7822:
3539 //        ret = 7823;
3540 //        break;
3541 //      case 7824:
3542 //        ret = 7825;
3543 //        break;
3544 //      case 7826:
3545 //        ret = 7827;
3546 //        break;
3547 //      case 7828:
3548 //        ret = 7829;
3549 //        break;
3550 //      case 7840:
3551 //        ret = 7841;
3552 //        break;
3553 //      case 7842:
3554 //        ret = 7843;
3555 //        break;
3556 //      case 7844:
3557 //        ret = 7845;
3558 //        break;
3559 //      case 7846:
3560 //        ret = 7847;
3561 //        break;
3562 //      case 7848:
3563 //        ret = 7849;
3564 //        break;
3565 //      case 7850:
3566 //        ret = 7851;
3567 //        break;
3568 //      case 7852:
3569 //        ret = 7853;
3570 //        break;
3571 //      case 7854:
3572 //        ret = 7855;
3573 //        break;
3574 //      case 7856:
3575 //        ret = 7857;
3576 //        break;
3577 //      case 7858:
3578 //        ret = 7859;
3579 //        break;
3580 //      case 7860:
3581 //        ret = 7861;
3582 //        break;
3583 //      case 7862:
3584 //        ret = 7863;
3585 //        break;
3586 //      case 7864:
3587 //        ret = 7865;
3588 //        break;
3589 //      case 7866:
3590 //        ret = 7867;
3591 //        break;
3592 //      case 7868:
3593 //        ret = 7869;
3594 //        break;
3595 //      case 7870:
3596 //        ret = 7871;
3597 //        break;
3598 //      case 7872:
3599 //        ret = 7873;
3600 //        break;
3601 //      case 7874:
3602 //        ret = 7875;
3603 //        break;
3604 //      case 7876:
3605 //        ret = 7877;
3606 //        break;
3607 //      case 7878:
3608 //        ret = 7879;
3609 //        break;
3610 //      case 7880:
3611 //        ret = 7881;
3612 //        break;
3613 //      case 7882:
3614 //        ret = 7883;
3615 //        break;
3616 //      case 7884:
3617 //        ret = 7885;
3618 //        break;
3619 //      case 7886:
3620 //        ret = 7887;
3621 //        break;
3622 //      case 7888:
3623 //        ret = 7889;
3624 //        break;
3625 //      case 7890:
3626 //        ret = 7891;
3627 //        break;
3628 //      case 7892:
3629 //        ret = 7893;
3630 //        break;
3631 //      case 7894:
3632 //        ret = 7895;
3633 //        break;
3634 //      case 7896:
3635 //        ret = 7897;
3636 //        break;
3637 //      case 7898:
3638 //        ret = 7899;
3639 //        break;
3640 //      case 7900:
3641 //        ret = 7901;
3642 //        break;
3643 //      case 7902:
3644 //        ret = 7903;
3645 //        break;
3646 //      case 7904:
3647 //        ret = 7905;
3648 //        break;
3649 //      case 7906:
3650 //        ret = 7907;
3651 //        break;
3652 //      case 7908:
3653 //        ret = 7909;
3654 //        break;
3655 //      case 7910:
3656 //        ret = 7911;
3657 //        break;
3658 //      case 7912:
3659 //        ret = 7913;
3660 //        break;
3661 //      case 7914:
3662 //        ret = 7915;
3663 //        break;
3664 //      case 7916:
3665 //        ret = 7917;
3666 //        break;
3667 //      case 7918:
3668 //        ret = 7919;
3669 //        break;
3670 //      case 7920:
3671 //        ret = 7921;
3672 //        break;
3673 //      case 7922:
3674 //        ret = 7923;
3675 //        break;
3676 //      case 7924:
3677 //        ret = 7925;
3678 //        break;
3679 //      case 7926:
3680 //        ret = 7927;
3681 //        break;
3682 //      case 7928:
3683 //        ret = 7929;
3684 //        break;
3685 //      case 7944:
3686 //        ret = 7936;
3687 //        break;
3688 //      case 7945:
3689 //        ret = 7937;
3690 //        break;
3691 //      case 7946:
3692 //        ret = 7938;
3693 //        break;
3694 //      case 7947:
3695 //        ret = 7939;
3696 //        break;
3697 //      case 7948:
3698 //        ret = 7940;
3699 //        break;
3700 //      case 7949:
3701 //        ret = 7941;
3702 //        break;
3703 //      case 7950:
3704 //        ret = 7942;
3705 //        break;
3706 //      case 7951:
3707 //        ret = 7943;
3708 //        break;
3709 //      case 7960:
3710 //        ret = 7952;
3711 //        break;
3712 //      case 7961:
3713 //        ret = 7953;
3714 //        break;
3715 //      case 7962:
3716 //        ret = 7954;
3717 //        break;
3718 //      case 7963:
3719 //        ret = 7955;
3720 //        break;
3721 //      case 7964:
3722 //        ret = 7956;
3723 //        break;
3724 //      case 7965:
3725 //        ret = 7957;
3726 //        break;
3727 //      case 7976:
3728 //        ret = 7968;
3729 //        break;
3730 //      case 7977:
3731 //        ret = 7969;
3732 //        break;
3733 //      case 7978:
3734 //        ret = 7970;
3735 //        break;
3736 //      case 7979:
3737 //        ret = 7971;
3738 //        break;
3739 //      case 7980:
3740 //        ret = 7972;
3741 //        break;
3742 //      case 7981:
3743 //        ret = 7973;
3744 //        break;
3745 //      case 7982:
3746 //        ret = 7974;
3747 //        break;
3748 //      case 7983:
3749 //        ret = 7975;
3750 //        break;
3751 //      case 7992:
3752 //        ret = 7984;
3753 //        break;
3754 //      case 7993:
3755 //        ret = 7985;
3756 //        break;
3757 //      case 7994:
3758 //        ret = 7986;
3759 //        break;
3760 //      case 7995:
3761 //        ret = 7987;
3762 //        break;
3763 //      case 7996:
3764 //        ret = 7988;
3765 //        break;
3766 //      case 7997:
3767 //        ret = 7989;
3768 //        break;
3769 //      case 7998:
3770 //        ret = 7990;
3771 //        break;
3772 //      case 7999:
3773 //        ret = 7991;
3774 //        break;
3775 //      case 8008:
3776 //        ret = 8000;
3777 //        break;
3778 //      case 8009:
3779 //        ret = 8001;
3780 //        break;
3781 //      case 8010:
3782 //        ret = 8002;
3783 //        break;
3784 //      case 8011:
3785 //        ret = 8003;
3786 //        break;
3787 //      case 8012:
3788 //        ret = 8004;
3789 //        break;
3790 //      case 8013:
3791 //        ret = 8005;
3792 //        break;
3793 //      case 8025:
3794 //        ret = 8017;
3795 //        break;
3796 //      case 8027:
3797 //        ret = 8019;
3798 //        break;
3799 //      case 8029:
3800 //        ret = 8021;
3801 //        break;
3802 //      case 8031:
3803 //        ret = 8023;
3804 //        break;
3805 //      case 8040:
3806 //        ret = 8032;
3807 //        break;
3808 //      case 8041:
3809 //        ret = 8033;
3810 //        break;
3811 //      case 8042:
3812 //        ret = 8034;
3813 //        break;
3814 //      case 8043:
3815 //        ret = 8035;
3816 //        break;
3817 //      case 8044:
3818 //        ret = 8036;
3819 //        break;
3820 //      case 8045:
3821 //        ret = 8037;
3822 //        break;
3823 //      case 8046:
3824 //        ret = 8038;
3825 //        break;
3826 //      case 8047:
3827 //        ret = 8039;
3828 //        break;
3829 //      case 8072:
3830 //        ret = 8064;
3831 //        break;
3832 //      case 8073:
3833 //        ret = 8065;
3834 //        break;
3835 //      case 8074:
3836 //        ret = 8066;
3837 //        break;
3838 //      case 8075:
3839 //        ret = 8067;
3840 //        break;
3841 //      case 8076:
3842 //        ret = 8068;
3843 //        break;
3844 //      case 8077:
3845 //        ret = 8069;
3846 //        break;
3847 //      case 8078:
3848 //        ret = 8070;
3849 //        break;
3850 //      case 8079:
3851 //        ret = 8071;
3852 //        break;
3853 //      case 8088:
3854 //        ret = 8080;
3855 //        break;
3856 //      case 8089:
3857 //        ret = 8081;
3858 //        break;
3859 //      case 8090:
3860 //        ret = 8082;
3861 //        break;
3862 //      case 8091:
3863 //        ret = 8083;
3864 //        break;
3865 //      case 8092:
3866 //        ret = 8084;
3867 //        break;
3868 //      case 8093:
3869 //        ret = 8085;
3870 //        break;
3871 //      case 8094:
3872 //        ret = 8086;
3873 //        break;
3874 //      case 8095:
3875 //        ret = 8087;
3876 //        break;
3877 //      case 8104:
3878 //        ret = 8096;
3879 //        break;
3880 //      case 8105:
3881 //        ret = 8097;
3882 //        break;
3883 //      case 8106:
3884 //        ret = 8098;
3885 //        break;
3886 //      case 8107:
3887 //        ret = 8099;
3888 //        break;
3889 //      case 8108:
3890 //        ret = 8100;
3891 //        break;
3892 //      case 8109:
3893 //        ret = 8101;
3894 //        break;
3895 //      case 8110:
3896 //        ret = 8102;
3897 //        break;
3898 //      case 8111:
3899 //        ret = 8103;
3900 //        break;
3901 //      case 8120:
3902 //        ret = 8112;
3903 //        break;
3904 //      case 8121:
3905 //        ret = 8113;
3906 //        break;
3907 //      case 8122:
3908 //        ret = 8048;
3909 //        break;
3910 //      case 8123:
3911 //        ret = 8049;
3912 //        break;
3913 //      case 8124:
3914 //        ret = 8115;
3915 //        break;
3916 //      case 8136:
3917 //        ret = 8050;
3918 //        break;
3919 //      case 8137:
3920 //        ret = 8051;
3921 //        break;
3922 //      case 8138:
3923 //        ret = 8052;
3924 //        break;
3925 //      case 8139:
3926 //        ret = 8053;
3927 //        break;
3928 //      case 8140:
3929 //        ret = 8131;
3930 //        break;
3931 //      case 8152:
3932 //        ret = 8144;
3933 //        break;
3934 //      case 8153:
3935 //        ret = 8145;
3936 //        break;
3937 //      case 8154:
3938 //        ret = 8054;
3939 //        break;
3940 //      case 8155:
3941 //        ret = 8055;
3942 //        break;
3943 //      case 8168:
3944 //        ret = 8160;
3945 //        break;
3946 //      case 8169:
3947 //        ret = 8161;
3948 //        break;
3949 //      case 8170:
3950 //        ret = 8058;
3951 //        break;
3952 //      case 8171:
3953 //        ret = 8059;
3954 //        break;
3955 //      case 8172:
3956 //        ret = 8165;
3957 //        break;
3958 //      case 8184:
3959 //        ret = 8056;
3960 //        break;
3961 //      case 8185:
3962 //        ret = 8057;
3963 //        break;
3964 //      case 8186:
3965 //        ret = 8060;
3966 //        break;
3967 //      case 8187:
3968 //        ret = 8061;
3969 //        break;
3970 //      case 8188:
3971 //        ret = 8179;
3972 //        break;
3973 //      case 8544:
3974 //        ret = 8560;
3975 //        break;
3976 //      case 8545:
3977 //        ret = 8561;
3978 //        break;
3979 //      case 8546:
3980 //        ret = 8562;
3981 //        break;
3982 //      case 8547:
3983 //        ret = 8563;
3984 //        break;
3985 //      case 8548:
3986 //        ret = 8564;
3987 //        break;
3988 //      case 8549:
3989 //        ret = 8565;
3990 //        break;
3991 //      case 8550:
3992 //        ret = 8566;
3993 //        break;
3994 //      case 8551:
3995 //        ret = 8567;
3996 //        break;
3997 //      case 8552:
3998 //        ret = 8568;
3999 //        break;
4000 //      case 8553:
4001 //        ret = 8569;
4002 //        break;
4003 //      case 8554:
4004 //        ret = 8570;
4005 //        break;
4006 //      case 8555:
4007 //        ret = 8571;
4008 //        break;
4009 //      case 8556:
4010 //        ret = 8572;
4011 //        break;
4012 //      case 8557:
4013 //        ret = 8573;
4014 //        break;
4015 //      case 8558:
4016 //        ret = 8574;
4017 //        break;
4018 //      case 8559:
4019 //        ret = 8575;
4020 //        break;
4021 //      case 9398:
4022 //        ret = 9424;
4023 //        break;
4024 //      case 9399:
4025 //        ret = 9425;
4026 //        break;
4027 //      case 9400:
4028 //        ret = 9426;
4029 //        break;
4030 //      case 9401:
4031 //        ret = 9427;
4032 //        break;
4033 //      case 9402:
4034 //        ret = 9428;
4035 //        break;
4036 //      case 9403:
4037 //        ret = 9429;
4038 //        break;
4039 //      case 9404:
4040 //        ret = 9430;
4041 //        break;
4042 //      case 9405:
4043 //        ret = 9431;
4044 //        break;
4045 //      case 9406:
4046 //        ret = 9432;
4047 //        break;
4048 //      case 9407:
4049 //        ret = 9433;
4050 //        break;
4051 //      case 9408:
4052 //        ret = 9434;
4053 //        break;
4054 //      case 9409:
4055 //        ret = 9435;
4056 //        break;
4057 //      case 9410:
4058 //        ret = 9436;
4059 //        break;
4060 //      case 9411:
4061 //        ret = 9437;
4062 //        break;
4063 //      case 9412:
4064 //        ret = 9438;
4065 //        break;
4066 //      case 9413:
4067 //        ret = 9439;
4068 //        break;
4069 //      case 9414:
4070 //        ret = 9440;
4071 //        break;
4072 //      case 9415:
4073 //        ret = 9441;
4074 //        break;
4075 //      case 9416:
4076 //        ret = 9442;
4077 //        break;
4078 //      case 9417:
4079 //        ret = 9443;
4080 //        break;
4081 //      case 9418:
4082 //        ret = 9444;
4083 //        break;
4084 //      case 9419:
4085 //        ret = 9445;
4086 //        break;
4087 //      case 9420:
4088 //        ret = 9446;
4089 //        break;
4090 //      case 9421:
4091 //        ret = 9447;
4092 //        break;
4093 //      case 9422:
4094 //        ret = 9448;
4095 //        break;
4096 //      case 9423:
4097 //        ret = 9449;
4098 //        break;
4099 //      case 65313:
4100 //        ret = 65345;
4101 //        break;
4102 //      case 65314:
4103 //        ret = 65346;
4104 //        break;
4105 //      case 65315:
4106 //        ret = 65347;
4107 //        break;
4108 //      case 65316:
4109 //        ret = 65348;
4110 //        break;
4111 //      case 65317:
4112 //        ret = 65349;
4113 //        break;
4114 //      case 65318:
4115 //        ret = 65350;
4116 //        break;
4117 //      case 65319:
4118 //        ret = 65351;
4119 //        break;
4120 //      case 65320:
4121 //        ret = 65352;
4122 //        break;
4123 //      case 65321:
4124 //        ret = 65353;
4125 //        break;
4126 //      case 65322:
4127 //        ret = 65354;
4128 //        break;
4129 //      case 65323:
4130 //        ret = 65355;
4131 //        break;
4132 //      case 65324:
4133 //        ret = 65356;
4134 //        break;
4135 //      case 65325:
4136 //        ret = 65357;
4137 //        break;
4138 //      case 65326:
4139 //        ret = 65358;
4140 //        break;
4141 //      case 65327:
4142 //        ret = 65359;
4143 //        break;
4144 //      case 65328:
4145 //        ret = 65360;
4146 //        break;
4147 //      case 65329:
4148 //        ret = 65361;
4149 //        break;
4150 //      case 65330:
4151 //        ret = 65362;
4152 //        break;
4153 //      case 65331:
4154 //        ret = 65363;
4155 //        break;
4156 //      case 65332:
4157 //        ret = 65364;
4158 //        break;
4159 //      case 65333:
4160 //        ret = 65365;
4161 //        break;
4162 //      case 65334:
4163 //        ret = 65366;
4164 //        break;
4165 //      case 65335:
4166 //        ret = 65367;
4167 //        break;
4168 //      case 65336:
4169 //        ret = 65368;
4170 //        break;
4171 //      case 65337:
4172 //        ret = 65369;
4173 //        break;
4174 //      case 65338:
4175 //        ret = 65370;
4176 //        break;
4177 //      }
4178 //      return (char) ret;
4179 //    }
4180     return Character.toLowerCase(c);
4181   }
4182
4183   /** Convert a String to title case. 
4184    * 
4185    * @j2sIgnore
4186    * 
4187    * 
4188    */
4189   public static String toTitleCase(String s)
4190   {
4191    StringBuffer sb = new StringBuffer();
4192     for (int i = 0; i < s.length(); i++)
4193     {
4194       sb.append(CaseMgr.toTitleCaseC(s.charAt(i)));
4195     }
4196     return sb.toString();
4197   }
4198
4199   /** Convert a String to upper case. */
4200   public static String toUpperCase(String s)
4201   {
4202         return s.toUpperCase();
4203 //    StringBuffer sb = new StringBuffer();
4204 //    for (int i = 0; i < s.length(); i++)
4205 //    {
4206 //      sb.append(CaseMgr.toUpperCaseC(s.charAt(i)));
4207 //    }
4208 //    return sb.toString();
4209   }
4210
4211   /** Convert a String to lower case. */
4212   public static String toLowerCase(String s)
4213   {
4214         return s.toLowerCase();
4215 //    StringBuffer sb = new StringBuffer();
4216 //    for (int i = 0; i < s.length(); i++)
4217 //    {
4218 //      sb.append(CaseMgr.toLowerCaseC(s.charAt(i)));
4219 //    }
4220 //    return sb.toString();
4221   }
4222
4223   /** Convert a character to title case. 
4224    * 
4225    * SwingJS -- BH -- ignoring title case. 
4226    * 
4227    * */
4228   public static char toTitleCaseC(char c)
4229   {
4230         return Character.toUpperCase(c);
4231 //    if (java_1_0)
4232 //    {
4233 //      int ret = (int) toUpperCaseC(c);
4234 //      switch (c)
4235 //      {
4236 //      case 452:
4237 //        ret = 453;
4238 //        break;
4239 //      case 453:
4240 //        ret = 453;
4241 //        break;
4242 //      case 454:
4243 //        ret = 453;
4244 //        break;
4245 //      case 455:
4246 //        ret = 456;
4247 //        break;
4248 //      case 456:
4249 //        ret = 456;
4250 //        break;
4251 //      case 457:
4252 //        ret = 456;
4253 //        break;
4254 //      case 458:
4255 //        ret = 459;
4256 //        break;
4257 //      case 459:
4258 //        ret = 459;
4259 //        break;
4260 //      case 460:
4261 //        ret = 459;
4262 //        break;
4263 //      case 497:
4264 //        ret = 498;
4265 //        break;
4266 //      case 498:
4267 //        ret = 498;
4268 //        break;
4269 //      case 499:
4270 //        ret = 498;
4271 //        break;
4272 //      }
4273 //      return (char) ret;
4274 //    }
4275 //    return Character.toTitleCase(c);
4276   }
4277
4278   /**
4279    * Duplicates the regionMatches routine of String -- but makes use of the
4280    * definitions of upper, lower, and title case in this class when ignoreCase
4281    * is set.
4282    */
4283   public static boolean regionMatchesLike(StringLike s1, boolean ign, int i1,
4284           StringLike s2, int i2, int i3)
4285   {
4286     int itot = i2 + i3;
4287     if (itot > s2.length() || i1 + i3 > s1.length())
4288     {
4289       return false;
4290     }
4291     if (!ign)
4292     {
4293       for (int i = i2; i < itot; i++)
4294       {
4295         if (s2.charAt(i) != s1.charAt(i1++))
4296         {
4297           return false;
4298         }
4299       }
4300     }
4301     else
4302     {
4303       for (int i = i2; i < itot; i++)
4304       {
4305         if (toLowerCaseC(s2.charAt(i)) != toLowerCaseC(s1.charAt(i1++)))
4306         {
4307           return false;
4308         }
4309       }
4310     }
4311     return true;
4312   }
4313
4314   /**
4315    * Duplicates the regionMatches routine of String -- but makes use of the
4316    * definitions of upper, lower, and title case in this class when ignoreCase
4317    * is set.
4318    */
4319   public static boolean regionMatches(String s1, boolean ign, int i1,
4320           StringLike s2, int i2, int i3)
4321   {
4322     int itot = i2 + i3;
4323     if (itot > s2.length() || i1 + i3 > s1.length())
4324     {
4325       return false;
4326     }
4327     if (!ign)
4328     {
4329       for (int i = i2; i < itot; i++)
4330       {
4331         if (s2.charAt(i) != s1.charAt(i1++))
4332         {
4333           return false;
4334         }
4335       }
4336     }
4337     else
4338     {
4339       for (int i = i2; i < itot; i++)
4340       {
4341         if (toLowerCaseC(s2.charAt(i)) != toLowerCaseC(s1.charAt(i1++)))
4342         {
4343           return false;
4344         }
4345       }
4346     }
4347     return true;
4348   }
4349
4350   /**
4351    * Duplicates the regionMatches routine of String -- but makes use of the
4352    * definitions of upper, lower, and title case in this class when ignoreCase
4353    * is set.
4354    */
4355   public static boolean regionMatchesLike2(StringLike s1, boolean ign, int i1,
4356           String s2, int i2, int i3)
4357   {
4358     int itot = i2 + i3;
4359     if (itot > s2.length() || i1 + i3 > s1.length())
4360     {
4361       return false;
4362     }
4363     if (!ign)
4364     {
4365       for (int i = i2; i < itot; i++)
4366       {
4367         if (s2.charAt(i) != s1.charAt(i1++))
4368         {
4369           return false;
4370         }
4371       }
4372     }
4373     else
4374     {
4375       for (int i = i2; i < itot; i++)
4376       {
4377         if (toLowerCaseC(s2.charAt(i)) != toLowerCaseC(s1.charAt(i1++)))
4378         {
4379           return false;
4380         }
4381       }
4382     }
4383     return true;
4384   }
4385
4386   /**
4387    * Duplicates the regionMatches routine of String -- but makes use of the
4388    * definitions of upper, lower, and title case in this class when ignoreCase
4389    * is set.
4390    */
4391   public static boolean regionMatches2(String s1, boolean ign, int i1,
4392           String s2, int i2, int i3)
4393   {
4394     int itot = i2 + i3;
4395     if (itot > s2.length() || i1 + i3 > s1.length())
4396     {
4397       return false;
4398     }
4399     if (!ign)
4400     {
4401       for (int i = i2; i < itot; i++)
4402       {
4403         if (s2.charAt(i) != s1.charAt(i1++))
4404         {
4405           return false;
4406         }
4407       }
4408     }
4409     else
4410     {
4411       for (int i = i2; i < itot; i++)
4412       {
4413         if (toLowerCaseC(s2.charAt(i)) != toLowerCaseC(s1.charAt(i1++)))
4414         {
4415           return false;
4416         }
4417       }
4418     }
4419     return true;
4420   }
4421 }