chiark / gitweb /
In the web interface only, new 'short' track name part context. This
authorRichard Kettlewell <rjk@greenend.org.uk>
Sat, 27 Oct 2007 15:54:06 +0000 (16:54 +0100)
committerRichard Kettlewell <rjk@greenend.org.uk>
Sat, 27 Oct 2007 15:54:06 +0000 (16:54 +0100)
is the same as 'display' but truncated to short_display glyphs.

playing, recent and new now use this to bound the width of columns in
their tables.  Hover over the truncated names to see the full name (in
a TITLE attribute).

As part of this, rewrote the unicode support.  Everything is now done
via unidata.h/c, which are generated by the new scripts/make-unidata
from UnicodeData.txt (which is not included; get the latest version
from unicode.org instead if you need to update these files).  The
result is both simpler and probably also faster, although it uses more
(immutable) memory.

18 files changed:
doc/disorder_config.5.in
lib/Makefile.am
lib/casefold.h [deleted file]
lib/charset.c
lib/charset.h
lib/configuration.c
lib/configuration.h
lib/test.c
lib/unicodegc.h [deleted file]
lib/unidata.c [new file with mode: 0644]
lib/unidata.h [new file with mode: 0644]
lib/words.c
scripts/Makefile.am
scripts/make-unidata [new file with mode: 0755]
server/dcgi.c
templates/new.html
templates/playing.html
templates/recent.html

index 744bf13..9c8a493 100644 (file)
@@ -448,6 +448,10 @@ Connect to the address specified by \fIHOST\fR and port specified by
 .B refresh \fISECONDS\fR
 Specifies the maximum refresh period in seconds.  Default 15.
 .TP
+.B short_display \fICHARACTERS\fR
+Defines the maximum number of characters to include in a \fBshort\fR name
+part.  Default 30.
+.TP
 .B templates \fIPATH\fR ...
 Specifies the directory containing templates used by the web
 interface.  If a template appears in more than one template directory
@@ -812,12 +816,18 @@ an even or odd position in \fB@queue@\fR, \fB@recent@\fR or \fB@files@\fR.
 .TP
 .B @part{\fICONTEXT\fB}{\fIPART\fB}@
 Expands to track name part \fIPART\fR using context \fICONTEXT\fR for the
-current track.  The context may be omitted (and normally would be) and defaults
+current track.  The context may be omitted and defaults
 to \fBdisplay\fR.
+.IP
+The special context \fBshort\fR is equivalent to \fBdisplay\fR but limited to
+the \fBshort_display\fR limit.
 .TP
 .B @part{\fICONTEXT\fB}{\fIPART\fB}{\fITRACK\fB}@
 Expands to track name part \fIPART\fR using context \fICONTEXT\fR for
 \fITRACK\fR.  In this usage the context may not be omitted.
+.IP
+The special context \fBshort\fR is equivalent to \fBdisplay\fR but limited to
+the \fBshort_display\fR limit.
 .TP
 .B @paused@
 Expands to \fBtrue\fR if the current track is paused, else \fBfalse\fR.
index e9b41f8..d641036 100644 (file)
@@ -64,6 +64,7 @@ libdisorder_a_SOURCES=charset.c charset.h             \
        timeval.h                                       \
        trackname.c trackname.h                         \
        user.h user.c                                   \
+       unidata.h unidata.c                             \
        utf8.h utf8.c                                   \
        vacopy.h                                        \
        vector.c vector.h                               \
