Ignore:
Timestamp:
Nov 28, 2017, 1:45:19 AM (19 months ago)
Author:
nmedfort
Message:

Bug fix for segment pipeline parallel mode + memory management improvements.

File:
1 edited

Legend:

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

    r5668 r5748  
    221221        [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    222222        [1f250, 1f251], [2f800, 2fa1d], [e0000, e0fff]**/
    223         const UnicodeSet codepoint_set
    224             {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    225               {Mixed, 11}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 6},
    226               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 8}, {Empty, 1},
    227               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    228               {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
    229               {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
    230               {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    231               {Mixed, 4}, {Empty, 7}, {Full, 1}, {Mixed, 2}, {Empty, 2},
    232               {Mixed, 2}, {Empty, 19}, {Mixed, 1}, {Empty, 29}, {Mixed, 1},
    233               {Empty, 2}, {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 4},
    234               {Mixed, 4}, {Full, 1}, {Empty, 2}, {Mixed, 12}, {Full, 1},
    235               {Mixed, 9}, {Empty, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    236               {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 9},
    237               {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
    238               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 9}, {Full, 1},
    239               {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 3}, {Mixed, 1},
    240               {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    241               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    242               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    243               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    244               {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 914}, {Mixed, 3},
    245               {Empty, 4}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 26},
    246               {Mixed, 2}, {Full, 2}, {Empty, 618}, {Full, 8}, {Mixed, 2},
    247               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    248               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    249               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    250               {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 32}, {Full, 1},
    251               {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1},
    252               {Mixed, 1}, {Empty, 95}, {Full, 1}, {Empty, 1311}, {Mixed, 1},
    253               {Empty, 164}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 17},
    254               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    255               {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1},
    256               {Full, 1}, {Empty, 136}, {Full, 1}, {Mixed, 1}, {Empty, 38},
    257               {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    258               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 22575},
    259               {Full, 128}, {Empty, 6016}},
    260              {0x07fffffe, 0x773ca501, 0xff7fffff, 0x55555555, 0xaa5d5555,
    261               0x555556ab, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaabff0,
    262               0x55de5555, 0x55555555, 0x6c055555, 0x0000557a, 0x01ff0000,
    263               0x3f000000, 0x0000001f, 0x0000803b, 0xc4550000, 0xfffed7f0,
    264               0x00000ffb, 0x557f8004, 0xe6b75555, 0x0000ffff, 0x55555555,
    265               0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    266               0xfffe5555, 0x007fffff, 0x00000080, 0x10000000, 0x01e00000,
    267               0xff000000, 0xb0000000, 0x00480000, 0x4e000000, 0x30000000,
    268               0x00080000, 0x00080000, 0x30000000, 0x00001000, 0x10842008,
    269               0x03e80200, 0x20080002, 0x02001084, 0x000020bf, 0x10000000,
    270               0x80000000, 0x00000001, 0x3f000000, 0x00300000, 0x00007800,
    271               0x000001ff, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
    272               0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x4c155555,
    273               0x55555555, 0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00,
    274               0xaa003f00, 0x2aaaff00, 0xff9cffff, 0xef08ff9f, 0x7f9cff08,
    275               0x0082ffff, 0x50d8fc70, 0x80800380, 0xfff3ffff, 0x1fff7fff,
    276               0x00000100, 0x3e6ffeef, 0xfbffbd57, 0xffff03e1, 0x00000208,
    277               0x0001b000, 0x00000600, 0x000007ff, 0x00001000, 0x00700000,
    278               0x10000000, 0x00007fff, 0xf025ea9d, 0x55555555, 0x55555555,
    279               0x55555555, 0x00042805, 0x00008000, 0x80000000, 0x00080000,
    280               0x003fffff, 0x00000001, 0x07400000, 0x98000000, 0x80000000,
    281               0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
    282               0x7fffffff, 0x55555555, 0x00001555, 0x35555555, 0x55545554,
    283               0x55555555, 0x6a015555, 0x55452855, 0x005f7d55, 0x03000000,
    284               0xf0000000, 0xffff0000, 0x7fe53fff, 0xfffffc65, 0xffff3fff,
    285               0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff,
    286               0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    287               0x1fff0000, 0x03ffffff, 0xffff0000, 0xfff7ff9f, 0xffd70f7f,
    288               0x9fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x01ff7f7f,
    289               0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x0000000f,
    290               0xc0000000, 0x07f8001f, 0xf8000000, 0x00000001, 0xffdfffff,
    291               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    292               0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0x00000003, 0xffffffef,
    293               0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    294               0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000,
    295               0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
    296         static BinaryPropertyObject property_object{CWKCF, codepoint_set};
     223
     224
     225        namespace {
     226        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     227        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     228        {Mixed, 11}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 6},
     229        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 8}, {Empty, 1},
     230        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     231        {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
     232        {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
     233        {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     234        {Mixed, 4}, {Empty, 7}, {Full, 1}, {Mixed, 2}, {Empty, 2},
     235        {Mixed, 2}, {Empty, 19}, {Mixed, 1}, {Empty, 29}, {Mixed, 1},
     236        {Empty, 2}, {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 4},
     237        {Mixed, 4}, {Full, 1}, {Empty, 2}, {Mixed, 12}, {Full, 1},
     238        {Mixed, 9}, {Empty, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     239        {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 9},
     240        {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
     241        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 9}, {Full, 1},
     242        {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 3}, {Mixed, 1},
     243        {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6},
     244        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     245        {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
     246        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     247        {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 914}, {Mixed, 3},
     248        {Empty, 4}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 26},
     249        {Mixed, 2}, {Full, 2}, {Empty, 618}, {Full, 8}, {Mixed, 2},
     250        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     251        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
     252        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2},
     253        {Full, 4}, {Mixed, 3}, {Empty, 32}, {Full, 1}, {Mixed, 1},
     254        {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
     255        {Empty, 95}, {Full, 1}, {Empty, 1311}, {Mixed, 1}, {Empty, 164},
     256        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2},
     257        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
     258        {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
     259        {Empty, 136}, {Full, 1}, {Mixed, 1}, {Empty, 38}, {Mixed, 6},
     260        {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 2093},
     261        {Full, 16}, {Mixed, 1}, {Empty, 22575}, {Full, 128}, {Empty, 6016}};
     262        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     263        0x07fffffe, 0x773ca501, 0xff7fffff, 0x55555555, 0xaa5d5555,
     264        0x555556ab, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaabff0,
     265        0x55de5555, 0x55555555, 0x6c055555, 0x0000557a, 0x01ff0000,
     266        0x3f000000, 0x0000001f, 0x0000803b, 0xc4550000, 0xfffed7f0,
     267        0x00000ffb, 0x557f8004, 0xe6b75555, 0x0000ffff, 0x55555555,
     268        0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
     269        0xfffe5555, 0x007fffff, 0x00000080, 0x10000000, 0x01e00000,
     270        0xff000000, 0xb0000000, 0x00480000, 0x4e000000, 0x30000000,
     271        0x00080000, 0x00080000, 0x30000000, 0x00001000, 0x10842008,
     272        0x03e80200, 0x20080002, 0x02001084, 0x000020bf, 0x10000000,
     273        0x80000000, 0x00000001, 0x3f000000, 0x00300000, 0x00007800,
     274        0x000001ff, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
     275        0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x4c155555,
     276        0x55555555, 0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00,
     277        0xaa003f00, 0x2aaaff00, 0xff9cffff, 0xef08ff9f, 0x7f9cff08,
     278        0x0082ffff, 0x50d8fc70, 0x80800380, 0xfff3ffff, 0x1fff7fff,
     279        0x00000100, 0x3e6ffeef, 0xfbffbd57, 0xffff03e1, 0x00000208,
     280        0x0001b000, 0x00000600, 0x000007ff, 0x00001000, 0x00700000,
     281        0x10000000, 0x00007fff, 0xf025ea9d, 0x55555555, 0x55555555,
     282        0x55555555, 0x00042805, 0x00008000, 0x80000000, 0x00080000,
     283        0x003fffff, 0x00000001, 0x07400000, 0x98000000, 0x80000000,
     284        0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
     285        0x7fffffff, 0x55555555, 0x00001555, 0x35555555, 0x55545554,
     286        0x55555555, 0x6a015555, 0x55452855, 0x005f7d55, 0x03000000,
     287        0xf0000000, 0xffff0000, 0x7fe53fff, 0xfffffc65, 0xffff3fff,
     288        0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff,
     289        0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
     290        0x1fff0000, 0x03ffffff, 0xffff0000, 0xfff7ff9f, 0xffd70f7f,
     291        0x9fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x01ff7f7f,
     292        0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x0000000f,
     293        0xc0000000, 0x07f8001f, 0xf8000000, 0x00000001, 0xffdfffff,
     294        0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     295        0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0x00000003, 0xffffffef,
     296        0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
     297        0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000,
     298        0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff};
     299        }
     300
     301        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 176, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 179, 0};
     302
     303        static BinaryPropertyObject property_object{CWKCF, std::move(codepoint_set)};
    297304    }
    298305    namespace COMP_EX_ns {
     
    317324        [fb43, fb44], [fb46, fb4e], [1d15e, 1d164], [1d1bb, 1d1c0],
    318325        [2f800, 2fa1d]**/
    319         const UnicodeSet codepoint_set
    320             {{{Empty, 26}, {Mixed, 3}, {Empty, 45}, {Mixed, 1}, {Empty, 3},
    321               {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
    322               {Empty, 31}, {Mixed, 4}, {Empty, 125}, {Mixed, 1}, {Empty, 1},
    323               {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
    324               {Empty, 60}, {Mixed, 1}, {Empty, 1649}, {Full, 8}, {Mixed, 2},
    325               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    326               {Mixed, 3}, {Empty, 1711}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    327               {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    328              {0x0000001b, 0x40100000, 0x00000080, 0xff000000, 0xb0000000,
    329               0x00480000, 0x4e000000, 0x30000000, 0x10842008, 0x01680200,
    330               0x20080002, 0x02001084, 0x2aaa0000, 0x48000000, 0x08080a00,
    331               0x2a00c808, 0x00000003, 0x00000c40, 0x00000600, 0x10000000,
    332               0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000,
    333               0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f, 0xf8000000,
    334               0x00000001, 0x3fffffff}};
    335         static BinaryPropertyObject property_object{Comp_Ex, codepoint_set};
     326
     327
     328        namespace {
     329        const static UnicodeSet::run_t __codepoint_set_runs[] = {
     330        {Empty, 26}, {Mixed, 3}, {Empty, 45}, {Mixed, 1}, {Empty, 3},
     331        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     332        {Empty, 31}, {Mixed, 4}, {Empty, 125}, {Mixed, 1}, {Empty, 1},
     333        {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
     334        {Empty, 60}, {Mixed, 1}, {Empty, 1649}, {Full, 8}, {Mixed, 2},
     335        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     336        {Mixed, 3}, {Empty, 1711}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     337        {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
     338        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
     339        0x0000001b, 0x40100000, 0x00000080, 0xff000000, 0xb0000000,
     340        0x00480000, 0x4e000000, 0x30000000, 0x10842008, 0x01680200,
     341        0x20080002, 0x02001084, 0x2aaa0000, 0x48000000, 0x08080a00,
     342        0x2a00c808, 0x00000003, 0x00000c40, 0x00000600, 0x10000000,
     343        0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000,
     344        0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f, 0xf8000000,
     345        0x00000001, 0x3fffffff};
     346        }
     347
     348        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 39, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 32, 0};
     349
     350        static BinaryPropertyObject property_object{Comp_Ex, std::move(codepoint_set)};
    336351    }
    337352    namespace FC_NFKC_ns {
     
    364379    [11358, 114af], [114b1, 114b9], [114bb, 114bc], [114be, 115ae],
    365380    [115b0, 1d15d], [1d165, 1d1ba], [1d1c1, 2f7ff], [2fa1e, 10ffff]**/
    366     const UnicodeSet y_Set
    367         {{{Full, 24}, {Mixed, 5}, {Full, 21}, {Mixed, 1}, {Full, 22},
    368           {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
    369           {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
    370           {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    371           {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 4}, {Full, 3},
    372           {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    373           {Full, 74}, {Mixed, 1}, {Full, 33}, {Mixed, 1}, {Full, 1},
    374           {Mixed, 4}, {Full, 8}, {Mixed, 1}, {Full, 15}, {Mixed, 1},
    375           {Full, 60}, {Mixed, 1}, {Full, 45}, {Mixed, 1}, {Full, 1603},
    376           {Empty, 8}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    377           {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 170}, {Mixed, 1},
    378           {Full, 3}, {Mixed, 1}, {Full, 15}, {Mixed, 2}, {Full, 10},
    379           {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
    380           {Full, 1}, {Mixed, 2}, {Full, 2353}, {Empty, 16}, {Mixed, 1},
    381           {Full, 28719}},
    382          {0xf7e56020, 0xfefc9e07, 0xffffffc0, 0xbfefffff, 0xffffff7f,
    383           0xffc7ffff, 0xefffffff, 0x00ffffff, 0xbfffffff, 0x4f7fffff,
    384           0xffb7ffff, 0xb1ffffff, 0xbfffffff, 0xcf3fffff, 0xbfffffff,
    385           0xff7fffff, 0xffbfffff, 0xff9ffffb, 0xbfffffff, 0xff7fffff,
    386           0x7fff7bff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b,
    387           0xffffbfff, 0xffc00001, 0x000000ff, 0xfffffff8, 0xffdfffff,
    388           0xd555ffff, 0xb7ffffff, 0xf7f7f5ff, 0xd5ff37f7, 0xfffffffc,
    389           0xfffff3bf, 0xfffff9ff, 0xefffffff, 0xf9ffffff, 0x801ac000,
    390           0x0000039a, 0x0000c000, 0xfc000000, 0x5fffffff, 0xa08003ff,
    391           0xffff8024, 0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff,
    392           0xdbfeffff, 0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff,
    393           0xfffffffe, 0xc0000000}};
     381
     382
     383    namespace {
     384    const static UnicodeSet::run_t __y_Set_runs[] = {
     385    {Full, 24}, {Mixed, 5}, {Full, 21}, {Mixed, 1}, {Full, 22}, {Mixed, 2},
     386    {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 6}, {Mixed, 2},
     387    {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     388    {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 4},
     389    {Full, 3}, {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     390    {Full, 74}, {Mixed, 1}, {Full, 33}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
     391    {Full, 8}, {Mixed, 1}, {Full, 15}, {Mixed, 1}, {Full, 60}, {Mixed, 1},
     392    {Full, 45}, {Mixed, 1}, {Full, 1603}, {Empty, 8}, {Mixed, 2},
     393    {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     394    {Full, 170}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 15}, {Mixed, 2},
     395    {Full, 10}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
     396    {Full, 1}, {Mixed, 2}, {Full, 2353}, {Empty, 16}, {Mixed, 1},
     397    {Full, 28719}};
     398    const static UnicodeSet::bitquad_t  __y_Set_quads[] = {
     399    0xf7e56020, 0xfefc9e07, 0xffffffc0, 0xbfefffff, 0xffffff7f, 0xffc7ffff,
     400    0xefffffff, 0x00ffffff, 0xbfffffff, 0x4f7fffff, 0xffb7ffff, 0xb1ffffff,
     401    0xbfffffff, 0xcf3fffff, 0xbfffffff, 0xff7fffff, 0xffbfffff, 0xff9ffffb,
     402    0xbfffffff, 0xff7fffff, 0x7fff7bff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd,
     403    0xfdffef7b, 0xffffbfff, 0xffc00001, 0x000000ff, 0xfffffff8, 0xffdfffff,
     404    0xd555ffff, 0xb7ffffff, 0xf7f7f5ff, 0xd5ff37f7, 0xfffffffc, 0xfffff3bf,
     405    0xfffff9ff, 0xefffffff, 0xf9ffffff, 0x801ac000, 0x0000039a, 0x0000c000,
     406    0xfc000000, 0x5fffffff, 0xa08003ff, 0xffff8024, 0xfbffffff, 0xffffff7f,
     407    0xbfffffff, 0xff7fffff, 0xdbfeffff, 0xffff7fff, 0x3fffffff, 0xffffffe0,
     408    0x07ffffff, 0xfffffffe, 0xc0000000};
     409    }
     410
     411    const static UnicodeSet y_Set{const_cast<UnicodeSet::run_t *>(__y_Set_runs), 71, 0, const_cast<UnicodeSet::bitquad_t *>(__y_Set_quads), 57, 0};
     412
    394413    /** Code Point Ranges for N
    395414    [0340, 0341], [0343, 0344], [0374, 0374], [037e, 037e], [0387, 0387],
     
    408427    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
    409428    [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
    410     const UnicodeSet n_Set
    411         {{{Empty, 26}, {Mixed, 3}, {Empty, 45}, {Mixed, 1}, {Empty, 3},
    412           {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
    413           {Empty, 31}, {Mixed, 4}, {Empty, 125}, {Mixed, 1}, {Empty, 1},
    414           {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
    415           {Empty, 60}, {Mixed, 1}, {Empty, 1649}, {Full, 8}, {Mixed, 2},
    416           {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    417           {Mixed, 3}, {Empty, 1711}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    418           {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    419          {0x0000001b, 0x40100000, 0x00000080, 0xff000000, 0xb0000000,
    420           0x00480000, 0x4e000000, 0x30000000, 0x10842008, 0x01680200,
    421           0x20080002, 0x02001084, 0x2aaa0000, 0x48000000, 0x08080a00,
    422           0x2a00c808, 0x00000003, 0x00000c40, 0x00000600, 0x10000000,
    423           0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000,
    424           0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f, 0xf8000000,
    425           0x00000001, 0x3fffffff}};
     429
     430
     431    namespace {
     432    const static UnicodeSet::run_t __n_Set_runs[] = {
     433    {Empty, 26}, {Mixed, 3}, {Empty, 45}, {Mixed, 1}, {Empty, 3},
     434    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 31},
     435    {Mixed, 4}, {Empty, 125}, {Mixed, 1}, {Empty, 1}, {Mixed, 4},
     436    {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 60},
     437    {Mixed, 1}, {Empty, 1649}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     438    {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1711},
     439    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 2353}, {Full, 16},
     440    {Mixed, 1}, {Empty, 28719}};
     441    const static UnicodeSet::bitquad_t  __n_Set_quads[] = {
     442    0x0000001b, 0x40100000, 0x00000080, 0xff000000, 0xb0000000, 0x00480000,
     443    0x4e000000, 0x30000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
     444    0x2aaa0000, 0x48000000, 0x08080a00, 0x2a00c808, 0x00000003, 0x00000c40,
     445    0x00000600, 0x10000000, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
     446    0xa0000000, 0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f, 0xf8000000,
     447    0x00000001, 0x3fffffff};
     448    }
     449
     450    const static UnicodeSet n_Set{const_cast<UnicodeSet::run_t *>(__n_Set_runs), 39, 0, const_cast<UnicodeSet::bitquad_t *>(__n_Set_quads), 32, 0};
     451
    426452    /** Code Point Ranges for M
    427453    [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311], [0313, 0314],
     
    434460    [11127, 11127], [1133e, 1133e], [11357, 11357], [114b0, 114b0],
    435461    [114ba, 114ba], [114bd, 114bd], [115af, 115af]**/
    436     const UnicodeSet m_Set
    437         {{{Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
    438           {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
    439           {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    440           {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    441           {Empty, 18}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
    442           {Mixed, 2}, {Empty, 74}, {Mixed, 1}, {Empty, 170}, {Mixed, 1},
    443           {Empty, 1792}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15},
    444           {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    445           {Empty, 32594}},
    446          {0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000,
    447           0x40000000, 0x00800000, 0x40000000, 0x00c00000, 0x40000000,
    448           0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
    449           0x80008400, 0x00004000, 0x003ffffe, 0xffffff00, 0x00000007,
    450           0x00200000, 0x06000000, 0x04000000, 0x00000080, 0x40000000,
    451           0x00800000, 0x24010000, 0x00008000}};
     462
     463
     464    namespace {
     465    const static UnicodeSet::run_t __m_Set_runs[] = {
     466    {Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
     467    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 2},
     468    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
     469    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 9},
     470    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 74}, {Mixed, 1},
     471    {Empty, 170}, {Mixed, 1}, {Empty, 1792}, {Mixed, 1}, {Empty, 3},
     472    {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 10}, {Mixed, 1},
     473    {Empty, 7}, {Mixed, 1}, {Empty, 32594}};
     474    const static UnicodeSet::bitquad_t  __m_Set_quads[] = {
     475    0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000, 0x40000000,
     476    0x00800000, 0x40000000, 0x00c00000, 0x40000000, 0x00800000, 0x00400000,
     477    0x00600004, 0x40000000, 0x00800000, 0x80008400, 0x00004000, 0x003ffffe,
     478    0xffffff00, 0x00000007, 0x00200000, 0x06000000, 0x04000000, 0x00000080,
     479    0x40000000, 0x00800000, 0x24010000, 0x00008000};
     480    }
     481
     482    const static UnicodeSet m_Set{const_cast<UnicodeSet::run_t *>(__m_Set_runs), 41, 0, const_cast<UnicodeSet::bitquad_t *>(__m_Set_quads), 28, 0};
     483
    452484    static EnumeratedPropertyObject property_object
    453485        {NFC_QC,
    454486         NFC_QC_ns::independent_prop_values,
    455          NFC_QC_ns::enum_names,
    456          NFC_QC_ns::value_names,
    457          NFC_QC_ns::aliases_only_map,
    458          {&y_Set, &n_Set, &m_Set
     487         std::move(NFC_QC_ns::enum_names),
     488         std::move(NFC_QC_ns::value_names),
     489         std::move(NFC_QC_ns::aliases_only_map),{
     490&y_Set, &n_Set, &m_Set
    459491         }};
    460492    }
     
    509541    [11130, 1134a], [1134d, 114ba], [114bd, 114bd], [114bf, 115b9],
    510542    [115bc, 1d15d], [1d165, 1d1ba], [1d1c1, 2f7ff], [2fa1e, 10ffff]**/
    511     const UnicodeSet y_Set
    512         {{{Full, 6}, {Mixed, 6}, {Full, 1}, {Mixed, 5}, {Full, 8},
    513           {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 2},
    514           {Full, 9}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 18},
    515           {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    516           {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    517           {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    518           {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 11},
    519           {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 86}, {Mixed, 3},
    520           {Full, 21}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    521           {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Full, 8},
    522           {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 6},
    523           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 60},
    524           {Mixed, 1}, {Full, 43}, {Mixed, 6}, {Full, 984}, {Empty, 349},
    525           {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
    526           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    527           {Full, 169}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 16},
    528           {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
    529           {Full, 1500}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2353},
    530           {Empty, 16}, {Mixed, 1}, {Full, 28719}},
    531          {0xc1810040, 0x41810040, 0x00030000, 0x810e00c0, 0x000c0e07,
    532           0x800000c0, 0xfffe7ffc, 0x20001fff, 0x00ce0030, 0x30000000,
    533           0xfff0003f, 0xffffffe4, 0xbfefffff, 0xfffe281f, 0xfffe03ff,
    534           0xffe783ff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff, 0xff3fffff,
    535           0x0330fff9, 0xfcc00303, 0xffffff83, 0xfff7fffa, 0xffedfdff,
    536           0x00ffffff, 0x4fffe7ff, 0xffb7ffff, 0xb1ffffff, 0xcfffe6ff,
    537           0xffefffff, 0xffffe3ff, 0xfffffeff, 0xfffff27e, 0xffffe3ff,
    538           0x8bffffff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b,
    539           0xffffffbf, 0xfffbaabf, 0xd7ffffff, 0xfffffff4, 0xf4000000,
    540           0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000, 0xa0200000,
    541           0x10300021, 0xc0230000, 0xfffffffc, 0xfffff3bf, 0xf3ffffff,
    542           0xffffbfff, 0xffff1fff, 0xffffedef, 0xffffffaf, 0xfffffd6d,
    543           0xfccc1ffa, 0xfffffccc, 0xffff0fff, 0xffffc3f0, 0xfffff9ff,
    544           0xefffffff, 0xaaaaafff, 0xc924fd5a, 0xbfefffff, 0xaaaaafff,
    545           0xc924fd5a, 0xb86fffff, 0xfffffff0, 0x801ac000, 0x0000039a,
    546           0x0000c000, 0xfc000000, 0x5fffffff, 0xa08003ff, 0xffff8024,
    547           0xebffffff, 0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff,
    548           0xf3ffffff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
    549           0xc0000000}};
     543
     544
     545    namespace {
     546    const static UnicodeSet::run_t __y_Set_runs[] = {
     547    {Full, 6}, {Mixed, 6}, {Full, 1}, {Mixed, 5}, {Full, 8}, {Mixed, 5},
     548    {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Full, 9}, {Mixed, 1},
     549    {Full, 4}, {Mixed, 1}, {Full, 18}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
     550    {Full, 2}, {Mixed, 2}, {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     551    {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     552    {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 4},
     553    {Full, 3}, {Mixed, 1}, {Full, 86}, {Mixed, 3}, {Full, 21}, {Empty, 4},
     554    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     555    {Mixed, 4}, {Full, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1},
     556    {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 60},
     557    {Mixed, 1}, {Full, 43}, {Mixed, 6}, {Full, 984}, {Empty, 349},
     558    {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     559    {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 169}, {Mixed, 2},
     560    {Full, 3}, {Mixed, 1}, {Full, 16}, {Mixed, 1}, {Full, 10}, {Mixed, 1},
     561    {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     562    {Full, 2353}, {Empty, 16}, {Mixed, 1}, {Full, 28719}};
     563    const static UnicodeSet::bitquad_t  __y_Set_quads[] = {
     564    0xc1810040, 0x41810040, 0x00030000, 0x810e00c0, 0x000c0e07, 0x800000c0,
     565    0xfffe7ffc, 0x20001fff, 0x00ce0030, 0x30000000, 0xfff0003f, 0xffffffe4,
     566    0xbfefffff, 0xfffe281f, 0xfffe03ff, 0xffe783ff, 0xfdff8f74, 0xfdffffff,
     567    0x8f74ffff, 0xff3fffff, 0x0330fff9, 0xfcc00303, 0xffffff83, 0xfff7fffa,
     568    0xffedfdff, 0x00ffffff, 0x4fffe7ff, 0xffb7ffff, 0xb1ffffff, 0xcfffe6ff,
     569    0xffefffff, 0xffffe3ff, 0xfffffeff, 0xfffff27e, 0xffffe3ff, 0x8bffffff,
     570    0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b, 0xffffffbf, 0xfffbaabf,
     571    0xd7ffffff, 0xfffffff4, 0xf4000000, 0xfc000000, 0xc0c00000, 0x5500c0c0,
     572    0xc0000000, 0xa0200000, 0x10300021, 0xc0230000, 0xfffffffc, 0xfffff3bf,
     573    0xf3ffffff, 0xffffbfff, 0xffff1fff, 0xffffedef, 0xffffffaf, 0xfffffd6d,
     574    0xfccc1ffa, 0xfffffccc, 0xffff0fff, 0xffffc3f0, 0xfffff9ff, 0xefffffff,
     575    0xaaaaafff, 0xc924fd5a, 0xbfefffff, 0xaaaaafff, 0xc924fd5a, 0xb86fffff,
     576    0xfffffff0, 0x801ac000, 0x0000039a, 0x0000c000, 0xfc000000, 0x5fffffff,
     577    0xa08003ff, 0xffff8024, 0xebffffff, 0xfffff7ff, 0xffff3fff, 0xffffe7ff,
     578    0xa7ffffff, 0xf3ffffff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
     579    0xc0000000};
     580    }
     581
     582    const static UnicodeSet y_Set{const_cast<UnicodeSet::run_t *>(__y_Set_runs), 93, 0, const_cast<UnicodeSet::bitquad_t *>(__y_Set_quads), 91, 0};
     583
    550584    /** Code Point Ranges for N
    551585    [00c0, 00c5], [00c7, 00cf], [00d1, 00d6], [00d9, 00dd], [00e0, 00e5],
     
    596630    [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
    597631    [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
    598     const UnicodeSet n_Set
    599         {{{Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8},
    600           {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 2},
    601           {Empty, 9}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 18},
    602           {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    603           {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    604           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    605           {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
    606           {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3},
    607           {Empty, 21}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    608           {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 8},
    609           {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
    610           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 60},
    611           {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984}, {Full, 349},
    612           {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2}, {Full, 1},
    613           {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    614           {Empty, 169}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 16},
    615           {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    616           {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 2353},
    617           {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    618          {0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8,
    619           0x7fffff3f, 0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff,
    620           0x000fffc0, 0x0000001b, 0x40100000, 0x0001d7e0, 0x0001fc00,
    621           0x00187c00, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
    622           0xfccf0006, 0x033ffcfc, 0x0000007c, 0x00080005, 0x00120200,
    623           0xff000000, 0xb0001800, 0x00480000, 0x4e000000, 0x30001900,
    624           0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00,
    625           0x74000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
    626           0x00000040, 0x00045540, 0x28000000, 0x0000000b, 0x0bffffff,
    627           0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
    628           0xefcfffde, 0x3fdcffff, 0x00000003, 0x00000c40, 0x0c000000,
    629           0x00004000, 0x0000e000, 0x00001210, 0x00000050, 0x00000292,
    630           0x0333e005, 0x00000333, 0x0000f000, 0x00003c0f, 0x00000600,
    631           0x10000000, 0x55555000, 0x36db02a5, 0x40100000, 0x55555000,
    632           0x36db02a5, 0x47900000, 0x0000000f, 0x7fe53fff, 0xfffffc65,
    633           0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00, 0x00007fdb,
    634           0x14000000, 0x00000800, 0x0000c000, 0x00001800, 0x58000000,
    635           0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
    636           0x3fffffff}};
     632
     633
     634    namespace {
     635    const static UnicodeSet::run_t __n_Set_runs[] = {
     636    {Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8}, {Mixed, 5},
     637    {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 2}, {Empty, 9}, {Mixed, 1},
     638    {Empty, 4}, {Mixed, 1}, {Empty, 18}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     639    {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     640    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     641    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 4},
     642    {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3}, {Empty, 21}, {Full, 4},
     643    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
     644    {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
     645    {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 60},
     646    {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984}, {Full, 349},
     647    {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     648    {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 169}, {Mixed, 2},
     649    {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 10},
     650    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2},
     651    {Empty, 1}, {Mixed, 2}, {Empty, 2353}, {Full, 16}, {Mixed, 1},
     652    {Empty, 28719}};
     653    const static UnicodeSet::bitquad_t  __n_Set_quads[] = {
     654    0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8, 0x7fffff3f,
     655    0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff, 0x000fffc0, 0x0000001b,
     656    0x40100000, 0x0001d7e0, 0x0001fc00, 0x00187c00, 0x0200708b, 0x02000000,
     657    0x708b0000, 0x00c00000, 0xfccf0006, 0x033ffcfc, 0x0000007c, 0x00080005,
     658    0x00120200, 0xff000000, 0xb0001800, 0x00480000, 0x4e000000, 0x30001900,
     659    0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00, 0x74000000,
     660    0x10842008, 0x01680200, 0x20080002, 0x02001084, 0x00000040, 0x00045540,
     661    0x28000000, 0x0000000b, 0x0bffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f,
     662    0x3fffffff, 0x5fdfffff, 0xefcfffde, 0x3fdcffff, 0x00000003, 0x00000c40,
     663    0x0c000000, 0x00004000, 0x0000e000, 0x00001210, 0x00000050, 0x00000292,
     664    0x0333e005, 0x00000333, 0x0000f000, 0x00003c0f, 0x00000600, 0x10000000,
     665    0x55555000, 0x36db02a5, 0x40100000, 0x55555000, 0x36db02a5, 0x47900000,
     666    0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000,
     667    0x5f7ffc00, 0x00007fdb, 0x14000000, 0x00000800, 0x0000c000, 0x00001800,
     668    0x58000000, 0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
     669    0x3fffffff};
     670    }
     671
     672    const static UnicodeSet n_Set{const_cast<UnicodeSet::run_t *>(__n_Set_runs), 93, 0, const_cast<UnicodeSet::bitquad_t *>(__n_Set_quads), 91, 0};
     673
    637674    static EnumeratedPropertyObject property_object
    638675        {NFD_QC,
    639676         NFD_QC_ns::independent_prop_values,
    640          NFD_QC_ns::enum_names,
    641          NFD_QC_ns::value_names,
    642          NFD_QC_ns::aliases_only_map,
    643          {&y_Set, &n_Set
     677         std::move(NFD_QC_ns::enum_names),
     678         std::move(NFD_QC_ns::value_names),
     679         std::move(NFD_QC_ns::aliases_only_map),{
     680&y_Set, &n_Set
    644681         }};
    645682    }
     
    651688        [ffa0, ffa0], [fff0, fff8], [1bca0, 1bca3], [1d173, 1d17a],
    652689        [e0000, e0fff]**/
    653 
    654         const UnicodeSet null_codepoint_set
    655                     {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
    656               {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
    657               {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
    658               {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636},
    659               {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    660               {Empty, 1}, {Mixed, 1}, {Empty, 1509}, {Mixed, 1},
    661               {Empty, 165}, {Mixed, 1}, {Empty, 24948}, {Full, 128},
    662               {Empty, 6016}},
    663              {0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
    664               0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
    665               0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
    666               0x0000000f, 0x07f80000}};
     690       
     691       
     692        namespace {
     693        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
     694        {Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
     695        {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
     696        {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
     697        {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636}, {Mixed, 1},
     698        {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
     699        {Mixed, 1}, {Empty, 1509}, {Mixed, 1}, {Empty, 165}, {Mixed, 1},
     700        {Empty, 24948}, {Full, 128}, {Empty, 6016}};
     701        const static UnicodeSet::bitquad_t  __null_codepoint_set_quads[] = {
     702        0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
     703        0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
     704        0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
     705        0x0000000f, 0x07f80000};
     706        }
     707
     708        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 33, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 17, 0};
     709
     710
    667711
    668712        /** Code Point Ranges for NFKC_CF mapping to <codepoint>
     
    871915        [1f16c, 1f18f], [1f191, 1f1ff], [1f203, 1f20f], [1f23c, 1f23f],
    872916        [1f249, 1f24f], [1f252, 2f7ff], [2fa1e, dffff], [e1000, 10ffff]**/
    873         const UnicodeSet reflexive_set
    874                     {{{Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
    875               {Mixed, 11}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 6},
    876               {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 8}, {Full, 1},
    877               {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    878               {Full, 22}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2},
    879               {Mixed, 2}, {Full, 7}, {Mixed, 1}, {Full, 22}, {Mixed, 1},
    880               {Full, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    881               {Mixed, 4}, {Full, 7}, {Empty, 1}, {Mixed, 2}, {Full, 2},
    882               {Mixed, 2}, {Full, 19}, {Mixed, 1}, {Full, 29}, {Mixed, 1},
    883               {Full, 2}, {Mixed, 1}, {Full, 35}, {Mixed, 1}, {Full, 4},
    884               {Mixed, 4}, {Empty, 1}, {Full, 2}, {Mixed, 12}, {Empty, 1},
    885               {Mixed, 9}, {Full, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    886               {Full, 4}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 9},
    887               {Empty, 4}, {Mixed, 1}, {Full, 40}, {Mixed, 1}, {Full, 2},
    888               {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 9}, {Empty, 1},
    889               {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 3}, {Mixed, 1},
    890               {Full, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 6},
    891               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    892               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    893               {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    894               {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Full, 914}, {Mixed, 3},
    895               {Full, 4}, {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Full, 26},
    896               {Mixed, 2}, {Empty, 2}, {Full, 618}, {Empty, 8}, {Mixed, 2},
    897               {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
    898               {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
    899               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3},
    900               {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 32}, {Empty, 1},
    901               {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 61}, {Empty, 1},
    902               {Mixed, 1}, {Full, 95}, {Empty, 1}, {Full, 1311}, {Mixed, 1},
    903               {Full, 164}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 17},
    904               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    905               {Mixed, 3}, {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    906               {Empty, 1}, {Full, 136}, {Empty, 1}, {Mixed, 1}, {Full, 38},
    907               {Mixed, 6}, {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3},
    908               {Full, 2093}, {Empty, 16}, {Mixed, 1}, {Full, 22575},
    909               {Empty, 128}, {Full, 6016}},
    910              {0xf8000001, 0x88c35afe, 0x00800000, 0xaaaaaaaa, 0x55a2aaaa,
    911               0xaaaaa954, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555400f,
    912               0xaa21aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xfe00ffff,
    913               0xc0ffffff, 0xffffffe0, 0xffff7fc4, 0x3baaffff, 0x0001280f,
    914               0xfffff004, 0xaa807ffb, 0x1948aaaa, 0xffff0000, 0xaaaaaaaa,
    915               0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
    916               0x0001aaaa, 0xff800000, 0xffffff7f, 0xefffffff, 0xfe1fffff,
    917               0x00ffffff, 0x4fffffff, 0xffb7ffff, 0xb1ffffff, 0xcfffffff,
    918               0xfff7ffff, 0xfff7ffff, 0xcfffffff, 0xffffefff, 0xef7bdff7,
    919               0xfc17fdff, 0xdff7fffd, 0xfdffef7b, 0xffffdf40, 0xefffffff,
    920               0x7fffffff, 0xfffffffe, 0xc0ffffff, 0xffcfffff, 0xffff87ff,
    921               0xfffffe00, 0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff,
    922               0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xb3eaaaaa,
    923               0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xc0ff00ff, 0x00ff00ff,
    924               0x55ffc0ff, 0xd55500ff, 0x00630000, 0x10f70060, 0x806300f7,
    925               0xff7d0000, 0xaf27038f, 0x7f7ffc7f, 0x000c0000, 0xe0008000,
    926               0xfffffeff, 0xc1900110, 0x040042a8, 0x0000fc1e, 0xfffffdf7,
    927               0xfffe4fff, 0xfffff9ff, 0xfffff800, 0xffffefff, 0xff8fffff,
    928               0xefffffff, 0xffff8000, 0x0fda1562, 0xaaaaaaaa, 0xaaaaaaaa,
    929               0xaaaaaaaa, 0xfffbd7fa, 0xffff7fff, 0x7fffffff, 0xfff7ffff,
    930               0xffc00000, 0xfffffffe, 0xf8bfffff, 0x67ffffff, 0x7fffffff,
    931               0x0001ffff, 0x00038000, 0x80000000, 0x0000ff00, 0x80000000,
    932               0x80000000, 0xaaaaaaaa, 0xffffeaaa, 0xcaaaaaaa, 0xaaabaaab,
    933               0xaaaaaaaa, 0x95feaaaa, 0xaabad7aa, 0xffa082aa, 0xfcffffff,
    934               0x0fffffff, 0x0000ffff, 0x801ac000, 0x0000039a, 0x0000c000,
    935               0xfc000000, 0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000,
    936               0x0007ffff, 0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00,
    937               0xe000ffff, 0xfc000000, 0x0000ffff, 0x00080060, 0x0028f080,
    938               0x60000000, 0x00000001, 0x80000000, 0xe3030303, 0xfe008080,
    939               0xffffff00, 0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffff0,
    940               0x3fffffff, 0xf807ffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
    941               0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
    942               0x000203a0, 0x000000c0, 0x00003000, 0xfffffffc, 0x00000010,
    943               0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
    944               0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff,
    945               0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000}};
     917       
     918       
     919        namespace {
     920        const static UnicodeSet::run_t __reflexive_set_runs[] = {
     921        {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
     922        {Mixed, 11}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 6},
     923        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 8}, {Full, 1},
     924        {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     925        {Full, 22}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2},
     926        {Mixed, 2}, {Full, 7}, {Mixed, 1}, {Full, 22}, {Mixed, 1},
     927        {Full, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
     928        {Full, 7}, {Empty, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     929        {Full, 19}, {Mixed, 1}, {Full, 29}, {Mixed, 1}, {Full, 2},
     930        {Mixed, 1}, {Full, 35}, {Mixed, 1}, {Full, 4}, {Mixed, 4},
     931        {Empty, 1}, {Full, 2}, {Mixed, 12}, {Empty, 1}, {Mixed, 9},
     932        {Full, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Full, 4},
     933        {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 9}, {Empty, 4},
     934        {Mixed, 1}, {Full, 40}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     935        {Full, 2}, {Mixed, 1}, {Full, 9}, {Empty, 1}, {Mixed, 1}, {Full, 1},
     936        {Mixed, 5}, {Full, 3}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 2},
     937        {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     938        {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     939        {Empty, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1},
     940        {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Full, 914},
     941        {Mixed, 3}, {Full, 4}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
     942        {Full, 26}, {Mixed, 2}, {Empty, 2}, {Full, 618}, {Empty, 8},
     943        {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     944        {Full, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10},
     945        {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6},
     946        {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 32},
     947        {Empty, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 61},
     948        {Empty, 1}, {Mixed, 1}, {Full, 95}, {Empty, 1}, {Full, 1311},
     949        {Mixed, 1}, {Full, 164}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     950        {Full, 17}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     951        {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1}, {Empty, 8},
     952        {Mixed, 1}, {Empty, 1}, {Full, 136}, {Empty, 1}, {Mixed, 1},
     953        {Full, 38}, {Mixed, 6}, {Full, 18}, {Mixed, 5}, {Full, 3},
     954        {Mixed, 3}, {Full, 2093}, {Empty, 16}, {Mixed, 1}, {Full, 22575},
     955        {Empty, 128}, {Full, 6016}};
     956        const static UnicodeSet::bitquad_t  __reflexive_set_quads[] = {
     957        0xf8000001, 0x88c35afe, 0x00800000, 0xaaaaaaaa, 0x55a2aaaa,
     958        0xaaaaa954, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555400f,
     959        0xaa21aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xfe00ffff,
     960        0xc0ffffff, 0xffffffe0, 0xffff7fc4, 0x3baaffff, 0x0001280f,
     961        0xfffff004, 0xaa807ffb, 0x1948aaaa, 0xffff0000, 0xaaaaaaaa,
     962        0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
     963        0x0001aaaa, 0xff800000, 0xffffff7f, 0xefffffff, 0xfe1fffff,
     964        0x00ffffff, 0x4fffffff, 0xffb7ffff, 0xb1ffffff, 0xcfffffff,
     965        0xfff7ffff, 0xfff7ffff, 0xcfffffff, 0xffffefff, 0xef7bdff7,
     966        0xfc17fdff, 0xdff7fffd, 0xfdffef7b, 0xffffdf40, 0xefffffff,
     967        0x7fffffff, 0xfffffffe, 0xc0ffffff, 0xffcfffff, 0xffff87ff,
     968        0xfffffe00, 0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff,
     969        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xb3eaaaaa,
     970        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xc0ff00ff, 0x00ff00ff,
     971        0x55ffc0ff, 0xd55500ff, 0x00630000, 0x10f70060, 0x806300f7,
     972        0xff7d0000, 0xaf27038f, 0x7f7ffc7f, 0x000c0000, 0xe0008000,
     973        0xfffffeff, 0xc1900110, 0x040042a8, 0x0000fc1e, 0xfffffdf7,
     974        0xfffe4fff, 0xfffff9ff, 0xfffff800, 0xffffefff, 0xff8fffff,
     975        0xefffffff, 0xffff8000, 0x0fda1562, 0xaaaaaaaa, 0xaaaaaaaa,
     976        0xaaaaaaaa, 0xfffbd7fa, 0xffff7fff, 0x7fffffff, 0xfff7ffff,
     977        0xffc00000, 0xfffffffe, 0xf8bfffff, 0x67ffffff, 0x7fffffff,
     978        0x0001ffff, 0x00038000, 0x80000000, 0x0000ff00, 0x80000000,
     979        0x80000000, 0xaaaaaaaa, 0xffffeaaa, 0xcaaaaaaa, 0xaaabaaab,
     980        0xaaaaaaaa, 0x95feaaaa, 0xaabad7aa, 0xffa082aa, 0xfcffffff,
     981        0x0fffffff, 0x0000ffff, 0x801ac000, 0x0000039a, 0x0000c000,
     982        0xfc000000, 0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000,
     983        0x0007ffff, 0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00,
     984        0xe000ffff, 0xfc000000, 0x0000ffff, 0x00080060, 0x0028f080,
     985        0x60000000, 0x00000001, 0x80000000, 0xe3030303, 0xfe008080,
     986        0xffffff00, 0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffff0,
     987        0x3fffffff, 0xf807ffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
     988        0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
     989        0x000203a0, 0x000000c0, 0x00003000, 0xfffffffc, 0x00000010,
     990        0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
     991        0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff,
     992        0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000};
     993        }
     994
     995        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 176, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 179, 0};
     996
     997
    946998
    947999        const unsigned buffer_length = 23235;
    948         const static char __attribute__ ((aligned (32))) string_buffer[23296] = u8R"__(a
     1000        const static char string_buffer[23296] LLVM_ALIGNAS(32) = u8R"__(a
    9491001b
    9501002c
     
    73857437)__";
    73867438
    7387         const static std::vector<codepoint_t> defined_cps = {
     7439        const static std::vector<codepoint_t> defined_cps{
    73887440        0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
    73897441        0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
     
    81808232        0x2fa18, 0x2fa19, 0x2fa1a, 0x2fa1b, 0x2fa1c, 0x2fa1d};
    81818233        static StringPropertyObject property_object(NFKC_CF,
    8182                                                     null_codepoint_set,
    8183                                                     reflexive_set,
     8234                                                    std::move(null_codepoint_set),
     8235                                                    std::move(reflexive_set),
    81848236                                                    static_cast<const char *>(string_buffer),
    81858237                                                    buffer_length,
    8186                                                     defined_cps);
     8238                                                    std::move(defined_cps));
    81878239    }
    81888240  namespace NFKC_QC_ns {
     
    82518303    [1f203, 1f20f], [1f23c, 1f23f], [1f249, 1f24f], [1f252, 2f7ff],
    82528304    [2fa1e, 10ffff]**/
    8253     const UnicodeSet y_Set
    8254         {{{Full, 5}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
    8255           {Mixed, 2}, {Full, 5}, {Mixed, 8}, {Full, 1}, {Mixed, 2},
    8256           {Full, 12}, {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Full, 21},
    8257           {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
    8258           {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
    8259           {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    8260           {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 3},
    8261           {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    8262           {Full, 3}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 3},
    8263           {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 74}, {Mixed, 1},
    8264           {Full, 15}, {Mixed, 4}, {Empty, 1}, {Full, 6}, {Mixed, 1},
    8265           {Full, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 9}, {Full, 2},
    8266           {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1},
    8267           {Full, 7}, {Mixed, 1}, {Full, 9}, {Empty, 4}, {Mixed, 1},
    8268           {Full, 40}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 2},
    8269           {Mixed, 1}, {Full, 12}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
    8270           {Full, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 6},
    8271           {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    8272           {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    8273           {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    8274           {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Full, 916}, {Mixed, 1},
    8275           {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 26},
    8276           {Mixed, 1}, {Full, 621}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
    8277           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    8278           {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 1},
    8279           {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3}, {Mixed, 2},
    8280           {Empty, 4}, {Mixed, 3}, {Full, 133}, {Mixed, 1}, {Full, 3},
    8281           {Mixed, 1}, {Full, 15}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
    8282           {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2}, {Full, 1},
    8283           {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
    8284           {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1},
    8285           {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176}, {Mixed, 6},
    8286           {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3}, {Full, 2093},
    8287           {Empty, 16}, {Mixed, 1}, {Full, 28719}},
    8288          {0x88c37afe, 0x7ff3ffff, 0xfffffdfe, 0x7fffffff, 0xffffe00f,
    8289           0xfff1ffff, 0xfe00ffff, 0xc0ffffff, 0xffffffe0, 0xf7e56020,
    8290           0xfefc9e07, 0xffffffc0, 0xbbefffff, 0xffffff4f, 0xff80ffff,
    8291           0xfdc8ffff, 0xffffff7f, 0xffc7ffff, 0xfe1fffff, 0xefffffff,
    8292           0x00ffffff, 0xbfffffff, 0x4f7fffff, 0xffb7ffff, 0xb1ffffff,
    8293           0xbfffffff, 0xcf3fffff, 0xbfffffff, 0xff7fffff, 0xffbfffff,
    8294           0xff9ffffb, 0xbfffffff, 0xff7fffff, 0x7fff7bff, 0xfff7ffff,
    8295           0xfff7ffff, 0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff,
    8296           0xdff7fffd, 0xfdffef7b, 0xffffbfff, 0xefffffff, 0xffc00001,
    8297           0x000000ff, 0xfffffff8, 0xffdfffff, 0x08008fff, 0x00004000,
    8298           0xfefff800, 0x07ffffff, 0xf3ffffff, 0xd555ffff, 0x17ffffff,
    8299           0x17f715fc, 0x95ff17f7, 0xff7df800, 0xaf277f8f, 0x7f7ffc7f,
    8300           0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110, 0x040442a8,
    8301           0x0000fc1e, 0xfffffdff, 0xfffe4fff, 0xfffff9ff, 0xfffff800,
    8302           0xffffefff, 0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff,
    8303           0x7fffffff, 0xfff7ffff, 0xffc00000, 0xfffffffe, 0xf8bfffff,
    8304           0x61ffffff, 0x7fffffff, 0x0001ffff, 0x00038000, 0x80000000,
    8305           0x0000ff00, 0x80000000, 0x80000000, 0xcfffffff, 0xfffeffff,
    8306           0xfcffffff, 0x0fffffff, 0x801ac000, 0x0000039a, 0x0000c000,
    8307           0xfc000000, 0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000,
    8308           0x0007ffff, 0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00,
    8309           0xe000ffff, 0xfc00ffff, 0x0000ffff, 0x00080060, 0x0028f080,
    8310           0xe0000000, 0x00000001, 0x80000000, 0xe3030303, 0xffff8080,
    8311           0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff, 0xdbfeffff,
    8312           0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
    8313           0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840,
    8314           0x84000000, 0x000203a0, 0x000000c0, 0x00003000, 0x00000010,
    8315           0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
    8316           0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff,
    8317           0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000}};
     8305
     8306
     8307    namespace {
     8308    const static UnicodeSet::run_t __y_Set_runs[] = {
     8309    {Full, 5}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     8310    {Full, 5}, {Mixed, 8}, {Full, 1}, {Mixed, 2}, {Full, 12}, {Mixed, 1},
     8311    {Full, 5}, {Mixed, 2}, {Full, 21}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     8312    {Full, 2}, {Mixed, 2}, {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     8313    {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     8314    {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 2},
     8315    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 3}, {Mixed, 1},
     8316    {Full, 5}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     8317    {Full, 74}, {Mixed, 1}, {Full, 15}, {Mixed, 4}, {Empty, 1}, {Full, 6},
     8318    {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 9}, {Full, 2},
     8319    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 7},
     8320    {Mixed, 1}, {Full, 9}, {Empty, 4}, {Mixed, 1}, {Full, 40}, {Mixed, 1},
     8321    {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 12}, {Mixed, 1},
     8322    {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     8323    {Empty, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     8324    {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     8325    {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     8326    {Empty, 8}, {Full, 916}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 3},
     8327    {Mixed, 1}, {Full, 26}, {Mixed, 1}, {Full, 621}, {Empty, 8}, {Mixed, 2},
     8328    {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     8329    {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     8330    {Empty, 1}, {Mixed, 6}, {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 3},
     8331    {Full, 133}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 15}, {Mixed, 2},
     8332    {Full, 10}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
     8333    {Full, 1}, {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     8334    {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1}, {Empty, 8},
     8335    {Mixed, 1}, {Empty, 1}, {Full, 176}, {Mixed, 6}, {Full, 18}, {Mixed, 5},
     8336    {Full, 3}, {Mixed, 3}, {Full, 2093}, {Empty, 16}, {Mixed, 1},
     8337    {Full, 28719}};
     8338    const static UnicodeSet::bitquad_t  __y_Set_quads[] = {
     8339    0x88c37afe, 0x7ff3ffff, 0xfffffdfe, 0x7fffffff, 0xffffe00f, 0xfff1ffff,
     8340    0xfe00ffff, 0xc0ffffff, 0xffffffe0, 0xf7e56020, 0xfefc9e07, 0xffffffc0,
     8341    0xbbefffff, 0xffffff4f, 0xff80ffff, 0xfdc8ffff, 0xffffff7f, 0xffc7ffff,
     8342    0xfe1fffff, 0xefffffff, 0x00ffffff, 0xbfffffff, 0x4f7fffff, 0xffb7ffff,
     8343    0xb1ffffff, 0xbfffffff, 0xcf3fffff, 0xbfffffff, 0xff7fffff, 0xffbfffff,
     8344    0xff9ffffb, 0xbfffffff, 0xff7fffff, 0x7fff7bff, 0xfff7ffff, 0xfff7ffff,
     8345    0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff, 0xdff7fffd, 0xfdffef7b,
     8346    0xffffbfff, 0xefffffff, 0xffc00001, 0x000000ff, 0xfffffff8, 0xffdfffff,
     8347    0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff, 0xf3ffffff, 0xd555ffff,
     8348    0x17ffffff, 0x17f715fc, 0x95ff17f7, 0xff7df800, 0xaf277f8f, 0x7f7ffc7f,
     8349    0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110, 0x040442a8, 0x0000fc1e,
     8350    0xfffffdff, 0xfffe4fff, 0xfffff9ff, 0xfffff800, 0xffffefff, 0xff8fffff,
     8351    0xefffffff, 0xcfffffff, 0xffff7fff, 0x7fffffff, 0xfff7ffff, 0xffc00000,
     8352    0xfffffffe, 0xf8bfffff, 0x61ffffff, 0x7fffffff, 0x0001ffff, 0x00038000,
     8353    0x80000000, 0x0000ff00, 0x80000000, 0x80000000, 0xcfffffff, 0xfffeffff,
     8354    0xfcffffff, 0x0fffffff, 0x801ac000, 0x0000039a, 0x0000c000, 0xfc000000,
     8355    0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000, 0x0007ffff, 0xc0000000,
     8356    0x0000ffff, 0x00030000, 0xffffff00, 0xe000ffff, 0xfc00ffff, 0x0000ffff,
     8357    0x00080060, 0x0028f080, 0xe0000000, 0x00000001, 0x80000000, 0xe3030303,
     8358    0xffff8080, 0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff, 0xdbfeffff,
     8359    0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
     8360    0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000, 0x000203a0,
     8361    0x000000c0, 0x00003000, 0x00000010, 0xf5080169, 0x5569157b, 0xa1080869,
     8362    0xf0000400, 0xf0000411, 0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff,
     8363    0xfffeffff, 0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000};
     8364    }
     8365
     8366    const static UnicodeSet y_Set{const_cast<UnicodeSet::run_t *>(__y_Set_runs), 168, 0, const_cast<UnicodeSet::bitquad_t *>(__y_Set_quads), 149, 0};
     8367
    83188368    /** Code Point Ranges for N
    83198369    [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af], [00b2, 00b5],
     
    83718421    [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248], [1f250, 1f251],
    83728422    [2f800, 2fa1d]**/
    8373     const UnicodeSet n_Set
    8374         {{{Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
    8375           {Mixed, 2}, {Empty, 5}, {Mixed, 3}, {Empty, 2}, {Mixed, 3},
    8376           {Empty, 1}, {Mixed, 2}, {Empty, 12}, {Mixed, 1}, {Empty, 6},
    8377           {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    8378           {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22},
    8379           {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    8380           {Empty, 1}, {Mixed, 4}, {Empty, 9}, {Mixed, 1}, {Empty, 97},
    8381           {Mixed, 4}, {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 6},
    8382           {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 2}, {Mixed, 3},
    8383           {Full, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 7},
    8384           {Mixed, 1}, {Empty, 9}, {Full, 4}, {Mixed, 1}, {Empty, 40},
    8385           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    8386           {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 8},
    8387           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    8388           {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
    8389           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    8390           {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3},
    8391           {Mixed, 1}, {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6},
    8392           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1},
    8393           {Empty, 621}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    8394           {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
    8395           {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    8396           {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2}, {Full, 4},
    8397           {Mixed, 3}, {Empty, 1674}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    8398           {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    8399           {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
    8400           {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6}, {Empty, 18},
    8401           {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 2093}, {Full, 16},
    8402           {Mixed, 1}, {Empty, 28719}},
    8403          {0x773c8501, 0x800c0000, 0x00000201, 0x80000000, 0x00001ff0,
    8404           0x000e0000, 0x01ff0000, 0x3f000000, 0x0000001f, 0x0000001b,
    8405           0x44100000, 0x000000b0, 0x007f0000, 0x02370000, 0x00000080,
    8406           0x01e00000, 0xff000000, 0xb0000000, 0x00480000, 0x4e000000,
    8407           0x30000000, 0x00080000, 0x00080000, 0x30000000, 0x00001000,
    8408           0x10842008, 0x03e80200, 0x20080002, 0x02001084, 0x10000000,
    8409           0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000, 0x0c000000,
    8410           0x2aaa0000, 0xe8000000, 0xe808ea03, 0x6a00e808, 0x008207ff,
    8411           0x50d88070, 0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100,
    8412           0x3e6ffeef, 0xfbfbbd57, 0xffff03e1, 0x00000200, 0x0001b000,
    8413           0x00000600, 0x000007ff, 0x00001000, 0x00700000, 0x10000000,
    8414           0x30000000, 0x00008000, 0x80000000, 0x00080000, 0x003fffff,
    8415           0x00000001, 0x07400000, 0x98000000, 0x80000000, 0xfffe0000,
    8416           0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff, 0x7fffffff,
    8417           0x30000000, 0x00010000, 0x03000000, 0xf0000000, 0x7fe53fff,
    8418           0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7fffff,
    8419           0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
    8420           0xfffcffff, 0x000000ff, 0x1fff0000, 0x03ff0000, 0xffff0000,
    8421           0xfff7ff9f, 0xffd70f7f, 0x1fffffff, 0xfffffffe, 0x7fffffff,
    8422           0x1cfcfcfc, 0x00007f7f, 0xc0000000, 0x0000001f, 0xf8000000,
    8423           0x00000001, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
    8424           0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xffffcfff,
    8425           0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
    8426           0x0ffffbee, 0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00,
    8427           0x00010000, 0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
     8423
     8424
     8425    namespace {
     8426    const static UnicodeSet::run_t __n_Set_runs[] = {
     8427    {Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
     8428    {Empty, 5}, {Mixed, 3}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
     8429    {Empty, 12}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 22},
     8430    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
     8431    {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 1},
     8432    {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 9}, {Mixed, 1}, {Empty, 97},
     8433    {Mixed, 4}, {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     8434    {Empty, 1}, {Mixed, 9}, {Empty, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     8435    {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 9}, {Full, 4},
     8436    {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
     8437    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 8},
     8438    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1},
     8439    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     8440    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1},
     8441    {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 916}, {Mixed, 1},
     8442    {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1},
     8443    {Empty, 621}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 2},
     8444    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10},
     8445    {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
     8446    {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 1674}, {Mixed, 2},
     8447    {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1},
     8448    {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
     8449    {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6}, {Empty, 18},
     8450    {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 2093}, {Full, 16},
     8451    {Mixed, 1}, {Empty, 28719}};
     8452    const static UnicodeSet::bitquad_t  __n_Set_quads[] = {
     8453    0x773c8501, 0x800c0000, 0x00000201, 0x80000000, 0x00001ff0, 0x000e0000,
     8454    0x01ff0000, 0x3f000000, 0x0000001f, 0x0000001b, 0x44100000, 0x000000b0,
     8455    0x007f0000, 0x02370000, 0x00000080, 0x01e00000, 0xff000000, 0xb0000000,
     8456    0x00480000, 0x4e000000, 0x30000000, 0x00080000, 0x00080000, 0x30000000,
     8457    0x00001000, 0x10842008, 0x03e80200, 0x20080002, 0x02001084, 0x10000000,
     8458    0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000, 0x0c000000, 0x2aaa0000,
     8459    0xe8000000, 0xe808ea03, 0x6a00e808, 0x008207ff, 0x50d88070, 0x80800380,
     8460    0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef, 0xfbfbbd57, 0xffff03e1,
     8461    0x00000200, 0x0001b000, 0x00000600, 0x000007ff, 0x00001000, 0x00700000,
     8462    0x10000000, 0x30000000, 0x00008000, 0x80000000, 0x00080000, 0x003fffff,
     8463    0x00000001, 0x07400000, 0x98000000, 0x80000000, 0xfffe0000, 0xfffc7fff,
     8464    0x7fffffff, 0xffff00ff, 0x7fffffff, 0x7fffffff, 0x30000000, 0x00010000,
     8465    0x03000000, 0xf0000000, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
     8466    0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
     8467    0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000, 0x03ff0000, 0xffff0000,
     8468    0xfff7ff9f, 0xffd70f7f, 0x1fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc,
     8469    0x00007f7f, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
     8470    0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     8471    0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
     8472    0x0ffffbff, 0x0ffffbee, 0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00,
     8473    0x00010000, 0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff};
     8474    }
     8475
     8476    const static UnicodeSet n_Set{const_cast<UnicodeSet::run_t *>(__n_Set_runs), 142, 0, const_cast<UnicodeSet::bitquad_t *>(__n_Set_quads), 125, 0};
     8477
    84288478    /** Code Point Ranges for M
    84298479    [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311], [0313, 0314],
     
    84368486    [11127, 11127], [1133e, 1133e], [11357, 11357], [114b0, 114b0],
    84378487    [114ba, 114ba], [114bd, 114bd], [115af, 115af]**/
    8438     const UnicodeSet m_Set
    8439         {{{Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
    8440           {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
    8441           {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    8442           {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    8443           {Empty, 18}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
    8444           {Mixed, 2}, {Empty, 74}, {Mixed, 1}, {Empty, 170}, {Mixed, 1},
    8445           {Empty, 1792}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15},
    8446           {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    8447           {Empty, 32594}},
    8448          {0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000,
    8449           0x40000000, 0x00800000, 0x40000000, 0x00c00000, 0x40000000,
    8450           0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
    8451           0x80008400, 0x00004000, 0x003ffffe, 0xffffff00, 0x00000007,
    8452           0x00200000, 0x06000000, 0x04000000, 0x00000080, 0x40000000,
    8453           0x00800000, 0x24010000, 0x00008000}};
     8488
     8489
     8490    namespace {
     8491    const static UnicodeSet::run_t __m_Set_runs[] = {
     8492    {Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
     8493    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 2},
     8494    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
     8495    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 9},
     8496    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 74}, {Mixed, 1},
     8497    {Empty, 170}, {Mixed, 1}, {Empty, 1792}, {Mixed, 1}, {Empty, 3},
     8498    {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 10}, {Mixed, 1},
     8499    {Empty, 7}, {Mixed, 1}, {Empty, 32594}};
     8500    const static UnicodeSet::bitquad_t  __m_Set_quads[] = {
     8501    0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000, 0x40000000,
     8502    0x00800000, 0x40000000, 0x00c00000, 0x40000000, 0x00800000, 0x00400000,
     8503    0x00600004, 0x40000000, 0x00800000, 0x80008400, 0x00004000, 0x003ffffe,
     8504    0xffffff00, 0x00000007, 0x00200000, 0x06000000, 0x04000000, 0x00000080,
     8505    0x40000000, 0x00800000, 0x24010000, 0x00008000};
     8506    }
     8507
     8508    const static UnicodeSet m_Set{const_cast<UnicodeSet::run_t *>(__m_Set_runs), 41, 0, const_cast<UnicodeSet::bitquad_t *>(__m_Set_quads), 28, 0};
     8509
    84548510    static EnumeratedPropertyObject property_object
    84558511        {NFKC_QC,
    84568512         NFKC_QC_ns::independent_prop_values,
    8457          NFKC_QC_ns::enum_names,
    8458          NFKC_QC_ns::value_names,
    8459          NFKC_QC_ns::aliases_only_map,
    8460          {&y_Set, &n_Set, &m_Set
     8513         std::move(NFKC_QC_ns::enum_names),
     8514         std::move(NFKC_QC_ns::value_names),
     8515         std::move(NFKC_QC_ns::aliases_only_map),{
     8516&y_Set, &n_Set, &m_Set
    84618517         }};
    84628518    }
     
    85468602    [1f150, 1f169], [1f16c, 1f18f], [1f191, 1f1ff], [1f203, 1f20f],
    85478603    [1f23c, 1f23f], [1f249, 1f24f], [1f252, 2f7ff], [2fa1e, 10ffff]**/
    8548     const UnicodeSet y_Set
    8549         {{{Full, 5}, {Mixed, 7}, {Full, 1}, {Mixed, 5}, {Full, 3},
    8550           {Mixed, 3}, {Full, 2}, {Mixed, 10}, {Full, 2}, {Mixed, 2},
    8551           {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 1},
    8552           {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 18}, {Mixed, 2},
    8553           {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 7},
    8554           {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    8555           {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3},
    8556           {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    8557           {Full, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    8558           {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 5}, {Mixed, 1},
    8559           {Full, 80}, {Mixed, 3}, {Full, 14}, {Mixed, 4}, {Empty, 1},
    8560           {Full, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    8561           {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 9}, {Full, 2},
    8562           {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 6},
    8563           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 9},
    8564           {Empty, 4}, {Mixed, 1}, {Full, 40}, {Mixed, 1}, {Full, 2},
    8565           {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 12}, {Mixed, 1},
    8566           {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 2},
    8567           {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 8},
    8568           {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 3},
    8569           {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    8570           {Empty, 8}, {Full, 916}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    8571           {Full, 3}, {Mixed, 1}, {Full, 26}, {Mixed, 1}, {Full, 5},
    8572           {Empty, 349}, {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2},
    8573           {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
    8574           {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
    8575           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3},
    8576           {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 132}, {Mixed, 2},
    8577           {Full, 3}, {Mixed, 1}, {Full, 16}, {Mixed, 1}, {Full, 10},
    8578           {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
    8579           {Full, 1}, {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1},
    8580           {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10},
    8581           {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176},
    8582           {Mixed, 6}, {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3},
    8583           {Full, 2093}, {Empty, 16}, {Mixed, 1}, {Full, 28719}},
    8584          {0x88c37afe, 0xc1810040, 0x41810040, 0x00030000, 0x010200c0,
    8585           0x000c0c06, 0x000000c0, 0xfffe7ffc, 0x2000000f, 0x00c00030,
    8586           0x30000000, 0xfff0003f, 0xfe00ffff, 0xc0ffffff, 0xffffffe0,
    8587           0xffffffe4, 0xbbefffff, 0xfffe280f, 0xfffe03ff, 0xff8083ff,
    8588           0xfdc8ffff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff, 0xff3fffff,
    8589           0x0330fff9, 0xfcc00303, 0xffffff7f, 0xffffff83, 0xfe1fffff,
    8590           0xfff7fffa, 0xffedfdff, 0x00ffffff, 0x4fffe7ff, 0xffb7ffff,
    8591           0xb1ffffff, 0xcfffe6ff, 0xffefffff, 0xffffe3ff, 0xfffffeff,
    8592           0xfffff27e, 0xffffe3ff, 0x8bffffff, 0xfff7ffff, 0xfff7ffff,
    8593           0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff, 0xdff7fffd,
    8594           0xfdffef7b, 0xffffffbf, 0xefffffff, 0xfffbaabf, 0xd7ffffff,
    8595           0xfffffff4, 0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff,
    8596           0xf0000000, 0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000,
    8597           0x00200000, 0x10300020, 0x80230000, 0xff7df800, 0xaf277f8f,
    8598           0x7f7ffc7f, 0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110,
    8599           0x040442a8, 0x0000fc1e, 0xf3fffdff, 0xffffbfff, 0xffff1fff,
    8600           0xffffedef, 0xfffe4faf, 0xfffffd6d, 0xfccc1ffa, 0xfffffccc,
    8601           0xffff0fff, 0xffffc3f0, 0xfffff9ff, 0xfffff800, 0xffffefff,
    8602           0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff, 0x7fffffff,
    8603           0xfff7ffff, 0xffc00000, 0xfffffffe, 0xf8bfffff, 0xaaaaafff,
    8604           0xc924fd5a, 0x27efffff, 0xaaaaafff, 0xc924fd5a, 0x386fffff,
    8605           0x0001ffff, 0x00038000, 0x80000000, 0x0000ff00, 0x80000000,
    8606           0x80000000, 0xcfffffff, 0xfffeffff, 0xfcffffff, 0x0fffffff,
    8607           0xfffffff0, 0x801ac000, 0x0000039a, 0x0000c000, 0xfc000000,
    8608           0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000, 0x0007ffff,
    8609           0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00, 0xe000ffff,
    8610           0xfc00ffff, 0x0000ffff, 0x00080060, 0x0028f080, 0xe0000000,
    8611           0x00000001, 0x80000000, 0xe3030303, 0xffff8080, 0xebffffff,
    8612           0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff, 0xf3ffffff,
    8613           0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
    8614           0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
    8615           0x000203a0, 0x000000c0, 0x00003000, 0x00000010, 0xf5080169,
    8616           0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0x0000f800,
    8617           0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff, 0x0000fff8,
    8618           0xf0000000, 0xfffcfe00, 0xc0000000}};
     8604
     8605
     8606    namespace {
     8607    const static UnicodeSet::run_t __y_Set_runs[] = {
     8608    {Full, 5}, {Mixed, 7}, {Full, 1}, {Mixed, 5}, {Full, 3}, {Mixed, 3},
     8609    {Full, 2}, {Mixed, 10}, {Full, 2}, {Mixed, 2}, {Full, 4}, {Mixed, 1},
     8610    {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     8611    {Full, 18}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     8612    {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     8613    {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     8614    {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 2},
     8615    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 3}, {Mixed, 1},
     8616    {Full, 5}, {Mixed, 1}, {Full, 80}, {Mixed, 3}, {Full, 14}, {Mixed, 4},
     8617    {Empty, 1}, {Full, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     8618    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 9}, {Full, 2}, {Mixed, 3},
     8619    {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
     8620    {Full, 1}, {Mixed, 1}, {Full, 9}, {Empty, 4}, {Mixed, 1}, {Full, 40},
     8621    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 12},
     8622    {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 2},
     8623    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 8}, {Full, 1},
     8624    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1},
     8625    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Full, 916}, {Mixed, 1},
     8626    {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 26}, {Mixed, 1},
     8627    {Full, 5}, {Empty, 349}, {Mixed, 1}, {Full, 266}, {Empty, 8},
     8628    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
     8629    {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 1},
     8630    {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3}, {Mixed, 2}, {Empty, 4},
     8631    {Mixed, 3}, {Full, 132}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 16},
     8632    {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500},
     8633    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1},
     8634    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1},
     8635    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176}, {Mixed, 6}, {Full, 18},
     8636    {Mixed, 5}, {Full, 3}, {Mixed, 3}, {Full, 2093}, {Empty, 16},
     8637    {Mixed, 1}, {Full, 28719}};
     8638    const static UnicodeSet::bitquad_t  __y_Set_quads[] = {
     8639    0x88c37afe, 0xc1810040, 0x41810040, 0x00030000, 0x010200c0, 0x000c0c06,
     8640    0x000000c0, 0xfffe7ffc, 0x2000000f, 0x00c00030, 0x30000000, 0xfff0003f,
     8641    0xfe00ffff, 0xc0ffffff, 0xffffffe0, 0xffffffe4, 0xbbefffff, 0xfffe280f,
     8642    0xfffe03ff, 0xff8083ff, 0xfdc8ffff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff,
     8643    0xff3fffff, 0x0330fff9, 0xfcc00303, 0xffffff7f, 0xffffff83, 0xfe1fffff,
     8644    0xfff7fffa, 0xffedfdff, 0x00ffffff, 0x4fffe7ff, 0xffb7ffff, 0xb1ffffff,
     8645    0xcfffe6ff, 0xffefffff, 0xffffe3ff, 0xfffffeff, 0xfffff27e, 0xffffe3ff,
     8646    0x8bffffff, 0xfff7ffff, 0xfff7ffff, 0xcfffffff, 0xffffefff, 0xef7bdff7,
     8647    0xfc17fdff, 0xdff7fffd, 0xfdffef7b, 0xffffffbf, 0xefffffff, 0xfffbaabf,
     8648    0xd7ffffff, 0xfffffff4, 0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff,
     8649    0xf0000000, 0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000, 0x00200000,
     8650    0x10300020, 0x80230000, 0xff7df800, 0xaf277f8f, 0x7f7ffc7f, 0x000cffff,
     8651    0xe0008000, 0xfffffeff, 0xc1900110, 0x040442a8, 0x0000fc1e, 0xf3fffdff,
     8652    0xffffbfff, 0xffff1fff, 0xffffedef, 0xfffe4faf, 0xfffffd6d, 0xfccc1ffa,
     8653    0xfffffccc, 0xffff0fff, 0xffffc3f0, 0xfffff9ff, 0xfffff800, 0xffffefff,
     8654    0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff, 0x7fffffff, 0xfff7ffff,
     8655    0xffc00000, 0xfffffffe, 0xf8bfffff, 0xaaaaafff, 0xc924fd5a, 0x27efffff,
     8656    0xaaaaafff, 0xc924fd5a, 0x386fffff, 0x0001ffff, 0x00038000, 0x80000000,
     8657    0x0000ff00, 0x80000000, 0x80000000, 0xcfffffff, 0xfffeffff, 0xfcffffff,
     8658    0x0fffffff, 0xfffffff0, 0x801ac000, 0x0000039a, 0x0000c000, 0xfc000000,
     8659    0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000, 0x0007ffff, 0xc0000000,
     8660    0x0000ffff, 0x00030000, 0xffffff00, 0xe000ffff, 0xfc00ffff, 0x0000ffff,
     8661    0x00080060, 0x0028f080, 0xe0000000, 0x00000001, 0x80000000, 0xe3030303,
     8662    0xffff8080, 0xebffffff, 0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff,
     8663    0xf3ffffff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
     8664    0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000, 0x000203a0,
     8665    0x000000c0, 0x00003000, 0x00000010, 0xf5080169, 0x5569157b, 0xa1080869,
     8666    0xf0000400, 0xf0000411, 0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff,
     8667    0xfffeffff, 0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000};
     8668    }
     8669
     8670    const static UnicodeSet y_Set{const_cast<UnicodeSet::run_t *>(__y_Set_runs), 174, 0, const_cast<UnicodeSet::bitquad_t *>(__y_Set_quads), 173, 0};
     8671
    86198672    /** Code Point Ranges for N
    86208673    [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af], [00b2, 00b5],
     
    87008753    [1f16a, 1f16b], [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b],
    87018754    [1f240, 1f248], [1f250, 1f251], [2f800, 2fa1d]**/
    8702     const UnicodeSet n_Set
    8703         {{{Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 3},
    8704           {Mixed, 3}, {Empty, 2}, {Mixed, 10}, {Empty, 2}, {Mixed, 2},
    8705           {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
    8706           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 18}, {Mixed, 2},
    8707           {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
    8708           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    8709           {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    8710           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    8711           {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    8712           {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    8713           {Empty, 80}, {Mixed, 3}, {Empty, 14}, {Mixed, 4}, {Full, 1},
    8714           {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    8715           {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 9}, {Empty, 2},
    8716           {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
    8717           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9},
    8718           {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
    8719           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    8720           {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
    8721           {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
    8722           {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3},
    8723           {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
    8724           {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
    8725           {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 5},
    8726           {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
    8727           {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    8728           {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    8729           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    8730           {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 132}, {Mixed, 2},
    8731           {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 10},
    8732           {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2},
    8733           {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1},
    8734           {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
    8735           {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176},
    8736           {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    8737           {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    8738          {0x773c8501, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f,
    8739           0xfff3f3f9, 0xffffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf,
    8740           0xcfffffff, 0x000fffc0, 0x01ff0000, 0x3f000000, 0x0000001f,
    8741           0x0000001b, 0x44100000, 0x0001d7f0, 0x0001fc00, 0x007f7c00,
    8742           0x02370000, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
    8743           0xfccf0006, 0x033ffcfc, 0x00000080, 0x0000007c, 0x01e00000,
    8744           0x00080005, 0x00120200, 0xff000000, 0xb0001800, 0x00480000,
    8745           0x4e000000, 0x30001900, 0x00100000, 0x00001c00, 0x00000100,
    8746           0x00000d81, 0x00001c00, 0x74000000, 0x00080000, 0x00080000,
    8747           0x30000000, 0x00001000, 0x10842008, 0x03e80200, 0x20080002,
    8748           0x02001084, 0x00000040, 0x10000000, 0x00045540, 0x28000000,
    8749           0x0000000b, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
    8750           0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    8751           0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0x008207ff, 0x50d88070,
    8752           0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef,
    8753           0xfbfbbd57, 0xffff03e1, 0x0c000200, 0x00004000, 0x0000e000,
    8754           0x00001210, 0x0001b050, 0x00000292, 0x0333e005, 0x00000333,
    8755           0x0000f000, 0x00003c0f, 0x00000600, 0x000007ff, 0x00001000,
    8756           0x00700000, 0x10000000, 0x30000000, 0x00008000, 0x80000000,
    8757           0x00080000, 0x003fffff, 0x00000001, 0x07400000, 0x55555000,
    8758           0x36db02a5, 0xd8100000, 0x55555000, 0x36db02a5, 0xc7900000,
    8759           0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
    8760           0x7fffffff, 0x30000000, 0x00010000, 0x03000000, 0xf0000000,
    8761           0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
    8762           0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000,
    8763           0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000,
    8764           0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f, 0x1fffffff,
    8765           0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f, 0x14000000,
    8766           0x00000800, 0x0000c000, 0x00001800, 0x58000000, 0x0c000000,
    8767           0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
    8768           0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    8769           0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
    8770           0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff07ff,
    8771           0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000, 0xffff0007,
    8772           0x0fffffff, 0x000301ff, 0x3fffffff}};
     8755
     8756
     8757    namespace {
     8758    const static UnicodeSet::run_t __n_Set_runs[] = {
     8759    {Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
     8760    {Empty, 2}, {Mixed, 10}, {Empty, 2}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     8761    {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     8762    {Empty, 18}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     8763    {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     8764    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     8765    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 2},
     8766    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1},
     8767    {Empty, 5}, {Mixed, 1}, {Empty, 80}, {Mixed, 3}, {Empty, 14},
     8768    {Mixed, 4}, {Full, 1}, {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 2},
     8769    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 9}, {Empty, 2},
     8770    {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 6}, {Empty, 1},
     8771    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9}, {Full, 4}, {Mixed, 1},
     8772    {Empty, 40}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     8773    {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     8774    {Empty, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
     8775    {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     8776    {Full, 1}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 916},
     8777    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26},
     8778    {Mixed, 1}, {Empty, 5}, {Full, 349}, {Mixed, 1}, {Empty, 266},
     8779    {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     8780    {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
     8781    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2},
     8782    {Full, 4}, {Mixed, 3}, {Empty, 132}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     8783    {Empty, 16}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7},
     8784    {Mixed, 1}, {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     8785    {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     8786    {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
     8787    {Empty, 176}, {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3},
     8788    {Mixed, 3}, {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
     8789    const static UnicodeSet::bitquad_t  __n_Set_quads[] = {
     8790    0x773c8501, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f, 0xfff3f3f9,
     8791    0xffffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf, 0xcfffffff, 0x000fffc0,
     8792    0x01ff0000, 0x3f000000, 0x0000001f, 0x0000001b, 0x44100000, 0x0001d7f0,
     8793    0x0001fc00, 0x007f7c00, 0x02370000, 0x0200708b, 0x02000000, 0x708b0000,
     8794    0x00c00000, 0xfccf0006, 0x033ffcfc, 0x00000080, 0x0000007c, 0x01e00000,
     8795    0x00080005, 0x00120200, 0xff000000, 0xb0001800, 0x00480000, 0x4e000000,
     8796    0x30001900, 0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00,
     8797    0x74000000, 0x00080000, 0x00080000, 0x30000000, 0x00001000, 0x10842008,
     8798    0x03e80200, 0x20080002, 0x02001084, 0x00000040, 0x10000000, 0x00045540,
     8799    0x28000000, 0x0000000b, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
     8800    0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0xffdfffff,
     8801    0xefcfffdf, 0x7fdcffff, 0x008207ff, 0x50d88070, 0x80800380, 0xfff30000,
     8802    0x1fff7fff, 0x00000100, 0x3e6ffeef, 0xfbfbbd57, 0xffff03e1, 0x0c000200,
     8803    0x00004000, 0x0000e000, 0x00001210, 0x0001b050, 0x00000292, 0x0333e005,
     8804    0x00000333, 0x0000f000, 0x00003c0f, 0x00000600, 0x000007ff, 0x00001000,
     8805    0x00700000, 0x10000000, 0x30000000, 0x00008000, 0x80000000, 0x00080000,
     8806    0x003fffff, 0x00000001, 0x07400000, 0x55555000, 0x36db02a5, 0xd8100000,
     8807    0x55555000, 0x36db02a5, 0xc7900000, 0xfffe0000, 0xfffc7fff, 0x7fffffff,
     8808    0xffff00ff, 0x7fffffff, 0x7fffffff, 0x30000000, 0x00010000, 0x03000000,
     8809    0xf0000000, 0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
     8810    0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
     8811    0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000, 0x03ff0000, 0xffff0000,
     8812    0xfff7ff9f, 0xffd70f7f, 0x1fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc,
     8813    0x00007f7f, 0x14000000, 0x00000800, 0x0000c000, 0x00001800, 0x58000000,
     8814    0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
     8815    0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     8816    0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
     8817    0x0ffffbff, 0x0ffffbee, 0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00,
     8818    0x00010000, 0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff};
     8819    }
     8820
     8821    const static UnicodeSet n_Set{const_cast<UnicodeSet::run_t *>(__n_Set_runs), 174, 0, const_cast<UnicodeSet::bitquad_t *>(__n_Set_quads), 173, 0};
     8822
    87738823    static EnumeratedPropertyObject property_object
    87748824        {NFKD_QC,
    87758825         NFKD_QC_ns::independent_prop_values,
    8776          NFKD_QC_ns::enum_names,
    8777          NFKD_QC_ns::value_names,
    8778          NFKD_QC_ns::aliases_only_map,
    8779          {&y_Set, &n_Set
     8826         std::move(NFKD_QC_ns::enum_names),
     8827         std::move(NFKD_QC_ns::value_names),
     8828         std::move(NFKD_QC_ns::aliases_only_map),{
     8829&y_Set, &n_Set
    87808830         }};
    87818831    }
Note: See TracChangeset for help on using the changeset viewer.