github.com/dolthub/go-mysql-server@v0.18.0/sql/encodings/utf8mb3_tolower_ci.go (about) 1 // Copyright 2023 Dolthub, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package encodings 16 17 // Utf8mb3_tolower_ci_RuneWeight returns the weight of a given rune based on its relational sort order from 18 // the `utf8mb3_tolower_ci` collation. 19 func Utf8mb3_tolower_ci_RuneWeight(r rune) int32 { 20 weight, ok := utf8mb3_tolower_ci_Weights[r] 21 if ok { 22 return weight 23 } else if r >= 658 && r <= 901 { 24 return r - 212 25 } else if r >= 1414 && r <= 7679 { 26 return r - 409 27 } else if r >= 8189 && r <= 8485 { 28 return r - 625 29 } else if r >= 8575 && r <= 9398 { 30 return r - 644 31 } else if r >= 9449 && r <= 55295 { 32 return r - 670 33 } else if r >= 57345 && r <= 65312 { 34 return r - 2718 35 } else if r >= 65370 && r <= 65535 { 36 return r - 2744 37 } else { 38 return 2147483647 39 } 40 } 41 42 // utf8mb3_tolower_ci_Weights contain a map from rune to weight for the `utf8mb3_tolower_ci` collation. The 43 // map primarily contains mappings that have a random order. Mappings that fit into a sequential range (and are long 44 // enough) are defined in the calling function to save space. 45 var utf8mb3_tolower_ci_Weights = map[rune]int32{ 46 0: 0, 47 1: 1, 48 2: 2, 49 3: 3, 50 4: 4, 51 5: 5, 52 6: 6, 53 7: 7, 54 8: 8, 55 9: 9, 56 10: 10, 57 11: 11, 58 12: 12, 59 13: 13, 60 14: 14, 61 15: 15, 62 16: 16, 63 17: 17, 64 18: 18, 65 19: 19, 66 20: 20, 67 21: 21, 68 22: 22, 69 23: 23, 70 24: 24, 71 25: 25, 72 26: 26, 73 27: 27, 74 28: 28, 75 29: 29, 76 30: 30, 77 31: 31, 78 32: 32, 79 33: 33, 80 34: 34, 81 35: 35, 82 36: 36, 83 37: 37, 84 38: 38, 85 39: 39, 86 40: 40, 87 41: 41, 88 42: 42, 89 43: 43, 90 44: 44, 91 45: 45, 92 46: 46, 93 47: 47, 94 48: 48, 95 49: 49, 96 50: 50, 97 51: 51, 98 52: 52, 99 53: 53, 100 54: 54, 101 55: 55, 102 56: 56, 103 57: 57, 104 58: 58, 105 59: 59, 106 60: 60, 107 61: 61, 108 62: 62, 109 63: 63, 110 64: 64, 111 91: 65, 112 92: 66, 113 93: 67, 114 94: 68, 115 95: 69, 116 96: 70, 117 65: 71, 118 97: 71, 119 66: 72, 120 98: 72, 121 67: 73, 122 99: 73, 123 68: 74, 124 100: 74, 125 69: 75, 126 101: 75, 127 70: 76, 128 102: 76, 129 71: 77, 130 103: 77, 131 72: 78, 132 104: 78, 133 73: 79, 134 105: 79, 135 304: 79, 136 74: 80, 137 106: 80, 138 75: 81, 139 107: 81, 140 8490: 81, 141 76: 82, 142 108: 82, 143 77: 83, 144 109: 83, 145 78: 84, 146 110: 84, 147 79: 85, 148 111: 85, 149 80: 86, 150 112: 86, 151 81: 87, 152 113: 87, 153 82: 88, 154 114: 88, 155 83: 89, 156 115: 89, 157 84: 90, 158 116: 90, 159 85: 91, 160 117: 91, 161 86: 92, 162 118: 92, 163 87: 93, 164 119: 93, 165 88: 94, 166 120: 94, 167 89: 95, 168 121: 95, 169 90: 96, 170 122: 96, 171 123: 97, 172 124: 98, 173 125: 99, 174 126: 100, 175 127: 101, 176 128: 102, 177 129: 103, 178 130: 104, 179 131: 105, 180 132: 106, 181 133: 107, 182 134: 108, 183 135: 109, 184 136: 110, 185 137: 111, 186 138: 112, 187 139: 113, 188 140: 114, 189 141: 115, 190 142: 116, 191 143: 117, 192 144: 118, 193 145: 119, 194 146: 120, 195 147: 121, 196 148: 122, 197 149: 123, 198 150: 124, 199 151: 125, 200 152: 126, 201 153: 127, 202 154: 128, 203 155: 129, 204 156: 130, 205 157: 131, 206 158: 132, 207 159: 133, 208 160: 134, 209 161: 135, 210 162: 136, 211 163: 137, 212 164: 138, 213 165: 139, 214 166: 140, 215 167: 141, 216 168: 142, 217 169: 143, 218 170: 144, 219 171: 145, 220 172: 146, 221 173: 147, 222 174: 148, 223 175: 149, 224 176: 150, 225 177: 151, 226 178: 152, 227 179: 153, 228 180: 154, 229 181: 155, 230 182: 156, 231 183: 157, 232 184: 158, 233 185: 159, 234 186: 160, 235 187: 161, 236 188: 162, 237 189: 163, 238 190: 164, 239 191: 165, 240 215: 166, 241 223: 167, 242 192: 168, 243 224: 168, 244 193: 169, 245 225: 169, 246 194: 170, 247 226: 170, 248 195: 171, 249 227: 171, 250 196: 172, 251 228: 172, 252 197: 173, 253 229: 173, 254 8491: 173, 255 198: 174, 256 230: 174, 257 199: 175, 258 231: 175, 259 200: 176, 260 232: 176, 261 201: 177, 262 233: 177, 263 202: 178, 264 234: 178, 265 203: 179, 266 235: 179, 267 204: 180, 268 236: 180, 269 205: 181, 270 237: 181, 271 206: 182, 272 238: 182, 273 207: 183, 274 239: 183, 275 208: 184, 276 240: 184, 277 209: 185, 278 241: 185, 279 210: 186, 280 242: 186, 281 211: 187, 282 243: 187, 283 212: 188, 284 244: 188, 285 213: 189, 286 245: 189, 287 214: 190, 288 246: 190, 289 247: 191, 290 216: 192, 291 248: 192, 292 217: 193, 293 249: 193, 294 218: 194, 295 250: 194, 296 219: 195, 297 251: 195, 298 220: 196, 299 252: 196, 300 221: 197, 301 253: 197, 302 222: 198, 303 254: 198, 304 255: 199, 305 376: 199, 306 256: 200, 307 257: 200, 308 258: 201, 309 259: 201, 310 260: 202, 311 261: 202, 312 262: 203, 313 263: 203, 314 264: 204, 315 265: 204, 316 266: 205, 317 267: 205, 318 268: 206, 319 269: 206, 320 270: 207, 321 271: 207, 322 272: 208, 323 273: 208, 324 274: 209, 325 275: 209, 326 276: 210, 327 277: 210, 328 278: 211, 329 279: 211, 330 280: 212, 331 281: 212, 332 282: 213, 333 283: 213, 334 284: 214, 335 285: 214, 336 286: 215, 337 287: 215, 338 288: 216, 339 289: 216, 340 290: 217, 341 291: 217, 342 292: 218, 343 293: 218, 344 294: 219, 345 295: 219, 346 296: 220, 347 297: 220, 348 298: 221, 349 299: 221, 350 300: 222, 351 301: 222, 352 302: 223, 353 303: 223, 354 305: 224, 355 306: 225, 356 307: 225, 357 308: 226, 358 309: 226, 359 310: 227, 360 311: 227, 361 312: 228, 362 313: 229, 363 314: 229, 364 315: 230, 365 316: 230, 366 317: 231, 367 318: 231, 368 319: 232, 369 320: 232, 370 321: 233, 371 322: 233, 372 323: 234, 373 324: 234, 374 325: 235, 375 326: 235, 376 327: 236, 377 328: 236, 378 329: 237, 379 330: 238, 380 331: 238, 381 332: 239, 382 333: 239, 383 334: 240, 384 335: 240, 385 336: 241, 386 337: 241, 387 338: 242, 388 339: 242, 389 340: 243, 390 341: 243, 391 342: 244, 392 343: 244, 393 344: 245, 394 345: 245, 395 346: 246, 396 347: 246, 397 348: 247, 398 349: 247, 399 350: 248, 400 351: 248, 401 352: 249, 402 353: 249, 403 354: 250, 404 355: 250, 405 356: 251, 406 357: 251, 407 358: 252, 408 359: 252, 409 360: 253, 410 361: 253, 411 362: 254, 412 363: 254, 413 364: 255, 414 365: 255, 415 366: 256, 416 367: 256, 417 368: 257, 418 369: 257, 419 370: 258, 420 371: 258, 421 372: 259, 422 373: 259, 423 374: 260, 424 375: 260, 425 377: 261, 426 378: 261, 427 379: 262, 428 380: 262, 429 381: 263, 430 382: 263, 431 383: 264, 432 384: 265, 433 386: 266, 434 387: 266, 435 388: 267, 436 389: 267, 437 391: 268, 438 392: 268, 439 395: 269, 440 396: 269, 441 397: 270, 442 401: 271, 443 402: 271, 444 405: 272, 445 502: 272, 446 408: 273, 447 409: 273, 448 410: 274, 449 411: 275, 450 414: 276, 451 416: 277, 452 417: 277, 453 418: 278, 454 419: 278, 455 420: 279, 456 421: 279, 457 423: 280, 458 424: 280, 459 426: 281, 460 427: 282, 461 428: 283, 462 429: 283, 463 431: 284, 464 432: 284, 465 435: 285, 466 436: 285, 467 437: 286, 468 438: 286, 469 440: 287, 470 441: 287, 471 442: 288, 472 443: 289, 473 444: 290, 474 445: 290, 475 446: 291, 476 447: 292, 477 503: 292, 478 448: 293, 479 449: 294, 480 450: 295, 481 451: 296, 482 452: 297, 483 453: 297, 484 454: 297, 485 455: 298, 486 456: 298, 487 457: 298, 488 458: 299, 489 459: 299, 490 460: 299, 491 461: 300, 492 462: 300, 493 463: 301, 494 464: 301, 495 465: 302, 496 466: 302, 497 467: 303, 498 468: 303, 499 469: 304, 500 470: 304, 501 471: 305, 502 472: 305, 503 473: 306, 504 474: 306, 505 475: 307, 506 476: 307, 507 398: 308, 508 477: 308, 509 478: 309, 510 479: 309, 511 480: 310, 512 481: 310, 513 482: 311, 514 483: 311, 515 484: 312, 516 485: 312, 517 486: 313, 518 487: 313, 519 488: 314, 520 489: 314, 521 490: 315, 522 491: 315, 523 492: 316, 524 493: 316, 525 494: 317, 526 495: 317, 527 496: 318, 528 497: 319, 529 498: 319, 530 499: 319, 531 500: 320, 532 501: 320, 533 504: 321, 534 505: 321, 535 506: 322, 536 507: 322, 537 508: 323, 538 509: 323, 539 510: 324, 540 511: 324, 541 512: 325, 542 513: 325, 543 514: 326, 544 515: 326, 545 516: 327, 546 517: 327, 547 518: 328, 548 519: 328, 549 520: 329, 550 521: 329, 551 522: 330, 552 523: 330, 553 524: 331, 554 525: 331, 555 526: 332, 556 527: 332, 557 528: 333, 558 529: 333, 559 530: 334, 560 531: 334, 561 532: 335, 562 533: 335, 563 534: 336, 564 535: 336, 565 536: 337, 566 537: 337, 567 538: 338, 568 539: 338, 569 540: 339, 570 541: 339, 571 542: 340, 572 543: 340, 573 544: 341, 574 545: 342, 575 546: 343, 576 547: 343, 577 548: 344, 578 549: 344, 579 550: 345, 580 551: 345, 581 552: 346, 582 553: 346, 583 554: 347, 584 555: 347, 585 556: 348, 586 557: 348, 587 558: 349, 588 559: 349, 589 560: 350, 590 561: 350, 591 562: 351, 592 563: 351, 593 564: 352, 594 565: 353, 595 566: 354, 596 567: 355, 597 568: 356, 598 569: 357, 599 570: 358, 600 571: 359, 601 572: 360, 602 573: 361, 603 574: 362, 604 575: 363, 605 576: 364, 606 577: 365, 607 578: 366, 608 579: 367, 609 580: 368, 610 581: 369, 611 582: 370, 612 583: 371, 613 584: 372, 614 585: 373, 615 586: 374, 616 587: 375, 617 588: 376, 618 589: 377, 619 590: 378, 620 591: 379, 621 592: 380, 622 593: 381, 623 594: 382, 624 385: 383, 625 595: 383, 626 390: 384, 627 596: 384, 628 597: 385, 629 393: 386, 630 598: 386, 631 394: 387, 632 599: 387, 633 600: 388, 634 399: 389, 635 601: 389, 636 602: 390, 637 400: 391, 638 603: 391, 639 604: 392, 640 605: 393, 641 606: 394, 642 607: 395, 643 403: 396, 644 608: 396, 645 609: 397, 646 610: 398, 647 404: 399, 648 611: 399, 649 612: 400, 650 613: 401, 651 614: 402, 652 615: 403, 653 407: 404, 654 616: 404, 655 406: 405, 656 617: 405, 657 618: 406, 658 619: 407, 659 620: 408, 660 621: 409, 661 622: 410, 662 412: 411, 663 623: 411, 664 624: 412, 665 625: 413, 666 413: 414, 667 626: 414, 668 627: 415, 669 628: 416, 670 415: 417, 671 629: 417, 672 630: 418, 673 631: 419, 674 632: 420, 675 633: 421, 676 634: 422, 677 635: 423, 678 636: 424, 679 637: 425, 680 638: 426, 681 639: 427, 682 422: 428, 683 640: 428, 684 641: 429, 685 642: 430, 686 425: 431, 687 643: 431, 688 644: 432, 689 645: 433, 690 646: 434, 691 647: 435, 692 430: 436, 693 648: 436, 694 649: 437, 695 433: 438, 696 650: 438, 697 434: 439, 698 651: 439, 699 652: 440, 700 653: 441, 701 654: 442, 702 655: 443, 703 656: 444, 704 657: 445, 705 439: 446, 706 903: 690, 707 907: 691, 708 909: 692, 709 912: 693, 710 930: 694, 711 902: 695, 712 940: 695, 713 904: 696, 714 941: 696, 715 905: 697, 716 942: 697, 717 906: 698, 718 943: 698, 719 944: 699, 720 913: 700, 721 945: 700, 722 914: 701, 723 946: 701, 724 915: 702, 725 947: 702, 726 916: 703, 727 948: 703, 728 917: 704, 729 949: 704, 730 918: 705, 731 950: 705, 732 919: 706, 733 951: 706, 734 920: 707, 735 952: 707, 736 921: 708, 737 953: 708, 738 922: 709, 739 954: 709, 740 923: 710, 741 955: 710, 742 924: 711, 743 956: 711, 744 925: 712, 745 957: 712, 746 926: 713, 747 958: 713, 748 927: 714, 749 959: 714, 750 928: 715, 751 960: 715, 752 929: 716, 753 961: 716, 754 962: 717, 755 931: 718, 756 963: 718, 757 932: 719, 758 964: 719, 759 933: 720, 760 965: 720, 761 934: 721, 762 966: 721, 763 935: 722, 764 967: 722, 765 936: 723, 766 968: 723, 767 937: 724, 768 969: 724, 769 8486: 724, 770 938: 725, 771 970: 725, 772 939: 726, 773 971: 726, 774 908: 727, 775 972: 727, 776 910: 728, 777 973: 728, 778 911: 729, 779 974: 729, 780 975: 730, 781 976: 731, 782 977: 732, 783 978: 733, 784 979: 734, 785 980: 735, 786 981: 736, 787 982: 737, 788 983: 738, 789 984: 739, 790 985: 740, 791 986: 741, 792 987: 741, 793 988: 742, 794 989: 742, 795 990: 743, 796 991: 743, 797 992: 744, 798 993: 744, 799 994: 745, 800 995: 745, 801 996: 746, 802 997: 746, 803 998: 747, 804 999: 747, 805 1000: 748, 806 1001: 748, 807 1002: 749, 808 1003: 749, 809 1004: 750, 810 1005: 750, 811 1006: 751, 812 1007: 751, 813 1008: 752, 814 1009: 753, 815 1010: 754, 816 1011: 755, 817 1012: 756, 818 1013: 757, 819 1014: 758, 820 1015: 759, 821 1016: 760, 822 1017: 761, 823 1018: 762, 824 1019: 763, 825 1020: 764, 826 1021: 765, 827 1022: 766, 828 1023: 767, 829 1040: 768, 830 1072: 768, 831 1041: 769, 832 1073: 769, 833 1042: 770, 834 1074: 770, 835 1043: 771, 836 1075: 771, 837 1044: 772, 838 1076: 772, 839 1045: 773, 840 1077: 773, 841 1046: 774, 842 1078: 774, 843 1047: 775, 844 1079: 775, 845 1048: 776, 846 1080: 776, 847 1049: 777, 848 1081: 777, 849 1050: 778, 850 1082: 778, 851 1051: 779, 852 1083: 779, 853 1052: 780, 854 1084: 780, 855 1053: 781, 856 1085: 781, 857 1054: 782, 858 1086: 782, 859 1055: 783, 860 1087: 783, 861 1056: 784, 862 1088: 784, 863 1057: 785, 864 1089: 785, 865 1058: 786, 866 1090: 786, 867 1059: 787, 868 1091: 787, 869 1060: 788, 870 1092: 788, 871 1061: 789, 872 1093: 789, 873 1062: 790, 874 1094: 790, 875 1063: 791, 876 1095: 791, 877 1064: 792, 878 1096: 792, 879 1065: 793, 880 1097: 793, 881 1066: 794, 882 1098: 794, 883 1067: 795, 884 1099: 795, 885 1068: 796, 886 1100: 796, 887 1069: 797, 888 1101: 797, 889 1070: 798, 890 1102: 798, 891 1071: 799, 892 1103: 799, 893 1024: 800, 894 1104: 800, 895 1025: 801, 896 1105: 801, 897 1026: 802, 898 1106: 802, 899 1027: 803, 900 1107: 803, 901 1028: 804, 902 1108: 804, 903 1029: 805, 904 1109: 805, 905 1030: 806, 906 1110: 806, 907 1031: 807, 908 1111: 807, 909 1032: 808, 910 1112: 808, 911 1033: 809, 912 1113: 809, 913 1034: 810, 914 1114: 810, 915 1035: 811, 916 1115: 811, 917 1036: 812, 918 1116: 812, 919 1037: 813, 920 1117: 813, 921 1038: 814, 922 1118: 814, 923 1039: 815, 924 1119: 815, 925 1120: 816, 926 1121: 816, 927 1122: 817, 928 1123: 817, 929 1124: 818, 930 1125: 818, 931 1126: 819, 932 1127: 819, 933 1128: 820, 934 1129: 820, 935 1130: 821, 936 1131: 821, 937 1132: 822, 938 1133: 822, 939 1134: 823, 940 1135: 823, 941 1136: 824, 942 1137: 824, 943 1138: 825, 944 1139: 825, 945 1140: 826, 946 1141: 826, 947 1142: 827, 948 1143: 827, 949 1144: 828, 950 1145: 828, 951 1146: 829, 952 1147: 829, 953 1148: 830, 954 1149: 830, 955 1150: 831, 956 1151: 831, 957 1152: 832, 958 1153: 832, 959 1154: 833, 960 1155: 834, 961 1156: 835, 962 1157: 836, 963 1158: 837, 964 1159: 838, 965 1160: 839, 966 1161: 840, 967 1162: 841, 968 1163: 842, 969 1164: 843, 970 1165: 843, 971 1166: 844, 972 1167: 844, 973 1168: 845, 974 1169: 845, 975 1170: 846, 976 1171: 846, 977 1172: 847, 978 1173: 847, 979 1174: 848, 980 1175: 848, 981 1176: 849, 982 1177: 849, 983 1178: 850, 984 1179: 850, 985 1180: 851, 986 1181: 851, 987 1182: 852, 988 1183: 852, 989 1184: 853, 990 1185: 853, 991 1186: 854, 992 1187: 854, 993 1188: 855, 994 1189: 855, 995 1190: 856, 996 1191: 856, 997 1192: 857, 998 1193: 857, 999 1194: 858, 1000 1195: 858, 1001 1196: 859, 1002 1197: 859, 1003 1198: 860, 1004 1199: 860, 1005 1200: 861, 1006 1201: 861, 1007 1202: 862, 1008 1203: 862, 1009 1204: 863, 1010 1205: 863, 1011 1206: 864, 1012 1207: 864, 1013 1208: 865, 1014 1209: 865, 1015 1210: 866, 1016 1211: 866, 1017 1212: 867, 1018 1213: 867, 1019 1214: 868, 1020 1215: 868, 1021 1216: 869, 1022 1217: 870, 1023 1218: 870, 1024 1219: 871, 1025 1220: 871, 1026 1221: 872, 1027 1222: 873, 1028 1223: 874, 1029 1224: 874, 1030 1225: 875, 1031 1226: 876, 1032 1227: 877, 1033 1228: 877, 1034 1229: 878, 1035 1230: 879, 1036 1231: 880, 1037 1232: 881, 1038 1233: 881, 1039 1234: 882, 1040 1235: 882, 1041 1236: 883, 1042 1237: 883, 1043 1238: 884, 1044 1239: 884, 1045 1240: 885, 1046 1241: 885, 1047 1242: 886, 1048 1243: 886, 1049 1244: 887, 1050 1245: 887, 1051 1246: 888, 1052 1247: 888, 1053 1248: 889, 1054 1249: 889, 1055 1250: 890, 1056 1251: 890, 1057 1252: 891, 1058 1253: 891, 1059 1254: 892, 1060 1255: 892, 1061 1256: 893, 1062 1257: 893, 1063 1258: 894, 1064 1259: 894, 1065 1260: 895, 1066 1261: 895, 1067 1262: 896, 1068 1263: 896, 1069 1264: 897, 1070 1265: 897, 1071 1266: 898, 1072 1267: 898, 1073 1268: 899, 1074 1269: 899, 1075 1270: 900, 1076 1271: 901, 1077 1272: 902, 1078 1273: 902, 1079 1274: 903, 1080 1275: 904, 1081 1276: 905, 1082 1277: 906, 1083 1278: 907, 1084 1279: 908, 1085 1280: 909, 1086 1281: 910, 1087 1282: 911, 1088 1283: 912, 1089 1284: 913, 1090 1285: 914, 1091 1286: 915, 1092 1287: 916, 1093 1288: 917, 1094 1289: 918, 1095 1290: 919, 1096 1291: 920, 1097 1292: 921, 1098 1293: 922, 1099 1294: 923, 1100 1295: 924, 1101 1296: 925, 1102 1297: 926, 1103 1298: 927, 1104 1299: 928, 1105 1300: 929, 1106 1301: 930, 1107 1302: 931, 1108 1303: 932, 1109 1304: 933, 1110 1305: 934, 1111 1306: 935, 1112 1307: 936, 1113 1308: 937, 1114 1309: 938, 1115 1310: 939, 1116 1311: 940, 1117 1312: 941, 1118 1313: 942, 1119 1314: 943, 1120 1315: 944, 1121 1316: 945, 1122 1317: 946, 1123 1318: 947, 1124 1319: 948, 1125 1320: 949, 1126 1321: 950, 1127 1322: 951, 1128 1323: 952, 1129 1324: 953, 1130 1325: 954, 1131 1326: 955, 1132 1327: 956, 1133 1328: 957, 1134 1367: 958, 1135 1368: 959, 1136 1369: 960, 1137 1370: 961, 1138 1371: 962, 1139 1372: 963, 1140 1373: 964, 1141 1374: 965, 1142 1375: 966, 1143 1376: 967, 1144 1329: 968, 1145 1377: 968, 1146 1330: 969, 1147 1378: 969, 1148 1331: 970, 1149 1379: 970, 1150 1332: 971, 1151 1380: 971, 1152 1333: 972, 1153 1381: 972, 1154 1334: 973, 1155 1382: 973, 1156 1335: 974, 1157 1383: 974, 1158 1336: 975, 1159 1384: 975, 1160 1337: 976, 1161 1385: 976, 1162 1338: 977, 1163 1386: 977, 1164 1339: 978, 1165 1387: 978, 1166 1340: 979, 1167 1388: 979, 1168 1341: 980, 1169 1389: 980, 1170 1342: 981, 1171 1390: 981, 1172 1343: 982, 1173 1391: 982, 1174 1344: 983, 1175 1392: 983, 1176 1345: 984, 1177 1393: 984, 1178 1346: 985, 1179 1394: 985, 1180 1347: 986, 1181 1395: 986, 1182 1348: 987, 1183 1396: 987, 1184 1349: 988, 1185 1397: 988, 1186 1350: 989, 1187 1398: 989, 1188 1351: 990, 1189 1399: 990, 1190 1352: 991, 1191 1400: 991, 1192 1353: 992, 1193 1401: 992, 1194 1354: 993, 1195 1402: 993, 1196 1355: 994, 1197 1403: 994, 1198 1356: 995, 1199 1404: 995, 1200 1357: 996, 1201 1405: 996, 1202 1358: 997, 1203 1406: 997, 1204 1359: 998, 1205 1407: 998, 1206 1360: 999, 1207 1408: 999, 1208 1361: 1000, 1209 1409: 1000, 1210 1362: 1001, 1211 1410: 1001, 1212 1363: 1002, 1213 1411: 1002, 1214 1364: 1003, 1215 1412: 1003, 1216 1365: 1004, 1217 1413: 1004, 1218 1366: 1005, 1219 7680: 7271, 1220 7681: 7271, 1221 7682: 7272, 1222 7683: 7272, 1223 7684: 7273, 1224 7685: 7273, 1225 7686: 7274, 1226 7687: 7274, 1227 7688: 7275, 1228 7689: 7275, 1229 7690: 7276, 1230 7691: 7276, 1231 7692: 7277, 1232 7693: 7277, 1233 7694: 7278, 1234 7695: 7278, 1235 7696: 7279, 1236 7697: 7279, 1237 7698: 7280, 1238 7699: 7280, 1239 7700: 7281, 1240 7701: 7281, 1241 7702: 7282, 1242 7703: 7282, 1243 7704: 7283, 1244 7705: 7283, 1245 7706: 7284, 1246 7707: 7284, 1247 7708: 7285, 1248 7709: 7285, 1249 7710: 7286, 1250 7711: 7286, 1251 7712: 7287, 1252 7713: 7287, 1253 7714: 7288, 1254 7715: 7288, 1255 7716: 7289, 1256 7717: 7289, 1257 7718: 7290, 1258 7719: 7290, 1259 7720: 7291, 1260 7721: 7291, 1261 7722: 7292, 1262 7723: 7292, 1263 7724: 7293, 1264 7725: 7293, 1265 7726: 7294, 1266 7727: 7294, 1267 7728: 7295, 1268 7729: 7295, 1269 7730: 7296, 1270 7731: 7296, 1271 7732: 7297, 1272 7733: 7297, 1273 7734: 7298, 1274 7735: 7298, 1275 7736: 7299, 1276 7737: 7299, 1277 7738: 7300, 1278 7739: 7300, 1279 7740: 7301, 1280 7741: 7301, 1281 7742: 7302, 1282 7743: 7302, 1283 7744: 7303, 1284 7745: 7303, 1285 7746: 7304, 1286 7747: 7304, 1287 7748: 7305, 1288 7749: 7305, 1289 7750: 7306, 1290 7751: 7306, 1291 7752: 7307, 1292 7753: 7307, 1293 7754: 7308, 1294 7755: 7308, 1295 7756: 7309, 1296 7757: 7309, 1297 7758: 7310, 1298 7759: 7310, 1299 7760: 7311, 1300 7761: 7311, 1301 7762: 7312, 1302 7763: 7312, 1303 7764: 7313, 1304 7765: 7313, 1305 7766: 7314, 1306 7767: 7314, 1307 7768: 7315, 1308 7769: 7315, 1309 7770: 7316, 1310 7771: 7316, 1311 7772: 7317, 1312 7773: 7317, 1313 7774: 7318, 1314 7775: 7318, 1315 7776: 7319, 1316 7777: 7319, 1317 7778: 7320, 1318 7779: 7320, 1319 7780: 7321, 1320 7781: 7321, 1321 7782: 7322, 1322 7783: 7322, 1323 7784: 7323, 1324 7785: 7323, 1325 7786: 7324, 1326 7787: 7324, 1327 7788: 7325, 1328 7789: 7325, 1329 7790: 7326, 1330 7791: 7326, 1331 7792: 7327, 1332 7793: 7327, 1333 7794: 7328, 1334 7795: 7328, 1335 7796: 7329, 1336 7797: 7329, 1337 7798: 7330, 1338 7799: 7330, 1339 7800: 7331, 1340 7801: 7331, 1341 7802: 7332, 1342 7803: 7332, 1343 7804: 7333, 1344 7805: 7333, 1345 7806: 7334, 1346 7807: 7334, 1347 7808: 7335, 1348 7809: 7335, 1349 7810: 7336, 1350 7811: 7336, 1351 7812: 7337, 1352 7813: 7337, 1353 7814: 7338, 1354 7815: 7338, 1355 7816: 7339, 1356 7817: 7339, 1357 7818: 7340, 1358 7819: 7340, 1359 7820: 7341, 1360 7821: 7341, 1361 7822: 7342, 1362 7823: 7342, 1363 7824: 7343, 1364 7825: 7343, 1365 7826: 7344, 1366 7827: 7344, 1367 7828: 7345, 1368 7829: 7345, 1369 7830: 7346, 1370 7831: 7347, 1371 7832: 7348, 1372 7833: 7349, 1373 7834: 7350, 1374 7835: 7351, 1375 7836: 7352, 1376 7837: 7353, 1377 7838: 7354, 1378 7839: 7355, 1379 7840: 7356, 1380 7841: 7356, 1381 7842: 7357, 1382 7843: 7357, 1383 7844: 7358, 1384 7845: 7358, 1385 7846: 7359, 1386 7847: 7359, 1387 7848: 7360, 1388 7849: 7360, 1389 7850: 7361, 1390 7851: 7361, 1391 7852: 7362, 1392 7853: 7362, 1393 7854: 7363, 1394 7855: 7363, 1395 7856: 7364, 1396 7857: 7364, 1397 7858: 7365, 1398 7859: 7365, 1399 7860: 7366, 1400 7861: 7366, 1401 7862: 7367, 1402 7863: 7367, 1403 7864: 7368, 1404 7865: 7368, 1405 7866: 7369, 1406 7867: 7369, 1407 7868: 7370, 1408 7869: 7370, 1409 7870: 7371, 1410 7871: 7371, 1411 7872: 7372, 1412 7873: 7372, 1413 7874: 7373, 1414 7875: 7373, 1415 7876: 7374, 1416 7877: 7374, 1417 7878: 7375, 1418 7879: 7375, 1419 7880: 7376, 1420 7881: 7376, 1421 7882: 7377, 1422 7883: 7377, 1423 7884: 7378, 1424 7885: 7378, 1425 7886: 7379, 1426 7887: 7379, 1427 7888: 7380, 1428 7889: 7380, 1429 7890: 7381, 1430 7891: 7381, 1431 7892: 7382, 1432 7893: 7382, 1433 7894: 7383, 1434 7895: 7383, 1435 7896: 7384, 1436 7897: 7384, 1437 7898: 7385, 1438 7899: 7385, 1439 7900: 7386, 1440 7901: 7386, 1441 7902: 7387, 1442 7903: 7387, 1443 7904: 7388, 1444 7905: 7388, 1445 7906: 7389, 1446 7907: 7389, 1447 7908: 7390, 1448 7909: 7390, 1449 7910: 7391, 1450 7911: 7391, 1451 7912: 7392, 1452 7913: 7392, 1453 7914: 7393, 1454 7915: 7393, 1455 7916: 7394, 1456 7917: 7394, 1457 7918: 7395, 1458 7919: 7395, 1459 7920: 7396, 1460 7921: 7396, 1461 7922: 7397, 1462 7923: 7397, 1463 7924: 7398, 1464 7925: 7398, 1465 7926: 7399, 1466 7927: 7399, 1467 7928: 7400, 1468 7929: 7400, 1469 7930: 7401, 1470 7931: 7402, 1471 7932: 7403, 1472 7933: 7404, 1473 7934: 7405, 1474 7935: 7406, 1475 7936: 7407, 1476 7944: 7407, 1477 7937: 7408, 1478 7945: 7408, 1479 7938: 7409, 1480 7946: 7409, 1481 7939: 7410, 1482 7947: 7410, 1483 7940: 7411, 1484 7948: 7411, 1485 7941: 7412, 1486 7949: 7412, 1487 7942: 7413, 1488 7950: 7413, 1489 7943: 7414, 1490 7951: 7414, 1491 7952: 7415, 1492 7960: 7415, 1493 7953: 7416, 1494 7961: 7416, 1495 7954: 7417, 1496 7962: 7417, 1497 7955: 7418, 1498 7963: 7418, 1499 7956: 7419, 1500 7964: 7419, 1501 7957: 7420, 1502 7965: 7420, 1503 7958: 7421, 1504 7959: 7422, 1505 7966: 7423, 1506 7967: 7424, 1507 7968: 7425, 1508 7976: 7425, 1509 7969: 7426, 1510 7977: 7426, 1511 7970: 7427, 1512 7978: 7427, 1513 7971: 7428, 1514 7979: 7428, 1515 7972: 7429, 1516 7980: 7429, 1517 7973: 7430, 1518 7981: 7430, 1519 7974: 7431, 1520 7982: 7431, 1521 7975: 7432, 1522 7983: 7432, 1523 7984: 7433, 1524 7992: 7433, 1525 7985: 7434, 1526 7993: 7434, 1527 7986: 7435, 1528 7994: 7435, 1529 7987: 7436, 1530 7995: 7436, 1531 7988: 7437, 1532 7996: 7437, 1533 7989: 7438, 1534 7997: 7438, 1535 7990: 7439, 1536 7998: 7439, 1537 7991: 7440, 1538 7999: 7440, 1539 8000: 7441, 1540 8008: 7441, 1541 8001: 7442, 1542 8009: 7442, 1543 8002: 7443, 1544 8010: 7443, 1545 8003: 7444, 1546 8011: 7444, 1547 8004: 7445, 1548 8012: 7445, 1549 8005: 7446, 1550 8013: 7446, 1551 8006: 7447, 1552 8007: 7448, 1553 8014: 7449, 1554 8015: 7450, 1555 8016: 7451, 1556 8017: 7452, 1557 8025: 7452, 1558 8018: 7453, 1559 8019: 7454, 1560 8027: 7454, 1561 8020: 7455, 1562 8021: 7456, 1563 8029: 7456, 1564 8022: 7457, 1565 8023: 7458, 1566 8031: 7458, 1567 8024: 7459, 1568 8026: 7460, 1569 8028: 7461, 1570 8030: 7462, 1571 8032: 7463, 1572 8040: 7463, 1573 8033: 7464, 1574 8041: 7464, 1575 8034: 7465, 1576 8042: 7465, 1577 8035: 7466, 1578 8043: 7466, 1579 8036: 7467, 1580 8044: 7467, 1581 8037: 7468, 1582 8045: 7468, 1583 8038: 7469, 1584 8046: 7469, 1585 8039: 7470, 1586 8047: 7470, 1587 8048: 7471, 1588 8122: 7471, 1589 8049: 7472, 1590 8123: 7472, 1591 8050: 7473, 1592 8136: 7473, 1593 8051: 7474, 1594 8137: 7474, 1595 8052: 7475, 1596 8138: 7475, 1597 8053: 7476, 1598 8139: 7476, 1599 8054: 7477, 1600 8154: 7477, 1601 8055: 7478, 1602 8155: 7478, 1603 8056: 7479, 1604 8184: 7479, 1605 8057: 7480, 1606 8185: 7480, 1607 8058: 7481, 1608 8170: 7481, 1609 8059: 7482, 1610 8171: 7482, 1611 8060: 7483, 1612 8186: 7483, 1613 8061: 7484, 1614 8187: 7484, 1615 8062: 7485, 1616 8063: 7486, 1617 8064: 7487, 1618 8072: 7487, 1619 8065: 7488, 1620 8073: 7488, 1621 8066: 7489, 1622 8074: 7489, 1623 8067: 7490, 1624 8075: 7490, 1625 8068: 7491, 1626 8076: 7491, 1627 8069: 7492, 1628 8077: 7492, 1629 8070: 7493, 1630 8078: 7493, 1631 8071: 7494, 1632 8079: 7494, 1633 8080: 7495, 1634 8088: 7495, 1635 8081: 7496, 1636 8089: 7496, 1637 8082: 7497, 1638 8090: 7497, 1639 8083: 7498, 1640 8091: 7498, 1641 8084: 7499, 1642 8092: 7499, 1643 8085: 7500, 1644 8093: 7500, 1645 8086: 7501, 1646 8094: 7501, 1647 8087: 7502, 1648 8095: 7502, 1649 8096: 7503, 1650 8104: 7503, 1651 8097: 7504, 1652 8105: 7504, 1653 8098: 7505, 1654 8106: 7505, 1655 8099: 7506, 1656 8107: 7506, 1657 8100: 7507, 1658 8108: 7507, 1659 8101: 7508, 1660 8109: 7508, 1661 8102: 7509, 1662 8110: 7509, 1663 8103: 7510, 1664 8111: 7510, 1665 8112: 7511, 1666 8120: 7511, 1667 8113: 7512, 1668 8121: 7512, 1669 8114: 7513, 1670 8115: 7514, 1671 8124: 7514, 1672 8116: 7515, 1673 8117: 7516, 1674 8118: 7517, 1675 8119: 7518, 1676 8125: 7519, 1677 8126: 7520, 1678 8127: 7521, 1679 8128: 7522, 1680 8129: 7523, 1681 8130: 7524, 1682 8131: 7525, 1683 8140: 7525, 1684 8132: 7526, 1685 8133: 7527, 1686 8134: 7528, 1687 8135: 7529, 1688 8141: 7530, 1689 8142: 7531, 1690 8143: 7532, 1691 8144: 7533, 1692 8152: 7533, 1693 8145: 7534, 1694 8153: 7534, 1695 8146: 7535, 1696 8147: 7536, 1697 8148: 7537, 1698 8149: 7538, 1699 8150: 7539, 1700 8151: 7540, 1701 8156: 7541, 1702 8157: 7542, 1703 8158: 7543, 1704 8159: 7544, 1705 8160: 7545, 1706 8168: 7545, 1707 8161: 7546, 1708 8169: 7546, 1709 8162: 7547, 1710 8163: 7548, 1711 8164: 7549, 1712 8165: 7550, 1713 8172: 7550, 1714 8166: 7551, 1715 8167: 7552, 1716 8173: 7553, 1717 8174: 7554, 1718 8175: 7555, 1719 8176: 7556, 1720 8177: 7557, 1721 8178: 7558, 1722 8179: 7559, 1723 8188: 7559, 1724 8180: 7560, 1725 8181: 7561, 1726 8182: 7562, 1727 8183: 7563, 1728 8487: 7861, 1729 8488: 7862, 1730 8489: 7863, 1731 8492: 7864, 1732 8493: 7865, 1733 8494: 7866, 1734 8495: 7867, 1735 8496: 7868, 1736 8497: 7869, 1737 8498: 7870, 1738 8499: 7871, 1739 8500: 7872, 1740 8501: 7873, 1741 8502: 7874, 1742 8503: 7875, 1743 8504: 7876, 1744 8505: 7877, 1745 8506: 7878, 1746 8507: 7879, 1747 8508: 7880, 1748 8509: 7881, 1749 8510: 7882, 1750 8511: 7883, 1751 8512: 7884, 1752 8513: 7885, 1753 8514: 7886, 1754 8515: 7887, 1755 8516: 7888, 1756 8517: 7889, 1757 8518: 7890, 1758 8519: 7891, 1759 8520: 7892, 1760 8521: 7893, 1761 8522: 7894, 1762 8523: 7895, 1763 8524: 7896, 1764 8525: 7897, 1765 8526: 7898, 1766 8527: 7899, 1767 8528: 7900, 1768 8529: 7901, 1769 8530: 7902, 1770 8531: 7903, 1771 8532: 7904, 1772 8533: 7905, 1773 8534: 7906, 1774 8535: 7907, 1775 8536: 7908, 1776 8537: 7909, 1777 8538: 7910, 1778 8539: 7911, 1779 8540: 7912, 1780 8541: 7913, 1781 8542: 7914, 1782 8543: 7915, 1783 8544: 7916, 1784 8560: 7916, 1785 8545: 7917, 1786 8561: 7917, 1787 8546: 7918, 1788 8562: 7918, 1789 8547: 7919, 1790 8563: 7919, 1791 8548: 7920, 1792 8564: 7920, 1793 8549: 7921, 1794 8565: 7921, 1795 8550: 7922, 1796 8566: 7922, 1797 8551: 7923, 1798 8567: 7923, 1799 8552: 7924, 1800 8568: 7924, 1801 8553: 7925, 1802 8569: 7925, 1803 8554: 7926, 1804 8570: 7926, 1805 8555: 7927, 1806 8571: 7927, 1807 8556: 7928, 1808 8572: 7928, 1809 8557: 7929, 1810 8573: 7929, 1811 8558: 7930, 1812 8574: 7930, 1813 8559: 7931, 1814 9424: 8754, 1815 9399: 8755, 1816 9425: 8755, 1817 9400: 8756, 1818 9426: 8756, 1819 9401: 8757, 1820 9427: 8757, 1821 9402: 8758, 1822 9428: 8758, 1823 9403: 8759, 1824 9429: 8759, 1825 9404: 8760, 1826 9430: 8760, 1827 9405: 8761, 1828 9431: 8761, 1829 9406: 8762, 1830 9432: 8762, 1831 9407: 8763, 1832 9433: 8763, 1833 9408: 8764, 1834 9434: 8764, 1835 9409: 8765, 1836 9435: 8765, 1837 9410: 8766, 1838 9436: 8766, 1839 9411: 8767, 1840 9437: 8767, 1841 9412: 8768, 1842 9438: 8768, 1843 9413: 8769, 1844 9439: 8769, 1845 9414: 8770, 1846 9440: 8770, 1847 9415: 8771, 1848 9441: 8771, 1849 9416: 8772, 1850 9442: 8772, 1851 9417: 8773, 1852 9443: 8773, 1853 9418: 8774, 1854 9444: 8774, 1855 9419: 8775, 1856 9445: 8775, 1857 9420: 8776, 1858 9446: 8776, 1859 9421: 8777, 1860 9447: 8777, 1861 9422: 8778, 1862 9448: 8778, 1863 9423: 8779, 1864 57344: 54626, 1865 65339: 62595, 1866 65340: 62596, 1867 65341: 62597, 1868 65342: 62598, 1869 65343: 62599, 1870 65344: 62600, 1871 65313: 62601, 1872 65345: 62601, 1873 65314: 62602, 1874 65346: 62602, 1875 65315: 62603, 1876 65347: 62603, 1877 65316: 62604, 1878 65348: 62604, 1879 65317: 62605, 1880 65349: 62605, 1881 65318: 62606, 1882 65350: 62606, 1883 65319: 62607, 1884 65351: 62607, 1885 65320: 62608, 1886 65352: 62608, 1887 65321: 62609, 1888 65353: 62609, 1889 65322: 62610, 1890 65354: 62610, 1891 65323: 62611, 1892 65355: 62611, 1893 65324: 62612, 1894 65356: 62612, 1895 65325: 62613, 1896 65357: 62613, 1897 65326: 62614, 1898 65358: 62614, 1899 65327: 62615, 1900 65359: 62615, 1901 65328: 62616, 1902 65360: 62616, 1903 65329: 62617, 1904 65361: 62617, 1905 65330: 62618, 1906 65362: 62618, 1907 65331: 62619, 1908 65363: 62619, 1909 65332: 62620, 1910 65364: 62620, 1911 65333: 62621, 1912 65365: 62621, 1913 65334: 62622, 1914 65366: 62622, 1915 65335: 62623, 1916 65367: 62623, 1917 65336: 62624, 1918 65368: 62624, 1919 65337: 62625, 1920 65369: 62625, 1921 65338: 62626, 1922 }