summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@csail.mit.edu>2018-12-28 11:28:13 -0500
committerGravatar GitHub <noreply@github.com>2018-12-28 11:28:13 -0500
commitb950347ec68e90aec890ef891de12793ea4ea2d3 (patch)
tree47154d284ec10655e65c9bba982f09c4a0a23f1f
parentd4620695ec44da55be046f9dee4caf1f29759943 (diff)
parenta17a53b2c349b72578690e98ef680f27bdee801e (diff)
Merge pull request #157 from fabriceleal/fix-js-icu-with-bitlookups
Fix js icu with bitlookups
-rw-r--r--lib/js/urweb.js3507
-rwxr-xr-xtests/driver.sh6
2 files changed, 817 insertions, 2696 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js
index 2d39bc69..931ab1f5 100644
--- a/lib/js/urweb.js
+++ b/lib/js/urweb.js
@@ -29,2072 +29,473 @@ function le(x, y) { return x <= y; }
function ord(c) { return c.codePointAt(0); }
+var isLowerBitm = [];
+var a = isLowerBitm;
+a[3] = 0x7FFFFFE; a[5] = 0x4200400; a[6] = 0x80000000; a[7] = 0xFF7FFFFF; a[8] = 0xAAAAAAAA;
+a[9] = 0x55AAAAAA; a[10] = 0xAAAAAB55; a[11] = 0xD4AAAAAA; a[12] = 0x4E243129; a[13] = 0xE6512D2A;
+a[14] = 0xB5555240; a[15] = 0xAA29AAAA; a[16] = 0xAAAAAAAA; a[17] = 0x93FAAAAA; a[18] = 0xFFFFAA85;
+a[19] = 0xFFFFFFFF; a[20] = 0xFFEFFFFF; a[21] = 0x1FFFFFF; a[22] = 0x3; a[23] = 0x1F;
+a[26] = 0x20; a[27] = 0x3C8A0000; a[28] = 0x10000; a[29] = 0xFFFFF000; a[30] = 0xAAE37FFF;
+a[31] = 0x192FAAAA; a[33] = 0xFFFF0000; a[34] = 0xFFFFFFFF; a[35] = 0xAAAAAAAA; a[36] = 0xAAAAA802;
+a[37] = 0xAAAAAAAA; a[38] = 0xAAAAD554; a[39] = 0xAAAAAAAA; a[40] = 0xAAAAAAAA; a[41] = 0xAAAA;
+a[43] = 0xFFFFFFFE; a[44] = 0xFF; a[159] = 0x3F000000; a[228] = 0x1FF; a[232] = 0xFFFFFFFF;
+a[233] = 0xFFFFFFFF; a[234] = 0xFFFFFFFF; a[235] = 0xFFFFFFFF; a[236] = 0xFFFFFFFF; a[237] = 0xFFFFFFFF;
+a[240] = 0xAAAAAAAA; a[241] = 0xAAAAAAAA; a[242] = 0xAAAAAAAA; a[243] = 0xAAAAAAAA; a[244] = 0xBFEAAAAA;
+a[245] = 0xAAAAAAAA; a[246] = 0xAAAAAAAA; a[247] = 0xAAAAAAAA; a[248] = 0x3F00FF; a[249] = 0xFF00FF;
+a[250] = 0xFF003F; a[251] = 0x3FFF00FF; a[252] = 0xFF00FF; a[253] = 0x40DF00FF; a[254] = 0xCF00DC;
+a[255] = 0xDC00FF; a[259] = 0x80020000; a[260] = 0x1FFF0000; a[264] = 0x8C400; a[265] = 0x32108000;
+a[266] = 0x43C0; a[267] = 0xFFFF0000; a[268] = 0x10; a[294] = 0xFFFF0000; a[295] = 0x3FF;
+a[353] = 0xFFFF0000; a[354] = 0x7FFFFFFF; a[355] = 0x3FDA1562; a[356] = 0xAAAAAAAA; a[357] = 0xAAAAAAAA;
+a[358] = 0xAAAAAAAA; a[359] = 0x8501A; a[360] = 0xFFFFFFFF; a[361] = 0x20BF; a[1330] = 0xAAAAAAAA;
+a[1331] = 0x2AAA; a[1332] = 0x3AAAAAAA; a[1337] = 0xAAABAAA8; a[1338] = 0xAAAAAAAA; a[1339] = 0x95FFAAAA;
+a[1340] = 0xAABA50AA; a[1341] = 0xA002AA; a[1343] = 0x7000000; a[1369] = 0xFFFF0000; a[1370] = 0xF7FFFFFF;
+a[1371] = 0xFFFF003F; a[1372] = 0xFFFFFFFF; a[1373] = 0xFFFFFFFF; a[2008] = 0xF8007F; a[2042] = 0x7FFFFFE;
+a[2081] = 0xFFFFFF00; a[2082] = 0xFFFF; a[2086] = 0xFF000000; a[2087] = 0xFFFFFFF; a[2150] = 0xFFFFFFFF;
+a[2151] = 0x7FFFF; a[2246] = 0xFFFFFFFF; a[3744] = 0xFC000000; a[3745] = 0xFFFFF; a[3746] = 0xFFDFC000;
+a[3747] = 0xFF; a[3748] = 0xFFFFFFC; a[3749] = 0xEBC00000; a[3750] = 0xFFEF; a[3751] = 0xFFFFFC00;
+a[3752] = 0xC000000F; a[3753] = 0xFFFFFF; a[3754] = 0xFFFC0000; a[3755] = 0xFFF; a[3756] = 0xFFFFFFC0;
+a[3757] = 0xFC000000; a[3758] = 0xFFFFF; a[3759] = 0xFFFFC000; a[3760] = 0xFF; a[3761] = 0xFFFFFFC;
+a[3762] = 0xFFC00000; a[3763] = 0xFFFF; a[3764] = 0xFFFFFC00; a[3765] = 0x3F; a[3766] = 0xF7FFFFFC;
+a[3767] = 0xF0000003; a[3768] = 0xFDFFFFF; a[3769] = 0xFFC00000; a[3770] = 0x3F7FFF; a[3771] = 0xFFFF0000;
+a[3772] = 0xFDFF; a[3773] = 0xFFFFFC00; a[3774] = 0xBF7; a[3913] = 0xFFFFFFFC; a[3914] = 0xF;
+
+delete a;
+
function isLower(c) {
var cp = ord(c);
-
- if (cp >= 97 && cp <= 122) return true;
- if (cp == 170) return true;
- if (cp == 181) return true;
- if (cp == 186) return true;
- if (cp >= 223 && cp <= 246) return true;
- if (cp >= 248 && cp <= 255) return true;
- if (cp == 257) return true;
- if (cp == 259) return true;
- if (cp == 261) return true;
- if (cp == 263) return true;
- if (cp == 265) return true;
- if (cp == 267) return true;
- if (cp == 269) return true;
- if (cp == 271) return true;
- if (cp == 273) return true;
- if (cp == 275) return true;
- if (cp == 277) return true;
- if (cp == 279) return true;
- if (cp == 281) return true;
- if (cp == 283) return true;
- if (cp == 285) return true;
- if (cp == 287) return true;
- if (cp == 289) return true;
- if (cp == 291) return true;
- if (cp == 293) return true;
- if (cp == 295) return true;
- if (cp == 297) return true;
- if (cp == 299) return true;
- if (cp == 301) return true;
- if (cp == 303) return true;
- if (cp == 305) return true;
- if (cp == 307) return true;
- if (cp == 309) return true;
- if (cp >= 311 && cp <= 312) return true;
- if (cp == 314) return true;
- if (cp == 316) return true;
- if (cp == 318) return true;
- if (cp == 320) return true;
- if (cp == 322) return true;
- if (cp == 324) return true;
- if (cp == 326) return true;
- if (cp >= 328 && cp <= 329) return true;
- if (cp == 331) return true;
- if (cp == 333) return true;
- if (cp == 335) return true;
- if (cp == 337) return true;
- if (cp == 339) return true;
- if (cp == 341) return true;
- if (cp == 343) return true;
- if (cp == 345) return true;
- if (cp == 347) return true;
- if (cp == 349) return true;
- if (cp == 351) return true;
- if (cp == 353) return true;
- if (cp == 355) return true;
- if (cp == 357) return true;
- if (cp == 359) return true;
- if (cp == 361) return true;
- if (cp == 363) return true;
- if (cp == 365) return true;
- if (cp == 367) return true;
- if (cp == 369) return true;
- if (cp == 371) return true;
- if (cp == 373) return true;
- if (cp == 375) return true;
- if (cp == 378) return true;
- if (cp == 380) return true;
- if (cp >= 382 && cp <= 384) return true;
- if (cp == 387) return true;
- if (cp == 389) return true;
- if (cp == 392) return true;
- if (cp >= 396 && cp <= 397) return true;
- if (cp == 402) return true;
- if (cp == 405) return true;
- if (cp >= 409 && cp <= 411) return true;
- if (cp == 414) return true;
- if (cp == 417) return true;
- if (cp == 419) return true;
- if (cp == 421) return true;
- if (cp == 424) return true;
- if (cp >= 426 && cp <= 427) return true;
- if (cp == 429) return true;
- if (cp == 432) return true;
- if (cp == 436) return true;
- if (cp == 438) return true;
- if (cp >= 441 && cp <= 442) return true;
- if (cp >= 445 && cp <= 447) return true;
- if (cp == 454) return true;
- if (cp == 457) return true;
- if (cp == 460) return true;
- if (cp == 462) return true;
- if (cp == 464) return true;
- if (cp == 466) return true;
- if (cp == 468) return true;
- if (cp == 470) return true;
- if (cp == 472) return true;
- if (cp == 474) return true;
- if (cp >= 476 && cp <= 477) return true;
- if (cp == 479) return true;
- if (cp == 481) return true;
- if (cp == 483) return true;
- if (cp == 485) return true;
- if (cp == 487) return true;
- if (cp == 489) return true;
- if (cp == 491) return true;
- if (cp == 493) return true;
- if (cp >= 495 && cp <= 496) return true;
- if (cp == 499) return true;
- if (cp == 501) return true;
- if (cp == 505) return true;
- if (cp == 507) return true;
- if (cp == 509) return true;
- if (cp == 511) return true;
- if (cp == 513) return true;
- if (cp == 515) return true;
- if (cp == 517) return true;
- if (cp == 519) return true;
- if (cp == 521) return true;
- if (cp == 523) return true;
- if (cp == 525) return true;
- if (cp == 527) return true;
- if (cp == 529) return true;
- if (cp == 531) return true;
- if (cp == 533) return true;
- if (cp == 535) return true;
- if (cp == 537) return true;
- if (cp == 539) return true;
- if (cp == 541) return true;
- if (cp == 543) return true;
- if (cp == 545) return true;
- if (cp == 547) return true;
- if (cp == 549) return true;
- if (cp == 551) return true;
- if (cp == 553) return true;
- if (cp == 555) return true;
- if (cp == 557) return true;
- if (cp == 559) return true;
- if (cp == 561) return true;
- if (cp >= 563 && cp <= 569) return true;
- if (cp == 572) return true;
- if (cp >= 575 && cp <= 576) return true;
- if (cp == 578) return true;
- if (cp == 583) return true;
- if (cp == 585) return true;
- if (cp == 587) return true;
- if (cp == 589) return true;
- if (cp >= 591 && cp <= 659) return true;
- if (cp >= 661 && cp <= 696) return true;
- if (cp >= 704 && cp <= 705) return true;
- if (cp >= 736 && cp <= 740) return true;
- if (cp == 837) return true;
- if (cp == 881) return true;
- if (cp == 883) return true;
- if (cp == 887) return true;
- if (cp >= 890 && cp <= 893) return true;
- if (cp == 912) return true;
- if (cp >= 940 && cp <= 974) return true;
- if (cp >= 976 && cp <= 977) return true;
- if (cp >= 981 && cp <= 983) return true;
- if (cp == 985) return true;
- if (cp == 987) return true;
- if (cp == 989) return true;
- if (cp == 991) return true;
- if (cp == 993) return true;
- if (cp == 995) return true;
- if (cp == 997) return true;
- if (cp == 999) return true;
- if (cp == 1001) return true;
- if (cp == 1003) return true;
- if (cp == 1005) return true;
- if (cp >= 1007 && cp <= 1011) return true;
- if (cp == 1013) return true;
- if (cp == 1016) return true;
- if (cp >= 1019 && cp <= 1020) return true;
- if (cp >= 1072 && cp <= 1119) return true;
- if (cp == 1121) return true;
- if (cp == 1123) return true;
- if (cp == 1125) return true;
- if (cp == 1127) return true;
- if (cp == 1129) return true;
- if (cp == 1131) return true;
- if (cp == 1133) return true;
- if (cp == 1135) return true;
- if (cp == 1137) return true;
- if (cp == 1139) return true;
- if (cp == 1141) return true;
- if (cp == 1143) return true;
- if (cp == 1145) return true;
- if (cp == 1147) return true;
- if (cp == 1149) return true;
- if (cp == 1151) return true;
- if (cp == 1153) return true;
- if (cp == 1163) return true;
- if (cp == 1165) return true;
- if (cp == 1167) return true;
- if (cp == 1169) return true;
- if (cp == 1171) return true;
- if (cp == 1173) return true;
- if (cp == 1175) return true;
- if (cp == 1177) return true;
- if (cp == 1179) return true;
- if (cp == 1181) return true;
- if (cp == 1183) return true;
- if (cp == 1185) return true;
- if (cp == 1187) return true;
- if (cp == 1189) return true;
- if (cp == 1191) return true;
- if (cp == 1193) return true;
- if (cp == 1195) return true;
- if (cp == 1197) return true;
- if (cp == 1199) return true;
- if (cp == 1201) return true;
- if (cp == 1203) return true;
- if (cp == 1205) return true;
- if (cp == 1207) return true;
- if (cp == 1209) return true;
- if (cp == 1211) return true;
- if (cp == 1213) return true;
- if (cp == 1215) return true;
- if (cp == 1218) return true;
- if (cp == 1220) return true;
- if (cp == 1222) return true;
- if (cp == 1224) return true;
- if (cp == 1226) return true;
- if (cp == 1228) return true;
- if (cp >= 1230 && cp <= 1231) return true;
- if (cp == 1233) return true;
- if (cp == 1235) return true;
- if (cp == 1237) return true;
- if (cp == 1239) return true;
- if (cp == 1241) return true;
- if (cp == 1243) return true;
- if (cp == 1245) return true;
- if (cp == 1247) return true;
- if (cp == 1249) return true;
- if (cp == 1251) return true;
- if (cp == 1253) return true;
- if (cp == 1255) return true;
- if (cp == 1257) return true;
- if (cp == 1259) return true;
- if (cp == 1261) return true;
- if (cp == 1263) return true;
- if (cp == 1265) return true;
- if (cp == 1267) return true;
- if (cp == 1269) return true;
- if (cp == 1271) return true;
- if (cp == 1273) return true;
- if (cp == 1275) return true;
- if (cp == 1277) return true;
- if (cp == 1279) return true;
- if (cp == 1281) return true;
- if (cp == 1283) return true;
- if (cp == 1285) return true;
- if (cp == 1287) return true;
- if (cp == 1289) return true;
- if (cp == 1291) return true;
- if (cp == 1293) return true;
- if (cp == 1295) return true;
- if (cp == 1297) return true;
- if (cp == 1299) return true;
- if (cp == 1301) return true;
- if (cp == 1303) return true;
- if (cp == 1305) return true;
- if (cp == 1307) return true;
- if (cp == 1309) return true;
- if (cp == 1311) return true;
- if (cp == 1313) return true;
- if (cp == 1315) return true;
- if (cp == 1317) return true;
- if (cp == 1319) return true;
- if (cp == 1321) return true;
- if (cp == 1323) return true;
- if (cp == 1325) return true;
- if (cp == 1327) return true;
- if (cp >= 1377 && cp <= 1415) return true;
- if (cp >= 5112 && cp <= 5117) return true;
- if (cp >= 7296 && cp <= 7304) return true;
- if (cp >= 7424 && cp <= 7615) return true;
- if (cp == 7681) return true;
- if (cp == 7683) return true;
- if (cp == 7685) return true;
- if (cp == 7687) return true;
- if (cp == 7689) return true;
- if (cp == 7691) return true;
- if (cp == 7693) return true;
- if (cp == 7695) return true;
- if (cp == 7697) return true;
- if (cp == 7699) return true;
- if (cp == 7701) return true;
- if (cp == 7703) return true;
- if (cp == 7705) return true;
- if (cp == 7707) return true;
- if (cp == 7709) return true;
- if (cp == 7711) return true;
- if (cp == 7713) return true;
- if (cp == 7715) return true;
- if (cp == 7717) return true;
- if (cp == 7719) return true;
- if (cp == 7721) return true;
- if (cp == 7723) return true;
- if (cp == 7725) return true;
- if (cp == 7727) return true;
- if (cp == 7729) return true;
- if (cp == 7731) return true;
- if (cp == 7733) return true;
- if (cp == 7735) return true;
- if (cp == 7737) return true;
- if (cp == 7739) return true;
- if (cp == 7741) return true;
- if (cp == 7743) return true;
- if (cp == 7745) return true;
- if (cp == 7747) return true;
- if (cp == 7749) return true;
- if (cp == 7751) return true;
- if (cp == 7753) return true;
- if (cp == 7755) return true;
- if (cp == 7757) return true;
- if (cp == 7759) return true;
- if (cp == 7761) return true;
- if (cp == 7763) return true;
- if (cp == 7765) return true;
- if (cp == 7767) return true;
- if (cp == 7769) return true;
- if (cp == 7771) return true;
- if (cp == 7773) return true;
- if (cp == 7775) return true;
- if (cp == 7777) return true;
- if (cp == 7779) return true;
- if (cp == 7781) return true;
- if (cp == 7783) return true;
- if (cp == 7785) return true;
- if (cp == 7787) return true;
- if (cp == 7789) return true;
- if (cp == 7791) return true;
- if (cp == 7793) return true;
- if (cp == 7795) return true;
- if (cp == 7797) return true;
- if (cp == 7799) return true;
- if (cp == 7801) return true;
- if (cp == 7803) return true;
- if (cp == 7805) return true;
- if (cp == 7807) return true;
- if (cp == 7809) return true;
- if (cp == 7811) return true;
- if (cp == 7813) return true;
- if (cp == 7815) return true;
- if (cp == 7817) return true;
- if (cp == 7819) return true;
- if (cp == 7821) return true;
- if (cp == 7823) return true;
- if (cp == 7825) return true;
- if (cp == 7827) return true;
- if (cp >= 7829 && cp <= 7837) return true;
- if (cp == 7839) return true;
- if (cp == 7841) return true;
- if (cp == 7843) return true;
- if (cp == 7845) return true;
- if (cp == 7847) return true;
- if (cp == 7849) return true;
- if (cp == 7851) return true;
- if (cp == 7853) return true;
- if (cp == 7855) return true;
- if (cp == 7857) return true;
- if (cp == 7859) return true;
- if (cp == 7861) return true;
- if (cp == 7863) return true;
- if (cp == 7865) return true;
- if (cp == 7867) return true;
- if (cp == 7869) return true;
- if (cp == 7871) return true;
- if (cp == 7873) return true;
- if (cp == 7875) return true;
- if (cp == 7877) return true;
- if (cp == 7879) return true;
- if (cp == 7881) return true;
- if (cp == 7883) return true;
- if (cp == 7885) return true;
- if (cp == 7887) return true;
- if (cp == 7889) return true;
- if (cp == 7891) return true;
- if (cp == 7893) return true;
- if (cp == 7895) return true;
- if (cp == 7897) return true;
- if (cp == 7899) return true;
- if (cp == 7901) return true;
- if (cp == 7903) return true;
- if (cp == 7905) return true;
- if (cp == 7907) return true;
- if (cp == 7909) return true;
- if (cp == 7911) return true;
- if (cp == 7913) return true;
- if (cp == 7915) return true;
- if (cp == 7917) return true;
- if (cp == 7919) return true;
- if (cp == 7921) return true;
- if (cp == 7923) return true;
- if (cp == 7925) return true;
- if (cp == 7927) return true;
- if (cp == 7929) return true;
- if (cp == 7931) return true;
- if (cp == 7933) return true;
- if (cp >= 7935 && cp <= 7943) return true;
- if (cp >= 7952 && cp <= 7957) return true;
- if (cp >= 7968 && cp <= 7975) return true;
- if (cp >= 7984 && cp <= 7991) return true;
- if (cp >= 8000 && cp <= 8005) return true;
- if (cp >= 8016 && cp <= 8023) return true;
- if (cp >= 8032 && cp <= 8039) return true;
- if (cp >= 8048 && cp <= 8061) return true;
- if (cp >= 8064 && cp <= 8071) return true;
- if (cp >= 8080 && cp <= 8087) return true;
- if (cp >= 8096 && cp <= 8103) return true;
- if (cp >= 8112 && cp <= 8116) return true;
- if (cp >= 8118 && cp <= 8119) return true;
- if (cp == 8126) return true;
- if (cp >= 8130 && cp <= 8132) return true;
- if (cp >= 8134 && cp <= 8135) return true;
- if (cp >= 8144 && cp <= 8147) return true;
- if (cp >= 8150 && cp <= 8151) return true;
- if (cp >= 8160 && cp <= 8167) return true;
- if (cp >= 8178 && cp <= 8180) return true;
- if (cp >= 8182 && cp <= 8183) return true;
- if (cp == 8305) return true;
- if (cp == 8319) return true;
- if (cp >= 8336 && cp <= 8348) return true;
- if (cp == 8458) return true;
- if (cp >= 8462 && cp <= 8463) return true;
- if (cp == 8467) return true;
- if (cp == 8495) return true;
- if (cp == 8500) return true;
- if (cp == 8505) return true;
- if (cp >= 8508 && cp <= 8509) return true;
- if (cp >= 8518 && cp <= 8521) return true;
- if (cp == 8526) return true;
- if (cp >= 8560 && cp <= 8575) return true;
- if (cp == 8580) return true;
- if (cp >= 9424 && cp <= 9449) return true;
- if (cp >= 11312 && cp <= 11358) return true;
- if (cp == 11361) return true;
- if (cp >= 11365 && cp <= 11366) return true;
- if (cp == 11368) return true;
- if (cp == 11370) return true;
- if (cp == 11372) return true;
- if (cp == 11377) return true;
- if (cp >= 11379 && cp <= 11380) return true;
- if (cp >= 11382 && cp <= 11389) return true;
- if (cp == 11393) return true;
- if (cp == 11395) return true;
- if (cp == 11397) return true;
- if (cp == 11399) return true;
- if (cp == 11401) return true;
- if (cp == 11403) return true;
- if (cp == 11405) return true;
- if (cp == 11407) return true;
- if (cp == 11409) return true;
- if (cp == 11411) return true;
- if (cp == 11413) return true;
- if (cp == 11415) return true;
- if (cp == 11417) return true;
- if (cp == 11419) return true;
- if (cp == 11421) return true;
- if (cp == 11423) return true;
- if (cp == 11425) return true;
- if (cp == 11427) return true;
- if (cp == 11429) return true;
- if (cp == 11431) return true;
- if (cp == 11433) return true;
- if (cp == 11435) return true;
- if (cp == 11437) return true;
- if (cp == 11439) return true;
- if (cp == 11441) return true;
- if (cp == 11443) return true;
- if (cp == 11445) return true;
- if (cp == 11447) return true;
- if (cp == 11449) return true;
- if (cp == 11451) return true;
- if (cp == 11453) return true;
- if (cp == 11455) return true;
- if (cp == 11457) return true;
- if (cp == 11459) return true;
- if (cp == 11461) return true;
- if (cp == 11463) return true;
- if (cp == 11465) return true;
- if (cp == 11467) return true;
- if (cp == 11469) return true;
- if (cp == 11471) return true;
- if (cp == 11473) return true;
- if (cp == 11475) return true;
- if (cp == 11477) return true;
- if (cp == 11479) return true;
- if (cp == 11481) return true;
- if (cp == 11483) return true;
- if (cp == 11485) return true;
- if (cp == 11487) return true;
- if (cp == 11489) return true;
- if (cp >= 11491 && cp <= 11492) return true;
- if (cp == 11500) return true;
- if (cp == 11502) return true;
- if (cp == 11507) return true;
- if (cp >= 11520 && cp <= 11557) return true;
- if (cp == 11559) return true;
- if (cp == 11565) return true;
- if (cp == 42561) return true;
- if (cp == 42563) return true;
- if (cp == 42565) return true;
- if (cp == 42567) return true;
- if (cp == 42569) return true;
- if (cp == 42571) return true;
- if (cp == 42573) return true;
- if (cp == 42575) return true;
- if (cp == 42577) return true;
- if (cp == 42579) return true;
- if (cp == 42581) return true;
- if (cp == 42583) return true;
- if (cp == 42585) return true;
- if (cp == 42587) return true;
- if (cp == 42589) return true;
- if (cp == 42591) return true;
- if (cp == 42593) return true;
- if (cp == 42595) return true;
- if (cp == 42597) return true;
- if (cp == 42599) return true;
- if (cp == 42601) return true;
- if (cp == 42603) return true;
- if (cp == 42605) return true;
- if (cp == 42625) return true;
- if (cp == 42627) return true;
- if (cp == 42629) return true;
- if (cp == 42631) return true;
- if (cp == 42633) return true;
- if (cp == 42635) return true;
- if (cp == 42637) return true;
- if (cp == 42639) return true;
- if (cp == 42641) return true;
- if (cp == 42643) return true;
- if (cp == 42645) return true;
- if (cp == 42647) return true;
- if (cp == 42649) return true;
- if (cp >= 42651 && cp <= 42653) return true;
- if (cp == 42787) return true;
- if (cp == 42789) return true;
- if (cp == 42791) return true;
- if (cp == 42793) return true;
- if (cp == 42795) return true;
- if (cp == 42797) return true;
- if (cp >= 42799 && cp <= 42801) return true;
- if (cp == 42803) return true;
- if (cp == 42805) return true;
- if (cp == 42807) return true;
- if (cp == 42809) return true;
- if (cp == 42811) return true;
- if (cp == 42813) return true;
- if (cp == 42815) return true;
- if (cp == 42817) return true;
- if (cp == 42819) return true;
- if (cp == 42821) return true;
- if (cp == 42823) return true;
- if (cp == 42825) return true;
- if (cp == 42827) return true;
- if (cp == 42829) return true;
- if (cp == 42831) return true;
- if (cp == 42833) return true;
- if (cp == 42835) return true;
- if (cp == 42837) return true;
- if (cp == 42839) return true;
- if (cp == 42841) return true;
- if (cp == 42843) return true;
- if (cp == 42845) return true;
- if (cp == 42847) return true;
- if (cp == 42849) return true;
- if (cp == 42851) return true;
- if (cp == 42853) return true;
- if (cp == 42855) return true;
- if (cp == 42857) return true;
- if (cp == 42859) return true;
- if (cp == 42861) return true;
- if (cp >= 42863 && cp <= 42872) return true;
- if (cp == 42874) return true;
- if (cp == 42876) return true;
- if (cp == 42879) return true;
- if (cp == 42881) return true;
- if (cp == 42883) return true;
- if (cp == 42885) return true;
- if (cp == 42887) return true;
- if (cp == 42892) return true;
- if (cp == 42894) return true;
- if (cp == 42897) return true;
- if (cp >= 42899 && cp <= 42901) return true;
- if (cp == 42903) return true;
- if (cp == 42905) return true;
- if (cp == 42907) return true;
- if (cp == 42909) return true;
- if (cp == 42911) return true;
- if (cp == 42913) return true;
- if (cp == 42915) return true;
- if (cp == 42917) return true;
- if (cp == 42919) return true;
- if (cp == 42921) return true;
- if (cp == 42933) return true;
- if (cp == 42935) return true;
- if (cp >= 43000 && cp <= 43002) return true;
- if (cp >= 43824 && cp <= 43866) return true;
- if (cp >= 43868 && cp <= 43877) return true;
- if (cp >= 43888 && cp <= 43967) return true;
- if (cp >= 64256 && cp <= 64262) return true;
- if (cp >= 64275 && cp <= 64279) return true;
- if (cp >= 65345 && cp <= 65370) return true;
- if (cp >= 66600 && cp <= 66639) return true;
- if (cp >= 66776 && cp <= 66811) return true;
- if (cp >= 68800 && cp <= 68850) return true;
- if (cp >= 71872 && cp <= 71903) return true;
- if (cp >= 119834 && cp <= 119859) return true;
- if (cp >= 119886 && cp <= 119892) return true;
- if (cp >= 119894 && cp <= 119911) return true;
- if (cp >= 119938 && cp <= 119963) return true;
- if (cp >= 119990 && cp <= 119993) return true;
- if (cp == 119995) return true;
- if (cp >= 119997 && cp <= 120003) return true;
- if (cp >= 120005 && cp <= 120015) return true;
- if (cp >= 120042 && cp <= 120067) return true;
- if (cp >= 120094 && cp <= 120119) return true;
- if (cp >= 120146 && cp <= 120171) return true;
- if (cp >= 120198 && cp <= 120223) return true;
- if (cp >= 120250 && cp <= 120275) return true;
- if (cp >= 120302 && cp <= 120327) return true;
- if (cp >= 120354 && cp <= 120379) return true;
- if (cp >= 120406 && cp <= 120431) return true;
- if (cp >= 120458 && cp <= 120485) return true;
- if (cp >= 120514 && cp <= 120538) return true;
- if (cp >= 120540 && cp <= 120545) return true;
- if (cp >= 120572 && cp <= 120596) return true;
- if (cp >= 120598 && cp <= 120603) return true;
- if (cp >= 120630 && cp <= 120654) return true;
- if (cp >= 120656 && cp <= 120661) return true;
- if (cp >= 120688 && cp <= 120712) return true;
- if (cp >= 120714 && cp <= 120719) return true;
- if (cp >= 120746 && cp <= 120770) return true;
- if (cp >= 120772 && cp <= 120777) return true;
- if (cp == 120779) return true;
- if (cp >= 125218 && cp <= 125251) return true;
-
+ var idx = Math.floor(cp / 32);
+ var byt = isLowerBitm[idx];
+ if (byt)
+ {
+ var mask = Math.pow(2, cp - idx * 32);
+ return (byt & mask) != 0;
+ }
return false;
}
+var isUpperBitm = [];
+var a = isUpperBitm;
+a[2] = 0x7FFFFFE; a[6] = 0x7F7FFFFF; a[8] = 0x55555555; a[9] = 0xAA555555; a[10] = 0x555554AA;
+a[11] = 0x2B555555; a[12] = 0xB1DBCED6; a[13] = 0x11AED2D5; a[14] = 0x4AAAA490; a[15] = 0x55D25555;
+a[16] = 0x55555555; a[17] = 0x6C055555; a[18] = 0x557A; a[27] = 0x80450000; a[28] = 0xFFFED740;
+a[29] = 0xFFB; a[30] = 0x551C8000; a[31] = 0xE6905555; a[32] = 0xFFFFFFFF; a[33] = 0xFFFF;
+a[35] = 0x55555555; a[36] = 0x55555401; a[37] = 0x55555555; a[38] = 0x55552AAB; a[39] = 0x55555555;
+a[40] = 0x55555555; a[41] = 0xFFFE5555; a[42] = 0x7FFFFF; a[133] = 0xFFFFFFFF; a[134] = 0x20BF;
+a[157] = 0xFFFFFFFF; a[158] = 0xFFFFFFFF; a[159] = 0x3FFFFF; a[240] = 0x55555555; a[241] = 0x55555555;
+a[242] = 0x55555555; a[243] = 0x55555555; a[244] = 0x40155555; a[245] = 0x55555555; a[246] = 0x55555555;
+a[247] = 0x55555555; a[248] = 0x3F00FF00; a[249] = 0xFF00FF00; a[250] = 0xAA003F00; a[251] = 0xFF00;
+a[253] = 0xF000000; a[254] = 0xF000F00; a[255] = 0xF001F00; a[264] = 0x3E273884; a[265] = 0xC00F3D50;
+a[266] = 0x20; a[267] = 0xFFFF; a[268] = 0x8; a[293] = 0xFFC00000; a[294] = 0xFFFF;
+a[352] = 0xFFFFFFFF; a[353] = 0x7FFF; a[355] = 0xC025EA9D; a[356] = 0x55555555; a[357] = 0x55555555;
+a[358] = 0x55555555; a[359] = 0x42805; a[1330] = 0x55555555; a[1331] = 0x1555; a[1332] = 0x5555555;
+a[1337] = 0x55545554; a[1338] = 0x55555555; a[1339] = 0x6A005555; a[1340] = 0x55452855; a[1341] = 0x5F7D55;
+a[2041] = 0x7FFFFFE; a[2080] = 0xFFFFFFFF; a[2081] = 0xFF; a[2085] = 0xFFFF0000; a[2086] = 0xFFFFF;
+a[2148] = 0xFFFFFFFF; a[2149] = 0x7FFFF; a[2245] = 0xFFFFFFFF; a[3744] = 0x3FFFFFF; a[3745] = 0xFFF00000;
+a[3746] = 0x3FFF; a[3747] = 0xFFFFFF00; a[3748] = 0xD0000003; a[3749] = 0x3FDE64; a[3750] = 0xFFFF0000;
+a[3751] = 0x3FF; a[3752] = 0x1FDFE7B0; a[3753] = 0x7B000000; a[3754] = 0x1FC5F; a[3755] = 0xFFFFF000;
+a[3756] = 0x3F; a[3757] = 0x3FFFFFF; a[3758] = 0xFFF00000; a[3759] = 0x3FFF; a[3760] = 0xFFFFFF00;
+a[3761] = 0xF0000003; a[3762] = 0x3FFFFF; a[3763] = 0xFFFF0000; a[3764] = 0x3FF; a[3765] = 0xFFFFFF00;
+a[3766] = 0x1; a[3767] = 0x7FFFFFC; a[3768] = 0xF0000000; a[3769] = 0x1FFFFF; a[3770] = 0xFFC00000;
+a[3771] = 0x7FFF; a[3772] = 0xFFFF0000; a[3773] = 0x1FF; a[3774] = 0x400; a[3912] = 0xFFFFFFFF;
+a[3913] = 0x3; a[3977] = 0xFFFF0000; a[3978] = 0xFFFF03FF; a[3979] = 0xFFFF03FF; a[3980] = 0x3FF;
+
+delete a;
+
function isUpper(c) {
var cp = ord(c);
-
- if (cp >= 65 && cp <= 90) return true;
- if (cp >= 192 && cp <= 214) return true;
- if (cp >= 216 && cp <= 222) return true;
- if (cp == 256) return true;
- if (cp == 258) return true;
- if (cp == 260) return true;
- if (cp == 262) return true;
- if (cp == 264) return true;
- if (cp == 266) return true;
- if (cp == 268) return true;
- if (cp == 270) return true;
- if (cp == 272) return true;
- if (cp == 274) return true;
- if (cp == 276) return true;
- if (cp == 278) return true;
- if (cp == 280) return true;
- if (cp == 282) return true;
- if (cp == 284) return true;
- if (cp == 286) return true;
- if (cp == 288) return true;
- if (cp == 290) return true;
- if (cp == 292) return true;
- if (cp == 294) return true;
- if (cp == 296) return true;
- if (cp == 298) return true;
- if (cp == 300) return true;
- if (cp == 302) return true;
- if (cp == 304) return true;
- if (cp == 306) return true;
- if (cp == 308) return true;
- if (cp == 310) return true;
- if (cp == 313) return true;
- if (cp == 315) return true;
- if (cp == 317) return true;
- if (cp == 319) return true;
- if (cp == 321) return true;
- if (cp == 323) return true;
- if (cp == 325) return true;
- if (cp == 327) return true;
- if (cp == 330) return true;
- if (cp == 332) return true;
- if (cp == 334) return true;
- if (cp == 336) return true;
- if (cp == 338) return true;
- if (cp == 340) return true;
- if (cp == 342) return true;
- if (cp == 344) return true;
- if (cp == 346) return true;
- if (cp == 348) return true;
- if (cp == 350) return true;
- if (cp == 352) return true;
- if (cp == 354) return true;
- if (cp == 356) return true;
- if (cp == 358) return true;
- if (cp == 360) return true;
- if (cp == 362) return true;
- if (cp == 364) return true;
- if (cp == 366) return true;
- if (cp == 368) return true;
- if (cp == 370) return true;
- if (cp == 372) return true;
- if (cp == 374) return true;
- if (cp >= 376 && cp <= 377) return true;
- if (cp == 379) return true;
- if (cp == 381) return true;
- if (cp >= 385 && cp <= 386) return true;
- if (cp == 388) return true;
- if (cp >= 390 && cp <= 391) return true;
- if (cp >= 393 && cp <= 395) return true;
- if (cp >= 398 && cp <= 401) return true;
- if (cp >= 403 && cp <= 404) return true;
- if (cp >= 406 && cp <= 408) return true;
- if (cp >= 412 && cp <= 413) return true;
- if (cp >= 415 && cp <= 416) return true;
- if (cp == 418) return true;
- if (cp == 420) return true;
- if (cp >= 422 && cp <= 423) return true;
- if (cp == 425) return true;
- if (cp == 428) return true;
- if (cp >= 430 && cp <= 431) return true;
- if (cp >= 433 && cp <= 435) return true;
- if (cp == 437) return true;
- if (cp >= 439 && cp <= 440) return true;
- if (cp == 444) return true;
- if (cp == 452) return true;
- if (cp == 455) return true;
- if (cp == 458) return true;
- if (cp == 461) return true;
- if (cp == 463) return true;
- if (cp == 465) return true;
- if (cp == 467) return true;
- if (cp == 469) return true;
- if (cp == 471) return true;
- if (cp == 473) return true;
- if (cp == 475) return true;
- if (cp == 478) return true;
- if (cp == 480) return true;
- if (cp == 482) return true;
- if (cp == 484) return true;
- if (cp == 486) return true;
- if (cp == 488) return true;
- if (cp == 490) return true;
- if (cp == 492) return true;
- if (cp == 494) return true;
- if (cp == 497) return true;
- if (cp == 500) return true;
- if (cp >= 502 && cp <= 504) return true;
- if (cp == 506) return true;
- if (cp == 508) return true;
- if (cp == 510) return true;
- if (cp == 512) return true;
- if (cp == 514) return true;
- if (cp == 516) return true;
- if (cp == 518) return true;
- if (cp == 520) return true;
- if (cp == 522) return true;
- if (cp == 524) return true;
- if (cp == 526) return true;
- if (cp == 528) return true;
- if (cp == 530) return true;
- if (cp == 532) return true;
- if (cp == 534) return true;
- if (cp == 536) return true;
- if (cp == 538) return true;
- if (cp == 540) return true;
- if (cp == 542) return true;
- if (cp == 544) return true;
- if (cp == 546) return true;
- if (cp == 548) return true;
- if (cp == 550) return true;
- if (cp == 552) return true;
- if (cp == 554) return true;
- if (cp == 556) return true;
- if (cp == 558) return true;
- if (cp == 560) return true;
- if (cp == 562) return true;
- if (cp >= 570 && cp <= 571) return true;
- if (cp >= 573 && cp <= 574) return true;
- if (cp == 577) return true;
- if (cp >= 579 && cp <= 582) return true;
- if (cp == 584) return true;
- if (cp == 586) return true;
- if (cp == 588) return true;
- if (cp == 590) return true;
- if (cp == 880) return true;
- if (cp == 882) return true;
- if (cp == 886) return true;
- if (cp == 895) return true;
- if (cp == 902) return true;
- if (cp >= 904 && cp <= 906) return true;
- if (cp == 908) return true;
- if (cp >= 910 && cp <= 911) return true;
- if (cp >= 913 && cp <= 929) return true;
- if (cp >= 931 && cp <= 939) return true;
- if (cp == 975) return true;
- if (cp >= 978 && cp <= 980) return true;
- if (cp == 984) return true;
- if (cp == 986) return true;
- if (cp == 988) return true;
- if (cp == 990) return true;
- if (cp == 992) return true;
- if (cp == 994) return true;
- if (cp == 996) return true;
- if (cp == 998) return true;
- if (cp == 1000) return true;
- if (cp == 1002) return true;
- if (cp == 1004) return true;
- if (cp == 1006) return true;
- if (cp == 1012) return true;
- if (cp == 1015) return true;
- if (cp >= 1017 && cp <= 1018) return true;
- if (cp >= 1021 && cp <= 1071) return true;
- if (cp == 1120) return true;
- if (cp == 1122) return true;
- if (cp == 1124) return true;
- if (cp == 1126) return true;
- if (cp == 1128) return true;
- if (cp == 1130) return true;
- if (cp == 1132) return true;
- if (cp == 1134) return true;
- if (cp == 1136) return true;
- if (cp == 1138) return true;
- if (cp == 1140) return true;
- if (cp == 1142) return true;
- if (cp == 1144) return true;
- if (cp == 1146) return true;
- if (cp == 1148) return true;
- if (cp == 1150) return true;
- if (cp == 1152) return true;
- if (cp == 1162) return true;
- if (cp == 1164) return true;
- if (cp == 1166) return true;
- if (cp == 1168) return true;
- if (cp == 1170) return true;
- if (cp == 1172) return true;
- if (cp == 1174) return true;
- if (cp == 1176) return true;
- if (cp == 1178) return true;
- if (cp == 1180) return true;
- if (cp == 1182) return true;
- if (cp == 1184) return true;
- if (cp == 1186) return true;
- if (cp == 1188) return true;
- if (cp == 1190) return true;
- if (cp == 1192) return true;
- if (cp == 1194) return true;
- if (cp == 1196) return true;
- if (cp == 1198) return true;
- if (cp == 1200) return true;
- if (cp == 1202) return true;
- if (cp == 1204) return true;
- if (cp == 1206) return true;
- if (cp == 1208) return true;
- if (cp == 1210) return true;
- if (cp == 1212) return true;
- if (cp == 1214) return true;
- if (cp >= 1216 && cp <= 1217) return true;
- if (cp == 1219) return true;
- if (cp == 1221) return true;
- if (cp == 1223) return true;
- if (cp == 1225) return true;
- if (cp == 1227) return true;
- if (cp == 1229) return true;
- if (cp == 1232) return true;
- if (cp == 1234) return true;
- if (cp == 1236) return true;
- if (cp == 1238) return true;
- if (cp == 1240) return true;
- if (cp == 1242) return true;
- if (cp == 1244) return true;
- if (cp == 1246) return true;
- if (cp == 1248) return true;
- if (cp == 1250) return true;
- if (cp == 1252) return true;
- if (cp == 1254) return true;
- if (cp == 1256) return true;
- if (cp == 1258) return true;
- if (cp == 1260) return true;
- if (cp == 1262) return true;
- if (cp == 1264) return true;
- if (cp == 1266) return true;
- if (cp == 1268) return true;
- if (cp == 1270) return true;
- if (cp == 1272) return true;
- if (cp == 1274) return true;
- if (cp == 1276) return true;
- if (cp == 1278) return true;
- if (cp == 1280) return true;
- if (cp == 1282) return true;
- if (cp == 1284) return true;
- if (cp == 1286) return true;
- if (cp == 1288) return true;
- if (cp == 1290) return true;
- if (cp == 1292) return true;
- if (cp == 1294) return true;
- if (cp == 1296) return true;
- if (cp == 1298) return true;
- if (cp == 1300) return true;
- if (cp == 1302) return true;
- if (cp == 1304) return true;
- if (cp == 1306) return true;
- if (cp == 1308) return true;
- if (cp == 1310) return true;
- if (cp == 1312) return true;
- if (cp == 1314) return true;
- if (cp == 1316) return true;
- if (cp == 1318) return true;
- if (cp == 1320) return true;
- if (cp == 1322) return true;
- if (cp == 1324) return true;
- if (cp == 1326) return true;
- if (cp >= 1329 && cp <= 1366) return true;
- if (cp >= 4256 && cp <= 4293) return true;
- if (cp == 4295) return true;
- if (cp == 4301) return true;
- if (cp >= 5024 && cp <= 5109) return true;
- if (cp == 7680) return true;
- if (cp == 7682) return true;
- if (cp == 7684) return true;
- if (cp == 7686) return true;
- if (cp == 7688) return true;
- if (cp == 7690) return true;
- if (cp == 7692) return true;
- if (cp == 7694) return true;
- if (cp == 7696) return true;
- if (cp == 7698) return true;
- if (cp == 7700) return true;
- if (cp == 7702) return true;
- if (cp == 7704) return true;
- if (cp == 7706) return true;
- if (cp == 7708) return true;
- if (cp == 7710) return true;
- if (cp == 7712) return true;
- if (cp == 7714) return true;
- if (cp == 7716) return true;
- if (cp == 7718) return true;
- if (cp == 7720) return true;
- if (cp == 7722) return true;
- if (cp == 7724) return true;
- if (cp == 7726) return true;
- if (cp == 7728) return true;
- if (cp == 7730) return true;
- if (cp == 7732) return true;
- if (cp == 7734) return true;
- if (cp == 7736) return true;
- if (cp == 7738) return true;
- if (cp == 7740) return true;
- if (cp == 7742) return true;
- if (cp == 7744) return true;
- if (cp == 7746) return true;
- if (cp == 7748) return true;
- if (cp == 7750) return true;
- if (cp == 7752) return true;
- if (cp == 7754) return true;
- if (cp == 7756) return true;
- if (cp == 7758) return true;
- if (cp == 7760) return true;
- if (cp == 7762) return true;
- if (cp == 7764) return true;
- if (cp == 7766) return true;
- if (cp == 7768) return true;
- if (cp == 7770) return true;
- if (cp == 7772) return true;
- if (cp == 7774) return true;
- if (cp == 7776) return true;
- if (cp == 7778) return true;
- if (cp == 7780) return true;
- if (cp == 7782) return true;
- if (cp == 7784) return true;
- if (cp == 7786) return true;
- if (cp == 7788) return true;
- if (cp == 7790) return true;
- if (cp == 7792) return true;
- if (cp == 7794) return true;
- if (cp == 7796) return true;
- if (cp == 7798) return true;
- if (cp == 7800) return true;
- if (cp == 7802) return true;
- if (cp == 7804) return true;
- if (cp == 7806) return true;
- if (cp == 7808) return true;
- if (cp == 7810) return true;
- if (cp == 7812) return true;
- if (cp == 7814) return true;
- if (cp == 7816) return true;
- if (cp == 7818) return true;
- if (cp == 7820) return true;
- if (cp == 7822) return true;
- if (cp == 7824) return true;
- if (cp == 7826) return true;
- if (cp == 7828) return true;
- if (cp == 7838) return true;
- if (cp == 7840) return true;
- if (cp == 7842) return true;
- if (cp == 7844) return true;
- if (cp == 7846) return true;
- if (cp == 7848) return true;
- if (cp == 7850) return true;
- if (cp == 7852) return true;
- if (cp == 7854) return true;
- if (cp == 7856) return true;
- if (cp == 7858) return true;
- if (cp == 7860) return true;
- if (cp == 7862) return true;
- if (cp == 7864) return true;
- if (cp == 7866) return true;
- if (cp == 7868) return true;
- if (cp == 7870) return true;
- if (cp == 7872) return true;
- if (cp == 7874) return true;
- if (cp == 7876) return true;
- if (cp == 7878) return true;
- if (cp == 7880) return true;
- if (cp == 7882) return true;
- if (cp == 7884) return true;
- if (cp == 7886) return true;
- if (cp == 7888) return true;
- if (cp == 7890) return true;
- if (cp == 7892) return true;
- if (cp == 7894) return true;
- if (cp == 7896) return true;
- if (cp == 7898) return true;
- if (cp == 7900) return true;
- if (cp == 7902) return true;
- if (cp == 7904) return true;
- if (cp == 7906) return true;
- if (cp == 7908) return true;
- if (cp == 7910) return true;
- if (cp == 7912) return true;
- if (cp == 7914) return true;
- if (cp == 7916) return true;
- if (cp == 7918) return true;
- if (cp == 7920) return true;
- if (cp == 7922) return true;
- if (cp == 7924) return true;
- if (cp == 7926) return true;
- if (cp == 7928) return true;
- if (cp == 7930) return true;
- if (cp == 7932) return true;
- if (cp == 7934) return true;
- if (cp >= 7944 && cp <= 7951) return true;
- if (cp >= 7960 && cp <= 7965) return true;
- if (cp >= 7976 && cp <= 7983) return true;
- if (cp >= 7992 && cp <= 7999) return true;
- if (cp >= 8008 && cp <= 8013) return true;
- if (cp == 8025) return true;
- if (cp == 8027) return true;
- if (cp == 8029) return true;
- if (cp == 8031) return true;
- if (cp >= 8040 && cp <= 8047) return true;
- if (cp >= 8120 && cp <= 8123) return true;
- if (cp >= 8136 && cp <= 8139) return true;
- if (cp >= 8152 && cp <= 8155) return true;
- if (cp >= 8168 && cp <= 8172) return true;
- if (cp >= 8184 && cp <= 8187) return true;
- if (cp == 8450) return true;
- if (cp == 8455) return true;
- if (cp >= 8459 && cp <= 8461) return true;
- if (cp >= 8464 && cp <= 8466) return true;
- if (cp == 8469) return true;
- if (cp >= 8473 && cp <= 8477) return true;
- if (cp == 8484) return true;
- if (cp == 8486) return true;
- if (cp == 8488) return true;
- if (cp >= 8490 && cp <= 8493) return true;
- if (cp >= 8496 && cp <= 8499) return true;
- if (cp >= 8510 && cp <= 8511) return true;
- if (cp == 8517) return true;
- if (cp >= 8544 && cp <= 8559) return true;
- if (cp == 8579) return true;
- if (cp >= 9398 && cp <= 9423) return true;
- if (cp >= 11264 && cp <= 11310) return true;
- if (cp == 11360) return true;
- if (cp >= 11362 && cp <= 11364) return true;
- if (cp == 11367) return true;
- if (cp == 11369) return true;
- if (cp == 11371) return true;
- if (cp >= 11373 && cp <= 11376) return true;
- if (cp == 11378) return true;
- if (cp == 11381) return true;
- if (cp >= 11390 && cp <= 11392) return true;
- if (cp == 11394) return true;
- if (cp == 11396) return true;
- if (cp == 11398) return true;
- if (cp == 11400) return true;
- if (cp == 11402) return true;
- if (cp == 11404) return true;
- if (cp == 11406) return true;
- if (cp == 11408) return true;
- if (cp == 11410) return true;
- if (cp == 11412) return true;
- if (cp == 11414) return true;
- if (cp == 11416) return true;
- if (cp == 11418) return true;
- if (cp == 11420) return true;
- if (cp == 11422) return true;
- if (cp == 11424) return true;
- if (cp == 11426) return true;
- if (cp == 11428) return true;
- if (cp == 11430) return true;
- if (cp == 11432) return true;
- if (cp == 11434) return true;
- if (cp == 11436) return true;
- if (cp == 11438) return true;
- if (cp == 11440) return true;
- if (cp == 11442) return true;
- if (cp == 11444) return true;
- if (cp == 11446) return true;
- if (cp == 11448) return true;
- if (cp == 11450) return true;
- if (cp == 11452) return true;
- if (cp == 11454) return true;
- if (cp == 11456) return true;
- if (cp == 11458) return true;
- if (cp == 11460) return true;
- if (cp == 11462) return true;
- if (cp == 11464) return true;
- if (cp == 11466) return true;
- if (cp == 11468) return true;
- if (cp == 11470) return true;
- if (cp == 11472) return true;
- if (cp == 11474) return true;
- if (cp == 11476) return true;
- if (cp == 11478) return true;
- if (cp == 11480) return true;
- if (cp == 11482) return true;
- if (cp == 11484) return true;
- if (cp == 11486) return true;
- if (cp == 11488) return true;
- if (cp == 11490) return true;
- if (cp == 11499) return true;
- if (cp == 11501) return true;
- if (cp == 11506) return true;
- if (cp == 42560) return true;
- if (cp == 42562) return true;
- if (cp == 42564) return true;
- if (cp == 42566) return true;
- if (cp == 42568) return true;
- if (cp == 42570) return true;
- if (cp == 42572) return true;
- if (cp == 42574) return true;
- if (cp == 42576) return true;
- if (cp == 42578) return true;
- if (cp == 42580) return true;
- if (cp == 42582) return true;
- if (cp == 42584) return true;
- if (cp == 42586) return true;
- if (cp == 42588) return true;
- if (cp == 42590) return true;
- if (cp == 42592) return true;
- if (cp == 42594) return true;
- if (cp == 42596) return true;
- if (cp == 42598) return true;
- if (cp == 42600) return true;
- if (cp == 42602) return true;
- if (cp == 42604) return true;
- if (cp == 42624) return true;
- if (cp == 42626) return true;
- if (cp == 42628) return true;
- if (cp == 42630) return true;
- if (cp == 42632) return true;
- if (cp == 42634) return true;
- if (cp == 42636) return true;
- if (cp == 42638) return true;
- if (cp == 42640) return true;
- if (cp == 42642) return true;
- if (cp == 42644) return true;
- if (cp == 42646) return true;
- if (cp == 42648) return true;
- if (cp == 42650) return true;
- if (cp == 42786) return true;
- if (cp == 42788) return true;
- if (cp == 42790) return true;
- if (cp == 42792) return true;
- if (cp == 42794) return true;
- if (cp == 42796) return true;
- if (cp == 42798) return true;
- if (cp == 42802) return true;
- if (cp == 42804) return true;
- if (cp == 42806) return true;
- if (cp == 42808) return true;
- if (cp == 42810) return true;
- if (cp == 42812) return true;
- if (cp == 42814) return true;
- if (cp == 42816) return true;
- if (cp == 42818) return true;
- if (cp == 42820) return true;
- if (cp == 42822) return true;
- if (cp == 42824) return true;
- if (cp == 42826) return true;
- if (cp == 42828) return true;
- if (cp == 42830) return true;
- if (cp == 42832) return true;
- if (cp == 42834) return true;
- if (cp == 42836) return true;
- if (cp == 42838) return true;
- if (cp == 42840) return true;
- if (cp == 42842) return true;
- if (cp == 42844) return true;
- if (cp == 42846) return true;
- if (cp == 42848) return true;
- if (cp == 42850) return true;
- if (cp == 42852) return true;
- if (cp == 42854) return true;
- if (cp == 42856) return true;
- if (cp == 42858) return true;
- if (cp == 42860) return true;
- if (cp == 42862) return true;
- if (cp == 42873) return true;
- if (cp == 42875) return true;
- if (cp >= 42877 && cp <= 42878) return true;
- if (cp == 42880) return true;
- if (cp == 42882) return true;
- if (cp == 42884) return true;
- if (cp == 42886) return true;
- if (cp == 42891) return true;
- if (cp == 42893) return true;
- if (cp == 42896) return true;
- if (cp == 42898) return true;
- if (cp == 42902) return true;
- if (cp == 42904) return true;
- if (cp == 42906) return true;
- if (cp == 42908) return true;
- if (cp == 42910) return true;
- if (cp == 42912) return true;
- if (cp == 42914) return true;
- if (cp == 42916) return true;
- if (cp == 42918) return true;
- if (cp == 42920) return true;
- if (cp >= 42922 && cp <= 42926) return true;
- if (cp >= 42928 && cp <= 42932) return true;
- if (cp == 42934) return true;
- if (cp >= 65313 && cp <= 65338) return true;
- if (cp >= 66560 && cp <= 66599) return true;
- if (cp >= 66736 && cp <= 66771) return true;
- if (cp >= 68736 && cp <= 68786) return true;
- if (cp >= 71840 && cp <= 71871) return true;
- if (cp >= 119808 && cp <= 119833) return true;
- if (cp >= 119860 && cp <= 119885) return true;
- if (cp >= 119912 && cp <= 119937) return true;
- if (cp == 119964) return true;
- if (cp >= 119966 && cp <= 119967) return true;
- if (cp == 119970) return true;
- if (cp >= 119973 && cp <= 119974) return true;
- if (cp >= 119977 && cp <= 119980) return true;
- if (cp >= 119982 && cp <= 119989) return true;
- if (cp >= 120016 && cp <= 120041) return true;
- if (cp >= 120068 && cp <= 120069) return true;
- if (cp >= 120071 && cp <= 120074) return true;
- if (cp >= 120077 && cp <= 120084) return true;
- if (cp >= 120086 && cp <= 120092) return true;
- if (cp >= 120120 && cp <= 120121) return true;
- if (cp >= 120123 && cp <= 120126) return true;
- if (cp >= 120128 && cp <= 120132) return true;
- if (cp == 120134) return true;
- if (cp >= 120138 && cp <= 120144) return true;
- if (cp >= 120172 && cp <= 120197) return true;
- if (cp >= 120224 && cp <= 120249) return true;
- if (cp >= 120276 && cp <= 120301) return true;
- if (cp >= 120328 && cp <= 120353) return true;
- if (cp >= 120380 && cp <= 120405) return true;
- if (cp >= 120432 && cp <= 120457) return true;
- if (cp >= 120488 && cp <= 120512) return true;
- if (cp >= 120546 && cp <= 120570) return true;
- if (cp >= 120604 && cp <= 120628) return true;
- if (cp >= 120662 && cp <= 120686) return true;
- if (cp >= 120720 && cp <= 120744) return true;
- if (cp == 120778) return true;
- if (cp >= 125184 && cp <= 125217) return true;
- if (cp >= 127280 && cp <= 127305) return true;
- if (cp >= 127312 && cp <= 127337) return true;
- if (cp >= 127344 && cp <= 127369) return true;
-
+ var idx = Math.floor(cp / 32);
+ var byt = isUpperBitm[idx];
+ if (byt) {
+ var mask = Math.pow(2, cp - idx * 32);
+ return (byt & mask) != 0;
+ }
return false;
}
+var isAlphaBitm = (function(){
+ var a = 0xFFFFFFFF;
+ var b = 0xFFFF0000;
+ var c = 0x7FFFFFFF;
+ var d = 0x3FFFFF;
+ var e = 0x3FFFFFFF;
+ var f = 0x1FFFFFFF;
+ var g = 0x7FFFFF;
+ var h = 0x7FFFF;
+ var i = 0x7FFFFFE;
+ var j = 0xFFFFFFFE;
+ var k = 0x1FFFFFF;
+ var l = 0x7FFFFFF;
+ var m = 0xF7FFFFFF;
+ var n = 0xFFFFF;
+ var o = 0xFFFFFFF;
+ var p = 0x3FFFF;
+ var q = 0xE3EDFDFF;
+ var r = 0xFFFDDFEF;
+ var s = 0xFFFF07FF;
+ var t = 0xFFFF7FFF;
+ var u = 0x3FFFFFF;
+ var v = 0xFFFFFDFF;
+ var w = 0xFFDFFFFF;
+ var x = 0xFF7FFFFF;
+ var y = 0xFFFFE000;
+ var z = 0xFFFFFC00;
+ var a0 = 0xFFF99FEF;
+ var a1 = 0xFFFFFEFF;
+ var a2 = 0xFFFF20BF;
+ var a3 = 0x3F3FFFFF;
+ var a4 = 0x7F7F7F7F;
+ var a5 = 0xFF800000;
+ var a6 = 0xFFFFFFFC;
+ var a7 = 0xFFF80000;
+ var a8 = 0xFFFCFFFF;
+ var a9 = 0x1FFFFF;
+ var b0 = 0xFFFFFFEF;
+ var b1 = 0xFFFF03FF;
+ return [
+ 0, 0, i, i, 0, 0x4200400, x, x, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, 0x3FFC3, 0x501F, 0, 0, 0x20, 0xBCDF0000, 0xFFFFD740, 0xFFFFFFFB, a, 0xFFBFFFFF, a, a, a, a, 0xFFFFFC03, a, a, a,
+ a, 0xFFFEFFFF, 0x27FFFFF, j, 0xFF, 0xBFFF0000, 0xFFFF00B6, 0x707FF, 0x7FF0000, a, 0xFEFFFFFF, 0xFFFFC000, a, a, 0x1FEFFFFF, 0x9C00E1FE, b, a, y, a,
+ a, p, z, 0x43007FF, 0xFCFFFFFF, 0x1FFF, k, 0x7FF, 0, 0x3FDFFFFF, 0xFFF00000, 0xFFFF03F8, a, 0xEFFFFFFF, 0xFFE1DFFF, 0xFFFE000F, a0, 0xE3C5FDFF, 0xB080599F, 0x1003000F,
+ 0xFFF987EE, 0xC36DFDFF, 0x5E021987, 0x3F0000, 0xFFFBBFEE, q, 0x11BBF, 0x1E00000F, 0xFFF99FEE, q, 0xB0C0199F, 0x2000F, 0xD63DC7EC, 0xC3FFC718, 0x811DC7, 0, r, 0xE3FFFDFF, 0x7601DDF, 0xF,
+ r, 0xE3EFFDFF, 0x40601DDF, 0x6000F, r, 0xE7FFFFFF, 0x80F05DDF, 0xFC00000F, 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F807F, 0xC0000, j, l, 0x207F, 0, 0xFEF02596, 0x3BFFECAE, 0xF000205F, 0,
+ 0x1, 0, a1, 0xFFFE1FFF, 0xFEFFFF03, f, 0, 0, a, 0xF97FFFFF, b, 0xFFFFC1E7, 0x3000407F, a, a2, m, a, a, a, a,
+ a, a, a, a, a, a, 0x3D7F3DFF, a, 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, a, 0xFF3DFFFF, a, 0x87FFFFFF, 0, 0xFFFF, a, a, a3,
+ j, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0xFFFF9FFF,
+ i, a, a, 0x1FFC7FF, 0xFDFFF, n, n, 0xDDFFF, a, 0xFFCFFFFF, 0x108001FF, 0, 0, a, a, 0xFFFFFF, a, s, a, d,
+ c, 0x1FF0FFF, b, 0x1F3FFF, a, 0xFFFF0FFF, 0x3FF, 0, o, a, c, 0x1FFFFE, 0, 0x80, 0, 0, a, 0xFFEFFFFF, 0xFEF, 0,
+ a, 0xFC00F3FF, a, 0x3FFBF, a, d, 0xFC00E000, e, 0x1FF, 0, 0, 0x6FDE00, a, a, a, a, a, a, 0, 0x1FFF80,
+ a, a, a, a, a, a, a, a, a3, a, 0xAAFF3F3F, e, a, 0x5FDFFFFF, 0xFCF1FDC, 0x1FDC1FFF, 0, 0, 0, 0x80020000,
+ 0x1FFF0000, 0, 0, 0, 0x3E2FFC84, 0xF3FFBD50, 0x43E0, a, 0x1FF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFFC00000, a, 0x3FF, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, t, c, a, a, a, a, 0xC781F,
+ a, a2, a, 0x80FF, g, a4, a4, a, 0, 0x8000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0xE0, 0x1F3E03FE, j, a, 0xE07FFFFF, j, a, m, 0xFFFFFFE0, 0xFFFE7FFF, a, a, 0x7FFF, l, 0, b,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, d, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0x7FF,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0x1FFF, 0, b, e,
+ a, a, a, a, a, a, a, a, 0xFFFF1FFF, 0xC00, a, 0x8FF07FFF, a, a, a, 0xFFFF, a5, a6, a, a,
+ 0xFFFFF9FF, 0xFF7FFF, 0, a5, 0xFFFFF7BB, 0xFF, a, n, a, a, 0x2F, 0x28FC0000, z, s, h, f, a, 0xFFF7FFFF, 0x8000, 0x7C00FFDF,
+ a, g, 0x3FFF, 0xC47FFFFF, a, c, 0x38000005, 0x3CFFFF, 0x7E7E7E, 0xFFFF7F7F, m, 0xFFFF003F, a, a, a, 0x7FF, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, 0xFFFF000F, 0xFFFFF87F, o, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, 0xFFFF3FFF, a, a, u, 0, 0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, a, a, p, a7, a, a, a, a, a,
+ a, a, a, a, a, e, b, a, a8, a, 0xFF, 0xFFF0000, 0, 0, 0, 0xFFDF0000, a, a, a, f,
+ 0, i, i, 0xFFFFFFC0, a, c, 0x1CFCFCFC, 0, 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0, a, a, a, l, 0, 0, a, a9,
+ 0, 0, 0, 0, 0, 0, 0, 0, f, a, 0x1FFFF, 0, a, y, s, l, e, a, 0x3EFF0F, 0,
+ a, a, a, a, e, b, 0xFF0FFFFF, o, a, 0xFFFF00FF, a, 0xF, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, a, g, d, 0xFF, 0, 0, 0, 0, 0xFFFFFD3F, 0x91BFFFFF, d, g, c, 0, 0, 0x37FFFF,
+ d, u, 0, 0, a, 0xC0FFFFFF, 0, 0, 0xFEEFF06F, n, 0, f, f, 0, a1, 0x1F, a, d, d, h,
+ p, 0, 0, 0, a, a, 0x1FF, 0, a, h, a, h, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, 0x3F, 0,
+ a6, k, b, 0x1FF, a, h, b, 0x47FFFF, a, a, 0x1400001E, 0, 0xFFFBFFFF, 0x409FFFFF, 0, 0, 0xBFFFBD7F, 0xFFFF01FF, a, 0x1FF,
+ a0, q, 0xE081199F, 0xF, 0, 0, 0, 0, a, a, 0x7BB, 0, a, a, 0xB3, 0, 0, 0, 0, 0,
+ a, 0x7F3FFFFF, 0x3F000000, 0, a, c, 0x11, 0, a, d, 0, 0, 0xE3FFFFFF, 0x7FF, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, a, a, 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, a, 0x7FE7FFFF, b, a,
+ 0xFFFFCF, 0, a, k, 0, 0, 0, 0, 0, 0, 0, 0, v, 0x7F7FFFFF, 0x1, 0xFFFC0000, a8, 0x7FFEFF, 0, 0,
+ 0xFFFFFB7F, 0xB47FFFFF, 0xCB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, u, 0, 0, 0, a, a, a, 0x7FFF,
+ a, a, a, a, a, a, 0xF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, 0x7FFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, 0x7F, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, k, c, 0,
+ 0, 0, b, 0x3FFF, a, g, 0xF, 0xE0FFFFF8, 0xFFFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, 0xFFFF001F, c,
+ a7, 0, 0, 0x3, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0x1FFF, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, h,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, c, 0, 0, b, a, a, a, a, a, a, a, a, a, a, a, o,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, 0x1FFF07FF, 0x43FF01FF, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, a, a, w, a, 0xDFFFFFFF, 0xEBFFDE64, b0, a, 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, a, a, a, a, a,
+ a, a, a, a, a, 0xFFFFFF3F, 0xF7FFFFFD, m, w, w, t, t, v, v, 0xFF7, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0xF9FFFF7F, 0x7DB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, a, a, a, a, a, a, 0x1F, 0, a, a, 0x8F, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, b0, 0xAF7FE96, 0xAA96EA84, 0x5EF7F796, 0xFFFFBFF, 0xFFFFBEE, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, b, b1, b1,
+ 0x3FF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, g, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a9, a, a, a, a, a, a, e, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, 0xFFFF0003, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, 0x1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, e
+ ];})();
+
function isAlpha(c) {
var cp = ord(c);
-
- if (cp >= 65 && cp <= 90) return true;
- if (cp >= 97 && cp <= 122) return true;
- if (cp == 170) return true;
- if (cp == 181) return true;
- if (cp == 186) return true;
- if (cp >= 192 && cp <= 214) return true;
- if (cp >= 216 && cp <= 246) return true;
- if (cp >= 248 && cp <= 705) return true;
- if (cp >= 710 && cp <= 721) return true;
- if (cp >= 736 && cp <= 740) return true;
- if (cp == 748) return true;
- if (cp == 750) return true;
- if (cp == 837) return true;
- if (cp >= 880 && cp <= 884) return true;
- if (cp >= 886 && cp <= 887) return true;
- if (cp >= 890 && cp <= 893) return true;
- if (cp == 895) return true;
- if (cp == 902) return true;
- if (cp >= 904 && cp <= 906) return true;
- if (cp == 908) return true;
- if (cp >= 910 && cp <= 929) return true;
- if (cp >= 931 && cp <= 1013) return true;
- if (cp >= 1015 && cp <= 1153) return true;
- if (cp >= 1162 && cp <= 1327) return true;
- if (cp >= 1329 && cp <= 1366) return true;
- if (cp == 1369) return true;
- if (cp >= 1377 && cp <= 1415) return true;
- if (cp >= 1456 && cp <= 1469) return true;
- if (cp == 1471) return true;
- if (cp >= 1473 && cp <= 1474) return true;
- if (cp >= 1476 && cp <= 1477) return true;
- if (cp == 1479) return true;
- if (cp >= 1488 && cp <= 1514) return true;
- if (cp >= 1520 && cp <= 1522) return true;
- if (cp >= 1552 && cp <= 1562) return true;
- if (cp >= 1568 && cp <= 1623) return true;
- if (cp >= 1625 && cp <= 1631) return true;
- if (cp >= 1646 && cp <= 1747) return true;
- if (cp >= 1749 && cp <= 1756) return true;
- if (cp >= 1761 && cp <= 1768) return true;
- if (cp >= 1773 && cp <= 1775) return true;
- if (cp >= 1786 && cp <= 1788) return true;
- if (cp == 1791) return true;
- if (cp >= 1808 && cp <= 1855) return true;
- if (cp >= 1869 && cp <= 1969) return true;
- if (cp >= 1994 && cp <= 2026) return true;
- if (cp >= 2036 && cp <= 2037) return true;
- if (cp == 2042) return true;
- if (cp >= 2048 && cp <= 2071) return true;
- if (cp >= 2074 && cp <= 2092) return true;
- if (cp >= 2112 && cp <= 2136) return true;
- if (cp >= 2144 && cp <= 2154) return true;
- if (cp >= 2208 && cp <= 2228) return true;
- if (cp >= 2230 && cp <= 2237) return true;
- if (cp >= 2260 && cp <= 2271) return true;
- if (cp >= 2275 && cp <= 2281) return true;
- if (cp >= 2288 && cp <= 2363) return true;
- if (cp >= 2365 && cp <= 2380) return true;
- if (cp >= 2382 && cp <= 2384) return true;
- if (cp >= 2389 && cp <= 2403) return true;
- if (cp >= 2417 && cp <= 2435) return true;
- if (cp >= 2437 && cp <= 2444) return true;
- if (cp >= 2447 && cp <= 2448) return true;
- if (cp >= 2451 && cp <= 2472) return true;
- if (cp >= 2474 && cp <= 2480) return true;
- if (cp == 2482) return true;
- if (cp >= 2486 && cp <= 2489) return true;
- if (cp >= 2493 && cp <= 2500) return true;
- if (cp >= 2503 && cp <= 2504) return true;
- if (cp >= 2507 && cp <= 2508) return true;
- if (cp == 2510) return true;
- if (cp == 2519) return true;
- if (cp >= 2524 && cp <= 2525) return true;
- if (cp >= 2527 && cp <= 2531) return true;
- if (cp >= 2544 && cp <= 2545) return true;
- if (cp == 2556) return true;
- if (cp >= 2561 && cp <= 2563) return true;
- if (cp >= 2565 && cp <= 2570) return true;
- if (cp >= 2575 && cp <= 2576) return true;
- if (cp >= 2579 && cp <= 2600) return true;
- if (cp >= 2602 && cp <= 2608) return true;
- if (cp >= 2610 && cp <= 2611) return true;
- if (cp >= 2613 && cp <= 2614) return true;
- if (cp >= 2616 && cp <= 2617) return true;
- if (cp >= 2622 && cp <= 2626) return true;
- if (cp >= 2631 && cp <= 2632) return true;
- if (cp >= 2635 && cp <= 2636) return true;
- if (cp == 2641) return true;
- if (cp >= 2649 && cp <= 2652) return true;
- if (cp == 2654) return true;
- if (cp >= 2672 && cp <= 2677) return true;
- if (cp >= 2689 && cp <= 2691) return true;
- if (cp >= 2693 && cp <= 2701) return true;
- if (cp >= 2703 && cp <= 2705) return true;
- if (cp >= 2707 && cp <= 2728) return true;
- if (cp >= 2730 && cp <= 2736) return true;
- if (cp >= 2738 && cp <= 2739) return true;
- if (cp >= 2741 && cp <= 2745) return true;
- if (cp >= 2749 && cp <= 2757) return true;
- if (cp >= 2759 && cp <= 2761) return true;
- if (cp >= 2763 && cp <= 2764) return true;
- if (cp == 2768) return true;
- if (cp >= 2784 && cp <= 2787) return true;
- if (cp >= 2809 && cp <= 2812) return true;
- if (cp >= 2817 && cp <= 2819) return true;
- if (cp >= 2821 && cp <= 2828) return true;
- if (cp >= 2831 && cp <= 2832) return true;
- if (cp >= 2835 && cp <= 2856) return true;
- if (cp >= 2858 && cp <= 2864) return true;
- if (cp >= 2866 && cp <= 2867) return true;
- if (cp >= 2869 && cp <= 2873) return true;
- if (cp >= 2877 && cp <= 2884) return true;
- if (cp >= 2887 && cp <= 2888) return true;
- if (cp >= 2891 && cp <= 2892) return true;
- if (cp >= 2902 && cp <= 2903) return true;
- if (cp >= 2908 && cp <= 2909) return true;
- if (cp >= 2911 && cp <= 2915) return true;
- if (cp == 2929) return true;
- if (cp >= 2946 && cp <= 2947) return true;
- if (cp >= 2949 && cp <= 2954) return true;
- if (cp >= 2958 && cp <= 2960) return true;
- if (cp >= 2962 && cp <= 2965) return true;
- if (cp >= 2969 && cp <= 2970) return true;
- if (cp == 2972) return true;
- if (cp >= 2974 && cp <= 2975) return true;
- if (cp >= 2979 && cp <= 2980) return true;
- if (cp >= 2984 && cp <= 2986) return true;
- if (cp >= 2990 && cp <= 3001) return true;
- if (cp >= 3006 && cp <= 3010) return true;
- if (cp >= 3014 && cp <= 3016) return true;
- if (cp >= 3018 && cp <= 3020) return true;
- if (cp == 3024) return true;
- if (cp == 3031) return true;
- if (cp >= 3072 && cp <= 3075) return true;
- if (cp >= 3077 && cp <= 3084) return true;
- if (cp >= 3086 && cp <= 3088) return true;
- if (cp >= 3090 && cp <= 3112) return true;
- if (cp >= 3114 && cp <= 3129) return true;
- if (cp >= 3133 && cp <= 3140) return true;
- if (cp >= 3142 && cp <= 3144) return true;
- if (cp >= 3146 && cp <= 3148) return true;
- if (cp >= 3157 && cp <= 3158) return true;
- if (cp >= 3160 && cp <= 3162) return true;
- if (cp >= 3168 && cp <= 3171) return true;
- if (cp >= 3200 && cp <= 3203) return true;
- if (cp >= 3205 && cp <= 3212) return true;
- if (cp >= 3214 && cp <= 3216) return true;
- if (cp >= 3218 && cp <= 3240) return true;
- if (cp >= 3242 && cp <= 3251) return true;
- if (cp >= 3253 && cp <= 3257) return true;
- if (cp >= 3261 && cp <= 3268) return true;
- if (cp >= 3270 && cp <= 3272) return true;
- if (cp >= 3274 && cp <= 3276) return true;
- if (cp >= 3285 && cp <= 3286) return true;
- if (cp == 3294) return true;
- if (cp >= 3296 && cp <= 3299) return true;
- if (cp >= 3313 && cp <= 3314) return true;
- if (cp >= 3328 && cp <= 3331) return true;
- if (cp >= 3333 && cp <= 3340) return true;
- if (cp >= 3342 && cp <= 3344) return true;
- if (cp >= 3346 && cp <= 3386) return true;
- if (cp >= 3389 && cp <= 3396) return true;
- if (cp >= 3398 && cp <= 3400) return true;
- if (cp >= 3402 && cp <= 3404) return true;
- if (cp == 3406) return true;
- if (cp >= 3412 && cp <= 3415) return true;
- if (cp >= 3423 && cp <= 3427) return true;
- if (cp >= 3450 && cp <= 3455) return true;
- if (cp >= 3458 && cp <= 3459) return true;
- if (cp >= 3461 && cp <= 3478) return true;
- if (cp >= 3482 && cp <= 3505) return true;
- if (cp >= 3507 && cp <= 3515) return true;
- if (cp == 3517) return true;
- if (cp >= 3520 && cp <= 3526) return true;
- if (cp >= 3535 && cp <= 3540) return true;
- if (cp == 3542) return true;
- if (cp >= 3544 && cp <= 3551) return true;
- if (cp >= 3570 && cp <= 3571) return true;
- if (cp >= 3585 && cp <= 3642) return true;
- if (cp >= 3648 && cp <= 3654) return true;
- if (cp == 3661) return true;
- if (cp >= 3713 && cp <= 3714) return true;
- if (cp == 3716) return true;
- if (cp >= 3719 && cp <= 3720) return true;
- if (cp == 3722) return true;
- if (cp == 3725) return true;
- if (cp >= 3732 && cp <= 3735) return true;
- if (cp >= 3737 && cp <= 3743) return true;
- if (cp >= 3745 && cp <= 3747) return true;
- if (cp == 3749) return true;
- if (cp == 3751) return true;
- if (cp >= 3754 && cp <= 3755) return true;
- if (cp >= 3757 && cp <= 3769) return true;
- if (cp >= 3771 && cp <= 3773) return true;
- if (cp >= 3776 && cp <= 3780) return true;
- if (cp == 3782) return true;
- if (cp == 3789) return true;
- if (cp >= 3804 && cp <= 3807) return true;
- if (cp == 3840) return true;
- if (cp >= 3904 && cp <= 3911) return true;
- if (cp >= 3913 && cp <= 3948) return true;
- if (cp >= 3953 && cp <= 3969) return true;
- if (cp >= 3976 && cp <= 3991) return true;
- if (cp >= 3993 && cp <= 4028) return true;
- if (cp >= 4096 && cp <= 4150) return true;
- if (cp == 4152) return true;
- if (cp >= 4155 && cp <= 4159) return true;
- if (cp >= 4176 && cp <= 4194) return true;
- if (cp >= 4197 && cp <= 4200) return true;
- if (cp >= 4206 && cp <= 4230) return true;
- if (cp == 4238) return true;
- if (cp >= 4252 && cp <= 4253) return true;
- if (cp >= 4256 && cp <= 4293) return true;
- if (cp == 4295) return true;
- if (cp == 4301) return true;
- if (cp >= 4304 && cp <= 4346) return true;
- if (cp >= 4348 && cp <= 4680) return true;
- if (cp >= 4682 && cp <= 4685) return true;
- if (cp >= 4688 && cp <= 4694) return true;
- if (cp == 4696) return true;
- if (cp >= 4698 && cp <= 4701) return true;
- if (cp >= 4704 && cp <= 4744) return true;
- if (cp >= 4746 && cp <= 4749) return true;
- if (cp >= 4752 && cp <= 4784) return true;
- if (cp >= 4786 && cp <= 4789) return true;
- if (cp >= 4792 && cp <= 4798) return true;
- if (cp == 4800) return true;
- if (cp >= 4802 && cp <= 4805) return true;
- if (cp >= 4808 && cp <= 4822) return true;
- if (cp >= 4824 && cp <= 4880) return true;
- if (cp >= 4882 && cp <= 4885) return true;
- if (cp >= 4888 && cp <= 4954) return true;
- if (cp == 4959) return true;
- if (cp >= 4992 && cp <= 5007) return true;
- if (cp >= 5024 && cp <= 5109) return true;
- if (cp >= 5112 && cp <= 5117) return true;
- if (cp >= 5121 && cp <= 5740) return true;
- if (cp >= 5743 && cp <= 5759) return true;
- if (cp >= 5761 && cp <= 5786) return true;
- if (cp >= 5792 && cp <= 5866) return true;
- if (cp >= 5870 && cp <= 5880) return true;
- if (cp >= 5888 && cp <= 5900) return true;
- if (cp >= 5902 && cp <= 5907) return true;
- if (cp >= 5920 && cp <= 5939) return true;
- if (cp >= 5952 && cp <= 5971) return true;
- if (cp >= 5984 && cp <= 5996) return true;
- if (cp >= 5998 && cp <= 6000) return true;
- if (cp >= 6002 && cp <= 6003) return true;
- if (cp >= 6016 && cp <= 6067) return true;
- if (cp >= 6070 && cp <= 6088) return true;
- if (cp == 6103) return true;
- if (cp == 6108) return true;
- if (cp >= 6176 && cp <= 6263) return true;
- if (cp >= 6272 && cp <= 6314) return true;
- if (cp >= 6320 && cp <= 6389) return true;
- if (cp >= 6400 && cp <= 6430) return true;
- if (cp >= 6432 && cp <= 6443) return true;
- if (cp >= 6448 && cp <= 6456) return true;
- if (cp >= 6480 && cp <= 6509) return true;
- if (cp >= 6512 && cp <= 6516) return true;
- if (cp >= 6528 && cp <= 6571) return true;
- if (cp >= 6576 && cp <= 6601) return true;
- if (cp >= 6656 && cp <= 6683) return true;
- if (cp >= 6688 && cp <= 6750) return true;
- if (cp >= 6753 && cp <= 6772) return true;
- if (cp == 6823) return true;
- if (cp >= 6912 && cp <= 6963) return true;
- if (cp >= 6965 && cp <= 6979) return true;
- if (cp >= 6981 && cp <= 6987) return true;
- if (cp >= 7040 && cp <= 7081) return true;
- if (cp >= 7084 && cp <= 7087) return true;
- if (cp >= 7098 && cp <= 7141) return true;
- if (cp >= 7143 && cp <= 7153) return true;
- if (cp >= 7168 && cp <= 7221) return true;
- if (cp >= 7245 && cp <= 7247) return true;
- if (cp >= 7258 && cp <= 7293) return true;
- if (cp >= 7296 && cp <= 7304) return true;
- if (cp >= 7401 && cp <= 7404) return true;
- if (cp >= 7406 && cp <= 7411) return true;
- if (cp >= 7413 && cp <= 7414) return true;
- if (cp >= 7424 && cp <= 7615) return true;
- if (cp >= 7655 && cp <= 7668) return true;
- if (cp >= 7680 && cp <= 7957) return true;
- if (cp >= 7960 && cp <= 7965) return true;
- if (cp >= 7968 && cp <= 8005) return true;
- if (cp >= 8008 && cp <= 8013) return true;
- if (cp >= 8016 && cp <= 8023) return true;
- if (cp == 8025) return true;
- if (cp == 8027) return true;
- if (cp == 8029) return true;
- if (cp >= 8031 && cp <= 8061) return true;
- if (cp >= 8064 && cp <= 8116) return true;
- if (cp >= 8118 && cp <= 8124) return true;
- if (cp == 8126) return true;
- if (cp >= 8130 && cp <= 8132) return true;
- if (cp >= 8134 && cp <= 8140) return true;
- if (cp >= 8144 && cp <= 8147) return true;
- if (cp >= 8150 && cp <= 8155) return true;
- if (cp >= 8160 && cp <= 8172) return true;
- if (cp >= 8178 && cp <= 8180) return true;
- if (cp >= 8182 && cp <= 8188) return true;
- if (cp == 8305) return true;
- if (cp == 8319) return true;
- if (cp >= 8336 && cp <= 8348) return true;
- if (cp == 8450) return true;
- if (cp == 8455) return true;
- if (cp >= 8458 && cp <= 8467) return true;
- if (cp == 8469) return true;
- if (cp >= 8473 && cp <= 8477) return true;
- if (cp == 8484) return true;
- if (cp == 8486) return true;
- if (cp == 8488) return true;
- if (cp >= 8490 && cp <= 8493) return true;
- if (cp >= 8495 && cp <= 8505) return true;
- if (cp >= 8508 && cp <= 8511) return true;
- if (cp >= 8517 && cp <= 8521) return true;
- if (cp == 8526) return true;
- if (cp >= 8544 && cp <= 8584) return true;
- if (cp >= 9398 && cp <= 9449) return true;
- if (cp >= 11264 && cp <= 11310) return true;
- if (cp >= 11312 && cp <= 11358) return true;
- if (cp >= 11360 && cp <= 11492) return true;
- if (cp >= 11499 && cp <= 11502) return true;
- if (cp >= 11506 && cp <= 11507) return true;
- if (cp >= 11520 && cp <= 11557) return true;
- if (cp == 11559) return true;
- if (cp == 11565) return true;
- if (cp >= 11568 && cp <= 11623) return true;
- if (cp == 11631) return true;
- if (cp >= 11648 && cp <= 11670) return true;
- if (cp >= 11680 && cp <= 11686) return true;
- if (cp >= 11688 && cp <= 11694) return true;
- if (cp >= 11696 && cp <= 11702) return true;
- if (cp >= 11704 && cp <= 11710) return true;
- if (cp >= 11712 && cp <= 11718) return true;
- if (cp >= 11720 && cp <= 11726) return true;
- if (cp >= 11728 && cp <= 11734) return true;
- if (cp >= 11736 && cp <= 11742) return true;
- if (cp >= 11744 && cp <= 11775) return true;
- if (cp == 11823) return true;
- if (cp >= 12293 && cp <= 12295) return true;
- if (cp >= 12321 && cp <= 12329) return true;
- if (cp >= 12337 && cp <= 12341) return true;
- if (cp >= 12344 && cp <= 12348) return true;
- if (cp >= 12353 && cp <= 12438) return true;
- if (cp >= 12445 && cp <= 12447) return true;
- if (cp >= 12449 && cp <= 12538) return true;
- if (cp >= 12540 && cp <= 12543) return true;
- if (cp >= 12549 && cp <= 12590) return true;
- if (cp >= 12593 && cp <= 12686) return true;
- if (cp >= 12704 && cp <= 12730) return true;
- if (cp >= 12784 && cp <= 12799) return true;
- if (cp >= 13312 && cp <= 19893) return true;
- if (cp >= 19968 && cp <= 40938) return true;
- if (cp >= 40960 && cp <= 42124) return true;
- if (cp >= 42192 && cp <= 42237) return true;
- if (cp >= 42240 && cp <= 42508) return true;
- if (cp >= 42512 && cp <= 42527) return true;
- if (cp >= 42538 && cp <= 42539) return true;
- if (cp >= 42560 && cp <= 42606) return true;
- if (cp >= 42612 && cp <= 42619) return true;
- if (cp >= 42623 && cp <= 42735) return true;
- if (cp >= 42775 && cp <= 42783) return true;
- if (cp >= 42786 && cp <= 42888) return true;
- if (cp >= 42891 && cp <= 42926) return true;
- if (cp >= 42928 && cp <= 42935) return true;
- if (cp >= 42999 && cp <= 43009) return true;
- if (cp >= 43011 && cp <= 43013) return true;
- if (cp >= 43015 && cp <= 43018) return true;
- if (cp >= 43020 && cp <= 43047) return true;
- if (cp >= 43072 && cp <= 43123) return true;
- if (cp >= 43136 && cp <= 43203) return true;
- if (cp == 43205) return true;
- if (cp >= 43250 && cp <= 43255) return true;
- if (cp == 43259) return true;
- if (cp == 43261) return true;
- if (cp >= 43274 && cp <= 43306) return true;
- if (cp >= 43312 && cp <= 43346) return true;
- if (cp >= 43360 && cp <= 43388) return true;
- if (cp >= 43392 && cp <= 43442) return true;
- if (cp >= 43444 && cp <= 43455) return true;
- if (cp == 43471) return true;
- if (cp >= 43488 && cp <= 43492) return true;
- if (cp >= 43494 && cp <= 43503) return true;
- if (cp >= 43514 && cp <= 43518) return true;
- if (cp >= 43520 && cp <= 43574) return true;
- if (cp >= 43584 && cp <= 43597) return true;
- if (cp >= 43616 && cp <= 43638) return true;
- if (cp == 43642) return true;
- if (cp >= 43646 && cp <= 43710) return true;
- if (cp == 43712) return true;
- if (cp == 43714) return true;
- if (cp >= 43739 && cp <= 43741) return true;
- if (cp >= 43744 && cp <= 43759) return true;
- if (cp >= 43762 && cp <= 43765) return true;
- if (cp >= 43777 && cp <= 43782) return true;
- if (cp >= 43785 && cp <= 43790) return true;
- if (cp >= 43793 && cp <= 43798) return true;
- if (cp >= 43808 && cp <= 43814) return true;
- if (cp >= 43816 && cp <= 43822) return true;
- if (cp >= 43824 && cp <= 43866) return true;
- if (cp >= 43868 && cp <= 43877) return true;
- if (cp >= 43888 && cp <= 44010) return true;
- if (cp >= 44032 && cp <= 55203) return true;
- if (cp >= 55216 && cp <= 55238) return true;
- if (cp >= 55243 && cp <= 55291) return true;
- if (cp >= 63744 && cp <= 64109) return true;
- if (cp >= 64112 && cp <= 64217) return true;
- if (cp >= 64256 && cp <= 64262) return true;
- if (cp >= 64275 && cp <= 64279) return true;
- if (cp >= 64285 && cp <= 64296) return true;
- if (cp >= 64298 && cp <= 64310) return true;
- if (cp >= 64312 && cp <= 64316) return true;
- if (cp == 64318) return true;
- if (cp >= 64320 && cp <= 64321) return true;
- if (cp >= 64323 && cp <= 64324) return true;
- if (cp >= 64326 && cp <= 64433) return true;
- if (cp >= 64467 && cp <= 64829) return true;
- if (cp >= 64848 && cp <= 64911) return true;
- if (cp >= 64914 && cp <= 64967) return true;
- if (cp >= 65008 && cp <= 65019) return true;
- if (cp >= 65136 && cp <= 65140) return true;
- if (cp >= 65142 && cp <= 65276) return true;
- if (cp >= 65313 && cp <= 65338) return true;
- if (cp >= 65345 && cp <= 65370) return true;
- if (cp >= 65382 && cp <= 65470) return true;
- if (cp >= 65474 && cp <= 65479) return true;
- if (cp >= 65482 && cp <= 65487) return true;
- if (cp >= 65490 && cp <= 65495) return true;
- if (cp >= 65498 && cp <= 65500) return true;
- if (cp >= 65536 && cp <= 65547) return true;
- if (cp >= 65549 && cp <= 65574) return true;
- if (cp >= 65576 && cp <= 65594) return true;
- if (cp >= 65596 && cp <= 65597) return true;
- if (cp >= 65599 && cp <= 65613) return true;
- if (cp >= 65616 && cp <= 65629) return true;
- if (cp >= 65664 && cp <= 65786) return true;
- if (cp >= 65856 && cp <= 65908) return true;
- if (cp >= 66176 && cp <= 66204) return true;
- if (cp >= 66208 && cp <= 66256) return true;
- if (cp >= 66304 && cp <= 66335) return true;
- if (cp >= 66349 && cp <= 66378) return true;
- if (cp >= 66384 && cp <= 66426) return true;
- if (cp >= 66432 && cp <= 66461) return true;
- if (cp >= 66464 && cp <= 66499) return true;
- if (cp >= 66504 && cp <= 66511) return true;
- if (cp >= 66513 && cp <= 66517) return true;
- if (cp >= 66560 && cp <= 66717) return true;
- if (cp >= 66736 && cp <= 66771) return true;
- if (cp >= 66776 && cp <= 66811) return true;
- if (cp >= 66816 && cp <= 66855) return true;
- if (cp >= 66864 && cp <= 66915) return true;
- if (cp >= 67072 && cp <= 67382) return true;
- if (cp >= 67392 && cp <= 67413) return true;
- if (cp >= 67424 && cp <= 67431) return true;
- if (cp >= 67584 && cp <= 67589) return true;
- if (cp == 67592) return true;
- if (cp >= 67594 && cp <= 67637) return true;
- if (cp >= 67639 && cp <= 67640) return true;
- if (cp == 67644) return true;
- if (cp >= 67647 && cp <= 67669) return true;
- if (cp >= 67680 && cp <= 67702) return true;
- if (cp >= 67712 && cp <= 67742) return true;
- if (cp >= 67808 && cp <= 67826) return true;
- if (cp >= 67828 && cp <= 67829) return true;
- if (cp >= 67840 && cp <= 67861) return true;
- if (cp >= 67872 && cp <= 67897) return true;
- if (cp >= 67968 && cp <= 68023) return true;
- if (cp >= 68030 && cp <= 68031) return true;
- if (cp >= 68096 && cp <= 68099) return true;
- if (cp >= 68101 && cp <= 68102) return true;
- if (cp >= 68108 && cp <= 68115) return true;
- if (cp >= 68117 && cp <= 68119) return true;
- if (cp >= 68121 && cp <= 68147) return true;
- if (cp >= 68192 && cp <= 68220) return true;
- if (cp >= 68224 && cp <= 68252) return true;
- if (cp >= 68288 && cp <= 68295) return true;
- if (cp >= 68297 && cp <= 68324) return true;
- if (cp >= 68352 && cp <= 68405) return true;
- if (cp >= 68416 && cp <= 68437) return true;
- if (cp >= 68448 && cp <= 68466) return true;
- if (cp >= 68480 && cp <= 68497) return true;
- if (cp >= 68608 && cp <= 68680) return true;
- if (cp >= 68736 && cp <= 68786) return true;
- if (cp >= 68800 && cp <= 68850) return true;
- if (cp >= 69632 && cp <= 69701) return true;
- if (cp >= 69762 && cp <= 69816) return true;
- if (cp >= 69840 && cp <= 69864) return true;
- if (cp >= 69888 && cp <= 69938) return true;
- if (cp >= 69968 && cp <= 70002) return true;
- if (cp == 70006) return true;
- if (cp >= 70016 && cp <= 70079) return true;
- if (cp >= 70081 && cp <= 70084) return true;
- if (cp == 70106) return true;
- if (cp == 70108) return true;
- if (cp >= 70144 && cp <= 70161) return true;
- if (cp >= 70163 && cp <= 70196) return true;
- if (cp == 70199) return true;
- if (cp == 70206) return true;
- if (cp >= 70272 && cp <= 70278) return true;
- if (cp == 70280) return true;
- if (cp >= 70282 && cp <= 70285) return true;
- if (cp >= 70287 && cp <= 70301) return true;
- if (cp >= 70303 && cp <= 70312) return true;
- if (cp >= 70320 && cp <= 70376) return true;
- if (cp >= 70400 && cp <= 70403) return true;
- if (cp >= 70405 && cp <= 70412) return true;
- if (cp >= 70415 && cp <= 70416) return true;
- if (cp >= 70419 && cp <= 70440) return true;
- if (cp >= 70442 && cp <= 70448) return true;
- if (cp >= 70450 && cp <= 70451) return true;
- if (cp >= 70453 && cp <= 70457) return true;
- if (cp >= 70461 && cp <= 70468) return true;
- if (cp >= 70471 && cp <= 70472) return true;
- if (cp >= 70475 && cp <= 70476) return true;
- if (cp == 70480) return true;
- if (cp == 70487) return true;
- if (cp >= 70493 && cp <= 70499) return true;
- if (cp >= 70656 && cp <= 70721) return true;
- if (cp >= 70723 && cp <= 70725) return true;
- if (cp >= 70727 && cp <= 70730) return true;
- if (cp >= 70784 && cp <= 70849) return true;
- if (cp >= 70852 && cp <= 70853) return true;
- if (cp == 70855) return true;
- if (cp >= 71040 && cp <= 71093) return true;
- if (cp >= 71096 && cp <= 71102) return true;
- if (cp >= 71128 && cp <= 71133) return true;
- if (cp >= 71168 && cp <= 71230) return true;
- if (cp == 71232) return true;
- if (cp == 71236) return true;
- if (cp >= 71296 && cp <= 71349) return true;
- if (cp >= 71424 && cp <= 71449) return true;
- if (cp >= 71453 && cp <= 71466) return true;
- if (cp >= 71840 && cp <= 71903) return true;
- if (cp == 71935) return true;
- if (cp >= 72192 && cp <= 72242) return true;
- if (cp >= 72245 && cp <= 72254) return true;
- if (cp >= 72272 && cp <= 72323) return true;
- if (cp >= 72326 && cp <= 72343) return true;
- if (cp >= 72384 && cp <= 72440) return true;
- if (cp >= 72704 && cp <= 72712) return true;
- if (cp >= 72714 && cp <= 72758) return true;
- if (cp >= 72760 && cp <= 72766) return true;
- if (cp == 72768) return true;
- if (cp >= 72818 && cp <= 72847) return true;
- if (cp >= 72850 && cp <= 72871) return true;
- if (cp >= 72873 && cp <= 72886) return true;
- if (cp >= 72960 && cp <= 72966) return true;
- if (cp >= 72968 && cp <= 72969) return true;
- if (cp >= 72971 && cp <= 73014) return true;
- if (cp == 73018) return true;
- if (cp >= 73020 && cp <= 73021) return true;
- if (cp >= 73023 && cp <= 73025) return true;
- if (cp == 73027) return true;
- if (cp >= 73030 && cp <= 73031) return true;
- if (cp >= 73728 && cp <= 74649) return true;
- if (cp >= 74752 && cp <= 74862) return true;
- if (cp >= 74880 && cp <= 75075) return true;
- if (cp >= 77824 && cp <= 78894) return true;
- if (cp >= 82944 && cp <= 83526) return true;
- if (cp >= 92160 && cp <= 92728) return true;
- if (cp >= 92736 && cp <= 92766) return true;
- if (cp >= 92880 && cp <= 92909) return true;
- if (cp >= 92928 && cp <= 92982) return true;
- if (cp >= 92992 && cp <= 92995) return true;
- if (cp >= 93027 && cp <= 93047) return true;
- if (cp >= 93053 && cp <= 93071) return true;
- if (cp >= 93952 && cp <= 94020) return true;
- if (cp >= 94032 && cp <= 94078) return true;
- if (cp >= 94099 && cp <= 94111) return true;
- if (cp >= 94176 && cp <= 94177) return true;
- if (cp >= 94208 && cp <= 100332) return true;
- if (cp >= 100352 && cp <= 101106) return true;
- if (cp >= 110592 && cp <= 110878) return true;
- if (cp >= 110960 && cp <= 111355) return true;
- if (cp >= 113664 && cp <= 113770) return true;
- if (cp >= 113776 && cp <= 113788) return true;
- if (cp >= 113792 && cp <= 113800) return true;
- if (cp >= 113808 && cp <= 113817) return true;
- if (cp == 113822) return true;
- if (cp >= 119808 && cp <= 119892) return true;
- if (cp >= 119894 && cp <= 119964) return true;
- if (cp >= 119966 && cp <= 119967) return true;
- if (cp == 119970) return true;
- if (cp >= 119973 && cp <= 119974) return true;
- if (cp >= 119977 && cp <= 119980) return true;
- if (cp >= 119982 && cp <= 119993) return true;
- if (cp == 119995) return true;
- if (cp >= 119997 && cp <= 120003) return true;
- if (cp >= 120005 && cp <= 120069) return true;
- if (cp >= 120071 && cp <= 120074) return true;
- if (cp >= 120077 && cp <= 120084) return true;
- if (cp >= 120086 && cp <= 120092) return true;
- if (cp >= 120094 && cp <= 120121) return true;
- if (cp >= 120123 && cp <= 120126) return true;
- if (cp >= 120128 && cp <= 120132) return true;
- if (cp == 120134) return true;
- if (cp >= 120138 && cp <= 120144) return true;
- if (cp >= 120146 && cp <= 120485) return true;
- if (cp >= 120488 && cp <= 120512) return true;
- if (cp >= 120514 && cp <= 120538) return true;
- if (cp >= 120540 && cp <= 120570) return true;
- if (cp >= 120572 && cp <= 120596) return true;
- if (cp >= 120598 && cp <= 120628) return true;
- if (cp >= 120630 && cp <= 120654) return true;
- if (cp >= 120656 && cp <= 120686) return true;
- if (cp >= 120688 && cp <= 120712) return true;
- if (cp >= 120714 && cp <= 120744) return true;
- if (cp >= 120746 && cp <= 120770) return true;
- if (cp >= 120772 && cp <= 120779) return true;
- if (cp >= 122880 && cp <= 122886) return true;
- if (cp >= 122888 && cp <= 122904) return true;
- if (cp >= 122907 && cp <= 122913) return true;
- if (cp >= 122915 && cp <= 122916) return true;
- if (cp >= 122918 && cp <= 122922) return true;
- if (cp >= 124928 && cp <= 125124) return true;
- if (cp >= 125184 && cp <= 125251) return true;
- if (cp == 125255) return true;
- if (cp >= 126464 && cp <= 126467) return true;
- if (cp >= 126469 && cp <= 126495) return true;
- if (cp >= 126497 && cp <= 126498) return true;
- if (cp == 126500) return true;
- if (cp == 126503) return true;
- if (cp >= 126505 && cp <= 126514) return true;
- if (cp >= 126516 && cp <= 126519) return true;
- if (cp == 126521) return true;
- if (cp == 126523) return true;
- if (cp == 126530) return true;
- if (cp == 126535) return true;
- if (cp == 126537) return true;
- if (cp == 126539) return true;
- if (cp >= 126541 && cp <= 126543) return true;
- if (cp >= 126545 && cp <= 126546) return true;
- if (cp == 126548) return true;
- if (cp == 126551) return true;
- if (cp == 126553) return true;
- if (cp == 126555) return true;
- if (cp == 126557) return true;
- if (cp == 126559) return true;
- if (cp >= 126561 && cp <= 126562) return true;
- if (cp == 126564) return true;
- if (cp >= 126567 && cp <= 126570) return true;
- if (cp >= 126572 && cp <= 126578) return true;
- if (cp >= 126580 && cp <= 126583) return true;
- if (cp >= 126585 && cp <= 126588) return true;
- if (cp == 126590) return true;
- if (cp >= 126592 && cp <= 126601) return true;
- if (cp >= 126603 && cp <= 126619) return true;
- if (cp >= 126625 && cp <= 126627) return true;
- if (cp >= 126629 && cp <= 126633) return true;
- if (cp >= 126635 && cp <= 126651) return true;
- if (cp >= 127280 && cp <= 127305) return true;
- if (cp >= 127312 && cp <= 127337) return true;
- if (cp >= 127344 && cp <= 127369) return true;
- if (cp >= 131072 && cp <= 173782) return true;
- if (cp >= 173824 && cp <= 177972) return true;
- if (cp >= 177984 && cp <= 178205) return true;
- if (cp >= 178208 && cp <= 183969) return true;
- if (cp >= 183984 && cp <= 191456) return true;
- if (cp >= 194560 && cp <= 195101) return true;
-
+ var idx = Math.floor(cp / 32);
+ var byt = isAlphaBitm[idx];
+ if (byt) {
+ var mask = Math.pow(2, cp - idx * 32);
+ return (byt & mask) != 0;
+ }
return false;
}
+var isDigitBitm = [];
+var a = isDigitBitm;
+a[1] = 0x3FF0000; a[51] = 0x3FF; a[55] = 0x3FF0000; a[62] = 0x3FF;
+a[75] = 0xFFC0; a[79] = 0xFFC0; a[83] = 0xFFC0; a[87] = 0xFFC0;
+a[91] = 0xFFC0; a[95] = 0xFFC0; a[99] = 0xFFC0; a[103] = 0xFFC0;
+a[107] = 0xFFC0; a[111] = 0xFFC0; a[114] = 0x3FF0000; a[118] = 0x3FF0000;
+a[121] = 0x3FF; a[130] = 0x3FF; a[132] = 0x3FF0000; a[191] = 0x3FF;
+a[192] = 0x3FF0000; a[202] = 0xFFC0; a[206] = 0x3FF0000; a[212] = 0x3FF03FF;
+a[218] = 0x3FF0000; a[221] = 0x3FF0000; a[226] = 0x3FF03FF; a[1329] = 0x3FF;
+a[1350] = 0x3FF0000; a[1352] = 0x3FF; a[1358] = 0x3FF0000; a[1359] = 0x3FF0000;
+a[1362] = 0x3FF0000; a[1375] = 0x3FF0000; a[2040] = 0x3FF0000; a[2085] = 0x3FF;
+a[2179] = 0xFFC0; a[2183] = 0x3FF0000; a[2185] = 0xFFC00000; a[2190] = 0x3FF0000;
+a[2199] = 0x3FF0000; a[2210] = 0x3FF0000; a[2214] = 0x3FF0000; a[2226] = 0x3FF0000;
+a[2230] = 0x3FF; a[2233] = 0x3FF0000; a[2247] = 0x3FF; a[2274] = 0x3FF0000;
+a[2282] = 0x3FF0000; a[2899] = 0x3FF; a[2906] = 0x3FF0000; a[3774] = 0xFFFFC000;
+a[3775] = 0xFFFFFFFF; a[3914] = 0x3FF0000;
+delete a;
+
function isDigit(c) {
var cp = ord(c);
- if (cp >= 48 && cp <= 57)
- return true;
- if (cp >= 1632 && cp <= 1641)
- return true;
- if (cp >= 1776 && cp <= 1785)
- return true;
- if (cp >= 1984 && cp <= 1993)
- return true;
- if (cp >= 2406 && cp <= 2415)
- return true;
- if (cp >= 2534 && cp <= 2543)
- return true;
- if (cp >= 2662 && cp <= 2671)
- return true;
- if (cp >= 2790 && cp <= 2799)
- return true;
- if (cp >= 2918 && cp <= 2927)
- return true;
- if (cp >= 3046 && cp <= 3055)
- return true;
- if (cp >= 3174 && cp <= 3183)
- return true;
- if (cp >= 3302 && cp <= 3311)
- return true;
- if (cp >= 3430 && cp <= 3439)
- return true;
- if (cp >= 3558 && cp <= 3567)
- return true;
- if (cp >= 3664 && cp <= 3673)
- return true;
- if (cp >= 3792 && cp <= 3801)
- return true;
- if (cp >= 3872 && cp <= 3881)
- return true;
- if (cp >= 4160 && cp <= 4169)
- return true;
- if (cp >= 4240 && cp <= 4249)
- return true;
- if (cp >= 6112 && cp <= 6121)
- return true;
- if (cp >= 6160 && cp <= 6169)
- return true;
- if (cp >= 6470 && cp <= 6479)
- return true;
- if (cp >= 6608 && cp <= 6617)
- return true;
- if (cp >= 6784 && cp <= 6793)
- return true;
- if (cp >= 6800 && cp <= 6809)
- return true;
- if (cp >= 6992 && cp <= 7001)
- return true;
- if (cp >= 7088 && cp <= 7097)
- return true;
- if (cp >= 7232 && cp <= 7241)
- return true;
- if (cp >= 7248 && cp <= 7257)
- return true;
- if (cp >= 42528 && cp <= 42537)
- return true;
- if (cp >= 43216 && cp <= 43225)
- return true;
- if (cp >= 43264 && cp <= 43273)
- return true;
- if (cp >= 43472 && cp <= 43481)
- return true;
- if (cp >= 43504 && cp <= 43513)
- return true;
- if (cp >= 43600 && cp <= 43609)
- return true;
- if (cp >= 44016 && cp <= 44025)
- return true;
- if (cp >= 65296 && cp <= 65305)
- return true;
- if (cp >= 66720 && cp <= 66729)
- return true;
- if (cp >= 69734 && cp <= 69743)
- return true;
- if (cp >= 69872 && cp <= 69881)
- return true;
- if (cp >= 69942 && cp <= 69951)
- return true;
- if (cp >= 70096 && cp <= 70105)
- return true;
- if (cp >= 70384 && cp <= 70393)
- return true;
- if (cp >= 70736 && cp <= 70745)
- return true;
- if (cp >= 70864 && cp <= 70873)
- return true;
- if (cp >= 71248 && cp <= 71257)
- return true;
- if (cp >= 71360 && cp <= 71369)
- return true;
- if (cp >= 71472 && cp <= 71481)
- return true;
- if (cp >= 71904 && cp <= 71913)
- return true;
- if (cp >= 72784 && cp <= 72793)
- return true;
- if (cp >= 73040 && cp <= 73049)
- return true;
- if (cp >= 92768 && cp <= 92777)
- return true;
- if (cp >= 93008 && cp <= 93017)
- return true;
- if (cp >= 120782 && cp <= 120831)
- return true;
- if (cp >= 125264 && cp <= 125273)
- return true;
-
+ var idx = Math.floor(cp / 32);
+ var byt = isDigitBitm[idx];
+ if (byt) {
+ var mask = Math.pow(2, cp - idx * 32);
+ return (byt & mask) != 0;
+ }
return false;
}
@@ -2135,654 +536,370 @@ function isSpace(c) {
}
function isXdigit(c) { return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); }
+var isPrintBitm = (function(){
+ var a = 0xFFFFFFFF;
+ var b = 0x7FFFFFFF;
+ var c = 0x7FFFFF;
+ var d = 0x3FFFFFFF;
+ var e = 0xFFFF0FFF;
+ var f = 0xFFFFFFF;
+ var g = 0x3FFFFF;
+ var h = 0xFFFF00FF;
+ var i = 0x1FFFFFFF;
+ var j = 0x3FFFFFF;
+ var k = 0xFFFFFF;
+ var l = 0xFFFF0000;
+ var m = 0xFFFFFFFE;
+ var n = 0x7FFFFFF;
+ var o = 0xFFFFF;
+ var p = 0xFFFF1FFF;
+ var q = 0xDFFFFFFF;
+ var r = 0xF3EDFDFF;
+ var s = 0xFFFDDFEF;
+ var t = 0x1FFFFFF;
+ var u = 0xFFDFFFFF;
+ var v = 0xFF3FFFFF;
+ var w = 0xFFFF7FFF;
+ var x = 0xFFFF000F;
+ var y = 0xFFFCFFFF;
+ var z = 0x3FF00FF;
+ var a0 = 0x1FFFFF;
+ var a1 = 0xFE7FFFFF;
+ var a2 = 0x3FFFF;
+ var a3 = 0x7FFF3FFF;
+ var a4 = 0xFFF99FEF;
+ var a5 = 0xFFFF20BF;
+ var a6 = 0x3F3FFFFF;
+ var a7 = 0x3FF03FF;
+ var a8 = 0xFFFF07FF;
+ var a9 = 0x9FFFFFFF;
+ var b0 = 0xFBFFFFFF;
+ var b1 = 0x1FFFF;
+ var b2 = 0xE3FFFFFF;
+ var b3 = 0x7F7F7F7F;
+ var b4 = 0xFFFE7FFF;
+ var b5 = 0xFFFF003F;
+ var b6 = 0xFFFF3FFF;
+ var b7 = 0xFFFF03FF;
+ var b8 = 0x7FFFF;
+ var b9 = 0xFFFF0003;
+ var c0 = 0xFFFFFFEF;
+ return [
+ 0, a, a, b, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, 0xFCFFFFFF, 0xFFFFD7F0, 0xFFFFFFFB, a, a, a, a, a, a, a, a, a, a,
+ a, 0xFFFEFFFF, a1, m, 0xFFFEE6FF, a, h, 0x1F07FF, q, a, a, a, a, a, a, a, 0xFFFFBFFF, a, 0xFFFFE7FF, a,
+ a, a2, a, n, a, a3, 0x4FFFFFFF, 0x7FF, 0, 0x3FDFFFFF, 0xFFF00000, a, a, a, a, a, a4, 0xF3C5FDFF, 0xB080799F, 0x3FFFFFCF,
+ 0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x3FFFC0, 0xFFFBBFEE, r, 0x13BBF, 0xFE03FFCF, 0xFFF99FEE, r, 0xB0C0399F, 0xFFFFCF, 0xD63DC7EC, 0xC3FFC718, 0x813DC7, 0x7FFFFC0, s, 0xE3FFFDFF, 0x7603DDF, 0xFF00FFCF,
+ s, 0xF3EFFDFF, 0x40603DDF, 0x6FFCF, s, a, 0xFFF0FDDF, 0xFFFFFFCF, 0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x1CFFC0, m, 0x87FFFFFF, f, 0, 0xFEF02596, 0x3BFFECAE, 0xF3FF3F5F, 0,
+ a, a, 0xFFFFFEFF, 0xFFFE1FFF, 0xFEFFFFFF, q, 0x7FFDFFF, 0, a, a, a, a, a, a, a5, a, a, a, a, a,
+ a, a, a, a, a, a, 0x3D7F3DFF, a, 0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, a, 0xFF3DFFFF, a, 0xE7FFFFFF, i, j, a, a, a6,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ i, a, a, t, 0x1FDFFF, c, o, 0xDDFFF, a, a, d, a7, 0x3FF7FFF, a, a, k, a, a8, a, g,
+ b, 0xFFF0FFF, 0xFFFFFFF1, 0x1F3FFF, a, e, 0xC7FF03FF, a, 0xCFFFFFFF, a, b, a9, a7, a3, 0, 0, a, a, e, i,
+ a, a, a, 0xF00FFFFF, a, 0xF8FFFFFF, 0xFFFFE3FF, a, 0x1FF, 0, h, j, a, a, a, a, a, a, a, b0,
+ a, a, a, a, a, a, a, a, a6, a, 0xAAFF3F3F, d, a, u, 0xEFCFFFDF, 0x7FDCFFFF, a, 0xFFFFFCFF, a, 0xFFF3FFDF,
+ 0x1FFF7FFF, a, l, b1, a, a, a, a, e, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, 0x7F, 0x7FF, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, 0xFFCFFFFF, v, b2, 0x7FDFF, 0xF000, a, w, b, a, a, a, a, 0xFE0FFFFF,
+ a, a5, a, 0x800180FF, c, b3, b3, a, a, a, 0x3FF, 0, b0, a, a, o, a, a, a, a,
+ a, a, g, 0xFFF0000, a, a, m, a, a1, a, a, a, 0xFFFFFFE0, b4, a, a, w, n, a, x,
+ b, a, a, a, a, a, a, b, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, g, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0x7FF,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, p, a, 0xFFFF007F, a,
+ a, a, a, a, a, a, a, a, a, 0xFFF, a, a, a, a, a, k, a, a, a, a,
+ a, 0xFF7FFF, 0, 0xFF800000, a, 0x3FF0FFF, a, k, a, a, 0x3FFC03F, d, a, a, 0x800FFFFF, i, a, a, 0xC3FFBFFF, b,
+ a, c, 0xF3FF3FFF, a, a, a, 0xF8000007, c, 0x7E7E7E, 0xFFFF7F7F, a, b5, a, a, a, 0x3FF3FFF, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, x, 0xFFFFF87F, f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, b6, a, a, j, 0, 0xE0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, a, a, a, 0xFFF80003, a, a, a, a, a,
+ a, a, a, a, a, a, l, a, y, a, 0xFF, 0x3FFF0000, j, a, 0xFFF7FFFF, 0xFFDF0F7F, a, a, a, a9,
+ m, a, a, a, a, b, 0x1CFCFCFC, 0x3E007F7F, 0xFFFFEFFF, 0xB7FFFF7F, 0x3FFF3FFF, 0, a, a, a, n, 0xFFFFFF87, 0xFF8FFFFF, a, a,
+ 0xFFF7FFF, 0x1, l, d, 0, 0, 0, 0, i, a, b1, f, a, 0xFFFFE00F, a8, n, 0xBFFFFFFF, a, 0x3FFF0F, 0,
+ a, a, a, a, d, b7, 0xFF0FFFFF, f, a, h, a, 0x800F, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, a, c, g, 0xFF, 0, 0, 0, 0, 0xFFFFFD3F, 0x91BFFFFF, 0xFFBFFFFF, a, b, 0xFF80, 0, 0xF837FFFF,
+ 0x8FFFFFFF, 0x83FFFFFF, 0, 0, a, 0xF0FFFFFF, y, a, 0xFEEFF06F, 0x870FFFFF, 0x1FF00FF, a, a, 0, a, 0x7FF87F, a, 0xFE3FFFFF, v, 0xFF07FFFF,
+ 0x1E03FFFF, 0xFE00, 0, 0, a, a, 0x1FF, 0, a, b8, a, 0xFC07FFFF, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, 0xFFFC3FFF, 0x8000FFFF,
+ a, a, b9, 0x3FF01FF, a, u, x, c, a, a, b6, 0x1FFFFE, 0xFFFBFFFF, b, 0, 0, 0xBFFFBD7F, b7, a, 0x3FF07FF,
+ a4, r, 0xE081399F, 0x1F1FCF, 0, 0, 0, 0, a, a, 0x2BFFFFFF, 0, a, a, z, 0, 0, 0, 0, 0,
+ a, v, d, 0, a, a, 0x3FF001F, 0x1FFF, a, k, 0x3FF, 0, b2, e, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, a, a, 0x8007FFFF, 0, 0, 0, 0, 0, 0, 0, 0, a, a, h, a,
+ 0xDFFFFFCF, 0x7, a, t, 0, 0, 0, 0, 0, 0, 0, 0, 0xFFFFFDFF, 0xFF7FFFFF, b5, p, y, 0x7FFEFF, 0, 0,
+ 0xFFFFFB7F, 0xB47FFFFF, z, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, j, 0, 0, 0, a, a, a, 0x1F7FFF,
+ a, a, a, a, a, a, 0xF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, 0x7FFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, 0x7F, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, t, b, 0xC3FF,
+ 0, 0, l, 0x3F3FFF, a, a, 0xFBFF003F, 0xE0FFFFFB, 0xFFFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, 0xFFFF001F, b,
+ 0xFFFF8000, 0, 0, 0x3, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0x1FFF, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b8,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, b, 0, 0, l, a, a, a, a, a, a, a, a, a, a, a, f,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, 0x1FFF07FF, 0xF3FF01FF, 0xF, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a, a, a, a, g,
+ a, 0xFFFFFE7F, a, a, a, a, a, 0x1FF, a, a, 0x3F, 0, 0, 0, 0, 0, a, a, c, a2,
+ 0, 0, 0, 0, a, a, u, a, q, 0xEBFFDE64, c0, a, 0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, a, a, a, a, a,
+ a, a, a, a, a, 0xFFFFFF3F, a, a, a, a, a, a, a, a, 0xFFFFCFFF, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, 0xF8000FFF, 0xFFFE, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0xF9FFFF7F, 0x7DB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, a, a, a, a, a, a, 0x7FFF9F, 0, a, a, 0xC3FF07FF, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, c0, 0xAF7FE96, 0xAA96EA84, 0x5EF7F796, 0xFFFFBFF, 0xFFFFBEE, 0, 0x30000,
+ 0, 0, 0, 0, 0, 0, 0, 0, a, e, a, a, o, b4, 0xFFFEFFFE, g, p, w, a, e,
+ a, 0x1FFF, 0, 0xFFFFFFC0, 0xFFFF0007, f, 0x301FF, 0x3F, 0, 0, 0, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a0, 0x1FF1FFF, a, a, a, o, a, a, a0, 0, e, a, z, a, h, 0x3FFF, 0, 0,
+ e, b, p, 0xFFF, k, 0, 0xFFFF0001, 0x7F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, c, 0, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a0, a, a, a, a, a, a, d, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, b9, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
+ a, a, a, 0x1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, d
+ ];})();
+
function isPrint(c) {
var cp = ord(c);
- if (cp >= 32 && cp <= 126) return true;
- if (cp >= 160 && cp <= 887) return true;
- if (cp >= 890 && cp <= 895) return true;
- if (cp >= 900 && cp <= 906) return true;
- if (cp == 908) return true;
- if (cp >= 910 && cp <= 929) return true;
- if (cp >= 931 && cp <= 1327) return true;
- if (cp >= 1329 && cp <= 1366) return true;
- if (cp >= 1369 && cp <= 1375) return true;
- if (cp >= 1377 && cp <= 1415) return true;
- if (cp >= 1417 && cp <= 1418) return true;
- if (cp >= 1421 && cp <= 1423) return true;
- if (cp >= 1425 && cp <= 1479) return true;
- if (cp >= 1488 && cp <= 1514) return true;
- if (cp >= 1520 && cp <= 1524) return true;
- if (cp >= 1536 && cp <= 1564) return true;
- if (cp >= 1566 && cp <= 1805) return true;
- if (cp >= 1807 && cp <= 1866) return true;
- if (cp >= 1869 && cp <= 1969) return true;
- if (cp >= 1984 && cp <= 2042) return true;
- if (cp >= 2048 && cp <= 2093) return true;
- if (cp >= 2096 && cp <= 2110) return true;
- if (cp >= 2112 && cp <= 2139) return true;
- if (cp == 2142) return true;
- if (cp >= 2144 && cp <= 2154) return true;
- if (cp >= 2208 && cp <= 2228) return true;
- if (cp >= 2230 && cp <= 2237) return true;
- if (cp >= 2260 && cp <= 2435) return true;
- if (cp >= 2437 && cp <= 2444) return true;
- if (cp >= 2447 && cp <= 2448) return true;
- if (cp >= 2451 && cp <= 2472) return true;
- if (cp >= 2474 && cp <= 2480) return true;
- if (cp == 2482) return true;
- if (cp >= 2486 && cp <= 2489) return true;
- if (cp >= 2492 && cp <= 2500) return true;
- if (cp >= 2503 && cp <= 2504) return true;
- if (cp >= 2507 && cp <= 2510) return true;
- if (cp == 2519) return true;
- if (cp >= 2524 && cp <= 2525) return true;
- if (cp >= 2527 && cp <= 2531) return true;
- if (cp >= 2534 && cp <= 2557) return true;
- if (cp >= 2561 && cp <= 2563) return true;
- if (cp >= 2565 && cp <= 2570) return true;
- if (cp >= 2575 && cp <= 2576) return true;
- if (cp >= 2579 && cp <= 2600) return true;
- if (cp >= 2602 && cp <= 2608) return true;
- if (cp >= 2610 && cp <= 2611) return true;
- if (cp >= 2613 && cp <= 2614) return true;
- if (cp >= 2616 && cp <= 2617) return true;
- if (cp == 2620) return true;
- if (cp >= 2622 && cp <= 2626) return true;
- if (cp >= 2631 && cp <= 2632) return true;
- if (cp >= 2635 && cp <= 2637) return true;
- if (cp == 2641) return true;
- if (cp >= 2649 && cp <= 2652) return true;
- if (cp == 2654) return true;
- if (cp >= 2662 && cp <= 2677) return true;
- if (cp >= 2689 && cp <= 2691) return true;
- if (cp >= 2693 && cp <= 2701) return true;
- if (cp >= 2703 && cp <= 2705) return true;
- if (cp >= 2707 && cp <= 2728) return true;
- if (cp >= 2730 && cp <= 2736) return true;
- if (cp >= 2738 && cp <= 2739) return true;
- if (cp >= 2741 && cp <= 2745) return true;
- if (cp >= 2748 && cp <= 2757) return true;
- if (cp >= 2759 && cp <= 2761) return true;
- if (cp >= 2763 && cp <= 2765) return true;
- if (cp == 2768) return true;
- if (cp >= 2784 && cp <= 2787) return true;
- if (cp >= 2790 && cp <= 2801) return true;
- if (cp >= 2809 && cp <= 2815) return true;
- if (cp >= 2817 && cp <= 2819) return true;
- if (cp >= 2821 && cp <= 2828) return true;
- if (cp >= 2831 && cp <= 2832) return true;
- if (cp >= 2835 && cp <= 2856) return true;
- if (cp >= 2858 && cp <= 2864) return true;
- if (cp >= 2866 && cp <= 2867) return true;
- if (cp >= 2869 && cp <= 2873) return true;
- if (cp >= 2876 && cp <= 2884) return true;
- if (cp >= 2887 && cp <= 2888) return true;
- if (cp >= 2891 && cp <= 2893) return true;
- if (cp >= 2902 && cp <= 2903) return true;
- if (cp >= 2908 && cp <= 2909) return true;
- if (cp >= 2911 && cp <= 2915) return true;
- if (cp >= 2918 && cp <= 2935) return true;
- if (cp >= 2946 && cp <= 2947) return true;
- if (cp >= 2949 && cp <= 2954) return true;
- if (cp >= 2958 && cp <= 2960) return true;
- if (cp >= 2962 && cp <= 2965) return true;
- if (cp >= 2969 && cp <= 2970) return true;
- if (cp == 2972) return true;
- if (cp >= 2974 && cp <= 2975) return true;
- if (cp >= 2979 && cp <= 2980) return true;
- if (cp >= 2984 && cp <= 2986) return true;
- if (cp >= 2990 && cp <= 3001) return true;
- if (cp >= 3006 && cp <= 3010) return true;
- if (cp >= 3014 && cp <= 3016) return true;
- if (cp >= 3018 && cp <= 3021) return true;
- if (cp == 3024) return true;
- if (cp == 3031) return true;
- if (cp >= 3046 && cp <= 3066) return true;
- if (cp >= 3072 && cp <= 3075) return true;
- if (cp >= 3077 && cp <= 3084) return true;
- if (cp >= 3086 && cp <= 3088) return true;
- if (cp >= 3090 && cp <= 3112) return true;
- if (cp >= 3114 && cp <= 3129) return true;
- if (cp >= 3133 && cp <= 3140) return true;
- if (cp >= 3142 && cp <= 3144) return true;
- if (cp >= 3146 && cp <= 3149) return true;
- if (cp >= 3157 && cp <= 3158) return true;
- if (cp >= 3160 && cp <= 3162) return true;
- if (cp >= 3168 && cp <= 3171) return true;
- if (cp >= 3174 && cp <= 3183) return true;
- if (cp >= 3192 && cp <= 3203) return true;
- if (cp >= 3205 && cp <= 3212) return true;
- if (cp >= 3214 && cp <= 3216) return true;
- if (cp >= 3218 && cp <= 3240) return true;
- if (cp >= 3242 && cp <= 3251) return true;
- if (cp >= 3253 && cp <= 3257) return true;
- if (cp >= 3260 && cp <= 3268) return true;
- if (cp >= 3270 && cp <= 3272) return true;
- if (cp >= 3274 && cp <= 3277) return true;
- if (cp >= 3285 && cp <= 3286) return true;
- if (cp == 3294) return true;
- if (cp >= 3296 && cp <= 3299) return true;
- if (cp >= 3302 && cp <= 3311) return true;
- if (cp >= 3313 && cp <= 3314) return true;
- if (cp >= 3328 && cp <= 3331) return true;
- if (cp >= 3333 && cp <= 3340) return true;
- if (cp >= 3342 && cp <= 3344) return true;
- if (cp >= 3346 && cp <= 3396) return true;
- if (cp >= 3398 && cp <= 3400) return true;
- if (cp >= 3402 && cp <= 3407) return true;
- if (cp >= 3412 && cp <= 3427) return true;
- if (cp >= 3430 && cp <= 3455) return true;
- if (cp >= 3458 && cp <= 3459) return true;
- if (cp >= 3461 && cp <= 3478) return true;
- if (cp >= 3482 && cp <= 3505) return true;
- if (cp >= 3507 && cp <= 3515) return true;
- if (cp == 3517) return true;
- if (cp >= 3520 && cp <= 3526) return true;
- if (cp == 3530) return true;
- if (cp >= 3535 && cp <= 3540) return true;
- if (cp == 3542) return true;
- if (cp >= 3544 && cp <= 3551) return true;
- if (cp >= 3558 && cp <= 3567) return true;
- if (cp >= 3570 && cp <= 3572) return true;
- if (cp >= 3585 && cp <= 3642) return true;
- if (cp >= 3647 && cp <= 3675) return true;
- if (cp >= 3713 && cp <= 3714) return true;
- if (cp == 3716) return true;
- if (cp >= 3719 && cp <= 3720) return true;
- if (cp == 3722) return true;
- if (cp == 3725) return true;
- if (cp >= 3732 && cp <= 3735) return true;
- if (cp >= 3737 && cp <= 3743) return true;
- if (cp >= 3745 && cp <= 3747) return true;
- if (cp == 3749) return true;
- if (cp == 3751) return true;
- if (cp >= 3754 && cp <= 3755) return true;
- if (cp >= 3757 && cp <= 3769) return true;
- if (cp >= 3771 && cp <= 3773) return true;
- if (cp >= 3776 && cp <= 3780) return true;
- if (cp == 3782) return true;
- if (cp >= 3784 && cp <= 3789) return true;
- if (cp >= 3792 && cp <= 3801) return true;
- if (cp >= 3804 && cp <= 3807) return true;
- if (cp >= 3840 && cp <= 3911) return true;
- if (cp >= 3913 && cp <= 3948) return true;
- if (cp >= 3953 && cp <= 3991) return true;
- if (cp >= 3993 && cp <= 4028) return true;
- if (cp >= 4030 && cp <= 4044) return true;
- if (cp >= 4046 && cp <= 4058) return true;
- if (cp >= 4096 && cp <= 4293) return true;
- if (cp == 4295) return true;
- if (cp == 4301) return true;
- if (cp >= 4304 && cp <= 4680) return true;
- if (cp >= 4682 && cp <= 4685) return true;
- if (cp >= 4688 && cp <= 4694) return true;
- if (cp == 4696) return true;
- if (cp >= 4698 && cp <= 4701) return true;
- if (cp >= 4704 && cp <= 4744) return true;
- if (cp >= 4746 && cp <= 4749) return true;
- if (cp >= 4752 && cp <= 4784) return true;
- if (cp >= 4786 && cp <= 4789) return true;
- if (cp >= 4792 && cp <= 4798) return true;
- if (cp == 4800) return true;
- if (cp >= 4802 && cp <= 4805) return true;
- if (cp >= 4808 && cp <= 4822) return true;
- if (cp >= 4824 && cp <= 4880) return true;
- if (cp >= 4882 && cp <= 4885) return true;
- if (cp >= 4888 && cp <= 4954) return true;
- if (cp >= 4957 && cp <= 4988) return true;
- if (cp >= 4992 && cp <= 5017) return true;
- if (cp >= 5024 && cp <= 5109) return true;
- if (cp >= 5112 && cp <= 5117) return true;
- if (cp >= 5120 && cp <= 5788) return true;
- if (cp >= 5792 && cp <= 5880) return true;
- if (cp >= 5888 && cp <= 5900) return true;
- if (cp >= 5902 && cp <= 5908) return true;
- if (cp >= 5920 && cp <= 5942) return true;
- if (cp >= 5952 && cp <= 5971) return true;
- if (cp >= 5984 && cp <= 5996) return true;
- if (cp >= 5998 && cp <= 6000) return true;
- if (cp >= 6002 && cp <= 6003) return true;
- if (cp >= 6016 && cp <= 6109) return true;
- if (cp >= 6112 && cp <= 6121) return true;
- if (cp >= 6128 && cp <= 6137) return true;
- if (cp >= 6144 && cp <= 6158) return true;
- if (cp >= 6160 && cp <= 6169) return true;
- if (cp >= 6176 && cp <= 6263) return true;
- if (cp >= 6272 && cp <= 6314) return true;
- if (cp >= 6320 && cp <= 6389) return true;
- if (cp >= 6400 && cp <= 6430) return true;
- if (cp >= 6432 && cp <= 6443) return true;
- if (cp >= 6448 && cp <= 6459) return true;
- if (cp == 6464) return true;
- if (cp >= 6468 && cp <= 6509) return true;
- if (cp >= 6512 && cp <= 6516) return true;
- if (cp >= 6528 && cp <= 6571) return true;
- if (cp >= 6576 && cp <= 6601) return true;
- if (cp >= 6608 && cp <= 6618) return true;
- if (cp >= 6622 && cp <= 6683) return true;
- if (cp >= 6686 && cp <= 6750) return true;
- if (cp >= 6752 && cp <= 6780) return true;
- if (cp >= 6783 && cp <= 6793) return true;
- if (cp >= 6800 && cp <= 6809) return true;
- if (cp >= 6816 && cp <= 6829) return true;
- if (cp >= 6832 && cp <= 6846) return true;
- if (cp >= 6912 && cp <= 6987) return true;
- if (cp >= 6992 && cp <= 7036) return true;
- if (cp >= 7040 && cp <= 7155) return true;
- if (cp >= 7164 && cp <= 7223) return true;
- if (cp >= 7227 && cp <= 7241) return true;
- if (cp >= 7245 && cp <= 7304) return true;
- if (cp >= 7360 && cp <= 7367) return true;
- if (cp >= 7376 && cp <= 7417) return true;
- if (cp >= 7424 && cp <= 7673) return true;
- if (cp >= 7675 && cp <= 7957) return true;
- if (cp >= 7960 && cp <= 7965) return true;
- if (cp >= 7968 && cp <= 8005) return true;
- if (cp >= 8008 && cp <= 8013) return true;
- if (cp >= 8016 && cp <= 8023) return true;
- if (cp == 8025) return true;
- if (cp == 8027) return true;
- if (cp == 8029) return true;
- if (cp >= 8031 && cp <= 8061) return true;
- if (cp >= 8064 && cp <= 8116) return true;
- if (cp >= 8118 && cp <= 8132) return true;
- if (cp >= 8134 && cp <= 8147) return true;
- if (cp >= 8150 && cp <= 8155) return true;
- if (cp >= 8157 && cp <= 8175) return true;
- if (cp >= 8178 && cp <= 8180) return true;
- if (cp >= 8182 && cp <= 8190) return true;
- if (cp >= 8192 && cp <= 8231) return true;
- if (cp >= 8234 && cp <= 8292) return true;
- if (cp >= 8294 && cp <= 8305) return true;
- if (cp >= 8308 && cp <= 8334) return true;
- if (cp >= 8336 && cp <= 8348) return true;
- if (cp >= 8352 && cp <= 8383) return true;
- if (cp >= 8400 && cp <= 8432) return true;
- if (cp >= 8448 && cp <= 8587) return true;
- if (cp >= 8592 && cp <= 9254) return true;
- if (cp >= 9280 && cp <= 9290) return true;
- if (cp >= 9312 && cp <= 11123) return true;
- if (cp >= 11126 && cp <= 11157) return true;
- if (cp >= 11160 && cp <= 11193) return true;
- if (cp >= 11197 && cp <= 11208) return true;
- if (cp >= 11210 && cp <= 11218) return true;
- if (cp >= 11244 && cp <= 11247) return true;
- if (cp >= 11264 && cp <= 11310) return true;
- if (cp >= 11312 && cp <= 11358) return true;
- if (cp >= 11360 && cp <= 11507) return true;
- if (cp >= 11513 && cp <= 11557) return true;
- if (cp == 11559) return true;
- if (cp == 11565) return true;
- if (cp >= 11568 && cp <= 11623) return true;
- if (cp >= 11631 && cp <= 11632) return true;
- if (cp >= 11647 && cp <= 11670) return true;
- if (cp >= 11680 && cp <= 11686) return true;
- if (cp >= 11688 && cp <= 11694) return true;
- if (cp >= 11696 && cp <= 11702) return true;
- if (cp >= 11704 && cp <= 11710) return true;
- if (cp >= 11712 && cp <= 11718) return true;
- if (cp >= 11720 && cp <= 11726) return true;
- if (cp >= 11728 && cp <= 11734) return true;
- if (cp >= 11736 && cp <= 11742) return true;
- if (cp >= 11744 && cp <= 11849) return true;
- if (cp >= 11904 && cp <= 11929) return true;
- if (cp >= 11931 && cp <= 12019) return true;
- if (cp >= 12032 && cp <= 12245) return true;
- if (cp >= 12272 && cp <= 12283) return true;
- if (cp >= 12288 && cp <= 12351) return true;
- if (cp >= 12353 && cp <= 12438) return true;
- if (cp >= 12441 && cp <= 12543) return true;
- if (cp >= 12549 && cp <= 12590) return true;
- if (cp >= 12593 && cp <= 12686) return true;
- if (cp >= 12688 && cp <= 12730) return true;
- if (cp >= 12736 && cp <= 12771) return true;
- if (cp >= 12784 && cp <= 12830) return true;
- if (cp >= 12832 && cp <= 13054) return true;
- if (cp >= 13056 && cp <= 19893) return true;
- if (cp >= 19904 && cp <= 40938) return true;
- if (cp >= 40960 && cp <= 42124) return true;
- if (cp >= 42128 && cp <= 42182) return true;
- if (cp >= 42192 && cp <= 42539) return true;
- if (cp >= 42560 && cp <= 42743) return true;
- if (cp >= 42752 && cp <= 42926) return true;
- if (cp >= 42928 && cp <= 42935) return true;
- if (cp >= 42999 && cp <= 43051) return true;
- if (cp >= 43056 && cp <= 43065) return true;
- if (cp >= 43072 && cp <= 43127) return true;
- if (cp >= 43136 && cp <= 43205) return true;
- if (cp >= 43214 && cp <= 43225) return true;
- if (cp >= 43232 && cp <= 43261) return true;
- if (cp >= 43264 && cp <= 43347) return true;
- if (cp >= 43359 && cp <= 43388) return true;
- if (cp >= 43392 && cp <= 43469) return true;
- if (cp >= 43471 && cp <= 43481) return true;
- if (cp >= 43486 && cp <= 43518) return true;
- if (cp >= 43520 && cp <= 43574) return true;
- if (cp >= 43584 && cp <= 43597) return true;
- if (cp >= 43600 && cp <= 43609) return true;
- if (cp >= 43612 && cp <= 43714) return true;
- if (cp >= 43739 && cp <= 43766) return true;
- if (cp >= 43777 && cp <= 43782) return true;
- if (cp >= 43785 && cp <= 43790) return true;
- if (cp >= 43793 && cp <= 43798) return true;
- if (cp >= 43808 && cp <= 43814) return true;
- if (cp >= 43816 && cp <= 43822) return true;
- if (cp >= 43824 && cp <= 43877) return true;
- if (cp >= 43888 && cp <= 44013) return true;
- if (cp >= 44016 && cp <= 44025) return true;
- if (cp >= 44032 && cp <= 55203) return true;
- if (cp >= 55216 && cp <= 55238) return true;
- if (cp >= 55243 && cp <= 55291) return true;
- if (cp >= 57344 && cp <= 64109) return true;
- if (cp >= 64112 && cp <= 64217) return true;
- if (cp >= 64256 && cp <= 64262) return true;
- if (cp >= 64275 && cp <= 64279) return true;
- if (cp >= 64285 && cp <= 64310) return true;
- if (cp >= 64312 && cp <= 64316) return true;
- if (cp == 64318) return true;
- if (cp >= 64320 && cp <= 64321) return true;
- if (cp >= 64323 && cp <= 64324) return true;
- if (cp >= 64326 && cp <= 64449) return true;
- if (cp >= 64467 && cp <= 64831) return true;
- if (cp >= 64848 && cp <= 64911) return true;
- if (cp >= 64914 && cp <= 64967) return true;
- if (cp >= 65008 && cp <= 65021) return true;
- if (cp >= 65024 && cp <= 65049) return true;
- if (cp >= 65056 && cp <= 65106) return true;
- if (cp >= 65108 && cp <= 65126) return true;
- if (cp >= 65128 && cp <= 65131) return true;
- if (cp >= 65136 && cp <= 65140) return true;
- if (cp >= 65142 && cp <= 65276) return true;
- if (cp == 65279) return true;
- if (cp >= 65281 && cp <= 65470) return true;
- if (cp >= 65474 && cp <= 65479) return true;
- if (cp >= 65482 && cp <= 65487) return true;
- if (cp >= 65490 && cp <= 65495) return true;
- if (cp >= 65498 && cp <= 65500) return true;
- if (cp >= 65504 && cp <= 65510) return true;
- if (cp >= 65512 && cp <= 65518) return true;
- if (cp >= 65529 && cp <= 65533) return true;
- if (cp >= 65536 && cp <= 65547) return true;
- if (cp >= 65549 && cp <= 65574) return true;
- if (cp >= 65576 && cp <= 65594) return true;
- if (cp >= 65596 && cp <= 65597) return true;
- if (cp >= 65599 && cp <= 65613) return true;
- if (cp >= 65616 && cp <= 65629) return true;
- if (cp >= 65664 && cp <= 65786) return true;
- if (cp >= 65792 && cp <= 65794) return true;
- if (cp >= 65799 && cp <= 65843) return true;
- if (cp >= 65847 && cp <= 65934) return true;
- if (cp >= 65936 && cp <= 65947) return true;
- if (cp == 65952) return true;
- if (cp >= 66000 && cp <= 66045) return true;
- if (cp >= 66176 && cp <= 66204) return true;
- if (cp >= 66208 && cp <= 66256) return true;
- if (cp >= 66272 && cp <= 66299) return true;
- if (cp >= 66304 && cp <= 66339) return true;
- if (cp >= 66349 && cp <= 66378) return true;
- if (cp >= 66384 && cp <= 66426) return true;
- if (cp >= 66432 && cp <= 66461) return true;
- if (cp >= 66463 && cp <= 66499) return true;
- if (cp >= 66504 && cp <= 66517) return true;
- if (cp >= 66560 && cp <= 66717) return true;
- if (cp >= 66720 && cp <= 66729) return true;
- if (cp >= 66736 && cp <= 66771) return true;
- if (cp >= 66776 && cp <= 66811) return true;
- if (cp >= 66816 && cp <= 66855) return true;
- if (cp >= 66864 && cp <= 66915) return true;
- if (cp == 66927) return true;
- if (cp >= 67072 && cp <= 67382) return true;
- if (cp >= 67392 && cp <= 67413) return true;
- if (cp >= 67424 && cp <= 67431) return true;
- if (cp >= 67584 && cp <= 67589) return true;
- if (cp == 67592) return true;
- if (cp >= 67594 && cp <= 67637) return true;
- if (cp >= 67639 && cp <= 67640) return true;
- if (cp == 67644) return true;
- if (cp >= 67647 && cp <= 67669) return true;
- if (cp >= 67671 && cp <= 67742) return true;
- if (cp >= 67751 && cp <= 67759) return true;
- if (cp >= 67808 && cp <= 67826) return true;
- if (cp >= 67828 && cp <= 67829) return true;
- if (cp >= 67835 && cp <= 67867) return true;
- if (cp >= 67871 && cp <= 67897) return true;
- if (cp == 67903) return true;
- if (cp >= 67968 && cp <= 68023) return true;
- if (cp >= 68028 && cp <= 68047) return true;
- if (cp >= 68050 && cp <= 68099) return true;
- if (cp >= 68101 && cp <= 68102) return true;
- if (cp >= 68108 && cp <= 68115) return true;
- if (cp >= 68117 && cp <= 68119) return true;
- if (cp >= 68121 && cp <= 68147) return true;
- if (cp >= 68152 && cp <= 68154) return true;
- if (cp >= 68159 && cp <= 68167) return true;
- if (cp >= 68176 && cp <= 68184) return true;
- if (cp >= 68192 && cp <= 68255) return true;
- if (cp >= 68288 && cp <= 68326) return true;
- if (cp >= 68331 && cp <= 68342) return true;
- if (cp >= 68352 && cp <= 68405) return true;
- if (cp >= 68409 && cp <= 68437) return true;
- if (cp >= 68440 && cp <= 68466) return true;
- if (cp >= 68472 && cp <= 68497) return true;
- if (cp >= 68505 && cp <= 68508) return true;
- if (cp >= 68521 && cp <= 68527) return true;
- if (cp >= 68608 && cp <= 68680) return true;
- if (cp >= 68736 && cp <= 68786) return true;
- if (cp >= 68800 && cp <= 68850) return true;
- if (cp >= 68858 && cp <= 68863) return true;
- if (cp >= 69216 && cp <= 69246) return true;
- if (cp >= 69632 && cp <= 69709) return true;
- if (cp >= 69714 && cp <= 69743) return true;
- if (cp >= 69759 && cp <= 69825) return true;
- if (cp >= 69840 && cp <= 69864) return true;
- if (cp >= 69872 && cp <= 69881) return true;
- if (cp >= 69888 && cp <= 69940) return true;
- if (cp >= 69942 && cp <= 69955) return true;
- if (cp >= 69968 && cp <= 70006) return true;
- if (cp >= 70016 && cp <= 70093) return true;
- if (cp >= 70096 && cp <= 70111) return true;
- if (cp >= 70113 && cp <= 70132) return true;
- if (cp >= 70144 && cp <= 70161) return true;
- if (cp >= 70163 && cp <= 70206) return true;
- if (cp >= 70272 && cp <= 70278) return true;
- if (cp == 70280) return true;
- if (cp >= 70282 && cp <= 70285) return true;
- if (cp >= 70287 && cp <= 70301) return true;
- if (cp >= 70303 && cp <= 70313) return true;
- if (cp >= 70320 && cp <= 70378) return true;
- if (cp >= 70384 && cp <= 70393) return true;
- if (cp >= 70400 && cp <= 70403) return true;
- if (cp >= 70405 && cp <= 70412) return true;
- if (cp >= 70415 && cp <= 70416) return true;
- if (cp >= 70419 && cp <= 70440) return true;
- if (cp >= 70442 && cp <= 70448) return true;
- if (cp >= 70450 && cp <= 70451) return true;
- if (cp >= 70453 && cp <= 70457) return true;
- if (cp >= 70460 && cp <= 70468) return true;
- if (cp >= 70471 && cp <= 70472) return true;
- if (cp >= 70475 && cp <= 70477) return true;
- if (cp == 70480) return true;
- if (cp == 70487) return true;
- if (cp >= 70493 && cp <= 70499) return true;
- if (cp >= 70502 && cp <= 70508) return true;
- if (cp >= 70512 && cp <= 70516) return true;
- if (cp >= 70656 && cp <= 70745) return true;
- if (cp == 70747) return true;
- if (cp == 70749) return true;
- if (cp >= 70784 && cp <= 70855) return true;
- if (cp >= 70864 && cp <= 70873) return true;
- if (cp >= 71040 && cp <= 71093) return true;
- if (cp >= 71096 && cp <= 71133) return true;
- if (cp >= 71168 && cp <= 71236) return true;
- if (cp >= 71248 && cp <= 71257) return true;
- if (cp >= 71264 && cp <= 71276) return true;
- if (cp >= 71296 && cp <= 71351) return true;
- if (cp >= 71360 && cp <= 71369) return true;
- if (cp >= 71424 && cp <= 71449) return true;
- if (cp >= 71453 && cp <= 71467) return true;
- if (cp >= 71472 && cp <= 71487) return true;
- if (cp >= 71840 && cp <= 71922) return true;
- if (cp == 71935) return true;
- if (cp >= 72192 && cp <= 72263) return true;
- if (cp >= 72272 && cp <= 72323) return true;
- if (cp >= 72326 && cp <= 72348) return true;
- if (cp >= 72350 && cp <= 72354) return true;
- if (cp >= 72384 && cp <= 72440) return true;
- if (cp >= 72704 && cp <= 72712) return true;
- if (cp >= 72714 && cp <= 72758) return true;
- if (cp >= 72760 && cp <= 72773) return true;
- if (cp >= 72784 && cp <= 72812) return true;
- if (cp >= 72816 && cp <= 72847) return true;
- if (cp >= 72850 && cp <= 72871) return true;
- if (cp >= 72873 && cp <= 72886) return true;
- if (cp >= 72960 && cp <= 72966) return true;
- if (cp >= 72968 && cp <= 72969) return true;
- if (cp >= 72971 && cp <= 73014) return true;
- if (cp == 73018) return true;
- if (cp >= 73020 && cp <= 73021) return true;
- if (cp >= 73023 && cp <= 73031) return true;
- if (cp >= 73040 && cp <= 73049) return true;
- if (cp >= 73728 && cp <= 74649) return true;
- if (cp >= 74752 && cp <= 74862) return true;
- if (cp >= 74864 && cp <= 74868) return true;
- if (cp >= 74880 && cp <= 75075) return true;
- if (cp >= 77824 && cp <= 78894) return true;
- if (cp >= 82944 && cp <= 83526) return true;
- if (cp >= 92160 && cp <= 92728) return true;
- if (cp >= 92736 && cp <= 92766) return true;
- if (cp >= 92768 && cp <= 92777) return true;
- if (cp >= 92782 && cp <= 92783) return true;
- if (cp >= 92880 && cp <= 92909) return true;
- if (cp >= 92912 && cp <= 92917) return true;
- if (cp >= 92928 && cp <= 92997) return true;
- if (cp >= 93008 && cp <= 93017) return true;
- if (cp >= 93019 && cp <= 93025) return true;
- if (cp >= 93027 && cp <= 93047) return true;
- if (cp >= 93053 && cp <= 93071) return true;
- if (cp >= 93952 && cp <= 94020) return true;
- if (cp >= 94032 && cp <= 94078) return true;
- if (cp >= 94095 && cp <= 94111) return true;
- if (cp >= 94176 && cp <= 94177) return true;
- if (cp >= 94208 && cp <= 100332) return true;
- if (cp >= 100352 && cp <= 101106) return true;
- if (cp >= 110592 && cp <= 110878) return true;
- if (cp >= 110960 && cp <= 111355) return true;
- if (cp >= 113664 && cp <= 113770) return true;
- if (cp >= 113776 && cp <= 113788) return true;
- if (cp >= 113792 && cp <= 113800) return true;
- if (cp >= 113808 && cp <= 113817) return true;
- if (cp >= 113820 && cp <= 113827) return true;
- if (cp >= 118784 && cp <= 119029) return true;
- if (cp >= 119040 && cp <= 119078) return true;
- if (cp >= 119081 && cp <= 119272) return true;
- if (cp >= 119296 && cp <= 119365) return true;
- if (cp >= 119552 && cp <= 119638) return true;
- if (cp >= 119648 && cp <= 119665) return true;
- if (cp >= 119808 && cp <= 119892) return true;
- if (cp >= 119894 && cp <= 119964) return true;
- if (cp >= 119966 && cp <= 119967) return true;
- if (cp == 119970) return true;
- if (cp >= 119973 && cp <= 119974) return true;
- if (cp >= 119977 && cp <= 119980) return true;
- if (cp >= 119982 && cp <= 119993) return true;
- if (cp == 119995) return true;
- if (cp >= 119997 && cp <= 120003) return true;
- if (cp >= 120005 && cp <= 120069) return true;
- if (cp >= 120071 && cp <= 120074) return true;
- if (cp >= 120077 && cp <= 120084) return true;
- if (cp >= 120086 && cp <= 120092) return true;
- if (cp >= 120094 && cp <= 120121) return true;
- if (cp >= 120123 && cp <= 120126) return true;
- if (cp >= 120128 && cp <= 120132) return true;
- if (cp == 120134) return true;
- if (cp >= 120138 && cp <= 120144) return true;
- if (cp >= 120146 && cp <= 120485) return true;
- if (cp >= 120488 && cp <= 120779) return true;
- if (cp >= 120782 && cp <= 121483) return true;
- if (cp >= 121499 && cp <= 121503) return true;
- if (cp >= 121505 && cp <= 121519) return true;
- if (cp >= 122880 && cp <= 122886) return true;
- if (cp >= 122888 && cp <= 122904) return true;
- if (cp >= 122907 && cp <= 122913) return true;
- if (cp >= 122915 && cp <= 122916) return true;
- if (cp >= 122918 && cp <= 122922) return true;
- if (cp >= 124928 && cp <= 125124) return true;
- if (cp >= 125127 && cp <= 125142) return true;
- if (cp >= 125184 && cp <= 125258) return true;
- if (cp >= 125264 && cp <= 125273) return true;
- if (cp >= 125278 && cp <= 125279) return true;
- if (cp >= 126464 && cp <= 126467) return true;
- if (cp >= 126469 && cp <= 126495) return true;
- if (cp >= 126497 && cp <= 126498) return true;
- if (cp == 126500) return true;
- if (cp == 126503) return true;
- if (cp >= 126505 && cp <= 126514) return true;
- if (cp >= 126516 && cp <= 126519) return true;
- if (cp == 126521) return true;
- if (cp == 126523) return true;
- if (cp == 126530) return true;
- if (cp == 126535) return true;
- if (cp == 126537) return true;
- if (cp == 126539) return true;
- if (cp >= 126541 && cp <= 126543) return true;
- if (cp >= 126545 && cp <= 126546) return true;
- if (cp == 126548) return true;
- if (cp == 126551) return true;
- if (cp == 126553) return true;
- if (cp == 126555) return true;
- if (cp == 126557) return true;
- if (cp == 126559) return true;
- if (cp >= 126561 && cp <= 126562) return true;
- if (cp == 126564) return true;
- if (cp >= 126567 && cp <= 126570) return true;
- if (cp >= 126572 && cp <= 126578) return true;
- if (cp >= 126580 && cp <= 126583) return true;
- if (cp >= 126585 && cp <= 126588) return true;
- if (cp == 126590) return true;
- if (cp >= 126592 && cp <= 126601) return true;
- if (cp >= 126603 && cp <= 126619) return true;
- if (cp >= 126625 && cp <= 126627) return true;
- if (cp >= 126629 && cp <= 126633) return true;
- if (cp >= 126635 && cp <= 126651) return true;
- if (cp >= 126704 && cp <= 126705) return true;
- if (cp >= 126976 && cp <= 127019) return true;
- if (cp >= 127024 && cp <= 127123) return true;
- if (cp >= 127136 && cp <= 127150) return true;
- if (cp >= 127153 && cp <= 127167) return true;
- if (cp >= 127169 && cp <= 127183) return true;
- if (cp >= 127185 && cp <= 127221) return true;
- if (cp >= 127232 && cp <= 127244) return true;
- if (cp >= 127248 && cp <= 127278) return true;
- if (cp >= 127280 && cp <= 127339) return true;
- if (cp >= 127344 && cp <= 127404) return true;
- if (cp >= 127462 && cp <= 127490) return true;
- if (cp >= 127504 && cp <= 127547) return true;
- if (cp >= 127552 && cp <= 127560) return true;
- if (cp >= 127568 && cp <= 127569) return true;
- if (cp >= 127584 && cp <= 127589) return true;
- if (cp >= 127744 && cp <= 128724) return true;
- if (cp >= 128736 && cp <= 128748) return true;
- if (cp >= 128752 && cp <= 128760) return true;
- if (cp >= 128768 && cp <= 128883) return true;
- if (cp >= 128896 && cp <= 128980) return true;
- if (cp >= 129024 && cp <= 129035) return true;
- if (cp >= 129040 && cp <= 129095) return true;
- if (cp >= 129104 && cp <= 129113) return true;
- if (cp >= 129120 && cp <= 129159) return true;
- if (cp >= 129168 && cp <= 129197) return true;
- if (cp >= 129280 && cp <= 129291) return true;
- if (cp >= 129296 && cp <= 129342) return true;
- if (cp >= 129344 && cp <= 129356) return true;
- if (cp >= 129360 && cp <= 129387) return true;
- if (cp >= 129408 && cp <= 129431) return true;
- if (cp == 129472) return true;
- if (cp >= 129488 && cp <= 129510) return true;
- if (cp >= 131072 && cp <= 173782) return true;
- if (cp >= 173824 && cp <= 177972) return true;
- if (cp >= 177984 && cp <= 178205) return true;
- if (cp >= 178208 && cp <= 183969) return true;
- if (cp >= 183984 && cp <= 191456) return true;
- if (cp >= 194560 && cp <= 195101) return true;
+ var idx = Math.floor(cp / 32);
+ var byt = isPrintBitm[idx];
+ if (byt) {
+ var mask = Math.pow(2, cp - idx * 32);
+ return (byt & mask) != 0;
+ }
return false;
}
diff --git a/tests/driver.sh b/tests/driver.sh
index 879c093d..d20809d0 100755
--- a/tests/driver.sh
+++ b/tests/driver.sh
@@ -21,5 +21,9 @@ fi
$TESTSRV -q -a 127.0.0.1 &
echo $! >> $TESTPID
sleep 1
-python3 -m unittest $1.py
+if [[ $# -eq 1 ]] ; then
+ python3 -m unittest $1.py
+else
+ python3 -m unittest $1.Suite.$2
+fi
kill `cat $TESTPID`