diff --git a/lib/casefold.h b/lib/casefold.h
deleted file mode 100644 (file)
index c3f43b2..0000000
+++ /dev/null
@@ -1,914 +0,0 @@
-struct cm {
-  uint32_t ch;
-  const char *tr;
-} cm0[] = {
-  { 192, "\xC3\xA0" },
-  { 256, "\xC4\x81" },
-  { 512, "\xC8\x81" },
-  { 1024, "\xD1\x90" },
-  { 1152, "\xD2\x81" },
-  { 1280, "\xD4\x81" },
-  { 1344, "\xD5\xB0" },
-  { 7680, "\xE1\xB8\x81" },
-  { 7744, "\xE1\xB9\x81" },
-  { 7808, "\xE1\xBA\x81" },
-  { 7872, "\xE1\xBB\x81" },
-  { 8064, "\xE1\xBC\x80\xCE\xB9" },
-  { 9408, "\xE2\x93\x9A" },
-  { 64256, "ff" },
-  { 66560, "\xF0\x90\x90\xA8" },
-}, cm1[] = {
-  { 65, "a" },
-  { 193, "\xC3\xA1" },
-  { 321, "\xC5\x82" },
-  { 385, "\xC9\x93" },
-  { 1025, "\xD1\x91" },
-  { 1217, "\xD3\x82" },
-  { 1345, "\xD5\xB1" },
-  { 8065, "\xE1\xBC\x81\xCE\xB9" },
-  { 9409, "\xE2\x93\x9B" },
-  { 64257, "fi" },
-  { 66561, "\xF0\x90\x90\xA9" },
-}, cm2[] = {
-  { 66, "b" },
-  { 194, "\xC3\xA2" },
-  { 258, "\xC4\x83" },
-  { 386, "\xC6\x83" },
-  { 514, "\xC8\x83" },
-  { 962, "\xCF\x83" },
-  { 1026, "\xD1\x92" },
-  { 1282, "\xD4\x83" },
-  { 1346, "\xD5\xB2" },
-  { 7682, "\xE1\xB8\x83" },
-  { 7746, "\xE1\xB9\x83" },
-  { 7810, "\xE1\xBA\x83" },
-  { 7874, "\xE1\xBB\x83" },
-  { 8066, "\xE1\xBC\x82\xCE\xB9" },
-  { 8130, "\xE1\xBD\xB4\xCE\xB9" },
-  { 9410, "\xE2\x93\x9C" },
-  { 64258, "fl" },
-  { 66562, "\xF0\x90\x90\xAA" },
-}, cm3[] = {
-  { 67, "c" },
-  { 195, "\xC3\xA3" },
-  { 323, "\xC5\x84" },
-  { 1027, "\xD1\x93" },
-  { 1219, "\xD3\x84" },
-  { 1347, "\xD5\xB3" },
-  { 8067, "\xE1\xBC\x83\xCE\xB9" },
-  { 8131, "\xCE\xB7\xCE\xB9" },
-  { 9411, "\xE2\x93\x9D" },
-  { 64259, "ffi" },
-  { 66563, "\xF0\x90\x90\xAB" },
-}, cm4[] = {
-  { 68, "d" },
-  { 196, "\xC3\xA4" },
-  { 260, "\xC4\x85" },
-  { 388, "\xC6\x85" },
-  { 452, "\xC7\x86" },
-  { 516, "\xC8\x85" },
-  { 1028, "\xD1\x94" },
-  { 1284, "\xD4\x85" },
-  { 1348, "\xD5\xB4" },
-  { 7684, "\xE1\xB8\x85" },
-  { 7748, "\xE1\xB9\x85" },
-  { 7812, "\xE1\xBA\x85" },
-  { 7876, "\xE1\xBB\x85" },
-  { 8068, "\xE1\xBC\x84\xCE\xB9" },
-  { 8132, "\xCE\xAE\xCE\xB9" },
-  { 9412, "\xE2\x93\x9E" },
-  { 64260, "ffl" },
-  { 66564, "\xF0\x90\x90\xAC" },
-}, cm5[] = {
-  { 69, "e" },
-  { 197, "\xC3\xA5" },
-  { 325, "\xC5\x86" },
-  { 453, "\xC7\x86" },
-  { 837, "\xCE\xB9" },
-  { 1029, "\xD1\x95" },
-  { 1221, "\xD3\x86" },
-  { 1349, "\xD5\xB5" },
-  { 8069, "\xE1\xBC\x85\xCE\xB9" },
-  { 9413, "\xE2\x93\x9F" },
-  { 64261, "st" },
-  { 66565, "\xF0\x90\x90\xAD" },
-}, cm6[] = {
-  { 70, "f" },
-  { 198, "\xC3\xA6" },
-  { 262, "\xC4\x87" },
-  { 390, "\xC9\x94" },
-  { 518, "\xC8\x87" },
-  { 902, "\xCE\xAC" },
-  { 1030, "\xD1\x96" },
-  { 1286, "\xD4\x87" },
-  { 1350, "\xD5\xB6" },
-  { 7686, "\xE1\xB8\x87" },
-  { 7750, "\xE1\xB9\x87" },
-  { 7814, "\xE1\xBA\x87" },
-  { 7878, "\xE1\xBB\x87" },
-  { 8070, "\xE1\xBC\x86\xCE\xB9" },
-  { 8134, "\xCE\xB7\xCD\x82" },
-  { 9414, "\xE2\x93\xA0" },
-  { 64262, "st" },
-  { 66566, "\xF0\x90\x90\xAE" },
-}, cm7[] = {
-  { 71, "g" },
-  { 199, "\xC3\xA7" },
-  { 327, "\xC5\x88" },
-  { 391, "\xC6\x88" },
-  { 455, "\xC7\x89" },
-  { 1031, "\xD1\x97" },
-  { 1223, "\xD3\x88" },
-  { 1351, "\xD5\xB7" },
-  { 1415, "\xD5\xA5\xD6\x82" },
-  { 8071, "\xE1\xBC\x87\xCE\xB9" },
-  { 8135, "\xCE\xB7\xCD\x82\xCE\xB9" },
-  { 9415, "\xE2\x93\xA1" },
-  { 66567, "\xF0\x90\x90\xAF" },
-}, cm8[] = {
-  { 72, "h" },
-  { 200, "\xC3\xA8" },
-  { 264, "\xC4\x89" },
-  { 456, "\xC7\x89" },
-  { 520, "\xC8\x89" },
-  { 904, "\xCE\xAD" },
-  { 1032, "\xD1\x98" },
-  { 1288, "\xD4\x89" },
-  { 1352, "\xD5\xB8" },
-  { 7688, "\xE1\xB8\x89" },
-  { 7752, "\xE1\xB9\x89" },
-  { 7816, "\xE1\xBA\x89" },
-  { 7880, "\xE1\xBB\x89" },
-  { 7944, "\xE1\xBC\x80" },
-  { 8008, "\xE1\xBD\x80" },
-  { 8072, "\xE1\xBC\x80\xCE\xB9" },
-  { 8136, "\xE1\xBD\xB2" },
-  { 9416, "\xE2\x93\xA2" },
-  { 66568, "\xF0\x90\x90\xB0" },
-}, cm9[] = {
-  { 73, "i" },
-  { 201, "\xC3\xA9" },
-  { 329, "\xCA\xBCn" },
-  { 393, "\xC9\x96" },
-  { 905, "\xCE\xAE" },
-  { 1033, "\xD1\x99" },
-  { 1225, "\xD3\x8A" },
-  { 1353, "\xD5\xB9" },
-  { 7945, "\xE1\xBC\x81" },
-  { 8009, "\xE1\xBD\x81" },
-  { 8073, "\xE1\xBC\x81\xCE\xB9" },
-  { 8137, "\xE1\xBD\xB3" },
-  { 9417, "\xE2\x93\xA3" },
-  { 66569, "\xF0\x90\x90\xB1" },
-}, cm10[] = {
-  { 74, "j" },
-  { 202, "\xC3\xAA" },
-  { 266, "\xC4\x8B" },
-  { 330, "\xC5\x8B" },
-  { 394, "\xC9\x97" },
-  { 458, "\xC7\x8C" },
-  { 522, "\xC8\x8B" },
-  { 906, "\xCE\xAF" },
-  { 1034, "\xD1\x9A" },
-  { 1162, "\xD2\x8B" },
-  { 1290, "\xD4\x8B" },
-  { 1354, "\xD5\xBA" },
-  { 7690, "\xE1\xB8\x8B" },
-  { 7754, "\xE1\xB9\x8B" },
-  { 7818, "\xE1\xBA\x8B" },
-  { 7882, "\xE1\xBB\x8B" },
-  { 7946, "\xE1\xBC\x82" },
-  { 8010, "\xE1\xBD\x82" },
-  { 8074, "\xE1\xBC\x82\xCE\xB9" },
-  { 8138, "\xE1\xBD\xB4" },
-  { 9418, "\xE2\x93\xA4" },
-  { 66570, "\xF0\x90\x90\xB2" },
-}, cm11[] = {
-  { 75, "k" },
-  { 203, "\xC3\xAB" },
-  { 395, "\xC6\x8C" },
-  { 459, "\xC7\x8C" },
-  { 1035, "\xD1\x9B" },
-  { 1227, "\xD3\x8C" },
-  { 1355, "\xD5\xBB" },
-  { 7947, "\xE1\xBC\x83" },
-  { 8011, "\xE1\xBD\x83" },
-  { 8075, "\xE1\xBC\x83\xCE\xB9" },
-  { 8139, "\xE1\xBD\xB5" },
-  { 9419, "\xE2\x93\xA5" },
-  { 66571, "\xF0\x90\x90\xB3" },
-}, cm12[] = {
-  { 76, "l" },
-  { 204, "\xC3\xAC" },
-  { 268, "\xC4\x8D" },
-  { 332, "\xC5\x8D" },
-  { 524, "\xC8\x8D" },
-  { 908, "\xCF\x8C" },
-  { 1036, "\xD1\x9C" },
-  { 1164, "\xD2\x8D" },
-  { 1292, "\xD4\x8D" },
-  { 1356, "\xD5\xBC" },
-  { 7692, "\xE1\xB8\x8D" },
-  { 7756, "\xE1\xB9\x8D" },
-  { 7820, "\xE1\xBA\x8D" },
-  { 7884, "\xE1\xBB\x8D" },
-  { 7948, "\xE1\xBC\x84" },
-  { 8012, "\xE1\xBD\x84" },
-  { 8076, "\xE1\xBC\x84\xCE\xB9" },
-  { 8140, "\xCE\xB7\xCE\xB9" },
-  { 9420, "\xE2\x93\xA6" },
-  { 66572, "\xF0\x90\x90\xB4" },
-}, cm13[] = {
-  { 77, "m" },
-  { 205, "\xC3\xAD" },
-  { 461, "\xC7\x8E" },
-  { 1037, "\xD1\x9D" },
-  { 1229, "\xD3\x8E" },
-  { 1357, "\xD5\xBD" },
-  { 7949, "\xE1\xBC\x85" },
-  { 8013, "\xE1\xBD\x85" },
-  { 8077, "\xE1\xBC\x85\xCE\xB9" },
-  { 9421, "\xE2\x93\xA7" },
-  { 66573, "\xF0\x90\x90\xB5" },
-}, cm14[] = {
-  { 78, "n" },
-  { 206, "\xC3\xAE" },
-  { 270, "\xC4\x8F" },
-  { 334, "\xC5\x8F" },
-  { 398, "\xC7\x9D" },
-  { 526, "\xC8\x8F" },
-  { 910, "\xCF\x8D" },
-  { 1038, "\xD1\x9E" },
-  { 1166, "\xD2\x8F" },
-  { 1294, "\xD4\x8F" },
-  { 1358, "\xD5\xBE" },
-  { 7694, "\xE1\xB8\x8F" },
-  { 7758, "\xE1\xB9\x8F" },
-  { 7822, "\xE1\xBA\x8F" },
-  { 7886, "\xE1\xBB\x8F" },
-  { 7950, "\xE1\xBC\x86" },
-  { 8078, "\xE1\xBC\x86\xCE\xB9" },
-  { 9422, "\xE2\x93\xA8" },
-  { 66574, "\xF0\x90\x90\xB6" },
-}, cm15[] = {
-  { 79, "o" },
-  { 207, "\xC3\xAF" },
-  { 399, "\xC9\x99" },
-  { 463, "\xC7\x90" },
-  { 911, "\xCF\x8E" },
-  { 1039, "\xD1\x9F" },
-  { 1359, "\xD5\xBF" },
-  { 7951, "\xE1\xBC\x87" },
-  { 8079, "\xE1\xBC\x87\xCE\xB9" },
-  { 9423, "\xE2\x93\xA9" },
-  { 66575, "\xF0\x90\x90\xB7" },
-}, cm16[] = {
-  { 80, "p" },
-  { 208, "\xC3\xB0" },
-  { 272, "\xC4\x91" },
-  { 336, "\xC5\x91" },
-  { 400, "\xC9\x9B" },
-  { 528, "\xC8\x91" },
-  { 912, "\xCE\xB9\xCC\x88\xCC\x81" },
-  { 976, "\xCE\xB2" },
-  { 1040, "\xD0\xB0" },
-  { 1168, "\xD2\x91" },
-  { 1232, "\xD3\x91" },
-  { 1360, "\xD6\x80" },
-  { 7696, "\xE1\xB8\x91" },
-  { 7760, "\xE1\xB9\x91" },
-  { 7824, "\xE1\xBA\x91" },
-  { 7888, "\xE1\xBB\x91" },
-  { 8016, "\xCF\x85\xCC\x93" },
-  { 8080, "\xE1\xBC\xA0\xCE\xB9" },
-  { 66576, "\xF0\x90\x90\xB8" },
-}, cm17[] = {
-  { 81, "q" },
-  { 209, "\xC3\xB1" },
-  { 401, "\xC6\x92" },
-  { 465, "\xC7\x92" },
-  { 913, "\xCE\xB1" },
-  { 977, "\xCE\xB8" },
-  { 1041, "\xD0\xB1" },
-  { 1361, "\xD6\x81" },
-  { 8081, "\xE1\xBC\xA1\xCE\xB9" },
-  { 66577, "\xF0\x90\x90\xB9" },
-}, cm18[] = {
-  { 82, "r" },
-  { 210, "\xC3\xB2" },
-  { 274, "\xC4\x93" },
-  { 338, "\xC5\x93" },
-  { 530, "\xC8\x93" },
-  { 914, "\xCE\xB2" },
-  { 1042, "\xD0\xB2" },
-  { 1170, "\xD2\x93" },
-  { 1234, "\xD3\x93" },
-  { 1362, "\xD6\x82" },
-  { 7698, "\xE1\xB8\x93" },
-  { 7762, "\xE1\xB9\x93" },
-  { 7826, "\xE1\xBA\x93" },
-  { 7890, "\xE1\xBB\x93" },
-  { 8018, "\xCF\x85\xCC\x93\xCC\x80" },
-  { 8082, "\xE1\xBC\xA2\xCE\xB9" },
-  { 8146, "\xCE\xB9\xCC\x88\xCC\x80" },
-  { 66578, "\xF0\x90\x90\xBA" },
-}, cm19[] = {
-  { 83, "s" },
-  { 211, "\xC3\xB3" },
-  { 403, "\xC9\xA0" },
-  { 467, "\xC7\x94" },
-  { 915, "\xCE\xB3" },
-  { 1043, "\xD0\xB3" },
-  { 1363, "\xD6\x83" },
-  { 8083, "\xE1\xBC\xA3\xCE\xB9" },
-  { 8147, "\xCE\xB9\xCC\x88\xCC\x81" },
-  { 64275, "\xD5\xB4\xD5\xB6" },
-  { 66579, "\xF0\x90\x90\xBB" },
-}, cm20[] = {
-  { 84, "t" },
-  { 212, "\xC3\xB4" },
-  { 276, "\xC4\x95" },
-  { 340, "\xC5\x95" },
-  { 404, "\xC9\xA3" },
-  { 532, "\xC8\x95" },
-  { 916, "\xCE\xB4" },
-  { 1044, "\xD0\xB4" },
-  { 1172, "\xD2\x95" },
-  { 1236, "\xD3\x95" },
-  { 1364, "\xD6\x84" },
-  { 7700, "\xE1\xB8\x95" },
-  { 7764, "\xE1\xB9\x95" },
-  { 7828, "\xE1\xBA\x95" },
-  { 7892, "\xE1\xBB\x95" },
-  { 8020, "\xCF\x85\xCC\x93\xCC\x81" },
-  { 8084, "\xE1\xBC\xA4\xCE\xB9" },
-  { 64276, "\xD5\xB4\xD5\xA5" },
-  { 66580, "\xF0\x90\x90\xBC" },
-}, cm21[] = {
-  { 85, "u" },
-  { 213, "\xC3\xB5" },
-  { 469, "\xC7\x96" },
-  { 917, "\xCE\xB5" },
-  { 981, "\xCF\x86" },
-  { 1045, "\xD0\xB5" },
-  { 1365, "\xD6\x85" },
-  { 8085, "\xE1\xBC\xA5\xCE\xB9" },
-  { 64277, "\xD5\xB4\xD5\xAB" },
-  { 66581, "\xF0\x90\x90\xBD" },
-}, cm22[] = {
-  { 86, "v" },
-  { 214, "\xC3\xB6" },
-  { 278, "\xC4\x97" },
-  { 342, "\xC5\x97" },
-  { 406, "\xC9\xA9" },
-  { 534, "\xC8\x97" },
-  { 918, "\xCE\xB6" },
-  { 982, "\xCF\x80" },
-  { 1046, "\xD0\xB6" },
-  { 1174, "\xD2\x97" },
-  { 1238, "\xD3\x97" },
-  { 1366, "\xD6\x86" },
-  { 7702, "\xE1\xB8\x97" },
-  { 7766, "\xE1\xB9\x97" },
-  { 7830, "h\xCC\xB1" },
-  { 7894, "\xE1\xBB\x97" },
-  { 8022, "\xCF\x85\xCC\x93\xCD\x82" },
-  { 8086, "\xE1\xBC\xA6\xCE\xB9" },
-  { 8150, "\xCE\xB9\xCD\x82" },
-  { 64278, "\xD5\xBE\xD5\xB6" },
-  { 66582, "\xF0\x90\x90\xBE" },
-}, cm23[] = {
-  { 87, "w" },
-  { 407, "\xC9\xA8" },
-  { 471, "\xC7\x98" },
-  { 919, "\xCE\xB7" },
-  { 1047, "\xD0\xB7" },
-  { 7831, "t\xCC\x88" },
-  { 8087, "\xE1\xBC\xA7\xCE\xB9" },
-  { 8151, "\xCE\xB9\xCC\x88\xCD\x82" },
-  { 64279, "\xD5\xB4\xD5\xAD" },
-  { 66583, "\xF0\x90\x90\xBF" },
-}, cm24[] = {
-  { 88, "x" },
-  { 216, "\xC3\xB8" },
-  { 280, "\xC4\x99" },
-  { 344, "\xC5\x99" },
-  { 408, "\xC6\x99" },
-  { 536, "\xC8\x99" },
-  { 920, "\xCE\xB8" },
-  { 984, "\xCF\x99" },
-  { 1048, "\xD0\xB8" },
-  { 1176, "\xD2\x99" },
-  { 1240, "\xD3\x99" },
-  { 7704, "\xE1\xB8\x99" },
-  { 7768, "\xE1\xB9\x99" },
-  { 7832, "w\xCC\x8A" },
-  { 7896, "\xE1\xBB\x99" },
-  { 7960, "\xE1\xBC\x90" },
-  { 8088, "\xE1\xBC\xA0\xCE\xB9" },
-  { 8152, "\xE1\xBF\x90" },
-  { 66584, "\xF0\x90\x91\x80" },
-}, cm25[] = {
-  { 89, "y" },
-  { 217, "\xC3\xB9" },
-  { 473, "\xC7\x9A" },
-  { 921, "\xCE\xB9" },
-  { 1049, "\xD0\xB9" },
-  { 7833, "y\xCC\x8A" },
-  { 7961, "\xE1\xBC\x91" },
-  { 8025, "\xE1\xBD\x91" },
-  { 8089, "\xE1\xBC\xA1\xCE\xB9" },
-  { 8153, "\xE1\xBF\x91" },
-  { 66585, "\xF0\x90\x91\x81" },
-}, cm26[] = {
-  { 90, "z" },
-  { 218, "\xC3\xBA" },
-  { 282, "\xC4\x9B" },
-  { 346, "\xC5\x9B" },
-  { 538, "\xC8\x9B" },
-  { 922, "\xCE\xBA" },
-  { 986, "\xCF\x9B" },
-  { 1050, "\xD0\xBA" },
-  { 1178, "\xD2\x9B" },
-  { 1242, "\xD3\x9B" },
-  { 7706, "\xE1\xB8\x9B" },
-  { 7770, "\xE1\xB9\x9B" },
-  { 7834, "a\xCA\xBE" },
-  { 7898, "\xE1\xBB\x9B" },
-  { 7962, "\xE1\xBC\x92" },
-  { 8090, "\xE1\xBC\xA2\xCE\xB9" },
-  { 8154, "\xE1\xBD\xB6" },
-  { 66586, "\xF0\x90\x91\x82" },
-}, cm27[] = {
-  { 219, "\xC3\xBB" },
-  { 475, "\xC7\x9C" },
-  { 923, "\xCE\xBB" },
-  { 1051, "\xD0\xBB" },
-  { 7835, "\xE1\xB9\xA1" },
-  { 7963, "\xE1\xBC\x93" },
-  { 8027, "\xE1\xBD\x93" },
-  { 8091, "\xE1\xBC\xA3\xCE\xB9" },
-  { 8155, "\xE1\xBD\xB7" },
-  { 66587, "\xF0\x90\x91\x83" },
-}, cm28[] = {
-  { 220, "\xC3\xBC" },
-  { 284, "\xC4\x9D" },
-  { 348, "\xC5\x9D" },
-  { 412, "\xC9\xAF" },
-  { 540, "\xC8\x9D" },
-  { 924, "\xCE\xBC" },
-  { 988, "\xCF\x9D" },
-  { 1052, "\xD0\xBC" },
-  { 1180, "\xD2\x9D" },
-  { 1244, "\xD3\x9D" },
-  { 7708, "\xE1\xB8\x9D" },
-  { 7772, "\xE1\xB9\x9D" },
-  { 7900, "\xE1\xBB\x9D" },
-  { 7964, "\xE1\xBC\x94" },
-  { 8092, "\xE1\xBC\xA4\xCE\xB9" },
-  { 66588, "\xF0\x90\x91\x84" },
-}, cm29[] = {
-  { 221, "\xC3\xBD" },
-  { 413, "\xC9\xB2" },
-  { 925, "\xCE\xBD" },
-  { 1053, "\xD0\xBD" },
-  { 7965, "\xE1\xBC\x95" },
-  { 8029, "\xE1\xBD\x95" },
-  { 8093, "\xE1\xBC\xA5\xCE\xB9" },
-  { 66589, "\xF0\x90\x91\x85" },
-}, cm30[] = {
-  { 222, "\xC3\xBE" },
-  { 286, "\xC4\x9F" },
-  { 350, "\xC5\x9F" },
-  { 478, "\xC7\x9F" },
-  { 542, "\xC8\x9F" },
-  { 926, "\xCE\xBE" },
-  { 990, "\xCF\x9F" },
-  { 1054, "\xD0\xBE" },
-  { 1182, "\xD2\x9F" },
-  { 1246, "\xD3\x9F" },
-  { 7710, "\xE1\xB8\x9F" },
-  { 7774, "\xE1\xB9\x9F" },
-  { 7902, "\xE1\xBB\x9F" },
-  { 8094, "\xE1\xBC\xA6\xCE\xB9" },
-  { 66590, "\xF0\x90\x91\x86" },
-}, cm31[] = {
-  { 223, "ss" },
-  { 415, "\xC9\xB5" },
-  { 927, "\xCE\xBF" },
-  { 1055, "\xD0\xBF" },
-  { 8031, "\xE1\xBD\x97" },
-  { 8095, "\xE1\xBC\xA7\xCE\xB9" },
-  { 66591, "\xF0\x90\x91\x87" },
-}, cm32[] = {
-  { 288, "\xC4\xA1" },
-  { 352, "\xC5\xA1" },
-  { 416, "\xC6\xA1" },
-  { 480, "\xC7\xA1" },
-  { 544, "\xC6\x9E" },
-  { 928, "\xCF\x80" },
-  { 992, "\xCF\xA1" },
-  { 1056, "\xD1\x80" },
-  { 1120, "\xD1\xA1" },
-  { 1184, "\xD2\xA1" },
-  { 1248, "\xD3\xA1" },
-  { 7712, "\xE1\xB8\xA1" },
-  { 7776, "\xE1\xB9\xA1" },
-  { 7840, "\xE1\xBA\xA1" },
-  { 7904, "\xE1\xBB\xA1" },
-  { 8096, "\xE1\xBD\xA0\xCE\xB9" },
-  { 8544, "\xE2\x85\xB0" },
-  { 66592, "\xF0\x90\x91\x88" },
-}, cm33[] = {
-  { 929, "\xCF\x81" },
-  { 1057, "\xD1\x81" },
-  { 8097, "\xE1\xBD\xA1\xCE\xB9" },
-  { 8545, "\xE2\x85\xB1" },
-  { 65313, "\xEF\xBD\x81" },
-  { 66593, "\xF0\x90\x91\x89" },
-}, cm34[] = {
-  { 290, "\xC4\xA3" },
-  { 354, "\xC5\xA3" },
-  { 418, "\xC6\xA3" },
-  { 482, "\xC7\xA3" },
-  { 546, "\xC8\xA3" },
-  { 994, "\xCF\xA3" },
-  { 1058, "\xD1\x82" },
-  { 1122, "\xD1\xA3" },
-  { 1186, "\xD2\xA3" },
-  { 1250, "\xD3\xA3" },
-  { 7714, "\xE1\xB8\xA3" },
-  { 7778, "\xE1\xB9\xA3" },
-  { 7842, "\xE1\xBA\xA3" },
-  { 7906, "\xE1\xBB\xA3" },
-  { 8098, "\xE1\xBD\xA2\xCE\xB9" },
-  { 8162, "\xCF\x85\xCC\x88\xCC\x80" },
-  { 8546, "\xE2\x85\xB2" },
-  { 65314, "\xEF\xBD\x82" },
-  { 66594, "\xF0\x90\x91\x8A" },
-}, cm35[] = {
-  { 931, "\xCF\x83" },
-  { 1059, "\xD1\x83" },
-  { 8099, "\xE1\xBD\xA3\xCE\xB9" },
-  { 8163, "\xCF\x85\xCC\x88\xCC\x81" },
-  { 8547, "\xE2\x85\xB3" },
-  { 65315, "\xEF\xBD\x83" },
-  { 66595, "\xF0\x90\x91\x8B" },
-}, cm36[] = {
-  { 292, "\xC4\xA5" },
-  { 356, "\xC5\xA5" },
-  { 420, "\xC6\xA5" },
-  { 484, "\xC7\xA5" },
-  { 548, "\xC8\xA5" },
-  { 932, "\xCF\x84" },
-  { 996, "\xCF\xA5" },
-  { 1060, "\xD1\x84" },
-  { 1124, "\xD1\xA5" },
-  { 1188, "\xD2\xA5" },
-  { 1252, "\xD3\xA5" },
-  { 7716, "\xE1\xB8\xA5" },
-  { 7780, "\xE1\xB9\xA5" },
-  { 7844, "\xE1\xBA\xA5" },
-  { 7908, "\xE1\xBB\xA5" },
-  { 8100, "\xE1\xBD\xA4\xCE\xB9" },
-  { 8164, "\xCF\x81\xCC\x93" },
-  { 8548, "\xE2\x85\xB4" },
-  { 65316, "\xEF\xBD\x84" },
-  { 66596, "\xF0\x90\x91\x8C" },
-}, cm37[] = {
-  { 933, "\xCF\x85" },
-  { 1061, "\xD1\x85" },
-  { 8101, "\xE1\xBD\xA5\xCE\xB9" },
-  { 8549, "\xE2\x85\xB5" },
-  { 65317, "\xEF\xBD\x85" },
-  { 66597, "\xF0\x90\x91\x8D" },
-}, cm38[] = {
-  { 294, "\xC4\xA7" },
-  { 358, "\xC5\xA7" },
-  { 422, "\xCA\x80" },
-  { 486, "\xC7\xA7" },
-  { 550, "\xC8\xA7" },
-  { 934, "\xCF\x86" },
-  { 998, "\xCF\xA7" },
-  { 1062, "\xD1\x86" },
-  { 1126, "\xD1\xA7" },
-  { 1190, "\xD2\xA7" },
-  { 1254, "\xD3\xA7" },
-  { 7718, "\xE1\xB8\xA7" },
-  { 7782, "\xE1\xB9\xA7" },
-  { 7846, "\xE1\xBA\xA7" },
-  { 7910, "\xE1\xBB\xA7" },
-  { 8102, "\xE1\xBD\xA6\xCE\xB9" },
-  { 8166, "\xCF\x85\xCD\x82" },
-  { 8486, "\xCF\x89" },
-  { 8550, "\xE2\x85\xB6" },
-  { 65318, "\xEF\xBD\x86" },
-  { 66598, "\xF0\x90\x91\x8E" },
-}, cm39[] = {
-  { 423, "\xC6\xA8" },
-  { 935, "\xCF\x87" },
-  { 1063, "\xD1\x87" },
-  { 8103, "\xE1\xBD\xA7\xCE\xB9" },
-  { 8167, "\xCF\x85\xCC\x88\xCD\x82" },
-  { 8551, "\xE2\x85\xB7" },
-  { 65319, "\xEF\xBD\x87" },
-  { 66599, "\xF0\x90\x91\x8F" },
-}, cm40[] = {
-  { 296, "\xC4\xA9" },
-  { 360, "\xC5\xA9" },
-  { 488, "\xC7\xA9" },
-  { 552, "\xC8\xA9" },
-  { 936, "\xCF\x88" },
-  { 1000, "\xCF\xA9" },
-  { 1064, "\xD1\x88" },
-  { 1128, "\xD1\xA9" },
-  { 1192, "\xD2\xA9" },
-  { 1256, "\xD3\xA9" },
-  { 7720, "\xE1\xB8\xA9" },
-  { 7784, "\xE1\xB9\xA9" },
-  { 7848, "\xE1\xBA\xA9" },
-  { 7912, "\xE1\xBB\xA9" },
-  { 7976, "\xE1\xBC\xA0" },
-  { 8040, "\xE1\xBD\xA0" },
-  { 8104, "\xE1\xBD\xA0\xCE\xB9" },
-  { 8168, "\xE1\xBF\xA0" },
-  { 8552, "\xE2\x85\xB8" },
-  { 65320, "\xEF\xBD\x88" },
-}, cm41[] = {
-  { 425, "\xCA\x83" },
-  { 937, "\xCF\x89" },
-  { 1065, "\xD1\x89" },
-  { 7977, "\xE1\xBC\xA1" },
-  { 8041, "\xE1\xBD\xA1" },
-  { 8105, "\xE1\xBD\xA1\xCE\xB9" },
-  { 8169, "\xE1\xBF\xA1" },
-  { 8553, "\xE2\x85\xB9" },
-  { 65321, "\xEF\xBD\x89" },
-}, cm42[] = {
-  { 298, "\xC4\xAB" },
-  { 362, "\xC5\xAB" },
-  { 490, "\xC7\xAB" },
-  { 554, "\xC8\xAB" },
-  { 938, "\xCF\x8A" },
-  { 1002, "\xCF\xAB" },
-  { 1066, "\xD1\x8A" },
-  { 1130, "\xD1\xAB" },
-  { 1194, "\xD2\xAB" },
-  { 1258, "\xD3\xAB" },
-  { 7722, "\xE1\xB8\xAB" },
-  { 7786, "\xE1\xB9\xAB" },
-  { 7850, "\xE1\xBA\xAB" },
-  { 7914, "\xE1\xBB\xAB" },
-  { 7978, "\xE1\xBC\xA2" },
-  { 8042, "\xE1\xBD\xA2" },
-  { 8106, "\xE1\xBD\xA2\xCE\xB9" },
-  { 8170, "\xE1\xBD\xBA" },
-  { 8490, "k" },
-  { 8554, "\xE2\x85\xBA" },
-  { 65322, "\xEF\xBD\x8A" },
-}, cm43[] = {
-  { 939, "\xCF\x8B" },
-  { 1067, "\xD1\x8B" },
-  { 7979, "\xE1\xBC\xA3" },
-  { 8043, "\xE1\xBD\xA3" },
-  { 8107, "\xE1\xBD\xA3\xCE\xB9" },
-  { 8171, "\xE1\xBD\xBB" },
-  { 8491, "\xC3\xA5" },
-  { 8555, "\xE2\x85\xBB" },
-  { 65323, "\xEF\xBD\x8B" },
-}, cm44[] = {
-  { 300, "\xC4\xAD" },
-  { 364, "\xC5\xAD" },
-  { 428, "\xC6\xAD" },
-  { 492, "\xC7\xAD" },
-  { 556, "\xC8\xAD" },
-  { 1004, "\xCF\xAD" },
-  { 1068, "\xD1\x8C" },
-  { 1132, "\xD1\xAD" },
-  { 1196, "\xD2\xAD" },
-  { 1260, "\xD3\xAD" },
-  { 7724, "\xE1\xB8\xAD" },
-  { 7788, "\xE1\xB9\xAD" },
-  { 7852, "\xE1\xBA\xAD" },
-  { 7916, "\xE1\xBB\xAD" },
-  { 7980, "\xE1\xBC\xA4" },
-  { 8044, "\xE1\xBD\xA4" },
-  { 8108, "\xE1\xBD\xA4\xCE\xB9" },
-  { 8172, "\xE1\xBF\xA5" },
-  { 8556, "\xE2\x85\xBC" },
-  { 65324, "\xEF\xBD\x8C" },
-}, cm45[] = {
-  { 1069, "\xD1\x8D" },
-  { 7981, "\xE1\xBC\xA5" },
-  { 8045, "\xE1\xBD\xA5" },
-  { 8109, "\xE1\xBD\xA5\xCE\xB9" },
-  { 8557, "\xE2\x85\xBD" },
-  { 65325, "\xEF\xBD\x8D" },
-}, cm46[] = {
-  { 302, "\xC4\xAF" },
-  { 366, "\xC5\xAF" },
-  { 430, "\xCA\x88" },
-  { 494, "\xC7\xAF" },
-  { 558, "\xC8\xAF" },
-  { 1006, "\xCF\xAF" },
-  { 1070, "\xD1\x8E" },
-  { 1134, "\xD1\xAF" },
-  { 1198, "\xD2\xAF" },
-  { 1262, "\xD3\xAF" },
-  { 7726, "\xE1\xB8\xAF" },
-  { 7790, "\xE1\xB9\xAF" },
-  { 7854, "\xE1\xBA\xAF" },
-  { 7918, "\xE1\xBB\xAF" },
-  { 7982, "\xE1\xBC\xA6" },
-  { 8046, "\xE1\xBD\xA6" },
-  { 8110, "\xE1\xBD\xA6\xCE\xB9" },
-  { 8558, "\xE2\x85\xBE" },
-  { 65326, "\xEF\xBD\x8E" },
-}, cm47[] = {
-  { 431, "\xC6\xB0" },
-  { 1071, "\xD1\x8F" },
-  { 7983, "\xE1\xBC\xA7" },
-  { 8047, "\xE1\xBD\xA7" },
-  { 8111, "\xE1\xBD\xA7\xCE\xB9" },
-  { 8559, "\xE2\x85\xBF" },
-  { 65327, "\xEF\xBD\x8F" },
-}, cm48[] = {
-  { 304, "i\xCC\x87" },
-  { 368, "\xC5\xB1" },
-  { 496, "j\xCC\x8C" },
-  { 560, "\xC8\xB1" },
-  { 944, "\xCF\x85\xCC\x88\xCC\x81" },
-  { 1008, "\xCE\xBA" },
-  { 1136, "\xD1\xB1" },
-  { 1200, "\xD2\xB1" },
-  { 1264, "\xD3\xB1" },
-  { 7728, "\xE1\xB8\xB1" },
-  { 7792, "\xE1\xB9\xB1" },
-  { 7856, "\xE1\xBA\xB1" },
-  { 7920, "\xE1\xBB\xB1" },
-  { 65328, "\xEF\xBD\x90" },
-}, cm49[] = {
-  { 433, "\xCA\x8A" },
-  { 497, "\xC7\xB3" },
-  { 1009, "\xCF\x81" },
-  { 1329, "\xD5\xA1" },
-  { 65329, "\xEF\xBD\x91" },
-}, cm50[] = {
-  { 306, "\xC4\xB3" },
-  { 370, "\xC5\xB3" },
-  { 434, "\xCA\x8B" },
-  { 498, "\xC7\xB3" },
-  { 562, "\xC8\xB3" },
-  { 1138, "\xD1\xB3" },
-  { 1202, "\xD2\xB3" },
-  { 1266, "\xD3\xB3" },
-  { 1330, "\xD5\xA2" },
-  { 7730, "\xE1\xB8\xB3" },
-  { 7794, "\xE1\xB9\xB3" },
-  { 7858, "\xE1\xBA\xB3" },
-  { 7922, "\xE1\xBB\xB3" },
-  { 8114, "\xE1\xBD\xB0\xCE\xB9" },
-  { 8178, "\xE1\xBD\xBC\xCE\xB9" },
-  { 65330, "\xEF\xBD\x92" },
-}, cm51[] = {
-  { 435, "\xC6\xB4" },
-  { 1331, "\xD5\xA3" },
-  { 8115, "\xCE\xB1\xCE\xB9" },
-  { 8179, "\xCF\x89\xCE\xB9" },
-  { 65331, "\xEF\xBD\x93" },
-}, cm52[] = {
-  { 308, "\xC4\xB5" },
-  { 372, "\xC5\xB5" },
-  { 500, "\xC7\xB5" },
-  { 1012, "\xCE\xB8" },
-  { 1140, "\xD1\xB5" },
-  { 1204, "\xD2\xB5" },
-  { 1268, "\xD3\xB5" },
-  { 1332, "\xD5\xA4" },
-  { 7732, "\xE1\xB8\xB5" },
-  { 7796, "\xE1\xB9\xB5" },
-  { 7860, "\xE1\xBA\xB5" },
-  { 7924, "\xE1\xBB\xB5" },
-  { 8116, "\xCE\xAC\xCE\xB9" },
-  { 8180, "\xCF\x8E\xCE\xB9" },
-  { 65332, "\xEF\xBD\x94" },
-}, cm53[] = {
-  { 181, "\xCE\xBC" },
-  { 437, "\xC6\xB6" },
-  { 1013, "\xCE\xB5" },
-  { 1333, "\xD5\xA5" },
-  { 65333, "\xEF\xBD\x95" },
-}, cm54[] = {
-  { 310, "\xC4\xB7" },
-  { 374, "\xC5\xB7" },
-  { 502, "\xC6\x95" },
-  { 1142, "\xD1\xB7" },
-  { 1206, "\xD2\xB7" },
-  { 1334, "\xD5\xA6" },
-  { 7734, "\xE1\xB8\xB7" },
-  { 7798, "\xE1\xB9\xB7" },
-  { 7862, "\xE1\xBA\xB7" },
-  { 7926, "\xE1\xBB\xB7" },
-  { 8118, "\xCE\xB1\xCD\x82" },
-  { 8182, "\xCF\x89\xCD\x82" },
-  { 9398, "\xE2\x93\x90" },
-  { 65334, "\xEF\xBD\x96" },
-}, cm55[] = {
-  { 439, "\xCA\x92" },
-  { 503, "\xC6\xBF" },
-  { 1015, "\xCF\xB8" },
-  { 1335, "\xD5\xA7" },
-  { 8119, "\xCE\xB1\xCD\x82\xCE\xB9" },
-  { 8183, "\xCF\x89\xCD\x82\xCE\xB9" },
-  { 9399, "\xE2\x93\x91" },
-  { 65335, "\xEF\xBD\x97" },
-}, cm56[] = {
-  { 376, "\xC3\xBF" },
-  { 440, "\xC6\xB9" },
-  { 504, "\xC7\xB9" },
-  { 1144, "\xD1\xB9" },
-  { 1208, "\xD2\xB9" },
-  { 1272, "\xD3\xB9" },
-  { 1336, "\xD5\xA8" },
-  { 7736, "\xE1\xB8\xB9" },
-  { 7800, "\xE1\xB9\xB9" },
-  { 7864, "\xE1\xBA\xB9" },
-  { 7928, "\xE1\xBB\xB9" },
-  { 7992, "\xE1\xBC\xB0" },
-  { 8120, "\xE1\xBE\xB0" },
-  { 8184, "\xE1\xBD\xB8" },
-  { 9400, "\xE2\x93\x92" },
-  { 65336, "\xEF\xBD\x98" },
-}, cm57[] = {
-  { 313, "\xC4\xBA" },
-  { 377, "\xC5\xBA" },
-  { 1017, "\xCF\xB2" },
-  { 1337, "\xD5\xA9" },
-  { 7993, "\xE1\xBC\xB1" },
-  { 8121, "\xE1\xBE\xB1" },
-  { 8185, "\xE1\xBD\xB9" },
-  { 9401, "\xE2\x93\x93" },
-  { 65337, "\xEF\xBD\x99" },
-}, cm58[] = {
-  { 506, "\xC7\xBB" },
-  { 1018, "\xCF\xBB" },
-  { 1146, "\xD1\xBB" },
-  { 1210, "\xD2\xBB" },
-  { 1338, "\xD5\xAA" },
-  { 7738, "\xE1\xB8\xBB" },
-  { 7802, "\xE1\xB9\xBB" },
-  { 7866, "\xE1\xBA\xBB" },
-  { 7994, "\xE1\xBC\xB2" },
-  { 8122, "\xE1\xBD\xB0" },
-  { 8186, "\xE1\xBD\xBC" },
-  { 9402, "\xE2\x93\x94" },
-  { 65338, "\xEF\xBD\x9A" },
-}, cm59[] = {
-  { 315, "\xC4\xBC" },
-  { 379, "\xC5\xBC" },
-  { 1339, "\xD5\xAB" },
-  { 7995, "\xE1\xBC\xB3" },
-  { 8123, "\xE1\xBD\xB1" },
-  { 8187, "\xE1\xBD\xBD" },
-  { 9403, "\xE2\x93\x95" },
-}, cm60[] = {
-  { 444, "\xC6\xBD" },
-  { 508, "\xC7\xBD" },
-  { 1148, "\xD1\xBD" },
-  { 1212, "\xD2\xBD" },
-  { 1340, "\xD5\xAC" },
-  { 7740, "\xE1\xB8\xBD" },
-  { 7804, "\xE1\xB9\xBD" },
-  { 7868, "\xE1\xBA\xBD" },
-  { 7996, "\xE1\xBC\xB4" },
-  { 8124, "\xCE\xB1\xCE\xB9" },
-  { 8188, "\xCF\x89\xCE\xB9" },
-  { 9404, "\xE2\x93\x96" },
-}, cm61[] = {
-  { 317, "\xC4\xBE" },
-  { 381, "\xC5\xBE" },
-  { 1341, "\xD5\xAD" },
-  { 7997, "\xE1\xBC\xB5" },
-  { 9405, "\xE2\x93\x97" },
-}, cm62[] = {
-  { 510, "\xC7\xBF" },
-  { 1150, "\xD1\xBF" },
-  { 1214, "\xD2\xBF" },
-  { 1342, "\xD5\xAE" },
-  { 7742, "\xE1\xB8\xBF" },
-  { 7806, "\xE1\xB9\xBF" },
-  { 7870, "\xE1\xBA\xBF" },
-  { 7998, "\xE1\xBC\xB6" },
-  { 8126, "\xCE\xB9" },
-  { 9406, "\xE2\x93\x98" },
-}, cm63[] = {
-  { 319, "\xC5\x80" },
-  { 383, "s" },
-  { 1343, "\xD5\xAF" },
-  { 7999, "\xE1\xBC\xB7" },
-  { 9407, "\xE2\x93\x99" },
-};
-
-static const struct cm *const cm[] = { cm0, cm1, cm2, cm3, cm4, cm5, cm6, cm7, cm8, cm9, cm10, cm11, cm12, cm13, cm14, cm15, cm16, cm17, cm18, cm19, cm20, cm21, cm22, cm23, cm24, cm25, cm26, cm27, cm28, cm29, cm30, cm31, cm32, cm33, cm34, cm35, cm36, cm37, cm38, cm39, cm40, cm41, cm42, cm43, cm44, cm45, cm46, cm47, cm48, cm49, cm50, cm51, cm52, cm53, cm54, cm55, cm56, cm57, cm58, cm59, cm60, cm61, cm62, cm63 };
-static const size_t cmn[] = { 15, 11, 18, 11, 18, 12, 18, 13, 19, 14, 22, 13, 20, 11, 19, 11, 19, 10, 18, 11, 19, 10, 21, 10, 19, 11, 18, 10, 16, 8, 15, 7, 18, 6, 19, 7, 20, 6, 21, 8, 20, 9, 21, 9, 20, 6, 19, 7, 14, 5, 16, 5, 15, 5, 14, 8, 16, 9, 13, 7, 12, 5, 10, 5 };
-#define CM_MASK 63
index 205084f..3f0e8bc 100644 (file)
@@ -33,6 +33,7 @@
 #include "configuration.h"
 #include "utf8.h"
 #include "vector.h"
