Update WCsubst.c for Unicode 5.1.0, and add a README.Unicode
authorIan Lynagh <igloo@earth.li>
Fri, 13 Jun 2008 20:17:54 +0000 (20:17 +0000)
committerIan Lynagh <igloo@earth.li>
Fri, 13 Jun 2008 20:17:54 +0000 (20:17 +0000)
README.Unicode describes how to do updates in the future.

cbits/README.Unicode [new file with mode: 0644]
cbits/WCsubst.c

diff --git a/cbits/README.Unicode b/cbits/README.Unicode
new file mode 100644 (file)
index 0000000..70f55e3
--- /dev/null
@@ -0,0 +1,9 @@
+
+WCsubst.c is generated with:
+
+    sh ubconfc < UnicodeData.txt > WCsubst.c
+
+where UnicodeData.txt came from
+
+    http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
+
index a369504..2d46a71 100644 (file)
@@ -1,6 +1,6 @@
 /*-------------------------------------------------------------------------
 This is an automatically generated file: do not edit
-Generated by udconfc at Mon Jan 31 23:37:36 EST 2005
+Generated by ubconfc at Fri Jun 13 20:47:01 BST 2008
 -------------------------------------------------------------------------*/
 
 #include "WCsubst.h"
@@ -59,167 +59,202 @@ struct _charblock_
        const struct _convrule_ *rule;
 };
 
-#define GENCAT_ZP 67108864
-#define GENCAT_MC 8388608
-#define GENCAT_NO 65536
-#define GENCAT_SK 1024
-#define GENCAT_CO 268435456
-#define GENCAT_ME 4194304
-#define GENCAT_ND 256
-#define GENCAT_PO 4
-#define GENCAT_LT 524288
+#define GENCAT_LO 262144
 #define GENCAT_PC 2048
-#define GENCAT_SM 64
-#define GENCAT_ZS 2
-#define GENCAT_CC 1
-#define GENCAT_LU 512
 #define GENCAT_PD 128
-#define GENCAT_SO 8192
+#define GENCAT_MN 2097152
 #define GENCAT_PE 32
-#define GENCAT_CS 134217728
+#define GENCAT_NL 16777216
 #define GENCAT_PF 131072
-#define GENCAT_CF 32768
-#define GENCAT_PS 16
+#define GENCAT_LT 524288
+#define GENCAT_LU 512
+#define GENCAT_NO 65536
+#define GENCAT_PI 16384
 #define GENCAT_SC 8
-#define GENCAT_LL 4096
+#define GENCAT_PO 4
+#define GENCAT_PS 16
+#define GENCAT_SK 1024
+#define GENCAT_SM 64
+#define GENCAT_SO 8192
+#define GENCAT_CC 1
+#define GENCAT_CF 32768
+#define GENCAT_CO 268435456
 #define GENCAT_ZL 33554432
+#define GENCAT_CS 134217728
+#define GENCAT_ZP 67108864
+#define GENCAT_ZS 2
+#define GENCAT_MC 8388608
+#define GENCAT_ME 4194304
+#define GENCAT_ND 256
+#define GENCAT_LL 4096
 #define GENCAT_LM 1048576
-#define GENCAT_PI 16384
-#define GENCAT_NL 16777216
-#define GENCAT_MN 2097152
-#define GENCAT_LO 262144
 #define MAX_UNI_CHAR 1114109
-#define NUM_BLOCKS 1916
-#define NUM_CONVBLOCKS 835
+#define NUM_BLOCKS 2562
+#define NUM_CONVBLOCKS 1202
 #define NUM_SPACEBLOCKS 8
 #define NUM_LAT1BLOCKS 63
