bc: fix string downcasing of U+1E9E

In building up conversion tables, information from "SpecialCasing.txt"
data was incorrectly merged with data from "UnicodeData.txt" so that
not-quite-so-special casings were fumbled. For Unicode 7.0, the bug
turned out to affect only string downcasing of U+1E9E.

Closes #3475

Thanks to Xsmith!
This commit is contained in:
Matthew Flatt 2020-10-29 17:28:50 -06:00
parent dcaa20b411
commit de3e22f7a4
4 changed files with 457 additions and 448 deletions

View File

@ -1694,6 +1694,8 @@
(test "\u039A\u03b1\u03BF\u03C3\u03C2" string-titlecase "\u039A\u0391\u039F\u03A3\u03A3") (test "\u039A\u03b1\u03BF\u03C3\u03C2" string-titlecase "\u039A\u0391\u039F\u03A3\u03A3")
(test "\u039A\u03b1\u03BF\u03C2 X" string-titlecase "\u039A\u0391\u039F\u03A3 x") (test "\u039A\u03b1\u03BF\u03C2 X" string-titlecase "\u039A\u0391\u039F\u03A3 x")
(test "\xDF\xDF" string-downcase "\u1E9E\xDF")
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Bytes converters and custodians - check that built-in conversions are ;; Bytes converters and custodians - check that built-in conversions are
;; not registered ;; not registered

1
racket/src/bc/src/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/unicode/

View File

