Changeset 5656


Ignore:
Timestamp:
Sep 30, 2017, 9:50:55 AM (22 months ago)
Author:
cameron
Message:

UCD_Config.h, add Indic and CompositionExclusion? properties

Location:
icGREP/icgrep-devel/icgrep
Files:
27 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r5159 r5656  
    22#define BLOCKS_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1717    const unsigned independent_prop_values = 274;
    1818    /** Code Point Ranges for NB
    19     [2144, 2207], [7312, 7359], [12256, 12271], [66048, 66175],
    20     [66528, 66559], [66928, 67071], [67456, 67583], [67760, 67807],
    21     [67904, 67967], [68256, 68287], [68528, 68607], [68688, 68735],
    22     [68864, 69215], [69248, 69631], [70224, 70271], [70528, 70655],
    23     [70880, 71039], [71376, 71423], [71488, 71839], [71936, 72383],
    24     [72448, 72703], [72896, 73727], [75088, 77823], [78896, 82943],
    25     [83584, 92159], [92784, 92879], [93072, 93951], [94112, 94175],
    26     [101120, 110591], [110848, 113663], [113840, 118783], [119376, 119551],
    27     [119680, 119807], [121520, 122879], [122928, 124927], [125152, 125183],
    28     [125280, 126463], [126720, 126975], [129536, 131071], [173792, 173823],
    29     [183984, 194559], [195104, 917503], [917632, 917759], [918000, 983039]**/
     19    [0860, 089f], [1c90, 1cbf], [2fe0, 2fef], [10200, 1027f],
     20    [103e0, 103ff], [10570, 105ff], [10780, 107ff], [108b0, 108df],
     21    [10940, 1097f], [10aa0, 10abf], [10bb0, 10bff], [10c50, 10c7f],
     22    [10d00, 10e5f], [10e80, 10fff], [11250, 1127f], [11380, 113ff],
     23    [114e0, 1157f], [116d0, 116ff], [11740, 1189f], [11900, 11abf],
     24    [11b00, 11bff], [11cc0, 11fff], [12550, 12fff], [13430, 143ff],
     25    [14680, 167ff], [16a70, 16acf], [16b90, 16eff], [16fa0, 16fdf],
     26    [18b00, 1afff], [1b100, 1bbff], [1bcb0, 1cfff], [1d250, 1d2ff],
     27    [1d380, 1d3ff], [1dab0, 1dfff], [1e030, 1e7ff], [1e8e0, 1e8ff],
     28    [1e960, 1edff], [1ef00, 1efff], [1fa00, 1ffff], [2a6e0, 2a6ff],
     29    [2ceb0, 2f7ff], [2fa20, dffff], [e0080, e00ff], [e01f0, effff]**/
    3030    const UnicodeSet nb_Set
    3131        {{{Empty, 67}, {Full, 2}, {Empty, 159}, {Mixed, 1}, {Full, 1},
     
    5656          0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000}};
    5757    /** Code Point Ranges for ASCII
    58     [0, 127]**/
     58    [0000, 007f]**/
    5959    const UnicodeSet ascii_Set
    6060        {{{Full, 4}, {Empty, 34812}},
    6161         {}};
    6262    /** Code Point Ranges for Latin_1_Sup
    63     [128, 255]**/
     63    [0080, 00ff]**/
    6464    const UnicodeSet latin_1_sup_Set
    6565        {{{Empty, 4}, {Full, 4}, {Empty, 34808}},
    6666         {}};
    6767    /** Code Point Ranges for Latin_Ext_A
    68     [256, 383]**/
     68    [0100, 017f]**/
    6969    const UnicodeSet latin_ext_a_Set
    7070        {{{Empty, 8}, {Full, 4}, {Empty, 34804}},
    7171         {}};
    7272    /** Code Point Ranges for Latin_Ext_B
    73     [384, 591]**/
     73    [0180, 024f]**/
    7474    const UnicodeSet latin_ext_b_Set
    7575        {{{Empty, 12}, {Full, 6}, {Mixed, 1}, {Empty, 34797}},
    7676         {0x0000ffff}};
    7777    /** Code Point Ranges for IPA_Ext
    78     [592, 687]**/
     78    [0250, 02af]**/
    7979    const UnicodeSet ipa_ext_Set
    8080        {{{Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34794}},
    8181         {0xffff0000, 0x0000ffff}};
    8282    /** Code Point Ranges for Modifier_Letters
    83     [688, 767]**/
     83    [02b0, 02ff]**/
    8484    const UnicodeSet modifier_letters_Set
    8585        {{{Empty, 21}, {Mixed, 1}, {Full, 2}, {Empty, 34792}},
    8686         {0xffff0000}};
    8787    /** Code Point Ranges for Diacriticals
    88     [768, 879]**/
     88    [0300, 036f]**/
    8989    const UnicodeSet diacriticals_Set
    9090        {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 34788}},
    9191         {0x0000ffff}};
    9292    /** Code Point Ranges for Greek
    93     [880, 1023]**/
     93    [0370, 03ff]**/
    9494    const UnicodeSet greek_Set
    9595        {{{Empty, 27}, {Mixed, 1}, {Full, 4}, {Empty, 34784}},
    9696         {0xffff0000}};
    9797    /** Code Point Ranges for Cyrillic
    98     [1024, 1279]**/
     98    [0400, 04ff]**/
    9999    const UnicodeSet cyrillic_Set
    100100        {{{Empty, 32}, {Full, 8}, {Empty, 34776}},
    101101         {}};
    102102    /** Code Point Ranges for Cyrillic_Sup
    103     [1280, 1327]**/
     103    [0500, 052f]**/
    104104    const UnicodeSet cyrillic_sup_Set
    105105        {{{Empty, 40}, {Full, 1}, {Mixed, 1}, {Empty, 34774}},
    106106         {0x0000ffff}};
    107107    /** Code Point Ranges for Armenian
    108     [1328, 1423]**/
     108    [0530, 058f]**/
    109109    const UnicodeSet armenian_Set
    110110        {{{Empty, 41}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34771}},
    111111         {0xffff0000, 0x0000ffff}};
    112112    /** Code Point Ranges for Hebrew
    113     [1424, 1535]**/
     113    [0590, 05ff]**/
    114114    const UnicodeSet hebrew_Set
    115115        {{{Empty, 44}, {Mixed, 1}, {Full, 3}, {Empty, 34768}},
    116116         {0xffff0000}};
    117117    /** Code Point Ranges for Arabic
    118     [1536, 1791]**/
     118    [0600, 06ff]**/
    119119    const UnicodeSet arabic_Set
    120120        {{{Empty, 48}, {Full, 8}, {Empty, 34760}},
    121121         {}};
    122122    /** Code Point Ranges for Syriac
    123     [1792, 1871]**/
     123    [0700, 074f]**/
    124124    const UnicodeSet syriac_Set
    125125        {{{Empty, 56}, {Full, 2}, {Mixed, 1}, {Empty, 34757}},
    126126         {0x0000ffff}};
    127127    /** Code Point Ranges for Arabic_Sup
    128     [1872, 1919]**/
     128    [0750, 077f]**/
    129129    const UnicodeSet arabic_sup_Set
    130130        {{{Empty, 58}, {Mixed, 1}, {Full, 1}, {Empty, 34756}},
    131131         {0xffff0000}};
    132132    /** Code Point Ranges for Thaana
    133     [1920, 1983]**/
     133    [0780, 07bf]**/
    134134    const UnicodeSet thaana_Set
    135135        {{{Empty, 60}, {Full, 2}, {Empty, 34754}},
    136136         {}};
    137137    /** Code Point Ranges for NKo
    138     [1984, 2047]**/
     138    [07c0, 07ff]**/
    139139    const UnicodeSet nko_Set
    140140        {{{Empty, 62}, {Full, 2}, {Empty, 34752}},
    141141         {}};
    142142    /** Code Point Ranges for Samaritan
    143     [2048, 2111]**/
     143    [0800, 083f]**/
    144144    const UnicodeSet samaritan_Set
    145145        {{{Empty, 64}, {Full, 2}, {Empty, 34750}},
    146146         {}};
    147147    /** Code Point Ranges for Mandaic
    148     [2112, 2143]**/
     148    [0840, 085f]**/
    149149    const UnicodeSet mandaic_Set
    150150        {{{Empty, 66}, {Full, 1}, {Empty, 34749}},
    151151         {}};
    152152    /** Code Point Ranges for Arabic_Ext_A
    153     [2208, 2303]**/
     153    [08a0, 08ff]**/
    154154    const UnicodeSet arabic_ext_a_Set
    155155        {{{Empty, 69}, {Full, 3}, {Empty, 34744}},
    156156         {}};
    157157    /** Code Point Ranges for Devanagari
    158     [2304, 2431]**/
     158    [0900, 097f]**/
    159159    const UnicodeSet devanagari_Set
    160160        {{{Empty, 72}, {Full, 4}, {Empty, 34740}},
    161161         {}};
    162162    /** Code Point Ranges for Bengali
    163     [2432, 2559]**/
     163    [0980, 09ff]**/
    164164    const UnicodeSet bengali_Set
    165165        {{{Empty, 76}, {Full, 4}, {Empty, 34736}},
    166166         {}};
    167167    /** Code Point Ranges for Gurmukhi
    168     [2560, 2687]**/
     168    [0a00, 0a7f]**/
    169169    const UnicodeSet gurmukhi_Set
    170170        {{{Empty, 80}, {Full, 4}, {Empty, 34732}},
    171171         {}};
    172172    /** Code Point Ranges for Gujarati
    173     [2688, 2815]**/
     173    [0a80, 0aff]**/
    174174    const UnicodeSet gujarati_Set
    175175        {{{Empty, 84}, {Full, 4}, {Empty, 34728}},
    176176         {}};
    177177    /** Code Point Ranges for Oriya
    178     [2816, 2943]**/
     178    [0b00, 0b7f]**/
    179179    const UnicodeSet oriya_Set
    180180        {{{Empty, 88}, {Full, 4}, {Empty, 34724}},
    181181         {}};
    182182    /** Code Point Ranges for Tamil
    183     [2944, 3071]**/
     183    [0b80, 0bff]**/
    184184    const UnicodeSet tamil_Set
    185185        {{{Empty, 92}, {Full, 4}, {Empty, 34720}},
    186186         {}};
    187187    /** Code Point Ranges for Telugu
    188     [3072, 3199]**/
     188    [0c00, 0c7f]**/
    189189    const UnicodeSet telugu_Set
    190190        {{{Empty, 96}, {Full, 4}, {Empty, 34716}},
    191191         {}};
    192192    /** Code Point Ranges for Kannada
    193     [3200, 3327]**/
     193    [0c80, 0cff]**/
    194194    const UnicodeSet kannada_Set
    195195        {{{Empty, 100}, {Full, 4}, {Empty, 34712}},
    196196         {}};
    197197    /** Code Point Ranges for Malayalam
    198     [3328, 3455]**/
     198    [0d00, 0d7f]**/
    199199    const UnicodeSet malayalam_Set
    200200        {{{Empty, 104}, {Full, 4}, {Empty, 34708}},
    201201         {}};
    202202    /** Code Point Ranges for Sinhala
    203     [3456, 3583]**/
     203    [0d80, 0dff]**/
    204204    const UnicodeSet sinhala_Set
    205205        {{{Empty, 108}, {Full, 4}, {Empty, 34704}},
    206206         {}};
    207207    /** Code Point Ranges for Thai
    208     [3584, 3711]**/
     208    [0e00, 0e7f]**/
    209209    const UnicodeSet thai_Set
    210210        {{{Empty, 112}, {Full, 4}, {Empty, 34700}},
    211211         {}};
    212212    /** Code Point Ranges for Lao
    213     [3712, 3839]**/
     213    [0e80, 0eff]**/
    214214    const UnicodeSet lao_Set
    215215        {{{Empty, 116}, {Full, 4}, {Empty, 34696}},
    216216         {}};
    217217    /** Code Point Ranges for Tibetan
    218     [3840, 4095]**/
     218    [0f00, 0fff]**/
    219219    const UnicodeSet tibetan_Set
    220220        {{{Empty, 120}, {Full, 8}, {Empty, 34688}},
    221221         {}};
    222222    /** Code Point Ranges for Myanmar
    223     [4096, 4255]**/
     223    [1000, 109f]**/
    224224    const UnicodeSet myanmar_Set
    225225        {{{Empty, 128}, {Full, 5}, {Empty, 34683}},
    226226         {}};
    227227    /** Code Point Ranges for Georgian
    228     [4256, 4351]**/
     228    [10a0, 10ff]**/
    229229    const UnicodeSet georgian_Set
    230230        {{{Empty, 133}, {Full, 3}, {Empty, 34680}},
    231231         {}};
    232232    /** Code Point Ranges for Jamo
    233     [4352, 4607]**/
     233    [1100, 11ff]**/
    234234    const UnicodeSet jamo_Set
    235235        {{{Empty, 136}, {Full, 8}, {Empty, 34672}},
    236236         {}};
    237237    /** Code Point Ranges for Ethiopic
    238     [4608, 4991]**/
     238    [1200, 137f]**/
    239239    const UnicodeSet ethiopic_Set
    240240        {{{Empty, 144}, {Full, 12}, {Empty, 34660}},
    241241         {}};
    242242    /** Code Point Ranges for Ethiopic_Sup
    243     [4992, 5023]**/
     243    [1380, 139f]**/
    244244    const UnicodeSet ethiopic_sup_Set
    245245        {{{Empty, 156}, {Full, 1}, {Empty, 34659}},
    246246         {}};
    247247    /** Code Point Ranges for Cherokee
    248     [5024, 5119]**/
     248    [13a0, 13ff]**/
    249249    const UnicodeSet cherokee_Set
    250250        {{{Empty, 157}, {Full, 3}, {Empty, 34656}},
    251251         {}};
    252252    /** Code Point Ranges for UCAS
    253     [5120, 5759]**/
     253    [1400, 167f]**/
    254254    const UnicodeSet ucas_Set
    255255        {{{Empty, 160}, {Full, 20}, {Empty, 34636}},
    256256         {}};
    257257    /** Code Point Ranges for Ogham
    258     [5760, 5791]**/
     258    [1680, 169f]**/
    259259    const UnicodeSet ogham_Set
    260260        {{{Empty, 180}, {Full, 1}, {Empty, 34635}},
    261261         {}};
    262262    /** Code Point Ranges for Runic
    263     [5792, 5887]**/
     263    [16a0, 16ff]**/
    264264    const UnicodeSet runic_Set
    265265        {{{Empty, 181}, {Full, 3}, {Empty, 34632}},
    266266         {}};
    267267    /** Code Point Ranges for Tagalog
    268     [5888, 5919]**/
     268    [1700, 171f]**/
    269269    const UnicodeSet tagalog_Set
    270270        {{{Empty, 184}, {Full, 1}, {Empty, 34631}},
    271271         {}};
    272272    /** Code Point Ranges for Hanunoo
    273     [5920, 5951]**/
     273    [1720, 173f]**/
    274274    const UnicodeSet hanunoo_Set
    275275        {{{Empty, 185}, {Full, 1}, {Empty, 34630}},
    276276         {}};
    277277    /** Code Point Ranges for Buhid
    278     [5952, 5983]**/
     278    [1740, 175f]**/
    279279    const UnicodeSet buhid_Set
    280280        {{{Empty, 186}, {Full, 1}, {Empty, 34629}},
    281281         {}};
    282282    /** Code Point Ranges for Tagbanwa
    283     [5984, 6015]**/
     283    [1760, 177f]**/
    284284    const UnicodeSet tagbanwa_Set
    285285        {{{Empty, 187}, {Full, 1}, {Empty, 34628}},
    286286         {}};
    287287    /** Code Point Ranges for Khmer
    288     [6016, 6143]**/
     288    [1780, 17ff]**/
    289289    const UnicodeSet khmer_Set
    290290        {{{Empty, 188}, {Full, 4}, {Empty, 34624}},
    291291         {}};
    292292    /** Code Point Ranges for Mongolian
    293     [6144, 6319]**/
     293    [1800, 18af]**/
    294294    const UnicodeSet mongolian_Set
    295295        {{{Empty, 192}, {Full, 5}, {Mixed, 1}, {Empty, 34618}},
    296296         {0x0000ffff}};
    297297    /** Code Point Ranges for UCAS_Ext
    298     [6320, 6399]**/
     298    [18b0, 18ff]**/
    299299    const UnicodeSet ucas_ext_Set
    300300        {{{Empty, 197}, {Mixed, 1}, {Full, 2}, {Empty, 34616}},
    301301         {0xffff0000}};
    302302    /** Code Point Ranges for Limbu
    303     [6400, 6479]**/
     303    [1900, 194f]**/
    304304    const UnicodeSet limbu_Set
    305305        {{{Empty, 200}, {Full, 2}, {Mixed, 1}, {Empty, 34613}},
    306306         {0x0000ffff}};
    307307    /** Code Point Ranges for Tai_Le
    308     [6480, 6527]**/
     308    [1950, 197f]**/
    309309    const UnicodeSet tai_le_Set
    310310        {{{Empty, 202}, {Mixed, 1}, {Full, 1}, {Empty, 34612}},
    311311         {0xffff0000}};
    312312    /** Code Point Ranges for New_Tai_Lue
    313     [6528, 6623]**/
     313    [1980, 19df]**/
    314314    const UnicodeSet new_tai_lue_Set
    315315        {{{Empty, 204}, {Full, 3}, {Empty, 34609}},
    316316         {}};
    317317    /** Code Point Ranges for Khmer_Symbols
    318     [6624, 6655]**/
     318    [19e0, 19ff]**/
    319319    const UnicodeSet khmer_symbols_Set
    320320        {{{Empty, 207}, {Full, 1}, {Empty, 34608}},
    321321         {}};
    322322    /** Code Point Ranges for Buginese
    323     [6656, 6687]**/
     323    [1a00, 1a1f]**/
    324324    const UnicodeSet buginese_Set
    325325        {{{Empty, 208}, {Full, 1}, {Empty, 34607}},
    326326         {}};
    327327    /** Code Point Ranges for Tai_Tham
    328     [6688, 6831]**/
     328    [1a20, 1aaf]**/
    329329    const UnicodeSet tai_tham_Set
    330330        {{{Empty, 209}, {Full, 4}, {Mixed, 1}, {Empty, 34602}},
    331331         {0x0000ffff}};
    332332    /** Code Point Ranges for Diacriticals_Ext
    333     [6832, 6911]**/
     333    [1ab0, 1aff]**/
    334334    const UnicodeSet diacriticals_ext_Set
    335335        {{{Empty, 213}, {Mixed, 1}, {Full, 2}, {Empty, 34600}},
    336336         {0xffff0000}};
    337337    /** Code Point Ranges for Balinese
    338     [6912, 7039]**/
     338    [1b00, 1b7f]**/
    339339    const UnicodeSet balinese_Set
    340340        {{{Empty, 216}, {Full, 4}, {Empty, 34596}},
    341341         {}};
    342342    /** Code Point Ranges for Sundanese
    343     [7040, 7103]**/
     343    [1b80, 1bbf]**/
    344344    const UnicodeSet sundanese_Set
    345345        {{{Empty, 220}, {Full, 2}, {Empty, 34594}},
    346346         {}};
    347347    /** Code Point Ranges for Batak
    348     [7104, 7167]**/
     348    [1bc0, 1bff]**/
    349349    const UnicodeSet batak_Set
    350350        {{{Empty, 222}, {Full, 2}, {Empty, 34592}},
    351351         {}};
    352352    /** Code Point Ranges for Lepcha
    353     [7168, 7247]**/
     353    [1c00, 1c4f]**/
    354354    const UnicodeSet lepcha_Set
    355355        {{{Empty, 224}, {Full, 2}, {Mixed, 1}, {Empty, 34589}},
    356356         {0x0000ffff}};
    357357    /** Code Point Ranges for Ol_Chiki
    358     [7248, 7295]**/
     358    [1c50, 1c7f]**/
    359359    const UnicodeSet ol_chiki_Set
    360360        {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
    361361         {0xffff0000}};
    362362    /** Code Point Ranges for Cyrillic_Ext_C
    363     [7296, 7311]**/
     363    [1c80, 1c8f]**/
    364364    const UnicodeSet cyrillic_ext_c_Set
    365365        {{{Empty, 228}, {Mixed, 1}, {Empty, 34587}},
    366366         {0x0000ffff}};
    367367    /** Code Point Ranges for Sundanese_Sup
    368     [7360, 7375]**/
     368    [1cc0, 1ccf]**/
    369369    const UnicodeSet sundanese_sup_Set
    370370        {{{Empty, 230}, {Mixed, 1}, {Empty, 34585}},
    371371         {0x0000ffff}};
    372372    /** Code Point Ranges for Vedic_Ext
    373     [7376, 7423]**/
     373    [1cd0, 1cff]**/
    374374    const UnicodeSet vedic_ext_Set
    375375        {{{Empty, 230}, {Mixed, 1}, {Full, 1}, {Empty, 34584}},
    376376         {0xffff0000}};
    377377    /** Code Point Ranges for Phonetic_Ext
    378     [7424, 7551]**/
     378    [1d00, 1d7f]**/
    379379    const UnicodeSet phonetic_ext_Set
    380380        {{{Empty, 232}, {Full, 4}, {Empty, 34580}},
    381381         {}};
    382382    /** Code Point Ranges for Phonetic_Ext_Sup
    383     [7552, 7615]**/
     383    [1d80, 1dbf]**/
    384384    const UnicodeSet phonetic_ext_sup_Set
    385385        {{{Empty, 236}, {Full, 2}, {Empty, 34578}},
    386386         {}};
    387387    /** Code Point Ranges for Diacriticals_Sup
    388     [7616, 7679]**/
     388    [1dc0, 1dff]**/
    389389    const UnicodeSet diacriticals_sup_Set
    390390        {{{Empty, 238}, {Full, 2}, {Empty, 34576}},
    391391         {}};
    392392    /** Code Point Ranges for Latin_Ext_Additional
    393     [7680, 7935]**/
     393    [1e00, 1eff]**/
    394394    const UnicodeSet latin_ext_additional_Set
    395395        {{{Empty, 240}, {Full, 8}, {Empty, 34568}},
    396396         {}};
    397397    /** Code Point Ranges for Greek_Ext
    398     [7936, 8191]**/
     398    [1f00, 1fff]**/
    399399    const UnicodeSet greek_ext_Set
    400400        {{{Empty, 248}, {Full, 8}, {Empty, 34560}},
    401401         {}};
    402402    /** Code Point Ranges for Punctuation
    403     [8192, 8303]**/
     403    [2000, 206f]**/
    404404    const UnicodeSet punctuation_Set
    405405        {{{Empty, 256}, {Full, 3}, {Mixed, 1}, {Empty, 34556}},
    406406         {0x0000ffff}};
    407407    /** Code Point Ranges for Super_And_Sub
    408     [8304, 8351]**/
     408    [2070, 209f]**/
    409409    const UnicodeSet super_and_sub_Set
    410410        {{{Empty, 259}, {Mixed, 1}, {Full, 1}, {Empty, 34555}},
    411411         {0xffff0000}};
    412412    /** Code Point Ranges for Currency_Symbols
    413     [8352, 8399]**/
     413    [20a0, 20cf]**/
    414414    const UnicodeSet currency_symbols_Set
    415415        {{{Empty, 261}, {Full, 1}, {Mixed, 1}, {Empty, 34553}},
    416416         {0x0000ffff}};
    417417    /** Code Point Ranges for Diacriticals_For_Symbols
    418     [8400, 8447]**/
     418    [20d0, 20ff]**/
    419419    const UnicodeSet diacriticals_for_symbols_Set
    420420        {{{Empty, 262}, {Mixed, 1}, {Full, 1}, {Empty, 34552}},
    421421         {0xffff0000}};
    422422    /** Code Point Ranges for Letterlike_Symbols
    423     [8448, 8527]**/
     423    [2100, 214f]**/
    424424    const UnicodeSet letterlike_symbols_Set
    425425        {{{Empty, 264}, {Full, 2}, {Mixed, 1}, {Empty, 34549}},
    426426         {0x0000ffff}};
    427427    /** Code Point Ranges for Number_Forms
    428     [8528, 8591]**/
     428    [2150, 218f]**/
    429429    const UnicodeSet number_forms_Set
    430430        {{{Empty, 266}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34547}},
    431431         {0xffff0000, 0x0000ffff}};
    432432    /** Code Point Ranges for Arrows
    433     [8592, 8703]**/
     433    [2190, 21ff]**/
    434434    const UnicodeSet arrows_Set
    435435        {{{Empty, 268}, {Mixed, 1}, {Full, 3}, {Empty, 34544}},
    436436         {0xffff0000}};
    437437    /** Code Point Ranges for Math_Operators
    438     [8704, 8959]**/
     438    [2200, 22ff]**/
    439439    const UnicodeSet math_operators_Set
    440440        {{{Empty, 272}, {Full, 8}, {Empty, 34536}},
    441441         {}};
    442442    /** Code Point Ranges for Misc_Technical
    443     [8960, 9215]**/
     443    [2300, 23ff]**/
    444444    const UnicodeSet misc_technical_Set
    445445        {{{Empty, 280}, {Full, 8}, {Empty, 34528}},
    446446         {}};
    447447    /** Code Point Ranges for Control_Pictures
    448     [9216, 9279]**/
     448    [2400, 243f]**/
    449449    const UnicodeSet control_pictures_Set
    450450        {{{Empty, 288}, {Full, 2}, {Empty, 34526}},
    451451         {}};
    452452    /** Code Point Ranges for OCR
    453     [9280, 9311]**/
     453    [2440, 245f]**/
    454454    const UnicodeSet ocr_Set
    455455        {{{Empty, 290}, {Full, 1}, {Empty, 34525}},
    456456         {}};
    457457    /** Code Point Ranges for Enclosed_Alphanum
    458     [9312, 9471]**/
     458    [2460, 24ff]**/
    459459    const UnicodeSet enclosed_alphanum_Set
    460460        {{{Empty, 291}, {Full, 5}, {Empty, 34520}},
    461461         {}};
    462462    /** Code Point Ranges for Box_Drawing
    463     [9472, 9599]**/
     463    [2500, 257f]**/
    464464    const UnicodeSet box_drawing_Set
    465465        {{{Empty, 296}, {Full, 4}, {Empty, 34516}},
    466466         {}};
    467467    /** Code Point Ranges for Block_Elements
    468     [9600, 9631]**/
     468    [2580, 259f]**/
    469469    const UnicodeSet block_elements_Set
    470470        {{{Empty, 300}, {Full, 1}, {Empty, 34515}},
    471471         {}};
    472472    /** Code Point Ranges for Geometric_Shapes
    473     [9632, 9727]**/
     473    [25a0, 25ff]**/
    474474    const UnicodeSet geometric_shapes_Set
    475475        {{{Empty, 301}, {Full, 3}, {Empty, 34512}},
    476476         {}};
    477477    /** Code Point Ranges for Misc_Symbols
    478     [9728, 9983]**/
     478    [2600, 26ff]**/
    479479    const UnicodeSet misc_symbols_Set
    480480        {{{Empty, 304}, {Full, 8}, {Empty, 34504}},
    481481         {}};
    482482    /** Code Point Ranges for Dingbats
    483     [9984, 10175]**/
     483    [2700, 27bf]**/
    484484    const UnicodeSet dingbats_Set
    485485        {{{Empty, 312}, {Full, 6}, {Empty, 34498}},
    486486         {}};
    487487    /** Code Point Ranges for Misc_Math_Symbols_A
    488     [10176, 10223]**/
     488    [27c0, 27ef]**/
    489489    const UnicodeSet misc_math_symbols_a_Set
    490490        {{{Empty, 318}, {Full, 1}, {Mixed, 1}, {Empty, 34496}},
    491491         {0x0000ffff}};
    492492    /** Code Point Ranges for Sup_Arrows_A
    493     [10224, 10239]**/
     493    [27f0, 27ff]**/
    494494    const UnicodeSet sup_arrows_a_Set
    495495        {{{Empty, 319}, {Mixed, 1}, {Empty, 34496}},
    496496         {0xffff0000}};
    497497    /** Code Point Ranges for Braille
    498     [10240, 10495]**/
     498    [2800, 28ff]**/
    499499    const UnicodeSet braille_Set
    500500        {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
    501501         {}};
    502502    /** Code Point Ranges for Sup_Arrows_B
    503     [10496, 10623]**/
     503    [2900, 297f]**/
    504504    const UnicodeSet sup_arrows_b_Set
    505505        {{{Empty, 328}, {Full, 4}, {Empty, 34484}},
    506506         {}};
    507507    /** Code Point Ranges for Misc_Math_Symbols_B
    508     [10624, 10751]**/
     508    [2980, 29ff]**/
    509509    const UnicodeSet misc_math_symbols_b_Set
    510510        {{{Empty, 332}, {Full, 4}, {Empty, 34480}},
    511511         {}};
    512512    /** Code Point Ranges for Sup_Math_Operators
    513     [10752, 11007]**/
     513    [2a00, 2aff]**/
    514514    const UnicodeSet sup_math_operators_Set
    515515        {{{Empty, 336}, {Full, 8}, {Empty, 34472}},
    516516         {}};
    517517    /** Code Point Ranges for Misc_Arrows
    518     [11008, 11263]**/
     518    [2b00, 2bff]**/
    519519    const UnicodeSet misc_arrows_Set
    520520        {{{Empty, 344}, {Full, 8}, {Empty, 34464}},
    521521         {}};
    522522    /** Code Point Ranges for Glagolitic
    523     [11264, 11359]**/
     523    [2c00, 2c5f]**/
    524524    const UnicodeSet glagolitic_Set
    525525        {{{Empty, 352}, {Full, 3}, {Empty, 34461}},
    526526         {}};
    527527    /** Code Point Ranges for Latin_Ext_C
    528     [11360, 11391]**/
     528    [2c60, 2c7f]**/
    529529    const UnicodeSet latin_ext_c_Set
    530530        {{{Empty, 355}, {Full, 1}, {Empty, 34460}},
    531531         {}};
    532532    /** Code Point Ranges for Coptic
    533     [11392, 11519]**/
     533    [2c80, 2cff]**/
    534534    const UnicodeSet coptic_Set
    535535        {{{Empty, 356}, {Full, 4}, {Empty, 34456}},
    536536         {}};
    537537    /** Code Point Ranges for Georgian_Sup
    538     [11520, 11567]**/
     538    [2d00, 2d2f]**/
    539539    const UnicodeSet georgian_sup_Set
    540540        {{{Empty, 360}, {Full, 1}, {Mixed, 1}, {Empty, 34454}},
    541541         {0x0000ffff}};
    542542    /** Code Point Ranges for Tifinagh
    543     [11568, 11647]**/
     543    [2d30, 2d7f]**/
    544544    const UnicodeSet tifinagh_Set
    545545        {{{Empty, 361}, {Mixed, 1}, {Full, 2}, {Empty, 34452}},
    546546         {0xffff0000}};
    547547    /** Code Point Ranges for Ethiopic_Ext
    548     [11648, 11743]**/
     548    [2d80, 2ddf]**/
    549549    const UnicodeSet ethiopic_ext_Set
    550550        {{{Empty, 364}, {Full, 3}, {Empty, 34449}},
    551551         {}};
    552552    /** Code Point Ranges for Cyrillic_Ext_A
    553     [11744, 11775]**/
     553    [2de0, 2dff]**/
    554554    const UnicodeSet cyrillic_ext_a_Set
    555555        {{{Empty, 367}, {Full, 1}, {Empty, 34448}},
    556556         {}};
    557557    /** Code Point Ranges for Sup_Punctuation
    558     [11776, 11903]**/
     558    [2e00, 2e7f]**/
    559559    const UnicodeSet sup_punctuation_Set
    560560        {{{Empty, 368}, {Full, 4}, {Empty, 34444}},
    561561         {}};
    562562    /** Code Point Ranges for CJK_Radicals_Sup
    563     [11904, 12031]**/
     563    [2e80, 2eff]**/
    564564    const UnicodeSet cjk_radicals_sup_Set
    565565        {{{Empty, 372}, {Full, 4}, {Empty, 34440}},
    566566         {}};
    567567    /** Code Point Ranges for Kangxi
    568     [12032, 12255]**/
     568    [2f00, 2fdf]**/
    569569    const UnicodeSet kangxi_Set
    570570        {{{Empty, 376}, {Full, 7}, {Empty, 34433}},
    571571         {}};
    572572    /** Code Point Ranges for IDC
    573     [12272, 12287]**/
     573    [2ff0, 2fff]**/
    574574    const UnicodeSet idc_Set
    575575        {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    576576         {0xffff0000}};
    577577    /** Code Point Ranges for CJK_Symbols
    578     [12288, 12351]**/
     578    [3000, 303f]**/
    579579    const UnicodeSet cjk_symbols_Set
    580580        {{{Empty, 384}, {Full, 2}, {Empty, 34430}},
    581581         {}};
    582582    /** Code Point Ranges for Hiragana
    583     [12352, 12447]**/
     583    [3040, 309f]**/
    584584    const UnicodeSet hiragana_Set
    585585        {{{Empty, 386}, {Full, 3}, {Empty, 34427}},
    586586         {}};
    587587    /** Code Point Ranges for Katakana
    588     [12448, 12543]**/
     588    [30a0, 30ff]**/
    589589    const UnicodeSet katakana_Set
    590590        {{{Empty, 389}, {Full, 3}, {Empty, 34424}},
    591591         {}};
    592592    /** Code Point Ranges for Bopomofo
    593     [12544, 12591]**/
     593    [3100, 312f]**/
    594594    const UnicodeSet bopomofo_Set
    595595        {{{Empty, 392}, {Full, 1}, {Mixed, 1}, {Empty, 34422}},
    596596         {0x0000ffff}};
    597597    /** Code Point Ranges for Compat_Jamo
    598     [12592, 12687]**/
     598    [3130, 318f]**/
    599599    const UnicodeSet compat_jamo_Set
    600600        {{{Empty, 393}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34419}},
    601601         {0xffff0000, 0x0000ffff}};
    602602    /** Code Point Ranges for Kanbun
    603     [12688, 12703]**/
     603    [3190, 319f]**/
    604604    const UnicodeSet kanbun_Set
    605605        {{{Empty, 396}, {Mixed, 1}, {Empty, 34419}},
    606606         {0xffff0000}};
    607607    /** Code Point Ranges for Bopomofo_Ext
    608     [12704, 12735]**/
     608    [31a0, 31bf]**/
    609609    const UnicodeSet bopomofo_ext_Set
    610610        {{{Empty, 397}, {Full, 1}, {Empty, 34418}},
    611611         {}};
    612612    /** Code Point Ranges for CJK_Strokes
    613     [12736, 12783]**/
     613    [31c0, 31ef]**/
    614614    const UnicodeSet cjk_strokes_Set
    615615        {{{Empty, 398}, {Full, 1}, {Mixed, 1}, {Empty, 34416}},
    616616         {0x0000ffff}};
    617617    /** Code Point Ranges for Katakana_Ext
    618     [12784, 12799]**/
     618    [31f0, 31ff]**/
    619619    const UnicodeSet katakana_ext_Set
    620620        {{{Empty, 399}, {Mixed, 1}, {Empty, 34416}},
    621621         {0xffff0000}};
    622622    /** Code Point Ranges for Enclosed_CJK
    623     [12800, 13055]**/
     623    [3200, 32ff]**/
    624624    const UnicodeSet enclosed_cjk_Set
    625625        {{{Empty, 400}, {Full, 8}, {Empty, 34408}},
    626626         {}};
    627627    /** Code Point Ranges for CJK_Compat
    628     [13056, 13311]**/
     628    [3300, 33ff]**/
    629629    const UnicodeSet cjk_compat_Set
    630630        {{{Empty, 408}, {Full, 8}, {Empty, 34400}},
    631631         {}};
    632632    /** Code Point Ranges for CJK_Ext_A
    633     [13312, 19903]**/
     633    [3400, 4dbf]**/
    634634    const UnicodeSet cjk_ext_a_Set
    635635        {{{Empty, 416}, {Full, 206}, {Empty, 34194}},
    636636         {}};
    637637    /** Code Point Ranges for Yijing
    638     [19904, 19967]**/
     638    [4dc0, 4dff]**/
    639639    const UnicodeSet yijing_Set
    640640        {{{Empty, 622}, {Full, 2}, {Empty, 34192}},
    641641         {}};
    642642    /** Code Point Ranges for CJK
    643     [19968, 40959]**/
     643    [4e00, 9fff]**/
    644644    const UnicodeSet cjk_Set
    645645        {{{Empty, 624}, {Full, 656}, {Empty, 33536}},
    646646         {}};
    647647    /** Code Point Ranges for Yi_Syllables
    648     [40960, 42127]**/
     648    [a000, a48f]**/
    649649    const UnicodeSet yi_syllables_Set
    650650        {{{Empty, 1280}, {Full, 36}, {Mixed, 1}, {Empty, 33499}},
    651651         {0x0000ffff}};
    652652    /** Code Point Ranges for Yi_Radicals
    653     [42128, 42191]**/
     653    [a490, a4cf]**/
    654654    const UnicodeSet yi_radicals_Set
    655655        {{{Empty, 1316}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33497}},
    656656         {0xffff0000, 0x0000ffff}};
    657657    /** Code Point Ranges for Lisu
    658     [42192, 42239]**/
     658    [a4d0, a4ff]**/
    659659    const UnicodeSet lisu_Set
    660660        {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
    661661         {0xffff0000}};
    662662    /** Code Point Ranges for Vai
    663     [42240, 42559]**/
     663    [a500, a63f]**/
    664664    const UnicodeSet vai_Set
    665665        {{{Empty, 1320}, {Full, 10}, {Empty, 33486}},
    666666         {}};
    667667    /** Code Point Ranges for Cyrillic_Ext_B
    668     [42560, 42655]**/
     668    [a640, a69f]**/
    669669    const UnicodeSet cyrillic_ext_b_Set
    670670        {{{Empty, 1330}, {Full, 3}, {Empty, 33483}},
    671671         {}};
    672672    /** Code Point Ranges for Bamum
    673     [42656, 42751]**/
     673    [a6a0, a6ff]**/
    674674    const UnicodeSet bamum_Set
    675675        {{{Empty, 1333}, {Full, 3}, {Empty, 33480}},
    676676         {}};
    677677    /** Code Point Ranges for Modifier_Tone_Letters
    678     [42752, 42783]**/
     678    [a700, a71f]**/
    679679    const UnicodeSet modifier_tone_letters_Set
    680680        {{{Empty, 1336}, {Full, 1}, {Empty, 33479}},
    681681         {}};
    682682    /** Code Point Ranges for Latin_Ext_D
    683     [42784, 43007]**/
     683    [a720, a7ff]**/
    684684    const UnicodeSet latin_ext_d_Set
    685685        {{{Empty, 1337}, {Full, 7}, {Empty, 33472}},
    686686         {}};
    687687    /** Code Point Ranges for Syloti_Nagri
    688     [43008, 43055]**/
     688    [a800, a82f]**/
    689689    const UnicodeSet syloti_nagri_Set
    690690        {{{Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}},
    691691         {0x0000ffff}};
    692692    /** Code Point Ranges for Indic_Number_Forms
    693     [43056, 43071]**/
     693    [a830, a83f]**/
    694694    const UnicodeSet indic_number_forms_Set
    695695        {{{Empty, 1345}, {Mixed, 1}, {Empty, 33470}},
    696696         {0xffff0000}};
    697697    /** Code Point Ranges for Phags_Pa
    698     [43072, 43135]**/
     698    [a840, a87f]**/
    699699    const UnicodeSet phags_pa_Set
    700700        {{{Empty, 1346}, {Full, 2}, {Empty, 33468}},
    701701         {}};
    702702    /** Code Point Ranges for Saurashtra
    703     [43136, 43231]**/
     703    [a880, a8df]**/
    704704    const UnicodeSet saurashtra_Set
    705705        {{{Empty, 1348}, {Full, 3}, {Empty, 33465}},
    706706         {}};
    707707    /** Code Point Ranges for Devanagari_Ext
    708     [43232, 43263]**/
     708    [a8e0, a8ff]**/
    709709    const UnicodeSet devanagari_ext_Set
    710710        {{{Empty, 1351}, {Full, 1}, {Empty, 33464}},
    711711         {}};
    712712    /** Code Point Ranges for Kayah_Li
    713     [43264, 43311]**/
     713    [a900, a92f]**/
    714714    const UnicodeSet kayah_li_Set
    715715        {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
    716716         {0x0000ffff}};
    717717    /** Code Point Ranges for Rejang
    718     [43312, 43359]**/
     718    [a930, a95f]**/
    719719    const UnicodeSet rejang_Set
    720720        {{{Empty, 1353}, {Mixed, 1}, {Full, 1}, {Empty, 33461}},
    721721         {0xffff0000}};
    722722    /** Code Point Ranges for Jamo_Ext_A
    723     [43360, 43391]**/
     723    [a960, a97f]**/
    724724    const UnicodeSet jamo_ext_a_Set
    725725        {{{Empty, 1355}, {Full, 1}, {Empty, 33460}},
    726726         {}};
    727727    /** Code Point Ranges for Javanese
    728     [43392, 43487]**/
     728    [a980, a9df]**/
    729729    const UnicodeSet javanese_Set
    730730        {{{Empty, 1356}, {Full, 3}, {Empty, 33457}},
    731731         {}};
    732732    /** Code Point Ranges for Myanmar_Ext_B
    733     [43488, 43519]**/
     733    [a9e0, a9ff]**/
    734734    const UnicodeSet myanmar_ext_b_Set
    735735        {{{Empty, 1359}, {Full, 1}, {Empty, 33456}},
    736736         {}};
    737737    /** Code Point Ranges for Cham
    738     [43520, 43615]**/
     738    [aa00, aa5f]**/
    739739    const UnicodeSet cham_Set
    740740        {{{Empty, 1360}, {Full, 3}, {Empty, 33453}},
    741741         {}};
    742742    /** Code Point Ranges for Myanmar_Ext_A
    743     [43616, 43647]**/
     743    [aa60, aa7f]**/
    744744    const UnicodeSet myanmar_ext_a_Set
    745745        {{{Empty, 1363}, {Full, 1}, {Empty, 33452}},
    746746         {}};
    747747    /** Code Point Ranges for Tai_Viet
    748     [43648, 43743]**/
     748    [aa80, aadf]**/
    749749    const UnicodeSet tai_viet_Set
    750750        {{{Empty, 1364}, {Full, 3}, {Empty, 33449}},
    751751         {}};
    752752    /** Code Point Ranges for Meetei_Mayek_Ext
    753     [43744, 43775]**/
     753    [aae0, aaff]**/
    754754    const UnicodeSet meetei_mayek_ext_Set
    755755        {{{Empty, 1367}, {Full, 1}, {Empty, 33448}},
    756756         {}};
    757757    /** Code Point Ranges for Ethiopic_Ext_A
    758     [43776, 43823]**/
     758    [ab00, ab2f]**/
    759759    const UnicodeSet ethiopic_ext_a_Set
    760760        {{{Empty, 1368}, {Full, 1}, {Mixed, 1}, {Empty, 33446}},
    761761         {0x0000ffff}};
    762762    /** Code Point Ranges for Latin_Ext_E
    763     [43824, 43887]**/
     763    [ab30, ab6f]**/
    764764    const UnicodeSet latin_ext_e_Set
    765765        {{{Empty, 1369}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33444}},
    766766         {0xffff0000, 0x0000ffff}};
    767767    /** Code Point Ranges for Cherokee_Sup
    768     [43888, 43967]**/
     768    [ab70, abbf]**/
    769769    const UnicodeSet cherokee_sup_Set
    770770        {{{Empty, 1371}, {Mixed, 1}, {Full, 2}, {Empty, 33442}},
    771771         {0xffff0000}};
    772772    /** Code Point Ranges for Meetei_Mayek
    773     [43968, 44031]**/
     773    [abc0, abff]**/
    774774    const UnicodeSet meetei_mayek_Set
    775775        {{{Empty, 1374}, {Full, 2}, {Empty, 33440}},
    776776         {}};
    777777    /** Code Point Ranges for Hangul
    778     [44032, 55215]**/
     778    [ac00, d7af]**/
    779779    const UnicodeSet hangul_Set
    780780        {{{Empty, 1376}, {Full, 349}, {Mixed, 1}, {Empty, 33090}},
    781781         {0x0000ffff}};
    782782    /** Code Point Ranges for Jamo_Ext_B
    783     [55216, 55295]**/
     783    [d7b0, d7ff]**/
    784784    const UnicodeSet jamo_ext_b_Set
    785785        {{{Empty, 1725}, {Mixed, 1}, {Full, 2}, {Empty, 33088}},
    786786         {0xffff0000}};
    787787    /** Code Point Ranges for High_Surrogates
    788     [55296, 56191]**/
     788    [d800, db7f]**/
    789789    const UnicodeSet high_surrogates_Set
    790790        {{{Empty, 1728}, {Full, 28}, {Empty, 33060}},
    791791         {}};
    792792    /** Code Point Ranges for High_PU_Surrogates
    793     [56192, 56319]**/
     793    [db80, dbff]**/
    794794    const UnicodeSet high_pu_surrogates_Set
    795795        {{{Empty, 1756}, {Full, 4}, {Empty, 33056}},
    796796         {}};
    797797    /** Code Point Ranges for Low_Surrogates
    798     [56320, 57343]**/
     798    [dc00, dfff]**/
    799799    const UnicodeSet low_surrogates_Set
    800800        {{{Empty, 1760}, {Full, 32}, {Empty, 33024}},
    801801         {}};
    802802    /** Code Point Ranges for PUA
    803     [57344, 63743]**/
     803    [e000, f8ff]**/
    804804    const UnicodeSet pua_Set
    805805        {{{Empty, 1792}, {Full, 200}, {Empty, 32824}},
    806806         {}};
    807807    /** Code Point Ranges for CJK_Compat_Ideographs
    808     [63744, 64255]**/
     808    [f900, faff]**/
    809809    const UnicodeSet cjk_compat_ideographs_Set
    810810        {{{Empty, 1992}, {Full, 16}, {Empty, 32808}},
    811811         {}};
    812812    /** Code Point Ranges for Alphabetic_PF
    813     [64256, 64335]**/
     813    [fb00, fb4f]**/
    814814    const UnicodeSet alphabetic_pf_Set
    815815        {{{Empty, 2008}, {Full, 2}, {Mixed, 1}, {Empty, 32805}},
    816816         {0x0000ffff}};
    817817    /** Code Point Ranges for Arabic_PF_A
    818     [64336, 65023]**/
     818    [fb50, fdff]**/
    819819    const UnicodeSet arabic_pf_a_Set
    820820        {{{Empty, 2010}, {Mixed, 1}, {Full, 21}, {Empty, 32784}},
    821821         {0xffff0000}};
    822822    /** Code Point Ranges for VS
    823     [65024, 65039]**/
     823    [fe00, fe0f]**/
    824824    const UnicodeSet vs_Set
    825825        {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    826826         {0x0000ffff}};
    827827    /** Code Point Ranges for Vertical_Forms
    828     [65040, 65055]**/
     828    [fe10, fe1f]**/
    829829    const UnicodeSet vertical_forms_Set
    830830        {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    831831         {0xffff0000}};
    832832    /** Code Point Ranges for Half_Marks
    833     [65056, 65071]**/
     833    [fe20, fe2f]**/
    834834    const UnicodeSet half_marks_Set
    835835        {{{Empty, 2033}, {Mixed, 1}, {Empty, 32782}},
    836836         {0x0000ffff}};
    837837    /** Code Point Ranges for CJK_Compat_Forms
    838     [65072, 65103]**/
     838    [fe30, fe4f]**/
    839839    const UnicodeSet cjk_compat_forms_Set
    840840        {{{Empty, 2033}, {Mixed, 2}, {Empty, 32781}},
    841841         {0xffff0000, 0x0000ffff}};
    842842    /** Code Point Ranges for Small_Forms
    843     [65104, 65135]**/
     843    [fe50, fe6f]**/
    844844    const UnicodeSet small_forms_Set
    845845        {{{Empty, 2034}, {Mixed, 2}, {Empty, 32780}},
    846846         {0xffff0000, 0x0000ffff}};
    847847    /** Code Point Ranges for Arabic_PF_B
    848     [65136, 65279]**/
     848    [fe70, feff]**/
    849849    const UnicodeSet arabic_pf_b_Set
    850850        {{{Empty, 2035}, {Mixed, 1}, {Full, 4}, {Empty, 32776}},
    851851         {0xffff0000}};
    852852    /** Code Point Ranges for Half_And_Full_Forms
    853     [65280, 65519]**/
     853    [ff00, ffef]**/
    854854    const UnicodeSet half_and_full_forms_Set
    855855        {{{Empty, 2040}, {Full, 7}, {Mixed, 1}, {Empty, 32768}},
    856856         {0x0000ffff}};
    857857    /** Code Point Ranges for Specials
    858     [65520, 65535]**/
     858    [fff0, ffff]**/
    859859    const UnicodeSet specials_Set
    860860        {{{Empty, 2047}, {Mixed, 1}, {Empty, 32768}},
    861861         {0xffff0000}};
    862862    /** Code Point Ranges for Linear_B_Syllabary
    863     [65536, 65663]**/
     863    [10000, 1007f]**/
    864864    const UnicodeSet linear_b_syllabary_Set
    865865        {{{Empty, 2048}, {Full, 4}, {Empty, 32764}},
    866866         {}};
    867867    /** Code Point Ranges for Linear_B_Ideograms
    868     [65664, 65791]**/
     868    [10080, 100ff]**/
    869869    const UnicodeSet linear_b_ideograms_Set
    870870        {{{Empty, 2052}, {Full, 4}, {Empty, 32760}},
    871871         {}};
    872872    /** Code Point Ranges for Aegean_Numbers
    873     [65792, 65855]**/
     873    [10100, 1013f]**/
    874874    const UnicodeSet aegean_numbers_Set
    875875        {{{Empty, 2056}, {Full, 2}, {Empty, 32758}},
    876876         {}};
    877877    /** Code Point Ranges for Ancient_Greek_Numbers
    878     [65856, 65935]**/
     878    [10140, 1018f]**/
    879879    const UnicodeSet ancient_greek_numbers_Set
    880880        {{{Empty, 2058}, {Full, 2}, {Mixed, 1}, {Empty, 32755}},
    881881         {0x0000ffff}};
    882882    /** Code Point Ranges for Ancient_Symbols
    883     [65936, 65999]**/
     883    [10190, 101cf]**/
    884884    const UnicodeSet ancient_symbols_Set
    885885        {{{Empty, 2060}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32753}},
    886886         {0xffff0000, 0x0000ffff}};
    887887    /** Code Point Ranges for Phaistos
    888     [66000, 66047]**/
     888    [101d0, 101ff]**/
    889889    const UnicodeSet phaistos_Set
    890890        {{{Empty, 2062}, {Mixed, 1}, {Full, 1}, {Empty, 32752}},
    891891         {0xffff0000}};
    892892    /** Code Point Ranges for Lycian
    893     [66176, 66207]**/
     893    [10280, 1029f]**/
    894894    const UnicodeSet lycian_Set
    895895        {{{Empty, 2068}, {Full, 1}, {Empty, 32747}},
    896896         {}};
    897897    /** Code Point Ranges for Carian
    898     [66208, 66271]**/
     898    [102a0, 102df]**/
    899899    const UnicodeSet carian_Set
    900900        {{{Empty, 2069}, {Full, 2}, {Empty, 32745}},
    901901         {}};
    902902    /** Code Point Ranges for Coptic_Epact_Numbers
    903     [66272, 66303]**/
     903    [102e0, 102ff]**/
    904904    const UnicodeSet coptic_epact_numbers_Set
    905905        {{{Empty, 2071}, {Full, 1}, {Empty, 32744}},
    906906         {}};
    907907    /** Code Point Ranges for Old_Italic
    908     [66304, 66351]**/
     908    [10300, 1032f]**/
    909909    const UnicodeSet old_italic_Set
    910910        {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
    911911         {0x0000ffff}};
    912912    /** Code Point Ranges for Gothic
    913     [66352, 66383]**/
     913    [10330, 1034f]**/
    914914    const UnicodeSet gothic_Set
    915915        {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
    916916         {0xffff0000, 0x0000ffff}};
    917917    /** Code Point Ranges for Old_Permic
    918     [66384, 66431]**/
     918    [10350, 1037f]**/
    919919    const UnicodeSet old_permic_Set
    920920        {{{Empty, 2074}, {Mixed, 1}, {Full, 1}, {Empty, 32740}},
    921921         {0xffff0000}};
    922922    /** Code Point Ranges for Ugaritic
    923     [66432, 66463]**/
     923    [10380, 1039f]**/
    924924    const UnicodeSet ugaritic_Set
    925925        {{{Empty, 2076}, {Full, 1}, {Empty, 32739}},
    926926         {}};
    927927    /** Code Point Ranges for Old_Persian
    928     [66464, 66527]**/
     928    [103a0, 103df]**/
    929929    const UnicodeSet old_persian_Set
    930930        {{{Empty, 2077}, {Full, 2}, {Empty, 32737}},
    931931         {}};
    932932    /** Code Point Ranges for Deseret
    933     [66560, 66639]**/
     933    [10400, 1044f]**/
    934934    const UnicodeSet deseret_Set
    935935        {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
    936936         {0x0000ffff}};
    937937    /** Code Point Ranges for Shavian
    938     [66640, 66687]**/
     938    [10450, 1047f]**/
    939939    const UnicodeSet shavian_Set
    940940        {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
    941941         {0xffff0000}};
    942942    /** Code Point Ranges for Osmanya
    943     [66688, 66735]**/
     943    [10480, 104af]**/
    944944    const UnicodeSet osmanya_Set
    945945        {{{Empty, 2084}, {Full, 1}, {Mixed, 1}, {Empty, 32730}},
    946946         {0x0000ffff}};
    947947    /** Code Point Ranges for Osage
    948     [66736, 66815]**/
     948    [104b0, 104ff]**/
    949949    const UnicodeSet osage_Set
    950950        {{{Empty, 2085}, {Mixed, 1}, {Full, 2}, {Empty, 32728}},
    951951         {0xffff0000}};
    952952    /** Code Point Ranges for Elbasan
    953     [66816, 66863]**/
     953    [10500, 1052f]**/
    954954    const UnicodeSet elbasan_Set
    955955        {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
    956956         {0x0000ffff}};
    957957    /** Code Point Ranges for Caucasian_Albanian
    958     [66864, 66927]**/
     958    [10530, 1056f]**/
    959959    const UnicodeSet caucasian_albanian_Set
    960960        {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
    961961         {0xffff0000, 0x0000ffff}};
    962962    /** Code Point Ranges for Linear_A
    963     [67072, 67455]**/
     963    [10600, 1077f]**/
    964964    const UnicodeSet linear_a_Set
    965965        {{{Empty, 2096}, {Full, 12}, {Empty, 32708}},
    966966         {}};
    967967    /** Code Point Ranges for Cypriot_Syllabary
    968     [67584, 67647]**/
     968    [10800, 1083f]**/
    969969    const UnicodeSet cypriot_syllabary_Set
    970970        {{{Empty, 2112}, {Full, 2}, {Empty, 32702}},
    971971         {}};
    972972    /** Code Point Ranges for Imperial_Aramaic
    973     [67648, 67679]**/
     973    [10840, 1085f]**/
    974974    const UnicodeSet imperial_aramaic_Set
    975975        {{{Empty, 2114}, {Full, 1}, {Empty, 32701}},
    976976         {}};
    977977    /** Code Point Ranges for Palmyrene
    978     [67680, 67711]**/
     978    [10860, 1087f]**/
    979979    const UnicodeSet palmyrene_Set
    980980        {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
    981981         {}};
    982982    /** Code Point Ranges for Nabataean
    983     [67712, 67759]**/
     983    [10880, 108af]**/
    984984    const UnicodeSet nabataean_Set
    985985        {{{Empty, 2116}, {Full, 1}, {Mixed, 1}, {Empty, 32698}},
    986986         {0x0000ffff}};
    987987    /** Code Point Ranges for Hatran
    988     [67808, 67839]**/
     988    [108e0, 108ff]**/
    989989    const UnicodeSet hatran_Set
    990990        {{{Empty, 2119}, {Full, 1}, {Empty, 32696}},
    991991         {}};
    992992    /** Code Point Ranges for Phoenician
    993     [67840, 67871]**/
     993    [10900, 1091f]**/
    994994    const UnicodeSet phoenician_Set
    995995        {{{Empty, 2120}, {Full, 1}, {Empty, 32695}},
    996996         {}};
    997997    /** Code Point Ranges for Lydian
    998     [67872, 67903]**/
     998    [10920, 1093f]**/
    999999    const UnicodeSet lydian_Set
    10001000        {{{Empty, 2121}, {Full, 1}, {Empty, 32694}},
    10011001         {}};
    10021002    /** Code Point Ranges for Meroitic_Hieroglyphs
    1003     [67968, 67999]**/
     1003    [10980, 1099f]**/
    10041004    const UnicodeSet meroitic_hieroglyphs_Set
    10051005        {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
    10061006         {}};
    10071007    /** Code Point Ranges for Meroitic_Cursive
    1008     [68000, 68095]**/
     1008    [109a0, 109ff]**/
    10091009    const UnicodeSet meroitic_cursive_Set
    10101010        {{{Empty, 2125}, {Full, 3}, {Empty, 32688}},
    10111011         {}};
    10121012    /** Code Point Ranges for Kharoshthi
    1013     [68096, 68191]**/
     1013    [10a00, 10a5f]**/
    10141014    const UnicodeSet kharoshthi_Set
    10151015        {{{Empty, 2128}, {Full, 3}, {Empty, 32685}},
    10161016         {}};
    10171017    /** Code Point Ranges for Old_South_Arabian
    1018     [68192, 68223]**/
     1018    [10a60, 10a7f]**/
    10191019    const UnicodeSet old_south_arabian_Set
    10201020        {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
    10211021         {}};
    10221022    /** Code Point Ranges for Old_North_Arabian
    1023     [68224, 68255]**/
     1023    [10a80, 10a9f]**/
    10241024    const UnicodeSet old_north_arabian_Set
    10251025        {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
    10261026         {}};
    10271027    /** Code Point Ranges for Manichaean
    1028     [68288, 68351]**/
     1028    [10ac0, 10aff]**/
    10291029    const UnicodeSet manichaean_Set
    10301030        {{{Empty, 2134}, {Full, 2}, {Empty, 32680}},
    10311031         {}};
    10321032    /** Code Point Ranges for Avestan
    1033     [68352, 68415]**/
     1033    [10b00, 10b3f]**/
    10341034    const UnicodeSet avestan_Set
    10351035        {{{Empty, 2136}, {Full, 2}, {Empty, 32678}},
    10361036         {}};
    10371037    /** Code Point Ranges for Inscriptional_Parthian
    1038     [68416, 68447]**/
     1038    [10b40, 10b5f]**/
    10391039    const UnicodeSet inscriptional_parthian_Set
    10401040        {{{Empty, 2138}, {Full, 1}, {Empty, 32677}},
    10411041         {}};
    10421042    /** Code Point Ranges for Inscriptional_Pahlavi
    1043     [68448, 68479]**/
     1043    [10b60, 10b7f]**/
    10441044    const UnicodeSet inscriptional_pahlavi_Set
    10451045        {{{Empty, 2139}, {Full, 1}, {Empty, 32676}},
    10461046         {}};
    10471047    /** Code Point Ranges for Psalter_Pahlavi
    1048     [68480, 68527]**/
     1048    [10b80, 10baf]**/
    10491049    const UnicodeSet psalter_pahlavi_Set
    10501050        {{{Empty, 2140}, {Full, 1}, {Mixed, 1}, {Empty, 32674}},
    10511051         {0x0000ffff}};
    10521052    /** Code Point Ranges for Old_Turkic
    1053     [68608, 68687]**/
     1053    [10c00, 10c4f]**/
    10541054    const UnicodeSet old_turkic_Set
    10551055        {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
    10561056         {0x0000ffff}};
    10571057    /** Code Point Ranges for Old_Hungarian
    1058     [68736, 68863]**/
     1058    [10c80, 10cff]**/
    10591059    const UnicodeSet old_hungarian_Set
    10601060        {{{Empty, 2148}, {Full, 4}, {Empty, 32664}},
    10611061         {}};
    10621062    /** Code Point Ranges for Rumi
    1063     [69216, 69247]**/
     1063    [10e60, 10e7f]**/
    10641064    const UnicodeSet rumi_Set
    10651065        {{{Empty, 2163}, {Full, 1}, {Empty, 32652}},
    10661066         {}};
    10671067    /** Code Point Ranges for Brahmi
    1068     [69632, 69759]**/
     1068    [11000, 1107f]**/
    10691069    const UnicodeSet brahmi_Set
    10701070        {{{Empty, 2176}, {Full, 4}, {Empty, 32636}},
    10711071         {}};
    10721072    /** Code Point Ranges for Kaithi
    1073     [69760, 69839]**/
     1073    [11080, 110cf]**/
    10741074    const UnicodeSet kaithi_Set
    10751075        {{{Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}},
    10761076         {0x0000ffff}};
    10771077    /** Code Point Ranges for Sora_Sompeng
    1078     [69840, 69887]**/
     1078    [110d0, 110ff]**/
    10791079    const UnicodeSet sora_sompeng_Set
    10801080        {{{Empty, 2182}, {Mixed, 1}, {Full, 1}, {Empty, 32632}},
    10811081         {0xffff0000}};
    10821082    /** Code Point Ranges for Chakma
    1083     [69888, 69967]**/
     1083    [11100, 1114f]**/
    10841084    const UnicodeSet chakma_Set
    10851085        {{{Empty, 2184}, {Full, 2}, {Mixed, 1}, {Empty, 32629}},
    10861086         {0x0000ffff}};
    10871087    /** Code Point Ranges for Mahajani
    1088     [69968, 70015]**/
     1088    [11150, 1117f]**/
    10891089    const UnicodeSet mahajani_Set
    10901090        {{{Empty, 2186}, {Mixed, 1}, {Full, 1}, {Empty, 32628}},
    10911091         {0xffff0000}};
    10921092    /** Code Point Ranges for Sharada
    1093     [70016, 70111]**/
     1093    [11180, 111df]**/
    10941094    const UnicodeSet sharada_Set
    10951095        {{{Empty, 2188}, {Full, 3}, {Empty, 32625}},
    10961096         {}};
    10971097    /** Code Point Ranges for Sinhala_Archaic_Numbers
    1098     [70112, 70143]**/
     1098    [111e0, 111ff]**/
    10991099    const UnicodeSet sinhala_archaic_numbers_Set
    11001100        {{{Empty, 2191}, {Full, 1}, {Empty, 32624}},
    11011101         {}};
    11021102    /** Code Point Ranges for Khojki
    1103     [70144, 70223]**/
     1103    [11200, 1124f]**/
    11041104    const UnicodeSet khojki_Set
    11051105        {{{Empty, 2192}, {Full, 2}, {Mixed, 1}, {Empty, 32621}},
    11061106         {0x0000ffff}};
    11071107    /** Code Point Ranges for Multani
    1108     [70272, 70319]**/
     1108    [11280, 112af]**/
    11091109    const UnicodeSet multani_Set
    11101110        {{{Empty, 2196}, {Full, 1}, {Mixed, 1}, {Empty, 32618}},
    11111111         {0x0000ffff}};
    11121112    /** Code Point Ranges for Khudawadi
    1113     [70320, 70399]**/
     1113    [112b0, 112ff]**/
    11141114    const UnicodeSet khudawadi_Set
    11151115        {{{Empty, 2197}, {Mixed, 1}, {Full, 2}, {Empty, 32616}},
    11161116         {0xffff0000}};
    11171117    /** Code Point Ranges for Grantha
    1118     [70400, 70527]**/
     1118    [11300, 1137f]**/
    11191119    const UnicodeSet grantha_Set
    11201120        {{{Empty, 2200}, {Full, 4}, {Empty, 32612}},
    11211121         {}};
    11221122    /** Code Point Ranges for Newa
    1123     [70656, 70783]**/
     1123    [11400, 1147f]**/
    11241124    const UnicodeSet newa_Set
    11251125        {{{Empty, 2208}, {Full, 4}, {Empty, 32604}},
    11261126         {}};
    11271127    /** Code Point Ranges for Tirhuta
    1128     [70784, 70879]**/
     1128    [11480, 114df]**/
    11291129    const UnicodeSet tirhuta_Set
    11301130        {{{Empty, 2212}, {Full, 3}, {Empty, 32601}},
    11311131         {}};
    11321132    /** Code Point Ranges for Siddham
    1133     [71040, 71167]**/
     1133    [11580, 115ff]**/
    11341134    const UnicodeSet siddham_Set
    11351135        {{{Empty, 2220}, {Full, 4}, {Empty, 32592}},
    11361136         {}};
    11371137    /** Code Point Ranges for Modi
    1138     [71168, 71263]**/
     1138    [11600, 1165f]**/
    11391139    const UnicodeSet modi_Set
    11401140        {{{Empty, 2224}, {Full, 3}, {Empty, 32589}},
    11411141         {}};
    11421142    /** Code Point Ranges for Mongolian_Sup
    1143     [71264, 71295]**/
     1143    [11660, 1167f]**/
    11441144    const UnicodeSet mongolian_sup_Set
    11451145        {{{Empty, 2227}, {Full, 1}, {Empty, 32588}},
    11461146         {}};
    11471147    /** Code Point Ranges for Takri
    1148     [71296, 71375]**/
     1148    [11680, 116cf]**/
    11491149    const UnicodeSet takri_Set
    11501150        {{{Empty, 2228}, {Full, 2}, {Mixed, 1}, {Empty, 32585}},
    11511151         {0x0000ffff}};
    11521152    /** Code Point Ranges for Ahom
    1153     [71424, 71487]**/
     1153    [11700, 1173f]**/
    11541154    const UnicodeSet ahom_Set
    11551155        {{{Empty, 2232}, {Full, 2}, {Empty, 32582}},
    11561156         {}};
    11571157    /** Code Point Ranges for Warang_Citi
    1158     [71840, 71935]**/
     1158    [118a0, 118ff]**/
    11591159    const UnicodeSet warang_citi_Set
    11601160        {{{Empty, 2245}, {Full, 3}, {Empty, 32568}},
    11611161         {}};
    11621162    /** Code Point Ranges for Pau_Cin_Hau
    1163     [72384, 72447]**/
     1163    [11ac0, 11aff]**/
    11641164    const UnicodeSet pau_cin_hau_Set
    11651165        {{{Empty, 2262}, {Full, 2}, {Empty, 32552}},
    11661166         {}};
    11671167    /** Code Point Ranges for Bhaiksuki
    1168     [72704, 72815]**/
     1168    [11c00, 11c6f]**/
    11691169    const UnicodeSet bhaiksuki_Set
    11701170        {{{Empty, 2272}, {Full, 3}, {Mixed, 1}, {Empty, 32540}},
    11711171         {0x0000ffff}};
    11721172    /** Code Point Ranges for Marchen
    1173     [72816, 72895]**/
     1173    [11c70, 11cbf]**/
    11741174    const UnicodeSet marchen_Set
    11751175        {{{Empty, 2275}, {Mixed, 1}, {Full, 2}, {Empty, 32538}},
    11761176         {0xffff0000}};
    11771177    /** Code Point Ranges for Cuneiform
    1178     [73728, 74751]**/
     1178    [12000, 123ff]**/
    11791179    const UnicodeSet cuneiform_Set
    11801180        {{{Empty, 2304}, {Full, 32}, {Empty, 32480}},
    11811181         {}};
    11821182    /** Code Point Ranges for Cuneiform_Numbers
    1183     [74752, 74879]**/
     1183    [12400, 1247f]**/
    11841184    const UnicodeSet cuneiform_numbers_Set
    11851185        {{{Empty, 2336}, {Full, 4}, {Empty, 32476}},
    11861186         {}};
    11871187    /** Code Point Ranges for Early_Dynastic_Cuneiform
    1188     [74880, 75087]**/
     1188    [12480, 1254f]**/
    11891189    const UnicodeSet early_dynastic_cuneiform_Set
    11901190        {{{Empty, 2340}, {Full, 6}, {Mixed, 1}, {Empty, 32469}},
    11911191         {0x0000ffff}};
    11921192    /** Code Point Ranges for Egyptian_Hieroglyphs
    1193     [77824, 78895]**/
     1193    [13000, 1342f]**/
    11941194    const UnicodeSet egyptian_hieroglyphs_Set
    11951195        {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
    11961196         {0x0000ffff}};
    11971197    /** Code Point Ranges for Anatolian_Hieroglyphs
    1198     [82944, 83583]**/
     1198    [14400, 1467f]**/
    11991199    const UnicodeSet anatolian_hieroglyphs_Set
    12001200        {{{Empty, 2592}, {Full, 20}, {Empty, 32204}},
    12011201         {}};
    12021202    /** Code Point Ranges for Bamum_Sup
    1203     [92160, 92735]**/
     1203    [16800, 16a3f]**/
    12041204    const UnicodeSet bamum_sup_Set
    12051205        {{{Empty, 2880}, {Full, 18}, {Empty, 31918}},
    12061206         {}};
    12071207    /** Code Point Ranges for Mro
    1208     [92736, 92783]**/
     1208    [16a40, 16a6f]**/
    12091209    const UnicodeSet mro_Set
    12101210        {{{Empty, 2898}, {Full, 1}, {Mixed, 1}, {Empty, 31916}},
    12111211         {0x0000ffff}};
    12121212    /** Code Point Ranges for Bassa_Vah
    1213     [92880, 92927]**/
     1213    [16ad0, 16aff]**/
    12141214    const UnicodeSet bassa_vah_Set
    12151215        {{{Empty, 2902}, {Mixed, 1}, {Full, 1}, {Empty, 31912}},
    12161216         {0xffff0000}};
    12171217    /** Code Point Ranges for Pahawh_Hmong
    1218     [92928, 93071]**/
     1218    [16b00, 16b8f]**/
    12191219    const UnicodeSet pahawh_hmong_Set
    12201220        {{{Empty, 2904}, {Full, 4}, {Mixed, 1}, {Empty, 31907}},
    12211221         {0x0000ffff}};
    12221222    /** Code Point Ranges for Miao
    1223     [93952, 94111]**/
     1223    [16f00, 16f9f]**/
    12241224    const UnicodeSet miao_Set
    12251225        {{{Empty, 2936}, {Full, 5}, {Empty, 31875}},
    12261226         {}};
    12271227    /** Code Point Ranges for Ideographic_Symbols
    1228     [94176, 94207]**/
     1228    [16fe0, 16fff]**/
    12291229    const UnicodeSet ideographic_symbols_Set
    12301230        {{{Empty, 2943}, {Full, 1}, {Empty, 31872}},
    12311231         {}};
    12321232    /** Code Point Ranges for Tangut
    1233     [94208, 100351]**/
     1233    [17000, 187ff]**/
    12341234    const UnicodeSet tangut_Set
    12351235        {{{Empty, 2944}, {Full, 192}, {Empty, 31680}},
    12361236         {}};
    12371237    /** Code Point Ranges for Tangut_Components
    1238     [100352, 101119]**/
     1238    [18800, 18aff]**/
    12391239    const UnicodeSet tangut_components_Set
    12401240        {{{Empty, 3136}, {Full, 24}, {Empty, 31656}},
    12411241         {}};
    12421242    /** Code Point Ranges for Kana_Sup
    1243     [110592, 110847]**/
     1243    [1b000, 1b0ff]**/
    12441244    const UnicodeSet kana_sup_Set
    12451245        {{{Empty, 3456}, {Full, 8}, {Empty, 31352}},
    12461246         {}};
    12471247    /** Code Point Ranges for Duployan
    1248     [113664, 113823]**/
     1248    [1bc00, 1bc9f]**/
    12491249    const UnicodeSet duployan_Set
    12501250        {{{Empty, 3552}, {Full, 5}, {Empty, 31259}},
    12511251         {}};
    12521252    /** Code Point Ranges for Shorthand_Format_Controls
    1253     [113824, 113839]**/
     1253    [1bca0, 1bcaf]**/
    12541254    const UnicodeSet shorthand_format_controls_Set
    12551255        {{{Empty, 3557}, {Mixed, 1}, {Empty, 31258}},
    12561256         {0x0000ffff}};
    12571257    /** Code Point Ranges for Byzantine_Music
    1258     [118784, 119039]**/
     1258    [1d000, 1d0ff]**/
    12591259    const UnicodeSet byzantine_music_Set
    12601260        {{{Empty, 3712}, {Full, 8}, {Empty, 31096}},
    12611261         {}};
    12621262    /** Code Point Ranges for Music
    1263     [119040, 119295]**/
     1263    [1d100, 1d1ff]**/
    12641264    const UnicodeSet music_Set
    12651265        {{{Empty, 3720}, {Full, 8}, {Empty, 31088}},
    12661266         {}};
    12671267    /** Code Point Ranges for Ancient_Greek_Music
    1268     [119296, 119375]**/
     1268    [1d200, 1d24f]**/
    12691269    const UnicodeSet ancient_greek_music_Set
    12701270        {{{Empty, 3728}, {Full, 2}, {Mixed, 1}, {Empty, 31085}},
    12711271         {0x0000ffff}};
    12721272    /** Code Point Ranges for Tai_Xuan_Jing
    1273     [119552, 119647]**/
     1273    [1d300, 1d35f]**/
    12741274    const UnicodeSet tai_xuan_jing_Set
    12751275        {{{Empty, 3736}, {Full, 3}, {Empty, 31077}},
    12761276         {}};
    12771277    /** Code Point Ranges for Counting_Rod
    1278     [119648, 119679]**/
     1278    [1d360, 1d37f]**/
    12791279    const UnicodeSet counting_rod_Set
    12801280        {{{Empty, 3739}, {Full, 1}, {Empty, 31076}},
    12811281         {}};
    12821282    /** Code Point Ranges for Math_Alphanum
    1283     [119808, 120831]**/
     1283    [1d400, 1d7ff]**/
    12841284    const UnicodeSet math_alphanum_Set
    12851285        {{{Empty, 3744}, {Full, 32}, {Empty, 31040}},
    12861286         {}};
    12871287    /** Code Point Ranges for Sutton_SignWriting
    1288     [120832, 121519]**/
     1288    [1d800, 1daaf]**/
    12891289    const UnicodeSet sutton_signwriting_Set
    12901290        {{{Empty, 3776}, {Full, 21}, {Mixed, 1}, {Empty, 31018}},
    12911291         {0x0000ffff}};
    12921292    /** Code Point Ranges for Glagolitic_Sup
    1293     [122880, 122927]**/
     1293    [1e000, 1e02f]**/
    12941294    const UnicodeSet glagolitic_sup_Set
    12951295        {{{Empty, 3840}, {Full, 1}, {Mixed, 1}, {Empty, 30974}},
    12961296         {0x0000ffff}};
    12971297    /** Code Point Ranges for Mende_Kikakui
    1298     [124928, 125151]**/
     1298    [1e800, 1e8df]**/
    12991299    const UnicodeSet mende_kikakui_Set
    13001300        {{{Empty, 3904}, {Full, 7}, {Empty, 30905}},
    13011301         {}};
    13021302    /** Code Point Ranges for Adlam
    1303     [125184, 125279]**/
     1303    [1e900, 1e95f]**/
    13041304    const UnicodeSet adlam_Set
    13051305        {{{Empty, 3912}, {Full, 3}, {Empty, 30901}},
    13061306         {}};
    13071307    /** Code Point Ranges for Arabic_Math
    1308     [126464, 126719]**/
     1308    [1ee00, 1eeff]**/
    13091309    const UnicodeSet arabic_math_Set
    13101310        {{{Empty, 3952}, {Full, 8}, {Empty, 30856}},
    13111311         {}};
    13121312    /** Code Point Ranges for Mahjong
    1313     [126976, 127023]**/
     1313    [1f000, 1f02f]**/
    13141314    const UnicodeSet mahjong_Set
    13151315        {{{Empty, 3968}, {Full, 1}, {Mixed, 1}, {Empty, 30846}},
    13161316         {0x0000ffff}};
    13171317    /** Code Point Ranges for Domino
    1318     [127024, 127135]**/
     1318    [1f030, 1f09f]**/
    13191319    const UnicodeSet domino_Set
    13201320        {{{Empty, 3969}, {Mixed, 1}, {Full, 3}, {Empty, 30843}},
    13211321         {0xffff0000}};
    13221322    /** Code Point Ranges for Playing_Cards
    1323     [127136, 127231]**/
     1323    [1f0a0, 1f0ff]**/
    13241324    const UnicodeSet playing_cards_Set
    13251325        {{{Empty, 3973}, {Full, 3}, {Empty, 30840}},
    13261326         {}};
    13271327    /** Code Point Ranges for Enclosed_Alphanum_Sup
    1328     [127232, 127487]**/
     1328    [1f100, 1f1ff]**/
    13291329    const UnicodeSet enclosed_alphanum_sup_Set
    13301330        {{{Empty, 3976}, {Full, 8}, {Empty, 30832}},
    13311331         {}};
    13321332    /** Code Point Ranges for Enclosed_Ideographic_Sup
    1333     [127488, 127743]**/
     1333    [1f200, 1f2ff]**/
    13341334    const UnicodeSet enclosed_ideographic_sup_Set
    13351335        {{{Empty, 3984}, {Full, 8}, {Empty, 30824}},
    13361336         {}};
    13371337    /** Code Point Ranges for Misc_Pictographs
    1338     [127744, 128511]**/
     1338    [1f300, 1f5ff]**/
    13391339    const UnicodeSet misc_pictographs_Set
    13401340        {{{Empty, 3992}, {Full, 24}, {Empty, 30800}},
    13411341         {}};
    13421342    /** Code Point Ranges for Emoticons
    1343     [128512, 128591]**/
     1343    [1f600, 1f64f]**/
    13441344    const UnicodeSet emoticons_Set
    13451345        {{{Empty, 4016}, {Full, 2}, {Mixed, 1}, {Empty, 30797}},
    13461346         {0x0000ffff}};
    13471347    /** Code Point Ranges for Ornamental_Dingbats
    1348     [128592, 128639]**/
     1348    [1f650, 1f67f]**/
    13491349    const UnicodeSet ornamental_dingbats_Set
    13501350        {{{Empty, 4018}, {Mixed, 1}, {Full, 1}, {Empty, 30796}},
    13511351         {0xffff0000}};
    13521352    /** Code Point Ranges for Transport_And_Map
    1353     [128640, 128767]**/
     1353    [1f680, 1f6ff]**/
    13541354    const UnicodeSet transport_and_map_Set
    13551355        {{{Empty, 4020}, {Full, 4}, {Empty, 30792}},
    13561356         {}};
    13571357    /** Code Point Ranges for Alchemical
    1358     [128768, 128895]**/
     1358    [1f700, 1f77f]**/
    13591359    const UnicodeSet alchemical_Set
    13601360        {{{Empty, 4024}, {Full, 4}, {Empty, 30788}},
    13611361         {}};
    13621362    /** Code Point Ranges for Geometric_Shapes_Ext
    1363     [128896, 129023]**/
     1363    [1f780, 1f7ff]**/
    13641364    const UnicodeSet geometric_shapes_ext_Set
    13651365        {{{Empty, 4028}, {Full, 4}, {Empty, 30784}},
    13661366         {}};
    13671367    /** Code Point Ranges for Sup_Arrows_C
    1368     [129024, 129279]**/
     1368    [1f800, 1f8ff]**/
    13691369    const UnicodeSet sup_arrows_c_Set
    13701370        {{{Empty, 4032}, {Full, 8}, {Empty, 30776}},
    13711371         {}};
    13721372    /** Code Point Ranges for Sup_Symbols_And_Pictographs
    1373     [129280, 129535]**/
     1373    [1f900, 1f9ff]**/
    13741374    const UnicodeSet sup_symbols_and_pictographs_Set
    13751375        {{{Empty, 4040}, {Full, 8}, {Empty, 30768}},
    13761376         {}};
    13771377    /** Code Point Ranges for CJK_Ext_B
    1378     [131072, 173791]**/
     1378    [20000, 2a6df]**/
    13791379    const UnicodeSet cjk_ext_b_Set
    13801380        {{{Empty, 4096}, {Full, 1335}, {Empty, 29385}},
    13811381         {}};
    13821382    /** Code Point Ranges for CJK_Ext_C
    1383     [173824, 177983]**/
     1383    [2a700, 2b73f]**/
    13841384    const UnicodeSet cjk_ext_c_Set
    13851385        {{{Empty, 5432}, {Full, 130}, {Empty, 29254}},
    13861386         {}};
    13871387    /** Code Point Ranges for CJK_Ext_D
    1388     [177984, 178207]**/
     1388    [2b740, 2b81f]**/
    13891389    const UnicodeSet cjk_ext_d_Set
    13901390        {{{Empty, 5562}, {Full, 7}, {Empty, 29247}},
    13911391         {}};
    13921392    /** Code Point Ranges for CJK_Ext_E
    1393     [178208, 183983]**/
     1393    [2b820, 2ceaf]**/
    13941394    const UnicodeSet cjk_ext_e_Set
    13951395        {{{Empty, 5569}, {Full, 180}, {Mixed, 1}, {Empty, 29066}},
    13961396         {0x0000ffff}};
    13971397    /** Code Point Ranges for CJK_Compat_Ideographs_Sup
    1398     [194560, 195103]**/
     1398    [2f800, 2fa1f]**/
    13991399    const UnicodeSet cjk_compat_ideographs_sup_Set
    14001400        {{{Empty, 6080}, {Full, 17}, {Empty, 28719}},
    14011401         {}};
    14021402    /** Code Point Ranges for Tags
    1403     [917504, 917631]**/
     1403    [e0000, e007f]**/
    14041404    const UnicodeSet tags_Set
    14051405        {{{Empty, 28672}, {Full, 4}, {Empty, 6140}},
    14061406         {}};
    14071407    /** Code Point Ranges for VS_Sup
    1408     [917760, 917999]**/
     1408    [e0100, e01ef]**/
    14091409    const UnicodeSet vs_sup_Set
    14101410        {{{Empty, 28680}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    14111411         {0x0000ffff}};
    14121412    /** Code Point Ranges for Sup_PUA_A
    1413     [983040, 1048575]**/
     1413    [f0000, fffff]**/
    14141414    const UnicodeSet sup_pua_a_Set
    14151415        {{{Empty, 30720}, {Full, 2048}, {Empty, 2048}},
    14161416         {}};
    14171417    /** Code Point Ranges for Sup_PUA_B
    1418     [1048576, 1114111]**/
     1418    [100000, 10ffff]**/
    14191419    const UnicodeSet sup_pua_b_Set
    14201420        {{{Empty, 32768}, {Full, 2048}},
  • icGREP/icgrep-devel/icgrep/UCD/CaseFolding_txt.h

    r5267 r5656  
    22#define CASEFOLDING_TXT_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
  • icGREP/icgrep-devel/icgrep/UCD/DerivedAge.h

    r5159 r5656  
    22#define DERIVEDAGE_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1717    const unsigned independent_prop_values = 19;
    1818    /** Code Point Ranges for Unassigned
    19     [888, 889], [896, 899], [907, 907], [909, 909], [930, 930],
    20     [1328, 1328], [1367, 1368], [1376, 1376], [1416, 1416], [1419, 1420],
    21     [1424, 1424], [1480, 1487], [1515, 1519], [1525, 1535], [1565, 1565],
    22     [1806, 1806], [1867, 1868], [1970, 1983], [2043, 2047], [2094, 2095],
    23     [2111, 2111], [2140, 2141], [2143, 2207], [2229, 2229], [2238, 2259],
    24     [2436, 2436], [2445, 2446], [2449, 2450], [2473, 2473], [2481, 2481],
    25     [2483, 2485], [2490, 2491], [2501, 2502], [2505, 2506], [2511, 2518],
    26     [2520, 2523], [2526, 2526], [2532, 2533], [2556, 2560], [2564, 2564],
    27     [2571, 2574], [2577, 2578], [2601, 2601], [2609, 2609], [2612, 2612],
    28     [2615, 2615], [2618, 2619], [2621, 2621], [2627, 2630], [2633, 2634],
    29     [2638, 2640], [2642, 2648], [2653, 2653], [2655, 2661], [2678, 2688],
    30     [2692, 2692], [2702, 2702], [2706, 2706], [2729, 2729], [2737, 2737],
    31     [2740, 2740], [2746, 2747], [2758, 2758], [2762, 2762], [2766, 2767],
    32     [2769, 2783], [2788, 2789], [2802, 2808], [2810, 2816], [2820, 2820],
    33     [2829, 2830], [2833, 2834], [2857, 2857], [2865, 2865], [2868, 2868],
    34     [2874, 2875], [2885, 2886], [2889, 2890], [2894, 2901], [2904, 2907],
    35     [2910, 2910], [2916, 2917], [2936, 2945], [2948, 2948], [2955, 2957],
    36     [2961, 2961], [2966, 2968], [2971, 2971], [2973, 2973], [2976, 2978],
    37     [2981, 2983], [2987, 2989], [3002, 3005], [3011, 3013], [3017, 3017],
    38     [3022, 3023], [3025, 3030], [3032, 3045], [3067, 3071], [3076, 3076],
    39     [3085, 3085], [3089, 3089], [3113, 3113], [3130, 3132], [3141, 3141],
    40     [3145, 3145], [3150, 3156], [3159, 3159], [3163, 3167], [3172, 3173],
    41     [3184, 3191], [3204, 3204], [3213, 3213], [3217, 3217], [3241, 3241],
    42     [3252, 3252], [3258, 3259], [3269, 3269], [3273, 3273], [3278, 3284],
    43     [3287, 3293], [3295, 3295], [3300, 3301], [3312, 3312], [3315, 3328],
    44     [3332, 3332], [3341, 3341], [3345, 3345], [3387, 3388], [3397, 3397],
    45     [3401, 3401], [3408, 3411], [3428, 3429], [3456, 3457], [3460, 3460],
    46     [3479, 3481], [3506, 3506], [3516, 3516], [3518, 3519], [3527, 3529],
    47     [3531, 3534], [3541, 3541], [3543, 3543], [3552, 3557], [3568, 3569],
    48     [3573, 3584], [3643, 3646], [3676, 3712], [3715, 3715], [3717, 3718],
    49     [3721, 3721], [3723, 3724], [3726, 3731], [3736, 3736], [3744, 3744],
    50     [3748, 3748], [3750, 3750], [3752, 3753], [3756, 3756], [3770, 3770],
    51     [3774, 3775], [3781, 3781], [3783, 3783], [3790, 3791], [3802, 3803],
    52     [3808, 3839], [3912, 3912], [3949, 3952], [3992, 3992], [4029, 4029],
    53     [4045, 4045], [4059, 4095], [4294, 4294], [4296, 4300], [4302, 4303],
    54     [4681, 4681], [4686, 4687], [4695, 4695], [4697, 4697], [4702, 4703],
    55     [4745, 4745], [4750, 4751], [4785, 4785], [4790, 4791], [4799, 4799],
    56     [4801, 4801], [4806, 4807], [4823, 4823], [4881, 4881], [4886, 4887],
    57     [4955, 4956], [4989, 4991], [5018, 5023], [5110, 5111], [5118, 5119],
    58     [5789, 5791], [5881, 5887], [5901, 5901], [5909, 5919], [5943, 5951],
    59     [5972, 5983], [5997, 5997], [6001, 6001], [6004, 6015], [6110, 6111],
    60     [6122, 6127], [6138, 6143], [6159, 6159], [6170, 6175], [6264, 6271],
    61     [6315, 6319], [6390, 6399], [6431, 6431], [6444, 6447], [6460, 6463],
    62     [6465, 6467], [6510, 6511], [6517, 6527], [6572, 6575], [6602, 6607],
    63     [6619, 6621], [6684, 6685], [6751, 6751], [6781, 6782], [6794, 6799],
    64     [6810, 6815], [6830, 6831], [6847, 6911], [6988, 6991], [7037, 7039],
    65     [7156, 7163], [7224, 7226], [7242, 7244], [7305, 7359], [7368, 7375],
    66     [7415, 7415], [7418, 7423], [7670, 7674], [7958, 7959], [7966, 7967],
    67     [8006, 8007], [8014, 8015], [8024, 8024], [8026, 8026], [8028, 8028],
    68     [8030, 8030], [8062, 8063], [8117, 8117], [8133, 8133], [8148, 8149],
    69     [8156, 8156], [8176, 8177], [8181, 8181], [8191, 8191], [8293, 8293],
    70     [8306, 8307], [8335, 8335], [8349, 8351], [8383, 8399], [8433, 8447],
    71     [8588, 8591], [9215, 9215], [9255, 9279], [9291, 9311], [11124, 11125],
    72     [11158, 11159], [11194, 11196], [11209, 11209], [11218, 11243],
    73     [11248, 11263], [11311, 11311], [11359, 11359], [11508, 11512],
    74     [11558, 11558], [11560, 11564], [11566, 11567], [11624, 11630],
    75     [11633, 11646], [11671, 11679], [11687, 11687], [11695, 11695],
    76     [11703, 11703], [11711, 11711], [11719, 11719], [11727, 11727],
    77     [11735, 11735], [11743, 11743], [11845, 11903], [11930, 11930],
    78     [12020, 12031], [12246, 12271], [12284, 12287], [12352, 12352],
    79     [12439, 12440], [12544, 12548], [12590, 12592], [12687, 12687],
    80     [12731, 12735], [12772, 12783], [12831, 12831], [13055, 13055],
    81     [19894, 19903], [40918, 40959], [42125, 42127], [42183, 42191],
    82     [42540, 42559], [42744, 42751], [42927, 42927], [42936, 42998],
    83     [43052, 43055], [43066, 43071], [43128, 43135], [43206, 43213],
    84     [43226, 43231], [43262, 43263], [43348, 43358], [43389, 43391],
    85     [43470, 43470], [43482, 43485], [43519, 43519], [43575, 43583],
    86     [43598, 43599], [43610, 43611], [43715, 43738], [43767, 43776],
    87     [43783, 43784], [43791, 43792], [43799, 43807], [43815, 43815],
    88     [43823, 43823], [43878, 43887], [44014, 44015], [44026, 44031],
    89     [55204, 55215], [55239, 55242], [55292, 55295], [64110, 64111],
    90     [64218, 64255], [64263, 64274], [64280, 64284], [64311, 64311],
    91     [64317, 64317], [64319, 64319], [64322, 64322], [64325, 64325],
    92     [64450, 64466], [64832, 64847], [64912, 64913], [64968, 64975],
    93     [65022, 65023], [65050, 65055], [65107, 65107], [65127, 65127],
    94     [65132, 65135], [65141, 65141], [65277, 65278], [65280, 65280],
    95     [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497],
    96     [65501, 65503], [65511, 65511], [65519, 65528], [65548, 65548],
    97     [65575, 65575], [65595, 65595], [65598, 65598], [65614, 65615],
    98     [65630, 65663], [65787, 65791], [65795, 65798], [65844, 65846],
    99     [65935, 65935], [65948, 65951], [65953, 65999], [66046, 66175],
    100     [66205, 66207], [66257, 66271], [66300, 66303], [66340, 66351],
    101     [66379, 66383], [66427, 66431], [66462, 66462], [66500, 66503],
    102     [66518, 66559], [66718, 66719], [66730, 66735], [66772, 66775],
    103     [66812, 66815], [66856, 66863], [66916, 66926], [66928, 67071],
    104     [67383, 67391], [67414, 67423], [67432, 67583], [67590, 67591],
    105     [67593, 67593], [67638, 67638], [67641, 67643], [67645, 67646],
    106     [67670, 67670], [67743, 67750], [67760, 67807], [67827, 67827],
    107     [67830, 67834], [67868, 67870], [67898, 67902], [67904, 67967],
    108     [68024, 68027], [68048, 68049], [68100, 68100], [68103, 68107],
    109     [68116, 68116], [68120, 68120], [68148, 68151], [68155, 68158],
    110     [68168, 68175], [68185, 68191], [68256, 68287], [68327, 68330],
    111     [68343, 68351], [68406, 68408], [68438, 68439], [68467, 68471],
    112     [68498, 68504], [68509, 68520], [68528, 68607], [68681, 68735],
    113     [68787, 68799], [68851, 68857], [68864, 69215], [69247, 69631],
    114     [69710, 69713], [69744, 69758], [69826, 69839], [69865, 69871],
    115     [69882, 69887], [69941, 69941], [69956, 69967], [70007, 70015],
    116     [70094, 70095], [70112, 70112], [70133, 70143], [70162, 70162],
    117     [70207, 70271], [70279, 70279], [70281, 70281], [70286, 70286],
    118     [70302, 70302], [70314, 70319], [70379, 70383], [70394, 70399],
    119     [70404, 70404], [70413, 70414], [70417, 70418], [70441, 70441],
    120     [70449, 70449], [70452, 70452], [70458, 70459], [70469, 70470],
    121     [70473, 70474], [70478, 70479], [70481, 70486], [70488, 70492],
    122     [70500, 70501], [70509, 70511], [70517, 70655], [70746, 70746],
    123     [70748, 70748], [70750, 70783], [70856, 70863], [70874, 71039],
    124     [71094, 71095], [71134, 71167], [71237, 71247], [71258, 71263],
    125     [71277, 71295], [71352, 71359], [71370, 71423], [71450, 71452],
    126     [71468, 71471], [71488, 71839], [71923, 71934], [71936, 72383],
    127     [72441, 72703], [72713, 72713], [72759, 72759], [72774, 72783],
    128     [72813, 72815], [72848, 72849], [72872, 72872], [72887, 73727],
    129     [74650, 74751], [74863, 74863], [74869, 74879], [75076, 77823],
    130     [78895, 82943], [83527, 92159], [92729, 92735], [92767, 92767],
    131     [92778, 92781], [92784, 92879], [92910, 92911], [92918, 92927],
    132     [92998, 93007], [93018, 93018], [93026, 93026], [93048, 93052],
    133     [93072, 93951], [94021, 94031], [94079, 94094], [94112, 94175],
    134     [94177, 94207], [100333, 100351], [101107, 110591], [110594, 113663],
    135     [113771, 113775], [113789, 113791], [113801, 113807], [113818, 113819],
    136     [113828, 118783], [119030, 119039], [119079, 119080], [119273, 119295],
    137     [119366, 119551], [119639, 119647], [119666, 119807], [119893, 119893],
    138     [119965, 119965], [119968, 119969], [119971, 119972], [119975, 119976],
    139     [119981, 119981], [119994, 119994], [119996, 119996], [120004, 120004],
    140     [120070, 120070], [120075, 120076], [120085, 120085], [120093, 120093],
    141     [120122, 120122], [120127, 120127], [120133, 120133], [120135, 120137],
    142     [120145, 120145], [120486, 120487], [120780, 120781], [121484, 121498],
    143     [121504, 121504], [121520, 122879], [122887, 122887], [122905, 122906],
    144     [122914, 122914], [122917, 122917], [122923, 124927], [125125, 125126],
    145     [125143, 125183], [125259, 125263], [125274, 125277], [125280, 126463],
    146     [126468, 126468], [126496, 126496], [126499, 126499], [126501, 126502],
    147     [126504, 126504], [126515, 126515], [126520, 126520], [126522, 126522],
    148     [126524, 126529], [126531, 126534], [126536, 126536], [126538, 126538],
    149     [126540, 126540], [126544, 126544], [126547, 126547], [126549, 126550],
    150     [126552, 126552], [126554, 126554], [126556, 126556], [126558, 126558],
    151     [126560, 126560], [126563, 126563], [126565, 126566], [126571, 126571],
    152     [126579, 126579], [126584, 126584], [126589, 126589], [126591, 126591],
    153     [126602, 126602], [126620, 126624], [126628, 126628], [126634, 126634],
    154     [126652, 126703], [126706, 126975], [127020, 127023], [127124, 127135],
    155     [127151, 127152], [127168, 127168], [127184, 127184], [127222, 127231],
    156     [127245, 127247], [127279, 127279], [127340, 127343], [127405, 127461],
    157     [127491, 127503], [127548, 127551], [127561, 127567], [127570, 127743],
    158     [128723, 128735], [128749, 128751], [128759, 128767], [128884, 128895],
    159     [128981, 129023], [129036, 129039], [129096, 129103], [129114, 129119],
    160     [129160, 129167], [129198, 129295], [129311, 129311], [129320, 129327],
    161     [129329, 129330], [129343, 129343], [129356, 129359], [129375, 129407],
    162     [129426, 129471], [129473, 131069], [173783, 173823], [177973, 177983],
    163     [178206, 178207], [183970, 194559], [195102, 196605], [196608, 262141],
    164     [262144, 327677], [327680, 393213], [393216, 458749], [458752, 524285],
    165     [524288, 589821], [589824, 655357], [655360, 720893], [720896, 786429],
    166     [786432, 851965], [851968, 917501], [917504, 917504], [917506, 917535],
    167     [917632, 917759], [918000, 983037]**/
     19    [0378, 0379], [0380, 0383], [038b, 038b], [038d, 038d], [03a2, 03a2],
     20    [0530, 0530], [0557, 0558], [0560, 0560], [0588, 0588], [058b, 058c],
     21    [0590, 0590], [05c8, 05cf], [05eb, 05ef], [05f5, 05ff], [061d, 061d],
     22    [070e, 070e], [074b, 074c], [07b2, 07bf], [07fb, 07ff], [082e, 082f],
     23    [083f, 083f], [085c, 085d], [085f, 089f], [08b5, 08b5], [08be, 08d3],
     24    [0984, 0984], [098d, 098e], [0991, 0992], [09a9, 09a9], [09b1, 09b1],
     25    [09b3, 09b5], [09ba, 09bb], [09c5, 09c6], [09c9, 09ca], [09cf, 09d6],
     26    [09d8, 09db], [09de, 09de], [09e4, 09e5], [09fc, 0a00], [0a04, 0a04],
     27    [0a0b, 0a0e], [0a11, 0a12], [0a29, 0a29], [0a31, 0a31], [0a34, 0a34],
     28    [0a37, 0a37], [0a3a, 0a3b], [0a3d, 0a3d], [0a43, 0a46], [0a49, 0a4a],
     29    [0a4e, 0a50], [0a52, 0a58], [0a5d, 0a5d], [0a5f, 0a65], [0a76, 0a80],
     30    [0a84, 0a84], [0a8e, 0a8e], [0a92, 0a92], [0aa9, 0aa9], [0ab1, 0ab1],
     31    [0ab4, 0ab4], [0aba, 0abb], [0ac6, 0ac6], [0aca, 0aca], [0ace, 0acf],
     32    [0ad1, 0adf], [0ae4, 0ae5], [0af2, 0af8], [0afa, 0b00], [0b04, 0b04],
     33    [0b0d, 0b0e], [0b11, 0b12], [0b29, 0b29], [0b31, 0b31], [0b34, 0b34],
     34    [0b3a, 0b3b], [0b45, 0b46], [0b49, 0b4a], [0b4e, 0b55], [0b58, 0b5b],
     35    [0b5e, 0b5e], [0b64, 0b65], [0b78, 0b81], [0b84, 0b84], [0b8b, 0b8d],
     36    [0b91, 0b91], [0b96, 0b98], [0b9b, 0b9b], [0b9d, 0b9d], [0ba0, 0ba2],
     37    [0ba5, 0ba7], [0bab, 0bad], [0bba, 0bbd], [0bc3, 0bc5], [0bc9, 0bc9],
     38    [0bce, 0bcf], [0bd1, 0bd6], [0bd8, 0be5], [0bfb, 0bff], [0c04, 0c04],
     39    [0c0d, 0c0d], [0c11, 0c11], [0c29, 0c29], [0c3a, 0c3c], [0c45, 0c45],
     40    [0c49, 0c49], [0c4e, 0c54], [0c57, 0c57], [0c5b, 0c5f], [0c64, 0c65],
     41    [0c70, 0c77], [0c84, 0c84], [0c8d, 0c8d], [0c91, 0c91], [0ca9, 0ca9],
     42    [0cb4, 0cb4], [0cba, 0cbb], [0cc5, 0cc5], [0cc9, 0cc9], [0cce, 0cd4],
     43    [0cd7, 0cdd], [0cdf, 0cdf], [0ce4, 0ce5], [0cf0, 0cf0], [0cf3, 0d00],
     44    [0d04, 0d04], [0d0d, 0d0d], [0d11, 0d11], [0d3b, 0d3c], [0d45, 0d45],
     45    [0d49, 0d49], [0d50, 0d53], [0d64, 0d65], [0d80, 0d81], [0d84, 0d84],
     46    [0d97, 0d99], [0db2, 0db2], [0dbc, 0dbc], [0dbe, 0dbf], [0dc7, 0dc9],
     47    [0dcb, 0dce], [0dd5, 0dd5], [0dd7, 0dd7], [0de0, 0de5], [0df0, 0df1],
     48    [0df5, 0e00], [0e3b, 0e3e], [0e5c, 0e80], [0e83, 0e83], [0e85, 0e86],
     49    [0e89, 0e89], [0e8b, 0e8c], [0e8e, 0e93], [0e98, 0e98], [0ea0, 0ea0],
     50    [0ea4, 0ea4], [0ea6, 0ea6], [0ea8, 0ea9], [0eac, 0eac], [0eba, 0eba],
     51    [0ebe, 0ebf], [0ec5, 0ec5], [0ec7, 0ec7], [0ece, 0ecf], [0eda, 0edb],
     52    [0ee0, 0eff], [0f48, 0f48], [0f6d, 0f70], [0f98, 0f98], [0fbd, 0fbd],
     53    [0fcd, 0fcd], [0fdb, 0fff], [10c6, 10c6], [10c8, 10cc], [10ce, 10cf],
     54    [1249, 1249], [124e, 124f], [1257, 1257], [1259, 1259], [125e, 125f],
     55    [1289, 1289], [128e, 128f], [12b1, 12b1], [12b6, 12b7], [12bf, 12bf],
     56    [12c1, 12c1], [12c6, 12c7], [12d7, 12d7], [1311, 1311], [1316, 1317],
     57    [135b, 135c], [137d, 137f], [139a, 139f], [13f6, 13f7], [13fe, 13ff],
     58    [169d, 169f], [16f9, 16ff], [170d, 170d], [1715, 171f], [1737, 173f],
     59    [1754, 175f], [176d, 176d], [1771, 1771], [1774, 177f], [17de, 17df],
     60    [17ea, 17ef], [17fa, 17ff], [180f, 180f], [181a, 181f], [1878, 187f],
     61    [18ab, 18af], [18f6, 18ff], [191f, 191f], [192c, 192f], [193c, 193f],
     62    [1941, 1943], [196e, 196f], [1975, 197f], [19ac, 19af], [19ca, 19cf],
     63    [19db, 19dd], [1a1c, 1a1d], [1a5f, 1a5f], [1a7d, 1a7e], [1a8a, 1a8f],
     64    [1a9a, 1a9f], [1aae, 1aaf], [1abf, 1aff], [1b4c, 1b4f], [1b7d, 1b7f],
     65    [1bf4, 1bfb], [1c38, 1c3a], [1c4a, 1c4c], [1c89, 1cbf], [1cc8, 1ccf],
     66    [1cf7, 1cf7], [1cfa, 1cff], [1df6, 1dfa], [1f16, 1f17], [1f1e, 1f1f],
     67    [1f46, 1f47], [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a], [1f5c, 1f5c],
     68    [1f5e, 1f5e], [1f7e, 1f7f], [1fb5, 1fb5], [1fc5, 1fc5], [1fd4, 1fd5],
     69    [1fdc, 1fdc], [1ff0, 1ff1], [1ff5, 1ff5], [1fff, 1fff], [2065, 2065],
     70    [2072, 2073], [208f, 208f], [209d, 209f], [20bf, 20cf], [20f1, 20ff],
     71    [218c, 218f], [23ff, 23ff], [2427, 243f], [244b, 245f], [2b74, 2b75],
     72    [2b96, 2b97], [2bba, 2bbc], [2bc9, 2bc9], [2bd2, 2beb], [2bf0, 2bff],
     73    [2c2f, 2c2f], [2c5f, 2c5f], [2cf4, 2cf8], [2d26, 2d26], [2d28, 2d2c],
     74    [2d2e, 2d2f], [2d68, 2d6e], [2d71, 2d7e], [2d97, 2d9f], [2da7, 2da7],
     75    [2daf, 2daf], [2db7, 2db7], [2dbf, 2dbf], [2dc7, 2dc7], [2dcf, 2dcf],
     76    [2dd7, 2dd7], [2ddf, 2ddf], [2e45, 2e7f], [2e9a, 2e9a], [2ef4, 2eff],
     77    [2fd6, 2fef], [2ffc, 2fff], [3040, 3040], [3097, 3098], [3100, 3104],
     78    [312e, 3130], [318f, 318f], [31bb, 31bf], [31e4, 31ef], [321f, 321f],
     79    [32ff, 32ff], [4db6, 4dbf], [9fd6, 9fff], [a48d, a48f], [a4c7, a4cf],
     80    [a62c, a63f], [a6f8, a6ff], [a7af, a7af], [a7b8, a7f6], [a82c, a82f],
     81    [a83a, a83f], [a878, a87f], [a8c6, a8cd], [a8da, a8df], [a8fe, a8ff],
     82    [a954, a95e], [a97d, a97f], [a9ce, a9ce], [a9da, a9dd], [a9ff, a9ff],
     83    [aa37, aa3f], [aa4e, aa4f], [aa5a, aa5b], [aac3, aada], [aaf7, ab00],
     84    [ab07, ab08], [ab0f, ab10], [ab17, ab1f], [ab27, ab27], [ab2f, ab2f],
     85    [ab66, ab6f], [abee, abef], [abfa, abff], [d7a4, d7af], [d7c7, d7ca],
     86    [d7fc, d7ff], [fa6e, fa6f], [fada, faff], [fb07, fb12], [fb18, fb1c],
     87    [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42], [fb45, fb45],
     88    [fbc2, fbd2], [fd40, fd4f], [fd90, fd91], [fdc8, fdcf], [fdfe, fdff],
     89    [fe1a, fe1f], [fe53, fe53], [fe67, fe67], [fe6c, fe6f], [fe75, fe75],
     90    [fefd, fefe], [ff00, ff00], [ffbf, ffc1], [ffc8, ffc9], [ffd0, ffd1],
     91    [ffd8, ffd9], [ffdd, ffdf], [ffe7, ffe7], [ffef, fff8], [1000c, 1000c],
     92    [10027, 10027], [1003b, 1003b], [1003e, 1003e], [1004e, 1004f],
     93    [1005e, 1007f], [100fb, 100ff], [10103, 10106], [10134, 10136],
     94    [1018f, 1018f], [1019c, 1019f], [101a1, 101cf], [101fe, 1027f],
     95    [1029d, 1029f], [102d1, 102df], [102fc, 102ff], [10324, 1032f],
     96    [1034b, 1034f], [1037b, 1037f], [1039e, 1039e], [103c4, 103c7],
     97    [103d6, 103ff], [1049e, 1049f], [104aa, 104af], [104d4, 104d7],
     98    [104fc, 104ff], [10528, 1052f], [10564, 1056e], [10570, 105ff],
     99    [10737, 1073f], [10756, 1075f], [10768, 107ff], [10806, 10807],
     100    [10809, 10809], [10836, 10836], [10839, 1083b], [1083d, 1083e],
     101    [10856, 10856], [1089f, 108a6], [108b0, 108df], [108f3, 108f3],
     102    [108f6, 108fa], [1091c, 1091e], [1093a, 1093e], [10940, 1097f],
     103    [109b8, 109bb], [109d0, 109d1], [10a04, 10a04], [10a07, 10a0b],
     104    [10a14, 10a14], [10a18, 10a18], [10a34, 10a37], [10a3b, 10a3e],
     105    [10a48, 10a4f], [10a59, 10a5f], [10aa0, 10abf], [10ae7, 10aea],
     106    [10af7, 10aff], [10b36, 10b38], [10b56, 10b57], [10b73, 10b77],
     107    [10b92, 10b98], [10b9d, 10ba8], [10bb0, 10bff], [10c49, 10c7f],
     108    [10cb3, 10cbf], [10cf3, 10cf9], [10d00, 10e5f], [10e7f, 10fff],
     109    [1104e, 11051], [11070, 1107e], [110c2, 110cf], [110e9, 110ef],
     110    [110fa, 110ff], [11135, 11135], [11144, 1114f], [11177, 1117f],
     111    [111ce, 111cf], [111e0, 111e0], [111f5, 111ff], [11212, 11212],
     112    [1123f, 1127f], [11287, 11287], [11289, 11289], [1128e, 1128e],
     113    [1129e, 1129e], [112aa, 112af], [112eb, 112ef], [112fa, 112ff],
     114    [11304, 11304], [1130d, 1130e], [11311, 11312], [11329, 11329],
     115    [11331, 11331], [11334, 11334], [1133a, 1133b], [11345, 11346],
     116    [11349, 1134a], [1134e, 1134f], [11351, 11356], [11358, 1135c],
     117    [11364, 11365], [1136d, 1136f], [11375, 113ff], [1145a, 1145a],
     118    [1145c, 1145c], [1145e, 1147f], [114c8, 114cf], [114da, 1157f],
     119    [115b6, 115b7], [115de, 115ff], [11645, 1164f], [1165a, 1165f],
     120    [1166d, 1167f], [116b8, 116bf], [116ca, 116ff], [1171a, 1171c],
     121    [1172c, 1172f], [11740, 1189f], [118f3, 118fe], [11900, 11abf],
     122    [11af9, 11bff], [11c09, 11c09], [11c37, 11c37], [11c46, 11c4f],
     123    [11c6d, 11c6f], [11c90, 11c91], [11ca8, 11ca8], [11cb7, 11fff],
     124    [1239a, 123ff], [1246f, 1246f], [12475, 1247f], [12544, 12fff],
     125    [1342f, 143ff], [14647, 167ff], [16a39, 16a3f], [16a5f, 16a5f],
     126    [16a6a, 16a6d], [16a70, 16acf], [16aee, 16aef], [16af6, 16aff],
     127    [16b46, 16b4f], [16b5a, 16b5a], [16b62, 16b62], [16b78, 16b7c],
     128    [16b90, 16eff], [16f45, 16f4f], [16f7f, 16f8e], [16fa0, 16fdf],
     129    [16fe1, 16fff], [187ed, 187ff], [18af3, 1afff], [1b002, 1bbff],
     130    [1bc6b, 1bc6f], [1bc7d, 1bc7f], [1bc89, 1bc8f], [1bc9a, 1bc9b],
     131    [1bca4, 1cfff], [1d0f6, 1d0ff], [1d127, 1d128], [1d1e9, 1d1ff],
     132    [1d246, 1d2ff], [1d357, 1d35f], [1d372, 1d3ff], [1d455, 1d455],
     133    [1d49d, 1d49d], [1d4a0, 1d4a1], [1d4a3, 1d4a4], [1d4a7, 1d4a8],
     134    [1d4ad, 1d4ad], [1d4ba, 1d4ba], [1d4bc, 1d4bc], [1d4c4, 1d4c4],
     135    [1d506, 1d506], [1d50b, 1d50c], [1d515, 1d515], [1d51d, 1d51d],
     136    [1d53a, 1d53a], [1d53f, 1d53f], [1d545, 1d545], [1d547, 1d549],
     137    [1d551, 1d551], [1d6a6, 1d6a7], [1d7cc, 1d7cd], [1da8c, 1da9a],
     138    [1daa0, 1daa0], [1dab0, 1dfff], [1e007, 1e007], [1e019, 1e01a],
     139    [1e022, 1e022], [1e025, 1e025], [1e02b, 1e7ff], [1e8c5, 1e8c6],
     140    [1e8d7, 1e8ff], [1e94b, 1e94f], [1e95a, 1e95d], [1e960, 1edff],
     141    [1ee04, 1ee04], [1ee20, 1ee20], [1ee23, 1ee23], [1ee25, 1ee26],
     142    [1ee28, 1ee28], [1ee33, 1ee33], [1ee38, 1ee38], [1ee3a, 1ee3a],
     143    [1ee3c, 1ee41], [1ee43, 1ee46], [1ee48, 1ee48], [1ee4a, 1ee4a],
     144    [1ee4c, 1ee4c], [1ee50, 1ee50], [1ee53, 1ee53], [1ee55, 1ee56],
     145    [1ee58, 1ee58], [1ee5a, 1ee5a], [1ee5c, 1ee5c], [1ee5e, 1ee5e],
     146    [1ee60, 1ee60], [1ee63, 1ee63], [1ee65, 1ee66], [1ee6b, 1ee6b],
     147    [1ee73, 1ee73], [1ee78, 1ee78], [1ee7d, 1ee7d], [1ee7f, 1ee7f],
     148    [1ee8a, 1ee8a], [1ee9c, 1eea0], [1eea4, 1eea4], [1eeaa, 1eeaa],
     149    [1eebc, 1eeef], [1eef2, 1efff], [1f02c, 1f02f], [1f094, 1f09f],
     150    [1f0af, 1f0b0], [1f0c0, 1f0c0], [1f0d0, 1f0d0], [1f0f6, 1f0ff],
     151    [1f10d, 1f10f], [1f12f, 1f12f], [1f16c, 1f16f], [1f1ad, 1f1e5],
     152    [1f203, 1f20f], [1f23c, 1f23f], [1f249, 1f24f], [1f252, 1f2ff],
     153    [1f6d3, 1f6df], [1f6ed, 1f6ef], [1f6f7, 1f6ff], [1f774, 1f77f],
     154    [1f7d5, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f], [1f85a, 1f85f],
     155    [1f888, 1f88f], [1f8ae, 1f90f], [1f91f, 1f91f], [1f928, 1f92f],
     156    [1f931, 1f932], [1f93f, 1f93f], [1f94c, 1f94f], [1f95f, 1f97f],
     157    [1f992, 1f9bf], [1f9c1, 1fffd], [2a6d7, 2a6ff], [2b735, 2b73f],
     158    [2b81e, 2b81f], [2cea2, 2f7ff], [2fa1e, 2fffd], [30000, 3fffd],
     159    [40000, 4fffd], [50000, 5fffd], [60000, 6fffd], [70000, 7fffd],
     160    [80000, 8fffd], [90000, 9fffd], [a0000, afffd], [b0000, bfffd],
     161    [c0000, cfffd], [d0000, dfffd], [e0000, e0000], [e0002, e001f],
     162    [e0080, e00ff], [e01f0, efffd]**/
    168163    const UnicodeSet unassigned_Set
    169164        {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     
    325320          0xfffffffd, 0xffff0000, 0x3fffffff}};
    326321    /** Code Point Ranges for V1_1
    327     [0, 501], [506, 535], [592, 680], [688, 734], [736, 745], [768, 837],
    328     [864, 865], [884, 885], [890, 890], [894, 894], [900, 906], [908, 908],
    329     [910, 929], [931, 974], [976, 982], [986, 986], [988, 988], [990, 990],
    330     [992, 992], [994, 1011], [1025, 1036], [1038, 1103], [1105, 1116],
    331     [1118, 1158], [1168, 1220], [1223, 1224], [1227, 1228], [1232, 1259],
    332     [1262, 1269], [1272, 1273], [1329, 1366], [1369, 1375], [1377, 1415],
    333     [1417, 1417], [1456, 1465], [1467, 1475], [1488, 1514], [1520, 1524],
    334     [1548, 1548], [1563, 1563], [1567, 1567], [1569, 1594], [1600, 1618],
    335     [1632, 1645], [1648, 1719], [1722, 1726], [1728, 1742], [1744, 1773],
    336     [1776, 1785], [2305, 2307], [2309, 2361], [2364, 2381], [2384, 2388],
    337     [2392, 2416], [2433, 2435], [2437, 2444], [2447, 2448], [2451, 2472],
    338     [2474, 2480], [2482, 2482], [2486, 2489], [2492, 2492], [2494, 2500],
    339     [2503, 2504], [2507, 2509], [2519, 2519], [2524, 2525], [2527, 2531],
    340     [2534, 2554], [2562, 2562], [2565, 2570], [2575, 2576], [2579, 2600],
    341     [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617], [2620, 2620],
    342     [2622, 2626], [2631, 2632], [2635, 2637], [2649, 2652], [2654, 2654],
    343     [2662, 2676], [2689, 2691], [2693, 2699], [2701, 2701], [2703, 2705],
    344     [2707, 2728], [2730, 2736], [2738, 2739], [2741, 2745], [2748, 2757],
    345     [2759, 2761], [2763, 2765], [2768, 2768], [2784, 2784], [2790, 2799],
    346     [2817, 2819], [2821, 2828], [2831, 2832], [2835, 2856], [2858, 2864],
    347     [2866, 2867], [2870, 2873], [2876, 2883], [2887, 2888], [2891, 2893],
    348     [2902, 2903], [2908, 2909], [2911, 2913], [2918, 2928], [2946, 2947],
    349     [2949, 2954], [2958, 2960], [2962, 2965], [2969, 2970], [2972, 2972],
    350     [2974, 2975], [2979, 2980], [2984, 2986], [2990, 2997], [2999, 3001],
    351     [3006, 3010], [3014, 3016], [3018, 3021], [3031, 3031], [3047, 3058],
    352     [3073, 3075], [3077, 3084], [3086, 3088], [3090, 3112], [3114, 3123],
    353     [3125, 3129], [3134, 3140], [3142, 3144], [3146, 3149], [3157, 3158],
    354     [3168, 3169], [3174, 3183], [3202, 3203], [3205, 3212], [3214, 3216],
    355     [3218, 3240], [3242, 3251], [3253, 3257], [3262, 3268], [3270, 3272],
    356     [3274, 3277], [3285, 3286], [3294, 3294], [3296, 3297], [3302, 3311],
    357     [3330, 3331], [3333, 3340], [3342, 3344], [3346, 3368], [3370, 3385],
    358     [3390, 3395], [3398, 3400], [3402, 3405], [3415, 3415], [3424, 3425],
    359     [3430, 3439], [3585, 3642], [3647, 3675], [3713, 3714], [3716, 3716],
    360     [3719, 3720], [3722, 3722], [3725, 3725], [3732, 3735], [3737, 3743],
    361     [3745, 3747], [3749, 3749], [3751, 3751], [3754, 3755], [3757, 3769],
    362     [3771, 3773], [3776, 3780], [3782, 3782], [3784, 3789], [3792, 3801],
    363     [3804, 3805], [4256, 4293], [4304, 4342], [4347, 4347], [4352, 4441],
    364     [4447, 4514], [4520, 4601], [7680, 7834], [7840, 7929], [7936, 7957],
    365     [7960, 7965], [7968, 8005], [8008, 8013], [8016, 8023], [8025, 8025],
    366     [8027, 8027], [8029, 8029], [8031, 8061], [8064, 8116], [8118, 8132],
    367     [8134, 8147], [8150, 8155], [8157, 8175], [8178, 8180], [8182, 8190],
    368     [8192, 8238], [8240, 8262], [8298, 8304], [8308, 8334], [8352, 8362],
    369     [8400, 8417], [8448, 8504], [8531, 8578], [8592, 8682], [8704, 8945],
    370     [8960, 8960], [8962, 9082], [9216, 9252], [9280, 9290], [9312, 9450],
    371     [9472, 9621], [9632, 9711], [9728, 9747], [9754, 9839], [9985, 9988],
    372     [9990, 9993], [9996, 10023], [10025, 10059], [10061, 10061],
    373     [10063, 10066], [10070, 10070], [10072, 10078], [10081, 10087],
    374     [10102, 10132], [10136, 10159], [10161, 10174], [12288, 12343],
    375     [12351, 12351], [12353, 12436], [12441, 12446], [12449, 12542],
    376     [12549, 12588], [12593, 12686], [12688, 12703], [12800, 12828],
    377     [12832, 12867], [12896, 12923], [12927, 12976], [12992, 13003],
    378     [13008, 13054], [13056, 13174], [13179, 13277], [13280, 13310],
    379     [19968, 40869], [57344, 64045], [64256, 64262], [64275, 64279],
    380     [64286, 64310], [64312, 64316], [64318, 64318], [64320, 64321],
    381     [64323, 64324], [64326, 64433], [64467, 64831], [64848, 64911],
    382     [64914, 64967], [65008, 65019], [65056, 65059], [65072, 65092],
    383     [65097, 65106], [65108, 65126], [65128, 65131], [65136, 65138],
    384     [65140, 65140], [65142, 65276], [65279, 65279], [65281, 65374],
    385     [65377, 65470], [65474, 65479], [65482, 65487], [65490, 65495],
    386     [65498, 65500], [65504, 65510], [65512, 65518], [65533, 65535]**/
     322    [0000, 01f5], [01fa, 0217], [0250, 02a8], [02b0, 02de], [02e0, 02e9],
     323    [0300, 0345], [0360, 0361], [0374, 0375], [037a, 037a], [037e, 037e],
     324    [0384, 038a], [038c, 038c], [038e, 03a1], [03a3, 03ce], [03d0, 03d6],
     325    [03da, 03da], [03dc, 03dc], [03de, 03de], [03e0, 03e0], [03e2, 03f3],
     326    [0401, 040c], [040e, 044f], [0451, 045c], [045e, 0486], [0490, 04c4],
     327    [04c7, 04c8], [04cb, 04cc], [04d0, 04eb], [04ee, 04f5], [04f8, 04f9],
     328    [0531, 0556], [0559, 055f], [0561, 0587], [0589, 0589], [05b0, 05b9],
     329    [05bb, 05c3], [05d0, 05ea], [05f0, 05f4], [060c, 060c], [061b, 061b],
     330    [061f, 061f], [0621, 063a], [0640, 0652], [0660, 066d], [0670, 06b7],
     331    [06ba, 06be], [06c0, 06ce], [06d0, 06ed], [06f0, 06f9], [0901, 0903],
     332    [0905, 0939], [093c, 094d], [0950, 0954], [0958, 0970], [0981, 0983],
     333    [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0], [09b2, 09b2],
     334    [09b6, 09b9], [09bc, 09bc], [09be, 09c4], [09c7, 09c8], [09cb, 09cd],
     335    [09d7, 09d7], [09dc, 09dd], [09df, 09e3], [09e6, 09fa], [0a02, 0a02],
     336    [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28], [0a2a, 0a30], [0a32, 0a33],
     337    [0a35, 0a36], [0a38, 0a39], [0a3c, 0a3c], [0a3e, 0a42], [0a47, 0a48],
     338    [0a4b, 0a4d], [0a59, 0a5c], [0a5e, 0a5e], [0a66, 0a74], [0a81, 0a83],
     339    [0a85, 0a8b], [0a8d, 0a8d], [0a8f, 0a91], [0a93, 0aa8], [0aaa, 0ab0],
     340    [0ab2, 0ab3], [0ab5, 0ab9], [0abc, 0ac5], [0ac7, 0ac9], [0acb, 0acd],
     341    [0ad0, 0ad0], [0ae0, 0ae0], [0ae6, 0aef], [0b01, 0b03], [0b05, 0b0c],
     342    [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33], [0b36, 0b39],
     343    [0b3c, 0b43], [0b47, 0b48], [0b4b, 0b4d], [0b56, 0b57], [0b5c, 0b5d],
     344    [0b5f, 0b61], [0b66, 0b70], [0b82, 0b83], [0b85, 0b8a], [0b8e, 0b90],
     345    [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f], [0ba3, 0ba4],
     346    [0ba8, 0baa], [0bae, 0bb5], [0bb7, 0bb9], [0bbe, 0bc2], [0bc6, 0bc8],
     347    [0bca, 0bcd], [0bd7, 0bd7], [0be7, 0bf2], [0c01, 0c03], [0c05, 0c0c],
     348    [0c0e, 0c10], [0c12, 0c28], [0c2a, 0c33], [0c35, 0c39], [0c3e, 0c44],
     349    [0c46, 0c48], [0c4a, 0c4d], [0c55, 0c56], [0c60, 0c61], [0c66, 0c6f],
     350    [0c82, 0c83], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8], [0caa, 0cb3],
     351    [0cb5, 0cb9], [0cbe, 0cc4], [0cc6, 0cc8], [0cca, 0ccd], [0cd5, 0cd6],
     352    [0cde, 0cde], [0ce0, 0ce1], [0ce6, 0cef], [0d02, 0d03], [0d05, 0d0c],
     353    [0d0e, 0d10], [0d12, 0d28], [0d2a, 0d39], [0d3e, 0d43], [0d46, 0d48],
     354    [0d4a, 0d4d], [0d57, 0d57], [0d60, 0d61], [0d66, 0d6f], [0e01, 0e3a],
     355    [0e3f, 0e5b], [0e81, 0e82], [0e84, 0e84], [0e87, 0e88], [0e8a, 0e8a],
     356    [0e8d, 0e8d], [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5],
     357    [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb9], [0ebb, 0ebd], [0ec0, 0ec4],
     358    [0ec6, 0ec6], [0ec8, 0ecd], [0ed0, 0ed9], [0edc, 0edd], [10a0, 10c5],
     359    [10d0, 10f6], [10fb, 10fb], [1100, 1159], [115f, 11a2], [11a8, 11f9],
     360    [1e00, 1e9a], [1ea0, 1ef9], [1f00, 1f15], [1f18, 1f1d], [1f20, 1f45],
     361    [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
     362    [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb],
     363    [1fdd, 1fef], [1ff2, 1ff4], [1ff6, 1ffe], [2000, 202e], [2030, 2046],
     364    [206a, 2070], [2074, 208e], [20a0, 20aa], [20d0, 20e1], [2100, 2138],
     365    [2153, 2182], [2190, 21ea], [2200, 22f1], [2300, 2300], [2302, 237a],
     366    [2400, 2424], [2440, 244a], [2460, 24ea], [2500, 2595], [25a0, 25ef],
     367    [2600, 2613], [261a, 266f], [2701, 2704], [2706, 2709], [270c, 2727],
     368    [2729, 274b], [274d, 274d], [274f, 2752], [2756, 2756], [2758, 275e],
     369    [2761, 2767], [2776, 2794], [2798, 27af], [27b1, 27be], [3000, 3037],
     370    [303f, 303f], [3041, 3094], [3099, 309e], [30a1, 30fe], [3105, 312c],
     371    [3131, 318e], [3190, 319f], [3200, 321c], [3220, 3243], [3260, 327b],
     372    [327f, 32b0], [32c0, 32cb], [32d0, 32fe], [3300, 3376], [337b, 33dd],
     373    [33e0, 33fe], [4e00, 9fa5], [e000, fa2d], [fb00, fb06], [fb13, fb17],
     374    [fb1e, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
     375    [fb46, fbb1], [fbd3, fd3f], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfb],
     376    [fe20, fe23], [fe30, fe44], [fe49, fe52], [fe54, fe66], [fe68, fe6b],
     377    [fe70, fe72], [fe74, fe74], [fe76, fefc], [feff, feff], [ff01, ff5e],
     378    [ff61, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc],
     379    [ffe0, ffe6], [ffe8, ffee], [fffd, ffff]**/
    387380    const UnicodeSet v1_1_Set
    388381        {{{Full, 15}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 2},
     
    441434          0xe0007f7f}};
    442435    /** Code Point Ranges for V2_0
    443     [1425, 1441], [1443, 1455], [1476, 1476], [3840, 3911], [3913, 3945],
    444     [3953, 3979], [3984, 3989], [3991, 3991], [3993, 4013], [4017, 4023],
    445     [4025, 4025], [7835, 7835], [8363, 8363], [44032, 55203],
    446     [55296, 57343], [131070, 131071], [196606, 196607], [262142, 262143],
    447     [327678, 327679], [393214, 393215], [458750, 458751], [524286, 524287],
    448     [589822, 589823], [655358, 655359], [720894, 720895], [786430, 786431],
    449     [851966, 851967], [917502, 917503], [983038, 1114111]**/
     436    [0591, 05a1], [05a3, 05af], [05c4, 05c4], [0f00, 0f47], [0f49, 0f69],
     437    [0f71, 0f8b], [0f90, 0f95], [0f97, 0f97], [0f99, 0fad], [0fb1, 0fb7],
     438    [0fb9, 0fb9], [1e9b, 1e9b], [20ab, 20ab], [ac00, d7a3], [d800, dfff],
     439    [1fffe, 1ffff], [2fffe, 2ffff], [3fffe, 3ffff], [4fffe, 4ffff],
     440    [5fffe, 5ffff], [6fffe, 6ffff], [7fffe, 7ffff], [8fffe, 8ffff],
     441    [9fffe, 9ffff], [afffe, affff], [bfffe, bffff], [cfffe, cffff],
     442    [dfffe, dffff], [efffe, 10ffff]**/
    450443    const UnicodeSet v2_0_Set
    451444        {{{Empty, 44}, {Mixed, 3}, {Empty, 73}, {Full, 2}, {Mixed, 4},
     
    465458          0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000}};
    466459    /** Code Point Ranges for V2_1
    467     [8364, 8364], [65532, 65532]**/
     460    [20ac, 20ac], [fffc, fffc]**/
    468461    const UnicodeSet v2_1_Set
    469462        {{{Empty, 261}, {Mixed, 1}, {Empty, 1785}, {Mixed, 1},
     
    471464         {0x00001000, 0x10000000}};
    472465    /** Code Point Ranges for V3_0
    473     [502, 505], [536, 543], [546, 563], [681, 685], [735, 735], [746, 750],
    474     [838, 846], [866, 866], [983, 983], [987, 987], [989, 989], [991, 991],
    475     [993, 993], [1024, 1024], [1037, 1037], [1104, 1104], [1117, 1117],
    476     [1160, 1161], [1164, 1167], [1260, 1261], [1418, 1418], [1619, 1621],
    477     [1720, 1721], [1727, 1727], [1743, 1743], [1786, 1790], [1792, 1805],
    478     [1807, 1836], [1840, 1866], [1920, 1968], [3458, 3459], [3461, 3478],
    479     [3482, 3505], [3507, 3515], [3517, 3517], [3520, 3526], [3530, 3530],
    480     [3535, 3540], [3542, 3542], [3544, 3551], [3570, 3572], [3946, 3946],
    481     [3990, 3990], [4014, 4016], [4024, 4024], [4026, 4028], [4030, 4044],
    482     [4047, 4047], [4096, 4129], [4131, 4135], [4137, 4138], [4140, 4146],
    483     [4150, 4153], [4160, 4185], [4608, 4614], [4616, 4678], [4680, 4680],
    484     [4682, 4685], [4688, 4694], [4696, 4696], [4698, 4701], [4704, 4742],
    485     [4744, 4744], [4746, 4749], [4752, 4782], [4784, 4784], [4786, 4789],
    486     [4792, 4798], [4800, 4800], [4802, 4805], [4808, 4814], [4816, 4822],
    487     [4824, 4846], [4848, 4878], [4880, 4880], [4882, 4885], [4888, 4894],
    488     [4896, 4934], [4936, 4954], [4961, 4988], [5024, 5108], [5121, 5750],
    489     [5760, 5788], [5792, 5872], [6016, 6108], [6112, 6121], [6144, 6158],
    490     [6160, 6169], [6176, 6263], [6272, 6313], [8239, 8239], [8264, 8269],
    491     [8365, 8367], [8418, 8419], [8505, 8506], [8579, 8579], [8683, 8691],
    492     [8961, 8961], [9083, 9083], [9085, 9114], [9253, 9254], [9712, 9719],
    493     [9753, 9753], [9840, 9841], [10240, 10495], [11904, 11929],
    494     [11931, 12019], [12032, 12245], [12272, 12283], [12344, 12346],
    495     [12350, 12350], [12704, 12727], [13312, 19893], [40960, 42124],
    496     [42128, 42145], [42148, 42163], [42165, 42176], [42178, 42180],
    497     [42182, 42182], [64285, 64285], [65529, 65531]**/
     466    [01f6, 01f9], [0218, 021f], [0222, 0233], [02a9, 02ad], [02df, 02df],
     467    [02ea, 02ee], [0346, 034e], [0362, 0362], [03d7, 03d7], [03db, 03db],
     468    [03dd, 03dd], [03df, 03df], [03e1, 03e1], [0400, 0400], [040d, 040d],
     469    [0450, 0450], [045d, 045d], [0488, 0489], [048c, 048f], [04ec, 04ed],
     470    [058a, 058a], [0653, 0655], [06b8, 06b9], [06bf, 06bf], [06cf, 06cf],
     471    [06fa, 06fe], [0700, 070d], [070f, 072c], [0730, 074a], [0780, 07b0],
     472    [0d82, 0d83], [0d85, 0d96], [0d9a, 0db1], [0db3, 0dbb], [0dbd, 0dbd],
     473    [0dc0, 0dc6], [0dca, 0dca], [0dcf, 0dd4], [0dd6, 0dd6], [0dd8, 0ddf],
     474    [0df2, 0df4], [0f6a, 0f6a], [0f96, 0f96], [0fae, 0fb0], [0fb8, 0fb8],
     475    [0fba, 0fbc], [0fbe, 0fcc], [0fcf, 0fcf], [1000, 1021], [1023, 1027],
     476    [1029, 102a], [102c, 1032], [1036, 1039], [1040, 1059], [1200, 1206],
     477    [1208, 1246], [1248, 1248], [124a, 124d], [1250, 1256], [1258, 1258],
     478    [125a, 125d], [1260, 1286], [1288, 1288], [128a, 128d], [1290, 12ae],
     479    [12b0, 12b0], [12b2, 12b5], [12b8, 12be], [12c0, 12c0], [12c2, 12c5],
     480    [12c8, 12ce], [12d0, 12d6], [12d8, 12ee], [12f0, 130e], [1310, 1310],
     481    [1312, 1315], [1318, 131e], [1320, 1346], [1348, 135a], [1361, 137c],
     482    [13a0, 13f4], [1401, 1676], [1680, 169c], [16a0, 16f0], [1780, 17dc],
     483    [17e0, 17e9], [1800, 180e], [1810, 1819], [1820, 1877], [1880, 18a9],
     484    [202f, 202f], [2048, 204d], [20ad, 20af], [20e2, 20e3], [2139, 213a],
     485    [2183, 2183], [21eb, 21f3], [2301, 2301], [237b, 237b], [237d, 239a],
     486    [2425, 2426], [25f0, 25f7], [2619, 2619], [2670, 2671], [2800, 28ff],
     487    [2e80, 2e99], [2e9b, 2ef3], [2f00, 2fd5], [2ff0, 2ffb], [3038, 303a],
     488    [303e, 303e], [31a0, 31b7], [3400, 4db5], [a000, a48c], [a490, a4a1],
     489    [a4a4, a4b3], [a4b5, a4c0], [a4c2, a4c4], [a4c6, a4c6], [fb1d, fb1d],
     490    [fff9, fffb]**/
    498491    const UnicodeSet v3_0_Set
    499492        {{{Empty, 15}, {Mixed, 3}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
     
    534527          0x0000005d, 0x20000000, 0x0e000000}};
    535528    /** Code Point Ranges for V3_1
    536     [1012, 1013], [64976, 65007], [66304, 66334], [66336, 66339],
    537     [66352, 66378], [66560, 66597], [66600, 66637], [118784, 119029],
    538     [119040, 119078], [119082, 119261], [119808, 119892], [119894, 119964],
    539     [119966, 119967], [119970, 119970], [119973, 119974], [119977, 119980],
    540     [119982, 119993], [119995, 119995], [119997, 120000], [120002, 120003],
    541     [120005, 120069], [120071, 120074], [120077, 120084], [120086, 120092],
    542     [120094, 120121], [120123, 120126], [120128, 120132], [120134, 120134],
    543     [120138, 120144], [120146, 120483], [120488, 120777], [120782, 120831],
    544     [131072, 173782], [194560, 195101], [917505, 917505], [917536, 917631]**/
     529    [03f4, 03f5], [fdd0, fdef], [10300, 1031e], [10320, 10323],
     530    [10330, 1034a], [10400, 10425], [10428, 1044d], [1d000, 1d0f5],
     531    [1d100, 1d126], [1d12a, 1d1dd], [1d400, 1d454], [1d456, 1d49c],
     532    [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac],
     533    [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c0], [1d4c2, 1d4c3],
     534    [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c],
     535    [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546],
     536    [1d54a, 1d550], [1d552, 1d6a3], [1d6a8, 1d7c9], [1d7ce, 1d7ff],
     537    [20000, 2a6d6], [2f800, 2fa1d], [e0001, e0001], [e0020, e007f]**/
    545538    const UnicodeSet v3_1_Set
    546539        {{{Empty, 31}, {Mixed, 1}, {Empty, 1998}, {Mixed, 2}, {Empty, 40},
     
    558551          0x007fffff, 0x3fffffff, 0x00000002}};
    559552    /** Code Point Ranges for V3_2
    560     [544, 544], [847, 847], [867, 879], [984, 985], [1014, 1014],
    561     [1162, 1163], [1221, 1222], [1225, 1226], [1229, 1230], [1280, 1295],
    562     [1646, 1647], [1969, 1969], [4343, 4344], [5888, 5900], [5902, 5908],
    563     [5920, 5942], [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
    564     [8263, 8263], [8270, 8274], [8279, 8279], [8287, 8291], [8305, 8305],
    565     [8368, 8369], [8420, 8426], [8509, 8523], [8692, 8703], [8946, 8959],
    566     [9084, 9084], [9115, 9166], [9451, 9470], [9622, 9631], [9720, 9727],
    567     [9750, 9751], [9842, 9853], [9856, 9865], [10088, 10101],
    568     [10192, 10219], [10224, 10239], [10496, 11007], [12347, 12349],
    569     [12437, 12438], [12447, 12448], [12543, 12543], [12784, 12799],
    570     [12881, 12895], [12977, 12991], [42146, 42147], [42164, 42164],
    571     [42177, 42177], [42181, 42181], [64048, 64106], [65020, 65020],
    572     [65024, 65039], [65093, 65094], [65139, 65139], [65375, 65376]**/
     553    [0220, 0220], [034f, 034f], [0363, 036f], [03d8, 03d9], [03f6, 03f6],
     554    [048a, 048b], [04c5, 04c6], [04c9, 04ca], [04cd, 04ce], [0500, 050f],
     555    [066e, 066f], [07b1, 07b1], [10f7, 10f8], [1700, 170c], [170e, 1714],
     556    [1720, 1736], [1740, 1753], [1760, 176c], [176e, 1770], [1772, 1773],
     557    [2047, 2047], [204e, 2052], [2057, 2057], [205f, 2063], [2071, 2071],
     558    [20b0, 20b1], [20e4, 20ea], [213d, 214b], [21f4, 21ff], [22f2, 22ff],
     559    [237c, 237c], [239b, 23ce], [24eb, 24fe], [2596, 259f], [25f8, 25ff],
     560    [2616, 2617], [2672, 267d], [2680, 2689], [2768, 2775], [27d0, 27eb],
     561    [27f0, 27ff], [2900, 2aff], [303b, 303d], [3095, 3096], [309f, 30a0],
     562    [30ff, 30ff], [31f0, 31ff], [3251, 325f], [32b1, 32bf], [a4a2, a4a3],
     563    [a4b4, a4b4], [a4c1, a4c1], [a4c5, a4c5], [fa30, fa6a], [fdfc, fdfc],
     564    [fe00, fe0f], [fe45, fe46], [fe73, fe73], [ff5f, ff60]**/
    573565    const UnicodeSet v3_2_Set
    574566        {{{Empty, 17}, {Mixed, 1}, {Empty, 8}, {Mixed, 2}, {Empty, 2},
     
    599591          0x80000000, 0x00000001}};
    600592    /** Code Point Ranges for V4_0
    601     [545, 545], [564, 566], [686, 687], [751, 767], [848, 855], [861, 863],
    602     [1015, 1019], [1536, 1539], [1549, 1557], [1622, 1624], [1774, 1775],
    603     [1791, 1791], [1837, 1839], [1869, 1871], [2308, 2308], [2493, 2493],
    604     [2561, 2561], [2563, 2563], [2700, 2700], [2785, 2787], [2801, 2801],
    605     [2869, 2869], [2929, 2929], [3059, 3066], [3260, 3261], [6109, 6109],
    606     [6128, 6137], [6400, 6428], [6432, 6443], [6448, 6459], [6464, 6464],
    607     [6468, 6509], [6512, 6516], [6624, 6655], [7424, 7531], [8275, 8276],
    608     [8507, 8507], [9167, 9168], [9471, 9471], [9748, 9749], [9866, 9873],
    609     [9888, 9889], [11008, 11021], [12829, 12830], [12880, 12880],
    610     [12924, 12925], [13004, 13007], [13175, 13178], [13278, 13279],
    611     [13311, 13311], [19904, 19967], [65021, 65021], [65095, 65096],
    612     [65536, 65547], [65549, 65574], [65576, 65594], [65596, 65597],
    613     [65599, 65613], [65616, 65629], [65664, 65786], [65792, 65794],
    614     [65799, 65843], [65847, 65855], [66432, 66461], [66463, 66463],
    615     [66598, 66599], [66638, 66717], [66720, 66729], [67584, 67589],
    616     [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644],
    617     [67647, 67647], [119552, 119638], [120001, 120001], [917760, 917999]**/
     593    [0221, 0221], [0234, 0236], [02ae, 02af], [02ef, 02ff], [0350, 0357],
     594    [035d, 035f], [03f7, 03fb], [0600, 0603], [060d, 0615], [0656, 0658],
     595    [06ee, 06ef], [06ff, 06ff], [072d, 072f], [074d, 074f], [0904, 0904],
     596    [09bd, 09bd], [0a01, 0a01], [0a03, 0a03], [0a8c, 0a8c], [0ae1, 0ae3],
     597    [0af1, 0af1], [0b35, 0b35], [0b71, 0b71], [0bf3, 0bfa], [0cbc, 0cbd],
     598    [17dd, 17dd], [17f0, 17f9], [1900, 191c], [1920, 192b], [1930, 193b],
     599    [1940, 1940], [1944, 196d], [1970, 1974], [19e0, 19ff], [1d00, 1d6b],
     600    [2053, 2054], [213b, 213b], [23cf, 23d0], [24ff, 24ff], [2614, 2615],
     601    [268a, 2691], [26a0, 26a1], [2b00, 2b0d], [321d, 321e], [3250, 3250],
     602    [327c, 327d], [32cc, 32cf], [3377, 337a], [33de, 33df], [33ff, 33ff],
     603    [4dc0, 4dff], [fdfd, fdfd], [fe47, fe48], [10000, 1000b],
     604    [1000d, 10026], [10028, 1003a], [1003c, 1003d], [1003f, 1004d],
     605    [10050, 1005d], [10080, 100fa], [10100, 10102], [10107, 10133],
     606    [10137, 1013f], [10380, 1039d], [1039f, 1039f], [10426, 10427],
     607    [1044e, 1049d], [104a0, 104a9], [10800, 10805], [10808, 10808],
     608    [1080a, 10835], [10837, 10838], [1083c, 1083c], [1083f, 1083f],
     609    [1d300, 1d356], [1d4c1, 1d4c1], [e0100, e01ef]**/
    618610    const UnicodeSet v4_0_Set
    619611        {{{Empty, 17}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     
    650642          0x91bfffff, 0x007fffff, 0x00000002, 0x0000ffff}};
    651643    /** Code Point Ranges for V4_1
    652     [567, 577], [856, 860], [1020, 1023], [1270, 1271], [1442, 1442],
    653     [1477, 1479], [1547, 1547], [1566, 1566], [1625, 1630], [1872, 1901],
    654     [2429, 2429], [2510, 2510], [2998, 2998], [3046, 3046], [4048, 4049],
    655     [4345, 4346], [4348, 4348], [4615, 4615], [4679, 4679], [4743, 4743],
    656     [4783, 4783], [4815, 4815], [4847, 4847], [4879, 4879], [4895, 4895],
    657     [4935, 4935], [4959, 4960], [4992, 5017], [6528, 6569], [6576, 6601],
    658     [6608, 6617], [6622, 6623], [6656, 6683], [6686, 6687], [7532, 7619],
    659     [8277, 8278], [8280, 8286], [8336, 8340], [8370, 8373], [8427, 8427],
    660     [8508, 8508], [8524, 8524], [9169, 9179], [9752, 9752], [9854, 9855],
    661     [9874, 9884], [9890, 9905], [10176, 10182], [11022, 11027],
    662     [11264, 11310], [11312, 11358], [11392, 11498], [11513, 11557],
    663     [11568, 11621], [11631, 11631], [11648, 11670], [11680, 11686],
    664     [11688, 11694], [11696, 11702], [11704, 11710], [11712, 11718],
    665     [11720, 11726], [11728, 11734], [11736, 11742], [11776, 11799],
    666     [11804, 11805], [12736, 12751], [12926, 12926], [40870, 40891],
    667     [42752, 42774], [43008, 43051], [64112, 64217], [65040, 65049],
    668     [65856, 65930], [66464, 66499], [66504, 66517], [68096, 68099],
    669     [68101, 68102], [68108, 68115], [68117, 68119], [68121, 68147],
    670     [68152, 68154], [68159, 68167], [68176, 68184], [119296, 119365],
    671     [120484, 120485]**/
     644    [0237, 0241], [0358, 035c], [03fc, 03ff], [04f6, 04f7], [05a2, 05a2],
     645    [05c5, 05c7], [060b, 060b], [061e, 061e], [0659, 065e], [0750, 076d],
     646    [097d, 097d], [09ce, 09ce], [0bb6, 0bb6], [0be6, 0be6], [0fd0, 0fd1],
     647    [10f9, 10fa], [10fc, 10fc], [1207, 1207], [1247, 1247], [1287, 1287],
     648    [12af, 12af], [12cf, 12cf], [12ef, 12ef], [130f, 130f], [131f, 131f],
     649    [1347, 1347], [135f, 1360], [1380, 1399], [1980, 19a9], [19b0, 19c9],
     650    [19d0, 19d9], [19de, 19df], [1a00, 1a1b], [1a1e, 1a1f], [1d6c, 1dc3],
     651    [2055, 2056], [2058, 205e], [2090, 2094], [20b2, 20b5], [20eb, 20eb],
     652    [213c, 213c], [214c, 214c], [23d1, 23db], [2618, 2618], [267e, 267f],
     653    [2692, 269c], [26a2, 26b1], [27c0, 27c6], [2b0e, 2b13], [2c00, 2c2e],
     654    [2c30, 2c5e], [2c80, 2cea], [2cf9, 2d25], [2d30, 2d65], [2d6f, 2d6f],
     655    [2d80, 2d96], [2da0, 2da6], [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe],
     656    [2dc0, 2dc6], [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde], [2e00, 2e17],
     657    [2e1c, 2e1d], [31c0, 31cf], [327e, 327e], [9fa6, 9fbb], [a700, a716],
     658    [a800, a82b], [fa70, fad9], [fe10, fe19], [10140, 1018a],
     659    [103a0, 103c3], [103c8, 103d5], [10a00, 10a03], [10a05, 10a06],
     660    [10a0c, 10a13], [10a15, 10a17], [10a19, 10a33], [10a38, 10a3a],
     661    [10a3f, 10a47], [10a50, 10a58], [1d200, 1d245], [1d6a4, 1d6a5]**/
    672662    const UnicodeSet v4_1_Set
    673663        {{{Empty, 17}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 4},
     
    708698          0x870fffff, 0x01ff00ff, 0x0000003f, 0x00000030}};
    709699    /** Code Point Ranges for V5_0
    710     [578, 591], [891, 893], [1231, 1231], [1274, 1279], [1296, 1299],
    711     [1466, 1466], [1984, 2042], [2427, 2428], [2430, 2431], [3298, 3299],
    712     [3313, 3314], [6912, 6987], [6992, 7036], [7620, 7626], [7678, 7679],
    713     [8428, 8431], [8525, 8526], [8580, 8580], [9180, 9191], [9906, 9906],
    714     [10183, 10186], [11028, 11034], [11040, 11043], [11360, 11372],
    715     [11380, 11383], [42775, 42778], [42784, 42785], [43072, 43127],
    716     [67840, 67865], [67871, 67871], [73728, 74606], [74752, 74850],
    717     [74864, 74867], [119648, 119665], [120778, 120779]**/
     700    [0242, 024f], [037b, 037d], [04cf, 04cf], [04fa, 04ff], [0510, 0513],
     701    [05ba, 05ba], [07c0, 07fa], [097b, 097c], [097e, 097f], [0ce2, 0ce3],
     702    [0cf1, 0cf2], [1b00, 1b4b], [1b50, 1b7c], [1dc4, 1dca], [1dfe, 1dff],
     703    [20ec, 20ef], [214d, 214e], [2184, 2184], [23dc, 23e7], [26b2, 26b2],
     704    [27c7, 27ca], [2b14, 2b1a], [2b20, 2b23], [2c60, 2c6c], [2c74, 2c77],
     705    [a717, a71a], [a720, a721], [a840, a877], [10900, 10919],
     706    [1091f, 1091f], [12000, 1236e], [12400, 12462], [12470, 12473],
     707    [1d360, 1d371], [1d7ca, 1d7cb]**/
    718708    const UnicodeSet v5_0_Set
    719709        {{{Empty, 18}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 10},
     
    736726          0x00000c00}};
    737727    /** Code Point Ranges for V5_1
    738     [880, 883], [886, 887], [975, 975], [1159, 1159], [1300, 1315],
    739     [1542, 1546], [1558, 1562], [1595, 1599], [1902, 1919], [2417, 2418],
    740     [2641, 2641], [2677, 2677], [2884, 2884], [2914, 2915], [3024, 3024],
    741     [3133, 3133], [3160, 3161], [3170, 3171], [3192, 3199], [3389, 3389],
    742     [3396, 3396], [3426, 3427], [3440, 3445], [3449, 3455], [3947, 3948],
    743     [4046, 4046], [4050, 4052], [4130, 4130], [4136, 4136], [4139, 4139],
    744     [4147, 4149], [4154, 4159], [4186, 4249], [4254, 4255], [6314, 6314],
    745     [7040, 7082], [7086, 7097], [7168, 7223], [7227, 7241], [7245, 7295],
    746     [7627, 7654], [7836, 7839], [7930, 7935], [8292, 8292], [8432, 8432],
    747     [8527, 8527], [8581, 8584], [9885, 9885], [9907, 9916], [9920, 9923],
    748     [10188, 10188], [10220, 10223], [11035, 11039], [11044, 11084],
    749     [11088, 11092], [11373, 11375], [11377, 11379], [11384, 11389],
    750     [11744, 11775], [11800, 11803], [11806, 11824], [12589, 12589],
    751     [12752, 12771], [40892, 40899], [42240, 42539], [42560, 42591],
    752     [42594, 42611], [42620, 42647], [42779, 42783], [42786, 42892],
    753     [43003, 43007], [43136, 43204], [43214, 43225], [43264, 43347],
    754     [43359, 43359], [43520, 43574], [43584, 43597], [43600, 43609],
    755     [43612, 43615], [65060, 65062], [65936, 65947], [66000, 66045],
    756     [66176, 66204], [66208, 66256], [67872, 67897], [67903, 67903],
    757     [119081, 119081], [126976, 127019], [127024, 127123]**/
     728    [0370, 0373], [0376, 0377], [03cf, 03cf], [0487, 0487], [0514, 0523],
     729    [0606, 060a], [0616, 061a], [063b, 063f], [076e, 077f], [0971, 0972],
     730    [0a51, 0a51], [0a75, 0a75], [0b44, 0b44], [0b62, 0b63], [0bd0, 0bd0],
     731    [0c3d, 0c3d], [0c58, 0c59], [0c62, 0c63], [0c78, 0c7f], [0d3d, 0d3d],
     732    [0d44, 0d44], [0d62, 0d63], [0d70, 0d75], [0d79, 0d7f], [0f6b, 0f6c],
     733    [0fce, 0fce], [0fd2, 0fd4], [1022, 1022], [1028, 1028], [102b, 102b],
     734    [1033, 1035], [103a, 103f], [105a, 1099], [109e, 109f], [18aa, 18aa],
     735    [1b80, 1baa], [1bae, 1bb9], [1c00, 1c37], [1c3b, 1c49], [1c4d, 1c7f],
     736    [1dcb, 1de6], [1e9c, 1e9f], [1efa, 1eff], [2064, 2064], [20f0, 20f0],
     737    [214f, 214f], [2185, 2188], [269d, 269d], [26b3, 26bc], [26c0, 26c3],
     738    [27cc, 27cc], [27ec, 27ef], [2b1b, 2b1f], [2b24, 2b4c], [2b50, 2b54],
     739    [2c6d, 2c6f], [2c71, 2c73], [2c78, 2c7d], [2de0, 2dff], [2e18, 2e1b],
     740    [2e1e, 2e30], [312d, 312d], [31d0, 31e3], [9fbc, 9fc3], [a500, a62b],
     741    [a640, a65f], [a662, a673], [a67c, a697], [a71b, a71f], [a722, a78c],
     742    [a7fb, a7ff], [a880, a8c4], [a8ce, a8d9], [a900, a953], [a95f, a95f],
     743    [aa00, aa36], [aa40, aa4d], [aa50, aa59], [aa5c, aa5f], [fe24, fe26],
     744    [10190, 1019b], [101d0, 101fd], [10280, 1029c], [102a0, 102d0],
     745    [10920, 10939], [1093f, 1093f], [1d129, 1d129], [1f000, 1f02b],
     746    [1f030, 1f093]**/
    758747    const UnicodeSet v5_1_Set
    759748        {{{Empty, 27}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
     
    796785          0x83ffffff, 0x00000200, 0xffff0fff, 0x000fffff}};
    797786    /** Code Point Ranges for V5_2
    798     [1316, 1317], [2048, 2093], [2096, 2110], [2304, 2304], [2382, 2382],
    799     [2389, 2389], [2425, 2426], [2555, 2555], [4053, 4056], [4250, 4253],
    800     [4442, 4446], [4515, 4519], [4602, 4607], [5120, 5120], [5751, 5759],
    801     [6320, 6389], [6570, 6571], [6618, 6618], [6688, 6750], [6752, 6780],
    802     [6783, 6793], [6800, 6809], [6816, 6829], [7376, 7410], [7677, 7677],
    803     [8374, 8376], [8528, 8530], [8585, 8585], [9192, 9192], [9886, 9887],
    804     [9917, 9919], [9924, 9933], [9935, 9953], [9955, 9955], [9960, 9983],
    805     [10071, 10071], [11093, 11097], [11376, 11376], [11390, 11391],
    806     [11499, 11505], [11825, 11825], [12868, 12879], [40900, 40907],
    807     [42192, 42239], [42656, 42743], [43056, 43065], [43232, 43259],
    808     [43360, 43388], [43392, 43469], [43471, 43481], [43486, 43487],
    809     [43616, 43643], [43648, 43714], [43739, 43743], [43968, 44013],
    810     [44016, 44025], [55216, 55238], [55243, 55291], [64107, 64109],
    811     [67648, 67669], [67671, 67679], [67866, 67867], [68192, 68223],
    812     [68352, 68405], [68409, 68437], [68440, 68466], [68472, 68479],
    813     [68608, 68680], [69216, 69246], [69760, 69825], [77824, 78894],
    814     [127232, 127242], [127248, 127278], [127281, 127281], [127293, 127293],
    815     [127295, 127295], [127298, 127298], [127302, 127302], [127306, 127310],
    816     [127319, 127319], [127327, 127327], [127353, 127353], [127355, 127356],
    817     [127359, 127359], [127370, 127373], [127376, 127376], [127488, 127488],
    818     [127504, 127537], [127552, 127560], [173824, 177972]**/
     787    [0524, 0525], [0800, 082d], [0830, 083e], [0900, 0900], [094e, 094e],
     788    [0955, 0955], [0979, 097a], [09fb, 09fb], [0fd5, 0fd8], [109a, 109d],
     789    [115a, 115e], [11a3, 11a7], [11fa, 11ff], [1400, 1400], [1677, 167f],
     790    [18b0, 18f5], [19aa, 19ab], [19da, 19da], [1a20, 1a5e], [1a60, 1a7c],
     791    [1a7f, 1a89], [1a90, 1a99], [1aa0, 1aad], [1cd0, 1cf2], [1dfd, 1dfd],
     792    [20b6, 20b8], [2150, 2152], [2189, 2189], [23e8, 23e8], [269e, 269f],
     793    [26bd, 26bf], [26c4, 26cd], [26cf, 26e1], [26e3, 26e3], [26e8, 26ff],
     794    [2757, 2757], [2b55, 2b59], [2c70, 2c70], [2c7e, 2c7f], [2ceb, 2cf1],
     795    [2e31, 2e31], [3244, 324f], [9fc4, 9fcb], [a4d0, a4ff], [a6a0, a6f7],
     796    [a830, a839], [a8e0, a8fb], [a960, a97c], [a980, a9cd], [a9cf, a9d9],
     797    [a9de, a9df], [aa60, aa7b], [aa80, aac2], [aadb, aadf], [abc0, abed],
     798    [abf0, abf9], [d7b0, d7c6], [d7cb, d7fb], [fa6b, fa6d], [10840, 10855],
     799    [10857, 1085f], [1091a, 1091b], [10a60, 10a7f], [10b00, 10b35],
     800    [10b39, 10b55], [10b58, 10b72], [10b78, 10b7f], [10c00, 10c48],
     801    [10e60, 10e7e], [11080, 110c1], [13000, 1342e], [1f100, 1f10a],
     802    [1f110, 1f12e], [1f131, 1f131], [1f13d, 1f13d], [1f13f, 1f13f],
     803    [1f142, 1f142], [1f146, 1f146], [1f14a, 1f14e], [1f157, 1f157],
     804    [1f15f, 1f15f], [1f179, 1f179], [1f17b, 1f17c], [1f17f, 1f17f],
     805    [1f18a, 1f18d], [1f190, 1f190], [1f200, 1f200], [1f210, 1f231],
     806    [1f240, 1f248], [2a700, 2b734]**/
    819807    const UnicodeSet v5_2_Set
    820808        {{{Empty, 41}, {Mixed, 1}, {Empty, 22}, {Full, 1}, {Mixed, 1},
     
    857845          0x00013c00, 0xffff0001, 0x0003ffff, 0x000001ff, 0x001fffff}};
    858846    /** Code Point Ranges for V6_0
    859     [1318, 1319], [1568, 1568], [1631, 1631], [2112, 2139], [2142, 2142],
    860     [2362, 2363], [2383, 2383], [2390, 2391], [2419, 2423], [2930, 2935],
    861     [3369, 3369], [3386, 3386], [3406, 3406], [3980, 3983], [4057, 4058],
    862     [4957, 4958], [7104, 7155], [7164, 7167], [7676, 7676], [8341, 8348],
    863     [8377, 8377], [9193, 9203], [9934, 9934], [9954, 9954], [9956, 9959],
    864     [9989, 9989], [9994, 9995], [10024, 10024], [10060, 10060],
    865     [10062, 10062], [10067, 10069], [10079, 10080], [10133, 10135],
    866     [10160, 10160], [10175, 10175], [10190, 10191], [11632, 11632],
    867     [11647, 11647], [12728, 12730], [42592, 42593], [42893, 42894],
    868     [42896, 42897], [42912, 42921], [43002, 43002], [43777, 43782],
    869     [43785, 43790], [43793, 43798], [43808, 43814], [43816, 43822],
    870     [64434, 64449], [69632, 69709], [69714, 69743], [92160, 92728],
    871     [110592, 110593], [127136, 127150], [127153, 127166], [127169, 127183],
    872     [127185, 127199], [127280, 127280], [127282, 127292], [127294, 127294],
    873     [127296, 127297], [127299, 127301], [127303, 127305], [127311, 127318],
    874     [127320, 127326], [127328, 127337], [127344, 127352], [127354, 127354],
    875     [127357, 127358], [127360, 127369], [127374, 127375], [127377, 127386],
    876     [127462, 127487], [127489, 127490], [127538, 127546], [127568, 127569],
    877     [127744, 127776], [127792, 127797], [127799, 127868], [127872, 127891],
    878     [127904, 127940], [127942, 127946], [127968, 127984], [128000, 128062],
    879     [128064, 128064], [128066, 128247], [128249, 128252], [128256, 128317],
    880     [128336, 128359], [128507, 128511], [128513, 128528], [128530, 128532],
    881     [128534, 128534], [128536, 128536], [128538, 128538], [128540, 128542],
    882     [128544, 128549], [128552, 128555], [128557, 128557], [128560, 128563],
    883     [128565, 128576], [128581, 128591], [128640, 128709], [128768, 128883],
    884     [177984, 178205]**/
     847    [0526, 0527], [0620, 0620], [065f, 065f], [0840, 085b], [085e, 085e],
     848    [093a, 093b], [094f, 094f], [0956, 0957], [0973, 0977], [0b72, 0b77],
     849    [0d29, 0d29], [0d3a, 0d3a], [0d4e, 0d4e], [0f8c, 0f8f], [0fd9, 0fda],
     850    [135d, 135e], [1bc0, 1bf3], [1bfc, 1bff], [1dfc, 1dfc], [2095, 209c],
     851    [20b9, 20b9], [23e9, 23f3], [26ce, 26ce], [26e2, 26e2], [26e4, 26e7],
     852    [2705, 2705], [270a, 270b], [2728, 2728], [274c, 274c], [274e, 274e],
     853    [2753, 2755], [275f, 2760], [2795, 2797], [27b0, 27b0], [27bf, 27bf],
     854    [27ce, 27cf], [2d70, 2d70], [2d7f, 2d7f], [31b8, 31ba], [a660, a661],
     855    [a78d, a78e], [a790, a791], [a7a0, a7a9], [a7fa, a7fa], [ab01, ab06],
     856    [ab09, ab0e], [ab11, ab16], [ab20, ab26], [ab28, ab2e], [fbb2, fbc1],
     857    [11000, 1104d], [11052, 1106f], [16800, 16a38], [1b000, 1b001],
     858    [1f0a0, 1f0ae], [1f0b1, 1f0be], [1f0c1, 1f0cf], [1f0d1, 1f0df],
     859    [1f130, 1f130], [1f132, 1f13c], [1f13e, 1f13e], [1f140, 1f141],
     860    [1f143, 1f145], [1f147, 1f149], [1f14f, 1f156], [1f158, 1f15e],
     861    [1f160, 1f169], [1f170, 1f178], [1f17a, 1f17a], [1f17d, 1f17e],
     862    [1f180, 1f189], [1f18e, 1f18f], [1f191, 1f19a], [1f1e6, 1f1ff],
     863    [1f201, 1f202], [1f232, 1f23a], [1f250, 1f251], [1f300, 1f320],
     864    [1f330, 1f335], [1f337, 1f37c], [1f380, 1f393], [1f3a0, 1f3c4],
     865    [1f3c6, 1f3ca], [1f3e0, 1f3f0], [1f400, 1f43e], [1f440, 1f440],
     866    [1f442, 1f4f7], [1f4f9, 1f4fc], [1f500, 1f53d], [1f550, 1f567],
     867    [1f5fb, 1f5ff], [1f601, 1f610], [1f612, 1f614], [1f616, 1f616],
     868    [1f618, 1f618], [1f61a, 1f61a], [1f61c, 1f61e], [1f620, 1f625],
     869    [1f628, 1f62b], [1f62d, 1f62d], [1f630, 1f633], [1f635, 1f640],
     870    [1f645, 1f64f], [1f680, 1f6c5], [1f700, 1f773], [2b740, 2b81d]**/
    885871    const UnicodeSet v6_0_Set
    886872        {{{Empty, 41}, {Mixed, 1}, {Empty, 7}, {Mixed, 2}, {Empty, 15},
     
    916902          0x0000ffe1, 0x0000003f, 0x000fffff, 0x3fffffff}};
    917903    /** Code Point Ranges for V6_1
    918     [1423, 1423], [1540, 1540], [2208, 2208], [2210, 2220], [2276, 2302],
    919     [2800, 2800], [3806, 3807], [4295, 4295], [4301, 4301], [4349, 4351],
    920     [7083, 7085], [7098, 7103], [7360, 7367], [7411, 7414], [10187, 10187],
    921     [10189, 10189], [11506, 11507], [11559, 11559], [11565, 11565],
    922     [11622, 11623], [11826, 11835], [40908, 40908], [42612, 42619],
    923     [42655, 42655], [42898, 42899], [42922, 42922], [43000, 43001],
    924     [43744, 43766], [64046, 64047], [67968, 68023], [68030, 68031],
    925     [69840, 69864], [69872, 69881], [69888, 69940], [69942, 69955],
    926     [70016, 70088], [70096, 70105], [71296, 71351], [71360, 71369],
    927     [93952, 94020], [94032, 94078], [94095, 94111], [126464, 126467],
    928     [126469, 126495], [126497, 126498], [126500, 126500], [126503, 126503],
    929     [126505, 126514], [126516, 126519], [126521, 126521], [126523, 126523],
    930     [126530, 126530], [126535, 126535], [126537, 126537], [126539, 126539],
    931     [126541, 126543], [126545, 126546], [126548, 126548], [126551, 126551],
    932     [126553, 126553], [126555, 126555], [126557, 126557], [126559, 126559],
    933     [126561, 126562], [126564, 126564], [126567, 126570], [126572, 126578],
    934     [126580, 126583], [126585, 126588], [126590, 126590], [126592, 126601],
    935     [126603, 126619], [126625, 126627], [126629, 126633], [126635, 126651],
    936     [126704, 126705], [127338, 127339], [128320, 128323], [128512, 128512],
    937     [128529, 128529], [128533, 128533], [128535, 128535], [128537, 128537],
    938     [128539, 128539], [128543, 128543], [128550, 128551], [128556, 128556],
    939     [128558, 128559], [128564, 128564]**/
     904    [058f, 058f], [0604, 0604], [08a0, 08a0], [08a2, 08ac], [08e4, 08fe],
     905    [0af0, 0af0], [0ede, 0edf], [10c7, 10c7], [10cd, 10cd], [10fd, 10ff],
     906    [1bab, 1bad], [1bba, 1bbf], [1cc0, 1cc7], [1cf3, 1cf6], [27cb, 27cb],
     907    [27cd, 27cd], [2cf2, 2cf3], [2d27, 2d27], [2d2d, 2d2d], [2d66, 2d67],
     908    [2e32, 2e3b], [9fcc, 9fcc], [a674, a67b], [a69f, a69f], [a792, a793],
     909    [a7aa, a7aa], [a7f8, a7f9], [aae0, aaf6], [fa2e, fa2f], [10980, 109b7],
     910    [109be, 109bf], [110d0, 110e8], [110f0, 110f9], [11100, 11134],
     911    [11136, 11143], [11180, 111c8], [111d0, 111d9], [11680, 116b7],
     912    [116c0, 116c9], [16f00, 16f44], [16f50, 16f7e], [16f8f, 16f9f],
     913    [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
     914    [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
     915    [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
     916    [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
     917    [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
     918    [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
     919    [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
     920    [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
     921    [1eeab, 1eebb], [1eef0, 1eef1], [1f16a, 1f16b], [1f540, 1f543],
     922    [1f600, 1f600], [1f611, 1f611], [1f615, 1f615], [1f617, 1f617],
     923    [1f619, 1f619], [1f61b, 1f61b], [1f61f, 1f61f], [1f626, 1f627],
     924    [1f62c, 1f62c], [1f62e, 1f62f], [1f634, 1f634]**/
    940925    const UnicodeSet v6_1_Set
    941926        {{{Empty, 44}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 20},
     
    964949          0x0010d0c0}};
    965950    /** Code Point Ranges for V6_2
    966     [8378, 8378]**/
     951    [20ba, 20ba]**/
    967952    const UnicodeSet v6_2_Set
    968953        {{{Empty, 261}, {Mixed, 1}, {Empty, 34554}},
    969954         {0x04000000}};
    970955    /** Code Point Ranges for V6_3
    971     [1564, 1564], [8294, 8297]**/
     956    [061c, 061c], [2066, 2069]**/
    972957    const UnicodeSet v6_3_Set
    973958        {{{Empty, 48}, {Mixed, 1}, {Empty, 210}, {Mixed, 1}, {Empty, 34556}},
    974959         {0x10000000, 0x000003c0}};
    975960    /** Code Point Ranges for V7_0
    976     [895, 895], [1320, 1327], [1421, 1422], [1541, 1541], [2209, 2209],
    977     [2221, 2226], [2303, 2303], [2424, 2424], [2432, 2432], [3072, 3072],
    978     [3124, 3124], [3201, 3201], [3329, 3329], [3558, 3567], [5873, 5880],
    979     [6429, 6430], [6832, 6846], [7416, 7417], [7655, 7669], [8379, 8381],
    980     [9204, 9210], [9984, 9984], [11085, 11087], [11098, 11123],
    981     [11126, 11157], [11160, 11193], [11197, 11208], [11210, 11217],
    982     [11836, 11842], [42648, 42653], [42900, 42911], [42923, 42925],
    983     [42928, 42929], [42999, 42999], [43488, 43518], [43644, 43647],
    984     [43824, 43871], [43876, 43877], [65063, 65069], [65931, 65932],
    985     [65952, 65952], [66272, 66299], [66335, 66335], [66384, 66426],
    986     [66816, 66855], [66864, 66915], [66927, 66927], [67072, 67382],
    987     [67392, 67413], [67424, 67431], [67680, 67742], [67751, 67759],
    988     [68224, 68255], [68288, 68326], [68331, 68342], [68480, 68497],
    989     [68505, 68508], [68521, 68527], [69759, 69759], [69968, 70006],
    990     [70093, 70093], [70106, 70106], [70113, 70132], [70144, 70161],
    991     [70163, 70205], [70320, 70378], [70384, 70393], [70401, 70403],
    992     [70405, 70412], [70415, 70416], [70419, 70440], [70442, 70448],
    993     [70450, 70451], [70453, 70457], [70460, 70468], [70471, 70472],
    994     [70475, 70477], [70487, 70487], [70493, 70499], [70502, 70508],
    995     [70512, 70516], [70784, 70855], [70864, 70873], [71040, 71093],
    996     [71096, 71113], [71168, 71236], [71248, 71257], [71840, 71922],
    997     [71935, 71935], [72384, 72440], [74607, 74648], [74851, 74862],
    998     [74868, 74868], [92736, 92766], [92768, 92777], [92782, 92783],
    999     [92880, 92909], [92912, 92917], [92928, 92997], [93008, 93017],
    1000     [93019, 93025], [93027, 93047], [93053, 93071], [113664, 113770],
    1001     [113776, 113788], [113792, 113800], [113808, 113817], [113820, 113827],
    1002     [124928, 125124], [125127, 125142], [127167, 127167], [127200, 127221],
    1003     [127243, 127244], [127777, 127788], [127798, 127798], [127869, 127869],
    1004     [127892, 127903], [127941, 127941], [127947, 127950], [127956, 127967],
    1005     [127985, 127991], [128063, 128063], [128065, 128065], [128248, 128248],
    1006     [128253, 128254], [128318, 128319], [128324, 128330], [128360, 128377],
    1007     [128379, 128419], [128421, 128506], [128577, 128578], [128592, 128639],
    1008     [128710, 128719], [128736, 128748], [128752, 128755], [128896, 128980],
    1009     [129024, 129035], [129040, 129095], [129104, 129113], [129120, 129159],
    1010     [129168, 129197]**/
     961    [037f, 037f], [0528, 052f], [058d, 058e], [0605, 0605], [08a1, 08a1],
     962    [08ad, 08b2], [08ff, 08ff], [0978, 0978], [0980, 0980], [0c00, 0c00],
     963    [0c34, 0c34], [0c81, 0c81], [0d01, 0d01], [0de6, 0def], [16f1, 16f8],
     964    [191d, 191e], [1ab0, 1abe], [1cf8, 1cf9], [1de7, 1df5], [20bb, 20bd],
     965    [23f4, 23fa], [2700, 2700], [2b4d, 2b4f], [2b5a, 2b73], [2b76, 2b95],
     966    [2b98, 2bb9], [2bbd, 2bc8], [2bca, 2bd1], [2e3c, 2e42], [a698, a69d],
     967    [a794, a79f], [a7ab, a7ad], [a7b0, a7b1], [a7f7, a7f7], [a9e0, a9fe],
     968    [aa7c, aa7f], [ab30, ab5f], [ab64, ab65], [fe27, fe2d], [1018b, 1018c],
     969    [101a0, 101a0], [102e0, 102fb], [1031f, 1031f], [10350, 1037a],
     970    [10500, 10527], [10530, 10563], [1056f, 1056f], [10600, 10736],
     971    [10740, 10755], [10760, 10767], [10860, 1089e], [108a7, 108af],
     972    [10a80, 10a9f], [10ac0, 10ae6], [10aeb, 10af6], [10b80, 10b91],
     973    [10b99, 10b9c], [10ba9, 10baf], [1107f, 1107f], [11150, 11176],
     974    [111cd, 111cd], [111da, 111da], [111e1, 111f4], [11200, 11211],
     975    [11213, 1123d], [112b0, 112ea], [112f0, 112f9], [11301, 11303],
     976    [11305, 1130c], [1130f, 11310], [11313, 11328], [1132a, 11330],
     977    [11332, 11333], [11335, 11339], [1133c, 11344], [11347, 11348],
     978    [1134b, 1134d], [11357, 11357], [1135d, 11363], [11366, 1136c],
     979    [11370, 11374], [11480, 114c7], [114d0, 114d9], [11580, 115b5],
     980    [115b8, 115c9], [11600, 11644], [11650, 11659], [118a0, 118f2],
     981    [118ff, 118ff], [11ac0, 11af8], [1236f, 12398], [12463, 1246e],
     982    [12474, 12474], [16a40, 16a5e], [16a60, 16a69], [16a6e, 16a6f],
     983    [16ad0, 16aed], [16af0, 16af5], [16b00, 16b45], [16b50, 16b59],
     984    [16b5b, 16b61], [16b63, 16b77], [16b7d, 16b8f], [1bc00, 1bc6a],
     985    [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99], [1bc9c, 1bca3],
     986    [1e800, 1e8c4], [1e8c7, 1e8d6], [1f0bf, 1f0bf], [1f0e0, 1f0f5],
     987    [1f10b, 1f10c], [1f321, 1f32c], [1f336, 1f336], [1f37d, 1f37d],
     988    [1f394, 1f39f], [1f3c5, 1f3c5], [1f3cb, 1f3ce], [1f3d4, 1f3df],
     989    [1f3f1, 1f3f7], [1f43f, 1f43f], [1f441, 1f441], [1f4f8, 1f4f8],
     990    [1f4fd, 1f4fe], [1f53e, 1f53f], [1f544, 1f54a], [1f568, 1f579],
     991    [1f57b, 1f5a3], [1f5a5, 1f5fa], [1f641, 1f642], [1f650, 1f67f],
     992    [1f6c6, 1f6cf], [1f6e0, 1f6ec], [1f6f0, 1f6f3], [1f780, 1f7d4],
     993    [1f800, 1f80b], [1f810, 1f847], [1f850, 1f859], [1f860, 1f887],
     994    [1f890, 1f8ad]**/
    1011995    const UnicodeSet v7_0_Set
    1012996        {{{Empty, 27}, {Mixed, 1}, {Empty, 13}, {Mixed, 1}, {Empty, 2},
     
    10651049          0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff}};
    10661050    /** Code Point Ranges for V8_0
    1067     [2227, 2228], [2275, 2275], [2809, 2809], [3162, 3162], [3423, 3423],
    1068     [5109, 5109], [5112, 5117], [8382, 8382], [8586, 8587], [11244, 11247],
    1069     [40909, 40917], [42654, 42654], [42895, 42895], [42930, 42935],
    1070     [43260, 43261], [43872, 43875], [43888, 43967], [65070, 65071],
    1071     [67808, 67826], [67828, 67829], [67835, 67839], [68028, 68029],
    1072     [68032, 68047], [68050, 68095], [68736, 68786], [68800, 68850],
    1073     [68858, 68863], [70089, 70092], [70107, 70111], [70272, 70278],
    1074     [70280, 70280], [70282, 70285], [70287, 70301], [70303, 70313],
    1075     [70400, 70400], [70480, 70480], [71114, 71133], [71424, 71449],
    1076     [71453, 71467], [71472, 71487], [74649, 74649], [74880, 75075],
    1077     [82944, 83526], [119262, 119272], [120832, 121483], [121499, 121503],
    1078     [121505, 121519], [127789, 127791], [127870, 127871], [127951, 127955],
    1079     [127992, 127999], [128255, 128255], [128331, 128335], [128579, 128580],
    1080     [128720, 128720], [129296, 129304], [129408, 129412], [129472, 129472],
    1081     [178208, 183969]**/
     1051    [08b3, 08b4], [08e3, 08e3], [0af9, 0af9], [0c5a, 0c5a], [0d5f, 0d5f],
     1052    [13f5, 13f5], [13f8, 13fd], [20be, 20be], [218a, 218b], [2bec, 2bef],
     1053    [9fcd, 9fd5], [a69e, a69e], [a78f, a78f], [a7b2, a7b7], [a8fc, a8fd],
     1054    [ab60, ab63], [ab70, abbf], [fe2e, fe2f], [108e0, 108f2],
     1055    [108f4, 108f5], [108fb, 108ff], [109bc, 109bd], [109c0, 109cf],
     1056    [109d2, 109ff], [10c80, 10cb2], [10cc0, 10cf2], [10cfa, 10cff],
     1057    [111c9, 111cc], [111db, 111df], [11280, 11286], [11288, 11288],
     1058    [1128a, 1128d], [1128f, 1129d], [1129f, 112a9], [11300, 11300],
     1059    [11350, 11350], [115ca, 115dd], [11700, 11719], [1171d, 1172b],
     1060    [11730, 1173f], [12399, 12399], [12480, 12543], [14400, 14646],
     1061    [1d1de, 1d1e8], [1d800, 1da8b], [1da9b, 1da9f], [1daa1, 1daaf],
     1062    [1f32d, 1f32f], [1f37e, 1f37f], [1f3cf, 1f3d3], [1f3f8, 1f3ff],
     1063    [1f4ff, 1f4ff], [1f54b, 1f54f], [1f643, 1f644], [1f6d0, 1f6d0],
     1064    [1f910, 1f918], [1f980, 1f984], [1f9c0, 1f9c0], [2b820, 2cea1]**/
    10821065    const UnicodeSet v8_0_Set
    10831066        {{{Empty, 69}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
     
    11111094          0x0000001f, 0x00000001, 0x00000003}};
    11121095    /** Code Point Ranges for V9_0
    1113     [2230, 2237], [2260, 2274], [3200, 3200], [3407, 3407], [3412, 3414],
    1114     [3416, 3422], [3446, 3448], [7296, 7304], [7675, 7675], [9211, 9214],
    1115     [11843, 11844], [42926, 42926], [43205, 43205], [65933, 65934],
    1116     [66736, 66771], [66776, 66811], [70206, 70206], [70656, 70745],
    1117     [70747, 70747], [70749, 70749], [71264, 71276], [72704, 72712],
    1118     [72714, 72758], [72760, 72773], [72784, 72812], [72816, 72847],
    1119     [72850, 72871], [72873, 72886], [94176, 94176], [94208, 100332],
    1120     [100352, 101106], [122880, 122886], [122888, 122904], [122907, 122913],
    1121     [122915, 122916], [122918, 122922], [125184, 125258], [125264, 125273],
    1122     [125278, 125279], [127387, 127404], [127547, 127547], [128378, 128378],
    1123     [128420, 128420], [128721, 128722], [128756, 128758], [129305, 129310],
    1124     [129312, 129319], [129328, 129328], [129331, 129342], [129344, 129355],
    1125     [129360, 129374], [129413, 129425]**/
     1096    [08b6, 08bd], [08d4, 08e2], [0c80, 0c80], [0d4f, 0d4f], [0d54, 0d56],
     1097    [0d58, 0d5e], [0d76, 0d78], [1c80, 1c88], [1dfb, 1dfb], [23fb, 23fe],
     1098    [2e43, 2e44], [a7ae, a7ae], [a8c5, a8c5], [1018d, 1018e],
     1099    [104b0, 104d3], [104d8, 104fb], [1123e, 1123e], [11400, 11459],
     1100    [1145b, 1145b], [1145d, 1145d], [11660, 1166c], [11c00, 11c08],
     1101    [11c0a, 11c36], [11c38, 11c45], [11c50, 11c6c], [11c70, 11c8f],
     1102    [11c92, 11ca7], [11ca9, 11cb6], [16fe0, 16fe0], [17000, 187ec],
     1103    [18800, 18af2], [1e000, 1e006], [1e008, 1e018], [1e01b, 1e021],
     1104    [1e023, 1e024], [1e026, 1e02a], [1e900, 1e94a], [1e950, 1e959],
     1105    [1e95e, 1e95f], [1f19b, 1f1ac], [1f23b, 1f23b], [1f57a, 1f57a],
     1106    [1f5a4, 1f5a4], [1f6d1, 1f6d2], [1f6f4, 1f6f6], [1f919, 1f91e],
     1107    [1f920, 1f927], [1f930, 1f930], [1f933, 1f93e], [1f940, 1f94b],
     1108    [1f950, 1f95e], [1f985, 1f991]**/
    11261109    const UnicodeSet v9_0_Set
    11271110        {{{Empty, 69}, {Mixed, 3}, {Empty, 28}, {Mixed, 1}, {Empty, 5},
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBidiClass.h

    r5159 r5656  
    22#define DERIVEDBIDICLASS_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1717    const unsigned independent_prop_values = 23;
    1818    /** Code Point Ranges for L
    19     [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
    20     [216, 246], [248, 696], [699, 705], [720, 721], [736, 740], [750, 750],
    21     [880, 883], [886, 893], [895, 899], [902, 902], [904, 1013],
    22     [1015, 1154], [1162, 1417], [1419, 1420], [2307, 2361], [2363, 2363],
    23     [2365, 2368], [2377, 2380], [2382, 2384], [2392, 2401], [2404, 2432],
    24     [2434, 2491], [2493, 2496], [2501, 2508], [2510, 2529], [2532, 2545],
    25     [2548, 2554], [2556, 2560], [2563, 2619], [2621, 2624], [2627, 2630],
    26     [2633, 2634], [2638, 2640], [2642, 2671], [2674, 2676], [2678, 2688],
    27     [2691, 2747], [2749, 2752], [2758, 2758], [2761, 2764], [2766, 2785],
    28     [2788, 2800], [2802, 2816], [2818, 2875], [2877, 2878], [2880, 2880],
    29     [2885, 2892], [2894, 2901], [2903, 2913], [2916, 2945], [2947, 3007],
    30     [3009, 3020], [3022, 3058], [3067, 3071], [3073, 3133], [3137, 3141],
    31     [3145, 3145], [3150, 3156], [3159, 3169], [3172, 3191], [3199, 3200],
    32     [3202, 3259], [3261, 3275], [3278, 3297], [3300, 3328], [3330, 3392],
    33     [3397, 3404], [3406, 3425], [3428, 3529], [3531, 3537], [3541, 3541],
    34     [3543, 3632], [3634, 3635], [3643, 3646], [3648, 3654], [3663, 3760],
    35     [3762, 3763], [3770, 3770], [3773, 3783], [3790, 3863], [3866, 3892],
    36     [3894, 3894], [3896, 3896], [3902, 3952], [3967, 3967], [3973, 3973],
    37     [3976, 3980], [3992, 3992], [4029, 4037], [4039, 4140], [4145, 4145],
    38     [4152, 4152], [4155, 4156], [4159, 4183], [4186, 4189], [4193, 4208],
    39     [4213, 4225], [4227, 4228], [4231, 4236], [4238, 4252], [4254, 4956],
    40     [4960, 5007], [5018, 5119], [5121, 5759], [5761, 5786], [5789, 5905],
    41     [5909, 5937], [5941, 5969], [5972, 6001], [6004, 6067], [6070, 6070],
    42     [6078, 6085], [6087, 6088], [6100, 6106], [6108, 6108], [6110, 6127],
    43     [6138, 6143], [6159, 6276], [6279, 6312], [6314, 6431], [6435, 6438],
    44     [6441, 6449], [6451, 6456], [6460, 6463], [6465, 6467], [6470, 6621],
    45     [6656, 6678], [6681, 6682], [6684, 6741], [6743, 6743], [6751, 6751],
    46     [6753, 6753], [6755, 6756], [6765, 6770], [6781, 6782], [6784, 6831],
    47     [6847, 6911], [6916, 6963], [6965, 6965], [6971, 6971], [6973, 6977],
    48     [6979, 7018], [7028, 7039], [7042, 7073], [7078, 7079], [7082, 7082],
    49     [7086, 7141], [7143, 7143], [7146, 7148], [7150, 7150], [7154, 7211],
    50     [7220, 7221], [7224, 7375], [7379, 7379], [7393, 7393], [7401, 7404],
    51     [7406, 7411], [7413, 7415], [7418, 7615], [7670, 7674], [7680, 8124],
    52     [8126, 8126], [8130, 8140], [8144, 8156], [8160, 8172], [8176, 8188],
    53     [8191, 8191], [8206, 8206], [8305, 8307], [8319, 8319], [8335, 8351],
    54     [8433, 8447], [8450, 8450], [8455, 8455], [8458, 8467], [8469, 8469],
    55     [8473, 8477], [8484, 8484], [8486, 8486], [8488, 8488], [8490, 8493],
    56     [8495, 8505], [8508, 8511], [8517, 8521], [8526, 8527], [8544, 8584],
    57     [8588, 8591], [9014, 9082], [9109, 9109], [9215, 9215], [9255, 9279],
    58     [9291, 9311], [9372, 9449], [9900, 9900], [10240, 10495],
    59     [11124, 11125], [11158, 11159], [11194, 11196], [11209, 11209],
    60     [11218, 11243], [11248, 11492], [11499, 11502], [11506, 11512],
    61     [11520, 11646], [11648, 11743], [11845, 11903], [11930, 11930],
    62     [12020, 12031], [12246, 12271], [12284, 12287], [12293, 12295],
    63     [12321, 12329], [12334, 12335], [12337, 12341], [12344, 12348],
    64     [12352, 12440], [12445, 12447], [12449, 12538], [12540, 12735],
    65     [12772, 12828], [12831, 12879], [12896, 12923], [12927, 12976],
    66     [12992, 13003], [13008, 13174], [13179, 13277], [13280, 13310],
    67     [13312, 19903], [19968, 42127], [42183, 42508], [42512, 42606],
    68     [42624, 42653], [42656, 42735], [42738, 42751], [42786, 42887],
    69     [42889, 43009], [43011, 43013], [43015, 43018], [43020, 43044],
    70     [43047, 43047], [43052, 43063], [43066, 43123], [43128, 43203],
    71     [43206, 43231], [43250, 43301], [43310, 43334], [43346, 43391],
    72     [43395, 43442], [43444, 43445], [43450, 43451], [43453, 43492],
    73     [43494, 43560], [43567, 43568], [43571, 43572], [43575, 43586],
    74     [43588, 43595], [43597, 43643], [43645, 43695], [43697, 43697],
    75     [43701, 43702], [43705, 43709], [43712, 43712], [43714, 43755],
    76     [43758, 43765], [43767, 44004], [44006, 44007], [44009, 44012],
    77     [44014, 64284], [65050, 65055], [65107, 65107], [65127, 65127],
    78     [65132, 65135], [65280, 65280], [65313, 65338], [65345, 65370],
    79     [65382, 65503], [65511, 65511], [65519, 65519], [65536, 65792],
    80     [65794, 65855], [65933, 65935], [65948, 65951], [65953, 66044],
    81     [66046, 66271], [66300, 66421], [66427, 67583], [69632, 69632],
    82     [69634, 69687], [69703, 69713], [69734, 69758], [69762, 69810],
    83     [69815, 69816], [69819, 69887], [69891, 69926], [69932, 69932],
    84     [69941, 70002], [70004, 70015], [70018, 70069], [70079, 70089],
    85     [70093, 70190], [70194, 70195], [70197, 70197], [70200, 70205],
    86     [70207, 70366], [70368, 70370], [70379, 70399], [70402, 70459],
    87     [70461, 70463], [70465, 70501], [70509, 70511], [70517, 70711],
    88     [70720, 70721], [70725, 70725], [70727, 70834], [70841, 70841],
    89     [70843, 70846], [70849, 70849], [70852, 71089], [71094, 71099],
    90     [71102, 71102], [71105, 71131], [71134, 71218], [71227, 71228],
    91     [71230, 71230], [71233, 71263], [71277, 71338], [71340, 71340],
    92     [71342, 71343], [71350, 71350], [71352, 71452], [71456, 71457],
    93     [71462, 71462], [71468, 72751], [72759, 72759], [72766, 72849],
    94     [72872, 72873], [72881, 72881], [72884, 72884], [72887, 92911],
    95     [92917, 92975], [92983, 94094], [94099, 113820], [113823, 113823],
    96     [113828, 119142], [119146, 119154], [119171, 119172], [119180, 119209],
    97     [119214, 119295], [119366, 119551], [119639, 120538], [120540, 120596],
    98     [120598, 120654], [120656, 120712], [120714, 120770], [120772, 120781],
    99     [120832, 121343], [121399, 121402], [121453, 121460], [121462, 121475],
    100     [121477, 121498], [121504, 121504], [121520, 122879], [122887, 122887],
    101     [122905, 122906], [122914, 122914], [122917, 122917], [122923, 124927],
    102     [127020, 127023], [127124, 127135], [127151, 127152], [127168, 127168],
    103     [127184, 127184], [127222, 127231], [127245, 127337], [127340, 127743],
    104     [128723, 128735], [128749, 128751], [128759, 128767], [128884, 128895],
    105     [128981, 129023], [129036, 129039], [129096, 129103], [129114, 129119],
    106     [129160, 129167], [129198, 129295], [129311, 129311], [129320, 129327],
    107     [129329, 129330], [129343, 129343], [129356, 129359], [129375, 129407],
    108     [129426, 129471], [129473, 131069], [131072, 196605], [196608, 262141],
    109     [262144, 327677], [327680, 393213], [393216, 458749], [458752, 524285],
    110     [524288, 589821], [589824, 655357], [655360, 720893], [720896, 786429],
    111     [786432, 851965], [851968, 917501], [921600, 983037], [983040, 1048573],
    112     [1048576, 1114109]**/
     19    [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5], [00ba, 00ba],
     20    [00c0, 00d6], [00d8, 00f6], [00f8, 02b8], [02bb, 02c1], [02d0, 02d1],
     21    [02e0, 02e4], [02ee, 02ee], [0370, 0373], [0376, 037d], [037f, 0383],
     22    [0386, 0386], [0388, 03f5], [03f7, 0482], [048a, 0589], [058b, 058c],
     23    [0903, 0939], [093b, 093b], [093d, 0940], [0949, 094c], [094e, 0950],
     24    [0958, 0961], [0964, 0980], [0982, 09bb], [09bd, 09c0], [09c5, 09cc],
     25    [09ce, 09e1], [09e4, 09f1], [09f4, 09fa], [09fc, 0a00], [0a03, 0a3b],
     26    [0a3d, 0a40], [0a43, 0a46], [0a49, 0a4a], [0a4e, 0a50], [0a52, 0a6f],
     27    [0a72, 0a74], [0a76, 0a80], [0a83, 0abb], [0abd, 0ac0], [0ac6, 0ac6],
     28    [0ac9, 0acc], [0ace, 0ae1], [0ae4, 0af0], [0af2, 0b00], [0b02, 0b3b],
     29    [0b3d, 0b3e], [0b40, 0b40], [0b45, 0b4c], [0b4e, 0b55], [0b57, 0b61],
     30    [0b64, 0b81], [0b83, 0bbf], [0bc1, 0bcc], [0bce, 0bf2], [0bfb, 0bff],
     31    [0c01, 0c3d], [0c41, 0c45], [0c49, 0c49], [0c4e, 0c54], [0c57, 0c61],
     32    [0c64, 0c77], [0c7f, 0c80], [0c82, 0cbb], [0cbd, 0ccb], [0cce, 0ce1],
     33    [0ce4, 0d00], [0d02, 0d40], [0d45, 0d4c], [0d4e, 0d61], [0d64, 0dc9],
     34    [0dcb, 0dd1], [0dd5, 0dd5], [0dd7, 0e30], [0e32, 0e33], [0e3b, 0e3e],
     35    [0e40, 0e46], [0e4f, 0eb0], [0eb2, 0eb3], [0eba, 0eba], [0ebd, 0ec7],
     36    [0ece, 0f17], [0f1a, 0f34], [0f36, 0f36], [0f38, 0f38], [0f3e, 0f70],
     37    [0f7f, 0f7f], [0f85, 0f85], [0f88, 0f8c], [0f98, 0f98], [0fbd, 0fc5],
     38    [0fc7, 102c], [1031, 1031], [1038, 1038], [103b, 103c], [103f, 1057],
     39    [105a, 105d], [1061, 1070], [1075, 1081], [1083, 1084], [1087, 108c],
     40    [108e, 109c], [109e, 135c], [1360, 138f], [139a, 13ff], [1401, 167f],
     41    [1681, 169a], [169d, 1711], [1715, 1731], [1735, 1751], [1754, 1771],
     42    [1774, 17b3], [17b6, 17b6], [17be, 17c5], [17c7, 17c8], [17d4, 17da],
     43    [17dc, 17dc], [17de, 17ef], [17fa, 17ff], [180f, 1884], [1887, 18a8],
     44    [18aa, 191f], [1923, 1926], [1929, 1931], [1933, 1938], [193c, 193f],
     45    [1941, 1943], [1946, 19dd], [1a00, 1a16], [1a19, 1a1a], [1a1c, 1a55],
     46    [1a57, 1a57], [1a5f, 1a5f], [1a61, 1a61], [1a63, 1a64], [1a6d, 1a72],
     47    [1a7d, 1a7e], [1a80, 1aaf], [1abf, 1aff], [1b04, 1b33], [1b35, 1b35],
     48    [1b3b, 1b3b], [1b3d, 1b41], [1b43, 1b6a], [1b74, 1b7f], [1b82, 1ba1],
     49    [1ba6, 1ba7], [1baa, 1baa], [1bae, 1be5], [1be7, 1be7], [1bea, 1bec],
     50    [1bee, 1bee], [1bf2, 1c2b], [1c34, 1c35], [1c38, 1ccf], [1cd3, 1cd3],
     51    [1ce1, 1ce1], [1ce9, 1cec], [1cee, 1cf3], [1cf5, 1cf7], [1cfa, 1dbf],
     52    [1df6, 1dfa], [1e00, 1fbc], [1fbe, 1fbe], [1fc2, 1fcc], [1fd0, 1fdc],
     53    [1fe0, 1fec], [1ff0, 1ffc], [1fff, 1fff], [200e, 200e], [2071, 2073],
     54    [207f, 207f], [208f, 209f], [20f1, 20ff], [2102, 2102], [2107, 2107],
     55    [210a, 2113], [2115, 2115], [2119, 211d], [2124, 2124], [2126, 2126],
     56    [2128, 2128], [212a, 212d], [212f, 2139], [213c, 213f], [2145, 2149],
     57    [214e, 214f], [2160, 2188], [218c, 218f], [2336, 237a], [2395, 2395],
     58    [23ff, 23ff], [2427, 243f], [244b, 245f], [249c, 24e9], [26ac, 26ac],
     59    [2800, 28ff], [2b74, 2b75], [2b96, 2b97], [2bba, 2bbc], [2bc9, 2bc9],
     60    [2bd2, 2beb], [2bf0, 2ce4], [2ceb, 2cee], [2cf2, 2cf8], [2d00, 2d7e],
     61    [2d80, 2ddf], [2e45, 2e7f], [2e9a, 2e9a], [2ef4, 2eff], [2fd6, 2fef],
     62    [2ffc, 2fff], [3005, 3007], [3021, 3029], [302e, 302f], [3031, 3035],
     63    [3038, 303c], [3040, 3098], [309d, 309f], [30a1, 30fa], [30fc, 31bf],
     64    [31e4, 321c], [321f, 324f], [3260, 327b], [327f, 32b0], [32c0, 32cb],
     65    [32d0, 3376], [337b, 33dd], [33e0, 33fe], [3400, 4dbf], [4e00, a48f],
     66    [a4c7, a60c], [a610, a66e], [a680, a69d], [a6a0, a6ef], [a6f2, a6ff],
     67    [a722, a787], [a789, a801], [a803, a805], [a807, a80a], [a80c, a824],
     68    [a827, a827], [a82c, a837], [a83a, a873], [a878, a8c3], [a8c6, a8df],
     69    [a8f2, a925], [a92e, a946], [a952, a97f], [a983, a9b2], [a9b4, a9b5],
     70    [a9ba, a9bb], [a9bd, a9e4], [a9e6, aa28], [aa2f, aa30], [aa33, aa34],
     71    [aa37, aa42], [aa44, aa4b], [aa4d, aa7b], [aa7d, aaaf], [aab1, aab1],
     72    [aab5, aab6], [aab9, aabd], [aac0, aac0], [aac2, aaeb], [aaee, aaf5],
     73    [aaf7, abe4], [abe6, abe7], [abe9, abec], [abee, fb1c], [fe1a, fe1f],
     74    [fe53, fe53], [fe67, fe67], [fe6c, fe6f], [ff00, ff00], [ff21, ff3a],
     75    [ff41, ff5a], [ff66, ffdf], [ffe7, ffe7], [ffef, ffef], [10000, 10100],
     76    [10102, 1013f], [1018d, 1018f], [1019c, 1019f], [101a1, 101fc],
     77    [101fe, 102df], [102fc, 10375], [1037b, 107ff], [11000, 11000],
     78    [11002, 11037], [11047, 11051], [11066, 1107e], [11082, 110b2],
     79    [110b7, 110b8], [110bb, 110ff], [11103, 11126], [1112c, 1112c],
     80    [11135, 11172], [11174, 1117f], [11182, 111b5], [111bf, 111c9],
     81    [111cd, 1122e], [11232, 11233], [11235, 11235], [11238, 1123d],
     82    [1123f, 112de], [112e0, 112e2], [112eb, 112ff], [11302, 1133b],
     83    [1133d, 1133f], [11341, 11365], [1136d, 1136f], [11375, 11437],
     84    [11440, 11441], [11445, 11445], [11447, 114b2], [114b9, 114b9],
     85    [114bb, 114be], [114c1, 114c1], [114c4, 115b1], [115b6, 115bb],
     86    [115be, 115be], [115c1, 115db], [115de, 11632], [1163b, 1163c],
     87    [1163e, 1163e], [11641, 1165f], [1166d, 116aa], [116ac, 116ac],
     88    [116ae, 116af], [116b6, 116b6], [116b8, 1171c], [11720, 11721],
     89    [11726, 11726], [1172c, 11c2f], [11c37, 11c37], [11c3e, 11c91],
     90    [11ca8, 11ca9], [11cb1, 11cb1], [11cb4, 11cb4], [11cb7, 16aef],
     91    [16af5, 16b2f], [16b37, 16f8e], [16f93, 1bc9c], [1bc9f, 1bc9f],
     92    [1bca4, 1d166], [1d16a, 1d172], [1d183, 1d184], [1d18c, 1d1a9],
     93    [1d1ae, 1d1ff], [1d246, 1d2ff], [1d357, 1d6da], [1d6dc, 1d714],
     94    [1d716, 1d74e], [1d750, 1d788], [1d78a, 1d7c2], [1d7c4, 1d7cd],
     95    [1d800, 1d9ff], [1da37, 1da3a], [1da6d, 1da74], [1da76, 1da83],
     96    [1da85, 1da9a], [1daa0, 1daa0], [1dab0, 1dfff], [1e007, 1e007],
     97    [1e019, 1e01a], [1e022, 1e022], [1e025, 1e025], [1e02b, 1e7ff],
     98    [1f02c, 1f02f], [1f094, 1f09f], [1f0af, 1f0b0], [1f0c0, 1f0c0],
     99    [1f0d0, 1f0d0], [1f0f6, 1f0ff], [1f10d, 1f169], [1f16c, 1f2ff],
     100    [1f6d3, 1f6df], [1f6ed, 1f6ef], [1f6f7, 1f6ff], [1f774, 1f77f],
     101    [1f7d5, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f], [1f85a, 1f85f],
     102    [1f888, 1f88f], [1f8ae, 1f90f], [1f91f, 1f91f], [1f928, 1f92f],
     103    [1f931, 1f932], [1f93f, 1f93f], [1f94c, 1f94f], [1f95f, 1f97f],
     104    [1f992, 1f9bf], [1f9c1, 1fffd], [20000, 2fffd], [30000, 3fffd],
     105    [40000, 4fffd], [50000, 5fffd], [60000, 6fffd], [70000, 7fffd],
     106    [80000, 8fffd], [90000, 9fffd], [a0000, afffd], [b0000, bfffd],
     107    [c0000, cfffd], [d0000, dfffd], [e1000, efffd], [f0000, ffffd],
     108    [100000, 10fffd]**/
    113109    const UnicodeSet l_Set
    114110        {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 13},
     
    228224          0x3fffffff}};
    229225    /** Code Point Ranges for R
    230     [1424, 1424], [1470, 1470], [1472, 1472], [1475, 1475], [1478, 1478],
    231     [1480, 1535], [1984, 2026], [2036, 2037], [2042, 2069], [2074, 2074],
    232     [2084, 2084], [2088, 2088], [2094, 2136], [2140, 2207], [8207, 8207],
    233     [64285, 64285], [64287, 64296], [64298, 64335], [67584, 67870],
    234     [67872, 68096], [68100, 68100], [68103, 68107], [68112, 68151],
    235     [68155, 68158], [68160, 68324], [68327, 68408], [68416, 69215],
    236     [69247, 69631], [124928, 125135], [125143, 125251], [125259, 126463],
    237     [126720, 126975]**/
     226    [0590, 0590], [05be, 05be], [05c0, 05c0], [05c3, 05c3], [05c6, 05c6],
     227    [05c8, 05ff], [07c0, 07ea], [07f4, 07f5], [07fa, 0815], [081a, 081a],
     228    [0824, 0824], [0828, 0828], [082e, 0858], [085c, 089f], [200f, 200f],
     229    [fb1d, fb1d], [fb1f, fb28], [fb2a, fb4f], [10800, 1091e],
     230    [10920, 10a00], [10a04, 10a04], [10a07, 10a0b], [10a10, 10a37],
     231    [10a3b, 10a3e], [10a40, 10ae4], [10ae7, 10b38], [10b40, 10e5f],
     232    [10e7f, 10fff], [1e800, 1e8cf], [1e8d7, 1e943], [1e94b, 1edff],
     233    [1ef00, 1efff]**/
    238234    const UnicodeSet r_Set
    239235        {{{Empty, 44}, {Mixed, 3}, {Full, 1}, {Empty, 14}, {Full, 1},
     
    249245          0x01ffffff, 0x80000000, 0xff80ffff, 0xfffff80f}};
    250246    /** Code Point Ranges for EN
    251     [48, 57], [178, 179], [185, 185], [1776, 1785], [8304, 8304],
    252     [8308, 8313], [8320, 8329], [9352, 9371], [65296, 65305],
    253     [66273, 66299], [120782, 120831], [127232, 127242]**/
     247    [0030, 0039], [00b2, 00b3], [00b9, 00b9], [06f0, 06f9], [2070, 2070],
     248    [2074, 2079], [2080, 2089], [2488, 249b], [ff10, ff19], [102e1, 102fb],
     249    [1d7ce, 1d7ff], [1f100, 1f10a]**/
    254250    const UnicodeSet en_Set
    255251        {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 49},
     
    260256          0x0fffff00, 0x03ff0000, 0x0ffffffe, 0xffffc000, 0x000007ff}};
    261257    /** Code Point Ranges for ES
    262     [43, 43], [45, 45], [8314, 8315], [8330, 8331], [8722, 8722],
    263     [64297, 64297], [65122, 65123], [65291, 65291], [65293, 65293]**/
     258    [002b, 002b], [002d, 002d], [207a, 207b], [208a, 208b], [2212, 2212],
     259    [fb29, fb29], [fe62, fe63], [ff0b, ff0b], [ff0d, ff0d]**/
    264260    const UnicodeSet es_Set
    265261        {{{Empty, 1}, {Mixed, 1}, {Empty, 257}, {Mixed, 2}, {Empty, 11},
     
    269265          0x0000000c, 0x00002800}};
    270266    /** Code Point Ranges for ET
    271     [35, 37], [162, 165], [176, 177], [1423, 1423], [1545, 1546],
    272     [1642, 1642], [2546, 2547], [2555, 2555], [2801, 2801], [3065, 3065],
    273     [3647, 3647], [6107, 6107], [8240, 8244], [8352, 8399], [8494, 8494],
    274     [8723, 8723], [43064, 43065], [65119, 65119], [65129, 65130],
    275     [65283, 65285], [65504, 65505], [65509, 65510]**/
     267    [0023, 0025], [00a2, 00a5], [00b0, 00b1], [058f, 058f], [0609, 060a],
     268    [066a, 066a], [09f2, 09f3], [09fb, 09fb], [0af1, 0af1], [0bf9, 0bf9],
     269    [0e3f, 0e3f], [17db, 17db], [2030, 2034], [20a0, 20cf], [212e, 212e],
     270    [2213, 2213], [a838, a839], [fe5f, fe5f], [fe69, fe6a], [ff03, ff05],
     271    [ffe0, ffe1], [ffe5, ffe6]**/
    276272    const UnicodeSet et_Set
    277273        {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 38},
     
    288284          0x80000000, 0x00000600, 0x00000038, 0x00000063}};
    289285    /** Code Point Ranges for AN
    290     [1536, 1541], [1632, 1641], [1643, 1644], [1757, 1757], [2274, 2274],
    291     [69216, 69246]**/
     286    [0600, 0605], [0660, 0669], [066b, 066c], [06dd, 06dd], [08e2, 08e2],
     287    [10e60, 10e7e]**/
    292288    const UnicodeSet an_Set
    293289        {{{Empty, 48}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
     
    296292         {0x0000003f, 0x00001bff, 0x20000000, 0x00000004, 0x7fffffff}};
    297293    /** Code Point Ranges for CS
    298     [44, 44], [46, 47], [58, 58], [160, 160], [1548, 1548], [8239, 8239],
    299     [8260, 8260], [65104, 65104], [65106, 65106], [65109, 65109],
    300     [65292, 65292], [65294, 65295], [65306, 65306]**/
     294    [002c, 002c], [002e, 002f], [003a, 003a], [00a0, 00a0], [060c, 060c],
     295    [202f, 202f], [2044, 2044], [fe50, fe50], [fe52, fe52], [fe55, fe55],
     296    [ff0c, ff0c], [ff0e, ff0f], [ff1a, ff1a]**/
    301297    const UnicodeSet cs_Set
    302298        {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 42},
     
    306302          0x00250000, 0x0400d000}};
    307303    /** Code Point Ranges for B
    308     [10, 10], [13, 13], [28, 30], [133, 133], [8233, 8233]**/
     304    [000a, 000a], [000d, 000d], [001c, 001e], [0085, 0085], [2029, 2029]**/
    309305    const UnicodeSet b_Set
    310306        {{{Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 252}, {Mixed, 1},
     
    312308         {0x70002400, 0x00000020, 0x00000200}};
    313309    /** Code Point Ranges for S
    314     [9, 9], [11, 11], [31, 31]**/
     310    [0009, 0009], [000b, 000b], [001f, 001f]**/
    315311    const UnicodeSet s_Set
    316312        {{{Mixed, 1}, {Empty, 34815}},
    317313         {0x80000a00}};
    318314    /** Code Point Ranges for WS
    319     [12, 12], [32, 32], [5760, 5760], [8192, 8202], [8232, 8232],
    320     [8287, 8287], [12288, 12288]**/
     315    [000c, 000c], [0020, 0020], [1680, 1680], [2000, 200a], [2028, 2028],
     316    [205f, 205f], [3000, 3000]**/
    321317    const UnicodeSet ws_Set
    322318        {{{Mixed, 2}, {Empty, 178}, {Mixed, 1}, {Empty, 75}, {Mixed, 3},
     
    325321          0x80000000, 0x00000001}};
    326322    /** Code Point Ranges for ON
    327     [33, 34], [38, 42], [59, 64], [91, 96], [123, 126], [161, 161],
    328     [166, 169], [171, 172], [174, 175], [180, 180], [182, 184], [187, 191],
    329     [215, 215], [247, 247], [697, 698], [706, 719], [722, 735], [741, 749],
    330     [751, 767], [884, 885], [894, 894], [900, 901], [903, 903],
    331     [1014, 1014], [1418, 1418], [1421, 1422], [1542, 1543], [1550, 1551],
    332     [1758, 1758], [1769, 1769], [2038, 2041], [3059, 3064], [3066, 3066],
    333     [3192, 3198], [3898, 3901], [5008, 5017], [5120, 5120], [5787, 5788],
    334     [6128, 6137], [6144, 6154], [6464, 6464], [6468, 6469], [6622, 6655],
    335     [8125, 8125], [8127, 8129], [8141, 8143], [8157, 8159], [8173, 8175],
    336     [8189, 8190], [8208, 8231], [8245, 8259], [8261, 8286], [8316, 8318],
    337     [8332, 8334], [8448, 8449], [8451, 8454], [8456, 8457], [8468, 8468],
    338     [8470, 8472], [8478, 8483], [8485, 8485], [8487, 8487], [8489, 8489],
    339     [8506, 8507], [8512, 8516], [8522, 8525], [8528, 8543], [8585, 8587],
    340     [8592, 8721], [8724, 9013], [9083, 9108], [9110, 9214], [9216, 9254],
    341     [9280, 9290], [9312, 9351], [9450, 9899], [9901, 10239], [10496, 11123],
    342     [11126, 11157], [11160, 11193], [11197, 11208], [11210, 11217],
    343     [11244, 11247], [11493, 11498], [11513, 11519], [11776, 11844],
    344     [11904, 11929], [11931, 12019], [12032, 12245], [12272, 12283],
    345     [12289, 12292], [12296, 12320], [12336, 12336], [12342, 12343],
    346     [12349, 12351], [12443, 12444], [12448, 12448], [12539, 12539],
    347     [12736, 12771], [12829, 12830], [12880, 12895], [12924, 12926],
    348     [12977, 12991], [13004, 13007], [13175, 13178], [13278, 13279],
    349     [13311, 13311], [19904, 19967], [42128, 42182], [42509, 42511],
    350     [42611, 42611], [42622, 42623], [42752, 42785], [42888, 42888],
    351     [43048, 43051], [43124, 43127], [64830, 64831], [65021, 65021],
    352     [65040, 65049], [65072, 65103], [65105, 65105], [65108, 65108],
    353     [65110, 65118], [65120, 65121], [65124, 65126], [65128, 65128],
    354     [65131, 65131], [65281, 65282], [65286, 65290], [65307, 65312],
    355     [65339, 65344], [65371, 65381], [65506, 65508], [65512, 65518],
    356     [65529, 65533], [65793, 65793], [65856, 65932], [65936, 65947],
    357     [65952, 65952], [67871, 67871], [68409, 68415], [69714, 69733],
    358     [71264, 71276], [119296, 119361], [119365, 119365], [119552, 119638],
    359     [120539, 120539], [120597, 120597], [120655, 120655], [120713, 120713],
    360     [120771, 120771], [126704, 126705], [126976, 127019], [127024, 127123],
    361     [127136, 127150], [127153, 127167], [127169, 127183], [127185, 127221],
    362     [127243, 127244], [127338, 127339], [127744, 128722], [128736, 128748],
    363     [128752, 128758], [128768, 128883], [128896, 128980], [129024, 129035],
    364     [129040, 129095], [129104, 129113], [129120, 129159], [129168, 129197],
    365     [129296, 129310], [129312, 129319], [129328, 129328], [129331, 129342],
    366     [129344, 129355], [129360, 129374], [129408, 129425], [129472, 129472]**/
     323    [0021, 0022], [0026, 002a], [003b, 0040], [005b, 0060], [007b, 007e],
     324    [00a1, 00a1], [00a6, 00a9], [00ab, 00ac], [00ae, 00af], [00b4, 00b4],
     325    [00b6, 00b8], [00bb, 00bf], [00d7, 00d7], [00f7, 00f7], [02b9, 02ba],
     326    [02c2, 02cf], [02d2, 02df], [02e5, 02ed], [02ef, 02ff], [0374, 0375],
     327    [037e, 037e], [0384, 0385], [0387, 0387], [03f6, 03f6], [058a, 058a],
     328    [058d, 058e], [0606, 0607], [060e, 060f], [06de, 06de], [06e9, 06e9],
     329    [07f6, 07f9], [0bf3, 0bf8], [0bfa, 0bfa], [0c78, 0c7e], [0f3a, 0f3d],
     330    [1390, 1399], [1400, 1400], [169b, 169c], [17f0, 17f9], [1800, 180a],
     331    [1940, 1940], [1944, 1945], [19de, 19ff], [1fbd, 1fbd], [1fbf, 1fc1],
     332    [1fcd, 1fcf], [1fdd, 1fdf], [1fed, 1fef], [1ffd, 1ffe], [2010, 2027],
     333    [2035, 2043], [2045, 205e], [207c, 207e], [208c, 208e], [2100, 2101],
     334    [2103, 2106], [2108, 2109], [2114, 2114], [2116, 2118], [211e, 2123],
     335    [2125, 2125], [2127, 2127], [2129, 2129], [213a, 213b], [2140, 2144],
     336    [214a, 214d], [2150, 215f], [2189, 218b], [2190, 2211], [2214, 2335],
     337    [237b, 2394], [2396, 23fe], [2400, 2426], [2440, 244a], [2460, 2487],
     338    [24ea, 26ab], [26ad, 27ff], [2900, 2b73], [2b76, 2b95], [2b98, 2bb9],
     339    [2bbd, 2bc8], [2bca, 2bd1], [2bec, 2bef], [2ce5, 2cea], [2cf9, 2cff],
     340    [2e00, 2e44], [2e80, 2e99], [2e9b, 2ef3], [2f00, 2fd5], [2ff0, 2ffb],
     341    [3001, 3004], [3008, 3020], [3030, 3030], [3036, 3037], [303d, 303f],
     342    [309b, 309c], [30a0, 30a0], [30fb, 30fb], [31c0, 31e3], [321d, 321e],
     343    [3250, 325f], [327c, 327e], [32b1, 32bf], [32cc, 32cf], [3377, 337a],
     344    [33de, 33df], [33ff, 33ff], [4dc0, 4dff], [a490, a4c6], [a60d, a60f],
     345    [a673, a673], [a67e, a67f], [a700, a721], [a788, a788], [a828, a82b],
     346    [a874, a877], [fd3e, fd3f], [fdfd, fdfd], [fe10, fe19], [fe30, fe4f],
     347    [fe51, fe51], [fe54, fe54], [fe56, fe5e], [fe60, fe61], [fe64, fe66],
     348    [fe68, fe68], [fe6b, fe6b], [ff01, ff02], [ff06, ff0a], [ff1b, ff20],
     349    [ff3b, ff40], [ff5b, ff65], [ffe2, ffe4], [ffe8, ffee], [fff9, fffd],
     350    [10101, 10101], [10140, 1018c], [10190, 1019b], [101a0, 101a0],
     351    [1091f, 1091f], [10b39, 10b3f], [11052, 11065], [11660, 1166c],
     352    [1d200, 1d241], [1d245, 1d245], [1d300, 1d356], [1d6db, 1d6db],
     353    [1d715, 1d715], [1d74f, 1d74f], [1d789, 1d789], [1d7c3, 1d7c3],
     354    [1eef0, 1eef1], [1f000, 1f02b], [1f030, 1f093], [1f0a0, 1f0ae],
     355    [1f0b1, 1f0bf], [1f0c1, 1f0cf], [1f0d1, 1f0f5], [1f10b, 1f10c],
     356    [1f16a, 1f16b], [1f300, 1f6d2], [1f6e0, 1f6ec], [1f6f0, 1f6f6],
     357    [1f700, 1f773], [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847],
     358    [1f850, 1f859], [1f860, 1f887], [1f890, 1f8ad], [1f910, 1f91e],
     359    [1f920, 1f927], [1f930, 1f930], [1f933, 1f93e], [1f940, 1f94b],
     360    [1f950, 1f95e], [1f980, 1f991], [1f9c0, 1f9c0]**/
    367361    const UnicodeSet on_Set
    368362        {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 13},
     
    428422          0x7ff900ff, 0x7fff0fff, 0x0003ffff, 0x00000001}};
    429423    /** Code Point Ranges for BN
    430     [0, 8], [14, 27], [127, 132], [134, 159], [173, 173], [6158, 6158],
    431     [8203, 8205], [8288, 8293], [8298, 8303], [64976, 65007],
    432     [65279, 65279], [65520, 65528], [65534, 65535], [113824, 113827],
    433     [119155, 119162], [131070, 131071], [196606, 196607], [262142, 262143],
    434     [327678, 327679], [393214, 393215], [458750, 458751], [524286, 524287],
    435     [589822, 589823], [655358, 655359], [720894, 720895], [786430, 786431],
    436     [851966, 851967], [917502, 917759], [918000, 921599], [983038, 983039],
    437     [1048574, 1048575], [1114110, 1114111]**/
     424    [0000, 0008], [000e, 001b], [007f, 0084], [0086, 009f], [00ad, 00ad],
     425    [180e, 180e], [200b, 200d], [2060, 2065], [206a, 206f], [fdd0, fdef],
     426    [feff, feff], [fff0, fff8], [fffe, ffff], [1bca0, 1bca3],
     427    [1d173, 1d17a], [1fffe, 1ffff], [2fffe, 2ffff], [3fffe, 3ffff],
     428    [4fffe, 4ffff], [5fffe, 5ffff], [6fffe, 6ffff], [7fffe, 7ffff],
     429    [8fffe, 8ffff], [9fffe, 9ffff], [afffe, affff], [bfffe, bffff],
     430    [cfffe, cffff], [dfffe, e00ff], [e01f0, e0fff], [efffe, effff],
     431    [ffffe, fffff], [10fffe, 10ffff]**/
    438432    const UnicodeSet bn_Set
    439433        {{{Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 186}, {Mixed, 1},
     
    456450          0xc0000000, 0xffff0000, 0xc0000000, 0xc0000000, 0xc0000000}};
    457451    /** Code Point Ranges for NSM
    458     [768, 879], [1155, 1161], [1425, 1469], [1471, 1471], [1473, 1474],
    459     [1476, 1477], [1479, 1479], [1552, 1562], [1611, 1631], [1648, 1648],
    460     [1750, 1756], [1759, 1764], [1767, 1768], [1770, 1773], [1809, 1809],
    461     [1840, 1866], [1958, 1968], [2027, 2035], [2070, 2073], [2075, 2083],
    462     [2085, 2087], [2089, 2093], [2137, 2139], [2260, 2273], [2275, 2306],
    463     [2362, 2362], [2364, 2364], [2369, 2376], [2381, 2381], [2385, 2391],
    464     [2402, 2403], [2433, 2433], [2492, 2492], [2497, 2500], [2509, 2509],
    465     [2530, 2531], [2561, 2562], [2620, 2620], [2625, 2626], [2631, 2632],
    466     [2635, 2637], [2641, 2641], [2672, 2673], [2677, 2677], [2689, 2690],
    467     [2748, 2748], [2753, 2757], [2759, 2760], [2765, 2765], [2786, 2787],
    468     [2817, 2817], [2876, 2876], [2879, 2879], [2881, 2884], [2893, 2893],
    469     [2902, 2902], [2914, 2915], [2946, 2946], [3008, 3008], [3021, 3021],
    470     [3072, 3072], [3134, 3136], [3142, 3144], [3146, 3149], [3157, 3158],
    471     [3170, 3171], [3201, 3201], [3260, 3260], [3276, 3277], [3298, 3299],
    472     [3329, 3329], [3393, 3396], [3405, 3405], [3426, 3427], [3530, 3530],
    473     [3538, 3540], [3542, 3542], [3633, 3633], [3636, 3642], [3655, 3662],
    474     [3761, 3761], [3764, 3769], [3771, 3772], [3784, 3789], [3864, 3865],
    475     [3893, 3893], [3895, 3895], [3897, 3897], [3953, 3966], [3968, 3972],
    476     [3974, 3975], [3981, 3991], [3993, 4028], [4038, 4038], [4141, 4144],
    477     [4146, 4151], [4153, 4154], [4157, 4158], [4184, 4185], [4190, 4192],
    478     [4209, 4212], [4226, 4226], [4229, 4230], [4237, 4237], [4253, 4253],
    479     [4957, 4959], [5906, 5908], [5938, 5940], [5970, 5971], [6002, 6003],
    480     [6068, 6069], [6071, 6077], [6086, 6086], [6089, 6099], [6109, 6109],
    481     [6155, 6157], [6277, 6278], [6313, 6313], [6432, 6434], [6439, 6440],
    482     [6450, 6450], [6457, 6459], [6679, 6680], [6683, 6683], [6742, 6742],
    483     [6744, 6750], [6752, 6752], [6754, 6754], [6757, 6764], [6771, 6780],
    484     [6783, 6783], [6832, 6846], [6912, 6915], [6964, 6964], [6966, 6970],
    485     [6972, 6972], [6978, 6978], [7019, 7027], [7040, 7041], [7074, 7077],
    486     [7080, 7081], [7083, 7085], [7142, 7142], [7144, 7145], [7149, 7149],
    487     [7151, 7153], [7212, 7219], [7222, 7223], [7376, 7378], [7380, 7392],
    488     [7394, 7400], [7405, 7405], [7412, 7412], [7416, 7417], [7616, 7669],
    489     [7675, 7679], [8400, 8432], [11503, 11505], [11647, 11647],
    490     [11744, 11775], [12330, 12333], [12441, 12442], [42607, 42610],
    491     [42612, 42621], [42654, 42655], [42736, 42737], [43010, 43010],
    492     [43014, 43014], [43019, 43019], [43045, 43046], [43204, 43205],
    493     [43232, 43249], [43302, 43309], [43335, 43345], [43392, 43394],
    494     [43443, 43443], [43446, 43449], [43452, 43452], [43493, 43493],
    495     [43561, 43566], [43569, 43570], [43573, 43574], [43587, 43587],
    496     [43596, 43596], [43644, 43644], [43696, 43696], [43698, 43700],
    497     [43703, 43704], [43710, 43711], [43713, 43713], [43756, 43757],
    498     [43766, 43766], [44005, 44005], [44008, 44008], [44013, 44013],
    499     [64286, 64286], [65024, 65039], [65056, 65071], [66045, 66045],
    500     [66272, 66272], [66422, 66426], [68097, 68099], [68101, 68102],
    501     [68108, 68111], [68152, 68154], [68159, 68159], [68325, 68326],
    502     [69633, 69633], [69688, 69702], [69759, 69761], [69811, 69814],
    503     [69817, 69818], [69888, 69890], [69927, 69931], [69933, 69940],
    504     [70003, 70003], [70016, 70017], [70070, 70078], [70090, 70092],
    505     [70191, 70193], [70196, 70196], [70198, 70199], [70206, 70206],
    506     [70367, 70367], [70371, 70378], [70400, 70401], [70460, 70460],
    507     [70464, 70464], [70502, 70508], [70512, 70516], [70712, 70719],
    508     [70722, 70724], [70726, 70726], [70835, 70840], [70842, 70842],
    509     [70847, 70848], [70850, 70851], [71090, 71093], [71100, 71101],
    510     [71103, 71104], [71132, 71133], [71219, 71226], [71229, 71229],
    511     [71231, 71232], [71339, 71339], [71341, 71341], [71344, 71349],
    512     [71351, 71351], [71453, 71455], [71458, 71461], [71463, 71467],
    513     [72752, 72758], [72760, 72765], [72850, 72871], [72874, 72880],
    514     [72882, 72883], [72885, 72886], [92912, 92916], [92976, 92982],
    515     [94095, 94098], [113821, 113822], [119143, 119145], [119163, 119170],
    516     [119173, 119179], [119210, 119213], [119362, 119364], [121344, 121398],
    517     [121403, 121452], [121461, 121461], [121476, 121476], [121499, 121503],
    518     [121505, 121519], [122880, 122886], [122888, 122904], [122907, 122913],
    519     [122915, 122916], [122918, 122922], [125136, 125142], [125252, 125258],
    520     [917760, 917999]**/
     452    [0300, 036f], [0483, 0489], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
     453    [05c4, 05c5], [05c7, 05c7], [0610, 061a], [064b, 065f], [0670, 0670],
     454    [06d6, 06dc], [06df, 06e4], [06e7, 06e8], [06ea, 06ed], [0711, 0711],
     455    [0730, 074a], [07a6, 07b0], [07eb, 07f3], [0816, 0819], [081b, 0823],
     456    [0825, 0827], [0829, 082d], [0859, 085b], [08d4, 08e1], [08e3, 0902],
     457    [093a, 093a], [093c, 093c], [0941, 0948], [094d, 094d], [0951, 0957],
     458    [0962, 0963], [0981, 0981], [09bc, 09bc], [09c1, 09c4], [09cd, 09cd],
     459    [09e2, 09e3], [0a01, 0a02], [0a3c, 0a3c], [0a41, 0a42], [0a47, 0a48],
     460    [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71], [0a75, 0a75], [0a81, 0a82],
     461    [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8], [0acd, 0acd], [0ae2, 0ae3],
     462    [0b01, 0b01], [0b3c, 0b3c], [0b3f, 0b3f], [0b41, 0b44], [0b4d, 0b4d],
     463    [0b56, 0b56], [0b62, 0b63], [0b82, 0b82], [0bc0, 0bc0], [0bcd, 0bcd],
     464    [0c00, 0c00], [0c3e, 0c40], [0c46, 0c48], [0c4a, 0c4d], [0c55, 0c56],
     465    [0c62, 0c63], [0c81, 0c81], [0cbc, 0cbc], [0ccc, 0ccd], [0ce2, 0ce3],
     466    [0d01, 0d01], [0d41, 0d44], [0d4d, 0d4d], [0d62, 0d63], [0dca, 0dca],
     467    [0dd2, 0dd4], [0dd6, 0dd6], [0e31, 0e31], [0e34, 0e3a], [0e47, 0e4e],
     468    [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc], [0ec8, 0ecd], [0f18, 0f19],
     469    [0f35, 0f35], [0f37, 0f37], [0f39, 0f39], [0f71, 0f7e], [0f80, 0f84],
     470    [0f86, 0f87], [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [102d, 1030],
     471    [1032, 1037], [1039, 103a], [103d, 103e], [1058, 1059], [105e, 1060],
     472    [1071, 1074], [1082, 1082], [1085, 1086], [108d, 108d], [109d, 109d],
     473    [135d, 135f], [1712, 1714], [1732, 1734], [1752, 1753], [1772, 1773],
     474    [17b4, 17b5], [17b7, 17bd], [17c6, 17c6], [17c9, 17d3], [17dd, 17dd],
     475    [180b, 180d], [1885, 1886], [18a9, 18a9], [1920, 1922], [1927, 1928],
     476    [1932, 1932], [1939, 193b], [1a17, 1a18], [1a1b, 1a1b], [1a56, 1a56],
     477    [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62], [1a65, 1a6c], [1a73, 1a7c],
     478    [1a7f, 1a7f], [1ab0, 1abe], [1b00, 1b03], [1b34, 1b34], [1b36, 1b3a],
     479    [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73], [1b80, 1b81], [1ba2, 1ba5],
     480    [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6], [1be8, 1be9], [1bed, 1bed],
     481    [1bef, 1bf1], [1c2c, 1c33], [1c36, 1c37], [1cd0, 1cd2], [1cd4, 1ce0],
     482    [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9], [1dc0, 1df5],
     483    [1dfb, 1dff], [20d0, 20f0], [2cef, 2cf1], [2d7f, 2d7f], [2de0, 2dff],
     484    [302a, 302d], [3099, 309a], [a66f, a672], [a674, a67d], [a69e, a69f],
     485    [a6f0, a6f1], [a802, a802], [a806, a806], [a80b, a80b], [a825, a826],
     486    [a8c4, a8c5], [a8e0, a8f1], [a926, a92d], [a947, a951], [a980, a982],
     487    [a9b3, a9b3], [a9b6, a9b9], [a9bc, a9bc], [a9e5, a9e5], [aa29, aa2e],
     488    [aa31, aa32], [aa35, aa36], [aa43, aa43], [aa4c, aa4c], [aa7c, aa7c],
     489    [aab0, aab0], [aab2, aab4], [aab7, aab8], [aabe, aabf], [aac1, aac1],
     490    [aaec, aaed], [aaf6, aaf6], [abe5, abe5], [abe8, abe8], [abed, abed],
     491    [fb1e, fb1e], [fe00, fe0f], [fe20, fe2f], [101fd, 101fd],
     492    [102e0, 102e0], [10376, 1037a], [10a01, 10a03], [10a05, 10a06],
     493    [10a0c, 10a0f], [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6],
     494    [11001, 11001], [11038, 11046], [1107f, 11081], [110b3, 110b6],
     495    [110b9, 110ba], [11100, 11102], [11127, 1112b], [1112d, 11134],
     496    [11173, 11173], [11180, 11181], [111b6, 111be], [111ca, 111cc],
     497    [1122f, 11231], [11234, 11234], [11236, 11237], [1123e, 1123e],
     498    [112df, 112df], [112e3, 112ea], [11300, 11301], [1133c, 1133c],
     499    [11340, 11340], [11366, 1136c], [11370, 11374], [11438, 1143f],
     500    [11442, 11444], [11446, 11446], [114b3, 114b8], [114ba, 114ba],
     501    [114bf, 114c0], [114c2, 114c3], [115b2, 115b5], [115bc, 115bd],
     502    [115bf, 115c0], [115dc, 115dd], [11633, 1163a], [1163d, 1163d],
     503    [1163f, 11640], [116ab, 116ab], [116ad, 116ad], [116b0, 116b5],
     504    [116b7, 116b7], [1171d, 1171f], [11722, 11725], [11727, 1172b],
     505    [11c30, 11c36], [11c38, 11c3d], [11c92, 11ca7], [11caa, 11cb0],
     506    [11cb2, 11cb3], [11cb5, 11cb6], [16af0, 16af4], [16b30, 16b36],
     507    [16f8f, 16f92], [1bc9d, 1bc9e], [1d167, 1d169], [1d17b, 1d182],
     508    [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244], [1da00, 1da36],
     509    [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84], [1da9b, 1da9f],
     510    [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018], [1e01b, 1e021],
     511    [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6], [1e944, 1e94a],
     512    [e0100, e01ef]**/
    521513    const UnicodeSet nsm_Set
    522514        {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     
    590582          0x007f0000, 0x000007f0, 0x0000ffff}};
    591583    /** Code Point Ranges for AL
    592     [1544, 1544], [1547, 1547], [1549, 1549], [1563, 1610], [1645, 1647],
    593     [1649, 1749], [1765, 1766], [1774, 1775], [1786, 1808], [1810, 1839],
    594     [1867, 1957], [1969, 1983], [2208, 2259], [64336, 64829],
    595     [64832, 64975], [65008, 65020], [65022, 65023], [65136, 65278],
    596     [126464, 126703], [126706, 126719]**/
     584    [0608, 0608], [060b, 060b], [060d, 060d], [061b, 064a], [066d, 066f],
     585    [0671, 06d5], [06e5, 06e6], [06ee, 06ef], [06fa, 0710], [0712, 072f],
     586    [074b, 07a5], [07b1, 07bf], [08a0, 08d3], [fb50, fd3d], [fd40, fdcf],
     587    [fdf0, fdfc], [fdfe, fdff], [fe70, fefe], [1ee00, 1eeef],
     588    [1eef2, 1eeff]**/
    597589    const UnicodeSet al_Set
    598590        {{{Empty, 48}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
     
    606598          0x7fffffff, 0xfffcffff}};
    607599    /** Code Point Ranges for LRO
    608     [8237, 8237]**/
     600    [202d, 202d]**/
    609601    const UnicodeSet lro_Set
    610602        {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    611603         {0x00002000}};
    612604    /** Code Point Ranges for RLO
    613     [8238, 8238]**/
     605    [202e, 202e]**/
    614606    const UnicodeSet rlo_Set
    615607        {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    616608         {0x00004000}};
    617609    /** Code Point Ranges for LRE
    618     [8234, 8234]**/
     610    [202a, 202a]**/
    619611    const UnicodeSet lre_Set
    620612        {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    621613         {0x00000400}};
    622614    /** Code Point Ranges for RLE
    623     [8235, 8235]**/
     615    [202b, 202b]**/
    624616    const UnicodeSet rle_Set
    625617        {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    626618         {0x00000800}};
    627619    /** Code Point Ranges for PDF
    628     [8236, 8236]**/
     620    [202c, 202c]**/
    629621    const UnicodeSet pdf_Set
    630622        {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    631623         {0x00001000}};
    632624    /** Code Point Ranges for LRI
    633     [8294, 8294]**/
     625    [2066, 2066]**/
    634626    const UnicodeSet lri_Set
    635627        {{{Empty, 259}, {Mixed, 1}, {Empty, 34556}},
    636628         {0x00000040}};
    637629    /** Code Point Ranges for RLI
    638     [8295, 8295]**/
     630    [2067, 2067]**/
    639631    const UnicodeSet rli_Set
    640632        {{{Empty, 259}, {Mixed, 1}, {Empty, 34556}},
    641633         {0x00000080}};
    642634    /** Code Point Ranges for FSI
    643     [8296, 8296]**/
     635    [2068, 2068]**/
    644636    const UnicodeSet fsi_Set
    645637        {{{Empty, 259}, {Mixed, 1}, {Empty, 34556}},
    646638         {0x00000100}};
    647639    /** Code Point Ranges for PDI
    648     [8297, 8297]**/
     640    [2069, 2069]**/
    649641    const UnicodeSet pdi_Set
    650642        {{{Empty, 259}, {Mixed, 1}, {Empty, 34556}},
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBinaryProperties.h

    r5145 r5656  
    22#define DERIVEDBINARYPROPERTIES_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1616    namespace BIDI_M_ns {
    1717        /** Code Point Ranges for Bidi_M
    18         [40, 41], [60, 60], [62, 62], [91, 91], [93, 93], [123, 123],
    19         [125, 125], [171, 171], [187, 187], [3898, 3901], [5787, 5788],
    20         [8249, 8250], [8261, 8262], [8317, 8318], [8333, 8334],
    21         [8512, 8512], [8705, 8708], [8712, 8717], [8721, 8721],
    22         [8725, 8726], [8730, 8733], [8735, 8738], [8740, 8740],
    23         [8742, 8742], [8747, 8755], [8761, 8761], [8763, 8780],
    24         [8786, 8789], [8799, 8800], [8802, 8802], [8804, 8811],
    25         [8814, 8844], [8847, 8850], [8856, 8856], [8866, 8867],
    26         [8870, 8888], [8894, 8895], [8905, 8909], [8912, 8913],
    27         [8918, 8941], [8944, 8959], [8968, 8971], [8992, 8993],
    28         [9001, 9002], [10088, 10101], [10176, 10176], [10179, 10182],
    29         [10184, 10185], [10187, 10189], [10195, 10198], [10204, 10206],
    30         [10210, 10223], [10627, 10648], [10651, 10671], [10680, 10680],
    31         [10688, 10693], [10697, 10697], [10702, 10706], [10708, 10709],
    32         [10712, 10716], [10721, 10721], [10723, 10725], [10728, 10729],
    33         [10740, 10745], [10748, 10749], [10762, 10780], [10782, 10785],
    34         [10788, 10788], [10790, 10790], [10793, 10793], [10795, 10798],
    35         [10804, 10805], [10812, 10814], [10839, 10840], [10852, 10853],
    36         [10858, 10861], [10863, 10864], [10867, 10868], [10873, 10915],
    37         [10918, 10925], [10927, 10966], [10972, 10972], [10974, 10974],
    38         [10978, 10982], [10988, 10990], [10995, 10995], [10999, 11003],
    39         [11005, 11005], [11778, 11781], [11785, 11786], [11788, 11789],
    40         [11804, 11805], [11808, 11817], [12296, 12305], [12308, 12315],
    41         [65113, 65118], [65124, 65125], [65288, 65289], [65308, 65308],
    42         [65310, 65310], [65339, 65339], [65341, 65341], [65371, 65371],
    43         [65373, 65373], [65375, 65376], [65378, 65379], [120539, 120539],
    44         [120597, 120597], [120655, 120655], [120713, 120713],
    45         [120771, 120771]**/
     18        [0028, 0029], [003c, 003c], [003e, 003e], [005b, 005b],
     19        [005d, 005d], [007b, 007b], [007d, 007d], [00ab, 00ab],
     20        [00bb, 00bb], [0f3a, 0f3d], [169b, 169c], [2039, 203a],
     21        [2045, 2046], [207d, 207e], [208d, 208e], [2140, 2140],
     22        [2201, 2204], [2208, 220d], [2211, 2211], [2215, 2216],
     23        [221a, 221d], [221f, 2222], [2224, 2224], [2226, 2226],
     24        [222b, 2233], [2239, 2239], [223b, 224c], [2252, 2255],
     25        [225f, 2260], [2262, 2262], [2264, 226b], [226e, 228c],
     26        [228f, 2292], [2298, 2298], [22a2, 22a3], [22a6, 22b8],
     27        [22be, 22bf], [22c9, 22cd], [22d0, 22d1], [22d6, 22ed],
     28        [22f0, 22ff], [2308, 230b], [2320, 2321], [2329, 232a],
     29        [2768, 2775], [27c0, 27c0], [27c3, 27c6], [27c8, 27c9],
     30        [27cb, 27cd], [27d3, 27d6], [27dc, 27de], [27e2, 27ef],
     31        [2983, 2998], [299b, 29af], [29b8, 29b8], [29c0, 29c5],
     32        [29c9, 29c9], [29ce, 29d2], [29d4, 29d5], [29d8, 29dc],
     33        [29e1, 29e1], [29e3, 29e5], [29e8, 29e9], [29f4, 29f9],
     34        [29fc, 29fd], [2a0a, 2a1c], [2a1e, 2a21], [2a24, 2a24],
     35        [2a26, 2a26], [2a29, 2a29], [2a2b, 2a2e], [2a34, 2a35],
     36        [2a3c, 2a3e], [2a57, 2a58], [2a64, 2a65], [2a6a, 2a6d],
     37        [2a6f, 2a70], [2a73, 2a74], [2a79, 2aa3], [2aa6, 2aad],
     38        [2aaf, 2ad6], [2adc, 2adc], [2ade, 2ade], [2ae2, 2ae6],
     39        [2aec, 2aee], [2af3, 2af3], [2af7, 2afb], [2afd, 2afd],
     40        [2e02, 2e05], [2e09, 2e0a], [2e0c, 2e0d], [2e1c, 2e1d],
     41        [2e20, 2e29], [3008, 3011], [3014, 301b], [fe59, fe5e],
     42        [fe64, fe65], [ff08, ff09], [ff1c, ff1c], [ff1e, ff1e],
     43        [ff3b, ff3b], [ff3d, ff3d], [ff5b, ff5b], [ff5d, ff5d],
     44        [ff5f, ff60], [ff62, ff63], [1d6db, 1d6db], [1d715, 1d715],
     45        [1d74f, 1d74f], [1d789, 1d789], [1d7c3, 1d7c3]**/
    4646        const UnicodeSet codepoint_set
    4747            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 115},
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCombiningClass.h

    r5159 r5656  
    22#define DERIVEDCOMBININGCLASS_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1717    const unsigned independent_prop_values = 55;
    1818    /** Code Point Ranges for NR
    19     [0, 767], [847, 847], [880, 1154], [1160, 1424], [1470, 1470],
    20     [1472, 1472], [1475, 1475], [1478, 1478], [1480, 1551], [1563, 1610],
    21     [1632, 1647], [1649, 1749], [1757, 1758], [1765, 1766], [1769, 1769],
    22     [1774, 1808], [1810, 1839], [1867, 2026], [2036, 2069], [2074, 2074],
    23     [2084, 2084], [2088, 2088], [2094, 2136], [2140, 2259], [2274, 2274],
    24     [2304, 2363], [2365, 2380], [2382, 2384], [2389, 2491], [2493, 2508],
    25     [2510, 2619], [2621, 2636], [2638, 2747], [2749, 2764], [2766, 2875],
    26     [2877, 2892], [2894, 3020], [3022, 3148], [3150, 3156], [3159, 3259],
    27     [3261, 3276], [3278, 3404], [3406, 3529], [3531, 3639], [3643, 3655],
    28     [3660, 3767], [3770, 3783], [3788, 3863], [3866, 3892], [3894, 3894],
    29     [3896, 3896], [3898, 3952], [3955, 3955], [3957, 3961], [3966, 3967],
    30     [3969, 3969], [3973, 3973], [3976, 4037], [4039, 4150], [4152, 4152],
    31     [4155, 4236], [4238, 4956], [4960, 5907], [5909, 5939], [5941, 6097],
    32     [6099, 6108], [6110, 6312], [6314, 6456], [6460, 6678], [6681, 6751],
    33     [6753, 6772], [6781, 6782], [6784, 6831], [6846, 6963], [6965, 6979],
    34     [6981, 7018], [7028, 7081], [7084, 7141], [7143, 7153], [7156, 7222],
    35     [7224, 7375], [7379, 7379], [7393, 7393], [7401, 7404], [7406, 7411],
    36     [7413, 7415], [7418, 7615], [7670, 7674], [7680, 8399], [8413, 8416],
    37     [8418, 8420], [8433, 11502], [11506, 11646], [11648, 11743],
    38     [11776, 12329], [12336, 12440], [12443, 42606], [42608, 42611],
    39     [42622, 42653], [42656, 42735], [42738, 43013], [43015, 43203],
    40     [43205, 43231], [43250, 43306], [43310, 43346], [43348, 43442],
    41     [43444, 43455], [43457, 43695], [43697, 43697], [43701, 43702],
    42     [43705, 43709], [43712, 43712], [43714, 43765], [43767, 44012],
    43     [44014, 64285], [64287, 65055], [65072, 66044], [66046, 66271],
    44     [66273, 66421], [66427, 68108], [68110, 68110], [68112, 68151],
    45     [68155, 68158], [68160, 68324], [68327, 69701], [69703, 69758],
    46     [69760, 69816], [69819, 69887], [69891, 69938], [69941, 70002],
    47     [70004, 70079], [70081, 70089], [70091, 70196], [70199, 70376],
    48     [70379, 70459], [70461, 70476], [70478, 70501], [70509, 70511],
    49     [70517, 70721], [70723, 70725], [70727, 70849], [70852, 71102],
    50     [71105, 71230], [71232, 71349], [71352, 71466], [71468, 72766],
    51     [72768, 92911], [92917, 92975], [92983, 113821], [113823, 119140],
    52     [119146, 119148], [119155, 119162], [119171, 119172], [119180, 119209],
    53     [119214, 119361], [119365, 122879], [122887, 122887], [122905, 122906],
    54     [122914, 122914], [122917, 122917], [122923, 125135], [125143, 125251],
    55     [125259, 1114111]**/
     19    [0000, 02ff], [034f, 034f], [0370, 0482], [0488, 0590], [05be, 05be],
     20    [05c0, 05c0], [05c3, 05c3], [05c6, 05c6], [05c8, 060f], [061b, 064a],
     21    [0660, 066f], [0671, 06d5], [06dd, 06de], [06e5, 06e6], [06e9, 06e9],
     22    [06ee, 0710], [0712, 072f], [074b, 07ea], [07f4, 0815], [081a, 081a],
     23    [0824, 0824], [0828, 0828], [082e, 0858], [085c, 08d3], [08e2, 08e2],
     24    [0900, 093b], [093d, 094c], [094e, 0950], [0955, 09bb], [09bd, 09cc],
     25    [09ce, 0a3b], [0a3d, 0a4c], [0a4e, 0abb], [0abd, 0acc], [0ace, 0b3b],
     26    [0b3d, 0b4c], [0b4e, 0bcc], [0bce, 0c4c], [0c4e, 0c54], [0c57, 0cbb],
     27    [0cbd, 0ccc], [0cce, 0d4c], [0d4e, 0dc9], [0dcb, 0e37], [0e3b, 0e47],
     28    [0e4c, 0eb7], [0eba, 0ec7], [0ecc, 0f17], [0f1a, 0f34], [0f36, 0f36],
     29    [0f38, 0f38], [0f3a, 0f70], [0f73, 0f73], [0f75, 0f79], [0f7e, 0f7f],
     30    [0f81, 0f81], [0f85, 0f85], [0f88, 0fc5], [0fc7, 1036], [1038, 1038],
     31    [103b, 108c], [108e, 135c], [1360, 1713], [1715, 1733], [1735, 17d1],
     32    [17d3, 17dc], [17de, 18a8], [18aa, 1938], [193c, 1a16], [1a19, 1a5f],
     33    [1a61, 1a74], [1a7d, 1a7e], [1a80, 1aaf], [1abe, 1b33], [1b35, 1b43],
     34    [1b45, 1b6a], [1b74, 1ba9], [1bac, 1be5], [1be7, 1bf1], [1bf4, 1c36],
     35    [1c38, 1ccf], [1cd3, 1cd3], [1ce1, 1ce1], [1ce9, 1cec], [1cee, 1cf3],
     36    [1cf5, 1cf7], [1cfa, 1dbf], [1df6, 1dfa], [1e00, 20cf], [20dd, 20e0],
     37    [20e2, 20e4], [20f1, 2cee], [2cf2, 2d7e], [2d80, 2ddf], [2e00, 3029],
     38    [3030, 3098], [309b, a66e], [a670, a673], [a67e, a69d], [a6a0, a6ef],
     39    [a6f2, a805], [a807, a8c3], [a8c5, a8df], [a8f2, a92a], [a92e, a952],
     40    [a954, a9b2], [a9b4, a9bf], [a9c1, aaaf], [aab1, aab1], [aab5, aab6],
     41    [aab9, aabd], [aac0, aac0], [aac2, aaf5], [aaf7, abec], [abee, fb1d],
     42    [fb1f, fe1f], [fe30, 101fc], [101fe, 102df], [102e1, 10375],
     43    [1037b, 10a0c], [10a0e, 10a0e], [10a10, 10a37], [10a3b, 10a3e],
     44    [10a40, 10ae4], [10ae7, 11045], [11047, 1107e], [11080, 110b8],
     45    [110bb, 110ff], [11103, 11132], [11135, 11172], [11174, 111bf],
     46    [111c1, 111c9], [111cb, 11234], [11237, 112e8], [112eb, 1133b],
     47    [1133d, 1134c], [1134e, 11365], [1136d, 1136f], [11375, 11441],
     48    [11443, 11445], [11447, 114c1], [114c4, 115be], [115c1, 1163e],
     49    [11640, 116b5], [116b8, 1172a], [1172c, 11c3e], [11c40, 16aef],
     50    [16af5, 16b2f], [16b37, 1bc9d], [1bc9f, 1d164], [1d16a, 1d16c],
     51    [1d173, 1d17a], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d241],
     52    [1d245, 1dfff], [1e007, 1e007], [1e019, 1e01a], [1e022, 1e022],
     53    [1e025, 1e025], [1e02b, 1e8cf], [1e8d7, 1e943], [1e94b, 10ffff]**/
    5654    const UnicodeSet nr_Set
    5755        {{{Full, 24}, {Empty, 2}, {Mixed, 2}, {Full, 8}, {Mixed, 1},
     
    115113          0x06000080, 0xfffff824, 0xff80ffff, 0xfffff80f}};
    116114    /** Code Point Ranges for OV
    117     [820, 824], [7380, 7380], [7394, 7400], [8402, 8403], [8408, 8410],
    118     [8421, 8422], [8426, 8427], [68153, 68153], [92912, 92916],
    119     [113822, 113822], [119143, 119145]**/
     115    [0334, 0338], [1cd4, 1cd4], [1ce2, 1ce8], [20d2, 20d3], [20d8, 20da],
     116    [20e5, 20e6], [20ea, 20eb], [10a39, 10a39], [16af0, 16af4],
     117    [1bc9e, 1bc9e], [1d167, 1d169]**/
    120118    const UnicodeSet ov_Set
    121119        {{{Empty, 25}, {Mixed, 1}, {Empty, 204}, {Mixed, 2}, {Empty, 30},
     
    126124          0x02000000, 0x001f0000, 0x40000000, 0x00000380}};
    127125    /** Code Point Ranges for NK
    128     [2364, 2364], [2492, 2492], [2620, 2620], [2748, 2748], [2876, 2876],
    129     [3260, 3260], [4151, 4151], [6964, 6964], [7142, 7142], [7223, 7223],
    130     [43443, 43443], [69818, 69818], [70003, 70003], [70090, 70090],
    131     [70198, 70198], [70377, 70377], [70460, 70460], [70726, 70726],
    132     [70851, 70851], [71104, 71104], [71351, 71351], [125258, 125258]**/
     126    [093c, 093c], [09bc, 09bc], [0a3c, 0a3c], [0abc, 0abc], [0b3c, 0b3c],
     127    [0cbc, 0cbc], [1037, 1037], [1b34, 1b34], [1be6, 1be6], [1c37, 1c37],
     128    [a9b3, a9b3], [110ba, 110ba], [11173, 11173], [111ca, 111ca],
     129    [11236, 11236], [112e9, 112e9], [1133c, 1133c], [11446, 11446],
     130    [114c3, 114c3], [115c0, 115c0], [116b7, 116b7], [1e94a, 1e94a]**/
    133131    const UnicodeSet nk_Set
    134132        {{{Empty, 73}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     
    147145          0x00800000, 0x00000400}};
    148146    /** Code Point Ranges for KV
    149     [12441, 12442]**/
     147    [3099, 309a]**/
    150148    const UnicodeSet kv_Set
    151149        {{{Empty, 388}, {Mixed, 1}, {Empty, 34427}},
    152150         {0x06000000}};
    153151    /** Code Point Ranges for VR
    154     [2381, 2381], [2509, 2509], [2637, 2637], [2765, 2765], [2893, 2893],
    155     [3021, 3021], [3149, 3149], [3277, 3277], [3405, 3405], [3530, 3530],
    156     [3642, 3642], [3972, 3972], [4153, 4154], [5908, 5908], [5940, 5940],
    157     [6098, 6098], [6752, 6752], [6980, 6980], [7082, 7083], [7154, 7155],
    158     [11647, 11647], [43014, 43014], [43204, 43204], [43347, 43347],
    159     [43456, 43456], [43766, 43766], [44013, 44013], [68159, 68159],
    160     [69702, 69702], [69759, 69759], [69817, 69817], [69939, 69940],
    161     [70080, 70080], [70197, 70197], [70378, 70378], [70477, 70477],
    162     [70722, 70722], [70850, 70850], [71103, 71103], [71231, 71231],
    163     [71350, 71350], [71467, 71467], [72767, 72767]**/
     152    [094d, 094d], [09cd, 09cd], [0a4d, 0a4d], [0acd, 0acd], [0b4d, 0b4d],
     153    [0bcd, 0bcd], [0c4d, 0c4d], [0ccd, 0ccd], [0d4d, 0d4d], [0dca, 0dca],
     154    [0e3a, 0e3a], [0f84, 0f84], [1039, 103a], [1714, 1714], [1734, 1734],
     155    [17d2, 17d2], [1a60, 1a60], [1b44, 1b44], [1baa, 1bab], [1bf2, 1bf3],
     156    [2d7f, 2d7f], [a806, a806], [a8c4, a8c4], [a953, a953], [a9c0, a9c0],
     157    [aaf6, aaf6], [abed, abed], [10a3f, 10a3f], [11046, 11046],
     158    [1107f, 1107f], [110b9, 110b9], [11133, 11134], [111c0, 111c0],
     159    [11235, 11235], [112ea, 112ea], [1134d, 1134d], [11442, 11442],
     160    [114c2, 114c2], [115bf, 115bf], [1163f, 1163f], [116b6, 116b6],
     161    [1172b, 1172b], [11c3f, 11c3f]**/
    164162    const UnicodeSet vr_Set
    165163        {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     
    190188          0x00400000, 0x00000800, 0x80000000}};
    191189    /** Code Point Ranges for CCC10
    192     [1456, 1456]**/
     190    [05b0, 05b0]**/
    193191    const UnicodeSet ccc10_Set
    194192        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    195193         {0x00010000}};
    196194    /** Code Point Ranges for CCC11
    197     [1457, 1457]**/
     195    [05b1, 05b1]**/
    198196    const UnicodeSet ccc11_Set
    199197        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    200198         {0x00020000}};
    201199    /** Code Point Ranges for CCC12
    202     [1458, 1458]**/
     200    [05b2, 05b2]**/
    203201    const UnicodeSet ccc12_Set
    204202        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    205203         {0x00040000}};
    206204    /** Code Point Ranges for CCC13
    207     [1459, 1459]**/
     205    [05b3, 05b3]**/
    208206    const UnicodeSet ccc13_Set
    209207        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    210208         {0x00080000}};
    211209    /** Code Point Ranges for CCC14
    212     [1460, 1460]**/
     210    [05b4, 05b4]**/
    213211    const UnicodeSet ccc14_Set
    214212        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    215213         {0x00100000}};
    216214    /** Code Point Ranges for CCC15
    217     [1461, 1461]**/
     215    [05b5, 05b5]**/
    218216    const UnicodeSet ccc15_Set
    219217        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    220218         {0x00200000}};
    221219    /** Code Point Ranges for CCC16
    222     [1462, 1462]**/
     220    [05b6, 05b6]**/
    223221    const UnicodeSet ccc16_Set
    224222        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    225223         {0x00400000}};
    226224    /** Code Point Ranges for CCC17
    227     [1463, 1463]**/
     225    [05b7, 05b7]**/
    228226    const UnicodeSet ccc17_Set
    229227        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    230228         {0x00800000}};
    231229    /** Code Point Ranges for CCC18
    232     [1464, 1464], [1479, 1479]**/
     230    [05b8, 05b8], [05c7, 05c7]**/
    233231    const UnicodeSet ccc18_Set
    234232        {{{Empty, 45}, {Mixed, 2}, {Empty, 34769}},
    235233         {0x01000000, 0x00000080}};
    236234    /** Code Point Ranges for CCC19
    237     [1465, 1466]**/
     235    [05b9, 05ba]**/
    238236    const UnicodeSet ccc19_Set
    239237        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    240238         {0x06000000}};
    241239    /** Code Point Ranges for CCC20
    242     [1467, 1467]**/
     240    [05bb, 05bb]**/
    243241    const UnicodeSet ccc20_Set
    244242        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    245243         {0x08000000}};
    246244    /** Code Point Ranges for CCC21
    247     [1468, 1468]**/
     245    [05bc, 05bc]**/
    248246    const UnicodeSet ccc21_Set
    249247        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    250248         {0x10000000}};
    251249    /** Code Point Ranges for CCC22
    252     [1469, 1469]**/
     250    [05bd, 05bd]**/
    253251    const UnicodeSet ccc22_Set
    254252        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    255253         {0x20000000}};
    256254    /** Code Point Ranges for CCC23
    257     [1471, 1471]**/
     255    [05bf, 05bf]**/
    258256    const UnicodeSet ccc23_Set
    259257        {{{Empty, 45}, {Mixed, 1}, {Empty, 34770}},
    260258         {0x80000000}};
    261259    /** Code Point Ranges for CCC24
    262     [1473, 1473]**/
     260    [05c1, 05c1]**/
    263261    const UnicodeSet ccc24_Set
    264262        {{{Empty, 46}, {Mixed, 1}, {Empty, 34769}},
    265263         {0x00000002}};
    266264    /** Code Point Ranges for CCC25
    267     [1474, 1474]**/
     265    [05c2, 05c2]**/
    268266    const UnicodeSet ccc25_Set
    269267        {{{Empty, 46}, {Mixed, 1}, {Empty, 34769}},
    270268         {0x00000004}};
    271269    /** Code Point Ranges for CCC26
    272     [64286, 64286]**/
     270    [fb1e, fb1e]**/
    273271    const UnicodeSet ccc26_Set
    274272        {{{Empty, 2008}, {Mixed, 1}, {Empty, 32807}},
    275273         {0x40000000}};
    276274    /** Code Point Ranges for CCC27
    277     [1611, 1611], [2288, 2288]**/
     275    [064b, 064b], [08f0, 08f0]**/
    278276    const UnicodeSet ccc27_Set
    279277        {{{Empty, 50}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 34744}},
    280278         {0x00000800, 0x00010000}};
    281279    /** Code Point Ranges for CCC28
    282     [1612, 1612], [2289, 2289]**/
     280    [064c, 064c], [08f1, 08f1]**/
    283281    const UnicodeSet ccc28_Set
    284282        {{{Empty, 50}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 34744}},
    285283         {0x00001000, 0x00020000}};
    286284    /** Code Point Ranges for CCC29
    287     [1613, 1613], [2290, 2290]**/
     285    [064d, 064d], [08f2, 08f2]**/
    288286    const UnicodeSet ccc29_Set
    289287        {{{Empty, 50}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 34744}},
    290288         {0x00002000, 0x00040000}};
    291289    /** Code Point Ranges for CCC30
    292     [1560, 1560], [1614, 1614]**/
     290    [0618, 0618], [064e, 064e]**/
    293291    const UnicodeSet ccc30_Set
    294292        {{{Empty, 48}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34765}},
    295293         {0x01000000, 0x00004000}};
    296294    /** Code Point Ranges for CCC31
    297     [1561, 1561], [1615, 1615]**/
     295    [0619, 0619], [064f, 064f]**/
    298296    const UnicodeSet ccc31_Set
    299297        {{{Empty, 48}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34765}},
    300298         {0x02000000, 0x00008000}};
    301299    /** Code Point Ranges for CCC32
    302     [1562, 1562], [1616, 1616]**/
     300    [061a, 061a], [0650, 0650]**/
    303301    const UnicodeSet ccc32_Set
    304302        {{{Empty, 48}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34765}},
    305303         {0x04000000, 0x00010000}};
    306304    /** Code Point Ranges for CCC33
    307     [1617, 1617]**/
     305    [0651, 0651]**/
    308306    const UnicodeSet ccc33_Set
    309307        {{{Empty, 50}, {Mixed, 1}, {Empty, 34765}},
    310308         {0x00020000}};
    311309    /** Code Point Ranges for CCC34
    312     [1618, 1618]**/
     310    [0652, 0652]**/
    313311    const UnicodeSet ccc34_Set
    314312        {{{Empty, 50}, {Mixed, 1}, {Empty, 34765}},
    315313         {0x00040000}};
    316314    /** Code Point Ranges for CCC35
    317     [1648, 1648]**/
     315    [0670, 0670]**/
    318316    const UnicodeSet ccc35_Set
    319317        {{{Empty, 51}, {Mixed, 1}, {Empty, 34764}},
    320318         {0x00010000}};
    321319    /** Code Point Ranges for CCC36
    322     [1809, 1809]**/
     320    [0711, 0711]**/
    323321    const UnicodeSet ccc36_Set
    324322        {{{Empty, 56}, {Mixed, 1}, {Empty, 34759}},
    325323         {0x00020000}};
    326324    /** Code Point Ranges for CCC84
    327     [3157, 3157]**/
     325    [0c55, 0c55]**/
    328326    const UnicodeSet ccc84_Set
    329327        {{{Empty, 98}, {Mixed, 1}, {Empty, 34717}},
    330328         {0x00200000}};
    331329    /** Code Point Ranges for CCC91
    332     [3158, 3158]**/
     330    [0c56, 0c56]**/
    333331    const UnicodeSet ccc91_Set
    334332        {{{Empty, 98}, {Mixed, 1}, {Empty, 34717}},
    335333         {0x00400000}};
    336334    /** Code Point Ranges for CCC103
    337     [3640, 3641]**/
     335    [0e38, 0e39]**/
    338336    const UnicodeSet ccc103_Set
    339337        {{{Empty, 113}, {Mixed, 1}, {Empty, 34702}},
    340338         {0x03000000}};
    341339    /** Code Point Ranges for CCC107
    342     [3656, 3659]**/
     340    [0e48, 0e4b]**/
    343341    const UnicodeSet ccc107_Set
    344342        {{{Empty, 114}, {Mixed, 1}, {Empty, 34701}},
    345343         {0x00000f00}};
    346344    /** Code Point Ranges for CCC118
    347     [3768, 3769]**/
     345    [0eb8, 0eb9]**/
    348346    const UnicodeSet ccc118_Set
    349347        {{{Empty, 117}, {Mixed, 1}, {Empty, 34698}},
    350348         {0x03000000}};
    351349    /** Code Point Ranges for CCC122
    352     [3784, 3787]**/
     350    [0ec8, 0ecb]**/
    353351    const UnicodeSet ccc122_Set
    354352        {{{Empty, 118}, {Mixed, 1}, {Empty, 34697}},
    355353         {0x00000f00}};
    356354    /** Code Point Ranges for CCC129
    357     [3953, 3953]**/
     355    [0f71, 0f71]**/
    358356    const UnicodeSet ccc129_Set
    359357        {{{Empty, 123}, {Mixed, 1}, {Empty, 34692}},
    360358         {0x00020000}};
    361359    /** Code Point Ranges for CCC130
    362     [3954, 3954], [3962, 3965], [3968, 3968]**/
     360    [0f72, 0f72], [0f7a, 0f7d], [0f80, 0f80]**/
    363361    const UnicodeSet ccc130_Set
    364362        {{{Empty, 123}, {Mixed, 2}, {Empty, 34691}},
    365363         {0x3c040000, 0x00000001}};
    366364    /** Code Point Ranges for CCC132
    367     [3956, 3956]**/
     365    [0f74, 0f74]**/
    368366    const UnicodeSet ccc132_Set
    369367        {{{Empty, 123}, {Mixed, 1}, {Empty, 34692}},
    370368         {0x00100000}};
    371369    /** Code Point Ranges for ATB
    372     [801, 802], [807, 808], [7632, 7632]**/
     370    [0321, 0322], [0327, 0328], [1dd0, 1dd0]**/
    373371    const UnicodeSet atb_Set
    374372        {{{Empty, 25}, {Mixed, 1}, {Empty, 212}, {Mixed, 1}, {Empty, 34577}},
    375373         {0x00000186, 0x00010000}};
    376374    /** Code Point Ranges for ATA
    377     [7630, 7630]**/
     375    [1dce, 1dce]**/
    378376    const UnicodeSet ata_Set
    379377        {{{Empty, 238}, {Mixed, 1}, {Empty, 34577}},
    380378         {0x00004000}};
    381379    /** Code Point Ranges for ATAR
    382     [795, 795], [3897, 3897], [119141, 119142], [119150, 119154]**/
     380    [031b, 031b], [0f39, 0f39], [1d165, 1d166], [1d16e, 1d172]**/
    383381    const UnicodeSet atar_Set
    384382        {{{Empty, 24}, {Mixed, 1}, {Empty, 96}, {Mixed, 1}, {Empty, 3601},
     
    386384         {0x08000000, 0x02000000, 0x0007c060}};
    387385    /** Code Point Ranges for BL
    388     [12330, 12330]**/
     386    [302a, 302a]**/
    389387    const UnicodeSet bl_Set
    390388        {{{Empty, 385}, {Mixed, 1}, {Empty, 34430}},
    391389         {0x00000400}};
    392390    /** Code Point Ranges for B
    393     [790, 793], [796, 800], [803, 806], [809, 819], [825, 828], [839, 841],
    394     [845, 846], [851, 854], [857, 858], [1425, 1425], [1430, 1430],
    395     [1435, 1435], [1442, 1447], [1450, 1450], [1477, 1477], [1621, 1622],
    396     [1628, 1628], [1631, 1631], [1763, 1763], [1770, 1770], [1773, 1773],
    397     [1841, 1841], [1844, 1844], [1847, 1849], [1851, 1852], [1854, 1854],
    398     [1858, 1858], [1860, 1860], [1862, 1862], [1864, 1864], [2034, 2034],
    399     [2137, 2139], [2275, 2275], [2278, 2278], [2281, 2281], [2285, 2287],
    400     [2294, 2294], [2297, 2298], [2386, 2386], [3864, 3865], [3893, 3893],
    401     [3895, 3895], [4038, 4038], [4237, 4237], [6459, 6459], [6680, 6680],
    402     [6783, 6783], [6837, 6842], [6845, 6845], [7020, 7020], [7381, 7385],
    403     [7388, 7391], [7405, 7405], [7618, 7618], [7626, 7626], [7631, 7631],
    404     [7677, 7677], [7679, 7679], [8424, 8424], [8428, 8431], [43307, 43309],
    405     [43700, 43700], [65063, 65069], [66045, 66045], [66272, 66272],
    406     [68109, 68109], [68154, 68154], [68326, 68326], [119163, 119170],
    407     [119178, 119179], [125136, 125142]**/
     391    [0316, 0319], [031c, 0320], [0323, 0326], [0329, 0333], [0339, 033c],
     392    [0347, 0349], [034d, 034e], [0353, 0356], [0359, 035a], [0591, 0591],
     393    [0596, 0596], [059b, 059b], [05a2, 05a7], [05aa, 05aa], [05c5, 05c5],
     394    [0655, 0656], [065c, 065c], [065f, 065f], [06e3, 06e3], [06ea, 06ea],
     395    [06ed, 06ed], [0731, 0731], [0734, 0734], [0737, 0739], [073b, 073c],
     396    [073e, 073e], [0742, 0742], [0744, 0744], [0746, 0746], [0748, 0748],
     397    [07f2, 07f2], [0859, 085b], [08e3, 08e3], [08e6, 08e6], [08e9, 08e9],
     398    [08ed, 08ef], [08f6, 08f6], [08f9, 08fa], [0952, 0952], [0f18, 0f19],
     399    [0f35, 0f35], [0f37, 0f37], [0fc6, 0fc6], [108d, 108d], [193b, 193b],
     400    [1a18, 1a18], [1a7f, 1a7f], [1ab5, 1aba], [1abd, 1abd], [1b6c, 1b6c],
     401    [1cd5, 1cd9], [1cdc, 1cdf], [1ced, 1ced], [1dc2, 1dc2], [1dca, 1dca],
     402    [1dcf, 1dcf], [1dfd, 1dfd], [1dff, 1dff], [20e8, 20e8], [20ec, 20ef],
     403    [a92b, a92d], [aab4, aab4], [fe27, fe2d], [101fd, 101fd],
     404    [102e0, 102e0], [10a0d, 10a0d], [10a3a, 10a3a], [10ae6, 10ae6],
     405    [1d17b, 1d182], [1d18a, 1d18b], [1e8d0, 1e8d6]**/
    408406    const UnicodeSet b_Set
    409407        {{{Empty, 24}, {Mixed, 3}, {Empty, 17}, {Mixed, 3}, {Empty, 3},
     
    428426          0x00000040, 0xf8000000, 0x00000c07, 0x007f0000}};
    429427    /** Code Point Ranges for BR
    430     [1434, 1434], [1453, 1453], [6457, 6457], [12333, 12333]**/
     428    [059a, 059a], [05ad, 05ad], [1939, 1939], [302d, 302d]**/
    431429    const UnicodeSet br_Set
    432430        {{{Empty, 44}, {Mixed, 2}, {Empty, 155}, {Mixed, 1}, {Empty, 183},
     
    434432         {0x04000000, 0x00002000, 0x02000000, 0x00002000}};
    435433    /** Code Point Ranges for L
    436     [12334, 12335]**/
     434    [302e, 302f]**/
    437435    const UnicodeSet l_Set
    438436        {{{Empty, 385}, {Mixed, 1}, {Empty, 34430}},
    439437         {0x0000c000}};
    440438    /** Code Point Ranges for R
    441     [119149, 119149]**/
     439    [1d16d, 1d16d]**/
    442440    const UnicodeSet r_Set
    443441        {{{Empty, 3723}, {Mixed, 1}, {Empty, 31092}},
    444442         {0x00002000}};
    445443    /** Code Point Ranges for AL
    446     [1454, 1454], [6313, 6313], [12331, 12331]**/
     444    [05ae, 05ae], [18a9, 18a9], [302b, 302b]**/
    447445    const UnicodeSet al_Set
    448446        {{{Empty, 45}, {Mixed, 1}, {Empty, 151}, {Mixed, 1}, {Empty, 187},
     
    450448         {0x00004000, 0x00000200, 0x00000800}};
    451449    /** Code Point Ranges for A
    452     [768, 788], [829, 836], [838, 838], [842, 844], [848, 850], [855, 855],
    453     [859, 859], [867, 879], [1155, 1159], [1426, 1429], [1431, 1433],
    454     [1436, 1441], [1448, 1449], [1451, 1452], [1455, 1455], [1476, 1476],
    455     [1552, 1559], [1619, 1620], [1623, 1627], [1629, 1630], [1750, 1756],
    456     [1759, 1762], [1764, 1764], [1767, 1768], [1771, 1772], [1840, 1840],
    457     [1842, 1843], [1845, 1846], [1850, 1850], [1853, 1853], [1855, 1857],
    458     [1859, 1859], [1861, 1861], [1863, 1863], [1865, 1866], [2027, 2033],
    459     [2035, 2035], [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2093],
    460     [2260, 2273], [2276, 2277], [2279, 2280], [2282, 2284], [2291, 2293],
    461     [2295, 2296], [2299, 2303], [2385, 2385], [2387, 2388], [3970, 3971],
    462     [3974, 3975], [4957, 4959], [6109, 6109], [6458, 6458], [6679, 6679],
    463     [6773, 6780], [6832, 6836], [6843, 6844], [7019, 7019], [7021, 7027],
    464     [7376, 7378], [7386, 7387], [7392, 7392], [7412, 7412], [7416, 7417],
    465     [7616, 7617], [7619, 7625], [7627, 7628], [7633, 7669], [7675, 7675],
    466     [7678, 7678], [8400, 8401], [8404, 8407], [8411, 8412], [8417, 8417],
    467     [8423, 8423], [8425, 8425], [8432, 8432], [11503, 11505],
    468     [11744, 11775], [42607, 42607], [42612, 42621], [42654, 42655],
    469     [42736, 42737], [43232, 43249], [43696, 43696], [43698, 43699],
    470     [43703, 43704], [43710, 43711], [43713, 43713], [65056, 65062],
    471     [65070, 65071], [66422, 66426], [68111, 68111], [68152, 68152],
    472     [68325, 68325], [69888, 69890], [70502, 70508], [70512, 70516],
    473     [92976, 92982], [119173, 119177], [119210, 119213], [119362, 119364],
    474     [122880, 122886], [122888, 122904], [122907, 122913], [122915, 122916],
    475     [122918, 122922], [125252, 125257]**/
     450    [0300, 0314], [033d, 0344], [0346, 0346], [034a, 034c], [0350, 0352],
     451    [0357, 0357], [035b, 035b], [0363, 036f], [0483, 0487], [0592, 0595],
     452    [0597, 0599], [059c, 05a1], [05a8, 05a9], [05ab, 05ac], [05af, 05af],
     453    [05c4, 05c4], [0610, 0617], [0653, 0654], [0657, 065b], [065d, 065e],
     454    [06d6, 06dc], [06df, 06e2], [06e4, 06e4], [06e7, 06e8], [06eb, 06ec],
     455    [0730, 0730], [0732, 0733], [0735, 0736], [073a, 073a], [073d, 073d],
     456    [073f, 0741], [0743, 0743], [0745, 0745], [0747, 0747], [0749, 074a],
     457    [07eb, 07f1], [07f3, 07f3], [0816, 0819], [081b, 0823], [0825, 0827],
     458    [0829, 082d], [08d4, 08e1], [08e4, 08e5], [08e7, 08e8], [08ea, 08ec],
     459    [08f3, 08f5], [08f7, 08f8], [08fb, 08ff], [0951, 0951], [0953, 0954],
     460    [0f82, 0f83], [0f86, 0f87], [135d, 135f], [17dd, 17dd], [193a, 193a],
     461    [1a17, 1a17], [1a75, 1a7c], [1ab0, 1ab4], [1abb, 1abc], [1b6b, 1b6b],
     462    [1b6d, 1b73], [1cd0, 1cd2], [1cda, 1cdb], [1ce0, 1ce0], [1cf4, 1cf4],
     463    [1cf8, 1cf9], [1dc0, 1dc1], [1dc3, 1dc9], [1dcb, 1dcc], [1dd1, 1df5],
     464    [1dfb, 1dfb], [1dfe, 1dfe], [20d0, 20d1], [20d4, 20d7], [20db, 20dc],
     465    [20e1, 20e1], [20e7, 20e7], [20e9, 20e9], [20f0, 20f0], [2cef, 2cf1],
     466    [2de0, 2dff], [a66f, a66f], [a674, a67d], [a69e, a69f], [a6f0, a6f1],
     467    [a8e0, a8f1], [aab0, aab0], [aab2, aab3], [aab7, aab8], [aabe, aabf],
     468    [aac1, aac1], [fe20, fe26], [fe2e, fe2f], [10376, 1037a],
     469    [10a0f, 10a0f], [10a38, 10a38], [10ae5, 10ae5], [11100, 11102],
     470    [11366, 1136c], [11370, 11374], [16b30, 16b36], [1d185, 1d189],
     471    [1d1aa, 1d1ad], [1d242, 1d244], [1e000, 1e006], [1e008, 1e018],
     472    [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e944, 1e949]**/
    476473    const UnicodeSet a_Set
    477474        {{{Empty, 24}, {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 7},
     
    503500          0x00003c00, 0x0000001c, 0xf9ffff7f, 0x000007db, 0x000003f0}};
    504501    /** Code Point Ranges for AR
    505     [789, 789], [794, 794], [856, 856], [12332, 12332]**/
     502    [0315, 0315], [031a, 031a], [0358, 0358], [302c, 302c]**/
    506503    const UnicodeSet ar_Set
    507504        {{{Empty, 24}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 358},
     
    509506         {0x04200000, 0x01000000, 0x00001000}};
    510507    /** Code Point Ranges for DB
    511     [860, 860], [863, 863], [866, 866], [7676, 7676]**/
     508    [035c, 035c], [035f, 035f], [0362, 0362], [1dfc, 1dfc]**/
    512509    const UnicodeSet db_Set
    513510        {{{Empty, 26}, {Mixed, 2}, {Empty, 211}, {Mixed, 1}, {Empty, 34576}},
    514511         {0x90000000, 0x00000004, 0x10000000}};
    515512    /** Code Point Ranges for DA
    516     [861, 862], [864, 865], [7629, 7629]**/
     513    [035d, 035e], [0360, 0361], [1dcd, 1dcd]**/
    517514    const UnicodeSet da_Set
    518515        {{{Empty, 26}, {Mixed, 2}, {Empty, 210}, {Mixed, 1}, {Empty, 34577}},
    519516         {0x60000000, 0x00000003, 0x00002000}};
    520517    /** Code Point Ranges for IS
    521     [837, 837]**/
     518    [0345, 0345]**/
    522519    const UnicodeSet is_Set
    523520        {{{Empty, 26}, {Mixed, 1}, {Empty, 34789}},
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r5145 r5656  
    22#define DERIVEDCOREPROPERTIES_H
    33/*
    4  *  Copyright (c) 2016 International Characters, Inc.
     4 *  Copyright (c) 2017 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1616    namespace ALPHA_ns {
    1717        /** Code Point Ranges for Alpha
    18         [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
    19         [216, 246], [248, 705], [710, 721], [736, 740], [748, 748],
    20         [750, 750], [837, 837], [880, 884], [886, 887], [890, 893],
    21         [895, 895], [902, 902], [904, 906], [908, 908], [910, 929],
    22         [931, 1013], [1015, 1153], [1162, 1327], [1329, 1366], [1369, 1369],
    23         [1377, 1415], [1456, 1469], [1471, 1471], [1473, 1474],
    24         [1476, 1477], [1479, 1479], [1488, 1514], [1520, 1522],
    25         [1552, 1562], [1568, 1623], [1625, 1631], [1646, 1747],
    26         [1749, 1756], [1761, 1768], [1773, 1775], [1786, 1788],
    27         [1791, 1791], [1808, 1855], [1869, 1969], [1994, 2026],
    28         [2036, 2037], [2042, 2042], [2048, 2071], [2074, 2092],
    29         [2112, 2136], [2208, 2228], [2230, 2237], [2260, 2271],
    30         [2275, 2281], [2288, 2363], [2365, 2380], [2382, 2384],
    31         [2389, 2403], [2417, 2435], [2437, 2444], [2447, 2448],
    32         [2451, 2472], [2474, 2480], [2482, 2482], [2486, 2489],
    33         [2493, 2500], [2503, 2504], [2507, 2508], [2510, 2510],
    34         [2519, 2519], [2524, 2525], [2527, 2531], [2544, 2545],
    35         [2561, 2563], [2565, 2570], [2575, 2576], [2579, 2600],
    36         [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617],
    37         [2622, 2626], [2631, 2632], [2635, 2636], [2641, 2641],
    38         [2649, 2652], [2654, 2654], [2672, 2677], [2689, 2691],
    39         [2693, 2701], [2703, 2705], [2707, 2728], [2730, 2736],
    40         [2738, 2739], [2741, 2745], [2749, 2757], [2759, 2761],
    41         [2763, 2764], [2768, 2768], [2784, 2787], [2809, 2809],
    42         [2817, 2819], [2821, 2828], [2831, 2832], [2835, 2856],
    43         [2858, 2864], [2866, 2867], [2869, 2873], [2877, 2884],
    44         [2887, 2888], [2891, 2892], [2902, 2903], [2908, 2909],
    45         [2911, 2915], [2929, 2929], [2946, 2947], [2949, 2954],
    46         [2958, 2960], [2962, 2965], [2969, 2970], [2972, 2972],
    47         [2974, 2975], [2979, 2980], [2984, 2986], [2990, 3001],
    48         [3006, 3010], [3014, 3016], [3018, 3020], [3024, 3024],
    49         [3031, 3031], [3072, 3075], [3077, 3084], [3086, 3088],
    50         [3090, 3112], [3114, 3129], [3133, 3140], [3142, 3144],
    51         [3146, 3148], [3157, 3158], [3160, 3162], [3168, 3171],
    52         [3200, 3203], [3205, 3212], [3214, 3216], [3218, 3240],
    53         [3242, 3251], [3253, 3257], [3261, 3268], [3270, 3272],
    54         [3274, 3276], [3285, 3286], [3294, 3294], [3296, 3299],
    55         [3313, 3314], [3329, 3331], [3333, 3340], [3342, 3344],
    56         [3346, 3386], [3389, 3396], [3398, 3400], [3402, 3404],
    57         [3406, 3406], [3412, 3415], [3423, 3427], [3450, 3455],
    58         [3458, 3459], [3461, 3478], [3482, 3505], [3507, 3515],
    59         [3517, 3517], [3520, 3526], [3535, 3540], [3542, 3542],
    60         [3544, 3551], [3570, 3571], [3585, 3642], [3648, 3654],
    61         [3661, 3661], [3713, 3714], [3716, 3716], [3719, 3720],
    62         [3722, 3722], [3725, 3725], [3732, 3735], [3737, 3743],
    63         [3745, 3747], [3749, 3749], [3751, 3751], [3754, 3755],
    64         [3757, 3769], [3771, 3773], [3776, 3780], [3782, 3782],
    65         [3789, 3789], [3804, 3807], [3840, 3840], [3904, 3911],
    66         [3913, 3948], [3953, 3969], [3976, 3991], [3993, 4028],
    67         [4096, 4150], [4152, 4152], [4155, 4159], [4176, 4194],
    68         [4197, 4200], [4206, 4230], [4238, 4238], [4252, 4253],
    69         [4256, 4293], [4295, 4295], [4301, 4301], [4304, 4346],
    70         [4348, 4680], [4682, 4685], [4688, 4694], [4696, 4696],
    71         [4698, 4701], [4704, 4744], [4746, 4749], [4752, 4784],
    72         [4786, 4789], [4792, 4798], [4800, 4800], [4802, 4805],
    73         [4808, 4822], [4824, 4880], [4882, 4885], [4888, 4954],
    74         [4959, 4959], [4992, 5007], [5024, 5109], [5112, 5117],
    75         [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
    76         [5870, 5880], [5888, 5900], [5902, 5907], [5920, 5939],
    77         [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
    78         [6016, 6067], [6070, 6088], [6103, 6103], [6108, 6108],
    79         [6176, 6263], [6272, 6314], [6320, 6389], [6400, 6430],
    80         [6432, 6443], [6448, 6456], [6480, 6509], [6512, 6516],
    81         [6528, 6571], [6576, 6601], [6656, 6683], [6688, 6750],
    82         [6753, 6772], [6823, 6823], [6912, 6963], [6965, 6979],
    83         [6981, 6987], [7040, 7081], [7084, 7087], [7098, 7141],
    84         [7143, 7153], [7168, 7221], [7245, 7247], [7258, 7293],
    85         [7296, 7304], [7401, 7404], [7406, 7411], [7413, 7414],
    86         [7424, 7615], [7655, 7668], [7680, 7957], [7960, 7965],
    87         [7968, 8005], [8008, 8013], [8016, 8023], [8025, 8025],
    88         [8027, 8027], [8029, 8029], [8031, 8061], [8064, 8116],
    89         [8118, 8124], [8126, 8126], [8130, 8132], [8134, 8140],
    90         [8144, 8147], [8150, 8155], [8160, 8172], [8178, 8180],
    91         [8182, 8188], [8305, 8305], [8319, 8319], [8336, 8348],
    92         [8450, 8450], [8455, 8455], [8458, 8467], [8469, 8469],
    93         [8473, 8477], [8484, 8484], [8486, 8486], [8488, 8488],
    94         [8490, 8493], [8495, 8505], [8508, 8511], [8517, 8521],
    95         [8526, 8526], [8544, 8584], [9398, 9449], [11264, 11310],
    96         [11312, 11358], [11360, 11492], [11499, 11502], [11506, 11507],
    97         [11520, 11557], [11559, 11559], [11565, 11565], [11568, 11623],
    98         [11631, 11631], [11648, 11670], [11680, 11686], [11688, 11694],
    99         [11696, 11702], [11704, 11710], [11712, 11718], [11720, 11726],
    100         [11728, 11734], [11736, 11742], [11744, 11775], [11823, 11823],
    101         [12293, 12295], [12321, 12329], [12337, 12341], [12344, 12348],
    102         [12353, 12438], [12445, 12447], [12449, 12538], [12540, 12543],
    103         [12549, 12589], [12593, 12686], [12704, 12730], [12784, 12799],
    104         [13312, 19893], [19968, 40917], [40960, 42124], [42192, 42237],
    105         [42240, 42508], [42512, 42527], [42538, 42539], [42560, 42606],
    106         [42612, 42619], [42623, 42735], [42775, 42783], [42786, 42888],
    107         [42891, 42926], [42928, 42935], [42999, 43009], [43011, 43013],
    108         [43015, 43018], [43020, 43047], [43072, 43123], [43136, 43203],
    109         [43205, 43205], [43250, 43255], [43259, 43259], [43261, 43261],
    110         [43274, 43306], [43312, 43346], [43360, 43388], [43392, 43442],
    111         [43444, 43455], [43471, 43471], [43488, 43492], [43494, 43503],
    112         [43514, 43518], [43520, 43574], [43584, 43597], [43616, 43638],
    113         [43642, 43642], [43646, 43710], [43712, 43712], [43714, 43714],
    114         [43739, 43741], [43744, 43759], [43762, 43765], [43777, 43782],
    115         [43785, 43790], [43793, 43798], [43808, 43814], [43816, 43822],
    116         [43824, 43866], [43868, 43877], [43888, 44010], [44032, 55203],
    117         [55216, 55238], [55243, 55291], [63744, 64109], [64112, 64217],
    118         [64256, 64262], [64275, 64279], [64285, 64296], [64298, 64310],
    119         [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324],
    120         [64326, 64433], [64467, 64829], [64848, 64911], [64914, 64967],
    121         [65008, 65019], [65136, 65140], [65142, 65276], [65313, 65338],
    122         [65345, 65370], [65382, 65470], [65474, 65479], [65482, 65487],
    123         [65490, 65495], [65498, 65500], [65536, 65547], [65549, 65574],
    124         [65576, 65594], [65596, 65597], [65599, 65613], [65616, 65629],
    125         [65664, 65786], [65856, 65908], [66176, 66204], [66208, 66256],
    126         [66304, 66335], [66352, 66378], [66384, 66426], [66432, 66461],
    127         [66464, 66499], [66504, 66511], [66513, 66517], [66560, 66717],
    128         [66736, 66771], [66776, 66811], [66816, 66855], [66864, 66915],
    129         [67072, 67382], [67392, 67413], [67424, 67431], [67584, 67589],
    130         [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644],
    131         [67647, 67669], [67680, 67702], [67712, 67742], [67808, 67826],
    132         [67828, 67829], [67840, 67861], [67872, 67897], [67968, 68023],
    133         [68030, 68031], [68096, 68099], [68101, 68102], [68108, 68115],
    134         [68117, 68119], [68121, 68147], [68192, 68220], [68224, 68252],
    135         [68288, 68295], [68297, 68324], [68352, 68405], [68416, 68437],
    136         [68448, 68466], [68480, 68497], [68608, 68680], [68736, 68786],
    137         [68800, 68850], [69632, 69701], [69762, 69816], [69840, 69864],
    138         [69888, 69938], [69968, 70002], [70006, 70006], [70016, 70079],
    139         [70081, 70084], [70106, 70106], [70108, 70108], [70144, 70161],
    140         [70163, 70196], [70199, 70199], [70206, 70206], [70272, 70278],
    141         [70280, 70280], [70282, 70285], [70287, 70301], [70303, 70312],
    142         [70320, 70376], [70400, 70403], [70405, 70412], [70415, 70416],
    143         [70419, 70440], [70442, 70448], [70450, 70451], [70453, 70457],
    144         [70461, 70468], [70471, 70472], [70475, 70476], [70480, 70480],
    145         [70487, 70487], [70493, 70499], [70656, 70721], [70723, 70725],
    146         [70727, 70730], [70784, 70849], [70852, 70853], [70855, 70855],
    147         [71040, 71093], [71096, 71102], [71128, 71133], [71168, 71230],
    148         [71232, 71232], [71236, 71236], [71296, 71349], [71424, 71449],
    149         [71453, 71466], [71840, 71903], [71935, 71935], [72384, 72440],
    150         [72704, 72712], [72714, 72758], [72760, 72766], [72768, 72768],
    151         [72818, 72847], [72850, 72871], [72873, 72886], [73728, 74649],
    152         [74752, 74862], [74880, 75075], [77824, 78894], [82944, 83526],
    153         [92160, 92728], [92736, 92766], [92880, 92909], [92928, 92982],
    154         [92992, 92995], [93027, 93047], [93053, 93071], [93952, 94020],
    155         [94032, 94078], [94099, 94111], [94176, 94176], [94208, 100332],
    156         [100352, 101106], [110592, 110593], [113664, 113770],
    157         [113776, 113788], [113792, 113800], [113808, 113817],
    158         [113822, 113822], [119808, 119892], [119894, 119964],
    159         [119966, 119967], [119970, 119970], [119973, 119974],
    160         [119977, 119980], [119982, 119993], [119995, 119995],
    161         [119997, 120003], [120005, 120069], [120071, 120074],
    162         [120077, 120084], [120086, 120092], [120094, 120121],
    163         [120123, 120126], [120128, 120132], [120134, 120134],
    164         [120138, 120144], [120146, 120485], [120488, 120512],
    165         [120514, 120538], [120540, 120570], [120572, 120596],
    166         [120598, 120628], [120630, 120654], [120656, 120686],
    167         [120688, 120712], [120714, 120744], [120746, 120770],
    168         [120772, 120779], [122880, 122886], [122888, 122904],
    169         [122907, 122913], [122915, 122916], [122918, 122922],
    170         [124928, 125124], [125184, 125251], [125255, 125255],
    171         [126464, 126467], [126469, 126495], [126497, 126498],
    172         [126500, 126500], [126503, 126503], [126505, 126514],
    173         [126516, 126519], [126521, 126521], [126523, 126523],
    174         [126530, 126530], [126535, 126535], [126537, 126537],
    175         [126539, 126539], [126541, 126543], [126545, 126546],
    176         [126548, 126548], [126551, 126551], [126553, 126553],
    177         [126555, 126555], [126557, 126557], [126559, 126559],
    178         [126561, 126562], [126564, 126564], [126567, 126570],
    179         [126572, 126578], [126580, 126583], [126585, 126588],
    180         [126590, 126590], [126592, 126601], [126603, 126619],
    181         [126625, 126627], [126629, 126633], [126635, 126651],
    182         [127280, 127305], [127312, 127337], [127344, 127369],
    183         [131072, 173782], [173824, 177972], [177984, 178205],
    184         [178208, 183969], [194560, 195101]**/
     18        [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5],
     19        [00ba, 00ba], [00c0, 00d6], [00d8, 00f6], [00f8, 02c1],
     20        [02c6, 02d1], [02e0, 02e4], [02ec, 02ec], [02ee, 02ee],
     21        [0345, 0345], [0370, 0374], [0376, 0377], [037a, 037d],
     22        [037f, 037f], [0386, 0386], [0388, 038a], [038c, 038c],
     23        [038e, 03a1], [03a3, 03f5], [03f7, 0481], [048a, 052f],
     24        [0531, 0556], [0559, 0559], [0561, 0587], [05b0, 05bd],
     25        [05bf, 05bf], [05c1, 05c2], [05c4, 05c5], [05c7, 05c7],
     26        [05d0, 05ea], [05f0, 05f2], [0610, 061a], [0620, 0657],
     27        [0659, 065f], [066e, 06d3], [06d5, 06dc], [06e1, 06e8],
     28        [06ed, 06ef], [06fa, 06fc], [06ff, 06ff], [0710, 073f],
     29        [074d, 07b1], [07ca, 07ea], [07f4, 07f5], [07fa, 07fa],
     30        [0800, 0817], [081a, 082c], [0840, 0858], [08a0, 08b4],
     31        [08b6, 08bd], [08d4, 08df], [08e3, 08e9], [08f0, 093b],
     32        [093d, 094c], [094e, 0950], [0955, 0963], [0971, 0983],
     33        [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0],
     34        [09b2, 09b2], [09b6, 09b9], [09bd, 09c4], [09c7, 09c8],
     35        [09cb, 09cc], [09ce, 09ce], [09d7, 09d7], [09dc, 09dd],
     36        [09df, 09e3], [09f0, 09f1], [0a01, 0a03], [0a05, 0a0a],
     37        [0a0f, 0a10], [0a13, 0a28], [0a2a, 0a30], [0a32, 0a33],
     38        [0a35, 0a36], [0a38, 0a39], [0a3e, 0a42], [0a47, 0a48],
     39        [0a4b, 0a4c], [0a51, 0a51], [0a59, 0a5c], [0a5e, 0a5e],
     40        [0a70, 0a75], [0a81, 0a83], [0a85, 0a8d], [0a8f, 0a91],
     41        [0a93, 0aa8], [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9],
     42        [0abd, 0ac5], [0ac7, 0ac9], [0acb, 0acc], [0ad0, 0ad0],
     43        [0ae0, 0ae3], [0af9, 0af9], [0b01, 0b03], [0b05, 0b0c],
     44        [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33],
     45        [0b35, 0b39], [0b3d, 0b44], [0b47, 0b48], [0b4b, 0b4c],
     46        [0b56, 0b57], [0b5c, 0b5d], [0b5f, 0b63], [0b71, 0b71],
     47        [0b82, 0b83], [0b85, 0b8a], [0b8e, 0b90], [0b92, 0b95],
     48        [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f], [0ba3, 0ba4],
     49        [0ba8, 0baa], [0bae, 0bb9], [0bbe, 0bc2], [0bc6, 0bc8],
     50        [0bca, 0bcc], [0bd0, 0bd0], [0bd7, 0bd7], [0c00, 0c03],
     51        [0c05, 0c0c], [0c0e, 0c10], [0c12, 0c28], [0c2a, 0c39],
     52        [0c3d, 0c44], [0c46, 0c48], [0c4a, 0c4c], [0c55, 0c56],
     53        [0c58, 0c5a], [0c60, 0c63], [0c80, 0c83], [0c85, 0c8c],
     54        [0c8e, 0c90], [0c92, 0ca8], [0caa, 0cb3], [0cb5, 0cb9],
     55        [0cbd, 0cc4], [0cc6, 0cc8], [0cca, 0ccc], [0cd5, 0cd6],
     56        [0cde, 0cde], [0ce0, 0ce3], [0cf1, 0cf2], [0d01, 0d03],
     57        [0d05, 0d0c], [0d0e, 0d10], [0d12, 0d3a], [0d3d, 0d44],
     58        [0d46, 0d48], [0d4a, 0d4c], [0d4e, 0d4e], [0d54, 0d57],
     59        [0d5f, 0d63], [0d7a, 0d7f], [0d82, 0d83], [0d85, 0d96],
     60        [0d9a, 0db1], [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6],
     61        [0dcf, 0dd4], [0dd6, 0dd6], [0dd8, 0ddf], [0df2, 0df3],
     62        [0e01, 0e3a], [0e40, 0e46], [0e4d, 0e4d], [0e81, 0e82],
     63        [0e84, 0e84], [0e87, 0e88], [0e8a, 0e8a], [0e8d, 0e8d],
     64        [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5],
     65        [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb9], [0ebb, 0ebd],
     66        [0ec0, 0ec4], [0ec6, 0ec6], [0ecd, 0ecd], [0edc, 0edf],
     67        [0f00, 0f00], [0f40, 0f47], [0f49, 0f6c], [0f71, 0f81],
     68        [0f88, 0f97], [0f99, 0fbc], [1000, 1036], [1038, 1038],
     69        [103b, 103f], [1050, 1062], [1065, 1068], [106e, 1086],
     70        [108e, 108e], [109c, 109d], [10a0, 10c5], [10c7, 10c7],
     71        [10cd, 10cd], [10d0, 10fa], [10fc, 1248], [124a, 124d],
     72        [1250, 1256], [1258, 1258], [125a, 125d], [1260, 1288],
     73        [128a, 128d], [1290, 12b0], [12b2, 12b5], [12b8, 12be],
     74        [12c0, 12c0], [12c2, 12c5], [12c8, 12d6], [12d8, 1310],
     75        [1312, 1315], [1318, 135a], [135f, 135f], [1380, 138f],
     76        [13a0, 13f5], [13f8, 13fd], [1401, 166c], [166f, 167f],
     77        [1681, 169a], [16a0, 16ea], [16ee, 16f8], [1700, 170c],
     78        [170e, 1713], [1720, 1733], [1740, 1753], [1760, 176c],
     79        [176e, 1770], [1772, 1773], [1780, 17b3], [17b6, 17c8],
     80        [17d7, 17d7], [17dc, 17dc], [1820, 1877], [1880, 18aa],
     81        [18b0, 18f5], [1900, 191e], [1920, 192b], [1930, 1938],
     82        [1950, 196d], [1970, 1974], [1980, 19ab], [19b0, 19c9],
     83        [1a00, 1a1b], [1a20, 1a5e], [1a61, 1a74], [1aa7, 1aa7],
     84        [1b00, 1b33], [1b35, 1b43], [1b45, 1b4b], [1b80, 1ba9],
     85        [1bac, 1baf], [1bba, 1be5], [1be7, 1bf1], [1c00, 1c35],
     86        [1c4d, 1c4f], [1c5a, 1c7d], [1c80, 1c88], [1ce9, 1cec],
     87        [1cee, 1cf3], [1cf5, 1cf6], [1d00, 1dbf], [1de7, 1df4],
     88        [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
     89        [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
     90        [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe],
     91        [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3], [1fd6, 1fdb],
     92        [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc], [2071, 2071],
     93        [207f, 207f], [2090, 209c], [2102, 2102], [2107, 2107],
     94        [210a, 2113], [2115, 2115], [2119, 211d], [2124, 2124],
     95        [2126, 2126], [2128, 2128], [212a, 212d], [212f, 2139],
     96        [213c, 213f], [2145, 2149], [214e, 214e], [2160, 2188],
     97        [24b6, 24e9], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2ce4],
     98        [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25], [2d27, 2d27],
     99        [2d2d, 2d2d], [2d30, 2d67], [2d6f, 2d6f], [2d80, 2d96],
     100        [2da0, 2da6], [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe],
     101        [2dc0, 2dc6], [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde],
     102        [2de0, 2dff], [2e2f, 2e2f], [3005, 3007], [3021, 3029],
     103        [3031, 3035], [3038, 303c], [3041, 3096], [309d, 309f],
     104        [30a1, 30fa], [30fc, 30ff], [3105, 312d], [3131, 318e],
     105        [31a0, 31ba], [31f0, 31ff], [3400, 4db5], [4e00, 9fd5],
     106        [a000, a48c], [a4d0, a4fd], [a500, a60c], [a610, a61f],
     107        [a62a, a62b], [a640, a66e], [a674, a67b], [a67f, a6ef],
     108        [a717, a71f], [a722, a788], [a78b, a7ae], [a7b0, a7b7],
     109        [a7f7, a801], [a803, a805], [a807, a80a], [a80c, a827],
     110        [a840, a873], [a880, a8c3], [a8c5, a8c5], [a8f2, a8f7],
     111        [a8fb, a8fb], [a8fd, a8fd], [a90a, a92a], [a930, a952],
     112        [a960, a97c], [a980, a9b2], [a9b4, a9bf], [a9cf, a9cf],
     113        [a9e0, a9e4], [a9e6, a9ef], [a9fa, a9fe], [aa00, aa36],
     114        [aa40, aa4d], [aa60, aa76], [aa7a, aa7a], [aa7e, aabe],
     115        [aac0, aac0], [aac2, aac2], [aadb, aadd], [aae0, aaef],
     116        [aaf2, aaf5], [ab01, ab06], [ab09, ab0e], [ab11, ab16],
     117        [ab20, ab26], [ab28, ab2e], [ab30, ab5a], [ab5c, ab65],
     118        [ab70, abea], [ac00, d7a3], [d7b0, d7c6], [d7cb, d7fb],
     119        [f900, fa6d], [fa70, fad9], [fb00, fb06], [fb13, fb17],
     120        [fb1d, fb28], [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e],
     121        [fb40, fb41], [fb43, fb44], [fb46, fbb1], [fbd3, fd3d],
     122        [fd50, fd8f], [fd92, fdc7], [fdf0, fdfb], [fe70, fe74],
     123        [fe76, fefc], [ff21, ff3a], [ff41, ff5a], [ff66, ffbe],
     124        [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc],
     125        [10000, 1000b], [1000d, 10026], [10028, 1003a], [1003c, 1003d],
     126        [1003f, 1004d], [10050, 1005d], [10080, 100fa], [10140, 10174],
     127        [10280, 1029c], [102a0, 102d0], [10300, 1031f], [10330, 1034a],
     128        [10350, 1037a], [10380, 1039d], [103a0, 103c3], [103c8, 103cf],
     129        [103d1, 103d5], [10400, 1049d], [104b0, 104d3], [104d8, 104fb],
     130        [10500, 10527], [10530, 10563], [10600, 10736], [10740, 10755],
     131        [10760, 10767], [10800, 10805], [10808, 10808], [1080a, 10835],
     132        [10837, 10838], [1083c, 1083c], [1083f, 10855], [10860, 10876],
     133        [10880, 1089e], [108e0, 108f2], [108f4, 108f5], [10900, 10915],
     134        [10920, 10939], [10980, 109b7], [109be, 109bf], [10a00, 10a03],
     135        [10a05, 10a06], [10a0c, 10a13], [10a15, 10a17], [10a19, 10a33],
     136        [10a60, 10a7c], [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae4],
     137        [10b00, 10b35], [10b40, 10b55], [10b60, 10b72], [10b80, 10b91],
     138        [10c00, 10c48], [10c80, 10cb2], [10cc0, 10cf2], [11000, 11045],
     139        [11082, 110b8], [110d0, 110e8], [11100, 11132], [11150, 11172],
     140        [11176, 11176], [11180, 111bf], [111c1, 111c4], [111da, 111da],
     141        [111dc, 111dc], [11200, 11211], [11213, 11234], [11237, 11237],
     142        [1123e, 1123e], [11280, 11286], [11288, 11288], [1128a, 1128d],
     143        [1128f, 1129d], [1129f, 112a8], [112b0, 112e8], [11300, 11303],
     144        [11305, 1130c], [1130f, 11310], [11313, 11328], [1132a, 11330],
     145        [11332, 11333], [11335, 11339], [1133d, 11344], [11347, 11348],
     146        [1134b, 1134c], [11350, 11350], [11357, 11357], [1135d, 11363],
     147        [11400, 11441], [11443, 11445], [11447, 1144a], [11480, 114c1],
     148        [114c4, 114c5], [114c7, 114c7], [11580, 115b5], [115b8, 115be],
     149        [115d8, 115dd], [11600, 1163e], [11640, 11640], [11644, 11644],
     150        [11680, 116b5], [11700, 11719], [1171d, 1172a], [118a0, 118df],
     151        [118ff, 118ff], [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c36],
     152        [11c38, 11c3e], [11c40, 11c40], [11c72, 11c8f], [11c92, 11ca7],
     153        [11ca9, 11cb6], [12000, 12399], [12400, 1246e], [12480, 12543],
     154        [13000, 1342e], [14400, 14646], [16800, 16a38], [16a40, 16a5e],
     155        [16ad0, 16aed], [16b00, 16b36], [16b40, 16b43], [16b63, 16b77],
     156        [16b7d, 16b8f], [16f00, 16f44], [16f50, 16f7e], [16f93, 16f9f],
     157        [16fe0, 16fe0], [17000, 187ec], [18800, 18af2], [1b000, 1b001],
     158        [1bc00, 1bc6a], [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99],
     159        [1bc9e, 1bc9e], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
     160        [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
     161        [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
     162        [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
     163        [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
     164        [1d6a8, 1d6c0], [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714],
     165        [1d716, 1d734], [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788],
     166        [1d78a, 1d7a8], [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1e000, 1e006],
     167        [1e008, 1e018], [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a],
     168        [1e800, 1e8c4], [1e900, 1e943], [1e947, 1e947], [1ee00, 1ee03],
     169        [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
     170        [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
     171        [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
     172        [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
     173        [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
     174        [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
     175        [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
     176        [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
     177        [1f130, 1f149], [1f150, 1f169], [1f170, 1f189], [20000, 2a6d6],
     178        [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1], [2f800, 2fa1d]**/
    185179        const UnicodeSet codepoint_set
    186180            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    331325    namespace CI_ns {
    332326        /** Code Point Ranges for CI
    333         [39, 39], [46, 46], [58, 58], [94, 94], [96, 96], [168, 168],
    334         [173, 173], [175, 175], [180, 180], [183, 184], [688, 879],
    335         [884, 885], [890, 890], [900, 901], [903, 903], [1155, 1161],
    336         [1369, 1369], [1425, 1469], [1471, 1471], [1473, 1474],
    337         [1476, 1477], [1479, 1479], [1524, 1524], [1536, 1541],
    338         [1552, 1562], [1564, 1564], [1600, 1600], [1611, 1631],
    339         [1648, 1648], [1750, 1757], [1759, 1768], [1770, 1773],
    340         [1807, 1807], [1809, 1809], [1840, 1866], [1958, 1968],
    341         [2027, 2037], [2042, 2042], [2070, 2093], [2137, 2139],
    342         [2260, 2306], [2362, 2362], [2364, 2364], [2369, 2376],
    343         [2381, 2381], [2385, 2391], [2402, 2403], [2417, 2417],
    344         [2433, 2433], [2492, 2492], [2497, 2500], [2509, 2509],
    345         [2530, 2531], [2561, 2562], [2620, 2620], [2625, 2626],
    346         [2631, 2632], [2635, 2637], [2641, 2641], [2672, 2673],
    347         [2677, 2677], [2689, 2690], [2748, 2748], [2753, 2757],
    348         [2759, 2760], [2765, 2765], [2786, 2787], [2817, 2817],
    349         [2876, 2876], [2879, 2879], [2881, 2884], [2893, 2893],
    350         [2902, 2902], [2914, 2915], [2946, 2946], [3008, 3008],
    351         [3021, 3021], [3072, 3072], [3134, 3136], [3142, 3144],
    352         [3146, 3149], [3157, 3158], [3170, 3171], [3201, 3201],
    353         [3260, 3260], [3263, 3263], [3270, 3270], [3276, 3277],
    354         [3298, 3299], [3329, 3329], [3393, 3396], [3405, 3405],
    355         [3426, 3427], [3530, 3530], [3538, 3540], [3542, 3542],
    356         [3633, 3633], [3636, 3642], [3654, 3662], [3761, 3761],
    357         [3764, 3769], [3771, 3772], [3782, 3782], [3784, 3789],
    358         [3864, 3865], [3893, 3893], [3895, 3895], [3897, 3897],
    359         [3953, 3966], [3968, 3972], [3974, 3975], [3981, 3991],
    360         [3993, 4028], [4038, 4038], [4141, 4144], [4146, 4151],
    361         [4153, 4154], [4157, 4158], [4184, 4185], [4190, 4192],
    362         [4209, 4212], [4226, 4226], [4229, 4230], [4237, 4237],
    363         [4253, 4253], [4348, 4348], [4957, 4959], [5906, 5908],
    364         [5938, 5940], [5970, 5971], [6002, 6003], [6068, 6069],
    365         [6071, 6077], [6086, 6086], [6089, 6099], [6103, 6103],
    366         [6109, 6109], [6155, 6158], [6211, 6211], [6277, 6278],
    367         [6313, 6313], [6432, 6434], [6439, 6440], [6450, 6450],
    368         [6457, 6459], [6679, 6680], [6683, 6683], [6742, 6742],
    369         [6744, 6750], [6752, 6752], [6754, 6754], [6757, 6764],
    370         [6771, 6780], [6783, 6783], [6823, 6823], [6832, 6846],
    371         [6912, 6915], [6964, 6964], [6966, 6970], [6972, 6972],
    372         [6978, 6978], [7019, 7027], [7040, 7041], [7074, 7077],
    373         [7080, 7081], [7083, 7085], [7142, 7142], [7144, 7145],
    374         [7149, 7149], [7151, 7153], [7212, 7219], [7222, 7223],
    375         [7288, 7293], [7376, 7378], [7380, 7392], [7394, 7400],
    376         [7405, 7405], [7412, 7412], [7416, 7417], [7468, 7530],
    377         [7544, 7544], [7579, 7669], [7675, 7679], [8125, 8125],
    378         [8127, 8129], [8141, 8143], [8157, 8159], [8173, 8175],
    379         [8189, 8190], [8203, 8207], [8216, 8217], [8228, 8228],
    380         [8231, 8231], [8234, 8238], [8288, 8292], [8294, 8303],
    381         [8305, 8305], [8319, 8319], [8336, 8348], [8400, 8432],
    382         [11388, 11389], [11503, 11505], [11631, 11631], [11647, 11647],
    383         [11744, 11775], [11823, 11823], [12293, 12293], [12330, 12333],
    384         [12337, 12341], [12347, 12347], [12441, 12446], [12540, 12542],
    385         [40981, 40981], [42232, 42237], [42508, 42508], [42607, 42610],
    386         [42612, 42621], [42623, 42623], [42652, 42655], [42736, 42737],
    387         [42752, 42785], [42864, 42864], [42888, 42890], [43000, 43001],
    388         [43010, 43010], [43014, 43014], [43019, 43019], [43045, 43046],
    389         [43204, 43205], [43232, 43249], [43302, 43309], [43335, 43345],
    390         [43392, 43394], [43443, 43443], [43446, 43449], [43452, 43452],
    391         [43471, 43471], [43493, 43494], [43561, 43566], [43569, 43570],
    392         [43573, 43574], [43587, 43587], [43596, 43596], [43632, 43632],
    393         [43644, 43644], [43696, 43696], [43698, 43700], [43703, 43704],
    394         [43710, 43711], [43713, 43713], [43741, 43741], [43756, 43757],
    395         [43763, 43764], [43766, 43766], [43867, 43871], [44005, 44005],
    396         [44008, 44008], [44013, 44013], [64286, 64286], [64434, 64449],
    397         [65024, 65039], [65043, 65043], [65056, 65071], [65106, 65106],
    398         [65109, 65109], [65279, 65279], [65287, 65287], [65294, 65294],
    399         [65306, 65306], [65342, 65342], [65344, 65344], [65392, 65392],
    400         [65438, 65439], [65507, 65507], [65529, 65531], [66045, 66045],
    401         [66272, 66272], [66422, 66426], [68097, 68099], [68101, 68102],
    402         [68108, 68111], [68152, 68154], [68159, 68159], [68325, 68326],
    403         [69633, 69633], [69688, 69702], [69759, 69761], [69811, 69814],
    404         [69817, 69818], [69821, 69821], [69888, 69890], [69927, 69931],
    405         [69933, 69940], [70003, 70003], [70016, 70017], [70070, 70078],
    406         [70090, 70092], [70191, 70193], [70196, 70196], [70198, 70199],
    407         [70206, 70206], [70367, 70367], [70371, 70378], [70400, 70401],
    408         [70460, 70460], [70464, 70464], [70502, 70508], [70512, 70516],
    409         [70712, 70719], [70722, 70724], [70726, 70726], [70835, 70840],
    410         [70842, 70842], [70847, 70848], [70850, 70851], [71090, 71093],
    411         [71100, 71101], [71103, 71104], [71132, 71133], [71219, 71226],
    412         [71229, 71229], [71231, 71232], [71339, 71339], [71341, 71341],
    413         [71344, 71349], [71351, 71351], [71453, 71455], [71458, 71461],
    414         [71463, 71467], [72752, 72758], [72760, 72765], [72767, 72767],
    415         [72850, 72871], [72874, 72880], [72882, 72883], [72885, 72886],
    416         [92912, 92916], [92976, 92982], [92992, 92995], [94095, 94111],
    417         [94176, 94176], [113821, 113822], [113824, 113827],
    418         [119143, 119145], [119155, 119170], [119173, 119179],
    419         [119210, 119213], [119362, 119364], [121344, 121398],
    420         [121403, 121452], [121461, 121461], [121476, 121476],
    421         [121499, 121503], [121505, 121519], [122880, 122886],
    422         [122888, 122904], [122907, 122913], [122915, 122916],
    423         [122918, 122922], [125136, 125142], [125252, 125258],
    424         [127995, 127999], [917505, 917505], [917536, 917631],
    425         [917760, 917999]**/
     327        [0027, 0027], [002e, 002e], [003a, 003a], [005e, 005e],
     328        [0060, 0060], [00a8, 00a8], [00ad, 00ad], [00af, 00af],
     329        [00b4, 00b4], [00b7, 00b8], [02b0, 036f], [0374, 0375],
     330        [037a, 037a], [0384, 0385], [0387, 0387], [0483, 0489],
     331        [0559, 0559], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
     332        [05c4, 05c5], [05c7, 05c7], [05f4, 05f4], [0600, 0605],
     333        [0610, 061a], [061c, 061c], [0640, 0640], [064b, 065f],
     334        [0670, 0670], [06d6, 06dd], [06df, 06e8], [06ea, 06ed],
     335        [070f, 070f], [0711, 0711], [0730, 074a], [07a6, 07b0],
     336        [07eb, 07f5], [07fa, 07fa], [0816, 082d], [0859, 085b],
     337        [08d4, 0902], [093a, 093a], [093c, 093c], [0941, 0948],
     338        [094d, 094d], [0951, 0957], [0962, 0963], [0971, 0971],
     339        [0981, 0981], [09bc, 09bc], [09c1, 09c4], [09cd, 09cd],
     340        [09e2, 09e3], [0a01, 0a02], [0a3c, 0a3c], [0a41, 0a42],
     341        [0a47, 0a48], [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71],
     342        [0a75, 0a75], [0a81, 0a82], [0abc, 0abc], [0ac1, 0ac5],
     343        [0ac7, 0ac8], [0acd, 0acd], [0ae2, 0ae3], [0b01, 0b01],
     344        [0b3c, 0b3c], [0b3f, 0b3f], [0b41, 0b44], [0b4d, 0b4d],
     345        [0b56, 0b56], [0b62, 0b63], [0b82, 0b82], [0bc0, 0bc0],
     346        [0bcd, 0bcd], [0c00, 0c00], [0c3e, 0c40], [0c46, 0c48],
     347        [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63], [0c81, 0c81],
     348        [0cbc, 0cbc], [0cbf, 0cbf], [0cc6, 0cc6], [0ccc, 0ccd],
     349        [0ce2, 0ce3], [0d01, 0d01], [0d41, 0d44], [0d4d, 0d4d],
     350        [0d62, 0d63], [0dca, 0dca], [0dd2, 0dd4], [0dd6, 0dd6],
     351        [0e31, 0e31], [0e34, 0e3a], [0e46, 0e4e], [0eb1, 0eb1],
     352        [0eb4, 0eb9], [0ebb, 0ebc], [0ec6, 0ec6], [0ec8, 0ecd],
     353        [0f18, 0f19], [0f35, 0f35], [0f37, 0f37], [0f39, 0f39],
     354        [0f71, 0f7e], [0f80, 0f84], [0f86, 0f87], [0f8d, 0f97],
     355        [0f99, 0fbc], [0fc6, 0fc6], [102d, 1030], [1032, 1037],
     356        [1039, 103a], [103d, 103e], [1058, 1059], [105e, 1060],
     357        [1071, 1074], [1082, 1082], [1085, 1086], [108d, 108d],
     358        [109d, 109d], [10fc, 10fc], [135d, 135f], [1712, 1714],
     359        [1732, 1734], [1752, 1753], [1772, 1773], [17b4, 17b5],
     360        [17b7, 17bd], [17c6, 17c6], [17c9, 17d3], [17d7, 17d7],
     361        [17dd, 17dd], [180b, 180e], [1843, 1843], [1885, 1886],
     362        [18a9, 18a9], [1920, 1922], [1927, 1928], [1932, 1932],
     363        [1939, 193b], [1a17, 1a18], [1a1b, 1a1b], [1a56, 1a56],
     364        [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62], [1a65, 1a6c],
     365        [1a73, 1a7c], [1a7f, 1a7f], [1aa7, 1aa7], [1ab0, 1abe],
     366        [1b00, 1b03], [1b34, 1b34], [1b36, 1b3a], [1b3c, 1b3c],
     367        [1b42, 1b42], [1b6b, 1b73], [1b80, 1b81], [1ba2, 1ba5],
     368        [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6], [1be8, 1be9],
     369        [1bed, 1bed], [1bef, 1bf1], [1c2c, 1c33], [1c36, 1c37],
     370        [1c78, 1c7d], [1cd0, 1cd2], [1cd4, 1ce0], [1ce2, 1ce8],
     371        [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9], [1d2c, 1d6a],
     372        [1d78, 1d78], [1d9b, 1df5], [1dfb, 1dff], [1fbd, 1fbd],
     373        [1fbf, 1fc1], [1fcd, 1fcf], [1fdd, 1fdf], [1fed, 1fef],
     374        [1ffd, 1ffe], [200b, 200f], [2018, 2019], [2024, 2024],
     375        [2027, 2027], [202a, 202e], [2060, 2064], [2066, 206f],
     376        [2071, 2071], [207f, 207f], [2090, 209c], [20d0, 20f0],
     377        [2c7c, 2c7d], [2cef, 2cf1], [2d6f, 2d6f], [2d7f, 2d7f],
     378        [2de0, 2dff], [2e2f, 2e2f], [3005, 3005], [302a, 302d],
     379        [3031, 3035], [303b, 303b], [3099, 309e], [30fc, 30fe],
     380        [a015, a015], [a4f8, a4fd], [a60c, a60c], [a66f, a672],
     381        [a674, a67d], [a67f, a67f], [a69c, a69f], [a6f0, a6f1],
     382        [a700, a721], [a770, a770], [a788, a78a], [a7f8, a7f9],
     383        [a802, a802], [a806, a806], [a80b, a80b], [a825, a826],
     384        [a8c4, a8c5], [a8e0, a8f1], [a926, a92d], [a947, a951],
     385        [a980, a982], [a9b3, a9b3], [a9b6, a9b9], [a9bc, a9bc],
     386        [a9cf, a9cf], [a9e5, a9e6], [aa29, aa2e], [aa31, aa32],
     387        [aa35, aa36], [aa43, aa43], [aa4c, aa4c], [aa70, aa70],
     388        [aa7c, aa7c], [aab0, aab0], [aab2, aab4], [aab7, aab8],
     389        [aabe, aabf], [aac1, aac1], [aadd, aadd], [aaec, aaed],
     390        [aaf3, aaf4], [aaf6, aaf6], [ab5b, ab5f], [abe5, abe5],
     391        [abe8, abe8], [abed, abed], [fb1e, fb1e], [fbb2, fbc1],
     392        [fe00, fe0f], [fe13, fe13], [fe20, fe2f], [fe52, fe52],
     393        [fe55, fe55], [feff, feff], [ff07, ff07], [ff0e, ff0e],
     394        [ff1a, ff1a], [ff3e, ff3e], [ff40, ff40], [ff70, ff70],
     395        [ff9e, ff9f], [ffe3, ffe3], [fff9, fffb], [101fd, 101fd],
     396        [102e0, 102e0], [10376, 1037a], [10a01, 10a03], [10a05, 10a06],
     397        [10a0c, 10a0f], [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6],
     398        [11001, 11001], [11038, 11046], [1107f, 11081], [110b3, 110b6],
     399        [110b9, 110ba], [110bd, 110bd], [11100, 11102], [11127, 1112b],
     400        [1112d, 11134], [11173, 11173], [11180, 11181], [111b6, 111be],
     401        [111ca, 111cc], [1122f, 11231], [11234, 11234], [11236, 11237],
     402        [1123e, 1123e], [112df, 112df], [112e3, 112ea], [11300, 11301],
     403        [1133c, 1133c], [11340, 11340], [11366, 1136c], [11370, 11374],
     404        [11438, 1143f], [11442, 11444], [11446, 11446], [114b3, 114b8],
     405        [114ba, 114ba], [114bf, 114c0], [114c2, 114c3], [115b2, 115b5],
     406        [115bc, 115bd], [115bf, 115c0], [115dc, 115dd], [11633, 1163a],
     407        [1163d, 1163d], [1163f, 11640], [116ab, 116ab], [116ad, 116ad],
     408        [116b0, 116b5], [116b7, 116b7], [1171d, 1171f], [11722, 11725],
     409        [11727, 1172b], [11c30, 11c36], [11c38, 11c3d], [11c3f, 11c3f],
     410        [11c92, 11ca7], [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6],
     411        [16af0, 16af4], [16b30, 16b36], [16b40, 16b43], [16f8f, 16f9f],
     412        [16fe0, 16fe0], [1bc9d, 1bc9e], [1bca0, 1bca3], [1d167, 1d169],
     413        [1d173, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244],
     414        [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84],
     415        [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018],
     416        [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6],
     417        [1e944, 1e94a], [1f3fb, 1f3ff], [e0001, e0001], [e0020, e007f],
     418        [e0100, e01ef]**/
    426419        const UnicodeSet codepoint_set
    427420            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
     
    518511    namespace CWCF_ns {
    519512        /** Code Point Ranges for CWCF
    520         [65, 90], [181, 181], [192, 214], [216, 223], [256, 256],
    521         [258, 258], [260, 260], [262, 262], [264, 264], [266, 266],
    522         [268, 268], [270, 270], [272, 272], [274, 274], [276, 276],
    523         [278, 278], [280, 280], [282, 282], [284, 284], [286, 286],
    524         [288, 288], [290, 290], [292, 292], [294, 294], [296, 296],
    525         [298, 298], [300, 300], [302, 302], [304, 304], [306, 306],
    526         [308, 308], [310, 310], [313, 313], [315, 315], [317, 317],
    527         [319, 319], [321, 321], [323, 323], [325, 325], [327, 327],
    528         [329, 330], [332, 332], [334, 334], [336, 336], [338, 338],
    529         [340, 340], [342, 342], [344, 344], [346, 346], [348, 348],
    530         [350, 350], [352, 352], [354, 354], [356, 356], [358, 358],
    531         [360, 360], [362, 362], [364, 364], [366, 366], [368, 368],
    532         [370, 370], [372, 372], [374, 374], [376, 377], [379, 379],
    533         [381, 381], [383, 383], [385, 386], [388, 388], [390, 391],
    534         [393, 395], [398, 401], [403, 404], [406, 408], [412, 413],
    535         [415, 416], [418, 418], [420, 420], [422, 423], [425, 425],
    536         [428, 428], [430, 431], [433, 435], [437, 437], [439, 440],
    537         [444, 444], [452, 453], [455, 456], [458, 459], [461, 461],
    538         [463, 463], [465, 465], [467, 467], [469, 469], [471, 471],
    539         [473, 473], [475, 475], [478, 478], [480, 480], [482, 482],
    540         [484, 484], [486, 486], [488, 488], [490, 490], [492, 492],
    541         [494, 494], [497, 498], [500, 500], [502, 504], [506, 506],
    542         [508, 508], [510, 510], [512, 512], [514, 514], [516, 516],
    543         [518, 518], [520, 520], [522, 522], [524, 524], [526, 526],
    544         [528, 528], [530, 530], [532, 532], [534, 534], [536, 536],
    545         [538, 538], [540, 540], [542, 542], [544, 544], [546, 546],
    546         [548, 548], [550, 550], [552, 552], [554, 554], [556, 556],
    547         [558, 558], [560, 560], [562, 562], [570, 571], [573, 574],
    548         [577, 577], [579, 582], [584, 584], [586, 586], [588, 588],
    549         [590, 590], [837, 837], [880, 880], [882, 882], [886, 886],
    550         [895, 895], [902, 902], [904, 906], [908, 908], [910, 911],
    551         [913, 929], [931, 939], [962, 962], [975, 977], [981, 982],
    552         [984, 984], [986, 986], [988, 988], [990, 990], [992, 992],
    553         [994, 994], [996, 996], [998, 998], [1000, 1000], [1002, 1002],
    554         [1004, 1004], [1006, 1006], [1008, 1009], [1012, 1013],
    555         [1015, 1015], [1017, 1018], [1021, 1071], [1120, 1120],
    556         [1122, 1122], [1124, 1124], [1126, 1126], [1128, 1128],
    557         [1130, 1130], [1132, 1132], [1134, 1134], [1136, 1136],
    558         [1138, 1138], [1140, 1140], [1142, 1142], [1144, 1144],
    559         [1146, 1146], [1148, 1148], [1150, 1150], [1152, 1152],
    560         [1162, 1162], [1164, 1164], [1166, 1166], [1168, 1168],
    561         [1170, 1170], [1172, 1172], [1174, 1174], [1176, 1176],
    562         [1178, 1178], [1180, 1180], [1182, 1182], [1184, 1184],
    563         [1186, 1186], [1188, 1188], [1190, 1190], [1192, 1192],
    564         [1194, 1194], [1196, 1196], [1198, 1198], [1200, 1200],
    565         [1202, 1202], [1204, 1204], [1206, 1206], [1208, 1208],
    566         [1210, 1210], [1212, 1212], [1214, 1214], [1216, 1217],
    567         [1219, 1219], [1221, 1221], [1223, 1223], [1225, 1225],
    568         [1227, 1227], [1229, 1229], [1232, 1232], [1234, 1234],
    569         [1236, 1236], [1238, 1238], [1240, 1240], [1242, 1242],
    570         [1244, 1244], [1246, 1246], [1248, 1248], [1250, 1250],
    571         [1252, 1252], [1254, 1254], [1256, 1256], [1258, 1258],
    572         [1260, 1260], [1262, 1262], [1264, 1264], [1266, 1266],
    573         [1268, 1268], [1270, 1270], [1272, 1272], [1274, 1274],
    574         [1276, 1276], [1278, 1278], [1280, 1280], [1282, 1282],
    575         [1284, 1284], [1286, 1286], [1288, 1288], [1290, 1290],
    576         [1292, 1292], [1294, 1294], [1296, 1296], [1298, 1298],
    577         [1300, 1300], [1302, 1302], [1304, 1304], [1306, 1306],
    578         [1308, 1308], [1310, 1310], [1312, 1312], [1314, 1314],
    579         [1316, 1316], [1318, 1318], [1320, 1320], [1322, 1322],
    580         [1324, 1324], [1326, 1326], [1329, 1366], [1415, 1415],
    581         [4256, 4293], [4295, 4295], [4301, 4301], [5112, 5117],
    582         [7296, 7304], [7680, 7680], [7682, 7682], [7684, 7684],
    583         [7686, 7686], [7688, 7688], [7690, 7690], [7692, 7692],
    584         [7694, 7694], [7696, 7696], [7698, 7698], [7700, 7700],
    585         [7702, 7702], [7704, 7704], [7706, 7706], [7708, 7708],
    586         [7710, 7710], [7712, 7712], [7714, 7714], [7716, 7716],
    587         [7718, 7718], [7720, 7720], [7722, 7722], [7724, 7724],
    588         [7726, 7726], [7728, 7728], [7730, 7730], [7732, 7732],
    589         [7734, 7734], [7736, 7736], [7738, 7738], [7740, 7740],
    590         [7742, 7742], [7744, 7744], [7746, 7746], [7748, 7748],
    591         [7750, 7750], [7752, 7752], [7754, 7754], [7756, 7756],
    592         [7758, 7758], [7760, 7760], [7762, 7762], [7764, 7764],
    593         [7766, 7766], [7768, 7768], [7770, 7770], [7772, 7772],
    594         [7774, 7774], [7776, 7776], [7778, 7778], [7780, 7780],
    595         [7782, 7782], [7784, 7784], [7786, 7786], [7788, 7788],
    596         [7790, 7790], [7792, 7792], [7794, 7794], [7796, 7796],
    597         [7798, 7798], [7800, 7800], [7802, 7802], [7804, 7804],
    598         [7806, 7806], [7808, 7808], [7810, 7810], [7812, 7812],
    599         [7814, 7814], [7816, 7816], [7818, 7818], [7820, 7820],
    600         [7822, 7822], [7824, 7824], [7826, 7826], [7828, 7828],
    601         [7834, 7835], [7838, 7838], [7840, 7840], [7842, 7842],
    602         [7844, 7844], [7846, 7846], [7848, 7848], [7850, 7850],
    603         [7852, 7852], [7854, 7854], [7856, 7856], [7858, 7858],
    604         [7860, 7860], [7862, 7862], [7864, 7864], [7866, 7866],
    605         [7868, 7868], [7870, 7870], [7872, 7872], [7874, 7874],
    606         [7876, 7876], [7878, 7878], [7880, 7880], [7882, 7882],
    607         [7884, 7884], [7886, 7886], [7888, 7888], [7890, 7890],
    608         [7892, 7892], [7894, 7894], [7896, 7896], [7898, 7898],
    609         [7900, 7900], [7902, 7902], [7904, 7904], [7906, 7906],
    610         [7908, 7908], [7910, 7910], [7912, 7912], [7914, 7914],
    611         [7916, 7916], [7918, 7918], [7920, 7920], [7922, 7922],
    612         [7924, 7924], [7926, 7926], [7928, 7928], [7930, 7930],
    613         [7932, 7932], [7934, 7934], [7944, 7951], [7960, 7965],
    614         [7976, 7983], [7992, 7999], [8008, 8013], [8025, 8025],
    615         [8027, 8027], [8029, 8029], [8031, 8031], [8040, 8047],
    616         [8064, 8111], [8114, 8116], [8119, 8124], [8130, 8132],
    617         [8135, 8140], [8152, 8155], [8168, 8172], [8178, 8180],
    618         [8183, 8188], [8486, 8486], [8490, 8491], [8498, 8498],
    619         [8544, 8559], [8579, 8579], [9398, 9423], [11264, 11310],
    620         [11360, 11360], [11362, 11364], [11367, 11367], [11369, 11369],
    621         [11371, 11371], [11373, 11376], [11378, 11378], [11381, 11381],
    622         [11390, 11392], [11394, 11394], [11396, 11396], [11398, 11398],
    623         [11400, 11400], [11402, 11402], [11404, 11404], [11406, 11406],
    624         [11408, 11408], [11410, 11410], [11412, 11412], [11414, 11414],
    625         [11416, 11416], [11418, 11418], [11420, 11420], [11422, 11422],
    626         [11424, 11424], [11426, 11426], [11428, 11428], [11430, 11430],
    627         [11432, 11432], [11434, 11434], [11436, 11436], [11438, 11438],
    628         [11440, 11440], [11442, 11442], [11444, 11444], [11446, 11446],
    629         [11448, 11448], [11450, 11450], [11452, 11452], [11454, 11454],
    630         [11456, 11456], [11458, 11458], [11460, 11460], [11462, 11462],
    631         [11464, 11464], [11466, 11466], [11468, 11468], [11470, 11470],
    632         [11472, 11472], [11474, 11474], [11476, 11476], [11478, 11478],
    633         [11480, 11480], [11482, 11482], [11484, 11484], [11486, 11486],
    634         [11488, 11488], [11490, 11490], [11499, 11499], [11501, 11501],
    635         [11506, 11506], [42560, 42560], [42562, 42562], [42564, 42564],
    636         [42566, 42566], [42568, 42568], [42570, 42570], [42572, 42572],
    637         [42574, 42574], [42576, 42576], [42578, 42578], [42580, 42580],
    638         [42582, 42582], [42584, 42584], [42586, 42586], [42588, 42588],
    639         [42590, 42590], [42592, 42592], [42594, 42594], [42596, 42596],
    640         [42598, 42598], [42600, 42600], [42602, 42602], [42604, 42604],
    641         [42624, 42624], [42626, 42626], [42628, 42628], [42630, 42630],
    642         [42632, 42632], [42634, 42634], [42636, 42636], [42638, 42638],
    643         [42640, 42640], [42642, 42642], [42644, 42644], [42646, 42646],
    644         [42648, 42648], [42650, 42650], [42786, 42786], [42788, 42788],
    645         [42790, 42790], [42792, 42792], [42794, 42794], [42796, 42796],
    646         [42798, 42798], [42802, 42802], [42804, 42804], [42806, 42806],
    647         [42808, 42808], [42810, 42810], [42812, 42812], [42814, 42814],
    648         [42816, 42816], [42818, 42818], [42820, 42820], [42822, 42822],
    649         [42824, 42824], [42826, 42826], [42828, 42828], [42830, 42830],
    650         [42832, 42832], [42834, 42834], [42836, 42836], [42838, 42838],
    651         [42840, 42840], [42842, 42842], [42844, 42844], [42846, 42846],
    652         [42848, 42848], [42850, 42850], [42852, 42852], [42854, 42854],
    653         [42856, 42856], [42858, 42858], [42860, 42860], [42862, 42862],
    654         [42873, 42873], [42875, 42875], [42877, 42878], [42880, 42880],
    655         [42882, 42882], [42884, 42884], [42886, 42886], [42891, 42891],
    656         [42893, 42893], [42896, 42896], [42898, 42898], [42902, 42902],
    657         [42904, 42904], [42906, 42906], [42908, 42908], [42910, 42910],
    658         [42912, 42912], [42914, 42914], [42916, 42916], [42918, 42918],
    659         [42920, 42920], [42922, 42926], [42928, 42932], [42934, 42934],
    660         [43888, 43967], [64256, 64262], [64275, 64279], [65313, 65338],
    661         [66560, 66599], [66736, 66771], [68736, 68786], [71840, 71871],
    662         [125184, 125217]**/
     513        [0041, 005a], [00b5, 00b5], [00c0, 00d6], [00d8, 00df],
     514        [0100, 0100], [0102, 0102], [0104, 0104], [0106, 0106],
     515        [0108, 0108], [010a, 010a], [010c, 010c], [010e, 010e],
     516        [0110, 0110], [0112, 0112], [0114, 0114], [0116, 0116],
     517        [0118, 0118], [011a, 011a], [011c, 011c], [011e, 011e],
     518        [0120, 0120], [0122, 0122], [0124, 0124], [0126, 0126],
     519        [0128, 0128], [012a, 012a], [012c, 012c], [012e, 012e],
     520        [0130, 0130], [0132, 0132], [0134, 0134], [0136, 0136],
     521        [0139, 0139], [013b, 013b], [013d, 013d], [013f, 013f],
     522        [0141, 0141], [0143, 0143], [0145, 0145], [0147, 0147],
     523        [0149, 014a], [014c, 014c], [014e, 014e], [0150, 0150],
     524        [0152, 0152], [0154, 0154], [0156, 0156], [0158, 0158],
     525        [015a, 015a], [015c, 015c], [015e, 015e], [0160, 0160],
     526        [0162, 0162], [0164, 0164], [0166, 0166], [0168, 0168],
     527        [016a, 016a], [016c, 016c], [016e, 016e], [0170, 0170],
     528        [0172, 0172], [0174, 0174], [0176, 0176], [0178, 0179],
     529        [017b, 017b], [017d, 017d], [017f, 017f], [0181, 0182],
     530        [0184, 0184], [0186, 0187], [0189, 018b], [018e, 0191],
     531        [0193, 0194], [0196, 0198], [019c, 019d], [019f, 01a0],
     532        [01a2, 01a2], [01a4, 01a4], [01a6, 01a7], [01a9, 01a9],
     533        [01ac, 01ac], [01ae, 01af], [01b1, 01b3], [01b5, 01b5],
     534        [01b7, 01b8], [01bc, 01bc], [01c4, 01c5], [01c7, 01c8],
     535        [01ca, 01cb], [01cd, 01cd], [01cf, 01cf], [01d1, 01d1],
     536        [01d3, 01d3], [01d5, 01d5], [01d7, 01d7], [01d9, 01d9],
     537        [01db, 01db], [01de, 01de], [01e0, 01e0], [01e2, 01e2],
     538        [01e4, 01e4], [01e6, 01e6], [01e8, 01e8], [01ea, 01ea],
     539        [01ec, 01ec], [01ee, 01ee], [01f1, 01f2], [01f4, 01f4],
     540        [01f6, 01f8], [01fa, 01fa], [01fc, 01fc], [01fe, 01fe],
     541        [0200, 0200], [0202, 0202], [0204, 0204], [0206, 0206],
     542        [0208, 0208], [020a, 020a], [020c, 020c], [020e, 020e],
     543        [0210, 0210], [0212, 0212], [0214, 0214], [0216, 0216],
     544        [0218, 0218], [021a, 021a], [021c, 021c], [021e, 021e],
     545        [0220, 0220], [0222, 0222], [0224, 0224], [0226, 0226],
     546        [0228, 0228], [022a, 022a], [022c, 022c], [022e, 022e],
     547        [0230, 0230], [0232, 0232], [023a, 023b], [023d, 023e],
     548        [0241, 0241], [0243, 0246], [0248, 0248], [024a, 024a],
     549        [024c, 024c], [024e, 024e], [0345, 0345], [0370, 0370],
     550        [0372, 0372], [0376, 0376], [037f, 037f], [0386, 0386],
     551        [0388, 038a], [038c, 038c], [038e, 038f], [0391, 03a1],
     552        [03a3, 03ab], [03c2, 03c2], [03cf, 03d1], [03d5, 03d6],
     553        [03d8, 03d8], [03da, 03da], [03dc, 03dc], [03de, 03de],
     554        [03e0, 03e0], [03e2, 03e2], [03e4, 03e4], [03e6, 03e6],
     555        [03e8, 03e8], [03ea, 03ea], [03ec, 03ec], [03ee, 03ee],
     556        [03f0, 03f1], [03f4, 03f5], [03f7, 03f7], [03f9, 03fa],
     557        [03fd, 042f], [0460, 0460], [0462, 0462], [0464, 0464],
     558        [0466, 0466], [0468, 0468], [046a, 046a], [046c, 046c],
     559        [046e, 046e], [0470, 0470], [0472, 0472], [0474, 0474],
     560        [0476, 0476], [0478, 0478], [047a, 047a], [047c, 047c],
     561        [047e, 047e], [0480, 0480], [048a, 048a], [048c, 048c],
     562        [048e, 048e], [0490, 0490], [0492, 0492], [0494, 0494],
     563        [0496, 0496], [0498, 0498], [049a, 049a], [049c, 049c],
     564        [049e, 049e], [04a0, 04a0], [04a2, 04a2], [04a4, 04a4],
     565        [04a6, 04a6], [04a8, 04a8], [04aa, 04aa], [04ac, 04ac],
     566        [04ae, 04ae], [04b0, 04b0], [04b2, 04b2], [04b4, 04b4],
     567        [04b6, 04b6], [04b8, 04b8], [04ba, 04ba], [04bc, 04bc],
     568        [04be, 04be], [04c0, 04c1], [04c3, 04c3], [04c5, 04c5],
     569        [04c7, 04c7], [04c9, 04c9], [04cb, 04cb], [04cd, 04cd],
     570        [04d0, 04d0], [04d2, 04d2], [04d4, 04d4], [04d6, 04d6],
     571        [04d8, 04d8], [04da, 04da], [04dc, 04dc], [04de, 04de],
     572        [04e0, 04e0], [04e2, 04e2], [04e4, 04e4], [04e6, 04e6],
     573        [04e8, 04e8], [04ea, 04ea], [04ec, 04ec], [04ee, 04ee],
     574        [04f0, 04f0], [04f2, 04f2], [04f4, 04f4], [04f6, 04f6],
     575        [04f8, 04f8], [04fa, 04fa], [04fc, 04fc], [04fe, 04fe],
     576        [0500, 0500], [0502, 0502], [0504, 0504], [0506, 0506],
     577        [0508, 0508], [050a, 050a], [050c, 050c], [050e, 050e],
     578        [0510, 0510], [0512, 0512], [0514, 0514], [0516, 0516],
     579        [0518, 0518], [051a, 051a], [051c, 051c], [051e, 051e],
     580        [0520, 0520], [0522, 0522], [0524, 0524], [0526, 0526],
     581        [0528, 0528], [052a, 052a], [052c, 052c], [052e, 052e],
     582        [0531, 0556], [0587, 0587], [10a0, 10c5], [10c7, 10c7],
     583        [10cd, 10cd], [13f8, 13fd], [1c80, 1c88], [1e00, 1e00],
     584        [1e02, 1e02], [1e04, 1e04], [1e06, 1e06], [1e08, 1e08],
     585        [1e0a, 1e0a], [1e0c, 1e0c], [1e0e, 1e0e], [1e10, 1e10],
     586        [1e12, 1e12], [1e14, 1e14], [1e16, 1e16], [1e18, 1e18],
     587        [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e], [1e20, 1e20],
     588        [1e22, 1e22], [1e24, 1e24], [1e26, 1e26], [1e28, 1e28],
     589        [1e2a, 1e2a], [1e2c, 1e2c], [1e2e, 1e2e], [1e30, 1e30],
     590        [1e32, 1e32], [1e34, 1e34], [1e36, 1e36], [1e38, 1e38],
     591        [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e], [1e40, 1e40],
     592        [1e42, 1e42], [1e44, 1e44], [1e46, 1e46], [1e48, 1e48],
     593        [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e], [1e50, 1e50],
     594        [1e52, 1e52], [1e54, 1e54], [1e56, 1e56], [1e58, 1e58],
     595        [1e5a, 1e5a], [1e5c, 1e5c], [1e5e, 1e5e], [1e60, 1e60],
     596        [1e62, 1e62], [1e64, 1e64], [1e66, 1e66], [1e68, 1e68],
     597        [1e6a, 1e6a], [1e6c, 1e6c], [1e6e, 1e6e], [1e70, 1e70],
     598        [1e72, 1e72], [1e74, 1e74], [1e76, 1e76], [1e78, 1e78],
     599        [1e7a, 1e7a], [1e7c, 1e7c], [1e7e, 1e7e], [1e80, 1e80],
     600        [1e82, 1e82], [1e84, 1e84], [1e86, 1e86], [1e88, 1e88],
     601        [1e8a, 1e8a], [1e8c, 1e8c], [1e8e, 1e8e], [1e90, 1e90],
     602        [1e92, 1e92], [1e94, 1e94], [1e9a, 1e9b], [1e9e, 1e9e],
     603        [1ea0, 1ea0], [1ea2, 1ea2], [1ea4, 1ea4], [1ea6, 1ea6],
     604        [1ea8, 1ea8], [1eaa, 1eaa], [1eac, 1eac], [1eae, 1eae],
     605        [1eb0, 1eb0], [1eb2, 1eb2], [1eb4, 1eb4], [1eb6, 1eb6],
     606        [1eb8, 1eb8], [1eba, 1eba], [1ebc, 1ebc], [1ebe, 1ebe],
     607        [1ec0, 1ec0], [1ec2, 1ec2], [1ec4, 1ec4], [1ec6, 1ec6],
     608        [1ec8, 1ec8], [1eca, 1eca], [1ecc, 1ecc], [1ece, 1ece],
     609        [1ed0, 1ed0], [1ed2, 1ed2], [1ed4, 1ed4], [1ed6, 1ed6],
     610        [1ed8, 1ed8], [1eda, 1eda], [1edc, 1edc], [1ede, 1ede],
     611        [1ee0, 1ee0], [1ee2, 1ee2], [1ee4, 1ee4], [1ee6, 1ee6],
     612        [1ee8, 1ee8], [1eea, 1eea], [1eec, 1eec], [1eee, 1eee],
     613        [1ef0, 1ef0], [1ef2, 1ef2], [1ef4, 1ef4], [1ef6, 1ef6],
     614        [1ef8, 1ef8], [1efa, 1efa], [1efc, 1efc], [1efe, 1efe],
     615        [1f08, 1f0f], [1f18, 1f1d], [1f28, 1f2f], [1f38, 1f3f],
     616        [1f48, 1f4d], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
     617        [1f5f, 1f5f], [1f68, 1f6f], [1f80, 1faf], [1fb2, 1fb4],
     618        [1fb7, 1fbc], [1fc2, 1fc4], [1fc7, 1fcc], [1fd8, 1fdb],
     619        [1fe8, 1fec], [1ff2, 1ff4], [1ff7, 1ffc], [2126, 2126],
     620        [212a, 212b], [2132, 2132], [2160, 216f], [2183, 2183],
     621        [24b6, 24cf], [2c00, 2c2e], [2c60, 2c60], [2c62, 2c64],
     622        [2c67, 2c67], [2c69, 2c69], [2c6b, 2c6b], [2c6d, 2c70],
     623        [2c72, 2c72], [2c75, 2c75], [2c7e, 2c80], [2c82, 2c82],
     624        [2c84, 2c84], [2c86, 2c86], [2c88, 2c88], [2c8a, 2c8a],
     625        [2c8c, 2c8c], [2c8e, 2c8e], [2c90, 2c90], [2c92, 2c92],
     626        [2c94, 2c94], [2c96, 2c96], [2c98, 2c98], [2c9a, 2c9a],
     627        [2c9c, 2c9c], [2c9e, 2c9e], [2ca0, 2ca0], [2ca2, 2ca2],
     628        [2ca4, 2ca4], [2ca6, 2ca6], [2ca8, 2ca8], [2caa, 2caa],
     629        [2cac, 2cac], [2cae, 2cae], [2cb0, 2cb0], [2cb2, 2cb2],
     630        [2cb4, 2cb4], [2cb6, 2cb6], [2cb8, 2cb8], [2cba, 2cba],
     631        [2cbc, 2cbc], [2cbe, 2cbe], [2cc0, 2cc0], [2cc2, 2cc2],
     632        [2cc4, 2cc4], [2cc6, 2cc6], [2cc8, 2cc8], [2cca, 2cca],
     633        [2ccc, 2ccc], [2cce, 2cce], [2cd0, 2cd0], [2cd2, 2cd2],
     634        [2cd4, 2cd4], [2cd6, 2cd6], [2cd8, 2cd8], [2cda, 2cda],
     635        [2cdc, 2cdc], [2cde, 2cde], [2ce0, 2ce0], [2ce2, 2ce2],
     636        [2ceb, 2ceb], [2ced, 2ced], [2cf2, 2cf2], [a640, a640],
     637        [a642, a642], [a644, a644], [a646, a646], [a648, a648],
     638        [a64a, a64a], [a64c, a64c], [a64e, a64e], [a650, a650],
     639        [a652, a652], [a654, a654], [a656, a656], [a658, a658],
     640        [a65a, a65a], [a65c, a65c], [a65e, a65e], [a660, a660],
     641        [a662, a662], [a664, a664], [a666, a666], [a668, a668],
     642        [a66a, a66a], [a66c, a66c], [a680, a680], [a682, a682],
     643        [a684, a684], [a686, a686], [a688, a688], [a68a, a68a],
     644        [a68c, a68c], [a68e, a68e], [a690, a690], [a692, a692],
     645        [a694, a694], [a696, a696], [a698, a698], [a69a, a69a],
     646        [a722, a722], [a724, a724], [a726, a726], [a728, a728],
     647        [a72a, a72a], [a72c, a72c], [a72e, a72e], [a732, a732],
     648        [a734, a734], [a736, a736], [a738, a738], [a73a, a73a],
     649        [a73c, a73c], [a73e, a73e], [a740, a740], [a742, a742],
     650        [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
     651        [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752],
     652        [a754, a754], [a756, a756], [a758, a758], [a75a, a75a],
     653        [a75c, a75c], [a75e, a75e], [a760, a760], [a762, a762],
     654        [a764, a764], [a766, a766], [a768, a768], [a76a, a76a],
     655        [a76c, a76c], [a76e, a76e], [a779, a779], [a77b, a77b],
     656        [a77d, a77e], [a780, a780], [a782, a782], [a784, a784],
     657        [a786, a786], [a78b, a78b], [a78d, a78d], [a790, a790],
     658        [a792, a792], [a796, a796], [a798, a798], [a79a, a79a],
     659        [a79c, a79c], [a79e, a79e], [a7a0, a7a0], [a7a2, a7a2],
     660        [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8], [a7aa, a7ae],
     661        [a7b0, a7b4], [a7b6, a7b6], [ab70, abbf], [fb00, fb06],
     662        [fb13, fb17], [ff21, ff3a], [10400, 10427], [104b0, 104d3],
     663        [10c80, 10cb2], [118a0, 118bf], [1e900, 1e921]**/
    663664        const UnicodeSet codepoint_set
    664665            {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     
    694695    namespace CWCM_ns {
    695696        /** Code Point Ranges for CWCM
    696         [65, 90], [97, 122], [181, 181], [192, 214], [216, 246], [248, 311],
    697         [313, 396], [398, 410], [412, 425], [428, 441], [444, 445],
    698         [447, 447], [452, 544], [546, 563], [570, 596], [598, 599],
    699         [601, 601], [603, 604], [608, 609], [611, 611], [613, 614],
    700         [616, 620], [623, 623], [625, 626], [629, 629], [637, 637],
    701         [640, 640], [643, 643], [647, 652], [658, 658], [669, 670],
    702         [837, 837], [880, 883], [886, 887], [891, 893], [895, 895],
    703         [902, 902], [904, 906], [908, 908], [910, 929], [931, 977],
    704         [981, 1013], [1015, 1019], [1021, 1153], [1162, 1327], [1329, 1366],
    705         [1377, 1415], [4256, 4293], [4295, 4295], [4301, 4301],
    706         [5024, 5109], [5112, 5117], [7296, 7304], [7545, 7545],
    707         [7549, 7549], [7680, 7835], [7838, 7838], [7840, 7957],
    708         [7960, 7965], [7968, 8005], [8008, 8013], [8016, 8023],
    709         [8025, 8025], [8027, 8027], [8029, 8029], [8031, 8061],
    710         [8064, 8116], [8118, 8124], [8126, 8126], [8130, 8132],
    711         [8134, 8140], [8144, 8147], [8150, 8155], [8160, 8172],
    712         [8178, 8180], [8182, 8188], [8486, 8486], [8490, 8491],
    713         [8498, 8498], [8526, 8526], [8544, 8575], [8579, 8580],
    714         [9398, 9449], [11264, 11310], [11312, 11358], [11360, 11376],
    715         [11378, 11379], [11381, 11382], [11390, 11491], [11499, 11502],
    716         [11506, 11507], [11520, 11557], [11559, 11559], [11565, 11565],
    717         [42560, 42605], [42624, 42651], [42786, 42799], [42802, 42863],
    718         [42873, 42887], [42891, 42893], [42896, 42899], [42902, 42926],
    719         [42928, 42935], [43859, 43859], [43888, 43967], [64256, 64262],
    720         [64275, 64279], [65313, 65338], [65345, 65370], [66560, 66639],
    721         [66736, 66771], [66776, 66811], [68736, 68786], [68800, 68850],
    722         [71840, 71903], [125184, 125251]**/
     697        [0041, 005a], [0061, 007a], [00b5, 00b5], [00c0, 00d6],
     698        [00d8, 00f6], [00f8, 0137], [0139, 018c], [018e, 019a],
     699        [019c, 01a9], [01ac, 01b9], [01bc, 01bd], [01bf, 01bf],
     700        [01c4, 0220], [0222, 0233], [023a, 0254], [0256, 0257],
     701        [0259, 0259], [025b, 025c], [0260, 0261], [0263, 0263],
     702        [0265, 0266], [0268, 026c], [026f, 026f], [0271, 0272],
     703        [0275, 0275], [027d, 027d], [0280, 0280], [0283, 0283],
     704        [0287, 028c], [0292, 0292], [029d, 029e], [0345, 0345],
     705        [0370, 0373], [0376, 0377], [037b, 037d], [037f, 037f],
     706        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 03a1],
     707        [03a3, 03d1], [03d5, 03f5], [03f7, 03fb], [03fd, 0481],
     708        [048a, 052f], [0531, 0556], [0561, 0587], [10a0, 10c5],
     709        [10c7, 10c7], [10cd, 10cd], [13a0, 13f5], [13f8, 13fd],
     710        [1c80, 1c88], [1d79, 1d79], [1d7d, 1d7d], [1e00, 1e9b],
     711        [1e9e, 1e9e], [1ea0, 1f15], [1f18, 1f1d], [1f20, 1f45],
     712        [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b],
     713        [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc],
     714        [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3],
     715        [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc],
     716        [2126, 2126], [212a, 212b], [2132, 2132], [214e, 214e],
     717        [2160, 217f], [2183, 2184], [24b6, 24e9], [2c00, 2c2e],
     718        [2c30, 2c5e], [2c60, 2c70], [2c72, 2c73], [2c75, 2c76],
     719        [2c7e, 2ce3], [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25],
     720        [2d27, 2d27], [2d2d, 2d2d], [a640, a66d], [a680, a69b],
     721        [a722, a72f], [a732, a76f], [a779, a787], [a78b, a78d],
     722        [a790, a793], [a796, a7ae], [a7b0, a7b7], [ab53, ab53],
     723        [ab70, abbf], [fb00, fb06], [fb13, fb17], [ff21, ff3a],
     724        [ff41, ff5a], [10400, 1044f], [104b0, 104d3], [104d8, 104fb],
     725        [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df], [1e900, 1e943]**/
    723726        const UnicodeSet codepoint_set
    724727            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     
    756759    namespace CWL_ns {
    757760        /** Code Point Ranges for CWL
    758         [65, 90], [192, 214], [216, 222], [256, 256], [258, 258],
    759         [260, 260], [262, 262], [264, 264], [266, 266], [268, 268],
    760         [270, 270], [272, 272], [274, 274], [276, 276], [278, 278],
    761         [280, 280], [282, 282], [284, 284], [286, 286], [288, 288],
    762         [290, 290], [292, 292], [294, 294], [296, 296], [298, 298],
    763         [300, 300], [302, 302], [304, 304], [306, 306], [308, 308],
    764         [310, 310], [313, 313], [315, 315], [317, 317], [319, 319],
    765         [321, 321], [323, 323], [325, 325], [327, 327], [330, 330],
    766         [332, 332], [334, 334], [336, 336], [338, 338], [340, 340],
    767         [342, 342], [344, 344], [346, 346], [348, 348], [350, 350],
    768         [352, 352], [354, 354], [356, 356], [358, 358], [360, 360],
    769         [362, 362], [364, 364], [366, 366], [368, 368], [370, 370],
    770         [372, 372], [374, 374], [376, 377], [379, 379], [381, 381],
    771         [385, 386], [388, 388], [390, 391], [393, 395], [398, 401],
    772         [403, 404], [406, 408], [412, 413], [415, 416], [418, 418],
    773         [420, 420], [422, 423], [425, 425], [428, 428], [430, 431],
    774         [433, 435], [437, 437], [439, 440], [444, 444], [452, 453],
    775         [455, 456], [458, 459], [461, 461], [463, 463], [465, 465],
    776         [467, 467], [469, 469], [471, 471], [473, 473], [475, 475],
    777         [478, 478], [480, 480], [482, 482], [484, 484], [486, 486],
    778         [488, 488], [490, 490], [492, 492], [494, 494], [497, 498],
    779         [500, 500], [502, 504], [506, 506], [508, 508], [510, 510],
    780         [512, 512], [514, 514], [516, 516], [518, 518], [520, 520],
    781         [522, 522], [524, 524], [526, 526], [528, 528], [530, 530],
    782         [532, 532], [534, 534], [536, 536], [538, 538], [540, 540],
    783         [542, 542], [544, 544], [546, 546], [548, 548], [550, 550],
    784         [552, 552], [554, 554], [556, 556], [558, 558], [560, 560],
    785         [562, 562], [570, 571], [573, 574], [577, 577], [579, 582],
    786         [584, 584], [586, 586], [588, 588], [590, 590], [880, 880],
    787         [882, 882], [886, 886], [895, 895], [902, 902], [904, 906],
    788         [908, 908], [910, 911], [913, 929], [931, 939], [975, 975],
    789         [984, 984], [986, 986], [988, 988], [990, 990], [992, 992],
    790         [994, 994], [996, 996], [998, 998], [1000, 1000], [1002, 1002],
    791         [1004, 1004], [1006, 1006], [1012, 1012], [1015, 1015],
    792         [1017, 1018], [1021, 1071], [1120, 1120], [1122, 1122],
    793         [1124, 1124], [1126, 1126], [1128, 1128], [1130, 1130],
    794         [1132, 1132], [1134, 1134], [1136, 1136], [1138, 1138],
    795         [1140, 1140], [1142, 1142], [1144, 1144], [1146, 1146],
    796         [1148, 1148], [1150, 1150], [1152, 1152], [1162, 1162],
    797         [1164, 1164], [1166, 1166], [1168, 1168], [1170, 1170],
    798         [1172, 1172], [1174, 1174], [1176, 1176], [1178, 1178],
    799         [1180, 1180], [1182, 1182], [1184, 1184], [1186, 1186],
    800         [1188, 1188], [1190, 1190], [1192, 1192], [1194, 1194],
    801         [1196, 1196], [1198, 1198], [1200, 1200], [1202, 1202],
    802         [1204, 1204], [1206, 1206], [1208, 1208], [1210, 1210],
    803         [1212, 1212], [1214, 1214], [1216, 1217], [1219, 1219],
    804         [1221, 1221], [1223, 1223], [1225, 1225], [1227, 1227],
    805         [1229, 1229], [1232, 1232], [1234, 1234], [1236, 1236],
    806         [1238, 1238], [1240, 1240], [1242, 1242], [1244, 1244],
    807         [1246, 1246], [1248, 1248], [1250, 1250], [1252, 1252],
    808         [1254, 1254], [1256, 1256], [1258, 1258], [1260, 1260],
    809         [1262, 1262], [1264, 1264], [1266, 1266], [1268, 1268],
    810         [1270, 1270], [1272, 1272], [1274, 1274], [1276, 1276],
    811         [1278, 1278], [1280, 1280], [1282, 1282], [1284, 1284],
    812         [1286, 1286], [1288, 1288], [1290, 1290], [1292, 1292],
    813         [1294, 1294], [1296, 1296], [1298, 1298], [1300, 1300],
    814         [1302, 1302], [1304, 1304], [1306, 1306], [1308, 1308],
    815         [1310, 1310], [1312, 1312], [1314, 1314], [1316, 1316],
    816         [1318, 1318], [1320, 1320], [1322, 1322], [1324, 1324],
    817         [1326, 1326], [1329, 1366], [4256, 4293], [4295, 4295],
    818         [4301, 4301], [5024, 5109], [7680, 7680], [7682, 7682],
    819         [7684, 7684], [7686, 7686], [7688, 7688], [7690, 7690],
    820         [7692, 7692], [7694, 7694], [7696, 7696], [7698, 7698],
    821         [7700, 7700], [7702, 7702], [7704, 7704], [7706, 7706],
    822         [7708, 7708], [7710, 7710], [7712, 7712], [7714, 7714],
    823         [7716, 7716], [7718, 7718], [7720, 7720], [7722, 7722],
    824         [7724, 7724], [7726, 7726], [7728, 7728], [7730, 7730],
    825         [7732, 7732], [7734, 7734], [7736, 7736], [7738, 7738],
    826         [7740, 7740], [7742, 7742], [7744, 7744], [7746, 7746],
    827         [7748, 7748], [7750, 7750], [7752, 7752], [7754, 7754],
    828         [7756, 7756], [7758, 7758], [7760, 7760], [7762, 7762],
    829         [7764, 7764], [7766, 7766], [7768, 7768], [7770, 7770],
    830         [7772, 7772], [7774, 7774], [7776, 7776], [7778, 7778],
    831         [7780, 7780], [7782, 7782], [7784, 7784], [7786, 7786],
    832         [7788, 7788], [7790, 7790], [7792, 7792], [7794, 7794],
    833         [7796, 7796], [7798, 7798], [7800, 7800], [7802, 7802],
    834         [7804, 7804], [7806, 7806], [7808, 7808], [7810, 7810],
    835         [7812, 7812], [7814, 7814], [7816, 7816], [7818, 7818],
    836         [7820, 7820], [7822, 7822], [7824, 7824], [7826, 7826],
    837         [7828, 7828], [7838, 7838], [7840, 7840], [7842, 7842],
    838         [7844, 7844], [7846, 7846], [7848, 7848], [7850, 7850],
    839         [7852, 7852], [7854, 7854], [7856, 7856], [7858, 7858],
    840         [7860, 7860], [7862, 7862], [7864, 7864], [7866, 7866],
    841         [7868, 7868], [7870, 7870], [7872, 7872], [7874, 7874],
    842         [7876, 7876], [7878, 7878], [7880, 7880], [7882, 7882],
    843         [7884, 7884], [7886, 7886], [7888, 7888], [7890, 7890],
    844         [7892, 7892], [7894, 7894], [7896, 7896], [7898, 7898],
    845         [7900, 7900], [7902, 7902], [7904, 7904], [7906, 7906],
    846         [7908, 7908], [7910, 7910], [7912, 7912], [7914, 7914],
    847         [7916, 7916], [7918, 7918], [7920, 7920], [7922, 7922],
    848         [7924, 7924], [7926, 7926], [7928, 7928], [7930, 7930],
    849         [7932, 7932], [7934, 7934], [7944, 7951], [7960, 7965],
    850         [7976, 7983], [7992, 7999], [8008, 8013], [8025, 8025],
    851         [8027, 8027], [8029, 8029], [8031, 8031], [8040, 8047],
    852         [8072, 8079], [8088, 8095], [8104, 8111], [8120, 8124],
    853         [8136, 8140], [8152, 8155], [8168, 8172], [8184, 8188],
    854         [8486, 8486], [8490, 8491], [8498, 8498], [8544, 8559],
    855         [8579, 8579], [9398, 9423], [11264, 11310], [11360, 11360],
    856         [11362, 11364], [11367, 11367], [11369, 11369], [11371, 11371],
    857         [11373, 11376], [11378, 11378], [11381, 11381], [11390, 11392],
    858         [11394, 11394], [11396, 11396], [11398, 11398], [11400, 11400],
    859         [11402, 11402], [11404, 11404], [11406, 11406], [11408, 11408],
    860         [11410, 11410], [11412, 11412], [11414, 11414], [11416, 11416],
    861         [11418, 11418], [11420, 11420], [11422, 11422], [11424, 11424],
    862         [11426, 11426], [11428, 11428], [11430, 11430], [11432, 11432],
    863         [11434, 11434], [11436, 11436], [11438, 11438], [11440, 11440],
    864         [11442, 11442], [11444, 11444], [11446, 11446], [11448, 11448],
    865         [11450, 11450], [11452, 11452], [11454, 11454], [11456, 11456],
    866         [11458, 11458], [11460, 11460], [11462, 11462], [11464, 11464],
    867         [11466, 11466], [11468, 11468], [11470, 11470], [11472, 11472],
    868         [11474, 11474], [11476, 11476], [11478, 11478], [11480, 11480],
    869         [11482, 11482], [11484, 11484], [11486, 11486], [11488, 11488],
    870         [11490, 11490], [11499, 11499], [11501, 11501], [11506, 11506],
    871         [42560, 42560], [42562, 42562], [42564, 42564], [42566, 42566],
    872         [42568, 42568], [42570, 42570], [42572, 42572], [42574, 42574],
    873         [42576, 42576], [42578, 42578], [42580, 42580], [42582, 42582],
    874         [42584, 42584], [42586, 42586], [42588, 42588], [42590, 42590],
    875         [42592, 42592], [42594, 42594], [42596, 42596], [42598, 42598],
    876         [42600, 42600], [42602, 42602], [42604, 42604], [42624, 42624],
    877         [42626, 42626], [42628, 42628], [42630, 42630], [42632, 42632],
    878         [42634, 42634], [42636, 42636], [42638, 42638], [42640, 42640],
    879         [42642, 42642], [42644, 42644], [42646, 42646], [42648, 42648],
    880         [42650, 42650], [42786, 42786], [42788, 42788], [42790, 42790],
    881         [42792, 42792], [42794, 42794], [42796, 42796], [42798, 42798],
    882         [42802, 42802], [42804, 42804], [42806, 42806], [42808, 42808],
    883         [42810, 42810], [42812, 42812], [42814, 42814], [42816, 42816],
    884         [42818, 42818], [42820, 42820], [42822, 42822], [42824, 42824],
    885         [42826, 42826], [42828, 42828], [42830, 42830], [42832, 42832],
    886         [42834, 42834], [42836, 42836], [42838, 42838], [42840, 42840],
    887         [42842, 42842], [42844, 42844], [42846, 42846], [42848, 42848],
    888         [42850, 42850], [42852, 42852], [42854, 42854], [42856, 42856],
    889         [42858, 42858], [42860, 42860], [42862, 42862], [42873, 42873],
    890         [42875, 42875], [42877, 42878], [42880, 42880], [42882, 42882],
    891         [42884, 42884], [42886, 42886], [42891, 42891], [42893, 42893],
    892         [42896, 42896], [42898, 42898], [42902, 42902], [42904, 42904],
    893         [42906, 42906], [42908, 42908], [42910, 42910], [42912, 42912],
    894         [42914, 42914], [42916, 42916], [42918, 42918], [42920, 42920],
    895         [42922, 42926], [42928, 42932], [42934, 42934], [65313, 65338],
    896         [66560, 66599], [66736, 66771], [68736, 68786], [71840, 71871],
    897         [125184, 125217]**/
     761        [0041, 005a], [00c0, 00d6], [00d8, 00de], [0100, 0100],
     762        [0102, 0102], [0104, 0104], [0106, 0106], [0108, 0108],
     763        [010a, 010a], [010c, 010c], [010e, 010e], [0110, 0110],
     764        [0112, 0112], [0114, 0114], [0116, 0116], [0118, 0118],
     765        [011a, 011a], [011c, 011c], [011e, 011e], [0120, 0120],
     766        [0122, 0122], [0124, 0124], [0126, 0126], [0128, 0128],
     767        [012a, 012a], [012c, 012c], [012e, 012e], [0130, 0130],
     768        [0132, 0132], [0134, 0134], [0136, 0136], [0139, 0139],
     769        [013b, 013b], [013d, 013d], [013f, 013f], [0141, 0141],
     770        [0143, 0143], [0145, 0145], [0147, 0147], [014a, 014a],
     771        [014c, 014c], [014e, 014e], [0150, 0150], [0152, 0152],
     772        [0154, 0154], [0156, 0156], [0158, 0158], [015a, 015a],
     773        [015c, 015c], [015e, 015e], [0160, 0160], [0162, 0162],
     774        [0164, 0164], [0166, 0166], [0168, 0168], [016a, 016a],
     775        [016c, 016c], [016e, 016e], [0170, 0170], [0172, 0172],
     776        [0174, 0174], [0176, 0176], [0178, 0179], [017b, 017b],
     777        [017d, 017d], [0181, 0182], [0184, 0184], [0186, 0187],
     778        [0189, 018b], [018e, 0191], [0193, 0194], [0196, 0198],
     779        [019c, 019d], [019f, 01a0], [01a2, 01a2], [01a4, 01a4],
     780        [01a6, 01a7], [01a9, 01a9], [01ac, 01ac], [01ae, 01af],
     781        [01b1, 01b3], [01b5, 01b5], [01b7, 01b8], [01bc, 01bc],
     782        [01c4, 01c5], [01c7, 01c8], [01ca, 01cb], [01cd, 01cd],
     783        [01cf, 01cf], [01d1, 01d1], [01d3, 01d3], [01d5, 01d5],
     784        [01d7, 01d7], [01d9, 01d9], [01db, 01db], [01de, 01de],
     785        [01e0, 01e0], [01e2, 01e2], [01e4, 01e4], [01e6, 01e6],
     786        [01e8, 01e8], [01ea, 01ea], [01ec, 01ec], [01ee, 01ee],
     787        [01f1, 01f2], [01f4, 01f4], [01f6, 01f8], [01fa, 01fa],
     788        [01fc, 01fc], [01fe, 01fe], [0200, 0200], [0202, 0202],
     789        [0204, 0204], [0206, 0206], [0208, 0208], [020a, 020a],
     790        [020c, 020c], [020e, 020e], [0210, 0210], [0212, 0212],
     791        [0214, 0214], [0216, 0216], [0218, 0218], [021a, 021a],
     792        [021c, 021c], [021e, 021e], [0220, 0220], [0222, 0222],
     793        [0224, 0224], [0226, 0226], [0228, 0228], [022a, 022a],
     794        [022c, 022c], [022e, 022e], [0230, 0230], [0232, 0232],
     795        [023a, 023b], [023d, 023e], [0241, 0241], [0243, 0246],
     796        [0248, 0248], [024a, 024a], [024c, 024c], [024e, 024e],
     797        [0370, 0370], [0372, 0372], [0376, 0376], [037f, 037f],
     798        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 038f],
     799        [0391, 03a1], [03a3, 03ab], [03cf, 03cf], [03d8, 03d8],
     800        [03da, 03da], [03dc, 03dc], [03de, 03de], [03e0, 03e0],
     801        [03e2, 03e2], [03e4, 03e4], [03e6, 03e6], [03e8, 03e8],
     802        [03ea, 03ea], [03ec, 03ec], [03ee, 03ee], [03f4, 03f4],
     803        [03f7, 03f7], [03f9, 03fa], [03fd, 042f], [0460, 0460],
     804        [0462, 0462], [0464, 0464], [0466, 0466], [0468, 0468],
     805        [046a, 046a], [046c, 046c], [046e, 046e], [0470, 0470],
     806        [0472, 0472], [0474, 0474], [0476, 0476], [0478, 0478],
     807        [047a, 047a], [047c, 047c], [047e, 047e], [0480, 0480],
     808        [048a, 048a], [048c, 048c], [048e, 048e], [0490, 0490],
     809        [0492, 0492], [0494, 0494], [0496, 0496], [0498, 0498],
     810        [049a, 049a], [049c, 049c], [049e, 049e], [04a0, 04a0],
     811        [04a2, 04a2], [04a4, 04a4], [04a6, 04a6], [04a8, 04a8],
     812        [04aa, 04aa], [04ac, 04ac], [04ae, 04ae], [04b0, 04b0],
     813        [04b2, 04b2], [04b4, 04b4], [04b6, 04b6], [04b8, 04b8],
     814        [04ba, 04ba], [04bc, 04bc], [04be, 04be], [04c0, 04c1],
     815        [04c3, 04c3], [04c5, 04c5], [04c7, 04c7], [04c9, 04c9],
     816        [04cb, 04cb], [04cd, 04cd], [04d0, 04d0], [04d2, 04d2],
     817        [04d4, 04d4], [04d6, 04d6], [04d8, 04d8], [04da, 04da],
     818        [04dc, 04dc], [04de, 04de], [04e0, 04e0], [04e2, 04e2],
     819        [04e4, 04e4], [04e6, 04e6], [04e8, 04e8], [04ea, 04ea],
     820        [04ec, 04ec], [04ee, 04ee], [04f0, 04f0], [04f2, 04f2],
     821        [04f4, 04f4], [04f6, 04f6], [04f8, 04f8], [04fa, 04fa],
     822        [04fc, 04fc], [04fe, 04fe], [0500, 0500], [0502, 0502],
     823        [0504, 0504], [0506, 0506], [0508, 0508], [050a, 050a],
     824        [050c, 050c], [050e, 050e], [0510, 0510], [0512, 0512],
     825        [0514, 0514], [0516, 0516], [0518, 0518], [051a, 051a],
     826        [051c, 051c], [051e, 051e], [0520, 0520], [0522, 0522],
     827        [0524, 0524], [0526, 0526], [0528, 0528], [052a, 052a],
     828        [052c, 052c], [052e, 052e], [0531, 0556], [10a0, 10c5],
     829        [10c7, 10c7], [10cd, 10cd], [13a0, 13f5], [1e00, 1e00],
     830        [1e02, 1e02], [1e04, 1e04], [1e06, 1e06], [1e08, 1e08],
     831        [1e0a, 1e0a], [1e0c, 1e0c], [1e0e, 1e0e], [1e10, 1e10],
     832        [1e12, 1e12], [1e14, 1e14], [1e16, 1e16], [1e18, 1e18],
     833        [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e], [1e20, 1e20],
     834        [1e22, 1e22], [1e24, 1e24], [1e26, 1e26], [1e28, 1e28],
     835        [1e2a, 1e2a], [1e2c, 1e2c], [1e2e, 1e2e], [1e30, 1e30],
     836        [1e32, 1e32], [1e34, 1e34], [1e36, 1e36], [1e38, 1e38],
     837        [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e], [1e40, 1e40],
     838        [1e42, 1e42], [1e44, 1e44], [1e46, 1e46], [1e48, 1e48],
     839        [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e], [1e50, 1e50],
     840        [1e52, 1e52], [1e54, 1e54], [1e56, 1e56], [1e58, 1e58],
     841        [1e5a, 1e5a], [1e5c, 1e5c], [1e5e, 1e5e], [1e60, 1e60],
     842        [1e62, 1e62], [1e64, 1e64], [1e66, 1e66], [1e68, 1e68],
     843        [1e6a, 1e6a], [1e6c, 1e6c], [1e6e, 1e6e], [1e70, 1e70],
     844        [1e72, 1e72], [1e74, 1e74], [1e76, 1e76], [1e78, 1e78],
     845        [1e7a, 1e7a], [1e7c, 1e7c], [1e7e, 1e7e], [1e80, 1e80],
     846        [1e82, 1e82], [1e84, 1e84], [1e86, 1e86], [1e88, 1e88],
     847        [1e8a, 1e8a], [1e8c, 1e8c], [1e8e, 1e8e], [1e90, 1e90],
     848        [1e92, 1e92], [1e94, 1e94], [1e9e, 1e9e], [1ea0, 1ea0],
     849        [1ea2, 1ea2], [1ea4, 1ea4], [1ea6, 1ea6], [1ea8, 1ea8],
     850        [1eaa, 1eaa], [1eac, 1eac], [1eae, 1eae], [1eb0, 1eb0],
     851        [1eb2, 1eb2], [1eb4, 1eb4], [1eb6, 1eb6], [1eb8, 1eb8],
     852        [1eba, 1eba], [1ebc, 1ebc], [1ebe, 1ebe], [1ec0, 1ec0],
     853        [1ec2, 1ec2], [1ec4, 1ec4], [1ec6, 1ec6], [1ec8, 1ec8],
     854        [1eca, 1eca], [1ecc, 1ecc], [1ece, 1ece], [1ed0, 1ed0],
     855        [1ed2, 1ed2], [1ed4, 1ed4], [1ed6, 1ed6], [1ed8, 1ed8],
     856        [1eda, 1eda], [1edc, 1edc], [1ede, 1ede], [1ee0, 1ee0],
     857        [1ee2, 1ee2], [1ee4, 1ee4], [1ee6, 1ee6], [1ee8, 1ee8],
     858        [1eea, 1eea], [1eec, 1eec], [1eee, 1eee], [1ef0, 1ef0],
     859        [1ef2, 1ef2], [1ef4, 1ef4], [1ef6, 1ef6], [1ef8, 1ef8],
     860        [1efa, 1efa], [1efc, 1efc], [1efe, 1efe], [1f08, 1f0f],
     861        [1f18, 1f1d], [1f28, 1f2f], [1f38, 1f3f], [1f48, 1f4d],
     862        [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f5f],
     863        [1f68, 1f6f], [1f88, 1f8f], [1f98, 1f9f], [1fa8, 1faf],
     864        [1fb8, 1fbc], [1fc8, 1fcc], [1fd8, 1fdb], [1fe8, 1fec],
     865        [1ff8, 1ffc], [2126, 2126], [212a, 212b], [2132, 2132],
     866        [2160, 216f], [2183, 2183], [24b6, 24cf], [2c00, 2c2e],
     867        [2c60, 2c60], [2c62, 2c64], [2c67, 2c67], [2c69, 2c69],
     868        [2c6b, 2c6b], [2c6d, 2c70], [2c72, 2c72], [2c75, 2c75],
     869        [2c7e, 2c80], [2c82, 2c82], [2c84, 2c84], [2c86, 2c86],
     870        [2c88, 2c88], [2c8a, 2c8a], [2c8c, 2c8c], [2c8e, 2c8e],
     871        [2c90, 2c90], [2c92, 2c92], [2c94, 2c94], [2c96, 2c96],
     872        [2c98, 2c98], [2c9a, 2c9a], [2c9c, 2c9c], [2c9e, 2c9e],
     873        [2ca0, 2ca0], [2ca2, 2ca2], [2ca4, 2ca4], [2ca6, 2ca6],
     874        [2ca8, 2ca8], [2caa, 2caa], [2cac, 2cac], [2cae, 2cae],
     875        [2cb0, 2cb0], [2cb2, 2cb2], [2cb4, 2cb4], [2cb6, 2cb6],
     876        [2cb8, 2cb8], [2cba, 2cba], [2cbc, 2cbc], [2cbe, 2cbe],
     877        [2cc0, 2cc0], [2cc2, 2cc2], [2cc4, 2cc4], [2cc6, 2cc6],
     878        [2cc8, 2cc8], [2cca, 2cca], [2ccc, 2ccc], [2cce, 2cce],
     879        [2cd0, 2cd0], [2cd2, 2cd2], [2cd4, 2cd4], [2cd6, 2cd6],
     880        [2cd8, 2cd8], [2cda, 2cda], [2cdc, 2cdc], [2cde, 2cde],
     881        [2ce0, 2ce0], [2ce2, 2ce2], [2ceb, 2ceb], [2ced, 2ced],
     882        [2cf2, 2cf2], [a640, a640], [a642, a642], [a644, a644],
     883        [a646, a646], [a648, a648], [a64a, a64a], [a64c, a64c],
     884        [a64e, a64e], [a650, a650], [a652, a652], [a654, a654],
     885        [a656, a656], [a658, a658], [a65a, a65a], [a65c, a65c],
     886        [a65e, a65e], [a660, a660], [a662, a662], [a664, a664],
     887        [a666, a666], [a668, a668], [a66a, a66a], [a66c, a66c],
     888        [a680, a680], [a682, a682], [a684, a684], [a686, a686],
     889        [a688, a688], [a68a, a68a], [a68c, a68c], [a68e, a68e],
     890        [a690, a690], [a692, a692], [a694, a694], [a696, a696],
     891        [a698, a698], [a69a, a69a], [a722, a722], [a724, a724],
     892        [a726, a726], [a728, a728], [a72a, a72a], [a72c, a72c],
     893        [a72e, a72e], [a732, a732], [a734, a734], [a736, a736],
     894        [a738, a738], [a73a, a73a], [a73c, a73c], [a73e, a73e],
     895        [a740, a740], [a742, a742], [a744, a744], [a746, a746],
     896        [a748, a748], [a74a, a74a], [a74c, a74c], [a74e, a74e],
     897        [a750, a750], [a752, a752], [a754, a754], [a756, a756],
     898        [a758, a758], [a75a, a75a], [a75c, a75c], [a75e, a75e],
     899        [a760, a760], [a762, a762], [a764, a764], [a766, a766],
     900        [a768, a768], [a76a, a76a], [a76c, a76c], [a76e, a76e],
     901        [a779, a779], [a77b, a77b], [a77d, a77e], [a780, a780],
     902        [a782, a782], [a784, a784], [a786, a786], [a78b, a78b],
     903        [a78d, a78d], [a790, a790], [a792, a792], [a796, a796],
     904        [a798, a798], [a79a, a79a], [a79c, a79c], [a79e, a79e],
     905        [a7a0, a7a0], [a7a2, a7a2], [a7a4, a7a4], [a7a6, a7a6],
     906        [a7a8, a7a8], [a7aa, a7ae], [a7b0, a7b4], [a7b6, a7b6],
     907        [ff21, ff3a], [10400, 10427], [104b0, 104d3], [10c80, 10cb2],
     908        [118a0, 118bf], [1e900, 1e921]**/
    898909        const UnicodeSet codepoint_set
    899910            {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     
    926937    namespace CWT_ns {
    927938        /** Code Point Ranges for CWT
    928         [97, 122], [181, 181], [223, 246], [248, 255], [257, 257],
    929         [259, 259], [261, 261], [263, 263], [265, 265], [267, 267],
    930         [269, 269], [271, 271], [273, 273], [275, 275], [277, 277],
    931         [279, 279], [281, 281], [283, 283], [285, 285], [287, 287],
    932         [289, 289], [291, 291], [293, 293], [295, 295], [297, 297],
    933         [299, 299], [301, 301], [303, 303], [305, 305], [307, 307],
    934         [309, 309], [311, 311], [314, 314], [316, 316], [318, 318],
    935         [320, 320], [322, 322], [324, 324], [326, 326], [328, 329],
    936         [331, 331], [333, 333], [335, 335], [337, 337], [339, 339],
    937         [341, 341], [343, 343], [345, 345], [347, 347], [349, 349],
    938         [351, 351], [353, 353], [355, 355], [357, 357], [359, 359],
    939         [361, 361], [363, 363], [365, 365], [367, 367], [369, 369],
    940         [371, 371], [373, 373], [375, 375], [378, 378], [380, 380],
    941         [382, 384], [387, 387], [389, 389], [392, 392], [396, 396],
    942         [402, 402], [405, 405], [409, 410], [414, 414], [417, 417],
    943         [419, 419], [421, 421], [424, 424], [429, 429], [432, 432],
    944         [436, 436], [438, 438], [441, 441], [445, 445], [447, 447],
    945         [452, 452], [454, 455], [457, 458], [460, 460], [462, 462],
    946         [464, 464], [466, 466], [468, 468], [470, 470], [472, 472],
    947         [474, 474], [476, 477], [479, 479], [481, 481], [483, 483],
    948         [485, 485], [487, 487], [489, 489], [491, 491], [493, 493],
    949         [495, 497], [499, 499], [501, 501], [505, 505], [507, 507],
    950         [509, 509], [511, 511], [513, 513], [515, 515], [517, 517],
    951         [519, 519], [521, 521], [523, 523], [525, 525], [527, 527],
    952         [529, 529], [531, 531], [533, 533], [535, 535], [537, 537],
    953         [539, 539], [541, 541], [543, 543], [547, 547], [549, 549],
    954         [551, 551], [553, 553], [555, 555], [557, 557], [559, 559],
    955         [561, 561], [563, 563], [572, 572], [575, 576], [578, 578],
    956         [583, 583], [585, 585], [587, 587], [589, 589], [591, 596],
    957         [598, 599], [601, 601], [603, 604], [608, 609], [611, 611],
    958         [613, 614], [616, 620], [623, 623], [625, 626], [629, 629],
    959         [637, 637], [640, 640], [643, 643], [647, 652], [658, 658],
    960         [669, 670], [837, 837], [881, 881], [883, 883], [887, 887],
    961         [891, 893], [912, 912], [940, 974], [976, 977], [981, 983],
    962         [985, 985], [987, 987], [989, 989], [991, 991], [993, 993],
    963         [995, 995], [997, 997], [999, 999], [1001, 1001], [1003, 1003],
    964         [1005, 1005], [1007, 1011], [1013, 1013], [1016, 1016],
    965         [1019, 1019], [1072, 1119], [1121, 1121], [1123, 1123],
    966         [1125, 1125], [1127, 1127], [1129, 1129], [1131, 1131],
    967         [1133, 1133], [1135, 1135], [1137, 1137], [1139, 1139],
    968         [1141, 1141], [1143, 1143], [1145, 1145], [1147, 1147],
    969         [1149, 1149], [1151, 1151], [1153, 1153], [1163, 1163],
    970         [1165, 1165], [1167, 1167], [1169, 1169], [1171, 1171],
    971         [1173, 1173], [1175, 1175], [1177, 1177], [1179, 1179],
    972         [1181, 1181], [1183, 1183], [1185, 1185], [1187, 1187],
    973         [1189, 1189], [1191, 1191], [1193, 1193], [1195, 1195],
    974         [1197, 1197], [1199, 1199], [1201, 1201], [1203, 1203],
    975         [1205, 1205], [1207, 1207], [1209, 1209], [1211, 1211],
    976         [1213, 1213], [1215, 1215], [1218, 1218], [1220, 1220],
    977         [1222, 1222], [1224, 1224], [1226, 1226], [1228, 1228],
    978         [1230, 1231], [1233, 1233], [1235, 1235], [1237, 1237],
    979         [1239, 1239], [1241, 1241], [1243, 1243], [1245, 1245],
    980         [1247, 1247], [1249, 1249], [1251, 1251], [1253, 1253],
    981         [1255, 1255], [1257, 1257], [1259, 1259], [1261, 1261],
    982         [1263, 1263], [1265, 1265], [1267, 1267], [1269, 1269],
    983         [1271, 1271], [1273, 1273], [1275, 1275], [1277, 1277],
    984         [1279, 1279], [1281, 1281], [1283, 1283], [1285, 1285],
    985         [1287, 1287], [1289, 1289], [1291, 1291], [1293, 1293],
    986         [1295, 1295], [1297, 1297], [1299, 1299], [1301, 1301],
    987         [1303, 1303], [1305, 1305], [1307, 1307], [1309, 1309],
    988         [1311, 1311], [1313, 1313], [1315, 1315], [1317, 1317],
    989         [1319, 1319], [1321, 1321], [1323, 1323], [1325, 1325],
    990         [1327, 1327], [1377, 1415], [5112, 5117], [7296, 7304],
    991         [7545, 7545], [7549, 7549], [7681, 7681], [7683, 7683],
    992         [7685, 7685], [7687, 7687], [7689, 7689], [7691, 7691],
    993         [7693, 7693], [7695, 7695], [7697, 7697], [7699, 7699],
    994         [7701, 7701], [7703, 7703], [7705, 7705], [7707, 7707],
    995         [7709, 7709], [7711, 7711], [7713, 7713], [7715, 7715],
    996         [7717, 7717], [7719, 7719], [7721, 7721], [7723, 7723],
    997         [7725, 7725], [7727, 7727], [7729, 7729], [7731, 7731],
    998         [7733, 7733], [7735, 7735], [7737, 7737], [7739, 7739],
    999         [7741, 7741], [7743, 7743], [7745, 7745], [7747, 7747],
    1000         [7749, 7749], [7751, 7751], [7753, 7753], [7755, 7755],
    1001         [7757, 7757], [7759, 7759], [7761, 7761], [7763, 7763],
    1002         [7765, 7765], [7767, 7767], [7769, 7769], [7771, 7771],
    1003         [7773, 7773], [7775, 7775], [7777, 7777], [7779, 7779],
    1004         [7781, 7781], [7783, 7783], [7785, 7785], [7787, 7787],
    1005         [7789, 7789], [7791, 7791], [7793, 7793], [7795, 7795],
    1006         [7797, 7797], [7799, 7799], [7801, 7801], [7803, 7803],
    1007         [7805, 7805], [7807, 7807], [7809, 7809], [7811, 7811],
    1008         [7813, 7813], [7815, 7815], [7817, 7817], [7819, 7819],
    1009         [7821, 7821], [7823, 7823], [7825, 7825], [7827, 7827],
    1010         [7829, 7835], [7841, 7841], [7843, 7843], [7845, 7845],
    1011         [7847, 7847], [7849, 7849], [7851, 7851], [7853, 7853],
    1012         [7855, 7855], [7857, 7857], [7859, 7859], [7861, 7861],
    1013         [7863, 7863], [7865, 7865], [7867, 7867], [7869, 7869],
    1014         [7871, 7871], [7873, 7873], [7875, 7875], [7877, 7877],
    1015         [7879, 7879], [7881, 7881], [7883, 7883], [7885, 7885],
    1016         [7887, 7887], [7889, 7889], [7891, 7891], [7893, 7893],
    1017         [7895, 7895], [7897, 7897], [7899, 7899], [7901, 7901],
    1018         [7903, 7903], [7905, 7905], [7907, 7907], [7909, 7909],
    1019         [7911, 7911], [7913, 7913], [7915, 7915], [7917, 7917],
    1020         [7919, 7919], [7921, 7921], [7923, 7923], [7925, 7925],
    1021         [7927, 7927], [7929, 7929], [7931, 7931], [7933, 7933],
    1022         [7935, 7943], [7952, 7957], [7968, 7975], [7984, 7991],
    1023         [8000, 8005], [8016, 8023], [8032, 8039], [8048, 8061],
    1024         [8064, 8071], [8080, 8087], [8096, 8103], [8112, 8116],
    1025         [8118, 8119], [8126, 8126], [8130, 8132], [8134, 8135],
    1026         [8144, 8147], [8150, 8151], [8160, 8167], [8178, 8180],
    1027         [8182, 8183], [8526, 8526], [8560, 8575], [8580, 8580],
    1028         [9424, 9449], [11312, 11358], [11361, 11361], [11365, 11366],
    1029         [11368, 11368], [11370, 11370], [11372, 11372], [11379, 11379],
    1030         [11382, 11382], [11393, 11393], [11395, 11395], [11397, 11397],
    1031         [11399, 11399], [11401, 11401], [11403, 11403], [11405, 11405],
    1032         [11407, 11407], [11409, 11409], [11411, 11411], [11413, 11413],
    1033         [11415, 11415], [11417, 11417], [11419, 11419], [11421, 11421],
    1034         [11423, 11423], [11425, 11425], [11427, 11427], [11429, 11429],
    1035         [11431, 11431], [11433, 11433], [11435, 11435], [11437, 11437],
    1036         [11439, 11439], [11441, 11441], [11443, 11443], [11445, 11445],
    1037         [11447, 11447], [11449, 11449], [11451, 11451], [11453, 11453],
    1038         [11455, 11455], [11457, 11457], [11459, 11459], [11461, 11461],
    1039         [11463, 11463], [11465, 11465], [11467, 11467], [11469, 11469],
    1040         [11471, 11471], [11473, 11473], [11475, 11475], [11477, 11477],
    1041         [11479, 11479], [11481, 11481], [11483, 11483], [11485, 11485],
    1042         [11487, 11487], [11489, 11489], [11491, 11491], [11500, 11500],
    1043         [11502, 11502], [11507, 11507], [11520, 11557], [11559, 11559],
    1044         [11565, 11565], [42561, 42561], [42563, 42563], [42565, 42565],
    1045         [42567, 42567], [42569, 42569], [42571, 42571], [42573, 42573],
    1046         [42575, 42575], [42577, 42577], [42579, 42579], [42581, 42581],
    1047         [42583, 42583], [42585, 42585], [42587, 42587], [42589, 42589],
    1048         [42591, 42591], [42593, 42593], [42595, 42595], [42597, 42597],
    1049         [42599, 42599], [42601, 42601], [42603, 42603], [42605, 42605],
    1050         [42625, 42625], [42627, 42627], [42629, 42629], [42631, 42631],
    1051         [42633, 42633], [42635, 42635], [42637, 42637], [42639, 42639],
    1052         [42641, 42641], [42643, 42643], [42645, 42645], [42647, 42647],
    1053         [42649, 42649], [42651, 42651], [42787, 42787], [42789, 42789],
    1054         [42791, 42791], [42793, 42793], [42795, 42795], [42797, 42797],
    1055         [42799, 42799], [42803, 42803], [42805, 42805], [42807, 42807],
    1056         [42809, 42809], [42811, 42811], [42813, 42813], [42815, 42815],
    1057         [42817, 42817], [42819, 42819], [42821, 42821], [42823, 42823],
    1058         [42825, 42825], [42827, 42827], [42829, 42829], [42831, 42831],
    1059         [42833, 42833], [42835, 42835], [42837, 42837], [42839, 42839],
    1060         [42841, 42841], [42843, 42843], [42845, 42845], [42847, 42847],
    1061         [42849, 42849], [42851, 42851], [42853, 42853], [42855, 42855],
    1062         [42857, 42857], [42859, 42859], [42861, 42861], [42863, 42863],
    1063         [42874, 42874], [42876, 42876], [42879, 42879], [42881, 42881],
    1064         [42883, 42883], [42885, 42885], [42887, 42887], [42892, 42892],
    1065         [42897, 42897], [42899, 42899], [42903, 42903], [42905, 42905],
    1066         [42907, 42907], [42909, 42909], [42911, 42911], [42913, 42913],
    1067         [42915, 42915], [42917, 42917], [42919, 42919], [42921, 42921],
    1068         [42933, 42933], [42935, 42935], [43859, 43859], [43888, 43967],
    1069         [64256, 64262], [64275, 64279], [65345, 65370], [66600, 66639],
    1070         [66776, 66811], [68800, 68850], [71872, 71903], [125218, 125251]**/
     939        [0061, 007a], [00b5, 00b5], [00df, 00f6], [00f8, 00ff],
     940        [0101, 0101], [0103, 0103], [0105, 0105], [0107, 0107],
     941        [0109, 0109], [010b, 010b], [010d, 010d], [010f, 010f],
     942        [0111, 0111], [0113, 0113], [0115, 0115], [0117, 0117],
     943        [0119, 0119], [011b, 011b], [011d, 011d], [011f, 011f],