+#include "unidata.h"
 
 /** @brief Low-level converstion routine
  * @param from Source encoding
@@ -177,6 +178,66 @@ int ucs4cmp(const uint32_t *a, const uint32_t *b) {
   else return 0;
 }
 
+/** @brief Return nonzero if @p c is a combining character */
+static int combining(int c) {
+  if(c < UNICODE_NCHARS) {
+    const struct unidata *const ud = &unidata[c / 256][c % 256];
+
+    return ud->gc == unicode_gc_Mn || ud->ccc != 0;
+  }
+  /* Assume unknown characters are noncombining */
+  return 0;
+}
+
+/** @brief Truncate a string for display purposes
+ * @param s Pointer to UTF-8 string
+ * @param max Maximum number of columns
+ * @return @p or truncated string (never NULL)
+ *
+ * We don't correctly support bidi or double-width characters yet, nor
+ * locate default grapheme cluster boundaries for saner truncation.
+ */
+const char *truncate_for_display(const char *s, long max) {
+  const char *t = s, *r, *cut = 0;
+  char *truncated;
+  uint32_t c;
+  long n = 0;
+
+  /* We need to discover two things: firstly whether the string is
+   * longer than @p max glyphs and secondly if it is not, where to cut
+   * the string.
+   *
+   * Combining characters follow their base character (unicode
+   * standard 5.0 s2.11), so after each base character we must 
+   */
+  while(*t) {
+    PARSE_UTF8(t, c, return s);
+    if(combining(c))
+      /* This must be an initial combining character.  We just skip it. */
+      continue;
+    /* So c must be a base character.  It may be followed by any
+     * number of combining characters.  We advance past them. */
+    do {
+      r = t;
+      PARSE_UTF8(t, c, return s);
+    } while(combining(c));
+    /* Last character wasn't a combining character so back up */
+    t = r;
+    ++n;
+    /* So now there are N glyphs before position T.  We might
+     * therefore have reached the cut position. */
+    if(n == max - 3)
+      cut = t;
+  }
+  /* If the string is short enough we return it unmodified */
+  if(n < max)
+    return s;
+  truncated = xmalloc_noptr(cut - s + 4);
+  memcpy(truncated, s, cut - s);
+  strcpy(truncated + (cut - s), "...");
+  return truncated;
+}
+
 /*
 Local Variables:
 c-basic-offset:2
index b172b76..70b5b2f 100644 (file)
@@ -66,6 +66,8 @@ static inline char *nullcheck(char *s) {
 int ucs4cmp(const uint32_t *a, const uint32_t *b);
 /* like strcmp */
 
+const char *truncate_for_display(const char *s, long max);
+
 #endif /* CHARSET_H */
 
 /*
index c1bb8fc..34f8d53 100644 (file)
@@ -896,6 +896,7 @@ static const struct conf conf[] = {
   { C2(restrict, restrictions),         &type_restrict,         validate_any },
   { C(sample_format),    &type_sample_format,    validate_sample_format },
   { C(scratch),          &type_string_accum,     validate_isreg },
+  { C(short_display),    &type_integer,          validate_positive },
   { C(signal),           &type_signal,           validate_any },
   { C(sox_generation),   &type_integer,          validate_non_negative },
   { C(speaker_backend),  &type_backend,          validate_any },
@@ -1023,6 +1024,7 @@ static struct config *config_default(void) {
   c->multicast_ttl = 1;
   c->authorization_algorithm = xstrdup("sha1");
   c->noticed_history = 31;
+  c->short_display = 32;
   return c;
 }
 
index 4dad503..c5cc2e1 100644 (file)
@@ -203,6 +203,9 @@ struct config {
   /** @brief Canonical URL of web interface */
   const char *url;
 
+  /** @brief Short display limit */
+  long short_display;
+
   /** @brief Maximum refresh interval for web interface (seconds) */
   long refresh;
 