@ -317,6 +317,8 @@
(hash-set! k-decomp-ht code seq) (hash-set! k-decomp-ht code seq)
#t))))) #t)))))
(define default-casing (make-hash))
(call-with-input-file "Unicode/UnicodeData.txt" (call-with-input-file "Unicode/UnicodeData.txt"
(lambda (i) (lambda (i)
(let loop ([prev-code 0]) (let loop ([prev-code 0])
@ -335,6 +337,7 @@
[up (string->number (cadddr (cddddr m)) 16)] [up (string->number (cadddr (cddddr m)) 16)]
[down (string->number (cadddr (cddddr (cdr m))) 16)] [down (string->number (cadddr (cddddr (cdr m))) 16)]
[title (string->number (cadddr (cddddr (cddr m))) 16)]) [title (string->number (cadddr (cddddr (cddr m))) 16)])
(hash-set! default-casing code (list down up title))
(let ([alphabetic? (hash-ref alphabetic code #f)] (let ([alphabetic? (hash-ref alphabetic code #f)]
[numeric? (not (string=? numeric ""))] [numeric? (not (string=? numeric ""))]
[symbolic? (member cat sym-cats)] [symbolic? (member cat sym-cats)]
@ -504,10 +507,11 @@
(hash-for-each special-case-foldings (hash-for-each special-case-foldings
(lambda (k v) (lambda (k v)
(let ([sc (hash-ref special-casings k (lambda () (let ([sc (hash-ref special-casings k (lambda ()
(define d (hash-ref default-casing k))
(let ([sc (make-special-casing (let ([sc (make-special-casing
(list k) (list (or (car d) k))
(list k) (list (or (cadr d) k))
(list k) (list (or (caddr d) k))
(list k) (list k)
#f)]) #f)])
(hash-set! special-casings k sc) (hash-set! special-casings k sc)
@ -784,7 +788,9 @@
(set! long-counter (add1 long-counter)) (set! long-counter (add1 long-counter))
(set! longs (cons (cdr v) (cons (car v) longs))) (set! longs (cons (cdr v) (cons (car v) longs)))
(- long-counter)))]) (- long-counter)))])
(hash-set! decomp-pos-ht k pos))))) (hash-set! decomp-pos-ht k pos))))
;; sort:
#t)
(values (values
(list->vector (append (vector->list canon-composes) (list->vector (append (vector->list canon-composes)
(reverse extra))) (reverse extra)))

View File

@ -17,98 +17,98 @@ READ_ONLY static int uchar_special_casings[] = {
7832, 1, 56, 2, 57, 2, 57, 2, 59, 0, 7832, 1, 56, 2, 57, 2, 57, 2, 59, 0,
7833, 1, 61, 2, 62, 2, 62, 2, 64, 0, 7833, 1, 61, 2, 62, 2, 62, 2, 64, 0,
7834, 1, 66, 2, 67, 2, 67, 2, 69, 0, 7834, 1, 66, 2, 67, 2, 67, 2, 69, 0,
7838, 1, 71, 1, 71, 1, 71, 2, 72, 0, 7838, 1, 71, 1, 72, 1, 72, 2, 73, 0,
8016, 1, 74, 2, 75, 2, 75, 2, 77, 0, 8016, 1, 75, 2, 76, 2, 76, 2, 78, 0,
8018, 1, 79, 3, 80, 3, 80, 3, 83, 0, 8018, 1, 80, 3, 81, 3, 81, 3, 84, 0,
8020, 1, 86, 3, 87, 3, 87, 3, 90, 0, 8020, 1, 87, 3, 88, 3, 88, 3, 91, 0,
8022, 1, 93, 3, 94, 3, 94, 3, 97, 0, 8022, 1, 94, 3, 95, 3, 95, 3, 98, 0,
8064, 1, 100, 2, 101, 1, 103, 2, 104, 0, 8064, 1, 101, 2, 102, 1, 104, 2, 105, 0,
8065, 1, 106, 2, 107, 1, 109, 2, 110, 0, 8065, 1, 107, 2, 108, 1, 110, 2, 111, 0,
8066, 1, 112, 2, 113, 1, 115, 2, 116, 0, 8066, 1, 113, 2, 114, 1, 116, 2, 117, 0,
8067, 1, 118, 2, 119, 1, 121, 2, 122, 0, 8067, 1, 119, 2, 120, 1, 122, 2, 123, 0,
8068, 1, 124, 2, 125, 1, 127, 2, 128, 0, 8068, 1, 125, 2, 126, 1, 128, 2, 129, 0,
8069, 1, 130, 2, 131, 1, 133, 2, 134, 0, 8069, 1, 131, 2, 132, 1, 134, 2, 135, 0,
8070, 1, 136, 2, 137, 1, 139, 2, 140, 0, 8070, 1, 137, 2, 138, 1, 140, 2, 141, 0,
8071, 1, 142, 2, 143, 1, 145, 2, 146, 0, 8071, 1, 143, 2, 144, 1, 146, 2, 147, 0,
8072, 1, 148, 2, 149, 1, 151, 2, 152, 0, 8072, 1, 149, 2, 150, 1, 152, 2, 153, 0,
8073, 1, 154, 2, 155, 1, 157, 2, 158, 0, 8073, 1, 155, 2, 156, 1, 158, 2, 159, 0,
8074, 1, 160, 2, 161, 1, 163, 2, 164, 0, 8074, 1, 161, 2, 162, 1, 164, 2, 165, 0,
8075, 1, 166, 2, 167, 1, 169, 2, 170, 0, 8075, 1, 167, 2, 168, 1, 170, 2, 171, 0,
8076, 1, 172, 2, 173, 1, 175, 2, 176, 0, 8076, 1, 173, 2, 174, 1, 176, 2, 177, 0,
8077, 1, 178, 2, 179, 1, 181, 2, 182, 0, 8077, 1, 179, 2, 180, 1, 182, 2, 183, 0,
8078, 1, 184, 2, 185, 1, 187, 2, 188, 0, 8078, 1, 185, 2, 186, 1, 188, 2, 189, 0,
8079, 1, 190, 2, 191, 1, 193, 2, 194, 0, 8079, 1, 191, 2, 192, 1, 194, 2, 195, 0,
8080, 1, 196, 2, 197, 1, 199, 2, 200, 0, 8080, 1, 197, 2, 198, 1, 200, 2, 201, 0,
8081, 1, 202, 2, 203, 1, 205, 2, 206, 0, 8081, 1, 203, 2, 204, 1, 206, 2, 207, 0,
8082, 1, 208, 2, 209, 1, 211, 2, 212, 0, 8082, 1, 209, 2, 210, 1, 212, 2, 213, 0,
8083, 1, 214, 2, 215, 1, 217, 2, 218, 0, 8083, 1, 215, 2, 216, 1, 218, 2, 219, 0,
8084, 1, 220, 2, 221, 1, 223, 2, 224, 0, 8084, 1, 221, 2, 222, 1, 224, 2, 225, 0,
8085, 1, 226, 2, 227, 1, 229, 2, 230, 0, 8085, 1, 227, 2, 228, 1, 230, 2, 231, 0,
8086, 1, 232, 2, 233, 1, 235, 2, 236, 0, 8086, 1, 233, 2, 234, 1, 236, 2, 237, 0,
8087, 1, 238, 2, 239, 1, 241, 2, 242, 0, 8087, 1, 239, 2, 240, 1, 242, 2, 243, 0,
8088, 1, 244, 2, 245, 1, 247, 2, 248, 0, 8088, 1, 245, 2, 246, 1, 248, 2, 249, 0,
8089, 1, 250, 2, 251, 1, 253, 2, 254, 0, 8089, 1, 251, 2, 252, 1, 254, 2, 255, 0,
8090, 1, 256, 2, 257, 1, 259, 2, 260, 0, 8090, 1, 257, 2, 258, 1, 260, 2, 261, 0,
8091, 1, 262, 2, 263, 1, 265, 2, 266, 0, 8091, 1, 263, 2, 264, 1, 266, 2, 267, 0,
8092, 1, 268, 2, 269, 1, 271, 2, 272, 0, 8092, 1, 269, 2, 270, 1, 272, 2, 273, 0,
8093, 1, 274, 2, 275, 1, 277, 2, 278, 0, 8093, 1, 275, 2, 276, 1, 278, 2, 279, 0,
8094, 1, 280, 2, 281, 1, 283, 2, 284, 0, 8094, 1, 281, 2, 282, 1, 284, 2, 285, 0,
8095, 1, 286, 2, 287, 1, 289, 2, 290, 0, 8095, 1, 287, 2, 288, 1, 290, 2, 291, 0,
8096, 1, 292, 2, 293, 1, 295, 2, 296, 0, 8096, 1, 293, 2, 294, 1, 296, 2, 297, 0,
8097, 1, 298, 2, 299, 1, 301, 2, 302, 0, 8097, 1, 299, 2, 300, 1, 302, 2, 303, 0,
8098, 1, 304, 2, 305, 1, 307, 2, 308, 0, 8098, 1, 305, 2, 306, 1, 308, 2, 309, 0,
8099, 1, 310, 2, 311, 1, 313, 2, 314, 0, 8099, 1, 311, 2, 312, 1, 314, 2, 315, 0,
8100, 1, 316, 2, 317, 1, 319, 2, 320, 0, 8100, 1, 317, 2, 318, 1, 320, 2, 321, 0,
8101, 1, 322, 2, 323, 1, 325, 2, 326, 0, 8101, 1, 323, 2, 324, 1, 326, 2, 327, 0,
8102, 1, 328, 2, 329, 1, 331, 2, 332, 0, 8102, 1, 329, 2, 330, 1, 332, 2, 333, 0,
8103, 1, 334, 2, 335, 1, 337, 2, 338, 0, 8103, 1, 335, 2, 336, 1, 338, 2, 339, 0,
8104, 1, 340, 2, 341, 1, 343, 2, 344, 0, 8104, 1, 341, 2, 342, 1, 344, 2, 345, 0,
8105, 1, 346, 2, 347, 1, 349, 2, 350, 0, 8105, 1, 347, 2, 348, 1, 350, 2, 351, 0,
8106, 1, 352, 2, 353, 1, 355, 2, 356, 0, 8106, 1, 353, 2, 354, 1, 356, 2, 357, 0,
8107, 1, 358, 2, 359, 1, 361, 2, 362, 0, 8107, 1, 359, 2, 360, 1, 362, 2, 363, 0,
8108, 1, 364, 2, 365, 1, 367, 2, 368, 0, 8108, 1, 365, 2, 366, 1, 368, 2, 369, 0,
8109, 1, 370, 2, 371, 1, 373, 2, 374, 0, 8109, 1, 371, 2, 372, 1, 374, 2, 375, 0,
8110, 1, 376, 2, 377, 1, 379, 2, 380, 0, 8110, 1, 377, 2, 378, 1, 380, 2, 381, 0,
8111, 1, 382, 2, 383, 1, 385, 2, 386, 0, 8111, 1, 383, 2, 384, 1, 386, 2, 387, 0,
8114, 1, 388, 2, 389, 2, 391, 2, 393, 0, 8114, 1, 389, 2, 390, 2, 392, 2, 394, 0,
8115, 1, 395, 2, 396, 1, 398, 2, 399, 0, 8115, 1, 396, 2, 397, 1, 399, 2, 400, 0,
8116, 1, 401, 2, 402, 2, 404, 2, 406, 0, 8116, 1, 402, 2, 403, 2, 405, 2, 407, 0,
8118, 1, 408, 2, 409, 2, 409, 2, 411, 0, 8118, 1, 409, 2, 410, 2, 410, 2, 412, 0,
8119, 1, 413, 3, 414, 3, 417, 3, 420, 0, 8119, 1, 414, 3, 415, 3, 418, 3, 421, 0,
8124, 1, 423, 2, 424, 1, 426, 2, 427, 0, 8124, 1, 424, 2, 425, 1, 427, 2, 428, 0,
8130, 1, 429, 2, 430, 2, 432, 2, 434, 0, 8130, 1, 430, 2, 431, 2, 433, 2, 435, 0,
8131, 1, 436, 2, 437, 1, 439, 2, 440, 0, 8131, 1, 437, 2, 438, 1, 440, 2, 441, 0,
8132, 1, 442, 2, 443, 2, 445, 2, 447, 0, 8132, 1, 443, 2, 444, 2, 446, 2, 448, 0,
8134, 1, 449, 2, 450, 2, 450, 2, 452, 0, 8134, 1, 450, 2, 451, 2, 451, 2, 453, 0,
8135, 1, 454, 3, 455, 3, 458, 3, 461, 0, 8135, 1, 455, 3, 456, 3, 459, 3, 462, 0,
8140, 1, 464, 2, 465, 1, 467, 2, 468, 0, 8140, 1, 465, 2, 466, 1, 468, 2, 469, 0,
8146, 1, 470, 3, 471, 3, 471, 3, 474, 0, 8146, 1, 471, 3, 472, 3, 472, 3, 475, 0,
8147, 1, 477, 3, 478, 3, 478, 3, 481, 0, 8147, 1, 478, 3, 479, 3, 479, 3, 482, 0,
8150, 1, 484, 2, 485, 2, 485, 2, 487, 0, 8150, 1, 485, 2, 486, 2, 486, 2, 488, 0,
8151, 1, 489, 3, 490, 3, 490, 3, 493, 0, 8151, 1, 490, 3, 491, 3, 491, 3, 494, 0,
8162, 1, 496, 3, 497, 3, 497, 3, 500, 0, 8162, 1, 497, 3, 498, 3, 498, 3, 501, 0,
8163, 1, 503, 3, 504, 3, 504, 3, 507, 0, 8163, 1, 504, 3, 505, 3, 505, 3, 508, 0,
8164, 1, 510, 2, 511, 2, 511, 2, 513, 0, 8164, 1, 511, 2, 512, 2, 512, 2, 514, 0,
8166, 1, 515, 2, 516, 2, 516, 2, 518, 0, 8166, 1, 516, 2, 517, 2, 517, 2, 519, 0,
8167, 1, 520, 3, 521, 3, 521, 3, 524, 0, 8167, 1, 521, 3, 522, 3, 522, 3, 525, 0,
8178, 1, 527, 2, 528, 2, 530, 2, 532, 0, 8178, 1, 528, 2, 529, 2, 531, 2, 533, 0,
8179, 1, 534, 2, 535, 1, 537, 2, 538, 0, 8179, 1, 535, 2, 536, 1, 538, 2, 539, 0,
8180, 1, 540, 2, 541, 2, 543, 2, 545, 0, 8180, 1, 541, 2, 542, 2, 544, 2, 546, 0,
8182, 1, 547, 2, 548, 2, 548, 2, 550, 0, 8182, 1, 548, 2, 549, 2, 549, 2, 551, 0,
8183, 1, 552, 3, 553, 3, 556, 3, 559, 0, 8183, 1, 553, 3, 554, 3, 557, 3, 560, 0,
8188, 1, 562, 2, 563, 1, 565, 2, 566, 0, 8188, 1, 563, 2, 564, 1, 566, 2, 567, 0,
64256, 1, 568, 2, 569, 2, 571, 2, 573, 0, 64256, 1, 569, 2, 570, 2, 572, 2, 574, 0,
64257, 1, 575, 2, 576, 2, 578, 2, 580, 0, 64257, 1, 576, 2, 577, 2, 579, 2, 581, 0,
64258, 1, 582, 2, 583, 2, 585, 2, 587, 0, 64258, 1, 583, 2, 584, 2, 586, 2, 588, 0,
64259, 1, 589, 3, 590, 3, 593, 3, 596, 0, 64259, 1, 590, 3, 591, 3, 594, 3, 597, 0,
64260, 1, 599, 3, 600, 3, 603, 3, 606, 0, 64260, 1, 600, 3, 601, 3, 604, 3, 607, 0,
64261, 1, 609, 2, 610, 2, 612, 2, 614, 0, 64261, 1, 610, 2, 611, 2, 613, 2, 615, 0,
64262, 1, 616, 2, 617, 2, 619, 2, 621, 0, 64262, 1, 617, 2, 618, 2, 620, 2, 622, 0,
64275, 1, 623, 2, 624, 2, 626, 2, 628, 0, 64275, 1, 624, 2, 625, 2, 627, 2, 629, 0,
64276, 1, 630, 2, 631, 2, 633, 2, 635, 0, 64276, 1, 631, 2, 632, 2, 634, 2, 636, 0,
64277, 1, 637, 2, 638, 2, 640, 2, 642, 0, 64277, 1, 638, 2, 639, 2, 641, 2, 643, 0,
64278, 1, 644, 2, 645, 2, 647, 2, 649, 0, 64278, 1, 645, 2, 646, 2, 648, 2, 650, 0,
64279, 1, 651, 2, 652, 2, 654, 2, 656, 0 }; 64279, 1, 652, 2, 653, 2, 655, 2, 657, 0 };
/* Offsets in scheme_uchar_special_casings point into here: */ /* Offsets in scheme_uchar_special_casings point into here: */
READ_ONLY static int uchar_special_casing_data[] = { READ_ONLY static int uchar_special_casing_data[] = {
@ -116,44 +116,44 @@ READ_ONLY static int uchar_special_casing_data[] = {
110, 496, 74, 780, 106, 780, 912, 921, 776, 769, 953, 776, 769, 962, 931, 963, 110, 496, 74, 780, 106, 780, 912, 921, 776, 769, 953, 776, 769, 962, 931, 963,
944, 933, 776, 769, 965, 776, 769, 1415, 1333, 1362, 1333, 1410, 1381, 1410, 7830, 72, 944, 933, 776, 769, 965, 776, 769, 1415, 1333, 1362, 1333, 1410, 1381, 1410, 7830, 72,
817, 104, 817, 7831, 84, 776, 116, 776, 7832, 87, 778, 119, 778, 7833, 89, 778, 817, 104, 817, 7831, 84, 776, 116, 776, 7832, 87, 778, 119, 778, 7833, 89, 778,
121, 778, 7834, 65, 702, 97, 702, 7838, 115, 115, 8016, 933, 787, 965, 787, 8018, 121, 778, 7834, 65, 702, 97, 702, 223, 7838, 115, 115, 8016, 933, 787, 965, 787,
933, 787, 768, 965, 787, 768, 8020, 933, 787, 769, 965, 787, 769, 8022, 933, 787, 8018, 933, 787, 768, 965, 787, 768, 8020, 933, 787, 769, 965, 787, 769, 8022, 933,
834, 965, 787, 834, 8064, 7944, 921, 8072, 7936, 953, 8065, 7945, 921, 8073, 7937, 953, 787, 834, 965, 787, 834, 8064, 7944, 921, 8072, 7936, 953, 8065, 7945, 921, 8073, 7937,
8066, 7946, 921, 8074, 7938, 953, 8067, 7947, 921, 8075, 7939, 953, 8068, 7948, 921, 8076, 953, 8066, 7946, 921, 8074, 7938, 953, 8067, 7947, 921, 8075, 7939, 953, 8068, 7948, 921,
7940, 953, 8069, 7949, 921, 8077, 7941, 953, 8070, 7950, 921, 8078, 7942, 953, 8071, 7951, 8076, 7940, 953, 8069, 7949, 921, 8077, 7941, 953, 8070, 7950, 921, 8078, 7942, 953, 8071,
921, 8079, 7943, 953, 8064, 7944, 921, 8072, 7936, 953, 8065, 7945, 921, 8073, 7937, 953, 7951, 921, 8079, 7943, 953, 8064, 7944, 921, 8072, 7936, 953, 8065, 7945, 921, 8073, 7937,
8066, 7946, 921, 8074, 7938, 953, 8067, 7947, 921, 8075, 7939, 953, 8068, 7948, 921, 8076, 953, 8066, 7946, 921, 8074, 7938, 953, 8067, 7947, 921, 8075, 7939, 953, 8068, 7948, 921,
7940, 953, 8069, 7949, 921, 8077, 7941, 953, 8070, 7950, 921, 8078, 7942, 953, 8071, 7951, 8076, 7940, 953, 8069, 7949, 921, 8077, 7941, 953, 8070, 7950, 921, 8078, 7942, 953, 8071,
921, 8079, 7943, 953, 8080, 7976, 921, 8088, 7968, 953, 8081, 7977, 921, 8089, 7969, 953, 7951, 921, 8079, 7943, 953, 8080, 7976, 921, 8088, 7968, 953, 8081, 7977, 921, 8089, 7969,
8082, 7978, 921, 8090, 7970, 953, 8083, 7979, 921, 8091, 7971, 953, 8084, 7980, 921, 8092, 953, 8082, 7978, 921, 8090, 7970, 953, 8083, 7979, 921, 8091, 7971, 953, 8084, 7980, 921,
7972, 953, 8085, 7981, 921, 8093, 7973, 953, 8086, 7982, 921, 8094, 7974, 953, 8087, 7983, 8092, 7972, 953, 8085, 7981, 921, 8093, 7973, 953, 8086, 7982, 921, 8094, 7974, 953, 8087,
921, 8095, 7975, 953, 8080, 7976, 921, 8088, 7968, 953, 8081, 7977, 921, 8089, 7969, 953, 7983, 921, 8095, 7975, 953, 8080, 7976, 921, 8088, 7968, 953, 8081, 7977, 921, 8089, 7969,
8082, 7978, 921, 8090, 7970, 953, 8083, 7979, 921, 8091, 7971, 953, 8084, 7980, 921, 8092, 953, 8082, 7978, 921, 8090, 7970, 953, 8083, 7979, 921, 8091, 7971, 953, 8084, 7980, 921,
7972, 953, 8085, 7981, 921, 8093, 7973, 953, 8086, 7982, 921, 8094, 7974, 953, 8087, 7983, 8092, 7972, 953, 8085, 7981, 921, 8093, 7973, 953, 8086, 7982, 921, 8094, 7974, 953, 8087,
921, 8095, 7975, 953, 8096, 8040, 921, 8104, 8032, 953, 8097, 8041, 921, 8105, 8033, 953, 7983, 921, 8095, 7975, 953, 8096, 8040, 921, 8104, 8032, 953, 8097, 8041, 921, 8105, 8033,
8098, 8042, 921, 8106, 8034, 953, 8099, 8043, 921, 8107, 8035, 953, 8100, 8044, 921, 8108, 953, 8098, 8042, 921, 8106, 8034, 953, 8099, 8043, 921, 8107, 8035, 953, 8100, 8044, 921,
8036, 953, 8101, 8045, 921, 8109, 8037, 953, 8102, 8046, 921, 8110, 8038, 953, 8103, 8047, 8108, 8036, 953, 8101, 8045, 921, 8109, 8037, 953, 8102, 8046, 921, 8110, 8038, 953, 8103,
921, 8111, 8039, 953, 8096, 8040, 921, 8104, 8032, 953, 8097, 8041, 921, 8105, 8033, 953, 8047, 921, 8111, 8039, 953, 8096, 8040, 921, 8104, 8032, 953, 8097, 8041, 921, 8105, 8033,
8098, 8042, 921, 8106, 8034, 953, 8099, 8043, 921, 8107, 8035, 953, 8100, 8044, 921, 8108, 953, 8098, 8042, 921, 8106, 8034, 953, 8099, 8043, 921, 8107, 8035, 953, 8100, 8044, 921,
8036, 953, 8101, 8045, 921, 8109, 8037, 953, 8102, 8046, 921, 8110, 8038, 953, 8103, 8047, 8108, 8036, 953, 8101, 8045, 921, 8109, 8037, 953, 8102, 8046, 921, 8110, 8038, 953, 8103,
921, 8111, 8039, 953, 8114, 8122, 921, 8122, 837, 8048, 953, 8115, 913, 921, 8124, 945, 8047, 921, 8111, 8039, 953, 8114, 8122, 921, 8122, 837, 8048, 953, 8115, 913, 921, 8124,
953, 8116, 902, 921, 902, 837, 940, 953, 8118, 913, 834, 945, 834, 8119, 913, 834, 945, 953, 8116, 902, 921, 902, 837, 940, 953, 8118, 913, 834, 945, 834, 8119, 913,
921, 913, 834, 837, 945, 834, 953, 8115, 913, 921, 8124, 945, 953, 8130, 8138, 921, 834, 921, 913, 834, 837, 945, 834, 953, 8115, 913, 921, 8124, 945, 953, 8130, 8138,
8138, 837, 8052, 953, 8131, 919, 921, 8140, 951, 953, 8132, 905, 921, 905, 837, 942, 921, 8138, 837, 8052, 953, 8131, 919, 921, 8140, 951, 953, 8132, 905, 921, 905, 837,
953, 8134, 919, 834, 951, 834, 8135, 919, 834, 921, 919, 834, 837, 951, 834, 953, 942, 953, 8134, 919, 834, 951, 834, 8135, 919, 834, 921, 919, 834, 837, 951, 834,
8131, 919, 921, 8140, 951, 953, 8146, 921, 776, 768, 953, 776, 768, 8147, 921, 776, 953, 8131, 919, 921, 8140, 951, 953, 8146, 921, 776, 768, 953, 776, 768, 8147, 921,
769, 953, 776, 769, 8150, 921, 834, 953, 834, 8151, 921, 776, 834, 953, 776, 834, 776, 769, 953, 776, 769, 8150, 921, 834, 953, 834, 8151, 921, 776, 834, 953, 776,
8162, 933, 776, 768, 965, 776, 768, 8163, 933, 776, 769, 965, 776, 769, 8164, 929, 834, 8162, 933, 776, 768, 965, 776, 768, 8163, 933, 776, 769, 965, 776, 769, 8164,
787, 961, 787, 8166, 933, 834, 965, 834, 8167, 933, 776, 834, 965, 776, 834, 8178, 929, 787, 961, 787, 8166, 933, 834, 965, 834, 8167, 933, 776, 834, 965, 776, 834,
8186, 921, 8186, 837, 8060, 953, 8179, 937, 921, 8188, 969, 953, 8180, 911, 921, 911, 8178, 8186, 921, 8186, 837, 8060, 953, 8179, 937, 921, 8188, 969, 953, 8180, 911, 921,
837, 974, 953, 8182, 937, 834, 969, 834, 8183, 937, 834, 921, 937, 834, 837, 969, 911, 837, 974, 953, 8182, 937, 834, 969, 834, 8183, 937, 834, 921, 937, 834, 837,
834, 953, 8179, 937, 921, 8188, 969, 953, 64256, 70, 70, 70, 102, 102, 102, 64257, 969, 834, 953, 8179, 937, 921, 8188, 969, 953, 64256, 70, 70, 70, 102, 102, 102,
70, 73, 70, 105, 102, 105, 64258, 70, 76, 70, 108, 102, 108, 64259, 70, 70, 64257, 70, 73, 70, 105, 102, 105, 64258, 70, 76, 70, 108, 102, 108, 64259, 70,
73, 70, 102, 105, 102, 102, 105, 64260, 70, 70, 76, 70, 102, 108, 102, 102, 70, 73, 70, 102, 105, 102, 102, 105, 64260, 70, 70, 76, 70, 102, 108, 102,
108, 64261, 83, 84, 83, 116, 115, 116, 64262, 83, 84, 83, 116, 115, 116, 64275, 102, 108, 64261, 83, 84, 83, 116, 115, 116, 64262, 83, 84, 83, 116, 115, 116,
1348, 1350, 1348, 1398, 1396, 1398, 64276, 1348, 1333, 1348, 1381, 1396, 1381, 64277, 1348, 1339, 64275, 1348, 1350, 1348, 1398, 1396, 1398, 64276, 1348, 1333, 1348, 1381, 1396, 1381, 64277, 1348,
1348, 1387, 1396, 1387, 64278, 1358, 1350, 1358, 1398, 1406, 1398, 64279, 1348, 1341, 1348, 1389, 1339, 1348, 1387, 1396, 1387, 64278, 1358, 1350, 1358, 1398, 1406, 1398, 64279, 1348, 1341, 1348,
1396, 1389 }; 1389, 1396, 1389 };
#define SPECIAL_CASE_FOLD_MAX 3 #define SPECIAL_CASE_FOLD_MAX 3
@ -287,131 +287,131 @@ READ_ONLY static unsigned int utable_compose_pairs[] = {
0x30b73099, 0x30b93099, 0x30bb3099, 0x30bd3099, 0x30bf3099, 0x30c13099, 0x30c43099, 0x30c63099, 0x30b73099, 0x30b93099, 0x30bb3099, 0x30bd3099, 0x30bf3099, 0x30c13099, 0x30c43099, 0x30c63099,
0x30c83099, 0x30cf3099, 0x30cf309a, 0x30d23099, 0x30d2309a, 0x30d53099, 0x30d5309a, 0x30d83099, 0x30c83099, 0x30cf3099, 0x30cf309a, 0x30d23099, 0x30d2309a, 0x30d53099, 0x30d5309a, 0x30d83099,
0x30d8309a, 0x30db3099, 0x30db309a, 0x30ef3099, 0x30f03099, 0x30f13099, 0x30f23099, 0x30fd3099, 0x30d8309a, 0x30db3099, 0x30db309a, 0x30ef3099, 0x30f03099, 0x30f13099, 0x30f23099, 0x30fd3099,
0xb40000, 0x38f0000, 0x38c0000, 0x600000, 0x3850000, 0x38e0000, 0x3b00000, 0x38a0000, 0x3000000, 0x3010000, 0x3130000, 0x3080301, 0x2b90000, 0x3b0000, 0xb70000, 0x915093c,
0x3900000, 0x3890000, 0x3880000, 0x3b90000, 0x3860000, 0x3ce0000, 0x3cd0000, 0x3cc0000, 0x916093c, 0x917093c, 0x91c093c, 0x921093c, 0x922093c, 0x92b093c, 0x92f093c, 0x9a109bc,
0x3af0000, 0x3ae0000, 0x3ad0000, 0x3ac0000, 0xf5b0fb7, 0xf4c0fb7, 0xf420fb7, 0x917093c, 0x9a209bc, 0x9af09bc, 0xa320a3c, 0xa380a3c, 0xa160a3c, 0xa170a3c, 0xa1c0a3c, 0xa2b0a3c,
0x915093c, 0x7f7a0000, 0x7e020000, 0x7a4f0000, 0x74470000, 0xb220b3c, 0xb210b3c, 0x5e405bf, 0xb210b3c, 0xb220b3c, 0xf420fb7, 0xf4c0fb7, 0xf510fb7, 0xf560fb7, 0xf5b0fb7, 0xf400fb5,
0x5db05bf, 0x5ea05bc, 0x5e905bc, 0x5e705bc, 0x5e605bc, 0x5e405bc, 0x5de05bc, 0x5dc05bc, 0xf710f72, 0xf710f74, 0xfb20f80, 0xfb30f80, 0xf710f80, 0xf920fb7, 0xf9c0fb7, 0xfa10fb7,
0x5da05bc, 0x5d905bc, 0x5d805bc, 0x5d605bc, 0x5d505bc, 0x5d405bc, 0x5d305bc, 0x5d205bc, 0xfa60fb7, 0xfab0fb7, 0xf900fb5, 0x3ac0000, 0x3ad0000, 0x3ae0000, 0x3af0000, 0x3cc0000,
0x5d105bc, 0x5d005bc, 0x5d005b8, 0x5d005b7, 0xfb4905c2, 0xfb4905c1, 0x5e905c2, 0x5e905c1, 0x3cd0000, 0x3ce0000, 0x3860000, 0x3b90000, 0x3880000, 0x3890000, 0x3900000, 0x38a0000,
0x5f205b7, 0x5d905b4, 0x2add0338, 0x9f8e0000, 0x9f430000, 0x40390000, 0x40180000, 0x3b9d0000, 0x3b00000, 0x38e0000, 0x3850000, 0x600000, 0x38c0000, 0x38f0000, 0xb40000, 0x20020000,
0x9f9c0000, 0x9b120000, 0x983b0000, 0x980b0000, 0x97ff0000, 0x97db0000, 0x97560000, 0x96e30000, 0x20030000, 0x3a90000, 0x4b0000, 0xc50000, 0x30080000, 0x30090000, 0x2add0338, 0x8c480000,
0x967c0000, 0x92760000, 0x91990000, 0x90720000, 0x8f380000, 0x8d080000, 0x8b8a0000, 0x8b390000, 0x66f40000, 0x8eca0000, 0x8cc80000, 0x6ed10000, 0x4e320000, 0x53e50000, 0x9f9c0000, 0x9f9c0000,
0x8aed0000, 0x8afe0000, 0x8b010000, 0x8acb0000, 0x8af80000, 0x8abf0000, 0x89960000, 0x89860000, 0x59510000, 0x91d10000, 0x55870000, 0x59480000, 0x61f60000, 0x76690000, 0x7f850000, 0x863f0000,
0x89410000, 0x87790000, 0x83ef0000, 0x83520000, 0x80050000, 0x7f3e0000, 0x7df40000, 0x7d5b0000, 0x87ba0000, 0x88f80000, 0x908f0000, 0x6a020000, 0x6d1b0000, 0x70d90000, 0x73de0000, 0x843d0000,
0x7c7b0000, 0x7bc00000, 0x7ab10000, 0x78cc0000, 0x77400000, 0x774a0000, 0x76f40000, 0x76db0000, 0x916a0000, 0x99f10000, 0x4e820000, 0x53750000, 0x6b040000, 0x721b0000, 0x862d0000, 0x9e1e0000,
0x76ca0000, 0x761f0000, 0x761d0000, 0x753b0000, 0x75060000, 0x74710000, 0x732a0000, 0x72af0000, 0x5d500000, 0x6feb0000, 0x85cd0000, 0x89640000, 0x62c90000, 0x81d80000, 0x881f0000, 0x5eca0000,
0x72350000, 0x77a70000, 0x716e0000, 0x701e0000, 0x6f220000, 0x6ecb0000, 0x6edb0000, 0x6d410000, 0x67170000, 0x6d6a0000, 0x72fc0000, 0x90ce0000, 0x4f860000, 0x51b70000, 0x52de0000, 0x64c40000,
0x6bba0000, 0x6b790000, 0x67560000, 0x671b0000, 0x67170000, 0x66740000, 0x65560000, 0x64520000, 0x6ad30000, 0x72100000, 0x76e70000, 0x80010000, 0x86060000, 0x865c0000, 0x8def0000, 0x97320000,
0x641c0000, 0x63c40000, 0x62340000, 0x61f20000, 0x61600000, 0x618e0000, 0x61080000, 0x614e0000, 0x9b6f0000, 0x9dfa0000, 0x788c0000, 0x797f0000, 0x7da00000, 0x83c90000, 0x93040000, 0x9e7f0000,
0x60d80000, 0x5fad0000, 0x5f690000, 0x5ed90000, 0x5ed20000, 0x5b280000, 0x5a620000, 0x59540000, 0x8ad60000, 0x58df0000, 0x5f040000, 0x7c600000, 0x807e0000, 0x72620000, 0x78ca0000, 0x8cc20000,
0x59440000, 0x58b30000, 0x585a0000, 0x55e20000, 0x55990000, 0x55550000, 0x559d0000, 0x52fa0000, 0x96f70000, 0x58d80000, 0x5c620000, 0x6a130000, 0x6dda0000, 0x6f0f0000, 0x7d2f0000, 0x7e370000,
0x52c70000, 0x51800000, 0x51450000, 0x4f800000, 0x51680000, 0x51b50000, 0x4e260000, 0x82180000, 0x964b0000, 0x52d20000, 0x808b0000, 0x51dc0000, 0x51cc0000, 0x7a1c0000, 0x7dbe0000, 0x83f10000,
0x60750000, 0x983b0000, 0x97ff0000, 0x96e30000, 0x90380000, 0x8fb60000, 0x8d080000, 0x8cd30000, 0x96750000, 0x8b800000, 0x62cf0000, 0x6a020000, 0x8afe0000, 0x4e390000, 0x5be70000, 0x60120000,
0x8b390000, 0x8b010000, 0x89960000, 0x89100000, 0x84570000, 0xa2b0a3c, 0x82790000, 0x81ed0000, 0x73870000, 0x75700000, 0x53170000, 0x78fb0000, 0x4fbf0000, 0x5fa90000, 0x4e0d0000, 0x6ccc0000,
0xa1c0a3c, 0xa170a3c, 0xa160a3c, 0x7e090000, 0x7df40000, 0x7bc00000, 0x7a810000, 0x7a400000, 0x65780000, 0x7d220000, 0x53c30000, 0x585e0000, 0x77010000, 0x84490000, 0x8aaa0000, 0x6bba0000,
0x798e0000, 0x798d0000, 0x795d0000, 0x79560000, 0x79500000, 0x79480000, 0x79490000, 0x793e0000, 0x8fb00000, 0x6c880000, 0x62fe0000, 0x82e50000, 0x63a00000, 0x75650000, 0x4eae0000, 0x51690000,
0x78910000, 0x74220000, 0x722b0000, 0x716e0000, 0x6f220000, 0x6e1a0000, 0x6d770000, 0x68850000, 0x51c90000, 0x68810000, 0x7ce70000, 0x826f0000, 0x8ad20000, 0x91cf0000, 0x52f50000, 0x54420000,
0x66910000, 0x65e20000, 0x654f0000, 0x61f20000, 0x618e0000, 0x61680000, 0x60940000, 0x5c6e0000, 0x59730000, 0x5eec0000, 0x65c50000, 0x6ffe0000, 0x792a0000, 0x95ad0000, 0x9a6a0000, 0x9e970000,
0x5c640000, 0x58a80000, 0x58400000, 0x56680000, 0x56060000, 0xa380a3c, 0x53510000, 0x52e40000, 0x9ece0000, 0x529b0000, 0x66c60000, 0x6b770000, 0x8f620000, 0x5e740000, 0x61900000, 0x62000000,
0xa320a3c, 0x514d0000, 0x50e70000, 0x4fae0000, 0x96b70000, 0x90de0000, 0x9db40000, 0x99280000, 0x649a0000, 0x6f230000, 0x71490000, 0x74890000, 0x79ca0000, 0x7df40000, 0x806f0000, 0x8f260000,
0x98fc0000, 0x98ef0000, 0x90fd0000, 0x90380000, 0x8af80000, 0x86120000, 0x7fbd0000, 0x7cbe0000, 0x84ee0000, 0x90230000, 0x934a0000, 0x52170000, 0x52a30000, 0x54bd0000, 0x70c80000, 0x88c20000,
0x97560000, 0x798f0000, 0x79650000, 0x795e0000, 0x793c0000, 0x76ca0000, 0x732a0000, 0x51de0000, 0x8aaa0000, 0x5ec90000, 0x5ff50000, 0x637b0000, 0x6bae0000, 0x7c3e0000, 0x73750000, 0x4ee40000,
0x66740000, 0x585a0000, 0x9d670000, 0x55c00000, 0x51400000, 0x5ed30000, 0x898b0000, 0x964d0000, 0x56f90000, 0x5be70000, 0x5dba0000, 0x601c0000, 0x73b20000, 0x74690000, 0x7f9a0000, 0x80460000,
0x884c0000, 0x8f3b0000, 0x66b40000, 0x6d1e0000, 0x5b850000, 0x7cd60000, 0x62d30000, 0x5ea60000, 0x92340000, 0x96f60000, 0x97480000, 0x98180000, 0x4f8b0000, 0x79ae0000, 0x91b40000, 0x96b80000,
0x52070000, 0x523a0000, 0x83360000, 0x4ec00000, 0x8b580000, 0x70990000, 0x72c00000, 0x7c920000, 0x60e10000, 0x4e860000, 0x50da0000, 0x5bee0000, 0x5c3f0000, 0x65990000, 0x6a020000, 0x71ce0000,
0x7b200000, 0x7acb0000, 0x81e80000, 0x6dcb0000, 0x67970000, 0x9e9f0000, 0x9c570000, 0x96a30000, 0x76420000, 0x84fc0000, 0x907c0000, 0x9f8d0000, 0x66880000, 0x962e0000, 0x52890000, 0x677b0000,
0x85fa0000, 0x74980000, 0x71d00000, 0x541d0000, 0x6eba0000, 0x533f0000, 0x96e20000, 0x91cc0000, 0x67f30000, 0x6d410000, 0x6e9c0000, 0x74090000, 0x75590000, 0x786b0000, 0x7d100000, 0x985e0000,
0x88e10000, 0x88cf0000, 0x7f790000, 0x75e20000, 0x74060000, 0x6ce50000, 0x68a80000, 0x674e0000, 0x516d0000, 0x622e0000, 0x96780000, 0x502b0000, 0x5d190000, 0x6dea0000, 0x8f2a0000, 0x5f8b0000,
0x66130000, 0x9af09bc, 0x540f0000, 0x9a209bc, 0x9a109bc, 0x73870000, 0x68170000, 0x61440000, 0x61440000, 0x68170000, 0x73870000, 0x96860000, 0x52290000, 0x540f0000, 0x5c650000, 0x66130000,
0x5f8b0000, 0x8f2a0000, 0x6dea0000, 0x5d190000, 0x502b0000, 0x96780000, 0x622e0000, 0x516d0000, 0x674e0000, 0x68a80000, 0x6ce50000, 0x74060000, 0x75e20000, 0x7f790000, 0x88cf0000, 0x88e10000,
0x985e0000, 0x7d100000, 0x786b0000, 0x75590000, 0x6d410000, 0x67f30000, 0x677b0000, 0x52890000, 0x91cc0000, 0x96e20000, 0x533f0000, 0x6eba0000, 0x541d0000, 0x71d00000, 0x74980000, 0x85fa0000,
0x962e0000, 0x66880000, 0x9f8d0000, 0x907c0000, 0x84fc0000, 0x76420000, 0x71ce0000, 0x6a020000, 0x96a30000, 0x9c570000, 0x9e9f0000, 0x67970000, 0x6dcb0000, 0x81e80000, 0x7acb0000, 0x7b200000,
0x65990000, 0x5c3f0000, 0x5bee0000, 0x50da0000, 0x4e860000, 0x60e10000, 0x96b80000, 0x91b40000, 0x7c920000, 0x72c00000, 0x70990000, 0x8b580000, 0x4ec00000, 0x83360000, 0x523a0000, 0x52070000,
0x79ae0000, 0x4f8b0000, 0x98180000, 0x97480000, 0x96f60000, 0x92340000, 0x80460000, 0x7f9a0000, 0x5ea60000, 0x62d30000, 0x7cd60000, 0x5b850000, 0x6d1e0000, 0x66b40000, 0x8f3b0000, 0x884c0000,
0x74690000, 0x73b20000, 0x601c0000, 0x5dba0000, 0x5be70000, 0x56f90000, 0x4ee40000, 0x73750000, 0x964d0000, 0x898b0000, 0x5ed30000, 0x51400000, 0x55c00000, 0x585a0000, 0x66740000, 0x51de0000,
0x7c3e0000, 0x6bae0000, 0x637b0000, 0x5ff50000, 0x5ec90000, 0x8aaa0000, 0x88c20000, 0x70c80000, 0x732a0000, 0x76ca0000, 0x793c0000, 0x795e0000, 0x79650000, 0x798f0000, 0x97560000, 0x7cbe0000,
0x54bd0000, 0x52a30000, 0x52170000, 0x934a0000, 0x90230000, 0x84ee0000, 0x8f260000, 0x806f0000, 0x7fbd0000, 0x86120000, 0x8af80000, 0x90380000, 0x90fd0000, 0x98ef0000, 0x98fc0000, 0x99280000,
0x7df40000, 0x79ca0000, 0x74890000, 0x71490000, 0x6f230000, 0x649a0000, 0x62000000, 0x61900000, 0x9db40000, 0x90de0000, 0x96b70000, 0x4fae0000, 0x50e70000, 0x514d0000, 0x52c90000, 0x52e40000,
0x5e740000, 0x8f620000, 0x6b770000, 0x66c60000, 0x529b0000, 0x9ece0000, 0x9e970000, 0x9a6a0000, 0x53510000, 0x559d0000, 0x56060000, 0x56680000, 0x58400000, 0x58a80000, 0x5c640000, 0x5c6e0000,
0x95ad0000, 0x792a0000, 0x6ffe0000, 0x65c50000, 0x5eec0000, 0x59730000, 0x54420000, 0x52f50000, 0x60940000, 0x61680000, 0x618e0000, 0x61f20000, 0x654f0000, 0x65e20000, 0x66910000, 0x68850000,
0x91cf0000, 0x8ad20000, 0x826f0000, 0x7ce70000, 0x68810000, 0x51c90000, 0x51690000, 0x63a00000, 0x6d770000, 0x6e1a0000, 0x6f220000, 0x716e0000, 0x722b0000, 0x74220000, 0x78910000, 0x793e0000,
0x82e50000, 0x62fe0000, 0x6c880000, 0x8fb00000, 0x6bba0000, 0x84490000, 0x77010000, 0x585e0000, 0x79490000, 0x79480000, 0x79500000, 0x79560000, 0x795d0000, 0x798d0000, 0x798e0000, 0x7a400000,
0x53c30000, 0x7d220000, 0x65780000, 0x6ccc0000, 0x4e0d0000, 0x5fa90000, 0x4fbf0000, 0x78fb0000, 0x7a810000, 0x7bc00000, 0x7df40000, 0x7e090000, 0x7e410000, 0x7f720000, 0x80050000, 0x81ed0000,
0x53170000, 0x75700000, 0x73870000, 0x60120000, 0x92f093c, 0x92b093c, 0x922093c, 0x921093c, 0x82790000, 0x82790000, 0x84570000, 0x89100000, 0x89960000, 0x8b010000, 0x8b390000, 0x8cd30000,
0x91c093c, 0x8b800000, 0x916093c, 0x83f10000, 0x7dbe0000, 0x7a1c0000, 0x51cc0000, 0x51dc0000, 0x8d080000, 0x8fb60000, 0x90380000, 0x96e30000, 0x97ff0000, 0x983b0000, 0x60750000, 0x82180000,
0x808b0000, 0x52d20000, 0x964b0000, 0x7e370000, 0x7d2f0000, 0x6f0f0000, 0x6dda0000, 0x58d80000, 0x4e260000, 0x51b50000, 0x51680000, 0x4f800000, 0x51450000, 0x51800000, 0x52c70000, 0x52fa0000,
0x96f70000, 0x8cc20000, 0x807e0000, 0x7c600000, 0x5f040000, 0x58df0000, 0x9e7f0000, 0x83c90000, 0x559d0000, 0x55550000, 0x55990000, 0x55e20000, 0x585a0000, 0x58b30000, 0x59440000, 0x59540000,
0x7da00000, 0x788c0000, 0x9dfa0000, 0x9b6f0000, 0x97320000, 0x8def0000, 0x865c0000, 0x86060000, 0x5a620000, 0x5b280000, 0x5ed20000, 0x5ed90000, 0x5f690000, 0x5fad0000, 0x60d80000, 0x614e0000,
0x76e70000, 0x72100000, 0x64c40000, 0x52de0000, 0x4f860000, 0x90ce0000, 0x72fc0000, 0x67170000, 0x61080000, 0x618e0000, 0x61600000, 0x61f20000, 0x62340000, 0x63c40000, 0x641c0000, 0x64520000,
0x881f0000, 0x81d80000, 0x62c90000, 0x89640000, 0x6feb0000, 0x9e1e0000, 0x862d0000, 0x721b0000, 0x65560000, 0x66740000, 0x67170000, 0x671b0000, 0x67560000, 0x6b790000, 0x6bba0000, 0x6d410000,
0x6b040000, 0x53750000, 0x4e820000, 0x99f10000, 0x916a0000, 0x843d0000, 0x73de0000, 0x70d90000, 0x6edb0000, 0x6ecb0000, 0x6f220000, 0x701e0000, 0x716e0000, 0x77a70000, 0x72350000, 0x72af0000,
0x6d1b0000, 0x6a020000, 0x908f0000, 0x88f80000, 0x87ba0000, 0x863f0000, 0x7f850000, 0x76690000, 0x732a0000, 0x74710000, 0x75060000, 0x753b0000, 0x761d0000, 0x761f0000, 0x76ca0000, 0x76db0000,
0x61f60000, 0x59480000, 0x55870000, 0x91d10000, 0x59510000, 0x9f9c0000, 0x9f9c0000, 0x53e50000, 0x76f40000, 0x774a0000, 0x77400000, 0x78cc0000, 0x7ab10000, 0x7bc00000, 0x7c7b0000, 0x7d5b0000,
0x4e320000, 0x6ed10000, 0x8cc80000, 0x8eca0000, 0x66f40000, 0x8c480000, 0x6d160000, 0x6c670000, 0x7df40000, 0x7f3e0000, 0x80050000, 0x83520000, 0x83ef0000, 0x87790000, 0x89410000, 0x89860000,
0x6ccd0000, 0x6cbf0000, 0x6c4e0000, 0x6bbb0000, 0x6bba0000, 0x6b9f0000, 0x5d105bf, 0x3c4e0000, 0x89960000, 0x8abf0000, 0x8af80000, 0x8acb0000, 0x8b010000, 0x8afe0000, 0x8aed0000, 0x8b390000,
0x6b540000, 0x5d505b9, 0x6b210000, 0x3c180000, 0x5e805bc, 0x6aa80000, 0x69ea0000, 0x69a30000, 0x8b8a0000, 0x8d080000, 0x8f380000, 0x90720000, 0x91990000, 0x92760000, 0x967c0000, 0x96e30000,
0x69420000, 0x3b9d0000, 0x69140000, 0x681f0000, 0x5e305bc, 0x5e105bc, 0x5e005bc, 0x67850000, 0x97560000, 0x97db0000, 0x97ff0000, 0x980b0000, 0x983b0000, 0x9b120000, 0x9f9c0000, 0x3b9d0000,
0x67fa0000, 0x3b490000, 0x67530000, 0x675e0000, 0x67210000, 0x671b0000, 0x5db05bc, 0x43d90000, 0x40180000, 0x40390000, 0x9f430000, 0x9f8e0000, 0x5d905b4, 0x5f205b7, 0x5e905c1, 0x5e905c2,
0x80ad0000, 0x669c0000, 0x67000000, 0x51950000, 0x51920000, 0x3ae40000, 0x3b080000, 0x66910000, 0xfb4905c1, 0xfb4905c2, 0x5d005b7, 0x5d005b8, 0x5d005bc, 0x5d105bc, 0x5d205bc, 0x5d305bc,
0x3b190000, 0x66490000, 0x66f80000, 0x65e30000, 0x656c0000, 0x654f0000, 0x3a6c0000, 0x64770000, 0x5d405bc, 0x5d505bc, 0x5d605bc, 0x5d805bc, 0x5d905bc, 0x5da05bc, 0x5db05bc, 0x5dc05bc,
0x649d0000, 0x647e0000, 0x64690000, 0x3a2e0000, 0x63a90000, 0x63c50000, 0x64220000, 0x63e40000, 0x5de05bc, 0x5e005bc, 0x5e105bc, 0x5e305bc, 0x5e405bc, 0x5e605bc, 0x5e705bc, 0x5e805bc,
0x63830000, 0x63680000, 0x62fc0000, 0x633d0000, 0x63500000, 0x62d40000, 0x62b10000, 0x625d0000, 0x5e905bc, 0x5ea05bc, 0x5d505b9, 0x5d105bf, 0x5db05bf, 0x5e405bf, 0x4e3d0000, 0x4e380000,
0x621b0000, 0x62100000, 0x61f60000, 0x61f20000, 0x61de0000, 0x61af0000, 0x61a40000, 0x61b20000, 0x4e410000, 0x4f600000, 0x4fae0000, 0x4fbb0000, 0x50020000, 0x507a0000, 0x50990000, 0x50e70000,
0x618e0000, 0x617a0000, 0x614c0000, 0x614e0000, 0x614c0000, 0x61480000, 0x60c70000, 0x60940000, 0x50cf0000, 0x349e0000, 0x514d0000, 0x51540000, 0x51640000, 0x51770000, 0x34b90000, 0x51670000,
0x391c0000, 0x393a0000, 0x60810000, 0x5ff90000, 0x5fd70000, 0x5fcd0000, 0x5f9a0000, 0x38e30000, 0x518d0000, 0x51970000, 0x51a40000, 0x4ecc0000, 0x51ac0000, 0x51b50000, 0x51f50000, 0x52030000,
0x5f6b0000, 0x5f620000, 0x38c70000, 0x5f220000, 0x5f220000, 0x82010000, 0x5efe0000, 0x5eca0000, 0x34df0000, 0x523b0000, 0x52460000, 0x52720000, 0x52770000, 0x35150000, 0x52c70000, 0x52c90000,
0x5eb60000, 0x5eb30000, 0x5eb00000, 0x387c0000, 0x38620000, 0x5e690000, 0x5e3d0000, 0x5e280000, 0x52e40000, 0x52fa0000, 0x53050000, 0x53060000, 0x53170000, 0x53490000, 0x53510000, 0x535a0000,
0x5dfd0000, 0x382f0000, 0x5de20000, 0x5de10000, 0x5d7c0000, 0x5d6b0000, 0x5d6e0000, 0x5d430000, 0x53730000, 0x537d0000, 0x537f0000, 0x537f0000, 0x537f0000, 0x70700000, 0x53ca0000, 0x53df0000,
0x5c8d0000, 0x5cc00000, 0x5c6e0000, 0x5c600000, 0x37810000, 0x5c220000, 0x5f530000, 0x5c060000, 0x53eb0000, 0x53f10000, 0x54060000, 0x549e0000, 0x54380000, 0x54480000, 0x54680000, 0x54a20000,
0x5bff0000, 0x5bf30000, 0x5be70000, 0x5bd80000, 0x5bc30000, 0x5b3e0000, 0x5b3e0000, 0x5b080000, 0x54f60000, 0x55100000, 0x55530000, 0x55630000, 0x55840000, 0x55840000, 0x55990000, 0x55ab0000,
0x36fc0000, 0x36ee0000, 0x5a660000, 0x59d80000, 0x5a270000, 0x5a1b0000, 0x59ec0000, 0x59620000, 0x55b30000, 0x55c20000, 0x57160000, 0x56060000, 0x57170000, 0x56510000, 0x56740000, 0x52070000,
0x59220000, 0x591a0000, 0x59060000, 0x58f70000, 0x58f20000, 0x58ac0000, 0x58310000, 0x58320000, 0x58ee0000, 0x57ce0000, 0x57f40000, 0x580d0000, 0x578b0000, 0x58320000, 0x58310000, 0x58ac0000,
0x578b0000, 0x580d0000, 0x57f40000, 0x57ce0000, 0x58ee0000, 0x52070000, 0x56740000, 0x56510000, 0x58f20000, 0x58f70000, 0x59060000, 0x591a0000, 0x59220000, 0x59620000, 0x59ec0000, 0x5a1b0000,
0x57170000, 0x56060000, 0x57160000, 0x55c20000, 0x55b30000, 0x55ab0000, 0x55990000, 0x55840000, 0x5a270000, 0x59d80000, 0x5a660000, 0x36ee0000, 0x36fc0000, 0x5b080000, 0x5b3e0000, 0x5b3e0000,
0x55840000, 0x55630000, 0x55530000, 0x55100000, 0x54f60000, 0x54a20000, 0x54680000, 0x54480000, 0x5bc30000, 0x5bd80000, 0x5be70000, 0x5bf30000, 0x5bff0000, 0x5c060000, 0x5f530000, 0x5c220000,
0x54380000, 0x549e0000, 0x54060000, 0x53f10000, 0x53eb0000, 0x53df0000, 0x53ca0000, 0x70700000, 0x37810000, 0x5c600000, 0x5c6e0000, 0x5cc00000, 0x5c8d0000, 0x5d430000, 0x5d6e0000, 0x5d6b0000,
0x537f0000, 0x537f0000, 0x537f0000, 0x537d0000, 0x53730000, 0x535a0000, 0x53510000, 0x53490000, 0x5d7c0000, 0x5de10000, 0x5de20000, 0x382f0000, 0x5dfd0000, 0x5e280000, 0x5e3d0000, 0x5e690000,
0x53170000, 0x53060000, 0x53050000, 0x52fa0000, 0x52e40000, 0x52c90000, 0x52c70000, 0x35150000, 0x38620000, 0x387c0000, 0x5eb00000, 0x5eb30000, 0x5eb60000, 0x5eca0000, 0x5efe0000, 0x82010000,
0x52770000, 0x52720000, 0x52460000, 0x523b0000, 0x34df0000, 0x52030000, 0x51f50000, 0x51b50000, 0x5f220000, 0x5f220000, 0x38c70000, 0x5f620000, 0x5f6b0000, 0x38e30000, 0x5f9a0000, 0x5fcd0000,
0x51ac0000, 0x4ecc0000, 0x51a40000, 0x51970000, 0x518d0000, 0x51670000, 0x34b90000, 0x51770000, 0x5fd70000, 0x5ff90000, 0x60810000, 0x393a0000, 0x391c0000, 0x60940000, 0x60c70000, 0x61480000,
0x51640000, 0x51540000, 0x514d0000, 0x349e0000, 0x50cf0000, 0x50e70000, 0x50990000, 0x507a0000, 0x614c0000, 0x614e0000, 0x614c0000, 0x617a0000, 0x618e0000, 0x61b20000, 0x61a40000, 0x61af0000,
0x50020000, 0x4fbb0000, 0x4fae0000, 0x4f600000, 0x4e410000, 0x4e380000, 0x4e3d0000, 0xf900fb5, 0x61de0000, 0x61f20000, 0x61f60000, 0x62100000, 0x621b0000, 0x625d0000, 0x62b10000, 0x62d40000,
0x82790000, 0x80050000, 0x7f720000, 0x7e410000, 0xfab0fb7, 0xfa60fb7, 0xfa10fb7, 0xf9c0fb7, 0x63500000, 0x633d0000, 0x62fc0000, 0x63680000, 0x63830000, 0x63e40000, 0x64220000, 0x63c50000,
0xf920fb7, 0x559d0000, 0x52c90000, 0xf710f80, 0xfb30f80, 0xfb20f80, 0xf710f74, 0xf710f72, 0x63a90000, 0x3a2e0000, 0x64690000, 0x647e0000, 0x649d0000, 0x64770000, 0x3a6c0000, 0x654f0000,
0x9f3b0000, 0x9f160000, 0x9f0f0000, 0x9f050000, 0x9efe0000, 0x9ef90000, 0x4d560000, 0x9ebb0000, 0x656c0000, 0x65e30000, 0x66f80000, 0x66490000, 0x3b190000, 0x66910000, 0x3b080000, 0x3ae40000,
0xf400fb5, 0x4cf80000, 0x4ced0000, 0x4cce0000, 0x9cfd0000, 0x9c400000, 0x9b120000, 0x4bce0000, 0x51920000, 0x51950000, 0x67000000, 0x669c0000, 0x80ad0000, 0x43d90000, 0x67170000, 0x671b0000,
0x99fe0000, 0x99c20000, 0x99a70000, 0x99290000, 0x4b330000, 0x98e20000, 0xf560fb7, 0x98290000, 0x67210000, 0x675e0000, 0x67530000, 0x3b490000, 0x67fa0000, 0x67850000, 0x68520000, 0x68850000,
0x980b0000, 0x980b0000, 0xf510fb7, 0x97e00000, 0x4a760000, 0x4a6e0000, 0x97230000, 0x5db20000, 0x688e0000, 0x681f0000, 0x69140000, 0x3b9d0000, 0x69420000, 0x69a30000, 0x69ea0000, 0x6aa80000,
0x96c30000, 0x49e60000, 0x95b70000, 0x49950000, 0x958b0000, 0x94150000, 0x93f90000, 0x927c0000, 0x6adb0000, 0x3c180000, 0x6b210000, 0x6b540000, 0x3c4e0000, 0x6b720000, 0x6b9f0000, 0x6bba0000,
0x92d80000, 0x92d70000, 0x92380000, 0x911b0000, 0x91110000, 0x90f10000, 0x5c650000, 0x8ed40000, 0x6bbb0000, 0x6c4e0000, 0x6cbf0000, 0x6ccd0000, 0x6c670000, 0x6d160000, 0x6d3e0000, 0x6d770000,
0x52290000, 0x96860000, 0x8dbc0000, 0x8dcb0000, 0x8d1b0000, 0x8cab0000, 0x8c550000, 0x8b8a0000, 0x6d410000, 0x6d690000, 0x6d780000, 0x6d850000, 0x6d340000, 0x6e2f0000, 0x6e6e0000, 0x3d330000,
0x8aed0000, 0x8aa00000, 0x46c70000, 0x46be0000, 0x74090000, 0x6e9c0000, 0x34bb0000, 0x88fa0000, 0x6ecb0000, 0x6ec70000, 0x6df90000, 0x6f6e0000, 0x6fc60000, 0x70390000, 0x701e0000, 0x701b0000,
0x46350000, 0x88de0000, 0x88d70000, 0x88630000, 0x88600000, 0x45f90000, 0x88010000, 0x87e10000, 0x3d960000, 0x704a0000, 0x707d0000, 0x70770000, 0x70ad0000, 0x71450000, 0x719c0000, 0x72280000,
0x45d70000, 0x87860000, 0x876b0000, 0x87280000, 0x87790000, 0x86e20000, 0x870e0000, 0x86880000, 0x72350000, 0x72500000, 0x72800000, 0x72950000, 0x737a0000, 0x738b0000, 0x3eac0000, 0x73a50000,
0x86a90000, 0x86690000, 0x86670000, 0x865c0000, 0x86500000, 0x456b0000, 0x45610000, 0x455d0000, 0x3eb80000, 0x3eb80000, 0x74470000, 0x745c0000, 0x74710000, 0x74850000, 0x74ca0000, 0x3f1b0000,
0x85640000, 0x85160000, 0x84f30000, 0x84f10000, 0x452b0000, 0x83dc0000, 0x83cc0000, 0x83ca0000, 0x75240000, 0x753e0000, 0x75700000, 0x76100000, 0x3ffc0000, 0x40080000, 0x76f40000, 0x771e0000,
0x83530000, 0x84570000, 0x83e70000, 0x83bd0000, 0x83230000, 0x83ad0000, 0x83630000, 0x831d0000, 0x771f0000, 0x771f0000, 0x774a0000, 0x40390000, 0x778b0000, 0x40460000, 0x40960000, 0x784e0000,
0x82e50000, 0x82e60000, 0x82bd0000, 0x82b30000, 0x82b10000, 0x52b30000, 0x829d0000, 0x828b0000, 0x788c0000, 0x78cc0000, 0x40e30000, 0x79560000, 0x798f0000, 0x79eb0000, 0x412f0000, 0x7a400000,
0x82910000, 0x446b0000, 0x8f9e0000, 0x82040000, 0x82010000, 0x5ab50000, 0x813e0000, 0x440b0000, 0x7a4a0000, 0x7a4f0000, 0x7aee0000, 0x42020000, 0x7bc60000, 0x7bc90000, 0x42270000, 0x7cd20000,
0x81030000, 0x80b20000, 0x43d50000, 0x80700000, 0x80600000, 0x80050000, 0x7ffa0000, 0x7f950000, 0x42a00000, 0x7ce80000, 0x7ce30000, 0x7d000000, 0x7d630000, 0x43010000, 0x7dc70000, 0x7e020000,
0x4eae0000, 0x75650000, 0x43590000, 0x43340000, 0x7e450000, 0x7d000000, 0x7ce30000, 0x7ce80000, 0x7e450000, 0x43340000, 0x43590000, 0x7f7a0000, 0x7f950000, 0x7ffa0000, 0x80050000, 0x80600000,
0x42a00000, 0x7cd20000, 0x42270000, 0x7bc90000, 0x7bc60000, 0x42020000, 0x5be70000, 0x4e390000, 0x80700000, 0x43d50000, 0x80b20000, 0x81030000, 0x440b0000, 0x813e0000, 0x5ab50000, 0x82010000,
0x8afe0000, 0x6a020000, 0x62cf0000, 0x7a4a0000, 0x96750000, 0x412f0000, 0x79eb0000, 0x798f0000, 0x82040000, 0x8f9e0000, 0x446b0000, 0x82910000, 0x828b0000, 0x829d0000, 0x52b30000, 0x82b10000,
0x79560000, 0x40e30000, 0x78cc0000, 0x788c0000, 0x784e0000, 0x6a130000, 0x5c620000, 0x778b0000, 0x82b30000, 0x82bd0000, 0x82e60000, 0x82e50000, 0x831d0000, 0x83630000, 0x83ad0000, 0x83230000,
0x40390000, 0x774a0000, 0x78ca0000, 0x72620000, 0x771e0000, 0x8ad60000, 0x76f40000, 0x93040000, 0x83bd0000, 0x83e70000, 0x84570000, 0x83530000, 0x83ca0000, 0x83cc0000, 0x83dc0000, 0x452b0000,
0x3ffc0000, 0x797f0000, 0x76100000, 0x75700000, 0x753e0000, 0x80010000, 0x3f1b0000, 0x74ca0000, 0x84f10000, 0x84f30000, 0x85160000, 0x85640000, 0x455d0000, 0x45610000, 0x456b0000, 0x86500000,
0x6ad30000, 0x74710000, 0x745c0000, 0x51b70000, 0x3eb80000, 0x3eb80000, 0x73a50000, 0x6d6a0000, 0x865c0000, 0x86670000, 0x86690000, 0x86a90000, 0x86880000, 0x870e0000, 0x86e20000, 0x87790000,
0x738b0000, 0x5eca0000, 0x72950000, 0x72800000, 0x85cd0000, 0x72500000, 0x5d500000, 0x72280000, 0x87280000, 0x876b0000, 0x87860000, 0x45d70000, 0x87e10000, 0x88010000, 0x45f90000, 0x88600000,
0x719c0000, 0x71450000, 0x70ad0000, 0x70770000, 0x707d0000, 0x704a0000, 0x3d960000, 0x701b0000, 0x88630000, 0x88d70000, 0x88de0000, 0x46350000, 0x88fa0000, 0x34bb0000, 0x46be0000, 0x46c70000,
0x701e0000, 0x70390000, 0x6fc60000, 0x6f6e0000, 0x6df90000, 0x6ec70000, 0x6ecb0000, 0x3d330000, 0x8aa00000, 0x8aed0000, 0x8b8a0000, 0x8c550000, 0x8cab0000, 0x8cc10000, 0x8d1b0000, 0x8d770000,
0x6e6e0000, 0x6e2f0000, 0x6d340000, 0x6d850000, 0x6d780000, 0x6d690000, 0x6d410000, 0x6d770000, 0x8dcb0000, 0x8dbc0000, 0x8df00000, 0x8ed40000, 0x8f380000, 0x90940000, 0x90f10000, 0x91110000,
0x6d3e0000, 0x6b720000, 0x6adb0000, 0x688e0000, 0x68850000, 0x68520000, 0x67170000, 0x4ab20000, 0x911b0000, 0x92380000, 0x92d70000, 0x92d80000, 0x927c0000, 0x93f90000, 0x94150000, 0x958b0000,
0x90940000, 0x8f380000, 0x8df00000, 0xb70000, 0x3b0000, 0x2b90000, 0x3080301, 0x3130000, 0x49950000, 0x95b70000, 0x49e60000, 0x96c30000, 0x5db20000, 0x97230000, 0x4a6e0000, 0x4a760000,
0x3010000, 0x3000000, 0x30090000, 0x30080000, 0x8aaa0000, 0x7dc70000, 0x43010000, 0x7d630000, 0x97e00000, 0x4ab20000, 0x980b0000, 0x980b0000, 0x98290000, 0x98e20000, 0x4b330000, 0x99290000,
0x7aee0000, 0x7a400000, 0x40960000, 0x40460000, 0x771f0000, 0x771f0000, 0x40080000, 0x75240000, 0x99a70000, 0x99c20000, 0x99fe0000, 0x4bce0000, 0x9b120000, 0x9c400000, 0x9cfd0000, 0x4cce0000,
0x74850000, 0x3eac0000, 0x737a0000, 0x72350000, 0xc50000, 0x4b0000, 0x3a90000, 0x8d770000, 0x4ced0000, 0x9d670000, 0x4cf80000, 0x9ebb0000, 0x4d560000, 0x9ef90000, 0x9efe0000, 0x9f050000,
0x8cc10000, 0x20030000, 0x20020000 0x9f0f0000, 0x9f160000, 0x9f3b0000
}; };
READ_ONLY static unsigned int utable_compose_result[] = { READ_ONLY static unsigned int utable_compose_result[] = {
0x226e, 0x2260, 0x226f, 0xc0, 0xc1, 0xc2, 0xc3, 0x100, 0x226e, 0x2260, 0x226f, 0xc0, 0xc1, 0xc2, 0xc3, 0x100,
@ -537,41 +537,41 @@ READ_ONLY static unsigned int utable_compose_result[] = {
Negative values in utable_decomp_indices map to this table; add one to Negative values in utable_decomp_indices map to this table; add one to
the mapped index, negate, then multiply by 2 to find the pair. */ the mapped index, negate, then multiply by 2 to find the pair. */
READ_ONLY static unsigned int utable_compose_long_pairs[] = { READ_ONLY static unsigned int utable_compose_long_pairs[] = {
0x2633e, 0x0, 0x25aa7, 0x0, 0x27ed3, 0x0, 0x25cd0, 0x0, 0x242ee, 0x0, 0x2284a, 0x0, 0x22844, 0x0, 0x233d5, 0x0,
0x25249, 0x0, 0x233d5, 0x0, 0x22844, 0x0, 0x2284a, 0x0, 0x25249, 0x0, 0x25cd0, 0x0, 0x27ed3, 0x0, 0x11099, 0x110ba,
0x242ee, 0x0, 0x1d15f, 0x1d171, 0x1d15f, 0x1d170, 0x1d15f, 0x1d16e, 0x1109b, 0x110ba, 0x110a5, 0x110ba, 0x11131, 0x11127, 0x11132, 0x11127,
0x1d158, 0x1d165, 0x23cbc, 0x0, 0x23afa, 0x0, 0x21d0b, 0x0, 0x11347, 0x1133e, 0x11347, 0x11357, 0x114b9, 0x114ba, 0x114b9, 0x114b0,
0x23a8d, 0x0, 0x236a3, 0x0, 0x2346d, 0x0, 0x233c3, 0x0, 0x114b9, 0x114bd, 0x115b8, 0x115af, 0x115b9, 0x115af, 0x1d157, 0x1d165,
0x2300a, 0x0, 0x22bf1, 0x0, 0x22b0c, 0x0, 0x226d4, 0x0, 0x1d158, 0x1d165, 0x1d15f, 0x1d16e, 0x1d15f, 0x1d16f, 0x1d15f, 0x1d170,
0x261da, 0x0, 0x232b8, 0x0, 0x22331, 0x0, 0x22331, 0x0, 0x1d15f, 0x1d171, 0x1d15f, 0x1d172, 0x1d1b9, 0x1d165, 0x1d1ba, 0x1d165,
0x2a392, 0x0, 0x22183, 0x0, 0x21de6, 0x0, 0x21de4, 0x0, 0x1d1bb, 0x1d16e, 0x1d1bc, 0x1d16e, 0x1d1bb, 0x1d16f, 0x1d1bc, 0x1d16f,
0x21b18, 0x0, 0x219c8, 0x0, 0x216ea, 0x0, 0x216a8, 0x0, 0x20122, 0x0, 0x2063a, 0x0, 0x2051c, 0x0, 0x2054b, 0x0,
0x214e4, 0x0, 0x20b63, 0x0, 0x20a2c, 0x0, 0x291df, 0x0, 0x291df, 0x0, 0x20a2c, 0x0, 0x20b63, 0x0, 0x214e4, 0x0,
0x2054b, 0x0, 0x2051c, 0x0, 0x2063a, 0x0, 0x20122, 0x0, 0x216a8, 0x0, 0x216ea, 0x0, 0x219c8, 0x0, 0x21b18, 0x0,
0x2a291, 0x0, 0x2a20e, 0x0, 0x2a105, 0x0, 0x2a0ce, 0x0, 0x21de4, 0x0, 0x21de6, 0x0, 0x22183, 0x0, 0x2a392, 0x0,
0x29b30, 0x0, 0x29496, 0x0, 0x2940a, 0x0, 0x2921a, 0x0, 0x22331, 0x0, 0x22331, 0x0, 0x232b8, 0x0, 0x261da, 0x0,
0x29145, 0x0, 0x28d77, 0x0, 0x28bfa, 0x0, 0x2872e, 0x0, 0x226d4, 0x0, 0x22b0c, 0x0, 0x22bf1, 0x0, 0x2300a, 0x0,
0x285ed, 0x0, 0x285d2, 0x0, 0x20804, 0x0, 0x27f2f, 0x0, 0x233c3, 0x0, 0x2346d, 0x0, 0x236a3, 0x0, 0x238a7, 0x0,
0x27ca8, 0x0, 0x27667, 0x0, 0x270d2, 0x0, 0x26fb1, 0x0, 0x23a8d, 0x0, 0x21d0b, 0x0, 0x23afa, 0x0, 0x23cbc, 0x0,
0x26f2c, 0x0, 0x273ca, 0x0, 0x26cd5, 0x0, 0x26d6b, 0x0, 0x23d1e, 0x0, 0x23ed1, 0x0, 0x23f5e, 0x0, 0x23f8e, 0x0,
0x26c36, 0x0, 0x26b3c, 0x0, 0x2339c, 0x0, 0x23393, 0x0, 0x20525, 0x0, 0x24263, 0x0, 0x243ab, 0x0, 0x24608, 0x0,
0x267b5, 0x0, 0x267a7, 0x0, 0x2335f, 0x0, 0x265a8, 0x0, 0x24735, 0x0, 0x24814, 0x0, 0x24c36, 0x0, 0x24c92, 0x0,
0x26523, 0x0, 0x264da, 0x0, 0x262d9, 0x0, 0x26247, 0x0, 0x2219f, 0x0, 0x24fa1, 0x0, 0x24fb8, 0x0, 0x25044, 0x0,
0x26228, 0x0, 0x25f86, 0x0, 0x25c80, 0x0, 0x25bab, 0x0, 0x250f3, 0x0, 0x250f2, 0x0, 0x25119, 0x0, 0x25133, 0x0,
0x256c5, 0x0, 0x2569a, 0x0, 0x25626, 0x0, 0x2541d, 0x0, 0x2541d, 0x0, 0x25626, 0x0, 0x2569a, 0x0, 0x256c5, 0x0,
0x25133, 0x0, 0x25119, 0x0, 0x250f2, 0x0, 0x25044, 0x0, 0x2597c, 0x0, 0x25aa7, 0x0, 0x25aa7, 0x0, 0x25bab, 0x0,
0x24fa1, 0x0, 0x2219f, 0x0, 0x24c92, 0x0, 0x24c36, 0x0, 0x25c80, 0x0, 0x25f86, 0x0, 0x26228, 0x0, 0x26247, 0x0,
0x115b9, 0x115af, 0x115b8, 0x115af, 0x24735, 0x0, 0x243ab, 0x0, 0x262d9, 0x0, 0x2633e, 0x0, 0x264da, 0x0, 0x26523, 0x0,
0x24263, 0x0, 0x20525, 0x0, 0x23f8e, 0x0, 0x23f5e, 0x0, 0x265a8, 0x0, 0x2335f, 0x0, 0x267a7, 0x0, 0x267b5, 0x0,
0x23ed1, 0x0, 0x23d1e, 0x0, 0x238a7, 0x0, 0x295b6, 0x0, 0x23393, 0x0, 0x2339c, 0x0, 0x26b3c, 0x0, 0x26c36, 0x0,
0x114b9, 0x114bd, 0x114b9, 0x114b0, 0x114b9, 0x114ba, 0x2a600, 0x0, 0x26d6b, 0x0, 0x26cd5, 0x0, 0x273ca, 0x0, 0x26f2c, 0x0,
0x208de, 0x0, 0x27966, 0x0, 0x278ae, 0x0, 0x1d1bc, 0x1d16f, 0x26fb1, 0x0, 0x270d2, 0x0, 0x27667, 0x0, 0x278ae, 0x0,
0x1d1bb, 0x1d16f, 0x11347, 0x11357, 0x11347, 0x1133e, 0x1d15f, 0x1d172, 0x27966, 0x0, 0x27ca8, 0x0, 0x27f2f, 0x0, 0x20804, 0x0,
0x1d15f, 0x1d16f, 0x1d157, 0x1d165, 0x25aa7, 0x0, 0x2597c, 0x0, 0x208de, 0x0, 0x285d2, 0x0, 0x285ed, 0x0, 0x2872e, 0x0,
0x250f3, 0x0, 0x24fb8, 0x0, 0x11132, 0x11127, 0x11131, 0x11127, 0x28bfa, 0x0, 0x28d77, 0x0, 0x29145, 0x0, 0x2921a, 0x0,
0x24814, 0x0, 0x24608, 0x0, 0x1d1bc, 0x1d16e, 0x1d1bb, 0x1d16e, 0x2940a, 0x0, 0x29496, 0x0, 0x295b6, 0x0, 0x29b30, 0x0,
0x1d1ba, 0x1d165, 0x1d1b9, 0x1d165, 0x110a5, 0x110ba, 0x1109b, 0x110ba, 0x2a0ce, 0x0, 0x2a105, 0x0, 0x2a20e, 0x0, 0x2a291, 0x0,
0x11099, 0x110ba 0x2a600, 0x0
}; };
/* utable_canon_compose_long_pairs repeats information from utable_compose_long_pairs, /* utable_canon_compose_long_pairs repeats information from utable_compose_long_pairs,
@ -891,8 +891,8 @@ READ_ONLY static short utable_decomp_indices[] = {
125, 311, 126, 312, 155, 342, 156, 343, 125, 311, 126, 312, 155, 342, 156, 343,
135, 321, 140, 327, 61, 246, 9, 194, 135, 321, 140, 327, 61, 246, 9, 194,
46, 231, 401, 428, 399, 426, 110, 296, 46, 231, 401, 428, 399, 426, 110, 296,
486, 487, 177, 365, 1897, 1896, 1895, 1894, 486, 487, 177, 365, 928, 929, 930, 931,
1893, 1892, 378, 490, 1891, 497, 501, 506, 932, 933, 378, 490, 934, 497, 501, 506,
513, 518, 524, 577, 509, 521, 531, 539, 513, 518, 524, 577, 509, 521, 531, 539,
543, 549, 580, 552, 566, 557, 563, 571, 543, 549, 580, 552, 566, 557, 563, 571,
583, 584, 589, 591, 588, 585, 599, 595, 583, 584, 589, 591, 588, 585, 599, 595,
@ -903,14 +903,14 @@ READ_ONLY static short utable_decomp_indices[] = {
635, 636, 607, 629, 601, 623, 603, 625, 635, 636, 607, 629, 601, 623, 603, 625,
604, 626, 605, 627, 606, 628, 637, 638, 604, 626, 605, 627, 606, 628, 637, 638,
640, 639, 641, 644, 642, 643, 645, 646, 640, 639, 641, 644, 642, 643, 645, 646,
647, 952, 1346, 951, 1344, 1343, 1342, 1341, 647, 935, 936, 937, 938, 939, 940, 941,
1340, 648, 649, 1220, 1219, 1217, 1144, 1141, 942, 648, 649, 943, 944, 945, 946, 947,
1106, 1105, 1104, 1101, 651, 650, 652, 958, 948, 949, 950, 951, 651, 650, 652, 952,
957, 653, 654, 656, 655, 657, 658, 660, 953, 653, 654, 656, 655, 657, 658, 660,
661, 659, 662, 663, 665, 664, 666, 667, 661, 659, 662, 663, 665, 664, 666, 667,
669, 668, 950, 949, 1690, 1686, 948, 1672, 669, 668, 954, 955, 956, 957, 958, 959,
1663, 1662, 1661, 1660, 1659, 1656, 1655, 1654, 960, 961, 962, 963, 964, 965, 966, 967,
1653, 1652, 1647, 670, 671, 672, 673, 674, 968, 969, 970, 670, 671, 672, 673, 674,
675, 676, 677, 678, 679, 680, 681, 17, 675, 676, 677, 678, 679, 680, 681, 17,
202, 19, 204, 20, 205, 21, 206, 388, 202, 19, 204, 20, 205, 21, 206, 388,
415, 27, 212, 29, 214, 32, 217, 30, 415, 27, 212, 29, 214, 32, 217, 30,
@ -955,8 +955,8 @@ READ_ONLY static short utable_decomp_indices[] = {
781, 784, 782, 785, 522, 786, 787, 788, 781, 784, 782, 785, 522, 786, 787, 788,
572, 573, 789, 793, 790, 794, 791, 795, 572, 573, 789, 793, 790, 794, 791, 795,
525, 526, 803, 807, 804, 808, 805, 809, 525, 526, 803, 807, 804, 808, 805, 809,
530, 947, 538, 946, 542, 945, 548, 944, 530, 971, 538, 972, 542, 973, 548, 974,
556, 943, 562, 942, 570, 941, 699, 703, 556, 975, 562, 976, 570, 977, 699, 703,
704, 705, 706, 707, 708, 709, 713, 717, 704, 705, 706, 707, 708, 709, 713, 717,
718, 719, 720, 721, 722, 723, 735, 739, 718, 719, 720, 721, 722, 723, 735, 739,
740, 741, 742, 743, 744, 745, 749, 753, 740, 741, 742, 743, 744, 745, 749, 753,
@ -964,160 +964,160 @@ READ_ONLY static short utable_decomp_indices[] = {
797, 798, 799, 800, 801, 802, 806, 810, 797, 798, 799, 800, 801, 802, 806, 810,
811, 812, 813, 814, 815, 816, 533, 532, 811, 812, 813, 814, 815, 816, 533, 532,
817, 537, 528, 536, 820, 492, 491, 489, 817, 537, 528, 536, 820, 492, 491, 489,
940, 495, 939, 379, 818, 547, 529, 546, 978, 495, 979, 379, 818, 547, 529, 546,
824, 496, 938, 500, 937, 504, 821, 822, 824, 496, 980, 500, 981, 504, 821, 822,
823, 551, 550, 576, 936, 555, 578, 508, 823, 551, 550, 576, 982, 555, 578, 508,
507, 505, 935, 826, 827, 828, 565, 564, 507, 505, 983, 826, 827, 828, 565, 564,
579, 934, 560, 561, 569, 581, 520, 519, 579, 984, 560, 561, 569, 581, 520, 519,
517, 933, 516, 377, 932, 931, 819, 575, 517, 985, 516, 377, 986, 987, 819, 575,
582, 574, 825, 512, 930, 523, 929, 527, 582, 574, 825, 512, 988, 523, 989, 527,
928, 1922, 1921, 1918, 1917, 1916, 829, 830, 990, 991, 992, 993, 994, 995, 829, 830,
831, 832, 834, 833, 835, 836, 837, 838, 831, 832, 834, 833, 835, 836, 837, 838,
839, 840, 841, 842, 843, 1, 845, 844, 839, 840, 841, 842, 843, 1, 845, 844,
0, 2, 846, 847, 848, 849, 850, 851, 0, 2, 846, 847, 848, 849, 850, 851,
852, 853, 856, 857, 858, 859, 862, 863, 852, 853, 856, 857, 858, 859, 862, 863,
864, 865, 854, 855, 860, 861, 866, 867, 864, 865, 854, 855, 860, 861, 866, 867,
868, 869, 1899, 1898, 986, 871, 872, 873, 868, 869, 996, 997, 998, 871, 872, 873,
874, 875, 876, 877, 878, 879, 880, 881, 874, 875, 876, 877, 878, 879, 880, 881,
882, 883, 884, 885, 886, 887, 888, 889, 882, 883, 884, 885, 886, 887, 888, 889,
890, 891, 892, 893, 894, 895, 870, 896, 890, 891, 892, 893, 894, 895, 870, 896,
898, 899, 900, 901, 902, 903, 904, 905, 898, 899, 900, 901, 902, 903, 904, 905,
906, 907, 908, 909, 910, 911, 912, 913, 906, 907, 908, 909, 910, 911, 912, 913,
914, 915, 916, 917, 918, 919, 920, 921, 914, 915, 916, 917, 918, 919, 920, 921,
922, 897, 923, 924, 925, 926, 927, 1421, 922, 897, 923, 924, 925, 926, 927, 999,
1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
1854, 1388, 1852, 1387, 1386, 1385, 1384, 1849, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
1383, 1847, 1382, 1381, 1380, 1843, 1379, 1378, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
1840, 1377, 1376, 1837, 1375, 1374, 1373, 1372, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
1371, 1370, 1369, 1833, 1368, 1367, 1831, 1366, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
1829, 1365, 1364, 1363, 1362, 1827, 1826, 1361, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
1360, 1359, 1822, 1821, 1358, 1357, 1356, 1355, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079,
1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
1812, 1345, 1810, 1809, 1808, 1807, 1806, 1339, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
1330, 1329, 1328, 1327, 1326, 1325, 1900, 1324, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111,
1323, 1322, 1321, 1320, 1319, 1793, 1792, 1318, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
1237, 1236, 1725, 1724, 1235, 1234, 1233, 1232, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207,
1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
1223, 1222, 1221, 1713, 1712, 1218, 1710, 1216, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231,
1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247,
1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255,
1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263,
1175, 1174, 1173, 1172, 1171, 1169, 1168, 1167, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271,
1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1150, 1149, 1148, 1147, 1146, 1145, 1658, 1143, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
1142, 1657, 1140, 1139, 1138, 1137, 1136, 1135, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
1110, 1109, 1108, 1107, 1651, 1650, 1649, 1103, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335,
1102, 1648, 1100, 1099, 1098, 1097, 1096, 1095, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
1094, 1093, 1092, 1091, 1090, 1089, 1088, -9, 1344, 1345, 1346, 1347, 1348, 1349, 1350, -1,
1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366,
1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374,
1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382,
1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390,
1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398,
1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414,
1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422,
1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430,
1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
999, 998, 997, 996, 995, 994, 993, 992, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
-8, -7, -6, 991, 990, 989, -5, -4, -2, -3, -4, 1447, 1448, 1449, -5, -6,
-3, 988, 987, 985, 984, 983, 982, 981, -7, 1450, 1451, 1452, 1453, 1454, 1455, 1456,
980, 979, 978, 977, 976, 975, 974, 973, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
972, 971, 970, 969, 968, 1454, 967, 966, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472,
1446, 1445, 1444, 965, 964, 963, 1436, 962, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
961, 1433, 1430, 960, 959, -137, -136, -135, 1481, 1482, 1483, 1484, 1485, -8, -9, -10,
-128, -127, -119, -118, -111, -110, -109, -98, -11, -12, -13, -14, -15, -16, -17, -18,
-97, -122, -13, -12, -121, -11, -10, -120, -19, -20, -21, -22, -23, -24, -25, -26,
-134, -133, -132, -131, -117, -116, 1646, 1645, -27, -28, -29, -30, -31, -32, 1486, 1487,
1644, -44, 1643, 1642, 1641, 1640, 1639, 1638, 1488, -33, 1489, 1490, 1491, 1492, 1493, 1494,
1637, 1636, 1635, -43, 1634, 1633, 1632, 1631, 1495, 1496, 1497, -34, 1498, 1499, 1500, 1501,
-42, 1630, 1629, 1628, -41, 1627, 1626, 1625, -35, 1502, 1503, 1504, -36, 1505, 1506, 1507,
1624, 1623, -40, 1622, 1621, 1620, 1619, 1618, 1508, 1509, -37, 1510, 1511, 1512, 1513, 1514,
1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530,
1601, 1600, -39, 1599, 1598, 1597, -38, 1596, 1531, 1532, -38, 1533, 1534, 1535, -39, 1536,
1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
1571, 1570, 1569, 1568, 1567, 1566, 1565, -37, 1561, 1562, 1563, 1564, 1565, 1566, 1567, -40,
1564, 1563, 1562, 1561, 1560, 1559, -36, -35, 1568, 1569, 1570, 1571, 1572, 1573, -41, -42,
1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
1550, 1549, -34, 1548, 1547, 1546, 1545, -33, 1582, 1583, -43, 1584, 1585, 1586, 1587, -44,
1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595,
1536, -32, 1535, -31, 1534, 1533, 1532, 1531, 1596, -45, 1597, -46, 1598, 1599, 1600, 1601,
1530, 1529, 1528, 1527, 1526, 1525, 1524, -30, 1602, 1603, 1604, 1605, 1606, 1607, 1608, -47,
1523, 1522, 1521, 1520, 1519, -29, 1518, -28, 1609, 1610, 1611, 1612, 1613, -48, 1614, -49,
-27, 1517, 1516, 1515, 1514, -26, -25, 1513, -50, 1615, 1616, 1617, 1618, -51, -52, 1619,
1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
1504, 1503, -24, 1502, 1501, 1500, 1499, 1498, 1628, 1629, -53, 1630, 1631, 1632, 1633, 1634,
1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
1489, 1488, 1487, 1486, 1485, 1484, -23, 1483, 1643, 1644, 1645, 1646, 1647, 1648, -54, 1649,
1482, 1481, 1480, 1479, -22, 1478, 1477, 1476, 1650, 1651, 1652, 1653, -55, 1654, 1655, 1656,
1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664,
-21, 1467, 1466, 1465, 1464, 1463, 1462, 1461, -56, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
1460, 1459, 1458, 1457, 1456, 1455, 1886, 1453, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679,
1452, 1451, 1450, -20, 1449, 1448, 1447, 1885, 1680, 1681, 1682, -57, 1683, 1684, 1685, 1686,
1884, -19, 1883, 1443, 1442, 1441, 1440, 1439, 1687, -58, 1688, 1689, 1690, 1691, 1692, 1693,
1438, 1437, -18, 1882, 1435, 1434, -107, 1432, 1694, 1695, -59, 1696, 1697, 1698, -60, 1699,
1431, 1881, 1429, 1428, 1427, -17, -16, -15, 1700, 1701, 1702, 1703, 1704, -61, -62, -63,
1426, -14, 1425, 1424, 1423, 1422, 1880, 1879, 1705, -64, 1706, 1707, 1708, 1709, 1710, 1711,
1878, 1877, 1876, 1875, -106, 1874, 1873, 1872, 1712, 1713, 1714, 1715, -65, 1716, 1717, 1718,
1871, 1870, 1869, -105, 1868, 1867, -104, -103, 1719, 1720, 1721, -66, 1722, 1723, -67, -68,
1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
1858, -102, 1857, -101, 1856, -100, 1855, 1915, 1732, -69, 1733, -70, 1734, -71, 1735, 1736,
1853, -130, 1851, 1850, -99, -129, 1914, 1848, 1737, -72, 1738, 1739, -73, -74, 1740, 1741,
1913, 1846, 1845, 1844, 956, 1842, 1841, 1912, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
1839, 1838, 1911, -96, 1836, -95, 1835, -94, 1750, 1751, 1752, -75, 1753, -76, 1754, -77,
1834, -93, -126, -92, 1832, 1910, 1830, -125, 1755, -78, -79, -80, 1756, 1757, 1758, -81,
-91, -90, -89, 1828, 1909, 1908, 1825, 1824, -82, -83, -84, 1759, 1760, 1761, 1762, 1763,
1823, 1907, 1906, -88, 1820, 1819, 1818, 1817, 1764, 1765, 1766, -85, 1767, 1768, 1769, 1770,
-87, 1816, -86, -85, 1815, 1814, 1813, 1905, -86, 1771, -87, -88, 1772, 1773, 1774, 1775,
1811, 955, -124, -123, -2, 1904, 1805, -84, 1776, 1777, -89, -90, -91, 1778, 1779, -92,
1804, 1803, 1802, -83, 1801, 1800, 1799, 1798, 1780, 1781, 1782, -93, 1783, 1784, 1785, 1786,
1797, -82, 1903, 1902, 1901, 954, 1796, 1795, 1787, -94, 1788, 1789, 1790, 1791, 1792, 1793,
-81, -80, 1794, -79, 953, -1, 1791, 1790, -95, -96, 1794, -97, 1795, -98, 1796, 1797,
1789, -78, -77, 1788, -76, 1787, -75, 1786, 1798, -99, -100, 1799, -101, 1800, -102, 1801,
1785, 1784, 1783, 1782, 1781, -74, -73, -72, 1802, 1803, 1804, 1805, 1806, -103, -104, -105,
-71, 1780, 1779, 1778, 1777, 1776, 1775, 1774, -106, 1807, 1808, 1809, 1810, 1811, 1812, 1813,
1773, 1772, 1771, 1770, 1769, -70, 1768, 1767, 1814, 1815, 1816, 1817, 1818, -107, 1819, 1820,
1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828,
1758, 1757, -69, -68, -67, 1756, 1755, 1754, 1829, 1830, -108, -109, -110, 1831, 1832, 1833,
1753, -66, 1752, -65, 1751, 1750, -64, -63, 1834, -111, 1835, -112, 1836, 1837, -113, -114,
1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845,
1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853,
1733, 1732, 1731, -62, 1730, 1729, 1728, 1727, 1854, 1855, 1856, -115, 1857, 1858, 1859, 1860,
1726, -115, -114, 1723, 1722, 1721, 1720, 1719, 1861, -116, -117, 1862, 1863, 1864, 1865, 1866,
1718, -61, 1717, 1920, 1716, 1919, -60, -59, 1867, -118, 1868, 1869, 1870, 1871, -119, -120,
1715, 1714, 1890, -113, 1711, 1889, -58, -57, 1872, 1873, 1874, -121, 1875, 1876, -122, -123,
1888, 1709, 1708, -56, 1707, 1706, 1705, 1704, 1877, 1878, 1879, -124, 1880, 1881, 1882, 1883,
1703, 1702, 1701, -55, 1700, 1699, 1698, -54, 1884, 1885, 1886, -125, 1887, 1888, 1889, -126,
1697, 1696, 1695, 1694, -53, -52, 1693, 1692, 1890, 1891, 1892, 1893, -127, -128, 1894, 1895,
1691, -51, 1887, -50, 1689, 1688, 1687, -108, 1896, -129, 1897, -130, 1898, 1899, 1900, -131,
1685, 1684, 1683, 1682, 1681, 1680, 1679, -49, 1901, 1902, 1903, 1904, 1905, 1906, 1907, -132,
1678, 1677, 1676, 1675, 1674, 1170, -48, 1673, 1908, 1909, 1910, 1911, 1912, 1913, -133, 1914,
-47, -46, -45, 1671, 1670, 1669, 1668, 1667, -134, -135, -136, 1915, 1916, 1917, 1918, 1919,
1666, 1665, 1664, -112 1920, 1921, 1922, -137
}; };
/* utable_kompat_decomp_keys identifies characters that have a compatibility decomposition; /* utable_kompat_decomp_keys identifies characters that have a compatibility decomposition;