Formatting
[jalview.git] / src / com / stevesoft / pat / CaseMgr.java
index 2de70d4..ff93f25 100755 (executable)
@@ -19,1519 +19,4389 @@ package com.stevesoft.pat;
     to the definitions of upper, lower, and title case\r
     then it should be a straightforward task to substitute\r
     your own methods for these.\r
-    */\r
-final public class CaseMgr {\r
-    final static boolean java_1_0 = false;\r
-    /** Convert a character to upper case .*/\r
-    public static char toUpperCase(char c) {\r
-      if(java_1_0) {\r
-        int ret = (int)c;\r
-        switch(c) {\r
-        case 97: ret=65; break;\r
-        case 98: ret=66; break;\r
-        case 99: ret=67; break;\r
-        case 100: ret=68; break;\r
-        case 101: ret=69; break;\r
-        case 102: ret=70; break;\r
-        case 103: ret=71; break;\r
-        case 104: ret=72; break;\r
-        case 105: ret=73; break;\r
-        case 106: ret=74; break;\r
-        case 107: ret=75; break;\r
-        case 108: ret=76; break;\r
-        case 109: ret=77; break;\r
-        case 110: ret=78; break;\r
-        case 111: ret=79; break;\r
-        case 112: ret=80; break;\r
-        case 113: ret=81; break;\r
-        case 114: ret=82; break;\r
-        case 115: ret=83; break;\r
-        case 116: ret=84; break;\r
-        case 117: ret=85; break;\r
-        case 118: ret=86; break;\r
-        case 119: ret=87; break;\r
-        case 120: ret=88; break;\r
-        case 121: ret=89; break;\r
-        case 122: ret=90; break;\r
-        case 224: ret=192; break;\r
-        case 225: ret=193; break;\r
-        case 226: ret=194; break;\r
-        case 227: ret=195; break;\r
-        case 228: ret=196; break;\r
-        case 229: ret=197; break;\r
-        case 230: ret=198; break;\r
-        case 231: ret=199; break;\r
-        case 232: ret=200; break;\r
-        case 233: ret=201; break;\r
-        case 234: ret=202; break;\r
-        case 235: ret=203; break;\r
-        case 236: ret=204; break;\r
-        case 237: ret=205; break;\r
-        case 238: ret=206; break;\r
-        case 239: ret=207; break;\r
-        case 240: ret=208; break;\r
-        case 241: ret=209; break;\r
-        case 242: ret=210; break;\r
-        case 243: ret=211; break;\r
-        case 244: ret=212; break;\r
-        case 245: ret=213; break;\r
-        case 246: ret=214; break;\r
-        case 248: ret=216; break;\r
-        case 249: ret=217; break;\r
-        case 250: ret=218; break;\r
-        case 251: ret=219; break;\r
-        case 252: ret=220; break;\r
-        case 253: ret=221; break;\r
-        case 254: ret=222; break;\r
-        case 255: ret=376; break;\r
-        case 257: ret=256; break;\r
-        case 259: ret=258; break;\r
-        case 261: ret=260; break;\r
-        case 263: ret=262; break;\r
-        case 265: ret=264; break;\r
-        case 267: ret=266; break;\r
-        case 269: ret=268; break;\r
-        case 271: ret=270; break;\r
-        case 273: ret=272; break;\r
-        case 275: ret=274; break;\r
-        case 277: ret=276; break;\r
-        case 279: ret=278; break;\r
-        case 281: ret=280; break;\r
-        case 283: ret=282; break;\r
-        case 285: ret=284; break;\r
-        case 287: ret=286; break;\r
-        case 289: ret=288; break;\r
-        case 291: ret=290; break;\r
-        case 293: ret=292; break;\r
-        case 295: ret=294; break;\r
-        case 297: ret=296; break;\r
-        case 299: ret=298; break;\r
-        case 301: ret=300; break;\r
-        case 303: ret=302; break;\r
-        case 305: ret=73; break;\r
-        case 307: ret=306; break;\r
-        case 309: ret=308; break;\r
-        case 311: ret=310; break;\r
-        case 314: ret=313; break;\r
-        case 316: ret=315; break;\r
-        case 318: ret=317; break;\r
-        case 320: ret=319; break;\r
-        case 322: ret=321; break;\r
-        case 324: ret=323; break;\r
-        case 326: ret=325; break;\r
-        case 328: ret=327; break;\r
-        case 331: ret=330; break;\r
-        case 333: ret=332; break;\r
-        case 335: ret=334; break;\r
-        case 337: ret=336; break;\r
-        case 339: ret=338; break;\r
-        case 341: ret=340; break;\r
-        case 343: ret=342; break;\r
-        case 345: ret=344; break;\r
-        case 347: ret=346; break;\r
-        case 349: ret=348; break;\r
-        case 351: ret=350; break;\r
-        case 353: ret=352; break;\r
-        case 355: ret=354; break;\r
-        case 357: ret=356; break;\r
-        case 359: ret=358; break;\r
-        case 361: ret=360; break;\r
-        case 363: ret=362; break;\r
-        case 365: ret=364; break;\r
-        case 367: ret=366; break;\r
-        case 369: ret=368; break;\r
-        case 371: ret=370; break;\r
-        case 373: ret=372; break;\r
-        case 375: ret=374; break;\r
-        case 378: ret=377; break;\r
-        case 380: ret=379; break;\r
-        case 382: ret=381; break;\r
-        case 383: ret=83; break;\r
-        case 387: ret=386; break;\r
-        case 389: ret=388; break;\r
-        case 392: ret=391; break;\r
-        case 396: ret=395; break;\r
-        case 402: ret=401; break;\r
-        case 409: ret=408; break;\r
-        case 417: ret=416; break;\r
-        case 419: ret=418; break;\r
-        case 421: ret=420; break;\r
-        case 424: ret=423; break;\r
-        case 429: ret=428; break;\r
-        case 432: ret=431; break;\r
-        case 436: ret=435; break;\r
-        case 438: ret=437; break;\r
-        case 441: ret=440; break;\r
-        case 445: ret=444; break;\r
-        case 453: ret=452; break;\r
-        case 454: ret=452; break;\r
-        case 456: ret=455; break;\r
-        case 457: ret=455; break;\r
-        case 459: ret=458; break;\r
-        case 460: ret=458; break;\r
-        case 462: ret=461; break;\r
-        case 464: ret=463; break;\r
-        case 466: ret=465; break;\r
-        case 468: ret=467; break;\r
-        case 470: ret=469; break;\r
-        case 472: ret=471; break;\r
-        case 474: ret=473; break;\r
-        case 476: ret=475; break;\r
-        case 479: ret=478; break;\r
-        case 481: ret=480; break;\r
-        case 483: ret=482; break;\r
-        case 485: ret=484; break;\r
-        case 487: ret=486; break;\r
-        case 489: ret=488; break;\r
-        case 491: ret=490; break;\r
-        case 493: ret=492; break;\r
-        case 495: ret=494; break;\r
-        case 498: ret=497; break;\r
-        case 499: ret=497; break;\r
-        case 501: ret=500; break;\r
-        case 507: ret=506; break;\r
-        case 509: ret=508; break;\r
-        case 511: ret=510; break;\r
-        case 513: ret=512; break;\r
-        case 515: ret=514; break;\r
-        case 517: ret=516; break;\r
-        case 519: ret=518; break;\r
-        case 521: ret=520; break;\r
-        case 523: ret=522; break;\r
-        case 525: ret=524; break;\r
-        case 527: ret=526; break;\r
-        case 529: ret=528; break;\r
-        case 531: ret=530; break;\r
-        case 533: ret=532; break;\r
-        case 535: ret=534; break;\r
-        case 595: ret=385; break;\r
-        case 596: ret=390; break;\r
-        case 598: ret=393; break;\r
-        case 599: ret=394; break;\r
-        case 600: ret=398; break;\r
-        case 601: ret=399; break;\r
-        case 603: ret=400; break;\r
-        case 608: ret=403; break;\r
-        case 611: ret=404; break;\r
-        case 616: ret=407; break;\r
-        case 617: ret=406; break;\r
-        case 623: ret=412; break;\r
-        case 626: ret=413; break;\r
-        case 643: ret=425; break;\r
-        case 648: ret=430; break;\r
-        case 650: ret=433; break;\r
-        case 651: ret=434; break;\r
-        case 658: ret=439; break;\r
-        case 940: ret=902; break;\r
-        case 941: ret=904; break;\r
-        case 942: ret=905; break;\r
-        case 943: ret=906; break;\r
-        case 945: ret=913; break;\r
-        case 946: ret=914; break;\r
-        case 947: ret=915; break;\r
-        case 948: ret=916; break;\r
-        case 949: ret=917; break;\r
-        case 950: ret=918; break;\r
-        case 951: ret=919; break;\r
-        case 952: ret=920; break;\r
-        case 953: ret=921; break;\r
-        case 954: ret=922; break;\r
-        case 955: ret=923; break;\r
-        case 956: ret=924; break;\r
-        case 957: ret=925; break;\r
-        case 958: ret=926; break;\r
-        case 959: ret=927; break;\r
-        case 960: ret=928; break;\r
-        case 961: ret=929; break;\r
-        case 963: ret=931; break;\r
-        case 964: ret=932; break;\r
-        case 965: ret=933; break;\r
-        case 966: ret=934; break;\r
-        case 967: ret=935; break;\r
-        case 968: ret=936; break;\r
-        case 969: ret=937; break;\r
-        case 970: ret=938; break;\r
-        case 971: ret=939; break;\r
-        case 972: ret=908; break;\r
-        case 973: ret=910; break;\r
-        case 974: ret=911; break;\r
-        case 976: ret=914; break;\r
-        case 977: ret=920; break;\r
-        case 981: ret=934; break;\r
-        case 982: ret=928; break;\r
-        case 995: ret=994; break;\r
-        case 997: ret=996; break;\r
-        case 999: ret=998; break;\r
-        case 1001: ret=1000; break;\r
-        case 1003: ret=1002; break;\r
-        case 1005: ret=1004; break;\r
-        case 1007: ret=1006; break;\r
-        case 1008: ret=922; break;\r
-        case 1009: ret=929; break;\r
-        case 1072: ret=1040; break;\r
-        case 1073: ret=1041; break;\r
-        case 1074: ret=1042; break;\r
-        case 1075: ret=1043; break;\r
-        case 1076: ret=1044; break;\r
-        case 1077: ret=1045; break;\r
-        case 1078: ret=1046; break;\r
-        case 1079: ret=1047; break;\r
-        case 1080: ret=1048; break;\r
-        case 1081: ret=1049; break;\r
-        case 1082: ret=1050; break;\r
-        case 1083: ret=1051; break;\r
-        case 1084: ret=1052; break;\r
-        case 1085: ret=1053; break;\r
-        case 1086: ret=1054; break;\r
-        case 1087: ret=1055; break;\r
-        case 1088: ret=1056; break;\r
-        case 1089: ret=1057; break;\r
-        case 1090: ret=1058; break;\r
-        case 1091: ret=1059; break;\r
-        case 1092: ret=1060; break;\r
-        case 1093: ret=1061; break;\r
-        case 1094: ret=1062; break;\r
-        case 1095: ret=1063; break;\r
-        case 1096: ret=1064; break;\r
-        case 1097: ret=1065; break;\r
-        case 1098: ret=1066; break;\r
-        case 1099: ret=1067; break;\r
-        case 1100: ret=1068; break;\r
-        case 1101: ret=1069; break;\r
-        case 1102: ret=1070; break;\r
-        case 1103: ret=1071; break;\r
-        case 1105: ret=1025; break;\r
-        case 1106: ret=1026; break;\r
-        case 1107: ret=1027; break;\r
-        case 1108: ret=1028; break;\r
-        case 1109: ret=1029; break;\r
-        case 1110: ret=1030; break;\r
-        case 1111: ret=1031; break;\r
-        case 1112: ret=1032; break;\r
-        case 1113: ret=1033; break;\r
-        case 1114: ret=1034; break;\r
-        case 1115: ret=1035; break;\r
-        case 1116: ret=1036; break;\r
-        case 1118: ret=1038; break;\r
-        case 1119: ret=1039; break;\r
-        case 1121: ret=1120; break;\r
-        case 1123: ret=1122; break;\r
-        case 1125: ret=1124; break;\r
-        case 1127: ret=1126; break;\r
-        case 1129: ret=1128; break;\r
-        case 1131: ret=1130; break;\r
-        case 1133: ret=1132; break;\r
-        case 1135: ret=1134; break;\r
-        case 1137: ret=1136; break;\r
-        case 1139: ret=1138; break;\r
-        case 1141: ret=1140; break;\r
-        case 1143: ret=1142; break;\r
-        case 1145: ret=1144; break;\r
-        case 1147: ret=1146; break;\r
-        case 1149: ret=1148; break;\r
-        case 1151: ret=1150; break;\r
-        case 1153: ret=1152; break;\r
-        case 1169: ret=1168; break;\r
-        case 1171: ret=1170; break;\r
-        case 1173: ret=1172; break;\r
-        case 1175: ret=1174; break;\r
-        case 1177: ret=1176; break;\r
-        case 1179: ret=1178; break;\r
-        case 1181: ret=1180; break;\r
-        case 1183: ret=1182; break;\r
-        case 1185: ret=1184; break;\r
-        case 1187: ret=1186; break;\r
-        case 1189: ret=1188; break;\r
-        case 1191: ret=1190; break;\r
-        case 1193: ret=1192; break;\r
-        case 1195: ret=1194; break;\r
-        case 1197: ret=1196; break;\r
-        case 1199: ret=1198; break;\r
-        case 1201: ret=1200; break;\r
-        case 1203: ret=1202; break;\r
-        case 1205: ret=1204; break;\r
-        case 1207: ret=1206; break;\r
-        case 1209: ret=1208; break;\r
-        case 1211: ret=1210; break;\r
-        case 1213: ret=1212; break;\r
-        case 1215: ret=1214; break;\r
-        case 1218: ret=1217; break;\r
-        case 1220: ret=1219; break;\r
-        case 1224: ret=1223; break;\r
-        case 1228: ret=1227; break;\r
-        case 1233: ret=1232; break;\r
-        case 1235: ret=1234; break;\r
-        case 1237: ret=1236; break;\r
-        case 1239: ret=1238; break;\r
-        case 1241: ret=1240; break;\r
-        case 1243: ret=1242; break;\r
-        case 1245: ret=1244; break;\r
-        case 1247: ret=1246; break;\r
-        case 1249: ret=1248; break;\r
-        case 1251: ret=1250; break;\r
-        case 1253: ret=1252; break;\r
-        case 1255: ret=1254; break;\r
-        case 1257: ret=1256; break;\r
-        case 1259: ret=1258; break;\r
-        case 1263: ret=1262; break;\r
-        case 1265: ret=1264; break;\r
-        case 1267: ret=1266; break;\r
-        case 1269: ret=1268; break;\r
-        case 1273: ret=1272; break;\r
-        case 1377: ret=1329; break;\r
-        case 1378: ret=1330; break;\r
-        case 1379: ret=1331; break;\r
-        case 1380: ret=1332; break;\r
-        case 1381: ret=1333; break;\r
-        case 1382: ret=1334; break;\r
-        case 1383: ret=1335; break;\r
-        case 1384: ret=1336; break;\r
-        case 1385: ret=1337; break;\r
-        case 1386: ret=1338; break;\r
-        case 1387: ret=1339; break;\r
-        case 1388: ret=1340; break;\r
-        case 1389: ret=1341; break;\r
-        case 1390: ret=1342; break;\r
-        case 1391: ret=1343; break;\r
-        case 1392: ret=1344; break;\r
-        case 1393: ret=1345; break;\r
-        case 1394: ret=1346; break;\r
-        case 1395: ret=1347; break;\r
-        case 1396: ret=1348; break;\r
-        case 1397: ret=1349; break;\r
-        case 1398: ret=1350; break;\r
-        case 1399: ret=1351; break;\r
-        case 1400: ret=1352; break;\r
-        case 1401: ret=1353; break;\r
-        case 1402: ret=1354; break;\r
-        case 1403: ret=1355; break;\r
-        case 1404: ret=1356; break;\r
-        case 1405: ret=1357; break;\r
-        case 1406: ret=1358; break;\r
-        case 1407: ret=1359; break;\r
-        case 1408: ret=1360; break;\r
-        case 1409: ret=1361; break;\r
-        case 1410: ret=1362; break;\r
-        case 1411: ret=1363; break;\r
-        case 1412: ret=1364; break;\r
-        case 1413: ret=1365; break;\r
-        case 1414: ret=1366; break;\r
-        case 7681: ret=7680; break;\r
-        case 7683: ret=7682; break;\r
-        case 7685: ret=7684; break;\r
-        case 7687: ret=7686; break;\r
-        case 7689: ret=7688; break;\r
-        case 7691: ret=7690; break;\r
-        case 7693: ret=7692; break;\r
-        case 7695: ret=7694; break;\r
-        case 7697: ret=7696; break;\r
-        case 7699: ret=7698; break;\r
-        case 7701: ret=7700; break;\r
-        case 7703: ret=7702; break;\r
-        case 7705: ret=7704; break;\r
-        case 7707: ret=7706; break;\r
-        case 7709: ret=7708; break;\r
-        case 7711: ret=7710; break;\r
-        case 7713: ret=7712; break;\r
-        case 7715: ret=7714; break;\r
-        case 7717: ret=7716; break;\r
-        case 7719: ret=7718; break;\r
-        case 7721: ret=7720; break;\r
-        case 7723: ret=7722; break;\r
-        case 7725: ret=7724; break;\r
-        case 7727: ret=7726; break;\r
-        case 7729: ret=7728; break;\r
-        case 7731: ret=7730; break;\r
-        case 7733: ret=7732; break;\r
-        case 7735: ret=7734; break;\r
-        case 7737: ret=7736; break;\r
-        case 7739: ret=7738; break;\r
-        case 7741: ret=7740; break;\r
-        case 7743: ret=7742; break;\r
-        case 7745: ret=7744; break;\r
-        case 7747: ret=7746; break;\r
-        case 7749: ret=7748; break;\r
-        case 7751: ret=7750; break;\r
-        case 7753: ret=7752; break;\r
-        case 7755: ret=7754; break;\r
-        case 7757: ret=7756; break;\r
-        case 7759: ret=7758; break;\r
-        case 7761: ret=7760; break;\r
-        case 7763: ret=7762; break;\r
-        case 7765: ret=7764; break;\r
-        case 7767: ret=7766; break;\r
-        case 7769: ret=7768; break;\r
-        case 7771: ret=7770; break;\r
-        case 7773: ret=7772; break;\r
-        case 7775: ret=7774; break;\r
-        case 7777: ret=7776; break;\r
-        case 7779: ret=7778; break;\r
-        case 7781: ret=7780; break;\r
-        case 7783: ret=7782; break;\r
-        case 7785: ret=7784; break;\r
-        case 7787: ret=7786; break;\r
-        case 7789: ret=7788; break;\r
-        case 7791: ret=7790; break;\r
-        case 7793: ret=7792; break;\r
-        case 7795: ret=7794; break;\r
-        case 7797: ret=7796; break;\r
-        case 7799: ret=7798; break;\r
-        case 7801: ret=7800; break;\r
-        case 7803: ret=7802; break;\r
-        case 7805: ret=7804; break;\r
-        case 7807: ret=7806; break;\r
-        case 7809: ret=7808; break;\r
-        case 7811: ret=7810; break;\r
-        case 7813: ret=7812; break;\r
-        case 7815: ret=7814; break;\r
-        case 7817: ret=7816; break;\r
-        case 7819: ret=7818; break;\r
-        case 7821: ret=7820; break;\r
-        case 7823: ret=7822; break;\r
-        case 7825: ret=7824; break;\r
-        case 7827: ret=7826; break;\r
-        case 7829: ret=7828; break;\r
-        case 7841: ret=7840; break;\r
-        case 7843: ret=7842; break;\r
-        case 7845: ret=7844; break;\r
-        case 7847: ret=7846; break;\r
-        case 7849: ret=7848; break;\r
-        case 7851: ret=7850; break;\r
-        case 7853: ret=7852; break;\r
-        case 7855: ret=7854; break;\r
-        case 7857: ret=7856; break;\r
-        case 7859: ret=7858; break;\r
-        case 7861: ret=7860; break;\r
-        case 7863: ret=7862; break;\r
-        case 7865: ret=7864; break;\r
-        case 7867: ret=7866; break;\r
-        case 7869: ret=7868; break;\r
-        case 7871: ret=7870; break;\r
-        case 7873: ret=7872; break;\r
-        case 7875: ret=7874; break;\r
-        case 7877: ret=7876; break;\r
-        case 7879: ret=7878; break;\r
-        case 7881: ret=7880; break;\r
-        case 7883: ret=7882; break;\r
-        case 7885: ret=7884; break;\r
-        case 7887: ret=7886; break;\r
-        case 7889: ret=7888; break;\r
-        case 7891: ret=7890; break;\r
-        case 7893: ret=7892; break;\r
-        case 7895: ret=7894; break;\r
-        case 7897: ret=7896; break;\r
-        case 7899: ret=7898; break;\r
-        case 7901: ret=7900; break;\r
-        case 7903: ret=7902; break;\r
-        case 7905: ret=7904; break;\r
-        case 7907: ret=7906; break;\r
-        case 7909: ret=7908; break;\r
-        case 7911: ret=7910; break;\r
-        case 7913: ret=7912; break;\r
-        case 7915: ret=7914; break;\r
-        case 7917: ret=7916; break;\r
-        case 7919: ret=7918; break;\r
-        case 7921: ret=7920; break;\r
-        case 7923: ret=7922; break;\r
-        case 7925: ret=7924; break;\r
-        case 7927: ret=7926; break;\r
-        case 7929: ret=7928; break;\r
-        case 7936: ret=7944; break;\r
-        case 7937: ret=7945; break;\r
-        case 7938: ret=7946; break;\r
-        case 7939: ret=7947; break;\r
-        case 7940: ret=7948; break;\r
-        case 7941: ret=7949; break;\r
-        case 7942: ret=7950; break;\r
-        case 7943: ret=7951; break;\r
-        case 7952: ret=7960; break;\r
-        case 7953: ret=7961; break;\r
-        case 7954: ret=7962; break;\r
-        case 7955: ret=7963; break;\r
-        case 7956: ret=7964; break;\r
-        case 7957: ret=7965; break;\r
-        case 7968: ret=7976; break;\r
-        case 7969: ret=7977; break;\r
-        case 7970: ret=7978; break;\r
-        case 7971: ret=7979; break;\r
-        case 7972: ret=7980; break;\r
-        case 7973: ret=7981; break;\r
-        case 7974: ret=7982; break;\r
-        case 7975: ret=7983; break;\r
-        case 7984: ret=7992; break;\r
-        case 7985: ret=7993; break;\r
-        case 7986: ret=7994; break;\r
-        case 7987: ret=7995; break;\r
-        case 7988: ret=7996; break;\r
-        case 7989: ret=7997; break;\r
-        case 7990: ret=7998; break;\r
-        case 7991: ret=7999; break;\r
-        case 8000: ret=8008; break;\r
-        case 8001: ret=8009; break;\r
-        case 8002: ret=8010; break;\r
-        case 8003: ret=8011; break;\r
-        case 8004: ret=8012; break;\r
-        case 8005: ret=8013; break;\r
-        case 8017: ret=8025; break;\r
-        case 8019: ret=8027; break;\r
-        case 8021: ret=8029; break;\r
-        case 8023: ret=8031; break;\r
-        case 8032: ret=8040; break;\r
-        case 8033: ret=8041; break;\r
-        case 8034: ret=8042; break;\r
-        case 8035: ret=8043; break;\r
-        case 8036: ret=8044; break;\r
-        case 8037: ret=8045; break;\r
-        case 8038: ret=8046; break;\r
-        case 8039: ret=8047; break;\r
-        case 8048: ret=8122; break;\r
-        case 8049: ret=8123; break;\r
-        case 8050: ret=8136; break;\r
-        case 8051: ret=8137; break;\r
-        case 8052: ret=8138; break;\r
-        case 8053: ret=8139; break;\r
-        case 8054: ret=8154; break;\r
-        case 8055: ret=8155; break;\r
-        case 8056: ret=8184; break;\r
-        case 8057: ret=8185; break;\r
-        case 8058: ret=8170; break;\r
-        case 8059: ret=8171; break;\r
-        case 8060: ret=8186; break;\r
-        case 8061: ret=8187; break;\r
-        case 8064: ret=8072; break;\r
-        case 8065: ret=8073; break;\r
-        case 8066: ret=8074; break;\r
-        case 8067: ret=8075; break;\r
-        case 8068: ret=8076; break;\r
-        case 8069: ret=8077; break;\r
-        case 8070: ret=8078; break;\r
-        case 8071: ret=8079; break;\r
-        case 8080: ret=8088; break;\r
-        case 8081: ret=8089; break;\r
-        case 8082: ret=8090; break;\r
-        case 8083: ret=8091; break;\r
-        case 8084: ret=8092; break;\r
-        case 8085: ret=8093; break;\r
-        case 8086: ret=8094; break;\r
-        case 8087: ret=8095; break;\r
-        case 8096: ret=8104; break;\r
-        case 8097: ret=8105; break;\r
-        case 8098: ret=8106; break;\r
-        case 8099: ret=8107; break;\r
-        case 8100: ret=8108; break;\r
-        case 8101: ret=8109; break;\r
-        case 8102: ret=8110; break;\r
-        case 8103: ret=8111; break;\r
-        case 8112: ret=8120; break;\r
-        case 8113: ret=8121; break;\r
-        case 8115: ret=8124; break;\r
-        case 8131: ret=8140; break;\r
-        case 8144: ret=8152; break;\r
-        case 8145: ret=8153; break;\r
-        case 8160: ret=8168; break;\r
-        case 8161: ret=8169; break;\r
-        case 8165: ret=8172; break;\r
-        case 8179: ret=8188; break;\r
-        case 8560: ret=8544; break;\r
-        case 8561: ret=8545; break;\r
-        case 8562: ret=8546; break;\r
-        case 8563: ret=8547; break;\r
-        case 8564: ret=8548; break;\r
-        case 8565: ret=8549; break;\r
-        case 8566: ret=8550; break;\r
-        case 8567: ret=8551; break;\r
-        case 8568: ret=8552; break;\r
-        case 8569: ret=8553; break;\r
-        case 8570: ret=8554; break;\r
-        case 8571: ret=8555; break;\r
-        case 8572: ret=8556; break;\r
-        case 8573: ret=8557; break;\r
-        case 8574: ret=8558; break;\r
-        case 8575: ret=8559; break;\r
-        case 9424: ret=9398; break;\r
-        case 9425: ret=9399; break;\r
-        case 9426: ret=9400; break;\r
-        case 9427: ret=9401; break;\r
-        case 9428: ret=9402; break;\r
-        case 9429: ret=9403; break;\r
-        case 9430: ret=9404; break;\r
-        case 9431: ret=9405; break;\r
-        case 9432: ret=9406; break;\r
-        case 9433: ret=9407; break;\r
-        case 9434: ret=9408; break;\r
-        case 9435: ret=9409; break;\r
-        case 9436: ret=9410; break;\r
-        case 9437: ret=9411; break;\r
-        case 9438: ret=9412; break;\r
-        case 9439: ret=9413; break;\r
-        case 9440: ret=9414; break;\r
-        case 9441: ret=9415; break;\r
-        case 9442: ret=9416; break;\r
-        case 9443: ret=9417; break;\r
-        case 9444: ret=9418; break;\r
-        case 9445: ret=9419; break;\r
-        case 9446: ret=9420; break;\r
-        case 9447: ret=9421; break;\r
-        case 9448: ret=9422; break;\r
-        case 9449: ret=9423; break;\r
-        case 65345: ret=65313; break;\r
-        case 65346: ret=65314; break;\r
-        case 65347: ret=65315; break;\r
-        case 65348: ret=65316; break;\r
-        case 65349: ret=65317; break;\r
-        case 65350: ret=65318; break;\r
-        case 65351: ret=65319; break;\r
-        case 65352: ret=65320; break;\r
-        case 65353: ret=65321; break;\r
-        case 65354: ret=65322; break;\r
-        case 65355: ret=65323; break;\r
-        case 65356: ret=65324; break;\r
-        case 65357: ret=65325; break;\r
-        case 65358: ret=65326; break;\r
-        case 65359: ret=65327; break;\r
-        case 65360: ret=65328; break;\r
-        case 65361: ret=65329; break;\r
-        case 65362: ret=65330; break;\r
-        case 65363: ret=65331; break;\r
-        case 65364: ret=65332; break;\r
-        case 65365: ret=65333; break;\r
-        case 65366: ret=65334; break;\r
-        case 65367: ret=65335; break;\r
-        case 65368: ret=65336; break;\r
-        case 65369: ret=65337; break;\r
-        case 65370: ret=65338; break;\r
-        }\r
-        return (char)ret;\r
+ */\r
+final public class CaseMgr\r
+{\r
+  final static boolean java_1_0 = false;\r
+  /** Convert a character to upper case .*/\r
+  public static char toUpperCase(char c)\r
+  {\r
+    if (java_1_0)\r
+    {\r
+      int ret = (int) c;\r
+      switch (c)\r
+      {\r
+        case 97:\r
+          ret = 65;\r
+          break;\r
+        case 98:\r
+          ret = 66;\r
+          break;\r
+        case 99:\r
+          ret = 67;\r
+          break;\r
+        case 100:\r
+          ret = 68;\r
+          break;\r
+        case 101:\r
+          ret = 69;\r
+          break;\r
+        case 102:\r
+          ret = 70;\r
+          break;\r
+        case 103:\r
+          ret = 71;\r
+          break;\r
+        case 104:\r
+          ret = 72;\r
+          break;\r
+        case 105:\r
+          ret = 73;\r
+          break;\r
+        case 106:\r
+          ret = 74;\r
+          break;\r
+        case 107:\r
+          ret = 75;\r
+          break;\r
+        case 108:\r
+          ret = 76;\r
+          break;\r
+        case 109:\r
+          ret = 77;\r
+          break;\r
+        case 110:\r
+          ret = 78;\r
+          break;\r
+        case 111:\r
+          ret = 79;\r
+          break;\r
+        case 112:\r
+          ret = 80;\r
+          break;\r
+        case 113:\r
+          ret = 81;\r
+          break;\r
+        case 114:\r
+          ret = 82;\r
+          break;\r
+        case 115:\r
+          ret = 83;\r
+          break;\r
+        case 116:\r
+          ret = 84;\r
+          break;\r
+        case 117:\r
+          ret = 85;\r
+          break;\r
+        case 118:\r
+          ret = 86;\r
+          break;\r
+        case 119:\r
+          ret = 87;\r
+          break;\r
+        case 120:\r
+          ret = 88;\r
+          break;\r
+        case 121:\r
+          ret = 89;\r
+          break;\r
+        case 122:\r
+          ret = 90;\r
+          break;\r
+        case 224:\r
+          ret = 192;\r
+          break;\r
+        case 225:\r
+          ret = 193;\r
+          break;\r
+        case 226:\r
+          ret = 194;\r
+          break;\r
+        case 227:\r
+          ret = 195;\r
+          break;\r
+        case 228:\r
+          ret = 196;\r
+          break;\r
+        case 229:\r
+          ret = 197;\r
+          break;\r
+        case 230:\r
+          ret = 198;\r
+          break;\r
+        case 231:\r
+          ret = 199;\r
+          break;\r
+        case 232:\r
+          ret = 200;\r
+          break;\r
+        case 233:\r
+          ret = 201;\r
+          break;\r
+        case 234:\r
+          ret = 202;\r
+          break;\r
+        case 235:\r
+          ret = 203;\r
+          break;\r
+        case 236:\r
+          ret = 204;\r
+          break;\r
+        case 237:\r
+          ret = 205;\r
+          break;\r
+        case 238:\r
+          ret = 206;\r
+          break;\r
+        case 239:\r
+          ret = 207;\r
+          break;\r
+        case 240:\r
+          ret = 208;\r
+          break;\r
+        case 241:\r
+          ret = 209;\r
+          break;\r
+        case 242:\r
+          ret = 210;\r
+          break;\r
+        case 243:\r
+          ret = 211;\r
+          break;\r
+        case 244:\r
+          ret = 212;\r
+          break;\r
+        case 245:\r
+          ret = 213;\r
+          break;\r
+        case 246:\r
+          ret = 214;\r
+          break;\r
+        case 248:\r
+          ret = 216;\r
+          break;\r
+        case 249:\r
+          ret = 217;\r
+          break;\r
+        case 250:\r
+          ret = 218;\r
+          break;\r
+        case 251:\r
+          ret = 219;\r
+          break;\r
+        case 252:\r
+          ret = 220;\r
+          break;\r
+        case 253:\r
+          ret = 221;\r
+          break;\r
+        case 254:\r
+          ret = 222;\r
+          break;\r
+        case 255:\r
+          ret = 376;\r
+          break;\r
+        case 257:\r
+          ret = 256;\r
+          break;\r
+        case 259:\r
+          ret = 258;\r
+          break;\r
+        case 261:\r
+          ret = 260;\r
+          break;\r
+        case 263:\r
+          ret = 262;\r
+          break;\r
+        case 265:\r
+          ret = 264;\r
+          break;\r
+        case 267:\r
+          ret = 266;\r
+          break;\r
+        case 269:\r
+          ret = 268;\r
+          break;\r
+        case 271:\r
+          ret = 270;\r
+          break;\r
+        case 273:\r
+          ret = 272;\r
+          break;\r
+        case 275:\r
+          ret = 274;\r
+          break;\r
+        case 277:\r
+          ret = 276;\r
+          break;\r
+        case 279:\r
+          ret = 278;\r
+          break;\r
+        case 281:\r
+          ret = 280;\r
+          break;\r
+        case 283:\r
+          ret = 282;\r
+          break;\r
+        case 285:\r
+          ret = 284;\r
+          break;\r
+        case 287:\r
+          ret = 286;\r
+          break;\r
+        case 289:\r
+          ret = 288;\r
+          break;\r
+        case 291:\r
+          ret = 290;\r
+          break;\r
+        case 293:\r
+          ret = 292;\r
+          break;\r
+        case 295:\r
+          ret = 294;\r
+          break;\r
+        case 297:\r
+          ret = 296;\r
+          break;\r
+        case 299:\r
+          ret = 298;\r
+          break;\r
+        case 301:\r
+          ret = 300;\r
+          break;\r
+        case 303:\r
+          ret = 302;\r
+          break;\r
+        case 305:\r
+          ret = 73;\r
+          break;\r
+        case 307:\r
+          ret = 306;\r
+          break;\r
+        case 309:\r
+          ret = 308;\r
+          break;\r
+        case 311:\r
+          ret = 310;\r
+          break;\r
+        case 314:\r
+          ret = 313;\r
+          break;\r
+        case 316:\r
+          ret = 315;\r
+          break;\r
+        case 318:\r
+          ret = 317;\r
+          break;\r
+        case 320:\r
+          ret = 319;\r
+          break;\r
+        case 322:\r
+          ret = 321;\r
+          break;\r
+        case 324:\r
+          ret = 323;\r
+          break;\r
+        case 326:\r
+          ret = 325;\r
+          break;\r
+        case 328:\r
+          ret = 327;\r
+          break;\r
+        case 331:\r
+          ret = 330;\r
+          break;\r
+        case 333:\r
+          ret = 332;\r
+          break;\r
+        case 335:\r
+          ret = 334;\r
+          break;\r
+        case 337:\r
+          ret = 336;\r
+          break;\r
+        case 339:\r
+          ret = 338;\r
+          break;\r
+        case 341:\r
+          ret = 340;\r
+          break;\r
+        case 343:\r
+          ret = 342;\r
+          break;\r
+        case 345:\r
+          ret = 344;\r
+          break;\r
+        case 347:\r
+          ret = 346;\r
+          break;\r
+        case 349:\r
+          ret = 348;\r
+          break;\r
+        case 351:\r
+          ret = 350;\r
+          break;\r
+        case 353:\r
+          ret = 352;\r
+          break;\r
+        case 355:\r
+          ret = 354;\r
+          break;\r
+        case 357:\r
+          ret = 356;\r
+          break;\r
+        case 359:\r
+          ret = 358;\r
+          break;\r
+        case 361:\r
+          ret = 360;\r
+          break;\r
+        case 363:\r
+          ret = 362;\r
+          break;\r
+        case 365:\r
+          ret = 364;\r
+          break;\r
+        case 367:\r
+          ret = 366;\r
+          break;\r
+        case 369:\r
+          ret = 368;\r
+          break;\r
+        case 371:\r
+          ret = 370;\r
+          break;\r
+        case 373:\r
+          ret = 372;\r
+          break;\r
+        case 375:\r
+          ret = 374;\r
+          break;\r
+        case 378:\r
+          ret = 377;\r
+          break;\r
+        case 380:\r
+          ret = 379;\r
+          break;\r
+        case 382:\r
+          ret = 381;\r
+          break;\r
+        case 383:\r
+          ret = 83;\r
+          break;\r
+        case 387:\r
+          ret = 386;\r
+          break;\r
+        case 389:\r
+          ret = 388;\r
+          break;\r
+        case 392:\r
+          ret = 391;\r
+          break;\r
+        case 396:\r
+          ret = 395;\r
+          break;\r
+        case 402:\r
+          ret = 401;\r
+          break;\r
+        case 409:\r
+          ret = 408;\r
+          break;\r
+        case 417:\r
+          ret = 416;\r
+          break;\r
+        case 419:\r
+          ret = 418;\r
+          break;\r
+        case 421:\r
+          ret = 420;\r
+          break;\r
+        case 424:\r
+          ret = 423;\r
+          break;\r
+        case 429:\r
+          ret = 428;\r
+          break;\r
+        case 432:\r
+          ret = 431;\r
+          break;\r
+        case 436:\r
+          ret = 435;\r
+          break;\r
+        case 438:\r
+          ret = 437;\r
+          break;\r
+        case 441:\r
+          ret = 440;\r
+          break;\r
+        case 445:\r
+          ret = 444;\r
+          break;\r
+        case 453:\r
+          ret = 452;\r
+          break;\r
+        case 454:\r
+          ret = 452;\r
+          break;\r
+        case 456:\r
+          ret = 455;\r
+          break;\r
+        case 457:\r
+          ret = 455;\r
+          break;\r
+        case 459:\r
+          ret = 458;\r
+          break;\r
+        case 460:\r
+          ret = 458;\r
+          break;\r
+        case 462:\r
+          ret = 461;\r
+          break;\r
+        case 464:\r
+          ret = 463;\r
+          break;\r
+        case 466:\r
+          ret = 465;\r
+          break;\r
+        case 468:\r
+          ret = 467;\r
+          break;\r
+        case 470:\r
+          ret = 469;\r
+          break;\r
+        case 472:\r
+          ret = 471;\r
+          break;\r
+        case 474:\r
+          ret = 473;\r
+          break;\r
+        case 476:\r
+          ret = 475;\r
+          break;\r
+        case 479:\r
+          ret = 478;\r
+          break;\r
+        case 481:\r
+          ret = 480;\r
+          break;\r
+        case 483:\r
+          ret = 482;\r
+          break;\r
+        case 485:\r
+          ret = 484;\r
+          break;\r
+        case 487:\r
+          ret = 486;\r
+          break;\r
+        case 489:\r
+          ret = 488;\r
+          break;\r
+        case 491:\r
+          ret = 490;\r
+          break;\r
+        case 493:\r
+          ret = 492;\r
+          break;\r
+        case 495:\r
+          ret = 494;\r
+          break;\r
+        case 498:\r
+          ret = 497;\r
+          break;\r
+        case 499:\r
+          ret = 497;\r
+          break;\r
+        case 501:\r
+          ret = 500;\r
+          break;\r
+        case 507:\r
+          ret = 506;\r
+          break;\r
+        case 509:\r
+          ret = 508;\r
+          break;\r
+        case 511:\r
+          ret = 510;\r
+          break;\r
+        case 513:\r
+          ret = 512;\r
+          break;\r
+        case 515:\r
+          ret = 514;\r
+          break;\r
+        case 517:\r
+          ret = 516;\r
+          break;\r
+        case 519:\r
+          ret = 518;\r
+          break;\r
+        case 521:\r
+          ret = 520;\r
+          break;\r
+        case 523:\r
+          ret = 522;\r
+          break;\r
+        case 525:\r
+          ret = 524;\r
+          break;\r
+        case 527:\r
+          ret = 526;\r
+          break;\r
+        case 529:\r
+          ret = 528;\r
+          break;\r
+        case 531:\r
+          ret = 530;\r
+          break;\r
+        case 533:\r
+          ret = 532;\r
+          break;\r
+        case 535:\r
+          ret = 534;\r
+          break;\r
+        case 595:\r
+          ret = 385;\r
+          break;\r
+        case 596:\r
+          ret = 390;\r
+          break;\r
+        case 598:\r
+          ret = 393;\r
+          break;\r
+        case 599:\r
+          ret = 394;\r
+          break;\r
+        case 600:\r
+          ret = 398;\r
+          break;\r
+        case 601:\r
+          ret = 399;\r
+          break;\r
+        case 603:\r
+          ret = 400;\r
+          break;\r
+        case 608:\r
+          ret = 403;\r
+          break;\r
+        case 611:\r
+          ret = 404;\r
+          break;\r
+        case 616:\r
+          ret = 407;\r
+          break;\r
+        case 617:\r
+          ret = 406;\r
+          break;\r
+        case 623:\r
+          ret = 412;\r
+          break;\r
+        case 626:\r
+          ret = 413;\r
+          break;\r
+        case 643:\r
+          ret = 425;\r
+          break;\r
+        case 648:\r
+          ret = 430;\r
+          break;\r
+        case 650:\r
+          ret = 433;\r
+          break;\r
+        case 651:\r
+          ret = 434;\r
+          break;\r
+        case 658:\r
+          ret = 439;\r
+          break;\r
+        case 940:\r
+          ret = 902;\r
+          break;\r
+        case 941:\r
+          ret = 904;\r
+          break;\r
+        case 942:\r
+          ret = 905;\r
+          break;\r
+        case 943:\r
+          ret = 906;\r
+          break;\r
+        case 945:\r
+          ret = 913;\r
+          break;\r
+        case 946:\r
+          ret = 914;\r
+          break;\r
+        case 947:\r
+          ret = 915;\r
+          break;\r
+        case 948:\r
+          ret = 916;\r
+          break;\r
+        case 949:\r
+          ret = 917;\r
+          break;\r
+        case 950:\r
+          ret = 918;\r
+          break;\r
+        case 951:\r
+          ret = 919;\r
+          break;\r
+        case 952:\r
+          ret = 920;\r
+          break;\r
+        case 953:\r
+          ret = 921;\r
+          break;\r
+        case 954:\r
+          ret = 922;\r
+          break;\r
+        case 955:\r
+          ret = 923;\r
+          break;\r
+        case 956:\r
+          ret = 924;\r
+          break;\r
+        case 957:\r
+          ret = 925;\r
+          break;\r
+        case 958:\r
+          ret = 926;\r
+          break;\r
+        case 959:\r
+          ret = 927;\r
+          break;\r
+        case 960:\r
+          ret = 928;\r
+          break;\r
+        case 961:\r
+          ret = 929;\r
+          break;\r
+        case 963:\r
+          ret = 931;\r
+          break;\r
+        case 964:\r
+          ret = 932;\r
+          break;\r
+        case 965:\r
+          ret = 933;\r
+          break;\r
+        case 966:\r
+          ret = 934;\r
+          break;\r
+        case 967:\r
+          ret = 935;\r
+          break;\r
+        case 968:\r
+          ret = 936;\r
+          break;\r
+        case 969:\r
+          ret = 937;\r
+          break;\r
+        case 970:\r
+          ret = 938;\r
+          break;\r
+        case 971:\r
+          ret = 939;\r
+          break;\r
+        case 972:\r
+          ret = 908;\r
+          break;\r
+        case 973:\r
+          ret = 910;\r
+          break;\r
+        case 974:\r
+          ret = 911;\r
+          break;\r
+        case 976:\r
+          ret = 914;\r
+          break;\r
+        case 977:\r
+          ret = 920;\r
+          break;\r
+        case 981:\r
+          ret = 934;\r
+          break;\r
+        case 982:\r
+          ret = 928;\r
+          break;\r
+        case 995:\r
+          ret = 994;\r
+          break;\r
+        case 997:\r
+          ret = 996;\r
+          break;\r
+        case 999:\r
+          ret = 998;\r
+          break;\r
+        case 1001:\r
+          ret = 1000;\r
+          break;\r
+        case 1003:\r
+          ret = 1002;\r
+          break;\r
+        case 1005:\r
+          ret = 1004;\r
+          break;\r
+        case 1007:\r
+          ret = 1006;\r
+          break;\r
+        case 1008:\r
+          ret = 922;\r
+          break;\r
+        case 1009:\r
+          ret = 929;\r
+          break;\r
+        case 1072:\r
+          ret = 1040;\r
+          break;\r
+        case 1073:\r
+          ret = 1041;\r
+          break;\r
+        case 1074:\r
+          ret = 1042;\r
+          break;\r
+        case 1075:\r
+          ret = 1043;\r
+          break;\r
+        case 1076:\r
+          ret = 1044;\r
+          break;\r
+        case 1077:\r
+          ret = 1045;\r
+          break;\r
+        case 1078:\r
+          ret = 1046;\r
+          break;\r
+        case 1079:\r
+          ret = 1047;\r
+          break;\r
+        case 1080:\r
+          ret = 1048;\r
+          break;\r
+        case 1081:\r
+          ret = 1049;\r
+          break;\r
+        case 1082:\r
+          ret = 1050;\r
+          break;\r
+        case 1083:\r
+          ret = 1051;\r
+          break;\r
+        case 1084:\r
+          ret = 1052;\r
+          break;\r
+        case 1085:\r
+          ret = 1053;\r
+          break;\r
+        case 1086:\r
+          ret = 1054;\r
+          break;\r
+        case 1087:\r
+          ret = 1055;\r
+          break;\r
+        case 1088:\r
+          ret = 1056;\r
+          break;\r
+        case 1089:\r
+          ret = 1057;\r
+          break;\r
+        case 1090:\r
+          ret = 1058;\r
+          break;\r
+        case 1091:\r
+          ret = 1059;\r
+          break;\r
+        case 1092:\r
+          ret = 1060;\r
+          break;\r
+        case 1093:\r
+          ret = 1061;\r
+          break;\r
+        case 1094:\r
+          ret = 1062;\r
+          break;\r
+        case 1095:\r
+          ret = 1063;\r
+          break;\r
+        case 1096:\r
+          ret = 1064;\r
+          break;\r
+        case 1097:\r
+          ret = 1065;\r
+          break;\r
+        case 1098:\r
+          ret = 1066;\r
+          break;\r
+        case 1099:\r
+          ret = 1067;\r
+          break;\r
+        case 1100:\r
+          ret = 1068;\r
+          break;\r
+        case 1101:\r
+          ret = 1069;\r
+          break;\r
+        case 1102:\r
+          ret = 1070;\r
+          break;\r
+        case 1103:\r
+          ret = 1071;\r
+          break;\r
+        case 1105:\r
+          ret = 1025;\r
+          break;\r
+        case 1106:\r
+          ret = 1026;\r
+          break;\r
+        case 1107:\r
+          ret = 1027;\r
+          break;\r
+        case 1108:\r
+          ret = 1028;\r
+          break;\r
+        case 1109:\r
+          ret = 1029;\r
+          break;\r
+        case 1110:\r
+          ret = 1030;\r
+          break;\r
+        case 1111:\r
+          ret = 1031;\r
+          break;\r
+        case 1112:\r
+          ret = 1032;\r
+          break;\r
+        case 1113:\r
+          ret = 1033;\r
+          break;\r
+        case 1114:\r
+          ret = 1034;\r
+          break;\r
+        case 1115:\r
+          ret = 1035;\r
+          break;\r
+        case 1116:\r
+          ret = 1036;\r
+          break;\r
+        case 1118:\r
+          ret = 1038;\r
+          break;\r
+        case 1119:\r
+          ret = 1039;\r
+          break;\r
+        case 1121:\r
+          ret = 1120;\r
+          break;\r
+        case 1123:\r
+          ret = 1122;\r
+          break;\r
+        case 1125:\r
+          ret = 1124;\r
+          break;\r
+        case 1127:\r
+          ret = 1126;\r
+          break;\r
+        case 1129:\r
+          ret = 1128;\r
+          break;\r
+        case 1131:\r
+          ret = 1130;\r
+          break;\r
+        case 1133:\r
+          ret = 1132;\r
+          break;\r
+        case 1135:\r
+          ret = 1134;\r
+          break;\r
+        case 1137:\r
+          ret = 1136;\r
+          break;\r
+        case 1139:\r
+          ret = 1138;\r
+          break;\r
+        case 1141:\r
+          ret = 1140;\r
+          break;\r
+        case 1143:\r
+          ret = 1142;\r
+          break;\r
+        case 1145:\r
+          ret = 1144;\r
+          break;\r
+        case 1147:\r
+          ret = 1146;\r
+          break;\r
+        case 1149:\r
+          ret = 1148;\r
+          break;\r
+        case 1151:\r
+          ret = 1150;\r
+          break;\r
+        case 1153:\r
+          ret = 1152;\r
+          break;\r
+        case 1169:\r
+          ret = 1168;\r
+          break;\r
+        case 1171:\r
+          ret = 1170;\r
+          break;\r
+        case 1173:\r
+          ret = 1172;\r
+          break;\r
+        case 1175:\r
+          ret = 1174;\r
+          break;\r
+        case 1177:\r
+          ret = 1176;\r
+          break;\r
+        case 1179:\r
+          ret = 1178;\r
+          break;\r
+        case 1181:\r
+          ret = 1180;\r
+          break;\r
+        case 1183:\r
+          ret = 1182;\r
+          break;\r
+        case 1185:\r
+          ret = 1184;\r
+          break;\r
+        case 1187:\r
+          ret = 1186;\r
+          break;\r
+        case 1189:\r
+          ret = 1188;\r
+          break;\r
+        case 1191:\r
+          ret = 1190;\r
+          break;\r
+        case 1193:\r
+          ret = 1192;\r
+          break;\r
+        case 1195:\r
+          ret = 1194;\r
+          break;\r
+        case 1197:\r
+          ret = 1196;\r
+          break;\r
+        case 1199:\r
+          ret = 1198;\r
+          break;\r
+        case 1201:\r
+          ret = 1200;\r
+          break;\r
+        case 1203:\r
+          ret = 1202;\r
+          break;\r
+        case 1205:\r
+          ret = 1204;\r
+          break;\r
+        case 1207:\r
+          ret = 1206;\r
+          break;\r
+        case 1209:\r
+          ret = 1208;\r
+          break;\r
+        case 1211:\r
+          ret = 1210;\r
+          break;\r
+        case 1213:\r
+          ret = 1212;\r
+          break;\r
+        case 1215:\r
+          ret = 1214;\r
+          break;\r
+        case 1218:\r
+          ret = 1217;\r
+          break;\r
+        case 1220:\r
+          ret = 1219;\r
+          break;\r
+        case 1224:\r
+          ret = 1223;\r
+          break;\r
+        case 1228:\r
+          ret = 1227;\r
+          break;\r
+        case 1233:\r
+          ret = 1232;\r
+          break;\r
+        case 1235:\r
+          ret = 1234;\r
+          break;\r
+        case 1237:\r
+          ret = 1236;\r
+          break;\r
+        case 1239:\r
+          ret = 1238;\r
+          break;\r
+        case 1241:\r
+          ret = 1240;\r
+          break;\r
+        case 1243:\r
+          ret = 1242;\r
+          break;\r
+        case 1245:\r
+          ret = 1244;\r
+          break;\r
+        case 1247:\r
+          ret = 1246;\r
+          break;\r
+        case 1249:\r
+          ret = 1248;\r
+          break;\r
+        case 1251:\r
+          ret = 1250;\r
+          break;\r
+        case 1253:\r
+          ret = 1252;\r
+          break;\r
+        case 1255:\r
+          ret = 1254;\r
+          break;\r
+        case 1257:\r
+          ret = 1256;\r
+          break;\r
+        case 1259:\r
+          ret = 1258;\r
+          break;\r
+        case 1263:\r
+          ret = 1262;\r
+          break;\r
+        case 1265:\r
+          ret = 1264;\r
+          break;\r
+        case 1267:\r
+          ret = 1266;\r
+          break;\r
+        case 1269:\r
+          ret = 1268;\r
+          break;\r
+        case 1273:\r
+          ret = 1272;\r
+          break;\r
+        case 1377:\r
+          ret = 1329;\r
+          break;\r
+        case 1378:\r
+          ret = 1330;\r
+          break;\r
+        case 1379:\r
+          ret = 1331;\r
+          break;\r
+        case 1380:\r
+          ret = 1332;\r
+          break;\r
+        case 1381:\r
+          ret = 1333;\r
+          break;\r
+        case 1382:\r
+          ret = 1334;\r
+          break;\r
+        case 1383:\r
+          ret = 1335;\r
+          break;\r
+        case 1384:\r
+          ret = 1336;\r
+          break;\r
+        case 1385:\r
+          ret = 1337;\r
+          break;\r
+        case 1386:\r
+          ret = 1338;\r
+          break;\r
+        case 1387:\r
+          ret = 1339;\r
+          break;\r
+        case 1388:\r
+          ret = 1340;\r
+          break;\r
+        case 1389:\r
+          ret = 1341;\r
+          break;\r
+        case 1390:\r
+          ret = 1342;\r
+          break;\r
+        case 1391:\r
+          ret = 1343;\r
+          break;\r
+        case 1392:\r
+          ret = 1344;\r
+          break;\r
+        case 1393:\r
+          ret = 1345;\r
+          break;\r
+        case 1394:\r
+          ret = 1346;\r
+          break;\r
+        case 1395:\r
+          ret = 1347;\r
+          break;\r
+        case 1396:\r
+          ret = 1348;\r
+          break;\r
+        case 1397:\r
+          ret = 1349;\r
+          break;\r
+        case 1398:\r
+          ret = 1350;\r
+          break;\r
+        case 1399:\r
+          ret = 1351;\r
+          break;\r
+        case 1400:\r
+          ret = 1352;\r
+          break;\r
+        case 1401:\r
+          ret = 1353;\r
+          break;\r
+        case 1402:\r
+          ret = 1354;\r
+          break;\r
+        case 1403:\r
+          ret = 1355;\r
+          break;\r
+        case 1404:\r
+          ret = 1356;\r
+          break;\r
+        case 1405:\r
+          ret = 1357;\r
+          break;\r
+        case 1406:\r
+          ret = 1358;\r
+          break;\r
+        case 1407:\r
+          ret = 1359;\r
+          break;\r
+        case 1408:\r
+          ret = 1360;\r
+          break;\r
+        case 1409:\r
+          ret = 1361;\r
+          break;\r
+        case 1410:\r
+          ret = 1362;\r
+          break;\r
+        case 1411:\r
+          ret = 1363;\r
+          break;\r
+        case 1412:\r
+          ret = 1364;\r
+          break;\r
+        case 1413:\r
+          ret = 1365;\r
+          break;\r
+        case 1414:\r
+          ret = 1366;\r
+          break;\r
+        case 7681:\r
+          ret = 7680;\r
+          break;\r
+        case 7683:\r
+          ret = 7682;\r
+          break;\r
+        case 7685:\r
+          ret = 7684;\r
+          break;\r
+        case 7687:\r
+          ret = 7686;\r
+          break;\r
+        case 7689:\r
+          ret = 7688;\r
+          break;\r
+        case 7691:\r
+          ret = 7690;\r
+          break;\r
+        case 7693:\r
+          ret = 7692;\r
+          break;\r
+        case 7695:\r
+          ret = 7694;\r
+          break;\r
+        case 7697:\r
+          ret = 7696;\r
+          break;\r
+        case 7699:\r
+          ret = 7698;\r
+          break;\r
+        case 7701:\r
+          ret = 7700;\r
+          break;\r
+        case 7703:\r
+          ret = 7702;\r
+          break;\r
+        case 7705:\r
+          ret = 7704;\r
+          break;\r
+        case 7707:\r
+          ret = 7706;\r
+          break;\r
+        case 7709:\r
+          ret = 7708;\r
+          break;\r
+        case 7711:\r
+          ret = 7710;\r
+          break;\r
+        case 7713:\r
+          ret = 7712;\r
+          break;\r
+        case 7715:\r
+          ret = 7714;\r
+          break;\r
+        case 7717:\r
+          ret = 7716;\r
+          break;\r
+        case 7719:\r
+          ret = 7718;\r
+          break;\r
+        case 7721:\r
+          ret = 7720;\r
+          break;\r
+        case 7723:\r
+          ret = 7722;\r
+          break;\r
+        case 7725:\r
+          ret = 7724;\r
+          break;\r
+        case 7727:\r
+          ret = 7726;\r
+          break;\r
+        case 7729:\r
+          ret = 7728;\r
+          break;\r
+        case 7731:\r
+          ret = 7730;\r
+          break;\r
+        case 7733:\r
+          ret = 7732;\r
+          break;\r
+        case 7735:\r
+          ret = 7734;\r
+          break;\r
+        case 7737:\r
+          ret = 7736;\r
+          break;\r
+        case 7739:\r
+          ret = 7738;\r
+          break;\r
+        case 7741:\r
+          ret = 7740;\r
+          break;\r
+        case 7743:\r
+          ret = 7742;\r
+          break;\r
+        case 7745:\r
+          ret = 7744;\r
+          break;\r
+        case 7747:\r
+          ret = 7746;\r
+          break;\r
+        case 7749:\r
+          ret = 7748;\r
+          break;\r
+        case 7751:\r
+          ret = 7750;\r
+          break;\r
+        case 7753:\r
+          ret = 7752;\r
+          break;\r
+        case 7755:\r
+          ret = 7754;\r
+          break;\r
+        case 7757:\r
+          ret = 7756;\r
+          break;\r
+        case 7759:\r
+          ret = 7758;\r
+          break;\r
+        case 7761:\r
+          ret = 7760;\r
+          break;\r
+        case 7763:\r
+          ret = 7762;\r
+          break;\r
+        case 7765:\r
+          ret = 7764;\r
+          break;\r
+        case 7767:\r
+          ret = 7766;\r
+          break;\r
+        case 7769:\r
+          ret = 7768;\r
+          break;\r
+        case 7771:\r
+          ret = 7770;\r
+          break;\r
+        case 7773:\r
+          ret = 7772;\r
+          break;\r
+        case 7775:\r
+          ret = 7774;\r
+          break;\r
+        case 7777:\r
+          ret = 7776;\r
+          break;\r
+        case 7779:\r
+          ret = 7778;\r
+          break;\r
+        case 7781:\r
+          ret = 7780;\r
+          break;\r
+        case 7783:\r
+          ret = 7782;\r
+          break;\r
+        case 7785:\r
+          ret = 7784;\r
+          break;\r
+        case 7787:\r
+          ret = 7786;\r
+          break;\r
+        case 7789:\r
+          ret = 7788;\r
+          break;\r
+        case 7791:\r
+          ret = 7790;\r
+          break;\r
+        case 7793:\r
+          ret = 7792;\r
+          break;\r
+        case 7795:\r
+          ret = 7794;\r
+          break;\r
+        case 7797:\r
+          ret = 7796;\r
+          break;\r
+        case 7799:\r
+          ret = 7798;\r
+          break;\r
+        case 7801:\r
+          ret = 7800;\r
+          break;\r
+        case 7803:\r
+          ret = 7802;\r
+          break;\r
+        case 7805:\r
+          ret = 7804;\r
+          break;\r
+        case 7807:\r
+          ret = 7806;\r
+          break;\r
+        case 7809:\r
+          ret = 7808;\r
+          break;\r
+        case 7811:\r
+          ret = 7810;\r
+          break;\r
+        case 7813:\r
+          ret = 7812;\r
+          break;\r
+        case 7815:\r
+          ret = 7814;\r
+          break;\r
+        case 7817:\r
+          ret = 7816;\r
+          break;\r
+        case 7819:\r
+          ret = 7818;\r
+          break;\r
+        case 7821:\r
+          ret = 7820;\r
+          break;\r
+        case 7823:\r
+          ret = 7822;\r
+          break;\r
+        case 7825:\r
+          ret = 7824;\r
+          break;\r
+        case 7827:\r
+          ret = 7826;\r
+          break;\r
+        case 7829:\r
+          ret = 7828;\r
+          break;\r
+        case 7841:\r
+          ret = 7840;\r
+          break;\r
+        case 7843:\r
+          ret = 7842;\r
+          break;\r
+        case 7845:\r
+          ret = 7844;\r
+          break;\r
+        case 7847:\r
+          ret = 7846;\r
+          break;\r
+        case 7849:\r
+          ret = 7848;\r
+          break;\r
+        case 7851:\r
+          ret = 7850;\r
+          break;\r
+        case 7853:\r
+          ret = 7852;\r
+          break;\r
+        case 7855:\r
+          ret = 7854;\r
+          break;\r
+        case 7857:\r
+          ret = 7856;\r
+          break;\r
+        case 7859:\r
+          ret = 7858;\r
+          break;\r
+        case 7861:\r
+          ret = 7860;\r
+          break;\r
+        case 7863:\r
+          ret = 7862;\r
+          break;\r
+        case 7865:\r
+          ret = 7864;\r
+          break;\r
+        case 7867:\r
+          ret = 7866;\r
+          break;\r
+        case 7869:\r
+          ret = 7868;\r
+          break;\r
+        case 7871:\r
+          ret = 7870;\r
+          break;\r
+        case 7873:\r
+          ret = 7872;\r
+          break;\r
+        case 7875:\r
+          ret = 7874;\r
+          break;\r
+        case 7877:\r
+          ret = 7876;\r
+          break;\r
+        case 7879:\r
+          ret = 7878;\r
+          break;\r
+        case 7881:\r
+          ret = 7880;\r
+          break;\r
+        case 7883:\r
+          ret = 7882;\r
+          break;\r
+        case 7885:\r
+          ret = 7884;\r
+          break;\r
+        case 7887:\r
+          ret = 7886;\r
+          break;\r
+        case 7889:\r
+          ret = 7888;\r
+          break;\r
+        case 7891:\r
+          ret = 7890;\r
+          break;\r
+        case 7893:\r
+          ret = 7892;\r
+          break;\r
+        case 7895:\r
+          ret = 7894;\r
+          break;\r
+        case 7897:\r
+          ret = 7896;\r
+          break;\r
+        case 7899:\r
+          ret = 7898;\r
+          break;\r
+        case 7901:\r
+          ret = 7900;\r
+          break;\r
+        case 7903:\r
+          ret = 7902;\r
+          break;\r
+        case 7905:\r
+          ret = 7904;\r
+          break;\r
+        case 7907:\r
+          ret = 7906;\r
+          break;\r
+        case 7909:\r
+          ret = 7908;\r
+          break;\r
+        case 7911:\r
+          ret = 7910;\r
+          break;\r
+        case 7913:\r
+          ret = 7912;\r
+          break;\r
+        case 7915:\r
+          ret = 7914;\r
+          break;\r
+        case 7917:\r
+          ret = 7916;\r
+          break;\r
+        case 7919:\r
+          ret = 7918;\r
+          break;\r
+        case 7921:\r
+          ret = 7920;\r
+          break;\r
+        case 7923:\r
+          ret = 7922;\r
+          break;\r
+        case 7925:\r
+          ret = 7924;\r
+          break;\r
+        case 7927:\r
+          ret = 7926;\r
+          break;\r
+        case 7929:\r
+          ret = 7928;\r
+          break;\r
+        case 7936:\r
+          ret = 7944;\r
+          break;\r
+        case 7937:\r
+          ret = 7945;\r
+          break;\r
+        case 7938:\r
+          ret = 7946;\r
+          break;\r
+        case 7939:\r
+          ret = 7947;\r
+          break;\r
+        case 7940:\r
+          ret = 7948;\r
+          break;\r
+        case 7941:\r
+          ret = 7949;\r
+          break;\r
+        case 7942:\r
+          ret = 7950;\r
+          break;\r
+        case 7943:\r
+          ret = 7951;\r
+          break;\r
+        case 7952:\r
+          ret = 7960;\r
+          break;\r
+        case 7953:\r
+          ret = 7961;\r
+          break;\r
+        case 7954:\r
+          ret = 7962;\r
+          break;\r
+        case 7955:\r
+          ret = 7963;\r
+          break;\r
+        case 7956:\r
+          ret = 7964;\r
+          break;\r
+        case 7957:\r
+          ret = 7965;\r
+          break;\r
+        case 7968:\r
+          ret = 7976;\r
+          break;\r
+        case 7969:\r
+          ret = 7977;\r
+          break;\r
+        case 7970:\r
+          ret = 7978;\r
+          break;\r
+        case 7971:\r
+          ret = 7979;\r
+          break;\r
+        case 7972:\r
+          ret = 7980;\r
+          break;\r
+        case 7973:\r
+          ret = 7981;\r
+          break;\r
+        case 7974:\r
+          ret = 7982;\r
+          break;\r
+        case 7975:\r
+          ret = 7983;\r
+          break;\r
+        case 7984:\r
+          ret = 7992;\r
+          break;\r
+        case 7985:\r
+          ret = 7993;\r
+          break;\r
+        case 7986:\r
+          ret = 7994;\r
+          break;\r
+        case 7987:\r
+          ret = 7995;\r
+          break;\r
+        case 7988:\r
+          ret = 7996;\r
+          break;\r
+        case 7989:\r
+          ret = 7997;\r
+          break;\r
+        case 7990:\r
+          ret = 7998;\r
+          break;\r
+        case 7991:\r
+          ret = 7999;\r
+          break;\r
+        case 8000:\r
+          ret = 8008;\r
+          break;\r
+        case 8001:\r
+          ret = 8009;\r
+          break;\r
+        case 8002:\r
+          ret = 8010;\r
+          break;\r
+        case 8003:\r
+          ret = 8011;\r
+          break;\r
+        case 8004:\r
+          ret = 8012;\r
+          break;\r
+        case 8005:\r
+          ret = 8013;\r
+          break;\r
+        case 8017:\r
+          ret = 8025;\r
+          break;\r
+        case 8019:\r
+          ret = 8027;\r
+          break;\r
+        case 8021:\r
+          ret = 8029;\r
+          break;\r
+        case 8023:\r
+          ret = 8031;\r
+          break;\r
+        case 8032:\r
+          ret = 8040;\r
+          break;\r
+        case 8033:\r
+          ret = 8041;\r
+          break;\r
+        case 8034:\r
+          ret = 8042;\r
+          break;\r
+        case 8035:\r
+          ret = 8043;\r
+          break;\r
+        case 8036:\r
+          ret = 8044;\r
+          break;\r
+        case 8037:\r
+          ret = 8045;\r
+          break;\r
+        case 8038:\r
+          ret = 8046;\r
+          break;\r
+        case 8039:\r
+          ret = 8047;\r
+          break;\r
+        case 8048:\r
+          ret = 8122;\r
+          break;\r
+        case 8049:\r
+          ret = 8123;\r
+          break;\r
+        case 8050:\r
+          ret = 8136;\r
+          break;\r
+        case 8051:\r
+          ret = 8137;\r
+          break;\r
+        case 8052:\r
+          ret = 8138;\r
+          break;\r
+        case 8053:\r
+          ret = 8139;\r
+          break;\r
+        case 8054:\r
+          ret = 8154;\r
+          break;\r
+        case 8055:\r
+          ret = 8155;\r
+          break;\r
+        case 8056:\r
+          ret = 8184;\r
+          break;\r
+        case 8057:\r
+          ret = 8185;\r
+          break;\r
+        case 8058:\r
+          ret = 8170;\r
+          break;\r
+        case 8059:\r
+          ret = 8171;\r
+          break;\r
+        case 8060:\r
+          ret = 8186;\r
+          break;\r
+        case 8061:\r
+          ret = 8187;\r
+          break;\r
+        case 8064:\r
+          ret = 8072;\r
+          break;\r
+        case 8065:\r
+          ret = 8073;\r
+          break;\r
+        case 8066:\r
+          ret = 8074;\r
+          break;\r
+        case 8067:\r
+          ret = 8075;\r
+          break;\r
+        case 8068:\r
+          ret = 8076;\r
+          break;\r
+        case 8069:\r
+          ret = 8077;\r
+          break;\r
+        case 8070:\r
+          ret = 8078;\r
+          break;\r
+        case 8071:\r
+          ret = 8079;\r
+          break;\r
+        case 8080:\r
+          ret = 8088;\r
+          break;\r
+        case 8081:\r
+          ret = 8089;\r
+          break;\r
+        case 8082:\r
+          ret = 8090;\r
+          break;\r
+        case 8083:\r
+          ret = 8091;\r
+          break;\r
+        case 8084:\r
+          ret = 8092;\r
+          break;\r
+        case 8085:\r
+          ret = 8093;\r
+          break;\r
+        case 8086:\r
+          ret = 8094;\r
+          break;\r
+        case 8087:\r
+          ret = 8095;\r
+          break;\r
+        case 8096:\r
+          ret = 8104;\r
+          break;\r
+        case 8097:\r
+          ret = 8105;\r
+          break;\r
+        case 8098:\r
+          ret = 8106;\r
+          break;\r
+        case 8099:\r
+          ret = 8107;\r
+          break;\r
+        case 8100:\r
+          ret = 8108;\r
+          break;\r
+        case 8101:\r
+          ret = 8109;\r
+          break;\r
+        case 8102:\r
+          ret = 8110;\r
+          break;\r
+        case 8103:\r
+          ret = 8111;\r
+          break;\r
+        case 8112:\r
+          ret = 8120;\r
+          break;\r
+        case 8113:\r
+          ret = 8121;\r
+          break;\r
+        case 8115:\r
+          ret = 8124;\r
+          break;\r
+        case 8131:\r
+          ret = 8140;\r
+          break;\r
+        case 8144:\r
+          ret = 8152;\r
+          break;\r
+        case 8145:\r
+          ret = 8153;\r
+          break;\r
+        case 8160:\r
+          ret = 8168;\r
+          break;\r
+        case 8161:\r
+          ret = 8169;\r
+          break;\r
+        case 8165:\r
+          ret = 8172;\r
+          break;\r
+        case 8179:\r
+          ret = 8188;\r
+          break;\r
+        case 8560:\r
+          ret = 8544;\r
+          break;\r
+        case 8561:\r
+          ret = 8545;\r
+          break;\r
+        case 8562:\r
+          ret = 8546;\r
+          break;\r
+        case 8563:\r
+          ret = 8547;\r
+          break;\r
+        case 8564:\r
+          ret = 8548;\r
+          break;\r
+        case 8565:\r
+          ret = 8549;\r
+          break;\r
+        case 8566:\r
+          ret = 8550;\r
+          break;\r
+        case 8567:\r
+          ret = 8551;\r
+          break;\r
+        case 8568:\r
+          ret = 8552;\r
+          break;\r
+        case 8569:\r
+          ret = 8553;\r
+          break;\r
+        case 8570:\r
+          ret = 8554;\r
+          break;\r
+        case 8571:\r
+          ret = 8555;\r
+          break;\r
+        case 8572:\r
+          ret = 8556;\r
+          break;\r
+        case 8573:\r
+          ret = 8557;\r
+          break;\r
+        case 8574:\r
+          ret = 8558;\r
+          break;\r
+        case 8575:\r
+          ret = 8559;\r
+          break;\r
+        case 9424:\r
+          ret = 9398;\r
+          break;\r
+        case 9425:\r
+          ret = 9399;\r
+          break;\r
+        case 9426:\r
+          ret = 9400;\r
+          break;\r
+        case 9427:\r
+          ret = 9401;\r
+          break;\r
+        case 9428:\r
+          ret = 9402;\r
+          break;\r
+        case 9429:\r
+          ret = 9403;\r
+          break;\r
+        case 9430:\r
+          ret = 9404;\r
+          break;\r
+        case 9431:\r
+          ret = 9405;\r
+          break;\r
+        case 9432:\r
+          ret = 9406;\r
+          break;\r
+        case 9433:\r
+          ret = 9407;\r
+          break;\r
+        case 9434:\r
+          ret = 9408;\r
+          break;\r
+        case 9435:\r
+          ret = 9409;\r
+          break;\r
+        case 9436:\r
+          ret = 9410;\r
+          break;\r
+        case 9437:\r
+          ret = 9411;\r
+          break;\r
+        case 9438:\r
+          ret = 9412;\r
+          break;\r
+        case 9439:\r
+          ret = 9413;\r
+          break;\r
+        case 9440:\r
+          ret = 9414;\r
+          break;\r
+        case 9441:\r
+          ret = 9415;\r
+          break;\r
+        case 9442:\r
+          ret = 9416;\r
+          break;\r
+        case 9443:\r
+          ret = 9417;\r
+          break;\r
+        case 9444:\r
+          ret = 9418;\r
+          break;\r
+        case 9445:\r
+          ret = 9419;\r
+          break;\r
+        case 9446:\r
+          ret = 9420;\r
+          break;\r
+        case 9447:\r
+          ret = 9421;\r
+          break;\r
+        case 9448:\r
+          ret = 9422;\r
+          break;\r
+        case 9449:\r
+          ret = 9423;\r
+          break;\r
+        case 65345:\r
+          ret = 65313;\r
+          break;\r
+        case 65346:\r
+          ret = 65314;\r
+          break;\r
+        case 65347:\r
+          ret = 65315;\r
+          break;\r
+        case 65348:\r
+          ret = 65316;\r
+          break;\r
+        case 65349:\r
+          ret = 65317;\r
+          break;\r
+        case 65350:\r
+          ret = 65318;\r
+          break;\r
+        case 65351:\r
+          ret = 65319;\r
+          break;\r
+        case 65352:\r
+          ret = 65320;\r
+          break;\r
+        case 65353:\r
+          ret = 65321;\r
+          break;\r
+        case 65354:\r
+          ret = 65322;\r
+          break;\r
+        case 65355:\r
+          ret = 65323;\r
+          break;\r
+        case 65356:\r
+          ret = 65324;\r
+          break;\r
+        case 65357:\r
+          ret = 65325;\r
+          break;\r
+        case 65358:\r
+          ret = 65326;\r
+          break;\r
+        case 65359:\r
+          ret = 65327;\r
+          break;\r
+        case 65360:\r
+          ret = 65328;\r
+          break;\r
+        case 65361:\r
+          ret = 65329;\r
+          break;\r
+        case 65362:\r
+          ret = 65330;\r
+          break;\r
+        case 65363:\r
+          ret = 65331;\r
+          break;\r
+        case 65364:\r
+          ret = 65332;\r
+          break;\r
+        case 65365:\r
+          ret = 65333;\r
+          break;\r
+        case 65366:\r
+          ret = 65334;\r
+          break;\r
+        case 65367:\r
+          ret = 65335;\r
+          break;\r
+        case 65368:\r
+          ret = 65336;\r
+          break;\r
+        case 65369:\r
+          ret = 65337;\r
+          break;\r
+        case 65370:\r
+          ret = 65338;\r
+          break;\r
+      }\r
+      return (char) ret;\r
+    }\r
+    return Character.toUpperCase(c);\r
+  }\r
+\r
+  /** Convert a character to lower case. */\r
+  public static char toLowerCase(char c)\r
+  {\r
+    if (java_1_0)\r
+    {\r
+      int ret = (int) c;\r
+      switch (c)\r
+      {\r
+        case 65:\r
+          ret = 97;\r
+          break;\r
+        case 66:\r
+          ret = 98;\r
+          break;\r
+        case 67:\r
+          ret = 99;\r
+          break;\r
+        case 68:\r
+          ret = 100;\r
+          break;\r
+        case 69:\r
+          ret = 101;\r
+          break;\r
+        case 70:\r
+          ret = 102;\r
+          break;\r
+        case 71:\r
+          ret = 103;\r
+          break;\r
+        case 72:\r
+          ret = 104;\r
+          break;\r
+        case 73:\r
+          ret = 105;\r
+          break;\r
+        case 74:\r
+          ret = 106;\r
+          break;\r
+        case 75:\r
+          ret = 107;\r
+          break;\r
+        case 76:\r
+          ret = 108;\r
+          break;\r
+        case 77:\r
+          ret = 109;\r
+          break;\r
+        case 78:\r
+          ret = 110;\r
+          break;\r
+        case 79:\r
+          ret = 111;\r
+          break;\r
+        case 80:\r
+          ret = 112;\r
+          break;\r
+        case 81:\r
+          ret = 113;\r
+          break;\r
+        case 82:\r
+          ret = 114;\r
+          break;\r
+        case 83:\r
+          ret = 115;\r
+          break;\r
+        case 84:\r
+          ret = 116;\r
+          break;\r
+        case 85:\r
+          ret = 117;\r
+          break;\r
+        case 86:\r
+          ret = 118;\r
+          break;\r
+        case 87:\r
+          ret = 119;\r
+          break;\r
+        case 88:\r
+          ret = 120;\r
+          break;\r
+        case 89:\r
+          ret = 121;\r
+          break;\r
+        case 90:\r
+          ret = 122;\r
+          break;\r
+        case 192:\r
+          ret = 224;\r
+          break;\r
+        case 193:\r
+          ret = 225;\r
+          break;\r
+        case 194:\r
+          ret = 226;\r
+          break;\r
+        case 195:\r
+          ret = 227;\r
+          break;\r
+        case 196:\r
+          ret = 228;\r
+          break;\r
+        case 197:\r
+          ret = 229;\r
+          break;\r
+        case 198:\r
+          ret = 230;\r
+          break;\r
+        case 199:\r
+          ret = 231;\r
+          break;\r
+        case 200:\r
+          ret = 232;\r
+          break;\r
+        case 201:\r
+          ret = 233;\r
+          break;\r
+        case 202:\r
+          ret = 234;\r
+          break;\r
+        case 203:\r
+          ret = 235;\r
+          break;\r
+        case 204:\r
+          ret = 236;\r
+          break;\r
+        case 205:\r
+          ret = 237;\r
+          break;\r
+        case 206:\r
+          ret = 238;\r
+          break;\r
+        case 207:\r
+          ret = 239;\r
+          break;\r
+        case 208:\r
+          ret = 240;\r
+          break;\r
+        case 209:\r
+          ret = 241;\r
+          break;\r
+        case 210:\r
+          ret = 242;\r
+          break;\r
+        case 211:\r
+          ret = 243;\r
+          break;\r
+        case 212:\r
+          ret = 244;\r
+          break;\r
+        case 213:\r
+          ret = 245;\r
+          break;\r
+        case 214:\r
+          ret = 246;\r
+          break;\r
+        case 216:\r
+          ret = 248;\r
+          break;\r
+        case 217:\r
+          ret = 249;\r
+          break;\r
+        case 218:\r
+          ret = 250;\r
+          break;\r
+        case 219:\r
+          ret = 251;\r
+          break;\r
+        case 220:\r
+          ret = 252;\r
+          break;\r
+        case 221:\r
+          ret = 253;\r
+          break;\r
+        case 222:\r
+          ret = 254;\r
+          break;\r
+        case 256:\r
+          ret = 257;\r
+          break;\r
+        case 258:\r
+          ret = 259;\r
+          break;\r
+        case 260:\r
+          ret = 261;\r
+          break;\r
+        case 262:\r
+          ret = 263;\r
+          break;\r
+        case 264:\r
+          ret = 265;\r
+          break;\r
+        case 266:\r
+          ret = 267;\r
+          break;\r
+        case 268:\r
+          ret = 269;\r
+          break;\r
+        case 270:\r
+          ret = 271;\r
+          break;\r
+        case 272:\r
+          ret = 273;\r
+          break;\r
+        case 274:\r
+          ret = 275;\r
+          break;\r
+        case 276:\r
+          ret = 277;\r
+          break;\r
+        case 278:\r
+          ret = 279;\r
+          break;\r
+        case 280:\r
+          ret = 281;\r
+          break;\r
+        case 282:\r
+          ret = 283;\r
+          break;\r
+        case 284:\r
+          ret = 285;\r
+          break;\r
+        case 286:\r
+          ret = 287;\r
+          break;\r
+        case 288:\r
+          ret = 289;\r
+          break;\r
+        case 290:\r
+          ret = 291;\r
+          break;\r
+        case 292:\r
+          ret = 293;\r
+          break;\r
+        case 294:\r
+          ret = 295;\r
+          break;\r
+        case 296:\r
+          ret = 297;\r
+          break;\r
+        case 298:\r
+          ret = 299;\r
+          break;\r
+        case 300:\r
+          ret = 301;\r
+          break;\r
+        case 302:\r
+          ret = 303;\r
+          break;\r
+        case 304:\r
+          ret = 105;\r
+          break;\r
+        case 306:\r
+          ret = 307;\r
+          break;\r
+        case 308:\r
+          ret = 309;\r
+          break;\r
+        case 310:\r
+          ret = 311;\r
+          break;\r
+        case 313:\r
+          ret = 314;\r
+          break;\r
+        case 315:\r
+          ret = 316;\r
+          break;\r
+        case 317:\r
+          ret = 318;\r
+          break;\r
+        case 319:\r
+          ret = 320;\r
+          break;\r
+        case 321:\r
+          ret = 322;\r
+          break;\r
+        case 323:\r
+          ret = 324;\r
+          break;\r
+        case 325:\r
+          ret = 326;\r
+          break;\r
+        case 327:\r
+          ret = 328;\r
+          break;\r
+        case 330:\r
+          ret = 331;\r
+          break;\r
+        case 332:\r
+          ret = 333;\r
+          break;\r
+        case 334:\r
+          ret = 335;\r
+          break;\r
+        case 336:\r
+          ret = 337;\r
+          break;\r
+        case 338:\r
+          ret = 339;\r
+          break;\r
+        case 340:\r
+          ret = 341;\r
+          break;\r
+        case 342:\r
+          ret = 343;\r
+          break;\r
+        case 344:\r
+          ret = 345;\r
+          break;\r
+        case 346:\r
+          ret = 347;\r
+          break;\r
+        case 348:\r
+          ret = 349;\r
+          break;\r
+        case 350:\r
+          ret = 351;\r
+          break;\r
+        case 352:\r
+          ret = 353;\r
+          break;\r
+        case 354:\r
+          ret = 355;\r
+          break;\r
+        case 356:\r
+          ret = 357;\r
+          break;\r
+        case 358:\r
+          ret = 359;\r
+          break;\r
+        case 360:\r
+          ret = 361;\r
+          break;\r
+        case 362:\r
+          ret = 363;\r
+          break;\r
+        case 364:\r
+          ret = 365;\r
+          break;\r
+        case 366:\r
+          ret = 367;\r
+          break;\r
+        case 368:\r
+          ret = 369;\r
+          break;\r
+        case 370:\r
+          ret = 371;\r
+          break;\r
+        case 372:\r
+          ret = 373;\r
+          break;\r
+        case 374:\r
+          ret = 375;\r
+          break;\r
+        case 376:\r
+          ret = 255;\r
+          break;\r
+        case 377:\r
+          ret = 378;\r
+          break;\r
+        case 379:\r
+          ret = 380;\r
+          break;\r
+        case 381:\r
+          ret = 382;\r
+          break;\r
+        case 385:\r
+          ret = 595;\r
+          break;\r
+        case 386:\r
+          ret = 387;\r
+          break;\r
+        case 388:\r
+          ret = 389;\r
+          break;\r
+        case 390:\r
+          ret = 596;\r
+          break;\r
+        case 391:\r
+          ret = 392;\r
+          break;\r
+        case 393:\r
+          ret = 598;\r
+          break;\r
+        case 394:\r
+          ret = 599;\r
+          break;\r
+        case 395:\r
+          ret = 396;\r
+          break;\r
+        case 398:\r
+          ret = 600;\r
+          break;\r
+        case 399:\r
+          ret = 601;\r
+          break;\r
+        case 400:\r
+          ret = 603;\r
+          break;\r
+        case 401:\r
+          ret = 402;\r
+          break;\r
+        case 403:\r
+          ret = 608;\r
+          break;\r
+        case 404:\r
+          ret = 611;\r
+          break;\r
+        case 406:\r
+          ret = 617;\r
+          break;\r
+        case 407:\r
+          ret = 616;\r
+          break;\r
+        case 408:\r
+          ret = 409;\r
+          break;\r
+        case 412:\r
+          ret = 623;\r
+          break;\r
+        case 413:\r
+          ret = 626;\r
+          break;\r
+        case 416:\r
+          ret = 417;\r
+          break;\r
+        case 418:\r
+          ret = 419;\r
+          break;\r
+        case 420:\r
+          ret = 421;\r
+          break;\r
+        case 423:\r
+          ret = 424;\r
+          break;\r
+        case 425:\r
+          ret = 643;\r
+          break;\r
+        case 428:\r
+          ret = 429;\r
+          break;\r
+        case 430:\r
+          ret = 648;\r
+          break;\r
+        case 431:\r
+          ret = 432;\r
+          break;\r
+        case 433:\r
+          ret = 650;\r
+          break;\r
+        case 434:\r
+          ret = 651;\r
+          break;\r
+        case 435:\r
+          ret = 436;\r
+          break;\r
+        case 437:\r
+          ret = 438;\r
+          break;\r
+        case 439:\r
+          ret = 658;\r
+          break;\r
+        case 440:\r
+          ret = 441;\r
+          break;\r
+        case 444:\r
+          ret = 445;\r
+          break;\r
+        case 452:\r
+          ret = 454;\r
+          break;\r
+        case 453:\r
+          ret = 454;\r
+          break;\r
+        case 455:\r
+          ret = 457;\r
+          break;\r
+        case 456:\r
+          ret = 457;\r
+          break;\r
+        case 458:\r
+          ret = 460;\r
+          break;\r
+        case 459:\r
+          ret = 460;\r
+          break;\r
+        case 461:\r
+          ret = 462;\r
+          break;\r
+        case 463:\r
+          ret = 464;\r
+          break;\r
+        case 465:\r
+          ret = 466;\r
+          break;\r
+        case 467:\r
+          ret = 468;\r
+          break;\r
+        case 469:\r
+          ret = 470;\r
+          break;\r
+        case 471:\r
+          ret = 472;\r
+          break;\r
+        case 473:\r
+          ret = 474;\r
+          break;\r
+        case 475:\r
+          ret = 476;\r
+          break;\r
+        case 478:\r
+          ret = 479;\r
+          break;\r
+        case 480:\r
+          ret = 481;\r
+          break;\r
+        case 482:\r
+          ret = 483;\r
+          break;\r
+        case 484:\r
+          ret = 485;\r
+          break;\r
+        case 486:\r
+          ret = 487;\r
+          break;\r
+        case 488:\r
+          ret = 489;\r
+          break;\r
+        case 490:\r
+          ret = 491;\r
+          break;\r
+        case 492:\r
+          ret = 493;\r
+          break;\r
+        case 494:\r
+          ret = 495;\r
+          break;\r
+        case 497:\r
+          ret = 499;\r
+          break;\r
+        case 498:\r
+          ret = 499;\r
+          break;\r
+        case 500:\r
+          ret = 501;\r
+          break;\r
+        case 506:\r
+          ret = 507;\r
+          break;\r
+        case 508:\r
+          ret = 509;\r
+          break;\r
+        case 510:\r
+          ret = 511;\r
+          break;\r
+        case 512:\r
+          ret = 513;\r
+          break;\r
+        case 514:\r
+          ret = 515;\r
+          break;\r
+        case 516:\r
+          ret = 517;\r
+          break;\r
+        case 518:\r
+          ret = 519;\r
+          break;\r
+        case 520:\r
+          ret = 521;\r
+          break;\r
+        case 522:\r
+          ret = 523;\r
+          break;\r
+        case 524:\r
+          ret = 525;\r
+          break;\r
+        case 526:\r
+          ret = 527;\r
+          break;\r
+        case 528:\r
+          ret = 529;\r
+          break;\r
+        case 530:\r
+          ret = 531;\r
+          break;\r
+        case 532:\r
+          ret = 533;\r
+          break;\r
+        case 534:\r
+          ret = 535;\r
+          break;\r
+        case 902:\r
+          ret = 940;\r
+          break;\r
+        case 904:\r
+          ret = 941;\r
+          break;\r
+        case 905:\r
+          ret = 942;\r
+          break;\r
+        case 906:\r
+          ret = 943;\r
+          break;\r
+        case 908:\r
+          ret = 972;\r
+          break;\r
+        case 910:\r
+          ret = 973;\r
+          break;\r
+        case 911:\r
+          ret = 974;\r
+          break;\r
+        case 913:\r
+          ret = 945;\r
+          break;\r
+        case 914:\r
+          ret = 946;\r
+          break;\r
+        case 915:\r
+          ret = 947;\r
+          break;\r
+        case 916:\r
+          ret = 948;\r
+          break;\r
+        case 917:\r
+          ret = 949;\r
+          break;\r
+        case 918:\r
+          ret = 950;\r
+          break;\r
+        case 919:\r
+          ret = 951;\r
+          break;\r
+        case 920:\r
+          ret = 952;\r
+          break;\r
+        case 921:\r
+          ret = 953;\r
+          break;\r
+        case 922:\r
+          ret = 954;\r
+          break;\r
+        case 923:\r
+          ret = 955;\r
+          break;\r
+        case 924:\r
+          ret = 956;\r
+          break;\r
+        case 925:\r
+          ret = 957;\r
+          break;\r
+        case 926:\r
+          ret = 958;\r
+          break;\r
+        case 927:\r
+          ret = 959;\r
+          break;\r
+        case 928:\r
+          ret = 960;\r
+          break;\r
+        case 929:\r
+          ret = 961;\r
+          break;\r
+        case 931:\r
+          ret = 963;\r
+          break;\r
+        case 932:\r
+          ret = 964;\r
+          break;\r
+        case 933:\r
+          ret = 965;\r
+          break;\r
+        case 934:\r
+          ret = 966;\r
+          break;\r
+        case 935:\r
+          ret = 967;\r
+          break;\r
+        case 936:\r
+          ret = 968;\r
+          break;\r
+        case 937:\r
+          ret = 969;\r
+          break;\r
+        case 938:\r
+          ret = 970;\r
+          break;\r
+        case 939:\r
+          ret = 971;\r
+          break;\r
+        case 994:\r
+          ret = 995;\r
+          break;\r
+        case 996:\r
+          ret = 997;\r
+          break;\r
+        case 998:\r
+          ret = 999;\r
+          break;\r
+        case 1000:\r
+          ret = 1001;\r
+          break;\r
+        case 1002:\r
+          ret = 1003;\r
+          break;\r
+        case 1004:\r
+          ret = 1005;\r
+          break;\r
+        case 1006:\r
+          ret = 1007;\r
+          break;\r
+        case 1025:\r
+          ret = 1105;\r
+          break;\r
+        case 1026:\r
+          ret = 1106;\r
+          break;\r
+        case 1027:\r
+          ret = 1107;\r
+          break;\r
+        case 1028:\r
+          ret = 1108;\r
+          break;\r
+        case 1029:\r
+          ret = 1109;\r
+          break;\r
+        case 1030:\r
+          ret = 1110;\r
+          break;\r
+        case 1031:\r
+          ret = 1111;\r
+          break;\r
+        case 1032:\r
+          ret = 1112;\r
+          break;\r
+        case 1033:\r
+          ret = 1113;\r
+          break;\r
+        case 1034:\r
+          ret = 1114;\r
+          break;\r
+        case 1035:\r
+          ret = 1115;\r
+          break;\r
+        case 1036:\r
+          ret = 1116;\r
+          break;\r
+        case 1038:\r
+          ret = 1118;\r
+          break;\r
+        case 1039:\r
+          ret = 1119;\r
+          break;\r
+        case 1040:\r
+          ret = 1072;\r
+          break;\r
+        case 1041:\r
+          ret = 1073;\r
+          break;\r
+        case 1042:\r
+          ret = 1074;\r
+          break;\r
+        case 1043:\r
+          ret = 1075;\r
+          break;\r
+        case 1044:\r
+          ret = 1076;\r
+          break;\r
+        case 1045:\r
+          ret = 1077;\r
+          break;\r
+        case 1046:\r
+          ret = 1078;\r
+          break;\r
+        case 1047:\r
+          ret = 1079;\r
+          break;\r
+        case 1048:\r
+          ret = 1080;\r
+          break;\r
+        case 1049:\r
+          ret = 1081;\r
+          break;\r
+        case 1050:\r
+          ret = 1082;\r
+          break;\r
+        case 1051:\r
+          ret = 1083;\r
+          break;\r
+        case 1052:\r
+          ret = 1084;\r
+          break;\r
+        case 1053:\r
+          ret = 1085;\r
+          break;\r
+        case 1054:\r
+          ret = 1086;\r
+          break;\r
+        case 1055:\r
+          ret = 1087;\r
+          break;\r
+        case 1056:\r
+          ret = 1088;\r
+          break;\r
+        case 1057:\r
+          ret = 1089;\r
+          break;\r
+        case 1058:\r
+          ret = 1090;\r
+          break;\r
+        case 1059:\r
+          ret = 1091;\r
+          break;\r
+        case 1060:\r
+          ret = 1092;\r
+          break;\r
+        case 1061:\r
+          ret = 1093;\r
+          break;\r
+        case 1062:\r
+          ret = 1094;\r
+          break;\r
+        case 1063:\r
+          ret = 1095;\r
+          break;\r
+        case 1064:\r
+          ret = 1096;\r
+          break;\r
+        case 1065:\r
+          ret = 1097;\r
+          break;\r
+        case 1066:\r
+          ret = 1098;\r
+          break;\r
+        case 1067:\r
+          ret = 1099;\r
+          break;\r
+        case 1068:\r
+          ret = 1100;\r
+          break;\r
+        case 1069:\r
+          ret = 1101;\r
+          break;\r
+        case 1070:\r
+          ret = 1102;\r
+          break;\r
+        case 1071:\r
+          ret = 1103;\r
+          break;\r
+        case 1120:\r
+          ret = 1121;\r
+          break;\r
+        case 1122:\r
+          ret = 1123;\r
+          break;\r
+        case 1124:\r
+          ret = 1125;\r
+          break;\r
+        case 1126:\r
+          ret = 1127;\r
+          break;\r
+        case 1128:\r
+          ret = 1129;\r
+          break;\r
+        case 1130:\r
+          ret = 1131;\r
+          break;\r
+        case 1132:\r
+          ret = 1133;\r
+          break;\r
+        case 1134:\r
+          ret = 1135;\r
+          break;\r
+        case 1136:\r
+          ret = 1137;\r
+          break;\r
+        case 1138:\r
+          ret = 1139;\r
+          break;\r
+        case 1140:\r
+          ret = 1141;\r
+          break;\r
+        case 1142:\r
+          ret = 1143;\r
+          break;\r
+        case 1144:\r
+          ret = 1145;\r
+          break;\r
+        case 1146:\r
+          ret = 1147;\r
+          break;\r
+        case 1148:\r
+          ret = 1149;\r
+          break;\r
+        case 1150:\r
+          ret = 1151;\r
+          break;\r
+        case 1152:\r
+          ret = 1153;\r
+          break;\r
+        case 1168:\r
+          ret = 1169;\r
+          break;\r
+        case 1170:\r
+          ret = 1171;\r
+          break;\r
+        case 1172:\r
+          ret = 1173;\r
+          break;\r
+        case 1174:\r
+          ret = 1175;\r
+          break;\r
+        case 1176:\r
+          ret = 1177;\r
+          break;\r
+        case 1178:\r
+          ret = 1179;\r
+          break;\r
+        case 1180:\r
+          ret = 1181;\r
+          break;\r
+        case 1182:\r
+          ret = 1183;\r
+          break;\r
+        case 1184:\r
+          ret = 1185;\r
+          break;\r
+        case 1186:\r
+          ret = 1187;\r
+          break;\r
+        case 1188:\r
+          ret = 1189;\r
+          break;\r
+        case 1190:\r
+          ret = 1191;\r
+          break;\r
+        case 1192:\r
+          ret = 1193;\r
+          break;\r
+        case 1194:\r
+          ret = 1195;\r
+          break;\r
+        case 1196:\r
+          ret = 1197;\r
+          break;\r
+        case 1198:\r
+          ret = 1199;\r
+          break;\r
+        case 1200:\r
+          ret = 1201;\r
+          break;\r
+        case 1202:\r
+          ret = 1203;\r
+          break;\r
+        case 1204:\r
+          ret = 1205;\r
+          break;\r
+        case 1206:\r
+          ret = 1207;\r
+          break;\r
+        case 1208:\r
+          ret = 1209;\r
+          break;\r
+        case 1210:\r
+          ret = 1211;\r
+          break;\r
+        case 1212:\r
+          ret = 1213;\r
+          break;\r
+        case 1214:\r
+          ret = 1215;\r
+          break;\r
+        case 1217:\r
+          ret = 1218;\r
+          break;\r
+        case 1219:\r
+          ret = 1220;\r
+          break;\r
+        case 1223:\r
+          ret = 1224;\r
+          break;\r
+        case 1227:\r
+          ret = 1228;\r
+          break;\r
+        case 1232:\r
+          ret = 1233;\r
+          break;\r
+        case 1234:\r
+          ret = 1235;\r
+          break;\r
+        case 1236:\r
+          ret = 1237;\r
+          break;\r
+        case 1238:\r
+          ret = 1239;\r
+          break;\r
+        case 1240:\r
+          ret = 1241;\r
+          break;\r
+        case 1242:\r
+          ret = 1243;\r
+          break;\r
+        case 1244:\r
+          ret = 1245;\r
+          break;\r
+        case 1246:\r
+          ret = 1247;\r
+          break;\r
+        case 1248:\r
+          ret = 1249;\r
+          break;\r
+        case 1250:\r
+          ret = 1251;\r
+          break;\r
+        case 1252:\r
+          ret = 1253;\r
+          break;\r
+        case 1254:\r
+          ret = 1255;\r
+          break;\r
+        case 1256:\r
+          ret = 1257;\r
+          break;\r
+        case 1258:\r
+          ret = 1259;\r
+          break;\r
+        case 1262:\r
+          ret = 1263;\r
+          break;\r
+        case 1264:\r
+          ret = 1265;\r
+          break;\r
+        case 1266:\r
+          ret = 1267;\r
+          break;\r
+        case 1268:\r
+          ret = 1269;\r
+          break;\r
+        case 1272:\r
+          ret = 1273;\r
+          break;\r
+        case 1329:\r
+          ret = 1377;\r
+          break;\r
+        case 1330:\r
+          ret = 1378;\r
+          break;\r
+        case 1331:\r
+          ret = 1379;\r
+          break;\r
+        case 1332:\r
+          ret = 1380;\r
+          break;\r
+        case 1333:\r
+          ret = 1381;\r
+          break;\r
+        case 1334:\r
+          ret = 1382;\r
+          break;\r
+        case 1335:\r
+          ret = 1383;\r
+          break;\r
+        case 1336:\r
+          ret = 1384;\r
+          break;\r
+        case 1337:\r
+          ret = 1385;\r
+          break;\r
+        case 1338:\r
+          ret = 1386;\r
+          break;\r
+        case 1339:\r
+          ret = 1387;\r
+          break;\r
+        case 1340:\r
+          ret = 1388;\r
+          break;\r
+        case 1341:\r
+          ret = 1389;\r
+          break;\r
+        case 1342:\r
+          ret = 1390;\r
+          break;\r
+        case 1343:\r
+          ret = 1391;\r
+          break;\r
+        case 1344:\r
+          ret = 1392;\r
+          break;\r
+        case 1345:\r
+          ret = 1393;\r
+          break;\r
+        case 1346:\r
+          ret = 1394;\r
+          break;\r
+        case 1347:\r
+          ret = 1395;\r
+          break;\r
+        case 1348:\r
+          ret = 1396;\r
+          break;\r
+        case 1349:\r
+          ret = 1397;\r
+          break;\r
+        case 1350:\r
+          ret = 1398;\r
+          break;\r
+        case 1351:\r
+          ret = 1399;\r
+          break;\r
+        case 1352:\r
+          ret = 1400;\r
+          break;\r
+        case 1353:\r
+          ret = 1401;\r
+          break;\r
+        case 1354:\r
+          ret = 1402;\r
+          break;\r
+        case 1355:\r
+          ret = 1403;\r
+          break;\r
+        case 1356:\r
+          ret = 1404;\r
+          break;\r
+        case 1357:\r
+          ret = 1405;\r
+          break;\r
+        case 1358:\r
+          ret = 1406;\r
+          break;\r
+        case 1359:\r
+          ret = 1407;\r
+          break;\r
+        case 1360:\r
+          ret = 1408;\r
+          break;\r
+        case 1361:\r
+          ret = 1409;\r
+          break;\r
+        case 1362:\r
+          ret = 1410;\r
+          break;\r
+        case 1363:\r
+          ret = 1411;\r
+          break;\r
+        case 1364:\r
+          ret = 1412;\r
+          break;\r
+        case 1365:\r
+          ret = 1413;\r
+          break;\r
+        case 1366:\r
+          ret = 1414;\r
+          break;\r
+        case 4256:\r
+          ret = 4304;\r
+          break;\r
+        case 4257:\r
+          ret = 4305;\r
+          break;\r
+        case 4258:\r
+          ret = 4306;\r
+          break;\r
+        case 4259:\r
+          ret = 4307;\r
+          break;\r
+        case 4260:\r
+          ret = 4308;\r
+          break;\r
+        case 4261:\r
+          ret = 4309;\r
+          break;\r
+        case 4262:\r
+          ret = 4310;\r
+          break;\r
+        case 4263:\r
+          ret = 4311;\r
+          break;\r
+        case 4264:\r
+          ret = 4312;\r
+          break;\r
+        case 4265:\r
+          ret = 4313;\r
+          break;\r
+        case 4266:\r
+          ret = 4314;\r
+          break;\r
+        case 4267:\r
+          ret = 4315;\r
+          break;\r
+        case 4268:\r
+          ret = 4316;\r
+          break;\r
+        case 4269:\r
+          ret = 4317;\r
+          break;\r
+        case 4270:\r
+          ret = 4318;\r
+          break;\r
+        case 4271:\r
+          ret = 4319;\r
+          break;\r
+        case 4272:\r
+          ret = 4320;\r
+          break;\r
+        case 4273:\r
+          ret = 4321;\r
+          break;\r
+        case 4274:\r
+          ret = 4322;\r
+          break;\r
+        case 4275:\r
+          ret = 4323;\r
+          break;\r
+        case 4276:\r
+          ret = 4324;\r
+          break;\r
+        case 4277:\r
+          ret = 4325;\r
+          break;\r
+        case 4278:\r
+          ret = 4326;\r
+          break;\r
+        case 4279:\r
+          ret = 4327;\r
+          break;\r
+        case 4280:\r
+          ret = 4328;\r
+          break;\r
+        case 4281:\r
+          ret = 4329;\r
+          break;\r
+        case 4282:\r
+          ret = 4330;\r
+          break;\r
+        case 4283:\r
+          ret = 4331;\r
+          break;\r
+        case 4284:\r
+          ret = 4332;\r
+          break;\r
+        case 4285:\r
+          ret = 4333;\r
+          break;\r
+        case 4286:\r
+          ret = 4334;\r
+          break;\r
+        case 4287:\r
+          ret = 4335;\r
+          break;\r
+        case 4288:\r
+          ret = 4336;\r
+          break;\r
+        case 4289:\r
+          ret = 4337;\r
+          break;\r
+        case 4290:\r
+          ret = 4338;\r
+          break;\r
+        case 4291:\r
+          ret = 4339;\r
+          break;\r
+        case 4292:\r
+          ret = 4340;\r
+          break;\r
+        case 4293:\r
+          ret = 4341;\r
+          break;\r
+        case 7680:\r
+          ret = 7681;\r
+          break;\r
+        case 7682:\r
+          ret = 7683;\r
+          break;\r
+        case 7684:\r
+          ret = 7685;\r
+          break;\r
+        case 7686:\r
+          ret = 7687;\r
+          break;\r
+        case 7688:\r
+          ret = 7689;\r
+          break;\r
+        case 7690:\r
+          ret = 7691;\r
+          break;\r
+        case 7692:\r
+          ret = 7693;\r
+          break;\r
+        case 7694:\r
+          ret = 7695;\r
+          break;\r
+        case 7696:\r
+          ret = 7697;\r
+          break;\r
+        case 7698:\r
+          ret = 7699;\r
+          break;\r
+        case 7700:\r
+          ret = 7701;\r
+          break;\r
+        case 7702:\r
+          ret = 7703;\r
+          break;\r
+        case 7704:\r
+          ret = 7705;\r
+          break;\r
+        case 7706:\r
+          ret = 7707;\r
+          break;\r
+        case 7708:\r
+          ret = 7709;\r
+          break;\r
+        case 7710:\r
+          ret = 7711;\r
+          break;\r
+        case 7712:\r
+          ret = 7713;\r
+          break;\r
+        case 7714:\r
+          ret = 7715;\r
+          break;\r
+        case 7716:\r
+          ret = 7717;\r
+          break;\r
+        case 7718:\r
+          ret = 7719;\r
+          break;\r
+        case 7720:\r
+          ret = 7721;\r
+          break;\r
+        case 7722:\r
+          ret = 7723;\r
+          break;\r
+        case 7724:\r
+          ret = 7725;\r
+          break;\r
+        case 7726:\r
+          ret = 7727;\r
+          break;\r
+        case 7728:\r
+          ret = 7729;\r
+          break;\r
+        case 7730:\r
+          ret = 7731;\r
+          break;\r
+        case 7732:\r
+          ret = 7733;\r
+          break;\r
+        case 7734:\r
+          ret = 7735;\r
+          break;\r
+        case 7736:\r
+          ret = 7737;\r
+          break;\r
+        case 7738:\r
+          ret = 7739;\r
+          break;\r
+        case 7740:\r
+          ret = 7741;\r
+          break;\r
+        case 7742:\r
+          ret = 7743;\r
+          break;\r
+        case 7744:\r
+          ret = 7745;\r
+          break;\r
+        case 7746:\r
+          ret = 7747;\r
+          break;\r
+        case 7748:\r
+          ret = 7749;\r
+          break;\r
+        case 7750:\r
+          ret = 7751;\r
+          break;\r
+        case 7752:\r
+          ret = 7753;\r
+          break;\r
+        case 7754:\r
+          ret = 7755;\r
+          break;\r
+        case 7756:\r
+          ret = 7757;\r
+          break;\r
+        case 7758:\r
+          ret = 7759;\r
+          break;\r
+        case 7760:\r
+          ret = 7761;\r
+          break;\r
+        case 7762:\r
+          ret = 7763;\r
+          break;\r
+        case 7764:\r
+          ret = 7765;\r
+          break;\r
+        case 7766:\r
+          ret = 7767;\r
+          break;\r
+        case 7768:\r
+          ret = 7769;\r
+          break;\r
+        case 7770:\r
+          ret = 7771;\r
+          break;\r
+        case 7772:\r
+          ret = 7773;\r
+          break;\r
+        case 7774:\r
+          ret = 7775;\r
+          break;\r
+        case 7776:\r
+          ret = 7777;\r
+          break;\r
+        case 7778:\r
+          ret = 7779;\r
+          break;\r
+        case 7780:\r
+          ret = 7781;\r
+          break;\r
+        case 7782:\r
+          ret = 7783;\r
+          break;\r
+        case 7784:\r
+          ret = 7785;\r
+          break;\r
+        case 7786:\r
+          ret = 7787;\r
+          break;\r
+        case 7788:\r
+          ret = 7789;\r
+          break;\r
+        case 7790:\r
+          ret = 7791;\r
+          break;\r
+        case 7792:\r
+          ret = 7793;\r
+          break;\r
+        case 7794:\r
+          ret = 7795;\r
+          break;\r
+        case 7796:\r
+          ret = 7797;\r
+          break;\r
+        case 7798:\r
+          ret = 7799;\r
+          break;\r
+        case 7800:\r
+          ret = 7801;\r
+          break;\r
+        case 7802:\r
+          ret = 7803;\r
+          break;\r
+        case 7804:\r
+          ret = 7805;\r
+          break;\r
+        case 7806:\r
+          ret = 7807;\r
+          break;\r
+        case 7808:\r
+          ret = 7809;\r
+          break;\r
+        case 7810:\r
+          ret = 7811;\r
+          break;\r
+        case 7812:\r
+          ret = 7813;\r
+          break;\r
+        case 7814:\r
+          ret = 7815;\r
+          break;\r
+        case 7816:\r
+          ret = 7817;\r
+          break;\r
+        case 7818:\r
+          ret = 7819;\r
+          break;\r
+        case 7820:\r
+          ret = 7821;\r
+          break;\r
+        case 7822:\r
+          ret = 7823;\r
+          break;\r
+        case 7824:\r
+          ret = 7825;\r
+          break;\r
+        case 7826:\r
+          ret = 7827;\r
+          break;\r
+        case 7828:\r
+          ret = 7829;\r
+          break;\r
+        case 7840:\r
+          ret = 7841;\r
+          break;\r
+        case 7842:\r
+          ret = 7843;\r
+          break;\r
+        case 7844:\r
+          ret = 7845;\r
+          break;\r
+        case 7846:\r
+          ret = 7847;\r
+          break;\r
+        case 7848:\r
+          ret = 7849;\r
+          break;\r
+        case 7850:\r
+          ret = 7851;\r
+          break;\r
+        case 7852:\r
+          ret = 7853;\r
+          break;\r
+        case 7854:\r
+          ret = 7855;\r
+          break;\r
+        case 7856:\r
+          ret = 7857;\r
+          break;\r
+        case 7858:\r
+          ret = 7859;\r
+          break;\r
+        case 7860:\r
+          ret = 7861;\r
+          break;\r
+        case 7862:\r
+          ret = 7863;\r
+          break;\r
+        case 7864:\r
+          ret = 7865;\r
+          break;\r
+        case 7866:\r
+          ret = 7867;\r
+          break;\r
+        case 7868:\r
+          ret = 7869;\r
+          break;\r
+        case 7870:\r
+          ret = 7871;\r
+          break;\r
+        case 7872:\r
+          ret = 7873;\r
+          break;\r
+        case 7874:\r
+          ret = 7875;\r
+          break;\r
+        case 7876:\r
+          ret = 7877;\r
+          break;\r
+        case 7878:\r
+          ret = 7879;\r
+          break;\r
+        case 7880:\r
+          ret = 7881;\r
+          break;\r
+        case 7882:\r
+          ret = 7883;\r
+          break;\r
+        case 7884:\r
+          ret = 7885;\r
+          break;\r
+        case 7886:\r
+          ret = 7887;\r
+          break;\r
+        case 7888:\r
+          ret = 7889;\r
+          break;\r
+        case 7890:\r
+          ret = 7891;\r
+          break;\r
+        case 7892:\r
+          ret = 7893;\r
+          break;\r
+        case 7894:\r
+          ret = 7895;\r
+          break;\r
+        case 7896:\r
+          ret = 7897;\r
+          break;\r
+        case 7898:\r
+          ret = 7899;\r
+          break;\r
+        case 7900:\r
+          ret = 7901;\r
+          break;\r
+        case 7902:\r
+          ret = 7903;\r
+          break;\r
+        case 7904:\r
+          ret = 7905;\r
+          break;\r
+        case 7906:\r
+          ret = 7907;\r
+          break;\r
+        case 7908:\r
+          ret = 7909;\r
+          break;\r
+        case 7910:\r
+          ret = 7911;\r
+          break;\r
+        case 7912:\r
+          ret = 7913;\r
+          break;\r
+        case 7914:\r
+          ret = 7915;\r
+          break;\r
+        case 7916:\r
+          ret = 7917;\r
+          break;\r
+        case 7918:\r
+          ret = 7919;\r
+          break;\r
+        case 7920:\r
+          ret = 7921;\r
+          break;\r
+        case 7922:\r
+          ret = 7923;\r
+          break;\r
+        case 7924:\r
+          ret = 7925;\r
+          break;\r
+        case 7926:\r
+          ret = 7927;\r
+          break;\r
+        case 7928:\r
+          ret = 7929;\r
+          break;\r
+        case 7944:\r
+          ret = 7936;\r
+          break;\r
+        case 7945:\r
+          ret = 7937;\r
+          break;\r
+        case 7946:\r
+          ret = 7938;\r
+          break;\r
+        case 7947:\r
+          ret = 7939;\r
+          break;\r
+        case 7948:\r
+          ret = 7940;\r
+          break;\r
+        case 7949:\r
+          ret = 7941;\r
+          break;\r
+        case 7950:\r
+          ret = 7942;\r
+          break;\r
+        case 7951:\r
+          ret = 7943;\r
+          break;\r
+        case 7960:\r
+          ret = 7952;\r
+          break;\r
+        case 7961:\r
+          ret = 7953;\r
+          break;\r
+        case 7962:\r
+          ret = 7954;\r
+          break;\r
+        case 7963:\r
+          ret = 7955;\r
+          break;\r
+        case 7964:\r
+          ret = 7956;\r
+          break;\r
+        case 7965:\r
+          ret = 7957;\r
+          break;\r
+        case 7976:\r
+          ret = 7968;\r
+          break;\r
+        case 7977:\r
+          ret = 7969;\r
+          break;\r
+        case 7978:\r
+          ret = 7970;\r
+          break;\r
+        case 7979:\r
+          ret = 7971;\r
+          break;\r
+        case 7980:\r
+          ret = 7972;\r
+          break;\r
+        case 7981:\r
+          ret = 7973;\r
+          break;\r
+        case 7982:\r
+          ret = 7974;\r
+          break;\r
+        case 7983:\r
+          ret = 7975;\r
+          break;\r
+        case 7992:\r
+          ret = 7984;\r
+          break;\r
+        case 7993:\r
+          ret = 7985;\r
+          break;\r
+        case 7994:\r
+          ret = 7986;\r
+          break;\r
+        case 7995:\r
+          ret = 7987;\r
+          break;\r
+        case 7996:\r
+          ret = 7988;\r
+          break;\r
+        case 7997:\r
+          ret = 7989;\r
+          break;\r
+        case 7998:\r
+          ret = 7990;\r
+          break;\r
+        case 7999:\r
+          ret = 7991;\r
+          break;\r
+        case 8008:\r
+          ret = 8000;\r
+          break;\r
+        case 8009:\r
+          ret = 8001;\r
+          break;\r
+        case 8010:\r
+          ret = 8002;\r
+          break;\r
+        case 8011:\r
+          ret = 8003;\r
+          break;\r
+        case 8012:\r
+          ret = 8004;\r
+          break;\r
+        case 8013:\r
+          ret = 8005;\r
+          break;\r
+        case 8025:\r
+          ret = 8017;\r
+          break;\r
+        case 8027:\r
+          ret = 8019;\r
+          break;\r
+        case 8029:\r
+          ret = 8021;\r
+          break;\r
+        case 8031:\r
+          ret = 8023;\r
+          break;\r
+        case 8040:\r
+          ret = 8032;\r
+          break;\r
+        case 8041:\r
+          ret = 8033;\r
+          break;\r
+        case 8042:\r
+          ret = 8034;\r
+          break;\r
+        case 8043:\r
+          ret = 8035;\r
+          break;\r
+        case 8044:\r
+          ret = 8036;\r
+          break;\r
+        case 8045:\r
+          ret = 8037;\r
+          break;\r
+        case 8046:\r
+          ret = 8038;\r
+          break;\r
+        case 8047:\r
+          ret = 8039;\r
+          break;\r
+        case 8072:\r
+          ret = 8064;\r
+          break;\r
+        case 8073:\r
+          ret = 8065;\r
+          break;\r
+        case 8074:\r
+          ret = 8066;\r
+          break;\r
+        case 8075:\r
+          ret = 8067;\r
+          break;\r
+        case 8076:\r
+          ret = 8068;\r
+          break;\r
+        case 8077:\r
+          ret = 8069;\r
+          break;\r
+        case 8078:\r
+          ret = 8070;\r
+          break;\r
+        case 8079:\r
+          ret = 8071;\r
+          break;\r
+        case 8088:\r
+          ret = 8080;\r
+          break;\r
+        case 8089:\r
+          ret = 8081;\r
+          break;\r
+        case 8090:\r
+          ret = 8082;\r
+          break;\r
+        case 8091:\r
+          ret = 8083;\r
+          break;\r
+        case 8092:\r
+          ret = 8084;\r
+          break;\r
+        case 8093:\r
+          ret = 8085;\r
+          break;\r
+        case 8094:\r
+          ret = 8086;\r
+          break;\r
+        case 8095:\r
+          ret = 8087;\r
+          break;\r
+        case 8104:\r
+          ret = 8096;\r
+          break;\r
+        case 8105:\r
+          ret = 8097;\r
+          break;\r
+        case 8106:\r
+          ret = 8098;\r
+          break;\r
+        case 8107:\r
+          ret = 8099;\r
+          break;\r
+        case 8108:\r
+          ret = 8100;\r
+          break;\r
+        case 8109:\r
+          ret = 8101;\r
+          break;\r
+        case 8110:\r
+          ret = 8102;\r
+          break;\r
+        case 8111:\r
+          ret = 8103;\r
+          break;\r
+        case 8120:\r
+          ret = 8112;\r
+          break;\r
+        case 8121:\r
+          ret = 8113;\r
+          break;\r
+        case 8122:\r
+          ret = 8048;\r
+          break;\r
+        case 8123:\r
+          ret = 8049;\r
+          break;\r
+        case 8124:\r
+          ret = 8115;\r
+          break;\r
+        case 8136:\r
+          ret = 8050;\r
+          break;\r
+        case 8137:\r
+          ret = 8051;\r
+          break;\r
+        case 8138:\r
+          ret = 8052;\r
+          break;\r
+        case 8139:\r
+          ret = 8053;\r
+          break;\r
+        case 8140:\r
+          ret = 8131;\r
+          break;\r
+        case 8152:\r
+          ret = 8144;\r
+          break;\r
+        case 8153:\r
+          ret = 8145;\r
+          break;\r
+        case 8154:\r
+          ret = 8054;\r
+          break;\r
+        case 8155:\r
+          ret = 8055;\r
+          break;\r
+        case 8168:\r
+          ret = 8160;\r
+          break;\r
+        case 8169:\r
+          ret = 8161;\r
+          break;\r
+        case 8170:\r
+          ret = 8058;\r
+          break;\r
+        case 8171:\r
+          ret = 8059;\r
+          break;\r
+        case 8172:\r
+          ret = 8165;\r
+          break;\r
+        case 8184:\r
+          ret = 8056;\r
+          break;\r
+        case 8185:\r
+          ret = 8057;\r
+          break;\r
+        case 8186:\r
+          ret = 8060;\r
+          break;\r
+        case 8187:\r
+          ret = 8061;\r
+          break;\r
+        case 8188:\r
+          ret = 8179;\r
+          break;\r
+        case 8544:\r
+          ret = 8560;\r
+          break;\r
+        case 8545:\r
+          ret = 8561;\r
+          break;\r
+        case 8546:\r
+          ret = 8562;\r
+          break;\r
+        case 8547:\r
+          ret = 8563;\r
+          break;\r
+        case 8548:\r
+          ret = 8564;\r
+          break;\r
+        case 8549:\r
+          ret = 8565;\r
+          break;\r
+        case 8550:\r
+          ret = 8566;\r
+          break;\r
+        case 8551:\r
+          ret = 8567;\r
+          break;\r
+        case 8552:\r
+          ret = 8568;\r
+          break;\r
+        case 8553:\r
+          ret = 8569;\r
+          break;\r
+        case 8554:\r
+          ret = 8570;\r
+          break;\r
+        case 8555:\r
+          ret = 8571;\r
+          break;\r
+        case 8556:\r
+          ret = 8572;\r
+          break;\r
+        case 8557:\r
+          ret = 8573;\r
+          break;\r
+        case 8558:\r
+          ret = 8574;\r
+          break;\r
+        case 8559:\r
+          ret = 8575;\r
+          break;\r
+        case 9398:\r
+          ret = 9424;\r
+          break;\r
+        case 9399:\r
+          ret = 9425;\r
+          break;\r
+        case 9400:\r
+          ret = 9426;\r
+          break;\r
+        case 9401:\r
+          ret = 9427;\r
+          break;\r
+        case 9402:\r
+          ret = 9428;\r
+          break;\r
+        case 9403:\r
+          ret = 9429;\r
+          break;\r
+        case 9404:\r
+          ret = 9430;\r
+          break;\r
+        case 9405:\r
+          ret = 9431;\r
+          break;\r
+        case 9406:\r
+          ret = 9432;\r
+          break;\r
+        case 9407:\r
+          ret = 9433;\r
+          break;\r
+        case 9408:\r
+          ret = 9434;\r
+          break;\r
+        case 9409:\r
+          ret = 9435;\r
+          break;\r
+        case 9410:\r
+          ret = 9436;\r
+          break;\r
+        case 9411:\r
+          ret = 9437;\r
+          break;\r
+        case 9412:\r
+          ret = 9438;\r
+          break;\r
+        case 9413:\r
+          ret = 9439;\r
+          break;\r
+        case 9414:\r
+          ret = 9440;\r
+          break;\r
+        case 9415:\r
+          ret = 9441;\r
+          break;\r
+        case 9416:\r
+          ret = 9442;\r
+          break;\r
+        case 9417:\r
+          ret = 9443;\r
+          break;\r
+        case 9418:\r
+          ret = 9444;\r
+          break;\r
+        case 9419:\r
+          ret = 9445;\r
+          break;\r
+        case 9420:\r
+          ret = 9446;\r
+          break;\r
+        case 9421:\r
+          ret = 9447;\r
+          break;\r
+        case 9422:\r
+          ret = 9448;\r
+          break;\r
+        case 9423:\r
+          ret = 9449;\r
+          break;\r
+        case 65313:\r
+          ret = 65345;\r
+          break;\r
+        case 65314:\r
+          ret = 65346;\r
+          break;\r
+        case 65315:\r
+          ret = 65347;\r
+          break;\r
+        case 65316:\r
+          ret = 65348;\r
+          break;\r
+        case 65317:\r
+          ret = 65349;\r
+          break;\r
+        case 65318:\r
+          ret = 65350;\r
+          break;\r
+        case 65319:\r
+          ret = 65351;\r
+          break;\r
+        case 65320:\r
+          ret = 65352;\r
+          break;\r
+        case 65321:\r
+          ret = 65353;\r
+          break;\r
+        case 65322:\r
+          ret = 65354;\r
+          break;\r
+        case 65323:\r
+          ret = 65355;\r
+          break;\r
+        case 65324:\r
+          ret = 65356;\r
+          break;\r
+        case 65325:\r
+          ret = 65357;\r
+          break;\r
+        case 65326:\r
+          ret = 65358;\r
+          break;\r
+        case 65327:\r
+          ret = 65359;\r
+          break;\r
+        case 65328:\r
+          ret = 65360;\r
+          break;\r
+        case 65329:\r
+          ret = 65361;\r
+          break;\r
+        case 65330:\r
+          ret = 65362;\r
+          break;\r
+        case 65331:\r
+          ret = 65363;\r
+          break;\r
+        case 65332:\r
+          ret = 65364;\r
+          break;\r
+        case 65333:\r
+          ret = 65365;\r
+          break;\r
+        case 65334:\r
+          ret = 65366;\r
+          break;\r
+        case 65335:\r
+          ret = 65367;\r
+          break;\r
+        case 65336:\r
+          ret = 65368;\r
+          break;\r
+        case 65337:\r
+          ret = 65369;\r
+          break;\r
+        case 65338:\r
+          ret = 65370;\r
+          break;\r
+      }\r
+      return (char) ret;\r
+    }\r
+    return Character.toLowerCase(c);\r
+  }\r
+\r
+  /** Convert a String to title case. */\r
+  public static String toTitleCase(String s)\r
+  {\r
+    StringBuffer sb = new StringBuffer();\r
+    for (int i = 0; i < s.length(); i++)\r
+    {\r
+      sb.append(CaseMgr.toTitleCase(s.charAt(i)));\r
+    }\r
+    return sb.toString();\r
+  }\r
+\r
+  /** Convert a String to upper case. */\r
+  public static String toUpperCase(String s)\r
+  {\r
+    StringBuffer sb = new StringBuffer();\r
+    for (int i = 0; i < s.length(); i++)\r
+    {\r
+      sb.append(CaseMgr.toUpperCase(s.charAt(i)));\r
+    }\r
+    return sb.toString();\r
+  }\r
+\r
+  /** Convert a String to lower case. */\r
+  public static String toLowerCase(String s)\r
+  {\r
+    StringBuffer sb = new StringBuffer();\r
+    for (int i = 0; i < s.length(); i++)\r
+    {\r
+      sb.append(CaseMgr.toLowerCase(s.charAt(i)));\r
+    }\r
+    return sb.toString();\r
+  }\r
+\r
+  /** Convert a character to title case.*/\r
+  public static char toTitleCase(char c)\r
+  {\r
+    if (java_1_0)\r
+    {\r
+      int ret = (int) toUpperCase(c);\r
+      switch (c)\r
+      {\r
+        case 452:\r
+          ret = 453;\r
+          break;\r
+        case 453:\r
+          ret = 453;\r
+          break;\r
+        case 454:\r
+          ret = 453;\r
+          break;\r
+        case 455:\r
+          ret = 456;\r
+          break;\r
+        case 456:\r
+          ret = 456;\r
+          break;\r
+        case 457:\r
+          ret = 456;\r
+          break;\r
+        case 458:\r
+          ret = 459;\r
+          break;\r
+        case 459:\r
+          ret = 459;\r
+          break;\r
+        case 460:\r
+          ret = 459;\r
+          break;\r
+        case 497:\r
+          ret = 498;\r
+          break;\r
+        case 498:\r
+          ret = 498;\r
+          break;\r
+        case 499:\r
+          ret = 498;\r
+          break;\r
       }\r
-      return Character.toUpperCase(c);\r
+      return (char) ret;\r
+    }\r
+    return Character.toTitleCase(c);\r
+  }\r
+\r
+  /** Duplicates the regionMatches routine of String -- but\r
+      makes use of the definitions of upper, lower, and title\r
+      case in this class when ignoreCase is set. */\r
+  public static boolean regionMatches(StringLike s1,\r
+                                      boolean ign, int i1, StringLike s2,\r
+                                      int i2, int i3)\r
+  {\r
+    int itot = i2 + i3;\r
+    if (itot > s2.length() || i1 + i3 > s1.length())\r
+    {\r
+      return false;\r
     }\r
-    /** Convert a character to lower case. */\r
-    public static char toLowerCase(char c) {\r
-      if(java_1_0) {\r
-        int ret = (int)c;\r
-        switch(c) {\r
-        case 65: ret=97; break;\r
-        case 66: ret=98; break;\r
-        case 67: ret=99; break;\r
-        case 68: ret=100; break;\r
-        case 69: ret=101; break;\r
-        case 70: ret=102; break;\r
-        case 71: ret=103; break;\r
-        case 72: ret=104; break;\r
-        case 73: ret=105; break;\r
-        case 74: ret=106; break;\r
-        case 75: ret=107; break;\r
-        case 76: ret=108; break;\r
-        case 77: ret=109; break;\r
-        case 78: ret=110; break;\r
-        case 79: ret=111; break;\r
-        case 80: ret=112; break;\r
-        case 81: ret=113; break;\r
-        case 82: ret=114; break;\r
-        case 83: ret=115; break;\r
-        case 84: ret=116; break;\r
-        case 85: ret=117; break;\r
-        case 86: ret=118; break;\r
-        case 87: ret=119; break;\r
-        case 88: ret=120; break;\r
-        case 89: ret=121; break;\r
-        case 90: ret=122; break;\r
-        case 192: ret=224; break;\r
-        case 193: ret=225; break;\r
-        case 194: ret=226; break;\r
-        case 195: ret=227; break;\r
-        case 196: ret=228; break;\r
-        case 197: ret=229; break;\r
-        case 198: ret=230; break;\r
-        case 199: ret=231; break;\r
-        case 200: ret=232; break;\r
-        case 201: ret=233; break;\r
-        case 202: ret=234; break;\r
-        case 203: ret=235; break;\r
-        case 204: ret=236; break;\r
-        case 205: ret=237; break;\r
-        case 206: ret=238; break;\r
-        case 207: ret=239; break;\r
-        case 208: ret=240; break;\r
-        case 209: ret=241; break;\r
-        case 210: ret=242; break;\r
-        case 211: ret=243; break;\r
-        case 212: ret=244; break;\r
-        case 213: ret=245; break;\r
-        case 214: ret=246; break;\r
-        case 216: ret=248; break;\r
-        case 217: ret=249; break;\r
-        case 218: ret=250; break;\r
-        case 219: ret=251; break;\r
-        case 220: ret=252; break;\r
-        case 221: ret=253; break;\r
-        case 222: ret=254; break;\r
-        case 256: ret=257; break;\r
-        case 258: ret=259; break;\r
-        case 260: ret=261; break;\r
-        case 262: ret=263; break;\r
-        case 264: ret=265; break;\r
-        case 266: ret=267; break;\r
-        case 268: ret=269; break;\r
-        case 270: ret=271; break;\r
-        case 272: ret=273; break;\r
-        case 274: ret=275; break;\r
-        case 276: ret=277; break;\r
-        case 278: ret=279; break;\r
-        case 280: ret=281; break;\r
-        case 282: ret=283; break;\r
-        case 284: ret=285; break;\r
-        case 286: ret=287; break;\r
-        case 288: ret=289; break;\r
-        case 290: ret=291; break;\r
-        case 292: ret=293; break;\r
-        case 294: ret=295; break;\r
-        case 296: ret=297; break;\r
-        case 298: ret=299; break;\r
-        case 300: ret=301; break;\r
-        case 302: ret=303; break;\r
-        case 304: ret=105; break;\r
-        case 306: ret=307; break;\r
-        case 308: ret=309; break;\r
-        case 310: ret=311; break;\r
-        case 313: ret=314; break;\r
-        case 315: ret=316; break;\r
-        case 317: ret=318; break;\r
-        case 319: ret=320; break;\r
-        case 321: ret=322; break;\r
-        case 323: ret=324; break;\r
-        case 325: ret=326; break;\r
-        case 327: ret=328; break;\r
-        case 330: ret=331; break;\r
-        case 332: ret=333; break;\r
-        case 334: ret=335; break;\r
-        case 336: ret=337; break;\r
-        case 338: ret=339; break;\r
-        case 340: ret=341; break;\r
-        case 342: ret=343; break;\r
-        case 344: ret=345; break;\r
-        case 346: ret=347; break;\r
-        case 348: ret=349; break;\r
-        case 350: ret=351; break;\r
-        case 352: ret=353; break;\r
-        case 354: ret=355; break;\r
-        case 356: ret=357; break;\r
-        case 358: ret=359; break;\r
-        case 360: ret=361; break;\r
-        case 362: ret=363; break;\r
-        case 364: ret=365; break;\r
-        case 366: ret=367; break;\r
-        case 368: ret=369; break;\r
-        case 370: ret=371; break;\r
-        case 372: ret=373; break;\r
-        case 374: ret=375; break;\r
-        case 376: ret=255; break;\r
-        case 377: ret=378; break;\r
-        case 379: ret=380; break;\r
-        case 381: ret=382; break;\r
-        case 385: ret=595; break;\r
-        case 386: ret=387; break;\r
-        case 388: ret=389; break;\r
-        case 390: ret=596; break;\r
-        case 391: ret=392; break;\r
-        case 393: ret=598; break;\r
-        case 394: ret=599; break;\r
-        case 395: ret=396; break;\r
-        case 398: ret=600; break;\r
-        case 399: ret=601; break;\r
-        case 400: ret=603; break;\r
-        case 401: ret=402; break;\r
-        case 403: ret=608; break;\r
-        case 404: ret=611; break;\r
-        case 406: ret=617; break;\r
-        case 407: ret=616; break;\r
-        case 408: ret=409; break;\r
-        case 412: ret=623; break;\r
-        case 413: ret=626; break;\r
-        case 416: ret=417; break;\r
-        case 418: ret=419; break;\r
-        case 420: ret=421; break;\r
-        case 423: ret=424; break;\r
-        case 425: ret=643; break;\r
-        case 428: ret=429; break;\r
-        case 430: ret=648; break;\r
-        case 431: ret=432; break;\r
-        case 433: ret=650; break;\r
-        case 434: ret=651; break;\r
-        case 435: ret=436; break;\r
-        case 437: ret=438; break;\r
-        case 439: ret=658; break;\r
-        case 440: ret=441; break;\r
-        case 444: ret=445; break;\r
-        case 452: ret=454; break;\r
-        case 453: ret=454; break;\r
-        case 455: ret=457; break;\r
-        case 456: ret=457; break;\r
-        case 458: ret=460; break;\r
-        case 459: ret=460; break;\r
-        case 461: ret=462; break;\r
-        case 463: ret=464; break;\r
-        case 465: ret=466; break;\r
-        case 467: ret=468; break;\r
-        case 469: ret=470; break;\r
-        case 471: ret=472; break;\r
-        case 473: ret=474; break;\r
-        case 475: ret=476; break;\r
-        case 478: ret=479; break;\r
-        case 480: ret=481; break;\r
-        case 482: ret=483; break;\r
-        case 484: ret=485; break;\r
-        case 486: ret=487; break;\r
-        case 488: ret=489; break;\r
-        case 490: ret=491; break;\r
-        case 492: ret=493; break;\r
-        case 494: ret=495; break;\r
-        case 497: ret=499; break;\r
-        case 498: ret=499; break;\r
-        case 500: ret=501; break;\r
-        case 506: ret=507; break;\r
-        case 508: ret=509; break;\r
-        case 510: ret=511; break;\r
-        case 512: ret=513; break;\r
-        case 514: ret=515; break;\r
-        case 516: ret=517; break;\r
-        case 518: ret=519; break;\r
-        case 520: ret=521; break;\r
-        case 522: ret=523; break;\r
-        case 524: ret=525; break;\r
-        case 526: ret=527; break;\r
-        case 528: ret=529; break;\r
-        case 530: ret=531; break;\r
-        case 532: ret=533; break;\r
-        case 534: ret=535; break;\r
-        case 902: ret=940; break;\r
-        case 904: ret=941; break;\r
-        case 905: ret=942; break;\r
-        case 906: ret=943; break;\r
-        case 908: ret=972; break;\r
-        case 910: ret=973; break;\r
-        case 911: ret=974; break;\r
-        case 913: ret=945; break;\r
-        case 914: ret=946; break;\r
-        case 915: ret=947; break;\r
-        case 916: ret=948; break;\r
-        case 917: ret=949; break;\r
-        case 918: ret=950; break;\r
-        case 919: ret=951; break;\r
-        case 920: ret=952; break;\r
-        case 921: ret=953; break;\r
-        case 922: ret=954; break;\r
-        case 923: ret=955; break;\r
-        case 924: ret=956; break;\r
-        case 925: ret=957; break;\r
-        case 926: ret=958; break;\r
-        case 927: ret=959; break;\r
-        case 928: ret=960; break;\r
-        case 929: ret=961; break;\r
-        case 931: ret=963; break;\r
-        case 932: ret=964; break;\r
-        case 933: ret=965; break;\r
-        case 934: ret=966; break;\r
-        case 935: ret=967; break;\r
-        case 936: ret=968; break;\r
-        case 937: ret=969; break;\r
-        case 938: ret=970; break;\r
-        case 939: ret=971; break;\r
-        case 994: ret=995; break;\r
-        case 996: ret=997; break;\r
-        case 998: ret=999; break;\r
-        case 1000: ret=1001; break;\r
-        case 1002: ret=1003; break;\r
-        case 1004: ret=1005; break;\r
-        case 1006: ret=1007; break;\r
-        case 1025: ret=1105; break;\r
-        case 1026: ret=1106; break;\r
-        case 1027: ret=1107; break;\r
-        case 1028: ret=1108; break;\r
-        case 1029: ret=1109; break;\r
-        case 1030: ret=1110; break;\r
-        case 1031: ret=1111; break;\r
-        case 1032: ret=1112; break;\r
-        case 1033: ret=1113; break;\r
-        case 1034: ret=1114; break;\r
-        case 1035: ret=1115; break;\r
-        case 1036: ret=1116; break;\r
-        case 1038: ret=1118; break;\r
-        case 1039: ret=1119; break;\r
-        case 1040: ret=1072; break;\r
-        case 1041: ret=1073; break;\r
-        case 1042: ret=1074; break;\r
-        case 1043: ret=1075; break;\r
-        case 1044: ret=1076; break;\r
-        case 1045: ret=1077; break;\r
-        case 1046: ret=1078; break;\r
-        case 1047: ret=1079; break;\r
-        case 1048: ret=1080; break;\r
-        case 1049: ret=1081; break;\r
-        case 1050: ret=1082; break;\r
-        case 1051: ret=1083; break;\r
-        case 1052: ret=1084; break;\r
-        case 1053: ret=1085; break;\r
-        case 1054: ret=1086; break;\r
-        case 1055: ret=1087; break;\r
-        case 1056: ret=1088; break;\r
-        case 1057: ret=1089; break;\r
-        case 1058: ret=1090; break;\r
-        case 1059: ret=1091; break;\r
-        case 1060: ret=1092; break;\r
-        case 1061: ret=1093; break;\r
-        case 1062: ret=1094; break;\r
-        case 1063: ret=1095; break;\r
-        case 1064: ret=1096; break;\r
-        case 1065: ret=1097; break;\r
-        case 1066: ret=1098; break;\r
-        case 1067: ret=1099; break;\r
-        case 1068: ret=1100; break;\r
-        case 1069: ret=1101; break;\r
-        case 1070: ret=1102; break;\r
-        case 1071: ret=1103; break;\r
-        case 1120: ret=1121; break;\r
-        case 1122: ret=1123; break;\r
-        case 1124: ret=1125; break;\r
-        case 1126: ret=1127; break;\r
-        case 1128: ret=1129; break;\r
-        case 1130: ret=1131; break;\r
-        case 1132: ret=1133; break;\r
-        case 1134: ret=1135; break;\r
-        case 1136: ret=1137; break;\r
-        case 1138: ret=1139; break;\r
-        case 1140: ret=1141; break;\r
-        case 1142: ret=1143; break;\r
-        case 1144: ret=1145; break;\r
-        case 1146: ret=1147; break;\r
-        case 1148: ret=1149; break;\r
-        case 1150: ret=1151; break;\r
-        case 1152: ret=1153; break;\r
-        case 1168: ret=1169; break;\r
-        case 1170: ret=1171; break;\r
-        case 1172: ret=1173; break;\r
-        case 1174: ret=1175; break;\r
-        case 1176: ret=1177; break;\r
-        case 1178: ret=1179; break;\r
-        case 1180: ret=1181; break;\r
-        case 1182: ret=1183; break;\r
-        case 1184: ret=1185; break;\r
-        case 1186: ret=1187; break;\r
-        case 1188: ret=1189; break;\r
-        case 1190: ret=1191; break;\r
-        case 1192: ret=1193; break;\r
-        case 1194: ret=1195; break;\r
-        case 1196: ret=1197; break;\r
-        case 1198: ret=1199; break;\r
-        case 1200: ret=1201; break;\r
-        case 1202: ret=1203; break;\r
-        case 1204: ret=1205; break;\r
-        case 1206: ret=1207; break;\r
-        case 1208: ret=1209; break;\r
-        case 1210: ret=1211; break;\r
-        case 1212: ret=1213; break;\r
-        case 1214: ret=1215; break;\r
-        case 1217: ret=1218; break;\r
-        case 1219: ret=1220; break;\r
-        case 1223: ret=1224; break;\r
-        case 1227: ret=1228; break;\r
-        case 1232: ret=1233; break;\r
-        case 1234: ret=1235; break;\r
-        case 1236: ret=1237; break;\r
-        case 1238: ret=1239; break;\r
-        case 1240: ret=1241; break;\r
-        case 1242: ret=1243; break;\r
-        case 1244: ret=1245; break;\r
-        case 1246: ret=1247; break;\r
-        case 1248: ret=1249; break;\r
-        case 1250: ret=1251; break;\r
-        case 1252: ret=1253; break;\r
-        case 1254: ret=1255; break;\r
-        case 1256: ret=1257; break;\r
-        case 1258: ret=1259; break;\r
-        case 1262: ret=1263; break;\r
-        case 1264: ret=1265; break;\r
-        case 1266: ret=1267; break;\r
-        case 1268: ret=1269; break;\r
-        case 1272: ret=1273; break;\r
-        case 1329: ret=1377; break;\r
-        case 1330: ret=1378; break;\r
-        case 1331: ret=1379; break;\r
-        case 1332: ret=1380; break;\r
-        case 1333: ret=1381; break;\r
-        case 1334: ret=1382; break;\r
-        case 1335: ret=1383; break;\r
-        case 1336: ret=1384; break;\r
-        case 1337: ret=1385; break;\r
-        case 1338: ret=1386; break;\r
-        case 1339: ret=1387; break;\r
-        case 1340: ret=1388; break;\r
-        case 1341: ret=1389; break;\r
-        case 1342: ret=1390; break;\r
-        case 1343: ret=1391; break;\r
-        case 1344: ret=1392; break;\r
-        case 1345: ret=1393; break;\r
-        case 1346: ret=1394; break;\r
-        case 1347: ret=1395; break;\r
-        case 1348: ret=1396; break;\r
-        case 1349: ret=1397; break;\r
-        case 1350: ret=1398; break;\r
-        case 1351: ret=1399; break;\r
-        case 1352: ret=1400; break;\r
-        case 1353: ret=1401; break;\r
-        case 1354: ret=1402; break;\r
-        case 1355: ret=1403; break;\r
-        case 1356: ret=1404; break;\r
-        case 1357: ret=1405; break;\r
-        case 1358: ret=1406; break;\r
-        case 1359: ret=1407; break;\r
-        case 1360: ret=1408; break;\r
-        case 1361: ret=1409; break;\r
-        case 1362: ret=1410; break;\r
-        case 1363: ret=1411; break;\r
-        case 1364: ret=1412; break;\r
-        case 1365: ret=1413; break;\r
-        case 1366: ret=1414; break;\r
-        case 4256: ret=4304; break;\r
-        case 4257: ret=4305; break;\r
-        case 4258: ret=4306; break;\r
-        case 4259: ret=4307; break;\r
-        case 4260: ret=4308; break;\r
-        case 4261: ret=4309; break;\r
-        case 4262: ret=4310; break;\r
-        case 4263: ret=4311; break;\r
-        case 4264: ret=4312; break;\r
-        case 4265: ret=4313; break;\r
-        case 4266: ret=4314; break;\r
-        case 4267: ret=4315; break;\r
-        case 4268: ret=4316; break;\r
-        case 4269: ret=4317; break;\r
-        case 4270: ret=4318; break;\r
-        case 4271: ret=4319; break;\r
-        case 4272: ret=4320; break;\r
-        case 4273: ret=4321; break;\r
-        case 4274: ret=4322; break;\r
-        case 4275: ret=4323; break;\r
-        case 4276: ret=4324; break;\r
-        case 4277: ret=4325; break;\r
-        case 4278: ret=4326; break;\r
-        case 4279: ret=4327; break;\r
-        case 4280: ret=4328; break;\r
-        case 4281: ret=4329; break;\r
-        case 4282: ret=4330; break;\r
-        case 4283: ret=4331; break;\r
-        case 4284: ret=4332; break;\r
-        case 4285: ret=4333; break;\r
-        case 4286: ret=4334; break;\r
-        case 4287: ret=4335; break;\r
-        case 4288: ret=4336; break;\r
-        case 4289: ret=4337; break;\r
-        case 4290: ret=4338; break;\r
-        case 4291: ret=4339; break;\r
-        case 4292: ret=4340; break;\r
-        case 4293: ret=4341; break;\r
-        case 7680: ret=7681; break;\r
-        case 7682: ret=7683; break;\r
-        case 7684: ret=7685; break;\r
-        case 7686: ret=7687; break;\r
-        case 7688: ret=7689; break;\r
-        case 7690: ret=7691; break;\r
-        case 7692: ret=7693; break;\r
-        case 7694: ret=7695; break;\r
-        case 7696: ret=7697; break;\r
-        case 7698: ret=7699; break;\r
-        case 7700: ret=7701; break;\r
-        case 7702: ret=7703; break;\r
-        case 7704: ret=7705; break;\r
-        case 7706: ret=7707; break;\r
-        case 7708: ret=7709; break;\r
-        case 7710: ret=7711; break;\r
-        case 7712: ret=7713; break;\r
-        case 7714: ret=7715; break;\r
-        case 7716: ret=7717; break;\r
-        case 7718: ret=7719; break;\r
-        case 7720: ret=7721; break;\r
-        case 7722: ret=7723; break;\r
-        case 7724: ret=7725; break;\r
-        case 7726: ret=7727; break;\r
-        case 7728: ret=7729; break;\r
-        case 7730: ret=7731; break;\r
-        case 7732: ret=7733; break;\r
-        case 7734: ret=7735; break;\r
-        case 7736: ret=7737; break;\r
-        case 7738: ret=7739; break;\r
-        case 7740: ret=7741; break;\r
-        case 7742: ret=7743; break;\r
-        case 7744: ret=7745; break;\r
-        case 7746: ret=7747; break;\r
-        case 7748: ret=7749; break;\r
-        case 7750: ret=7751; break;\r
-        case 7752: ret=7753; break;\r
-        case 7754: ret=7755; break;\r
-        case 7756: ret=7757; break;\r
-        case 7758: ret=7759; break;\r
-        case 7760: ret=7761; break;\r
-        case 7762: ret=7763; break;\r
-        case 7764: ret=7765; break;\r
-        case 7766: ret=7767; break;\r
-        case 7768: ret=7769; break;\r
-        case 7770: ret=7771; break;\r
-        case 7772: ret=7773; break;\r
-        case 7774: ret=7775; break;\r
-        case 7776: ret=7777; break;\r
-        case 7778: ret=7779; break;\r
-        case 7780: ret=7781; break;\r
-        case 7782: ret=7783; break;\r
-        case 7784: ret=7785; break;\r
-        case 7786: ret=7787; break;\r
-        case 7788: ret=7789; break;\r
-        case 7790: ret=7791; break;\r
-        case 7792: ret=7793; break;\r
-        case 7794: ret=7795; break;\r
-        case 7796: ret=7797; break;\r
-        case 7798: ret=7799; break;\r
-        case 7800: ret=7801; break;\r
-        case 7802: ret=7803; break;\r
-        case 7804: ret=7805; break;\r
-        case 7806: ret=7807; break;\r
-        case 7808: ret=7809; break;\r
-        case 7810: ret=7811; break;\r
-        case 7812: ret=7813; break;\r
-        case 7814: ret=7815; break;\r
-        case 7816: ret=7817; break;\r
-        case 7818: ret=7819; break;\r
-        case 7820: ret=7821; break;\r
-        case 7822: ret=7823; break;\r
-        case 7824: ret=7825; break;\r
-        case 7826: ret=7827; break;\r
-        case 7828: ret=7829; break;\r
-        case 7840: ret=7841; break;\r
-        case 7842: ret=7843; break;\r
-        case 7844: ret=7845; break;\r
-        case 7846: ret=7847; break;\r
-        case 7848: ret=7849; break;\r
-        case 7850: ret=7851; break;\r
-        case 7852: ret=7853; break;\r
-        case 7854: ret=7855; break;\r
-        case 7856: ret=7857; break;\r
-        case 7858: ret=7859; break;\r
-        case 7860: ret=7861; break;\r
-        case 7862: ret=7863; break;\r
-        case 7864: ret=7865; break;\r
-        case 7866: ret=7867; break;\r
-        case 7868: ret=7869; break;\r
-        case 7870: ret=7871; break;\r
-        case 7872: ret=7873; break;\r
-        case 7874: ret=7875; break;\r
-        case 7876: ret=7877; break;\r
-        case 7878: ret=7879; break;\r
-        case 7880: ret=7881; break;\r
-        case 7882: ret=7883; break;\r
-        case 7884: ret=7885; break;\r
-        case 7886: ret=7887; break;\r
-        case 7888: ret=7889; break;\r
-        case 7890: ret=7891; break;\r
-        case 7892: ret=7893; break;\r
-        case 7894: ret=7895; break;\r
-        case 7896: ret=7897; break;\r
-        case 7898: ret=7899; break;\r
-        case 7900: ret=7901; break;\r
-        case 7902: ret=7903; break;\r
-        case 7904: ret=7905; break;\r
-        case 7906: ret=7907; break;\r
-        case 7908: ret=7909; break;\r
-        case 7910: ret=7911; break;\r
-        case 7912: ret=7913; break;\r
-        case 7914: ret=7915; break;\r
-        case 7916: ret=7917; break;\r
-        case 7918: ret=7919; break;\r
-        case 7920: ret=7921; break;\r
-        case 7922: ret=7923; break;\r
-        case 7924: ret=7925; break;\r
-        case 7926: ret=7927; break;\r
-        case 7928: ret=7929; break;\r
-        case 7944: ret=7936; break;\r
-        case 7945: ret=7937; break;\r
-        case 7946: ret=7938; break;\r
-        case 7947: ret=7939; break;\r
-        case 7948: ret=7940; break;\r
-        case 7949: ret=7941; break;\r
-        case 7950: ret=7942; break;\r
-        case 7951: ret=7943; break;\r
-        case 7960: ret=7952; break;\r
-        case 7961: ret=7953; break;\r
-        case 7962: ret=7954; break;\r
-        case 7963: ret=7955; break;\r
-        case 7964: ret=7956; break;\r
-        case 7965: ret=7957; break;\r
-        case 7976: ret=7968; break;\r
-        case 7977: ret=7969; break;\r
-        case 7978: ret=7970; break;\r
-        case 7979: ret=7971; break;\r
-        case 7980: ret=7972; break;\r
-        case 7981: ret=7973; break;\r
-        case 7982: ret=7974; break;\r
-        case 7983: ret=7975; break;\r
-        case 7992: ret=7984; break;\r
-        case 7993: ret=7985; break;\r
-        case 7994: ret=7986; break;\r
-        case 7995: ret=7987; break;\r
-        case 7996: ret=7988; break;\r
-        case 7997: ret=7989; break;\r
-        case 7998: ret=7990; break;\r
-        case 7999: ret=7991; break;\r
-        case 8008: ret=8000; break;\r
-        case 8009: ret=8001; break;\r
-        case 8010: ret=8002; break;\r
-        case 8011: ret=8003; break;\r
-        case 8012: ret=8004; break;\r
-        case 8013: ret=8005; break;\r
-        case 8025: ret=8017; break;\r
-        case 8027: ret=8019; break;\r
-        case 8029: ret=8021; break;\r
-        case 8031: ret=8023; break;\r
-        case 8040: ret=8032; break;\r
-        case 8041: ret=8033; break;\r
-        case 8042: ret=8034; break;\r
-        case 8043: ret=8035; break;\r
-        case 8044: ret=8036; break;\r
-        case 8045: ret=8037; break;\r
-        case 8046: ret=8038; break;\r
-        case 8047: ret=8039; break;\r
-        case 8072: ret=8064; break;\r
-        case 8073: ret=8065; break;\r
-        case 8074: ret=8066; break;\r
-        case 8075: ret=8067; break;\r
-        case 8076: ret=8068; break;\r
-        case 8077: ret=8069; break;\r
-        case 8078: ret=8070; break;\r
-        case 8079: ret=8071; break;\r
-        case 8088: ret=8080; break;\r
-        case 8089: ret=8081; break;\r
-        case 8090: ret=8082; break;\r
-        case 8091: ret=8083; break;\r
-        case 8092: ret=8084; break;\r
-        case 8093: ret=8085; break;\r
-        case 8094: ret=8086; break;\r
-        case 8095: ret=8087; break;\r
-        case 8104: ret=8096; break;\r
-        case 8105: ret=8097; break;\r
-        case 8106: ret=8098; break;\r
-        case 8107: ret=8099; break;\r
-        case 8108: ret=8100; break;\r
-        case 8109: ret=8101; break;\r
-        case 8110: ret=8102; break;\r
-        case 8111: ret=8103; break;\r
-        case 8120: ret=8112; break;\r
-        case 8121: ret=8113; break;\r
-        case 8122: ret=8048; break;\r
-        case 8123: ret=8049; break;\r
-        case 8124: ret=8115; break;\r
-        case 8136: ret=8050; break;\r
-        case 8137: ret=8051; break;\r
-        case 8138: ret=8052; break;\r
-        case 8139: ret=8053; break;\r
-        case 8140: ret=8131; break;\r
-        case 8152: ret=8144; break;\r
-        case 8153: ret=8145; break;\r
-        case 8154: ret=8054; break;\r
-        case 8155: ret=8055; break;\r
-        case 8168: ret=8160; break;\r
-        case 8169: ret=8161; break;\r
-        case 8170: ret=8058; break;\r
-        case 8171: ret=8059; break;\r
-        case 8172: ret=8165; break;\r
-        case 8184: ret=8056; break;\r
-        case 8185: ret=8057; break;\r
-        case 8186: ret=8060; break;\r
-        case 8187: ret=8061; break;\r
-        case 8188: ret=8179; break;\r
-        case 8544: ret=8560; break;\r
-        case 8545: ret=8561; break;\r
-        case 8546: ret=8562; break;\r
-        case 8547: ret=8563; break;\r
-        case 8548: ret=8564; break;\r
-        case 8549: ret=8565; break;\r
-        case 8550: ret=8566; break;\r
-        case 8551: ret=8567; break;\r
-        case 8552: ret=8568; break;\r
-        case 8553: ret=8569; break;\r
-        case 8554: ret=8570; break;\r
-        case 8555: ret=8571; break;\r
-        case 8556: ret=8572; break;\r
-        case 8557: ret=8573; break;\r
-        case 8558: ret=8574; break;\r
-        case 8559: ret=8575; break;\r
-        case 9398: ret=9424; break;\r
-        case 9399: ret=9425; break;\r
-        case 9400: ret=9426; break;\r
-        case 9401: ret=9427; break;\r
-        case 9402: ret=9428; break;\r
-        case 9403: ret=9429; break;\r
-        case 9404: ret=9430; break;\r
-        case 9405: ret=9431; break;\r
-        case 9406: ret=9432; break;\r
-        case 9407: ret=9433; break;\r
-        case 9408: ret=9434; break;\r
-        case 9409: ret=9435; break;\r
-        case 9410: ret=9436; break;\r
-        case 9411: ret=9437; break;\r
-        case 9412: ret=9438; break;\r
-        case 9413: ret=9439; break;\r
-        case 9414: ret=9440; break;\r
-        case 9415: ret=9441; break;\r
-        case 9416: ret=9442; break;\r
-        case 9417: ret=9443; break;\r
-        case 9418: ret=9444; break;\r
-        case 9419: ret=9445; break;\r
-        case 9420: ret=9446; break;\r
-        case 9421: ret=9447; break;\r
-        case 9422: ret=9448; break;\r
-        case 9423: ret=9449; break;\r
-        case 65313: ret=65345; break;\r
-        case 65314: ret=65346; break;\r
-        case 65315: ret=65347; break;\r
-        case 65316: ret=65348; break;\r
-        case 65317: ret=65349; break;\r
-        case 65318: ret=65350; break;\r
-        case 65319: ret=65351; break;\r
-        case 65320: ret=65352; break;\r
-        case 65321: ret=65353; break;\r
-        case 65322: ret=65354; break;\r
-        case 65323: ret=65355; break;\r
-        case 65324: ret=65356; break;\r
-        case 65325: ret=65357; break;\r
-        case 65326: ret=65358; break;\r
-        case 65327: ret=65359; break;\r
-        case 65328: ret=65360; break;\r
-        case 65329: ret=65361; break;\r
-        case 65330: ret=65362; break;\r
-        case 65331: ret=65363; break;\r
-        case 65332: ret=65364; break;\r
-        case 65333: ret=65365; break;\r
-        case 65334: ret=65366; break;\r
-        case 65335: ret=65367; break;\r
-        case 65336: ret=65368; break;\r
-        case 65337: ret=65369; break;\r
-        case 65338: ret=65370; break;\r
+    if (!ign)\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (s2.charAt(i) != s1.charAt(i1++))\r
+        {\r
+          return false;\r
         }\r
-        return (char)ret;\r
       }\r
-      return Character.toLowerCase(c);\r
     }\r
-    /** Convert a String to title case. */\r
-    public static String toTitleCase(String s) {\r
-        StringBuffer sb = new StringBuffer();\r
-        for(int i=0;i<s.length();i++)\r
-            sb.append(CaseMgr.toTitleCase(s.charAt(i)));\r
-        return sb.toString();\r
+    else\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
+        {\r
+          return false;\r
+        }\r
+      }\r
     }\r
-    /** Convert a String to upper case. */\r
-    public static String toUpperCase(String s) {\r
-        StringBuffer sb = new StringBuffer();\r
-        for(int i=0;i<s.length();i++)\r
-            sb.append(CaseMgr.toUpperCase(s.charAt(i)));\r
-        return sb.toString();\r
+    return true;\r
+  }\r
+\r
+  /** Duplicates the regionMatches routine of String -- but\r
+      makes use of the definitions of upper, lower, and title\r
+      case in this class when ignoreCase is set. */\r
+  public static boolean regionMatches(String s1,\r
+                                      boolean ign, int i1, StringLike s2,\r
+                                      int i2, int i3)\r
+  {\r
+    int itot = i2 + i3;\r
+    if (itot > s2.length() || i1 + i3 > s1.length())\r
+    {\r
+      return false;\r
     }\r
-    /** Convert a String to lower case. */\r
-    public static String toLowerCase(String s) {\r
-        StringBuffer sb = new StringBuffer();\r
-        for(int i=0;i<s.length();i++)\r
-            sb.append(CaseMgr.toLowerCase(s.charAt(i)));\r
-        return sb.toString();\r
+    if (!ign)\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (s2.charAt(i) != s1.charAt(i1++))\r
+        {\r
+          return false;\r
+        }\r
+      }\r
     }\r
-    /** Convert a character to title case.*/\r
-    public static char toTitleCase(char c) {\r
-      if(java_1_0) {\r
-        int ret = (int)toUpperCase(c);\r
-        switch(c) {\r
-        case 452: ret=453; break;\r
-        case 453: ret=453; break;\r
-        case 454: ret=453; break;\r
-        case 455: ret=456; break;\r
-        case 456: ret=456; break;\r
-        case 457: ret=456; break;\r
-        case 458: ret=459; break;\r
-        case 459: ret=459; break;\r
-        case 460: ret=459; break;\r
-        case 497: ret=498; break;\r
-        case 498: ret=498; break;\r
-        case 499: ret=498; break;\r
+    else\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
+        {\r
+          return false;\r
         }\r
-        return (char)ret;\r
       }\r
-      return Character.toTitleCase(c);\r
     }\r
-    /** Duplicates the regionMatches routine of String -- but\r
-        makes use of the definitions of upper, lower, and title\r
-        case in this class when ignoreCase is set. */\r
-    public static boolean regionMatches( StringLike s1,\r
-        boolean ign,int i1,StringLike s2,int i2,int i3) {\r
-        int itot=i2+i3;\r
-        if(itot>s2.length()||i1+i3>s1.length()) return false;\r
-        if(!ign) {\r
-            for(int i=i2;i<itot;i++)\r
-                if(s2.charAt(i) != s1.charAt(i1++))\r
-                    return false;\r
-        } else {\r
-            for(int i=i2;i<itot;i++)\r
-                if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
-                    return false;\r
+    return true;\r
+  }\r
+\r
+  /** Duplicates the regionMatches routine of String -- but\r
+      makes use of the definitions of upper, lower, and title\r
+      case in this class when ignoreCase is set. */\r
+  public static boolean regionMatches(StringLike s1,\r
+                                      boolean ign, int i1, String s2, int i2,\r
+                                      int i3)\r
+  {\r
+    int itot = i2 + i3;\r
+    if (itot > s2.length() || i1 + i3 > s1.length())\r
+    {\r
+      return false;\r
+    }\r
+    if (!ign)\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (s2.charAt(i) != s1.charAt(i1++))\r
+        {\r
+          return false;\r
         }\r
-        return true;\r
+      }\r
     }\r
-    /** Duplicates the regionMatches routine of String -- but\r
-        makes use of the definitions of upper, lower, and title\r
-        case in this class when ignoreCase is set. */\r
-    public static boolean regionMatches( String s1,\r
-        boolean ign,int i1,StringLike s2,int i2,int i3) {\r
-        int itot=i2+i3;\r
-        if(itot>s2.length()||i1+i3>s1.length()) return false;\r
-        if(!ign) {\r
-            for(int i=i2;i<itot;i++)\r
-                if(s2.charAt(i) != s1.charAt(i1++))\r
-                    return false;\r
-        } else {\r
-            for(int i=i2;i<itot;i++)\r
-                if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
-                    return false;\r
+    else\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
+        {\r
+          return false;\r
         }\r
-        return true;\r
+      }\r
     }\r
-    /** Duplicates the regionMatches routine of String -- but\r
-        makes use of the definitions of upper, lower, and title\r
-        case in this class when ignoreCase is set. */\r
-    public static boolean regionMatches( StringLike s1,\r
-        boolean ign,int i1,String s2,int i2,int i3) {\r
-        int itot=i2+i3;\r
-        if(itot>s2.length()||i1+i3>s1.length()) return false;\r
-        if(!ign) {\r
-            for(int i=i2;i<itot;i++)\r
-                if(s2.charAt(i) != s1.charAt(i1++))\r
-                    return false;\r
-        } else {\r
-            for(int i=i2;i<itot;i++)\r
-                if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
-                    return false;\r
+    return true;\r
+  }\r
+\r
+  /** Duplicates the regionMatches routine of String -- but\r
+      makes use of the definitions of upper, lower, and title\r
+      case in this class when ignoreCase is set. */\r
+  public static boolean regionMatches(String s1,\r
+                                      boolean ign, int i1, String s2, int i2,\r
+                                      int i3)\r
+  {\r
+    int itot = i2 + i3;\r
+    if (itot > s2.length() || i1 + i3 > s1.length())\r
+    {\r
+      return false;\r
+    }\r
+    if (!ign)\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (s2.charAt(i) != s1.charAt(i1++))\r
+        {\r
+          return false;\r
         }\r
-        return true;\r
+      }\r
     }\r
-    /** Duplicates the regionMatches routine of String -- but\r
-        makes use of the definitions of upper, lower, and title\r
-        case in this class when ignoreCase is set. */\r
-    public static boolean regionMatches( String s1,\r
-        boolean ign,int i1,String s2,int i2,int i3) {\r
-        int itot=i2+i3;\r
-        if(itot>s2.length()||i1+i3>s1.length()) return false;\r
-        if(!ign) {\r
-            for(int i=i2;i<itot;i++)\r
-                if(s2.charAt(i) != s1.charAt(i1++))\r
-                    return false;\r
-        } else {\r
-            for(int i=i2;i<itot;i++)\r
-                if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
-                    return false;\r
+    else\r
+    {\r
+      for (int i = i2; i < itot; i++)\r
+      {\r
+        if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))\r
+        {\r
+          return false;\r
         }\r
-        return true;\r
+      }\r
     }\r
+    return true;\r
+  }\r
 }\r