index b2e1dc5..2b40a44 100644 (file)
@@ -350,13 +350,16 @@ static void test_casefold(void) {
       else
        l = c;
       break;
+#if 0
+      /* unidata-based case folding doens't support special cases */
     case 0xB5:                         /* MICRO SIGN */
-      l = 0x3BC;                       /* GREEK SMALL LETTER MU */
+      l = 0x39C;                       /* GREEK SMALL LETTER MU */
       break;
     case 0xDF:                         /* LATIN SMALL LETTER SHARP S */
       insist(!strcmp(ls, "ss"));
       l = 0;
       break;
+#endif
     }
     if(l) {
       u[0] = l;
diff --git a/lib/unicodegc.h b/lib/unicodegc.h
deleted file mode 100644 (file)
index 78a4f0d..0000000
+++ /dev/null
@@ -1,1613 +0,0 @@
-enum unicode_gc_cat {
-  unicode_gc_Cc,
-  unicode_gc_Cf,
-  unicode_gc_Co,
-  unicode_gc_Cs,
-  unicode_gc_Ll,
-  unicode_gc_Lm,
-  unicode_gc_Lo,
-  unicode_gc_Lt,
-  unicode_gc_Lu,
-  unicode_gc_Mc,
-  unicode_gc_Me,
-  unicode_gc_Mn,
-  unicode_gc_Nd,
-  unicode_gc_Nl,
-  unicode_gc_No,
-  unicode_gc_Pc,
-  unicode_gc_Pd,
-  unicode_gc_Pe,
-  unicode_gc_Pf,
-  unicode_gc_Pi,
-  unicode_gc_Po,
-  unicode_gc_Ps,
-  unicode_gc_Sc,
-  unicode_gc_Sk,
-  unicode_gc_Sm,
-  unicode_gc_So,
-  unicode_gc_Zl,
-  unicode_gc_Zp,
-  unicode_gc_Zs,
-  unicode_gc_none
-};
-static const struct unicode_gc {
-  uint32_t l, h;
-  enum unicode_gc_cat cat;
-} gcs[] = {
-  { 0, 31, unicode_gc_Cc },
-  { 32, 32, unicode_gc_Zs },
-  { 33, 35, unicode_gc_Po },
-  { 36, 36, unicode_gc_Sc },
-  { 37, 39, unicode_gc_Po },
-  { 40, 40, unicode_gc_Ps },
-  { 41, 41, unicode_gc_Pe },
-  { 42, 42, unicode_gc_Po },
-  { 43, 43, unicode_gc_Sm },
-  { 44, 44, unicode_gc_Po },
-  { 45, 45, unicode_gc_Pd },
-  { 46, 47, unicode_gc_Po },
-  { 48, 57, unicode_gc_Nd },
-  { 58, 59, unicode_gc_Po },
-  { 60, 62, unicode_gc_Sm },
-  { 63, 64, unicode_gc_Po },
-  { 65, 90, unicode_gc_Lu },
-  { 91, 91, unicode_gc_Ps },
-  { 92, 92, unicode_gc_Po },
-  { 93, 93, unicode_gc_Pe },
-  { 94, 94, unicode_gc_Sk },
-  { 95, 95, unicode_gc_Pc },
-  { 96, 96, unicode_gc_Sk },
-  { 97, 122, unicode_gc_Ll },
-  { 123, 123, unicode_gc_Ps },
-  { 124, 124, unicode_gc_Sm },
-  { 125, 125, unicode_gc_Pe },
-  { 126, 126, unicode_gc_Sm },
-  { 127, 159, unicode_gc_Cc },
-  { 160, 160, unicode_gc_Zs },
-  { 161, 161, unicode_gc_Po },
-  { 162, 165, unicode_gc_Sc },
-  { 166, 167, unicode_gc_So },
-  { 168, 168, unicode_gc_Sk },
-  { 169, 169, unicode_gc_So },
-  { 170, 170, unicode_gc_Ll },
-  { 171, 171, unicode_gc_Pi },
-  { 172, 172, unicode_gc_Sm },
-  { 173, 173, unicode_gc_Cf },
-  { 174, 174, unicode_gc_So },
-  { 175, 175, unicode_gc_Sk },
-  { 176, 176, unicode_gc_So },
-  { 177, 177, unicode_gc_Sm },
-  { 178, 179, unicode_gc_No },
-  { 180, 180, unicode_gc_Sk },
-  { 181, 181, unicode_gc_Ll },
-  { 182, 182, unicode_gc_So },
-  { 183, 183, unicode_gc_Po },
-  { 184, 184, unicode_gc_Sk },
-  { 185, 185, unicode_gc_No },
-  { 186, 186, unicode_gc_Ll },
-  { 187, 187, unicode_gc_Pf },
-  { 188, 190, unicode_gc_No },
-  { 191, 191, unicode_gc_Po },
-  { 192, 214, unicode_gc_Lu },
-  { 215, 215, unicode_gc_Sm },
-  { 216, 222, unicode_gc_Lu },
-  { 223, 246, unicode_gc_Ll },
-  { 247, 247, unicode_gc_Sm },
-  { 248, 255, unicode_gc_Ll },
-  { 256, 256, unicode_gc_Lu },
-  { 257, 257, unicode_gc_Ll },
-  { 258, 258, unicode_gc_Lu },
-  { 259, 259, unicode_gc_Ll },
-  { 260, 260, unicode_gc_Lu },
-  { 261, 261, unicode_gc_Ll },
-  { 262, 262, unicode_gc_Lu },
-  { 263, 263, unicode_gc_Ll },
-  { 264, 264, unicode_gc_Lu },
-  { 265, 265, unicode_gc_Ll },
-  { 266, 266, unicode_gc_Lu },
-  { 267, 267, unicode_gc_Ll },
-  { 268, 268, unicode_gc_Lu },
-  { 269, 269, unicode_gc_Ll },
-  { 270, 270, unicode_gc_Lu },
-  { 271, 271, unicode_gc_Ll },
-  { 272, 272, unicode_gc_Lu },
-  { 273, 273, unicode_gc_Ll },
-  { 274, 274, unicode_gc_Lu },
-  { 275, 275, unicode_gc_Ll },
-  { 276, 276, unicode_gc_Lu },
-  { 277, 277, unicode_gc_Ll },
-  { 278, 278, unicode_gc_Lu },
-  { 279, 279, unicode_gc_Ll },
-  { 280, 280, unicode_gc_Lu },
-  { 281, 281, unicode_gc_Ll },
-  { 282, 282, unicode_gc_Lu },
-  { 283, 283, unicode_gc_Ll },
-  { 284, 284, unicode_gc_Lu },
-  { 285, 285, unicode_gc_Ll },
-  { 286, 286, unicode_gc_Lu },
-  { 287, 287, unicode_gc_Ll },
-  { 288, 288, unicode_gc_Lu },
-  { 289, 289, unicode_gc_Ll },
-  { 290, 290, unicode_gc_Lu },
-  { 291, 291, unicode_gc_Ll },
-  { 292, 292, unicode_gc_Lu },
-  { 293, 293, unicode_gc_Ll },
-  { 294, 294, unicode_gc_Lu },
-  { 295, 295, unicode_gc_Ll },
-  { 296, 296, unicode_gc_Lu },
-  { 297, 297, unicode_gc_Ll },
-  { 298, 298, unicode_gc_Lu },
-  { 299, 299, unicode_gc_Ll },
-  { 300, 300, unicode_gc_Lu },
-  { 301, 301, unicode_gc_Ll },
-  { 302, 302, unicode_gc_Lu },
-  { 303, 303, unicode_gc_Ll },
-  { 304, 304, unicode_gc_Lu },
-  { 305, 305, unicode_gc_Ll },
-  { 306, 306, unicode_gc_Lu },
-  { 307, 307, unicode_gc_Ll },
-  { 308, 308, unicode_gc_Lu },
-  { 309, 309, unicode_gc_Ll },
-  { 310, 310, unicode_gc_Lu },
-  { 311, 312, unicode_gc_Ll },
-  { 313, 313, unicode_gc_Lu },
-  { 314, 314, unicode_gc_Ll },
-  { 315, 315, unicode_gc_Lu },
-  { 316, 316, unicode_gc_Ll },
-  { 317, 317, unicode_gc_Lu },
-  { 318, 318, unicode_gc_Ll },
-  { 319, 319, unicode_gc_Lu },
-  { 320, 320, unicode_gc_Ll },
-  { 321, 321, unicode_gc_Lu },
-  { 322, 322, unicode_gc_Ll },
-  { 323, 323, unicode_gc_Lu },
-  { 324, 324, unicode_gc_Ll },
-  { 325, 325, unicode_gc_Lu },
-  { 326, 326, unicode_gc_Ll },
-  { 327, 327, unicode_gc_Lu },
-  { 328, 329, unicode_gc_Ll },
-  { 330, 330, unicode_gc_Lu },
-  { 331, 331, unicode_gc_Ll },
-  { 332, 332, unicode_gc_Lu },
-  { 333, 333, unicode_gc_Ll },
-  { 334, 334, unicode_gc_Lu },
-  { 335, 335, unicode_gc_Ll },
-  { 336, 336, unicode_gc_Lu },
-  { 337, 337, unicode_gc_Ll },
-  { 338, 338, unicode_gc_Lu },
-  { 339, 339, unicode_gc_Ll },
-  { 340, 340, unicode_gc_Lu },
-  { 341, 341, unicode_gc_Ll },
-  { 342, 342, unicode_gc_Lu },
-  { 343, 343, unicode_gc_Ll },
-  { 344, 344, unicode_gc_Lu },
-  { 345, 345, unicode_gc_Ll },
-  { 346, 346, unicode_gc_Lu },
-  { 347, 347, unicode_gc_Ll },
-  { 348, 348, unicode_gc_Lu },
-  { 349, 349, unicode_gc_Ll },
-  { 350, 350, unicode_gc_Lu },
-  { 351, 351, unicode_gc_Ll },
-  { 352, 352, unicode_gc_Lu },
-  { 353, 353, unicode_gc_Ll },
-  { 354, 354, unicode_gc_Lu },
-  { 355, 355, unicode_gc_Ll },
-  { 356, 356, unicode_gc_Lu },
-  { 357, 357, unicode_gc_Ll },
-  { 358, 358, unicode_gc_Lu },
-  { 359, 359, unicode_gc_Ll },
-  { 360, 360, unicode_gc_Lu },
-  { 361, 361, unicode_gc_Ll },
-  { 362, 362, unicode_gc_Lu },
-  { 363, 363, unicode_gc_Ll },
-  { 364, 364, unicode_gc_Lu },
-  { 365, 365, unicode_gc_Ll },
-  { 366, 366, unicode_gc_Lu },
-  { 367, 367, unicode_gc_Ll },
-  { 368, 368, unicode_gc_Lu },
-  { 369, 369, unicode_gc_Ll },
-  { 370, 370, unicode_gc_Lu },
-  { 371, 371, unicode_gc_Ll },
-  { 372, 372, unicode_gc_Lu },
-  { 373, 373, unicode_gc_Ll },
-  { 374, 374, unicode_gc_Lu },
-  { 375, 375, unicode_gc_Ll },
-  { 376, 377, unicode_gc_Lu },
-  { 378, 378, unicode_gc_Ll },
-  { 379, 379, unicode_gc_Lu },
-  { 380, 380, unicode_gc_Ll },
-  { 381, 381, unicode_gc_Lu },
-  { 382, 384, unicode_gc_Ll },
-  { 385, 386, unicode_gc_Lu },
-  { 387, 387, unicode_gc_Ll },
-  { 388, 388, unicode_gc_Lu },
-  { 389, 389, unicode_gc_Ll },
-  { 390, 391, unicode_gc_Lu },
-  { 392, 392, unicode_gc_Ll },
-  { 393, 395, unicode_gc_Lu },
-  { 396, 397, unicode_gc_Ll },
-  { 398, 401, unicode_gc_Lu },
-  { 402, 402, unicode_gc_Ll },
-  { 403, 404, unicode_gc_Lu },
-  { 405, 405, unicode_gc_Ll },
-  { 406, 408, unicode_gc_Lu },
-  { 409, 411, unicode_gc_Ll },
-  { 412, 413, unicode_gc_Lu },
-  { 414, 414, unicode_gc_Ll },
-  { 415, 416, unicode_gc_Lu },
-  { 417, 417, unicode_gc_Ll },
-  { 418, 418, unicode_gc_Lu },
-  { 419, 419, unicode_gc_Ll },
-  { 420, 420, unicode_gc_Lu },
-  { 421, 421, unicode_gc_Ll },
-  { 422, 423, unicode_gc_Lu },
-  { 424, 424, unicode_gc_Ll },
-  { 425, 425, unicode_gc_Lu },
-  { 426, 427, unicode_gc_Ll },
-  { 428, 428, unicode_gc_Lu },
-  { 429, 429, unicode_gc_Ll },
-  { 430, 431, unicode_gc_Lu },
-  { 432, 432, unicode_gc_Ll },
-  { 433, 435, unicode_gc_Lu },
-  { 436, 436, unicode_gc_Ll },
-  { 437, 437, unicode_gc_Lu },
-  { 438, 438, unicode_gc_Ll },
-  { 439, 440, unicode_gc_Lu },
-  { 441, 442, unicode_gc_Ll },
-  { 443, 443, unicode_gc_Lo },
-  { 444, 444, unicode_gc_Lu },
-  { 445, 447, unicode_gc_Ll },
-  { 448, 451, unicode_gc_Lo },
-  { 452, 452, unicode_gc_Lu },
-  { 453, 453, unicode_gc_Lt },
-  { 454, 454, unicode_gc_Ll },
-  { 455, 455, unicode_gc_Lu },
-  { 456, 456, unicode_gc_Lt },
-  { 457, 457, unicode_gc_Ll },
-  { 458, 458, unicode_gc_Lu },
-  { 459, 459, unicode_gc_Lt },
-  { 460, 460, unicode_gc_Ll },
-  { 461, 461, unicode_gc_Lu },
-  { 462, 462, unicode_gc_Ll },
-  { 463, 463, unicode_gc_Lu },
-  { 464, 464, unicode_gc_Ll },
-  { 465, 465, unicode_gc_Lu },
-  { 466, 466, unicode_gc_Ll },
-  { 467, 467, unicode_gc_Lu },
-  { 468, 468, unicode_gc_Ll },
-  { 469, 469, unicode_gc_Lu },
-  { 470, 470, unicode_gc_Ll },
-  { 471, 471, unicode_gc_Lu },
-  { 472, 472, unicode_gc_Ll },
-  { 473, 473, unicode_gc_Lu },
-  { 474, 474, unicode_gc_Ll },
-  { 475, 475, unicode_gc_Lu },
-  { 476, 477, unicode_gc_Ll },
-  { 478, 478, unicode_gc_Lu },
-  { 479, 479, unicode_gc_Ll },
-  { 480, 480, unicode_gc_Lu },
-  { 481, 481, unicode_gc_Ll },
-  { 482, 482, unicode_gc_Lu },
-  { 483, 483, unicode_gc_Ll },
-  { 484, 484, unicode_gc_Lu },
-  { 485, 485, unicode_gc_Ll },
-  { 486, 486, unicode_gc_Lu },
-  { 487, 487, unicode_gc_Ll },
-  { 488, 488, unicode_gc_Lu },
-  { 489, 489, unicode_gc_Ll },
-  { 490, 490, unicode_gc_Lu },
-  { 491, 491, unicode_gc_Ll },
-  { 492, 492, unicode_gc_Lu },
-  { 493, 493, unicode_gc_Ll },
-  { 494, 494, unicode_gc_Lu },
-  { 495, 496, unicode_gc_Ll },
-  { 497, 497, unicode_gc_Lu },
-  { 498, 498, unicode_gc_Lt },
-  { 499, 499, unicode_gc_Ll },
-  { 500, 500, unicode_gc_Lu },
-  { 501, 501, unicode_gc_Ll },
-  { 502, 504, unicode_gc_Lu },
-  { 505, 505, unicode_gc_Ll },
-  { 506, 506, unicode_gc_Lu },
-  { 507, 507, unicode_gc_Ll },
-  { 508, 508, unicode_gc_Lu },
-  { 509, 509, unicode_gc_Ll },
-  { 510, 510, unicode_gc_Lu },
-  { 511, 511, unicode_gc_Ll },
-  { 512, 512, unicode_gc_Lu },
-  { 513, 513, unicode_gc_Ll },
-  { 514, 514, unicode_gc_Lu },
-  { 515, 515, unicode_gc_Ll },
-  { 516, 516, unicode_gc_Lu },
-  { 517, 517, unicode_gc_Ll },
-  { 518, 518, unicode_gc_Lu },
-  { 519, 519, unicode_gc_Ll },
-  { 520, 520, unicode_gc_Lu },
-  { 521, 521, unicode_gc_Ll },
-  { 522, 522, unicode_gc_Lu },
-  { 523, 523, unicode_gc_Ll },
-  { 524, 524, unicode_gc_Lu },
-  { 525, 525, unicode_gc_Ll },
-  { 526, 526, unicode_gc_Lu },
-  { 527, 527, unicode_gc_Ll },
-  { 528, 528, unicode_gc_Lu },
-  { 529, 529, unicode_gc_Ll },
-  { 530, 530, unicode_gc_Lu },
-  { 531, 531, unicode_gc_Ll },
-  { 532, 532, unicode_gc_Lu },
-  { 533, 533, unicode_gc_Ll },
-  { 534, 534, unicode_gc_Lu },
-  { 535, 535, unicode_gc_Ll },
-  { 536, 536, unicode_gc_Lu },
-  { 537, 537, unicode_gc_Ll },
-  { 538, 538, unicode_gc_Lu },
-  { 539, 539, unicode_gc_Ll },
-  { 540, 540, unicode_gc_Lu },
-  { 541, 541, unicode_gc_Ll },
-  { 542, 542, unicode_gc_Lu },
-  { 543, 543, unicode_gc_Ll },
-  { 544, 544, unicode_gc_Lu },
-  { 545, 545, unicode_gc_Ll },
-  { 546, 546, unicode_gc_Lu },
-  { 547, 547, unicode_gc_Ll },
-  { 548, 548, unicode_gc_Lu },
-  { 549, 549, unicode_gc_Ll },
-  { 550, 550, unicode_gc_Lu },
-  { 551, 551, unicode_gc_Ll },
-  { 552, 552, unicode_gc_Lu },
-  { 553, 553, unicode_gc_Ll },
-  { 554, 554, unicode_gc_Lu },
-  { 555, 555, unicode_gc_Ll },
-  { 556, 556, unicode_gc_Lu },
-  { 557, 557, unicode_gc_Ll },
-  { 558, 558, unicode_gc_Lu },
-  { 559, 559, unicode_gc_Ll },
-  { 560, 560, unicode_gc_Lu },
-  { 561, 561, unicode_gc_Ll },
-  { 562, 562, unicode_gc_Lu },
-  { 563, 687, unicode_gc_Ll },
-  { 688, 705, unicode_gc_Lm },
-  { 706, 709, unicode_gc_Sk },
-  { 710, 721, unicode_gc_Lm },
-  { 722, 735, unicode_gc_Sk },
-  { 736, 740, unicode_gc_Lm },
-  { 741, 749, unicode_gc_Sk },
-  { 750, 750, unicode_gc_Lm },
-  { 751, 767, unicode_gc_Sk },
-  { 768, 883, unicode_gc_Mn },
-  { 884, 889, unicode_gc_Sk },
-  { 890, 893, unicode_gc_Lm },
-  { 894, 899, unicode_gc_Po },
-  { 900, 901, unicode_gc_Sk },
-  { 902, 902, unicode_gc_Lu },
-  { 903, 903, unicode_gc_Po },
-  { 904, 911, unicode_gc_Lu },
-  { 912, 912, unicode_gc_Ll },
-  { 913, 939, unicode_gc_Lu },
-  { 940, 977, unicode_gc_Ll },
-  { 978, 980, unicode_gc_Lu },
-  { 981, 983, unicode_gc_Ll },
-  { 984, 984, unicode_gc_Lu },
-  { 985, 985, unicode_gc_Ll },
-  { 986, 986, unicode_gc_Lu },
-  { 987, 987, unicode_gc_Ll },
-  { 988, 988, unicode_gc_Lu },
-  { 989, 989, unicode_gc_Ll },
-  { 990, 990, unicode_gc_Lu },
-  { 991, 991, unicode_gc_Ll },
-  { 992, 992, unicode_gc_Lu },
-  { 993, 993, unicode_gc_Ll },
-  { 994, 994, unicode_gc_Lu },
-  { 995, 995, unicode_gc_Ll },
-  { 996, 996, unicode_gc_Lu },
-  { 997, 997, unicode_gc_Ll },
-  { 998, 998, unicode_gc_Lu },
-  { 999, 999, unicode_gc_Ll },
-  { 1000, 1000, unicode_gc_Lu },
-  { 1001, 1001, unicode_gc_Ll },
-  { 1002, 1002, unicode_gc_Lu },
-  { 1003, 1003, unicode_gc_Ll },
-  { 1004, 1004, unicode_gc_Lu },
-  { 1005, 1005, unicode_gc_Ll },
-  { 1006, 1006, unicode_gc_Lu },
-  { 1007, 1011, unicode_gc_Ll },
-  { 1012, 1012, unicode_gc_Lu },
-  { 1013, 1013, unicode_gc_Ll },
-  { 1014, 1014, unicode_gc_Sm },
-  { 1015, 1015, unicode_gc_Lu },
-  { 1016, 1016, unicode_gc_Ll },
-  { 1017, 1018, unicode_gc_Lu },
-  { 1019, 1023, unicode_gc_Ll },
-  { 1024, 1071, unicode_gc_Lu },
-  { 1072, 1119, unicode_gc_Ll },
-  { 1120, 1120, unicode_gc_Lu },
-  { 1121, 1121, unicode_gc_Ll },
-  { 1122, 1122, unicode_gc_Lu },
-  { 1123, 1123, unicode_gc_Ll },
-  { 1124, 1124, unicode_gc_Lu },
-  { 1125, 1125, unicode_gc_Ll },
-  { 1126, 1126, unicode_gc_Lu },
-  { 1127, 1127, unicode_gc_Ll },
-  { 1128, 1128, unicode_gc_Lu },
-  { 1129, 1129, unicode_gc_Ll },
-  { 1130, 1130, unicode_gc_Lu },
-  { 1131, 1131, unicode_gc_Ll },
-  { 1132, 1132, unicode_gc_Lu },
-  { 1133, 1133, unicode_gc_Ll },
-  { 1134, 1134, unicode_gc_Lu },
-  { 1135, 1135, unicode_gc_Ll },
-  { 1136, 1136, unicode_gc_Lu },
-  { 1137, 1137, unicode_gc_Ll },
-  { 1138, 1138, unicode_gc_Lu },
-  { 1139, 1139, unicode_gc_Ll },
-  { 1140, 1140, unicode_gc_Lu },
-  { 1141, 1141, unicode_gc_Ll },
-  { 1142, 1142, unicode_gc_Lu },
-  { 1143, 1143, unicode_gc_Ll },
-  { 1144, 1144, unicode_gc_Lu },
-  { 1145, 1145, unicode_gc_Ll },
-  { 1146, 1146, unicode_gc_Lu },
-  { 1147, 1147, unicode_gc_Ll },
-  { 1148, 1148, unicode_gc_Lu },
-  { 1149, 1149, unicode_gc_Ll },
-  { 1150, 1150, unicode_gc_Lu },
-  { 1151, 1151, unicode_gc_Ll },
-  { 1152, 1152, unicode_gc_Lu },
-  { 1153, 1153, unicode_gc_Ll },
-  { 1154, 1154, unicode_gc_So },
-  { 1155, 1159, unicode_gc_Mn },
-  { 1160, 1161, unicode_gc_Me },
-  { 1162, 1162, unicode_gc_Lu },
-  { 1163, 1163, unicode_gc_Ll },
-  { 1164, 1164, unicode_gc_Lu },
-  { 1165, 1165, unicode_gc_Ll },
-  { 1166, 1166, unicode_gc_Lu },
-  { 1167, 1167, unicode_gc_Ll },
-  { 1168, 1168, unicode_gc_Lu },
-  { 1169, 1169, unicode_gc_Ll },
-  { 1170, 1170, unicode_gc_Lu },
-  { 1171, 1171, unicode_gc_Ll },
-  { 1172, 1172, unicode_gc_Lu },
-  { 1173, 1173, unicode_gc_Ll },
-  { 1174, 1174, unicode_gc_Lu },
-  { 1175, 1175, unicode_gc_Ll },
-  { 1176, 1176, unicode_gc_Lu },
-  { 1177, 1177, unicode_gc_Ll },
-  { 1178, 1178, unicode_gc_Lu },
-  { 1179, 1179, unicode_gc_Ll },
-  { 1180, 1180, unicode_gc_Lu },
-  { 1181, 1181, unicode_gc_Ll },
-  { 1182, 1182, unicode_gc_Lu },
-  { 1183, 1183, unicode_gc_Ll },
-  { 1184, 1184, unicode_gc_Lu },
-  { 1185, 1185, unicode_gc_Ll },
-  { 1186, 1186, unicode_gc_Lu },
-  { 1187, 1187, unicode_gc_Ll },
-  { 1188, 1188, unicode_gc_Lu },
-  { 1189, 1189, unicode_gc_Ll },
-  { 1190, 1190, unicode_gc_Lu },
-  { 1191, 1191, unicode_gc_Ll },
-  { 1192, 1192, unicode_gc_Lu },
-  { 1193, 1193, unicode_gc_Ll },
-  { 1194, 1194, unicode_gc_Lu },
-  { 1195, 1195, unicode_gc_Ll },
-  { 1196, 1196, unicode_gc_Lu },
-  { 1197, 1197, unicode_gc_Ll },
-  { 1198, 1198, unicode_gc_Lu },
-  { 1199, 1199, unicode_gc_Ll },
-  { 1200, 1200, unicode_gc_Lu },
-  { 1201, 1201, unicode_gc_Ll },
-  { 1202, 1202, unicode_gc_Lu },
-  { 1203, 1203, unicode_gc_Ll },
-  { 1204, 1204, unicode_gc_Lu },
-  { 1205, 1205, unicode_gc_Ll },
-  { 1206, 1206, unicode_gc_Lu },
-  { 1207, 1207, unicode_gc_Ll },
-  { 1208, 1208, unicode_gc_Lu },
-  { 1209, 1209, unicode_gc_Ll },
-  { 1210, 1210, unicode_gc_Lu },
-  { 1211, 1211, unicode_gc_Ll },
-  { 1212, 1212, unicode_gc_Lu },
-  { 1213, 1213, unicode_gc_Ll },
-  { 1214, 1214, unicode_gc_Lu },
-  { 1215, 1215, unicode_gc_Ll },
-  { 1216, 1217, unicode_gc_Lu },
-  { 1218, 1218, unicode_gc_Ll },
-  { 1219, 1219, unicode_gc_Lu },
-  { 1220, 1220, unicode_gc_Ll },
-  { 1221, 1221, unicode_gc_Lu },
-  { 1222, 1222, unicode_gc_Ll },
-  { 1223, 1223, unicode_gc_Lu },
-  { 1224, 1224, unicode_gc_Ll },
-  { 1225, 1225, unicode_gc_Lu },
-  { 1226, 1226, unicode_gc_Ll },
-  { 1227, 1227, unicode_gc_Lu },
-  { 1228, 1228, unicode_gc_Ll },
-  { 1229, 1229, unicode_gc_Lu },
-  { 1230, 1231, unicode_gc_Ll },
-  { 1232, 1232, unicode_gc_Lu },
-  { 1233, 1233, unicode_gc_Ll },
-  { 1234, 1234, unicode_gc_Lu },
-  { 1235, 1235, unicode_gc_Ll },
-  { 1236, 1236, unicode_gc_Lu },
-  { 1237, 1237, unicode_gc_Ll },
-  { 1238, 1238, unicode_gc_Lu },
-  { 1239, 1239, unicode_gc_Ll },
-  { 1240, 1240, unicode_gc_Lu },
-  { 1241, 1241, unicode_gc_Ll },
-  { 1242, 1242, unicode_gc_Lu },
-  { 1243, 1243, unicode_gc_Ll },
-  { 1244, 1244, unicode_gc_Lu },
-  { 1245, 1245, unicode_gc_Ll },
-  { 1246, 1246, unicode_gc_Lu },
-  { 1247, 1247, unicode_gc_Ll },
-  { 1248, 1248, unicode_gc_Lu },
-  { 1249, 1249, unicode_gc_Ll },
-  { 1250, 1250, unicode_gc_Lu },
-  { 1251, 1251, unicode_gc_Ll },
-  { 1252, 1252, unicode_gc_Lu },
-  { 1253, 1253, unicode_gc_Ll },
-  { 1254, 1254, unicode_gc_Lu },
-  { 1255, 1255, unicode_gc_Ll },
-  { 1256, 1256, unicode_gc_Lu },
-  { 1257, 1257, unicode_gc_Ll },
-  { 1258, 1258, unicode_gc_Lu },
-  { 1259, 1259, unicode_gc_Ll },
-  { 1260, 1260, unicode_gc_Lu },
-  { 1261, 1261, unicode_gc_Ll },
-  { 1262, 1262, unicode_gc_Lu },
-  { 1263, 1263, unicode_gc_Ll },
-  { 1264, 1264, unicode_gc_Lu },
-  { 1265, 1265, unicode_gc_Ll },
-  { 1266, 1266, unicode_gc_Lu },
-  { 1267, 1267, unicode_gc_Ll },
-  { 1268, 1268, unicode_gc_Lu },
-  { 1269, 1271, unicode_gc_Ll },
-  { 1272, 1272, unicode_gc_Lu },
-  { 1273, 1279, unicode_gc_Ll },
-  { 1280, 1280, unicode_gc_Lu },
-  { 1281, 1281, unicode_gc_Ll },
-  { 1282, 1282, unicode_gc_Lu },
-  { 1283, 1283, unicode_gc_Ll },
-  { 1284, 1284, unicode_gc_Lu },
-  { 1285, 1285, unicode_gc_Ll },
-  { 1286, 1286, unicode_gc_Lu },
-  { 1287, 1287, unicode_gc_Ll },
-  { 1288, 1288, unicode_gc_Lu },
-  { 1289, 1289, unicode_gc_Ll },
-  { 1290, 1290, unicode_gc_Lu },
-  { 1291, 1291, unicode_gc_Ll },
-  { 1292, 1292, unicode_gc_Lu },
-  { 1293, 1293, unicode_gc_Ll },
-  { 1294, 1294, unicode_gc_Lu },
-  { 1295, 1328, unicode_gc_Ll },
-  { 1329, 1368, unicode_gc_Lu },
-  { 1369, 1369, unicode_gc_Lm },
-  { 1370, 1376, unicode_gc_Po },
-  { 1377, 1416, unicode_gc_Ll },
-  { 1417, 1417, unicode_gc_Po },
-  { 1418, 1424, unicode_gc_Pd },
-  { 1425, 1469, unicode_gc_Mn },
-  { 1470, 1470, unicode_gc_Po },
-  { 1471, 1471, unicode_gc_Mn },
-  { 1472, 1472, unicode_gc_Po },
-  { 1473, 1474, unicode_gc_Mn },
-  { 1475, 1475, unicode_gc_Po },
-  { 1476, 1487, unicode_gc_Mn },
-  { 1488, 1522, unicode_gc_Lo },
-  { 1523, 1535, unicode_gc_Po },
-  { 1536, 1547, unicode_gc_Cf },
-  { 1548, 1549, unicode_gc_Po },
-  { 1550, 1551, unicode_gc_So },
-  { 1552, 1562, unicode_gc_Mn },
-  { 1563, 1568, unicode_gc_Po },
-  { 1569, 1599, unicode_gc_Lo },
-  { 1600, 1600, unicode_gc_Lm },
-  { 1601, 1610, unicode_gc_Lo },
-  { 1611, 1631, unicode_gc_Mn },
-  { 1632, 1641, unicode_gc_Nd },
-  { 1642, 1645, unicode_gc_Po },
-  { 1646, 1647, unicode_gc_Lo },
-  { 1648, 1648, unicode_gc_Mn },
-  { 1649, 1747, unicode_gc_Lo },
-  { 1748, 1748, unicode_gc_Po },
-  { 1749, 1749, unicode_gc_Lo },
-  { 1750, 1756, unicode_gc_Mn },
-  { 1757, 1757, unicode_gc_Cf },
-  { 1758, 1758, unicode_gc_Me },
-  { 1759, 1764, unicode_gc_Mn },
-  { 1765, 1766, unicode_gc_Lm },
-  { 1767, 1768, unicode_gc_Mn },
-  { 1769, 1769, unicode_gc_So },
-  { 1770, 1773, unicode_gc_Mn },
-  { 1774, 1775, unicode_gc_Lo },
-  { 1776, 1785, unicode_gc_Nd },
-  { 1786, 1788, unicode_gc_Lo },
-  { 1789, 1790, unicode_gc_So },
-  { 1791, 1791, unicode_gc_Lo },
-  { 1792, 1806, unicode_gc_Po },
-  { 1807, 1807, unicode_gc_Cf },
-  { 1808, 1808, unicode_gc_Lo },
-  { 1809, 1809, unicode_gc_Mn },
-  { 1810, 1839, unicode_gc_Lo },
-  { 1840, 1868, unicode_gc_Mn },
-  { 1869, 1957, unicode_gc_Lo },
-  { 1958, 1968, unicode_gc_Mn },
-  { 1969, 2304, unicode_gc_Lo },
-  { 2305, 2306, unicode_gc_Mn },
-  { 2307, 2307, unicode_gc_Mc },
-  { 2308, 2363, unicode_gc_Lo },
-  { 2364, 2364, unicode_gc_Mn },
-  { 2365, 2365, unicode_gc_Lo },
-  { 2366, 2368, unicode_gc_Mc },
-  { 2369, 2376, unicode_gc_Mn },
-  { 2377, 2380, unicode_gc_Mc },
-  { 2381, 2383, unicode_gc_Mn },
-  { 2384, 2384, unicode_gc_Lo },
-  { 2385, 2391, unicode_gc_Mn },
-  { 2392, 2401, unicode_gc_Lo },
-  { 2402, 2403, unicode_gc_Mn },
-  { 2404, 2405, unicode_gc_Po },
-  { 2406, 2415, unicode_gc_Nd },
-  { 2416, 2432, unicode_gc_Po },
-  { 2433, 2433, unicode_gc_Mn },
-  { 2434, 2436, unicode_gc_Mc },
-  { 2437, 2491, unicode_gc_Lo },
-  { 2492, 2492, unicode_gc_Mn },
-  { 2493, 2493, unicode_gc_Lo },
-  { 2494, 2496, unicode_gc_Mc },
-  { 2497, 2502, unicode_gc_Mn },
-  { 2503, 2508, unicode_gc_Mc },
-  { 2509, 2518, unicode_gc_Mn },
-  { 2519, 2523, unicode_gc_Mc },
-  { 2524, 2529, unicode_gc_Lo },
-  { 2530, 2533, unicode_gc_Mn },
-  { 2534, 2543, unicode_gc_Nd },
-  { 2544, 2545, unicode_gc_Lo },
-  { 2546, 2547, unicode_gc_Sc },
-  { 2548, 2553, unicode_gc_No },
-  { 2554, 2560, unicode_gc_So },
-  { 2561, 2562, unicode_gc_Mn },
-  { 2563, 2564, unicode_gc_Mc },
-  { 2565, 2619, unicode_gc_Lo },
-  { 2620, 2621, unicode_gc_Mn },
-  { 2622, 2624, unicode_gc_Mc },
-  { 2625, 2648, unicode_gc_Mn },
-  { 2649, 2661, unicode_gc_Lo },
-  { 2662, 2671, unicode_gc_Nd },
-  { 2672, 2673, unicode_gc_Mn },
-  { 2674, 2688, unicode_gc_Lo },
-  { 2689, 2690, unicode_gc_Mn },
-  { 2691, 2692, unicode_gc_Mc },
-  { 2693, 2747, unicode_gc_Lo },
-  { 2748, 2748, unicode_gc_Mn },
-  { 2749, 2749, unicode_gc_Lo },
-  { 2750, 2752, unicode_gc_Mc },
-  { 2753, 2760, unicode_gc_Mn },
-  { 2761, 2764, unicode_gc_Mc },
-  { 2765, 2767, unicode_gc_Mn },
-  { 2768, 2785, unicode_gc_Lo },
-  { 2786, 2789, unicode_gc_Mn },
-  { 2790, 2800, unicode_gc_Nd },
-  { 2801, 2816, unicode_gc_Sc },
-  { 2817, 2817, unicode_gc_Mn },
-  { 2818, 2820, unicode_gc_Mc },
-  { 2821, 2875, unicode_gc_Lo },
-  { 2876, 2876, unicode_gc_Mn },
-  { 2877, 2877, unicode_gc_Lo },
-  { 2878, 2878, unicode_gc_Mc },
-  { 2879, 2879, unicode_gc_Mn },
-  { 2880, 2880, unicode_gc_Mc },
-  { 2881, 2886, unicode_gc_Mn },
-  { 2887, 2892, unicode_gc_Mc },
-  { 2893, 2902, unicode_gc_Mn },
-  { 2903, 2907, unicode_gc_Mc },
-  { 2908, 2917, unicode_gc_Lo },
-  { 2918, 2927, unicode_gc_Nd },
-  { 2928, 2928, unicode_gc_So },
-  { 2929, 2945, unicode_gc_Lo },
-  { 2946, 2946, unicode_gc_Mn },
-  { 2947, 3005, unicode_gc_Lo },
-  { 3006, 3007, unicode_gc_Mc },
-  { 3008, 3008, unicode_gc_Mn },
-  { 3009, 3020, unicode_gc_Mc },
-  { 3021, 3030, unicode_gc_Mn },
-  { 3031, 3046, unicode_gc_Mc },
-  { 3047, 3055, unicode_gc_Nd },
-  { 3056, 3058, unicode_gc_No },
-  { 3059, 3064, unicode_gc_So },
-  { 3065, 3065, unicode_gc_Sc },
-  { 3066, 3072, unicode_gc_So },
-  { 3073, 3076, unicode_gc_Mc },
-  { 3077, 3133, unicode_gc_Lo },
-  { 3134, 3136, unicode_gc_Mn },
-  { 3137, 3141, unicode_gc_Mc },
-  { 3142, 3167, unicode_gc_Mn },
-  { 3168, 3173, unicode_gc_Lo },
-  { 3174, 3201, unicode_gc_Nd },
-  { 3202, 3204, unicode_gc_Mc },
-  { 3205, 3259, unicode_gc_Lo },
-  { 3260, 3260, unicode_gc_Mn },
-  { 3261, 3261, unicode_gc_Lo },
-  { 3262, 3262, unicode_gc_Mc },
-  { 3263, 3263, unicode_gc_Mn },
-  { 3264, 3269, unicode_gc_Mc },
-  { 3270, 3270, unicode_gc_Mn },
-  { 3271, 3275, unicode_gc_Mc },
-  { 3276, 3284, unicode_gc_Mn },
-  { 3285, 3293, unicode_gc_Mc },
-  { 3294, 3301, unicode_gc_Lo },
-  { 3302, 3329, unicode_gc_Nd },
-  { 3330, 3332, unicode_gc_Mc },
-  { 3333, 3389, unicode_gc_Lo },
-  { 3390, 3392, unicode_gc_Mc },
-  { 3393, 3397, unicode_gc_Mn },
-  { 3398, 3404, unicode_gc_Mc },
-  { 3405, 3414, unicode_gc_Mn },
-  { 3415, 3423, unicode_gc_Mc },
-  { 3424, 3429, unicode_gc_Lo },
-  { 3430, 3457, unicode_gc_Nd },
-  { 3458, 3460, unicode_gc_Mc },
-  { 3461, 3529, unicode_gc_Lo },
-  { 3530, 3534, unicode_gc_Mn },
-  { 3535, 3537, unicode_gc_Mc },
-  { 3538, 3543, unicode_gc_Mn },
-  { 3544, 3571, unicode_gc_Mc },
-  { 3572, 3584, unicode_gc_Po },
-  { 3585, 3632, unicode_gc_Lo },
-  { 3633, 3633, unicode_gc_Mn },
-  { 3634, 3635, unicode_gc_Lo },
-  { 3636, 3646, unicode_gc_Mn },
-  { 3647, 3647, unicode_gc_Sc },
-  { 3648, 3653, unicode_gc_Lo },
-  { 3654, 3654, unicode_gc_Lm },
-  { 3655, 3662, unicode_gc_Mn },
-  { 3663, 3663, unicode_gc_Po },
-  { 3664, 3673, unicode_gc_Nd },
-  { 3674, 3712, unicode_gc_Po },
-  { 3713, 3760, unicode_gc_Lo },
-  { 3761, 3761, unicode_gc_Mn },
-  { 3762, 3763, unicode_gc_Lo },
-  { 3764, 3772, unicode_gc_Mn },
-  { 3773, 3781, unicode_gc_Lo },
-  { 3782, 3783, unicode_gc_Lm },
-  { 3784, 3791, unicode_gc_Mn },
-  { 3792, 3803, unicode_gc_Nd },
-  { 3804, 3840, unicode_gc_Lo },
-  { 3841, 3843, unicode_gc_So },
-  { 3844, 3858, unicode_gc_Po },
-  { 3859, 3863, unicode_gc_So },
-  { 3864, 3865, unicode_gc_Mn },
-  { 3866, 3871, unicode_gc_So },
-  { 3872, 3881, unicode_gc_Nd },
-  { 3882, 3891, unicode_gc_No },
-  { 3892, 3892, unicode_gc_So },
-  { 3893, 3893, unicode_gc_Mn },
-  { 3894, 3894, unicode_gc_So },
-  { 3895, 3895, unicode_gc_Mn },
-  { 3896, 3896, unicode_gc_So },
-  { 3897, 3897, unicode_gc_Mn },
-  { 3898, 3898, unicode_gc_Ps },
-  { 3899, 3899, unicode_gc_Pe },
-  { 3900, 3900, unicode_gc_Ps },
-  { 3901, 3901, unicode_gc_Pe },
-  { 3902, 3903, unicode_gc_Mc },
-  { 3904, 3952, unicode_gc_Lo },
-  { 3953, 3966, unicode_gc_Mn },
-  { 3967, 3967, unicode_gc_Mc },
-  { 3968, 3972, unicode_gc_Mn },
-  { 3973, 3973, unicode_gc_Po },
-  { 3974, 3975, unicode_gc_Mn },
-  { 3976, 3983, unicode_gc_Lo },
-  { 3984, 4029, unicode_gc_Mn },
-  { 4030, 4037, unicode_gc_So },
-  { 4038, 4038, unicode_gc_Mn },
-  { 4039, 4095, unicode_gc_So },
-  { 4096, 4139, unicode_gc_Lo },
-  { 4140, 4140, unicode_gc_Mc },
-  { 4141, 4144, unicode_gc_Mn },
-  { 4145, 4145, unicode_gc_Mc },
-  { 4146, 4151, unicode_gc_Mn },
-  { 4152, 4152, unicode_gc_Mc },
-  { 4153, 4159, unicode_gc_Mn },
-  { 4160, 4169, unicode_gc_Nd },
-  { 4170, 4175, unicode_gc_Po },
-  { 4176, 4181, unicode_gc_Lo },
-  { 4182, 4183, unicode_gc_Mc },
-  { 4184, 4255, unicode_gc_Mn },
-  { 4256, 4303, unicode_gc_Lu },
-  { 4304, 4346, unicode_gc_Lo },
-  { 4347, 4351, unicode_gc_Po },
-  { 4352, 4960, unicode_gc_Lo },
-  { 4961, 4968, unicode_gc_Po },
-  { 4969, 4977, unicode_gc_Nd },
-  { 4978, 5023, unicode_gc_No },
-  { 5024, 5740, unicode_gc_Lo },
-  { 5741, 5742, unicode_gc_Po },
-  { 5743, 5759, unicode_gc_Lo },
-  { 5760, 5760, unicode_gc_Zs },
-  { 5761, 5786, unicode_gc_Lo },
-  { 5787, 5787, unicode_gc_Ps },
-  { 5788, 5791, unicode_gc_Pe },
-  { 5792, 5866, unicode_gc_Lo },
-  { 5867, 5869, unicode_gc_Po },
-  { 5870, 5887, unicode_gc_Nl },
-  { 5888, 5905, unicode_gc_Lo },
-  { 5906, 5919, unicode_gc_Mn },
-  { 5920, 5937, unicode_gc_Lo },
-  { 5938, 5940, unicode_gc_Mn },
-  { 5941, 5951, unicode_gc_Po },
-  { 5952, 5969, unicode_gc_Lo },
-  { 5970, 5983, unicode_gc_Mn },
-  { 5984, 6001, unicode_gc_Lo },
-  { 6002, 6015, unicode_gc_Mn },
-  { 6016, 6067, unicode_gc_Lo },
-  { 6068, 6069, unicode_gc_Cf },
-  { 6070, 6070, unicode_gc_Mc },
-  { 6071, 6077, unicode_gc_Mn },
-  { 6078, 6085, unicode_gc_Mc },
-  { 6086, 6086, unicode_gc_Mn },
-  { 6087, 6088, unicode_gc_Mc },
-  { 6089, 6099, unicode_gc_Mn },
-  { 6100, 6102, unicode_gc_Po },
-  { 6103, 6103, unicode_gc_Lm },
-  { 6104, 6106, unicode_gc_Po },
-  { 6107, 6107, unicode_gc_Sc },
-  { 6108, 6108, unicode_gc_Lo },
-  { 6109, 6111, unicode_gc_Mn },
-  { 6112, 6127, unicode_gc_Nd },
-  { 6128, 6143, unicode_gc_No },
-  { 6144, 6149, unicode_gc_Po },
-  { 6150, 6150, unicode_gc_Pd },
-  { 6151, 6154, unicode_gc_Po },
-  { 6155, 6157, unicode_gc_Mn },
-  { 6158, 6159, unicode_gc_Zs },
-  { 6160, 6175, unicode_gc_Nd },
-  { 6176, 6210, unicode_gc_Lo },
-  { 6211, 6211, unicode_gc_Lm },
-  { 6212, 6312, unicode_gc_Lo },
-  { 6313, 6399, unicode_gc_Mn },
-  { 6400, 6431, unicode_gc_Lo },
-  { 6432, 6434, unicode_gc_Mn },
-  { 6435, 6438, unicode_gc_Mc },
-  { 6439, 6440, unicode_gc_Mn },
-  { 6441, 6449, unicode_gc_Mc },
-  { 6450, 6450, unicode_gc_Mn },
-  { 6451, 6456, unicode_gc_Mc },
-  { 6457, 6463, unicode_gc_Mn },
-  { 6464, 6467, unicode_gc_So },
-  { 6468, 6469, unicode_gc_Po },
-  { 6470, 6479, unicode_gc_Nd },
-  { 6480, 6623, unicode_gc_Lo },
-  { 6624, 7423, unicode_gc_So },
-  { 7424, 7467, unicode_gc_Ll },
-  { 7468, 7521, unicode_gc_Lm },
-  { 7522, 7679, unicode_gc_Ll },
-  { 7680, 7680, unicode_gc_Lu },
-  { 7681, 7681, unicode_gc_Ll },
-  { 7682, 7682, unicode_gc_Lu },
-  { 7683, 7683, unicode_gc_Ll },
-  { 7684, 7684, unicode_gc_Lu },
-  { 7685, 7685, unicode_gc_Ll },
-  { 7686, 7686, unicode_gc_Lu },
-  { 7687, 7687, unicode_gc_Ll },
-  { 7688, 7688, unicode_gc_Lu },
-  { 7689, 7689, unicode_gc_Ll },
-  { 7690, 7690, unicode_gc_Lu },
-  { 7691, 7691, unicode_gc_Ll },
-  { 7692, 7692, unicode_gc_Lu },
-  { 7693, 7693, unicode_gc_Ll },
-  { 7694, 7694, unicode_gc_Lu },
-  { 7695, 7695, unicode_gc_Ll },
-  { 7696, 7696, unicode_gc_Lu },
-  { 7697, 7697, unicode_gc_Ll },
-  { 7698, 7698, unicode_gc_Lu },
-  { 7699, 7699, unicode_gc_Ll },
-  { 7700, 7700, unicode_gc_Lu },
-  { 7701, 7701, unicode_gc_Ll },
-  { 7702, 7702, unicode_gc_Lu },
-  { 7703, 7703, unicode_gc_Ll },
-  { 7704, 7704, unicode_gc_Lu },
-  { 7705, 7705, unicode_gc_Ll },
-  { 7706, 7706, unicode_gc_Lu },
-  { 7707, 7707, unicode_gc_Ll },
-  { 7708, 7708, unicode_gc_Lu },
-  { 7709, 7709, unicode_gc_Ll },
-  { 7710, 7710, unicode_gc_Lu },
-  { 7711, 7711, unicode_gc_Ll },
-  { 7712, 7712, unicode_gc_Lu },
-  { 7713, 7713, unicode_gc_Ll },
-  { 7714, 7714, unicode_gc_Lu },
-  { 7715, 7715, unicode_gc_Ll },
-  { 7716, 7716, unicode_gc_Lu },
-  { 7717, 7717, unicode_gc_Ll },
-  { 7718, 7718, unicode_gc_Lu },
-  { 7719, 7719, unicode_gc_Ll },
-  { 7720, 7720, unicode_gc_Lu },
-  { 7721, 7721, unicode_gc_Ll },
-  { 7722, 7722, unicode_gc_Lu },
-  { 7723, 7723, unicode_gc_Ll },
-  { 7724, 7724, unicode_gc_Lu },
-  { 7725, 7725, unicode_gc_Ll },
-  { 7726, 7726, unicode_gc_Lu },
-  { 7727, 7727, unicode_gc_Ll },
-  { 7728, 7728, unicode_gc_Lu },
-  { 7729, 7729, unicode_gc_Ll },
-  { 7730, 7730, unicode_gc_Lu },
-  { 7731, 7731, unicode_gc_Ll },
-  { 7732, 7732, unicode_gc_Lu },
-  { 7733, 7733, unicode_gc_Ll },
-  { 7734, 7734, unicode_gc_Lu },
-  { 7735, 7735, unicode_gc_Ll },
-  { 7736, 7736, unicode_gc_Lu },
-  { 7737, 7737, unicode_gc_Ll },
-  { 7738, 7738, unicode_gc_Lu },
-  { 7739, 7739, unicode_gc_Ll },
-  { 7740, 7740, unicode_gc_Lu },
-  { 7741, 7741, unicode_gc_Ll },
-  { 7742, 7742, unicode_gc_Lu },
-  { 7743, 7743, unicode_gc_Ll },
-  { 7744, 7744, unicode_gc_Lu },
-  { 7745, 7745, unicode_gc_Ll },
-  { 7746, 7746, unicode_gc_Lu },
-  { 7747, 7747, unicode_gc_Ll },
-  { 7748, 7748, unicode_gc_Lu },
-  { 7749, 7749, unicode_gc_Ll },
-  { 7750, 7750, unicode_gc_Lu },
-  { 7751, 7751, unicode_gc_Ll },
-  { 7752, 7752, unicode_gc_Lu },
-  { 7753, 7753, unicode_gc_Ll },
-  { 7754, 7754, unicode_gc_Lu },
-  { 7755, 7755, unicode_gc_Ll },
-  { 7756, 7756, unicode_gc_Lu },
-  { 7757, 7757, unicode_gc_Ll },
-  { 7758, 7758, unicode_gc_Lu },
-  { 7759, 7759, unicode_gc_Ll },
-  { 7760, 7760, unicode_gc_Lu },
-  { 7761, 7761, unicode_gc_Ll },
-  { 7762, 7762, unicode_gc_Lu },
-  { 7763, 7763, unicode_gc_Ll },
-  { 7764, 7764, unicode_gc_Lu },
-  { 7765, 7765, unicode_gc_Ll },
-  { 7766, 7766, unicode_gc_Lu },
-  { 7767, 7767, unicode_gc_Ll },
-  { 7768, 7768, unicode_gc_Lu },
-  { 7769, 7769, unicode_gc_Ll },
-  { 7770, 7770, unicode_gc_Lu },
-  { 7771, 7771, unicode_gc_Ll },
-  { 7772, 7772, unicode_gc_Lu },
-  { 7773, 7773, unicode_gc_Ll },
-  { 7774, 7774, unicode_gc_Lu },
-  { 7775, 7775, unicode_gc_Ll },
-  { 7776, 7776, unicode_gc_Lu },
-  { 7777, 7777, unicode_gc_Ll },
-  { 7778, 7778, unicode_gc_Lu },
-  { 7779, 7779, unicode_gc_Ll },
-  { 7780, 7780, unicode_gc_Lu },
-  { 7781, 7781, unicode_gc_Ll },
-  { 7782, 7782, unicode_gc_Lu },
-  { 7783, 7783, unicode_gc_Ll },
-  { 7784, 7784, unicode_gc_Lu },
-  { 7785, 7785, unicode_gc_Ll },
-  { 7786, 7786, unicode_gc_Lu },
-  { 7787, 7787, unicode_gc_Ll },
-  { 7788, 7788, unicode_gc_Lu },
-  { 7789, 7789, unicode_gc_Ll },
-  { 7790, 7790, unicode_gc_Lu },
-  { 7791, 7791, unicode_gc_Ll },
-  { 7792, 7792, unicode_gc_Lu },
-  { 7793, 7793, unicode_gc_Ll },
-  { 7794, 7794, unicode_gc_Lu },
-  { 7795, 7795, unicode_gc_Ll },
-  { 7796, 7796, unicode_gc_Lu },
-  { 7797, 7797, unicode_gc_Ll },
-  { 7798, 7798, unicode_gc_Lu },
-  { 7799, 7799, unicode_gc_Ll },
-  { 7800, 7800, unicode_gc_Lu },
-  { 7801, 7801, unicode_gc_Ll },
-  { 7802, 7802, unicode_gc_Lu },
-  { 7803, 7803, unicode_gc_Ll },
-  { 7804, 7804, unicode_gc_Lu },
-  { 7805, 7805, unicode_gc_Ll },
-  { 7806, 7806, unicode_gc_Lu },
-  { 7807, 7807, unicode_gc_Ll },
-  { 7808, 7808, unicode_gc_Lu },
-  { 7809, 7809, unicode_gc_Ll },
-  { 7810, 7810, unicode_gc_Lu },
-  { 7811, 7811, unicode_gc_Ll },
-  { 7812, 7812, unicode_gc_Lu },
-  { 7813, 7813, unicode_gc_Ll },
-  { 7814, 7814, unicode_gc_Lu },
-  { 7815, 7815, unicode_gc_Ll },
-  { 7816, 7816, unicode_gc_Lu },
-  { 7817, 7817, unicode_gc_Ll },
-  { 7818, 7818, unicode_gc_Lu },
-  { 7819, 7819, unicode_gc_Ll },
-  { 7820, 7820, unicode_gc_Lu },
-  { 7821, 7821, unicode_gc_Ll },
-  { 7822, 7822, unicode_gc_Lu },
-  { 7823, 7823, unicode_gc_Ll },
-  { 7824, 7824, unicode_gc_Lu },
-  { 7825, 7825, unicode_gc_Ll },
-  { 7826, 7826, unicode_gc_Lu },
-  { 7827, 7827, unicode_gc_Ll },
-  { 7828, 7828, unicode_gc_Lu },
-  { 7829, 7839, unicode_gc_Ll },
-  { 7840, 7840, unicode_gc_Lu },
-  { 7841, 7841, unicode_gc_Ll },
-  { 7842, 7842, unicode_gc_Lu },
-  { 7843, 7843, unicode_gc_Ll },
-  { 7844, 7844, unicode_gc_Lu },
-  { 7845, 7845, unicode_gc_Ll },
-  { 7846, 7846, unicode_gc_Lu },
-  { 7847, 7847, unicode_gc_Ll },
-  { 7848, 7848, unicode_gc_Lu },
-  { 7849, 7849, unicode_gc_Ll },
-  { 7850, 7850, unicode_gc_Lu },
-  { 7851, 7851, unicode_gc_Ll },
-  { 7852, 7852, unicode_gc_Lu },
-  { 7853, 7853, unicode_gc_Ll },
-  { 7854, 7854, unicode_gc_Lu },
-  { 7855, 7855, unicode_gc_Ll },
-  { 7856, 7856, unicode_gc_Lu },
-  { 7857, 7857, unicode_gc_Ll },
-  { 7858, 7858, unicode_gc_Lu },
-  { 7859, 7859, unicode_gc_Ll },
-  { 7860, 7860, unicode_gc_Lu },
-  { 7861, 7861, unicode_gc_Ll },
-  { 7862, 7862, unicode_gc_Lu },
-  { 7863, 7863, unicode_gc_Ll },
-  { 7864, 7864, unicode_gc_Lu },
-  { 7865, 7865, unicode_gc_Ll },
-  { 7866, 7866, unicode_gc_Lu },
-  { 7867, 7867, unicode_gc_Ll },
-  { 7868, 7868, unicode_gc_Lu },
-  { 7869, 7869, unicode_gc_Ll },
-  { 7870, 7870, unicode_gc_Lu },
-  { 7871, 7871, unicode_gc_Ll },
-  { 7872, 7872, unicode_gc_Lu },
-  { 7873, 7873, unicode_gc_Ll },
-  { 7874, 7874, unicode_gc_Lu },
-  { 7875, 7875, unicode_gc_Ll },
-  { 7876, 7876, unicode_gc_Lu },
-  { 7877, 7877, unicode_gc_Ll },
-  { 7878, 7878, unicode_gc_Lu },
-  { 7879, 7879, unicode_gc_Ll },
-  { 7880, 7880, unicode_gc_Lu },
-  { 7881, 7881, unicode_gc_Ll },
-  { 7882, 7882, unicode_gc_Lu },
-  { 7883, 7883, unicode_gc_Ll },
-  { 7884, 7884, unicode_gc_Lu },
-  { 7885, 7885, unicode_gc_Ll },
-  { 7886, 7886, unicode_gc_Lu },
-  { 7887, 7887, unicode_gc_Ll },
-  { 7888, 7888, unicode_gc_Lu },
-  { 7889, 7889, unicode_gc_Ll },
-  { 7890, 7890, unicode_gc_Lu },
-  { 7891, 7891, unicode_gc_Ll },
-  { 7892, 7892, unicode_gc_Lu },
-  { 7893, 7893, unicode_gc_Ll },
-  { 7894, 7894, unicode_gc_Lu },
-  { 7895, 7895, unicode_gc_Ll },
-  { 7896, 7896, unicode_gc_Lu },
-  { 7897, 7897, unicode_gc_Ll },
-  { 7898, 7898, unicode_gc_Lu },
-  { 7899, 7899, unicode_gc_Ll },
-  { 7900, 7900, unicode_gc_Lu },
-  { 7901, 7901, unicode_gc_Ll },
-  { 7902, 7902, unicode_gc_Lu },
-  { 7903, 7903, unicode_gc_Ll },
-  { 7904, 7904, unicode_gc_Lu },
-  { 7905, 7905, unicode_gc_Ll },
-  { 7906, 7906, unicode_gc_Lu },
-  { 7907, 7907, unicode_gc_Ll },
-  { 7908, 7908, unicode_gc_Lu },
-  { 7909, 7909, unicode_gc_Ll },
-  { 7910, 7910, unicode_gc_Lu },
-  { 7911, 7911, unicode_gc_Ll },
-  { 7912, 7912, unicode_gc_Lu },
-  { 7913, 7913, unicode_gc_Ll },
-  { 7914, 7914, unicode_gc_Lu },
-  { 7915, 7915, unicode_gc_Ll },
-  { 7916, 7916, unicode_gc_Lu },
-  { 7917, 7917, unicode_gc_Ll },
-  { 7918, 7918, unicode_gc_Lu },
-  { 7919, 7919, unicode_gc_Ll },
-  { 7920, 7920, unicode_gc_Lu },
-  { 7921, 7921, unicode_gc_Ll },
-  { 7922, 7922, unicode_gc_Lu },
-  { 7923, 7923, unicode_gc_Ll },
-  { 7924, 7924, unicode_gc_Lu },
-  { 7925, 7925, unicode_gc_Ll },
-  { 7926, 7926, unicode_gc_Lu },
-  { 7927, 7927, unicode_gc_Ll },
-  { 7928, 7928, unicode_gc_Lu },
-  { 7929, 7943, unicode_gc_Ll },
-  { 7944, 7951, unicode_gc_Lu },
-  { 7952, 7959, unicode_gc_Ll },
-  { 7960, 7967, unicode_gc_Lu },
-  { 7968, 7975, unicode_gc_Ll },
-  { 7976, 7983, unicode_gc_Lu },
-  { 7984, 7991, unicode_gc_Ll },
-  { 7992, 7999, unicode_gc_Lu },
-  { 8000, 8007, unicode_gc_Ll },
-  { 8008, 8015, unicode_gc_Lu },
-  { 8016, 8024, unicode_gc_Ll },
-  { 8025, 8031, unicode_gc_Lu },
-  { 8032, 8039, unicode_gc_Ll },
-  { 8040, 8047, unicode_gc_Lu },
-  { 8048, 8071, unicode_gc_Ll },
-  { 8072, 8079, unicode_gc_Lt },
-  { 8080, 8087, unicode_gc_Ll },
-  { 8088, 8095, unicode_gc_Lt },
-  { 8096, 8103, unicode_gc_Ll },
-  { 8104, 8111, unicode_gc_Lt },
-  { 8112, 8119, unicode_gc_Ll },
-  { 8120, 8123, unicode_gc_Lu },
-  { 8124, 8124, unicode_gc_Lt },
-  { 8125, 8125, unicode_gc_Sk },
-  { 8126, 8126, unicode_gc_Ll },
-  { 8127, 8129, unicode_gc_Sk },
-  { 8130, 8135, unicode_gc_Ll },
-  { 8136, 8139, unicode_gc_Lu },
-  { 8140, 8140, unicode_gc_Lt },
-  { 8141, 8143, unicode_gc_Sk },
-  { 8144, 8151, unicode_gc_Ll },
-  { 8152, 8156, unicode_gc_Lu },
-  { 8157, 8159, unicode_gc_Sk },
-  { 8160, 8167, unicode_gc_Ll },
-  { 8168, 8172, unicode_gc_Lu },
-  { 8173, 8177, unicode_gc_Sk },
-  { 8178, 8183, unicode_gc_Ll },
-  { 8184, 8187, unicode_gc_Lu },
-  { 8188, 8188, unicode_gc_Lt },
-  { 8189, 8191, unicode_gc_Sk },
-  { 8192, 8203, unicode_gc_Zs },
-  { 8204, 8207, unicode_gc_Cf },
-  { 8208, 8213, unicode_gc_Pd },
-  { 8214, 8215, unicode_gc_Po },
-  { 8216, 8216, unicode_gc_Pi },
-  { 8217, 8217, unicode_gc_Pf },
-  { 8218, 8218, unicode_gc_Ps },
-  { 8219, 8220, unicode_gc_Pi },
-  { 8221, 8221, unicode_gc_Pf },
-  { 8222, 8222, unicode_gc_Ps },
-  { 8223, 8223, unicode_gc_Pi },
-  { 8224, 8231, unicode_gc_Po },
-  { 8232, 8232, unicode_gc_Zl },
-  { 8233, 8233, unicode_gc_Zp },
-  { 8234, 8238, unicode_gc_Cf },
-  { 8239, 8239, unicode_gc_Zs },
-  { 8240, 8248, unicode_gc_Po },
-  { 8249, 8249, unicode_gc_Pi },
-  { 8250, 8250, unicode_gc_Pf },
-  { 8251, 8254, unicode_gc_Po },
-  { 8255, 8256, unicode_gc_Pc },
-  { 8257, 8259, unicode_gc_Po },
-  { 8260, 8260, unicode_gc_Sm },
-  { 8261, 8261, unicode_gc_Ps },
-  { 8262, 8262, unicode_gc_Pe },
-  { 8263, 8273, unicode_gc_Po },
-  { 8274, 8274, unicode_gc_Sm },
-  { 8275, 8275, unicode_gc_Po },
-  { 8276, 8278, unicode_gc_Pc },
-  { 8279, 8286, unicode_gc_Po },
-  { 8287, 8287, unicode_gc_Zs },
-  { 8288, 8303, unicode_gc_Cf },
-  { 8304, 8304, unicode_gc_No },
-  { 8305, 8307, unicode_gc_Ll },
-  { 8308, 8313, unicode_gc_No },
-  { 8314, 8316, unicode_gc_Sm },
-  { 8317, 8317, unicode_gc_Ps },
-  { 8318, 8318, unicode_gc_Pe },
-  { 8319, 8319, unicode_gc_Ll },
-  { 8320, 8329, unicode_gc_No },
-  { 8330, 8332, unicode_gc_Sm },
-  { 8333, 8333, unicode_gc_Ps },
-  { 8334, 8351, unicode_gc_Pe },
-  { 8352, 8399, unicode_gc_Sc },
-  { 8400, 8412, unicode_gc_Mn },
-  { 8413, 8416, unicode_gc_Me },
-  { 8417, 8417, unicode_gc_Mn },
-  { 8418, 8420, unicode_gc_Me },
-  { 8421, 8447, unicode_gc_Mn },
-  { 8448, 8449, unicode_gc_So },
-  { 8450, 8450, unicode_gc_Lu },
-  { 8451, 8454, unicode_gc_So },
-  { 8455, 8455, unicode_gc_Lu },
-  { 8456, 8457, unicode_gc_So },
-  { 8458, 8458, unicode_gc_Ll },
-  { 8459, 8461, unicode_gc_Lu },
-  { 8462, 8463, unicode_gc_Ll },
-  { 8464, 8466, unicode_gc_Lu },
-  { 8467, 8467, unicode_gc_Ll },
-  { 8468, 8468, unicode_gc_So },
-  { 8469, 8469, unicode_gc_Lu },
-  { 8470, 8472, unicode_gc_So },
-  { 8473, 8477, unicode_gc_Lu },
-  { 8478, 8483, unicode_gc_So },
-  { 8484, 8484, unicode_gc_Lu },
-  { 8485, 8485, unicode_gc_So },
-  { 8486, 8486, unicode_gc_Lu },
-  { 8487, 8487, unicode_gc_So },
-  { 8488, 8488, unicode_gc_Lu },
-  { 8489, 8489, unicode_gc_So },
-  { 8490, 8493, unicode_gc_Lu },
-  { 8494, 8494, unicode_gc_So },
-  { 8495, 8495, unicode_gc_Ll },
-  { 8496, 8497, unicode_gc_Lu },
-  { 8498, 8498, unicode_gc_So },
-  { 8499, 8499, unicode_gc_Lu },
-  { 8500, 8500, unicode_gc_Ll },
-  { 8501, 8504, unicode_gc_Lo },
-  { 8505, 8505, unicode_gc_Ll },
-  { 8506, 8508, unicode_gc_So },
-  { 8509, 8509, unicode_gc_Ll },
-  { 8510, 8511, unicode_gc_Lu },
-  { 8512, 8516, unicode_gc_Sm },
-  { 8517, 8517, unicode_gc_Lu },
-  { 8518, 8521, unicode_gc_Ll },
-  { 8522, 8522, unicode_gc_So },
-  { 8523, 8530, unicode_gc_Sm },
-  { 8531, 8543, unicode_gc_No },
-  { 8544, 8591, unicode_gc_Nl },
-  { 8592, 8596, unicode_gc_Sm },
-  { 8597, 8601, unicode_gc_So },
-  { 8602, 8603, unicode_gc_Sm },
-  { 8604, 8607, unicode_gc_So },
-  { 8608, 8608, unicode_gc_Sm },
-  { 8609, 8610, unicode_gc_So },
-  { 8611, 8611, unicode_gc_Sm },
-  { 8612, 8613, unicode_gc_So },
-  { 8614, 8614, unicode_gc_Sm },
-  { 8615, 8621, unicode_gc_So },
-  { 8622, 8622, unicode_gc_Sm },
-  { 8623, 8653, unicode_gc_So },
-  { 8654, 8655, unicode_gc_Sm },
-  { 8656, 8657, unicode_gc_So },
-  { 8658, 8658, unicode_gc_Sm },
-  { 8659, 8659, unicode_gc_So },
-  { 8660, 8660, unicode_gc_Sm },
-  { 8661, 8691, unicode_gc_So },
-  { 8692, 8959, unicode_gc_Sm },
-  { 8960, 8967, unicode_gc_So },
-  { 8968, 8971, unicode_gc_Sm },
-  { 8972, 8991, unicode_gc_So },
-  { 8992, 8993, unicode_gc_Sm },
-  { 8994, 9000, unicode_gc_So },
-  { 9001, 9001, unicode_gc_Ps },
-  { 9002, 9002, unicode_gc_Pe },
-  { 9003, 9083, unicode_gc_So },
-  { 9084, 9084, unicode_gc_Sm },
-  { 9085, 9114, unicode_gc_So },
-  { 9115, 9139, unicode_gc_Sm },
-  { 9140, 9140, unicode_gc_Ps },
-  { 9141, 9141, unicode_gc_Pe },
-  { 9142, 9142, unicode_gc_Po },
-  { 9143, 9311, unicode_gc_So },
-  { 9312, 9371, unicode_gc_No },
-  { 9372, 9449, unicode_gc_So },
-  { 9450, 9471, unicode_gc_No },
-  { 9472, 9654, unicode_gc_So },
-  { 9655, 9655, unicode_gc_Sm },
-  { 9656, 9664, unicode_gc_So },
-  { 9665, 9665, unicode_gc_Sm },
-  { 9666, 9719, unicode_gc_So },
-  { 9720, 9727, unicode_gc_Sm },
-  { 9728, 9838, unicode_gc_So },
-  { 9839, 9839, unicode_gc_Sm },
-  { 9840, 10087, unicode_gc_So },
-  { 10088, 10088, unicode_gc_Ps },
-  { 10089, 10089, unicode_gc_Pe },
-  { 10090, 10090, unicode_gc_Ps },
-  { 10091, 10091, unicode_gc_Pe },
-  { 10092, 10092, unicode_gc_Ps },
-  { 10093, 10093, unicode_gc_Pe },
-  { 10094, 10094, unicode_gc_Ps },
-  { 10095, 10095, unicode_gc_Pe },
-  { 10096, 10096, unicode_gc_Ps },
-  { 10097, 10097, unicode_gc_Pe },
-  { 10098, 10098, unicode_gc_Ps },
-  { 10099, 10099, unicode_gc_Pe },
-  { 10100, 10100, unicode_gc_Ps },
-  { 10101, 10101, unicode_gc_Pe },
-  { 10102, 10131, unicode_gc_No },
-  { 10132, 10191, unicode_gc_So },
-  { 10192, 10213, unicode_gc_Sm },
-  { 10214, 10214, unicode_gc_Ps },
-  { 10215, 10215, unicode_gc_Pe },
-  { 10216, 10216, unicode_gc_Ps },
-  { 10217, 10217, unicode_gc_Pe },
-  { 10218, 10218, unicode_gc_Ps },
-  { 10219, 10223, unicode_gc_Pe },
-  { 10224, 10239, unicode_gc_Sm },
-  { 10240, 10495, unicode_gc_So },
-  { 10496, 10626, unicode_gc_Sm },
-  { 10627, 10627, unicode_gc_Ps },
-  { 10628, 10628, unicode_gc_Pe },
-  { 10629, 10629, unicode_gc_Ps },
-  { 10630, 10630, unicode_gc_Pe },
-  { 10631, 10631, unicode_gc_Ps },
-  { 10632, 10632, unicode_gc_Pe },
-  { 10633, 10633, unicode_gc_Ps },
-  { 10634, 10634, unicode_gc_Pe },
-  { 10635, 10635, unicode_gc_Ps },
-  { 10636, 10636, unicode_gc_Pe },
-  { 10637, 10637, unicode_gc_Ps },
-  { 10638, 10638, unicode_gc_Pe },
-  { 10639, 10639, unicode_gc_Ps },
-  { 10640, 10640, unicode_gc_Pe },
-  { 10641, 10641, unicode_gc_Ps },
-  { 10642, 10642, unicode_gc_Pe },
-  { 10643, 10643, unicode_gc_Ps },
-  { 10644, 10644, unicode_gc_Pe },
-  { 10645, 10645, unicode_gc_Ps },
-  { 10646, 10646, unicode_gc_Pe },
-  { 10647, 10647, unicode_gc_Ps },
-  { 10648, 10648, unicode_gc_Pe },
-  { 10649, 10711, unicode_gc_Sm },
-  { 10712, 10712, unicode_gc_Ps },
-  { 10713, 10713, unicode_gc_Pe },
-  { 10714, 10714, unicode_gc_Ps },
-  { 10715, 10715, unicode_gc_Pe },
-  { 10716, 10747, unicode_gc_Sm },
-  { 10748, 10748, unicode_gc_Ps },
-  { 10749, 10749, unicode_gc_Pe },
-  { 10750, 11007, unicode_gc_Sm },
-  { 11008, 12287, unicode_gc_So },
-  { 12288, 12288, unicode_gc_Zs },
-  { 12289, 12291, unicode_gc_Po },
-  { 12292, 12292, unicode_gc_So },
-  { 12293, 12293, unicode_gc_Lm },
-  { 12294, 12294, unicode_gc_Lo },
-  { 12295, 12295, unicode_gc_Nl },
-  { 12296, 12296, unicode_gc_Ps },
-  { 12297, 12297, unicode_gc_Pe },
-  { 12298, 12298, unicode_gc_Ps },
-  { 12299, 12299, unicode_gc_Pe },
-  { 12300, 12300, unicode_gc_Ps },
-  { 12301, 12301, unicode_gc_Pe },
-  { 12302, 12302, unicode_gc_Ps },
-  { 12303, 12303, unicode_gc_Pe },
-  { 12304, 12304, unicode_gc_Ps },
-  { 12305, 12305, unicode_gc_Pe },
-  { 12306, 12307, unicode_gc_So },
-  { 12308, 12308, unicode_gc_Ps },
-  { 12309, 12309, unicode_gc_Pe },
-  { 12310, 12310, unicode_gc_Ps },
-  { 12311, 12311, unicode_gc_Pe },
-  { 12312, 12312, unicode_gc_Ps },
-  { 12313, 12313, unicode_gc_Pe },
-  { 12314, 12314, unicode_gc_Ps },
-  { 12315, 12315, unicode_gc_Pe },
-  { 12316, 12316, unicode_gc_Pd },
-  { 12317, 12317, unicode_gc_Ps },
-  { 12318, 12319, unicode_gc_Pe },
-  { 12320, 12320, unicode_gc_So },
-  { 12321, 12329, unicode_gc_Nl },
-  { 12330, 12335, unicode_gc_Mn },
-  { 12336, 12336, unicode_gc_Pd },
-  { 12337, 12341, unicode_gc_Lm },
-  { 12342, 12343, unicode_gc_So },
-  { 12344, 12346, unicode_gc_Nl },
-  { 12347, 12347, unicode_gc_Lm },
-  { 12348, 12348, unicode_gc_Lo },
-  { 12349, 12349, unicode_gc_Po },
-  { 12350, 12352, unicode_gc_So },
-  { 12353, 12440, unicode_gc_Lo },
-  { 12441, 12442, unicode_gc_Mn },
-  { 12443, 12444, unicode_gc_Sk },
-  { 12445, 12446, unicode_gc_Lm },
-  { 12447, 12447, unicode_gc_Lo },
-  { 12448, 12448, unicode_gc_Pd },
-  { 12449, 12538, unicode_gc_Lo },
-  { 12539, 12539, unicode_gc_Pc },
-  { 12540, 12542, unicode_gc_Lm },
-  { 12543, 12687, unicode_gc_Lo },
-  { 12688, 12689, unicode_gc_So },
-  { 12690, 12693, unicode_gc_No },
-  { 12694, 12703, unicode_gc_So },
-  { 12704, 12799, unicode_gc_Lo },
-  { 12800, 12831, unicode_gc_So },
-  { 12832, 12841, unicode_gc_No },
-  { 12842, 12880, unicode_gc_So },
-  { 12881, 12895, unicode_gc_No },
-  { 12896, 12927, unicode_gc_So },
-  { 12928, 12937, unicode_gc_No },
-  { 12938, 12976, unicode_gc_So },
-  { 12977, 12991, unicode_gc_No },
-  { 12992, 13311, unicode_gc_So },
-  { 13312, 19903, unicode_gc_Lo },
-  { 19904, 19967, unicode_gc_So },
-  { 19968, 42127, unicode_gc_Lo },
-  { 42128, 44031, unicode_gc_So },
-  { 44032, 55295, unicode_gc_Lo },
-  { 55296, 57343, unicode_gc_Cs },
-  { 57344, 63743, unicode_gc_Co },
-  { 63744, 64255, unicode_gc_Lo },
-  { 64256, 64284, unicode_gc_Ll },
-  { 64285, 64285, unicode_gc_Lo },
-  { 64286, 64286, unicode_gc_Mn },
-  { 64287, 64296, unicode_gc_Lo },
-  { 64297, 64297, unicode_gc_Sm },
-  { 64298, 64829, unicode_gc_Lo },
-  { 64830, 64830, unicode_gc_Ps },
-  { 64831, 64847, unicode_gc_Pe },
-  { 64848, 65019, unicode_gc_Lo },
-  { 65020, 65020, unicode_gc_Sc },
-  { 65021, 65023, unicode_gc_So },
-  { 65024, 65071, unicode_gc_Mn },
-  { 65072, 65072, unicode_gc_Po },
-  { 65073, 65074, unicode_gc_Pd },
-  { 65075, 65076, unicode_gc_Pc },
-  { 65077, 65077, unicode_gc_Ps },
-  { 65078, 65078, unicode_gc_Pe },
-  { 65079, 65079, unicode_gc_Ps },
-  { 65080, 65080, unicode_gc_Pe },
-  { 65081, 65081, unicode_gc_Ps },
-  { 65082, 65082, unicode_gc_Pe },
-  { 65083, 65083, unicode_gc_Ps },
-  { 65084, 65084, unicode_gc_Pe },
-  { 65085, 65085, unicode_gc_Ps },
-  { 65086, 65086, unicode_gc_Pe },
-  { 65087, 65087, unicode_gc_Ps },
-  { 65088, 65088, unicode_gc_Pe },
-  { 65089, 65089, unicode_gc_Ps },
-  { 65090, 65090, unicode_gc_Pe },
-  { 65091, 65091, unicode_gc_Ps },
-  { 65092, 65092, unicode_gc_Pe },
-  { 65093, 65094, unicode_gc_Po },
-  { 65095, 65095, unicode_gc_Ps },
-  { 65096, 65096, unicode_gc_Pe },
-  { 65097, 65100, unicode_gc_Po },
-  { 65101, 65103, unicode_gc_Pc },
-  { 65104, 65111, unicode_gc_Po },
-  { 65112, 65112, unicode_gc_Pd },
-  { 65113, 65113, unicode_gc_Ps },
-  { 65114, 65114, unicode_gc_Pe },
-  { 65115, 65115, unicode_gc_Ps },
-  { 65116, 65116, unicode_gc_Pe },
-  { 65117, 65117, unicode_gc_Ps },
-  { 65118, 65118, unicode_gc_Pe },
-  { 65119, 65121, unicode_gc_Po },
-  { 65122, 65122, unicode_gc_Sm },
-  { 65123, 65123, unicode_gc_Pd },
-  { 65124, 65127, unicode_gc_Sm },
-  { 65128, 65128, unicode_gc_Po },
-  { 65129, 65129, unicode_gc_Sc },
-  { 65130, 65135, unicode_gc_Po },
-  { 65136, 65278, unicode_gc_Lo },
-  { 65279, 65280, unicode_gc_Cf },
-  { 65281, 65283, unicode_gc_Po },
-  { 65284, 65284, unicode_gc_Sc },
-  { 65285, 65287, unicode_gc_Po },
-  { 65288, 65288, unicode_gc_Ps },
-  { 65289, 65289, unicode_gc_Pe },
-  { 65290, 65290, unicode_gc_Po },
-  { 65291, 65291, unicode_gc_Sm },
-  { 65292, 65292, unicode_gc_Po },
-  { 65293, 65293, unicode_gc_Pd },
-  { 65294, 65295, unicode_gc_Po },
-  { 65296, 65305, unicode_gc_Nd },
-  { 65306, 65307, unicode_gc_Po },
-  { 65308, 65310, unicode_gc_Sm },
-  { 65311, 65312, unicode_gc_Po },
-  { 65313, 65338, unicode_gc_Lu },
-  { 65339, 65339, unicode_gc_Ps },
-  { 65340, 65340, unicode_gc_Po },
-  { 65341, 65341, unicode_gc_Pe },
-  { 65342, 65342, unicode_gc_Sk },
-  { 65343, 65343, unicode_gc_Pc },
-  { 65344, 65344, unicode_gc_Sk },
-  { 65345, 65370, unicode_gc_Ll },
-  { 65371, 65371, unicode_gc_Ps },
-  { 65372, 65372, unicode_gc_Sm },
-  { 65373, 65373, unicode_gc_Pe },
-  { 65374, 65374, unicode_gc_Sm },
-  { 65375, 65375, unicode_gc_Ps },
-  { 65376, 65376, unicode_gc_Pe },
-  { 65377, 65377, unicode_gc_Po },
-  { 65378, 65378, unicode_gc_Ps },
-  { 65379, 65379, unicode_gc_Pe },
-  { 65380, 65380, unicode_gc_Po },
-  { 65381, 65381, unicode_gc_Pc },
-  { 65382, 65391, unicode_gc_Lo },
-  { 65392, 65392, unicode_gc_Lm },
-  { 65393, 65437, unicode_gc_Lo },
-  { 65438, 65439, unicode_gc_Lm },
-  { 65440, 65503, unicode_gc_Lo },
-  { 65504, 65505, unicode_gc_Sc },
-  { 65506, 65506, unicode_gc_Sm },
-  { 65507, 65507, unicode_gc_Sk },
-  { 65508, 65508, unicode_gc_So },
-  { 65509, 65511, unicode_gc_Sc },
-  { 65512, 65512, unicode_gc_So },
-  { 65513, 65516, unicode_gc_Sm },
-  { 65517, 65528, unicode_gc_So },
-  { 65529, 65531, unicode_gc_Cf },
-  { 65532, 65535, unicode_gc_So },
-  { 65536, 65791, unicode_gc_Lo },
-  { 65792, 65793, unicode_gc_Po },
-  { 65794, 65798, unicode_gc_So },
-  { 65799, 65846, unicode_gc_No },
-  { 65847, 66303, unicode_gc_So },
-  { 66304, 66335, unicode_gc_Lo },
-  { 66336, 66351, unicode_gc_No },
-  { 66352, 66377, unicode_gc_Lo },
-  { 66378, 66431, unicode_gc_Nl },
-  { 66432, 66462, unicode_gc_Lo },
-  { 66463, 66559, unicode_gc_Po },
-  { 66560, 66599, unicode_gc_Lu },
-  { 66600, 66639, unicode_gc_Ll },
-  { 66640, 66719, unicode_gc_Lo },
-  { 66720, 67583, unicode_gc_Nd },
-  { 67584, 118783, unicode_gc_Lo },
-  { 118784, 119140, unicode_gc_So },
-  { 119141, 119142, unicode_gc_Mc },
-  { 119143, 119145, unicode_gc_Mn },
-  { 119146, 119148, unicode_gc_So },
-  { 119149, 119154, unicode_gc_Mc },
-  { 119155, 119162, unicode_gc_Cf },
-  { 119163, 119170, unicode_gc_Mn },
-  { 119171, 119172, unicode_gc_So },
-  { 119173, 119179, unicode_gc_Mn },
-  { 119180, 119209, unicode_gc_So },
-  { 119210, 119213, unicode_gc_Mn },
-  { 119214, 119807, unicode_gc_So },
-  { 119808, 119833, unicode_gc_Lu },
-  { 119834, 119859, unicode_gc_Ll },
-  { 119860, 119885, unicode_gc_Lu },
-  { 119886, 119911, unicode_gc_Ll },
-  { 119912, 119937, unicode_gc_Lu },
-  { 119938, 119963, unicode_gc_Ll },
-  { 119964, 119989, unicode_gc_Lu },
-  { 119990, 120015, unicode_gc_Ll },
-  { 120016, 120041, unicode_gc_Lu },
-  { 120042, 120067, unicode_gc_Ll },
-  { 120068, 120093, unicode_gc_Lu },
-  { 120094, 120119, unicode_gc_Ll },
-  { 120120, 120145, unicode_gc_Lu },
-  { 120146, 120171, unicode_gc_Ll },
-  { 120172, 120197, unicode_gc_Lu },
-  { 120198, 120223, unicode_gc_Ll },
-  { 120224, 120249, unicode_gc_Lu },
-  { 120250, 120275, unicode_gc_Ll },
-  { 120276, 120301, unicode_gc_Lu },
-  { 120302, 120327, unicode_gc_Ll },
-  { 120328, 120353, unicode_gc_Lu },
-  { 120354, 120379, unicode_gc_Ll },
-  { 120380, 120405, unicode_gc_Lu },
-  { 120406, 120431, unicode_gc_Ll },
-  { 120432, 120457, unicode_gc_Lu },
-  { 120458, 120487, unicode_gc_Ll },
-  { 120488, 120512, unicode_gc_Lu },
-  { 120513, 120513, unicode_gc_Sm },
-  { 120514, 120538, unicode_gc_Ll },
-  { 120539, 120539, unicode_gc_Sm },
-  { 120540, 120545, unicode_gc_Ll },
-  { 120546, 120570, unicode_gc_Lu },
-  { 120571, 120571, unicode_gc_Sm },
-  { 120572, 120596, unicode_gc_Ll },
-  { 120597, 120597, unicode_gc_Sm },
-  { 120598, 120603, unicode_gc_Ll },
-  { 120604, 120628, unicode_gc_Lu },
-  { 120629, 120629, unicode_gc_Sm },
-  { 120630, 120654, unicode_gc_Ll },
-  { 120655, 120655, unicode_gc_Sm },
-  { 120656, 120661, unicode_gc_Ll },
-  { 120662, 120686, unicode_gc_Lu },
-  { 120687, 120687, unicode_gc_Sm },
-  { 120688, 120712, unicode_gc_Ll },
-  { 120713, 120713, unicode_gc_Sm },
-  { 120714, 120719, unicode_gc_Ll },
-  { 120720, 120744, unicode_gc_Lu },
-  { 120745, 120745, unicode_gc_Sm },
-  { 120746, 120770, unicode_gc_Ll },
-  { 120771, 120771, unicode_gc_Sm },
-  { 120772, 120781, unicode_gc_Ll },
-  { 120782, 131071, unicode_gc_Nd },
-  { 131072, 917504, unicode_gc_Lo },
-  { 917505, 917759, unicode_gc_Cf },
-  { 917760, 983039, unicode_gc_Mn },
-  { 983040, 1114109, unicode_gc_Co },
-};
diff --git a/lib/unidata.c b/lib/unidata.c
new file mode 100644 (file)
index 0000000..ec4693d
--- /dev/null
@@ -0,0 +1,19858 @@
+#include "unidata.h"
+static const struct unidata subtable0[] = {
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Pc, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Cc, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Pi, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 743, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Pf, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, 121, 0 }
+};
+static const struct unidata subtable1[] = {
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, -199 },
+  { unicode_gc_Ll, 0, -232, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, -121 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, -300, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 210 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 206 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 205 },
+  { unicode_gc_Lu, 0, 0, 205 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 79 },
+  { unicode_gc_Lu, 0, 0, 202 },
+  { unicode_gc_Lu, 0, 0, 203 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 205 },
+  { unicode_gc_Lu, 0, 0, 207 },
+  { unicode_gc_Ll, 0, 97, 0 },
+  { unicode_gc_Lu, 0, 0, 211 },
+  { unicode_gc_Lu, 0, 0, 209 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 211 },
+  { unicode_gc_Lu, 0, 0, 213 },
+  { unicode_gc_Ll, 0, 130, 0 },
+  { unicode_gc_Lu, 0, 0, 214 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 218 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 218 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 218 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 217 },
+  { unicode_gc_Lu, 0, 0, 217 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 219 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 56, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 2 },
+  { unicode_gc_Lt, 0, -1, 1 },
+  { unicode_gc_Ll, 0, -2, 0 },
+  { unicode_gc_Lu, 0, 0, 2 },
+  { unicode_gc_Lt, 0, -1, 1 },
+  { unicode_gc_Ll, 0, -2, 0 },
+  { unicode_gc_Lu, 0, 0, 2 },
+  { unicode_gc_Lt, 0, -1, 1 },
+  { unicode_gc_Ll, 0, -2, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, -79, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 2 },
+  { unicode_gc_Lt, 0, -1, 1 },
+  { unicode_gc_Ll, 0, -2, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, -97 },
+  { unicode_gc_Lu, 0, 0, -56 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 }
+};
+static const struct unidata subtable2[] = {
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, -130 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -210, 0 },
+  { unicode_gc_Ll, 0, -206, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -205, 0 },
+  { unicode_gc_Ll, 0, -205, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -202, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -203, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -205, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -207, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -209, 0 },
+  { unicode_gc_Ll, 0, -211, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -211, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -213, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -214, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -218, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -218, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -218, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -217, 0 },
+  { unicode_gc_Ll, 0, -217, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -219, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 }
+};
+static const struct unidata subtable3[] = {
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 232, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 232, 0, 0 },
+  { unicode_gc_Mn, 216, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 202, 0, 0 },
+  { unicode_gc_Mn, 202, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 202, 0, 0 },
+  { unicode_gc_Mn, 202, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 240, 84, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 234, 0, 0 },
+  { unicode_gc_Mn, 234, 0, 0 },
+  { unicode_gc_Mn, 233, 0, 0 },
+  { unicode_gc_Mn, 234, 0, 0 },
+  { unicode_gc_Mn, 234, 0, 0 },
+  { unicode_gc_Mn, 233, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 38 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 37 },
+  { unicode_gc_Lu, 0, 0, 37 },
+  { unicode_gc_Lu, 0, 0, 37 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 64 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 63 },
+  { unicode_gc_Lu, 0, 0, 63 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Ll, 0, -38, 0 },
+  { unicode_gc_Ll, 0, -37, 0 },
+  { unicode_gc_Ll, 0, -37, 0 },
+  { unicode_gc_Ll, 0, -37, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -31, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -64, 0 },
+  { unicode_gc_Ll, 0, -63, 0 },
+  { unicode_gc_Ll, 0, -63, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -62, 0 },
+  { unicode_gc_Ll, 0, -57, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -47, 0 },
+  { unicode_gc_Ll, 0, -54, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, -86, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, 7, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -60 },
+  { unicode_gc_Ll, 0, -96, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, -7 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable4[] = {
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 80 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Lu, 0, 0, 32 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -32, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Ll, 0, -80, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable5[] = {
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Lu, 0, 0, 48 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, -48, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 222, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 222, 0, 0 },
+  { unicode_gc_Mn, 228, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 10, 0, 0 },
+  { unicode_gc_Mn, 11, 0, 0 },
+  { unicode_gc_Mn, 12, 0, 0 },
+  { unicode_gc_Mn, 13, 0, 0 },
+  { unicode_gc_Mn, 14, 0, 0 },
+  { unicode_gc_Mn, 15, 0, 0 },
+  { unicode_gc_Mn, 16, 0, 0 },
+  { unicode_gc_Mn, 17, 0, 0 },
+  { unicode_gc_Mn, 18, 0, 0 },
+  { unicode_gc_Mn, 19, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 20, 0, 0 },
+  { unicode_gc_Mn, 21, 0, 0 },
+  { unicode_gc_Mn, 22, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Mn, 23, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Mn, 24, 0, 0 },
+  { unicode_gc_Mn, 25, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable6[] = {
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 27, 0, 0 },
+  { unicode_gc_Mn, 28, 0, 0 },
+  { unicode_gc_Mn, 29, 0, 0 },
+  { unicode_gc_Mn, 30, 0, 0 },
+  { unicode_gc_Mn, 31, 0, 0 },
+  { unicode_gc_Mn, 32, 0, 0 },
+  { unicode_gc_Mn, 33, 0, 0 },
+  { unicode_gc_Mn, 34, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 35, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 }
+};
+static const struct unidata subtable7[] = {
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 36, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable8[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable9[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable10[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable11[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable12[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 84, 0, 0 },
+  { unicode_gc_Mn, 91, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable13[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable14[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 103, 0, 0 },
+  { unicode_gc_Mn, 103, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 107, 0, 0 },
+  { unicode_gc_Mn, 107, 0, 0 },
+  { unicode_gc_Mn, 107, 0, 0 },
+  { unicode_gc_Mn, 107, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 118, 0, 0 },
+  { unicode_gc_Mn, 118, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 122, 0, 0 },
+  { unicode_gc_Mn, 122, 0, 0 },
+  { unicode_gc_Mn, 122, 0, 0 },
+  { unicode_gc_Mn, 122, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable15[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 216, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 129, 0, 0 },
+  { unicode_gc_Mn, 130, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 132, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 130, 0, 0 },
+  { unicode_gc_Mn, 130, 0, 0 },
+  { unicode_gc_Mn, 130, 0, 0 },
+  { unicode_gc_Mn, 130, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 130, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable16[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 7, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable17[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable18[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 }
+};
+static const struct unidata subtable19[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable20[] = {
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 }
+};
+static const struct unidata subtable21[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 }
+};
+static const struct unidata subtable22[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable23[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 9, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable24[] = {
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Mn, 228, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable25[] = {
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mc, 0, 0, 0 },
+  { unicode_gc_Mn, 222, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Nd, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 }
+};
+static const struct unidata subtable26[] = {
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Lm, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable27[] = {
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -59, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Lu, 0, 0, 1 },
+  { unicode_gc_Ll, 0, -1, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable28[] = {
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 74, 0 },
+  { unicode_gc_Ll, 0, 74, 0 },
+  { unicode_gc_Ll, 0, 86, 0 },
+  { unicode_gc_Ll, 0, 86, 0 },
+  { unicode_gc_Ll, 0, 86, 0 },
+  { unicode_gc_Ll, 0, 86, 0 },
+  { unicode_gc_Ll, 0, 100, 0 },
+  { unicode_gc_Ll, 0, 100, 0 },
+  { unicode_gc_Ll, 0, 128, 0 },
+  { unicode_gc_Ll, 0, 128, 0 },
+  { unicode_gc_Ll, 0, 112, 0 },
+  { unicode_gc_Ll, 0, 112, 0 },
+  { unicode_gc_Ll, 0, 126, 0 },
+  { unicode_gc_Ll, 0, 126, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Lt, 0, 0, -8 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 9, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -74 },
+  { unicode_gc_Lu, 0, 0, -74 },
+  { unicode_gc_Lt, 0, 0, -9 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Ll, 0, -7205, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 9, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -86 },
+  { unicode_gc_Lu, 0, 0, -86 },
+  { unicode_gc_Lu, 0, 0, -86 },
+  { unicode_gc_Lu, 0, 0, -86 },
+  { unicode_gc_Lt, 0, 0, -9 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -100 },
+  { unicode_gc_Lu, 0, 0, -100 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 8, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 7, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -8 },
+  { unicode_gc_Lu, 0, 0, -112 },
+  { unicode_gc_Lu, 0, 0, -112 },
+  { unicode_gc_Lu, 0, 0, -7 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 9, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -128 },
+  { unicode_gc_Lu, 0, 0, -128 },
+  { unicode_gc_Lu, 0, 0, -126 },
+  { unicode_gc_Lu, 0, 0, -126 },
+  { unicode_gc_Lt, 0, 0, -9 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Sk, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable29[] = {
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Pd, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pi, 0, 0, 0 },
+  { unicode_gc_Pf, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pi, 0, 0, 0 },
+  { unicode_gc_Pi, 0, 0, 0 },
+  { unicode_gc_Pf, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pi, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Zl, 0, 0, 0 },
+  { unicode_gc_Zp, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pi, 0, 0, 0 },
+  { unicode_gc_Pf, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pc, 0, 0, 0 },
+  { unicode_gc_Pc, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Pc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Po, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Zs, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_Cf, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Ps, 0, 0, 0 },
+  { unicode_gc_Pe, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Sc, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Me, 0, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 220, 0, 0 },
+  { unicode_gc_Mn, 230, 0, 0 },
+  { unicode_gc_Mn, 1, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 }
+};
+static const struct unidata subtable30[] = {
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -7517 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, -8383 },
+  { unicode_gc_Lu, 0, 0, -8262 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Lo, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Lu, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_Ll, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_No, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, 0, 16 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, -16, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Nl, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Cn, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_So, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 }
+};
+static const struct unidata subtable31[] = {
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm, 0, 0, 0 },
+  { unicode_gc_Sm,&nb