-#define NUM_RULES 126
-static const struct _convrule_ rule116={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
-static const struct _convrule_ rule108={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
-static const struct _convrule_ rule88={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
-static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
-static const struct _convrule_ rule79={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
-static const struct _convrule_ rule56={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
-static const struct _convrule_ rule54={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
-static const struct _convrule_ rule48={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
-static const struct _convrule_ rule40={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
-static const struct _convrule_ rule113={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
-static const struct _convrule_ rule103={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
-static const struct _convrule_ rule98={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
-static const struct _convrule_ rule95={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
-static const struct _convrule_ rule39={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
-static const struct _convrule_ rule119={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
-static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
-static const struct _convrule_ rule93={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
-static const struct _convrule_ rule60={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
-static const struct _convrule_ rule59={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
-static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
-static const struct _convrule_ rule38={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
-static const struct _convrule_ rule34={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
+#define NUM_RULES 161
+static const struct _convrule_ rule155={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
+static const struct _convrule_ rule36={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
 static const struct _convrule_ rule25={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};
-static const struct _convrule_ rule24={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
+static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
+static const struct _convrule_ rule105={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
+static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
+static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
+static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
+static const struct _convrule_ rule123={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
+static const struct _convrule_ rule116={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
+static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
+static const struct _convrule_ rule38={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};
+static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
+static const struct _convrule_ rule130={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
+static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
+static const struct _convrule_ rule94={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
+static const struct _convrule_ rule156={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
+static const struct _convrule_ rule133={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
+static const struct _convrule_ rule96={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
+static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
+static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
+static const struct _convrule_ rule142={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
+static const struct _convrule_ rule90={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
+static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
+static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};
+static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
+static const struct _convrule_ rule91={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
+static const struct _convrule_ rule35={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
+static const struct _convrule_ rule146={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
+static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
+static const struct _convrule_ rule93={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
+static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
+static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};
+static const struct _convrule_ rule144={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
+static const struct _convrule_ rule140={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
+static const struct _convrule_ rule124={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
+static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
+static const struct _convrule_ rule40={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
 static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};
+static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
+static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
+static const struct _convrule_ rule82={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
+static const struct _convrule_ rule160={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
+static const struct _convrule_ rule122={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
+static const struct _convrule_ rule120={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
+static const struct _convrule_ rule89={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
+static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};
+static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
+static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
+static const struct _convrule_ rule147={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
+static const struct _convrule_ rule39={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
+static const struct _convrule_ rule154={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
+static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};
+static const struct _convrule_ rule148={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
+static const struct _convrule_ rule139={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
+static const struct _convrule_ rule98={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
+static const struct _convrule_ rule86={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
+static const struct _convrule_ rule41={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
+static const struct _convrule_ rule115={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
+static const struct _convrule_ rule26={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
+static const struct _convrule_ rule112={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
+static const struct _convrule_ rule22={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
+static const struct _convrule_ rule117={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
+static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
+static const struct _convrule_ rule128={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
+static const struct _convrule_ rule85={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
+static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
+static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
+static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
+static const struct _convrule_ rule127={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
+static const struct _convrule_ rule118={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
+static const struct _convrule_ rule92={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
+static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};
+static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
+static const struct _convrule_ rule135={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
+static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
+static const struct _convrule_ rule57={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};
+static const struct _convrule_ rule143={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
+static const struct _convrule_ rule145={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
+static const struct _convrule_ rule104={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
+static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
+static const struct _convrule_ rule150={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
+static const struct _convrule_ rule149={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
+static const struct _convrule_ rule138={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
+static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
+static const struct _convrule_ rule158={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
+static const struct _convrule_ rule81={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
 static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};
-static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
-static const struct _convrule_ rule123={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
-static const struct _convrule_ rule112={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
-static const struct _convrule_ rule106={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
-static const struct _convrule_ rule105={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
-static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
-static const struct _convrule_ rule65={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
-static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
-static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
-static const struct _convrule_ rule114={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
-static const struct _convrule_ rule104={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
-static const struct _convrule_ rule94={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
-static const struct _convrule_ rule92={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
-static const struct _convrule_ rule91={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
-static const struct _convrule_ rule82={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
-static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
-static const struct _convrule_ rule66={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
-static const struct _convrule_ rule55={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
-static const struct _convrule_ rule50={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
-static const struct _convrule_ rule45={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
-static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
+static const struct _convrule_ rule45={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
+static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
+static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
+static const struct _convrule_ rule14={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
+static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
 static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};
-static const struct _convrule_ rule107={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
-static const struct _convrule_ rule90={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
-static const struct _convrule_ rule87={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
-static const struct _convrule_ rule44={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
-static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
-static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
 static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};
+static const struct _convrule_ rule111={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
+static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
+static const struct _convrule_ rule113={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
+static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
 static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};
-static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
-static const struct _convrule_ rule122={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
-static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
-static const struct _convrule_ rule67={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
-static const struct _convrule_ rule52={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
-static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
-static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
-static const struct _convrule_ rule27={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
-static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
-static const struct _convrule_ rule111={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
-static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
-static const struct _convrule_ rule71={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
-static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
-static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
-static const struct _convrule_ rule23={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
-static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
-static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
-static const struct _convrule_ rule120={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
-static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
-static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
-static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
-static const struct _convrule_ rule80={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
-static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
-static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
-static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
-static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
-static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
-static const struct _convrule_ rule35={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
-static const struct _convrule_ rule14={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
+static const struct _convrule_ rule80={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
+static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
+static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
 static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
-static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
-static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
-static const struct _convrule_ rule70={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
-static const struct _convrule_ rule58={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
-static const struct _convrule_ rule57={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
-static const struct _convrule_ rule53={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
-static const struct _convrule_ rule46={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
-static const struct _convrule_ rule36={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
-static const struct _convrule_ rule26={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
-static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};
-static const struct _convrule_ rule121={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
-static const struct _convrule_ rule117={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
-static const struct _convrule_ rule109={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
-static const struct _convrule_ rule69={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
-static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
-static const struct _convrule_ rule21={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
-static const struct _convrule_ rule124={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
-static const struct _convrule_ rule110={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
-static const struct _convrule_ rule102={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
-static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
-static const struct _convrule_ rule85={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
-static const struct _convrule_ rule84={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
-static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
-static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
-static const struct _convrule_ rule43={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
-static const struct _convrule_ rule41={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
-static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
-static const struct _convrule_ rule118={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
-static const struct _convrule_ rule89={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
-static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
-static const struct _convrule_ rule68={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
-static const struct _convrule_ rule49={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
-static const struct _convrule_ rule47={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
-static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
-static const struct _convrule_ rule28={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
-static const struct _convrule_ rule22={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
-static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
-static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
 static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};
+static const struct _convrule_ rule157={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
+static const struct _convrule_ rule106={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
+static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
+static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
+static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
+static const struct _convrule_ rule137={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
+static const struct _convrule_ rule136={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
+static const struct _convrule_ rule131={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
+static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
 static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};
+static const struct _convrule_ rule151={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
+static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};
+static const struct _convrule_ rule84={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
+static const struct _convrule_ rule60={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};
+static const struct _convrule_ rule119={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
+static const struct _convrule_ rule126={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
+static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
+static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
+static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
+static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
+static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
+static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
+static const struct _convrule_ rule21={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
+static const struct _convrule_ rule134={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
+static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
+static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};
+static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
+static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
+static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
+static const struct _convrule_ rule141={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
+static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
+static const struct _convrule_ rule83={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
+static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
+static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
+static const struct _convrule_ rule24={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
+static const struct _convrule_ rule109={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
+static const struct _convrule_ rule129={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
+static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
+static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
+static const struct _convrule_ rule132={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
+static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
+static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
+static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
+static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
+static const struct _convrule_ rule153={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
+static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
+static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
+static const struct _convrule_ rule28={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
+static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
+static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
+static const struct _convrule_ rule152={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
+static const struct _convrule_ rule102={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
+static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};
+static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
+static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};
+static const struct _convrule_ rule23={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
 static const struct _charblock_ allchars[]={
        {0, 32, &rule0},
        {32, 1, &rule1},
@@ -411,76 +446,77 @@ static const struct _charblock_ allchars[]={
        {381, 1, &rule21},
        {382, 1, &rule22},
        {383, 1, &rule26},
-       {384, 1, &rule14},
-       {385, 1, &rule27},
+       {384, 1, &rule27},
+       {385, 1, &rule28},
        {386, 1, &rule21},
        {387, 1, &rule22},
        {388, 1, &rule21},
        {389, 1, &rule22},
-       {390, 1, &rule28},
+       {390, 1, &rule29},
        {391, 1, &rule21},
        {392, 1, &rule22},
-       {393, 2, &rule29},
+       {393, 2, &rule30},
        {395, 1, &rule21},
        {396, 1, &rule22},
        {397, 1, &rule14},
-       {398, 1, &rule30},
-       {399, 1, &rule31},
-       {400, 1, &rule32},
+       {398, 1, &rule31},
+       {399, 1, &rule32},
+       {400, 1, &rule33},
        {401, 1, &rule21},
        {402, 1, &rule22},
-       {403, 1, &rule29},
-       {404, 1, &rule33},
-       {405, 1, &rule34},
-       {406, 1, &rule35},
-       {407, 1, &rule36},
+       {403, 1, &rule30},
+       {404, 1, &rule34},
+       {405, 1, &rule35},
+       {406, 1, &rule36},
+       {407, 1, &rule37},
        {408, 1, &rule21},
        {409, 1, &rule22},
-       {410, 2, &rule14},
-       {412, 1, &rule35},
-       {413, 1, &rule37},
-       {414, 1, &rule38},
-       {415, 1, &rule39},
+       {410, 1, &rule38},
+       {411, 1, &rule14},
+       {412, 1, &rule36},
+       {413, 1, &rule39},
+       {414, 1, &rule40},
+       {415, 1, &rule41},
        {416, 1, &rule21},
        {417, 1, &rule22},
        {418, 1, &rule21},
        {419, 1, &rule22},
        {420, 1, &rule21},
        {421, 1, &rule22},
-       {422, 1, &rule40},
+       {422, 1, &rule42},
        {423, 1, &rule21},
        {424, 1, &rule22},
-       {425, 1, &rule40},
+       {425, 1, &rule42},
        {426, 2, &rule14},
        {428, 1, &rule21},
        {429, 1, &rule22},
-       {430, 1, &rule40},
+       {430, 1, &rule42},
        {431, 1, &rule21},
        {432, 1, &rule22},
-       {433, 2, &rule41},
+       {433, 2, &rule43},
        {435, 1, &rule21},
        {436, 1, &rule22},
        {437, 1, &rule21},
        {438, 1, &rule22},
-       {439, 1, &rule42},
+       {439, 1, &rule44},
        {440, 1, &rule21},
        {441, 1, &rule22},
        {442, 1, &rule14},
-       {443, 1, &rule43},
+       {443, 1, &rule45},
        {444, 1, &rule21},
        {445, 1, &rule22},
        {446, 1, &rule14},
-       {447, 1, &rule44},
-       {448, 4, &rule43},
-       {452, 1, &rule45},
-       {453, 1, &rule46},
-       {454, 1, &rule47},
-       {455, 1, &rule45},
-       {456, 1, &rule46},
-       {457, 1, &rule47},
-       {458, 1, &rule45},
-       {459, 1, &rule46},
-       {460, 1, &rule47},
+       {447, 1, &rule46},
+       {448, 4, &rule45},
+       {452, 1, &rule47},
+       {453, 1, &rule48},
+       {454, 1, &rule49},
+       {455, 1, &rule47},
+       {456, 1, &rule48},
+       {457, 1, &rule49},
+       {458, 1, &rule47},
+       {459, 1, &rule48},
+       {460, 1, &rule49},
        {461, 1, &rule21},
        {462, 1, &rule22},
        {463, 1, &rule21},
@@ -497,7 +533,7 @@ static const struct _charblock_ allchars[]={
        {474, 1, &rule22},
        {475, 1, &rule21},
        {476, 1, &rule22},
-       {477, 1, &rule48},
+       {477, 1, &rule50},
        {478, 1, &rule21},
        {479, 1, &rule22},
        {480, 1, &rule21},
@@ -517,13 +553,13 @@ static const struct _charblock_ allchars[]={
        {494, 1, &rule21},
        {495, 1, &rule22},
        {496, 1, &rule14},
-       {497, 1, &rule45},
-       {498, 1, &rule46},
-       {499, 1, &rule47},
+       {497, 1, &rule47},
+       {498, 1, &rule48},
+       {499, 1, &rule49},
        {500, 1, &rule21},
        {501, 1, &rule22},
-       {502, 1, &rule49},
-       {503, 1, &rule50},
+       {502, 1, &rule51},
+       {503, 1, &rule52},
        {504, 1, &rule21},
        {505, 1, &rule22},
        {506, 1, &rule21},
@@ -564,7 +600,7 @@ static const struct _charblock_ allchars[]={
        {541, 1, &rule22},
        {542, 1, &rule21},
        {543, 1, &rule22},
-       {544, 1, &rule51},
+       {544, 1, &rule53},
        {545, 1, &rule14},
        {546, 1, &rule21},
        {547, 1, &rule22},
@@ -584,78 +620,119 @@ static const struct _charblock_ allchars[]={
        {561, 1, &rule22},
        {562, 1, &rule21},
        {563, 1, &rule22},
-       {564, 3, &rule14},
-       {592, 3, &rule14},
-       {595, 1, &rule52},
-       {596, 1, &rule53},
+       {564, 6, &rule14},
+       {570, 1, &rule54},
+       {571, 1, &rule21},
+       {572, 1, &rule22},
+       {573, 1, &rule55},
+       {574, 1, &rule56},
+       {575, 2, &rule14},
+       {577, 1, &rule21},
+       {578, 1, &rule22},
+       {579, 1, &rule57},
+       {580, 1, &rule58},
+       {581, 1, &rule59},
+       {582, 1, &rule21},
+       {583, 1, &rule22},
+       {584, 1, &rule21},
+       {585, 1, &rule22},
+       {586, 1, &rule21},
+       {587, 1, &rule22},
+       {588, 1, &rule21},
+       {589, 1, &rule22},
+       {590, 1, &rule21},
+       {591, 1, &rule22},
+       {592, 1, &rule60},
+       {593, 1, &rule61},
+       {594, 1, &rule14},
+       {595, 1, &rule62},
+       {596, 1, &rule63},
        {597, 1, &rule14},
-       {598, 2, &rule54},
+       {598, 2, &rule64},
        {600, 1, &rule14},
-       {601, 1, &rule55},
+       {601, 1, &rule65},
        {602, 1, &rule14},
-       {603, 1, &rule56},
+       {603, 1, &rule66},
        {604, 4, &rule14},
-       {608, 1, &rule54},
+       {608, 1, &rule64},
        {609, 2, &rule14},
-       {611, 1, &rule57},
+       {611, 1, &rule67},
        {612, 4, &rule14},
-       {616, 1, &rule58},
-       {617, 1, &rule59},
-       {618, 5, &rule14},
-       {623, 1, &rule59},
-       {624, 2, &rule14},
-       {626, 1, &rule60},
+       {616, 1, &rule68},
+       {617, 1, &rule69},
+       {618, 1, &rule14},
+       {619, 1, &rule70},
+       {620, 3, &rule14},
+       {623, 1, &rule69},
+       {624, 1, &rule14},
+       {625, 1, &rule71},
+       {626, 1, &rule72},
        {627, 2, &rule14},
-       {629, 1, &rule61},
-       {630, 10, &rule14},
-       {640, 1, &rule62},
+       {629, 1, &rule73},
+       {630, 7, &rule14},
+       {637, 1, &rule74},
+       {638, 2, &rule14},
+       {640, 1, &rule75},
        {641, 2, &rule14},
-       {643, 1, &rule62},
+       {643, 1, &rule75},
        {644, 4, &rule14},
-       {648, 1, &rule62},
-       {649, 1, &rule14},
-       {650, 2, &rule63},
-       {652, 6, &rule14},
-       {658, 1, &rule64},
-       {659, 29, &rule14},
-       {688, 18, &rule65},
+       {648, 1, &rule75},
+       {649, 1, &rule76},
+       {650, 2, &rule77},
+       {652, 1, &rule78},
+       {653, 5, &rule14},
+       {658, 1, &rule79},
+       {659, 1, &rule14},
+       {660, 1, &rule45},
+       {661, 27, &rule14},
+       {688, 18, &rule80},
        {706, 4, &rule10},
-       {710, 12, &rule65},
+       {710, 12, &rule80},
        {722, 14, &rule10},
-       {736, 5, &rule65},
-       {741, 9, &rule10},
-       {750, 1, &rule65},
+       {736, 5, &rule80},
+       {741, 7, &rule10},
+       {748, 1, &rule80},
+       {749, 1, &rule10},
+       {750, 1, &rule80},
        {751, 17, &rule10},
-       {768, 69, &rule66},
-       {837, 1, &rule67},
-       {838, 18, &rule66},
-       {861, 19, &rule66},
-       {884, 2, &rule10},
-       {890, 1, &rule65},
+       {768, 69, &rule81},
+       {837, 1, &rule82},
+       {838, 42, &rule81},
+       {880, 1, &rule21},
+       {881, 1, &rule22},
+       {882, 1, &rule21},
+       {883, 1, &rule22},
+       {884, 1, &rule80},
+       {885, 1, &rule10},
+       {886, 1, &rule21},
+       {887, 1, &rule22},
+       {890, 1, &rule80},
+       {891, 3, &rule40},
        {894, 1, &rule2},
        {900, 2, &rule10},
-       {902, 1, &rule68},
+       {902, 1, &rule83},
        {903, 1, &rule2},
-       {904, 3, &rule69},
-       {908, 1, &rule70},
-       {910, 2, &rule71},
+       {904, 3, &rule84},
+       {908, 1, &rule85},
+       {910, 2, &rule86},
        {912, 1, &rule14},
        {913, 17, &rule9},
        {931, 9, &rule9},
-       {940, 1, &rule72},
-       {941, 3, &rule73},
+       {940, 1, &rule87},
+       {941, 3, &rule88},
        {944, 1, &rule14},
        {945, 17, &rule12},
-       {962, 1, &rule74},
+       {962, 1, &rule89},
        {963, 9, &rule12},
-       {972, 1, &rule75},
-       {973, 2, &rule76},
-       {976, 1, &rule77},
-       {977, 1, &rule78},
-       {978, 3, &rule79},
-       {981, 1, &rule80},
-       {982, 1, &rule81},
-       {983, 1, &rule14},
+       {972, 1, &rule90},
+       {973, 2, &rule91},
+       {975, 1, &rule92},
+       {976, 1, &rule93},
+       {977, 1, &rule94},
+       {978, 3, &rule95},
+       {981, 1, &rule96},
+       {982, 1, &rule97},
+       {983, 1, &rule98},
        {984, 1, &rule21},
        {985, 1, &rule22},
        {986, 1, &rule21},
@@ -680,22 +757,24 @@ static const struct _charblock_ allchars[]={
        {1005, 1, &rule22},
        {1006, 1, &rule21},
        {1007, 1, &rule22},
-       {1008, 1, &rule82},
-       {1009, 1, &rule83},
-       {1010, 1, &rule84},
+       {1008, 1, &rule99},
+       {1009, 1, &rule100},
+       {1010, 1, &rule101},
        {1011, 1, &rule14},
-       {1012, 1, &rule85},
-       {1013, 1, &rule86},
+       {1012, 1, &rule102},
+       {1013, 1, &rule103},
        {1014, 1, &rule6},
        {1015, 1, &rule21},
        {1016, 1, &rule22},
-       {1017, 1, &rule87},
+       {1017, 1, &rule104},
        {1018, 1, &rule21},
        {1019, 1, &rule22},
-       {1024, 16, &rule88},
+       {1020, 1, &rule14},
+       {1021, 3, &rule53},
+       {1024, 16, &rule105},
        {1040, 32, &rule9},
        {1072, 32, &rule12},
-       {1104, 16, &rule83},
+       {1104, 16, &rule100},
        {1120, 1, &rule21},
        {1121, 1, &rule22},
        {1122, 1, &rule21},
@@ -731,8 +810,8 @@ static const struct _charblock_ allchars[]={
        {1152, 1, &rule21},
        {1153, 1, &rule22},
        {1154, 1, &rule13},
-       {1155, 4, &rule66},
-       {1160, 2, &rule89},
+       {1155, 5, &rule81},
+       {1160, 2, &rule106},
        {1162, 1, &rule21},
        {1163, 1, &rule22},
        {1164, 1, &rule21},
@@ -787,7 +866,7 @@ static const struct _charblock_ allchars[]={
        {1213, 1, &rule22},
        {1214, 1, &rule21},
        {1215, 1, &rule22},
-       {1216, 1, &rule79},
+       {1216, 1, &rule107},
        {1217, 1, &rule21},
        {1218, 1, &rule22},
        {1219, 1, &rule21},
@@ -802,6 +881,7 @@ static const struct _charblock_ allchars[]={
        {1228, 1, &rule22},
        {1229, 1, &rule21},
        {1230, 1, &rule22},
+       {1231, 1, &rule108},
        {1232, 1, &rule21},
        {1233, 1, &rule22},
        {1234, 1, &rule21},
@@ -840,8 +920,16 @@ static const struct _charblock_ allchars[]={
        {1267, 1, &rule22},
        {1268, 1, &rule21},
        {1269, 1, &rule22},
+       {1270, 1, &rule21},
+       {1271, 1, &rule22},
        {1272, 1, &rule21},
        {1273, 1, &rule22},
+       {1274, 1, &rule21},
+       {1275, 1, &rule22},
+       {1276, 1, &rule21},
+       {1277, 1, &rule22},
+       {1278, 1, &rule21},
+       {1279, 1, &rule22},
        {1280, 1, &rule21},
        {1281, 1, &rule22},
        {1282, 1, &rule21},
@@ -858,433 +946,553 @@ static const struct _charblock_ allchars[]={
        {1293, 1, &rule22},
        {1294, 1, &rule21},
        {1295, 1, &rule22},
-       {1329, 38, &rule90},
-       {1369, 1, &rule65},
+       {1296, 1, &rule21},
+       {1297, 1, &rule22},
+       {1298, 1, &rule21},
+       {1299, 1, &rule22},
+       {1300, 1, &rule21},
+       {1301, 1, &rule22},
+       {1302, 1, &rule21},
+       {1303, 1, &rule22},
+       {1304, 1, &rule21},
+       {1305, 1, &rule22},
+       {1306, 1, &rule21},
+       {1307, 1, &rule22},
+       {1308, 1, &rule21},
+       {1309, 1, &rule22},
+       {1310, 1, &rule21},
+       {1311, 1, &rule22},
+       {1312, 1, &rule21},
+       {1313, 1, &rule22},
+       {1314, 1, &rule21},
+       {1315, 1, &rule22},
+       {1329, 38, &rule109},
+       {1369, 1, &rule80},
        {1370, 6, &rule2},
-       {1377, 38, &rule91},
+       {1377, 38, &rule110},
        {1415, 1, &rule14},
        {1417, 1, &rule2},
        {1418, 1, &rule7},
-       {1425, 17, &rule66},
-       {1443, 23, &rule66},
-       {1467, 3, &rule66},
-       {1470, 1, &rule2},
-       {1471, 1, &rule66},
+       {1425, 45, &rule81},
+       {1470, 1, &rule7},
+       {1471, 1, &rule81},
        {1472, 1, &rule2},
-       {1473, 2, &rule66},
+       {1473, 2, &rule81},
        {1475, 1, &rule2},
-       {1476, 1, &rule66},
-       {1488, 27, &rule43},
-       {1520, 3, &rule43},
+       {1476, 2, &rule81},
+       {1478, 1, &rule2},
+       {1479, 1, &rule81},
+       {1488, 27, &rule45},
+       {1520, 3, &rule45},
        {1523, 2, &rule2},
        {1536, 4, &rule16},
+       {1542, 3, &rule6},
+       {1545, 2, &rule2},
+       {1547, 1, &rule3},
        {1548, 2, &rule2},
        {1550, 2, &rule13},
-       {1552, 6, &rule66},
+       {1552, 11, &rule81},
        {1563, 1, &rule2},
-       {1567, 1, &rule2},
-       {1569, 26, &rule43},
-       {1600, 1, &rule65},
-       {1601, 10, &rule43},
-       {1611, 14, &rule66},
+       {1566, 2, &rule2},
+       {1569, 31, &rule45},
+       {1600, 1, &rule80},
+       {1601, 10, &rule45},
+       {1611, 20, &rule81},
        {1632, 10, &rule8},
        {1642, 4, &rule2},
-       {1646, 2, &rule43},
-       {1648, 1, &rule66},
-       {1649, 99, &rule43},
+       {1646, 2, &rule45},
+       {1648, 1, &rule81},
+       {1649, 99, &rule45},
        {1748, 1, &rule2},
-       {1749, 1, &rule43},
-       {1750, 7, &rule66},
+       {1749, 1, &rule45},
+       {1750, 7, &rule81},
        {1757, 1, &rule16},
-       {1758, 1, &rule89},
-       {1759, 6, &rule66},
-       {1765, 2, &rule65},
-       {1767, 2, &rule66},
+       {1758, 1, &rule106},
+       {1759, 6, &rule81},
+       {1765, 2, &rule80},
+       {1767, 2, &rule81},
        {1769, 1, &rule13},
-       {1770, 4, &rule66},
-       {1774, 2, &rule43},
+       {1770, 4, &rule81},
+       {1774, 2, &rule45},
        {1776, 10, &rule8},
-       {1786, 3, &rule43},
+       {1786, 3, &rule45},
        {1789, 2, &rule13},
-       {1791, 1, &rule43},
+       {1791, 1, &rule45},
        {1792, 14, &rule2},
        {1807, 1, &rule16},
-       {1808, 1, &rule43},
-       {1809, 1, &rule66},
-       {1810, 30, &rule43},
-       {1840, 27, &rule66},
-       {1869, 3, &rule43},
-       {1920, 38, &rule43},
-       {1958, 11, &rule66},
-       {1969, 1, &rule43},
-       {2305, 2, &rule66},
-       {2307, 1, &rule92},
-       {2308, 54, &rule43},
-       {2364, 1, &rule66},
-       {2365, 1, &rule43},
-       {2366, 3, &rule92},
-       {2369, 8, &rule66},
-       {2377, 4, &rule92},
-       {2381, 1, &rule66},
-       {2384, 1, &rule43},
-       {2385, 4, &rule66},
-       {2392, 10, &rule43},
-       {2402, 2, &rule66},
+       {1808, 1, &rule45},
+       {1809, 1, &rule81},
+       {1810, 30, &rule45},
+       {1840, 27, &rule81},
+       {1869, 89, &rule45},
+       {1958, 11, &rule81},
+       {1969, 1, &rule45},
+       {1984, 10, &rule8},
+       {1994, 33, &rule45},
+       {2027, 9, &rule81},
+       {2036, 2, &rule80},
+       {2038, 1, &rule13},
+       {2039, 3, &rule2},
+       {2042, 1, &rule80},
+       {2305, 2, &rule81},
+       {2307, 1, &rule111},
+       {2308, 54, &rule45},
+       {2364, 1, &rule81},
+       {2365, 1, &rule45},
+       {2366, 3, &rule111},
+       {2369, 8, &rule81},
+       {2377, 4, &rule111},
+       {2381, 1, &rule81},
+       {2384, 1, &rule45},
+       {2385, 4, &rule81},
+       {2392, 10, &rule45},
+       {2402, 2, &rule81},
        {2404, 2, &rule2},
        {2406, 10, &rule8},
        {2416, 1, &rule2},
-       {2433, 1, &rule66},
-       {2434, 2, &rule92},
-       {2437, 8, &rule43},
-       {2447, 2, &rule43},
-       {2451, 22, &rule43},
-       {2474, 7, &rule43},
-       {2482, 1, &rule43},
-       {2486, 4, &rule43},
-       {2492, 1, &rule66},
-       {2493, 1, &rule43},
-       {2494, 3, &rule92},
-       {2497, 4, &rule66},
-       {2503, 2, &rule92},
-       {2507, 2, &rule92},
-       {2509, 1, &rule66},
-       {2519, 1, &rule92},
-       {2524, 2, &rule43},
-       {2527, 3, &rule43},
-       {2530, 2, &rule66},
+       {2417, 1, &rule80},
+       {2418, 1, &rule45},
+       {2427, 5, &rule45},
+       {2433, 1, &rule81},
+       {2434, 2, &rule111},
+       {2437, 8, &rule45},
+       {2447, 2, &rule45},
+       {2451, 22, &rule45},
+       {2474, 7, &rule45},
+       {2482, 1, &rule45},
+       {2486, 4, &rule45},
+       {2492, 1, &rule81},
+       {2493, 1, &rule45},
+       {2494, 3, &rule111},
+       {2497, 4, &rule81},
+       {2503, 2, &rule111},
+       {2507, 2, &rule111},
+       {2509, 1, &rule81},
+       {2510, 1, &rule45},
+       {2519, 1, &rule111},
+       {2524, 2, &rule45},
+       {2527, 3, &rule45},
+       {2530, 2, &rule81},
        {2534, 10, &rule8},
-       {2544, 2, &rule43},
+       {2544, 2, &rule45},
        {2546, 2, &rule3},
        {2548, 6, &rule17},
        {2554, 1, &rule13},
-       {2561, 2, &rule66},
-       {2563, 1, &rule92},
-       {2565, 6, &rule43},
-       {2575, 2, &rule43},
-       {2579, 22, &rule43},
-       {2602, 7, &rule43},
-       {2610, 2, &rule43},
-       {2613, 2, &rule43},
-       {2616, 2, &rule43},
-       {2620, 1, &rule66},
-       {2622, 3, &rule92},
-       {2625, 2, &rule66},
-       {2631, 2, &rule66},
-       {2635, 3, &rule66},
-       {2649, 4, &rule43},
-       {2654, 1, &rule43},
+       {2561, 2, &rule81},
+       {2563, 1, &rule111},
+       {2565, 6, &rule45},
+       {2575, 2, &rule45},
+       {2579, 22, &rule45},
+       {2602, 7, &rule45},
+       {2610, 2, &rule45},
+       {2613, 2, &rule45},
+       {2616, 2, &rule45},
+       {2620, 1, &rule81},
+       {2622, 3, &rule111},
+       {2625, 2, &rule81},
+       {2631, 2, &rule81},
+       {2635, 3, &rule81},
+       {2641, 1, &rule81},
+       {2649, 4, &rule45},
+       {2654, 1, &rule45},
        {2662, 10, &rule8},
-       {2672, 2, &rule66},
-       {2674, 3, &rule43},
-       {2689, 2, &rule66},
-       {2691, 1, &rule92},
-       {2693, 9, &rule43},
-       {2703, 3, &rule43},
-       {2707, 22, &rule43},
-       {2730, 7, &rule43},
-       {2738, 2, &rule43},
-       {2741, 5, &rule43},
-       {2748, 1, &rule66},
-       {2749, 1, &rule43},
-       {2750, 3, &rule92},
-       {2753, 5, &rule66},
-       {2759, 2, &rule66},
-       {2761, 1, &rule92},
-       {2763, 2, &rule92},
-       {2765, 1, &rule66},
-       {2768, 1, &rule43},
-       {2784, 2, &rule43},
-       {2786, 2, &rule66},
+       {2672, 2, &rule81},
+       {2674, 3, &rule45},
+       {2677, 1, &rule81},
+       {2689, 2, &rule81},
+       {2691, 1, &rule111},
+       {2693, 9, &rule45},
+       {2703, 3, &rule45},
+       {2707, 22, &rule45},
+       {2730, 7, &rule45},
+       {2738, 2, &rule45},
+       {2741, 5, &rule45},
+       {2748, 1, &rule81},
+       {2749, 1, &rule45},
+       {2750, 3, &rule111},
+       {2753, 5, &rule81},
+       {2759, 2, &rule81},
+       {2761, 1, &rule111},
+       {2763, 2, &rule111},
+       {2765, 1, &rule81},
+       {2768, 1, &rule45},
+       {2784, 2, &rule45},
+       {2786, 2, &rule81},
        {2790, 10, &rule8},
        {2801, 1, &rule3},
-       {2817, 1, &rule66},
-       {2818, 2, &rule92},
-       {2821, 8, &rule43},
-       {2831, 2, &rule43},
-       {2835, 22, &rule43},
-       {2858, 7, &rule43},
-       {2866, 2, &rule43},
-       {2869, 5, &rule43},
-       {2876, 1, &rule66},
-       {2877, 1, &rule43},
-       {2878, 1, &rule92},
-       {2879, 1, &rule66},
-       {2880, 1, &rule92},
-       {2881, 3, &rule66},
-       {2887, 2, &rule92},
-       {2891, 2, &rule92},
-       {2893, 1, &rule66},
-       {2902, 1, &rule66},
-       {2903, 1, &rule92},
-       {2908, 2, &rule43},
-       {2911, 3, &rule43},
+       {2817, 1, &rule81},
+       {2818, 2, &rule111},
+       {2821, 8, &rule45},
+       {2831, 2, &rule45},
+       {2835, 22, &rule45},
+       {2858, 7, &rule45},
+       {2866, 2, &rule45},
+       {2869, 5, &rule45},
+       {2876, 1, &rule81},
+       {2877, 1, &rule45},
+       {2878, 1, &rule111},
+       {2879, 1, &rule81},
+       {2880, 1, &rule111},
+       {2881, 4, &rule81},
+       {2887, 2, &rule111},
+       {2891, 2, &rule111},
+       {2893, 1, &rule81},
+       {2902, 1, &rule81},
+       {2903, 1, &rule111},
+       {2908, 2, &rule45},
+       {2911, 3, &rule45},
+       {2914, 2, &rule81},
        {2918, 10, &rule8},
        {2928, 1, &rule13},
-       {2929, 1, &rule43},
-       {2946, 1, &rule66},
-       {2947, 1, &rule43},
-       {2949, 6, &rule43},
-       {2958, 3, &rule43},
-       {2962, 4, &rule43},
-       {2969, 2, &rule43},
-       {2972, 1, &rule43},
-       {2974, 2, &rule43},
-       {2979, 2, &rule43},
-       {2984, 3, &rule43},
-       {2990, 8, &rule43},
-       {2999, 3, &rule43},
-       {3006, 2, &rule92},
-       {3008, 1, &rule66},
-       {3009, 2, &rule92},
-       {3014, 3, &rule92},
-       {3018, 3, &rule92},
-       {3021, 1, &rule66},
-       {3031, 1, &rule92},
-       {3047, 9, &rule8},
+       {2929, 1, &rule45},
+       {2946, 1, &rule81},
+       {2947, 1, &rule45},
+       {2949, 6, &rule45},
+       {2958, 3, &rule45},
+       {2962, 4, &rule45},
+       {2969, 2, &rule45},
+       {2972, 1, &rule45},
+       {2974, 2, &rule45},
+       {2979, 2, &rule45},
+       {2984, 3, &rule45},
+       {2990, 12, &rule45},
+       {3006, 2, &rule111},
+       {3008, 1, &rule81},
+       {3009, 2, &rule111},
+       {3014, 3, &rule111},
+       {3018, 3, &rule111},
+       {3021, 1, &rule81},
+       {3024, 1, &rule45},
+       {3031, 1, &rule111},
+       {3046, 10, &rule8},
        {3056, 3, &rule17},
        {3059, 6, &rule13},
        {3065, 1, &rule3},
        {3066, 1, &rule13},
-       {3073, 3, &rule92},
-       {3077, 8, &rule43},
-       {3086, 3, &rule43},
-       {3090, 23, &rule43},
-       {3114, 10, &rule43},
-       {3125, 5, &rule43},
-       {3134, 3, &rule66},
-       {3137, 4, &rule92},
-       {3142, 3, &rule66},
-       {3146, 4, &rule66},
-       {3157, 2, &rule66},
-       {3168, 2, &rule43},
+       {3073, 3, &rule111},
+       {3077, 8, &rule45},
+       {3086, 3, &rule45},
+       {3090, 23, &rule45},
+       {3114, 10, &rule45},
+       {3125, 5, &rule45},
+       {3133, 1, &rule45},
+       {3134, 3, &rule81},
+       {3137, 4, &rule111},
+       {3142, 3, &rule81},
+       {3146, 4, &rule81},
+       {3157, 2, &rule81},
+       {3160, 2, &rule45},
+       {3168, 2, &rule45},
+       {3170, 2, &rule81},
        {3174, 10, &rule8},
-       {3202, 2, &rule92},
-       {3205, 8, &rule43},
-       {3214, 3, &rule43},
-       {3218, 23, &rule43},
-       {3242, 10, &rule43},
-       {3253, 5, &rule43},
-       {3260, 1, &rule66},
-       {3261, 1, &rule43},
-       {3262, 1, &rule92},
-       {3263, 1, &rule66},
-       {3264, 5, &rule92},
-       {3270, 1, &rule66},
-       {3271, 2, &rule92},
-       {3274, 2, &rule92},
-       {3276, 2, &rule66},
-       {3285, 2, &rule92},
-       {3294, 1, &rule43},
-       {3296, 2, &rule43},
+       {3192, 7, &rule17},
+       {3199, 1, &rule13},
+       {3202, 2, &rule111},
+       {3205, 8, &rule45},
+       {3214, 3, &rule45},
+       {3218, 23, &rule45},
+       {3242, 10, &rule45},
+       {3253, 5, &rule45},
+       {3260, 1, &rule81},
+       {3261, 1, &rule45},
+       {3262, 1, &rule111},
+       {3263, 1, &rule81},
+       {3264, 5, &rule111},
+       {3270, 1, &rule81},
+       {3271, 2, &rule111},
+       {3274, 2, &rule111},
+       {3276, 2, &rule81},
+       {3285, 2, &rule111},
+       {3294, 1, &rule45},
+       {3296, 2, &rule45},
+       {3298, 2, &rule81},
        {3302, 10, &rule8},
-       {3330, 2, &rule92},
-       {3333, 8, &rule43},
-       {3342, 3, &rule43},
-       {3346, 23, &rule43},
-       {3370, 16, &rule43},
-       {3390, 3, &rule92},
-       {3393, 3, &rule66},
-       {3398, 3, &rule92},
-       {3402, 3, &rule92},
-       {3405, 1, &rule66},
-       {3415, 1, &rule92},
-       {3424, 2, &rule43},
+       {3313, 2, &rule13},
+       {3330, 2, &rule111},
+       {3333, 8, &rule45},
+       {3342, 3, &rule45},
+       {3346, 23, &rule45},
+       {3370, 16, &rule45},
+       {3389, 1, &rule45},
+       {3390, 3, &rule111},
+       {3393, 4, &rule81},
+       {3398, 3, &rule111},
+       {3402, 3, &rule111},
+       {3405, 1, &rule81},
+       {3415, 1, &rule111},
+       {3424, 2, &rule45},
+       {3426, 2, &rule81},
        {3430, 10, &rule8},
-       {3458, 2, &rule92},
-       {3461, 18, &rule43},
-       {3482, 24, &rule43},
-       {3507, 9, &rule43},
-       {3517, 1, &rule43},
-       {3520, 7, &rule43},
-       {3530, 1, &rule66},
-       {3535, 3, &rule92},
-       {3538, 3, &rule66},
-       {3542, 1, &rule66},
-       {3544, 8, &rule92},
-       {3570, 2, &rule92},
+       {3440, 6, &rule17},
+       {3449, 1, &rule13},
+       {3450, 6, &rule45},
+       {3458, 2, &rule111},
+       {3461, 18, &rule45},
+       {3482, 24, &rule45},
+       {3507, 9, &rule45},
+       {3517, 1, &rule45},
+       {3520, 7, &rule45},
+       {3530, 1, &rule81},
+       {3535, 3, &rule111},
+       {3538, 3, &rule81},
+       {3542, 1, &rule81},
+       {3544, 8, &rule111},
+       {3570, 2, &rule111},
        {3572, 1, &rule2},
-       {3585, 48, &rule43},
-       {3633, 1, &rule66},
-       {3634, 2, &rule43},
-       {3636, 7, &rule66},
+       {3585, 48, &rule45},
+       {3633, 1, &rule81},
+       {3634, 2, &rule45},
+       {3636, 7, &rule81},
        {3647, 1, &rule3},
-       {3648, 6, &rule43},
-       {3654, 1, &rule65},
-       {3655, 8, &rule66},
+       {3648, 6, &rule45},
+       {3654, 1, &rule80},
+       {3655, 8, &rule81},
        {3663, 1, &rule2},
        {3664, 10, &rule8},
        {3674, 2, &rule2},
-       {3713, 2, &rule43},
-       {3716, 1, &rule43},
-       {3719, 2, &rule43},
-       {3722, 1, &rule43},
-       {3725, 1, &rule43},
-       {3732, 4, &rule43},
-       {3737, 7, &rule43},
-       {3745, 3, &rule43},
-       {3749, 1, &rule43},
-       {3751, 1, &rule43},
-       {3754, 2, &rule43},
-       {3757, 4, &rule43},
-       {3761, 1, &rule66},
-       {3762, 2, &rule43},
-       {3764, 6, &rule66},
-       {3771, 2, &rule66},
-       {3773, 1, &rule43},
-       {3776, 5, &rule43},
-       {3782, 1, &rule65},
-       {3784, 6, &rule66},
+       {3713, 2, &rule45},
+       {3716, 1, &rule45},
+       {3719, 2, &rule45},
+       {3722, 1, &rule45},
+       {3725, 1, &rule45},
+       {3732, 4, &rule45},
+       {3737, 7, &rule45},
+       {3745, 3, &rule45},
+       {3749, 1, &rule45},
+       {3751, 1, &rule45},
+       {3754, 2, &rule45},
+       {3757, 4, &rule45},
+       {3761, 1, &rule81},
+       {3762, 2, &rule45},
+       {3764, 6, &rule81},
+       {3771, 2, &rule81},
+       {3773, 1, &rule45},
+       {3776, 5, &rule45},
+       {3782, 1, &rule80},
+       {3784, 6, &rule81},
        {3792, 10, &rule8},
-       {3804, 2, &rule43},
-       {3840, 1, &rule43},
+       {3804, 2, &rule45},
+       {3840, 1, &rule45},
        {3841, 3, &rule13},
        {3844, 15, &rule2},
        {3859, 5, &rule13},
-       {3864, 2, &rule66},
+       {3864, 2, &rule81},
        {3866, 6, &rule13},
        {3872, 10, &rule8},
        {3882, 10, &rule17},
        {3892, 1, &rule13},
-       {3893, 1, &rule66},
+       {3893, 1, &rule81},
        {3894, 1, &rule13},
-       {3895, 1, &rule66},
+       {3895, 1, &rule81},
        {3896, 1, &rule13},
-       {3897, 1, &rule66},
+       {3897, 1, &rule81},
        {3898, 1, &rule4},
        {3899, 1, &rule5},
        {3900, 1, &rule4},
        {3901, 1, &rule5},
-       {3902, 2, &rule92},
-       {3904, 8, &rule43},
-       {3913, 34, &rule43},
-       {3953, 14, &rule66},
-       {3967, 1, &rule92},
-       {3968, 5, &rule66},
+       {3902, 2, &rule111},
+       {3904, 8, &rule45},
+       {3913, 36, &rule45},
+       {3953, 14, &rule81},
+       {3967, 1, &rule111},
+       {3968, 5, &rule81},
        {3973, 1, &rule2},
-       {3974, 2, &rule66},
-       {3976, 4, &rule43},
-       {3984, 8, &rule66},
-       {3993, 36, &rule66},
+       {3974, 2, &rule81},
+       {3976, 4, &rule45},
+       {3984, 8, &rule81},
+       {3993, 36, &rule81},
        {4030, 8, &rule13},
-       {4038, 1, &rule66},
+       {4038, 1, &rule81},
        {4039, 6, &rule13},
-       {4047, 1, &rule13},
-       {4096, 34, &rule43},
-       {4131, 5, &rule43},
-       {4137, 2, &rule43},
-       {4140, 1, &rule92},
-       {4141, 4, &rule66},
-       {4145, 1, &rule92},
-       {4146, 1, &rule66},
-       {4150, 2, &rule66},
-       {4152, 1, &rule92},
-       {4153, 1, &rule66},
+       {4046, 2, &rule13},
+       {4048, 5, &rule2},
+       {4096, 43, &rule45},
+       {4139, 2, &rule111},
+       {4141, 4, &rule81},
+       {4145, 1, &rule111},
+       {4146, 6, &rule81},
+       {4152, 1, &rule111},
+       {4153, 2, &rule81},
+       {4155, 2, &rule111},
+       {4157, 2, &rule81},
+       {4159, 1, &rule45},
        {4160, 10, &rule8},
        {4170, 6, &rule2},
-       {4176, 6, &rule43},
-       {4182, 2, &rule92},
-       {4184, 2, &rule66},
-       {4256, 38, &rule79},
-       {4304, 41, &rule43},
+       {4176, 6, &rule45},
+       {4182, 2, &rule111},
+       {4184, 2, &rule81},
+       {4186, 4, &rule45},
+       {4190, 3, &rule81},
+       {4193, 1, &rule45},
+       {4194, 3, &rule111},
+       {4197, 2, &rule45},
+       {4199, 7, &rule111},
+       {4206, 3, &rule45},
+       {4209, 4, &rule81},
+       {4213, 13, &rule45},
+       {4226, 1, &rule81},
+       {4227, 2, &rule111},
+       {4229, 2, &rule81},
+       {4231, 6, &rule111},
+       {4237, 1, &rule81},
+       {4238, 1, &rule45},
+       {4239, 1, &rule111},
+       {4240, 10, &rule8},
+       {4254, 2, &rule13},
+       {4256, 38, &rule112},
+       {4304, 43, &rule45},
        {4347, 1, &rule2},
-       {4352, 90, &rule43},
-       {4447, 68, &rule43},
-       {4520, 82, &rule43},
-       {4608, 7, &rule43},
-       {4616, 63, &rule43},
-       {4680, 1, &rule43},
-       {4682, 4, &rule43},
-       {4688, 7, &rule43},
-       {4696, 1, &rule43},
-       {4698, 4, &rule43},
-       {4704, 39, &rule43},
-       {4744, 1, &rule43},
-       {4746, 4, &rule43},
-       {4752, 31, &rule43},
-       {4784, 1, &rule43},
-       {4786, 4, &rule43},
-       {4792, 7, &rule43},
-       {4800, 1, &rule43},
-       {4802, 4, &rule43},
-       {4808, 7, &rule43},
-       {4816, 7, &rule43},
-       {4824, 23, &rule43},
-       {4848, 31, &rule43},
-       {4880, 1, &rule43},
-       {4882, 4, &rule43},
-       {4888, 7, &rule43},
-       {4896, 39, &rule43},
-       {4936, 19, &rule43},
+       {4348, 1, &rule80},
+       {4352, 90, &rule45},
+       {4447, 68, &rule45},
+       {4520, 82, &rule45},
+       {4608, 73, &rule45},
+       {4682, 4, &rule45},
+       {4688, 7, &rule45},
+       {4696, 1, &rule45},
+       {4698, 4, &rule45},
+       {4704, 41, &rule45},
+       {4746, 4, &rule45},
+       {4752, 33, &rule45},
+       {4786, 4, &rule45},
+       {4792, 7, &rule45},
+       {4800, 1, &rule45},
+       {4802, 4, &rule45},
+       {4808, 15, &rule45},
+       {4824, 57, &rule45},
+       {4882, 4, &rule45},
+       {4888, 67, &rule45},
+       {4959, 1, &rule81},
+       {4960, 1, &rule13},
        {4961, 8, &rule2},
-       {4969, 9, &rule8},
-       {4978, 11, &rule17},
-       {5024, 85, &rule43},
-       {5121, 620, &rule43},
+       {4969, 20, &rule17},
+       {4992, 16, &rule45},
+       {5008, 10, &rule13},
+       {5024, 85, &rule45},
+       {5121, 620, &rule45},
        {5741, 2, &rule2},
-       {5743, 8, &rule43},
+       {5743, 8, &rule45},
        {5760, 1, &rule1},
-       {5761, 26, &rule43},
+       {5761, 26, &rule45},
        {5787, 1, &rule4},
        {5788, 1, &rule5},
-       {5792, 75, &rule43},
+       {5792, 75, &rule45},
        {5867, 3, &rule2},
-       {5870, 3, &rule93},
-       {5888, 13, &rule43},
-       {5902, 4, &rule43},
-       {5906, 3, &rule66},
-       {5920, 18, &rule43},
-       {5938, 3, &rule66},
+       {5870, 3, &rule113},
+       {5888, 13, &rule45},
+       {5902, 4, &rule45},
+       {5906, 3, &rule81},
+       {5920, 18, &rule45},
+       {5938, 3, &rule81},
        {5941, 2, &rule2},
-       {5952, 18, &rule43},
-       {5970, 2, &rule66},
-       {5984, 13, &rule43},
-       {5998, 3, &rule43},
-       {6002, 2, &rule66},
-       {6016, 52, &rule43},
+       {5952, 18, &rule45},
+       {5970, 2, &rule81},
+       {5984, 13, &rule45},
+       {5998, 3, &rule45},
+       {6002, 2, &rule81},
+       {6016, 52, &rule45},
        {6068, 2, &rule16},
-       {6070, 1, &rule92},
-       {6071, 7, &rule66},
-       {6078, 8, &rule92},
-       {6086, 1, &rule66},
-       {6087, 2, &rule92},
-       {6089, 11, &rule66},
+       {6070, 1, &rule111},
+       {6071, 7, &rule81},
+       {6078, 8, &rule111},
+       {6086, 1, &rule81},
+       {6087, 2, &rule111},
+       {6089, 11, &rule81},
        {6100, 3, &rule2},
-       {6103, 1, &rule65},
+       {6103, 1, &rule80},
        {6104, 3, &rule2},
        {6107, 1, &rule3},
-       {6108, 1, &rule43},
-       {6109, 1, &rule66},
+       {6108, 1, &rule45},
+       {6109, 1, &rule81},
        {6112, 10, &rule8},
        {6128, 10, &rule17},
        {6144, 6, &rule2},
        {6150, 1, &rule7},
        {6151, 4, &rule2},
-       {6155, 3, &rule66},
+       {6155, 3, &rule81},
        {6158, 1, &rule1},
        {6160, 10, &rule8},
-       {6176, 35, &rule43},
-       {6211, 1, &rule65},
-       {6212, 52, &rule43},
-       {6272, 41, &rule43},
-       {6313, 1, &rule66},
-       {6400, 29, &rule43},
-       {6432, 3, &rule66},
-       {6435, 4, &rule92},
-       {6439, 2, &rule66},
-       {6441, 3, &rule92},
-       {6448, 2, &rule92},
-       {6450, 1, &rule66},
-       {6451, 6, &rule92},
-       {6457, 3, &rule66},
+       {6176, 35, &rule45},
+       {6211, 1, &rule80},
+       {6212, 52, &rule45},
+       {6272, 41, &rule45},
+       {6313, 1, &rule81},
+       {6314, 1, &rule45},
+       {6400, 29, &rule45},
+       {6432, 3, &rule81},
+       {6435, 4, &rule111},
+       {6439, 2, &rule81},
+       {6441, 3, &rule111},
+       {6448, 2, &rule111},
+       {6450, 1, &rule81},
+       {6451, 6, &rule111},
+       {6457, 3, &rule81},
        {6464, 1, &rule13},
        {6468, 2, &rule2},
        {6470, 10, &rule8},
-       {6480, 30, &rule43},
-       {6512, 5, &rule43},
+       {6480, 30, &rule45},
+       {6512, 5, &rule45},
+       {6528, 42, &rule45},
+       {6576, 17, &rule111},
+       {6593, 7, &rule45},
+       {6600, 2, &rule111},
+       {6608, 10, &rule8},
+       {6622, 2, &rule2},
        {6624, 32, &rule13},
+       {6656, 23, &rule45},
+       {6679, 2, &rule81},
+       {6681, 3, &rule111},
+       {6686, 2, &rule2},
+       {6912, 4, &rule81},
+       {6916, 1, &rule111},
+       {6917, 47, &rule45},
+       {6964, 1, &rule81},
+       {6965, 1, &rule111},
+       {6966, 5, &rule81},
+       {6971, 1, &rule111},
+       {6972, 1, &rule81},
+       {6973, 5, &rule111},
+       {6978, 1, &rule81},
+       {6979, 2, &rule111},
+       {6981, 7, &rule45},
+       {6992, 10, &rule8},
+       {7002, 7, &rule2},
+       {7009, 10, &rule13},
+       {7019, 9, &rule81},
+       {7028, 9, &rule13},
+       {7040, 2, &rule81},
+       {7042, 1, &rule111},
+       {7043, 30, &rule45},
+       {7073, 1, &rule111},
+       {7074, 4, &rule81},
+       {7078, 2, &rule111},
+       {7080, 2, &rule81},
+       {7082, 1, &rule111},
+       {7086, 2, &rule45},
+       {7088, 10, &rule8},
+       {7168, 36, &rule45},
+       {7204, 8, &rule111},
+       {7212, 8, &rule81},
+       {7220, 2, &rule111},
+       {7222, 2, &rule81},
+       {7227, 5, &rule2},
+       {7232, 10, &rule8},
+       {7245, 3, &rule45},
+       {7248, 10, &rule8},
+       {7258, 30, &rule45},
+       {7288, 6, &rule80},
+       {7294, 2, &rule2},
        {7424, 44, &rule14},
-       {7468, 54, &rule65},
-       {7522, 10, &rule14},
+       {7468, 54, &rule80},
+       {7522, 22, &rule14},
+       {7544, 1, &rule80},
+       {7545, 1, &rule114},
+       {7546, 3, &rule14},
+       {7549, 1, &rule115},
+       {7550, 29, &rule14},
+       {7579, 37, &rule80},
+       {7616, 39, &rule81},
+       {7678, 2, &rule81},
        {7680, 1, &rule21},
        {7681, 1, &rule22},
        {7682, 1, &rule21},
@@ -1436,7 +1644,10 @@ static const struct _charblock_ allchars[]={
        {7828, 1, &rule21},
        {7829, 1, &rule22},
        {7830, 5, &rule14},
-       {7835, 1, &rule94},
+       {7835, 1, &rule116},
+       {7836, 2, &rule14},
+       {7838, 1, &rule117},
+       {7839, 1, &rule14},
        {7840, 1, &rule21},
        {7841, 1, &rule22},
        {7842, 1, &rule21},
@@ -1527,84 +1738,90 @@ static const struct _charblock_ allchars[]={
        {7927, 1, &rule22},
        {7928, 1, &rule21},
        {7929, 1, &rule22},
-       {7936, 8, &rule95},
-       {7944, 8, &rule96},
-       {7952, 6, &rule95},
-       {7960, 6, &rule96},
-       {7968, 8, &rule95},
-       {7976, 8, &rule96},
-       {7984, 8, &rule95},
-       {7992, 8, &rule96},
-       {8000, 6, &rule95},
-       {8008, 6, &rule96},
+       {7930, 1, &rule21},
+       {7931, 1, &rule22},
+       {7932, 1, &rule21},
+       {7933, 1, &rule22},
+       {7934, 1, &rule21},
+       {7935, 1, &rule22},
+       {7936, 8, &rule118},
+       {7944, 8, &rule119},
+       {7952, 6, &rule118},
+       {7960, 6, &rule119},
+       {7968, 8, &rule118},
+       {7976, 8, &rule119},
+       {7984, 8, &rule118},
+       {7992, 8, &rule119},
+       {8000, 6, &rule118},
+       {8008, 6, &rule119},
        {8016, 1, &rule14},
-       {8017, 1, &rule95},
+       {8017, 1, &rule118},
        {8018, 1, &rule14},
-       {8019, 1, &rule95},
+       {8019, 1, &rule118},
        {8020, 1, &rule14},
-       {8021, 1, &rule95},
+       {8021, 1, &rule118},
        {8022, 1, &rule14},
-       {8023, 1, &rule95},
-       {8025, 1, &rule96},
-       {8027, 1, &rule96},
-       {8029, 1, &rule96},
-       {8031, 1, &rule96},
-       {8032, 8, &rule95},
-       {8040, 8, &rule96},
-       {8048, 2, &rule97},
-       {8050, 4, &rule98},
-       {8054, 2, &rule99},
-       {8056, 2, &rule100},
-       {8058, 2, &rule101},
-       {8060, 2, &rule102},
-       {8064, 8, &rule95},
-       {8072, 8, &rule103},
-       {8080, 8, &rule95},
-       {8088, 8, &rule103},
-       {8096, 8, &rule95},
-       {8104, 8, &rule103},
-       {8112, 2, &rule95},
+       {8023, 1, &rule118},
+       {8025, 1, &rule119},
+       {8027, 1, &rule119},
+       {8029, 1, &rule119},
+       {8031, 1, &rule119},
+       {8032, 8, &rule118},
+       {8040, 8, &rule119},
+       {8048, 2, &rule120},
+       {8050, 4, &rule121},
+       {8054, 2, &rule122},
+       {8056, 2, &rule123},
+       {8058, 2, &rule124},
+       {8060, 2, &rule125},
+       {8064, 8, &rule118},
+       {8072, 8, &rule126},
+       {8080, 8, &rule118},
+       {8088, 8, &rule126},
+       {8096, 8, &rule118},
+       {8104, 8, &rule126},
+       {8112, 2, &rule118},
        {8114, 1, &rule14},
-       {8115, 1, &rule104},
+       {8115, 1, &rule127},
        {8116, 1, &rule14},
        {8118, 2, &rule14},
-       {8120, 2, &rule96},
-       {8122, 2, &rule105},
-       {8124, 1, &rule106},
+       {8120, 2, &rule119},
+       {8122, 2, &rule128},
+       {8124, 1, &rule129},
        {8125, 1, &rule10},
-       {8126, 1, &rule107},
+       {8126, 1, &rule130},
        {8127, 3, &rule10},
        {8130, 1, &rule14},
-       {8131, 1, &rule104},
+       {8131, 1, &rule127},
        {8132, 1, &rule14},
        {8134, 2, &rule14},
-       {8136, 4, &rule108},
-       {8140, 1, &rule106},
+       {8136, 4, &rule131},
+       {8140, 1, &rule129},
        {8141, 3, &rule10},
-       {8144, 2, &rule95},
+       {8144, 2, &rule118},
        {8146, 2, &rule14},
        {8150, 2, &rule14},
-       {8152, 2, &rule96},
-       {8154, 2, &rule109},
+       {8152, 2, &rule119},
+       {8154, 2, &rule132},
        {8157, 3, &rule10},
-       {8160, 2, &rule95},
+       {8160, 2, &rule118},
        {8162, 3, &rule14},
-       {8165, 1, &rule84},
+       {8165, 1, &rule101},
        {8166, 2, &rule14},
-       {8168, 2, &rule96},
-       {8170, 2, &rule110},
-       {8172, 1, &rule87},
+       {8168, 2, &rule119},
+       {8170, 2, &rule133},
+       {8172, 1, &rule104},
        {8173, 3, &rule10},
        {8178, 1, &rule14},
-       {8179, 1, &rule104},
+       {8179, 1, &rule127},
        {8180, 1, &rule14},
        {8182, 2, &rule14},
-       {8184, 2, &rule111},
-       {8186, 2, &rule112},
-       {8188, 1, &rule106},
+       {8184, 2, &rule134},
+       {8186, 2, &rule135},
+       {8188, 1, &rule129},
        {8189, 2, &rule10},
-       {8192, 12, &rule1},
-       {8204, 4, &rule16},
+       {8192, 11, &rule1},
+       {8203, 5, &rule16},
        {8208, 6, &rule7},
        {8214, 2, &rule2},
        {8216, 1, &rule15},
@@ -1615,8 +1832,8 @@ static const struct _charblock_ allchars[]={
        {8222, 1, &rule4},
        {8223, 1, &rule15},
        {8224, 8, &rule2},
-       {8232, 1, &rule113},
-       {8233, 1, &rule114},
+       {8232, 1, &rule136},
+       {8233, 1, &rule137},
        {8234, 5, &rule16},
        {8239, 1, &rule1},
        {8240, 9, &rule2},
@@ -1632,9 +1849,9 @@ static const struct _charblock_ allchars[]={
        {8274, 1, &rule6},
        {8275, 1, &rule2},
        {8276, 1, &rule11},
-       {8279, 1, &rule2},
+       {8277, 10, &rule2},
        {8287, 1, &rule1},
-       {8288, 4, &rule16},
+       {8288, 5, &rule16},
        {8298, 6, &rule16},
        {8304, 1, &rule17},
        {8305, 1, &rule14},
@@ -1647,56 +1864,63 @@ static const struct _charblock_ allchars[]={
        {8330, 3, &rule6},
        {8333, 1, &rule4},
        {8334, 1, &rule5},
-       {8352, 18, &rule3},
-       {8400, 13, &rule66},
-       {8413, 4, &rule89},
-       {8417, 1, &rule66},
-       {8418, 3, &rule89},
-       {8421, 6, &rule66},
+       {8336, 5, &rule80},
+       {8352, 22, &rule3},
+       {8400, 13, &rule81},
+       {8413, 4, &rule106},
+       {8417, 1, &rule81},
+       {8418, 3, &rule106},
+       {8421, 12, &rule81},
        {8448, 2, &rule13},
-       {8450, 1, &rule79},
+       {8450, 1, &rule95},
        {8451, 4, &rule13},
-       {8455, 1, &rule79},
+       {8455, 1, &rule95},
        {8456, 2, &rule13},
        {8458, 1, &rule14},
-       {8459, 3, &rule79},
+       {8459, 3, &rule95},
        {8462, 2, &rule14},
-       {8464, 3, &rule79},
+       {8464, 3, &rule95},
        {8467, 1, &rule14},
        {8468, 1, &rule13},
-       {8469, 1, &rule79},
+       {8469, 1, &rule95},
        {8470, 3, &rule13},
-       {8473, 5, &rule79},
+       {8473, 5, &rule95},
        {8478, 6, &rule13},
-       {8484, 1, &rule79},
+       {8484, 1, &rule95},
        {8485, 1, &rule13},
-       {8486, 1, &rule115},
+       {8486, 1, &rule138},
        {8487, 1, &rule13},
-       {8488, 1, &rule79},
+       {8488, 1, &rule95},
        {8489, 1, &rule13},
-       {8490, 1, &rule116},
-       {8491, 1, &rule117},
-       {8492, 2, &rule79},
+       {8490, 1, &rule139},
+       {8491, 1, &rule140},
+       {8492, 2, &rule95},
        {8494, 1, &rule13},
        {8495, 1, &rule14},
-       {8496, 2, &rule79},
-       {8498, 1, &rule13},
-       {8499, 1, &rule79},
+       {8496, 2, &rule95},
+       {8498, 1, &rule141},
+       {8499, 1, &rule95},
        {8500, 1, &rule14},
-       {8501, 4, &rule43},
+       {8501, 4, &rule45},
        {8505, 1, &rule14},
        {8506, 2, &rule13},
-       {8509, 1, &rule14},
-       {8510, 2, &rule79},
+       {8508, 2, &rule14},
+       {8510, 2, &rule95},
        {8512, 5, &rule6},
-       {8517, 1, &rule79},
+       {8517, 1, &rule95},
        {8518, 4, &rule14},
        {8522, 1, &rule13},
        {8523, 1, &rule6},
+       {8524, 2, &rule13},
+       {8526, 1, &rule142},
+       {8527, 1, &rule13},
        {8531, 13, &rule17},
-       {8544, 16, &rule118},
-       {8560, 16, &rule119},
-       {8576, 4, &rule93},
+       {8544, 16, &rule143},
+       {8560, 16, &rule144},
+       {8576, 3, &rule113},
+       {8579, 1, &rule21},
+       {8580, 1, &rule22},
+       {8581, 4, &rule113},
        {8592, 5, &rule6},
        {8597, 5, &rule13},
        {8602, 2, &rule6},
@@ -1727,16 +1951,15 @@ static const struct _charblock_ allchars[]={
        {9084, 1, &rule6},
        {9085, 30, &rule13},
        {9115, 25, &rule6},
-       {9140, 1, &rule4},
-       {9141, 1, &rule5},
-       {9142, 1, &rule2},
-       {9143, 26, &rule13},
+       {9140, 40, &rule13},
+       {9180, 6, &rule6},
+       {9186, 6, &rule13},
        {9216, 39, &rule13},
        {9280, 11, &rule13},
        {9312, 60, &rule17},
        {9372, 26, &rule13},
-       {9398, 26, &rule120},
-       {9424, 26, &rule121},
+       {9398, 26, &rule145},
+       {9424, 26, &rule146},
        {9450, 22, &rule17},
        {9472, 183, &rule13},
        {9655, 1, &rule6},
@@ -1744,12 +1967,11 @@ static const struct _charblock_ allchars[]={
        {9665, 1, &rule6},
        {9666, 54, &rule13},
        {9720, 8, &rule6},
-       {9728, 24, &rule13},
-       {9753, 86, &rule13},
+       {9728, 111, &rule13},
        {9839, 1, &rule6},
-       {9840, 14, &rule13},
-       {9856, 18, &rule13},
-       {9888, 2, &rule13},
+       {9840, 46, &rule13},
+       {9888, 29, &rule13},
+       {9920, 4, &rule13},
        {9985, 4, &rule13},
        {9990, 4, &rule13},
        {9996, 28, &rule13},
@@ -1777,6 +1999,11 @@ static const struct _charblock_ allchars[]={
        {10132, 1, &rule13},
        {10136, 24, &rule13},
        {10161, 14, &rule13},
+       {10176, 5, &rule6},
+       {10181, 1, &rule4},
+       {10182, 1, &rule5},
+       {10183, 4, &rule6},
+       {10188, 1, &rule6},
        {10192, 22, &rule6},
        {10214, 1, &rule4},
        {10215, 1, &rule5},
@@ -1784,6 +2011,10 @@ static const struct _charblock_ allchars[]={
        {10217, 1, &rule5},
        {10218, 1, &rule4},
        {10219, 1, &rule5},
+       {10220, 1, &rule4},
+       {10221, 1, &rule5},
+       {10222, 1, &rule4},
+       {10223, 1, &rule5},
        {10224, 16, &rule6},
        {10240, 256, &rule13},
        {10496, 131, &rule6},
@@ -1818,7 +2049,187 @@ static const struct _charblock_ allchars[]={
        {10748, 1, &rule4},
        {10749, 1, &rule5},
        {10750, 258, &rule6},
-       {11008, 14, &rule13},
+       {11008, 48, &rule13},
+       {11056, 21, &rule6},
+       {11077, 2, &rule13},
+       {11079, 6, &rule6},
+       {11088, 5, &rule13},
+       {11264, 47, &rule109},
+       {11312, 47, &rule110},
+       {11360, 1, &rule21},
+       {11361, 1, &rule22},
+       {11362, 1, &rule147},
+       {11363, 1, &rule148},
+       {11364, 1, &rule149},
+       {11365, 1, &rule150},
+       {11366, 1, &rule151},
+       {11367, 1, &rule21},
+       {11368, 1, &rule22},
+       {11369, 1, &rule21},
+       {11370, 1, &rule22},
+       {11371, 1, &rule21},
+       {11372, 1, &rule22},
+       {11373, 1, &rule152},
+       {11374, 1, &rule153},
+       {11375, 1, &rule154},
+       {11377, 1, &rule14},
+       {11378, 1, &rule21},
+       {11379, 1, &rule22},
+       {11380, 1, &rule14},
+       {11381, 1, &rule21},
+       {11382, 1, &rule22},
+       {11383, 6, &rule14},
+       {11389, 1, &rule80},
+       {11392, 1, &rule21},
+       {11393, 1, &rule22},
+       {11394, 1, &rule21},
+       {11395, 1, &rule22},
+       {11396, 1, &rule21},
+       {11397, 1, &rule22},
+       {11398, 1, &rule21},
+       {11399, 1, &rule22},
+       {11400, 1, &rule21},
+       {11401, 1, &rule22},
+       {11402, 1, &rule21},
+       {11403, 1, &rule22},
+       {11404, 1, &rule21},
+       {11405, 1, &rule22},
+       {11406, 1, &rule21},
+       {11407, 1, &rule22},
+       {11408, 1, &rule21},
+       {11409, 1, &rule22},
+       {11410, 1, &rule21},
+       {11411, 1, &rule22},
+       {11412, 1, &rule21},
+       {11413, 1, &rule22},
+       {11414, 1, &rule21},
+       {11415, 1, &rule22},
+       {11416, 1, &rule21},
+       {11417, 1, &rule22},
+       {11418, 1, &rule21},
+       {11419, 1, &rule22},
+       {11420, 1, &rule21},
+       {11421, 1, &rule22},
+       {11422, 1, &rule21},
+       {11423, 1, &rule22},
+       {11424, 1, &rule21},
+       {11425, 1, &rule22},
+       {11426, 1, &rule21},
+       {11427, 1, &rule22},
+       {11428, 1, &rule21},
+       {11429, 1, &rule22},
+       {11430, 1, &rule21},
+       {11431, 1, &rule22},
+       {11432, 1, &rule21},
+       {11433, 1, &rule22},
+       {11434, 1, &rule21},
+       {11435, 1, &rule22},
+       {11436, 1, &rule21},
+       {11437, 1, &rule22},
+       {11438, 1, &rule21},
+       {11439, 1, &rule22},
+       {11440, 1, &rule21},
+       {11441, 1, &rule22},
+       {11442, 1, &rule21},
+       {11443, 1, &rule22},
+       {11444, 1, &rule21},
+       {11445, 1, &rule22},
+       {11446, 1, &rule21},
+       {11447, 1, &rule22},
+       {11448, 1, &rule21},
+       {11449, 1, &rule22},
+       {11450, 1, &rule21},
+       {11451, 1, &rule22},
+       {11452, 1, &rule21},
+       {11453, 1, &rule22},
+       {11454, 1, &rule21},
+       {11455, 1, &rule22},
+       {11456, 1, &rule21},
+       {11457, 1, &rule22},
+       {11458, 1, &rule21},
+       {11459, 1, &rule22},
+       {11460, 1, &rule21},
+       {11461, 1, &rule22},
+       {11462, 1, &rule21},
+       {11463, 1, &rule22},
+       {11464, 1, &rule21},
+       {11465, 1, &rule22},
+       {11466, 1, &rule21},
+       {11467, 1, &rule22},
+       {11468, 1, &rule21},
+       {11469, 1, &rule22},
+       {11470, 1, &rule21},
+       {11471, 1, &rule22},
+       {11472, 1, &rule21},
+       {11473, 1, &rule22},
+       {11474, 1, &rule21},
+       {11475, 1, &rule22},
+       {11476, 1, &rule21},
+       {11477, 1, &rule22},
+       {11478, 1, &rule21},
+       {11479, 1, &rule22},
+       {11480, 1, &rule21},
+       {11481, 1, &rule22},
+       {11482, 1, &rule21},
+       {11483, 1, &rule22},
+       {11484, 1, &rule21},
+       {11485, 1, &rule22},
+       {11486, 1, &rule21},
+       {11487, 1, &rule22},
+       {11488, 1, &rule21},
+       {11489, 1, &rule22},
+       {11490, 1, &rule21},
+       {11491, 1, &rule22},
+       {11492, 1, &rule14},
+       {11493, 6, &rule13},
+       {11513, 4, &rule2},
+       {11517, 1, &rule17},
+       {11518, 2, &rule2},
+       {11520, 38, &rule155},
+       {11568, 54, &rule45},
+       {11631, 1, &rule80},
+       {11648, 23, &rule45},
+       {11680, 7, &rule45},
+       {11688, 7, &rule45},
+       {11696, 7, &rule45},
+       {11704, 7, &rule45},
+       {11712, 7, &rule45},
+       {11720, 7, &rule45},
+       {11728, 7, &rule45},
+       {11736, 7, &rule45},
+       {11744, 32, &rule81},
+       {11776, 2, &rule2},
+       {11778, 1, &rule15},
+       {11779, 1, &rule19},
+       {11780, 1, &rule15},
+       {11781, 1, &rule19},
+       {11782, 3, &rule2},
+       {11785, 1, &rule15},
+       {11786, 1, &rule19},
+       {11787, 1, &rule2},
+       {11788, 1, &rule15},
+       {11789, 1, &rule19},
+       {11790, 9, &rule2},
+       {11799, 1, &rule7},
+       {11800, 2, &rule2},
+       {11802, 1, &rule7},
+       {11803, 1, &rule2},
+       {11804, 1, &rule15},
+       {11805, 1, &rule19},
+       {11806, 2, &rule2},
+       {11808, 1, &rule15},
+       {11809, 1, &rule19},
+       {11810, 1, &rule4},
+       {11811, 1, &rule5},
+       {11812, 1, &rule4},
+       {11813, 1, &rule5},
+       {11814, 1, &rule4},
+       {11815, 1, &rule5},
+       {11816, 1, &rule4},
+       {11817, 1, &rule5},
+       {11818, 5, &rule2},
+       {11823, 1, &rule80},
+       {11824, 1, &rule2},
        {11904, 26, &rule13},
        {11931, 89, &rule13},
        {12032, 214, &rule13},
@@ -1826,9 +2237,9 @@ static const struct _charblock_ allchars[]={
        {12288, 1, &rule1},
        {12289, 3, &rule2},
        {12292, 1, &rule13},
-       {12293, 1, &rule65},
-       {12294, 1, &rule43},
-       {12295, 1, &rule93},
+       {12293, 1, &rule80},
+       {12294, 1, &rule45},
+       {12295, 1, &rule113},
        {12296, 1, &rule4},
        {12297, 1, &rule5},
        {12298, 1, &rule4},
@@ -1852,79 +2263,308 @@ static const struct _charblock_ allchars[]={
        {12317, 1, &rule4},
        {12318, 2, &rule5},
        {12320, 1, &rule13},
-       {12321, 9, &rule93},
-       {12330, 6, &rule66},
+       {12321, 9, &rule113},
+       {12330, 6, &rule81},
        {12336, 1, &rule7},
-       {12337, 5, &rule65},
+       {12337, 5, &rule80},
        {12342, 2, &rule13},
-       {12344, 3, &rule93},
-       {12347, 1, &rule65},
-       {12348, 1, &rule43},
+       {12344, 3, &rule113},
+       {12347, 1, &rule80},
+       {12348, 1, &rule45},
        {12349, 1, &rule2},
        {12350, 2, &rule13},
-       {12353, 86, &rule43},
-       {12441, 2, &rule66},
+       {12353, 86, &rule45},
+       {12441, 2, &rule81},
        {12443, 2, &rule10},
-       {12445, 2, &rule65},
-       {12447, 1, &rule43},
+       {12445, 2, &rule80},
+       {12447, 1, &rule45},
        {12448, 1, &rule7},
-       {12449, 90, &rule43},
-       {12539, 1, &rule11},
-       {12540, 3, &rule65},
-       {12543, 1, &rule43},
-       {12549, 40, &rule43},
-       {12593, 94, &rule43},
+       {12449, 90, &rule45},
+       {12539, 1, &rule2},
+       {12540, 3, &rule80},
+       {12543, 1, &rule45},
+       {12549, 41, &rule45},
+       {12593, 94, &rule45},
        {12688, 2, &rule13},
        {12690, 4, &rule17},
        {12694, 10, &rule13},
-       {12704, 24, &rule43},
-       {12784, 16, &rule43},
+       {12704, 24, &rule45},
+       {12736, 36, &rule13},
+       {12784, 16, &rule45},
        {12800, 31, &rule13},
        {12832, 10, &rule17},
        {12842, 26, &rule13},
        {12880, 1, &rule13},
        {12881, 15, &rule17},
-       {12896, 30, &rule13},
-       {12927, 1, &rule13},
+       {12896, 32, &rule13},
        {12928, 10, &rule17},
        {12938, 39, &rule13},
        {12977, 15, &rule17},
        {12992, 63, &rule13},
        {13056, 256, &rule13},
-       {13312, 6582, &rule43},
+       {13312, 6582, &rule45},
        {19904, 64, &rule13},
-       {19968, 20902, &rule43},
-       {40960, 1165, &rule43},
+       {19968, 20932, &rule45},
+       {40960, 21, &rule45},
+       {40981, 1, &rule80},
+       {40982, 1143, &rule45},
        {42128, 55, &rule13},
-       {44032, 11172, &rule43},
-       {55296, 896, &rule122},
-       {56192, 128, &rule122},
-       {56320, 1024, &rule122},
-       {57344, 6400, &rule123},
-       {63744, 302, &rule43},
-       {64048, 59, &rule43},
+       {42240, 268, &rule45},
+       {42508, 1, &rule80},
+       {42509, 3, &rule2},
+       {42512, 16, &rule45},
+       {42528, 10, &rule8},
+       {42538, 2, &rule45},
+       {42560, 1, &rule21},
+       {42561, 1, &rule22},
+       {42562, 1, &rule21},
+       {42563, 1, &rule22},
+       {42564, 1, &rule21},
+       {42565, 1, &rule22},
+       {42566, 1, &rule21},
+       {42567, 1, &rule22},
+       {42568, 1, &rule21},
+       {42569, 1, &rule22},
+       {42570, 1, &rule21},
+       {42571, 1, &rule22},
+       {42572, 1, &rule21},
+       {42573, 1, &rule22},
+       {42574, 1, &rule21},
+       {42575, 1, &rule22},
+       {42576, 1, &rule21},
+       {42577, 1, &rule22},
+       {42578, 1, &rule21},
+       {42579, 1, &rule22},
+       {42580, 1, &rule21},
+       {42581, 1, &rule22},
+       {42582, 1, &rule21},
+       {42583, 1, &rule22},
+       {42584, 1, &rule21},
+       {42585, 1, &rule22},
+       {42586, 1, &rule21},
+       {42587, 1, &rule22},
+       {42588, 1, &rule21},
+       {42589, 1, &rule22},
+       {42590, 1, &rule21},
+       {42591, 1, &rule22},
+       {42594, 1, &rule21},
+       {42595, 1, &rule22},
+       {42596, 1, &rule21},
+       {42597, 1, &rule22},
+       {42598, 1, &rule21},
+       {42599, 1, &rule22},
+       {42600, 1, &rule21},
+       {42601, 1, &rule22},
+       {42602, 1, &rule21},
+       {42603, 1, &rule22},
+       {42604, 1, &rule21},
+       {42605, 1, &rule22},
+       {42606, 1, &rule45},
+       {42607, 1, &rule81},
+       {42608, 3, &rule106},
+       {42611, 1, &rule2},
+       {42620, 2, &rule81},
+       {42622, 1, &rule2},
+       {42623, 1, &rule80},
+       {42624, 1, &rule21},
+       {42625, 1, &rule22},
+       {42626, 1, &rule21},
+       {42627, 1, &rule22},
+       {42628, 1, &rule21},
+       {42629, 1, &rule22},
+       {42630, 1, &rule21},
+       {42631, 1, &rule22},
+       {42632, 1, &rule21},
+       {42633, 1, &rule22},
+       {42634, 1, &rule21},
+       {42635, 1, &rule22},
+       {42636, 1, &rule21},
+       {42637, 1, &rule22},
+       {42638, 1, &rule21},
+       {42639, 1, &rule22},
+       {42640, 1, &rule21},
+       {42641, 1, &rule22},
+       {42642, 1, &rule21},
+       {42643, 1, &rule22},
+       {42644, 1, &rule21},
+       {42645, 1, &rule22},
+       {42646, 1, &rule21},
+       {42647, 1, &rule22},
+       {42752, 23, &rule10},
+       {42775, 9, &rule80},
+       {42784, 2, &rule10},
+       {42786, 1, &rule21},
+       {42787, 1, &rule22},
+       {42788, 1, &rule21},
+       {42789, 1, &rule22},
+       {42790, 1, &rule21},
+       {42791, 1, &rule22},
+       {42792, 1, &rule21},
+       {42793, 1, &rule22},
+       {42794, 1, &rule21},
+       {42795, 1, &rule22},
+       {42796, 1, &rule21},
+       {42797, 1, &rule22},
+       {42798, 1, &rule21},
+       {42799, 1, &rule22},
+       {42800, 2, &rule14},
+       {42802, 1, &rule21},
+       {42803, 1, &rule22},
+       {42804, 1, &rule21},
+       {42805, 1, &rule22},
+       {42806, 1, &rule21},
+       {42807, 1, &rule22},
+       {42808, 1, &rule21},
+       {42809, 1, &rule22},
+       {42810, 1, &rule21},
+       {42811, 1, &rule22},
+       {42812, 1, &rule21},
+       {42813, 1, &rule22},
+       {42814, 1, &rule21},
+       {42815, 1, &rule22},
+       {42816, 1, &rule21},
+       {42817, 1, &rule22},
+       {42818, 1, &rule21},
+       {42819, 1, &rule22},
+       {42820, 1, &rule21},
+       {42821, 1, &rule22},
+       {42822, 1, &rule21},
+       {42823, 1, &rule22},
+       {42824, 1, &rule21},
+       {42825, 1, &rule22},
+       {42826, 1, &rule21},
+       {42827, 1, &rule22},
+       {42828, 1, &rule21},
+       {42829, 1, &rule22},
+       {42830, 1, &rule21},
+       {42831, 1, &rule22},
+       {42832, 1, &rule21},
+       {42833, 1, &rule22},
+       {42834, 1, &rule21},
+       {42835, 1, &rule22},
+       {42836, 1, &rule21},
+       {42837, 1, &rule22},
+       {42838, 1, &rule21},
+       {42839, 1, &rule22},
+       {42840, 1, &rule21},
+       {42841, 1, &rule22},
+       {42842, 1, &rule21},
+       {42843, 1, &rule22},
+       {42844, 1, &rule21},
+       {42845, 1, &rule22},
+       {42846, 1, &rule21},
+       {42847, 1, &rule22},
+       {42848, 1, &rule21},
+       {42849, 1, &rule22},
+       {42850, 1, &rule21},
+       {42851, 1, &rule22},
+       {42852, 1, &rule21},
+       {42853, 1, &rule22},
+       {42854, 1, &rule21},
+       {42855, 1, &rule22},
+       {42856, 1, &rule21},
+       {42857, 1, &rule22},
+       {42858, 1, &rule21},
+       {42859, 1, &rule22},
+       {42860, 1, &rule21},
+       {42861, 1, &rule22},
+       {42862, 1, &rule21},
+       {42863, 1, &rule22},
+       {42864, 1, &rule80},
+       {42865, 8, &rule14},
+       {42873, 1, &rule21},
+       {42874, 1, &rule22},
+       {42875, 1, &rule21},
+       {42876, 1, &rule22},
+       {42877, 1, &rule156},
+       {42878, 1, &rule21},
+       {42879, 1, &rule22},
+       {42880, 1, &rule21},
+       {42881, 1, &rule22},
+       {42882, 1, &rule21},
+       {42883, 1, &rule22},
+       {42884, 1, &rule21},
+       {42885, 1, &rule22},
+       {42886, 1, &rule21},
+       {42887, 1, &rule22},
+       {42888, 1, &rule80},
+       {42889, 2, &rule10},
+       {42891, 1, &rule21},
+       {42892, 1, &rule22},
+       {43003, 7, &rule45},
+       {43010, 1, &rule81},
+       {43011, 3, &rule45},
+       {43014, 1, &rule81},
+       {43015, 4, &rule45},
+       {43019, 1, &rule81},
+       {43020, 23, &rule45},
+       {43043, 2, &rule111},
+       {43045, 2, &rule81},
+       {43047, 1, &rule111},
+       {43048, 4, &rule13},
+       {43072, 52, &rule45},
+       {43124, 4, &rule2},
+       {43136, 2, &rule111},
+       {43138, 50, &rule45},
+       {43188, 16, &rule111},
+       {43204, 1, &rule81},
+       {43214, 2, &rule2},
+       {43216, 10, &rule8},
+       {43264, 10, &rule8},
+       {43274, 28, &rule45},
+       {43302, 8, &rule81},
+       {43310, 2, &rule2},
+       {43312, 23, &rule45},
+       {43335, 11, &rule81},
+       {43346, 2, &rule111},
+       {43359, 1, &rule2},
+       {43520, 41, &rule45},
+       {43561, 6, &rule81},
+       {43567, 2, &rule111},
+       {43569, 2, &rule81},
+       {43571, 2, &rule111},
+       {43573, 2, &rule81},
+       {43584, 3, &rule45},
+       {43587, 1, &rule81},
+       {43588, 8, &rule45},
+       {43596, 1, &rule81},
+       {43597, 1, &rule111},
+       {43600, 10, &rule8},
+       {43612, 4, &rule2},
+       {44032, 11172, &rule45},
+       {55296, 896, &rule157},
+       {56192, 128, &rule157},
+       {56320, 1024, &rule157},
+       {57344, 6400, &rule158},
+       {63744, 302, &rule45},
+       {64048, 59, &rule45},
+       {64112, 106, &rule45},
        {64256, 7, &rule14},
        {64275, 5, &rule14},
-       {64285, 1, &rule43},
-       {64286, 1, &rule66},
-       {64287, 10, &rule43},
+       {64285, 1, &rule45},
+       {64286, 1, &rule81},
+       {64287, 10, &rule45},
        {64297, 1, &rule6},
-       {64298, 13, &rule43},
-       {64312, 5, &rule43},
-       {64318, 1, &rule43},
-       {64320, 2, &rule43},
-       {64323, 2, &rule43},
-       {64326, 108, &rule43},
-       {64467, 363, &rule43},
+       {64298, 13, &rule45},
+       {64312, 5, &rule45},
+       {64318, 1, &rule45},
+       {64320, 2, &rule45},
+       {64323, 2, &rule45},
+       {64326, 108, &rule45},
+       {64467, 363, &rule45},
        {64830, 1, &rule4},
        {64831, 1, &rule5},
-       {64848, 64, &rule43},
-       {64914, 54, &rule43},
-       {65008, 12, &rule43},
+       {64848, 64, &rule45},
+       {64914, 54, &rule45},
+       {65008, 12, &rule45},
        {65020, 1, &rule3},
        {65021, 1, &rule13},
-       {65024, 16, &rule66},
-       {65056, 4, &rule66},
+       {65024, 16, &rule81},
+       {65040, 7, &rule2},
+       {65047, 1, &rule4},
+       {65048, 1, &rule5},
+       {65049, 1, &rule2},
+       {65056, 7, &rule81},
        {65072, 1, &rule2},
        {65073, 2, &rule7},
        {65075, 2, &rule11},
@@ -1965,8 +2605,8 @@ static const struct _charblock_ allchars[]={
        {65128, 1, &rule2},
        {65129, 1, &rule3},
        {65130, 2, &rule2},
-       {65136, 5, &rule43},
-       {65142, 135, &rule43},
+       {65136, 5, &rule45},
+       {65142, 135, &rule45},
        {65279, 1, &rule16},
        {65281, 3, &rule2},
        {65284, 1, &rule3},
@@ -1999,17 +2639,16 @@ static const struct _charblock_ allchars[]={
        {65377, 1, &rule2},
        {65378, 1, &rule4},
        {65379, 1, &rule5},
-       {65380, 1, &rule2},
-       {65381, 1, &rule11},
-       {65382, 10, &rule43},
-       {65392, 1, &rule65},
-       {65393, 45, &rule43},
-       {65438, 2, &rule65},
-       {65440, 31, &rule43},
-       {65474, 6, &rule43},
-       {65482, 6, &rule43},
-       {65490, 6, &rule43},
-       {65498, 3, &rule43},
+       {65380, 2, &rule2},
+       {65382, 10, &rule45},
+       {65392, 1, &rule80},
+       {65393, 45, &rule45},
+       {65438, 2, &rule80},
+       {65440, 31, &rule45},
+       {65474, 6, &rule45},
+       {65482, 6, &rule45},
+       {65490, 6, &rule45},
+       {65498, 3, &rule45},
        {65504, 2, &rule3},
        {65506, 1, &rule6},
        {65507, 1, &rule10},
@@ -2020,123 +2659,165 @@ static const struct _charblock_ allchars[]={
        {65517, 2, &rule13},
        {65529, 3, &rule16},
        {65532, 2, &rule13},
-       {65536, 12, &rule43},
-       {65549, 26, &rule43},
-       {65576, 19, &rule43},
-       {65596, 2, &rule43},
-       {65599, 15, &rule43},
-       {65616, 14, &rule43},
-       {65664, 123, &rule43},
+       {65536, 12, &rule45},
+       {65549, 26, &rule45},
+       {65576, 19, &rule45},
+       {65596, 2, &rule45},
+       {65599, 15, &rule45},
+       {65616, 14, &rule45},
+       {65664, 123, &rule45},
        {65792, 2, &rule2},
        {65794, 1, &rule13},
        {65799, 45, &rule17},
        {65847, 9, &rule13},
-       {66304, 31, &rule43},
+       {65856, 53, &rule113},
+       {65909, 4, &rule17},
+       {65913, 17, &rule13},
+       {65930, 1, &rule17},
+       {65936, 12, &rule13},
+       {66000, 45, &rule13},
+       {66045, 1, &rule81},
+       {66176, 29, &rule45},
+       {66208, 49, &rule45},
+       {66304, 31, &rule45},
        {66336, 4, &rule17},
-       {66352, 26, &rule43},
-       {66378, 1, &rule93},
-       {66432, 30, &rule43},
+       {66352, 17, &rule45},
+       {66369, 1, &rule113},
+       {66370, 8, &rule45},
+       {66378, 1, &rule113},
+       {66432, 30, &rule45},
        {66463, 1, &rule2},
-       {66560, 40, &rule124},
-       {66600, 40, &rule125},
-       {66640, 78, &rule43},
+       {66464, 36, &rule45},
+       {66504, 8, &rule45},
+       {66512, 1, &rule2},
+       {66513, 5, &rule113},
+       {66560, 40, &rule159},
+       {66600, 40, &rule160},
+       {66640, 78, &rule45},
        {66720, 10, &rule8},
-       {67584, 6, &rule43},
-       {67592, 1, &rule43},
-       {67594, 44, &rule43},
-       {67639, 2, &rule43},
-       {67644, 1, &rule43},
-       {67647, 1, &rule43},
+       {67584, 6, &rule45},
+       {67592, 1, &rule45},
+       {67594, 44, &rule45},
+       {67639, 2, &rule45},
+       {67644, 1, &rule45},
+       {67647, 1, &rule45},
+       {67840, 22, &rule45},
+       {67862, 4, &rule17},
+       {67871, 1, &rule2},
+       {67872, 26, &rule45},
+       {67903, 1, &rule2},
+       {68096, 1, &rule45},
+       {68097, 3, &rule81},
+       {68101, 2, &rule81},
+       {68108, 4, &rule81},
+       {68112, 4, &rule45},
+       {68117, 3, &rule45},
+       {68121, 27, &rule45},
+       {68152, 3, &rule81},
+       {68159, 1, &rule81},
+       {68160, 8, &rule17},
+       {68176, 9, &rule2},
+       {73728, 879, &rule45},
+       {74752, 99, &rule113},
+       {74864, 4, &rule2},
        {118784, 246, &rule13},
        {119040, 39, &rule13},
-       {119082, 59, &rule13},
-       {119141, 2, &rule92},
-       {119143, 3, &rule66},
+       {119081, 60, &rule13},
+       {119141, 2, &rule111},
+       {119143, 3, &rule81},
        {119146, 3, &rule13},
-       {119149, 6, &rule92},
+       {119149, 6, &rule111},
        {119155, 8, &rule16},
-       {119163, 8, &rule66},
+       {119163, 8, &rule81},
        {119171, 2, &rule13},
-       {119173, 7, &rule66},
+       {119173, 7, &rule81},
        {119180, 30, &rule13},
-       {119210, 4, &rule66},
+       {119210, 4, &rule81},
        {119214, 48, &rule13},
+       {119296, 66, &rule13},
+       {119362, 3, &rule81},
+       {119365, 1, &rule13},
        {119552, 87, &rule13},
-       {119808, 26, &rule79},
+       {119648, 18, &rule17},
+       {119808, 26, &rule95},
        {119834, 26, &rule14},
-       {119860, 26, &rule79},
+       {119860, 26, &rule95},
        {119886, 7, &rule14},
        {119894, 18, &rule14},
-       {119912, 26, &rule79},
+       {119912, 26, &rule95},
        {119938, 26, &rule14},
-       {119964, 1, &rule79},
-       {119966, 2, &rule79},
-       {119970, 1, &rule79},
-       {119973, 2, &rule79},
-       {119977, 4, &rule79},
-       {119982, 8, &rule79},
+       {119964, 1, &rule95},
+       {119966, 2, &rule95},
+       {119970, 1, &rule95},
+       {119973, 2, &rule95},
+       {119977, 4, &rule95},
+       {119982, 8, &rule95},
        {119990, 4, &rule14},
        {119995, 1, &rule14},
        {119997, 7, &rule14},
        {120005, 11, &rule14},
-       {120016, 26, &rule79},
+       {120016, 26, &rule95},
        {120042, 26, &rule14},
-       {120068, 2, &rule79},
-       {120071, 4, &rule79},
-       {120077, 8, &rule79},
-       {120086, 7, &rule79},
+       {120068, 2, &rule95},
+       {120071, 4, &rule95},
+       {120077, 8, &rule95},
+       {120086, 7, &rule95},
        {120094, 26, &rule14},
-       {120120, 2, &rule79},
-       {120123, 4, &rule79},
-       {120128, 5, &rule79},
-       {120134, 1, &rule79},
-       {120138, 7, &rule79},
+       {120120, 2, &rule95},
+       {120123, 4, &rule95},
+       {120128, 5, &rule95},
+       {120134, 1, &rule95},
+       {120138, 7, &rule95},
        {120146, 26, &rule14},
-       {120172, 26, &rule79},
+       {120172, 26, &rule95},
        {120198, 26, &rule14},
-       {120224, 26, &rule79},
+       {120224, 26, &rule95},
        {120250, 26, &rule14},
-       {120276, 26, &rule79},
+       {120276, 26, &rule95},
        {120302, 26, &rule14},
-       {120328, 26, &rule79},
+       {120328, 26, &rule95},
        {120354, 26, &rule14},
-       {120380, 26, &rule79},
+       {120380, 26, &rule95},
        {120406, 26, &rule14},
-       {120432, 26, &rule79},
-       {120458, 26, &rule14},
-       {120488, 25, &rule79},
+       {120432, 26, &rule95},
+       {120458, 28, &rule14},
+       {120488, 25, &rule95},
        {120513, 1, &rule6},
        {120514, 25, &rule14},
        {120539, 1, &rule6},
        {120540, 6, &rule14},
-       {120546, 25, &rule79},
+       {120546, 25, &rule95},
        {120571, 1, &rule6},
        {120572, 25, &rule14},
        {120597, 1, &rule6},
        {120598, 6, &rule14},
-       {120604, 25, &rule79},
+       {120604, 25, &rule95},
        {120629, 1, &rule6},
        {120630, 25, &rule14},
        {120655, 1, &rule6},
        {120656, 6, &rule14},
-       {120662, 25, &rule79},
+       {120662, 25, &rule95},
        {120687, 1, &rule6},
        {120688, 25, &rule14},
        {120713, 1, &rule6},
        {120714, 6, &rule14},
-       {120720, 25, &rule79},
+       {120720, 25, &rule95},
        {120745, 1, &rule6},
        {120746, 25, &rule14},
        {120771, 1, &rule6},
        {120772, 6, &rule14},
+       {120778, 1, &rule95},
+       {120779, 1, &rule14},
        {120782, 50, &rule8},
-       {131072, 42711, &rule43},
-       {194560, 542, &rule43},
+       {126976, 44, &rule13},
+       {127024, 100, &rule13},
+       {131072, 42711, &rule45},
+       {194560, 542, &rule45},
        {917505, 1, &rule16},
        {917536, 96, &rule16},
-       {917760, 240, &rule66},
-       {983040, 65534, &rule123},
-       {1048576, 65534, &rule123}
+       {917760, 240, &rule81},
+       {983040, 65534, &rule158},
+       {1048576, 65534, &rule158}
 };
 static const struct _charblock_ convchars[]={
        {65, 26, &rule9},
@@ -2273,68 +2954,70 @@ static const struct _charblock_ convchars[]={
        {381, 1, &rule21},
        {382, 1, &rule22},
        {383, 1, &rule26},
-       {385, 1, &rule27},
+       {384, 1, &rule27},
+       {385, 1, &rule28},
        {386, 1, &rule21},
        {387, 1, &rule22},
        {388, 1, &rule21},
        {389, 1, &rule22},
-       {390, 1, &rule28},
+       {390, 1, &rule29},
        {391, 1, &rule21},
        {392, 1, &rule22},
-       {393, 2, &rule29},
+       {393, 2, &rule30},
        {395, 1, &rule21},
        {396, 1, &rule22},
-       {398, 1, &rule30},
-       {399, 1, &rule31},
-       {400, 1, &rule32},
+       {398, 1, &rule31},
+       {399, 1, &rule32},
+       {400, 1, &rule33},
        {401, 1, &rule21},
        {402, 1, &rule22},
-       {403, 1, &rule29},
-       {404, 1, &rule33},
-       {405, 1, &rule34},
-       {406, 1, &rule35},
-       {407, 1, &rule36},
+       {403, 1, &rule30},
+       {404, 1, &rule34},
+       {405, 1, &rule35},
+       {406, 1, &rule36},
+       {407, 1, &rule37},
        {408, 1, &rule21},
        {409, 1, &rule22},
-       {412, 1, &rule35},
-       {413, 1, &rule37},
-       {414, 1, &rule38},
-       {415, 1, &rule39},
+       {410, 1, &rule38},
+       {412, 1, &rule36},
+       {413, 1, &rule39},
+       {414, 1, &rule40},
+       {415, 1, &rule41},
        {416, 1, &rule21},
        {417, 1, &rule22},
        {418, 1, &rule21},
        {419, 1, &rule22},
        {420, 1, &rule21},
        {421, 1, &rule22},
-       {422, 1, &rule40},
+       {422, 1, &rule42},
        {423, 1, &rule21},
        {424, 1, &rule22},
-       {425, 1, &rule40},
+       {425, 1, &rule42},
        {428, 1, &rule21},
        {429, 1, &rule22},
-       {430, 1, &rule40},
+       {430, 1, &rule42},
        {431, 1, &rule21},
        {432, 1, &rule22},
-       {433, 2, &rule41},
+       {433, 2, &rule43},
        {435, 1, &rule21},
        {436, 1, &rule22},
        {437, 1, &rule21},
        {438, 1, &rule22},
-       {439, 1, &rule42},
+       {439, 1, &rule44},
        {440, 1, &rule21},
        {441, 1, &rule22},
        {444, 1, &rule21},
        {445, 1, &rule22},
-       {447, 1, &rule44},
-       {452, 1, &rule45},
-       {453, 1, &rule46},
-       {454, 1, &rule47},
-       {455, 1, &rule45},
-       {456, 1, &rule46},
-       {457, 1, &rule47},
-       {458, 1, &rule45},
-       {459, 1, &rule46},
-       {460, 1, &rule47},
+       {447, 1, &rule46},
+       {452, 1, &rule47},
+       {453, 1, &rule48},
+       {454, 1, &rule49},
+       {455, 1, &rule47},
+       {456, 1, &rule48},
+       {457, 1, &rule49},
+       {458, 1, &rule47},
+       {459, 1, &rule48},
+       {460, 1, &rule49},
        {461, 1, &rule21},
        {462, 1, &rule22},
        {463, 1, &rule21},
@@ -2351,7 +3034,7 @@ static const struct _charblock_ convchars[]={
        {474, 1, &rule22},
        {475, 1, &rule21},
        {476, 1, &rule22},
-       {477, 1, &rule48},
+       {477, 1, &rule50},
        {478, 1, &rule21},
        {479, 1, &rule22},
        {480, 1, &rule21},
@@ -2370,13 +3053,13 @@ static const struct _charblock_ convchars[]={
        {493, 1, &rule22},
        {494, 1, &rule21},
        {495, 1, &rule22},
-       {497, 1, &rule45},
-       {498, 1, &rule46},
-       {499, 1, &rule47},
+       {497, 1, &rule47},
+       {498, 1, &rule48},
+       {499, 1, &rule49},
        {500, 1, &rule21},
        {501, 1, &rule22},
-       {502, 1, &rule49},
-       {503, 1, &rule50},
+       {502, 1, &rule51},
+       {503, 1, &rule52},
        {504, 1, &rule21},
        {505, 1, &rule22},
        {506, 1, &rule21},
@@ -2417,7 +3100,7 @@ static const struct _charblock_ convchars[]={
        {541, 1, &rule22},
        {542, 1, &rule21},
        {543, 1, &rule22},
-       {544, 1, &rule51},
+       {544, 1, &rule53},
        {546, 1, &rule21},
        {547, 1, &rule22},
        {548, 1, &rule21},
@@ -2436,41 +3119,77 @@ static const struct _charblock_ convchars[]={
        {561, 1, &rule22},
        {562, 1, &rule21},
        {563, 1, &rule22},
-       {595, 1, &rule52},
-       {596, 1, &rule53},
-       {598, 2, &rule54},
-       {601, 1, &rule55},
-       {603, 1, &rule56},
-       {608, 1, &rule54},
-       {611, 1, &rule57},
-       {616, 1, &rule58},
-       {617, 1, &rule59},
-       {623, 1, &rule59},
-       {626, 1, &rule60},
-       {629, 1, &rule61},
-       {640, 1, &rule62},
-       {643, 1, &rule62},
-       {648, 1, &rule62},
-       {650, 2, &rule63},
-       {658, 1, &rule64},
-       {837, 1, &rule67},
-       {902, 1, &rule68},
-       {904, 3, &rule69},
-       {908, 1, &rule70},
-       {910, 2, &rule71},
+       {570, 1, &rule54},
+       {571, 1, &rule21},
+       {572, 1, &rule22},
+       {573, 1, &rule55},
+       {574, 1, &rule56},
+       {577, 1, &rule21},
+       {578, 1, &rule22},
+       {579, 1, &rule57},
+       {580, 1, &rule58},
+       {581, 1, &rule59},
+       {582, 1, &rule21},
+       {583, 1, &rule22},
+       {584, 1, &rule21},
+       {585, 1, &rule22},
+       {586, 1, &rule21},
+       {587, 1, &rule22},
+       {588, 1, &rule21},
+       {589, 1, &rule22},
+       {590, 1, &rule21},
+       {591, 1, &rule22},
+       {592, 1, &rule60},
+       {593, 1, &rule61},
+       {595, 1, &rule62},
+       {596, 1, &rule63},
+       {598, 2, &rule64},
+       {601, 1, &rule65},
+       {603, 1, &rule66},
+       {608, 1, &rule64},
+       {611, 1, &rule67},
+       {616, 1, &rule68},
+       {617, 1, &rule69},
+       {619, 1, &rule70},
+       {623, 1, &rule69},
+       {625, 1, &rule71},
+       {626, 1, &rule72},
+       {629, 1, &rule73},
+       {637, 1, &rule74},
+       {640, 1, &rule75},
+       {643, 1, &rule75},
+       {648, 1, &rule75},
+       {649, 1, &rule76},
+       {650, 2, &rule77},
+       {652, 1, &rule78},
+       {658, 1, &rule79},
+       {837, 1, &rule82},
+       {880, 1, &rule21},
+       {881, 1, &rule22},
+       {882, 1, &rule21},
+       {883, 1, &rule22},
+       {886, 1, &rule21},
+       {887, 1, &rule22},
+       {891, 3, &rule40},
+       {902, 1, &rule83},
+       {904, 3, &rule84},
+       {908, 1, &rule85},
+       {910, 2, &rule86},
        {913, 17, &rule9},
        {931, 9, &rule9},
-       {940, 1, &rule72},
-       {941, 3, &rule73},
+       {940, 1, &rule87},
+       {941, 3, &rule88},
        {945, 17, &rule12},
-       {962, 1, &rule74},
+       {962, 1, &rule89},
        {963, 9, &rule12},
-       {972, 1, &rule75},
-       {973, 2, &rule76},
-       {976, 1, &rule77},
-       {977, 1, &rule78},
-       {981, 1, &rule80},
-       {982, 1, &rule81},
+       {972, 1, &rule90},
+       {973, 2, &rule91},
+       {975, 1, &rule92},
+       {976, 1, &rule93},
+       {977, 1, &rule94},
+       {981, 1, &rule96},
+       {982, 1, &rule97},
+       {983, 1, &rule98},
        {984, 1, &rule21},
        {985, 1, &rule22},
        {986, 1, &rule21},
@@ -2495,20 +3214,21 @@ static const struct _charblock_ convchars[]={
        {1005, 1, &rule22},
        {1006, 1, &rule21},
        {1007, 1, &rule22},
-       {1008, 1, &rule82},
-       {1009, 1, &rule83},
-       {1010, 1, &rule84},
-       {1012, 1, &rule85},
-       {1013, 1, &rule86},
+       {1008, 1, &rule99},
+       {1009, 1, &rule100},
+       {1010, 1, &rule101},
+       {1012, 1, &rule102},
+       {1013, 1, &rule103},
        {1015, 1, &rule21},
        {1016, 1, &rule22},
-       {1017, 1, &rule87},
+       {1017, 1, &rule104},
        {1018, 1, &rule21},
        {1019, 1, &rule22},
-       {1024, 16, &rule88},
+       {1021, 3, &rule53},
+       {1024, 16, &rule105},
        {1040, 32, &rule9},
        {1072, 32, &rule12},
-       {1104, 16, &rule83},
+       {1104, 16, &rule100},
        {1120, 1, &rule21},
        {1121, 1, &rule22},
        {1122, 1, &rule21},
@@ -2597,6 +3317,7 @@ static const struct _charblock_ convchars[]={
        {1213, 1, &rule22},
        {1214, 1, &rule21},
        {1215, 1, &rule22},
+       {1216, 1, &rule107},
        {1217, 1, &rule21},
        {1218, 1, &rule22},
        {1219, 1, &rule21},
@@ -2611,6 +3332,7 @@ static const struct _charblock_ convchars[]={
        {1228, 1, &rule22},
        {1229, 1, &rule21},
        {1230, 1, &rule22},
+       {1231, 1, &rule108},
        {1232, 1, &rule21},
        {1233, 1, &rule22},
        {1234, 1, &rule21},
@@ -2649,8 +3371,16 @@ static const struct _charblock_ convchars[]={
        {1267, 1, &rule22},
        {1268, 1, &rule21},
        {1269, 1, &rule22},
+       {1270, 1, &rule21},
+       {1271, 1, &rule22},
        {1272, 1, &rule21},
        {1273, 1, &rule22},
+       {1274, 1, &rule21},
+       {1275, 1, &rule22},
+       {1276, 1, &rule21},
+       {1277, 1, &rule22},
+       {1278, 1, &rule21},
+       {1279, 1, &rule22},
        {1280, 1, &rule21},
        {1281, 1, &rule22},
        {1282, 1, &rule21},
@@ -2667,8 +3397,31 @@ static const struct _charblock_ convchars[]={
        {1293, 1, &rule22},
        {1294, 1, &rule21},
        {1295, 1, &rule22},
-       {1329, 38, &rule90},
-       {1377, 38, &rule91},
+       {1296, 1, &rule21},
+       {1297, 1, &rule22},
+       {1298, 1, &rule21},
+       {1299, 1, &rule22},
+       {1300, 1, &rule21},
+       {1301, 1, &rule22},
+       {1302, 1, &rule21},
+       {1303, 1, &rule22},
+       {1304, 1, &rule21},
+       {1305, 1, &rule22},
+       {1306, 1, &rule21},
+       {1307, 1, &rule22},
+       {1308, 1, &rule21},
+       {1309, 1, &rule22},
+       {1310, 1, &rule21},
+       {1311, 1, &rule22},
+       {1312, 1, &rule21},
+       {1313, 1, &rule22},
+       {1314, 1, &rule21},
+       {1315, 1, &rule22},
+       {1329, 38, &rule109},
+       {1377, 38, &rule110},
+       {4256, 38, &rule112},
+       {7545, 1, &rule114},
+       {7549, 1, &rule115},
        {7680, 1, &rule21},
        {7681, 1, &rule22},
        {7682, 1, &rule21},
@@ -2819,7 +3572,8 @@ static const struct _charblock_ convchars[]={
        {7827, 1, &rule22},
        {7828, 1, &rule21},
        {7829, 1, &rule22},
-       {7835, 1, &rule94},
+       {7835, 1, &rule116},
+       {7838, 1, &rule117},
        {7840, 1, &rule21},
        {7841, 1, &rule22},
        {7842, 1, &rule21},
@@ -2910,77 +3664,371 @@ static const struct _charblock_ convchars[]={
        {7927, 1, &rule22},
        {7928, 1, &rule21},
        {7929, 1, &rule22},
-       {7936, 8, &rule95},
-       {7944, 8, &rule96},
-       {7952, 6, &rule95},
-       {7960, 6, &rule96},
-       {7968, 8, &rule95},
-       {7976, 8, &rule96},
-       {7984, 8, &rule95},
-       {7992, 8, &rule96},
-       {8000, 6, &rule95},
-       {8008, 6, &rule96},
-       {8017, 1, &rule95},
-       {8019, 1, &rule95},
-       {8021, 1, &rule95},
-       {8023, 1, &rule95},
-       {8025, 1, &rule96},
-       {8027, 1, &rule96},
-       {8029, 1, &rule96},
-       {8031, 1, &rule96},
-       {8032, 8, &rule95},
-       {8040, 8, &rule96},
-       {8048, 2, &rule97},
-       {8050, 4, &rule98},
-       {8054, 2, &rule99},
-       {8056, 2, &rule100},
-       {8058, 2, &rule101},
-       {8060, 2, &rule102},
-       {8064, 8, &rule95},
-       {8072, 8, &rule103},
-       {8080, 8, &rule95},
-       {8088, 8, &rule103},
-       {8096, 8, &rule95},
-       {8104, 8, &rule103},
-       {8112, 2, &rule95},
-       {8115, 1, &rule104},
-       {8120, 2, &rule96},
-       {8122, 2, &rule105},
-       {8124, 1, &rule106},
-       {8126, 1, &rule107},
-       {8131, 1, &rule104},
-       {8136, 4, &rule108},
-       {8140, 1, &rule106},
-       {8144, 2, &rule95},
-       {8152, 2, &rule96},
-       {8154, 2, &rule109},
-       {8160, 2, &rule95},
-       {8165, 1, &rule84},
-       {8168, 2, &rule96},
-       {8170, 2, &rule110},
-       {8172, 1, &rule87},
-       {8179, 1, &rule104},
-       {8184, 2, &rule111},
-       {8186, 2, &rule112},
-       {8188, 1, &rule106},
-       {8486, 1, &rule115},
-       {8490, 1, &rule116},
-       {8491, 1, &rule117},
-       {8544, 16, &rule118},
-       {8560, 16, &rule119},
-       {9398, 26, &rule120},
-       {9424, 26, &rule121},
+       {7930, 1, &rule21},
+       {7931, 1, &rule22},
+       {7932, 1, &rule21},
+       {7933, 1, &rule22},
+       {7934, 1, &rule21},
+       {7935, 1, &rule22},
+       {7936, 8, &rule118},
+       {7944, 8, &rule119},
+       {7952, 6, &rule118},
+       {7960, 6, &rule119},
+       {7968, 8, &rule118},
+       {7976, 8, &rule119},
+       {7984, 8, &rule118},
+       {7992, 8, &rule119},
+       {8000, 6, &rule118},
+       {8008, 6, &rule119},
+       {8017, 1, &rule118},
+       {8019, 1, &rule118},
+       {8021, 1, &rule118},
+       {8023, 1, &rule118},
+       {8025, 1, &rule119},
+       {8027, 1, &rule119},
+       {8029, 1, &rule119},
+       {8031, 1, &rule119},
+       {8032, 8, &rule118},
+       {8040, 8, &rule119},
+       {8048, 2, &rule120},
+       {8050, 4, &rule121},
+       {8054, 2, &rule122},
+       {8056, 2, &rule123},
+       {8058, 2, &rule124},
+       {8060, 2, &rule125},
+       {8064, 8, &rule118},
+       {8072, 8, &rule126},
+       {8080, 8, &rule118},
+       {8088, 8, &rule126},
+       {8096, 8, &rule118},
+       {8104, 8, &rule126},
+       {8112, 2, &rule118},
+       {8115, 1, &rule127},
+       {8120, 2, &rule119},
+       {8122, 2, &rule128},
+       {8124, 1, &rule129},
+       {8126, 1, &rule130},
+       {8131, 1, &rule127},
+       {8136, 4, &rule131},
+       {8140, 1, &rule129},
+       {8144, 2, &rule118},
+       {8152, 2, &rule119},
+       {8154, 2, &rule132},
+       {8160, 2, &rule118},
+       {8165, 1, &rule101},
+       {8168, 2, &rule119},
+       {8170, 2, &rule133},
+       {8172, 1, &rule104},
+       {8179, 1, &rule127},
+       {8184, 2, &rule134},
+       {8186, 2, &rule135},
+       {8188, 1, &rule129},
+       {8486, 1, &rule138},
+       {8490, 1, &rule139},
+       {8491, 1, &rule140},
+       {8498, 1, &rule141},
+       {8526, 1, &rule142},
+       {8544, 16, &rule143},
+       {8560, 16, &rule144},
+       {8579, 1, &rule21},
+       {8580, 1, &rule22},
+       {9398, 26, &rule145},
+       {9424, 26, &rule146},
+       {11264, 47, &rule109},
+       {11312, 47, &rule110},
+       {11360, 1, &rule21},
+       {11361, 1, &rule22},
+       {11362, 1, &rule147},
+       {11363, 1, &rule148},
+       {11364, 1, &rule149},
+       {11365, 1, &rule150},
+       {11366, 1, &rule151},
+       {11367, 1, &rule21},
+       {11368, 1, &rule22},
+       {11369, 1, &rule21},
+       {11370, 1, &rule22},
+       {11371, 1, &rule21},
+       {11372, 1, &rule22},
+       {11373, 1, &rule152},
+       {11374, 1, &rule153},
+       {11375, 1, &rule154},
+       {11378, 1, &rule21},
+       {11379, 1, &rule22},
+       {11381, 1, &rule21},
+       {11382, 1, &rule22},
+       {11392, 1, &rule21},
+       {11393, 1, &rule22},
+       {11394, 1, &rule21},
+       {11395, 1, &rule22},
+       {11396, 1, &rule21},
+       {11397, 1, &rule22},
+       {11398, 1, &rule21},
+       {11399, 1, &rule22},
+       {11400, 1, &rule21},
+       {11401, 1, &rule22},
+       {11402, 1, &rule21},
+       {11403, 1, &rule22},
+       {11404, 1, &rule21},
+       {11405, 1, &rule22},
+       {11406, 1, &rule21},
+       {11407, 1, &rule22},
+       {11408, 1, &rule21},
+       {11409, 1, &rule22},
+       {11410, 1, &rule21},
+       {11411, 1, &rule22},
+       {11412, 1, &rule21},
+       {11413, 1, &rule22},
+       {11414, 1, &rule21},
+       {11415, 1, &rule22},
+       {11416, 1, &rule21},
+       {11417, 1, &rule22},
+       {11418, 1, &rule21},
+       {11419, 1, &rule22},
+       {11420, 1, &rule21},
+       {11421, 1, &rule22},
+       {11422, 1, &rule21},
+       {11423, 1, &rule22},
+       {11424, 1, &rule21},
+       {11425, 1, &rule22},
+       {11426, 1, &rule21},
+       {11427, 1, &rule22},
+       {11428, 1, &rule21},
+       {11429, 1, &rule22},
+       {11430, 1, &rule21},
+       {11431, 1, &rule22},
+       {11432, 1, &rule21},
+       {11433, 1, &rule22},
+       {11434, 1, &rule21},
+       {11435, 1, &rule22},
+       {11436, 1, &rule21},
+       {11437, 1, &rule22},
+       {11438, 1, &rule21},
+       {11439, 1, &rule22},
+       {11440, 1, &rule21},
+       {11441, 1, &rule22},
+       {11442, 1, &rule21},
+       {11443, 1, &rule22},
+       {11444, 1, &rule21},
+       {11445, 1, &rule22},
+       {11446, 1, &rule21},
+       {11447, 1, &rule22},
+       {11448, 1, &rule21},
+       {11449, 1, &rule22},
+       {11450, 1, &rule21},
+       {11451, 1, &rule22},
+       {11452, 1, &rule21},
+       {11453, 1, &rule22},
+       {11454, 1, &rule21},
+       {11455, 1, &rule22},
+       {11456, 1, &rule21},
+       {11457, 1, &rule22},
+       {11458, 1, &rule21},
+       {11459, 1, &rule22},
+       {11460, 1, &rule21},
+       {11461, 1, &rule22},
+       {11462, 1, &rule21},
+       {11463, 1, &rule22},
+       {11464, 1, &rule21},
+       {11465, 1, &rule22},
+       {11466, 1, &rule21},
+       {11467, 1, &rule22},
+       {11468, 1, &rule21},
+       {11469, 1, &rule22},
+       {11470, 1, &rule21},
+       {11471, 1, &rule22},
+       {11472, 1, &rule21},
+       {11473, 1, &rule22},
+       {11474, 1, &rule21},
+       {11475, 1, &rule22},
+       {11476, 1, &rule21},
+       {11477, 1, &rule22},
+       {11478, 1, &rule21},
+       {11479, 1, &rule22},
+       {11480, 1, &rule21},
+       {11481, 1, &rule22},
+       {11482, 1, &rule21},
+       {11483, 1, &rule22},
+       {11484, 1, &rule21},
+       {11485, 1, &rule22},
+       {11486, 1, &rule21},
+       {11487, 1, &rule22},
+       {11488, 1, &rule21},
+       {11489, 1, &rule22},
+       {11490, 1, &rule21},
+       {11491, 1, &rule22},
+       {11520, 38, &rule155},
+       {42560, 1, &rule21},
+       {42561, 1, &rule22},
+       {42562, 1, &rule21},
+       {42563, 1, &rule22},
+       {42564, 1, &rule21},
+       {42565, 1, &rule22},
+       {42566, 1, &rule21},
+       {42567, 1, &rule22},
+       {42568, 1, &rule21},
+       {42569, 1, &rule22},
+       {42570, 1, &rule21},
+       {42571, 1, &rule22},
+       {42572, 1, &rule21},
+       {42573, 1, &rule22},
+       {42574, 1, &rule21},
+       {42575, 1, &rule22},
+       {42576, 1, &rule21},
+       {42577, 1, &rule22},
+       {42578, 1, &rule21},
+       {42579, 1, &rule22},
+       {42580, 1, &rule21},
+       {42581, 1, &rule22},
+       {42582, 1, &rule21},
+       {42583, 1, &rule22},
+       {42584, 1, &rule21},
+       {42585, 1, &rule22},
+       {42586, 1, &rule21},
+       {42587, 1, &rule22},
+       {42588, 1, &rule21},
+       {42589, 1, &rule22},
+       {42590, 1, &rule21},
+       {42591, 1, &rule22},
+       {42594, 1, &rule21},
+       {42595, 1, &rule22},
+       {42596, 1, &rule21},
+       {42597, 1, &rule22},
+       {42598, 1, &rule21},
+       {42599, 1, &rule22},
+       {42600, 1, &rule21},
+       {42601, 1, &rule22},
+       {42602, 1, &rule21},
+       {42603, 1, &rule22},
+       {42604, 1, &rule21},
+       {42605, 1, &rule22},
+       {42624, 1, &rule21},
+       {42625, 1, &rule22},
+       {42626, 1, &rule21},
+       {42627, 1, &rule22},
+       {42628, 1, &rule21},
+       {42629, 1, &rule22},
+       {42630, 1, &rule21},
+       {42631, 1, &rule22},
+       {42632, 1, &rule21},
+       {42633, 1, &rule22},
+       {42634, 1, &rule21},
+       {42635, 1, &rule22},
+       {42636, 1, &rule21},
+       {42637, 1, &rule22},
+       {42638, 1, &rule21},
+       {42639, 1, &rule22},
+       {42640, 1, &rule21},
+       {42641, 1, &rule22},
+       {42642, 1, &rule21},
+       {42643, 1, &rule22},
+       {42644, 1, &rule21},
+       {42645, 1, &rule22},
+       {42646, 1, &rule21},
+       {42647, 1, &rule22},
+       {42786, 1, &rule21},
+       {42787, 1, &rule22},
+       {42788, 1, &rule21},
+       {42789, 1, &rule22},
+       {42790, 1, &rule21},
+       {42791, 1, &rule22},
+       {42792, 1, &rule21},
+       {42793, 1, &rule22},
+       {42794, 1, &rule21},
+       {42795, 1, &rule22},
+       {42796, 1, &rule21},
+       {42797, 1, &rule22},
+       {42798, 1, &rule21},
+       {42799, 1, &rule22},
+       {42802, 1, &rule21},
+       {42803, 1, &rule22},
+       {42804, 1, &rule21},
+       {42805, 1, &rule22},
+       {42806, 1, &rule21},
+       {42807, 1, &rule22},
+       {42808, 1, &rule21},
+       {42809, 1, &rule22},
+       {42810, 1, &rule21},
+       {42811, 1, &rule22},
+       {42812, 1, &rule21},
+       {42813, 1, &rule22},
+       {42814, 1, &rule21},
+       {42815, 1, &rule22},
+       {42816, 1, &rule21},
+       {42817, 1, &rule22},
+       {42818, 1, &rule21},
+       {42819, 1, &rule22},
+       {42820, 1, &rule21},
+       {42821, 1, &rule22},
+       {42822, 1, &rule21},
+       {42823, 1, &rule22},
+       {42824, 1, &rule21},
+       {42825, 1, &rule22},
+       {42826, 1, &rule21},
+       {42827, 1, &rule22},
+       {42828, 1, &rule21},
+       {42829, 1, &rule22},
+       {42830, 1, &rule21},
+       {42831, 1, &rule22},
+       {42832, 1, &rule21},
+       {42833, 1, &rule22},
+       {42834, 1, &rule21},
+       {42835, 1, &rule22},
+       {42836, 1, &rule21},
+       {42837, 1, &rule22},
+       {42838, 1, &rule21},
+       {42839, 1, &rule22},
+       {42840, 1, &rule21},
+       {42841, 1, &rule22},
+       {42842, 1, &rule21},
+       {42843, 1, &rule22},
+       {42844, 1, &rule21},
+       {42845, 1, &rule22},
+       {42846, 1, &rule21},
+       {42847, 1, &rule22},
+       {42848, 1, &rule21},
+       {42849, 1, &rule22},
+       {42850, 1, &rule21},
+       {42851, 1, &rule22},
+       {42852, 1, &rule21},
+       {42853, 1, &rule22},
+       {42854, 1, &rule21},
+       {42855, 1, &rule22},
+       {42856, 1, &rule21},
+       {42857, 1, &rule22},
+       {42858, 1, &rule21},
+       {42859, 1, &rule22},
+       {42860, 1, &rule21},
+       {42861, 1, &rule22},
+       {42862, 1, &rule21},
+       {42863, 1, &rule22},
+       {42873, 1, &rule21},
+       {42874, 1, &rule22},
+       {42875, 1, &rule21},
+       {42876, 1, &rule22},
+       {42877, 1, &rule156},
+       {42878, 1, &rule21},
+       {42879, 1, &rule22},
+       {42880, 1, &rule21},
+       {42881, 1, &rule22},
+       {42882, 1, &rule21},
+       {42883, 1, &rule22},
+       {42884, 1, &rule21},
+       {42885, 1, &rule22},
+       {42886, 1, &rule21},
+       {42887, 1, &rule22},
+       {42891, 1, &rule21},
+       {42892, 1, &rule22},
        {65313, 26, &rule9},
        {65345, 26, &rule12},
-       {66560, 40, &rule124},
-       {66600, 40, &rule125}
+       {66560, 40, &rule159},
+       {66600, 40, &rule160}
 };
 static const struct _charblock_ spacechars[]={
        {32, 1, &rule1},
        {160, 1, &rule1},
        {5760, 1, &rule1},
        {6158, 1, &rule1},
-       {8192, 12, &rule1},
+       {8192, 11, &rule1},
        {8239, 1, &rule1},
        {8287, 1, &rule1},
        {12288, 1, &rule1}
@@ -3000,7 +4048,7 @@ static const struct _charblock_ spacechars[]={
 
 static const struct _convrule_ nullrule={0,NUMCAT_CN,0,0,0,0};
 
-static int blkcmp(const void *vk,const void *vb)
+int blkcmp(const void *vk,const void *vb)
 {
        const struct _charblock_ *key,*cur;
        key=vk;
@@ -3065,16 +4113,12 @@ int p(int c) \
 */
 
 unipred(u_iswcntrl,GENCAT_CC)
-unipred(u_iswprint, \
-(GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND | \
-  GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS | \
-  GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF | \
-  GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI | \
-  GENCAT_NL | GENCAT_MN | GENCAT_LO))
+unipred(u_iswprint, (GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND |   GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS |   GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF |   GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI |   GENCAT_NL | GENCAT_MN | GENCAT_LO))
 unipred_s(u_iswspace,GENCAT_ZS)
 unipred(u_iswupper,(GENCAT_LU|GENCAT_LT))
 unipred(u_iswlower,GENCAT_LL)
 unipred(u_iswalpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))
+unipred(u_iswdigit,GENCAT_ND)
 
 unipred(u_iswalnum,(GENCAT_LT|GENCAT_LU|GENCAT_LL|GENCAT_LM|GENCAT_LO|
                    GENCAT_MC|GENCAT_ME|GENCAT_MN|