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